KnZlcnNpb242LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjAuICBMYXN0IGNoYW5nZTogMjAwNiBBcHIgMzAKCgoJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKCgpXZWxjb21lIHRvIFZpbSBWZXJzaW9uIDYuMCEgIEEgbGFyZ2UgbnVtYmVyIG9mIGZlYXR1cmVzIGhhcyBiZWVuIGFkZGVkLiAgVGhpcwpmaWxlIG1lbnRpb25zIGFsbCB0aGUgbmV3IGl0ZW1zIHRoYXQgaGF2ZSBiZWVuIGFkZGVkLCBjaGFuZ2VzIHRvIGV4aXN0aW5nCmZlYXR1cmVzIGFuZCBidWcgZml4ZXMgY29tcGFyZWQgdG8gVmltIDUueC4KClNlZSB8dmlfZGlmZi50eHR8IGZvciBhbiBvdmVydmlldyBvZiBkaWZmZXJlbmNlcyBiZXR3ZWVuIFZpIGFuZCBWaW0gNi4wLgpTZWUgfHZlcnNpb240LnR4dHwgZm9yIGRpZmZlcmVuY2VzIGJldHdlZW4gVmltIDMuMCBhbmQgVmltIDQuMC4KU2VlIHx2ZXJzaW9uNS50eHR8IGZvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIFZpbSA0LjAgYW5kIFZpbSA1LjAuCgpJTkNPTVBBVElCTEUgQ0hBTkdFUwkJCXxpbmNvbXBhdGlibGUtNnwKCkN1cnNvciBwb3NpdGlvbiBpbiBWaXN1YWwgbW9kZQkJfGN1cnBvcy12aXN1YWx8CnN1YnN0aXR1dGUgY29tbWFuZCBWaSBjb21wYXRpYmxlCXxzdWJzdGl0dXRlLUNSfApnbG9iYWwgb3B0aW9uIHZhbHVlcyBpbnRyb2R1Y2VkCQl8bmV3LWdsb2JhbC12YWx1ZXN8CidmaWxlZW5jb2RpbmcnIGNoYW5nZWQJCQl8ZmlsZWVuY29kaW5nLWNoYW5nZWR8CkRpZ3JhcGhzIGNoYW5nZWQJCQl8ZGlncmFwaHMtY2hhbmdlZHwKRmlsZXR5cGUgZGV0ZWN0aW9uIGNoYW5nZWQJCXxmaWxldHlwZWRldGVjdC1jaGFuZ2VkfApVbmxpc3RlZCBidWZmZXJzIGludHJvZHVjZWQJCXxuZXctdW5saXN0ZWQtYnVmZmVyc3wKQ1RSTC1VIGluIENvbW1hbmQtbGluZSBtb2RlIGNoYW5nZWQJfENUUkwtVS1jaGFuZ2VkfApDdGFncyBnb25lCQkJCXxjdGFncy1nb25lfApEb2N1bWVudGF0aW9uIHJlb3JnYW5pemVkCQl8ZG9jdW1lbnRhdGlvbi02fApNb2RlbGVzcyBzZWxlY3Rpb24gYW5kIGNsaXBib2FyZAl8bW9kZWxlc3MtYW5kLWNsaXBib2FyZHwKU21hbGwgaW5jb21wYXRpYmlsaXRpZXMJCQl8aW5jb21wLXNtYWxsLTZ8CgpORVcgRkVBVFVSRVMJCQkJfG5ldy02fAoKRm9sZGluZwkJCQkJfG5ldy1mb2xkaW5nfApWZXJ0aWNhbGx5IHNwbGl0IHdpbmRvd3MJCXxuZXctdmVydHNwbGl0fApEaWZmIG1vZGUJCQkJfG5ldy1kaWZmLW1vZGV8CkVhc3kgVmltOiBjbGljay1hbmQtdHlwZQkJfG5ldy1ldmltfApVc2VyIG1hbnVhbAkJCQl8bmV3LXVzZXItbWFudWFsfApGbGV4aWJsZSBpbmRlbnRpbmcJCQl8bmV3LWluZGVudC1mbGV4fApFeHRlbmRlZCBzZWFyY2ggcGF0dGVybnMJCXxuZXctc2VhcmNocGF0fApVVEYtOCBzdXBwb3J0CQkJCXxuZXctdXRmLTh8Ck11bHRpLWxhbmd1YWdlIHN1cHBvcnQJCQl8bmV3LW11bHRpLWxhbmd8ClBsdWdpbiBzdXBwb3J0CQkJCXxuZXctcGx1Z2luc3wKRmlsZXR5cGUgcGx1Z2lucwkJCXxuZXctZmlsZXR5cGUtcGx1Z2luc3wKRmlsZSBicm93c2VyCQkJCXxuZXctZmlsZS1icm93c2VyfApFZGl0aW5nIGZpbGVzIG92ZXIgYSBuZXR3b3JrCQl8bmV3LW5ldHdvcmstZmlsZXN8CldpbmRvdyBmb3IgY29tbWFuZC1saW5lIGVkaXRpbmcJCXxuZXctY21kd2lufApEZWJ1Z2dpbmcgbW9kZQkJCQl8bmV3LWRlYnVnLW1vZGV8CkN1cnNvciBpbiB2aXJ0dWFsIHBvc2l0aW9uCQl8bmV3LXZpcnRlZGl0fApEZWJ1Z2dlciBpbnRlcmZhY2UJCQl8bmV3LWRlYnVnLWl0ZnwKQ29tbXVuaWNhdGlvbiBiZXR3ZWVuIFZpbXMJCXxuZXctdmltLXNlcnZlcnwKQnVmZmVyIHR5cGUgb3B0aW9ucwkJCXxuZXctYnVmdHlwZXwKUHJpbnRpbmcJCQkJfG5ldy1wcmludGluZ3wKUG9ydHMJCQkJCXxwb3J0cy02fApRdWlja2ZpeCBleHRlbmRlZAkJCXxxdWlja2ZpeC02fApPcGVyYXRvciBtb2RpZmllcnMJCQl8bmV3LW9wZXJhdG9yLW1vZHwKU2VhcmNoIFBhdGgJCQkJfG5ldy1zZWFyY2gtcGF0aHwKV3JpdGluZyBmaWxlcyBpbXByb3ZlZAkJCXxuZXctZmlsZS13cml0aW5nfApBcmd1bWVudCBsaXN0CQkJCXxuZXctYXJndW1lbnQtbGlzdHwKUmVzdG9yZSBhIFZpZXcJCQkJfG5ldy1WaWV3fApDb2xvciBzY2hlbWVzCQkJCXxuZXctY29sb3Itc2NoZW1lc3wKVmFyaW91cyBuZXcgaXRlbXMJCQl8bmV3LWl0ZW1zLTZ8CgpJTVBST1ZFTUVOVFMJCQkJfGltcHJvdmVtZW50cy02fAoKQ09NUElMRSBUSU1FIENIQU5HRVMJCQl8Y29tcGlsZS1jaGFuZ2VzLTZ8CgpCVUcgRklYRVMJCQkJfGJ1Zy1maXhlcy02fAoKVkVSU0lPTiA2LjEJCQl8dmVyc2lvbi02LjF8CkNoYW5nZWQJCQkJCXxjaGFuZ2VkLTYuMXwKQWRkZWQJCQkJCXxhZGRlZC02LjF8CkZpeGVkCQkJCQl8Zml4ZWQtNi4xfAoKVkVSU0lPTiA2LjIJCQl8dmVyc2lvbi02LjJ8CkNoYW5nZWQJCQkJCXxjaGFuZ2VkLTYuMnwKQWRkZWQJCQkJCXxhZGRlZC02LjJ8CkZpeGVkCQkJCQl8Zml4ZWQtNi4yfAoKVkVSU0lPTiA2LjMJCQl8dmVyc2lvbi02LjN8CkNoYW5nZWQJCQkJCXxjaGFuZ2VkLTYuM3wKQWRkZWQJCQkJCXxhZGRlZC02LjN8CkZpeGVkCQkJCQl8Zml4ZWQtNi4zfAoKVkVSU0lPTiA2LjQJCQl8dmVyc2lvbi02LjR8CkNoYW5nZWQJCQkJCXxjaGFuZ2VkLTYuNHwKQWRkZWQJCQkJCXxhZGRlZC02LjR8CkZpeGVkCQkJCQl8Zml4ZWQtNi40fAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklOQ09NUEFUSUJMRSBDSEFOR0VTCQkJCSppbmNvbXBhdGlibGUtNioKClRoZXNlIGNoYW5nZXMgYXJlIGluY29tcGF0aWJsZSB3aXRoIHByZXZpb3VzIHJlbGVhc2VzLiAgQ2hlY2sgdGhpcyBsaXN0IGlmIHlvdQpydW4gaW50byBhIHByb2JsZW0gd2hlbiB1cGdyYWRpbmcgZnJvbSBWaW0gNS54IHRvIDYuMAoKCkN1cnNvciBwb3NpdGlvbiBpbiBWaXN1YWwgbW9kZQkJCSpjdXJwb3MtdmlzdWFsKgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCldoZW4gZ29pbmcgZnJvbSBvbmUgd2luZG93IHRvIGFub3RoZXIgd2luZG93IG9uIHRoZSBzYW1lIGJ1ZmZlciB3aGlsZSBpbgpWaXN1YWwgbW9kZSwgdGhlIGN1cnNvciBwb3NpdGlvbiBvZiB0aGUgb3RoZXIgd2luZG93IGlzIGFkanVzdGVkIHRvIGtlZXAgdGhlCnNhbWUgVmlzdWFsIGFyZWEuICBUaGlzIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgc3RhcnQgb2YgdGhlIFZpc3VhbCBhcmVhIGluIG9uZQp3aW5kb3cgYW5kIHRoZSBlbmQgaW4gYW5vdGhlci4gIEluIHZpbSA1LnggdGhlIGN1cnNvciBwb3NpdGlvbiBvZiB0aGUgb3RoZXIKd2luZG93IHdvdWxkIGJlIHVzZWQsIHdoaWNoIGNvdWxkIGJlIGFueXdoZXJlIGFuZCB3YXMgbm90IHZlcnkgdXNlZnVsLgoKClN1YnN0aXR1dGUgY29tbWFuZCBWaSBjb21wYXRpYmxlCQkqc3Vic3RpdHV0ZS1DUioKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSBzdWJzdGl0dXRlIHN0cmluZyAodGhlICJ0byIgcGFydCBvZiB0aGUgc3Vic3RpdHV0ZSBjb21tYW5kKSBoYXMgYmVlbiBtYWRlClZpIGNvbXBhdGlibGUuICBQcmV2aW91c2x5IGEgQ1RSTC1WIGhhZCBhIHNwZWNpYWwgbWVhbmluZyBhbmQgY291bGQgYmUgdXNlZCB0bwpwcmV2ZW50IGEgPENSPiB0byBpbnNlcnQgYSBsaW5lIGJyZWFrLiAgVGhpcyBtYWRlIGl0IGltcG9zc2libGUgdG8gaW5zZXJ0IGEKQ1RSTC1WIGJlZm9yZSBhIGxpbmUgYnJlYWsuICBOb3cgYSBiYWNrc2xhc2ggaXMgdXNlZCB0byBwcmV2ZW50IGEgPENSPiB0bwpjYXVzZSBhIGxpbmUgYnJlYWsuICBTaW5jZSB0aGUgbnVtYmVyIG9mIGJhY2tzbGFzaGVzIGlzIGhhbHZlZCwgaXQgaXMgc3RpbGwKcG9zc2libGUgdG8gaW5zZXJ0IGEgbGluZSBicmVhayBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLiAgVGhpcyBub3cgd29ya3MganVzdApsaWtlIFZpLCBidXQgaXQncyBub3QgY29tcGF0aWJsZSB3aXRoIFZpbSB2ZXJzaW9ucyBiZWZvcmUgNi4wLgoKV2hlbiBhICI6cyIgY29tbWFuZCBkb2Vzbid0IG1ha2UgYW55IHN1YnN0aXR1dGlvbnMsIGl0IG5vIGxvbmdlciBzZXRzIHRoZSAnWwphbmQgJ10gbWFya3MuICBUaGlzIGlzIG5vdCByZWxhdGVkIHRvIFZpLCBzaW5jZSBpdCBkb2Vzbid0IGhhdmUgdGhlc2UgbWFya3MuCgoKR2xvYmFsIG9wdGlvbiB2YWx1ZXMgaW50cm9kdWNlZAkJCSpuZXctZ2xvYmFsLXZhbHVlcyoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlcmUgYXJlIG5vdyBnbG9iYWwgdmFsdWVzIGZvciBvcHRpb25zIHdoaWNoIGFyZSBsb2NhbCB0byBhIGJ1ZmZlciBvciB3aW5kb3cuClByZXZpb3VzbHkgdGhlIGxvY2FsIG9wdGlvbnMgd2VyZSBjb3BpZWQgZnJvbSBvbmUgYnVmZmVyIHRvIGFub3RoZXIuICBXaGVuCmVkaXRpbmcgYW5vdGhlciBmaWxlIHRoaXMgY291bGQgY2F1c2Ugb3B0aW9uIHZhbHVlcyBmcm9tIGEgbW9kZWxpbmUgdG8gYmUgdXNlZApmb3IgdGhlIHdyb25nIGZpbGUuICBOb3cgdGhlIGdsb2JhbCB2YWx1ZXMgYXJlIHVzZWQgd2hlbiBlbnRlcmluZyBhIGJ1ZmZlcgp0aGF0IGhhcyBub3QgYmVlbiB1c2VkIGJlZm9yZS4gIEFsc28sIHdoZW4gZWRpdGluZyBhbm90aGVyIGJ1ZmZlciBpbiBhIHdpbmRvdywKdGhlIGxvY2FsIHdpbmRvdyBvcHRpb25zIGFyZSByZXNldCB0byB0aGVpciBnbG9iYWwgdmFsdWVzLiAgVGhlICI6c2V0IiBjb21tYW5kCnNldHMgYm90aCB0aGUgbG9jYWwgYW5kIGdsb2JhbCB2YWx1ZXMsIHRoaXMgaXMgc3RpbGwgY29tcGF0aWJsZS4gIEJ1dCBhCm1vZGVsaW5lIG9ubHkgc2V0cyB0aGUgbG9jYWwgdmFsdWUsIHRoaXMgaXMgbm90IGJhY2t3YXJkcyBjb21wYXRpYmxlLgoKIjpsZXQgJm9wdCA9IHZhbCIgbm93IHNldHMgdGhlIGxvY2FsIGFuZCBnbG9iYWwgdmFsdWVzLCBsaWtlICI6c2V0Ii4gIE5ldwpjb21tYW5kcyBoYXZlIGJlZW4gYWRkZWQgdG8gc2V0IHRoZSBnbG9iYWwgb3IgbG9jYWwgdmFsdWU6Cgk6bGV0ICZvcHQgPSB2YWwJCWxpa2UgIjpzZXQiCgk6bGV0ICZnOm9wdCA9IHZhbAlsaWtlICI6c2V0Z2xvYmFsIgoJOmxldCAmbDpvcHQgPSB2YWwJbGlrZSAiOnNldGxvY2FsIgoKCidmaWxlZW5jb2RpbmcnIGNoYW5nZWQJCQkJKmZpbGVlbmNvZGluZy1jaGFuZ2VkKgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgonZmlsZWVuY29kaW5nJyB3YXMgdXNlZCBpbiBWaW0gNS54IHRvIHNldCB0aGUgZW5jb2RpbmcgdXNlZCBpbnNpZGUgYWxsIG9mIFZpbS4KVGhpcyB3YXMgYSBiaXQgc3RyYW5nZSwgYmVjYXVzZSBpdCB3YXMgbG9jYWwgdG8gYSBidWZmZXIgYW5kIHdvcmtlZCBmb3IgYWxsCmJ1ZmZlcnMuICBJdCBjb3VsZCBuZXZlciBiZSBkaWZmZXJlbnQgYmV0d2VlbiBidWZmZXJzLCBiZWNhdXNlIGl0IGNoYW5nZWQgdGhlCndheSB0ZXh0IGluIGFsbCBidWZmZXJzIHdhcyBpbnRlcnByZXRlZC4KSXQgaXMgbm93IHVzZWQgZm9yIHRoZSBlbmNvZGluZyBvZiB0aGUgZmlsZSByZWxhdGVkIHRvIHRoZSBidWZmZXIuICBJZiB5b3UKc3RpbGwgc2V0ICdmaWxlZW5jb2RpbmcnIGl0IGlzIGxpa2VseSB0byBiZSBvdmVyd3JpdHRlbiBieSB0aGUgZGV0ZWN0ZWQKZW5jb2RpbmcgZnJvbSAnZmlsZWVuY29kaW5ncycsIHRodXMgaXQgaXMgIm1vc3RseSBoYXJtbGVzcyIuClRoZSBvbGQgRmlsZUVuY29kaW5nIGF1dG9jb21tYW5kIG5vdyBkb2VzIHRoZSBzYW1lIGFzIHRoZSBuZXcgRW5jb2RpbmdDaGFuZ2VkCmV2ZW50LgoKCkRpZ3JhcGhzIGNoYW5nZWQJCQkJKmRpZ3JhcGhzLWNoYW5nZWQqCi0tLS0tLS0tLS0tLS0tLS0KClRoZSBkZWZhdWx0IGRpZ3JhcGhzIG5vdyBjb3JyZXNwb25kIHRvIFJGQzEzNDUuICBUaGlzIGlzIHZlcnkgZGlmZmVyZW50IGZyb20Kd2hhdCB3YXMgdXNlZCBpbiBWaW0gNS54LiB8ZGlncmFwaHN8CgoKRmlsZXR5cGUgZGV0ZWN0aW9uIGNoYW5nZWQJCQkqZmlsZXR5cGVkZXRlY3QtY2hhbmdlZCoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSBmaWxldHlwZSBkZXRlY3Rpb24gcHJldmlvdXNseSB3YXMgdXNpbmcgdGhlICJmaWxldHlwZSIgYXV0b2NvbW1hbmQgZ3JvdXAuClRoaXMgY2F1c2VkIGNvbmZ1c2lvbiB3aXRoIHRoZSBGaWxlVHlwZSBldmVudCBuYW1lIChjYXNlIGlzIGlnbm9yZWQpLiAgVGhlCmdyb3VwIGlzIG5vdyBjYWxsZWQgImZpbGV0eXBlZGV0ZWN0Ii4gIEl0IHN0aWxsIHdvcmtzLCBidXQgaWYgdGhlICJmaWxldHlwZSIKZ3JvdXAgaXMgdXNlZCB0aGUgYXV0b2NvbW1hbmRzIHdpbGwgbm90IGJlIHJlbW92ZWQgYnkgIjpmaWxldHlwZSBvZmYiLgogICBUaGUgc3VwcG9ydCBmb3IgJ3J1bnRpbWVwYXRoJyBoYXMgbWFkZSB0aGUgIm15ZmlsZXR5cGVmaWxlIiBhbmQKIm15c3ludGF4ZmlsZSIgbWVjaGFuaXNtIG9ic29sZXRlLiAgVGhleSBhcmUgc3RpbGwgdXNlZCBmb3IgYmFja3dhcmRzCmNvbXBhdGliaWxpdHkuCgpUaGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBGaWxlVHlwZSBldmVudCBhbmQgc2V0dGluZyB0aGUgJ3N5bnRheCcgb3B0aW9uIHdhcwpwcmV2aW91c2x5IGluIHRoZSAic3ludGF4IiBhdXRvY29tbWFuZCBncm91cC4gIFRoYXQgY2F1c2VkIGNvbmZ1c2lvbiB3aXRoIHRoZQpTeW50YXggZXZlbnQgbmFtZS4gIFRoZSBncm91cCBpcyBub3cgY2FsbGVkICJzeW50YXhzZXQiLgoKVGhlIGRpc3RyaWJ1dGVkIHN5bnRheCBmaWxlcyBubyBsb25nZXIgY29udGFpbiAic3ludGF4IGNsZWFyIi4gIFRoYXQgbWFrZXMgaXQKcG9zc2libGUgdG8gaW5jbHVkZSBvbmUgaW4gdGhlIG90aGVyIHdpdGhvdXQgdHJpY2tzLiAgVGhlIHN5bnRheCBpcyBub3cKY2xlYXJlZCB3aGVuIHRoZSAnc3ludGF4JyBvcHRpb24gaXMgc2V0IChieSBhbiBhdXRvY29tbWFuZCBhZGRlZCBmcm9tCnN5bmxvYWQudmltKS4gIFRoaXMgbWFrZXMgdGhlIHN5bnRheCBjbGVhcmVkIHdoZW4gdGhlIHZhbHVlIG9mICdzeW50YXgnIGRvZXMKbm90IGNvcnJlc3BvbmQgdG8gYSBzeW50YXggZmlsZS4gIFByZXZpb3VzbHkgdGhlIGV4aXN0aW5nIGhpZ2hsaWdodGluZyB3YXMKa2VwdC4KCgpVbmxpc3RlZCBidWZmZXJzIGludHJvZHVjZWQJCQkqbmV3LXVubGlzdGVkLWJ1ZmZlcnMqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlcmUgaXMgbm93IGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGJ1ZmZlcnMgd2hpY2ggZG9uJ3QgYXBwZWFyIGluIHRoZSBidWZmZXIKbGlzdCBhbmQgYnVmZmVycyB3aGljaCBhcmUgcmVhbGx5IG5vdCBpbiB0aGUgYnVmZmVyIGxpc3QuICBDb21tYW5kcyBsaWtlCiI6bHMiLCAiOmJuZXh0IiwgIjpibGFzdCIgYW5kIHRoZSBCdWZmZXJzIG1lbnUgd2lsbCBza2lwIGJ1ZmZlcnMgbm90IGluIHRoZQpidWZmZXIgbGlzdC4gfHVubGlzdGVkLWJ1ZmZlcnwKVGhlICdidWZsaXN0ZWQnIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBtYWtlIGEgYnVmZmVyIGFwcGVhciBpbiB0aGUgYnVmZmVyIGxpc3QKb3Igbm90LgoKU2V2ZXJhbCBjb21tYW5kcyB0aGF0IHByZXZpb3VzbHkgYWRkZWQgYSBidWZmZXIgdG8gdGhlIGJ1ZmZlciBsaXN0IG5vdyBjcmVhdGUKYW4gdW5saXN0ZWQgYnVmZmVyLiAgVGhpcyBtZWFucyB0aGF0IGEgIjpibmV4dCIgYW5kICI6YmFsbCIgd2lsbCBub3QgZmluZCB0aGVzZQpmaWxlcyB1bnRpbCB0aGV5IGhhdmUgYWN0dWFsbHkgYmVlbiBlZGl0ZWQuICBGb3IgZXhhbXBsZSwgYnVmZmVycyB1c2VkIGZvciB0aGUKYWx0ZXJuYXRpdmUgZmlsZSBieSAiOndyaXRlIGZpbGUiIGFuZCAiOnJlYWQgZmlsZSIuCiAgIE90aGVyIGNvbW1hbmRzIHByZXZpb3VzbHkgY29tcGxldGVseSBkZWxldGVkIGEgYnVmZmVyIGFuZCBub3cgb25seSByZW1vdmUKdGhlIGJ1ZmZlciBmcm9tIHRoZSBidWZmZXIgbGlzdC4gIENvbW1hbmRzIHJlbHlpbmcgb24gYSBidWZmZXIgbm90IHRvIGJlCnByZXNlbnQgbWlnaHQgZmFpbC4gIEZvciBleGFtcGxlLCBhICI6YmRlbGV0ZSIgY29tbWFuZCBpbiBhbiBhdXRvY29tbWFuZCB0aGF0CnJlbGllZCBvbiBzb21ldGhpbmcgZm9sbG93aW5nIHRvIGZhaWwgKHdhcyB1c2VkIGluIHRoZSBhdXRvbWF0aWMgdGVzdHMpLgp8OmJ3aXBlb3V0fCBjYW4gYmUgdXNlZCBmb3IgdGhlIG9sZCBtZWFuaW5nIG9mICI6YmRlbGV0ZSIuCgpUaGUgQnVmRGVsZXRlIGF1dG9jb21tYW5kIGV2ZW50IGlzIG5vdyB0cmlnZ2VyZWQgd2hlbiBhIGJ1ZmZlciBpcyByZW1vdmVkIGZyb20KdGhlIGJ1ZmZlciBsaXN0LiAgVGhlIEJ1ZkNyZWF0ZSBldmVudCBpcyBvbmx5IHRyaWdnZXJlZCB3aGVuIGEgYnVmZmVyIGlzCmNyZWF0ZWQgdGhhdCBpcyBhZGRlZCB0byB0aGUgYnVmZmVyIGxpc3QsIG9yIHdoZW4gYW4gZXhpc3RpbmcgYnVmZmVyIGlzIGFkZGVkCnRvIHRoZSBidWZmZXIgbGlzdC4gIEJ1ZkFkZCBpcyBhIG5ldyBuYW1lIGZvciBCdWZDcmVhdGUuClRoZSBuZXcgQnVmTmV3IGV2ZW50IGlzIGZvciBjcmVhdGluZyBhbnkgYnVmZmVyIGFuZCBCdWZXaXBlb3V0IGZvciByZWFsbHkKZGVsZXRpbmcgYSBidWZmZXIuCgpXaGVuIGRvaW5nIEluc2VydCBtb2RlIGNvbXBsZXRpb24sIG9ubHkgYnVmZmVycyBpbiB0aGUgYnVmZmVyIGxpc3QgYXJlCnNjYW5uZWQuICBBZGRlZCB0aGUgJ1UnIGZsYWcgdG8gJ2NvbXBsZXRlJyB0byBkbyBjb21wbGV0aW9uIGZyb20gdW5saXN0ZWQKYnVmZmVycy4KClVubGlzdGVkIGJ1ZmZlcnMgYXJlIG5vdCBzdG9yZWQgaW4gYSB2aW1pbmZvIGZpbGUuCgoKQ1RSTC1VIGluIENvbW1hbmQtbGluZSBtb2RlIGNoYW5nZWQJCSpDVFJMLVUtY2hhbmdlZCoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClVzaW5nIENUUkwtVSB3aGVuIGVkaXRpbmcgdGhlIGNvbW1hbmQgbGluZSBjbGVhcmVkIHRoZSB3aG9sZSBsaW5lLiAgTW9zdApzaGVsbHMgb25seSBkZWxldGUgdGhlIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSBjdXJzb3IuICBNYWRlIGl0IHdvcmsgbGlrZSB0aGF0LgooU3RldmUgV2FsbCkKCllvdSBjYW4gZ2V0IHRoZSBvbGQgYmVoYXZpb3Igd2l0aCBDVFJMLUUgQ1RSTC1VOiA+Cgk6Y25vcmVtYXAgPEMtVT4gPEMtRT48Qy1VPgoKCkN0YWdzIGdvbmUJCQkJCSpjdGFncy1nb25lKgotLS0tLS0tLS0tCgpDdGFncyBpcyBubyBsb25nZXIgcGFydCBvZiB0aGUgVmltIGRpc3RyaWJ1dGlvbi4gIEl0J3Mgbm93IGEgZ3Jvd24tdXAgcHJvZ3JhbQpieSBpdHNlbGYsIGl0IGRlc2VydmVzIHRvIGJlIGRpc3RyaWJ1dGVkIHNlcGFyYXRlbHkuCkN0YWdzIGNhbiBiZSBmb3VuZCBoZXJlOiBodHRwOi8vY3RhZ3Muc2YubmV0Ly4KCgpEb2N1bWVudGF0aW9uIHJlb3JnYW5pemVkCQkJKmRvY3VtZW50YXRpb24tNioKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlIGRvY3VtZW50YXRpb24gaGFzIGJlZW4gcmVvcmdhbml6ZWQsIGFuIGl0ZW0gbWF5IG5vdCBiZSB3aGVyZSB5b3UgZm91bmQgaXQKaW4gVmltIDUueC4KLSBUaGUgdXNlciBtYW51YWwgd2FzIGFkZGVkLCBzb21lIGl0ZW1zIGhhdmUgYmVlbiBtb3ZlZCB0byBpdCBmcm9tIHRoZQogIHJlZmVyZW5jZSBtYW51YWwuCi0gVGhlIHF1aWNrIHJlZmVyZW5jZSBpcyBub3cgaW4gYSBzZXBhcmF0ZSBmaWxlIChzbyB0aGF0IGl0IGNhbiBiZSBwcmludGVkKS4KClRoZSBleGFtcGxlcyBpbiB0aGUgZG9jdW1lbnRhdGlvbiB3ZXJlIHByZXZpb3VzbHkgbWFya2VkIHdpdGggYSAiPiIgaW4gdGhlCmZpcnN0IGNvbHVtbi4gIFRoaXMgbWFkZSBpdCBkaWZmaWN1bHQgdG8gY29weS9wYXN0ZSB0aGVtLiAgVGhlcmUgaXMgbm93IGEKc2luZ2xlICI+IiBiZWZvcmUgdGhlIGV4YW1wbGUgYW5kIGl0IGVuZHMgYXQgYSAiPCIgb3IgYSBub24tYmxhbmsgaW4gdGhlIGZpcnN0CmNvbHVtbi4gIFRoaXMgYWxzbyBsb29rcyBiZXR0ZXIgd2l0aG91dCBoaWdobGlnaHRpbmcuCgonaGVscGZpbGUnIGlzIG5vIGxvbmdlciB1c2VkIHRvIGZpbmQgdGhlIGhlbHAgdGFncyBmaWxlLiAgVGhpcyBhbGxvd3MgYSB1c2VyCnRvIGFkZCBpdHMgb3duIGhlbHAgZmlsZXMgKGUuZy4sIGZvciBwbHVnaW5zKS4KCgpNb2RlbGVzcyBzZWxlY3Rpb24gYW5kIGNsaXBib2FyZAkJKm1vZGVsZXNzLWFuZC1jbGlwYm9hcmQqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGUgbW9kZWxlc3Mgc2VsZWN0aW9uIGlzIHVzZWQgdG8gc2VsZWN0IHRleHQgd2hlbiBWaXN1YWwgbW9kZSBjYW4ndCBiZSB1c2VkLApmb3IgZXhhbXBsZSB3aGVuIGVkaXRpbmcgdGhlIGNvbW1hbmQgbGluZSBvciBhdCB0aGUgbW9yZSBwcm9tcHQuCkluIFZpbSA1LnggdGhlIG1vZGVsZXNzIHNlbGVjdGlvbiB3YXMgYWx3YXlzIHVzZWQuICBPbiBNUy1XaW5kb3dzIHRoaXMgY2F1c2VkCnRoZSBjbGlwYm9hcmQgdG8gYmUgb3ZlcndyaXR0ZW4sIHdpdGggbm8gd2F5IHRvIGF2b2lkIHRoYXQuICBUaGUgbW9kZWxlc3MKc2VsZWN0aW9uIG5vdyBvYmV5cyB0aGUgJ2EnIGFuZCAnQScgZmxhZ3MgaW4gJ2d1aW9wdGlvbnMnIGFuZCAiYXV0b3NlbGVjdCIgYW5kCiJhdXRvc2VsZWN0bWwiIGluICdjbGlwYm9hcmQnLiAgQnkgZGVmYXVsdCB0aGVyZSBpcyBubyBhdXRvbWF0aWMgY29weSBvbgpNUy1XaW5kb3dzLiAgVXNlIHRoZSB8Y19DVFJMLVl8IGNvbW1hbmQgdG8gbWFudWFsbHkgY29weSB0aGUgc2VsZWN0aW9uLgoKVG8gZ2V0IHRoZSBvbGQgYmVoYXZpb3IgYmFjaywgZG8gdGhpczogPgoKCTpzZXQgY2xpcGJvYXJkXj1hdXRvc2VsZWN0bWwgZ3Vpb3B0aW9ucys9QQoKClNtYWxsIGluY29tcGF0aWJpbGl0aWVzCQkJCSppbmNvbXAtc21hbGwtNioKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCidiYWNrdXBkaXInLCAnY2RwYXRoJywgJ2RpcmVjdG9yeScsICdlcXVhbHByZycsICdlcnJvcmZpbGUnLCAnZm9ybWF0cHJnJywKJ2dyZXBwcmcnLCAnaGVscGZpbGUnLCAnbWFrZWVmJywgJ21ha2VwcmcnLCAna2V5d29yZHByZycsICdjc2NvcGVwcmcnLAondmltaW5mbycgYW5kICdydW50aW1lcGF0aCcgY2FuIG5vIGxvbmdlciBiZSBzZXQgZnJvbSBhIG1vZGVsaW5lLCBmb3IgYmV0dGVyCnNlY3VyaXR5LgoKUmVtb3ZlZCAnXycgZnJvbSB0aGUgJ2JyZWFrYXQnIGRlZmF1bHQ6IEl0J3MgY29tbW9ubHkgdXNlZCBpbiBrZXl3b3Jkcy4KClRoZSBkZWZhdWx0IGZvciAnbW91c2VoaWRlJyBpcyBvbiwgYmVjYXVzZSB0aGlzIHdvcmtzIHdlbGwgZm9yIG1vc3QgcGVvcGxlLgoKVGhlIEFtaWdhIGJpbmFyeSBpcyBub3cgYWx3YXlzIGNvbXBpbGVkIHdpdGggImJpZyIgZmVhdHVyZXMuICBUaGUgImJpZyIgYmluYXJ5CmFyY2hpdmUgbm8gbG9uZ2VyIGV4aXN0cy4KClRoZSBpdGVtcyAiW1JPXSIsICJbK10iLCAiW2hlbHBdIiwgIltQcmV2aWV3XSIgYW5kICJbZmlsZXR5cGVdIiBpbgonc3RhdHVzbGluZScgbm8gbG9uZ2VyIGhhdmUgYSBsZWFkaW5nIHNwYWNlLgoKTm9uLVVuaXggc3lzdGVtczogV2hlbiBleHBhbmRpbmcgd2lsZGNhcmRzIGZvciB0aGUgVmltIGFyZ3VtZW50cywgZG9uJ3QgdXNlCidzdWZmaXhlcycuICBJdCBub3cgd29ya3MgYXMgaWYgdGhlIHNoZWxsIGhhZCBleHBhbmRlZCB0aGUgYXJndW1lbnRzLgoKVGhlICdsaXNwJywgJ3NtYXJ0aW5kZW50JyBhbmQgJ2NpbmRlbnQnIG9wdGlvbnMgYXJlIG5vdCBzd2l0Y2hlZCBvZmYgd2hlbgoncGFzdGUnIGlzIHNldC4gIFRoZSBhdXRvLWluZGVudGluZyBpcyBkaXNhYmxlZCB3aGVuICdwYXN0ZScgaXMgc2V0LCBidXQKbWFudWFsIGluZGVudGluZyB3aXRoICI9IiBzdGlsbCB3b3Jrcy4KCldoZW4gZm9ybWF0dGluZyB3aXRoICI9IiB1c2VzICdjaW5kZW50JyBvciAnaW5kZW50ZXhwcicgaW5kZW50aW5nLCBhbmQgdGhlcmUKaXMgbm8gY2hhbmdlIGluIGluZGVudCwgdGhpcyBpcyBub3QgY291bnRlZCBhcyBhIGNoYW5nZSAoJ21vZGlmaWVkJyBpc24ndCBzZXQKYW5kIHRoZXJlIGlzIG5vdGhpbmcgdG8gdW5kbykuCgpSZXBvcnQgJ21vZGlmaWVkJyBhcyBjaGFuZ2VkIHdoZW4gJ2ZpbGVlbmNvZGluZycgb3IgJ2ZpbGVmb3JtYXQnIHdhcyBzZXQuClRodXMgaXQgcmVmbGVjdHMgdGhlIHBvc3NpYmlsaXR5IHRvIGFiYW5kb24gdGhlIGJ1ZmZlciB3aXRob3V0IGxvc2luZyBjaGFuZ2VzLgoKVGhlICJTYXZlIEFzIiBtZW51IGVudHJ5IG5vdyBlZGl0cyB0aGUgc2F2ZWQgZmlsZS4gIE1vc3QgcGVvcGxlIGV4cGVjdCBpdCB0bwp3b3JrIGxpa2UgdGhpcy4KCkEgYnVmZmVyIGZvciBhIGRpcmVjdG9yeSBpcyBubyBsb25nZXIgYWRkZWQgdG8gdGhlIEJ1ZmZlcnMgbWVudS4KClJlbmFtZWQgPFJldHVybj4gdG8gPEVudGVyPiwgc2luY2UgdGhhdCdzIHdoYXQgaXQncyBjYWxsZWQgb24gbW9zdCBrZXlib2FyZHMuClRodXMgaXQncyBub3cgdGhlIGhpdC1lbnRlciBwcm9tcHQgaW5zdGVhZCBvZiB0aGUgaGl0LXJldHVybiBwcm9tcHQuCkNhbiBtYXAgPEVudGVyPiBqdXN0IGxpa2UgPENSPiBvciA8UmV0dXJuPi4KClRoZSBkZWZhdWx0IGZvciB0aGUgJ3ZpbWluZm8nIG9wdGlvbiBpcyBub3cgJzIwLCI1MCxoIHdoZW4gJ2NvbXBhdGlibGUnIGlzbid0CnNldC4gIE1vc3QgcGVvcGxlIHdpbGwgd2FudCB0byB1c2UgaXQsIGluY2x1ZGluZyBiZWdpbm5lcnMsIGJ1dCBpdCByZXF1aXJlZApzZXR0aW5nIHRoZSBvcHRpb24sIHdoaWNoIGlzbid0IHRoYXQgZWFzeS4KCkFmdGVyIHVzaW5nICI6Y29sZGVyIiB0aGUgbmV3ZXIgZXJyb3IgbGlzdHMgYXJlIG92ZXJ3cml0dGVuLiAgVGhpcyBtYWtlcyBpdApwb3NzaWJsZSB0byB1c2UgIjpncmVwIiB0byBicm93c2UgaW4gYSB0cmVlLWxpa2Ugd2F5LiAgTXVzdCB1c2UgIjpjbmV3ZXIgOTkiCnRvIGdldCB0aGUgb2xkIGJlaGF2aW9yLgoKVGhlIHBhdHRlcm5zIGluICdlcnJvcmZvcm1hdCcgd291bGQgc29tZXRpbWVzIGlnbm9yZSBjYXNlIChNUy1XaW5kb3dzKSBhbmQKc29tZXRpbWVzIG5vdCAoVW5peCkuICBOb3cgY2FzZSBpcyBhbHdheXMgaWdub3JlZC4gIEFkZCAiXEMiIHRvIHRoZSBwYXR0ZXJuIHRvCm1hdGNoIGNhc2UuCgpUaGUgMTYgYml0IE1TLURPUyB2ZXJzaW9uIGlzIG5vdyBjb21waWxlZCB3aXRob3V0IHRoZSArbGlzdGNtZHMgZmVhdHVyZQooYnVmZmVyIGxpc3QgbWFuaXB1bGF0aW9uIGNvbW1hbmRzKS4gIFRoZXkgYXJlIG5vdCBvZnRlbiBuZWVkZWQgYW5kIHRoaXMKZXhlY3V0YWJsZSBuZWVkcyB0byBiZSBzbWFsbGVyLgoKJ3Nlc3Npb25vcHRpb25zJyBub3cgaW5jbHVkZXMgImN1cmRpciIgYnkgZGVmYXVsdC4gIFRoaXMgbWVhbnMgdGhhdCByZXN0b3JpbmcKYSBzZXNzaW9uIHdpbGwgcmVzdWx0IGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBiZWluZyByZXN0b3JlZCwgaW5zdGVhZCBvZgpnb2luZyB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBzZXNzaW9uIGZpbGUgaXMgbG9jYXRlZC4KCkEgc2Vzc2lvbiBkZWxldGVkIGFsbCBidWZmZXJzLCBkZWxldGluZyBhbGwgbWFya3MuICBOb3cga2VlcCB0aGUgYnVmZmVyIGxpc3QsCml0IHNob3VsZG4ndCBodXJ0IGZvciBzb21lIGV4aXN0aW5nIGJ1ZmZlcnMgdG8gcmVtYWluIHByZXNlbnQuCldoZW4gdGhlIGFyZ3VtZW50IGxpc3QgaXMgZW1wdHkgIjphcmdkZWwgKiIgY2F1c2VkIGFuIGVycm9yIG1lc3NhZ2UuCgpObyBsb25nZXIgcHV0IHRoZSBzZWFyY2ggcGF0dGVybiBmcm9tIGEgdGFnIGp1bXAgaW4gdGhlIGhpc3RvcnkuCgpVc2UgIlNwZWNpYWxLZXkiIGhpZ2hsaWdodGluZyBmb3IgdW5wcmludGFibGUgY2hhcmFjdGVycyBpbnN0ZWFkIG9mICJOb25UZXh0Ii4KVGhlIGlkZWEgaXMgdGhhdCB1bnByaW50YWJsZSB0ZXh0IG9yIGFueSB0ZXh0IHRoYXQncyBkaXNwbGF5ZWQgZGlmZmVyZW50bHkKZnJvbSB0aGUgY2hhcmFjdGVycyBpbiB0aGUgZmlsZSBpcyB1c2luZyAiU3BlY2lhbEtleSIsIGFuZCAiTm9uVGV4dCIgaXMgdXNlZApmb3IgdGV4dCB0aGF0IGRvZXNuJ3QgcmVhbGx5IGV4aXN0IGluIHRoZSBmaWxlLgoKTW90aWYgbm93IHVzZXMgdGhlIHN5c3RlbSBkZWZhdWx0IGNvbG9ycyBmb3IgdGhlIG1lbnUgYW5kIHNjcm9sbGJhci4gIFVzZWQgdG8KYmUgZ3JleS4gIEl0J3Mgc3RpbGwgcG9zc2libGUgdG8gc2V0IHRoZSBjb2xvcnMgd2l0aCAiOmhpZ2hsaWdodCIgY29tbWFuZHMgYW5kCnJlc291cmNlcy4KCkZvcm1hdHRpbmcgdGV4dCB3aXRoICJncSIgYnJlYWtzIGEgcGFyYWdyYXBoIGF0IGEgbm9uLWVtcHR5IGJsYW5rIGxpbmUuClByZXZpb3VzbHkgdGhlIGxpbmUgd291bGQgYmUgcmVtb3ZlZCwgd2hpY2ggd2Fzbid0IHZlcnkgdXNlZnVsLgoKIjpub3JtYWwiIGRvZXMgbm8gbG9uZ2VyIGhhbmcgd2hlbiB0aGUgYXJndW1lbnQgZW5kcyBpbiBoYWxmIGEgY29tbWFuZC4KUHJldmlvdXNseSBWaW0gd291bGQgd2FpdCBmb3IgbW9yZSBjaGFyYWN0ZXJzIHRvIGJlIHR5cGVkLCB3aXRob3V0IHVwZGF0aW5nCnRoZSBzY3JlZW4uICBOb3cgaXQgcHJldGVuZHMgYW4gPEVzYz4gd2FzIHR5cGVkLgoKQml0bWFwcyBmb3IgdGhlIHRvb2xiYXIgYXJlIG5vIGxvbmdlciBzZWFyY2hlZCBmb3IgaW4gIiRWSU0vYml0bWFwcyIgYnV0IGluCnRoZSAiYml0bWFwcyIgZGlyZWN0b3JpZXMgaW4gJ3J1bnRpbWVwYXRoJy4KCk5vdyB1c2UgdGhlIENtZGxpbmUtbW9kZSBtZW51cyBmb3IgdGhlIGhpdC1lbnRlciBwcm9tcHQgaW5zdGVhZCBvZiB0aGUgTm9ybWFsCm1vZGUgbWVudXMuICBUaGlzIGdlbmVyYWxseSB3b3JrcyBiZXR0ZXIgYW5kIGFsbG93cyB1c2luZyB0aGUgIkNvcHkiIG1lbnUgdG8KcHJvZHVjZSBDVFJMLVkgdG8gY29weSB0aGUgbW9kZWxlc3Mgc2VsZWN0aW9uLgoKTW92ZWQgdGhlIGZvbnQgc2VsZWN0aW9uIGZyb20gdGhlIFdpbmRvdyB0byB0aGUgRWRpdCBtZW51LCB0b2dldGhlciB3aXRoIHRoZQpvdGhlciBzZXR0aW5ncy4KClRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgJ2lzZm5hbWUnIGluY2x1ZGUgbW9yZSBjaGFyYWN0ZXJzIHRvIG1ha2UgImdmIiB3b3JrCmJldHRlci4KCkNoYW5nZWQgdGhlIGxpY2Vuc2UgZm9yIHRoZSBkb2N1bWVudGF0aW9uIHRvIHRoZSBPcGVuIFB1YmxpY2F0aW9uIExpY2Vuc2UuClRoaXMgc2VlbWVkIGZhaXIsIGNvbnNpZGVyaW5nIHRoZSBpbmNsdXNpb24gb2YgcGFydHMgb2YgdGhlIFZpbSBib29rLCB3aGljaCBpcwphbHNvIHB1Ymxpc2hlZCB1bmRlciB0aGUgT1BMLiAgVGhlIGRvd25zaWRlIGlzIHRoYXQgd2UgY2FuJ3QgZm9yY2Ugc29tZW9uZSB3aG8Kd291bGQgc2VsbCBjb3BpZXMgb2YgdGhlIG1hbnVhbCB0byBjb250cmlidXRlIHRvIFVnYW5kYS4KCkFmdGVyICAiYXl5ICBkb24ndCBsZXQgICIieXkgIG9yICA6bGV0IEAiID0gdmFsICBvdmVyd3JpdGUgdGhlICJhIHJlZ2lzdGVyLgpVc2UgdGhlIHVubmFtZWQgcmVnaXN0ZXIgaW5zdGVhZC4KCk1TRE9TOiBBIHBhdHRlcm4gIiouKiIgcHJldmlvdXNseSBhbHNvIG1hdGNoZWQgYSBmaWxlIG5hbWUgd2l0aG91dCBhIGRvdC4KVGhpcyB3YXMgaW5jb25zaXN0ZW50IHdpdGggb3RoZXIgdmVyc2lvbnMuCgpJbiBJbnNlcnQgbW9kZSwgQ1RSTC1PIENUUkwtXCBDVFJMLU4ge2NtZH0gcmVtYWlucyBpbiBOb3JtYWwgbW9kZS4gIFByZXZpb3VzbHkKaXQgd291bGQgZ28gYmFjayB0byBJbnNlcnQgbW9kZSwgdGh1cyBjb25mdXNpbmcgdGhlIG1lYW5pbmcgb2YgQ1RSTC1cIENUUkwtTiwKd2hpY2ggaXMgc3VwcG9zZWQgdG8gdGFrZSB1cyB0byBOb3JtYWwgbW9kZSAoZXNwZWNpYWxseSBpbiAiOmFtZW51IikuCgpBbGxvdyB1c2luZyAiOiIgY29tbWFuZHMgYWZ0ZXIgYW4gb3BlcmF0b3IuICBDb3VsZCBiZSB1c2VkIHRvIGltcGxlbWVudCBhIG5ldwptb3ZlbWVudCBjb21tYW5kLiAgVGh1cyBpdCBubyBsb25nZXIgYWJvcnRzIGEgcGVuZGluZyBvcGVyYXRvci4KCkZvciB0aGUgQW1pZ2EgdGhlICItZCB7ZGV2aWNlfSIgYXJndW1lbnQgd2FzIHBvc3NpYmxlLiAgV2hlbiBjb21waWxlZCB3aXRoIHRoZQpkaWZmIGZlYXR1cmUsIHRoaXMgbm8gbG9uZ2VyIHdvcmtzLiAgVXNlICItZGV2IHtkZXZpY2V9IiBpbnN0ZWFkLiB8LWRldnwKCk1hZGUgdGhlIGRlZmF1bHQgbWFwcGluZ3MgZm9yIDxTLUluc2VydD4gaW4gSW5zZXJ0IG1vZGUgaW5zZXJ0IHRoZSB0ZXh0CmxpdGVyYWxseSwgYXZvaWRzIHRoYXQgc3BlY2lhbCBjaGFyYWN0ZXJzIGxpa2UgQlMgY2F1c2Ugc2lkZSBlZmZlY3RzLgoKVXNpbmcgIjpjb25maXJtIiBhcHBsaWVkIHRvIHRoZSByZXN0IG9mIHRoZSBsaW5lLiAgTm93IGl0IGFwcGxpZXMgb25seSB0byB0aGUKY29tbWFuZCByaWdodCBhZnRlciBpdC4gIFRodXMgIjpjb25maXJtIGlmIHggfCBlZGl0IHwgZW5kaWYiIG5vIGxvbmdlciB3b3JrcywKdXNlICI6aWYgeCB8IGNvbmZpcm0gZWRpdCB8IGVuZGlmIi4gIFRoaXMgd2FzIHRoZSBvcmlnaW5hbCBpbnRlbnRpb24sIHRoYXQgaXQKd29ya2VkIGRpZmZlcmVudGx5IHdhcyBhIGJ1Zy4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpORVcgRkVBVFVSRVMJCQkJCQkqbmV3LTYqCgpGb2xkaW5nCQkJCQkJCSpuZXctZm9sZGluZyoKLS0tLS0tLQoKVmltIGNhbiBub3cgZGlzcGxheSBhIGJ1ZmZlciB3aXRoIHRleHQgZm9sZGVkLiAgVGhpcyBhbGxvd3Mgb3ZlcnZpZXdpbmcgdGhlCnN0cnVjdHVyZSBvZiBhIGZpbGUgcXVpY2tseS4gIEl0IGlzIGFsc28gcG9zc2libGUgdG8geWFuaywgZGVsZXRlIGFuZCBwdXQKZm9sZGVkIHRleHQsIGZvciBleGFtcGxlIHRvIG1vdmUgYSBmdW5jdGlvbiB0byBhbm90aGVyIHBvc2l0aW9uLgoKVGhlcmUgaXMgYSB3aG9sZSBidW5jaCBvZiBuZXcgY29tbWFuZHMgYW5kIG9wdGlvbnMgcmVsYXRlZCB0byBmb2xkaW5nLgpTZWUgfGZvbGRpbmd8LgoKClZlcnRpY2FsbHkgc3BsaXQgd2luZG93cwkJCQkqbmV3LXZlcnRzcGxpdCoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpXaW5kb3dzIGNhbiBhbHNvIGJlIHNwbGl0IHZlcnRpY2FsbHkuICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUgd2luZG93cwpzaWRlIGJ5IHNpZGUuICBPbmUgbmljZSB1c2UgZm9yIHRoaXMgaXMgdG8gY29tcGFyZSB0d28gc2ltaWxhciBmaWxlcyAoc2VlCnxuZXctZGlmZi1tb2RlfCkuICBUaGUgJ3Njcm9sbGJpbmQnIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBzeW5jaHJvbml6ZQpzY3JvbGxpbmcuCgpBIHZlcnRpY2FsIHNwbGl0IGNhbiBiZSBjcmVhdGVkIHdpdGggdGhlIGNvbW1hbmRzOgoJOnZzcGxpdAkgIG9yICBDVFJMLVcgdiAgb3IgQ1RSTC1XIENUUkwtVgl8OnZzcGxpdHwKCTp2bmV3CQkJCQkJfDp2bmV3fAoJOnZlcnRpY2FsIHtjbWR9CQkJCQl8OnZlcnRpY2FsfApUaGUgbGFzdCBvbmUgaXMgYSBtb2RpZmllciwgd2hpY2ggaGFzIGEgbWVhbmluZyBmb3IgYW55IGNvbW1hbmQgdGhhdCBzcGxpdHMgYQp3aW5kb3cuICBGb3IgZXhhbXBsZTogPgoJOnZlcnRpY2FsIHN0YWcgbWFpbgpXaWxsIHZlcnRpY2FsbHkgc3BsaXQgdGhlIHdpbmRvdyBhbmQganVtcCB0byB0aGUgdGFnICJtYWluIiBpbiB0aGUgbmV3IHdpbmRvdy4KCk1vdmluZyBmcm9tIHdpbmRvdyB0byB3aW5kb3cgaG9yaXpvbnRhbGx5IGNhbiBiZSBkb25lIHdpdGggdGhlIHxDVFJMLVdfaHwgYW5kCnxDVFJMLVdfbHwgY29tbWFuZHMuICBUaGUgfENUUkwtV19rfCBhbmQgfENUUkwtV19qfCBjb21tYW5kcyBoYXZlIGJlZW4gY2hhbmdlZAp0byBqdW1wIHRvIHRoZSB3aW5kb3cgYWJvdmUgb3IgYmVsb3cgdGhlIGN1cnNvciBwb3NpdGlvbi4KClRoZSB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBzcGxpdHMgY2FuIGJlIG1peGVkIGFzIHlvdSBsaWtlLiAgUmVzaXppbmcgd2luZG93cwppcyBlYXN5IHdoZW4gdXNpbmcgdGhlIG1vdXNlLCBqdXN0IHBvc2l0aW9uIHRoZSBwb2ludGVyIG9uIGEgc3RhdHVzIGxpbmUgb3IKdmVydGljYWwgc2VwYXJhdG9yIGFuZCBkcmFnIGl0LiAgSW4gdGhlIEdVSSBhIHNwZWNpYWwgbW91c2UgcG9pbnRlciBzaGFwZQppbmRpY2F0ZXMgd2hlcmUgeW91IGNhbiBkcmFnIGEgc3RhdHVzIG9yIHNlcGFyYXRvciBsaW5lLgoKVG8gcmVzaXplIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93cyB1c2UgdGhlIHxDVFJMLVdfPHwgYW5kIHxDVFJMLVdfPnwgY29tbWFuZHMuClRvIG1ha2UgYSB3aW5kb3cgdGhlIG1heGltdW0gd2lkdGggdXNlIHRoZSBDVFJMLVcgfCBjb21tYW5kIHxDVFJMLVdfYmFyfC4KClRvIGZvcmNlIGEgbmV3IHdpbmRvdyB0byB1c2UgdGhlIGZ1bGwgd2lkdGggb3IgaGVpZ2h0IG9mIHRoZSBWaW0gd2luZG93LAp0aGVzZSB0d28gbW9kaWZpZXJzIGFyZSBhdmFpbGFibGU6Cgk6dG9wbGVmdCB7Y21kfQkJTmV3IHdpbmRvdyBhcHBlYXJzIGF0IHRoZSB0b3Agd2l0aCBmdWxsCgkJCQl3aWR0aCBvciBhdCB0aGUgbGVmdCB3aXRoIGZ1bGwgaGVpZ2h0LgoJOmJvdHJpZ2h0IHtjbWR9CQlOZXcgd2luZG93IGFwcGVhcnMgYXQgdGhlIGJvdHRvbSB3aXRoIGZ1bGwKCQkJCXdpZHRoIG9yIGF0IHRoZSByaWdodCB3aXRoIGZ1bGwgaGVpZ2h0LgpUaGlzIGNhbiBiZSBjb21iaW5lZCB3aXRoICI6dmVydGljYWwiIHRvIGZvcmNlIGEgdmVydGljYWwgc3BsaXQ6ID4KCTp2ZXJ0IGJvdCBkc3BsaXQgREVCVUcKVGhpcyB3aWxsIG9wZW4gYSB3aW5kb3cgYXQgdGhlIGZhciByaWdodCwgb2NjdXB5aW5nIHRoZSBmdWxsIGhlaWdodCBvZiB0aGUgVmltCndpbmRvdywgd2l0aCB0aGUgY3Vyc29yIG9uIHRoZSBmaXJzdCBkZWZpbml0aW9uIG9mICJERUJVRyIuClRoZSBoZWxwIHdpbmRvdyBpcyBvcGVuZWQgYXQgdGhlIHRvcCwgbGlrZSAiOnRvcGxlZnQiIHdhcyB1c2VkLCBpZiB0aGUgY3VycmVudAp3aW5kb3cgaXMgZmV3ZXIgdGhhbiA4MCBjaGFyYWN0ZXJzIHdpZGUuCgpBIGZldyBvcHRpb25zIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgcHJlZmVyZW5jZXMgZm9yIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93cy4KVGhleSB3b3JrIHNpbWlsYXIgdG8gdGhlaXIgZXhpc3RpbmcgaG9yaXpvbnRhbCBlcXVpdmFsZW50czoKCWhvcml6b250YWwJdmVydGljYWwgfgoJJ3NwbGl0YmVsb3cnCSdzcGxpdHJpZ2h0JwoJJ3dpbmhlaWdodCcJJ3dpbndpZHRoJwoJJ3dpbm1pbmhlaWdodCcJJ3dpbm1pbndpZHRoJwpJdCdzIHBvc3NpYmxlIHRvIHNldCAnd2lubWlud2lkdGgnIHRvIHplcm8sIHNvIHRoYXQgdGVtcG9yYXJpbHkgdW51c2VkIHdpbmRvd3MKaGFyZGx5IHRha2UgdXAgc3BhY2Ugd2l0aG91dCBjbG9zaW5nIHRoZW0uCgpUaGUgbmV3ICdlYWRpcmVjdGlvbicgb3B0aW9uIHRlbGxzIHdoZXJlICdlcXVhbGFsd2F5cycgYXBwbGllczoKCTpzZXQgZWFkaXJlY3Rpb249Ym90aAkJYm90aCBkaXJlY3Rpb25zCgk6c2V0IGVhZGlyZWN0aW9uPXZlcgkJZXF1YWxpemUgd2luZG93IGhlaWdodHMKCTpzZXQgZWFkaXJlY3Rpb249aG9yCQllcXVhbGl6ZSB3aW5kb3dzIHdpZHRocwpUaGlzIGNhbiBiZSB1c2VkIHRvIGF2b2lkIGNoYW5naW5nIHdpbmRvdyBzaXplcyB3aGVuIHlvdSB3YW50IHRvIGtlZXAgdGhlbS4KClNpbmNlIHdpbmRvd3MgY2FuIGJlY29tZSBxdWl0ZSBuYXJyb3cgd2l0aCB2ZXJ0aWNhbCBzcGxpdHMsIHRleHQgbGluZXMgd2lsbApvZnRlbiBub3QgZml0LiAgVGhlICdzaWRlc2Nyb2xsb2ZmJyBoYXMgYmVlbiBhZGRlZCB0byBrZWVwIHNvbWUgY29udGV4dCBsZWZ0CmFuZCByaWdodCBvZiB0aGUgY3Vyc29yLiAgVGhlICdsaXN0Y2hhcnMnIG9wdGlvbiBoYXMgYmVlbiBleHRlbmRlZCB3aXRoIHRoZQoicHJlY2VkZXMiIGl0ZW0sIHRvIHNob3cgYSAiPCIgZm9yIGV4YW1wbGUsIHdoZW4gdGhlcmUgaXMgdGV4dCBsZWZ0IG9mZiB0aGUKc2NyZWVuLiAoVXR6LVV3ZSBIYXVzKQoKIi1PIiBjb21tYW5kIGxpbmUgYXJndW1lbnQ6IExpa2UgIi1vIiBidXQgc3BsaXQgd2luZG93cyB2ZXJ0aWNhbGx5LiAoU2NvdHQKVXJiYW4pCgpBZGRlZCBjb21tYW5kcyB0byBtb3ZlIHRoZSBjdXJyZW50IHdpbmRvdyB0byB0aGUgdmVyeSB0b3AgKENUUkwtVyBLKSwgYm90dG9tCihDVFJMLVcgSiksIGxlZnQgKENUUkwtVyBIKSBhbmQgcmlnaHQgKENUUkwtVyBMKS4gIEluIHRoZSBuZXcgcG9zaXRpb24gdGhlCndpbmRvdyB1c2VzIHRoZSBmdWxsIHdpZHRoL2hlaWdodCBvZiB0aGUgc2NyZWVuLgoKV2hlbiB0aGVyZSBpcyBub3QgZW5vdWdoIHJvb20gaW4gdGhlIHN0YXR1cyBsaW5lIGZvciBib3RoIHRoZSBmaWxlIG5hbWUgYW5kCnRoZSBydWxlciwgdXNlIHVwIHRvIGhhbGYgdGhlIHdpZHRoIGZvciB0aGUgcnVsZXIuICBVc2VmdWwgZm9yIG5hcnJvdyB3aW5kb3dzLgoKCkRpZmYgbW9kZQkJCQkJCSpuZXctZGlmZi1tb2RlKgotLS0tLS0tLS0KCkluIGRpZmYgbW9kZSBWaW0gc2hvd3MgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdHdvLCB0aHJlZSBvciBmb3VyIGZpbGVzLgpGb2xkaW5nIGlzIHVzZWQgdG8gaGlkZSB0aGUgcGFydHMgb2YgdGhlIGZpbGUgdGhhdCBhcmUgZXF1YWwuCkhpZ2hsaWdodGluZyBpcyB1c2VkIHRvIHNob3cgZGVsZXRlZCBhbmQgY2hhbmdlZCBsaW5lcy4KU2VlIHxkaWZmLW1vZGV8LgoKQW4gZWFzeSB3YXkgdG8gc3RhcnQgaW4gZGlmZiBtb2RlIGlzIHRvIHN0YXJ0IFZpbSBhcyAidmltZGlmZiBmaWxlMSBmaWxlMiIuCkFkZGVkIHRoZSB2aW1kaWZmIG1hbnBhZ2UuCgpJbiBhIHJ1bm5pbmcgVmltIHRoZSB8OmRpZmZzcGxpdHwgY29tbWFuZCBzdGFydHMgZGlmZiBtb2RlIGZvciB0aGUgY3VycmVudApmaWxlIGFuZCBhbm90aGVyIGZpbGUuICBUaGUgfDpkaWZmcGF0Y2h8IGNvbW1hbmQgc3RhcnRzIGRpZmYgbW9kZSB1c2luZyB0aGUKY3VycmVudCBmaWxlIGFuZCBhIHBhdGNoIGZpbGUuICBUaGUgfDpkaWZmdGhpc3wgY29tbWFuZCBzdGFydHMgZGlmZiBtb2RlIGZvcgp0aGUgY3VycmVudCB3aW5kb3cuCgpEaWZmZXJlbmNlcyBjYW4gYmUgcmVtb3ZlZCB3aXRoIHRoZSB8OmRpZmZnZXR8IGFuZCB8OmRpZmZwdXR8IGNvbW1hbmRzLgoKLSBUaGUgJ2RpZmYnIG9wdGlvbiBzd2l0Y2hlcyBkaWZmIG1vZGUgb24gaW4gYSB3aW5kb3cuCi0gVGhlIHw6ZGlmZnVwZGF0ZXwgY29tbWFuZCByZWZyZXNoZXMgdGhlIGRpZmZzLgotIFRoZSAnZGlmZm9wdCcgb3B0aW9uIGNoYW5nZXMgaG93IGRpZmZzIGFyZSBkaXNwbGF5ZWQuCi0gVGhlICdkaWZmZXhwcicgb3B0aW9uIGNhbiBiZSBzZXQgaG93IGEgZGlmZiBpcyB0byBiZSBjcmVhdGVkLgotIFRoZSAncGF0Y2hleHByJyBvcHRpb24gY2FuIGJlIHNldCBob3cgcGF0Y2ggaXMgYXBwbGllZCB0byBhIGZpbGUuCi0gQWRkZWQgdGhlICJkaWZmIiBmb2xkaW5nIG1ldGhvZC4gIFdoZW4gb3BlbmluZyBhIHdpbmRvdyBmb3IgZGlmZi1tb2RlLCBzZXQKICAnZm9sZGxldmVsJyB0byB6ZXJvIGFuZCAnZm9sZGVuYWJsZScgb24sIHRvIGNsb3NlIHRoZSBmb2xkcy4KLSBBZGRlZCB0aGUgRGlmZkFkZCwgRGlmZkNoYW5nZSwgRGlmZkRlbGV0ZSBhbmQgRGlmZlRleHQgaGlnaGxpZ2h0IGdyb3VwcyB0bwogIHNwZWNpZnkgdGhlIGhpZ2hsaWdodGluZyBmb3IgZGlmZmVyZW5jZXMuICBUaGUgZGVmYXVsdHMgYXJlIHVnbHkuLi4KLSBVbml4OiBtYWtlIGEgdmltZGlmZiBzeW1ib2xpYyBsaW5rIGZvciAibWFrZSBpbnN0YWxsIi4KLSBSZW1vdmVkIHRoZSBub3cgb2Jzb2xldGUgInZpbWRpZmYudmltIiBzY3JpcHQgZnJvbSB0aGUgZGlzdHJpYnV0aW9uLgotIEFkZGVkIHRoZSAiW2MiIGFuZCAiXWMiIGNvbW1hbmRzIHRvIG1vdmUgdG8gdGhlIG5leHQvcHJldmlvdXMgY2hhbmdlIGluIGRpZmYKICBtb2RlLgoKCkVhc3kgVmltOiBjbGljay1hbmQtdHlwZQkJCQkqbmV3LWV2aW0qCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZVZpbSBzdGFuZHMgZm9yICJFYXN5IFZpbSIuICBUaGlzIGlzIGEgc2VwYXJhdGUgcHJvZ3JhbSwgYnV0IGNhbiBhbHNvIGJlCnN0YXJ0ZWQgYXMgInZpbSAteSIuCgpUaGlzIHN0YXJ0cyBWaW0gd2l0aCAnaW5zZXJ0bW9kZScgc2V0IHRvIGFsbG93IGNsaWNrLWFuZC10eXBlIGVkaXRpbmcuICBUaGUKJFZJTVJVTlRJTUUvZXZpbS52aW0gc2NyaXB0IGlzIHVzZWQgdG8gYWRkIG1hcHBpbmdzIGFuZCBzZXQgb3B0aW9ucyB0byBiZSBhYmxlCnRvIGRvIG1vc3QgdGhpbmdzIGxpa2UgTm90ZXBhZC4gIFRoaXMgaXMgb25seSBmb3IgcGVvcGxlIHdobyBjYW4ndCBzdGFuZCB0d28KbW9kZXMuCgplVmlldyBkb2VzIHRoZSBzYW1lIGJ1dCBpbiByZWFkb25seSBtb2RlLgoKSW4gdGhlIEdVSSBhIENUUkwtQyBub3cgb25seSBpbnRlcnJ1cHRzIHdoZW4gYnVzeSB3aXRoIHNvbWV0aGluZywgbm90IHdoZW4Kd2FpdGluZyBmb3IgYSBjaGFyYWN0ZXIuICBBbGxvd3MgdXNpbmcgQ1RSTC1DIHRvIGNvcHkgdGV4dCB0byB0aGUgY2xpcGJvYXJkLgoKClVzZXIgbWFudWFsCQkJCQkJKm5ldy11c2VyLW1hbnVhbCoKLS0tLS0tLS0tLS0KClRoZSB1c2VyIG1hbnVhbCBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIG9yZ2FuaXNlZCBhcm91bmQgZWRpdGluZyB0YXNrcy4gIEl0CnJlYWRzIGxpa2UgYSBib29rLCBmcm9tIHN0YXJ0IHRvIGVuZC4gIEl0IHNob3VsZCBhbGxvdyBiZWdpbm5lcnMgdG8gc3RhcnQKbGVhcm5pbmcgVmltLiAgSXQgaGVscHMgZXZlcnlib2R5IHRvIGxlYXJuIHVzaW5nIHRoZSBtb3N0IHVzZWZ1bCBWaW0gZmVhdHVyZXMuCkl0IGlzIG11Y2ggZWFzaWVyIHRvIHJlYWQgdGhhbiB0aGUgcmVmZXJlbmNlIG1hbnVhbCwgYnV0IG9taXRzIGRldGFpbHMuICBTZWUKfHVzZXItbWFudWFsfC4KClRoZSB1c2VyIG1hbnVhbCBpbmNsdWRlcyBwYXJ0cyBvZiB0aGUgVmltIGJvb2sgYnkgU3RldmUgT3VhbGxpbmUgfGZyb21ib29rfC4KSXQgaXMgcHVibGlzaGVkIHVuZGVyIHRoZSBPUEwgfG1hbnVhbC1jb3B5cmlnaHR8LgoKV2hlbiBzeW50YXggaGlnaGxpZ2h0aW5nIGlzIG5vdCBlbmFibGVkLCB0aGUgY2hhcmFjdGVycyBpbiB0aGUgaGVscCBmaWxlIHdoaWNoCm1hcmsgZXhhbXBsZXMgKCc+JyBhbmQgJzwnKSBhbmQgaGVhZGVyIGxpbmVzICgnficpIGFyZSByZXBsYWNlZCB3aXRoIGEgc3BhY2UuCgpXaGVuIGNsb3NpbmcgdGhlIGhlbHAgd2luZG93LCB0aGUgd2luZG93IGxheW91dCBpcyByZXN0b3JlZCBmcm9tIGJlZm9yZQpvcGVuaW5nIGl0LCBpZiB0aGUgd2luZG93IGxheW91dCBkaWRuJ3QgY2hhbmdlIHNpbmNlIHRoZW4uCldoZW4gb3BlbmluZyB0aGUgaGVscCB3aW5kb3csIHB1dCBpdCBhdCB0aGUgdG9wIG9mIHRoZSBWaW0gd2luZG93IGlmIHRoZQpjdXJyZW50IHdpbmRvdyBpcyBmZXdlciB0aGFuIDgwIGNoYXJhY3RlcnMgYW5kIG5vdCBmdWxsIHdpZHRoLgoKCkZsZXhpYmxlIGluZGVudGluZwkJCQkJKm5ldy1pbmRlbnQtZmxleCoKLS0tLS0tLS0tLS0tLS0tLS0tCgpBdXRvbWF0aWMgaW5kZW50aW5nIGlzIG5vdyBwb3NzaWJsZSBmb3IgYW55IGxhbmd1YWdlLiAgSXQgd29ya3Mgd2l0aCBhIFZpbQpzY3JpcHQsIHdoaWNoIG1ha2VzIGl0IHZlcnkgZmxleGlibGUgdG8gY29tcHV0ZSB0aGUgaW5kZW50LgoKVGhlICI6ZmlsZXR5cGUgaW5kZW50IG9uIiBjb21tYW5kIGVuYWJsZXMgdXNpbmcgdGhlIHByb3ZpZGVkIGluZGVudCBzY3JpcHRzLgpUaGlzIGlzIGV4cGxhaW5lZCBpbiB0aGUgdXNlciBtYW51YWw6IHwzMC4zfC4KClRoZSAnaW5kZW50ZXhwcicgb3B0aW9uIGlzIGV2YWx1YXRlZCB0byBnZXQgdGhlIGluZGVudCBmb3IgYSBsaW5lLiAgVGhlCidpbmRlbnRrZXlzJyBvcHRpb24gdGVsbHMgd2hlbiB0byB0cmlnZ2VyIHJlLWluZGVudGluZy4gIE5vcm1hbGx5IHRoZXNlCm9wdGlvbnMgYXJlIHNldCBmcm9tIGFuIGluZGVudCBzY3JpcHQuICBMaWtlIFN5bnRheCBmaWxlcywgaW5kZW50IHNjcmlwdHMgd2lsbApiZSBjcmVhdGVkIGFuZCBtYWludGFpbmVkIGJ5IG1hbnkgcGVvcGxlLgoKCkV4dGVuZGVkIHNlYXJjaCBwYXR0ZXJucwkJCQkqbmV3LXNlYXJjaHBhdCoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpBZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gbWF0Y2ggbW9yZSB0aGFuIG9uZSBsaW5lIHdpdGggYSBwYXR0ZXJuLiAocGFydGx5IGJ5CkxvaWMgR3JlbmllKQpOZXcgaXRlbXMgaW4gYSBzZWFyY2ggcGF0dGVybiBmb3IgbXVsdGktbGluZSBtYXRjaGVzOgpcbgkJbWF0Y2ggZW5kLW9mLWxpbmUsIGFsc28gaW4gW10KXF9bXQkJbWF0Y2ggY2hhcmFjdGVycyBpbiByYW5nZSBhbmQgZW5kLW9mLWxpbmUKXF94CQltYXRjaCBjaGFyYWN0ZXIgY2xhc3MgYW5kIGVuZC1vZi1saW5lClxfLgkJbWF0Y2ggYW55IGNoYXJhY3RlciBvciBlbmQtb2YtbGluZQpcX14JCW1hdGNoIHN0YXJ0LW9mLWxpbmUsIGNhbiBiZSB1c2VkIGFueXdoZXJlIGluIHRoZSByZWdleHAKXF8kCQltYXRjaCBlbmQtb2YtbGluZSwgY2FuIGJlIHVzZWQgYW55d2hlcmUgaW4gdGhlIHJlZ2V4cAoKVmFyaW91cyBvdGhlciBuZXcgaXRlbXMgaW4gc2VhcmNoIHBhdHRlcm5zOgpcYwkJaWdub3JlIGNhc2UgZm9yIHRoZSB3aG9sZSBwYXR0ZXJuClxDCQltYXRjaCBjYXNlIGZvciB0aGUgd2hvbGUgcGF0dGVybgpcbQkJbWFnaWMgb24gZm9yIHRoZSBmb2xsb3dpbmcKXE0JCW1hZ2ljIG9mZiBmb3IgdGhlIGZvbGxvd2luZwpcdgkJbWFrZSBmb2xsb3dpbmcgY2hhcmFjdGVycyAidmVyeSBtYWdpYyIKXFYJCW1ha2UgZm9sbG93aW5nIGNoYXJhY3RlcnMgInZlcnkgbm9tYWdpYyIKClxAIQkJZG9uJ3QgbWF0Y2ggYXRvbSBiZWZvcmUgdGhpcy4KCQlFeGFtcGxlOiAiZm9vXChiYXJcKVxAISIgbWF0Y2hlcyAiZm9vICIgYnV0IG5vdCAiZm9vYmFyIi4KXEA9CQltYXRjaCBhdG9tLCByZXN1bHRpbmcgaW4gIHplcm8td2lkdGggbWF0Y2gKCQlFeGFtcGxlOiAiZm9vXChiYXJcKVxAPSIgbWF0Y2hlcyAiZm9vIiBpbiAiZm9vYmFyIi4KXEA8IQkJZG9uJ3QgbWF0Y2ggcHJlY2VkaW5nIGF0b20gYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uClxAPD0JCW1hdGNoIHByZWNlZGluZyBhdG9tIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbgpcQD4JCW1hdGNoIHByZWNlZGluZyBhdG9tIGFzIGEgc3ViZXhwcmVzc2lvbgoKXCYJCW1hdGNoIG9ubHkgd2hlbiBicmFuY2ggYmVmb3JlIGFuZCBhZnRlciBpdCBtYXRjaAoKXCVbXQkJb3B0aW9uYWxseSBtYXRjaCBhIGxpc3Qgb2YgYXRvbXM7ICJlbmRcJVtpZl0iIG1hdGNoZXMgImVuZCIsCgkJImVuZGkiIGFuZCAiZW5kaWYiClwlKFwpCQlsaWtlIFwoXCksIGJ1dCB3aXRob3V0IGNyZWF0aW5nIGEgYmFjay1yZWZlcmVuY2U7IHRoZXJlIGNhbiBiZQoJCWFueSBudW1iZXIgb2YgdGhlc2UsIG92ZXJjb21lcyB0aGUgbGltaXQgb2YgbmluZSBcKCBcKSBwYWlycwpcJV4JCW1hdGNoIHN0YXJ0LW9mLWZpbGUgKENoYXNlIFRpbmdsZXkpClwlJAkJbWF0Y2ggZW5kLW9mLWZpbGUgKENoYXNlIFRpbmdsZXkpClwlIwkJTWF0Y2ggd2l0aCB0aGUgY3Vyc29yIHBvc2l0aW9uLiAoQ2hhc2UgVGluZ2xleSkKXD8JCUp1c3QgbGlrZSAiXD0iIGJ1dCBjYW4ndCBiZSB1c2VkIGluIGEgIj8iIGNvbW1hbmQuCgpcJTIzbAkJbWF0Y2ggaW4gbGluZSAyMwpcJTwyM2wJCW1hdGNoIGJlZm9yZSBsaW5lIDIzClwlPjIzbAkJbWF0Y2ggYWZ0ZXIgbGluZSAyMwpcJTIzYywgXCU8MjNjLCBcJT4yM2MgICBtYXRjaCBpbi9iZWZvcmUvYWZ0ZXIgY29sdW1uIDIzClwlMjN2LCBcJTwyM3YsIFwlPjIzdgltYXRjaCBpbi9iZWZvcmUvYWZ0ZXIgdmlydHVhbCBjb2x1bW4gMjMKCgpGb3Igc3ludGF4IGl0ZW1zOgpceiguLi5cKQlleHRlcm5hbCByZWZlcmVuY2UgbWF0Y2ggc2V0IChpbiByZWdpb24gc3RhcnQgcGF0dGVybikKXHoxIC0gXHo5CWV4dGVybmFsIHJlZmVyZW5jZSBtYXRjaCB1c2UgKGluIHJlZ2lvbiBza2lwIG9yIGVuZCBwYXR0ZXJuKQoJKFNjb3R0IEJpZ2hhbSkKClx6cwkJdXNlIHBvc2l0aW9uIGFzIHN0YXJ0IG9mIG1hdGNoClx6ZQkJdXNlIHBvc2l0aW9uIGFzIGVuZCBvZiBtYXRjaAoKUmVtb3ZlZCBsaW1pdCBvZiBtYXRjaGluZyBvbmx5IHVwIHRvIDMyNzY3IHRpbWVzIHdpdGggKiwgXCssIGV0Yy4KCkFkZGVkIHN1cHBvcnQgdG8gbWF0Y2ggbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLiAocGFydGx5IGJ5IE11cmFva2EgVGFybykKTWFkZSAiXDwiIGFuZCAiXD4iIHdvcmsgZm9yIFVURi04LiAoTXVyYW9rYSBUYXJvKQoKClVURi04IHN1cHBvcnQJCQkJCQkqbmV3LXV0Zi04KgotLS0tLS0tLS0tLS0tCgpWaW0gY2FuIG5vdyBlZGl0IGZpbGVzIGluIFVURi04IGVuY29kaW5nLiAgVXAgdG8gMzEgYml0IGNoYXJhY3RlcnMgY2FuIGJlCnVzZWQsIGJ1dCBvbmx5IDE2IGJpdCBjaGFyYWN0ZXJzIGFyZSBkaXNwbGF5ZWQuICBVcCB0byB0d28gY29tYmluaW5nCmNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZCwgdGhleSBvdmVycHJpbnQgdGhlIHByZWNlZGluZyBjaGFyYWN0ZXIuCkRvdWJsZS13aWRlIGNoYXJhY3RlcnMgYXJlIGFsc28gc3VwcG9ydGVkLiAgU2VlIHxVVEYtOHwuCgpVQ1MtMiwgVUNTLTQgYW5kIFVURi0xNiBlbmNvZGluZ3MgYXJlIHN1cHBvcnRlZCB0b28sIHRoZXkgYXJlIGNvbnZlcnRlZCB0bwpVVEYtOCBpbnRlcm5hbGx5LiAgVGhlcmUgaXMgYWxzbyBzdXBwb3J0IGZvciBlZGl0aW5nIFVuaWNvZGUgZmlsZXMgaW4gYSBMYXRpbjEKZW52aXJvbm1lbnQuICBPdGhlciBlbmNvZGluZ3MgYXJlIGNvbnZlcnRlZCB3aXRoIGljb252KCkgb3IgYW4gZXh0ZXJuYWwKY29udmVydGVyIHNwZWNpZmllZCB3aXRoICdjaGFyY29udmVydCcuCgpNYW55IG5ldyBpdGVtcyBmb3IgTXVsdGktYnl0ZSBzdXBwb3J0OgotIEFkZGVkICdlbmNvZGluZycgb3B0aW9uOiBzcGVjaWZpZXMgY2hhcmFjdGVyIGVuY29kaW5nIHVzZWQgaW5zaWRlIFZpbS4gIEl0CiAgY2FuIGJlIGFueSA4LWJpdCBlbmNvZGluZywgc29tZSBkb3VibGUtYnl0ZSBlbmNvZGluZ3Mgb3IgVW5pY29kZS4KICBJdCBpcyBpbml0aWFsaXplZCBmcm9tIHRoZSBlbnZpcm9ubWVudCB3aGVuIGEgc3VwcG9ydGVkIHZhbHVlIGlzIGZvdW5kLgotIEFkZGVkICdmaWxlZW5jb2RpbmcnIGFuZCAnZmlsZWVuY29kaW5ncyc6IHNwZWNpZnkgY2hhcmFjdGVyIGNvZGluZyBpbiBhCiAgZmlsZSwgc2ltaWxhciB0byAnZmlsZWZvcm1hdCcgYW5kICdmaWxlZm9ybWF0cycuCiAgV2hlbiAnZW5jb2RpbmcnIGlzICJ1dGYtOCIgYW5kICdmaWxlZW5jb2RpbmdzJyBpcyAidXRmLTgsbGF0aW4xIiB0aGlzIHdpbGwKICBhdXRvbWF0aWNhbGx5IHN3aXRjaCB0byBsYXRpbjEgaWYgYSBmaWxlIGRvZXMgbm90IGNvbnRhaW4gdmFsaWQgVVRGLTguCi0gQWRkZWQgJ2JvbWInIG9wdGlvbiBhbmQgZGV0ZWN0aW9uIG9mIGEgQk9NIGF0IHRoZSBzdGFydCBvZiBhIGZpbGUuICBDYW4gYmUKICB1c2VkIHdpdGggInVjcy1ib20iIGluICdmaWxlZW5jb2RpbmdzJyB0byBhdXRvbWF0aWNhbGx5IGRldGVjdCBhIFVuaWNvZGUKICBmaWxlIGlmIGl0IHN0YXJ0cyB3aXRoIGEgQk9NLiAgRXNwZWNpYWxseSB1c2VmdWwgb24gTVMtV2luZG93cyAoTlQgYW5kCiAgMjAwMCksIHdoaWNoIHVzZXMgdWNzLTJsZSBmaWxlcyB3aXRoIGEgQk9NIChlLmcuLCB3aGVuIGV4cG9ydGluZyB0aGUKICByZWdpc3RyeSkuCi0gQWRkZWQgdGhlICd0ZXJtZW5jb2RpbmcnIG9wdGlvbjogU3BlY2lmaWVzIHRoZSBlbmNvZGluZyB1c2VkIGZvciB0aGUKICB0ZXJtaW5hbC4gIFVzZWZ1bCB0byBwdXQgVmltIGluIHV0Zi04IG1vZGUgd2hpbGUgaW4gYSBub24tVW5pY29kZSBsb2NhbGU6ID4KICAgIDpsZXQgJnRlcm1lbmNvZGluZyA9ICZlbmNvZGluZwogICAgOnNldCBlbmNvZGluZz11dGYtOAotIFdoZW4gJ3ZpbWluZm8nIGNvbnRhaW5zIHRoZSAnYycgZmxhZywgdGhlIHZpbWluZm8gZmlsZSBpcyBjb252ZXJ0ZWQgZnJvbSB0aGUKICAnZW5jb2RpbmcnIGl0IHdhcyB3cml0dGVuIHdpdGggdG8gdGhlIGN1cnJlbnQgJ2VuY29kaW5nJy4KLSBBZGRlZCAiOnNjcmlwdGVuY29kaW5nIiBjb21tYW5kOiBjb252ZXJ0IGxpbmVzIGluIGEgc291cmNlZCBzY3JpcHQgdG8KICAnZW5jb2RpbmcnLiAgVXNlZnVsIGZvciBtZW51IGZpbGVzLgotIEFkZGVkICdndWlmb250d2lkZScgdG8gc3BlY2lmeSBhIGZvbnQgZm9yIGRvdWJsZS13aWRlIGNoYXJhY3RlcnMuCi0gQWRkZWQgS29yZWFuIHN1cHBvcnQgZm9yIGNoYXJhY3RlciBjbGFzcyBkZXRlY3Rpb24uICBBbHNvIGZpeCBjbHMoKSBpbgogIHNlYXJjaC5jLiAoQ2hvbmctRGFlIFBhcmspCi0gV2luMzI6IFR5cGluZyBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgd2l0aG91dCBJTUUuIChBbGV4YW5kZXIgU21pc2hsYWpldikKLSBXaW4zMiB3aXRoIE1pbmd3OiBjb21waWxlIHdpdGggaWNvbnYgbGlicmFyeS4gKFJvbiBBYXJvbikKLSBXaW4zMiB3aXRoIE1TVkM6IGR5bmFtaWNhbGx5IGxvYWQgaWNvbnYuZGxsIGxpYnJhcnkuIChNdXJhb2thIFRhcm8pCi0gTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBhIHZlcnNpb24gd2l0aCBtdWx0aS1ieXRlIGFuZCBpY29udiBzdXBwb3J0IHdpdGgKICBCb3JsYW5kIDUuNS4gIChZYXN1aGlybyBNYXRzdW1vdG8pCi0gQWRkZWQgJ2RlbGNvbWJpbmUnIG9wdGlvbjogRGVsZXRlIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VwYXJhdGVseS4gKFJvbgogIEFhcm9uKQotIFRoZSAieGZvbnRzZXQiIGZlYXR1cmUgaXNuJ3QgcmVxdWlyZWQgZm9yICJ4aW0iLiAgVGhlc2UgYXJlIG5vdyB0d28KICBpbmRlcGVuZGVudCBmZWF0dXJlcy4KLSBYSU06IGVuYWJsZSBYSU0gd2hlbiB0eXBpbmcgYSBsYW5ndWFnZSBjaGFyYWN0ZXIgKEluc2VydCBtb2RlLCBTZWFyY2gKICBwYXR0ZXJuLCAiZiIgb3IgInIiIGNvbW1hbmQpLiAgRGlzYWJsZSBYSU0gd2hlbiB0eXBpbmcgYSBOb3JtYWwgbW9kZQogIGNvbW1hbmQuCi0gV2hlbiB0aGUgWElNIGlzIGFjdGl2ZSwgc2hvdyAiWElNIiBpbiB0aGUgJ3Nob3dtb2RlJyBtZXNzYWdlLiAoTmFtIFN1bmdIeXVuKQotIFN1cHBvcnQgIkN1cnNvcklNIiBmb3IgWElNLiAgKE5hbSBTdW5nSHl1bikKLSBBZGRlZCAnbScgZmxhZyB0byAnZm9ybWF0b3B0aW9ucyc6IFdoZW4gd3JhcHBpbmcgd29yZHMsIGFsbG93IHNwbGl0dGluZyBhdAogIGVhY2ggbXVsdGlieXRlIGNoYXJhY3Rlciwgbm90IG9ubHkgYXQgYSBzcGFjZS4KLSBNYWRlICI6c3ludGF4IGtleXdvcmQiIHdvcmsgd2l0aCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuCi0gQWRkZWQgc3VwcG9ydCBmb3IgVW5pY29kZSB1cHBlci9sb3dlcmNhc2UgZmxpcHBpbmcgYW5kIGNvbXBhcmluZy4gKGJhc2VkIG9uCiAgcGF0Y2ggYnkgUmFwaGFlbCBGaW5rZWwpCiAgTGV0ICJ+IiBvbiBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgdGhhdCBoYXZlIGEgdGhpcmQgY2FzZSAoInRpdGxlIGNhc2UiKQogIHN3aXRjaCBiZXR3ZWVuIHRoZSB0aHJlZSBjYXNlcy4gKFJhcGhhZWwgRmlua2VsKQoKQWxsb3cgZGVmaW5pbmcgZGlncmFwaHMgZm9yIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KQWRkZWQgUkZDMTM0NSBkaWdyYXBocyBmb3IgVW5pY29kZS4KTW9zdCBOb3JtYWwgbW9kZSBjb21tYW5kcyB0aGF0IGFjY2VwdCBhIGNoYXJhY3RlciBhcmd1bWVudCwgbGlrZSAiciIsICJ0IiBhbmQKImYiIG5vdyBhY2NlcHQgYSBkaWdyYXBoLiAgVGhlICdEJyBmbGFnIGluICdjcG9wdGlvbnMnIGRpc2FibGVzIHRoaXMgdG8gcmVtYWluClZpIGNvbXBhdGlibGUuCgpBZGRlZCBMYW5ndWFnZSBtYXBwaW5nIGFuZCAna2V5bWFwJyB0byBiZSBhYmxlIHRvIHR5cGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzOgotIEFkZGVkIHRoZSAiOmxtYXAiIGNvbW1hbmQgYW5kIGZyaWVuZHM6IERlZmluZSBtYXBwaW5ncyB0aGF0IGFyZSB1c2VkIHdoZW4KICB0eXBpbmcgY2hhcmFjdGVycyBpbiB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQuICBBbHNvIGZvciAiciIsICJ0IiwgZXRjLiAgSW4KICBJbnNlcnQgYW5kIENvbW1hbmQtbGluZSBtb2RlIENUUkwtXiBzd2l0Y2hlcyB0aGUgdXNlIG9mIHRoZSBtYXBwaW5ncyBvbi9vZmYuCiAgQ1RSTC1eIGFsc28gdG9nZ2xlcyB0aGUgdXNlIG9mIGFuIGlucHV0IG1ldGhvZCB3aGVuIG5vIGxhbmd1YWdlIG1hcHBpbmdzIGFyZQogIHByZXNlbnQuICBBbGxvd3Mgc3dpdGNoaW5nIHRoZSBJTSBiYWNrIG9uIGhhbGZ3YXkgdHlwaW5nLgotICI8Y2hhci0xMjM+IiBhcmd1bWVudCB0byAiOm1hcCIsIGFsbG93cyB0byBzcGVjaWZ5IHRoZSBkZWNpbWFsLCBvY3RhbCBvcgogIGhleGFkZWNpbWFsIHZhbHVlIG9mIGEgY2hhcmFjdGVyLgotIEltcGxlbWVudGVkIHRoZSAna2V5bWFwJyBvcHRpb246IExvYWQgYSBrZXltYXAgZmlsZS4gIFVzZXMgIjpsbm9yZW1hcCIgdG8KICBkZWZpbmUgbWFwcGluZ3MgZm9yIHRoZSBrZXltYXAuICBUaGUgbmV3ICI6bG9hZGtleW1hcCIgY29tbWFuZCBpcyB1c2VkIGluCiAgdGhlIGtleW1hcCBmaWxlLgotIEFkZGVkICdrJyBmbGFnIGluICdzdGF0dXNsaW5lJzogVmFsdWUgb2YgImI6a2V5bWFwX25hbWUiIG9yICdrZXltYXAnIHdoZW4KICBpdCdzIGJlaW5nIHVzZWQuICBVc2VzICI8bGFuZz4iIHdoZW4gbm8ga2V5bWFwIGlzIGxvYWRlZCBhbmQgIjpsbWFwInMgYXJlCiAgYWN0aXZlLiAgU2hvdyB0aGlzIHRleHQgaW4gdGhlIGRlZmF1bHQgc3RhdHVzbGluZSB0b28uCi0gQWRkZWQgdGhlICdpbWluc2VydCcgYW5kICdpbXNlYXJjaCcgb3B0aW9uczogU3BlY2lmeSB1c2Ugb2YgbGFuZ21hcCBtYXBwaW5ncwogIGFuZCBJbnB1dCBNZXRob2Qgd2l0aCBhbiBvcHRpb24uIChNdXJhb2thIFRhcm8pCiAgQWRkZWQgJ2ltY21kbGluZScgb3B0aW9uOiBXaGVuIHNldCB0aGUgaW5wdXQgbWV0aG9kIGlzIGFsd2F5cyBlbmFibGVkIHdoZW4KICBzdGFydGluZyB0byBlZGl0IGEgY29tbWFuZCBsaW5lLiAgVXNlZnVsIGZvciBhIFhJTSB0aGF0IHVzZXMgZGVhZCBrZXlzIHRvCiAgdHlwZSBhY2NlbnRlZCBjaGFyYWN0ZXJzLgogIEFkZGVkICdpbWFjdGl2YXRla2V5JyBvcHRpb24gdG8gYmV0dGVyIGNvbnRyb2wgWElNLiAgKE11cmFva2EgVGFybykKLSBXaGVuIHR5cGluZyBhIG1hcHBpbmcgdGhhdCdzIG5vdCBmaW5pc2hlZCB5ZXQsIGRpc3BsYXkgdGhlIGxhc3QgY2hhcmFjdGVyCiAgdW5kZXIgdGhlIGN1cnNvciBpbiBJbnNlcnQgbW9kZSBhbmQgQ29tbWFuZC1saW5lIG1vZGUuICBMb29rcyBnb29kIGZvciBkZWFkCiAgY2hhcmFjdGVycy4KLSBNYWRlIHRoZSAnbGFuZ21hcCcgb3B0aW9uIHJlY29nbml6ZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuICBCdXQgbWFwcGluZyBvbmx5CiAgd29ya3MgZm9yIDgtYml0IGNoYXJhY3RlcnMuICBIZWxwcyB3aGVuIHVzaW5nIFVURi04LgotIFVzZSBhIGRpZmZlcmVudCBjdXJzb3IgZm9yIHdoZW4gIjpsbWFwIiBtYXBwaW5ncyBhcmUgYWN0aXZlLiAgQ2FuIHNwZWNpZnkKICB0d28gaGlnaGxpZ2h0IGdyb3VwcyBmb3IgYW4gaXRlbSBpbiAnZ3VpY3Vyc29yJy4gIEJ5IGRlZmF1bHQgImxDdXJzb3IiIGFuZAogICJDdXJzb3IiIGFyZSBlcXVhbCwgdGhlIHVzZXIgbXVzdCBzZXQgYSBjb2xvciBoZSBsaWtlcy4KICBVc2UgdGhlIGN1cnNvciBjb2xvciBmb3IgaGFuZ3VsIGlucHV0IGFzIHdlbGwuIChTdW5nLUh5dW4gTmFtKQotIFNob3cgIihsYW5nKSIgZm9yICdzaG93bW9kZScgd2hlbiBsYW5ndWFnZSBtYXBwaW5nIGlzIGVuYWJsZWQuCi0gVVRGLTg6IE1hZGUgInIiIHdvcmsgd2l0aCBhICI6bG1hcCIgdGhhdCBpbmNsdWRlcyBhIGNvbXBvc2luZyBjaGFyYWN0ZXIuCiAgQWxzbyB3b3JrcyBmb3IgImYiLCB3aGljaCBub3cgd29ya3MgdG8gZmluZCBhIGNoYXJhY3RlciB0aGF0IGluY2x1ZGVzIGEKICBjb21wb3NpbmcgY2hhcmFjdGVyLgoKT3RoZXIgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgYWRkaXRpb25zOgotIFN1cHBvcnQgZG91YmxlLWJ5dGUgc2luZ2xlLXdpZHRoIGNoYXJhY3RlcnMgZm9yIGV1Yy1qcDogQ2hhcmFjdGVycyBzdGFydGluZwogIHdpdGggMHg4RS4gIEFkZGVkIFNjcmVlbkxpbmVzMltdIHRvIHN0b3JlIHRoZSBzZWNvbmQgYnl0ZS4KCgpNdWx0aS1sYW5ndWFnZSBzdXBwb3J0CQkJCQkqbmV3LW11bHRpLWxhbmcqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSBtZXNzYWdlcyB1c2VkIGluIFZpbSBjYW4gYmUgdHJhbnNsYXRlZC4gIFNldmVyYWwgdHJhbnNsYXRpb25zIGFyZQphdmFpbGFibGUuICBUaGlzIHVzZXMgdGhlIGdldHRleHQgbWVjaGFuaXNtLiAgSXQgYWxsb3dzIGFkZGluZyBhIHRyYW5zbGF0aW9uCndpdGhvdXQgcmVjb21waWxpbmcgVmltLiAgfG11bHRpLWxhbmd8IChwYXJ0bHkgYnkgTWFyY2luIERhbGVja2kpCgpUaGUgdHJhbnNsYXRpb24gZmlsZXMgYXJlIGluIHRoZSBzcmMvcG8gZGlyZWN0b3J5LiAgVGhlIHNyYy9wby9SRUFETUUudHh0IGZpbGUKZXhwbGFpbnMgYSBmZXcgdGhpbmdzIGFib3V0IGRvaW5nIGEgdHJhbnNsYXRpb24uCgpNZW51IHRyYW5zbGF0aW9ucyBhcmUgYXZhaWxhYmxlIGFzIHdlbGwuICBUaGlzIHVzZXMgdGhlIG5ldyB8Om1lbnV0cmFuc2xhdGV8CmNvbW1hbmQuICBUaGUgdHJhbnNsYXRpb25zIGFyZSBmb3VuZCBpbiB0aGUgcnVudGltZSBkaXJlY3RvcnkgImxhbmciLiAgVGhpcwphbGxvd3MgYSB1c2VyIHRvIGFkZCBhIHRyYW5zbGF0aW9uLgoKQWRkZWQgfDpsYW5ndWFnZXwgY29tbWFuZCB0byBzZXQgdGhlIGxhbmd1YWdlIChsb2NhbGUpIGZvciBtZXNzYWdlcywgdGltZSBhbmQKY2hhcmFjdGVyIHR5cGUuICBUaGlzIGFsbG93cyBzd2l0Y2hpbmcgbGFuZ3VhZ2VzIGluIFZpbSB3aXRob3V0IGNoYW5naW5nIHRoZQpsb2NhbGUgb3V0c2lkZSBvZiBWaW0uCgpNYWRlIGl0IHBvc3NpYmxlIHRvIGhhdmUgdmltdHV0b3IgdXNlIGRpZmZlcmVudCBsYW5ndWFnZXMuICAoRWR1YXJkbyBGZXJuYW5kZXopClNwYW5pc2ggKEVkdWFyZG8gRmVybmFuZGV6KSwgSXRhbGlhbiAoQW50b25pbyBDb2xvbWJvKSwgSmFwYW5lc2UgKFlhc3VoaXJvCk1hdHN1bW90bykgYW5kIEZyZW5jaCAoQWRyaWVuIEJlYXUpIHRyYW5zbGF0aW9ucyBhcmUgaW5jbHVkZWQuCkFkZGVkICJ2aW10dXRvci5iYXQiOiBzY3JpcHQgdG8gc3RhcnQgVmltIG9uIGEgY29weSBvZiB0aGUgdHV0b3IgZmlsZSBmb3IKTVMtV2luZG93cy4gKERhbiBTaGFycCkKCi0gQWRkZWQgdjpsYW5nIHZhcmlhYmxlIHRvIGJlIGFibGUgdG8gZ2V0IGN1cnJlbnQgbGFuZ3VhZ2Ugc2V0dGluZy4KICAoTWFyY2luIERhbGVja2kpICBBbHNvIHY6bGNfdGltZSBhbmQgdjpjdHlwZS4KLSBNYWtlIGl0IHBvc3NpYmxlIHRvIHRyYW5zbGF0ZSB0aGUgZGlhbG9ncyB1c2VkIGJ5IHRoZSBtZW51cy4gIFVzZXMgZ2xvYmFsCiAgIm1lbnV0cmFuc18iIHZhcmlhYmxlcy4gICI6bWVudXRyYW5zIGNsZWFyIiBkZWxldGVzIHRoZW0uCi0gcmVtb3ZlZCAiYnJva2VuIGxvY2FsZSIgKE1hcmNpbiBEYWxlY2tpKS4KLSBEb24ndCB1c2UgY29sb3IgbmFtZXMgaW4gaWNvbnMsIHVzZSBSR0IgdmFsdWVzLiAgVGhlIG5hbWVzIGNvdWxkIGJlCiAgdHJhbnNsYXRlZC4KLSBXaW4zMjogQWRkZWQgZ2xvYmFsIElNRSBzdXBwb3J0IChNdXJhb2thKQotIFdpbjMyOiBBZGRlZCBkeW5hbWljIGxvYWRpbmcgb2YgSU1FIHN1cHBvcnQuCi0gIjptZXNzYWdlcyIgcHJpbnRzIGEgbWVzc2FnZSBhYm91dCB3aG8gbWFpbnRhaW5zIHRoZSBtZXNzYWdlcyBvciB0aGUKICB0cmFuc2xhdGlvbnMuICBVc2VmdWwgdG8gZmluZCBvdXQgd2hlcmUgdG8gbWFrZSBhIHJlbWFyayBhYm91dCBhIHdyb25nCiAgdHJhbnNsYXRpb24uCi0gLS1kaXNhYmxlLW5scyBhcmd1bWVudCBmb3IgY29uZmlndXJlOiBEaXNhYmxlIHVzZSBvZiBnZXR0ZXh0KCkuIChTdW5nLUh5dW4KICBOYW0pCi0gQWRkZWQgTkxTIHN1cHBvcnQgZm9yIFdpbjMyIHdpdGggdGhlIE1pbmdXIGNvbXBpbGVyLiAoRWR1YXJkbyBGZXJuYW5kZXopCi0gV2hlbiBhdmFpbGFibGUsIGNhbGwgYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQoKSB0byBoYXZlIGdldHRleHQoKSB0cmFuc2xhdGUKICBtZXNzYWdlcyB0byAnZW5jb2RpbmcnLiAgVGhpcyByZXF1aXJlcyBHTlUgZ2V0dGV4dCAwLjEwLjM2IG9yIGxhdGVyLgotIEFkZGVkIGdldHRleHQgc3VwcG9ydCBmb3IgV2luMzIuICBUaGlzIG1lYW5zIG1lc3NhZ2VzIHdpbGwgYmUgdHJhbnNsYXRlZAogIHdoZW4gdGhlIGxvY2FsZSBpcyBzZXQgYW5kIGxpYmludGwuZGxsIGNhbiBiZSBmb3VuZC4gIChNdXJhb2thIFRhcm8pCiAgQWxzbyBtYWRlIGl0IHdvcmsgd2l0aCBNaW5nVyBjb21waWxlci4gIChFZHVhcmRvIEZlcm5hbmRleikKICBEZXRlY3QgdGhlIGxhbmd1YWdlIGFuZCBzZXQgJExBTkcgdG8gZ2V0IHRoZSBhcHByb3ByaWF0ZSB0cmFuc2xhdGVkIG1lc3NhZ2VzCiAgKGlmIHN1cHBvcnRlZCkuICBBbHNvIHVzZSAkTEFORyB0byBzZWxlY3QgYSBsYW5ndWFnZSwgdjpsYW5nIGlzIGEgdmVyeQogIGRpZmZlcmVudCBraW5kIG9mIG5hbWUuCi0gTWFkZSBndmltZXh0LmRsbCB1c2UgdHJhbnNsYXRlZCBtZXNzYWdlcywgaWYgcG9zc2libGUuIChZYXN1aGlybyBNYXRzdW1vdG8pCgoKUGx1Z2luIHN1cHBvcnQJCQkJCSpuZXctcGx1Z2lucyoKLS0tLS0tLS0tLS0tLS0KClRvIG1ha2UgaXQgcmVhbGx5IGVhc3kgdG8gbG9hZCBhIFZpbSBzY3JpcHQgd2hlbiBzdGFydGluZyBWaW0sIHRoZSAicGx1Z2luIgpydW50aW1lIGRpcmVjdG9yeSBjYW4gYmUgdXNlZC4gIEFsbCAiKi52aW0iIGZpbGVzIGluIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseQpsb2FkZWQuICBGb3IgVW5peCwgdGhlIGRpcmVjdG9yeSAifi8udmltL3BsdWdpbiIgaXMgdXNlZCBieSBkZWZhdWx0LiAgVGhlCidydW50aW1lcGF0aCcgb3B0aW9uIGNhbiBiZSBzZXQgdG8gbG9vayBpbiBvdGhlciBkaXJlY3RvcmllcyBmb3IgcGx1Z2lucy4KfGxvYWQtcGx1Z2luc3wgfGFkZC1wbHVnaW58CgpUaGUgfDpydW50aW1lfCBjb21tYW5kIGhhcyBiZWVuIGFkZGVkIHRvIGxvYWQgb25lIG9yIG1vcmUgZmlsZXMgaW4KJ3J1bnRpbWVwYXRoJy4KClN0YW5kYXJkIHBsdWdpbnM6Cm5ldHJ3LnZpbSAtIEVkaXQgZmlsZXMgb3ZlciBhIG5ldHdvcmsgfG5ldy1uZXR3b3JrLWZpbGVzfApnemlwLnZpbSAtIEVkaXQgY29tcHJlc3NlZCBmaWxlcwpleHBsb3Jlci52aW0gLSBCcm93c2UgZGlyZWN0b3JpZXMgfG5ldy1maWxlLWJyb3dzZXJ8CgpBZGRlZCBzdXBwb3J0IGZvciBsb2NhbCBoZWxwIGZpbGVzLiB8YWRkLWxvY2FsLWhlbHB8LgpXaGVuIHNlYXJjaGluZyBmb3IgaGVscCB0YWdzLCBhbGwgImRvYy90YWdzIiBmaWxlcyBpbiAncnVudGltZXBhdGgnIGFyZSB1c2VkLgpBZGRlZCB0aGUgIjpoZWxwdGFncyIgY29tbWFuZDogR2VuZXJhdGUgYSB0YWdzIGZpbGUgZm9yIGEgaGVscCBkaXJlY3RvcnkuClRoZSBmaXJzdCBsaW5lIG9mIGVhY2ggaGVscCBmaWxlIGlzIGF1dG9tYWdpY2FsbHkgYWRkZWQgdG8gdGhlICJMT0NBTApBRERJVElPTlMiIHNlY3Rpb24gaW4gZG9jL2hlbHAudHh0LgoKQWRkZWQgdGhlIDx1bmlxdWU+IGFyZ3VtZW50IHRvICI6bWFwIjogb25seSBhZGQgYSBtYXBwaW5nIHdoZW4gaXQgd2Fzbid0CmRlZmluZWQgYmVmb3JlLgoKV2hlbiBkaXNwbGF5aW5nIGFuIG9wdGlvbiB2YWx1ZSB3aXRoICd2ZXJib3NlJyBzZXQgd2lsbCBnaXZlIGEgbWVzc2FnZSBhYm91dAp3aGVyZSB0aGUgb3B0aW9uIHdhcyBsYXN0IHNldC4gIFZlcnkgdXNlZnVsIHRvIGZpbmQgb3V0IHdoaWNoIHNjcmlwdCBkaWQgc2V0CnRoZSB2YWx1ZS4KClRoZSBuZXcgfDpzY3JpcHRuYW1lc3wgY29tbWFuZCBkaXNwbGF5cyBhIGxpc3Qgb2YgYWxsIHNjcmlwdHMgdGhhdCBoYXZlIGJlZW4Kc291cmNlZC4KCkdVSTogRm9yIEF0aGVuYSwgTW90aWYgYW5kIEdUSyBsb29rIGZvciBhIHRvb2xiYXIgYml0bWFwIGluIHRoZSAiYml0bWFwcyIKZGlyZWN0b3JpZXMgaW4gJ3J1bnRpbWVwYXRoJy4gIEFsbG93cyBhZGRpbmcgeW91ciBvd24gYml0bWFwcy4KCgpGaWxldHlwZSBwbHVnaW5zCQkJCSpuZXctZmlsZXR5cGUtcGx1Z2lucyoKLS0tLS0tLS0tLS0tLS0tLS0KCkEgbmV3IGdyb3VwIG9mIGZpbGVzIGhhcyBiZWVuIGFkZGVkIHRvIGRvIHNldHRpbmdzIGZvciBzcGVjaWZpYyBmaWxlIHR5cGVzLgpUaGVzZSBjYW4gYmUgb3B0aW9ucyBhbmQgbWFwcGluZ3Mgd2hpY2ggYXJlIHNwZWNpZmljYWxseSB1c2VkIGZvciBvbmUgdmFsdWUgb2YKJ2ZpbGV0eXBlJy4KClRoZSBmaWxlcyBhcmUgbG9jYXRlZCBpbiAiJFZJTVJVTlRJTUUvZnRwbHVnaW4iLiAgVGhlICdydW50aW1lcGF0aCcgb3B0aW9uCm1ha2VzIGl0IHBvc3NpYmxlIHRvIHVzZSBzZXZlcmFsIHNldHMgb2YgcGx1Z2luczogWW91ciBvd24sIHN5c3RlbS13aWRlLAppbmNsdWRlZCBpbiB0aGUgVmltIGRpc3RyaWJ1dGlvbiwgZXRjLgoKVG8gYmUgYWJsZSB0byBtYWtlIHRoaXMgd29yaywgc2V2ZXJhbCBmZWF0dXJlcyB3ZXJlIGFkZGVkOgotIEFkZGVkIHRoZSAiczoiIHZhcmlhYmxlcywgbG9jYWwgdG8gYSBzY3JpcHQuICBBdm9pZHMgbmFtZSBjb25mbGljdHMgd2l0aAogIGdsb2JhbCB2YXJpYWJsZXMuICBUaGV5IGNhbiBiZSB1c2VkIGluIHRoZSBzY3JpcHQgYW5kIGluIGZ1bmN0aW9ucywKICBhdXRvY29tbWFuZHMgYW5kIHVzZXIgY29tbWFuZHMgZGVmaW5lZCBpbiB0aGUgc2NyaXB0LiAgVGhleSBhcmUga2VwdCBiZXR3ZWVuCiAgaW52b2NhdGlvbnMgb2YgdGhlIHNhbWUgc2NyaXB0LiAgfHM6dmFyfAotIEFkZGVkIHRoZSBnbG9iYWwgdmFsdWUgZm9yIGxvY2FsIG9wdGlvbnMuICBUaGlzIHZhbHVlIGlzIHVzZWQgd2hlbiBvcGVuaW5nCiAgYSBuZXcgYnVmZmVyIG9yIGVkaXRpbmcgYW5vdGhlciBmaWxlLiAgVGhlIG9wdGlvbiB2YWx1ZSBzcGVjaWZpZWQgaW4gYQogIG1vZGVsaW5lIG9yIGZpbGV0eXBlIHNldHRpbmcgaXMgbm90IGNhcnJpZWQgb3ZlciB0byBhbm90aGVyIGJ1ZmZlci4KICAiOnNldCIgc2V0cyBib3RoIHRoZSBsb2NhbCBhbmQgdGhlIGdsb2JhbCB2YWx1ZS4KICAiOnNldGxvY2FsIiBzZXRzIHRoZSBsb2NhbCBvcHRpb24gdmFsdWUgb25seS4KICAiOnNldGdsb2JhbCIgc2V0cyBvciBkaXNwbGF5cyB0aGUgZ2xvYmFsIHZhbHVlIGZvciBhIGxvY2FsIG9wdGlvbi4KICAiOnNldGxvY2FsIG5hbWU8IiBzZXRzIGEgbG9jYWwgb3B0aW9uIHRvIGl0cyBnbG9iYWwgdmFsdWUuCi0gQWRkZWQgdGhlIGJ1ZmZlci1sb2NhbCB2YWx1ZSBmb3Igc29tZSBnbG9iYWwgb3B0aW9uczogJ2VxdWFscHJnJywgJ21ha2VwcmcnLAogICdlcnJvcmZvcm1hdCcsICdncmVwcHJnJywgJ3BhdGgnLCAnZGljdGlvbmFyeScsICd0aGVzYXVydXMnLCAndGFncycsCiAgJ2luY2x1ZGUnIGFuZCAnZGVmaW5lJy4gIFRoaXMgYWxsb3dzIHNldHRpbmcgYSBsb2NhbCB2YWx1ZSBmb3IgdGhlc2UgZ2xvYmFsCiAgb3B0aW9ucywgd2l0aG91dCBtYWtpbmcgaXQgaW5jb21wYXRpYmxlLgotIEFkZGVkIG1hcHBpbmdzIGFuZCBhYmJyZXZpYXRpb25zIGxvY2FsIHRvIGEgYnVmZmVyOiAiOm1hcCA8YnVmZmVyPiIuCi0gSW4gYSBtYXBwaW5nICI8TGVhZGVyPiIgY2FuIGJlIHVzZWQgdG8gZ2V0IHRoZSB2YWx1ZSBvZiB0aGUgIm1hcGxlYWRlciIKICB2YXJpYWJsZS4gIFRoaXMgc2ltcGxpZmllcyBtYXBwaW5ncyB0aGF0IHVzZSAibWFwbGVhZGVyIi4gICI8TGVhZGVyPiIKICBkZWZhdWx0cyB0byAiXCIuICAiPExvY2FsTGVhZGVyPiIgZG9lcyB0aGUgc2FtZSB3aXRoICJtYXBsb2NhbGxlYWRlciIuICBUaGlzCiAgaXMgdG8gYmUgdXNlZCBmb3IgbWFwcGluZ3MgbG9jYWwgdG8gYSBidWZmZXIuCi0gQWRkZWQgPFNJRD4gU2NyaXB0IElEIHRvIGRlZmluZSBmdW5jdGlvbnMgYW5kIG1hcHBpbmdzIGxvY2FsIHRvIGEgc2NyaXB0LgotIEFkZGVkIDxzY3JpcHQ+IGFyZ3VtZW50IHRvICI6bm9yZW1hcCIgYW5kICI6bm9yZW1lbnUiOiBPbmx5IHJlbWFwCiAgc2NyaXB0LWxvY2FsIG1hcHBpbmdzLiAgQXZvaWRzIHRoYXQgbWFwcGluZ3MgZnJvbSBvdGhlciBzY3JpcHRzIGdldCBpbiB0aGUKICB3YXksIGJ1dCBkb2VzIGFsbG93IHVzaW5nIG1hcHBpbmdzIGRlZmluZWQgaW4gdGhlIHNjcmlwdC4KLSBVc2VyIGNvbW1hbmRzIGNhbiBiZSBsb2NhbCB0byBhIGJ1ZmZlcjogIjpjb21tYW5kIC1idWZmZXIiLgoKVGhlIG5ldyAiOnNldGZpbGV0eXBlIiBjb21tYW5kIGlzIHVzZWQgaW4gdGhlIGZpbGV0eXBlIGRldGVjdGlvbiBhdXRvY29tbWFuZHMsCnRvIGF2b2lkIHRoYXQgJ2ZpbGV0eXBlJyBpcyBzZXQgdHdpY2UuCgoKRmlsZSBicm93c2VyCQkJCQkJKm5ldy1maWxlLWJyb3dzZXIqCi0tLS0tLS0tLS0tLQoKV2hlbiBlZGl0aW5nIGEgZGlyZWN0b3J5LCB0aGUgZXhwbG9yZXIgcGx1Z2luIHdpbGwgbGlzdCB0aGUgZmlsZXMgaW4gdGhlCmRpcmVjdG9yeS4gIFByZXNzaW5nIDxFbnRlcj4gb24gYSBmaWxlIG5hbWUgZWRpdHMgdGhhdCBmaWxlLiAgUHJlc3NpbmcgPEVudGVyPgpvbiBhIGRpcmVjdG9yeSBtb3ZlcyB0aGUgYnJvd3NlciB0byB0aGF0IGRpcmVjdG9yeS4KClRoZXJlIGFyZSBzZXZlcmFsIG90aGVyIHBvc3NpYmlsaXRpZXMsIHN1Y2ggYXMgb3BlbmluZyBhIGZpbGUgaW4gdGhlIHByZXZpZXcKd2luZG93LCByZW5hbWluZyBmaWxlcyBhbmQgZGVsZXRpbmcgZmlsZXMuCgoKRWRpdGluZyBmaWxlcyBvdmVyIGEgbmV0d29yawkJCQkqbmV3LW5ldHdvcmstZmlsZXMqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkZpbGVzIHN0YXJ0aW5nIHdpdGggc2NwOi8vLCByY3A6Ly8sIGZ0cDovLyBhbmQgaHR0cDovLyBhcmUgcmVjb2duaXplZCBhcwpyZW1vdGUgZmlsZXMuICBBbiBhdHRlbXB0IGlzIG1hZGUgdG8gYWNjZXNzIHRoZXNlIGZpbGVzIHdpdGggdGhlIGluZGljYXRlZAptZXRob2QuICBGb3IgaHR0cDovLyBvbmx5IHJlYWRpbmcgaXMgcG9zc2libGUsIGZvciB0aGUgb3RoZXJzIHdyaXRpbmcgaXMgYWxzbwpzdXBwb3J0ZWQuICBVc2VzIHRoZSBuZXRydy52aW0gc2NyaXB0IGFzIGEgc3RhbmRhcmQgInBsdWdpbiIuIHxuZXRyd3wKCk1hZGUgImdmIiB3b3JrIG9uIGEgVVJMLiAgSXQgbm8gbG9uZ2VyIGFzc3VtZXMgdGhlIGZpbGUgaXMgbG9jYWwgb24gdGhlCmNvbXB1dGVyIChtb3N0bHkgZGlkbid0IHdvcmsgYW55d2F5LCBiZWNhdXNlIHRoZSBmdWxsIHBhdGggd2FzIHJlcXVpcmVkKS4KQWRqdXN0ZWQgdGVzdDIgZm9yIHRoaXMuCgpBbGxvdyB1c2luZyBhIFVSTCBpbiAncGF0aCcuICBNYWtlcyAiOmZpbmQgaW5kZXguaHRtbCIgd29yay4KCkdUSzogQWxsb3cgZHJvcHBpbmcgYSBodHRwOi8vIGFuZCBmdHA6Ly8gVVJMIG9uIFZpbS4gIFRoZSBuZXRydyBwbHVnaW4gdGFrZXMKY2FyZSBvZiBkb3dubG9hZGluZyB0aGUgZmlsZS4gKE1pS2FlbCBCZXJ0aGUpCgoKV2luZG93IGZvciBjb21tYW5kLWxpbmUgZWRpdGluZwkJCQkqbmV3LWNtZHdpbioKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlIENvbW1hbmQtbGluZSB3aW5kb3cgY2FuIGJlIHVzZWQgdG8gZWRpdCBhIGNvbW1hbmQtbGluZSB3aXRoIE5vcm1hbCBhbmQKSW5zZXJ0IG1vZGUgY29tbWFuZHMuICBXaGVuIGl0IGlzIG9wZW5lZCBpdCBjb250YWlucyB0aGUgaGlzdG9yeS4gIFRoaXMgYWxsb3dzCmNvcHlpbmcgcGFydHMgb2YgcHJldmlvdXMgY29tbWFuZCBsaW5lcy4gfGNtZHdpbnwKClRoZSBjb21tYW5kLWxpbmUgd2luZG93IGNhbiBiZSBvcGVuZWQgZnJvbSB0aGUgY29tbWFuZC1saW5lIHdpdGggdGhlIGtleQpzcGVjaWZpZWQgYnkgdGhlICdjZWRpdCcgb3B0aW9uIChsaWtlIE52aSkuICBJdCBjYW4gYWxzbyBiZSBvcGVuZWQgZGlyZWN0bHkKZnJvbSBOb3JtYWwgbW9kZSB3aXRoICJxOiIsICJxLyIgYW5kICJxPyIuCgpUaGUgJ2NtZHdpbmhlaWdodCcgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBpbml0aWFsIGhlaWdodCBvZiB0aGUgd2luZG93LgoKSW4gSW5zZXJ0IG1vZGUgQ1RSTC1YIENUUkwtViBjYW4gYmUgdXNlZCB0byBjb21wbGV0ZSBhbiBFeCBjb21tYW5kIGxpbmUsIGxpa2UKaXQncyBkb25lIG9uIHRoZSBjb21tYW5kLWxpbmUuICBUaGlzIGlzIGFsc28gdXNlZnVsIGZvciB3cml0aW5nIFZpbSBzY3JpcHRzIQoKQWRkaXRpb25hbGx5LCB0aGVyZSBpcyAiaW1wcm92ZWQgRXggbW9kZSIuICBFbnRlcmVkIHdoZW4gVmltIGlzIHN0YXJ0ZWQgYXMKImV4aW0iIG9yICJ2aW0gLUUiLCBhbmQgd2l0aCB0aGUgImdRIiBjb21tYW5kLiAgV29ya3MgbGlrZSByZXBlYXRlZCB1c2Ugb2YKIjoiLCB3aXRoIGZ1bGwgY29tbWFuZC1saW5lIGVkaXRpbmcgYW5kIGNvbXBsZXRpb24uIChVbGYgQ2FybHNzb24pCgoKRGVidWdnaW5nIG1vZGUJCQkJCQkqbmV3LWRlYnVnLW1vZGUqCi0tLS0tLS0tLS0tLS0tCgpJbiBkZWJ1Z2dpbmcgbW9kZSBzb3VyY2VkIHNjcmlwdHMgYW5kIHVzZXIgZnVuY3Rpb25zIGNhbiBiZSBleGVjdXRlZCBsaW5lIGJ5CmxpbmUuICBUaGVyZSBhcmUgY29tbWFuZHMgdG8gc3RlcCBvdmVyIGEgY29tbWFuZCBvciBzdGVwIGludG8gaXQuIHxkZWJ1Zy1tb2RlfAoKQnJlYWtwb2ludHMgY2FuIGJlIHNldCB0byBydW4gdW50aWwgYSBjZXJ0YWluIGxpbmUgaW4gYSBzY3JpcHQgb3IgdXNlcgpmdW5jdGlvbiBpcyBleGVjdXRlZC4gfDpicmVha2FkZHwKCkRlYnVnZ2luZyBjYW4gYmUgc3RhcnRlZCB3aXRoICI6ZGVidWcge2NtZH0iIHRvIGRlYnVnIHdoYXQgaGFwcGVucyB3aGVuIGEKY29tbWFuZCBleGVjdXRlcy4gIFRoZSB8LUR8IGFyZ3VtZW50IGNhbiBiZSB1c2VkIHRvIGRlYnVnIHdoaWxlIHN0YXJ0aW5nIHVwLgoKCkN1cnNvciBpbiB2aXJ0dWFsIHBvc2l0aW9uCQkJCSpuZXctdmlydGVkaXQqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpBZGRlZCB0aGUgJ3ZpcnR1YWxlZGl0JyBvcHRpb246IEFsbG93IHBvc2l0aW9uaW5nIHRoZSBjdXJzb3Igd2hlcmUgdGhlcmUgaXMgbm8KYWN0dWFsIGNoYXJhY3RlciBpbiBJbnNlcnQgbW9kZSwgVmlzdWFsIG1vZGUgb3IgYWx3YXlzLiAoTWF0dGhpYXMgS3JhbW0pClRoaXMgaXMgZXNwZWNpYWxseSB1c2VmdWwgaW4gVmlzdWFsLWJsb2NrIG1vZGUuICBJdCBhbGxvd3MgcG9zaXRpb25pbmcgYQpjb3JuZXIgb2YgdGhlIGFyZWEgd2hlcmUgdGhlcmUgaXMgbm8gdGV4dCBjaGFyYWN0ZXIuICAoTWFueSBpbXByb3ZlbWVudHMgYnkKQ2hhc2UgVGluZ2xleSkKCgpEZWJ1Z2dlciBpbnRlcmZhY2UJCQkJCSpuZXctZGVidWctaXRmKgotLS0tLS0tLS0tLS0tLS0tLS0KClRoaXMgd2FzIG9yaWdpbmFsbHkgbWFkZSB0byB3b3JrIHdpdGggU3VuIFZpc3VhbCBXb3Jrc2hvcC4gKEdvcmRvbiBQcmlldXIpClNlZSB8ZGVidWdnZXIudHh0fCwgfHNpZ24udHh0fCBhbmQgfHdvcmtzaG9wLnR4dHwuCgpBZGRlZCB0aGUgIjpzaWduIiBjb21tYW5kIHRvIGRlZmluZSBhbmQgcGxhY2Ugc2lnbnMuICBUaGV5IGNhbiBiZSBkaXNwbGF5ZWQKd2l0aCB0d28gQVNDSUkgY2hhcmFjdGVycyBvciBhbiBpY29uLiAgVGhlIGxpbmUgYWZ0ZXIgaXQgY2FuIGJlIGhpZ2hsaWdodGVkLgpVc2VmdWwgdG8gZGlzcGxheSBicmVha3BvaW50cyBhbmQgdGhlIGN1cnJlbnQgUEMgcG9zaXRpb24uCgpBZGRlZCB0aGUgfDp3c3ZlcmJ8IGNvbW1hbmQgdG8gZXhlY3V0ZSBkZWJ1Z2dlciBjb21tYW5kcy4KCkFkZGVkIGJhbGxvb24gc3R1ZmY6ICdiYWxsb29uZGVsYXknIGFuZCAnYmFsbG9vbmV2YWwnIG9wdGlvbnMuCgpBZGRlZCAiaWNvbj0iIGFyZ3VtZW50IGZvciAiOm1lbnUiLiAgQWxsb3dzIGRlZmluaW5nIGEgc3BlY2lmaWMgaWNvbiBmb3IgYQpUb29sQmFyIGl0ZW0uCgoKQ29tbXVuaWNhdGlvbiBiZXR3ZWVuIFZpbXMJCQkJKm5ldy12aW0tc2VydmVyKgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQWRkZWQgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHR3byBWaW1zLiAgTWFrZXMgaXQgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyBmcm9tCm9uZSBWaW0gdG8gYW5vdGhlci4gIFdvcmtzIGZvciBYLVdpbmRvd3MgYW5kIE1TLVdpbmRvd3MgfGNsaWVudHNlcnZlcnwuCgpVc2UgIi0tcmVtb3RlIiB0byBoYXZlIGZpbGVzIGJlIGVkaXRlZCBpbiBhbiBhbHJlYWR5IHJ1bm5pbmcgVmltLgpVc2UgIi0tcmVtb3RlLXdhaXQiIHRvIGRvIHRoZSBzYW1lIGFuZCB3YWl0IGZvciB0aGUgZWRpdGluZyB0byBmaW5pc2guClVzZSAiLS1yZW1vdGUtc2VuZCIgdG8gc2VuZCBjb21tYW5kcyBmcm9tIG9uZSBWaW0gdG8gYW5vdGhlci4KVXNlICItLXJlbW90ZS1leHByIiB0byBoYXZlIGFuIGV4cHJlc3Npb24gZXZhbHVhdGVkIGluIGFub3RoZXIgVmltLgpVc2UgIi0tc2VydmVybGlzdCIgdG8gbGlzdCB0aGUgY3VycmVudGx5IGF2YWlsYWJsZSBWaW0gc2VydmVycy4gIChYIG9ubHkpClRoZXJlIGFyZSBhbHNvIGZ1bmN0aW9ucyB0byBjb21tdW5pY2F0ZSBiZXR3ZWVuIHRoZSBzZXJ2ZXIgYW5kIHRoZSBjbGllbnQuCnxyZW1vdGVfc2VuZCgpfCB8cmVtb3RlX2V4cHIoKXwKCihYLXdpbmRvd3MgdmVyc2lvbiBpbXBsZW1lbnRlZCBieSBGbGVtbWluZyBNYWRzZW4sIE1TLVdpbmRvd3MgdmVyc2lvbiBieSBQYXVsCk1vb3JlKQoKQWRkZWQgdGhlIGNvbW1hbmQgc2VydmVyIG5hbWUgdG8gdGhlIHdpbmRvdyB0aXRsZSwgc28geW91IGNhbiBzZWUgd2hpY2ggc2VydmVyCm5hbWUgYmVsb25ncyB0byB3aGljaCBWaW0uCgpSZW1vdmVkIHRoZSBPbGVWaW0gZGlyZWN0b3J5IGFuZCBTZW5kVG9WaW0uZXhlIGFuZCBFZGl0V2l0aFZpbS5leGUgZnJvbSB0aGUKZGlzdHJpYnV0aW9uLiAgQ2FuIG5vdyB1c2UgImd2aW0gLS1yZW1vdGUiIGFuZCAiZ3ZpbSAtLXJlbW90ZS1zZW5kIiwgd2hpY2ggaXMKcG9ydGFibGUuCgpHVEsrOiBTdXBwb3J0IHJ1bm5pbmcgVmltIGluc2lkZSBhbm90aGVyIHdpbmRvdy4gIFVzZXMgdGhlIC0tc29ja2V0aWQgYXJndW1lbnQKKE5laWwgQmlyZCkKCgpCdWZmZXIgdHlwZSBvcHRpb25zCQkJCQkqbmV3LWJ1ZnR5cGUqCi0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSAnYnVmdHlwZScgYW5kICdidWZoaWRkZW4nIG9wdGlvbnMgaGF2ZSBiZWVuIGFkZGVkLiAgVGhleSBjYW4gYmUgc2V0IHRvCmhhdmUgZGlmZmVyZW50IGtpbmRzIG9mIGJ1ZmZlcnMuICBGb3IgZXhhbXBsZToKLSAnYnVmdHlwZScgPSAicXVpY2tmaXgiOiBidWZmZXIgd2l0aCBlcnJvciBsaXN0Ci0gJ2J1ZnR5cGUnID0gIm5vZmlsZSIgYW5kICdidWZoaWRkZW4nID0gImRlbGV0ZSI6IHNjcmF0Y2ggYnVmZmVyIHRoYXQgd2lsbCBiZQogIGRlbGV0ZWQgYXMgc29vbiBhcyB0aGVyZSBpcyBubyB3aW5kb3cgZGlzcGxheWluZyBpdC4KCididWZoaWRkZW4nIGNhbiBiZSB1c2VkIHRvIG92ZXJydWxlIHRoZSAnaGlkZGVuJyBvcHRpb24gZm9yIG9uZSBidWZmZXIuCgpJbiBjb21iaW5hdGlvbiB3aXRoICdidWZsaXN0ZWQnIGFuZCAnc3dhcGZpbGUnIHRoaXMgb2ZmZXJzIHRoZSBwb3NzaWJpbGl0eSB0bwp1c2UgdmFyaW91cyBraW5kcyBvZiBzcGVjaWFsIGJ1ZmZlcnMuICBTZWUgfHNwZWNpYWwtYnVmZmVyc3wuCgoKUHJpbnRpbmcJCQkJCQkqbmV3LXByaW50aW5nKgotLS0tLS0tLQoKSW5jbHVkZWQgZmlyc3QgaW1wbGVtZW50YXRpb24gb2YgdGhlICI6aGFyZGNvcHkiIGNvbW1hbmQgZm9yIHByaW50aW5nCnRvIHBhcGVyLiAgRm9yIE1TLVdpbmRvd3MgYW55IGluc3RhbGxlZCBwcmludGVyIGNhbiBiZSB1c2VkLiAgRm9yIG90aGVyCnN5c3RlbXMgYSBQb3N0U2NyaXB0IGZpbGUgaXMgZ2VuZXJhdGVkLCB3aGljaCBjYW4gYmUgcHJpbnRlZCB3aXRoIHRoZQoncHJpbnRleHByJyBvcHRpb24uCihNUy1XaW5kb3dzIHBhcnQgYnkgVmluY2UgTmVncmksIFZpcGluIEFyYXZpbmQsIFBvc3RTY3JpcHQgYnkgVmluY2UgTmVncmkgYW5kCk1pa2UgV2lsbGlhbXMpCgpNYWRlICI6aGFyZGNvcHkiIHdvcmsgd2l0aCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuIChNdXJhb2thIFRhcm8sIFlhc3VoaXJvCk1hdHN1bW90bykKCkFkZGVkIG9wdGlvbnMgdG8gdHVuZSB0aGUgd2F5IHByaW50aW5nIHdvcmtzOiAoVmluY2UgTmVncmkpCi0gJ3ByaW50b3B0aW9ucycgZGVmaW5lcyB2YXJpb3VzIHRoaW5ncy4KLSAncHJpbnRoZWFkZXInIHNwZWNpZmllcyB0aGUgaGVhZGVyIGZvcm1hdC4gIEFkZGVkICJOIiBmaWVsZCB0byAnc3RhdHVzbGluZScKICBmb3IgdGhlIHBhZ2UgbnVtYmVyLgotICdwcmludGZvbnQnIHNwZWNpZmllcyB0aGUgZm9udCBuYW1lIGFuZCBhdHRyaWJ1dGVzLgotICdwcmludGRldmljZScgZGVmaW5lcyB0aGUgZGVmYXVsdCBwcmludGVyIGZvciAiOmhhcmRjb3B5ISIuCgoKUG9ydHMJCQkJCQkJKnBvcnRzLTYqCi0tLS0tCgpQb3J0IHRvIE9TLzM5MCBVbml4IChSYWxmIFNjaGFuZGwpCi0gQSBsb3Qgb2YgY2hhbmdlcyB0byBoYW5kbGUgRUJDRElDIGVuY29kaW5nLgotIENoYW5nZWQgQ3RybCgneCcpIHRvIEN0cmxfeCBkZWZpbmUuCgpJbmNsdWRlZCBqc2Jtb3VzZSBzdXBwb3J0LiAoRGFycmVuIEdhcnRoKQpTdXBwb3J0IGZvciBkZWMgbW91c2UgaW4gVW5peC4gKFN0ZXZlIFdhbGwpCgpQb3J0IHRvIDE2LWJpdCBNUyBXaW5kb3dzIChXaW5kb3dzIDMuMXgpIChWaW5jZSBOZWdyaSkKClBvcnQgdG8gUU5YLiAgU3VwcG9ydHMgdGhlIFBob3RvbiBHVUksIG1vdXNlLCBldGMuIChKdWxpYW4gS2lucmFpZCkKCkFsbG93IGNyb3NzLWNvbXBpbGluZyB0aGUgV2luMzIgdmVyc2lvbiB3aXRoIE1ha2VfbWluZy5tYWsuIChSb24gQWFyb24pCkFkZGVkIFB5dGhvbiBzdXBwb3J0IGZvciBjb21waWxpbmcgd2l0aCBNaW5ndy4gKFJvbiBBYXJvbikKCkRvcyAzMiBiaXQ6IEFkZGVkIHN1cHBvcnQgdGhlIFdpbmRvd3MgY2xpcGJvYXJkLiAoRGF2aWQgS290Y2hhbikKCldpbjMyOiBEeW5hbWljYWxseSBsb2FkIFBlcmwgYW5kIFB5dGhvbi4gIEFsbG93cyBjb21waWxpbmcgVmltIHdpdGggdGhlc2UKaW50ZXJmYWNlcyBhbmQgd2lsbCB0cnkgdG8gZmluZCB0aGUgRExMcyBhdCBydW50aW1lLiAoTXVyYW9rYSBUYXJvKQoKQ29tcGlsaW5nIHRoZSBXaW4zMiBHVUkgd2l0aCBDeWd3aW4uICBBbHNvIGNvbXBpbGUgdmltcnVuLCBkb3NpbnN0IGFuZAp1bmluc3RhbGwuICAoR2VyZnJpZWQpCgpNYWM6IE1ha2UgVmltIGNvbXBpbGUgd2l0aCB0aGUgZnJlZSBNUFcgY29tcGlsZXIgc3VwcGxpZWQgYnkgQXBwbGUuICBBbmQKdXBkYXRlcyBmb3IgQ29kZVdhcnJpb3IuIChBeGVsIEtpZWxob3JuKQoKQWRkZWQgdHlwZWNhc3RzIGFuZCBpZmRlZnMgYXMgYSBzdGFydCB0byBtYWtlIFZpbSB3b3JrIG9uIFdpbjY0IChHZW9yZ2UKUmVpbGx5KQoKClF1aWNrZml4IGV4dGVuZGVkCQkJCQkqcXVpY2tmaXgtNioKLS0tLS0tLS0tLS0tLS0tLS0KCkFkZGVkIHRoZSAiZXJyb3Igd2luZG93Ii4gIEl0IGNvbnRhaW5zIGFsbCB0aGUgZXJyb3JzIG9mIHRoZSBjdXJyZW50IGVycm9yCmxpc3QuICBQcmVzc2luZyA8RW50ZXI+IGluIGEgbGluZSBtYWtlcyBWaW0ganVtcCB0byB0aGF0IGxpbmUgKGluIGFub3RoZXIKd2luZG93KS4gIFRoaXMgbWFrZXMgaXQgZWFzeSB0byBuYXZpZ2F0ZSB0aHJvdWdoIHRoZSBlcnJvciBsaXN0Lgp8cXVpY2tmaXgtd2luZG93fC4KCi0gfDpjb3Blbnwgb3BlbnMgdGhlIHF1aWNrZml4IHdpbmRvdy4KLSB8OmNjbG9zZXwgY2xvc2VzIHRoZSBxdWlja2ZpeCB3aW5kb3cuCi0gfDpjd2luZG93fCB0YWtlcyBjYXJlIHRoYXQgdGhlcmUgaXMgYSBxdWlja2ZpeCB3aW5kb3cgb25seSB3aGVuIHRoZXJlIGFyZQogIHJlY29nbml6ZWQgZXJyb3JzLiAoRGFuIFNoYXJwKQoKLSBRdWlja2ZpeCBhbHNvIGtub3dzICJpbmZvIiwgbmV4dCB0byAid2FybmluZyIgYW5kICJlcnJvciIgdHlwZXMuICAiJUkiIGNhbiBiZQogIHVzZWQgZm9yIHRoZSBzdGFydCBvZiBhIG11bHRpLWxpbmUgaW5mb3JtYXRpb25hbCBtZXNzYWdlLiAoVG9ueSBMZW5laXMpCi0gVGhlICIlcCIgYXJndW1lbnQgY2FuIGJlIHVzZWQgaW4gJ2Vycm9yZm9ybWF0JyB0byBnZXQgdGhlIGNvbHVtbiBudW1iZXIgZnJvbQogIGEgbGluZSB3aGVyZSAiXiIgcG9pbnRzIHRvIHRoZSBjb2x1bW4uIChTdGVmYW4gUm9lbWVyKQotIFdoZW4gdXNpbmcgIiVmIiBpbiAnZXJyb3Jmb3JtYXQnIG9uIGEgRE9TL1dpbmRvd3Mgc3lzdGVtLCBhbHNvIGluY2x1ZGUgImM6IgogIGluIHRoZSBmaWxlbmFtZSwgZXZlbiB3aGVuIHVzaW5nICIlZjoiLgoKCk9wZXJhdG9yIG1vZGlmaWVycwkJCQkJKm5ldy1vcGVyYXRvci1tb2QqCi0tLS0tLS0tLS0tLS0tLS0tLQoKSW5zZXJ0ICJ2IiwgIlYiIG9yIENUUkwtViBiZXR3ZWVuIGFuIG9wZXJhdG9yIGFuZCBhIG1vdGlvbiBjb21tYW5kIHRvIGZvcmNlCnRoZSBvcGVyYXRvciB0byB3b3JrIGNoYXJhY3Rlcndpc2UsIGxpbmV3aXNlIG9yIGJsb2Nrd2lzZS4gfG9fdnwKCgpTZWFyY2ggUGF0aAkJCQkJCSpuZXctc2VhcmNoLXBhdGgqCi0tLS0tLS0tLS0tCgpWaW0gY2FuIHNlYXJjaCBpbiBhIGRpcmVjdG9yeSB0cmVlIG5vdCBvbmx5IGluIGRvd253YXJkcyBidXQgYWxzbyB1cHdhcmRzLgpXb3JrcyBmb3IgdGhlICdwYXRoJywgJ2NkcGF0aCcgYW5kICd0YWdzJyBvcHRpb25zLiAoUmFsZiBTY2hhbmRsKQoKQWxzbyB1c2UgIioqIiBmb3IgJ3RhZ3MnIG9wdGlvbi4gKFJhbGYgU2NoYW5kbCkKCkFkZGVkICdpbmNsdWRlZXhwcicsIGNhbiBiZSB1c2VkIHRvIG1vZGlmeSBmaWxlIG5hbWUgZm91bmQgYnkgJ2luY2x1ZGUnCm9wdGlvbi4KQWxzbyB1c2UgJ2luY2x1ZGVleHByJyBmb3IgImdmIiBhbmQgIjxjZmlsZT4iIHdoZW4gdGhlIGZpbGUgY2FuJ3QgYmUgZm91bmQKd2l0aG91dCBtb2RpZmljYXRpb24uICBVc2VmdWwgZm9yIGRvaW5nICJnZiIgb24gdGhlIG5hbWUgYWZ0ZXIgYW4gaW5jbHVkZSBvcgppbXBvcnQgc3RhdGVtZW50LgoKQWRkZWQgdGhlICdjZHBhdGgnIG9wdGlvbjogTG9jYXRpb25zIHRvIGZpbmQgYSAiOmNkIiBhcmd1bWVudC4gKFJhZikKCkFkZGVkIHRoZSAnc3VmZml4ZXNhZGQnIG9wdGlvbjogU3VmZml4ZXMgdG8gYmUgYWRkZWQgdG8gYSBmaWxlIG5hbWUgd2hlbgpzZWFyY2hpbmcgZm9yIGEgZmlsZSBmb3IgdGhlICJnZiIsICJbSSIsIGV0Yy4gY29tbWFuZHMuCgoKV3JpdGluZyBmaWxlcyBpbXByb3ZlZAkJCQkJKm5ldy1maWxlLXdyaXRpbmcqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkFkZGVkIHRoZSAnYmFja3VwY29weScgb3B0aW9uOiBTZWxlY3Qgd2hldGhlciBhIGZpbGUgaXMgdG8gYmUgY29waWVkIG9yCnJlbmFtZWQgdG8gbWFrZSBhIGJhY2t1cCBmaWxlLiAgVXNlZnVsIG9uIFVuaXggdG8gc3BlZWQgdXAgd3JpdGluZyBhbiBvcmRpbmFyeQpmaWxlLiAgVXNlZnVsIG9uIG90aGVyIHN5c3RlbXMgdG8gcHJlc2VydmUgZmlsZSBhdHRyaWJ1dGVzIGFuZCB3aGVuIGVkaXRpbmcgYQpmaWxlIG9uIGEgVW5peCBmaWxlc3lzdGVtLgoKQWRkZWQgdGhlICdhdXRvd3JpdGVhbGwnIG9wdGlvbi4gIFdvcmtzIGxpa2UgJ2F1dG93cml0ZScgYnV0IGZvciBtb3JlCmNvbW1hbmRzLgoKQWRkZWQgdGhlICdiYWNrdXBza2lwJyBvcHRpb246IEEgbGlzdCBvZiBmaWxlIHBhdHRlcm5zIHRvIHNraXAgbWFraW5nIGEgYmFja3VwCmZpbGUgd2hlbiBpdCBtYXRjaGVzLiAgVGhlIGRlZmF1bHQgZm9yIFVuaXggaW5jbHVkZXMgIi90bXAvKiIsIHRoaXMgbWFrZXMKImNyb250YWIgLWUiIHdvcmsuCgpBZGRlZCBzdXBwb3J0IGZvciBBY2Nlc3MgQ29udHJvbCBMaXN0cyAoQUNMKSBmb3IgRnJlZUJTRCBhbmQgV2luMzIuICBUaGUgQUNMCmlzIGNvcGllZCBmcm9tIHRoZSBvcmlnaW5hbCBmaWxlIHRvIHRoZSBuZXcgZmlsZSAob3IgdGhlIGJhY2t1cCBpZiBpdCdzCmNvcGllZCkuCkFDTCBpcyBhbHNvIHN1cHBvcnRlZCBmb3IgQUlYLCBTb2xhcmlzIGFuZCBnZW5lcmljIFBPU0lYLiAoVG9tYXMgT2dyZW4pCkFuZCBvbiBTR0kuCgoKQXJndW1lbnQgbGlzdAkJCQkJCSpuZXctYXJndW1lbnQtbGlzdCoKLS0tLS0tLS0tLS0tLQoKVGhlIHN1cHBvcnQgZm9yIHRoZSBhcmd1bWVudCBsaXN0IGhhcyBiZWVuIGV4dGVuZGVkLiAgSXQgY2FuIG5vdyBiZQptYW5pcHVsYXRlZCB0byBjb250YWluIHRoZSBmaWxlcyB5b3Ugd2FudCBpdCB0byBjb250YWluLgoKVGhlIGFyZ3VtZW50IGxpc3QgY2FuIG5vdyBiZSBsb2NhbCB0byBhIHdpbmRvdy4gIEl0IGlzIGNyZWF0ZWQgd2l0aCB0aGUKfDphcmdsb2NhbHwgY29tbWFuZC4gIFRoZSB8OmFyZ2dsb2JhbHwgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBnbyBiYWNrIHRvIHRoZQpnbG9iYWwgYXJndW1lbnQgbGlzdC4KClRoZSB8OmFyZ2RvfCBjb21tYW5kIGV4ZWN1dGVzIGEgY29tbWFuZCBvbiBhbGwgZmlsZXMgaW4gdGhlIGFyZ3VtZW50IGxpc3QuCgpGaWxlIG5hbWVzIGNhbiBiZSBhZGRlZCB0byB0aGUgYXJndW1lbnQgbGlzdCB3aXRoIHw6YXJnYWRkfC4gIEZpbGUgbmFtZXMgY2FuCmJlIHJlbW92ZWQgd2l0aCB8OmFyZ2RlbGV0ZXwuCgoiIyMiIGNhbiBiZSB1c2VkIGxpa2UgIiMiLCBpdCBpcyByZXBsYWNlZCBieSBhbGwgdGhlIG5hbWVzIGluIHRoZSBhcmd1bWVudApsaXN0IGNvbmNhdGVuYXRlZC4gIFVzZWZ1bCBmb3IgIjpncmVwIGZvbyAjIyIuCgpUaGUgfDphcmdlZGl0fCBhZGRzIGEgZmlsZSB0byB0aGUgYXJndW1lbnQgbGlzdCBhbmQgZWRpdHMgaXQuICBMaWtlICI6YXJnYWRkIgphbmQgdGhlbiAiOmVkaXQiLgoKClJlc3RvcmUgYSBWaWV3CQkJCQkJKm5ldy1WaWV3KgotLS0tLS0tLS0tLS0tLQoKVGhlICI6bWt2aWV3IiBjb21tYW5kIHdyaXRlcyBhIFZpbSBzY3JpcHQgd2l0aCB0aGUgc2V0dGluZ3MgYW5kIG1hcHBpbmdzIGZvcgpvbmUgd2luZG93LiAgV2hlbiB0aGUgY3JlYXRlZCBmaWxlIGlzIHNvdXJjZWQsIHRoZSB2aWV3IG9mIHRoZSB3aW5kb3cgaXMKcmVzdG9yZWQuICBJdCdzIGxpa2UgIjpta3Nlc3Npb24iIGZvciBvbmUgd2luZG93LgpUaGUgVmlldyBhbHNvIGNvbnRhaW5zIHRoZSBsb2NhbCBhcmd1bWVudCBsaXN0IGFuZCBtYW51YWxseSBjcmVhdGVkLCBvcGVuZWQKYW5kIGNsb3NlZCBmb2xkcy4KCkFkZGVkIHRoZSAiOmxvYWR2aWV3IiBjb21tYW5kIGFuZCB0aGUgJ3ZpZXdkaXInIG9wdGlvbjogQWxsb3dzIGZvciBzYXZpbmcgYW5kCnJlc3RvcmluZyB2aWV3cyBvZiBhIGZpbGUgd2l0aCBzaW1wbGUgY29tbWFuZHMuICAiOm1rdmlldyAxIiBzYXZlcyB2aWV3IDEgZm9yCnRoZSBjdXJyZW50IGZpbGUsICI6bG9hZHZpZXcgMSIgbG9hZHMgaXQgYWdhaW4uICBBbHNvIGFsbG93cyBxdWlja2x5IHN3aXRjaGluZwpiZXR3ZWVuIHR3byB2aWV3cyBvbiBvbmUgZmlsZS4gIEFuZCBzYXZpbmcgYW5kIHJlc3RvcmluZyBtYW51YWwgZm9sZHMgYW5kIHRoZQpmb2xkaW5nIHN0YXRlLgoKQWRkZWQgJ3ZpZXdvcHRpb25zJyB0byBzcGVjaWZ5IGhvdyAiOm1rdmlldyIgd29ya3MuCgoiOm1rc2Vzc2lvbiIgbm93IGFsc28gd29ya3MgZmluZSB3aXRoIHZlcnRpY2FsIHNwbGl0cy4gIEl0IGhhcyBiZWVuIGZ1cnRoZXIKaW1wcm92ZWQgYW5kIHJlc3RvcmVzIHRoZSB2aWV3IG9mIGVhY2ggd2luZG93LiAgSXQgYWxzbyB3b3JrcyBwcm9wZXJseSB3aXRoCnByZXZpZXcgYW5kIHF1aWNrZml4IHdpbmRvd3MuCgonc2Vzc2lvbm9wdGlvbnMnIGlzIHVzZWQgZm9yICI6bWt2aWV3IiBhcyB3ZWxsLgpBZGRlZCAiY3VyZGlyIiBhbmQgInNlc2RpciIgdG8gJ3Nlc3Npb25vcHRpb25zJy4gIEFsbG93cyBzZWxlY3Rpb24gb2Ygd2hhdAp0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2lsbCBiZSByZXN0b3JlZCB0by4KClRoZSBzZXNzaW9uIGZpbGUgbm93IGFsc28gY29udGFpbnMgdGhlIGFyZ3VtZW50IGxpc3QocykuCgoKQ29sb3Igc2NoZW1lcwkJCQkJCSpuZXctY29sb3Itc2NoZW1lcyoKLS0tLS0tLS0tLS0tLQoKU3VwcG9ydCBmb3IgbG9hZGluZyBhIGNvbG9yIHNjaGVtZS4gIEFkZGVkIHRoZSAiOmNvbG9yc2NoZW1lIiBjb21tYW5kLgpBdXRvbWF0aWNhbGx5IGFkZCBtZW51IGVudHJpZXMgZm9yIGF2YWlsYWJsZSBzY2hlbWVzLgpTaG91bGQgbm93IHByb3Blcmx5IHJlc2V0IHRoZSBjb2xvcnMgd2hlbiAnYmFja2dyb3VuZCcgb3IgJ3RfQ28nIGlzIGNoYW5nZWQuCiI6aGlnaGxpZ2h0IGNsZWFyIiBzZXRzIHRoZSBkZWZhdWx0IGNvbG9ycyBhZ2Fpbi4KIjpzeW50YXggcmVzZXQiIHNldHMgdGhlIHN5bnRheCBoaWdobGlnaHQgY29sb3JzIGJhY2sgdG8gdGhlIGRlZmF1bHRzLgpGb3IgIjpzZXQgYmcmIiBndWVzcyB0aGUgdmFsdWUuICBUaGlzIGFsbG93cyBhIGNvbG9yIHNjaGVtZSB0byBzd2l0Y2ggYmFjayB0bwp0aGUgZGVmYXVsdCBjb2xvcnMuCldoZW4gc3ludGF4IGhpZ2hsaWdodGluZyBpcyBzd2l0Y2hlZCBvbiBhbmQgYSBjb2xvciBzY2hlbWUgd2FzIGRlZmluZWQsIHJlbG9hZAp0aGUgY29sb3Igc2NoZW1lIHRvIGRlZmluZSB0aGUgY29sb3JzLgoKClZhcmlvdXMgbmV3IGl0ZW1zCQkJCQkqbmV3LWl0ZW1zLTYqCi0tLS0tLS0tLS0tLS0tLS0tCgpOb3JtYWwgbW9kZSBjb21tYW5kczogfgoKImdpIgkJSnVtcCB0byB0aGUgXiBtYXJrIGFuZCBzdGFydCBJbnNlcnQgbW9kZS4gIEFsc28gd29ya3Mgd2hlbiB0aGUKCQltYXJrIGlzIGp1c3QgYWZ0ZXIgdGhlIGxpbmUuIHxnaXwKCiJnJ20iIGFuZCAiZ2BtIgoJCUp1bXAgdG8gYSBtYXJrIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGp1bXBsaXN0LiAgTm93IHlvdSBjYW4gdXNlCgkJZ2AiIHRvIGp1bXAgdG8gdGhlIGxhc3Qga25vd24gcG9zaXRpb24gaW4gYSBmaWxlIHdpdGhvdXQgc2lkZQoJCWVmZmVjdHMuICBBbHNvIHVzZWZ1bCBpbiBtYXBwaW5ncy4KClsnLCBbYCwgXScgYW5kIF1gCgkJbW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBuZXh0L3ByZXZpb3VzIGxvd2VyY2FzZSBtYXJrLgoKZ18JCUdvIHRvIGxhc3Qgbm9uLWJsYW5rIGluIGxpbmUuIChTdGV2ZSBXYWxsKQoKCk9wdGlvbnM6IH4KCidhdXRvcmVhZCcJV2hlbiBkZXRlY3RlZCB0aGF0IGEgZmlsZSBjaGFuZ2VkIG91dHNpZGUgb2YgVmltLAoJCWF1dG9tYXRpY2FsbHkgcmVhZCBhIGJ1ZmZlciBhZ2FpbiB3aGVuIGl0J3Mgbm90IGNoYW5nZWQuCgkJSXQgaGFzIGEgZ2xvYmFsIGFuZCBhIGxvY2FsIHZhbHVlLiAgVXNlICI6c2V0bG9jYWwgYXV0b3JlYWQ8IgoJCXRvIGdvIGJhY2sgdG8gdXNpbmcgdGhlIGdsb2JhbCB2YWx1ZSBmb3IgJ2F1dG9yZWFkJy4KCidkZWJ1ZycJCVdoZW4gc2V0IHRvICJtc2ciIGl0IHdpbGwgcHJpbnQgZXJyb3IgbWVzc2FnZXMgdGhhdCB3b3VsZAoJCW90aGVyd2lzZSBiZSBvbWl0dGVkLiAgVXNlZnVsIGZvciBkZWJ1Z2dpbmcgJ2luZGVudGV4cHInIGFuZAoJCSdmb2xkZXhwcicuCgonbGlzcHdvcmRzJwlMaXN0IG9mIHdvcmRzIHVzZWQgZm9yIGxpc3AgaW5kZW50aW5nLiAgSXQgd2FzIHByZXZpb3VzbHkgaGFyZAoJCWNvZGVkLiAgQWRkZWQgYSBudW1iZXIgb2YgTGlzcCBuYW1lcyB0byB0aGUgZGVmYXVsdC4KCidmb2xkLi4uJwlNYW55IG5ldyBvcHRpb25zIGZvciBmb2xkaW5nLgoKJ21vZGlmaWFibGUnCVdoZW4gb2ZmLCBpdCBpcyBpbXBvc3NpYmxlIHRvIG1ha2UgY2hhbmdlcyB0byBhIGJ1ZmZlci4KCQlUaGUgJW0gYW5kICVNIGl0ZW1zIGluICdzdGF0dXNsaW5lJyBzaG93IGEgJy0nLgoKJ3ByZXZpZXd3aW5kb3cnIFNldCBpbiB0aGUgcHJldmlldyB3aW5kb3cuICBVc2VkIGluIGEgc2Vzc2lvbiBmaWxlIHRvIG1hcmsgYQoJCXdpbmRvdyBhcyB0aGUgcHJldmlldyB3aW5kb3cuCgoncHJpbnRmb250JwoncHJpbnRleHByJwoncHJpbnRoZWFkZXInCidwcmludGRldmljZScKJ3ByaW50b3B0aW9ucycJZm9yICI6aGFyZGNvcHkiLgoKJ2J1Zmxpc3RlZCcJTWFrZXMgYSBidWZmZXIgYXBwZWFyIGluIHRoZSBidWZmZXIgbGlzdCBvciBub3QuCgpVc2UgInZpbXt2ZXJzaW9ufToiIGZvciBtb2RlbGluZXMsIG9ubHkgdG8gYmUgZXhlY3V0ZWQgd2hlbiB0aGUgdmVyc2lvbiBpcwo+PSB7dmVyc2lvbn0uICBBbHNvICJ2aW0+e3ZlcnNpb259IiwgInZpbTx7dmVyc2lvbn0iIGFuZCAidmltPXt2ZXJzaW9ufSIuCgoKRXggY29tbWFuZHM6IH4KCjpzYXZbZWFzXVshXSB7ZmlsZX0KCQlXb3JrcyBsaWtlICI6dyBmaWxlIiBhbmQgIjplICMiLCBidXQgd2l0aG91dCBsb2FkaW5nIHRoZSBmaWxlCgkJYWdhaW4gYW5kIGF2b2lkaW5nIG90aGVyIHNpZGUgZWZmZWN0cy4gfDpzYXZlYXN8Cgo6c2lsZW50WyFdIHtjbWR9CgkJRXhlY3V0ZSBhIGNvbW1hbmQgc2lsZW50bHkuICBBbHNvIGRvbid0IHVzZSBhIGRlbGF5IHRoYXQgd291bGQKCQljb21lIGFmdGVyIHRoZSBtZXNzYWdlLiAgQW5kIGRvbid0IGRvICdzaG93bWF0Y2gnLgoJCVJJU0NPUzogUmVtb3ZlZCB0aGF0ICIhfmNtZCIgZGlkbid0IG91dHB1dCBhbnl0aGluZywgYW5kCgkJZGlkbid0IHdhaXQgZm9yIDxFbnRlcj4gYWZ0ZXJ3YXJkcy4gIENhbiB1c2UgIjpzaWxlbnQgIWNtZCIKCQlub3cuCjptZW51IDxzaWxlbnQ+ICBBZGQgYSBtZW51IHRoYXQgd29uJ3QgZWNobyBFeCBjb21tYW5kcy4KOm1hcCA8c2lsZW50PiAgIEFkZCBhIG1hcHBpbmcgdGhhdCB3b24ndCBlY2hvIEV4IGNvbW1hbmRzLgoKOmNoZWNrdGltZQlDaGVjayBmb3IgY2hhbmdlZCBidWZmZXJzLgoKOnZlcmJvc2Uge2NtZH0gIFNldCAndmVyYm9zZScgZm9yIG9uZSBjb21tYW5kLgoKOmVjaG9tc2cge2V4cHJ9CjplY2hvZXJyIHtleHByfSBMaWtlICI6ZWNobyIgYnV0IHN0b3JlIHRoZSBtZXNzYWdlIGluIHRoZSBoaXN0b3J5LiAoTWFyawoJCVdhZ2dvbmVyKQoKOmdyZXBhZGQJV29ya3MganVzdCBsaWtlICI6Z3JlcCIgYnV0IGFkZHMgdG8gdGhlIGN1cnJlbnQgZXJyb3IgbGlzdAoJCWluc3RlYWQgb2YgZGVmaW5pbmcgYSBuZXcgbGlzdC4gfDpncmVwYWRkfAoKOmZpbmlzaAkJRmluaXNoIHNvdXJjaW5nIGEgZmlsZS4gIENhbiBiZSB1c2VkIHRvIHNraXAgdGhlIHJlc3Qgb2YgYSBWaW0KCQlzY3JpcHQuIHw6ZmluaXNofAoKOmxlZnRhYm92ZQo6YWJvdmVsZWZ0CVNwbGl0IGxlZnQvYWJvdmUgY3VycmVudCB3aW5kb3cuCgo6cmlnaHRiZWxvdwo6YmVsb3dyaWdodAlTcGxpdCByaWdodC9iZWxvdyBjdXJyZW50IHdpbmRvdy4KCjpmaXJzdCwgOmJmaXJzdCwgOnB0Zmlyc3QsIGV0Yy4KCQlBbGlhcyBmb3IgIjpyZXdpbmQiLiAgSXQncyBtb3JlIGxvZ2ljYWwgY29tcGFyZWQgdG8gIjpsYXN0Ii4KCjplbmV3CQlFZGl0IGEgbmV3LCB1bm5hbWVkIGJ1ZmZlci4gIFRoaXMgaXMgbmVlZGVkLCBiZWNhdXNlICI6ZWRpdCIKCQlyZS1lZGl0cyB0aGUgc2FtZSBmaWxlLiAoV2FsbCkKCjpxdWl0YWxsCVNhbWUgYXMgIjpxYWxsIi4KCjptYXRjaAkJRGVmaW5lIG1hdGNoIGhpZ2hsaWdodGluZyBsb2NhbCB0byBhIHdpbmRvdy4gIEFsbG93cwoJCWhpZ2hsaWdodGluZyBhbiBpdGVtIGluIHRoZSBjdXJyZW50IHdpbmRvdyB3aXRob3V0IGludGVyZmVyaW5nCgkJd2l0aCBzeW50YXggaGlnaGxpZ2h0aW5nLgoKOm1lbnUgZW5hYmxlCjptZW51IGRpc2FibGUJQ29tbWFuZHMgdG8gZW5hYmxlL2Rpc2FibGUgbWVudSBlbnRyaWVzIHdpdGhvdXQgcmVtb3ZpbmcgdGhlbS4KCQkoTW9uaXNoIFNoYWgpCgo6d2luZG8JCUV4ZWN1dGUgYSBjb21tYW5kIGluIGFsbCB3aW5kb3dzLgo6YnVmZG8JCUV4ZWN1dGUgYSBjb21tYW5kIGluIGFsbCBidWZmZXJzLgoKOndpbmNtZAkJV2luZG93IChDVFJMLVcpIGNvbW1hbmQuICBVc2VmdWwgd2hlbiBhIE5vcm1hbCBtb2RlIGNvbW1hbmQKCQljYW4ndCBiZSB1c2VkIChlLmcuLCBmb3IgYSBDdXJzb3JIb2xkIGF1dG9jb21tYW5kKS4gIFNlZQoJCXxDdXJzb3JIb2xkLWV4YW1wbGV8IGZvciBhIG5pY2UgYXBwbGljYXRpb24gd2l0aCBpdC4KCjpsY2QgYW5kIDpsY2hkaXIKCQlTZXQgbG9jYWwgZGlyZWN0b3J5IGZvciBhIHdpbmRvdy4gKEJlbmppZSBDaGVuKQoKOmhpZGUge2NvbW1hbmR9CgkJRXhlY3V0ZSB7Y29tbWFuZH0gd2l0aCAnaGlkZGVuJyBzZXQuCgo6ZW1lbnUJCWluIFZpc3VhbCBtb2RlIHRvIGV4ZWN1dGUgYSAiOnZtZW51IiBlbnRyeS4KCjpwb3B1cAkJUG9wIHVwIGEgcG9wdXAgbWVudS4KCjpyZWRyYXcJCVJlZHJhdyB0aGUgc2NyZWVuIGV2ZW4gd2hlbiBidXN5IHdpdGggYSBzY3JpcHQgb3IgZnVuY3Rpb24uCgo6aGFyZGNvcHkJUHJpbnQgdG8gcGFwZXIuCgo6Y29tcGlsZXIJTG9hZCBhIFZpbSBzY3JpcHQgdG8gZG8gc2V0dGluZ3MgZm9yIGEgc3BlY2lmaWMgY29tcGlsZXIuCgo6eiMJCUxpc3QgbnVtYmVyZWQgbGluZXMuIChCb2hkYW4gVmxhc3l1aykKCgpOZXcgbWFya3M6IH4KCicoIGFuZCAnKQlCZWdpbiBvciBlbmQgb2YgY3VycmVudCBzZW50ZW5jZS4gIFVzZWZ1bCBpbiBFeCBjb21tYW5kcy4KJ3sgYW5kICd9CUJlZ2luIG9yIGVuZCBvZiBjdXJyZW50IHBhcmFncmFwaC4gIFVzZWZ1bCBpbiBFeCBjb21tYW5kcy4KJy4JCVBvc2l0aW9uIG9mIHRoZSBsYXN0IGNoYW5nZSBpbiB0aGUgY3VycmVudCBidWZmZXIuCideCQlQb3NpdGlvbiB3aGVyZSBJbnNlcnQgbW9kZSB3YXMgc3RvcHBlZC4KClN0b3JlIHRoZSBeIGFuZCAuIG1hcmtzIGluIHRoZSB2aW1pbmZvIGZpbGUuICBNYWtlcyBpdCBwb3NzaWJsZSB0byBqdW1wIHRvIHRoZQpsYXN0IGluc2VydCBwb3NpdGlvbiBvciBjaGFuZ2VkIHRleHQuCgoKTmV3IGZ1bmN0aW9uczogfgphcmdpZHgoKQlDdXJyZW50IGluZGV4IGluIGFyZ3VtZW50IGxpc3QuCmJ1Zmxpc3RlZCgpCUNoZWNrcyBpZiB0aGUgYnVmZmVyIGV4aXN0cyBhbmQgaGFzICdidWZsaXN0ZWQnIHNldC4KY2luZGVudCgpCUdldCBpbmRlbnQgYWNjb3JkaW5nIHRvICdjaW5kZW50Jy4KZXZlbnRoYW5kbGVyKCkJUmV0dXJucyAxIHdoZW4gaW5zaWRlIGFuIGV2ZW50IGhhbmRsZXIgYW5kIGludGVyYWN0aXZlCgkJY29tbWFuZHMgY2FuJ3QgYmUgdXNlZC4KZXhlY3V0YWJsZSgpCUNoZWNrcyBpZiBhIHByb2dyYW0gb3IgYmF0Y2ggc2NyaXB0IGNhbiBiZSBleGVjdXRlZC4KZmlsZXdyaXRhYmxlKCkJQ2hlY2tzIGlmIGEgZmlsZSBjYW4gYmUgd3JpdHRlbi4gKFJvbiBBYXJvbikKZm9sZGNsb3NlZCgpCUZpbmQgb3V0IGlmIHRoZXJlIGlzIGEgY2xvc2VkIGZvbGQuIChKb2hhbm5lcyBaZWxsbmVyKS4KZm9sZGNsb3NlZW5kKCkJRmluZCB0aGUgZW5kIG9mIGEgY2xvc2VkIGZvbGQuCmZvbGRsZXZlbCgpCUZpbmQgb3V0IHRoZSBmb2xkbGV2ZWwuIChKb2hhbm5lcyBaZWxsbmVyKQpmb3JlZ3JvdW5kKCkJTW92ZSB0aGUgR1VJIHdpbmRvdyB0byB0aGUgZm9yZWdyb3VuZC4KZ2V0Y2hhcigpCUdldCBvbmUgY2hhcmFjdGVyIGZyb20gdGhlIHVzZXIuICBDYW4gYmUgdXNlZCB0byBkZWZpbmUgYQoJCW1hcHBpbmcgdGhhdCB0YWtlcyBhbiBhcmd1bWVudC4KZ2V0Y2hhcm1vZCgpCUdldCBsYXN0IHVzZWQga2V5IG1vZGlmaWVyLgpnZXRidWZ2YXIoKQlnZXRzIHRoZSB2YWx1ZSBvZiBhbiBvcHRpb24gb3IgbG9jYWwgdmFyaWFibGUgaW4gYSBidWZmZXIgKFJvbgoJCUFhcm9uKQpnZXRmc2l6ZSgpCVJldHVybiB0aGUgc2l6ZSBvZiBhIGZpbGUuCmdldHdpbnZhcigpCWdldHMgdGhlIHZhbHVlIG9mIGFuIG9wdGlvbiBvciBsb2NhbCB2YXJpYWJsZSBpbiBhIHdpbmRvdyAoUm9uCgkJQWFyb24pCmdsb2JwYXRoKCkJRmluZCBtYXRjaGluZyBmaWxlcyBpbiBhIGxpc3Qgb2YgZGlyZWN0b3JpZXMuCmhhc21hcHRvKCkJRGV0ZWN0IGlmIGEgbWFwcGluZyB0byBhIHN0cmluZyBpcyBhbHJlYWR5IHByZXNlbnQuCmljb252KCkJCUNvbnZlcnQgYSBzdHJpbmcgZnJvbSBvbmUgZW5jb2RpbmcgdG8gYW5vdGhlci4KaW5kZW50KCkJZ2V0cyB0aGUgaW5kZW50IG9mIGEgbGluZSAoUm9uIEFhcm9uKQppbnB1dGRpYWxvZygpCUxpa2UgaW5wdXQoKSBidXQgdXNlIGEgR1VJIGRpYWxvZyB3aGVuIHBvc3NpYmxlLiAgQ3VycmVudGx5CgkJb25seSB3b3JrcyBmb3IgV2luMzIsIE1vdGlmLCBBdGhlbmEgYW5kIEdUSy4KCQlVc2UgaW5wdXRkaWFsb2coKSBmb3IgdGhlIEVkaXQvU2V0dGluZ3MvVGV4dCBXaWR0aCBtZW51LiAgQWxzbwoJCWZvciB0aGUgSGVscC9GaW5kLi4gYW5kIFRvb2xiYXIgRmluZEhlbHAgaXRlbXMuCgkJKFdpbjMyIHN1cHBvcnQgYnkgVGhvcmUgQi4gS2FybHNlbikKCQkoV2luMTYgc3VwcG9ydCBieSBWaW5jZSBOZWdyaSkKaW5wdXRzZWNyZXQoKQlBc2sgdGhlIHVzZXIgdG8gdHlwZSBhIHN0cmluZyB3aXRob3V0IHNob3dpbmcgdGhlIHR5cGVkIGtleXMuCgkJKENoYXJsZXMgQ2FtcGJlbGwpCmxpYmNhbGwoKQlmb3IgVW5peCAoTmVpbCBCaXJkLCBKb2hhbm5lcyBaZWxsbmVyLCBTdGVwaGVuIFdhbGwpCmxpYmNhbGxucigpCWZvciBXaW4zMiBhbmQgVW5peApsaXNwaW5kZW50KCkJR2V0IGluZGVudCBhY2NvcmRpbmcgdG8gJ2xpc3AnLgptb2RlKCkJCVJldHVybiBhIHN0cmluZyB0aGF0IGluZGljYXRlcyB0aGUgY3VycmVudCBtb2RlLgpuZXh0bm9uYmxhbmsoKQlTa2lwIGJsYW5rIGxpbmVzIGZvcndhcmRzLgpwcmV2bm9uYmxhbmsoKQlTa2lwIGJsYW5rIGxpbmVzIGJhY2t3YXJkcy4gIFVzZWZ1bCB0byBmb3IgaW5kZW50IHNjcmlwdHMuCnJlc29sdmUoKQlNUy1XaW5kb3dzOiByZXNvbHZlIGEgc2hvcnRjdXQgdG8gdGhlIGZpbGUgaXQgcG9pbnRzIHRvLgoJCVVuaXg6IHJlc29sdmUgYSBzeW1ib2xpYyBsaW5rLgpzZWFyY2goKQlTZWFyY2ggZm9yIGEgcGF0dGVybi4Kc2VhcmNocGFpcigpCVNlYXJjaCBmb3IgbWF0Y2hpbmcgcGFpci4gIENhbiBiZSB1c2VkIGluIGluZGVudCBmaWxlcyB0byBmaW5kCgkJdGhlICJpZiIgbWF0Y2hpbmcgYW4gZW5kaWYuCnNldGJ1ZnZhcigpCXNldHMgYW4gb3B0aW9uIG9yIHZhcmlhYmxlIGxvY2FsIHRvIGEgYnVmZmVyIChSb24gQWFyb24pCnNldHdpbnZhcigpCXNldHMgYW4gb3B0aW9uIG9yIHZhcmlhYmxlIGxvY2FsIHRvIGEgd2luZG93IChSb24gQWFyb24pCnN0cmlkeCgpCVNlYXJjaCBmb3IgZmlyc3Qgb2NjdXJyZW5jZSBvZiBvbmUgc3RyaW5nIGluIGFub3RoZXIuCnN0cnJpZHgoKQlTZWFyY2ggZm9yIGxhc3Qgb2NjdXJyZW5jZSBvZiBvbmUgc3RyaW5nIGluIGFub3RoZXIuCnRvbG93ZXIoKQlDb252ZXJ0IHN0cmluZyB0byBhbGwtbG93ZXJjYXNlLgp0b3VwcGVyKCkJQ29udmVydCBzdHJpbmcgdG8gYWxsLXVwcGVyY2FzZS4KdHlwZSgpCQlDaGVjayB0aGUgdHlwZSBvZiBhbiBleHByZXNzaW9uLgp3aW5jb2woKQl3aW5kb3cgY29sdW1uIG9mIHRoZSBjdXJzb3IKd2lud2lkdGgoKQlXaWR0aCBvZiBhIHdpbmRvdy4gKEpvaGFubmVzIFplbGxuZXIpCndpbmxpbmUoKQl3aW5kb3cgbGluZSBvZiB0aGUgY3Vyc29yCgoKQWRkZWQgZXhwYW5zaW9uIG9mIGN1cmx5IGJyYWNlcyBpbiB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gbmFtZXMuICBUaGlzIGNhbiBiZQp1c2VkIGZvciB2YXJpYWJsZSBuYW1lcyB0aGF0IGluY2x1ZGUgdGhlIHZhbHVlIG9mIGFuIG9wdGlvbi4gIE9yIGEgcHJpbWl0aXZlCmZvcm0gb2YgYXJyYXlzLiAoVmluY2UgTmVncmkpCgoKTmV3IGF1dG9jb21tYW5kIGV2ZW50czogfgpCdWZXaW5FbnRlcglUcmlnZ2VyZWQgd2hlbiBhIGJ1ZmZlciBpcyBkaXNwbGF5ZWQgaW4gYSB3aW5kb3csIGFmdGVyIHVzaW5nCgkJdGhlIG1vZGVsaW5lcy4gIENhbiBiZSB1c2VkIHRvIGxvYWQgYSB2aWV3LgpCdWZXaW5MZWF2ZQlUcmlnZ2VyZWQgd2hlbiBhIGJ1ZmZlciBpcyBubyBsb25nZXIgaW4gYSB3aW5kb3cuICBBbHNvCgkJdHJpZ2dlcmVkIHdoZW4gZXhpdGluZyBWaW0uICBDYW4gYmUgdXNlZCB0byBzYXZlIHZpZXdzLgpGaWxlQ2hhbmdlZFJPCVRyaWdnZXJlZCBiZWZvcmUgbWFraW5nIHRoZSBmaXJzdCBjaGFuZ2UgdG8gYSByZWFkLW9ubHkgZmlsZS4KCQlDYW4gYmUgdXNlZCB0byBjaGVjay1vdXQgdGhlIGZpbGUuIChTY290dCBHcmFoYW0pClRlcm1SZXNwb25zZQlUcmlnZ2VyZWQgd2hlbiB0aGUgdGVybWluYWwgcmVwbGllcyB0byB0aGUgdmVyc2lvbi1yZXF1ZXN0LgoJCVRoZSB2OnRlcm1yZXNwb25zZSBpbnRlcm5hbCB2YXJpYWJsZSBob2xkcyB0aGUgcmVzdWx0LiAgQ2FuIGJlCgkJdXNlZCB0byByZWFjdCB0byB0aGUgdmVyc2lvbiBvZiB0aGUgdGVybWluYWwuICAoUm9uYWxkIFNjaGlsZCkKRmlsZVJlYWRDbWQJVHJpZ2dlcmVkIGJlZm9yZSByZWFkaW5nIGEgZmlsZS4KQnVmUmVhZENtZAlUcmlnZ2VyZWQgYmVmb3JlIHJlYWRpbmcgYSBmaWxlIGludG8gYSBidWZmZXIuCkZpbGVXcml0ZUNtZAlUcmlnZ2VyZWQgYmVmb3JlIHdyaXRpbmcgYSBmaWxlLgpCdWZXcml0ZUNtZAlUcmlnZ2VyZWQgYmVmb3JlIHdyaXRpbmcgYSBidWZmZXIgaW50byBhIGZpbGUuCkZpbGVBcHBlbmRDbWQJVHJpZ2dlcmVkIGJlZm9yZSBhcHBlbmRpbmcgdG8gYSBmaWxlLgpGdW5jVW5kZWZpbmVkCVRyaWdnZXJlZCB3aGVuIGEgdXNlciBmdW5jdGlvbiBpcyBub3QgZGVmaW5lZC4gKFJvbiBBYXJvbikKClRoZSBhdXRvY29tbWFuZHMgZm9yIHRoZSAqQ21kIGV2ZW50cyByZWFkIG9yIHdyaXRlIHRoZSBmaWxlIGluc3RlYWQgb2Ygbm9ybWFsCmZpbGUgcmVhZC93cml0ZS4gIFVzZSB0aGlzIGluIG5ldHJ3LnZpbSB0byBiZSBhYmxlIHRvIGVkaXQgZmlsZXMgb24gYSByZW1vdGUKc3lzdGVtLiAoQ2hhcmxlcyBDYW1wYmVsbCkKCgpOZXcgU3ludGF4IGZpbGVzOiB+CgpiZGYJCUJERiBmb250IGRlZmluaXRpb24gKE5pa29sYWkgV2VpYnVsbCkKY2F0YWxvZwkJU0dNTCBjYXRhbG9nIChKb2hhbm5lcyBaZWxsbmVyKQpkZWJjaGFuZ2Vsb2cJRGViaWFuIENoYW5nZWxvZyAoV2ljaGVydCBBa2tlcm1hbikKZGViY29udHJvbAlEZWJpYW4gQ29udHJvbCAoV2ljaGVydCBBa2tlcm1hbikKZG90CQlkb3QgKE1hcmt1cyBNb3R0bCkKZHNsCQlEU1NTTCBzeW50YXggKEpvaGFubmVzIFplbGxuZXIpCmV0ZXJtCQlFdGVybSBjb25maWd1cmF0aW9uIChOaWtvbGFpIFdlaWJ1bGwpCmluZGVudAkJSW5kZW50IHByb2ZpbGUgKE5pa29sYWkgV2VpYnVsbCkKbGZ0cAkJTEZUUCAoTmlrb2xhaSBXZWlidWxsKQpseW54CQlMeW54IGNvbmZpZyAoRG91ZyBLZWFybnMpCm11c2gJCW11c2ggc291cmNlY29kZSAoQmVrIE9iZXJpbikKbmF0dXJhbAkJTmF0dXJhbCAoTWFya28gTGVpcGVydCkKcGlscmMJCVBhbCByZXNvdXJjZSBjb21waWxlciAoQnJpYW4gU2NoYXUpCnBsbQkJUEwvTSAoUGhpbGlwcGUgQ291bG9uZ2VzKQpwb3ZpbmkJCVBvdnJheSBjb25maWd1cmF0aW9uIChEYXZpZCBOZWNhcykKcmF0cG9pc29uCVJhdHBvaXNvbiBjb25maWcvY29tbWFuZCAoRG91ZyBLZWFybnMpCnJlYWRsaW5lCXJlYWRsaW5lIGNvbmZpZyAoTmlrb2xhaSBXZWlidWxsKQpzY3JlZW4JCVNjcmVlbiBSQyAoTmlrb2xhaSBXZWlidWxsKQpzcGVjbWFuCQlTcGVjbWFuIChPciBGcmV1bmQpCnNxbGZvcm1zCVNRTCpGb3JtcyAoQXVzdGluIFppZWdsZXIpCnRlcm1pbmZvCXRlcm1pbmZvIChOaWtvbGFpIFdlaWJ1bGwpCnRpZHkJCVRpZHkgY29uZmlndXJhdGlvbiAoRG91ZyBLZWFybnMpCndnZXQJCVdnZXQgY29uZmlndXJhdGlvbiAoRG91ZyBLZWFybnMpCgoKVXBkYXRlZCBtYW55IHN5bnRheCBmaWxlcyB0byB3b3JrIGJvdGggd2l0aCBWaW0gNS43IGFuZCA2LjAuCgpJbnRlcmZhY2UgdG8gUnVieS4gKFNodWdvIE1hZWRhKQpTdXBwb3J0IGR5bmFtaWMgbG9hZGluZyBvZiB0aGUgUnVieSBpbnRlcmZhY2Ugb24gTVMtV2luZG93cy4gKE11cmFva2EgVGFybykKU3VwcG9ydCB0aGlzIGZvciBNaW5ndyB0b28uIChCZW5vaXQgQ2VycmluYSkKCldpbjMyOiBBZGRlZCBwb3NzaWJpbGl0eSB0byBsb2FkIFRDTCBkeW5hbWljYWxseS4gKE11cmFva2EgVGFybykKQWxzbyBmb3IgQm9ybGFuZCA1LjUuIChEYW4gU2hhcnApCgpXaW4zMjogV2hlbiBlZGl0aW5nIGEgZmlsZSB0aGF0IGlzIGEgc2hvcnRjdXQgKCoubG5rIGZpbGUpLCBlZGl0IHRoZSBmaWxlIGl0CmxpbmtzIHRvLiAgVW5sZXNzICdiaW5hcnknIGlzIHNldCwgdGhlbiBlZGl0IHRoZSBzaG9ydGN1dCBmaWxlIGl0c2VsZi4KKFlhc3VoaXJvIE1hdHN1bW90bykKClRoZSAiOmNvbW1hbmQiIGNvbW1hbmQgbm93IGFjY2VwdHMgYSAiLWJhciIgYXJndW1lbnQuICBUaGlzIGFsbG93cyB0aGUgdXNlcgpjb21tYW5kIHRvIGJlIGZvbGxvd2VkIGJ5ICJ8IGNvbW1hbmQiLgoKVGhlIHByZXZpZXcgd2luZG93IGlzIG5vdyBhbHNvIHVzZWQgYnkgdGhlc2UgY29tbWFuZHM6Ci0gfDpwZWRpdHwgZWRpdHMgdGhlIHNwZWNpZmllZCBmaWxlIGluIHRoZSBwcmV2aWV3IHdpbmRvdwotIHw6cHNlYXJjaHwgc2VhcmNoZXMgZm9yIGEgd29yZCBpbiBpbmNsdWRlZCBmaWxlcywgbGlrZSB8OmlqdW1wfCwgYW5kCiAgZGlzcGxheXMgdGhlIGZvdW5kIHRleHQgaW4gdGhlIHByZXZpZXcgd2luZG93LgpBZGRlZCB0aGUgQ1RSTC1XIFAgY29tbWFuZDogZ28gdG8gcHJldmlldyB3aW5kb3cuCgpNUy1ET1MgYW5kIE1TLVdpbmRvd3MgYWxzbyByZWFkIHRoZSBzeXN0ZW0td2lkZSB2aW1yYyBmaWxlICRWSU0vdmltcmMuICBNb3N0bHkKZm9yIE5UIHN5c3RlbXMgd2l0aCBtdWx0aXBsZSB1c2Vycy4KCkEgZG91YmxlLWNsaWNrIG9mIHRoZSBtb3VzZSBvbiBhIGNoYXJhY3RlciB0aGF0IGhhcyBhICIlIiBtYXRjaCBzZWxlY3RzIGZyb20KdGhhdCBjaGFyYWN0ZXIgdG8gdGhlIG1hdGNoLiAgU2ltaWxhciB0byAidiUiLgoKIi1TIHNlc3Npb24udmltIiBhcmd1bWVudDogU291cmNlIGEgc2NyaXB0IGZpbGUgd2hlbiBzdGFydGluZyB1cC4gIENvbnZlbmllbnQKd2F5IHRvIHN0YXJ0IFZpbSB3aXRoIGEgc2Vzc2lvbiBmaWxlLgoKQWRkZWQgIi0tY21kIHtjb21tYW5kfSIgVmltIGFyZ3VtZW50IHRvIGV4ZWN1dGUgYSBjb21tYW5kIGJlZm9yZSBhIHZpbXJjIGZpbGUKaXMgbG9hZGVkLiAoVmluY2UgTmVncmkpCgpBZGRlZCB0aGUgIi1NIiBWaW0gYXJndW1lbnQ6IHJlc2V0ICdtb2RpZmlhYmxlJyBhbmQgJ3dyaXRlJywgdGh1cyBkaXNhbGxvdwptYWtpbmcgY2hhbmdlcyBhbmQgd3JpdGluZyBmaWxlcy4KCkFkZGVkIHJ1bnRpbWUvZGVsbWVudS52aW0uICBTb3VyY2UgdGhpcyB0byByZW1vdmUgYWxsIG1lbnVzIGFuZCBwcmVwYXJlIGZvcgpsb2FkaW5nIG5ldyBtZW51cy4gIFVzZWZ1bCB3aGVuIGNoYW5naW5nICdsYW5nbWVudScuCgpQZXJsIHNjcmlwdCB0byBmaWx0ZXIgUGVybCBlcnJvciBtZXNzYWdlcyB0byBxdWlja2ZpeCB1c2FibGUgZm9ybWF0LiAoSm9lcmcKWmllZmxlKQoKQWRkZWQgcnVudGltZS9tYWNyb3MvbGVzcy52aW06IFZpbSBzY3JpcHQgdG8gc2ltdWxhdGUgbGVzcywgYnV0IHdpdGggc3ludGF4CmhpZ2hsaWdodGluZy4KCk1TLVdpbmRvd3MgaW5zdGFsbCBwcm9ncmFtOiAoSm9uIE1lcnopCi0gVGhlIFdpbjMyIHByb2dyYW0gY2FuIG5vdyBjcmVhdGUgc2hvcnRjdXRzIG9uIHRoZSBkZXNrdG9wIGFuZCBpbnN0YWxsIFZpbSBpbgogIHRoZSBTdGFydCBtZW51LgotIFBvc3NpYmx5IHJlbW92ZSBvbGQgIkVkaXQgd2l0aCBWaW0iIGVudHJpZXMuCi0gVGhlIFZpbSBleGVjdXRhYmxlIGlzIG5ldmVyIG1vdmVkIG9yICRQQVRIIGNoYW5nZWQuICBBIHNtYWxsIGJhdGNoIGZpbGUgaXMKICBjcmVhdGVkIGluIGEgZGlyZWN0b3J5IGluICRQQVRILiAgRmV3ZXIgY2hvaWNlcyB0byBiZSBtYWRlLgotIERldGVjdCBhbHJlYWR5IGluc3RhbGxlZCBWaW0gdmVyc2lvbnMgYW5kIG9mZmVyIHRvIHVuaW5zdGFsbCB0aGVtIGZpcnN0LgoKSW1wcm92ZWQgdGhlIE1TLVdpbmRvd3MgdW5pbnN0YWwgcHJvZ3JhbS4gIEl0IG5vdyBhbHNvIGRlbGV0ZXMgdGhlIGVudHJpZXMgaW4KdGhlIFN0YXJ0IG1lbnUsIGljb25zIGZyb20gdGhlIGRlc2t0b3AgYW5kIHRoZSBjcmVhdGVkIGJhdGNoIGZpbGVzLiAoSm9uIE1lcnopCkFsc28gbWFkZSBpdCBwb3NzaWJsZSB0byBkZWxldGUgb25seSBzb21lIG9mIHRoZXNlLiAgQWxzbyB1bnJlZ2lzdGVyIGd2aW0gZm9yCk9MRS4KCkdlbmVyYXRlIGEgc2VsZi1pbnN0YWxsaW5nIFZpbSBwYWNrYWdlIGZvciBNUy1XaW5kb3dzLiAgVGhpcyB1c2VzIE5TSVMuIChKb24KTWVyeiBldCBhbC4pCgpBZGRlZCAiOmZpbGV0eXBlIGRldGVjdCIuICBUcnkgZGV0ZWN0aW5nIHRoZSBmaWxldHlwZSBhZ2Fpbi4gIEhlbHBzIHdoZW4Kd3JpdGluZyBhIG5ldyBzaGVsbCBzY3JpcHQsIGFmdGVyIGFkZGluZyAiIyEvYmluL2NzaCIuCgpBZGRlZCAiOmF1Z3JvdXAhIG5hbWUiIHRvIGRlbGV0ZSBhbiBhdXRvY29tbWFuZCBncm91cC4gIE5lZWRlZCBmb3IgdGhlCmNsaWVudC1zZXJ2ZXIgIi0tcmVtb3RlLXdhaXQiLgoKQWRkIHRoZSBWaW0gdmVyc2lvbiBudW1iZXIgdG8gdGhlIHZpbWluZm8gZmlsZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSU1QUk9WRU1FTlRTCQkJCQkJKmltcHJvdmVtZW50cy02KgoKQWRkZWQgdGhlICduJyBmbGFnIGluICdjcG9wdGlvbnMnOiBXaGVuIG9taXR0ZWQgdGV4dCBvZiB3cmFwcGVkIGxpbmVzIGlzIG5vdApwdXQgYmV0d2VlbiBsaW5lIG51bWJlcnMgZnJvbSAnbnVtYmVyJyBvcHRpb24uICBNYWtlcyBpdCBhIGxvdCBlYXNpZXIgdG8gcmVhZAp3cmFwcGVkIGxpbmVzLgoKV2hlbiB0aGVyZSBpcyBhIGZvcm1hdCBlcnJvciBpbiBhIHRhZ3MgZmlsZSwgdGhlIGJ5dGUgcG9zaXRpb24gaXMgcmVwb3J0ZWQgc28KdGhhdCB0aGUgZXJyb3IgY2FuIGJlIGxvY2F0ZWQuCgoiZ2YiIHdvcmtzIGluIFZpc3VhbCBtb2RlOiBVc2UgdGhlIHNlbGVjdGVkIHRleHQgYXMgdGhlIGZpbGUgbmFtZS4gKENoYXNlClRpbmdsZXkpCgpBbGxvdyBhbWJpZ3VvdXMgbWFwcGluZ3MuICBUaHVzICJhYSIgYW5kICJhYWEiIGNhbiBib3RoIGJlIG1hcHBlZCwgdGhlIGxvbmdlc3QKbWF0Y2hpbmcgb25lIGlzIHVzZWQuICBFc3BlY2lhbGx5IHVzZWZ1bCBmb3IgIjpsbWFwIiBhbmQgJ2tleW1hcCcuCgpFbmNyeXB0aW9uOiBBc2sgdGhlIGtleSB0byBiZSB0eXBlZCB0d2ljZSB3aGVuIGNyeXB0aW5nIHRoZSBmaXJzdCB0aW1lLgpPdGhlcndpc2UgYSB0eXBvIG1pZ2h0IGNhdXNlIHRoZSB0ZXh0IHRvIGJlIGxvc3QgZm9yZXZlci4gKENoYXNlIFRpbmdsZXkpCgpUaGUgd2luZG93IHRpdGxlIG5vdyBoYXMgIlZJTSIgb24gdGhlIGVuZC4gIFRoZSBmaWxlIG5hbWUgY29tZXMgZmlyc3QsIHVzZWZ1bAppbiB0aGUgdGFza2Jhci4gIEEgIisiIGlzIGFkZGVkIHdoZW4gdGhlIGZpbGUgaXMgbW9kaWZpZWQuICAiPSIgaXMgYWRkZWQgZm9yCmEgcmVhZC1vbmx5IGZpbGUuICAiLSIgaXMgYWRkZWQgZm9yIGEgZmlsZSB3aXRoICdtb2RpZmlhYmxlJyBvZmYuCgpJbiBWaXN1YWwgbW9kZSwgbWVudGlvbiB0aGUgc2l6ZSBvZiB0aGUgc2VsZWN0ZWQgYXJlYSBpbiB0aGUgJ3Nob3djbWQnCnBvc2l0aW9uLgoKQWRkZWQgdGhlICJiOmNoYW5nZWR0aWNrIiB2YXJpYWJsZS4gIEluY3JlbWVudGVkIGF0IGVhY2ggY2hhbmdlLCBhbHNvIGZvcgp1bmRvLiAgQ2FuIGJlIHVzZWQgdG8gdGFrZSBhY3Rpb24gb25seSBpZiB0aGUgYnVmZmVyIGhhcyBiZWVuIGNoYW5nZWQuCgpJbiB0aGUgcmVwbGFjZW1lbnQgc3RyaW5nIG9mIGEgIjpzIiBjb21tYW5kICJcPSIgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB3aXRoCnRoZSByZXN1bHQgb2YgYW4gZXhwcmVzc2lvbi4gIEZyb20gdGhpcyBleHByZXNzaW9uIHRoZSBzdWJtYXRjaCgpIGZ1bmN0aW9uIGNhbgpiZSB1c2VkIHRvIGFjY2VzcyBzdWJtYXRjaGVzLgoKV2hlbiBkb2luZyAiOnFhbGwiIGFuZCB0aGVyZSBpcyBhIGNoYW5nZSBpbiBhIGJ1ZmZlciB0aGF0IGlzIGJlaW5nIGVkaXRlZCBpbgphbm90aGVyIHdpbmRvdywganVtcCB0byB0aGF0IHdpbmRvdywgaW5zdGVhZCBvZiBlZGl0aW5nIHRoYXQgYnVmZmVyIGluIHRoZQpjdXJyZW50IHdpbmRvdy4KCkFkZGVkIHRoZSAiKytlbmM9IiBhbmQgIisrZmY9IiBhcmd1bWVudHMgdG8gZmlsZSByZWFkL3dyaXRlIGNvbW1hbmRzIHRvIGZvcmNlCnVzaW5nIHRoZSBnaXZlbiAnZW5jb2RpbmcnIG9yICdmaWxlZm9ybWF0Jy4gIEFuZCBhZGRlZCB0aGUgInY6Y21kYXJnIgp2YXJpYWJsZSwgdG8gYmUgdXNlZCBmb3IgRmlsZVJlYWRDbWQgYXV0b2NvbW1hbmRzIHRoYXQgcmVhZC93cml0ZSB0aGUgZmlsZQp0aGVtc2VsdmVzLgoKV2hlbiByZWFkaW5nIHN0ZGluLCBmaXJzdCByZWFkIHRoZSB0ZXh0IGluIGJpbmFyeSBtb2RlIGFuZCB0aGVuIHJlLXJlYWQgaXQKd2l0aCBhdXRvbWF0aWMgc2VsZWN0aW9uIG9mICdmaWxlZm9ybWF0JyBhbmQgJ2ZpbGVlbmNvZGluZycuICBUaGlzIGF2b2lkcwpwcm9ibGVtcyB3aXRoIG5vdCBiZWluZyBhYmxlIHRvIHJld2luZCB0aGUgZmlsZSAoZS5nLiwgd2hlbiBhIGxpbmUgbmVhciB0aGUKZW5kIG9mIHRoZSBmaWxlIGVuZHMgaW4gTEYgaW5zdGVhZCBvZiBDUi1MRikuCldoZW4gcmVhZGluZyB0ZXh0IGZyb20gc3RkaW4gYW5kIHRoZSBidWZmZXIgaXMgZW1wdHksIGRvbid0IG1hcmsgaXQgY2hhbmdlZC4KQWxsb3dzIGV4aXRpbmcgd2l0aG91dCB0cm91YmxlLgoKQWRkZWQgYW4gSUQgdG8gbWFueSBlcnJvciBtZXNzYWdlcy4gIFRoaXMgd2lsbCBtYWtlIGl0IGVhc2llciB0byBmaW5kIGhlbHAgZm9yCmEgbWVzc2FnZS4KCkluc2VydCBtb2RlOgotICJDVFJMLUcgaiIgYW5kICJDVFJMLUcgayIgY2FuIGJlIHVzZWQgdG8gaW5zZXJ0IGluIGFub3RoZXIgbGluZSBpbiB0aGUgc2FtZQogIGNvbHVtbi4gIFVzZWZ1bCBmb3IgZWRpdGluZyBhIHRhYmxlLgotIEFkZGVkIFRoZXNhdXJ1cyBjb21wbGV0aW9uIHdpdGggQ1RSTC1YIENUUkwtVC4gKFZpbmNlIE5lZ3JpKQotIEFkZGVkIHRoZSAndGhlc2F1cnVzJyBvcHRpb24sIHRvIHVzZSBpbnN0ZWFkIG9mICdkaWN0aW9uYXJ5JyBmb3IgdGhlc2F1cnVzCiAgY29tcGxldGlvbi4gIEFkZGVkIHRoZSAncycgZmxhZyBpbiAnY29tcGxldGUnLgotIE1hZGUgQ1RSTC1YIENUUkwtTCBpbiBJbnNlcnQgbW9kZSB1c2UgdGhlICdjb21wbGV0ZScgb3B0aW9uLiAgSXQgbm93IGFsc28KICBzY2FucyBvdGhlciBsb2FkZWQgYnVmZmVycyBmb3IgbWF0Y2hpbmcgbGluZXMuCi0gQ1RSTC1SIG5vdyBhbHNvIHdvcmtzIGluIEluc2VydCBtb2RlIHdoaWxlIGRvaW5nIGNvbXBsZXRpb24gd2l0aCBDVFJMLVggb3IKICBDVFJMLU4uIChOZWlsIEJpcmQpCi0gV2hlbiBkb2luZyBJbnNlcnQgbW9kZSBjb21wbGV0aW9uLCB3aGVuIGNvbXBsZXRpb24gaXMgZmluaXNoZWQgY2hlY2sgZm9yIGEKICBtYXRjaCB3aXRoIHdvcmRzIGZyb20gJ2NpbmtleXMnIG9yICdpbmRlbnRrZXlzJy4KClBlcmZvcm1hbmNlOgotIE1hZGUgZGlzcGxheSB1cGRhdGluZyBtb3JlIGVmZmljaWVudC4gIEluc2VydC9kZWxldGUgbGluZXMgbWF5IGJlIHVzZWQgZm9yCiAgYWxsIGNoYW5nZXMsIGFsc28gZm9yIHVuZG8vcmVkby4KLSBUaGUgZGlzcGxheSBpcyBub3QgcmVkcmF3biB3aGVuIHRoZXJlIGlzIHR5cGVhaGVhZCBpbiBJbnNlcnQgbW9kZS4gIFNwZWVkcwogIHVwIENUUkwtUiBhIGxvdC4KLSBJbXByb3ZlZCBzcGVlZCBvZiBzY3JlZW4gb3V0cHV0IGZvciAzMiBiaXQgRE9TIHZlcnNpb24uIChWaW5jZSBOZWdyaSkKLSBXaGVuIGRyYWdnaW5nIHdpdGggdGhlIG1vdXNlLCB0aGVyZSBpcyBhIGxvb2thaGVhZCB0byBza2lwIG1vdXNlIGNvZGVzIHdoZW4KICB0aGVyZSBpcyBhbm90aGVyIG9uZSBuZXh0LiAgTWFrZXMgZHJhZ2dpbmcgd2l0aCB0aGUgbW91c2UgYSBsb3QgZmFzdGVyLgotIEFsc28gYSBtZW1vcnkgdXNhZ2UgaW1wcm92ZW1lbnQ6IFdoZW4gY2FsbGluZyB1X3NhdmUgd2l0aCBhIHNpbmdsZSBsaW5lLAogIGRvbid0IHNhdmUgaXQgaWYgdGhlIGxpbmUgd2FzIHJlY2VudGx5IHNhdmVkIGZvciB0aGUgc2FtZSB1bmRvIGFscmVhZHkuCi0gV2hlbiB1c2luZyBhIHNjcmlwdCB0aGF0IGFwcGVuZHMgb25lIGNoYXJhY3RlciBhdCBhIHRpbWUsIHRoZSBhbW91bnQgb2YKICBhbGxvY2F0ZWQgbWVtb3J5IHdhcyBncm93aW5nIHN0ZWFkaWx5LiAgQWxzbyB3aGVuICd1bmRvbGV2ZWxzJyBpcyAtMS4KICBDYXVzZWQgYnkgdGhlIGxpbmUgc2F2ZWQgZm9yICJVIiBuZXZlciB0byBiZSBmcmVlZC4gIE5vdyBmcmVlIGFuIHVuZG8gYmxvY2sKICB3aGVuIGl0IGJlY29tZXMgZW1wdHkuCi0gR1VJIGFuZCBEb3MzMjogVXNlIGEgdmVydGljYWwgc2Nyb2xsIHJlZ2lvbiwgdG8gbWFrZSBzY3JvbGxpbmcgaW4gYQogIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93IGZhc3Rlci4gIE5vIG5lZWQgdG8gcmVkcmF3IHRoZSB3aG9sZSB3aW5kb3cuCi0gV2hlbiBzY3JvbGxpbmcgaXNuJ3QgcG9zc2libGUgd2l0aCB0ZXJtaW5hbCBjb2RlcyAoZS5nLiwgZm9yIGEgdmVydGljYWxseQogIHNwbGl0IHdpbmRvdykgcmVkcmF3IGZyb20gU2NyZWVuTGluZXNbXS4gIFRoYXQgc2hvdWxkIGJlIGZhc3RlciB0aGFuIGdvaW5nCiAgdGhyb3VnaCB0aGUgbGluZXMgd2l0aCB3aW5fbGluZSgpLCBlc3BlY2lhbGx5IHdoZW4gdXNpbmcgc3ludGF4CiAgaGlnaGxpZ2h0aW5nLgotIFRoZSBTeW50YXggbWVudSBpcyBub3cgcHJlLWdlbmVyYXRlZCBieSBhIHNlcGFyYXRlIHNjcmlwdC4gIE1ha2VzIGxvYWRpbmcKICB0aGUgbWVudSA3MCUgZmFzdGVyLiAgVGhpcyBjYW4gaGFsdmUgdGhlIHN0YXJ0dXAgdGltZSBvZiBndmltLgotIFdoZW4gZG9pbmcgIjpoZWxwIHRhZyIsIGRvbid0IG9wZW4gaGVscC50eHQgZmlyc3QsIGp1bXAgZGlyZWN0bHkgdG8gdGhlIGhlbHAKICB0YWcuICBJdCdzIGZhc3RlciBhbmQgYXZvaWRzIGFuIGV4dHJhIG1lc3NhZ2UuCi0gV2luMzI6IFdoZW4gYSBmaWxlIG5hbWUgZG9lc24ndCBlbmQgaW4gIi5sbmsiIGRvbid0IHRyeSByZXNvbHZpbmcgYQogIHNob3J0Y3V0LCBpdCB0YWtlcyBxdWl0ZSBhIGJpdCBvZiB0aW1lLgotIERvbid0IHVwZGF0ZSB0aGUgbW91c2UgcG9pbnRlciBzaGFwZSB3aGlsZSB0aGVyZSBhcmUgdHlwZWFoZWFkIGNoYXJhY3RlcnMuCi0gQ2hhbmdlIE1FVEFbXSBmcm9tIGEgc3RyaW5nIGludG8gYW4gYXJyYXksIGF2b2lkcyB1c2luZyBzdHJjaHIoKSBvbiBpdC4KLSBEb24ndCBjbGVhciB0aGUgY29tbWFuZCBsaW5lIHdoZW4gYWRkaW5nIGNoYXJhY3RlcnMsIGF2b2lkcyB0aGF0IHNjcmVlbl9maWxsCiAgaXMgY2FsbGVkIGJ1dCBkb2Vzbid0IGRvIGFueXRoaW5nLgoKUm9idXN0bmVzczoKLSBVbml4OiBDaGVjayBmb3IgcnVubmluZyBvdXQgb2Ygc3RhY2sgc3BhY2Ugd2hlbiBleGVjdXRpbmcgYSByZWdleHAuICBBdm9pZHMKICBhIG5hc3R5IGNyYXNoLiAgT25seSB3b3JrcyB3aGVuIHRoZSBzeXN0ZW0gc3VwcG9ydHMgcnVubmluZyB0aGUgc2lnbmFsCiAgZnVuY3Rpb24gb24gYW5vdGhlciBzdGFjay4KLSBEaXNhbGxvdyAiOnNvdXJjZSA8ZGlybmFtZT4iLiAgT24gdW5peCBpdCdzIHBvc3NpYmxlIHRvIHJlYWQgYSBkaXJlY3RvcnksCiAgZG9lcyBub3QgbWFrZSBzZW5zZSB0byB1c2UgaXQgYXMgVmltIGNvbW1hbmRzLgoKU2VjdXJpdHk6Ci0gV2hlbiByZWFkaW5nIGZyb20gb3Igd3JpdGluZyB0byBhIHRlbXBvcmFyeSBmaWxlLCBjaGVjayB0aGF0IGl0IGlzbid0IGEKICBzeW1ib2xpYyBsaW5rLiAgR2l2ZXMgc29tZSBwcm90ZWN0aW9uIGFnYWluc3Qgc3ltbGluayBhdHRhY2tzLgotIFdoZW4gY3JlYXRpbmcgYSBiYWNrdXAgZmlsZSBjb3B5IG9yIGEgc3dhcCBmaWxlLCBjaGVjayBmb3IgaXQgYWxyZWFkeQogIGV4aXN0aW5nIHRvIGF2b2lkIGEgc3ltbGluayBhdHRhY2suIChDb2xpbiBQaGlwcHMpCi0gRXZhbHVhdGluZyBvcHRpb25zIHdoaWNoIGFyZSBhbiBleHByZXNzaW9uIGlzIGRvbmUgaW4gYSB8c2FuZGJveHwuICBJZiB0aGUKICBvcHRpb24gd2FzIHNldCBieSBhIG1vZGVsaW5lLCBpdCBjYW5ub3QgY2F1c2UgZGFtYWdlLgotIFVzZSBhIHNlY3VyZSB3YXkgdG8gZ2VuZXJhdGUgdGVtcCBmaWxlIG5hbWVzOiBDcmVhdGUgYSBwcml2YXRlIGRpcmVjdG9yeSBmb3IKICB0ZW1wIGZpbGVzLiAgVXNlZCBmb3IgVW5peCwgTVMtRE9TIGFuZCBPUy8yLgotICdtYWtlZWYnIGNhbiBiZSBlbXB0eSwgd2hpY2ggbWVhbnMgdGhhdCBhbiBpbnRlcm5hbGx5IGdlbmVyYXRlZCBmaWxlIG5hbWUgaXMKICB1c2VkLiAgVGhlIG9sZCBkZWZhdWx0IHdhcyAiL3RtcC9maWxlIiwgd2hpY2ggaXMgYSBzZWN1cml0eSByaXNrLgogIFdyaXRpbmcgJ21ha2VlZicgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGZhaWxzIGluIGEgcmVhZC1vbmx5IGRpcmVjdG9yeSBhbmQKICBjYXVzZXMgdHJvdWJsZSB3aGVuIHVzaW5nICI6Z3JlcCIgb24gYWxsIGZpbGVzLiAgTWFkZSB0aGUgZGVmYXVsdCBlbXB0eSBmb3IKICBhbGwgc3lzdGVtcywgc28gdGhhdCBhIHRlbXAgZmlsZSBpcyB1c2VkLgotIFRoZSBjb21tYW5kIGZyb20gYSB0YWdzIGZpbGUgaXMgZXhlY3V0ZWQgaW4gdGhlIHNhbmRib3ggZm9yIGJldHRlciBzZWN1cml0eS4KLSBUaGUgUnVieSwgVGNsIGFuZCBQeXRob24gaW50ZXJmYWNlcyBjYW5ub3QgYmUgdXNlZCBmcm9tIHRoZSBzYW5kYm94LiAgVGhleQogIG1pZ2h0IGRvIGRhbmdlcm91cyB0aGluZ3MuICBQZXJsIGlzIHN0aWxsIHBvc3NpYmxlLCBidXQgbGltaXRlZCB0byB0aGUgU2FmZQogIGVudmlyb25tZW50LiAoRG9ubmllIFNtaXRoKQoKU3ludGF4IGhpZ2hsaWdodGluZzoKLSBPcHRpbWl6ZWQgdGhlIHNwZWVkIGJ5IGNhY2hpbmcgdGhlIHN0YXRlIHN0YWNrIGFsbCBvdmVyIHRoZSBmaWxlLCBub3QganVzdAogIHRoZSBwYXJ0IGJlaW5nIGRpc3BsYXllZC4gIFJlcXVpcmVkIGZvciBmb2xkaW5nLgotIEFkZGVkICI6c3ludGF4IHN5bmMgZnJvbXN0YXJ0IjogQWx3YXlzIHBhcnNlIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBmaWxlLgotIEFkZGVkIHRoZSAiZGlzcGxheSIgYXJndW1lbnQgZm9yIHN5bnRheCBpdGVtczogdXNlIHRoZSBpdGVtIG9ubHkgd2hlbgogIGRpc3BsYXlpbmcgdGhlIHJlc3VsdC4gIENhbiBtYWtlIHBhcnNpbmcgZmFzdGVyIGZvciB0ZXh0IHRoYXQgaXNuJ3QgZ29pbmcgdG8KICBiZSBkaXNwbGF5ZWQuCi0gV2hlbiB1c2luZyBDVFJMLUwsIHRoZSBjYWNoZWQgc3RhdGVzIGFyZSBkZWxldGVkLCB0byBmb3JjZSBwYXJzaW5nIHRoZSB0ZXh0CiAgYWdhaW4uCi0gVXNlIGVsZmhhc2ggYWxnb3JpdGhtIGZvciB0YWJsZSBvZiBrZXl3b3Jkcy4gIFRoaXMgc2hvdWxkIGdpdmUgYSBiZXR0ZXIKICBkaXN0cmlidXRpb24gYW5kIHNwZWVkdXAga2V5d29yZCBsb29rdXAuIChDYW1wYmVsbCkKLSBBbHNvIGFsbG93IHRoZSAibGMiIGxlYWRpbmcgY29udGV4dCBmb3Igc2tpcCBhbmQgZW5kIHBhdHRlcm5zLiAoU2NvdHQKICBCaWdoYW0pCi0gU3ludGF4IGl0ZW1zIGNhbiBoYXZlIHRoZSAiZXh0ZW5kIiBhcmd1bWVudCB0byB1bmRvIHRoZSBlZmZlY3Qgb2YgYQogICJrZWVwZW5kIiBhcmd1bWVudCBvZiBhbiBpdGVtIGl0IGlzIGNvbnRhaW5lZCBpbi4gIE1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUKICBzb21lIGNvbnRhaW5lZCBpdGVtcyBleHRlbmQgYSByZWdpb24gd2hpbGUgb3RoZXJzIGRvbid0LgotICI6c3ludGF4IGNsZWFyIiBub3cgZGVsZXRlcyB0aGUgYjpjdXJyZW50X3N5bnRheCB2YXJpYWJsZS4gIFRoYXQncyBsb2dpY2FsLAogIHNpbmNlIG5vIHN5bnRheCBpcyBkZWZpbmVkIGFmdGVyIHRoaXMgY29tbWFuZC4KLSBBZGRlZCAiOnN5bnRheCBlbmFibGUiOiBzd2l0Y2ggb24gc3ludGF4IGhpZ2hsaWdodGluZyB3aXRob3V0IGNoYW5naW5nIHRoZQogIGNvbG9ycy4gIFRoaXMgYWxsb3dzIHNwZWNpZnlpbmcgdGhlIGNvbG9ycyBpbiB0aGUgLnZpbXJjIGZpbGUgd2l0aG91dCB0aGUKICBuZWVkIGZvciBhIG15c3ludGF4ZmlsZS4KLSBBZGRlZCAiOnN5bnRheCByZXNldCI6IHJlc2V0IHRoZSBjb2xvcnMgdG8gdGhlaXIgZGVmYXVsdHMuCi0gQWRkZWQgdGhlICJjb250YWlucz1UT1AiIGFuZCAiY29udGFpbnM9Q09OVEFJTkVEIiBhcmd1bWVudHMuICBNYWtlcyBpdAogIHBvc3NpYmxlIHRvIGRlZmluZSBhIHRyYW5zcGFyZW50IGl0ZW0gdGhhdCBkb2Vzbid0IGNvbnRhaW4gaXRzZWxmLgotIEFkZGVkIGEgImNvbnRhaW5lZGluIiBhcmd1bWVudCB0byBzeW50YXggaXRlbXMuICBBbGxvd3MgYWRkaW5nIGEgY29udGFpbmVkCiAgaXRlbSB0byBhbiBleGlzdGluZyBpdGVtIChlLmcuLCB0byBoaWdobGlnaHQgYSBuYW1lIGluIGEgY29tbWVudCkuCgpNb2RlbGVzcyBzZWxlY3Rpb246Ci0gV2hlbiBpbiB0aGUgY29tbWFuZC1saW5lIHdpbmRvdywgdXNlIG1vZGVsZXNzIHNlbGVjdGlvbiBpbiB0aGUgb3RoZXIKICB3aW5kb3dzLiAgTWFrZXMgaXQgcG9zc2libGUgdG8gY29weSB2aXNpYmxlIHRleHQgdG8gdGhlIGNvbW1hbmQtbGluZSB3aW5kb3cuCi0gU3VwcG9ydCBtb2RlbGVzcyBzZWxlY3Rpb24gb24gdGhlIGNtZGxpbmUgaW4gYSB0ZXJtaW5hbC4gIFByZXZpb3VzbHkgaXQgd2FzCiAgb25seSBwb3NzaWJsZSBmb3IgdGhlIEdVSS4KLSBNYWtlIGRvdWJsZS1yaWdodC1jbGljayBpbiBtb2RlbGVzcyBzZWxlY3Rpb24gc2VsZWN0IGEgd2hvbGUgd29yZC4gIFNpbmdsZQogIHJpZ2h0IGNsaWNrIGRvZXNuJ3QgdXNlIHRoZSB3b3JkIHNlbGVjdGlvbiBzdGFydGVkIGJ5IGEgZG91YmxlLWxlZnQtY2xpY2suCiAgTWFrZXMgaXQgd29yayBsaWtlIGluIFZpc3VhbCBtb2RlLgotIFRoZSBtb2RlbGVzcyBzZWxlY3Rpb24gbm8gbG9uZ2VyIGhhcyBhbiBpbXBsaWVkIGF1dG9tYXRpYyBjb3B5IHRvIHRoZQogIGNsaXBib2FyZC4gIEl0IG5vdyBvYmV5cyB0aGUgJ2EnIGFuZCAnQScgZmxhZ3MgaW4gJ2d1aW9wdGlvbnMnIG9yCiAgImF1dG9zZWxlY3QiIGFuZCAiYXV0b3NlbGVjdG1sIiBpbiAnY2xpcGJvYXJkJy4KLSBBZGRlZCB0aGUgQ1RSTC1ZIGNvbW1hbmQgaW4gQ21kbGluZS1tb2RlIHRvIGNvcHkgdGhlIG1vZGVsZXNzIHNlbGVjdGlvbiB0bwogIHRoZSBjbGlwYm9hcmQuICBBbHNvIHdvcmtzIGF0IHRoZSBoaXQtZW50ZXIgcHJvbXB0IGFuZCB0aGUgbW9yZSBwcm9tcHQuCiAgUmVtb3ZlZCB0aGUgbWFwcGluZ3MgaW4gcnVudGltZS9tc3dpbi52aW0gZm9yIENUUkwtWSBhbmQgQ1RSTC1aIGluCiAgY21kbGluZS1tb2RlIHRvIGJlIGFibGUgdG8gdXNlIENUUkwtWSBpbiB0aGUgbmV3IHdheS4KClJlZHVjZWQgdGhlIGFtb3VudCBvZiBzdGFjayBzcGFjZSB1c2VkIGJ5IHJlZ21hdGNoKCkgdG8gYWxsb3cgaXQgdG8gaGFuZGxlCmNvbXBsaWNhdGVkIHBhdHRlcm5zIG9uIGEgbG9uZ2VyIHRleHQuCgonaXNmbmFtZScgbm93IGluY2x1ZGVzICclJyBhbmQgJyMnLiAgTWFrZXMgInZpbSBkaXJcI2ZpbGUiIHdvcmsgZm9yIE1TLURPUy4KCkFkZGVkIGtleXBhZCBzcGVjaWFsIGtleXMgPGtFbnRlcj4sIDxrMD4gLSA8azk+LiAgV2hlbiBub3QgbWFwcGVkIHRoZXkgYmVoYXZlCmxpa2UgdGhlIEFTQ0lJIGVxdWl2YWxlbnQuIChJdmFuIFdlbGxlc3ogYW5kIFZpbmNlIE5lZ3JpKQpSZWNvZ25pemUgYSBmZXcgbW9yZSB4dGVybSBrZXlzOiA8Qy1SaWdodD4sIDxDLUxlZnQ+LCA8Qy1FbmQ+LCA8Qy1Ib21lPgoKQWxzbyB0cmlnZ2VyIHRoZSBCdWZVbmxvYWQgZXZlbnQgd2hlbiBWaW0gaXMgZ29pbmcgdG8gZXhpdC4gIFBlcmhhcHMgYSBzY3JpcHQKbmVlZHMgdG8gZG8gc29tZSBjbGVhbmluZyB1cC4KCkV4cGFuZCBleHByZXNzaW9uIGluIGJhY2t0aWNrczogYD17ZXhwcn1gLiAgQ2FuIGJlIHVzZWQgd2hlcmUgYmFja3RpY2sKZXhwYW5zaW9uIGlzIGRvbmUuIChWaW5jZSBOZWdyaSkKCkdVSToKLSBBZGRlZCAnTCcgYW5kICdSJyBmbGFncyBpbiAnZ3Vpb3B0aW9ucyc6IEFkZCBhIGxlZnQgb3IgcmlnaHQgc2Nyb2xsYmFyIG9ubHkKICB3aGVuIHRoZXJlIGlzIGEgdmVydGljYWxseSBzcGxpdCB3aW5kb3cuCi0gWDExOiBXaGVuIGEgY29sb3IgY2FuJ3QgYmUgYWxsb2NhdGVkLCB1c2UgdGhlIG5lYXJlc3QgbWF0Y2ggZnJvbSB0aGUKICBjb2xvcm1hcC4gIFRoaXMgYXZvaWRzIHRoYXQgYmxhY2sgaXMgdXNlZCBmb3IgbWFueSB0aGluZ3MuIChNb25pc2ggU2hhaCkKICBBbHNvIGRvIHRoaXMgZm9yIHRoZSBtZW51IGFuZCBzY3JvbGxiYXIsIHRvIGF2b2lkIHRoYXQgdGhleSBiZWNvbWUgYmxhY2suCi0gV2luMzIgYW5kIFgxMTogQWRkZWQgJ21vdXNlc2hhcGUnIG9wdGlvbjogQWRqdXN0IHRoZSBtb3VzZSBwb2ludGVyIHNoYXBlIHRvCiAgdGhlIGN1cnJlbnQgbW9kZS4gKFZpbmNlIE5lZ3JpKQotIEFkZGVkIHRoZSAnbGluZXNwYWNlJyBvcHRpb246IEluc2VydCBhIHBpeGVsIGxpbmUgYmV0d2VlbiBsaW5lcy4gKE5hbSkKLSBBbGxvdyBtb2RlbGVzcyBzZWxlY3Rpb24gKHdpdGhvdXQgbW92aW5nIHRoZSBjdXJzb3IpIGJ5IGtlZXBpbmcgQ1RSTCBhbmQKICBTSElGVCBwcmVzc2VkLiAoSXZhbiBXZWxsZXN6KQotIE1vdGlmOiBhZGRlZCB0b29sYmFyLiAoR29yZG9uIFByaWV1cikgIEFsc28gYWRkZWQgdG9vbHRpcHMuCi0gQXRoZW5hOiBhZGRlZCB0b29sYmFyIGFuZCB0b29sdGlwcy4gKERhdmlkIEhhcnJpc29uIC0tIGJhc2VkIG9uIEdvcmRvbgogIFByaWV1cidzIHdvcmspCi0gTWFkZSB0aGUgJ3Rvb2xiYXInIG9wdGlvbiB3b3JrIGZvciBBdGhlbmEgYW5kIE1vdGlmLiAgQ2FuIG5vdyBzd2l0Y2ggYmV0d2VlbgogIHRleHQgYW5kIGljb25zIG9uIHRoZSBmbHkuICAoRGF2aWQgSGFycmlzb24pCi0gU3VwcG9ydCBtZW51IHNlcGFyYXRvciBsaW5lcyBmb3IgQXRoZW5hLiAgKERhdmlkIEhhcnJpc29uKQotIEF0aGVuYTogQWRqdXN0IHRoZSBhcnJvdyBwaXhtYXAgdXNlZCBpbiBhIHB1bGxyaWdodCBtZW51IHRvIHRoZSBzaXplIG9mIHRoZQogIGZvbnQuIChEYXZpZCBIYXJyaXNvbikKLSBXaW4zMjogQWRkZWQgImMiIGZsYWcgdG8gJ2d1aWZvbnQnIHRvIGJlIGFibGUgdG8gc3BlY2lmeSB0aGUgY2hhcnNldC4gKEFydGVtCiAgS2hvZHVzaCkKLSBXaGVuIG5vIC0tZW5hYmxlLXhpbSBhcmd1bWVudCBpcyBnaXZlbiwgYXV0b21hdGljYWxseSBlbmFibGUgaXQgd2hlbiBhIFggR1VJCiAgaXMgdXNlZC4gIFJlcXVpcmVkIGZvciBkZWFkIGtleSBzdXBwb3J0IChhbmQgbXVsdGktYnl0ZSBpbnB1dCkuCi0gQWZ0ZXIgYSBmaWxlIHNlbGVjdGlvbiBkaWFsb2csIGNoZWNrIHRoYXQgdGhlIGVkaXRlZCBmaWxlcyB3ZXJlIG5vdCBjaGFuZ2VkCiAgb3IgZGVsZXRlZC4gIFRoZSBXaW4zMiBkaWFsb2cgYWxsb3dzIGRlbGV0aW5nIGFuZCByZW5hbWluZyBmaWxlcy4KLSBNb3RpZiBhbmQgQXRoZW5hOiBBZGRlZCBzdXBwb3J0IGZvciAiZWRpdHJlcyIuIChNYXJjaW4gRGFsZWNraSkKLSBNb3RpZiBhbmQgQXRoZW5hOiBBZGRlZCAibWVudUZvbnQiIHRvIGJlIGFibGUgdG8gc3BlY2lmeSBhIGZvbnQgb3IgZm9udHNldAogIGZvciB0aGUgbWVudXMuICBDYW4gYWxzbyBiZSBzZXQgd2l0aCB0aGUgIk1lbnUiIGhpZ2hsaWdodCBncm91cC4gIFVzZWZ1bAogIHdoZW4gdGhlIGxvY2FsZSBpcyBkaWZmZXJlbnQgZnJvbSAnZW5jb2RpbmcnLiAoRGF2aWQgSGFycmlzb24pCiAgV2hlbiBGT05UU0VUX0FMV0FZUyBpcyBkZWZpbmVkLCBhbHdheXMgdXNlIGEgZm9udHNldCBmb3IgdGhlIG1lbnVzLiAgU2hvdWxkCiAgYXZvaWQgdHJvdWJsZSB3aXRoIGNoYW5naW5nIGZyb20gYSBmb250IHRvIGEgZm9udHNldC4gIChEYXZpZCBIYXJyaXNvbikKLSBIaWdobGlnaHRpbmcgYW5kIGZvbnQgZm9yIHRoZSB0b29sdGlwcyBjYW4gYmUgc3BlY2lmaWVkIHdpdGggdGhlICJUb29sdGlwIgogIGhpZ2hsaWdodCBncm91cC4gKERhdmlkIEhhcnJpc29uKQotIFRoZSBDbWRsaW5lLW1vZGUgbWVudXMgY2FuIGJlIHVzZWQgYXQgdGhlIG1vcmUtcHJvbXB0LiAgVGhpcyBtb3N0bHkgd29ya3MKICBmaW5lLCBiZWNhdXNlIHRoZXkgc3RhcnQgd2l0aCBhIENUUkwtQy4gIFRoZSAiQ29weSIgbWVudSB3b3JrcyB0byBjb3B5IHRoZQogIG1vZGVsZXNzIHNlbGVjdGlvbi4gIEFsbG93cyBjb3B5aW5nIHRoZSBvdXRwdXQgb2YgIjpzZXQgYWxsIiBvciAiOmludHJvIgogIHdpdGhvdXQgYXV0by1zZWxlY3Rpb24uCi0gV2hlbiBzdGFydGluZyB0aGUgR1VJIHdoZW4gdGhlcmUgaXMgbm8gdGVybWluYWwgY29ubmVjdGVkIHRvIHN0ZG91dCBhbmQKICBzdGRlcnIsIGRpc3BsYXkgZXJyb3IgbWVzc2FnZXMgaW4gYSBkaWFsb2cuICBQcmV2aW91c2x5IHRoZXkgd291bGRuJ3QgYmUKICBkaXNwbGF5ZWQgYXQgYWxsLgotIEFsbG93IHNldHRpbmcgJ2Jyb3dzZWRpcicgdG8gdGhlIG5hbWUgb2YgYSBkaXJlY3RvcnksIHRvIGJlIHVzZWQgZm9yIHRoZQogIGZpbGUgZGlhbG9nLiAoRGFuIFNoYXJwKQotIGI6YnJvd3NlZmlsdGVyIGFuZCBnOmJyb3dzZWZpbHRlciBjYW4gYmUgc2V0IHRvIHRoZSBmaWx0ZXJzIHVzZWQgZm9yIHRoZQogIGZpbGUgZGlhbG9nLiAgU3VwcG9ydGVkIGZvciBXaW4zMiBhbmQgTW90aWYgR1VJLiAoRGFuIFNoYXJwKQoKWDExOgotIFN1cHBvcnQgZm9yIHRoZSBjbGlwYm9hcmQgc2VsZWN0aW9uIGFzIHJlZ2lzdGVyICIrLiAgV2hlbiBleGl0aW5nIG9yCiAgc3VzcGVuZGluZyBjb3B5IHRoZSBzZWxlY3Rpb24gdG8gY3V0IGJ1ZmZlciAwLiAgU2hvdWxkIGFsbG93IGNvcHkvcGFzdGUgd2l0aAogIG1vcmUgYXBwbGljYXRpb25zIGluIGEgWDExLXN0YW5kYXJkIHdheS4gIChOZWlsIEJpcmQpCi0gVXNlIHRoZSBYIGNsaXBib2FyZCBpbiBhbnkgdGVybWluYWwsIG5vdCBqdXN0IGluIGFuIHh0ZXJtLgogIEFkZGVkICJleGNsdWRlOiIgaW4gJ2NsaXBib2FyZCc6IFNwZWNpZnkgYSBwYXR0ZXJuIHRvIG1hdGNoIGFnYWluc3QgdGVybWluYWwKICBuYW1lcyBmb3Igd2hpY2ggbm8gY29ubmVjdGlvbiBzaG91bGQgYmUgbWFkZSB0byB0aGUgWCBzZXJ2ZXIuICBUaGUgZGVmYXVsdAogIGN1cnJlbnRseSB3b3JrIGZvciBGcmVlQlNEIGFuZCBMaW51eCBjb25zb2xlcy4KLSBBZGRlZCBhIGZldyBtZXNzYWdlcyBmb3Igd2hlbiAndmVyYm9zZScgaXMgbm9uLXplcm8gdG8gc2hvdyB3aGF0IGhhcHBlbnMKICB3aGVuIHRyeWluZyB0byBjb25uZWN0IHRvIHRoZSBYIHNlcnZlci4gIFNob3VsZCBoZWxwIHdoZW4gdHJ5aW5nIHRvIGZpbmQgb3V0CiAgd2h5IHN0YXJ0dXAgaXMgc2xvdy4KCkdUSyBHVUk6IChwYXJ0bHkgYnkgTWFyY2luIERhbGVja2kpCi0gV2l0aCBzb21lIGZvbnRzIHRoZSBjaGFyYWN0ZXJzIGNhbiBiZSB0YWxsZXIgdGhhbiBhc2NlbnQgKyBkZXNjZW50LiAgRS5nLiwKICAiLW1pc2MtZml4ZWQtKi0qLSotKi0xOC0qLSotKi0qLSotaXNvMTA2NDYtMSIuICBBZGQgb25lIHRvIHRoZSBjaGFyYWN0ZXIKICBjZWxsIGhlaWdodC4KLSBJbXBsZW1lbnQgIm5vIiB2YWx1ZSBmb3IgJ3dpbmFsdGtleXMnOiBkb24ndCB1c2UgQWx0LUtleSBhcyBhIG1lbnUgc2hvcnRjdXQsCiAgd2hlbiAnd2FrJyBjaGFuZ2VkIGFmdGVyIGNyZWF0aW5nIHRoZSBtZW51cy4KLSBTZXR0aW5nICd3YWsnIGFmdGVyIHRoZSBHVUkgc3RhcnRlZCB3b3Jrcy4KLSByZWN5Y2xlIHRleHQgR0MncyB0byByZWR1Y2UgY29tbXVuaWNhdGlvbi4KLSBBZGp1c3QgaWNvbiBzaXplIHRvIHdpbmRvdyBtYW5hZ2VyLgotIENsZWFudXAgaW4gZm9udCBoYW5kbGluZy4KLSBSZXBsYWNlIFhRdWVyeUNvbG9yIHdpdGggR0RLIGNhbGxzLgotIEdub21lIHN1cHBvcnQuICBEZXRlY3RzIEdub21lIGluIGNvbmZpZ3VyZSBhbmQgdXNlcyBkaWZmZXJlbnQgd2lkZ2V0cy4KICBPdGhlcndpc2UgaXQncyBtdWNoIGxpa2UgR1RLLiAoQW5keSBLYWhuKQogIEl0IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQsIGJlY2F1c2UgaXQgY2F1c2VzIGEgZmV3IHByb2JsZW1zLgotIFJlbW92ZWQgdGhlIHNwZWNpYWwgY29kZSB0byBmb3JrIGZpcnN0IGFuZCB0aGVuIHN0YXJ0IHRoZSBHVUkuICBOb3cgdXNlCiAgX2V4aXQoKSBpbnN0ZWFkIG9mIGV4aXQoKSwgdGhpcyB3b3JrcyBmaW5lIHdpdGhvdXQgc3BlY2lhbCB0cmlja3MuCi0gRGlhbG9ncyBzb21ldGltZXMgYXBwZWFyZWQgYSBiaXQgZmFyIGF3YXkuICBQb3NpdGlvbiB0aGUgZGlhbG9ncyBpbnNpZGUKICB0aGUgZ3ZpbSB3aW5kb3cuIChCcmVudCBWZXJuZXIpCi0gV2hlbiBkcm9wcGluZyBhIGZpbGUgb24gVmltLCByZW1vdmUgZXh0cmEgc2xhc2hlcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUKICBwYXRoLiAgQWxzbyBzaG9ydGVuIHRoZSBmaWxlIG5hbWUgaWYgcG9zc2libGUuCgpNb3RpZjogKE1hcmNpbiBEYWxlY2tpKQotIE1hZGUgdGhlIGRpYWxvZyBsYXlvdXQgYmV0dGVyLgotIEFkZGVkIGZpbmQgYW5kIGZpbmQvcmVwbGFjZSBkaWFsb2dzLgotIEZvciB0aGUgbWVudXMsIGNoYW5nZSAiaXNvLTg4NTkiIHRvICJpc29fODg1OSIsIExpbnV4IGFwcGVhcnMgdG8gbmVlZCB0aGlzLgotIEFkZGVkIGljb24gdG8gZGlhbG9ncywgbGlrZSBmb3IgR1RLLgotIFVzZSBYUE0gYml0bWFwcyBmb3IgdGhlIGljb24gd2hlbiBwb3NzaWJsZS4gIFVzZSB0aGUgU29sYXJpcyBYcG1QLmggaW5jbHVkZQogIGZpbGUgd2hlbiBpdCdzIGF2YWlsYWJsZS4KLSBDaGFuZ2UgdGhlIHNoYWRvdyBvZiB0aGUgdG9vbGJhciBpdGVtcyB0byBnZXQgYSB2aXN1YWwgZmVlZGJhY2sgb2YgaXQgYmVpbmcKICBwcmVzc2VkIG9uIG5vbi1MZXNzVGlmLgotIFVzZSBnYWRnZXRzIGluc3RlYWQgb2Ygd2luZG93cyBmb3Igc29tZSBpdGVtcyBmb3Igc3BlZWQuCgpDb21tYW5kIGxpbmUgY29tcGxldGlvbjoKLSBDb21wbGV0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lcy4gKE1pa2UgU3RlZWQpCi0gRm9yICI6Y29tbWFuZCIsIGFkZGVkIGEgZmV3IGNvbXBsZXRpb24gbWV0aG9kczogIm1hcHBpbmciLCAiZnVuY3Rpb24iLAogICJleHByZXNzaW9uIiBhbmQgImVudmlyb25tZW50Ii4KLSBXaGVuIGEgZnVuY3Rpb24gZG9lc24ndCB0YWtlIGFyZ3VtZW50cywgbGV0IGNvbXBsZXRpb24gYWRkICgpIGluc3RlYWQgb2YgKC4KCkZvciBNUy1ET1MsIE1TLVdpbmRvd3MgYW5kIE9TLzI6IEV4cGFuZCAlVkFSJSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgbGlrZSAkVkFSLgooV2FsdGVyIEJyaXNjb2UpCgpSZWRpcmVjdCBtZXNzYWdlcyB0byB0aGUgY2xpcGJvYXJkICI6cmVkaXIgQCoiIGFuZCB0byB0aGUgdW5uYW1lZCByZWdpc3RlcgoiOnJlZGlyIEAiIi4gKFdhbGwpCgoiOmxldCBALyA9ICcnIiBjbGVhcnMgdGhlIHNlYXJjaCBwYXR0ZXJuLCBpbnN0ZWFkIG9mIHNldHRpbmcgaXQgdG8gYW4gZW1wdHkKc3RyaW5nLgoKRXhwcmVzc2lvbiBldmFsdWF0aW9uOgotICI/IDoiIGNhbiBiZSB1c2VkIGxpa2UgaW4gQy4KLSBjb2woIiQiKSByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGN1cnNvciBsaW5lIHBsdXMgb25lLiAoU3RlcGhlbiBQLiBXYWxsKQotIE9wdGlvbmFsIGV4dHJhIGFyZ3VtZW50IGZvciBtYXRjaCgpLCBtYXRjaGVuZCgpIGFuZCBtYXRjaHN0cigpOiBPZmZzZXQgdG8KICBzdGFydCBsb29raW5nIGZvciBhIG1hdGNoLgotIE1hZGUgdGhpcmQgYXJndW1lbnQgdG8gc3RycGFydCgpIG9wdGlvbmFsLiAgKFBhdWwgTW9vcmUsIFpkZW5layBTZWtlcmEpCi0gZXhpc3RzKCkgY2FuIGFsc28gYmUgdXNlZCB0byBjaGVjayBmb3IgRXggY29tbWFuZHMgYW5kIGRlZmluZWQgYXV0b2NvbW1hbmRzLgotIEFkZGVkIGV4dHJhIGFyZ3VtZW50IHRvIGlucHV0KCk6IERlZmF1bHQgdGV4dC4KLSBBbHNvIHNldCAidjplcnJtc2ciIHdoZW4gdXNpbmcgIjpzaWxlbnQhIGNtZCIuCi0gQWRkZWQgdGhlIHY6cHJldmNvdW50IHZhcmlhYmxlOiB2OmNvdW50IGZvciB0aGUgcHJldmlvdXMgY29tbWFuZC4KLSBBZGRlZCAidjpwcm9nbmFtZSIsIG5hbWUgd2l0aCB3aGljaCBWaW0gd2FzIHN0YXJ0ZWQuIChWaW5jZSBOZWdyaSkKLSBJbiB0aGUgdmVyYm9zZSBtZXNzYWdlIGFib3V0IHJldHVybmluZyBmcm9tIGEgZnVuY3Rpb24sIGFsc28gc2hvdyB0aGUgcmV0dXJuCiAgdmFsdWUuCgpDc2NvcGU6Ci0gQWRkZWQgdGhlIGNzY29wZV9jb25uZWN0aW9uKCkgZnVuY3Rpb24uIChBbmR5IEthaG4pCi0gIjpjc2NvcGUga2lsbCAtMSIga2lsbHMgYWxsIGNzY29wZSBjb25uZWN0aW9ucy4gKEFuZHkgS2FobikKLSBBZGRlZCB0aGUgJ2NzY29wZXBhdGhjb21wJyBvcHRpb24uIChTY290dCBIYXVjaykKLSBBZGRlZCAiOnNjc2NvcGUiIGNvbW1hbmQsIHNwbGl0IHdpbmRvdyBhbmQgZXhlY3V0ZSBDc2NvcGUgY29tbWFuZC4gKEphc29uCiAgRHVlbGwpCgpWTVM6Ci0gQ29tbWFuZCBsaW5lIGFyZ3VtZW50cyBhcmUgYWx3YXlzIHVwcGVyY2FzZS4gIEludGVycHJldCBhICItWCIgYXJndW1lbnQgYXMKICAiLXgiIGFuZCAiLS9YIiBhcyAiLVgiLgotIFNldCAnbWFrZXByZycgYW5kICdncmVwcHJnJyB0byBtZWFuaW5nZnVsIGRlZmF1bHRzLiAoWm9sdGFuIEFycGFkZmZ5KQotIFVzZSB0aGUgWC1jbGlwYm9hcmQgZmVhdHVyZSBhbmQgdGhlIFggY29tbWFuZCBzZXJ2ZXIuIChab2x0YW4gQXJwYWRmZnkpCgpNYWNpbnRvc2g6IChEYW55IFN0LUFtYW50KQotIEFsbG93IGEgdGFncyBmaWxlIHRvIGhhdmUgQ1IsIENSLUxGIG9yIExGIGxpbmUgc2VwYXJhdG9yLiAoQXhlbCBLaWVsaG9ybikKLSBDYXJib25pemVkICh3aGlsZSBrZWVwaW5nIG5vbiBDYXJib24gY29kZSkKICAoU29tZSB3b3JrICJzdG9sZW4iIGZyb20gQW1tb24gU2tpZG1vcmUpCi0gSW1wcm92ZWQgdGhlIG1lbnUgaXRlbSBpbmRleCBoYW5kbGluZyAoc2hvdWxkIGJlIGZhc3RlcikKLSBSdW50aW1lIGNvbW1hbmRzIG5vdyBoYW5kbGUgLyBpbiBmaWxlIG5hbWUgKE1hY09TIDkgdmVyc2lvbikKLSBBZGRlZCAiOndpbnBvcyIgc3VwcG9ydC4KLSBTdXBwb3J0IHVzaW5nICJ+IiBpbiBmaWxlIG5hbWVzIGZvciBob21lIGRpcmVjdG9yeS4KCk9wdGlvbnM6Ci0gV2hlbiB1c2luZyBzZXQgKz0gb3IgXj0gLCBjaGVjayBmb3IgaXRlbXMgdXNlZCB0d2ljZS4gIER1cGxpY2F0ZXMgYXJlCiAgcmVtb3ZlZC4gIChWaW5jZSBOZWdyaSkKLSBXaGVuIHNldHRpbmcgYW4gb3B0aW9uIHRoYXQgaXMgYSBsaXN0IG9mIGZsYWdzLCByZW1vdmUgZHVwbGljYXRlIGZsYWdzLgotIElmIHBvc3NpYmxlLCB1c2UgZ2V0cmxpbWl0KCkgdG8gc2V0ICdtYXhtZW10b3QnIGFuZCAnbWF4bWVtJy4gKFBpbmEpCi0gQWRkZWQgImFscGhhIiB0byAnbnJmb3JtYXRzJzogaW5jcmVtZW50IG9yIGRlY3JlbWVudCBhbiBhbHBoYWJldGljIGNoYXJhY3RlcgogIHdpdGggQ1RSTC1BIGFuZCBDVFJMLVguCi0gIjpzZXQgb3B0JnZpIiBzZXRzIGFuIG9wdGlvbiB0byBpdHMgVmkgZGVmYXVsdCwgIjpzZXQgb3B0JnZpbSIgdG8gaXRzIFZpbQogIGRlZmF1bHQuICBVc2VmdWwgdG8gc2V0ICdjcG8nIHRvIGl0cyBWaW0gZGVmYXVsdCB3aXRob3V0IGtub3dpbmcgd2hhdCBmbGFncwogIHRoYXQgaW5jbHVkZXMuCi0gJ3Njcm9sbG9mZicgbm93IGFsc28gYXBwbGllcyB0byBhIGxvbmcsIHdyYXBwZWQgbGluZSB0aGF0IGRvZXNuJ3QgZml0IGluIHRoZQogIHdpbmRvdy4KLSBBZGRlZCBtb3JlIG9wdGlvbiBzZXR0aW5ncyB0byB0aGUgZGVmYXVsdCBtZW51cy4KLSBVcGRhdGVkIHRoZSBvcHRpb24gd2luZG93IHdpdGggbmV3IG9wdGlvbnMuICBNYWRlIGl0IGEgYml0IGVhc2llciB0byByZWFkLgoKSW50ZXJuYWwgY2hhbmdlczoKLSBTcGxpdCBsaW5lIHBvaW50ZXJzIGluIHRleHQgcGFydCBhbmQgYXR0cmlidXRlcyBwYXJ0LiAgQWxsb3dzIGZvciBmdXR1cmUKICBjaGFuZ2UgdG8gbWFrZSBhdHRyaWJ1dGUgbW9yZSB0aGFuIG9uZSBieXRlLgotIFByb3ZpZGUgYSBxc29ydCgpIGZ1bmN0aW9uIGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZSBpdC4KLSBDaGFuZ2VkIHRoZSBiaWcgc3dpdGNoIGZvciBOb3JtYWwgbW9kZSBjb21tYW5kcyBpbnRvIGEgdGFibGUuICBUaGlzIGNsZWFucwogIHVwIHRoZSBjb2RlIGNvbnNpZGVyYWJseSBhbmQgYXZvaWRzIHRyb3VibGUgZm9yIHNvbWUgb3B0aW1pemluZyBjb21waWxlcnMuCi0gQXNzaWduZWQgYSBuZWdhdGl2ZSB2YWx1ZSB0byBzcGVjaWFsIGtleXMsIHRvIGF2b2lkIHRoZW0gYmVpbmcgbWl4ZWQgdXAgd2l0aAogIFVuaWNvZGUgY2hhcmFjdGVycy4KLSBHbG9iYWwgdmFyaWFibGVzIGV4cGFuZF9jb250ZXh0IGFuZCBleHBhbmRfcGF0dGVybiB3ZXJlIG5vdCBzdXBwb3NlZCB0byBiZQogIGdsb2JhbC4gIFBhc3MgdGhlbSB0byBFeHBhbmRPbmUoKSBhbmQgYWxsIGZ1bmN0aW9ucyBjYWxsZWQgYnkgaXQuCi0gTm8gbG9uZ2VyIHVzZSB0aGUgZ2xvYmFsIHJlZ19pYyBmbGFnLiAgSXQgY2F1c2VkIHRyb3VibGUgYW5kIGluIGEgZmV3IHBsYWNlcwogIGl0IHdhcyBub3Qgc2V0LgotIFJlbW92ZWQgdGhlIHVzZSBvZiB0aGUgc3R1ZmYgYnVmZmVyIGZvciAiKiIsICJLIiwgQ1RSTC1dLCBldGMuICBBdm9pZHMKICBwcm9ibGVtIHdpdGggYXV0b2NvbW1hbmRzLgotIE1vdmVkIHNvbWUgY29kZSBmcm9tIGV4X2RvY21kLmMgdG8gZXhfY21kczIuYy4gIFRoZSBmaWxlIHdhcyBnZXR0aW5nIHRvbwogIGJpZy4gIEFsc28gbW92ZWQgc29tZSBjb2RlIGZyb20gc2NyZWVuLmMgdG8gbW92ZS5jLgotIERvbid0IGluY2x1ZGUgdGhlIENSQyB0YWJsZSBmb3IgZW5jcnlwdGlvbiwgZ2VuZXJhdGUgaXQuICBTYXZlcyBxdWl0ZSBhIGJpdAogIG9mIHNwYWNlIGluIHRoZSBzb3VyY2UgY29kZS4gKE1hdHRoaWFzIEtyYW1tKQotIFJlbmFtZWQgbXVsdGlieXRlLmMgdG8gbWJ5dGUuYyB0byBhdm9pZCBhIHByb2JsZW0gd2l0aCA4LjMgZmlsZXN5c3RlbXMuCi0gUmVtb3ZlZCB0aGUgR1RLIGltcGxlbWVudGF0aW9uIG9mICI6ZmluZGhlbHAiLCBpdCBub3cgdXNlcyB0aGUKICBUb29sQmFyLkZpbmRIZWxwICBtZW51IGVudHJ5LgotIFJlbmFtZWQgbWNoX3dpbmRleGl0KCkgdG8gbWNoX2V4aXQoKSwgbWNoX2luaXQoKSB0byBtY2hfZWFybHlfaW5pdCgpIGFuZAogIG1jaF9zaGVsbGluaXQoKSB0byBtY2hfaW5pdCgpLgoKSGlnaGxpZ2h0aW5nOgotIEluIGEgIjpoaWdobGlnaHQiIGxpc3RpbmcsIHNob3cgInh4eCIgd2l0aCB0aGUgaGlnaGxpZ2h0IGNvbG9yLgotIEFkZGVkIHN1cHBvcnQgZm9yIHh0ZXJtIHdpdGggODggb3IgMjU2IGNvbG9ycy4gIFRoZSByaWdodCBjb2xvciBudW1iZXJzIHdpbGwKICBiZSB1c2VkIGZvciB0aGUgbmFtZSB1c2VkIGluIGEgIjpoaWdobGlnaHQiIGNvbW1hbmQuIChTdGV2ZSBXYWxsKQotIEFkZGVkICJkZWZhdWx0IiBhcmd1bWVudCBmb3IgIjpoaWdobGlnaHQiLiAgV2hlbiBpbmNsdWRlZCwgdGhlIGNvbW1hbmQgaXMKICBpZ25vcmVkIGlmIGhpZ2hsaWdodGluZyBmb3IgdGhlIGdyb3VwIHdhcyBhbHJlYWR5IGRlZmluZWQuCiAgQWxsIHN5bnRheCBmaWxlcyBub3cgdXNlICI6aGkgZGVmYXVsdCAuLi4iIHRvIGFsbG93IHRoZSB1c2VyIHRvIHNwZWNpZnkKICBjb2xvcnMgaW4gaGlzIHZpbXJjIGZpbGUuICBBbHNvLCB0aGUgImlmIGRpZF94eHhfc3ludGF4X2luaXRzIiBpcyBub3QgbmVlZGVkCiAgYW55bW9yZS4gIFRoaXMgZ3JlYXRseSBzaW1wbGlmaWVzIHVzaW5nIG5vbi1kZWZhdWx0IGNvbG9ycyBmb3IgYSBzcGVjaWZpYwogIGxhbmd1YWdlLgotIEFkanVzdGVkIGNvbG9ydGVzdC52aW06IEluY2x1ZGVkIGNvbG9ycyBvbiBub3JtYWwgYmFja2dyb3VuZCBhbmQgcmVkdWNlZCB0aGUKICBzaXplIGJ5IHVzaW5nIGEgd2hpbGUgbG9vcC4gKFJhZmFlbCBHYXJjaWEtU3VhcmV6KQotIEFkZGVkIHRoZSAiRGFya1llbGxvdyIgY29sb3IgbmFtZS4gIEp1c3QgdG8gbWFrZSB0aGUgbGlzdCBvZiBzdGFuZGFyZCBjb2xvcnMKICBjb25zaXN0ZW50LCBpdCdzIG5vdCByZWFsbHkgYSBuaWNlIGNvbG9yIHRvIHVzZS4KCldoZW4gYW4geHRlcm0gaXMgaW4gOC1iaXQgbW9kZSB0aGlzIGlzIGRldGVjdGVkIGJ5IHRoZSBjb2RlIHJldHVybmVkIGZvcgp8dF9SVnwuICBBbGwga2V5IGNvZGVzIGFyZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byB0aGVpciA4LWJpdCB2ZXJzaW9ucy4KClRoZSBPUFRfVENBUF9RVUVSWSBpbiB4dGVybSBwYXRjaCBsZXZlbCAxNDEgYW5kIGxhdGVyIGlzIHVzZWQgdG8gb2J0YWluIHRoZQphY3R1YWwga2V5IGNvZGVzIHVzZWQgYW5kIHRoZSBudW1iZXIgb2YgY29sb3JzIGZvciB0X0NvLiAgT25seSB3aGVuIHx0X1JWfCBpcwphbHNvIHVzZWQuCgoiOmJyb3dzZSBzZXQiIG5vdyBhbHNvIHdvcmtzIGluIHRoZSBjb25zb2xlIG1vZGUuICAiOmJyb3dzZSBlZGl0IiB3aWxsIGdpdmUgYW4KZXJyb3IgbWVzc2FnZS4KCiI6YmRlbGV0ZSIgYW5kICI6YnVubG9hZCIgb25seSByZXBvcnQgdGhlIG51bWJlciBvZiBkZWxldGVkL3VubG9hZGVkIGJ1ZmZlcnMKd2hlbiBtb3JlIHRoYW4gJ3JlcG9ydCcuICBUaGUgbWVzc2FnZSB3YXMgYW5ub3lpbmcgd2hlbiBkZWxldGluZyBhIGJ1ZmZlciBpbiBhCnNjcmlwdC4KCkp1bXAgbGlzdDoKLSBUaGUgbnVtYmVyIG9mIG1hcmtzIGtlcHQgaW4gdGhlIGp1bXBsaXN0IGhhcyBiZWVuIGluY3JlYXNlZCBmcm9tIDUwIHRvIDEwMC4KLSBUaGUganVtcGxpc3QgaXMgbm93IHN0b3JlZCBpbiB0aGUgdmltaW5mbyBmaWxlLiAgQ1RSTC1PIGNhbiBiZSB1c2VkIHRvIGp1bXAKICB0byBwb3NpdGlvbnMgZnJvbSBhIHByZXZpb3VzIGVkaXQgc2Vzc2lvbi4KLSBXaGVuIGRvaW5nICI6c3BsaXQiIGNvcHkgdGhlIGp1bXBsaXN0IHRvIHRoZSBuZXcgd2luZG93LgoKQWxzbyBzZXQgdGhlICdbIGFuZCAnXSBtYXJrcyBmb3IgdGhlICJ+IiBhbmQgInIiIGNvbW1hbmRzLiAgVGhlc2UgbWFya3MgYXJlCm5vdyBhbHdheXMgc2V0IHdoZW4gbWFraW5nIGEgY2hhbmdlIHdpdGggYSBOb3JtYWwgbW9kZSBjb21tYW5kLgoKUHl0aG9uIGludGVyZmFjZTogQWxsb3cgc2V0dGluZyB0aGUgd2lkdGggb2YgYSB2ZXJ0aWNhbGx5IHNwbGl0IHdpbmRvdy4gKEpvaG4KQ29vaykKCkFkZGVkICI9d29yZCIgYW5kICI9fndvcmQiIHRvICdjaW5rZXlzJyAoYWxzbyB1c2VkIGluICdpbmRlbnRrZXlzJykuCgpBZGRlZCAiajEiIGFyZ3VtZW50IGluICdjaW5vcHRpb25zJzogaW5kZW50IHt9IGluc2lkZSAoKSBmb3IgSmF2YS4gKEpvaGFubmVzClplbGxuZXIpCkFkZGVkIHRoZSAibCIgZmxhZyBpbiAnY2lub3B0aW9ucycuIChBbmR1aW4gV2l0aGVycykKQWRkZWQgJ0MnLCAnVScsICd3JyBhbmQgJ20nIGZsYWdzIHRvICdjaW5vcHRpb25zJy4gKFNlcnZhdGl1cyBCcmFuZHQpCgpXaGVuIGRvaW5nICI6d2FsbCIgb3IgIjp3cWFsbCIgYW5kIGEgbW9kaWZpZWQgYnVmZmVyIGRvZXNuJ3QgaGF2ZSBhIG5hbWUsCm1lbnRpb24gaXRzIGJ1ZmZlciBudW1iZXIgaW4gdGhlIGVycm9yIG1lc3NhZ2UuCgoiOmZ1bmN0aW9uIE5hbWUiIGxpc3RzIHRoZSBmdW5jdGlvbiB3aXRoIGxpbmUgbnVtYmVycy4gIE1ha2VzIGl0IGVhc2llciB0bwpmaW5kIG91dCB3aGVyZSBhbiBlcnJvciBoYXBwZW5lZC4KCkluIG5vbi1ibG9ja3dpc2UgVmlzdWFsIG1vZGUsICJyIiByZXBsYWNlcyBhbGwgc2VsZWN0ZWQgY2hhcmFjdGVycyB3aXRoIHRoZQp0eXBlZCBvbmUsIGxpa2UgaW4gYmxvY2t3aXNlIFZpc3VhbCBtb2RlLgoKV2hlbiBlZGl0aW5nIHRoZSBsYXN0IGZpbGUgaW4gdGhlIGFyZ3VtZW50IGxpc3QgaW4gYW55IHdheSwgYWxsb3cgZXhpdGluZy4KUHJldmlvdXNseSB0aGlzIHdhcyBvbmx5IHBvc3NpYmxlIHdoZW4gZ2V0dGluZyB0byB0aGF0IGZpbGUgd2l0aCAiOm5leHQiIG9yCiI6bGFzdCIuCgpBZGRlZCB0aGUgJzEnIGZsYWcgdG8gJ2Zvcm1hdG9wdGlvbnMnLiAoVml0IFN0cmFkYWwpCkFkZGVkICduJyBmbGFnIGluICdmb3JtYXRvcHRpb25zJzogZm9ybWF0IGEgbnVtYmVyZWQgbGlzdC4KClN3YXAgZmlsZToKLSBXaGVuIGEgc3dhcCBmaWxlIGFscmVhZHkgZXhpc3RzLCBhbmQgdGhlIHVzZXIgc2VsZWN0cyAiRGVsZXRlIiBhdCB0aGUKICBBVFRFTlRJT04gcHJvbXB0LCB1c2UgdGhlIHNhbWUgIi5zd3AiIHN3YXBmaWxlLCB0byBhdm9pZCBjcmVhdGluZyBhICIuc3dvIgogIGZpbGUgd2hpY2ggd29uJ3QgYWx3YXlzIGJlIGZvdW5kLgotIFdoZW4gZ2l2aW5nIHRoZSBBVFRFTlRJT04gbWVzc2FnZSBhbmQgdGhlIGRhdGUgb2YgdGhlIGZpbGUgaXMgbmV3ZXIgdGhhbiB0aGUKICBkYXRlIG9mIHN3YXAgZmlsZSwgZ2l2ZSBhIHdhcm5pbmcgYWJvdXQgdGhpcy4KLSBNYWRlIHRoZSBpbmZvIGZvciBhbiBleGlzdGluZyBzd2FwIGZpbGUgYSBiaXQgc2hvcnRlciwgc28gdGhhdCBpdCBzdGlsbCBmaXRzCiAgb24gYSAyNCBsaW5lIHNjcmVlbi4KLSBJdCB3YXMgcG9zc2libGUgdG8gbWFrZSBhIHN5bWxpbmsgd2l0aCB0aGUgbmFtZSBvZiBhIHN3YXAgZmlsZSwgbGlua2luZyB0byBhCiAgZmlsZSB0aGF0IGRvZXNuJ3QgZXhpc3QuICBWaW0gd291bGQgdGhlbiBzaWxlbnRseSB1c2UgYW5vdGhlciBmaWxlIChpZiBvcGVuCiAgd2l0aCBPX0VYQ0wgcmVmdXNlcyBhIHN5bWxpbmspLiAgTm93IGNoZWNrIGZvciBhIHN5bWxpbmsgdG8gZXhpc3QuICBBbHNvIGRvCiAgYW5vdGhlciBjaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3dhcCBmaWxlIGp1c3QgYmVmb3JlIGNyZWF0aW5nIGl0IHRvIGNhdGNoIGEKICBzeW1saW5rIGF0dGFjay4KClRoZSBnIENUUkwtRyBjb21tYW5kIGFsc28gd29ya3MgaW4gVmlzdWFsIG1vZGUgYW5kIGNvdW50cyB0aGUgbnVtYmVyIG9mIHdvcmRzLgooQ2hhc2UgVGluZ2xleSkKCkdpdmUgYW4gZXJyb3IgbWVzc2FnZSB3aGVuIHVzaW5nICdzaGVsbCcgYW5kIGl0J3MgZW1wdHkuCgpBZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSAiJXMiIGluICdzaGVsbHBpcGUnLgoKQWRkZWQgInVoZXgiIHZhbHVlIGZvciAnZGlzcGxheSc6IHNob3cgbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzIGFzIDx4eD4uClNob3cgdW5wcmludGFibGUgY2hhcmFjdGVycyB3aXRoIE5vblRleHQgaGlnaGxpZ2h0aW5nLCBhbHNvIGluIHRoZSBjb21tYW5kCmxpbmUuCgpXaGVuIGFza2VkIHRvIGRpc3BsYXkgdGhlIHZhbHVlIG9mIGEgaGlkZGVuIG9wdGlvbiwgdGVsbCBpdCdzIG5vdCBzdXBwb3J0ZWQuCgpXaW4zMjoKLSBXaGVuIGRyb3BwaW5nIGEgc2hvcnRjdXQgb24gZ3ZpbSAoLmxuayBmaWxlKSBlZGl0IHRoZSB0YXJnZXQsIG5vdCB0aGUKICBzaG9ydGN1dCBpdHNlbGYuICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQotIEFkZGVkIEMgdmVyc2lvbnMgb2YgdGhlIE9wZW5XaXRoVmltIGFuZCBTZW5kVG9WaW0gcHJvZ3JhbXMuIChXYWx0ZXIgQnJpc2NvZSkKLSBXaGVuICdzaGVsbCcgaXMgImNtZCIgb3IgImNtZC5leGUiLCBzZXQgJ3NoZWxscmVkaXInIHRvIHJlZGlyZWN0IHN0ZGVyciB0b28uCiAgQWxzbyBjaGVjayBmb3IgdGhlIFVuaXggc2hlbGwgbmFtZXMuCi0gV2hlbiAkSE9NRURSSVZFIGFuZCAkSE9NRVBBVEggYXJlIGRlZmluZWQsIHVzZSB0aGVtIHRvIGRlZmluZSAkSE9NRS4gIChDcmFpZwogIEJhcmtob3VzZSkKCldpbjMyIGNvbnNvbGUgdmVyc2lvbjoKLSBJbmNsdWRlcyB0aGUgdXNlciBhbmQgc3lzdGVtIG5hbWUgaW4gdGhlICI6dmVyc2lvbiIgbWVzc2FnZSwgd2hlbiBhdmFpbGFibGUuCiAgSXQgZ2VuZXJhdGVzIGEgcGF0aGRlZi5jIGZpbGUgZm9yIHRoaXMuICAoSm9uIE1pbmVyKQotIFNldCB0aGUgd2luZG93IGljb24gdG8gVmltJ3MgaWNvbiAob25seSBmb3IgV2luZG93cyAyMDAwKS4gIFdoaWxlIGV4ZWN1dGluZwogIGEgc2hlbGwgY29tbWFuZCwgbW9kaWZ5IHRoZSB3aW5kb3cgdGl0bGUgdG8gc2hvdyB0aGlzLiAgV2hlbiBleGl0aW5nLAogIHJlc3RvcmUgdGhlIGN1cnNvciBwb3NpdGlvbiB0b28uICAoQ3JhaWcgQmFya2hvdXNlKQotIFRoZSBXaW4zMiBjb25zb2xlIHZlcnNpb24gY2FuIGJlIGNvbXBpbGVkIHdpdGggT0xFIHN1cHBvcnQuICBJdCBjYW4gb25seQogIGZ1bmN0aW9uIGFzIGEgY2xpZW50LCBub3QgYXMgYW4gT0xFIHNlcnZlci4KCkVycm9yZm9ybWF0OgotIExldCAiJXAiIGluICdlcnJvcmZvcm1hdCcgKGNvbHVtbiBvZiBlcnJvciBpbmRpY2F0ZWQgYnkgYSByb3cgb2YgY2hhcmFjdGVycykKICBhbHNvIGFjY2VwdCBhIGxpbmUgb2YgZG90cy4KLSBBZGRlZCAiJXYiIGl0ZW0gaW4gJ2Vycm9yZm9ybWF0JzogVmlydHVhbCBjb2x1bW4gbnVtYmVyLiAoRGFuIFNoYXJwKQotIEFkZGVkIGEgZGVmYXVsdCAnZXJyb3Jmb3JtYXQnIHZhbHVlIGZvciBWTVMuIChKaW0gQnVzaCkKClRoZSAicCIgY29tbWFuZCBjYW4gbm93IGJlIHVzZWQgaW4gVmlzdWFsIG1vZGUuICBJdCBvdmVyd3JpdGVzIHRoZSBzZWxlY3RlZAp0ZXh0IHdpdGggdGhlIGNvbnRlbnRzIG9mIGEgcmVnaXN0ZXIuCgpIaWdobGlnaHQgdGhlIDw+IGl0ZW1zIGluIHRoZSBpbnRybyBtZXNzYWdlIHRvIG1ha2UgY2xlYXIgdGhleSBhcmUgc3BlY2lhbC4KCldoZW4gdXNpbmcgdGhlICJjIiBmbGFnIGZvciAiOnN1YnN0aXR1dGUiLCBhbGxvdyB0eXBpbmcgImwiIGZvciByZXBsYWNpbmcgdGhpcwppdGVtIGFuZCB0aGVuIHN0b3A6ICJsYXN0Ii4KCldoZW4gcHJpbnRpbmcgYSB2ZXJib3NlIG1lc3NhZ2UgYWJvdXQgc291cmNpbmcgYW5vdGhlciBmaWxlLCBwcmludCB0aGUgbGluZQpudW1iZXIuCgpXaGVuIHJlc2l6aW5nIHRoZSBWaW0gd2luZG93LCBkb24ndCB1c2UgJ2VxdWFsYWx3YXlzJy4gIEF2b2lkcyB0aGF0IG1ha2luZyB0aGUKVmltIHdpbmRvdyBzbWFsbGVyIG1ha2VzIHNwbGl0IHdpbmRvd3MgYmlnZ2VyLiAgQW5kIGl0J3Mgd2hhdCB0aGUgZG9jcyBzYXkuCgpXaGVuIHR5cGluZyBDVFJMLUQgaW4gSW5zZXJ0IG1vZGUsIGp1c3QgYWZ0ZXIgYW4gYXV0b2luZGVudCwgdGhlbiBoaXR0aW5nIENSCmtlcHQgdGhlIHJlbWFpbmluZyB3aGl0ZSBzcGFjZS4gIE5vdyBtYWRlIGl0IHdvcmsgbGlrZSBCUzogZGVsZXRlIHRoZQphdXRvaW5kZW50IHRvIGF2b2lkIGEgYmxhbmsgbm9uLWVtcHR5IGxpbmUgcmVzdWx0cy4KCkFkZGVkIGEgR2V0SHduZCgpIGNhbGwgdG8gdGhlIE9MRSBpbnRlcmZhY2UuICAoVmluY2UgTmVncmkpCgpNYWRlICI6bm9ybWFsIiB3b3JrIGluIGFuIGV2ZW50IGhhbmRsZXIuICBVc2VmdWwgd2hlbiBkcm9wcGluZyBhIGZpbGUgb24gVmltCmFuZCBmb3IgQ3Vyc29ySG9sZCBhdXRvY29tbWFuZHMuCgpGb3IgdGhlIE1TLVdpbmRvd3MgdmVyc2lvbiwgZG9uJ3QgY2hhbmdlIHRvIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIGZpbGUgd2hlbiBhCnNsYXNoIGlzIHVzZWQgaW5zdGVhZCBvZiBhIGJhY2tzbGFzaC4gIEV4cGxvcmVyIHNob3VsZCBhbHdheXMgdXNlIGEgYmFja3NsYXNoLAp0aGUgdXNlciBjYW4gdXNlIGEgc2xhc2ggd2hlbiB0eXBpbmcgdGhlIGNvbW1hbmQuCgpUaW1lc3RhbXBzOgotIFdoZW4gYSBidWZmZXIgd2FzIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0gYW5kIHJlZ2FpbmluZyBmb2N1cywgZ2l2ZSBhIGRpYWxvZwogIHRvIGFsbG93IHRoZSB1c2VyIHRvIHJlbG9hZCB0aGUgZmlsZS4gIE5vdyBhbHNvIGZvciBvdGhlciBHVUlzIHRoYW4KICBNUy1XaW5kb3dzLiAgQW5kIGFsc28gdXNlZCBpbiB0aGUgY29uc29sZSwgd2hlbiBjb21waWxlZCB3aXRoIGRpYWxvZwogIHN1cHBvcnQuCi0gSW5zcGVjdCB0aGUgZmlsZSBjb250ZW50cyB0byBmaW5kIG91dCBpZiBpdCByZWFsbHkgY2hhbmdlZCwgaWdub3JlCiAgc2l0dWF0aW9ucyB3aGVyZSBvbmx5IHRoZSB0aW1lIHN0YW1wIGNoYW5nZWQgKGUuZy4sIGNoZWNraW5nIHRoZSBmaWxlIG91dAogIGZyb20gQ1ZTKS4KLSBXaGVuIGNoZWNraW5nIHRoZSB0aW1lc3RhbXAsIGZpcnN0IGNoZWNrIGlmIHRoZSBmaWxlIHNpemUgY2hhbmdlZCwgdG8gYXZvaWQKICBhIGZpbGUgY29tcGFyZSB0aGVuLiAgTWFrZXMgaXQgcXVpY2tlciBmb3IgbGFyZ2UgKGxvZykgZmlsZXMgdGhhdCBhcmUKICBhcHBlbmRlZCB0by4KLSBEb24ndCBnaXZlIGEgd2FybmluZyBmb3IgYSBjaGFuZ2VkIG9yIGRlbGV0ZWQgZmlsZSB3aGVuICdidWZ0eXBlJyBpcyBzZXQuCi0gTm8gbG9uZ2VyIHdhcm4gZm9yIGEgY2hhbmdlZCBkaXJlY3RvcnkuICBUaGlzIGF2b2lkcyB0aGF0IHRoZSBmaWxlIGV4cGxvcmVyCiAgcHJvZHVjZXMgd2FybmluZ3MuCi0gQ2hlY2tpbmcgdGltZXN0YW1wcyBpcyBvbmx5IGRvbmUgZm9yIGJ1ZmZlcnMgdGhhdCBhcmUgbm90IGhpZGRlbi4gIFRoZXNlCiAgd2lsbCBiZSBjaGVja2VkIHdoZW4gdGhleSBiZWNvbWUgdW5oaWRkZW4uCi0gV2hlbiBjaGVja2luZyBmb3IgYSBmaWxlIGJlaW5nIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0sIGFsc28gY2hlY2sgaWYgdGhlCiAgZmlsZSBwZXJtaXNzaW9ucyBjaGFuZ2VkLiAgV2hlbiB0aGUgZmlsZSBjb250ZW50cyBkaWRuJ3QgY2hhbmdlIGJ1dCB0aGUKICBwZXJtaXNzaW9ucyBkaWQsIGdpdmUgYSB3YXJuaW5nLgotIEF2b2lkIGNoZWNraW5nIHRvbyBvZnRlbiwgb3RoZXJ3aXNlIHRoZSBkaWFsb2cga2VlcHMgcG9wcGluZyB1cCBmb3IgYSBsb2cKICBmaWxlIHRoYXQgc3RlYWRpbHkgZ3Jvd3MuCgpNYXBwaW5nIDxNLUE+IHdoZW4gJ2VuY29kaW5nJyBpcyAibGF0aW4xIiBhbmQgdGhlbiBzZXR0aW5nICdlbmNvZGluZycgdG8KInV0Zi04IiBjYXVzZXMgdGhlIGZpcnN0IGJ5dGUgb2YgYSBtdWx0aS1ieXRlIHRvIGJlIG1hcHBlZC4gIENhbiBjYXVzZSB2ZXJ5CmhhcmQgdG8gZmluZCBwcm9ibGVtcy4gIERpc2FsbG93IG1hcHBpbmcgcGFydCBvZiBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLgoKRm9yICI6cHl0aG9uIiBhbmQgIjp0Y2wiIGFjY2VwdCBhbiBpbi1saW5lIHNjcmlwdC4gKEpvaGFubmVzIFplbGxuZXIpCkFsc28gZm9yICI6cnVieSIgYW5kICI6cGVybCIuIChCZW5vaXQgQ2VycmluYSkKCk1hZGUgIjpzeW4gaW5jbHVkZSIgdXNlICdydW50aW1lcGF0aCcgd2hlbiB0aGUgZmlsZSBuYW1lIGlzIG5vdCBhIGZ1bGwgcGF0aC4KCldoZW4gJ3N3aXRjaGJ1ZicgY29udGFpbnMgInNwbGl0IiBhbmQgdGhlIGN1cnJlbnQgd2luZG93IGlzIGVtcHR5LCBkb24ndCBzcGxpdAp0aGUgd2luZG93LgoKVW5peDogQ2F0Y2ggU0lHUFdSIHRvIHByZXNlcnZlIGZpbGVzIHdoZW4gdGhlIHBvd2VyIGlzIGFib3V0IHRvIGdvIGRvd24uCgpTbmlmZiBpbnRlcmZhY2U6IChBbnRvbiBMZWhlcmJhdWVyKQotIGZpeGVkIHdpbmRvd3MgY29kZSwgZXNwLiB0aGUgZXZlbnQgaGFuZGxpbmcgc3R1ZmYKLSBhZGFwdGF0aW9ucyBmb3Igc25pZmYgNC54ICgkU05JRkZfRElSNCkKLSBzdXBwb3J0IGZvciBhZGRpbmcgc25pZmYgcmVxdWVzdHMgYXQgcnVudGltZQoKU3VwcG9ydCB0aGUgbm90YXRpb24gPEEteD4gYXMgYW4gYWxpYXMgZm9yIDxNLXg+LiAgVGhpcyBsb2dpY2FsLCBzaW5jZSB0aGUgQWx0CmtleSBpcyB1c2VkLgoKIjpmaW5kIiBhY2NlcHRzIGEgY291bnQsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGNvdW50J3RoIG1hdGNoIGluICdwYXRoJyBpcwp1c2VkLgoKIjpscyIgYW5kICI6YnVmZmVycyIgb3V0cHV0IHNob3dzIG1vZGlmaWVkL3JlYWRvbmx5L21vZGlmaWFibGUgZmxhZy4gIFdoZW4gYQpidWZmZXIgaXMgYWN0aXZlIHNob3cgImEiIGluc3RlYWQgb2Ygbm90aGluZy4gIFdoZW4gYSBidWZmZXIgaXNuJ3QgbG9hZGVkCnNob3cgbm90aGluZyBpbnN0ZWFkIG9mICItIi4KClVuaXggaW5zdGFsbDoKLSBXaGVuIGluc3RhbGxpbmcgdGhlIHRvb2xzLCBzZXQgYWJzb2x1dGUgcGF0aHMgaW4gdG9vbHMgc2NyaXB0cyBlZm1fcGVybC5wbAogIGFuZCBtdmUuYXdrLiAgQXZvaWRzIHRoYXQgdGhlIHVzZXIgaGFzIHRvIGVkaXQgdGhlc2UgZmlsZXMuCi0gSW5zdGFsbCBJY29ucyBmb3IgS0RFIHdoZW4gdGhlIGRpcmVjdG9yaWVzIGV4aXN0IGFuZCB0aGUgaWNvbnMgZG8gbm90IGV4aXN0CiAgeWV0LgoKQWRkZWQgaGFzKCJ3aW45NSIpLCB0byBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gTVMtV2luZG93cyA5NS85OC9NRSBhbmQKTlQvMjAwMC9YUCBpbiBhIFZpbSBzY3JpcHQuCgpXaGVuIGEgIjpjZCIgY29tbWFuZCB3YXMgdHlwZWQsIGVjaG8gdGhlIG5ldyBjdXJyZW50IGRpcmVjdG9yeS4gKERhbiBTaGFycCkKCldoZW4gdXNpbmcgIjp3aW5wb3MiIGJlZm9yZSB0aGUgR1VJIHdpbmRvdyBoYXMgYmVlbiBvcGVuZWQsIHJlbWVtYmVyIHRoZQp2YWx1ZXMgdW50aWwgaXQgaXMgb3BlbmVkLgoKSW4gdGhlICI6dmVyc2lvbiIgb3V0cHV0LCBhZGQgIi9keW4iIGZvciBmZWF0dXJlcyB0aGF0IGFyZSBkeW5hbWljYWxseSBsb2FkZWQuClRoaXMgaW5kaWNhdGVzIHRoZSBmZWF0dXJlIG1heSBub3QgYWx3YXlzIHdvcmsuCgpPbiBXaW5kb3dzIE5UIGl0IGlzIHBvc3NpYmxlIHRoYXQgYSBkaXJlY3RvcnkgaXMgcmVhZC1vbmx5LCBidXQgYSBmaWxlIGNhbiBiZQpkZWxldGVkLiAgV2hlbiBtYWtpbmcgYSBiYWNrdXAgYnkgcmVuYW1pbmcgdGhlIGZpbGUgYW5kICdiYWNrdXBkaXInIGRvZXNuJ3QKdXNlIHRoZSBjdXJyZW50IGRpcmVjdG9yeSwgdGhpcyBjYXVzZXMgdGhlIG9yaWdpbmFsIGZpbGUgdG8gYmUgZGVsZXRlZCwKd2l0aG91dCB0aGUgcG9zc2liaWxpdHkgdG8gY3JlYXRlIGEgbmV3IGZpbGUuICBHaXZlIGFuIGV4dHJhIGVycm9yIG1lc3NhZ2UKdGhlbiB0byB3YXJuIHRvIHVzZXIgYWJvdXQgdGhpcy4KCk1hZGUgQ1RSTC1SIENUUkwtTyBhdCB0aGUgY29tbWFuZCBsaW5lIHdvcmsgbGlrZSBDVFJMLVIgQ1RSTC1SLCBzbyB0aGF0IGl0J3MKY29uc2lzdGVudCB3aXRoIEluc2VydCBtb2RlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNPTVBJTEUgVElNRSBDSEFOR0VTCQkJCQkqY29tcGlsZS1jaGFuZ2VzLTYqCgpBbGwgZ2VuZXJhdGVkIGZpbGVzIGhhdmUgYmVlbiBtb3ZlZCBvdXQgb2YgdGhlICJzcmMiIGRpcmVjdG9yeS4gIFRoaXMgbWFrZXMgaXQKZWFzeSB0byBzZWUgd2hpY2ggZmlsZXMgYXJlIG5vdCBlZGl0ZWQgYnkgaGFuZC4gIFRoZSBmaWxlcyBnZW5lcmF0ZWQgYnkKY29uZmlndXJlIGFyZSBub3cgaW4gdGhlICJzcmMvYXV0byIgZGlyZWN0b3J5LiAgRm9yIFVuaXgsIGNvbXBpbGVkIG9iamVjdApmaWxlcyBnbyBpbiB0aGUgb2JqZWN0cyBkaXJlY3RvcnkuCgpUaGUgc291cmNlIGFyY2hpdmUgd2FzIG92ZXIgdGhlIDEuNE0gZmxvcHB5IGxpbWl0LiAgVGhlIGFyY2hpdmVzIGFyZSBub3cgc3BsaXQKdXAgaW50byB0d28gcnVudGltZSBhbmQgdHdvIHNvdXJjZSBhcmNoaXZlcy4gIEFsc28gcHJvdmlkZSBhIGJ6aXAyIGNvbXByZXNzZWQKYXJjaGl2ZSB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgc291cmNlcyBhbmQgcnVudGltZSBmaWxlcy4KCkFkZGVkICJyZWNvbmZpZyIgYXMgYSB0YXJnZXQgZm9yIG1ha2UuICBVc2VmdWwgd2hlbiBjaGFuZ2luZyBzb21lIG9mIHRoZQphcmd1bWVudHMgdGhhdCByZXF1aXJlIGZsdXNoaW5nIHRoZSBjYWNoZSwgc3VjaCBhcyBzd2l0Y2hpbmcgZnJvbSBHVEsgdG8KTW90aWYuICBBZGp1c3RlZCB0aGUgbWVhbmluZyBvZiBHVUlfSU5DX0xPQyBhbmQgR1VJX0xJQl9MT0MgdG8gYmUgY29uc2lzdGVudApvdmVyIGRpZmZlcmVudCBHVUlzLgoKQWRkZWQgc3JjL1JFQURNRS50eHQgdG8gZ2l2ZSBhbiBvdmVydmlldyBvZiB0aGUgbWFpbiBwYXJ0cyBvZiB0aGUgc291cmNlIGNvZGUuCgpUaGUgVW5peCBNYWtlZmlsZSBub3cgZnVsbHkgc3VwcG9ydHMgdXNpbmcgJChERVNURElSKSB0byBpbnN0YWxsIHRvIGEgc3BlY2lmaWMKbG9jYXRpb24uICBSZXBsYWNlcyB0aGUgbWFudWFsIHNldHRpbmcgb2YgKkVORExPQyB2YXJpYWJsZXMuCgpBZGRlZCB0aGUgcG9zc2liaWxpdHkgZm9yIGEgbWFpbnRhaW5lciBvZiBhIGJpbmFyeSB2ZXJzaW9uIHRvIGluY2x1ZGUgaGlzCmUtbWFpbCBhZGRyZXNzIHdpdGggdGhlIC0td2l0aC1jb21waWxlZGJ5IGNvbmZpZ3VyZSBhcmd1bWVudC4KCkluY2x1ZGVkIGZlYXR1cmVzIGFyZSBub3cgZ3JvdXBlZCBpbiAidGlueSIsICJzbWFsbCIsICJub3JtYWwiLCAiYmlnIiBhbmQKImh1Z2UiLiAgVGhpcyByZXBsYWNlcyAibWluLWZlYXR1cmVzIiBhbmQgIm1heC1mZWF0dXJlcyIuICBVc2luZyAidGlueSIKZGlzYWJsZXMgbXVsdGlwbGUgd2luZG93cyBmb3IgYSByZWFsbHkgc21hbGwgVmltLgoKRm9yIHRoZSB0aW55IHZlcnNpb24gb3Igd2hlbiBGRUFUX1dJTkRPV1MgaXMgbm90IGRlZmluZWQ6IEZpcnN0d2luIGFuZCBsYXN0d2luCmFyZSBlcXVhbCB0byBjdXJ3aW4gYW5kIGRvbid0IHVzZSB3X25leHQgYW5kIHdfcHJldi4KCkFkZGVkIHRoZSArbGlzdGNtZHMgZmVhdHVyZS4gIENhbiBiZSB1c2VkIHRvIGNvbXBpbGUgd2l0aG91dCB0aGUgVmltIGNvbW1hbmRzCnRoYXQgbWFuaXB1bGF0ZSB0aGUgYnVmZmVyIGxpc3QgYW5kIGFyZ3VtZW50IGxpc3QgKHRoZSBidWZmZXIgbGlzdCBpdHNlbGYgaXMKc3RpbGwgdGhlcmUsIGNhbid0IGRvIHdpdGhvdXQgaXQpLgoKQWRkZWQgdGhlICt2cmVwbGFjZSBmZWF0dXJlLiAgSXQgaXMgZGlzYWJsZWQgaW4gdGhlICJzbWFsbCIgdmVyc2lvbiB0byBhdm9pZAp0aGF0IHRoZSAxNiBiaXQgRE9TIHZlcnNpb24gcnVucyBvdXQgb2YgbWVtb3J5LgoKUmVtb3ZlZCBHVEsrIHN1cHBvcnQgZm9yIHZlcnNpb25zIG9sZGVyIHRoYW4gMS4xLjE2LgoKVGhlIGNvbmZpZ3VyZSBjaGVja3MgZm9yIHVzaW5nIFBUWXMgaGF2ZSBiZWVuIGltcHJvdmVkLiAgQ29kZSB0YWtlbiBmcm9tIGEKcmVjZW50IHZlcnNpb24gb2Ygc2NyZWVuLgoKQWRkZWQgY29uZmlndXJlIG9wdGlvbnMgdG8gaW5zdGFsbCBWaW0sIEV4IGFuZCBWaWV3IHVuZGVyIGFub3RoZXIgbmFtZSAoZS5nLiwKdmltNiwgZXg2IGFuZCB2aWV3NikuCgpBZGRlZCAiLS13aXRoLWdsb2JhbC1ydW50aW1lIiBjb25maWd1cmUgYXJndW1lbnQuICBBbGxvd3Mgc3BlY2lmeWluZyB0aGUKZ2xvYmFsIGRpcmVjdG9yeSB1c2VkIGluIHRoZSAncnVudGltZXBhdGgnIGRlZmF1bHQuCgpNYWRlIGVuYWJsaW5nIHRoZSBTTmlGRisgaW50ZXJmYWNlIHBvc3NpYmxlIHdpdGggYSBjb25maWd1cmUgYXJndW1lbnQuCgpDb25maWd1cmUgbm93IGFsd2F5cyBjaGVja3MgL3Vzci9sb2NhbC9saWIgZm9yIGxpYnJhcmllcyBhbmQKL3Vzci9sb2NhbC9pbmNsdWRlIGZvciBpbmNsdWRlIGZpbGVzLiAgSGVscHMgZmluZGluZyB0aGUgc3R1ZmYgZm9yIGljb252KCkgYW5kCmdldHRleHQoKS4KCk1vdmVkIHRoZSBjb21tYW5kIGxpbmUgaGlzdG9yeSBzdHVmZiBpbnRvIHRoZSArY21kbGluZV9oaXN0IGZlYXR1cmUsIHRvCmV4Y2x1ZGUgdGhlIGNvbW1hbmQgbGluZSBoaXN0b3J5IGZyb20gdGhlIHRpbnkgdmVyc2lvbi4KCk1TLVdpbmRvd3M6IE1vdmVkIGNvbW1vbiBmdW5jdGlvbnMgZnJvbSBXaW4xNiBhbmQgV2luMzIgdG8gb3NfbXN3aW4uYy4gIEF2b2lkcwpoYXZpbmcgdG8gY2hhbmdlIHR3byBmaWxlcyBmb3Igb25lIHByb2JsZW0uICAoVmluY2UgTmVncmkpCgpNb3ZlZCBjb21tb24gY29kZSBmcm9tIGd1aV93MTYuYyBhbmQgZ3VpX3czMi5jIHRvIGd1aV93NDguYyAoVmluY2UgTmVncmkpCgpUaGUganVtcGxpc3QgaXMgbm93IGEgc2VwYXJhdGUgZmVhdHVyZS4gIEl0IGlzIGRpc2FibGVkIGZvciB0aGUgInNtYWxsIgp2ZXJzaW9uICgxNiBiaXQgTVMtRE9TKS4KClJlbmFtZWQgYWxsIHR5cGVzIGVuZGluZyBpbiBfdCB0byBlbmQgaW4gX1QuICBBdm9pZHMgcG90ZW50aWFsIHByb2JsZW1zIHdpdGgKc3lzdGVtIHR5cGVzLgoKQWRkZWQgYSBjb25maWd1cmUgY2hlY2sgZm9yIFgxMSBoZWFkZXIgZmlsZXMgdGhhdCBpbXBsaWNpdGx5IGRlZmluZSB0aGUgcmV0dXJuCnR5cGUgdG8gaW50LiAoU3RldmUgV2FsbCkKCiJtYWtlIGRvc2xhbmciIGluIHRoZSB0b3AgZGlyZWN0b3J5IG1ha2VzIGFuIGFyY2hpdmUgd2l0aCB0aGUgbWVudSBhbmQgLm1vCmZpbGVzIGZvciBXaW5kb3dzLiAgVGhpcyB1c2VzIHRoZSBmaWxlcyBnZW5lcmF0ZWQgb24gVW5peCwgdGhlc2Ugc2hvdWxkIHdvcmsKb24gTVMtV2luZG93cyBhcyB3ZWxsLgoKTWVyZ2VkIGEgbGFyZ2UgcGFydCBvZiBvc192bXMuYyB3aXRoIG9zX3VuaXguYy4gIFRoZSBjb2RlIHdhcyBkdXBsaWNhdGVkIGluCnRoZSBwYXN0IHdoaWNoIG1hZGUgbWFpbnRlbmFuY2UgbW9yZSB3b3JrLiAgKFpvbHRhbiBBcnBhZGZmeSkKClVwZGF0ZWQgdGhlIEJvcmxhbmQgQyB2ZXJzaW9uIDUgTWFrZWZpbGU6IChEYW4gU2hhcnApCi0gRml4ZWQgdGhlIFBlcmwgYnVpbGQKLSBBZGRlZCBweXRob24gYW5kIHRjbCBidWlsZHMKLSBBZGRlZCBkeW5hbWljIHBlcmwgYW5kIGR5bmFtaWMgcHl0aG9uIGJ1aWxkcwotIEFkZGVkIHVuaW5zdGFsLmV4ZSBidWlsZAotIFVzZSAieWVzIiBhbmQgIm5vIiBmb3IgdGhlIG9wdGlvbnMsIGxpa2UgaW4gTWFrZV9tdmMubWFrLgoKV2luMzI6IE1lcmdlZCBNYWtlX2d2Yy5tYWsgYW5kIE1ha2Vfb3ZjLm1hayBpbnRvIG9uZSBmaWxlOiBNYWtlX2l2Yy5tYWsuICBJdCdzCm11Y2ggc21hbGxlciwgbWFueSB1bm5lY2Vzc2FyeSB0ZXh0IGhhcyBiZWVuIHJlbW92ZWQuIChXYWx0ZXIgQnJpc2NvZSkKQWRkZWQgTWFrZV9kdmMubWFrIHRvIGJlIGFibGUgdG8gZGVidWcgZXhlIGdlbmVyYXRlZCB3aXRoIE1ha2VfbXZjLm1hayBpbgpNUy1EZXZzdHVkaW8uIChXYWx0ZXIgQnJpc2NvZSkKCk1TLVdpbmRvd3M6IFRoZSBiaWcgZ3ZpbS5leGUsIHdoaWNoIGluY2x1ZGVzIE9MRSwgbm93IGFsc28gaW5jbHVkZXMKZHluYW1pY2FsbHkgbG9hZGVkIFRjbCwgUGVybCBhbmQgUHl0aG9uLiAgVGhpcyB1c2VzIEFjdGl2ZVBlcmwgNS42LjEsCkFjdGl2ZVB5dGhvbiAyLjEuMSBhbmQgQWN0aXZlVENMIDguMy4zCgpBZGRlZCBBQ19FWEVFWFQgdG8gY29uZmlndXJlLmluLCB0byBjaGVjayBpZiB0aGUgZXhlY3V0YWJsZSBuZWVkcyAiLmV4ZSIgZm9yCkN5Z3dpbiBvciBNaW5nVy4gIFJlbmFtZWQgU1VGRklYIHRvIEVYRUVYVCBpbiBNYWtlZmlsZS4KCldpbjMyOiBMb2FkIGNvbWRsZzMyLmRsbCBkZWxheWVkIGZvciBmYXN0ZXIgc3RhcnR1cC4gIE9ubHkgd2hlbiB1c2luZyBWQyA2LgooVmlwaW4gQXJhdmluZCkKCldpbjMyOiBXaGVuIGNvbXBpbGluZyB3aXRoIEJvcmxhbmQsIGFsbG93IHVzaW5nIElNRS4gKFlhc3VoaXJvIE1hdHN1bW90bykKCldpbjMyOiBBZGRlZCBNYWtlZmlsZSBmb3IgQm9ybGFuZCA1IHRvIGNvbXBpbGUgZ3ZpbWV4dC5kbGwuIChZYXN1aGlybwpNYXRzdW1vdG8pCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQlVHIEZJWEVTCQkJCQkJKmJ1Zy1maXhlcy02KgoKV2hlbiBjaGVja2luZyB0aGUgY29tbWFuZCBuYW1lIGZvciAiZ3ZpbSIsICJleCIsIGV0Yy4gaWdub3JlIGNhc2UuICBSZXF1aXJlZApmb3Igc3lzdGVtcyB3aGVyZSBjYXNlIGlzIGlnbm9yZWQgaW4gY29tbWFuZCBuYW1lcy4KClNlYXJjaCBwYXR0ZXJuICJbYS1jLWVdIiBhbHNvIG1hdGNoZWQgYSAnZCcgYW5kIGRpZG4ndCBtYXRjaCBhICctJy4KCldoZW4gZG91YmxlLWNsaWNraW5nIGluIGFub3RoZXIgd2luZG93LCB3YXNuJ3QgcmVjb2duaXplZCBhcyBkb3VibGUgY2xpY2ssCmJlY2F1c2UgdG9wbGluZSBpcyBkaWZmZXJlbnQuICBBZGRlZCBzZXRfbW91c2VfdG9wbGluZSgpLgoKVGhlIEJST0tFTl9MT0NBTEUgY2hlY2sgd2FzIGJyb2tlbi4gIChNYXJjaW4gRGFsZWNraSkKCldoZW4gInRfQ28iIGlzIHNldCwgdGhlIGRlZmF1bHQgY29sb3JzIHJlbWFpbiB0aGUgc2FtZSwgdGh1cyB3cm9uZy4gIFJlc2V0IHRoZQpjb2xvcnMgYWZ0ZXIgY2hhbmdpbmcgInRfQ28iLiAoU3RldmUgV2FsbCkKCldoZW4gZXhpdGluZyB3aXRoICI6d3FhbGwiIHRoZSBtZXNzYWdlcyBhYm91dCB3cml0aW5nIGZpbGVzIGNvdWxkIG92ZXJ3cml0ZQplYWNoIG90aGVyIGFuZCBiZSBsb3N0IGZvcmV2ZXIuCgpXaGVuIHN0YXJ0aW5nIFZpbSB3aXRoIGFuIGV4dHJlbWVseSBsb25nIGZpbGUgbmFtZSAoYXJvdW5kIDEwMjQgY2hhcmFjdGVycykgaXQKd291bGQgY3Jhc2guICBBZGRlZCBhIGZldyBjaGVja3MgdG8gYXZvaWQgYnVmZmVyIG92ZXJmbG93cy4KCkNUUkwtRSBjb3VsZCBnZXQgc3R1Y2sgaW4gYSBmaWxlIHdpdGggdmVyeSBsb25nIGxpbmVzLgoKIjphdSBzeW50YXg8VGFiPiIgZXhwYW5kZWQgZXZlbnQgbmFtZXMgd2hpbGUgaXQgc2hvdWxkIGV4cGFuZCBncm91cHMgc3RhcnRpbmcKd2l0aCAic3ludGF4Ii4KCldoZW4gZXhwYW5kaW5nIGEgZmlsZSBuYW1lIGNhdXNlZCBhbiBlcnJvciAoZS5nLiwgZm9yIDxhbWF0Y2g+KSBpdCB3YXMKcHJvZHVjZWQgZXZlbiB3aGVuIGluc2lkZSBhbiAiaWYgMCIuCgonY2luZGVudCcgZm9ybWF0dGVkIEMgY29tbWVudHMgZGlmZmVyZW50bHkgZnJvbSB3aGF0IHRoZSAnY29tbWVudHMnIG9wdGlvbgpzcGVjaWZpZWQuIChTdGV2ZSBXYWxsKQoKRGVmYXVsdCBmb3IgJ2dyZXBwcmcnIGRpZG4ndCBpbmNsdWRlIHRoZSBmaWxlIG5hbWUgd2hlbiBvbmx5IGdyZXBwaW5nIGluIG9uZQpmaWxlLiAgTm93IC9kZXYvbnVsbCBoYXMgYmVlbiBhZGRlZCBmb3IgVW5peC4KCk9wZW5pbmcgdGhlIG9wdGlvbiB3aW5kb3cgdHdpY2UgY2F1c2VkIHRyb3VibGUuICBOb3cgdGhlIGN1cnNvciBnb2VzIHRvIHRoZQpleGlzdGluZyBvcHRpb24gd2luZG93LgoKIjpzdmlldyIgYW5kICI6dmlldyIgZGlkbid0IHNldCAncmVhZG9ubHknIGZvciBhbiBleGlzdGluZyBidWZmZXIuICBOb3cgZG8gc2V0CidyZWFkb25seScsIHVubGVzcyB0aGUgYnVmZmVyIGlzIGFsc28gZWRpdGVkIGluIGFub3RoZXIgd2luZG93LgoKR1RLIEdVSTogV2hlbiAnZ3Vpb3B0aW9ucycgZXhjbHVkZWQgJ2cnLCB0aGUgbW9yZSBwcm9tcHQgY2F1c2VkIHRoZSB0b29sYmFyCmFuZCBtZW51YmFyIHRvIGRpc2FwcGVhciBhbmQgcmVzaXplIHRoZSB3aW5kb3cgKHdoaWNoIGNsZWFycyB0aGUgdGV4dCkuCk5vdyBhbHdheXMgZ3JleS1vdXQgdGhlIHRvcGxldmVsIG1lbnVzIHRvIGF2b2lkIHRoYXQgdGhlIG1lbnViYXIgY2hhbmdlcyBzaXplCm9yIGRpc2FwcGVhcnMuCgpXaGVuIHJlLXVzaW5nIHRoZSBjdXJyZW50IGJ1ZmZlciBmb3IgYSBuZXcgYnVmZmVyLCBidWZmZXItbG9jYWwgdmFyaWFibGVzIHdlcmUKbm90IGRlbGV0ZWQuCgpHVUk6IHdoZW4gJ3Njcm9sbG9mZicgaXMgMCBkcmFnZ2luZyB0aGUgbW91c2UgYWJvdmUgdGhlIHdpbmRvdyBkaWRuJ3QgY2F1c2UgYQpkb3duIHNjcm9sbC4gIE5vdyBwYXNzIG9uIGEgbW91c2UgZXZlbnQgd2l0aCBtb3VzZV9yb3cgc2V0IHRvIC0xLgoKV2luMzI6IENvbnNvbGUgdmVyc2lvbiBkaWRuJ3Qgd29yayBvbiB0ZWxuZXQsIGJlY2F1c2Ugb2Ygc3dpdGNoaW5nIGJldHdlZW4gdHdvCmNvbnNvbGUgc2NyZWVucy4gIE5vdyB1c2Ugb25lIGNvbnNvbGUgc2NyZWVuIGFuZCBzYXZlL3Jlc3RvcmUgdGhlIGNvbnRlbnRzCndoZW4gbmVlZGVkLiAgKENyYWlnIEJhcmtob3VzZSkKCldoZW4gcmVhZGluZyBhIGZpbGUgdGhlIG1hZ2ljIG51bWJlciBmb3IgZW5jcnlwdGlvbiB3YXMgaW5jbHVkZWQgaW4gdGhlIGZpbGUKbGVuZ3RoLiAoQW50b25pbyBDb2xvbWJvKQoKVGhlIHF1aWNrZml4IHdpbmRvdyBjb250YWluZWQgbGVhZGluZyB3aGl0ZXNwYWNlIGFuZCBOVUxzIGZvciBtdWx0aS1saW5lCm1lc3NhZ2VzLiAoRGF2aWQgSGFycmlzb24pCgpXaGVuIHVzaW5nIGNzY29wZSwgcmVkdW5kYW50IHRhZ3Mgd2VyZSByZW1vdmVkLiAgVGhpcyBjYXVzZWQgYSBudW1iZXJpbmcKcHJvYmxlbSwgYmVjYXVzZSB0aGV5IHdlcmUgYWxsIGxpc3RlZC4gIERvbid0IHJlbW92ZSByZWR1bmRhbnQgY3Njb3BlIHRhZ3MuCihEYXZpZCBCdXN0b3MpLgoKQ3Njb3BlOiBUZXN0IGZvciB3aGljaCBtYXRjaGVzIGFyZSBpbiB0aGUgY3VycmVudCBidWZmZXIgc29tZXRpbWVzIGZhaWxlZCwKY2F1c2luZyBhIGp1bXAgdG8gYW5vdGhlciBtYXRjaCB0aGFuIHNlbGVjdGVkLiAoRGF2aWQgQnVzdG9zKQoKV2luMzI6IEJ1ZmZlciBvdmVyZmxvdyB3aGVuIGFkZGluZyBhIGNoYXJzZXQgbmFtZSBpbiBhIGZvbnQuCgondGl0bGVzdHJpbmcnIGFuZCAnaWNvbnN0cmluZycgd2VyZSBldmFsdWF0aW5nIGFuIGV4cHJlc3Npb24gaW4gdGhlIGN1cnJlbnQKY29udGV4dCwgd2hpY2ggY291bGQgYmUgYSB1c2VyIGZ1bmN0aW9uLCB3aGljaCBpcyBhIHByb2JsZW0gZm9yIGxvY2FsCnZhcmlhYmxlcyB2cyBnbG9iYWwgdmFyaWFibGVzLgoKV2luMzIgR1VJOiBNYXBwaW5nIDxNLUY+IGRpZG4ndCB3b3JrLiAgTm93IGhhbmRsZSBTSElGVCBhbmQgQ1RSTCBpbgpfT25TeXNDaGFyKCkuCgpXaW4zMiBHVUk6IChvbiBubyBmaWxlKSwgOnZzPENSPjpxPENSPiBsZWZ0IGEgdHJhaWwgb2YgcGl4ZWxzIGRvd24gdGhlIG1pZGRsZS4KQ291bGQgYWxzbyBoYXBwZW4gZm9yIHRoZSBydWxlci4gIHNjcmVlbl9wdXRzKCkgZGlkbid0IGNsZWFyIHRoZSByaWdodCBjaGFyIGluClNjcmVlbkxpbmVzW10gZm9yIHRoZSBib2xkIHRyaWNrLgoKV2luMzI6ICI6JSFzb3J0fHVuaXEiIGRpZG4ndCB3b3JrLCBiZWNhdXNlIHRoZSBpbnB1dCBmaWxlIG5hbWUgdG91Y2hlcyB0aGUKInwiLiAgSW5zZXJ0IGEgc3BhY2UgYmVmb3JlIHRoZSAifCIuCgpPUy8yOiBFeHBhbmRpbmcgd2lsZGNhcmRzIGluY2x1ZGVkIG5vbi1leGlzdGluZyBmaWxlcy4gIENhdXNlZCAiOnJ1bnRpbWUiIHRvCmZhaWwsIHdoaWNoIGNhdXNlZCBzeW50YXggaGlnaGxpZ2h0aW5nIHRvIGZhaWwuCgpQYXN0aW5nIGEgcmVnaXN0ZXIgY29udGFpbmluZyBDVFJMLVIgb24gdGhlIGNvbW1hbmQgbGluZSBjb3VsZCBjYXVzZSBhbgplbmRsZXNzIGxvb3AgdGhhdCBjYW4ndCBiZSBpbnRlcnJ1cHRlZC4gIE5vdyBpdCBjYW4gYmUgc3RvcHBlZCB3aXRoIENUUkwtQy4KCldoZW4gJ3ZlcmJvc2UnIGlzIHNldCwgYSBtZXNzYWdlIGZvciBmaWxlIHJlYWQvd3JpdGUgY291bGQgb3ZlcndyaXRlIHRoZQpwcmV2aW91cyBtZXNzYWdlLgpXaGVuICd2ZXJib3NlJyBpcyBzZXQsIHRoZSBoZWFkZXIgZnJvbSAiOnNlbGVjdCIgd2FzIHB1dCBhZnRlciB0aGUgbGFzdAptZXNzYWdlLiAgTm93IHN0YXJ0IGEgbmV3IGxpbmUuCgpUaGUgaGl0LWVudGVyIHByb21wdCByZWFjdGVkIHRvIHRoZSByZXNwb25zZSBvZiB0aGUgdF9SViBzdHJpbmcsIGNhdXNpbmcKbWVzc2FnZXMgYXQgc3RhcnR1cCB0byBkaXNhcHBlYXIuCgpXaGVuIHRfQ28gd2FzIHNldCB0byAxLCBjb2xvcnMgd2VyZSBzdGlsbCB1c2VkLiAgTm93IG9ubHkgdXNlIGNvbG9yIHdoZW4gdF9Dbwo+IDEuCgpMaXN0aW5nIGZ1bmN0aW9ucyB3aXRoICI6ZnVuY3Rpb24iIGRpZG4ndCBxdWl0IHdoZW4gJ3EnIG9yICc6JyB3YXMgdHlwZWQgYXQKdGhlIG1vcmUgcHJvbXB0LgoKVXNlIG1rc3RlbXAoKSBpbnN0ZWFkIG9mIG1rdGVtcCgpIHdoZW4gaXQncyBhdmFpbGFibGUsIGF2b2lkcyBhIHdhcm5pbmcgZm9yCmxpbmtpbmcgb24gRnJlZUJTRC4KCldoZW4gZG9pbmcgSW5zZXJ0IG1vZGUgY29tcGxldGlvbiBpdCdzIHBvc3NpYmxlIHRoYXQgYl9zZm5hbWUgaXMgTlVMTC4gIERvbid0CmdpdmUgaXQgdG8gcHJpbnRmKCkgZm9yIHRoZSAiU2Nhbm5pbmciIG1lc3NhZ2UuCgoiOnNldCBydW50aW1lcGF0aC09JFZJTVJVTlRJTUUiIGRpZG4ndCB3b3JrLCBiZWNhdXNlIGV4cGFuc2lvbiBvZiB3aWxkY2FyZHMKd2FzIGRvbmUgYWZ0ZXIgdHJ5aW5nIHRvIHJlbW92ZSB0aGUgc3RyaW5nLiAgTm93IGZvciAiOnNldCBvcHQrPXZhbCIgYW5kICI6c2V0Cm9wdC09dmFsIiB0aGUgZXhwYW5zaW9uIG9mIHdpbGRjYXJkcyBpcyBkb25lIGJlZm9yZSBhZGRpbmcgb3IgcmVtb3ZpbmcgInZhbCIuCgpVc2luZyBDVFJMLVYgd2l0aCB0aGUgInIiIGNvbW1hbmQgd2l0aCBhIGJsb2Nrd2lzZSBWaXN1YWwgc2VsZWN0aW9uIGluc2VydGVkIGEKQ1RSTC1WIGluc3RlYWQgb2YgZ2V0dGluZyBhIHNwZWNpYWwgY2hhcmFjdGVyLgoKVW5peDogQ2hhbmdlZCB0aGUgb3JkZXIgb2YgbGlicmFyaWVzOiBQdXQgLWxYZG1jcCBhZnRlciAtbFgxMSBhbmQgLWxTTSAtbElDRQphZnRlciAtbFhkbWNwLiAgU2hvdWxkIGZpeCBsaW5rIHByb2JsZW0gb24gSFAtVVggMTAuMjAuCgpEb24ndCByZW1vdmUgdGhlIGxhc3QgIi1sbSIgZnJvbSB0aGUgbGluayBsaW5lLiAgVmltIG1heSBsaW5rIGJ1dCBmYWlsIGxhdGVyCndoZW4gdGhlIEdVSSBzdGFydHMuCgpXaGVuIHRoZSBzaGVsbCByZXR1cm5zIHdpdGggYW4gZXJyb3Igd2hlbiB0cnlpbmcgdG8gZXhwYW5kIHdpbGRjYXJkcywgZG8KaW5jbHVkZSB0aGUgcGF0dGVybiB3aGVuIHRoZSAiRVdfTk9URk9VTkQiIGZsYWcgd2FzIHNldC4KV2hlbiBleHBhbmRpbmcgd2lsZGNhcmRzIHdpdGggdGhlIHNoZWxsIGZhaWxzLCBnaXZlIGEgY2xlYXIgZXJyb3IgbWVzc2FnZQppbnN0ZWFkIG9mIGp1c3QgIjEgcmV0dXJuZWQiLgoKU2VsZWN0aW5nIGEgVmlzdWFsIGJsb2NrLCB3aXRoIHRoZSBzdGFydCBwYXJ0bHkgb24gYSBUYWIsIGRlbGV0aW5nIGl0IGxlYXZlcwp0aGUgY3Vyc29yIHRvbyBmYXIgdG8gdGhlIGxlZnQuICBDYXVzZXMgInMiIHRvIHdvcmsgaW4gdGhlIHdyb25nIHBvc2l0aW9uLgoKUG91bmQgc2lnbiBpbiBub3JtYWwuYyBjYXVzZWQgdHJvdWJsZSBvbiBzb21lIGNvbXBpbGVycy4gIFVzZSAweEEzIGluc3RlYWQuCgpXYXJuaW5nIGZvciBjaGFuZ2luZyBhIHJlYWQtb25seSBmaWxlIHdhc24ndCBnaXZlbiB3aGVuICdpbnNlcnRtb2RlJyB3YXMgc2V0LgoKV2luMzI6IFdoZW4gJ3NoZWxseHF1b3RlJyBpcyBzZXQgdG8gYSBkb3VibGUgcXVvdGUgKGUuZy4sIHVzaW5nIGNzaCksICI6IXN0YXJ0Cm5vdGVwYWQgZmlsZSIgZG9lc24ndCB3b3JrLiAgUmVtb3ZlIHRoZSBkb3VibGUgcXVvdGVzIGFkZGVkIGJ5ICdzaGVsbHhxdW90ZScKd2hlbiB1c2luZyAiOiFzdGFydCIuIChQYXZvbCBKdWhhcykKClRoZSAiPGYtYXJncz4iIGFyZ3VtZW50IG9mICI6Y29tbWFuZCIgZGlkbid0IGFjY2VwdCBUYWJzIGZvciB3aGl0ZSBzcGFjZS4KQWxzbywgZG9uJ3QgYWRkIGFuIGVtcHR5IGFyZ3VtZW50IHdoZW4gdGhlcmUgYXJlIHRyYWlsaW5nIGJsYW5rcy4KCiI6ZSB0ZXN0XFxqZSIgZWRpdGVkICJ0ZXN0XGplIiwgYnV0ICI6bmV4dCB0ZXN0XFxqZSIgZWRpdGVkICJ0ZXN0amUiLgpCYWNrc2xhc2hlcyB3ZXJlIHJlbW92ZWQgb25lIHRpbWUgdG9vIG1hbnkgZm9yICI6bmV4dCIuCgpWTVM6ICJnZiIgZGlkbid0IHdvcmsgcHJvcGVybHkuICBVc2Ugdm1zX2ZpeGZpbGVuYW1lKCkgdG8gdHJhbnNsYXRlIHRoZSBmaWxlCm5hbWUuIChab2x0YW4gQXJwYWRmZnkpCgpBZnRlciAiOmhpIE5vcm1hbCBjdGVybWJnPWJsYWNrIGN0ZXJtZmc9d2hpdGUiIGFuZCBzdXNwZW5kaW5nIFZpbSBub3QgYWxsCmNoYXJhY3RlcnMgYXJlIHJlZHJhd24gd2l0aCB0aGUgcmlnaHQgYmFja2dyb3VuZC4KCldoZW4gZG9pbmcgIm1ha2UgdGVzdCIgd2l0aG91dCArZXZhbCBvciArd2luZG93cyBmZWF0dXJlLCBtYW55IHRlc3RzIGZhaWxlZC4KTm93IGhhdmUgdGVzdDEgZ2VuZXJhdGUgYSBzY3JpcHQgdG8gY29weSB0aGUgY29ycmVjdCBvdXRwdXQsIHNvIHRoYXQgYSB0ZXN0CnRoYXQgZG9lc24ndCB3b3JrIGlzIHNraXBwZWQuCgpPbiBGcmVlQlNEIHRoZSBQZXJsIGludGVyZmFjZSBhZGRlZCAiLWxjIiB0byB0aGUgbGluayBjb21tYW5kIGFuZCBQeXRob24gYWRkZWQKIi1wdGhyZWFkIi4gIFRoZXNlIHR3byBkb24ndCB3b3JrIHRvZ2V0aGVyLCBiZWNhdXNlIHRoZSBsaWJjX3IgbGlicmFyeSBzaG91bGQKYmUgdXNlZC4gIFJlbW92ZWQgIi1sYyIgZnJvbSBQZXJsLCBpdCBzaG91bGQgbm90IGJlIG5lZWRlZC4KQWxzbzogQWRkICItcHRocmVhZCIgdG8gJExJQlMsIHNvIHRoYXQgdGhlIGNoZWNrcyBmb3IgZnVuY3Rpb25zIGlzIGRvbmUgd2l0aApsaWJjX3IuICBTaWdhbHRzdGFjaygpIGFwcGVhcnMgdG8gYmUgbWlzc2luZyBmcm9tIGxpYmNfci4KClRoZSBTeW50YXggc3ViLW1lbnVzIHdlcmUgZ2V0dGluZyB0b28gbG9uZywgcmVvcmdhbml6ZWQgdGhlbSBhbmQgYWRkZWQgYW5vdGhlcgpsZXZlbCBmb3Igc29tZSBsYW5ndWFnZXMuCgpWaXN1YWwgYmxvY2sgInIiZXBsYWNlIGRpZG4ndCB3b3JrIHdlbGwgd2hlbiBhIFRhYiBpcyBwYXJ0bHkgaW5jbHVkZWQuCihNYXR0aGlhcyBLcmFtbSkKCldoZW4geWFua2luZyBhIFZpc3VhbCBibG9jaywgd2hlcmUgc29tZSBsaW5lcyBlbmQgaGFsZndheSB0aGUgYmxvY2ssIHB1dHRpbmcKdGhlIHRleHQgc29tZXdoZXJlIGVsc2UgZG9lc24ndCBpbnNlcnQgYSBibG9jay4gIFBhZGQgd2l0aCBzcGFjZXMgZm9yIG1pc3NpbmcKY2hhcmFjdGVycy4gIEFkZGVkICJ5X3dpZHRoIiB0byBzdHJ1Y3QgeWFua3JlZy4gKE1hdHRoaWFzIEtyYW1tKQoKSWYgYSBzdWJzdGl0dXRlIHN0cmluZyBoYXMgYSBtdWx0aWJ5dGUgY2hhcmFjdGVyIGFmdGVyIGEgYmFja3NsYXNoIG9ubHkgdGhlCmZpcnN0IGJ5dGUgb2YgaXQgd2FzIHNraXBwZWQuIChNdXJhb2thIFRhcm8pCgpXaW4zMjogTnVtZXJpYyBrZXlwYWQga2V5cyB3ZXJlIG1pc3NpbmcgZnJvbSB0aGUgYnVpbHRpbiB0ZXJtY2FwIGVudHJ5LgoKV2hlbiBhIGZpbGUgd2FzIHJlYWQtb25seSAiOndhISIgZGlkbid0IGZvcmNlIGl0IHRvIGJlIHdyaXR0ZW4uIChWaW5jZSBOZWdyaSkKCkFtaWdhOiBBIGZpbGUgbmFtZSBzdGFydGluZyB3aXRoIGEgY29sb24gd2FzIGNvbnNpZGVyZWQgYWJzb2x1dGUgYnV0IGl0IGlzbid0LgpBbWlnYTogIjpwd2QiIGFkZGVkIGEgc2xhc2ggd2hlbiBpbiB0aGUgcm9vdCBvZiBhIGRyaXZlLgoKRG9uJ3QgbGV0ICd0dHltb3VzZScgZGVmYXVsdCB0byAiZGVjIiB3aGVuIGNvbXBpbGVkIHdpdGggZGVjIG1vdXNlIHN1cHBvcnQuCkl0IGJyZWFrcyB0aGUgZ3BtIG1vdXNlIChMaW51eCBjb25zb2xlKS4KClRoZSBwcm90b3R5cGVzIGZvciB0aGUgUGVybCBpbnRlcmZhY2UgZGlkbid0IHdvcmsgZm9yIHRocmVhZGVkIFBlcmwuICBBZGRlZCBhCnNlZCBjb21tYW5kIHRvIHJlbW92ZSB0aGUgcHJvdG90eXBlcyBmcm9tIHByb3RvL2lmX3BlcmwucHJvIGFuZCBhZGRlZCB0aGVtCm1hbnVhbGx5IHRvIGlmX3BlcmwueHMuCgpXaGVuICI6dyEiIHJlc2V0cyB0aGUgJ3JlYWRvbmx5JyBvcHRpb24gdGhlIHRpdGxlIGFuZCBzdGF0dXMgbGluZXMgd2VyZSBub3QKdXBkYXRlZC4KCiI6YXJncyIgc2hvd2VkIHRoZSBjdXJyZW50IGZpbGUgd2hlbiB0aGUgYXJndW1lbnQgbGlzdCB3YXMgZW1wdHkuICBNYWRlIHRoaXMKd29yayBsaWtlIFZpOiBkaXNwbGF5IG5vdGhpbmcuCgoiOTk6PEMtVT5lY2hvIHY6Y291bnQiIGVjaG9lZCAiOTkiIGluIE5vcm1hbCBtb2RlLCBidXQgMCBpbiBWaXN1YWwgbW9kZS4KRG9uJ3Qgc2V0IHY6Y291bnQgd2hlbiBleGVjdXRpbmcgYSBzdHVmZmVkIGNvbW1hbmQuCgpBbWlnYTogR290IGEgcmVxdWVzdGVyIGZvciAiaG9tZToiIGJlY2F1c2UgaXQncyBpbiB0aGUgZGVmYXVsdCBydW50aW1lIHBhdGguCkRvbid0IGJyaW5nIHVwIGEgcmVxdWVzdGVyIHdoZW4gc2VhcmNoaW5nIGZvciBhIGZpbGUgaW4gJ3BhdGgnLCBzb3VyY2luZyB0aGUKLnZpbXJjIGZpbGUgb3IgdXNpbmcgIjpydW50aW1lIi4KCldpbjE2IGFuZCBXaW4zMjogQ29uc2lkZXJlZCBhIGZpbGUgIlxwYXRoXGZpbGUiIGFic29sdXRlLiAgQ2FuIGNhdXNlIHRoZSBzYW1lCmZpbGUgdG8gYXBwZWFyIGFzIHR3byBkaWZmZXJlbnQgYnVmZmVycy4KCldpbjMyOiBSZW5hbWluZyBhIGZpbGUgdG8gYW4gZW1wdHkgc3RyaW5nIGNyYXNoZWQgVmltLiAgSGFwcGVuZWQgd2hlbiB1c2luZwpleHBsb3Jlci52aW0gYW5kIGhpdHRpbmcgRVNDIGF0IHRoZSByZW5hbWUgcHJvbXB0LgoKV2luMzI6IHN0cmZ0aW1lKCkgY3Jhc2hlZCB3aGVuIGNhbGxlZCB3aXRoIGEgIi0xIiB2YWx1ZSBmb3IgdGhlIHRpbWUuCgpXaW4zMiB3aXRoIEJvcmxhbmQgY29tcGlsZXI6IG1jaF9GdWxsTmFtZSgpIGRpZG4ndCB3b3JrLCBjYXVzZWQgdGFnIGZpbGUgbm90CnRvIGJlIGZvdW5kLgoKQ3Njb3BlIHNvbWV0aW1lcyBqdW1wZWQgdG8gdGhlIHdyb25nIHRhZy4gKERhdmlkIEJ1c3RvcykKCk9TLzI6IENvdWxkIG5vdCBmaW5kIHRoZSB0YWdzIGZpbGUuICBtY2hfZXhwYW5kX3dpbGRjYXJkcygpIGFkZGVkIGFub3RoZXIKc2xhc2ggdG8gYSBkaXJlY3RvcnkgbmFtZS4KCldoZW4gdXNpbmcgIj4+IiB0aGUgYF0gbWFyayB3YXMgbm90IGluIHRoZSBsYXN0IGNvbHVtbi4KCldoZW4gVmltIHdhcyBjb21waWxlZCB3aXRob3V0IG1lbnUgc3VwcG9ydCwgZmlsZXR5cGUudmltIHdhcyBzdGlsbCB0cnlpbmcgdG8Kc291cmNlIHRoZSBtZW51LnZpbSBzY3JpcHQuIChSYWZhZWwgR2FyY2lhLVN1YXJleikKCiI6cHRhZyIgYWRkZWQgYW4gaXRlbSB0byB0aGUgdGFnIHN0YWNrLgoKV2luMzIgSU1FOiAiZ3IiIGRpZG4ndCB1c2UgSU1FIG1vZGUuCgpJbiB0aGUgInZpbSAtLWhlbHAiIG1lc3NhZ2UgdGhlIHRlcm0gIm9wdGlvbnMiIHdhcyB1c2VkIGZvciBhcmd1bWVudHMuICBUaGF0J3MKY29uZnVzaW5nLCBjYWxsIHRoZW0gImFyZ3VtZW50cyIuCgpXaGVuIHRoZXJlIGFyZSB0d28gd2luZG93cywgYW5kIGEgQnVmVW5sb2FkIGF1dG9jb21tYW5kIGZvciBjbG9zaW5nIHdpbmRvdyAjMQpjbG9zZWQgd2luZG93ICMyLCBWaW0gd291bGQgY3Jhc2guCgpXaGVuIHRoZXJlIGlzIGEgcHJldmlldyB3aW5kb3cgYW5kIG9ubHkgb25lIG90aGVyIHdpbmRvdywgIjpxIiB3b3VsZG4ndCBleGl0LgoKSW4gSW5zZXJ0IG1vZGUsIHdoZW4gY2FuY2VsbGluZyBhIGRpZ3JhcGggd2l0aCBFU0MsIHRoZSAnPycgd2Fzbid0IHJlbW92ZWQuCgpPbiBVbml4IGdsb2IoIi4qIikgcmV0dXJuZWQgIi4iIGFuZCAiLi4iLCBvbiBXaW5kb3dzIGl0IGRpZG4ndC4gIE9uIFdpbmRvd3MKZ2xvYigiKiIpIGFsc28gcmV0dXJuZWQgZmlsZXMgc3RhcnRpbmcgd2l0aCBhIGRvdC4gIE1hZGUgdGhpcyB3b3JrIGxpa2UgVW5peApvbiBhbGwgc3lzdGVtcy4KCldpbjMyOiBSZW1vdmVkIG9sZCBjb2RlIHRvIG9wZW4gYSBjb25zb2xlLiAgVmltcnVuIGlzIG5vdyB1c2VkIGFuZCB3b3JrcyBmaW5lLgoKQ29tcHV0ZSB0aGUgcm9vbSBuZWVkZWQgYnkgdGhlIGludHJvIG1lc3NhZ2UgYWNjdXJhdGVseSwgc28gdGhhdCBpdCBhbHNvIGZpdHMKb24gYSAyNSBsaW5lIGNvbnNvbGUuIChDcmFpZyBCYXJraG91c2UpCgoiOnB0bmV4dCIgd2FzIGJyb2tlbi4gIE5vdyByZW1lbWJlciB0aGUgbGFzdCB0YWcgdXNlZCBpbiB0aGUgcHJldmlldyB3aW5kb3cKc2VwYXJhdGVseSBmcm9tIHRoZSB0YWdzdGFjay4KCkRpZG4ndCBjaGVjayBmb3IgIi1kaXNwbGF5IiBiZWluZyB0aGUgbGFzdCBhcmd1bWVudC4gKFdpY2hlcnQgQWtrZXJtYW4pCgpHVEsgR1VJOiBXaGVuIHN0YXJ0aW5nICJndmltIiB1bmRlciBzb21lIGNvbmRpdGlvbnMgdGhlcmUgd291bGQgYmUgYW4gWCBlcnJvci4KRG9uJ3QgcmVwbGFjZSB0aGUgZXJyb3IgaGFuZGxlciB3aGVuIGNyZWF0aW5nIHRoZSB4dGVybSBjbGlwYm9hcmQuIChXaWNoZXJ0CkFra2VybWFuKQoKQWRkaW5nIGEgc3BhY2UgYWZ0ZXIgYSBoZWxwIHRhZyBjYXVzZWQgdGhlIHRhZyBub3QgdG8gYmUgZm91bmQuICBFLmcuLCAiOmhlCmF1dG9pbmRlbnQgIi4KCldhcyB0cnlpbmcgdG8gZXhwYW5kIGEgVVJMIGludG8gYSBmdWxsIHBhdGggbmFtZS4gIE9uIFdpbmRvd3MgdGhpcyByZXN1bHRlZCBpbgp0aGUgY3VycmVudCBkaXJlY3RvcnkgdG8gYmUgcHJlcGVuZGVkIHRvIHRoZSBVUkwuICBBZGRlZCB2aW1faXNBYnNOYW1lKCkgYW5kCnZpbV9GdWxsTmFtZSgpIHRvIGF2b2lkIHRoYXQgdmFyaW91cyBtYWNoaW5lIHNwZWNpZmljIGZ1bmN0aW9ucyBkbyBpdApkaWZmZXJlbnRseS4KCiI6biAqLmMiICI6Y2QgLi4iICI6biIgZGlkbid0IHVzZSB0aGUgb3JpZ2luYWwgZGlyZWN0b3J5IG9mIHRoZSBmaWxlLiAgVmkgb25seQpkb2VzIGl0IGZvciB0aGUgY3VycmVudCBmaWxlIChsb29rcyBsaWtlIGEgYnVnKS4gIE5vdyByZW1lbWJlciB0aGUgYnVmZmVyIHVzZWQKZm9yIHRoZSBlbnRyeSBpbiB0aGUgYXJndW1lbnQgbGlzdCBhbmQgdXNlIGl0J3MgbmFtZSAoYWRqdXN0ZWQgd2hlbiBkb2luZwoiOmNkIiksIHVubGVzcyBpdCdzIGRlbGV0ZWQuCgpXaGVuIGluc2VydGluZyBhIHNwZWNpYWwga2V5IGFzIGl0cyBuYW1lICgiPEY4PiIgYXMgZm91ciBjaGFyYWN0ZXJzKSBhZnRlcgptb3ZpbmcgYXJvdW5kIGluIEluc2VydCBtb2RlLCB1bmRvIGRpZG4ndCB3b3JrIHByb3Blcmx5LgoKTW90aWYgR1VJOiBXaGVuIHVzaW5nIHRoZSByaWdodCBtb3VzZSBidXR0b24sIGZvciBzb21lIHBlb3BsZSBndmltIGZyb3plIGZvcgphIGNvdXBsZSBvZiBzZWNvbmRzIChNb3RpZiAxLjI/KS4gIFRoaXMgZG9lc24ndCBoYXBwZW4gd2hlbiB0aGVyZSBpcyBubyBQb3B1cAptZW51LiAgU29sdmVkIGJ5IG9ubHkgY3JlYXRpbmcgYSBwb3B1cCBtZW51IHdoZW4gJ21vdXNlbW9kZWwnIGlzICJwb3B1cCIgb3IKInBvcHVwX3NldHBvcyIuIChEYXZpZCBIYXJyaXNvbikKCk1vdGlmOiBXaGVuIGFkZGluZyBtYW55IG1lbnUgaXRlbXMsIHRoZSAiSGVscCIgbWVudSBkaXNhcHBlYXJlZCBidXQgdGhlCm1lbnViYXIgZGlkbid0IHdyYXAuICBOb3cgbWFudWFsbHkgc2V0IHRoZSBtZW51YmFyIGhlaWdodC4KCldoZW4gdXNpbmcgPEJTPiBpbiBJbnNlcnQgbW9kZSB0byByZW1vdmUgYSBsaW5lIGJyZWFrLCBvciB1c2luZyAiSiIgdG8gam9pbgpsaW5lcywgdGhlIGN1cnNvciBjb3VsZCBlbmQgdXAgaGFsZndheSBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLiAoTXVyYW9rYSBUYXJvKQoKUmVtb3ZlZCBkZWZpbmluZyBTVlI0IGluIGNvbmZpZ3VyZS4gIEl0IGNhdXNlcyBwcm9ibGVtcyBmb3Igc29tZSBYIGhlYWRlcgpmaWxlcyBhbmQgZG9lc24ndCBhcHBlYXIgdG8gYmUgdXNlZCBhbnl3aGVyZS4KCldoZW4gJ3dpbGRpZ25vcmUnIGlzIHVzZWQsICdpZ25vcmVjYXNlJyBmb3IgYSB0YWcgbWF0Y2ggd2FzIG5vdCB3b3JraW5nLgoKV2hlbiAnd2lsZGlnbm9yZScgY29udGFpbnMgIip+IiBpdCB3YXMgaW1wb3NzaWJsZSB0byBlZGl0IGEgZmlsZSBlbmRpbmcgaW4gYQoifiIuICBOb3cgZG9uJ3QgcmVjb2duaXplIGEgZmlsZSBlbmRpbmcgaW4gIn4iIGFzIGNvbnRhaW5pbmcgd2lsZGNhcmRzLgoKRGlzYWJsZWQgdGhlIG1vdXNlIGNvZGUgZm9yIE9TLzIuICBJdCB3YXMgbm90IHJlYWxseSB1c2VkLgoKIjpta3Nlc3Npb24iIGFsd2F5cyB1c2VkIHRoZSBmdWxsIHBhdGggbmFtZSBmb3IgYSBidWZmZXIsIGFsc28gd2hlbiB0aGUgc2hvcnQKbmFtZSBjb3VsZCBiZSB1c2VkLgoiOm1rdmltcmMiIGFuZCAiOm1rc2Vzc2lvbiIgZGlkbid0IHNhdmUgJ3dpbGRjaGFyJyBhbmQgJ3Bhc3RldG9nZ2xlJyBpbiBzdWNoIGEKd2F5IHRoYXQgdGhleSB3b3VsZCBiZSByZXN0b3JlZC4gIE5vdyB1c2UgdGhlIGtleSBuYW1lIGlmIHBvc3NpYmxlLCB0aGlzIGlzCnBvcnRhYmxlLgoKQWZ0ZXIgcmVjb3ZlcmluZyBhIGZpbGUgYW5kIGFiYW5kb25pbmcgaXQsIGFuICI6ZWRpdCIgY29tbWFuZCBkaWRuJ3QgZ2l2ZSB0aGUKQVRURU5USU9OIHByb21wdCBhZ2Fpbi4gIFdvdWxkIGJlIHVzZWZ1bCB0byBiZSBhYmxlIHRvIGRlbGV0ZSB0aGUgZmlsZSBpbiBhbgplYXN5IHdheS4gIFJlc2V0IHRoZSBCRl9SRUNPVkVSRUQgZmxhZyB3aGVuIHVubG9hZGluZyB0aGUgYnVmZmVyLgoKaGlzdGRlbCgpIGNvdWxkIG1hdGNoIG9yIGlnbm9yZSBjYXNlLCBkZXBlbmRpbmcgb24gd2hhdCBoYXBwZW5lZCBiZWZvcmUgaXQuCk5vdyBhbHdheXMgbWF0Y2ggY2FzZS4KCldoZW4gYSB3aW5kb3cgc2l6ZSB3YXMgc3BlY2lmaWVkIHdoZW4gc3BsaXR0aW5nIGEgd2luZG93LCBpdCB3b3VsZCBzdGlsbCBnZXQKdGhlIHNpemUgZnJvbSAnd2luaGVpZ2h0JyBvciAnd2lud2lkdGgnIGlmIGl0J3MgbGFyZ2VyLgoKV2hlbiB1c2luZyAiYXBwZW5kIiBvciAiaW5zZXJ0IiBpbnNpZGUgYSBmdW5jdGlvbiBkZWZpbml0aW9uLCBhIGxpbmUgc3RhcnRpbmcKd2l0aCAiZnVuY3Rpb24iIG9yICJlbmRmdW5jdGlvbiIgY2F1c2VkIGNvbmZ1c2lvbi4gIE5vdyByZWNvZ25pemUgdGhlIGNvbW1hbmRzCmFuZCBza2lwIGxpbmVzIHVudGlsIGEgIi4iLgoKQXQgdGhlIGVuZCBvZiBhbnkgZnVuY3Rpb24gb3Igc291cmNlZCBmaWxlIG5lZWRfd2FpdF9yZXR1cm4gY291bGQgYmUgcmVzZXQsCmNhdXNpbmcgbWVzc2FnZXMgdG8gZGlzYXBwZWFyIHdoZW4gcmVkcmF3aW5nLgoKV2hlbiBpbiBhIHdoaWxlIGxvb3AgdGhlIGxpbmUgbnVtYmVyIGZvciBlcnJvciBtZXNzYWdlcyBzdGF5ZWQgZml4ZWQuICBOb3cgdGhlCmxpbmUgbnVtYmVyIGlzIHJlbWVtYmVyZWQgaW4gdGhlIHdoaWxlIGxvb3AuCgoiY2QgYzovIiBkaWRuJ3Qgd29yayBvbiBNUy1ET1MuICBtY2hfaXNkaXIoKSByZW1vdmVkIGEgdHJhaWxpbmcgc2xhc2guCgpNUy1XaW5kb3dzOiBnZXRmdGltZSgpIGRpZG4ndCB3b3JrIHdoZW4gYSBkaXJlY3RvcnkgaGFkIGEgdHJhaWxpbmcgc2xhc2ggb3IKYmFja3NsYXNoLiAgRGlkbid0IHNob3cgdGhlIHRpbWUgaW4gdGhlIGV4cGxvcmVyIGJlY2F1c2Ugb2YgdGhpcy4KCldoZW4gZG9pbmcgd2lsZGNhcmQgY29tcGxldGlvbiwgYSBkaXJlY3RvcnkgImEvIiBzb3J0ZWQgYWZ0ZXIgImEtYiIuICBOb3cKcmVjb2duaXplIHBhdGggc2VwYXJhdG9ycyB3aGVuIHNvcnRpbmcgZmlsZXMuCgpOb24tVW5peCBzeXN0ZW1zOiBXaGVuIGVkaXRpbmcgImM6L2Rpci8uLi9maWxlIiBhbmQgImM6L2ZpbGUiIHRoZXkgd2VyZQpjcmVhdGVkIGFzIGRpZmZlcmVudCBidWZmZXJzLCBhbHRob3VnaCBpdCdzIHRoZSBzYW1lIGZpbGUuICBFeHBhbmQgdG8gYSBmdWxsCmZpbGUgbmFtZSBhbHNvIHdoZW4gYW4gYWJzb2x1dGUgbmFtZSBjb250YWlucyAiLi4iLgoKImcmIiBkaWRuJ3QgcmVwZWF0IHRoZSBsYXN0IHN1YnN0aXR1dGUgcHJvcGVybHkuCgpXaGVuICdjbGlwYm9hcmQnIHdhcyBzZXQgdG8gInVubmFtZWQiLCBhICJZIiBjb21tYW5kIHdvdWxkIG5vdCB3cml0ZSB0byAiMC4KTm93IG1ha2UgYSBjb3B5IG9mIHJlZ2lzdGVyIDAgdG8gdGhlIGNsaXBib2FyZCByZWdpc3Rlci4KCldoZW4gdGhlIHNlYXJjaCBwYXR0ZXJuIG1hdGNoZXMgaW4gbWFueSB3YXlzLCBpdCBjb3VsZCBub3QgYWx3YXlzIGJlCmludGVycnVwdGVkIHdpdGggYSBDVFJMLUMuICBBbmQgQ1RSTC1DIHdvdWxkIGhhdmUgdG8gYmUgaGl0IG9uY2UgZm9yIGV2ZXJ5CmxpbmUgd2hlbiAnaGxzZWFyY2gnIGlzIG9uLgpXaGVuICdpbmNzZWFyY2gnIGlzIG9uIGFuZCBpbnRlcnJ1cHRpbmcgdGhlIHNlYXJjaCBmb3IgYSBtYXRjaCwgZG9uJ3QgYWJhbmRvbgp0aGUgY29tbWFuZCBsaW5lLgoKV2hlbiB0dXJuaW5nIGEgZGlyZWN0b3J5IG5hbWUgaW50byBhIGZ1bGwgcGF0aCwgZS5nLiwgd2l0aCBmbmFtZW1vZGlmeSgpLApzb21ldGltZXMgYSBzbGFzaCB3YXMgYWRkZWQuICBNYWtlIHRoaXMgY29uc2lzdGVudDogRG9uJ3QgYWRkIGEgc2xhc2guCgpXaGVuIGEgZmlsZSBuYW1lIGNvbnRhaW5zIGEgIiEiLCB1c2luZyBpdCBpbiBhIHNoZWxsIGNvbW1hbmQgd2lsbCBjYXVzZQp0cm91YmxlOiAiOiFjYXQgJSIuICBFc2NhcGUgdGhlICIhIiB0byBhdm9pZCB0aGF0LiAgRXNjYXBlIGl0IGFub3RoZXIgdGltZQp3aGVuICdzaGVsbCcgY29udGFpbnMgInNoIi4KCkNvbXBsZXRpbmcgYSBmaWxlIG5hbWUgdGhhdCBoYXMgYSB0YWlsIHRoYXQgc3RhcnRzIHdpdGggYSAifiIgZGlkbid0IHdvcms6CiI6ZSB2aWV3L348VGFiPiIuCgpVc2luZyBhICI6Y29tbWFuZCIgYXJndW1lbnQgdGhhdCBjb250YWlucyA8IGFuZCA+IGJ1dCBub3QgZm9yIGEgc3BlY2lhbAphcmd1bWVudCB3YXMgbm90IHNraXBwZWQgcHJvcGVybHkuCgpUaGUgRE9TIGluc3RhbGwgcHJvZ3JhbTogT24gV2luMjAwMCB0aGUgY2hlY2sgZm9yIGEgdmltLmV4ZSBvciBndmltLmV4ZSBpbgokUEFUSCBkaWRuJ3Qgd29yaywgaXQgYWx3YXlzIGZvdW5kIGl0IGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KUmVuYW1lIHRoZSB2aW0uZXhlIGluIHRoZSBjdXJyZW50IGRpciB0byBhdm9pZCB0aGlzLiAoV2FsdGVyIEJyaXNjb2UpCgpJbiB0aGUgTVMtRE9TL1dpbmRvd3MgaW5zdGFsbCBwcm9ncmFtLCB1c2UgJVZJTSUgaW5zdGVhZCBvZiBhbiBhYnNvbHV0ZSBwYXRoLApzbyB0aGF0IG1vdmluZyBWaW0gcmVxdWlyZXMgb25seSBvbmUgY2hhbmdlIGluIHRoZSBiYXRjaCBmaWxlLgoKTWFjOiBtY2hfRnVsbE5hbWUoKSBjaGFuZ2VkIHRoZSAiZm5hbWUiIGFyZ3VtZW50IGFuZCBkaWRuJ3QgYWx3YXlzIGluaXRpYWxpemUKdGhlIGJ1ZmZlci4KCk1TLURPUzogbWNoX0Z1bGxOYW1lKCkgZGlkbid0IGZpeCBmb3J3YXJkL2JhY2t3YXJkIHNsYXNoZXMgaW4gYW4gYWJzb2x1dGUgZmlsZQpuYW1lLgoKImVjaG8gZXhwYW5kKCIlOnA6aCIpIiB3aXRoIGFuIGVtcHR5IGZpbGUgbmFtZSByZW1vdmVkIG9uZSBkaXJlY3RvcnkgbmFtZSBvbgpNUy1ET1MuICBGb3IgVW5peCwgd2hlbiB0aGUgZmlsZSBuYW1lIGlzIGEgZGlyZWN0b3J5LCB0aGUgZGlyZWN0b3J5IG5hbWUgd2FzCnJlbW92ZWQuICBOb3cgbWFrZSBpdCBjb25zaXN0ZW50OiAiJTpwIiBhZGRzIGEgcGF0aCBzZXBhcmF0b3IgZm9yIGFsbCBzeXN0ZW1zLApidXQgbm8gcGF0aCBzZXBhcmF0b3IgaXMgYWRkZWQgaW4gb3RoZXIgc2l0dWF0aW9ucy4KClVuaXg6IFdoZW4gY2hlY2tpbmcgZm9yIGEgQ1RSTC1DIChjb3VsZCBoYXBwZW4gYW55IHRpbWUpIGFuZCB0aGVyZSBpcyBhbiBYCmV2ZW50IChlLmcuLCBjbGlwYm9hcmQgdXBkYXRlZCkgYW5kIHRoZXJlIGlzIHR5cGVhaGVhZCwgVmltIHdvdWxkIGhhbmcgdW50aWwgYQpjaGFyYWN0ZXIgd2FzIHR5cGVkLgoKTVMtRE9TLCBNUy1XaW5kb3dzIGFuZCBBbWlnYTogZXhwYW5kaW5nICIkRU5WL2ZvbyIgd2hlbiAkRU5WIGVuZHMgaW4gYSBjb2xvbiwKaGFkIHRoZSBzbGFzaCByZW1vdmVkLgoKIjpoZSBcXj0iIGdhdmUgYW4gZXJyb3IgZm9yIHVzaW5nIFxfLiAgIjpoZSBePSIgZGlkbid0IGZpbmQgdGFnIDpzZXRePS4gIEV2ZW4KImhlIDpzZXRePSIgZGlkbid0IGZpbmQgaXQuCgpBIHRhZ3MgZmlsZSBuYW1lICJEOi90YWdzIiB3YXMgdXNlZCBhcyBmaWxlICJ0YWdzIiBpbiAiRDoiLiAgVGhhdCBkb2Vzbid0IHdvcmsKd2hlbiB0aGUgY3VycmVudCBwYXRoIGZvciBEOiBpc24ndCB0aGUgcm9vdCBvZiB0aGUgZHJpdmUuCgpSZW1vdmVkIGNhbGxzIHRvIFh0SW5pdGlhbGl6ZVdpZGdldENsYXNzKCksIHRoZXkgc2hvdWxkbid0IGJlIG5lY2Vzc2FyeS4KCldoZW4gdXNpbmcgYSBkdHRlcm0gb3IgdmFyaW91cyBvdGhlciBjb2xvciB0ZXJtaW5hbHMsIGFuZCB0aGUgTm9ybWFsIGdyb3VwIGhhcwpiZWVuIHNldCB0byB1c2UgYSBkaWZmZXJlbnQgYmFja2dyb3VuZCBjb2xvciwgdGhlIGJhY2tncm91bmQgd291bGRuJ3QgYWx3YXlzCmJlIGRpc3BsYXllZCB3aXRoIHRoYXQgY29sb3IuICBBZGRlZCBjaGVjayBmb3IgInV0IiB0ZXJtY2FwIGVudHJ5OiBJZiBpdCdzCm1pc3NpbmcsIGNsZWFyaW5nIHRoZSBzY3JlZW4gd29uJ3QgZ2l2ZSB1cyB0aGUgY3VycmVudCBiYWNrZ3JvdW5kIGNvbG9yLiAgTmVlZAp0byBkcmF3IGVhY2ggY2hhcmFjdGVyIGluc3RlYWQuICBWaW0gbm93IGFsc28gd29ya3Mgd2hlbiB0aGUgImNsIiAoY2xlYXIKc2NyZWVuKSB0ZXJtY2FwIGVudHJ5IGlzIG1pc3NpbmcuCgpXaGVuIHJlcGVhdGluZyBhICIvIiBzZWFyY2ggY29tbWFuZCB3aXRoIGEgbGluZSBvZmZzZXQsIHRoZSAibiIgZGlkIHVzZSB0aGUKb2Zmc2V0IGJ1dCBkaWRuJ3QgbWFrZSB0aGUgbW90aW9uIGxpbmV3aXNlLiAgTWFkZSAiZC9wYXQvKzIiIGFuZCAiZG4iIGRvIHRoZQpzYW1lLgoKV2luMzI6IFRyeWluZyB0byB1c2UgIjp0ZWFyb2ZmIiBmb3IgYSBtZW51IHRoYXQgZG9lc24ndCBleGlzdCBjYXVzZWQgYSBjcmFzaC4KCk9wZW5QVFkoKSBkaWRuJ3Qgd29yayBvbiBTZXF1ZW50LiAgQWRkIGEgY29uZmlndXJlIGNoZWNrIGZvciBnZXRwc2V1ZG90dHkoKS4KCkMtaW5kZW50aW5nOiBJbmRlbnRlZCBhIGxpbmUgc3RhcnRpbmcgd2l0aCAiKSIgd2l0aCB0aGUgbWF0Y2hpbmcgIigiLCBidXQgbm90CmEgbGluZSBzdGFydGluZyB3aXRoICJ4KSIgbG9va3Mgc3RyYW5nZS4gIEFsc28gY29tcHV0ZSB0aGUgaW5kZW50IGZvciBhbGlnbmluZwp3aXRoIGl0ZW1zIGluc2lkZSB0aGUgKCkgYW5kIHVzZSB0aGUgbG93ZXN0IGluZGVudC4KCk1TLURPUyBhbmQgV2luZG93czogIjpuICoudmltIiBhbHNvIG1hdGNoZWQgZmlsZXMgZW5kaW5nIGluICJ+Ii4KTW92ZWQgbWNoX2V4cGFuZHBhdGgoKSBmcm9tIG9zX3dpbjE2LmMgYW5kIG9zX21zZG9zLmMgdG8gbWlzYzEuYywgdGhleSBhcmUKZXF1YWwuCgpNYWNpbnRvc2g6IChEYW55IFN0LUFtYW50KQotIEluIFZpLWNvbXBhdGlibGUgbW9kZSBkaWRuJ3QgcmVhZCBmaWxlcyB3aXRoIENSIGxpbmUgc2VwYXJhdG9ycy4KLSBGaXhlZCBhIGJ1ZyBpbiB0aGUgaGFuZGxpbmcgb2YgQWN0aXZhdGUvRGVhY3RpdmF0ZSBFdmVudAotIEZpeGVkIGEgYnVnIGluIGd1aV9tY2hfZGlhbG9nICh1c2luZyB3cm9uZyBwb2ludGVyKQoKTXVsdGlieXRlIEdESyBYSU06IFdoaWxlIGNvbXBvc2luZyBhIG11bHRpYnl0ZS13b3JkLCBpZiB1c2VyIHByZXNzZXMgYQptb3VzZSBidXR0b24sIHRoZW4gdGhlIHdvcmQgaXMgcmVtb3ZlZC4gIEl0IHNob3VsZCByZW1haW4gYW5kIGNvbXBvc2luZyBlbmQuCihTdW5nLUh5dW4gTmFtKQoKTVMtRE9TLCBNUy1XaW5kb3dzIGFuZCBPUy8yOiBXaGVuIHJlYWRpbmcgZnJvbSBzdGRpbiwgYXV0b21hdGljIENSLUxGCmNvbnZlcnNpb24gYnkgdGhlIEMgbGlicmFyeSBnb3QgaW4gdGhlIHdheSBvZiBkZXRlY3RpbmcgYSAiZG9zIiAnZmlsZWZvcm1hdCcuCgpXaGVuICdzbWFydGNhc2UnIGlzIHNldCwgcGF0dGVybnMgd2l0aCAiXFMiIHdvdWxkIGFsc28gbWFrZSAnaWdub3JlY2FzZScKcmVzZXQuCgpXaGVuIGNsaWNraW5nIHRoZSBtb3VzZSBpbiBhIGNvbHVtbiBsYXJnZXIgdGhhbiAyMjIsIGl0IG1vdmVkIHRvIHRoZSBmaXJzdApjb2x1bW4uICBDYW4ndCBlbmNvZGUgYSBsYXJnZXIgbnVtYmVyIGluIGEgY2hhcmFjdGVyLiAgTm93IGxpbWl0IHRoZSBudW1iZXIgdG8KMjIyLCBkb24ndCBqdW1wIGJhY2sgdG8gdGhlIGZpcnN0IGNvbHVtbi4KCkdVSTogSW4gc29tZSB2ZXJzaW9ucyBDU0kgd291bGQgY2F1c2UgdHJvdWJsZSwgZWl0aGVyIHdoZW4gdHlwZWQgZGlyZWN0bHkgb3IKd2hlbiBwYXJ0IG9mIGEgbXVsdGktYnl0ZSBzZXF1ZW5jZS4KCldoZW4gdXNpbmcgbXVsdGlieXRlIGNoYXJhY3RlcnMgaW4gYSAiOm5vcm1hbCIgY29tbWFuZCwgYSB0cmFpbGluZyBieXRlIHRoYXQKaXMgQ1NJIG9yIEtfU1BFQ0lBTCBjYXVzZWQgcHJvYmxlbXMuCgpXaWxkbWVudSBkaWRuJ3QgaGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KCiI6c2xlZXAgMTAiIGNvdWxkIG5vdCBiZSBpbnRlcnJ1cHRlZCBvbiBXaW5kb3dzLCB3aGlsZSAiZ3MiIGNvdWxkLiAgTWFkZSB0aGVtCmJvdGggd29yayB0aGUgc2FtZS4KClVuaXg6IFdoZW4gd2FpdGluZyBmb3IgYSBjaGFyYWN0ZXIgaXMgaW50ZXJydXB0ZWQgYnkgYW4gWC13aW5kb3dzIGV2ZW50IChlLmcuLAp0byBvYnRhaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBzZWxlY3Rpb24pLCB0aGUgd2FpdCB0aW1lIHdvdWxkIG5vdCBiZSBob25vcmVkLgpBIG1lc3NhZ2UgY291bGQgYmUgb3ZlcndyaXR0ZW4gcXVpY2tseS4gIE5vdyBjb21wdXRlIHRoZSByZW1haW5pbmcgd2FpdGluZwp0aW1lLgoKV2luZG93czogQ29tcGxldGluZyAiXFxzaGFyZVxjJFxTIiBpbnNlcnRlZCBhIGJhY2tzbGFzaCBiZWZvcmUgdGhlICQgYW5kIHRoZW4KdGhlIG5hbWUgaXMgaW52YWxpZC4gIERvbid0IGluc2VydCB0aGUgYmFja3NsYXNoLgoKV2hlbiBkb2luZyBhbiBhdXRvLXdyaXRlIGJlZm9yZSAiOm1ha2UiLCBJT2J1ZmYgd2FzIG92ZXJ3cml0dGVuIGFuZCB0aGUgd3JvbmcKdGV4dCBkaXNwbGF5ZWQgbGF0ZXIuCgpPbiB0aGUgTWFjIHRoZSBkaXJlY3RvcmllcyAiYzovdG1wIiBhbmQgImM6L3RlbXAiIHdlcmUgdXNlZCBpbiB0aGUgZGVmYXVsdHMKZm9yICdiYWNrdXBkaXInIGFuZCAnZGlyZWN0b3J5JywgdGhleSBkb24ndCBleGlzdC4KClRoZSBjaGVjayBmb3IgYSBuZXcgZmlsZSBub3QgdG8gYmUgb24gYW4gTVMtRE9TIGZpbGVzeXN0ZW0gY3JlYXRlZCB0aGUgZmlsZQp0ZW1wb3JhcmlseSwgd2hpY2ggY2FuIGJlIHNsb3cuICBEb24ndCBkbyB0aGlzIGlmIHRoZXJlIGlzIGFub3RoZXIgY2hlY2sgZm9yCnRoZSBzd2FwIGZpbGUgYmVpbmcgb24gYW4gTVMtRE9TIGZpbGVzeXN0ZW0uCgpEb24ndCBnaXZlIHRoZSAiQ2hhbmdpbmcgYSByZWFkb25seSBmaWxlIiB3YXJuaW5nIHdoZW4gcmVhZGluZyBmcm9tIHN0ZGluLgoKV2hlbiB1c2luZyB0aGUgIlNhdmUgQXMiIG1lbnUgZW50cnkgYW5kIG5vdCBlbnRlcmluZyBhIGZpbGUgbmFtZSwgd291bGQgZ2V0IGFuCmVycm9yIG1lc3NhZ2UgZm9yIHRoZSB0cmFpbGluZyAiOmVkaXQgIyIuICBOb3cgb25seSBkbyB0aGF0IHdoZW4gdGhlCmFsdGVybmF0ZSBmaWxlIG5hbWUgd2FzIGNoYW5nZWQuCgpXaGVuIFZpbSBvd25zIHRoZSBYMTEgc2VsZWN0aW9uIGFuZCBpcyBiZWluZyBzdXNwZW5kZWQsIGFuIGFwcGxpY2F0aW9uIHRoYXQKdHJpZXMgdG8gdXNlIHRoZSBzZWxlY3Rpb24gaGFuZ3MuICBXaGVuIFZpbSBjb250aW51ZXMgaXQgY291bGQgbm8gbG9uZ2VyCm9idGFpbiB0aGUgc2VsZWN0aW9uLiAgTm93IGdpdmUgdXAgdGhlIHNlbGVjdGlvbiB3aGVuIHN1c3BlbmRpbmcuCgpvcHRpb24uaCBhbmQgZ2xvYmFscy5oIHdlcmUgaW5jbHVkZWQgaW4gc29tZSBmaWxlcywgd2hpbGUgdGhleSB3ZXJlIGFscmVhZHkKaW5jbHVkZWQgaW4gdmltLmguICBNb3ZlZCB0aGUgZGVmaW5pdGlvbiBvZiBFWFRFUk4gdG8gdmltLmggdG8gYXZvaWQgZG9pbmcgaXQKdHdpY2UuCgpXaGVuIHJlcGVhdGluZyBhbiBvcGVyYXRvciB0aGF0IHVzZWQgYSBzZWFyY2ggcGF0dGVybiBhbmQgdGhlIHNlYXJjaCBwYXR0ZXJuCmNvbnRhaW5lZCBjaGFyYWN0ZXJzIHRoYXQgaGF2ZSBhIHNwZWNpYWwgbWVhbmluZyBvbiB0aGUgY21kbGluZSAoZS5nLiwgQ1RSTC1VKQppdCBkaWRuJ3Qgd29yay4KCkZpeGVkIHZhcmlvdXMgcHJvYmxlbXMgd2l0aCB1c2luZyBLX1NQRUNJQUwgKDB4ODApIGFuZCBDU0kgKDB4OWIpIGFzIGEgYnl0ZSBpbgphIChtdWx0aWJ5dGUpIGNoYXJhY3Rlci4gIEZvciBleGFtcGxlLCB0aGUgInIiIGNvbW1hbmQgY291bGQgbm90IGJlIHJlcGVhdGVkLgoKVGhlIERPUy9XaW5kb3dzIGluc3RhbGwgcHJvZ3JhbSBkaWRuJ3QgYWx3YXlzIHdvcmsgZnJvbSBhIGRpcmVjdG9yeSB3aXRoIGEKbG9uZyBmaWxlbmFtZSwgYmVjYXVzZSAkVklNIGFuZCB0aGUgZXhlY3V0YWJsZSBuYW1lIHdvdWxkIG5vdCBoYXZlIHRoZSBzYW1lCnBhdGguCgpNdWx0aS1ieXRlOgotIFVzaW5nIGFuIGFueS1idXQgY2hhcmFjdGVyIHJhbmdlIFteeF0gaW4gYSByZWdleHAgZGlkbid0IHdvcmsgZm9yIFVURi04LgogIChNdXJhb2thIFRhcm8pCi0gV2hlbiBiYWNrc3BhY2luZyBvdmVyIGluc2VydGVkIGNoYXJhY3RlcnMgaW4gUmVwbGFjZSBtb2RlIG11bHRpLWJ5dGUKICBjaGFyYWN0ZXJzIHdlcmUgbm90IGhhbmRsZWQgY29ycmVjdGx5LiAoTXVyYW9rYSBUYXJvKQotIFNlYXJjaCBjb21tYW5kcyAiIyIgYW5kICIqIiBkaWRuJ3Qgd29yayB3aXRoIG11bHRpYnl0ZSBjaGFyYWN0ZXJzLiAoTXVyYW9rYQogIFRhcm8pCi0gV29yZCBjb21wbGV0aW9uIGluIEluc2VydCBtb2RlIGRpZG4ndCB3b3JrIHdpdGggbXVsdGlieXRlIGNoYXJhY3RlcnMuCiAgKE11cmFva2EgVGFybykKLSBBdGhlbmEvTW90aWYgR1VJOiB3aGVuICdsaW5lc3BhY2UnIGlzIG5vbi16ZXJvIHRoZSBjdXJzb3Igd291bGQgYmUgZHJhd24gdG9vCiAgd2lkZSAobnVtYmVyIG9mIGJ5dGVzIGluc3RlYWQgb2YgY2VsbCB3aWR0aCkuCi0gV2hlbiBjaGFuZ2luZyAnZW5jb2RpbmcnIHRvICJldWMtanAiIGFuZCBpbnNlcnRpbmcgYSBjaGFyYWN0ZXIgVmltIHdvdWxkCiAgY3Jhc2guCi0gRm9yIGV1Yy1qcCBjaGFyYWN0ZXJzIHBvc2l0aW9uaW5nIHRoZSBjdXJzb3Igd291bGQgc29tZXRpbWVzIGJlIHdyb25nLgogIEFsc28sIHdpdGggdHdvIGNoYXJhY3RlcnMgd2l0aCAweDhlIGxlYWRpbmcgYnl0ZSBvbmx5IHRoZSBmaXJzdCBvbmUgd291bGQgYmUKICBkaXNwbGF5ZWQuCi0gV2hlbiB1c2luZyBEWU5BTUlDX0lDT05WIG9uIFdpbjMyIGNvbnZlcnNpb24gbWlnaHQgZmFpbCBiZWNhdXNlIG9mIHVzaW5nIHRoZQogIHdyb25nIGVycm9yIG51bWJlci4gKE11cmFva2EgVGFybykKLSBVc2luZyBBbHQteCBpbiB0aGUgR1VJIHdoaWxlICdlbmNvZGluZycgd2FzIHNldCB0byAidXRmLTgiIGRpZG4ndCBwcm9kdWNlCiAgdGhlIHJpZ2h0IGNoYXJhY3Rlci4KLSBXaGVuIHVzaW5nIFZpc3VhbCBibG9jayBzZWxlY3Rpb24gYW5kIG9ubHkgdGhlIGxlZnQgaGFsdmUgb2YgYSBkb3VibGUtd2lkZQogIGNoYXJhY3RlciBpcyBzZWxlY3RlZCwgdGhlIGhpZ2hsaWdodGluZyBjb250aW51ZWQgdG8gdGhlIGVuZCBvZiB0aGUgbGluZS4KLSBWaXN1YWwtYmxvY2sgZGVsZXRlIGRpZG4ndCB3b3JrIHByb3Blcmx5IHdoZW4gZGVsZXRpbmcgdGhlIHJpZ2h0IGhhbHZlIG9mIGEKICBkb3VibGUtd2lkZSBjaGFyYWN0ZXIuCi0gT3ZlcnN0cmlrZSBtb2RlIGZvciB0aGUgY21kbGluZSByZXBsYWNlZCBvbmx5IHRoZSBmaXJzdCBieXRlIG9mIGEgbXVsdGlieXRlCiAgY2hhcmFjdGVyLgotIFRoZSBjdXJzb3IgaW4gUmVwbGFjZSBtb2RlIChhbHNvIGluIHRoZSBjbWRsaW5lKSB3YXMgdG8gc21hbGwgb24gYQogIGRvdWJsZS13aWRlIGNoYXJhY3Rlci4KLSBXaGVuIGEgbXVsdGlieXRlIGNoYXJhY3RlciBjb250YWluZWQgYSAweDgwIGJ5dGUsIGl0IGRpZG4ndCB3b3JrICh3YXMgdXNpbmcKICBhIENTSSBieXRlIGluc3RlYWQpLiAoTXVyYW9rYSBUYXJvKQotIFdvcmR3aXNlIHNlbGVjdGlvbiB3aXRoIHRoZSBtb3VzZSBkaWRuJ3Qgd29yay4KLSBZYW5raW5nIGEgbW9kZWxlc3Mgc2VsZWN0aW9uIG9mIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBkaWRuJ3Qgd29yay4KLSBXaGVuICdzZWxlY3Rpb24nIGlzICJleGNsdXNpdmUiLCBzZWxlY3RpbmcgYSB3b3JkIHRoYXQgZW5kcyBpbiBhIG11bHRpLWJ5dGUKICBjaGFyYWN0ZXIgdXNlZCB3cm9uZyBoaWdobGlnaHRpbmcgZm9yIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyLgoKV2luMzIgd2l0aCBNYWtlX212Yy5tYWs6IERpZG4ndCBjb21waWxlIGZvciBkZWJ1Z2dpbmcuIChDcmFpZyBCYXJraG91c2UpCgpXaW4zMiBHVUk6IFdoZW4gInZpbXJ1bi5leGUiIGlzIHVzZWQgdG8gZXhlY3V0ZSBhbiBleHRlcm5hbCBjb21tYW5kLCBkb24ndApnaXZlIGEgbWVzc2FnZSBib3ggd2l0aCB0aGUgcmV0dXJuIHZhbHVlLCBpdCB3YXMgYWxyZWFkeSBwcmludGVkIGJ5IHZpbXJ1bi4KQWxzbyBhdm9pZCBwcmludGluZyB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBzaGVsbCB3aGVuICI6c2lsZW50ISIgaXMgdXNlZC4KCldpbjMyOiBzZWxlY3RpbmcgYSBsb3Qgb2YgdGV4dCBhbmQgdXNpbmcgdGhlICJmaW5kL3JlcGxhY2UiIGRpYWxvZyBjYXVzZWQgYQpjcmFzaC4KClgxMSBHVUk6IFdoZW4gdHlwaW5nIGEgY2hhcmFjdGVyIHdpdGggdGhlIDh0aCBiaXQgc2V0IGFuZCB0aGUgTWV0YS9BbHQKbW9kaWZpZXIsIHRoZSBtb2RpZmllciB3YXMgcmVtb3ZlZCB3aXRob3V0IGNoYW5naW5nIHRoZSBjaGFyYWN0ZXIuCgpUcnVuY2F0aW5nIGEgbWVzc2FnZSB0byBtYWtlIGl0IGZpdCBvbiB0aGUgY29tbWFuZCBsaW5lLCB1c2luZyAiLi4uIiBmb3IgdGhlCm1pZGRsZSwgZGlkbid0IGFsd2F5cyBjb21wdXRlIHRoZSBzcGFjZSBjb3JyZWN0bHkuCgpDb3VsZCBub3QgaW1hcCA8Qy1APi4gIE5vdyBpdCB3b3JrcyBsaWtlIDxOdWw+LgoKVk1TOgotIEZpeGVkIGEgZmV3IHRoaW5ncyBmb3IgVkFYQy4gIG9zX3Ztc19maXguY29tIGhhZCBzb21lIHN0cmFuZ2UgQ1RSTC1NCiAgY2hhcmFjdGVycy4gKFpvbHRhbiBBcnBhZGZmeSBhbmQgSm9obiBXLiBIYW1pbGwpCi0gQWRkZWQgVk1TLXNwZWNpZmljIGRlZmF1bHRzIGZvciB0aGUgJ2lzZm5hbWUnIGFuZCAnaXNwcmludCcgb3B0aW9ucy4KICAoWm9sdGFuIEFycGFkZmZ5KQotIFJlbW92ZWQgb3Nfdm1zX29zZGVmLmgsIGl0J3Mgbm8gbG9uZ2VyIHVzZWQuCgpUaGUgZ3ppcCBwbHVnaW4gdXNlZCBhICI6bm9ybWFsIiBjb21tYW5kLCB0aGlzIGRvZXNuJ3Qgd29yayB3aGVuIGRyb3BwaW5nIGEKY29tcHJlc3NlZCBmaWxlIG9uIFZpbS4KCkluIHZlcnkgcmFyZSBzaXR1YXRpb25zIGEgYmluYXJ5IHNlYXJjaCBmb3IgYSB0YWcgd291bGQgZmFpbCwgYmVjYXVzZSBhbgp1bmluaXRpYWxpemVkIHZhbHVlIGhhcHBlbnMgdG8gYmUgaGFsZiB0aGUgc2l6ZSBvZiB0aGUgdGFnIGZpbGUuIChOYXJlbmRyYW4pCgpXaGVuIHVzaW5nIEJ1ZkVudGVyIGFuZCBCdWZMZWF2ZSBhdXRvY29tbWFuZHMgdG8gZW5hYmxlL2Rpc2FibGUgYSBtZW51LCBpdAp3YXNuJ3QgdXBkYXRlZCByaWdodCBhd2F5LgoKV2hlbiBkb2luZyBhIHJlcGxhY2Ugd2l0aCB0aGUgImMib25maXJtIGZsYWcsIHRoZSBjdXJzb3Igd2FzIHBvc2l0aW9uZWQgYWZ0ZXIKdGhlIHJ1bGVyLCBpbnN0ZWFkIG9mIGFmdGVyIHRoZSBxdWVzdGlvbi4gIFdpdGggYSBsb25nIHJlcGxhY2VtZW50IHN0cmluZyB0aGUKc2NyZWVuIGNvdWxkIHNjcm9sbCB1cCBhbmQgY2F1c2UgYSAibW9yZSIgcHJvbXB0LiAgTm93IHRoZSBtZXNzYWdlIGlzCnRydW5jYXRlZCB0byBtYWtlIGl0IGZpdC4KCk1vdGlmOiBUaGUgYXV0b2NvbmYgY2hlY2sgZm9yIHRoZSBYcCBsaWJyYXJ5IGRpZG4ndCB3b3JrLgoKV2hlbiAndmVyYm9zZScgaXMgc2V0IHRvIGxpc3QgbGluZXMgb2YgYSBzb3VyY2VkIGZpbGUsIGRlZmluaW5nIGEgZnVuY3Rpb24Kd291bGQgcmVzZXQgdGhlIGNvdW50ZXIgdXNlZCBmb3IgdGhlICJtb3JlIiBwcm9tcHQuCgpJbiB0aGUgV2luMzIgZmluZC9yZXBsYWNlIGRpYWxvZywgYSAnLycgY2hhcmFjdGVyIGNhdXNlZCBwcm9ibGVtcy4gIEVzY2FwZSBpdAp3aXRoIGEgYmFja3NsYXNoLgoKU3RhcnRpbmcgYSBzaGVsbCB3aXRoICI6c2giIHdhcyBkaWZmZXJlbnQgZnJvbSBzdGFydGluZyBhIHNoZWxsIGZvciBDVFJMLVoKd2hlbiBzdXNwZW5kaW5nIGRvZXNuJ3Qgd29yay4gIFRoZXkgbm93IHdvcmsgdGhlIHNhbWUgd2F5LgoKSnVtcGluZyB0byBhIGZpbGUgbWFyayB3aGlsZSBpbiBhIGNoYW5nZWQgYnVmZmVyIGdhdmUgYSAibWFyayBub3Qgc2V0IiBlcnJvci4KCiI6ZXhlY3V0ZSBoaXN0Z2V0KCJjbWQiKSIgY2F1c2VzIGFuIGVuZGxlc3MgbG9vcCBhbmQgY3Jhc2hlZCBWaW0uICBOb3cgY2F0Y2gKYWxsIGNvbW1hbmRzIHRoYXQgY2F1c2UgdG9vIG11Y2ggcmVjdXJzaXZlbmVzcy4KClJlbW92ZWQgIkZhaWxlZCB0byBvcGVuIGlucHV0IG1ldGhvZCIgZXJyb3IgbWVzc2FnZSwgdG9vIG1hbnkgcGVvcGxlIGdvdCB0aGlzCndoZW4gdGhleSBkaWRuJ3Qgd2FudCB0byB1c2UgYSBYSU0uCgpHVUk6IFdoZW4gY29tcGlsZWQgd2l0aG91dCB0aGUgK3dpbmRvd3MgZmVhdHVyZSwgdGhlIHNjcm9sbGJhciB3b3VsZCBzdGFydApiZWxvdyBsaW5lIG9uZS4KClJlbW92ZWQgdGhlIHRyaWNrIHdpdGggcmVkZWZpbmluZyBjaGFyYWN0ZXIgY2xhc3MgZnVuY3Rpb25zIGZyb20gcmVnZXhwLmMuCgpXaW4zMiBHVUk6IEZpbmQgZGlhbG9nIGdpdmVzIGZvY3VzIGJhY2sgdG8gbWFpbiB3aW5kb3csIHdoZW4gdHlwaW5nIGEKY2hhcmFjdGVyIG1vdXNlIHBvaW50ZXIgaXMgYmxhbmtlZCwgaXQgZGlkbid0IHJlYXBwZWFyIHdoZW4gbW92aW5nIGl0IGluIHRoZQpkaWFsb2cgd2luZG93LiAoVmluY2UgTmVncmkpCgpXaGVuIHJlY29yZGluZyBhbmQgdHlwaW5nIGEgQ1RSTC1DLCBubyBjaGFyYWN0ZXIgd2FzIHJlY29yZGVkLiAgV2hlbiBpbiBJbnNlcnQKbW9kZSBvciBjYW5jZWxsaW5nIGhhbGYgYSBjb21tYW5kLCBwbGF5aW5nIGJhY2sgdGhlIHJlY29yZGVkIHNlcXVlbmNlIHdvdWxkbid0CndvcmsuICBOb3cgcmVjb3JkIHRoZSBDVFJMLUMuCgpXaGVuIHRoZSBHVUkgd2FzIHN0YXJ0ZWQsIG1vdXNlIGNvZGVzIGZvciBERUMgYW5kIG5ldHRlcm0gd2VyZSBzdGlsbCBjaGVja2VkCmZvci4KCkdVSTogV2hlbiBzY3JvbGxpbmcgYW5kICd3cml0ZWRlbGF5JyBpcyBub24temVybywgdGhlIGNoYXJhY3RlciB1bmRlciB0aGUKY3Vyc29yIHdhcyBkaXNwbGF5ZWQgaW4gdGhlIHdyb25nIHBvc2l0aW9uIChvbmUgbGluZSBhYm92ZS9iZWxvdyB3aXRoCkNUUkwtRS9DVFJMLVkpLgoKQSAiOm5vcm1hbCIgY29tbWFuZCB3b3VsZCByZXNldCB0aGUgJ3Njcm9sbGJpbmQnIGluZm8uICBDYXVzZXMgcHJvYmxlbXMgd2hlbgp1c2luZyBhICI6bm9ybWFsIiBjb21tYW5kIGluIGFuIGF1dG9jb21tYW5kIGZvciBvcGVuaW5nIGEgZmlsZS4KCldpbmRvd3MgR1VJOiBhIHBvaW50IHNpemUgd2l0aCBhIGRvdCwgbGlrZSAiNy41Iiwgd2Fzbid0IHJlY29nbml6ZWQuIChNdXJhb2thClRhcm8pCgpXaGVuICdzY3JvbGxiaW5kJyB3YXNuJ3Qgc2V0IHdvdWxkIHN0aWxsIHJlbWVtYmVyIHRoZSBjdXJyZW50IHBvc2l0aW9uLAp3YXN0aW5nIHRpbWUuCgpHVEs6IENyYXNoIHdoZW4gJ3NoZWxsJyBkb2Vzbid0IGV4aXN0IGFuZCBkb2luZyI6IWxzIi4gIFVzZSBfZXhpdCgpIGluc3RlYWQgb2YKZXhpdCgpIHdoZW4gdGhlIGNoaWxkIGNvdWxkbid0IGV4ZWN1dGUgdGhlIHNoZWxsLgoKTXVsdGktYnl0ZToKLSBHVUkgd2l0aCBkb3VibGUtYnl0ZSBlbmNvZGluZzogYSBtb3VzZSBjbGljayBpbiBsZWZ0IGhhbHZlIG9mIGRvdWJsZS13aWRlCiAgY2hhcmFjdGVyIHB1dCB0aGUgY3Vyc29yIGluIHByZXZpb3VzIGNoYXIuCi0gVXNpbmcgZG91YmxlLWJ5dGUgZW5jb2RpbmcgYW5kICdzZWxlY3Rpb24nIGlzICJleGNsdXNpdmUiOiAidmV5IiBhbmQgIl5WZXkiCiAgaW5jbHVkZWQgdGhlIGNoYXJhY3RlciBhZnRlciB0aGUgd29yZC4KLSBXaGVuIHVzaW5nIGEgZG91YmxlLWJ5dGUgZW5jb2RpbmcgYW5kIHRoZXJlIGlzIGEgbGVhZCBieXRlIGF0IHRoZSBlbmQgb2YgdGhlCiAgbGluZSwgdGhlIHByZWNlZGluZyBsaW5lIHdvdWxkIGJlIGRpc3BsYXllZC4gICJnYSIgYWxzbyBzaG93ZWQgd3JvbmcgaW5mby4KLSAiZ2YiIGRpZG4ndCBpbmNsdWRlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBiZWZvcmUgdGhlIGN1cnNvciBwcm9wZXJseS4KICAoTXVyYW9rYSBUYXJvKQoKR1VJOiBUaGUgY3Vyc29yIHdhcyBzb21ldGltZXMgbm90IHJlbW92ZWQgd2hlbiBzY3JvbGxpbmcuICBDaGFuZ2VkIHRoZSBwb2xpY3kKZnJvbSByZWRyYXdpbmcgdGhlIGN1cnNvciBhZnRlciBlYWNoIGNhbGwgdG8gZ3VpX3dyaXRlKCkgdG8gb25seSB1cGRhdGUgaXQgYXQKdGhlIGVuZCBvZiB1cGRhdGVfc2NyZWVuKCkgb3Igd2hlbiBzZXR0aW5nIHRoZSBjdXJzb3IgcG9zaXRpb24uICBBbHNvIG9ubHkKdXBkYXRlIHRoZSBzY3JvbGxiYXJzIGF0IHRoZSBlbmQgb2YgdXBkYXRlX3NjcmVlbigpLCB0aGF0J3MgdGhlIG9ubHkgcGxhY2UKd2hlcmUgdGhlIHdpbmRvdyB0ZXh0IG1heSBoYXZlIGJlZW4gc2Nyb2xsZWQuCgpGb3JtYXR0aW5nICIvKjxUYWI+bG9uZyB0ZXh0IiwgcHJvZHVjZWQgIiogPFRhYj4iIGluIHRoZSBuZXh0IGxpbmUuICBOb3cKcmVtb3ZlIHRoZSBzcGFjZSBiZWZvcmUgdGhlIFRhYi4KRm9ybWF0dGluZyAiLyo8VGFiPiAgbG9uZyB0ZXh0IiwgcHJvZHVjZWQgIiogPFRhYj4gbG9uZyB0ZXh0IiBpbiB0aGUgbmV4dApsaW5lLiAgTm93IGtlZXAgdGhlIHNwYWNlIGFmdGVyIHRoZSBUYWIuCgpJbiBzb21lIHBsYWNlcyBub24tQVNDSUkgYWxwaGFiZXRpY2FsIGNoYXJhY3RlcnMgd2VyZSBhY2NlcHRlZCwgd2hpY2ggY291bGQKY2F1c2UgcHJvYmxlbXMuICBGb3IgZXhhbXBsZSwgIjpYIiAoWCBiZWluZyBzdWNoIGEgY2hhcmFjdGVyKS4KCldoZW4gYSBwYXR0ZXJuIG1hdGNoZXMgdGhlIGVuZCBvZiB0aGUgbGluZSwgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBsaW5lIHdhcwpoaWdobGlnaHRlZCBmb3IgJ2hsc2VhcmNoJy4gIFRoYXQgbG9va3Mgd3JvbmcgZm9yICIvXCUzYyIuICBOb3cgaGlnaGxpZ2h0IHRoZQpjaGFyYWN0ZXIganVzdCBhZnRlciB0aGUgbGluZS4KCk1vdGlmOiBJZiBhIGRpYWxvZyB3YXMgY2xvc2VkIGJ5IGNsaWNraW5nIG9uIHRoZSAiWCIgb2YgdGhlIHdpbmRvdyBmcmFtZSBWaW0Kd291bGQgbm8gbG9uZ2VyIHJlc3BvbmQuCgpXaGVuIHVzaW5nIENUUkwtWCBvciBDVFJMLUEgb24gYSBudW1iZXIgd2l0aCBtYW55IGxlYWRpbmcgemVyb3MsIFZpbSB3b3VsZApjcmFzaC4gKE1hdHN1bW90bykKCldoZW4gJ2luc2VydG1vZGUnIGlzIHNldCwgdGhlIG1hcHBpbmcgaW4gbXN3aW4udmltIGZvciBDVFJMLVYgZGlkbid0IHdvcmsgaW4KU2VsZWN0IG1vZGUuICBJbnNlcnQgbW9kZSB3YXNuJ3QgcmVzdGFydGVkIGFmdGVyIG92ZXJ3cml0aW5nIHRoZSB0ZXh0LgpOb3cgYWxsb3cgbmVzdGluZyBJbnNlcnQgbW9kZSB3aXRoIGluc2VydCBhbmQgY2hhbmdlIGNvbW1hbmRzLiAgQ1RSTC1PCmN3Zm9vPEVzYz4gbm93IGFsc28gd29ya3MuCgpDbGlja2luZyB3aXRoIHRoZSByaWdodCBtb3VzZSBidXR0b24gaW4gYW5vdGhlciB3aW5kb3cgc3RhcnRlZCBWaXN1YWwgbW9kZSwKYnV0IHVzZWQgdGhlIHN0YXJ0IHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IHdpbmRvdy4gIENhdXNlZCBtbF9nZXQgZXJyb3JzIHdoZW4KdGhlIGxpbmUgbnVtYmVyIHdhcyBpbnZhbGlkLiAgTm93IHN0YXkgaW4gdGhlIHNhbWUgd2luZG93LgoKV2hlbiAnc2VsZWN0aW9uJyBpcyAiZXhjbHVzaXZlIiwgImd2IiBzb21ldGltZXMgc2VsZWN0ZWQgb25lIGNoYXJhY3RlciBmZXdlci4KCldoZW4gJ2NvbW1lbnRzJyBjb250YWlucyBtb3JlIHRoYW4gb25lIHN0YXJ0L21pZGRsZS9lbmQgdHJpcGxldCwgdGhlIG9wdGlvbmFsCmZsYWdzIGNvdWxkIGJlIG1peGVkIHVwLiAgQWxzbyBkaWRuJ3QgYWxpZ24gdGhlIGVuZCB3aXRoIHRoZSBtaWRkbGUgcGFydC4KCkRvdWJsZS1yaWdodC1jbGljayBpbiBWaXN1YWwgbW9kZSBkaWRuJ3QgdXBkYXRlIHRoZSBzaG93biBtb2RlLgoKV2hlbiB0aGUgTm9ybWFsIGdyb3VwIGhhcyBhIGZvbnQgbmFtZSwgaXQgd2FzIG5ldmVyIHVzZWQgd2hlbiBzdGFydGluZyB1cC4KTm93IHVzZSBpdCB3aGVuICdndWlmb250JyBhbmQgJ2d1aWZvbnRzZXQnIGFyZSBlbXB0eS4KU2V0dGluZyBhIGZvbnQgbmFtZSB0byBhIGhpZ2hsaWdodCBncm91cCBiZWZvcmUgdGhlIEdVSSB3YXMgc3RhcnRlZCBkaWRuJ3QKd29yay4KCiJtYWtlIHRlc3QiIGRpZG4ndCB1c2UgdGhlIG5hbWUgb2YgdGhlIGdlbmVyYXRlZCBWaW0gZXhlY3V0YWJsZS4KCidjaW5kZW50JyBwcm9ibGVtczoKLSBBbGlnbmVkIHdpdGggYW4gImVsc2UiIGluc2lkZSBhIGRvLXdoaWxlIGxvb3AgZm9yIGEgbGluZSBiZWxvdyB0aGF0IGxvb3AuCiAgKE1laWtlbCBCcmFuZG1leWVyKQotIEEgbGluZSBiZWZvcmUgYSBmdW5jdGlvbiB3b3VsZCBiZSBpbmRlbnRlZCBldmVuIHdoZW4gdGVybWluYXRlZCB3aXRoIGEKICBzZW1pY29sb24uIChNZWlrZWwgQnJhbmRtZXllcikKLSAnY2luZGVudCcgZ2F2ZSB0b28gbXVjaCBpbmRlbnQgdG8gYSBsaW5lIGFmdGVyIGEgIn07IiB0aGF0IGVuZHMgYW4gYXJyYXkKICBpbml0LgotIFN1cHBvcnQgZGVjbGFyYXRpb24gbGluZXMgZW5kaW5nIGluICIsIiBhbmQgIlwiLiAgKE1laWtlbCBCcmFuZG1leWVyKQotIEEgY2FzZSBzdGF0ZW1lbnQgaW5zaWRlIGEgZG8td2hpbGUgbG9vcCB3YXMgdXNlZCBmb3IgaW5kZW50aW5nIGEgbGluZSBhZnRlcgogIHRoZSBkby13aGlsZSBsb29wLiAoTWVpa2VsIEJyYW5kbWV5ZXIpCi0gV2hlbiBza2lwcGluZyBhIHN0cmluZyBpbiBhIGxpbmUgd2l0aCBvbmUgZG91YmxlIHF1b3RlIGl0IGNvdWxkIGNvbnRpbnVlIGluCiAgdGhlIHByZXZpb3VzIGxpbmUuIChNZWlrZWwgQnJhbmRtZXllcikKCldoZW4gJ2xpc3QnIGlzIHNldCwgJ2hsc2VhcmNoJyBkaWRuJ3QgaGlnaGxpZ2h0IGEgbWF0Y2ggYXQgdGhlIGVuZCBvZiB0aGUKbGluZS4gIE5vdyBoaWdobGlnaHQgdGhlICckJy4KClRoZSBQYXN0ZSBtZW51IGl0ZW0gaW4gdGhlIG1lbnUgYmFyLCB0aGUgcG9wdXAgbWVudSBhbmQgdGhlIHRvb2xiYXIgd2VyZSBhbGwKZGlmZmVyZW50LiAgTm93IG1hZGUgdGhlbSBhbGwgZXF1YWwgdG8gaG93IGl0IHdhcyBkb25lIGluIG1zd2luLnZpbS4KCnN0X2RldiBjYW4gYmUgc21hbGxlciB0aGFuICJ1bnNpZ25lZCIuICBUaGUgY29tcGlsZXIgbWF5IGdpdmUgYW4gb3ZlcmZsb3cKd2FybmluZy4gIEFkZGVkIGEgY29uZmlndXJlIGNoZWNrIGZvciBkZXZfdC4KCkF0aGVuYTogY2xvc2luZyBhIGNvbmZpcm0oKSBkaWFsb2cga2lsbGVkIFZpbS4KClZhcmlvdXMgdHlwb3MgaW4gdGhlIGRvY3VtZW50YXRpb24uIChNYXR0IER1bmZvcmQpCgpQeXRob24gaW50ZXJmYWNlOiBUaGUgZGVmaW5pdGlvbiBvZiBfREVCVUcgY291bGQgY2F1c2UgdHJvdWJsZSwgdW5kZWZpbmUgaXQuClRoZSBlcnJvciBtZXNzYWdlIGZvciBub3QgYmVpbmcgYWJsZSB0byBsb2FkIHRoZSBzaGFyZWQgbGlicmFyeSB3YXNuJ3QKdHJhbnNsYXRlZC4gIChNdXJhb2thIFRhcm8pCgpNYWM6IChEYW55IFN0LUFtYW50IGFuZCBBeGVsIEtpZWxob3JuKQotIFNldmVyYWwgZml4ZXMuCi0gVmltIHdhcyBlYXRpbmcgODAlIG9mIHRoZSBDUFUgdGltZS4KLSBUaGUgcHJvamVjdCBvc19tYWMucGJ4cHJvaiBkaWRuJ3Qgd29yaywgIE1vdmVkIGl0IHRvIGEgc3ViZGlyZWN0b3J5LgotIE1hZGUgdGhlIG1lbnUgcHJpb3JpdHkgd29yayBmb3IgdGhlIG1lbnViYXIuCi0gRml4ZWQgYSBwcm9ibGVtIHdpdGggZHJhZ2dpbmcgdGhlIHNjcm9sbGJhci4KLSBDbGVhbmVkIHVwIHRoZSB2YXJpb3VzICNpZmRlZnMuCgpVbml4OiBXaGVuIGNhdGNoaW5nIGEgZGVhZGx5IHNpZ25hbCBhbmQgd2Uga2VlcCBnZXR0aW5nIG9uZSB1c2UgX2V4aXQoKSB0bwpleGl0IGluIGEgcXVpY2sgYW5kIGRpcnR5IHdheS4KCkF0aGVuYSBtZW51IG9yZGVyaW5nIGRpZG4ndCB3b3JrIGNvcnJlY3RseS4gKERhdmlkIEhhcnJpc29uKQoKQSAiOm1ha2UiIG9yICI6Z3JlcCIgY29tbWFuZCB3aXRoIGEgbG9uZyBhcmd1bWVudCBjb3VsZCBjYXVzZSBhIGNyYXNoLgoKRG9pbmcgIjpuZXcgZmlsZSIgYW5kIHVzaW5nICJRdWl0IiBmb3IgdGhlIEFUVEVOVElPTiBkaWFsb2cgc3RpbGwgb3BlbmVkIGEgbmV3CndpbmRvdy4KCkdUSzogV2hlbiBzdGFydGluZyB0aGUgR1VJIGFuZCB0aGVyZSBpcyBhbiBlcnJvciBpbiB0aGUgLnZpbXJjIGZpbGUsIGRvbid0CnByZXNlbnQgdGhlIHdhaXQtcmV0dXJuIHByb21wdCwgc2luY2UgdGhlIG1lc3NhZ2Ugd2FzIGdpdmVuIGluIHRoZSB0ZXJtaW5hbC4KCldoZW4gdGhlcmUgd2FzIGFuIGVycm9yIGluIGEgLnZpbXJjIGZpbGUgdGhlIHRlcm1pbmFsIHdoZXJlIGd2aW0gd2FzIHN0YXJ0ZWQKY291bGQgYmUgY2xlYXJlZC4gIFNldCBtc2dfcm93IGluIG1haW4uYyBiZWZvcmUgd3JpdGluZyBhbnkgbWVzc2FnZXMuCgpHVEsgYW5kIFgxMSBHVUk6IFdoZW4gdHJ5aW5nIHRvIHJlYWQgY2hhcmFjdGVycyBmcm9tIHRoZSB1c2VyIChlLmcuIHdpdGgKaW5wdXQoKSkgYmVmb3JlIHRoZSBWaW0gd2luZG93IHdhcyBvcGVuZWQgY2F1c2VkIFZpbSB0byBoYW5nIHdoZW4gaXQgd2FzCnN0YXJ0ZWQgZnJvbSB0aGUgZGVza3RvcC4KCk9TLzM5MCB1c2VzIDMxIGJpdCBwb2ludGVycy4gIFRoYXQgYnJva2Ugc29tZSBjb21wdXRhdGlvbnMgd2l0aCBNQVhfQ09MLgpSZWR1Y2UgTUFYX0NPTCBieSBvbmUgYml0IGZvciBPUy8zOTAuIChSYWxmIFNjaGFuZGwpCgpXaGVuIGRlZmluaW5nIGEgZnVuY3Rpb24gYW5kIGl0IGFscmVhZHkgZXhpc3RzLCBWaW0gZGlkbid0IHNheSBpdCBleGlzdGVkCnVudGlsIGFmdGVyIHR5cGluZyBpdC4gIE5vdyBkbyB0aGlzIHJpZ2h0IGF3YXkgd2hlbiB0eXBpbmcgaXQuCgpUaGUgbWVzc2FnZSByZW1lbWJlcmVkIGZvciBkaXNwbGF5aW5nIGxhdGVyIChrZWVwX21zZykgd2FzIHNvbWV0aW1lcyBwb2ludGluZwppbnRvIGEgZ2VuZXJpYyBidWZmZXIsIHdoaWNoIG1pZ2h0IGJlIGNoYW5nZWQgYnkgdGhlIHRpbWUgdGhlIG1lc3NhZ2UgaXMKZGlzcGxheWVkLiAgTm93IG1ha2UgYSBjb3B5IG9mIHRoZSBtZXNzYWdlLgoKV2hlbiB1c2luZyBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgaW4gYSBtZW51IGFuZCBhIHRyYWlsaW5nIGJ5dGUgaXMgYSBiYWNrc2xhc2gsCnRoZSBtZW51IHdvdWxkIG5vdCBiZSBjcmVhdGVkIGNvcnJlY3RseS4gIChNdXJhb2thIFRhcm8pClVzaW5nIGEgbXVsdGlieXRlIGNoYXJhY3RlciBpbiB0aGUgc3Vic3RpdHV0ZSBzdHJpbmcgd2hlcmUgYSB0cmFpbCBieXRlIGlzIGEKYmFja3NsYXNoIGRpZG4ndCB3b3JrLiAgKE11cmFva2EgVGFybykKCldoZW4gc2V0dGluZyAidF9DbyIgaW4gYSB2aW1yYyBmaWxlLCB0aGVuIHNldHRpbmcgaXQgYXV0b21hdGljYWxseSBmcm9tIGFuCnh0ZXJtIHRlcm1yZXNwb25zZSBhbmQgdGhlbiBzZXR0aW5nIGl0IGFnYWluIG1hbnVhbGx5IGNhdXNlZCBhIGNyYXNoLgoKV2hlbiBnZXR0aW5nIHRoZSB2YWx1ZSBvZiBhIHN0cmluZyBvcHRpb24gdGhhdCBpcyBub3Qgc3VwcG9ydGVkLCB0aGUgbnVtYmVyCnplcm8gd2FzIHJldHVybmVkLiAgVGhpcyBicmVha3MgYSBjaGVjayBsaWtlICImZW5jID09ICJhc2RmIi4gIE5vdyBhbiBlbXB0eQpzdHJpbmcgaXMgcmV0dXJuZWQgZm9yIHN0cmluZyBvcHRpb25zLgoKQ3Jhc2hlZCB3aGVuIHN0YXJ0aW5nIHRoZSBHVEsgR1VJIHdoaWxlIHVzaW5nICdub3RpdGxlJyBpbiB0aGUgdmltcmMsIHNldHRpbmcKJ3RpdGxlJyBpbiB0aGUgZ3ZpbXJjIGFuZCBzdGFydGluZyB0aGUgR1VJIHdpdGggIjpndWkiLiAgQ2xvc2VkIHRoZSBjb25uZWN0aW9uCnRvIHRoZSBYIHNlcnZlciBhY2NpZGVudGFsbHkuCgpIYWQgdG8gaGl0IHJldHVybiBhZnRlciBzZWxlY3RpbmcgYW4gZW50cnkgZm9yICI6dHMiLgoKVGhlIG1lc3NhZ2UgZnJvbSAiOmNuIiBtZXNzYWdlIHdhcyBzb21ldGltZXMgY2xlYXJlZC4gIE5vdyBkaXNwbGF5IGl0IGFmdGVyCnJlZHJhd2luZyBpZiBpdCBkb2Vzbid0IGNhdXNlIGEgc2Nyb2xsICh0cnVuY2F0ZWQgd2hlbiBuZWNlc3NhcnkpLgoKaGFuZ3VsaW4uYyBkaWRuJ3QgY29tcGlsZSB3aGVuIHRoZSBHVUkgd2FzIGRpc2FibGVkLiAgRGlzYWJsZSBpdCB3aGVuIGl0IHdvbid0CndvcmsuCgpXaGVuIHNldHRpbmcgYSB0ZXJtY2FwIG9wdGlvbiBsaWtlICJ0X0NPIiwgdGhlIHZhbHVlIGNvdWxkIGJlIGRpc3BsYXllZCBhcwpiZWluZyBmb3IgYSBub3JtYWwga2V5IHdpdGggYSBtb2RpZmllciwgbGlrZSAiPE0tPT4iLgoKV2hlbiBleHBhbmRpbmcgdGhlIGFyZ3VtZW50IGxpc3QsIGVudHJpZXMgd2hpY2ggYXJlIGEgZGlyZWN0b3J5IG5hbWUgZGlkIG5vdApnZXQgaW5jbHVkZWQuICBUaGlzIHN0b3BwZWQgInZpbSBjOi8iIGZyb20gb3BlbmluZyB0aGUgZmlsZSBleHBsb3Jlci4KCiI6c3luIG1hdGNoIHNkICJeIiBuZXh0Z3JvdXA9YXNkZiIgc2tpcHBlZCB0aGUgZmlyc3QgY29sdW1uIGFuZCBtYXRjaGVkIHRoZQpuZXh0Z3JvdXAgaW4gdGhlIHNlY29uZCBjb2x1bW4uCgpHVUk6IFdoZW4gJ2xhenlyZWRyYXcnIGlzIHNldCwgJ3Nob3dtYXRjaCcgZGlkbid0IHdvcmsuICBSZXF1aXJlZCBmbHVzaGluZwp0aGUgb3V0cHV0LgoKRG9uJ3QgZGVmaW5lIHRoZSA8TmV0TW91c2U+IHRlcm1jb2RlIGluIGFuIHh0ZXJtLCByZWR1Y2VzIHRoZSBwcm9ibGVtIHdoZW4Kc29tZW9uZSB0eXBlcyA8RXNjPiB9IGluIEluc2VydCBtb2RlLgoKTWFkZSBzbGFzaF9hZGp1c3QoKSB3b3JrIGNvcnJlY3RseSBmb3IgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLiAoWWFzdWhpcm8KTWF0c3Vtb3RvKQpVc2luZyBhIGZpbGVuYW1lIGluIEJpZzUgZW5jb2RpbmcgZm9yIGF1dG9jb21tYW5kcyBkaWRuJ3Qgd29yayAoYmFja3NsYXNoIGluCnRyYWlsYnl0ZSkuICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQoKRE9TIGFuZCBXaW5kb3dzOiBFeHBhbmRpbmcgKi52aW0gYWxzbyBtYXRjaGVkIGZpbGUudmltZm9vLiAgRXhwYW5kIHBhdGggbGlrZQpVbml4IHRvIGF2b2lkIHByb2JsZW1zIHdpdGggV2luZG93cyBkaXIgZnVuY3Rpb25zLiAgTWVyZ2VkIHRoZSBET1MgYW5kIFdpbjMyCmZ1bmN0aW9ucy4KCldpbjMyOiBHdmltZXh0IGNvdWxkIG5vdCBlZGl0IG1vcmUgdGhhbiBhIGZldyBmaWxlcyBhdCBvbmNlLCB0aGUgbGVuZ3RoIG9mIHRoZQphcmd1bWVudCB3YXMgZml4ZWQuCgoibHMgLTEgKiB8IHhhcmdzIHZpbSIgd29ya2VkLCBidXQgdGhlIGlucHV0IHdhcyBpbiBjb29rZWQgbW9kZS4gIE5vdyBzd2l0Y2ggdG8KcmF3IG1vZGUgd2hlbiBuZWVkZWQuICBVc2UgZHVwKCkgdG8gY29weSB0aGUgc3RkZXJyIGZpbGUgZGVzY3JpcHRvciB0byBzdGRpbgp0byBtYWtlIHNoZWxsIGNvbW1hbmRzIHdvcmsuICBObyBsb25nZXIgcmVxdWlyZXMgYW4gZXh0ZXJuYWwgcHJvZ3JhbSB0byBkbwp0aGlzLgoKV2hlbiB1c2luZyAiOmZpbGV0eXBlIG9mZiIsIGZ0cGx1Z2luIGFuZCBpbmRlbnQgdXNhZ2Ugd291bGQgYmUgc3dpdGNoZWQgb2ZmIGF0CnRoZSBzYW1lIHRpbWUuICBEb24ndCBkbyB0aGlzLCBzZXR0aW5nICdmaWxldHlwZScgbWFudWFsbHkgY2FuIHN0aWxsIHVzZSB0aGVtLgoKR1VJOiBXaGVuIHdyaXRpbmcgYSBkb3VibGUtYnl0ZSBjaGFyYWN0ZXIsIGl0IGNvdWxkIGJlIHNwbGl0IHVwIGluIHR3byBjYWxscwp0byBndWlfd3JpdGUoKSwgd2hpY2ggZG9lc24ndCB3b3JrLiAgTm93IGZsdXNoIGJlZm9yZSB0aGUgb3V0cHV0IGJ1ZmZlcgpiZWNvbWVzIGZ1bGwuCgpXaGVuICdsYXN0c3RhdHVzJyBpcyBzZXQgYW5kICdjbWRoZWlnaHQnIGlzIHR3byBvciBiaWdnZXIsIHRoZSBpbnRybyBtZXNzYWdlCndvdWxkIGJlIHdyaXR0ZW4gb3ZlciB0aGUgc3RhdHVzIGxpbmUuClRoZSAiOmludHJvIiBjb21tYW5kIGRpZG4ndCB3b3JrIHdoZW4gdGhlcmUgd2Fzbid0IGVub3VnaCByb29tLgoKQ29uZmlndXJpbmcgZm9yIFJ1YnkgZmFpbGVkIHdpdGggYSByZWNlbnQgdmVyc2lvbiBvZiBSdWJ5LiAoQWtpbm9yaSBNdXNoYSkKCkF0aGVuYTogV2hlbiBkZWxldGluZyB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIFZpbSB3YXMgc3RhcnRlZCwgdXNpbmcgdGhlIGZpbGUKYnJvd3NlciBtYWRlIFZpbSBleGl0LiAgUmVtb3ZlZCB0aGUgdXNlIG9mIFh0QXBwRXJyb3IoKS4KCldoZW4gdXNpbmcgYXV0b2NvbmYgMi41MCwgVU5JWCB3YXMgbm90IGRlZmluZWQuICBNb3ZlZCB0aGUgY29tbWVudCBmb3IgIiN1bmRlZgpVTklYIiB0byBhIHNlcGFyYXRlIGxpbmUuCgpXaW4zMjogRGlzYWJsZWQgX09uV2luZG93UG9zQ2hhbmdpbmcoKSB0byBtYWtlIG1heGltaXplIHdvcmsgYmV0dGVyLgoKV2luMzI6IENvbXBpbGluZyB3aXRoIFZDIDQuMCBkaWRuJ3Qgd29yay4gKFdhbHRlciBCcmlzY29lKQoKQXRoZW5hOgotIEZpbmFsbHkgZml4ZWQgdGhlIHByb2JsZW1zIHdpdGggZGVsZXRpbmcgYSBtZW51LiAoRGF2aWQgSGFycmlzb24pCi0gQXRoZW5hOiBXaGVuIGNsb3NpbmcgdGhlIGNvbmZpcm0oKSBkaWFsb2csIHdvcmtlZCBsaWtlIE9LIHdhcyBwcmVzc2VkLAogIGluc3RlYWQgb2YgQ2FuY2VsLgoKVGhlIGZpbGUgZXhwbG9yZXIgZGlkbid0IHdvcmsgaW4gY29tcGF0aWJsZSBtb2RlLCBiZWNhdXNlIG9mIGxpbmUKY29udGludWF0aW9uLgoKRGlkbid0IGdpdmUgYW4gZXJyb3IgbWVzc2FnZSBmb3IgIjpkaWdyYXBoIGEiLgoKV2hlbiB1c2luZyBFeCBtb2RlIGluIHRoZSBHVUkgYW5kIHR5cGluZyBhIHNwZWNpYWwga2V5LCA8QlM+IGRpZG4ndCBkZWxldGUgaXQKY29ycmVjdGx5LiAgTm93IGRpc3BsYXkgJz8nIGZvciBhIHNwZWNpYWwga2V5LgoKV2hlbiBhbiBvcGVyYXRvciBpcyBwZW5kaW5nLCBjbGlja2luZyBpbiBhbm90aGVyIHdpbmRvdyBtYWRlIGl0IGFwcGx5IHRvIHRoYXQKd2luZG93LCBldmVuIHRob3VnaCB0aGUgbGluZSBudW1iZXJzIGNvdWxkIGJlIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCgpXaGVuIGEgZnVuY3Rpb24gY2FsbCBkb2Vzbid0IGhhdmUgYSB0ZXJtaW5hdGluZyAiKSIgVmltIGNvdWxkIGNyYXNoLgoKUGVybCBpbnRlcmZhY2U6IGNvdWxkIGNyYXNoIG9uIGV4aXQgd2l0aCBwZXJsIDUuNi4xLiAoQW5kdWluIFdpdGhlcnMpCgpVc2luZyAlUCBpbiAnZXJyb3Jmb3JtYXQnIHdhc24ndCBoYW5kbGVkIGNvcnJlY3RseS4gKFRvbWFzIFplbGxlcmluKQoKVXNpbmcgYSBzeW50YXggY2x1c3RlciB0aGF0IGluY2x1ZGVzIGl0c2VsZiBtYWRlIFZpbSBjcmFzaC4KCkdVSTogV2l0aCAnbHMnIHNldCB0byAyLCBkcmFnZ2luZyB0aGUgc3RhdHVzIGxpbmUgYWxsIHRoZSB3YXkgdXAsIHRoZW4gbWFraW5nCnRoZSBWaW0gd2luZG93IHNtYWxsZXI6IENvdWxkIG5vdCB0aGUgZHJhZyBzdGF0dXMgbGluZSBhbnltb3JlLgoKInZpbSAtYyBzdGFydGluc2VydCEgZmlsZSIgcGxhY2VkIGN1cnNvciBvbiBsYXN0IGNoYXIgb2YgYSBsaW5lLCBpbnN0ZWFkIG9mCmFmdGVyIGl0LiAgQSAiOnNldCIgY29tbWFuZCBpbiB0aGUgYnVmZmVyIG1lbnUgc2V0IHdfc2V0X2N1cnN3YW50LiAgTm93IGRvbid0CmRvIHRoaXMgd2hlbiB3X2N1cnN3YW50IGlzIE1BWENPTC4KCldpbjMyOiBXaGVuIHRoZSBndmltIHdpbmRvdyB3YXMgbWF4aW1pemVkIGFuZCBzZWxlY3RpbmcgYW5vdGhlciBmb250LCB0aGUKd2luZG93IHdvdWxkIG5vIGxvbmdlciBmaWxsIHRoZSBzY3JlZW4uCgpUaGUgbGluZSB3aXRoICdwYXN0ZXRvZ2dsZScgaW4gIjpvcHRpb25zIiBkaWRuJ3Qgc2hvdyB0aGUgcmlnaHQgdmFsdWUgd2hlbiBpdAppcyBhIHNwZWNpYWwga2V5LiAgSGl0dGluZyA8Q1I+IGRpZG4ndCB3b3JrIGVpdGhlci4KCkZvcm1hdHRpbmcgdGV4dCwgcmVzdWx0aW5nIGluIGEgJSBsYW5kaW5nIGluIHRoZSBmaXJzdCBsaW5lLCByZXBlYXRlZCB0aGUgJSBpbgp0aGUgZm9sbG93aW5nIGxpbmVzLCBsaWtlIGl0J3MgdGhlIHN0YXJ0IG9mIGEgY29tbWVudC4KCkdUSzogV2hlbiBhZGRpbmcgYSB0b29sYmFyIGl0ZW0gd2hpbGUgZ3ZpbSBpcyBhbHJlYWR5IHJ1bm5pbmcsIGl0IHdhc24ndApwb3NzaWJsZSB0byB1c2UgdGhlIHRvb2x0aXAuICBOb3cgaXQgd29ya3MgYnkgYWRkaW5nIHRoZSB0b29sdGlwIGZpcnN0LgoKVGhlIG91dHB1dCBvZiAiZyBDVFJMLUciIG1lbnRpb25lZCAiQ2hhciIgYnV0IGl0J3MgYWN0dWFsbHkgYnl0ZXMuCgpTZWFyY2hpbmcgZm9yIHRoZSBlbmQgb2YgYSBvbmVsaW5lIHJlZ2lvbiBkaWRuJ3Qgd29yayBjb3JyZWN0bHkgd2hlbiB0aGVyZSBpcwphbiBvZmZzZXQgZm9yIHRoZSBoaWdobGlnaHRpbmcuCgpTeW50YXggaGlnaGxpZ2h0aW5nOiBXaGVuIHN5bmNocm9uaXppbmcgb24gQy1jb21tZW50cywgLy8qLyB3YXMgc2VlbiBhcyB0aGUKc3RhcnQgb2YgYSBjb21tZW50LgoKV2luMzI6IFdpdGhvdXQgc2Nyb2xsYmFycyBwcmVzZW50LCB0aGUgTVMgbW91c2Ugc2Nyb2xsIHdoZWVsIGRpZG4ndCB3b3JrLgpBbHNvIGhhbmRsZSB0aGUgc2Nyb2xsYmFycyB3aGVuIHRoZXkgYXJlIG5vdCB2aXNpYmxlLgoKTW90aWY6IFdoZW4gdGhlcmUgaXMgbm8gcmlnaHQgc2Nyb2xsYmFyLCB0aGUgYm90dG9tIHNjcm9sbGJhciB3b3VsZCBzdGlsbApsZWF2ZSByb29tIGZvciBpdC4gIChNYXJjaW4gRGFsZWNraSkKCldoZW4gY2hhbmdpbmcgJ2d1aWN1cnNvcicgYW5kIHRoZSB2YWx1ZSBpcyBpbnZhbGlkLCBzb21lIG9mIHRoZSBlZmZlY3RzIHdvdWxkCnN0aWxsIHRha2UgcGxhY2UuICBOb3cgZmlyc3QgY2hlY2sgZm9yIGVycm9ycyBhbmQgb25seSBtYWtlIHRoZSBuZXcgdmFsdWUKZWZmZWN0aXZlIHdoZW4gaXQncyBPSy4KClVzaW5nICJBIiBJbiBWaXN1YWwgYmxvY2sgbW9kZSwgYXBwZW5kaW5nIHRvIGxpbmVzIHRoYXQgZG9uJ3QgZXh0ZW5kIGludG8gdGhlCmJsb2NrLCBwYWRkaW5nIHdhcyB3cm9uZy4KCldoZW4gcGFzdGluZyBhIGJsb2NrIG9mIHRleHQsIGEgY2hhcmFjdGVyIHRoYXQgb2NjdXBpZXMgbW9yZSB0aGFuIG9uZSBzY3JlZW4KY29sdW1uIGNvdWxkIGJlIGRlbGV0ZWQgYW5kIHNwYWNlcyBpbnNlcnRlZCBpbnN0ZWFkLiAgTm93IG9ubHkgZG8gdGhhdCB3aXRoIGEKdGFiLgoKRml4ZWQgY29udmVyc2lvbiBvZiBkb2N1bWVudGF0aW9uIHRvIEhUTUwgdXNpbmcgUGVybC4gKERhbiBTaGFycCkKCkdpdmUgYW4gZXJyb3IgbWVzc2FnZSB3aGVuIGEgbWVudSBuYW1lIHN0YXJ0cyB3aXRoIGEgZG90LgoKQXZvaWQgYSBoYW5nIHdoZW4gZXhlY3V0aW5nIGEgc2hlbGwgZnJvbSB0aGUgR1VJIG9uIEhQLVVYIGJ5IHB1c2hpbmcgInB0ZW0iCmV2ZW4gd2hlbiBzeXMvcHRlbS5oIGlzbid0IHByZXNlbnQuCgpXaGVuIGNyZWF0aW5nIHRoZSB0ZW1wIGRpcmVjdG9yeSwgbWFrZSBzdXJlIHVtYXNrIGlzIDA3Nywgb3RoZXJ3aXNlIHRoZQpkaXJlY3RvcnkgaXMgbm90IGFjY2Vzc2libGUgd2hlbiBpdCB3YXMgc2V0IHRvIDAxNzcuCgpVbml4OiBXaGVuIHJlc2l6aW5nIHRoZSB3aW5kb3cgYW5kIGEgcmVkcmF3IGlzIGEgYml0IHNsb3csIGNvdWxkIGdldCBhIHdpbmRvdwpyZXNpemUgZXZlbnQgd2hpbGUgcmVkcmF3aW5nLCByZXN1bHRpbmcgaW4gYSBtZXNzZWQgdXAgd2luZG93LiAgQW55IGlucHV0CihlLmcuLCBhIG1vdXNlIGNsaWNrKSB3b3VsZCByZWRyYXcuCgpUaGUgIiVCIiBpdGVtIGluIHRoZSBzdGF0dXMgbGluZSBiZWNhbWUgemVybyBpbiBJbnNlcnQgbW9kZSAodGhhdCdzIG5vcm1hbCkKZm9yIGFub3RoZXIgdGhhbiB0aGUgY3VycmVudCB3aW5kb3cuCgpUaGUgbWVudSBlbnRyaWVzIHRvIGNvbnZlcnQgdG8geHhkIGFuZCBiYWNrIGRpZG4ndCB3b3JrIGluIEluc2VydCBtb2RlLgoKV2hlbiAiOnZnbG9iYWwiIGRpZG4ndCBmaW5kIGEgbGluZSB3aGVyZSB0aGUgcGF0dGVybiBkb2Vzbid0IG1hdGNoLCB0aGUgZXJyb3IKbWVzc2FnZSB3b3VsZCBiZSB0aGUgd3Jvbmcgd2F5IGFyb3VuZC4KCldoZW4gaWdub3JpbmcgYSBtdWx0aS1saW5lIGVycm9yIG1lc3NhZ2Ugd2l0aCAiJS1BIiwgdGhlIGNvbnRpbnVhdGlvbiBsaW5lcwp3b3VsZCBiZSB1c2VkIGFueXdheS4gKFNlcnZhdGl1cyBCcmFuZHQpCgoiZ3J4IiBvbiBhIGRvdWJsZS13aWRlIGNoYXJhY3RlciBpbnNlcnRlZCAieCIsIGluc3RlYWQgb2YgcmVwbGFjaW5nIHRoZQpjaGFyYWN0ZXIgd2l0aCAieCAiLiAgImdSIiBvbiA8eHg+ICgnZGlzcGxheScgc2V0IHRoZSAidWhleCIpIGRpZG4ndCByZXBsYWNlCmF0IGFsbC4gIFdoZW4gZG9pbmcgImdSeHgiIG9uIGEgY29udHJvbCBjaGFyYWN0ZXIgdGhlIGZpcnN0ICJ4IiB3b3VsZCBiZQppbnNlcnRlZCwgYnJlYWtpbmcgdGhlIGFsaWdubWVudC4KCkFkZGVkICIwKSIgdG8gJ2NpbmtleXMnLCBzbyB0aGF0IHdoZW4gdHlwaW5nIGEgKSBpdCBpcyBwdXQgaW4gdGhlIHNhbWUgcGxhY2UKYXMgd2hlcmUgIj09IiB3b3VsZCBwdXQgaXQuCgpXaW4zMjogV2hlbiBtYXhpbWl6ZWQsIGFkZGluZy9yZW1vdmluZyB0b29sYmFyIGRpZG4ndCByZXNpemUgdGhlIHRleHQgYXJlYS4KCldoZW4gdXNpbmcgPEMtUmlnaHRNb3VzZT4gYSBjb3VudCB3YXMgZGlzY2FyZGVkLgoKV2hlbiB0eXBpbmcgQ1RSTC1WIGFuZCA8UmlnaHRNb3VzZT4gaW4gdGhlIGNvbW1hbmQgbGluZSwgd291bGQgaW5zZXJ0CjxMZWZ0TW91c2U+LgoKVXNpbmcgInZpcyIgb3IgInZhcyIgd2hlbiAnc2VsZWN0aW9uJyBpcyBleGNsdXNpdmUgZGlkbid0IGluY2x1ZGUgdGhlIGxhc3QKY2hhcmFjdGVyLgoKV2hlbiBhZGRpbmcgdG8gYW4gb3B0aW9uIGxpa2UgJ2dyZXBwcmcnLCBsZWFkaW5nIHNwYWNlIHdvdWxkIGJlIGxvc3QuICBEb24ndApleHBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdoZW4gdGhlcmUgaXMgbm8gY29tbWEgc2VwYXJhdGluZyB0aGUgaXRlbXMuCgpHVUk6IFdoZW4gdXNpbmcgYSBib2xkLWl0YWxpYyBmb250LCB3b3VsZCBzdGlsbCB1c2UgdGhlIGJvbGQgdHJpY2sgYW5kCnVuZGVybGluaW5nLgoKTW90aWY6IFRoZSBkZWZhdWx0IGJ1dHRvbiBkaWRuJ3Qgd29yayBpbiBkaWFsb2dzLCB0aGUgZmlyc3Qgb25lIHdhcyBhbHdheXMKdXNlZC4gIEhhZCB0byBnaXZlIGlucHV0IGZvY3VzIHRvIHRoZSBkZWZhdWx0IGJ1dHRvbi4KCldoZW4gdXNpbmcgQ1RSTC1UIHRvIGp1bXAgd2l0aGluIHRoZSBzYW1lIGZpbGUsIHRoZSAnJyBtYXJrIHdhc24ndCBzZXQuCgpVbmRvIHdhc24ndCBWaSBjb21wYXRpYmxlIHdoZW4gdXNpbmcgdGhlICdjJyBmbGFnIGZvciAiOnMiLiAgTm93IGl0IHVuZG9lcyB0aGUKd2hvbGUgIjpzIiBjb21tYW5kIGluc3RlYWQgb2YgZWFjaCBjb25maXJtZWQgcmVwbGFjZW1lbnQuCgpUaGUgQnVmZmVycyBtZW51LCB3aGVuIHRvcm4tb2ZmLCBkaXNhcHBlYXJlZCB3aGVuIGJlaW5nIHJlZnJlc2hlZC4gIEFkZCBhCmR1bW15IGl0ZW0gdG8gYXZvaWQgdGhpcy4KClJlbW92ZWQgY2FsbGluZyBtc2dfc3RhcnQoKSBpbiBtYWluKCksIGl0IHNob3VsZCBub3QgYmUgbmVlZGVkLgoKdmltX3N0cnBicmsoKSBkaWQgbm90IHN1cHBvcnQgbXVsdGlieXRlIGNoYXJhY3RlcnMuIChNdXJhb2thIFRhcm8pCgpUaGUgQW1pZ2EgdmVyc2lvbiBkaWRuJ3QgY29tcGlsZSwgdGhlIGNvZGUgd2FzIHRvbyBiaWcgZm9yIHJlbGF0aXZlIGp1bXBzLgpNb3ZlZCBhIGZldyBmaWxlcyBmcm9tIGV4X2RvY21kLmMgdG8gZXhfY21kczIuYwoKV2hlbiBldmFsdWF0aW5nIHRoZSAiPSByZWdpc3RlciByZXN1bHRlZCBpbiB0aGUgIj0gcmVnaXN0ZXIgYmVpbmcgY2hhbmdlZCwgVmltCndvdWxkIGNyYXNoLgoKV2hlbiBkb2luZyAiOnZpZXcgZmlsZSIgYW5kIGl0IGZhaWxzLCB0aGUgY3VycmVudCBidWZmZXIgd2FzIG1hZGUgcmVhZC1vbmx5LgoKTW90aWY6IEZvciBzb21lIHBlb3BsZSB0aGUgc2VwYXJhdG9ycyBpbiB0aGUgdG9vbGJhciBkaXNhcHBlYXJlZCB3aGVuIHJlc2l6aW5nCnRoZSBWaW0gd2luZG93LiAoTWFyY2luIERhbGVja2kpCgpXaW4zMiBHVUk6IHdoZW4gc2V0dGluZyAnbGluZXMnIHRvIGEgaHVnZSBudW1iZXIsIHdvdWxkIG5vdCBjb21wdXRlIHRoZQphdmFpbGFibGUgc3BhY2UgY29ycmVjdGx5LiAgV2FzIGNvdW50aW5nIHRoZSBtZW51IGhlaWdodCB0d2ljZS4KCkNvbnZlcnNpb24gb2YgdGhlIGRvY3MgdG8gSFRNTCBkaWRuJ3QgaGFuZGxlIHRoZSBsaW5lIHdpdGggdGhlICtxdWlja2ZpeCB0YWcKY29ycmVjdGx5LiAoQW50b25pbyBDb2xvbWJvKQoKV2luMzI6IGZuYW1lX2Nhc2UoKSBkaWRuJ3QgaGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBjb3JyZWN0bHkuIChZYXN1aGlybwpNYXRzdW1vdG8pCgpUaGUgQ3lnd2luIHZlcnNpb24gaGFkIHRyb3VibGUgd2l0aCBmY2hkaXIoKS4gIERvbid0IHVzZSB0aGF0IGZ1bmN0aW9uIGZvcgpDeWd3aW4uCgpUaGUgZ2VuZXJpYyBjaGVjayBpbiBzY3JpcHRzLnZpbSBmb3IgImNvbmYiIHN5bnRheCB3YXMgZG9uZSBiZWZvcmUgc29tZSBjaGVja3MKaW4gZmlsZXR5cGUudmltLCByZXN1bHRpbmcgaW4gImNvbmYiIHN5bnRheCB0b28gb2Z0ZW4uCgpEb3MzMjogVHlwaW5nIGxhZ2dlZCBiZWhpbmQuICBXb3VsZCB3YWl0IGZvciBvbmUgYmlvc3RpY2sgd2hlbiBjaGVja2luZyBpZiBhCmNoYXJhY3RlciBpcyBhdmFpbGFibGUuCgpHVEs6IFdoZW4gc2V0dGluZyAnY29sdW1ucycgd2hpbGUgc3RhcnRpbmcgdXAgImd2aW0iLCB3b3VsZCBzZXQgdGhlIHdpZHRoIG9mCnRoZSB0ZXJtaW5hbCBpdCB3YXMgc3RhcnRlZCBpbi4KCldoZW4gdXNpbmcgRVNDIGluIEluc2VydCBtb2RlLCBhbiBhdXRvaW5kZW50IHRoYXQgd3JhcHMgdG8gdGhlIG5leHQgbGluZQpjYXVzZWQgdGhlIGN1cnNvciB0byBtb3ZlIHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUgdGVtcG9yYXJpbHkuICBXaGVuIHRoZQpjaGFyYWN0ZXIgYmVmb3JlIHRoZSBjdXJzb3Igd2FzIGEgZG91YmxlLXdpZGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgdGhlIGN1cnNvcgp3b3VsZCBiZSBvbiB0aGUgcmlnaHQgaGFsdmUsIHdoaWNoIGNhdXNlcyBwcm9ibGVtcyB3aXRoIHNvbWUgdGVybWluYWxzLgoKRGlkbid0IGhhbmRsZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgY29ycmVjdGx5IHdoZW4gZXhwYW5kaW5nIGEgZmlsZSBuYW1lLgooWWFzdWhpcm8gTWF0c3Vtb3RvKQoKV2luMzIgR1VJOiBFcnJvcnMgZ2VuZXJhdGVkIGJlZm9yZSB0aGUgR1VJIGlzIGRlY2lkZWQgdG8gc3RhcnQgd2VyZSBub3QKcmVwb3J0ZWQuCgpnbG9icGF0aCgpIGRpZG4ndCByZXNlcnZlIGVub3VnaCByb29tIGZvciBjb25jYXRlbmF0ZWQgcmVzdWx0cy4gKEFuZHVpbgpXaXRoZXJzKQoKV2hlbiBleHBhbmRpbmcgYW4gb3B0aW9uIHRoYXQgaXMgdmVyeSBsb25nIGFscmVhZHksIGRvbid0IGRvIHRoZSBleHBhbnNpb24sIGl0CndvdWxkIGJlIHRydW5jYXRlZCB0byBNQVhQQVRITC4gKEFuZHVpbiBXaXRoZXJzKQoKV2hlbiAnc2VsZWN0aW9uJyBpcyAiZXhjbHVzaXZlIiwgdXNpbmcgIkZ4IiBpbiBWaXN1YWwgbW9kZSBvbmx5IG1vdmVkIHVudGlsCmp1c3QgYWZ0ZXIgdGhlIGNoYXJhY3Rlci4KCldoZW4gdXNpbmcgSU1FIG9uIHRoZSBjb25zb2xlIHRvIGVudGVyIGEgZmlsZSBuYW1lLCB0aGUgc2NyZWVuIG1heSBzY3JvbGwgdXAuClJlZHJhdyB0aGUgc2NyZWVuIHRoZW4uIChZYXN1aGlybyBNYXRzdW1vdG8pCgpNb3RpZjogSW4gdGhlIGZpbmQvcmVwbGFjZSBkaWFsb2cgdGhlICJSZXBsYWNlIiBidXR0b24gZGlkbid0IHdvcmsgZmlyc3QgdGltZSwKc2Vjb25kIHRpbWUgaXQgcmVwbGFjZWQgYWxsIG1hdGNoZXMuICBSZW1vdmVkIHRoZSB1c2Ugb2YgIjpzLy8vYyIuCkdUSzogU2ltaWxhciBwcm9ibGVtcyB3aXRoIHRoZSBmaW5kL3JlcGxhY2UgZGlhbG9nLCBtb3ZlZCB0aGUgY29kZSB0byBhIGNvbW1vbgpmdW5jdGlvbi4KClgxMTogVXNlIHNoYXJlZCBHQydzIGZvciB0ZXh0LiAoTWFyY2luIERhbGVja2kpCgoiXWkiIGZvdW5kIHRoZSBtYXRjaCB1bmRlciB0aGUgY3Vyc29yLCBpbnN0ZWFkIG9mIHRoZSBmaXJzdCBvbmUgYmVsb3cgaXQuClNhbWUgZm9yICJdSSIsICJdIENUUkwtSSIsICJdZCIsICJdRCIgYW5kICJdIENUUkwtRCIuCgpXaW4xNjogV2hlbiBtYXhpbWl6ZWQgYW5kIHRoZSBmb250IGlzIGNoYW5nZWQsIGRvbid0IGNoYW5nZSB0aGUgd2luZG93IHNpemUuCihWaW5jZSBOZWdyaSkKCldoZW4gJ2xicicgaXMgc2V0LCBkZWxldGluZyBhIGJsb2NrIG9mIHRleHQgY291bGQgbGVhdmUgdGhlIGN1cnNvciBpbiB0aGUKd3JvbmcgcG9zaXRpb24uCgpXaW4zMjogV2hlbiBvcGVuaW5nIGEgZmlsZSB3aXRoIHRoZSAiRWRpdCB3aXRoIFZpbSIgcG9wdXAgbWVudSBlbnRyeSwKd2lsZGNhcmRzIHdvdWxkIGNhdXNlIHRyb3VibGUuICBBZGRlZCB0aGUgIi0tbGl0ZXJhbCIgYXJndW1lbnQgdG8gYXZvaWQKZXhwYW5kaW5nIGZpbGUgbmFtZXMuCgpXaGVuIHVzaW5nICJndiIsIGl0IGRpZG4ndCByZXN0b3JlIHRoYXQgIiQiIHdhcyB1c2VkIGluIFZpc3VhbCBibG9jayBtb2RlLgoKV2luMzIgR1VJOiBXaGlsZSB3YWl0aW5nIGZvciBhIHNoZWxsIGNvbW1hbmQgdG8gZmluaXNoLCB0aGUgd2luZG93IHdhc24ndApyZWRyYXduIGF0IGFsbC4gKFlhc3VoaXJvIE1hdHN1bW90bykKClN5bnRheCBoaWdobGlnaHRpbmc6IEEgbWF0Y2ggdGhhdCBjb250aW51ZXMgb24gYSBuZXh0IGxpbmUgYmVjYXVzZSBvZiBhCmNvbnRhaW5lZCByZWdpb24gZGlkbid0IGVuZCB3aGVuIHRoYXQgcmVnaW9uIGVuZGVkLgoKVGhlICI6cyIgY29tbWFuZCBkaWRuJ3QgYWxsb3cgZmxhZ3MgbGlrZSAnZScgYW5kICdpJyByaWdodCBhZnRlciBpdC4KCldoZW4gdXNpbmcgIjpzIiB0byBzcGxpdCBhIGxpbmUsIG1hcmtzIHdlcmUgbW92ZWQgdG8gdGhlIG5leHQgbGluZS4gIFZpIGtlZXBzCnRoZW0gaW4gdGhlIGZpcnN0IGxpbmUuCgpXaGVuIHVzaW5nICI6biIgIjpyZXciLCB0aGUgcHJldmlvdXMgY29udGV4dCBtYXJrIHdhcyBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLAp3aGlsZSBWaSBwdXRzIGl0IGluIHRoZSBzYW1lIHBsYWNlIGFzIHRoZSBjdXJzb3IuICBNYWRlIGl0IFZpIGNvbXBhdGlibGUuCgpGaXhlZCBWaSBpbmNvbXBhdGliaWxpdHk6IFRleHQgd2FzIG5vdCBwdXQgaW4gcmVnaXN0ZXIgMSB3aGVuIHVzaW5nICJjIiBhbmQKImQiIHdpdGggYSBtb3Rpb24gY2hhcmFjdGVyLCB3aGVuIGRlbGV0aW5nIHdpdGhpbiBvbmUgbGluZSB3aXRoIG9uZSBvZiB0aGUKY29tbWFuZHM6ICUgKCApIGA8Y2hhcmFjdGVyPiAvID8gTiBuIHsgfQoKV2luMzIgR1VJOiBUaGUgdG9vbHRpcCBmb3IgdGVhci1vZmYgaXRlbXMgcmVtYWluZWQgd2hlbiB0aGUgdGVhci1vZmYgaXRlbSB3YXMKbm8gbG9uZ2VyIHNlbGVjdGVkLgoKR1VJOiBXaGVuIHR5cGluZyAiOiIgYXQgdGhlIG1vcmUgcHJvbXB0LCB3b3VsZCByZXR1cm4gdG8gTm9ybWFsIG1vZGUgYW5kIG5vdApyZWRyYXcgdGhlIHNjcmVlbi4KCldoZW4gc3RhcnRpbmcgVmltIHdpdGggYW4gYXJndW1lbnQgIi1jIGcvYXQvcCIgdGhlIHByaW50ZWQgbGluZXMgd291bGQKb3ZlcndyaXRlIGVhY2ggb3RoZXIuCgpCZU9TOiBEaWRuJ3QgY29tcGlsZS4gIENvbmZpZ3VyZSBkaWRuJ3QgYWRkIHRoZSBvc19iZW9zIGZpbGVzLCB0aGUgUU5YIGNoZWNrCnJlbW92ZWQgdGhlbS4gIFZhcmlvdXMgY2hhbmdlcyB0byBvc19iZW9zLmNjLiAoSm9zaHVhIEhhYmVybWFuKQpSZW1vdmVkIHRoZSBjaGVjayBmb3IgdGhlIGhhcmR3YXJlIHBsYXRmb3JtLCB0aGUgQmVCb3ggaGFzIG5vdCBiZWVuIHByb2R1Y2VkCmZvciBhIGxvbmcgdGltZSBub3cuCgpXaW4zMiBHVUk6IGRvbid0IHVzZSBhIG1lc3NhZ2UgYm94IHdoZW4gdGhlIHNoZWxsIHJldHVybnMgYW4gZXJyb3IgY29kZSwKZGlzcGxheSB0aGUgbWVzc2FnZSBpbiB0aGUgVmltIHdpbmRvdy4KCk1ha2VfbXZjLm1hayBhbHdheXMgaW5jbHVkZWQgIi9kZWJ1ZyIgZm9yIGxpbmtpbmcuICAiR1VJPW5vIiBhcmd1bWVudCBkaWRuJ3QKd29yay4gIFVzZSAiREVCVUc9eWVzIiBpbnN0ZWFkIG9mICJERUJVRz0xIiB0byBtYWtlIGl0IGNvbnNpc3RlbnQuIChEYW4gU2hhcnApCgpXaGVuIGEgbGluZSBpbiB0aGUgdGFncyBmaWxlIGVuZGVkIGluIDsiIChubyBUQUIgZm9sbG93aW5nKSB0aGUgY29tbWFuZCB3b3VsZApub3QgYmUgcmVjb2duaXplZCBhcyBhIHNlYXJjaCBjb21tYW5kLgoKWDExOiBUaGUgaW5wdXRNZXRob2QgcmVzb3VyY2UgbmV2ZXIgd29ya2VkLiAgRG9uJ3QgdXNlIHRoZSAibm9uZSIgaW5wdXQgbWV0aG9kCmZvciBTR0ksIGl0IGFwcGFyZW50bHkgbWFrZXMgdGhlIGZpcnN0IGNoYXJhY3RlciBpbiBJbnB1dCBtZXRob2QgZHJvcHBlZC4KCkZpeGVkIGluY29ycmVjdCB0ZXN0cyBpbiBvc19tYWMuaC4gKEF4ZWwgS2llbGhvcm4pCgpXaW4zMiBjb25zb2xlOiBXaGVuIHRoZSBjb25zb2xlIHdoZXJlIFZpbSBydW5zIGluIGlzIGNsb3NlZCwgVmltIGNvdWxkIGhhbmcgaW4KdHJ5aW5nIHRvIHJlc3RvcmUgdGhlIHdpbmRvdyBpY29uLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQoKV2hlbiB1c2luZyAiOjNjYWxsIGZ1bmMoKSIgb3IgIjozLDNjYWxsIGZ1bmMoKSB0aGUgbGluZSBudW1iZXIgd2FzIGlnbm9yZWQuCgpXaGVuICdzaG93YnJlYWsnIGFuZCAnbGluZWJyZWFrJyB3ZXJlIGJvdGggc2V0LCBWaXN1YWwgaGlnaGxpZ2h0aW5nIHNvbWV0aW1lcwpjb250aW51ZWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgbGluZS4KCkdUSyBHVUk6IFRlYXJvZmYgaXRlbXMgd2VyZSBhZGRlZCBldmVuIHdoZW4gJ2d1aW9wdGlvbnMnIGRpZG4ndCBjb250YWluICd0Jwp3aGVuIHN0YXJ0aW5nIHVwLgoKTVMtV2luZG93czogV2hlbiB0aGUgY3VycmVudCBkaXJlY3RvcnkgaW5jbHVkZXMgYSAifiIsIHNlYXJjaGluZyBmaWxlcyB3aXRoCiJnZiIgb3IgIjpmaW5kIiBkaWRuJ3Qgd29yay4gIEEgIiQiIGluIHRoZSBkaXJlY3RvcnkgaGFkIHRoZSBzYW1lIHByb2JsZW0uCkFkZGVkIG1jaF9oYXNfZXhwX3dpbGRjYXJkKCkgZnVuY3Rpb25zLgoKV2hlbiByZWR1Y2luZyB0aGUgVmltIHdpbmRvdyBoZWlnaHQgd2hpbGUgc3RhcnRpbmcgdXAsIHdvdWxkIGdldCBhbgpvdXQtb2YtbWVtb3J5IGVycm9yIG1lc3NhZ2UuCgpXaGVuIGVkaXRpbmcgYSB2ZXJ5IGxvbmcgc2VhcmNoIHBhdHRlcm4sICdpbmNzZWFyY2gnIGNhdXNlZCB0aGUgcmVkcmF3IG9mIHRoZQpjb21tYW5kIGxpbmUgdG8gZmFpbC4KCk1vdGlmIEdVSTogT24gc29tZSBzeXN0ZW1zIHRoZSAiSGVscCIgbWVudSB3b3VsZCBub3QgYmUgb24gdGhlIGZhciByaWdodCwgYXMKaXQgc2hvdWxkIGJlLiAgT24gc29tZSBvdGhlciBzeXN0ZW1zIChlc3AuIElSSVgpIHRoZSBjb21tYW5kIGxpbmUgd291bGQgbm90CmNvbXBsZXRlbHkgc2hvdy4gIFNvbHV0aW9uIGlzIHRvIG9ubHkgcmVzaXplIHRoZSBtZW51YmFyIGZvciBMZXNzdGlmLgoKVXNpbmcgIiUiIGluIGEgbGluZSB0aGF0IGNvbnRhaW5zICJcXCIgdHdpY2UgZGlkbid0IHRha2UgY2FyZSBvZiB0aGUgcXVvdGVzCnByb3Blcmx5LiAgTm93IG1ha2UgYSBkaWZmZXJlbmNlIGJldHdlZW4gXCIgYW5kIFxcIi4KCkZvciBub24tVW5peCBzeXN0ZW1zIGEgZHVtbXkgZmlsZSBpcyBjcmVhdGVkIHdoZW4gZmluZGluZyBhIHN3YXAgbmFtZSB0bwpkZXRlY3QgYSA4LjMgZmlsZXN5c3RlbS4gIFdoZW4gdGhlcmUgaXMgYW4gZXhpc3Rpbmcgc3dhcCBmaWxlLCB3b3VsZCBnZXQgYQp3YXJuaW5nIGZvciB0aGUgZmlsZSBiZWluZyBjcmVhdGVkIG91dHNpZGUgb2YgVmltLiAgQWxzbywgd2hlbiBjbG9zaW5nIHRoZSBWaW0Kd2luZG93IHRoZSBmaWxlIHdvdWxkIHJlbWFpbi4KCk1vdGlmOiBUaGUgbWVudSBoZWlnaHQgd2FzIGFsd2F5cyBjb21wdXRlZCwgdXNpbmcgYSAiLW1lbnVoZWlnaHQiIGFyZ3VtZW50CndhcyBzZXR0aW5nIHRoZSByb29tIGZvciB0aGUgY29tbWFuZCBsaW5lLiAgTm93IG1ha2UgY2xlYXIgdGhlIGFyZ3VtZW50IGlzIG5vdApzdXBwb3J0ZWQuCgpGb3Igc29tZSAoRUJDRElDKSBzeXN0ZW1zLCBQT1VORCB3YXMgZXF1YWwgdG8gJyMnLiAgQWRkZWQgYW4gI2lmIGZvciB0aGF0IHRvCmF2b2lkIGEgZHVwbGljYXRlIGNhc2UgaW4gYSBzd2l0Y2guCgpUaGUgR1VJIG1heSBoYXZlIHByb2JsZW1zIHdoZW4gZm9ya2luZy4gIEFsd2F5cyBjYWxsIF9leGl0KCkgaW5zdGVhZCBvZiBleGl0KCkKaW4gdGhlIHBhcmVudCwgdGhlIGNoaWxkIHdpbGwgY2FsbCBleGl0KCkuCgpXaW4zMiBHVUk6IEFjY2VudGVkIGNoYXJhY3RlcnMgd2VyZSBvZnRlbiB3cm9uZyBpbiBkaWFsb2dzIGFuZCB0ZWFyb2ZmIG1lbnVzLgpOb3cgdXNlIENQX0FDUCBpbnN0ZWFkIG9mIENQX09FTUNQLiAoVmluY2UgTmVncmkpCgpXaGVuIGRpc3BsYXlpbmcgdGV4dCB3aXRoIHN5bnRheCBoaWdobGlnaHRpbmcgY2F1c2VzIGFuIGVycm9yIChlLmcuLCBydW5uaW5nCm91dCBvZiBzdGFjaykgdGhlIHN5bnRheCBoaWdobGlnaHRpbmcgaXMgZGlzYWJsZWQgdG8gYXZvaWQgZnVydGhlciBtZXNzYWdlcy4KCldoZW4gYSBjb21tYW5kIGluIGEgLnZpbXJjIG9yIC5ndmltcmMgY2F1c2VzIGFuIEFUVEVOVElPTiBwcm9tcHQsIGFuZCBWaW0gd2FzCnN0YXJ0ZWQgZnJvbSB0aGUgZGVza3RvcCAobm8gcGxhY2UgdG8gZGlzcGxheSBtZXNzYWdlcykgaXQgd291bGQgaGFuZy4gIE5vdwpvcGVuIHRoZSBHVUkgd2luZG93IGVhcmx5IHRvIGJlIGFibGUgdG8gZGlzcGxheSB0aGUgbWVzc2FnZXMgYW5kIHBvcCB1cCB0aGUKZGlhbG9nLgoKInI8Q1I+IiBvbiBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyIGRlbGV0ZWQgb25seSB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUKY2hhcmFjdGVyLiAgIjNyPENSPiIgZGVsZXRlZCB0aHJlZSBieXRlcyBpbnN0ZWFkIG9mIHRocmVlIGNoYXJhY3RlcnMuCgpXaGVuIGludGVycnVwdGluZyByZWFkaW5nIGEgZmlsZSwgVmkgY29uc2lkZXJzIHRoZSBidWZmZXIgbW9kaWZpZWQuICBBZGRlZCB0aGUKJ2knIGZsYWcgaW4gJ2Nwb3B0aW9ucycgZmxhZyBmb3IgdGhpcyAod2UgZG9uJ3Qgd2FudCBpdCBtb2RpZmllZCB0byBiZSBhYmxlIHRvCmRvICI6cSIpLgoKV2hlbiB1c2luZyBhbiBpdGVtIGluICdndWljdXJzb3InIHRoYXQgc3RhcnRzIHdpdGggYSBjb2xvbiwgVmltIHdvdWxkIGdldApzdHVjayBvciBjcmFzaC4KCldoZW4gcHV0dGluZyBhIGZpbGUgbWFyayBpbiBhIGhlbHAgZmlsZSBhbmQgbGF0ZXIganVtcGluZyBiYWNrIHRvIGl0LCB0aGUKb3B0aW9ucyB3b3VsZCBub3QgYmUgc2V0LiAgRXh0ZW5kZWQgdGhlIG1vZGVsaW5lIGluIGFsbCBoZWxwIGZpbGVzIHRvIG1ha2UKdGhpcyB3b3JrIGJldHRlci4KCldoZW4gYSBtb2RlbGluZSBjb250YWluZWQgIjo6IiB0aGUgbG9jYWwgb3B0aW9uIHZhbHVlcyB3b3VsZCBiZSBwcmludGVkLiAgTm93Cmlnbm9yZSBpdC4KClNvbWUgaGVscCBmaWxlcyBkaWQgbm90IHVzZSBhIDguMyBuYW1lcywgd2hpY2ggY2F1c2VzIHByb2JsZW1zIHdoZW4gdXNpbmcKTVMtRE9TIHVuemlwLiAgUmVuYW1lZCAibXVsdGlieXRlLnR4dCIgdG8gIm1ieXRlLnR4dCIsICJyaWdodGxlZnQudHh0IiB0bwoicmlsZWZ0LnR4dCIsICJ0YWdzZWFyY2gudHh0IiB0byAidGFnc3JjaC50eHQiLCAib3NfcmlzY29zLnR4dCIgdG8KIm9zX3Jpc2MudHh0Ii4KCldoZW4gVmlzdWFsIG1vZGUgaXMgYmxvY2t3aXNlLCB1c2luZyAiaXciIG9yICJhdyIgbWFkZSBpdCBjaGFyYWN0ZXJ3aXNlLiAgVGhhdApkb2Vzbid0IHNlZW0gcmlnaHQsIG9ubHkgZG8gdGhpcyB3aGVuIGluIGxpbmV3aXNlIG1vZGUuICBCdXQgdGhlbiBkbyBpdAphbHdheXMsIG5vdCBvbmx5IHdoZW4gc3RhcnQgYW5kIGVuZCBvZiBWaXN1YWwgbW9kZSBhcmUgZXF1YWwuCgpXaGVuIHVzaW5nICJ2aXciIG9uIGEgc2luZ2xlLWxldHRlciB3b3JkIGFuZCAnc2VsZWN0aW9uJyBpcyBleGNsdXNpdmUsIHdvdWxkCm5vdCBpbmNsdWRlIHRoZSB3b3JkLgoKV2hlbiBmb3JtYXR0aW5nIHRleHQgZnJvbSBJbnNlcnQgbW9kZSwgdXNpbmcgQ1RSTC1PLCBjb3VsZCBtZXNzIHVwIHVuZG8KaW5mb3JtYXRpb24uCgpXaGlsZSB3cml0aW5nIGEgZmlsZSAoYWxzbyBmb3IgdGhlIGJhY2t1cCBmaWxlKSB0aGVyZSB3YXMgbm8gY2hlY2sgZm9yIGFuCmludGVycnVwdCAoaGl0dGluZyBDVFJMLUMpLiAgVmltIGNvdWxkIGhhbmcgd2hlbiB3cml0aW5nIGEgbGFyZ2UgZmlsZSBvdmVyIGEKc2xvdyBuZXR3b3JrLCBhbmQgbW92aW5nIHRoZSBtb3VzZSBkaWRuJ3QgbWFrZSBpdCBhcHBlYXIgKHdoZW4gJ21vdXNlaGlkZScgaXMKc2V0KSBhbmQgdGhlIHNjcmVlbiB3YXNuJ3QgdXBkYXRlZCBpbiB0aGUgR1VJLiAgQWxzbyBhbGxvdyBpbnRlcnJ1cHRpbmcgd2hlbgpzeW5jaW5nIHRoZSBzd2FwIGZpbGUsIGl0IGNhbiB0YWtlIGEgbG9uZyB0aW1lLgoKV2hlbiB1c2luZyAiOm1rc2Vzc2lvbiIgd2hpbGUgdGhlcmUgaXMgaGVscCB3aW5kb3csIGl0IHdvdWxkIGxhdGVyIGJlIHJlc3RvcmVkCnRvIHRoZSByaWdodCBmaWxlIGJ1dCBub3QgbWFya2VkIGFzIGEgaGVscCBidWZmZXIuICAiOmhlbHAiIHdvdWxkIHRoZW4gb3Blbgphbm90aGVyIHdpbmRvdy4gIE5vdyB1c2UgdGhlIHZhbHVlICJoZWxwIiBmb3IgJ2J1ZnR5cGUnIHRvIG1hcmsgYSBoZWxwIGJ1ZmZlci4KClRoZSBzZXNzaW9uIGZpbGUgY29udGFpbmVkIGFic29sdXRlIHBhdGggbmFtZXMgaW4gb3B0aW9uIHZhbHVlcywgdGhhdCBkb2Vzbid0Cndvcmsgd2hlbiB0aGUgaG9tZSBkaXJlY3RvcnkgZGVwZW5kcyBvbiB0aGUgc2l0dWF0aW9uLiAgUmVwbGFjZSB0aGUgaG9tZQpkaXJlY3Rvcnkgd2l0aCB+LyB3aGVuIHBvc3NpYmxlLgoKV2hlbiB1c2luZyAnc2hvd2JyZWFrJyBhIFRBQiBqdXN0IGFmdGVyIHRoZSBzaG93biBicmVhayB3b3VsZCBub3QgYmUgY291bnRlZApjb3JyZWN0bHksIHRoZSBjdXJzb3Igd291bGQgYmUgcG9zaXRpb25lZCB3cm9uZy4KCldpdGggJ3Nob3dicmVhaycgc2V0IHRvICItLS0+IiBvciAiLS0tLS0tLT4iIGFuZCAnc3RzJyBzZXQgdG8gNCwgaW5zZXJ0aW5nCnRhYnMgZGlkIG5vdCB3b3JrIHJpZ2h0LiAgQ291bGQgY2F1c2UgYSBjcmFzaC4gIEJhY2tzcGFjaW5nIHdhcyBhbHNvIHdyb25nLApjb3VsZCBnZXQgc3R1Y2sgYXQgYSBsaW5lIGJyZWFrLgoKV2luMzI6IGNyYXNoZWQgd2hlbiB0ZWFyaW5nIG9mZiBhIG1lbnUgd2l0aCBvdmVyIDMwMCBpdGVtcy4KCkdVSTogQSBtZW51IG9yIHRvb2xiYXIgaXRlbSB3b3VsZCBhcHBlYXIgd2hlbiBvbmx5IGEgdG9vbHRpcCB3YXMgZGVmaW5lZCBmb3IKaXQuCgpXaGVuICdzY3JvbGxvZmYnIGlzIG5vbi16ZXJvIGFuZCAiJCIgaXMgaW4gJ2Nwb3B0aW9ucycsIHVzaW5nICJzIiB3aGlsZSB0aGUKbGFzdCBsaW5lIG9mIHRoZSBmaWxlIGlzIHRoZSBmaXJzdCBsaW5lIG9uIHNjcmVlbiwgdGhlIHRleHQgd2Fzbid0IGRpc3BsYXllZC4KCldoZW4gcnVubmluZyAiYXV0b2NvbmYiLCBkZWxldGUgdGhlIGNvbmZpZ3VyZSBjYWNoZSB0byBmb3JjZSBzdGFydGluZyBjbGVhbmx5CndoZW4gY29uZmlndXJlIGlzIHJ1biBhZ2Fpbi4KCldoZW4gY2hhbmdpbmcgdGhlIE5vcm1hbCBjb2xvcnMgZm9yIGN0ZXJtLCB0aGUgdmFsdWUgb2YgJ2JhY2tncm91bmQnIHdhcwpjaGFuZ2VkIGV2ZW4gd2hlbiB0aGUgR1VJIHdhcyB1c2VkLgoKVGhlIHdhcm5pbmcgZm9yIGEgbWlzc2luZyB2aW1ydW4uZXhlIHdhcyBhbHdheXMgZ2l2ZW4gb24gc3RhcnR1cCwgYnV0IHNvbWUKcGVvcGxlIGp1c3QgZWRpdGluZyBhIGZpbGUgZG9uJ3QgbmVlZCB0byBiZSBib3RoZXJlZCBieSBpdC4gIE9ubHkgc2hvdyBpdCB3aGVuCnZpbXJ1biB3b3VsZCBiZSB1c2VkLgoKV2hlbiB1c2luZyAiJSIgaW4gYSBtdWx0aWJ5dGUgdGV4dCBpdCBjb3VsZCBnZXQgY29uZnVzZWQgYnkgdHJhaWxieXRlcyB0aGF0Cm1hdGNoLiAoTXVyYW9rYSBUYXJvKQoKVGVybWNhcCBlbnRyeSBmb3IgUmlzY09TIHdhcyB3cm9uZywgdXNpbmcgNyBhbmQgOCBpbiBvY3RhbCBjb2Rlcy4KCkF0aGVuYTogVGhlIHRpdGxlIG9mIGEgZGlhbG9nIHdpbmRvdyBhbmQgdGhlIGZpbGUgc2VsZWN0b3Igd2luZG93IHdlcmUgbm90CnNldC4gKERhdmlkIEhhcnJpc29uKQoKVGhlICJodG1sTGluayIgaGlnaGxpZ2h0IGdyb3VwIHNwZWNpZmllZCBjb2xvcnMsIHdoaWNoIGdpdmVzIHByb2JsZW1zIHdoZW4KdXNpbmcgYSBjb2xvciBzY2hlbWUuICBBZGRlZCB0aGUgIlVuZGVybGluZWQiIGhpZ2hsaWdodCBncm91cCBmb3IgdGhpcy4KCkFmdGVyIHVzaW5nICI6aW5zZXJ0IiBvciAiOmNoYW5nZSIgdGhlICdbIG1hcmsgd291bGQgYmUgb25lIGxpbmUgdG9vIGxvdy4KCldoZW4gbG9va2luZyBmb3IgdGhlIGZpbGUgbmFtZSBhZnRlciBhIG1hdGNoIHdpdGggJ2luY2x1ZGUnIG9uZSBjaGFyYWN0ZXIgd2FzCnNraXBwZWQuICBTYW1lIGZvciAnZGVmaW5lJy4KCldpbjMyIGFuZCBESkdQUDogV2hlbiBlZGl0aW5nIGEgZmlsZSB3aXRoIGEgc2hvcnQgbmFtZSBpbiBhIGRpcmVjdG9yeSwgYW5kCmVkaXRpbmcgdGhlIHNhbWUgZmlsZSBidXQgdXNpbmcgdGhlIGxvbmcgbmFtZSwgd291bGQgZW5kIHVwIHdpdGggdHdvIGJ1ZmZlcnMKb24gdGhlIHNhbWUgZmlsZS4KCiJnZiIgb24gYSBmaWxlbmFtZSB0aGF0IHN0YXJ0cyB3aXRoICIuLi8iIG9ubHkgd29ya2VkIHdoZW4gdGhlIGZpbGUgYmVpbmcKZWRpdGVkIGlzIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4gIEFuIGluY2x1ZGUgZmlsZSBzZWFyY2ggZGlkbid0IHdvcmsKcHJvcGVybHkgZm9yIGZpbGVzIHN0YXJ0aW5nIHdpdGggIi4uLyIgb3IgIi4iLiAgTm93IHNlYXJjaCBib3RoIHJlbGF0aXZlIHRvCnRoZSBmaWxlIGFuZCB0byB0aGUgY3VycmVudCBkaXJlY3RvcnkuCgpXaGVuICdwcmludGhlYWRlcicsICd0aXRsZXN0cmluZycsICdpY29uc3RyaW5nJywgJ3J1bGVyZm9ybWF0JyBvciAnc3RhdHVzbGluZScKY29udGFpbmVkICIleyIgYnV0IG5vIGZvbGxvd2luZyAifSIgbWVtb3J5IHdhcyBjb3JydXB0ZWQgYW5kIGEgY3Jhc2ggY291bGQKaGFwcGVuLgoKIjowYXBwZW5kIiBhbmQgdGhlbiBpbnNlcnRpbmcgdHdvIGxpbmVzIGRpZCBub3QgcmVkcmF3IHRoZSBibGFuayBsaW5lcyB0aGF0CndlcmUgc2Nyb2xsZWQgYmFjayBkb3duLgoKV2hlbiB1c2luZyBpbnNlcnQgbW9kZSBjb21wbGV0aW9uIGluIGEgbmFycm93IHdpbmRvdywgdGhlIG1lc3NhZ2UgY2F1c2VkIGEKc2Nyb2xsIHVwLiAgTm93IHNob3J0ZW4gdGhlIG1lc3NhZ2UgaWYgaXQgZG9lc24ndCBmaXQgYW5kIGF2b2lkIHdyaXRpbmcgdGhlCnJ1bGVyIG92ZXIgdGhlIG1lc3NhZ2UuCgpYSU0gc3RpbGwgZGlkbid0IHdvcmsgY29ycmVjdGx5IG9uIHNvbWUgc3lzdGVtcywgZXNwZWNpYWxseSBTR0kvSVJJWC4gIEFkZGVkCnRoZSAnaW1kaXNhYmxlJyBvcHRpb24sIHdoaWNoIGlzIHNldCBieSBkZWZhdWx0IGZvciB0aGF0IHN5c3RlbS4KClBhdGNoIDYuMGF3LjAwOApQcm9ibGVtOiAgICBXaGVuIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYSBmaWxlIG5hbWUgaXMgb3ZlciAxMjcsIHRoZSBCdWZmZXJzCgkgICAgbWVudSBlbnRyeSB3b3VsZCBnZXQgYSBuZWdhdGl2ZSBwcmlvcml0eSBhbmQgY2F1c2UgcHJvYmxlbXMuClNvbHV0aW9uOiAgIFJlZHVjZSB0aGUgbXVsdGlwbGllciBmb3IgdGhlIGZpcnN0IGNoYXJhY3RlciB3aGVuIGNvbXB1dGluZwoJICAgIHRoZSBoYXNoIHZhbHVlIGZvciBhIEJ1ZmZlcnMgbWVudSBlbnRyeS4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjBhdy4wMTAKUHJvYmxlbTogICAgV2luMzI6ICI6YnJvd3NlIGVkaXQgZGlyL2RpciIgZGlkbid0IHdvcmsuIChWaWthcykKU29sdXRpb246ICAgQ2hhbmdlIHNsYXNoZXMgdG8gYmFja3NsYXNoZXMgaW4gdGhlIGRpcmVjdG9yeSBwYXNzZWQgdG8gdGhlIGZpbGUKCSAgICBicm93c2VyLgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKCkF0aGVuYSBmaWxlIGJyb3dzZXI6IE9uIHNvbWUgc3lzdGVtcyB3Y3N0b21icygpIGNhbid0IGJlIHVzZWQgdG8gZ2V0IHRoZQpsZW5ndGggb2YgYSBtdWx0aS1ieXRlIHN0cmluZy4gIFVzZSB0aGUgbWF4aW11bSBsZW5ndGggdGhlbi4gKFlhc3VoaXJvCk1hdHN1bW90bykKClBhdGNoIDYuMGF4LjAwMQpQcm9ibGVtOiAgICBXaGVuICdwYXRjaG1vZGUnIGlzIHNldCwgYXBwZW5kaW5nIHRvIGEgZmlsZSBnaXZlcyBhbiBlbXB0eQoJICAgIG9yaWdpbmFsIGZpbGUuIChFZCBSYWxzdG9uKQpTb2x1dGlvbjogICBBbHNvIG1ha2UgYSBiYWNrdXAgY29weSB3aGVuIGFwcGVuZGluZyBhbmQgJ3BhdGNobW9kZScgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wYXguMDAyClByb2JsZW06ICAgIFdoZW4gJ3BhdGNobW9kZScgaXMgc2V0LCBhcHBlbmRpbmcgdG8gYSBjb21wcmVzc2VkIGZpbGUgZ2l2ZXMgYW4KCSAgICB1bmNvbXByZXNzZWQgb3JpZ2luYWwgZmlsZS4gKEVkIFJhbHN0b24pClNvbHV0aW9uOiAgIENyZWF0ZSB0aGUgb3JpZ2luYWwgZmlsZSBiZWZvcmUgZGVjb21wcmVzc2luZy4KRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9nemlwLnZpbQoKUGF0Y2ggNi4wYXguMDA1ClByb2JsZW06ICAgIEF0aGVuYSBmaWxlIHNlbGVjdG9yIGtlZXBzIHRoZSB0aXRsZSBvZiB0aGUgZmlyc3QgaW52b2NhdGlvbi4KU29sdXRpb246ICAgU2V0IHRoZSB0aXRsZSBlYWNoIHRpbWUgdGhlIGZpbGUgc2VsZWN0b3IgaXMgb3BlbmVkLiAoRGF2aWQKCSAgICBIYXJyaXNvbikKRmlsZXM6CSAgICBzcmMvZ3VpX2F0X2ZzLmMKClBhdGNoIDYuMGF4LjAwNwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIEdQTSAobW91c2UgZHJpdmVyIGluIGEgTGludXggY29uc29sZSkgYSBkb3VibGUgY2xpY2sgaXMKCSAgICBpbnRlcnByZXRlZCBhcyBhIHNjcm9sbCB3aGVlbCBjbGljay4KU29sdXRpb246ICAgQ2hlY2sgaWYgR1BNIGlzIGJlaW5nIHVzZWQgd2hlbiBkZWNpZGluZyBpZiBhIG1vdXNlIGV2ZW50IGlzIGZvcgoJICAgIHRoZSBzY3JvbGwgd2hlZWwuCkZpbGVzOgkgICAgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4wYXguMDEwClByb2JsZW06ICAgIFRoZSBFZGl0LlNhdmUgbWVudSBhbmQgdGhlIFNhdmUgdG9vbGJhciBidXR0b24gZGlkbid0IHdvcmsgd2hlbgoJICAgIHRoZSBidWZmZXIgaGFzIG5vIGZpbGUgbmFtZS4KU29sdXRpb246ICAgVXNlIGEgZmlsZSBicm93c2VyIHRvIGFzayBmb3IgYSBmaWxlIG5hbWUuICBBbHNvIGZpeCB0aGUgdG9vbGJhcgoJICAgIEZpbmQgaXRlbSBpbiBWaXN1YWwgbW9kZS4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjBheC4wMTIKUHJvYmxlbTogICAgV2hlbiAnY3BvcHRpb25zJyBjb250YWlucyAiJCIsIGJyZWFraW5nIGEgbGluZSBmb3IgJ3RleHR3aWR0aCcKCSAgICBkb2Vzbid0IHJlZHJhdyBwcm9wZXJseS4gKFN0ZWZhbiBTY2h1bHplKQpTb2x1dGlvbjogICBSZW1vdmUgdGhlIGRvbGxhciBiZWZvcmUgYnJlYWtpbmcgdGhlIGxpbmUuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4wYXguMDE0ClByb2JsZW06ICAgIFdpbjMyOiBPbiBXaW5kb3dzIDk4ICI6bWFrZSAtZiBmaWxlIiBkb2Vzbid0IHdvcmsgd2hlbiAnc2hlbGwnIGlzCgkgICAgImNvbW1hbmQuY29tIiBhbmQgJ21ha2VwcmcnIGlzICJubWFrZSIuICBUaGUgZW52aXJvbm1lbnQgaXNuJ3QKCSAgICBwYXNzZWQgb24gdG8gIm5tYWtlIi4KU29sdXRpb246ICAgQWxzbyB1c2UgdmltcnVuLmV4ZSB3aGVuIHJlZGlyZWN0aW5nIHRoZSBvdXRwdXQgb2YgYSBjb21tYW5kLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjBheC4wMTYKUHJvYmxlbTogICAgVGhlIHZlcnNpb24gbnVtYmVyIHdhcyByZXBvcnRlZCB3cm9uZyBpbiB0aGUgaW50cm8gc2NyZWVuLgpTb2x1dGlvbjogICBDaGVjayBmb3IgYSB2ZXJzaW9uIG51bWJlciB3aXRoIHR3byBhZGRpdGlvbmFsIGxldHRlcnMuCkZpbGVzOgkgICAgc3JjL3ZlcnNpb24uYwoKUGF0Y2ggNi4wYXguMDE5ClByb2JsZW06ICAgIFdoZW4gc2Nyb2xsaW5nIGEgd2luZG93IHdpdGggZm9sZHMgdXB3YXJkcywgc3dpdGNoaW5nIHRvIGFub3RoZXIKCSAgICB2ZXJ0aWNhbGx5IHNwbGl0IHdpbmRvdyBhbmQgYmFjayBtYXkgbm90IHVwZGF0ZSB0aGUgc2Nyb2xsYmFyLgpTb2x1dGlvbjogICBMaW1pdCB3X2JvdGxpbmUgdG8gdGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgYnVmZmVyIHBsdXMgb25lLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVkVSU0lPTiA2LjEJCQkJCQkqdmVyc2lvbi02LjEqCgpUaGlzIHNlY3Rpb24gaXMgYWJvdXQgaW1wcm92ZW1lbnRzIG1hZGUgYmV0d2VlbiB2ZXJzaW9uIDYuMCBhbmQgNi4xLgoKVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgdGhlcmUgYXJlIG5vdCByZWFsbHkgYW55IG5ldyBmZWF0dXJlcy4KCgpDaGFuZ2VkCQkJCQkJCSpjaGFuZ2VkLTYuMSoKLS0tLS0tLQoKJ2ltaW5zZXJ0JyBhbmQgJ2ltc2VhcmNoJyBhcmUgbm8gbG9uZ2VyIHNldCBhcyBhIHNpZGUgZWZmZWN0IG9mIGRlZmluaW5nIGEKbGFuZ3VhZ2UtbWFwcGluZyB1c2luZyAiOmxtYXAiLgoKCkFkZGVkCQkJCQkJCSphZGRlZC02LjEqCi0tLS0tCgpTeW50YXggZmlsZXM6CmFtcGwJCUFNUEwgKERhdmlkIEtyaWVmKQphbnQJCUFudCAoSm9oYW5uZXMgWmVsbG5lcikKYmFhbgkJQmFhbiAoSGVyIHZhbiBkZSBWbGllcnQpCmNzCQlDIyAoSm9oYW5uZXMgWmVsbG5lcikKbGlmZWxpbmVzCUxpZmVsaW5lcyAoUGF0cmljayBUZXhpZXIpCmxzY3JpcHQJCUxvdHVzU2NyaXB0IChUYXJ5biBFYXN0KQptb28JCU1PTyAoVGltbyBGcmVuYXkpCm5zaXMJCU5TSVMgKEFsZXggSmFrdXNoZXYpCnBwZAkJUG9zdHNjcmlwdCBQcmludGVyIERlc2NyaXB0aW9uIChCam9lcm4gSmFja2UpCnJwbAkJUlBMLzIgKEpvZWwgQmVydHJhbmQpCnNjaWxhYgkJU2NpbGFiIChCZW5vaXQgSGFtZWxpbikKc3BsaW50CQlTcGxpbnQgKFJhbGYgV2lsZGVuaHVlcykKc3FsagkJU1FMSiAoQW5kcmVhcyBGaXNjaGJhY2gpCnd2ZGlhbAkJV3ZEaWFsIChQcmFobGFkIFZhaWR5YW5hdGhhbikKeGY4NmNvbmYJWEZyZWU4NiBjb25maWcgKE5pa29sYWkgV2VpYnVsbCkKeG1vZG1hcAkJWG1vZG1hcCAoTmlrb2xhaSBXZWlidWxsKQp4c2x0CQlYc2x0IChKb2hhbm5lcyBaZWxsbmVyKQptb25rCQlNb25rIChNaWtlIExpdGhlcmxhbmQpCnhzZAkJWHNkIChKb2hhbm5lcyBaZWxsbmVyKQpjZGwJCUNETCAoUmF1bCBTZWd1cmEgQWNldmVkbykKc2VuZHByCQlTZW5kLXByIChIZW5kcmlrIFNjaG9seikKCkFkZGVkIGluZGVudCBmaWxlIGZvciBTY2hlbWUuIChEb3JhaSBTaXRhcmFtKQpBZGRlZCBpbmRlbnQgZmlsZSBmb3IgUHJvbG9nLiAoS29udHJhIEdlcmdlbHkpCkFkZGVkIGluZGVudCBmaWxlIGZvciBQb3ZyYXkgKERhdmlkIE5lY2FzKQpBZGRlZCBpbmRlbnQgZmlsZSBmb3IgSURMIChBbGVrc2FuZGFyIEplbGVuYWspCkFkZGVkIEMjIGluZGVudCBhbmQgZnRwbHVnaW4gc2NyaXB0cy4KCkFkZGVkIFVrcmFpbmlhbiBtZW51IHRyYW5zbGF0aW9ucy4gKEJvaGRhbiBWbGFzeXVrKQpBZGRlZCBBU0NJSSB2ZXJzaW9uIG9mIHRoZSBDemVjaCBtZW51cy4gKEppcmkgQnJlemluYSkKCkFkZGVkIFNpbXBsaWZpZWQgQ2hpbmVzZSB0cmFuc2xhdGlvbiBvZiB0aGUgdHV0b3IuIChNZW5kZWwgTCBDaGFuKQoKQWRkZWQgUnVzc2lhbiBrZXltYXAgZm9yIHlhd2VydHkga2V5Ym9hcmQuCgpBZGRlZCBhbiBleHBsYW5hdGlvbiBvZiB1c2luZyB0aGUgdmltcmMgZmlsZSBpbiB0aGUgdHV0b3IuCkNoYW5nZWQgdHV0b3IudmltIHRvIGdldCB0aGUgcmlnaHQgZW5jb2RpbmcgZm9yIHRoZSBUYWl3YWluZXNlIHR1dG9yLgoKQWRkZWQgUnVzc2lhbiB0dXRvci4gKEFuZHJleSBLaXNlbGV2KQpBZGRlZCBQb2xpc2ggdHV0b3IuIChNaWtvbGFqIE1hY2hvd3NraSkKCkFkZGVkIGRhcmtibHVlIGNvbG9yIHNjaGVtZS4gKEJvaGRhbiBWbGFzeXVrKQoKV2hlbiBwYWNraW5nIHRoZSBkb3MgbGFuZ3VhZ2UgYXJjaGl2ZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIHRoZSAubW8gZmlsZXMKdGhhdCBhcmUgcmVxdWlyZWQuCgpJbXByb3ZlZCBOU0lTIHNjcmlwdCB0byBzdXBwb3J0IE5TSVMgMTgwLiAgQWRkZWQgaWNvbnMgZm9yIHRoZQplbmFibGVkL2Rpc2FibGVkIHN0YXR1cy4gKE1pcmVrIFBydWNobmlrKQoKY3AxMjUwIHZlcnNpb24gb2YgdGhlIFNsb3ZhayBtZXNzYWdlIHRyYW5zbGF0aW9ucy4KCkNvbXBpbGVyIHBsdWdpbnMgZm9yIElSSVggY29tcGlsZXJzLiAoRGF2aWQgSGFycmlzb24pCgoKRml4ZWQJCQkJCQkJKmZpeGVkLTYuMSoKLS0tLS0KClRoZSBsaWNlbnNlIHRleHQgd2FzIHVwZGF0ZWQgdG8gbWFrZSB0aGUgbWVhbmluZyBjbGVhcmVyIGFuZCBtYWtlIGl0CmNvbXBhdGlibGUgd2l0aCB0aGUgR05VIEdQTC4gIE90aGVyd2lzZSBkaXN0cmlidXRvcnMgaGF2ZSBhIHByb2JsZW0gd2hlbgpsaW5raW5nIFZpbSB3aXRoIGEgR1BMJ2VkIGxpYnJhcnkuCgpXaGVuIGluc3RhbGxpbmcgdGhlICJsZXNzLnNoIiBzY3JpcHQgaXQgd2FzIG5vdCBtYWRlIGV4ZWN1dGFibGUuIChDaHVjayBCZXJnKQoKV2luMzI6IFRoZSAiOSIga2V5IG9uIHRoZSBudW1wYWQgd2Fzbid0IHdvcmtpbmcuIChKdWxpYW4gS2lucmFpZCkKClRoZSBOU0lTIGluc3RhbGwgc2NyaXB0IGRpZG4ndCB3b3JrIHdpdGggTlNJUyAxLjgwIG9yIGxhdGVyLiAgQWxzbyBhZGQKVmltLXNwZWNpZmljIGljb25zLiAoUHJ1Y2huaWspCgpUaGUgc2NyaXB0IGZvciBjb252ZXJzaW9uIHRvIEhUTUwgY29udGFpbmVkIGFuICJpZiIgaW4gdGhlIHdyb25nIHBsYWNlLgooTWljaGFlbCBHZWRkZXMpCgpBbGxvdyB1c2luZyAiOmFzY2lpIiBpbiB0aGUgc2FuZGJveCwgaXQncyBoYXJtbGVzcy4KClJlbW92ZWQgY3JlYXQoKSBmcm9tIG9zZGVmMi5oLmluLCBpdCB3YXNuJ3QgdXNlZCBhbmQgbWF5IGNhdXNlIGEgcHJvYmxlbSB3aGVuCml0J3MgcmVkZWZpbmVkIHRvIGNyZWF0NjQoKS4KClRoZSB0ZXh0IGZpbGVzIGluIHRoZSBWaXNWaW0gZGlyZWN0b3J5IHdlcmUgaW4gImRvcyIgZm9ybWF0LiAgVGhpcyBjYXVzZWQKcHJvYmxlbXMgd2hlbiBhcHBseWluZyBhIHBhdGNoLiAgTm93IGtlZXAgdGhlbSBpbiAidW5peCIgZm9ybWF0IGFuZCBjb252ZXJ0CnRoZW0gdG8gImRvcyIgZm9ybWF0IG9ubHkgZm9yIHRoZSBQQyBhcmNoaXZlcy4KCkFkZCBydWJ5IGZpbGVzIHRvIHRoZSBkb3Mgc291cmNlIGFyY2hpdmUsIHRoZXkgY2FuIGJlIHVzZWQgYnkgTWFrZV9tdmMubWFrLgooTWlyZWsgUHJ1Y2huaWspCgoiY3AgLWYiIGRvZXNuJ3Qgd29yayBvbiBhbGwgc3lzdGVtcy4gIENoYW5nZSAiY3AgLWYiIGluIHRoZSBNYWtlZmlsZSB0byAicm0KLWYiIGFuZCAiY3AiLgoKRGlkbid0IGNvbXBpbGUgb24gYSBDb21wYXEgVGFuZGVtIEhpbWFsYXlhIE9TUy4gKE1pY2hhZWwgQS4gQmVuemluZ2VyKQoKVGhlIEdUSyBmaWxlIHNlbGVjdGlvbiBkaWFsb2cgZGlkbid0IGluY2x1ZGUgdGhlICJDcmVhdGUgRGlyIiwgIkRlbGV0ZSBGaWxlIgphbmQgIlJlbmFtZSBGaWxlIiBidXR0b25zLgoKV2hlbiBkb2luZyAiOmJyb3dzZSBzb3VyY2UiIHRoZSBkaWFsb2cgaGFzIHRoZSB0aXRsZSAiUnVuIE1hY3JvIi4gIEJldHRlcgp3b3VsZCBiZSAiU291cmNlIFZpbSBzY3JpcHQiLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKCldpbjMyOiBEb24ndCB1c2UgdGhlIHByaW50ZXIgZm9udCBhcyBkZWZhdWx0IGZvciB0aGUgZm9udCBkaWFsb2cuCgoibWFrZSBkb3NsYW5nIiBkaWRuJ3Qgd29yayB3aGVuIGNvbmZpZ3VyZSBkaWRuJ3QgcnVuICh5ZXQpLiAgU2V0ICRNQUtFTU8gdG8KInllcyIuIChNaXJlayBQcnVjaG5paykKClRoZSBUb29sQmFyIFRhZ0p1bXAgaXRlbSB1c2VkICJnXSIsIHdoaWNoIHByb21wdHMgZm9yIGEgc2VsZWN0aW9uIGV2ZW4gd2hlbgp0aGVyZSBpcyBvbmx5IG9uZSBtYXRjaGluZyB0YWcuICBVc2UgImc8Qy1dPiIgaW5zdGVhZC4KClRoZSBtaW5nIG1ha2VmaWxlIGZvciBtZXNzYWdlIHRyYW5zbGF0aW9ucyBkaWRuJ3QgaGF2ZSB0aGUgcmlnaHQgbGlzdCBvZgpmaWxlcy4KClRoZSBNUy1XaW5kb3dzIDMuMSB2ZXJzaW9uIGNvbXBsYWlucyBhYm91dCBMSUJJTlRMLkRMTCBub3QgZm91bmQuICBDb21waWxlCnRoaXMgdmVyc2lvbiB3aXRob3V0IG1lc3NhZ2UgdHJhbnNsYXRpb25zLgoKVGhlIEJvcmxhbmQgNSBtYWtlZmlsZSBjb250YWluZWQgYSBjaGVjayBmb3IgUnVieSB3aGljaCBpcyBubyBsb25nZXIgbmVlZGVkLgpUaGUgVVJMcyBmb3IgdGhlIFRDTCBsaWJyYXJ5IHdhcyBvdXRkYXRlZC4gKERhbiBTaGFycCkKClRoZSBldmlzby5wcyBmaWxlIHdhcyBtaXNzaW5nIGZyb20gdGhlIERPUyBydW50aW1lIGFyY2hpdmUsIGl0J3MgbmVlZGVkIGZvcgpwcmludGluZyBQb3N0U2NyaXB0IGluIHRoZSAzMmJpdCBET1MgdmVyc2lvbi4KCkluIG1lbnUgZmlsZXMgIjpzY3JpcHRlbmNvZGluZyIgd2FzIHVzZWQgaW4gYSB3cm9uZyB3YXkgYWZ0ZXIgcGF0Y2ggNi4xYS4wMzIKTm93IHVzZSAiOnNjcmlwdGVuY29kaW5nIiBpbiB0aGUgZmlsZSB3aGVyZSB0aGUgdHJhbnNsYXRpb25zIGFyZSBnaXZlbi4gIERvCnRoZSBzYW1lIGZvciBhbGwgbWVudXMgaW4gbGF0aW4xIGVuY29kaW5nLgoKSW5jbHVkZWQgYSBsb3Qgb2YgZml4ZXMgZm9yIHRoZSBNYWNpbnRvc2gsIG1vc3RseSB0byBtYWtlIGl0IHdvcmsgd2l0aCBDYXJib24uCihEYW55IFN0QW1hbnQsIEF4ZWwgS2llbGhvcm4sIEJlbmppIEZpc2hlcikKCkltcHJvdmVkIHRoZSB2aW10dXRvciBzaGVsbCBzY3JpcHQgdG8gdXNlICRUTVBESVIgd2hlbiBpdCBleGlzdHMsIGFuZCBkZWxldGUKdGhlIGNvcGllZCBmaWxlIHdoZW4gZXhpdGluZyBpbiBhbiBhYm5vcm1hbCB3YXkuIChNYXggSXNjaGVua28pCgpXaGVuICJpY29udi5kbGwiIGNhbid0IGJlIGZvdW5kLCB0cnkgdXNpbmcgImxpYmljb252LmRsbCIuCgpXaGVuIGVuY3J5cHRpb24gaXMgdXNlZCwgZmlsdGVyaW5nIHdpdGggYSBzaGVsbCBjb21tYW5kIHdhc24ndCBwb3NzaWJsZS4KCkRKR1BQOiAiOmNkIGM6IiBhbHdheXMgZmFpbGVkLCBjYW4ndCBnZXQgcGVybWlzc2lvbnMgZm9yICJjOiIuCldpbjMyOiAiOmNkIGM6LyIgZmFpbGVkIGlmIHRoZSBwcmV2aW91cyBjdXJyZW50IGRpcmVjdG9yeSBvbiBjOiBoYWQgYmVjb21lCmludmFsaWQuCgpESkdQUDogU2hpZnQtRGVsIGFuZCBEZWwgYm90aCBwcm9kdWNlIFwzMTZcMTIzLiAgRGVmYXVsdCBtYXBwaW5nIGZvciBEZWwgaXMKd3JvbmcuICBEaXNhYmxlZCBpdC4KCkRlcGVuZGVuY2llcyBvbiBoZWFkZXIgZmlsZXMgaW4gTWluZ1cgbWFrZWZpbGUgd2FzIHdyb25nLgoKV2luMzI6IERvbid0IHVzZSBBQ0wgc3R1ZmYgZm9yIE1TVkMgNC4yLCBpdCdzIG5vdCBzdXBwb3J0ZWQuIChXYWx0ZXIgQnJpc2NvZSkKCldpbjMyIHdpdGggQm9ybGFuZDogYmNjLmNmZyB3YXMgY2FjaGluZyB0aGUgdmFsdWUgZm9yICQoQk9SKSwgYnV0IHByb3ZpZGluZyBhCmRpZmZlcmVudCBhcmd1bWVudCB0byBtYWtlIGRpZG4ndCByZWdlbmVyYXRlIGl0LgoKV2luMzIgd2l0aCBNU1ZDOiBNYWtlX2l2Yy5tYWsgZ2VuZXJhdGVzIGEgbmV3IGlmX29sZS5oIGluIGEgZGlmZmVyZW50CmRpcmVjdG9yeSwgdGhlIGlmX29sZS5oIGluIHRoZSBzcmMgZGlyZWN0b3J5IG1heSBiZSB1c2VkIGluc3RlYWQuICBEZWxldGUgdGhlCmRpc3RyaWJ1dGVkIGZpbGUuCgpXaGVuIGEgd2luZG93IGlzIHZlcnRpY2FsbHkgc3BsaXQgYW5kIHRoZW4gIjpiYWxsIiBpcyB1c2VkLCB0aGUgd2luZG93IGxheW91dAppcyBtZXNzZWQgdXAsIGNhbiBjYXVzZSBhIGNyYXNoLiAoTXVyYW9rYSBUYXJvKQoKV2hlbiAnaW5zZXJ0bW9kZScgaXMgc2V0LCB1c2luZyBGaWxlL05ldyBtZW51IGFuZCB0aGVuIGRvdWJsZSBjbGlja2luZywgImkiIGlzCnNvb24gaW5zZXJ0ZWQuIChNZXJsaW4gSGFuc2VuKQoKV2hlbiBTZWxlY3QgbW9kZSBpcyBhY3RpdmUgYW5kIHVzaW5nIHRoZSBCdWZmZXJzIG1lbnUgdG8gc3dpdGNoIHRvIGFub3RoZXIKYnVmZmVyLCBhbiBvbGQgc2VsZWN0aW9uIGNvbWVzIGJhY2suICBSZXNldCBWSXN1YWxfcmVzZWxlY3QgZm9yIGEgIjpidWZmZXIiCmNvbW1hbmQuCgpXaGVuIFNlbGVjdCBtb2RlIGlzIGFjdGl2ZSBhbmQgJ2luc2VydG1vZGUnIGlzIHNldCwgdXNpbmcgdGhlIEJ1ZmZlcnMgbWVudSB0bwpzd2l0Y2ggdG8gYW5vdGhlciBidWZmZXIsIGRpZCBub3QgcmV0dXJuIHRvIEluc2VydCBtb2RlLiAgTWFrZSBzdXJlCiJyZXN0YXJ0X2VkaXQiIGlzIHNldC4KCldoZW4gZG91YmxlIGNsaWNraW5nIG9uIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgYSB3b3JkIHdoaWxlICdzZWxlY3Rpb24nIGlzCiJleGNsdXNpdmUiIGRpZG4ndCBzZWxlY3QgdGhhdCB3b3JkLgoKClBhdGNoIDYuMC4wMDEKUHJvYmxlbTogICAgTG9hZGluZyB0aGUgc2gudmltIHN5bnRheCBmaWxlIGNhdXNlcyBlcnJvciBtZXNzYWdlcyAuIChDb3Jpbm5hCgkgICAgVmluc2NoZW4pClNvbHV0aW9uOiAgIEFkZCBhbiAiaWYiLiAoQ2hhcmxlcyBDYW1wYmVsbCkKRmlsZXM6CSAgICBydW50aW1lL3N5bnRheC9zaC52aW0KClBhdGNoIDYuMC4wMDIKUHJvYmxlbTogICAgVXNpbmcgYSAnQCcgaXRlbSBpbiAndmltaW5mbycgZG9lc24ndCB3b3JrLiAoTWFya28gTGVpcGVydCkKU29sdXRpb246ICAgQWRkICdAJyB0byB0aGUgbGlzdCBvZiBhY2NlcHRlZCBpdGVtcy4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMC4wMDMKUHJvYmxlbTogICAgVGhlIGNvbmZpZ3VyZSBjaGVjayBmb3IgQUNMcyBvbiBBSVggZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBGaXggdGhlIHRlc3QgcHJvZ3JhbSBzbyB0aGF0IGl0IGNvbXBpbGVzLiAoVG9tYXMgT2dyZW4pCkZpbGVzOgkgICAgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2F1dG8vY29uZmlndXJlCgpQYXRjaCA2LjAuMDA0ClByb2JsZW06ICAgIFRoZSBmaW5kL3JlcGxhY2UgZGlhbG9nIGRvZXNuJ3QgcmV1c2UgYSBwcmV2aW91cyBhcmd1bWVudAoJICAgIHByb3Blcmx5LgpTb2x1dGlvbjogICBBZnRlciByZW1vdmluZyBhICJcViIgdGVybWluYXRlIHRoZSBzdHJpbmcuIChad2FuZSBNd2Fpa2FtYm8pCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjAuMDA1ClByb2JsZW06ICAgIEluIEluc2VydCBtb2RlLCAiQ1RSTC1PIDpscyIgaGFzIGEgZGVsYXkgYmVmb3JlIHJlZHJhd2luZy4KU29sdXRpb246ICAgRG9uJ3QgZGVsYXkganVzdCBhZnRlciB3YWl0X3JldHVybigpIHdhcyBjYWxsZWQuICBBZGRlZCB0aGUKCSAgICBkaWRfd2FpdF9yZXR1cm4gZmxhZy4KRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oLCBzcmMvbWVzc2FnZS5jLCBzcmMvbm9ybWFsLmMsIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4wLjAwNgpQcm9ibGVtOiAgICBXaXRoIGEgdmVydGljYWwgc3BsaXQsICdudW1iZXInIHNldCBhbmQgJ3Njcm9sbG9mZicgbm9uLXplcm8sCgkgICAgbWFraW5nIHRoZSB3aW5kb3cgd2lkdGggdmVyeSBzbWFsbCBjYXVzZXMgYSBjcmFzaC4gKE5pa2xhcwoJICAgIExpbmRzdHJvbSkKU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgemVybyB3aWR0aC4KRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjAuMDA3ClByb2JsZW06ICAgIFdoZW4gc2V0dGluZyAnZmlsZXR5cGUnIHdoaWxlIHRoZXJlIGlzIG5vIEZpbGVUeXBlIGF1dG9jb21tYW5kLCBhCgkgICAgZm9sbG93aW5nICI6c2V0ZmlsZXR5cGUiIHdvdWxkIHNldCAnZmlsZXR5cGUnIGFnYWluLiAoS29idXMKCSAgICBSZXRpZWYpClNvbHV0aW9uOiAgIFNldCBkaWRfZmlsZXR5cGUgYWx3YXlzIHdoZW4gJ2ZpbGV0eXBlJyBoYXMgYmVlbiBzZXQuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjAuMDA4ClByb2JsZW06ICAgICdpbWRpc2FibGUnIGlzIG1pc3NpbmcgZnJvbSB0aGUgb3B0aW9ucyB3aW5kb3cuIChNaWNoYWVsIE5hdW1hbm4pClNvbHV0aW9uOiAgIEFkZCBhbiBlbnRyeSBmb3IgaXQuCkZpbGVzOgkgICAgcnVudGltZS9vcHR3aW4udmltCgpQYXRjaCA2LjAuMDA5ClByb2JsZW06ICAgIE5leHRzdGVwIGRvZXNuJ3QgaGF2ZSBTX0lTQkxLLiAoSm9obiBCZXBwdSkKU29sdXRpb246ICAgRGVmaW5lIFNfSVNCTEsgdXNpbmcgU19JRkJMSy4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5oCgpQYXRjaCA2LjAuMDEwClByb2JsZW06ICAgIFVzaW5nICJnZiIgb24gYSBmaWxlIG5hbWUgc3RhcnRpbmcgd2l0aCAiLi8iIG9yICIuLi8iIGluIGEgYnVmZmVyCgkgICAgd2l0aG91dCBhIG5hbWUgY2F1c2VzIGEgY3Jhc2guIChSb3kgTGV3aXMpClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIE5VTEwgZmlsZSBuYW1lLgpGaWxlczoJICAgIHNyYy9taXNjMi5jCgpQYXRjaCA2LjAuMDExClByb2JsZW06ICAgIFB5dGhvbjogQWZ0ZXIgcmVwbGFjaW5nIG9yIGRlbGV0aW5nIGxpbmVzIGdldCBhbiBtbF9nZXQgZXJyb3IuCgkgICAgKExlbyBMaXBlbGlzKQpTb2x1dGlvbjogICBBZGp1c3QgdGhlIGN1cnNvciBwb3NpdGlvbiBmb3IgZGVsZXRlZCBvciBhZGRlZCBsaW5lcy4KRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMC4wMTIKUHJvYmxlbTogICAgUG9saXNoIHRyYW5zbGF0aW9ucyBjb250YWluIHByaW50ZiBmb3JtYXQgZXJyb3JzLCB0aGlzIGNhbiByZXN1bHQKCSAgICBpbiBhIGNyYXNoIHdoZW4gdXNpbmcgb25lIG9mIHRoZW0uClNvbHV0aW9uOiAgIEZpeCBmb3IgdHJhbnNsYXRlZCBtZXNzYWdlcy4gKE1pY2hhbCBQb2xpdG93c2tpKQpGaWxlczoJICAgIHNyYy9wby9wbC5wbwoKUGF0Y2ggNi4wLjAxMwpQcm9ibGVtOiAgICBVc2luZyAiOnNpbGVudCEgY21kIiBzdGlsbCBnaXZlcyBzb21lIGVycm9yIG1lc3NhZ2VzLCBsaWtlIGZvciBhbgoJICAgIGludmFsaWQgcmFuZ2UuIChTYWxtYW4gSGFsaW0pClNvbHV0aW9uOiAgIFJlc2V0IGVtc2dfc2lsZW50IGFmdGVyIGNhbGxpbmcgZW1zZygpIGluIGRvX29uZV9jbWQoKS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4wLjAxNApQcm9ibGVtOiAgICBXaGVuICdtb2RpZmlhYmxlJyBpcyBvZmYgYW5kICd2aXJ0dWFsZWRpdCcgaXMgImFsbCIsICJyeCIgb24gYSBUQUIKCSAgICBzdGlsbCBjaGFuZ2VzIHRoZSBidWZmZXIuIChNdXJhb2thIFRhcm8pClNvbHV0aW9uOiAgIENoZWNrIGlmIHNhdmluZyB0aGUgbGluZSBmb3IgdW5kbyBmYWlscy4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4wMTUKUHJvYmxlbTogICAgV2hlbiAnY3BvcHRpb25zJyBpbmNsdWRlcyAiUyIgYW5kICJmaWxldHlwZSBwbHVnaW4gb24iIGhhcyBiZWVuCgkgICAgdXNlZCwgY2FuIGdldCBhbiBlcnJvciBmb3IgZGVsZXRpbmcgdGhlIGI6ZGlkX2Z0cGx1Z2luIHZhcmlhYmxlLgoJICAgIChSYWxwaCBIZW5kZXJzb24pClNvbHV0aW9uOiAgIE9ubHkgZGVsZXRlIHRoZSB2YXJpYWJsZSB3aGVuIGl0IGV4aXN0cy4KRmlsZXM6CSAgICBydW50aW1lL2Z0cGx1Z2luLnZpbQoKUGF0Y2ggNi4wLjAxNgpQcm9ibGVtOiAgICBidWZucigpLCBidWZuYW1lKCkgYW5kIGJ1Zndpbm5yKCkgZG9uJ3QgZmluZCB1bmxpc3RlZCBidWZmZXJzIHdoZW4KCSAgICB0aGUgYXJndW1lbnQgaXMgYSBzdHJpbmcuIChIYXJpIEtyaXNobmEgRGFyYSkKCSAgICBBbHNvIGZvciBzZXRidWZ2YXIoKSBhbmQgZ2V0YnVmdmFyKCkuClNvbHV0aW9uOiAgIEFsc28gZmluZCB1bmxpc3RlZCBidWZmZXJzLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4wMTcKUHJvYmxlbTogICAgV2hlbiAndHR5YnVpbHRpbicgaXMgc2V0IGFuZCBhIGJ1aWx0aW4gdGVybWNhcCBlbnRyeSBkZWZpbmVzIHRfQ28KCSAgICBhbmQgdGhlIGV4dGVybmFsIG9uZSBkb2Vzbid0LCBpdCBnZXRzIHJlc2V0IHRvIGVtcHR5LiAoRGF2aWQKCSAgICBIYXJyaXNvbikKU29sdXRpb246ICAgT25seSBzZXQgdF9DbyB3aGVuIGl0IHdhc24ndCBzZXQgeWV0LgpGaWxlczoJICAgIHNyYy90ZXJtLmMKClBhdGNoIDYuMC4wMTgKUHJvYmxlbTogICAgSW5pdGlhbGl6aW5nICdlbmNvZGluZycgbWF5IGNhdXNlIGEgY3Jhc2ggd2hlbiBzZXRsb2NhbGUoKSBpcyBub3QKCSAgICB1c2VkLiAoRGFueSBTdC1BbWFudCkKU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgTlVMTCBwb2ludGVyLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjAuMDE5ClByb2JsZW06ICAgIENvbnZlcnRpbmcgYSBzdHJpbmcgd2l0aCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgdG8gYSBwcmludGFibGUKCSAgICBzdHJpbmcsIGUuZy4sIHdpdGggc3RydHJhbnMoKSwgbWF5IGNhdXNlIGEgY3Jhc2guIChUb21hcyBaZWxsZXJpbikKU29sdXRpb246ICAgQ29ycmVjdGx5IGNvbXB1dGUgdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IGluIHRyYW5zc3RyKCkuCkZpbGVzOgkgICAgc3JjL2NoYXJzZXQuYwoKUGF0Y2ggNi4wLjAyMApQcm9ibGVtOiAgICBXaGVuIG9idGFpbmluZyB0aGUgdmFsdWUgb2YgYSBnbG9iYWwgdmFyaWFibGUgaW50ZXJuYWxseSwgY291bGQKCSAgICBnZXQgdGhlIGZ1bmN0aW9uLWxvY2FsIHZhbHVlIGluc3RlYWQuICBBcHBsaWVzIHRvIHVzaW5nIDxMZWFkZXI+CgkgICAgYW5kIDxMb2NhbExlYWRlcj4gYW5kIHJlc2V0dGluZyBoaWdobGlnaHRpbmcgaW4gYSBmdW5jdGlvbi4KU29sdXRpb246ICAgUHJlcGVuZCAiZzoiIHRvIHRoZSB2YXJpYWJsZSBuYW1lLiAoQXJpYyBCbHVtZXIpCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jLCBzcmMvdGVybS5jCgpQYXRjaCA2LjAuMDIxClByb2JsZW06ICAgIFRoZSAnY3Njb3BlcGF0aGNvbXAnIG9wdGlvbiBkaWRuJ3Qgd29yay4KU29sdXRpb246ICAgQ2hhbmdlIFVTRV9DU0NPUEUgdG8gRkVBVF9DU0NPUEUuIChNYXJrIEZlbmcpCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjAuMDIyClByb2JsZW06ICAgIFdoZW4gdXNpbmcgdGhlICdsYW5nbWFwJyBvcHRpb24sIHRoZSBzZWNvbmQgY2hhcmFjdGVyIG9mIGEgY29tbWFuZAoJICAgIHN0YXJ0aW5nIHdpdGggImciIGlzbid0IGFkanVzdGVkLgpTb2x1dGlvbjogICBBcHBseSAnbGFuZ21hcCcgdG8gdGhlIHNlY29uZCBjaGFyYWN0ZXIuIChBbGV4IEthcHJhbm9mZikKRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4wMjMKUHJvYmxlbTogICAgTG9hZGluZyB0aGUgbGhhc2tlbGwgc3ludGF4IGRvZXNuJ3Qgd29yay4gKFRob3JlIEIuIEthcmxzZW4pClNvbHV0aW9uOiAgIFVzZSAiOnJ1bnRpbWUiIGluc3RlYWQgb2YgInNvdXJjZSIgdG8gbG9hZCBoYXNrZWxsLnZpbS4KRmlsZXM6CSAgICBydW50aW1lL3N5bnRheC9saGFza2VsbC52aW0KClBhdGNoIDYuMC4wMjQKUHJvYmxlbTogICAgVXNpbmcgIkNUUkwtViB1IDk5MDAiIGluIEluc2VydCBtb2RlIG1heSBjYXVzZSBhIGNyYXNoLiAoTm9haAoJICAgIExldml0dCkKU29sdXRpb246ICAgRG9uJ3QgaW5zZXJ0IGEgTlVMIGJ5dGUgaW4gdGhlIHRleHQsIHVzZSBhIG5ld2xpbmUuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMC4wMjUKUHJvYmxlbTogICAgVGhlIHBhdHRlcm4gIlx2eCgufCQpIiBkb2Vzbid0IG1hdGNoICJ4IiBhdCB0aGUgZW5kIG9mIGEgbGluZS4KCSAgICAoUHJlYmVuIFBlcHBlIEd1bGRiZXJnKQpTb2x1dGlvbjogICBBbHdheXMgc2VlIGEgIiQiIGFzIGVuZC1vZi1saW5lIGFmdGVyICJcdiIuICBEbyB0aGUgc2FtZSBmb3IgIl4iLgpGaWxlczoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4wLjAyNgpQcm9ibGVtOiAgICBHVEs6IFdoZW4gdXNpbmcgYXJyb3cga2V5cyB0byBuYXZpZ2F0ZSB0aHJvdWdoIHRoZSBtZW51cywgdGhlCgkgICAgc2VwYXJhdG9ycyBhcmUgc2VsZWN0ZWQuClNvbHV0aW9uOiAgIFNldCB0aGUgc2VwYXJhdG9ycyAiaW5zZW5zaXRpdmUiLiAoUGF2ZWwgS2Fua292c2t5KQpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMsIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjAuMDI3ClByb2JsZW06ICAgIFZNUzogUHJpbnRpbmcgZG9lc24ndCB3b3JrLCB0aGUgZmlsZSBpcyBkZWxldGVkIHRvbyBxdWlja2x5LgoJICAgIE5vIGxvbmdlciBuZWVkIHRoZSBWTVMgc3BlY2lmaWMgcHJpbnRpbmcgbWVudS4KCSAgICBnZXRob3N0bmFtZSgpIGlzIG5vdCBhdmFpbGFibGUgd2l0aCBWQVhDLgoJICAgIFRoZSBtYWtlZmlsZSB3YXMgbGFja2luZyBzZWxlY3Rpb24gb2YgdGhlIHRpbnktaHVnZSBmZWF0dXJlIHNldC4KU29sdXRpb246ICAgQWRqdXN0IHRoZSAncHJpbnRleHByJyBvcHRpb24gZGVmYXVsdC4gIEZpeCB0aGUgb3RoZXIgcHJvYmxlbXMgYW5kCgkgICAgdXBkYXRlIHRoZSBkb2N1bWVudGF0aW9uLiAgKFpvbHRhbiBBcnBhZGZmeSkKRmlsZXM6CSAgICBydW50aW1lL2RvYy9vc192bXMudHh0LCBydW50aW1lL21lbnUudmltLCBzcmMvSU5TVEFMTHZtcy50eHQsCgkgICAgc3JjL01ha2Vfdm1zLm1tcywgc3JjL29wdGlvbi5jLCBzcmMvb3NfdW5peC5jLCBzcmMvb3Nfdm1zX2NvbmYuaAoKUGF0Y2ggNi4wLjAyOApQcm9ibGVtOiAgICBDYW4ndCBjb21waWxlIHdpdGhvdXQgK3ZpcnR1YWxlZGl0IGFuZCB3aXRoICt2aXN1YWxleHRyYS4gKEdlemEKCSAgICBMYWtuZXIpClNvbHV0aW9uOiAgIEFkZCBhbiAjaWZkZWYgZm9yICt2aXJ0dWFsZWRpdC4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMC4wMjkKUHJvYmxlbTogICAgV2hlbiBtYWtpbmcgYSBjaGFuZ2UgaW4gbGluZSAxLCB0aGVuIGluIGxpbmUgMiBhbmQgdGhlbiBkZWxldGluZwoJICAgIGxpbmUgMSwgdW5kbyBpbmZvIGNvdWxkIGJlIHdyb25nLiAgT25seSB3aGVuIHRoZSBjaGFuZ2VzIGFyZSB1bmRvbmUKCSAgICBhdCBvbmNlLiAoR2VyaGFyZCBIb2NoaG9semVyKQpTb2x1dGlvbjogICBXaGVuIG5vdCBzYXZpbmcgYSBsaW5lIGZvciB1bmRvIGJlY2F1c2UgaXQgd2FzIGFscmVhZHkgZG9uZQoJICAgIGJlZm9yZSwgcmVtZW1iZXIgZm9yIHdoaWNoIGVudHJ5IHRoZSBsYXN0IGxpbmUgbXVzdCBiZSBjb21wdXRlZC4KCSAgICBBZGRlZCB1ZV9nZXRib3RfZW50cnkgcG9pbnRlciBmb3IgdGhpcy4gIFdoZW4gdGhlIG51bWJlciBvZiBsaW5lcwoJICAgIGNoYW5nZXMsIGFkanVzdCB0aGUgcG9zaXRpb24gb2YgbmV3ZXIgdW5kbyBlbnRyaWVzLgpGaWxlczoJICAgIHNyYy9zdHJ1Y3RzLmgsIHNyYy91bmRvLmMKClBhdGNoIDYuMC4wMzAKUHJvYmxlbTogICAgVXNpbmcgIjpzb3VyY2UhIGZpbGUiIGRvZXNuJ3Qgd29yayBpbnNpZGUgYSBsb29wIG9yIGFmdGVyCgkgICAgIjphcmdkbyIuIChQYXZvbCBKdWhhcykKU29sdXRpb246ICAgRXhlY3V0ZSB0aGUgY29tbWFuZHMgaW4gdGhlIGZpbGUgcmlnaHQgYXdheSwgZG8gbm90IGxldCB0aGUgbWFpbgoJICAgIGxvb3AgZG8gaXQuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMsIHNyYy9leF9kb2NtZC5jLCBzcmMvZ2V0Y2hhci5jLCBzcmMvZ2xvYmFscy5oLAoJICAgIHNyYy9wcm90by9leF9kb2NtZC5wcm8sIHNyYy9wcm90by9nZXRjaGFyLnBybwoKUGF0Y2ggNi4wLjAzMQpQcm9ibGVtOiAgICBOZXh0c3RlcCBkb2Vzbid0IGhhdmUgc2V0ZW52KCkgb3IgcHV0ZW52KCkuICAoSm9obiBCZXBwdSkKU29sdXRpb246ICAgTW92ZSBwdXRlbnYoKSBmcm9tIHB0eS5jIHRvIG1pc2MyLmMKRmlsZXM6CSAgICBzcmMvbWlzYzIuYywgc3JjL3B0eS5jCgpQYXRjaCA2LjAuMDMyClByb2JsZW06ICAgIFdoZW4gY2hhbmdpbmcgYSBzZXR0aW5nIHRoYXQgYWZmZWN0cyBhbGwgZm9sZHMsIHRoZXkgYXJlIG5vdAoJICAgIGRpc3BsYXllZCBpbW1lZGlhdGVseS4KU29sdXRpb246ICAgU2V0IHRoZSByZWRyYXcgZmxhZyBpbiBmb2xkVXBkYXRlQWxsKCkuCkZpbGVzOgkgICAgc3JjL2ZvbGQuYwoKUGF0Y2ggNi4wLjAzMwpQcm9ibGVtOiAgICBVc2luZyAnd2lsZG1lbnUnIG9uIE1TLVdpbmRvd3MsIGZpbGUgbmFtZXMgdGhhdCBpbmNsdWRlIGEgc3BhY2UKCSAgICBhcmUgb25seSBkaXNwbGF5ZWQgc3RhcnRpbmcgd2l0aCB0aGF0IHNwYWNlLiAoWGllIFl1aGVuZykKU29sdXRpb246ICAgRG9uJ3QgcmVjb2duaXplIGEgYmFja3NsYXNoIGJlZm9yZSBhIHNwYWNlIGFzIGEgcGF0aCBzZXBhcmF0b3IuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjAuMDM0ClByb2JsZW06ICAgIENhbGxpbmcgc2VhcmNocGFpcigpIHdpdGggdGhyZWUgYXJndW1lbnRzIGNvdWxkIHJlc3VsdCBpbiBhIGNyYXNoCgkgICAgb3Igc3RyYW5nZSBlcnJvciBtZXNzYWdlLiAoS2FsbGUgQmpvcmtsaWQpClNvbHV0aW9uOiAgIERvbid0IHVzZSB0aGUgZmlmdGggYXJndW1lbnQgd2hlbiB0aGVyZSBpcyBubyBmb3VydGggYXJndW1lbnQuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4wLjAzNQpQcm9ibGVtOiAgICBUaGUgbWVudSBpdGVtIEVkaXQvR2xvYmFsX1NldHRpbmdzL1RvZ2dsZV9Ub29sYmFyIGRvZXNuJ3Qgd29yawoJICAgIHdoZW4gJ2lnbm9yZWNhc2UnIGlzIHNldC4gKEFsbGVuIENhc3RhYmFuKQpTb2x1dGlvbjogICBBbHdheXMgbWF0Y2ggY2FzZSB3aGVuIGNoZWNraW5nIGlmIGEgZmxhZyBpcyBhbHJlYWR5IHByZXNlbnQgaW4KCSAgICAnZ3Vpb3B0aW9ucycuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4wLjAzNgpQcm9ibGVtOiAgICBPUy8yLCBNUy1ET1MgYW5kIE1TLVdpbmRvd3M6IFVzaW5nIGEgcGF0aCB0aGF0IHN0YXJ0cyB3aXRoIGEKCSAgICBzbGFzaCBpbiAndGFncycgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkLiAoTWF0aGlhcyBLb2VocmVyKQpTb2x1dGlvbjogICBPbmx5IHVzZSB0aGUgZHJpdmUsIG5vdCB0aGUgd2hvbGUgcGF0aCB0byB0aGUgY3VycmVudCBkaXJlY3RvcnkuCgkgICAgQWxzbyBtYWtlIGl0IHdvcmsgZm9yICJjOmRpci9maWxlIi4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4wLjAzNwpQcm9ibGVtOiAgICBXaGVuIHRoZSB1c2VyIGhhcyBzZXQgImRpZF9pbnN0YWxsX3N5bnRheF9tZW51IiB0byBhdm9pZCB0aGUKCSAgICBkZWZhdWx0IFN5bnRheCBtZW51IGl0IHN0aWxsIGFwcGVhcnMuIChWaXJnaWxpbykKU29sdXRpb246ICAgRG9uJ3QgYWRkIHRoZSB0aHJlZSBkZWZhdWx0IGl0ZW1zIHdoZW4gImRpZF9pbnN0YWxsX3N5bnRheF9tZW51IgoJICAgIGlzIHNldC4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjAuMDM4ClByb2JsZW06ICAgIFdoZW4gJ3NlbGVjdGlvbicgaXMgImV4Y2x1c2l2ZSIsIGRlbGV0aW5nIGEgYmxvY2sgb2YgdGV4dCBhdCB0aGUKCSAgICBlbmQgb2YgYSBsaW5lIGNhbiBsZWF2ZSB0aGUgY3Vyc29yIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBsaW5lLgpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBjdXJzb3IgcG9zaXRpb24uCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjAuMDM5ClByb2JsZW06ICAgICJnUCIgbGVhdmVzIHRoZSBjdXJzb3IgaW4gdGhlIHdyb25nIHBvc2l0aW9uIHdoZW4gJ3ZpcnR1YWxlZGl0JyBpcwoJICAgIHVzZWQuICBVc2luZyAiYyIgaW4gYmxvY2t3aXNlIFZpc3VhbCBtb2RlIGxlYXZlcyB0aGUgY3Vyc29yIGluIGEKCSAgICBzdHJhbmdlIHBvc2l0aW9uLgpTb2x1dGlvbjogICBGb3IgImdQIiByZXNldCB0aGUgImNvbGFkZCIgZmllbGQgZm9yIHRoZSAnXSBtYXJrLiAgRm9yICJjIiBsZWF2ZQoJICAgIHRoZSBjdXJzb3Igb24gdGhlIGxhc3QgaW5zZXJ0ZWQgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4wLjA0MApQcm9ibGVtOiAgICBXaGVuICdmaWxlZW5jb2RpbmcnIGlzIGludmFsaWQgYW5kIHdyaXRpbmcgZmFpbHMgYmVjYXVzZSBvZgoJICAgIHRoaXMsIHRoZSBvcmlnaW5hbCBmaWxlIGlzIGdvbmUuIChFcmljIENhcmxpZXIpClNvbHV0aW9uOiAgIFJlc3RvcmUgdGhlIG9yaWdpbmFsIGZpbGUgZnJvbSB0aGUgYmFja3VwLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjA0MQpQcm9ibGVtOiAgICBVc2luZyAiOmxhbmd1YWdlIG1lc3NhZ2VzIGVuIiB3aGVuIExDX01FU1NBR0VTIGlzIHVuZGVmaW5lZAoJICAgIHJlc3VsdHMgaW4gc2V0dGluZyBMQ19DVFlQRS4gKEVyaWMgQ2FybGllcikKU29sdXRpb246ICAgU2V0ICRMQ19NRVNTQUdFUyBpbnN0ZWFkLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjAuMDQyClByb2JsZW06ICAgICI6bWtzZXNzaW9uIiBjYW4ndCBoYW5kbGUgZmlsZSBuYW1lcyB3aXRoIGEgc3BhY2UuClNvbHV0aW9uOiAgIEVzY2FwZSBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gZmlsZSBuYW1lcyB3aXRoIGEgYmFja3NsYXNoLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjAuMDQzClByb2JsZW06ICAgIFBhdGNoIDYuMC4wNDEgd2FzIHdyb25nLgpTb2x1dGlvbjogICBVc2UgbWNoX2dldGVudigpIGluc3RlYWQgb2YgdmltX2dldGVudigpLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjAuMDQ0ClByb2JsZW06ICAgIFVzaW5nIGEgImNvbnRhaW5lZGluIiBsaXN0IGZvciBhIHN5bnRheCBpdGVtIGRvZXNuJ3Qgd29yayBmb3IgYW4KCSAgICBpdGVtIHRoYXQgZG9lc24ndCBoYXZlIGEgImNvbnRhaW5zIiBhcmd1bWVudC4gIEFsc28sICJjb250YWluZWRpbiIKCSAgICBkb2Vzbid0IGlnbm9yZSBhIHRyYW5zcGFyZW50IGl0ZW0uIChUaW1vIEZyZW5heSkKU29sdXRpb246ICAgV2hlbiB0aGVyZSBpcyBhICJjb250YWluZWRpbiIgYXJndW1lbnQgc29tZXdoZXJlLCBhbHdheXMgY2hlY2sgZm9yCgkgICAgY29udGFpbmVkIGl0ZW1zLiAgRG9uJ3QgY2hlY2sgZm9yIHRoZSB0cmFuc3BhcmVudCBpdGVtIGJ1dCB0aGUKCSAgICBpdGVtIGl0J3MgY29udGFpbmVkIGluLgpGaWxlczoJICAgIHNyYy9zdHJ1Y3RzLmgsIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4wLjA0NQpQcm9ibGVtOiAgICBBZnRlciBjcmVhdGluZyBhIGZvbGQgd2l0aCBhIFZpc3VhbCBzZWxlY3Rpb24sIGFub3RoZXIgd2luZG93CgkgICAgd2l0aCB0aGUgc2FtZSBidWZmZXIgc3RpbGwgaGFzIGludmVydGVkIHRleHQuIChTYW1pIFNhbG9uZW4pClNvbHV0aW9uOiAgIFJlZHJhdyB0aGUgaW52ZXJ0ZWQgdGV4dC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4wNDYKUHJvYmxlbTogICAgV2hlbiBnZXRybGltaXQoKSByZXR1cm5zIGFuIDggYnl0ZSBudW1iZXIgdGhlIGNoZWNrIGZvciBydW5uaW5nCgkgICAgb3V0IG9mIHN0YWNrIG1heSBmYWlsLiAoQW50aG9ueSBNZWlqZXIpClNvbHV0aW9uOiAgIFNraXAgdGhlIHN0YWNrIGNoZWNrIGlmIHRoZSBsaW1pdCBkb2Vzbid0IGZpdCBpbiBhIGxvbmcuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlnLmguaW4sIHNyYy9jb25maWd1cmUuaW4sCgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4wLjA0NwpQcm9ibGVtOiAgICBVc2luZyBhIHJlZ2V4cCB3aXRoICJcKFwpIiBpbnNpZGUgYSAiXCVbXSIgaXRlbSBjYXVzZXMgYSBjcmFzaC4KCSAgICAoU2FtdWVsIExhY2FzKQpTb2x1dGlvbjogICBEb24ndCBhbGxvdyBuZXN0ZWQgYXRvbXMgaW5zaWRlICJcJVtdIi4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMC4wNDgKUHJvYmxlbTogICAgV2luMzI6IEluIHRoZSBjb25zb2xlIHRoZSBtb3VzZSBkb2Vzbid0IGFsd2F5cyB3b3JrIGNvcnJlY3RseS4KCSAgICBTb21ldGltZXMgYWZ0ZXIgZ2V0dGluZyBmb2N1cyBhIG1vdXNlIG1vdmVtZW50IGlzIGludGVycHJldGVkIGxpa2UKCSAgICBhIGJ1dHRvbiBjbGljay4KU29sdXRpb246ICAgVXNlIGEgZGlmZmVyZW50IGZ1bmN0aW9uIHRvIG9idGFpbiB0aGUgbnVtYmVyIG9mIG1vdXNlIGJ1dHRvbnMuCgkgICAgQXZvaWQgcmVjb2duaXppbmcgYSBidXR0b24gcHJlc3MgZnJvbSB1bmRlZmluZWQgYml0cy4gKFZpbmNlIE5lZ3JpKQpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjAuMDQ5ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgZXZpbSB0aGUgaW50cm8gc2NyZWVuIGlzIG1pc2xlYWRpbmcuIChBZHJpYW4gTmFnbGUpClNvbHV0aW9uOiAgIE1lbnRpb24gd2hldGhlciAnaW5zZXJ0bW9kZScgaXMgc2V0IGFuZCB0aGUgbWVudXMgdG8gYmUgdXNlZC4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltLCBzcmMvdmVyc2lvbi5jCgpQYXRjaCA2LjAuMDUwClByb2JsZW06ICAgIFVURi04OiAidml3IiBkb2Vzbid0IGluY2x1ZGUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgYmVmb3JlIHRoZQoJICAgIGN1cnNvci4gKEJlcnRpbG8gV2VubmVyZ3JlbikKU29sdXRpb246ICAgVXNlIGRlY19jdXJzb3IoKSBpbnN0ZWFkIG9mIGRlY3JlbWVudGluZyB0aGUgY29sdW1uIG51bWJlci4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMC4wNTEKUHJvYmxlbTogICAgVVRGLTg6IFVzaW5nIENUUkwtUiBvbiB0aGUgY29tbWFuZCBsaW5lIGRvZXNuJ3QgaW5zZXJ0IGNvbXBvc2luZwoJICAgIGNoYXJhY3RlcnMuIChSb24gQWFyb24pClNvbHV0aW9uOiAgIEFsc28gaW5jbHVkZSB0aGUgY29tcG9zaW5nIGNoYXJhY3RlcnMgYW5kIGZpeCByZWRyYXdpbmcgdGhlbS4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL29wcy5jCgpQYXRjaCA2LjAuMDUyClByb2JsZW06ICAgIFRoZSBjaGVjayBmb3IgcmxpbV90IGluIHBhdGNoIDYuMC4wNDYgZG9lcyBub3Qgd29yayBvbiBzb21lCgkgICAgc3lzdGVtcy4gKFpkZW5layBTZWtlcmEpClNvbHV0aW9uOiAgIEFsc28gbG9vayBpbiBzeXMvcmVzb3VyY2UuaCBmb3IgcmxpbV90LgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4wLjA1MyAoZXh0cmEpClByb2JsZW06ICAgIFZhcmlvdXMgcHJvYmxlbXMgd2l0aCBRTlguClNvbHV0aW9uOiAgIE1pbm9yIGZpeCBmb3IgY29uZmlndXJlLiAgU3dpdGNoIG9uIHRlcm1pbmFsIGNsaXBib2FyZCBzdXBwb3J0IGluCgkgICAgbWFpbi5jLiAgRml4ICJwdGVybSIgbW91c2Ugc3VwcG9ydC4gIG9zX3FueC5jIGRpZG4ndCBidWlsZCB3aXRob3V0CgkgICAgcGhvdG9uLiAoSnVsaWFuIEtpbnJhaWQpCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvZ3VpX3Bob3Rvbi5jLAoJICAgIHNyYy9tYWluLmMsIHNyYy9taXNjMi5jLCBzcmMvb3B0aW9uLmgsIHNyYy9vc19xbnguYywgc3JjL29zX3FueC5oLAoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4wLjA1NApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIG1zd2luLnZpbSwgQ1RSTC1WIHBhc3RlcyBhIGJsb2NrIG9mIHRleHQgbGlrZSBpdCBpcwoJICAgIG5vcm1hbCB0ZXh0LiAgVXNpbmcgQ1RSTC1WIGluIGJsb2Nrd2lzZSBWaXN1YWwgbW9kZSBsZWF2ZXMgIngiCgkgICAgY2hhcmFjdGVycyBiZWhpbmQuClNvbHV0aW9uOiAgIE1ha2UgQ1RSTC1WIHdvcmsgYXMgaXQgc2hvdWxkLiAgRG8gdGhlIHNhbWUgZm9yIHRoZSBQYXN0ZSBtZW51CgkgICAgZW50cmllcy4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltLCBydW50aW1lL21zd2luLnZpbQoKUGF0Y2ggNi4wLjA1NQpQcm9ibGVtOiAgICBHVEs6IFRoZSBzZWxlY3Rpb24gaXNuJ3QgY29waWVkIHRoZSBmaXJzdCB0aW1lLgpTb2x1dGlvbjogICBPd24gdGhlIHNlbGVjdGlvbiBhdCB0aGUgcmlnaHQgbW9tZW50LgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjAuMDU2ClByb2JsZW06ICAgIFVzaW5nICJDVFJMLU8gY3ciIGluIEluc2VydCBtb2RlIHJlc3VsdHMgaW4gYSBuZXN0ZWQgSW5zZXJ0IG1vZGUuCgkgICAgPEVzYz4gZG9lc24ndCBsZWF2ZSBJbnNlcnQgbW9kZSB0aGVuLgpTb2x1dGlvbjogICBPbmx5IHVzZSBuZXN0ZWQgSW5zZXJ0IG1vZGUgd2hlbiAnaW5zZXJ0bW9kZScgaXMgc2V0IG9yIHdoZW4gYQoJICAgIG1hcHBpbmcgaXMgdXNlZC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4wNTcKUHJvYmxlbTogICAgVXNpbmcgIjp3aW5jbWQgZ30iIGluIGEgZnVuY3Rpb24gZG9lc24ndCB3b3JrLiAgKEdhcnkgSG9sbG93YXkpClNvbHV0aW9uOiAgIEV4ZWN1dGUgdGhlIGNvbW1hbmQgZGlyZWN0bHksIGluc3RlYWQgb2YgcHV0dGluZyBpdCBpbiB0aGUKCSAgICB0eXBlYWhlYWQgYnVmZmVyLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYywgc3JjL3Byb3RvL25vcm1hbC5wcm8sIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4wLjA1OApQcm9ibGVtOiAgICBXaGVuIGEgQ3Vyc29yaG9sZCBhdXRvY29tbWFuZCBtb3ZlZCB0aGUgY3Vyc29yLCB0aGUgcnVsZXIgd2Fzbid0CgkgICAgdXBkYXRlZC4gKEJvaGRhbiBWbGFzeXVrKQpTb2x1dGlvbjogICBVcGRhdGUgdGhlIHJ1bGVyIGFmdGVyIGV4ZWN1dGluZyB0aGUgYXV0b2NvbW1hbmRzLgpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4wLjA1OQpQcm9ibGVtOiAgICBIaWdobGlnaHRpbmcgZm9yICdobHNlYXJjaCcgaXNuJ3QgdmlzaWJsZSBpbiBsaW5lcyB0aGF0IGFyZQoJICAgIGhpZ2hsaWdodGVkIGZvciBkaWZmIGhpZ2hsaWdodGluZy4gIChHYXJ5IEhvbGxvd2F5KQpTb2x1dGlvbjogICBMZXQgJ2hsc2VhcmNoJyBoaWdobGlnaHRpbmcgb3ZlcnJ1bGUgZGlmZiBoaWdobGlnaHRpbmcuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjAuMDYwClByb2JsZW06ICAgIE1vdGlmOiBXaGVuIHRoZSB0b29sdGlwIGlzIHRvIGJlIHBvcHBlZCB1cCwgVmltIGNyYXNoZXMuCgkgICAgKEdhcnkgSG9sbG93YXkpClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIE5VTEwgcmV0dXJuIHZhbHVlIGZyb20gZ3VpX21vdGlmX2ZvbnRzZXQyZm9udGxpc3QoKS4KRmlsZXM6CSAgICBzcmMvZ3VpX2JldmFsLmMKClBhdGNoIDYuMC4wNjEKUHJvYmxlbTogICAgVGhlIHRvb2xiYXIgYnV0dG9ucyB0byBsb2FkIGFuZCBzYXZlIGEgc2Vzc2lvbiBkbyBub3QgY29ycmVjdGx5CgkgICAgdXNlIHY6dGhpc19zZXNzaW9uLgpTb2x1dGlvbjogICBDaGVjayBmb3Igdjp0aGlzX3Nlc3Npb24gdG8gYmUgZW1wdHkgaW5zdGVhZCBvZiBleGlzdGluZy4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjAuMDYyClByb2JsZW06ICAgIENyYXNoIHdoZW4gJ3ZlcmJvc2UnIGlzID4gMyBhbmQgdXNpbmcgIjpzaGVsbCIuIChZZWdhcHBhbgoJICAgIExha3NobWFuYW4pClNvbHV0aW9uOiAgIEF2b2lkIGdpdmluZyBhIE5VTEwgcG9pbnRlciB0byBwcmludGYoKS4gIEFsc28gb3V0cHV0IGEgbmV3bGluZQoJICAgIGFuZCBzd2l0Y2ggdGhlIGN1cnNvciBvbi4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4wLjA2MwpQcm9ibGVtOiAgICBXaGVuICdjcG9wdGlvbnMnIGluY2x1ZGVzICIkIiwgdXNpbmcgImN3IiB0byB0eXBlIGEgJyknIG9uIHRvcCBvZgoJICAgIHRoZSAiJCIgZG9lc24ndCB1cGRhdGUgc3ludGF4IGhpZ2hsaWdodGluZyBhZnRlciBpdC4KU29sdXRpb246ICAgU3RvcCBkaXNwbGF5aW5nIHRoZSAiJCIgd2hlbiB0eXBpbmcgYSAnKScgaW4gaXRzIHBvc2l0aW9uLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4wLjA2NCAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBOU0lTIGluc3RhbGwgc2NyaXB0IGRvZXNuJ3Qgd29yayB3aXRoIG5ld2VyIHZlcnNpb25zIG9mIE5TSVMuCgkgICAgVGhlIGRpZmYgZmVhdHVyZSBkb2Vzbid0IHdvcmsgd2hlbiB0aGVyZSBpc24ndCBhIGdvb2QgZGlmZi5leGUgb24KCSAgICB0aGUgc3lzdGVtLgpTb2x1dGlvbjogICBSZXBsYWNlIHRoZSBHZXRQYXJlbnREaXIgaW5zdHJ1Y3Rpb24gYnkgYSB1c2VyIGZ1bmN0aW9uLgoJICAgIEZpeCBhIGZldyBjb3NtZXRpYyBwcm9ibGVtcy4gIFVzZSBkZWZpbmVkIGNvbnN0YW50cyBmb3IgdGhlCgkgICAgdmVyc2lvbiBudW1iZXIsIHNvIHRoYXQgaXQncyBkZWZpbmVkIGluIG9uZSBwbGFjZSBvbmx5LgoJICAgIE9ubHkgYWNjZXB0IHRoZSBpbnN0YWxsIGRpcmVjdG9yeSB3aGVuIGl0IGVuZHMgaW4gInZpbSIuCgkgICAgKEVkdWFyZG8gRmVybmFuZGV6KQoJICAgIEFkZCBhIGRpZmYuZXhlIGFuZCB1c2UgaXQgZnJvbSB0aGUgZGVmYXVsdCBfdmltcmMuCkZpbGVzOgkgICAgbnNpcy9ndmltLm5zaSwgbnNpcy9SRUFETUUudHh0LCBzcmMvZG9zaW5zdC5jCgpQYXRjaCA2LjAuMDY1ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjpub3JtYWwiIGluICdpbmRlbnRleHByJyBpdCBtYXkgdXNlIHJlZG8gY2hhcmFjdGVycwoJICAgIGJlZm9yZSBpdHMgYXJndW1lbnQuICAoTmVpbCBCaXJkKQpTb2x1dGlvbjogICBTYXZlIGFuZCByZXN0b3JlIHRoZSBzdHVmZiBidWZmZXIgaW4gZXhfbm9ybWFsKCkuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9nZXRjaGFyLmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMC4wNjYKUHJvYmxlbTogICAgU29tZXRpbWVzIHVuZG8gZm9yIG9uZSBjb21tYW5kIGlzIHNwbGl0IGludG8gdHdvIHVuZG8gYWN0aW9ucy4KCSAgICAoSGFsaW0gU2FsbWFuKQpTb2x1dGlvbjogICBEb24ndCBzZXQgdGhlIHVuZG8tc3luY2VkIGZsYWcgd2hlbiByZXVzaW5nIGEgbGluZSB0aGF0IHdhcwoJICAgIGFscmVhZHkgc2F2ZWQgZm9yIHVuZG8uCkZpbGVzOgkgICAgc3JjL3VuZG8uYwoKUGF0Y2ggNi4wLjA2NwpQcm9ibGVtOiAgICBpZl94Y21kc3J2LmMgZG9lc24ndCBjb21waWxlIG9uIHN5c3RlbXMgd2hlcmUgZmRfc2V0IGlzbid0IGRlZmluZWQKCSAgICBpbiB0aGUgdXN1YWwgaGVhZGVyIGZpbGUgKGUuZy4sIEFJWCkuIChNYXJrIFdhZ2dvbmVyKQpTb2x1dGlvbjogICBJbmNsdWRlIHN5cy9zZWxlY3QuaCBpbiBpZl94Y21kc3J2LmMgZm9yIHN5c3RlbXMgdGhhdCBoYXZlIGl0LgpGaWxlczoJICAgIHNyYy9pZl94Y21kc3J2LmMKClBhdGNoIDYuMC4wNjgKUHJvYmxlbTogICAgV2hlbiBmb3JtYXR0aW5nIGEgVmlzdWFsbHkgc2VsZWN0ZWQgYXJlYSB3aXRoICJncSIgYW5kIHRoZSBudW1iZXIKCSAgICBvZiBsaW5lcyBpbmNyZWFzZXMgdGhlIGxhc3QgbGluZSBtYXkgbm90IGJlIHJlZHJhd24gY29ycmVjdGx5LgoJICAgIChZZWdhcHBhbiBMYWtzaG1hbmFuKQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBhcmVhIHRvIGJlIHJlZHJhd24gZm9yIGluc2VydGVkL2RlbGV0ZWQgbGluZXMuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjAuMDY5ClByb2JsZW06ICAgIFVzaW5nICJLIiBvbiBhIHdvcmQgdGhhdCBpbmNsdWRlcyBhICIhIiBjYXVzZXMgYSAiTm8gcHJldmlvdXMKCSAgICBjb21tYW5kIiBlcnJvciwgYmVjYXVzZSB0aGUgIiEiIGlzIGV4cGFuZGVkLiAoQ3JhaWcgSmVmZnJpZXMpClNvbHV0aW9uOiAgIFB1dCBhIGJhY2tzbGFzaCBiZWZvcmUgdGhlICIhIi4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4wNzAKUHJvYmxlbTogICAgV2luMzI6IFRoZSBlcnJvciBtZXNzYWdlIGZvciBhIGZhaWxlZCBkeW5hbWljIGxpbmtpbmcgb2YgYSBQZXJsLAoJICAgIFJ1YnksIFRjbCBhbmQgUHl0aG9uIGxpYnJhcnkgaXMgdW5jbGVhciBhYm91dCB3aGF0IHdlbnQgd3JvbmcuClNvbHV0aW9uOiAgIEdpdmUgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgb3IgZnVuY3Rpb24gdGhhdCBjb3VsZCBub3QgYmUgbG9hZGVkLgoJICAgIEFsc28gZm9yIHRoZSBpY29udiBhbmQgZ2V0dGV4dCBsaWJyYXJpZXMgd2hlbiAndmVyYm9zZScgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9pZl9wZXJsLnhzLCBzcmMvaWZfcHl0aG9uLmMsIHNyYy9pZl9ydWJ5LmMsCgkgICAgc3JjL2lmX3RjbC5jLCBzcmMvbWJ5dGUuYywgc3JjL29zX3dpbjMyLmMsIHNyYy9wcm90by9pZl9wZXJsLnBybywKCSAgICBzcmMvcHJvdG8vaWZfcHl0aG9uLnBybywgc3JjL3Byb3RvL2lmX3J1YnkucHJvLAoJICAgIHNyYy9wcm90by9pZl90Y2wucHJvLCBzcmMvcHJvdG8vbWJ5dGUucHJvCgpQYXRjaCA2LjAuMDcxClByb2JsZW06ICAgIFRoZSAiaXJpcy1hbnNpIiBidWlsdGluIHRlcm1jYXAgaXNuJ3QgdmVyeSBnb29kLgpTb2x1dGlvbjogICBGaXggdGhlIHdyb25nIGVudHJpZXMuIChEYXZpZCBIYXJyaXNvbikKRmlsZXM6CSAgICBzcmMvdGVybS5jCgpQYXRjaCA2LjAuMDcyClByb2JsZW06ICAgIFdoZW4gJ2xhenlyZWRyYXcnIGlzIHNldCwgYSBtYXBwaW5nIHRoYXQgc3RvcHMgVmlzdWFsIG1vZGUsIG1vdmVzCgkgICAgdGhlIGN1cnNvciBhbmQgc3RhcnRzIFZpc3VhbCBtb2RlIGFnYWluIGNhdXNlcyBhIHJlZHJhdyBwcm9ibGVtLgoJICAgIChCcmlhbiBTaWx2ZXJtYW4pClNvbHV0aW9uOiAgIFJlZHJhdyBib3RoIHRoZSBvbGQgYW5kIHRoZSBuZXcgVmlzdWFsIGFyZWEgd2hlbiBuZWNlc3NhcnkuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMC4wNzMgKGV4dHJhKQpQcm9ibGVtOiAgICBESkdQUDogV2hlbiB1c2luZyBDVFJMLVogdG8gc3RhcnQgYSBzaGVsbCwgdGhlIHByb21wdCBpcyBoYWxmd2F5CgkgICAgdGhlIHRleHQuIChWb2xrZXIgS2llZmVsKQpTb2x1dGlvbjogICBQb3NpdGlvbiB0aGUgc3lzdGVtIGN1cnNvciBiZWZvcmUgc3RhcnRpbmcgdGhlIHNoZWxsLgpGaWxlczoJICAgIHNyYy9vc19tc2Rvcy5jCgpQYXRjaCA2LjAuMDc0ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIiYiIGluIGEgc3Vic3RpdHV0ZSBzdHJpbmcgYSBtdWx0aS1ieXRlIGNoYXJhY3RlciB3aXRoCgkgICAgYSB0cmFpbGJ5dGUgMHg1YyBpcyBub3QgaGFuZGxlZCBjb3JyZWN0bHkuClNvbHV0aW9uOiAgIFJlY29nbml6ZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgaW5zaWRlIHRoZSAiJiIgcGFydC4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMC4wNzUKUHJvYmxlbTogICAgV2hlbiBjbG9zaW5nIGEgaG9yaXpvbnRhbGx5IHNwbGl0IHdpbmRvdyB3aGlsZSAnZWFkaXJlY3Rpb24nIGlzCgkgICAgImhvciIgYW5vdGhlciBob3Jpem9udGFsbHkgc3BsaXQgd2luZG93IGlzIHN0aWxsIHJlc2l6ZWQuIChBcm9uCgkgICAgR3JpZmZpcykKU29sdXRpb246ICAgT25seSByZXNpemUgd2luZG93cyBpbiB0aGUgc2FtZSB0b3AgZnJhbWUgYXMgdGhlIHdpbmRvdyB0aGF0IGlzCgkgICAgc3BsaXQgb3IgY2xvc2VkLgpGaWxlczoJICAgIHNyYy9tYWluLmMsIHNyYy9wcm90by93aW5kb3cucHJvLCBzcmMvd2luZG93LmMKClBhdGNoIDYuMC4wNzYKUHJvYmxlbTogICAgV2FybmluZyBmb3Igd3JvbmcgcG9pbnRlciB0eXBlIHdoZW4gY29tcGlsaW5nLgpTb2x1dGlvbjogICBVc2UgY2hhciBpbnN0ZWFkIG9mIGNoYXJfdSBwb2ludGVyLgpGaWxlczoJICAgIHNyYy92ZXJzaW9uLmMKClBhdGNoIDYuMC4wNzcKUHJvYmxlbTogICAgUGF0Y2ggNi4wLjA3NSB3YXMgaW5jb21wbGV0ZS4KU29sdXRpb246ICAgRml4IGFub3RoZXIgY2FsbCB0byB3aW5fZXF1YWwoKS4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMC4wNzgKUHJvYmxlbTogICAgVXNpbmcgImRhdyIgYXQgdGhlIGVuZCBvZiBhIGxpbmUgb24gYSBzaW5nbGUtY2hhcmFjdGVyIHdvcmQgZGlkbid0CgkgICAgaW5jbHVkZSB0aGUgd2hpdGUgc3BhY2UgYmVmb3JlIGl0LiAgQXQgdGhlIGVuZCBvZiB0aGUgZmlsZSBpdAoJICAgIGRpZG4ndCB3b3JrIGF0IGFsbC4gIChHYXZpbiBTaW5jbGFpcikKU29sdXRpb246ICAgSW5jbHVkZSB0aGUgd2hpdGUgc3BhY2UgYmVmb3JlIHRoZSB3b3JkLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4wLjA3OQpQcm9ibGVtOiAgICBXaGVuICJXIiBpcyBpbiAnY3BvcHRpb25zJyBhbmQgJ2JhY2t1cGNvcHknIGlzICJubyIgb3IgImF1dG8iLCBjYW4KCSAgICBzdGlsbCBvdmVyd3JpdGUgYSByZWFkLW9ubHkgZmlsZSwgYmVjYXVzZSBpdCdzIHJlbmFtZWQuIChHYXJ5CgkgICAgSG9sbG93YXkpClNvbHV0aW9uOiAgIEFkZCBhIGNoZWNrIGZvciBhIHJlYWQtb25seSBmaWxlIGJlZm9yZSByZW5hbWluZyB0aGUgZmlsZSB0bwoJICAgIGJlY29tZSB0aGUgYmFja3VwLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjA4MApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgc2Vzc2lvbiBmaWxlIHRoYXQgaGFzIHRoZSBzYW1lIGZpbGUgaW4gdHdvIHdpbmRvd3MsCgkgICAgdGhlIGZpbGVpbmZvKCkgY2FsbCBpbiBkb19lY21kKCkgY2F1c2VzIGEgc2Nyb2xsIGFuZCBhIGhpdC1lbnRlcgoJICAgIHByb21wdC4gKFJvYmVydCBXZWJiKQpTb2x1dGlvbjogICBEb24ndCBzY3JvbGwgdGhpcyBtZXNzYWdlIHdoZW4gJ3Nob3J0bWVzcycgY29udGFpbnMgJ08nLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMC4wODEKUHJvYmxlbTogICAgQWZ0ZXIgdXNpbmcgIjpzYXZlYXMiIHRoZSBuZXcgYnVmZmVyIG5hbWUgaXMgYWRkZWQgdG8gdGhlIEJ1ZmZlcnMKCSAgICBtZW51IHdpdGggYSB3cm9uZyBudW1iZXIuIChDaGF1ay1NZWFuIFByb3VtKQpTb2x1dGlvbjogICBUcmlnZ2VyIEJ1ZkZpbGVQcmUgYW5kIEJ1ZkZpbGVQb3N0IGV2ZW50cyBmb3IgdGhlIHJlbmFtZWQgYnVmZmVyCgkgICAgYW5kIEJ1ZkFkZCBmb3IgdGhlIG9sZCBuYW1lICh3aGljaCBpcyB3aXRoIGEgbmV3IGJ1ZmZlcikuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4wLjA4MgpQcm9ibGVtOiAgICBXaGVuIHN3YXBwaW5nIHNjcmVlbnMgaW4gYW4geHRlcm0gYW5kIHRoZXJlIGlzIGFuIChlcnJvcikgbWVzc2FnZQoJICAgIGZyb20gdGhlIHZpbXJjIHNjcmlwdCwgdGhlIHNoZWxsIHByb21wdCBpcyBhZnRlciB0aGUgbWVzc2FnZS4KU29sdXRpb246ICAgT3V0cHV0IGEgbmV3bGluZSB3aGVuIHRoZXJlIHdhcyBvdXRwdXQgb24gdGhlIGFsdGVybmF0ZSBzY3JlZW4uCgkgICAgQWxzbyB3aGVuIHN0YXJ0aW5nIHRoZSBHVUkuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4wLjA4MwpQcm9ibGVtOiAgICBHVEs6IFdoZW4gY29tcGlsZWQgd2l0aG91dCBtZW51IHN1cHBvcnQgdGhlIGJ1dHRvbnMgaW4gYSBkaWFsb2cKCSAgICBkb24ndCBoYXZlIGFueSB0ZXh0LiAoRXJpayBFZGVsbWFubikKU29sdXRpb246ICAgQWRkIHRoZSB0ZXh0IGFsc28gd2hlbiBHVEtfVVNFX0FDQ0VMIGlzbid0IGRlZmluZWQuICBBbmQgZGVmaW5lCgkgICAgR1RLX1VTRV9BQ0NFTCBhbHNvIHdoZW4gbm90IHVzaW5nIG1lbnVzLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMKClBhdGNoIDYuMC4wODQKUHJvYmxlbTogICAgVVRGLTg6IGEgInIiIGNvbW1hbmQgd2l0aCBhbiBhcmd1bWVudCB0aGF0IGlzIGEga2V5bWFwIGZvciBhCgkgICAgY2hhcmFjdGVyIHdpdGggYSBjb21wb3NpbmcgY2hhcmFjdGVyIGNhbid0IGJlIHJlcGVhdGVkIHdpdGggIi4iLgoJICAgIChSYXBoYWVsIEZpbmtlbCkKU29sdXRpb246ICAgQWRkIHRoZSBjb21wb3NpbmcgY2hhcmFjdGVycyB0byB0aGUgcmVkbyBidWZmZXIuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMDg1ClByb2JsZW06ICAgIFdoZW4gJ21vdXNlZm9jdXMnIGlzIHNldCwgdXNpbmcgInMiIHRvIGdvIHRvIEluc2VydCBtb2RlIGFuZCB0aGVuCgkgICAgbW92aW5nIHRoZSBtb3VzZSBwb2ludGVyIHRvIGFub3RoZXIgd2luZG93IHN0b3BzIEluc2VydCBtb2RlLAoJICAgIHdoaWxlIHRoaXMgZG9lc24ndCBoYXBwZW4gd2l0aCAiYSIgb3IgImkiLiAoUm9iZXJ0IFdlYmIpClNvbHV0aW9uOiAgIFJlc2V0IGZpbmlzaF9vcCBiZWZvcmUgY2FsbGluZyBlZGl0KCkuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMDg2ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgImd1IiB0aGUgbWVzc2FnZSBzYXlzICJ+ZWQiLgpTb2x1dGlvbjogICBNYWtlIHRoZSBtZXNzYWdlIHNheSAiY2hhbmdlZCIuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjAuMDg3IChsYW5nKQpQcm9ibGVtOiAgICBNZXNzYWdlIHRyYW5zbGF0aW9ucyBhcmUgaW5jb3JyZWN0LCB3aGljaCBtYXkgY2F1c2UgYSBjcmFzaC4KCSAgICAoUGV0ZXIgRmlndXJhKQoJICAgIFRoZSBUdXJraXNoIHRyYW5zbGF0aW9ucyBuZWVkZWQgbW9yZSB3b3JrIGFuZCB0aGUgbWFpbnRhaW5lcgoJICAgIGRpZG4ndCBoYXZlIHRpbWUuClNvbHV0aW9uOiAgIEZpeCBvcmRlciBvZiBwcmludGYgYXJndW1lbnRzLiAgUmVtb3ZlICUyJGQgY29uc3RydWN0cy4KCSAgICBBZGQgIi12IiB0byBtc2dmbXQgdG8gZ2V0IGEgd2FybmluZyBmb3Igd3JvbmcgdHJhbnNsYXRpb25zLgoJICAgIERvbid0IGluc3RhbGwgdGhlIFR1cmtpc2ggdHJhbnNsYXRpb25zIGZvciBub3cuCgkgICAgVXBkYXRlIGEgZmV3IG1vcmUgdHJhbnNsYXRpb25zLgpGaWxlczoJICAgIHNyYy9wby9NYWtlZmlsZSwgc3JjL3BvL2FmLnBvLCBzcmMvcG8vY3MucG8sIHNyYy9wby9jcy5jcDEyNTAucG8sCgkgICAgc3JjL3BvL2RlLnBvLCBzcmMvcG8vZXMucG8sIHNyYy9wby9mci5wbywgc3JjL3BvL2l0LnBvLAoJICAgIHNyYy9wby9qYS5wbywgc3JjL3BvL2phLnNqaXMucG8sIHNyYy9wby9rby5wbywgc3JjL3BvL3BsLnBvLAoJICAgIHNyYy9wby9zay5wbywgc3JjL3BvL3VrLnBvLCBzcmMvcG8vemhfQ04uVVRGLTgucG8sCgkgICAgc3JjL3BvL3poX0NOLmNwOTM2LnBvLCBzcmMvcG8vemhfQ04ucG8sIHNyYy9wby96aF9UVy5wbwoKUGF0Y2ggNi4wLjA4OApQcm9ibGVtOiAgICAiLiIgZG9lc24ndCB3b3JrIGFmdGVyIHVzaW5nICJyeCIgaW4gVmlzdWFsIG1vZGUuICAoQ2hhcmxlcwoJICAgIENhbXBiZWxsKQpTb2x1dGlvbjogICBBbHNvIHN0b3JlIHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIgaW4gdGhlIHJlZG8gYnVmZmVyLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4wLjA4OQpQcm9ibGVtOiAgICBJbiBhIEMgZmlsZSwgdXNpbmcgIj09IiB0byBhbGlnbiBhIGxpbmUgc3RhcnRpbmcgd2l0aCAiKiAgIiBhZnRlcgoJICAgIGEgbGluZSB3aXRoICIqIC0iIGluZGVudHMgb25lIHNwYWNlIHRvbyBmZXcuICAoUGlldCBEZWxwb3J0KQpTb2x1dGlvbjogICBBbGlnbiB3aXRoIHRoZSBwcmV2aW91cyBsaW5lIGlmIHRoZSBjb21tZW50LXN0YXJ0LXN0cmluZyBtYXRjaGVzCgkgICAgdGhlcmUuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMC4wOTAKUHJvYmxlbTogICAgV2hlbiBhIHdyYXBwaW5nIGxpbmUgZG9lcyBub3QgZml0IGluIGEgd2luZG93IGFuZCAnc2Nyb2xsb2ZmJyBpcwoJICAgIGJpZ2dlciB0aGFuIGhhbGYgdGhlIHdpbmRvdyBoZWlnaHQsIG1vdmluZyB0aGUgY3Vyc29yIGxlZnQgb3IKCSAgICByaWdodCBjYXVzZXMgdGhlIHNjcmVlbiB0byBmbGFzaCBiYWRseS4gKEx1Ym9taXIgSG9zdCkKU29sdXRpb246ICAgV2hlbiB0aGVyZSBpcyBub3QgZW5vdWdoIHJvb20gdG8gc2hvdyAnc2Nyb2xsb2ZmJyBzY3JlZW4gbGluZXMgYW5kCgkgICAgbmVhciB0aGUgZW5kIG9mIHRoZSBsaW5lLCBzaG93IHRoZSBlbmQgb2YgdGhlIGxpbmUuCkZpbGVzOgkgICAgc3JjL21vdmUuYwoKUGF0Y2ggNi4wLjA5MQpQcm9ibGVtOiAgICBVc2luZyBDVFJMLU8gaW4gSW5zZXJ0IG1vZGUsIHdoaWxlICd2aXJ0dWFsZWRpdCcgaXMgImFsbCIgYW5kIHRoZQoJICAgIGN1cnNvciBpcyBhZnRlciB0aGUgZW5kLW9mLWxpbmUsIG1vdmVzIHRoZSBjdXJzb3IgbGVmdC4gKFllZ2FwcGFuCgkgICAgTGFrc2htYW5hbikKU29sdXRpb246ICAgS2VlcCB0aGUgY3Vyc29yIGluIHRoZSBzYW1lIHBvc2l0aW9uLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMC4wOTIKUHJvYmxlbTogICAgVGhlIGV4cGxvcmVyIHBsdWdpbiBkb2Vzbid0IGlnbm9yZSBjYXNlIG9mICdzdWZmaXhlcycgb24KCSAgICBNUy1XaW5kb3dzLiAoTWlrZSBXaWxsaWFtcykKU29sdXRpb246ICAgTWF0Y2ggb3IgaWdub3JlIGNhc2UgYXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBPUy4KRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9leHBsb3Jlci52aW0KClBhdGNoIDYuMC4wOTMKUHJvYmxlbTogICAgV2hlbiB0aGUgVGNsIGxpYnJhcnkgY291bGRuJ3QgYmUgbG9hZGVkIGR5bmFtaWNhbGx5LCBnZXQgYW4gZXJyb3IKCSAgICBtZXNzYWdlIHdoZW4gY2xvc2luZyBhIGJ1ZmZlciBvciB3aW5kb3cuIChNdXJhb2thIFRhcm8pClNvbHV0aW9uOiAgIE9ubHkgZnJlZSBzdHJ1Y3R1cmVzIGlmIGFscmVhZHkgdXNpbmcgdGhlIFRjbCBpbnRlcnByZXRlci4KRmlsZXM6CSAgICBzcmMvaWZfdGNsLmMKClBhdGNoIDYuMC4wOTQKUHJvYmxlbTogICAgQXRoZW5hOiBXaGVuIGNsaWNraW5nIGluIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBWaW0gY3Jhc2hlcy4KCSAgICAoUGF1bCBBY2tlcnN2aWxsZXIpClNvbHV0aW9uOiAgIFVzZSB0aGUgdGh1bWIgc2l6ZSBpbnN0ZWFkIG9mIHRoZSB3aW5kb3cgcG9pbnRlciBvZiB0aGUgc2Nyb2xsYmFyCgkgICAgKHdoaWNoIGlzIE5VTEwpLiAoRGF2aWQgSGFycmlzb24pCgkgICAgQWxzbyBhdm9pZCB0aGF0IHNjcm9sbGluZyBnb2VzIHRoZSB3cm9uZyB3YXkgaW4gYSBuYXJyb3cgd2luZG93LgpGaWxlczoJICAgIHNyYy9ndWlfYXRoZW5hLmMKClBhdGNoIDYuMC4wOTUKUHJvYmxlbTogICAgUGVybDogRGVsZXRpbmcgbGluZXMgbWF5IGxlYXZlIHRoZSBjdXJzb3IgYmV5b25kIHRoZSBlbmQgb2YgdGhlCgkgICAgZmlsZS4KU29sdXRpb246ICAgQ2hlY2sgdGhlIGN1cnNvciBwb3NpdGlvbiBhZnRlciBkZWxldGluZyBhIGxpbmUuIChTZXJndWVpKQpGaWxlczoJICAgIHNyYy9pZl9wZXJsLnhzCgpQYXRjaCA2LjAuMDk2ClByb2JsZW06ICAgIFdoZW4gIjpzYXZlYXMgZm5hbWUiIGZhaWxzIGJlY2F1c2UgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHMsIHRoZQoJICAgIGZpbGUgbmFtZSBpcyBjaGFuZ2VkIGFueXdheSBhbmQgYSBmb2xsb3dpbmcgIjp3IiB3aWxsIG92ZXJ3cml0ZQoJICAgIHRoZSBmaWxlLiAoRXJpYyBDYXJsaWVyKQpTb2x1dGlvbjogICBEb24ndCBjaGFuZ2UgdGhlIGZpbGUgbmFtZSBpZiB0aGUgZmlsZSBhbHJlYWR5IGV4aXN0cy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjAuMDk3ClByb2JsZW06ICAgIFJlLWluZGVudGluZyBpbiBJbnNlcnQgbW9kZSB3aXRoIENUUkwtRiBtYXkgY2F1c2UgYSBjcmFzaCB3aXRoIGEKCSAgICBtdWx0aS1ieXRlIGVuY29kaW5nLgpTb2x1dGlvbjogICBBdm9pZCB1c2luZyBhIGNoYXJhY3RlciBiZWZvcmUgdGhlIHN0YXJ0IG9mIGEgbGluZS4gKFNlcmdleQoJICAgIFZsYXNvdikKRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjAuMDk4ClByb2JsZW06ICAgIEdUSzogV2hlbiB1c2luZyBHbm9tZSB0aGUgIlNlYXJjaCIgYW5kICJTZWFyY2ggYW5kIFJlcGxhY2UiIGRpYWxvZwoJICAgIGJveGVzIGFyZSBub3QgdHJhbnNsYXRlZC4KU29sdXRpb246ICAgRGVmaW5lIEVOQUJMRV9OTFMgYmVmb3JlIGluY2x1ZGluZyBnbm9tZS5oLiAoRWR1YXJkbyBGZXJuYW5kZXopCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYywgc3JjL2d1aV9ndGtfeDExLmMKClBhdGNoIDYuMC4wOTkKUHJvYmxlbTogICAgQ3lnd2luOiBXaGVuIHJ1bm5pbmcgVmkgY29tcGF0aWJsZSBNUy1ET1MgbGluZSBlbmRpbmdzIGNhdXNlCgkgICAgdHJvdWJsZS4KU29sdXRpb246ICAgTWFrZSB0aGUgZGVmYXVsdCBmb3IgJ2ZpbGVmb3JtYXRzJyAidW5peCxkb3MiIGluIFZpIGNvbXBhdGlibGUKCSAgICBtb2RlLiAgKE1pY2hhZWwgU2NoYWFwKQpGaWxlczoJICAgIHNyYy9vcHRpb24uaAoKUGF0Y2ggNi4wLjEwMApQcm9ibGVtOiAgICAiOmJhZGQgKzAgdGVzdCVmaWxlIiBjYXVzZXMgYSBjcmFzaC4KU29sdXRpb246ICAgVGFrZSBpbnRvIGFjY291bnQgdGhhdCB0aGUgIiswIiBpcyBOVUwgdGVybWluYXRlZCB3aGVuIGFsbG9jYXRpbmcKCSAgICByb29tIGZvciByZXBsYWNpbmcgdGhlICIlIi4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4wLjEwMQpQcm9ibGVtOiAgICAiOm1rc2Vzc2lvbiIgZG9lc24ndCByZXN0b3JlIGVkaXRpbmcgYSBmaWxlIHRoYXQgaGFzIGEgJyMnIG9yICclJwoJICAgIGluIGl0cyBuYW1lLiAgKFdvbGZnYW5nIEJsYW5rZW5idXJnKQpTb2x1dGlvbjogICBQdXQgYSBiYWNrc2xhc2ggYmVmb3JlIHRoZSAnIycgYW5kICclJy4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4wLjEwMgpQcm9ibGVtOiAgICBXaGVuIGNoYW5naW5nIGZvbGRzIHRoZSBjdXJzb3IgbWF5IGFwcGVhciBoYWxmd2F5IGEgY2xvc2VkIGZvbGQuCgkgICAgKE5hbSBTdW5nSHl1bikKU29sdXRpb246ICAgU2V0IHdfY2xpbmVfZm9sZGVkIGNvcnJlY3RseS4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjAuMTAzClByb2JsZW06ICAgIFdoZW4gdXNpbmcgJ3Njcm9sbGJpbmQnIGEgbGFyZ2UgdmFsdWUgb2YgJ3Njcm9sbG9mZicgd2lsbCBtYWtlIHRoZQoJICAgIHNjcm9sbCBiaW5kaW5nIHN0b3AgbmVhciB0aGUgZW5kIG9mIHRoZSBmaWxlLiAoQ29lbiBFbmdlbGJhcnRzKQpTb2x1dGlvbjogICBEb24ndCB1c2UgJ3Njcm9sbG9mZicgd2hlbiBsaW1pdGluZyB0aGUgdG9wbGluZSBmb3Igc2Nyb2xsCgkgICAgYmluZGluZy4gKERhbnkgU3RBbWFudCkKRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4xMDQKUHJvYmxlbTogICAgTXVsdGktYnl0ZTogV2hlbiAnJCcgaXMgaW4gJ2Nwb3B0aW9ucycsIHR5cGluZyBhIGRvdWJsZS13aWRlCgkgICAgY2hhcmFjdGVyIHRoYXQgb3ZlcndyaXRlcyB0aGUgbGVmdCBoYWx2ZSBvZiBhbiBvbGQgZG91YmxlLXdpZGUKCSAgICBjaGFyYWN0ZXIgY2F1c2VzIGEgcmVkcmF3IHByb2JsZW0gYW5kIHRoZSBjdXJzb3Igc3RvcHMgYmxpbmtpbmcuClNvbHV0aW9uOiAgIENsZWFyIHRoZSByaWdodCBoYWxmIG9mIHRoZSBvbGQgY2hhcmFjdGVyLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4wLjEwNQpQcm9ibGVtOiAgICBNdWx0aS1ieXRlOiBJbiBhIHdpbmRvdyBvZiBvbmUgY29sdW1uIHdpZGUsIHdpdGggc3ludGF4CgkgICAgaGlnaGxpZ2h0aW5nIGVuYWJsZWQgYSBjcmFzaCBtaWdodCBoYXBwZW4uClNvbHV0aW9uOiAgIFNraXAgZ2V0dGluZyB0aGUgc3ludGF4IGF0dHJpYnV0ZSB3aGVuIHRoZSBjaGFyYWN0ZXIgZG9lc24ndCBmaXQKCSAgICBhbnl3YXkuICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4wLjEwNiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHRoZSBwcmludGVyIGZvbnQgaXMgd3JvbmcsIHRoZXJlIGlzIG5vIGVycm9yIG1lc3NhZ2UuClNvbHV0aW9uOiAgIEdpdmUgYW4gYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZS4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4wLjEwNyAoZXh0cmEpClByb2JsZW06ICAgIFZpc1ZpbTogV2hlbiBlZGl0aW5nIGFub3RoZXIgZmlsZSwgYSBtb2RpZmllZCBmaWxlIG1heSBiZSB3cml0dGVuCgkgICAgdW5leHBlY3RlZGx5IGFuZCB3aXRob3V0IHdhcm5pbmcuClNvbHV0aW9uOiAgIFNwbGl0IHRoZSB3aW5kb3cgaWYgYSBmaWxlIHdhcyBtb2RpZmllZC4KRmlsZXM6CSAgICBWaXNWaW0vQ29tbWFuZHMuY3BwCgpQYXRjaCA2LjAuMTA4ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgZm9sZGluZyBjb3VsZCB0cnkgZGlzcGxheWluZyBsaW5lIHplcm8sIHJlc3VsdGluZyBpbiBhbgoJICAgIGVycm9yIGZvciBhIE5VTEwgcG9pbnRlci4KU29sdXRpb246ICAgU3RvcCBkZWNyZW1lbnRpbmcgd190b3BsaW5lIHdoZW4gdGhlIGZpcnN0IGxpbmUgb2YgYSB3aW5kb3cgaXMgaW4KCSAgICBhIGNsb3NlZCBmb2xkLgpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4wLjEwOQpQcm9ibGVtOiAgICBYSU06IFdoZW4gdGhlIGlucHV0IG1ldGhvZCBpcyBlbmFibGVkLCByZXBlYXRpbmcgYW4gaW5zZXJ0aW9uIHdpdGgKCSAgICAiLiIgZGlzYWJsZXMgaXQuIChNYXJjZWwgU3ZpdGFsc2t5KQpTb2x1dGlvbjogICBEb24ndCBzdG9yZSB0aGUgaW5wdXQgbWV0aG9kIHN0YXR1cyB3aGVuIGEgY29tbWFuZCBjb21lcyBmcm9tIHRoZQoJICAgIHN0dWZmIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvdWkuYwoKUGF0Y2ggNi4wLjExMApQcm9ibGVtOiAgICBVc2luZyB1bmRvIGFmdGVyIGV4ZWN1dGluZyAiT3gbakF4G2tkZCIgZnJvbSBhIHJlZ2lzdGVyIGluCgkgICAgYW4gZW1wdHkgYnVmZmVyIGdpdmVzIGFuIGVycm9yIG1lc3NhZ2UuICAoR2VyaGFyZCBIb2NoaG9semVyKQpTb2x1dGlvbjogICBEb24ndCBhZGp1c3QgdGhlIGJvdHRvbSBsaW5lIG51bWJlciBvZiBhbiB1bmRvIGJsb2NrIHdoZW4gaXQncwoJICAgIHplcm8uICBBZGQgYSB0ZXN0IGZvciB0aGlzIHByb2JsZW0uCkZpbGVzOgkgICAgc3JjL3VuZG8uYywgc3JjL3Rlc3RkaXIvdGVzdDIwLmluLCBzcmMvdGVzdGRpci90ZXN0MjAub2sKClBhdGNoIDYuMC4xMTEKUHJvYmxlbTogICAgVGhlIHZpcnRjb2woKSBmdW5jdGlvbiBkb2Vzbid0IHRha2UgY2FyZSBvZiAndmlydHVhbGVkaXQnLgpTb2x1dGlvbjogICBBZGQgdGhlIGNvbHVtbiBvZmZzZXQgd2hlbiBuZWVkZWQuIChZZWdhcHBhbiBMYWtzaG1hbmFuKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4xMTIKUHJvYmxlbTogICAgVGhlIGV4cGxvcmVyIHBsdWdpbiBkb2Vzbid0IHNvcnQgZGlyZWN0b3JpZXMgd2l0aCBhIHNwYWNlIG9yCgkgICAgc3BlY2lhbCBjaGFyYWN0ZXIgYWZ0ZXIgYSBkaXJlY3Rvcnkgd2l0aCBhIHNob3J0ZXIgbmFtZS4KU29sdXRpb246ICAgSWdub3JlIHRoZSB0cmFpbGluZyBzbGFzaCB3aGVuIGNvbXBhcmluZyBkaXJlY3RvcnkgbmFtZXMuICAoTWlrZQoJICAgIFdpbGxpYW1zKQpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL2V4cGxvcmVyLnZpbQoKUGF0Y2ggNi4wLjExMwpQcm9ibGVtOiAgICAiOmVkaXQgfi9mbmFtZSIgZG9lc24ndCB3b3JrIGlmICRIT01FIGluY2x1ZGVzIGEgc3BhY2UuICBBbHNvLAoJICAgIGV4cGFuZGluZyB3aWxkY2FyZHMgd2l0aCB0aGUgc2hlbGwgbWF5IGZhaWwuIChKb2huIERhbmllbCkKU29sdXRpb246ICAgRXNjYXBlIHNwYWNlcyB3aXRoIGEgYmFja3NsYXNoIHdoZW4gbmVlZGVkLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvbWlzYzEuYywgc3JjL3Byb3RvL21pc2MxLnBybywgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4wLjExNApQcm9ibGVtOiAgICBVc2luZyAiOnAiIHdpdGggZm5hbWVtb2RpZnkoKSBkaWRuJ3QgZXhwYW5kICJ+LyIgb3IgIn51c2VyLyIgdG8gYQoJICAgIGZ1bGwgcGF0aC4gIEZvciBXaW4zMiB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2FzIHByZXBlbmRlZC4KCSAgICAoTWljaGFlbCBHZWRkZXMpClNvbHV0aW9uOiAgIEV4cGFuZCB0aGUgaG9tZSBkaXJlY3RvcnkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4wLjExNSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHVzaW5nIGEgZGlhbG9nIHdpdGggYSB0ZXh0ZmllbGQgaXQgY2Fubm90IHNjcm9sbCB0aGUKCSAgICB0ZXh0LgpTb2x1dGlvbjogICBBZGQgRVNfQVVUT0hTQ1JPTEwgdG8gdGhlIHRleHRmaWVsZCBzdHlsZS4gKFBlZHJvIEdvbWVzKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMC4xMTYgKGV4dHJhKQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzIE5ULzIwMDAvWFA6IGZpbGV3cml0YWJsZSgpIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgZm9yCgkgICAgZmlsZXN5c3RlbXMgdGhhdCB1c2UgQUNMcy4KU29sdXRpb246ICAgVXNlIEFDTCBmdW5jdGlvbnMgdG8gY2hlY2sgaWYgYSBmaWxlIGlzIHdyaXRhYmxlLiAoTWlrZSBXaWxsaWFtcykKRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvbWFjcm9zLmgsIHNyYy9vc193aW4zMi5jLCBzcmMvcHJvdG8vb3Nfd2luMzIucHJvCgpQYXRjaCA2LjAuMTE3IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IHdoZW4gZGlzYWJsaW5nIHRoZSBtZW51LCAic2V0IGxpbmVzPTk5OSIgZG9lc24ndCB1c2UgYWxsCgkgICAgdGhlIGF2YWlsYWJsZSBzY3JlZW4gc3BhY2UuClNvbHV0aW9uOiAgIERvbid0IHN1YnRyYWN0IHRoZSBmaXhlZCBjYXB0aW9uIGhlaWdodCBidXQgdGhlIHJlYWwgbWVudSBoZWlnaHQKCSAgICBmcm9tIHRoZSBhdmFpbGFibGUgc2NyZWVuIHNwYWNlLiAgQWxzbzogQXZvaWQgcmVjdXJzaW9uIGluCgkgICAgZ3VpX21zd2luX2dldF9tZW51X2hlaWdodCgpLgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMC4xMTgKUHJvYmxlbTogICAgV2hlbiAkVE1QRElSIGlzIGEgcmVsYXRpdmUgcGF0aCwgdGhlIHRlbXAgZGlyZWN0b3J5IGlzIG1pc3NpbmcgYQoJICAgIHRyYWlsaW5nIHNsYXNoIGFuZCBpc24ndCBkZWxldGVkIHdoZW4gVmltIGV4aXRzLiAoUGV0ZXIgSG9sbSkKU29sdXRpb246ICAgQWRkIHRoZSBzbGFzaCBhZnRlciBleHBhbmRpbmcgdGhlIGRpcmVjdG9yeSB0byBhbiBhYnNvbHV0ZSBwYXRoLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjExOSAoZGVwZW5kcyBvbiBwYXRjaCA2LjAuMTE2KQpQcm9ibGVtOiAgICBWTVM6IGZpbGV3cml0YWJsZSgpIGRvZXNuJ3Qgd29yayBwcm9wZXJseS4KU29sdXRpb246ICAgVXNlIHRoZSBzYW1lIG1ldGhvZCBhcyBmb3IgVW5peC4gKFpvbHRhbiBBcnBhZGZmeSkKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjAuMTIwClByb2JsZW06ICAgIFRoZSBjb252ZXJzaW9uIHRvIGh0bWwgaXNuJ3QgY29tcGF0aWJsZSB3aXRoIFhIVE1MLgpTb2x1dGlvbjogICBRdW90ZSB0aGUgdmFsdWVzLiAoSmVzcyBUaHJ5c29lZSkKRmlsZXM6CSAgICBydW50aW1lL3N5bnRheC8yaHRtbC52aW0KClBhdGNoIDYuMC4xMjEgKGV4dHJhKSAoZGVwZW5kcyBvbiBwYXRjaCA2LjAuMTE2KQpQcm9ibGVtOiAgICBXaW4zMjogQWZ0ZXIgcGF0Y2ggNi4wLjExNiBWaW0gZG9lc24ndCBjb21waWxlIHdpdGggbWluZ3czMi4KU29sdXRpb246ICAgQWRkIGFuICNpZmRlZiBIQVZFX0FDTC4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4wLjEyMiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjE2OiBTYW1lIHJlc2l6ZSBwcm9ibGVtcyBhcyBwYXRjaCA2LjAuMTE3IGZpeGVkIGZvciBXaW4zMi4gIEFuZAoJICAgIGRpYWxvZyB0ZXh0ZmllbGQgcHJvYmxlbSBmcm9tIHBhdGNoIDYuMC4xMTUuClNvbHV0aW9uOiAgIFNldCBvbGRfbWVudV9oZWlnaHQgb25seSB3aGVuIHVzZWQuICBBZGQgRVNfQVVUT0hTQ1JPTEwgZmxhZy4KCSAgICAoVmluY2UgTmVncmkpCkZpbGVzOgkgICAgc3JjL2d1aV93MTYuYwoKUGF0Y2ggNi4wLjEyMyAoZGVwZW5kcyBvbiBwYXRjaCA2LjAuMTE5KQpQcm9ibGVtOiAgICBXaW4xNjogQ29tcGlsYXRpb24gcHJvYmxlbXMuClNvbHV0aW9uOiAgIE1vdmUgIiYmIiB0byBvdGhlciBsaW5lcy4gKFZpbmNlIE5lZ3JpKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4xMjQKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhICI6c3Vic3RpdHV0ZSIgY29tbWFuZCB0aGF0IHN0YXJ0cyB3aXRoICJcPSIKCSAgICAoZXZhbHVhdGVkIGFzIGFuIGV4cHJlc3Npb24pLCAifiIgd2FzIHN0aWxsIHJlcGxhY2VkIHdpdGggdGhlCgkgICAgcHJldmlvdXMgc3Vic3RpdHV0ZSBzdHJpbmcuClNvbHV0aW9uOiAgIFNraXAgdGhlIHJlcGxhY2VtZW50IHdoZW4gdGhlIHN1YnN0aXR1dGUgc3RyaW5nIHN0YXJ0cyB3aXRoICJcPSIuCgkgICAgQWxzbyBhZGp1c3QgdGhlIGRvY3VtZW50YXRpb24gYWJvdXQgZG91YmxpbmcgYmFja3NsYXNoZXMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYywgcnVudGltZS9kb2MvY2hhbmdlLnR4dAoKUGF0Y2ggNi4wLjEyNSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHVzaW5nIHRoZSBtdWx0aV9ieXRlX2ltZSBmZWF0dXJlIHByZXNzaW5nIHRoZSBzaGlmdAoJICAgIGtleSB3b3VsZCBiZSBoYW5kbGVkIGFzIGlmIGEgY2hhcmFjdGVyIHdhcyBlbnRlcmVkLCB0aHVzIG1hcHBpbmdzCgkgICAgd2l0aCBhIHNoaWZ0ZWQga2V5IGRpZG4ndCB3b3JrLiAoQ2hhcmxlcyBDYW1wYmVsbCkKU29sdXRpb246ICAgSWdub3JlIHByZXNzaW5nIHRoZSBzaGlmdCwgY29udHJvbCBhbmQgYWx0IGtleXMuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMC4xMjYKUHJvYmxlbTogICAgVGhlIHB5dGhvbiBsaWJyYXJ5IHdhcyBhbHdheXMgc3RhdGljYWxseSBsaW5rZWQuClNvbHV0aW9uOiAgIExpbmsgdGhlIHB5dGhvbiBsaWJyYXJ5IGR5bmFtaWNhbGx5LiAoTWF0dGhpYXMgS2xvc2UpCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjAuMTI3ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSB0ZXJtaW5hbCB0aGF0IHN3YXBzIHNjcmVlbnMgYW5kIHRoZSBOb3JtYWwgYmFja2dyb3VuZAoJICAgIGNvbG9yIGhhcyBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kLCB1c2luZyBhbiBleHRlcm5hbCBjb21tYW5kIG1heQoJICAgIGNhdXNlIHRoZSBjb2xvciBvZiB0aGUgd3Jvbmcgc2NyZWVuIHRvIGJlIGNoYW5nZWQuIChNYXJrIFdhZ2dvbmVyKQpTb2x1dGlvbjogICBEb24ndCBjYWxsIHNjcmVlbl9zdG9wX2hpZ2hsaWdodCgpIGluIHN0b3B0ZXJtY2FwKCkuCkZpbGVzOgkgICAgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4wLjEyOApQcm9ibGVtOiAgICBXaGVuIG1vdmluZyBhIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93IHRvIHRoZSBmYXIgbGVmdCBvciByaWdodCwKCSAgICB0aGUgc2Nyb2xsYmFycyBhcmUgbm90IGFkanVzdGVkLiAoU2NvdHQgRSBMZWUpICBXaGVuICdtb3VzZWZvY3VzJwoJICAgIGlzIHNldCB0aGUgbW91c2UgcG9pbnRlciB3YXNuJ3QgYWRqdXN0ZWQuClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgc2Nyb2xsYmFycyBhbmQgdGhlIG1vdXNlIHBvaW50ZXIuCkZpbGVzOgkgICAgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjAuMTI5ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSB2ZXJ5IGxvbmcgZmlsZSBuYW1lLCAiOmxzIiAocmVwZWF0ZWQgYSBmZXcgdGltZXMpCgkgICAgY2F1c2VzIGEgY3Jhc2guICBUZXN0IHdpdGggInZpbSBgcGVybCAtZSAncHJpbnQgIkEieDEwMDAnYCIuCgkgICAgKFRlamVkYSkKU29sdXRpb246ICAgVGVybWluYXRlIGEgc3RyaW5nIGJlZm9yZSBnZXR0aW5nIGl0cyBsZW5ndGggaW4gYnVmbGlzdF9saXN0KCkuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjAuMTMwClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjpjcHJldiIgd2hpbGUgdGhlIGVycm9yIHdpbmRvdyBpcyBvcGVuLCBhbmQgdGhlIG5ldwoJICAgIGxpbmUgYXQgdGhlIHRvcCB3cmFwcywgdGhlIHdpbmRvdyBpc24ndCBjb3JyZWN0bHkgZHJhd24uCgkgICAgKFllZ2FwcGFuIExha3NobWFuYW4pClNvbHV0aW9uOiAgIFdoZW4gcmVkcmF3aW5nIHRoZSB0b3BsaW5lIGRvbid0IHNjcm9sbCB0d2ljZS4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMC4xMzEKUHJvYmxlbTogICAgV2hlbiB1c2luZyBidWZuYW1lKCkgYW5kIHRoZXJlIGFyZSB0d28gbWF0Y2hlcyBmb3IgbGlzdGVkIGJ1ZmZlcnMKCSAgICBhbmQgb25lIG1hdGNoIGZvciBhbiB1bmxpc3RlZCBidWZmZXIsIHRoZSB1bmxpc3RlZCBidWZmZXIgaXMgdXNlZC4KCSAgICAoQXJpYyBCbHVtZXIpClNvbHV0aW9uOiAgIFdoZW4gdGhlcmUgaXMgYSBtYXRjaCB3aXRoIGEgbGlzdGVkIGJ1ZmZlciwgZG9uJ3QgY2hlY2sgZm9yCgkgICAgdW5saXN0ZWQgYnVmZmVycy4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMC4xMzIKUHJvYmxlbTogICAgV2hlbiBzZXR0aW5nICdpbWluc2VydCcgaW4gdGhlIHZpbXJjIGFuZCB1c2luZyBhbiB4dGVybSB3aXRoIHR3bwoJICAgIHNjcmVlbnMgdGhlIHJ1bGVyIGlzIGRyYXduIGluIHRoZSB3cm9uZyBzY3JlZW4uIChJZ29yIEdvbGRlbmJlcmcpClNvbHV0aW9uOiAgIE9ubHkgZHJhdyB0aGUgcnVsZXIgd2hlbiB1c2luZyB0aGUgcmlnaHQgc2NyZWVuLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4wLjEzMwpQcm9ibGVtOiAgICBXaGVuIG9wZW5pbmcgYW5vdGhlciBidWZmZXIgd2hpbGUgJ2tleW1hcCcgaXMgc2V0IGFuZCAnaW1pbnNlcnQnCgkgICAgaXMgemVybywgJ2ltaW5zZXJ0JyBpcyBzZXQgdG8gb25lIHVuZXhwZWN0ZWRseS4gKElnb3IgR29sZGVuYmVyZykKU29sdXRpb246ICAgRG9uJ3Qgc2V0ICdpbWluc2VydCcgYXMgYSBzaWRlIGVmZmVjdCBvZiBkZWZpbmluZyBhICI6bG1hcCIKCSAgICBtYXBwaW5nLiAgT25seSBkbyB0aGF0IHdoZW4gJ2tleW1hcCcgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4wLjEzNApQcm9ibGVtOiAgICBXaGVuIGNvbXBsZXRpbmcgIjpzZXQgdGFncz0iIGEgcGF0aCB3aXRoIGFuIGVtYmVkZGVkIHNwYWNlIGNhdXNlcwoJICAgIHRoZSBjb21wbGV0aW9uIHRvIHN0b3AuIChTZWt0b3IgdmFuIFNraWpsZW4pClNvbHV0aW9uOiAgIEVzY2FwZSBzcGFjZXMgd2l0aCBiYWNrc2xhc2hlcywgbGlrZSBmb3IgIjpzZXQgcGF0aD0iLiAgQWxzbyB0YWtlCgkgICAgYmFja3NsYXNoZXMgaW50byBhY2NvdW50IHdoZW4gc2VhcmNoaW5nIGZvciB0aGUgc3RhcnQgb2YgdGhlIHBhdGgKCSAgICB0byBjb21wbGV0ZSAoZS5nLiwgZm9yICdiYWNrdXBkaXInIGFuZCAnY3Njb3BlcHJnJykuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvb3B0aW9uLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMC4xMzUKUHJvYmxlbTogICAgTWVudXMgdGhhdCBhcmUgbm90IHN1cHBvc2VkIHRvIGRvIGFueXRoaW5nIHVzZWQgIjxOdWw+Iiwgd2hpY2gKCSAgICBzdGlsbCBwcm9kdWNlZCBhbiBlcnJvciBiZWVwLgoJICAgIFdoZW4gQ1RSTC1PIGlzIG1hcHBlZCBmb3IgSW5zZXJ0IG1vZGUsICI6YW1lbnUiIGNvbW1hbmRzIGRpZG4ndAoJICAgIHdvcmsgaW4gSW5zZXJ0IG1vZGUuCgkgICAgTWVudSBsYW5ndWFnZSBmYWxscyBiYWNrIHRvIEVuZ2xpc2ggd2hlbiAkTEFORyBlbmRzIGluICJAZXVybyIuClNvbHV0aW9uOiAgIFVzZSAiPE5vcD4iIGZvciBhIG1lbnUgaXRlbSB0aGF0IGRvZXNuJ3QgZG8gYW55dGhpbmcsIGp1c3QgbGlrZQoJICAgIG1hcHBpbmdzLgoJICAgIFVzZSAiOmFub3JlbWVudSIgaW5zdGVhZCBvZiAiOmFtZW51Ii4KCSAgICBJZ25vcmUgIkBldXJvIiBpbiB0aGUgbG9jYWxlIG5hbWUuCkZpbGVzOgkgICAgcnVudGltZS9tYWtlbWVudS52aW0sIHJ1bnRpbWUvbWVudS52aW0sIHNyYy9tZW51LmMKClBhdGNoIDYuMC4xMzYKUHJvYmxlbTogICAgV2hlbiBjb21wbGV0aW5nIGluIEluc2VydCBtb2RlLCBhIG1hcHBpbmcgY291bGQgYmUgdW5leHBlY3RlZGx5CgkgICAgYXBwbGllZC4KU29sdXRpb246ICAgRG9uJ3QgdXNlIG1hcHBpbmdzIHdoZW4gY2hlY2tpbmcgZm9yIGEgdHlwZWQgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMC4xMzcKUHJvYmxlbTogICAgR1VJOiBXaGVuIHVzaW5nIHRoZSBmaW5kIG9yIGZpbmQvcmVwbGFjZSBkaWFsb2cgZnJvbSBJbnNlcnQgbW9kZSwKCSAgICB0aGUgaW5wdXQgbW9kZSBpcyBzdG9wcGVkLgpTb2x1dGlvbjogICBEb24ndCB1c2UgdGhlIGlucHV0IG1ldGhvZCBzdGF0dXMgd2hlbiB0aGUgbWFpbiB3aW5kb3cgZG9lc24ndAoJICAgIGhhdmUgZm9jdXMuCkZpbGVzOgkgICAgc3JjL3VpLmMKClBhdGNoIDYuMC4xMzgKUHJvYmxlbTogICAgR1VJOiBXaGVuIHVzaW5nIHRoZSBmaW5kIG9yIGZpbmQvcmVwbGFjZSBkaWFsb2cgZnJvbSBJbnNlcnQgbW9kZSwKCSAgICB0aGUgdGV4dCBpcyBpbnNlcnRlZCB3aGVuIENUUkwtTyBpcyBtYXBwZWQuIChBbmRyZSBQYW5nKQoJICAgIFdoZW4gb3BlbmluZyB0aGUgZGlhbG9nIGFnYWluLCBhIHdob2xlIHdvcmQgc2VhcmNoIGlzbid0CgkgICAgcmVjb2duaXplZC4KCSAgICBXaGVuIGRvaW5nICJyZXBsYWNlIGFsbCIgYSB3aG9sZSB3b3JkIHNlYXJjaCB3YXMgbmV2ZXIgZG9uZS4KU29sdXRpb246ICAgRG9uJ3QgcHV0IGEgc2VhcmNoIG9yIHJlcGxhY2UgY29tbWFuZCBpbiB0aGUgaW5wdXQgYnVmZmVyLAoJICAgIGV4ZWN1dGUgaXQgZGlyZWN0bHkuCgkgICAgUmVjb2duaXplICJcPCIgYW5kICJcPiIgYWZ0ZXIgcmVtb3ZpbmcgIlxWIi4KCSAgICBBZGQgIlw8IiBhbmQgIlw+IiBhbHNvIGZvciAicmVwbGFjZSBhbGwiLgpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4wLjEzOQpQcm9ibGVtOiAgICBXaGVuIHN0b3BwaW5nICd3aWxkbWVudScgY29tcGxldGlvbiwgdGhlIHN0YXR1c2xpbmUgb2YgdGhlCgkgICAgYm90dG9tLWxlZnQgdmVydGljYWxseSBzcGxpdCB3aW5kb3cgaXNuJ3QgcmVkcmF3bi4gKFllZ2FwcGFuCgkgICAgTGFrc2htYW5hbikKU29sdXRpb246ICAgUmVkcmF3IGFsbCB0aGUgYm90dG9tIHN0YXR1c2xpbmVzLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvcHJvdG8vc2NyZWVuLnBybywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjAuMTQwClByb2JsZW06ICAgIE1lbW9yeSBhbGxvY2F0ZWQgZm9yIGxvY2FsIG1hcHBpbmdzIGFuZCBhYmJyZXZpYXRpb25zIGlzIGxlYWtlZAoJICAgIHdoZW4gdGhlIGJ1ZmZlciBpcyB3aXBlZCBvdXQuClNvbHV0aW9uOiAgIENsZWFyIHRoZSBsb2NhbCBtYXBwaW5ncyB3aGVuIGRlbGV0aW5nIGEgYnVmZmVyLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2dldGNoYXIuYywgc3JjL3Byb3RvL2dldGNoYXIucHJvLCBzcmMvdmltLmgKClBhdGNoIDYuMC4xNDEKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiOmVuZXciIGluIGFuIGVtcHR5IGJ1ZmZlciwgc29tZSBidWZmZXItbG9jYWwgdGhpbmdzCgkgICAgYXJlIG5vdCBjbGVhcmVkLiAgYjprZXltYXBfbmFtZSBpcyBub3Qgc2V0LgpTb2x1dGlvbjogICBDbGVhciB1c2VyIGNvbW1hbmRzIGFuZCBtYXBwaW5ncyBsb2NhbCB0byB0aGUgYnVmZmVyIHdoZW4gcmUtdXNpbmcKCSAgICB0aGUgY3VycmVudCBidWZmZXIuICBSZWxvYWQgdGhlIGtleW1hcC4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMC4xNDIKUHJvYmxlbTogICAgV2hlbiBQeXRob24gaXMgbGlua2VkIHN0YXRpY2FsbHksIGxvYWRpbmcgZHluYW1pYyBleHRlbnNpb25zIG1pZ2h0CgkgICAgZmFpbC4KU29sdXRpb246ICAgQWRkIGFuIGV4dHJhIGxpbmtpbmcgZmxhZyB3aGVuIG5lZWRlZC4gKEFuZHJldyBSb2Rpb25vZmYpCkZpbGVzOgkgICAgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2F1dG8vY29uZmlndXJlCgpQYXRjaCA2LjAuMTQzClByb2JsZW06ICAgIFdoZW4gYSBzeW50YXggaXRlbSBpbmNsdWRlcyBhIGxpbmUgYnJlYWsgaW4gYSBwYXR0ZXJuLCB0aGUgc3ludGF4CgkgICAgbWF5IG5vdCBiZSB1cGRhdGVkIHByb3Blcmx5IHdoZW4gbWFraW5nIGEgY2hhbmdlLgpTb2x1dGlvbjogICBBZGQgdGhlICJsaW5lYnJlYWtzIiBhcmd1bWVudCB0byAiOnN5biBzeW5jIi4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9zeW50YXgudHh0LCBzcmMvc2NyZWVuLmMsIHNyYy9zdHJ1Y3RzLmgsIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4wLjE0NApQcm9ibGVtOiAgICBBZnRlciBwYXRjaCA2LjAuMDg4IHJlZG9pbmcgInZlVSIgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBEb24ndCBhZGQgdGhlICJVIiB0byB0aGUgcmVkbyBidWZmZXIsIGl0IHdpbGwgYmUgdXNlZCBhcyBhbiB1bmRvCgkgICAgY29tbWFuZC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4xNDUKUHJvYmxlbTogICAgV2hlbiBWaW0gY2FuJ3QgcmVhZCBhbnkgaW5wdXQgaXQgbWlnaHQgZ2V0IHN0dWNrLiAgV2hlbgoJICAgIHJlZGlyZWN0aW5nIHN0ZGluIGFuZCBzdGRlcnIgVmltIHdvdWxkIG5vdCByZWFkIGNvbW1hbmRzIGZyb20gYQoJICAgIGZpbGUuICAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgV2hlbiByZXBlYXRlZGx5IHRyeWluZyB0byByZWFkIGEgY2hhcmFjdGVyIHdoZW4gaXQncyBub3QgcG9zc2libGUsCgkgICAgZXhpdCBWaW0uICBXaGVuIHN0ZGluIGFuZCBzdGRlcnIgYXJlIG5vdCBhIHR0eSwgc3RpbGwgdHJ5IHJlYWRpbmcKCSAgICBmcm9tIHRoZW0sIGJ1dCBkb24ndCBkbyBhIGJsb2NraW5nIHdhaXQuCkZpbGVzOgkgICAgc3JjL3VpLmMKClBhdGNoIDYuMC4xNDYKUHJvYmxlbTogICAgV2hlbiAnc3RhdHVzbGluZScgY29udGFpbnMgIiV7Jy0nfSIgdGhpcyByZXN1bHRzIGluIGEgemVyby4KCSAgICAoTWlsYW4gVmFuY3VyYSkKU29sdXRpb246ICAgRG9uJ3QgaGFuZGxlIG51bWJlcnMgd2l0aCBhIG1pbnVzIGFzIGEgbnVtYmVyLCB0aGV5IHdlcmUgbm90CgkgICAgZGlzcGxheWVkIGFueXdheS4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMC4xNDcKUHJvYmxlbTogICAgSXQncyBub3QgZWFzeSB0byBtYXJrIGEgVmltIHZlcnNpb24gYXMgYmVpbmcgbW9kaWZpZWQuICBUaGUgbmV3CgkgICAgbGljZW5zZSByZXF1aXJlcyB0aGlzLgpTb2x1dGlvbjogICBBZGQgdGhlIC0tbW9kaWZpZWQtYnkgYXJndW1lbnQgdG8gY29uZmlndXJlIGFuZCB0aGUgTU9ESUZJRURfQlkKCSAgICBkZWZpbmUuICBJJ3MgdXNlZCBpbiB0aGUgaW50cm8gc2NyZWVuIGFuZCB0aGUgIjp2ZXJzaW9uIiBvdXRwdXQuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvY29uZmlnLmguaW4sCgkgICAgc3JjL2ZlYXR1cmUuaCwgc3JjL3ZlcnNpb24uYwoKUGF0Y2ggNi4wLjE0OApQcm9ibGVtOiAgICBBZnRlciAicCIgaW4gYW4gZW1wdHkgbGluZSwgYFsgZ29lcyB0byB0aGUgc2Vjb25kIGNoYXJhY3Rlci4KCSAgICAoS29udHJhIEdlcmdlbHkpClNvbHV0aW9uOiAgIERvbid0IGluY3JlbWVudCB0aGUgY29sdW1uIG51bWJlciBpbiBhbiBlbXB0eSBsaW5lLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4wLjE0OQpQcm9ibGVtOiAgICBUaGUgcGF0dGVybiAiXCguXHstfVwpKiIgY2F1c2VzIGEgaGFuZy4gIFdoZW4gdXNpbmcgYSBzZWFyY2gKCSAgICBwYXR0ZXJuIHRoYXQgY2F1c2VzIGEgc3RhY2sgb3ZlcmZsb3cgdG8gYmUgZGV0ZWN0ZWQgVmltIGNvdWxkCgkgICAgc3RpbGwgaGFuZy4KU29sdXRpb246ICAgQ29ycmVjdGx5IHJlcG9ydCAib3BlcmFuZCBjb3VsZCBiZSBlbXB0eSIgd2hlbiB1c2luZyAiXHstfSIuCgkgICAgQ2hlY2sgZm9yICJvdXRfb2Zfc3RhY2siIGluc2lkZSBsb29wcyB0byBhdm9pZCBhIGhhbmcuCkZpbGVzOgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjAuMTUwClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSBtdWx0aS1ieXRlIGVuY29kaW5nLCBwYXRjaCA2LjAuMTQ4IGNhdXNlcyAicCIgdG8gd29yawoJICAgIGxpa2UgIlAiLiAoU3VuZy1IeXVuIE5hbSkKU29sdXRpb246ICAgQ29tcHV0ZSB0aGUgYnl0ZSBsZW5ndGggb2YgYSBtdWx0aS1ieXRlIGNoYXJhY3Rlci4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMC4xNTEKUHJvYmxlbTogICAgUmVkcmF3aW5nIHRoZSBzdGF0dXMgbGluZSBhbmQgcnVsZXIgY2FuIGJlIHdyb25nIHdoZW4gaXQgY29udGFpbnMKCSAgICBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIFVzZSBjaGFyYWN0ZXIgd2lkdGggYW5kIGJ5dGUgbGVuZ3RoIGNvcnJlY3RseS4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMC4xNTIKUHJvYmxlbTogICAgc3RydHJhbnMoKSBjb3VsZCBoYW5nIG9uIGFuIGlsbGVnYWwgVVRGLTggYnl0ZSBzZXF1ZW5jZS4KU29sdXRpb246ICAgU2tpcCBvdmVyIGlsbGVnYWwgYnl0ZXMuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2NoYXJzZXQuYwoKUGF0Y2ggNi4wLjE1MwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIChpbGxlZ2FsKSBkb3VibGUtYnl0ZSBjaGFyYWN0ZXJzIGFuZCBWaW0gc3ludGF4CgkgICAgaGlnaGxpZ2h0aW5nIFZpbSBjYW4gY3Jhc2guIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIEluY3JlYXNlIGEgcG9pbnRlciBvdmVyIGEgY2hhcmFjdGVyIGluc3RlYWQgb2YgYSBieXRlLgpGaWxlczoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4wLjE1NApQcm9ibGVtOiAgICBNUy1ET1MgYW5kIE1TLVdpbmRvd3M6IFRoZSBtZW51IGVudHJpZXMgZm9yIHh4ZCBkb24ndCB3b3JrIHdoZW4KCSAgICB0aGVyZSBpcyBubyB4eGQgaW4gdGhlIHBhdGguCgkgICAgV2hlbiBjb252ZXJ0aW5nIGJhY2sgZnJvbSBIZXggdGhlIGZpbGV0eXBlIG1heSByZW1haW4gInh4ZCIgaWYgaXQKCSAgICBpcyBub3QgZGV0ZWN0ZWQuClNvbHV0aW9uOiAgIFdoZW4geHhkIGlzIG5vdCBpbiB0aGUgcGF0aCB1c2UgdGhlIG9uZSBpbiB0aGUgcnVudGltZSBkaXJlY3RvcnksCgkgICAgd2hlcmUgdGhlIGluc3RhbGwgcHJvZ3JhbSBoYXMgcHV0IGl0LgoJICAgIENsZWFyIHRoZSAnZmlsZXR5cGUnIG9wdGlvbiBiZWZvcmUgZGV0ZWN0aW5nIHRoZSBuZXcgdmFsdWUuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4wLjE1NQpQcm9ibGVtOiAgICBNYWM6IGNvbXBpbGF0aW9uIHByb2JsZW1zIGluIHVpLmMgYWZ0ZXIgcGF0Y2ggNi4wLjE0NS4gKEF4ZWwKCSAgICBLaWVsaG9ybikKU29sdXRpb246ICAgRG9uJ3QgY2FsbCBtY2hfaW5jaGFyKCkgd2hlbiBOT19DT05TT0xFIGlzIGRlZmluZWQuCkZpbGVzOgkgICAgc3JjL3VpLmMKClBhdGNoIDYuMC4xNTYKUHJvYmxlbTogICAgU3RhcnRpbmcgVmltIHdpdGggdGhlIC1iIGFyZ3VtZW50IGFuZCB0d28gZmlsZXMsICI6bmV4dCIgZG9lc24ndAoJICAgIHNldCAnYmluYXJ5JyBpbiB0aGUgc2Vjb25kIGZpbGUsIGxpa2UgVmltIDUuNy4gKE5vcm1hbiBEaWFtb25kKQpTb2x1dGlvbjogICBTZXQgdGhlIGdsb2JhbCB2YWx1ZSBmb3IgJ2JpbmFyeScuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjAuMTU3ClByb2JsZW06ICAgIFdoZW4gZGVmaW5pbmcgYSB1c2VyIGNvbW1hbmQgd2l0aCAiLWNvbXBsZXRlPWRpciIgZmlsZXMgd2lsbCBhbHNvCgkgICAgYmUgZXhwYW5kZWQuICBBbHNvLCAiLWNvbXBsZXRlPW1hcHBpbmciIGRvZXNuJ3QgYXBwZWFyIHRvIHdvcmsuCgkgICAgKE1pY2hhZWwgTmF1bWFubikKU29sdXRpb246ICAgVXNlIHRoZSBleHBhbnNpb24gZmxhZ3MgZGVmaW5lZCB3aXRoIHRoZSB1c2VyIGNvbW1hbmQuCgkgICAgSGFuZGxlIGV4cGFuZGluZyBtYXBwaW5ncyBzcGVjaWZpY2FsbHkuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMC4xNTgKUHJvYmxlbTogICAgV2hlbiBnZXR0aW5nIHRoZSB3YXJuaW5nIGZvciBhIGZpbGUgYmVpbmcgY2hhbmdlZCBvdXRzaWRlIG9mIFZpbQoJICAgIGFuZCByZWxvYWRpbmcgdGhlIGZpbGUsIHRoZSAncmVhZG9ubHknIG9wdGlvbiBpcyByZXNldCwgZXZlbiB3aGVuCgkgICAgdGhlIHBlcm1pc3Npb25zIGRpZG4ndCBjaGFuZ2UuIChNYXJjZWwgU3ZpdGFsc2t5KQpTb2x1dGlvbjogICBLZWVwICdyZWFkb25seScgc2V0IHdoZW4gcmVsb2FkaW5nIGEgZmlsZSBhbmQgdGhlIHBlcm1pc3Npb25zCgkgICAgZGlkbid0IGNoYW5nZS4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMC4xNTkKUHJvYmxlbTogICAgV2lsZGNhcmQgZXhwYW5zaW9uIGZvciAiOmVtZW51IiBhbHNvIHNob3dzIHNlcGFyYXRvcnMuClNvbHV0aW9uOiAgIFNraXAgbWVudSBzZXBhcmF0b3JzIGZvciAiOmVtZW51IiwgIjpwb3B1cCIgYW5kICI6dGVhcm9mZiIuCgkgICAgQWxzbywgZG9uJ3QgaGFuZGxlICI6dG1lbnUiIGFzIGlmIGl0IHdhcyAiOnRlYXJvZmYiLiAgQW5kIGxlYXZlCgkgICAgb3V0IHRoZSBhbHRlcm5hdGl2ZXMgd2l0aCAiJiIgaW5jbHVkZWQuCkZpbGVzOgkgICAgc3JjL21lbnUuYwoKUGF0Y2ggNi4wLjE2MApQcm9ibGVtOiAgICBXaGVuIGNvbXBpbGluZyB3aXRoIEdDQyAzLjAuMiBhbmQgdXNpbmcgdGhlICItTzIiIGFyZ3VtZW50LCB0aGUKCSAgICBvcHRpbWl6ZXIgY2F1c2VzIGEgcHJvYmxlbSB0aGF0IG1ha2VzIFZpbSBjcmFzaC4KU29sdXRpb246ICAgQWRkIGEgY29uZmlndXJlIGNoZWNrIHRvIGF2b2lkICItTzIiIGZvciB0aGlzIHZlcnNpb24gb2YgZ2NjLgpGaWxlczoJICAgIHNyYy9jb25maWd1cmUuaW4sIHNyYy9hdXRvL2NvbmZpZ3VyZQoKUGF0Y2ggNi4wLjE2MSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBCaXRtYXBzIGRvbid0IHdvcmsgd2l0aCBzaWducy4KU29sdXRpb246ICAgTWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgYml0bWFwcyB3aXRoIHNpZ25zLiAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMsIHNyYy9mZWF0dXJlLmgsIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfeDExLmMsCgkgICAgc3JjL3Byb3RvL2d1aV93MzIucHJvLCBzcmMvcHJvdG8vZ3VpX3gxMS5wcm8KClBhdGNoIDYuMC4xNjIKUHJvYmxlbTogICAgQ2xpZW50LXNlcnZlcjogQW4gZXJyb3IgbWVzc2FnZSBmb3IgYSB3cm9uZyBleHByZXNzaW9uIGFwcGVhcnMgaW4KCSAgICB0aGUgc2VydmVyIGluc3RlYWQgb2YgdGhlIGNsaWVudC4KU29sdXRpb246ICAgUGFzcyB0aGUgZXJyb3IgbWVzc2FnZSBmcm9tIHRoZSBzZXJ2ZXIgdG8gdGhlIGNsaWVudC4gIEFsc28KCSAgICBhZGp1c3QgdGhlIGV4YW1wbGUgY29kZS4gKEZsZW1taW5nIE1hZHNlbikKRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oLCBzcmMvaWZfeGNtZHNydi5jLCBzcmMvbWFpbi5jLCBzcmMvb3NfbXN3aW4uYywKCSAgICBzcmMvcHJvdG8vaWZfeGNtZHNydi5wcm8sIHNyYy9wcm90by9vc19tc3dpbi5wcm8sCgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHJ1bnRpbWUvdG9vbHMveGNtZHNydl9jbGllbnQuYwoKUGF0Y2ggNi4wLjE2MwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgR1VJIGRpYWxvZywgYSBmaWxlIG5hbWUgaXMgc29tZXRpbWVzIHVzZWQgbGlrZSBpdCB3YXMKCSAgICBhIGRpcmVjdG9yeS4KU29sdXRpb246ICAgU2VwYXJhdGUgcGF0aCBhbmQgZmlsZSBuYW1lIHByb3Blcmx5LgoJICAgIEZvciBHVEssIE1vdGlmIGFuZCBBdGhlbmEgY29uY2F0ZW5hdGUgZGlyZWN0b3J5IGFuZCBmaWxlIG5hbWUgZm9yCgkgICAgdGhlIGRlZmF1bHQgc2VsZWN0aW9uLgpGaWxlczoJICAgIHNyYy9kaWZmLmMsIHNyYy9leF9jbWRzLmMsIHNyYy9leF9jbWRzMi5jLCBzcmMvZXhfZG9jbWQuYywKCSAgICBzcmMvZ3VpX2F0aGVuYS5jLCBzcmMvZ3VpX2d0ay5jLCBzcmMvZ3VpX21vdGlmLmMsIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMC4xNjQKUHJvYmxlbTogICAgQWZ0ZXIgcGF0Y2ggNi4wLjEzNSB0aGUgbWVudSBlbnRyaWVzIGZvciBwYXN0aW5nIGRvbid0IHdvcmsgaW4KCSAgICBJbnNlcnQgYW5kIFZpc3VhbCBtb2RlLiAoTXVyYW9rYSBUYXJvKQpTb2x1dGlvbjogICBBZGQgPHNjcmlwdD4gdG8gYWxsb3cgc2NyaXB0LWxvY2FsIG1hcHBpbmdzLgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMC4xNjUKUHJvYmxlbTogICAgVXNpbmcgLS1yZW1vdGUgYW5kIGV4ZWN1dGluZyBsb2NhbGx5IGdpdmVzIHVuYXZvaWRhYmxlIGVycm9yCgkgICAgbWVzc2FnZXMuClNvbHV0aW9uOiAgIEFkZCAtLXJlbW90ZS1zaWxlbnQgYW5kIC0tcmVtb3RlLXdhaXQtc2lsZW50IHRvIHNpbGVudGx5IGV4ZWN1dGUKCSAgICBsb2NhbGx5LgoJICAgIEZvciBXaW4zMiB0aGVyZSB3YXMgbm8gZXJyb3IgbWVzc2FnZSB3aGVuIGEgc2VydmVyIGRpZG4ndCBleGlzdC4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvaWZfeGNtZHNydi5jLCBzcmMvbWFpbi5jLCBzcmMvb3NfbXN3aW4uYywKCSAgICBzcmMvcHJvdG8vaWZfeGNtZHNydi5wcm8sIHNyYy9wcm90by9vc19tc3dpbi5wcm8KClBhdGNoIDYuMC4xNjYKUHJvYmxlbTogICAgR1VJOiBUaGVyZSBpcyBubyB3YXkgdG8gYXZvaWQgZGlhbG9ncyB0byBwb3AgdXAuClNvbHV0aW9uOiAgIEFkZCB0aGUgJ2MnIGZsYWcgdG8gJ2d1aW9wdGlvbnMnOiBVc2UgY29uc29sZSBkaWFsb2dzLiAgKFllZ2FwcGFuCgkgICAgTGFrc2htYW5hbikKRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb25zLnR4dCwgc3JjL29wdGlvbi5oLCBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjAuMTY3ClByb2JsZW06ICAgIFdoZW4gJ2ZpbGVlbmNvZGluZ3MnIGlzICJsYXRpbjIiIHNvbWUgY2hhcmFjdGVycyBpbiB0aGUgaGVscCBmaWxlcwoJICAgIGFyZSBkaXNwbGF5ZWQgd3JvbmcuClNvbHV0aW9uOiAgIEZvcmNlIHRoZSAnZmlsZWVuY29kaW5nJyBmb3IgdGhlIGhlbHAgZmlsZXMgdG8gYmUgImxhdGluMSIuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjAuMTY4ClByb2JsZW06ICAgICI6JXMvXG4vIy8iIGRvZXNuJ3QgcmVwbGFjZSBhdCBhbiBlbXB0eSBsaW5lLiAoQnJ1Y2UgRGVWaXNzZXIpClNvbHV0aW9uOiAgIERvbid0IHNraXAgbWF0Y2hlcyBhZnRlciBqb2luaW5nIHR3byBsaW5lcy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjAuMTY5ClByb2JsZW06ICAgIFdoZW4gcnVuIGFzIGV2aW0gYW5kIHRoZSBHVUkgY2FuJ3QgYmUgc3RhcnRlZCB3ZSBnZXQgc3R1Y2sgaW4gYQoJICAgIHRlcm1pbmFsIHdpdGhvdXQgbWVudXMgaW4gSW5zZXJ0IG1vZGUuClNvbHV0aW9uOiAgIEV4aXQgd2hlbiB1c2luZyAiZXZpbSIgYW5kICJndmltIC15IiB3aGVuIHRoZSBHVUkgY2FuJ3QgYmUKCSAgICBzdGFydGVkLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMC4xNzAKUHJvYmxlbTogICAgV2hlbiBwcmludGluZyBkb3VibGUtd2lkdGggY2hhcmFjdGVycyB0aGUgc2l6ZSBvZiB0YWJzIGFmdGVyIHRoZW0KCSAgICBpcyB3cm9uZy4gIChNdXJhb2thIFRhcm8pClNvbHV0aW9uOiAgIENvcnJlY3RseSBjb21wdXRlIHRoZSBjb2x1bW4gYWZ0ZXIgYSBkb3VibGUtd2lkdGggY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjAuMTcxClByb2JsZW06ICAgIFdpdGggJ2tleW1vZGVsJyBpbmNsdWRpbmcgInN0YXJ0c2VsIiwgaW4gSW5zZXJ0IG1vZGUgYWZ0ZXIgdGhlIGVuZAoJICAgIG9mIGEgbGluZSwgc2hpZnQtTGVmdCBkb2VzIG5vdCBtb3ZlIHRoZSBjdXJzb3IuIChTdGV2ZSBIYWxsKQpTb2x1dGlvbjogICBDVFJMLU8gZG9lc24ndCBtb3ZlIHRoZSBjdXJzb3IgbGVmdCwgbmVlZCB0byBkbyB0aGF0IGV4cGxpY2l0bHkuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4wLjE3MgpQcm9ibGVtOiAgICBDVFJMLVEgZG9lc24ndCByZXBsYWNlIENUUkwtViBhZnRlciBDVFJMLVggaW4gSW5zZXJ0IG1vZGUgd2hpbGUgaXQKCSAgICBkb2VzIGluIG1vc3Qgb3RoZXIgc2l0dWF0aW9ucy4KU29sdXRpb246ICAgTWFrZSBDVFJMLVggQ1RSTC1RIHdvcmsgbGlrZSBDVFJMLVggQ1RSTC1WIGluIEluc2VydCBtb2RlLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMC4xNzMKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiUCIgdG8gaW5zZXJ0IGEgbGluZSBicmVhayB0aGUgY3Vyc29yIHJlbWFpbnMgcGFzdCB0aGUKCSAgICBlbmQgb2YgdGhlIGxpbmUuClNvbHV0aW9uOiAgIENoZWNrIGZvciB0aGUgY3Vyc29yIGJlaW5nIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBsaW5lLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4wLjE3NApQcm9ibGVtOiAgICBBZnRlciB1c2luZyAiZ2QiIG9yICJnRCIgdGhlIHNlYXJjaCBkaXJlY3Rpb24gZm9yICJuIiBtYXkgc3RpbGwgYmUKCSAgICBiYWNrd2FyZHMuIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBSZXNldCB0aGUgc2VhcmNoIGRpcmVjdGlvbiB0byBmb3J3YXJkLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYywgc3JjL3NlYXJjaC5jLCBzcmMvcHJvdG8vc2VhcmNoLnBybwoKUGF0Y2ggNi4wLjE3NQpQcm9ibGVtOiAgICAiOmhlbHAgL1x6KFwpIiBkb2Vzbid0IHdvcmsuIChUaG9tYXMgS29laGxlcikKU29sdXRpb246ICAgRG91YmxlIHRoZSBiYWNrc2xhc2hlcy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjAuMTc2ClByb2JsZW06ICAgIFdoZW4ga2lsbGVkIGJ5IGEgc2lnbmFsIGF1dG9jb21tYW5kcyBhcmUgc3RpbGwgdHJpZ2dlcmVkIGFzIGlmCgkgICAgbm90aGluZyBoYXBwZW5lZC4KU29sdXRpb246ICAgQWRkIHRoZSB2OmR5aW5nIHZhcmlhYmxlIHRvIGFsbG93IGF1dG9jb21tYW5kcyB0byB3b3JrIGRpZmZlcmVudGx5CgkgICAgd2hlbiBhIGRlYWRseSBzaWduYWwgaGFzIGJlZW4gdHJhcHBlZC4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvb3NfdW5peC5jLCBzcmMvdmltLmgKClBhdGNoIDYuMC4xNzcKUHJvYmxlbTogICAgV2hlbiAnY29tbWVudHN0cmluZycgaXMgZW1wdHkgYW5kICdmb2xkbWV0aG9kJyBpcyAibWFya2VyIiwgInpmIgoJICAgIGRvZXNuJ3Qgd29yay4gKFRob21hcyBTLiBVcmJhbikKU29sdXRpb246ICAgQWRkIHRoZSBtYXJrZXIgZXZlbiB3aGVuICdjb21tZW50c3RyaW5nJyBpcyBlbXB0eS4KRmlsZXM6CSAgICBzcmMvZm9sZC5jLCBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4xNzgKUHJvYmxlbTogICAgVW5pbml0aWFsaXplZCBtZW1vcnkgcmVhZCBmcm9tIHhwX2JhY2tzbGFzaCBmaWVsZC4KU29sdXRpb246ICAgSW5pdGlhbGl6ZSB4cF9iYWNrc2xhc2ggZmllbGQgcHJvcGVybHkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvbWlzYzEuYywgc3JjL3RhZy5jCgpQYXRjaCA2LjAuMTc5ClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIGRpc3BsYXlpbmcgVVRGLTggY2hhcmFjdGVycyBtYXkgcmVhZCB1bmluaXRpYWxpemVkCgkgICAgbWVtb3J5LgpTb2x1dGlvbjogICBBZGQgdXRmY19wdHIybGVuX2NoZWNrX2xlbigpIHRvIGF2b2lkIHJlYWRpbmcgcGFzdCB0aGUgZW5kIG9mIGEKCSAgICBzdHJpbmcuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMsIHNyYy9wcm90by9tYnl0ZS5wcm8sIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMC4xODAKUHJvYmxlbTogICAgRXhwYW5kaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiBhIHN0cmluZyB0aGF0IGVuZHMgaW4gYQoJICAgIGJhY2tzbGFzaCBjb3VsZCBnbyBwYXN0IHRoZSBlbmQgb2YgdGhlIHN0cmluZy4KU29sdXRpb246ICAgRGV0ZWN0IHRoZSB0cmFpbGluZyBiYWNrc2xhc2guCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMC4xODEKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiOmNkIGRpciIgbWVtb3J5IHdhcyBsZWFrZWQuClNvbHV0aW9uOiAgIEZyZWUgdGhlIGFsbG9jYXRlZCBtZW1vcnkuICBBbHNvIGF2b2lkIGFuIHVuaW5pdGlhbGl6ZWQgbWVtb3J5CgkgICAgcmVhZC4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4wLjE4MgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgcmVnZXhwIG9uIG11bHRpLWJ5dGUgY2hhcmFjdGVycywgY291bGQgdHJ5IHRvIHJlYWQgYQoJICAgIGNoYXJhY3RlciBiZWZvcmUgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lLgpTb2x1dGlvbjogICBEb24ndCBkZWNyZW1lbnQgYSBwb2ludGVyIHRvIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIGxpbmUuCkZpbGVzOgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjAuMTgzClByb2JsZW06ICAgIExlYWtpbmcgbWVtb3J5IHdoZW4gIjpmdW5jISIgcmVkZWZpbmVzIGEgZnVuY3Rpb24uClNvbHV0aW9uOiAgIEZyZWUgdGhlIGZ1bmN0aW9uIG5hbWUgd2hlbiBpdCdzIG5vdCB1c2VkLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4xODQKUHJvYmxlbTogICAgTGVha2luZyBtZW1vcnkgd2hlbiBleHBhbmRpbmcgb3B0aW9uIHZhbHVlcy4KU29sdXRpb246ICAgRG9uJ3QgYWx3YXlzIGNvcHkgdGhlIGV4cGFuZGVkIG9wdGlvbiBpbnRvIGFsbG9jYXRlZCBtZW1vcnkuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjAuMTg1ClByb2JsZW06ICAgIENyYXNoIGluIFZpbSB3aGVuIHBhc3RpbmcgYSBzZWxlY3Rpb24gaW4gYW5vdGhlciBhcHBsaWNhdGlvbiwgb24gYQoJICAgIDY0IGJpdCBtYWNoaW5lLgpTb2x1dGlvbjogICBGaXggdGhlIGZvcm1hdCBmb3IgYW4gQXRvbSB0byAzMiBiaXRzLiAoUGV0ZXIgRGVycikKRmlsZXM6CSAgICBzcmMvdWkuYwoKUGF0Y2ggNi4wLjE4NgpQcm9ibGVtOiAgICBYMTE6IFRocmVlIHdhcm5pbmdzIHdoZW4gY29tcGlsaW5nIHRoZSBjbGllbnQtc2VydmVyIGNvZGUuClNvbHV0aW9uOiAgIEFkZCBhIHR5cGVjYXN0IHRvIHVuc2lnbmVkIGNoYXIuCkZpbGVzOgkgICAgc3JjL2lmX3hjbWRzcnYuYwoKUGF0Y2ggNi4wLjE4NwpQcm9ibGVtOiAgICAiSSIgaW4gVmlzdWFsIG1vZGUgYW5kIHRoZW4gInUiIHJlcG9ydHMgdG9vIG1hbnkgY2hhbmdlcy4gKEFuZHJldwoJICAgIFN0cnlrZXIpCgkgICAgIkkiIGluIFZpc3VhbCBsaW5ld2lzZSBtb2RlIGFkanVzdHMgdGhlIGluZGVudCBmb3Igbm8gYXBwYXJlbnQKCSAgICByZWFzb24uClNvbHV0aW9uOiAgIE9ubHkgc2F2ZSB0aG9zZSBsaW5lcyBmb3IgdW5kbyB0aGF0IGFyZSBjaGFuZ2VkLgoJICAgIERvbid0IGNoYW5nZSB0aGUgaW5kZW50IGFmdGVyIGluc2VydGluZyBpbiBWaXN1YWwgbGluZXdpc2UgbW9kZS4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMC4xODgKUHJvYmxlbTogICAgV2luMzI6IEFmdGVyIHBhdGNoIDYuMC4xNjEgc2lnbnMgZGVmaW5lZCBpbiB0aGUgdmltcmMgZmlsZSBkb24ndAoJICAgIHdvcmsuClNvbHV0aW9uOiAgIEluaXRpYWxpemUgdGhlIHNpZ24gaWNvbnMgYWZ0ZXIgaW5pdGlhbGl6aW5nIHRoZSBHVUkuIChWaW5jZQoJICAgIE5lZ3JpKQpGaWxlczoJICAgIHNyYy9ndWkuYywgc3JjL2d1aV94MTEuYwoKUGF0Y2ggNi4wLjE4OQpQcm9ibGVtOiAgICBUaGUgc2l6ZSBvZiB0aGUgVmlzdWFsIGFyZWEgaXNuJ3QgYWx3YXlzIGRpc3BsYXllZCB3aGVuIHNjcm9sbGluZwoJICAgICgncnVsZXInIG9mZiwgJ3Nob3djbWQnIG9uKS4gIEFsc28gbm90IHdoZW4gdXNpbmcgYSBzZWFyY2gKCSAgICBjb21tYW5kLiAoU3lsdmFpbiBIaXRpZXIpClNvbHV0aW9uOiAgIFJlZGlzcGxheSB0aGUgc2l6ZSBvZiB0aGUgc2VsZWN0aW9uIGFmdGVyIHNob3dpbmcgdGhlIG1vZGUuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjAuMTkwClByb2JsZW06ICAgIEdVSTogd2hlbiAnbW91c2UnIGlzIGVtcHR5IGEgY2xpY2sgd2l0aCB0aGUgbWlkZGxlIGJ1dHRvbiBzdGlsbAoJICAgIG1vdmVzIHRoZSBjdXJzb3IuClNvbHV0aW9uOiAgIFBhc3RlIGF0IHRoZSBjdXJzb3IgcG9zaXRpb24gaW5zdGVhZCBvZiB0aGUgbW91c2UgcG9zaXRpb24uCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMTkxClByb2JsZW06ICAgIFdoZW4gbm8gc2VydmVycyBhcmUgYXZhaWxhYmxlIHNlcnZlcmxpc3QoKSBnaXZlcyBhbiBlcnJvciBpbnN0ZWFkCgkgICAgb2YgcmV0dXJuaW5nIGFuIGVtcHR5IHN0cmluZy4gKEhhcmkgS3Jpc2huYSkKU29sdXRpb246ICAgRG9uJ3QgZ2l2ZSBhbiBlcnJvciBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4xOTIKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzIHNldCwgInlsaiIgZ29lcyB0byB0aGUgd3JvbmcgY29sdW1uLiAoQW5kcmV3CgkgICAgTmlraXRpbikKU29sdXRpb246ICAgUmVzZXQgdGhlIGZsYWcgdGhhdCB3X3ZpcnRjb2wgaXMgdmFsaWQgd2hlbiBtb3ZpbmcgdGhlIGN1cnNvciBiYWNrCgkgICAgdG8gdGhlIHN0YXJ0IG9mIHRoZSBvcGVyYXRlZCBhcmVhLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4wLjE5MwpQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0LCBjb2woIi4iKSBhZnRlciB0aGUgZW5kIG9mIHRoZSBsaW5lCgkgICAgc2hvdWxkIHJldHVybiBvbmUgZXh0cmEuClNvbHV0aW9uOiAgIEFkZCBvbmUgdG8gdGhlIGNvbHVtbi4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjAuMTk0ClByb2JsZW06ICAgICItLXJlbW90ZS1zaWxlbnQiIHRyaWVzIHRvIHNlbmQgYSByZXBseSB0byB0aGUgY2xpZW50LCBsaWtlIGl0IHdhcwoJICAgICItLXJlbW90ZS13YWl0Ii4KU29sdXRpb246ICAgUHJvcGVybHkgY2hlY2sgZm9yIHRoZSBhcmd1bWVudC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjAuMTk1ClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQgYW5kIGEgc2VhcmNoIHN0YXJ0cyBpbiB2aXJ0dWFsIHNwYWNlCgkgICAgIjpjYWxsIHNlYXJjaCgneCcpIiBnb2VzIHRvIHRoZSB3cm9uZyBwb3NpdGlvbi4gKEVyaWMgTG9uZykKU29sdXRpb246ICAgUmVzZXQgY29sYWRkIHdoZW4gZmluZGluZyBhIG1hdGNoLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4wLjE5NgpQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0LCAnc2VsZWN0aW9uJyBpcyAiZXhjbHVzaXZlIiBhbmQgdmlzdWFsbHkKCSAgICBzZWxlY3RpbmcgcGFydCBvZiBhIHRhYiBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lLCAieCIgam9pbnMgaXQgd2l0aAoJICAgIHRoZSBwcmV2aW91cyBsaW5lLiAgQWxzbywgd2hlbiB0aGUgc2VsZWN0aW9uIHNwYW5zIG1vcmUgdGhhbiBvbmUKCSAgICBsaW5lIHRoZSB3aG9sZSB0YWIgaXMgZGVsZXRlZC4KU29sdXRpb246ICAgVGFrZSBjb2xhZGQgaW50byBhY2NvdW50IHdoZW4gYWRqdXN0aW5nIGZvciAnc2VsZWN0aW9uJyBiZWluZwoJICAgICJleGNsdXNpdmUiLiAgQWxzbyBleHBhbmQgYSB0YWIgaW50byBzcGFjZXMgd2hlbiBkZWxldGluZyBtb3JlCgkgICAgdGhhbiBvbmUgbGluZS4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMsIHNyYy9vcHMuYwoKUGF0Y2ggNi4wLjE5NwpQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0IGFuZCAnc2VsZWN0aW9uJyBpcyAiZXhjbHVzaXZlIiwgInYkeCIKCSAgICBkb2Vzbid0IGRlbGV0ZSB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIGxpbmUuIChFcmljIExvbmcpClNvbHV0aW9uOiAgIERvbid0IHJlc2V0IHRoZSBpbmNsdXNpdmUgZmxhZy4gKEhlbG11dCBTdGllZ2xlcikKRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4xOTgKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzIHNldCBhbmQgJ3Nob3dicmVhaycgaXMgbm90IGVtcHR5LCBtb3ZpbmcgdGhlCgkgICAgY3Vyc29yIG92ZXIgdGhlIGxpbmUgYnJlYWsgZG9lc24ndCB3b3JrIHByb3Blcmx5LiAoRXJpYyBMb25nKQpTb2x1dGlvbjogICBNYWtlIGdldHZpc2NvbCgpIGFuZCBnZXR2aXNjb2wyKCkgdXNlIGdldHZ2Y29sKCkgdG8gb2J0YWluIHRoZQoJICAgIHZpcnR1YWwgY3Vyc29yIHBvc2l0aW9uLiAgQWRqdXN0IGNvbGFkdmFuY2UoKSBhbmQgb25lbGVmdCgpIHRvCgkgICAgc2tpcCBvdmVyIHRoZSAnc2hvd2JyZWFrJyBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9taXNjMi5jCgpQYXRjaCA2LjAuMTk5ClByb2JsZW06ICAgIE11bHRpLWJ5dGU6IGNvdWxkIHVzZSBpY29udigpIGFmdGVyIGNhbGxpbmcgaWNvbnZfZW5kKCkuCgkgICAgKFlhc3VoaXJvIE1hdHN1bW90bykKU29sdXRpb246ICAgU3RvcCBjb252ZXJ0aW5nIGlucHV0IGFuZCBvdXRwdXQgc3RyZWFtIGFmdGVyIGNhbGxpbmcgaWNvbnZfZW5kKCkuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMC4yMDAKUHJvYmxlbTogICAgQSBzY3JpcHQgdGhhdCBzdGFydHMgd2l0aCAiIyFwZXJsIiBpc24ndCByZWNvZ25pemVkIGFzIGEgUGVybAoJICAgIGZpbGV0eXBlLgpTb2x1dGlvbjogICBJZ25vcmUgYSBtaXNzaW5nIHBhdGggaW4gYSBzY3JpcHQgaGVhZGVyLiAgQWxzbywgc3BlZWQgdXAKCSAgICByZWNvZ25pemluZyBzY3JpcHRzIGJ5IHNpbXBsaWZ5aW5nIHRoZSBwYXR0ZXJucyB1c2VkLgpGaWxlczoJICAgIHJ1bnRpbWUvc2NyaXB0cy52aW0KClBhdGNoIDYuMC4yMDEKUHJvYmxlbTogICAgV2hlbiBzY3JvbGxiaW5kaW5nIGFuZCBkb2luZyBhIGxvbmcganVtcCwgc3dpdGNoaW5nIHdpbmRvd3MganVtcHMKCSAgICB0byBhbm90aGVyIHBvc2l0aW9uIGluIHRoZSBmaWxlLiAgU2Nyb2xsaW5nIGEgZmV3IGxpbmVzIGF0IGEgdGltZQoJICAgIGlzIE9LLiAoSm9oYW5uZXMgWmVsbG5lcikKU29sdXRpb246ICAgV2hlbiBzZXR0aW5nIHdfdG9wbGluZSByZXNldCB0aGUgZmxhZyB0aGF0IGluZGljYXRlcyB3X2JvdGxpbmUgaXMKCSAgICB2YWxpZC4KRmlsZXM6CSAgICBzcmMvZGlmZi5jCgpQYXRjaCA2LjAuMjAyClByb2JsZW06ICAgIFRoZSAiaWNvbj0iIGFyZ3VtZW50IGZvciB0aGUgbWVudSBjb21tYW5kIHRvIGRlZmluZSBhIHRvb2xiYXIgaWNvbgoJICAgIHdpdGggYSBmaWxlIGRpZG4ndCB3b3JrIGZvciBHVEsuIChDaHJpc3RpYW4gSi4gUm9iaW5zb24pCgkgICAgRm9yIE1vdGlmIGFuZCBBdGhlbmEgYSBmdWxsIHBhdGggd2FzIHJlcXVpcmVkLgpTb2x1dGlvbjogICBTZWFyY2ggdGhlIGljb24gZmlsZSB1c2luZyB0aGUgc3BlY2lmaWVkIHBhdGguICBFeHBhbmQgZW52aXJvbm1lbnQKCSAgICB2YXJpYWJsZXMgaW4gdGhlIGZpbGUgbmFtZS4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jLCBzcmMvZ3VpX3gxMS5jCgpQYXRjaCA2LjAuMjAzClByb2JsZW06ICAgIENhbiBjaGFuZ2UgJ2ZpbGVmb3JtYXQnIGV2ZW4gdGhvdWdoICdtb2RpZmlhYmxlJyBpcyBvZmYuCgkgICAgKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIENvcnJlY3QgY2hlY2sgZm9yIGtpbmQgb2Ygc2V0IGNvbW1hbmQuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjAuMjA0ClByb2JsZW06ICAgICI6dW5sZXQiIGRvZXNuJ3Qgd29yayBmb3IgdmFyaWFibGVzIHdpdGggY3VybHkgYnJhY2VzLiAoVGhvbWFzCgkgICAgU2NvdHQgVXJiYW4pClNvbHV0aW9uOiAgIEhhbmRsZSB2YXJpYWJsZSBuYW1lcyB3aXRoIGN1cmx5IGJyYWNlcyBwcm9wZXJseS4gKFZpbmNlIE5lZ3JpKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4yMDUgKGV4dHJhKQpQcm9ibGVtOiAgICAiZ3ZpbSAtZiIgc3RpbGwgZm9ya3Mgd2hlbiB1c2luZyB0aGUgYmF0Y2ggc2NyaXB0IHRvIHN0YXJ0IFZpbS4KU29sdXRpb246ICAgQWRkIGFuIGFyZ3VtZW50IHRvICJzdGFydCIgdG8gdXNlIGEgZm9yZWdyb3VuZCBzZXNzaW9uIChNaWNoYWVsCgkgICAgR2VkZGVzKQpGaWxlczoJICAgIHNyYy9kb3NpbnN0LmMKClBhdGNoIDYuMC4yMDYKUHJvYmxlbTogICAgVW5peDogaWYgZXhwYW5kaW5nIGEgd2lsZGNhcmQgaW4gYSBmaWxlIG5hbWUgcmVzdWx0cyBpbiBhCgkgICAgd2lsZGNhcmQgY2hhcmFjdGVyIGFuZCB0aGVyZSBhcmUgbW9yZSBwYXJ0cyBpbiB0aGUgcGF0aCB3aXRoIGEKCSAgICB3aWxkY2FyZCwgaXQgaXMgZXhwYW5kZWQgYWdhaW4uCgkgICAgV2luZG93czogIjplZGl0IFxbYWJjXSIgY291bGQgbmV2ZXIgZWRpdCB0aGUgZmlsZSAiW2FiY10iLgpTb2x1dGlvbjogICBEb24ndCBleHBhbmQgd2lsZGNhcmRzIGluIGFscmVhZHkgZXhwYW5kZWQgcGFydHMuCgkgICAgRG9uJ3QgcmVtb3ZlIGJhY2tzbGFzaGVzIHVzZWQgdG8gZXNjYXBlIHRoZSBzcGVjaWFsIG1lYW5pbmcgb2YgYQoJICAgIHdpbGRjYXJkOyBjYW4gZWRpdCAiW2FiY10iIGlmICdbJyBpcyByZW1vdmVkIGZyb20gJ2lzZm5hbWUnLgpGaWxlczoJICAgIHNyYy9taXNjMS5jLCBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjAuMjA3IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFRoZSBzaG9ydGN1dHMgYW5kIHN0YXJ0IG1lbnUgZW50cmllcyBsZXQgVmltIHN0YXJ0dXAgaW4gdGhlCgkgICAgZGVza3RvcCBkaXJlY3RvcnksIHdoaWNoIGlzIG5vdCB2ZXJ5IHVzZWZ1bC4KU29sdXRpb246ICAgTGV0IHNob3J0Y3V0cyBzdGFydCBWaW0gaW4gJEhPTUUgb3IgJEhPTUVESVIkSE9NRVBBVEguCkZpbGVzOgkgICAgc3JjL2Rvc2luc3QuYwoKUGF0Y2ggNi4wLjIwOApQcm9ibGVtOiAgICBHVUk6IFdoZW4gdXNpbmcgYSBrZXltYXAgYW5kIHRoZSBjdXJzb3IgaXMgbm90IGJsaW5raW5nLCBDVFJMLV4gaW4KCSAgICBJbnNlcnQgbW9kZSBkb2Vzbid0IGRpcmVjdGx5IGNoYW5nZSB0aGUgY3Vyc29yIGNvbG9yLiAgKEFsZXgKCSAgICBTb2xvdykKU29sdXRpb246ICAgRm9yY2UgYSByZWRyYXcgb2YgdGhlIGN1cnNvciBhZnRlciBDVFJMLV4uCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4wLjIwOQpQcm9ibGVtOiAgICBHVUkgR1RLOiBBZnRlciBzZWxlY3RpbmcgYSAnZ3VpZm9udCcgd2l0aCB0aGUgZm9udCBkaWFsb2cgdGhlcmUKCSAgICBhcmUgcmVkcmF3IHByb2JsZW1zIGZvciBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIFNlcGFyYXRlIHRoZSBmb250IGRpYWxvZyBmcm9tIHNldHRpbmcgdGhlIG5ldyBmb250IG5hbWUgdG8gYXZvaWQKCSAgICB0aGF0ICIqIiBpcyB1c2VkIHRvIGZpbmQgd2lkZSBhbmQgYm9sZCBmb250cy4KCSAgICBXaGVuIHJlZHJhd2luZyBleHRyYSBjaGFyYWN0ZXJzIGZvciB0aGUgYm9sZCB0cmljaywgdGFrZSBjYXJlIG9mCgkgICAgVVRGLTggY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvZ3VpLmMsIHNyYy9ndWlfZ3RrX3gxMS5jLCBzcmMvb3B0aW9uLmMsIHNyYy9wcm90by9ndWkucHJvLAoJICAgIHNyYy9wcm90by9ndWlfZ3RrX3gxMS5wcm8KClBhdGNoIDYuMC4yMTAKUHJvYmxlbTogICAgQWZ0ZXIgcGF0Y2ggNi4wLjE2NyBpdCdzIG5vIGxvbmdlciBwb3NzaWJsZSB0byBlZGl0IGEgaGVscCBmaWxlIGluCgkgICAgYW5vdGhlciBlbmNvZGluZyB0aGFuIGxhdGluMS4KU29sdXRpb246ICAgTGV0IHRoZSAiKytlbmM9IiBhcmd1bWVudCBvdmVycnVsZSB0aGUgZW5jb2RpbmcuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjAuMjExClByb2JsZW06ICAgIFdoZW4gcmVhZGluZyBhIGZpbGUgZmFpbHMsIHRoZSBidWZmZXIgaXMgZW1wdHksIGJ1dCBpdCBtaWdodCBzdGlsbAoJICAgIGJlIHBvc3NpYmxlIHRvIHdyaXRlIGl0IHdpdGggIjp3IiBsYXRlci4gIFRoZSBvcmlnaW5hbCBmaWxlIGlzCgkgICAgbG9zdCB0aGVuLiAoU3RldmUgQW1lcmlnZSkKU29sdXRpb246ICAgU2V0IHRoZSAncmVhZG9ubHknIG9wdGlvbiBmb3IgdGhlIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMC4yMTIKUHJvYmxlbTogICAgR1VJIEdUSzogY29uZmlybSgiZm9vIiwgIiIpIGNhdXNlcyBhIGNyYXNoLgpTb2x1dGlvbjogICBEb24ndCBtYWtlIGEgbm9uLWV4aXN0aW5nIGJ1dHRvbiB0aGUgZGVmYXVsdC4gIEFkZCBhIGRlZmF1bHQgIk9LIgoJICAgIGJ1dHRvbiBpZiBub25lIGlzIHNwZWNpZmllZC4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZ3VpX2d0ay5jCgpQYXRjaCA2LjAuMjEzClByb2JsZW06ICAgIFdoZW4gYSBmaWxlIG5hbWUgY29udGFpbnMgdW5wcmludGFibGUgY2hhcmFjdGVycywgQ1RSTC1HIGFuZCBvdGhlcgoJICAgIGNvbW1hbmRzIGRvbid0IHdvcmsgd2VsbC4KU29sdXRpb246ICAgVHVybiB1bnByaW50YWJsZSBpbnRvIHByaW50YWJsZSBjaGFyYWN0ZXJzLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2NoYXJzZXQuYwoKUGF0Y2ggNi4wLjIxNApQcm9ibGVtOiAgICBXaGVuIHRoZXJlIGlzIGEgYnVmZmVyIHdpdGhvdXQgYSBuYW1lLCBlbXB0eSBlbnRyaWVzIGFwcGVhciBpbiB0aGUKCSAgICBqdW1wbGlzdCBzYXZlZCBpbiB0aGUgdmltaW5mbyBmaWxlLgpTb2x1dGlvbjogICBEb24ndCB3cml0ZSBqdW1wbGlzdCBlbnRyaWVzIHdpdGhvdXQgYSBmaWxlIG5hbWUuCkZpbGVzOgkgICAgc3JjL21hcmsuYwoKUGF0Y2ggNi4wLjIxNQpQcm9ibGVtOiAgICBBZnRlciB1c2luZyAiLyIgZnJvbSBWaXN1YWwgbW9kZSB0aGUgUGFzdGUgbWVudSBhbmQgVG9vbGJhcgoJICAgIGVudHJpZXMgZG9uJ3Qgd29yay4gIFBhc3Rpbmcgd2l0aCB0aGUgbWlkZGxlIG1vdXNlIGRvZXNuJ3Qgd29yawoJICAgIGFuZCBtb2RlbGVzcyBzZWxlY3Rpb24gZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBVc2UgdGhlIGNvbW1hbmQgbGluZSBtb2RlIG1lbnVzIGFuZCB1c2UgdGhlIG1vdXNlIGxpa2UgaW4gdGhlCgkgICAgY29tbWFuZCBsaW5lLgpGaWxlczoJICAgIHNyYy9ndWkuYywgc3JjL21lbnUuYywgc3JjL3VpLmMKClBhdGNoIDYuMC4yMTYKUHJvYmxlbTogICAgQWZ0ZXIgcmVsb2FkaW5nIGEgZmlsZSwgZGlzcGxheWVkIGluIGFub3RoZXIgd2luZG93IHRoYW4gdGhlCgkgICAgY3VycmVudCBvbmUsIHdoaWNoIHdhcyBjaGFuZ2VkIG91dHNpZGUgb2YgVmltIHRoZSBwYXJ0IG9mIHRoZSBmaWxlCgkgICAgYXJvdW5kIHRoZSBjdXJzb3Igc2V0IGJ5IGF1dG9jb21tYW5kcyBtYXkgYmUgZGlzcGxheWVkLCBidXQKCSAgICBqdW1waW5nIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGN1cnNvciBwb3NpdGlvbiB3aGVuIGVudGVyaW5nIHRoZQoJICAgIHdpbmRvdyBhZ2Fpbi4KU29sdXRpb246ICAgUmVzdG9yZSB0aGUgdG9wbGluZSBvZiB0aGUgd2luZG93LgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjIxNwpQcm9ibGVtOiAgICBXaGVuIGdldHRpbmcgaGVscCBmcm9tIGEgaGVscCBmaWxlIHRoYXQgd2FzIHVzZWQgYmVmb3JlLCBhbiBlbXB0eQoJICAgIHVubGlzdGVkIGJ1ZmZlciByZW1haW5zIGluIHRoZSBidWZmZXIgbGlzdC4gKEVyaWMgTG9uZykKU29sdXRpb246ICAgV2lwZSBvdXQgdGhlIGJ1ZmZlciB1c2VkIHRvIGRvIHRoZSB0YWcganVtcCBmcm9tLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2V4X2NtZHMuYywgc3JjL3Byb3RvL2J1ZmZlci5wcm8KClBhdGNoIDYuMC4yMTgKUHJvYmxlbTogICAgV2l0aCBleHBsb3JlciBwbHVnaW46ICJ2aW0gLW8gZmlsZW5hbWUgZGlybmFtZSIgZG9lc24ndCBsb2FkIHRoZQoJICAgIGV4cGxvcmVyIHdpbmRvdyB1bnRpbCBlbnRlcmluZyB0aGUgd2luZG93LgpTb2x1dGlvbjogICBDYWxsIHM6RWRpdERpcigpIGZvciBlYWNoIHdpbmRvdyBhZnRlciBzdGFydGluZyB1cC4KRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9leHBsb3Jlci52aW0KClBhdGNoIDYuMC4yMTkKUHJvYmxlbTogICAgIjpzZXRsb2NhbCIgYW5kICI6c2V0Z2xvYmFsIiwgd2l0aG91dCBhcmd1bWVudHMsIGRpc3BsYXkgdGVybWluYWwKCSAgICBvcHRpb25zLiAoWmRlbmVrIFNla2VyYSkKU29sdXRpb246ICAgU2tpcCB0ZXJtaW5hbCBvcHRpb25zIGZvciB0aGVzZSB0d28gY29tbWFuZHMuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjAuMjIwClByb2JsZW06ICAgIEFmdGVyIHBhdGNoIDYuMC4yMTggZ2V0IGEgYmVlcCBvbiBzdGFydHVwLiAoTXVyYW9rYSBUYXJvKQpTb2x1dGlvbjogICBEb24ndCB0cnkgZ29pbmcgdG8gYW5vdGhlciB3aW5kb3cgd2hlbiB0aGVyZSBpc24ndCBvbmUuCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZXhwbG9yZXIudmltCgpQYXRjaCA2LjAuMjIxClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjpiZGVsIiBhbmQgYWxsIG90aGVyIGJ1ZmZlcnMgYXJlIHVubG9hZGVkIHRoZSBsb3dlc3QKCSAgICBudW1iZXJlZCBidWZmZXIgaXMganVtcGVkIHRvIGluc3RlYWQgb2YgdGhlIG1vc3QgcmVjZW50IG9uZS4gKERhdmUKCSAgICBDZWNpbCkKU29sdXRpb246ICAgUHJlZmVyIGFuIHVubG9hZGVkIGJ1ZmZlciBmcm9tIHRoZSBqdW1wbGlzdC4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMC4yMjIKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzIHNldCBhbmQgdXNpbmcgYXV0b2luZGVudCwgcHJlc3NpbmcgRXNjIGFmdGVyCgkgICAgc3RhcnRpbmcgYSBuZXcgbGluZSBsZWF2ZXMgYmVoaW5kIHBhcnQgb2YgdGhlIGF1dG9pbmRlbnQuIChIZWxtdXQKCSAgICBTdGllZ2xlcikKU29sdXRpb246ICAgQWZ0ZXIgZGVsZXRpbmcgdGhlIGxhc3QgY2hhciBpbiB0aGUgbGluZSBhZGp1c3QgdGhlIGN1cnNvcgoJICAgIHBvc2l0aW9uIGluIGRlbF9ieXRlcygpLgpGaWxlczoJICAgIHNyYy9taXNjMS5jLCBzcmMvb3BzLmMKClBhdGNoIDYuMC4yMjMKUHJvYmxlbTogICAgV2hlbiBzcGxpdHRpbmcgYSB3aW5kb3cgdGhhdCBjb250YWlucyB0aGUgZXhwbG9yZXIsIGhpdHRpbmcgQ1Igb24KCSAgICBhIGZpbGUgbmFtZSBnaXZlcyBlcnJvciBtZXNzYWdlcy4KU29sdXRpb246ICAgU2V0IHRoZSB3aW5kb3cgdmFyaWFibGVzIGFmdGVyIHNwbGl0dGluZyB0aGUgd2luZG93LgpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL2V4cGxvcmVyLnZpbQoKUGF0Y2ggNi4wLjIyNApQcm9ibGVtOiAgICBXaGVuICdzaWRlc2Nyb2xsJyBhbmQgJ3NpZGVzY3JvbGxvZmYnIGFyZSBzZXQgaW4gYSBuYXJyb3cgd2luZG93CgkgICAgdGhlIHRleHQgbWF5IGp1bXAgbGVmdC1yaWdodCBhbmQgdGhlIGN1cnNvciBpcyBkaXNwbGF5ZWQgaW4gdGhlCgkgICAgd3JvbmcgcG9zaXRpb24uIChBcmljIEJsdW1lcikKU29sdXRpb246ICAgV2hlbiB0aGVyZSBpcyBub3QgZW5vdWdoIHJvb20sIGNvbXB1dGUgdGhlIGxlZnQgY29sdW1uIGZvciB0aGUKCSAgICB3aW5kb3cgdG8gcHV0IHRoZSBjdXJzb3IgaW4gdGhlIG1pZGRsZS4KRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjAuMjI1ClByb2JsZW06ICAgIEluIFZpc3VhbCBtb2RlICJnayIgZ2V0cyBzdHVjayBpbiBhIGNsb3NlZCBmb2xkLiAoU3JpbmF0aAoJICAgIEF2YWRoYW51bGEpClNvbHV0aW9uOiAgIEJlaGF2ZSBkaWZmZXJlbnRseSBpbiBhIGNsb3NlZCBmb2xkLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4wLjIyNgpQcm9ibGVtOiAgICBXaGVuIGRvaW5nICI6cmVjb3ZlciBmaWxlIiBnZXQgdGhlIEFUVEVOVElPTiBwcm9tcHQuCgkgICAgQWZ0ZXIgcmVjb3ZlcmluZyB0aGUgc2FtZSBmaWxlIGZpdmUgdGltZXMgZ2V0IGEgcmVhZCBlcnJvciBvciBhCgkgICAgY3Jhc2guICAoQWxleCBEYXZpcykKU29sdXRpb246ICAgU2V0IHRoZSByZWNvdmVyeW1vZGUgZmxhZyBiZWZvcmUgc2V0dGluZyB0aGUgZmlsZSBuYW1lLgoJICAgIENvcnJlY3QgdGhlIGFtb3VudCBvZiB1c2VkIG1lbW9yeSBmb3IgdGhlIHNpemUgb2YgYmxvY2sgemVyby4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4wLjIyNyAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBSSVNDIE9TIHBvcnQgaGFzIHNldmVyYWwgcHJvYmxlbXMuClNvbHV0aW9uOiAgIFVwZGF0ZSB0aGUgbWFrZWZpbGUgYW5kIGZpeCBzb21lIG9mIHRoZSBwcm9ibGVtcy4gKEFuZHkgV2luZ2F0ZSkKRmlsZXM6CSAgICBzcmMvTWFrZV9yby5tYWssIHNyYy9vc19yaXNjb3MuYywgc3JjL29zX3Jpc2Nvcy5oLAoJICAgIHNyYy9wcm90by9vc19yaXNjb3MucHJvLCBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMC4yMjgKUHJvYmxlbTogICAgQWZ0ZXIgcHV0dGluZyB0ZXh0IGluIFZpc3VhbCBtb2RlIHRoZSAnXSBtYXJrIGlzIG5vdCBhdCB0aGUgZW5kIG9mCgkgICAgdGhlIHB1dCB0ZXh0LgoJICAgIFVuZG8gZG9lc24ndCB3b3JrIHByb3Blcmx5IHdoZW4gcHV0dGluZyBhIHdvcmQgaW50byBhIFZpc3VhbAoJICAgIHNlbGVjdGlvbiB0aGF0IHNwYW5zIG1vcmUgdGhhbiBvbmUgbGluZS4KU29sdXRpb246ICAgQ29ycmVjdCB0aGUgJ10gbWFyayBmb3IgdGhlIGRlbGV0aW5nIHRoZSBWaXN1YWxseSBzZWxlY3RlZCB0ZXh0LgoJICAgICNpZmRlZiBjb2RlIHRoYXQgZGVwZW5kcyBvbiBGRUFUX1ZJU1VBTCBwcm9wZXJseS4KCSAgICBBbHNvIGZpeCB0aGF0ICJkIiBjcm9zc2luZyBsaW5lIGJvdW5kYXJ5IHB1dHMgJ1sganVzdCBiZWZvcmUKCSAgICBkZWxldGVkIHRleHQuCgkgICAgRml4IHVuZG8gYnkgc2F2aW5nIGFsbCBkZWxldGVkIGxpbmVzIGF0IG9uY2UuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jLAoJICAgIHNyYy9zdHJ1Y3RzLmgsIHNyYy92aW0uaAoKUGF0Y2ggNi4wLjIyOQpQcm9ibGVtOiAgICBNdWx0aS1ieXRlOiBXaXRoICdtJyBpbiAnZm9ybWF0b3B0aW9ucycsIGZvcm1hdHRpbmcgZG9lc24ndCBicmVhawoJICAgIGF0IGEgbXVsdGktYnl0ZSBjaGFyIGZvbGxvd2VkIGJ5IGFuIEFTQ0lJIGNoYXIsIGFuZCB0aGUgb3RoZXIgd2F5CgkgICAgYXJvdW5kLiAoTXVyYW9rYSBUYXJvKQoJICAgIFdoZW4gam9pbmluZyBsaW5lcyBhIHNwYWNlIGlzIGluc2VydGVkIGJldHdlZW4gbXVsdGktYnl0ZQoJICAgIGNoYXJhY3RlcnMsIHdoaWNoIGlzIG5vdCBhbHdheXMgd2FudGVkLgpTb2x1dGlvbjogICBDaGVjayBmb3IgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgYmVmb3JlIGFuZCBhZnRlciB0aGUgYnJlYWtwb2ludC4KCSAgICBEb24ndCBpbnNlcnQgYSBzcGFjZSBiZWZvcmUgb3IgYWZ0ZXIgYSBtdWx0aS1ieXRlIGNoYXJhY3RlciB3aGVuCgkgICAgam9pbmluZyBsaW5lcyBhbmQgdGhlICdNJyBmbGFnIGlzIGluICdmb3JtYXRvcHRpb25zJy4gIERvbid0CgkgICAgaW5zZXJ0IGEgc3BhY2UgYmV0d2VlbiBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgd2hlbiB0aGUgJ0InIGZsYWcgaXMKCSAgICBpbiAnZm9ybWF0b3B0aW9ucycuCkZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL29wcy5jLCBzcmMvb3B0aW9uLmgKClBhdGNoIDYuMC4yMzAKUHJvYmxlbTogICAgVGhlICI6IiB1c2VkIGFzIGEgbW90aW9uIGFmdGVyIGFuIG9wZXJhdG9yIGlzIGV4Y2x1c2l2ZSwgYnV0CgkgICAgc29tZXRpbWVzIGl0IHNob3VsZCBiZSBpbmNsdXNpdmUuClNvbHV0aW9uOiAgIE1ha2UgdGhlICJ2IiBpbiBiZXR3ZWVuIGFuIG9wZXJhdG9yIGFuZCBtb3Rpb24gdG9nZ2xlCgkgICAgaW5jbHVzaXZlL2V4Y2x1c2l2ZS4gKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgcnVudGltZS9kb2MvbW90aW9uLnR4dCwgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMjMxClByb2JsZW06ICAgICJnZCIgYW5kICJnRCIgZG9uJ3Qgd29yayB3aGVuIHRoZSB2YXJpYWJsZSBtYXRjaGVzIGluIGEgY29tbWVudAoJICAgIGp1c3QgYWJvdmUgdGhlIG1hdGNoIHRvIGJlIGZvdW5kLiAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgQ29udGludWUgc2VhcmNoaW5nIGluIHRoZSBmaXJzdCBjb2x1bW4gYmVsb3cgdGhlIGNvbW1lbnQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMjMyClByb2JsZW06ICAgICJ2aW0gLS12ZXJzaW9uIiBwcmludHMgb24gc3RkZXJyIHdoaWxlICJ2aW0gLS1oZWxwIiBwcmludHMgb24KCSAgICBzdGRvdXQuClNvbHV0aW9uOiAgIE1ha2UgInZpbSAtLXZlcnNpb24iIHVzZSBzdGRvdXQuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvc3RhcnRpbmcudHh0LCBzcmMvZ2xvYmFscy5oLCBzcmMvbWFpbi5jLCBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjAuMjMzClByb2JsZW06ICAgICJcMVx7LDh9IiBpbiBhIHJlZ2V4cCBpcyBub3QgYWxsb3dlZCwgYnV0IGl0IHNob3VsZCB3b3JrLCBiZWNhdXNlCgkgICAgdGhlcmUgaXMgYW4gdXBwZXIgbGltaXQuICAoSmltIEJhdHRsZSkKU29sdXRpb246ICAgQWxsb3cgdXNpbmcgIlx7bWluLG1heH0iIGFmdGVyIGFuIGF0b20gdGhhdCBjYW4gYmUgZW1wdHkgaWYgdGhlcmUKCSAgICBpcyBhbiB1cHBlciBsaW1pdC4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMC4yMzQKUHJvYmxlbTogICAgSXQncyBub3QgZWFzeSB0byBzZXQgdGhlIGN1cnNvciBwb3NpdGlvbiB3aXRob3V0IG1vZGlmeWluZyBtYXJrcy4KU29sdXRpb246ICAgQWRkIHRoZSBjdXJzb3IoKSBmdW5jdGlvbi4gKFllZ2FwcGFuIExha3NobWFuYW4pCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4yMzUKUHJvYmxlbTogICAgV2hlbiB3cml0aW5nIGEgZmlsZSBhbmQgcmVuYW1pbmcgdGhlIG9yaWdpbmFsIGZpbGUgdG8gbWFrZSB0aGUKCSAgICBiYWNrdXAsIHBlcm1pc3Npb25zIGNvdWxkIGNoYW5nZSB3aGVuIHNldHRpbmcgdGhlIG93bmVyLgpTb2x1dGlvbjogICBPbmx5IHNldCB0aGUgb3duZXIgd2hlbiBpdCdzIG5lZWRlZCBhbmQgc2V0IHRoZSBwZXJtaXNzaW9ucyBhZ2FpbgoJICAgIGFmdGVyd2FyZHMuCgkgICAgV2hlbiAnYmFja3VwY29weScgaXMgImF1dG8iIGNoZWNrIHRoYXQgdGhlIG93bmVyIGFuZCBwZXJtaXNzaW9ucwoJICAgIG9mIGEgbmV3bHkgY3JlYXRlZCBmaWxlIGNhbiBiZSBzZXQgcHJvcGVybHkuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjAuMjM2ClByb2JsZW06ICAgICI6ZWRpdCIgd2l0aG91dCBhcmd1bWVudCBzaG91bGQgbW92ZSBjdXJzb3IgdG8gbGluZSAxIGluIFZpCgkgICAgY29tcGF0aWJsZSBtb2RlLgpTb2x1dGlvbjogICBBZGQgJ2cnIGZsYWcgdG8gJ2Nwb3B0aW9ucycuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9leF9kb2NtZC5jLCBzcmMvb3B0aW9uLmgKClBhdGNoIDYuMC4yMzcKUHJvYmxlbTogICAgSW4gYSBDIGZpbGUsIHVzaW5nIHRoZSBmaWxldHlwZSBwbHVnaW4sIHJlLWluZGVudGluZyBhIGNvbW1lbnQKCSAgICB3aXRoIHR3byBzcGFjZXMgYWZ0ZXIgdGhlIG1pZGRsZSAiKiIgZG9lc24ndCBhbGlnbiBwcm9wZXJseS4KU29sdXRpb246ICAgRG9uJ3QgdXNlIGEgbWlkZGxlIGVudHJ5IGZyb20gYSBzdGFydC9taWRkbGUvZW5kIHRvIGxpbmUgdXAgd2l0aAoJICAgIHRoZSBzdGFydCBvZiB0aGUgY29tbWVudCB3aGVuIHRoZSBzdGFydCBwYXJ0IGRvZXNuJ3QgbWF0Y2ggd2l0aAoJICAgIHRoZSBhY3R1YWwgY29tbWVudCBzdGFydC4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4wLjIzOApQcm9ibGVtOiAgICBVc2luZyBhICI6c3Vic3RpdHV0ZSIgY29tbWFuZCB3aXRoIGEgc3Vic3RpdHV0ZSgpIGNhbGwgaW4gdGhlCgkgICAgc3Vic3RpdHV0aW9uIGV4cHJlc3Npb24gY2F1c2VzIGVycm9ycy4gKFNyaW5hdGggQXZhZGhhbnVsYSkKU29sdXRpb246ICAgU2F2ZSBhbmQgcmVzdG9yZSBwb2ludGVycyB3aGVuIGRvaW5nIHN1YnN0aXR1dGlvbiByZWN1cnNpdmVseS4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMC4yMzkKUHJvYmxlbTogICAgVXNpbmcgIkEiIHRvIGFwcGVuZCBhZnRlciBhIFZpc3VhbGx5IHNlbGVjdGVkIGJsb2NrIHdoaWNoIGlzIGFmdGVyCgkgICAgdGhlIGVuZCBvZiB0aGUgbGluZSwgc3BhY2VzIGFyZSBpbnNlcnRlZCBpbiB0aGUgd3JvbmcgbGluZSBhbmQKCSAgICBvdGhlciB1bmV4cGVjdGVkIGVmZmVjdHMuIChNaWNoYWVsIE5hdW1hbm4pClNvbHV0aW9uOiAgIERvbid0IGFkdmFuY2UgdGhlIGN1cnNvciB0byB0aGUgbmV4dCBsaW5lLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4wLjI0MApQcm9ibGVtOiAgICBXaW4zMjogYnVpbGRpbmcgd2l0aCBQeXRob24gMi4yIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgQWRkIHN1cHBvcnQgZm9yIFB5dGhvbiAyLjIgd2l0aCBkeW5hbWljIGxpbmtpbmcuIChQYXVsIE1vb3JlKQpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4wLjI0MQpQcm9ibGVtOiAgICBXaW4zMjogRXhwYW5kaW5nIHRoZSBvbGQgdmFsdWUgb2YgYW4gb3B0aW9uIHRoYXQgaXMgYSBwYXRoIHRoYXQKCSAgICBzdGFydHMgd2l0aCBhIGJhY2tzbGFzaCwgYW4gZXh0cmEgYmFja3NsYXNoIGlzIGluc2VydGVkLgpTb2x1dGlvbjogICBPbmx5IGluc2VydCBiYWNrc2xhc2hlcyB3aGVyZSBuZWVkZWQuCgkgICAgQWxzbyBoYW5kbGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIHByb3Blcmx5IHdoZW4gcmVtb3ZpbmcKCSAgICBiYWNrc2xhc2hlcy4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMC4yNDIKUHJvYmxlbTogICAgR1VJOiBPbiBhIHN5c3RlbSB3aXRoIGFuIEV4Y2VlZCBYIHNlcnZlciBzb21ldGltZXMgZ2V0IGEgIkJhZAoJICAgIFdpbmRvdyIgZXJyb3IuIChUb21taSBNYWVraXRhbG8pClNvbHV0aW9uOiAgIFdoZW4gZm9ya2luZywgdXNlIGEgcGlwZSB0byB3YWl0IGluIHRoZSBwYXJlbnQgZm9yIHRoZSBjaGlsZCB0bwoJICAgIGhhdmUgZG9uZSB0aGUgc2V0c2lkKCkgY2FsbC4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMC4yNDMKUHJvYmxlbTogICAgVW5peDogInZpbSAtLXZlcnNpb24iIG91dHB1dHMgYSBOTCBiZWZvcmUgdGhlIGxhc3QgbGluZSBpbnN0ZWFkIG9mCgkgICAgYWZ0ZXIgaXQuIChDaGFybGVzIENhbXBiZWxsKQpTb2x1dGlvbjogICBTZW5kIHRoZSBOTCB0byB0aGUgc2FtZSBvdXRwdXQgc3RyZWFtIGFzIHRoZSB0ZXh0LgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMsIHNyYy9vc191bml4LmMsIHNyYy9wcm90by9tZXNzYWdlLnBybwoKUGF0Y2ggNi4wLjI0NApQcm9ibGVtOiAgICBNdWx0aS1ieXRlOiBQcm9ibGVtcyB3aXRoIChpbGxlZ2FsKSBVVEYtOCBjaGFyYWN0ZXJzIGluIG1lbnUgYW5kCgkgICAgZmlsZSBuYW1lIChlLmcuLCBpY29uIHRleHQsIHN0YXR1cyBsaW5lKS4KU29sdXRpb246ICAgQ29ycmVjdGx5IGhhbmRsZSB1bnByaW50YWJsZSBjaGFyYWN0ZXJzLiAgQ2F0Y2ggaWxsZWdhbCBVVEYtOAoJICAgIGNoYXJhY3RlcnMgYW5kIHJlcGxhY2UgdGhlbSB3aXRoIDx4eD4uICBUcnVuY2F0aW5nIHRoZSBzdGF0dXMgbGluZQoJICAgIHdhc24ndCBkb25lIGNvcnJlY3RseSBhdCBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLiAoWWFzdWhpcm8KCSAgICBNYXRzdW1vdG8pCgkgICAgQWRkZWQgY29ycmVjdF9jbWRzcG9zKCkgYW5kIHRyYW5zY2hhcl9ieXRlKCkuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvY2hhcnNldC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL2d1aS5jLAoJICAgIHNyYy9tZXNzYWdlLmMsIHNyYy9zY3JlZW4uYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjAuMjQ1ClByb2JsZW06ICAgIEFmdGVyIHVzaW5nIGEgY29sb3Igc2NoZW1lLCBzZXR0aW5nIHRoZSAnYmFja2dyb3VuZCcgb3B0aW9uIG1pZ2h0CgkgICAgbm90IHdvcmsuIChQZXRlciBIb3JzdCkKU29sdXRpb246ICAgRGlzYWJsZSB0aGUgY29sb3Igc2NoZW1lIGlmIGl0IHN3aXRjaGVzICdiYWNrZ3JvdW5kJyBiYWNrIHRvIHRoZQoJICAgIHdyb25nIHZhbHVlLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4wLjI0NgpQcm9ibGVtOiAgICAiOmVjaG9tc2ciIGRpZG4ndCB1c2UgdGhlIGhpZ2hsaWdodGluZyBzZXQgYnkgIjplY2hvaGwiLiAoR2FyeQoJICAgIEhvbGxvd2F5KQpTb2x1dGlvbjogICBVc2UgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGVzIGZvciB0aGUgbWVzc2FnZS4gKFllZ2FwcGFuCgkgICAgTGFrc2htYW5hbikKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjAuMjQ3ClByb2JsZW06ICAgIEdUSyBHVUk6IENhbid0IHVzZSBndmltIGluIGEga3BhcnQgd2lkZ2V0LgpTb2x1dGlvbjogICBBZGQgdGhlICItLWVjaG8td2lkIiBhcmd1bWVudCB0byBsZXQgVmltIGVjaG8gdGhlIHdpbmRvdyBJRCBvbgoJICAgIHN0ZG91dC4gKFBoaWxpcHBlIEZyZW15KQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dCwgc3JjL2dsb2JhbHMuaCwgc3JjL2d1aV9ndGtfeDExLmMsCgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4wLjI0OApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGNvbXByZXNzZWQgaGVscCBmaWxlcyBhbmQgJ2VuY29kaW5nJyBpc24ndCAibGF0aW4xIiwKCSAgICBWaW0gY29udmVydHMgdGhlIGhlbHAgZmlsZSBiZWZvcmUgZGVjb21wcmVzc2luZy4gKERhdmlkIFJldmllam8pClNvbHV0aW9uOiAgIERvbid0IGNvbnZlcnQgYSBoZWxwIGZpbGUgd2hlbiAnYmluYXJ5JyBpcyBzZXQuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjAuMjQ5ClByb2JsZW06ICAgICJ2aW0gLXQgZWRpdCAtYyAnc3RhIGV4X2hlbHAnIiBkb2Vzbid0IG1vdmUgY3Vyc29yIHRvIGVkaXQoKS4KU29sdXRpb246ICAgRG9uJ3Qgc2V0IHRoZSBjdXJzb3Igb24gdGhlIGZpcnN0IGxpbmUgZm9yICItYyIgYXJndW1lbnRzIHdoZW4KCSAgICB0aGVyZSBhbHNvIGlzIGEgIi10IiBhcmd1bWVudC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjAuMjUwIChleHRyYSkKUHJvYmxlbTogICAgTWFjaW50b3NoOiBWYXJpb3VzIHByb2JsZW1zIHdoZW4gY29tcGlsaW5nLgpTb2x1dGlvbjogICBWYXJpb3VzIGZpeGVzLCBtb3N0bHkgI2lmZGVmcy4gKERhbnkgU3QuIEFtYW50KQpGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMsIHNyYy9tYWluLmMsIHNyYy9taXNjMi5jLCBzcmMvb3NfbWFjLmgsCgkgICAgc3JjL29zX21hYy5wYnByb2ovcHJvamVjdC5wYnhwcm9qLCBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjAuMjUxIChleHRyYSkKUHJvYmxlbTogICAgTWFjaW50b3NoOiBtZW51IHNob3J0Y3V0cyBhcmUgbm90IHZlcnkgY2xlYXIuClNvbHV0aW9uOiAgIFNob3cgdGhlIHNob3J0Y3V0IHdpdGggdGhlIE1hYyBjbG92ZXIgc3ltYm9sLiAocmFpbmRvZykKRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jCgpQYXRjaCA2LjAuMjUyClByb2JsZW06ICAgIFdoZW4gYSB1c2VyIGZ1bmN0aW9uIHdhcyBkZWZpbmVkIHdpdGggImFib3J0IiwgYW4gZXJyb3IgdGhhdCBpcwoJICAgIG5vdCBpbnNpZGUgaWYvZW5kaWYgb3Igd2hpbGUvZW5kd2hpbGUgZG9lc24ndCBhYm9ydCB0aGUgZnVuY3Rpb24uCgkgICAgKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIERvbid0IHJlc2V0IGRpZF9lbXNnIHdoZW4gdGhlIGZ1bmN0aW9uIGlzIHRvIGJlIGFib3J0ZWQuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMC4yNTMKUHJvYmxlbTogICAgV2hlbiAnaW5zZXJ0bW9kZScgaXMgc2V0LCBhZnRlciAiPEMtTz46ZWRpdCBmaWxlIiB0aGUgbmV4dCA8Qy1PPgoJICAgIGRvZXNuJ3Qgd29yay4gKEJlbmppIEZpc2hlcikgIDxDLUw+IGhhcyB0aGUgc2FtZSBwcm9ibGVtLgpTb2x1dGlvbjogICBSZXNldCBuZWVkX3N0YXJ0X2luc2VydG1vZGUgb25jZSBpbiBlZGl0KCkuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4wLjI1NCAoZXh0cmEpClByb2JsZW06ICAgIEJvcmxhbmQgQysrIDUuNTogQ2hlY2tpbmcgZm9yIHN0YWNrIG92ZXJmbG93IGRvZXNuJ3Qgd29yawoJICAgIGNvcnJlY3RseS4gIE1hdHRlcnMgd2hlbiB1c2luZyBhIGNvbXBsaWNhdGVkIHJlZ2V4cC4KU29sdXRpb246ICAgUmVtb3ZlIC1OLSBmcm9tIE1ha2VfYmM1Lm1hay4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvTWFrZV9iYzUubWFrCgpQYXRjaCA2LjAuMjU1IChleHRyYSkgKGRlcGVuZHMgb24gcGF0Y2ggNi4wLjExNiBhbmQgNi4wLjEyMSkKUHJvYmxlbTogICAgV2luMzI6IEFDTCBzdXBwb3J0IGRvZXNuJ3Qgd29yayB3ZWxsIG9uIFNhbWJhIGRyaXZlcy4KU29sdXRpb246ICAgQWRkIGEgY2hlY2sgZm9yIHdvcmtpbmcgQUNMIHN1cHBvcnQuIChNaWtlIFdpbGxpYW1zKQpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjAuMjU2IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6ICI6aGlnaGxpZ2h0IENvbW1lbnQgZ3VpZmc9YXNkZiIgZG9lcyBub3QgZ2l2ZSBhbiBlcnJvcgoJICAgIG1lc3NhZ2UuIChSYW5kYWxsIFcuICBNb3JyaXMpICBBbHNvIGZvciBvdGhlciBzeXN0ZW1zLgpTb2x1dGlvbjogICBBZGQgZ3VpX2dldF9jb2xvcigpIHRvIGdpdmUgb25lIGVycm9yIG1lc3NhZ2UgZm9yIGFsbCBzeXN0ZW1zLgpGaWxlczoJICAgIHNyYy9ndWkuYywgc3JjL2d1aV9hbWlnYS5jLCBzcmMvZ3VpX2F0aGVuYS5jLCBzcmMvZ3VpX21vdGlmLmMsCgkgICAgc3JjL2d1aV9yaXNjb3MuYywgc3JjL2d1aV94MTEuYywgc3JjL2d1aV9ndGtfeDExLmMsCgkgICAgc3JjL3Byb3RvL2d1aS5wcm8sIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4wLjI1NwpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiAnbW91c2Vmb2N1cycgaXMgc2V0IGFuZCB0aGVyZSBpcyBhIEJ1ZlJlYWQKCSAgICBhdXRvY29tbWFuZCwgYWZ0ZXIgdGhlIGRpYWxvZyBmb3IgcGVybWlzc2lvbnMgY2hhbmdlZCBvdXRzaWRlIG9mCgkgICAgVmltOiAnbW91c2Vmb2N1cycgc3RvcHMgd29ya2luZy4gKFJvYmVydCBXZWJiKQpTb2x1dGlvbjogICBSZXNldCBuZWVkX21vdXNlX2NvcnJlY3QgYWZ0ZXIgY2hlY2tpbmcgdGltZXN0YW1wcy4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMC4yNTgKUHJvYmxlbTogICAgV2hlbiAnc2Nyb2xsb2ZmJyBpcyA5OTkgYW5kIHRoZXJlIGFyZSBmb2xkcywgdGhlIHRleHQgY2FuIGp1bXAgdXAKCSAgICBhbmQgZG93biB3aGVuIG1vdmluZyB0aGUgY3Vyc29yIGRvd24gbmVhciB0aGUgZW5kIG9mIHRoZSBmaWxlLgoJICAgIChMdWJvbWlyIEhvc3QpClNvbHV0aW9uOiAgIFdoZW4gcHV0dGluZyB0aGUgY3Vyc29yIGhhbGZ3YXkgdGhlIHdpbmRvdyBzdGFydCBjb3VudGluZyBsaW5lcyBhdAoJICAgIHRoZSBlbmQgb2YgYSBmb2xkLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKClBhdGNoIDYuMC4yNTkKUHJvYmxlbTogICAgTVMtRE9TOiBhZnRlciBlZGl0aW5nIHRoZSBjb21tYW5kIGxpbmUgdGhlIGN1cnNvciBzaGFwZSBtYXkgcmVtYWluCgkgICAgbGlrZSBpbiBJbnNlcnQgbW9kZS4gKFZvbGtlciBLaWVmZWwpClNvbHV0aW9uOiAgIFJlc2V0IHRoZSBjdXJzb3Igc2hhcGUgYWZ0ZXIgZWRpdGluZyB0aGUgY29tbWFuZCBsaW5lLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjAuMjYwClByb2JsZW06ICAgIEdVSTogTWF5IGNyYXNoIHdoaWxlIHN0YXJ0aW5nIHVwIHdoZW4gZ2l2aW5nIGFuIGVycm9yIG1lc3NhZ2UgZm9yCgkgICAgbWlzc2luZyBjb2xvci4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIERvbid0IGNhbGwgZ3VpX3dyaXRlKCkgd2hlbiBzdGlsbCBzdGFydGluZyB1cC4gIERvbid0IGdpdmUgZXJyb3IKCSAgICBtZXNzYWdlIGZvciBlbXB0eSBjb2xvciBuYW1lLiAgRG9uJ3QgdXNlICd0X3ZiJyB3aGlsZSB0aGUgR1VJIGlzCgkgICAgc3RpbGwgc3RhcnRpbmcgdXAuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvZ3VpLmMsIHNyYy9taXNjMS5jLCBzcmMvdWkuYwoKUGF0Y2ggNi4wLjI2MQpQcm9ibGVtOiAgICBucjJjaGFyKCkgYW5kIGNoYXIybnIoKSBkb24ndCB3b3JrIHdpdGggbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBVc2UgJ2VuY29kaW5nJyBmb3IgdGhlc2UgZnVuY3Rpb25zLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvZXZhbC5jCgpQYXRjaCA2LjAuMjYyIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IElNRSBkb2Vzbid0IHdvcmsgcHJvcGVybHkuICBPbkltZUNvbXBvc2l0aW9uKCkgaXNuJ3QgdXNlZAoJICAgIGF0IGFsbC4KU29sdXRpb246ICAgQWRqdXN0IHZhcmlvdXMgdGhpbmdzIGZvciBJTUUuCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL2d1aV93MzIuYywgc3JjL21ieXRlLmMsIHNyYy9wcm90by91aS5wcm8sCgkgICAgc3JjL3N0cnVjdHMuaCwgc3JjL3VpLmMKClBhdGNoIDYuMC4yNjMKUHJvYmxlbTogICAgR1RLOiBXaGVuIGEgZGlhbG9nIGlzIGNsb3NlZCBieSB0aGUgd2luZG93IG1hbmFnZXIsIFZpbSBoYW5ncy4KCSAgICAoQ2hyaXN0aWFuIEouIFJvYmluc29uKQpTb2x1dGlvbjogICBVc2UgR1RLX1dJREdFVF9EUkFXQUJMRSgpIGluc3RlYWQgb2YgR1RLX1dJREdFVF9WSVNJQkxFKCkuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYywgc3JjL2d1aV9ndGtfeDExLmMKClBhdGNoIDYuMC4yNjQKUHJvYmxlbTogICAgVGhlIGFtb3VudCBvZiB2aXJ0dWFsIG1lbW9yeSBpcyB1c2VkIHRvIGluaXRpYWxpemUgJ21heG1lbXRvdCcsCgkgICAgd2hpY2ggbWF5IGJlIG11Y2ggbW9yZSB0aGFuIHRoZSBhbW91bnQgb2YgcGh5c2ljYWwgbWVtb3J5LAoJICAgIHJlc3VsdGluZyBpbiBhIGxvdCBvZiBzd2FwcGluZy4KU29sdXRpb246ICAgR2V0IHRoZSBhbW91bnQgb2YgcGh5c2ljYWwgbWVtb3J5IHdpdGggc3lzY3RsKCksIHN5c2NvbmYoKSBvcgoJICAgIHN5c2luZm8oKSB3aGVuIHBvc3NpYmxlLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2NvbmZpZy5oLmluLAoJICAgIHNyYy9vc191bml4LmMsIHNyYy9vc191bml4LmgKClBhdGNoIDYuMC4yNjUKUHJvYmxlbTogICAgV2luMzI6IFVzaW5nIGJhY2tzcGFjZSB3aGlsZSAnZmttYXAnIGlzIHNldCBjYXVzZXMgYSBjcmFzaC4KCSAgICAoSmFtc2hpZCBPYXNqbW9oYSkKU29sdXRpb246ICAgRG9uJ3QgdHJ5IG1hcHBpbmcgc3BlY2lhbCBrZXlzLgpGaWxlczoJICAgIHNyYy9mYXJzaS5jCgpQYXRjaCA2LjAuMjY2ClByb2JsZW06ICAgIFRoZSByZW5hbWUoKSBmdW5jdGlvbiBkZWxldGVzIHRoZSBmaWxlIGlmIHRoZSBvbGQgYW5kIHRoZSBuZXcgbmFtZQoJICAgIGFyZSB0aGUgc2FtZS4gKFZvbGtlciBLaWVmZWwpClNvbHV0aW9uOiAgIERvbid0IGRvIGFueXRoaW5nIGlmIHRoZSBuYW1lcyBhcmUgZXF1YWwuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjAuMjY3ClByb2JsZW06ICAgIFVURi04OiBBbHRob3VnaCAnaXNwcmludCcgc2F5cyBhIGNoYXJhY3RlciBpcyBwcmludGFibGUsCgkgICAgdXRmX2NoYXIyY2VsbHMoKSBzdGlsbCBjb25zaWRlcnMgaXQgdW5wcmludGFibGUuClNvbHV0aW9uOiAgIFVzZSB2aW1faXNwcmludGMoKSBmb3IgY2hhcmFjdGVycyB1cHRvIDB4MTAwLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjAuMjY4IChleHRyYSkgKGRlcGVuZHMgb24gcGF0Y2ggNi4wLjI1NSkKUHJvYmxlbTogICAgV2luMzI6IEFDTCBjaGVjayBjcmFzaGVzIHdoZW4gdXNpbmcgZm9yd2FyZCBzbGFzaCBpbiBmaWxlIG5hbWUuClNvbHV0aW9uOiAgIEltcHJvdmUgdGhlIGNoZWNrIGZvciB0aGUgcGF0aCBpbiB0aGUgZmlsZSBuYW1lLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjAuMjY5ClByb2JsZW06ICAgIFVucHJpbnRhYmxlIGNoYXJhY3RlcnMgaW4gYSBmaWxlIG5hbWUgbWF5IGNhdXNlIHByb2JsZW1zIHdoZW4KCSAgICB1c2luZyB0aGUgJ3N0YXR1c2xpbmUnIG9wdGlvbiBvciB3aGVuICdidWZ0eXBlJyBpcyAibm9maWxlIi4KU29sdXRpb246ICAgY2FsbCB0cmFuc19jaGFyYWN0ZXJzKCkgZm9yIHRoZSByZXN1bHRpbmcgc3RhdHVzbGluZS4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL3NjcmVlbi5jLCBzcmMvY2hhcnNldC5jCgpQYXRjaCA2LjAuMjcwIChkZXBlbmRzIG9uIHBhdGNoIDYuMC4yNjcpClByb2JsZW06ICAgIEEgdGFiIGNhdXNlcyBVVEYtOCB0ZXh0IHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgd3JvbmcgcG9zaXRpb24uCgkgICAgKFJvbiBBYXJvbikKU29sdXRpb246ICAgQ29ycmVjdCB1dGZfY2hhcjJjZWxscygpIGFnYWluLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjFhLjAwMSAoZXh0cmEpClByb2JsZW06ICAgIDMyYml0IERPUzogY29weWluZyB0ZXh0IHRvIHRoZSBjbGlwYm9hcmQgbWF5IGNhdXNlIGEgY3Jhc2guCgkgICAgKEpvbmF0aGFuIEQgSm9obnN0b24pClNvbHV0aW9uOiAgIERvbid0IGNvcHkgb25lIGJ5dGUgdG9vIG11Y2ggaW4gU2V0Q2xpcGJvYXJkRGF0YSgpLgpGaWxlczoJICAgIHNyYy9vc19tc2Rvcy5jCgpQYXRjaCA2LjFhLjAwMgpQcm9ibGVtOiAgICBHVEs6IE9uIHNvbWUgY29uZmlndXJhdGlvbnMsIHdoZW4gY2xvc2luZyBhIGRpYWxvZyBmcm9tIHRoZSB3aW5kb3cKCSAgICBtYW5hZ2VyLCBWaW0gaGFuZ3MuClNvbHV0aW9uOiAgIENhdGNoIHRoZSAiZGVzdHJveSIgc2lnbmFsLiAoQXJpYyBCbHVtZXIpCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYwoKUGF0Y2ggNi4xYS4wMDMKUHJvYmxlbTogICAgTXVsdGktYnl0ZTogV2l0aCBVVEYtOCBkb3VibGUtd2lkZSBjaGFyIGFuZCAndmlydHVhbGVkaXQnIHNldDoKCSAgICB5YW5raW5nIGluIFZpc3VhbCBtb2RlIGRvZXNuJ3QgaW5jbHVkZSB0aGUgbGFzdCBieXRlLiAoRXJpYyBMb25nKQpTb2x1dGlvbjogICBEb24ndCBhZGQgYSBzcGFjZSBmb3IgYSBkb3VibGUtd2lkZSBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjFhLjAwNCAoZXh0cmEpClByb2JsZW06ICAgIE1JTkdXOiB1bmRlZmluZWQgdHlwZS4gKFJvbiBBYXJvbikKU29sdXRpb246ICAgTWFrZSBHZXRDb21wb3NpdGlvblN0cmluZ19pblVDUzIoKSBzdGF0aWMuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYywgc3JjL3Byb3RvL2d1aV93MzIucHJvCgpQYXRjaCA2LjFhLjAwNSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiAiOmhhcmRjb3B5IiBkb2Vzbid0IHdvcmsgYWZ0ZXIgIjpoYXJkY29weSEiLiAoSm9uYXRoYW4KCSAgICBKb2huc3RvbikKU29sdXRpb246ICAgRG9uJ3Qga2VlcCB0aGUgZHJpdmVyIGNvbnRleHQgd2hlbiB1c2luZyAiOmhhcmRjb3B5ISIuIChWaW5jZQoJICAgIE5lZ3JpKQpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjFhLjAwNgpQcm9ibGVtOiAgICBtdWx0aS1ieXRlOiBhZnRlciBzZXR0aW5nICdlbmNvZGluZycgdGhlIHdpbmRvdyB0aXRsZSBtaWdodCBiZQoJICAgIHdyb25nLgpTb2x1dGlvbjogICBGb3JjZSByZXNldHRpbmcgdGhlIHRpdGxlLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xYS4wMDcKUHJvYmxlbTogICAgRmlsZXR5cGUgZGV0ZWN0aW9uIGZvciAiKi5pbmMiIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgVXNlIGEgIjpsZXQiIGNvbW1hbmQuIChEYXZpZCBTY2h3ZWlrZXJ0KQpGaWxlczoJICAgIHJ1bnRpbWUvZmlsZXR5cGUudmltCgpQYXRjaCA2LjFhLjAwOCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBBQ0wgZGV0ZWN0aW9uIGZvciBuZXR3b3JrIHNoYXJlcyBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIEluY2x1ZGUgdGhlIHRyYWlsaW5nIChiYWNrKXNsYXNoIGluIHRoZSByb290IHBhdGguIChNaWtlIFdpbGxpYW1zKQpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjFhLjAwOQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICJcQDw9IiBvciAiXEA8ISIgaW4gYSBwYXR0ZXJuLCBhICJcMSIgbWF5IHJlZmVyIHRvIGEgKCkKCSAgICBwYXJ0IHRoYXQgZm9sbG93cywgYnV0IGl0IGdlbmVyYXRlcyBhbiBlcnJvciBtZXNzYWdlLgpTb2x1dGlvbjogICBBbGxvdyBhIGZvcndhcmQgcmVmZXJlbmNlIHdoZW4gdGhlcmUgaXMgYSBmb2xsb3dpbmcgIlxAPD0iIG9yCgkgICAgIlxAPCEiLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3BhdHRlcm4udHh0LCBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMWEuMDEwClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjpoZWxwIiBhbmQgb3BlbmluZyBhIG5ldyB3aW5kb3csIHRoZSBhbHRlcm5hdGUgZmlsZQoJICAgIGlzbid0IHNldC4KU29sdXRpb246ICAgU2V0IHRoZSBhbHRlcm5hdGUgZmlsZSB0byB0aGUgcHJldmlvdXNseSBlZGl0ZWQgZmlsZS4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjFhLjAxMQpQcm9ibGVtOiAgICBHVEs6ICI6c2V0IGNvPTc3IiwgY2hhbmdlIHdpZHRoIHdpdGggdGhlIG1vdXNlLCAiOnNldCBjbz03NyIKCSAgICBkb2Vzbid0IHJlc2l6ZSB0aGUgd2luZG93LiAoRGFycmVuIEhpZWJlcnQpClNvbHV0aW9uOiAgIFNldCB0aGUgZm9ybSBzaXplIGFmdGVyIGhhbmRsaW5nIGEgcmVzaXplIGV2ZW50LgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjFhLjAxMgpQcm9ibGVtOiAgICBHVEs6IFRoZSBmaWxlIGJyb3dzZXIgYWx3YXlzIHJldHVybnMgYSBmdWxsIHBhdGguIChMb2huZXIpClNvbHV0aW9uOiAgIFNob3J0ZW4gdGhlIGZpbGUgbmFtZSBpZiBwb3NzaWJsZS4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jCgpQYXRjaCA2LjFhLjAxMwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICI9fndvcmQiIGluICdjaW5rZXlzJyBvciAnaW5kZW50a2V5cycsIHRoZSBjYXNlIG9mIHRoZQoJICAgIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSB3b3JkIGlzbid0IGlnbm9yZWQuIChSYXVsIFNlZ3VyYSBBY2V2ZWRvKQpTb2x1dGlvbjogICBJZ25vcmUgY2FzZSB3aGVuIGNoZWNraW5nIHRoZSBsYXN0IHR5cGVkIGNoYXJhY3Rlci4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjFhLjAxNApQcm9ibGVtOiAgICBBZnRlciBwYXRjaCA2LjFhLjAwNiBjYW4ndCBjb21waWxlIHdpdGhvdXQgdGhlIHRpdGxlIGZlYXR1cmUuClNvbHV0aW9uOiAgIEFkZCBhbiAjaWZkZWYuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjFhLjAxNQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzOiBXaGVuIGV4cGFuZGluZyBhIGZpbGUgbmFtZSB0aGF0IGNvbnRhaW5zIGEgJ1snIG9yICd7JwoJICAgIGFuIGV4dHJhIGJhY2tzbGFzaCBpcyBpbnNlcnRlZC4gKFJhdWwgU2VndXJhIEFjZXZlZG8pClNvbHV0aW9uOiAgIEF2b2lkIGFkZGluZyB0aGUgYmFja3NsYXNoLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjFhLjAxNgpQcm9ibGVtOiAgICBDb21wbGV0aW9uIGFmdGVyICI6bGFuZ3VhZ2UiIGRvZXNuJ3QgaW5jbHVkZSAidGltZSIuIChSYXVsIFNlZ3VyYQoJICAgIEFjZXZlZG8pClNvbHV0aW9uOiAgIEFkZCB0aGUgYWx0ZXJuYXRpdmUgdG8gdGhlIGNvbXBsZXRpb25zLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjFhLjAxNwpQcm9ibGVtOiAgICBDbGlja2luZyB0aGUgbW91c2UgaW4gdGhlIHRvcCByb3cgb2YgYSB3aW5kb3cgd2hlcmUgdGhlIGZpcnN0IGxpbmUKCSAgICBkb2Vzbid0IGZpdCBtb3ZlcyB0aGUgY3Vyc29yIHRvIHRoZSB3cm9uZyBjb2x1bW4uClNvbHV0aW9uOiAgIEFkZCB0aGUgc2tpcGNvbCBhbHNvIGZvciB0aGUgdG9wIHJvdyBvZiBhIHdpbmRvdy4KRmlsZXM6CSAgICBzcmMvdWkuYwoKUGF0Y2ggNi4xYS4wMTgKUHJvYmxlbTogICAgV2hlbiAnc2Nyb2xsb2ZmJyBpcyBvbmUgYW5kIHRoZSB3aW5kb3cgaGVpZ2h0IGlzIG9uZSwgImdqIiBjYW4gcHV0CgkgICAgdGhlIGN1cnNvciBhYm92ZSB0aGUgd2luZG93LiAoUmF1bCBTZWd1cmEgQWNldmVkbykKU29sdXRpb246ICAgRG9uJ3QgbGV0IHNraXBjb2wgYmVjb21lIGJpZ2dlciB0aGFuIHRoZSBjdXJzb3IgY29sdW1uLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKClBhdGNoIDYuMWEuMDE5ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSBjb21wb3NpbmcgY2hhcmFjdGVyIG9uIHRvcCBvZiBhbiBBU0NJSSBjaGFyYWN0ZXIsIHRoZQoJICAgICJsIiBjb21tYW5kIGNsZWFycyB0aGUgY29tcG9zaW5nIGNoYXJhY3Rlci4gIE9ubHkgd2hlbiAncnVsZXInIGFuZAoJICAgICdzaG93Y21kJyBhcmUgb2ZmLiAoUmFwaGFlbCBGaW5rZWwpClNvbHV0aW9uOiAgIERvbid0IG1vdmUgdGhlIGN1cnNvciBieSBkaXNwbGF5aW5nIGNoYXJhY3RlcnMgd2hlbiB0aGVyZSBhcmUKCSAgICBjb21wb3NpbmcgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMWEuMDIwClByb2JsZW06ICAgIEdUSzogYWZ0ZXIgcGF0Y2ggNi4xYS4wMTEgcmVzaXppbmcgd2l0aCB0aGUgbW91c2UgZG9lc24ndCBhbHdheXMKCSAgICB3b3JrIHdlbGwgZm9yIHNtYWxsIHNpemVzLiAoQWRyaWVuIEJlYXUpClNvbHV0aW9uOiAgIFVzZSBhbm90aGVyIHdheSB0byBhdm9pZCB0aGUgcHJvYmxlbSB3aXRoICI6c2V0IGNvPTc3Ii4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4xYS4wMjEKUHJvYmxlbTogICAgU2V2ZXJhbCBTeW50YXggbWVudSBlbnRyaWVzIGFyZSB3cm9uZyBvciBjb25mdXNpbmcuClNvbHV0aW9uOiAgIFJlcGhyYXNlIGFuZCBjb3JyZWN0IHRoZSBtZW51IGVudHJpZXMuIChBZHJpZW4gQmVhdSkKRmlsZXM6CSAgICBydW50aW1lL21ha2VtZW51LnZpbSwgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4xYS4wMjIKUHJvYmxlbTogICAgQSB0YWdzIGZpbGUgbWlnaHQgYmUgdXNlZCB0d2ljZSBvbiBjYXNlIGluc2Vuc2l0aXZlIHN5c3RlbXMuCgkgICAgKFJpY2sgU3dhbnRvbikKU29sdXRpb246ICAgRG9uJ3QgdXNlIHRoZSBzYW1lIGZpbGUgbmFtZSB0d2ljZSBpbiB0aGUgZGVmYXVsdCBmb3IgdGhlICd0YWdzJwoJICAgIG9wdGlvbi4gIElnbm9yZSBjYXNlIHdoZW4gY29tcGFyaW5nIG5hbWVzIG9mIGFscmVhZHkgdmlzaXRlZAoJICAgIGZpbGVzLgpGaWxlczoJICAgIHNyYy9taXNjMi5jLCBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMWEuMDIzClByb2JsZW06ICAgIFdoZW4gc3RhcnRpbmcgdGhlIEdVSSBnZXQgIkMiIGNoYXJhY3RlcnMgZWNob2VkIGluIHRoZSB0ZXJtaW5hbC4KU29sdXRpb246ICAgRG9uJ3QgdHJ5IHNlbmRpbmcgYSBjbGVhci1zY3JlZW4gY29tbWFuZCB3aGlsZSB0aGUgR1VJIGlzIHN0YXJ0aW5nCgkgICAgdXAuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjFhLjAyNApQcm9ibGVtOiAgICBJbiBvdGhlciBlZGl0b3JzIENUUkwtRiBpcyBvZnRlbiB1c2VkIGZvciBhIGZpbmQgZGlhbG9nLgpTb2x1dGlvbjogICBJbiBldmltIHVzZSBDVFJMLUYgZm9yIHRoZSBmaW5kIGRpYWxvZy4KRmlsZXM6CSAgICBydW50aW1lL2V2aW0udmltCgpQYXRjaCA2LjFhLjAyNQpQcm9ibGVtOiAgICBUaGUgY2hvaWNlcyBmb3IgdGhlIGZpbGVmb3JtYXQgZGlhbG9nIGNhbid0IGJlIHRyYW5zbGF0ZWQuClNvbHV0aW9uOiAgIEFkZCBnOm1lbnV0cmFuc19maWxlZm9ybWF0X2Nob2ljZXMuIChBZHJpZW4gQmVhdSkKRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjFhLjAyNgpQcm9ibGVtOiAgICBJbmRlbnRpbmcgSmF2YSBmaWxlcyBpcyB3cm9uZyB3aXRoICJ0aHJvd3MiLCAiZXh0ZW5kcyIgYW5kCgkgICAgImltcGxlbWVudHMiIGNsYXVzZXMuClNvbHV0aW9uOiAgIFVwZGF0ZSB0aGUgSmF2YSBpbmRlbnQgc2NyaXB0LgpGaWxlczoJICAgIHJ1bnRpbWUvaW5kZW50L2phdmEudmltCgpQYXRjaCA2LjFhLjAyNwpQcm9ibGVtOiAgICBBIGZldyBTeW50YXggbWVudSBlbnRyaWVzIG1pc3Npbmcgb3IgaW5jb3JyZWN0LgpTb2x1dGlvbjogICBBZGQgYW5kIGNvcnJlY3QgdGhlIG1lbnUgZW50cmllcy4gKEFkcmllbiBCZWF1KQoJICAgIFNob3J0ZW4gYSBmZXcgbWVudXMgdG8gYXZvaWQgdGhleSBiZWNvbWUgdG9vIGxvbmcuCkZpbGVzOgkgICAgcnVudGltZS9tYWtlbWVudS52aW0sIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMWEuMDI4ClByb2JsZW06ICAgIFhJTTogcHJvYmxlbXMgd2l0aCBmZWVkYmFjayBhbmQgc29tZSBpbnB1dCBtZXRob2RzLgpTb2x1dGlvbjogICBVc2UgaWNvbnYgZm9yIGNhbGN1bGF0aW5nIHRoZSBjZWxscy4gIFJlbW92ZSB0aGUgcXVldWUgZm9yCgkgICAga2V5X3ByZXNzX2V2ZW50IG9ubHkgd2hlbiB0ZXh0IHdhcyBjaGFuZ2VkLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9tYnl0ZS5jLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMWEuMDI5ClByb2JsZW06ICAgIEFmdGVyIHBhdGNoIDYuMWEuMDI4IGNhbid0IGNvbXBpbGUgR1RLIHZlcnNpb24gd2l0aCBYSU0gYnV0CgkgICAgd2l0aG91dCBtdWx0aS1ieXRlIGNoYXJzLgpTb2x1dGlvbjogICBBZGQgYW4gI2lmZGVmLiAoQXNjaHdpbiBNYXJzbWFuKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjFhLjAzMApQcm9ibGVtOiAgICBXaXRoIGRvdWJsZS1ieXRlIGVuY29kaW5ncyB0b3VwcGVyKCkgYW5kIHRvbG93ZXIoKSBtYXkgaGF2ZSB3cm9uZwoJICAgIHJlc3VsdHMuClNvbHV0aW9uOiAgIFNraXAgZG91YmxlLWJ5dGUgY2hhcmFjdGVycy4gKEVyaWMgTG9uZykKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjFhLjAzMQpQcm9ibGVtOiAgICBBY2Nlc3NpbmcgdGhlICdiYWxsb29uZGVsYXknIHZhcmlhYmxlIG1heSBjYXVzZSBhIGNyYXNoLgpTb2x1dGlvbjogICBNYWtlIHRoZSB2YXJpYWJsZSBmb3IgJ2JhbGxvb25kZWxheScgYSBsb25nLiAoT2xhZiBTZWliZXJ0KQpGaWxlczoJICAgIHNyYy9vcHRpb24uaAoKUGF0Y2ggNi4xYS4wMzIgKGV4dHJhKQpQcm9ibGVtOiAgICBTb21lIG1lbnUgZmlsZXMgdXNlZCBhIHdyb25nIGVuY29kaW5nIG5hbWUgZm9yICJzY3JpcHRlbmNvZGluZyIuClNvbHV0aW9uOiAgIE1vdmUgdGhlIHRyYW5zbGF0aW9ucyB0byBhIHNlcGFyYXRlIGZpbGUsIHdoaWNoIGlzIHNvdXJjZWQgYWZ0ZXIKCSAgICBzZXR0aW5nICJzY3JpcHRlbmNvZGluZyIuCgkgICAgQWxzbyBhZGQgQ3plY2ggbWVudSB0cmFuc2xhdGlvbnMgaW4gQVNDSUkgYW5kIHVwZGF0ZSB0aGUgb3RoZXIKCSAgICBlbmNvZGluZ3MuCkZpbGVzOgkgICAgcnVudGltZS9sYW5nL21lbnVfY3NfY3ouaXNvXzg4NTktMS52aW0sCgkgICAgcnVudGltZS9sYW5nL21lbnVfY3NfY3ouaXNvXzg4NTktMi52aW0sCgkgICAgcnVudGltZS9sYW5nL21lbnVfY3plY2hfY3plY2hfcmVwdWJsaWMuMTI1MC52aW0sCgkgICAgcnVudGltZS9sYW5nL21lbnVfY3plY2hfY3plY2hfcmVwdWJsaWMuMTI1Mi52aW0sCgkgICAgcnVudGltZS9sYW5nL21lbnVfY3plY2hfY3plY2hfcmVwdWJsaWMuYXNjaWkudmltLAoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2RlX2RlLmlzb184ODU5LTEudmltLAoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2RlX2RlLmxhdGluMS52aW0sCgkgICAgcnVudGltZS9sYW5nL21lbnVfZnJfZnIuaXNvXzg4NTktMS52aW0sCgkgICAgcnVudGltZS9sYW5nL21lbnVfZnJfZnIubGF0aW4xLnZpbSwKCSAgICBydW50aW1lL2xhbmcvbWVudV9mcmVuY2hfZnJhbmNlLjEyNTIudmltLAoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2dlcm1hbl9nZXJtYW55LjEyNTIudmltLAoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2phX2pwLmV1Yy1qcC52aW0sCgkgICAgcnVudGltZS9sYW5nL21lbnVfamFfanAudXRmLTgudmltLAoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2phcGFuZXNlX2phcGFuLjkzMi52aW0KClBhdGNoIDYuMWEuMDMzClByb2JsZW06ICAgIFhJTTogZG9lc24ndCByZXNldCBpbnB1dCBjb250ZXh0LgpTb2x1dGlvbjogICBjYWxsIHhpbV9yZXNldCgpIHdpdGggaW1fc2V0X2FjdGl2ZShGQUxTRSkuIChUYWt1aGlybyBOaXNoaW9rYSkKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4xYS4wMzQgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIEFDTCBjaGVja3MgZm9yIGEgcmVhZG9ubHkgZmlsZSBzdGlsbCBkb24ndCB3b3JrIHdlbGwuClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgQUNMIGNoZWNrcywgZ28gYmFjayB0byBob3cgaXQgd29ya2VkIGluIFZpbSA2LjAuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMWEuMDM1ClByb2JsZW06ICAgIG11bHRpLWJ5dGU6IFdoZW4gdXNpbmcgIjpzaCIgaW4gdGhlIEdVSSwgdHlwZWQgYW5kIGRpc3BsYXllZAoJICAgIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBhcmUgbm90IGhhbmRsZWQgY29ycmVjdGx5LgpTb2x1dGlvbjogICBEZWFsIHdpdGggbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIHRvIGFuZCBmcm9tIHRoZSBzaGVsbC4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKSAgQWxzbyBoYW5kbGUgVVRGLTggY29tcG9zaW5nIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4xYS4wMzYKUHJvYmxlbTogICAgR1RLOiB0aGUgc2F2ZS15b3Vyc2VsZiBldmVudCB3YXMgbm90IGhhbmRsZWQuClNvbHV0aW9uOiAgIENhdGNoIHRoZSBzYXZlLXlvdXJzZWxmIGV2ZW50IGFuZCBwcmVzZXJ2ZSBzd2FwIGZpbGVzLiAoTmVpbCBCaXJkKQpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjFhLjAzNwpQcm9ibGVtOiAgICBUaGUgTVMtV2luZG93cyBrZXkgbWFwcGluZyBkb2Vzbid0IGluY2x1ZGUgQ1RSTC1TIGZvciBzYXZpbmcuCgkgICAgKFZsYWQgU2FuZHJpbmkpClNvbHV0aW9uOiAgIE1hcCBDVFJMLVMgdG8gIjp1cGRhdGUiLgpGaWxlczoJICAgIHJ1bnRpbWUvbXN3aW4udmltCgpQYXRjaCA2LjFhLjAzOApQcm9ibGVtOiAgICBTb2xhcmlzOiBJbmNsdWRpbmcgYm90aCBzeXMvc3lzY3RsLmggYW5kIHN5cy9zeXNpbmZvLmggZG9lc24ndAoJICAgIHdvcmsuIChBbnRvbmlvIENvbG9tYm8pClNvbHV0aW9uOiAgIERvbid0IGluY2x1ZGUgc3lzL3N5c2luZm8uaCB3aGVuIG5vdCBjYWxsaW5nIHN5c2luZm8oKS4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjFhLjAzOQpQcm9ibGVtOiAgICBOb3QgYWxsIHZpc3VhbCBiYXNpYyBmaWxlcyBhcmUgcmVjb2duaXplZC4KU29sdXRpb246ICAgQWRkIGNoZWNrcyB0byBjYXRjaCAqLmN0bCBmaWxlcy4gKFJhdWwgU2VndXJhIEFjZXZlZG8pCkZpbGVzOgkgICAgcnVudGltZS9maWxldHlwZS52aW0KClBhdGNoIDYuMWEuMDQwClByb2JsZW06ICAgIEEgKi5wbCBmaWxlIGlzIHJlY29nbml6ZWQgYXMgUGVybCwgYnV0IGl0IGNvdWxkIGJlIGEgcHJvbG9nIGZpbGUuClNvbHV0aW9uOiAgIENoZWNrIHRoZSBmaXJzdCBub24tZW1wdHkgbGluZS4gKEtvbnRyYSBHZXJnZWx5KQpGaWxlczoJICAgIHJ1bnRpbWUvZmlsZXR5cGUudmltCgpQYXRjaCA2LjFhLjA0MQpQcm9ibGVtOiAgICBXaGVuIHByZXNzaW5nIHRoZSBsZWZ0IG1vdXNlIGJ1dHRvbiBpbiB0aGUgY29tbWFuZCBsaW5lIGFuZCB0aGVtCgkgICAgbW92aW5nIHRoZSBtb3VzZSB1cHdhcmRzLCBuZWFybHkgYWxsIHRoZSB0ZXh0IGlzIHNlbGVjdGVkLgpTb2x1dGlvbjogICBEb24ndCB0cnkgZXh0ZW5kaW5nIGEgbW9kZWxlc3Mgc2VsZWN0aW9uIHdoZW4gdGhlcmUgaXNuJ3Qgb25lLgpGaWxlczoJICAgIHNyYy91aS5jCgpQYXRjaCA2LjFhLjA0MgpQcm9ibGVtOiAgICBXaGVuIG1lcmdpbmcgZmlsZXMsICI6ZGlmZnB1dCIgYW5kICI6ZGlmZmdldCIgYXJlIHVzZWQgYSBsb3QsIGJ1dAoJICAgIHRoZXkgcmVxdWlyZSBhIGxvdCBvZiB0eXBpbmcuClNvbHV0aW9uOiAgIEFkZCAiZHAiIGZvciAiOmRpZmZwdXQiIGFuZCAiZG8iIGZvciAiOmRpZmZnZXQiLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2RpZmYudHh0LCBzcmMvZGlmZi5jLCBzcmMvbm9ybWFsLmMsIHNyYy9wcm90by9kaWZmLnBybwoKClBhdGNoIDYuMWIuMDAxIChleHRyYSkKUHJvYmxlbTogICAgQ2hlY2tpbmcgZm9yIHdpbGRjYXJkcyBpbiBhIHBhdGggZG9lcyBub3QgaGFuZGxlIG11bHRpLWJ5dGUKCSAgICBjaGFyYWN0ZXJzIHdpdGggYSB0cmFpbCBieXRlIHdoaWNoIGlzIGEgd2lsZGNhcmQuClNvbHV0aW9uOiAgIEhhbmRsZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgY29ycmVjdGx5LiAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9vc19hbWlnYS5jLCBzcmMvb3NfbWFjLmMsIHNyYy9vc19tc2Rvcy5jLCBzcmMvb3NfbXN3aW4uYywKCSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjFiLjAwMgpQcm9ibGVtOiAgICBBIHJlZ2V4cCB0aGF0IGVuZHMgaW4gIlx7IiBpcyBub3QgZmxhZ2dlZCBhcyBhbiBlcnJvci4gIE1heSBjYXVzZQoJICAgIGEgc3RhY2sgb3ZlcmZsb3cgd2hlbiAnaW5jc2VhcmNoJyBpcyBzZXQuIChHZXJoYXJkIEhvY2hob2x6ZXIpClNvbHV0aW9uOiAgIEhhbmRsZSBhIG1pc3NpbmcgIn0iIGFzIGFuIGVycm9yLgpGaWxlczoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4xYi4wMDMgKGV4dHJhKQpQcm9ibGVtOiAgICBUaGUgUklTQyBPUyBHVUkgZG9lc24ndCBjb21waWxlLgpTb2x1dGlvbjogICBJbmNsdWRlIGNoYW5nZXMgc2luY2UgVmltIDUuNy4gKEFuZHkgV2luZ2F0ZSkKRmlsZXM6CSAgICBzcmMvTWFrZV9yby5tYWssIHNyYy9ndWlfcmlzY29zLmMsIHNyYy9vc19yaXNjb3MuYywKCSAgICBzcmMvb3NfcmlzY29zLmgsIHNyYy9wcm90by9ndWlfcmlzY29zLnBybwoKUGF0Y2ggNi4xYi4wMDQKUHJvYmxlbTogICAgY29sKCInPiIpIHJldHVybnMgYSBuZWdhdGl2ZSBudW1iZXIgZm9yIGxpbmV3aXNlIHNlbGVjdGlvbi4gKE5laWwKCSAgICBCaXJkKQpTb2x1dGlvbjogICBEb24ndCBhZGQgb25lIHRvIE1BWENPTC4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjFiLjAwNQpQcm9ibGVtOiAgICBVc2luZyBhIHNlYXJjaCBwYXR0ZXJuIHRoYXQgY2F1c2VzIGFuIG91dC1vZi1zdGFjayBlcnJvciB3aGlsZQoJICAgICdobHNlYXJjaCcgaXMgc2V0IGtlZXBzIGdpdmluZyB0aGUgaGl0LUVudGVyIHByb21wdC4KCSAgICBBIHNlYXJjaCBwYXR0ZXJuIHRoYXQgdGFrZXMgYSBsb25nIHRpbWUgZGVsYXlzIHR5cGluZyB3aGVuCgkgICAgJ2luY3NlYXJjaCcgaXMgc2V0LgpTb2x1dGlvbjogICBTdG9wICdobHNlYXJjaCcgaGlnaGxpZ2h0aW5nIHdoZW4gdGhlIHJlZ2V4cCBjYXVzZXMgYW4gZXJyb3IuCgkgICAgU3RvcCBzZWFyY2hpbmcgZm9yICdpbmNzZWFyY2gnIHdoZW4gYSBjaGFyYWN0ZXIgaXMgdHlwZWQuCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL21lc3NhZ2UuYywgc3JjL3NjcmVlbi5jLCBzcmMvc2VhcmNoLmMsCgkgICAgc3JjL3ZpbS5oCgpQYXRjaCA2LjFiLjAwNgpQcm9ibGVtOiAgICBXaGVuIGVudGVyaW5nIGEgY29tcG9zaW5nIGNoYXJhY3RlciBvbiB0aGUgY29tbWFuZCBsaW5lIHdpdGgKCSAgICBDVFJMLVYsIHRoZSB0ZXh0IGlzbid0IHJlZHJhd24gY29ycmVjdGx5LgpTb2x1dGlvbjogICBSZWRyYXcgdGhlIHRleHQgdW5kZXIgYW5kIGFmdGVyIHRoZSBjdXJzb3IuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMWIuMDA3ClByb2JsZW06ICAgIFdoZW4gdGhlIGN1cnNvciBpcyBpbiB0aGUgd2hpdGUgc3BhY2UgYmV0d2VlbiB0d28gc2VudGVuY2VzLCAiZGlzIgoJICAgIGRlbGV0ZXMgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgZm9sbG93aW5nIHNlbnRlbmNlLCAiZGFzIgoJICAgIGRlbGV0ZXMgYSBzcGFjZSBhZnRlciB0aGUgc2VudGVuY2UuClNvbHV0aW9uOiAgIEJhY2t1cCB0aGUgY3Vyc29yIG9uZSBjaGFyYWN0ZXIgaW4gdGhlc2Ugc2l0dWF0aW9ucy4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMWIuMDA4ClByb2JsZW06ICAgICoueHNsIGZpbGVzIGFyZSBub3QgcmVjb2duaXplZCBhcyB4c2x0IGJ1dCB4bWwuCgkgICAgTW9uayBmaWxlcyBhcmUgbm90IHJlY29nbml6ZWQuClNvbHV0aW9uOiAgIERlbGV0ZSB0aGUgZHVwbGljYXRlIGxpbmUgZm9yICoueHNsLiAoSm9oYW5uZXMgWmVsbG5lcikKCSAgICBSZWNvZ25pemUgbW9uayBmaWxlcy4KRmlsZXM6CSAgICBydW50aW1lL2ZpbGV0eXBlLnZpbQoKUGF0Y2ggNi4xYi4wMDkKUHJvYmxlbTogICAgQ2FuJ3QgYWx3YXlzIGNvbXBpbGUgc21hbGwgZmVhdHVyZXMgYW5kIHRoZW4gYWRkaW5nIGV2YWwgZmVhdHVyZSwKCSAgICAic2FuZGJveCIgaXMgdW5kZWZpbmVkLiAoQXhlbCBLaWVsaG9ybikKU29sdXRpb246ICAgQWx3YXlzIGRlZmluZSAic2FuZGJveCIgd2hlbiB0aGUgZXZhbCBmZWF0dXJlIGlzIHVzZWQuCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaAoKUGF0Y2ggNi4xYi4wMTAgKGV4dHJhKQpQcm9ibGVtOiAgICBXaGVuIGNvbXBpbGluZyBndmltZXh0LmNwcCB3aXRoIE1TVkMgNC4yIGdldCBhIG51bWJlciBvZiB3YXJuaW5ncy4KU29sdXRpb246ICAgQ2hhbmdlICJ0cnVlIiB0byAiVFJVRSIuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBHdmltRXh0L2d2aW1leHQuY3BwCgpQYXRjaCA2LjFiLjAxMQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgdmVyeSBsb25nIHN0cmluZyBmb3IgY29uZmlybSgpLCBjYW4ndCBxdWl0IHRoZQoJICAgIGRpc3BsYXlpbmcgYXQgdGhlIG1vcmUgcHJvbXB0LiAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIEp1bXAgdG8gdGhlIGVuZCBvZiB0aGUgbWVzc2FnZSB0byBzaG93IHRoZSBjaG9pY2VzLgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMWIuMDEyClByb2JsZW06ICAgIE11bHRpLWJ5dGU6IFdoZW4gJ3Nob3dicmVhaycgaXMgc2V0IGFuZCBhIGRvdWJsZS13aWRlIGNoYXJhY3RlcgoJICAgIGRvZXNuJ3QgZml0IGF0IHRoZSByaWdodCB3aW5kb3cgZWRnZSB0aGUgY3Vyc29yIGdldHMgc3R1Y2sgdGhlcmUuCgkgICAgVXNpbmcgY3Vyc29yLWxlZnQgZ2V0cyBzdHVjayB3aGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0LiAgKEVyaWMKCSAgICBMb25nKQpTb2x1dGlvbjogICBGaXggdGhlIHdheSB0aGUgZXh0cmEgIj4iIGNoYXJhY3RlciBpcyBjb3VudGVkIHdoZW4gJ3Nob3dicmVhaycgaXMKCSAgICBzZXQuICBEb24ndCBjb3JyZWN0IGN1cnNvciBmb3IgdmlydHVhbCBlZGl0aW5nIG9uIGEgZG91YmxlLXdpZGUKCSAgICBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL2NoYXJzZXQuYywgc3JjL2VkaXQuYwoKUGF0Y2ggNi4xYi4wMTMKUHJvYmxlbTogICAgQSB1c2VyIGNvbW1hbmQgdGhhdCBwYXJ0bHkgbWF0Y2hlcyB3aXRoIGEgYnVmZmVyLWxvY2FsIHVzZXIKCSAgICBjb21tYW5kIGFuZCBtYXRjaGVzIGZ1bGwgd2l0aCBhIGdsb2JhbCB1c2VyIGNvbW1hbmQgdW5uZWNlc3NhcmlseQoJICAgIGdpdmVzIGFuICdhbWJpZ3VvdXMgY29tbWFuZCcgZXJyb3IuClNvbHV0aW9uOiAgIEZpbmQgdGhlIGZ1bGwgZ2xvYmFsIG1hdGNoIGV2ZW4gYWZ0ZXIgYSBwYXJ0bHkgbG9jYWwgbWF0Y2guCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMWIuMDE0ClByb2JsZW06ICAgIEVCQ0RJQzogc3dpdGNoaW5nIG1vdXNlIGV2ZW50cyBvZmYgY2F1c2VzIGdhcmJhZ2Ugb24gc2NyZWVuLgoJICAgIFBvc2l0aW9uaW5nIHRoZSBjdXJzb3IgaW4gdGhlIEdVSSBjYXVzZXMgZ2FyYmFnZS4KU29sdXRpb246ICAgSW5zZXJ0IGFuIEVTQyBpbiB0aGUgdGVybWluYWwgY29kZS4gKFJhbGYgU2NoYW5kbCkKCSAgICBVc2UgIlxiIiBpbnN0ZWFkIG9mICJcMDEwIiBmb3IgS1NfTEUuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYywgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4xYi4wMTUKUHJvYmxlbTogICAgVmltdHV0b3IgaGFzIGEgdHlwby4gIEdldCBhIHdhcm5pbmcgZm9yICJ0ZW1wZmlsZSIgaWYgaXQKCSAgICBkb2Vzbid0IGV4aXN0LgpTb2x1dGlvbjogICBNb3ZlIGEgcXVvdGUgdG8gdGhlIGVuZCBvZiBhIGxpbmUuIChNYXggSXNjaGVua28pCgkgICAgVXNlICJta3RlbXAiIGZpcnN0LCBtb3JlIHN5c3RlbXMgaGF2ZSBpdC4KRmlsZXM6CSAgICBzcmMvdmltdHV0b3IKClBhdGNoIDYuMWIuMDE2ClByb2JsZW06ICAgIEdUSzogbG9hZGluZyBhIGZvbnRzZXQgdGhhdCB3b3JrcyBwYXJ0bHksIFZpbSBtaWdodCBoYW5nIG9yIGNyYXNoLgpTb2x1dGlvbjogICBBdm9pZCB0aGF0IGNoYXJfd2lkdGggYmVjb21lcyB6ZXJvLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjFiLjAxNwpQcm9ibGVtOiAgICBHVUk6IFdoZW4gdXNpbmcgIjpzaGVsbCIgYW5kIHRoZXJlIGlzIGEgYmVlcCwgbm90aGluZyBoYXBwZW5zLgpTb2x1dGlvbjogICBDYWxsIHZpbV9iZWVwKCkgdG8gcHJvZHVjZSB0aGUgYmVlcCBmcm9tIHRoZSBzaGVsbC4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMWIuMDE4IChkZXBlbmRzIG9uIDYuMWIuMDA2KQpQcm9ibGVtOiAgICBXaGVuIGVudGVyaW5nIHRoZSBlbmNyeXB0aW9uIGtleSwgc3BlY2lhbCBrZXlzIG1heSBzdGlsbCByZXZlYWwKCSAgICB0aGUgdHlwZWQgY2hhcmFjdGVycy4KU29sdXRpb246ICAgTWFrZSBzdXJlIHN0YXJzIGFyZSB1c2VkIG9yIG5vdGhpbmcgaXMgc2hvd24gaW4gYWxsIGNhc2VzLgpGaWxlczoJICAgIHNyYy9kaWdyYXBoLmMsIHNyYy9nZXRjaGFyLmMsIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjFiLjAxOSAoZGVwZW5kcyBvbiA2LjFiLjAwNSkKUHJvYmxlbTogICAgQSBzZWFyY2ggcGF0dGVybiB0aGF0IHRha2VzIGEgbG9uZyB0aW1lIHNsb3dzIGRvd24gdHlwaW5nIHdoZW4KCSAgICAnaW5jc2VhcmNoJyBpcyBzZXQuClNvbHV0aW9uOiAgIFBhc3MgU0VBUkNIX1BFRUsgdG8gZG9zZWFyY2goKS4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4xYi4wMjAKUHJvYmxlbTogICAgV2hlbiB1c2luZyB0aGUgbWF0Y2hpdCBwbHVnaW4sICIlIiBmaW5kcyBhIG1hdGNoIG9uIHRoZSAiZW5kIiBvZiBhCgkgICAgIjpzeW50YXggcmVnaW9uIiBjb21tYW5kIGluIFZpbSBzY3JpcHRzLgpTb2x1dGlvbjogICBTa2lwIG92ZXIgIjpzeW50YXggcmVnaW9uIiBjb21tYW5kcyBieSBzZXR0aW5nIGI6bWF0Y2hfc2tpcC4KRmlsZXM6CSAgICBydW50aW1lL2Z0cGx1Z2luL3ZpbS52aW0KClBhdGNoIDYuMWIuMDIxClByb2JsZW06ICAgIHdoZW4gJ21vdXNlZm9jdXMnIGlzIHNldCwgQ1RSTC1XIENUUkwtXSBzb21ldGltZXMgZG9lc24ndCB3YXJwIHRoZQoJICAgIHBvaW50ZXIgdG8gdGhlIG5ldyB3aW5kb3cuIChSb2JlcnQgV2ViYikKU29sdXRpb246ICAgRG9uJ3QgcmVzZXQgbmVlZF9tb3VzZV9jb3JyZWN0IHdoZW4gY2hlY2tpbmcgdGhlIHRpbWVzdGFtcCBvZiBhCgkgICAgZmlsZS4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMWIuMDIyClByb2JsZW06ICAgIFdpdGggbG90cyBvZiBmb2xkcyAiaiIgZG9lcyBub3Qgb2JleSAnc2Nyb2xsb2ZmJyBwcm9wZXJseS4KCSAgICAoU3JpbmF0aCBBdmFkaGFudWxhKQpTb2x1dGlvbjogICBHbyB0byBlbmQgb2YgdGhlIGZvbGQgYmVmb3JlIGNvdW50aW5nIGNvbnRleHQgbGluZXMuCkZpbGVzOgkgICAgc3JjL21vdmUuYwoKUGF0Y2ggNi4xYi4wMjMKUHJvYmxlbTogICAgT24gTVMtV2luZG93cyBzeXN0ZW0oKSBtYXkgY2F1c2UgY2hlY2tpbmcgdGltZXN0YW1wcywgYmVjYXVzZSBWaW0KCSAgICBsb29zZXMgYW5kIGdhaW5zIGlucHV0IGZvY3VzLCB3aGlsZSB0aGlzIGRvZXNuJ3QgaGFwcGVuIG9uIFVuaXguClNvbHV0aW9uOiAgIERvbid0IGNoZWNrIHRpbWVzdGFtcHMgd2hpbGUgc3lzdGVtKCkgaXMgYnVzeS4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYywgc3JjL2ZpbGVpby5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4xYi4wMjQgKGV4dHJhKQpQcm9ibGVtOiAgICBHZXR0ZXh0IDAuMTEgY29tcGxhaW5zIHRoYXQgInNqaXMiIGlzIG5vdCBhIHN0YW5kYXJkIG5hbWUuClNvbHV0aW9uOiAgIFVzZSAiY3A5MzIiIGluc3RlYWQuCkZpbGVzOgkgICAgc3JjL3BvL3NqaXNjb3JyLmMKClBhdGNoIDYuMWIuMDI1IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gY2xvc2luZyBndmltIHdoaWxlIGl0IGlzIG1pbmltaXplZCAgYW5kIGhhcyBhIGNoYW5nZWQKCSAgICBmaWxlLCB0aGUgZmlsZS1jaGFuZ2VkIGRpYWxvZyBwb3BzIHVwIGluIGEgY29ybmVyIG9mIHRoZSBzY3JlZW4uClNvbHV0aW9uOiAgIFB1dCB0aGUgZGlhbG9nIGluIHRoZSBtaWRkbGUgb2YgdGhlIHNjcmVlbi4KRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjFiLjAyNgpQcm9ibGVtOiAgICBXaGVuICdkaWZmb3B0JyBjb250YWlucyAnaXdoaXRlJyBidXQgbm90ICdpY2FzZSc6IGRpZmZlcmVuY2VzIGluCgkgICAgY2FzZSBhcmUgbm90IGhpZ2hsaWdodGVkIHByb3Blcmx5LiAoR2VyaGFyZCBIb2NoaG9semVyKQpTb2x1dGlvbjogICBEb24ndCBpZ25vcmUgY2FzZSB3aGVuIGlnbm9yaW5nIHdoaXRlIHNwYWNlIGRpZmZlcmVuY2VzLgpGaWxlczoJICAgIHNyYy9kaWZmLmMKClBhdGNoIDYuMWIuMDI3ClByb2JsZW06ICAgICJ2aW0gLS1yZW1vdGUgKyIgbWF5IGNhdXNlIGEgY3Jhc2guClNvbHV0aW9uOiAgIENoZWNrIGZvciBtaXNzaW5nIGZpbGUgbmFtZSBhcmd1bWVudC4gKE1hcnRpbiBLYWhsZXJ0KQpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMWIuMDI4IChleHRyYSkKUHJvYmxlbTogICAgV2luMTY6IENhbid0IGNvbXBpbGUgYWZ0ZXIgcGF0Y2ggNi4xYi4wMjUuClNvbHV0aW9uOiAgIEFkZCBjb2RlIHNwZWNpZmljYWxseSBmb3IgV2luMTYuIChWaW5jZSBOZWdyaSkKRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjFiLjAyOQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiBhIGRpcmVjdG9yeSBvbiBhbiBOVEZTIHBhcnRpdGlvbiBpcyByZWFkL2V4ZWN1dGUgKG5vCgkgICAgZGVsZXRlLG1vZGlmeSx3cml0ZSkgYW5kIHRoZSBmaWxlIGhhcyBtb2RpZnkgcmlnaHRzLCB0cnlpbmcgdG8KCSAgICB3cml0ZSB0aGUgZmlsZSBkZWxldGVzIGl0LiAgTWFraW5nIHRoZSBmaWxlIHJlYWQvd3JpdGUvZXhlY3V0ZQoJICAgIChub3QgZGVsZXRlKSBzb2x2ZXMgaXQuIChNYXJrIENhbnVwKQpTb2x1dGlvbjogICBVc2UgdGhlIFVuaXggY29kZSB0byBjaGVjayBmb3IgYSB3cml0YWJsZSBkaXJlY3RvcnkuICBJZiBub3QsIHRoZW4KCSAgICBtYWtlIGEgYmFja3VwIGNvcHkgYW5kIG92ZXJ3cml0ZSB0aGUgZmlsZS4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMWIuMDMwIChleHRyYSkKUHJvYmxlbTogICAgTWFjOiBzbWFsbCBtaXN0YWtlIGluIHRoZSBidWlsZCBzY3JpcHQgYW5kIHByb3RvdHlwZXMuClNvbHV0aW9uOiAgIEZpeCB0aGUgYnVpbGQgc2NyaXB0IGFuZCBhZGQgdGhlIHByb3RvdHlwZXMuIChBeGVsIEtpZWxob3JuKQpGaWxlczoJICAgIHNyYy9vc19tYWMuYnVpbGQsIHNyYy9ndWlfbWFjLmMKClBhdGNoIDYuMWIuMDMxIChleHRyYSkKUHJvYmxlbTogICAgV2luMzIgR1VJOiAiOnNldCBndWlmb250PSoiIGRvZXNuJ3Qgc2V0ICdndWlmb250JyB0byB0aGUgcmVzdWx0aW5nCgkgICAgZm9udCBuYW1lLiAoVmxhZCBTYW5kcmluaSkKU29sdXRpb246ICAgUHV0IHRoZSBjb2RlIGJhY2sgaW4gZ3VpX21jaF9pbml0X2ZvbnQoKSB0byBmb3JtIHRoZSBmb250IG5hbWUgb3V0CgkgICAgb2YgdGhlIGxvZ2ZvbnQuCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4xYi4wMzIKUHJvYmxlbTogICAgQXRoZW5hOiBTZXR0aW5nIGEgY29sb3Igc2NoZW1lIGJlZm9yZSB0aGUgR1VJIGhhcyBzdGFydGVkIGNhdXNlcyBhCgkgICAgY3Jhc2guIChUb2RkIEJsdW1lcikKU29sdXRpb246ICAgRG9uJ3QgdHJ5IHVzaW5nIGNvbG9yIG5hbWVzIHRoYXQgaGF2ZW4ndCBiZWVuIHNldCB5ZXQuCkZpbGVzOgkgICAgc3JjL2d1aV9hdGhlbmEuYwoKUGF0Y2ggNi4xYi4wMzMKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhIGNvdW50IGFmdGVyIGEgIjpzIiBjb21tYW5kIG1heSBnZXQgbWxfZ2V0IGVycm9ycy4KCSAgICAoRGlldG1hciBMYW5nKQpTb2x1dGlvbjogICBDaGVjayB0aGF0IHRoZSByZXN1bHRpbmcgcmFuZ2UgZG9lcyBub3QgZ28gcGFzdCB0aGUgZW5kIG9mIHRoZQoJICAgIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjFiLjAzNApQcm9ibGVtOiAgICBBZnRlciBzb3VyY2luZyBtc3dpbi52aW0sIHdoZW4gdXNpbmcgPEMtUy1SaWdodD4gYWZ0ZXIKCSAgICBhdXRvLWluZGVudGluZyBhbmQgdGhlbiA8RGVsPiwgZ2V0IHdhcm5pbmcgZm9yIGFsbG9jYXRpbmcKCSAgICByaWRpY3Vsb3VzIGFtb3VudCBvZiBtZW1vcnkuIChEYXZlIERlbGdyZWNvKQpTb2x1dGlvbjogICBBZGp1c3QgdGhlIHN0YXJ0IG9mIHRoZSBWaXN1YWwgYXJlYSB3aGVuIGRlbGV0aW5nIHRoZSBhdXRvLWluZGVudC4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjFiLjAzNQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGV2aW0sIGRyb3BwaW5nIGEgZmlsZSBvbiBWaW0gYW5kIHRoZW4gZG91YmxlIGNsaWNraW5nCgkgICAgb24gYSB3b3JkLCBpdCBpcyBjaGFuZ2VkIHRvICJpIi4gKE1lcmxpbiBIYW5zZW4pClNvbHV0aW9uOiAgIFJlc2V0IG5lZWRfc3RhcnRfaW5zZXJ0bW9kZSBhZnRlciBlZGl0aW5nIHRoZSBmaWxlLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClZFUlNJT04gNi4yCQkJCQkJKnZlcnNpb24tNi4yKgoKVGhpcyBzZWN0aW9uIGlzIGFib3V0IGltcHJvdmVtZW50cyBtYWRlIGJldHdlZW4gdmVyc2lvbiA2LjEgYW5kIDYuMi4KClRoaXMgaXMgbWFpbmx5IGEgYnVnLWZpeCByZWxlYXNlLiAgVGhlcmUgYXJlIGFsc28gYSBmZXcgbmV3IGZlYXR1cmVzLgoKTWFpbiBuZXcgZmVhdHVyZXM6Ci0gU3VwcG9ydCBmb3IgR1RLIDIuIChEYW5pZWwgRWxzdG5lcikKLSBTdXBwb3J0IGZvciBlZGl0aW5nIEFyYWJpYyB0ZXh0LiAoTmFkaW0gU2hhaWtsaSAmIElzYW0gQmF5YXppZGkpCi0gIjp0cnkiIGNvbW1hbmQgYW5kIGV4Y2VwdGlvbiBoYW5kbGluZy4gKFNlcnZhdGl1cyBCcmFuZHQpCi0gU3VwcG9ydCBmb3IgdGhlIG5lWHRhdyBHVUkgdG9vbGtpdCAobW9zdGx5IGxpa2UgQXRoZW5hKS4gKEFsZXhleSBGcm9sb2ZmKQotIENzY29wZSBzdXBwb3J0IGZvciBXaW4zMi4gKEtob3JldiBTZXJnZXkpCi0gU3VwcG9ydCBmb3IgUG9zdFNjcmlwdCBwcmludGluZyBpbiB2YXJpb3VzIDgtYml0IGVuY29kaW5ncy4gKE1pa2UgV2lsbGlhbXMpCgoKQ2hhbmdlZAkJCQkJCQkqY2hhbmdlZC02LjIqCi0tLS0tLS0KClJlbW92ZWQgdGhlIHNjaGVtZSBpbmRlbnQgZmlsZSwgdGhlIGludGVybmFsIExpc3AgaW5kZW50aW5nIHdvcmtzIHdlbGwgbm93LgoKTW92ZWQgdGhlIEd2aW1FWHQsIE9sZVZpbSBhbmQgVmlzVmltIGRpcmVjdG9yaWVzIGludG8gdGhlICJzcmMiIGRpcmVjdG9yeS4KVGhpcyBpcyBtb3JlIGNvbnNpc3RlbnQgd2l0aCBob3cgeHhkIGlzIGhhbmRsZWQuCgpUaGUgVmlzVmltLmRsbCBmaWxlIGlzIGluc3RhbGxlZCBpbiB0aGUgdG9wIGRpcmVjdG9yeSwgbmV4dCB0byBndmltZXh0LmRsbCwKaW5zdGVhZCBvZiBpbiBhIHN1YmRpcmVjdG9yeSAiVmlzVmltIi4gIEZpeGVzIHRoYXQgTlNJUyB3YXMgdW5pbnN0YWxsaW5nIGl0CmZyb20gdGhlIHdyb25nIGRpcmVjdG9yeS4KClJlbW92ZWQgdGhlIGFydCBpbmRlbnQgZmlsZSwgaXQgZGlkbid0IGRvIGFueXRoaW5nLgoKc3VibWF0Y2goKSByZXR1cm5lZCBsaW5lIGJyZWFrcyB3aXRoIENSIGluc3RlYWQgb2YgTEYuCgpDaGFuZ2VkIHRoZSBXaW4zMiBNYWtlZmlsZXMgdG8gYmVjb21lIG1vcmUgdW5pZm9ybSBhbmQgY29tcGlsZSBndmltZXh0LmRsbC4KKERhbiBTaGFycCkKCidjaW5kZW50JzogQWxpZ24gYSAiLy8iIGNvbW1lbnQgd2l0aCBhICIvLyIgY29tbWVudCBpbiBhIHByZXZpb3VzIGxpbmUuCihIZWxtdXQgU3RpZWdsZXIpCgpQcmV2aW91c2x5IG9ubHkgZm9yIHh0ZXJtLWxpa2UgdGVybWluYWxzIHBhcmVudCB3aWRnZXRzIHdlcmUgZm9sbG93ZWQgdG8gZmluZAp0aGUgdGl0bGUgYW5kIGljb24gbGFiZWwuICBOb3cgZG8gdGhpcyBmb3IgYWxsIHRlcm1pbmFsIGVtdWxhdG9ycy4KCk1hZGUgaXQgcG9zc2libGUgdG8gcmVjb2duaXplIGJhY2tzbGFzaGVzIGZvciAiJSIgbWF0Y2hpbmcuICBUaGUgJ00nIGZsYWcgaW4KJ2Nwb3B0aW9ucycgZGlzYWJsZXMgaXQuIChIYWFrb24gUmlpc2VyKQoKUmVtb3ZlZCB0aGUgTWFrZV90Y2MubWFrIG1ha2VmaWxlIGZvciBUdXJibyBDLiAgSXQgZGlkbid0IHdvcmsgYW5kIHdlIHByb2JhYmx5CmNhbid0IG1ha2UgaXQgd29yayAodGhlIGNvbXBpbGVyIHJ1bnMgb3V0IG9mIG1lbW9yeSkuCgpFdmVuIHRob3VnaCB0aGUgZG9jdW1lbnRhdGlvbiByZWZlcnMgdG8ga2V5d29yZHMsICJbIENUUkwtRCIgd2FzIHVzaW5nCidpc2lkZW50JyB0byBmaW5kIG1hdGNoZXMuICBDaGFuZ2VkIGl0IHRvIHVzZSAnaXNrZXl3b3JkJy4gIEFsc28gYXBwbGllcyB0bwpvdGhlciBjb21tYW5kcyB0aGF0IHNlYXJjaCBmb3IgZGVmaW5lZCB3b3JkcyBpbiBpbmNsdWRlZCBmaWxlcyBzdWNoIGFzCiI6ZHNlYXJjaCIsICJbRCIgYW5kICJbZCIuCgpNYWRlICdrZXl3b3JkcHJnJyBnbG9iYWwtbG9jYWwuIChDaHJpc3RpYW4gUm9iaW5zb24pCgpFbmFibGVkIHRoZSBOZXRiZWFucyBpbnRlcmZhY2UgYnkgZGVmYXVsdC4gIFJldmVyc2VkIHRoZSBjb25maWd1cmUgYXJndW1lbnQKZnJvbSAiLS1lbmFibGUtbmV0YmVhbnMiIHRvICItLWRpc2FibGUtbmV0YmVhbnMiLgoKCkFkZGVkCQkJCQkJCSphZGRlZC02LjIqCi0tLS0tCgpOZXcgb3B0aW9uczoKCSdhcmFiaWMnCgknYXJhYmljc2hhcGUnCgknYW1iaXdpZHRoJwoJJ2F1dG9jaGRpcicKCSdjYXNlbWFwJwoJJ2NvcHlpbmRlbnQnCgknY3Njb3BlcXVpY2tmaXgnCgkncHJlc2VydmVpbmRlbnQnCgkncHJpbnRlbmNvZGluZycKCSdyaWdodGxlZnRjbWQnCgkndGVybWJpZGknCgkndG9vbGJhcmljb25zaXplJwoJJ3dpbmZpeGhlaWdodCcKCk5ldyBrZXltYXBzOgoJU2VyYmlhbiAoQWxla3NhbmRhciBWZXNlbGlub3ZpYykKCUNoaW5lc2UgUGlueWluIChGcmVkcmlrIFJvdWJlcnQpCglFc3BlcmFudG8gKEFudG9pbmUgSi4gTWVjaGVseW5jaykKCk5ldyBzeW50YXggZmlsZXM6CglWYWxncmluZCAoUm9nZXIgTHVldGhpKQoJU21hcnR5IHRlbXBsYXRlIChNYW5mcmVkIFN0aWVuc3RyYSkKCU15U1FMIChLZW5uZXRoIFByb25vdmljaSkKCVJvY2tMaW51eCBwYWNrYWdlIGRlc2NyaXB0aW9uIChQaW90ciBFc2Rlbi1UZW1wc2tpKQoJTU1JWCAoRGlyayBIdWVza2VuKQoJZ2tyZWxsbXJjIChEYXZpZCBOZWNhcykKCVRpbGRlIChUb2JpYXMgUnVuZHRyb20pCglMb2d0YWxrIChQYXVsbyBNb3VyYSkKCVBMUCAoSnVlcmQgV2FhbGJvZXIpCglmdndtMm00IChEYXZpZCBOZWNhcykKCUlQZmlsdGVyIChIZW5kcmlrIFNjaG9seikKCWZzdGFiIChSYWR1IERpbmVpdSkKCVF1YWtlIChOaWtvbGFpIFdlaWJ1bGwpCglPY2NhbSAoTWFyaW8gU2Nod2VpZ2xlcikKCWxwYyAoU2hpemh1IFBhbikKCUV4aW0gY29uZiAoRGF2aWQgTmVjYXMpCglFRElGIChBcnRlbSBaYW5rb3ZpY2gpCgkuY3ZzcmMgKE5pa29sYWkgV2VpYnVsbCkKCS5mZXRjaG1haWxyYyAoTmlrb2xhaSBXZWlidWxsKQoJR05VIGdwZyAoTmlrb2xhaSBXZWlidWxsKQoJR3J1YiAoTmlrb2xhaSBXZWlidWxsKQoJTW9kY29uZiAoTmlrb2xhaSBXZWlidWxsKQoJUkNTIChEbWl0cnkgVmFzaWxpZXYpCglBcnQgKERvcmFpIFNpdGFyYW0pCglSZW5kZXJtYW4gSW50ZXJmYWNlIEJ5dGVzdHJlYW0gKEFuZHJldyBKIEJyb21hZ2UpCglNYWlsY2FwIChEb3VnIEtlYXJucykKCVN1YnZlcnNpb24gY29tbWl0IGZpbGUgKERtaXRyeSBWYXNpbGlldikKCU1pY3Jvc29mdCBJREwgKFZhZGltIFplaXRsaW4pCglXaWxkUGFja2V0cyBFdGhlclBlZWsgRGVjb2RlciAoQ2hyaXN0b3BoZXIgU2hpbm4pCglTcHljZSAoUmltb24gQmFycikKCVJlc29sdi5jb25mIChSYWR1IERpbmVpdSkKCUE2NSAoQ2xlbWVucyBLaXJjaGdhdHRlcmVyKQoJc3NoY29uZmlnIGFuZCBzc2hkY29uZmlnIChEYXZpZCBOZWNhcykKCUNoZWV0YWggYW5kIEhUTUxDaGVldGFoIChNYXggSXNjaGVua28pCglQYWNrZXQgZmlsdGVyIChDYW1pZWwgRG9iYmVsYWFyKQoKTmV3IGluZGVudCBmaWxlczoKCUVpZmZlbCAoRGF2aWQgQ2xhcmtlKQoJVGlsZGUgKFRvYmlhcyBSdW5kdHJvbSkKCU9jY2FtIChNYXJpbyBTY2h3ZWlnbGVyKQoJQXJ0IChEb3JhaSBTaXRhcmFtKQoJUEhQIChNaWxlcyBMb3R0KQoJRHlsYW4gKEJyZW50IEZ1bGdoYW0pCgpOZXcgdHV0b3IgdHJhbnNsYXRpb25zOgoJU2xvdmFrIChMdWJvcyBDZWxrbykKCUdyZWVrIChDaHJpc3RvcyBLb250YXMpCglHZXJtYW4gKEpvYWNoaW0gSG9mbWFubikKCU5vcndlZ2lhbiAo2Hl2aW5kIEhvbG0pCgpOZXcgZmlsZXR5cGUgcGx1Z2luczoKCU9jY2FtIChNYXJpbyBTY2h3ZWlnbGVyKQoJQXJ0IChEb3JhaSBTaXRhcmFtKQoJYW50LnZpbSwgYXNwdmJzLnZpbSwgY29uZmlnLnZpbSwgY3NjLnZpbSwgY3NoLnZpbSwgZHRkLnZpbSwgaHRtbC52aW0sCglqc3AudmltLCBwYXNjYWwudmltLCBwaHAudmltLCBzZ21sLnZpbSwgc2gudmltLCBzdmcudmltLCB0Y3NoLnZpbSwKCXhodG1sLnZpbSwgeG1sLnZpbSwgeHNkLnZpbS4gIChEYW4gU2hhcnApCgpOZXcgY29tcGlsZXIgcGx1Z2luczoKCUNoZWNrc3R5bGUgKERvdWcgS2Vhcm5zKQoJZzc3IChSYWxmIFdpbGRlbmh1ZXMpCglmb3J0cmFuIChKb2hhbm4tR3VlbnRlciBTaW1vbikKCVhtbGxpbnQgKERvdWcgS2Vhcm5zKQoJUnVieSAoVGltIEhhbW1lcnF1aXN0KQoJTW9kZWxzaW0gdmNvbSAoUGF1bCBCYWxlbWUpCgpOZXcgbWVudSB0cmFuc2xhdGlvbnM6CglCcmF6aWxpYW4gKEpvc+kgZGUgUGF1bGEpCglCcml0aXNoIChNaWtlIFdpbGxpYW1zKQoJS29yZWFuIGluIFVURi04LiAoTmFtIFN1bmdIeXVuKQoJTm9yd2VnaWFuICjYeXZpbmQgSG9sbSkKCVNlcmJpYW4gKEFsZWtzYW5kYXIgSmVsZW5haykKCk5ldyBtZXNzYWdlIHRyYW5zbGF0aW9uIGZvciBOb3J3ZWdpYW4uICjYeXZpbmQgSG9sbSkKCk5ldyBjb2xvciBzY2hlbWU6CglkZXNlcnQgKEhhbnMgRnVnYWwpCgpBcmFiaWMgc3BlY2lmaWMgZmVhdHVyZXMuICAnYXJhYmljc2hhcGUnLCAndGVybWJpZGknLCAnYXJhYmljJyBhbmQKJ3JpZ2h0bGVmdGNtZCcgb3B0aW9ucy4gIChOYWRpbSBTaGFpa2xpICYgSXNhbSBCYXlhemlkaSkKClN1cHBvcnQgZm9yIG5lWHRhdyBHVUkgdG9vbGtpdCwgbW9zdGx5IGxpa2UgQXRoZW5hLiAoQWxleGV5IEZyb2xvZmYpCgpXaW4zMjogY3Njb3BlIHN1cHBvcnQuIChLaG9yZXYgU2VyZ2V5KQoKVk1TOiB2YXJpb3VzIGltcHJvdmVtZW50cyB0byBkb2N1bWVudGF0aW9uIGFuZCBtYWtlZmlsZXMuICAoWm9sdGFuIEFycGFkZmZ5KQoKQWRkZWQgIngiIGtleSB0byB0aGUgZXhwbG9yZXIgcGx1Z2luOiBleGVjdXRlIHRoZSBkZWZhdWx0IGFjdGlvbi4gKFlhc3VoaXJvCk1hdHN1bW90bykKCkNvbXBpbGUgZ3ZpbWV4dC5kbGwgd2l0aCBNaW5nVy4gKFJlbmUgZGUgWndhcnQpCgpBZGQgdGhlICJ0b2h0bWwudmltIiBwbHVnaW4uICBJdCBkZWZpbmVzIHRoZSAiOlRPaHRtbCIgdXNlciBjb21tYW5kLCBhbiBlYXN5CndheSB0byBjb252ZXJ0IHRleHQgdG8gSFRNTC4KCkFkZGVkICI6dHJ5IiAvICI6Y2F0Y2giIC8gIjpmaW5hbGx5IiAvICI6ZW5kdHJ5IiBjb21tYW5kcy4gIEFkZCBFOTk5IG51bWJlcnMKdG8gYWxsIGVycm9yIG1lc3NhZ2VzLCBzbyB0aGF0IHRoZXkgY2FuIGJlIGNhdWdodCBieSB0aGUgbnVtYmVyLgooU2VydmF0aXVzIEJyYW5kdCkKTW92ZWQgcGFydCBvZiBleF9kb2NtZC5jIHRvIHRoZSBuZXcgZXhfZXZhbC5jIHNvdXJjZSBmaWxlLgoKSW5jbHVkZSBzdXBwb3J0IGZvciBHVEsrIDIuMi54IChEYW5pZWwgRWxzdG5lcikKQWRkcyB0aGUgIn4iIHJlZ2lzdGVyOiBkcmFnICYgZHJvcCB0ZXh0LgpBZGRzIHRoZSAndG9vbGJhcmljb25zaXplJyBvcHRpb24uCkFkZCAtRGFsbG9jYSB3aGVuIHJ1bm5pbmcgbGludCB0byB3b3JrIGFyb3VuZCBhIHByb2JsZW0gd2l0aCBhbGxvY2EoKQpwcm90b3R5cGUuCgpXaGVuIHNlbGVjdGluZyBhbiBpdGVtIGluIHRoZSBlcnJvciB3aW5kb3cgdG8ganVtcCB0bywgdGFrZSBzb21lIGVmZm9ydCB0bwpmaW5kIGFuIG9yZGluYXJ5IHdpbmRvdyB0byBzaG93IHRoZSBmaWxlIGluIChub3QgYSBwcmV2aWV3IHdpbmRvdykuCgpTdXBwb3J0IGZvciBQb3N0U2NyaXB0IHByaW50aW5nIG9mIHZhcmlvdXMgOC1iaXQgZW5jb2RpbmdzLiAoTWlrZSBXaWxsaWFtcykKCmlucHV0ZGlhbG9nKCkgYWNjZXB0cyBhIHRoaXJkIGFyZ3VtZW50IHRoYXQgaXMgdXNlZCB3aGVuIHRoZSBkaWFsb2cgaXMKY2FuY2VsbGVkLiAgTWFrZXMgaXQgcG9zc2libGUgdG8gc2VlIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGNhbmNlbGxpbmcgYW5kCmVudGVyaW5nIG5vdGhpbmcuCgpJbmNsdWRlZCBBYXAgcmVjaXBlcy4gIENhbiBiZSB1c2VkIHRvIHVwZGF0ZSBWaW0gdG8gdGhlIGxhdGVzdCB2ZXJzaW9uLApidWlsZGluZyBhbmQgaW5zdGFsbGluZy4KCiIvIiBvcHRpb24gaW4gJ2Npbm9wdGlvbnMnOiBleHRyYSBpbmRlbnQgZm9yIGNvbW1lbnQgbGluZXMuIChIZWxtdXQgU3RpZWdsZXIpCgpWaW0gdmFyaWFibGUgInY6cmVnaXN0ZXIiIGFuZCBmdW5jdGlvbnMgc2V0cmVnKCksIGdldHJlZygpIGFuZCBnZXRyZWd0eXBlKCkuCihNaWNoYWVsIEdlZGRlcykKCiJ2IiBmbGFnIGluICdjcG9wdGlvbnMnOiBMZWF2ZSB0ZXh0IG9uIHNjcmVlbiB3aXRoIGJhY2tzcGFjZSBpbiBJbnNlcnQgbW9kZS4KKFBoaWxsaXAgVmFuZHJ5KQoKRG9zaW5zdC5leGUgYWxzbyBmaW5kcyBndmltZXh0LmRsbCBpbiB0aGUgIkd2aW1FeHQiIGRpcmVjdG9yeS4gIFVzZWZ1bCB3aGVuCnJ1bm5pbmcgaW5zdGFsbCBpbiB0aGUgInNyYyIgZGlyZWN0b3J5IGZvciB0ZXN0aW5nLgoKU3VwcG9ydCB0YWcgZmlsZXMgdGhhdCB3ZXJlIHNvcnRlZCB3aXRoIGNhc2UgaWdub3JlZC4gKEZsZW1taW5nIE1hZHNlbikKCldoZW4gY29tcGxldGluZyBhIHdpbGRjYXJkIGluIGEgbGVhZGluZyBwYXRoIGVsZW1lbnQsIGFzIGluICIuLi8qL01ha2VmaWxlIiwKb25seSB0aGUgbGFzdCBwYXJ0ICgiTWFrZWZpbGUiKSB3YXMgbGlzdGVkLiAgU3VwcG9ydCBjdXN0b20gZGVmaW5lZApjb21tYW5kIGxpbmUgY29tcGxldGlvbi4gIChGbGVtbWluZyBNYWRzZW4pCgpBbHNvIHJlY29nbml6ZSAicnh2dCIgYXMgYW4geHRlcm0tbGlrZSB0ZXJtaW5hbC4gKFRvbWFzIFN0eWJsbykKClByb3BlciBYMTEgc2Vzc2lvbiBtYW5hZ2VtZW50LiAgRml4ZXMgdGhhdCB0aGUgV01fU0FWRV9ZT1VSU0VMRiBldmVudCB3YXMgbm90CnVzZWQgYnkgcG9wdWxhciBkZXNrdG9wcy4gIChOZWlsIEJpcmQpCk5vdCB1c2VkIGZvciBHbm9tZSAyLCBpdCBoYXMgaXRzIG93biBoYW5kbGluZy4KClN1cHBvcnQgQk9SLCBERUJVRyBhbmQgU1BBV05PIGFyZ3VtZW50cyBmb3IgdGhlIEJvcmxhbmQgMyBNYWtlZmlsZS4gKFdhbHRlcgpCcmlzY29lKQoKU3VwcG9ydCBwYWdlIGJyZWFrcyBmb3IgcHJpbnRpbmcuICBBZGRzIHRoZSAiZm9ybWZlZWQiIGZpZWxkIGluCidwcmludG9wdGlvbnMnLiAgKE1pa2UgV2lsbGlhbXMpCgpNYWMgT1NYOiBtdWx0aS1sYW5ndWFnZSBzdXBwb3J0OiBpY29udiBhbmQgZ2V0dGV4dC4gKE11cmFva2EgVGFybywgQXhlbApLaWVsaG9ybikKCiJcWiIgZmxhZyBpbiBwYXR0ZXJuczogaWdub3JlIGRpZmZlcmVuY2VzIGluIGNvbWJpbmluZyBjaGFyYWN0ZXJzLiAoUm9uIEFhcm9uKQoKQWRkZWQgJ3ByZXNlcnZlaW5kZW50JyBhbmQgJ2NvcHlpbmRlbnQnIG9wdGlvbnMuICBUaGV5IHVzZSBleGlzdGluZyB3aGl0ZQpzcGFjZSBjaGFyYWN0ZXJzIGluc3RlYWQgb2YgdXNpbmcgVGFicyBhcyBtdWNoIGFzIHBvc3NpYmxlLiAoQ2hyaXMgTGVpc2htYW4pCgpVcGRhdGVkIFVuaWNvZGUgdGFibGVzIHRvIFVuaWNvZGUgNC4wLiAoUmFwaGFlbCBGaW5rZWwpCgpTdXBwb3J0IGZvciB0aGUgbW91c2Ugd2hlZWwgaW4gcnh2dC4gKEFJREEgU2hpbnJhKQoKV2luMzI6IEFkZGVkICI6OCIgZmlsZSBtb2RpZmllciB0byBnZXQgc2hvcnQgZmlsZW5hbWUuICBUZXN0NTAgdGVzdHMgdGhlICI6OCIKZXhwYW5zaW9uIG9uIFdpbjMyIHN5c3RlbXMuIChNaWNoYWVsIEdlZGRlcykKCidjc2NvcGVxdWlja2ZpeCcgb3B0aW9uOiBPcGVuIHF1aWNrZml4IHdpbmRvdyBmb3IgQ3Njb3BlIGNvbW1hbmRzLiAgQWxzbwpjbGVhbnVwIHRoZSBjb2RlIGZvciBnaXZpbmcgbWVzc2FnZXMuICAoS2hvcmV2IFNlcmdleSkKCkdVSTogU3VwcG9ydCBtb3JlIHRoYW4gMjIyIGNvbHVtbnMgZm9yIG1vdXNlIHBvc2l0aW9ucy4KCiI6c3RvcGluc2VydCIgY29tbWFuZDogRG9uJ3QgcmV0dXJuIHRvIEluc2VydCBtb2RlLgoKImludGVycnVwdCIgY29tbWFuZCBmb3IgZGVidWcgbW9kZS4gIFVzZWZ1bCBmb3Igc2ltdWxhdGluZyBDVFJMLUMuIChTZXJ2YXRpdXMKQnJhbmR0KQoKCkZpeGVkCQkJCQkJCSpmaXhlZC02LjIqCi0tLS0tCgpSZW1vdmVkIGEgZmV3IHVudXNlZCAjZGVmaW5lcyBmcm9tIGNvbmZpZy5oLmluLCBvc19vczJfY2ZnLmggYW5kIG9zX3Ztc19jb25mLmguCgpUaGUgVmltIGljb25zIGluIFBORyBmb3JtYXQgZGlkbid0IGhhdmUgYSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kLiAoR3JlZwpSb2Vsb2ZzKQoKRml4ZWQgYSBsYXJnZSBudW1iZXIgb2Ygc3BlbGxpbmcgbWlzdGFrZXMgaW4gdGhlIGRvY3MuIChBZHJpIFZlcmhvZWYpCgpUaGUgI2RlZmluZXMgZm9yIHByb3RvdHlwZSBnZW5lcmF0aW9uIHdlcmUgY2F1c2luZyB0cm91YmxlLiAgQ2hhbmdlZCB0aGVtIHRvCnR5cGVkZWZzLgoKQSBuZXcgdmVyc2lvbiBvZiBsaWJpbnRsLmggdXNlcyBfX2FzbV9fLCB3aGljaCBjb25mdXNlcyBjcHJvdG8uICBEZWZpbmUgYQpkdW1teSBfX2FzbV9fIG1hY3JvLgoKV2hlbiAndmlydHVhbGVkaXQnIGlzIHNldCBjYW4ndCBtb3ZlIHRvIGhhbGZ3YXkgYW4gdW5wcmludGFibGUgY2hhcmFjdGVyLgpDcmlwcGxlcyBDVFJMLVYgc2VsZWN0aW9uLiAoVGFybyBNdXJhb2thKQpBbGxvdyBtb3ZpbmcgdG8gaGFsZndheSBhbiB1bnByaW50YWJsZSBjaGFyYWN0ZXIuICBEb24ndCBsZXQgZ2V0dnZjb2woKSBjaGFuZ2UKdGhlIHBvcy0+Y29sYWRkIGFyZ3VtZW50LgoKV2hlbiBhIHRhYiB3cmFwcyB0byB0aGUgbmV4dCBsaW5lLCAnbGlzdGNoYXJzJyBpcyBzZXQgYW5kICdmb2xkY29sdW1uJyBpcwpub24temVybywgb25seSBvbmUgY2hhcmFjdGVyIG9mIHRoZSBmb2xkY29sdW1uIGlzIGhpZ2hsaWdodGVkLiAoTXVyYW9rYSBUYXJvKQoKV2hlbiB1c2luZyAiOmNhdGNoIiB3aXRob3V0IGFuIGFyZ3VtZW50IFZpbSBjcmFzaGVzLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpXaGVuIG5vIGFyZ3VtZW50IGdpdmVuIHVzZSB0aGUgIi4qIiBwYXR0ZXJuLgoKV2luMzI6IFdoZW4gZ3ZpbS5leGUgaXMgc3RhcnRlZCBmcm9tIGEgc2hvcnRjdXQgd2l0aCB0aGUgd2luZG93IHN0eWxlIHByb3BlcnR5CnNldCB0byBtYXhpbWl6ZSBWaW0gZG9lc24ndCBzdGFydCB3aXRoIGEgbWF4aW1pemVkIHdpbmRvdy4gKFlhc3VoaXJvCk1hdHN1bW90bykgIE9wZW4gdGhlIHdpbmRvdyB3aXRoIHRoZSBkZWZhdWx0IHNpemUgYW5kIGRvbid0IGNhbGwgU2hvd1dpbmRvdygpCmFnYWluIHdoZW4gaXQncyBhbHJlYWR5IHZpc2libGUuIChIZWxtdXQgU3RpZWdsZXIpCgpndWlfZ3RrLmMgdXNlZCBNQVgsIGJ1dCBpdCdzIHVuZGVmaW5lZCB0byBhdm9pZCBhIGNvbmZsaWN0IHdpdGggc3lzdGVtIGhlYWRlcgpmaWxlcy4KCldpbjMyOiBXaGVuIGNsb3NpbmcgYSB3aW5kb3cgZnJvbSBhIG1hcHBpbmcgc29tZSBwaXhlbHMgcmVtYWluIG9uIHRoZQpzdGF0dXNsaW5lLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQoKQSBjb2x1bW4gbnVtYmVyIGluIGFuIGVycm9yZm9ybWF0IHRoYXQgZ29lcyBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgbGluZSBtYXkKY2F1c2UgYSBjcmFzaC4KCiI6dGhyb3cgJ3Rlc3QnIiBjcmFzaGVzIFZpbS4gKFlhc3VoaXJvIE1hdHN1bW90bykKClRoZSBmaWxlIHNlbGVjdG9yJ3Mgc2Nyb2xsYmFyIGNvbG9ycyBhcmUgbm90IHNldCBhZnRlciBkb2luZyBhICI6aGkgU2Nyb2xsYmFyCmd1aWZnPWNvbG9yIi4gIEFuZCB0aGUgZmlsZSBzZWxlY3RvcidzIGNvbG9ycyBhcmUgbm90IGNoYW5nZWQgYnkgdGhlCmNvbG9yc2NoZW1lIGNvbW1hbmQuICAoRGF2aWQgSGFycmlzb24pCgpNb3RpZjogV2hlbiBjb21waWxpbmcgd2l0aCBGRUFUX0ZPT1RFUiBkZWZpbmVkLCB0aGUgdGV4dCBhcmVhIGdldHMgYSBmZXcKcGl4ZWxzIGV4dHJhIHNwYWNlIG9uIHRoZSByaWdodC4gIFJlbW92ZSB0aGUgc3BlY2lhbCBjYXNlIGluCmd1aV9nZXRfYmFzZV93aWR0aCgpLiAoRGF2aWQgSGFycmlzb24pCgpVc2luZyBDVFJMLVIgQ1RSTC1QIGluIEluc2VydCBtb2RlIHB1dHMgdGhlICddIG1hcmsgaW4gdGhlIHdyb25nIHBvc2l0aW9uLgooSGVsbXV0IFN0aWVnbGVyKQoKV2hlbiAnZm9ybWF0b3B0aW9ucycgaW5jbHVkZXMgImF3Y3QiIGEgbm9uLWNvbW1lbnQgd2Fzbid0IGF1dG8tZm9ybWF0dGVkLgoKVXNpbmcgYSAiLS1jbWQiIGFyZ3VtZW50IG1vcmUgdGhhbiAxMCB0aW1lcyBjYXVzZWQgYSBjcmFzaC4KCkRFQyBzdHlsZSBtb3VzZSBzdXBwb3J0IGRpZG4ndCB3b3JrIGlmIHRoZSBwYWdlIGZpZWxkIGlzIG5vdCBlbXB0eS4KKFVyaWJhcnJpKQoKInZpbSAtbCBvbmUgdHdvIiBkaWQgb25seSBzZXQgJ2xpc3AnIGluIHRoZSBmaXJzdCBmaWxlLiAgVmkgZG9lcyBpdCBmb3IgZXZlcnkKZmlsZS4KCiI6c2V0IHR3PCIgZGlkbid0IHdvcmsuICBXYXMgY2hlY2tpbmcgZm9yICdeJyBpbnN0ZWFkIG9mICc8Jy4KCkluICI6aGFyZGNvcHkgPiAlLnBzIiB0aGUgIiUiIHdhcyBub3QgZXhwYW5kZWQgdG8gdGhlIGN1cnJlbnQgZmlsZW5hbWUuCgpNYWRlICI6cmVkcmF3IiBhbHNvIHVwZGF0ZSB0aGUgVmlzdWFsIGFyZWEuCgpXaGVuIGEgbm90IGltcGxlbWVudGVkIGNvbW1hbmQsIHN1Y2ggYXMgIjpwZXJsIiwgaGFzIHdyb25nIGFyZ3VtZW50cyB0aGUgbGVzcwppbXBvcnRhbnQgZXJyb3Igd2FzIHJlcG9ydGVkLCBnaXZpbmcgdGhlIHVzZXIgdGhlIGlkZWEgdGhlIGNvbW1hbmQgY291bGQgd29yay4KCk9uIG5vbi1Vbml4IHN5c3RlbXMgYXV0b2NvbW1hbmRzIGZvciB3cml0aW5nIGRpZCBub3QgYXR0ZW1wdCBhIG1hdGNoIHdpdGggdGhlCnNob3J0IGZpbGUgbmFtZSwgY2F1c2luZyBhIHBhdHRlcm4gbGlrZSAiYS9iIiB0byBmYWlsLgoKVk1TOiBlX3NjcmVlbm1vZGUgd2FzIG5vdCBkZWZpbmVkIGFuZCBhIGZldyBvdGhlciBmaXhlcyBmb3IgVk1TLiAoWm9sdGFuCkFycGFkZmZ5KQoKcmVkcmF3X21zZygpIGRlcGVuZGVkIG9uIEZFQVRfQVJBQklDIGluc3RlYWQgb2YgRkVBVF9SSUdIVExFRlQuIChXYWx0ZXIKQnJpc2NvZSkKClZhcmlvdXMgY2hhbmdlcyBmb3IgdGhlIFBDIE1ha2VmaWxlcy4gKFdhbHRlciBCcmlzY29lKQoKVXNlIF90cnVlbmFtZSgpIGluc3RlYWQgb2Ygb3VyIG93biBjb2RlIHRvIGV4cGFuZCBhIGZpbGUgbmFtZSBpbnRvIGEgZnVsbApwYXRoLiAoV2FsdGVyIEJyaXNjb2UpCgpFcnJvciBpbiBmaWxldHlwZSBjaGVjayBmb3IgL2V0Yy9tb2R1dGlscy4gKEx1Ym9taXIgSG9zdCkKCkNzY29wZSBpbnRlcmZhY2U6IGFsbG9jYXRlZCBhIGJ1ZmZlciB0b28gc21hbGwuCgpXaW4xNjogcmVtb3ZlIGEgdHJhaWxpbmcgYmFja3NsYXNoIGZyb20gYSBwYXRoIHdoZW4gb2J0YWluaW5nIHRoZSBwZXJtaXNzaW9uCmZsYWdzLiAoVmluY2UgTmVncmkpCgpXaGVuIHNlYXJjaGluZyBmb3IgdGFncyB3aXRoIGNhc2UgaWdub3JlZCBWaW0gY291bGQgaGFuZy4KCldoZW4gc2VhcmNoaW5nIGRpcmVjdG9yaWVzIHdpdGggYSBzdG9wZGlyIGNvdWxkIGdldCBhIGNyYXNoLiAgRGlkIG5vdApyZS1hbGxvY2F0ZSBlbm91Z2ggbWVtb3J5LiAoVmluY2UgTmVncmkpCgpBIHVzZXIgY29tbWFuZCBtYXkgY2F1c2UgYSBjcmFzaC4gIERvbid0IHVzZSB0aGUgY29tbWFuZCBpbmRleCB3aGVuIGl0J3MKbmVnYXRpdmUuIChWaW5jZSBOZWdyaSkKCnB1dGVudigpIGRpZG4ndCB3b3JrIGZvciBNaW5nVyBhbmQgQ3lnd2luLiAoRGFuIFNoYXJwKQoKTWFueSBmdW5jdGlvbnMgd2VyZSBjb21tb24gYmV0d2VlbiBvc19tc2Rvcy5jIGFuZCBvc193aW4xNi5jLiAgVXNlIG9zX21zZG9zLmMKZm9yIGNvbXBpbGluZyB0aGUgV2luMTYgdmVyc2lvbiBhbmQgcmVtb3ZlIHRoZSBmdW5jdGlvbnMgZnJvbSBvc193aW4xNi5jLgooVmluY2UgTmVncmkpCgpGb3IgdGVybWluYWxzIHRoYXQgYmVoYXZlIGxpa2UgYW4geHRlcm0gYnV0IGRpZG4ndCBoYXZlIGEgbmFtZSB0aGF0IGlzCnJlY29nbml6ZWQsIHRoZSB3aW5kb3cgdGl0bGUgd291bGQgbm90IGFsd2F5cyBiZSBzZXQuCgpXaGVuIHN5bnRheCBoaWdobGlnaHRpbmcgaXMgb2ZmICI6aGFyZGNvcHkiIGNvdWxkIHN0aWxsIGF0dGVtcHQgcHJpbnRpbmcKY29sb3JzLgoKQ3Jhc2ggd2hlbiB1c2luZyAiOmNhdGNoIiB3aXRob3V0IGFuIGFyZ3VtZW50LiAgKFNlcnZhdGl1cyBCcmFuZHQpCgpXaW4zMjogIjpuICMiIGRvdWJsZWQgdGhlIGJhY2tzbGFzaGVzLgoKRml4ZWQgQXJhYmljIHNoYXBpbmcgZm9yIHRoZSBjb21tYW5kIGxpbmUuIChOYWRpbSBTaGFpa2xpKQoKQXZvaWQgc3BsaXR0aW5nIHVwIGEgc3RyaW5nIGRpc3BsYXllZCBvbiB0aGUgY29tbWFuZCBsaW5lIGludG8gaW5kaXZpZHVhbApjaGFyYWN0ZXJzLCBpdCBicmVha3MgQXJhYmljIHNoYXBpbmcuCgpVcGRhdGVkIEN5Z3dpbiBhbmQgTWluZ1cgbWFrZWZpbGVzIHRvIHVzZSBtb3JlIGRlcGVuZGVuY2llcy4gKERhbiBTaGFycCkKCjJodG1sLnZpbSBkaWRuJ3Qgd29yayB3aXRoICdub21hZ2ljJyBzZXQuCgpXaGVuIGEgbG9jYWwgYXJndW1lbnQgbGlzdCBpcyB1c2VkIGFuZCBkb2luZyAiOm9ubHkiIFZpbSBjb3VsZCBjcmFzaCBsYXRlci4KKE11cmFva2EgVGFybykKCldoZW4gdXNpbmcgIiVQIiBpbiAnc3RhdHVzbGluZScgYW5kIHRoZSBmaWxsY2hhciBpcyAiLSIsIGEgcGVyY2VudGFnZSBvZiAzJQpjb3VsZCByZXN1bHQgaW4gIi0zJSIuICBBbHNvIGF2b2lkIGNoYW5naW5nIGEgc3BhY2UgaW5zaWRlIGEgZmlsZW5hbWUgdG8gdGhlCmZpbGwgY2hhcmFjdGVyLgoKTVN3aW46IEhhbmRsaW5nIG9mIGJhY2tzbGFzaGVzIGFuZCBkb3VibGUgcXVvdGVzIGZvciBjb21tYW5kIGxpbmUgYXJndW1lbnRzCndhcyBub3QgbGlrZSB3aGF0IG90aGVyIGFwcGxpY2F0aW9ucyBkby4gIChXYWx0ZXIgQnJpc2NvZSkKClRlc3QzMiBzb21ldGltZXMgZGlkbid0IHdvcmssIGJlY2F1c2UgdGVzdDExLm91dCB3YXMgd3JpdHRlbiBhcyBURVNUMTEuT1VULgoKQXZvaWQgcG9pbnRlciBjb252ZXJzaW9ucyB3YXJuaW5ncyBmb3IgQm9ybGFuZCBDIDUuNSBpbiBkb3NpbnN0LmMgYW5kCnVuaW5zdGFsLmMuCgpNb3JlIGltcHJvdmVtZW50cyBmb3IgTWFrZV9iYzMubWFrIGZpbGUuIChXYWx0ZXIgQnJpc2NvZSkKCldoZW4gIjpzeW4gc3luYyBsaW5lYnJlYWtzPTEiIGlzIHVzZWQsIGVkaXRpbmcgdGhlIGZpcnN0IGxpbmUgY2F1c2VkIGEgcmVkcmF3Cm9mIHRoZSB3aG9sZSBzY3JlZW4uCgpNYWtpbmcgdHJhbnNsYXRlZCBtZXNzYWdlcyBkaWRuJ3Qgd29yaywgaWZfcGVybC54cyB3YXNuJ3QgZm91bmQuIChWbGFkClNhbmRyaW5pKQoKTW90aWYgYW5kIEF0aGVuYTogbW92aW5nIFZpbSB0byB0aGUgZm9yZWdyb3VuZCBkaWRuJ3QgdW5pY29uaWZ5IGl0LiAgVXNlClhNYXBSYWlzZWQoKSBpbnN0ZWFkIG9mIFhSYWlzZVdpbmRvdygpLiAoU3Jpa2FudGggU2Fua2FyYW4pCgpXaGVuIHVzaW5nICI6cHRhZyIgaW4gYSB3aW5kb3cgd2hlcmUgJ3Njcm9sbGJpbmQnIGlzIHNldCB0aGUgcHJldmlldyB3aW5kb3cKd291bGQgYWxzbyBoYXZlICdzY3JvbGxiaW5kJyBzZXQuICBBbHNvIHJlc2V0ICdmb2xkY29sdW1uJyBhbmQgJ2RpZmYnLgoKVmFyaW91cyBjb21tYW5kcyB0aGF0IHNwbGl0IGEgd2luZG93IHRvb2sgb3ZlciAnc2Nyb2xsYmluZCcsIHdoaWNoIGlzIGhhcmRseQpldmVyIGRlc2lyZWQuICBFc3AuIGZvciAicToiIGFuZCAiOmNvcGVuIi4gIE1vc3RseSByZXNldCAnc2Nyb2xsYmluZCcgd2hlbgpzcGxpdHRpbmcgYSB3aW5kb3cuCgpXaGVuICdzaGVsbHNsYXNoJyBpcyBzZXQgaW4gdGhlIHZpbXJjIGZpbGUgdGhlIGZpcnN0IGVudHJ5IG9mICI6c2NyaXB0bmFtZXMiCndvdWxkIHN0aWxsIGhhdmUgYmFja3NsYXNoZXMuICBFbnRyaWVzIGluIHRoZSBxdWlja2ZpeCBsaXN0IGNvdWxkIGFsc28gaGF2ZQp3cm9uZyAoYmFjaylzbGFzaGVzLgoKV2luMzI6IHByaW50ZXIgZGlhbG9nIHRleHRzIHdlcmUgbm90IHRyYW5zbGF0ZWQuIChZYXN1aGlybyBNYXRzdW1vdG8pCgpXaGVuIHVzaW5nIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgd2l0aCBhIEtfU1BFQ0lBTCBieXRlIG9yIGEgc3BlY2lhbCBrZXkgY29kZQp3aXRoICItLXJlbW90ZS1zZW5kIiB0aGUgcmVjZWl2ZWQgYnl0ZSBzZXF1ZW5jZSB3YXMgbWFuZ2xlZC4gIFB1dCBpdCBpbiB0aGUKdHlwZWFoZWFkIGJ1ZmZlciBpbnN0ZWFkIG9mIHRoZSBpbnB1dCBidWZmZXIuCgpXaW4zMjogVGhlIGN1cnNvciBwb3NpdGlvbiB3YXMgaW5jb3JyZWN0IGFmdGVyIGNoYW5naW5nIGN1cnNvciBzaGFwZS4KKFlhc3VoaXJvIE1hdHN1bW90bykuCgpXaW4zMjogV2hlbiAnZW5jb2RpbmcnIGlzIG5vdCB0aGUgY3VycmVudCBjb2RlcGFnZSB0aGUgdGl0bGUgY291bGQgbm90IGJlIHNldAp0byBub24tYXNjaWkgY2hhcmFjdGVycy4KCiJ2aW0gLWQgc2NwOi8vbWFjaGluZS9maWxlMSBzY3A6Ly9tYWNoaW5lL2ZpbGUyIiBkaWQgbm90IHdvcmssIHRoZXJlIHdhcyBvbmx5Cm9uZSB3aW5kb3cuICBGaXhlZCB0aGUgbmV0cncgcGx1Z2luIG5vdCB0byB3aXBlIG91dCB0aGUgYnVmZmVyIGlmIGl0IGlzCmRpc3BsYXllZCBpbiBvdGhlciB3aW5kb3dzLgoKIi8kIiBjYXVzZWQgImUiIGluIGxhc3QgY29sdW1uIG9mIHNjcmVlbiB0byBkaXNhcHBlYXIsIGEgaGlnaGxpZ2h0ZWQgYmxhbmsgd2FzCmRpc3BsYXllZCBpbnN0ZWFkLgoKIjpzLyAqXHplXG4vL2UiIHJlbW92ZWQgdGhlIGxpbmUgYnJlYWsgYW5kIGludHJvZHVjZWQgYXJiaXRyYXJ5IHRleHQuICBXYXMKdXNpbmcgdGhlIGxpbmUgY291bnQgaW5jbHVkaW5nIHdoYXQgbWF0Y2hlZCBhZnRlciB0aGUgIlx6ZSIuCgpVc2luZyB0aGUgImMiIGZsYWcgd2l0aCAiOnMiIGNoYW5nZWQgdGhlIGJlaGF2aW9yIHdoZW4gYSBsaW5lIGJyZWFrIGlzCnJlcGxhY2VkIGFuZCAiXEA8PSIgaXMgdXNlZC4gIFdpdGhvdXQgImMiIGEgZm9sbG93aW5nIG1hdGNoIHdhcyBub3QgZm91bmQuCgoiOiVzL1x2QUA8PVxuQkA9Ly9nY2UiIGdvdCBzdHVjayBvbiAiQVxuQiIgd2hlbiBlbnRlcmluZyAibiIuCgpWTVM6IGFkZCBIQVZFX1NUUkZUSU1FIGluIHRoZSBjb25maWcgZmlsZS4gKFpvbHRhbiBBcnBhZGZmeSkKCldoZW4gYSBkZWxldGUgcHJvbXB0cyBpZiBhIGRlbGV0ZSBzaG91bGQgY29udGludWUgd2hlbiB5YW5raW5nIGlzIG5vdApwb3NzaWJsZSwgcmVzdG9yZSBtc2dfc2lsZW50IGFmdGVyd2FyZHMuCgoiOnNpZ24iIGRpZCBub3QgY29tcGxhaW4gYWJvdXQgYSBtaXNzaW5nIGFyZ3VtZW50LgoKV2hlbiBhZGRpbmcgb3IgZGVsZXRpbmcgYSBzaWduICdobHNlYXJjaCcgaGlnaGxpZ2h0aW5nIGNvdWxkIGRpc2FwcGVhci4KVXNlIHRoZSBnZW5lcmljIGZ1bmN0aW9ucyBmb3IgdXBkYXRpbmcgc2lnbnMuCgpPbiBNUy1XaW5kb3dzIE5ULCAySyBhbmQgWFAgZG9uJ3QgdXNlIGNvbW1hbmQuY29tIGJ1dCBjbWQuZXhlIGZvciB0ZXN0aW5nLgpNYWtlcyB0aGUgdGVzdHMgd29yayBvbiBtb3JlIHN5c3RlbXMuCgpJbiB0aGUgRE9TIHRlc3RzIGRvbid0IGNyZWF0ZSAiL3RtcCIgdG8gYXZvaWQgYW4gZXJyb3IuCgpNYWMgY2xhc3NpYzogUHJvYmxlbXMgd2l0aCByZWFkaW5nIGZpbGVzIHdpdGggQ1IgdnMgQ1IvTEYuICBSZWx5IG9uIHRoZQpsaWJyYXJ5IHZlcnNpb24gb2YgZmdldHMoKSB0byB3b3JrIGNvcnJlY3RseSBmb3IgTWV0cm93ZXJrcyAyLjIuIChBeGVsCktpZWxob3JuKQoKV2hlbiB0eXBpbmcgYSBwYXNzd29yZCBhICIqIiB3YXMgc2hvd24gZm9yIGVhY2ggYnl0ZSBpbnN0ZWFkIG9mIGZvciBlYWNoCmNoYXJhY3Rlci4gIEFkZGVkIG11bHRpLWJ5dGUgaGFuZGxpbmcgdG8gZGlzcGxheWluZyB0aGUgc3RhcnMuIChZYXN1aGlybwpNYXRzdW1vdG8pCgpXaGVuIHVzaW5nIFBlcmwgNS42IGFjY2Vzc2luZyAkY3VyYnVmIGRvZXNuJ3Qgd29yay4gIEFkZCBhbiAjaWZkZWYgdG8gdXNlCmRpZmZlcmVudCBjb2RlIGZvciA1LjYgYW5kIDUuOC4gIChEYW4gU2hhcnApCgpNaW5nVyBhbmQgQ3lnd2luOiBEb24ndCBzdHJpcCB0aGUgZGVidWcgZXhlY3V0YWJsZS4gKERhbiBTaGFycCkKCkFuIGFzc2lnbm1lbnQgdG8gYSB2YXJpYWJsZSB3aXRoIGN1cmxpZXMgdGhhdCBpbmNsdWRlcyAiPT0iIGRvZXNuJ3Qgd29yay4KU2tpcCBvdmVyIHRoZSBjdXJsaWVzIGJlZm9yZSBzZWFyY2hpbmcgZm9yIGFuICI9Ii4gKFZpbmNlIE5lZ3JpKQoKV2hlbiBjYW5jZWxsaW5nIHRoZSBzZWxlY3Rpb24gb2YgYWx0ZXJuYXRlIG1hdGNoaW5nIHRhZ3MgdGhlIHRhZyBzdGFjayBpbmRleApjb3VsZCBiZSBhZHZhbmNlZCB0b28gZmFyLCByZXN1bHRpbmcgaW4gYW4gZXJyb3IgbWVzc2FnZSB3aGVuIHVzaW5nIENUUkwtVC4KCgpQYXRjaCA2LjEuMDAxClByb2JsZW06ICAgIFdoZW4gZm9ybWF0dGluZyBVVEYtOCB0ZXh0IGl0IG1pZ2h0IGJlIHdyYXBwZWQgYXQgYSBzcGFjZSB0aGF0IGlzCgkgICAgZm9sbG93ZWQgYnkgYSBjb21wb3NpbmcgY2hhcmFjdGVyLiAoUmFwaGFlbCBGaW5rZWwpCgkgICAgQWxzbyBjb3JyZWN0IGEgZGlzcGxheSBlcnJvciBmb3IgcmVtb3ZpbmcgYSBjb21wb3NpbmcgY2hhciBvbiB0b3AKCSAgICBvZiBhIHNwYWNlLgpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBjb21wb3NpbmcgY2hhcmFjdGVyIG9uIGEgc3BhY2UuCkZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL21pc2MxLmMsIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjAwMiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBhZnRlciBhICI6cG9wdXAiIGNvbW1hbmQgdGhlIG1vdXNlIHBvaW50ZXIgc3RheXMgaGlkZGVuLgpTb2x1dGlvbjogICBVbmhpZGUgdGhlIG1vdXNlIHBvaW50ZXIgYmVmb3JlIHNob3dpbmcgdGhlIG1lbnUuCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4xLjAwMwpQcm9ibGVtOiAgICBXaGVuICdsYXN0c3RhdHVzJyBpcyB6ZXJvIGFuZCB0aGVyZSBpcyBhIHZlcnRpY2FsIHNwbGl0LCB0aGUKCSAgICB2ZXJ0aWNhbCBzZXBhcmF0b3IgaXMgZHJhd24gaW4gdGhlIGNvbW1hbmQgbGluZS4gKFNyaWthbnQKCSAgICBTYW5rYXJhbikKU29sdXRpb246ICAgRG9uJ3QgZHJhdyB0aGUgdmVydGljYWwgc2VwYXJhdG9yIHdoZXJlIHRoZXJlIGlzIG5vIHN0YXR1c2xpbmUuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMDA0ClByb2JsZW06ICAgIFVuaWNvZGUgMy4yIGNoYW5nZXMgd2lkdGggYW5kIGNvbXBvc2luZyBvZiBhIGZldyBjaGFyYWN0ZXJzLgoJICAgIChNYXJrdXMgS3VobikKU29sdXRpb246ICAgQWRqdXN0IHRoZSBVbmljb2RlIGZ1bmN0aW9ucyBmb3IgdGhlIGNoYXJhY3RlciB3aWR0aCBhbmQgY29tcG9zaW5nCgkgICAgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4xLjAwNQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIG1vcmUgdGhhbiA1MCBpdGVtcyBpbiAnc3RhdHVzbGluZScgVmltIG1pZ2h0IGNyYXNoLgoJICAgIChTdGV2ZSBIYWxsKQpTb2x1dGlvbjogICBJbmNyZW1lbnQgaXRlbWNudCBpbiBjaGVja19zdGxfb3B0aW9uKCkuIChGbGVtbWluZyBNYWRzZW4pCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjEuMDA2ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIlAiIGluIFZpc3VhbCBtb2RlIHRvIHB1dCBsaW5ld2lzZSBzZWxlY3RlZCB0ZXh0LCB0aGUKCSAgICB3cm9uZyB0ZXh0IGlzIGRlbGV0ZWQuIChKYWt1YiBUdXJza2kpClNvbHV0aW9uOiAgIFB1dCB0aGUgdGV4dCBiZWZvcmUgdGhlIFZpc3VhbCBhcmVhIGFuZCBjb3JyZWN0IHRoZSB0ZXh0IHRvIGJlCgkgICAgZGVsZXRlZCBmb3IgdGhlIGluc2VydGVkIGxpbmVzLgoJICAgIEFsc28gZml4IHRoYXQgInAiIG9mIGxpbmV3aXNlIHRleHQgaW4gVmlzdWFsIGJsb2NrIG1vZGUgZG9lc24ndAoJICAgIHdvcmsgY29ycmVjdGx5LgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jCgpQYXRjaCA2LjEuMDA3ClByb2JsZW06ICAgIFVzaW5nICI6ZmlsZXR5cGUgcGx1Z2luIG9mZiIgd2hlbiBmaWxldHlwZSBwbHVnaW5zIHdlcmUgbmV2ZXIKCSAgICBlbmFibGVkIGNhdXNlcyBhbiBlcnJvciBtZXNzYWdlLiAoWWl1IFdpbmcpClNvbHV0aW9uOiAgIFVzZSAiOnNpbGVudCEiIHRvIGF2b2lkIHRoZSBlcnJvciBtZXNzYWdlLgpGaWxlczoJICAgIHJ1bnRpbWUvZnRwbHVnb2YudmltCgpQYXRjaCA2LjEuMDA4ClByb2JsZW06ICAgIFRoZSAiJSIgY29tbWFuZCBkb2Vzbid0IGlnbm9yZSBcIiBpbnNpZGUgYSBzdHJpbmcsIGl0J3Mgc2VlbiBhcwoJICAgIHRoZSBlbmQgb2YgdGhlIHN0cmluZy4gKEtlbiBDbGFyaykKU29sdXRpb246ICAgU2tpcCBhIGRvdWJsZSBxdW90ZSBwcmVjZWRlZCBieSBhbiBvZGQgbnVtYmVyIG9mIGJhY2tzbGFzaGVzLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4xLjAwOQpQcm9ibGVtOiAgICBWaW0gY3Jhc2hlcyB3aGVuIHVzaW5nIGEgaHVnZSBudW1iZXIgZm9yIHRoZSBtYXh3aWQgdmFsdWUgaW4gYQoJICAgIHN0YXR1c2xpbmUuIChSb2JlcnQgTS4gTm93b3RuaWFrKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYW4gb3ZlcmZsb3cgdGhhdCBtYWtlcyBtYXh3aWQgbmVnYXRpdmUuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuMDEwClByb2JsZW06ICAgIFNlYXJjaGluZyBiYWNrd2FyZHMgZm9yIGEgcXVlc3Rpb24gbWFyayB3aXRoICI/XD8iIGRvZXNuJ3Qgd29yay4KCSAgICAoQWxhbiBJc2FhYykgIFNhbWUgcHJvYmxlbSBpbiAiOnM/XD8/IiBhbmQgIjpnP1w/PyIuClNvbHV0aW9uOiAgIENoYW5nZSB0aGUgIlw/IiBpbiBhIHBhdHRlcm4gdG8gIj8iIHdoZW4gdXNpbmcgIj8iIGFzIGRlbGltaXRlci4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL3Byb3RvL3JlZ2V4cC5wcm8sIHNyYy9yZWdleHAuYywKCSAgICBzcmMvc2VhcmNoLmMsIHNyYy9zeW50YXguYywgc3JjL3RhZy5jCgpQYXRjaCA2LjEuMDExClByb2JsZW06ICAgIFhJTTogZG9lc24ndCB3b3JrIGNvcnJlY3RseSB3aGVuICdudW1iZXInIGlzIHNldC4gIEFsc28sIGEgZm9jdXMKCSAgICBwcm9ibGVtIHdoZW4gc2VsZWN0aW5nIGNhbmRpZGF0ZXMuClNvbHV0aW9uOiAgIEZpeCB0aGUgWElNIHByb2JsZW1zLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4wMTIKUHJvYmxlbTogICAgQSBzeXN0ZW0oKSBjYWxsIG1pZ2h0IGZhaWwgaWYgZnJlYWQoKSBkb2VzIENSLUxGIHRvIExGCgkgICAgdHJhbnNsYXRpb24uClNvbHV0aW9uOiAgIE9wZW4gdGhlIG91dHB1dCBmaWxlIGluIGJpbmFyeSBtb2RlLiAoUGF2b2wgSHVoYXMpCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMS4wMTMKUHJvYmxlbTogICAgV2luMzI6IFRoZSBkZWZhdWx0IGZvciAncHJpbnRleHByJyBkb2Vzbid0IHdvcmsgd2hlbiB0aGVyZSBhcmUKCSAgICBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gJ3ByaW50ZGV2aWNlJy4KU29sdXRpb246ICAgQWRkIGRvdWJsZSBxdW90ZXMgYXJvdW5kIHRoZSBkZXZpY2UgbmFtZS4gKE1pa2UgV2lsbGlhbXMpCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9uLnR4dCwgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjEuMDE0ClByb2JsZW06ICAgIEFuIG9wZXJhdG9yIGxpa2UgInIiIHVzZWQgaW4gVmlzdWFsIGJsb2NrIG1vZGUgZG9lc24ndCB1c2UKCSAgICAndmlydHVhbGVkaXQnIHdoZW4gaXQncyBzZXQgdG8gImJsb2NrIi4KU29sdXRpb246ICAgQ2hlY2sgZm9yICd2aXJ0dWFsZWRpdCcgYmVpbmcgYWN0aXZlIGluIFZpc3VhbCBibG9jayBtb2RlIHdoZW4gdGhlCgkgICAgb3BlcmF0b3Igd2FzIHN0YXJ0ZWQuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9taXNjMi5jLCBzcmMvbm9ybWFsLmMsCgkgICAgc3JjL29wcy5jLCBzcmMvdW5kby5jCgpQYXRjaCA2LjEuMDE1ClByb2JsZW06ICAgIEFmdGVyIHBhdGNoIDYuMS4wMTQgY2FuJ3QgY29tcGlsZSB3aXRoIHRpbnkgZmVhdHVyZXMuIChDaHJpc3RpYW4KCSAgICBKLiBSb2JpbnNvbikKU29sdXRpb246ICAgQWRkIHRoZSBtaXNzaW5nIGRlZmluZSBvZiB2aXJ0dWFsX29wLgpGaWxlczoJICAgIHNyYy92aW0uaAoKUGF0Y2ggNi4xLjAxNiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBPdXRwdXR0aW5nIEhlYnJldyBvciBBcmFiaWMgdGV4dCBtaWdodCBoYXZlIGEgcHJvYmxlbSB3aXRoCgkgICAgcmV2ZXJzaW5nLgpTb2x1dGlvbjogICBSZXBsYWNlIHRoZSBSZXZPdXQoKSBmdW5jdGlvbiB3aXRoIEVUT19JR05PUkVMQU5HVUFHRS4gKFJvbiBBYXJvbikKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuMDE3ClByb2JsZW06ICAgIEN5Z3dpbjogQWZ0ZXIgcGF0Y2ggNi4xLjAxMiBTdGlsbCBkb2Vzbid0IGRvIGJpbmFyeSBmaWxlIEkvTy4KCSAgICAoUGF2b2wgSnVoYXMpClNvbHV0aW9uOiAgIERlZmluZSBCSU5BUllfRklMRV9JTyBmb3IgQ3lnd2luLgpGaWxlczoJICAgIHNyYy9vc191bml4LmgKClBhdGNoIDYuMS4wMTgKUHJvYmxlbTogICAgRXJyb3IgbWVzc2FnZSB3aGVuIHVzaW5nIGN0ZXJtIGhpZ2hsaWdodGluZy4gKExlb25hcmRvIERpIExlbGxhKQpTb2x1dGlvbjogICBSZW1vdmUgYSBiYWNrc2xhc2ggYmVmb3JlIGEgcXVlc3Rpb24gbWFyay4KRmlsZXM6CSAgICBydW50aW1lL3N5bnRheC9jdGVybS52aW0KClBhdGNoIDYuMS4wMTkgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogRmlsZSBuYW1lIGlzIG1lc3NlZCB1cCB3aGVuIGVkaXRpbmcganVzdCBhIGRyaXZlIG5hbWUuCgkgICAgKFdhbHRlciBCcmlzY29lKQpTb2x1dGlvbjogICBBcHBlbmQgYSBOVUwgYWZ0ZXIgdGhlIGRyaXZlIG5hbWUuIChWaW5jZSBOZWdyaSkKRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4xLjAyMApQcm9ibGVtOiAgICBjb2woIic+IikgcmV0dXJucyBhIGh1Z2UgbnVtYmVyIGFmdGVyIHVzaW5nIFZpc3VhbCBsaW5lIG1vZGUuClNvbHV0aW9uOiAgIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBsaW5lIGluc3RlYWQuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjAyMSAoZGVwZW5kcyBvbiBwYXRjaCA2LjEuMDA5KQpQcm9ibGVtOiAgICBWaW0gY3Jhc2hlcyB3aGVuIHVzaW5nIGEgaHVnZSBudW1iZXIgZm9yIHRoZSBtaW53aWQgdmFsdWUgaW4gYQoJICAgIHN0YXR1c2xpbmUuIChSb2JlcnQgTS4gTm93b3RuaWFrKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYW4gb3ZlcmZsb3cgdGhhdCBtYWtlcyBtaW53aWQgbmVnYXRpdmUuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuMDIyClByb2JsZW06ICAgIEdyYWJiaW5nIHRoZSBzdGF0dXMgbGluZSBhYm92ZSB0aGUgY29tbWFuZC1saW5lIHdpbmRvdyB3b3JrcyBsaWtlCgkgICAgdGhlIGJvdHRvbSBzdGF0dXMgbGluZSB3YXMgZ3JhYmJlZC4gKEppbSBCYXR0bGUpClNvbHV0aW9uOiAgIE1ha2UgaXQgcG9zc2libGUgdG8gZ3JhYiB0aGUgc3RhdHVzIGxpbmUgYWJvdmUgdGhlIGNvbW1hbmQtbGluZQoJICAgIHdpbmRvdywgc28gdGhhdCBpdCBjYW4gYmUgcmVzaXplZC4KRmlsZXM6CSAgICBzcmMvdWkuYwoKUGF0Y2ggNi4xLjAyMyAoZXh0cmEpClByb2JsZW06ICAgIFZNUzogcnVubmluZyB0ZXN0cyBkb2Vzbid0IHdvcmsgcHJvcGVybHkuClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgbWFrZWZpbGUuIChab2x0YW4gQXJwYWRmZnkpCkZpbGVzOgkgICAgc3JjL3Rlc3RkaXIvTWFrZV92bXMubW1zCgpQYXRjaCA2LjEuMDI0ClByb2JsZW06ICAgIFdoZW4gaGVhZGVyIGZpbGVzIHVzZSBhIG5ldyBzeW50YXggZm9yIGRlY2xhcmluZyBmdW5jdGlvbnMsIFZpbQoJICAgIGNhbid0IGZpZ3VyZSBvdXQgbWlzc2luZyBwcm90b3R5cGVzIHByb3Blcmx5LgpTb2x1dGlvbjogICBBY2NlcHQgYnJhY2VzIGFyb3VuZCBhIGZ1bmN0aW9uIG5hbWUuIChNLiBXYXJuZXIgTG9zaCkKRmlsZXM6CSAgICBzcmMvb3NkZWYuc2gKClBhdGNoIDYuMS4wMjUKUHJvYmxlbTogICAgRml2ZSBtZXNzYWdlcyBmb3IgInZpbSAtLWhlbHAiIGRvbid0IHN0YXJ0IHdpdGggYSBjYXBpdGFsLiAoVmxhZAoJICAgIFNhbmRyaW5pKQpTb2x1dGlvbjogICBNYWtlIHRoZSBtZXNzYWdlcyBjb25zaXN0ZW50LgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS4wMjYKUHJvYmxlbTogICAgKi5wYXRjaCBmaWxlcyBhcmUgbm90IHJlY29nbml6ZWQgYXMgZGlmZiBmaWxlcy4gIEluIGEgc2NyaXB0IGEKCSAgICAiVkFSPXZhbCIgYXJndW1lbnQgYWZ0ZXIgImVudiIgaXNuJ3QgaWdub3JlZC4gIFBIUCBzY3JpcHRzIGFyZSBub3QKCSAgICByZWNvZ25pemVkLgpTb2x1dGlvbjogICBBZGQgKi5wYXRjaCBmb3IgZGlmZiBmaWxldHlwZXMuICBJZ25vcmUgIlZBUj12YWwiLiAgUmVjb2duaXplIFBIUAoJICAgIHNjcmlwdHMuIChSb21hbiBOZXVoYXVzZXIpCkZpbGVzOgkgICAgcnVudGltZS9maWxldHlwZS52aW0sIHJ1bnRpbWUvc2NyaXB0cy52aW0KClBhdGNoIDYuMS4wMjcKUHJvYmxlbTogICAgV2hlbiAnZm9sZGNvbHVtbicgaXMgbm9uLXplcm8sIGEgc3BlY2lhbCBjaGFyYWN0ZXIgdGhhdCB3cmFwcyB0bwoJICAgIHRoZSBuZXh0IGxpbmUgZGlzdHVyYnMgdGhlIGZvbGRjb2x1bW4gaGlnaGxpZ2h0aW5nLiAgKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpTb2x1dGlvbjogICBPbmx5IHVzZSB0aGUgc3BlY2lhbCBoaWdobGlnaHRpbmcgd2hlbiBkcmF3aW5nIHRleHQgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4wMjgKUHJvYmxlbTogICAgQ2xpZW50LXNlcnZlcjogV2hlbiBhIC0tcmVtb3RlLWV4cHIgZmFpbHMsIFZpbSBzdGlsbCBleGl0cyB3aXRoCgkgICAgc3RhdHVzIHplcm8uClNvbHV0aW9uOiAgIEV4aXQgVmltIHdpdGggYSBub24temVybyBzdGF0dXMgdG8gaW5kaWNhdGUgdGhlIC0tcmVtb3RlLWV4cHIKCSAgICBmYWlsZWQuIChUaG9tYXMgU2NvdHQgVXJiYW4pCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4xLjAyOQpQcm9ibGVtOiAgICBXaGVuICdlbmNvZGluZycgaXMgYW4gOC1iaXQgZW5jb2Rpbmcgb3RoZXIgdGhhbiAibGF0aW4xIiwgZWRpdGluZwoJICAgIGEgdXRmLTggb3Igb3RoZXIgVW5pY29kZSBmaWxlIHVzZXMgdGhlIHdyb25nIGNvbnZlcnNpb24uIChKYW4KCSAgICBGZWRhaykKU29sdXRpb246ICAgRG9uJ3QgdXNlIFVuaWNvZGUgdG8gbGF0aW4xIGNvbnZlcnNpb24gZm9yIDgtYml0IGVuY29kaW5ncyBvdGhlcgoJICAgIHRoYW4gImxhdGluMSIuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuMDMwClByb2JsZW06ICAgIFdoZW4gQ1RSTC1OIGlzIG1hcHBlZCBpbiBJbnNlcnQgbW9kZSwgaXQgaXMgYWxzbyBtYXBwZWQgYWZ0ZXIKCSAgICBDVFJMLVggQ1RSTC1OLCB3aGlsZSBpdCBpcyBub3QgbWFwcGVkIGFmdGVyIENUUkwtWCBDVFJMLUYuCgkgICAgKEtvbnRyYSBHZXJnZWx5KQpTb2x1dGlvbjogICBEb24ndCBtYXAgQ1RSTC1OIGFmdGVyIENUUkwtWCBDVFJMLU4uICBTYW1lIGZvciBDVFJMLVAuCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYwoKUGF0Y2ggNi4xLjAzMQpQcm9ibGVtOiAgICBDeWd3aW46IFh4ZCBjb3VsZCByZWFkIGEgZmlsZSBpbiB0ZXh0IG1vZGUgaW5zdGVhZCBvZiBiaW5hcnkgbW9kZS4KU29sdXRpb246ICAgVXNlICJyYiIgb3IgInJ0IiB3aGVuIG5lZWRlZC4gKFBhdm9sIEp1aGFzKQpGaWxlczoJICAgIHNyYy94eGQveHhkLmMKClBhdGNoIDYuMS4wMzIKUHJvYmxlbTogICAgQ2FuJ3Qgc3BlY2lmeSBhIHF1aWNrZml4IGZpbGUgd2l0aG91dCBqdW1waW5nIHRvIHRoZSBmaXJzdCBlcnJvci4KU29sdXRpb246ICAgQWRkIHRoZSAiOmNnZXRmaWxlIiBjb21tYW5kLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKRmlsZXM6CSAgICBydW50aW1lL2RvYy9pbmRleC50eHQsIHJ1bnRpbWUvZG9jL3F1aWNrZml4LnR4dCwgc3JjL2V4X2NtZHMuaCwKCSAgICBzcmMvcXVpY2tmaXguYwoKUGF0Y2ggNi4xLjAzMwpQcm9ibGVtOiAgICBHVUk6IFdoZW4gdGhlIHNlbGVjdGlvbiBpcyBsb3N0IGFuZCB0aGUgVmlzdWFsIGhpZ2hsaWdodGluZyBpcwoJICAgIGNoYW5nZWQgdG8gdW5kZXJsaW5pbmcsIHRoZSBjdXJzb3IgaXMgbGVmdCBpbiBhIGRpZmZlcmVudAoJICAgIHBvc2l0aW9uLiAoQ2hyaXN0aWFuIE1pY2hvbikKU29sdXRpb246ICAgVXBkYXRlIHRoZSBjdXJzb3IgcG9zaXRpb24gYWZ0ZXIgcmVkcmF3aW5nIHRoZSBzZWxlY3Rpb24uCkZpbGVzOgkgICAgc3JjL3VpLmMKClBhdGNoIDYuMS4wMzQKUHJvYmxlbTogICAgQSBDVlMgZGlmZiBmaWxlIGlzbid0IHJlY29nbml6ZWQgYXMgZGlmZiBmaWxldHlwZS4KU29sdXRpb246ICAgU2tpcCBsaW5lcyBzdGFydGluZyB3aXRoICI/ICIgYmVmb3JlIGNoZWNraW5nIGZvciBhbiAiSW5kZXg6IiBsaW5lLgpGaWxlczoJICAgIHJ1bnRpbWUvc2NyaXB0cy52aW0KClBhdGNoIDYuMS4wMzUgKGV4dHJhLCBkZXBlbmRzIG9uIDYuMS4wMTYpClByb2JsZW06ICAgIFdpbjMyOiBPdXRwdXR0aW5nIEhlYnJldyBvciBBcmFiaWMgdGV4dCBtaWdodCBoYXZlIGEgcHJvYmxlbSB3aXRoCgkgICAgcmV2ZXJzaW5nIG9uIE1TLVdpbmRvd3MgOTUvOTgvTUUuClNvbHV0aW9uOiAgIFJlc3RvcmUgdGhlIFJldk91dCgpIGZ1bmN0aW9uIGFuZCB1c2UgaXQgaW4gc3BlY2lmaWMgc2l0dWF0aW9ucwoJICAgIG9ubHkuIChSb24gQWFyb24pCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4xLjAzNgpQcm9ibGVtOiAgICBUaGlzIGNvbW1hbmQgbWF5IGNhdXNlIGEgY3Jhc2g6ICI6di8uLywvLy1qIi4gKFJhbGYgQXJlbnMpClNvbHV0aW9uOiAgIENvbXB1dGUgdGhlIHJpZ2h0IGxlbmd0aCBvZiB0aGUgcmVnZXhwIHdoZW4gaXQncyBlbXB0eS4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMS4wMzcKUHJvYmxlbTogICAgV2hlbiAnbGF6eXJlZHJhdycgaXMgc2V0LCBwcmVzc2luZyAicSIgYXQgdGhlIGhpdC1lbnRlciBwcm9tcHQKCSAgICBjYXVzZXMgYW4gaW5jb21wbGV0ZSByZWRyYXcgYW5kIHRoZSBjdXJzb3IgaXNuJ3QgcG9zaXRpb25lZC4KCSAgICAoTHVib21pciBIb3N0KQpTb2x1dGlvbjogICBPdmVycnVsZSAnbGF6eXJlZHJhdycgd2hlbiBkb19yZWRyYXcgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9tYWluLmMsIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjAzOApQcm9ibGVtOiAgICBNdWx0aS1ieXRlOiBXaGVuIGEgIjpzIiBjb21tYW5kIGNvbnRhaW5zIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIKCSAgICB3aGVyZSB0aGUgdHJhaWwgYnl0ZSBpcyAnficgdGhlIHRleHQgaXMgbWVzc2VkIHVwLgpTb2x1dGlvbjogICBQcm9wZXJseSBza2lwIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBpbiByZWd0aWxkZSgpIChNdXJhb2thIFRhcm8pCkZpbGVzOgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjEuMDM5ClByb2JsZW06ICAgIFdoZW4gZm9sZHMgYXJlIGRlZmluZWQgYW5kIHRoZSBmaWxlIGlzIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0sCgkgICAgcmVsb2FkaW5nIHRoZSBmaWxlIGRvZXNuJ3QgdXBkYXRlIHRoZSBmb2xkcy4gKEFuZGVycwoJICAgIFNjaGFjay1OaWVsc2VuKQpTb2x1dGlvbjogICBSZWNvbXB1dGUgdGhlIGZvbGRzIGFmdGVyIHJlbG9hZGluZyB0aGUgZmlsZS4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4wNDAKUHJvYmxlbTogICAgV2hlbiBjaGFuZ2luZyBkaXJlY3RvcnkgZm9yIGV4cGFuZGluZyBhIGZpbGUgbmFtZSBmYWlscyB0aGVyZSBpcwoJICAgIG5vIGVycm9yIG1lc3NhZ2UuClNvbHV0aW9uOiAgIEdpdmUgYW4gZXJyb3IgbWVzc2FnZSBmb3IgdGhpcyBzaXR1YXRpb24uICBEb24ndCBjaGFuZ2UgZGlyZWN0b3J5CgkgICAgaWYgd2UgY2FuJ3QgcmV0dXJuIHRvIHRoZSBvcmlnaW5hbCBkaXJlY3RvcnkuCkZpbGVzOgkgICAgc3JjL2RpZmYuYywgc3JjL2V4X2RvY21kLmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9taXNjMS5jLAoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMS4wNDEKUHJvYmxlbTogICAgIjpta3ZpbXJjIiBkb2Vzbid0IGhhbmRsZSBhIG1hcHBpbmcgdGhhdCBoYXMgYSBsZWFkaW5nIHNwYWNlIGluCgkgICAgdGhlIHJocy4gKERhdnlkIE9uZHJlamtvKQpTb2x1dGlvbjogICBJbnNlcnQgYSBDVFJMLVYgYmVmb3JlIHRoZSBsZWFkaW5nIHNwYWNlLiAgQWxzbyBkaXNwbGF5IGxlYWRpbmcKCSAgICBhbmQgdHJhaWxpbmcgd2hpdGUgc3BhY2UgaW4gPD4gZm9ybS4KRmlsZXM6CSAgICBzcmMvZ2V0Y2hhci5jLCBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjEuMDQyClByb2JsZW06ICAgICJ2aW0gLXIiIGRvZXNuJ3Qgc2hvdyBhbGwgbWF0Y2hlcyB3aGVuICd3aWxkaWdub3JlJyByZW1vdmVzIHN3YXAKCSAgICBmaWxlcy4gKFN0ZXZlIFRhbGxleSkKU29sdXRpb246ICAgS2VlcCBhbGwgbWF0Y2hpbmcgc3dhcCBmaWxlIG5hbWVzLgpGaWxlczoJICAgIHNyYy9tZW1saW5lLmMKClBhdGNoIDYuMS4wNDMKUHJvYmxlbTogICAgQWZ0ZXIgcGF0Y2ggNi4xLjA0MCBhIGZldyB3YXJuaW5ncyBhcmUgcHJvZHVjZWQuClNvbHV0aW9uOiAgIEFkZCBhIHR5cGUgY2FzdCB0byAiY2hhciAqIiBmb3IgbWNoX2NoZGlyKCkuIChBeGVsIEtpZWxob3JuKQpGaWxlczoJICAgIHNyYy9kaWZmLmMsIHNyYy9leF9kb2NtZC5jLmMsIHNyYy9taXNjMS5jLCBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuMDQ0IChleHRyYSkKUHJvYmxlbTogICAgR1VJOiBXaGVuIHVzaW5nIHRoZSBmaW5kL3JlcGxhY2UgZGlhbG9nIHdpdGggdGV4dCB0aGF0IGNvbnRhaW5zIGEKCSAgICBzbGFzaCwgYW4gaW52YWxpZCBzdWJzdGl0dXRlIGNvbW1hbmQgaXMgZ2VuZXJhdGVkLgoJICAgIE9uIFdpbjMyIGEgZmluZCBkb2Vzbid0IHdvcmsgd2hlbiAnaW5zZXJ0bW9kZScgaXMgc2V0LgpTb2x1dGlvbjogICBFc2NhcGUgc2xhc2hlcyB3aXRoIGEgYmFja3NsYXNoLgoJICAgIE1ha2UgdGhlIFdpbjMyLCBNb3RpZiBhbmQgR1RLIGd1aSB1c2UgY29tbW9uIGNvZGUgZm9yIHRoZQoJICAgIGZpbmQvcmVwbGFjZSBkaWFsb2cuCgkgICAgQWRkIHRoZSAibWF0Y2ggY2FzZSIgb3B0aW9uIGZvciBNb3RpZiBhbmQgR1RLLgpGaWxlczoJICAgIHNyYy9mZWF0dXJlLmgsIHNyYy9wcm90by9ndWkucHJvLCBzcmMvZ3VpLmMsIHNyYy9ndWkuaCwKCSAgICBzcmMvZ3VpX21vdGlmLmMsIHNyYy9ndWlfZ3RrLmMsIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMS4wNDUKUHJvYmxlbTogICAgSW4gVmlzdWFsIG1vZGUsIHdpdGggbG90cyBvZiBmb2xkcyBhbmQgJ3Njcm9sbG9mZicgc2V0IHRvIDk5OSwKCSAgICBtb3ZpbmcgdGhlIGN1cnNvciBkb3duIG5lYXIgdGhlIGVuZCBvZiB0aGUgZmlsZSBjYXVzZXMgdGhlIHRleHQgdG8KCSAgICBqdW1wIHVwIGFuZCBkb3duLiAoTHVib21pciBIb3N0KQpTb2x1dGlvbjogICBUYWtlIGludG8gYWNjb3VudCB0aGF0IHRoZSBjdXJzb3IgbWF5IGJlIG9uIHRoZSBsYXN0IGxpbmUgb2YgYQoJICAgIGNsb3NlZCBmb2xkLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKClBhdGNoIDYuMS4wNDYKUHJvYmxlbTogICAgWDExIEdVSTogIjpzZXQgbHNwPTIgZ2NyPW4tdi1pOmhvcjEtYmxpbmtvbjAiIGRyYXdzIGEgYmxhY2sKCSAgICByZWN0YW5nbGUuICAiOnNldCBsc3A9MiBnY3I9bi12LWk6aG9yMTAtYmxpbmtvbjAiIG1ha2VzIHRoZSBjdXJzb3IKCSAgICBkaXNhcHBlYXIuICAoTmFtIFN1bmdIeXVuKQpTb2x1dGlvbjogICBDb3JyZWN0bHkgY29tcHV0ZSB0aGUgaGVpZ2h0IG9mIHRoZSBob3Jpem9udGFsIGN1cnNvci4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYywgc3JjL2d1aV94MTEuYwoKUGF0Y2ggNi4xLjA0NwpQcm9ibGVtOiAgICBXaGVuIHNraXBwaW5nIGNvbW1hbmRzIGFmdGVyIGFuIGVycm9yIHdhcyBlbmNvdW50ZXJlZCwgZXhwcmVzc2lvbnMKCSAgICBmb3IgIjppZiIsICI7ZWxzZWlmIiBhbmQgIjp3aGlsZSIgYXJlIHN0aWxsIGV2YWx1YXRlZC4KU29sdXRpb246ICAgU2tpcCB0aGUgZXhwcmVzc2lvbiBhZnRlciBhbiBlcnJvci4gKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4wNDgKUHJvYmxlbTogICAgVW5pY29kZSAzLjIgY2hhbmdlcyB3ZXJlIG1pc3NpbmcgYSBmZXcgSGFuZ3VsIEphbW8gY2hhcmFjdGVycy4KU29sdXRpb246ICAgUmVjb2duaXplIG1vcmUgY2hhcmFjdGVycyBhcyBjb21wb3NpbmcgY2hhcmFjdGVycy4gKEp1bmdzaGlrIFNoaW4pCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMS4wNDkgKGV4dHJhKQpQcm9ibGVtOiAgICBPbiBhIDMyIGJpdCBkaXNwbGF5IGEgdmFsaWQgY29sb3IgbWF5IGNhdXNlIGFuIGVycm9yIG1lc3NhZ2UsCgkgICAgYmVjYXVzZSBpdHMgcGl4ZWwgdmFsdWUgaXMgbmVnYXRpdmUuIChDaHJpcyBQYXVsc29uLUVsbGlzKQpTb2x1dGlvbjogICBDaGVjayBmb3IgLTExMTExIGluc3RlYWQgb2YgdGhlIGNvbG9yIGJlaW5nIG5lZ2F0aXZlLgoJICAgIERvbid0IGFkZCBvbmUgdG8gdGhlIHBpeGVsIHZhbHVlLCAtMSBtYXkgYmUgdXNlZCBmb3Igd2hpdGUuCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL2d1aS5jLCBzcmMvZ3VpLmgsIHNyYy9ndWlfYW1pZ2EuYywKCSAgICBzcmMvZ3VpX2F0aGVuYS5jLCBzcmMvZ3VpX2Jlb3MuY2MsIHNyYy9ndWlfZ3RrX3gxMS5jLAoJICAgIHNyYy9ndWlfbWFjLmMsIHNyYy9ndWlfbW90aWYuYywgc3JjL2d1aV9waG90b24uYywKCSAgICBzcmMvZ3VpX3Jpc2Nvcy5jLCBzcmMvZ3VpX3cxNi5jLCBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jLAoJICAgIHNyYy9ndWlfeDExLmMsIHNyYy9tYnl0ZS5jLCBzcmMvc3ludGF4LmMKClBhdGNoIDYuMS4wNTAgKGRlcGVuZHMgb24gNi4xLjA0OSkKUHJvYmxlbTogICAgQWZ0ZXIgcGF0Y2ggNi4xLjA0OSB0aGUgbm9uLUdVSSB2ZXJzaW9uIGRvZXNuJ3QgY29tcGlsZS4KU29sdXRpb246ICAgQWRkIGFuICNpZmRlZiBGRUFUX0dVSS4gIChSb2JlcnQgU3RhbnRvbikKRmlsZXM6CSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMS4wNTEgKGRlcGVuZHMgb24gNi4xLjA0NCkKUHJvYmxlbTogICAgRG9lc24ndCBjb21waWxlIHdpdGggR1VJIGFuZCBzbWFsbCBmZWF0dXJlcy4KU29sdXRpb246ICAgQWRqdXN0IHRoZSAjaWYgZm9yIGdhX2FwcGVuZCgpLgpGaWxlczoJICAgIHNyYy9taXNjMi5jCgpQYXRjaCA2LjEuMDUyClByb2JsZW06ICAgIFVuaXg6IFRoZSBleGVjdXRhYmxlKCkgZnVuY3Rpb24gZG9lc24ndCB3b3JrIHdoZW4gdGhlICJ3aGljaCIKCSAgICBjb21tYW5kIGlzbid0IGF2YWlsYWJsZS4KU29sdXRpb246ICAgR28gdGhyb3VnaCAkUEFUSCBtYW51YWxseS4gIEFsc28gbWFrZXMgaXQgd29yayBmb3IgVk1TLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMS4wNTMKUHJvYmxlbTogICAgV2hlbiAnc2Vzc2lvbm9wdGlvbnMnIGNvbnRhaW5zICJnbG9iYWxzIiwgb3IgImxvY2Fsb3B0aW9ucyIgYW5kIGFuCgkgICAgb3B0aW9uIHZhbHVlIGNvbnRhaW5zIGEgbGluZSBicmVhaywgdGhlIHJlc3VsdGluZyBzY3JpcHQgaXMgd3JvbmcuClNvbHV0aW9uOiAgIFVzZSAiXG4iIGFuZCAiXHIiIGZvciBhIGxpbmUgYnJlYWsuIChTcmluYXRoIEF2YWRoYW51bGEpCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjA1NApQcm9ibGVtOiAgICBHVUk6IEEgbW91c2UgY2xpY2sgaXMgbm90IHJlY29nbml6ZWQgYXQgdGhlIG1vcmUgcHJvbXB0LCBldmVuIHdoZW4KCSAgICAnbW91c2UnIGluY2x1ZGVzICdyJy4KU29sdXRpb246ICAgUmVjb2duaXplIGEgbW91c2UgY2xpY2sgYXQgdGhlIG1vcmUgcHJvbXB0LgoJICAgIEFsc28gYWNjZXB0IGEgbW91c2UgY2xpY2sgaW4gdGhlIGxhc3QgbGluZSBpbiB0aGUgR1VJLgoJICAgIEFkZCAibWwiIGVudHJ5IGluICdtb3VzZXNoYXBlJy4KRmlsZXM6CSAgICBzcmMvZ3VpLmMsIHNyYy9tZXNzYWdlLmMsIHNyYy9taXNjMS5jLCBzcmMvbWlzYzIuYywgc3JjL29wdGlvbi5jLAoJICAgIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMS4wNTUKUHJvYmxlbTogICAgV2hlbiBlZGl0aW5nIGEgY29tcHJlc3NlZCBmaWxlLCBWaW0gd2lsbCBpbnNwZWN0IHRoZSBjb250ZW50cyB0bwoJICAgIGd1ZXNzIHRoZSBmaWxldHlwZS4KU29sdXRpb246ICAgRG9uJ3Qgc291cmNlIHNjcmlwdHMudmltIGZvciAuWiwgLmd6LCAuYnoyLCAuemlwIGFuZCAudGd6IGZpbGVzLgpGaWxlczoJICAgIHJ1bnRpbWUvZmlsZXR5cGUudmltLCBydW50aW1lL3BsdWdpbi9nemlwLnZpbQoKUGF0Y2ggNi4xLjA1NgpQcm9ibGVtOiAgICBMb2FkaW5nIHRoZSBTeW50YXggbWVudSBjYW4gdGFrZSBxdWl0ZSBhIGJpdCBvZiB0aW1lLgpTb2x1dGlvbjogICBBZGQgdGhlICJza2lwX3N5bnRheF9zZWxfbWVudSIgdmFyaWFibGUuICBXaGVuIGl0J3MgZGVmaW5lZCB0aGUKCSAgICBhdmFpbGFibGUgc3ludGF4IGZpbGVzIGFyZSBub3QgaW4gdGhlIFN5bnRheCBtZW51LgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2d1aS50eHQsIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMS4wNTcKUHJvYmxlbTogICAgQW4gRVNDIGluc2lkZSBhIG1hcHBpbmcgZG9lc24ndCB3b3JrIGFzIGRvY3VtZW50ZWQgd2hlbgoJICAgICdpbnNlcnRtb2RlJyBpcyBzZXQsIGl0IGRvZXMgZ28gZnJvbSBWaXN1YWwgb3IgTm9ybWFsIG1vZGUgdG8KCSAgICBJbnNlcnQgbW9kZS4gKEJlbmppIEZpc2hlcikKU29sdXRpb246ICAgTWFrZSBpdCB3b3JrIGFzIGRvY3VtZW50ZWQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuMDU4ClByb2JsZW06ICAgIFdoZW4gdGhlcmUgaXMgYSBjbG9zZWQgZm9sZCBqdXN0IGFib3ZlIHRoZSBmaXJzdCBsaW5lIGluIHRoZQoJICAgIHdpbmRvdywgdXNpbmcgQ1RSTC1YIENUUkwtWSBpbiBJbnNlcnQgbW9kZSB3aWxsIHNob3cgb25seSBvbmUgbGluZQoJICAgIG9mIHRoZSBmb2xkLiAoQWxleGV5IE1hcmluaWNoZXYpClNvbHV0aW9uOiAgIENvcnJlY3QgdGhlIHRvcGxpbmUgYnkgcHV0dGluZyBpdCBhdCB0aGUgc3RhcnQgb2YgdGhlIGZvbGQuCkZpbGVzOgkgICAgc3JjL21vdmUuYwoKUGF0Y2ggNi4xLjA1OQpQcm9ibGVtOiAgICAiOnJlZGlyID4gfi9maWxlIiBkb2Vzbid0IHdvcmsuIChTdGVwaGVuIFJhc2t1KQpTb2x1dGlvbjogICBFeHBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSAiOnJlZGlyID4iIGFyZ3VtZW50LgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMDYwClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQgYW5kICdzZWxlY3Rpb24nIGlzICJleGNsdXNpdmUiLCBkZWxldGluZwoJICAgIGEgY2hhcmFjdGVyIGp1c3QgYmVmb3JlIGEgdGFiIGNoYW5nZXMgdGhlIHRhYiBpbnRvIHNwYWNlcy4gIFVuZG8KCSAgICBkb2Vzbid0IHJlc3RvcmUgdGhlIHRhYi4gKEhlbG11dCBTdGllZ2xlcikKU29sdXRpb246ICAgRG9uJ3QgcmVwbGFjZSB0aGUgdGFiIGJ5IHNwYWNlcyB3aGVuIGl0J3Mgbm90IG5lZWRlZC4gIENvcnJlY3RseQoJICAgIHNhdmUgdGhlIGxpbmUgYmVmb3JlIGl0J3MgY2hhbmdlZC4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMS4wNjEKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzIHNldCBhbmQgJ3NlbGVjdGlvbicgaXMgImV4Y2x1c2l2ZSIsIGEgVmlzdWFsCgkgICAgc2VsZWN0aW9uIHRoYXQgZW5kcyBqdXN0IGFmdGVyIGEgdGFiIGRvZXNuJ3QgaW5jbHVkZSB0aGF0IHRhYiBpbgoJICAgIHRoZSBoaWdobGlnaHRpbmcuICAoSGVsbXV0IFN0aWVnbGVyKQpTb2x1dGlvbjogICBVc2UgYSBkaWZmZXJlbnQgd2F5IHRvIGV4Y2x1ZGUgdGhlIGNoYXJhY3RlciB1bmRlciB0aGUgY3Vyc29yLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjA2MgpQcm9ibGVtOiAgICBUaGUgIm1hbiIgZmlsZXR5cGUgcGx1Z2luIGRvZXNuJ3Qgd29yayBwcm9wZXJseSBvbiBTb2xhcmlzIDUuClNvbHV0aW9uOiAgIFVzZSBhIGRpZmZlcmVudCB3YXkgdG8gZGV0ZWN0IHRoYXQgIm1hbiAtcyIgc2hvdWxkIGJlIHVzZWQuIChIdWdoCgkgICAgU2Fzc2UpCkZpbGVzOgkgICAgcnVudGltZS9mdHBsdWdpbi9tYW4udmltCgpQYXRjaCA2LjEuMDYzClByb2JsZW06ICAgIEphdmEgaW5kZW50aW5nIGRvZXNuJ3Qgd29yayBwcm9wZXJseS4KU29sdXRpb246ICAgSWdub3JlIGNvbW1lbnRzIHdoZW4gY2hlY2tpbmcgaWYgdGhlIGluZGVudCBkb2Vzbid0IGluY3JlYXNlIGFmdGVyCgkgICAgYSAifSIuCkZpbGVzOgkgICAgcnVudGltZS9pbmRlbnQvamF2YS52aW0KClBhdGNoIDYuMS4wNjQKUHJvYmxlbTogICAgVGhlIFVSTHMgdGhhdCB0aGUgbmV0cncgcGx1Z2luIHJlY29nbml6ZWQgZm9yIGZ0cCBhbmQgcmNwIGRpZCBub3QKCSAgICBjb25mb3JtIHRvIHRoZSBzdGFuZGFyZCBtZXRob2Q6Ly9bdXNlckBdaG9zdFs6cG9ydF0vcGF0aC4KU29sdXRpb246ICAgVXNlIGZ0cDovL1t1c2VyQF1ob3N0W1s6I11wb3J0XS9wYXRoLCB3aGljaCBzdXBwb3J0cyBib3RoIHRoZSBuZXcKCSAgICBhbmQgdGhlIHByZXZpb3VzIHN0eWxlLiAgQWxzbyBhZGRlZCBhIGJpdCBvZiBkYXYvY2FkYXZlciBzdXBwb3J0LgoJICAgIChDaGFybGVzIENhbXBiZWxsKQpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL25ldHJ3LnZpbQoKUGF0Y2ggNi4xLjA2NQpQcm9ibGVtOiAgICBWTVM6IFRoZSBjb2xvcnNjaGVtZSwga2V5bWFwIGFuZCBjb21waWxlciBtZW51cyBhcmUgbm90IGZpbGxlZCBpbi4KU29sdXRpb246ICAgSWdub3JlIGNhc2Ugd2hlbiBsb29raW5nIGZvciAiLnZpbSIgZmlsZXMuIChDb2VuIEVuZ2VsYmFydHMpCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4xLjA2NiAoZXh0cmEpClByb2JsZW06ICAgIFdoZW4gY2FsbGluZyBzeXN0ZW0oKSBpbiBhIHBsdWdpbiByZWFkaW5nIHN0ZGluIGhhbmdzLgpTb2x1dGlvbjogICBEb24ndCBzZXQgdGhlIHRlcm1pbmFsIHRvIFJBVyBtb2RlIHdoZW4gaXQgd2Fzbid0IGluIFJBVyBtb2RlCgkgICAgYmVmb3JlIHRoZSBzeXN0ZW0oKSBjYWxsLgpGaWxlczoJICAgIHNyYy9vc19hbWlnYS5jLCBzcmMvb3NfbXNkb3MuYywgc3JjL29zX3Jpc2Nvcy5jLCBzcmMvb3NfdW5peC5jLAoJICAgIHNyYy9vc193aW4xNi5jLCBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4xLjA2NwpQcm9ibGVtOiAgICAiOnNldCB2aW1pbmZvKz1mMCIgaXMgbm90IHdvcmtpbmcuIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIENoZWNrIHRoZSAiZiIgZmxhZyBpbnN0ZWFkIG9mICInIiBpbiAndmltaW5mbycuCkZpbGVzOgkgICAgc3JjL21hcmsuYwoKUGF0Y2ggNi4xLjA2OApQcm9ibGVtOiAgICBXaGVuIGEgZmlsZSBpcyByZWxvYWRlZCBhZnRlciBpdCB3YXMgY2hhbmdlZCBvdXRzaWRlIG9mIFZpbSwgZGlmZgoJICAgIG1vZGUgaXNuJ3QgdXBkYXRlZC4gKE1pY2hhZWwgTmF1bWFubikKU29sdXRpb246ICAgSW52YWxpZGF0ZSB0aGUgZGlmZiBpbmZvIHNvIHRoYXQgaXQncyB1cGRhdGVkIHdoZW4gbmVlZGVkLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjA2OQpQcm9ibGVtOiAgICBXaGVuICdzaG93bWF0Y2gnIGlzIHNldCBhbmQgIiQiIGlzIGluICdjcG9wdGlvbnMnLCB1c2luZwoJICAgICJDfTxFc2M+IiBtYXkgZm9yZ2V0IHRvIHJlbW92ZSB0aGUgIiQiLiAoUHJlYmVuIEd1bGRiZXJnKQpTb2x1dGlvbjogICBSZXN0b3JlIGRvbGxhcl92Y29sIGFmdGVyIGRpc3BsYXlpbmcgdGhlIG1hdGNoaW5nIGN1cnNvciBwb3NpdGlvbi4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMS4wNzAgKGRlcGVuZHMgb24gNi4xLjA2MCkKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3Igc2lnbmVkL3Vuc2lnbmVkIG1pc21hdGNoLiAoTWlrZSBXaWxsaWFtcykKU29sdXRpb246ICAgQWRkIGEgdHlwZWNhc3QgdG8gaW50LgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4xLjA3MQpQcm9ibGVtOiAgICBXaGVuICdzZWxlY3Rpb24nIGlzIGV4Y2x1c2l2ZSwgZyBDVFJMLUcgaW4gVmlzdWFsIG1vZGUgY291bnRzIG9uZQoJICAgIGNoYXJhY3RlciB0b28gbXVjaC4gKERhdmlkIE5lY2FzKQpTb2x1dGlvbjogICBTdWJ0cmFjdCBvbmUgZnJvbSB0aGUgZW5kIHBvc2l0aW9uLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4xLjA3MgpQcm9ibGVtOiAgICBXaGVuIGEgZmlsZSBuYW1lIGluIGEgdGFncyBmaWxlIHN0YXJ0cyB3aXRoIGh0dHA6Ly8gb3Igc29tZXRoaW5nCgkgICAgZWxzZSBmb3Igd2hpY2ggdGhlcmUgaXMgYSBCdWZSZWFkQ21kIGF1dG9jb21tYW5kLCB0aGUgZmlsZSBpc24ndAoJICAgIG9wZW5lZCBhbnl3YXkuClNvbHV0aW9uOiAgIENoZWNrIGlmIHRoZXJlIGlzIGEgbWF0Y2hpbmcgQnVmUmVhZENtZCBhdXRvY29tbWFuZCBhbmQgdHJ5IHRvCgkgICAgb3BlbiB0aGUgZmlsZS4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9wcm90by9maWxlaW8ucHJvLCBzcmMvdGFnLmMKClBhdGNoIDYuMS4wNzMgKGV4dHJhKQpQcm9ibGVtOiAgICBCQzU6IENhbid0IGVhc2lseSBzcGVjaWZ5IGEgdGlueSwgc21hbGwsIG5vcm1hbCwgYmlnIG9yIGh1Z2UKCSAgICB2ZXJzaW9uLgpTb2x1dGlvbjogICBBbGxvdyBzZWxlY3RpbmcgdGhlIHZlcnNpb24gd2l0aCB0aGUgRkVBVFVSRVMgdmFyaWFibGUuIChBaml0CgkgICAgVGhha2thcikKRmlsZXM6CSAgICBzcmMvTWFrZV9iYzUubWFrCgpQYXRjaCA2LjEuMDc0ClByb2JsZW06ICAgIFdoZW4gJ2NkcGF0aCcgaW5jbHVkZXMgIi4uLy4uIiwgY2hhbmdpbmcgdG8gYSBkaXJlY3RvcnkgaW4gd2hpY2gKCSAgICB3ZSBjdXJyZW50bHkgYWxyZWFkeSBhcmUgZG9lc24ndCB3b3JrLiAgZmZfY2hlY2tfdmlzaXRlZCgpIGFkZHMKCSAgICB0aGUgZGlyZWN0b3J5IGJvdGggd2hlbiB1c2luZyBpdCBhcyB0aGUgcm9vdCBmb3Igc2VhcmNoaW5nIGFuZCBmb3IKCSAgICB0aGUgYWN0dWFsIG1hdGNoZXMuIChTdGVwaGVuIFJhc2t1KQpTb2x1dGlvbjogICBVc2UgYSBzZXBhcmF0ZSBsaXN0IGZvciB0aGUgYWxyZWFkeSBzZWFyY2hlZCBkaXJlY3Rvcmllcy4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4xLjA3NSAoZGVwZW5kcyBvbiA2LjEuMDcyKQpQcm9ibGVtOiAgICBDYW4ndCBjb21waWxlIGZpbGVpby5jIG9uIE1TLVdpbmRvd3MuClNvbHV0aW9uOiAgIEFkZCBhIGRlY2xhcmF0aW9uIGZvciB0aGUgInAiIHBvaW50ZXIuIChNYWRva2EgTWFjaGl0YW5pKQpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjA3NiAoZXh0cmEpClByb2JsZW06ICAgIE1hY2ludG9zaDogZXhwbG9yZXIgcGx1Z2luIGRvZXNuJ3Qgd29yayBvbiBNYWMgQ2xhc3NpYy4KCSAgICBJTUUgZG9lc24ndCB3b3JrLiAgRGlhbG9nIGJveGVzIGRvbid0IHdvcmsgb24gTWFjIE9TIFgKU29sdXRpb246ICAgRml4IGV4cGxvcmVyIHBsdWdpbiBhbmQga2V5IG1vZGlmaWVycy4gKEF4ZWwgS2llbGhvcm4pCgkgICAgRml4IElNRSBzdXBwb3J0LiAoTXVyYW9rYSBUYXJvKQoJICAgIERpc2FibGUgZGlhbG9nIGJveGVzLiAoQmVuamkgRmlzaGVyKQpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9mZWF0dXJlLmgsIHNyYy9ndWlfbWFjLmMsIHNyYy9vc19tYWMuYwoKUGF0Y2ggNi4xLjA3NwpQcm9ibGVtOiAgICBPbiBhIERlYmlhbiBzeXN0ZW0gd2l0aCBBQ0wgbGlua2luZyBmYWlscy4gKEx1Ym9taXIgSG9zdCkKU29sdXRpb246ICAgV2hlbiB0aGUgImFjbCIgbGlicmFyeSBpcyB1c2VkLCBjaGVjayBpZiB0aGUgImF0dHIiIGxpYnJhcnkgaXMKCSAgICBwcmVzZW50IGFuZCB1c2UgaXQuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvbGluay5zaAoKUGF0Y2ggNi4xLjA3OApQcm9ibGVtOiAgICBXaGVuIHVzaW5nICdmb2xkbWV0aG9kJyAibWFya2VyIiBhbmQgdGhlIGVuZCBtYXJrZXIgYXBwZWFycyBiZWZvcmUKCSAgICB0aGUgc3RhcnQgbWFya2VyIGluIHRoZSBmaWxlLCBubyBmb2xkIGlzIGZvdW5kLiAoTmF6cmkgUmFtbGl5KQpTb2x1dGlvbjogICBEb24ndCBsZXQgdGhlIGZvbGQgZGVwdGggZ28gbmVnYXRpdmUuCkZpbGVzOgkgICAgc3JjL2ZvbGQuYwoKUGF0Y2ggNi4xLjA3OQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICJzIiBpbiBWaXN1YWwgYmxvY2sgbW9kZSB3aXRoICd2aXJ0dWFsZWRpdCcgc2V0LCB3aGVuCgkgICAgdGhlIHNlbGVjdGVkIGJsb2NrIGlzIGFmdGVyIHRoZSBlbmQgb2Ygc29tZSBsaW5lcyB0aGUgd3JvbmcgdGV4dAoJICAgIGlzIGluc2VydGVkIGFuZCBzb21lIGxpbmVzIGFyZSBza2lwcGVkLiAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgSW5zZXJ0IHRoZSByaWdodCB0ZXh0IGFuZCBleHRlbmQgc2hvcnQgbGluZXMuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjEuMDgwClByb2JsZW06ICAgIFdoZW4gdXNpbmcgZ2NjIHdpdGggL3Vzci9sb2NhbCBhbHJlYWR5IGluIHRoZSBzZWFyY2ggcGF0aCwgYWRkaW5nCgkgICAgaXQgYWdhaW4gY2F1c2VzIHByb2JsZW1zLgpTb2x1dGlvbjogICBBZGp1c3QgY29uZmlndXJlLmluIHRvIGF2b2lkIGFkZGluZyAvdXNyL2xvY2FsL2luY2x1ZGUgYW5kCgkgICAgL3Vzci9sb2NhbC9saWIgd2hlbiB1c2luZyBHQ0MgYW5kIHRoZXkgYXJlIGFscmVhZHkgdXNlZC4gKEpvaGFubmVzCgkgICAgWmVsbG5lcikKRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMS4wODEKUHJvYmxlbTogICAgIjpoZWxwIENUUkwtXF9DVFJMLU4iIGRvZXNuJ3Qgd29yay4gIChDaHJpc3RpYW4gSi4gUm9iaW5zb24pClNvbHV0aW9uOiAgIERvdWJsZSB0aGUgYmFja3NsYXNoIHRvIGF2b2lkIHRoZSBzcGVjaWFsIG1lYW5pbmcgb2YgIlxfIi4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjEuMDgyClByb2JsZW06ICAgIE9uIE1TLVdpbmRvd3MgdGhlIHZpbXJjX2V4YW1wbGUudmltIHNjcmlwdCBpcyBzb3VyY2VkIGFuZCB0aGVuCgkgICAgbXN3aW4udmltLiAgVGhpcyBlbmFibGVzIHVzaW5nIHNlbGVjdCBtb2RlLCBidXQgc2luY2UgInAiIGlzCgkgICAgbWFwcGVkIGl0IGRvZXNuJ3QgcmVwbGFjZSB0aGUgc2VsZWN0aW9uLgpTb2x1dGlvbjogICBSZW1vdmUgdGhlIG1hcHBpbmcgb2YgInAiIGZyb20gdmltcmNfZXhhbXBsZS52aW0sIGl0J3Mgb2Jzb2xldGUuCgkgICAgKFZsYWQgU2FuZHJpbmkpCkZpbGVzOgkgICAgcnVudGltZS92aW1yY19leGFtcGxlLnZpbQoKUGF0Y2ggNi4xLjA4MwpQcm9ibGVtOiAgICBXaGVuICRMQU5HIGlzICJzayIgb3IgInNrX3NrIiwgdGhlIFNsb3ZhayBtZW51IGZpbGUgaXNuJ3QgZm91bmQuCgkgICAgKE1hcnRpbiBMYWNrbykKU29sdXRpb246ICAgR3Vlc3MgdGhlIHJpZ2h0IG1lbnUgZmlsZSBiYXNlZCBvbiB0aGUgc3lzdGVtLgpGaWxlczoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X3NrX3NrLnZpbQoKUGF0Y2ggNi4xLjA4NCAoZGVwZW5kcyBvbiA2LjEuMDgwKQpQcm9ibGVtOiAgICAiaW5jbHVkZSIgYW5kICJsaWIiIGFyZSBtaXhlZCB1cCB3aGVuIGNoZWNraW5nIHRoZSBkaXJlY3RvcmllcyBnY2MKCSAgICBhbHJlYWR5IHNlYXJjaGVzLgpTb2x1dGlvbjogICBTd2FwIHRoZSB2YXJpYWJsZSBuYW1lcy4gKFN1bkhvIEtpbSkKRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMS4wODUKUHJvYmxlbTogICAgV2hlbiB1c2luZyBDVFJMLU8gQ1RSTC1cIENUUkwtTiBmcm9tIEluc2VydCBtb2RlLCB0aGUgZGlzcGxheWVkCgkgICAgbW9kZSAiKGluc2VydCkiIGlzbid0IHJlbW92ZWQuIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIENsZWFyIHRoZSBjb21tYW5kIGxpbmUuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuMDg2IChkZXBlbmRzIG9uIDYuMS4wNDkpClByb2JsZW06ICAgIFRoZSBndWlmZyBjb2xvciBmb3IgQ3Vyc29ySU0gZG9lc24ndCB0YWtlIGVmZmVjdC4KU29sdXRpb246ICAgVXNlIHRoZSBmb3JlZ3JvdW5kIGNvbG9yIHdoZW4gaXQncyBkZWZpbmVkLiAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4xLjA4NwpQcm9ibGVtOiAgICBBIHRoZXNhdXJ1cyB3aXRoIEphcGFuZXNlIGNoYXJhY3RlcnMgaGFzIHByb2JsZW1zIHdpdGggY2hhcmFjdGVycwoJICAgIGluIGRpZmZlcmVudCB3b3JkIGNsYXNzZXMuClNvbHV0aW9uOiAgIE9ubHkgc2VwYXJhdGUgd29yZHMgd2l0aCBzaW5nbGUtYnl0ZSBub24td29yZCBjaGFyYWN0ZXJzLgoJICAgIChNdXJhb2thIFRhcm8pCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4xLjA4OCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBubyBkZWJ1Z2dpbmcgaW5mbyBpcyBnZW5lcmF0ZWQuICBUYWdzIGZpbGUgZXhjbHVkZXMgLmNwcAoJICAgIGZpbGVzLgpTb2x1dGlvbjogICBBZGQgIi9tYXAiIHRvIGNvbXBpbGVyIGZsYWdzLiAgQWRkICIqLmNwcCIgdG8gY3RhZ3MgY29tbWFuZC4KCSAgICAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9NYWtlX212Yy5tYWsKClBhdGNoIDYuMS4wODkKUHJvYmxlbTogICAgT24gQlNESSBzeXN0ZW1zIHRoZXJlIGlzIG5vIHNzX3NwIGZpZWxkIGluIHN0YWNrX3QuIChSb2JlcnQgSmFuKQpTb2x1dGlvbjogICBVc2Ugc3NfYmFzZSBpbnN0ZWFkLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2NvbmZpZy5oLmluLAoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMS4wOTAKUHJvYmxlbTogICAgQ1RSTC1GIGdldHMgc3R1Y2sgd2hlbiAnc2Nyb2xsb2ZmJyBpcyBub24temVybyBhbmQgdGhlcmUgaXMgYSBtaXgKCSAgICBvZiBsb25nIHdyYXBwaW5nIGxpbmVzIGFuZCBhIG5vbi13cmFwcGluZyBsaW5lLgpTb2x1dGlvbjogICBDaGVjayB0aGF0IENUUkwtRiBzY3JvbGxzIGF0IGxlYXN0IG9uZSBsaW5lLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKClBhdGNoIDYuMS4wOTEKUHJvYmxlbTogICAgR1RLOiBDYW4ndCBjaGFuZ2UgcHJlZWRpdHN0YXRlIHdpdGhvdXQgc2V0dGluZyAnaW1hY3RpdmF0ZWtleScuClNvbHV0aW9uOiAgIEFkZCBzb21lIGNvZGUgdG8gY2hhbmdlIHByZWVkaXRzdGF0ZSBmb3IgT25UaGVTcG90LiAoWWFzdWhpcm8KCSAgICBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMS4wOTIKUHJvYmxlbTogICAgIjptYXBjbGVhciA8YnVmZmVyPiIgZG9lc24ndCB3b3JrLiAoU3Jpa2FudGggQWRheWFwYWxhbSkKU29sdXRpb246ICAgQWxsb3cgYW4gYXJndW1lbnQgZm9yICI6bWFwY2xlYXIiLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmgKClBhdGNoIDYuMS4wOTMgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWMgYW5kIE1TLVdpbmRvd3MgR1VJOiB3aGVuIHNjcm9sbGluZyB3aGlsZSAiOnMiIGlzIHdvcmtpbmcgdGhlCgkgICAgcmVzdWx0cyBjYW4gYmUgbWVzc2VkIHVwLCBiZWNhdXNlIHRoZSBjdXJzb3IgaXMgbW92ZWQuClNvbHV0aW9uOiAgIERpc2FsbG93IGRpcmVjdCBzY3JvbGxpbmcgd2hlbiBub3Qgd2FpdGluZyBmb3IgYSBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYywgc3JjL2d1aV93MTYuYywgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4xLjA5NApQcm9ibGVtOiAgICBDeWd3aW46IFBhc3NpbmcgYSBmaWxlIG5hbWUgdGhhdCBoYXMgYmFja3NsYXNoZXMgaXNuJ3QgaGFuZGxlZAoJICAgIHZlcnkgd2VsbC4KU29sdXRpb246ICAgQ29udmVydCBmaWxlIG5hbWUgYXJndW1lbnRzIHRvIFBvc2l4LiAgKENocmlzIE1ldGNhbGYpCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4xLjA5NQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHNpZ25zIGNhbiBmcmVlIGFuIGl0ZW0gb24gdGhlIHN0YWNrLgoJICAgIE92ZXJydWxpbmcgc2lnbiBjb2xvcnMgZG9lc24ndCB3b3JrLiAoU3Jpa2FudGggU2Fua2FyYW4pClNvbHV0aW9uOiAgIERvbid0IGZyZWUgdGhlIGl0ZW0gb24gdGhlIHN0YWNrLiAgVXNlIE5VTEwgaW5zdGVhZCBvZiAibm9uZSIgZm9yCgkgICAgdGhlIHZhbHVlIG9mIHRoZSBjb2xvci4KRmlsZXM6CSAgICBzcmMvZ3VpX3gxMS5jCgpQYXRjaCA2LjEuMDk2ClByb2JsZW06ICAgIFdoZW4gZXJhc2luZyB0aGUgcmlnaHQgaGFsdmUgb2YgYSBkb3VibGUtYnl0ZSBjaGFyYWN0ZXIsIGl0IG1heQoJICAgIGNhdXNlIGZ1cnRoZXIgY2hhcmFjdGVycyB0byBiZSBlcmFzZWQuIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIE1ha2Ugc3VyZSBvbmx5IG9uZSBjaGFyYWN0ZXIgaXMgZXJhc2VkLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjA5NyAoZGVwZW5kcyBvbiA2LjEuMDkwKQpQcm9ibGVtOiAgICBXaGVuICdzY3JvbGxvZmYnIGlzIHNldCB0byBhIGh1Z2UgdmFsdWUsIENUUkwtRiBhdCB0aGUgZW5kIG9mIHRoZQoJICAgIGZpbGUgc2Nyb2xscyBvbmUgbGluZS4gKEx1Ym9taXIgSG9zdCkKU29sdXRpb246ICAgRG9uJ3Qgc2Nyb2xsIHdoZW4gQ1RSTC1GIGRldGVjdHMgdGhlIGVuZC1vZi1maWxlLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKClBhdGNoIDYuMS4wOTgKUHJvYmxlbTogICAgTVMtV2luZG93czogV2hlbiB0aGUgeHhkIHByb2dyYW0gaXMgdW5kZXIgImM6XHByb2dyYW0gZmlsZXMiIHRoZQoJICAgICJDb252ZXJ0IHRvIEhleCIgbWVudSBkb2Vzbid0IHdvcmsuIChCcmlhbiBNYXRoaXMpClNvbHV0aW9uOiAgIFB1dCB0aGUgcGF0aCB0byB4eGQgaW4gZG91YmxlIHF1b3Rlcy4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjEuMDk5ClByb2JsZW06ICAgIE1lbW9yeSBjb3JydXB0ZWQgd2hlbiBjbG9zaW5nIGEgZm9sZCB3aXRoIG1vcmUgdGhhbiA5OTk5OSBsaW5lcy4KU29sdXRpb246ICAgQWxsb2NhdGUgbW9yZSBzcGFjZSBmb3IgdGhlIGZvbGQgdGV4dC4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4xMDAgKGV4dHJhLCBkZXBlbmRzIG9uIDYuMS4wODgpClByb2JsZW06ICAgIFdpbjMyOiBWQzUgYW5kIGVhcmxpZXIgZG9uJ3Qgc3VwcG9ydCB0aGUgL21hcGluZm8gb3B0aW9uLgpTb2x1dGlvbjogICBBZGQgIi9tYXBpbmZvIiBvbmx5IHdoZW4gIk1BUD1saW5lcyIgaXMgc3BlY2lmaWVkLiAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9NYWtlX212Yy5tYWsKClBhdGNoIDYuMS4xMDEKUHJvYmxlbTogICAgQWZ0ZXIgdXNpbmcgIjpvcHRpb25zIiB0aGUgdGFic3RvcCBvZiBhIG5ldyB3aW5kb3cgaXMgMTUuICBFbnRyeQoJICAgIGluICI6b3B0aW9ucyIgd2luZG93IGZvciAnYXV0b3dyaXRlYWxsJyBpcyB3cm9uZy4gKEFudG9pbmUgSgoJICAgIE1lY2hlbHluY2spICBDYW4ndCBpbnNlcnQgYSBzcGFjZSBpbiBhbiBvcHRpb24gdmFsdWUuClNvbHV0aW9uOiAgIFVzZSAiOnNldGxvY2FsIiBpbnN0ZWFkIG9mICI6c2V0Ii4gIENoYW5nZSAiYXciIHRvICJhd2EiLgoJICAgIERvbid0IG1hcCBzcGFjZSBpbiBJbnNlcnQgbW9kZS4KRmlsZXM6CSAgICBydW50aW1lL29wdHdpbi52aW0KClBhdGNoIDYuMS4xMDIKUHJvYmxlbTogICAgVW5wcmludGFibGUgYW5kIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBpbiBhIHN0YXR1c2xpbmUgaXRlbSBhcmUgbm90CgkgICAgdHJ1bmNhdGVkIGNvcnJlY3RseS4gKFlhc3VoaXJvIE1hdHN1bW90bykKU29sdXRpb246ICAgQ291bnQgdGhlIHdpZHRoIG9mIGNoYXJhY3RlcnMgaW5zdGVhZCBvZiB0aGUgbnVtYmVyIG9mIGJ5dGVzLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjEwMwpQcm9ibGVtOiAgICBBIGZ1bmN0aW9uIHJldHVybmluZyBmcm9tIGEgd2hpbGUgbG9vcCwgd2l0aCAndmVyYm9zZScgc2V0IHRvIDEyCgkgICAgb3IgaGlnaGVyLCBkb2Vzbid0IG1lbnRpb24gdGhlIHJldHVybiB2YWx1ZS4gIEEgZnVuY3Rpb24gd2l0aCB0aGUKCSAgICAnYWJvcnQnIGF0dHJpYnV0ZSBtYXkgcmV0dXJuIC0xIHdoaWxlIHRoZSB2ZXJib3NlIG1lc3NhZ2Ugc2F5cwoJICAgIHNvbWV0aGluZyBlbHNlLgpTb2x1dGlvbjogICBNb3ZlIHRoZSB2ZXJib3NlIG1lc3NhZ2UgYWJvdXQgcmV0dXJuaW5nIGZyb20gYSBmdW5jdGlvbiB0bwoJICAgIGNhbGxfZnVuYygpLiAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMTA0ClByb2JsZW06ICAgIEdDQyAzLjEgYXBwZWFycyB0byBoYXZlIGFuIG9wdGltaXplciBwcm9ibGVtIHRoYXQgbWFrZXMgdGVzdCAzCgkgICAgY3Jhc2guClNvbHV0aW9uOiAgIEZvciBHQ0MgMy4xIGFkZCAtZm5vLXN0cmVuZ3RoLXJlZHVjZSB0byBhdm9pZCB0aGUgb3B0aW1pemVyIGJ1Zy4KCSAgICBGaWx0ZXIgb3V0IGV4dHJhIGluZm8gZnJvbSAiZ2NjIC0tdmVyc2lvbiIuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjEuMTA1ClByb2JsZW06ICAgIFdpbjMyOiBUaGUgZGVmYXVsdCBmb3IgJ3NoZWxscGlwZScgZG9lc24ndCByZWRpcmVjdCBzdGRlcnIuIChEaW9uCgkgICAgTmljb2xhYXMpClNvbHV0aW9uOiAgIFJlZGlyZWN0IHN0ZGVyciwgZGVwZW5kaW5nIG9uIHRoZSBzaGVsbCAobGlrZSBmb3IgJ3NoZWxscmVkaXInKS4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMS4xMDYKUHJvYmxlbTogICAgVGhlIG1hemUgcHJvZ3JhbSBjcmFzaGVzLgpTb2x1dGlvbjogICBDaGFuZ2UgIjExIiB0byAiMjciIGFuZCBpdCB3b3Jrcy4gKEdyZWcgUm9lbG9mcykKRmlsZXM6CSAgICBydW50aW1lL21hY3Jvcy9tYXplL21hemVhbnNpLmMKClBhdGNoIDYuMS4xMDcKUHJvYmxlbTogICAgV2hlbiAnbGlzdCcgaXMgc2V0IHRoZSBjdXJyZW50IGxpbmUgaW4gdGhlIGVycm9yIHdpbmRvdyBtYXkgYmUKCSAgICBkaXNwbGF5ZWQgd3JvbmcuIChNdXJhb2thIFRhcm8pClNvbHV0aW9uOiAgIERvbid0IGNvbnRpbnVlIHRoZSBsaW5lIGFmdGVyIHRoZSAkIGhhcyBiZWVuIGRpc3BsYXllZCBhbmQgdGhlCgkgICAgcmlnaHRtb3N0IGNvbHVtbiBpcyByZWFjaGVkLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjEwOApQcm9ibGVtOiAgICBXaGVuIGludGVycnVwdGluZyBhIGZpbHRlciBjb21tYW5kIHN1Y2ggYXMgIiEhc2xlZXAgMjAiIHRoZSBmaWxlCgkgICAgYmVjb21lcyByZWFkLW9ubHkuIChNYXJrIEJyYWRlcikKU29sdXRpb246ICAgT25seSBzZXQgdGhlIHJlYWQtb25seSBmbGFnIHdoZW4gb3BlbmluZyBhIGJ1ZmZlciBpcyBpbnRlcnJ1cHRlZC4KCSAgICBXaGVuIHRoZSBzaGVsbCBjb21tYW5kIHdhcyBpbnRlcnJ1cHRlZCwgcmVhZCB0aGUgb3V0cHV0IHRoYXQgd2FzCgkgICAgcHJvZHVjZWQgc28gZmFyLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMsIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjEwOQpQcm9ibGVtOiAgICBXaGVuICdlYWRpcmVjdGlvbicgaXMgImhvciIsIHVzaW5nIENUUkwtVyA9IGRvZXNuJ3QgZXF1YWxpemUgdGhlCgkgICAgd2luZG93IGhlaWdodHMuIChSb21hbiBOZXVoYXVzZXIpClNvbHV0aW9uOiAgIElnbm9yZSAnZWFkaXJlY3Rpb24nIGZvciBDVFJMLVcgPQpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4xLjExMApQcm9ibGVtOiAgICBXaGVuIHVzaW5nICI6YmFkZCBmaWxlIiB3aGVuICJmaWxlIiBpcyBhbHJlYWR5IHByZXNlbnQgYnV0IG5vdAoJICAgIGxpc3RlZCwgaXQgc3RheXMgdW5saXN0ZWQuIChEYXZpZCBGcmV5KQpTb2x1dGlvbjogICBTZXQgJ2J1Zmxpc3RlZCcuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuMTExClByb2JsZW06ICAgIEl0J3Mgbm90IHBvc3NpYmxlIHRvIGRldGVjdCB1c2luZyB0aGUgVW5peCBzb3VyY2VzIG9uIFdpbjMyIG9yIE1hYy4KU29sdXRpb246ICAgQWRkIGhhcygibWFjdW5peCIpIGFuZCBoYXMoIndpbjMydW5peCIpLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMTEyClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjphcmdkbyIsICI6YnVmZG8iIG9yICI6d2luZG8iLCBDVFJMLU8gZG9lc24ndCBnbyB0bwoJICAgIHRoZSBjdXJzb3IgcG9zaXRpb24gZnJvbSBiZWZvcmUgdGhpcyBjb21tYW5kIGJ1dCBldmVyeSBwb3NpdGlvbgoJICAgIHdoZXJlIHRoZSBhcmd1bWVudCB3YXMgZXhlY3V0ZWQuClNvbHV0aW9uOiAgIE9ubHkgcmVtZW1iZXIgdGhlIGN1cnNvciBwb3NpdGlvbiBmcm9tIGJlZm9yZSB0aGUgIjphcmdkbyIsCgkgICAgIjpidWZkbyIgYW5kICI6d2luZG8iLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jLCBzcmMvbWFyay5jCgpQYXRjaCA2LjEuMTEzClByb2JsZW06ICAgICI6YnVmZG8gYndpcGUiIG9ubHkgd2lwZXMgb3V0IGhhbGYgdGhlIGJ1ZmZlcnMuICAoUm9tYW4gTmV1aGF1c2VyKQpTb2x1dGlvbjogICBEZWNpZGUgd2hhdCBidWZmZXIgdG8gZ28gdG8gbmV4dCBiZWZvcmUgZXhlY3V0aW5nIHRoZSBjb21tYW5kLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjEuMTE0ClByb2JsZW06ICAgICI6cHl0aG9uIGltcG9ydCB2aW0iLCAiOnB5dGhvbiB2aW0uY3VycmVudC5idWZmZXJbMDowXSA9IFtdIiBnaXZlcwoJICAgIGEgbGFsbG9jKDApIGVycm9yLiAoQ2hyaXMgU291dGhlcm4pClNvbHV0aW9uOiAgIERvbid0IGFsbG9jYXRlIGFuIGFycmF5IHdoZW4gaXQncyBzaXplIGlzIHplcm8uCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjEuMTE1ClByb2JsZW06ICAgICJkYXMiIG9uIHRoZSB3aGl0ZSBzcGFjZSBhdCB0aGUgZW5kIG9mIGEgcGFyYWdyYXBoIGRvZXMgbm90IGRlbGV0ZQoJICAgIHRoZSAiLiIgdGhlIHNlbnRlbmNlIGVuZHMgd2l0aC4KU29sdXRpb246ICAgRG9uJ3QgZXhjbHVkZSB0aGUgbGFzdCBjaGFyYWN0ZXIgd2hlbiBpdCBpcyBub3Qgd2hpdGUgc3BhY2UuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjEuMTE2ClByb2JsZW06ICAgIFdoZW4gJ2VuZG9mbGluZScgaXMgY2hhbmdlZCB3aGlsZSAnYmluYXJ5JyBpcyBzZXQgYSBmaWxlIHNob3VsZCBiZQoJICAgIGNvbnNpZGVyZWQgbW9kaWZpZWQuIChPbGFmIEJ1ZGRlbmhhZ2VuKQpTb2x1dGlvbjogICBSZW1lbWJlciB0aGUgJ2VvbCcgdmFsdWUgd2hlbiBlZGl0aW5nIHN0YXJ0ZWQgYW5kIGNvbnNpZGVyIHRoZQoJICAgIGZpbGUgY2hhbmdlZCB3aGVuIHRoZSBjdXJyZW50IHZhbHVlIGlzIGRpZmZlcmVudCBhbmQgJ2JpbmFyeScgaXMKCSAgICBzZXQuICBBbHNvIGZpeCB0aGF0IHRoZSB3aW5kb3cgdGl0bGUgaXNuJ3QgdXBkYXRlZCB3aGVuICdmZicgb3IKCSAgICAnYmluJyBjaGFuZ2VzLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYywgc3JjL3N0cnVjdHMuaAoKUGF0Y2ggNi4xLjExNwpQcm9ibGVtOiAgICBTbWFsbCBwcm9ibGVtIHdpdGggZWRpdGluZyBhIGZpbGUgb3ZlciBmdHA6IGFuZCB3aXRoIEN5Z3dpbi4KU29sdXRpb246ICAgUmVtb3ZlIGEgZG90IGZyb20gYSAiOm5vcm1hbCIgY29tbWFuZC4gIFVzZSAiY3lnZHJpdmUiIHdoZXJlCgkgICAgYXBwcm9wcmlhdGUuICAoQ2hhcmxlcyBDYW1wYmVsbCkKRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9uZXRydy52aW0KClBhdGNoIDYuMS4xMTgKUHJvYmxlbTogICAgV2hlbiBhIGZpbGUgaW4gZGlmZiBtb2RlIGlzIHJlbG9hZGVkIGJlY2F1c2UgaXQgY2hhbmdlZCBvdXRzaWRlCgkgICAgb2YgVmltLCBvdGhlciB3aW5kb3dzIGluIGRpZmYgbW9kZSBhcmUgbm90IGFsd2F5cyB1cGRhdGVkLgoJICAgIChNaWNoYWVsIE5hdW1hbm4pClNvbHV0aW9uOiAgIEFmdGVyIHJlbG9hZGluZyBhIGZpbGUgaW4gZGlmZiBtb2RlIG1hcmsgYWxsIHdpbmRvd3MgaW4gZGlmZiBtb2RlCgkgICAgZm9yIHJlZHJhdy4KRmlsZXM6CSAgICBzcmMvZGlmZi5jCgpQYXRjaCA2LjEuMTE5IChleHRyYSkKUHJvYmxlbTogICAgV2l0aCB0aGUgU25pZmYgaW50ZXJmYWNlLCB1c2luZyBTbmlmZiA0LjAuWCBvbiBIUC1VWCwgdGhlcmUgbWF5IGJlCgkgICAgYSBjcmFzaCB3aGVuIGNvbm5lY3RpbmcgdG8gU25pZmYuClNvbHV0aW9uOiAgIEluaXRpYWxpemUgc25pZmZfcnFfc2VwIHN1Y2ggdGhhdCBpdHMgdmFsdWUgY2FuIGJlIGNoYW5nZWQuCgkgICAgKE1hcnRpbiBFZ2xvZmYpCkZpbGVzOgkgICAgc3JjL2lmX3NuaWZmLmMKClBhdGNoIDYuMS4xMjAgKGRlcGVuZHMgb24gNi4xLjA5NykKUHJvYmxlbTogICAgV2hlbiAnc2Nyb2xsb2ZmJyBpcyBub24temVybyBhbmQgdGhlcmUgYXJlIGZvbGRzLCBDVFJMLUYgYXQgdGhlCgkgICAgZW5kIG9mIHRoZSBmaWxlIHNjcm9sbHMgcGFydCBvZiBhIGNsb3NlZCBmb2xkLiAgKEx1Ym9taXIgSG9zdCkKU29sdXRpb246ICAgQWRqdXN0IHRoZSBmaXJzdCBsaW5lIHRvIHRoZSBzdGFydCBvZiBhIGZvbGQuCkZpbGVzOgkgICAgc3JjL21vdmUuYwoKUGF0Y2ggNi4xLjEyMSAoZGVwZW5kcyBvbiA2LjEuMDk4KQpQcm9ibGVtOiAgICBXaGVuIHN0YXJ0aW5nIFNlbGVjdCBtb2RlIGZyb20gSW5zZXJ0IG1vZGUsIHRoZW4gdXNpbmcgdGhlIFBhc3RlCgkgICAgbWVudSBlbnRyeSwgdGhlIGN1cnNvciBpcyBsZWZ0IGJlZm9yZSB0aGUgbGFzdCBwYXN0ZWQgY2hhcmFjdGVyLgoJICAgIChNYXJpbyBTY2h3ZWlnbGVyKQpTb2x1dGlvbjogICBTZXQgdGhlIGN1cnNvciBmb3IgSW5zZXJ0IG1vZGUgb25lIGNoYXJhY3RlciB0byB0aGUgcmlnaHQuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4xLjEyMgpQcm9ibGVtOiAgICAiOmZpbGUgbmFtZSIgY3JlYXRlcyBhIG5ldyBidWZmZXIgdG8gaG9sZCB0aGUgb2xkIGJ1ZmZlciBuYW1lLAoJICAgIHdoaWNoIGJlY29tZXMgdGhlIGFsdGVybmF0ZSBmaWxlLiAgVGhpcyBidWZmZXIgaXMgdW5leHBlY3RlZGx5CgkgICAgbGlzdGVkLgpTb2x1dGlvbjogICBDcmVhdGUgdGhlIGJ1ZmZlciBmb3IgdGhlIGFsdGVybmF0ZSBuYW1lIHVubGlzdGVkLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMS4xMjMKUHJvYmxlbTogICAgQSAiOm1hdGNoIiBjb21tYW5kIHdpdGggbW9yZSB0aGFuIG9uZSBhcmd1bWVudCBkb2Vzbid0IHJlcG9ydCBhbgoJICAgIGVycm9yLgpTb2x1dGlvbjogICBDaGVjayBmb3IgZXh0cmEgY2hhcmFjdGVycy4gKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4xMjQKUHJvYmxlbTogICAgV2hlbiB0cnlpbmcgdG8gZXhpdCBhbmQgdGhlcmUgaXMgYSBoaWRkZW4gYnVmZmVyIHRoYXQgaGFkICdlb2wnCgkgICAgb2ZmIGFuZCAnYmluJyBzZXQgZXhpdGluZyBpc24ndCBwb3NzaWJsZS4gKEpvaG4gTWNHb3dhbikKU29sdXRpb246ICAgU2V0IGJfc3RhcnRfZW9sIHdoZW4gY2xlYXJpbmcgdGhlIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4xMjUKUHJvYmxlbTogICAgRXhwbG9yZXIgcGx1Z2luIGFza3MgZm9yIHNhdmluZyBhIG1vZGlmaWVkIGJ1ZmZlciBldmVuIHdoZW4gaXQncwoJICAgIG9wZW4gaW4gYW5vdGhlciB3aW5kb3cgYXMgd2VsbC4KU29sdXRpb246ICAgQ291bnQgdGhlIG51bWJlciBvZiB3aW5kb3dzIHVzaW5nIHRoZSBidWZmZXIuCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZXhwbG9yZXIudmltCgpQYXRjaCA2LjEuMTI2ClByb2JsZW06ICAgIEFkZGluZyB0aGUgY2hvaWNlcyBpbiB0aGUgc3ludGF4IG1lbnUgaXMgY29uc3VtaW5nIG11Y2ggb2YgdGhlCgkgICAgc3RhcnR1cCB0aW1lIG9mIHRoZSBHVUkgd2hpbGUgaXQncyBub3Qgb2Z0ZW4gdXNlZC4KU29sdXRpb246ICAgT25seSBhZGQgdGhlIGNob2ljZXMgd2hlbiB0aGUgdXNlciB3YW50cyB0byB1c2UgdGhlbS4KRmlsZXM6CSAgICBNYWtlZmlsZSwgcnVudGltZS9tYWtlbWVudS52aW0sIHJ1bnRpbWUvbWVudS52aW0sCgkgICAgcnVudGltZS9zeW5tZW51LnZpbSwgc3JjL01ha2VmaWxlCgpQYXRjaCA2LjEuMTI3ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIi0tcmVtb3RlIGZpbGUiIGFuZCB0aGUgc2VydmVyIGhhcyAnaW5zZXJ0bW9kZScgc2V0LAoJICAgIGNvbW1hbmRzIGFyZSBpbnNlcnRlZCBpbnN0ZWFkIG9mIGJlaW5nIGV4ZWN1dGVkLiAoTmlrbGFzIFZvbGJlcnMpClNvbHV0aW9uOiAgIEdvIHRvIE5vcm1hbCBtb2RlIGFnYWluIGFmdGVyIHRoZSAiOmRyb3AiIGNvbW1hbmQuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4xLjEyOApQcm9ibGVtOiAgICBUaGUgZXhwcmVzc2lvbiAiaW5wdXQoJ3ZlcnkgbG9uZyBwcm9tcHQnKSIgcHV0cyB0aGUgY3Vyc29yIGluIHRoZQoJICAgIHdyb25nIGxpbmUgKGNvbHVtbiBpcyBPSykuClNvbHV0aW9uOiAgIEFkZCB0aGUgd3JhcHBlZCBsaW5lcyB0byB0aGUgaW5kZW50LiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjEuMTI5ClByb2JsZW06ICAgIE9uIFNvbGFyaXMgZWRpdGluZyAiZmlsZS8iIGFuZCB0aGVuICJmaWxlIiByZXN1bHRzIGluIHVzaW5nIHRoZQoJICAgIHNhbWUgYnVmZmVyLiAgKEppbSBCYXR0bGUpClNvbHV0aW9uOiAgIEJlZm9yZSB1c2luZyBzdGF0KCksIGNoZWNrIHRoYXQgdGhlcmUgaXMgbm8gaWxsZWdhbCB0cmFpbGluZwoJICAgIHNsYXNoLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZy5oLmluLCBzcmMvY29uZmlndXJlLmluLAoJICAgIHNyYy9tYWNyb3MuaCBzcmMvbWlzYzIuYywgc3JjL3Byb3RvL21pc2MyLnBybwoKUGF0Y2ggNi4xLjEzMApQcm9ibGVtOiAgICBUaGUgZG9jdW1lbnRhdGlvbiBmb3Igc29tZSBvZiB0aGUgJ2Vycm9yZm9ybWF0JyBpdGVtcyBpcyB1bmNsZWFyLgpTb2x1dGlvbjogICBBZGQgbW9yZSBleGFtcGxlcyBhbmQgZXhwbGFpbiBoYXJkIHRvIHVuZGVyc3RhbmQgaXRlbXMuIChTdGVmYW4KCSAgICBSb2VtZXIpCkZpbGVzOgkgICAgcnVudGltZS9kb2MvcXVpY2tmaXgudHh0CgpQYXRjaCA2LjEuMTMxClByb2JsZW06ICAgIFgxMSBHVUk6IHdoZW4gZXhwYW5kaW5nIGEgQ1NJIGJ5dGUgaW4gdGhlIGlucHV0IHN0cmVhbSB0byBLX0NTSSwKCSAgICB0aGUgQ1NJIGJ5dGUgaXRzZWxmIGlzbid0IGNvcGllZC4KU29sdXRpb246ICAgQ29weSB0aGUgQ1NJIGJ5dGUuCkZpbGVzOgkgICAgc3JjL2d1aV94MTEuYwoKUGF0Y2ggNi4xLjEzMgpQcm9ibGVtOiAgICBFeGVjdXRpbmcgYSByZWdpc3RlciBpbiBFeCBtb2RlIG1heSBjYXVzZSBjb21tYW5kcyB0byBiZSBza2lwcGVkLgoJICAgIChKb2huIE1jR293YW4pClNvbHV0aW9uOiAgIEluIEV4IG1vZGUgdXNlIGFuIGV4dHJhIGNoZWNrIGlmIHRoZSByZWdpc3RlciBjb250ZW50cyB3YXMKCSAgICBjb25zdW1lZCwgdG8gYXZvaWQgaW5wdXQgZ29lcyBpbnRvIHRoZSB0eXBlYWhlYWQgYnVmZmVyLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMTMzClByb2JsZW06ICAgIFdoZW4gZHJhd2luZyBkb3VibGUtd2lkZSBjaGFyYWN0ZXJzIGluIHRoZSBzdGF0dXNsaW5lLCBtYXkgY2xlYXIKCSAgICBoYWxmIG9mIGEgY2hhcmFjdGVyLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpTb2x1dGlvbjogICBGb3JjZSByZWRyYXcgb2YgdGhlIG5leHQgY2hhcmFjdGVyIGJ5IHNldHRpbmcgdGhlIGF0dHJpYnV0ZXMKCSAgICBpbnN0ZWFkIG9mIHB1dHRpbmcgYSBOVUwgaW4gU2NyZWVuTGluZXNbXS4gIERvIHB1dCBhIE5VTCBpbgoJICAgIFNjcmVlbkxpbmVzW10gd2hlbiBvdmVyd3JpdGluZyBoYWxmIG9mIGEgZG91YmxlLXdpZGUgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjEzNApQcm9ibGVtOiAgICBBbiBlcnJvciBmb3IgYSB0cmFpbGluZyBhcmd1bWVudCBvZiAiOm1hdGNoIiBzaG91bGQgbm90IGJlIGdpdmVuCgkgICAgYWZ0ZXIgIjppZiAwIi4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIE9ubHkgZG8gdGhlIGNoZWNrIHdoZW4gZXhlY3V0aW5nIGNvbW1hbmRzLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMTM1ClByb2JsZW06ICAgIFBhc3NpbmcgYSBjb21tYW5kIHRvIHRoZSBzaGVsbCB0aGF0IGluY2x1ZGVzIGEgbmV3bGluZSBhbHdheXMgaGFzCgkgICAgYSBiYWNrc2xhc2ggYmVmb3JlIHRoZSBuZXdsaW5lLgpTb2x1dGlvbjogICBSZW1vdmUgb25lIGJhY2tzbGFzaCBiZWZvcmUgdGhlIG5ld2xpbmUuICAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjEzNgpQcm9ibGVtOiAgICBXaGVuICRURVJNIGlzICJsaW51eCIgdGhlIGRlZmF1bHQgZm9yICdiYWNrZ3JvdW5kJyBpcyAiZGFyayIsIGV2ZW4KCSAgICB0aG91Z2ggdGhlIEdVSSB1c2VzIGEgbGlnaHQgYmFja2dyb3VuZC4gKEh1Z2ggQWxsZW4pClNvbHV0aW9uOiAgIERvbid0IG1hcmsgdGhlIG9wdGlvbiBhcyBzZXQgd2hlbiBkZWZhdWx0aW5nIHRvICJkYXJrIiBmb3IgdGhlCgkgICAgbGludXggY29uc29sZS4gIEFsc28gcmVzZXQgJ2JhY2tncm91bmQnIHRvICJsaWdodCIgd2hlbiB0aGUgR1VJCgkgICAgaGFzIGEgbGlnaHQgYmFja2dyb3VuZC4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMS4xMzcKUHJvYmxlbTogICAgQ29udmVydGluZyB0byBIVE1MIGhhcyBhIGNsdW1zeSB3YXkgb2YgZGVhbGluZyB3aXRoIHRhYnMgd2hpY2ggbWF5CgkgICAgY2hhbmdlIHRoZSBoaWdobGlnaHRpbmcuClNvbHV0aW9uOiAgIFJlcGxhY2UgdGFicyB3aXRoIHNwYWNlcyBhZnRlciBjb252ZXJ0aW5nIGEgbGluZSB0byBIVE1MLiAoUHJlYmVuCgkgICAgR3VsZGJlcmcpCkZpbGVzOgkgICAgcnVudGltZS9zeW50YXgvMmh0bWwudmltCgpQYXRjaCA2LjEuMTM4IChkZXBlbmRzIG9uIDYuMS4xMjYpClByb2JsZW06ICAgIEFkZGluZyBleHRyYSBpdGVtcyB0byB0aGUgU3ludGF4IG1lbnUgY2FuJ3QgYmUgZG9uZSB3aGVuIHRoZSAiU2hvdwoJICAgIGluZGl2aWR1YWwgY2hvaWNlcyIgbWVudSBpcyB1c2VkLgpTb2x1dGlvbjogICBVc2UgIjpydW50aW1lISIgaW5zdGVhZCBvZiAiOnNvdXJjZSIsIHNvIHRoYXQgYWxsIHN5bm1lbnUudmltCgkgICAgZmlsZXMgaW4gdGhlIHJ1bnRpbWUgcGF0aCBhcmUgbG9hZGVkLiAoU2VydmF0aXVzIEJyYW5kdCkKCSAgICBBbHNvIGZpeCB0aGF0IGEgdHJhbnNsYXRlZCBtZW51IGNhbid0IGJlIHJlbW92ZWQuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4xLjEzOQpQcm9ibGVtOiAgICBDeWd3aW46IFBBVEhfTUFYIGlzIG5vdCBkZWZpbmVkLgpTb2x1dGlvbjogICBJbmNsdWRlIGxpbWl0cy5oLiAoRGFuIFNoYXJwKQpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS4xNDAKUHJvYmxlbTogICAgQ3lnd2luOiAiOmFyZ3MgYGxzICouY2AiIGRvZXMgbm90IHdvcmsgaWYgdGhlIHNoZWxsIGNvbW1hbmQKCSAgICBwcm9kdWNlcyBDUiBOTCBsaW5lIHNlcGFyYXRvcnMuClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgQ1IgY2hhcmFjdGVycyBvdXJzZWx2ZXMuIChQYXZvbCBKdWhhcykKRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuMTQxClByb2JsZW06ICAgICI6d2luY21kIGd4IiBtYXkgY2F1c2UgcHJvYmxlbXMgd2hlbiBtaXhlZCB3aXRoIG90aGVyIGNvbW1hbmRzLgoJICAgICI6d2luY21kIGMiIGRvZXNuJ3QgY2xvc2UgdGhlIHdpbmRvdyBpbW1lZGlhdGVseS4gKEJlbmppIEZpc2hlcikKU29sdXRpb246ICAgUGFzcyB0aGUgZXh0cmEgY29tbWFuZCBjaGFyYWN0ZXIgZGlyZWN0bHkgaW5zdGVhZCBvZiB1c2luZyB0aGUKCSAgICBzdHVmZiBidWZmZXIgYW5kIGNhbGwgZXhfY2xvc2UoKSBkaXJlY3RseS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL25vcm1hbC5jLCBzcmMvcHJvdG8vbm9ybWFsLnBybywKCSAgICBzcmMvcHJvdG8vd2luZG93LnBybywgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjEuMTQyClByb2JsZW06ICAgIERlZmluaW5nIHBhcmFncmFwaHMgd2l0aG91dCBhIHNlcGFyYXRpbmcgYmxhbmsgbGluZSBpc24ndAoJICAgIHBvc3NpYmxlLiAgUGFyYWdyYXBocyBjYW4ndCBiZSBmb3JtYXR0ZWQgYXV0b21hdGljYWxseS4KU29sdXRpb246ICAgQWxsb3cgZGVmaW5pbmcgcGFyYWdyYXBocyB3aXRoIGxpbmVzIHRoYXQgZW5kIGluIHdoaXRlIHNwYWNlLgoJICAgIEFkZGVkIHRoZSAndycgYW5kICdhJyBmbGFncyBpbiAnZm9ybWF0b3B0aW9ucycuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvY2hhbmdlLnR4dCwgc3JjL2VkaXQuYywgc3JjL21pc2MxLmMsIHNyYy9ub3JtYWwuYywKCSAgICBzcmMvb3B0aW9uLmgsIHNyYy9vcHMuYywgc3JjL3Byb3RvL2VkaXQucHJvLCBzcmMvcHJvdG8vb3BzLnBybywKCSAgICBzcmMvdmltLmgKClBhdGNoIDYuMS4xNDMgKGRlcGVuZHMgb24gNi4xLjE0MikKUHJvYmxlbTogICAgQXV0byBmb3JtYXR0aW5nIG5lYXIgdGhlIGVuZCBvZiB0aGUgZmlsZSBtb3ZlcyB0aGUgY3Vyc29yIHRvIGEKCSAgICB3cm9uZyBwb3NpdGlvbi4gIEluIEluc2VydCBtb2RlIHNvbWUgbGluZXMgYXJlIG1hZGUgb25lIGNoYXIgdG9vCgkgICAgbmFycm93LiAgV2hlbiBkZWxldGluZyBhIGxpbmUgdW5kbyBtaWdodCBub3QgYWx3YXlzIHdvcmsgcHJvcGVybHkuClNvbHV0aW9uOiAgIERvbid0IGFsd2F5cyBtb3ZlIHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUgaW4gdGhlIGxhc3QgbGluZS4gIERvbid0CgkgICAgcG9zaXRpb24gdGhlIGN1cnNvciBwYXN0IHRoZSBlbmQgb2YgdGhlIGxpbmUgaW4gSW5zZXJ0IG1vZGUuCgkgICAgQWZ0ZXIgZGVsZXRpbmcgYSBsaW5lIHNhdmUgdGhlIGN1cnNvciBsaW5lIGZvciB1bmRvLgpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9vcHMuYywgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuMTQ0ClByb2JsZW06ICAgIE9idGFpbmluZyB0aGUgc2l6ZSBvZiBhIGxpbmUgaW4gc2NyZWVuIGNoYXJhY3RlcnMgY2FuIGJlIHdyb25nLgoJICAgIEEgcG9pbnRlciBtYXkgd3JhcCBhcm91bmQgemVyby4KU29sdXRpb246ICAgSW4gd2luX2xpbmV0YWJzaXplKCkgY2hlY2sgZm9yIGEgTUFYQ09MIGxlbmd0aCBhcmd1bWVudC4gKEppbQoJICAgIER1bmxlYXZ5KQpGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMKClBhdGNoIDYuMS4xNDUKUHJvYmxlbTogICAgR1RLOiBEcmFnJmRyb3Agd2l0aCBtb3JlIHRoYW4gMyBmaWxlcyBtYXkgY2F1c2UgYSBjcmFzaC4gKE1pY2thZWwKCSAgICBNYXJjaGFuZCkKU29sdXRpb246ICAgUmV3cml0ZSB0aGUgY29kZSB0aGF0IHBhcnNlcyB0aGUgcmVjZWl2ZWQgbGlzdCBvZiBmaWxlcyB0byBiZSBtb3JlCgkgICAgcm9idXN0LgpGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMsIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjEuMTQ2ClByb2JsZW06ICAgIE1TLVdpbmRvd3M6IFdoZW4gJEhPTUUgaXMgY29uc3RydWN0ZWQgZnJvbSAkSE9NRURSSVZFIGFuZAoJICAgICRIT01FUEFUSCwgaXQgaXMgbm90IHVzZWQgZm9yIHN0b3JpbmcgdGhlIF92aW1pbmZvIGZpbGUuICAoTm9ybWFsCgkgICAgRGlhbW9uZCkKU29sdXRpb246ICAgU2V0ICRIT01FIHdpdGggdGhlIHZhbHVlIG9idGFpbmVkIGZyb20gJEhPTUVEUklWRSBhbmQgJEhPTUVQQVRILgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjEuMTQ3IChleHRyYSkKUHJvYmxlbTogICAgTVMtV2luZG93czogV2hlbiBhIGRpYWxvZyBoYXMgbm8gZGVmYXVsdCBidXR0b24sIHByZXNzaW5nIEVudGVyCgkgICAgZW5kcyBpdCBhbnl3YXkgYW5kIGFsbCBidXR0b25zIGFyZSBzZWxlY3RlZC4KU29sdXRpb246ICAgRG9uJ3QgZW5kIGEgZGlhbG9nIHdoZW4gdGhlcmUgaXMgbm8gZGVmYXVsdCBidXR0b24uICBEb24ndCBzZWxlY3QKCSAgICBhbGwgYnV0dG9uIHdoZW4gdGhlcmUgaXMgbm8gZGVmYXVsdC4gKFZpbmNlIE5lZ3JpKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMS4xNDggKGV4dHJhKQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzOiBBQ0wgaXMgbm90IHByb3Blcmx5IHN1cHBvcnRlZC4KU29sdXRpb246ICAgQWRkIGFuIGFjY2VzcygpIHJlcGxhY2VtZW50IHRoYXQgYWxzbyB3b3JrcyBmb3IgQUNMLiAoTWlrZQoJICAgIFdpbGxpYW1zKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2VkaXRpbmcudHh0LCBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4xLjE0OSAoZXh0cmEpClByb2JsZW06ICAgIE1TLVdpbmRvd3M6IENhbid0IHVzZSBkaWZmIG1vZGUgZnJvbSB0aGUgZmlsZSBleHBsb3Jlci4KU29sdXRpb246ICAgQWRkIGEgImRpZmYgd2l0aCBWaW0iIGNvbnRleHQgbWVudSBlbnRyeS4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBHdmltRXh0L2d2aW1leHQuY3BwLCBHdmltRXh0L2d2aW1leHQuaAoKUGF0Y2ggNi4xLjE1MApQcm9ibGVtOiAgICBPUy8yLCBNUy1XaW5kb3dzIGFuZCBNUy1ET1M6IFdoZW4gJ3NoZWxsc2xhc2gnIGlzIHNldCBnZXRjd2QoKQoJICAgIHN0aWxsIHVzZXMgYmFja3NsYXNoLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKU29sdXRpb246ICAgQWRqdXN0IHNsYXNoZXMgaW4gZ2V0Y3dkKCkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjE1MSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgTlRGUyBzdWJzdHJlYW0gaXNuJ3QgY29waWVkLgpTb2x1dGlvbjogICBDb3B5IHRoZSBzdWJzdHJlYW0gd2hlbiBtYWtpbmcgYSBiYWNrdXAgY29weS4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9vc193aW4zMi5jLCBzcmMvcHJvdG8vb3Nfd2luMzIucHJvCgpQYXRjaCA2LjEuMTUyClByb2JsZW06ICAgIFdoZW4gJExBTkcgaXMgaXNvODg1OS0xIHRyYW5zbGF0ZWQgbWVudXMgYXJlIG5vdCB1c2VkLgpTb2x1dGlvbjogICBDaGFuZ2UgaXNvODg1OSB0byBpc29fODg1OS4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjEuMTUzClByb2JsZW06ICAgIFNlYXJjaGluZyBpbiBpbmNsdWRlZCBmaWxlcyBtYXkgc2VhcmNoIHJlY3Vyc2l2ZWx5IHdoZW4gdGhlIHBhdGgKCSAgICBzdGFydHMgd2l0aCAiLi4vIi4gIChTdmVuIEJlcmt2ZW5zLU1hdHRoaWpzc2UpClNvbHV0aW9uOiAgIENvbXBhcmUgZnVsbCBmaWxlIG5hbWVzLCB1c2UgaW5vZGUvZGV2aWNlIHdoZW4gcG9zc2libGUuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjEuMTU0IChleHRyYSkKUHJvYmxlbTogICAgREpHUFA6ICJ2aW0gLWgiIGxlYXZlcyB0aGUgY3Vyc29yIGluIGEgd3JvbmcgcG9zaXRpb24uClNvbHV0aW9uOiAgIERvbid0IHBvc2l0aW9uIHRoZSBjdXJzb3IgdXNpbmcgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuIChKaW0KCSAgICBEdW5sZWF2eSkKRmlsZXM6CSAgICBzcmMvb3NfbXNkb3MuYwoKUGF0Y2ggNi4xLjE1NQpQcm9ibGVtOiAgICBXaW4zMjogQ3Vyc29yIG1heSBzb21ldGltZXMgZGlzYXBwZWFyIGluIEluc2VydCBtb2RlLgpTb2x1dGlvbjogICBDaGFuZ2UgImhvcjEwIiBpbiAnZ3VpY3Vyc29yJyB0byAiaG9yMTUiLiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjEuMTU2ClByb2JsZW06ICAgIENvbnZlcnNpb24gYmV0d2VlbiBEQkNTIGFuZCBVQ1MtMiBpc24ndCBpbXBsZW1lbnRlZCBjbGVhbmx5LgpTb2x1dGlvbjogICBDbGVhbiB1cCBhIGZldyB0aGluZ3MuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMS4xNTcKUHJvYmxlbTogICAgJ2hsc2VhcmNoJyBoaWdobGlnaHRzIG9ubHkgdGhlIHNlY29uZCBjb21tYSBpbiAiLCwsLCwiIHdpdGgKCSAgICAiLyxcQDw9W14sXSoiLiAoUHJlYmVuIEd1bGRiZXJnKQpTb2x1dGlvbjogICBBbHNvIGNoZWNrIGZvciBhbiBlbXB0eSBtYXRjaCB0byBzdGFydCBqdXN0IGFmdGVyIGEgcHJldmlvdXMKCSAgICBtYXRjaC4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4xNTgKUHJvYmxlbTogICAgInpzIiBhbmQgInplIiBkb24ndCB3b3JrIGNvcnJlY3RseSB3aXRoICI6c2V0IG5vd3JhcCBzaXNvPTEiLgoJICAgIChQcmViZW4gR3VsZGJlcmcpClNvbHV0aW9uOiAgIFRha2UgJ3Npc28nIGludG8gYWNjb3VudCB3aGVuIGNvbXB1dGluZyB0aGUgaG9yaXpvbnRhbCBzY3JvbGwKCSAgICBwb3NpdGlvbiBmb3IgInpzIiBhbmQgInplIi4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMS4xNTkKUHJvYmxlbTogICAgV2hlbiBleHBhbmRpbmcgYW4gYWJicmV2aWF0aW9uIHRoYXQgaW5jbHVkZXMgYSBtdWx0aS1ieXRlCgkgICAgY2hhcmFjdGVyIHRvbyBtYW55IGNoYXJhY3RlcnMgYXJlIGRlbGV0ZWQuIChBbmRyZXkgVXJhem92KQpTb2x1dGlvbjogICBEZWxldGUgdGhlIGFiYnJldmlhdGlvbiBjb3VudGluZyBjaGFyYWN0ZXJzIGluc3RlYWQgb2YgYnl0ZXMuCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYwoKUGF0Y2ggNi4xLjE2MApQcm9ibGVtOiAgICAiOiRyZWFkIGZpbGUuZ3oiIGRvZXNuJ3Qgd29yay4gKFByZWJlbiBHdWxkYmVyZykKU29sdXRpb246ICAgRG9uJ3QgdXNlIHRoZSAnWyBtYXJrIGFmdGVyIGl0IGhhcyBiZWNvbWUgaW52YWxpZC4KRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9nemlwLnZpbQoKUGF0Y2ggNi4xLjE2MSAoZGVwZW5kcyBvbiA2LjEuMTU4KQpQcm9ibGVtOiAgICBXYXJuaW5nIGZvciBzaWduZWQvdW5zaWduZWQgY29tcGFyZS4gIENhbiBzZXQgJ3Npc28nIHRvIGEgbmVnYXRpdmUKCSAgICB2YWx1ZS4gKE1pa2UgV2lsbGlhbXMpClNvbHV0aW9uOiAgIEFkZCBhIHR5cGVjYXN0LiAgQWRkIGEgY2hlY2sgZm9yICdzaXNvJyBiZWluZyBuZWdhdGl2ZS4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjE2MgpQcm9ibGVtOiAgICBQeXRob24gaW50ZXJmYWNlOiBEaWRuJ3QgaW5pdGlhbGl6ZSB0aHJlYWRzIHByb3Blcmx5LgpTb2x1dGlvbjogICBDYWxsIFB5RXZhbF9Jbml0VGhyZWFkcygpIHdoZW4gc3RhcnRpbmcgdXAuCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjEuMTYzClByb2JsZW06ICAgIFdpbjMyOiBDYW4ndCBjb21waWxlIHdpdGggUHl0aG9uIGFmdGVyIDYuMS4xNjIuClNvbHV0aW9uOiAgIER5bmFtaWNhbGx5IGxvYWQgIFB5RXZhbF9Jbml0VGhyZWFkcygpLiAoRGFuIFNoYXJwKQpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4xLjE2NApQcm9ibGVtOiAgICBJZiAnbW9kaWZpYWJsZScgaXMgb2ZmLCBjb252ZXJ0aW5nIHRvIHh4ZCBmYWlscyBhbmQgJ2ZpbGV0eXBlJyBpcwoJICAgIGNoYW5nZWQgdG8gInh4ZCIgYW55d2F5LgpTb2x1dGlvbjogICBEb24ndCBjaGFuZ2UgJ2ZpbGV0eXBlJyB3aGVuIGNvbnZlcnNpb24gZmFpbGVkLgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMS4xNjUKUHJvYmxlbTogICAgTWFraW5nIGNoYW5nZXMgaW4gc2V2ZXJhbCBsaW5lcyBhbmQgdGhlbiBhIGNoYW5nZSBpbiBvbmUgb2YgdGhlc2UKCSAgICBsaW5lcyB0aGF0IHNwbGl0cyBpdCBpbiB0d28gb3IgbW9yZSBsaW5lcywgdW5kbyBpbmZvcm1hdGlvbiB3YXMKCSAgICBjb3JydXB0ZWQuICBNYXkgY2F1c2UgYSBjcmFzaC4gKERhdmUgRmlzaGJ1cm4pClNvbHV0aW9uOiAgIFdoZW4gc2tpcHBpbmcgdG8gc2F2ZSBhIGxpbmUgZm9yIHVuZG8gYmVjYXVzZSBpdCB3YXMgYWxyZWFkeQoJICAgIHNhdmVkLCBtb3ZlIGl0IHRvIGJlY29tZSB0aGUgbGFzdCBzYXZlZCBsaW5lLCBzbyB0aGF0IHdoZW4gdGhlCgkgICAgY29tbWFuZCBjaGFuZ2VzIHRoZSBsaW5lIGNvdW50IG90aGVyIHNhdmVkIGxpbmVzIGFyZSBub3QgaW52b2x2ZWQuCkZpbGVzOgkgICAgc3JjL3VuZG8uYwoKUGF0Y2ggNi4xLjE2NgpQcm9ibGVtOiAgICBXaGVuICdhdXRvaW5kZW50JyBpcyBzZXQgYW5kIG1zd2luLnZpbSBoYXMgYmVlbiBzb3VyY2VkLCBwYXN0aW5nCgkgICAgd2l0aCBDVFJMLVYganVzdCBhZnRlciBhdXRvLWluZGVudGluZyByZW1vdmVzIHRoZSBpbmRlbnQuIChTaGxvbWkKCSAgICBGaXNoKQpTb2x1dGlvbjogICBGaXJzdCBpbnNlcnQgYW4gIngiIGFuZCBkZWxldGUgaXQgYWdhaW4sIHNvIHRoYXQgdGhlIGF1dG8taW5kZW50CgkgICAgcmVtYWlucy4KRmlsZXM6CSAgICBydW50aW1lL21zd2luLnZpbQoKUGF0Y2ggNi4xLjE2NwpQcm9ibGVtOiAgICBXaGVuIGdpdmluZyBhIG5lZ2F0aXZlIGFyZ3VtZW50IHRvICI6cmV0YWIiIHN0cmFuZ2UgdGhpbmdzIHN0YXJ0CgkgICAgaGFwcGVuaW5nLiAoSGFucyBHaW56ZWwpClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIG5lZ2F0aXZlIHZhbHVlLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMS4xNjgKUHJvYmxlbTogICAgUHJlc3NpbmcgQ1RSTC1DIGF0IHRoZSBoaXQtZW50ZXIgcHJvbXB0IGRvZXNuJ3QgZW5kIHRoZSBwcm9tcHQuClNvbHV0aW9uOiAgIE1ha2UgQ1RSTC1DIHN0b3AgdGhlIGhpdC1lbnRlciBwcm9tcHQuCkZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4xLjE2OQpQcm9ibGVtOiAgICBidWZleGlzdHMoKSBmaW5kcyBhIGJ1ZmZlciBieSB1c2luZyB0aGUgbmFtZSBvZiBhIHN5bWJvbGljIGxpbmsgdG8KCSAgICBpdCwgYnV0IGJ1Zm5yKCkgZG9lc24ndC4gKFllZ2FwcGFuIExha3NobWFuYW4pClNvbHV0aW9uOiAgIFdoZW4gYnVmbnIoKSBjYW4ndCBmaW5kIGEgYnVmZmVyLCB0cnkgdXNpbmcgdGhlIHNhbWUgbWV0aG9kIGFzCgkgICAgYnVmZXhpc3RzKCkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjE3MApQcm9ibGVtOiAgICBVc2luZyAiOm1rc2Vzc2lvbiIgdXNlcyB0aGUgZGVmYXVsdCBzZXNzaW9uIGZpbGUgbmFtZSwgYnV0ICJ2aW0KCSAgICAtUyIgZG9lc24ndC4gKEhhbnMgR2luemVsKQpTb2x1dGlvbjogICBVc2UgdGhlIGRlZmF1bHQgc2Vzc2lvbiBmaWxlIG5hbWUgaWYgIi1TIiBpcyB0aGUgbGFzdCBjb21tYW5kCgkgICAgbGluZSBhcmd1bWVudCBvciBhbm90aGVyIG9wdGlvbiBmb2xsb3dzLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dCwgc3JjL21haW4uYwoKUGF0Y2ggNi4xLjE3MQpQcm9ibGVtOiAgICBXaGVuIG9wZW5pbmcgYSBsaW5lIGp1c3QgYWJvdmUgYSBjbG9zZWQgZm9sZCB3aXRoICJPIiBhbmQgdGhlCgkgICAgY29tbWVudCBsZWFkZXIgaXMgYXV0b21hdGljYWxseSBpbnNlcnRlZCwgdGhlIGN1cnNvciBpcyBkaXNwbGF5ZWQKCSAgICBpbiB0aGUgZmlyc3QgY29sdW1uLiAoU3VuZy1IeXVuIE5hbSkKU29sdXRpb246ICAgVXBkYXRlIHRoZSBmbGFnIHRoYXQgaW5kaWNhdGVzIHRoZSBjdXJzb3IgaXMgaW4gYSBjbG9zZWQgZm9sZC4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4xLjE3MgpQcm9ibGVtOiAgICBDb21tYW5kIGxpbmUgY29tcGxldGlvbiBvZiAiOnRhZyAvcGF0IiBkb2VzIG5vdCBzaG93IHRoZSBzYW1lCgkgICAgcmVzdWx0cyBhcyB0aGUgdGFncyB0aGUgY29tbWFuZCBhY3R1YWxseSBmaW5kcy4gKEdpbGxlcyBSb3kpClNvbHV0aW9uOiAgIERvbid0IG1vZGlmeSB0aGUgcGF0dGVybiB0byBtYWtlIGl0IGEgcmVnZXhwLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvdGFnLmMKClBhdGNoIDYuMS4xNzMKUHJvYmxlbTogICAgV2hlbiB1c2luZyByZW1vdGUgY29udHJvbCB0byBlZGl0IGEgcG9zaXRpb24gaW4gYSBmaWxlIGFuZCB0aGlzCgkgICAgZmlsZSBpcyB0aGUgY3VycmVudCBidWZmZXIgYW5kIGl0J3MgbW9kaWZpZWQsIHRoZSB3aW5kb3cgaXMgc3BsaXQKCSAgICBhbmQgdGhlICI6ZHJvcCIgY29tbWFuZCBmYWlscy4KU29sdXRpb246ICAgRG9uJ3Qgc3BsaXQgdGhlIHdpbmRvdywga2VlcCBlZGl0aW5nIHRoZSBzYW1lIGJ1ZmZlci4KCSAgICBVc2UgdGhlICI6ZHJvcCIgY29tbWFuZCBpbiBWaXNWaW0gdG8gYXZvaWQgdGhlIHByb2JsZW0gdGhlcmUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYywgc3JjL2V4X2NtZHMyLmMsIHNyYy9wcm90by9leF9jbWRzMi5wcm8sCgkgICAgVmlzVmltL0NvbW1hbmRzLmNwcAoKUGF0Y2ggNi4xLjE3NApQcm9ibGVtOiAgICBJdCBpcyBkaWZmaWN1bHQgdG8ga25vdyBpbiBhIHNjcmlwdCB3aGV0aGVyIGFuIG9wdGlvbiBub3Qgb25seQoJICAgIGV4aXN0cyBidXQgcmVhbGx5IHdvcmtzLgpTb2x1dGlvbjogICBBZGQgImV4aXN0cygnK29wdGlvbicpIi4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjE3NQpQcm9ibGVtOiAgICBXaGVuIHJlYWRpbmcgY29tbWFuZHMgZnJvbSBhIHBpcGUgYW5kIGEgQ1RSTC1DIGlzIHByZXNzZWQsIFZpbQoJICAgIHdpbGwgaGFuZy4gKFBpZXQgRGVscG9ydCkKU29sdXRpb246ICAgRG9uJ3Qga2VlcCByZWFkaW5nIGNoYXJhY3RlcnMgdG8gY2xlYXIgdHlwZWFoZWFkIHdoZW4gYW4gaW50ZXJydXB0CgkgICAgd2FzIGRldGVjdGVkLCBzdG9wIHdoZW4gYSBzaW5nbGUgQ1RSTC1DIGlzIHJlYWQuCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYywgc3JjL3VpLmMKClBhdGNoIDYuMS4xNzYKUHJvYmxlbTogICAgV2hlbiB0aGUgc3RhY2sgbGltaXQgaXMgdmVyeSBiaWcgYSBmYWxzZSBvdXQtb2Ytc3RhY2sgZXJyb3IgbWF5CgkgICAgYmUgZGV0ZWN0ZWQuClNvbHV0aW9uOiAgIEFkZCBhIGNoZWNrIGZvciBvdmVyZmxvdyBvZiB0aGUgc3RhY2sgbGltaXQgY29tcHV0YXRpb24uIChKaW0KCSAgICBEdW5sZWF2eSkKRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuMTc3IChkZXBlbmRzIG9uIDYuMS4xNDEpClByb2JsZW06ICAgICI6d2luY21kIiBkb2VzIG5vdCBhbGxvdyBhIGZvbGxvd2luZyBjb21tYW5kLiAoR2FyeSBKb2huc29uKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBmb2xsb3dpbmcgIiB8IGNtZCIuICBBbHNvIGdpdmUgYW4gZXJyb3IgZm9yIHRyYWlsaW5nCgkgICAgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjE3OApQcm9ibGVtOiAgICBXaGVuICdleHBhbmR0YWInIGlzIHNldCAicjxDLVY+PFRhYj4iIHN0aWxsIGV4cGFuZHMgdGhlIFRhYi4KCSAgICAoQnJ1Y2UgZGVWaXNzZXIpClNvbHV0aW9uOiAgIFJlcGxhY2Ugd2l0aCBhIGxpdGVyYWwgVGFiLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjE3OSAoZGVwZW5kcyBvbiA2LjEuMDkxKQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIFgxMVI1IFhJTVByZXNlcnZlU3RhdGUgaXMgdW5kZWZpbmVkLiAoQWxiZXJ0IENoaW4pClNvbHV0aW9uOiAgIEluY2x1ZGUgdGhlIG1pc3NpbmcgZGVmaW5pdGlvbnMuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMS4xODAKUHJvYmxlbTogICAgVXNlIG9mIHRoZSBHVUkgY29kZSBmb3IgZm9ya2luZyBpcyBpbmNvbnNpc3RlbnQuClNvbHV0aW9uOiAgIERlZmluZSBNQVlfRk9SSyBhbmQgdXNlIGl0IGZvciBsYXRlciAjaWZkZWZzLiAoQmVuIEZvd2x3ZXIpCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjEuMTgxClByb2JsZW06ICAgIElmIHRoZSB0ZXJtaW5hbCBkb2Vzbid0IHdyYXAgZnJvbSB0aGUgbGFzdCBjaGFyIGluIGEgbGluZSB0byB0aGUKCSAgICBuZXh0IGxpbmUsIHRoZSBsYXN0IGNvbHVtbiBpcyBibGFua2VkIG91dC4gKFBldGVyIEthcnApClNvbHV0aW9uOiAgIERvbid0IG91dHB1dCBhIHNwYWNlIHRvIG1hcmsgdGhlIHdyYXAsIGJ1dCB0aGUgc2FtZSBjaGFyYWN0ZXIKCSAgICBhZ2Fpbi4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4xODIgKGRlcGVuZHMgb24gNi4xLjE0MikKUHJvYmxlbTogICAgSXQgaXMgbm90IHBvc3NpYmxlIHRvIGF1dG8tZm9ybWF0IGNvbW1lbnRzIG9ubHkuIChNb3NoZSBLYW1pbnNreSkKU29sdXRpb246ICAgV2hlbiB0aGUgJ2EnIGFuZCAnYycgZmxhZ3MgYXJlIGluICdmb3JtYXRvcHRpb25zJyBvbmx5IGF1dG8tZm9ybWF0CgkgICAgY29tbWVudHMuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvY2hhbmdlLnR4dCwgc3JjL2VkaXQuYwoKUGF0Y2ggNi4xLjE4MwpQcm9ibGVtOiAgICBXaGVuICdmZW5jcycgaXMgZW1wdHkgYW5kICdlbmMnIGlzIHV0Zi04LCByZWFkaW5nIGEgZmlsZSB3aXRoCgkgICAgaWxsZWdhbCBieXRlcyBnaXZlcyAiQ09OVkVSU0lPTiBFUlJPUiIgZXZlbiB0aG91Z2ggbm8gY29udmVyc2lvbgoJICAgIGlzIGRvbmUuICAncmVhZG9ubHknIGlzIHNldCwgZXZlbiB0aG91Z2ggd3JpdGluZyB0aGUgZmlsZSByZXN1bHRzCgkgICAgaW4gYW4gdW5tb2RpZmllZCBmaWxlLgpTb2x1dGlvbjogICBGb3IgdGhpcyBzcGVjaWZpYyBlcnJvciB1c2UgIklMTEVHQUwgQllURSIgYW5kIGRvbid0IHNldAoJICAgICdyZWFkb25seScuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuMTg0IChleHRyYSkKUHJvYmxlbTogICAgVGhlIGV4dHJhIG1vdXNlIGJ1dHRvbnMgZm91bmQgb24gc29tZSBtaWNlIGRvbid0IHdvcmsuClNvbHV0aW9uOiAgIFN1cHBvcnQgdHdvIGV4dHJhIGJ1dHRvbnMgZm9yIE1TLVdpbmRvd3MuIChNaWNoYWVsIEdlZGRlcykKRmlsZXM6CSAgICBydW50aW1lL2RvYy90ZXJtLnR4dCwgc3JjL2VkaXQuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9ndWkuYywKCSAgICBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jLCBzcmMva2V5bWFwLmgsIHNyYy9tZXNzYWdlLmMsCgkgICAgc3JjL21pc2MxLmMsIHNyYy9taXNjMi5jLCBzcmMvbm9ybWFsLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4xLjE4NSAoZGVwZW5kcyBvbiA2LjEuMTgyKQpQcm9ibGVtOiAgICBDYW4ndCBjb21waWxlIHdpdGhvdXQgK2NvbW1lbnRzIGZlYXR1cmUuClNvbHV0aW9uOiAgIEFkZCAjaWZkZWYgRkVBVF9DT01NRU5UUy4gKENocmlzdGlhbiBKLiBSb2JpbnNvbikKRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjEuMTg2IChkZXBlbmRzIG9uIDYuMS4xNzcpClByb2JsZW06ICAgICI6d2luY21kIiBkb2VzIG5vdCBhbGxvdyBhIGZvbGxvd2luZyBjb21tZW50LiAoQXJpYyBCbHVtZXIpClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIGZvbGxvd2luZyBkb3VibGUgcXVvdGUuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4xODcKUHJvYmxlbTogICAgVXNpbmcgIjpkb2FyZyIgd2l0aCAnaGlkZGVuJyBzZXQgYW5kIHRoZSBjdXJyZW50IGZpbGUgaXMgdGhlIG9ubHkKCSAgICBhcmd1bWVudCBhbmQgd2FzIG1vZGlmaWVkIGdpdmVzIGFuIGVycm9yIG1lc3NhZ2UuIChQcmViZW4KCSAgICBHdWxkYmVyZykKU29sdXRpb246ICAgRG9uJ3QgdHJ5IHJlLWVkaXRpbmcgdGhlIHNhbWUgZmlsZS4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjE4OCAoZGVwZW5kcyBvbiA2LjEuMTczKQpQcm9ibGVtOiAgICBVbnVzZWQgdmFyaWFibGUgaW4gdGhlIHNtYWxsIHZlcnNpb24uClNvbHV0aW9uOiAgIE1vdmUgdGhlIGRlY2xhcmF0aW9uIGZvciAicCIgaW5zaWRlICNpZmRlZiBGRUFUX0xJU1RDTURTLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjEuMTg5ClByb2JsZW06ICAgIGlucHV0ZGlhbG9nKCkgZG9lc24ndCB3b3JrIHdoZW4gJ2MnIGlzIGluICdndWlvcHRpb25zJy4gKEFyaWMKCSAgICBCbHVtZXIpClNvbHV0aW9uOiAgIEZhbGwgYmFjayB0byB0aGUgaW5wdXQoKSBmdW5jdGlvbiBpbiB0aGlzIHNpdHVhdGlvbi4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMTkwIChleHRyYSkKUHJvYmxlbTogICAgVk1TOiBkb2Vzbid0IGJ1aWxkIHdpdGggR1RLIEdVSS4gIFZhcmlvdXMgb3RoZXIgcHJvYmxlbXMuClNvbHV0aW9uOiAgIEZpeCBidWlsZGluZyBmb3IgR1RLLiAgSW1wcm92ZWQgUGVybCwgUHl0aG9uIGFuZCBUQ0wgc3VwcG9ydC4KCSAgICBJbXByb3ZlZCBWTVMgZG9jdW1lbnRhdGlvbi4gKFpvbHRhbiBBcnBhZGZmeSkKCSAgICBBZGRlZCBWaW10dXRvciBmb3IgVk1TIChULiBSLiBXeWFudCkKRmlsZXM6CSAgICBydW50aW1lL2RvYy9vc192bXMudHh0LCBzcmMvSU5TVEFMTHZtcy50eHQsIHNyYy9ndWlfZ3RrX2YuaCwKCSAgICBzcmMvaWZfdGNsLmMsIHNyYy9tYWluLmMsIHNyYy9ndWlfZ3RrX3Ztcy5oLCBzcmMvTWFrZV92bXMubW1zLAoJICAgIHNyYy9vc192bXMub3B0LCBzcmMvcHJvdG8vaWZfdGNsLnBybywgdmltdHV0b3IuY29tLAoJICAgIHNyYy90ZXN0ZGlyL01ha2Vfdm1zLm1tcwoKUGF0Y2ggNi4xLjE5MQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICJ2aW0gLXMgc2NyaXB0IiBhbmQgcmVkaXJlY3RpbmcgdGhlIG91dHB1dCwgdGhlIGRlbGF5CgkgICAgZm9yIHRoZSAiT3V0cHV0IGlzIG5vdCB0byBhIHRlcm1pbmFsIiB3YXJuaW5nIHNsb3dzIFZpbSBkb3duIHRvbwoJICAgIG11Y2guClNvbHV0aW9uOiAgIERvbid0IGRlbGF5IHdoZW4gcmVhZGluZyBjb21tYW5kcyBmcm9tIGEgc2NyaXB0LgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS4xOTIKUHJvYmxlbTogICAgIjpkaWZmc3BsaXQiIGRvZXNuJ3QgYWRkICJob3IiIHRvICdzY3JvbGxvcHQnLiAoR2FyeSBKb2huc29uKQpTb2x1dGlvbjogICBBZGQgImhvciIgdG8gJ3Njcm9sbG9wdCcgZWFjaCB0aW1lICI6ZGlmZnNwbGl0IiBpcyB1c2VkLgpGaWxlczoJICAgIHNyYy9kaWZmLmMsIHNyYy9tYWluLmMKClBhdGNoIDYuMS4xOTMKUHJvYmxlbTogICAgQ3Jhc2ggaW4gaW5faWRfbGlzdCgpIGZvciBhbiBpdGVtIHdpdGggYSAiY29udGFpbmVkaW4iIGxpc3QuIChEYXZlCgkgICAgRmlzaGJ1cm4pClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIG5lZ2F0aXZlIHN5bnRheCBpZCwgdXNlZCBmb3Iga2V5d29yZHMuCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjEuMTk0ClByb2JsZW06ICAgIFdoZW4gInRfdGkiIGlzIHNldCBidXQgaXQgZG9lc24ndCBjYXVzZSBzd2FwcGluZyB0ZXJtaW5hbCBwYWdlcywKCSAgICAiWloiIG1heSBjYXVzZSB0aGUgc2hlbGwgcHJvbXB0IHRvIGFwcGVhciBvbiB0b3Agb2YgdGhlIGZpbGUtd3JpdGUKCSAgICBtZXNzYWdlLgpTb2x1dGlvbjogICBTY3JvbGwgdGhlIHRleHQgdXAgaW4gdGhlIFZpbSBwYWdlIGJlZm9yZSBzd2FwcGluZyB0byB0aGUgdGVybWluYWwKCSAgICBwYWdlLiAoTWljaGFlbCBTY2hyb2VkZXIpCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4xLjE5NQpQcm9ibGVtOiAgICBUaGUgcXVpY2tmaXggYW5kIHByZXZpZXcgd2luZG93cyBhbHdheXMga2VlcCB0aGVpciBoZWlnaHQsIHdoaWxlCgkgICAgb3RoZXIgd2luZG93cyBjYW4ndCBmaXggdGhlaXIgaGVpZ2h0LgpTb2x1dGlvbjogICBBZGQgdGhlICd3aW5maXhoZWlnaHQnIG9wdGlvbiwgc28gdGhhdCBhIGZpeGVkIGhlaWdodCBjYW4gYmUKCSAgICBzcGVjaWZpZWQgZm9yIGFueSB3aW5kb3cuICBBbHNvIGZpeCB0aGF0IHRoZSB3aWxkbWVudSBtYXkgcmVzaXplIGEKCSAgICBvbmUtbGluZSB3aW5kb3cgdG8gYSB0d28tbGluZSB3aW5kb3cgaWYgJ2xzJyBpcyB6ZXJvLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBydW50aW1lL29wdHdpbi52aW0sIHNyYy9leF9jbWRzLmMsCgkgICAgc3JjL2V4X2dldGxuLmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9vcHRpb24uYywgc3JjL3F1aWNrZml4LmMsCgkgICAgc3JjL3NjcmVlbi5jLCBzcmMvc3RydWN0cy5oLCBzcmMvd2luZG93LmMKClBhdGNoIDYuMS4xOTYgIChkZXBlbmRzIG9uIDYuMS4wODQpClByb2JsZW06ICAgIE9uIE1hYyBPUyBYIDEwLjIgZ2VuZXJhdGluZyBvc2RlZi5oIGZhaWxzLgpTb2x1dGlvbjogICBBZGQgLW5vLWNwcC1wcmVjb21wIHRvIGF2b2lkIHVzaW5nIHByZWNvbXBpbGVkIGhlYWRlciBmaWxlcywgd2hpY2gKCSAgICBkaXNhYmxlcyBwcmludGluZyB0aGUgc2VhcmNoIHBhdGguIChCZW4gRm93bGVyKQpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4xLjE5NwpQcm9ibGVtOiAgICAiOmhlbHAgPEMtVj48Qy1cPjxDLVY+PEMtTj4iIChyZXN1bHRpbmcgaW4gPDFjPjwwZT4pIGdpdmVzIGFuCgkgICAgZXJyb3IgbWVzc2FnZS4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIERvdWJsZSB0aGUgYmFja3NsYXNoIGluICJDVFJMLVwiLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMS4xOTggKGV4dHJhKSAoZGVwZW5kcyBvbiA2LjEuMDc2KQpQcm9ibGVtOiAgICBNYWMgT1MgWDogRGlhbG9ndWVzIGRvbid0IHdvcmsuClNvbHV0aW9uOiAgIEZpeCBhIGNyYXNoaW5nIHByb2JsZW0gZm9yIHNvbWUgR1VJIGRpYWxvZ3Vlcy4gIEZpeCBhIHByb2JsZW0gd2hlbgoJICAgIHNhdmluZyB0byBhIG5ldyBmaWxlIGZyb20gdGhlIEdVSS4gKFBldGVyIEN1Y2thKQpGaWxlczoJICAgIHNyYy9mZWF0dXJlLmgsIHNyYy9ndWlfbWFjLmMKClBhdGNoIDYuMS4xOTkKUHJvYmxlbTogICAgJ2d1aWZvbnR3aWRlJyBkb2Vzbid0IHdvcmsgb24gV2luMzIuClNvbHV0aW9uOiAgIE91dHB1dCBlYWNoIHdpZGUgY2hhcmFjdGVyIHNlcGFyYXRlbHkuIChNaWNoYWVsIEdlZGRlcykKRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMS4yMDAKUHJvYmxlbTogICAgIjpzeW4gc3luYyBmcm9tc3RhcnQiIGlzIG5vdCBza2lwcGVkIGFmdGVyICI6aWYgMCIuICBUaGlzIGNhbiBtYWtlCgkgICAgc3ludGF4IGhpZ2hsaWdodGluZyB2ZXJ5IHNsb3cuClNvbHV0aW9uOiAgIENoZWNrICJlYXAtPnNraXAiIGFwcHJvcHJpYXRlbHkuIChSb2IgV2VzdCkKRmlsZXM6CSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMS4yMDEgKGRlcGVuZHMgb24gNi4xLjE5MikKUHJvYmxlbTogICAgV2FybmluZyBmb3IgaWxsZWdhbCBwb2ludGVyIGNvbWJpbmF0aW9uLiAoWm9sdGFuIEFycGFkZmZ5KQpTb2x1dGlvbjogICBBZGQgYSB0eXBlY2FzdC4KRmlsZXM6CSAgICBzcmMvZGlmZi5jCgpQYXRjaCA2LjEuMjAyICAoZXh0cmEpKGRlcGVuZHMgb24gNi4xLjE0OCkKUHJvYmxlbTogICAgV2luMzI6IGZpbGV3cml0YWJsZSgpIGRvZXNuJ3Qgd29yayBwcm9wZXJseSBvbiBkaXJlY3Rvcmllcy4KU29sdXRpb246ICAgZml4IGZpbGV3cml0YWJsZSgpLiAoTWlrZSBXaWxsaWFtcykKRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4xLjIwMwpQcm9ibGVtOiAgICAiOiVzL34vLyIgY2F1c2VzIGEgY3Jhc2ggYWZ0ZXIgIjolcy94Ly8iLiAoR2FyeSBIb2xsb3dheSkKU29sdXRpb246ICAgQXZvaWQgcmVhZGluZyBwYXN0IHRoZSBlbmQgb2YgYSBsaW5lIHdoZW4gIn4iIGlzIGVtcHR5LgpGaWxlczoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4xLjIwNCAoZGVwZW5kcyBvbiA2LjEuMTI5KQpQcm9ibGVtOiAgICBXYXJuaW5nIGZvciBhbiBpbGxlZ2FsIHBvaW50ZXIgb24gU29sYXJpcy4KU29sdXRpb246ICAgQWRkIGEgdHlwZWNhc3QuIChEZXJlayBXeWF0dCkKRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4xLjIwNQpQcm9ibGVtOiAgICBUaGUgZ3ppcCBwbHVnaW4gY2hhbmdlcyB0aGUgYWx0ZXJuYXRlIGZpbGUgd2hlbiBlZGl0aW5nIGEKCSAgICBjb21wcmVzc2VkIGZpbGUuIChPbGl2ZXIgRnVjaHMpClNvbHV0aW9uOiAgIFRlbXBvcmFyaWx5IHJlbW92ZSB0aGUgJ2EnIGFuZCAnQScgZmxhZ3MgZnJvbSAnY3BvJy4KRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9nemlwLnZpbQoKUGF0Y2ggNi4xLjIwNgpQcm9ibGVtOiAgICBUaGUgc2NyaXB0IGdlbmVyYXRlZCB3aXRoICI6bWtzZXNzaW9uIiBkb2Vzbid0IHdvcmsgcHJvcGVybHkgd2hlbgoJICAgIHNvbWUgY29tbWFuZHMgYXJlIG1hcHBlZC4KU29sdXRpb246ICAgVXNlICI6bm9ybWFsISIgaW5zdGVhZCBvZiAiOm5vcm1hbCIuICBBbmQgdXNlICI6d2luY21kIiB3aGVyZQoJICAgIHBvc3NpYmxlLiAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZm9sZC5jCgpQYXRjaCA2LjEuMjA3ClByb2JsZW06ICAgIEluZGVudGluZyBhIEphdmEgZmlsZSBoYW5ncyBiZWxvdyBhIGxpbmUgd2l0aCBhIGNvbW1lbnQgYWZ0ZXIgYQoJICAgIGNvbW1hbmQuClNvbHV0aW9uOiAgIEJyZWFrIG91dCBvZiBhIGxvb3AuIChBbmRyZSBQYW5nKQoJICAgIEFsc28gbGluZSB1cCB9IHdpdGggbWF0Y2hpbmcgey4KRmlsZXM6CSAgICBydW50aW1lL2luZGVudC9qYXZhLnZpbQoKUGF0Y2ggNi4xLjIwOApQcm9ibGVtOiAgICBDYW4ndCB1c2UgdGhlIGJ1ZmZlciBudW1iZXIgZnJvbSB0aGUgUHl0aG9uIGludGVyZmFjZS4KU29sdXRpb246ICAgQWRkIGJ1ZmZlci5udW1iZXIuIChNaWNoYWwgVml0ZWNlaykKRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMS4yMDkKUHJvYmxlbTogICAgUHJpbnRpbmcgZG9lc24ndCB3b3JrIG9uIE1hYyBPUyBjbGFzc2ljLgpTb2x1dGlvbjogICBVc2UgYSAiOiIgZm9yIHBhdGggc2VwYXJhdG9yIHdoZW4gb3BlbmluZyB0aGUgcmVzb3VyY2UgZmlsZS4gKEF4ZWwKCSAgICBLaWVsaG9ybikKRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjIxMApQcm9ibGVtOiAgICBXaGVuIHRoZXJlIGlzIGFuIGljb252KCkgY29udmVyc2lvbiBlcnJvciB3aGVuIHJlYWRpbmcgYSBmaWxlCgkgICAgdGhlcmUgY2FuIGJlIGFuIGVycm9yIHRoZSBuZXh0IHRpbWUgaWNvbnYoKSBpcyB1c2VkLgpTb2x1dGlvbjogICBSZXNldCB0aGUgc3RhdGUgb2YgdGhlIGljb252KCkgZGVzY3JpcHRvci4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4yMTEKUHJvYmxlbTogICAgVGhlIG1lc3NhZ2UgInVzZSAhIHRvIG92ZXJyaWRlIiBpcyBjb25mdXNpbmcuClNvbHV0aW9uOiAgIE1ha2UgaXQgImFkZCAhIHRvIG92ZXJyaWRlIi4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9ldmFsLmMsIHNyYy9leF9kb2NtZC5jLCBzcmMvZmlsZWlvLmMsCgkgICAgc3JjL2dsb2JhbHMuaAoKUGF0Y2ggNi4xLjIxMgpQcm9ibGVtOiAgICBXaGVuIFZpbSB3YXMgc3RhcnRlZCB3aXRoICItUiIgIjpuZXciIGNyZWF0ZXMgYSBidWZmZXIKCSAgICAnbm9yZWFkb25seScgd2hpbGUgIjplbmV3IiBoYXMgJ3JlYWRvbmx5JyBzZXQuIChQcmViZW4gR3VsZGJlcmcpClNvbHV0aW9uOiAgIERvbid0IHNldCAncmVhZG9ubHkgaW4gYSBuZXcgZW1wdHkgYnVmZmVyIGZvciAiOmVuZXciLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMjEzClByb2JsZW06ICAgIFVzaW5nIENUUkwtVyBIIG1heSBjYXVzZSBhIGJpZyBnYXAgdG8gYXBwZWFyIGJlbG93IHRoZSBsYXN0CgkgICAgd2luZG93LiAoQXJpYyBCbHVtZXIpClNvbHV0aW9uOiAgIERvbid0IHNldCB0aGUgd2luZG93IGhlaWdodCB3aGVuIHRoZXJlIGlzIGEgdmVydGljYWwgc3BsaXQuCgkgICAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvd2luZG93LmMKClBhdGNoIDYuMS4yMTQKUHJvYmxlbTogICAgV2hlbiBpbnN0YWxsaW5nIFZpbSBhbmQgdGhlIHJ1bnRpbWUgZmlsZXMgd2VyZSBjaGVja2VkIG91dCBmcm9tCgkgICAgQ1ZTIHRoZSBDVlMgZGlyZWN0b3JpZXMgd2lsbCBhbHNvIGJlIGluc3RhbGxlZC4KU29sdXRpb246ICAgQXZvaWQgaW5zdGFsbGluZyB0aGUgQ1ZTIGRpcnMgYW5kIHRoZWlyIGNvbnRlbnRzLgpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4xLjIxNQpQcm9ibGVtOiAgICBXaW4zMjogIjpwd2QiIHVzZXMgYmFja3NsYXNoZXMgZXZlbiB3aGVuICdzaGVsbHNsYXNoJyBpcyBzZXQuCgkgICAgKFhpYW5namlhbmcgTWEpClNvbHV0aW9uOiAgIEFkanVzdCBiYWNrc2xhc2hlcyBiZWZvcmUgcHJpbnRpbmcgdGhlIG1lc3NhZ2UuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4yMTYKUHJvYmxlbTogICAgV2hlbiBkeW5hbWljYWxseSBsb2FkaW5nIHRoZSBpY29udiBsaWJyYXJ5LCB0aGUgZXJyb3IgY29kZXMgbWF5IGJlCgkgICAgY29uZnVzZWQuClNvbHV0aW9uOiAgIFVzZSBzcGVjaWZpYyBlcnJvciBjb2RlcyBmb3IgaWNvbnYgYW5kIHJlZGVmaW5lIHRoZW0gZm9yIGR5bmFtaWMKCSAgICBsb2FkaW5nLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9maWxlaW8uYywgc3JjL21ieXRlLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4xLjIxNwpQcm9ibGVtOiAgICBXaGVuIHNvdXJjaW5nIHRoZSBzYW1lIFZpbSBzY3JpcHQgdXNpbmcgYSBkaWZmZXJlbnQgbmFtZSAoc3ltYm9saWMKCSAgICBsaW5rIG9yIE1TLVdpbmRvd3MgOC4zIG5hbWUpIGl0IGlzIGxpc3RlZCB0d2ljZSB3aXRoCgkgICAgIjpzY3JpcHRuYW1lcyIuICAoVG9ueSBNZWNoZWx5bmNrKQpTb2x1dGlvbjogICBUdXJuIHRoZSBzY3JpcHQgbmFtZSBpbnRvIGEgZnVsbCBwYXRoIGJlZm9yZSB1c2luZyBpdC4gIE9uIFVuaXgKCSAgICBjb21wYXJlIGlub2RlL2RldmljZSBudW1iZXJzLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjEuMjE4ClByb2JsZW06ICAgIE5vIGVycm9yIG1lc3NhZ2UgZm9yIHVzaW5nIHRoZSBmdW5jdGlvbiBhcmd1bWVudCAiNSsiLiAgKFNlcnZhdGl1cwoJICAgIEJyYW5kdCkKU29sdXRpb246ICAgR2l2ZSBhbiBlcnJvciBtZXNzYWdlIGlmIGEgZnVuY3Rpb24gb3IgdmFyaWFibGUgaXMgZXhwZWN0ZWQgYnV0IGlzCgkgICAgbm90IGZvdW5kLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4yMTkKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiOmFtZW51IDpiIDE8Q1I+IiB3aXRoIGEgVmlzdWFsIHNlbGVjdGlvbiBhbmQKCSAgICAnaW5zZXJ0bW9kZScgaXMgc2V0LCBWaW0gZG9lcyBub3QgcmV0dXJuIHRvIEluc2VydCBtb2RlLiAoTWlja2FlbAoJICAgIE1hcmNoYW5kKQpTb2x1dGlvbjogICBBZGQgdGhlIGNvbW1hbmQgQ1RSTC1cIENUUkwtRyB0aGF0IGdvZXMgdG8gSW5zZXJ0IG1vZGUgaWYKCSAgICAnaW5zZXJ0bW9kZScgaXMgc2V0IGFuZCB0byBOb3JtYWwgbW9kZSBvdGhlcndpc2UuICBBcHBlbmQgdGhpcyB0bwoJICAgIG1lbnVzIGRlZmluZWQgd2l0aCAiOmFtZW51Ii4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuMjIwClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSBCdWZSZWFkUG9zdCBhdXRvY29tbWFuZCB0aGF0IGNoYW5nZXMgdGhlIGxpbmUgY291bnQsCgkgICAgZS5nLiwgIiQtMWpvaW4iLCByZWxvYWRpbmcgYSBmaWxlIHRoYXQgd2FzIGNoYW5nZWQgb3V0c2lkZSBWaW0KCSAgICBkb2VzIG5vdCB3b3JrIHByb3Blcmx5LiAoQWxhbiBHIElzYWFjKQpTb2x1dGlvbjogICBNYWtlIHRoZSBidWZmZXIgZW1wdHkgYmVmb3JlIHJlYWRpbmcgdGhlIG5ldyB2ZXJzaW9uIG9mIHRoZSBmaWxlLgoJICAgIFNhdmUgdGhlIGxpbmVzIGluIGEgZHVtbXkgYnVmZmVyLCBzbyB0aGF0IHRoZXkgY2FuIGJlIHB1dCBiYWNrCgkgICAgd2hlbiByZWFkaW5nIHRoZSBmaWxlIGZhaWxzLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2V4X2NtZHMuYywgc3JjL2ZpbGVpby5jLCBzcmMvZ2xvYmFscy5oLAoJICAgIHNyYy9wcm90by9idWZmZXIucHJvCgpQYXRjaCA2LjEuMjIxClByb2JsZW06ICAgIENoYW5naW5nIGNhc2UgbWF5IG5vdCB3b3JrIHByb3Blcmx5LCBkZXBlbmRpbmcgb24gdGhlIGN1cnJlbnQKCSAgICBsb2NhbGUuClNvbHV0aW9uOiAgIEFkZCB0aGUgJ2Nhc2VtYXAnIG9wdGlvbiB0byBsZXQgdGhlIHVzZXIgY2hvc2UgaG93IGNoYW5naW5nIGNhc2UKCSAgICBpcyB0byBiZSBkb25lLgoJICAgIEFsc28gZml4IGxvd2VyaW5nIGNhc2Ugd2hlbiBhbiBVVEYtOCBjaGFyYWN0ZXIgZG9lc24ndCBrZWVwIHRoZQoJICAgIHNhbWUgYnl0ZSBsZW5ndGguCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9hc2NpaS5oLCBzcmMvYXV0by9jb25maWd1cmUsCgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvY2hhcnNldC5jLCBzcmMvY29uZmlnLmguaW4sIHNyYy9jb25maWd1cmUuaW4sCgkgICAgc3JjL2RpZmYuYywgc3JjL2VkaXQuYywgc3JjL2V2YWwuYywgc3JjL2V4X2NtZHMyLmMsCgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvZmlsZWlvLmMsIHNyYy9ndWlfYW1pZ2EuYwoJICAgIHNyYy9ndWlfbWFjLmMsIHNyYy9ndWlfcGhvdG9uLmMsIHNyYy9ndWlfdzQ4LmMsIHNyYy9ndWlfYmVvcy5jYywKCSAgICBzcmMvbWFjcm9zLmgsIHNyYy9tYWluLmMsIHNyYy9tYnl0ZS5jLCBzcmMvbWVudS5jLCBzcmMvbWVzc2FnZS5jLAoJICAgIHNyYy9taXNjMS5jLCBzcmMvbWlzYzIuYywgc3JjL29wdGlvbi5jLCBzcmMvb3NfbXNkb3MuYywKCSAgICBzcmMvb3NfbXN3aW4uYywgc3JjL3Byb3RvL2NoYXJzZXQucHJvLCBzcmMvcmVnZXhwLmMsIHNyYy9vcHRpb24uaCwKCSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMS4yMjIgKGRlcGVuZHMgb24gNi4xLjIxOSkKUHJvYmxlbTogICAgUGF0Y2ggNi4xLjIxOSB3YXMgaW5jb21wbGV0ZS4KU29sdXRpb246ICAgQWRkIHRoZSBjaGFuZ2VzIGZvciAiOmFtZW51Ii4KRmlsZXM6CSAgICBzcmMvbWVudS5jCgpQYXRjaCA2LjEuMjIzIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gSU1FIGlzIGFjdGl2YXRlZCAnaW1pbnNlcnQnIGlzIHNldCwgYnV0IGl0IG1pZ2h0IG5ldmVyCgkgICAgYmUgcmVzZXQgd2hlbiBJTUUgaXMgZGlzYWJsZWQuIChNdXJhb2thIFRhcm8pCgkgICAgQWxsIHN5c3RlbXM6ICdpbWluc2VydCcgaXMgc2V0IHRvIDIgd2hlbiBsZWF2aW5nIEluc2VydCBtb2RlLCBldmVuCgkgICAgd2hlbiBsYW5nbWFwIGlzIGJlaW5nIHVzZWQuIChQZXRlciBWYWxhY2gpClNvbHV0aW9uOiAgIERvbid0IHNldCAiYl9wX2ltaW5zZXJ0IiBpbiBfT25JbWVOb3RpZnkoKS4gKE11cmFva2EgVGFybykKCSAgICBEb24ndCBzdG9yZSB0aGUgc3RhdHVzIG9mIHRoZSBpbnB1dCBtZXRob2QgaW4gJ2ltaW5zZXJ0JyB3aGVuCgkgICAgJ2ltaW5zZXJ0JyBpcyBvbmUuICBBbHNvIGZvciBlZGl0aW5nIHRoZSBjb21tYW5kIGxpbmUgYW5kIGZvcgoJICAgIGFyZ3VtZW50cyB0byBOb3JtYWwgbW9kZSBjb21tYW5kcy4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL2d1aV93MzIuYywgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuMjI0ClByb2JsZW06ICAgICJleHBhbmQoJyRWQVInKSIgcmV0dXJucyBhbiBlbXB0eSBzdHJpbmcgd2hlbiB0aGUgZXhwYW5kZWQgJFZBUgoJICAgIGlzIG5vdCBhbiBleGlzdGluZyBmaWxlLiAoQXJpYyBCbHVtZXIpClNvbHV0aW9uOiAgIEluY2x1ZGVkIG5vbi1leGlzdGluZyBmaWxlcywgYXMgZG9jdW1lbnRlZC4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMjI1ClByb2JsZW06ICAgIFVzaW5nIDxDLU8+PEMtXj4gaW4gSW5zZXJ0IG1vZGUgaGFzIGEgZGVsYXkgd2hlbiBzdGFydGluZyAidmltIC11CgkgICAgTk9ORSIgYW5kICI6c2V0IG5vY3AgaGlkZGVuIi4gKEVtbWFudWVsKSAgZG9fZWNtZCgpIHVzZXMKCSAgICBmaWxlaW5mbygpLCB0aGUgcmVkcmF3IGlzIGRvbmUgYWZ0ZXIgYSBkZWxheSB0byBnaXZlIHRoZSB1c2VyIHRpbWUKCSAgICB0byByZWFkIHRoZSBtZXNzYWdlLgpTb2x1dGlvbjogICBQdXQgdGhlIG1lc3NhZ2UgZnJvbSBmaWxlaW8oKSBpbiAia2VlcF9tc2ciLCBzbyB0aGF0IHRoZSByZWRyYXcgaXMKCSAgICBkb25lIGJlZm9yZSB0aGUgZGVsYXkgKHN0aWxsIG5lZWRlZCB0byBhdm9pZCB0aGUgbW9kZSBtZXNzYWdlCgkgICAgb3ZlcndyaXRlcyB0aGUgZmlsZWluZm8oKSBtZXNzYWdlKS4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4yMjYKUHJvYmxlbTogICAgVXNpbmcgIjpkZWJ1ZyIgd2l0aCBhICI6bm9ybWFsIiBjb21tYW5kIG1heSBjYXVzZSBhIGhhbmcuICAoQ29saW4KCSAgICBLZWl0aCkKU29sdXRpb246ICAgU2F2ZSB0aGUgdHlwZWFoZWFkIGJ1ZmZlciB3aGVuIG9idGFpbmluZyBhIGRlYnVnIGNvbW1hbmQuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMsIHNyYy9nZXRjaGFyLmMsIHNyYy9wcm90by9nZXRjaGFyLnBybwoKUGF0Y2ggNi4xLjIyNwpQcm9ibGVtOiAgICBJdCBpcyBwb3NzaWJsZSB0byB1c2UgYSB2YXJpYWJsZSBuYW1lICJhc2RmOmFzZGYiIGFuZCAiOmxldCBqOmFzZGYKCSAgICA9IDUiIGRvZXMgbm90IGdpdmUgYW4gZXJyb3IgbWVzc2FnZS4gKE1pa29sYWogTWFjaG93c2tpKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSAiOiIgaW5zaWRlIHRoZSB2YXJpYWJsZSBuYW1lLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4yMjggKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIHNwZWNpYWwgb3V0cHV0IGZ1bmN0aW9uIGZvciBIYW5ndWwgaXMgdXNlZCB0b28gb2Z0ZW4sCgkgICAgY2F1c2luZyBzcGVjaWFsIGhhbmRsaW5nIGZvciBvdGhlciBzaXR1YXRpb25zIHRvIGJlIHNraXBwZWQuCgkgICAgYkluQ29tcG9zaXRpb24gaXMgYWx3YXlzIEZBTFNFLCBjYXVzaW5nIEltZUdldFRlbXBDb21wb3NpdGlvbigpCgkgICAgYWx3YXlzIHRvIHJldHVybiBOVUxMLgpTb2x1dGlvbjogICBSZW1vdmUgSGFuRXh0VGV4dE91dCgpLiAgRGVsZXRlIHRoZSBkZWFkIGNvZGUgYXJvdW5kCgkgICAgYkluQ29tcG9zaXRpb24gYW5kIEltZUdldFRlbXBDb21wb3NpdGlvbigpLgpGaWxlczoJICAgIHNyYy9ndWlfdzE2LmMsIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMS4yMjkKUHJvYmxlbTogICAgV2luMzI6IENvbnZlcnNpb24gdG8vZnJvbSBvZnRlbiB1c2VkIGNvZGVwYWdlcyByZXF1aXJlcyB0aGUgaWNvbnYKCSAgICBsaWJyYXJ5LCB3aGljaCBpcyBub3QgYWx3YXlzIGF2YWlsYWJsZS4KU29sdXRpb246ICAgVXNlIHN0YW5kYXJkIE1TLVdpbmRvd3MgZnVuY3Rpb25zIGZvciB0aGUgY29udmVyc2lvbiB3aGVuCgkgICAgcG9zc2libGUuIChtb3N0bHkgYnkgR2xlbm4gTWF5bmFyZCkKCSAgICBBbHNvIGZpeGVzIG1pc3NpbmcgZGVjbGFyYXRpb24gZm9yIHBhdGNoIDYuMS4yMjAuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuMjMwIChleHRyYSkKUHJvYmxlbTogICAgV2luMTY6IGJ1aWxkaW5nIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgRXhjbHVkZSB0aGUgWEJVVFRPTiBoYW5kbGluZy4gKFZpbmNlIE5lZ3JpKQpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMS4yMzEKUHJvYmxlbTogICAgRG91YmxlIGNsaWNraW5nIHdpdGggdGhlIG1vdXNlIHRvIHNlbGVjdCBhIHdvcmQgZG9lcyBub3Qgd29yayBmb3IKCSAgICBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIFVzZSB2aW1faXN3b3JkYygpIGluc3RlYWQgb2YgdmltX2lzSURjKCkuICBUaGlzIG1lYW5zICdpc2tleXdvcmQnCgkgICAgaXMgdXNlZCBpbnN0ZWFkIG9mICdpc2lkZW50Jy4gIEFsc28gZml4IHRoYXQgbWl4aW5nIEFTQ0lJIHdpdGgKCSAgICBtdWx0aS1ieXRlIHdvcmQgY2hhcmFjdGVycyBkb2Vzbid0IHdvcmssIHRoZSBtb3VzZSBjbGFzcyBmb3IKCSAgICBwdW5jdHVhdGlvbiBhbmQgd29yZCBjaGFyYWN0ZXJzIHdhcyBtaXhlZCB1cC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMS4yMzIgKGRlcGVuZHMgb24gNi4xLjIyNikKUHJvYmxlbTogICAgVXNpbmcgZXhfbm9ybWFsX2J1c3kgd2hpbGUgaXQgbWlnaHQgbm90IGJlIGF2YWlsYWJsZS4gKEF4ZWwKCSAgICBLaWVsaG9ybikKU29sdXRpb246ICAgT25seSB1c2UgZXhfbm9ybWFsX2J1c3kgd2hlbiBGRUFUX0VYX0VYVFJBIGlzIGRlZmluZWQuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMS4yMzMKUHJvYmxlbTogICAgIjpoZWxwIGV4cHItfHwiIGRvZXMgbm90IHdvcmsuClNvbHV0aW9uOiAgIERvbid0IHVzZSB0aGUgJ3wnIGFzIGEgY29tbWFuZCBzZXBhcmF0b3IKRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjEuMjM0IChkZXBlbmRzIG9uIDYuMS4yMTcpClByb2JsZW06ICAgIEdldCBhIHdhcm5pbmcgZm9yIHVzaW5nIGEgbmVnYXRpdmUgdmFsdWUgZm9yIHN0X2Rldi4KU29sdXRpb246ICAgRG9uJ3QgYXNzaWduIGEgbmVnYXRpdmUgdmFsdWUgdG8gc3RfZGV2LgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjEuMjM1IChkZXBlbmRzIG9uIDYuMS4yMjMpClByb2JsZW06ICAgICdpbWluc2VydCcgaXMgY2hhbmdlZCBmcm9tIDEgdG8gMiB3aGVuIGxlYXZpbmcgSW5zZXJ0IG1vZGUuIChQZXRlcgoJICAgIFZhbGFjaCkKU29sdXRpb246ICAgQ2hlY2sgIlN0YXRlIiBiZWZvcmUgcmVzZXR0aW5nIGl0IHRvIE5PUk1BTC4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjEuMjM2ClByb2JsZW06ICAgIE1lbW9yeSBsZWFrcyB3aGVuIGFwcGVuZGluZyBsaW5lcyBmb3IgIjpkaWZmZ2V0IiBvciAiOmRpZmZwdXQiIGFuZAoJICAgIHdoZW4gcmVsb2FkaW5nIGEgY2hhbmdlZCBidWZmZXIuClNvbHV0aW9uOiAgIEZyZWUgYSBsaW5lIGFmdGVyIGNhbGxpbmcgbWxfYXBwZW5kKCkuCkZpbGVzOgkgICAgc3JjL2RpZmYuYywgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuMjM3ClByb2JsZW06ICAgIFB1dHRpbmcgaW4gVmlzdWFsIGJsb2NrIG1vZGUgZG9lcyBub3Qgd29yayBjb3JyZWN0bHkgd2hlbiAiJCIgd2FzCgkgICAgdXNlZCBvciB3aGVuIHRoZSBmaXJzdCBsaW5lIGlzIHNob3J0LiAgKENocmlzdGlhbiBNaWNob24pClNvbHV0aW9uOiAgIEZpcnN0IGRlbGV0ZSB0aGUgc2VsZWN0ZWQgdGV4dCBhbmQgdGhlbiBwdXQgdGhlIG5ldyB0ZXh0LiAgU2F2ZQoJICAgIGFuZCByZXN0b3JlIHJlZ2lzdGVycyBhcyBuZWNlc3NhcnkuCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL25vcm1hbC5jLCBzcmMvb3BzLmMsIHNyYy9wcm90by9vcHMucHJvLAoJICAgIHNyYy92aW0uaAoKUGF0Y2ggNi4xLjIzOCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgImljb249IiBhcmd1bWVudCBmb3IgdGhlICI6bWVudSIgY29tbWFuZCBkb2VzIG5vdAoJICAgIHNlYXJjaCBmb3IgdGhlIGJpdG1hcCBmaWxlLgpTb2x1dGlvbjogICBFeHBhbmQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFuZCBzZWFyY2ggZm9yIHRoZSBiaXRtYXAgZmlsZS4KCSAgICAoVmluY2UgTmVncmkpCgkgICAgTWFrZSBpdCBjb25zaXN0ZW50LCB1c2UgdGhlIHNhbWUgbWVjaGFuaXNtIGZvciBYMTEgYW5kIEdUSy4KRmlsZXM6CSAgICBzcmMvZ3VpLmMgc3JjL2d1aV9ndGsuYywgc3JjL2d1aV93MzIuYywgc3JjL2d1aV94MTEuYywKCSAgICBzcmMvcHJvdG8vZ3VpLnBybwoKUGF0Y2ggNi4xLjIzOQpQcm9ibGVtOiAgICBHaXZpbmcgYW4gZXJyb3IgZm9yIG1pc3NpbmcgOmVuZGlmIG9yIDplbmR3aGlsZSB3aGVuIGJlaW5nCgkgICAgaW50ZXJydXB0ZWQuClNvbHV0aW9uOiAgIERvbid0IGdpdmUgdGhlc2UgbWVzc2FnZXMgd2hlbiBpbnRlcnJ1cHRlZC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4xLjI0MCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyIHdpdGggQkNDIDU6IENQVSBtYXkgYmUgZGVmaW5lZCBpbiB0aGUgZW52aXJvbm1lbnQsIHdoaWNoCgkgICAgY2F1c2VzIGEgd3JvbmcgYXJndW1lbnQgZm9yIHRoZSBjb21waWxlci4gKFdhbHRlciBCcmlzY29lKQpTb2x1dGlvbjogICBVc2UgQ1BVTlIgaW5zdGVhZCBvZiBDUFUuCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1hawoKUGF0Y2ggNi4xLjI0MQpQcm9ibGVtOiAgICBTb21ldGhpbmcgZ29lcyB3cm9uZyB3aGVuIGRyYXdpbmcgb3IgdW5kcmF3aW5nIHRoZSBjdXJzb3IuClNvbHV0aW9uOiAgIFJlbWVtYmVyIHdoZW4gdGhlIGN1cnNvciBpbnZhbGlkIGluIGEgYmV0dGVyIHdheS4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMS4yNDIKUHJvYmxlbTogICAgV2hlbiBwYXN0aW5nIGEgbGFyZ2UgbnVtYmVyIG9mIGxpbmVzIG9uIHRoZSBjb21tYW5kIGxpbmUgaXQgaXMgbm90CgkgICAgcG9zc2libGUgdG8gaW50ZXJydXB0LiAoSmVhbiBKb3JkYWFuKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYW4gaW50ZXJydXB0IGFmdGVyIGVhY2ggcGFzdGVkIGxpbmUuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjEuMjQzIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gdGhlIE9MRSB2ZXJzaW9uIGlzIHN0YXJ0ZWQgYW5kIHdhc24ndCByZWdpc3RlcmVkLCBhCgkgICAgbWVzc2FnZSBwb3BzIHVwIHRvIHN1Z2dlc3QgcmVnaXN0ZXJpbmcsIGV2ZW4gd2hlbiB0aGlzIGlzbid0CgkgICAgcG9zc2libGUgKHdoZW4gdGhlIHJlZ2lzdHJ5IGlzIG5vdCB3cml0YWJsZSkuClNvbHV0aW9uOiAgIENoZWNrIGlmIHJlZ2lzdGVyaW5nIGlzIHBvc3NpYmxlIGJlZm9yZSBhc2tpbmcgd2hldGhlciBpdCBzaG91bGQKCSAgICBiZSBkb25lLiAoV2FsdGVyIEJyaXNjb2UpCgkgICAgQWxzbyBhdm9pZCByZXN0YXJ0aW5nIFZpbSBhZnRlciByZWdpc3RlcmluZy4KRmlsZXM6CSAgICBzcmMvaWZfb2xlLmNwcAoKUGF0Y2ggNi4xLjI0NApQcm9ibGVtOiAgICBQYXRjaCA2LjEuMjM3IHdhcyBtaXNzaW5nIHRoZSBkaWZmIGZvciB2aW0uaC4gKElnb3IgR29sZGVuYmVyZykKU29sdXRpb246ICAgSW5jbHVkZSBpdCBoZXJlLgpGaWxlczoJICAgIHNyYy92aW0uaAoKUGF0Y2ggNi4xLjI0NQpQcm9ibGVtOiAgICBDb21wYXJpbmcgd2l0aCBpZ25vcmVkIGNhc2UgZG9lcyBub3Qgd29yayBwcm9wZXJseSBmb3IgVW5pY29kZQoJICAgIHdpdGggYSBsb2NhbGUgd2hlcmUgY2FzZSBmb2xkaW5nIGFuIEFTQ0lJIGNoYXJhY3RlciByZXN1bHRzIGluIGEKCSAgICBtdWx0aS1ieXRlIGNoYXJhY3Rlci4gKEdsZW5uIE1heW5hcmQpClNvbHV0aW9uOiAgIEhhbmRsZSBpZ25vcmUtY2FzZSBjb21wYXJlIGZvciBVbmljb2RlIGRpZmZlcmVudGx5LgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjEuMjQ2ClByb2JsZW06ICAgICI6Ymxhc3QiIGdvZXMgdG8gdGhlIGZpcnN0IGJ1ZmZlciBpZiB0aGUgbGFzdCBvbmUgaXMgdW5saXN0ZWQuCgkgICAgKEFuZHJldyBTdHJ5a2VyKQpTb2x1dGlvbjogICBGcm9tIHRoZSBsYXN0IGJ1ZmZlciBzZWFyY2ggYmFja3dhcmRzIGZvciB0aGUgZmlyc3QgbGlzdGVkIGJ1ZmZlcgoJICAgIGluc3RlYWQgb2YgZm9yd2FyZHMuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4yNDcKUHJvYmxlbTogICAgQUNMIHN1cHBvcnQgZG9lc24ndCBhbHdheXMgd29yayBwcm9wZXJseS4KU29sdXRpb246ICAgQWRkIGEgY29uZmlndXJlIGFyZ3VtZW50IHRvIGRpc2FibGUgQUNMICItLWRpc2FibGUtYWNsIi4gKFRoaWVycnkKCSAgICBWaWduYXVkKQpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4xLjI0OApQcm9ibGVtOiAgICBUeXBpbmcgJ3EnIGF0IHRoZSBtb3JlLXByb21wdCBmb3IgIjpsZXQiIGRvZXMgbm90IHF1aXQgdGhlCgkgICAgbGlzdGluZy4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBRdWl0IHRoZSBsaXN0aW5nIHdoZW4gZ290X2ludCBpcyBzZXQuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjI0OQpQcm9ibGVtOiAgICBDYW4ndCBleHBhbmQgYSBwYXRoIG9uIHRoZSBjb21tYW5kIGxpbmUgaWYgaXQgaW5jbHVkZXMgYSAifCIgYXMgYQoJICAgIHRyYWlsIGJ5dGUgb2YgYSBtdWx0aS1ieXRlIGNoYXJhY3Rlci4KU29sdXRpb246ICAgQ2hlY2sgZm9yIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjI1MApQcm9ibGVtOiAgICBXaGVuIGNoYW5naW5nIHRoZSB2YWx1ZSBvZiAnbGluZXMnIGluc2lkZSB0aGUgZXhwcmVzc2lvbiBzZXQgd2l0aAoJICAgICdkaWZmZXhwcicgVmltIG1pZ2h0IGNyYXNoLiAoRGF2ZSBGaXNoYnVybikKU29sdXRpb246ICAgRG9uJ3QgYWxsb3cgY2hhbmdpbmcgdGhlIHNjcmVlbiBzaXplIHdoaWxlIHVwZGF0aW5nIHRoZSBzY3JlZW4uCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL29wdGlvbi5jLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4yNTEKUHJvYmxlbTogICAgQ2FuJ3QgdXNlIGNvbXBsZXRpb24gZm9yICI6bGNkIiBhbmQgIjpsY2hkaXIiIGxpa2UgIjpjZCIuClNvbHV0aW9uOiAgIEV4cGFuZCBkaXJlY3RvcnkgbmFtZXMgZm9yIHRoZXNlIGNvbW1hbmRzLiAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjI1MgpQcm9ibGVtOiAgICAidml9IiBkb2VzIG5vdCBpbmNsdWRlIGEgbGluZSBicmVhayB3aGVuIHRoZSAifSIgaXMgYXQgdGhlIHN0YXJ0CgkgICAgb2YgYSBmb2xsb3dpbmcgbGluZS4gKEthbWlsIEJ1cnp5bnNraSkKU29sdXRpb246ICAgSW5jbHVkZSB0aGUgbGluZSBicmVhay4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMS4yNTMgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMiB3aXRoIEN5Z3dpbjogQ2hhbmdlcyB0aGUgcGF0aCBvZiBhcmd1bWVudHMgaW4gYSB3cm9uZyB3YXkuCgkgICAgKFhpYW5namlhbmcgTWEpClNvbHV0aW9uOiAgIERvbid0IHVzZSBjeWd3aW5fY29udl90b19wb3NpeF9wYXRoKCkgZm9yIHRoZSBXaW4zMiB2ZXJzaW9uLgoJICAgIFVwZGF0ZSB0aGUgQ3lnd2luIG1ha2VmaWxlIHRvIHN1cHBvcnQgbW9yZSBmZWF0dXJlcy4gIChEYW4gU2hhcnApCkZpbGVzOgkgICAgc3JjL01ha2VfY3lnLm1haywgc3JjL2lmX29sZS5jcHAsIHNyYy9tYWluLmMKClBhdGNoIDYuMS4yNTQKUHJvYmxlbTogICAgZXhpc3RzKCJmb297YmFyfSIpIGRvZXMgbm90IHdvcmsuICAnOnVubGV0IHZ7ImEifXInIGRvZXMgbm90IHdvcmsuCgkgICAgIjpsZXQgdnthfXIxIHZ7YX1yMiIgZG9lcyBub3Qgd29yay4gIjpmdW5jIEZ7KDEpfSIgZG9lcyBub3Qgd29yay4KCSAgICAiOmRlbGZ1bmMgRnsiIGRvZXMgbm90IGdpdmUgYW4gZXJyb3IgbWVzc2FnZS4gICc6ZGVsZnVuYyBGeyJGIn0nCgkgICAgZG9lcyBub3Qgd29yay4KU29sdXRpb246ICAgU3VwcG9ydCBtYWdpYyBicmFjZXMgZm9yIHRoZSBleGlzdHMoKSBhcmd1bWVudC4gKFZpbmNlIE5lZ3JpKQoJICAgIENoZWNrIGZvciB0cmFpbGluZyBjb21tZW50cyBleHBsaWNpdGx5IGZvciAiOnVubGV0Ii4gIEFkZCBzdXBwb3J0CgkgICAgZm9yIG1hZ2ljIGJyYWNlcyBpbiBmdXJ0aGVyIGFyZ3VtZW50cyBvZiAiOmxldCIuICBMb29rIGZvciBhCgkgICAgcGFyZW50aGVzaXMgb25seSBhZnRlciB0aGUgZnVuY3Rpb24gbmFtZS4gIChTZXJ2YXRpdXMgQnJhbmR0KQoJICAgIEFsc28gZXhwYW5kIG1hZ2ljIGJyYWNlcyBmb3IgImV4aXN0cygnKmV4cHInKSIuICBHaXZlIGFuIGVycm9yCgkgICAgbWVzc2FnZSBmb3IgYW4gaW52YWxpZCAiOmRlbGZ1bmMiIGFyZ3VtZW50LiAgQWxsb3cgcXVvdGVzIGluIHRoZQoJICAgICI6ZGVsZnVuYyIgYXJndW1lbnQuCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL2V4X2NtZHMuaCwgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4yNTUgKGRlcGVuZHMgb24gNi4xLjI1NCkKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBsb2FkaW5nIG1lbnUudmltIGEgc2Vjb25kIHRpbWUuIChDaHJpc3RpYW4gUm9iaW5zb24pCgkgICAgIjp1bmxldCBnYXJiYWdlIGZvbyIgdHJpZXMgdW5sZXR0aW5nICJmb28iIGFmdGVyIGFuIGVycm9yIG1lc3NhZ2UuCgkgICAgKFNlcnZhdGl1cyBCcmFuZHQpCgkgICAgVmVyeSBsb25nIGZ1bmN0aW9uIGFyZ3VtZW50cyBjYXVzZSB2ZXJ5IGxvbmcgbWVzc2FnZXMgd2hlbgoJICAgICd2ZXJib3NlJyBpcyAxNCBvciBoaWdoZXIuClNvbHV0aW9uOiAgIEF2b2lkIHJlYWRpbmcgZnJvbSB1bmluaXRpYWxpemVkIG1lbW9yeS4KCSAgICBCcmVhayBvdXQgb2YgYSBsb29wIGFmdGVyIGFuIGludmFsaWQgYXJndW1lbnQgZm9yICI6dW5sZXQiLgoJICAgIFRydW5jYXRlIGxvbmcgZnVuY3Rpb24gYXJndW1lbnRzIHRvIDgwIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjI1NiAoZGVwZW5kcyBvbiA2LjEuMjU1KQpQcm9ibGVtOiAgICBEZWZpbmluZyBhIGZ1bmN0aW9uIGFmdGVyICI6aWYgMCIgY291bGQgc3RpbGwgY2F1c2UgYW4gZXJyb3IKCSAgICBtZXNzYWdlIGZvciBhbiBleGlzdGluZyBmdW5jdGlvbi4KCSAgICBMZWFraW5nIG1lbW9yeSB3aGVuIHRoZXJlIGFyZSB0cmFpbGluZyBjaGFyYWN0ZXJzIGZvciAiOmRlbGZ1bmMiLgpTb2x1dGlvbjogICBDaGVjayB0aGUgInNraXAiIGZsYWcuICBGcmVlIHRoZSBtZW1vcnkuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4yNTcKUHJvYmxlbTogICAgIjpjd2luZG93IiBhbHdheXMgc2V0cyB0aGUgcHJldmlvdXMgd2luZG93IHRvIHRoZSBsYXN0IGJ1dCBvbmUKCSAgICB3aW5kb3cuICAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBTZXQgdGhlIHByZXZpb3VzIHdpbmRvdyBwcm9wZXJseS4KRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5jLCBzcmMvcXVpY2tmaXguYywgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjEuMjU4ClByb2JsZW06ICAgIEJ1ZmZlcnMgbWVudSBkb2Vzbid0IHdvcmsgcHJvcGVybHkgZm9yIG11bHRpYnl0ZSBidWZmZXIgbmFtZXMuClNvbHV0aW9uOiAgIFVzZSBhIHBhdHRlcm4gdG8gZ2V0IHRoZSBsZWZ0IGFuZCByaWdodCBwYXJ0IG9mIHRoZSBuYW1lLgoJICAgIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4xLjI1OSAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogd2l0aCAncGF0Y2htb2RlJyBpcyB1c2VkIGZpbGVuYW1lcyBhcmUgdHJ1bmNhdGVkLgpTb2x1dGlvbjogICBJbmNyZWFzZSB0aGUgQkFTRU5BTUVMRU4gZm9yIE1hYyBPUyBYLiAoRWQgUmFsc3RvbikKRmlsZXM6CSAgICBzcmMvb3NfbWFjLmgKClBhdGNoIDYuMS4yNjAgKGRlcGVuZHMgb24gNi4xLjEwNCkKUHJvYmxlbTogICAgR0NDIDMuMiBzdGlsbCBzZWVtcyB0byBoYXZlIGFuIG9wdGltaXplciBwcm9ibGVtLiAoWnZpIEhhcidFbCkKU29sdXRpb246ICAgVXNlIHRoZSBzYW1lIGNvbmZpZ3VyZSBjaGVjayBhcyB1c2VkIGZvciBHQ0MgMy4xLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4xLjI2MQpQcm9ibGVtOiAgICBXaGVuIGRlbGV0aW5nIGEgbGluZSBpbiBhIGJ1ZmZlciB3aGljaCBpcyBub3QgdGhlIGN1cnJlbnQgYnVmZmVyLAoJICAgIHVzaW5nIHRoZSBQZXJsIGludGVyZmFjZSBEZWxldGUoKSwgdGhlIGN1cnNvciBpbiB0aGUgY3VycmVudAoJICAgIHdpbmRvdyBtYXkgbW92ZS4gKENocmlzIEhvdXNlcikKU29sdXRpb246ICAgRG9uJ3QgYWRqdXN0IHRoZSBjdXJzb3IgcG9zaXRpb24gd2hlbiBjaGFuZ2luZyBhbm90aGVyIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvaWZfcGVybC54cwoKUGF0Y2ggNi4xLjI2MgpQcm9ibGVtOiAgICBXaGVuIGp1bXBpbmcgb3ZlciBmb2xkcyB3aXRoICJ6WyIsICJ6aiIgYW5kICJ6ayIgdGhlIHByZXZpb3VzCgkgICAgcG9zaXRpb24gaXMgbm90IHJlbWVtYmVyZWQuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgU2V0IHRoZSBwcmV2aW91cyBjb250ZXh0IG1hcmsgYmVmb3JlIGp1bXBpbmcuCkZpbGVzOgkgICAgc3JjL2ZvbGQuYwoKUGF0Y2ggNi4xLjI2MwpQcm9ibGVtOiAgICBXaGVuIHR5cGluZyBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyIHRoYXQgdHJpZ2dlcnMgYW4gYWJicmV2aWF0aW9uCgkgICAgaXQgaXMgbm90IGluc2VydGVkIHByb3Blcmx5LgpTb2x1dGlvbjogICBIYW5kbGUgYWRkaW5nIHRoZSB0eXBlZCBtdWx0aS1ieXRlIGNoYXJhY3Rlci4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZ2V0Y2hhci5jCgpQYXRjaCA2LjEuMjY0IChkZXBlbmRzIG9uIHBhdGNoIDYuMS4yNTQpClByb2JsZW06ICAgIGV4aXN0cygpIGRvZXMgbm90IHdvcmsgZm9yIGJ1aWx0LWluIGZ1bmN0aW9ucy4gKFN0ZXZlIFdhbGwpClNvbHV0aW9uOiAgIERvbid0IGNoZWNrIGZvciB0aGUgZnVuY3Rpb24gbmFtZSB0byBzdGFydCB3aXRoIGEgY2FwaXRhbC4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMjY1ClByb2JsZW06ICAgIGxpYmNhbGwoKSBjYW4gYmUgdXNlZCBpbiAnZm9sZGV4cHInIHRvIGNhbGwgYW55IHN5c3RlbSBmdW5jdGlvbi4KCSAgICByZW5hbWUoKSwgZGVsZXRlKCkgYW5kIHJlbW90ZV9zZW5kKCkgY2FuIGFsc28gYmUgdXNlZCBpbgoJICAgICdmb2xkZXhwcicuICBUaGVzZSBhcmUgc2VjdXJpdHkgcHJvYmxlbXMuIChHZW9yZ2kgR3VuaW5za2kpClNvbHV0aW9uOiAgIERvbid0IGFsbG93IHVzaW5nIGxpYmNhbGwoKSwgcmVuYW1lKCksIGRlbGV0ZSgpLCByZW1vdGVfc2VuZCgpIGFuZAoJICAgIHNpbWlsYXIgZnVuY3Rpb25zIGluIHRoZSBzYW5kYm94LgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4yNjYgKGRlcGVuZHMgb24gNi4xLjI2NSkKUHJvYmxlbTogICAgV2luMzI6IGNvbXBpbGUgZXJyb3IgaW4gZXZhbC5jLiAoQmlsbCBNY0NhcnRoeSkKU29sdXRpb246ICAgTW92ZSBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4yNjcKUHJvYmxlbTogICAgVXNpbmcgInAiIHRvIHBhc3RlIGludG8gYSBWaXN1YWwgc2VsZWN0ZWQgYXJlYSBtYXkgY2F1c2UgYSBjcmFzaC4KU29sdXRpb246ICAgQWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBmb3Igc2F2aW5nIHRoZSByZWdpc3RlciBjb250ZW50cy4gKE11cmFva2EKCSAgICBUYXJvKQpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4xLjI2OApQcm9ibGVtOiAgICBXaGVuIHRyaWdnZXJpbmcgYW4gYWJicmV2aWF0aW9uIHdpdGggYSBtdWx0aS1ieXRlIGNoYXJhY3RlciwgdGhpcwoJICAgIGNoYXJhY3RlciBpcyBub3QgY29ycmVjdGx5IGluc2VydGVkIGFmdGVyIGV4cGFuZGluZyB0aGUKCSAgICBhYmJyZXZpYXRpb24uIChUYXJvIE11cmFva2EpClNvbHV0aW9uOiAgIEFkZCBBQkJSX09GRiB0byBhbGwgY2hhcmFjdGVycyBhYm92ZSAweGZmLgpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvZ2V0Y2hhci5jCgpQYXRjaCA2LjEuMjY5ClByb2JsZW06ICAgIEFmdGVyIHVzaW5nIGlucHV0KCkgdGV4dCB3cml0dGVuIHdpdGggIjpyZWRpciIgZ2V0cyBleHRyYSBpbmRlbnQuCgkgICAgKERhdmlkIEZpc2hidXJuKQpTb2x1dGlvbjogICBSZXN0b3JlIG1zZ19jb2wgYWZ0ZXIgdXNpbmcgaW5wdXQoKS4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4xLjI3MCAoZGVwZW5kcyBvbiA2LjEuMjYwKQpQcm9ibGVtOiAgICBHQ0MgMy4yLjEgc3RpbGwgc2VlbXMgdG8gaGF2ZSBhbiBvcHRpbWl6ZXIgcHJvYmxlbS4KU29sdXRpb246ICAgVXNlIHRoZSBzYW1lIGNvbmZpZ3VyZSBjaGVjayBhcyB1c2VkIGZvciBHQ0MgMy4xLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4xLjI3MQpQcm9ibGVtOiAgICBXaGVuIGNvbXBpbGluZyB3aXRob3V0IHRoZSArc3ludGF4IGZlYXR1cmUgdGhlcmUgYXJlIGVycm9ycy4KU29sdXRpb246ICAgRG9uJ3QgdXNlIHNvbWUgY29kZSBmb3Igc3ludGF4IGhpZ2hsaWdodGluZy4gKFJvZ2VyIENvcm5lbGl1cykKCSAgICBNYWtlIHRlc3QgNDUgd29yayB3aXRob3V0IHN5bnRheCBoaWdobGlnaHRpbmcuCgkgICAgQWxzbyBmaXggYW4gZXJyb3IgaW4gYSBwYXR0ZXJuIG1hdGNoaW5nOiAiXCUoIiB3YXMgbm90IHN1cHBvcnRlZC4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYywgc3JjL3JlZ2V4cC5jLCBzcmMvdGVzdGRpci90ZXN0NDUuaW4KClBhdGNoIDYuMS4yNzIKUHJvYmxlbTogICAgQWZ0ZXIgdXNpbmcgIjpzZXQgZGVmaW5lPCIgYSBjcmFzaCBtYXkgaGFwcGVuLiAoQ2hyaXN0aWFuIFJvYmluc29uKQpTb2x1dGlvbjogICBNYWtlIGEgY29weSBvZiB0aGUgb3B0aW9uIHZhbHVlIGluIGFsbG9jYXRlZCBtZW1vcnkuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjEuMjczClByb2JsZW06ICAgIFdoZW4gdGhlIGN1cnNvciBkb2Vzbid0IGJsaW5rLCByZWRyYXdpbmcgYW4gZXhwb3NlZCBhcmVhIG1heSBoaWRlCgkgICAgdGhlIGN1cnNvci4KU29sdXRpb246ICAgQWx3YXlzIGRyYXcgdGhlIGN1cnNvciwgYWxzbyB3aGVuIGl0IGRpZG4ndCBtb3ZlLiAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4xLjI3NCAoZGVwZW5kcyBvbiA2LjEuMjEwKQpQcm9ibGVtOiAgICBSZXNldHRpbmcgdGhlIGljb252KCkgc3RhdGUgYWZ0ZXIgZWFjaCBlcnJvciBpcyB3cm9uZyBmb3IgYW4KCSAgICBpbmNvbXBsZXRlIHNlcXVlbmNlLgpTb2x1dGlvbjogICBEb24ndCByZXNldCB0aGUgaWNvbnYoKSBzdGF0ZS4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4yNzUKUHJvYmxlbTogICAgV2hlbiB1c2luZyAidiIgaW4gYSBzdGFydHVwIHNjcmlwdCwgZ2V0IHdhcm5pbmcgbWVzc2FnZSB0aGF0CgkgICAgdGVybWluYWwgY2Fubm90IGhpZ2hsaWdodC4gKENoYXJsZXMgQ2FtcGJlbGwpClNvbHV0aW9uOiAgIE9ubHkgZ2l2ZSB0aGUgbWVzc2FnZSBhZnRlciB0aGUgdGVybWluYWwgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuMjc2ClByb2JsZW06ICAgICJndmltIC0tcmVtb3RlIGZpbGUiIGRvZXNuJ3QgcHJvbXB0IGZvciBhbiBlbmNyeXB0aW9uIGtleS4KU29sdXRpb246ICAgVGhlIGZ1cnRoZXIgY2hhcmFjdGVycyB0aGUgY2xpZW50IHNlbmRzIHRvIHRoZSBzZXJ2ZXIgYXJlIHVzZWQuCgkgICAgQWRkZWQgaW5wdXRzYXZlKCkgYW5kIGlucHV0cmVzdG9yZSgpIHRvIGFsbG93IHByb21wdGluZyB0aGUKCSAgICB1c2VyIGRpcmVjdGx5IGFuZCBub3QgdXNpbmcgdHlwZWFoZWFkLgoJICAgIEFsc28gZml4IHBvc3NpYmxlIG1lbW9yeSBsZWFrIGZvciAiOm5vcm1hbCIuCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL2V4X2NtZHMyLmMsIHNyYy9leF9kb2NtZC5jLCBzcmMvZ2V0Y2hhci5jLAoJICAgIHNyYy9tYWluLmMsIHNyYy9wcm90by9nZXRjaGFyLnBybywgc3JjL3Byb3RvL3VpLnBybywKCSAgICBzcmMvcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9zdHJ1Y3RzLmgsIHNyYy91aS5jLCBzcmMvdmltLmgKClBhdGNoIDYuMS4yNzcgKGRlcGVuZHMgb24gNi4xLjI3NikKUHJvYmxlbTogICAgQ29tcGlsYXRpb24gZXJyb3Igd2hlbiBidWlsZGluZyB3aXRoIHNtYWxsIGZlYXR1cmVzLgpTb2x1dGlvbjogICBEZWZpbmUgdHJhc2hfaW5wdXRfYnVmKCkgd2hlbiBuZWVkZWQuIChLZWx2aW4gTGVlKQpGaWxlczoJICAgIHNyYy91aS5jCgpQYXRjaCA2LjEuMjc4ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgc2lnbnMgdGhlIGxpbmUgbnVtYmVyIG9mIGEgY2xvc2VkIGZvbGQgZG9lc24ndCBsaW5lIHVwCgkgICAgd2l0aCB0aGUgb3RoZXIgbGluZSBudW1iZXJzLiAoS2FtaWwgQnVyenluc2tpKQpTb2x1dGlvbjogICBJbnNlcnQgdHdvIHNwYWNlcyBmb3IgdGhlIHNpZ24gY29sdW1uLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjI3OQpQcm9ibGVtOiAgICBUaGUgcHJvdG90eXBlIGZvciBzbXNnKCkgYW5kIHNtc2dfYXR0cigpIGRvIG5vdCBtYXRjaCB0aGUgZnVuY3Rpb24KCSAgICBkZWZpbml0aW9uLiAgVGhpcyBtYXkgY2F1c2UgdHJvdWJsZSBmb3Igc29tZSBjb21waWxlcnMuIChOaXgpClNvbHV0aW9uOiAgIFVzZSB2YV9saXN0IGZvciBzeXN0ZW1zIHRoYXQgaGF2ZSBzdGRhcmcuaC4gIFVzZSAiaW50IiBpbnN0ZWFkIG9mCgkgICAgInZvaWQiIGZvciB0aGUgcmV0dXJuIHR5cGUuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlnLmguaW4sIHNyYy9jb25maWd1cmUuaW4sCgkgICAgc3JjL3Byb3RvLmgsIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMS4yODAKUHJvYmxlbTogICAgSXQncyBwb3NzaWJsZSB0byB1c2UgYW4gYXJndW1lbnQgImZpcnN0bGluZSIgb3IgImxhc3RsaW5lIiBmb3IgYQoJICAgIGZ1bmN0aW9uIGJ1dCB1c2luZyAiYTpmaXJzdGxpbmUiIG9yICJhOmxhc3RsaW5lIiBpbiB0aGUgZnVuY3Rpb24KCSAgICB3b24ndCB3b3JrLiAgKEJlbmppIEZpc2hlcikKU29sdXRpb246ICAgR2l2ZSBhbiBlcnJvciBtZXNzYWdlIGZvciB0aGVzZSBhcmd1bWVudHMuCgkgICAgQWxzbyBhdm9pZCB0aGF0IHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gYm9keSBjYXVzZXMgYSB3aG9sZSByb3cgb2YKCSAgICBlcnJvcnMsIHNraXAgb3ZlciBpdCBhZnRlciBhbiBlcnJvciBpbiB0aGUgZmlyc3QgbGluZS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMjgxClByb2JsZW06ICAgIEluIEluc2VydCBtb2RlIENUUkwtWCBDVFJMLUcgbGVhdmVzIHRoZSBjdXJzb3IgYWZ0ZXIgdGhlIHJ1bGVyLgpTb2x1dGlvbjogICBTZXQgdGhlIGN1cnNvciBwb3NpdGlvbiBiZWZvcmUgd2FpdGluZyBmb3IgdGhlIGFyZ3VtZW50IG9mIENUUkwtRy4KCSAgICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMS4yODIKUHJvYmxlbTogICAgRWx2aXMgdXNlcyAic2UiIGluIGEgbW9kZWxpbmUsIFZpbSBkb2Vzbid0IHJlY29nbml6ZSB0aGlzLgpTb2x1dGlvbjogICBBbHNvIGFjY2VwdCAic2UgIiB3aGVyZSAic2V0ICIgaXMgYWNjZXB0ZWQgaW4gYSBtb2RlbGluZS4KCSAgICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjI4MwpQcm9ibGVtOiAgICBGb3IgIjpzaWduIiB0aGUgaWNvbiBmaWxlIG5hbWUgY2Fubm90IGNvbnRhaW4gYSBzcGFjZS4KU29sdXRpb246ICAgSGFuZGxlIGJhY2tzbGFzaGVzIGluIHRoZSBmaWxlIG5hbWUuICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMS4yODQKUHJvYmxlbTogICAgT24gU29sYXJpcyB0aGVyZSBpcyBhIHdhcm5pbmcgZm9yICJzdHJ1Y3QgdXRpbWJ1ZiIuClNvbHV0aW9uOiAgIE1vdmUgaW5jbHVkaW5nICJ1dGltZS5oIiB0byBvdXRzaWRlIHRoZSBmdW5jdGlvbi4gKERlcmVrIFd5YXR0KQpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjI4NQpQcm9ibGVtOiAgICBDYW4ndCB3aXBlIG91dCBhIGJ1ZmZlciB3aXRoICdidWZoaWRlJyBvcHRpb24uClNvbHV0aW9uOiAgIEFkZCAid2lwZSIgdmFsdWUgdG8gJ2J1ZmhpZGUnLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb25zLnR4dCwgc3JjL2J1ZmZlci5jLCBzcmMvb3B0aW9uLmMsCgkgICAgc3JjL3F1aWNrZml4LmMKClBhdGNoIDYuMS4yODYKUHJvYmxlbTogICAgJ3Nob3dicmVhaycgY2Fubm90IGNvbnRhaW4gbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBBbGxvdyB1c2luZyBhbGwgcHJpbnRhYmxlIGNoYXJhY3RlcnMgZm9yICdzaG93YnJlYWsnLgpGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMsIHNyYy9tb3ZlLmMsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjI4NyAoZGVwZW5kcyBvbiA2LjEuMjg1KQpQcm9ibGVtOiAgICBFZmZlY3Qgb2YgImRlbGV0ZSIgYW5kICJ3aXBlIiBpbiAnYnVmaGlkZScgd2VyZSBtaXhlZCB1cC4KU29sdXRpb246ICAgV2lwZSBvdXQgd2hlbiB3aXBpbmcgb3V0IGlzIGFza2VkIGZvci4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4yODgKUHJvYmxlbTogICAgIjpzaWxlbnQgZnVuY3Rpb24gRiIgaGFuZ3MuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgRG9uJ3QgdXNlIG1zZ19jb2wsIGl0IGlzIG5vdCBpbmNyZW1lbnRlZCB3aGVuIHVzaW5nICI6c2lsZW50Ii4KCSAgICBBbHNvIG1hZGUgdGhlIGZ1bmN0aW9uIG91dHB1dCBsb29rIGEgYml0IGJldHRlci4gIERvbid0IHRyYW5zbGF0ZQoJICAgICJmdW5jdGlvbiIuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjI4OSAoZGVwZW5kcyBvbiA2LjEuMjc4KQpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5nIGZvciBwb2ludGVyLiAoQXhlbCBLaWVsaG9ybikKU29sdXRpb246ICAgQWRkIGEgdHlwZWNhc3QgZm9yICIgICIuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMjkwIChleHRyYSkKUHJvYmxlbTogICAgVHJ1bmNhdGluZyBsb25nIHRleHQgZm9yIG1lc3NhZ2UgYm94IG1heSBicmVhayBtdWx0aS1ieXRlCgkgICAgY2hhcmFjdGVyLgpTb2x1dGlvbjogICBBZGp1c3QgdG8gc3RhcnQgb2YgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMS4yOTEgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogQ1RSTC1AIGRvZXNuJ3Qgd29yay4gIERvbid0IGV2ZW4gZ2V0IGEgbWVzc2FnZSBmb3IgaXQuClNvbHV0aW9uOiAgIFJlY29nbml6ZSB0aGUga2V5Y29kZSBmb3IgQ1RSTC1ALiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMS4yOTIgKGV4dHJhLCBkZXBlbmRzIG9uIDYuMS4yNTMpClByb2JsZW06ICAgIFdpbjMyOiBDYW4ndCBjb21waWxlIHdpdGggbmV3IE1pbmdXIGNvbXBpbGVyLgoJICAgIEJvcmxhbmQgNSBtYWtlZmlsZSBkb2Vzbid0IGdlbmVyYXRlIHBhdGhkZWYuYy4KU29sdXRpb246ICAgUmVtb3ZlIC13d2lkZS1tdWx0aXBseSBhcmd1bWVudC4gKFJlbmUgZGUgWndhcnQpCgkgICAgVmFyaW91cyBmaXhlcyBmb3Igb3RoZXIgcHJvYmxlbXMgaW4gV2luMzIgbWFrZWZpbGVzLiAoRGFuIFNoYXJwKQpGaWxlczoJICAgIHNyYy9NYWtlX2JjNS5tYWssIHNyYy9NYWtlX2N5Zy5tYWssIHNyYy9NYWtlX21pbmcubWFrLAoJICAgIHNyYy9NYWtlX212Yy5tYWsKClBhdGNoIDYuMS4yOTMKUHJvYmxlbTogICAgYnl0ZTJsaW5lKCkgcmV0dXJucyBhIHdyb25nIHJlc3VsdCBmb3Igc29tZSB2YWx1ZXMuClNvbHV0aW9uOiAgIENoYW5nZSAiPj0iIHRvICI+IiBpbiBtbF9maW5kX2xpbmVfb3Jfb2Zmc2V0KCkuIChCcmFkZm9yZCBDIFNtaXRoKQoJICAgIEFkZCBvbmUgdG8gdGhlIGxpbmUgbnVtYmVyIHdoZW4gYXQgdGhlIGVuZCBvZiBhIGJsb2NrLgpGaWxlczoJICAgIHNyYy9tZW1saW5lLmMKClBhdGNoIDYuMS4yOTQKUHJvYmxlbTogICAgQ2FuJ3QgaW5jbHVkZSBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyIGluIGEgc3RyaW5nIGJ5IGl0cyBoZXggdmFsdWUuCgkgICAgKEJlbmppIEZpc2hlcikKU29sdXRpb246ICAgQWRkICJcdS4uLi4iOiBhIGNoYXJhY3RlciBzcGVjaWZpZWQgd2l0aCB1cCB0byBmb3VyIGhleCBudW1iZXJzCgkgICAgYW5kIHN0b3JlZCBhY2NvcmRpbmcgdG8gdGhlIHZhbHVlIG9mICdlbmNvZGluZycuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjI5NSAoZXh0cmEpClByb2JsZW06ICAgIFByb2Nlc3NpbmcgdGhlIGNzLnBvIGZpbGUgZ2VuZXJhdGVzIGFuIGVycm9yLiAoUmFodWwgQWdyYXdhbCkKU29sdXRpb246ICAgRml4IHRoZSBwcmludGYgZm9ybWF0IGNoYXJhY3RlcnMgaW4gdGhlIHRyYW5zbGF0aW9uLgpGaWxlczoJICAgIHNyYy9wby9jcy5wbwoKUGF0Y2ggNi4xLjI5NgpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiBjYW5jZWxsaW5nIHRoZSBmb250IGRpYWxvZyAnZ3VpZm9udCcgcmVtYWlucyBzZXQgdG8KCSAgICAiKiIuClNvbHV0aW9uOiAgIFJlc3RvcmUgdGhlIG9sZCB2YWx1ZSBvZiAnZ3VpZm9udCcgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMS4yOTcKUHJvYmxlbTogICAgIm1ha2UgdGVzdCIgZmFpbHMgaW4gdGVzdDYgaW4gYW4gVVRGLTggZW52aXJvbm1lbnQuIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIEJlZm9yZSBleGVjdXRpbmcgdGhlIEJ1ZlJlYWRQb3N0IGF1dG9jb21tYW5kcyBzYXZlIHRoZSBjdXJyZW50CgkgICAgZmlsZWVuY29kaW5nLCBzbyB0aGF0IHRoZSBmaWxlIGlzbid0IG1hcmtlZCBjaGFuZ2VkLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjI5OApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHNpZ25zIGFuZCB0aGUgZmlyc3QgbGluZSBvZiBhIGNsb3NlZCBmb2xkIGhhcyBhIHNpZ24KCSAgICBpdCBjYW4gYmUgcmVkcmF3biBhcyBpZiB0aGUgZm9sZCB3YXMgb3Blbi4gIChLYW1pbCBCdXJ6eW5za2kpClNvbHV0aW9uOiAgIERvbid0IHJlZHJhdyBhIHNpZ24gaW5zaWRlIGEgY2xvc2VkIGZvbGQuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMjk5ClByb2JsZW06ICAgICI6ZWRpdCArc2V0XCBybyBmaWxlIiBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIEhhbHZlIHRoZSBudW1iZXIgb2YgYmFja3NsYXNoZXMgaW4gdGhlICIrY21kIiBhcmd1bWVudC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjMwMCAoZXh0cmEpClByb2JsZW06ICAgIEhhbmRsaW5nIG9mIEVUT19JR05PUkVMQU5HVUFHRSBpcyBjb25mdXNpbmcuClNvbHV0aW9uOiAgIENsZWFuIHVwIHRoZSBoYW5kbGluZyBvZiBFVE9fSUdOT1JFTEFOR1VBR0UuIChHbGVubiBNYXluYXJkKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMS4zMDEgKGV4dHJhKQpQcm9ibGVtOiAgICBGcmVuY2ggdHJhbnNsYXRpb24gb2YgZmlsZS1zYXZlIGRpYWxvZyBkb2Vzbid0IHNob3cgZmlsZSBuYW1lLgpTb2x1dGlvbjogICBJbnNlcnQgYSBzdGFyIGluIHRoZSBwcmludGYgc3RyaW5nLiAoRnJhbmNvaXMgVGVycm90KQpGaWxlczoJICAgIHNyYy9wby9mci5wbwoKUGF0Y2ggNi4xLjMwMgpQcm9ibGVtOiAgICBDb3VudGluZyBsaW5lcyBvZiB0aGUgVmlzdWFsIGFyZWEgaXMgaW5jb3JyZWN0IGZvciBjbG9zZWQgZm9sZHMuCgkgICAgKE1pa29sYWogTWFjaG93c2tpKQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBzdGFydCBhbmQgZW5kIGZvciB0aGUgY2xvc2VkIGZvbGQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuMzAzIChleHRyYSkKUHJvYmxlbTogICAgVGhlIFRvcC9Cb3R0b20vQWxsIHRleHQgZG9lcyBub3QgYWx3YXlzIGZpdCBpbiB0aGUgcnVsZXIgd2hlbgoJICAgIHRyYW5zbGF0ZWQgdG8gSmFwYW5lc2UuICBQcm9ibGVtIHdpdGggYSBjaGFyYWN0ZXIgYmVpbmcgd2lkZXIgd2hlbgoJICAgIGluIGEgYm9sZCBmb250LgpTb2x1dGlvbjogICBVc2UgRVRPX1BEWSB0byBzcGVjaWZ5IHRoZSB3aWR0aCBvZiBlYWNoIGNoYXJhY3Rlci4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMS4zMDQgKGV4dHJhLCBkZXBlbmRzIG9uIDYuMS4yOTIpClByb2JsZW06ICAgIFdpbjMyOiBQb3N0c2NyaXB0IGlzIGFsd2F5cyBlbmFibGVkIGluIHRoZSBNaW5nVyBNYWtlZmlsZS4KCSAgICBQYXRoZGVmLmMgaXNuJ3QgZ2VuZXJhdGVkIHByb3Blcmx5IHdpdGggTWFrZV9iYzUubWFrLiAoWWFzdWhpcm8KCSAgICBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIENoYW5nZSBhbiBpZmRlZiB0byBhbiBpZmVxLiAoTWFkb2thIE1hY2hpdGFuaSkKCSAgICBVc2UgdGhlIEJvcmxhbmQgbWFrZSByZWRpcmVjdGlvbiB0byBnZW5lcmF0ZSBwYXRoZGVmLmMuIChNYXVyaWNlCgkgICAgQmFybnVtKQpGaWxlczoJICAgIHNyYy9NYWtlX2JjNS5tYWssIHNyYy9NYWtlX21pbmcubWFrCgpQYXRjaCA2LjEuMzA1ClByb2JsZW06ICAgIFdoZW4gJ3ZlcmJvc2UnIGlzIDE0IG9yIGhpZ2hlciwgYSBmdW5jdGlvbiBjYWxsIG1heSBjYXVzZSByZWFkaW5nCgkgICAgdW5pbml0aWFsaXplZCBkYXRhLiAoV2FsdGVyIEJyaXNjb2UpClNvbHV0aW9uOiAgIENoZWNrIGZvciBlbmQtb2Ytc3RyaW5nIGluIHRydW5jX3N0cmluZygpLgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMS4zMDYKUHJvYmxlbTogICAgVGhlIEFJWCBWaXN1YWxBZ2UgY2MgY29tcGlsZXIgZG9lc24ndCBkZWZpbmUgX19TVERDX18uClNvbHV0aW9uOiAgIFVzZSBfX0VYVEVOREVEX18gbGlrZSBfX1NURENfXy4gKEplc3MgVGhyeXNvZWUpCkZpbGVzOgkgICAgc3JjL29zX3VuaXguaAoKUGF0Y2ggNi4xLjMwNwpQcm9ibGVtOiAgICBXaGVuIGEgZG91YmxlLWJ5dGUgY2hhcmFjdGVyIGhhcyBhbiBpbGxlZ2FsIHRhaWwgYnl0ZSB0aGUgZGlzcGxheQoJICAgIGlzIG1lc3NlZCB1cC4gKFlhc3VoaXJvIE1hdHN1bW90bykKU29sdXRpb246ICAgRHJhdyAiWFgiIGluc3RlYWQgb2YgdGhlIHdyb25nIGNoYXJhY3Rlci4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4zMDgKUHJvYmxlbTogICAgQ2FuJ3QgcmVzZXQgdGhlIFZpc3VhbCBtb2RlIHJldHVybmVkIGJ5IHZpc3VhbG1vZGUoKS4KU29sdXRpb246ICAgVXNlIGFuIG9wdGlvbmFsIGFyZ3VtZW50IHRvIHZpc3VhbG1vZGUoKS4gKENoYXJsZXMgQ2FtcGJlbGwpCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMsIHNyYy9ub3JtYWwuYywKCSAgICBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjEuMzA5ClByb2JsZW06ICAgIFRoZSB0dXRvciBkb2Vzbid0IHNlbGVjdCBHZXJtYW4gaWYgdGhlIGxvY2FsZSBuYW1lIGlzCgkgICAgIkdlcm1hbl9HZXJtYW55LjEyNTIiLiAoSm9hY2hpbSBIb2ZtYW5uKQpTb2x1dGlvbjogICBDaGVjayBmb3IgIkdlcm1hbiIgaW4gdGhlIGxvY2FsZSBuYW1lLiAgQWxzbyBjaGVjayBmb3IKCSAgICAiLmdlIi4gIEFuZCBpbmNsdWRlIHRoZSBHZXJtYW4gYW5kIEdyZWVrIHR1dG9ycy4KRmlsZXM6CSAgICBydW50aW1lL3R1dG9yL3R1dG9yLmRlLCBydW50aW1lL3R1dG9yL3R1dG9yLnZpbSwKCSAgICBydW50aW1lL3R1dG9yL3R1dG9yLmdyLCBydW50aW1lL3R1dG9yL3R1dG9yLmdyLmNwNzM3CgpQYXRjaCA2LjEuMzEwIChkZXBlbmRzIG9uIDYuMS4zMDcpClByb2JsZW06ICAgIEFsbCBkb3VibGUtYnl0ZSBjaGFyYWN0ZXJzIGFyZSBkaXNwbGF5ZWQgYXMgIlhYIi4KU29sdXRpb246ICAgVXNlICI+PSAzMiIgaW5zdGVhZCBvZiAiPCAzMiIuICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjMxMSAoZXh0cmEpClByb2JsZW06ICAgIFZNUzogcGF0aCBpbiB3aW5kb3cgdGl0bGUgZG9lc24ndCBpbmNsdWRlIG5lY2Vzc2FyeSBzZXBhcmF0b3IuCgkgICAgZmlsZSB2ZXJzaW9uIGRvZXNuJ3QgYWx3YXlzIHdvcmsgcHJvcGVybHkgd2l0aCBVbml4LgoJICAgIENyYXNoZXMgYmVjYXVzZSBvZiBtZW1vcnkgb3ZlcndyaXRlIGluIEdVSS4KCSAgICBEaWRuJ3QgYWx3YXlzIGhhbmRsZSBmaWxlcyB3aXRoIGxvd2VyY2FzZSBhbmQgY29ycmVjdCBwYXRoLgpTb2x1dGlvbjogICBGaXggdGhlIHByb2JsZW1zLiAgUmVtb3ZlIHVubmVjZXNzYXJ5IGZpbGUgbmFtZSB0cmFuc2xhdGlvbnMuCgkgICAgKFpvbHRhbiBBcnBhZGZmeSkKRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9leF9jbWRzMi5jLCBzcmMvZmlsZWlvLmMsIHNyYy9tZW1saW5lLmMsCgkgICAgc3JjL21pc2MxLmMsIHNyYy9taXNjMi5jLCBzcmMvb3NfdW5peC5jLCBzcmMvb3Nfdm1zLmMsIHNyYy90YWcuYwoKUGF0Y2ggNi4xLjMxMgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICI6c2lsZW50IiBkZWJ1Z2dpbmcgaXMgYWxzbyBkb25lIHNpbGVudGx5LgpTb2x1dGlvbjogICBEaXNhYmxlIHNpbGVuY2Ugd2hpbGUgYXQgdGhlIGRlYnVnIHByb21wdC4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjMxMwpQcm9ibGVtOiAgICBXaGVuIGEgIjpkcm9wIGZuYW1lIiBjb21tYW5kIGlzIHVzZWQgYW5kICJmbmFtZSIgaXMgb3BlbiBpbgoJICAgIGFub3RoZXIgd2luZG93LCBpdCBpcyBhbHNvIG9wZW5lZCBpbiB0aGUgY3VycmVudCB3aW5kb3cuClNvbHV0aW9uOiAgIENoYW5nZSB0byB0aGUgd2luZG93IHdpdGggImZuYW1lIiBpbnN0ZWFkLgoJICAgIERvbid0IHJlZGVmaW5lIHRoZSBhcmd1bWVudCBsaXN0IHdoZW4gZHJvcHBpbmcgb25seSBvbmUgZmlsZS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy93aW5kb3dzLnR4dCwgc3JjL2V4X2NtZHMyLmMsIHNyYy9leF9jbWRzLmMsCgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9wcm90by9leF9jbWRzMi5wcm8sIHNyYy9wcm90by9leF9kb2NtZC5wcm8KClBhdGNoIDYuMS4zMTQgKGRlcGVuZHMgb24gNi4xLjEyNikKUHJvYmxlbTogICAgTWlzc2luZyBiYWNrc2xhc2ggaW4gIkdlbmVyaWMgQ29uZmlnIGZpbGUiIHN5bnRheCBtZW51LgpTb2x1dGlvbjogICBJbnNlcnQgdGhlIGJhY2tzbGFzaC4gKFphayBCZWNrKQpGaWxlczoJICAgIHJ1bnRpbWUvbWFrZW1lbnUudmltLCBydW50aW1lL3N5bm1lbnUudmltCgpQYXRjaCA2LjEuMzE1IChleHRyYSkKUHJvYmxlbTogICAgQSB2ZXJ5IGxvbmcgaG9zdG5hbWUgbWF5IGxlYWQgdG8gYW4gdW50ZXJtaW5hdGVkIHN0cmluZy4gIEZhaWxpbmcKCSAgICB0byBvYnRhaW4gYSBob3N0bmFtZSBtYXkgcmVzdWx0IGluIGdhcmJhZ2UuICAoV2FsdGVyIEJyaXNjb2UpClNvbHV0aW9uOiAgIEFkZCBhIE5VTCBhdCB0aGUgZW5kIG9mIHRoZSBob3N0bmFtZSBidWZmZXIuCkZpbGVzOgkgICAgc3JjL29zX21hYy5jLCBzcmMvb3NfbXNkb3MuYywgc3JjL29zX3VuaXguYywgc3JjL29zX3dpbjE2LmMsCgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMS4zMTYKUHJvYmxlbTogICAgV2hlbiBleGl0aW5nIHdpdGggIndxIiBhbmQgdGhlcmUgaXMgYSBoaWRkZW4gYnVmZmVyLCBhZnRlciB0aGUKCSAgICAiZmlsZSBjaGFuZ2VkIiBkaWFsb2cgdGhlcmUgaXMgYSB3YXJuaW5nIGZvciBhIGNoYW5nZWQgYnVmZmVyLgoJICAgIChBaml0IFRoYWtrYXIpClNvbHV0aW9uOiAgIERvIHVwZGF0ZSB0aGUgYnVmZmVyIHRpbWVzdGFtcHMgd2hlbiBleGl0aW5nLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjMxNwpQcm9ibGVtOiAgICBDbG9zaW5nIGEgd2luZG93IG1heSBjYXVzZSBzb21lIG9mIHRoZSByZW1haW5pbmcgd2luZG93cyB0byBiZQoJICAgIHBvc2l0aW9uZWQgd3JvbmcgaWYgdGhlcmUgaXMgYSBtaXggb2YgaG9yaXpvbnRhbCBhbmQgdmVydGljYWwKCSAgICBzcGxpdHMuIChTdGVmYW4gSW5naSBWYWxkaW1hcnNzb24pClNvbHV0aW9uOiAgIFVwZGF0ZSB0aGUgZnJhbWUgc2l6ZXMgYmVmb3JlIHVwZGF0aW5nIHRoZSB3aW5kb3cgcG9zaXRpb25zLgpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4xLjMxOApQcm9ibGVtOiAgICBhdXRvL3BhdGhkZWYuYyBjYW4gaW5jbHVkZSB3cm9uZyBxdW90ZXMgd2hlbiBhIGNvbXBpbGVyIGZsYWcKCSAgICBpbmNsdWRlcyBxdW90ZXMuClNvbHV0aW9uOiAgIFB1dCBhIGJhY2tzbGFzaCBiZWZvcmUgdGhlIHF1b3RlcyBpbiBjb21waWxlciBmbGFncy4gKFNoaW5yYSBBaWRhKQpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4xLjMxOSAoZGVwZW5kcyBvbiA2LjEuMjc2KQpQcm9ibGVtOiAgICBVc2luZyAiLS1yZW1vdGUgK2NtZCBmaWxlIiBkb2VzIG5vdCBleGVjdXRlICJjbWQiLgpTb2x1dGlvbjogICBDYWxsIGlucHV0cmVzdG9yZSgpIGluIHRoZSBzYW1lIGNvbW1hbmQgbGluZSBhcyBpbnB1dHNhdmUoKSwKCSAgICBvdGhlcndpc2UgaXQgd2lsbCBuZXZlciBnZXQgZXhlY3V0ZWQuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4xLjMyMCAoZGVwZW5kcyBvbiA2LjEuMzEzKQpQcm9ibGVtOiAgICBXaGVuIGEgIjpkcm9wIG9uZVwgZmlsZSIgY29tbWFuZCBpcyB1c2VkIHRoZSBmaWxlICJvbmVcIGZpbGUiIGlzCgkgICAgb3BlbmVkLCB0aGUgYmFja3NsYXNoIGlzIG5vdCByZW1vdmVkLiAoVGFybyBNdXJhb2thKQpTb2x1dGlvbjogICBIYW5kbGUgYmFja3NsYXNoZXMgY29ycmVjdGx5LiAgQWx3YXlzIHNldCB0aGUgYXJndW1lbnQgbGlzdCB0bwoJICAgIGtlZXAgaXQgc2ltcGxlLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3dpbmRvd3MudHh0LCBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjEuMzIxClByb2JsZW06ICAgIFdoZW4gJ21vdXNlJyBpbmNsdWRlcyAnbicgYnV0IG5vdCAndicsIGRvbid0IGFsbG93IHN0YXJ0aW5nIFZpc3VhbAoJICAgIG1vZGUgd2l0aCB0aGUgbW91c2UuClNvbHV0aW9uOiAgIERvbid0IHVzZSBNT1VTRV9NQVlfVklTIHdoZW4gdGhlcmUgaXMgbm8gJ3YnIGluICdtb3VzZScuIChGbGVtbWluZwoJICAgIE1hZHNlbikKRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMS4zMjIgKGV4dHJhLCBkZXBlbmRzIG9uIDYuMS4zMTUpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgaG9zdCBuYW1lIGlzIGFsd2F5cyAiUEMgIiBwbHVzIHRoZSByZWFsIGhvc3QgbmFtZS4KU29sdXRpb246ICAgRG9uJ3QgaW5zZXJ0ICJQQyAiIGJlZm9yZSB0aGUgaG9zdCBuYW1lLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjEuMzIzClByb2JsZW06ICAgICI6cmVnaXN0ZXJzIiBkb2Vzbid0IHN0b3AgbGlzdGluZyBmb3IgYSAicSIgYXQgdGhlIG1vcmUgcHJvbXB0LgoJICAgIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgQ2hlY2sgZm9yIGludGVycnVwdCBhbmQgZ290X2ludC4KRmlsZXM6CSAgICBzcmMvb3BzLmMsIHNyYy9wcm90by9vcHMucHJvCgpQYXRjaCA2LjEuMzI0ClByb2JsZW06ICAgIENyYXNoIHdoZW4gZHJhZ2dpbmcgYSB2ZXJ0aWNhbCBzZXBhcmF0b3Igd2hlbiA8TGVmdE1vdXNlPiBpcwoJICAgIHJlbWFwcGVkIHRvIGp1bXAgdG8gYW5vdGhlciB3aW5kb3cuClNvbHV0aW9uOiAgIFBhc3MgdGhlIHdpbmRvdyBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiBkb2luZyB0aGUgZHJhZ2dpbmcgaW5zdGVhZAoJICAgIG9mIGFsd2F5cyB1c2luZyB0aGUgY3VycmVudCB3aW5kb3cuIChEYW5pZWwgRWxzdG5lcikKCSAgICBBbHNvIGZpeCB0aGF0IHN0YXJ0aW5nIGEgZHJhZyBjaGFuZ2VzIHdpbmRvdyBmb2N1cy4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMsIHNyYy9wcm90by93aW5kb3cucHJvLCBzcmMvdWkuYywgc3JjL3ZpbS5oLAoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4xLjMyNQpQcm9ibGVtOiAgICBTaGlmdC1UYWIgaXMgbm90IGF1dG9tYXRpY2FsbHkgcmVjb2duaXplZCBpbiBhbiB4dGVybS4KU29sdXRpb246ICAgQWRkIDxFc2M+W1ogYXMgdGhlIHRlcm1jYXAgY29kZS4gKEFuZHJldyBQaW1sb3R0KQpGaWxlczoJICAgIHNyYy90ZXJtLmMKClBhdGNoIDYuMS4zMjYKUHJvYmxlbTogICAgVXNpbmcgYSBzZWFyY2ggcGF0dGVybiBtYXkgcmVhZCBmcm9tIHVuaW5pdGlhbGl6ZWQgZGF0YSAoWWFzdWhpcm8KCSAgICBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIEluaXRpYWxpemUgcG9pbnRlcnMgdG8gTlVMTC4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMS4zMjcKUHJvYmxlbTogICAgV2hlbiBvcGVuaW5nIHRoZSAibWJ5dGUudHh0IiBoZWxwIGZpbGUgdGhlIHV0Zi04IGNoYXJhY3RlcnMgYXJlCgkgICAgdW5yZWFkYWJsZSwgYmVjYXVzZSB0aGUgZmlsZWVuY29kaW5nIGlzIGZvcmNlZCB0byBiZSBsYXRpbjEuClNvbHV0aW9uOiAgIENoZWNrIGZvciB1dGYtOCBlbmNvZGluZyBmaXJzdCBpbiBoZWxwIGZpbGVzLiAoRGFuaWVsIEVsc3RuZXIpCkZpbGVzOgkgICAgcnVudGltZS9kb2MvbWJ5dGUudHh0LCBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4zMjgKUHJvYmxlbTogICAgUHJvdG90eXBlIGZvciBlbmNfY2Fub25fc2VhcmNoKCkgaXMgbWlzc2luZy4KU29sdXRpb246ICAgQWRkIHRoZSBwcm90b3R5cGUuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4xLjMyOQpQcm9ibGVtOiAgICBXaGVuIGVkaXRpbmcgYSBmaWxlICJhIGIgYyIgcmVwbGFjaW5nICIlIiBpbiAiOkNtZCAlIiBvciAiOm5leHQgJSIKCSAgICBkb2VzIG5vdCB3b3JrIHByb3Blcmx5LiAgKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBBbHdheXMgZXNjYXBlIHNwYWNlcyB3aGVuIGV4cGFuZGluZyAiJSIuICBEb24ndCBzcGxpdCBhcmd1bWVudCBmb3IKCSAgICA8Zi1hcmdzPiBpbiBhIHVzZXIgY29tbWFuZCB3aGVuIG9ubHkgb25lIGFyZ3VtZW50IGlzIHVzZWQuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4zMzAKUHJvYmxlbTogICAgR1RLLCBNb3RpZiBhbmQgQXRoZW5hOiBLZXlwYWQga2V5cyBwcm9kdWNlIHRoZSBzYW1lIGNvZGUgYXMKCSAgICBub24ta2V5cGFkIGtleXMsIG1ha2luZyBpdCBpbXBvc3NpYmxlIHRvIG1hcCB0aGVtIHNlcGFyYXRlbHkuClNvbHV0aW9uOiAgIFVzZSBkaWZmZXJlbnQgdGVybWNhcCBjb2RlcyBmb3IgdGhlIGtleXBhZCBrZXlzLiAoTmVpbCBCaXJkKQpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jLCBzcmMvZ3VpX3gxMS5jCgpQYXRjaCA2LjEuMzMxClByb2JsZW06ICAgIFdoZW4gdHJhbnNsYXRpbmcgdGhlIGhlbHAgZmlsZXMsICJMT0NBTCBBRERJVElPTlMiIG5vIGxvbmdlciBtYXJrcwoJICAgIHRoZSBzcG90IHdoZXJlIGhlbHAgZmlsZXMgZnJvbSBwbHVnaW5zIGFyZSB0byBiZSBsaXN0ZWQuClNvbHV0aW9uOiAgIEFkZCBhICJsb2NhbC1hZGRpdGlvbnMiIHRhZyBhbmQgdXNlIHRoYXQgdG8gZmluZCB0aGUgcmlnaHQgc3BvdC4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9oZWxwLnR4dCwgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjMzMiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBMb2FkaW5nIFBlcmwgZHluYW1pY2FsbHkgZG9lc24ndCB3b3JrIHdpdGggUGVybCA1LjguCgkgICAgUGVybCA1LjggYWxzbyBkb2VzIG5vdCB3b3JrIHdpdGggQ3lnd2luIGFuZCBNaW5nLgpTb2x1dGlvbjogICBBZGp1c3QgdGhlIGZ1bmN0aW9uIGNhbGxzLiAoVGFybyBNdXJhb2thKQoJICAgIEFkanVzdCB0aGUgY3lnIGFuZCBtaW5nIG1ha2VmaWxlcy4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBzcmMvTWFrZV9jeWcubWFrLCBzcmMvTWFrZV9taW5nLm1haywgc3JjL01ha2VfbXZjLm1haywKCSAgICBzcmMvaWZfcGVybC54cwoKUGF0Y2ggNi4xLjMzMyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBDYW4ndCBoYW5kbGUgVW5pY29kZSB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQuCgkgICAgQ2FuJ3QgcGFzcyBOVUwgYnl0ZSwgaXQgYmVjb21lcyBhIGxpbmUgYnJlYWsuICAoQnJ1Y2UgRGVWaXNzZXIpClNvbHV0aW9uOiAgIFN1cHBvcnQgVW5pY29kZSBmb3IgdGhlIGNsaXBib2FyZCAoUm9uIEFhcm9uIGFuZCBHbGVubiBNYXluYXJkKQoJICAgIEFsc28gc3VwcG9ydCBjb3B5L3Bhc3RlIG9mIE5VTCBieXRlcy4KRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYywgc3JjL29zX3dpbjE2LmMgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMS4zMzQgKGV4dHJhLCBkZXBlbmRzIG9uIDYuMS4zMDMpClByb2JsZW06ICAgIFByb2JsZW0gd2l0aCBkcmF3aW5nIEhlYnJldyBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBPbmx5IHVzZSBFVE9fUERZIGZvciBXaW5kb3dzIE5UIGFuZCB0aGUgbGlrZS4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuMzM1IChleHRyYSkKUHJvYmxlbTogICAgRmFpbHVyZSBvZiBvYnRhaW5pbmcgdGhlIGN1cnNvciBwb3NpdGlvbiBhbmQgd2luZG93IHNpemUgaXMKCSAgICBpZ25vcmVkLgpTb2x1dGlvbjogICBSZW1vdmUgYSBzZW1pY29sb24gYWZ0ZXIgYW4gImlmIi4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMS4zMzYgKGV4dHJhKQpQcm9ibGVtOiAgICBXYXJuaW5nIGZvciB1c2Ugb2YgZnVuY3Rpb24gcHJvdG90eXBlcyBvZiBzbXNnKCkuClNvbHV0aW9uOiAgIERlZmluZSBIQVZFX1NUREFSR19ILiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmgKClBhdGNoIDYuMS4zMzcKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiZmluaXNoIiBpbiBkZWJ1ZyBtb2RlIGluIGZ1bmN0aW9uIEIoKSBmb3IgIjpjYWxsCgkgICAgQShCKCkpIiBkb2VzIG5vdCBzdG9wIGFmdGVyIEIoKSBpcyBmaW5pc2hlZC4KU29sdXRpb246ICAgSW5jcmVhc2UgZGVidWdfbGV2ZWwgd2hpbGUgZXZhbHVhdGluZyBhIGZ1bmN0aW9uLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMzM4ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSBtZW51IHRoYXQgY2hlY2tzIG91dCB0aGUgY3VycmVudCBmaWxlIGZyb20gSW5zZXJ0CgkgICAgbW9kZSwgdGhlcmUgaXMgbm8gd2FybmluZyBmb3IgdGhlIGNoYW5nZWQgZmlsZSB1bnRpbCBleGl0aW5nCgkgICAgSW5zZXJ0IG1vZGUuICAoU3Jpa2FudGggU2Fua2FyYW4pClNvbHV0aW9uOiAgIEFkZCBhIGNoZWNrIGZvciBuZWVkX2NoZWNrX3RpbWVzdGFtcHMgaW4gdGhlIEluc2VydCBtb2RlIGxvb3AuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4xLjMzOQpQcm9ibGVtOiAgICBDb21wbGV0aW9uIGRvZXNuJ3QgYWxsb3cgImc6IiBpbiAiOmxldCBnOmRpZF88VGFiPiIuIChCZW5qaQoJICAgIEZpc2hlcikKU29sdXRpb246ICAgUmV0dXJuICJnOnZhciIgZm9yIGdsb2JhbCB2YXJpYWJsZXMgd2hlbiB0aGF0IGlzIHdoYXQgaXMgYmVpbmcKCSAgICBleHBhbmRlZC4gKEZsZW1taW5nIE1hZHNlbikKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMzQwIChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMzMyKQpQcm9ibGVtOiAgICBXaW4zMjogQ2FuJ3QgY29tcGlsZSB0aGUgUGVybCBpbnRlcmZhY2Ugd2l0aCBubWFrZS4KU29sdXRpb246ICAgRG9uJ3QgY29tcGFyZSB0aGUgdmVyc2lvbiBudW1iZXIgYXMgYSBzdHJpbmcgYnV0IGFzIGEgbnVtYmVyLgoJICAgIChKdWVyZ2VuIEtyYWVtZXIpCkZpbGVzOgkgICAgc3JjL01ha2VfbXZjLm1hawoKUGF0Y2ggNi4xLjM0MQpQcm9ibGVtOiAgICBJbiBJbnNlcnQgbW9kZSB3aXRoICdyaWdodGxlZnQnIHNldCB0aGUgY3Vyc29yIGlzIGRyYXduIGhhbGZ3YXkgYQoJICAgIGRvdWJsZS13aWRlIGNoYXJhY3Rlci4gIEZvciBDVFJMLVIgYW5kIENUUkwtSyBpbiBJbnNlcnQgbW9kZSB0aGUgIgoJICAgIG9yID8gaXMgbm90IGRpc3BsYXllZC4KU29sdXRpb246ICAgRHJhdyB0aGUgY3Vyc29yIGluIHRoZSBuZXh0IGNoYXJhY3RlciBjZWxsLiAgRGlzcGxheSB0aGUgIiBvciA/CgkgICAgb3ZlciB0aGUgcmlnaHQgaGFsZiBvZiB0aGUgZG91YmxlLXdpZGUgY2hhcmFjdGVyLiAoWWFzdWhpcm8KCSAgICBNYXRzdW1vdG8pICBBbHNvIGZpeCB0aGF0IGNhbmNlbGxpbmcgYSBkaWdyYXBoIGRvZXNuJ3QgcmVkcmF3CgkgICAgYSBkb3VibGUtYnl0ZSBjaGFyYWN0ZXIgY29ycmVjdGx5LgpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9ndWkuYywgc3JjL21ieXRlLmMKClBhdGNoIDYuMS4zNDIgKGRlcGVuZHMgb24gNi4xLjM0MSkKUHJvYmxlbTogICAgV2l0aCAncmlnaHRsZWZ0JyBzZXQgdHlwaW5nICJjIiBvbiBhIGRvdWJsZS13aWRlIGNoYXJhY3RlciBjYXVzZXMKCSAgICB0aGUgY3Vyc29yIHRvIGJlIGRpc3BsYXllZCBvbmUgY2VsbCB0byB0aGUgbGVmdC4KU29sdXRpb246ICAgRHJhdyB0aGUgY3Vyc29yIGluIHRoZSBuZXh0IGNoYXJhY3RlciBjZWxsLiAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMS4zNDMgKGRlcGVuZHMgb24gNi4xLjM0MikKUHJvYmxlbTogICAgQ2Fubm90IGNvbXBpbGUgd2l0aCB0aGUgK211bHRpX2J5dGUgZmVhdHVyZSBidXQgd2l0aG91dCArcmlnaHRsZWZ0LgoJICAgIENhbm5vdCBjb21waWxlIHdpdGhvdXQgdGhlIEdVSS4KU29sdXRpb246ICAgRml4IHRoZSAjaWZkZWZzLiAgKHBhcnRseSBieSBOYW0gU3VuZ0h5dW4pCkZpbGVzOgkgICAgc3JjL2d1aS5jLCBzcmMvbWJ5dGUuYywgc3JjL3VpLmMKClBhdGNoIDYuMS4zNDQKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiOnNpbGVudCBmaWxldHlwZSIgdGhlIG91dHB1dCBpcyBzdGlsbCBwdXQgaW4gdGhlCgkgICAgbWVzc2FnZSBoaXN0b3J5LiAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIERvbid0IGFkZCBtZXNzYWdlcyBpbiB0aGUgaGlzdG9yeSB3aGVuICI6c2lsZW50IiBpcyB1c2VkLgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMS4zNDUgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogJ2ltZGlzYWJsZScgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBNYWtlICdpbWRpc2FibGUnIHdvcmsuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4xLjM0NgpQcm9ibGVtOiAgICBUaGUgc2Nyb2xsIHdoZWVsIGNhbiBvbmx5IHNjcm9sbCB0aGUgY3VycmVudCB3aW5kb3cuClNvbHV0aW9uOiAgIE1ha2UgdGhlIHNjcm9sbCB3aGVlbCBzY3JvbGwgdGhlIHdpbmRvdyB0aGF0IHRoZSBtb3VzZSBwb2ludHMgdG8uCgkgICAgKERhbmllbCBFbHN0bmVyKQpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9ndWkuYywgc3JjL25vcm1hbC5jLCBzcmMvdGVybS5jCgpQYXRjaCA2LjEuMzQ3ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgY3Njb3BlIHRvIGxpc3QgbWF0Y2hpbmcgdGFncywgdGhlIGxpc3RlZCBudW1iZXIgaXMKCSAgICBzb21ldGltZXMgbm90IGVxdWFsIHRvIHdoYXQgY3Njb3BlIHVzZXMuIChWaWhyZW4gTWlsZXYpClNvbHV0aW9uOiAgIEZvciBjc2NvcGUgdGFncyB1c2Ugb25seSBvbmUgdGFibGUsIGRvbid0IGdpdmUgdGFncyBpbiB0aGUgY3VycmVudAoJICAgIGZpbGUgYSBoaWdoZXIgcHJpb3JpdHkuCkZpbGVzOgkgICAgc3JjL3RhZy5jCgpQYXRjaCA2LjEuMzQ4ClByb2JsZW06ICAgIFdpbGRtb2RlIHdpdGggd2lsZG1lbnU6ICI6c2V0IHdpbGRtb2RlPWxpc3QsZnVsbCIsICI6Y29sb3JzY2hlbWUKCSAgICA8dGFiPiIgcmVzdWx0cyBpbiAiemVsbG5lciIgaW5zdGVhZCBvZiB0aGUgZmlyc3QgZW50cnkuIChBbmFuZAoJICAgIEhhcmloYXJhbikKU29sdXRpb246ICAgRG9uJ3QgY2FsbCBFeHBhbmRPbmUoKSBmcm9tIGdsb2JwYXRoKCkuIChGbGVtbWluZyBNYWRzZW4pCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMS4zNDkKUHJvYmxlbTogICAgInZpbSAtLXNlcnZlcmxpc3QiIHdoZW4gbm8gc2VydmVyIHdhcyBldmVyIHN0YXJ0ZWQgZ2l2ZXMgYW4gZXJyb3IKCSAgICBtZXNzYWdlIHdpdGhvdXQgIlxuIi4KCSAgICAidmltIC0tc2VydmVybGlzdCIgZG9lc24ndCBleGl0IHdoZW4gdGhlIFggc2VydmVyIGNhbid0IGJlCgkgICAgY29udGFjdGVkLCBpdCBzdGFydHMgVmltIHVuZXhwZWN0ZWRseS4gKFJpY2FyZG8gU2lnbmVzKQpTb2x1dGlvbjogICBEb24ndCBnaXZlIGFuIGVycm9yIHdoZW4gbm8gVmltIHNlcnZlciB3YXMgZXZlciBzdGFydGVkLgoJICAgIFRyZWF0IGZhaWxpbmcgb2Ygb3BlbmluZyB0aGUgZGlzcGxheSBlcXVhbCB0byBlcnJvcnMgaW5zaWRlIHRoZQoJICAgIHJlbW90ZSooKSBmdW5jdGlvbnMuIChGbGVtbWluZyBNYWRzZW4pCkZpbGVzOgkgICAgc3JjL2lmX3hjbWRzcnYuYywgc3JjL21haW4uYwoKUGF0Y2ggNi4xLjM1MApQcm9ibGVtOiAgICBXaGVuIGVudGVyaW5nIGEgYnVmZmVyIHdpdGggIjpibmV4dCIgZm9yIHRoZSBmaXJzdCB0aW1lLCB1c2luZyBhbgoJICAgIGF1dG9jb21tYW5kIHRvIHJlc3RvcmUgdGhlIGxhc3QgdXNlZCBjdXJzb3IgcG9zaXRpb24gZG9lc24ndCB3b3JrLgoJICAgIChQYW9sbyBHaWFydXNzbykKU29sdXRpb246ICAgRG9uJ3QgdXNlIHRoZSBsYXN0IGtub3duIGN1cnNvciBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCBWaW0KCSAgICBpbnZvY2F0aW9uIGlmIGFuIGF1dG9jb21tYW5kIGNoYW5nZWQgdGhlIHBvc2l0aW9uLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjM1MSAoZGVwZW5kcyBvbiA2LjEuMzQ5KQpQcm9ibGVtOiAgICBDcmFzaCB3aGVuIHN0YXJ0aW5nIFZpbSB0aGUgZmlyc3QgdGltZSBpbiBhbiBYIHNlcnZlci4gKEpvaG4KCSAgICBNY0dvd2FuKQpTb2x1dGlvbjogICBEb24ndCBjYWxsIHhGcmVlKCkgd2l0aCBhIGZpeGVkIHN0cmluZy4KRmlsZXM6CSAgICBzcmMvaWZfeGNtZHNydi5jCgpQYXRjaCA2LjEuMzUyIChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMzQ1KQpQcm9ibGVtOiAgICBXaW4zMjogQ3Jhc2ggd2hlbiBzZXR0aW5nICJpbWRpc2FibGUiIGluIF92aW1yYy4KU29sdXRpb246ICAgRG9uJ3QgY2FsbCBJTUUgZnVuY3Rpb25zIHdoZW4gaW1tMzIuZGxsIHdhcyBub3QgbG9hZGVkICh5ZXQpLgoJICAgIEFsc28gYWRkIHR5cGVjYXN0cyB0byBhdm9pZCBDb21waWxlciB3YXJuaW5ncyBmb3IKCSAgICBJbW1Bc3NvY2lhdGVDb250ZXh0KCkgYXJndW1lbnQuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4xLjM1MyAoZXh0cmEsIGRlcGVuZHMgb24gNi4xLjMzNCkKUHJvYmxlbTogICAgUHJvYmxlbSB3aXRoIGRyYXdpbmcgQXJhYmljIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIERvbid0IHVzZSBFVE9fUERZLCBkbyB1c2UgcGFkZGluZy4KRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuMzU0IChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMzMzKQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzIDk4OiBOb3RlcGFkIGNhbid0IHBhc3RlIHRleHQgY29waWVkIGZyb20gVmltIHdoZW4KCSAgICAnZW5jb2RpbmcnIGlzICJ1dGYtOCIuClNvbHV0aW9uOiAgIEFsc28gbWFrZSBDRl9URVhUIGF2YWlsYWJsZSBvbiB0aGUgY2xpcGJvYXJkLiAoUm9uIEFhcm9uKQpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjEuMzU1ClByb2JsZW06ICAgIEluIGEgcmVnZXhwICdcbicgd2lsbCBuZXZlciBtYXRjaCBhbnl0aGluZyBpbiBhIHN0cmluZy4KU29sdXRpb246ICAgTWFrZSAnXG4nIG1hdGNoIGEgbmV3bGluZSBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvZWRpdC5jLCBzcmMvZXZhbC5jLCBzcmMvZXhfY21kczIuYywKCSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9maWxlaW8uYywgc3JjL21pc2MxLmMsCgkgICAgc3JjL29wdGlvbi5jLCBzcmMvb3NfbWFjLmMsIHNyYy9vc191bml4LmMsIHNyYy9xdWlja2ZpeC5jLAoJICAgIHNyYy9yZWdleHAuYywgc3JjL3NlYXJjaC5jLCBzcmMvc3ludGF4LmMsIHNyYy90YWcuYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjEuMzU2IChleHRyYSwgZGVwZW5kcyBvbiwgd2VsbCwgZWgsIHNldmVyYWwgb3RoZXJzKQpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5ncyBmb3IgdXNpbmcgY29udmVydF9zZXR1cCgpIGFuZCBhIGZldyBvdGhlcgoJICAgIHRoaW5ncy4KU29sdXRpb246ICAgQWRkIHR5cGVjYXN0cy4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYywgc3JjL29zX21zd2luLmMsIHNyYy9wcm90by9vc193aW4zMi5wcm8sIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjEuMzU3ClByb2JsZW06ICAgIENSIGluIHRoZSBxdWlja2ZpeCB3aW5kb3cganVtcHMgdG8gdGhlIGVycm9yIHVuZGVyIHRoZSBjdXJzb3IsIGJ1dAoJICAgIHRoaXMgZG9lc24ndCB3b3JrIGluIEluc2VydCBtb2RlLiAoU3Jpa2FudGggU2Fua2FyYW4pClNvbHV0aW9uOiAgIEhhbmRsZSBDUiBpbiBJbnNlcnQgbW9kZSBpbiB0aGUgcXVpY2tmaXggd2luZG93LgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMS4zNTgKUHJvYmxlbTogICAgVGhlIHR1dG9yIGRvZXNuJ3Qgc2VsZWN0IGFub3RoZXIgbG9jYWxlIHZlcnNpb24gcHJvcGVybHkuClNvbHV0aW9uOiAgIEluc2VydCB0aGUgImxldCIgY29tbWFuZC4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBydW50aW1lL3R1dG9yL3R1dG9yLnZpbQoKUGF0Y2ggNi4xLjM1OSAoZXh0cmEpClByb2JsZW06ICAgIE1hYyBDYXJib246IFZpbSBkb2Vzbid0IGdldCBmb2N1cyB3aGVuIHN0YXJ0ZWQgZnJvbSB0aGUgY29tbWFuZAoJICAgIGxpbmUuICBDcmFzaCB3aGVuIHVzaW5nIGhvcml6b250YWwgc2Nyb2xsIGJhci4KU29sdXRpb246ICAgU2V0IFZpbSBhcyB0aGUgZnJvbnRwcm9jZXNzLiAgRml4IHNjcm9sbGluZy4gIChQZXRlciBDdWNrYSkKRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jCgpQYXRjaCA2LjEuMzYwIChkZXBlbmRzIG9uIDYuMS4zNDEpClByb2JsZW06ICAgIEluIEluc2VydCBtb2RlIENUUkwtSyBFU0MgbWVzc2VzIHVwIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuCgkgICAgKEFuZGVycyBIZWxtZXJzc29uKQpTb2x1dGlvbjogICBTYXZlIGFsbCBieXRlcyBvZiBhIGNoYXJhY3RlciB3aGVuIGRpc3BsYXlpbmcgYSBjaGFyYWN0ZXIKCSAgICB0ZW1wb3JhcmlseS4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvcHJvdG8vc2NyZWVuLnBybywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMzYxClByb2JsZW06ICAgIENhbm5vdCBqdW1wIHRvIGEgZmlsZSBtYXJrIHdpdGggIjonTSIuClNvbHV0aW9uOiAgIEFsbG93IGp1bXBpbmcgdG8gYW5vdGhlciBmaWxlIGZvciBhIG1hcmsgaW4gYW4gRXggYWRkcmVzcyB3aGVuIGl0CgkgICAgaXMgdGhlIG9ubHkgdGhpbmcgaW4gdGhlIGNvbW1hbmQgbGluZS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjM2MgpQcm9ibGVtOiAgICB0Z2V0ZW50KCkgbWF5IHJldHVybiB6ZXJvIGZvciBzdWNjZXNzLiB0Z2V0ZmxhZygpIG1heSByZXR1cm4gLTEKCSAgICBmb3IgYW4gZXJyb3IuClNvbHV0aW9uOiAgIENoZWNrIHRnZXRmbGFnKCkgZm9yIHJldHVybmluZyBhIHBvc2l0aXZlIHZhbHVlLiAgQWRkIGFuIGF1dG9jb25mCgkgICAgY2hlY2sgZm9yIHRoZSB2YWx1ZSB0aGF0IHRnZXRlbnQoKSByZXR1cm5zLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZy5oLmluLCBzcmMvY29uZmlndXJlLmluLCBzcmMvdGVybS5jCgpQYXRjaCA2LjEuMzYzClByb2JsZW06ICAgIGJ5dGUybGluZSgpIGNhbiByZXR1cm4gb25lIG1vcmUgdGhhbiB0aGUgbnVtYmVyIG9mIGxpbmVzLgpTb2x1dGlvbjogICBSZXR1cm4gLTEgaWYgdGhlIG9mZnNldCBpcyBvbmUgYnl0ZSBwYXN0IHRoZSBlbmQuCkZpbGVzOgkgICAgc3JjL21lbWxpbmUuYwoKUGF0Y2ggNi4xLjM2NApQcm9ibGVtOiAgICBUaGF0IHRoZSBGaWxlQ2hhbmdlZFNoZWxsIGF1dG9jb21tYW5kIGV2ZW50IG5ldmVyIG5lc3RzIG1ha2VzIGl0CgkgICAgZGlmZmljdWx0IHRvIHJlbG9hZCBhIGZpbGUgaW4gYSBub3JtYWwgd2F5LgpTb2x1dGlvbjogICBBbGxvdyBuZXN0aW5nIGZvciB0aGUgRmlsZUNoYW5nZWRTaGVsbCBldmVudCBidXQgZG8gbm90IGFsbG93CgkgICAgdHJpZ2dlcmluZyBpdHNlbGYgYWdhaW4uCgkgICAgQWxzbyBhdm9pZCBhdXRvY29tbWFuZHMgZm9yIHRoZSBjbWRsaW5lIHdpbmRvdyBpbiByYXJlIGNhc2VzLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvZmlsZWlvLmMsIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4xLjM2NSAoZGVwZW5kcyBvbiA2LjEuMjE3KQpQcm9ibGVtOiAgICBTZXR0aW5nIGEgYnJlYWtwb2ludCBpbiBhIHNvdXJjZWQgZmlsZSB3aXRoIGEgcmVsYXRpdmUgcGF0aCBuYW1lCgkgICAgZG9lc24ndCB3b3JrLiAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgRXhwYW5kIHRoZSBmaWxlIG5hbWUgdG8gYSBmdWxsIHBhdGguCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMS4zNjYKUHJvYmxlbTogICAgQ2FuJ3QgdXNlIFZpbSB3aXRoIE5ldGJlYW5zLgpTb2x1dGlvbjogICBBZGQgdGhlIE5ldGJlYW5zIGludGVyZmFjZS4gIEluY2x1ZGVzIHN1cHBvcnQgZm9yIHNpZ24gaWNvbnMgYW5kCgkgICAgIi1mZyIgYW5kICItYmciIGFyZ3VtZW50cyBmb3IgR1RLLiAgQWRkIHRoZSAnYXV0b2NoZGlyJwoJICAgIG9wdGlvbi4gIChHb3Jkb24gUHJpZXVyLCBHZW9yZ2UgSGVybmFuZGV6LCBEYXZlIFdlYXRoZXJmb3JkKQoJICAgIE1ha2UgaXQgcG9zc2libGUgdG8gZGlzcGxheSBib3RoIGEgc2lnbiB3aXRoIGEgdGV4dCBhbmQgb25lIHdpdGgKCSAgICBsaW5lIGhpZ2hsaWdodGluZyBpbiB0aGUgc2FtZSBsaW5lLgoJICAgIEFkZCBzdXBwb3J0IGZvciBBZ2lkZSwgaW50ZXJmYWNlIHZlcnNpb24gMi4xLgoJICAgIEFsc28gZml4IHRoYXQgd2hlbiAnaXNrZXl3b3JkJyBpbmNsdWRlcyAnPycgdGhlICIqIiBjb21tYW5kCgkgICAgZG9lc24ndCB3b3JrIHByb3Blcmx5IG9uIGEgd29yZCB0aGF0IGluY2x1ZGVzICI/IiAoQmlsbCBNY0NhcnRoeSk6CgkgICAgRG9uJ3QgZXNjYXBlICI/IiB0byAiXD8iIHdoZW4gc2VhcmNoaW5nIGZvcndhcmQuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvTWFrZWZpbGUsIHJ1bnRpbWUvZG9jL25ldGJlYW5zLnR4dCwKCSAgICBydW50aW1lL2RvYy9vcHRpb25zLnR4dCwgcnVudGltZS9kb2MvdmFyaW91cy50eHQsCgkgICAgc3JjL01ha2VmaWxlLCBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9idWZmZXIuYywgc3JjL2NvbmZpZy5oLmluLAoJICAgIHNyYy9jb25maWcubWsuaW4sIHNyYy9jb25maWd1cmUuaW4sIHNyYy9lZGl0LmMsIHNyYy9leF9jbWRzLmMsCgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9mZWF0dXJlLmgsIHNyYy9maWxlaW8uYywgc3JjL2dsb2JhbHMuaCwKCSAgICBzcmMvZ3VpLmMsIHNyYy9ndWlfYmV2YWwuYywgc3JjL2d1aV9ndGtfeDExLmMsIHNyYy9ndWlfeDExLmMsCgkgICAgc3JjL21haW4uYywgc3JjL21lbWxpbmUuYywgc3JjL21pc2MxLmMsIHNyYy9taXNjMi5jLCBzcmMvbW92ZS5jLAoJICAgIHNyYy9uYmRlYnVnLmMsIHNyYy9uYmRlYnVnLmgsIHNyYy9uZXRiZWFucy5jLCBzcmMvbm9ybWFsLmMsCgkgICAgc3JjL29wcy5jLCBzcmMvb3B0aW9uLmMsIHNyYy9vcHRpb24uaCwgc3JjL3Byb3RvL2J1ZmZlci5wcm8sCgkgICAgc3JjL3Byb3RvL2d1aV9iZXZhbC5wcm8sIHNyYy9wcm90by9ndWlfZ3RrX3gxMS5wcm8sCgkgICAgc3JjL3Byb3RvL2d1aV94MTEucHJvLCBzcmMvcHJvdG8vbWlzYzIucHJvLAoJICAgIHNyYy9wcm90by9uZXRiZWFucy5wcm8sIHNyYy9wcm90by9ub3JtYWwucHJvLCBzcmMvcHJvdG8vdWkucHJvLAoJICAgIHNyYy9wcm90by5oLCBzcmMvc2NyZWVuLmMsIHNyYy9zdHJ1Y3RzLmgsIHNyYy91aS5jLCBzcmMvdW5kby5jLAoJICAgIHNyYy92aW0uaCwgc3JjL3dpbmRvdy5jLCBzcmMvd29ya3Nob3AuYwoKUGF0Y2ggNi4xLjM2NyAoZGVwZW5kcyBvbiA2LjEuMzY1KQpQcm9ibGVtOiAgICBTZXR0aW5nIGEgYnJlYWtwb2ludCBpbiBhIGZ1bmN0aW9uIGRvZXNuJ3Qgd29yay4gIEZvciBhIHNvdXJjZWQKCSAgICBmaWxlIGl0IGRvZXNuJ3Qgd29yayB3aGVuIHN5bWJvbGljIGxpbmtzIGFyZSBpbnZvbHZlZC4gIChTZXJ2YXRpdXMKCSAgICBCcmFuZHQpClNvbHV0aW9uOiAgIEV4cGFuZCB0aGUgZmlsZSBuYW1lIGluIHRoZSBzYW1lIHdheSBhcyBkb19zb3VyY2UoKSBkb2VzLiAgRG9uJ3QKCSAgICBwcmVwZW5kIHRoZSBwYXRoIHRvIGEgZnVuY3Rpb24gbmFtZS4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjM2OApQcm9ibGVtOiAgICBDb21wbGV0aW9uIGZvciAiOm1hcCIgZG9lcyBub3QgaW5jbHVkZSA8c2lsZW50PiBhbmQgPHNjcmlwdD4uCgkgICAgIjpta2V4cmMiIGRvIG5vdCBzYXZlIHRoZSA8c2lsZW50PiBhdHRyaWJ1dGUgb2YgbWFwcGluZ3MuClNvbHV0aW9uOiAgIEFkZCAiPHNpbGVudD4iIHRvIHRoZSBnZW5lcmF0ZWQgbWFwIGNvbW1hbmRzIHdoZW4gYXBwcm9wcmlhdGUuCgkgICAgKERhdmlkIEVsc3RuZXIpCgkgICAgQWRkIDxzaWxlbnQ+IGFuZCA8c2NyaXB0PiB0byBjb21tYW5kIGxpbmUgY29tcGxldGlvbi4KRmlsZXM6CSAgICBzcmMvZ2V0Y2hhci5jCgpQYXRjaCA2LjEuMzY5IChleHRyYSkKUHJvYmxlbTogICAgVk1TOiBWaW0gaGFuZ3Mgd2hlbiBhdHRlbXB0aW5nIHRvIGVkaXQgYSByZWFkLW9ubHkgZmlsZSBpbiB0aGUKCSAgICB0ZXJtaW5hbC4gIFByb2JsZW0gd2l0aCBWTVMgZmlsZW5hbWVzIGZvciBxdWlja2ZpeC4KU29sdXRpb246ICAgUmV3cml0ZSBsb3cgbGV2ZWwgaW5wdXQuICBSZW1vdmUgdmVyc2lvbiBudW1iZXIgZnJvbSBmaWxlIG5hbWUgaW4KCSAgICBhIGNvdXBsZSBtb3JlIHBsYWNlcy4gIEZpeCBjcmFzaCBhZnRlciBwYXRjaCA2LjEuMzYyLiAgQ29ycmVjdAoJICAgIHJldHVybiBjb2RlIGZvciBzeXN0ZW0oKS4gIChab2x0YW4gQXJwYWRmZnksIFRvbWFzIFN0ZWhsaWspCkZpbGVzOgkgICAgc3JjL21pc2MxLmMsIHNyYy9vc191bml4LmMsIHNyYy9vc192bXMuYywgc3JjL3Byb3RvL29zX3Ztcy5wcm8sCgkgICAgc3JjL29zX3Ztc19jb25mLmgsIHNyYy9xdWlja2ZpeC5jLCBzcmMvdWkuYwoKUGF0Y2ggNi4xLjM3MApQcm9ibGVtOiAgICAjaWZkZWYgbmVzdGluZyBpcyB1bmNsZWFyLgpTb2x1dGlvbjogICBJbnNlcnQgc3BhY2VzIHRvIGluZGljYXRlIHRoZSBuZXN0aW5nLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMS4zNzEKUHJvYmxlbTogICAgIiVWIiBpbiAnc3RhdHVzbGluZScgZG9lc24ndCBzaG93ICIwLTEiIGluIGFuIGVtcHR5IGxpbmUuClNvbHV0aW9uOiAgIEFkZCBvbmUgdG8gdGhlIGNvbHVtbiB3aGVuIGNvbXBhcmluZyB3aXRoIHZpcnR1YWwgY29sdW1uIChBbmRyZXcKCSAgICBQaW1sb3R0KQpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjM3MgpQcm9ibGVtOiAgICBXaXRoIDE2IGJpdCBpbnRzIHRoZXJlIGFyZSBjb21waWxlciB3YXJuaW5ncy4gKFdhbHRlciBCcmlzY29lKQpTb2x1dGlvbjogICBDaGFuZ2UgaW50IGludG8gbG9uZy4KRmlsZXM6CSAgICBzcmMvc3RydWN0cy5oLCBzcmMvc3ludGF4LmMKClBhdGNoIDYuMS4zNzMKUHJvYmxlbTogICAgVGhlIGRlZmF1bHQgcGFnZSBoZWFkZXIgZm9yIHByaW50aW5nIGlzIG5vdCB0cmFuc2xhdGVkLgpTb2x1dGlvbjogICBBZGQgXygpIGFyb3VuZCB0aGUgdHdvIHBsYWNlcyB3aGVyZSAiUGFnZSIgaXMgdXNlZC4gKE1pa2UKCSAgICBXaWxsaWFtcykgIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgJ3RpdGxlb2xkJyBhbmQKCSAgICAncHJpbnRoZWFkZXInIG9wdGlvbnMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjM3NCAoZXh0cmEpClByb2JsZW06ICAgIE1TLVdpbmRvd3M6IENhbm5vdCBidWlsZCBHdmltRXh0IHdpdGggTWluZ1cgb3IgQ3lnd2luLgpTb2x1dGlvbjogICBBZGQgbWFrZWZpbGUgYW5kIG1vZGlmaWVkIHJlc291cmNlIGZpbGVzLiAoUmVuZSBkZSBad2FydCkKCSAgICBBbHNvIHN1cHBvcnQgQ3lnd2luLiAoQWxlamFuZHJvIExvcGV6X1ZhbGVuY2lhKQpGaWxlczoJICAgIEd2aW1FeHQvTWFrZV9jeWcubWFrLCBHdmltRXh0L01ha2VfbWluZy5tYWssIEd2aW1FeHQvTWFrZWZpbGUsCgkgICAgR3ZpbUV4dC9ndmltZXh0X21pbmcuZGVmLCBHdmltRXh0L2d2aW1leHRfbWluZy5yYwoKUGF0Y2ggNi4xLjM3NQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzOiAnOiFkaXIgIiUiJyBkb2VzIG5vdCB3b3JrIGZvciBhIGZpbGUgbmFtZSB3aXRoIHNwYWNlcy4KCSAgICAoWGlhbmdqaWFuZyBNYSkKU29sdXRpb246ICAgRG9uJ3QgaW5zZXJ0IGJhY2tzbGFzaGVzIGZvciBzcGFjZXMgaW4gYSBzaGVsbCBjb21tYW5kLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMzc2ClByb2JsZW06ICAgICJ2aW0gLS12ZXJzaW9uIiBhbmQgInZpbSAtLWhlbHAiIGhhdmUgYSBub24temVybyBleGl0IGNvZGUuCgkgICAgVGhhdCBpcyB1bnVzdWFsLiAoUGV0ZXNlYSkKU29sdXRpb246ICAgVXNlIGEgemVybyBleGl0IGNvZGUuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4xLjM3NwpQcm9ibGVtOiAgICBDYW4ndCBhZGQgd29yZHMgdG8gJ2xpc3B3b3Jkcycgb3B0aW9uLgpTb2x1dGlvbjogICBBZGQgUF9DT01NQSBhbmQgUF9OT0RVUCBmbGFncy4gKEhhYWtvbiBSaWlzZXIpCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjEuMzc4ClByb2JsZW06ICAgIFdoZW4gdHdvIGJ1ZmZlci1sb2NhbCB1c2VyIGNvbW1hbmRzIGFyZSBhbWJpZ3VvdXMsIGEgZnVsbCBtYXRjaAoJICAgIHdpdGggYSBnbG9iYWwgdXNlciBjb21tYW5kIGlzbid0IGZvdW5kLiAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIERldGVjdCB0aGlzIHNpdHVhdGlvbiBhbmQgYWNjZXB0IHRoZSBnbG9iYWwgY29tbWFuZC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjM3OQpQcm9ibGVtOiAgICBMaW51eCB3aXRoIGtlcm5lbCAyLjIgY2FuJ3QgdXNlIHRoZSBhbHRlcm5hdGUgc3RhY2sgaW4gY29tYmluYXRpb24KCSAgICB3aXRoIHRocmVhZGluZywgY2F1c2VzIGFuIGluZmluaXRlIGxvb3AuClNvbHV0aW9uOiAgIERvbid0IHVzZSB0aGUgYWx0ZXJuYXRlIHN0YWNrIGluIHRoaXMgc2l0dWF0aW9uLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMS4zODAKUHJvYmxlbTogICAgV2hlbiAnd2lubWluaGVpZ2h0JyBpcyB6ZXJvIGFuZCB0aGUgcXVpY2tmaXggd2luZG93IGlzIHplcm8gbGluZXMsCgkgICAgZW50ZXJpbmcgdGhlIHdpbmRvdyBkb2Vzbid0IG1ha2UgaXQgaGlnaGVyLiAoQ2hyaXN0aWFuIEouCgkgICAgUm9iaW5zb24pClNvbHV0aW9uOiAgIE1ha2Ugc3VyZSB0aGUgY3VycmVudCB3aW5kb3cgaXMgYXQgbGVhc3Qgb25lIGxpbmUgaGlnaC4KRmlsZXM6CSAgICBzcmMvd2luZG93LmMKClBhdGNoIDYuMS4zODEKUHJvYmxlbTogICAgV2hlbiBhIEJ1ZldyaXRlQ21kIGlzIHVzZWQgYW5kIGl0IGxlYXZlcyB0aGUgYnVmZmVyIG1vZGlmaWVkLCB0aGUKCSAgICB3aW5kb3cgbWF5IHN0aWxsIGJlIGNsb3NlZC4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBSZXR1cm4gRkFJTCBmcm9tIGJ1Zl93cml0ZSgpIHdoZW4gdGhlIGJ1ZmZlciBpcyBzdGlsbCBtb2RpZmllZAoJICAgIGFmdGVyIGEgQnVmV3JpdGVDbWQgYXV0b2NvbW1hbmQgd2FzIHVzZWQuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuMzgyIChleHRyYSkKUHJvYmxlbTogICAgV2luMzIgR1VJOiBXaGVuIHVzaW5nIHR3byBtb25pdG9ycywgdGhlIGNvZGUgdGhhdCBjaGVja3MvZml4ZXMgdGhlCgkgICAgd2luZG93IHNpemUgYW5kIHBvc2l0aW9uIChlLmcuIHdoZW4gYSBmb250IGNoYW5nZXMpIGRvZXNuJ3Qgd29yawoJICAgIHByb3Blcmx5LiAgKEdlb3JnZSBSZWlsbHkpClNvbHV0aW9uOiAgIEhhbmRsZSBhIGRvdWJsZSBtb25pdG9yIHNpdHVhdGlvbi4gKEhlbG11dCBTdGllZ2xlcikKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuMzgzClByb2JsZW06ICAgIFRoZSBmaWxsaW5nIG9mIHRoZSBzdGF0dXMgbGluZSBkb2Vzbid0IHdvcmsgcHJvcGVybHkgZm9yCgkgICAgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLiAoTmFtIFN1bmdIeXVuKQoJICAgIFRoZXJlIGlzIG5vIGNoZWNrIGZvciBnb2luZyBwYXN0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4KU29sdXRpb246ICAgUHJvcGVybHkgZGlzdGluZ3Vpc2ggY2hhcmFjdGVycyBhbmQgYnl0ZXMuICBQcm9wZXJseSBjaGVjayBmb3IKCSAgICBydW5uaW5nIG91dCBvZiBidWZmZXIgc3BhY2UuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvZXhfY21kczIuYywgc3JjL3Byb3RvL2J1ZmZlci5wcm8sIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjM4NApQcm9ibGVtOiAgICBJdCBpcyBub3QgcG9zc2libGUgdG8gZmluZCBpZiBhIGNlcnRhaW4gcGF0Y2ggaGFzIGJlZW4gaW5jbHVkZWQuCgkgICAgKEx1Ym9taXIgSG9zdCkKU29sdXRpb246ICAgU3VwcG9ydCB1c2luZyBoYXMoKSB0byBjaGVjayBpZiBhIHBhdGNoIHdhcyBpbmNsdWRlZC4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYywgc3JjL3Byb3RvL3ZlcnNpb24ucHJvLAoJICAgIHNyYy92ZXJzaW9uLmMKClBhdGNoIDYuMS4zODUgKGRlcGVuZHMgb24gNi4xLjM4MykKUHJvYmxlbTogICAgQ2FuJ3QgY29tcGlsZSB3aXRob3V0IHRoZSBtdWx0aS1ieXRlIGZlYXR1cmUuClNvbHV0aW9uOiAgIE1vdmUgYW4gI2lmZGVmLiAgKENocmlzdGlhbiBKLiBSb2JpbnNvbikKRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4zODYKUHJvYmxlbTogICAgR2V0IGR1cGxpY2F0ZSB0YWdzIHdoZW4gcnVubmluZyAiOmhlbHB0YWdzIi4KU29sdXRpb246ICAgRG8gdGhlIG90aGVyIGhhbHZlIG9mIG1vdmluZyBhIHNlY3Rpb24gdG8gYW5vdGhlciBoZWxwIGZpbGUuCkZpbGVzOgkgICAgcnVudGltZS90YWdzcmNoLnR4dAoKUGF0Y2ggNi4xLjM4NyAoZGVwZW5kcyBvbiA2LjEuMzczKQpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5nIGZvciBwb2ludGVyIGNhc3QuClNvbHV0aW9uOiAgIEFkZCAoY2hhcl91ICopLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjM4OCAoZGVwZW5kcyBvbiA2LjEuMzg0KQpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5nIGZvciBwb2ludGVyIGNhc3QuClNvbHV0aW9uOiAgIEFkZCAoY2hhciAqKS4gIE9ubHkgaW5jbHVkZSBoYXNfcGF0Y2goKSB3aGVuIHVzZWQuCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL3ZlcnNpb24uYwoKUGF0Y2ggNi4xLjM4OSAoZGVwZW5kcyBvbiA2LjEuMzY2KQpQcm9ibGVtOiAgICBCYWxsb29uIGV2YWx1YXRpb24gZG9lc24ndCB3b3JrIGZvciBHVEsuCgkgICAgaGFzKCJiYWxsb29uX2V2YWwiKSBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIEFkZCBiYWxsb29uIGV2YWx1YXRpb24gZm9yIEdUSy4gIEFsc28gaW1wcm92ZSBkaXNwbGF5aW5nIG9mIHNpZ25zLgoJICAgIChEYW5pZWwgRWxzdG5lcikKCSAgICBBbHNvIG1ha2UgIjpndWkiIHN0YXJ0IHRoZSBuZXRiZWFucyBjb25uZWN0aW9uIGFuZCBhdm9pZCB1c2luZwoJICAgIG5ldGJlYW5zIGZ1bmN0aW9ucyB3aGVuIHRoZSBjb25uZWN0aW9uIGlzIG5vdCBvcGVuLgpGaWxlczoJICAgIHNyYy9NYWtlZmlsZSwgc3JjL2ZlYXR1cmUuaCwgc3JjL2d1aS5jLCBzcmMvZ3VpLmgsCgkgICAgc3JjL2d1aV9iZXZhbC5jLCBzcmMvZ3VpX2JldmFsLmgsIHNyYy9ndWlfZ3RrLmMsCgkgICAgc3JjL2d1aV9ndGtfeDExLmMsIHNyYy9ldmFsLmMsIHNyYy9tZW1saW5lLmMsIHNyYy9tZW51LmMsCgkgICAgc3JjL25ldGJlYW5zLmMsIHNyYy9wcm90by9ndWlfYmV2YWwucHJvLCBzcmMvcHJvdG8vZ3VpX2d0ay5wcm8sCgkgICAgc3JjL3N0cnVjdHMuaCwgc3JjL3N5bnRheC5jLCBzcmMvdWkuYywgc3JjL3dvcmtzaG9wLmMKClBhdGNoIDYuMS4zOTAgKGRlcGVuZHMgb24gNi4xLjM4OSkKUHJvYmxlbTogICAgSXQncyBub3QgcG9zc2libGUgdG8gdGVsbCBWaW0gdG8gc2F2ZSBhbmQgZXhpdCB0aHJvdWdoIHRoZQoJICAgIE5ldGJlYW5zIGludGVyZmFjZS4gIFdvdWxkIHN0aWxsIHRyeSB0byBzZW5kIGJhbGxvb24gZXZhbCB0ZXh0CgkgICAgYWZ0ZXIgdGhlIGNvbm5lY3Rpb24gaXMgY2xvc2VkLgoJICAgIENhbid0IHVzZSBVbmljb2RlIGNoYXJhY3RlcnMgZm9yIHNpZ24gdGV4dC4KU29sdXRpb246ICAgQWRkIGZ1bmN0aW9ucyAic2F2ZUFuZEV4aXQiIGFuZCAiZ2V0TW9kaWZpZWQiLiAgQ2hlY2sgZm9yIGEKCSAgICB3b3JraW5nIGNvbm5lY3Rpb24gYmVmb3JlIHNlbmRpbmcgYSBiYWxsb29uVGV4dCBldmVudC4KCSAgICB2YXJpb3VzIG90aGVyIGNsZWFudXBzLgoJICAgIFN1cHBvcnQgYW55IGNoYXJhY3RlciBmb3Igc2lnbiB0ZXh0LiAoRGFuaWVsIEVsc3RuZXIpCkZpbGVzOgkgICAgcnVudGltZS9kb2MvbmV0YmVhbnMudHh0LCBydW50aW1lL2RvYy9zaWduLnR4dCwgc3JjL2V4X2NtZHMuYywKCSAgICBzcmMvbmV0YmVhbnMuYywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMzkxClByb2JsZW06ICAgIG1sX2dldCgpIGVycm9yIHdoZW4gdXNpbmcgdmlydHVhbGVkaXQuIChDaGFybGVzIENhbXBiZWxsKQpTb2x1dGlvbjogICBHZXQgYSBsaW5lIGZyb20gYSBzcGVjaWZpYyB3aW5kb3csIG5vdCB0aGUgY3VycmVudCBvbmUuCkZpbGVzOgkgICAgc3JjL2NoYXJzZXQuYwoKUGF0Y2ggNi4xLjM5MiAoZGVwZW5kcyBvbiA2LjEuMzgzKQpQcm9ibGVtOiAgICBIaWdobGlnaHRpbmcgaW4gdGhlICdzdGF0dXNsaW5lJyBpcyBpbiB0aGUgd3JvbmcgcG9zaXRpb24gd2hlbiBhbgoJICAgIGl0ZW0gaXMgdHJ1bmNhdGVkLiAoWmFrIEJlY2spClNvbHV0aW9uOiAgIENvcnJlY3QgdGhlIHN0YXJ0IG9mICdzdGF0dXNsaW5lJyBpdGVtcyBwcm9wZXJseSBmb3IgYSB0cnVuY2F0ZWQKCSAgICBpdGVtLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjM5MwpQcm9ibGVtOiAgICBXaGVuIGNvbXBpbGVkIHdpdGggUHl0aG9uIGFuZCB0aHJlYWRzLCBkZXRhY2hpbmcgdGhlIHRlcm1pbmFsIG1heQoJICAgIGNhdXNlIFZpbSB0byBsb29wIGZvcmV2ZXIuClNvbHV0aW9uOiAgIEFkZCAtcHRocmVhZCB0byAkQ0ZMQUdTIHdoZW4gdXNpbmcgUHl0aG9uIGFuZCBnY2MuIChEYW5pZWwKCSAgICBFbHN0bmVyKQpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMS4zOTQgKGRlcGVuZHMgb24gNi4xLjM5MCkKUHJvYmxlbTogICAgVGhlIG5ldGJlYW5zIGludGVyZmFjZSBkb2Vzbid0IHJlY29nbml6ZSBtdWx0aWJ5dGUgZ2x5cGggbmFtZXMuClNvbHV0aW9uOiAgIENoZWNrIHRoZSBudW1iZXIgb2YgY2VsbHMgcmF0aGVyIHRoYW4gYnl0ZXMgdG8gZGVjaWRlCgkgICAgd2hldGhlciBhIGdseXBoIG5hbWUgaXMgbm90IGEgZmlsZW5hbWUuIChEYW5pZWwgRWxzdG5lcikKRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4xLjM5NSAoZXh0cmEsIGRlcGVuZHMgb24gNi4xLjM2OSkKUHJvYmxlbTogICAgVk1TOiBPTERfVk1TIGlzIG5ldmVyIGRlZmluZWQuICBNaXNzaW5nIGZ1bmN0aW9uIHByb3RvdHlwZS4KU29sdXRpb246ICAgRGVmaW5lIE9MRF9WTVMgaW4gTWFrZV92bXMubW1zLiAgQWRkIHZtc19zeXNfc3RhdHVzKCkgdG8KCSAgICBvc192bXMucHJvLiAoWm9sdGFuIEFycGFkZmZ5KQpGaWxlczoJICAgIHNyYy9NYWtlX3Ztcy5tbXMsIHNyYy9wcm90by9vc192bXMucHJvCgpQYXRjaCA2LjEuMzk2IChkZXBlbmRzIG9uIDYuMS4zMzApClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmdzIGZvciB1c2luZyBlbnVtLgpTb2x1dGlvbjogICBBZGQgdHlwZWNhc3QgdG8gY2hhcl91LgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jLCBzcmMvZ3VpX3gxMS5jCgpQYXRjaCA2LjEuMzk3IChleHRyYSkKUHJvYmxlbTogICAgVGhlIGluc3RhbGwgcHJvZ3JhbSBtYXkgdXNlIGEgd3JvbmcgcGF0aCBmb3IgdGhlIGRpZmYgY29tbWFuZCBpZgoJICAgIHRoZXJlIGlzIGEgc3BhY2UgaW4gdGhlIGluc3RhbGwgZGlyZWN0b3J5IHBhdGguClNvbHV0aW9uOiAgIFVzZSBkb3VibGUgcXVvdGVzIGFyb3VuZCB0aGUgcGF0aCBpZiBuZWNlc3NhcnkuIChBbGVqYW5kcm8KCSAgICBMb3Blei1WYWxlbmNpYSkgIEFsc28gdXNlIGRvdWJsZSBxdW90ZXMgYXJvdW5kIHRoZSBmaWxlIG5hbWUKCSAgICBhcmd1bWVudHMuCkZpbGVzOgkgICAgc3JjL2Rvc2luc3QuYwoKUGF0Y2ggNi4xLjM5OApQcm9ibGVtOiAgICBTYXZpbmcgdGhlIHR5cGVhaGVhZCBmb3IgZGVidWcgbW9kZSBjYXVzZXMgdHJvdWJsZSBmb3IgYSB0ZXN0CgkgICAgc2NyaXB0LiAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgQWRkIHRoZSAiOmRlYnVnZ3JlZWR5IiBjb21tYW5kIHRvIGF2b2lkIHNhdmluZyB0aGUgdHlwZWFoZWFkLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3JlcGVhdC50eHQsIHNyYy9leF9jbWRzLmgsIHNyYy9leF9jbWRzMi5jLAoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvcHJvdG8vZXhfY21kczIucHJvCgpQYXRjaCA2LjEuMzk5ClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIHVudXNlZCB2YXJpYWJsZS4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSB2YXJpYWJsZSB0d29fb3JfbW9yZS4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjEuNDAwIChkZXBlbmRzIG9uIDYuMS4zODEpClByb2JsZW06ICAgIFdoZW4gYSBCdWZXcml0ZUNtZCB3aXBlcyBvdXQgdGhlIGJ1ZmZlciBpdCBtYXkgc3RpbGwgYmUgYWNjZXNzZWQuClNvbHV0aW9uOiAgIERvbid0IHRyeSBhY2Nlc3NpbmcgYSBidWZmZXIgdGhhdCBoYXMgYmVlbiB3aXBlZCBvdXQuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuNDAxIChleHRyYSkKUHJvYmxlbTogICAgQnVpbGRpbmcgdGhlIFdpbjE2IHZlcnNpb24gd2l0aCBCb3JsYW5kIDUuMDEgZG9lc24ndCB3b3JrLgoJICAgICJtYWtlIHRlc3QiIGRvZXNuJ3Qgd29yayB3aXRoIE1ha2VfZG9zLm1hay4gKFdhbHRlciBCcmlzY29lKQpTb2x1dGlvbjogICBWYXJpb3VzIGZpeGVzIHRvIHRoZSB3MTYgbWFrZWZpbGUuIChXYWx0ZXIgQnJpc2NvZSkKCSAgICBEb24ndCB1c2UgZGVsdHJlZS4gIFVzZSAibWtkaXIgXHRtcCIgaW5zdGVhZCBvZiAibWtkaXIgL3RtcCIuCkZpbGVzOgkgICAgc3JjL01ha2VfdzE2Lm1haywgc3JjL3Rlc3RkaXIvTWFrZV9kb3MubWFrCgpQYXRjaCA2LjEuNDAyClByb2JsZW06ICAgIFdoZW4gZXZhbHVhdGluZyBhIGZ1bmN0aW9uIG5hbWUgd2l0aCBjdXJseSBicmFjZXMsIGFuIGVycm9yCgkgICAgaXMgbm90IGhhbmRsZWQgY29uc2lzdGVudGx5LgpTb2x1dGlvbjogICBBY2NlcHQgdGhlIHJlc3VsdCBvZiBhbiBjdXJseSBicmFjZXMgZXhwcmVzc2lvbiB3aGVuIGFuCgkgICAgZXJyb3Igd2FzIGVuY291bnRlcmVkLiAgU2tpcCBldmFsdWF0aW5nIGFuIGV4cHJlc3Npb24gaW4gY3VybHkKCSAgICBicmFjZXMgd2hlbiBza2lwcGluZy4gIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS40MDMgKGV4dHJhKQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzIDE2IGJpdDogY29tcGlsZXIgd2FybmluZ3MuClNvbHV0aW9uOiAgIEFkZCB0eXBlY2FzdHMuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYywgc3JjL2d1aV93NDguYywgc3JjL29zX21zd2luLmMsIHNyYy9vc193aW4xNi5jLAoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4xLjQwNCAoZXh0cmEpClByb2JsZW06ICAgIFZhcmlvdXMgc21hbGwgcHJvYmxlbXMuClNvbHV0aW9uOiAgIEZpeCBjb21tZW50cy4gIFZhcmlvdXMgc21hbGwgYWRkaXRpb25zLCBjaGFuZ2VzIGluIGluZGVudCwgcmVtb3ZhbAoJICAgIG9mIHVudXNlZCBpdGVtcyBhbmQgZml4ZXMuCkZpbGVzOgkgICAgTWFrZWZpbGUsIFJFQURNRS50eHQsIHJ1bnRpbWUvbWVudS52aW0sIHJ1bnRpbWUvdmltcmNfZXhhbXBsZS52aW0sCgkgICAgc3JjL0lOU1RBTEwsIHNyYy9JTlNUQUxMb2xlLnR4dCwgc3JjL01ha2VfYmM1Lm1haywKCSAgICBzcmMvTWFrZV9jeWcubWFrLCBzcmMvTWFrZV9taW5nLm1haywgc3JjL01ha2VmaWxlLAoJICAgIHNyYy9jb25maWcuaC5pbiwgc3JjL2VkaXQuYywgc3JjL2V2YWwuYywgc3JjL2V4X2NtZHMyLmMsCgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvZmlsZWlvLmMsIHNyYy9nZXRjaGFyLmMsCgkgICAgc3JjL2d1aS5jLCBzcmMvZ3VpX2d0ay5jLCBzcmMvZ3VpX3Bob3Rvbi5jLCBzcmMvaWZfY3Njb3BlLmMsCgkgICAgc3JjL2lmX3B5dGhvbi5jLCBzcmMva2V5bWFwLmgsIHNyYy9tYXJrLmMsIHNyYy9tYnl0ZS5jLAoJICAgIHNyYy9tZXNzYWdlLmMsIHNyYy9taXNjMS5jLCBzcmMvbWlzYzIuYywgc3JjL25vcm1hbC5jLAoJICAgIHNyYy9vcHRpb24uYywgc3JjL29zX29zMl9jZmcuaCwgc3JjL29zX3dpbjMyLmMsCgkgICAgc3JjL3Byb3RvL2dldGNoYXIucHJvLCBzcmMvcHJvdG8vbWVzc2FnZS5wcm8sCgkgICAgc3JjL3Byb3RvL3JlZ2V4cC5wcm8sIHNyYy9zY3JlZW4uYywgc3JjL3N0cnVjdHMuaCwgc3JjL3N5bnRheC5jLAoJICAgIHNyYy90ZXJtLmMsIHNyYy90ZXN0ZGlyL3Rlc3QxNS5pbiwgc3JjL3Rlc3RkaXIvdGVzdDE1Lm9rLAoJICAgIHNyYy92aW0ucmMsIHNyYy94eGQvTWFrZV9jeWcubWFrLCBzcmMveHhkL01ha2VmaWxlCgpQYXRjaCA2LjEuNDA1ClByb2JsZW06ICAgIEEgZmV3IGZpbGVzIGFyZSBtaXNzaW5nIGZyb20gdGhlIHRvcGxldmVsIE1ha2VmaWxlLgpTb2x1dGlvbjogICBBZGQgdGhlIG1pc3NpbmcgZmlsZXMuCkZpbGVzOgkgICAgTWFrZWZpbGUKClBhdGNoIDYuMS40MDYgKGRlcGVuZHMgb24gNi4xLjM5MikKUHJvYmxlbTogICAgV2hlbiBhIHN0YXR1c2xpbmUgaXRlbSBkb2Vzbid0IGZpdCBhcmJpdHJhcnkgdGV4dCBhcHBlYXJzLgoJICAgIChDaHJpc3RpYW4gSi4gUm9iaW5zb24pClNvbHV0aW9uOiAgIFdoZW4gdGhlcmUgaXMganVzdCBlbm91Z2ggcm9vbSBidXQgbm90IGZvciB0aGUgIjwiIHRydW5jYXRlIHRoZQoJICAgIHN0YXR1c2xpbmUgaXRlbSBsaWtlIHRoZXJlIGlzIG5vIHJvb20uCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuNDA3ClByb2JsZW06ICAgICI6c2V0IHNjcm9sbGJpbmQgfCBoZWxwIiBzY3JvbGxiaW5kcyB0aGUgaGVscCB3aW5kb3cuIChBbmRyZXcKCSAgICBQaW1sb3R0KQpTb2x1dGlvbjogICBSZXNldCAnc2Nyb2xsYmluZCcgd2hlbiBvcGVuaW5nIGEgaGVscCB3aW5kb3cuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjQwOApQcm9ibGVtOiAgICBXaGVuICdyaWdodGxlZnQnIGlzIHNldCB1bnByaW50YWJsZSBjaGFyYWN0ZXIgMHgwYyBpcyBkaXNwbGF5ZWQgYXMKCSAgICAiPmMwPCIuClNvbHV0aW9uOiAgIFJldmVyc2UgdGhlIHRleHQgb2YgdGhlIGhleCBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuNDA5ClByb2JsZW06ICAgIEdlbmVyYXRpbmcgdGFncyBmb3IgdGhlIGhlbHAgZG9lc24ndCB3b3JrIGZvciBzb21lIGxvY2FsZXMuClNvbHV0aW9uOiAgIFNldCBMQU5HPUMgTENfQUxMPUMgaW4gdGhlIGVudmlyb25tZW50IGZvciAic29ydCIuIChEYW5pZWwKCSAgICBFbHN0bmVyKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL01ha2VmaWxlCgpQYXRjaCA2LjEuNDEwIChkZXBlbmRzIG9uIDYuMS4zOTApClByb2JsZW06ICAgIExpbmtpbmcgZXJyb3Igd2hlbiBjb21waWxpbmcgd2l0aCBOZXRiZWFucyBidXQgd2l0aG91dCBzaWduIGljb25zLgoJICAgIChNYWx0ZSBOZXVtYW5uKQpTb2x1dGlvbjogICBEb24ndCBkZWZpbmUgYnVmX3NpZ25jb3VudCgpIHdoZW4gc2lnbiBpY29ucyBhcmUgdW5hdmFpbGFibGUuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuNDExClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQsIGhpZ2hsaWdodGluZyBhIFZpc3VhbCBibG9jayBiZXlvbmQgdGhlCgkgICAgZW5kIG9mIGEgbGluZSBtYXkgYmUgd3JvbmcuClNvbHV0aW9uOiAgIENvcnJlY3QgdGhlIHZpcnR1YWwgY29sdW1uIHdoZW4gdGhlIGVuZCBvZiB0aGUgbGluZSBpcyBiZWZvcmUgdGhlCgkgICAgZGlzcGxheWVkIHBhcnQgb2YgdGhlIGxpbmUuIChNdXJhb2thIFRhcm8pCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuNDEyClByb2JsZW06ICAgIFdoZW4gc3dhcHBpbmcgdGVybWluYWwgc2NyZWVucyBhbmQgdXNpbmcgIjpndWkiIHRvIHN0YXJ0IHRoZSBHVUksCgkgICAgdGhlIHNoZWxsIHByb21wdCBtYXkgYmUgYWZ0ZXIgYSBoaXQtZW50ZXIgcHJvbXB0LgpTb2x1dGlvbjogICBPdXRwdXQgYSBuZXdsaW5lIGluIHRoZSB0ZXJtaW5hbCB3aGVuIHN0YXJ0aW5nIHRoZSBHVUkgYW5kIHRoZXJlCgkgICAgd2FzIGEgaGl0LWVudGVyIHByb21wdC4uCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjEuNDEzClByb2JsZW06ICAgIFdoZW4gJ2NsaXBib2FyZCcgY29udGFpbnMgInVubmFtZWQiLCAicCIgaW4gVmlzdWFsIG1vZGUgZG9lc24ndAoJICAgIHdvcmsgY29ycmVjdGx5LgpTb2x1dGlvbjogICBTYXZlIHRoZSByZWdpc3RlciBiZWZvcmUgb3ZlcndyaXRpbmcgaXQgYW5kIHB1dCB0aGUgcmVzdWx0aW5nIHRleHQKCSAgICBvbiB0aGUgY2xpcGJvYXJkIGFmdGVyd2FyZHMuICAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jCgpQYXRjaCA2LjEuNDE0IChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMzY5KQpQcm9ibGVtOiAgICBWTVM6IFZpbSBidXN5IHdhaXRzIHdoZW4gd2FpdGluZyBmb3IgaW5wdXQuClNvbHV0aW9uOiAgIERlbGF5IGZvciBhIHNob3J0IHdoaWxlIGJlZm9yZSBnZXR0aW5nIGFub3RoZXIgY2hhcmFjdGVyLiAgKFpvbHRhbgoJICAgIEFycGFkZmZ5KQpGaWxlczoJICAgIHNyYy9vc192bXMuYwoKUGF0Y2ggNi4xLjQxNQpQcm9ibGVtOiAgICBXaGVuIHRoZXJlIGlzIGEgdmVydGljYWwgc3BsaXQgYW5kIGEgcXVpY2tmaXggd2luZG93LCByZWR1Y2luZyB0aGUKCSAgICBzaXplIG9mIHRoZSBWaW0gd2luZG93IG1heSByZXN1bHQgaW4gYSB3cm9uZyB3aW5kb3cgbGF5b3V0IGFuZCBhCgkgICAgY3Jhc2guClNvbHV0aW9uOiAgIFdoZW4gcmVkdWNpbmcgdGhlIHdpbmRvdyBzaXplIGFuZCB0aGVyZSBpcyBub3QgZW5vdWdoIHNwYWNlIGZvcgoJICAgICd3aW5maXhoZWlnaHQnIHNldCB0aGUgZnJhbWUgaGVpZ2h0IHRvIHRoZSBsYXJnZXIgaGVpZ2h0LCBzbyB0aGF0CgkgICAgdGhlcmUgaXMgYSByZXRyeSB3aGlsZSBpZ25vcmluZyAnd2luZml4aGVpZ2h0Jy4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4xLjQxNiAoZGVwZW5kcyBvbiA2LjEuMzY2KQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHRoZSBOZXRiZWFucyBpbnRlcmZhY2UsIGEgbGluZSB3aXRoIGEgc2lnbiBjYW5ub3QgYmUKCSAgICBjaGFuZ2VkLgpTb2x1dGlvbjogICBSZXNwZWN0IHRoZSBHVUFSREVET0ZGU0VUIGZvciBzaWduIElEcyB3aGVuIGNoZWNraW5nIGZvciBhIGd1YXJkZWQKCSAgICBhcmVhLgpGaWxlczoJICAgIHNyYy9uZXRiZWFucy5jCgpQYXRjaCA2LjEuNDE3ClByb2JsZW06ICAgIFVucHJpbnRhYmxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBhcmUgbm90IGhhbmRsZWQgY29ycmVjdGx5LgoJICAgIE11bHRpLWJ5dGUgY2hhcmFjdGVycyBhYm92ZSAweGZmZmYgYXJlIGRpc3BsYXllZCBhcyBhbm90aGVyCgkgICAgY2hhcmFjdGVyLgpTb2x1dGlvbjogICBIYW5kbGUgdW5wcmludGFibGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLiAgRGlzcGxheSBtdWx0aS1ieXRlCgkgICAgY2hhcmFjdGVycyBhYm92ZSAweGZmZmYgd2l0aCBhIG1hcmtlci4gIFJlY29nbml6ZSBVVEYtMTYgd29yZHMgYW5kCgkgICAgQk9NIHdvcmRzIGFzIHVucHJpbnRhYmxlLiAgKERhbmllbCBFbHN0bmVyKQpGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMsIHNyYy9tYnl0ZS5jLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS40MTgKUHJvYmxlbTogICAgVGhlIHJlc3VsdCBvZiBzdHJmdGltZSgpIGlzIGluIHRoZSBjdXJyZW50IGxvY2Fscy4gIE5lZWQgdG8KCSAgICBjb252ZXJ0IGl0IHRvICdlbmNvZGluZycuClNvbHV0aW9uOiAgIE9idGFpbiB0aGUgY3VycmVudCBsb2NhbGUgYW5kIGNvbnZlcnQgdGhlIGFyZ3VtZW50IGZvciBzdHJmdGltZSgpCgkgICAgdG8gaXQgYW5kIHRoZSByZXN1bHQgYmFjayB0byAnZW5jb2RpbmcnLiAgKERhbmllbCBFbHN0bmVyKQpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9leF9jbWRzLmMsIHNyYy9leF9jbWRzMi5jLCBzcmMvbWJ5dGUuYywKCSAgICBzcmMvcHJvdG8vbWJ5dGUucHJvLCBzcmMvb3B0aW9uLmMsIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjEuNDE5ClByb2JsZW06ICAgIFZpbSBkb2Vzbid0IGNvbXBpbGUgb24gQUlYIDUuMS4KU29sdXRpb246ICAgRG9uJ3QgZGVmaW5lIF9OT19QUk9UTyBvbiB0aGlzIHN5c3RlbS4gKFVyaWJhcnJpKQpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4xLjQyMCAoZXh0cmEpClByb2JsZW06ICAgIGNvbnZlcnRfaW5wdXQoKSBoYXMgYW4gdW5uZWNlc3NhcnkgU1RSTEVOKCkuCgkgICAgQ29udmVyc2lvbiBmcm9tIFVDUy0yIHRvIGEgY29kZXBhZ2UgdXNlcyB3b3JkIGNvdW50IGluc3RlYWQgb2YKCSAgICBieXRlIGNvdW50LgpTb2x1dGlvbjogICBSZW1vdmUgdGhlIFNUUkxFTigpIGNhbGwuIChEYW5pZWwgRWxzdG5lcikKCSAgICBBbHdheXMgdXNlIGJ5dGUgY291bnQgZm9yIHN0cmluZ19jb252ZXJ0KCkuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYywgc3JjL21ieXRlLmMKClBhdGNoIDYuMS40MjEgKGV4dHJhLCBkZXBlbmRzIG9uIDYuMS4zNTQpClByb2JsZW06ICAgIE1TLVdpbmRvd3MgOXg6IFdoZW4gcHV0dGluZyB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQgaXQgY2FuIGJlIGluCgkgICAgdGhlIHdyb25nIGVuY29kaW5nLgpTb2x1dGlvbjogICBDb252ZXJ0IHRleHQgdG8gdGhlIGFjdGl2ZSBjb2RlcGFnZSBmb3IgQ0ZfVEVYVC4gKEdsZW5uIE1heW5hcmQpCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMS40MjIKUHJvYmxlbTogICAgRXJyb3IgaW4gLnZpbXJjIGRvZXNuJ3QgY2F1c2UgaGl0LWVudGVyIHByb21wdCB3aGVuIHN3YXBwaW5nCgkgICAgc2NyZWVucy4gKE5laWwgQmlyZCkKU29sdXRpb246ICAgU2V0IG1zZ19kaWRhbnkgYWxzbyB3aGVuIHNlbmRpbmcgYSBtZXNzYWdlIHRvIHRoZSB0ZXJtaW5hbAoJICAgIGRpcmVjdGx5LgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMS40MjMKUHJvYmxlbTogICAgQ2FuJ3QgZmluZCBhcmJpdHJhcnkgdGV4dCBpbiBoZWxwIGZpbGVzLgpTb2x1dGlvbjogICBBZGRlZCB0aGUgIjpoZWxwZ3JlcCIgY29tbWFuZC4KRmlsZXM6CSAgICBydW50aW1lL2RvYy92YXJpb3VzLnR4dCwgc3JjL2V4X2NtZHMuaCwgc3JjL2V4X2RvY21kLmMsCgkgICAgc3JjL3Byb3RvL3F1aWNrZml4LnBybywgc3JjL3F1aWNrZml4LmMKClBhdGNoIDYuMS40MjQgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogR3ZpbSBjb21waWxlZCB3aXRoIFZDKysgNy4wIHJ1biBvbiBXaW5kb3dzIDk1IGRvZXMgbm90IHNob3cKCSAgICBtZW51IGl0ZW1zLgpTb2x1dGlvbjogICBEZWZpbmUgJFdJTlZFUiB0byBhdm9pZCBhbiBleHRyYSBpdGVtIGlzIGFkZGVkIHRvIE1FTlVJVEVNSU5GTy4KCSAgICAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9NYWtlX212Yy5tYWsKClBhdGNoIDYuMS40MjUKUHJvYmxlbTogICAgIjpoZWxwdGFncyAkVklNUlVOVElNRS9kb2MiIGRvZXMgbm90IGFkZCB0aGUgImhlbHAtdGFncyIgdGFnLgpTb2x1dGlvbjogICBEbyBhZGQgdGhlICJoZWxwLXRhZ3MiIHRhZyBmb3IgdGhhdCBzcGVjaWZpYyBkaXJlY3RvcnkuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjQyNgpQcm9ibGVtOiAgICAiLS1yZW1vdGUtd2FpdCArY21kIGZpbGUiIHdhaXRzIGZvcmV2ZXIuIChWYWxlcnkgS29uZGFrb2ZmKQpTb2x1dGlvbjogICBEb24ndCB3YWl0IGZvciB0aGUgIitjbWQiIGFyZ3VtZW50IHRvIGhhdmUgYmVlbiBlZGl0ZWQuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4xLjQyNwpQcm9ibGVtOiAgICBTZXZlcmFsIGVycm9yIG1lc3NhZ2VzIGZvciByZWdleHAgcGF0dGVybnMgYXJlIG5vdCB0cmFuc2xhdGVkLgpTb2x1dGlvbjogICBVc2UgXygpIHByb3Blcmx5LiAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4xLjQyOApQcm9ibGVtOiAgICBGcmVlQlNEOiB3YWl0KCkgbWF5IGhhbmcgd2hlbiBjb21waWxlZCB3aXRoIFB5dGhvbiBzdXBwb3J0IGFuZAoJICAgIGRvaW5nIGEgc3lzdGVtKCkgY2FsbCBpbiBhIHN0YXJ0dXAgc2NyaXB0LgpTb2x1dGlvbjogICBVc2Ugd2FpdHBpZCgpIGluc3RlYWQgb2Ygd2FpdCgpIGFuZCBwb2xsIGV2ZXJ5IDEwIG1zZWMsIGp1c3QgbGlrZQoJICAgIHdoYXQgaXMgZG9uZSBpbiB0aGUgR1VJLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMS40MjkgKGRlcGVuZHMgb24gNi4xLjM5MCkKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiB1c2luZyBzaG93bWFya3MudmltIHBsdWdpbi4gKENoYXJsZXMgQ2FtcGJlbGwpClNvbHV0aW9uOiAgIENoZWNrIGZvciBzaWduX2dldF90ZXh0KCkgcmV0dXJuaW5nIGEgTlVMTCBwb2ludGVyLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjQzMApQcm9ibGVtOiAgICBJbiBMaXNwIGNvZGUgYmFja3NsYXNoZWQgcGFyZW5zIHNob3VsZCBiZSBpZ25vcmVkIGZvciAiJSIuIChEb3JhaSkKU29sdXRpb246ICAgU2tpcCBvdmVyIGJhY2tzbGFzaGVkIHBhcmVucy4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMS40MzEKUHJvYmxlbTogICAgRGVidWcgY29tbWFuZHMgZW5kIHVwIGluIHJlZGlyZWN0ZWQgdGV4dC4KU29sdXRpb246ICAgRGlzYWJsZSByZWRpcmVjdGlvbiB3aGlsZSBoYW5kbGluZyBkZWJ1ZyBjb21tYW5kcy4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjQzMiAoZGVwZW5kcyBvbiA2LjEuMzc1KQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzOiAiOm1ha2UgJTpwIiBpbnNlcnRzIGV4dHJhIGJhY2tzbGFzaGVzLiAoRGF2aWQgUmVubmFsbHMpClNvbHV0aW9uOiAgIERvbid0IGFkZCBiYWNrc2xhc2hlcywgaGFuZGxlIGl0IGxpa2UgIjohY21kIi4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjQzMwpQcm9ibGVtOiAgICAiOnBvcHVwIiBvbmx5IHdvcmtzIGZvciBXaW4zMi4KU29sdXRpb246ICAgQWRkICI6cG9wdXAiIHN1cHBvcnQgZm9yIEdUSy4gIChEYW5pZWwgRWxzdG5lcikKRmlsZXM6CSAgICBydW50aW1lL2RvYy9ndWkudHh0LCBzcmMvZXhfZG9jbWQuYywgc3JjL2d1aV9ndGsuYywgc3JjL21lbnUuYywKCSAgICBzcmMvcHJvdG8vZ3VpX2d0ay5wcm8KClBhdGNoIDYuMS40MzQgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiB0aGVyZSBhcmUgbW9yZSB0aGFuIDMyNzY3IGxpbmVzLCB0aGUgc2Nyb2xsYmFyIGhhcyBhCgkgICAgcm91bmRvZmYgZXJyb3IuClNvbHV0aW9uOiAgIE1ha2UgYSBjbGljayBvbiBhbiBhcnJvdyBtb3ZlIG9uZSBsaW5lLiAgQWxzbyBtb3ZlIHRoZSBjb2RlIHRvCgkgICAgZ3VpX3c0OC5jLCB0aGVyZSBpcyBoYXJkbHkgYW55IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgMTYgYml0IGFuZAoJICAgIDMyIGJpdCB2ZXJzaW9ucy4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9ndWlfdzE2LmMsIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMS40MzUKUHJvYmxlbTogICAgIjp3aW5zaXplIHgiIHJlc2l6ZXMgdGhlIFZpbSB3aW5kb3cgdG8gdGhlIG1pbmltYWwgc2l6ZS4gKEFuZHJldwoJICAgIFBpbWxvdHQpClNvbHV0aW9uOiAgIEdpdmUgYW4gZXJyb3IgbWVzc2FnZSBmb3Igd3JvbmcgYXJndW1lbnRzIG9mICI6d2luc2l6ZSIgYW5kCgkgICAgIjp3aW5wb3MiLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuNDM2ClByb2JsZW06ICAgIFdoZW4gYSBsb25nIFVURi04IGZpbGUgY29udGFpbnMgYW4gaWxsZWdhbCBieXRlIGl0J3MgaGFyZCB0byBmaW5kCgkgICAgb3V0IHdoZXJlIGl0IGlzLiAoUm9uIEFhcm9uKQpTb2x1dGlvbjogICBBZGQgdGhlIGxpbmUgbnVtYmVyIHRvIHRoZSBlcnJvciBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjQzNyAoZXh0cmEsIGRlcGVuZHMgb24gNi4xLjQyMSkKUHJvYmxlbTogICAgVXNpbmcgbXVsdGktYnl0ZSBmdW5jdGlvbnMgd2hlbiB0aGV5IGFyZSBub3QgYXZhaWxhYmxlLgpTb2x1dGlvbjogICBQdXQgdGhlIGNsaXBib2FyZCBjb252ZXJzaW9uIGluc2lkZSBhbiAjaWZkZWYuIChWaW5jZSBOZWdyaSkKCSAgICBBbHNvIGZpeCBhIHBvaW50ZXIgdHlwZSBtaXN0YWtlLiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMS40MzgKUHJvYmxlbTogICAgV2hlbiBQZXJsIGhhcyB0aHJlYWQgc3VwcG9ydCBWaW0gY2Fubm90IHVzZSB0aGUgUGVybCBpbnRlcmZhY2UuClNvbHV0aW9uOiAgIEFkZCBhIGNvbmZpZ3VyZSBjaGVjayBhbmQgZGlzYWJsZSBQZXJsIHdoZW4gaXQgd2lsbCBub3Qgd29yay4KCSAgICAoQXJvbiBHcmlmZmlzKQpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4xLjQzOQpQcm9ibGVtOiAgICBOZXRiZWFuczogQSAiY3JlYXRlIiBmdW5jdGlvbiBkb2Vzbid0IGFjdHVhbGx5IGNyZWF0ZSBhIGJ1ZmZlciwKCSAgICBmb2xsb3dpbmcgZnVuY3Rpb25zIG1heSBmYWlsLgpTb2x1dGlvbjogICBDcmVhdGUgYSBWaW0gYnVmZmVyIHdpdGhvdXQgYSBuYW1lIHdoZW4gImNyZWF0ZSIgaXMgY2FsbGVkLgoJICAgIChHb3Jkb24gUHJpZXVyKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL25ldGJlYW5zLnR4dCwgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMS40NDAKUHJvYmxlbTogICAgVGhlICJAKiIgY29tbWFuZCBkb2Vzbid0IG9idGFpbiB0aGUgYWN0dWFsIGNvbnRlbnRzIG9mIHRoZQoJICAgIGNsaXBib2FyZC4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBPYnRhaW4gdGhlIGNsaXBib2FyZCB0ZXh0IGJlZm9yZSBleGVjdXRpbmcgdGhlIGNvbW1hbmQuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjEuNDQxClByb2JsZW06ICAgICJ6aiIgYW5kICJ6ayIgY2Fubm90IGJlIHVzZWQgYXMgYSBtb3Rpb24gY29tbWFuZCBhZnRlciBhbgoJICAgIG9wZXJhdG9yLiAoUmFsZiBIZXR6ZWwpClNvbHV0aW9uOiAgIEFjY2VwdCB0aGVzZSBjb21tYW5kcyBhcyBtb3Rpb24gY29tbWFuZHMuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuNDQyClByb2JsZW06ICAgIFVuaWNvZGUgMy4yIGRlZmluZXMgbW9yZSBzcGFjZSBhbmQgcHVuY3R1YXRpb24gY2hhcmFjdGVycy4KU29sdXRpb246ICAgQWRkIHRoZSBuZXcgY2hhcmFjdGVycyB0byB0aGUgVW5pY29kZSB0YWJsZXMuIChSYXBoYWVsIEZpbmtlbCkKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4xLjQ0MyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgZ3ZpbWV4dC5kbGwgYnVpbGQgd2l0aCBCb3JsYW5kIDUuNSByZXF1aXJlcyBhbm90aGVyCgkgICAgRExMLgpTb2x1dGlvbjogICBCdWlsZCBhIHN0YXRpY2FsbHkgbGlua2VkIHZlcnNpb24gYnkgZGVmYXVsdC4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBHdmltRXh0L01ha2VfYmM1Lm1hawoKUGF0Y2ggNi4xLjQ0NCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBFbmFibGluZyBhIGJ1aWxkIHdpdGggZ2V0dGV4dCBzdXBwb3J0IGlzIG5vdCBjb25zaXN0ZW50LgpTb2x1dGlvbjogICBVc2UgIkdFVFRFWFQiIGZvciBCb3JsYW5kIGFuZCBtc3ZjIG1ha2VmaWxlcy4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBzcmMvTWFrZV9iYzUubWFrLCBzcmMvTWFrZV9tdmMubWFrCgpQYXRjaCA2LjEuNDQ1IChleHRyYSkKUHJvYmxlbTogICAgREpHUFA6IGdldCB3YXJuaW5nIGZvciBhcmd1bWVudCBvZiBwdXRlbnYoKQpTb2x1dGlvbjogICBEZWZpbmUgSEFWRV9QVVRFTlYgdG8gdXNlIERKR1BQJ3MgcHV0ZW52KCkuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvb3NfbXNkb3MuaAoKUGF0Y2ggNi4xLjQ0NiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgTWluZ1cgbWFrZWZpbGUgdXNlcyBhIGRpZmZlcmVudCBzdHlsZSBvZiBhcmd1bWVudHMgdGhhbgoJICAgIG90aGVyIG1ha2VmaWxlcy4KCSAgICBEeW5hbWljIElNRSBpcyBub3Qgc3VwcG9ydGVkIGZvciBDeWd3aW4uClNvbHV0aW9uOiAgIFVzZSAibm8iIGFuZCAieWVzIiBzdHlsZSBhcmd1bWVudHMuICBSZW1vdmUgdGhlIHVzZSBvZiB0aGUKCSAgICBkeW4tbWluZy5oIGluY2x1ZGUgZmlsZS4gKERhbiBTaGFycCkKCSAgICBEbyBub3QgaW5jbHVkZSB0aGUgaW1lLmggZmlsZSBhbmQgYWRqdXN0IHRoZSBtYWtlZmlsZS4gKEFsZWphbmRybwoJICAgIExvcGV6LVZhbGVuY2lhKQpGaWxlczoJICAgIHNyYy9NYWtlX2N5Zy5tYWssIHNyYy9NYWtlX21pbmcubWFrLCBzcmMvZ3VpX3czMi5jLAoJICAgIHNyYy9pZl9wZXJsLnhzLCBzcmMvaWZfcHl0aG9uLmMsIHNyYy9pZl9ydWJ5LmMsIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjEuNDQ3ClByb2JsZW06ICAgICJtYWtlIGluc3RhbGwiIHVzZXMgIm1ha2UiIGRpcmVjdGx5IGZvciBnZW5lcmF0aW5nIGhlbHAgdGFncy4KU29sdXRpb246ICAgVXNlICQoTUFLRSkgaW5zdGVhZCBvZiAibWFrZSIuIChUaW0gTW9vbmV5KQpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4xLjQ0OApQcm9ibGVtOiAgICAndGl0bGVzdHJpbmcnIGhhcyBhIGRlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiA1MCBjaGFycyBwZXIgaXRlbS4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBkZWZhdWx0IG1heGltdW0gKGFsc28gZm9yICdzdGF0dXNsaW5lJykuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuNDQ5ClByb2JsZW06ICAgIFdoZW4gIjEiIGFuZCAiYSIgYXJlIGluICdmb3JtYXRvcHRpb25zJywgYXV0by1mb3JtYXR0aW5nIGFsd2F5cwoJICAgIG1vdmVzIGEgbmV3bHkgYWRkZWQgY2hhcmFjdGVyIHRvIHRoZSBuZXh0IGxpbmUuIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBEb24ndCBtb3ZlIGEgc2luZ2xlIGNoYXJhY3RlciB0byB0aGUgbmV4dCBsaW5lIHdoZW4gaXQgd2FzIGp1c3QKCSAgICB0eXBlZC4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjEuNDUwClByb2JsZW06ICAgIFRlcm1jYXAgZW50cnkgImtCIiBmb3IgYmFjay10YWIgaXMgbm90IHJlY29nbml6ZWQuClNvbHV0aW9uOiAgIFVzZSBiYWNrLXRhYiBhcyB0aGUgc2hpZnQtdGFiIGNvZGUuCkZpbGVzOgkgICAgc3JjL2tleW1hcC5oLCBzcmMvbWlzYzIuYywgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4xLjQ1MQpQcm9ibGVtOiAgICBHVUk6IFdoZW4gdGV4dCBpbiB0aGUgZmluZCBkaWFsb2cgY29udGFpbnMgYSBzbGFzaCwgYSBiYWNrc2xhc2ggaXMKCSAgICBpbnNlcnRlZCB0aGUgbmV4dCB0aW1lIGl0IGlzIG9wZW5lZC4gKE1lenopClNvbHV0aW9uOiAgIFJlbW92ZSBlc2NhcGVkIGJhY2tzbGFzaGVzIGFuZCBxdWVzdGlvbiBtYXJrcy4gKERhbmllbCBFbHN0bmVyKQpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4xLjQ1MiAoZXh0cmEsIGFmdGVyIDYuMS40NDYpClByb2JsZW06ICAgIFdpbjMyOiBJTUUgc3VwcG9ydCBkb2Vzbid0IHdvcmsgZm9yIE1TVkMuClNvbHV0aW9uOiAgIFVzZSBfTVNDX1ZFUiBpbnN0ZWFkIG9mIF9fTVNWQy4gKEFsZWphbmRybyBMb3Blei1WYWxlbmNpYSkKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuNDUzIChhZnRlciA2LjEuNDI5KQpQcm9ibGVtOiAgICBXaGVuIGNvbXBpbGVkIHdpdGhvdXQgc2lnbiBpY29ucyBidXQgd2l0aCBzaWduIHN1cHBvcnQsIGFkZGluZyBhCgkgICAgc2lnbiBtYXkgY2F1c2UgYSBjcmFzaC4KU29sdXRpb246ICAgQ2hlY2sgZm9yIHRoZSB0ZXh0IHNpZ24gdG8gZXhpc3QgYmVmb3JlIHVzaW5nIGl0LiAoS2FtaWwKCSAgICBCdXJ6eW5za2kpCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuNDU0IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IHBhc3RpbmcgUnVzc2lhbiB0ZXh0IGluIFZpbSB3aXRoICdlbmMnIHNldCB0byBjcDEyNTEKCSAgICByZXN1bHRzIGluIHV0Zi04IGJ5dGVzLiAgKFBlcmVseXVic2tpeSkKCSAgICBDb252ZXJzaW9uIGZyb20gREJDUyB0byBVQ1MyIGRvZXMgbm90IHdvcmsgd2hlbiAnZW5jb2RpbmcnIGlzIG5vdAoJICAgIHRoZSBhY3RpdmUgY29kZXBhZ2UuClNvbHV0aW9uOiAgIEludHJvZHVjZSBlbmNfY29kZXBhZ2UgYW5kIHVzZSBpdCBmb3IgY29udmVyc2lvbiB0byAnZW5jb2RpbmcnCgkgICAgKEdsZW5uIE1heW5hcmQpCgkgICAgVXNlIE11bHRpQnl0ZVRvV2lkZUNoYXIoKSBhbmQgV2lkZUNoYXJUb011bHRpQnl0ZSgpIGluc3RlYWQgb2YKCSAgICBpY29udigpLiAgU2hvdWxkIGRvIG1vc3QgbmVlZGVkIGNvbnZlcnNpb25zIHdpdGhvdXQgaWNvbnYuZGxsLgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9ndWlfdzMyLmMsIHNyYy9tYnl0ZS5jLCBzcmMvb3NfbXN3aW4uYywKCSAgICBzcmMvcHJvdG8vbWJ5dGUucHJvLCBzcmMvcHJvdG8vb3NfbXN3aW4ucHJvLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjEuNDU1ClByb2JsZW06ICAgIFNvbWUgVW5pY29kZSBjaGFyYWN0ZXJzIGNhbiBiZSBvbmUgb3IgdHdvIGNoYXJhY3RlciBjZWxscyB3aWRlLgpTb2x1dGlvbjogICBBZGQgdGhlICdhbWJpd2lkdGgnIG9wdGlvbiB0byB0ZWxsIFZpbSBob3cgdG8gZGlzcGxheSB0aGVzZQoJICAgIGNoYXJhY3RlcnMuIChKdW5nc2hpayBTaGluKQoJICAgIEFsc28gcmVzZXQgdGhlIHNjcmlwdCBJRCB3aGVuIHNldHRpbmcgYW4gb3B0aW9uIHRvIGl0cyBkZWZhdWx0CgkgICAgdmFsdWUsIHNvIHRoYXQgIjp2ZXJib3NlIHNldCIgd29uJ3QgZ2l2ZSB3cm9uZyBpbmZvLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvbWJ5dGUuYywgc3JjL29wdGlvbi5jLCBzcmMvb3B0aW9uLmgKClBhdGNoIDYuMS40NTYgKGV4dHJhLCBhZnRlciA2LjEuNDU0KQpQcm9ibGVtOiAgICBXaW4zMjogSU1FIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgSW1tR2V0Q29tcG9zaXRpb25TdHJpbmdXKCkgcmV0dXJucyB0aGUgc2l6ZSBpbiBieXRlcywgbm90IHdvcmRzLgoJICAgIChZYXN1aGlybyBNYXRzdW1vdG8pICBBbHNvIGZpeCB0eXBlY2FzdCBwcm9ibGVtLgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMsIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjEuNDU3ClByb2JsZW06ICAgIEFuIGVtcHR5IHJlZ2lzdGVyIGluIHZpbWluZm8gY2F1c2VzIGNvbnZlcnNpb24gdG8gZmFpbC4KU29sdXRpb246ICAgRG9uJ3QgY29udmVydCBhbiBlbXB0eSBzdHJpbmcuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYywgc3JjL21ieXRlLmMKClBhdGNoIDYuMS40NTgKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgcG9pbnRlci4KU29sdXRpb246ICAgQWRkIGEgdHlwZWNhc3QuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjQ1OSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBsaWJjYWxsKCkgbWF5IHJldHVybiBhbiBpbnZhbGlkIHBvaW50ZXIgYW5kIGNhdXNlIFZpbSB0bwoJICAgIGNyYXNoLgpTb2x1dGlvbjogICBBZGQgYSBzdHJpY3QgY2hlY2sgZm9yIHRoZSByZXR1cm5lZCBwb2ludGVyLiAoQnJ1Y2UgTWVsbG93cykKRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4xLjQ2MApQcm9ibGVtOiAgICBHVEs6IGFmdGVyIHNjcm9sbGluZyB0aGUgdGV4dCBvbmUgbGluZSB3aXRoIGEga2V5LCBjbGlja2luZyB0aGUKCSAgICBhcnJvdyBvZiB0aGUgc2Nyb2xsYmFyIGRvZXMgbm90IGFsd2F5cyB3b3JrLiAoTmFtIFN1bmdIeXVuKQpTb2x1dGlvbjogICBBbHdheXMgdXBkYXRlIHRoZSBzY3JvbGxiYXIgdGh1bWIgd2hlbiB0aGUgdmFsdWUgY2hhbmdlZCwgZXZlbgoJICAgIHdoZW4gaXQgd291bGQgbm90IG1vdmUsIGxpa2UgZm9yIFJJU0NPUy4gIChEYW5pZWwgRWxzdG5lcikKRmlsZXM6CSAgICBzcmMvZ3VpLmMsIHNyYy9ndWkuaAoKUGF0Y2ggNi4xLjQ2MQpQcm9ibGVtOiAgICBXaGVuIGEga2V5bWFwIGlzIGFjdGl2ZSwgdHlwaW5nIGEgY2hhcmFjdGVyIGluIFNlbGVjdCBtb2RlIGRvZXMKCSAgICBub3QgdXNlIGl0LiAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBBcHBseSBJbnNlcnQgbW9kZSBtYXBwaW5nIHRvIHRoZSBjaGFyYWN0ZXIgdHlwZWQgaW4gU2VsZWN0IG1vZGUuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuNDYyClByb2JsZW06ICAgIFdoZW4gYXV0b2NvbW1hbmRzIHdpcGUgb3V0IGEgYnVmZmVyLCBhIGNyYXNoIG1heSBoYXBwZW4uIChIYXJpCgkgICAgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBEb24ndCBkZWNyZW1lbnQgdGhlIHdpbmRvdyBjb3VudCBvZiBhIGJ1ZmZlciBiZWZvcmUgY2FsbGluZyB0aGUKCSAgICBhdXRvY29tbWFuZHMgZm9yIGl0LiAgV2hlbiByZS11c2luZyB0aGUgY3VycmVudCBidWZmZXIsIHdhdGNoIG91dAoJICAgIGZvciBhdXRvY29tbWFuZHMgY2hhbmdpbmcgdGhlIGN1cnJlbnQgYnVmZmVyLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2V4X2NtZHMuYywgc3JjL3Byb3RvL2J1ZmZlci5wcm8KClBhdGNoIDYuMS40NjMKUHJvYmxlbTogICAgV2hlbiB3cml0aW5nIGEgY29tcHJlc3NlZCBmaWxlLCB0aGUgZmlsZSBuYW1lIHRoYXQgZ3ppcCBzdG9yZXMgaW4KCSAgICB0aGUgZmlsZSBpcyB0aGUgd2VpcmQgdGVtcG9yYXJ5IGZpbGUgbmFtZS4gKERhdmlkIFJlbm5hbGxzKQpTb2x1dGlvbjogICBVc2UgdGhlIHJlYWwgZmlsZSBuYW1lIHdoZW4gcG9zc2libGUuCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZ3ppcC52aW0KClBhdGNoIDYuMS40NjQKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiB1c2luZyBDKysgc3ludGF4IGhpZ2hsaWdodGluZy4gKEdlcmhhcmQgSG9jaGhvbHplcikKU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgbmVnYXRpdmUgaW5kZXguCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjEuNDY1IChhZnRlciA2LjEuNDU0KQpQcm9ibGVtOiAgICBDb21waWxlIGVycm9yIHdoZW4gdXNpbmcgY3lnd2luLgpTb2x1dGlvbjogICBDaGFuZ2UgI2lmZGVmIFdJTjMyIHRvICNpZmRlZiBXSU4zMjY0LiAoQWxlamFuZHJvIExvcGV6LVZhbGVuY2lhKQoJICAgIFVuZGVmaW5lIFdJTjMyIGFmdGVyIGluY2x1ZGluZyB3aW5kb3dzLmgKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4xLjQ2NgpQcm9ibGVtOiAgICBUaGUgIi1mIiBhcmd1bWVudCBpcyBhIGJpdCBvYnNjdXJlLgpTb2x1dGlvbjogICBBZGQgdGhlICItLW5vZm9yayIgYXJndW1lbnQuICBJbXByb3ZlIHRoZSBoZWxwIHRleHQgYSBiaXQuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvc3RhcnRpbmcudHh0LCBzcmMvbWFpbi5jCgpQYXRjaCA2LjEuNDY3ClByb2JsZW06ICAgIFNldHRpbmcgdGhlIHdpbmRvdyB0aXRsZSBkb2Vzbid0IHdvcmsgZm9yIENoaW5lc2UuClNvbHV0aW9uOiAgIFVzZSBhbiBYMTEgZnVuY3Rpb24gdG8gY29udmVydCB0ZXh0IHRvIGEgdGV4dCBwcm9wZXJ0eS4gKEtlbnRhcm8KCSAgICBOYWthemF3YSkKRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuNDY4ClByb2JsZW06ICAgICI6bWtzZXNzaW9uIiBhbHNvIHN0b3JlcyBmb2xkcyBmb3IgYnVmZmVycyB3aGljaCB3aWxsIG5vdCBiZQoJICAgIHJlc3RvcmVkLgpTb2x1dGlvbjogICBPbmx5IHN0b3JlIGZvbGRzIGZvciBhIGJ1ZmZlciB3aXRoICdidWZ0eXBlJyBlbXB0eSBhbmQgaGVscCBmaWxlcy4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjQ2OQpQcm9ibGVtOiAgICAnbGlzdGNoYXJzJyBjYW5ub3QgY29udGFpbiBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIEhhbmRsZSBtdWx0aS1ieXRlIFVURi04IGxpc3QgY2hhcmFjdGVycy4gKE1hdHRoZXcgU2Ftc29ub2ZmKQpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMsIHNyYy9vcHRpb24uYywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuNDcwIChsYW5nKQpQcm9ibGVtOiAgICBQb2xpc2ggbWVzc2FnZXMgZG9uJ3Qgc2hvdyB1cCBjb3JyZWN0bHkgb24gTVMtV2luZG93cy4KU29sdXRpb246ICAgQ29udmVydCBtZXNzYWdlcyB0byBjcDEyNTAuIChNaWtvbGFqIE1hY2hvd3NraSkKCSAgICBBbHNvIGFkZCBFbmdsaXNoIG1lc3NhZ2UgdHJhbnNsYXRpb25zLCBiZWNhdXNlIGl0IGdvdCBpbiB0aGUgd2F5CgkgICAgb2YgdGhlIHBhdGNoLgpGaWxlczoJICAgIE1ha2VmaWxlLCBzcmMvcG8vTWFrZWZpbGUsIHNyYy9wby9lbl9nYi5wbywgc3JjL3BvL3BsLnBvCgpQYXRjaCA2LjEuNDcxClByb2JsZW06ICAgICI6anVtcHMiIG91dHB1dCBjb250aW51ZXMgYWZ0ZXIgcHJlc3NpbmcgInEiIGF0IHRoZSBtb3JlLXByb21wdC4KCSAgICAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIENoZWNrIGZvciAiZ290X2ludCIgYmVpbmcgc2V0LgpGaWxlczoJICAgIHNyYy9tYXJrLmMKClBhdGNoIDYuMS40NzIKUHJvYmxlbTogICAgV2hlbiB0aGVyZSBpcyBhbiBhdXRoZW50aWNhdGlvbiBlcnJvciB3aGVuIGNvbm5lY3RpbmcgdG8gdGhlIFgKCSAgICBzZXJ2ZXIgVmltIGV4aXRzLgpTb2x1dGlvbjogICBVc2UgWFNldElPRXJyb3JIYW5kbGVyKCkgdG8gY2F0Y2ggdGhlIGVycm9yIGFuZCBsb25nam1wKCkgdG8gYXZvaWQKCSAgICB0aGUgZXhpdC4gIEFsc28gZG8gdGhpcyBpbiB0aGUgbWFpbiBsb29wLCBzbyB0aGF0IHdoZW4gdGhlIFgKCSAgICBzZXJ2ZXIgZXhpdHMgYSBWaW0gcnVubmluZyBpbiBhIGNvbnNvbGUgaXNuJ3Qga2lsbGVkLgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9tYWluLmMsIHNyYy9vc191bml4LmMKClBhdGNoIDYuMS40NzMKUHJvYmxlbTogICAgUmVmZXJyaW5nIHRvICRjdXJ3aW4gb3IgJGN1cmJ1ZiBpbiBQZXJsIDUuNiBjYXVzZXMgYSBjcmFzaC4KU29sdXRpb246ICAgQWRkICJwVEhYXyIgdG8gY3VyX3ZhbCgpLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9pZl9wZXJsLnhzCgpQYXRjaCA2LjEuNDc0ClByb2JsZW06ICAgIFdoZW4gb3BlbmluZyB0aGUgY29tbWFuZC1saW5lIHdpbmRvdyBpbiBFeCBtb2RlIGl0J3MgaW1wb3NzaWJsZSB0bwoJICAgIGdvIGJhY2suIChQYXZvbCBKdWhhcykKU29sdXRpb246ICAgUmVzZXQgImV4bW9kZV9hY3RpdmUiIGFuZCByZXN0b3JlIGl0IHdoZW4gdGhlIGNvbW1hbmQtbGluZSB3aW5kb3cKCSAgICBpcyBjbG9zZWQuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKCgpQYXRjaCA2LjJmLjAwMQpQcm9ibGVtOiAgICBUaGUgY29uZmlndXJlIGNoZWNrIGZvciBSdWJ5IGRpZG4ndCB3b3JrIHByb3Blcmx5IGZvciBSdWJ5IDEuOC4wLgpTb2x1dGlvbjogICBDaGFuZ2UgdGhlIHdheSB0aGUgUnVieSBjaGVjayBpcyBkb25lLiAoQXJvbiBHcmlmZmlzKQpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4yZi4wMDIKUHJvYmxlbTogICAgVGhlIG91dHB1dCBvZiAiOmxzIiBkb2Vzbid0IHNob3cgd2hldGhlciBhIGJ1ZmZlciBoYWQgcmVhZCBlcnJvcnMuClNvbHV0aW9uOiAgIEFkZCB0aGUgIngiIGZsYWcgaW4gdGhlICI6bHMiIG91dHB1dC4KRmlsZXM6CSAgICBydW50aW1lL2RvYy93aW5kb3dzLnR4dCwgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjJmLjAwMwpQcm9ibGVtOiAgICBUZXN0NDkgZG9lc24ndCBwcm9wZXJseSB0ZXN0IHRoZSBiZWhhdmlvciBvZiAiOmNhdGNoIiB3aXRob3V0IGFuCgkgICAgYXJndW1lbnQuClNvbHV0aW9uOiAgIFVwZGF0ZSB0ZXN0NDkuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy90ZXN0ZGlyL3Rlc3Q0OS5vaywgc3JjL3Rlc3RkaXIvdGVzdDQ5LnZpbQoKUGF0Y2ggNi4yZi4wMDQKUHJvYmxlbTogICAgInZpbSAtLXZlcnNpb24iIGFsd2F5cyB1c2VzIENSL0xGIGluIHRoZSBvdXRwdXQuClNvbHV0aW9uOiAgIE9taXQgdGhlIENSLgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMsIHNyYy9vc191bml4LmMKClBhdGNoIDYuMmYuMDA1ClByb2JsZW06ICAgIFR3byBlcnJvciBtZXNzYWdlcyB3aXRob3V0IGEgY29sb24gYWZ0ZXIgdGhlIG51bWJlci4KU29sdXRpb246ICAgQWRkIHRoZSBjb2xvbi4gKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKClBhdGNoIDYuMmYuMDA2ClByb2JsZW06ICAgIFdoZW4gc2F2aW5nIGEgZmlsZSB0YWtlcyBhIHdoaWxlIGFuZCBWaW0gcmVnYWlucyBmb2N1cyB0aGlzIGNhbgoJICAgIHJlc3VsdCBpbiBhICJmaWxlIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0iIHdhcm5pbmcgYW5kIG1sX2dldCgpCgkgICAgZXJyb3JzLiAoTWlrZSBXaWxsaWFtcykKU29sdXRpb246ICAgQWRkIHRoZSAiYl9zYXZpbmciIGZsYWcgdG8gYXZvaWQgY2hlY2tpbmcgdGhlIHRpbWVzdGFtcCB3aGlsZSB0aGUKCSAgICBidWZmZXIgaXMgYmVpbmcgc2F2ZWQuIChNaWNoYWVsIFNjaGFhcCkKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMmYuMDA3ClByb2JsZW06ICAgIElyaXggY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IG11bHRpcGxlIGRlZmluZWQgc3ltYm9scy4KCSAgICB2c25wcmludGYoKSBpcyBub3QgYXZhaWxhYmxlLiAgKENoYXJsZXMgQ2FtcGJlbGwpClNvbHV0aW9uOiAgIEluc2VydCBFWFRFUk4gZm9yIHZhcmlhYmxlcyBpbiBnbG9iYWxzLmguICBDaGFuZ2UgdGhlIGNvbmZpZ3VyZQoJICAgIGNoZWNrIGZvciB2c25wcmludGYoKSBmcm9tIGNvbXBpbGluZyB0byBsaW5raW5nLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2dsb2JhbHMuaAoKUGF0Y2ggNi4yZi4wMDgKUHJvYmxlbTogICAgVGhlIEFhcCByZWNpcGUgZG9lc24ndCB3b3JrIHdpdGggQWFwIDAuMTQ5LgpTb2x1dGlvbjogICBDaGFuZ2UgdGFyZ2V0YXJnIHRvIFRBUkdFVEFSRy4gIFVwZGF0ZSB0aGUgbXlzaWduIGZpbGUuCkZpbGVzOgkgICAgc3JjL21haW4uYWFwLCBzcmMvbXlzaWduCgpQYXRjaCA2LjJmLjAwOSAoZXh0cmEpClByb2JsZW06ICAgIFNtYWxsIHByb2JsZW0gd2hlbiBidWlsZGluZyB3aXRoIEJvcmxhbmQgNS4wMS4KU29sdXRpb246ICAgVXNlIG1rZGlyKCkgaW5zdGVhZCBvZiBfbWtkaXIoKS4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9kb3NpbnN0LmgKClBhdGNoIDYuMmYuMDEwClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIG1pc3NpbmcgcHJvdG90eXBlcy4KU29sdXRpb246ICAgQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9pZl9jc2NvcGUuYwoKUGF0Y2ggNi4yZi4wMTEKUHJvYmxlbTogICAgVGhlIGNvbmZpZ3VyZSBzY3JpcHQgZG9lc24ndCB3b3JrIHdpdGggYXV0b2NvbmYgMi41eC4KU29sdXRpb246ICAgQWRkIHNxdWFyZSBicmFja2V0cyBhcm91bmQgYSBoZWFkZXIgY2hlY2suIChBcm9uIEdyaWZmaXMpCgkgICAgTm90ZTogdG91Y2ggc3JjL2F1dG8vY29uZmlndXJlIGFmdGVyIGFwcGx5aW5nIHRoaXMgcGF0Y2guCkZpbGVzOgkgICAgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4yZi4wMTIKUHJvYmxlbTogICAgIjplY2hvZXJyIiBkb2Vzbid0IHdvcmsgY29ycmVjdGx5IGluc2lkZSB0cnkvZW5kdHJ5LgpTb2x1dGlvbjogICBEb24ndCByZXNldCBkaWRfZW1zZyBpbnNpZGUgYSB0cnkvZW5kdHJ5LiAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjJmLjAxMyAoZXh0cmEpClByb2JsZW06ICAgIE1hY2ludG9zaDogQ29tcGlsZXIgd2FybmluZyBmb3IgYSB0cmlncmFwaC4KU29sdXRpb246ICAgSW5zZXJ0IGEgYmFja3NsYXNoIGJlZm9yZSBlYWNoIHF1ZXN0aW9uIG1hcmsuIChQZXRlciBDdWNrYSkKRmlsZXM6CSAgICBzcmMvb3NfbWFjLmgKClBhdGNoIDYuMmYuMDE0IChleHRyYSkKUHJvYmxlbTogICAgTWFjaW50b3NoOiBleF9ldmFsIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgcHJvamVjdCBmaWxlLgpTb2x1dGlvbjogICBBZGQgZXhfZXZhbC4gKERhbnkgU3QtQW1hbnQpCkZpbGVzOgkgICAgc3JjL29zX21hYy5wYnByb2ovcHJvamVjdC5wYnhwcm9qCgpQYXRjaCA2LjJmLjAxNSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIGNoYW5naW5nIGhlYWRlciBmaWxlcyBub3QgYWxsIHNvdXJjZSBmaWxlcyBpbnZvbHZlZAoJICAgIGFyZSByZWNvbXBpbGVkLgpTb2x1dGlvbjogICBJbXByb3ZlIHRoZSBkZXBlbmRlbmN5IHJ1bGVzLiAoRGFuIFNoYXJwKQpGaWxlczoJICAgIHNyYy9NYWtlX2N5Zy5tYWssIHNyYy9NYWtlX21pbmcubWFrCgpQYXRjaCA2LjJmLjAxNgpQcm9ibGVtOiAgICAidmltIC0tdmVyc2lvbiA+IGZmIiBvbiBub24tVW5peCBzeXN0ZW1zIHJlc3VsdHMgaW4gYSBmaWxlIHdpdGggYQoJICAgIG1pc3NpbmcgbGluZSBicmVhayBhdCB0aGUgZW5kLiAoQmlsbCBNY0NBcnRoeSkKU29sdXRpb246ICAgQWRkIGEgbGluZSBicmVhay4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjJmLjAxNwpQcm9ibGVtOiAgICBVbml4OiBzdGFydGluZyBWaW0gaW4gdGhlIGJhY2tncm91bmQgYW5kIHRoZW4gYnJpbmdpbmcgaXQgdG8gdGhlCgkgICAgZm9yZWdyb3VuZCBtYXkgY2F1c2UgdGhlIHRlcm1pbmFsIHNldHRpbmdzIHRvIGJlIHdyb25nLgpTb2x1dGlvbjogICBDaGVjayBmb3IgdGNzZXRhdHRyKCkgdG8gcmV0dXJuIGFuIGVycm9yLCByZXRyeSB3aGVuIGl0IGRvZXMuCgkgICAgKFBhdWwgVGFwcGVyKQpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMmYuMDE4ClByb2JsZW06ICAgIE1hYyBPUyBYIDEwLjI6IE9LIGlzIGRlZmluZWQgdG8gemVybyBpbiBjdXJzdXMuaCB3aGlsZSBWaW0gdXNlcwoJICAgIG9uZS4gIFJlZGVmaW5pbmcgaXQgY2F1c2VzIGEgd2FybmluZyBtZXNzYWdlLgpTb2x1dGlvbjogICBVbmRlZmluZSBPSyBiZWZvcmUgZGVmaW5pbmcgaXQgdG8gb25lLiAoVGFybyBNdXJhb2thKQpGaWxlczoJICAgIHNyYy92aW0uaAoKUGF0Y2ggNi4yZi4wMTkKUHJvYmxlbTogICAgTWFjIE9TIFggMTAuMjogQ09MT1JfQkxBQ0sgYW5kIENPTE9SX1dISVRFIGFyZSBkZWZpbmVkIGluCgkgICAgY3Vyc2VzLmguClNvbHV0aW9uOiAgIFJlbmFtZSB0aGVtIHRvIFBSQ09MT1JfQkxBQ0sgYW5kIFBSQ09MT1JfV0hJVEUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMmYuMDIwClByb2JsZW06ICAgIFdpbjMyOiB0ZXN0NTAgcHJvZHVjZXMgYmVlcHMgYW5kIGZhaWxzIHdpdGggc29tZSB2ZXJzaW9ucyBvZiBkaWZmLgpTb2x1dGlvbjogICBSZW1vdmUgZW1wdHkgbGluZXMgYW5kIGNvbnZlcnQgdGhlIG91dHB1dCB0byBkb3MgZmlsZWZvcm1hdC4KRmlsZXM6CSAgICBzcmMvdGVzdGRpci90ZXN0NTAuaW4KClBhdGNoIDYuMmYuMDIxClByb2JsZW06ICAgIFJ1bm5pbmcgY29uZmlndXJlIHdpdGggIi0tZW5hYmxlLW5ldGJlYW5zIiBkaXNhYmxlcyBOZXRiZWFucy4KCSAgICAoR29yZG9uIFByaWV1cikKU29sdXRpb246ICAgRml4IHRoZSB0ZXN0cyBpbiBjb25maWd1cmUuaW4gd2hlcmUgdGhlIGRlZmF1bHQgaXMgdG8gZW5hYmxlIGEKCSAgICBmZWF0dXJlLiAgRml4IHRoYXQgIi0tZW5hYmxlLWFjbCIgcmVwb3J0ZWQgInllcyIgY29uZnVzaW5nbHkuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvbXlzaWduCgpQYXRjaCA2LjJmLjAyMgpQcm9ibGVtOiAgICBBIGJvZ3VzIHZhbHVlIGZvciAnZm9sZG1hcmtlcicgaXMgbm90IHJlamVjdGVkLCBwb3NzaWJseSBjYXVzaW5nIGEKCSAgICBoYW5nLiAoRGVyZWsgV3lhdHQpClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIG5vbi1lbXB0eSBzdHJpbmcgYmVmb3JlIGFuZCBhZnRlciB0aGUgY29tbWEuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjJmLjAyMwpQcm9ibGVtOiAgICBXaGVuIHRoZSBoZWxwIGZpbGVzIGFyZSBub3QgaW4gJFZJTVJVTlRJTUUgYnV0ICdoZWxwZmlsZScgaXMKCSAgICBjb3JyZWN0IFZpbSBzdGlsbCBjYW4ndCBmaW5kIHRoZSBoZWxwIGZpbGVzLgpTb2x1dGlvbjogICBBbHNvIGxvb2sgZm9yIGEgdGFncyBmaWxlIGluIHRoZSBkaXJlY3Rvcnkgb2YgJ2hlbHBmaWxlJy4KRmlsZXM6CSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMmYuMDI0ClByb2JsZW06ICAgIFdoZW4gJ2RlbGNvbWJpbmUnIGlzIHNldCBhbmQgYSBjaGFyYWN0ZXIgaGFzIG1vcmUgdGhhbiB0d28KCSAgICBjb21wb3NpbmcgY2hhcmFjdGVycyAieCIgZGVsZXRlcyB0aGVtIGFsbC4KU29sdXRpb246ICAgQWx3YXlzIGRlbGV0ZSBvbmx5IHRoZSBsYXN0IGNvbXBvc2luZyBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMmYuMDI1ClByb2JsZW06ICAgIFdoZW4gcmVhZGluZyBhIGZpbGUgZnJvbSBzdGRpbiB0aGF0IGhhcyBET1MgbGluZSBlbmRpbmdzIGJ1dCBhCgkgICAgbWlzc2luZyBlbmQtb2YtbGluZSBmb3IgdGhlIGxhc3QgbGluZSAnZmlsZWZvcm1hdCcgYmVjb21lcyAidW5peCIuCgkgICAgKEJpbGwgTWNDYXJ0aHkpClNvbHV0aW9uOiAgIERvbid0IGFkZCB0aGUgbWlzc2luZyBsaW5lIGJyZWFrIHdoZW4gcmUtcmVhZGluZyB0aGUgdGV4dCBmcm9tIHRoZQoJICAgIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMmYuMDI2ClByb2JsZW06ICAgIFdoZW4gdHlwaW5nIG5ldyB0ZXh0IGF0IHRoZSBjb21tYW5kIGxpbmUsIG9sZCBjb21wb3NpbmcgY2hhcmFjdGVycwoJICAgIG1heSBiZSBkaXNwbGF5ZWQuClNvbHV0aW9uOiAgIERvbid0IHJlYWQgY29tcG9zaW5nIGNoYXJhY3RlcnMgZnJvbSBhZnRlciB0aGUgZW5kIG9mIHRoZQoJICAgIHRleHQgdG8gYmUgZGlzcGxheWVkLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvbWJ5dGUuYywgc3JjL21lc3NhZ2UuYywgc3JjL3Byb3RvL21ieXRlLnBybywKCSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMmYuMDI3ClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmdzIGZvciB1bnNpZ25lZCBjaGFyIHBvaW50ZXJzLiAoVG9ueSBMZW5laXMpClNvbHV0aW9uOiAgIEFkZCB0eXBlY2FzdHMgdG8gY2hhciBwb2ludGVyLgpGaWxlczoJICAgIHNyYy9xdWlja2ZpeC5jCgpQYXRjaCA2LjJmLjAyOApQcm9ibGVtOiAgICBHVEs6IFdoZW4gJ2ltYWN0aXZhdGVrZXknIGlzIGVtcHR5IGFuZCBYSU0gaXMgaW5hY3RpdmUgaXQgY2FuJ3QgYmUKCSAgICBtYWRlIGFjdGl2ZSBhZ2Fpbi4gIEN1cnNvciBpc24ndCB1cGRhdGVkIGltbWVkaWF0ZWx5IHdoZW4gY2hhbmdpbmcKCSAgICBYSU0gYWN0aXZhdGlvbi4gIEphcGFuZXNlIFhJTSBtYXkgaGFuZyB3aGVuIHVzaW5nICdpbWFjdGl2YXRla2V5Jy4KCSAgICBDYW4ndCBhY3RpdmF0ZSBYSU0gYWZ0ZXIgdHlwaW5nIGZGdFQgY29tbWFuZCBvciAiOnNoIi4KU29sdXRpb246ICAgUHJvcGVybHkgc2V0IHRoZSBmbGFnIHRoYXQgaW5kaWNhdGVzIHRoZSBJTSBpcyBhY3RpdmUuICBVcGRhdGUgdGhlCgkgICAgY3Vyc29yIHJpZ2h0IGF3YXkuICBEbyBub3Qgc2VuZCBhIGtleS1yZWxlYXNlIGV2ZW50LiAgSGFuZGxlCgkgICAgTm9ybWFsIG1vZGUgYW5kIHJ1bm5pbmcgYW4gZXh0ZXJuYWwgY29tbWFuZCBkaWZmZXJlbnRseS4KCSAgICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjJmLjAyOQpQcm9ibGVtOiAgICBNaXhpbmcgdXNlIG9mIGludCBhbmQgZW51bS4KU29sdXRpb246ICAgQWRqdXN0IGFyZ3VtZW50IHR5cGUgb2YgY3NfdXNhZ2VfbXNnKCkuICBGaXggd3JvbmcgdHlwZWRlZi4KRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMsIHNyYy9pZl9jc2NvcGUuaAoKUGF0Y2ggNi4yZi4wMzAgKGFmdGVyIDYuMmYuMDI4KQpQcm9ibGVtOiAgICBDdXJzb3IgbW92ZXMgdXAgd2hlbiB1c2luZyBYSU0uClNvbHV0aW9uOiAgIFJlc2V0IGltX3ByZWVkaXRfY3Vyc29yLiAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yZi4wMzEKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBsaXN0aW5nIGEgZnVuY3Rpb24gYXJndW1lbnQgaW4gdGhlIGRlYnVnZ2VyLiAoUm9uIEFhcm9uKQpTb2x1dGlvbjogICBJbml0IHRoZSBuYW1lIGZpZWxkIG9mIGFuIGFyZ3VtZW50IHRvIE5VTEwuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yZi4wMzIKUHJvYmxlbTogICAgV2hlbiBhIHdyaXRlIGZhaWxzIGZvciBhICI6c2lsZW50ISIgd2hpbGUgaW5zaWRlIHRyeS9lbmR0cnkgdGhlCgkgICAgQnVmV3JpdGVQb3N0IGF1dG9jb21tYW5kcyBhcmUgbm90IHRyaWdnZXJlZC4KU29sdXRpb246ICAgQ2hlY2sgdGhlIGVtc2dfc2lsZW50IGZsYWcgaW4gc2hvdWxkX2Fib3J0KCkuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9leF9ldmFsLmMsIHNyYy90ZXN0ZGlyL3Rlc3Q0OS5vaywgc3JjL3Rlc3RkaXIvdGVzdDQ5LnZpbQoKUGF0Y2ggNi4yZi4wMzMKUHJvYmxlbTogICAgQ3Njb3BlOiByZS1lbnRyYW5jZSBwcm9ibGVtIGZvciAiOmNzY29wZSIgY29tbWFuZC4gIENoZWNraW5nIGZvcgoJICAgIGR1cGxpY2F0ZSBkYXRhYmFzZSBkaWRuJ3Qgd29yayB3ZWxsIGZvciBXaW45NS4gIERpZG4ndCBjaGVjayBmb3IKCSAgICBkdXBsaWNhdGUgZGF0YWJhc2VzIGFmdGVyIGFuIGVtcHR5IGVudHJ5LgpTb2x1dGlvbjogICBEb24ndCBzZXQgcG9zdHBvbmVkX3NwbGl0IHRvbyBlYXJseS4gIFJlbWVtYmVyIGZpcnN0IGVtcHR5CgkgICAgZGF0YWJhc2UgZW50cnkuIChTZXJnZXkgS2hvcmV2KQpGaWxlczoJICAgIHNyYy9pZl9jc2NvcGUuYwoKUGF0Y2ggNi4yZi4wMzQKUHJvYmxlbTogICAgVGhlIG5ldGJlYW5zIGludGVyZmFjZSBjYW5ub3QgYmUgdXNlZCBvbiBzeXN0ZW1zIHdpdGhvdXQKCSAgICB2c25wcmludGYoKS4gKFRvbnkgTGVuZWlzKQpTb2x1dGlvbjogICBVc2UgRU1TRygpLCBFTVNHTigpIGFuZCBFTVNHMigpIGluc3RlYWQuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4yZi4wMzUKUHJvYmxlbTogICAgVGhlIGNvbmZpZ3VyZSBjaGVjayBmb3IgdGhlIG5ldGJlYW5zIGludGVyZmFjZSBkb2Vzbid0IHdvcmsgaWYgdGhlCgkgICAgc29ja2V0IGFuZCBuc2wgbGlicmFyaWVzIGFyZSByZXF1aXJlZC4KU29sdXRpb246ICAgQ2hlY2sgZm9yIHRoZSBzb2NrZXQgYW5kIG5zbCBsaWJyYXJpZXMgYmVmb3JlIHRoZSBuZXRiZWFucyBjaGVjay4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMmYuMDM2ClByb2JsZW06ICAgIE1vdmluZyBsZWZ0d2FyZHMgb3ZlciB0ZXh0IHdpdGggYW4gaWxsZWdhbCBVVEYtOCBieXRlIG1vdmVzIG9uZQoJICAgIGJ5dGUgaW5zdGVhZCBvZiBvbmUgY2hhcmFjdGVyLgpTb2x1dGlvbjogICBJZ25vcmUgYW4gaWxsZWdhbCBieXRlIGFmdGVyIHRoZSBjdXJzb3IgcG9zaXRpb24uCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMmYuMDM3ClByb2JsZW06ICAgIFdoZW4gcmVjZWl2aW5nIGEgTmV0YmVhbnMgY29tbWFuZCBhdCB0aGUgaGl0LWVudGVyIG9yIG1vcmUgcHJvbXB0CgkgICAgdGhlIHNjcmVlbiBpcyByZWRyYXduIGJ1dCBWaW0gaXMgc3RpbGwgd2FpdGluZyBhdCB0aGUgcHJvbXB0LgpTb2x1dGlvbjogICBRdWl0IHRoZSBwcm9tcHQgbGlrZSBhIENUUkwtQyB3YXMgdHlwZWQuCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMmYuMDM4ClByb2JsZW06ICAgIFRoZSBkZXBlbmRlbmN5IHRvIHJ1biBhdXRvY29uZiBjYXVzZXMgYSBwYXRjaCBmb3IgY29uZmlndXJlLmluCgkgICAgdG8gcnVuIGF1dG9jb25mLCBldmVuIHRob3VnaCB0aGUgY29uZmlndXJlIHNjcmlwdCB3YXMgdXBkYXRlZCBhcwoJICAgIHdlbGwuClNvbHV0aW9uOiAgIE9ubHkgcnVuIGF1dG9jb25mIHdpdGggIm1ha2UgYXV0b2NvbmYiLgpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4yZi4wMzkKUHJvYmxlbTogICAgQ1RSTC1XIEsgbWFrZXMgdGhlIG5ldyB0b3Agd2luZG93IHZlcnkgaGlnaC4KU29sdXRpb246ICAgV2hlbiAnZXF1YWxhbHdheXMnIGlzIHNldCBlcXVhbGl6ZSB0aGUgd2luZG93IGhlaWdodHMuCkZpbGVzOgkgICAgc3JjL3dpbmRvdy5jCgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClZFUlNJT04gNi4zCQkJCQkJKnZlcnNpb24tNi4zKgoKVGhpcyBzZWN0aW9uIGlzIGFib3V0IGltcHJvdmVtZW50cyBtYWRlIGJldHdlZW4gdmVyc2lvbiA2LjIgYW5kIDYuMy4KClRoaXMgaXMgbWFpbmx5IGEgYnVnLWZpeCByZWxlYXNlLiAgVGhlcmUgYXJlIGFsc28gYSBmZXcgbmV3IGZlYXR1cmVzLgpUaGUgbWFqb3IgbnVtYmVyIG9mIG5ldyBpdGVtcyBpcyBpbiB0aGUgcnVudGltZSBmaWxlcyBhbmQgdHJhbnNsYXRpb25zLgoKCkNoYW5nZWQJCQkJCQkJKmNoYW5nZWQtNi4zKgotLS0tLS0tCgpUaGUgaW50cm8gbWVzc2FnZSBhbHNvIGRpc3BsYXlzIGEgbm90ZSBhYm91dCBzcG9uc29yaW5nIFZpbSwgbWl4ZWQgcmFuZG9tbHkKd2l0aCB0aGUgbWVzc2FnZSBhYm91dCBoZWxwaW5nIGNoaWxkcmVuIGluIFVnYW5kYS4KCkluY2x1ZGVkIHRoZSB0cmFuc2xhdGVkIG1lbnVzLCBrZXltYXBzIGFuZCB0dXRvcnMgd2l0aCB0aGUgbm9ybWFsIHJ1bnRpbWUKZmlsZXMuICBUaGUgc2VwYXJhdGUgImxhbmciIGFyY2hpdmUgbm93IG9ubHkgY29udGFpbnMgdHJhbnNsYXRlZCBtZXNzYWdlcy4KCk1hZGUgdGhlIHRyYW5zbGF0ZWQgbWVudSBmaWxlIG5hbWVzIGEgYml0IG1vcmUgY29uc2lzdGVudC4gIFVzZSAibGF0aW4xIiBmb3IKImlzb184ODU5LTEiIGFuZCAiaXNvXzg4NTktMTUiLgoKUmVtb3ZlZCB0aGUgImZpbGVfc2VsZWN0LnZpbSIgc2NyaXB0IGZyb20gdGhlIGRpc3RyaWJ1dGlvbi4gIEl0J3Mgbm90IG1vcmUKdXNlZnVsIHRoYW4gb3RoZXIgc2NyaXB0cyB0aGF0IGNhbiBiZSBkb3dubG9hZGVkIGZyb20gd3d3LnZpbS5vcmcuCgpUaGUgInJ1bnRpbWUvZG9jL3RhZ3MiIGZpbGUgaXMgbm93IGFsd2F5cyBpbiB1bml4IGZpbGVmb3JtYXQuICBPbiBNUy1XaW5kb3dzCml0IHVzZWQgdG8gYmUgZG9zIGZpbGVmb3JtYXQsIGJ1dCAiOmhlbHB0YWdzIiBnZW5lcmF0ZXMgYSB1bml4IGZvcm1hdCBmaWxlLgoKCkFkZGVkCQkJCQkJCSphZGRlZC02LjMqCi0tLS0tCgpOZXcgY29tbWFuZHM6Cgk6Y05maWxlCQlnbyB0byBsYXN0IGVycm9yIGluIHByZXZpb3VzIGZpbGUKCTpjcGZpbGUJCWlkZW0KCTpjaGFuZ2VzCXByaW50IHRoZSBjaGFuZ2UgbGlzdAoJOmtlZXBtYXJrcwlmb2xsb3dpbmcgY29tbWFuZCBrZWVwcyBtYXJrcyB3aGVyZSB0aGV5IGFyZQoJOmtlZXBqdW1wcwlmb2xsb3dpbmcgY29tbWFuZCBrZWVwcyBqdW1wbGlzdCBhbmQgbWFya3MKCTpsb2NrbWFya3MJZm9sbG93aW5nIGNvbW1hbmQga2VlcHMgbWFya3Mgd2hlcmUgdGhleSBhcmUKCTpyZWRyYXdzdGF0dXMJZm9yY2UgYSByZWRyYXcgb2YgdGhlIHN0YXR1cyBsaW5lKHMpCgpOZXcgb3B0aW9uczoKCSdhbnRpYWxpYXMnCU1hYyBPUyBYOiB1c2Ugc21vb3RoLCBhbnRpYWxpYXNlZCBmb250cwoJJ2hlbHBsYW5nJwlwcmVmZXJyZWQgaGVscCBsYW5ndWFnZXMKClN5bnRheCBmaWxlczoKCUFyY2ggaW52ZW50b3J5IChOaWtvbGFpIFdlaWJ1bGwpCglDYWxlbmRhciAoTmlrb2xhaSBXZWlidWxsKQoJQ2ggKFdheW5lIENoZW5nKQoJQ29udHJvbGxhYmxlIFJlZ2V4IE11dGlsYXRvciAoTmlrb2xhaSBXZWlidWxsKQoJRCAoSmFzb24gTWlsbHMpCglEZXNrdG9wIChNaWtvbGFqIE1hY2hvd3NraSkKCURpcmNvbG9ycyAoTmlrb2xhaSBXZWlidWxsKQoJRWxpbmtzIGNvbmZpZ3VyYXRpb24gKE5pa29sYWkgV2VpYnVsbCkKCUZBU00gKFJvbiBBYXJvbikKCUdyQURTIHNjcmlwdHMgKFN0ZWZhbiBGcm9uemVrKQoJSWNld20gbWVudSAoSmFtZXMgTWFobGVyKQoJTERJRiAoWmFrIEpvaG5zb24pCglMb2NhbGUgaW5wdXQsIGZkY2MuIChEd2F5bmUgQmFpbGV5KQoJUGluZm8gY29uZmlnIChOaWtvbGFpIFdlaWJ1bGwpCglQeXJleCAoTWFyY28gQmFyaXNpb25lKQoJUmVsYXggTkcgQ29tcGFjdCAoTmlrb2xhaSBXZWlidWxsKQoJU2xpY2UgKE1vcmVsIEJvZGluKQoJVkFYIE1hY3JvIEFzc2VtYmx5IChUb20gVWlqbGRlcnQpCglncmFkcyAoU3RlZmFuIEZyb256ZWspCglsaWJhbyAoTmlrb2xhaSBXZWlidWxsKQoJbXBsYXllciAoTmlrb2xhaSBXZWlidWxsKQoJcnN0IChOaWtvbGFpIFdlaWJ1bGwpCgl0Y3NoIChHYXV0YW0gSXllcikKCXlhbWwgKE5pa29sYWkgV2VpYnVsbCkKCkNvbXBpbGVyIHBsdWdpbnM6CglBVFQgZG90IChNYXJjb3MgTWFjZWRvKQoJQXBwbGUgUHJvamVjdCBCdWlsZGVyIChBbGV4YW5kZXIgdm9uIEJlbG93KQoJSW50ZWwgKERhdmlkIEhhcnJpc29uKQoJYmRmIChOaWtvbGFpIFdlaWJ1bGwpCglpY2MgKFBldGVyIFB1Y2spCglqYXZhYyAoRG91ZyBLZWFybnMpCgluZWF0byAoTWFyY29zIE1hY2VkbykKCW9uc2dtbHMgKFJvYmVydCBCLiBSb3dzb21lKQoJcGVybCAoQ2hyaXN0aWFuIEouIFJvYmluc29uKQoJcnN0IChOaWtvbGFpIFdlaWJ1bGwpCglzZSAoU21hcnRFaWZmZWwpIChEb3VnIEtlYXJucykKCXRjbCAoRG91ZyBLZWFybnMpCgl4bWx3ZiAoUm9iZXJ0IEIuIFJvd3NvbWUpCgpGaWxldHlwZSBwbHVnaW5zOgoJQWFwIChCcmFtIE1vb2xlbmFhcikKCUNoIChXYXluZSBDaGVuZykKCUNzcyAoTmlrb2xhaSBXZWlidWxsKQoJUHlyZXggKE1hcmNvIEJhcmlzaW9uZSkKCVJzdCAoTmlrb2xhaSBXZWlidWxsKQoKSW5kZW50IHNjcmlwdHM6CglBYXAgKEJyYW0gTW9vbGVuYWFyKQoJQ2ggKFdheW5lIENoZW5nKQoJRG9jQm9vayAoTmlrb2xhaSBXZWlidWxsKQoJTWV0YVBvc3QgKEV1Z2VuZSBNaW5rb3Zza2lpKQoJT2JqZWN0aXZlLUMgKEthenVub2J1IEt1cml5YW1hKQoJUHlyZXggKE1hcmNvIEJhcmlzaW9uZSkKCVJzdCAoTmlrb2xhaSBXZWlidWxsKQoJVGNzaCAoR2F1dGFtIEl5ZXIpCglYRnJlZTg2IGNvbmZpZ3VyYXRpb24gZmlsZSAoTmlrb2xhaSBXZWlidWxsKQoJWnNoIChOaWtvbGFpIFdlaWJ1bGwpCgpLZXltYXBzOgoJR3JlZWsgZm9yIGNwMTI1MyAoUGFuYWdpb3RpcyBMb3VyaWRhcykKCUh1bmdhcmlhbiAoTWFneWFyKSAoTGFzemxvIFphdmFsZXRhKQoJUGVyc2lhbi1JcmFuaWFuIChCZWhuYW0gRXNmYWhib2QpCgpNZXNzYWdlIHRyYW5zbGF0aW9uczoKCUNhdGFsYW4gKEVybmVzdCBBZHJvZ3VlKQoJUnVzc2lhbiAoVmFzc2lseSBSYWdvc2luKQoJU3dlZGlzaCAoSm9oYW4gU3ZlZGJlcmcpCgpNZW51IHRyYW5zbGF0aW9uczoKCUNhdGFsYW4gKEVybmVzdCBBZHJvZ3VlKQoJUnVzc2lhbiAoVGltIEFsZXhlZXZza3kpCglTd2VkaXNoIChKb2hhbiBTdmVkYmVyZykKClR1dG9yIHRyYW5zbGF0aW9uczoKCUNhdGFsYW4gKEVybmVzdCBBZHJvZ3VlKQoJUnVzc2lhbiBpbiBjcDEyNTEgKEFsZXhleSBGcm9sb2ZmKQoJU2xvdmFrIGluIGNwMTI1MCBhbmQgaXNvODg1OS0yIChMdWJvcyBDZWxrbykKCVN3ZWRpc2ggKEpvaGFuIFN2ZWRiZXJnKQoJS29yZWFuIChLZWUtV29uIFNlbykKCVVURi04IHZlcnNpb24gb2YgdGhlIEphcGFuZXNlIHR1dG9yIChZYXN1aGlybyBNYXRzdW1vdG8pIFVzZSB0aGlzIGFzCgkJdGhlIG9yaWdpbmFsLCBjcmVhdGUgdGhlIG90aGVyIEphcGFuZXNlIHR1dG9yIGJ5IGNvbnZlcnNpb24uCgpJbmNsdWRlZCAicnVzc2lhbi50eHQiIGhlbHAgZmlsZS4gKFZhc3NpbHkgUmFnb3NpbikKCkluY2x1ZGUgRW5jYXBzdWxhdGVkIFBvc3RTY3JpcHQgYW5kIFBERiB2ZXJzaW9ucyBvZiB0aGUgVmltIGxvZ28gaW4gdGhlIGV4dHJhCmFyY2hpdmUuCgpUaGUgaGVscCBoaWdobGlnaHRpbmcgZmluZHMgdGhlIGhpZ2hsaWdodCBncm91cHMgYW5kIHNob3dzIHRoZW0gaW4gdGhlIGNvbG9yCnRoYXQgaXMgYWN0dWFsbHkgYmVpbmcgdXNlZC4gKGlkZWEgZnJvbSBZYWtvdiBMZXJuZXIpCgpUaGUgYmlnIFdpbjMyIHZlcnNpb24gaXMgbm93IGNvbXBpbGVkIHdpdGggUnVieSBpbnRlcmZhY2UsIHZlcnNpb24gMS44LiAgRm9yClB5dGhvbiB2ZXJzaW9uIDIuMyBpcyB1c2VkLiAgRm9yIFBlcmwgdmVyc2lvbiA1LjggaXMgdXNlZC4KClRoZSAiZnRkZXRlY3QiIGRpcmVjdG9yeSBpcyBtZW50aW9uZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uICBUaGUgRE9TIGluc3RhbGwKcHJvZ3JhbSBjcmVhdGVzIGl0LgoKCkZpeGVkCQkJCQkJCSpmaXhlZC02LjMqCi0tLS0tCgpUZXN0IDQyIGZhaWxlZCBvbiBNUy1XaW5kb3dzLiAgU2V0IGFuZCByZXNldCAnZmlsZWZvcm1hdCcgYW5kICdiaW5hcnknIG9wdGlvbnMKaGVyZSBhbmQgdGhlcmUuICAoV2FsdGVyIEJyaXNjb2UpCgpUaGUgZXhwbG9yZXIgcGx1Z2luIGRpZG4ndCB3b3JrIGZvciBkb3VibGUtYnl0ZSAnZW5jb2Rpbmcncy4KClVzZSAiY29weSAveSIgaW4gTWFrZV9iYzUubWFrIHRvIGF2b2lkIGEgcHJvbXB0IGZvciBvdmVyd3JpdGluZy4KClBhdGNoIDYuMi4wMDEKUHJvYmxlbTogICAgVGhlICI6c3RvcGluc2VydCIgY29tbWFuZCBkb2Vzbid0IGhhdmUgYSBoZWxwIHRhZy4KU29sdXRpb246ICAgQWRkIHRoZSB0YWcuIChBbnRvaW5lIEouICBNZWNoZWx5bmNrKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2luc2VydC50eHQsIHJ1bnRpbWUvZG9jL3RhZ3MKClBhdGNoIDYuMi4wMDIKUHJvYmxlbTogICAgV2hlbiBjb21waWxlZCB3aXRoIHRoZSArbXVsdGlfYnl0ZSBmZWF0dXJlIGJ1dCB3aXRob3V0ICtldmFsLAoJICAgIGRpc3BsYXlpbmcgVVRGLTggY2hhcmFjdGVycyBtYXkgY2F1c2UgYSBjcmFzaC4gKEthcnN0ZW4gSG9wcCkKU29sdXRpb246ICAgQWxzbyBzZXQgdGhlIGRlZmF1bHQgZm9yICdhbWJpd2lkdGgnIHdoZW4gY29tcGlsZWQgd2l0aG91dCB0aGUKCSAgICArZXZhbCBmZWF0dXJlLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjAwMwpQcm9ibGVtOiAgICBHVEsgMjogZG91YmxlLXdpZGUgY2hhcmFjdGVycyBiZWxvdyAyNTYgYXJlIG5vdCBkaXNwbGF5ZWQKCSAgICBjb3JyZWN0bHkuClNvbHV0aW9uOiAgIENoZWNrIHRoZSBjZWxsIHdpZHRoIGZvciBjaGFyYWN0ZXJzIGFib3ZlIDEyNy4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjIuMDA0ClByb2JsZW06ICAgIFdpdGggYSBsaW5lLVZpc3VhbCBzZWxlY3Rpb24gYXQgdGhlIGVuZCBvZiB0aGUgZmlsZSBhICJwIiBjb21tYW5kCgkgICAgcHV0cyB0aGUgdGV4dCBvbmUgbGluZSB1cHdhcmRzLgpTb2x1dGlvbjogICBEZXRlY3QgdGhhdCB0aGUgbGFzdCBsaW5lIHdhcyBkZWxldGVkIGFuZCBwdXQgZm9yd2FyZC4gKFRhcm8KCSAgICBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjAwNQpQcm9ibGVtOiAgICBHVEs6IHRoZSAiRmluZCIgYW5kICJGaW5kIGFuZCBSZXBsYWNlIiB0b29scyBkb24ndCB3b3JrLiAoQXNjaHdpbgoJICAgIE1hcnNtYW4pClNvbHV0aW9uOiAgIFNob3cgdGhlIGRpYWxvZyBhZnRlciBjcmVhdGluZyBpdC4gIChEYXZpZCBOZWNhcykKRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jCgpQYXRjaCA2LjIuMDA2ClByb2JsZW06ICAgIFRoZSBOZXRiZWFucyBjb2RlIGNvbnRhaW5zIGFuIG9ic29sZXRlIGZ1bmN0aW9uIHRoYXQgdXNlcyAidmltNjEiCgkgICAgYW5kIHNldHMgdGhlIGZhbGwtYmFjayB2YWx1ZSBmb3IgJFZJTVJVTlRJTUUuClNvbHV0aW9uOiAgIERlbGV0ZSB0aGUgb2Jzb2xldGUgZnVuY3Rpb24uCkZpbGVzOgkgICAgc3JjL21haW4uYywgc3JjL25ldGJlYW5zLmMsIHNyYy9wcm90by9uZXRiZWFucy5wcm8KClBhdGNoIDYuMi4wMDcKUHJvYmxlbTogICAgTGlzdGluZyB0YWdzIGZvciBDc2NvcGUgZG9lc24ndCBhbHdheXMgd29yay4KU29sdXRpb246ICAgQXZvaWQgdXNpbmcgc21nc19hdHRyKCkuIChTZXJnZXkgS2hvcmV2KQpGaWxlczoJICAgIHNyYy9pZl9jc2NvcGUuYwoKUGF0Y2ggNi4yLjAwOApQcm9ibGVtOiAgICBYSU0gd2l0aCBHVEsgMjogQWZ0ZXIgYmFja3NwYWNpbmcgcHJlZWRpdCBjaGFyYWN0ZXJzIGFyZSB3cm9uZy4KU29sdXRpb246ICAgUmVzZXQgdGhlIGN1cnNvciBwb3NpdGlvbi4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjAwOQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIHNlbGYtaW5zdGFsbGluZyBleGVjdXRhYmxlICJGdWxsIiBzZWxlY3Rpb24gb25seQoJICAgIHNlbGVjdHMgc29tZSBvZiB0aGUgaXRlbXMgdG8gaW5zdGFsbC4gKFNhbG1hbiBNb2hzaW4pClNvbHV0aW9uOiAgIENoYW5nZSBjb21tYXMgdG8gc3BhY2VzIGluIGJldHdlZW4gc2VjdGlvbiBudW1iZXJzLgpGaWxlczoJICAgIG5zaXMvZ3ZpbS5uc2kKClBhdGNoIDYuMi4wMTAKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzIGVmZmVjdGl2ZSBhbmQgYSBsaW5lIHN0YXJ0cyB3aXRoIGEKCSAgICBtdWx0aS1ieXRlIGNoYXJhY3RlciwgbW92aW5nIHRoZSBjdXJzb3IgcmlnaHQgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBPYnRhaW4gdGhlIHJpZ2h0IGNoYXJhY3RlciB0byBjb21wdXRlIHRoZSBjb2x1bW4gb2Zmc2V0LiAoVGFybwoJICAgIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL2NoYXJzZXQuYwoKUGF0Y2ggNi4yLjAxMQpQcm9ibGVtOiAgICBBbHBoYSBPU0YxOiBzdGF0KCkgaXMgYSBtYWNybyBhbmQgZG9lc24ndCBhbGxvdyBhbiAjaWZkZWYgaGFsZndheS4KCSAgICAoTW9zaGUgS2FtaW5za3kpClNvbHV0aW9uOiAgIE1vdmUgdGhlICNpZmRlZiBvdXRzaWRlIG9mIHN0YXQoKS4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuMDEyClByb2JsZW06ICAgIE1heSBoYW5nIHdoZW4gcG9sbGluZyBmb3IgYSBjaGFyYWN0ZXIuClNvbHV0aW9uOiAgIEJyZWFrIHRoZSB3YWl0IGxvb3Agd2hlbiBub3Qgd2FpdGluZyBmb3IgYSBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjAxMyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgcmVnaXN0cnkga2V5IGZvciB1bmluc3RhbGxpbmcgR3ZpbUV4dCBzdGlsbCB1c2VzICI2LjEiLgpTb2x1dGlvbjogICBDaGFuZ2UgdGhlIHZlcnNpb24gbnVtYmVyIHRvICI2LjIiLiAoQWppdCBUaGFra2FyKQpGaWxlczoJICAgIHNyYy9HdmltRXh0L0d2aW1FeHQucmVnCgpQYXRjaCA2LjIuMDE0IChhZnRlciA2LjIuMDEyKQpQcm9ibGVtOiAgICBYU01QIGRvZXNuJ3Qgd29yayB3aGVuIHVzaW5nIHBvbGwoKS4KU29sdXRpb246ICAgVXNlIHhzbXBfaWR4IGluc3RlYWQgb2YgZ3BtX2lkeC4gKE5laWwgQmlyZCkKRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuMDE1ClByb2JsZW06ICAgIFRoZSAreHNtcCBmZWF0dXJlIGlzIG5ldmVyIGVuYWJsZWQuClNvbHV0aW9uOiAgIE1vdmUgdGhlICNkZWZpbmUgZm9yIFVTRV9YU01QIHRvIGJlbG93IHdoZXJlIFdBTlRfWDExIGlzIGRlZmluZWQuCgkgICAgKEFsZXhleSBGcm9sb2ZmKQpGaWxlczoJICAgIHNyYy9mZWF0dXJlLmgKClBhdGNoIDYuMi4wMTYKUHJvYmxlbTogICAgVXNpbmcgIjpzY3Njb3BlIGZpbmQiIHdpdGggJ2NzY29wZXF1aWNrZml4JyBkb2VzIG5vdCBhbHdheXMgc3BsaXQKCSAgICB0aGUgd2luZG93LiAoR2FyeSBKb2huc29uKQoJICAgIFdpbjMyOiAiOmNzY29wZSBhZGQiIGNvdWxkIG1ha2UgdGhlIHNjcmlwdCB0aGF0IGNvbnRhaW5zIGl0CgkgICAgcmVhZC1vbmx5IHVudGlsIHRoZSBjb3JyZXNwb25kaW5nICI6Y3Njb3BlIGtpbGwiLgoJICAgIEVycm9ycyBkdXJpbmcgIjpjc2NvcGUgYWRkIiBtYXkgbm90IGJlIGhhbmRsZWQgcHJvcGVybHkuClNvbHV0aW9uOiAgIFdoZW4gdXNpbmcgdGhlIHF1aWNrZml4IHdpbmRvdyBtYXkgbmVlZCB0byBzcGxpdCB0aGUgd2luZG93LgoJICAgIEF2b2lkIGZpbGUgaGFuZGxlIGluaGVyaXRhbmNlIGZvciB0aGUgc2NyaXB0LgoJICAgIENoZWNrIGZvciBhIGZhaWxlZCBjb25uZWN0aW9uIGFuZC9vciBwcm9jZXNzLiAgKFNlcmdleSBLaG9yZXYpCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMsIHNyYy9pZl9jc2NvcGUuYwoKUGF0Y2ggNi4yLjAxNwpQcm9ibGVtOiAgICBUZXN0MTEgc29tZXRpbWVzIHByb21wdHMgdGhlIHVzZXIsIGJlY2F1c2UgYSBmaWxlIHdvdWxkIGhhdmUgYmVlbgoJICAgIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0uIChBbnRvbmlvIENvbG9tYm8pClNvbHV0aW9uOiAgIEFkZCBhIEZpbGVDaGFuZ2VkU2hlbGwgYXV0b2NvbW1hbmQgdG8gYXZvaWQgdGhlIHByb21wdC4KRmlsZXM6CSAgICBzcmMvdGVzdGRpci90ZXN0MTEuaW4KClBhdGNoIDYuMi4wMTgKUHJvYmxlbTogICAgV2hlbiB1c2luZyB0aGUgWFNNUCBwcm90b2NvbCBhbmQgcmVhZGluZyBmcm9tIHN0ZGluIFZpbSBtYXkgd2FpdAoJICAgIGZvciBhIGtleSB0byBiZSBwcmVzc2VkLgpTb2x1dGlvbjogICBBdm9pZCB0aGF0IFJlYWxXYWl0Rm9yQ2hhcigpIGlzIHVzZWQgcmVjdXJzaXZlbHkuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjAxOSAobGFuZykKUHJvYmxlbTogICAgTG9hZGluZyB0aGUgUG9ydHVndWVzZSBtZW51IGNhdXNlcyBhbiBlcnJvciBtZXNzYWdlLgpTb2x1dGlvbjogICBKb2luIHR3byBsaW5lcy4gIChKb3NlIFBlZHJvIE9saXZlaXJhLCBKb3PpIGRlIFBhdWxhKQpGaWxlczoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X3B0X2JyLnZpbQoKUGF0Y2ggNi4yLjAyMApQcm9ibGVtOiAgICBUaGUgIlN5bnRheC9TZXQgc3ludGF4IG9ubHkiIG1lbnUgaXRlbSBjYXVzZXMgYW4gZXJyb3IgbWVzc2FnZS4KCSAgICAoT3l2aW5kIEhvbG0pClNvbHV0aW9uOiAgIFNldCB0aGUgc2NyaXB0LWxvY2FsIHZhcmlhYmxlIGluIGEgZnVuY3Rpb24uIChCZW5qaSBGaXNoZXIpCkZpbGVzOgkgICAgcnVudGltZS9zeW5tZW51LnZpbQoKUGF0Y2ggNi4yLjAyMQpQcm9ibGVtOiAgICBUaGUgdXNlciBtYW51YWwgc2VjdGlvbiBvbiBleGNlcHRpb25zIGNvbnRhaW5zIHNtYWxsIG1pc3Rha2VzLgpTb2x1dGlvbjogICBHaXZlIGEgZ29vZCBleGFtcGxlIG9mIGFuIGVycm9yIHRoYXQgY291bGQgYmUgbWlzc2VkIGFuZCBvdGhlcgoJICAgIGltcHJvdmVtZW50cy4gKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgcnVudGltZS9kb2MvdXNyXzQxLnR4dAoKUGF0Y2ggNi4yLjAyMiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBBZnRlciBkZWxldGluZyBhIG1lbnUgaXRlbSBpdCBzdGlsbCBhcHBlYXJzIGluIGEgdGVhci1vZmYKCSAgICB3aW5kb3cuClNvbHV0aW9uOiAgIFNldCB0aGUgbW9kZSB0byB6ZXJvIGZvciB0aGUgZGVsZXRlZCBpdGVtLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMi4wMjMgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogTWFrZV9pdmMubWFrIGRvZXMgbm90IGNsZWFuIGV2ZXJ5dGhpbmcuClNvbHV0aW9uOiAgIERlbGV0ZSBtb3JlIGZpbGVzIGluIHRoZSBjbGVhbiBydWxlLiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL01ha2VfaXZjLm1hawoKUGF0Y2ggNi4yLjAyNCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBDb21waWxlciB3YXJuaW5ncyBmb3IgdHlwZWNhc3RzLgpTb2x1dGlvbjogICBVc2UgRFdPUkQgaW5zdGVhZCBvZiBXT1JELiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4yLjAyNQpQcm9ibGVtOiAgICBNaXNzaW5nIHByb3RvdHlwZSBmb3Igc2lnYWx0c3RhY2soKS4KU29sdXRpb246ICAgQWRkIHRoZSBwcm90b3R5cGUgd2hlbiBpdCBpcyBub3QgZm91bmQgaW4gYSBoZWFkZXIgZmlsZS4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuMDI2ClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIHV0aW1lcygpIGFyZ3VtZW50LgpTb2x1dGlvbjogICBBZGQgYSB0eXBlY2FzdC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi4wMjcKUHJvYmxlbTogICAgV2FybmluZyBmb3IgdW5pbml0aWFsaXplZCB2YXJpYWJsZS4KU29sdXRpb246ICAgU2V0IG1iX2wgdG8gb25lIHdoZW4gbm90IHVzaW5nIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjIuMDI4ClByb2JsZW06ICAgIENzY29wZSBjb25uZWN0aW9uIG1heSBraWxsIFZpbSBwcm9jZXNzIGFuZCBvdGhlcnMuClNvbHV0aW9uOiAgIENoZWNrIGZvciBwaWQgYmVpbmcgbGFyZ2VyIHRoYW4gb25lLiAoS2hvcmV2IFNlcmdleSkKRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKClBhdGNoIDYuMi4wMjkKUHJvYmxlbTogICAgV2hlbiB1c2luZyB0aGUgcmVtb3RlIHNlcnZlciBmdW5jdGlvbmFsaXR5IFZpbSBtYXkgbGVhayBtZW1vcnkuCgkgICAgKFNyaWthbnRoIFNhbmthcmFuKQpTb2x1dGlvbjogICBGcmVlIHRoZSByZXN1bHQgb2YgWExpc3RQcm9wZXJ0aWVzKCkuCkZpbGVzOgkgICAgc3JjL2lmX3hjbWRzcnYuYwoKUGF0Y2ggNi4yLjAzMApQcm9ibGVtOiAgICBNYWM6IFdhcm5pbmcgZm9yIG5vdCBiZWluZyBhYmxlIHRvIHVzZSBwcmVjb21waWxlZCBoZWFkZXIgZmlsZXMuClNvbHV0aW9uOiAgIERvbid0IHJlZGVmaW5lIHNlbGVjdC4gIFVzZSAtbm8tY3BwLXByZWNvbXAgZm9yIGNvbXBpbGluZywgc28gdGhhdAoJICAgIGZ1bmN0aW9uIHByb3RvdHlwZXMgYXJlIHN0aWxsIGZvdW5kLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMsIHNyYy9vc2RlZi5zaAoKUGF0Y2ggNi4yLjAzMQpQcm9ibGVtOiAgICBUaGUgbGFuZ21lbnUgZW50cnkgaW4gdGhlIG9wdGlvbnMgd2luZG93IGRvZXNuJ3Qgd29yay4gKFJvZG9sZm8KCSAgICBMaW1hKQoJICAgIFdpdGggR1RLIDEgdGhlICI6b3B0aW9ucyIgY29tbWFuZCBjYXVzZXMgYW4gZXJyb3IgbWVzc2FnZS4KCSAgICAoTWljaGFlbCBOYXVtYW5uKQpTb2x1dGlvbjogICBDaGFuZ2UgImxtZW51IiB0byAibGFuZ21lbnUiLiAgT25seSBkaXNwbGF5IHRoZSAndGJpcycgb3B0aW9uIGZvcgoJICAgIEdUSyAyLgpGaWxlczoJICAgIHJ1bnRpbWUvb3B0d2luLnZpbQoKUGF0Y2ggNi4yLjAzMgpQcm9ibGVtOiAgICBUaGUgbHBjIGZpbGV0eXBlIGlzIG5ldmVyIHJlY29nbml6ZWQuIChTaGl6aHUgUGFuKQpTb2x1dGlvbjogICBDaGVjayBmb3IgZzpscGNfc3ludGF4X2Zvcl9jIGluc3RlYWQgb2YgdGhlIGxvY2FsIHZhcmlhYmxlCgkgICAgbHBjX3N5bnRheF9mb3JfYy4gKEJlbmppIEZpc2hlcikKRmlsZXM6CSAgICBydW50aW1lL2ZpbGV0eXBlLnZpbQoKUGF0Y2ggNi4yLjAzMyAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogVmFyaW91cyBjb21waWxlciB3YXJuaW5ncy4KU29sdXRpb246ICAgRG9uJ3QgaW5jbHVkZSBDbGFzc2ljLW9ubHkgaGVhZGVycyBpbiBVbml4IHZlcnNpb24uCgkgICAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8gc2V2ZXJhbCB1bnVzZWQgdmFyaWFibGVzLiAoQmVuIEZvd2xlcikKCSAgICBGaXggZG91YmxlIGRlZmluaXRpb24gb2YgREVGQVVMVF9URVJNLgoJICAgIFVzZSBpbnQgaW5zdGVhZCBvZiB1bnNpZ25lZCBzaG9ydCBmb3IgcGl4ZWwgdmFsdWVzLCBzbyB0aGF0IHRoZQoJICAgIG5lZ2F0aXZlIGVycm9yIHZhbHVlcyBhcmUgcmVjb2duaXplZC4KRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jLCBzcmMvdGVybS5jCgpQYXRjaCA2LjIuMDM0ClByb2JsZW06ICAgIE1hYzogQ29tcGlsZXIgd2FybmluZyBmb3IgcmVkZWZpbmluZyBERUZBVUxUX1RFUk0uClNvbHV0aW9uOiAgIEZpeCBkb3VibGUgZGVmaW5pdGlvbiBvZiBERUZBVUxUX1RFUk0uCkZpbGVzOgkgICAgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4yLjAzNQpQcm9ibGVtOiAgICBNYWM6IENvbXBpbGVyIHdhcm5pbmdzIGluIFB5dGhvbiBpbnRlcmZhY2UuClNvbHV0aW9uOiAgIE1ha2UgYSBkaWZmZXJlbmNlIGJldHdlZW4gcHVyZSBNYWMgYW5kIFVuaXgtTWFjLiAoUGV0ZXIgQ3Vja2EpCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjIuMDM2IChleHRyYSkKUHJvYmxlbTogICAgTWFjIFVuaXggdmVyc2lvbjogSWYgZm9vIGlzIGEgZGlyZWN0b3J5LCB0aGVuICI6ZSBmPFRhYj4iIHNob3VsZAoJICAgIGV4cGFuZCB0byAiOmUgZm9vLyIgaW5zdGVhZCBvZiAiOmUgZm9vIiAuICAoVmFkaW0gWmVpdGxpbikKU29sdXRpb246ICAgRGVmaW5lIERPTlRfQUREX1BBVEhTRVBfVE9fRElSIG9ubHkgZm9yIHB1cmUgTWFjLiAoQmVuamkgRmlzaGVyKQpGaWxlczoJICAgIHNyYy9vc19tYWMuaAoKUGF0Y2ggNi4yLjAzNwpQcm9ibGVtOiAgICBXaW4zMjogY29udmVydGluZyBhbiBlbmNvZGluZyBuYW1lIHRvIGEgY29kZXBhZ2UgY291bGQgcmVzdWx0IGluCgkgICAgYW4gYXJiaXRyYXJ5IG51bWJlci4KU29sdXRpb246ICAgbWFrZSBlbmNuYW1lMmNvZGVwYWdlKCkgcmV0dXJuIHplcm8gaWYgdGhlIGVuY29kaW5nIG5hbWUgZG9lc24ndAoJICAgIGNvbnRhaW4gYSBjb2RlcGFnZSBudW1iZXIuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMi4wMzggKGV4dHJhKQpQcm9ibGVtOiAgICBXYXJuaW5nIG1lc3NhZ2VzIHdoZW4gdXNpbmcgdGhlIE1pbmdXIGNvbXBpbGVyLiAoQmlsbCBNY0NhcnRoeSkKCSAgICBDYW4ndCBjb21waWxlIGNvbnNvbGUgdmVyc2lvbiB3aXRob3V0ICttb3VzZSBmZWF0dXJlLgpTb2x1dGlvbjogICBJbml0aWFsaXplIHZhcmlhYmxlcywgYWRkIHBhcmVudGhlc2lzLgoJICAgIEFkZCBhbiAjaWZkZWYgYXJvdW5kIGdfbk1vdXNlQ2xpY2suIChBaml0IFRoYWtrYXIpCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL29zX3dpbjMyLmMsIHNyYy9ndWlfdzMyLmMsIHNyYy9kb3NpbnN0LmMKClBhdGNoIDYuMi4wMzkgKGV4dHJhKQpQcm9ibGVtOiAgICBNb3JlIHdhcm5pbmcgbWVzc2FnZXMgd2hlbiB1c2luZyB0aGUgTWluZ1cgY29tcGlsZXIuClNvbHV0aW9uOiAgIEluaXRpYWxpemUgdmFyaWFibGVzLiAoQmlsbCBNY0NhcnRoeSkKRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4yLjA0MApQcm9ibGVtOiAgICBGcmVlQlNEOiBDcmFzaCB3aGlsZSBzdGFydGluZyB1cCB3aGVuIGNvbXBpbGVkIHdpdGggK3hzbXAgZmVhdHVyZS4KU29sdXRpb246ICAgUGFzcyBhIG5vbi1OVUxMIGFyZ3VtZW50IHRvIEljZUFkZENvbm5lY3Rpb25XYXRjaCgpLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMi4wNDEgKGV4dHJhLCBhZnRlciA2LjIuMDMzKQpQcm9ibGVtOiAgICBNYWM6IENvbXBpbGVyIHdhcm5pbmdzIGZvciBjb252ZXJzaW9uIHR5cGVzLCBtaXNzaW5nIHByb3RvdHlwZSwKCSAgICBtaXNzaW5nIHJldHVybiB0eXBlLgpTb2x1dGlvbjogICBDaGFuZ2Ugc3NjYW5mICIlaGQiIHRvICIlZCIsIHRoZSBhcmd1bWVudCBpcyBhbiBpbnQgbm93LiAgQWRkCgkgICAgZ3VpX21jaF9pbml0X2NoZWNrKCkgcHJvdG90eXBlLiAgQWRkICJpbnQiIHRvIHRlcm1saWIgZnVuY3Rpb25zLgpGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMsIHNyYy9wcm90by9ndWlfbWFjLnBybywgc3JjL3Rlcm1saWIuYy4KClBhdGNoIDYuMi4wNDIgKGV4dHJhKQpQcm9ibGVtOiAgICBDeWd3aW46IGdjYyAzLjIgaGFzIGFuIG9wdGltaXplciBwcm9ibGVtLCBzb21ldGltZXMgY2F1c2luZyBhCgkgICAgY3Jhc2guClNvbHV0aW9uOiAgIEFkZCAtZm5vLXN0cmVuZ3RoLXJlZHVjZSB0byB0aGUgY29tcGlsZXIgYXJndW1lbnRzLiAoRGFuIFNoYXJwKQpGaWxlczoJICAgIHNyYy9NYWtlX2N5Zy5tYWsKClBhdGNoIDYuMi4wNDMKUHJvYmxlbTogICAgQ29tcGlsaW5nIHdpdGggYm90aCBuZXRiZWFucyBhbmQgd29ya3Nob3AgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBNb3ZlIHRoZSBzaGVsbFJlY3RhbmdsZSgpIGZ1bmN0aW9uIHRvIGd1aV94MTEuYy4gKEdvcmRvbiBQcmlldXIpCkZpbGVzOgkgICAgc3JjL2d1aV94MTEuYywgc3JjL2ludGVncmF0aW9uLmMsIHNyYy9uZXRiZWFucy5jLAoJICAgIHNyYy9wcm90by9uZXRiZWFucy5wcm8KClBhdGNoIDYuMi4wNDQKUHJvYmxlbTogICAgIjphdSBmaWxldHlwZWRldGVjdCIgZ2l2ZXMgYW4gZXJyb3IgZm9yIGEgbm9uLWV4aXN0aW5nIGV2ZW50IG5hbWUsCgkgICAgYnV0IGl0J3MgYWN0dWFsbHkgYSBub24tZXhpc3RpbmcgZ3JvdXAgbmFtZS4gKEFudG9pbmUgTWVjaGVseW5jaykKU29sdXRpb246ICAgTWFrZSB0aGUgZXJyb3IgbWVzc2FnZSBjbGVhcmVyLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4yLjA0NQpQcm9ibGVtOiAgICBPYnRhaW5pbmcgdGhlICcoIG1hcmsgY2hhbmdlcyB0aGUgJycgbWFyay4gKEdhcnkgSG9sbG93YXkpClNvbHV0aW9uOiAgIERvbid0IHNldCB0aGUgJycgbWFyayB3aGVuIHNlYXJjaGluZyBmb3IgdGhlIHN0YXJ0L2VuZCBvZiB0aGUKCSAgICBjdXJyZW50IHNlbnRlbmNlL3BhcmFncmFwaC4KRmlsZXM6CSAgICBzcmMvbWFyay5jCgpQYXRjaCA2LjIuMDQ2ClByb2JsZW06ICAgIFdoZW4gZXZhbHVhdGluZyBhbiBhcmd1bWVudCBvZiBhIGZ1bmN0aW9uIHRocm93cyBhbiBleGNlcHRpb24gdGhlCgkgICAgZnVuY3Rpb24gaXMgc3RpbGwgY2FsbGVkLiAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIERvbid0IGNhbGwgdGhlIGZ1bmN0aW9uIHdoZW4gYW4gZXhjZXB0aW9uIHdhcyB0aHJvd24uCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yLjA0NyAoZXh0cmEpClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmdzIHdoZW4gdXNpbmcgTWluZ1cuIChCaWxsIE1jQ2FydGh5KQpTb2x1dGlvbjogICBHaXZlIHRoZSBzX2R3TGFzdENsaWNrVGltZSB2YXJpYWJsZSBhIHR5cGUuICBJbml0aWFsaXplIGR3RW5kVGltZS4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjA0OApQcm9ibGVtOiAgICBUaGUgUHl0aG9uIGludGVyZmFjZSBkb2Vzbid0IGNvbXBpbGUgd2l0aCBQeXRob24gMi4zIHdoZW4KCSAgICBkeW5hbWljYWxseSBsb2FkZWQuClNvbHV0aW9uOiAgIFVzZSBkbGxfUHlPYmplY3RfTWFsbG9jIGFuZCBkbGxfUHlPYmplY3RfRnJlZS4gKFBhdWwgTW9vcmUpCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjIuMDQ5ClByb2JsZW06ICAgIFVzaW5nIGEgIi1yYW5nZT0iIGFyZ3VtZW50IHdpdGggIjpjb21tYW5kIiBkb2Vzbid0IHdvcmsgYW5kCgkgICAgZG9lc24ndCBnZW5lcmF0ZSBhbiBlcnJvciBtZXNzYWdlLgpTb2x1dGlvbjogICBHZW5lcmF0ZSBhbiBlcnJvciBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjIuMDUwClByb2JsZW06ICAgIFRlc3QgMzIgZGlkbid0IHdvcmsgb24gTVMtV2luZG93cy4KU29sdXRpb246ICAgV3JpdGUgdGhlIHRlbXAgZmlsZSBpbiBVbml4IGZpbGVmb3JtYXQuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvdGVzdGRpci90ZXN0MzIuaW4KClBhdGNoIDYuMi4wNTEKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiXD1zdWJtYXRjaCgwKSIgaW4gYSAiOnMiIGNvbW1hbmQsIGxpbmUgYnJlYWtzIGJlY29tZQoJICAgIE5VTCBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBDaGFuZ2UgTkwgdG8gQ1IgY2hhcmFjdGVycywgc28gdGhhdCB0aGV5IGJlY29tZSBsaW5lIGJyZWFrcy4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMi4wNTIKUHJvYmxlbTogICAgQSBmZXcgbWVzc2FnZXMgYXJlIG5vdCB0cmFuc2xhdGVkLgpTb2x1dGlvbjogICBBZGQgXygpIHRvIHRoZSBtZXNzYWdlcy4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjIuMDUzClByb2JsZW06ICAgIFByb3RvdHlwZSBmb3IgYnplcm8oKSBkb2Vzbid0IG1hdGNoIG1vc3Qgc3lzdGVtcy4KU29sdXRpb246ICAgVXNlICJ2b2lkICoiIGluc3RlYWQgb2YgImNoYXIgKiIgYW5kICJzaXplX3QiIGluc3RlYWQgb2YgImludCIuCkZpbGVzOgkgICAgc3JjL29zZGVmMS5oLmluCgpQYXRjaCA2LjIuMDU0ClByb2JsZW06ICAgIEEgZG91YmxlLWJ5dGUgY2hhcmFjdGVyIHdpdGggYSBzZWNvbmQgYnl0ZSB0aGF0IGlzIGEgYmFja3NsYXNoCgkgICAgY2F1c2VzIHByb2JsZW1zIGluc2lkZSBhIHN0cmluZy4KU29sdXRpb246ICAgU2tpcCBvdmVyIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBpbiBhIHN0cmluZyBwcm9wZXJseS4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi4wNTUKUHJvYmxlbTogICAgVXNpbmcgY29sKCcuJykgZnJvbSBDVFJMLU8gaW4gSW5zZXJ0IG1vZGUgZG9lcyBub3QgcmV0dXJuIHRoZQoJICAgIGNvcnJlY3QgdmFsdWUgZm9yIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KU29sdXRpb246ICAgQ29ycmVjdCB0aGUgY3Vyc29yIHBvc2l0aW9uIHdoZW4gaXQgaXMgbmVjZXNzYXJ5LCBtb3ZlIHRvIHRoZQoJICAgIGZpcnN0IGJ5dGUgb2YgYSBtdWx0aS1ieXRlIGNoYXJhY3Rlci4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjIuMDU2IChleHRyYSkKUHJvYmxlbTogICAgQnVpbGRpbmcgd2l0aCBTbmlmZisrIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgVXNlIHRoZSBtdWx0aS10aHJlYWRlZCBsaWJjIHdoZW4gbmVlZGVkLiAoSG9sZ2VyIERpdHRpbmcpCkZpbGVzOgkgICAgc3JjL01ha2VfbXZjLm1hawoKUGF0Y2ggNi4yLjA1NyAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogV2l0aCAtRE1BQ09TX1ggcHV0ZW52KCkgaXMgZGVmaW5lZCB0d2ljZSwgaXQgaXMgaW4gYSBzeXN0ZW0KCSAgICBsaWJyYXJ5LiAgR2V0IGEgd2FybmluZyBmb3IgcmVkZWZpbmluZyBPSy4gIFVudXNlZCB2YXJpYWJsZXMgaW4KCSAgICBvc19tYWMuYwpTb2x1dGlvbjogICBEZWZpbmUgSEFWRV9QVVRFTlYuICBVbmRlZmluZSBPSyBhZnRlciBpbmNsdWRpbmcgY3Vyc2VzLmguCgkgICAgUmVtb3ZlIGRlY2xhcmF0aW9ucyBmb3IgdW51c2VkIHZhcmlhYmxlcy4KRmlsZXM6CSAgICBzcmMvb3NfbWFjLmMsIHNyYy9vc19tYWMuaCwgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMDU4ClByb2JsZW06ICAgIFdoZW4gJ2F1dG9jaGRpcicgaXMgc2V0ICI6Ym5leHQiIHRvIGEgYnVmZmVyIHdpdGhvdXQgYSBuYW1lIGNhdXNlcwoJICAgIGEgY3Jhc2guClNvbHV0aW9uOiAgIERvbid0IGNhbGwgdmltX2NoZGlyZmlsZSgpIHdoZW4gdGhlIGZpbGUgbmFtZSBpcyBOVUxMLiAoVGFybwoJICAgIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjIuMDU5ClByb2JsZW06ICAgIFdoZW4gJ3Njcm9sbG9mZicgaXMgYSBsYXJnZSBudW1iZXIgYW5kIGxpc3RpbmcgY29tcGxldGlvbiByZXN1bHRzCgkgICAgb24gdGhlIGNvbW1hbmQgbGluZSwgdGhlbiBleGVjdXRpbmcgYSBjb21tYW5kIHRoYXQganVtcHMgY2xvc2UgdG8KCSAgICB3aGVyZSB0aGUgY3Vyc29yIHdhcyBiZWZvcmUsIHBhcnQgb2YgdGhlIHNjcmVlbiBpcyBub3QgdXBkYXRlZC4KCSAgICAoWWFrb3YgTGVybmVyKQpTb2x1dGlvbjogICBEb24ndCBza2lwIHJlZHJhd2luZyBwYXJ0IG9mIHRoZSB3aW5kb3cgd2hlbiBpdCB3YXMgc2Nyb2xsZWQuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjIuMDYwIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gJ2VuY29kaW5nJyBpcyBzZXQgdG8gImlzby04ODU5LTciIGNvcHkvcGFzdGUgdG8vZnJvbQoJICAgIHRoZSBjbGlwYm9hcmQgZ2l2ZXMgYSBsYWxsb2MoMCkgZXJyb3IuIChLcml0b24gS3lyaW1pcykKU29sdXRpb246ICAgV2hlbiB0aGUgc3RyaW5nIGxlbmd0aCBpcyB6ZXJvIGFsbG9jYXRlIG9uZSBieXRlLiAgQWxzbyBmaXggdGhhdAoJICAgIHdoZW4gdGhlIGxlbmd0aCBvZiB0aGUgVW5pY29kZSB0ZXh0IGlzIHplcm8gKGNvbnZlcnNpb24gZnJvbQoJICAgICdlbmNvZGluZycgdG8gVUNTLTIgd2FzIG5vdCBwb3NzaWJsZSkgdGhlIG5vcm1hbCB0ZXh0IGlzIHVzZWQuCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMi4wNjEKUHJvYmxlbTogICAgR1VJOiBVc2luZyB0aGUgbGVmdCBtb3VzZSBidXR0b24gd2l0aCB0aGUgc2hpZnQga2V5IHNob3VsZCB3b3JrCgkgICAgbGlrZSAiKiIgYnV0IGl0IHNjcm9sbHMgaW5zdGVhZC4gKE1hcnRpbiBCZWxsZXIpClNvbHV0aW9uOiAgIERvbid0IHJlY29nbml6ZSBhbiByeHZ0IHNjcm9sbCB3aGVlbCBldmVudCB3aGVuIHVzaW5nIHRoZSBHVUkuCkZpbGVzOgkgICAgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4yLjA2MgpQcm9ibGVtOiAgICBXaGVuIG9uZSBidWZmZXIgdXNlcyBhIHN5bnRheCB3aXRoICJjb250YWluZWRpbiIgYW5kIGFub3RoZXIKCSAgICBidWZmZXIgZG9lcyBub3QsIHJlZHJhd2luZyBkZXBlbmRzIG9uIHdoYXQgdGhlIGN1cnJlbnQgYnVmZmVyIGlzLgoJICAgIChCcmV0dCBQZXJzaGluZyBTdGFobG1hbikKU29sdXRpb246ICAgVXNlICJzeW5fYnVmIiBpbnN0ZWFkIG9mICJjdXJidWYiIHRvIGdldCB0aGUgYl9zeW5fY29udGFpbmVkaW4KCSAgICBmbGFnLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4yLjA2MwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGN1c3RvbSBjb21wbGV0aW9uIGVuZCB1cCB3aXRoIG5vIG1hdGNoZXMuClNvbHV0aW9uOiAgIE1ha2UgY21kX251bWZpbGVzIGFuZCBjbWRfZmlsZXMgbG9jYWwgdG8gY29tcGxldGlvbiB0byBhdm9pZCB0aGF0CgkgICAgdGhleSBhcmUgb3ZlcndyaXR0ZW4gd2hlbiBFeHBhbmRPbmUoKSBpcyBjYWxsZWQgcmVjdXJzaXZlbHkgYnkKCSAgICBmX2dsb2IoKS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9wcm90by9leF9nZXRsbi5wcm8sCgkgICAgc3JjL21pc2MxLmMsIHNyYy9zdHJ1Y3RzLmgsIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjA2NApQcm9ibGVtOiAgICByZXNvbHZlKCkgb25seSBoYW5kbGVzIG9uZSBzeW1ib2xpYyBsaW5rLCBuZWVkIHRvIHJlcGVhdCBpdCB0bwoJICAgIHJlc29sdmUgYWxsIG9mIHRoZW0uICBUaGVuIG5lZWQgdG8gc2ltcGxpZnkgdGhlIGZpbGUgbmFtZS4KU29sdXRpb246ICAgTWFrZSByZXNvbHZlKCkgcmVzb2x2ZSBhbGwgc3ltYm9saWMgbGlua3MgYW5kIHNpbXBsaWZ5IHRoZSByZXN1bHQuCgkgICAgQWRkIHNpbXBsaWZ5KCkgdG8ganVzdCBzaW1wbGlmeSBhIGZpbGUgbmFtZS4gIEZpeCB0aGF0IHRlc3Q0OQoJICAgIGRvZXNuJ3Qgd29yayBpZiAvdG1wIGlzIGEgc3ltYm9saWMgbGluay4gIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvZXZhbC5jLCBzcmMvdGFnLmMsCgkgICAgc3JjL3Rlc3RkaXIvdGVzdDQ5LnZpbQoKUGF0Y2ggNi4yLjA2NQpQcm9ibGVtOiAgICAiOndpbmRvIDEyMyIgb25seSB1cGRhdGVzIG90aGVyIHdpbmRvd3Mgd2hlbiBlbnRlcmluZyB0aGVtLgoJICAgIChXYWx0ZXIgQnJpc2NvZSkKU29sdXRpb246ICAgVXBkYXRlIHRoZSB0b3BsaW5lIGJlZm9yZSBnb2luZyB0byB0aGUgbmV4dCB3aW5kb3cuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMi4wNjYgKGV4dHJhKQpQcm9ibGVtOiAgICBSdWJ5IGludGVyZmFjZSBkb2Vzbid0IHdvcmsgd2l0aCBSdWJ5IDEuOC4wLgpTb2x1dGlvbjogICBDaGFuZ2UgImRlZm91dCIgdG8gInN0ZG91dCIuIChBcm9uIEdyaWZpcykKCSAgICBDaGFuZ2UgZHluYW1pYyBsb2FkaW5nLiAoVGFybyBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9pZl9ydWJ5LmMsIHNyYy9NYWtlX212Yy5tYWsKClBhdGNoIDYuMi4wNjcKUHJvYmxlbTogICAgV2hlbiBzZWFyY2hpbmcgZm9yIGEgc3RyaW5nIHRoYXQgc3RhcnRzIHdpdGggYSBjb21wb3NpbmcgY2hhcmFjdGVyCgkgICAgdGhlIGNvbW1hbmQgbGluZSBpc24ndCBkcmF3biBwcm9wZXJseS4KU29sdXRpb246ICAgRG9uJ3QgY291bnQgdGhlIHNwYWNlIHRvIGRyYXcgdGhlIGNvbXBvc2luZyBjaGFyYWN0ZXIgb24gYW5kCgkgICAgYWRqdXN0IHRoZSBjdXJzb3IgY29sdW1uIGFmdGVyIGRyYXdpbmcgdGhlIHN0cmluZy4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjIuMDY4ClByb2JsZW06ICAgIEV2ZW50cyBmb3IgdGhlIG5ldGJlYW5zIGludGVyZmFjZSB0aGF0IGluY2x1ZGUgYSBmaWxlIG5hbWUgd2l0aAoJICAgIHNwZWNpYWwgY2hhcmFjdGVycyBkb24ndCB3b3JrIHByb3Blcmx5LgpTb2x1dGlvbjogICBVc2UgbmJfcXVvdGUoKSBvbiB0aGUgZmlsZSBuYW1lLiAoU2VyZ2V5IEtob3JldikKRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4yLjA2OSAoYWZ0ZXIgNi4yLjA2NCkKUHJvYmxlbTogICAgVW51c2VkIHZhcmlhYmxlcyAibGltaXQiIGFuZCAibmV3X3N0IiBhbmQgdW51c2VkIGxhYmVsICJmYWlsIiBpbgoJICAgIHNvbWUgc2l0dWF0aW9uLiAoQmlsbCBNY0NhcnRoeSkKU29sdXRpb246ICAgUHV0IHRoZSBkZWNsYXJhdGlvbnMgaW5zaWRlIGFuICNpZmRlZi4gKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL3RhZy5jCgpQYXRjaCA2LjIuMDcwIChhZnRlciA2LjIuMDY5KQpQcm9ibGVtOiAgICBTdGlsbCB1bnVzZWQgdmFyaWFibGUgIm5ld19zdCIuIChCaWxsIE1jQ2FydGh5KQpTb2x1dGlvbjogICBNb3ZlIHRoZSBkZWNsYXJhdGlvbiB0byB0aGUgcmlnaHQgYmxvY2sgdGhpcyB0aW1lLgpGaWxlczoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjA3MQpQcm9ibGVtOiAgICAnc3RhdHVzbGluZScgY2FuIG9ubHkgY29udGFpbiA1MCAlIGl0ZW1zLiAoQW50b255IFNjcml2ZW4pClNvbHV0aW9uOiAgIEFsbG93IDgwIGl0ZW1zIGFuZCBtZW50aW9uIGl0IGluIHRoZSBkb2NzLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbi50eHQsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjA3MgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGV4cHJlc3Npb24gZm9sZGluZywgZm9sZGV4cHIoKSBtb3N0bHkgcmV0dXJucyAtMSBmb3IKCSAgICB0aGUgcHJldmlvdXMgbGluZSwgd2hpY2ggbWFrZXMgaXQgZGlmZmljdWx0IHRvIHdyaXRlIGEgZm9sZAoJICAgIGV4cHJlc3Npb24uClNvbHV0aW9uOiAgIE1ha2UgdGhlIGxldmVsIG9mIHRoZSBwcmV2aW91cyBsaW5lIGF2YWlsYWJsZSB3aGlsZSBzdGlsbCBsb29raW5nCgkgICAgZm9yIHRoZSBlbmQgb2YgYSBmb2xkLgpGaWxlczoJICAgIHNyYy9mb2xkLmMKClBhdGNoIDYuMi4wNzMKUHJvYmxlbTogICAgV2hlbiBhZGRpbmcgZGV0ZWN0aW9uIG9mIGEgc3BlY2lmaWMgZmlsZXR5cGUgZm9yIGEgcGx1Z2luIHlvdSBuZWVkCgkgICAgdG8gZWRpdCAiZmlsZXR5cGUudmltIi4KU29sdXRpb246ICAgU291cmNlIGZpbGVzIGZyb20gdGhlICJmdGRldGVjdCIgZGlyZWN0b3J5LCBzbyB0aGF0IGEgZmlsZXR5cGUKCSAgICBkZXRlY3Rpb24gcGx1Z2luIG9ubHkgbmVlZHMgdG8gYmUgZHJvcHBlZCBpbiBhIGRpcmVjdG9yeS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9maWxldHlwZS50eHQsIHJ1bnRpbWUvZG9jL3Vzcl8wNS50eHQsCgkgICAgcnVudGltZS9kb2MvdXNyXzQxLnR4dCwgcnVudGltZS9maWxldHlwZS52aW0KClBhdGNoIDYuMi4wNzQKUHJvYmxlbTogICAgV2FybmluZ3Mgd2hlbiBjb21waWxpbmcgdGhlIFB5dGhvbiBpbnRlcmZhY2UuIChBaml0IFRoYWtrYXIpClNvbHV0aW9uOiAgIFVzZSBBTlNJIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucy4KRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMi4wNzUKUHJvYmxlbTogICAgV2hlbiB0aGUgdGVtcCBmaWxlIGZvciB3cml0aW5nIHZpbWluZm8gY2FuJ3QgYmUgdXNlZCAiTlVMTCIKCSAgICBhcHBlYXJzIGluIHRoZSBlcnJvciBtZXNzYWdlLiAoQmVuIExhdmVuZGVyKQpTb2x1dGlvbjogICBQcmludCB0aGUgb3JpZ2luYWwgZmlsZSBuYW1lIHdoZW4gdGhlcmUgaXMgbm8gdGVtcCBmaWxlIG5hbWUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4yLjA3NgpQcm9ibGVtOiAgICBUaGUgdGFncyBsaXN0ZWQgZm9yIGNzY29wZSBhcmUgaW4gdGhlIHdyb25nIG9yZGVyLiAoSm9oYW5uZXMKCSAgICBTdGV6ZW5iYWNoKQpTb2x1dGlvbjogICBSZW1vdmUgdGhlIHJlb3JkZXJpbmcgb2YgdGFncyBmb3IgdGhlIGN1cnJlbnQgZmlsZS4gKFNlcmdleQoJICAgIEtob3JldikKRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKClBhdGNoIDYuMi4wNzcKUHJvYmxlbTogICAgV2hlbiBhIHVzZXIgZnVuY3Rpb24gc3BlY2lmaWVzIGN1c3RvbSBjb21wbGV0aW9uLCB0aGUgZnVuY3Rpb24KCSAgICBnZXRzIGEgemVybyBhcmd1bWVudCBpbnN0ZWFkIG9mIGFuIGVtcHR5IHN0cmluZyB3aGVuIHRoZXJlIGlzIG5vCgkgICAgd29yZCBiZWZvcmUgdGhlIGN1cnNvci4gKFByZWJlbiBHdWxkYmVyZykKU29sdXRpb246ICAgRG9uJ3QgY29udmVydCBhbiBlbXB0eSBzdHJpbmcgdG8gYSB6ZXJvLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi4wNzgKUHJvYmxlbTogICAgIm1ha2UgdGVzdCIgZG9lc24ndCB3b3JrIGlmIFZpbSB3YXNuJ3QgY29tcGlsZWQgeWV0LiAoRWQgQXZpcykKU29sdXRpb246ICAgQnVpbGQgVmltIGJlZm9yZSBydW5uaW5nIHRoZSB0ZXN0cy4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMi4wNzkKUHJvYmxlbTogICAgIjp3ICsrZW5jPXV0Zi04ICFjbWQiIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgQ2hlY2sgZm9yIHRoZSAiKysiIGFyZ3VtZW50IGJlZm9yZSB0aGUgIiEiLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjIuMDgwClByb2JsZW06ICAgIFdoZW4gJ3RfdGknIGlzIG5vdCBlbXB0eSBidXQgZG9lc24ndCBzd2FwIHNjcmVlbnMsIHVzaW5nICJaWiIgaW4KCSAgICBhbiB1bm1vZGlmaWVkIGZpbGUgZG9lc24ndCBjbGVhciB0aGUgbGFzdCBsaW5lLgpTb2x1dGlvbjogICBDYWxsIG1zZ19jbHJfZW9zKCkgd2hlbiBuZWVkZWQuIChNaWNoYWVsIFNjaHJvZWRlcikKRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuMDgxClByb2JsZW06ICAgIFByb2JsZW0gd2hlbiB1c2luZyBhIGxvbmcgbXVsdGlieXRlIHN0cmluZyBmb3IgdGhlIHN0YXR1c2xpbmUuClNvbHV0aW9uOiAgIFVzZSB0aGUgcmlnaHQgcG9pbnRlciB0byBnZXQgdGhlIGNlbGwgc2l6ZS4gKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMi4wODIKUHJvYmxlbTogICAgQ2FuJ3QgY29tcGlsZSB3aXRoIFBlcmwgNS44LjEuClNvbHV0aW9uOiAgIFJlbmFtZSAiZV9udW1iZXIiIHRvICJlX251bWJlcl9leHAiLiAoU2FzY2hhIEJsYW5rKQpGaWxlczoJICAgIHNyYy9kaWdyYXBoLmMsIHNyYy9nbG9iYWxzLmgKClBhdGNoIDYuMi4wODMKUHJvYmxlbTogICAgV2hlbiBhIGNvbXBpbGVyIHVzZXMgXl5eXiB0byBtYXJrIGEgd29yZCB0aGUgaW5mb3JtYXRpb24gaXMgbm90CgkgICAgdmlzaWJsZSBpbiB0aGUgcXVpY2tmaXggd2luZG93LiAoU3Jpa2FudGggU2Fua2FyYW4pClNvbHV0aW9uOiAgIERvbid0IHJlbW92ZSB0aGUgaW5kZW50IGZvciBhIGxpbmUgdGhhdCBpcyBub3QgcmVjb2duaXplZCBhcyBhbgoJICAgIGVycm9yIG1lc3NhZ2UuCkZpbGVzOgkgICAgc3JjL3F1aWNrZml4LmMKClBhdGNoIDYuMi4wODQKUHJvYmxlbTogICAgImdfIiBpbiBWaXN1YWwgbW9kZSBhbHdheXMgZ29lcyB0byB0aGUgY2hhcmFjdGVyIGFmdGVyIHRoZSBsaW5lLgoJICAgIChKZWFuLVJlbmUgRGF2aWQpClNvbHV0aW9uOiAgIElnbm9yZSB0aGUgTlVMIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMDg1ClByb2JsZW06ICAgICI6dmVyYm9zZSBzZXQgdHMiIGRvZXNuJ3Qgc2F5IGFuIG9wdGlvbiB3YXMgc2V0IHdpdGggYSAiLWMiIG9yCgkgICAgIi0tY21kIiBhcmd1bWVudC4KU29sdXRpb246ICAgUmVtZW1iZXIgdGhlIG9wdGlvbiB3YXMgc2V0IGZyb20gYSBWaW0gYXJndW1lbnQuCkZpbGVzOgkgICAgc3JjL21haW4uYywgc3JjL2V4X2NtZHMyLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjA4NgpQcm9ibGVtOiAgICAieyIgYW5kICJ9IiBzdG9wIGluc2lkZSBhIGNsb3NlZCBmb2xkLgpTb2x1dGlvbjogICBPbmx5IHN0b3Agb25jZSBpbnNpZGUgYSBjbG9zZWQgZm9sZC4gKFN0ZXBoZW4gUmllaG0pCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjIuMDg3ClByb2JsZW06ICAgIENUUkwtXiBkb2Vzbid0IHVzZSB0aGUgJ2NvbmZpcm0nIG9wdGlvbi4gIFNhbWUgcHJvYmxlbSB3aXRoCgkgICAgIjpibmV4dCIuIChZYWtvdiBMZXJuZXIpClNvbHV0aW9uOiAgIFB1dCB1cCBhIGRpYWxvZyBmb3IgYSBjaGFuZ2VkIGZpbGUgd2hlbiAnY29uZmlybScgaXMgc2V0IGluIG1vcmUKCSAgICBzaXR1YXRpb25zLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4yLjA4OApQcm9ibGVtOiAgICBXaGVuICdzaWRlc2Nyb2xsb2ZmJyBpcyBzZXQgJ3Nob3dtYXRjaCcgZG9lc24ndCB3b3JrIGNvcnJlY3RseSBpZgoJICAgIHRoZSBtYXRjaCBpcyBsZXNzIHRoYW4gJ3NpZGVzY3JvbGxvZmYnIG9mZiBmcm9tIHRoZSBzaWRlIG9mIHRoZQoJICAgIHdpbmRvdy4gIChSb2xhbmQgU3RhaG4pClNvbHV0aW9uOiAgIFNldCAnc2lkZXNjcm9sbG9mZicgdG8gemVybyB3aGlsZSBkaXNwbGF5aW5nIHRoZSBtYXRjaC4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMi4wODkKUHJvYmxlbTogICAgIjpzZXQgaXNrKz0iIGFkZHMgYSBjb21tYS4gKE1hcmsgV2FnZ29uZXIpClNvbHV0aW9uOiAgIERvbid0IGFkZCBhIGNvbW1hIHdoZW4gdGhlIGFkZGVkIHZhbHVlIGlzIGVtcHR5LgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjA5MCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBNaW5nVyBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgI3ByYWdtYXMuIChCaWxsIE1jQ2FydGh5KQpTb2x1dGlvbjogICBQdXQgYW4gI2lmZGVmIGFyb3VuZCB0aGUgI3ByYWdtYXMuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMi4wOTEKUHJvYmxlbTogICAgV2hlbiBhbiBhdXRvY29tbWFuZCBpcyB0cmlnZ2VyZWQgd2hlbiBhIGZpbGUgaXMgZHJvcHBlZCBvbiBWaW0gYW5kCgkgICAgaXQgcHJvZHVjZXMgb3V0cHV0LCBtZXNzYWdlcyBmcm9tIGEgZm9sbG93aW5nIGNvbW1hbmQgbWF5IGJlCgkgICAgc2Nyb2xsZWQgdW5leHBlY3RlZGx5LiAoRGF2aWQgUmVubmFsbHMpClNvbHV0aW9uOiAgIFNhdmUgYW5kIHJlc3RvcmUgbXNnX3Njcm9sbCBpbiBoYW5kbGVfZHJvcCgpLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjIuMDkyClByb2JsZW06ICAgIEludmFsaWQgaXRlbXMgYXBwZWFyIGluIHRoZSBoZWxwIGZpbGUgdGFncy4gKEFudG9uaW8gQ29sb21ibykKU29sdXRpb246ICAgT25seSBhY2NlcHQgdGFncyB3aXRoIHdoaXRlIHNwYWNlIGJlZm9yZSB0aGUgZmlyc3QgIioiLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2RvY3RhZ3MuYywgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4yLjA5MwpQcm9ibGVtOiAgICAiOm5ub3JlbWVudSIgYWxzbyBkZWZpbmVzIG1lbnUgZm9yIFZpc3VhbCBtb2RlLiAoS2xhdXMgQm9zYXUpClNvbHV0aW9uOiAgIENoZWNrIHRoZSBzZWNvbmQgY29tbWFuZCBjaGFyYWN0ZXIgZm9yIGFuICJvIiwgbm90IHRoZSB0aGlyZC4KRmlsZXM6CSAgICBzcmMvbWVudS5jCgpQYXRjaCA2LjIuMDk0ClByb2JsZW06ICAgIENhbid0IGNvbXBpbGUgd2l0aCBHVEsgYW5kIHRpbnkgZmVhdHVyZXMuClNvbHV0aW9uOiAgIEluY2x1ZGUgaGFuZGxlX2Ryb3AoKSBhbmQgdmltX2NoZGlyZmlsZSgpIHdoZW4gRkVBVF9ETkQgaXMgZGVmaW5lZC4KCSAgICBEbyBub3QgdHJ5IHRvIHNwbGl0IHRoZSB3aW5kb3cuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9taXNjMi5jCgpQYXRjaCA2LjIuMDk1ClByb2JsZW06ICAgIFRoZSBtZXNzYWdlICJDYW5ub3QgZ28gdG8gYnVmZmVyIHgiIGlzIGNvbmZ1c2luZyBmb3IgIjpidWYgNiIuCgkgICAgKEZyYW5zIEVuZ2xpY2gpClNvbHV0aW9uOiAgIE1ha2UgaXQgIkJ1ZmZlciB4IGRvZXMgbm90IGV4aXN0Ii4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMi4wOTYKUHJvYmxlbTogICAgV2luMzI6ICI6bGV0IEAqID0gJyciIHB1dCBhIG5ld2xpbmUgb24gdGhlIGNsaXBib2FyZC4gKEtsYXVzCgkgICAgQm9zYXUpClNvbHV0aW9uOiAgIFB1dCB6ZXJvIGJ5dGVzIG9uIHRoZSBjbGlwYm9hcmQgZm9yIGFuIGVtcHR5IHN0cmluZy4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMi4wOTcKUHJvYmxlbTogICAgU2V0dGluZyBvciByZXNldHRpbmcgJ2luc2VydG1vZGUnIGluIGEgQnVmRW50ZXIgYXV0b2NvbW1hbmQKCSAgICBkb2Vzbid0IGFsd2F5cyBoYXZlIGltbWVkaWF0ZSBlZmZlY3QuIChOYWdnZXIpClNvbHV0aW9uOiAgIFdoZW4gJ2luc2VydG1vZGUnIGlzIHNldCwgc2V0IG5lZWRfc3RhcnRfaW5zZXJ0bW9kZSwgd2hlbiBpdCdzCgkgICAgcmVzZXQgc2V0IHN0b3BfaW5zZXJ0X21vZGUuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuMDk4IChhZnRlciA2LjIuMDk3KQpQcm9ibGVtOiAgICBDYW4ndCBidWlsZCBWaW0gd2l0aCB0aW55IGZlYXR1cmVzLiAoQ2hyaXN0aWFuIEouIFJvYmluc29uKQpTb2x1dGlvbjogICBEZWNsYXJlIHN0b3BfaW5zZXJ0X21vZGUgYWx3YXlzLgpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9nbG9iYWxzLmgKClBhdGNoIDYuMi4wOTkgKGV4dHJhKQpQcm9ibGVtOiAgICBUZXN0IDQ5IGZhaWxzLiAoTWlrb2xhaiBNYWNob3dza2kpClNvbHV0aW9uOiAgIFRoZSBQb2xpc2ggdHJhbnNsYXRpb24gbXVzdCBub3QgY2hhbmdlICJFMTE2IiB0byAiUjExNiIuCkZpbGVzOgkgICAgc3JjL3BvL3BsLnBvCgpQYXRjaCA2LjIuMTAwClByb2JsZW06ICAgICJtYWtlIHByb3RvIiBmYWlscyB3aGVuIGNvbXBpbGVkIHdpdGggdGhlIFBlcmwgaW50ZXJmYWNlLgpTb2x1dGlvbjogICBSZW1vdmUgIi1mbm8uKiIgZnJvbSBQRVJMX0NGTEFHUywgY3Byb3RvIHNlZXMgaXQgYXMgaXRzIG9wdGlvbi4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMi4xMDEKUHJvYmxlbTogICAgV2hlbiB1c2luZyBzeW50YXggZm9sZGluZywgb3BlbmluZyBhIGZpbGUgc2xvd3MgZG93biBhIGxvdCB3aGVuCgkgICAgaXQncyBzaXplIGluY3JlYXNlcyBieSBvbmx5IDIwJS4gKEdhcnkgSm9obnNvbikKU29sdXRpb246ICAgVGhlIGFycmF5IHdpdGggY2FjaGVkIHN5bnRheCBzdGF0ZXMgaXMgbGVha2luZyBlbnRyaWVzLiAgQWZ0ZXIKCSAgICBjbGVhbmluZyB1cCB0aGUgbGlzdCBvYnRhaW4gdGhlIGN1cnJlbnQgZW50cnkgYWdhaW4uCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjIuMTAyClByb2JsZW06ICAgIFRoZSBtYWNyb3MgZXF1YWwoKSBhbmQgQ1IgY29uZmxpY3Qgd2l0aCBhIENhcmJvbiBoZWFkZXIgZmlsZS4KU29sdXRpb246ICAgUmVuYW1lIGVxdWFsKCkgdG8gZXF1YWxwb3MoKS4gIFJlbmFtZSBDUiB0byBDQVIuCgkgICAgRG8gdGhpcyBpbiB0aGUgbm9uLWV4dHJhIGZpbGVzIG9ubHkuCkZpbGVzOgkgICAgc3JjL2FzY2lpLmgsIHNyYy9idWZmZXIuYywgc3JjL2NoYXJzZXQuYywgc3JjL2VkaXQuYywgc3JjL2V2YWwuYywKCSAgICBzcmMvZXhfY21kcy5jLCBzcmMvZXhfY21kczIuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9maWxlaW8uYywKCSAgICBzcmMvZ2V0Y2hhci5jLCBzcmMvZ3VpLmMsIHNyYy9ndWlfYXRoZW5hLmMsIHNyYy9ndWlfZ3RrX3gxMS5jLAoJICAgIHNyYy9ndWlfbW90aWYuYywgc3JjL21hY3Jvcy5oLCBzcmMvbWFyay5jLCBzcmMvbWVzc2FnZS5jLAoJICAgIHNyYy9taXNjMS5jLCBzcmMvbWlzYzIuYywgc3JjL25vcm1hbC5jLCBzcmMvb3BzLmMsIHNyYy9vc191bml4LmMsCgkgICAgc3JjL3JlZ2V4cC5jLCBzcmMvc2VhcmNoLmMsIHNyYy91aS5jLCBzcmMvd29ya3Nob3AuYwoKUGF0Y2ggNi4yLjEwMyAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBtYWNyb3MgZXF1YWwoKSBhbmQgQ1IgY29uZmxpY3Qgd2l0aCBhIENhcmJvbiBoZWFkZXIgZmlsZS4KU29sdXRpb246ICAgUmVuYW1lIGVxdWFsKCkgdG8gZXF1YWxwb3MoKS4gIFJlbmFtZSBDUiB0byBDQVIuCgkgICAgRG8gdGhpcyBpbiB0aGUgZXh0cmEgZmlsZXMgb25seS4KRmlsZXM6CSAgICBzcmMvZ3VpX3Bob3Rvbi5jLCBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjIuMTA0ClByb2JsZW06ICAgIFVubWF0Y2hlZCBicmFjZXMgaW4gdGhlIHRhYmxlIHdpdGggb3B0aW9ucy4KU29sdXRpb246ICAgTW92ZSB0aGUgIn0sIiBvdXRzaWRlIG9mIHRoZSAjaWZkZWYuIChZYWtvdiBMZXJuZXIpCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuMTA1ClByb2JsZW06ICAgIFdoZW4gdGhlIGN1cnNvciBpcyBwYXN0IHRoZSBlbmQgb2YgdGhlIGxpbmUgd2hlbiBjYWxsaW5nCgkgICAgZ2V0X2NfaW5kZW50KCkgYSBjcmFzaCBtaWdodCBvY2N1ci4KU29sdXRpb246ICAgRG9uJ3QgbG9vayBwYXN0IHRoZSBlbmQgb2YgdGhlIGxpbmUuIChOSiBWZXJlbmluaSkKRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4yLjEwNgpQcm9ibGVtOiAgICBUYWcgc2VhcmNoaW5nIGdldHMgc3R1Y2sgb24gYSB2ZXJ5IGxvbmcgbGluZSBpbiB0aGUgdGFncyBmaWxlLgpTb2x1dGlvbjogICBXaGVuIHNraXBwaW5nIGJhY2sgdG8gc2VhcmNoIHRoZSBmaXJzdCBtYXRjaGluZyB0YWcgcmVtZW1iZXIgdGhlCgkgICAgb2Zmc2V0IHdoZXJlIHNlYXJjaGluZyBzdGFydGVkIGxvb2tpbmcgZm9yIGEgbGluZSBicmVhay4KRmlsZXM6CSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMi4xMDcgKGV4dHJhKQpQcm9ibGVtOiAgICBUaGUgTmV0QmVhbnMgaW50ZXJmYWNlIGNhbm5vdCBiZSB1c2VkIG9uIFdpbjMyLgpTb2x1dGlvbjogICBBZGQgc3VwcG9ydCBmb3IgdGhlIE5ldEJlYW5zIGZvciBXaW4zMi4gIEFkZCBzdXBwb3J0IGZvciByZWFkaW5nCgkgICAgWFBNIGZpbGVzIG9uIFdpbjMyLiAgQWxzbyBmaXhlcyB0aGF0IGEgc2lnbiBpY29uIHdpdGggYSBzcGFjZSBpbgoJICAgIHRoZSBmaWxlIG5hbWUgZGlkIG5vdCB3b3JrIHRocm91Z2ggdGhlIE5ldEJlYW5zIGludGVyZmFjZS4KCSAgICAoU2VyZ2V5IEtob3JldikKCSAgICBBbHNvOiBhdm9pZCByZXBlYXRpbmcgZXJyb3IgbWVzc2FnZXMgd2hlbiB0aGUgY29ubmVjdGlvbiBpcyBsb3N0LgpGaWxlczoJICAgIE1ha2VmaWxlLCBydW50aW1lL2RvYy9uZXRiZWFucy50eHQsIHNyYy9NYWtlX2JjNS5tYWssCgkgICAgc3JjL01ha2VfY3lnLm1haywgc3JjL01ha2VfbWluZy5tYWssIHNyYy9NYWtlX212Yy5tYWssCgkgICAgc3JjL2JpZ3ZpbS5iYXQsIHNyYy9mZWF0dXJlLmgsIHNyYy9ndWlfYmV2YWwuYywgc3JjL2d1aV9iZXZhbC5oLAoJICAgIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMsIHNyYy9tZW51LmMsIHNyYy9uYmRlYnVnLmMsCgkgICAgc3JjL25iZGVidWcuaCwgc3JjL25ldGJlYW5zLmMsIHNyYy9vc19tc3dpbi5jLCBzcmMvb3Nfd2luMzIuaCwKCSAgICBzcmMvcHJvdG8vZ3VpX2JldmFsLnBybywgc3JjL3Byb3RvL2d1aV93MzIucHJvLAoJICAgIHNyYy9wcm90by9uZXRiZWFucy5wcm8sIHNyYy9wcm90by5oLCBzcmMvdmVyc2lvbi5jLCBzcmMvdmltLmgsCgkgICAgc3JjL3hwbV93MzIuYywgc3JjL3hwbV93MzIuaAoKUGF0Y2ggNi4yLjEwOApQcm9ibGVtOiAgICBDcmFzaCB3aGVuIGdpdmluZyBhIG1lc3NhZ2UgYWJvdXQgaWdub3JpbmcgY2FzZSBpbiBhIHRhZy4gKE1hbmZyZWQKCSAgICBLdWVobikKU29sdXRpb246ICAgVXNlIGEgbG9uZ2VyIGJ1ZmZlciBmb3IgdGhlIG1lc3NhZ2UuCkZpbGVzOgkgICAgc3JjL3RhZy5jCgpQYXRjaCA2LjIuMTA5ClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmdzIHdpdGggdmFyaW91cyBBbWlnYSBjb21waWxlcnMuClNvbHV0aW9uOiAgIEFkZCB0eXBlY2FzdCwgcHJvdG90eXBlcywgZXQgYWwuIHRoYXQgYXJlIGFsc28gdXNlZnVsIGZvciBvdGhlcgoJICAgIHN5c3RlbXMuICAoRmxhdmlvIFN0YW5jaGluYSkKRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvb3BzLmMKClBhdGNoIDYuMi4xMTAKUHJvYmxlbTogICAgV2hlbiAkTEFORyBpbmNsdWRlcyB0aGUgZW5jb2RpbmcsIGEgbWVudSB3aXRob3V0IGFuIGVuY29kaW5nIG5hbWUKCSAgICBpcyBub3QgZm91bmQuClNvbHV0aW9uOiAgIEFsc28gbG9vayBmb3IgYSBtZW51IGZpbGUgd2l0aG91dCBhbnkgZW5jb2RpbmcuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4yLjExMQpQcm9ibGVtOiAgICBFbmNvZGluZyAiY3AxMjUxIiBpcyBub3QgcmVjb2duaXplZC4KU29sdXRpb246ICAgQWRkICJjcDEyNTEiIHRvIHRoZSB0YWJsZSBvZiBlbmNvY2luZ3MuIChBbGV4ZXkgRnJvbG9mZikKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjExMgpQcm9ibGVtOiAgICBBZnRlciBhcHBseWluZyBwYXRjaGVzIHRlc3QzMiBmYWlscy4gKEFudG9uaW8gQ29sb21ibykKU29sdXRpb246ICAgSGF2ZSAibWFrZSBjbGVhbiIgaW4gdGhlIHRlc3RkaXIgZGVsZXRlICoucmVqIGFuZCAqLm9yaWcgZmlsZXMuCgkgICAgVXNlIHRoaXMgd2hlbiBkb2luZyAibWFrZSBjbGVhbiIgaW4gdGhlIHNyYyBkaXJlY3RvcnkuCkZpbGVzOgkgICAgc3JjL01ha2VmaWxlLCBzcmMvdGVzdGRpci9NYWtlZmlsZQoKUGF0Y2ggNi4yLjExMwpQcm9ibGVtOiAgICBVc2luZyAiOnN0YXJ0aW5zZXJ0IiBhZnRlciAiJCIgd29ya3MgbGlrZSAiYSIgaW5zdGVhZCBvZiAiaSIuCgkgICAgKEFqaXQgVGhha2thcikKU29sdXRpb246ICAgUmVzZXQgIndfY3Vyc3dhbnQiIGZvciAiOnN0YXJ0aW5zZXJ0IiBhbmQgcmVzZXQgb19lb2wgaW4gZWRpdCgpLgpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjIuMTE0ClByb2JsZW06ICAgIFdoZW4gc3Rkb3V0IGlzIHBpcGVkIHRocm91Z2ggInRlZSIsIHRoZSBzaXplIG9mIHRoZSBzY3JlZW4gbWF5IG5vdAoJICAgIGJlIGNvcnJlY3QuClNvbHV0aW9uOiAgIFVzZSBzdGRpbiBpbnN0ZWFkIG9mIHN0ZG91dCBmb3IgaW9jdGwoKSB3aGVuIHN0ZGluIGlzIGEgdHR5IGFuZAoJICAgIHN0ZG91dCBpc24ndC4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuMTE1IChleHRyYSkKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZ3Mgd2l0aCB2YXJpb3VzIEFtaWdhIGNvbXBpbGVycy4KU29sdXRpb246ICAgQWRkIHR5cGVjYXN0LCBwcm90b3R5cGVzLCBldCBhbC4gIFRob3NlIGNoYW5nZXMgdGhhdCBhcmUKCSAgICBBbWlnYS1zcGVjaWZpYy4gKEZsYXZpbyBTdGFuY2hpbmEpCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvbWVtZmlsZS5jLCBzcmMvb3NfYW1pZ2EuYywgc3JjL29zX2FtaWdhLmgsCgkgICAgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMTE2IChleHRyYSkKUHJvYmxlbTogICAgR2VybWFuIGtleWJvYXJkIHdpdGggTnVtbG9jayBzZXQgZGlmZmVyZW50IGZyb20gc3lzdGVtIHN0YXJ0dXAKCSAgICBjYXVzZXMgcHJvYmxlbXMuClNvbHV0aW9uOiAgIElnbm9yZSBrZXlzIHdpdGggY29kZSAweGZmLiAoSGVsbXV0IFN0aWVnbGVyKQpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMi4xMTcKUHJvYmxlbTogICAgQnJlYWtwb2ludHMgaW4gbG9vcHMgb2Ygc291cmNlZCBmaWxlcyBhbmQgZnVuY3Rpb25zIGFyZSBub3QKCSAgICBkZXRlY3RlZC4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYnJlYWtwb2ludHMgd2hlbiB1c2luZyBsaW5lcyB0aGF0IHdlcmUgcHJldmlvdXNseSByZWFkLgoJICAgIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9leF9jbWRzMi5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL3Byb3RvL2V2YWwucHJvLAoJICAgIHNyYy9wcm90by9leF9jbWRzMi5wcm8KClBhdGNoIDYuMi4xMTggKGV4dHJhKQpQcm9ibGVtOiAgICBNYWM6IENvbXBpbGluZyBpcyBkb25lIGluIGEgbm9uLXN0YW5kYXJkIHdheS4KU29sdXRpb246ICAgVXNlIHRoZSBVbml4IG1ldGhvZCBmb3IgTWFjIE9TIFgsIHdpdGggYXV0b2NvbmYuICBBZGQgIkNBUkJPTkdVSSIKCSAgICB0byBNYWtlZmlsZSBhbmQgY29uZmlndXJlLiAoRXJpYyBLb3cpCgkgICAgTW92ZSBhIGZldyBwcm90b3R5cGVzIGZyb20gb3NfbWFjLnBybyB0byBndWlfbWFjLnByby4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUsIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwKCSAgICBzcmMvY29uZmlnLm1rLmluLCBzcmMvZ3VpX21hYy5jLCBzcmMvb3NfbWFjLmgsIHNyYy9vc19tYWNvc3guYywKCSAgICBzcmMvcHJvdG8vZ3VpX21hYy5wcm8sIHNyYy9wcm90by9vc19tYWMucHJvLAoJICAgIHNyYy9pbmZwbGlzdC54bWwsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjExOSAoYWZ0ZXIgNi4yLjEwNykKUHJvYmxlbTogICAgV2hlbiBwYWNraW5nIHRoZSBNUy1XaW5kb3dzIGFyY2hpdmVzIGEgZmV3IGZpbGVzIGFyZSBtaXNzaW5nLgoJICAgIChHdW9wZW5nIFdlbikKU29sdXRpb246ICAgQWRkIGd1aV9iZXZhbC4qIHRvIHRoZSBsaXN0IG9mIGdlbmVyaWMgc291cmNlIGZpbGVzLgpGaWxlczoJICAgIE1ha2VmaWxlCgpQYXRjaCA2LjIuMTIwClByb2JsZW06ICAgIFdpbjMyIEdVSTogVGhlIGNvbnNvbGUgZGlhbG9ncyBhcmUgbm90IHN1cHBvcnRlZCBvbiBNUy1XaW5kb3dzLAoJICAgIGRpc2FibGluZyB0aGUgJ2MnIGZsYWcgb2YgJ2d1aW9wdGlvbnMnLiAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgRGVmaW5lIEZFQVRfQ09OX0RJQUxPRyBhbHNvIGZvciBHVUktb25seSBidWlsZHMuCkZpbGVzOgkgICAgc3JjL2ZlYXR1cmUuaAoKUGF0Y2ggNi4yLjEyMSAoYWZ0ZXIgNi4yLjExOCkKUHJvYmxlbTogICAgTm90IGFsbCBtYWtlIHByb2dyYW1zIHN1cHBvcnQgIis9Ii4gKENoYXJsZXMgQ2FtcGJlbGwpClNvbHV0aW9uOiAgIFVzZSBhIG5vcm1hbCBhc3NpZ25tZW50LgpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4yLjEyMiAoYWZ0ZXIgNi4yLjExOSkKUHJvYmxlbTogICAgTm90IGFsbCBzaGVsbHMgY2FuIGV4cGFuZCBbXn5dLiAgRmlsZSBtaXNzaW5nLiAgKEd1b3BlbmcgV2VuKQpTb2x1dGlvbjogICBVc2UgYSBzaW1wbGVyIHBhdHRlcm4uICBBZGQgdGhlIEFhcCByZWNpcGUgZm9yIHRoZSBtYXplIHByb2dyYW0KCSAgICBhbmQgYSBjbGVhbiB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UgY29kZS4KRmlsZXM6CSAgICBNYWtlZmlsZSwgcnVudGltZS9tYWNyb3MvbWF6ZS9NYWtlZmlsZSwKCSAgICBydW50aW1lL21hY3Jvcy9tYXplL1JFQURNRS50eHQsIHJ1bnRpbWUvbWFjcm9zL21hemUvbWFpbi5hYXAsCgkgICAgcnVudGltZS9tYWNyb3MvbWF6ZS9tYXplY2xlYW4uYwoKUGF0Y2ggNi4yLjEyMyAoYWZ0ZXIgNi4yLjExOCkKUHJvYmxlbTogICAgUnVubmluZyBjb25maWd1cmUgZmFpbHMuIChUb255IExlbmVpcykKU29sdXRpb246ICAgQ2hhbmdlICI9PSIgdG8gIj0iIGZvciBhIHRlc3QuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjIuMTI0IChhZnRlciA2LjIuMTIxKShleHRyYSkKUHJvYmxlbTogICAgTWFjOiBSZWN1cnNpdmUgdXNlIG9mIE00RkxBR1MgY2F1c2VzIHByb2JsZW1zLiAgV2hlbiBydW5uaW5nIFZpbQoJICAgIGRpcmVjdGx5IGl0IGNhbid0IGZpbmQgdGhlIHJ1bnRpbWUgZmlsZXMuICAoRW1pbHkgSmFja3NvbikKCSAgICBVc2luZyBHTlUgY29uc3RydWN0cyBjYXVzZXMgd2FybmluZ3Mgd2l0aCBvdGhlciBtYWtlIHByb2dyYW1zLgoJICAgIChSb25hbGQgU2NoaWxkKQpTb2x1dGlvbjogICBVc2UgYW5vdGhlciBuYW1lIGZvciB0aGUgTTRGTEFHUyB2YXJpYWJsZS4KCSAgICBEb24ndCByZW1vdmUgIlZpbS5hcHAiIGZyb20gdGhlIHBhdGguCgkgICAgVXBkYXRlIHRoZSBleHBsYW5hdGlvbiBmb3IgY29tcGlsaW5nIG9uIHRoZSBNYWMuIChFcmljIEtvdykKCSAgICBEb24ndCB1c2UgJChzaGVsbCApIGFuZCAkKGFkZHByZWZpeCApLgpGaWxlczoJICAgIHNyYy9JTlNUQUxMbWFjLnR4dCwgc3JjL01ha2VmaWxlLCBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4yLjEyNSAoYWZ0ZXIgNi4yLjEwNykKUHJvYmxlbTogICAgVGhlICJ3aW5zb2NrMi5oIiBmaWxlIGlzbid0IGFsd2F5cyBhdmFpbGFibGUuClNvbHV0aW9uOiAgIERvbid0IGluY2x1ZGUgdGhpcyBoZWFkZXIgZmlsZS4KRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4yLjEyNgpQcm9ibGVtOiAgICBUeXBpbmcgQ1RSTC1DIGF0IGEgY29uZmlybSgpIHByb21wdCBkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi4KU29sdXRpb246ICAgUmVzZXQgIm1hcHBlZF9jdHJsX2MiIGluIGdldF9rZXlzdHJva2UoKSwgc28gdGhhdCAiZ290X2ludCIgaXMgc2V0CgkgICAgaW4gX09uQ2hhcigpLgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjIuMTI3IChleHRyYSkKUHJvYmxlbTogICAgV2luMzIgY29uc29sZTogVHlwaW5nIENUUkwtQyBkb2Vzbid0IHRocm93IGFuIGV4Y2VwdGlvbi4KU29sdXRpb246ICAgU2V0IGdvdF9pbnQgaW1tZWRpYXRlbHkgd2hlbiBDVFJMLUMgaXMgdHlwZWQsIGRvbid0IHdhaXQgZm9yCgkgICAgbWNoX2JyZWFrY2hlY2soKSBiZWluZyBjYWxsZWQuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMi4xMjggKGFmdGVyIDYuMi4xMTgpClByb2JsZW06ICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSBpcyBub3QgY29uc2lzdGVudCB3aXRoIHNyYy9jb25maWd1cmUuaW4uClNvbHV0aW9uOiAgIFVzZSB0aGUgbmV3bHkgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlCgpQYXRjaCA2LjIuMTI5ClByb2JsZW06ICAgIFdoZW4gJ251bWJlcicgaXMgc2V0ICd3cmFwbWFyZ2luJyBkb2VzIG5vdCB3b3JrIFZpLWNvbXBhdGlibGUuCgkgICAgKFlhc3VoaXJvIE1hdHN1bW90bykKU29sdXRpb246ICAgUmVkdWNlIHRoZSB0ZXh0d2lkdGggd2hlbiAnbnVtYmVyJyBpcyBzZXQuICBBbHNvIGZvciAnZm9sZGNvbHVtbicKCSAgICBhbmQgc2ltaWxhciB0aGluZ3MuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4yLjEzMCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyIGNvbnNvbGU6IFdoZW4gJ3Jlc3RvcmVzY3JlZW4nIGlzIG5vdCBzZXQgZXhpdGluZyBWaW0gY2F1c2VzCgkgICAgdGhlIHNjcmVlbiB0byBiZSBjbGVhcmVkLiAoTWljaGFlbCBBLiBNYW5naW5vKQpTb2x1dGlvbjogICBEb24ndCBjbGVhciB0aGUgc2NyZWVuIHdoZW4gZXhpdGluZyBhbmQgJ3Jlc3RvcmVzY3JlZW4nIGlzbid0IHNldC4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjEzMSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBGb250IGhhbmRsZXMgYXJlIGxlYWtlZC4KU29sdXRpb246ICAgRnJlZSBpdGFsaWMsIGJvbGQgYW5kIGJvbGQtaXRhbGljIGhhbmRsZXMgYmVmb3JlIG92ZXJ3cml0aW5nIHRoZW0uCgkgICAgKE1pY2hhZWwgV29va2V5KQpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMi4xMzIgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogY29uc29sZSB2ZXJzaW9uIGRvZXNuJ3Qgd29yayBvbiBsYXRlc3QgV2luZG93cyBTZXJ2ZXIgMjAwMy4KU29sdXRpb246ICAgQ29weSAxMjAwMCBpbnN0ZWFkIG9mIDE1MDAwIGNlbGxzIGF0IGEgdGltZSB0byBhdm9pZCBydW5uaW5nIG91dAoJICAgIG9mIG1lbW9yeS4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjEzMwpQcm9ibGVtOiAgICBXaGVuIHN0YXJ0aW5nIHRoZSBHVUkgYSBib2d1cyBlcnJvciBtZXNzYWdlIGFib3V0ICdpbWFjdGl2YXRla2V5JwoJICAgIG1heSBiZSBnaXZlbi4KU29sdXRpb246ICAgT25seSBjaGVjayB0aGUgdmFsdWUgb2YgJ2ltYWN0aXZhdGVrZXknIHdoZW4gdGhlIEdVSSBpcyBydW5uaW5nLgpGaWxlczoJICAgIHNyYy9ndWkuYywgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuMTM0IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gc2Nyb2xsaW5nIHBhcnRzIG9mIHRoZSB3aW5kb3cgYXJlIHJlZHJhd24gd2hlbiB0aGlzCgkgICAgaXNuJ3QgbmVjZXNzYXJ5LgpTb2x1dGlvbjogICBPbmx5IGludmFsaWRhdGUgcGFydHMgb2YgdGhlIHdpbmRvdyB3aGVuIHRoZXkgYXJlIG9ic2N1cmVkIGJ5CgkgICAgb3RoZXIgd2luZG93cy4gKE1pY2hhZWwgV29va2V5KQpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMi4xMzUKUHJvYmxlbTogICAgQW4gaXRlbSA8PiBpbiB0aGUgIjpjb21tYW5kIiBhcmd1bWVudCBpcyBpbnRlcnByZXRlZCBhcyA8YXJncz4uClNvbHV0aW9uOiAgIEF2b2lkIHRoYXQgPD4gaXMgcmVjb2duaXplZCBhcyA8YXJncz4uCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMi4xMzYKUHJvYmxlbTogICAgIjplICsrZW5jPWxhdGluMSBuZXdmaWxlIiBkb2Vzbid0IHNldCAnZmVuYycgd2hlbiB0aGUgZmlsZSBkb2Vzbid0CgkgICAgZXhpc3QuICAoTWlyb3NsYXcgRG9icnphbnNraS1OZXVtYW5uKQpTb2x1dGlvbjogICBTZXQgJ2ZpbGVlbmNvZGluZycgdG8gdGhlIHNwZWNpZmllZCBlbmNvZGluZyB3aGVuIGVkaXRpbmcgYSBmaWxlCgkgICAgdGhhdCBkb2VzIG5vdCBleGlzdC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi4xMzcKUHJvYmxlbTogICAgImQ6Y21kPENSPiIgY2Fubm90IGJlIHJlcGVhdGVkIHdpdGggIi4iLiAgQnJlYWtzIHJlcGVhdGluZyAiZCUiCgkgICAgd2hlbiB1c2luZyB0aGUgbWF0Y2hpdCBwbHVnaW4uClNvbHV0aW9uOiAgIFN0b3JlIHRoZSBjb21tYW5kIHRvIGJlIHJlcGVhdGVkLiAgVGhpcyBpcyByZXN0cmljdGVkIHRvCgkgICAgc2luZ2xlLWxpbmUgY29tbWFuZHMuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9ub3JtYWwuYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMTM4IChleHRyYSkKUHJvYmxlbTogICAgQ29tcGlsYXRpb24gcHJvYmxlbSBvbiBWTVMgd2l0aCBkeW5hbWljIGJ1ZmZlciBvbiB0aGUgc3RhY2suClNvbHV0aW9uOiAgIFJlYWQgb25lIGJ5dGUgbGVzcyB0aGFuIHRoZSBzaXplIG9mIHRoZSBidWZmZXIsIHNvIHRoYXQgd2UgY2FuCgkgICAgY2hlY2sgZm9yIHRoZSBzdHJpbmcgbGVuZ3RoIHdpdGhvdXQgYW4gZXh0cmEgYnVmZmVyLgpGaWxlczoJICAgIHNyYy9vc192bXMuYwoKUGF0Y2ggNi4yLjEzOQpQcm9ibGVtOiAgICBDb2RlIGlzIHJlcGVhdGVkIGluIHRoZSB0d28gUGVybCBmaWxlcy4KU29sdXRpb246ICAgTW92ZSBjb21tb24gY29kZSBmcm9tIGlmX3BlcmwueHMgYW5kIGlmX3BlcmxzZmlvLmMgdG8gdmltLmguCgkgICAgQWxzbyBmaXggYSBwcm9ibGVtIHdpdGggZ2VuZXJhdGluZyBwcm90b3R5cGVzLgpGaWxlczoJICAgIHNyYy9pZl9wZXJsLnhzLCBzcmMvaWZfcGVybHNmaW8uYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMTQwIChhZnRlciA2LjIuMTIxKQpQcm9ibGVtOiAgICBNYWM6IENvbXBpbGluZyB3aXRoIFB5dGhvbiBhbmQgUGVybCBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgY29uZmlndXJlIGNoZWNrIGZvciBQeXRob24gdG8gdXNlICItZnJhbWV3b3JrIFB5dGhvbiIKCSAgICBmb3IgUHl0aG9uIDIuMyBvbiBNYWMgT1MvWC4KCSAgICBNb3ZlICItbGRsIiBhZnRlciAiRHluYUxvYWRlci5hIiBpbiB0aGUgbGluayBjb21tYW5kLgoJICAgIENoYW5nZSAicGVybGxpYnMiIHRvICJQRVJMX0xJQlMiLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2NvbmZpZy5tay5pbgoKUGF0Y2ggNi4yLjE0MSAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogVGhlIGJfRlNTcGVjIGZpZWxkIGlzIHNvbWV0aW1lcyB1bnVzZWQuClNvbHV0aW9uOiAgIENoYW5nZSB0aGUgI2lmZGVmIHRvIEZFQVRfQ1dfRURJVE9SIGFuZCBkZWZpbmVkIGl0IGluIGZlYXR1cmUuaApGaWxlczoJICAgIHNyYy9maWxlaW8uYywgc3JjL2d1aV9tYWMuYywgc3JjL3N0cnVjdHMuaCwgc3JjL2ZlYXR1cmUuaAoKUGF0Y2ggNi4yLjE0MiAoYWZ0ZXIgNi4yLjEyNCkKUHJvYmxlbTogICAgTWFjOiBidWlsZGluZyB3aXRob3V0IEdVSSB0aHJvdWdoIGNvbmZpZ3VyZSBkb2Vzbid0IHdvcmsuCgkgICAgV2hlbiB0aGUgc3lzdGVtIGlzIHNsb3csIHVucGFja2luZyB0aGUgcmVzb3VyY2UgZmlsZSB0YWtlcyB0b28KCSAgICBsb25nLgpTb2x1dGlvbjogICBEb24ndCBhbHdheXMgZGVmaW5lIEZFQVRfR1VJX01BQyB3aGVuIE1BQ09TIGlzIGRlZmluZWQsIGRlZmluZSBpdAoJICAgIGluIHRoZSBNYWtlZmlsZS4KCSAgICBBZGQgYSBjb25maWd1cmUgb3B0aW9uIHRvIHNraXAgRGFyd2luIGRldGVjdGlvbi4KCSAgICBVc2UgYSBQeXRob24gc2NyaXB0IHRvIHVucGFjayB0aGUgcmVzb3VyY2VzIHRvIGF2b2lkIGEgcmFjZQoJICAgIGNvbmRpdGlvbi4gKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBNYWtlZmlsZSwgc3JjL01ha2VmaWxlLCBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sCgkgICAgc3JjL2RlaHF4LnB5LCBzcmMvdmltLmgKClBhdGNoIDYuMi4xNDMKUHJvYmxlbTogICAgVXNpbmcgIksiIG9uIFZpc3VhbGx5IHNlbGVjdGVkIHRleHQgZG9lc24ndCB3b3JrIGlmIGl0IGVuZHMgaW4KCSAgICBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLgpTb2x1dGlvbjogICBJbmNsdWRlIGFsbCB0aGUgYnl0ZXMgb2YgdGhlIGxhc3QgY2hhcmFjdGVyLiAoVGFybyBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjE0NApQcm9ibGVtOiAgICBXaGVuICJnOmh0bWxfdXNlX2NzcyIgaXMgc2V0IHRoZSBIVE1MIGhlYWRlciBnZW5lcmF0ZWQgYnkgdGhlCgkgICAgMmh0bWwgc2NyaXB0IGlzIHdyb25nLgpTb2x1dGlvbjogICBBZGQgdGhlIGhlYWRlciBhZnRlciBhZGRpbmcgSFJFRiBmb3IgbGlua3MuCgkgICAgQWxzbyB1c2UgIjpub3JtYWwhIiBpbnN0ZWFkIG9mICI6bm9ybWFsIiB0byBhdm9pZCBtYXBwaW5ncwoJICAgIGdldHRpbmcgaW4gdGhlIHdheS4KRmlsZXM6CSAgICBydW50aW1lL3N5bnRheC8yaHRtbC52aW0KClBhdGNoIDYuMi4xNDUgKGFmdGVyIDYuMi4xMzkpClByb2JsZW06ICAgIFVuZGVmaW5pbmcgImJvb2wiIGRvZXNuJ3Qgd29yayBmb3Igb2xkZXIgc3lzdGVtcy4gKFdvanRlayBQaWxvcnopClNvbHV0aW9uOiAgIE9ubHkgdW5kZWZpbmUgImJvb2wiIG9uIE1hYyBPUy4KRmlsZXM6CSAgICBzcmMvdmltLmgKClBhdGNoIDYuMi4xNDYKUHJvYmxlbTogICAgT24gc29tZSBzeXN0ZW1zIHRoZSBwcm90b3R5cGUgZm9yIGljb252KCkgaXMgd3JvbmcsIGNhdXNpbmcgYQoJICAgIHdhcm5pbmcgbWVzc2FnZS4KU29sdXRpb246ICAgVXNlIGEgY2FzdCAodm9pZCAqKSB0byBhdm9pZCB0aGUgd2FybmluZy4gKENoYXJsZXMgQ2FtcGJlbGwpCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjE0NwpQcm9ibGVtOiAgICAiOnMvcGF0L1w9Y29sKCcuJykiIGFsd2F5cyByZXBsYWNlcyB3aXRoICIxIi4KU29sdXRpb246ICAgU2V0IHRoZSBjdXJzb3IgdG8gdGhlIHN0YXJ0IG9mIHRoZSBtYXRjaCBiZWZvcmUgc3Vic3RpdHV0aW5nLgoJICAgIChIZWxtdXQgU3RpZWdsZXIpCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4yLjE0OApQcm9ibGVtOiAgICBDYW4ndCBicmVhayBhbiBJbnNlcnQgaW50byBzZXZlcmFsIHVuZG9hYmxlIHBhcnRzLgpTb2x1dGlvbjogICBBZGQgdGhlIENUUkwtRyB1IGNvbW1hbmQuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvaW5zZXJ0LnR4dCwgc3JjL2VkaXQuYwoKUGF0Y2ggNi4yLjE0OQpQcm9ibGVtOiAgICBXaGVuIHRoZSBjdXJzb3IgaXMgb24gYSBsaW5lIHBhc3QgMjEsNDc0LDc0OCB0aGUgaW5kaWNhdGVkCgkgICAgcGVyY2VudGFnZSBvZiB0aGUgcG9zaXRpb24gaXMgaW52YWxpZC4gIFdpdGggdGhhdCBtYW55IGxpbmVzCgkgICAgIjEwMCUiIGNhdXNlcyBhIG5lZ2F0aXZlIGN1cnNvciBsaW5lIG51bWJlciwgcmVzdWx0aW5nIGluIGEgY3Jhc2guCgkgICAgKERhbmllbCBHb3Vqb3QpClNvbHV0aW9uOiAgIERpdmlkZSBieSAxMDAgaW5zdGVhZCBvZiBtdWx0aXBseWluZy4gIEF2b2lkIG92ZXJmbG93IHdoZW4KCSAgICBjb21wdXRpbmcgdGhlIGxpbmUgbnVtYmVyIGZvciAiMTAwJSIuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvZXhfY21kczIuYywgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMTUwClByb2JsZW06ICAgIFdoZW4gZG9pbmcgInZpbSAtIDwgZmlsZSIgbGluZXMgYXJlIGJyb2tlbiBhdCBOVUwgY2hhcnMuCgkgICAgKERhbmllbCBHb3Vqb3QpClNvbHV0aW9uOiAgIENoYW5nZSBOTCBjaGFyYWN0ZXJzIGJhY2sgdG8gTlVMIHdoZW4gcmVhZGluZyBmcm9tIHRoZSB0ZW1wCgkgICAgYnVmZmVyLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4yLjE1MQpQcm9ibGVtOiAgICBXaGVuIGRvaW5nICJ2aW0gLS1yZW1vdGUgK3N0YXJ0aW5zZXJ0IGZpbGUiIHNvbWUgY29tbWFuZHMgYXJlCgkgICAgaW5zZXJ0ZWQgYXMgdGV4dC4gKEtsYXVzIEJvc2F1KQpTb2x1dGlvbjogICBQdXQgYWxsIHRoZSBpbml0IGNvbW1hbmRzIGluIG9uZSBFeCBsaW5lLCBub3QgdXNpbmcgYSA8Q1I+LCBzbwoJICAgIHRoYXQgSW5zZXJ0IG1vZGUgaXNuJ3Qgc3RhcnRlZCB0b28gZWFybHkuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4yLjE1MgpQcm9ibGVtOiAgICBUaGUgY3Vyc29yKCkgZnVuY3Rpb24gZG9lc24ndCByZXNldCB0aGUgY29sdW1uIG9mZnNldCBmb3IKCSAgICAndmlydHVhbGVkaXQnLgpTb2x1dGlvbjogICBSZXNldCB0aGUgb2Zmc2V0IHRvIHplcm8uIChIZWxtdXQgU3RpZWdsZXIpCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yLjE1MwpQcm9ibGVtOiAgICBXaW4zMjogIjpsYW5nIGdlcm1hbiIgZG9lc24ndCB1c2UgR2VybWFuIG1lc3NhZ2VzLgpTb2x1dGlvbjogICBBZGQgYSB0YWJsZSB0byB0cmFuc2xhdGUgdGhlIFdpbjMyIGxhbmd1YWdlIG5hbWVzIHRvIHR3by1sZXR0ZXIKCSAgICBsYW5ndWFnZSBjb2Rlcy4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4yLjE1NApQcm9ibGVtOiAgICBQeXRob24gYmFpbHMgb3V0IHdoZW4gZ2l2aW5nIGEgd2FybmluZyBtZXNzYWdlLiAoRXVnZW5lCgkgICAgTWlua292c2tpaSkKU29sdXRpb246ICAgU2V0IHN5cy5hcmd2W10gdG8gYW4gZW1wdHkgc3RyaW5nLgpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4yLjE1NQpQcm9ibGVtOiAgICBXaW4zMjogVXNpbmcgIjp0anVtcCB3d3ciIGluIGEgaGVscCBmaWxlIGdpdmVzIHR3byByZXN1bHRzLgoJICAgIChEYXZlIFJvYmVydHMpClNvbHV0aW9uOiAgIElnbm9yZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHNsYXNoZXMgYW5kIGJhY2tzbGFzaGVzIHdoZW4gY2hlY2tpbmcKCSAgICBmb3IgaWRlbnRpY2FsIHRhZyBtYXRjaGVzLgpGaWxlczoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjE1NiAoYWZ0ZXIgNi4yLjEyNSkKUHJvYmxlbTogICAgV2luMzI6IE5ldGJlYW5zIGZhaWxzIHRvIGJ1aWxkLCBFSU5UUiBpcyBub3QgZGVmaW5lZC4KU29sdXRpb246ICAgUmVkZWZpbmUgRUlOVFIgdG8gV1NBRUlOVFIuIChNaWtlIFdpbGxpYW1zKQpGaWxlczoJICAgIHNyYy9uZXRiZWFucy5jCgpQYXRjaCA2LjIuMTU3ClByb2JsZW06ICAgIFVzaW5nICIlcCIgaW4gJ2Vycm9yZm9ybWF0JyBnaXZlcyBhIGNvbHVtbiBudW1iZXIgdGhhdCBpcyB0b28KCSAgICBoaWdoLgpTb2x1dGlvbjogICBTZXQgdGhlIGZsYWcgdG8gdXNlIHRoZSBudW1iZXIgYXMgYSB2aXJ0dWFsIGNvbHVtbi4gIChMZWZ0ZXJpcwoJICAgIEtvdXRzb2xvdWthcykKRmlsZXM6CSAgICBzcmMvcXVpY2tmaXguYwoKUGF0Y2ggNi4yLjE1OApQcm9ibGVtOiAgICBUaGUgc2VkIGNvbW1hbmQgb24gU29sYXJpcyBhbmQgSFBVWCBkb2Vzbid0IHdvcmsgZm9yIGEgbGluZSB0aGF0CgkgICAgZG9lc24ndCBlbmQgaW4gYSBuZXdsaW5lLgpTb2x1dGlvbjogICBBZGQgYSBuZXdsaW5lIHdoZW4gZmVlZGluZyB0ZXh0IHRvIHNlZC4gKE1hcmsgV2FnZ29uZXIpCkZpbGVzOgkgICAgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2F1dG8vY29uZmlndXJlCgpQYXRjaCA2LjIuMTU5ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgZXhwcmVzc2lvbiBmb2xkaW5nIGFuZCAnZm9sZG9wZW4nIGlzICJ1bmRvIiBhbiB1bmRvCgkgICAgY29tbWFuZCBkb2Vzbid0IGFsd2F5cyBvcGVuIHRoZSBmb2xkLgpTb2x1dGlvbjogICBTYXZlIGFuZCByZXN0b3JlIHRoZSBLZXlUeXBlZCB2YXJpYWJsZSB3aGVuIGV2YWx1YXRpbmcgJ2ZvbGRleHByJy4KCSAgICAoVGFybyBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9mb2xkLmMKClBhdGNoIDYuMi4xNjAKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzICJhbGwiIGFuZCAnc2VsZWN0aW9uIGlzICJleGNsdXNpdmUiLAoJICAgIHNlbGVjdGluZyBhIGRvdWJsZS13aWR0aCBjaGFyYWN0ZXIgYmVsb3cgYSBzaW5nbGUtd2lkdGggY2hhcmFjdGVyCgkgICAgbWF5IGNhdXNlIGEgY3Jhc2guClNvbHV0aW9uOiAgIEF2b2lkIG92ZXJmbG93IG9uIHVuc2lnbmVkIGludGVnZXIgZGVjcmVtZW50LiAoVGFybyBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjE2MSAoZXh0cmEpClByb2JsZW06ICAgIFZNUzogTWlzc2luZyBoZWFkZXIgZmlsZS4gIFJlYWRpbmcgaW5wdXQgYnVzeSBsb29wcy4KU29sdXRpb246ICAgSW5jbHVkZSB0ZXJtZGVmLmguICBBdm9pZCB0aGUgdXNlIG9mIGEgd2FpdCBmdW5jdGlvbiBpbgoJICAgIHZtc19yZWFkKCkuICAoRnJhbmsgUmllcykKRmlsZXM6CSAgICBzcmMvb3NfdW5peC5oLCBzcmMvb3Nfdm1zLmMKClBhdGNoIDYuMi4xNjIKUHJvYmxlbTogICAgIjpyZWRyYXciIGRvZXNuJ3QgYWx3YXlzIGRpc3BsYXkgdGhlIHRleHQgdGhhdCBpbmNsdWRlcyB0aGUgY3Vyc29yCgkgICAgcG9zaXRpb24sIGUuZy4gYWZ0ZXIgIjpjYWxsIGN1cnNvcigxLCAwKSIuIChFdWdlbmUgTWlua292c2tpaSkKU29sdXRpb246ICAgQ2FsbCB1cGRhdGVfdG9wbGluZSgpIGJlZm9yZSByZWRyYXdpbmcuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMi4xNjMKUHJvYmxlbTogICAgIm1ha2UgaW5zdGFsbCIgbWF5IGFsc28gY29weSBBQVBESVIgZGlyZWN0b3JpZXMuClNvbHV0aW9uOiAgIERlbGV0ZSBBQVBESVIgZGlyZWN0b3JpZXMsIGp1c3QgbGlrZSBDVlMgZGlyZWN0b3JpZXMuCkZpbGVzOgkgICAgc3JjL01ha2VmaWxlCgpQYXRjaCA2LjIuMTY0IChhZnRlciA2LjIuMTQ0KQpQcm9ibGVtOiAgICBXaGVuICJnOmh0bWxfdXNlX2NzcyIgaXMgc2V0IHRoZSBIVE1MIGhlYWRlciBnZW5lcmF0ZWQgYnkgdGhlCgkgICAgMmh0bWwgc2NyaXB0IGlzIHN0aWxsIHdyb25nLgpTb2x1dGlvbjogICBTZWFyY2ggZm9yIGEgc3RyaW5nIGluc3RlYWQgb2YganVtcGluZyB0byBhIGZpeGVkIGxpbmUgbnVtYmVyLgoJICAgIEdvIHRvIHRoZSBzdGFydCBvZiB0aGUgbGluZSBiZWZvcmUgaW5zZXJ0aW5nIHRoZSBoZWFkZXIuCgkgICAgKEplc3MgVGhyeXNvZWUpCkZpbGVzOgkgICAgcnVudGltZS9zeW50YXgvMmh0bWwudmltCgpQYXRjaCA2LjIuMTY1ClByb2JsZW06ICAgIFRoZSBjb25maWd1cmUgY2hlY2tzIGhhbmcgd2hlbiB1c2luZyBhdXRvY29uZiAyLjU3LgpTb2x1dGlvbjogICBJbnZva2UgQUNfUFJPR1JBTV9FR1JFUCB0byBzZXQgJEVHUkVQLiAoQXJvbiBHcmlmZmlzKQpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4yLjE2NgpQcm9ibGVtOiAgICBXaGVuICRHWklQIGNvbnRhaW5zICItTiIgZWRpdGluZyBjb21wcmVzc2VkIGZpbGVzIGRvZXNuJ3Qgd29yawoJICAgIHByb3Blcmx5LgpTb2x1dGlvbjogICBBZGQgIi1uIiB0byAiZ3ppcCAtZCIgdG8gYXZvaWQgcmVzdG9yaW5nIHRoZSBmaWxlIG5hbWUuIChPeXZpbmQKCSAgICBIb2xtKQpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL2d6aXAudmltCgpQYXRjaCA2LjIuMTY3ClByb2JsZW06ICAgIFRoZSBQeXRob24gaW50ZXJmYWNlIGxlYWtzIG1lbW9yeSB3aGVuIGFzc2lnbmluZyBsaW5lcyB0byBhCgkgICAgYnVmZmVyLiAoU2VyZ2V5IEtob3JldikKU29sdXRpb246ICAgRG8gbm90IGNvcHkgdGhlIGxpbmUgd2hlbiBjYWxsaW5nIG1sX3JlcGxhY2UoKS4KRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMi4xNjgKUHJvYmxlbTogICAgUHl0aG9uIGludGVyZmFjZTogVGhlcmUgaXMgbm8gd2F5IHRvIGdldCB0aGUgaW5kaWNlcyBmcm9tIGEgcmFuZ2UKCSAgICBvYmplY3QuClNvbHV0aW9uOiAgIEFkZCB0aGUgInN0YXJ0IiBhbmQgImVuZCIgYXR0cmlidXRlcy4gKE1hdXJpY2UgUy4gQmFybnVtKQpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYywgcnVudGltZS9kb2MvaWZfcHl0aC50eHQKClBhdGNoIDYuMi4xNjkKUHJvYmxlbTogICAgVGhlIHByb3RvdHlwZSBmb3IgX1htYmxlbigpIGFwcGVhcnMgaW4gYSByZWNlbnQgWEZyZWU4NiBoZWFkZXIKCSAgICBmaWxlLCBjYXVzaW5nIGEgd2FybmluZyBmb3Igb3VyIHByb3RvdHlwZS4gKEhpc2FzaGkgVCBGdWppbmFrYSkKU29sdXRpb246ICAgTW92ZSB0aGUgcHJvdG90eXBlIHRvIGFuIG9zZGVmIGZpbGUsIHNvIHRoYXQgaXQncyBmaWx0ZXJlZCBvdXQuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMsIHNyYy9vc2RlZjIuaC5pbgoKUGF0Y2ggNi4yLjE3MApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIFN1biBXb3JrU2hvcCB0aGUgY3VycmVudCBkaXJlY3RvcnkgaXNuJ3QgY2hhbmdlZCB0bwoJICAgIHdoZXJlIHRoZSBmaWxlIGlzLgpTb2x1dGlvbjogICBTZXQgdGhlICdhdXRvY2hkaXInIG9wdGlvbiB3aGVuIHVzaW5nIFdvcmtTaG9wLiAgQW5kIGF2b2lkIHVzaW5nCgkgICAgdGhlIGJhc2VuYW1lIHdoZW4gJ2F1dG9jaGRpcicgaXMgbm90IHNldC4KRmlsZXM6CSAgICBzcmMvZ3VpX3gxMS5jLCBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjIuMTcxIChhZnRlciA2LjIuMTYzKQpQcm9ibGVtOiAgICBUaGUgIi1vciIgYXJndW1lbnQgb2YgImZpbmQiIGRvZXNuJ3Qgd29yayBmb3IgU3lzViBzeXN0ZW1zLgpTb2x1dGlvbjogICBVc2UgIi1vIiBpbnN0ZWFkLiAoR29yZG9uIFByaWV1cikKRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMi4xNzIgKGFmdGVyIDYuMi4xNjkpClByb2JsZW06ICAgIFRoZSBwcm90b3R5cGUgZm9yIF9YbWJsZW4oKSBzdGlsbCBjYXVzZXMgdHJvdWJsZS4KU29sdXRpb246ICAgSW5jbHVkZSB0aGUgWDExIGhlYWRlciBmaWxlIHRoYXQgZGVmaW5lcyB0aGUgcHJvdG90eXBlLgpGaWxlczoJICAgIHNyYy9vc2RlZjIuaC5pbiwgc3JjL29zZGVmLnNoCgpQYXRjaCA2LjIuMTczIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFJ1YnkgaW50ZXJmYWNlIGRvZXNuJ3Qgd29yayB3aXRoIFJ1YnkgMS44LjAgZm9yIG90aGVyCgkgICAgY29tcGlsZXJzIHRoYW4gTVNWQy4KU29sdXRpb246ICAgRml4IHRoZSBCQzUsIEN5Z3dpbiBhbmQgTWluZ3cgbWFrZWZpbGVzLiAoRGFuIFNoYXJwKQpGaWxlczoJICAgIHNyYy9NYWtlX2JjNS5tYWssIHNyYy9NYWtlX2N5Zy5tYWssIHNyYy9NYWtlX21pbmcubWFrCgpQYXRjaCA2LjIuMTc0ClByb2JsZW06ICAgIEFmdGVyIHRoZSAiOmludHJvIiBtZXNzYWdlIG9ubHkgYSBtb3VzZSBjbGljayBpbiB0aGUgbGFzdCBsaW5lCgkgICAgZ2V0cyBwYXN0IHRoZSBoaXQtcmV0dXJuIHByb21wdC4KU29sdXRpb246ICAgQWNjZXB0IGEgY2xpY2sgYXQgb3IgYmVsb3cgdGhlIGhpdC1yZXR1cm4gcHJvbXB0LgpGaWxlczoJICAgIHNyYy9ndWkuYywgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4yLjE3NQpQcm9ibGVtOiAgICBDaGFuZ2luZyAnYmFja3VwZXh0JyBpbiBhICpXcml0ZVByZSBhdXRvY29tbWFuZCBkb2Vzbid0IHdvcmsuCgkgICAgKFdpbGxpYW0gTmF0dGVyKQpTb2x1dGlvbjogICBNb3ZlIHRoZSB1c2Ugb2YgcF9iZXggdG8gYWZ0ZXIgZXhlY3V0aW5nIHRoZSAqV3JpdGVQcmUKCSAgICBhdXRvY29tbWFuZHMuICBBbHNvIGF2b2lkcyByZWFkaW5nIGFsbG9jYXRlZCBtZW1vcnkgYWZ0ZXIgZnJlZWluZy4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi4xNzYKUHJvYmxlbTogICAgQWNjZW50ZWQgY2hhcmFjdGVycyBpbiB0cmFuc2xhdGVkIGhlbHAgZmlsZXMgYXJlIG5vdCBoYW5kbGVkCgkgICAgY29ycmVjdGx5LiAoRmFiaWVuIFZheXNzaWVyZSkKU29sdXRpb246ICAgSW5jbHVkZSAiMTkyLTI1NSIgaW4gJ2lza2V5d29yZCcgZm9yIHRoZSBoZWxwIHdpbmRvdy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjIuMTc3IChleHRyYSkKUHJvYmxlbTogICAgVmlzVmltOiBPcGVuaW5nIGEgZmlsZSB3aXRoIGEgc3BhY2UgaW4gdGhlIG5hbWUgZG9lc24ndCB3b3JrLiAoUm9iCgkgICAgUmV0dGVyKSAgQXJiaXRyYXJ5IGNvbW1hbmRzIGFyZSBiZWluZyBleGVjdXRlZC4gKE5laWwgQmlyZCkKU29sdXRpb246ICAgUHV0IGEgYmFja3NsYXNoIGluIGZyb250IG9mIGV2ZXJ5IHNwYWNlIGluIHRoZSBmaWxlIG5hbWUuCgkgICAgKEdlcmFyZCBCbGFpcykgIFRlcm1pbmF0ZSB0aGUgQ1RSTC1cIENUUkwtTiBjb21tYW5kIHdpdGggYSBOVUwuCkZpbGVzOgkgICAgc3JjL1Zpc1ZpbS9Db21tYW5kcy5jcHAsIHNyYy9WaXNWaW0vVmlzVmltLnJjCgpQYXRjaCA2LjIuMTc4ClByb2JsZW06ICAgIFBlb3BsZSB3aG8gZG9uJ3Qga25vdyBob3cgdG8gZXhpdCBWaW0gdHJ5IHByZXNzaW5nIENUUkwtQy4KU29sdXRpb246ICAgR2l2ZSBhIG1lc3NhZ2UgaG93IHRvIGV4aXQgVmltIHdoZW4gQ1RSTC1DIGlzIHByZXNzZWQgYW5kIGl0CgkgICAgZG9lc24ndCBjYW5jZWwgYW55dGhpbmcuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMTc5IChleHRyYSkKUHJvYmxlbTogICAgVGhlIGVuX2diIG1lc3NhZ2VzIGZpbGUgaXNuJ3QgZm91bmQgb24gY2FzZSBzZW5zaXRpdmUgc3lzdGVtcy4KU29sdXRpb246ICAgUmVuYW1lIGVuX2diIHRvIGVuX0dCLiAoTWlrZSBXaWxsaWFtcykKRmlsZXM6CSAgICBzcmMvcG8vZW5fZ2IucG8sIHNyYy9wby9lbl9HQi5wbywgc3JjL3BvL01ha2VfbWluZy5tYWssCgkgICAgc3JjL3BvL01ha2VfbXZjLm1haywgc3JjL3BvL01ha2VmaWxlLCBzcmMvcG8vUkVBRE1FX212Yy50eHQKClBhdGNoIDYuMi4xODAKUHJvYmxlbTogICAgQ29tcGlsaW5nIHdpdGggR1RLMiBvbiBXaW4zMiBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIEluY2x1ZGUgZ2Rrd2luMzIuaCBpbnN0ZWFkIG9mIGdka3guaC4gKFNyaW5hdGggQXZhZGhhbnVsYSkKRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jLCBzcmMvZ3VpX2d0a19mLmMsIHNyYy9ndWlfZ3RrX3gxMS5jLCBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjE4MSAoYWZ0ZXIgNi4yLjE3MSkKUHJvYmxlbTogICAgVGhlICItbyIgYXJndW1lbnQgb2YgImZpbmQiIGhhcyBsb3dlciBwcmlvcml0eSB0aGFuIHRoZSBpbXBsaWVkCgkgICAgImFuZCIgd2l0aCAiLXByaW50Ii4KU29sdXRpb246ICAgQWRkIHBhcmVudGhlc2lzIGFyb3VuZCB0aGUgIi1vIiBleHByZXNzaW9uLiAoR29yZG9uIFByaWV1cikKRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMi4xODIgKGFmdGVyIDYuMi4wOTQpClByb2JsZW06ICAgIENvbXBpbGF0aW9uIHdpdGggdGlueSBmZWF0dXJlcyBmYWlscyBiZWNhdXNlIG9mIG1pc3NpbmcKCSAgICBnZXRfcGFzdF9oZWFkKCkgZnVuY3Rpb24uClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgI2lmZGVmIGZvciBnZXRfcGFzdF9oZWFkKCkuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMi4xODMgKGFmdGVyIDYuMi4xNzgpClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIGNoYXIvdW5zaWduZWQgY2hhciBtaXh1cC4KU29sdXRpb246ICAgVXNlIE1TRygpIGluc3RlYWQgb2YgbXNnKCkuIChUb255IExlbmVpcykKRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMi4xODQKUHJvYmxlbTogICAgV2l0aCAnZm9ybWF0b3B0aW9ucycgc2V0IHRvICIxYXciIGluc2VydGluZyB0ZXh0IG1heSBjYXVzZSB0aGUKCSAgICBwYXJhZ3JhcGggdG8gYmUgZW5kZWQuIChBbGFuIFNjaG1pdHQpClNvbHV0aW9uOiAgIFRlbXBvcmFyaWx5IGFkZCBhbiBleHRyYSBzcGFjZSB0byBtYWtlIHRoZSBwYXJhZ3JhcGggY29udGludWUKCSAgICBhZnRlciBtb3ZpbmcgdGhlIHdvcmQgYWZ0ZXIgdGhlIGN1cnNvciB0byB0aGUgbmV4dCBsaW5lLgoJICAgIEFsc28gZm9ybWF0IHdoZW4gcHJlc3NpbmcgRXNjLgpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9ub3JtYWwuYywgc3JjL3Byb3RvL2VkaXQucHJvCgpQYXRjaCA2LjIuMTg1ClByb2JsZW06ICAgIFJlc3RvcmluZyBhIHNlc3Npb24gd2l0aCB6ZXJvLWhlaWdodCB3aW5kb3dzIGRvZXMgbm90IHdvcmsKCSAgICBwcm9wZXJseS4gKENoYXJsZXMgQ2FtcGJlbGwpClNvbHV0aW9uOiAgIEFjY2VwdCBhIHplcm8gYXJndW1lbnQgdG8gIjpyZXNpemUiIGFzIGludGVuZGVkLiAgQWRkIGEgd2luZG93CgkgICAgbnVtYmVyIGFyZ3VtZW50IHRvICI6cmVzaXplIiB0byBiZSBhYmxlIHRvIHNldCB0aGUgc2l6ZSBvZiBvdGhlcgoJICAgIHdpbmRvd3MsIGJlY2F1c2UgdGhlIGN1cnJlbnQgd2luZG93IGNhbm5vdCBiZSB6ZXJvLWhlaWdodC4KCSAgICBGaXggdGhlIGV4cGxvcmVyIHBsdWdpbiB0byBhdm9pZCBjaGFuZ2luZyB0aGUgd2luZG93IHNpemVzLiAgQWRkCgkgICAgdGhlIHdpbnJlc3RjbWQoKSBmdW5jdGlvbiBmb3IgdGhpcy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgcnVudGltZS9wbHVnaW4vZXhwbG9yZXIudmltLCBzcmMvZXZhbC5jLAoJICAgIHNyYy9leF9jbWRzLmgsIHNyYy9leF9kb2NtZC5jLCBzcmMvcHJvdG8vd2luZG93LnBybywgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjIuMTg2IChhZnRlciA2LjIuMTg1KQpQcm9ibGVtOiAgICBEb2N1bWVudGF0aW9uIGZpbGUgZXZhbC50eHQgY29udGFpbnMgZXhhbXBsZXMgd2l0aG91dCBpbmRlbnQuClNvbHV0aW9uOiAgIEluc2VydCB0aGUgaW5kZW50LiAgQWxzbyBmaXggb3RoZXIgbWlzdGFrZXMuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQKClBhdGNoIDYuMi4xODcKUHJvYmxlbTogICAgVXNpbmcgSW5zdXJlKysgcmV2ZWFscyBhIG51bWJlciBvZiBidWdzLiAgKERvbWludXF1ZSBQZWxsZSkKU29sdXRpb246ICAgSW5pdGlhbGl6ZSB2YXJpYWJsZXMgd2hlcmUgbmVlZGVkLiAgRnJlZSBhbGxvY2F0ZWQgbWVtb3J5IHRvIGF2b2lkCgkgICAgbGVha3MuICBGaXggY29tcGFyaW5nIHRhZ3MgdG8gYXZvaWQgcmVhZGluZyBwYXN0IGFsbG9jYXRlZCBtZW1vcnkuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvZGlmZi5jLCBzcmMvZmlsZWlvLmMsIHNyYy9tYXJrLmMsIHNyYy9taXNjMS5jLAoJICAgIHNyYy9taXNjMi5jLCBzcmMvb3BzLmMsIHNyYy9vcHRpb24uYywgc3JjL3RhZy5jLCBzcmMvdWkuYwoKUGF0Y2ggNi4yLjE4OCAoZXh0cmEpClByb2JsZW06ICAgIE1TLVdpbmRvd3M6IE11bHRpLWJ5dGUgY2hhcmFjdGVycyBpbiBhIGZpbGVuYW1lIGNhdXNlIHRyb3VibGUgZm9yCgkgICAgdGhlIHdpbmRvdyB0aXRsZS4KU29sdXRpb246ICAgUmV0dXJuIHdoZW4gdGhlIHdpZGUgZnVuY3Rpb24gZm9yIHNldHRpbmcgdGhlIHRpdGxlIGRpZCBpdHMgd29yay4KRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjIuMTg5ClByb2JsZW06ICAgIFdoZW4gc2V0dGluZyAndmltaW5mbycgYWZ0ZXIgZWRpdGluZyBhIG5ldyBidWZmZXIgaXRzIG1hcmtzIGFyZQoJICAgIG5vdCBzdG9yZWQuIChLZWl0aCBSb2JlcnRzKQpTb2x1dGlvbjogICBTZXQgdGhlICJiX21hcmtzX3JlYWQiIGZsYWcgd2hlbiBza2lwcGluZyB0byByZWFkIG1hcmtzIGZyb20gdGhlCgkgICAgdmltaW5mbyBmaWxlLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4yLjE5MApQcm9ibGVtOiAgICBXaGVuIGVkaXRpbmcgYSBjb21wcmVzc2VkIGZpbGVzLCBtYXJrcyBhcmUgbG9zdC4KU29sdXRpb246ICAgQWRkIHRoZSAiOmxvY2ttYXJrcyIgbW9kaWZpZXIgYW5kIHVzZSBpdCBpbiB0aGUgZ3ppcCBwbHVnaW4uCgkgICAgTWFrZSBleGlzdHMoKSBhbHNvIGNoZWNrIGZvciBjb21tYW5kIG1vZGlmaWVycywgc28gdGhhdCB0aGUKCSAgICBleGlzdGVuY2Ugb2YgIjpsb2NrbWFya3MiIGNhbiBiZSBjaGVja2VkIGZvci4KCSAgICBBbHNvIGFkZCAiOmtlZXBtYXJrcyIgdG8gYXZvaWQgdGhhdCBtYXJrcyBhcmUgZGVsZXRlZCB3aGVuCgkgICAgZmlsdGVyaW5nIHRleHQuCgkgICAgV2hlbiBkZWxldGluZyBsaW5lcyBwdXQgbWFya3MgJ0EgLSAnWiBhbmQgJzAgLSAnOSBhdCB0aGUgZmlyc3QKCSAgICBkZWxldGVkIGxpbmUgaW5zdGVhZCBvZiBjbGVhcmluZyB0aGUgbWFyay4gIFRoZXkgd2VyZSBrZXB0IGluIHRoZQoJICAgIHZpbWluZm8gZmlsZSBhbnl3YXkuCgkgICAgQXZvaWQgdGhhdCB0aGUgZ3ppcCBwbHVnaW4gcHV0cyBkZWxldGVkIHRleHQgaW4gcmVnaXN0ZXJzLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL21vdGlvbi50eHQsIHJ1bnRpbWUvcGx1Z2luL2d6aXAudmltLCBzcmMvZXhfY21kcy5jLAoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvbWFyay5jLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjIuMTkxClByb2JsZW06ICAgIFRoZSBpbnRybyBtZXNzYWdlIGlzIG91dGRhdGVkLiAgSW5mb3JtYXRpb24gYWJvdXQgc3BvbnNvcmluZyBhbmQKCSAgICByZWdpc3RlcmluZyBpcyBtaXNzaW5nLgpTb2x1dGlvbjogICBTaG93IGluZm8gYWJvdXQgc3BvbnNvcmluZyBhbmQgcmVnaXN0ZXJpbmcgVmltIGluIHRoZSBpbnRybwoJICAgIG1lc3NhZ2Ugbm93IGFuZCB0aGVuLiAgQWRkIGhlbHAgZmlsZSBhYm91dCBzcG9uc29yaW5nLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2hlbHAudHh0LCBydW50aW1lL2RvYy9zcG9uc29yLnR4dCwgcnVudGltZS9kb2MvdGFncywKCSAgICBydW50aW1lL21lbnUudmltLCBzcmMvdmVyc2lvbi5jCgpQYXRjaCA2LjIuMTkyClByb2JsZW06ICAgIFVzaW5nIENUUkwtVCBhbmQgQ1RSTC1EIHdpdGggImdSIiBtZXNzZXMgdXAgdGhlIHRleHQuICAoSm9uYWh0YW4KCSAgICBIYW5raW5zKQpTb2x1dGlvbjogICBBdm9pZCBjYWxsaW5nIGNoYW5nZV9pbmRlbnQoKSByZWN1cnNpdmVseS4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjIuMTkzClByb2JsZW06ICAgIFdoZW4gcmVjYWxsaW5nIGEgc2VhcmNoIHBhdHRlcm4gZnJvbSB0aGUgaGlzdG9yeSBmcm9tIGEgIjpzLGEvYywiCgkgICAgY29tbWFuZCB0aGUgJy8nIGVuZHMgdGhlIHNlYXJjaCBzdHJpbmcuIChKQyB2YW4gV2lua2VsKQpTb2x1dGlvbjogICBTdG9yZSB0aGUgc2VwYXJhdG9yIGNoYXJhY3RlciB3aXRoIHRoZSBoaXN0b3J5IGVudHJpZXMuICBFc2NhcGUKCSAgICBjaGFyYWN0ZXJzIHdoZW4gbmVlZGVkLCByZXBsYWNlIHRoZSBvbGQgc2VwYXJhdG9yIHdpdGggdGhlIG5ldyBvbmUuCgkgICAgQWxzbyBmaXhlcyB0aGF0IHJlY2FsbGluZyBhICIvIiBzZWFyY2ggZm9yIGEgIj8iIGNvbW1hbmQgbWVzc2VzIHVwCgkgICAgdHJhaWxpbmcgZmxhZ3MuCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9ub3JtYWwuYywgc3JjL3Byb3RvL2V4X2dldGxuLnBybywKCSAgICBzcmMvc2VhcmNoLmMsIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjE5NCAoYWZ0ZXIgNi4yLjA2OCkKUHJvYmxlbTogICAgRm9yIE5ldEJlYW5zLCBpbnN0ZWFkIG9mIHdyaXRpbmcgdGhlIGZpbGUgYW5kIHNlbmRpbmcgYW4gZXZlbnQKCSAgICBhYm91dCBpdCwgdGVsbCBOZXRCZWFucyB0byB3cml0ZSB0aGUgZmlsZS4KU29sdXRpb246ICAgQWRkIHRoZSAic2F2ZSIgY29tbWFuZCwgIm5ldGJlYW5zQnVmZmVyIiBjb21tYW5kIGFuZAoJICAgICJidXR0b25SZWxlYXNlIiBldmVudCB0byB0aGUgbmV0YmVhbnMgcHJvdG9jb2wuICBVcGRhdGVkIHRoZQoJICAgIGludGVyZmFjZSB0byB2ZXJzaW9uIDIuMi4gIChHb3Jkb24gUHJpZXVyKQoJICAgIEFsc286IG9wZW4gYSBmb2xkIHdoZW4gdGhlIGN1cnNvciBoYXMgYmVlbiBwb3NpdGlvbmVkLgoJICAgIEFsc286IGZpeCBtZW1vcnkgbGVhaywgZnJlZSByZXN1bHQgb2YgbmJfcXVvdGUoKS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9uZXRiZWFucy50eHQsIHNyYy9maWxlaW8uYywgc3JjL25ldGJlYW5zLmMsCgkgICAgc3JjL25vcm1hbC5jLCBzcmMvcHJvdG8vbmV0YmVhbnMucHJvLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjIuMTk1IChhZnRlciA2LjIuMTkwKQpQcm9ibGVtOiAgICBDb21waWxpbmcgZmFpbHMgZm9yIG1pc3NpbmcgQ1BPX1JFTU1BUksgc3ltYm9sLgpTb2x1dGlvbjogICBBZGQgdGhlIHBhdGNoIEkgZm9yZ290IHRvIGluY2x1ZGUuLi4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmgKClBhdGNoIDYuMi4xOTYgKGFmdGVyIDYuMi4xOTEpClByb2JsZW06ICAgIFJlYnVpbGRpbmcgdGhlIGRvY3VtZW50YXRpb24gZG9lc24ndCB1c2UgdGhlIHNwb25zb3IudHh0IGZpbGUuClNvbHV0aW9uOiAgIEFkZCBzcG9uc29yLnR4dCB0byB0aGUgTWFrZWZpbGUuIChDaHJpc3RpYW4gSi4gUm9iaW5zb24pCkZpbGVzOgkgICAgcnVudGltZS9kb2MvTWFrZWZpbGUKClBhdGNoIDYuMi4xOTcKUHJvYmxlbTogICAgSXQgaXMgbm90IHBvc3NpYmxlIHRvIGZvcmNlIGEgcmVkcmF3IG9mIHN0YXR1cyBsaW5lcy4gKEdhcnkKCSAgICBKb2huc29uKQpTb2x1dGlvbjogICBBZGQgdGhlICI6cmVkcmF3c3RhdHVzIiBjb21tYW5kLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3ZhcmlvdXMudHh0LCBzcmMvZXhfY21kcy5oLCBzcmMvZXhfZG9jbWQuYywKCSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMi4xOTgKUHJvYmxlbTogICAgQSBmZXcgbWVzc2FnZXMgYXJlIG5vdCB0cmFuc2xhdGVkLiAoRXJuZXN0IEFkcm9ndWUpClNvbHV0aW9uOiAgIE1hcmsgdGhlIG1lc3NhZ2VzIHRvIGJlIHRyYW5zbGF0ZWQuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4yLjE5OSAoYWZ0ZXIgNi4yLjE5NCkKUHJvYmxlbTogICAgVmltIGRvZXNuJ3Qgd29yayBwZXJmZWN0bHkgd2VsbCB3aXRoIE5ldEJlYW5zLgpTb2x1dGlvbjogICBXaGVuIE5ldEJlYW5zIHNhdmVzIHRoZSBmaWxlLCByZXNldCB0aGUgdGltZXN0YW1wIHRvIGF2b2lkICJmaWxlCgkgICAgY2hhbmdlZCIgd2FybmluZ3MuICBDbG9zZSBhIGJ1ZmZlciBpbiBhIHByb3BlciB3YXkuICBEb24ndCB0cnkKCSAgICBnaXZpbmcgYSBkZWJ1ZyBtZXNzYWdlIHdpdGggYW4gaW52YWxpZCBwb2ludGVyLiAgU2VuZCBhCgkgICAgbmV3RG90QW5kTWFyayBtZXNzYWdlIHdoZW4gbmVlZGVkLiAgUmVwb3J0IGEgY2hhbmdlIGJ5IHRoZSAiciIKCSAgICBjb21tYW5kIHRvIE5ldEJlYW5zLiAgKEdvcmRvbiBQcmlldXIpCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjIwMApQcm9ibGVtOiAgICBXaGVuIHJlY292ZXJpbmcgYSBmaWxlLCAnZmlsZWZvcm1hdCcgaXMgYWx3YXlzIHRoZSBkZWZhdWx0LCB0aHVzCgkgICAgd3JpdGluZyB0aGUgZmlsZSBtYXkgcmVzdWx0IGluIGRpZmZlcmVuY2VzLiAoUGVuZWxvcGUgRnVkZCkKU29sdXRpb246ICAgQmVmb3JlIHJlY292ZXJpbmcgdGhlIGZpbGUgdHJ5IHJlYWRpbmcgdGhlIG9yaWdpbmFsIGZpbGUgdG8gb2J0YWluCgkgICAgdGhlIHZhbHVlcyBvZiAnZmlsZWZvcm1hdCcsICdmaWxlZW5jb2RpbmcnLCBldGMuCkZpbGVzOgkgICAgc3JjL21lbWxpbmUuYwoKUGF0Y2ggNi4yLjIwMQpQcm9ibGVtOiAgICBXaGVuICdhdXRvd3JpdGVhbGwnIGlzIHNldCAiOnFhbGwiIHN0aWxsIHJlZnVzZXMgdG8gZXhpdCBpZiB0aGVyZQoJICAgIGlzIGEgbW9kaWZpZWQgYnVmZmVyLiAoQW50b2luZSBNZWNoZWx5bmNrKQpTb2x1dGlvbjogICBBdHRlbXB0IHdyaXRpbmcgbW9kaWZpZWQgYnVmZmVycyBhcyBpbnRlbmRlZC4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4yLjIwMgpQcm9ibGVtOiAgICBGaWxldHlwZSBuYW1lcyBvZiBDSElMTCBhbmQgY2ggc2NyaXB0IGFyZSBjb25mdXNpbmcuClNvbHV0aW9uOiAgIFJlbmFtZSAiY2giIHRvICJjaGlsbCIgYW5kICJjaHNjcmlwdCIgdG8gImNoIi4KRmlsZXM6CSAgICBydW50aW1lL2ZpbGV0eXBlLnZpbSwgcnVudGltZS9tYWtlbWVudS52aW0sIHJ1bnRpbWUvc3lubWVudS52aW0KCSAgICBydW50aW1lL3N5bnRheC9jaC52aW0sIHJ1bnRpbWUvc3ludGF4L2NoaWxsLnZpbQoKUGF0Y2ggNi4yLjIwMwpQcm9ibGVtOiAgICBXaXRoIGNoYXJhY3Rlcndpc2UgdGV4dCB0aGF0IGhhcyBtb3JlIHRoYW4gb25lIGxpbmUsICIzUCIgd29ya3MKCSAgICB3cm9uZy4gICIzcCIgaGFzIHRoZSBzYW1lIHByb2JsZW0uICBUaGVyZSBhbHNvIGlzIGEgZGlzcGxheQoJICAgIHByb2JsZW0uIChEYW5pZWwgR291am90KQpTb2x1dGlvbjogICBQZXJmb3JtIGNoYXJhY3Rlcndpc2UgcHV0cyB3aXRoIGEgY291bnQgaW4gdGhlIHJpZ2h0IHBvc2l0aW9uLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4yLjIwNCAoYWZ0ZXIgNi4yLjA4NikKUHJvYmxlbTogICAgIl1dIiBpbiBhIGZpbGUgd2l0aCBjbG9zZWQgZm9sZHMgbW92ZXMgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZS4KCSAgICAoTmFtIFN1bmdIeXVuKQpTb2x1dGlvbjogICBGaW5kIG9uZSBwb3NpdGlvbiBpbiBlYWNoIGNsb3NlZCBmb2xkLCB0aGVuIG1vdmUgdG8gYWZ0ZXIgdGhlIGZvbGQuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjIuMjA1IChleHRyYSkKUHJvYmxlbTogICAgTVMtV2luZG93czogV2hlbiB0aGUgdGFza2JhciBpcyBhdCB0aGUgbGVmdCBvciB0b3Agb2YgdGhlIHNjcmVlbiwKCSAgICB0aGUgVmltIHdpbmRvdyBwbGFjZW1lbnQgaXMgd3JvbmcuClNvbHV0aW9uOiAgIENvbXB1dGUgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIHRoZSB3aW5kb3cgY29ycmVjdGx5LiAoVGFybwoJICAgIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4yLjIwNgpQcm9ibGVtOiAgICBNdWx0aS1ieXRlIGNoYXJhY3RlcnMgY2Fubm90IGJlIHVzZWQgYXMgaG90a2V5cyBpbiBhIGNvbnNvbGUKCSAgICBkaWFsb2cuICAoTWF0dGlhcyBFcmtpc3NvbikKU29sdXRpb246ICAgSGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBwcm9wZXJseS4gIEFsc28gcHV0ICgpIG9yIFtdIGFyb3VuZAoJICAgIGRlZmF1bHQgaG90a2V5cy4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jLCBzcmMvbWFjcm9zLmgKClBhdGNoIDYuMi4yMDcKUHJvYmxlbTogICAgV2hlbiAnZW5jb2RpbmcnIGlzIGEgbXVsdGktYnl0ZSBlbmNvZGluZywgZXhwYW5kaW5nIGFuCgkgICAgYWJicmV2aWF0aW9uIHRoYXQgc3RhcnRzIHdoZXJlIGluc2VydGlvbiBzdGFydGVkIHJlc3VsdHMgaW4KCSAgICBjaGFyYWN0ZXJzIGJlZm9yZSB0aGUgaW5zZXJ0aW9uIHRvIGJlIGRlbGV0ZWQuICAoWGlhbmdqaWFuZyBNYSkKU29sdXRpb246ICAgU3RvcCBzZWFyY2hpbmcgbGVmdHdhcmRzIGZvciB0aGUgc3RhcnQgb2YgdGhlIHdvcmQgYXQgdGhlIHBvc2l0aW9uCgkgICAgd2hlcmUgaW5zZXJ0aW9uIHN0YXJ0ZWQuCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYwoKUGF0Y2ggNi4yLjIwOApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGZvbGQgbWFya2VycywgdGhyZWUgbGluZXMgaW4gYSByb3cgaGF2ZSB0aGUgc3RhcnQKCSAgICBtYXJrZXIgYW5kIGRlbGV0aW5nIHRoZSBmaXJzdCBvbmUgd2l0aCAiZGQiLCBhIG5lc3RlZCBmb2xkIGlzIG5vdAoJICAgIGRlbGV0ZWQuICAoS2FtaWwgQnVyenluc2tpKQoJICAgIFVzaW5nIG1hcmtlciBmb2xkaW5nLCBhIGxldmVsIDEgZm9sZCBkb2Vzbid0IHN0b3Agd2hlbiBpdCBpcwoJICAgIGZvbGxvd2VkIGJ5ICJ7e3syIiwgc3RhcnRpbmcgYSBsZXZlbCAyIGZvbGQuClNvbHV0aW9uOiAgIERvbid0IHN0b3AgdXBkYXRpbmcgZm9sZHMgYXQgdGhlIGVuZCBvZiBhIGNoYW5nZSB3aGVuIHRoZSBuZXN0aW5nCgkgICAgbGV2ZWwgb2YgZm9sZHMgaXMgbGFyZ2VyIHRoYW4gdGhlIGZvbGQgbGV2ZWwuCgkgICAgQ29ycmVjdGx5IGNvbXB1dGUgdGhlIG51bWJlciBvZiBmb2xkcyB0aGF0IHN0YXJ0IGF0ICJ7e3syIi4KCSAgICBBbHNvIGF2b2lkIGEgY3Jhc2ggZm9yIGEgTlVMTCBwb2ludGVyLgpGaWxlczoJICAgIHNyYy9mb2xkLmMKClBhdGNoIDYuMi4yMDkKUHJvYmxlbTogICAgQSBib2d1cyBmb2xkIGlzIGNyZWF0ZWQgd2hlbiB1c2luZyAiUCIgd2hpbGUgdGhlIGN1cnNvciBpcyBpbiB0aGUKCSAgICBtaWRkbGUgb2YgYSBjbG9zZWQgZm9sZC4gKEthbWlsIEJ1cnp5bnNraSkKU29sdXRpb246ICAgQ29ycmVjdCB0aGUgbGluZSBudW1iZXIgd2hlcmUgbWFya3MgYXJlIG1vZGlmaWVkIGZvciBjbG9zZWQgZm9sZHMuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjIuMjEwIChleHRyYSkKUHJvYmxlbTogICAgTWFjIE9TWDogYW50aWFsaWFzZWQgZm9udHMgYXJlIG5vdCBzdXBwb3J0ZWQuClNvbHV0aW9uOiAgIEFkZCB0aGUgJ2FudGlhbGlhcycgb3B0aW9uIHRvIHN3aXRjaCBvbiBhbnRpYWxpYXNpbmcgb24gTWFjIE9TWAoJICAgIDEwLjIgYW5kIGxhdGVyLiAoUGV0ZXIgQ3Vja2EpCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9ndWlfbWFjLmMsIHNyYy9vcHRpb24uaCwgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuMjExIChleHRyYSkKUHJvYmxlbTogICAgQ29kZSBmb3IgaGFuZGxpbmcgZmlsZSBkcm9wcGVkIG9uIFZpbSBpcyBkdXBsaWNhdGVkLgpTb2x1dGlvbjogICBNb3ZlIHRoZSBjb21tb24gY29kZSB0byBndWlfaGFuZGxlX2Ryb3AoKS4KCSAgICBBZGQgY29kZSB0byBkcm9wIHRoZSBmaWxlcyBpbiB0aGUgd2luZG93IHVuZGVyIHRoZSBjdXJzb3IuCgkgICAgU3VwcG9ydCBkcmFnJmRyb3Agb24gdGhlIE1hY2ludG9zaC4gIChUYXJvIE11cmFva2EpCgkgICAgV2hlbiBkcm9wcGluZyBhIGRpcmVjdG9yeSBuYW1lIGVkaXQgdGhhdCBkaXJlY3RvcnkgKHVzaW5nIHRoZQoJICAgIGV4cGxvcmVyIHBsdWdpbikKCSAgICBGaXggdGhhdCBjaGFuZ2luZyBkaXJlY3Rvcnkgd2l0aCBTaGlmdCBwcmVzc2VkIGRpZG4ndCB3b3JrIGZvcgoJICAgIHJlbGF0aXZlIHBhdGggbmFtZXMuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvZ3VpLmMsIHNyYy9ndWlfZ3RrX3gxMS5jLCBzcmMvZ3VpX21hYy5jLAoJICAgIHNyYy9ndWlfdzQ4LmMsIHNyYy9wcm90by9maWxlaW8ucHJvLCBzcmMvcHJvdG8vZ3VpLnBybwoKUGF0Y2ggNi4yLjIxMiAoYWZ0ZXIgNi4yLjE5OSkKUHJvYmxlbTogICAgTmV0QmVhbnM6IFJlcGxhY2luZyB3aXRoIGEgY291bnQgaXMgbm90IGhhbmRsZWQgY29ycmVjdGx5LgpTb2x1dGlvbjogICBNb3ZlIHJlcG9ydGluZyB0aGUgY2hhbmdlIG91dHNpZGUgb2YgdGhlIGxvb3AgZm9yIHRoZSBjb3VudC4KCSAgICAoR29yZG9uIFByaWV1cikKRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMi4yMTMgKGFmdGVyIDYuMi4yMDgpClByb2JsZW06ICAgIFVzaW5nIG1hcmtlciBmb2xkaW5nLCAie3t7MSIgZG9lc24ndCBzdGFydCBhIG5ldyBmb2xkIHdoZW4gYWxyZWFkeQoJICAgIGF0IGZvbGQgbGV2ZWwgMS4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIENvcnJlY3RseSBjb21wdXRlIHRoZSBudW1iZXIgb2YgZm9sZHMgdGhhdCBzdGFydCBhdCAie3t7MSIuCkZpbGVzOgkgICAgc3JjL2ZvbGQuYwoKUGF0Y2ggNi4yLjIxNCAoYWZ0ZXIgNi4yLjIxMSkgKGV4dHJhKQpQcm9ibGVtOiAgICBXYXJuaW5nIGZvciBhbiB1bnVzZWQgdmFyaWFibGUuClNvbHV0aW9uOiAgIERlbGV0ZSB0aGUgZGVjbGFyYXRpb24uIChCaWxsIE1jQ2FydGh5KQpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMi4yMTUKUHJvYmxlbTogICAgTmV0QmVhbnM6IHByb2JsZW1zIHNhdmluZyBhbiB1bm1vZGlmaWVkIGZpbGUuClNvbHV0aW9uOiAgIEFkZCBpc05ldGJlYW5zTW9kaWZpZWQoKSBmdW5jdGlvbi4gIERpc2FibGUgbmV0YmVhbnNfdW5tb2RpZmllZCgpLgoJICAgIChHb3Jkb24gUHJpZXVyKQpGaWxlczoJICAgIHNyYy9maWxlaW8uYywgc3JjL25ldGJlYW5zLmMsIHNyYy9wcm90by9uZXRiZWFucy5wcm8sCgkgICAgcnVudGltZS9kb2MvbmV0YmVhbnMudHh0LCBydW50aW1lL2RvYy90YWdzCgpQYXRjaCA2LjIuMjE2IChhZnRlciA2LjIuMjA2KQpQcm9ibGVtOiAgICBNdWx0aS1ieXRlIGNoYXJhY3RlcnMgc3RpbGwgY2Fubm90IGJlIHVzZWQgYXMgaG90a2V5cyBpbiBhIGNvbnNvbGUKCSAgICBkaWFsb2cuICAoTWF0dGlhcyBFcmtpc3NvbikKU29sdXRpb246ICAgTWFrZSBnZXRfa2V5c3Ryb2tlKCkgaGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4yLjIxNwpQcm9ibGVtOiAgICBHVEs6IHNldHRpbmcgdGhlIHRpdGxlIGRvZXNuJ3QgYWx3YXlzIHdvcmsgY29ycmVjdGx5LgpTb2x1dGlvbjogICBJbnZva2UgZ3VpX21jaF9zZXR0aXRsZSgpLiAoVG9tYXMgU3RlaGxpaykKRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuMjE4ClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIGZ1bmN0aW9uIHdpdGhvdXQgcHJvdG90eXBlLgpTb2x1dGlvbjogICBBZGQgYXJndW1lbnQgdHlwZXMgdG8gdGhlIG1zZ0NCIGZpZWxkIG9mIHRoZSBCYWxsb29uRXZhbCBzdHJ1Y3QuCkZpbGVzOgkgICAgc3JjL2d1aV9iZXZhbC5oCgpQYXRjaCA2LjIuMjE5ClByb2JsZW06ICAgIFN5bnRheCBoaWdobGlnaHRpbmcgaGFuZ3Mgb24gYW4gZW1wdHkgbWF0Y2ggb2YgYW4gaXRlbSB3aXRoIGEKCSAgICBuZXh0Z3JvdXAuICAoQ2hhcmxlcyBDYW1wYmVsbCkKU29sdXRpb246ICAgUmVtZW1iZXIgdGhhdCB0aGUgaXRlbSBoYXMgYWxyZWFkeSBtYXRjaGVkIGFuZCBkb24ndCBtYXRjaCBpdAoJICAgIGFnYWluIGF0IHRoZSBzYW1lIHBvc2l0aW9uLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4yLjIyMApQcm9ibGVtOiAgICBXaGVuIGEgVmltIHNlcnZlciBydW5zIGluIGEgY29uc29sZSBhIHJlbW90ZSBjb21tYW5kIGlzbid0IGhhbmRsZWQKCSAgICBiZWZvcmUgYSBrZXkgaXMgdHlwZWQuICAoSm9zaHVhIE5ldWhlaXNlbCkKU29sdXRpb246ICAgRG9uJ3QgdHJ5IHJlYWRpbmcgbW9yZSBpbnB1dCB3aGVuIGEgY2xpZW50LXNlcnZlciBjb21tYW5kIGhhcyBiZWVuCgkgICAgcmVjZWl2ZWQuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjIyMQpQcm9ibGVtOiAgICBObyBmaWxlIG5hbWUgY29tcGxldGlvbiBmb3IgIjpjc2NvcGUgYWRkIi4KU29sdXRpb246ICAgQWRkIHRoZSBYRklMRSBmbGFnIHRvICI6Y3Njb3BlIi4gKEdhcnkgSm9obnNvbikKRmlsZXM6CSAgICBzcmMvZXhfY21kcy5oCgpQYXRjaCA2LjIuMjIyClByb2JsZW06ICAgIFVzaW5nICItLXJlbW90ZSIgc2V2ZXJhbCB0aW1lcyBvbiBhIHJvdyBvbmx5IG9wZW5zIHNvbWUgb2YgdGhlCgkgICAgZmlsZXMuIChEYW55IFN0LUFtYW50KQpTb2x1dGlvbjogICBEb24ndCBkZWxldGUgYWxsIHR5cGVhaGVhZCB3aGVuIHRoZSBzZXJ2ZXIgcmVjZWl2ZXMgYSBjb21tYW5kIGZyb20KCSAgICBhIGNsaWVudCwgb25seSBkZWxldGUgdHlwZWQgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjIuMjIzClByb2JsZW06ICAgIENzY29wZTogQXZvaWQgYSBoYW5nIHdoZW4gY3Njb3BlIHdhaXRzIGZvciBhIHJlc3BvbnNlIHdoaWxlIFZpbQoJICAgIHdhaXRzIGZvciBhIHByb21wdC4KCSAgICBFcnJvciBtZXNzYWdlcyBmcm9tIENzY29wZSBtZXNzIHVwIHRoZSBkaXNwbGF5LgpTb2x1dGlvbjogICBEZXRlY3QgdGhlIGhpdC1lbnRlciBtZXNzYWdlIGFuZCByZXNwb25kIGJ5IHNlbmRpbmcgYSByZXR1cm4KCSAgICBjaGFyYWN0ZXIgdG8gY3Njb3BlLiAoR2FyeSBKb2huc29uKQoJICAgIFVzZSBFTVNHKCkgYW5kIHN0cmVycm9yKCkgd2hlbiBwb3NzaWJsZS4gIFJlcGxhY2UgcGVycm9yKCkgd2l0aAoJICAgIFBFUlJPUigpIGV2ZXJ5d2hlcmUsIGFkZCBlbXNnMygpLgpGaWxlczoJICAgIHNyYy9kaWZmLmMsIHNyYy9pZl9jc2NvcGUuYywgc3JjL2ludGVncmF0aW9uLmMsIHNyYy9tZXNzYWdlLmMsCgkgICAgc3JjL3Byb3RvL21lc3NhZ2UucHJvLCBzcmMvbWlzYzIuYywgc3JjL25ldGJlYW5zLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjIyNApQcm9ibGVtOiAgICBNYWM6IENhbid0IGNvbXBpbGUgd2l0aCBzbWFsbCBmZWF0dXJlcy4gKEF4ZWwgS2llbGhvcm4pClNvbHV0aW9uOiAgIEFsc28gaW5jbHVkZSB2aW1fY2hkaXJmaWxlKCkgd2hlbiBjb21waWxpbmcgZm9yIHRoZSBNYWMuCkZpbGVzOgkgICAgc3JjL21pc2MyLmMKClBhdGNoIDYuMi4yMjUKUHJvYmxlbTogICAgTmV0QmVhbnM6IFJlcG9ydGVkIG1vZGlmaWVkIHN0YXRlIGlzbid0IGV4YWN0bHkgcmlnaHQuClNvbHV0aW9uOiAgIFJlcG9ydCBhIGZpbGUgYmVpbmcgbW9kaWZpZWQgaW4gdGhlIE5ldEJlYW5zIHdheS4KRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4yLjIyNiAoYWZ0ZXIgNi4yLjEwNykgKGV4dHJhKQpQcm9ibGVtOiAgICBUaGUgIndzMi0zMi5saWIiIGZpbGUgaXNuJ3QgYWx3YXlzIGF2YWlsYWJsZS4KU29sdXRpb246ICAgVXNlICJXU29jazMyLmxpYiIgaW5zdGVhZC4gKFRhcm8gTXVyYW9rYSwgRGFuIFNoYXJwKQpGaWxlczoJICAgIHNyYy9NYWtlX2N5Zy5tYWssIHNyYy9NYWtlX21pbmcubWFrLCBzcmMvTWFrZV9tdmMubWFrCgpQYXRjaCA2LjIuMjI3IChleHRyYSkKUHJvYmxlbTogICAgVGhlICJQQyIgc3ltYm9sIGlzIGRlZmluZWQgYnV0IG5vdCB1c2VkIGFueXdoZXJlLgpTb2x1dGlvbjogICBSZW1vdmUgIi1EUEMiIGZyb20gdGhlIG1ha2VmaWxlcy4KRmlsZXM6CSAgICBzcmMvTWFrZV9iYzMubWFrLCBzcmMvTWFrZV9iYzUubWFrLCBzcmMvTWFrZV9jeWcubWFrLAoJICAgIHNyYy9NYWtlX21pbmcubWFrCgpQYXRjaCA2LjIuMjI4ClByb2JsZW06ICAgIFJlY2VpdmluZyBDVFJMLVwgQ1RSTC1OIGFmdGVyIHR5cGluZyAiZiIgb3IgIm0iIGRvZXNuJ3Qgc3dpdGNoIFZpbQoJICAgIGJhY2sgdG8gTm9ybWFsIG1vZGUuICBTYW1lIGZvciBDVFJMLVwgQ1RSTC1HLgpTb2x1dGlvbjogICBDaGVjayBpZiB0aGUgY2hhcmFjdGVyIHR5cGVkIGFmdGVyIGEgY29tbWFuZCBpcyBDVFJMLVwgYW5kIG9idGFpbgoJICAgIGFub3RoZXIgY2hhcmFjdGVyIHRvIGNoZWNrIGZvciBDVFJMLU4gb3IgQ1RSTC1HLCB3YWl0aW5nIHVwIHRvCgkgICAgJ3R0aW1lb3V0bGVuJyBtc2VjLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjIyOQpQcm9ibGVtOiAgICAiOmZ1bmN0aW9uIiB3aXRoIGEgbmFtZSB0aGF0IHVzZXMgbWFnaWMgY3VybGllcyBkb2VzIG5vdCB3b3JrCgkgICAgaW5zaWRlIGEgZnVuY3Rpb24uICAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgU2tpcCBvdmVyIHRoZSBmdW5jdGlvbiBuYW1lIHByb3Blcmx5LgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi4yMzAgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogYSBjb21wbGV4IHBhdHRlcm4gbWF5IGNhdXNlIGEgY3Jhc2guClNvbHV0aW9uOiAgIFVzZSBfX3RyeSBhbmQgX19leGNlcHQgdG8gY2F0Y2ggdGhlIGV4Y2VwdGlvbiBhbmQgaGFuZGxlIGl0CgkgICAgZ3JhY2VmdWxseSwgd2hlbiBwb3NzaWJsZS4gIEFkZCBteXJlc2V0c3Rrb2ZsdygpIHRvIHJlc2V0IHRoZQoJICAgIHN0YWNrIG92ZXJmbG93LiAoQmVuamFtaW4gUGV0ZXJzb24pCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1haywgc3JjL29zX21zd2luLmMgc3JjL29zX3dpbjMyLmMsIHNyYy9vc193aW4zMi5oLAoJICAgIHNyYy9wcm90by9vc193aW4zMi5wcm8sIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4yLjIzMSAoYWZ0ZXIgNi4yLjA0NikKUHJvYmxlbTogICAgVmFyaW91cyBwcm9ibGVtcyB3aGVuIGFuIGVycm9yIGV4Y2VwdGlvbiBpcyByYWlzZWQgZnJvbSB3aXRoaW4gYQoJICAgIGJ1aWx0aW4gZnVuY3Rpb24uICBXaGVuIGl0IGlzIGludm9rZWQgd2hpbGUgZXZhbHVhdGluZyBhcmd1bWVudHMKCSAgICB0byBhIGZ1bmN0aW9uIGZvbGxvd2luZyBhcmd1bWVudHMgYXJlIHN0aWxsIGV2YWx1YXRlZC4gIFdoZW4KCSAgICBpbnZva2VkIHdpdGggYSBsaW5lIHJhbmdlIGl0IHdpbGwgYmUgY2FsbGVkIGZvciByZW1haW5pbmcgbGluZXMuClNvbHV0aW9uOiAgIFVwZGF0ZSAiZm9yY2VfYWJvcnQiIGFsc28gYWZ0ZXIgY2FsbGluZyBhIGJ1aWx0aW4gZnVuY3Rpb24sIHNvCgkgICAgdGhhdCBhYm9ydGluZygpIGFsd2F5cyByZXR1cm5zIHRoZSBjb3JyZWN0IHZhbHVlLiAoU2VydmF0aXVzCgkgICAgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9leF9ldmFsLmMsIHNyYy9wcm90by9leF9ldmFsLnBybywKCSAgICBzcmMvdGVzdGRpci90ZXN0NDkub2ssIHNyYy90ZXN0ZGlyL3Rlc3Q0OS52aW0KClBhdGNoIDYuMi4yMzIKUHJvYmxlbTogICAgIjpweXRob24gdmltLmNvbW1hbmQoJ3B5dGhvbiBwcmludCAyKjInKSIgY3Jhc2hlcyBWaW0uICAoRXVnZW5lCgkgICAgTWlua292c2tpaSkKU29sdXRpb246ICAgRGlzYWxsb3cgZXhlY3V0aW5nIGEgUHl0aG9uIGNvbW1hbmQgcmVjdXJzaXZlbHkgYW5kIGdpdmUgYW4gZXJyb3IKCSAgICBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4yLjIzMwpQcm9ibGVtOiAgICBPbiBNYWMgT1NYIGFkZGluZyAtcHRocmVhZCBmb3IgUHl0aG9uIG9ubHkgZ2VuZXJhdGVzIGEgd2FybmluZy4KCSAgICBUaGUgdGVzdCBmb3IgUGVybCB0aHJlYWRzIHJlamVjdHMgUGVybCB3aGlsZSBpdCdzIE9LLgoJICAgIFRjbCBkb2Vzbid0IHdvcmsgYXQgYWxsLgoJICAgIFRoZSB0ZXN0IGZvciBSdWJ5IGZhaWxzIGlmIHJ1YnkgZXhpc3RzIGJ1dCB0aGVyZSBhcmUgbm8gaGVhZGVyCgkgICAgZmlsZXMuICBUaGUgUnVieSBsaWJyYXJ5IGlzbid0IGRldGVjdGVkIHByb3Blcmx5ClNvbHV0aW9uOiAgIEF2b2lkIGFkZGluZyAtcHRocmVhZCBvbiBNYWMgT1NYLiAgQWNjZXB0IFBlcmwgdGhyZWFkcyB3aGVuIGl0J3MKCSAgICBub3QgdGhlIDUuNSB0aHJlYWRzLgoJICAgIFVzZSB0aGUgVGNsIGZyYW1ld29yayBmb3IgaGVhZGVyIGZpbGVzLiAgRm9yIFJ1YnkgcmVuYW1lIGNXaW5kb3cKCSAgICB0byBjVmltV2luZG93IHRvIGF2b2lkIGEgbmFtZSBjbGFzaC4gKEtlbiBTY290dCkKCSAgICBPbmx5IGVuYWJsZSBSdWJ5IHdoZW4gdGhlIGhlYWRlciBmaWxlcyBjYW4gYmUgZm91bmQuICBVc2UgIi1scnVieSIKCSAgICBpbnN0ZWFkIG9mICJsaWJydWJ5LmEiIHdoZW4gaXQgY2FuJ3QgYmUgZm91bmQuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvaWZfcnVieS5jCgpQYXRjaCA2LjIuMjM0ClByb2JsZW06ICAgIEdUSyAyIEdVSTogIjpzcCIgYW5kIHRoZSAiOnEiIGxlYXZlcyB0aGUgY3Vyc29yIG9uIHRoZSBjb21tYW5kCgkgICAgbGluZS4KU29sdXRpb246ICAgRmx1c2ggb3V0cHV0IGJlZm9yZSByZW1vdmluZyBzY3JvbGxiYXJzLiAgQWxzbyBkbyB0aGlzIGluIG90aGVyCgkgICAgcGxhY2VzIHdoZXJlIGd1aV9tY2hfKigpIGZ1bmN0aW9ucyBhcmUgaW52b2tlZC4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jLCBzcmMvb3B0aW9uLmMsIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4yLjIzNSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBDdXJzb3IgaXNuJ3QgcmVtb3ZlZCB3aXRoIGEgMjV4ODAgd2luZG93IGFuZCBkb2luZzoKCSAgICAiMTgzMGlhPEVzYz40MDBhLTxFc2M+MHcwIi4gKFlhc3VoaXJvIE1hdHN1bW90bykKU29sdXRpb246ICAgUmVtb3ZlIHRoZSBjYWxsIHRvIGd1aV91bmRyYXdfY3Vyc29yKCkgZnJvbSBndWlfbWNoX2luc2VydF9saW5lcygpLgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMi4yMzYKUHJvYmxlbTogICAgVXNpbmcgZ3ZpbSB3aXRoIEFnaWRlIGdpdmVzICJjb25uZWN0aW9uIGxvc3QiIGVycm9yIG1lc3NhZ2VzLgpTb2x1dGlvbjogICBPbmx5IGdpdmUgdGhlICJjb25uZWN0aW9uIGxvc3QiIG1lc3NhZ2Ugd2hlbiB0aGUgYnVmZmVyIHdhcyBvbmNlCgkgICAgb3duZWQgYnkgTmV0QmVhbnMuCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMi4yMzcKUHJvYmxlbTogICAgR1RLIDI6IFRoYWkgdGV4dCBpcyBkcmF3biB3cm9uZy4gIEl0IGNoYW5nZXMgd2hlbiBtb3ZpbmcgdGhlCgkgICAgY3Vyc29yIG92ZXIgaXQuClNvbHV0aW9uOiAgIERpc2FibGUgdGhlIHNoYXBpbmcgZW5naW5lLCBpdCBtb3ZlcyBjb21iaW5pbmcgY2hhcmFjdGVycyB0byBhCgkgICAgd3JvbmcgcG9zaXRpb24gYW5kIGNvbWJpbmVzIGNoYXJhY3RlcnMsIHdoaWxlIGRyYXdpbmcgdGhlIGN1cnNvcgoJICAgIGRvZXNuJ3QgY29tYmluZSBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjIuMjM4IChhZnRlciA2LjIuMjMxKQpQcm9ibGVtOiAgICAiOmZ1bmN0aW9uIiBkb2VzIG5vdCB3b3JrIGluc2lkZSBhIHdoaWxlIGxvb3AuIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBBZGQgZ2V0X3doaWxlX2xpbmUoKSBhbmQgcGFzcyBpdCB0byBkb19vbmVfY21kKCkgd2hlbiBpbiBhIHdoaWxlCgkgICAgbG9vcCwgc28gdGhhdCBhbGwgbGluZXMgYXJlIHN0b3JlZCBhbmQgY2FuIGJlIHVzZWQgYWdhaW4gd2hlbgoJICAgIHJlcGVhdGluZyB0aGUgbG9vcC4KCSAgICBBZGp1c3QgdGVzdCA0OSBzbyB0aGF0IGl0IGNoZWNrcyBmb3IgdGhlIGZpeGVkIHByb2JsZW1zLgoJICAgIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9kaWdyYXBoLmMsIHNyYy9leF9jbWRzMi5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2V4X2V2YWwuYywKCSAgICBzcmMvcHJvdG8vZXhfY21kczIucHJvLCBzcmMvcHJvdG8vZXhfZG9jbWQucHJvLAoJICAgIHNyYy90ZXN0ZGlyL3Rlc3Q0OS5pbiwgc3JjL3Rlc3RkaXIvdGVzdDQ5Lm9rLAoJICAgIHNyYy90ZXN0ZGlyL3Rlc3Q0OS52aW0KClBhdGNoIDYuMi4yMzkKUHJvYmxlbTogICAgR1RLIDI6IFdpdGggY2xvc2VkIGZvbGRzIHRoZSBhcnJvdyBidXR0b25zIG9mIGEgdmVydGljYWwgc2Nyb2xsYmFyCgkgICAgb2Z0ZW4gZG9lc24ndCBzY3JvbGwuIChNb3NoZSBLYW1pbnNreSkKU29sdXRpb246ICAgSGFja2lzaCBzb2x1dGlvbjogRGV0ZWN0IHRoYXQgdGhlIGJ1dHRvbiB3YXMgcHJlc3NlZCBmcm9tIHRoZQoJICAgIG1vdXNlIHBvaW50ZXIgcG9zaXRpb24uCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYywgc3JjL2d1aS5jCgpQYXRjaCA2LjIuMjQwClByb2JsZW06ICAgIEdUSyAyOiBTZWFyY2hpbmcgZm9yIGJpdG1hcHMgZm9yIHRoZSB0b29sYmFyIGRvZXNuJ3Qgd29yayBhcyB3aXRoCgkgICAgb3RoZXIgc3lzdGVtcy4gIE5lZWQgdG8gZXhwbGljaXRseSB1c2UgImljb249bmFtZSIuICAoTmVkIEtvbnosCgkgICAgQ2hyaXN0aWFuIEouICBSb2JpbnNvbikKU29sdXRpb246ICAgU2VhcmNoIGZvciBpY29ucyBsaWtlIGRvbmUgZm9yIE1vdGlmLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMKClBhdGNoIDYuMi4yNDEKUHJvYmxlbTogICAgR1RLIDI6IFNlYXJjaCBhbmQgU2VhcmNoL1JlcGxhY2UgZGlhbG9ncyBhcmUgc3luY2VkLCB0aGF0IG1ha2VzIG5vCgkgICAgc2Vuc2UuICBCdXR0b25zIGFyZSBzb21ldGltZXMgZ3JleWVkLW91dC4gKEplcmVteSBNZXNzZW5nZXIpClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgY29kZSB0byBzeW5jIHRoZSB0d28gZGlhbG9ncy4gIEFkanVzdCB0aGUgY29kZSB0byByZWFjdAoJICAgIHRvIGFuIGVtcHR5IHNlYXJjaCBzdHJpbmcgdG8gYWxzbyB3b3JrIGZvciBHVEsyLiAoRGF2aWQgTmVjYXMpCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYwoKUGF0Y2ggNi4yLjI0MgpQcm9ibGVtOiAgICBHbm9tZTogInZpbSAtLWhlbHAiIG9ubHkgc2hvd3MgdGhlIEdub21lIGFyZ3VtZW50cywgbm90IHRoZSBWaW0KCSAgICBhcmd1bWVudHMuClNvbHV0aW9uOiAgIERvbid0IGxldCB0aGUgR25vbWUgY29kZSByZW1vdmUgdGhlICItLWhlbHAiIGFyZ3VtZW50IGFuZCBkb24ndAoJICAgIGV4aXQgYXQgdGhlIGVuZCBvZiB1c2FnZSgpLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jLCBzcmMvbWFpbi5jCgpQYXRjaCA2LjIuMjQzIChleHRyYSkKUHJvYmxlbTogICAgTWFjOiBEcm9wcGluZyBhIGZpbGUgb24gYSBWaW0gaWNvbiBjYXVzZXMgYSBoaXQtZW50ZXIgcHJvbXB0LgpTb2x1dGlvbjogICBNb3ZlIHRoZSBkcm9wcGVkIGZpbGVzIHRvIHRoZSBnbG9iYWwgYXJndW1lbnQgbGlzdCwgaW5zdGVhZCBvZiB0aGUKCSAgICB1c3VhbCBkcm9wIGhhbmRsaW5nLiAoRWNrZWhhcmQgQmVybnMpCkZpbGVzOgkgICAgc3JjL21haW4uYywgc3JjL2d1aV9tYWMuYwoKUGF0Y2ggNi4yLjI0NApQcm9ibGVtOiAgICAnOmVjaG8gIlx4ZjciJyBkaXNwbGF5cyB0aGUgaWxsZWdhbCBieXRlIGFzIGlmIGl0IHdhcyBhIGNoYXJhY3RlcgoJICAgIGFuZCBsZWF2ZXMgImNobyIgYWZ0ZXIgaXQuClNvbHV0aW9uOiAgIFdoZW4gY2hlY2tpbmcgdGhlIGxlbmd0aCBvZiBhIFVURi04IGJ5dGUgc2VxdWVuY2UgYW5kIGl0J3Mgc2hvcnRlcgoJICAgIHRoYW4gdGhlIG51bWJlciBvZiBieXRlcyBhdmFpbGFibGUsIGFzc3VtZSBpdCdzIGFuIGlsbGVnYWwgYnl0ZS4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjI0NQpQcm9ibGVtOiAgICBDb21wbGV0aW9uIGRvZXNuJ3Qgd29yayBmb3IgIjprZWVwbWFya3MiIGFuZCAiOmxvY2ttYXJrcyIuClNvbHV0aW9uOiAgIEFkZCB0aGUgY29tbWFuZCBtb2RpZmllcnMgdG8gdGhlIHRhYmxlIG9mIGNvbW1hbmRzLiAoTWFkb2thCgkgICAgTWFjaGl0YW5pKQpGaWxlczoJICAgIHNyYy9leF9jbWRzLmgsIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjIuMjQ2ClByb2JsZW06ICAgIE1hYzogU3RhcnRpbmcgVmltIGZyb20gRmluZGVyIGRvZXNuJ3Qgc2hvdyBlcnJvciBtZXNzYWdlcy4KU29sdXRpb246ICAgUmVjb2duaXplIHRoYXQgb3V0cHV0IGlzIGJlaW5nIGRpc3BsYXllZCBieSBzdGRlcnIgYmVpbmcKCSAgICAiL2Rldi9jb25zb2xlIi4gIChFY2tlaGFyZCBCZXJucykKRmlsZXM6CSAgICBzcmMvbWFpbi5jLCBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjIuMjQ3IChhZnRlciA2LjIuMTkzKQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgc2VhcmNoIHBhdHRlcm4gZnJvbSB0aGUgdmltaW5mbyBmaWxlIHRoZSBsYXN0CgkgICAgY2hhcmFjdGVyIGlzIHJlcGxhY2VkIHdpdGggYSAnLycuClNvbHV0aW9uOiAgIFN0b3JlIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyIGluIHRoZSByaWdodCBwbGFjZS4gKEtlbHZpbiBMZWUpCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMi4yNDgKUHJvYmxlbTogICAgR1RLOiBXaGVuIFhJTSBpcyBlbmFibGVkIG5vcm1hbCAiMiIgYW5kIGtleXBhZCAiMiIgY2Fubm90IGJlCgkgICAgZGlzdGluZ3Vpc2hlZC4KU29sdXRpb246ICAgRGV0ZWN0IHRoYXQgWElNIGNoYW5nZXMgdGhlIGtleXBhZCBrZXkgdG8gdGhlIGV4cGVjdGVkIEFTQ0lJCgkgICAgY2hhcmFjdGVyIGFuZCBmYWxsIGJhY2sgdG8gdGhlIG5vbi1YSU0gY29kZS4gKE5laWwgQmlyZCkKRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYywgc3JjL21ieXRlLmMsIHNyYy9wcm90by9tYnl0ZS5wcm8KClBhdGNoIDYuMi4yNDkKUHJvYmxlbTogICAgIjpjbmV4dCIgbW92ZXMgdG8gdGhlIGVycm9yIGluIHRoZSBuZXh0IGZpbGUsIGJ1dCB0aGVyZSBpcyBubwoJICAgIG1ldGhvZCB0byBnbyBiYWNrLgpTb2x1dGlvbjogICBBZGQgIjpjcGZpbGUiIGFuZCAiOmNOZmlsZSIuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuaCwgc3JjL3F1aWNrZml4LmMsIHNyYy92aW0uaCwgcnVudGltZS9kb2MvcXVpY2tmaXgudHh0CgpQYXRjaCA2LjIuMjUwClByb2JsZW06ICAgIE1lbW9yeSBsZWFrcyB3aGVuIHVzaW5nIHNpZ25zLiAoWGF2aWVyIGRlIEdheWUpClNvbHV0aW9uOiAgIERlbGV0ZSB0aGUgbGlzdCBvZiBzaWducyB3aGVuIHVubG9hZGluZyBhIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMi4yNTEKUHJvYmxlbTogICAgR1RLOiBUaGUgJ3YnIGZsYWcgaW4gJ2d1aW9wdGlvbnMnIGRvZXNuJ3Qgd29yay4gKFN0ZXZlIEhhbGwpCgkgICAgT3JkZXIgb2YgYnV0dG9ucyBpcyByZXZlcnNlZCBmb3IgR1RLIDIuMi40LiAgRG9uJ3QgYWx3YXlzIGdldAoJICAgIGZvY3VzIGJhY2sgYWZ0ZXIgaGFuZGxpbmcgYSBkaWFsb2cuClNvbHV0aW9uOiAgIE1ha2UgYnV0dG9ucyBhcHBlYXIgdmVydGljYWxseSB3aGVuIGRlc2lyZWQuICBSZXZlcnNlIHRoZSBvcmRlciBpbgoJICAgIHdoaWNoIGJ1dHRvbnMgYXJlIGFkZGVkIHRvIGEgZGlhbG9nLiAgTW92ZSBtb3VzZSBwb2ludGVyIGFyb3VuZAoJICAgIHdoZW4gdGhlIGRpYWxvZyBpcyBkb25lIGFuZCB3ZSBkb24ndCBoYXZlIGZvY3VzLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMKClBhdGNoIDYuMi4yNTIgKGV4dHJhLCBhZnRlciA2LjIuMjQzKQpQcm9ibGVtOiAgICBNYWM6IERyb3BwaW5nIGEgZmlsZSBvbiBhIFZpbSBpY29uIGNhdXNlcyBhIGhpdC1lbnRlciBwcm9tcHQgZm9yCgkgICAgTWFjIE9TIGNsYXNzaWMuClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgI2lmZGVmIGZyb20gdGhlIGNvZGUgdGhhdCBmaXhlcyBpdCBmb3IgTWFjIE9TWC4KRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jCgpQYXRjaCA2LjIuMjUzClByb2JsZW06ICAgIFdoZW4gJ3RhZ3N0YWNrJyBpcyBub3Qgc2V0IGEgIjp0YWcgaWQiIGNvbW1hbmQgZG9lcyBub3Qgd29yayBhZnRlcgoJICAgIGEgIjp0anVtcCIgY29tbWFuZC4KU29sdXRpb246ICAgU2V0ICJuZXdfdGFnIiB3aGVuICd0YWdzdGFjaycgaXNuJ3Qgc2V0LiAoRy4gTmFyZW5kcmFuKQpGaWxlczoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjI1NApQcm9ibGVtOiAgICBNYXkgcnVuIG91dCBvZiBzcGFjZSBmb3IgZXJyb3IgbWVzc2FnZXMuClNvbHV0aW9uOiAgIEtlZXAgcm9vbSBmb3IgdHdvIG1vcmUgYnl0ZXMuCkZpbGVzOgkgICAgc3JjL3F1aWNrZml4LmMKClBhdGNoIDYuMi4yNTUKUHJvYmxlbTogICAgR1RLOiBBIG5ldyBpdGVtIGluIHRoZSBwb3B1cCBtZW51IGlzIHB1dCBqdXN0IGFmdGVyIGluc3RlYWQgb2YKCSAgICBqdXN0IGJlZm9yZSB0aGUgcmlnaHQgaXRlbS4gKEdhYnJpZWwgWmFjaG1hbm4pClNvbHV0aW9uOiAgIERvbid0IGluY3JlbWVudCB0aGUgbWVudSBpdGVtIGluZGV4LgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMKClBhdGNoIDYuMi4yNTYKUHJvYmxlbTogICAgTWFjOiAibWFjcm9tYW4iIGVuY29kaW5nIGlzbid0IHJlY29nbml6ZWQsIG5lZWQgdG8gdXNlCgkgICAgIjhiaXQtbWFjcm9tYW4uClNvbHV0aW9uOiAgIFJlY29nbml6ZSAibWFjcm9tYW4iIHdpdGggYW4gYWxpYXMgIm1hYyIuIChFY2tlaGFyZCBCZXJucykKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjI1NyAoYWZ0ZXIgNi4yLjI1MCkKUHJvYmxlbTogICAgU2lnbnMgYXJlIGRlbGV0ZWQgZm9yICI6YmRlbCIsIGJ1dCB0aGV5IGNvdWxkIHN0aWxsIGJlIHVzZWZ1bC4KU29sdXRpb246ICAgRGVsZXRlIHNpZ25zIG9ubHkgZm9yICI6YndpcGUiLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4yLjI1OApQcm9ibGVtOiAgICBHVUk6IGNhbid0IGRpc2FibGUgKGdyZXktb3V0KSBhIHBvcHVwIG1lbnUgaXRlbS4gIChBaml0IFRoYWtrYXIpClNvbHV0aW9uOiAgIExvb3Agb3ZlciB0aGUgcG9wdXAgbWVudXMgZm9yIGFsbCBtb2Rlcy4KRmlsZXM6CSAgICBzcmMvbWVudS5jCgpQYXRjaCA2LjIuMjU5ClByb2JsZW06ICAgIElmIHRoZXJlIGFyZSBtZXNzYWdlcyB3aGVuIGV4aXRpbmcsIG9uIHRoZSBjb25zb2xlIHRoZXJlIGlzIGEKCSAgICBoaXQtZW50ZXIgcHJvbXB0IHdoaWxlIHRoZSBtZXNzYWdlIGNhbiBiZSByZWFkOyBpbiB0aGUgR1VJIHRoZQoJICAgIG1lc3NhZ2UgbWF5IG5vdCBiZSB2aXNpYmxlLgpTb2x1dGlvbjogICBVc2UgdGhlIGhpdC1lbnRlciBwcm9tcHQgd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBtZXNzYWdlIGZyb20KCSAgICB3cml0aW5nIHRoZSB2aW1pbmZvIGZpbGUgb3IgYXV0b2NvbW1hbmRzLCBvciB3aGVuIHRoZXJlIGlzIGFueQoJICAgIG91dHB1dCBpbiB0aGUgR1VJIGFuZCAndmVyYm9zZScgaXMgc2V0LiAgRG9uJ3QgdXNlIGEgaGl0LWVudGVyCgkgICAgcHJvbXB0IGZvciB0aGUgbm9uLUdVSSB2ZXJzaW9uIHVubGVzcyB0aGVyZSBpcyBhbiBlcnJvciBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMi4yNjAKUHJvYmxlbTogICAgR1RLIDI6IENhbid0IHF1aXQgYSBkaWFsb2cgd2l0aCA8RXNjPi4KCSAgICBHVEsgMSBhbmQgMjogPEVudGVyPiBhbHdheXMgZ2l2ZXMgYSByZXN1bHQsIGV2ZW4gd2hlbiB0aGUgZGVmYXVsdAoJICAgIGJ1dHRvbiBoYXMgYmVlbiBkaXNhYmxlZC4KU29sdXRpb246ICAgSGFuZGxlIHRoZXNlIGtleXMgZXhwbGljaXRseS4gIFdoZW4gbm8gZGVmYXVsdCBidXR0b24gaXMgc3BlY2lmaWVkCgkgICAgdXNlIHRoZSBmaXJzdCBvbmUgKHdvcmtzIG1vc3RseSBsaWtlIGl0IHdhcyBiZWZvcmUpLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMKClBhdGNoIDYuMi4yNjEKUHJvYmxlbTogICAgV2hlbiAnYXV0b2luZGVudCcgYW5kICdjaW5kZW50JyBhcmUgc2V0IGFuZCBhIGxpbmUgaXMgcmVjb2duaXplZAoJICAgIGFzIGEgY29tbWVudCwgc3RhcnRpbmcgYSBuZXcgbGluZSB3b24ndCBkbyAnY2luZGVudCcgZm9ybWF0dGluZy4KU29sdXRpb246ICAgQWxzbyB1c2UgJ2NpbmRlbnQnIGZvcm1hdHRpbmcgZm9yIGxpbmVzIHRoYXQgYXJlIHVzZWQgYXMgYQoJICAgIGNvbW1lbnQuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjIuMjYyClByb2JsZW06ICAgIDEgQ1RSTC1XIHcgYmVlcHMsIGV2ZW4gdGhvdWdoIGdvaW5nIHRvIHRoZSBmaXJzdCB3aW5kb3cgaXMKCSAgICBwb3NzaWJsZS4gKENoYXJsZXMgQ2FtcGJlbGwpClNvbHV0aW9uOiAgIERvbid0IGJlZXAuCkZpbGVzOgkgICAgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjIuMjYzClByb2JsZW06ICAgIExpbnQgd2FybmluZ3M6IER1cGxpY2F0ZSBmdW5jdGlvbiBwcm90b3R5cGVzLCBkdXBsaWNhdGUgbWFjcm9zLAoJICAgIHVzZSBvZiBhIHplcm8gY2hhcmFjdGVyIGluc3RlYWQgb2YgYSB6ZXJvIHBvaW50ZXIsIHVudXNlZAoJICAgIHZhcmlhYmxlLiAgQ2xlYXJpbmcgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIGNvbXBsaWNhdGVkIHdheS4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBmdW5jdGlvbiBwcm90b3R5cGVzIGZyb20gZmFyc2kuaC4gIFJlbW92ZSB0aGUKCSAgICBkdXBsaWNhdGVkIGxpbmVzIGluIGtleW1hcC5oLiAgQ2hhbmdlIGdldHZjb2woKSBhcmd1bWVudCBmcm9tIE5VTAoJICAgIHRvIE5VTEwuICBSZW1vdmUgdGhlICJjb2wiIHZhcmlhYmxlIGluIHJlZ21hdGNoKCkuICBVc2UKCSAgICBsYWxsb2NfY2xlYXIoKSBpbnN0ZWFkIG9mIGxhbGxvYygpLiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL2ZhcnNpLmgsIHNyYy9rZXltYXAuaCwgc3JjL29wcy5jLCBzcmMvcmVnZXhwLmMsIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4yLjI2NCAoYWZ0ZXIgNi4yLjI0NykKUHJvYmxlbTogICAgV3JpdGluZyBwYXN0IGFsbG9jYXRlZCBtZW1vcnkgd2hlbiB1c2luZyBhIGNvbW1hbmQgbGluZSBmcm9tIHRoZQoJICAgIHZpbWluZm8gZmlsZS4KU29sdXRpb246ICAgU3RvcmUgdGhlIE5VTCBpbiB0aGUgcmlnaHQgcGxhY2UuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMi4yNjUKUHJvYmxlbTogICAgQWx0aG91Z2ggIjpzZXQiIGlzIG5vdCBhbGxvd2VkIGluIHRoZSBzYW5kYm94LCAiOmxldCAmb3B0ID0gdmFsIgoJICAgIHdvcmtzLgpTb2x1dGlvbjogICBEbyBhbGxvdyBjaGFuZ2luZyBvcHRpb25zIGluIHRoZSBzYW5kYm94LCBidXQgbm90IHRoZSBvbmVzIHRoYXQKCSAgICBjYW4ndCBiZSBjaGFuZ2VkIGZyb20gYSBtb2RlbGluZS4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5oLCBzcmMvb3B0aW9ucy5jCgpQYXRjaCA2LjIuMjY2ClByb2JsZW06ICAgIFdoZW4gcmVkaXJlY3Rpbmcgb3V0cHV0IGFuZCB1c2luZyAiOnNpbGVudCIsIGxpbmUgYnJlYWtzIGFyZQoJICAgIG1pc3NpbmcgZnJvbSBvdXRwdXQgb2YgIjptYXAiIGFuZCAiOnRzZWxlY3QiLiAgQWxpZ25tZW50IG9mCgkgICAgY29sdW1ucyBpcyB3cm9uZy4KU29sdXRpb246ICAgSW5zZXJ0IGEgbGluZSBicmVhayB3aGVyZSAibXNnX2RpZG91dCIgd2FzIHRlc3RlZC4gIFVwZGF0ZSBtc2dfY29sCgkgICAgd2hlbiByZWRpcmVjdGluZyBhbmQgdXNpbmcgIjpzaWxlbnQiLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMsIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMi4yNjcgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogIiYmIiBpbiBhIHRlYXJvZmYgbWVudSBpcyBub3Qgc2hvd24uIChMdWMgSGVybWl0dGUpClNvbHV0aW9uOiAgIFVzZSB0aGUgIm5hbWUiIGl0ZW0gZnJvbSB0aGUgbWVudSBpbnN0ZWFkIG9mIHRoZSAiZG5hbWUiIGl0ZW0uCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYywgc3JjL21lbnUuYwoKUGF0Y2ggNi4yLjI2OApQcm9ibGVtOiAgICBHVUk6IFdoZW4gY2hhbmdpbmcgJ2d1aW9wdGlvbnMnIHBhcnQgb2YgdGhlIHdpbmRvdyBtYXkgYmUgb2ZmCgkgICAgc2NyZWVuLiAoUmFuZGFsbCBNb3JyaXMpClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgc2l6ZSBvZiB0aGUgd2luZG93IHdoZW4gY2hhbmdpbmcgJ2d1aW9wdGlvbnMnLCBidXQgb25seQoJICAgIHdoZW4gYWRkaW5nIHNvbWV0aGluZy4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMi4yNjkKUHJvYmxlbTogICAgRGlmZiBtb2RlIGRvZXMgbm90IGhpZ2hsaWdodCBhIGNoYW5nZSBpbiBhIGNvbWJpbmluZyBjaGFyYWN0ZXIuCgkgICAgKFJhcGhhZWwgRmlua2VsKQpTb2x1dGlvbjogICBNYWtlIGRpZmZfZmluZF9jaGFuZ2UoKSBtdWx0aS1ieXRlIGF3YXJlOiBmaW5kIHRoZSBzdGFydCBieXRlIG9mCgkgICAgYSBjaGFyYWN0ZXIgdGhhdCBjb250YWlucyBhIGNoYW5nZS4KRmlsZXM6CSAgICBzcmMvZGlmZi5jCgpQYXRjaCA2LjIuMjcwClByb2JsZW06ICAgIENvbXBsZXRpb24gaW4gSW5zZXJ0IG1vZGUsIHRoZW4gcmVwZWF0aW5nIHdpdGggIi4iLCBkb2Vzbid0IGhhbmRsZQoJICAgIGNvbXBvc2luZyBjaGFyYWN0ZXJzIGluIHRoZSBjb21wbGV0ZWQgdGV4dC4gKFJhcGhhZWwgRmlua2VsKQpTb2x1dGlvbjogICBEb24ndCBza2lwIG92ZXIgY29tcG9zaW5nIGNoYXJzIHdoZW4gYWRkaW5nIGNvbXBsZXRlZCB0ZXh0IHRvIHRoZQoJICAgIHJlZG8gYnVmZmVyLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMKClBhdGNoIDYuMi4yNzEKUHJvYmxlbTogICAgTmV0QmVhbnM6IENhbid0IGRvICJ0YWlsIC1mIiBvbiB0aGUgbG9nLiAgUGFzc2luZyBzb2NrZXQgaW5mbyB3aXRoCgkgICAgYW4gYXJndW1lbnQgb3IgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IHNlY3VyZS4KU29sdXRpb246ICAgV2FpdCBhZnRlciBpbml0aWFsaXppbmcgdGhlIGxvZy4gIEFsbG93IHBhc3NpbmcgdGhlIHNvY2tldCBpbmZvCgkgICAgdGhyb3VnaCBhIGZpbGUuIChHb3Jkb24gUHJpZXVyKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL25ldGJlYW5zLnR4dCwgc3JjL21haW4uYywgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMi4yNzIKUHJvYmxlbTogICAgV2hlbiB0aGUgInBvIiBkaXJlY3RvcnkgZXhpc3RzLCBidXQgInBvL01ha2VmaWxlIiBkb2Vzbid0LAoJICAgIGJ1aWxkaW5nIGZhaWxzLiAgTWFrZSBsb29wcyB3aGVuIHRoZSAicG8iIGRpcmVjdG9yeSBoYXMgYmVlbgoJICAgIGRlbGV0ZWQgYWZ0ZXIgcnVubmluZyBjb25maWd1cmUuClNvbHV0aW9uOiAgIENoZWNrIGZvciB0aGUgInBvL01ha2VmaWxlIiBpbnN0ZWFkIG9mIGp1c3QgdGhlICJwbyIgZGlyZWN0b3J5LgoJICAgIENoZWNrIHRoaXMgYWdhaW4gYmVmb3JlIHRyeWluZyB0byBydW4gbWFrZSB3aXRoIHRoYXQgTWFrZWZpbGUuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMi4yNzMKUHJvYmxlbTogICAgQ2hhbmdpbmcgdGhlIHNvcnQgb3JkZXIgaW4gYW4gZXhwbG9yZXIgd2luZG93IGZvciBhbiBlbXB0eQoJICAgIGRpcmVjdG9yeSBwcm9kdWNlcyBlcnJvciBtZXNzYWdlcy4gKERvdWcgS2Vhcm5zKQpTb2x1dGlvbjogICBXaGVuIGFuIGludmFsaWQgcmFuZ2UgaXMgdXNlZCBmb3IgYSBmdW5jdGlvbiB0aGF0IGlzIG5vdCBnb2luZyB0bwoJICAgIGJlIGV4ZWN1dGVkLCBza2lwIG92ZXIgdGhlIGFyZ3VtZW50cyBhbnl3YXkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yLjI3NApQcm9ibGVtOiAgICAiOnByaW50IiBza2lwcyBlbXB0eSBsaW5lcyB3aGVuICdsaXN0JyBpcyBzZXQgYW5kIHRoZXJlIGlzIG5vCgkgICAgImVvbCIgaW4gJ2xpc3RjaGFycycuIChZYWtvdiBMZXJuZXIpClNvbHV0aW9uOiAgIFNraXAgb3V0cHV0dGluZyBhIHNwYWNlIGZvciBhbiBlbXB0eSBsaW5lIG9ubHkgd2hlbiAnbGlzdCcgaXMgc2V0CgkgICAgYW5kIHRoZSBlbmQtb2YtbGluZSBjaGFyYWN0ZXIgaXMgbm90IGVtcHR5LgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMi4yNzUgKGV4dHJhLCBhZnRlciA2LjIuMjY3KQpQcm9ibGVtOiAgICBXYXJuaW5nIGZvciB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdoZW4gdXNpbmcgZ2NjLgpTb2x1dGlvbjogICBJbml0aWFsaXplICJhY0xlbiIgdG8gemVyby4gKEJpbGwgTWNDYXJ0aHkpCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4yLjI3NgpQcm9ibGVtOiAgICAiOmVjaG8gWCgpIiBkb2VzIG5vdCBwdXQgYSBsaW5lIGJyZWFrIGJldHdlZW4gdGhlIG1lc3NhZ2UgdGhhdCBYKCkKCSAgICBkaXNwbGF5cyBhbmQgdGhlIHRleHQgdGhhdCBYKCkgcmV0dXJucy4gKFlha292IExlcm5lcikKU29sdXRpb246ICAgSW52b2tlIG1zZ19zdGFydCgpIGFmdGVyIGV2YWx1YXRpbmcgdGhlIGFyZ3VtZW50LgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi4yNzcKUHJvYmxlbTogICAgVmltIGNyYXNoZXMgd2hlbiBhICI6cnVudGltZSBmdHBsdWdpbi9hZGEudmltIiBjYXVzZXMgYSByZWN1cnNpdmUKCSAgICBsb29wLiAoUm9iZXJ0IE5vd290bmlhaykKU29sdXRpb246ICAgUmVzdG9yZSAibXNnX2xpc3QiIGJlZm9yZSByZXR1cm5pbmcgZnJvbSBkb19jbWRsaW5lKCkuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMi4yNzgKUHJvYmxlbTogICAgVXNpbmcgIm11Y2giIGluc3RlYWQgb2YgIm1hbnkiLgpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBlcnJvciBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi4yNzkKUHJvYmxlbTogICAgVGhlcmUgaXMgbm8gZGVmYXVsdCBjaG9pY2UgZm9yIGEgY29uZmlybSgpIGRpYWxvZywgbm93IHRoYXQgaXQgaXMKCSAgICBwb3NzaWJsZSBub3QgdG8gaGF2ZSBhIGRlZmF1bHQgY2hvaWNlLgpTb2x1dGlvbjogICBNYWtlIHRoZSBmaXJzdCBjaG9pY2UgdGhlIGRlZmF1bHQgY2hvaWNlLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuMjgwClByb2JsZW06ICAgICJkbyIgYW5kICI6ZGlmZmdldCIgZG9uJ3Qgd29yayBpbiB0aGUgZmlyc3QgbGluZSBhbmQgdGhlIGxhc3QgbGluZQoJICAgIG9mIGEgYnVmZmVyLiAoQXJvbiBHcmlmZmlzKQpTb2x1dGlvbjogICBGaW5kIGEgZGlmZmVyZW5jZSBhYm92ZSB0aGUgZmlyc3QgbGluZSBhbmQgYmVsb3cgdGhlIGxhc3QgbGluZS4KCSAgICBBbHNvIGZpeCBhIGZldyBkaXNwbGF5IHVwZGF0aW5nIGJ1Z3MuCkZpbGVzOgkgICAgc3JjL2RpZmYuYywgc3JjL2ZvbGQuYywgc3JjL21vdmUuYwoKUGF0Y2ggNi4yLjI4MQpQcm9ibGVtOiAgICBQb3N0U2NyaXB0IHByaW50aW5nIGRvZXNuJ3Qgd29yayBvbiBNYWMgT1MgWCAxMC4zLjIuClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgaGVhZGVyIGZpbGUuIChNaWtlIFdpbGxpYW1zKQpGaWxlczoJICAgIHJ1bnRpbWUvcHJpbnQvcHJvbG9nLnBzCgpQYXRjaCA2LjIuMjgyClByb2JsZW06ICAgIFdoZW4gdXNpbmcgQ1RSTC1PIHRvIGdvIGJhY2sgdG8gYSBoZWxwIGZpbGUsIGl0IGJlY29tZXMgbGlzdGVkLgoJICAgIChBbmRyZXcgTmVzYml0KQoJICAgIFVzaW5nICI6dGFnIiBvciAiOnRqdW1wIiBpbiBhIGhlbHAgZmlsZSBkb2Vzbid0IGtlZXAgdGhlIGhlbHAgZmlsZQoJICAgIHNldHRpbmdzIChlLmcuIGZvciAnaXNrZXl3b3JkJykuClNvbHV0aW9uOiAgIERvbid0IG1hcmsgYSBidWZmZXIgYXMgbGlzdGVkIHdoZW4gaXRzIGhlbHAgZmxhZyBpcyBzZXQuICBQdXQgYWxsCgkgICAgdGhlIG9wdGlvbiBzZXR0aW5ncyBmb3IgYSBoZWxwIGJ1ZmZlciB0b2dldGhlciBpbiBkb19lY21kKCkuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4yLjI4MwpQcm9ibGVtOiAgICBUaGUgImxvY2FsIGFkZGl0aW9ucyIgaW4gaGVscC50eHQgYXJlIHVzZWQgd2l0aG91dCBjb252ZXJzaW9uLAoJICAgIGNhdXNpbmcgbGF0aW4xIGNoYXJhY3RlcnMgc2hvd2luZyB1cCB3cm9uZyB3aGVuICdlbmMnIGlzIHV0Zi04LgoJICAgIChBbnRvaW5lIEouIE1lY2hlbHluY2spClNvbHV0aW9uOiAgIENvbnZlcnQgdGhlIHRleHQgdG8gJ2VuY29kaW5nJy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjIuMjg0ClByb2JsZW06ICAgIExpc3RpbmcgYSBmdW5jdGlvbiBwdXRzICJlbmRmdW5jdGlvbiIgaW4gdGhlIG1lc3NhZ2UgaGlzdG9yeS4KCSAgICBUeXBpbmcgInEiIGF0IHRoZSBtb3JlIHByb21wdCBpc24ndCBoYW5kbGVkIGNvcnJlY3RseSB3aGVuIGxpc3RpbmcKCSAgICB2YXJpYWJsZXMgYW5kIGZ1bmN0aW9ucy4gIChIYXJhIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgRG9uJ3QgdXNlIG1zZygpIGZvciAiZW5kZnVuY3Rpb24iLiAgQ2hlY2sgImdvdF9pbnQiIHJlZ3VsYXJseS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuMjg1ClByb2JsZW06ICAgIEdVSTogSW4gYSBzaW5nbGUgd3JhcHBlZCBsaW5lIHRoYXQgZmlsbHMgdGhlIHdpbmRvdywgImdqIiBpbiB0aGUKCSAgICBsYXN0IHNjcmVlbiBsaW5lIGxlYXZlcyB0aGUgY3Vyc29yIGJlaGluZC4gKEl2YW4gVGFyYXNvdikKU29sdXRpb246ICAgVW5kcmF3IHRoZSBjdXJzb3IgYmVmb3JlIHNjcm9sbGluZyB0aGUgdGV4dCB1cC4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMi4yODYKUHJvYmxlbTogICAgV2hlbiB0cnlpbmcgdG8gcmVuYW1lIGEgZmlsZSBhbmQgaXQgZG9lc24ndCBleGlzdCwgdGhlIGRlc3RpbmF0aW9uCgkgICAgZmlsZSBpcyBkZWxldGVkIGFueXdheS4gKEx1YyBEZXV4KQpTb2x1dGlvbjogICBEb24ndCBkZWxldGUgdGhlIGRlc3RpbmF0aW9uIHdoZW4gdGhlIHNvdXJjZSBkb2Vzbid0IGV4aXN0LiAoVGFybwoJICAgIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuMjg3IChhZnRlciA2LjIuMjY0KQpQcm9ibGVtOiAgICBEdXBsaWNhdGUgbGluZXMgYXJlIGFkZGVkIHRvIHRoZSB2aW1pbmZvIGZpbGUuClNvbHV0aW9uOiAgIENvbXBhcmUgd2l0aCBleGlzdGluZyBlbnRyaWVzIHdpdGhvdXQgYW4gb2Zmc2V0LiAgQWxzbyBmaXhlcwoJICAgIHJlYWRpbmcgdmVyeSBsb25nIGhpc3RvcnkgbGluZXMgZnJvbSB2aW1pbmZvLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjIuMjg4IChleHRyYSkKUHJvYmxlbTogICAgTWFjOiBBbiBleHRlcm5hbCBwcm9ncmFtIGNhbid0IGJlIGludGVycnVwdGVkLgpTb2x1dGlvbjogICBEb24ndCB1c2UgdGhlICdjJyBrZXkgZm9yIGJhY2tzcGFjZS4gKEVja2VoYXJkIEJlcm5zKQpGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMKClBhdGNoIDYuMi4yODkKUHJvYmxlbTogICAgQ29tcGlsaW5nIHRoZSBUY2wgaW50ZXJmYWNlIHdpdGggdGhyZWFkIHN1cHBvcnQgY2F1c2VzICI6bWFrZSIgdG8KCSAgICBmYWlsLiAgKEp1ZXJnZW4gU2FsaykKU29sdXRpb246ICAgVXNlICRUQ0xfREVGUyBmcm9tIHRoZSBUY2wgY29uZmlnIHNjcmlwdCB0byBvYnRhaW4gdGhlIHJlcXVpcmVkCgkgICAgY29tcGlsZSBmbGFncyBmb3IgdXNpbmcgdGhlIHRocmVhZCBsaWJyYXJ5LgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4yLjI5MCAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogVGhlIG1vdXNld2hlZWwgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBBZGQgbW91c2V3aGVlbCBzdXBwb3J0LiAgQWxzbyBmaXggdXBkYXRpbmcgdGhlIHRodW1iIGFmdGVyIGEgZHJhZwoJICAgIGFuZCB0aGVuIHVzaW5nIGFub3RoZXIgd2F5IHRvIHNjcm9sbC4gIChFY2tlaGFyZCBCZXJucykKRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jCgpQYXRjaCA2LjIuMjkxIChleHRyYSkKUHJvYmxlbTogICAgTWFjOiB0aGUgcGx1cyBidXR0b24gYW5kIGNsb3NlIGJ1dHRvbiBkb24ndCBkbyBhbnl0aGluZy4KU29sdXRpb246ICAgTWFrZSB0aGUgcGx1cyBidXR0b24gbWF4aW1pemUgdGhlIHdpbmRvdyBhbmQgdGhlIGNsb3NlIGJ1dHRvbgoJICAgIGNsb3NlIFZpbS4gKEVja2VoYXJkIEJlcm5zKQpGaWxlczoJICAgIHNyYy9ndWkuYywgc3JjL2d1aV9tYWMuYwoKUGF0Y2ggNi4yLjI5MgpQcm9ibGVtOiAgICBNb3RpZjogV2hlbiByZW1vdmluZyBHVUkgYXJndW1lbnRzIGZyb20gYXJndltdIGEgInBzIC1lZiIgc2hvd3MKCSAgICB0aGUgbGFzdCBhcmd1bWVudCByZXBlYXRlZC4KU29sdXRpb246ICAgU2V0IGFyZ3ZbYXJnY10gdG8gTlVMTC4gKE1pY2hhZWwgSmFydmlzKQpGaWxlczoJICAgIHNyYy9ndWlfeDExLmMKClBhdGNoIDYuMi4yOTMgKGFmdGVyIDYuMi4yNTUpClByb2JsZW06ICAgIEdUSzogQSBuZXcgaXRlbSBpbiBhIG1lbnUgaXMgcHV0IGJlZm9yZSB0aGUgdGVhcm9mZiBpdGVtLgpTb2x1dGlvbjogICBEbyBpbmNyZW1lbnQgdGhlIG1lbnUgaXRlbSBpbmRleCBmb3Igbm9uLXBvcHVwIG1lbnUgaXRlbXMuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYwoKUGF0Y2ggNi4yLjI5NCAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogQ2Fubm90IHVzZSBtb2RpZmllcnMgd2l0aCBTcGFjZSwgVGFiLCBFbnRlciBhbmQgRXNjYXBlLgpTb2x1dGlvbjogICBIYW5kbGUgYWxsIG1vZGlmaWVycyBmb3IgdGhlc2Uga2V5cy4gIChFY2tlaGFyZCBCZXJucykKRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jCgpQYXRjaCA2LjIuMjk1ClByb2JsZW06ICAgIFdoZW4gaW4gZGVidWcgbW9kZSwgcmVjZWl2aW5nIGEgbWVzc2FnZSBmcm9tIGEgcmVtb3RlIGNsaWVudAoJICAgIGNhdXNlcyBhIGNyYXNoLiAgRXZhbHVhdGluZyBhbiBleHByZXNzaW9uIGNhdXNlcyBWaW0gdG8gd2FpdCBmb3IKCSAgICAiY29udCIgdG8gYmUgdHlwZWQsIHdpdGhvdXQgYSBwcm9tcHQuICAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIERpc2FibGUgZGVidWdnaW5nIHdoZW4gZXZhbHVhdGluZyBhbiBleHByZXNzaW9uIGZvciBhIGNsaWVudC4KCSAgICAoTWljaGFlbCBHZWRkZXMpICBEb24ndCB0cnkgcmVhZGluZyBpbnRvIHRoZSB0eXBlYWhlYWQgYnVmZmVyIHdoZW4KCSAgICBpdCBtYXkgaGF2ZSBiZWVuIGZpbGxlZCBpbiBhbm90aGVyIHdheS4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL2dldGNoYXIuYywgc3JjL2lmX3hjbWRzcnYuYywgc3JjL21haW4uYywKCSAgICBzcmMvbWlzYzEuYywgc3JjL3Byb3RvL2dldGNoYXIucHJvLCBzcmMvcHJvdG8vbWFpbi5wcm8sCgkgICAgc3JjL3Byb3RvL29zX3VuaXgucHJvLCBzcmMvcHJvdG8vdWkucHJvLCBzcmMvc3RydWN0cy5oLAoJICAgIHNyYy9vc191bml4LmMsIHNyYy91aS5jCgpQYXRjaCA2LjIuMjk2IChleHRyYSkKUHJvYmxlbTogICAgU2FtZSBhcyA2LjIuMjk1LgpTb2x1dGlvbjogICBFeHRyYSBmaWxlcyBmb3IgcGF0Y2ggNi4yLjI5NS4KRmlsZXM6CSAgICBzcmMvb3NfYW1pZ2EuYywgc3JjL29zX21zZG9zLmMsIHNyYy9vc19yaXNjb3MuYywgc3JjL29zX3dpbjMyLmMsCgkgICAgc3JjL3Byb3RvL29zX2FtaWdhLnBybywgc3JjL3Byb3RvL29zX21zZG9zLnBybywKCSAgICBzcmMvcHJvdG8vb3NfcmlzY29zLnBybywgc3JjL3Byb3RvL29zX3dpbjMyLnBybwoKUGF0Y2ggNi4yLjI5NyAoYWZ0ZXIgNi4yLjIzMikKUHJvYmxlbTogICAgQ2Fubm90IGludm9rZSBQeXRob24gY29tbWFuZHMgcmVjdXJzaXZlbHkuClNvbHV0aW9uOiAgIFdpdGggUHl0aG9uIDIuMyBhbmQgbGF0ZXIgdXNlIHRoZSBhdmFpbGFibGUgbWVjaGFuaXNtcyB0byBpbnZva2UKCSAgICBQeXRob24gcmVjdXJzaXZlbHkuIChNYXR0aGV3IE11ZWxsZXIpCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjIuMjk4ClByb2JsZW06ICAgIEEgY2hhbmdlIGFsd2F5cyBzZXRzIHRoZSAnLiBtYXJrIGFuZCBhbiBpbnNlcnQgYWx3YXlzIHNldHMgdGhlICdeCgkgICAgbWFyaywgZXZlbiB3aGVuIHRoaXMgaXMgbm90IHdhbnRlZC4KCSAgICBDYW5ub3QgZ28gYmFjayB0byB0aGUgcG9zaXRpb24gb2Ygb2xkZXIgY2hhbmdlcyB3aXRob3V0IHVuZG9pbmcKCSAgICB0aG9zZSBjaGFuZ2VzLgpTb2x1dGlvbjogICBBZGQgdGhlICI6a2VlcGp1bXBzIiBjb21tYW5kIG1vZGlmaWVyLgoJICAgIEFkZCB0aGUgImcsIiBhbmQgImc7IiBjb21tYW5kcy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9tb3Rpb24udHh0LCBzcmMvZXhfY21kcy5oLCBzcmMvZXhfZG9jbWQuYywgc3JjL2VkaXQuYywKCSAgICBzcmMvbWFyay5jLCBzcmMvbWlzYzEuYywgc3JjL25vcm1hbC5jLCBzcmMvcHJvdG8vbWFyay5wcm8sCgkgICAgc3JjL3N0cnVjdHMuaCwgc3JjL3VuZG8uYwoKUGF0Y2ggNi4yLjI5OQpQcm9ibGVtOiAgICBDYW4gb25seSB1c2Ugb25lIGxhbmd1YWdlIGZvciBoZWxwIGZpbGVzLgpTb2x1dGlvbjogICBBZGQgdGhlICdoZWxwbGFuZycgb3B0aW9uIHRvIHNlbGVjdCB0aGUgcHJlZmVycmVkIGxhbmd1YWdlKHMpLgoJICAgIE1ha2UgIjpoZWxwdGFncyIgZ2VuZXJhdGUgdGFncyBmaWxlcyBmb3IgYWxsIGxhbmd1YWdlcy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb25zLnR4dCwgcnVudGltZS9kb2MvdmFyaW91cy50eHQsIHNyYy9NYWtlZmlsZSwKCSAgICBzcmMvZXhfY21kcy5jLCBzcmMvZXhfY21kczIuYywgc3JjL2V4X2NtZHMuaCwgc3JjL2V4X2dldGxuLmMsCgkgICAgc3JjL25vcm1hbC5jLCBzcmMvb3B0aW9uLmMsIHNyYy9vcHRpb24uaCwgc3JjL3Byb3RvL2V4X2NtZHMucHJvLAoJICAgIHNyYy9wcm90by9leF9jbWRzMi5wcm8sIHNyYy9wcm90by9vcHRpb24ucHJvLCBzcmMvc3RydWN0cy5oLAoJICAgIHNyYy90YWcuYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMzAwIChhZnRlciA2LjIuMjk3KQpQcm9ibGVtOiAgICBDYW5ub3QgYnVpbGQgUHl0aG9uIGludGVyZmFjZSB3aXRoIFB5dGhvbiAyLjIgb3IgZWFybGllci4KU29sdXRpb246ICAgQWRkIGEgc2VtaWNvbG9uLgpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4yLjMwMQpQcm9ibGVtOiAgICBUaGUgInNlbGVjdCBhbGwiIGl0ZW0gZnJvbSB0aGUgcG9wdXAgbWVudSBkb2Vzbid0IHdvcmsgZm9yIFNlbGVjdAoJICAgIG1vZGUuClNvbHV0aW9uOiAgIFVzZSB0aGUgc2FtZSBjb21tYW5kcyBhcyBmb3IgdGhlICJFZGl0LnNlbGVjdCBhbGwiIG1lbnUuCgkgICAgKEJlbmppIEZpc2hlcikKRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjIuMzAyClByb2JsZW06ICAgIFVzaW5nICJDVFJMLU8gLiIgaW4gSW5zZXJ0IG1vZGUgZG9lc24ndCB3b3JrIHByb3Blcmx5LiAoQmVuamkKCSAgICBGaXNoZXIpClNvbHV0aW9uOiAgIFJlc3RvcmUgInJlc3RhcnRfZWRpdCIgYWZ0ZXIgYW4gaW5zZXJ0IGNvbW1hbmQgdGhhdCB3YXMgbm90IHR5cGVkLgoJICAgIEF2b2lkIHdhaXRpbmcgd2l0aCBkaXNwbGF5aW5nIHRoZSBtb2RlIHdoZW4gdGhlcmUgaXMgbm8gdGV4dCB0byBiZQoJICAgIG92ZXJ3cml0dGVuLgoJICAgIEZpeCB0aGF0ICJDVFJMLU8gLiIgc29tZXRpbWVzIGRvZXNuJ3QgcHV0IHRoZSBjdXJzb3IgYmFjayBhZnRlcgoJICAgIHRoZSBlbmQtb2YtbGluZS4gIE9ubHkgcmVzZXQgdGhlIGZsYWcgdGhhdCBDVFJMLU8gd2FzIHVzZWQgcGFzdAoJICAgIHRoZSBlbmQgb2YgdGhlIGxpbmUgd2hlbiByZXN0YXJ0aW5nIGVkaXRpbmcuICBVcGRhdGUgIm9fbG51bSIKCSAgICBudW1iZXIgd2hlbiBpbnNlcnRpbmcgdGV4dCBhbmQgIm9fZW9sIiBpcyBzZXQuCkZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMzAzClByb2JsZW06ICAgIENhbm5vdCB1c2UgVW5pY29kZSBkaWdyYXBocyB3aGlsZSAnZW5jb2RpbmcnIGlzIG5vdCBVbmljb2RlLgpTb2x1dGlvbjogICBDb252ZXJ0IHRoZSBjaGFyYWN0ZXIgZnJvbSBVbmljb2RlIHRvICdlbmNvZGluZycgd2hlbiBuZWVkZWQuCgkgICAgVXNlIHRoZSBVbmljb2RlIGRpZ3JhcGhzIGZvciB0aGUgTWFjaW50b3NoLiAoRWNrZWhhcmQgQmVybnMpCkZpbGVzOgkgICAgc3JjL2RpZ3JhcGguYwoKUGF0Y2ggNi4yLjMwNCAoZXh0cmEsIGFmdGVyIDYuMi4yNTYpClByb2JsZW06ICAgIE1hYzogTm8gcHJvcGVyIHN1cHBvcnQgZm9yICdlbmNvZGluZycuICBDb252ZXJzaW9uIHdpdGhvdXQgaWNvbnYoKQoJICAgIGlzIG5vdCBwb3NzaWJsZS4KU29sdXRpb246ICAgQ29udmVydCBpbnB1dCBmcm9tICd0ZXJtZW5jb2RpbmcnIHRvICdlbmNvZGluZycuICBBZGQKCSAgICBtYWNfc3RyaW5nX2NvbnZlcnQoKS4gIENvbnZlcnQgdGV4dCBmb3IgdGhlIGNsaXBib2FyZCB3aGVuIG5lZWRlZC4KCSAgICAoRWNrZWhhcmQgQmVybnMpCkZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYywgc3JjL21ieXRlLmMsIHNyYy9zdHJ1Y3RzLmgsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjMwNSAoYWZ0ZXIgNi4yLjMwMCkKUHJvYmxlbTogICAgV2luMzI6IENhbm5vdCBidWlsZCBQeXRob24gaW50ZXJmYWNlIHdpdGggUHl0aG9uIDIuMy4gKEFqaXQKCSAgICBUaGFra2FyKQpTb2x1dGlvbjogICBBZGQgdHdvIGZ1bmN0aW9ucyB0byB0aGUgZHluYW1pYyBsb2FkaW5nIGZlYXR1cmUuCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjIuMzA2IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IEJ1aWxkaW5nIGNvbnNvbGUgdmVyc2lvbiB3aXRoIEJDQyA1LjUgZ2l2ZXMgYSB3YXJuaW5nIGZvcgoJICAgIGdldF9jbWRfYXJncygpIHByb3RvdHlwZSBtaXNzaW5nLiAgKEFqaXQgVGhha2thcikKU29sdXRpb246ICAgRG9uJ3QgYnVpbGQgb3NfdzMyZXhlLmMgZm9yIHRoZSBjb25zb2xlIHZlcnNpb24uCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1hawoKUGF0Y2ggNi4yLjMwNyAoYWZ0ZXIgNi4yLjI5OSkKUHJvYmxlbTogICAgSW5zdGFsbGluZyBoZWxwIGZpbGVzIGZhaWxzLgpTb2x1dGlvbjogICBFeHBhbmQgd2lsZGNhcmRzIGZvciB0cmFuc2xhdGVkIGhlbHAgZmlsZXMgc2VwYXJhdGVseS4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMi4zMDgKUHJvYmxlbTogICAgTm90IGFsbCBzeXN0ZW1zIGhhdmUgIndob2FtaSIsIHJlc3VsdGluZyBpbiBhbiBlbXB0eSB1c2VyIG5hbWUuClNvbHV0aW9uOiAgIFVzZSAibG9nbmFtZSIgd2hlbiBwb3NzaWJsZSwgIndob2FtaSIgb3RoZXJ3aXNlLiAgKERhdmlkIEJveWNlKQpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4yLjMwOQpQcm9ibGVtOiAgICAiM2dyeCIgd2FpdHMgZm9yIHR3byBFU0MgdG8gYmUgdHlwZWQuICAoSmVucyBQYXVsdXMpClNvbHV0aW9uOiAgIEFwcGVuZCB0aGUgRVNDIHRvIHRoZSBzdHVmZiBidWZmZXIgd2hlbiByZWRvaW5nIHRoZSAiZ3IiIGluc2VydC4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjIuMzEwClByb2JsZW06ICAgIFdoZW4gc2V0dGluZyAndW5kb2xldmVscycgdG8gLTEsIG1ha2luZyBhIGNoYW5nZSBhbmQgc2V0dGluZwoJICAgICd1bmRvbGV2ZWxzJyB0byBhIHBvc2l0aXZlIHZhbHVlIGFuICJ1bmRvIGxpc3QgY29ycnVwdCIgZXJyb3IKCSAgICBvY2N1cnMuIChNYWRva2EgTWFjaGl0YW5pKQpTb2x1dGlvbjogICBTeW5jIHVuZG8gYmVmb3JlIGNoYW5naW5nICd1bmRvbGV2ZWxzJy4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi4zMTEgKGFmdGVyIDYuMi4yOTgpClByb2JsZW06ICAgIFdoZW4gbWFraW5nIHNldmVyYWwgY2hhbmdlcyBpbiBvbmUgbGluZSB0aGUgY2hhbmdlbGlzdCBncm93cwoJICAgIHF1aWNrbHkuICBUaGVyZSBpcyBubyBlcnJvciBtZXNzYWdlIGZvciByZWFjaGluZyB0aGUgZW5kIG9mIHRoZQoJICAgIGNoYW5nZWxpc3QuICBSZWFkaW5nIGNoYW5nZWxpc3QgbWFya3MgZnJvbSB2aW1pbmZvIGRvZXNuJ3Qgd29yawoJICAgIHByb3Blcmx5LgpTb2x1dGlvbjogICBPbmx5IG1ha2UgYSBuZXcgZW50cnkgaW4gdGhlIGNoYW5nZWxpc3Qgd2hlbiBtYWtpbmcgYSBjaGFuZ2UgaW4KCSAgICBhbm90aGVyIGxpbmUgb3IgJ3RleHR3aWR0aCcgY29sdW1ucyBhd2F5LiAgQWRkIEU2NjIsIEU2NjMgYW5kIEU2NjQKCSAgICBlcnJvciBtZXNzYWdlcy4gIFB1dCBhIGNoYW5nZWxpc3QgbWFyayBmcm9tIHZpbWluZm8gb25lIHBvc2l0aW9uCgkgICAgYmVmb3JlIHRoZSBlbmQuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvbW90aW9uLnR4dCwgc3JjL21hcmsuYywgc3JjL21pc2MxLmMsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjMxMiAoYWZ0ZXIgNi4yLjI5OSkKUHJvYmxlbTogICAgIm1ha2UgaW5zdGFsbCIgY2xlYXJzIHRoZSBzY3JlZW4gd2hlbiBpbnN0YWxsaW5nIHRoZSBkb2NzLgpTb2x1dGlvbjogICBFeGVjdXRlICI6aGVscHRhZ3MiIGluIHNpbGVudCBtb2RlLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL01ha2VmaWxlCgpQYXRjaCA2LjIuMzEzClByb2JsZW06ICAgIFdoZW4gb3BlbmluZyBmb2xkcyBpbiBhIGRpZmYgd2luZG93LCBvdGhlciBkaWZmIHdpbmRvd3Mgbm8gbG9uZ2VyCgkgICAgc2hvdyB0aGUgc2FtZSB0ZXh0LgpTb2x1dGlvbjogICBTeW5jIHRoZSBmb2xkcyBpbiBkaWZmIHdpbmRvd3MuCkZpbGVzOgkgICAgc3JjL2RpZmYuYywgc3JjL2ZvbGQuYywgc3JjL21vdmUuYywgc3JjL3Byb3RvL2RpZmYucHJvLAoJICAgIHNyYy9wcm90by9tb3ZlLnBybwoKUGF0Y2ggNi4yLjMxNApQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0ICJyeCIgbWF5IGNhdXNlIGEgY3Jhc2ggd2l0aCBhIGJsb2Nrd2lzZQoJICAgIHNlbGVjdGlvbiBhbmQgdXNpbmcgIiQiLiAoTW9yaXR6IE9yYmFjaCkKU29sdXRpb246ICAgRG9uJ3QgdHJ5IHJlcGxhY2luZyBjaGFycyBpbiBhIGxpbmUgdGhhdCBoYXMgbm8gY2hhcmFjdGVycyBpbiB0aGUKCSAgICBibG9jay4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMi4zMTUKUHJvYmxlbTogICAgVXNpbmcgQ1RSTC1DIGluIGEgVmlzdWFsIG1vZGUgbWFwcGluZyB3aGlsZSAnaW5zZXJ0bW9kZScgaXMgc2V0CgkgICAgc3RvcHMgVmltIGZyb20gcmV0dXJuaW5nIHRvIEluc2VydCBtb2RlLgpTb2x1dGlvbjogICBEb24ndCByZXNldCAicmVzdGFydF9lZGl0IiB3aGVuIGEgQ1RSTC1DIGlzIGZvdW5kIGFuZCAnaW5zZXJ0bW9kZScKCSAgICBpcyBzZXQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMzE2IChhZnRlciA2LjIuMzEyKQpQcm9ibGVtOiAgICAibWFrZSBpbnN0YWxsIiB0cmllcyBjb25uZWN0aW5nIHRvIHRoZSBYIHNlcnZlciB3aGVuIGluc3RhbGxpbmcKCSAgICB0aGUgZG9jcy4gKFN0ZXBoZW4gVGhvbWFzKQpTb2x1dGlvbjogICBBZGQgdGhlICItWCIgYXJndW1lbnQuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvTWFrZWZpbGUKClBhdGNoIDYuMi4zMTcgKGFmdGVyIDYuMi4zMTMpClByb2JsZW06ICAgIFdoZW4gdXNpbmcgInppIiBpbiBhIGRpZmYgd2luZG93LCBvdGhlciBkaWZmIHdpbmRvd3MgYXJlIG5vdAoJICAgIGFkanVzdGVkLiAoUmljaGFyZCBDdXJub3cpClNvbHV0aW9uOiAgIERpc3RyaWJ1dGUgYSBjaGFuZ2UgaW4gJ2ZvbGRlbmFibGUnIHRvIG90aGVyIGRpZmYgd2luZG93cy4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMi4zMTgKUHJvYmxlbTogICAgV2hlbiBjb21waWxpbmcgd2l0aCBfVEhSRUFEX1NBRkUgZXh0ZXJuYWwgY29tbWFuZHMgZG9uJ3QgZWNobwoJICAgIHR5cGVkIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIERvbid0IHNldCB0aGUgdGVybWluYWwgbW9kZSB0byBUTU9ERV9TTEVFUCB3aGVuIGl0J3MgYWxyZWFkeSBhdAoJICAgIFRNT0RFX0NPT0suCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjMxOSAoZXh0cmEpClByb2JsZW06ICAgIEJ1aWxkaW5nIGd2aW1leHQuZGxsIHdpdGggTWluZ3cgZG9lc24ndCB3b3JrIHByb3Blcmx5LgpTb2x1dGlvbjogICBVc2UgZ2NjIGluc3RlYWQgb2YgZGxsd3JhcC4gIFVzZSBsb25nIG9wdGlvbiBuYW1lcy4gKEFsZWphbmRybwoJICAgIExvcGV6LVZhbGVuY2lhKQpGaWxlczoJICAgIHNyYy9HdmltRXh0L01ha2VfbWluZy5tYWsKClBhdGNoIDYuMi4zMjAKUHJvYmxlbTogICAgV2luMzI6IEFkZGluZyBhbmQgcmVtb3ZpbmcgdGhlIG1lbnViYXIgcmVzaXplcyB0aGUgVmltIHdpbmRvdy4KCSAgICAoSm9uYXRob24gTWVyeikKU29sdXRpb246ICAgRG9uJ3QgbGV0IGEgcmVzaXplIGV2ZW50IGNoYW5nZSAnbGluZXMnIHVuZXhwZWN0ZWRseS4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMi4zMjEKUHJvYmxlbTogICAgV2hlbiB1c2luZyBtb2RlbGVzcyBzZWxlY3Rpb24sIHdyYXBwaW5nIGxpbmVzIGFyZSBub3QgcmVjb2duaXplZCwKCSAgICBhIGxpbmUgYnJlYWsgaXMgYWx3YXlzIGluc2VydGVkLgpTb2x1dGlvbjogICBBZGQgTGluZVdyYXBzW10gdG8gcmVtZW1iZXIgd2hldGhlciBhIGxpbmUgd3JhcHBlZCBvciBub3QuCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL3NjcmVlbi5jLCBzcmMvdWkuYwoKUGF0Y2ggNi4yLjMyMgpQcm9ibGVtOiAgICBXaXRoICdzaG93Y21kJyBzZXQsIGFmdGVyIHR5cGluZyAiZGQiIHRoZSBuZXh0ICJkIiBtYXkgbm90IGJlCgkgICAgZGlzcGxheWVkLiAoSmVucyBQYXVsdXMpClNvbHV0aW9uOiAgIFJlZHJhdyB0aGUgY29tbWFuZCBsaW5lIGFmdGVyIHVwZGF0aW5nIHRoZSBzY3JlZW4sIHNjcm9sbGluZyBtYXkKCSAgICBoYXZlIHNldCAiY2xlYXJfY21kbGluZSIuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjIuMzIzClByb2JsZW06ICAgIFdpbjMyOiBleHBhbmRpbmcgIn4vZmlsZSIgaW4gYW4gYXV0b2NvbW1hbmQgcGF0dGVybiByZXN1bHRzIGluCgkgICAgYmFja3NsYXNoZXMsIHdoaWxlIHRoaXMgcGF0dGVybiBzaG91bGQgb25seSBoYXZlIGZvcndhcmQgc2xhc2hlcy4KU29sdXRpb246ICAgTWFrZSBleHBhbmRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIHJlc3BlY3QgJ3NoZWxsc2xhc2gnIGFuZCBzZXQKCSAgICBwX3NzbCB3aGVuIGV4cGFuZGluZyB0aGUgYXV0b2NvbW1hbmQgcGF0dGVybi4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9taXNjMS5jLCBzcmMvcHJvdG8vZmlsZWlvLnBybwoKUGF0Y2ggNi4yLjMyNCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiB3aGVuICJ2aW1ydW4uZXhlIiBoYXMgYSBwYXRoIHdpdGggd2hpdGUgc3BhY2UsIHN1Y2ggYXMKCSAgICAiUHJvZ3JhbSBGaWxlcyIsIGV4ZWN1dGluZyBleHRlcm5hbCBjb21tYW5kcyBtYXkgZmFpbC4KU29sdXRpb246ICAgUHV0IGRvdWJsZSBxdW90ZXMgYXJvdW5kIHRoZSBwYXRoIHRvICJ2aW1ydW4iLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjIuMzI1ClByb2JsZW06ICAgIFdoZW4gJEhPTUUgaW5jbHVkZXMgYSBzcGFjZSwgZG9pbmcgIjpzZXQgdGFncz1+L3RhZ3MiIGRvZXNuJ3QKCSAgICB3b3JrLCB0aGUgc3BhY2UgaXMgdXNlZCB0byBzZXBhcmF0ZSBmaWxlIG5hbWVzLiAgKEJyZXR0IFN0YWhsbWFuKQpTb2x1dGlvbjogICBFc2NhcGUgdGhlIHNwYWNlIHdpdGggYSBiYWNrc2xhc2guCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuMzI2ClByb2JsZW06ICAgICI6d2luZG8gc2V0IHN5bnRheD1mb28iIGRvZXNuJ3Qgd29yay4gIChUaW0gQ2hhc2UpClNvbHV0aW9uOiAgIERvbid0IGNoYW5nZSAnZXZlbnRpZ25vcmUnIGZvciAiOndpbmRvIi4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4yLjMyNwpQcm9ibGVtOiAgICBXaGVuIGZvcm1hdHRpbmcgdGV4dCBhbGwgbWFya3MgaW4gdGhlIGZvcm1hdHRlZCBsaW5lcyBhcmUgbG9zdC4KCSAgICBBIHdvcmQgaXMgbm90IGpvaW5lZCB0byBhIHByZXZpb3VzIGxpbmUgd2hlbiB0aGlzIHdvdWxkIGJlCgkgICAgcG9zc2libGUuICAoTWlrb2xhaiBNYWNob3dza2kpClNvbHV0aW9uOiAgIFRyeSB0byBrZWVwIG1hcmtzIGluIHRoZSBzYW1lIHBvc2l0aW9uIGFzIG11Y2ggYXMgcG9zc2libGUuCgkgICAgQWxzbyBrZWVwIG1hcmsgcG9zaXRpb25zIHdoZW4gam9pbmluZyBsaW5lcy4KCSAgICBTdGFydCBhdXRvLWZvcm1hdHRpbmcgaW4gdGhlIHByZXZpb3VzIGxpbmUgd2hlbiBhcHByb3ByaWF0ZS4KCSAgICBBZGQgdGhlICJndyIgb3BlcmF0b3I6IExpa2UgImdxIiBidXQga2VlcCB0aGUgY3Vyc29yIHdoZXJlIGl0IGlzLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2NoYW5nZS50eHQsIHNyYy9lZGl0LmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9tYXJrLmMsCgkgICAgc3JjL21pc2MxLmMsIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jLCBzcmMvcHJvdG8vZWRpdC5wcm8sCgkgICAgc3JjL3Byb3RvL21hcmsucHJvLCBzcmMvcHJvdG8vb3BzLnBybywgc3JjL3N0cnVjdHMuaCwgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMzI4ClByb2JsZW06ICAgIFhJTSB3aXRoIEdUSzogSXQgaXMgaGFyZCB0byB1bmRlcnN0YW5kIHdoYXQgWElNIGlzIGRvaW5nLgpTb2x1dGlvbjogICBBZGQgeGltX2xvZygpIHRvIGxvZyBYSU0gZXZlbnRzIGFuZCBoZWxwIHdpdGggZGVidWdnaW5nLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjIuMzI5ClByb2JsZW06ICAgICI6PSIgZG9lcyBub3Qgd29yayBWaSBjb21wYXRpYmxlLiAoQW50b255IFNjcml2ZW4pClNvbHV0aW9uOiAgIFByaW50IHRoZSBsYXN0IGxpbmUgbnVtYmVyIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgbGluZS4gIERvbid0CgkgICAgcHJpbnQgImxpbmUiLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmgsIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjIuMzMwIChleHRyYSwgYWZ0ZXIgNi4yLjI2NykKUHJvYmxlbTogICAgV2luMzI6IENyYXNoIHdoZW4gdGVhcmluZyBvZmYgYSBtZW51LgpTb2x1dGlvbjogICBUZXJtaW5hdGUgYSBzdHJpbmcgd2l0aCBhIE5VTC4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjIuMzMxIChhZnRlciA2LjIuMzI3KQpQcm9ibGVtOiAgICAiZ3dhcCIgbGVhdmVzIGN1cnNvciBpbiB0aGUgd3JvbmcgbGluZS4KU29sdXRpb246ICAgUmVtZW1iZXIgdGhlIGN1cnNvciBwb3NpdGlvbiBiZWZvcmUgZmluZGluZyB0aGUgZW5kcyBvZiB0aGUKCSAgICBwYXJhZ3JhcGguCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jLCBzcmMvb3BzLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMi4zMzIgKGV4dHJhKQpQcm9ibGVtOiAgICBBbWlnYTogQ29tcGlsZSBlcnJvciBmb3Igc3RyaW5nIGFycmF5LiBDb21waWxpbmcgdGhlIEFtaWdhIEdVSQoJICAgIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgVXNlIGEgY2hhciBwb2ludGVyIGluc3RlYWQuICBNb3ZlIGluY2x1ZGluZyAiZ3VpX2FtaWdhLmgiIHRvIGFmdGVyCgkgICAgaW5jbHVkaW5nICJ2aW0uaCIuICBBZGQgYSBzZW1pY29sb24uIChBbGkgQWtjYWFnYWMpCkZpbGVzOgkgICAgc3JjL2d1aV9hbWlnYS5jLCBzcmMvb3NfYW1pZ2EuYwoKUGF0Y2ggNi4yLjMzMyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBwcmludGluZyBkb2Vzbid0IHdvcmsgd2l0aCBzcGVjaWZpZWQgZm9udCBjaGFyc2V0LgpTb2x1dGlvbjogICBVc2UgdGhlIHNwZWNpZmllZCBmb250IGNoYXJzZXQuIChNaWtlIFdpbGxpYW1zKQpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjIuMzM0IChleHRyYSwgYWZ0ZXIgNi4yLjI5NikKUHJvYmxlbTogICAgV2luMzI6IGV2YWx1YXRpbmcgY2xpZW50IGV4cHJlc3Npb24gaW4gZGVidWcgbW9kZSByZXF1aXJlcyB0eXBpbmcKCSAgICAiY29udCIuClNvbHV0aW9uOiAgIFVzZSBldmFsX2NsaWVudF9leHByX3RvX3N0cmluZygpLgpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjIuMzM1ClByb2JsZW06ICAgIFRoZSAiOnNpZ24iIGNvbW1hbmQgY2Fubm90IGJlIGZvbGxvd2VkIGJ5IGFub3RoZXIgY29tbWFuZC4KU29sdXRpb246ICAgQWRkIFRSTEJBUiB0byB0aGUgY29tbWFuZCBmbGFncy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5oCgpQYXRjaCA2LjIuMzM2IChhZnRlciA2LjIuMzI3KQpQcm9ibGVtOiAgICBNaXh1cCBvZiBpdGVtcyBpbiBhbiBleHByZXNzaW9uLgpTb2x1dGlvbjogICBNb3ZlICI9PSBOVUwiIHRvIHRoZSByaWdodCBzcG90LgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMi4zMzcgKGV4dHJhLCBhZnRlciA2LjIuMzE5KQpQcm9ibGVtOiAgICBCdWlsZGluZyBndmltZXh0LmRsbCB3aXRoIE1pbmd3IGRvZXNuJ3Qgd29yayBwcm9wZXJseS4KU29sdXRpb246ICAgRml4IHdoaXRlIHNwYWNlIGFuZCBvdGhlciBkZXRhaWxzLiAoQWxlamFuZHJvIExvcGV6LVZhbGVuY2lhKQpGaWxlczoJICAgIHNyYy9HdmltRXh0L01ha2VfbWluZy5tYWsKClBhdGNoIDYuMi4zMzggKGFmdGVyIDYuMi4zMzEpClByb2JsZW06ICAgIFdoZW4gdW5kb2luZyAiZ3dhcCIgdGhlIGN1cnNvciBpcyBhbHdheXMgcHV0IGF0IHRoZSBzdGFydCBvZiB0aGUKCSAgICBwYXJhZ3JhcGguICBXaGVuIHVuZG9pbmcgYXV0by1mb3JtYXR0aW5nIHRoZSBjdXJzb3IgbWF5IGJlIGFib3ZlCgkgICAgdGhlIGNoYW5nZS4KU29sdXRpb246ICAgVHJ5IHRvIG1vdmUgdGhlIGN1cnNvciBiYWNrIHRvIHdoZXJlIGl0IHdhcyBvciB0byB0aGUgZmlyc3QgbGluZQoJICAgIHRoYXQgYWN0dWFsbHkgY2hhbmdlZC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMsIHNyYy9vcHMuYywgc3JjL3VuZG8uYwoKUGF0Y2ggNi4yLjMzOQpQcm9ibGVtOiAgICBDcmFzaCB3aGVuIHVzaW5nIG1hbnkgZGlmZmVyZW50IGhpZ2hsaWdodCBncm91cHMgYW5kIGEgVXNlcgoJICAgIGhpZ2hsaWdodCBncm91cC4gIChKdWVyZ2VuIEtyYWVtZXIpClNvbHV0aW9uOiAgIERvIG5vdCB1c2UgdGhlIHNnX25hbWVfdSBwb2ludGVyIHdoZW4gaXQgaXMgTlVMTC4gIEFsc28gc2ltcGxpZnkKCSAgICB1c2Ugb2YgdGhlIGhpZ2hsaWdodCBncm91cCB0YWJsZS4KRmlsZXM6CSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMi4zNDAKUHJvYmxlbTogICAgIjpyZWciIGRvZXNuJ3Qgc2hvdyB0aGUgYWN0dWFsIGNvbnRlbnRzIG9mIHRoZSBjbGlwYm9hcmQgaWYgaXQgd2FzCgkgICAgZmlsbGVkIG91dHNpZGUgb2YgVmltLiAoU3R1YXJ0IE1hY0RvbmFsZCkKU29sdXRpb246ICAgT2J0YWluIHRoZSBjbGlwYm9hcmQgY29udGVudHMgYmVmb3JlIGRpc3BsYXlpbmcgaXQuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjIuMzQxIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gdGhlIHBhdGggdG8gZGlmZi5leGUgY29udGFpbnMgYSBzcGFjZSBhbmQgdXNpbmcgdGhlCgkgICAgdmltcmMgZ2VuZXJhdGVkIGJ5IHRoZSBpbnN0YWxsIHByb2dyYW0sIGRpZmYgbW9kZSBkb2VzIG5vdCB3b3JrLgpTb2x1dGlvbjogICBQdXQgdGhlIGZpcnN0IGRvdWJsZSBxdW90ZSBqdXN0IGJlZm9yZSB0aGUgc3BhY2UgaW5zdGVhZCBvZiBiZWZvcmUKCSAgICB0aGUgcGF0aC4KRmlsZXM6CSAgICBzcmMvZG9zaW5zdC5jCgpQYXRjaCA2LjIuMzQyIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IG1hY3JvcyBhcmUgbm90IGFsd2F5cyB1c2VkIGFzIGV4cGVjdGVkLgpTb2x1dGlvbjogICBEZWZpbmUgV0lOVkVSIHRvIDB4MDQwMCBpbnN0ZWFkIG9mIDB4NDAwLiAoQWxlamFuZHJvCgkgICAgTG9wZXotVmFsZW5jaWEpCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1haywgc3JjL01ha2VfY3lnLm1haywgc3JjL01ha2VfbXZjLm1hawoKUGF0Y2ggNi4yLjM0MwpQcm9ibGVtOiAgICBUaXRsZSBkb2Vzbid0IHdvcmsgd2l0aCBzb21lIHdpbmRvdyBtYW5hZ2Vycy4gIFgxMTogU2V0dGluZyB0aGUKCSAgICB0ZXh0IHByb3BlcnR5IGZvciB0aGUgd2luZG93IHRpdGxlIGlzIGhhcmQgY29kZWQuClNvbHV0aW9uOiAgIFVzZSBTVFJJTkcgZm9ybWF0IHdoZW4gcG9zc2libGUuICBVc2UgdGhlIFVURi04IGZ1bmN0aW9uIHdoZW4KCSAgICBpdCdzIGF2YWlsYWJsZSBhbmQgJ2VuY29kaW5nJyBpcyB1dGYtOC4gVXNlCgkgICAgWFN0cmluZ0xpc3RUb1RleHRQcm9wZXJ0eSgpLiAgRG8gdGhlIHNhbWUgZm9yIHRoZSBpY29uIG5hbWUuCgkgICAgKERhdmlkIEhhcnJpc29uKQpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMi4zNDQgKGV4dHJhLCBhZnRlciA2LjIuMzM3KQpQcm9ibGVtOiAgICBDYW5ub3QgYnVpbGQgZ3ZpbWV4dC5kbGwgd2l0aCBNaW5nVyBvbiBMaW51eC4KU29sdXRpb246ICAgQWRkIHN1cHBvcnQgZm9yIGNyb3NzIGNvbXBpbGluZy4gKFJvbmFsZCBIb2VsbHdhcnRoKQpGaWxlczoJICAgIHNyYy9HdmltRXh0L01ha2VfbWluZy5tYWsKClBhdGNoIDYuMi4zNDUgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogQ29weS9wYXN0ZSBiZXR3ZWVuIHR3byBWaW1zIGZhaWxzIGlmICdlbmNvZGluZycgaXMgbm90IHNldAoJICAgIHByb3Blcmx5IG9yIHRoZXJlIGFyZSBpbGxlZ2FsIGJ5dGVzLgpTb2x1dGlvbjogICBVc2UgYSByYXcgYnl0ZSBmb3JtYXQuICBBbHdheXMgc2V0IGl0IHdoZW4gY29weWluZy4gIFdoZW4gcGFzdGluZwoJICAgIHVzZSB0aGUgcmF3IGZvcm1hdCBpZiAnZW5jb2RpbmcnIGlzIHRoZSBzYW1lLgpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jLCBzcmMvb3Nfd2luMTYuYywgc3JjL29zX3dpbjMyLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjM0NgpQcm9ibGVtOiAgICBXaW4zMiBjb25zb2xlOiBBZnRlciB1c2luZyAiY2hjcCIgVmltIGRvZXMgbm90IGRldGVjdCB0aGUKCSAgICBkaWZmZXJlbnQgY29kZXBhZ2UuClNvbHV0aW9uOiAgIFVzZSBHZXRDb25zb2xlQ1AoKSBhbmQgd2hlbiBpdCBpcyBkaWZmZXJlbnQgZnJvbSBHZXRBQ1AoKSBzZXQKCSAgICAndGVybWVuY29kaW5nJy4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi4zNDcgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogWFAgdGhlbWUgc3VwcG9ydCBpcyBtaXNzaW5nLgpTb2x1dGlvbjogICBBZGQgYSBtYW5pZmVzdCBhbmQgcmVmZXIgdG8gaXQgZnJvbSB0aGUgcmVzb3VyY2UgZmlsZS4gIChNaWNoYWVsCgkgICAgV29va2V5KQpGaWxlczoJICAgIE1ha2VmaWxlLCBzcmMvZ3ZpbS5leGUubW5mLCBzcmMvdmltLnJjCgpQYXRjaCA2LjIuMzQ4ClByb2JsZW06ICAgIFdpbjMyOiAidmltIGM6XGRpclwodGVzdCkiIGRvZXNuJ3Qgd29yaywgYmVjYXVzZSB0aGUgJ2lzZm5hbWUnCgkgICAgZGVmYXVsdCB2YWx1ZSBkb2Vzbid0IGNvbnRhaW4gcGFyZW50aGVzaXMuClNvbHV0aW9uOiAgIFRlbXBvcmFyaWx5IGFkZCAnKCcgYW5kICcpJyB0byAnaXNmbmFtZScgd2hlbiBleHBhbmRpbmcgZmlsZSBuYW1lCgkgICAgYXJndW1lbnRzLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMi4zNDkKUHJvYmxlbTogICAgRmluZGluZyBhIG1hdGNoIHVzaW5nICdtYXRjaHBhaXJzJyBtYXkgY2F1c2UgYSBjcmFzaC4KCSAgICAnbWF0Y2hwYWlycycgaXMgbm90IHVzZWQgZm9yICdzaG93bWF0Y2gnLgpTb2x1dGlvbjogICBEb24ndCBsb29rIHBhc3QgdGhlIE5VTCBpbiAnbWF0Y2hwYWlycycuICBVc2UgJ21hdGNocGFpcnMnIGZvcgoJICAgICdzaG93bWF0Y2gnLiAoRGF2ZSBPbHN6ZXdrc2tpKQpGaWxlczoJICAgIHNyYy9taXNjMS5jLCBzcmMvbm9ybWFsLmMsIHNyYy9wcm90by9zZWFyY2gucHJvLCBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMi4zNTAKUHJvYmxlbTogICAgTm90IGVub3VnaCBpbmZvIGFib3V0IHN0YXJ0dXAgdGltaW5nLgpTb2x1dGlvbjogICBBZGQgYSBmZXcgbW9yZSBUSU1FX01TRygpIGNhbGxzLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMi4zNTEKUHJvYmxlbTogICAgV2luMzI6ICRIT01FIG1heSBiZSBzZXQgdG8gJVVTRVJQUk9GSUxFJS4KU29sdXRpb246ICAgRXhwYW5kICVWQVIlIGF0IHRoZSBzdGFydCBvZiAkSE9NRS4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4yLjM1MiAoYWZ0ZXIgNi4yLjMzNSkKUHJvYmxlbTogICAgIjpzaWduIHRleHRobD18fCIgZG9lcyBub3Qgd29yay4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBjaGVjayBmb3IgYSBmb2xsb3dpbmcgY29tbWFuZC4gIEdpdmUgYW4gZXJyb3IgZm9yIGV4dHJhCgkgICAgYXJndW1lbnRzIGFmdGVyICJidWZmPTEiLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMsIHNyYy9leF9jbWRzLmgKClBhdGNoIDYuMi4zNTMgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogU3VwcG9ydGVkIHNlcnZlciBuYW1lIGxlbmd0aCBpcyBsaW1pdGVkLiAoUGF1bCBCb3NzaSkKU29sdXRpb246ICAgVXNlIE1BWF9QQVRIIGluc3RlYWQgb2YgMjUuCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMi4zNTQgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiB0aGUgbW91c2UgcG9pbnRlciBpcyBvbiBhIHRlYXItb2ZmIG1lbnUgaXQgaXMgaGlkZGVuCgkgICAgd2hlbiB0eXBpbmcgYnV0IGlzIG5vdCByZWRpc3BsYXllZCB3aGVuIG1vdmVkLiAoTWFya3ggSGFja21hbm4pClNvbHV0aW9uOiAgIEhhbmRsZSB0aGUgcG9pbnRlciBtb3ZlIGV2ZW50IGZvciB0aGUgdGVhci1vZmYgbWVudSB3aW5kb3cuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4yLjM1NSAoYWZ0ZXIgNi4yLjMwMykKUHJvYmxlbTogICAgV2hlbiAnZW5jb2RpbmcnIGlzIGEgZG91YmxlLWJ5dGUgZW5jb2RpbmcgZGlmZmVyZW50IGZyb20gdGhlCgkgICAgY3VycmVudCBsb2NhbGUsIHRoZSB3aWR0aCBvZiBjaGFyYWN0ZXJzIGlzIG5vdCBjb3JyZWN0LgoJICAgIFBvc3NpYmxlIGZhaWx1cmUgYW5kIG1lbW9yeSBsZWFrIHdoZW4gdXNpbmcgaWNvbnYsIFVuaWNvZGUKCSAgICBkaWdyYXBocyBhbmQgJ2VuY29kaW5nJyBpcyBub3QgInV0Zi04Ii4KU29sdXRpb246ICAgVXNlIGljb252KCkgdG8gZGlzY292ZXIgdGhlIGFjdHVhbCB3aWR0aCBvZiBjaGFyYWN0ZXJzLgoJICAgIEFkZCB0aGUgInZjX2ZhaWwiIGZpZWxkIHRvIHZpbWNvbnZfVC4KCSAgICBXaGVuIGNvbnZlcnRpbmcgYSBkaWdyYXBoLCBpbml0IHRoZSBjb252ZXJzaW9uIHR5cGUgdG8gTk9ORSBhbmQKCSAgICBjbGVhbnVwIGFmdGVyd2FyZHMuCkZpbGVzOgkgICAgc3JjL2RpZ3JhcGguYywgc3JjL21ieXRlLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMi4zNTYKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhIGRvdWJsZS1ieXRlICdlbmNvZGluZycgYW5kICdzZWxlY3Rpb24nIGlzCgkgICAgImV4Y2x1c2l2ZSIsICJ2eSIgb25seSB5YW5rcyB0aGUgZmlyc3QgYnl0ZSBvZiBhIGRvdWJsZS1ieXRlCgkgICAgY2hhcmFjdGVyLiAgKFhpYW5namlhbmcgTWEpClNvbHV0aW9uOiAgIENvcnJlY3QgdGhlIGNvbHVtbiBpbiB1bmFkanVzdF9mb3Jfc2VsKCkgdG8gcG9zaXRpb24gb24gdGhlIGZpcnN0CgkgICAgYnl0ZSwgYWx3YXlzIGluY2x1ZGUgdGhlIHRyYWlsaW5nIGJ5dGUgb2YgdGhlIHNlbGVjdGVkIHRleHQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMzU3IChhZnRlciA2LjIuMzIxKQpQcm9ibGVtOiAgICBNZW1vcnkgbGVhayB3aGVuIHJlc2l6aW5nIHRoZSBWaW0gd2luZG93LgpTb2x1dGlvbjogICBGcmVlIHRoZSBMaW5lV3JhcHMgYXJyYXkuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjIuMzU4IChhZnRlciA2LjIuMjk5KQpQcm9ibGVtOiAgICBNZW1vcnkgbGVhayB3aGVuIHVzaW5nICI6aGVscCIgYW5kIHRoZSBsYW5ndWFnZSBkb2Vzbid0IG1hdGNoLgpTb2x1dGlvbjogICBGcmVlIHRoZSBhcnJheSB3aXRoIG1hdGNoaW5nIHRhZ3MuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4yLjM1OSAoYWZ0ZXIgNi4yLjM1MikKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgbG9uZyB0byBpbnQgdHlwZSBjYXN0LgpTb2x1dGlvbjogICBBZGQgZXhwbGljaXQgdHlwZSBjYXN0LgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4zNjAKUHJvYmxlbTogICAgIjEwMHwiIGluIGFuIGVtcHR5IGxpbmUgcmVzdWx0cyBpbiBhIHJ1bGVyICIxLDAtMTAwIi4gKFBhdm9sCgkgICAgSnVoYXMpClNvbHV0aW9uOiAgIFJlY29tcHV0ZSB3X3ZpcnRjb2wgaWYgdGhlIHRhcmdldCBjb2x1bW4gd2FzIG5vdCByZWFjaGVkLgpGaWxlczoJICAgIHNyYy9taXNjMi5jCgpQYXRjaCA2LjIuMzYxIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFJ1biBndmltLCAiOnNldCBnby09bSIsIHVzZSBBbHQtVGFiLCBrZWVwIEFsdCBwcmVzc2VkIHdoaWxlCgkgICAgcHJlc3NpbmcgRXNjLCB0aGVuIHJlbGVhc2UgQWx0OiBDdXJzb3IgZGlzYXBwZWFycyBhbmQgdHlwaW5nIGEga2V5CgkgICAgY2F1c2VzIGEgYmVlcC4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBEb24ndCBpZ25vcmUgdGhlIFdNX1NZU0tFWVVQIGV2ZW50IHdoZW4gdGhlIG1lbnUgaXMgZGlzYWJsZWQuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4yLjM2MiAoZXh0cmEsIGFmdGVyIDYuMi4zNDcpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgbWFuaWZlc3QgY2F1c2VzIEd2aW0gbm90IHRvIHdvcmsuIChEYXZlIFJvYmVydHMpClNvbHV0aW9uOiAgIENoYW5nZSAieDg2IiB0byAiWDg2Ii4gKFNlcmdlIFBpcm90dGUpCkZpbGVzOgkgICAgc3JjL2d2aW0uZXhlLm1uZgoKUGF0Y2ggNi4yLjM2MwpQcm9ibGVtOiAgICBJbiBhbiBlbXB0eSBmaWxlIHdpdGggJ3Nob3dtb2RlJyBvZmYsICJpIiBkb2Vzbid0IGNoYW5nZSB0aGUgcnVsZXIKCSAgICBmcm9tICIwLTEiIHRvICIxIi4gIFR5cGluZyAieDxCUz4iIGRvZXMgc2hvdyAiMSIsIGJ1dCB0aGVuIDxFc2M+CgkgICAgZG9lc24ndCBtYWtlIGl0ICIwLTEiIGFnYWluLiAgU2FtZSBwcm9ibGVtIGZvciBydWxlciBpbgoJICAgIHN0YXR1c2xpbmUuICAoQW5kcmV3IFBpbWxvdHQpClNvbHV0aW9uOiAgIFJlbWVtYmVyIHRoZSAiZW1wdHkgbGluZSIgZmxhZyB3aXRoIEluc2VydCBtb2RlIGFuZCdlZCB0byBpdC4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMi4zNjQKUHJvYmxlbTogICAgSFRNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudGF0aW9uIGRvZXNuJ3QgbWVudGlvbiB0aGUgZW5jb2RpbmcsCgkgICAgd2hpY2ggaXMgYSBwcm9ibGVtIGZvciBtYnl0ZS50eHQuClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgYXdrIHNjcmlwdC4gKElseWEgU2hlcikKRmlsZXM6CSAgICBydW50aW1lL2RvYy9tYWtlaHRtbC5hd2sKClBhdGNoIDYuMi4zNjUKUHJvYmxlbTogICAgVGhlIGNvbmZpZ3VyZSBjaGVja3MgZm9yIFBlcmwgYW5kIFB5dGhvbiBtYXkgYWRkIGNvbXBpbGUgYW5kIGxpbmsKCSAgICBhcmd1bWVudHMgdGhhdCBicmVhayBidWlsZGluZyBWaW0uClNvbHV0aW9uOiAgIERvIGEgc2FuaXR5IGNoZWNrOiB0cnkgYnVpbGRpbmcgd2l0aCB0aGUgYXJndW1lbnRzLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4yLjM2NgpQcm9ibGVtOiAgICBXaGVuIHRoZSBHVUkgY2FuJ3Qgc3RhcnQgYmVjYXVzZSBubyB2YWxpZCBmb250IGlzIGZvdW5kLCB0aGVyZSBpcwoJICAgIG5vIGVycm9yIG1lc3NhZ2UuIChVZ2VuKQpTb2x1dGlvbjogICBBZGQgYW4gZXJyb3IgbWVzc2FnZS4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMi4zNjcKUHJvYmxlbTogICAgQnVpbGRpbmcgdGhlIGhlbHAgdGFncyBmaWxlIHdoaWxlIGluc3RhbGxpbmcgbWF5IGZhaWwgaWYgdGhlcmUgaXMKCSAgICBhbm90aGVyIFZpbSBpbiAkUEFUSC4KU29sdXRpb246ICAgU3BlY2lmeSB0aGUganVzdCBpbnN0YWxsZWQgVmltIGV4ZWN1dGFibGUuIChHb3Jkb24gUHJpZXVyKQpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4yLjM2OApQcm9ibGVtOiAgICBXaGVuICdhdXRvY2hkaXInIGlzIHNldCwgY2xvc2luZyBhIHdpbmRvdyBkb2Vzbid0IGNoYW5nZSB0byB0aGUKCSAgICBkaXJlY3Rvcnkgb2YgdGhlIG5ldyBjdXJyZW50IHdpbmRvdy4gKFNhbG1hbiBIYWxpbSkKU29sdXRpb246ICAgSGFuZGxlICdhdXRvY2hkaXInIGFsd2F5cyB3aGVuIGEgd2luZG93IGJlY29tZXMgdGhlIGN1cnJlbnQgb25lLgpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4yLjM2OQpQcm9ibGVtOiAgICBWYXJpb3VzIG1lbW9yeSBsZWFrczogd2hlbiB1c2luZyBnbG9icGF0aCgpLCB3aGVuIHNlYXJjaGluZyBmb3IKCSAgICBoZWxwIHRhZ3MgZmlsZXMsIHdoZW4gZGVmaW5pbmcgYSBmdW5jdGlvbiBpbnNpZGUgYSBmdW5jdGlvbiwgd2hlbgoJICAgIGdpdmluZyBhbiBlcnJvciBtZXNzYWdlIHRocm91Z2ggYW4gZXhjZXB0aW9uLCBmb3IgdGhlIGZpbmFsICIuIgoJICAgIGxpbmUgaW4gIjphcHBlbmQiLCBpbiBleHByZXNzaW9uICJjb25kID8gYSA6IGIiIHRoYXQgZmFpbHMgYW5kIGZvcgoJICAgIG1pc3NpbmcgIikiIGluIGFuIGV4cHJlc3Npb24uICBVc2luZyBOVUxMIHBvaW50ZXIgd2hlbiBhZGRpbmcKCSAgICBmaXJzdCB1c2VyIGNvbW1hbmQgYW5kIGZvciBwb2ludGVyIGNvbXB1dGF0aW9ucyB3aXRoIHJlZ2V4cC4KCSAgICAodGVzdHMgYnkgRG9taW5pcXVlIFBlbGxlKQpTb2x1dGlvbjogICBGaXggdGhlIGxlYWtzIGJ5IGZyZWVpbmcgdGhlIGFsbG9jYXRlZCBtZW1vcnkuICBEb24ndCB1c2UgdGhlCgkgICAgYXJyYXkgb2YgdXNlciBjb21tYW5kcyB3aGVuIHRoZXJlIGFyZSBubyBlbnRyaWVzLiAgVXNlIGEgbWFjcm8KCSAgICBpbnN0ZWFkIG9mIGEgZnVuY3Rpb24gY2FsbCBmb3Igc2F2aW5nIGFuZCByZXN0b3JpbmcgcmVnZXhwIHN0YXRlcy4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfY21kcy5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2V4X2dldGxuLmMsCgkgICAgc3JjL21pc2MyLmMsIHNyYy9yZWdleHAuYywgc3JjL3NjcmVlbi5jLCBzcmMvdGFnLmMKClBhdGNoIDYuMi4zNzAgKGV4dHJhLCBhZnRlcjYuMi4zNDEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHRoZSBwYXRoIHRvIGRpZmYuZXhlIGNvbnRhaW5zIGEgc3BhY2UgYW5kIHVzaW5nIHRoZQoJICAgIHZpbXJjIGdlbmVyYXRlZCBieSB0aGUgaW5zdGFsbCBwcm9ncmFtLCBkaWZmIG1vZGUgbWF5IG5vdCB3b3JrLgoJICAgIChBbGVqYW5kcm8gTG9wZXotVmFsZW5jaWEpClNvbHV0aW9uOiAgIERvIG5vdCB1c2UgZG91YmxlIHF1b3RlcyBmb3IgYXJndW1lbnRzIHRoYXQgZG8gbm90IGhhdmUgYSBzcGFjZS4KRmlsZXM6CSAgICBzcmMvZG9zaW5zdC5jCgpQYXRjaCA2LjIuMzcxClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQgYW5kIHRoZXJlIGlzIGEgVGFiIGJlZm9yZSB0aGUgbmV4dCAieCIsCgkgICAgImR0eCIgZG9lcyBub3QgZGVsZXRlIHRoZSB3aG9sZSBUYWIuIChLZW4gSGFzaGlzaGkpClNvbHV0aW9uOiAgIE1vdmUgdGhlIGN1cnNvciB0byB0aGUgbGFzdCBwb3NpdGlvbiBvZiB0aGUgVGFiLiAgQWxzbyBmb3IKCSAgICAiZGY8VGFiPiIuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMzcyClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYmFsbG9vbiBldmFsdWF0aW9uLCBubyB2YWx1ZSBpcyBkaXNwbGF5ZWQgZm9yIG1lbWJlcnMKCSAgICBvZiBzdHJ1Y3R1cmVzIGFuZCBpdGVtcyBvZiBhbiBhcnJheS4KU29sdXRpb246ICAgSW5jbHVkZSAiLT4iLCAiLiIgYW5kICJbKl0iIGluIHRoZSBleHByZXNzaW9uLgpGaWxlczoJICAgIHNyYy9ndWlfYmV2YWwuYywgc3JjL25vcm1hbC5jLCBzcmMvdmltLmgKClBhdGNoIDYuMi4zNzMKUHJvYmxlbTogICAgV2hlbiAnd2lubWluaGVpZ2h0JyBpcyB6ZXJvIGFuZCBhIHdpbmRvdyBpcyByZWR1Y2VkIHRvIHplcm8KCSAgICBoZWlnaHQsIHRoZSBydWxlciBhbHdheXMgc2F5cyAiVG9wIiBpbnN0ZWFkIG9mIHRoZSBjdXJzb3IKCSAgICBwb3NpdGlvbi4gKEFudG9pbmUgSi4gTWVjaGVseW5jaykKU29sdXRpb246ICAgRG9uJ3QgcmVjb21wdXRlIHdfdG9wbGluZSBmb3IgYSB6ZXJvLWhlaWdodCB3aW5kb3cuCkZpbGVzOgkgICAgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjIuMzc0ClByb2JsZW06ICAgICI6ZWNobyAiaGVsbG8iIHwgc2lsZW50IG5vcm1hbCBuIiByZW1vdmVzIHRoZSAiaGVsbG8iIG1lc3NhZ2UuCgkgICAgKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIERvbid0IGVjaG8gdGhlIHNlYXJjaCBzdHJpbmcgd2hlbiAiOnNpbGVudCIgd2FzIHVzZWQuICBBbHNvIGRvbid0CgkgICAgc2hvdyB0aGUgbW9kZS4gIEluIGdlbmVyYWw6IGRvbid0IGNsZWFyIHRvIHRoZSBlbmQgb2YgdGhlIHNjcmVlbi4KRmlsZXM6CSAgICBzcmMvZ3VpLmMsIHNyYy9tZXNzYWdlLmMsIHNyYy9vc191bml4LmMsIHNyYy9wcm90by9tZXNzYWdlLnBybywKCSAgICBzcmMvc2NyZWVuLmMsIHNyYy9zZWFyY2guYywgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjIuMzc1ClByb2JsZW06ICAgIFdoZW4gY2hhbmdpbmcgJ2d1aW9wdGlvbnMnIHRoZSBoaXQtZW50ZXIgcHJvbXB0IG1heSBiZSBiZWxvdyB0aGUKCSAgICBlbmQgb2YgdGhlIFZpbSB3aW5kb3cuClNvbHV0aW9uOiAgIENhbGwgc2NyZWVuX2FsbG9jKCkgYmVmb3JlIHNob3dpbmcgdGhlIHByb21wdC4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjIuMzc2ClByb2JsZW06ICAgIFdpbjMyOiBSdWJ5IGludGVyZmFjZSBjYW5ub3QgYmUgZHluYW1pY2FsbHkgbGlua2VkIHdpdGggUnVieSAxLjYuClNvbHV0aW9uOiAgIEFkZCAjaWZkZWZzIGFyb3VuZCB1c2Ugb2YgcmJfdzMyX3NucHJpbnRmKCkuICAoQmVub+50IENlcnJpbmEpCkZpbGVzOgkgICAgc3JjL2lmX3J1YnkuYwoKUGF0Y2ggNi4yLjM3NyAoYWZ0ZXIgNi4yLjM3MikKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZ3MgZm9yIHNpZ25lZC91bnNpZ25lZCBjb21wYXJlLiAoTWljaGFlbCBXb29rZXkpClNvbHV0aW9uOiAgIEFkZCB0eXBlIGNhc3QuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMzc4IChleHRyYSwgYWZ0ZXIgNi4yLjExOCkKUHJvYmxlbTogICAgTWFjOiBjYW5ub3QgYnVpbGQgd2l0aCBQcm9qZWN0IEJ1aWxkZXIuClNvbHV0aW9uOiAgIEFkZCByZW1vdmVfdGFpbF93aXRoX2V4dCgpIHRvIGxvY2F0ZSBhbmQgcmVtb3ZlIHRoZSAiYnVpbGQiCgkgICAgZGlyZWN0b3J5IGZyb20gdGhlIHJ1bnRpbWUgcGF0aC4gIEluY2x1ZGUgb3NfdW5peC5jIHdoZW4gbmVlZGVkLgoJICAgIChEYW55IFN0IEFtYW50KQpGaWxlczoJICAgIHNyYy9taXNjMS5jLCBzcmMvb3NfbWFjb3N4LmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjM3OQpQcm9ibGVtOiAgICBVc2luZyAiOm1rdmltcmMiIGluIHRoZSAiOm9wdGlvbnMiIHdpbmRvdyBzZXRzICdidWZoaWRkZW4nIHRvCgkgICAgImRlbGV0ZSIuIChNaWNoYWVsIE5hdW1hbm4pClNvbHV0aW9uOiAgIERvIG5vdCBhZGQgYnVmZmVyLXNwZWNpZmljIG9wdGlvbiB2YWx1ZXMgdG8gYSBnbG9iYWwgdmltcmMgZmlsZS4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi4zODAgKGV4dHJhKQpQcm9ibGVtOiAgICBET1M6ICJtYWtlIHRlc3QiIGZhaWxzIHdoZW4gcnVubmluZyBpdCBhZ2Fpbi4gIENhbid0ICJtYWtlIHRlc3QiCgkgICAgd2l0aCBCb3JsYW5kIEMuClNvbHV0aW9uOiAgIE1ha2Ugc3VyZSAiLm91dCIgZmlsZXMgYXJlIGRlbGV0ZWQgd2hlbiB0aGV5IGdldCBpbiB0aGUgd2F5LiAgQWRkCgkgICAgYSAidGVzdCIgdGFyZ2V0IHRvIHRoZSBCb3JsYW5kIEMgTWFrZWZpbGUuCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1haywgc3JjL3Rlc3RkaXIvTWFrZV9kb3MubWFrCgpQYXRjaCA2LjIuMzgxClByb2JsZW06ICAgIFNldHRpbmcgJ2ZpbGVlbmNvZGluZycgdG8gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCAoY29uZnVzaW5nIGl0CgkgICAgd2l0aCAnZmlsZWVuY29kaW5ncycpIGRvZXMgbm90IHJlc3VsdCBpbiBhbiBlcnJvciBtZXNzYWdlLgoJICAgIFNldHRpbmcgJ2ZpbGVlbmNvZGluZycgaW4gYW4gZW1wdHkgZmlsZSBtYXJrcyBpdCBhcyBtb2RpZmllZC4KCSAgICBUaGVyZSBpcyBubyAiKyIgaW4gdGhlIHRpdGxlIGFmdGVyIHNldHRpbmcgJ2ZpbGVlbmNvZGluZycuClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIGNvbW1hIGluICdmaWxlZW5jb2RpbmcnLiAgT25seSBjb25zaWRlciBhIG5vbi1lbXB0eQoJICAgIGZpbGUgbW9kaWZpZWQgYnkgY2hhbmdpbmcgJ2ZpbGVlbmNvZGluZycuICBVcGRhdGUgdGhlIHRpdGxlIGFmdGVyCgkgICAgY2hhbmdpbmcgJ2ZpbGVlbmNvZGluZycuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuMzgyClByb2JsZW06ICAgIFJ1bm5pbmcgIm1ha2UgdGVzdCIgcHV0cyBtYXJrcyBmcm9tIHRlc3QgZmlsZXMgaW4gdmltaW5mby4KU29sdXRpb246ICAgU3BlY2lmeSBhIGRpZmZlcmVudCB2aW1pbmZvIGZpbGUgdG8gdXNlLgpGaWxlczoJICAgIHNyYy90ZXN0ZGlyL3Rlc3QxNS5pbiwgc3JjL3Rlc3RkaXIvdGVzdDQ5LmluCgpQYXRjaCA2LjIuMzgzClByb2JsZW06ICAgICI6aGkgZm9vIHRlcm09J2JsYSIgY3Jhc2hlcyBWaW0uIChBbnRvbnkgU2NyaXZlbikKU29sdXRpb246ICAgQ2hlY2sgdGhhdCB0aGUgY2xvc2luZyAnIGlzIHRoZXJlLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4yLjM4NApQcm9ibGVtOiAgICAiOm1lbnUgYS4mYiIgIjp1bm1lbnUgYS5iIiBvbmx5IHdvcmtzIGlmICImYiIgaXNuJ3QgdHJhbnNsYXRlZC4KU29sdXRpb246ICAgQWxzbyBjb21wYXJlIHRoZSBuYW1lcyB3aXRob3V0ICcmJyBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9tZW51LmMKClBhdGNoIDYuMi4zODUgIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IGZvcndhcmRfc2xhc2goKSBhbmQgdHJhc2hfaW5wdXRfYnVmKCkgYXJlIHVuZGVmaW5lZCB3aGVuCgkgICAgY29tcGlsaW5nIHdpdGggc21hbGwgZmVhdHVyZXMuIChBaml0IFRoYWtrYXIpClNvbHV0aW9uOiAgIENoYW5nZSB0aGUgI2lmZGVmcyBmb3IgZm9yd2FyZF9zbGFzaCgpLiAgRG9uJ3QgY2FsbAoJICAgIHRyYXNoX2lucHV0X2J1ZigpIGlmIHRoZSBpbnB1dCBidWZmZXIgaXNuJ3QgdXNlZC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjIuMzg2ClByb2JsZW06ICAgIFdhc3RpbmcgdGltZSB0cnlpbmcgdG8gcmVhZCBtYXJrcyBmcm9tIHRoZSB2aW1pbmZvIGZpbGUgZm9yIGEKCSAgICBidWZmZXIgd2l0aG91dCBhIG5hbWUuClNvbHV0aW9uOiAgIFNraXAgcmVhZGluZyBtYXJrcyB3aGVuIHRoZSBidWZmZXIgaGFzIG5vIG5hbWUuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuMzg3ClByb2JsZW06ICAgIFRoZXJlIGlzIG5vIGhpZ2hsaWdodGluZyBvZiB0cmFuc2xhdGVkIGl0ZW1zIGluIGhlbHAgZmlsZXMuClNvbHV0aW9uOiAgIFNlYXJjaCBmb3IgYSAiaGVscF9hYi52aW0iIHN5bnRheCBmaWxlIHdoZW4gdGhlIGhlbHAgZmlsZSBpcwoJICAgIGNhbGxlZCAiKi5hYngiLiAgQWxzbyBpbXByb3ZlIHRoZSBoZWxwIGhpZ2hsaWdodGluZyBhIGJpdC4KRmlsZXM6CSAgICBydW50aW1lL3N5bnRheC9oZWxwLnZpbQoKUGF0Y2ggNi4yLjM4OApQcm9ibGVtOiAgICBHVEs6IFdoZW4gZGlzcGxheWluZyBzb21lIGRvdWJsZS13aWR0aCBjaGFyYWN0ZXJzIHRoZXkgYXJlIGRyYXduCgkgICAgYXMgc2luZ2xlLXdpZHRoLCBiZWNhdXNlIG9mIGNvbnZlcnNpb24gdG8gVVRGLTguClNvbHV0aW9uOiAgIENoZWNrIHRoZSB3aWR0aCB0aGF0IEdUSyB1c2VzIGFuZCBhZGQgYSBzcGFjZSBpZiBpdCdzIG9uZSBpbnN0ZWFkCgkgICAgb2YgdHdvLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjIuMzg5ClByb2JsZW06ICAgIFdoZW4gd29ya2luZyBvdmVyIGEgc2xvdyBjb25uZWN0aW9uLCBpdCdzIHZlcnkgYW5ub3lpbmcgdGhhdCB0aGUKCSAgICBsYXN0IGxpbmUgaXMgcGFydGx5IGRyYXduIGFuZCB0aGVuIGNsZWFyZWQgZm9yIGV2ZXJ5IGNoYW5nZS4KU29sdXRpb246ICAgRG9uJ3QgcmVkcmF3IHRoZSBib3R0b20gbGluZSBpZiBubyByb3dzIHdlcmUgaW5zZXJ0ZWQgb3IgZGVsZXRlZC4KCSAgICBEb24ndCBkcmF3IHRoZSBsaW5lIGlmIHdlIGtub3cgIkAiIGxpbmVzIHdpbGwgYmUgdXNlZC4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMi4zOTAKUHJvYmxlbTogICAgVXNpbmcgInIqIiBpbiBWaXN1YWwgbW9kZSBvbiBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgb25seSByZXBsYWNlcwoJICAgIGV2ZXJ5IG90aGVyIGNoYXJhY3Rlci4gKFR5c29uIFJvYmVydHMpClNvbHV0aW9uOiAgIENvcnJlY3QgdGhlIGN1cnNvciBwb3NpdGlvbiBhZnRlciByZXBsYWNpbmcgZWFjaCBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjIuMzkxIChleHRyYSkKUHJvYmxlbTogICAgVGhlICI6aGlnaGxpZ2h0IiBjb21tYW5kIGlzIG5vdCB0ZXN0ZWQuClNvbHV0aW9uOiAgIEFkZCBhIHRlc3Qgc2NyaXB0IGZvciAiOmhpZ2hsaWdodCIuCkZpbGVzOgkgICAgc3JjL3Rlc3RkaXIvTWFrZWZpbGUsIHNyYy90ZXN0ZGlyL01ha2VfYW1pZ2EubWFrLAoJICAgIHNyYy90ZXN0ZGlyL01ha2VfZG9zLm1haywgc3JjL3Rlc3RkaXIvTWFrZV9vczIubWFrLAoJICAgIHNyYy90ZXN0ZGlyL01ha2Vfdm1zLm1tcywgc3JjL3Rlc3RkaXIvdGVzdDUxLmluLAoJICAgIHNyYy90ZXN0ZGlyL3Rlc3Q1MS5vawoKUGF0Y2ggNi4yLjM5MiAoYWZ0ZXIgNi4yLjM4NCkKUHJvYmxlbTogICAgVW51c2VkIHZhcmlhYmxlLgpTb2x1dGlvbjogICBSZW1vdmUgImRsZW4iLgpGaWxlczoJICAgIHNyYy9tZW51LmMKClBhdGNoIDYuMi4zOTMKUHJvYmxlbTogICAgV2hlbiB1c2luZyB2ZXJ5IGxvbmcgbGluZXMgdGhlIHZpbWluZm8gZmlsZSBjYW4gYmVjb21lIHZlcnkgYmlnLgpTb2x1dGlvbjogICBBZGQgdGhlICJzIiBmbGFnIHRvICd2aW1pbmZvJzogc2tpcCByZWdpc3RlcnMgd2l0aCBtb3JlIHRoYW4gdGhlCgkgICAgc3BlY2lmaWVkIEtieXRlIG9mIHRleHQuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9vcHMuYywgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuMzk0ICAoYWZ0ZXIgNi4yLjM5MSkKUHJvYmxlbTogICAgVGVzdCA1MSBmYWlscyBvbiBhIHRlcm1pbmFsIHdpdGggOCBjb2xvcnMuIChUb255IExlbmVpcykKU29sdXRpb246ICAgVXNlICJEYXJrQmx1ZSIgaW5zdGVhZCBvZiAiQmx1ZSIgdG8gYXZvaWQgdGhlICJib2xkIiBhdHRyaWJ1dGUuCkZpbGVzOgkgICAgc3JjL3Rlc3RkaXIvdGVzdDUxLmluCgpQYXRjaCA2LjIuMzk1ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjp0YWciIG9yICI6cG9wIiB0aGUgcHJldmlvdXMgbWF0Y2hpbmcgdGFnIGlzIHVzZWQuCgkgICAgQnV0IHNpbmNlIHRoZSBjdXJyZW50IGZpbGUgaXMgZGlmZmVyZW50LCB0aGUgb3JkZXJpbmcgb2YgdGhlIHRhZ3MKCSAgICBtYXkgY2hhbmdlLgpTb2x1dGlvbjogICBSZW1lbWJlciB3aGF0IHRoZSBjdXJyZW50IGJ1ZmZlciB3YXMgZm9yIHdoZW4gcmUtdXNpbmcgY3VyX21hdGNoLgpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9leF9jbWRzLmMsIHNyYy9wcm90by90YWcucHJvLCBzcmMvc3RydWN0cy5oLAoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjM5NgpQcm9ibGVtOiAgICBXaGVuIENUUkwtVCBqdW1wcyB0byBhbm90aGVyIGZpbGUgYW5kIGFuIGF1dG9jb21tYW5kIG1vdmVzIHRoZQoJICAgIGN1cnNvciB0byB0aGUgJyIgbWFyaywgZG9uJ3QgZW5kIHVwIG9uIHRoZSByaWdodCBsaW5lLiAgKE1pY2hhbAoJICAgIE1hbGVja2kpClNvbHV0aW9uOiAgIFNldCB0aGUgbGluZSBudW1iZXIgYWZ0ZXIgbG9hZGluZyB0aGUgZmlsZS4KRmlsZXM6CSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMi4zOTcKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhIGRvdWJsZS1ieXRlICdlbmNvZGluZycgbWFwcGluZyA8TS14PiBkb2Vzbid0IHdvcmsuCgkgICAgKFlhc3VoaXJvIE1hdHN1bW90bykKU29sdXRpb246ICAgRG8gbm90IHNldCB0aGUgOHRoIGJpdCBvZiB0aGUgY2hhcmFjdGVyIGJ1dCB1c2UgYSBtb2RpZmllci4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYywgc3JjL2d1aV94MTEuYywgc3JjL21pc2MyLmMKClBhdGNoIDYuMi4zOTggKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMiBjb25zb2xlOiBubyBleHRyYSBrZXkgbW9kaWZpZXJzIGFyZSBzdXBwb3J0ZWQuClNvbHV0aW9uOiAgIEVuY29kZSB0aGUgbW9kaWZpZXJzIGludG8gdGhlIGlucHV0IHN0cmVhbS4gIEFsc28gZml4IHRoYXQgc3BlY2lhbAoJICAgIGtleXMgYXJlIGNvbnZlcnRlZCBhbmQgc3RvcCB3b3JraW5nIHdoZW4gJ3RlbmMnIGlzIHNldC4gIEFsc28gZml4CgkgICAgdGhhdCB3aGVuICd0ZW5jJyBpcyBpbml0aWFsaXplZCB0aGUgaW5wdXQgYW5kIG91dHB1dCBjb252ZXJzaW9uIGlzCgkgICAgbm90IHNldHVwIHByb3Blcmx5IHVudGlsICdlbmMnIG9yICd0ZW5jJyBpcyBzZXQuCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYywgc3JjL29wdGlvbi5jLCBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjM5OQpQcm9ibGVtOiAgICBBICI6c2V0IiBjb21tYW5kIHRoYXQgZmFpbHMgc3RpbGwgd3JpdGVzIGEgbWVzc2FnZSB3aGVuIGl0IGlzCgkgICAgaW5zaWRlIGEgdHJ5L2NhdGNoIGJsb2NrLgpTb2x1dGlvbjogICBJbmNsdWRlIGFsbCB0aGUgdGV4dCBvZiB0aGUgbWVzc2FnZSBpbiB0aGUgZXJyb3IgbWVzc2FnZS4KRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jLCBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi40MDAKUHJvYmxlbTogICAgQ2FuJ3QgY29tcGlsZSBpZl94Y21kc3J2LmMgb24gSFAtVVggMTEuMC4KU29sdXRpb246ICAgSW5jbHVkZSBoZWFkZXIgZmlsZSBwb2xsLmguIChNYWx0ZSBOZXVtYW5uKQpGaWxlczoJICAgIHNyYy9pZl94Y21kc3J2LmMKClBhdGNoIDYuMi40MDEKUHJvYmxlbTogICAgV2hlbiBvcGVuaW5nIGEgYnVmZmVyIHRoYXQgd2FzIHByZXZpb3VzbHkgb3BlbmVkLCBWaW0gZG9lcyBub3QKCSAgICByZXN0b3JlIHRoZSBjdXJzb3IgcG9zaXRpb24gaWYgdGhlIGZpcnN0IGxpbmUgc3RhcnRzIHdpdGggd2hpdGUKCSAgICBzcGFjZS4gIChHcmVnb3J5IE1hcmdvKQpTb2x1dGlvbjogICBEb24ndCBza2lwIHJlc3RvcmluZyB0aGUgY3Vyc29yIHBvc2l0aW9uIGlmIGl0IGlzIHBhc3QgdGhlIGJsYW5rcwoJICAgIGluIHRoZSBmaXJzdCBsaW5lLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4yLjQwMgpQcm9ibGVtOiAgICBNYWM6ICJtYWtlIGluc3RhbGwiIGRvZXNuJ3QgZ2VuZXJhdGUgaGVscCB0YWdzLiAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBHZW5lcmF0ZSBoZWxwIHRhZ3MgYmVmb3JlIGNvcHlpbmcgdGhlIHJ1bnRpbWUgZmlsZXMuCkZpbGVzOgkgICAgc3JjL01ha2VmaWxlCgpQYXRjaCA2LjIuNDAzClByb2JsZW06ICAgICI6QHkiIGNoZWNrcyBzdGRpbiBpZiB0aGVyZSBhcmUgbW9yZSBjb21tYW5kcyB0byBleGVjdXRlLiAgVGhpcwoJICAgIGZhaWxzIGlmIHN0ZGluIGlzIG5vdCBjb25uZWN0ZWQsIGUuZy4sIHdoZW4gc3RhcnRpbmcgdGhlIEdVSSBmcm9tCgkgICAgS0RFLiAoTmVkIEtvbnopClNvbHV0aW9uOiAgIE9ubHkgY2hlY2sgZm9yIGEgbmV4dCBjb21tYW5kIGlmIHRoZXJlIHN0aWxsIGlzIHR5cGVhaGVhZC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjQwNApQcm9ibGVtOiAgICBPdXIgb3duIGZ1bmN0aW9uIHRvIGRldGVybWluZSB3aWR0aCBvZiBVbmljb2RlIGNoYXJhY3RlcnMgbWF5IGdldAoJICAgIG91dGRhdGVkLiAoTWFya3VzIEt1aG4pClNvbHV0aW9uOiAgIFVzZSB3Y3dpZHRoKCkgd2hlbiBpdCBpcyBhdmFpbGFibGUuICBBbHNvIHVzZSBpc3dwcmludCgpLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2NvbmZpZy5oLmluLCBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjQwNQpQcm9ibGVtOiAgICBDYW5ub3QgbWFwIHplcm8gd2l0aG91dCBicmVha2luZyB0aGUgY291bnQgYmVmb3JlIGEgY29tbWFuZC4KCSAgICAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBEaXNhYmxlIG1hcHBpbmcgemVybyB3aGVuIGVudGVyaW5nIGEgY291bnQuCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYywgc3JjL2dsb2JhbHMuaCwgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuNDA2ClByb2JsZW06ICAgICI6aGVscCBcenMiLCAiOmhlbHAgXEA9IiBhbmQgc2ltaWxhciBkb24ndCBmaW5kIHVzZWZ1bCBoZWxwLgpTb2x1dGlvbjogICBQcmVwZW5kICIvXCIgdG8gdGhlIGFyZ3VtZW50cyB0byBmaW5kIHRoZSBkZXNpcmVkIGhlbHAgdGFnLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi40MDcgKGFmdGVyIDYuMi4yOTkpClByb2JsZW06ICAgICI6aGVscCBcQDw9IiBkb2Vzbid0IGZpbmQgaGVscC4KU29sdXRpb246ICAgQXZvaWQgdGhhdCAiOmhlbHAgXEA8PSIgc2VhcmNoZXMgZm9yIHRoZSAiPD0iIGxhbmd1YWdlLgpGaWxlczoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjQwOApQcm9ibGVtOiAgICAiOmNvbXBpbGVyIiBpcyBub3QgY29uc2lzdGVudDogU2V0cyBsb2NhbCBvcHRpb25zIGFuZCBhIGdsb2JhbAoJICAgIHZhcmlhYmxlLiAoRG91Z2xhcyBQb3R0cykgIFRoZXJlIGlzIG5vIGVycm9yIG1lc3NhZ2Ugd2hlbiBhCgkgICAgY29tcGlsZXIgaXMgbm90IHN1cHBvcnRlZC4KU29sdXRpb246ICAgVXNlICI6Y29tcGlsZXIhIiB0byBzZXQgYSBjb21waWxlciBnbG9iYWxseSwgb3RoZXJ3aXNlIGl0J3MgbG9jYWwKCSAgICB0byB0aGUgYnVmZmVyIGFuZCAiYjpjdXJyZW50X2NvbXBpbGVyIiBpcyB1c2VkLiAgR2l2ZSBhbiBlcnJvcgoJICAgIHdoZW4gbm8gY29tcGlsZXIgc2NyaXB0IGNvdWxkIGJlIGZvdW5kLgoJICAgIE5vdGU6IHVwZGF0ZWQgY29tcGlsZXIgcGx1Z2lucyBjYW4gYmUgZm91bmQgYXQKCSAgICBmdHA6Ly9mdHAudmltLm9yZy9wdWIvdmltL3J1bnRpbWUvY29tcGlsZXIvCkZpbGVzOgkgICAgcnVudGltZS9jb21waWxlci9tc3ZjLnZpbSwgcnVudGltZS9kb2MvcXVpY2tmaXgudHh0LCBzcmMvZXZhbC5jLAoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjIuNDA5ClByb2JsZW06ICAgIFRoZSBjdXJzb3IgZW5kcyB1cCBpbiB0aGUgbGFzdCBjb2x1bW4gaW5zdGVhZCBvZiBhZnRlciB0aGUgbGluZQoJICAgIHdoZW4gZG9pbmcgImkvLzxFc2M+byIgd2l0aCAnaW5kZW50ZXhwcicgc2V0IHRvICJjaW5kZW50KHY6bG51bSkiLgoJICAgIChUb2J5IEFsbHNvcHApClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgY3Vyc29yIGFzIGlmIGluIEluc2VydCBtb2RlLgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjIuNDEwIChhZnRlciA2LjIuMzg5KQpQcm9ibGVtOiAgICBJbiBkaWZmIG1vZGUsIHdoZW4gdGhlcmUgYXJlIG1vcmUgZmlsbGVyIGxpbmVzIHRoYW4gZml0IGluIHRoZQoJICAgIHdpbmRvdywgdGhleSBhcmUgbm90IGRyYXduLgpTb2x1dGlvbjogICBDaGVjayBmb3IgZmlsbGVyIGxpbmVzIHdoZW4gc2tpcHBpbmcgdG8gZHJhdyBhIGxpbmUgdGhhdCBkb2Vzbid0CgkgICAgZml0LgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4yLjQxMQpQcm9ibGVtOiAgICBBICJcbiIgaW5zaWRlIGEgc3RyaW5nIGlzIG5vdCBzZWVuIGFzIGEgbGluZSBicmVhayBieSB0aGUgcmVndWxhcgoJICAgIGV4cHJlc3Npb24gbWF0Y2hpbmcuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgQWRkIHRoZSB2aW1fcmVnZXhlY19ubCgpIGZ1bmN0aW9uIGZvciBzdHJpbmdzIHdoZXJlICJcbiIgaXMgdG8gYmUKCSAgICBtYXRjaGVkIHdpdGggYSBsaW5lIGJyZWFrLgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9leF9ldmFsLmMsIHNyYy9wcm90by9yZWdleHAuYywgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjIuNDEyClByb2JsZW06ICAgIFJ1Ynk6ICJydWJ5IDw8IEVPRiIgaW5zaWRlIGEgZnVuY3Rpb24gZG9lc24ndCBhbHdheXMgd29yay4gIEFsc28KCSAgICBmb3IgIjpweXRob24iLCAiOnRjbCIgYW5kICI6cGVybCIuClNvbHV0aW9uOiAgIENoZWNrIGZvciAiPDwgbWFya2VyIiBhbmQgc2tpcCB1bnRpbCAibWFya2VyIiBiZWZvcmUgY2hlY2tpbmcgZm9yCgkgICAgImVuZGZ1bmN0aW9uIi4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuNDEzIChhZnRlciA2LjIuNDExKQpQcm9ibGVtOiAgICBNaXNzaW5nIHByb3RvdHlwZSBmb3IgdmltX3JlZ2V4ZWNfbmwoKS4gKE1hcmNlbCBTdml0YWxza3kpClNvbHV0aW9uOiAgIE5vdyByZWFsbHkgaW5jbHVkZSB0aGUgcHJvdG90eXBlLgpGaWxlczoJICAgIHNyYy9wcm90by9yZWdleHAucHJvCgpQYXRjaCA2LjIuNDE0ClByb2JsZW06ICAgIFRoZSBmdW5jdGlvbiB1c2VkIGZvciBjdXN0b20gY29tcGxldGlvbiBvZiB1c2VyIGNvbW1hbmRzIGNhbm5vdAoJICAgIGhhdmUgPFNJRD4gdG8gbWFrZSBpdCBsb2NhbC4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBQYXNzIHRoZSBTSUQgb2YgdGhlIHNjcmlwdCB3aGVyZSB0aGUgdXNlciBjb21tYW5kIHdhcyBkZWZpbmVkIG9uCgkgICAgdG8gdGhlIGNvbXBsZXRpb24uICBBbHNvIGNsZWFuIHVwICNpZmRlZnMuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9ldmFsLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjIuNDE1ClByb2JsZW06ICAgIFZpbSBtYXkgY3Jhc2ggYWZ0ZXIgYSBzZXF1ZW5jZSBvZiBldmVudHMgdGhhdCBjaGFuZ2UgdGhlIHdpbmRvdwoJICAgIHNpemUuICBUaGUgd2luZG93IGxheW91dCBhc3N1bWVzIGEgbGFyZ2VyIHdpbmRvdyB0aGFuIGlzIGFjdHVhbGx5CgkgICAgYXZhaWxhYmxlLiAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgSW52b2tlIHdpbl9uZXdfc2hlbGxzaXplKCkgZnJvbSBzY3JlZW5hbGxvYygpIGluc3RlYWQgb2YgZnJvbQoJICAgIHNldF9zaGVsbHNpemUoKS4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMsIHNyYy90ZXJtLmMKClBhdGNoIDYuMi40MTYKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgaW5jb21wYXRpYmxlIHBvaW50ZXIuClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgIiYiIGluIHRoZSBjYWxsIHRvIHBvbGwoKS4gKFhhdmllciBkZSBHYXllKQpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMi40MTcgKGFmdGVyIDYuMi4zOTMpClByb2JsZW06ICAgIE1hbnkgcGVvcGxlIGZvcmdldCB0aGF0IHRoZSAnIicgaXRlbSBpbiAndmltaW5mbycgbmVlZHMgdG8gYmUKCSAgICBwcmVjZWRlZCB3aXRoIGEgYmFja3NsYXNoLApTb2x1dGlvbjogICBBZGQgJzwnIGFzIGFuIGFsaWFzIGZvciB0aGUgJyInIGl0ZW0uCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9vcHMuYywgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuNDE4ClByb2JsZW06ICAgIFVzaW5nICI6bm5vcmVtYXAgPEYxMj4gOmVjaG8gImNoZWVzZSIgYW5kICI6Y2FiYnIgY2hlZXNlIHh4eCI6CgkgICAgd2hlbiBwcmVzc2luZyA8RjEyPiBzdGlsbCB1c2VzIHRoZSBhYmJyZXZpYXRpb24uIChIYXJpIEtyaXNobmEpClNvbHV0aW9uOiAgIEFsc28gYXBwbHkgIm5vcmVtYXAiIHRvIGFiYnJldmlhdGlvbnMuCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYwoKUGF0Y2ggNi4yLjQxOSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBDYW5ub3Qgb3BlbiB0aGUgVmltIHdpbmRvdyBpbnNpZGUgYW5vdGhlciBhcHBsaWNhdGlvbi4KU29sdXRpb246ICAgQWRkIHRoZSAiLVAiIGFyZ3VtZW50IHRvIHNwZWNpZnkgdGhlIHdpbmRvdyB0aXRsZSBvZiB0aGUKCSAgICBhcHBsaWNhdGlvbiB0byBydW4gaW5zaWRlLiAoWmlibyBaaGFvKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dCwgc3JjL21haW4uYywgc3JjL2d1aV93MzIuYywKCSAgICBzcmMvZ3VpX3c0OC5jLCBzcmMvaWZfb2xlLmNwcCwgc3JjL29zX21zd2luLmMsCgkgICAgc3JjL3Byb3RvL2d1aV93MzIucHJvCgpQYXRjaCA2LjIuNDIwClByb2JsZW06ICAgIENhbm5vdCBzcGVjaWZ5IGEgZmlsZSB0byBiZSBlZGl0ZWQgaW4gYmluYXJ5IG1vZGUgd2l0aG91dCBzZXR0aW5nCgkgICAgdGhlIGdsb2JhbCB2YWx1ZSBvZiB0aGUgJ2JpbmFyeScgb3B0aW9uLgpTb2x1dGlvbjogICBTdXBwb3J0ICI6ZWRpdCArK2JpbiBmaWxlIi4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9lZGl0aW5nLnR4dCwgc3JjL2J1ZmZlci5jLCBzcmMvZXZhbC5jLCBzcmMvZXhfY21kcy5oLAoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZmlsZWlvLmMsIHNyYy9taXNjMi5jCgpQYXRjaCA2LjIuNDIxClByb2JsZW06ICAgIENhbm5vdCBzZXQgdGhlICdbIGFuZCAnXSBtYXJrLCB3aGljaCBtYXkgYmUgbmVjZXNzYXJ5IHdoZW4gYW4KCSAgICBhdXRvY29tbWFuZCBzaW11bGF0ZXMgcmVhZGluZyBhIGZpbGUuClNvbHV0aW9uOiAgIEFsbG93IHVzaW5nICJtWyIgYW5kICJtXSIuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvbW90aW9uLnR4dCwgc3JjL21hcmsuYwoKUGF0Y2ggNi4yLjQyMgpQcm9ibGVtOiAgICBJbiBDVFJMLVggY29tcGxldGlvbiBtZXNzYWdlcyB0aGUgIi8iIG1ha2VzIHRoZW0gbGVzcyByZWFkYWJsZS4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBzbGFzaGVzLiAoQW50b255IFNjcml2ZW4pCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4yLjQyMwpQcm9ibGVtOiAgICAiOnZlcnRpY2FsIHdpbmNtZCBdIiBkb2VzIG5vdCBzcGxpdCB2ZXJ0aWNhbGx5LgpTb2x1dGlvbjogICBBZGQgInBvc3Rwb25lZF9zcGxpdF9mbGFncyIuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9pZl9jc2NvcGUuYywgc3JjL3RhZy5jCgpQYXRjaCA2LjIuNDI0ClByb2JsZW06ICAgIEEgQnVmRW50ZXIgYXV0b2NvbW1hbmQgdGhhdCBzZXRzIGFuIG9wdGlvbiBzdG9wcyAnbW91c2Vmb2N1cycgZnJvbQoJICAgIHdvcmtpbmcgaW4gSW5zZXJ0IG1vZGUgKE5vcm1hbCBtb2RlIGlzIE9LKS4gKEdyZWdvcnkgU2VpZG1hbikKU29sdXRpb246ICAgSW4gdGhlIEluc2VydCBtb2RlIGxvb3AgaW52b2tlIGd1aV9tb3VzZV9jb3JyZWN0KCkgd2hlbiBuZWVkZWQuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4yLjQyNQpQcm9ibGVtOiAgICBWZXJ0aWNhbCBzcGxpdCBhbmQgY29tbWFuZCBsaW5lIHdpbmRvdzogY2FuIG9ubHkgZHJhZyBzdGF0dXMgbGluZQoJICAgIGFib3ZlIHRoZSBjbWRsaW5lIHdpbmRvdyBvbiB0aGUgcmlnaHRoYW5kIHNpZGUsIG5vdCBsZWZ0aGFuZCBzaWRlLgpTb2x1dGlvbjogICBDaGVjayB0aGUgc3RhdHVzIGxpbmUgcm93IGluc3RlYWQgb2YgdGhlIHdpbmRvdyBwb2ludGVyLgpGaWxlczoJICAgIHNyYy91aS5jCgpQYXRjaCA2LjIuNDI2ClByb2JsZW06ICAgIEEgc3ludGF4IHJlZ2lvbiBlbmQgbWF0Y2ggd2l0aCBhIG1hdGNoZ3JvdXAgdGhhdCBpbmNsdWRlcyBhIGxpbmUKCSAgICBicmVhayBvbmx5IGhpZ2hsaWdodHMgdGhlIGxhc3QgbGluZSB3aXRoIG1hdGNoZ3JvdXAuIChHYXJ5CgkgICAgSG9sbG93YXkpClNvbHV0aW9uOiAgIEFsc28gdXNlIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgcG9zaXRpb24gd2hlcmUgdGhlIHJlZ2lvbgoJICAgIGhpZ2hsaWdodGluZyBlbmRzLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4yLjQyNyAoZXh0cmEpClByb2JsZW06ICAgIFdoZW4gcGFzdGluZyBhIGxvdCBvZiB0ZXh0IGluIGEgbXVsdGktYnl0ZSBlbmNvZGluZywgY29udmVyc2lvbgoJICAgIGZyb20gJ3Rlcm1lbmNvZGluZycgdG8gJ2VuY29kaW5nJyBtYXkgZmFpbCBmb3Igc29tZSBjaGFyYWN0ZXJzLgoJICAgIChLdWFuZy1jaGUgV3UpClNvbHV0aW9uOiAgIFdoZW4gdGhlcmUgaXMgYW4gaW5jb21wbGV0ZSBieXRlIHNlcXVlbmNlIGF0IHRoZSBlbmQgb2YgdGhlIHJlYWQKCSAgICB0ZXh0IGtlZXAgaXQgZm9yIHRoZSBuZXh0IHRpbWUuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMsIHNyYy9vc19hbWlnYS5jLCBzcmMvb3NfbXN3aW4uYywgc3JjL3Byb3RvL21ieXRlLnBybywKCSAgICBzcmMvcHJvdG8vb3NfbXN3aW4ucHJvLCBzcmMvdWkuYwoKUGF0Y2ggNi4yLjQyOApQcm9ibGVtOiAgICBUaGUgWDExIGNsaXBib2FyZCBzdXBwb3J0cyB0aGUgVmltIHNlbGVjdGlvbiBmb3IgY2hhci9saW5lL2Jsb2NrCgkgICAgbW9kZSwgYnV0IHNpbmNlIHRoZSBlbmNvZGluZyBpcyBub3QgaW5jbHVkZWQgIGNhbid0IGNvcHkvcGFzdGUKCSAgICBiZXR3ZWVuIHR3byBWaW1zIHdpdGggYSBkaWZmZXJlbnQgJ2VuY29kaW5nJy4KU29sdXRpb246ICAgQWRkIGEgbmV3IHNlbGVjdGlvbiBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUgJ2VuY29kaW5nJy4gIFBlcmZvcm0KCSAgICBjb252ZXJzaW9uIHdoZW4gbmVjZXNzYXJ5LgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jLCBzcmMvdWkuYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuNDI5ClByb2JsZW06ICAgIFVuaXg6IGdsb2IoKSBkb2Vzbid0IHdvcmsgZm9yIGEgZGlyZWN0b3J5IHdpdGggYSBzaW5nbGUgcXVvdGUgaW4KCSAgICB0aGUgbmFtZS4gKE5henJpIFJhbWxpeSkKU29sdXRpb246ICAgV2hlbiB1c2luZyB0aGUgc2hlbGwgdG8gZXhwYW5kLCBvbmx5IHB1dCBkb3VibGUgcXVvdGVzIGFyb3VuZAoJICAgIHNwYWNlcyBhbmQgc2luZ2xlIHF1b3Rlcywgbm90IHRoZSB3aG9sZSB0aGluZy4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuNDMwClByb2JsZW06ICAgIEJPTSBhdCBzdGFydCBvZiBhIHZpbSBzY3JpcHQgZmlsZSBpcyBub3QgcmVjb2duaXplZCBhbmQgY2F1c2VzIGFuCgkgICAgZXJyb3IgbWVzc2FnZS4KU29sdXRpb246ICAgRGV0ZWN0IHRoZSBCT00gYW5kIHNraXAgb3ZlciBpdC4gIEFsc28gZml4IHRoYXQgYWZ0ZXIgdXNpbmcKCSAgICAiOnNjcmlwdGVuY29kaW5nIiB0aGUgaWNvbnYoKSBmaWxlIGRlc2NyaXB0b3Igd2FzIG5vdCBjbG9zZWQKCSAgICAobWVtb3J5IGxlYWspLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjIuNDMxClByb2JsZW06ICAgIFdoZW4gdXNpbmcgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyLCB0aGUgc2Nyb2xsaW5nIGlzIGxpbWl0ZWQgdG8KCSAgICB0aGUgbGVuZ3RoIG9mIHRoZSBjdXJzb3IgbGluZS4KU29sdXRpb246ICAgTWFrZSB0aGUgc2Nyb2xsIGxpbWl0IGRlcGVuZCBvbiB0aGUgbG9uZ2VzdCB2aXNpYmxlIGxpbmUuICBUaGUKCSAgICBjdXJzb3IgaXMgbW92ZWQgd2hlbiBuZWNlc3NhcnkuICBJbmNsdWRpbmcgdGhlICdoJyBmbGFnIGluCgkgICAgJ2d1aW9wdGlvbnMnIGRpc2FibGVzIHRoaXMuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZ3VpLnR4dCwgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9ndWkuYywKCSAgICBzcmMvbWlzYzIuYywgc3JjL29wdGlvbi5oCgpQYXRjaCA2LjIuNDMyIChhZnRlciA2LjIuNDMwIGFuZCA2LjIuNDMxKQpQcm9ibGVtOiAgICBMaW50IHdhcm5pbmdzLgpTb2x1dGlvbjogICBBZGQgdHlwZSBjYXN0cy4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYywgc3JjL2d1aS5jCgpQYXRjaCA2LjIuNDMzClByb2JsZW06ICAgIFRyYW5zbGF0aW5nICJWSVNVQUwiIGFuZCAiQkxPQ0siIHNlcGFyYXRlbHkgZG9lc24ndCBnaXZlIGEgZ29vZAoJICAgIHJlc3VsdC4gKEFsZWphbmRybyBMb3BleiBWYWxlbmNpYSkKU29sdXRpb246ICAgVXNlIGEgc3RyaW5nIGZvciBlYWNoIGNvbWJpbmF0aW9uLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4yLjQzNCAoYWZ0ZXIgNi4yLjQzMSkKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZy4gKFNhbG1hbiBIYWxpbSkKU29sdXRpb246ICAgQWRkIHR5cGUgY2FzdHMuCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjIuNDM1ClByb2JsZW06ICAgIFdoZW4gdGhlcmUgYXJlIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93cyB0aGUgbWluaW1hbCBWaW0gd2luZG93CgkgICAgaGVpZ2h0IGlzIGNvbXB1dGVkIHdyb25nLgpTb2x1dGlvbjogICBVc2UgZnJhbWVfbWluaGVpZ2h0KCkgdG8gY29ycmVjdGx5IGNvbXB1dGUgdGhlIG1pbmltYWwgaGVpZ2h0LgpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4yLjQzNgpQcm9ibGVtOiAgICBSdW5uaW5nIHRoZSB0ZXN0cyBjaGFuZ2VzIHRoZSB1c2VyJ3MgdmltaW5mbyBmaWxlLgpTb2x1dGlvbjogICBJbiB0ZXN0IDQ5IHRlbGwgdGhlIGV4dHJhIFZpbSB0byB1c2UgdGhlIHRlc3QgdmltaW5mbyBmaWxlLgpGaWxlczoJICAgIHNyYy90ZXN0ZGlyL3Rlc3Q0OS52aW0KClBhdGNoIDYuMi40MzcKUHJvYmxlbTogICAgIjpta3Nlc3Npb24iIGFsd2F5cyBwdXRzICJzZXQgbm9jb21wYXRpYmxlIiBpbiB0aGUgc2Vzc2lvbiBmaWxlLgoJICAgIFRoaXMgY2hhbmdlcyBvcHRpb24gc2V0dGluZ3MuIChSb24gQWFyb24pClNvbHV0aW9uOiAgIEFkZCBhbiAiaWYiIHRvIG9ubHkgY2hhbmdlICdjb21wYXRpYmxlJyB3aGVuIG5lZWRlZC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjQzOApQcm9ibGVtOiAgICBXaGVuIHRoZSAndicgZmxhZyBpcyBwcmVzZW50IGluICdjcG9wdGlvbnMnLCBiYWNrc3BhY2luZyBhbmQgdGhlbgoJICAgIHR5cGluZyB0ZXh0IGFnYWluOiBvbmUgY2hhcmFjdGVyIHRvbyBtdWNoIGlzIG92ZXJ0eXBlZCBiZWZvcmUKCSAgICBpbnNlcnRpbmcgaXMgZG9uZSBhZ2Fpbi4KU29sdXRpb246ICAgU2V0ICJkb2xsYXJfdmNvbCIgdG8gdGhlIHJpZ2h0IGNvbHVtbi4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjIuNDM5ClByb2JsZW06ICAgIEdUSyAyOiBDaGFuZ2luZyAnbGluZXMnIG1heSBjYXVzZSBhIG1pc21hdGNoIGJldHdlZW4gdGhlIHdpbmRvdwoJICAgIGxheW91dCBhbmQgdGhlIHNpemUgb2YgdGhlIHdpbmRvdy4KU29sdXRpb246ICAgRGlzYWJsZSB0aGUgaGFjayB3aXRoIGZvcmNlX3NoZWxsX3Jlc2l6ZV9pZGxlKCkuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGtfeDExLmMKClBhdGNoIDYuMi40NDAKUHJvYmxlbTogICAgV2hlbiAnbGF6eXJlZHJhdycgaXMgc2V0IHRoZSB3aW5kb3cgdGl0bGUgaXMgc3RpbGwgdXBkYXRlZC4KCSAgICBUaGUgc2l6ZSBvZiB0aGUgVmlzdWFsIGFyZWEgYW5kIHRoZSBydWxlciBhcmUgZGlzcGxheWVkIHRvbyBvZnRlbi4KU29sdXRpb246ICAgUG9zdHBvbmUgcmVkcmF3aW5nIHRoZSB3aW5kb3cgdGl0bGUuICBPbmx5IHNob3cgdGhlIFZpc3VhbCBhcmVhCgkgICAgc2l6ZSB3aGVuIHdhaXRpbmcgZm9yIGEgY2hhcmFjdGVyLiAgRG9uJ3QgZHJhdyB0aGUgcnVsZXIKCSAgICB1bm5lY2Vzc2FyeS4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9ub3JtYWwuYywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjIuNDQxClByb2JsZW06ICAgICI6dW5hYmJyZXZpYXRlIGZvbyAiIGRvZXNuJ3Qgd29yaywgYmVjYXVzZSBvZiB0aGUgdHJhaWxpbmcgc3BhY2UsCgkgICAgd2hpbGUgYW4gYWJicmV2aWF0aW9uIHdpdGggYSB0cmFpbGluZyBzcGFjZSBpcyBub3QgcG9zc2libGUuIChQYXVsCgkgICAgSm9sbHkpClNvbHV0aW9uOiAgIEFjY2VwdCBhIG1hdGNoIHdpdGggdGhlIGxocyBvZiBhbiBhYmJyZXZpYXRpb24gd2l0aG91dCB0aGUKCSAgICB0cmFpbGluZyBzcGFjZS4KRmlsZXM6CSAgICBzcmMvZ2V0Y2hhci5jCgpQYXRjaCA2LjIuNDQyClByb2JsZW06ICAgIENhbm5vdCBtYW5pcHVsYXRlIHRoZSBjb21tYW5kIGxpbmUgZnJvbSBhIGZ1bmN0aW9uLgpTb2x1dGlvbjogICBBZGQgZ2V0Y21kbGluZSgpLCBnZXRjbWRwb3MoKSBhbmQgc2V0Y21kcG9zKCkgZnVuY3Rpb25zIGFuZCB0aGUKCSAgICBDVFJMLVwgZSBjb21tYW5kLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2NtZGxpbmUudHh0LCBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYwoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvb3BzLmMsIHNyYy9wcm90by9leF9nZXRsbi5wcm8sCgkgICAgc3JjL3Byb3RvL29wcy5wcm8KClBhdGNoIDYuMi40NDMKUHJvYmxlbTogICAgV2l0aCAiOnNpbGVudCEgZWNob2VyciBzb21ldGhpbmciIHlvdSBkb24ndCBnZXQgdGhlIHBvc2l0aW9uIG9mCgkgICAgdGhlIGVycm9yLiAgZW1zZygpIG9ubHkgd3JpdGVzIHRoZSBtZXNzYWdlIGl0c2VsZiBhbmQgcmV0dXJucy4KU29sdXRpb246ICAgQWxzbyByZWRpcmVjdCB0aGUgcG9zaXRpb24gb2YgdGhlIGVycm9yLgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMi40NDQKUHJvYmxlbTogICAgV2hlbiBhZGRpbmcgdGhlICdjJyBmbGFnIHRvIGEgIjpzdWJzdGl0dXRlIiBjb21tYW5kIGl0IG1heSByZXBsYWNlCgkgICAgbW9yZSB0aW1lcyB0aGFuIHdpdGhvdXQgdGhlICdjJyBmbGFnLiAgSGFwcGVucyBmb3IgYSAgbWF0Y2ggdGhhdAoJICAgIHN0YXJ0cyB3aXRoICJcemUiIChNYXJjZWwgU3ZpdGFsc2spIGFuZCB3aGVuIHVzaW5nICJcQDw9IiAoS2xhdXMKCSAgICBCb3NhdSkuClNvbHV0aW9uOiAgIENvcnJlY3QgInByZXZfbWF0Y2hjb2wiIHdoZW4gcmVwbGFjaW5nIHRoZSBsaW5lLiAgRG9uJ3QgcmVwbGFjZQoJICAgIHRoZSBsaW5lIHdoZW4gdGhlIHBhdHRlcm4gdXNlcyBsb29rLWJlaGluZCBtYXRjaGluZy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jLCBzcmMvcHJvdG8vcmVnZXhwLnBybywgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjIuNDQ1ClByb2JsZW06ICAgIENvcHlpbmcgdmltdHV0b3IgdG8gL3RtcC9zb21ldGhpbmcgaXMgbm90IHNlY3VyZSwgYSBzeW1saW5rIG1heQoJICAgIGNhdXNlIHRyb3VibGUuClNvbHV0aW9uOiAgIENyZWF0ZSBhIGRpcmVjdG9yeSBhbmQgY3JlYXRlIHRoZSBmaWxlIGluIGl0LiAgVXNlICJ1bWFzayIgdG8KCSAgICBjcmVhdGUgdGhlIGRpcmVjdG9yeSB3aXRoIG1vZGUgNzAwLiAgKFN0ZWZhbiBOb3JkaGF1c2VuKQpGaWxlczoJICAgIHNyYy92aW10dXRvcgoKUGF0Y2ggNi4yLjQ0NiAoYWZ0ZXIgNi4yLjQwNCkKUHJvYmxlbTogICAgVXNpbmcgbGlicmFyeSBmdW5jdGlvbnMgd2N3aWR0aCgpIGFuZCBpc3dwcmludCgpIHJlc3VsdHMgaW4KCSAgICBkaXNwbGF5IHByb2JsZW1zIGZvciBIZWJyZXcgY2hhcmFjdGVycy4gKFJvbiBBYXJvbikKU29sdXRpb246ICAgRGlzYWJsZSB0aGUgY29kZSB0byB1c2UgdGhlIGxpYnJhcnkgZnVuY3Rpb25zLCB1c2Ugb3VyIG93bi4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjQ0NyAoYWZ0ZXIgNi4yLjQ0MCkKUHJvYmxlbTogICAgTm93IHRoYXQgdGhlIHRpdGxlIGlzIG9ubHkgdXBkYXRlZCB3aGVuIHJlZHJhd2luZywgaXQgaXMgbm8gbG9uZ2VyCgkgICAgcG9zc2libGUgdG8gc2hvdyBpdCB3aGlsZSBleGVjdXRpbmcgYSBmdW5jdGlvbi4gKE1hZG9rYSBNYWNoaXRhbmkpClNvbHV0aW9uOiAgIE1ha2UgIjpyZWRyYXciIGFsc28gdXBkYXRlIHRoZSB0aXRsZS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjQ0OCAoYWZ0ZXIgNi4yLjQyNykKUHJvYmxlbTogICAgTWFjOiBjb252ZXJzaW9uIGRvbmUgd2hlbiAndGVybWVuY29kaW5nJyBkaWZmZXJzIGZyb20gJ2VuY29kaW5nJwoJICAgIGZhaWxzIHdoZW4gcGFzdGluZyBhIGxvbmdlciB0ZXh0LgpTb2x1dGlvbjogICBDaGVjayBmb3IgYW4gaW5jb21wbGV0ZSBzZXF1ZW5jZSBhdCB0aGUgZW5kIG9mIHRoZSBjaHVuayB0byBiZQoJICAgIGNvbnZlcnRlZC4gKEVja2VoYXJkIEJlcm5zKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjIuNDQ5IChhZnRlciA2LjIuNDMxKQpQcm9ibGVtOiAgICBHZXQgZXJyb3IgbWVzc2FnZXMgd2hlbiBzd2l0Y2hpbmcgZmlsZXMuClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIHZhbGlkIGxpbmUgbnVtYmVyIHdoZW4gY2FsY3VsYXRpbmcgdGhlIHdpZHRoIG9mIHRoZQoJICAgIGhvcml6b250YWwgc2Nyb2xsYmFyLiAoSGVsbXV0IFN0aWVnbGVyKQpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4yLjQ1MApQcm9ibGVtOiAgICAiICAjaW5jbHVkZSIgYW5kICIgICNkZWZpbmUiIGFyZSBub3QgcmVjb2duaXplZCB3aXRoIHRoZSBkZWZhdWx0CgkgICAgb3B0aW9uIHZhbHVlcyBmb3IgJ2luY2x1ZGUnIGFuZCAnZGVmaW5lZCcuIChSRyBLaXJhbikKU29sdXRpb246ICAgQWRqdXN0IHRoZSBkZWZhdWx0IHZhbHVlcyB0byBhbGxvdyB3aGl0ZSBzcGFjZSBiZWZvcmUgdGhlICMuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjQ1MQpQcm9ibGVtOiAgICBHVEs6IHdoZW4gdXNpbmcgWElNIHRoZXJlIGFyZSB2YXJpb3VzIHByb2JsZW1zLCBpbmNsdWRpbmcgc2V0dGluZwoJICAgICdtb2RpZmllZCcgYW5kIGJyZWFraW5nIHVuZG8gYXQgdGhlIHdyb25nIG1vbWVudC4KU29sdXRpb246ICAgQWRkICJ4aW1fY2hhbmdlZF93aGlsZV9wcmVlZGl0aW5nIiwgInByZWVkaXRfZW5kX2NvbCIgYW5kCgkgICAgaW1faXNfcHJlZWRpdGluZygpLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvZ3VpX2d0ay5jLCBzcmMvZ3VpX2d0a194MTEuYywKCSAgICBzcmMvbWJ5dGUuYywgc3JjL21pc2MxLmMsIHNyYy9wcm90by9tYnl0ZS5wcm8sIHNyYy9zY3JlZW4uYywKCSAgICBzcmMvdW5kby5jCgpQYXRjaCA2LjIuNDUyClByb2JsZW06ICAgIEluIGRpZmYgbW9kZSwgd2hlbiBEaWZmQWRkIGFuZCBEaWZmVGV4dCBoaWdobGlnaHQgc2V0dGluZ3MgYXJlCgkgICAgZXF1YWwsIGFuIGFkZGVkIGxpbmUgaXMgaGlnaGxpZ2h0ZWQgd2l0aCBEaWZmQ2hhbmdlLiAoVG9tIFNjaHVtbSkKU29sdXRpb246ICAgUmVtZW1iZXIgdGhlIGRpZmYgaGlnaGxpZ2h0IHR5cGUgaW5zdGVhZCBvZiB0aGUgYXR0cmlidXRlcy4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMi40NTMKUHJvYmxlbTogICAgIjpzL2Zvb1x8XG5iYXIveC9nIiBkb2VzIG5vdCByZXBsYWNlIHR3byB0aW1lcyBpbiAiZm9vXG5iYXIiLgoJICAgIChQYXZlbCBQYXB1c2hldikKU29sdXRpb246ICAgV2hlbiB0aGUgcGF0dGVybiBjYW4gbWF0Y2ggYSBsaW5lIGJyZWFrIGFsc28gdHJ5IG1hdGNoaW5nIGF0IHRoZQoJICAgIE5VTCBhdCB0aGUgZW5kIG9mIGEgbGluZS4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jLCBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMi40NTQKUHJvYmxlbTogICAgIjpsZXQgYjpjaGFuZ2VkdGljayIgZG9lc24ndCB3b3JrLiAoQWxhbiBTY2htaXR0KSAgIjpsZXQKCSAgICBiOmNoYW5nZWR0aWNrID0gOTkiIGRvZXMgbm90IGdpdmUgYW4gZXJyb3IgbWVzc2FnZS4KU29sdXRpb246ICAgQWRkIGNvZGUgdG8gcmVjb2duaXplICI6bGV0IGI6Y2hhbmdlZHRpY2siLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi40NTUgKGFmdGVyIDYuMi4yOTcpClByb2JsZW06ICAgIEluIFB5dGhvbiBjb21tYW5kcyB0aGUgY3VycmVudCBsb2NhbGUgY2hhbmdlcyBob3cgY2VydGFpbiBQeXRob24KCSAgICBmdW5jdGlvbnMgd29yay4gKEV1Z2VuZSBNLiBNaW5rb3Zza2lpKQpTb2x1dGlvbjogICBTZXQgdGhlIExDX05VTUVSSUMgbG9jYWxlIHRvICJDIiB3aGlsZSBleGVjdXRpbmcgYSBQeXRob24gY29tbWFuZC4KRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMi40NTYgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogRWRpdGluZyBhIGZpbGUgYnkgaXRzIFVuaWNvZGUgbmFtZSAoZHJvcHBpbmcgaXQgb24gVmltIG9yCgkgICAgdXNpbmcgdGhlIGZpbGUgc2VsZWN0aW9uIGRpYWxvZykgZG9lc24ndCB3b3JrLiAoWWFrb3YgTGVybmVyLCBBbGV4CgkgICAgSmFrdXNoZXYpClNvbHV0aW9uOiAgIFVzZSB3aWRlIGNoYXJhY3RlciBmdW5jdGlvbnMgd2hlbiBmaWxlIG5hbWVzIGFyZSBpbnZvbHZlZCBhbmQKCSAgICBjb252ZXJ0IGZyb20vdG8gJ2VuY29kaW5nJyB3aGVyZSBuZWVkZWQuCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYywgc3JjL21hY3Jvcy5oLCBzcmMvbWVtZmlsZS5jLCBzcmMvbWVtbGluZS5jLAoJICAgIHNyYy9vc19tc3dpbi5jLCBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjQ1NyAoYWZ0ZXIgNi4yLjI0NCkKUHJvYmxlbTogICAgV2hlbiAnZW5jb2RpbmcnIGlzICJ1dGYtOCIgYW5kIHdyaXRpbmcgdGV4dCB3aXRoIGNoYXJzIGFib3ZlIDB4ODAKCSAgICBpbiBsYXRpbjEsIGNvbnZlcnNpb24gaXMgd3JvbmcgZXZlcnkgODIwMCBieXRlcy4gKE95dmluZCBIb2xtKQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSB1dGZfcHRyMmxlbl9jaGVja19sZW4oKSBmdW5jdGlvbiBhbmQgZml4IHRoZSBwcm9ibGVtCgkgICAgb2YgZGlzcGxheWluZyAweGY3IGluIHV0ZmNfcHRyMmxlbl9jaGVja19sZW4oKS4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjQ1OApQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0ICIkIiBkb2Vzbid0IG1vdmUgdG8gdGhlIGVuZCBvZiBhbgoJICAgIHVucHJpbnRhYmxlIGNoYXJhY3RlciwgY2F1c2luZyAieSQiIG5vdCB0byBpbmNsdWRlIHRoYXQgY2hhcmFjdGVyLgoJICAgIChGcmVkIE1hKQpTb2x1dGlvbjogICBTZXQgImNvbGFkZCIgdG8gbW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBlbmQgb2YgdGhlIGNoYXJhY3Rlci4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4yLjQ1OSAoYWZ0ZXIgNi4yLjQ1NCkKUHJvYmxlbTogICAgVmFyaWFibGUgImIiIGNhbm5vdCBiZSB3cml0dGVuLiAoU2FsbWFuIEhhbGltKQpTb2x1dGlvbjogICBDb21wYXJlIHN0cmluZ3MgcHJvcGVybHkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yLjQ2MCAoZXh0cmEsIGFmdGVyIDYuMi40NTYpClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmdzIGZvciBtaXNzaW5nIHByb3RvdHlwZXMuClNvbHV0aW9uOiAgIEluY2x1ZGUgdGhlIG1pc3NpbmcgcHJvdG90eXBlcy4KRmlsZXM6CSAgICBzcmMvcHJvdG8vb3Nfd2luMzIucHJvCgpQYXRjaCA2LjIuNDYxClByb2JsZW06ICAgIEFmdGVyIHVzaW5nIGEgc2VhcmNoIGNvbW1hbmQgIngiIHN0YXJ0cyBwdXR0aW5nIHNpbmdsZSBjaGFyYWN0ZXJzCgkgICAgaW4gdGhlIG51bWJlcmVkIHJlZ2lzdGVycy4KU29sdXRpb246ICAgUmVzZXQgInVzZV9yZWdfb25lIiBhdCB0aGUgcmlnaHQgbW9tZW50LgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjQ2MgpQcm9ibGVtOiAgICBGaW5kaW5nIGEgbWF0Y2hpbmcgcGFyZW50aGVzaXMgZG9lcyBub3QgY29ycmVjdGx5IGhhbmRsZSBhCgkgICAgYmFja3NsYXNoIGluIGEgdHJhaWxpbmcgYnl0ZS4KU29sdXRpb246ICAgSGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBjb3JyZWN0bHkuIChUYXJvIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjIuNDYzIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IEFuIE5URlMgZmlsZSBzeXN0ZW0gbWF5IGNvbnRhaW4gZmlsZXMgd2l0aCBleHRyYSBpbmZvCgkgICAgc3RyZWFtcy4gIFRoZSBjdXJyZW50IG1ldGhvZCB0byBjb3B5IHRoZW0gY3JlYXRlcyBvbmUgYW5kIHRoZW4KCSAgICBkZWxldGVzIGl0IGFnYWluLiAgKFBldGVyIFRvZW5uaWVzKSAgQWxzbywgb25seSB0aHJlZSBzdHJlYW1zIHdpdGgKCSAgICBoYXJkIGNvZGVkIG5hbWVzIGFyZSBjb3BpZWQuClNvbHV0aW9uOiAgIFVzZSBCYWNrdXBSZWFkKCkgdG8gY2hlY2sgd2hpY2ggaW5mbyBzdHJlYW1zIHRoZSBvcmlnaW5hbCBmaWxlCgkgICAgY29udGFpbnMgYW5kIG9ubHkgY29weSB0aGVzZSBzdHJlYW1zLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjIuNDY0IChleHRyYSwgYWZ0ZXIgNi4yLjQyNykKUHJvYmxlbTogICAgQW1pZ2E6IENvbXBpbGF0aW9uIGVycm9yIHdpdGggZ2NjLiAoQWxpIEFrY2FhZ2FjKQpTb2x1dGlvbjogICBNb3ZlIHRoZSAjaWZkZWYgb3V0c2lkZSBvZiBSZWFkKCkuCkZpbGVzOgkgICAgc3JjL29zX2FtaWdhLmMKClBhdGNoIDYuMi40NjUKUHJvYmxlbTogICAgV2hlbiByZXNpemluZyB0aGUgR1VJIHdpbmRvdyB0aGUgd2luZG93IG1hbmFnZXIgc29tZXRpbWVzIG1vdmVzIGl0CgkgICAgbGVmdCBvZiBvciBhYm92ZSB0aGUgc2NyZWVuLiAoTWljaGFlbCBNY0NhcnR5KQpTb2x1dGlvbjogICBDaGVjayB0aGUgd2luZG93IHBvc2l0aW9uIGFmdGVyIHJlc2l6aW5nIGl0IGFuZCBtb3ZlIGl0IG9udG8gdGhlCgkgICAgc2NyZWVuIHdoZW4gaXQgaXNuJ3QuCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjIuNDY2IChleHRyYSwgYWZ0ZXIgNi4yLjQ1NikKUHJvYmxlbTogICAgV2luMzI6IENvbXBpbGluZyB3aXRoIEJvcmxhbmQgQyBmYWlscywgYW5kIGFuIHVuL3NpZ25lZCB3YXJuaW5nLgpTb2x1dGlvbjogICBSZWRlZmluZSB3Y3NpY21wKCkgdG8gd2NzY21waSgpIGFuZCBhZGQgdHlwZSBjYXN0cy4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjIuNDY3IChleHRyYSwgYWZ0ZXIgNi4yLjQ2MykKUHJvYmxlbTogICAgV2luMzI6IGNhbid0IGNvbXBpbGUgd2l0aG91dCBtdWx0aS1ieXRlIGZlYXR1cmUuIChBaml0IFRoYWtrYXIpClNvbHV0aW9uOiAgIEFkZCAjaWZkZWZzIGFyb3VuZCB0aGUgaW5mbyBzdHJlYW0gY29kZS4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjQ2OApQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5ncyBmb3Igc2hhZG93ZWQgdmFyaWFibGVzLiAoTWF0dGhpYXMgTW9ocikKU29sdXRpb246ICAgRGVsZXRlIHN1cGVyZmx1b3VzIHZhcmlhYmxlcyBhbmQgcmVuYW1lIG90aGVycy4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2V4X2V2YWwuYywgc3JjL2lmX2NzY29wZS5jLAoJICAgIHNyYy9mb2xkLmMsIHNyYy9vcHRpb24uYywgc3JjL29zX3VuaXguYywgc3JjL3F1aWNrZml4LmMsCgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjIuNDY5IChleHRyYSwgYWZ0ZXIgNi4yLjQ1NikKUHJvYmxlbTogICAgV2luMzI6IENhbid0IGNyZWF0ZSBzd2FwIGZpbGUgd2hlbiAnZW5jb2RpbmcnIGRpZmZlcnMgZnJvbSB0aGUKCSAgICBhY3RpdmUgY29kZSBwYWdlLiAoS3JpdG9uIEt5cmltaXMpClNvbHV0aW9uOiAgIEluIGVuY190b191Y3MyKCkgdGVybWluYXRlIHRoZSBjb252ZXJ0ZWQgc3RyaW5nIHdpdGggYSBOVUwKRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4yLjQ3MApQcm9ibGVtOiAgICBUaGUgbmFtZSByZXR1cm5lZCBieSB0ZW1wbmFtZSgpIG1heSBiZSBlcXVhbCB0byB0aGUgZmlsZSB1c2VkIGZvcgoJICAgIHNoZWxsIG91dHB1dCB3aGVuIGlnbm9yaW5nIGNhc2UuClNvbHV0aW9uOiAgIFNraXAgJ08nIGFuZCAnSScgaW4gdGVtcG5hbWUoKS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuNDcxClByb2JsZW06ICAgICItTC91c3IvbGliIiBpcyB1c2VkIGluIHRoZSBsaW5rIGNvbW1hbmQsIGV2ZW4gdGhvdWdoIGl0J3MKCSAgICBzdXBwb3NlZCB0byBiZSBmaWx0ZXJlZCBvdXQuICItbHciIGFuZCAiLWxkbCIgYXJlIG5vdAoJICAgIGF1dG9tYXRpY2FsbHkgYWRkZWQgd2hlbiBuZWVkZWQgZm9yICItbFhtdSIuIChBbnRvbmlvIENvbG9tYm8pClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIHNwYWNlIGFmdGVyIHRoZSBhcmd1bWVudCBpbnN0ZWFkIG9mIGJlZm9yZS4gIEFsc28KCSAgICByZW1vdmUgIi1SL3Vzci9saWIiIGlmIGl0J3MgdGhlcmUuICBDaGVjayBmb3IgIi1sdyIgYW5kICItbGRsIgoJICAgIGJlZm9yZSB0cnlpbmcgIi1sWG11Ii4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sIHNyYy9saW5rLnNoCgpQYXRjaCA2LjIuNDcyClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSBGaWxlQ2hhbmdlZFNoZWxsIGF1dG9jb21tYW5kIHRoYXQgY2hhbmdlcyB0aGUgY3VycmVudAoJICAgIGJ1ZmZlciwgYSBidWZmZXIgZXhpc3RzIHRoYXQgY2FuJ3QgYmUgd2lwZWQgb3V0LgoJICAgIEFsc28sIFZpbSBzb21ldGltZXMgY3Jhc2hlcyB3aGVuIGV4ZWN1dGluZyBhbiBleHRlcm5hbCBjb21tYW5kCgkgICAgdGhhdCBjaGFuZ2VzIHRoZSBidWZmZXIgYW5kIGEgRmlsZUNoYW5nZWRTaGVsbCBhdXRvY29tbWFuZCBpcwoJICAgIHVzZWQuICAoSGFyaSBLcmlzaG5hIERhcmEpCgkgICAgVXNlcnMgYXJlIGNvbmZ1c2VkIGJ5IHRoZSB3YXJuaW5nIGZvciBhIGZpbGUgYmVpbmcgY2hhbmdlZCBvdXRzaWRlCgkgICAgb2YgVmltLgpTb2x1dGlvbjogICBBdm9pZCB0aGF0IHRoZSB3aW5kb3cgY291bnRlciBmb3IgYSBidWZmZXIgaXMgaW5jcmVtZW50ZWQgdHdpY2UuCgkgICAgQXZvaWQgdGhhdCBidWZfY2hlY2tfdGltZXN0YW1wKCkgaXMgdXNlZCByZWN1cnNpdmVseS4KCSAgICBBZGQgYSBoaW50IHRvIGxvb2sgaW4gdGhlIGhlbHAgZm9yIG1vcmUgaW5mby4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jLCBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi40NzMKUHJvYmxlbTogICAgVXNpbmcgQ1RSTC1dIGluIGEgaGVscCBidWZmZXIgd2l0aG91dCBhIG5hbWUgY2F1c2VzIGEgY3Jhc2guClNvbHV0aW9uOiAgIENoZWNrIGZvciBuYW1lIHRvIGJlIHByZXNlbnQgYmVmb3JlIHVzaW5nIGl0LiAoVGFybyBNdXJhb2thKQpGaWxlczoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjQ3NCAoZXh0cmEsIGFmdGVyIDYuMi40NTYpClByb2JsZW06ICAgIFdoZW4gVmltIGlzIHN0YXJ0aW5nIHVwIGNvbnZlcnNpb24gaXMgZG9uZSB1bm5lY2Vzc2FyaWx5LiAgRmFpbHVyZQoJICAgIHRvIGZpbmQgdGhlIHJ1bnRpbWUgZmlsZXMgb24gV2luZG93cyA5OC4gKFJhbmRhbGwgVy4gTW9ycmlzKQpTb2x1dGlvbjogICBJbml0IGVuY19jb2RlcGFnZSBuZWdhdGl2ZSwgb25seSB1c2UgaXQgd2hlbiBub3QgbmVnYXRpdmUuCgkgICAgRG9uJ3QgdXNlIEdldEZpbGVBdHRyaWJ1dGVzVygpIG9uIFdpbmRvd3MgOTggb3IgZWFybGllci4KRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oLCBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jLCBzcmMvb3NfbXN3aW4uYywKCSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjQ3NQpQcm9ibGVtOiAgICBDb21tYW5kcyBhZnRlciAicGVybCA8PEVPRiIgYXJlIHBhcnNlZCBhcyBWaW0gY29tbWFuZHMgd2hlbiB0aGV5CgkgICAgYXJlIG5vdCBleGVjdXRlZC4KU29sdXRpb246ICAgUHJvcGVybHkgc2tpcCBvdmVyIHRoZSBwZXJsIGNvbW1hbmRzLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL2lmX3BlcmwueHMsIHNyYy9pZl9weXRob24uYywKCSAgICBzcmMvaWZfcnVieS5jLCBzcmMvaWZfdGNsLmMsIHNyYy9taXNjMi5jCgpQYXRjaCA2LjIuNDc2ClByb2JsZW06ICAgIFdoZW4gcmVsb2FkaW5nIGEgaGlkZGVuIGJ1ZmZlciBjaGFuZ2VkIG91dHNpZGUgb2YgVmltIGFuZCB0aGUKCSAgICBjdXJyZW50IGJ1ZmZlciBpcyByZWFkLW9ubHksIHRoZSByZWxvYWRlZCBidWZmZXIgYmVjb21lcwoJICAgIHJlYWQtb25seS4gIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgU2F2ZSB0aGUgJ3JlYWRvbmx5JyBmbGFnIG9mIHRoZSByZWxvYWRlZCBidWZmZXIgaW5zdGVhZCBvZiB0aGUKCSAgICBjdXJyZW50IGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi40NzcKUHJvYmxlbTogICAgVXNpbmcgcmVtb3RlX3NlbmQodjpzZXJ2ZXJuYW1lLCAiXDxDLVY+IikgY2F1c2VzIFZpbSB0byBoYW5nLgoJICAgIChZYWtvdiBMZXJuZXIpClNvbHV0aW9uOiAgIFdoZW4gdGhlIHJlc3VsdGluZyBzdHJpbmcgaXMgZW1wdHkgZG9uJ3Qgc2V0IHJlY2VpdmVkX2Zyb21fY2xpZW50LgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMi40NzgKUHJvYmxlbTogICAgV2luMzI6ICItLXJlbW90ZSBmaWxlIiBmYWlscyBjaGFuZ2luZyBkaXJlY3RvcnkgaWYgdGhlIGN1cnJlbnQKCSAgICBkaXJlY3RvcnkgbmFtZSBzdGFydHMgd2l0aCBhIHNpbmdsZSBxdW90ZS4gIChJZXN0eW4gV2FsdGVycykKU29sdXRpb246ICAgQWRkIGEgYmFja3NsYXNoIHdoZXJlIGl0IHdpbGwgYmUgcmVtb3ZlZCBsYXRlci4KRmlsZXM6CSAgICBzcmMvbWFpbi5jLCBzcmMvbWlzYzIuYywgc3JjL3Byb3RvL21pc2MyLnBybwoKUGF0Y2ggNi4yLjQ3OQpQcm9ibGVtOiAgICBUaGUgZXJyb3IgbWVzc2FnZSBmb3IgZXJyb3JzIGR1cmluZyByZWNvdmVyeSBnb2VzIHVubm90aWNlZC4KU29sdXRpb246ICAgQXZvaWQgdGhhdCB0aGUgaGl0LWVudGVyIHByb21wdCBvdmVyd3JpdGVzIHRoZSBtZXNzYWdlLiAgQWRkIGEgZmV3CgkgICAgbGluZXMgdG8gbWFrZSB0aGUgZXJyb3Igc3RhbmQgb3V0LgpGaWxlczoJICAgIHNyYy9tYWluLmMsIHNyYy9tZXNzYWdlLmMsIHNyYy9tZW1saW5lLmMKClBhdGNoIDYuMi40ODAKUHJvYmxlbTogICAgTmV0QmVhbnM6IFVzaW5nIG5lZ2F0aXZlIGluZGV4IGluIGFycmF5LiAgYmFja3NsYXNoIGF0IGVuZCBvZgoJICAgIG1lc3NhZ2UgbWF5IGNhdXNlIFZpbSB0byBjcmFzaC4gKFhhdmllciBkZSBHYXllKQpTb2x1dGlvbjogICBJbml0aWFsaXplIGJ1Zl9saXN0X3VzZWQgdG8gemVyby4gQ2hlY2sgZm9yIHRyYWlsaW5nIGJhY2tzbGFzaC4KRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4yLjQ4MQpQcm9ibGVtOiAgICBXaGVuIHdyaXRpbmcgYSBmaWxlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBzcGVjaWZ5IHRoYXQgaGFyZCBhbmQvb3IKCSAgICBzeW1saW5rcyBhcmUgdG8gYmUgYnJva2VuIGluc3RlYWQgb2YgcHJlc2VydmVkLgpTb2x1dGlvbjogICBBZGQgdGhlICJicmVha3N5bWxpbmsiIGFuZCAiYnJlYWtoYXJkbGluayIgdmFsdWVzIHRvICdiYWNrdXBjb3B5Jy4KCSAgICAoU2ltb24gRWtzdHJhbmQpCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9maWxlaW8uYywgc3JjL29wdGlvbi5jLCBzcmMvb3B0aW9uLmgKClBhdGNoIDYuMi40ODIKUHJvYmxlbTogICAgUmVwZWF0aW5nIGluc2VydCBvZiBDVFJMLUsgMSBTIGRvZXNuJ3Qgd29yay4gIFRoZSBzdXBlcnNjcmlwdCAxIGlzCgkgICAgY29uc2lkZXJlZCB0byBiZSBhIGRpZ2l0LiAoSnVlcmdlbiBLcmFlbWVyKQpTb2x1dGlvbjogICBJbiB2aW1faXNkaWdpdCgpIG9ubHkgYWNjZXB0ICcwJyB0byAnOScuICBVc2UgVklNX0lTRElHSVQoKSBmb3IKCSAgICBzcGVlZCB3aGVyZSBwb3NzaWJsZS4gIEFsc28gYWRkIHZpbV9pc3hkaWdpdCgpLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2NoYXJzZXQuYywgc3JjL2RpZmYuYywgc3JjL2RpZ3JhcGguYywKCSAgICBzcmMvZWRpdC5jLCBzcmMvZXZhbC5jLCwgc3JjL2V4X2NtZHMuYywgc3JjL2V4X2NtZHMyLmMsCgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9ldmFsLmMsIHNyYy9leF9nZXRsbi5jLAoJICAgIHNyYy9pZl94Y21kc3J2LmMsIHNyYy9mYXJzaS5jLCBzcmMvZmlsZWlvLmMsIHNyYy9mb2xkLmMsCgkgICAgc3JjL2dldGNoYXIuYywgc3JjL2d1aS5jLCBzcmMvaWZfY3Njb3BlLmMsIHNyYy9tYWNyb3MuaCwKCSAgICBzcmMvbWFpbi5jLCBzcmMvbWFyay5jLCBzcmMvbWJ5dGUuYywgc3JjL21lbnUuYywgc3JjL21pc2MxLmMsCgkgICAgc3JjL21pc2MyLmMsIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jLCBzcmMvb3B0aW9uLmMsCgkgICAgc3JjL3Byb3RvL2NoYXJzZXQucHJvLCBzcmMvcmVnZXhwLmMsIHNyYy9zY3JlZW4uYywgc3JjL3NlYXJjaC5jLAoJICAgIHNyYy9zeW50YXguYywgc3JjL3RhZy5jLCBzcmMvdGVybS5jLCBzcmMvdGVybWxpYi5jCgpQYXRjaCA2LjIuNDgzIChleHRyYSwgYWZ0ZXIgNi4yLjQ4MikKUHJvYmxlbTogICAgU2VlIDYuMi40ODIuClNvbHV0aW9uOiAgIEV4dHJhIHBhcnQgb2YgcGF0Y2ggNi4yLjQ4Mi4KRmlsZXM6CSAgICBzcmMvZ3VpX3Bob3Rvbi5jLCBzcmMvZ3VpX3c0OC5jLCBzcmMvb3NfbXNkb3MuYywgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMi40ODQKUHJvYmxlbTogICAgTVMtV2luZG93czogV2l0aCB0aGUgaW5jbHVkZWQgZGlmZi5leGUsIGRpZmZlcmVuY2VzIGFmdGVyIGEgQ1RSTC1aCgkgICAgYXJlIG5vdCByZWNvZ25pemVkLiAgKFBldGVyIEtlcmVzenRlcykKU29sdXRpb246ICAgV3JpdGUgdGhlIGZpbGVzIHdpdGggdW5peCBmaWxlZm9ybWF0IGFuZCBpbnZva2UgZGlmZiB3aXRoIC0tYmluYXJ5CgkgICAgaWYgcG9zc2libGUuCkZpbGVzOgkgICAgc3JjL2RpZmYuYwoKUGF0Y2ggNi4yLjQ4NQpQcm9ibGVtOiAgICBBIEJ1ZldyaXRlQ21kIGF1dG9jb21tYW5kIGNhbm5vdCBrbm93IGlmICIhIiB3YXMgdXNlZCBvciBub3QuCgkgICAgKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBBZGQgdGhlIHY6Y21kYmFuZyB2YXJpYWJsZS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYywgc3JjL3Byb3RvL2V2YWwucHJvLAoJICAgIHNyYy9maWxlaW8uYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuNDg2ICg2LjIuNDgyKQpQcm9ibGVtOiAgICBEaWZmIGZvciBldmFsLmMgaXMgbWlzc2luZy4KU29sdXRpb246ICAgQWRkaXRpb24gdG8gcGF0Y2ggNi4yLjQ4Mi4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuNDg3IChleHRyYSwgYWZ0ZXIgNi4yLjQ1NikKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZ3MgZm9yIHdyb25nIHByb3RvdHlwZS4gKEFsZWphbmRybyBMb3BleiBWYWxlbmNpYSkKU29sdXRpb246ICAgRGVsZXRlIHRoZSBwcm90b3R5cGUgZm9yIEhhbmRsZV9XTV9Ob3RpZnkoKS4KRmlsZXM6CSAgICBzcmMvcHJvdG8vZ3VpX3czMi5wcm8KClBhdGNoIDYuMi40ODgKUHJvYmxlbTogICAgTWlzc2luZyAiKSIgaW4gKi5jaCBmaWxldHlwZSBkZXRlY3Rpb24uClNvbHV0aW9uOiAgIEFkZCB0aGUgIikiLiAgKENpYXJhbiBNY0NyZWVzaCkKRmlsZXM6CSAgICBydW50aW1lL2ZpbGV0eXBlLnZpbQoKUGF0Y2ggNi4yLjQ4OQpQcm9ibGVtOiAgICBXaGVuIGFjY2lkZW50YWxseSBvcGVuaW5nIGEgc2Vzc2lvbiBpbiBWaW0gd2hpY2ggaGFzIGFscmVhZHkgYmVlbgoJICAgIG9wZW5lZCBpbiBhbm90aGVyIFZpbSB0aGVyZSBpcyBhIGxvbmcgcm93IG9mIEFUVEVOVElPTiBwcm9tcHRzLgoJICAgIE5lZWQgdG8gcXVpdCBlYWNoIG9mIHRoZW0gdG8gZ2V0IG91dC4gKFJvYmVydCBXZWJiKQpTb2x1dGlvbjogICBBZGQgdGhlICJBYm9ydCIgYWx0ZXJuYXRpdmUgdG8gdGhlIGRpYWxvZy4KRmlsZXM6CSAgICBzcmMvbWVtbGluZS5jCgpQYXRjaCA2LjIuNDkwClByb2JsZW06ICAgIFdpdGggJ3BhcmFncmFwaCcgaXQgaXMgbm90IHBvc3NpYmxlIHRvIHVzZSBhIHNpbmdsZSBkb3QgYXMgYQoJICAgIHBhcmFncmFwaCBib3VuZGFyeS4gIChEb3JhaSBTaXRhcmFtKQpTb2x1dGlvbjogICBBbGxvdyB1c2luZyAiICAiICh0d28gc3BhY2VzKSBpbiAncGFyYWdyYXBoJyB0byBtYXRjaCAiLiQiIG9yCgkgICAgIi4gJCIKRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMi40OTEKUHJvYmxlbTogICAgRGVjcmVtZW50aW5nIGEgcG9zaXRpb24gZG9lc24ndCB0YWtlIGNhcmUgb2YgbXVsdGktYnl0ZSBjaGFycy4KU29sdXRpb246ICAgQWRqdXN0IHRoZSBjb2x1bW4gZm9yIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4gIFJlbW92ZSBtYl9kZWMoKS4KCSAgICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jLCBzcmMvbWlzYzIuYywgc3JjL3Byb3RvL21ieXRlLnBybwoKUGF0Y2ggNi4yLjQ5MgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICI6cmVkcmF3IiB3aGlsZSB0aGVyZSBpcyBhIG1lc3NhZ2UsIHRoZSBuZXh0ICI6ZWNobyIKCSAgICBzdGlsbCBjYXVzZXMgdGV4dCB0byBzY3JvbGwuIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIFJlc2V0IG1zZ19kaWRvdXQgYW5kIG1zZ19jb2wsIHNvIHRoYXQgYWZ0ZXIgIjpyZWRyYXciIHRoZSBuZXh0CgkgICAgbWVzc2FnZSBvdmVyd3JpdGVzIGFuIGV4aXN0aW5nIG9uZS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjQ5MwpQcm9ibGVtOiAgICAiQHgiIGRvZXNuJ3Qgd29yayB3aGVuICdpbnNlcnRtb2RlJyBpcyBzZXQuIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIFB1dCAicmVzdGFydF9lZGl0IiBpbiB0aGUgdHlwZWFoZWFkIGJ1ZmZlciwgc28gdGhhdCBpdCdzIHVzZWQKCSAgICBhZnRlciBleGVjdXRpbmcgdGhlIHJlZ2lzdGVyIGNvbnRlbnRzLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4yLjQ5NApQcm9ibGVtOiAgICBVc2luZyBkaWZmIG1vZGUgd2l0aCB0d28gd2luZG93cywgd2hlbiBtb3ZpbmcgaG9yaXpvbnRhbGx5IGluCgkgICAgaW5zZXJ0ZWQgbGluZXMsIGEgZm9sZCBpbiB0aGUgb3RoZXIgd2luZG93IG1heSBvcGVuLgpTb2x1dGlvbjogICBDb21wdXRlIHRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3RoZXIgd2luZG93IGNvcnJlY3RseS4KRmlsZXM6CSAgICBzcmMvZGlmZi5jCgpQYXRjaCA2LjIuNDk1IChleHRyYSwgYWZ0ZXIgNi4yLjQ1NikKUHJvYmxlbTogICAgV2luMzI6IFRoZSBmaWxlIGRpYWxvZyBkb2Vzbid0IHdvcmsgb24gV2luZG93cyA5NS4KU29sdXRpb246ICAgUHV0IHRoZSB3aWRlIGNvZGUgb2YgZ3VpX21jaF9icm93c2UoKSBpbiBndWlfbWNoX2Jyb3dzZVcoKSBhbmQgdXNlCgkgICAgaXQgb25seSBvbiBXaW5kb3dzIE5ULzIwMDAvWFAuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4yLjQ5NgpQcm9ibGVtOiAgICBGcmVlQlNEIDQueDogV2hlbiBjb21waWxlZCB3aXRoIHRoZSBwdGhyZWFkIGxpYnJhcnkgKFB5dGhvbikgYQoJICAgIGNvbXBsaWNhdGVkIHBhdHRlcm4gbWF5IGNhdXNlIFZpbSB0byBjcmFzaC4gIENhdGNoaW5nIHRoZSBzaWduYWwKCSAgICBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIFdoZW4gY29tcGlsZWQgd2l0aCB0aHJlYWRzLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBub3JtYWwgc3RhY2tzaXplCgkgICAgbGltaXQsIHVzZSB0aGUgc2l6ZSBvZiB0aGUgaW5pdGlhbCBzdGFjay4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWcuaC5pbiwgc3JjL2NvbmZpZ3VyZS5pbiwKCSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuNDk3IChleHRyYSkKUHJvYmxlbTogICAgUnVzc2lhbiBtZXNzYWdlcyBhcmUgb25seSBhdmFpbGFibGUgaW4gb25lIGVuY29kaW5nLgpTb2x1dGlvbjogICBDb252ZXJ0IHRoZSBtZXNzYWdlcyB0byBNUy1XaW5kb3dzIGNvZGVwYWdlcy4gKFZhc3NpbHkgUmFnb3NpbikKRmlsZXM6CSAgICBzcmMvcG8vTWFrZWZpbGUKClBhdGNoIDYuMi40OTgKUHJvYmxlbTogICAgTm9uLWxhdGluMSBoZWxwIGZpbGVzIGFyZSBub3QgcHJvcGVybHkgc3VwcG9ydGVkLgpTb2x1dGlvbjogICBTdXBwb3J0IHV0Zi04IGhlbHAgZmlsZXMgYW5kIGNvbnZlcnQgdGhlbSB0byAnZW5jb2RpbmcnIHdoZW4KCSAgICBuZWVkZWQuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuNDk5ClByb2JsZW06ICAgIFdoZW4gd3JpdGluZyBhIGZpbGUgYW5kIGhhbHRpbmcgdGhlIHN5c3RlbSwgdGhlIGZpbGUgbWlnaHQgYmUgbG9zdAoJICAgIHdoZW4gdXNpbmcgYSBqb3VybmFsbGluZyBmaWxlIHN5c3RlbS4KU29sdXRpb246ICAgVXNlIGZzeW5jKCkgdG8gZmx1c2ggdGhlIGZpbGUgZGF0YSB0byBkaXNrIGFmdGVyIHdyaXRpbmcgYSBmaWxlLgoJICAgIChSYWRpbSBLb2xhcikKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi41MDAgKGV4dHJhKQpQcm9ibGVtOiAgICBUaGUgRE9TL01TLVdpbmRvd3MgdGhlIGluc3RhbGxlciBkb2Vzbid0IHVzZSB0aGUgLS1iaW5hcnkgZmxhZyBmb3IKCSAgICBkaWZmLgpTb2x1dGlvbjogICBBZGQgLS1iaW5hcnkgdG8gdGhlIGRpZmYgYXJndW1lbnQgaW4gTXlEaWZmKCkuIChBbGVqYW5kcm8gTG9wZXotCgkgICAgVmFsZW5jaWEpCkZpbGVzOgkgICAgc3JjL2Rvc2luc3QuYwoKUGF0Y2ggNi4yLjUwMQpQcm9ibGVtOiAgICBWaW0gZG9lcyBub3QgY29tcGlsZSB3aXRoIE1vcnBoT1MuClNvbHV0aW9uOiAgIEFkZCBhIE1ha2VmaWxlIGFuZCBhIGZldyBjaGFuZ2VzIHRvIG1ha2UgVmltIHdvcmsgd2l0aCBNb3JwaE9TLgoJICAgIChBbGkgQWtjYWFnYWMpCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3NfYW1pZ2EudHh0LCBzcmMvSU5TVEFMTGFtaS50eHQsCgkgICAgc3JjL01ha2VfbW9ycGhvcy5tYWssIHNyYy9tZW1maWxlLmMsIHNyYy90ZXJtLmMKClBhdGNoIDYuMi41MDIKUHJvYmxlbTogICAgQnVpbGRpbmcgZmFpbHMgZm9yIGdlbmVyYXRpbmcgbWVzc2FnZSBmaWxlcy4KU29sdXRpb246ICAgQWRkIGR1bW15IG1lc3NhZ2UgZmlsZXMuCkZpbGVzOgkgICAgc3JjL3BvL2NhLnBvLCBzcmMvcG8vcnUucG8sIHNyYy9wby9zdi5wbwoKUGF0Y2ggNi4yLjUwMwpQcm9ibGVtOiAgICBNYWM6IENhbid0IGNvbXBpbGUgTWFjUm9tYW4gY29udmVyc2lvbnMgd2l0aG91dCB0aGUgR1VJLgpTb2x1dGlvbjogICBBbHNvIGxpbmsgd2l0aCB0aGUgQ2FyYm9uIGZyYW1ld29yayBmb3IgdGhlIHRlcm1pbmFsIHZlcnNpb24sIGZvcgoJICAgIHRoZSBNYWNSb21hbiBjb252ZXJzaW9uIGZ1bmN0aW9ucy4gKEVja2VoYXJkIEJlcm5zKQoJICAgIFJlbW92ZSAtbHRlcm1jYXAgZnJvbSB0aGUgR1VJIGxpbmsgY29tbWFuZCwgaXQgaXMgbm90IG5lZWRlZC4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9NYWtlZmlsZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4yLjUwNApQcm9ibGVtOiAgICBWYXJpb3VzIHByb2JsZW1zIHdpdGggJ2NpbmRlbnQnLCBhbW9uZyB3aGljaCB0aGF0IGEKCSAgICBsaXN0IG9mIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBpcyBub3QgaW5kZW50ZWQgcHJvcGVybHkuClNvbHV0aW9uOiAgIEZpeCB0aGUgd3JvbmcgaW5kZW50aW5nLiAgSW1wcm92ZSBpbmRlbnRpbmcgb2YgQysrIG1ldGhvZHMuCgkgICAgQWRkIHRoZSAnaScsICdiJyBhbmQgJ1cnIG9wdGlvbnMgdG8gJ2Npbm9wdGlvbnMnLiAobW9zdGx5IGJ5CgkgICAgSGVsbXV0IFN0aWVnbGVyKQoJICAgIEltcHJvdmUgaW5kZW50aW5nIG9mIHByZXByb2Nlc3Nvci1jb250aW51YXRpb24gbGluZXMuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvaW5kZW50LnR4dCwgc3JjL21pc2MxLmMsIHNyYy90ZXN0ZGlyL3Rlc3QzLmluLAoJICAgIHNyYy90ZXN0ZGlyL3Rlc3QzLm9rCgpQYXRjaCA2LjIuNTA1ClByb2JsZW06ICAgIEhlbHAgZm9yIC1QIGFyZ3VtZW50IGlzIG1pc3NpbmcuIChSb25hbGQgSG9lbGx3YXJ0aCkKU29sdXRpb246ICAgQWRkIHRoZSBwYXRjaCB0aGF0IHdhcyBtaXNzaW5nIGluIDYuMi40MTkuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvc3RhcnRpbmcudHh0CgpQYXRjaCA2LjIuNTA2IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gJ2VuY29kaW5nJyBpcyBhIGNvZGVwYWdlIHRoZW4gcmVhZGluZyBhIHV0Zi04IGZpbGUKCSAgICBvbmx5IHdvcmtzIHdoZW4gaWNvbnYgaXMgYXZhaWxhYmxlLiAgV3JpdGluZyBhIGZpbGUgaW4gYW5vdGhlcgoJICAgIGNvZGVwYWdlIHVzZXMgdGhlIHdyb25nIGtpbmQgb2YgY29udmVyc2lvbi4KU29sdXRpb246ICAgVXNlIGludGVybmFsIGNvbnZlcnNpb24gZnVuY3Rpb25zLiAgRW5hYmxlIHJlYWRpbmcgYW5kIHdyaXRpbmcKCSAgICBmaWxlcyB3aXRoICdmaWxlZW5jb2RpbmcnIGRpZmZlcmVudCBmcm9tICdlbmNvZGluZycgZm9yIGFsbCB2YWxpZAoJICAgIGNvZGVwYWdlcyBhbmQgdXRmLTggd2l0aG91dCB0aGUgbmVlZCBmb3IgaWNvbnYuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvdGVzdGRpci9NYWtlX2Rvcy5tYWssIHNyYy90ZXN0ZGlyL3Rlc3Q1Mi5pbiwKCSAgICBzcmMvdGVzdGRpci90ZXN0NTIub2sKClBhdGNoIDYuMi41MDcKUHJvYmxlbTogICAgVGhlIG93bmVyc2hpcCBvZiB0aGUgZmlsZSB3aXRoIHRoZSBwYXNzd29yZCBmb3IgdGhlIE5ldEJlYW5zCgkgICAgY29ubmVjdGlvbiBpcyBub3QgY2hlY2tlZC4gICItbmI9e2ZpbGV9IiBkb2Vzbid0IHdvcmsgZm9yIEdUSy4KU29sdXRpb246ICAgT25seSBhY2NlcHQgdGhlIGZpbGUgd2hlbiBvd25lZCBieSB0aGUgdXNlciBhbmQgbm90IGFjY2Vzc2libGUgYnkKCSAgICBvdGhlcnMuICBEZXRlY3QgIi1uYj0iIGZvciBHVEsuCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMsIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjIuNTA4ClByb2JsZW06ICAgIFdpbjMyOiAidjpsYW5nIiBkb2VzIG5vdCBzaG93IHRoZSBjdXJyZW50IGxhbmd1YWdlIGZvciBtZXNzYWdlcyBpZgoJICAgIGl0IGRpZmZlcnMgZnJvbSB0aGUgb3RoZXIgbG9jYWxlIHNldHRpbmdzLgpTb2x1dGlvbjogICBVc2UgdGhlIHZhbHVlIG9mIHRoZSAkTENfTUVTU0FHRVMgZW52aXJvbm1lbnQgdmFyaWFibGUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMi41MDkgKGFmdGVyIDYuMi41MDgpClByb2JsZW06ICAgIENyYXNoIHdoZW4gJExBTkcgaXMgbm90IHNldC4KU29sdXRpb246ICAgQWRkIGNoZWNrIGZvciBOVUxMIHBvaW50ZXIuIChSb24gQWFyb24pCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMi41MTAgKGFmdGVyIDYuMi41MDcpClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIHBvaW50ZXIgY29udmVyc2lvbi4KU29sdXRpb246ICAgQWRkIGEgdHlwZSBjYXN0LgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjIuNTExClByb2JsZW06ICAgIFRhZ3MgaW4gUnVzc2lhbiBoZWxwIGZpbGVzIGFyZSBpbiB1dGYtOCBlbmNvZGluZywgd2hpY2ggbWF5IGJlCgkgICAgZGlmZmVyZW50IGZyb20gJ2VuY29kaW5nJy4KU29sdXRpb246ICAgVXNlIHRoZSAiVEFHX0ZJTEVfRU5DT0RJTkciIGZpZWxkIGluIHRoZSB0YWdzIGZpbGUgdG8gc3BlY2lmeSB0aGUKCSAgICBlbmNvZGluZyBvZiB0aGUgdGFncy4gIENvbnZlcnQgaGVscCB0YWdzIGZyb20gJ2VuY29kaW5nJyB0byB0aGUKCSAgICB0YWcgZmlsZSBlbmNvZGluZyB3aGVuIHNlYXJjaGluZyBmb3IgbWF0Y2hlcywgZG8gdGhlIHJldmVyc2Ugd2hlbgoJICAgIGxpc3RpbmcgaGVscCB0YWdzLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3RhZ3NyY2gudHh0LCBzcmMvZXhfY21kcy5jLCBzcmMvdGFnLmMKClBhdGNoIDYuMi41MTIKUHJvYmxlbTogICAgVHJhbnNsYXRpbmcgIlwiXG4iIGlzIHVzZWxlc3MuIChHZXJmcmllZCBGdWNocykKU29sdXRpb246ICAgUmVtb3ZlIHRoZSBfKCkgYXJvdW5kIGl0LgpGaWxlczoJICAgIHNyYy9tYWluLmMsIHNyYy9tZW1saW5lLmMKClBhdGNoIDYuMi41MTMgKGFmdGVyIDYuMi41MDcpClByb2JsZW06ICAgIE5ldEJlYW5zOiB0aGUgY2hlY2sgZm9yIG93bmluZyB0aGUgY29ubmVjdGlvbiBpbmZvIGZpbGUgY2FuIGJlCgkgICAgc2ltcGxpZmllZC4gKE5pa29sYXkgTW9sY2hhbm92KQpTb2x1dGlvbjogICBPbmx5IGNoZWNrIGlmIHRoZSBhY2Nlc3MgbW9kZSBpcyByaWdodC4KRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4yLjUxNApQcm9ibGVtOiAgICBXaGVuIGEgaGlnaGxpZ2h0L3N5bnRheCBncm91cCBuYW1lIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVycwoJICAgIHRoZXJlIGlzIG5vIHdhcm5pbmcuClNvbHV0aW9uOiAgIEFkZCBhbiBlcnJvciBmb3IgdW5wcmludGFibGUgY2hhcmFjdGVycyBhbmQgYSB3YXJuaW5nIGZvciBvdGhlcgoJICAgIGludmFsaWQgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMi41MTUKUHJvYmxlbTogICAgV2hlbiB1c2luZyB0aGUgb3B0aW9ucyB3aW5kb3cgJ3N3YXBmaWxlJyBpcyByZXNldC4KU29sdXRpb246ICAgVXNlICI6c2V0bG9jYWwiIGluc3RlYWQgb2YgIjpzZXQiLgpGaWxlczoJICAgIHJ1bnRpbWUvb3B0d2luLnZpbQoKUGF0Y2ggNi4yLjUxNgpQcm9ibGVtOiAgICBUaGUgc2lnbiBjb2x1bW4gY2Fubm90IGJlIHNlZW4sIGxvb2tzIGxpa2UgdGhlcmUgYXJlIHR3byBzcGFjZXMKCSAgICBiZWZvcmUgdGhlIHRleHQuIChSb2IgUmV0dGVyKQpTb2x1dGlvbjogICBBZGQgdGhlIFNpZ25Db2x1bW4gaGlnaGxpZ2h0IGdyb3VwLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBydW50aW1lL2RvYy9zaWduLnR4dCwgc3JjL29wdGlvbi5jLAoJICAgIHNyYy9zY3JlZW4uYywgc3JjL3N5bnRheC5jLCBzcmMvdmltLmgKClBhdGNoIDYuMi41MTcKUHJvYmxlbTogICAgVXNpbmcgInIqIiBpbiBWaXN1YWwgbW9kZSBvbiBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgcmVwbGFjZXMKCSAgICB0b28gbWFueSBjaGFyYWN0ZXJzLiAgSW4gVmlzdWFsIEJsb2NrIG1vZGUgcmVwbGFjaW5nIHdpdGggYQoJICAgIG11bHRpLWJ5dGUgY2hhcmFjdGVyIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgQWRqdXN0IHRoZSBvcGVyYXRvciBlbmQgZm9yIHRoZSBkaWZmZXJlbmNlIGluIGJ5dGUgbGVuZ3RoIG9mIHRoZQoJICAgIG9yaWdpbmFsIGFuZCB0aGUgcmVwbGFjZWQgY2hhcmFjdGVyLiAgSW5zZXJ0IGFsbCBieXRlcyBvZiBhCgkgICAgbXVsdGktYnl0ZSBjaGFyYWN0ZXIsIHRha2UgY2FyZSBvZiBkb3VibGUtd2lkZSBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4yLjUxOApQcm9ibGVtOiAgICBMYXN0IGxpbmUgb2YgYSB3aW5kb3cgaXMgbm90IHVwZGF0ZWQgYWZ0ZXIgdXNpbmcgIkoiIGFuZCB0aGVuICJEIi4KCSAgICAoQWRyaSBWZXJob2VmKQpTb2x1dGlvbjogICBXaGVuIG5vIGxpbmUgaXMgZm91bmQgYmVsb3cgYSBjaGFuZ2UgdGhhdCBkb2Vzbid0IG5lZWQgdXBkYXRpbmcsCgkgICAgdXBkYXRlIGFsbCBsaW5lcyBiZWxvdyB0aGUgY2hhbmdlLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4yLjUxOQpQcm9ibGVtOiAgICBNYWM6IGNhbm5vdCByZWFkL3dyaXRlIGZpbGVzIGluIE1hY1JvbWFuIGZvcm1hdC4KU29sdXRpb246ICAgRG8gaW50ZXJuYWwgY29udmVyc2lvbiBmcm9tL3RvIE1hY1JvbWFuIHRvL2Zyb20gdXRmLTggYW5kIGxhdGluMS4KCSAgICAoRWNrZWhhcmQgQmVybnMpCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuNTIwIChleHRyYSkKUHJvYmxlbTogICAgVGhlIE5TSVMgaW5zdGFsbGVyIGlzIG91dGRhdGVkLgpTb2x1dGlvbjogICBNYWtlIGl0IHdvcmsgd2l0aCBOU0lTIDIuMC4gIEFsc28gaW5jbHVkZSBjb25zb2xlIGV4ZWN1dGFibGVzIGZvcgoJICAgIFdpbiA5NS85OC9NRSBhbmQgV2luIE5ULzIwMDAvWFAuICBVc2UgTFpXQSBjb21wcmVzc2lvbi4gIFVzZQoJICAgICIvb25hbWUiIHRvIGF2b2lkIGhhdmluZyB0byByZW5hbWUgZmlsZXMgYmVmb3JlIHJ1bm5pbmcgTlNJUy4KRmlsZXM6CSAgICBNYWtlZmlsZSwgbnNpcy9ndmltLm5zaQoKUGF0Y2ggNi4yLjUyMQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHNpbGVudCBFeCBtb2RlIHRoZSAiY2hhbmdpbmcgYSByZWFkb25seSBmaWxlIiB3YXJuaW5nCgkgICAgaXMgb21pdHRlZCBidXQgdGhlIG9uZSBzZWNvbmQgd2FpdCBpc24ndC4gKFlha292IExlcm5lcikKU29sdXRpb246ICAgU2tpcCB0aGUgZGVsYXkgd2hlbiAic2lsZW50X21vZGUiIGlzIHNldC4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4yLjUyMgpQcm9ibGVtOiAgICBHVUk6IHdoZW4gY2hhbmdpbmcgJ2NtZGhlaWdodCcgaW4gdGhlIGd2aW1yYyBmaWxlIHRoZSB3aW5kb3cKCSAgICBsYXlvdXQgaXMgbWVzc2VkIHVwLiAoS2VpdGggRGFydCkKU29sdXRpb246ICAgU2tpcCB1cGRhdGluZyB0aGUgd2luZG93IGxheW91dCB3aGVuIGNoYW5naW5nICdjbWRoZWlnaHQnIHdoaWxlCgkgICAgc3RpbGwgc3RhcnRpbmcgdXAuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuNTIzClByb2JsZW06ICAgIFdoZW4gbG9hZGluZyBhIHNlc3Npb24gYW5kIGFib3J0aW5nIHdoZW4gYSBzd2FwIGZpbGUgYWxyZWFkeQoJICAgIGV4aXN0cywgdGhlIHVzZXIgaXMgbGVmdCB3aXRoIHVzZWxlc3Mgd2luZG93cy4gKFJvYmVydCBXZWJiKQpTb2x1dGlvbjogICBMb2FkIG9uZSBmaWxlIGJlZm9yZSBjcmVhdGluZyB0aGUgd2luZG93cy4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjUyNCAoZXh0cmEsIGFmdGVyIDYuMi41MjApClByb2JsZW06ICAgIFdpbjMyOiAodW4paW5zdGFsbGluZyBndmltZXh0LmRsbCBtYXkgZmFpbCBpZiBpdCB3YXMgdXNlZC4KCSAgICBUaGUgZGVza3RvcCBhbmQgc3RhcnQgbWVudSBsaW5rcyBhcmUgY3JlYXRlZCBmb3IgdGhlIGN1cnJlbnQgdXNlcgoJICAgIGluc3RlYWQgb2YgYWxsIHVzZXJzLgoJICAgIFVzaW5nIHRoZSBob21lIGRpcmVjdG9yeSBhcyB3b3JraW5nIGRpcmVjdG9yeSBmb3IgdGhlIGxpbmtzIGlzIGEKCSAgICBiYWQgaWRlYSBmb3IgbXVsdGktdXNlciBzeXN0ZW1zLgoJICAgIENhbm5vdCB1c2UgVmltIGZyb20gdGhlICJPcGVuIFdpdGguLi4iIG1lbnUuClNvbHV0aW9uOiAgIEZvcmNlIGEgcmVib290IGlmIG5lY2Vzc2FyeS4gKEFsZWphbmRybyBMb3Blei1WYWxlbmNpYSkgIEFsc28gdXNlCgkgICAgbWFjcm9zIGZvciB0aGUgZGlyZWN0b3J5IG9mIHRoZSBzb3VyY2UgYW5kIHJ1bnRpbWUgZmlsZXMuICBVc2UKCSAgICAiQ1NJRExfQ09NTU9OXyoiIGluc3RlYWQgb2YgIkNTSURMXyoiIHdoZW4gcG9zc2libGUuCgkgICAgRG8gbm90IHNwZWNpZnkgYSB3b3JraW5nIGRpcmVjdG9yeSBpbiB0aGUgbGlua3MuCgkgICAgQWRkIFZpbSB0byB0aGUgIk9wZW4gV2l0aC4uLiIgbWVudS4gKEdpdXNlcHBlIEJpbG90dGEpCkZpbGVzOgkgICAgbnNpcy9ndmltLm5zaSwgc3JjL2Rvc2luc3QuYywgc3JjL2Rvc2luc3QuaCwgc3JjL3VuaW5zdGFsLmMKClBhdGNoIDYuMi41MjUKUHJvYmxlbTogICAgV2hlbiB0aGUgaGlzdG9yeSBjb250YWlucyBhIHZlcnkgbG9uZyBsaW5lICI6aGlzdG9yeSIgY2F1c2VzIGEKCSAgICBjcmFzaC4gKFZvbGtlciBLaWVmZWwpClNvbHV0aW9uOiAgIFNob3J0ZW4gdGhlIGhpc3RvcnkgZW50cnkgdG8gZml0IGl0IGluIG9uZSBsaW5lLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjIuNTI2ClByb2JsZW06ICAgIFdoZW4gczpsYW5nIGlzICJqYSIgdGhlIEphcGFuZXNlIG1lbnVzIGFyZSBub3QgdXNlZC4KU29sdXRpb246ICAgQWRkICdlbmNvZGluZycgdG8gdGhlIGxhbmd1YWdlIHdoZW4gdGhlcmUgaXMgbm8gY2hhcnNldC4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjIuNTI3ClByb2JsZW06ICAgIFRoZSAyaHRtbCBzY3JpcHQgdXNlcyAiOndpbmNtZCBwIiwgd2hpY2ggYnJlYWtzIHdoZW4gdXNpbmcgc29tZQoJICAgIGF1dG9jb21tYW5kcy4KU29sdXRpb246ICAgUmVtZW1iZXIgdGhlIHdpbmRvdyBudW1iZXJzIGFuZCBqdW1wIHRvIHRoZW0gd2l0aCAiOndpbmNtZCB3Ii4KCSAgICBBbHNvIGFkZCBYSFRNTCBzdXBwb3J0LiAoUGFuYWdpb3RpcyBJc3NhcmlzKQpGaWxlczoJICAgIHJ1bnRpbWUvc3ludGF4LzJodG1sLnZpbQoKUGF0Y2ggNi4yLjUyOApQcm9ibGVtOiAgICBOZXRCZWFuczogQ2hhbmdlcyBvZiB0aGUgIn4iIGNvbW1hbmQgYXJlIG5vdCByZXBvcnRlZC4KU29sdXRpb246ICAgQ2FsbCBuZXRiZWFuc19pbnNlcnRlZCgpIGFmdGVyIHBlcmZvcm1pbmcgIn4iLiAoR29yZG9uIFByaWV1cikKCSAgICBBbHNvIGNoYW5nZSBOZXRCZWFucyBkZWJ1Z2dpbmcgdG8gYXBwZW5kIHRvIHRoZSBsb2cgZmlsZS4KCSAgICBBbHNvIGZpeCB0aGF0ICJ+IiBpbiBWaXN1YWwgYmxvY2sgbW9kZSBjaGFuZ2VzIHRvbyBtdWNoIGlmIHRoZXJlCgkgICAgYXJlIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvbmJkZWJ1Zy5jLCBzcmMvbm9ybWFsLmMsIHNyYy9vcHMuYwoKUGF0Y2ggNi4yLjUyOSAoZXh0cmEpClByb2JsZW06ICAgIFZpc1ZpbSBvbmx5IHdvcmtzIGZvciBBZG1pbi4gIERvaW5nIGl0IGZvciBvbmUgdXNlciBkb2Vzbid0IHdvcmsuCgkgICAgKEFsZXhhbmRyZSBHb3VyYXVkKQpTb2x1dGlvbjogICBXaGVuIHJlZ2lzdGVyaW5nIHRoZSBtb2R1bGUgZmFpbHMsIHNpbXBseSBjb250aW51ZS4KRmlsZXM6CSAgICBzcmMvVmlzVmltL1Zpc1ZpbS5jcHAKClBhdGNoIDYuMi41MzAKUHJvYmxlbTogICAgV2FybmluZyBmb3IgbWlzc2luZyBwcm90b3R5cGUgb24gdGhlIEFtaWdhLgpTb2x1dGlvbjogICBJbmNsdWRlIHRpbWUuaApGaWxlczoJICAgIHNyYy92ZXJzaW9uLmMKClBhdGNoIDYuMi41MzEKUHJvYmxlbTogICAgSW4gc2lsZW50IGV4IG1vZGUgbm8gbWVzc2FnZXMgYXJlIGdpdmVuLCB3aGljaCBtYWtlcyBkZWJ1Z2dpbmcKCSAgICB2ZXJ5IGRpZmZpY3VsdC4KU29sdXRpb246ICAgRG8gb3V0cHV0IG1lc3NhZ2VzIHdoZW4gJ3ZlcmJvc2UnIGlzIHNldC4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jLCBzcmMvdWkuYwoKUGF0Y2ggNi4yLjUzMiAoZXh0cmEpClByb2JsZW06ICAgIENvbXBpbGluZyBmb3IgV2luMzJzIHdpdGggVkMgNC4xIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgRG9uJ3QgdXNlIENQX1VURjggaWYgaXQncyBub3QgZGVmaW5lZC4gIERvbid0IHVzZSBDU0lETF9DT01NT04qCgkgICAgd2hlbiBub3QgZGVmaW5lZC4KRmlsZXM6CSAgICBzcmMvZG9zaW5zdC5oLCBzcmMvZmlsZWlvLmMKCldpbjMyIGNvbnNvbGU6IEFmdGVyIHBhdGNoIDYuMi4zOTggRXggbW9kZSBkaWQgbm90IHdvcmsuIChZYXN1aGlybyBNYXRzdW1vdG8pCgpQYXRjaCA2LjNhLjAwMQpQcm9ibGVtOiAgICBXaW4zMjogaWYgdGVzdGluZyBmb3IgdGhlICItLWJpbmFyeSIgb3B0aW9uIGZhaWxzLCBkaWZmIGlzbid0IHVzZWQKCSAgICBhdCBhbGwuClNvbHV0aW9uOiAgIEhhbmRsZSB0aGUgIm9rIiBmbGFnIHByb3Blcmx5LiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9kaWZmLmMKClBhdGNoIDYuM2EuMDAyClByb2JsZW06ICAgIE5ldEJlYW5zOiBBbiBpbnNlcnQgY29tbWFuZCBmcm9tIE5ldEJlYW5zIGJleW9uZCB0aGUgZW5kIG9mIGEKCSAgICBidWZmZXIgY3Jhc2hlcyBWaW0uIChYYXZpZXIgZGUgR2F5ZSkKU29sdXRpb246ICAgVXNlIGEgbG9jYWwgcG9zX1Qgc3RydWN0dXJlIGZvciB0aGUgcG9zaXRpb24uCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuM2EuMDAzClByb2JsZW06ICAgIEUzMTUgZXJyb3Igd2l0aCBhdXRvLWZvcm1hdHRpbmcgY29tbWVudHMuIChIZW5yeSBWYW4gUm9lc3NlbCkKU29sdXRpb246ICAgUGFzcyB0aGUgbGluZSBudW1iZXIgdG8gc2FtZV9sZWFkZXIoKS4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuM2EuMDA0ClByb2JsZW06ICAgIFRlc3QzMiBmYWlscyBvbiBXaW5kb3dzIFhQIGZvciB0aGUgREpHUFAgdmVyc2lvbi4gIFJlbmFtaW5nCgkgICAgdGVzdDExLm91dCBmYWlscy4KU29sdXRpb246ICAgRG9uJ3QgdHJ5IHJlbmFtaW5nLCBjcmVhdGUgbmV3IGZpbGVzIHRvIHVzZSBmb3IgdGhlIHRlc3QuCkZpbGVzOgkgICAgc3JjL3Rlc3RkaXIvdGVzdDMyLmluLCBzcmMvdGVzdGRpci90ZXN0MzIub2sKClBhdGNoIDYuM2EuMDA1ClByb2JsZW06ICAgICI6Y2hlY2twYXRoISIgZG9lcyBub3QgdXNlICdpbmNsdWRlZXhwcicuClNvbHV0aW9uOiAgIFVzZSBhIGZpbGUgbmFtZSB0aGF0IHdhcyBmb3VuZCBkaXJlY3RseS4gIFdoZW4gYSBmaWxlIHdhcyBub3QKCSAgICBmb3VuZCBhbmQgdGhlIGxvY2F0ZWQgbmFtZSBpcyBlbXB0eSwgdXNlIHRoZSByZXN0IG9mIHRoZSBsaW5lLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4zYS4wMDYKUHJvYmxlbTogICAgInlpcCIgbW92ZXMgdGhlIGN1cnNvciB0byB0aGUgZmlyc3QgeWFua2VkIGxpbmUsIGJ1dCBub3QgdG8gdGhlCgkgICAgZmlyc3QgY29sdW1uLiAgTG9va3MgbGlrZSBub3QgYWxsIHRleHQgd2FzIHlhbmtlZC4gKEplbnMgUGF1bHVzKQpTb2x1dGlvbjogICBNb3ZlIHRoZSBjdXJzb3IgdG8gdGhlIGZpcnN0IGNvbHVtbi4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuM2EuMDA3ClByb2JsZW06ICAgICdjaW5kZW50JyByZWNvZ25pemVzICJlbnVtIiBidXQgbm90ICJ0eXBlZGVmIGVudW0iLgpTb2x1dGlvbjogICBTa2lwIG92ZXIgInR5cGVkZWYiIGJlZm9yZSBjaGVja2luZyBmb3IgImVudW0iLiAoSGVsbXV0IFN0aWVnbGVyKQoJICAgIEFsc28gYXZvaWQgdGhhdCBzZWFyY2hpbmcgZm9yIHRoaXMgaXRlbSBnb2VzIHRvbyBmYXIgYmFjay4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYywgc3JjL3Rlc3RkaXIvdGVzdDMuaW4sIHNyYy90ZXN0ZGlyL3Rlc3QzLm9rCgpQYXRjaCA2LjNhLjAwOCAoZXh0cmEpClByb2JsZW06ICAgIFdpbmRvd3MgOTg6IFNvbWUgb2YgdGhlIHdpZGUgZnVuY3Rpb25zIGFyZSBub3QgaW1wbGVtZW50ZWQsCgkgICAgcmVzdWx0aW5nIGluIGZpbGUgSS9PIHRvIGZhaWwuICBUaGlzIGRlcGVuZHMgb24gd2hhdCBVbmljb2RlCgkgICAgc3VwcG9ydCBpcyBpbnN0YWxsZWQuClNvbHV0aW9uOiAgIEhhbmRsZSB0aGUgZmFpbHVyZSBhbmQgZmFsbCBiYWNrIHRvIG5vbi13aWRlIGZ1bmN0aW9ucy4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4zYS4wMDkKUHJvYmxlbTogICAgV2luMzI6IENvbXBsZXRpb24gb2YgZmlsZW5hbWVzIGRvZXMgbm90IHdvcmsgcHJvcGVybHkgd2hlbgoJICAgICdlbmNvZGluZycgZGlmZmVycyBmcm9tIHRoZSBhY3RpdmUgY29kZSBwYWdlLgpTb2x1dGlvbjogICBVc2Ugd2lkZSBmdW5jdGlvbnMgZm9yIGV4cGFuZGluZyB3aWxkY2FyZHMgd2hlbiBhcHByb3ByaWF0ZS4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4zYS4wMTAgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogQ2hhcmFjdGVycyBpbiB0aGUgd2luZG93IHRpdGxlIHRoYXQgZG8gbm90IGFwcGVhciBpbiB0aGUKCSAgICBhY3RpdmUgY29kZXBhZ2UgYXJlIHJlcGxhY2VkIGJ5IGEgcXVlc3Rpb24gbWFyay4KU29sdXRpb246ICAgVXNlIERlZldpbmRvd1Byb2NXKCkgaW5zdGVhZCBvZiBEZWZXaW5kb3dQcm9jKCkgd2hlbiBwb3NzaWJsZS4KRmlsZXM6CSAgICBzcmMvZ2xibF9pbWUuY3BwLCBzcmMvZ2xvYmFscy5oLCBzcmMvcHJvdG8vZ3VpX3cxNi5wcm8sCgkgICAgc3JjL3Byb3RvL2d1aV93MzIucHJvLCBzcmMvZ3VpX3cxNi5jLCBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjNhLjAxMQpQcm9ibGVtOiAgICBVc2luZyB0aGUgZXhwbG9yZXIgcGx1Z2luIGNoYW5nZXMgYSBsb2NhbCBkaXJlY3RvcnkgdG8gdGhlIGdsb2JhbAoJICAgIGRpcmVjdG9yeS4KU29sdXRpb246ICAgRG9uJ3QgdXNlICI6Y2hkaXIiIHRvIHJlc3RvcmUgdGhlIGN1cnJlbnQgZGlyZWN0b3J5LiAgTWFrZQoJICAgICJleHBhbmQoJyU6cCcpIiByZW1vdmUgIi8uLi8iIGFuZCAiLy4vIiBpdGVtcyBmcm9tIHRoZSBwYXRoLgpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL2V4cGxvcmVyLnZpbSwgc3JjL2V2YWwuYywgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4zYS4wMTIgKGV4dHJhKQpQcm9ibGVtOiAgICBPbiBXaW5kb3dzIDk4IHRoZSBpbnN0YWxsZXIgZG9lc24ndCB3b3JrLCBkb24ndCBldmVuIGdldCB0aGUgIkkKCSAgICBhZ3JlZSIgYnV0dG9uLiAgVGhlIGNoZWNrIGZvciB0aGUgcGF0aCBlbmRpbmcgaW4gInZpbSIgbWFrZXMgdGhlCgkgICAgYnJvd3NlIGRpYWxvZyBoYXJkIHRvIHVzZS4gIFRoZSBkZWZhdWx0IHBhdGggd2hlbiBubyBwcmV2aW91cyBWaW0KCSAgICBpcyBpbnN0YWxsZWQgaXMgImM6XHZpbSIgaW5zdGVhZCBvZiAiYzpcUHJvZ3JhbSBGaWxlc1xWaW0iLgpTb2x1dGlvbjogICBSZW1vdmUgdGhlIGJhY2tncm91bmQgZ3JhZGllbnQgY29tbWFuZC4gIENoYW5nZSB0aGUKCSAgICAub25WZXJpZnlJbnN0RGlyIGZ1bmN0aW9uIHRvIGEgbGVhdmUgZnVuY3Rpb24gZm9yIHRoZSBkaXJlY3RvcnkKCSAgICBwYWdlLiAgRG9uJ3QgbGV0IHRoZSBpbnN0YWxsIHByb2dyYW0gZGVmYXVsdCB0byBjOlx2aW0gd2hlbiBubwoJICAgIHBhdGggY291bGQgYmUgZm91bmQuCkZpbGVzOgkgICAgbnNpcy9ndmltLm5zaSwgc3JjL2Rvc2luc3QuYwoKUGF0Y2ggNi4zYS4wMTMgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogQ2hhcmFjdGVycyBpbiB0aGUgbWVudSB0aGF0IGFyZSBub3QgaW4gdGhlIGFjdGl2ZSBjb2RlcGFnZQoJICAgIGFyZSBnYXJibGVkLgpTb2x1dGlvbjogICBDb252ZXJ0IG1lbnUgc3RyaW5ncyBmcm9tICdlbmNvZGluZycgdG8gdGhlIGFjdGl2ZSBjb2RlcGFnZS4KRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjNhLjAxNApQcm9ibGVtOiAgICBVc2luZyBtdWx0aS1ieXRlIHRleHQgYW5kIGhpZ2hsaWdodGluZyBpbiBhIHN0YXR1c2xpbmUgY2F1c2VzIGdhcHMKCSAgICB0byBhcHBlYXIuIChIZWxtdXQgU3RpZWdsZXIpClNvbHV0aW9uOiAgIEFkdmFuY2UgdGhlIGNvbHVtbiBieSB0ZXh0IHdpZHRoIGluc3RlYWQgb2YgbnVtYmVyIG9mIGJ5dGVzLiAgQWRkCgkgICAgdGhlIHZpbV9zdHJuc2l6ZSgpIGZ1bmN0aW9uLgpGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMsIHNyYy9wcm90by9jaGFyc2V0LnBybywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjNhLjAxNQpQcm9ibGVtOiAgICBVc2luZyB0aGUgInNlbGVjdCBhbGwiIG1lbnUgaXRlbSB3aGVuICdpbnNlcnRtb2RlJyBpcyBzZXQgYW5kCgkgICAgY2xpY2tpbmcgdGhlIG1vdXNlIGJ1dHRvbiBkb2Vzbid0IHJldHVybiB0byBJbnNlcnQgbW9kZS4gIFRoZQoJICAgIEJ1ZmZlcnMvRGVsZXRlIG1lbnUgZG9lc24ndCBvZmZlciBhIGNob2ljZSB0byBhYmFuZG9uIGEgY2hhbmdlZAoJICAgIGJ1ZmZlci4gIChKZW5zIFBhdWx1cykKU29sdXRpb246ICAgRG9uJ3QgdXNlIENUUkwtXCBDVFJMLU4uICBBZGQgIjpjb25maXJtIiBmb3IgdGhlIEJ1ZmZlcnMgbWVudQoJICAgIGl0ZW1zLgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuM2EuMDE2ClByb2JsZW06ICAgIEFmdGVyIGNhbmNlbGxpbmcgdGhlICI6Y29uZmlybSIgZGlhbG9nIHRoZSBlcnJvciBtZXNzYWdlIGFuZAoJICAgIGhpdC1lbnRlciBwcm9tcHQgbWF5IG5vdCBiZSBkaXNwbGF5ZWQgcHJvcGVybHkuClNvbHV0aW9uOiAgIEZsdXNoIG91dHB1dCBhZnRlciBzaG93aW5nIHRoZSBkaWFsb2cuCkZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4zYS4wMTcKUHJvYmxlbTogICAgc2VydmVybmFtZSgpIGRvZXNuJ3Qgd29yayB3aGVuIFZpbSB3YXMgc3RhcnRlZCB3aXRoIHRoZSAiLVgiCgkgICAgYXJndW1lbnQgb3Igd2hlbiB0aGUgImV4Y2x1ZGUiIGluICdjbGlwYm9hcmQnIG1hdGNoZXMgdGhlIHRlcm1pbmFsCgkgICAgbmFtZS4gIChSb2JlcnQgTm93b3RuaWFrKQpTb2x1dGlvbjogICBGb3JjZSBjb25uZWN0aW5nIHRvIHRoZSBYIHNlcnZlciB3aGVuIHVzaW5nIGNsaWVudC1zZXJ2ZXIKCSAgICBjb21tYW5kcy4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjNhLjAxOCAoYWZ0ZXIgNi4zYS4wMTcpClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmcgZm9yIHJldHVybiB2YWx1ZSBvZiBtYWtlX2Nvbm5lY3Rpb24oKS4KU29sdXRpb246ICAgVXNlIHZvaWQgcmV0dXJuIHR5cGUuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4zYS4wMTkgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogdHlwaW5nIG5vbi1sYXRpbjEgY2hhcmFjdGVycyBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIEludm9rZSBfT25DaGFyKCkgZGlyZWN0bHkgdG8gYXZvaWQgdGhhdCB0aGUgYXJndW1lbnQgaXMgdHJ1bmNhdGVkCgkgICAgdG8gYSBieXRlLiAgQ29udmVydCB0aGUgVVRGLTE2IGNoYXJhY3RlciB0byBieXRlcyBhY2NvcmRpbmcgdG8KCSAgICAnZW5jb2RpbmcnIGFuZCBpZ25vcmUgJ3Rlcm1lbmNvZGluZycuICBTYW1lIGZvciBfT25TeXNDaGFyKCkuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4zYS4wMjAgKGV4dHJhKQpQcm9ibGVtOiAgICBNaXNzaW5nIHN1cHBvcnQgZm9yIEFST1MgKEFtaWdhT1MgcmVpbXBsZW1lbnRhdGlvbikuICBBbWlnYSBHVUkKCSAgICBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIEFkZCBBUk9TIHN1cHBvcnQuICAoQWRhbSBDaG9kb3Jvd3NraSkKCSAgICBGaXggQW1pZ2EgR1VJIHByb2JsZW1zLiAoR2VvcmcgU3RlZ2VyLCBBbGkgQWtjYWFnYWMpCkZpbGVzOgkgICAgTWFrZWZpbGUsIHNyYy9NYWtlX2Fyb3MubWFrLCBzcmMvZ3VpX2FtaWdhLmMsIHNyYy9ndWlfYW1pZ2EuaCwKCSAgICBzcmMvbWVtZmlsZS5jLCBzcmMvb3NfYW1pZ2EuYywgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4zYS4wMjEgKGFmdGVyIDYuM2EuMDE3KQpQcm9ibGVtOiAgICBDYW4ndCBjb21waWxlIHdpdGggWDExIGJ1dCB3aXRob3V0IEdVSS4KU29sdXRpb246ICAgUHV0IHVzZSBvZiAiZ3VpLmluX3VzZSIgaW5zaWRlIGFuICNpZmRlZi4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjNhLjAyMgpQcm9ibGVtOiAgICBXaGVuIHR5cGluZyBUYWJzIHdoZW4gJ3NvZnR0YWJzdG9wJyBpcyB1c2VkIGFuZCAnbGlzdCcgaXMgc2V0IGEKCSAgICB0YWIgaXMgY291bnRlZCBmb3IgdHdvIHNwYWNlcy4KU29sdXRpb246ICAgVXNlIHRoZSAiTCIgZmxhZyBpbiAnY3BvcHRpb25zJyB0byB0ZWxsIHdoZXRoZXIgYSB0YWIgaXMgY291bnRlZAoJICAgIGFzIHR3byBzcGFjZXMgb3IgYXMgJ3RhYnN0b3AnLiAoQW50b255IFNjcml2ZW4pCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9lZGl0LmMKClBhdGNoIDYuM2EuMDIzClByb2JsZW06ICAgIENvbXBsZXRpb24gb24gdGhlIGNvbW1hbmQgbGluZSBkb2Vzbid0IGhhbmRsZSBiYWNrc2xhc2hlcwoJICAgIHByb3Blcmx5LiAgT25seSB0aGUgdGFpbCBvZiBtYXRjaGVzIGlzIHNob3duLCBldmVuIHdoZW4gbm90CgkgICAgY29tcGxldGluZyBmaWxlbmFtZXMuClNvbHV0aW9uOiAgIFdoZW4gdHVybmluZyB0aGUgc3RyaW5nIGludG8gYSBwYXR0ZXJuIGRvdWJsZSBiYWNrc2xhc2hlcy4gIERvbid0CgkgICAgb21pdCB0aGUgcGF0aCB3aGVuIG5vdCBleHBhbmRpbmcgZmlsZXMgb3IgZGlyZWN0b3JpZXMuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuM2EuMDI0ClByb2JsZW06ICAgIFRoZSAic2F2ZSBhbGwiIHRvb2xiYXIgaXRlbSBmYWlscyBmb3IgYnVmZmVycyB0aGF0IGRvbid0IGhhdmUgYQoJICAgIG5hbWUuICBXaGVuIHVzaW5nICI6d2EiIG9yIGNsb3NpbmcgdGhlIFZpbSB3aW5kb3cgYW5kIHRoZXJlIGFyZQoJICAgIG5hbWVsZXNzIGJ1ZmZlcnMsIGJyb3dzaW5nIGZvciBhIG5hbWUgbWF5IGNhdXNlIHRoZSBuYW1lIGJlaW5nCgkgICAgZ2l2ZW4gdG8gdGhlIHdyb25nIGJ1ZmZlciBvciBub3Qgc3RvcmVkIHByb3Blcmx5LiAgIjpicm93c2UiIG9ubHkKCSAgICB3b3JrZWQgZm9yIG9uZSBmaWxlLgpTb2x1dGlvbjogICBVc2UgIjpjb25maXJtIGJyb3dzZSIgZm9yICJzYXZlIGFsbCIuCgkgICAgUGFzcyBidWZmZXIgYXJndW1lbnQgdG8gc2V0Zm5hbWUoKS4gIFJlc3RvcmUgImJyb3dzZSIgZmxhZyBhbmQKCSAgICAiZm9yY2VpdCIgYWZ0ZXIgZG9pbmcgdGhlIHdvcmsgZm9yIG9uZSBmaWxlLgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0sIHNyYy9idWZmZXIuYywgc3JjL2V4X2NtZHMuYywgc3JjL2V4X2NtZHMyLmMsCgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvZmlsZWlvLmMsIHNyYy9tZW1saW5lLmMsCgkgICAgc3JjL21lc3NhZ2UuYywgc3JjL3dpbmRvdy5jLCBzcmMvcHJvdG8vYnVmZmVyLnBybywKCSAgICBzcmMvcHJvdG8vZXhfY21kczIucHJvLCBzcmMvcHJvdG8vbWVtbGluZS5wcm8KClBhdGNoIDYuM2EuMDI1ClByb2JsZW06ICAgIFNldHRpbmcgJ3ZpcnR1YWxlZGl0JyBtb3ZlcyB0aGUgY3Vyc29yLiAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBVcGRhdGUgdGhlIHZpcnR1YWwgY29sdW1uIGJlZm9yZSB1c2luZyBpdC4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuM2EuMDI2IChleHRyYSwgYWZ0ZXIgNi4zYS4wMDgpClByb2JsZW06ICAgIEVkaXRpbmcgZmlsZXMgb24gV2luZG93cyA5OCBkb2Vzbid0IHdvcmsgd2hlbiAnZW5jb2RpbmcnIGlzCgkgICAgInV0Zi04IiAoQW50b2luZSBNZWNoZWx5bmNrKQoJICAgIFdhcm5pbmcgZm9yIG1pc3NpbmcgZnVuY3Rpb24gcHJvdG90eXBlLgpTb2x1dGlvbjogICBGb3IgYWxsIHdpZGUgZnVuY3Rpb25zIGNoZWNrIGlmIGl0IGZhaWxlZCBiZWNhdXNlIGl0IGlzIG5vdAoJICAgIGltcGxlbWVudGVkLiAgVXNlIEFOU0kgZnVuY3Rpb24gZGVjbGFyYXRpb24gZm9yIGNoYXJfdG9fc3RyaW5nKCkuCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYywgc3JjL29zX21zd2luLmMsIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjNhLjAyNyAoZXh0cmEsIGFmdGVyIDYuM2EuMDI2KQpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5nIGZvciBmdW5jdGlvbiBhcmd1bWVudC4KU29sdXRpb246ICAgRGVjbGFyZSBib3RoIGNoYXIgYW5kIFdDSEFSIGFycmF5cy4KRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjNhLjAyOApQcm9ibGVtOiAgICAiOm5vcm1hbCAuIiBkb2Vzbid0IHdvcmsgaW5zaWRlIGEgZnVuY3Rpb24sIGJlY2F1c2UgcmVkbyBpcyBzYXZlZAoJICAgIGFuZCByZXN0b3JlZC4gKEJlbmppIEZpc2hlcikKU29sdXRpb246ICAgTWFrZSBhIGNvcHkgb2YgdGhlIHJlZG8gYnVmZmVyIHdoZW4gZXhlY3V0aW5nIGEgZnVuY3Rpb24uCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYwoKUGF0Y2ggNi4zYi4wMDEgKGV4dHJhKQpQcm9ibGVtOiAgICBCY2MgNTogVGhlIGdlbmVyYXRlZCBhdXRvL3BhdGhkZWYgY2FuJ3QgYmUgY29tcGlsZWQuClNvbHV0aW9uOiAgIEZpeCB0aGUgd2F5IHF1b3RlcyBhbmQgYmFja3NsYXNoZXMgYXJlIGVzY2FwZWQuCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1hawoKUGF0Y2ggNi4zYi4wMDIKUHJvYmxlbTogICAgV2luMzI6IGNvbnZlcnNpb24gZHVyaW5nIGZpbGUgd3JpdGUgZmFpbHMgd2hlbiBhIGRvdWJsZS1ieXRlCgkgICAgY2hhcmFjdGVyIGlzIHNwbGl0IG92ZXIgdHdvIHdyaXRlcy4KU29sdXRpb246ICAgRml4IHRoZSBjb252ZXJzaW9uIHJldHJ5IHdpdGhvdXQgYSB0cmFpbGluZyBieXRlLiAoVGFybyBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4zYi4wMDMgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiBjb21waWxpbmcgd2l0aCBCb3JsYW5kIEMgNS41IGFuZCAnZW5jb2RpbmcnIGlzICJ1dGYtOCIKCSAgICB0aGVuIFZpbSBjYW4ndCBvcGVuIGZpbGVzIHVuZGVyIE1TLVdpbmRvd3MgOTguIChBbnRvaW5lIEouCgkgICAgTWVjaGVseW5jaykKU29sdXRpb246ICAgRG9uJ3QgdXNlIF93c3RhdCgpLCBfd29wZW4oKSBhbmQgX3dmb3BlbigpIGluIHRoaXMgc2l0dWF0aW9uLgpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jLCBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4zYi4wMDQKUHJvYmxlbTogICAgIjpoZWxwZ3JlcCIgaW5jbHVkZXMgYSB0cmFpbGluZyBDUiBpbiB0aGUgdGV4dCBsaW5lLgpTb2x1dGlvbjogICBSZW1vdmUgdGhlIENSLgpGaWxlczoJICAgIHNyYy9xdWlja2ZpeC5jCgpQYXRjaCA2LjNiLjAwNQpQcm9ibGVtOiAgICAiOmVjaG8gJmc6YWkiIHJlc3VsdHMgaW4gdGhlIGxvY2FsIG9wdGlvbiB2YWx1ZS4gKFNhbG1hbiBIYWxpbSkKU29sdXRpb246ICAgUGFzcyB0aGUgZmxhZ3MgZnJvbSBmaW5kX29wdGlvbl9lbmQoKSB0byBnZXRfb3B0aW9uX3ZhbHVlKCkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4zYi4wMDYKUHJvYmxlbTogICAgV2hlbiB1c2luZyAibXN3aW4udmltIiwgQ1RSTC1WIGluIEluc2VydCBtb2RlIGxlYXZlcyBjdXJzb3IgYmVmb3JlCgkgICAgbGFzdCBwYXN0ZWQgY2hhcmFjdGVyLiAgKE1hdGhldyBEYXZpcykKU29sdXRpb246ICAgVXNlIHRoZSBzYW1lIFBhc3RlKCkgZnVuY3Rpb24gYXMgaW4gbWVudS52aW0uCkZpbGVzOgkgICAgcnVudGltZS9tc3dpbi52aW0KClBhdGNoIDYuM2IuMDA3ClByb2JsZW06ICAgIFNlc3Npb24gZmlsZSBkb2Vzbid0IHJlc3RvcmUgdmlldyBvbiB3aW5kb3dzIHByb3Blcmx5LiAoUm9iZXJ0CgkgICAgV2ViYikKU29sdXRpb246ICAgUmVzdG9yZSB3aW5kb3cgc2l6ZXMgYm90aCBiZWZvcmUgYW5kIGFmdGVyIHJlc3RvcmluZyB0aGUgdmlldywgc28KCSAgICB0aGF0IHRoZSB2aWV3LCBjdXJzb3IgcG9zaXRpb24gYW5kIHNpemUgYXJlIHJlc3RvcmVkIHByb3Blcmx5LgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjNiLjAwOApQcm9ibGVtOiAgICBVc2luZyAiOmZpbmFsbHkiIGluIGEgdXNlciBjb21tYW5kIGRvZXNuJ3QgYWx3YXlzIHdvcmsuIChIYXJpCgkgICAgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBEb24ndCBhc3N1bWUgdGhhdCB1c2luZyBnZXRleGxpbmUoKSBtZWFucyB0aGUgY29tbWFuZCB3YXMgdHlwZWQuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuM2IuMDA5IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gdGhlIC1QIGFyZ3VtZW50IGlzIG5vdCBmb3VuZCBpbiBhIHdpbmRvdyB0aXRsZSwgdGhlcmUKCSAgICBpcyBubyBlcnJvciBtZXNzYWdlLgpTb2x1dGlvbjogICBXaGVuIHRoZSB3aW5kb3cgY2FuJ3QgYmUgZm91bmQgZ2l2ZSBhbiBlcnJvciBtZXNzYWdlIGFuZCBleGl0LgoJICAgIEFsc28gdXNlIHRyeS9leGNlcHQgdG8gY2F0Y2ggZmFpbGluZyB0byBvcGVuIHRoZSBNREkgd2luZG93LgoJICAgIChNaWNoYWVsIFdvb2tleSkKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjNiLjAxMApQcm9ibGVtOiAgICBXaW4zMjogVXNpbmcgdGhlICItRCIgYXJndW1lbnQgYW5kIGV4cGFuZGluZyBhcmd1bWVudHMgbWF5IGNhdXNlIGEKCSAgICBoYW5nLCBiZWNhdXNlIHRoZSB0ZXJtaW5hbCBpc24ndCBpbml0aWFsaXplZCB5ZXQuIChWaW5jZSBOZWdyaSkKU29sdXRpb246ICAgRG9uJ3QgZ28gaW50byBkZWJ1ZyBtb2RlIGJlZm9yZSB0aGUgdGVybWluYWwgaXMgaW5pdGlhbGl6ZWQuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4zYi4wMTEKUHJvYmxlbTogICAgVXNpbmcgQ1RSTC1cIGUgd2hpbGUgb2J0YWluaW5nIGFuIGV4cHJlc3Npb24gYWJvcnRzIHRoZSBjb21tYW5kCgkgICAgbGluZS4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBJbnNlcnQgdGhlIENUUkwtXCBlIGFzIHR5cGVkLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjNiLjAxMiAoYWZ0ZXIgNi4zYi4wMTApClByb2JsZW06ICAgIENhbid0IGNvbXBpbGUgd2l0aCB0aW55IGZlYXR1cmVzLiAoTm9yYmVydCBUcmV0a293c2tpKQpTb2x1dGlvbjogICBBZGQgI2lmZGVmcy4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjNiLjAxMwpQcm9ibGVtOiAgICBMb2FkaW5nIGEgc2Vzc2lvbiBmaWxlIHJlc3VsdHMgaW4gZWRpdGluZyB0aGUgd3JvbmcgZmlsZSBpbiB0aGUKCSAgICBmaXJzdCB3aW5kb3cgd2hlbiB0aGlzIGlzIG5vdCB0aGUgZmlsZSBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiBpbgoJICAgIHRoZSBhcmd1bWVudCBsaXN0LiAoUm9iZXJ0IFdlYmIpClNvbHV0aW9uOiAgIENoZWNrIHdfYXJnX2lkeF9pbnZhbGlkIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGVkaXQgYSBmaWxlLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjNiLjAxNApQcm9ibGVtOiAgICAiOnJ1bnRpbWUhIGZvbyoudmltIiBtYXkgdXNpbmcgZnJlZWQgbWVtb3J5IHdoZW4gYSBzb3VyY2VkIHNjcmlwdAoJICAgIGNoYW5nZXMgdGhlIHZhbHVlIG9mICdydW50aW1lcGF0aCcuClNvbHV0aW9uOiAgIE1ha2UgYSBjb3B5IG9mICdydW50aW1lcGF0aCcgd2hlbiBsb29waW5nIG92ZXIgdGhlIG1hdGNoZXMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuM2IuMDE1ClByb2JsZW06ICAgIEdldCBsYWxsb2MoMCkgZXJyb3Igd2hlbiB1c2luZyAicCIgaW4gVmlzdWFsIG1vZGUgd2hpbGUKCSAgICAnY2xpcGJvYXJkJyBjb250YWlucyAiYXV0b3NlbGVjdCx1bm5hbWVkIi4gKE1hcmsgV2Fnb25uZXIpClNvbHV0aW9uOiAgIEF2b2lkIGFsbG9jYXRpbmcgemVybyBieXRlcy4gIE9idGFpbiB0aGUgY2xpcGJvYXJkIHdoZW4gbmVjZXNzYXJ5LgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4zYi4wMTYKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzIHVzZWQgIngiIGRvZXNuJ3QgZGVsZXRlIHRoZSBsYXN0IGNoYXJhY3RlcgoJICAgIG9mIGEgbGluZSB0aGF0IGhhcyBhcyBtYW55IGNoYXJhY3RlcnMgYXMgJ2NvbHVtbnMnLiAoWWFrb3YgTGVybmVyKQpTb2x1dGlvbjogICBXaGVuIHRoZSBjdXJzb3IgaXNuJ3QgbW92ZWQgbGV0IG9uZXJpZ2h0KCkgcmV0dXJuIEZBSUwuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4zYi4wMTcKUHJvYmxlbTogICAgV2luMzI6ICJ2aW0gLS1yZW1vdGUtd2FpdCIgZG9lc24ndCBleGl0IHdoZW4gdGhlIHNlcnZlciBmaW5pc2hlZAoJICAgIGVkaXRpbmcgdGhlIGZpbGUuIChEYXZpZCBGaXNoYnVybikKU29sdXRpb246ICAgSW4gdGhlIHJyaGVscGVyIHBsdWdpbiBjaGFuZ2UgYmFja3NsYXNoZXMgdG8gZm9yd2FyZCBzbGFzaGVzIGFuZAoJICAgIGVzY2FwZSBzcGVjaWFsIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vcnJoZWxwZXIudmltCgpQYXRjaCA2LjNiLjAxOApQcm9ibGVtOiAgICBUaGUgbGlzdCBvZiBoZWxwIGZpbGVzIGluIHRoZSAibG9jYWwgYWRkaXRpb25zIiB0YWJsZSBkb2Vzbid0CgkgICAgcmVjb2duaXplIHV0Zi04IGVuY29kaW5nLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpTb2x1dGlvbjogICBSZWNvZ25pemUgdXRmLTggY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjNiLjAxOQpQcm9ibGVtOiAgICBXaGVuICRWSU1SVU5USU1FIGlzIG5vdCBhIGZ1bGwgcGF0aCBuYW1lIHRoZSAibG9jYWwgYWRkaXRpb25zIgoJICAgIHRhYmxlIGxpc3RzIGFsbCB0aGUgaGVscCBmaWxlcy4KU29sdXRpb246ICAgVXNlIGZ1bGxwYXRoY21wKCkgaW5zdGVhZCBvZiBmbmFtZWNtcCgpIHRvIGNvbXBhcmUgdGhlIGRpcmVjdG9yeQoJICAgIG5hbWVzLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuM2IuMDIwClByb2JsZW06ICAgIFdoZW4gdXNpbmcgQ1RSTC1eIHdoZW4gZW50ZXJpbmcgYSBzZWFyY2ggc3RyaW5nLCB0aGUgaXRlbSBpbiB0aGUKCSAgICBzdGF0dXNsaW5lIHRoYXQgaW5kaWNhdGVzIHRoZSBrZXltYXAgaXMgbm90IHVwZGF0ZWQuIChJbHlhCgkgICAgRG9nb2xhemt5KQpTb2x1dGlvbjogICBNYXJrIHRoZSBzdGF0dXNsaW5lcyBmb3IgdXBkYXRpbmcuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuM2IuMDIxClByb2JsZW06ICAgIFRoZSBzd2FwZmlsZSBpcyBub3QgcmVhZGFibGUgZm9yIG90aGVycywgdGhlIEFUVEVOVElPTiBwcm9tcHQgZG9lcwoJICAgIG5vdCBzaG93IGFsbCBpbmZvIHdoZW4gc29tZW9uZSBlbHNlIGlzIGVkaXRpbmcgdGhlIHNhbWUgZmlsZS4KCSAgICAoTWFyY2VsIFN2aXRhbHNreSkKU29sdXRpb246ICAgVXNlIHRoZSBwcm90ZWN0aW9uIG9mIG9yaWdpbmFsIGZpbGUgZm9yIHRoZSBzd2FwZmlsZSBhbmQgc2V0IGl0CgkgICAgYWZ0ZXIgY3JlYXRpbmcgdGhlIHN3YXBmaWxlLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4zYi4wMjIKUHJvYmxlbTogICAgVXNpbmcgIjR2IiB0byBzZWxlY3QgZm91ciB0aW1lcyB0aGUgb2xkIFZpc3VhbCBhcmVhIG1heSBwdXQgdGhlCgkgICAgY3Vyc29yIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBsaW5lLiAoSmVucyBQYXVsdXMpClNvbHV0aW9uOiAgIENvcnJlY3QgdGhlIGN1cnNvciBjb2x1bW4uCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjNiLjAyMwpQcm9ibGVtOiAgICBXaGVuICIzZGlwIiBzdGFydHMgaW4gYW4gZW1wdHkgbGluZSwgd2hpdGUgbGluZXMgYWZ0ZXIgdGhlCgkgICAgbm9uLXdoaXRlIGxpbmVzIGFyZSBub3QgZGVsZXRlZC4gKEplbnMgUGF1bHVzKQpTb2x1dGlvbjogICBJbmNsdWRlIHRoZSB3aGl0ZSBsaW5lcy4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuM2IuMDI0ClByb2JsZW06ICAgICIyZGF3IiBkb2VzIG5vdCBkZWxldGUgbGVhZGluZyB3aGl0ZSBzcGFjZSBsaWtlICJkYXciIGRvZXMuICAoSmVucwoJICAgIFBhdWx1cykKU29sdXRpb246ICAgSW5jbHVkZSB0aGUgd2hpdGUgc3BhY2Ugd2hlbiBhIGNvdW50IGlzIHVzZWQuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjNiLjAyNQpQcm9ibGVtOiAgICBQZXJjZW50YWdlIGluIHJ1bGVyIGlzbid0IHVwZGF0ZWQgd2hlbiBhIGxpbmUgaXMgZGVsZXRlZC4gKEplbnMKCSAgICBQYXVsdXMpClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIGNoYW5nZSBpbiBsaW5lIGNvdW50IHdoZW4gZGVjaWRpbmcgdG8gdXBkYXRlIHRoZSBydWxlci4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuM2IuMDI2ClByb2JsZW06ICAgIFdoZW4gc2VsZWN0aW5nICJhYm9ydCIgYXQgdGhlIEFUVEVOVElPTiBwcm9tcHQgZm9yIGEgZmlsZSB0aGF0IGlzCgkgICAgYWxyZWFkeSBiZWluZyBlZGl0ZWQgVmltIGNyYXNoZXMuClNvbHV0aW9uOiAgIERvbid0IGFib3J0IGNyZWF0aW5nIGEgbmV3IGJ1ZmZlciB3aGVuIHdlIHJlYWxseSBuZWVkIGl0LgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjNiLjAyNwpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiBlbmFibGluZyB0aGUgbWVudSBpbiBhIG1heGltaXplZCB3aW5kb3csIFZpbSB1c2VzIG1vcmUKCSAgICBsaW5lcyB0aGFuIHdoYXQgaXMgcm9vbSBmb3IuIChTaGl6aHUgUGFuKQpTb2x1dGlvbjogICBXaGVuIGRlY2lkaW5nIHRvIGNhbGwgc2hlbGxfcmVzaXplZCgpLCBhbHNvIGNvbXBhcmUgdGhlIHRleHQgYXJlYQoJICAgIHNpemUgd2l0aCBSb3dzIGFuZCBDb2x1bW5zLCBub3QganVzdCB3aXRoIHNjcmVlbl9Sb3dzIGFuZAoJICAgIHNjcmVlbl9Db2x1bW5zLgpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4zYi4wMjgKUHJvYmxlbTogICAgV2hlbiBpbiBkaWZmIG1vZGUsIHNldHRpbmcgJ3JpZ2h0bGVmdCcgY2F1c2VzIGEgY3Jhc2guIChFZGRpbmUpClNvbHV0aW9uOiAgIENoZWNrIGZvciBsYXN0IGNvbHVtbiBkaWZmZXJlbnRseSB3aGVuICdyaWdodGxlZnQnIGlzIHNldC4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuM2IuMDI5ClByb2JsZW06ICAgIFdpbjMyOiB3YXJuaW5nIGZvciB1bmluaXRpYWxpemVkIHZhcmlhYmxlLgpTb2x1dGlvbjogICBJbml0aWFsaXplIHRvIHplcm8uCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuM2IuMDMwClByb2JsZW06ICAgIEFmdGVyIFZpc3VhbGx5IHNlbGVjdGluZyBmb3VyIGNoYXJhY3RlcnMsIGNoYW5naW5nIGl0IHRvIG90aGVyCgkgICAgdGV4dCwgVmlzdWFsbHkgc2VsZWN0aW5nIGFuZCB5YW5raW5nIHR3byBjaGFyYWN0ZXJzOiAiLiIgY2hhbmdlcwoJICAgIGZvdXIgY2hhcmFjdGVycywgYW5vdGhlciAiLiIgY2hhbmdlcyB0d28gY2hhcmFjdGVycy4gKFJvYmVydCBXZWJiKQpTb2x1dGlvbjogICBEb24ndCBzdG9yZSB0aGUgc2l6ZSBvZiB0aGUgVmlzdWFsIGFyZWEgd2hlbiByZWRvIGlzIGFjdGl2ZS4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpWRVJTSU9OIDYuNAkJCQkJCSp2ZXJzaW9uLTYuNCoKClRoaXMgc2VjdGlvbiBpcyBhYm91dCBpbXByb3ZlbWVudHMgbWFkZSBiZXR3ZWVuIHZlcnNpb24gNi4zIGFuZCA2LjQuCgpUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLiAgVGhlcmUgYXJlIGFsc28gYSBmZXcgbmV3IGZlYXR1cmVzLiAgVGhlIG1ham9yCm51bWJlciBvZiBuZXcgaXRlbXMgaXMgaW4gdGhlIHJ1bnRpbWUgZmlsZXMgYW5kIHRyYW5zbGF0aW9ucy4KClRoZSBiaWcgTVMtV2luZG93cyB2ZXJzaW9uIG5vdyB1c2VzOgoJUnVieSB2ZXJzaW9uIDEuOC4zCglQZXJsIHZlcnNpb24gNS44LjcKCVB5dGhvbiB2ZXJzaW9uIDIuNC4yCgoKQ2hhbmdlZAkJCQkJCQkqY2hhbmdlZC02LjQqCi0tLS0tLS0KClJlbW92ZWQgcnVudGltZS90b29scy90Y2x0YWdzLCBFeHViZXJhbnQgY3RhZ3MgZG9lcyBpdCBiZXR0ZXIuCgoKQWRkZWQJCQkJCQkJKmFkZGVkLTYuNCoKLS0tLS0KCkFsc2Fjb25mIHN5bnRheCBmaWxlIChOaWtvbGFpIFdlaWJ1bGwpCkVydWJ5IHN5bnRheCwgaW5kZW50LCBjb21waWxlciBhbmQgZnRwbHVnaW4gZmlsZSAoRG91ZyBLZWFybnMpCkVzdGVyZWwgc3ludGF4IGZpbGUgKE1hdXJpemlvIFRyYW5jaGVybykKTWF0aGVtYXRpY2EgaW5kZW50IGZpbGUgKFN0ZXZlIExheWxhbmQpCk5ldHJjIHN5bnRheCBmaWxlIChOaWtvbGFpIFdlaWJ1bGwpClBIUCBjb21waWxlciBmaWxlIChEb3VnIEtlYXJucykKUGFzY2FsIGluZGVudCBmaWxlIChOZWlsIENhcnRlcikKUHJlc2NyaWJlIHN5bnRheCBmaWxlIChLbGF1cyBNdXRoKQpSdWJ5dW5pdCBjb21waWxlciBmaWxlIChEb3VnIEtlYXJucykKU01UUHJjIHN5bnRheCBmaWxlIChLb3JuZWwgS2llbGN6ZXdza2kpClN1ZG9lcnMgc3ludGF4IGZpbGUgKE5pa29sYWkgV2VpYnVsbCkKVFBQIHN5bnRheCBmaWxlIChHZXJmcmllZCBGdWNocykKVkhETCBmdHBsdWdpbiBmaWxlIChSLiBTaGFua2FyKQpWZXJpbG9nLUFNUyBzeW50YXggZmlsZSAoUy4gTXlsZXMgUHJhdGhlcikKCkJ1bGdhcmlhbiBrZXltYXAgKEFsYmVydG8gTWFyZGVnYW4pCkNhbmFkaWFuIGtleW1hcCAoRXJpYyBKb2FuaXMpCgpIdW5nYXJpYW4gbWVudSB0cmFuc2xhdGlvbnMgaW4gVVRGLTggKEthbnRyYSBHZXJnZWx5KQpVa3JhaW5pYW4gbWVudSB0cmFuc2xhdGlvbnMgKEJvaGRhbiBWbGFzeXVrKQoKSXJpc2ggbWVzc2FnZSB0cmFuc2xhdGlvbnMgKEtldmluIFBhdHJpY2sgU2Nhbm5lbGwpCgpDb25maWd1cmUgYWxzbyBjaGVja3MgZm9yIHRjbHNoOC40LgoKCkZpeGVkCQkJCQkJCSpmaXhlZC02LjQqCi0tLS0tCgoiZEZ4ZDsiIGRlbGV0ZWQgdGhlIGNoYXJhY3RlciB1bmRlciB0aGUgY3Vyc29yLCAiZDsiIGRpZG4ndCByZW1lbWJlciB0aGUKZXhjbHVzaXZlbmVzcyBvZiB0aGUgbW90aW9uLgoKV2hlbiB1c2luZyAic2V0IGxhc3RzdGF0dXM9MiBjbWRoZWlnaHQ9MiIgaW4gdGhlIC5ndmltcmMgeW91IG1heSBvbmx5IGdldCBvbmUKbGluZSBmb3IgdGhlIGNtZGxpbmUuIChDaHJpc3RpYW4gUm9iaW5zb24pICBJbnZva2UgY29tbWFuZF9oZWlnaHQoKSBhZnRlciB0aGUKR1VJIGhhcyBzdGFydGVkIHVwLgoKR2NjIHdvdWxkIHdhcm4gImRlcmVmZXJlbmNpbmcgdHlwZS1wdW5uZWQgcG9pbnRlciB3aWxsIGJyZWFrIHN0cmljdCAtYWxpYXNpbmcKcnVsZXMiLiAgQXZvaWQgdXNpbmcgdHlwZWNhc3RzIGZvciB2YXJpYWJsZSBwb2ludGVycy4KCkdjYyAzLnggaW50ZXJwcmV0cyB0aGUgLU1NIGFyZ3VtZW50IGRpZmZlcmVudGx5LiAgQ2hhbmdlICItSSAvcGF0aCIgdG8KIi1pc3lzdGVtIC9wYXRoIiBmb3IgIm1ha2UgZGVwZW5kIi4KCgpQYXRjaCA2LjMuMDAxClByb2JsZW06ICAgICI6YnJvd3NlIHNwbGl0IiBnaXZlcyB0aGUgZmlsZSBzZWxlY3Rpb24gZGlhbG9nIHR3aWNlLiAoR29yZG9uCgkgICAgQmF6ZWxleSkgIFNhbWUgcHJvYmxlbSBmb3IgIjpicm93c2UgZGlmZnBhdGNoIi4KU29sdXRpb246ICAgUmVzZXQgY21kbW9kLmJyb3dzZSBiZWZvcmUgY2FsbGluZyBkb19lY21kKCkuCkZpbGVzOgkgICAgc3JjL2RpZmYuYywgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMy4wMDIKUHJvYmxlbTogICAgV2hlbiB1c2luZyB0cmFuc2xhdGVkIGhlbHAgZmlsZXMgd2l0aCBub24tQVNDSUkgbGF0aW4xIGNoYXJhY3RlcnMKCSAgICBpbiB0aGUgZmlyc3QgbGluZSB0aGUgdXRmLTggZGV0ZWN0aW9uIGlzIHdyb25nLgpTb2x1dGlvbjogICBQcm9wZXJseSBkZXRlY3QgdXRmLTggY2hhcmFjdGVycy4gIFdoZW4gYSBtaXggb2YgZW5jb2RpbmdzIGlzCgkgICAgZGV0ZWN0ZWQgY29udGludWUgd2l0aCB0aGUgbmV4dCBsYW5ndWFnZSBhbmQgYXZvaWQgYSAibm8gbWF0Y2hlcyIKCSAgICBlcnJvciBiZWNhdXNlIG9mICJnb3RfaW50IiBiZWluZyBzZXQuICBBZGQgdGhlIGRpcmVjdG9yeSBuYW1lIHRvCgkgICAgdGhlIGVycm9yIG1lc3NhZ2UgZm9yIGEgZHVwbGljYXRlIHRhZy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjMuMDAzClByb2JsZW06ICAgIENyYXNoIHdoZW4gdXNpbmcgYSBjb25zb2xlIGRpYWxvZyBhbmQgdGhlIGZpcnN0IGNob2ljZSBkb2VzIG5vdAoJICAgIGhhdmUgYSBkZWZhdWx0IGJ1dHRvbi4gKERhcmluIE9oYXNoaSkKU29sdXRpb246ICAgQWxsb2NhdGUgdHdvIG1vcmUgY2hhcmFjdGVycyBmb3IgdGhlIFtdIGFyb3VuZCB0aGUgY2hhcmFjdGVyIGZvcgoJICAgIHRoZSBkZWZhdWx0IGNob2ljZS4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjMuMDA0ClByb2JsZW06ICAgIFdoZW4gc2VhcmNoaW5nIGZvciBhIGxvbmcgc3RyaW5nICgxNDAgY2hhcnMgaW4gYSA4MCBjb2x1bW4KCSAgICB0ZXJtaW5hbCkgZ2V0IHRocmVlIGhpdC1lbnRlciBwcm9tcHRzLiAoUm9iZXJ0IFdlYmIpClNvbHV0aW9uOiAgIEF2b2lkIHRoZSBoaXQtZW50ZXIgcHJvbXB0IHdoZW4gZ2l2aW5nIHRoZSBtZXNzYWdlIGZvciB3cmFwcGluZwoJICAgIGFyb3VuZCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuICBEb24ndCBnaXZlIHRoYXQgbWVzc2FnZSBhZ2FpbiB3aGVuCgkgICAgdGhlIHN0cmluZyB3YXMgbm90IGZvdW5kLgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMsIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4zLjAwNQpQcm9ibGVtOiAgICBDcmFzaCB3aGVuIHNlYXJjaGluZyBmb3IgYSBwYXR0ZXJuIHdpdGggYSBjaGFyYWN0ZXIgb2Zmc2V0IGFuZAoJICAgIHN0YXJ0aW5nIGluIGEgY2xvc2VkIGZvbGQuIChGcmFuayBCdXRsZXIpClNvbHV0aW9uOiAgIENoZWNrIGZvciB0aGUgY29sdW1uIHRvIGJlIHBhc3QgdGhlIGVuZCBvZiB0aGUgbGluZS4gIEFsc28gZml4CgkgICAgdGhhdCBhIHBhdHRlcm4gd2l0aCBhIGNoYXJhY3RlciBvZmZzZXQgcmVsYXRpdmUgdG8gdGhlIGVuZCBpc24ndAoJICAgIHJlYWQgYmFjayBmcm9tIHRoZSB2aW1pbmZvIHByb3Blcmx5LgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4zLjAwNgpQcm9ibGVtOiAgICAiOmJyZWFrYWRkIGZpbGUgKmZvbyIgcHJlcGVuZHMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHRvIHRoZSBmaWxlCgkgICAgcGF0dGVybi4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBLZWVwIHRoZSBwYXR0ZXJuIGFzLWlzLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjMuMDA3ClByb2JsZW06ICAgIFdoZW4gdGhlcmUgaXMgYSBidWZmZXIgd2l0aCAnYnVmdHlwZScgc2V0IHRvICJub2ZpbGUiIGFuZCB1c2luZyBhCgkgICAgIjpjZCIgY29tbWFuZCwgdGhlIHN3YXAgZmlsZSBpcyBub3QgZGVsZXRlZCB3aGVuIGV4aXRpbmcuClNvbHV0aW9uOiAgIFVzZSB0aGUgZnVsbCBwYXRoIG9mIHRoZSBzd2FwIGZpbGUgYWxzbyBmb3IgIm5vZmlsZSIgYnVmZmVycy4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMy4wMDgKUHJvYmxlbTogICAgQ29tcGlsaW5nIGZhaWxzIHVuZGVyIE9TLzIuClNvbHV0aW9uOiAgIEluY2x1ZGUgImVfc2NyZWVubW9kZSIgYWxzbyBmb3IgT1MvMi4gKERhdmlkIFNhbmRlcnMpCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaAoKUGF0Y2ggNi4zLjAwOSAoYWZ0ZXIgNi4zLjAwNikKUHJvYmxlbTogICAgIjpicmVha2FkZCBmaWxlIC9wYXRoL2Zvby52aW0iIGRvZXMgbm90IG1hdGNoIHdoZW4gYSBzeW1ib2xpYyBsaW5rCgkgICAgaXMgaW52b2x2ZWQuICAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgRG8gZXhwYW5kIHRoZSBwYXR0ZXJuIHdoZW4gaXQgZG9lcyBub3Qgc3RhcnQgd2l0aCAiKiIuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvcmVwZWF0LnR4dCwgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMy4wMTAKUHJvYmxlbTogICAgV2hlbiB3cml0aW5nIHRvIGEgbmFtZWQgcGlwZSB0aGVyZSBpcyBhbiBlcnJvciBmb3IgZnN5bmMoKQoJICAgIGZhaWxpbmcuClNvbHV0aW9uOiAgIElnbm9yZSB0aGUgZnN5bmMoKSBlcnJvciBmb3IgZGV2aWNlcy4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMy4wMTEKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiB0aGUgY29tcGxldGlvbiBmdW5jdGlvbiBvZiBhIHVzZXItY29tbWFuZCB1c2VzIGEKCSAgICAibm9ybWFsIDpjbWQiIGNvbW1hbmQuICAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIFNhdmUgdGhlIGNvbW1hbmQgbGluZSB3aGVuIGludm9raW5nIHRoZSBjb21wbGV0aW9uIGZ1bmN0aW9uLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjMuMDEyClByb2JsZW06ICAgIEludGVybmFsIGxhbGxvYygwKSBlcnJvciB3aGVuIHVzaW5nIGEgY29tcGxpY2F0ZWQgbXVsdGktbGluZQoJICAgIHBhdHRlcm4gaW4gYSBzdWJzdGl0dXRlIGNvbW1hbmQuIChMdWMgSGVybWl0dGUpClNvbHV0aW9uOiAgIEF2b2lkIGdvaW5nIHBhc3QgdGhlIGVuZCBvZiBhIGxpbmUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4zLjAxMwpQcm9ibGVtOiAgICBDcmFzaCB3aGVuIGVkaXRpbmcgYSBjb21tYW5kIGxpbmUgYW5kIHR5cGluZyBDVFJMLVIgPSB0byBldmFsdWF0ZQoJICAgIGEgZnVuY3Rpb24gdGhhdCB1c2VzICJub3JtYWwgOmNtZCIuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgU2F2ZSBhbmQgcmVzdG9yZSB0aGUgY29tbWFuZCBsaW5lIHdoZW4gZXZhbHVhdGluZyBhbiBleHByZXNzaW9uCgkgICAgZm9yIENUUkwtUiA9LgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvb3BzLmMsIHNyYy9wcm90by9leF9nZXRsbi5wcm8sCgkgICAgc3JjL3Byb3RvL29wcy5wcm8KClBhdGNoIDYuMy4wMTQKUHJvYmxlbTogICAgV2hlbiB1c2luZyBDaGluZXNlIG9yIFRhaXdhbmVzZSB0aGUgZGVmYXVsdCBmb3IgJ2hlbHBsYW5nJyBpcwoJICAgIHdyb25nLiAoU2ltb24gTGlhbmcpClNvbHV0aW9uOiAgIFVzZSB0aGUgcGFydCBvZiB0aGUgbG9jYWxlIG5hbWUgYWZ0ZXIgInpoXyIuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjMuMDE1ClByb2JsZW06ICAgIFRoZSBzdHJpbmcgdGhhdCB3aW5yZXN0Y21kKCkgcmV0dXJucyBtYXkgZW5kIGluIGdhcmJhZ2UuClNvbHV0aW9uOiAgIE5VTC10ZXJtaW5hdGUgdGhlIHN0cmluZy4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMy4wMTYKUHJvYmxlbTogICAgVGhlIGRlZmF1bHQgdmFsdWUgZm9yICdkZWZpbmUnIGhhcyAiXHMiIGJlZm9yZSAnIycuClNvbHV0aW9uOiAgIEFkZCBhIHN0YXIgYWZ0ZXIgIlxzIi4gKEhlcmN1bGFubyBkZSBMaW1hIEVpbmxvZnQgTmV0bykKRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMy4wMTcKUHJvYmxlbTogICAgIjh6eiIgbWF5IGxlYXZlIHRoZSBjdXJzb3IgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGxpbmUuIChOaWtvCgkgICAgTWFhdGplcykKU29sdXRpb246ICAgQ29ycmVjdCB0aGUgY3Vyc29yIGNvbHVtbiBhZnRlciBtb3ZpbmcgdG8gYW5vdGhlciBsaW5lLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4zLjAxOApQcm9ibGVtOiAgICAiOjBhcmdhZGQgemVybyIgYWRkZWQgdGhlIGFyZ3VtZW50IGFmdGVyIHRoZSBmaXJzdCBvbmUsIGluc3RlYWQgb2YKCSAgICBiZWZvcmUgaXQuIChBZHJpIFZlcmhvZWYpClNvbHV0aW9uOiAgIEFjY2VwdCBhIHplcm8gcmFuZ2UgZm9yICI6YXJnYWRkIi4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5oCgpQYXRjaCA2LjMuMDE5ClByb2JsZW06ICAgIENyYXNoIGluIHN0YXJ0dXAgZm9yIGRlYnVnIHZlcnNpb24uIChEYXZpZCBSZW5uYWxzKQpTb2x1dGlvbjogICBNb3ZlIHRoZSBjYWxsIHRvIG5iZGVidWdfd2FpdCgpIHRvIGFmdGVyIGFsbG9jYXRpbmcgTmFtZUJ1ZmYuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4zLjAyMApQcm9ibGVtOiAgICBXaGVuICdlbmNvZGluZycgaXMgInV0Zi04IiBhbmQgJ2RlbGNvbWJpbmUnIGlzIHNldCwgImR3IiBkb2VzIG5vdAoJICAgIGRlbGV0ZSBhIHdvcmQgYnV0IG9ubHkgYSBjb21iaW5pbmcgY2hhcmFjdGVyIG9mIHRoZSBmaXJzdAoJICAgIGNoYXJhY3RlciwgaWYgdGhlcmUgaXMgb25lLiAoUmFwaGFlbCBGaW5rZWwpClNvbHV0aW9uOiAgIENvcnJlY3RseSBjaGVjayB0aGF0IG9uZSBjaGFyYWN0ZXIgaXMgYmVpbmcgZGVsZXRlZC4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4zLjAyMQpQcm9ibGVtOiAgICBXaGVuIHRoZSBsYXN0IGNoYXJhY3RlciBvZiBhIGZpbGUgbmFtZSBpcyBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyCgkgICAgYW5kIHRoZSBsYXN0IGJ5dGUgaXMgYSBwYXRoIHNlcGFyYXRvciwgdGhlIGZpbGUgY2Fubm90IGJlIGVkaXRlZC4KU29sdXRpb246ICAgQ2hlY2sgZm9yIHRoZSBsYXN0IGJ5dGUgdG8gYmUgcGFydCBvZiBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLgoJICAgIChUYXJvIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjMuMDIyIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgZmlsZSBuYW1lIGlzIGEgbXVsdGktYnl0ZQoJICAgIGNoYXJhY3RlciBhbmQgdGhlIGxhc3QgYnl0ZSBpcyBhIHBhdGggc2VwYXJhdG9yLCB0aGUgZmlsZSBjYW5ub3QKCSAgICBiZSB3cml0dGVuLiAgQSB0cmFpbCBieXRlIHRoYXQgaXMgYSBzcGFjZSBtYWtlcyB0aGF0IGEgZmlsZSBjYW5ub3QKCSAgICBiZSBvcGVuZWQgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgpTb2x1dGlvbjogICBSZWNvZ25pemUgZG91YmxlLWJ5dGUgY2hhcmFjdGVycyB3aGVuIHBhcnNpbmcgdGhlIGNvbW1hbmQgbGluZS4KCSAgICBJbiBtY2hfc3RhdCgpIGNoZWNrIGZvciB0aGUgbGFzdCBieXRlIHRvIGJlIHBhcnQgb2YgYSBtdWx0aS1ieXRlCgkgICAgY2hhcmFjdGVyLiAgKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jLCBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4zLjAyMwpQcm9ibGVtOiAgICBXaGVuIHRoZSAidG8iIHBhcnQgb2YgYSBtYXBwaW5nIHN0YXJ0cyB3aXRoIGl0cyAiZnJvbSIgcGFydCwKCSAgICBhYmJyZXZpYXRpb25zIGZvciB0aGUgc2FtZSBjaGFyYWN0ZXJzIGlzIG5vdCBwb3NzaWJsZS4gIEZvcgoJICAgIGV4YW1wbGUsIHdoZW4gPFNwYWNlPiBpcyBtYXBwZWQgdG8gc29tZXRoaW5nIHRoYXQgc3RhcnRzIHdpdGggYQoJICAgIHNwYWNlLCB0eXBpbmcgPFNwYWNlPiBkb2VzIG5vdCBleHBhbmQgYWJicmV2aWF0aW9ucy4KU29sdXRpb246ICAgT25seSBkaXNhYmxlIGV4cGFuZGluZyBhYmJyZXZpYXRpb25zIHdoZW4gYSBtYXBwaW5nIGlzIG5vdAoJICAgIHJlbWFwcGVkLCBkb24ndCBkaXNhYmxlIGl0IHdoZW4gdGhlIFJIUyBvZiBhIG1hcHBpbmcgc3RhcnRzIHdpdGgKCSAgICB0aGUgTEhTLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4zLjAyNApQcm9ibGVtOiAgICBJbiBhIGZldyBwbGFjZXMgYSBzdHJpbmcgaW4gYWxsb2NhdGVkIG1lbW9yeSBpcyBub3QgdGVybWluYXRlZAoJICAgIHdpdGggYSBOVUwuClNvbHV0aW9uOiAgIEFkZCBnYV9hcHBlbmQoTlVMKSBpbiBzY3JpcHRfZ2V0KCksIGd1aV9kb19maW5kcmVwbCgpIGFuZAoJICAgIHNlcnZlckdldFZpbU5hbWVzKCkuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMsIHNyYy9ndWkuYywgc3JjL2lmX3hjbWRzcnYuYywgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMy4wMjUgKGV4dHJhKQpQcm9ibGVtOiAgICBNaXNzaW5nIE5VTCBmb3IgbGlzdCBvZiBzZXJ2ZXIgbmFtZXMuClNvbHV0aW9uOiAgIEFkZCBnYV9hcHBlbmQoTlVMKSBpbiBzZXJ2ZXJHZXRWaW1OYW1lcygpLgpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjMuMDI2ClByb2JsZW06ICAgIFdoZW4gfi8udmltL2FmdGVyL3N5bnRheC9zeW5jb2xvci52aW0gY29udGFpbnMgYSBjb21tYW5kIHRoYXQKCSAgICByZWxvYWRzIHRoZSBjb2xvcnMgYW4gZW5kbGVzcyBsb29wIGFuZC9vciBhIGNyYXNoIG1heSBvY2N1ci4KU29sdXRpb246ICAgT25seSBmcmVlIHRoZSBvbGQgdmFsdWUgb2YgYW4gb3B0aW9uIHdoZW4gaXQgd2FzIG9yaWdpbmFsbHkKCSAgICBhbGxvY2F0ZWQuICBMaW1pdCByZWN1cnNpdmVuZXNzIG9mIGluaXRfaGlnaGxpZ2h0KCkgdG8gNSBsZXZlbHMuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jLCBzcmMvc3ludGF4LmMKClBhdGNoIDYuMy4wMjcKUHJvYmxlbTogICAgVk1TOiBXcml0aW5nIGEgZmlsZSBtYXkgaW5zZXJ0IGV4dHJhIENSIGNoYXJhY3RlcnMuICBOb3QgYWxsCgkgICAgdGVybWluYWxzIGFyZSByZWNvZ25pemVkIGNvcnJlY3RseS4gIFZ0MzIwIGRvZXNuJ3Qgc3VwcG9ydCBjb2xvcnMuCgkgICAgRW52aXJvbm1lbnQgdmFyaWFibGVzIGFyZSBub3QgZXhwYW5kZWQgY29ycmVjdGx5LgpTb2x1dGlvbjogICBVc2UgYW5vdGhlciBtZXRob2QgdG8gd3JpdGUgZmlsZXMuICBBZGQgdnQzMjAgdGVybWNhcCBjb2RlcyBmb3IKCSAgICBjb2xvcnMuICAoWm9sdGFuIEFycGFkZmZ5KQpGaWxlczoJICAgIHNyYy9maWxlaW8uYywgc3JjL21pc2MxLmMsIHNyYy9vc191bml4LmMsIHNyYy9zdHJ1Y3RzLmgsCgkgICAgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4zLjAyOApQcm9ibGVtOiAgICBXaGVuIGFwcGVuZGluZyB0byBhIGZpbGUgdGhlIEJPTSBtYXJrZXIgbWF5IGJlIHdyaXR0ZW4uICAoQWxleAoJICAgIEpha3VzaGV2KQpTb2x1dGlvbjogICBEbyBub3Qgd3JpdGUgdGhlIEJPTSBtYXJrZXIgd2hlbiBhcHBlbmRpbmcuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjMuMDI5ClByb2JsZW06ICAgIENyYXNoIHdoZW4gaW5zZXJ0aW5nIGEgbGluZSBicmVhay4gKFdhbHRlciBCcmlzY29lKQpTb2x1dGlvbjogICBJbiB0aGUgc3ludGF4IGhpZ2hsaWdodGluZyBjb2RlLCBkb24ndCB1c2UgYW4gb2xkIHN0YXRlIGFmdGVyIGEKCSAgICBjaGFuZ2Ugd2FzIG1hZGUsIGN1cnJlbnRfY29sIG1heSBiZSBwYXN0IHRoZSBlbmQgb2YgdGhlIGxpbmUuCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjMuMDMwClByb2JsZW06ICAgIEdUSyAyOiBDcmFzaCB3aGVuIHNvdXJjaW5nIGEgc2NyaXB0IHRoYXQgZGVsZXRlcyB0aGUgbWVudXMsIHNldHMKCSAgICAnZW5jb2RpbmcnIHRvICJ1dGYtOCIgYW5kIGxvYWRzIHRoZSBtZW51cyBhZ2Fpbi4gIEdUSyBlcnJvcgoJICAgIG1lc3NhZ2Ugd2hlbiB0b29sdGlwIHRleHQgaXMgaW4gYSB3cm9uZyBlbmNvZGluZy4KU29sdXRpb246ICAgRG9uJ3QgY29weSBjaGFyYWN0ZXJzIGZyb20gdGhlIG9sZCBzY3JlZW4gdG8gdGhlIG5ldyBzY3JlZW4gd2hlbgoJICAgIHN3aXRjaGluZyAnZW5jb2RpbmcnIHRvIHV0Zi04LCB0aGV5IG1heSBiZSBpbnZhbGlkLiAgT25seSBzZXQgdGhlCgkgICAgdG9vbHRpcCB3aGVuIGl0IGlzIHZhbGlkIHV0Zi04LgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMsIHNyYy9tYnl0ZS5jLCBzcmMvcHJvdG8vbWJ5dGUucHJvLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMy4wMzEKUHJvYmxlbTogICAgV2hlbiBlbnRlcmluZyBhIG1hcHBpbmcgYW5kIHByZXNzaW5nIFRhYiBoYWxmd2F5IHRoZSBjb21tYW5kIGxpbmUKCSAgICBpc24ndCByZWRyYXduIHByb3Blcmx5LiAoQWRyaSBWZXJob2VmKQpTb2x1dGlvbjogICBSZXBvc2l0aW9uIHRoZSBjdXJzb3IgYWZ0ZXIgZHJhd2luZyBvdmVyIHRoZSAiLi4uIiBvZiB0aGUKCSAgICBjb21wbGV0aW9uIGF0dGVtcHQuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMy4wMzIKUHJvYmxlbTogICAgVXNpbmcgUHl0aG9uIDIuMyB3aXRoIHRocmVhZHMgZG9lc24ndCB3b3JrIHByb3Blcmx5LgpTb2x1dGlvbjogICBSZWxlYXNlIHRoZSBsb2NrIGFmdGVyIGluaXRpYWxpemF0aW9uLgpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4zLjAzMwpQcm9ibGVtOiAgICBXaGVuIGEgbWFwcGluZyBlbmRzIGluIGEgTm9ybWFsIG1vZGUgY29tbWFuZCBvZiBtb3JlIHRoYW4gb25lCgkgICAgY2hhcmFjdGVyIFZpbSBkb2Vzbid0IHJldHVybiB0byBJbnNlcnQgbW9kZS4KU29sdXRpb246ICAgQ2hlY2sgdGhhdCB0aGUgbWFwcGluZyBoYXMgZW5kZWQgYWZ0ZXIgb2J0YWluaW5nIGFsbCBjaGFyYWN0ZXJzIG9mCgkgICAgdGhlIE5vcm1hbCBtb2RlIGNvbW1hbmQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjMuMDM0ClByb2JsZW06ICAgIFZNUzogY3Jhc2ggd2hlbiB1c2luZyAiOmhlbHAiLgpTb2x1dGlvbjogICBBdm9pZCB1c2luZyAidGFncy0/PyIsIHNvbWUgT3BlbiBWTVMgc3lzdGVtcyBjYW4ndCBoYW5kbGUgdGhlICI/IgoJICAgIHdpbGRjYXJkLiAgKFpvbHRhbiBBcnBhZGZmeSkKRmlsZXM6CSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMy4wMzUgKGV4dHJhKQpQcm9ibGVtOiAgICBSSVNDIE9TOiBDb21waWxlIGVycm9ycy4KU29sdXRpb246ICAgQ2hhbmdlIGVfc2NyZW5tb2RlIHRvIGVfc2NyZWVubW9kZS4gIENoYW5nZSB0aGUgd2F5CgkgICAgX19yaXNjb3NpZnlfY29udHJvbCBpcyBzZXQuICBJbXByb3ZlIHRoZSBtYWtlZmlsZS4gIChBbmR5IFdpbmdhdGUpCkZpbGVzOgkgICAgc3JjL29zX3Jpc2Nvcy5jLCBzcmMvc2VhcmNoLmMsIHNyYy9NYWtlX3JvLm1hawoKUGF0Y2ggNi4zLjAzNgpQcm9ibGVtOiAgICBtbF9nZXQgZXJyb3JzIHdoZW4gdGhlIHdob2xlIGZpbGUgaXMgYSBmb2xkLCBzd2l0Y2hpbmcKCSAgICAnZm9sZG1ldGhvZCcgYW5kIGRvaW5nICJ6aiIuIChDaHJpc3RpYW4gSi4gUm9iaW5zb24pIFdhcyBub3QKCSAgICBkZWxldGluZyB0aGUgZm9sZCBidXQgY3JlYXRpbmcgYSBmb2xkIHdpdGggemVybyBsaW5lcy4KU29sdXRpb246ICAgRGVsZXRlIHRoZSBmb2xkIHByb3Blcmx5LgpGaWxlczoJICAgIHNyYy9mb2xkLmMKClBhdGNoIDYuMy4wMzcgKGFmdGVyIDYuMy4wMzIpClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIHVudXNlZCB2YXJpYWJsZS4KU29sdXRpb246ICAgQ2hhbmdlIHRoZSAjaWZkZWZzIGZvciB0aGUgc2F2ZWQgdGhyZWFkIHN0dWZmLgpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4zLjAzOCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHRoZSAiZmlsZSBjaGFuZ2VkIiBkaWFsb2cgcG9wcyB1cCBhZnRlciBhIGNsaWNrIHRoYXQKCSAgICBnaXZlcyBndmltIGZvY3VzIGFuZCBub3QgbW92aW5nIHRoZSBtb3VzZSBhZnRlciB0aGF0LCB0aGUgZWZmZWN0CgkgICAgb2YgdGhlIGNsaWNrIG1heSBvY2N1ciB3aGVuIG1vdmluZyB0aGUgbW91c2UgbGF0ZXIuIChLZW4gQ2xhcmspCgkgICAgSGFwcGVuZWQgYmVjYXVzZSB0aGUgcmVsZWFzZSBldmVudCB3YXMgbWlzc2VkLgpTb2x1dGlvbjogICBDbGVhciB0aGUgc19idXR0b25fcGVuZGluZyB2YXJpYWJsZSB3aGVuIGFueSBpbnB1dCBpcyByZWNlaXZlZC4KRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjMuMDM5ClByb2JsZW06ICAgIFdoZW4gJ251bWJlcicgaXMgc2V0IGFuZCBpbnNlcnRpbmcgbGluZXMganVzdCBhYm92ZSB0aGUgZmlyc3QKCSAgICBkaXNwbGF5ZWQgbGluZSAoaW4gYW5vdGhlciB3aW5kb3cgb24gdGhlIHNhbWUgYnVmZmVyKSwgdGhlIGxpbmUKCSAgICBudW1iZXJzIGFyZSBub3QgdXBkYXRlZC4gIChIaXRpZXIgU3lsdmFpbikKU29sdXRpb246ICAgV2hlbiAnbnVtYmVyJyBpcyBzZXQgYW5kIGxpbmVzIGFyZSBpbnNlcnRlZC9kZWxldGVkIHJlZHJhdyBhbGwKCSAgICBsaW5lcyBiZWxvdyB0aGUgY2hhbmdlLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4zLjA0MApQcm9ibGVtOiAgICBFcnJvciBoYW5kbGluZyBkb2VzIG5vdCBhbHdheXMgd29yayBwcm9wZXJseSBhbmQgbWF5IGNhdXNlIGEKCSAgICBidWZmZXIgdG8gYmUgbWFya2VkIGFzIGlmIGl0J3Mgdmlld2VkIGluIGEgd2luZG93IHdoaWxlIGl0IGlzbid0LgoJICAgIEFsc28gd2hlbiBzZWxlY3RpbmcgIkFib3J0IiBhdCB0aGUgYXR0ZW50aW9uIHByb21wdC4KU29sdXRpb246ICAgQWRkIGVudGVyX2NsZWFudXAoKSBhbmQgbGVhdmVfY2xlYW51cCgpIGZ1bmN0aW9ucyB0byBtb3ZlCgkgICAgc2F2aW5nL3Jlc3RvcmluZyB0aGluZ3MgZm9yIGVycm9yIGhhbmRsaW5nIHRvIG9uZSBwbGFjZS4KCSAgICBDbGVhciBhIGJ1ZmZlciByZWFkIGVycm9yIHdoZW4gaXQncyB1bmxvYWRlZC4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9leF9kb2NtZC5jLCBzcmMvZXhfZXZhbC5jLAoJICAgIHNyYy9wcm90by9leF9ldmFsLnBybywgc3JjL3N0cnVjdHMuaCwgc3JjL3ZpbS5oCgpQYXRjaCA2LjMuMDQxIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gdGhlIHBhdGggdG8gYSBmaWxlIGhhcyBSdXNzaWFuIGNoYXJhY3RlcnMsICI6Y2QgJTpwOmgiCgkgICAgZG9lc24ndCB3b3JrLiAoVmFsZXJ5IEtvbmRha29mZikKU29sdXRpb246ICAgVXNlIGEgd2lkZSBmdW5jdGlvbiB0byBjaGFuZ2UgZGlyZWN0b3J5LgpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjMuMDQyClByb2JsZW06ICAgIFdoZW4gdGhlcmUgaXMgYSBjbG9zZWQgZm9sZCBhdCB0aGUgdG9wIG9mIHRoZSB3aW5kb3csIENUUkwtWAoJICAgIENUUkwtRSBpbiBJbnNlcnQgbW9kZSByZWR1Y2VzIHRoZSBzaXplIG9mIHRoZSBmb2xkIGluc3RlYWQgb2YKCSAgICBzY3JvbGxpbmcgdGhlIHRleHQgdXAuIChHYXV0YW0pClNvbHV0aW9uOiAgIFNjcm9sbCBvdmVyIHRoZSBjbG9zZWQgZm9sZC4KRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjMuMDQzClByb2JsZW06ICAgICdobHNlYXJjaCcgaGlnaGxpZ2h0aW5nIHNvbWV0aW1lcyBkaXNhcHBlYXJzIHdoZW4gaW5zZXJ0aW5nIHRleHQKCSAgICBpbiBQSFAgY29kZSB3aXRoIHN5bnRheCBoaWdobGlnaHRpbmcuIChNYXJjZWwgU3ZpdGFsc2t5KQpTb2x1dGlvbjogICBEb24ndCB1c2UgcG9pbnRlcnMgdG8gcmVtZW1iZXIgd2hlcmUgYSBtYXRjaCB3YXMgZm91bmQsIHVzZSBhbgoJICAgIGluZGV4LiAgVGhlIHBvaW50ZXJzIG1heSBiZWNvbWUgaW52YWxpZCB3aGVuIHNlYXJjaGluZyBpbiBvdGhlcgoJICAgIGxpbmVzLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4zLjA0NCAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogV2hlbiAnbGluZXNwYWNlJyBpcyBub24temVybyB0aGUgSW5zZXJ0IG1vZGUgY3Vyc29yIGxlYXZlcwoJICAgIHBpeGVscyBiZWhpbmQuIChSaWNoYXJkIFNhbmRpbGFuZHMpClNvbHV0aW9uOiAgIEVyYXNlIHRoZSBjaGFyYWN0ZXIgY2VsbCBiZWZvcmUgZHJhd2luZyB0aGUgdGV4dCB3aGVuIG5lZWRlZC4KRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jCgoKUGF0Y2ggNi4zLjA0NQpQcm9ibGVtOiAgICBVbnVzdWFsIGNoYXJhY3RlcnMgaW4gYW4gb3B0aW9uIHZhbHVlIG1heSBjYXVzZSB1bmV4cGVjdGVkCgkgICAgYmVoYXZpb3IsIGVzcGVjaWFsbHkgZm9yIGEgbW9kZWxpbmUuIChDaWFyYW4gTWNDcmVlc2gpClNvbHV0aW9uOiAgIERvbid0IGFsbG93IHNldHRpbmcgdGVybWNhcCBvcHRpb25zIG9yICdwcmludGRldmljZScgaW4gYQoJICAgIG1vZGVsaW5lLiAgRG9uJ3QgbGlzdCBvcHRpb25zIGZvciAidGVybWNhcCIgYW5kICJhbGwiIGluIGEKCSAgICBtb2RlbGluZS4gIERvbid0IGFsbG93IHVudXN1YWwgY2hhcmFjdGVycyBpbiAnZmlsZXR5cGUnLCAnc3ludGF4JywKCSAgICAnYmFja3VwZXh0JywgJ2tleW1hcCcsICdwYXRjaG1vZGUnIGFuZCAnbGFuZ21lbnUnLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYywgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQKClBhdGNoIDYuMy4wNDYKUHJvYmxlbTogICAgIjpyZWdpc3RlcnMiIGRvZXNuJ3Qgc2hvdyBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgcHJvcGVybHkuCgkgICAgKFZhbGVyeSBLb25kYWtvZmYpClNvbHV0aW9uOiAgIEdldCB0aGUgbGVuZ3RoIG9mIGVhY2ggY2hhcmFjdGVyIGJlZm9yZSBkaXNwbGF5aW5nIGl0LgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4zLjA0NyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyIHdpdGggQm9ybGFuZCBDIDUuNSBvbiBXaW5kb3dzIFhQOiBBIG5ldyBmaWxlIGlzIGNyZWF0ZWQgd2l0aAoJICAgIHJlYWQtb25seSBhdHRyaWJ1dGVzLiAoVG9ueSBNZWNoZWx5bmNrKQpTb2x1dGlvbjogICBEb24ndCB1c2UgdGhlIF93b3BlbigpIGZ1bmN0aW9uIGZvciBCb3JsYW5kLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjMuMDQ4IChleHRyYSkKUHJvYmxlbTogICAgQnVpbGQgcHJvYmxlbXMgd2l0aCBWTVMgb24gSUE2NC4KU29sdXRpb246ICAgQWRkIGRlcGVuZGVuY2llcyB0byB0aGUgYnVpbGQgZmlsZS4gKFpvbHRhbiBBcnBhZGZmeSkKRmlsZXM6CSAgICBzcmMvTWFrZV92bXMubW1zCgpQYXRjaCA2LjMuMDQ5IChhZnRlciA2LjMuMDQ1KQpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5nIGZvciAiY2hhciIgdnMgImNoYXJfdSIgbWl4dXAuIChab2x0YW4gQXJwYWRmZnkpClNvbHV0aW9uOiAgIEFkZCBhIHR5cGVjYXN0LgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4zLjA1MApQcm9ibGVtOiAgICBXaGVuIFNJR0hVUCBpcyByZWNlaXZlZCB3aGlsZSBidXN5IGV4aXRpbmcsIG5vbi1yZWVudHJhbnQKCSAgICBmdW5jdGlvbnMgc3VjaCBhcyBmcmVlKCkgbWF5IGNhdXNlIGEgY3Jhc2guClNvbHV0aW9uOiAgIElnbm9yZSBTSUdIVVAgd2hlbiBleGl0aW5nIGJlY2F1c2Ugb2YgYW4gZXJyb3IuIChTY290dCBBbmRlcnNvbikKRmlsZXM6CSAgICBzcmMvbWlzYzEuYywgc3JjL21haW4uYwoKUGF0Y2ggNi4zLjA1MQpQcm9ibGVtOiAgICBXaGVuICd3aWxkbWVudScgaXMgc2V0IGFuZCBjb21wbGV0ZWQgZmlsZSBuYW1lcyBjb250YWluIG11bHRpLWJ5dGUKCSAgICBjaGFyYWN0ZXJzIFZpbSBtYXkgY3Jhc2guClNvbHV0aW9uOiAgIFJlc2VydmUgcm9vbSBmb3IgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4zLjA1MiAoZXh0cmEpClByb2JsZW06ICAgIFdpbmRvd3MgOTg6IHR5cGVkIGtleXMgdGhhdCBhcmUgbm90IEFTQ0lJIG1heSBub3Qgd29yayBwcm9wZXJseS4KCSAgICBGb3IgZXhhbXBsZSB3aXRoIGEgUnVzc2lhbiBpbnB1dCBtZXRob2QuIChKaXJpIEplemRpbnNreSkKU29sdXRpb246ICAgQXNzdW1lIHRoYXQgdGhlIGNoYXJhY3RlcnMgYXJyaXZlIGluIHRoZSBjdXJyZW50IGNvZGVwYWdlIGluc3RlYWQKCSAgICBvZiBVQ1MtMi4gIFBlcmZvcm0gY29udmVyc2lvbiBiYXNlZCBvbiB0aGF0LgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMy4wNTMKUHJvYmxlbTogICAgV2luMzI6ICI6bG9hZHZpZXciIGNhbm5vdCBmaW5kIGEgZmlsZSB3aXRoIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLgoJICAgIChWYWxlcmllIEtvbmRha29mZikKU29sdXRpb246ICAgVXNlIG1jaF9vcGVuKCkgaW5zdGVhZCBvZiBvcGVuKCkgdG8gb3BlbiB0aGUgZmlsZS4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4zLjA1NApQcm9ibGVtOiAgICBXaGVuICdpbnNlcnRtb2RlJyBpcyBzZXQgPEMtTD40aXh4eDxDLUw+IGhhbmdzIFZpbS4gKEplbnMgUGF1bHVzKQoJICAgIFZpbSBpcyBhY3R1YWxseSBzdGlsbCB3b3JraW5nIGJ1dCByZWRyYXcgaXMgZGlzYWJsZWQuClNvbHV0aW9uOiAgIFdoZW4gc3RvcHBpbmcgSW5zZXJ0IG1vZGUgd2l0aCBDVFJMLUwgZG9uJ3QgcHV0IGFuIEVzYyBpbiB0aGUgcmVkbwoJICAgIGJ1ZmZlciBidXQgYSBDVFJMLUwuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4zLjA1NSAoYWZ0ZXIgNi4zLjAxMykKUHJvYmxlbTogICAgQ2FuJ3QgdXNlIGdldGNtZGxpbmUoKSwgZ2V0Y21kcG9zKCkgb3Igc2V0Y21kcG9zKCkgd2l0aCA8Qy1SPj0KCSAgICB3aGVuIGVkaXRpbmcgYSBjb21tYW5kIGxpbmUuICBVc2luZyA8Qy1cPmUgbWF5IGNyYXNoIFZpbS4gKFBldGVyCgkgICAgV2ludGVycykKU29sdXRpb246ICAgV2hlbiBtb3ZpbmcgY2NsaW5lIG91dCBvZiB0aGUgd2F5IGZvciByZWN1cnNpdmUgdXNlLCBtYWtlIGl0CgkgICAgYXZhaWxhYmxlIHRvIHRoZSBmdW5jdGlvbnMgdGhhdCBuZWVkIGl0LiAgQWxzbyBzYXZlIGFuZCByZXN0b3JlCgkgICAgY2NsaW5lIHdoZW4gY2FsbGluZyBnZXRfZXhwcl9saW5lKCkuICBNYWtlIGNjbGluZS5jbWRidWYgTlVMTCBhdAoJICAgIHRoZSBlbmQgb2YgZ2V0Y21kbGluZSgpLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjMuMDU2ClByb2JsZW06ICAgIFRoZSBsYXN0IGNoYXJhY3RlcnMgb2YgYSBtdWx0aS1ieXRlIGZpbGUgbmFtZSBtYXkgbm90IGJlIGRpc3BsYXllZAoJICAgIGluIHRoZSB3aW5kb3cgdGl0bGUuClNvbHV0aW9uOiAgIEF2b2lkIHRvIHJlbW92ZSBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyIHdoZXJlIHRoZSBsYXN0IGJ5dGUgbG9va3MKCSAgICBsaWtlIGEgcGF0aCBzZXBhcmF0b3IgY2hhcmFjdGVyLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMy4wNTcKUHJvYmxlbTogICAgV2hlbiBmaWx0ZXJpbmcgbGluZXMgZm9sZHMgYXJlIG5vdCB1cGRhdGVkLiAoQ2FybCBPc3Rlcndpc2NoKQpTb2x1dGlvbjogICBVcGRhdGUgZm9sZHMgZm9yIGZpbHRlcmVkIGxpbmVzLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMy4wNTgKUHJvYmxlbTogICAgV2hlbiAnZm9sZGNvbHVtbicgaXMgZXF1YWwgdG8gdGhlIHdpbmRvdyB3aWR0aCBhbmQgJ3dyYXAnIGlzIG9uCgkgICAgVmltIG1heSBjcmFzaC4gIERpc2FibGluZyB0aGUgdmVydGljYWwgc3BsaXQgZmVhdHVyZSBicmVha3MKCSAgICBjb21waWxpbmcuICAoUGV0ZXIgV2ludGVycykKU29sdXRpb246ICAgQ2hlY2sgZm9yIHplcm8gcm9vbSBmb3Igd3JhcHBlZCB0ZXh0LiAgTWFrZSBjb21waWxpbmcgd2l0aG91dAoJICAgIHZlcnRpY2FsIHNwbGl0cyBwb3NzaWJsZS4KRmlsZXM6CSAgICBzcmMvbW92ZS5jLCBzcmMvcXVpY2tmaXguYywgc3JjL3NjcmVlbi5jLCBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4zLjA1OQpQcm9ibGVtOiAgICBDcmFzaCB3aGVuIGV4cGFuZGluZyBhbiAiOmVkaXQiIGNvbW1hbmQgY29udGFpbmluZyBzZXZlcmFsIHNwYWNlcwoJICAgIHdpdGggdGhlIHNoZWxsLiAoQnJpYW4gSGlydCkKU29sdXRpb246ICAgQWxsb2NhdGUgZW5vdWdoIHNwYWNlIGZvciB0aGUgcXVvdGVzLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMy4wNjAKUHJvYmxlbTogICAgVXNpbmcgQ1RSTC1SIENUUkwtTyBpbiBJbnNlcnQgbW9kZSB3aXRoIGFuIGludmFsaWQgcmVnaXN0ZXIgbmFtZQoJICAgIHN0aWxsIGNhdXNlcyBzb21ldGhpbmcgdG8gYmUgaW5zZXJ0ZWQuClNvbHV0aW9uOiAgIENoZWNrIHRoZSByZWdpc3RlciBuYW1lIGZvciBiZWluZyB2YWxpZC4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjMuMDYxClByb2JsZW06ICAgIFdoZW4gZWRpdGluZyBhIHV0Zi04IGZpbGUgaW4gYW4gdXRmLTggeHRlcm0gYW5kIHRoZXJlIGlzIGEKCSAgICBtdWx0aS1ieXRlIGNoYXJhY3RlciBpbiB0aGUgbGFzdCBjb2x1bW4sIGRpc3BsYXlpbmcgaXMgbWVzc2VkIHVwLgoJICAgIChKb+tsIFJpbykKU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIsIG5vdCBhIG11bHRpLWNvbHVtbiBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjMuMDYyClByb2JsZW06ICAgICI6bm9ybWFsISBnUSIgaGFuZ3MuClNvbHV0aW9uOiAgIFF1aXQgZ2V0Y21kbGluZSgpIGFuZCBkb19leG1vZGUoKSB3aGVuIG91dCBvZiB0eXBlYWhlYWQuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMsIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjMuMDYzClByb2JsZW06ICAgIFdoZW4gYSBDdXJzb3JIb2xkIGF1dG9jb21tYW5kIGNoYW5nZXMgdG8gYW5vdGhlciB3aW5kb3cKCSAgICAodGVtcG9yYXJpbHkpICdtb3VzZWZvY3VzJyBzdG9wcyB3b3JraW5nLgpTb2x1dGlvbjogICBDYWxsIGd1aV9tb3VzZV9jb3JyZWN0KCkgYWZ0ZXIgdHJpZ2dlcmluZyBDdXJzb3JIb2xkLgpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4zLjA2NApQcm9ibGVtOiAgICBsaW5lMmJ5dGUobGluZSgiJCIpICsgMSkgc29tZXRpbWVzIHJldHVybnMgdGhlIHdyb25nIG51bWJlci4KCSAgICAoQ2hhcmxlcyBDYW1wYmVsbCkKU29sdXRpb246ICAgRmx1c2ggdGhlIGNhY2hlZCBsaW5lIGJlZm9yZSBjb3VudGluZyB0aGUgYnl0ZXMuCkZpbGVzOgkgICAgc3JjL21lbWxpbmUuYwoKUGF0Y2ggNi4zLjA2NQpQcm9ibGVtOiAgICBUaGUgZXVybyBkaWdyYXBoIGRvZXNuJ3QgYWx3YXlzIHdvcmsuClNvbHV0aW9uOiAgIEFkZCBhbiAiZT0iIGRpZ3JhcGggZm9yIFVuaWNvZGUgZXVybyBjaGFyYWN0ZXIgYW5kIGFkanVzdCB0aGUKCSAgICBoZWxwIGZpbGVzLgpGaWxlczoJICAgIHNyYy9kaWdyYXBoLmMsIHJ1bnRpbWUvZG9jL2RpZ3JhcGgudHh0CgpQYXRjaCA2LjMuMDY2ClByb2JsZW06ICAgIEJhY2t1cCBmaWxlIG1heSBnZXQgd3JvbmcgcGVybWlzc2lvbnMuClNvbHV0aW9uOiAgIFVzZSBwZXJtaXNzaW9ucyBvZiBvcmlnaW5hbCBmaWxlIGZvciBiYWNrdXAgZmlsZSBpbiBtb3JlIHBsYWNlcy4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMy4wNjcgKGFmdGVyIDYuMy4wNjYpClByb2JsZW06ICAgIE5ld2x5IGNyZWF0ZWQgZmlsZSBnZXRzIGV4ZWN1dGUgcGVybWlzc2lvbi4KU29sdXRpb246ICAgQ2hlY2sgZm9yICJwZXJtIiB0byBiZSBuZWdhdGl2ZSBiZWZvcmUgdXNpbmcgaXQuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjMuMDY4ClByb2JsZW06ICAgIFdoZW4gZWRpdGluZyBhIGNvbXByZXNzZWQgZmlsZSB4eHguZ3ogd2hpY2ggaXMgYSBzeW1ib2xpYyBsaW5rIHRvCgkgICAgdGhlIGFjdHVhbCBmaWxlIGEgIjp3cml0ZSIgcmVuYW1lcyB0aGUgbGluay4KU29sdXRpb246ICAgUmVzb2x2ZSB0aGUgbGluaywgc28gdGhhdCB0aGUgYWN0dWFsIGZpbGUgaXMgcmVuYW1lZCBhbmQKCSAgICBjb21wcmVzc2VkLgpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL2d6aXAudmltCgpQYXRjaCA2LjMuMDY5ClByb2JsZW06ICAgIFdoZW4gY29udmVydGluZyB0ZXh0IHdpdGggaWxsZWdhbCBjaGFyYWN0ZXJzIFZpbSBtYXkgY3Jhc2guClNvbHV0aW9uOiAgIEF2b2lkIHRoYXQgdG9vIG11Y2ggaXMgc3VidHJhY3RlZCBmcm9tIHRoZSBsZW5ndGguIChEYSBXb29uIEp1bmcpCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMy4wNzAKUHJvYmxlbTogICAgQWZ0ZXIgIjpzZXQgbnVtYmVyIGxpbmVicmVhayB3cmFwIiBhbmQgYSB2ZXJ0aWNhbCBzcGxpdCwgbW92aW5nCgkgICAgdGhlIHZlcnRpY2FsIHNlcGFyYXRvciBmYXIgbGVmdCB3aWxsIGNyYXNoIFZpbS4gKEdlb3JnIERhaG4pClNvbHV0aW9uOiAgIEF2b2lkIGRpdmlkaW5nIGJ5IHplcm8uCkZpbGVzOgkgICAgc3JjL2NoYXJzZXQuYwoKUGF0Y2ggNi4zLjA3MQpQcm9ibGVtOiAgICBUaGUgbWVzc2FnZSBmb3IgQ1RSTC1YIG1vZGUgaXMgc3RpbGwgZGlzcGxheWVkIGFmdGVyIGFuIGVycm9yIGZvcgoJICAgICd0aGVzYXVydXMnIG9yICdkaWN0aW9uYXJ5JyBiZWluZyBlbXB0eS4KU29sdXRpb246ICAgQ2xlYXIgImVkaXRfc3VibW9kZSIuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4zLjA3MgpQcm9ibGVtOiAgICBDcmFzaCBpbiBnaXZpbmcgc3Vic3RpdHV0ZSBtZXNzYWdlIHdoZW4gbGFuZ3VhZ2UgaXMgQ2hpbmVzZSBhbmQKCSAgICBlbmNvZGluZyBpcyB1dGYtOC4gKFlvbmd3ZWkpClNvbHV0aW9uOiAgIE1ha2UgdGhlIG1zZ19idWYgc2l6ZSBsYXJnZXIgd2hlbiB1c2luZyBtdWx0aS1ieXRlLgpGaWxlczoJICAgIHNyYy92aW0uaAoKUGF0Y2ggNi4zLjA3MwpQcm9ibGVtOiAgICBXaW4zMiBHVUk6IFdoZW4gdGhlIFZpbSB3aW5kb3cgaXMgcGFydGx5IGFib3ZlIG9yIGJlbG93IHRoZQoJICAgIHNjcmVlbiwgc2Nyb2xsaW5nIGNhdXNlcyBkaXNwbGF5IGVycm9ycyB3aGVuIHRoZSB0YXNrYmFyIGlzIG5vdCBvbgoJICAgIHRoYXQgc2lkZS4KU29sdXRpb246ICAgVXNlIHRoZSBTV19JTlZBTElEQVRFIGZsYWcgd2hlbiB0aGUgVmltIHdpbmRvdyBpcyBwYXJ0bHkgYmVsb3cgb3IKCSAgICBhYm92ZSB0aGUgc2NyZWVuLgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMy4wNzQKUHJvYmxlbTogICAgV2hlbiBtc3dpbi52aW0gaXMgdXNlZCBhbmQgJ2luc2VydG1vZGUnIGlzIHNldCwgdHlwaW5nIHRleHQgaW4KCSAgICBTZWxlY3QgbW9kZSBhbmQgdGhlbiB1c2luZyBDVFJMLVYgcmVzdWx0cyBpbiA8U05SPjk5X1Bhc3RlZ2kuCgkgICAgKEdlb3JnIERhaG4pClNvbHV0aW9uOiAgIFdoZW4gcmVzdGFydF9lZGl0IGlzIHNldCB1c2UgImQiIGluc3RlYWQgb2YgImMiIHRvIHJlbW92ZSB0aGUKCSAgICBzZWxlY3RlZCB0ZXh0IHRvIGF2b2lkIGNhbGxpbmcgZWRpdCgpIHR3aWNlLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4zLjA3NQpQcm9ibGVtOiAgICBBZnRlciB1bmxvYWRpbmcgYW5vdGhlciBidWZmZXIsIHN5bnRheCBoaWdobGlnaHRpbmcgaW4gdGhlIGN1cnJlbnQKCSAgICBidWZmZXIgbWF5IGJlIHdyb25nIHdoZW4gaXQgdXNlcyAiY29udGFpbmVkaW4iLiAoRXJpYyBBcm5vbGQpClNvbHV0aW9uOiAgIFVzZSAiYnVmIiBpbnRlYWQgb2YgImN1cmJ1ZiIgaW4gc3ludGF4X2NsZWFyKCkuCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjMuMDc2ClByb2JsZW06ICAgIENyYXNoIHdoZW4gdXNpbmcgY3Njb3BlIGFuZCB0aGVyZSBpcyBhIHBhcnNlIGVycm9yIChlLmcuLCBsaW5lIHRvbwoJICAgIGxvbmcpLiAoQWxleGV5IEkuIEZyb2xvZmYpClNvbHV0aW9uOiAgIFBhc3MgdGhlIGFjdHVhbCBudW1iZXIgb2YgbWF0Y2hlcyB0byBjc19tYW5hZ2VfbWF0Y2hlcygpIGFuZAoJICAgIGNvcnJlY3RseSBoYW5kbGUgdGhlIGVycm9yIHNpdHVhdGlvbi4KRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKClBhdGNoIDYuMy4wNzcgKGV4dHJhKQpQcm9ibGVtOiAgICBWTVM6IEZpcnN0IGNoYXJhY3RlciBpbnB1dCBhZnRlciBFU0Mgd2FzIG5vdCByZWNvZ25pemVkLgpTb2x1dGlvbjogICBBZGRlZCBUUk0kTV9UTV9USU1FRCBpbiB2bXNfcmVhZCgpLiAgKFpvbHRhbiBBcnBhZGZmeSkKRmlsZXM6CSAgICBzcmMvb3Nfdm1zLmMKClBhdGNoIDYuMy4wNzggKGV4dHJhLCBhZnRlciA2LjMuMDc3KQpQcm9ibGVtOiAgICBWTVM6IFBlcmZvcm1hbmNlIGlzc3VlIGFmdGVyIHBhdGNoIDYuMy4wNzcKU29sdXRpb246ICAgQWRkIGEgdGltZW91dCBpbiB0aGUgaXRlbWxpc3QuICAoWm9sdGFuIEFycGFkZmZ5KQpGaWxlczoJICAgIHNyYy9vc192bXMuYwoKUGF0Y2ggNi4zLjA3OQpQcm9ibGVtOiAgICBDcmFzaCB3aGVuIGV4ZWN1dGluZyBhIGNvbW1hbmQgaW4gdGhlIGNvbW1hbmQgbGluZSB3aW5kb3cgd2hpbGUKCSAgICBzeW50YXggaGlnaGxpZ2h0aW5nIGlzIGVuYWJsZWQuIChQZXJvIEJyYm9yYSkKU29sdXRpb246ICAgRG9uJ3QgdXNlIGEgcG9pbnRlciB0byBhIGJ1ZmZlciB0aGF0IGhhcyBiZWVuIGRlbGV0ZWQuCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjMuMDgwIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdpdGggJ2VuY29kaW5nJyBzZXQgdG8gdXRmLTggd2hpbGUgdGhlIGN1cnJlbnQgY29kZXBhZ2UgaXMKCSAgICBDaGluZXNlIGVkaXRpbmcgYSBmaWxlIHdpdGggc29tZSBzcGVjaWZpYyBjaGFyYWN0ZXJzIGluIHRoZSBuYW1lCgkgICAgZmFpbHMuClNvbHV0aW9uOiAgIFVzZSBfd2Z1bGxwYXRoKCkgaW5zdGVhZCBvZiBfZnVsbHBhdGgoKSB3aGVuIG5lY2Vzc2FyeS4KRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4zLjA4MQpQcm9ibGVtOiAgICBVbml4OiBnbG9iKCkgbWF5IGV4ZWN1dGUgYSBzaGVsbCBjb21tYW5kIHdoZW4gaXQncyBub3Qgd2FudGVkLgoJICAgIChHZW9yZ2kgR3VuaW5za2kpClNvbHV0aW9uOiAgIFZlcmlmeSB0aGUgc2FuZGJveCBmbGFnIGlzIG5vdCBzZXQuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4zLjA4MiAoYWZ0ZXIgNi4zLjA4MSkKUHJvYmxlbTogICAgVW5peDogZXhwYW5kKCkgbWF5IGV4ZWN1dGUgYSBzaGVsbCBjb21tYW5kIHdoZW4gaXQncyBub3Qgd2FudGVkLgoJICAgIChHZW9yZ2kgR3VuaW5za2kpClNvbHV0aW9uOiAgIEEgbW9yZSBnZW5lcmljIHNvbHV0aW9uIHRoYW4gNi4zLjA4MS4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjMuMDgzClByb2JsZW06ICAgIFZNUzogVGhlIHZ0MzIwIHRlcm1jYXAgZW50cnkgaXMgaW5jb21wbGV0ZS4KU29sdXRpb246ICAgQWRkIG1pc3NpbmcgZnVuY3Rpb24ga2V5cy4gIChab2x0YW4gQXJwYWRmZnkpCkZpbGVzOgkgICAgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4zLjA4NCAoZXh0cmEpClByb2JsZW06ICAgIEN5Z3dpbjogY29tcGlsaW5nIHdpdGggREVCVUcgZG9lc24ndCB3b3JrLiAgUGVybCBwYXRoIHdhcyBpZ25vcmVkLgoJICAgIEZhaWx1cmUgd2hlbiAkKE9VVERJUikgYWxyZWFkeSBleGlzdHMuICAicG8iIG1ha2VmaWxlIGlzIG1pc3NpbmcuClNvbHV0aW9uOiAgIFVzZSBjaGFuZ2VzIHRlc3RlZCBpbiBWaW0gNy4gKFRvbnkgTWVjaGVseW5jaykKRmlsZXM6CSAgICBzcmMvTWFrZV9jeWcubWFrLCBzcmMvcG8vTWFrZV9jeWcubWFrCgpQYXRjaCA2LjMuMDg1ClByb2JsZW06ICAgIENyYXNoIGluIHN5bnRheCBoaWdobGlnaHRpbmcgY29kZS4gKE1hcmMgRXNwaWUpClNvbHV0aW9uOiAgIFByZXZlbnQgY3VycmVudF9jb2wgZ29pbmcgcGFzdCB0aGUgZW5kIG9mIHRoZSBsaW5lLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4zLjA4NiAoZXh0cmEpClByb2JsZW06ICAgIENhbid0IHByb2R1Y2UgbWVzc2FnZSB0cmFuc2xhdGlvbiBmaWxlIHdpdGggbXNnZm10IHRoYXQgY2hlY2tzCgkgICAgcHJpbnRmIHN0cmluZ3MuClNvbHV0aW9uOiAgIEZpeCB0aGUgUnVzc2lhbiB0cmFuc2xhdGlvbi4KRmlsZXM6CSAgICBzcmMvcG8vcnUucG8sIHNyYy9wby9ydS5jcDEyNTEucG8KClBhdGNoIDYuMy4wODcKUHJvYmxlbTogICAgTVMtRE9TOiBDcmFzaC4gKEphc29uIEhvb2QpClNvbHV0aW9uOiAgIERvbid0IGNhbGwgZm5hbWVfY2FzZSgpIHdpdGggYSBOVUxMIHBvaW50ZXIuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4zLjA4OApQcm9ibGVtOiAgICBFZGl0aW5nICIuaW4iIGNhdXNlcyBlcnJvciBFMjE4LiAoU3RlZmFuIEthcmxzc29uKQpTb2x1dGlvbjogICBSZXF1aXJlIHNvbWUgY2hhcmFjdGVycyBiZWZvcmUgIi5pbiIuICBTYW1lIGZvciAiLm9yaWciIGFuZCBvdGhlcnMuCkZpbGVzOgkgICAgcnVudGltZS9maWxldHlwZS52aW0KClBhdGNoIDYuMy4wODkKUHJvYmxlbTogICAgQSBzZXNzaW9uIGZpbGUgZG9lc24ndCB3b3JrIHdoZW4gY3JlYXRlZCB3aGlsZSB0aGUgY3VycmVudAoJICAgIGRpcmVjdG9yeSBjb250YWlucyBhIHNwYWNlIG9yIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIHNlc3Npb24gZmlsZXMKCSAgICBjb250YWlucyBhIHNwYWNlLiAoUGFvbG8gR2lhcnJ1c3NvKQpTb2x1dGlvbjogICBFc2NhcGUgc3BhY2VzIHdpdGggYSBiYWNrc2xhc2guCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMy4wOTAKUHJvYmxlbTogICAgQSB2ZXJ5IGJpZyB2YWx1ZSBmb3IgJ2NvbHVtbnMnIG9yICdsaW5lcycgbWF5IGNhdXNlIGEgY3Jhc2guClNvbHV0aW9uOiAgIExpbWl0IHRoZSB2YWx1ZXMgdG8gMTAwMDAgYW5kIDEwMDAuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjRhLjAwMQpQcm9ibGVtOiAgICBUaGUgVW5peCBNYWtlZmlsZSBjb250YWluZWQgdG9vIG1hbnkgZGVwZW5kZW5jaWVzIGFuZCBhIGZldwoJICAgIHVuY29tbWVudGVkIGxpbmVzLgpTb2x1dGlvbjogICBSdW4gIm1ha2UgZGVwZW5kIiB3aXRoIG1hbnVhbCBjaGFuZ2VzIHRvIGF2b2lkIGEgZ2NjCgkgICAgaW5jb21wYXRpYmlsaXR5LiAgQ29tbWVudCBhIGZldyBsaW5lcy4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuNGIuMDAxClByb2JsZW06ICAgIFZpbSByZXBvcnRzICJWaW0gNi40YSIgaW4gdGhlICI6dmVyc2lvbiIgb3V0cHV0LgpTb2x1dGlvbjogICBDaGFuZ2UgImEiIHRvICJiIi4gKFRvbnkgTWVjaGVseW5jaykKRmlsZXM6CSAgICBzcmMvdmVyc2lvbi5oCgpQYXRjaCA2LjRiLjAwMgpQcm9ibGVtOiAgICBJbiBJbnNlcnQgbW9kZSwgcGFzdGluZyBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyIGFmdGVyIHRoZSBlbmQgb2YKCSAgICB0aGUgbGluZSBsZWF2ZXMgdGhlIGN1cnNvciBqdXN0IGJlZm9yZSB0aGF0IGNoYXJhY3Rlci4KU29sdXRpb246ICAgTWFrZSBzdXJlICJnUCIgbGVhdmVzIHRoZSBjdXJzb3IgaW4gdGhlIHJpZ2h0IHBsYWNlIHdoZW4KCSAgICAndmlydHVhbGVkaXQnIGlzIHNldC4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuNGIuMDAzIChhZnRlciA2LjRiLjAwMikKUHJvYmxlbTogICAgVGhlIHByb2JsZW0gc3RpbGwgZXhpc3RzIHdoZW4gJ2VuY29kaW5nJyBpcyBzZXQgdG8gImNwOTM2Ii4KU29sdXRpb246ICAgRml4IHRoZSBwcm9ibGVtIGluIGdldHZ2Y29sKCksIGNvbXB1dGUgdGhlIGNvbGFkZCBmaWVsZCBjb3JyZWN0bHkuCkZpbGVzOgkgICAgc3JjL2NoYXJzZXQuYywgc3JjL29wcy5jCgpQYXRjaCA2LjRiLjAwNApQcm9ibGVtOiAgICBTZWxlY3RpbmcgYSB7fSBibG9jayB3aXRoICJ2aUIiIGluY2x1ZGVzIHRoZSAnfScgd2hlbiB0aGVyZSBpcyBhbgoJICAgIGVtcHR5IGxpbmUgYmVmb3JlIGl0LgpTb2x1dGlvbjogICBEb24ndCBhZHZhbmNlIHRoZSBjdXJzb3IgdG8gaW5jbHVkZSBhIGxpbmUgYnJlYWsgd2hlbiBpdCdzIGFscmVhZHkKCSAgICBhdCB0aGUgbGluZSBicmVhay4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKCgogdmltOnR3PTc4OnRzPTg6ZnQ9aGVscDpub3JsOgo=