MjAwNC0xMi0zMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdC8xOTA0MgoJKiB0cmVlLXNyYS5jIChkZWNpZGVfYmxvY2tfY29weSk6IEZvcmNlIHVzZV9ibG9ja19jb3B5IGZhbHNlCglmb3IgY29tcGxleCB2YWx1ZXMuCgoyMDA0LTEyLTMxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIG1pZGRsZS1lbmQvMTc3OTkKCSogZnVuY3Rpb24uYyAodXNlX3JlZ2lzdGVyX2Zvcl9kZWNsKTogQ2hlY2sgREVDTF9JR05PUkVEX1AgaW5zdGVhZAoJb2YgREVDTF9BUlRJRklDSUFMLgoJKGFzc2lnbl9wYXJtc19hdWdtZW50ZWRfYXJnX2xpc3QpOiBTZXQgREVDTF9JR05PUkVEX1AuCgkqIGMtZGVjbC5jIChidWlsZF9jb21wb3VuZF9saXRlcmFsKTogTGlrZXdpc2UuCgkqIGR3YXJmMmFzbS5jIChkdzJfZm9yY2VfY29uc3RfbWVtKTogTGlrZXdpc2UuCgkqIGdpbXBsaWZ5LmMgKGNyZWF0ZV9hcnRpZmljaWFsX2xhYmVsKTogTGlrZXdpc2UuCgkqIHRyZWUtaW5saW5lLmMgKGV4cGFuZF9jYWxsX2lubGluZSk6IExpa2V3aXNlLgoJKiB2YXItdHJhY2tpbmcuYyAodnRfaW5pdGlhbGl6ZSk6IExpa2V3aXNlLgoJKiB0cmVlLW91dG9mLXNzYS5jIChjcmVhdGVfdGVtcCk6IENvcHkgREVDTF9JR05PUkVEX1AuCgoyMDA0LTEyLTMxICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiB0YXJnZXQvMTkyMTEKCSogY29uZmlnL2Rhcndpbi5jIChtYWNob3BpY19sZWdpdGltaXplX3BpY19hZGRyZXNzKTogSWYgdGhlIG9yaWcKCWlzIHN1YnJlZ2lzdGVyIHJldHVybiBvcmlnLgoKMjAwNC0xMi0zMSAgWmRlbmVrIER2b3JhayAgPGR2b3Jha3pAc3VzZS5jej4KCgkqIHRyZWUtc2NhbGFyLWV2b2x1dGlvbi5jIChpbnN0YW50aWF0ZV9wYXJhbWV0ZXJzXzEpOiBDb3B5IHRoZQoJZXhwcmVzc2lvbiBvbmx5IGlmIG5lZWRlZC4KCjIwMDQtMTItMzEgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBwYS1ocHV4LmggKEhBTkRMRV9TWVNWX1BSQUdNQSwgSEFORExFX1BSQUdNQV9QQUNLX1BVU0hfUE9QKTogRGVmaW5lLgoKMjAwNC0xMi0zMSAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCVBSIHRhcmdldC8xODcwMQoJKiBjb21iaW5lLmMgKGNvbWJpbmVfc2ltcGxpZnlfcnR4KTogRG8gbm90IGFsbG93IHBhcmFkb3hpY2FsCglzdWJyZWdzIG9mIE1FTS4KCglQUiB0YXJnZXQvMTg3MDEKCSogY29tYmluZS5jIChnZW5fbG93cGFydF9mb3JfY29tYmluZSk6IFdoZW4gc3RyaXBwaW5nIFNVQlJFRyBvZgoJTUVNLCBhZGp1c3QgaW1vZGUgYW5kIGlzaXplLgoKMjAwNC0xMi0zMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoaGZhX2VsZW1lbnRfbW9kZSk6IFJldHVybiBmYWxzZSBmb3IgCgl6ZXJvLXNpemVkIHRvcC1sZXZlbCBhZ2dyZWdhdGVzLgoKMjAwNC0xMi0zMCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCVBSIHRhcmdldC8xODAxOQoJKiBpMzg2Lm1kIChtb3ZxaV8xKTogRml4IC1PcyBpbnN0cnVjdGlvbiBjaG9pY2UuCgoyMDA0LTEyLTMwICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBnbG9iYWwuYyAocmVnY2xhc3NfaW50ZXJzZWN0KTogUmVtb3ZlLgoJKG1hcmtfcmVnX3VzZV9mb3JfZWFybHljbG9iYmVyKTogVXNlIHJlZ19jbGFzc2VzX2ludGVyc2VjdF9wIGluc3RlYWQuCgoyMDA0LTEyLTMwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2lhNjQvaWE2NC5jIChpYTY0X2Z1bmN0aW9uX3ZhbHVlKTogVXNlIFBBUkFMTEVMIGZvciAKCWFnZ3JlZ2F0ZXMgd2l0aCBYRi9YQ21vZGUuCgoyMDA0LTEyLTI5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdGFyZ2V0LmggKHRhcmdldG0uY2FsbHMuYXJnX3BhcnRpYWxfYnl0ZXMpOiBOZXcuCgkqIHRhcmdldC1kZWYuaCAoVEFSR0VUX0FSR19QQVJUSUFMX0JZVEVTKTogTmV3LgoJKiBjYWxscy5jIChzdG9yZV91bmFsaWduZWRfYXJndW1lbnRzX2ludG9fcHNldWRvcyk6IFVwZGF0ZSBmb3IKCXBhcnRpYWwgaW4gYnl0ZXMuCgkobG9hZF9yZWdpc3Rlcl9wYXJhbWV0ZXJzKTogTGlrZXdpc2UuCgkoc3RvcmVfb25lX2FyZyk6IExpa2V3aXNlLgoJKGluaXRpYWxpemVfYXJndW1lbnRfaW5mb3JtYXRpb24pOiBVc2UgdGFyZ2V0bS5jYWxscy5hcmdfcGFydGlhbF9ieXRlcy4KCShlbWl0X2xpYnJhcnlfY2FsbF92YWx1ZV8xKTogTGlrZXdpc2UuCgkqIGV4cHIuYyAoYmxvY2tfbW92ZV9saWJjYWxsX3NhZmVfZm9yX2NhbGxfcGFybSk6IExpa2V3aXNlLgoJKGVtaXRfcHVzaF9pbnNuKTogVXBkYXRlIGZvciBwYXJ0aWFsIGluIGJ5dGVzLgoJKiBleHByLmggKEZVTkNUSU9OX0FSR19QQVJUSUFMX05SRUdTKTogUmVtb3ZlLgoJKiBmdW5jdGlvbi5jIChhc3NpZ25fcGFybV9maW5kX2VudHJ5X3J0bCk6IFVzZQoJdGFyZ2V0bS5jYWxscy5hcmdfcGFydGlhbF9ieXRlcy4gIFVwZGF0ZSBmb3IgcmVzdWx0IGluIGJ5dGVzLgoJKGxvY2F0ZV9hbmRfcGFkX3Bhcm0pOiBVcGRhdGUgZm9yIHBhcnRpYWwgaW4gYnl0ZXMuCgkqIHN5c3RlbS5oIChGVU5DVElPTl9BUkdfUEFSVElBTF9OUkVHUyk6IFBvaXNvbi4KCSogdGFyZ2hvb2tzLmMgKGhvb2tfaW50X0NVTVVMQVRJVkVfQVJHU19tb2RlX3RyZWVfYm9vbF8wKTogTmV3LgoJKiB0YXJnaG9va3MuaCAoaG9va19pbnRfQ1VNVUxBVElWRV9BUkdTX21vZGVfdHJlZV9ib29sXzApOiBEZWNsYXJlLgoJKiBkb2MvdG0udGV4aSAoVEFSR0VUX0FSR19QQVJUSUFMX0JZVEVTKTogUmVuYW1lIGFuZCB1cGRhdGUgZnJvbQoJRlVOQ1RJT05fQVJHX1BBUlRJQUxfTlJFR1MuCgoJKiBjb25maWcvYXJjL2FyYy5oLCBjb25maWcvYzR4L2M0eC5oLCBjb25maWcvaTM4Ni9pMzg2LmgsCgljb25maWcvaTg2MC9pODYwLmgsIGNvbmZpZy9tNjhoYzExL202OGhjMTEuaCwgY29uZmlnL202OGsvbTY4ay5oLAoJY29uZmlnL3BkcDExL3BkcDExLmgsIGNvbmZpZy9zMzkwL3MzOTAuaCwgY29uZmlnL3N0b3JteTE2L3N0b3JteTE2LmgsIAoJY29uZmlnL3h0ZW5zYS94dGVuc2EuaCAoRlVOQ1RJT05fQVJHX1BBUlRJQUxfTlJFR1MpOiBSZW1vdmUuCgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoYWxwaGFfYXJnX3BhcnRpYWxfYnl0ZXMpOiBOZXcuCgkoVEFSR0VUX0FSR19QQVJUSUFMX0JZVEVTKTogTmV3LgoJKiBjb25maWcvYWxwaGEvYWxwaGEuaCwgY29uZmlnL2FscGhhL3VuaWNvc21rLmgsCgljb25maWcvYWxwaGEvdm1zLmggKEZVTkNUSU9OX0FSR19QQVJUSUFMX05SRUdTKTogUmVtb3ZlLgoKCSogY29uZmlnL2FybS9hcm0uaCAoRlVOQ1RJT05fQVJHX1BBUlRJQUxfTlJFR1MpOiBNb3ZlIC4uLgoJKiBjb25maWcvYXJtL2FybS5jIChhcm1fYXJnX3BhcnRpYWxfYnl0ZXMpOiAuLi4gaGVyZS4KCShUQVJHRVRfQVJHX1BBUlRJQUxfQllURVMpOiBOZXcuCgoJKiBjb25maWcvY3Jpcy9jcmlzLmggKEZVTkNUSU9OX0FSR19QQVJUSUFMX05SRUdTKTogTW92ZSAuLi4KCSogY29uZmlnL2NyaXMvY3Jpcy5jIChjcmlzX2FyZ19wYXJ0aWFsX2J5dGVzKTogLi4uIGhlcmUuCgkoVEFSR0VUX0FSR19QQVJUSUFMX0JZVEVTKTogTmV3LgoKCSogY29uZmlnL2ZyMzAvZnIzMC5oIChGVU5DVElPTl9BUkdfUEFSVElBTF9OUkVHUyk6IFJlbW92ZS4KCSogY29uZmlnL2ZyMzAvZnIzMC5jIChmcjMwX2FyZ19wYXJ0aWFsX2J5dGVzKTogUmVuYW1lIGZyb20KCWZyMzBfZnVuY3Rpb25fYXJnX3BhcnRpYWxfbnJlZ3MuICBBZGp1c3QgdG8gcmV0dXJuIGJ5dGVzLgoJKFRBUkdFVF9BUkdfUEFSVElBTF9CWVRFUyk6IE5ldy4KCSogY29uZmlnL2ZyMzAvZnIzMC1wcm90b3MuaDogVXBkYXRlLgoKCSogY29uZmlnL2Zydi9mcnYuaCAoRlVOQ1RJT05fQVJHX1BBUlRJQUxfTlJFR1MpOiBSZW1vdmUuCgkqIGNvbmZpZy9mcnYvZnJ2LmMgKGZydl9hcmdfcGFydGlhbF9ieXRlcyk6IFJlbmFtZSBmcm9tIAoJZnJ2X2Z1bmN0aW9uX2FyZ19wYXJ0aWFsX25yZWdzLiAgQWRqdXN0IHRvIHJldHVybiBieXRlcy4KCShUQVJHRVRfQVJHX1BBUlRJQUxfQllURVMpOiBOZXcuCgkqIGNvbmZpZy9mcnYvZnJ2LXByb3Rvcy5oOiBVcGRhdGUuCgoJKiBjb25maWcvaWE2NC9pYTY0LmggKEZVTkNUSU9OX0FSR19QQVJUSUFMX05SRUdTKTogUmVtb3ZlLgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfYXJnX3BhcnRpYWxfYnl0ZXMpOiBSZW5hbWUgZnJvbQoJaWE2NF9mdW5jdGlvbl9hcmdfcGFydGlhbF9ucmVncy4gIEFkanVzdCB0byByZXR1cm4gYnl0ZXMuCgkoVEFSR0VUX0FSR19QQVJUSUFMX0JZVEVTKTogTmV3LgoJKiBjb25maWcvaWE2NC9pYTY0LXByb3Rvcy5oOiBVcGRhdGUuCgoJKiBjb25maWcvaXEyMDAwL2lxMjAwMC5oIChGVU5DVElPTl9BUkdfUEFSVElBTF9OUkVHUyk6IFJlbW92ZS4KCSogY29uZmlnL2lxMjAwMC9pcTIwMDAuYyAoaXEyMDAwX2FyZ19wYXJ0aWFsX2J5dGVzKTogUmVuYW1lIGZyb20KCWZ1bmN0aW9uX2FyZ19wYXJ0aWFsX25yZWdzLiAgQWRqdXN0IHRvIHJldHVybiBieXRlcy4KCShUQVJHRVRfQVJHX1BBUlRJQUxfQllURVMpOiBOZXcuCgkqIGNvbmZpZy9pcTIwMDAvaXEyMDAwLXByb3Rvcy5oOiBVcGRhdGUuCgoJKiBjb25maWcvbTMyci9tMzJyLmggKEZVTkNUSU9OX0FSR19QQVJUSUFMX05SRUdTKTogUmVtb3ZlLgoJKiBjb25maWcvbTMyci9tMzJyLmMgKG0zMnJfYXJnX3BhcnRpYWxfYnl0ZXMpOiBSZW5hbWUgZnJvbQoJZnVuY3Rpb25fYXJnX3BhcnRpYWxfbnJlZ3MuICBBZGp1c3QgdG8gcmV0dXJuIGJ5dGVzLgoJKFRBUkdFVF9BUkdfUEFSVElBTF9CWVRFUyk6IE5ldy4KCSogY29uZmlnL20zMnIvbTMyci1wcm90b3MuaDogVXBkYXRlLgoKCSogY29uZmlnL21jb3JlL21jb3JlLmggKEZVTkNUSU9OX0FSR19QQVJUSUFMX05SRUdTKTogUmVtb3ZlLgoJKiBjb25maWcvbWNvcmUvbWNvcmUuYyAobWNvcmVfYXJnX3BhcnRpYWxfYnl0ZXMpOiBSZW5hbWUgZnJvbQoJbWNvcmVfZnVuY3Rpb25fYXJnX3BhcnRpYWxfbnJlZ3MuICBBZGp1c3QgdG8gcmV0dXJuIGJ5dGVzLgoJKFRBUkdFVF9BUkdfUEFSVElBTF9CWVRFUyk6IE5ldy4KCSogY29uZmlnL21jb3JlL21jb3JlLXByb3Rvcy5oOiBVcGRhdGUuCgoJKiBjb25maWcvbWlwcy9taXBzLmggKEZVTkNUSU9OX0FSR19QQVJUSUFMX05SRUdTKTogUmVtb3ZlLgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHNfYXJnX3BhcnRpYWxfYnl0ZXMpOiBSZW5hbWUgZnJvbQoJZnVuY3Rpb25fYXJnX3BhcnRpYWxfbnJlZ3MuICBBZGp1c3QgdG8gcmV0dXJuIGJ5dGVzLgoJKFRBUkdFVF9BUkdfUEFSVElBTF9CWVRFUyk6IE5ldy4KCSogY29uZmlnL21pcHMvbWlwcy1wcm90b3MuaDogVXBkYXRlLgoKCSogY29uZmlnL21uMTAzMDAvbW4xMDMwMC5oIChGVU5DVElPTl9BUkdfUEFSVElBTF9OUkVHUyk6IFJlbW92ZS4KCSogY29uZmlnL21uMTAzMDAvbW4xMDMwMC5jIChtbjEwMzAwX2FyZ19wYXJ0aWFsX2J5dGVzKTogUmVuYW1lIGZyb20JCglmdW5jdGlvbl9hcmdfcGFydGlhbF9ucmVncy4gIEFkanVzdCB0byByZXR1cm4gYnl0ZXMuCgkoVEFSR0VUX0FSR19QQVJUSUFMX0JZVEVTKTogTmV3LgoJKiBjb25maWcvbW4xMDMwMC9tbjEwMzAwLXByb3Rvcy5oOiBVcGRhdGUuCgoJKiBjb25maWcvbnMzMmsvbnMzMmsuaCAoRlVOQ1RJT05fQVJHX1BBUlRJQUxfTlJFR1MpOiBNb3ZlIC4uLgoJKiBjb25maWcvbnMzMmsvbnMzMmsuYyAobnMzMmtfYXJnX3BhcnRpYWxfYnl0ZXMpOiAuLi4gaGVyZS4KCShUQVJHRVRfQVJHX1BBUlRJQUxfQllURVMpOiBOZXcuCgoJKiBjb25maWcvcGEvcGEuaCAoRlVOQ1RJT05fQVJHX1BBUlRJQUxfTlJFR1MpOiBSZW1vdmUuCgkqIGNvbmZpZy9wYS9wYS5jIChwYV9hcmdfcGFydGlhbF9ieXRlcyk6IFJlbmFtZSBmcm9tIAoJZnVuY3Rpb25fYXJnX3BhcnRpYWxfbnJlZ3MuICBIYW5kbGUgMzItYml0LiAgQWRqdXN0IHRvIHJldHVybiBieXRlcy4KCShUQVJHRVRfQVJHX1BBUlRJQUxfQllURVMpOiBOZXcuCgkqIGNvbmZpZy9wYS9wYS1wcm90b3MuaDogVXBkYXRlLgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuaCAoRlVOQ1RJT05fQVJHX1BBUlRJQUxfTlJFR1MpOiBSZW1vdmUuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9hcmdfcGFydGlhbF9ieXRlcyk6IFJlbmFtZSBmcm9tIAoJZnVuY3Rpb25fYXJnX3BhcnRpYWxfbnJlZ3MuICBBZGp1c3QgdG8gcmV0dXJuIGJ5dGVzLgoJKFRBUkdFVF9BUkdfUEFSVElBTF9CWVRFUyk6IE5ldy4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAtcHJvdG9zLmg6IFVwZGF0ZS4KCgkqIGNvbmZpZy9zaC9zaC5oIChGVU5DVElPTl9BUkdfUEFSVElBTF9OUkVHUyk6IE1vdmUgLi4uCgkqIGNvbmZpZy9zaC9zaC5jIChzaF9hcmdfcGFydGlhbF9ieXRlcyk6IC4uLiBoZXJlLgoJKFRBUkdFVF9BUkdfUEFSVElBTF9CWVRFUyk6IE5ldy4KCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5oIChGVU5DVElPTl9BUkdfUEFSVElBTF9OUkVHUyk6IFJlbW92ZS4KCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKHNwYXJjX2FyZ19wYXJ0aWFsX2J5dGVzKTogUmVuYW1lIGZyb20KCWZ1bmN0aW9uX2FyZ19wYXJ0aWFsX25yZWdzLiAgQWRqdXN0IHRvIHJldHVybiBieXRlcy4KCShUQVJHRVRfQVJHX1BBUlRJQUxfQllURVMpOiBOZXcuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy1wcm90b3MuaDogVXBkYXRlLgoKCSogY29uZmlnL3Y4NTAvdjg1MC5oIChGVU5DVElPTl9BUkdfUEFSVElBTF9OUkVHUyk6IFJlbW92ZS4KCSogY29uZmlnL3Y4NTAvdjg1MC5jICh2ODUwX2FyZ19wYXJ0aWFsX2J5dGVzKTogUmVuYW1lIGZyb20KCWZ1bmN0aW9uX2FyZ19wYXJ0aWFsX25yZWdzLiAgQWRqdXN0IHRvIHJldHVybiBieXRlcy4KCShUQVJHRVRfQVJHX1BBUlRJQUxfQllURVMpOiBOZXcuCgkqIGNvbmZpZy92ODUwL3Y4NTAtcHJvdG9zLmg6IFVwZGF0ZS4KCjIwMDQtMTItMzAgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNvbmZpZy9tbWl4L21taXguaCAoQVNNX09VVFBVVF9JTlRFUk5BTF9MQUJFTCk6IERlZmluZS4KCSogY29uZmlnL21taXgvbW1peC5jIChtbWl4X2FzbV9vdXRwdXRfaW50ZXJuYWxfbGFiZWwpOiBOZXcKCWZ1bmN0aW9uLgoJKiBjb25maWcvbW1peC9tbWl4LXByb3Rvcy5oIChtbWl4X2FzbV9vdXRwdXRfaW50ZXJuYWxfbGFiZWwpOgoJUHJvdG90eXBlLgoKMjAwMy0xMi0yOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChUQVJHRVRfUkVMQVhFRF9PUkRFUklORyk6IFRydWUuCgoyMDA0LTEyLTI5ICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogdHJlZS1vdXRvZi1zc2EuYyAoaW5zZXJ0X2JhY2tlZGdlX2NvcGllcyk6IE5ldyBmdW5jdGlvbi4KCShyZXdyaXRlX291dF9vZl9zc2EpOiBVc2UgaXQuCgoyMDA0LTEyLTI5ICBJcmEgUm9zZW4gIDxpcmFyQGlsLmlibS5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTgxNzkKCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfZ2V0X2Jhc2VfYW5kX29mZnNldCk6IENhbGwgZ2V0X2lubmVyX3JlZmVyZW5jZQoJYW5kIHZlY3RfYW5hbHl6ZV9vZmZzZXRfZXhwci4KCSh2ZWN0X2NyZWF0ZV9hZGRyX2Jhc2VfZm9yX3ZlY3Rvcl9yZWYpOiBCdWlsZCBhZGRyZXNzX2Jhc2UgYnkgY29tYmluaW5nIAoJYmFzZSBhbmQgaW5pdGlhbF9vZmZzZXQgZmllbGRzIG9mIHZlY3Rfc3RtdF9pbmZvLgoJKHZlY3RfdXBkYXRlX2luaXRzX29mX2RyKTogVXBkYXRlIG9mZnNldCBvZiBkYXRhLXJlZiBpbnN0ZWFkIG9mIGl0cwoJYWNjZXNzLWZuLiBSZW1vdmUgYXJndW1lbnQuCgkodmVjdF91cGRhdGVfaW5pdHNfb2ZfZHJzKTogQ2FsbCB2ZWN0X3VwZGF0ZV9pbml0c19vZl9kciB3aXRoIG5ldwoJYXJndW1lbnRzLgoJKHZlY3RfY29tcHV0ZV9kYXRhX3JlZl9hbGlnbm1lbnQpOiBDaGVjayBtaXNhbGlnbm1lbnQgaW5mbyBpbiAKCXZlY3Rfc3RtdF9pbmZvLiBSZW1vdmUgYXJndW1lbnQuCgkodmVjdF9jb21wdXRlX2RhdGFfcmVmc19hbGlnbm1lbnQpOiBDYWxsIHZlY3RfY29tcHV0ZV9kYXRhX3JlZl9hbGlnbm1lbnQKCXdpdGggY29ycmVjdCBhcmd1bWVudC4KCSh2ZWN0X2FuYWx5emVfZGF0YV9yZWZfYWNjZXNzKTogQ2hlY2sgYWNjZXNzIGluZm8gaW4gdmVjdF9zdG10X2luZm8uCgkodmVjdF9hbmFseXplX3BvaW50ZXJfcmVmX2FjY2Vzcyk6IFVwZGF0ZSBzdGVwIGFuZCBpbml0aWFsX29mZnNldCBmaWVsZHMKCW9mIHZlY3Rfc3RtdF9pbmZvLgoJKHZlY3RfZ2V0X21lbXRhZ19hbmRfZHIpOiBDYWxsIHZlY3RfZ2V0X2Jhc2VfYW5kX29mZnNldCBhbmQgc2V0IHRoZSAKCWZpZWxkcyBvZiBzdG10X3ZlY19pbmZvLgoJKHZlY3RfYW5hbHl6ZV9kYXRhX3JlZnMpOiBGaW5kIHZlY3R5cGUgYW5kIHBhc3MgaXQgdG8gCgl2ZWN0X2dldF9tZW10YWdfYW5kX2RyLgoJKHZlY3RfZ2V0X2ZpcnN0X2luZGV4KTogUmVtb3ZlLgoJKHZlY3RfY29tcHV0ZV9hcnJheV9iYXNlX2FsaWdubWVudCk6IFJlbW92ZS4KCSh2ZWN0X2NvbXB1dGVfYXJyYXlfcmVmX2FsaWdubWVudCk6IFJlbW92ZQoJKHZlY3RfY3JlYXRlX2RhdGFfcmVmX3B0cik6IFVzZSBUWVBFX1NJWkVfVU5JVCBpbnN0ZWFkIEdFVF9NT0RFX1NJWkUuCgkodmVjdF9nZW5fbml0ZXJzX2Zvcl9wcm9sb2dfbG9vcCk6IFVzZSBUUkVFX0NPTlNUQU5UIGluc3RlYWQgCglob3N0X2ludGVnZXJwLgoJKHZlY3Rvcml6YWJsZV9sb2FkKTogVXNlIHNpemUgYXJpdGhtZXRpY3MuCgoyMDA0LTEyLTI5ICBJcmEgUm9zZW4gIDxpcmFyQGlsLmlibS5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTgxNzkKCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfZ2V0X2Jhc2VfYW5kX29mZnNldCk6IFJlbmFtZSAocHJldmlvdXMgbmFtZQoJdmVjdF9nZXRfYmFzZV9hbmRfYml0X29mZnNldCkuCgkodmVjdF9nZXRfbWVtdGFnX2FuZF9kcik6IFJlbmFtZSAocHJldmlvdXMgbmFtZSB2ZWN0X2dldF9zeW1ibF9hbmRfZHIpLgoKMjAwNC0xMi0yOSAgSXJhIFJvc2VuICA8aXJhckBpbC5pYm0uY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE4MTc5CgkqIHRyZWUtdmVjdG9yaXplci5oIChzdHJ1Y3QgX3N0bXRfdmVjX2luZm8pOiBBZGQgbmV3IGZpZWxkczoKCWluaXRpYWxfb2Zmc2V0LCBzdGVwLCBtaXNhbGlnbm1lbnQgYW5kIGJhc2VfYWxpZ25lZF9wIGFuZCBtYWNyb3MKCXRvIGFjY2VzcyB0aGVtLgoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAodmVjdF9hbmFseXplX29mZnNldF9leHByKTogTmV3IGZ1bmN0aW9uLgoJKG5ld19zdG10X3ZlY19pbmZvKTogSW5pdGlhbGl6ZSB0aGUgbmV3IGZpZWxkcyBvZiBzdG10X3ZlY19pbmZvLgoKCSh2ZWN0X2NyZWF0ZV9kYXRhX3JlZl9wdHIpOiBGaXggcHJpbnRpbmdzLgoKMjAwNC0xMi0yOSAgSXJhIFJvc2VuICA8aXJhckBpbC5pYm0uY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE4MTc5CgkqIHRyZWUtdmVjdG9yaXplci5jICh2ZWN0X2dldF9zeW1ibF9hbmRfZHIpOiBSZW9yZ2FuaXplLiBBZGQgbWVtdGFnIAoJcmV0cmlldmFsLgoJKHZlY3RfYW5hbHl6ZV9kYXRhX3JlZnMpOiBSZW1vdmUgbWVtdGFnIHJldHJpZXZhbC4KCjIwMDQtMTItMjggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgaW5saW5lLWFzbS8xNTc0MAoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9hc21fZXhwcik6IE1vdmUgcmVzb2x2ZSBhc20gbmFtZXMgLi4uCgkqIGMtdHlwZWNrLmMgKGJ1aWxkX2FzbV9leHByKTogLi4uIGhlcmUuICBWYWxpZGF0ZSBpbnB1dAoJY29uc3RyYWludHMuICBNYXJrIG1lbW9yeSBpbnB1dHMgYWRkcmVzc2FibGUuCgoyMDA0LTEyLTI4ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJUFIgdGFyZ2V0LzE4MzIxCgkqIGNvbmZpZy9tbWl4L21taXguYyAobW1peF9leHBhbmRfZXBpbG9ndWUpOiBDaGFuZ2UgdHlwZSBvZgoJdmFyaWFibGUgb2Zmc2V0IHRvIEhPU1RfV0lERV9JTlQuICBSZW1vdmUgb2Jzb2xldGUgY29tbWVudC4gIEZpeAoJc3BhY2luZy4KCjIwMDQtMTItMjggIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogZm9sZC1jb25zdC5jIChmb2xkX2J1aWxkX2NsZWFudXBfcG9pbnRfZXhwcik6IEZvciBhIFJFVFVSTl9FWFBSLAoJd2Ugb25seSBuZWVkIGEgY2xlYW51cCBwb2ludCBleHByZXNzaW9uIHdoZW4gdGhlIGV4cHJlc3Npb24gb24gdGhlCglsZWZ0IGhhbmQgc2lkZSBvZiB0aGUgTU9ESUZJWV9FWFBSIGluc2lkZSB0aGUgcmV0dXJuIGhhcyBzaWRlCgllZmZlY3RzLgoKMjAwNC0xMi0yOCAgRG9yaXQgTmFpc2hsb3MgIDxkb3JpdEBpbC5pYm0uY29tPgoKCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfbWFya19yZWxldmFudCkgRmlyc3QgYXJndW1lbnQgY2hhbmdlZCBmcm9tCgl2YXJyYXlfdHlwZSB0byB2YXJyYXlfdHlwZSouCgkodmVjdF9tYXJrX3N0bXRzX3RvX2JlX3ZlY3Rvcml6ZWQpOiBQYXNzICZ3b3JrbGlzdCBpbnN0ZWFkIG9mIHdvcmtsaXN0Cgl3aGVuIGNhbGxpbmcgdmVjdF9tYXJrX3JlbGV2YW50LgoKMjAwNC0xMi0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9sZWdpdGltaXplX3JlbG9hZF9hZGRyZXNzKTogRG9uJ3QKCWdlbmVyYXRlIG5vbi1vZmZzZXR0YWJsZSBESW1vZGUgbG9fc3VtIGFkZHJlc3Nlcy4KCjIwMDQtMTItMjggIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xOTEwMwoJKiBsb29wLWl2LmMgKGl2X251bWJlcl9vZl9pdGVyYXRpb25zKTogRml4IHR5cG8uCgoyMDA0LTEyLTI4ICBBbmRyZWFzIEphZWdlciAgPGFqQHN1c2UuZGU+CgoJKiBnZW5yZWNvZy5jIChjb21wdXRlX3ByZWRpY2F0ZV9jb2Rlcyk6IEF2b2lkIHdhcm5pbmcuCgoyMDA0LTEyLTI3IEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiB2YXguYyAodmF4X2FkZHJlc3NfY29zdCwgdmF4X3J0eF9jb3N0KTogQ29ycmVjdCBjYXN0cy4KCSh2YXhfcnR4X2Nvc3QpOiBIYW5kbGUgc21hbGwgb2Zmc2V0cyBmb3IgYm90aCBQTFVTIGFuZCBNSU5VUy4KCjIwMDQtMTItMjcgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1kb20uYyAodGhyZWFkX2Fjcm9zc19lZGdlKTogUmVtb3ZlIGJyb2tlbiBjb2RlIHRvCglhdm9pZCB0aHJlYWRpbmcgaW50byBhIGxvb3AuCgoyMDA0LTEyLTI3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xNzQwNgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfZXhwYW5kX3Byb2xvZ3VlKTogQWRkIFJFR19GUkFNRV9SRUxBVEVEX0VYUFIKCW5vdGUgZm9yIGFsbG9jYXRlX3N0YWNrX3dvcmtlciBpbnNuLgoKMjAwNC0xMi0yNyAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJKiBkb2MvdG0udGV4aSAoVEFSR0VUX1JFTEFYRURfT1JERVJJTkcpOiBEb2N1bWVudC4KCSogdGFyZ2V0LmggKHN0cnVjdCBnY2NfdGFyZ2V0KTogQWRkIHJlbGF4ZWRfb3JkZXJpbmcgZmllbGQuCgkqIHRhcmdldC1kZWYuaCAoVEFSR0VUX1JFTEFYRURfT1JERVJJTkcpOiBEZWZpbmUgZGVmYXVsdC4KCShUQVJHRVRfSU5JVElBTElaRVIpOiBBZGQgaXQuCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5jIChUQVJHRVRfUkVMQVhFRF9PUkRFUklORyk6IERlZmluZS4KCSogY29uZmlnL2lhNjQvaWE2NC5jIChUQVJHRVRfUkVMQVhFRF9PUkRFUklORyk6IERlZmluZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAoVEFSR0VUX1JFTEFYRURfT1JERVJJTkcpOiBEZWZpbmUuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChUQVJHRVRfUkVMQVhFRF9PUkRFUklORyk6IERlZmluZS4KCjIwMDQtMTItMjcgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCVBSIGRyaXZlci8xNjExOAoJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIC1zYXZlLXRlbXBzCglhbmQgLXguCgoyMDA0LTEyLTI3ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfZWxpbWluYXRlX2luZGV4ZWRfbWVtcmVmcyk6CglEbyBub3QgYnJlYWsgYXBhcnQgY29uc3RhbnQgcG9vbCBhZGRyZXNzZXMuCgkocnM2MDAwX2VtaXRfbW92ZSk6IE9ubHkgZm9yY2Ugc291cmNlIGludG8gUkVHIGlmIHRhcmdldCBpcyBNRU0uCgoyMDA0LTEyLTI3ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xOTE0OAoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9jb25kX2V4cHIpOiBBZGQgcG9zdF9wIHBhcmFtZXRlci4KCShnaW1wbGlmeV9tb2RpZnlfZXhwcl9yaHMpOiBBZGp1c3QgY2FsbCB0byBnaW1wbGlmeV9jb25kX2V4cHIuCgkoZ2ltcGxpZnlfZXhwcik6IExpa2V3aXNlLgoKMjAwNC0xMi0yNyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuaCAoVU5JVFNfUEVSX1NJTURfV09SRCk6IERvbid0IHVzZSBNTVgvM0ROT1cuCgoyMDA0LTEyLTI2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2dpbXBsaWZ5X3ZhX2FyZyk6IEFsc28gcGFzcyB0aGUgcmVzdWx0CglvZiB0eXBlX25hdHVyYWxfbW9kZSB0byBleGFtaW5lX2FyZ3VtZW50LgoKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAobW92PE1NWE1PREVJPl9pbnRlcm5hbF9yZXg2NCk6IE5ldy4KCShtb3Z2MnNmX2ludGVybmFsX3JleDY0KTogTmV3LgoJKG1vdjxNTVhNT0RFST5faW50ZXJuYWwpOiBVc2Ugbm8gcmVnaXN0ZXIgcHJlZmVyZW5jZXMgYXQgYWxsLgoJKG1vdnYyc2ZfaW50ZXJuYWwpOiBMaWtld2lzZS4KCjIwMDQtMTItMjYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBzaW1wbGlmeS1ydHguYyAoc2ltcGxpZnlfcmVsYXRpb25hbF9vcGVyYXRpb25fMSk6IERvbid0IHNpbXBsaWZ5CglwbHVzL21pbnVzIGFjcm9zcyBFUSBmb3IgZmxvYXRpbmctcG9pbnQuCgoyMDA0LTEyLTI2ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCVBSIHRhcmdldC8xNzY0MwoJKiBwYS5jIChwYV9mdW5jdGlvbl9va19mb3Jfc2liY2FsbCk6IFNpYmNhbGxzIGFyZSBub3Qgb2sgd2hlbgoJZ2VuZXJhdGluZyBjb2RlIGZvciB0aGUgcG9ydGFibGUgcnVudGltZS4KCjIwMDQtMTItMjUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBleHByLmMgKGNsZWFyX3N0b3JhZ2UpOiBWYWxpZGF0ZSBDT05TVDBfUlRYIGV4dGFudC4gIFNwZWNpYWwgY2FzZQoJY29tcGxleCBtb2Rlcy4KCjIwMDQtMTItMjUgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xOTA3OAoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChkZXRlcm1pbmVfdXNlX2l2X2Nvc3RfZ2VuZXJpYywKCWRldGVybWluZV91c2VfaXZfY29zdF9vdXRlcik6IEZpeCBjb21wdXRpbmcgb2YgY29zdCBmb3IgdGhlIG9yaWdpbmFsCgliaXZzLgoJKGR1bXBfdXNlKTogSGFuZGxlIGNhc2UgcmVsYXRlZF9jYW5kcyA9PSBOVUxMLgoKMjAwNC0xMi0yNSAgTWFyZWsgTWljaGFsa2lld2ljeiAgPG1hcmVrbUBhbWVsZWsuZ2RhLnBsPgoKCVBSIHRhcmdldC8xOTA1OQoJKiBjb25maWcvYXZyL2F2ci5jIChhdnJfbWN1X3R5cGVzKTogTW92ZSBhdHRpbnl7MTMsMjMxM30gZnJvbSBhdnI0Cgl0byBhdnIyLgoJKiBjb25maWcvYXZyL2F2ci5oIChMSU5LX1NQRUMpOiBEaXR0by4KCSogY29uZmlnL2F2ci90LWF2ciAoTVVMVElMSUJfTUFUQ0hFUyk6IERpdHRvLgoKMjAwNC0xMi0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiB0YXJnZXQvMTkxMzcKCSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQgKG1vdnRpX3Bvd2VyLCBtb3Z0aV9zdHJpbmcpOiBSZWxheAoJb3BlcmFuZFsxXSBwcmVkaWNhdGUgdG8gaW5wdXRfb3BlcmFuZCwgYW5kIGFkZCByPC1uIGFsdGVybmF0aXZlLgoJTW92ZSBUSW1vZGUgY29uc3RfZG91YmxlX29wZXJhbmQgc3BsaXR0ZXIgdG8gd2hlcmUgaXQgYmVsb25ncy4KCjIwMDQtMTItMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgdGFyZ2V0LzE5MTQ3CgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChhbmRzaTNfaW50ZXJuYWw3LCBhbmRzaTNfaW50ZXJuYWw4KTogRGVsZXRlLgoKMjAwNC0xMi0yNCAgVXJvcyBCaXpqYWsgIDx1cm9zQGtzcy1sb2thLnNpPgoKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoKmZpeF90cnVuY3tkLHMsaH1pXzEpOgoJUmVuYW1lIHRvICpmaXhfdHJ1bmN7ZCxzLGh9aV9pMzg3LgoJKGZpeF90cnVuY3tkLHN9ZmRpMik6IFJlb3JkZXIgdGVzdHMuCgoyMDA0LTEyLTI0ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCglGaXggUFIgZGVidWcvMTQ2MzgKCgkqIHRyZWUuaCAoREVDTF9ERUJVR19BTElBU19PRik6IE5ldyBtYWNyby4KCSogdmFyLXRyYWNraW5nLmMgKHRyYWNrX2V4cHJfcCk6IERvbid0IGRpc3F1YWxpZnkgdHJhY2tpbmcgb2YgdmFyaWFibGVzCgl0aGF0IGFyZSBhbGlhc2VzIG9mIHZhcmlhYmxlcyB3ZSB3YW50IHRvIHRyYWNrLCB1bmxlc3MgdGhlCglvcmlnaW5hbCB2YXJpYWJsZSBpcyBhbHNvIGlnbm9yZWQgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4KCShWQVJJQUJMRV9IQVNIX1ZBTCk6IFVzZSBERUNMX1VJRCwgc28gdGhhdCB0aGlzIGlzIGRldGVybWluaXN0aWMuCgkqIHRyZWUtb3V0b2Ytc3NhLmMgKGNyZWF0ZV90ZW1wKTogTm90ZSB3aG8gd2UgYXJlIGEgZGVidWcgYWxpYXMgb2YuCgkqIGR3YXJmMm91dC5jIChkd2FyZjJvdXRfdmFyX2xvY2F0aW9uKTogQWRkIHVzIHRvIHRoZSBsb2NhdGlvbiBvZgoJdGhlIGRlY2wgd2UgYXJlIGFuIGFsaWFzIG9mLgoKMjAwNC0xMi0yNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiB0YXJnZXQvMTkxNDIKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAobGVnaXRpbWF0ZV9sb19zdW1fYWRkcmVzc19wKTogQWxsb3cKCURGbW9kZSBmb3IgMzItYml0IGFnYWluLgoKMjAwNC0xMi0yMyAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiByZWxvYWQuYyAocmVnbm9fY2xvYmJlcmVkX3ApOiBBZGQgYSBnY2NfYXNzZXJ0IHRoYXQgcmVnbm8KCXJlZmVycyB0byBhIGhhcmQgcmVnaXN0ZXIuCgoyMDA0LTEyLTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZ2ltcGxpZnkuYyAoZ2ltcGxpZnlfbW9kaWZ5X2V4cHJfcmhzKTogVXNlIHR5cGVzX2NvbXBhdGlibGVfcC4KCjIwMDQtMTItMjMgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoKCSogZ2VucmVjb2cuYyAoZGlkX3lvdV9tZWFuX2NvZGVzKTogTmV3LgoJKGNvbXB1dGVfcHJlZGljYXRlX2NvZGVzKTogRmFpbCB1bm1hdGNoZWQgY29kZXMuCgoyMDA0LTEyLTIzICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuaCAoVEFSR0VUX0NQVV9DUFBfQlVJTFRJTlMpOiBBZGQKCWFzc2VydCBmb3IgbWFjaGluZT1taXBzIGZvciAhVEFSR0VUX0lSSVguCgkqIGNvbmZpZy9taXBzL2xpbnV4Lmg6IFJlbW92ZSBtYWNoaW5lPW1pcHMgYXNzZXJ0LgoJKiBjb25maWcvbWlwcy9uZXRic2QuaDogRGl0dG8uCgkqIGNvbmZpZy9taXBzL29wZW5ic2QuaDogRGl0dG8uCgoyMDA0LTEyLTIzICBEYWxlIEpvaGFubmVzZW4gIDxkYWxlakBhcHBsZS5jb20+CgoJKiB0cmVlLmMgKGl0ZXJhdGl2ZV9oYXNoX2V4cHIpOiAgQ2Fub25pY2FsaXplIGJ1aWx0aW5zLgoKMjAwNC0xMi0yMyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE2ODE5CgkqIGNhbGxzLmMgKGxvYWRfcmVnaXN0ZXJfcGFyYW1ldGVycyk6IERvbid0IGNhbGwgdXNlX3JlZ3Mgd2hlbgoJbnJlZ3MgaXMgemVyby4KCjIwMDQtMTItMjMgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJUFIgbWlkZGxlLWVuZC8xNzc0NgoJKiBleHByLmMgKGdldF9pbm5lcl9yZWZlcmVuY2UpOiBBZGQgJ2tlZXBfYWxpZ25pbmcnIHBhcmFtZXRlci4KCUJyZWFrIG9uIGFsaWduaW5nIFZJRVdfQ09OVkVSVF9FWFBSIG5vZGVzIG9uIFNUUklDVF9BTElHTk1FTlQKCXBsYXRmb3JtcyBvbmx5IGlmIGtlZXBfYWxpZ25pbmcgaXMgdHJ1ZS4KCShleHBhbmRfYXNzaWdubWVudCk6IEFkanVzdCBjYWxsIHRvIGdldF9pbm5lcl9yZWZlcmVuY2UuCgkoZXhwYW5kX2V4cHJfYWRkcl9leHByXzEpOiBMaWtld2lzZS4KCShleHBhbmRfZXhwcl9yZWFsXzEpOiBMaWtld2lzZS4KCSogZG9qdW1wLmMgKGRvX2p1bXApOiBMaWtld2lzZS4KCSogZHdhcmYyb3V0LmMgKGxvY19kZXNjcmlwdG9yX2Zyb21fdHJlZV8xKTogTGlrZXdpc2UuCgkqIGZvbGQtY29uc3QuYyAob3B0aW1pemVfYml0X2ZpZWxkX2NvbXBhcmUpOiBMaWtld2lzZS4KCShkZWNvZGVfZmllbGRfcmVmZXJlbmNlKTogTGlrZXdpc2UuCgkoc3BsaXRfYWRkcmVzc190b19jb3JlX2FuZF9vZmZzZXQpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAoc3BsaXRfYWRkcmVzc19jb3N0KTogTGlrZXdpc2UuCgkqIHRyZWUuaCAoZ2V0X2lubmVyX3JlZmVyZW5jZSk6IEFkanVzdCBwcm90b3R5cGUuCgoyMDA0LTEyLTIzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChvdmVycmlkZV9vcHRpb25zKTogUmV2ZXJ0IGxhc3QgY2hhbmdlCgl3cnQgZmFuY3kgMzg3IG1hdGguCgoyMDA0LTEyLTIzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2FscGhhL2FscGhhLm1kIChvbmVfY21wbDxtb2RlPjIsIGFuZDxtb2RlPjMsIGFuZG5vdDxtb2RlPjMsCglpb3I8bW9kZT4zLCBpb3Jub3Q8bW9kZT4zLCB4b3I8bW9kZT4zLCB4b3Jub3Q8bW9kZT4zKTogTmV3IG1hY3JvaXplZAoJdmVjdG9yIG9wZXJhdGUgcGF0dGVybnMuCgoyMDA0LTEyLTIzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2V4cGFuZF92ZWN0b3JfbW92ZSk6IFRpZHkuCgkoaXg4Nl9leHBhbmRfdmVjdG9yX21vdmVfbWlzYWxpZ24pOiBOZXcuCgkoaXg4Nl9taXNhbGlnbmVkX21lbV9vayk6IFJlbW92ZS4KCShUQVJHRVRfVkVDVE9SSVpFX01JU0FMSUdORURfTUVNX09LKTogUmVtb3ZlLgoJKiBjb25maWcvaTM4Ni9pMzg2LXByb3Rvcy5oOiBVcGRhdGUuCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKFNTRU1PREVJKTogUmVuYW1lIGZyb20gU1NFSU5UMTYuCgkoTU1YTU9ERUkpOiBSZW5hbWUgZnJvbSBNTVhJTlQ4LgoJKFNTRU1PREUsIE1NWE1PREUsIG1vdm1pc2FsaWduPG1vZGU+KTogTmV3LgoKMjAwNC0xMi0yMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTY0MDUKCSogZ2ltcGxpZnkuYyAoZ2ltcGxpZnlfbW9kaWZ5X2V4cHJfcmhzKTogSGFuZGxlCglJTkRJUkVDVF9SRUYvQUREUl9FWFBSIGNvbWJpbmF0aW9ucy4KCjIwMDQtMTItMjIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoYWxwaGFfZXhwYW5kX21vdik6IFNwbGl0IG91dCAuLi4KCShhbHBoYV9leHBhbmRfbW92bWlzYWxpZ24pOiAuLi4gbWlzYWxpZ25lZCB2ZWN0b3Igc3VwcG9ydC4KCShUQVJHRVRfVkVDVE9SSVpFX01JU0FMSUdORURfTUVNX09LKTogUmVtb3ZlLgoJKiBjb25maWcvYWxwaGEvYWxwaGEtcHJvdG9zLmg6IFVwZGF0ZS4KCSogY29uZmlnL2FscGhhL2FscGhhLm1kIChWRUMpOiBOZXcgbWFjcm8uCgkobW92djhxaSwgbW92djRoaSwgbW92djJzaSk6IENvbXByZXNzIHdpdGggVkVDLgoJKG1vdnY4cWlfZml4LCBtb3Z2NGhpX2ZpeCwgbW92djJzaV9maXgpOiBMaWtld2lzZS4KCShtb3Z2OHFpX25vZml4LCBtb3Z2NGhpX25vZml4LCBtb3Z2MnNpX25vZml4KTogTGlrZXdpc2UuCgkobW92bWlzYWxpZ248bW9kZT4pOiBOZXcuCgoyMDA0LTEyLTIyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogb3B0YWJzLmggKE9USV9tb3ZtaXNhbGlnbiwgbW92bWlzYWxpZ25fb3B0YWIpOiBOZXcuCgkqIG9wdGFicy5jIChpbml0X29wdGFicyk6IENyZWF0ZSBpdC4KCSogZ2Vub3Bpbml0LmMgKG9wdGFicyk6IEluaXRpYWxpemUgaXQuCgkqIGV4cHIuYyAoZXhwYW5kX2V4cHJfcmVhbF8xKSA8TUlTQUxJR05FRF9JTkRJUkVDVF9SRUY+OiBVc2UgaXQuCgkqIHRyZWUtdmVjdG9yaXplci5jICh2ZWN0X3N1cHBvcnRhYmxlX2RyX2FsaWdubWVudCk6IExpa2V3aXNlLgoJKiB0YXJnZXQtZGVmLmggKFRBUkdFVF9WRUNUT1JJWkVfTUlTQUxJR05FRF9NRU1fT0spOiBSZW1vdmUuCgkqIHRhcmdldC5oICh2ZWN0b3JpemUubWlzYWxpZ25lZF9tZW1fb2spOiBSZW1vdmUuCgkqIHRhcmdob29rcy5jIChkZWZhdWx0X3ZlY3RfbWlzYWxpZ25lZF9tZW1fb2spOiBSZW1vdmUuCgkqIGRvYy9tZC50ZXhpIChtb3ZtaXNhbGlnbik6IE5ldy4KCSogZG9jL3RtLnRleGkgKFRBUkdFVF9WRUNUT1JJWkVfTUlTQUxJR05FRF9NRU1fT0spOiBSZW1vdmUuCgoyMDA0LTEyLTIyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvZW1taW50cmluLmggKF9tbV9sb2FkaF9wZCk6IERvbid0IGNhc3QgcG9pbnRlciBhcmcKCXRvIF9fdjJzaS4KCShfbW1fc3RvcmVoX3BkLCBfbW1fbG9hZGxfcGQsIF9tbV9zdG9yZWxfcGQpOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2luaXRfbW14X3NzZV9idWlsdGlucyk6IFVzZSBkb3VibGUqIG9yCgljb25zdCBkb3VibGUqIGZvciBfX2J1aWx0aW5faWEzMl9sb2FkaHBkLCBfX2J1aWx0aW5faWEzMl9sb2FkbHBkLAoJX19idWlsdGluX2lhMzJfc3RvcmVocGQsIF9fYnVpbHRpbl9pYTMyX3N0b3JlbHBkLgoJKGl4ODZfZXhwYW5kX2J1aWx0aW4pOiBVcGRhdGUgdG8gbWF0Y2guCgkoaXg4Nl9leHBhbmRfdmVjdG9yX2luaXQpOiBVc2Ugc3NlMl9sb2FkbHBkLgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kICh2ZWNfc2V0djJkZik6IFVzZSBzc2UyX2xvYWRscGQsIHNzZTJfbG9hZGhwZC4KCSh2ZWNfZXh0cmFjdHYyZGYpOiBVc2Ugc3NlMl9zdG9yZWxwZCwgc3NlMl9zdG9yZWhwZC4KCShzc2UyX3N0b3JlaHBkLCBzc2UyX2xvYWRocGQsIHNzZTJfc3RvcmVscGQsIHNzZTJfbG9hZGxwZCk6IE5ldy4KCShzc2UyX21vdmhwZCk6IFJlbW92ZS4KCjIwMDQtMTItMjMgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgdGFyZ2V0LzE4NzUxCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKGxlZ2l0aW1hdGVfbG9fc3VtX2FkZHJlc3NfcCk6IFJldHVybgoJZmFsc2UgZm9yIGFueXRoaW5nIGxhcmdlciB0aGFuIDMyIGJpdHMgaW4gMzItYml0IGNvZGUuCgoyMDA0LTEyLTIyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoYnRzcSwgYnRycSwgYnRjcSk6IEZpeCBtb2Rlcy4KCShidCBwZWVwaG9sZXMpOiBMaWtld2lzZS4KCgkqIHZhcmFzbS5jIChmb3JjZV9jb25zdF9tZW0pOiBDYWxsIHNldF9tZW1fYWxpZ24uCgoyMDA0LTEyLTIyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvcHJlZGljYXRlcy5tZCAoc3NlX2NvbXBhcmlzb25fb3BlcmF0b3IpOiBGaXgKCXR5cG8gaW4gaWVlZSB0ZXN0LgoJKGFyaXRoX29yX2xvZ2ljYWxfb3BlcmF0b3IpOiBEb3duY2FzZSBjb2Rlcy4KCjIwMDQtMTItMjMgIEtheiBLb2ppbWEgIDxra29qaW1hQGdjYy5nbnUub3JnPgoKCVBSIHRhcmdldC8xODUxMQoJKiByZWxvYWQxLmMgKGVtaXRfb3V0cHV0X3JlbG9hZF9pbnNucyk6IENoZWNrIGlmIE9MRCBpcyBhIGhhcmQKCXJlZ2lzdGVyIGJlZm9yZSBjYWxsaW5nIHJlZ25vX2Nsb2JiZXJlZF9wLgoJKiByZWxvYWQuYzogVXBkYXRlIGNvbW1lbnQgZm9yIHJlZ25vX2Nsb2JiZXJlZF9wLgoKMjAwNC0xMi0yMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAob3ZlcnJpZGVfb3B0aW9ucyk6IFJlc3BlY3QgdXNlciBkaXNhYmxlIG9mCglmYW5jeSAzODcgbWF0aCwgc3NlLCBtbXguCgkoY29uc3RydWN0X2NvbnRhaW5lcik6IEdlbmVyYXRlIGVycm9yIGlmIHdlIG5lZWQgYW4gc3NlIHJlZ3N0ZXIKCWFuZCBzc2UgaGFzIGJlZW4gZGlzYWJsZWQuCgkqIGNvbmZpZy9pMzg2L2kzODYuaCAoVEFSR0VUX1NXSVRDSEVTKTogRGlzYWJsaW5nIHNzZSBhbHNvIGRpc2FibGVzCglsYXRlciBzc2UgZ2VuZXJhdGlvbnMuICBEaXNhYmxpbmcgbW14IGFsc28gZGlzYWJsZXMgM2Rub3cuCgoyMDA0LTEyLTIyICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIHRyZWUtaW5saW5lLmMgKHN0cnVjdCBpbmxpbmVfZGF0YSk6IFJlbW92ZSBpbmxpbmVkX2Zucy4KCShleHBhbmRfY2FsbF9pbmxpbmUpOiBSZW1vdmUgZGVhZCBjb2RlIHNldHRpbmcKCWlubGluZWRfZm5zLgoJKG9wdGltaXplX2lubGluZV9jYWxscyk6IFJlbW92ZSBkZWFkIGNvZGUgc2V0dGluZyBERUNMX0lOTElORURfRk5TLgoJKiB0cmVlLmggKHN0cnVjdCB0cmVlX2RlY2wpOiBSZW1vdmUgaW5saW5lZF9mbnMuCgoyMDA0LTEyLTIyICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIHRyZWUtYnJvd3Nlci5jOiBSZW1vdmUgb2Jzb2xldGUgI2lmZGVmIEhPU1RfRUJDRElDIGNvZGUuCgoyMDA0LTEyLTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCVBSIHRhcmdldC8xODg5NgoJKiBmdW5jdGlvbi5jIChzcGxpdF9jb21wbGV4X2FyZ3MpOiBTZXQgREVDTF9BUlRJRklDSUFMLCBERUNMX0lHTk9SRURfUAoJZm9yIHJlYWwgYW5kIGltYWdpbmFyeSBwYXJ0cyBpZiB0aGUgcGFybSBpcyBhZGRyZXNzYWJsZS4KCShhc3NpZ25fcGFybXNfdW5zcGxpdF9jb21wbGV4KTogSWYgcGFybSBhZGRyZXNzYWJsZSwgc2F2ZSByZWFsCglhbmQgaW1hZ2luYXJ5IHBhcnRzIHRvIGEgc3RhY2sgdGVtcC4gIFBhc3MgYXNzaWduX3Bhcm1fZGF0YV9hbGwuCgkoYXNzaWduX3Bhcm1zKTogQWRqdXN0IGFzc2lnbl9wYXJtc191bnNwbGl0X2NvbXBsZXggY2FsbC4KCjIwMDQtMTItMjIgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogdHJlZS5oIChERUNMX1BUQV9BTElBU1ZBUik6IERlYWQuCgkoc3RydWN0IHRyZWVfZGVjbCk6IFJlbW92ZSBhbGlhc192YXIgZmllbGQuCgoyMDA0LTEyLTIyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogc3lzdGVtLmggKElOX1JBTkdFKTogUmVzdG9yZSBIT1NUX1dJREVfSU5UIGNhc3QuCgkqIHRyZWUuaCAoSVNfRVhQUl9DT0RFX0NMQVNTKTogRG8gbm90IHVzZSBJTl9SQU5HRS4KCjIwMDQtMTItMjIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgkgICAgVXJvcyBCaXpqYWsgIDx1cm9zQGtzcy1sb2thLnNpPgoKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAodHJ1bmNkZnNmMik6IERvbid0IGNyZWF0ZSBzdGFjayB0ZW1wIHdoZW4KCXVzaW5nIHNzZSBtYXRoIG9ubHkuICBVc2UgdHJ1bmNkZnNmMl93aXRoX3RlbXAuCgkodHJ1bmNkZnNmMl93aXRoX3RlbXApOiBOZXcuCgkodHJ1bmNkZnNmX2Zhc3RfaTM4Nyk6IFJlbmFtZSBmcm9tIHRydW5jZGZzZjJfbm9vcC4gIEFkZCBtZW1vcnkKCW91dHB1dCBhbHRlcm5hdGl2ZS4KCSh0cnVuY2Rmc2ZfbWl4ZWQpOiBSZW5hbWUgZnJvbSB0cnVuY2Rmc2YyXzFfc3NlLiAgQ29tcHJlc3MgZHVwbGljYXRlCglhbHRlcm5hdGl2ZXMuCgkodHJ1bmNkZnNmX2Zhc3Rfc3NlKTogUmVuYW1lIGZyb20gdHJ1bmNkZnNmMl8yLiAgUmVtb3ZlIGYgYWx0ZXJuYXRpdmUuCgkodHJ1bmNkZnNmMl8zLCB0cnVuY2Rmc2YyX3NzZV9vbmx5KTogUmVtb3ZlLgoJKHRydW5jZGZzZl9pMzg3KTogUmVuYW1lIGZyb20gdHJ1bmNkZnNmMl8xLiAgQ29tcHJlc3MgZHVwbGljYXRlcy4KCSh0cnVuY2Rmc2ZfZmFzdF9taXhlZCk6IE5ldy4KCSh0cnVuY2Rmc2Ygc3BsaXR0ZXJzKTogUmVtb3ZlIGFsbCBleGNlcHQgdGhlIDM4NyBsb2FkL3N0b3JlIHNwbGl0LgoJKHRydW5jeGZzZjJfMSwgdHJ1bmN4ZmRmMl8xKTogVW5pZnkgZW5hYmxlIGNvbnN0cmFpbnQgd2l0aAoJcmVzcGVjdCB0byBUQVJHRVRfU1NFMiwgVEFSR0VUXzgwMzg3LCBUQVJHRVRfU1NFX01BVEggYW5kCglUQVJHRVRfTUlYX1NTRV9JMzg3LgoJKCp0cnVuY3hme3MsZH1mMl8xKTogUmVuYW1lIHRvICp0cnVuY3hme3MsZH1mMl9taXhlZC4KCSh0cnVuY3hme3MsZH1mMl9ub29wKSBSZW5hbWUgdG8gdHJ1bmN4ZntkLHN9ZjJfaTM4N19ub29wLgoJKCp0cnVuY3hme3MsZH1mMl9pMzg3KTogTmV3IHBhdHRlcm5zLgoJKCp0cnVuY3hme3MsZH1mMl8yKTogUmVuYW1lIHRvICp0cnVuY3hme3MsZH1mMl9pMzg3XzEuCgkodHJ1bmN4ZntzLGR9ZjIsIGZtb2R7cyxkfWYzLCBkcmVte3MsZH1mMywgbG9nMXB7cyxkfWYyLAoJcmludHtzLGR9ZjIsIGZsb29ye3MsZH1mMiwgY2VpbHtzLGR9ZjIsIGJ0cnVuY3tzLGR9ZjIsCgluZWFyYnlpbnR7cyxkfWYyKTogVXNlIHJlbmFtZWQgcGF0dGVybnMuCgoyMDA0LTEyLTIyICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogdHJlZS5oIChUWVBFX1NJWkVTX0dJTVBMSUZJRUQpOiBOZXcuCgkqIGZ1bmN0aW9uLmMgKGdpbXBsaWZ5X3Bhcm1fdHlwZSk6IERvbid0IGdpbXBsaWZ5IHR5cGUgaWYgYWxyZWFkeSBkb25lLgoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9kZWNsX2V4cHIpOiBMaWtld2lzZS4KCShnaW1wbGlmeV90eXBlX3NpemVzKTogU2V0IFRZUEVfU0laRVNfR0lNUExJRklFRC4gIEV4YW1pbmUgbmVzdGVkCglhcnJheSB0eXBlcy4KCjIwMDQtMTItMjIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBnaW1wbGlmeS5jIChldmFsX3NhdmVfZXhwcik6IFJlbW92ZS4KCShnaW1wbGlmeV9vbmVfc2l6ZXBvcyk6IFVuc2hhcmUgZXhwciBiZWZvcmUgZ2ltcGxpZnlpbmcuCgkqIHN0b3ItbGF5b3V0LmMgKHZhcmlhYmxlX3NpemUpOiBSZXZlcnQgMjAwNC0xMi0xOSBjaGFuZ2UuCgkobGF5b3V0X2RlY2wpOiBSZXZlcnQgMjAwNC0xMi0xOCBjaGFuZ2UuCgkobGF5b3V0X3R5cGUpOiBSZXZlcnQgMjAwNC0xMi0yMSBjaGFuZ2UuCgoyMDA0LTEyLTIyICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogdHJlZS1zcmEuYyAodHlwZV9jYW5fYmVfZGVjb21wb3NlZF9wKTogUmVqZWN0IHZhcmlhYmxlIHNpemVkIHR5cGVzLgoKMjAwNC0xMi0yMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2VmaWxlLmluIChpbnN0YWxsLWNvbW1vbik6IFJlbW92ZSBzcGVjaWFsLWNhc2UgY29kZSBmb3Igd2hlbgoJU1BFQ1MgaXMgZGVmaW5lZC4KCjIwMDQtMTItMjIgIEphbiBCZXVsaWNoICA8amJldWxpY2hAbm92ZWxsLmNvbT4KCgkqIGNvbmZpZy5nY2M6IEFkZCBkYnhlbGYuaCB0byBOZXRXYXJlJ3MgdG1fZmlsZS4KCSogY29uZmlnL2kzODYvbmV0d2FyZS1jcnQwLmM6IFByb3RvdHlwZSBfX2luaXRfZW52aXJvbm1lbnQgYW5kCglfX2RlaW5pdF9lbnZpcm9ubWVudCBwcmlvciB0byB0aGVpciBkZWZpbml0aW9uLgoJKF9faW5pdF9lbnZpcm9ubWVudCk6IENvcnJlY3QgaW52b2thdGlvbiBvZiBjb25zdHJ1Y3RvciBmdW5jdGlvbi4KCSogY29uZmlnL2kzODYvbmV0d2FyZS5oIChUQVJHRVRfT1NfQ1BQX0JVSUxUSU5TKTogVXNlCglidWlsdGluX2RlZmluZV9zdGQgcmF0aGVyIHRoYW4gYnVpbHRpbl9kZWZpbmUgb24gSUFQWDM4Ni4KCSogY29uZmlnL2kzODYvbndsZC5oOiBEaXNhYmxlIHN0YWJzIGRlYnVnZ2luZyBpbmZvIHdpdGggdGhlIGxpbmtlcgoJdGhpcyBmaWxlIHN1cHBvcnRzLgoJKiBjb25maWcvaTM4Ni90LW53bGQgKFNITElCX0xJTkspOiBEbyBub3QgdXNlIGEgdGVtcG9yYXJ5IGZpbGUgZm9yCgl0aGUgb3V0cHV0LiBBZGQgLXBvc2l4IHRvIHRoZSBvcHRpb25zIGFzIHRoYXQgaXMgdGhlIG1vcmUgY29tcGF0aWJsZQoJbW9kZS4KCSogZ3Roci1ua3MuaDogRm9ybWF0dGluZy4KCShfX2d0aHJlYWRfbXV0ZXhfaW5pdF9mdW5jdGlvbik6IEtpbGwgdGhlIGR1YmlvdXMgdXNlIG9mCglOWF9NVVRFWF9SRUNVUlNJVkUgYXMgaXQgaXMgbm93IGNsZWFyIHRoYXQgdGhlIHRyYWRpdGlvbmFsIG11dGV4ZXMKCXdlcmUgbm90IG1lYW50IHRvIGJlIHJlY3Vyc2l2ZS4KCShfX2d0aHJlYWRfcmVjdXJzaXZlX211dGV4X3QsIF9fR1RIUkVBRF9SRUNVUlNJVkVfTVVURVhfSU5JVF9GVU5DVElPTiwKCV9fZ3RocmVhZF9yZWN1cnNpdmVfbXV0ZXhfaW5pdF9mdW5jdGlvbiwKCV9fZ3RocmVhZF9yZWN1cnNpdmVfbXV0ZXhfbG9jaywgX19ndGhyZWFkX3JlY3Vyc2l2ZV9tdXRleF90cnlsb2NrLAoJX19ndGhyZWFkX3JlY3Vyc2l2ZV9tdXRleF91bmxvY2spOiBOZXcuCgoyMDA0LTEyLTIyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL3QtbGludXg2NDogUmVtb3ZlIGNvZGUgdGhhdCBtZXNzZWQgd2l0aCAkKFNQRUNTKS4KCShNVUxUSUxJQl9PUFRJT05TLCBNVUxUSUxJQl9ESVJOQU1FUywgTVVMVElMSUJfT1NESVJOQU1FUyk6IE1vdmUKCW4zMiB0byB0aGUgZnJvbnQuCgkoTVVMVElMSUJfRVhUUkFfT1BUUywgQ1JUU1RVRkZfVF9DRkxBR1MsIENSVFNUVUZGX1RfQ0ZMQUdTX1MpOgoJUmVtb3ZlZC4KCSogY29uZmlnL21pcHMvbGludXg2NC5oIChEUklWRVJfU0VMRl9TUEVDUyk6IERvbid0IGhhbmRsZQoJLW1hYmktZmFrZS1kZWZhdWx0LgoJKFNVQlRBUkdFVF9UQVJHRVRfU1dJVENIRVMpOiBMaWtld2lzZS4KCjIwMDQtMTItMjEgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIGMrKy8xODk4NAoJKiBwb2ludGVyLXNldC5jIChwb2ludGVyX3NldF9jb250YWlucyk6IEFkZCBiYWNrLgoJKiBwb2ludGVyLXNldC5oIChwb2ludGVyX3NldF9jb250YWlucyk6IEFkZCBiYWNrLgoKMjAwNC0xMi0yMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGdpbXBsaWZ5LmMgKGV2YWxfc2F2ZV9leHByKTogTmV3LgoJKGdpbXBsaWZ5X29uZV9zaXplcG9zKTogVXNlIGl0LgoJKiBzdG9yLWxheW91dC5jIChsYXlvdXRfdHlwZSk6IFVuc2hhcmUgVFlQRV9NSU4vTUFYX1ZBTFVFLgoKMjAwNC0xMi0yMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHN5c3RlbS5jIChJTl9SQU5HRSk6IFVzZSBwbGFpbiB1bnNpZ25lZCwgbm90IHVuc2lnbmVkCglIT1NUX1dJREVfSU5ULgoJKiB0cmVlLmRlZiAoVk9JRF9UWVBFLCBJTlRFR0VSX1RZUEUsIFJFQUxfVFlQRSwgQ09NUExFWF9UWVBFLAoJVkVDVE9SX1RZUEUsIE9GRlNFVF9UWVBFLCBFTlVNRVJBTF9UWVBFLCBCT09MRUFOX1RZUEUsIENIQVJfVFlQRSwKCVBPSU5URVJfVFlQRSwgUkVGRVJFTkNFX1RZUEUsIE1FVEhPRF9UWVBFLCBGVU5DVElPTl9UWVBFLAoJRklMRV9UWVBFLCBBUlJBWV9UWVBFLCBSRUNPUkRfVFlQRSwgVU5JT05fVFlQRSwKCVFVQUxfVU5JT05fVFlQRSk6IFJlb3JkZXIgZm9yIGJldHRlciBjb2RlIGVmZmljaWVuY3kuCgkoQ09OU1RfREVDTCwgVFlQRV9ERUNMLCBWQVJfREVDTCwgRklFTERfREVDTCwgUEFSTV9ERUNMKTogTGlrZXdpc2UuCgkoSU5ESVJFQ1RfUkVGLCBBTElHTl9JTkRJUkVDVF9SRUYsIE1JU0FMSUdORURfSU5ESVJFQ1RfUkVGKTogTGlrZXdpc2UuCgkqIHRyZWUuaCAoSU5ESVJFQ1RfUkVGX1ApOiBSZW9yZGVyIGNoZWNrcyBmb3IgYmV0dGVyIG9wdGltaXphdGlvbi4KCShJU19FWFBSX0NPREVfQ0xBU1MpOiBVc2UgSU5fUkFOR0UuCgkoSU5URUdSQUxfVFlQRV9QLCBGTE9BVF9UWVBFX1ApOiBSZW9yZGVyIGNoZWNrcyBmb3IgYmV0dGVyCglvcHRpbWl6YXRpb24uCgoyMDA0LTEyLTIxICBEYXZpZCBPJ0JyaWVuICA8b2JyaWVuQEZyZWVCU0Qub3JnPgoKCSogY29uZmlnL2ZyZWVic2Qtc3BlYy5oOiAgVXNlIEtTRSBwdGhyZWFkIGxpYiBmb3IgLXB0aHJlYWQuCgoyMDA0LTEyLTIxICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJUFIgYy8xODk2MwoJKiBjLWRlY2wuYyAocHVzaGRlY2wpOiBSZW1vdmUgYmxvY2sgdHJ5aW5nIHRvIG1lcmdlIHN0YXRpYyBmdW5jdGlvbgoJZGVjbGFyYXRpb25zIGF0IGJsb2NrIHNjb3BlIHRvIGZpbGUgc2NvcGUgZGVjbGFyYXRpb25zLgoKMjAwNC0xMi0yMSAgSmFtZXMgQS4gTW9ycmlzb24gIDxwaHl0aG9uQGdjYy5nbnUub3JnPgoKCVBSIGMvMTg1OTYKCSogYy1wYXJzZS5pbiAoaW5pdGRjbCk6IERvbid0IHByb2Nlc3MgYSBkZWNsYXJhdGlvbiBpZiBzdGFydF9kZWNsIGZhaWxzLgoJKG5vdHlwZV9pbml0ZGNsKTogIERvbid0IHByb2Nlc3MgYSBkZWNsYXJhdGlvbiBpZiBzdGFydF9kZWNsIGZhaWxzLgoJKiBjLWRlY2wuYyAoc3RhcnRfZGVjbCk6IEZhaWwgaWYgZ3Jva2RlY2xhcmF0b3IgZmFpbHMuCgkoZ3Jva2RlY2xhcmF0b3IpOiBGYWlsIGlmIGEgZnVuY3Rpb24gZGVmaW5pdGlvbiBoYXMgYW4gaW52YWxpZCBzdG9yYWdlCgljbGFzcy4KCSogYy10eXBlY2suYyAoc3RhcnRfaW5pdCk6IFRyZWF0IGVycm9yX21hcmtfbm9kZSB0aGUgc2FtZSBhcyAwLgoKMjAwNC0xMi0yMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoeDg2X3NzZV9zcGxpdF9yZWdzKTogUmVuYW1lIGZyb20KCXg4Nl9zc2VfcGFydGlhbF9yZWdzLgoJKiBjb25maWcvaTM4Ni9pMzg2LmggKHg4Nl9zc2Vfc3BsaXRfcmVncyk6IExpa2V3aXNlLgoJKFRBUkdFVF9TU0VfU1BMSVRfUkVHUyk6IFJlbmFtZSBmcm9tIFRBUkdFVF9TU0VfUEFSVElBTF9SRUdTLgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kICgqKTogVXBkYXRlIHRvIG1hdGNoLiAgUmVtb3ZlIHR3bwoJZmxvYXRzaXNmIHNwbGl0dGVycyB0aGF0IHVzZSBpdC4KCgkqIGNvbmZpZy9pMzg2L2kzODYuaCAoeDg2X3NzZV9wYXJ0aWFsX3JlZ3NfZm9yX2N2dHNkMnNzKTogUmVtb3ZlLgoKCSogY29uZmlnL2kzODYvaTM4Ni5jICh4ODZfc3NlX3BhcnRpYWxfcmVnc19mb3JfY3Z0c2Qyc3MpOiBSZW1vdmUuCgkqIGNvbmZpZy9pMzg2L2kzODYuaCAoVEFSR0VUX1NTRV9QQVJUSUFMX1JFR1NfRk9SX0NWVFNEMlNTKTogUmVtb3ZlLgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kICh0cnVuY2Rmc2YyXzFfc3NlKTogRG9uJ3QgdGVzdCBpdC4KCSh0cnVuY2Rmc2YyXzIsIHRydW5jZGZzZjJfc3NlX29ubHkpOiBMaWtld2lzZS4KCSh0cnVuY2Rmc2YyXzFfc3NlX25vb3ZlcmxhcCwgdHJ1bmNkZnNmMl8yX25vb3ZlcmxhcCk6IFJlbW92ZS4KCSh0cnVuY2Rmc2YyX3NzZV9vbmx5X25vb3ZlcmxhcCk6IFJlbW92ZS4KCgkqIGNvbmZpZy9pMzg2L2kzODYuaCAoVEFSR0VUX1NTRV9UWVBFTEVTU19MT0FEMCk6IFJlbW92ZS4KCjIwMDQtMTItMjEgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBleHByLmMgKGVtaXRfZ3JvdXBfbG9hZF8xKTogUmV0dXJuIHRoZSBzb3VyY2UgaWYgdGhlIG1vdmUKCWlzIGEgcmVndWxhciBtb3ZlIGJldHdlZW4gY29tcGxleCB2YWx1ZXMuCgoyMDA0LTEyLTIwICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBtaWRkbGUtZW5kLzE4NjgzCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKGN1cnJlbnRfZmlsZV9mdW5jdGlvbl9vcGVyYW5kKTogT25seSBjaGVjawoJY3VycmVudF9mdW5jdGlvbl9kZWNsJ3MgREVDTF9SVEwgaWYgaXQgaGFzIGFscmVhZHkgYmVlbiBzZXQuCgoyMDA0LTEyLTIwICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBtaWRkbGUtZW5kLzE4NjgzCgkqIGZ1bmN0aW9uLmMgKHBvcF9mdW5jdGlvbl9jb250ZXh0X2Zyb20pOiBEb24ndCByZXNldCByZWdfcmVudW1iZXIuCgoyMDA0LTEyLTIwICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIG1pZGRsZS1lbmQvMTg3NzYKCSogZXhwci5jICh3cml0ZV9jb21wbGV4X3BhcnQpOiBVc2UgYSBzdWJyZWcgaWYgdGhlIG9yaWdpbmFsIG9iamVjdAoJaXMgYSBoYXJkIHJlZyB0aGF0IHNwYW5zIGFuIGV2ZW4gbnVtYmVyIG9mIHJlZ3Mgb3IgYSBNRU0uCgkocmVhZF9jb21wbGV4X3BhcnQpOiBMaWtld2lzZS4KCjIwMDQtMTItMjAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5pbiAoaW5zdGFsbC1jb21tb24pOiBEbyBub3QgaW5zdGFsbCB0aGUgc3BlY3MgZmlsZQoJdW5sZXNzIFNQRUNTIGlzIGRlZmluZWQuCgoyMDA0LTEyLTIwICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMTg5NDIKCSogc2ltcGxpZnktcnR4LmMgKHNpbXBsaWZ5X3JlbGF0aW9uYWxfb3BlcmF0aW9uXzEpOiBTaW1wbGlmeQoJeCArIGNzdDEgPT0gY3N0MiB0byB4ID09IGNzdDIgLSBjc3QxLiAgTWFkZSBzdGF0aWMuCgoyMDA0LTEyLTIwICBNYXR0IEF1c3Rlcm4gIDxhdXN0ZXJuQGFwcGxlLmNvbT4KCglQUiBjKysvMTkwNDQKCSogYy1jb21tb24uYyAoc2V0X2J1aWx0aW5fdXNlcl9hc3NlbWJsZXJfbmFtZSk6IE5ldy4KCSogYy1jb21tb24uaCAoc2V0X2J1aWx0aW5fdXNlcl9hc3NlbWJsZXJfbmFtZSk6IERlY2xhcmUuCgkqIGMtZGVjbC5jIChmaW5pc2hfZGVjbCk6IFVzZSBzZXRfYnVpbHRpbl91c2VyX2Fzc2VtYmxlcl9uYW1lCgoyMDA0LTEyLTIwICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xOTA4MAoKCU1lcmdlIGZyb20gdHJlZS1jbGVhbnVwLWJyYW5jaAoKCSogdHJlZS1mbG93LWlubGluZS5oIChjbGVhcl9jYWxsX2Nsb2JiZXJlZCk6IE5ldyBmdW5jdGlvbi4KCSogdHJlZS1zc2EtYWxpYXMuYyAoaW5pdF9hbGlhc19pbmZvKTogQ2FsbCBpdC4KCjIwMDQtMTItMjAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChzc2UyX21vdnNkKTogUmVtb3ZlIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rCgljaGVjay4KCjIwMDQtMTItMjAgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCSAgICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiBtaWRkbGUtZW5kLzE4MTkxCglQUiBtaWRkbGUtZW5kLzE4OTY1CglQUiBtaWRkbGUtZW5kLzE4OTk5CgkqIGV4cHIuYyAoY2F0ZWdvcml6ZV9jdG9yX2VsZW1lbnRzXzEpOiBDb3VudCB0aGUgdG90YWwgbnVtYmVyCglvZiBlbGVtZW50cyBpbiB0aGUgY29uc3RydWN0b3IuCgkoY2F0ZWdvcml6ZV9jdG9yX2VsZW1lbnRzKTogUmV0dXJuIGl0IGluIGEgbmV3IGFyZ3VtZW50LgoJKiB0cmVlLmggKGNhdGVnb3JpemVfY3Rvcl9lbGVtZW50cyk6IEFkanVzdCBwcm90b3R5cGUuCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2luaXRfY3Rvcl9ldmFsX3JhbmdlKTogTmV3LgoJKGdpbXBsaWZ5X2luaXRfY3Rvcl9ldmFsKTogR2ltcGxpZnkgUkFOR0VfRVhQUi4KCShnaW1wbGlmeV9pbml0X2NvbnN0cnVjdG9yKTogQmxvY2sgY2xlYXIgdGhlIG9iamVjdCBpZiB0aGUKCWNvbnN0cnVjdG9yIGhhcyBmZXdlciBlbGVtZW50cyB0aGFuIHRoZSBvYmplY3QgdHlwZS4gIE9ubHkgdHJ5Cgl0byBhZGQgYXNzaWdubWVudHMgdG8gaW5kaXZpZHVhbCBlbGVtZW50cyB3aGVuIHdlIGhhdmUgdG8uCgoyMDA0LTEyLTIwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2luaXRfbW14X3NzZV9idWlsdGlucyk6IFVzZQoJbG9uZ19sb25nX2ludGVnZXJfdHlwZV9ub2RlIGluIGJ1aWxkaW5nIFYyRElfdHlwZV9ub2RlLgoKCSogY29uZmlnL2kzODYvZW1taW50cmluLmg6IFVzZSBfX3ZlY3Rvcl9zaXplX18gaW5zdGVhZCBvZiB2ZWN0b3Jfc2l6ZS4KCSogY29uZmlnL2kzODYvbW1pbnRyaW4uaCwgY29uZmlnL2kzODYveG1taW50cmluLmg6IExpa2V3aXNlLgoKMjAwNC0xMi0yMCAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBkb2MvbWQudGV4aSAoRXhwYW5kZXIgRGVmaW5pdGlvbnMpOiBVc2UgQGVtcGggaW5zdGVhZCBvZiBAc3Ryb25nCglhcm91bmQgTm90ZTogdGV4dCB0byB3b3JrYXJvdW5kIGEgbGltaXRhdGlvbiBvZiB0aGUgSW5mbyBmb3JtYXQuCgkqIGRvYy9jcHAudGV4aSAoSW52b2NhdGlvbik6IExpa2V3aXNlLgoJKiBkb2MvY3Bwb3B0cy50ZXhpOiBMaWtld2lzZS4KCjIwMDQtMTItMTkgIERhbGUgSm9oYW5uZXNlbiAgPGRhbGVqQGFwcGxlLmNvbT4KCgkqIHRyZWUtc3NhLWxvb3AtaXZvcHRzLmMgKGNvbnRhaW5zX2Fibm9ybWFsX3NzYV9uYW1lX3ApOiAgRG9uJ3QKCXJlZmVyZW5jZSBvcGVyYW5kIDEgb2YgQUREUl9FWFBScy4KCjIwMDQtMTItMTkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWZhdWx0cy5oIChBU01fT1VUUFVUX0lOVEVSTkFMX0xBQkVMKTogTmV3IG1hY3JvLgoJKiBvdXRwdXQuaCAoYXNzZW1ibGVfbmFtZV9yYXcpOiBEZWNsYXJlIGl0LgoJKiBzeXN0ZW0uaCAoQVNNX09VVFBVVF9JTlRFUk5BTF9MQUJFTCk6IERvIG5vdCBwb2lzb24gaXQuCgkqIHZhcmFzbS5jIChhc3NlbWJsZV9uYW1lX3Jhdyk6IE5ldyBmdW5jdGlvbi4KCShhc3NlbWJsZV9uYW1lKTogVXNlIGl0LgoJKGRlZmF1bHRfaW50ZXJuYWxfbGFiZWwpOiBMaWtld2lzZS4KCSogY29uZmlnL2Rhcndpbi5jIChkYXJ3aW5fYXNtX291dHB1dF9kd2FyZl9kZWx0YSk6IExpa2V3aXNlLgoJKiBkb2MvdG0udGV4aSAoQVNNX09VVFBVVF9JTlRFUk5BTF9MQUJFTCk6IERvY3VtZW50LgoKMjAwNC0xMi0xOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiAxODA2NwoJKiBzdG9yLWxheW91dC5jICh2YXJpYWJsZV9zaXplKTogRm9yY2UgY3JlYXRpb24gb2YgYSBTQVZFX0VYUFIuCgoyMDAzLTEyLTE5ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfc3BsaXRfdG9fcGFydHMpOiBVc2UgYW4gYXJyYXkgd2l0aAoJZm91ciBlbGVtZW50cyBmb3IgZGVjb2RpbmcgYSBDT05TVF9ET1VCTEUgb24gNjQgYml0cyB0YXJnZXRzLgoKMjAwNC0xMi0xOSAgQmVybmFyZG8gSW5ub2NlbnRpICA8YmVybmllQGRldmVsZXIuY29tPgoKCSogY29uZmlnL202OGsvbTY4a2VtYi5oIChUQVJHRVRfT1NfQ1BQX0JVSUxUSU5TKTogUmVtb3ZlIHJlZHVuZGFudAoJZGVmaW5pdGlvbiBvZiBtYzY4MDAwLCBhbHJlYWR5IHByZXNlbnQgaW4gVEFSR0VUX0NQVV9DUFBfQlVJTFRJTlMuCgoyMDA0LTEyLTE4ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIGxhbWJkYS1jb2RlLmMgKGNhbl9jb252ZXJ0X3RvX3BlcmZlY3RfbmVzdCk6IE1ha2UgY2hlY2tpbmcKCW1hdGNoIHVwIHdpdGggd2hhdCBwZXJmZWN0X25lc3RpZnkgY2FuIGFjdHVhbGx5IGhhbmRsZS4KCShwZXJmZWN0X25lc3RpZnkpOiBEb24ndCByZXR1cm4gZmFsc2UgaW4gdGhlIHBoaSBub2RlIGxvb3AuCgoyMDA0LTEyLTE4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoU1NFSU5UMTYpOiBOZXcuCgkobW92djE2cWksIG1vdnY4aGksIG1vdnY0c2ksIG1vdnYyZGkpOiBDb21wcmVzcyB2aWEgbWFjcm9zLgoJKG1vdnYxNnFpX2ludGVybmFsLCBtb3Z2OGhpX2ludGVybmFsLCBtb3Z2NHNpX2ludGVybmFsLAoJbW92djJkaV9pbnRlcm5hbCk6IENvbXByZXNzIHZpYSBtYWNyb3MuICBBZGQgU1NFIHplcm8gYWx0ZXJuYXRpdmUuCglGaXggcHVyZSBTU0UgYWx0ZXJuYXRpdmVzIHRvIHVzZSAneCcgaW5zdGVhZCBvZiAnWScuCgkoTU1YSU5UOCk6IE5ldy4KCShtb3Z2OHFpLCBtb3Z2NGhpLCBtb3Z2MnNpLCBtb3Z2OHFpX2ludGVybmFsLCBtb3Z2NGhpX2ludGVybmFsLAoJbW92djJzaV9pbnRlcm5hbCk6IENvbXByZXNzIHZpYSBtYWNyb3MuCgkoU1NFUFVTSCwgTU1YUFVTSCk6IE5ldy4KCShwdXNodjE4cWksIHB1c2h2OGhpLCBwdXNodjRzaSwgcHVzaHYyZGksIHB1c2h0aSwgcHVzaHY0c2YsIHB1c2h2MmRmLAoJcHVzaHY4cWksIHB1c2h2NGhpLCBwdXNodjJzaSwgcHVzaHYyc2YpOiBDb21wcmVzcyB2aWEgbWFjcm9zLgoKMjAwNC0xMi0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5kLzE2NDE3CgkqIGMtZGVjbC5jIChzdG9yZV9wYXJtX2RlY2xzKTogQ2xhcmlmeSBnZXRfcGVuZGluZ19zaXplcyBpbnNlcnRpb24KCWNvbW1lbnQuCgkqIGMtb2JqYy1jb21tb24uYyAoY19jYW5ub3RfaW5saW5lX3RyZWVfZm4pOiBSZW1vdmUgcGVuZGluZyBzaXplcwoJY2hlY2tzLgoJKiBjLXRyZWUuaCAoc3RydWN0IGxhbmdfZGVjbCk6IFJlbW92ZSBwZW5kaW5nX3NpemVzLgoJKiBmdW5jdGlvbi5jOiBJbmNsdWRlIHRyZWUtZ2ltcGxlLmgKCShhc3NpZ25fcGFybV9zZXR1cF9yZWcpOiBSZW1vdmUgY2FsbGVlLWNvcGllcyBjb2RlLgoJKGdpbXBsaWZ5X3Bhcm1fdHlwZSwgZ2ltcGxpZnlfcGFyYW1ldGVycyk6IE5ldyBmdW5jdGlvbnMuCgkoZXhwYW5kX3BlbmRpbmdfc2l6ZXMpOiBSZW1vdmUuCgkoZXhwYW5kX2Z1bmN0aW9uX3N0YXJ0KTogRG9uJ3QgY2FsbCBpdC4KCSogZ2ltcGxpZnkuYyAoZ2ltcGxpZnlfZXhwcik6IEV4YW1pbmUgREVDTF9WQUxVRV9FWFBSIGZvciBQQVJNX0RFQ0wuCgkoZ2ltcGxpZnlfYm9keSk6IEFkZCBkb19wYXJtcyBhcmd1bWVudC4gIFVzZSBnaW1wbGlmeV9wYXJhbWV0ZXJzLgoJKGdpbXBsaWZ5X2Z1bmN0aW9uX3RyZWUpOiBTZXR1cCBjZnVuLiAgVXBkYXRlIGdpbXBsaWZ5X2JvZHkgY2FsbC4KCSogdHJlZS1naW1wbGUuaCAoZ2ltcGxpZnlfYm9keSk6IFVwZGF0ZSBkZWNsLgoJKiB0cmVlLWlubGluZS5jIChpbml0aWFsaXplX2lubGluZWRfcGFyYW1ldGVycyk6IFVwZGF0ZSBnaW1wbGlmeV9ib2R5CgljYWxsLgoJKiB0cmVlLmggKGdpbXBsaWZ5X3BhcmFtZXRlcnMpOiBEZWNsYXJlLgoJKiBNYWtlZmlsZS5pbiAoZnVuY3Rpb24ubyk6IERlcGVuZCBvbiBUUkVFX0dJTVBMRV9ILgoKMjAwNC0xMi0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGMtZGVjbC5jIChmaW5pc2hfc3RydWN0KTogQWRkIERFQ0xfRVhQUiBmb3IgdmFyaWFibGUgc2l6ZWQKCXN0cnVjdHVyZXMgc2VlbiBpbnNpZGUgZnVuY3Rpb25zLgoKMjAwNC0xMi0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGMtZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IFNhdmUgdmFyaWFibGUgYXJyYXkgc2l6ZSBiZWZvcmUKCXN1YnRyYWN0aW5nIDEsIHJhdGhlciB0aGFuIGFmdGVyLgoKMjAwNC0xMi0xOCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiBtaWRkbGUtZW5kLzE1NDg2CgkqIHZhcmFzbS5jIChhc21fZW1pdF91bmluaXRpYWxpc2VkKTogUmV0dXJuIGVhcmx5IGlmCglhIGN1c3RvbSBzZWN0aW9uIGlzIHJlcXVlc3RlZC4KCShhc3NlbWJsZV92YXJpYWJsZSk6IFJldmVydCAyMDAyLTAzLTE1IHBhdGNoLgoKMjAwNC0xMi0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHN0b3ItbGF5b3V0LmMgKGxheW91dF9kZWNsKTogVXNlIHVuc2hhcmVfZXhwciwgbm90IHVuc2F2ZV9leHByLgoKMjAwNC0xMi0xOCAgWmRlbmVrIER2b3JhayAgPGR2b3Jha3pAc3VzZS5jej4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xODgwMAoJKiBwYXJhbXMuZGVmIChQQVJBTV9JVl9BTFdBWVNfUFJVTkVfQ0FORF9TRVRfQk9VTkQpOiBOZXcgcGFyYW1ldGVyLgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChzdHJ1Y3QgaXZfY2EpOiBBZGQgbl9jYW5kcyBmaWVsZC4KCShBTFdBWVNfUFJVTkVfQ0FORF9TRVRfQk9VTkQpOiBOZXcgbWFjcm8uCgkoaXZfY2Ffc2V0X25vX2NwLCBpdl9jYV9zZXRfY3AsIGl2X2NhX25ldyk6IFVwZGF0ZSBuX2NhbmRzIGZpZWxkLgoJKGl2X2NhX2RlbHRhX2pvaW4sIGl2X2NhX2RlbHRhX3JldmVyc2UsIGl2X2NhX25fY2FuZHMsIGl2X2NhX3BydW5lKToKCU5ldyBmdW5jdGlvbnMuCgkoaXZfY2FfZXh0ZW5kKTogUmV0dXJuIG51bWJlciBvZiBjYW5kaWRhdGVzIGluIHRoZSBzZXQuCgkodHJ5X2FkZF9jYW5kX2Zvcik6IEFkZCBhcmd1bWVudCB0byBpdl9jYV9leHRlbmQgY2FsbHMuCgkodHJ5X2ltcHJvdmVfaXZfc2V0KTogVXNlIGl2X2NhX3BydW5lLgoJKiBkb2MvaW52b2tlLnRleGkgKGl2LWFsd2F5cy1wcnVuZS1jYW5kLXNldC1ib3VuZCk6IERvY3VtZW50LgoKMjAwNC0xMi0xOCAgWmRlbmVrIER2b3JhayAgPGR2b3Jha3pAc3VzZS5jej4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE5MDAxCgkqIGxvb3AtaXYuYyAoaXZfbnVtYmVyX29mX2l0ZXJhdGlvbnMpOiBSZWNvcmQgYXNzdW1wdGlvbnMgZm9yIGxvb3BzCgl3aXRoIHBvd2VyIG9mIHR3byBzdGVwIHRvICdpbmZpbml0ZScgZmllbGQuCgoyMDA0LTEyLTE4ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIE1ha2VmaWxlLmluIChzdG9yLWxheW91dC5vKTogRGVwZW5kIHVwb24gZ3Qtc3Rvci1sYXlvdXQuaC4KCSh0cmVlLXNzYS1wcm9wYWdhdGUubyk6IERlcGVuZCB1cG9uIGd0LXRyZWUtc3NhLXByb3BhZ2F0ZS5oLgoJKHRyZWUtc3NhLW9wZXJhbmRzLm8pOiBEZXBlbmQgdXBvbiBndC10cmVlLXNzYS1vcGVyYW5kcy5oLgoJKHRyZWUtbXVkZmxhcC5vKTogRGVwZW5kIHVwb24gZ3QtdHJlZS1tdWRmbGFwLmguCgkoZXhwci5vKTogRGVwZW5kIHVwb24gZ3QtZXhwci5oLgoJKHJlZ2NsYXNzLm8pOiBEZXBlbmQgdXBvbiBndC1yZWdjbGFzcy5oLgoJKGJpdG1hcC5vKTogRGVwZW5kIHVwb24gZ3QtYml0bWFwLmguCgkobGlzdHMubyk6IERlcGVuZCB1cG9uIGd0LWxpc3RzLmguCgoJKGNmZ2V4cGFuZC5vKTogRG9uJ3QgZGVwZW5kIHVwb24gZ3QtdHJlZS1jZmcuaC4KCgkoR1RGSUxFUyk6IFJlbW92ZSBmb2xkLWNvbnN0LmMuCgkoZ3Qtc3RtdC5oLCBndC1mb2xkLWNvbnN0LmgsIGd0LWlucHV0LmgsIGd0LXRyZWUtc3NhLWNjcC5oKToKCVJlbW92ZSBydWxlcy4KCjIwMDQtMTItMTggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBzdG9yLWxheW91dC5jIChsYXlvdXRfZGVjbCk6IFVuc2hhcmUgc2l6ZSBleHByZXNzaW9ucyBjb3BpZWQKCWZyb20gdGhlIHR5cGUuCgoJKiBmb2xkLWNvbnN0LmMgKG11bHRpcGxlX29mX3ApOiBIYW5kbGUgQklUX0FORF9FWFBSIHdoZW4KCUJPVFRPTSBpcyBhIHBvd2VyIG9mIHR3by4KCjIwMDQtMTItMTggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmVlLW5lc3RlZC5jIChzYXZlX3RtcF92YXIpOiBOZXcuCgkoc3RydWN0IHdhbGtfc3RtdF9pbmZvKTogQWRkIGlzX2xocy4KCSh3YWxrX3N0bXRzKSA8TU9ESUZZX0VYUFI+OiBCZSBtb3JlIGFjY3VyYXRlIHdpdGggc2V0dGluZyBvZgoJdmFsX29ubHk7IHNldCBpc19saHMuCgkoY29udmVydF9ub25sb2NhbF9yZWZlcmVuY2UpOiBVc2Ugc2F2ZV90bXBfdmFyIHdoZW4gaXNfbGhzOwoJY2xlYXIgaXNfbGhzIHdoZW4gYXBwcm9wcmlhdGUuCgkoY29udmVydF9sb2NhbF9yZWZlcmVuY2UpOiBMaWtld2lzZS4KCjIwMDQtMTItMTggIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogYXJtL2llZWU3NTQtc2YuUyAoZmxvYXRkaXNmKTogRml4IGxhYmVsIGRlZmluaXRpb24gaW4gRlBBCgljb21wYXRpYmlsaXR5IGNvZGUuCgoyMDA0LTEyLTE4ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGlmY3Z0LmMgKHRvdGFsX2JiX3J0eF9jb3N0KTogUmVuYW1lIGZ1bmN0aW9uIHRvIGNoZWFwX2JiX3J0eF9jb3N0X3AuCglUYWtlIGEgbWF4X2Nvc3QgYXJndW1lbnQgdG8gYXZvaWQgc2Nhbm5pbmcgbGFyZ2UgYmxvY2tzLCBieSByZXR1cm5pbmcKCWEgQm9vbGVhbiBpbnN0ZWFkIG9mIGEgdG90YWwuICBJbmNsdWRlIHRoZSBjb3N0IG9mIGEgImZzdHAgJXN0KDApIgoJaW5zdHJ1Y3Rpb24gcmVxdWlyZWQgdG8gcG9wIGRlYWQgdmFsdWVzIG9mZiBvZiBhIHJlZ2lzdGVyIHN0YWNrLgoKMjAwNC0xMi0xOCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgbWlkZGxlLWVuZC8xODU0OAoJKiBleHByLmMgKGV4cGFuZF9leHByX3JlYWxfMSkgPE1BWF9FWFBSPjogRW5zdXJlIHRoYXQgdGFyZ2V0LCBvcDAKCWFuZCBvcDEgYXJlIGFsbCByZWdpc3RlcnMgKG9yIGNvbnN0YW50cykgYmVmb3JlIGV4cGFuZGluZyB0aGUgUlRMCgljb21wYXJpc29uIHNlcXVlbmNlIFt0byBhdm9pZCByZWdfb3ZlcmxhcF9tZW50aW9uZWQgKHRhcmdldCwgb3AxKV0uCgoyMDA0LTEyLTE4ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMTY5NjgKCSogbG9vcC5jIChzY2FuX2xvb3ApOiBTdG9wIHNjYW5uaW5nIHRoZSBsb29wIGZvciBtb3ZhYmxlCglpbnNucyBhcyBzb29uIGFzIGFuIG9wdGltaXphdGlvbiBiYXJyaWVyIGlzIGVuY291bnRlcmVkLgoKMjAwNC0xMi0xNyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiAxODg5NwoJKiB0b3BsZXYuYyAoY29tcGlsZV9maWxlKTogQ2FsbCBwcm9jZXNzX3BlbmRpbmdfYXNzZW1ibGVfZXh0ZXJuYWxzCglqdXN0IGJlZm9yZSB0YXJnZXRtLmFzbV9vdXQuZmlsZV9lbmQuCgoyMDA0LTEyLTE3ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgl0cmVlLW9wdGltaXphdGlvbi8xODUwMQoJKiB0cmVlLW9wdGltaXplLmMgKGluaXRfdHJlZV9vcHRpbWl6YXRpb25fcGFzc2VzKTogUnVuCglwYXNzX2xhdGVfd2Fybl91bmluaXRpYWxpemVkIGJlZm9yZSB0aGUgbGFzdCBEQ0UgcnVuLgoKMjAwNC0xMi0xNyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoeDg2XzY0X3JlZ19jbGFzc19uYW1lKTogUmUtaW5kZW50LgoJKGNsYXNzaWZ5X2FyZ3VtZW50LCBleGFtaW5lX2FyZ3VtZW50LCBjb25zdHJ1Y3RfY29udGFpbmVyLAoJbWVyZ2VfY2xhc3Nlcyk6IFJlbW92ZSBwcm90b3R5cGVzLgoJKHR5cGVfbmF0dXJhbF9tb2RlKTogU3BsaXQgb3V0IGZyb20gLi4uCgkoZnVuY3Rpb25fYXJnKTogLi4uIGhlcmUuCgkoZ2VuX3JlZ19vcl9wYXJhbGxlbCk6IFJlbW92ZSBhbHRfbW9kZSBhcmd1bWVudC4gIFVwZGF0ZSBjYWxsZXJzLgoJVXNlIG9yaWdfbW9kZSB1bmxlc3MgaXQncyBCTEttb2RlLgoJKGNvbnN0cnVjdF9jb250YWluZXIpOiBBZGQgb3JpZ19tb2RlIGFyZ3VtZW50LiAgVXBkYXRlIGNhbGxlcnMuCglVc2UgZ2VuX3JlZ19vcl9wYXJhbGxlbCBmb3IgU1NFIHJlZ2lzdGVycy4KCShpeDg2X2Z1bmN0aW9uX3ZhbHVlKTogVXNlIHR5cGVfbmF0dXJhbF9tb2RlLgoJKGl4ODZfZ2ltcGxpZnlfdmFfYXJnKTogTGlrZXdpc2UuCgkoaXg4Nl9oYXJkX3JlZ25vX21vZGVfb2spOiBBbHdheXMgYWNjZXB0IGFsbCBTU0UsIE1NWCwgM0ROT1cgbW9kZXMgaW4KCVNTRSByZWdpc3RlcnM7IGFsd2F5cyBhY2NlcHQgYWxsIE1NWCwgM0ROT1cgbW9kZXMgaW4gTU1YIHJlZ2lzdGVycy4KCSogY29uZmlnL2kzODYvaTM4Ni5oIChWQUxJRF9TU0UyX1JFR19NT0RFKTogRG9uJ3QgaW5jbHVkZQoJVkFMSURfTU1YX1JFR19NT0RFLgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChhdHRyaWJ1dGUgbW9kZSk6IEFkZCBWMURGLgoJKG1vdnNpXzEpOiBVc2UgJ3gnIGluc3RlYWQgb2YgJ1knIGNvbnN0cmFpbnRzLgoJKG1vdnNpXzFfbm9pbnRlcm51bml0LCBtb3ZkaV8yLCBtb3ZkaV8xX3JleDY0KTogTGlrZXdpc2UuCgkobW92ZGlfMV9yZXg2NF9ub2ludGVydW5pdCk6IExpa2V3aXNlLgoJKG1vdmRmX25vaW50ZWdlciwgbW92ZGZfaW50ZWdlcik6IExpa2V3aXNlLiAgSGFuZGxlIFNTRTEuCgkobW92c2ZfMSwgbW92c2ZfMV9ub2ludGVydW5pdCk6IExpbmUgdXAgY29uc3RyYWludCBhbHRlcm5hdGl2ZXMuCgkoc3dhcHNmKTogVXNlIGZwX3JlZ2lzdGVyX29wZXJhbmQsIGRvbid0IGRpc2FibGUgZm9yIFRBUkdFVF9TU0UuCgkoc3dhcGRmKTogTGlrZXdpc2UuCgkoc3dhcHhmKTogRW5hYmxlIG9ubHkgZm9yIFRBUkdFVF84MDM4Ny4KCShtb3Z2MnNmLCBtb3Z2MnNmX2ludGVybmFsLCBwdXNodjJzZik6IEVuYWJsZSBmb3IgTU1YLgoJKG1vdnRmKTogUmVtb3ZlIGRvdWJsZS1jaGVjayBmb3IgVEFSR0VUXzY0QklULgoJKG1vdnYyZGZfaW50ZXJuYWwpOiBFbmFibGUgZm9yIFNTRTEuCgkobW92djhoaV9pbnRlcm5hbCwgbW92djE2cWlfaW50ZXJuYWwpOiBMaWtld2lzZS4KCShtb3Z2MmRmLCBtb3Z2OGhpLCBtb3Z2MTZxaSk6IExpa2V3aXNlLgoJKHB1c2h2MmRpLCBwdXNodjhoaSwgcHVzaHYxNnFpLCBwdXNodjRzaSk6IExpa2V3aXNlLgoJKHB1c2hkaTJfcmV4NjQsIG1vdnY0c2ZfaW50ZXJuYWwsIG1vdnY0c2lfaW50ZXJuYWwsIG1vdnYyZGlfaW50ZXJuYWwsCgltb3Z2OHFpX2ludGVybmFsLCBtb3Z2NGhpX2ludGVybmFsLCBtb3Z2MnNmX2ludGVybmFsLAoJbW92djJkZl9pbnRlcm5hbCwgbW92djhoaV9pbnRlcm5hbCwgbW92djE2cWlfaW50ZXJuYWwsCgltb3Z0aV9pbnRlcm5hbCk6IEFkZCBsZWFkaW5nICcqJyB0byBuYW1lLgoKMjAwNC0xMi0xNyAgRGFsZSBKb2hhbm5lc2VuICA8ZGFsZWpAYXBwbGUuY29tPgoKCSogYy1kZWNsLmMgKGRpYWdub3NlX21pc21hdGNoZWRfZGVjbHMpOiAgQWNjZXB0IG1pc21hdGNoZWQKCWZ1bmN0aW9uIHR5cGVzOiB2b2lkIHdpdGggcHJldmlvdXMgaW1wbGljaXQgaW50LgoKMjAwNC0xMi0xNyAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbDFAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoczM5MF9naW1wbGlmeV92YV9hcmcpOiBTZXQgYWxpYXMgc2V0IHRvCglzMzkwX3NyX2FsaWFzX3NldC4KCjIwMDQtMTItMTcgIEphbiBCZXVsaWNoICA8amJldWxpY2hAbm92ZWxsLmNvbT4KCglQUiB0YXJnZXQvMTc2MDMKCSogY29uZmlnL2kzODYvaTM4Ni5jIChlbnVtIHg4Nl82NF9yZWdfY2xhc3MpOiBEZWZpbmUKCVg4Nl82NF9DT01QTEVYX1g4N19DTEFTUy4KCSh4ODZfNjRfcmVnX2NsYXNzX25hbWVzKTogQWRkIG5hbWUgZm9yIFg4Nl82NF9DT01QTEVYX1g4N19DTEFTUy4KCShtZXJnZV9jbGFzc2VzKTogSGFuZGxlIFg4Nl82NF9DT01QTEVYX1g4N19DTEFTUy4KCShjbGFzc2lmeV9hcmd1bWVudCk6IFhDbW9kZSBpcyBYODZfNjRfQ09NUExFWF9YODdfQ0xBU1MuCgkoZXhhbWluZV9hcmd1bWVudCk6IFg4Nl82NF9DT01QTEVYX1g4N19DTEFTUyByZXF1aXJlcyB0d28KCXJlZ2lzdGVycyB3aGVuIGRlYWxpbmcgd2l0aCBhIHJldHVybiB2YWx1ZS4KCShjb25zdHJ1Y3RfY29udGFpbmVyKTogSGFuZGxlIFg4Nl82NF9DT01QTEVYX1g4N19DTEFTUy4KCUVsaW1pbmF0ZSBpbXBvc3NpYmxlIGNhc2Ugb2YgdHdvIFg4Ny9YODdVUCBwYWlycyAodGhpcyBub3cgaXMKCWJlaW5nIGV4cHJlc3NlZCBieSBhIHNpbmdsZSBDT01QTEVYX1g4NykuCgkoeDg2X2xpYmNhbGxfdmFsdWUpOiBYQ21vZGUgZ2V0cyByZXR1cm5lZCBpbiBzdDAvc3QxLgoKMjAwNC0xMi0xNyAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogdHJlZS5jICh0eXBlX2NvbnRhaW5zX3BsYWNlaG9sZGVyXzEpOiBBbHdheXMgcmV0dXJuIGZhbHNlCglmb3IgVkVDVE9SX1RZUEUgaWYgaXRzIFRSRUVfVFlQRSBkb2VzIG5vdCBjb250YWluIGEgcGxhY2Vob2xkZXIuCgoyMDA0LTEyLTE3ICBVcm9zIEJpemphayAgPHVyb3NAa3NzLWxva2Euc2k+CgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChleHRlbmRzZmRmMiwgKmV4dGVuZHNmZGYyXzEsCgkqZXh0ZW5kc2ZkZjJfMV9zc2Vfb25seSk6IFVuaWZ5IGVuYWJsZSBjb25zdHJhaW50IHdpdGgKCXJlc3BlY3QgdG8gVEFSR0VUX1NTRTIsIFRBUkdFVF84MDM4NywgVEFSR0VUX1NTRV9NQVRICglhbmQgVEFSR0VUX01JWF9TU0VfSTM4Ny4KCSgqZXh0ZW5kc2ZkZjJfaTM4Nyk6IE5ldyBpbnNuIHBhdHRlcm4uCgkoKmV4dGVuZHNmZGYyXzEpOiBSZW5hbWUgdG8gKmV4dGVuZHNmZGYyX21peGVkLiBGaXgKCXJlZ2lzdGVyIGNvbnN0cmFpbnQgZm9yIG9wZXJhbmQgMC4KCSgqZXh0ZW5kc2ZkZjJfMV9zc2Vfb25seSk6IFJlbmFtZSB0byAqZXh0ZW5kc2ZkZjJfc3NlLgoJKCpleHRlbmR7cyxkfWZ4ZjJfMSk6IFJlbmFtZSB0byAqZXh0ZW5ke3MsZH1meGYyX2kzODcuCgoyMDA0LTEyLTE2ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiB0YXJnZXQvMTkwNDEKCSogY29uZmlnL2Rhcndpbi5jIChtYWNob3BpY19zeW1ib2xfZGVmaW5lZF9wKTogUmV0dXJuIGZhbHNlCglpZiB0aGUgYmluZHMgbG9jYWwgYW5kIGlzIGEgY29tbW9uIHN5bWJvbC4KCjIwMDQtMTItMTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChleHR2LCBleHR6diwgaW5zdik6IFJldmFsaWRhdGUgdGhlCglvcGVyYW5kIHdpdGggZXh0X3JlZ2lzdGVyX29wZXJhbmQuCgoyMDA0LTEyLTE2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZ2xvYmFsLmM6IEZpeCBhIGNvbW1lbnQgdHlwby4KCjIwMDQtMTItMTYgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgkgICAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTg3MDcKCSogY2ZnbG9vcG1hbmlwLmMgKGNyZWF0ZV9wcmVoZWFkZXIpOiBNb3ZlIHRoZSBwcmVoZWFkZXIKCW9ubHkgaWYgdGhlIGxhdGNoIHdhcyBmYWxsaW5nIHRocm91Z2ggdG8gdGhlIGhlYWRlci4KCjIwMDQtMTItMTYgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJUFIgdGFyZ2V0LzE4OTk3CgkqIGNvbmZpZy9pMzg2L2N5Z3dpbi5oIChHVEhSRUFEX1VTRV9XRUFLKTogRGVmaW5lIHRvIDAuCgoyMDA0LTEyLTE2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoJICAgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIHNpbXBsaWZ5LXJ0eC5jIChzaW1wbGlmeV9yZXBsYWNlX3J0eCk6IERvIG5vdCBibGluZGx5IHJlcGxhY2UKCWhhcmQgcmVnaXN0ZXJzLgoKMjAwNC0xMi0xNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIG90aGVyLzE4NTA4CgkqIGNvbmZpZy9hbHBoYS90LW9zZjQgKFNITElCX0xJTkspOiBVc2UgYC5iYWNrdXAnIGFzIHRoZSBzdWZmaXgKCXRvIGJhY2sgdXAgdGhlIGV4aXN0aW5nIHNoYXJlZCBsaWJyYXJ5LgoJKiBjb25maWcvYXJtL3QtbmV0YnNkIChTSExJQl9MSU5LKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9taXBzL3Qtc2xpYmdjYy1pcml4IChTSExJQl9MSU5LKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9wYS90LWhwdXgtc2hsaWIgKFNITElCX0xJTkspOiBMaWtld2lzZS4KCSogY29uZmlnL3NoL3QtbGludXggKFNITElCX0xJTkspOiBMaWtld2lzZS4KCSogY29uZmlnL3QtbGlidW53aW5kLWVsZiAoU0hMSUJVTldJTkRfTElOSyk6IExpa2V3aXNlLgoJKiBjb25maWcvdC1zbGliZ2NjLWRhcndpbiAoU0hMSUJfTElOSyk6IExpa2V3aXNlLgoJKiBjb25maWcvdC1zbGliZ2NjLWVsZi12ZXIgKFNITElCX0xJTkspOiBMaWtld2lzZS4KCSogY29uZmlnL3Qtc2xpYmdjYy1zbGQgKFNITElCX0xJTkspOiBMaWtld2lzZS4KCgkqIGNvbmZpZy9pMzg2L3QtbndsZCAoU0hMSUJfTElOSyk6IERvbid0IHVzZSB0aGUgdGVtcG9yYXJ5CglmaWxlLgoKMjAwNC0xMi0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmluIChNRF9ERVBTLCBzLW1kZGVwcyk6IE5ldy4KCShzLWNvbmZpZywgcy1jb25kaXRpb25zLCBzLWZsYWdzLCBzLWNvZGVzLCBzLWNvbnN0YW50cywgcy1lbWl0LAoJcy1yZWNvZywgcy1vcGluaXQsIHMtZXh0cmFjdCwgcy1wZWVwLCBzLWF0dHIsIHMtYXR0cnRhYiwgcy1vdXRwdXQsCglzLXByZWRzKTogRGVwZW5kIG9uIE1EX0RFUFMgaW5zdGVhZCBvZiBtZF9maWxlLgoJKGdlbm9iam5hbWVzKTogQWRkIGdlbm1kZGVwcy5vCgkoYnVpbGQvZ2VubWRkZXBzLCBidWlsZC9nZW5tZGRlcHMubyk6IE5ldy4KCShtb3N0bHljbGVhbik6IFJlbW92ZSBtZGRlcHMubWsuCgkqIGdlbm1kZGVwcy5jOiBOZXcgZmlsZS4KCSogZ2Vuc3VwcG9ydC5jIChpbmNsdWRlX2NhbGxiYWNrKTogTmV3LgoJKHByb2Nlc3NfaW5jbHVkZSk6IENhbGwgaXQuCgkqIGdlbnN1cHBvcnQuaCAoaW5jbHVkZV9jYWxsYmFjayk6IERlY2xhcmUuCgoyMDA0LTEyLTE2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogbG9jYWwtYWxsb2MuYyAoYmxvY2tfYWxsb2MpOiBSZXBsYWNlIElOX1JBTkdFIHdpdGggc2ltcGxlCgljb21wYXJpc29uLgoKCSogZG9jL2MtdHJlZS50ZXhpIChDT05TVFJVQ1RPUik6IE1lbnRpb24gUkFOR0VfRVhQUnMuCgoyMDA0LTEyLTE2ICBNYXJrIERldHRpbmdlciAgPGRldHRpbmdlQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHN0cnVjdCBwcm9jZXNzb3JfY29zdHMpOiBUd28gbmV3IGZpZWxkczoKCW1hZGJyLCBtYWVici4KCShzMzkwX3J0eF9jb3N0cyk6IEFkZGVkIGhhbmRsaW5nIG9mIG11bHRpcHkgYW5kIGFkZCBpbiBTRm1vZGUuCglNb3JlIHByZWNpc2UgdmFsdWVzIGZvciBjb3N0IG9mIG11bHRpcGx5IGFuZCBhZGQuCgoyMDA0LTEyLTE1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xOTAyOAoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChzc2UgY29tcGFyZSBzcGxpdHRlcik6IFRlc3QgZm9yIFNGIGFuZCBERm1vZGUKCWV4cGxpY2l0bHkgaW5zdGVhZCBvZiB1c2luZyBWQUxJRF9TU0VfUkVHX01PREUuCgoyMDA0LTEyLTE1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xOTAwNQoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChzd2FwaGlfMSk6IFN3YXAgd2l0aCBzd2FwaGlfMiwgYWxsb3cgd2l0aAoJb3B0aW1pemVfc2l6ZS4KCShzd2FwcWlfMSk6IFJlbmFtZSBmcm9tIHN3YXBxaS4gIEVuYWJsZSBvbmx5IGZvciBubyBwYXJ0aWFsIHJlZwoJc3RhbGwgYW5kIG9wdGltaXplX3NpemUuCgkoc3dhcHFpXzIpOiBOZXcuCgkoc3dhcGhpXzEsIHN3YXBoaV8yLCBzd2FwcWlfMSk6IEFkZCBhdGhsb25fZGVjb2RlLgoJKHN3YXBzaSwgc3dhcGhpXzEsIHN3YXBoaV8yLCBzd2FwcWlfMSwgc3dhcGRpKTogUmVtb3ZlIG1vZHJtIG92ZXJyaWRlLgoKMjAwNC0xMi0xNiAgVXJvcyBCaXpqYWsgIDx1cm9zQGtzcy1sb2thLnNpPgoKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoKmZsb2F0aGlzZjJfaTM4NywgKmZsb2F0aGlkZjJfaTM4Nyk6CglBbHNvIGVuYWJsZSBmb3IgVEFSR0VUX01JWF9TU0VfSTM4Ny4KCjIwMDQtMTItMTYgIFVyb3MgQml6amFrICA8dXJvc0Brc3MtbG9rYS5zaT4KCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKHNxcnR7cyxkfWYyXzEsIHNxcnR7cyxkfWYyXzFfc3NlX29ubHksCglzcXJ0e3MsZH1mMl9pMzg3KTogVW5pZnkgZW5hYmxlIGNvbnN0cmFpbnQgd2l0aCByZXNwZWN0IHRvCglUQVJHRVRfU1NFLCBUQVJHRVRfU1NFMiwgVEFSR0VUX1VTRV9GQU5DWV9NQVRIXzM4NywKCVRBUkdFVF9TU0VfTUFUSCBhbmQgVEFSR0VUX01JWF9TU0VfSTM4Ny4KCShzcXJ0e3MsZH1mMl8xKTogUmVuYW1lIHRvICpzcXJ0e3MsZH1mMl9taXhlZC4KCShzcXJ0e3MsZH1mMl8xX3NzZV9vbmx5KTogUmVuYW1lIHRvICpzcXJ0e3MsZH1mMl9zc2UuCgkoc3FydHtzLGR9ZjJfaTM4Nyk6IFJlbmFtZSB0byAqc3FydHtzLGR9ZjJfaTM4Ny4KCSgqc3FydGV4dGVuZHNmZGYyKTogQWxzbyBlbmFibGUgZm9yIFRBUkdFVF9NSVhfU1NFX0kzODcuCgkoKnNxcnRleHRlbmQ/Zj9mMik6IFJlbmFtZSB0byAqc3FydGV4dGVuZHNmZGYyX2kzODcuCgoyMDA0LTEyLTE2ICBVcm9zIEJpemphayAgPHVyb3NAa3NzLWxva2Euc2k+CgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kICgqZm9wXz9mX2NvbW1feyxzc2Usbm9zc2V9LAoJKmZvcF8/Zl8xX3ssc3NlLG5vc3NlfSwgKmZvcF97ZCx4fWZfezIsMyw0LDUsNn0pOiBVbmlmeSBlbmFibGUKCWNvbnN0cmFpbnQgd2l0aCByZXNwZWN0IHRvIFRBUkdFVF84MDM4NywgVEFSR0VUX1NTRSwgVEFSR0VUX1NTRTIsCglUQVJHRVRfU1NFX01BVEggYW5kIFRBUkdFVF9NSVhfU1NFX0kzODcuCgkoKmZvcF8/Zl97Y29tbSwxfSk6IFJlbmFtZSB0byAqZm9wXz9mX3tjb21tLDF9X21peGVkLgoJKCpmb3BfP2Zfe2NvbW0sMX1fbm9zc2UpOiBSZW5hbWUgdG8gKmZvcF8/Zl97Y29tbSwxfV9pMzg3LgoJKCpmb3Bfe2QseH1mX3syLDMsNCw1LDZ9KTogUmVuYW1lIHRvICpmb3Bfe2QseH1mX3syLDMsNCw1LDZ9X2kzODcuCgoyMDA0LTEyLTE1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgdGFyZ2V0LzE4MTUzCgkqIGNvbmZpZ3VyZS5hYzogRGVmaW5lIEhBVkVfTERfU1RBVElDX0RZTkFNSUMgaWYgbGlua2VyIHN1cHBvcnRzCgktQnN0YXRpYy8tQmR5bmFtaWMgb3B0aW9uLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGVkLgoJKiBjb25maWd1cmU6IExpa2V3aXNlLgoKCSogZ2NjLmMgKGluaXRfc3BlYyk6IFBhc3MgLUJzdGF0aWMvLUJkeW5hbWljIHRvIGxkIGZvciBzdGF0aWMKCS1sdW53aW5kIGlmIHBvc3NpYmxlLgoKMjAwNC0xMi0xNSAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiBjZmdsb29wLmMgKGZsb3dfbG9vcHNfZHVtcCk6IERvbid0IHByaW50IG91dCBsZXZlbHMuCgkoZmxvd19sb29wc19maW5kKTogRG9uJ3Qgc2V0IGxvb3AtPmxldmVscy4KCShmbG93X2xvb3BzX2xldmVsX2NvbXB1dGUpOiBNYWtlIHZvaWQuCgkqIGNmZ2xvb3AuaCAoc3RydWN0IGxvb3BzKTogUmVtb3ZlIGxldmVscyBtZW1iZXIuCglBZGQgY29tbWVudCBhYm91dCBsb29wcyBpbiBwYXJyYXkgcG9zc2libHkgYmVpbmcgTlVMTC4KCjIwMDQtMTItMTUgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogcmVsb2FkLmMgKFNNQUxMX1JFR0lTVEVSX0NMQVNTX1ApOiBOZXcuCgkocHVzaF9zZWNvbmRhcnlfcmVsb2FkLCBmaW5kX3JldXNhYmxlX3JlbG9hZCwgZmluZF9yZWxvYWRzKTogVXNlCglpdCBpbnN0ZWFkIG9mIHRlc3Rpbmcgb25seSB0aGUgY2xhc3Mgc2l6ZS4KCjIwMDQtMTItMTUgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJUFIgYysrLzE3OTcyCgkqIHRyZWUtaW5saW5lLmMgKGV4cGFuZF9jYWxsX2lubGluZSk6IFNldCBUUkVFX1NJREVfRUZGRUNUUwoJb24gdGhlIFNUTVRfRVhQUiB3cmFwcGluZyB1cCB0aGUgaW5saW5lZCBib2R5LgoKMjAwNC0xMi0xNSAgVmxhZGltaXIgTWFrYXJvdiAgPHZtYWthcm92QHJlZGhhdC5jb20+CgkgICAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoJUFIgbWlkZGxlIGVuZC8xNzM0MAoKCSogZ2xvYmFsLmM6IFVwZGF0ZSBjb21tZW50cyBpbiBhIGZldyBwbGFjZXMuCgkoY2hlY2tfZWFybHljbG9iYmVyKTogUmV0dXJuIHRydWUgaWYgdGhlcmUgYXJlIGVhcmx5IGNsb2JiZXIKCWNsYXNzZXMuCgkoY2FsY3VsYXRlX2xvY2FsX3JlZ19iYl9pbmZvKTogRG8gbm90IHRyeSB0byBtYXJrIGVhcmx5Y2xvYmJlcgoJcmVncyBpZiB0aGVyZSBhcmUgbm9uZS4KCShiYl9pbmZvLCBhbGxvY2F0ZV9iYl9pbmZvLCBmcmVlX2JiX2luZm8sIG1vZGlmeV9yZWdfcGF2LAoJbWFrZV9hY2N1cmF0ZV9saXZlX2FuYWx5c2lzKTogUmVuYW1lIHBhdmluLCBwYXZvdXQgdG8gbGl2ZV9wYXZpbiwKCWxpdmVfcGF2b3V0LgoJKG1vZGlmeV9iYl9yZWdfcGF2KTogUmVtb3ZlLgoJKGNhbGN1bGF0ZV9yZWdfcGF2KTogVXNlIGNvZGUgZnJvbSBtb2RpZnlfYmJfcmVnX3Bhdi4KCSh0ZW1wX2JpdG1hcCk6IE5ldyB2YXJpYWJsZS4KCShjYWxjdWxhdGVfcmVnX3Bhdik6IEFsbG9jYXRlL2RlYWxsb2NhdGUgdGVtcF9iaXRtYXAuCgoyMDA0LTEyLTE1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xOTAxMAoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfbXVzdF9wYXNzX2luX3N0YWNrKTogRG9uJ3QgcmV0dXJuIHRydWUKCWZvciBUSW1vZGUgdmVjdG9ycy4KCShnZW5fcmVnX29yX3BhcmFsbGVsKTogTmV3LgoJKGZ1bmN0aW9uX2FyZyk6IFVzZSBpdC4KCShpeDg2X2hhcmRfcmVnbm9fbW9kZV9vayk6IFRlc3QgU1NFMSBhbmQgU1NFMiBzZXBhcmF0ZWx5LAoJTU1YIGFuZCAzRE5PVyBzZXBhcmF0ZWx5LgoJKGl4ODZfcnR4X2Nvc3RzKTogU2ltcGxpZnkgRkxPQVRfRVhURU5EIGNhc2UuCgkoaXg4Nl92ZWN0b3JfbW9kZV9zdXBwb3J0ZWRfcCk6IFRlc3QgU1NFMSBhbmQgU1NFMiBzZXBhcmF0ZWx5LgoJKiBjb25maWcvaTM4Ni9pMzg2LmggKFZBTElEX1NTRTJfUkVHX01PREUpOiBNb3ZlIFNTRTIgY2FzZXMgZnJvbSAuLi4KCShWQUxJRF9TU0VfUkVHX01PREUpOiAuLi4gaGVyZS4KCjIwMDQtMTItMTUgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIHhjb2Zmb3V0LmMgKHhjb2Zmb3V0X2RlY2xhcmVfZnVuY3Rpb24pOiBDaGFuZ2Ugc3RybmNweSB0byBtZW1jcHkuCgoyMDA0LTEyLTE1ICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogY29uZmlnL2FybS9hcm0uYyAoYXJtX3hzY2FsZV9ydHhfY29zdHMpOiBJbmNyZWFzZSBjb3N0IG9mCglDT01QQVJFIG9mIE1VTFQuCgkqIGNvbmZpZy9hcm0vYXJtLm1kIChtdWxzaTNfY29tcGFyZTApOiBEb24ndCBjaGVjawoJYXJtX2FyY2hfeHNjYWxlLgoJKG11bHNpX2NvbXBhcmUwX3NjcmF0Y2gsIG11bHNpM19hZGRzaV9jb21wYXJlMCk6IExpa2V3aXNlLgoJKG11bHNpM2FkZHNpX2NvbXBhcmUwX3NjcmF0Y2gpOiBMaWtld2lzZS4KCjIwMDQtMTItMTUgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJUFIgb3RoZXIvMTg2NjUKCSogbGliZ2NjLXN0ZC52ZXIgKEdDQ18zLjQuNCk6IEluaGVyaXQgZnJvbSBHQ0NfMy40LjIuCglFeHBvcnQgX19hYnN2dGkyLCBfX2FkZHZ0aTMsIF9fbXVsdnRpMywgX19uZWd2dGkyIGFuZCBfX3N1YnZ0aTMuCgkqIGxpYmdjYzIuYyAoX19hZGR2c2kzKTogUmVuYW1lIHRvIF9fYWRkdlNJMy4KCU5ldyB2ZXJzaW9uIGlmIENPTVBBVF9TSU1PREVfVFJBUFBJTkdfQVJJVEhNRVRJQy4KCShfX2FkZHZkaTMpOiBSZW5hbWUgdG8gX19hZGR2REkzLgoJKF9fc3VidnNpMyk6IFJlbmFtZSB0byBfX3N1YnZTSTMuICBVc2Ugd29yZCB0eXBlIGZvciB0aGUgcmVzdWx0LgoJTmV3IHZlcnNpb24gaWYgQ09NUEFUX1NJTU9ERV9UUkFQUElOR19BUklUSE1FVElDLgoJKF9fc3VidmRpMyk6IFJlbmFtZSB0byBfX3N1YnZESTMuCgkoX211bHZzaTMpOiBSZW5hbWUgdG8gX211bHZTSTMuCglOZXcgdmVyc2lvbiBpZiBDT01QQVRfU0lNT0RFX1RSQVBQSU5HX0FSSVRITUVUSUMuCgkoX211bHZkaTMpOiBSZW5hbWUgdG8gX211bHZESTMuCgkoX19uZWd2c2kyKTogUmVuYW1lIHRvIF9fbmVndlNJMi4KCU5ldyB2ZXJzaW9uIGlmIENPTVBBVF9TSU1PREVfVFJBUFBJTkdfQVJJVEhNRVRJQy4KCShfX25lZ3ZkaTIpOiBSZW5hbWUgdG8gX19uZWd2REkyLgoJKF9fYWJzdnNpMik6IFJlbmFtZSB0byBfX2Fic3ZTSTIuCglOZXcgdmVyc2lvbiBpZiBDT01QQVRfU0lNT0RFX1RSQVBQSU5HX0FSSVRITUVUSUMuCgkoX19hYnN2ZGkyKTogUmVuYW1lIHRvIF9fYWJzdkRJMi4KCSogbGliZ2NjMi5oICg2NC1iaXQgdGFyZ2V0cyk6IERlZmluZSBDT01QQVRfU0lNT0RFX1RSQVBQSU5HX0FSSVRITUVUSUMuCgkoX19hYnN2U0kyLCBfX2FkZHZTSTMsIF9fc3VidlNJMywgX19tdWx2U0kzLCBfX25lZ3ZTSTIsIF9fYWJzdkRJMiwKCV9fYWRkdkRJMywgX19zdWJ2REkzLCBfX211bHZESTMsIF9fbmVndkRJMik6IERlZmluZSB0byB0aGUgYXBwcm9wcmlhdGUKCXN5bWJvbCBhbmQgZGVjbGFyZS4KCShfX2Fic3ZzaTIsIF9fYWRkdnNpMywgX19zdWJ2c2kzLCBfX211bHZzaTMsIF9fbmVndnNpMik6IERlY2xhcmUgaWYKCUNPTVBBVF9TSU1PREVfVFJBUFBJTkdfQVJJVEhNRVRJQy4KCjIwMDQtMTItMTUgIEthenVoaXJvIEluYW9rYSA8aW5hb2thLmthenVoaXJvQHJlbmVhc2FzLmNvbT4KCgkqIGNvbmZpZy9tMzJyL20zMnIuaCAoUFJFRkVSUkVEX0RFQlVHR0lOR19UWVBFKToKCVVzZSBEV0FSRjJfREVCVUcuCgoJKiBjb25maWcvbTMyci5jIChtMzJyX2xlZ2l0aW1pemVfcGljX2FkZHJlc3MpOiBDaGFuZ2VkCgl0byBzdXBwb3J0IEdPVE9GRiByZWxvY2F0aW9uLgoJKiBjb25maWcvbTMyci5tZCAoVU5TUEVDX0dPVE9GRik6IE5ldy4KCShnb3RvZmZfbG9hZF9hZGRyKTogTmV3LgoKMjAwNC0xMi0xNSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5jIChtaXBzX2FyZ19pbmZvKTogVXNlIEZVTkNUSU9OX0FSR19CT1VOREFSWSB0bwoJZGVjaWRlIHdoZXRoZXIgYW4gYXJndW1lbnQgaXMgZG91YmxlLXdvcmQgYWxpZ25lZC4KCjIwMDQtMTItMTUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kOiBGaXggbWlzc2luZyBtb2RlcyBvbiBjbW92ZSBzcGxpdHRlcnMuCgoyMDA0LTEyLTE1IEphbiBCZXVsaWNoICA8amJldWxpY2hAbm92ZWxsLmNvbT4KCgkqIG1rbGliZ2NjLmluIChsaWJnY2MyX2NfZGVwKTogQWRkIGRlcGVuZGVuY3kgb24gbGliZ2NjMi5oLgoKMjAwNC0xMi0xNSAgVXJvcyBCaXpqYWsgIDx1cm9zQGtzcy1sb2thLnNpPgoKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoZmxvYXRoaXNmMiwgKmZsb2F0aGlzZjJfMSwgZmxvYXRzaXNmMiwKCSpmbG9hdHNpc2YyX2kzODcsICpmbG9hdHNpc2YyX3NzZSwgZmxvYXRkaXNmMiwKCSpmbG9hdGRpc2YyX2kzODdfb25seSwgKmZsb2F0ZGlzZjJfaTM4NywgKmZsb2F0ZGlzZjJfc3NlLAoJZmxvYXRoaWRmMiwgKmZsb2F0aGlkZjJfMSwgKmZsb2F0c2lkZjJfaTM4NywgKmZsb2F0c2lkZjJfc3NlLAoJZmxvYXRkaWRmMiwgKmZsb2F0ZGlkZjJfaTM4N19vbmx5LCAqZmxvYXRkaWRmMl9pMzg3LAoJKmZsb2F0ZGlkZjJfc3NlLCBmbG9hdHVuc3Npc2YyLCBmbG9hdHVuc2Rpc2YyLCBmbG9hdHVuc2RpZGYyKToKCVVuaWZ5IGVuYWJsZSBjb25zdHJhaW50IHdpdGggcmVzcGVjdCB0byBUQVJHRVRfODAzODcsIFRBUkdFVF9TU0UsCglUQVJHRVRfU1NFMiwgVEFSR0VUXzY0QklULCBUQVJHRVRfU1NFX01BVEggYW5kIFRBUkdFVF9NSVhfU1NFX0kzODcuCgkoKmZsb2F0P2k/Zl9pMzg3KTogUmVuYW1lIHRvICpmbG9hdD9pP2YyX21peGVkLgoJKCpmbG9hdD9pP2YyXzEpOiBSZW5hbWUgdG8gKmZsb2F0P2k/ZjJfaTM4Ny4KCSgqZmxvYXQ/aT9mMl9pMzg3X29ubHkpOiBSZW5hbWUgdG8gKmZsb2F0P2k/ZjJfaTM4Ny4KCShmbG9hdD9peGYyKTogUGVuYWxpemUgaW50ZWdlciByZWdpc3RlciBvcGVyYW5kLgoKMjAwNC0xMi0xNCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCglQUiBjKysvMTcyNDIKCSogY29uZmlndXJlLmFjOiBBZGQgR0FTIGNoZWNrIGZvciBIUC1VWCAubnN1YnNwYSBjb21kYXQuCgkqIGNvbmZpZ3VyZSwgY29uZmlnLmluOiBSZWJ1aWx0LgoJKiBjb25maWcvcGEvcGEtaHB1eDEwLmggKFNVUFBPUlRTX09ORV9PTkxZLCBNQUtFX0RFQ0xfT05FX09OTFkpOiBEZWxldGUKCWRlZmluZXMuCgkqIGNvbmZpZy9wYS9wYS5jIChwYV9zZWxlY3Rfc2VjdGlvbik6IEFsbG93IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGluCglvbmUtb25seSAoY29tZGF0KSBzdWJzcGFjZXMuCgkqIGNvbmZpZy9wYS9zb20uaCAoU1VQUE9SVFNfU09NX0NPTURBVCk6IE5ldyBkZWZpbmUuCgkoU1VQUE9SVFNfT05FX09OTFkpOiBUcnVlIGlmIFNVUFBPUlRTX1dFQUsgb3IgU1VQUE9SVFNfU09NX0NPTURBVCBhcmUKCXRydWUuCgkoTUFLRV9ERUNMX09ORV9PTkxZKTogUGxhY2UgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMgaW4gY29tbW9uLgoKMjAwNC0xMi0xNCAgSWFuIExhbmNlIFRheWxvciAgPGlhbkB3YXNhYmlzeXN0ZW1zLmNvbT4KCgkqIGNvbWJpbmUuYyAoY29tYmluZV92YWxpZGF0ZV9jb3N0KTogQ29uc2lkZXIgY29zdCBvZgoJdW5kb2J1Zi5vdGhlcl9pbnNuIHJhdGhlciB0aGFuIGFsd2F5cyBhbGxvd2luZyB0aGUgcmVjb21iaW5hdGlvbgoJaWYgaXQgaXMgc2V0LgoKMjAwNC0xMi0xNCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIHBhLWhvc3QuYyAoTUFQX0ZBSUxFRCk6IERlZmluZSBpZiBub3QgZGVmaW5lZC4KCShwYV9ndF9wY2hfdXNlX2FkZHJlc3MpOiBIYW5kbGUgc2hvcnQgcmVhZHMuCgoyMDA0LTEyLTE0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xNzk5MAoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKHg4Nl91c2VfYnQpOiBOZXcuCgkoaXg4Nl9leHBhbmRfdW5hcnlfb3BlcmF0b3IpOiBVc2UgTUVNX1AuCgkoaXg4Nl9leHBhbmRfZnBfYWJzbmVnX29wZXJhdG9yKTogTmV3LgoJKiBjb25maWcvaTM4Ni9pMzg2LmggKHg4Nl91c2VfYnQpOiBEZWNsYXJlLgoJKFRBUkdFVF9VU0VfQlQpOiBOZXcuCgkqIGNvbmZpZy9pMzg2L2kzODYtcHJvdG9zLmg6IFVwZGF0ZS4KCSogY29uZmlnL2kzODYvaTM4Ni5tZCAobmVnc2YyKTogVXNlIGl4ODZfZXhwYW5kX2ZwX2Fic25lZ19vcGVyYXRvci4KCShuZWdkZjIsIG5lZ3hmMiwgYWJzc2YyLCBhYnNkZjIsIGFic3hmMik6IExpa2V3aXNlLgoJKG5lZ3NmMl9tZW1vcnksIG5lZ3NmMl9pZnMsIG5lZ3NmMl9pZiwgbmVnZGYyX21lbW9yeSwgbmVnZGYyX2lmcywKCW5lZ2RmMl9pZnNfcmV4NjQsIG5lZ2RmMl9pZiwgbmVnZGYyX2lmX3JleDY0LCBuZWd4ZjJfaWYsCglhYnNzZjJfbWVtb3J5LCBhYnNzZjJfaWZzLCBhYnNzZjJfaWYsIGFic2RmMl9tZW1vcnksIGFic2RmMl9pZnMsCglhYnNkZjJfaWZzX3JleDY0LCBhYnNkZjJfaWYsIGFic3hmMl9pZik6IFJlbW92ZS4KCShhYnNuZWdzZjJfbWl4ZWQsIGFic25lZ3NmMl9zc2UsIGFic25lZ3NmMl9pMzg3LCBhYnNuZWdkZjJfbWl4ZWQsCglhYnNuZWdkZjJfc3NlLCBhYnNuZWdkZjJfaTM4NywgYWJzbmVneGYyX2kzODcpOiBOZXcuICBNZXJnZSBhbGwKCW5lZyBhbmQgYWJzIHNwbGl0dGVycy4gIEhhbmRsZSBERm1vZGUgaW4gZ2VuZXJhbCByZWdzIGluIDY0LWJpdCBtb2RlLgoJKG5lZ2V4dGVuZHNmZGYyLCBhYnNleHRlbmRzZmRmMik6IERpc2FibGUgZm9yIG5vbi1taXhlZCBzc2UgbWF0aC4KCShidHNxLCBidHJxLCBidGNxKTogTmV3LiAgQWRkIHBlZXBob2xlcyBhcyB3ZWxsLgoJKG1vdnY0c2ZfaW50ZXJuYWwgc3BsaXR0ZXIpOiBQb3N0cG9uZSB0aWwgYWZ0ZXIgcmVsb2FkLgoJKG1vdnYyZGlfaW50ZXJuYWwgc3BsaXR0ZXIpOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvcHJlZGljYXRlcy5tZCAoY29uc3RfMF90b182M19vcGVyYW5kKTogTmV3LgoJKGFic25lZ19vcGVyYXRvcik6IE5ldy4KCjIwMDQtMTItMTQgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBwYS5oIChSRUdOT19PS19GT1JfSU5ERVhfUCwgUkVHTk9fT0tfRk9SX0JBU0VfUCwgUkVHTk9fT0tfRk9SX0ZQX1ApOgoJQ2hlY2sgcmVnaXN0ZXIgbnVtYmVyIGFuZCB0aGF0IHJlZ19yZW51bWJlciBpcyBub256ZXJvIGJlZm9yZSB1c2luZyBpdC4KCjIwMDQtMTItMTQgIFN0ZXZlIEVsbGNleSAgPHNqZUBjdXAuaHAuY29tPgoKCSogZG9jL2ludm9rZS50ZXhpIChJQS02NCBvcHRpb25zKTogQWRkIGV4aXN0aW5nIG9wdGlvbnMgdGhhdAoJd2VyZW4ndCBhbHJlYWR5IGxpc3RlZC4KCjIwMDQtMTItMTQgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiB0cmVlLW91dG9mLXNzYS5jIChjb2FsZXNjZV9hYm5vcm1hbF9lZGdlcyk6IFBhc3MgdGhlIGNvcnJlY3QgdGFyZ2V0CglwYXJ0aXRpb24gdG8gY29uZmxpY3RfZ3JhcGhfbWVyZ2VfcmVncy4KCjIwMDQtMTItMTQgIFV0dGFtIFBhd2FyICA8dXR0YW1wQHVzLmlibS5jb20+CgkgICAgSmFuaXMgSm9obnNvbiAgPGphbmlzMTg3QHVzLmlibS5jb20+CgoJKiByczYwMDAuYyAocnM2MDAwX2hhbmRsZV9hbHRpdmVjX2F0dHJpYnV0ZV90cmVlKTogUmVwb3J0IGVycm9ycwoJZm9yIHZlY3RvciB0eXBlcyB3aXRoIGludmFsaWQgY29tcG9uZW50IHR5cGVzLgoKMjAwNC0xMi0xNCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgbWlkZGxlLWVuZC8xODk1MQoJKiBidWlsdGlucy5jIChleHBhbmRfYnVpbHRpbl9tYXRoZm4sIGV4cGFuZF9idWlsdGluX21hdGhmbl8yLAoJZXhwYW5kX2J1aWx0aW5fbWF0aGZuXzMpOiBBdm9pZCB1c2luZyBhcmd1bWVudHMgcGFzc2VkIHRvCglzYXZlX2V4cHIgYWZ0ZXIgdGhhdCBjYWxsLgoKCSogZm9sZC1jb25zdC5jIChmb2xkX3NpbmdsZV9iaXRfdGVzdCk6IElmIGZsYWdfc3ludGF4X29ubHksIHByZXRlbmQKCUxPQURfRVhURU5EX09QIGlzIG5vdCBkZWZpbmVkLgoJKGZvbGQpOiBMaWtld2lzZS4gIElmIGZsYWdfc3ludGF4X29ubHksIGRvbid0IGRlcGVuZCBvbiBCSVRTX1BFUl9XT1JELgoKMjAwNC0xMi0xNCAgVG9iaWFzIFNjaGx1ZXRlciAgPHRvYmlhcy5zY2hsdWV0ZXJAcGh5c2lrLnVuaS1tdWVuY2hlbi5kZT4KCgkqIHRyZWUuZGVmLCBkb2MvYy10cmVlLnRleGk6IENvcnJlY3RseSBkb2N1bWVudCByZXN0cmljdGlvbnMgb24gdGhlCglzaGlmdCB3aWR0aC4KCjIwMDQtMTItMTQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBleHByLmggKGV4cGFuZF9tb2RpZmllcik6IERlZmluZSBFWFBBTkRfU1RBQ0tfUEFSTSBhcyAxLgoKMjAwNC0xMi0xNCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJUFIgdGFyZ2V0LzE4OTczCglhcm0tY29yZXMuZGVmIChhcm05MjZlai1zLCBhcm0xMDI2ZWotcywgYXJtMTEzNmotcywgYXJtMTEzNi1qZnMpCgkoYXJtMTE3Nmp6LXMsIGFybTExNzZqemYtcywgbXBjb3Jlbm92ZnAsIG1wY29yZSk6IEFkZCBsb2FkLXNjaGVkdWxpbmcKCXByb3BlcnR5IHRvIGZsYWdzLgoKMjAwNC0xMi0xNCAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLWdpbXBsZS5jIChnZXRfYmFzZV9hZGRyZXNzKTogVXBkYXRlIGRvY3VtZW50YXRpb24uCgoyMDA0LTEyLTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIG1pZGRsZS1lbmQvMTc5MzAKCSogcGFzc2VzLmMgKHJlc3Rfb2ZfY2xlYW5fc3RhdGUpOiBGaXggY29tcHV0YXRpb24gb2YKCXByZWZlcnJlZF9pbmNvbWluZ19zdGFja19ib3VuZGFyeS4KCjIwMDQtMTItMTMgIFdvbGZnYW5nIEJhbmdlcnRoIDxiYW5nZXJ0aEBkZWFsaWkub3JnPgoKCSogcmVsb2FkLmg6IFJlbW92ZSBzdHJ1Y3QgbmVlZHMgYW5kIGl0cyBvbmx5IHVzZS4KCjIwMDQtMTItMTMgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMTg5MjgKCSogc2ltcGxpZnlfcnR4LmMgKHBsdXNfbWludXNfb3BlcmFuZF9wKTogTmV3IGZ1bmN0aW9uIHRvIGVuY29kZQoJdGhlIHRlc3QgZm9yIHN1aXRhYmxlIG9wZXJhbmRzIGZvciBjYWxscyB0byBzaW1wbGlmeV9wbHVzX21pbnVzLgoJT25seSBhbGxvdyAoQ09OU1QgKFBMVVMgeCB5KSkgaWYgYm90aCB4IGFuZCB5IGFyZSBDT05TVEFOVF9QLgoJKHNpbXBsaWZ5X2JpbmFyeV9vcGVyYXRpb24pOiBVc2UgcGx1c19taW51c19vcGVyYW5kX3AuCgoyMDA0LTEyLTEzICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdC8xNjk1MQoJKiB0cmVlLWlubGluZS5jIChzZXR1cF9vbmVfcGFyYW1ldGVyKTogRG9uJ3QgZGlyZWN0bHkgbWFwIGEKCXBhcmFtZXRlciB0byB0aGUgYWRkcmVzcyBvZiBhbm90aGVyIHZhcmlhYmxlIG9mIHRoZSBzYW1lCglmdW5jdGlvbi4KCjIwMDQtMTMtMTIgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIGJhc2ljLWJsb2NrLmggKFBST1BfUE9TVFJFTE9BRCk6IERvIG5vdCBpbmNsdWRlIFBST1BfQVVUT0lOQywgd2UKCWNhbiBuZXZlciBjcmVhdGUgYXV0b2luYyBpbnNucyBhZnRlciByZWxvYWQuCgoyMDA0LTEyLTEzICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoJICAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTg2OTQKCSogdHJlZS1zc2EtZG9tLmMgKHRocmVhZF9hY3Jvc3NfZWRnZSk6IERvIG5vdCB0aHJlYWQganVtcHMgaWYgYQoJUEhJIGFyZ3VtZW50IGlzIHNldCBmcm9tIGEgUEhJX1JFU1VMVCBpbiB0aGUgc2FtZSBibG9jayBhbmQgdGhlCglQSEkgYXJndW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBQSEkgcmVzdWx0LgoKMjAwNC0xMi0xMyAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogeGNvZmZvdXQuYyAoeGNvZmZvdXRfZGVjbGFyZV9mdW5jdGlvbik6IEFsd2F5cyBzdHJpcCBzdG9yYWdlCgljbGFzcyBlbmNvZGluZy4KCjIwMDQtMTItMTMgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHRhcmdldC8xODk2NAoJKiBjb25maWcvZGFyd2luLmMgKGRhcndpbl9hc3NlbWJsZV92aXNpYmlsaXR5KTogRml4IG1pbm9yIGRpYWdub3N0aWMKCXByb2JsZW0sIGFkZGluZyBhIHNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlIHN0cmluZyBiZWZvcmUgY29uY2F0ZW5hdGlvbi4KCjIwMDQtMTItMTMgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjLWNvbW1vbi5jIChmbmFtZV9hc19zdHJpbmcpOiBGcmVlIG5hbWVwIGlmIHdlIGFyZSByZXR1cm5pbmcKCWNzdHIudGV4dC4KCgkqIHRyZWUtc3NhLWRvbS5jIChyZWNvcmRfZWRnZV9pbmZvKTogRml4IG1lbW9yeSBsZWFrLgoKMjAwNC0xMi0xMyAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiB0cmVlLWNmZy5jIChyZW1vdmVfdXNlbGVzc19zdG10c19jb25kKTogQ2FsbCBmb2xkIG9uIENPTkRfRVhQUl9DT05ELgoKMjAwNC0xMi0xMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtc3NhLWRvbS5jIChyZWNvcmRfZXF1aXZhbGVuY2VzX2Zyb21fcGhpcyk6IFNwZWVkIHVwIGJ5Cglkb2luZyBhIHBvaW50ZXIgY29tcGFyaXNvbi4KCgkqIHRyZWUtc3NhLWRvbS5jIChyZWNvcmRfZXF1aXZhbGVuY2VzX2Zyb21fcGhpcyk6IEFkZCBhCgljb21tZW50LgoKCSogZGVmYXVsdHMuaCwgc3RtdC5jLCB0cmVlLWNmZy5jLCB0cmVlLXNzYS1kY2UuYzogRml4IGNvbW1lbnQKCXR5cG9zLgoKMjAwNC0xMi0xMyAgS2F6dWhpcm8gSW5hb2thIDxpbmFva2Eua2F6dWhpcm9AcmVuZXNhcy5jb20+CgoJKiBjb25maWcvbTMyci90LWxpbnV4IChTSExJQl9NQVBGSUxFUyk6IEFkZCBsaWJnY2MtZ2xpYmMudmVyIHRvCgl0aGUgbGlzdCByYXRoZXIgdGhhbiByZXBsYWNpbmcgdGhlIGV4aXN0aW5nIHZhbHVlLgoKMjAwNC0xMi0xMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNmZy5jIChkdW1wX2Zsb3dfaW5mbyk6IERvbid0IGR1bXAgcHNldWRvIGluZm8gYWZ0ZXIgcmVsb2FkLgoKMjAwNC0xMi0xMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmluIChpbnNuLXByZWRzLm8pOiBEZXBlbmQgb24gUkVHU19ILgoJKiBnZW5wcmVkcy5jICh3cml0ZV9pbnNuX3ByZWRzX2MpOiBJbmNsdWRlIHJlZ3MuaC4KCSogY29uZmlnL2kzODYvcHJlZGljYXRlcy5tZCAoaW5kZXhfcmVnaXN0ZXJfb3BlcmFuZCk6IFVzZQoJUkVHX09LX0ZPUl9JTkRFWF9TVFJJQ1RfUCBhbmQgUkVHX09LX0ZPUl9JTkRFWF9OT05TVFJJQ1RfUC4KCgkqIGNvbmZpZy9pMzg2L2kzODYuaCAoUkVHX0NMQVNTX0ZST01fTEVUVEVSKTogQWRkICdsJy4KCSogY29uZmlnL2kzODYvaTM4Ni5tZCAobGVhX2dlbmVyYWxfMSwgbGVhX2dlbmVyYWxfMV96ZXh0LAoJbGVhX2dlbmVyYWxfMiwgbGVhX2dlbmVyYWxfMl96ZXh0LCBsZWFfZ2VuZXJhbF8zLCBsZWFfZ2VuZXJhbF8zX3pleHQsCglhZGRkaV8xX3JleDY0LCBhZGRzaV8xLCBhZGRzaV8xX3pleHQsIGFkZGhpXzFfbGVhLCBhZGRxaV8xX2xlYSwKCWFzaGxkaTNfMV9yZXg2NCwgYXNobHNpM18xLCBhc2hsc2kzXzFfemV4dCwgYXNobGhpM18xX2xlYSwKCWFzaGxxaTNfMV9sZWEpOiBVc2UgJ2wnIGZvciBpbmRleCByZWdpc3RlciBvcGVyYW5kLgoJKGFzaGxkaTNfMV9yZXg2NCBzcGxpdHRlcik6IFVzZSBpbmRleF9yZWdpc3Rlcl9vcGVyYW5kLgoJKGFzaGxzaTNfMSBzcGxpdHRlcik6IEJlIG1vcmUgY2FyZWZ1bCB3aXRoIG1vZGVzLgoKMjAwNC0xMi0xMyAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCglQUiB0YXJnZXQvMTg0NTkKCSogZGVmYXVsdHMuaCAoVEFSR0VUX1VTRV9KQ1JfU0VDVElPTik6IE5ldyBtYWNyby4KCSogZG9jL3RtLnRleGkgKFRBUkdFVF9VU0VfSkNSX1NFQ1RJT04pOiBEb2N1bWVudCBpdC4KCSogY29uZmlnL2kzODYvY3lnbWluZy5oIChUQVJHRVRfVVNFX0pDUl9TRUNUSU9OKTogT3ZlcnJpZGUKCWRlZmF1bHQuCgoyMDA0LTEyLTEzIFVyb3MgQml6amFrIDx1cm9zQGtzcy1sb2thLnNpPgoKCVBSIHRhcmdldC8xNDk0MQoJUFIgdGFyZ2V0LzE4NTAzCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKHNzZV9tb3Zzcywgc3NlMl9tb3ZzZCwgc3NlMl9tb3ZocGQpOgoJRml4IHdyb25nIHZlY19tZXJnZSBzZWxlY3RvciBiaXRtYXNrLgoKMjAwNC0xMi0xMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBydGwtb3B0LzE3MTg2CgkqIHJlZy1zdGFjay5jIChtb3ZlX25hbl9mb3Jfc3RhY2tfcmVnKTogTmV3LgoJKHN1YnN0X3N0YWNrX3JlZ3NfcGF0KTogVXNlIGl0LgoJKG1vdmVfZm9yX3N0YWNrX3JlZyk6IEhhbmRsZSBzb3VyY2UgcmVnaXN0ZXIgbm90IGxpdmUgd2l0aCBhIG5hbi4KCjIwMDQtMTItMTIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfZ2ltcGxpZnlfdmFfYXJnKTogRml4IHR5cGUgbWlzbWF0Y2gKCWVycm9ycyBhY3Jvc3Mgb3BlcmF0aW9ucy4KCjIwMDQtMTItMTIgIERpLWFuIEphbiAgPGRpYW5qQGZyZWVzaGVsbC5vcmc+CgoJKiBkb2MvcGFzc2VzLnRleGkgKFBhc3MgTWFuYWdlcik6IENvcnJlY3QgbGlzdCBvZiBzb3VyY2UgZmlsZXMuCgoyMDA0LTEyLTEyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZXhwci5jIChlbWl0X21vdmVfY2hhbmdlX21vZGUpOiBOZXcuCgkoZW1pdF9tb3ZlX3ZpYV9hbHRfbW9kZSk6IFVzZSBpdC4KCjIwMDQtMTItMTIgIE5hdGhhbmFlbCBOZXJvZGUgIDxuZXJvZGVuQGdjYy5nbnUub3JnPgoJICAgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJUFIgbWlkZGxlLWVuZC8xNzU2NAoJKiBkb2p1bXAuYyAoZG9fY29tcGFyZV9hbmRfanVtcCk6IE9ubHkgY2Fub25pY2FsaXplIGZ1bmN0aW9uIHBvaW50ZXJzCglpbiBhIGNvbXBhcmlzb24gaWYgYm90aCBzaWRlcyBhcmUgZnVuY3Rpb24gcG9pbnRlcnMuCgoyMDA0LTEyLTEyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xODkzMgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChhbGwgc3BsaXRzIGFuZCBwZWVwaG9sZXMpOiBVc2UgZmxhZ3NfcmVnX29wZXJhbmQKCWFuZCBjb21wYXJlX29wZXJhdG9yIHRvIHByb3BhZ2F0ZSB0aGUgaW5wdXQgQ0MgbW9kZSB0byB0aGUgb3V0cHV0LgoJKiBjb25maWcvaTM4Ni9wcmVkaWNhdGVzLm1kIChjb21wYXJlX29wZXJhdG9yKTogTmV3LgoKMjAwNC0xMi0xMiAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgdHJlZS1vcHQvMTgwNDAKCSogZXhwci5jIChnZXRfaW5uZXJfcmVmZXJlbmNlKTogUmVtb3ZlIE5PTl9MVkFMVUVfRVhQUiwgTk9QX0VYUFIsCglDT05WRVJUX0VYUFIgY2FzZXMuCgkoaGFuZGxlZF9jb21wb25lbnRfcCk6IExpa2V3aXNlLgoKMjAwNC0xMi0xMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHJlZy1zdGFjay5jIChjb252ZXJ0X3JlZ3NfMik6IEZyZWUgc3RhY2suCgoJKiB0cmVlLXNzYS1kb20uYyAodGhyZWFkX2Fjcm9zc19lZGdlLCBkb21fb3B0X2ZpbmFsaXplX2Jsb2NrKTogRml4Cgljb21tZW50IHR5cG9zLgoKMjAwNC0xMi0xMiAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiB0cmVlLXNzYS1sb29wLWNoLmMgKGNvcHlfbG9vcF9oZWFkZXJzKTogTG9vcCBjYW4gYmUgbnVsbC4KCSogdHJlZS1zc2EtbG9vcC1pbS5jIChkZXRlcm1pbmVfbHNtKTogdHJlZV9yb290IG1heSBub3QgaGF2ZSBhIHJlYWwKCWlubmVyIGxvb3AuCgoyMDA0LTEyLTEyICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIHRyZWUtZ2ltcGxlLmMgKGdldF9iYXNlX2FkZHJlc3MpOiBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KCjIwMDQtMTItMTIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBsY20uYyAob3B0aW1pemVfbW9kZV9zd2l0Y2hpbmcpOiBGcmVlIHB0ciBldmVuIHdoZW4gbW9kZV9zZXQKCWlzIE5VTExfUlRYLgoKMjAwNC0xMi0xMiAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiByZWctc3RhY2suYyAoY2hhbmdlX3N0YWNrKTogQXZvaWQgcGxhY2luZyB0aGUgbmV3IHRvcC1vZi1zdGFjayBpbgoJaXRzIGNvcnJlY3QgbG9jYXRpb24gZHVyaW5nIHBvcHBpbmcgaWYgd2UgbmVlZCB0byBwZXJtdXRlIHRoZSBzdGFjawoJYWZ0ZXJ3YXJkcy4gIEF0dGVtcHQgdG8gcHJlc2VydmUgdGhlIG9yaWdpbmFsIHN0YWNrIG9yZGVyaW5nLgoKMjAwNC0xMi0xMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGxjbS5jIChvcHRpbWl6ZV9tb2RlX3N3aXRjaGluZyk6IEZyZWUgaW5zZXJ0IGFuZCBkZWxldGUgaW4KCXRoZSAiZm9yIiBsb29wLgoKMjAwNC0xMi0xMSAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoJICAgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCglQUiB0YXJnZXQvMTg2NDEKCSogY29uZmlnL3JzNjAwMC9kYXJ3aW4uaCAoUFJFRkVSUkVEX1JFTE9BRF9DTEFTUyk6IFJlbG9hZCBhbGwKCWNvbnN0YW50cyBpbnRvIGFsbCByZWdpc3RlciBjbGFzc2VzIGludGVyc2VjdGluZyB3aXRoIEZMT0FUX1JFR1MKCXZpYSBtZW1vcnkuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKFBSRUZFUlJFRF9SRUxPQURfQ0xBU1MpOiBTYW1lLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAobW92ZGlfaW50ZXJuYWwzMik6IElnbm9yZSBGUFJzIHdoZW4KCWNob29zaW5nIHJlZ2lzdGVyIHByZWZlcmVuY2VzLgoJKG1vdmRpX2ludGVybmFsNjQpOiBTYW1lLgoKMjAwNC0xMi0xMSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtaW50by1zc2EuYyAocmV3cml0ZV9zc2FfaW50b19zc2EpOiBGcmVlIFNTQV9OQU1FX0FVWAoJYmVmb3JlIHdlIHJlbGVhc2UgYW4gU1NBX05BTUUuCgoyMDA0LTEyLTExICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBtaWRkbGUtZW5kLzE4OTIxCgkqIGZvbGQtY29uc3QuYyAoZm9sZF91bndpZGVuZWRfY29tcGFyaXNvbik6IFVzZSBvbWl0X29uZV9vcGVyYW5kCglpbnN0ZWFkIG9mIGNvbnN0YW50X2Jvb2xlYW5fbm9kZSBhcyBhcmcwIG1heSBoYXZlIHNpZGUtZWZmZWN0cy4KCjIwMDQtMTItMTAgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBwYS1ob3N0LmMgKHBhX2d0X3BjaF91c2VfYWRkcmVzcyk6IFVzZSBsc2VlayBhbmQgcmVhZCB0byBjb3B5IFBDSAoJZmlsZSB0byBhbm9ueW1vdXMgcHJpdmF0ZSBtYXAuCgoyMDA0LTEyLTEwICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiB0YXJnZXQvMTgwMDIKCVBSIG1pZGRsZS1lbmQvMTg0MjQKCSogZG9qdW1wLmMgKGRvX2p1bXApOiBXaGVuIGF0dGVtcHRpbmcgdG8gcmV2ZXJzZSB0aGUgZWZmZWN0cyBvZgoJZm9sZF9zaW5nbGVfYml0X3Rlc3QsIHdlIG5lZWQgdG8gU1RSSVBfTk9QUyBhbmQgbmFycm93aW5nIHR5cGUKCWNvbnZlcnNpb25zLCBhbmQgaGFuZGxlIEJJVF9YT1JfRVhQUiB0aGF0J3MgdXNlZCB0byBpbnZlcnQgdGhlCglzZW5zZSBvZiB0aGUgc2luZ2xlIGJpdCB0ZXN0LgoKMjAwNC0xMi0xMCAgRGV2YW5nIFBhdGVsICA8ZHBhdGVsQGFwcGxlLmNvbT4KCglQUiAxODczMgoJKiBnY2MuYyAobWFpbik6IERvIG5vdCBicmVhayBvdXQgb2YgbG9vcCB3aGVuIGVycm9yIGlzIHJlcG9ydGVkIHdoaWxlCglwcm9jZXNzaW5nIG9uZSBzb3VyY2UgZmlsZS4KCjIwMDQtMTItMTAgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1pbnRvLXNzYS5jIChSRVdSSVRFX1RISVNfU1RNVCk6IERlZmluZS4KCShtYXJrX2RlZl9zaXRlcyk6IENsZWFyIFJFV1JJVEVfVEhJU19TVE1UIGZvciBzdGF0ZW1lbnRzIHRoYXQKCWRvbid0IG5lZWQgYW55IG9wZXJhbmRzIHJld3JpdHRlbi4KCShyZXdyaXRlX3N0bXQpOiBJZ25vcmUgc3RhdGVtZW50cyB0aGF0IGRvbid0IG5lZWQgdG8gYmUKCXJld3JpdHRlbi4KCShyZXdyaXRlX29wZXJhbmQpOiBWYWxpZGF0ZSB0aGF0IGFuIGV4aXN0aW5nIFNTQV9OQU1FIGlzCglpZGVudGljYWwgdG8gdGhlIGN1cnJlbnQgcmVhY2hpbmcgZGVmaW5pdGlvbiBvZiB0aGUgb3BlcmFuZC4KCjIwMDQtMTItMTAgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1kZmEuYyAobWFya19jYWxsX2Nsb2JiZXJlZF92YXJzX3RvX3JlbmFtZSk6IE5ldyBmdW5jdGlvbi4KCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3Rvcml6YWJsZV9sb2FkKTogQ2FsbCBpdC4KCSogdHJlZS1mbG93LmggKG1hcmtfY2FsbF9jbG9iYmVyZWRfdmFyc190b19yZW5hbWUpOiBEZWNsYXJlLgoJKiB0cmVlLXNyYS5jIChtYXJrX2FsbF92X2RlZnMpOiBBbHNvIG1hcmsgVlVTRXMgZm9yIHJlbmFtaW5nLgoKMjAwNC0xMi0xMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHJlZ21vdmUuYyAoY29tYmluZV9zdGFja19hZGp1c3RtZW50c19mb3JfYmxvY2spOiBGcmVlCgltZW1saXN0IGlmIGl0IGhhc24ndCBiZWVuIGZyZWVkLgoKMjAwNC0xMi0xMCAgWmllbW93aXQgTGFza2kgIDx6bGFza2lAYXBwbGUuY29tPgoKCSogYy10eXBlY2suYyAobG9va3VwX2ZpZWxkKTogQ2hlY2sgaWYgYSBUWVBFX0xBTkdfU1BFQ0lGSUMKCXBvaW50ZXIgZmllbGQgaXMgc2V0IGJlZm9yZSBkZXJlZmVyZW5jaW5nIGl0LgoKMjAwNC0xMi0xMCAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgbWlkZGxlLWVuZC8xODkwMwoJKiB0cmVlLWNmZy5jIChyZW1vdmVfYmIpOiBQdXQgdGhlIG1vdmVkIGxhYmVsIGF0IHRoZSBiZWdpbm5pbmcKCW9mIHRoZSBiYXNpYyBibG9jay4KCjIwMDQtMTItMTAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWRhdGEtcmVmLmMgKGZyZWVfZGF0YV9yZWZzKTogRnJlZSBlYWNoIGRhdGFfcmVmZXJlbmNlCglvYmplY3QuCgoJKiB0cmVlLXNzYS1kb20uYyAodGhyZWFkX2Fjcm9zc19lZGdlKTogU3BlZWQgdXAgYnkgYXZvaWRpbmcgYQoJY2FsbCB0byBpc19naW1wbGVfbWluX2ludmFyaWFudCBpZiB3ZSBrbm93IHRoZSByZXN1bHQuCgoyMDA0LTEyLTEwICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtYWxpYXMuYyAoc2V0dXBfcG9pbnRlcnNfYW5kX2FkZHJlc3NhYmxlcyk6IFJlbW92ZQoJcmVkdW5kYW50IHRlc3Qgb2Ygdl9hbm4tPm1lbV90YWdfa2luZC4KCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGdldF9pbmRpcmVjdF9yZWZfb3BlcmFuZHMpOiBSZW1vdmUKCXJlZHVuZGFudCBjb25kaXRpb25hbCBjbGVhcmluZyBvcGZfa2lsbF9kZWYuCgoyMDA0LTEyLTEwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvZnJ2L2Zydi1tb2Rlcy5kZWY6IEZpeCBjb21tZW50IHR5cG9zLgoJKENDX05aKTogRGVmaW5lIG5ldyBtb2RlLgoJKiBjb25maWcvZnJ2L2Zydi1wcm90b3MuaCAoZnJ2X3NlbGVjdF9jY19tb2RlKTogRGVjbGFyZS4KCShjb25kZXhlY19pbnRvcF9jbXBfb3BlcmF0b3IpOiBEZWxldGUuCgkqIGNvbmZpZy9mcnYvZnJ2LmMgKGNvbXBhcmlzb25fc3RyaW5nKTogTmV3IGZ1bmN0aW9uLgoJKGZydl9wcmludF9vcGVyYW5kKTogVXNlIGl0IHRvIGhhbmRsZSAnYycgYW5kICdDJy4KCShyZWxhdGlvbmFsX29wZXJhdG9yKTogUmVkZWZpbmUgaW4gdGVybXMgb2YgaW50ZWdlcl9yZWxhdGlvbmFsX29wZXJhdG9yCglhbmQgZmxvYXRfcmVsYXRpb25hbF9vcGVyYXRvci4KCShzaWduZWRfcmVsYXRpb25hbF9vcGVyYXRvciwgdW5zaWduZWRfcmVsYXRpb25hbF9vcGVyYXRvcik6IERlbGV0ZS4KCShpbnRlZ2VyX3JlbGF0aW9uYWxfb3BlcmF0b3IpOiBOZXcgcHJlZGljYXRlLCBjb21iaW5pbmcgdGhlIGFib3ZlLgoJQ2hlY2sgdGhlIG1vZGUgb2YgdGhlIGZpcnN0IG9wZXJhbmQgYnV0IGxlYXZlIGZydi5tZCB0byBjaGVjayB0aGUgcmVzdC4KCShmbG9hdF9yZWxhdGlvbmFsX29wZXJhdG9yKTogSnVzdCBjaGVjayB0aGUgbW9kZSBvZiB0aGUgZmlyc3Qgb3BlcmFuZAoJYW5kIGxlYXZlIGZydi5tZCB0byBjaGVjayB0aGUgcmVzdC4KCShpbnRvcF9jb21wYXJlX29wZXJhdG9yKTogQXNzdW1lIHRoZSByZXN1bHQgaXMgY29tcGFyZWQgd2l0aCB6ZXJvCglpbiBtb2RlIENDX05abW9kZS4gIEFsbG93IFBMVVMgYW5kIE1JTlVTLiAgTGVhdmUgZnJ2Lm1kIHRvIGNoZWNrCgl0aGUgb3BlcmFuZCBwcmVkaWNhdGVzLgoJKGNvbmRleGVjX2ludG9wX2NtcF9vcGVyYXRvcik6IERlbGV0ZS4KCShmcnZfaWZjdnRfbW9kaWZ5X3Rlc3RzLCBmcnZfaWZjdnRfbW9kaWZ5X211bHRpcGxlX3Rlc3RzKQoJKGZydl9oYXJkX3JlZ25vX21vZGVfb2spOiBIYW5kbGUgQ0NfTlptb2RlLgoJKGZydl9zZWxlY3RfY2NfbW9kZSk6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL2Zydi9mcnYuaCAoU0VMRUNUX0NDX01PREUpOiBVc2UgZnJ2X3NlbGVjdF9jY19tb2RlLgoJKFJFVkVSU0lCTEVfQ0NfTU9ERSk6IEluY2x1ZGUgQ0NfTlptb2RlLgoJKFBSRURJQ0FURV9DT0RFUyk6IFJlcGxhY2UgZW50cmllcyBmb3Igc2lnbmVkX3JlbGF0aW9uYWxfb3BlcmFuZCBhbmQKCXVuc2lnbmVkX3JlbGF0aW9uYWxfb3BlcmF0b3Igd2l0aCBvbmUgZm9yIGludGVnZXJfcmVsYXRpb25hbF9vcGVyYXRvci4KCURlbGV0ZSBlbnRyeSBmb3IgY29uZGV4ZWNfaW50b3BfY21wX29wZXJhdG9yLgoJKiBjb25maWcvZnJ2L2Zydi5tZCAobW92Y2NfbnosICppbnRlcm5hbF9tb3ZjY19ueiwgcmVsb2FkX2luY2NfbnopCgkocmVsb2FkX291dGNjX256LCAqY21wc2lfY2NfbnosICpjb25kX2V4ZWNfY21wc2lfY2NfbnopOiBOZXcgcGF0dGVybnMuCgkoKmNvbWJvX2ludG9wX2NvbXBhcmUyLCAqY29tYm9faW50b3BfY29tcGFyZTQpOiBEZWxldGUuCgkoKmNvbWJvX2ludG9wX2NvbXBhcmUxKTogQ2hhbmdlIG1vZGUgdG8gQ0NfTlouCgkoKmNvbWJvX2ludG9wX2NvbXBhcmUyKTogTGlrZXdpc2UuICBSZW5hbWVkIGZyb20gKmNvbWJvX2ludG9wX2NvbXBhcmUzLgoJKGJyYW5jaF97dW4sfXNpZ25lZF90cnVlLCBicmFuY2hfe3VuLH1zaWduZWRfZmFsc2UpCgkoKnNjY197dW4sfXNpZ25lZCwgKnNjY19uZWcxX3t1bix9c2lnbmVkLCAqY2tfe3VuLH1zaWduZWQpCgkoKm1vdnFpY2NfaW50ZXJuYWwxX3t1bix9c2lnbmVkLCAqbW92cWljY19pbnRlcm5hbDJfe3VuLH1zaWduZWQpCgkoKm1vdmhpY2NfaW50ZXJuYWwxX3t1bix9c2lnbmVkLCAqbW92aGljY19pbnRlcm5hbDJfe3VuLH1zaWduZWQpCgkoKm1vdnNpY2NfaW50ZXJuYWwxX3t1bix9c2lnbmVkLCAqbW92c2ljY19pbnRlcm5hbDJfe3VuLH1zaWduZWQpCgkoKm1vdnNmY2NfaGFzX2ZwcnNfe3VuLH1zaWduZWQsICptb3ZzZmNjX25vX2ZwcnNfe3VuLH1zaWduZWQpCgkoKnJldHVybl97dW5zaWduZWRfLH10cnVlLCAqcmV0dXJuX3t1bnNpZ25lZF8sfWZhbHNlKTogTWVyZ2UgdGhlc2UKCXBhdHRlcm4gcGFpcnMuICBVc2UgaW50ZWdlcl9yZWxhdGlvbmFsX29wZXJhdG9yLiAgUmVtb3ZlIG1vZGUgZnJvbQoJaWNjX29wZXJhbmQuCgoyMDA0LTEyLTEwICBNYXJrIERldHRpbmdlciAgPGRldHRpbmdlQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHN0cnVjdCBwcm9jZXNzb3JfY29zdHMpOiBOZXcgZmllbGRzIG1sLAoJc3FkYnIsIHNxZWJyLgoJKHMzOTBfcnR4X2Nvc3RzKTogQWRkZWQgdGhlIG1pc3NpbmcgaGFuZGxpbmcgb2YgbXVsdGlwbHkgJiBhZGQsCglzcXVhcmUgcm9vdCwgYW5kIHVtdWxzaWRpLgoKMjAwNC0xMi0xMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGV4cG1lZC5jIChzeW50aF9tdWx0KTogSW5pdGlhbGl6ZSBuZXdfbGltaXQubGF0ZW5jeSBiZWZvcmUKCW1ha2luZyBhIHJlY3Vyc2l2ZSBjYWxsLgoKMjAwNC0xMi0xMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9tbjEwMzAwL21uMTAzMDAuYyAobGVnaXRpbWF0ZV9hZGRyZXNzX3ApOiBSZWplY3QgYWRkcmVzcwoJd2hvc2UgaW5kZXggaXMgaXRzZWxmIHRoZSBzdW0gb2YgdHdvIG90aGVyIHBhcnRzLgoKMjAwNC0xMi0xMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy90LXNsaWJnY2Mtc2xkIChTSExJQl9MSU5LKTogQ29ycmVjdCBzeW1saW5rLgoKMjAwNC0xMi0xMCAgVXJvcyBCaXpqYWsgIDx1cm9zQGtzcy1sb2thLnNpPgoKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoKmNtcGZwX3NmKTogQ2hhbmdlIHR5cGUgYXR0cmlidXRlIHRvICJtdWx0aSIuCgoyMDA0LTEyLTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIGMvMTgyODIKCSogYXR0cmlicy5jIChkZWNsX2F0dHJpYnV0ZXMpOiBVc2UgcmVsYXlvdXRfZGVjbC4KCSogYy1jb21tb24uYyAoaGFuZGxlX21vZGVfYXR0cmlidXRlKTogQ29weSBhbGwgcmVsZXZhbnQgdHlwZQoJcGFyYW1ldGVycyBmcm9tIHRoZSBuZXcgdW5kZXJseWluZyBpbnRlZ3JhbCB0eXBlLgoKMjAwNC0xMi0wOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGMtY29tbW9uLmMgKHNob3J0ZW5fY29tcGFyZSk6IERvbid0IHNwZWNpYWwtY2FzZSBtaW4vbWF4dmFsCglmb3IgQyBlbnVtZXJhdGlvbnMuCgoyMDA0LTEyLTA5ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBzaW1wbGlmeS1ydHguYyAoc2ltcGxpZnlfc3VicmVnKTogSW4gdGhlIENPTkNBVCBjYXNlLCBjaGVjayB3aGV0aGVyCgl0aGUgcmVxdWVzdCBzdWJyZWcgaXMgZW50aXJlbHkgY29udGFpbmVkIGluIHRoZSByZXF1ZXN0ZWQgY29tcG9uZW50LgoJKHNpbXBsaWZ5X2dlbl9zdWJyZWcpOiBSZXR1cm4gbnVsbCBmb3IgQ09OQ0FUcyB0aGF0IGFyZSByZWplY3RlZAoJYnkgc2ltcGxpZnlfc3VicmVnLgoJKiBleHBtZWQuYyAoc3RvcmVfYml0X2ZpZWxkKTogQ3JlYXRlIGEgdGVtcG9yYXJ5IHdoZW4gY2hhbmdpbmcgdGhlCgl2YWx1ZSB0byBhbiBpbnRlZ2VyIG1vZGUuCgoyMDA0LTEyLTA5ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiByZWFsLmMgKGlibV9leHRlbmRlZCk6IENvcnJlY3QgY29tbWVudC4KCjIwMDQtMTItMDkgIFN0YW4gU2hlYnMgIDxzaGVic0BhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi1hc20uaDogTmV3IGZpbGUsIDMyLzY0LWJpdCBhc3NlbWJseSBtYWNyb3MKCWZvcm1lcmx5IGluIGRhcndpbi10cmFtcC5hc20uCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLXRyYW1wLmFzbTogSW5jbHVkZSBkYXJ3aW4tYXNtLmguCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLWZwc2F2ZS5hc206IFVzZSAzMi82NC1iaXQgbWFjcm9zLgoJKiBjb25maWcvcnM2MDAwL3QtZGFyd2luOiBBZGQgZGVwZW5kZW5jaWVzLgoKMjAwNC0xMi0wOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTcwMjUKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAodGVzdHFpXzFfbWF5YmVfc2ksIGFuZHFpXzJfbWF5YmVfc2kpOiBOZXcuCgkodGVzdF9xaV8xLCBhbmRxaV8yKTogRG8gbm90IHByb21vdGUgdG8gc2ltb2RlLgoKMjAwNC0xMi0wOSAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgdHJlZS1vcHQvMTg5MDQKCSogdHJlZS1jaHJlYy5jIChjaHJlY19jb252ZXJ0KTogVXNlIGZvbGRfY29udmVydAoJaW5zdGVhZCBvZiBjb252ZXJ0LgoKMjAwNC0xMi0wOSAgTWF0dCBSaWNlICA8cmF0bWljZUB5YWhvby5jb20+CgoJUFIgcHJlcHJvY2Vzc29yLzE4MTAyCgkqIGMtaW5jcGF0aC5jIChyZW1vdmVfZHVwbGljYXRlcyk6IENoZWNrIGZvciBjb25zdHJ1Y3QKCWVxdWFsaXR5LgoKMjAwNC0xMi0wOSAgRG9yaXQgTmFpc2hsb3MgIDxkb3JpdEBpbC5pYm0uY29tPgoKCSogZ2Vub3Bpbml0LmMgKHZlY19yZWFsaWduX3N0b3JlX29wdGFiKTogSW5pdGlhbGl6YXRpb24gcmVtb3ZlZC4KCSogb3B0YWJzLmMgKG9wdGFiX2Zvcl90cmVlX2NvZGUpOiBSRUFMSUdOX1NUT1JFX0VYUFIgY2FzZSByZW1vdmVkLgoJKiBvcHRhYnMuaCAob3B0YWJfaW5kZXgpOiBPVElfdmVjX3JlYWxpZ25fc3RvcmUgUmVtb3ZlZC4KCSh2ZWNfcmVhbGlnbl9zdG9yZV9vcHRhYik6IFJlbW92ZWQuCgkqIHRhcmdldC1kZWYuaCAoVEFSR0VUX1ZFQ1RPUklaRV9CVUlMVElOX01BU0tfRk9SX1NUT1JFKTogUmVtb3ZlZC4KCSogdGFyZ2V0LmggKGJ1aWx0aW5fbWFza19mb3Jfc3RvcmUpOiBSZW1vdmVkLgoJKiB0cmVlLmRlZiAoUkVBTElHTl9TVE9SRV9FWFBSKTogUmVtb3ZlZC4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2J1aWx0aW5fbWFza19mb3Jfc3RvcmUpOiBSZW1vdmVkLgoJKGFsdGl2ZWNfYnVpbHRpbl9tYXNrX2Zvcl9zdG9yZSk6IFJlbW92ZWQuCgkoYWx0aXZlY19pbml0X2J1aWx0aW5zKTogUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZgoJYWx0aXZlY19idWlsdGluX21hc2tfZm9yX3N0b3JlLgoKCSogZG9jL3RtLnRleGkgKFRBUkdFVF9WRUNUT1JJWkVfTUlTQUxJR05FRF9NRU1fT0spOiBOZXcuCgkoVEFSR0VUX1ZFQ1RPUklaRV9CVUlMVElOX01BU0tfRk9SX0xPQUQpOiBOZXcuCgoyMDA0LTEyLTA5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZG9jL2MtdHJlZS50ZXhpIChDT05TVFJVQ1RPUik6IE1lbnRpb24gUkFOR0VfRVhQUnMuCgoJKiB0cmVlLmRlZiAoU0VUX1RZUEUpOiBSZW1vdmUuCgkoQ09OU1RSVUNUT1IpOiBVcGRhdGUgZGVzY3JpcHRpb24uCgkqIGJ1aWx0aW5zLmMgKHR5cGVfdG9fY2xhc3MpIFJlbW92ZSBTRVRfVFlQRSBjYXNlLgoJKiBkYnhvdXQuYyAoZGJ4b3V0X3R5cGUpOiBMaWtld2lzZS4KCSogZHdhcmYyb3V0LmMgKGlzX2Jhc2VfdHlwZSk6IExpa2V3aXNlLgoJKGdlbl9zZXRfdHlwZV9kaWUpOiBSZW1vdmUuCgkoZ2VuX3R5cGVfZGllKTogUmVtb3ZlIFNFVF9UWVBFIGNhc2UuCgkqIGV4cHIuYyAoY291bnRfdHlwZV9lbGVtZW50cyk6IExpa2V3aXNlLgoJKG1vc3RseV96ZXJvZXNfcCk6IExpa2V3aXNlLgoJKHN0b3JlX2NvbnN0cnVjdG9yKTogTGlrZXdpc2UuCgkqIHByaW50X3RyZWUuYyAocHJpbnRfbm9kZSk6IExpa2V3aXNlLgoJKiBzdG9yLWxheW91dC5jIChsYXlvdXRfdHlwZSk6IExpa2V3aXNlLgoJKiB0cmVlLWJyb3dzZXIuYyAoYnJvd3NlX3RyZWUpOiBMaWtld2lzZS4KCSogdHJlZS1pbmxpbmUuYyAocmVtYXBfdHlwZSk6IExpa2V3aXNlLgoJKiB0cmVlLXByZXR0eS1wcmludC5jIChkdW1wX2dlbmVyaWNfbm9kZSk6IExpa2V3aXNlLgoJKiB0cmVlLmMgKHR5cGVfY29udGFpbnNfcGxhZWhvbGRlcl8xLCB0eXBlX2hhc2hfZXEsCgl2YXJpYWJseV9tb2RpZmllZF90eXBlX3AsIGluaXRpYWxpemVyX3plcm9wKTogTGlrZXdpc2UuCgkqIHRyZWUuaCAoU0VUX09SX0FSUkFZX0NIRUNLKTogUmVtb3ZlLgoJKEFHR1JFR0FURV9UWVBFX1ApOiBSZW1vdmUgU0VUX1RZUEUgY2hlY2suCgkoVFlQRV9ET01BSU4pOiBVc2UgQVJSQVlfVFlQRV9DSEVDSy4KCSogdHlwZWNsYXNzLmggKGVudW0gdHlwZV9jbGFzcyk6IFJlbW92ZSBzZXRfdHlwZV9jbGFzcy4KCSogdmFyYXNtLmMgKGNvbnN0X2hhc2hfMSk6IFJlbW92ZSBTRVRfVFlQRSBjYXNlLgoJKGNvbXBhcmVfY29uc3RhbnQsIGNvcHlfY29uc3RhbnQsIG91dHB1dF9jb25zdGFudCk6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGNsYXNzaWZ5X2FyZ3VtZW50KTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoaGZhX2VsZW1lbnRfbW9kZSk6IExpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvc3BhcmMuYyAoc3BhcmNfdHlwZV9jb2RlKTogTGlrZXdpc2UuCgoJUFIgYysrLzE2NjgxCgkqIHRyZWUtaW5saW5lLmMgKGVzdGltYXRlX251bV9pbnNuc18xKTogQWRkIFJBTkdFX0VYUFIgY2FzZS4KCjIwMDQtMTItMDggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kOiBVc2UgRkxBR1NfUkVHIGV2ZXJ5d2hlcmUuCgoyMDA0LTEyLTA4ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuYyAobWlwc19zY2FsYXJfbW9kZV9zdXBwb3J0ZWRfcCk6IFJld3JpdGUKCXRvIGF2b2lkIGNhbGwgdG8gZGVmYXVsdCBmdW5jdGlvbi4KCjIwMDQtMTItMDggIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgMTc5ODIKCSogdmFyYXNtLmMgKHBlbmRpbmdfYXNzZW1ibGVfZXh0ZXJuYWxzKTogTmV3IHN0YXRpYy4KCShhc3NlbWJsZV9leHRlcm5hbF9yZWFsKTogTWVhdCBvZiBhc3NlbWJsZV9leHRlcm5hbCBzcGxpdCBvdXQKCXRvIHRoaXMgbmV3IGZ1bmN0aW9uLgoJKHByb2Nlc3NfcGVuZGluZ19hc3NlbWJsZV9leHRlcm5hbHMpOiBOZXcgZnVuY3Rpb24uCgkoYXNzZW1ibGVfZXh0ZXJuYWwpOiBVc2UgZ2NjX2Fzc2VydC4gIElmIGZsYWdfdW5pdF9hdF9hX3RpbWUKCWlzIHRydWUgYW5kIHRoZSBiYXNpYyB0ZXN0IHBhc3NlcywgbWVyZWx5IGNvbnMgdGhlIGRlY2wgb250bwoJdGhlIHBlbmRpbmcgbGlzdCB0byBiZSBoYW5kbGVkIGxhdGVyLgoJKiB0cmVlLmg6IERlY2xhcmUgcHJvY2Vzc19wZW5kaW5nX2Fzc2VtYmxlX2V4dGVybmFscy4KCSogY2dyYXBodW5pdC5jIChjZ3JhcGhfb3B0aW1pemUpOiBDYWxsIGl0LgoKCSogY29uZmlnL2g4MzAwL2g4MzAwLmg6IERvIG5vdCBkZWZpbmUgQVNNX09VVFBVVF9FWFRFUk5BTC4KCjIwMDQtMTItMDggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjZmdsb29wbWFuaXAuYyAoY3JlYXRlX3ByZWhlYWRlcik6IFNwZWVkIHVwIGJ5ICJ1bnJvbGxpbmciCglhbmQgc2ltcGxpZnlpbmcgRk9SX0VBQ0hfRURHRS4KCjIwMDQtMTItMDggIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9mcnYvZnJ2LmMgKGZydl9zb3J0X2luc25fZ3JvdXApOiBBbHdheXMgaW5pdGlhbGl6ZQoJcGFja2V0X2dyb3VwLT5ub3AuCgoyMDA0LTEyLTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xODY3MgoJKiBnaW1wbGlmeS5jIChjYW5vbmljYWxpemVfYWRkcl9leHByKTogQ29wZSB3aXRoIGFycmF5IG9mCglpbmNvbXBsZXRlIHR5cGUuCgkoZ2ltcGxpZnlfY29udmVyc2lvbik6IFJlbW92ZSByZWR1bmRhbnQgY2hlY2tzLgoKCSogZG9jL3Ryb3VibGUudGV4aSAoTm9uLWJ1Z3MpOiBDbGFyaWZ5IGVtcHR5IGxvb3AgcmVtb3ZhbC4KCjIwMDQtMTItMDggIFVyb3MgQml6amFrICA8dXJvc0Brc3MtbG9rYS5zaT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAob3V0cHV0XzM4N19iaW5hcnlfb3AsCglpeDg2X3ByZXBhcmVfZnBfY29tcGFyZV9hcmdzKTogRml4IGlzX3NzZSBjb25kaXRpb24uCgoyMDA0LTEyLTA3ICBVcm9zIEJpemphayAgPHVyb3NAa3NzLWxva2Euc2k+CgoJKiBjb25maWcvaTM4Ni9pMzg2LXByb3Rvcy5oIChpeDg2X3NwbGl0X2ZwX2JyYW5jaCk6IE5ldyBydHgKCWFyZ3VtZW50LgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChvdXRwdXRfZnBfY29tcGFyZSk6IEZpeCBpc19zc2UgY29uZGl0aW9uLgoJVXNlIEVGTEFHU19QIG9ubHkgd2hlbiBmY29taSBpbnNuIHNob3VsZCBiZSB1c2VkLiBGaXggaGFuZGxpbmcKCW9mIGVmbGFnc19wIHZhcmlhYmxlLiBDaGFuZ2UgYWx0IHRhYmxlIGFjY29yZGluZ2x5LiBGb3Igbm9uLWZjb21pCgljb21wYXJlIGluc24gYWx3YXlzIHVzZSB0cmFpbGluZyBmbnN0c3cgaW5zbi4gRml4IGludG1vZGUKCWNhbGN1bGF0aW9uIGZvciBmaWNvbSBpbnNuLgoJKGl4ODZfc3BsaXRfZnBfYnJhbmNoKTogQWRkICJydHggcHVzaGVkIiBhcyBuZXcgcGFyYW1ldGVyLiBDYWxsCglpeDg2X2ZyZWVfZnJvbV9tZW1vcnkgd2hlbiAicHVzaGVkIiBpcyBzcGVjaWZpZWQuCgkoaXg4Nl9leHBhbmRfYnJhbmNoKTogQ2hhbmdlIGNhbGwgdG8gaXg4Nl9zcGxpdF9mcF9icmFuY2guCgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kICgqY21wZnBfMF9zZiwgKmNtcGZwXzBfZGYsICpjbXBmcF8wX3hmKToKCUNoYW5nZSBlZmxhZ3NfcCBwYXJhbWV0ZXIgaW4gY2FsbCB0byBvdXRwdXRfZnBfY29tcGFyZS4KCSgqY21wZnBfMl9zZiwgKmNtcGZwXzJfZGYsICpjbXBmcF8yX3hmKTogUmVtb3ZlLgoJKCpjbXBmcF8yX3NmXzEsICpjbXBmcF8yX2RmXzEsICpjbXBmcF8yX3hmXzEpOiBSZW5hbWUgdG8KCSpjbXBmcF8yX3NmLCAqY21wZnBfMl9kZiwgKmNtcGZwXzJfeGYuCUNoYW5nZSBlZmxhZ3NfcAoJcGFyYW1ldGVyIGluIGNhbGwgdG8gb3V0cHV0X2ZwX2NvbXBhcmUuCgkoKmNtcGZwXzJfdSk6IFJlbW92ZS4KCSgqY21wZnBfMl91XzEpOiBSZW5hbWUgdG8gKmNtcGZwXzJfdS4gQ2hhbmdlIGVmbGFnc19wIHBhcmFtZXRlcgoJaW4gY2FsbCB0byBvdXRwdXRfZnBfY29tcGFyZS4KCSgqZmljb21fMSk6IFJlbW92ZSBpbnNuIGRlZmluaXRpb24gYW5kIGNvcnJlc3BvbmRpbmcgZGVmaW5lX3NwbGl0LgoJKCpjbXBmcF9zaSk6IE5ldyBpbnNuIGRlZmluaXRpb24uCgkoKmZwX2pjY184KTogTmV3IGluc24gZGVmaW5pdGlvbi4gQWRkIG5ldyBzcGxpdHRlcnMgZm9yCgkibWVtb3J5X29wZXJhbmQiIGFuZCAicmVnaXN0ZXJfb3BlcmFuZCIuCgkoZGVmaW5lX3NwbGl0KTogQWRkIG5ldyBwYXJhbWV0ZXIgaW4gY2FsbCB0byBpeDg2X3NwbGl0X2ZwX2JyYW5jaC4KCgljb25maWcvaTM4Ni9wcmVkaWNhdGVzLm1kIChmbG9hdF9vcGVyYXRvcik6IE5ldyBwcmVkaWNhdGUuCgoyMDA0LTEyLTA4ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYy1jb21tb24uYyAodmVyaWZ5X3RyZWUpOiBEb24ndCBjaGVjayBjb2RlIGxlbmd0aCBpZiB3ZSBrbm93Cgl3ZSBhcmUgaGFuZGxpbmcgdGNjX3VuYXJ5LgoJKiBwcmludF90cmVlLmMgKHByaW50X25vZGUpOiBSZW1vdmUgY29kZSB0byBoYW5kbGUgUlRMCglhcHBlYXJpbmcgYXMgYSBwYXJ0IG9mIGEgdHJlZSBub2RlLgoJKiB0cmVlLWdpbXBsZS5jIChyZWNhbGN1bGF0ZV9zaWRlX2VmZmVjdHMpOiBSZW5hbWUgZnJvIGFzIGxlbi4KCSogdHJlZS5jIChidWlsZDFfc3RhdCk6IERvbid0IGNoZWNrIFRSRUVfQ09ERV9MRU5HVEguCgkoUFJPQ0VTU19BUkcpOiBEb24ndCByZWZlciB0byBmcm8uCgkoYnVpbGQyX3N0YXQsIGJ1aWxkM19zdGF0LCBidWlsZDRfc3RhdCk6IERvbid0IGNvbXB1dGUgZnJvLgoKMjAwNC0xMi0wNyAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgbWlkZGxlLWVuZC8xODI5MwoJKiBleHBtZWQuYyAoRVhBQ1RfUE9XRVJfT0ZfMl9PUl9aRVJPX1ApOiBNb3ZlIGRlZmluaXRpb24gZWFybGllci4KCShleHBhbmRfbXVsdCk6IFNwZWNpYWwgY2FzZSBwb3dlcnMgb2YgdHdvIHRvIGF2b2lkIHN5bnRoX211bHQuCgkqIGxvb3AuYyAocHJvZHVjdF9jaGVhcF9wKTogSGFuZGxlIGNhc2Ugd2hlcmUgZXhwYW5kX211bHQgZG9lcwoJcmVxdWlyZS9nZW5lcmF0ZSBhbnkgaW5zdHJ1Y3Rpb25zIChpLmUuIG11bHRpcGxpY2F0aW9uIGJ5IHplcm8pLgoKMjAwNC0xMi0wNyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyZWUtcHJldHR5LXByaW50LmMgKGR1bXBfYXJyYXlfZG9tYWluKTogU3BsaXQgb3V0IGZyb20KCWR1bXBfZ2VuZXJpY19ub2RlOyBmaXggb2ZmLWJ5LW9uZSBlcnJvciBvbiB6ZXJvLWJhc2VkIGFycmF5IGJvdW5kcy4KCShkdW1wX2dlbmVyaWNfbm9kZSk6IFVzZSBpdC4KCShwcmludF9kZWNsYXJhdGlvbik6IExpa2V3aXNlLgoKMjAwNC0xMi0wOCAgUmljaGFyZCBHdWVudGhlciA8cmljaGFyZC5ndWVudGhlckB1bmktdHVlYmluZ2VuLmRlPgoKCSogZG9jL2ludm9rZS50ZXhpOiBBZGp1c3QgZGVmYXVsdCB2YWx1ZXMgZm9yCglsYXJnZS1mdW5jdGlvbi1ncm93dGggYW5kIGlubGluZS11bml0LWdyb3d0aCB0byBtYXRjaAoJcGFyYW1zLmRlZi4gIENsYXJpZnkgdXNlZCBhbGdvcml0aG0uCgoyMDA0LTEyLTA3ICBEYXZpZCBNb3NiZXJnZXIgIDxkYXZpZG1AaHBsLmhwLmNvbT4KCglQUiB0YXJnZXQvMTg0NDMKCSogY29uZmlnL2lhNjQvaWE2NC5jIChpYTY0X2Fzc2VtYmxlX2ludGVnZXIpOiBBZGQgc3VwcG9ydCBmb3IKCWVtaXR0aW5nIHVuYWxpZ25lZCBwb2ludGVyLXNpemVkIGludGVnZXJzLgoKMjAwNC0xMi0wNyAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCVBSIGMvMTg4NjcKCSogYy10eXBlY2suYyAoY19zdGFydF9jYXNlKTogU2V0IG9yaWdfdHlwZSB0byBlcnJvcl9tYXJrX25vZGUKCXdoZW4gdGhlIHR5cGUgb2YgdGhlIGNvbnRyb2xsaW5nIGV4cHJlc3Npb24gaXMgbm90IGEgdmFsaWQgdHlwZS4KCjIwMDQtMTItMDcgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNzM0MAoJKiB0cmVlLXNzYS1wcmUuYyAoY29tcHV0ZV9hbnRpYyk6IEZpeCBjb21tZW50LgoJKGNvbXB1dGVfYXZhaWwpOiBEbyBub3QgcmVjdXJzZSwgaW5zdGVhZCBkbyBhIERGUyB1c2luZyBhIHN0YWNrCglhbmQgYSBsb29wLgoJKGV4ZWN1dGVfcHJlKTogQWRqdXN0LgoKMjAwNC0xMi0wNyAgWmllbW93aXQgTGFza2kgIDx6bGFza2lAYXBwbGUuY29tPgoKCSogYy10cmVlLmggKHN0cnVjdCBsYW5nX3R5cGUpOiBSZW5hbWUgJ29iamNfcHJvdG9jb2xzJyBmaWVsZAoJdG8gJ29iamNfaW5mbycuCgoyMDA0LTEyLTA3ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTYzMTcKCSogY29uZmlnL25ldGJzZC5oIChOT19JTVBMSUNJVF9FWFRFUk5fQyk6IERlZmluZS4KCjIwMDQtMTItMDcgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy1wcm90b3MuaCAobWlwc192YWxpZF9wb2ludGVyX21vZGUpOiBNb3ZlCglwcm90b3R5cGUuLi4KCSogY29uZmlnL21pcHMvbWlwcy5jOiAuLi4gaGVyZS4gTWFrZSBzdGF0aWMuCgoyMDA0LTEyLTA3ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTg0NDIKCSogY29uZmlnL21pcHMvbWlwcy5jIChtaXBzX3ZlY3Rvcl9tb2RlX3N1cHBvcnRlZF9wKTogTmV3IGZ1bmN0aW9uLgoJKFRBUkdFVF9TQ0FMQVJfTU9ERV9TVVBQT1JURURfUCk6IERlZmluZSB0byBhYm92ZS4KCjIwMDQtMTItMDcgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjLWNvbW1vbi5jLCBleHByLmMsIGZvbGQtY29uc3QuYywgcHJpbnQtdHJlZS5jLAoJdHJlZS1naW1wbGUuYywgdHJlZS1pbmxpbmUuYywgdHJlZS1wcmV0dHktcHJpbnQuYywKCXRyZWUtc3NhLWxvb3AtaW0uYywgdHJlZS1zc2EtbG9vcC1pdm9wdHMuYzogUmVwbGFjZSB1c2VzIG9mCglmaXJzdF9ydGxfb3Agd2l0aCBUUkVFX0NPREVfTEVOR1RILgoJKiB0cmVlLmMgKGZpcnN0X3J0bF9vcCk6IFJlbW92ZS4KCVJlcGxhY2UgdXNlcyBvZiBmaXJzdF9ydGxfb3Agd2l0aCBUUkVFX0NPREVfTEVOR1RILgoJKiB0cmVlLmg6IFJlbW92ZSB0aGUgcHJvdG90eXBlIGZvciBmaXJzdF9ydGxfb3AuCgoyMDA0LTEyLTA3ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBjb25maWcvcnM2MDAwL3QtYWl4NDMsIGNvbmZpZy9yczYwMDAvdC1haXg1MiAoU0hMSUJfTElOSyk6CglSZXZlcnQgMjAwNC0xMi0wMSBjaGFuZ2UuCgoyMDA0LTEyLTA2ICBaaWVtb3dpdCBMYXNraSAgPHpsYXNraUBhcHBsZS5jb20+CgoJKiBjLXRyZWUuaCAoc3RydWN0IGxhbmdfdHlwZSk6IEFkZCAnb2JqY19wcm90b2NvbHMnIGZpZWxkLgoKMjAwNC0xMi0wNiAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiByZWxvYWQuYyAoZmluZF92YWxpZF9jbGFzcyk6IEZpeCBsb2dpYyB0byB0ZXN0IGlubmVyIG1vZGUgYXMgd2VsbC4KCShwdXNoX3JlbG9hZCk6IFBhc3MgaW5uZXIgbW9kZS4KCjIwMDQtMTItMDYgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogZG9jL3RtLnRleGkgKFRBUkdFVF9WQUxJRF9QT0lOVEVSX01PREUpOiBEb2N1bWVudC4KCjIwMDQtMTItMDYgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvc3lzdjQuaDogRGVmaW5lIFJFTE9DQVRBQkxFX05FRURTX0ZJWFVQIHRvIDEuCgoyMDA0LTEyLTA2ICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoJICAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTg2MDEKCSogdHJlZS1jZmcuYyAodGhyZWFkX2p1bXBzLCB0aHJlYWRfanVtcHNfZnJvbV9iYik6IFJlbW92ZWQuCgkodHJlZV9mb3J3YXJkZXJfYmxvY2tfcCk6IERvIG5vdCBjb25zaWRlciBibG9ja3MgdGhhdCBhcmUgaXRzIG93bgoJc3VjY2Vzc29ycyBmb3J3YXJkZXJzLgoJKGNsZWFudXBfZm9yd2FyZGVyX2Jsb2NrcywgcmVtb3ZlX2ZvcndhcmRlcl9ibG9jayk6IE5ldyBmdW5jdGlvbnMuCgkoY2xlYW51cF90cmVlX2NmZyk6IFVzZSBjbGVhbnVwX2ZvcndhcmRlcl9ibG9ja3MgaW5zdGVhZCBvZgoJdGhyZWFkX2p1bXBzLgoJKiB0cmVlLWZsb3cuaCAoYmJfYW5uX2QpOiBSZW1vdmUgZm9yd2FyZGFibGUuCgoyMDA0LTEyLTA2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEpOiBSZW1vdmUgYW4gImlmIiB3aG9zZSBjb25kaXRpb24KCWlzIGFsd2F5cyBmYWxzZS4KCjIwMDQtMTItMDYgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogYy1naW1wbGlmeS5jIChnaW1wbGlmeV9jX2xvb3ApOiBJbXByb3ZlIGluaXRpYWwgaW1wbGVtZW50YXRpb25zCglmb3IgbG9vcHMgd2hvc2UgY29uZGl0aW9ucyBhcmUga25vd24gYXQgY29tcGlsZS10aW1lLgoJKiBnaW1wbGlmeS5jIChhcHBlbmRfdG9fc3RhdGVtZW50X2xpc3RfMSk6IFJlbW92ZSBzaWRlX2VmZmVjdHMKCXBhcmFtZXRlciwgdGhpcyBmdW5jdGlvbiBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGlmIGl0cyBmYWxzZS4KCShhcHBlbmRfdG9fc3RhdGVtZW50X2xpc3QpOiBPbmx5IGNhbGwgYXBwZW5kX3RvX3N0YXRlbWVudF9saXN0XzEKCWlmIHQgaXMgbm9uLU5VTEwgdHJlZSB3aXRoIHNpZGUtZWZmZWN0cy4KCShhcHBlbmRfdG9fc3RhdGVtZW50X2xpc3RfZm9yY2UpOiAgTGlrZXdpc2UsIGlmIHQgaXMgbm90IE5VTEwuCgoyMDA0LTEyLTA2ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3QuY29tPgoKCSogYnQtbG9hZC5jIChidHJfZGVmX3MpOiBOZXcgbWVtYmVyIG93bl9lbmQ7CgkoYWRkX2J0cl90b19saXZlX3JhbmdlKTogQWRkIHNlY29uZCBwYXJhbWV0ZXIuICBDaGFuZ2VkIGNhbGxlci4KCShjbGVhcl9idHJfZnJvbV9saXZlX3JhbmdlKTogQ2xlYXIgYnRyc19saXZlX2F0X2VuZCBiaXQKCWZvciB0aGUgcmVnaXN0ZXIgaXRzIGRlZmluaXRpb24gYmFzaWMgYmxvY2sgaWYgb3duX2VuZCBpcyBzZXQuCgkoYXVnbWVudF9saXZlX3JhbmdlKTogQWxzbyB0YWtlIGJ0cnNfbGl2ZV9hdF9lbmQgaW50byBhY2NvdW50LgoJKGNvbWJpbmVfYnRyX2RlZnMpOiBEb24ndCBib3RoZXIgd2l0aAoJb3RoZXJfZGVmLT5vdGhlcl9idHJfdXNlc19hZnRlcl91c2UgaWYgaXQgcGVydGFpbnMgdG8gYSBkaWZmZXJlbnQKCXJlZ2lzdGVyLgoJKG1vdmVfYnRyX2RlZik6IFNldCBkZWYtPm90aGVyX2J0cl91c2VzX2JlZm9yZV9kZWYgYWZ0ZXIKCWNhbGxpbmcgY29tYmluZV9idHJfZGVmcy4iCgoJKiBidC1sb2FkLmMgKGF1Z21lbnRfbGl2ZV9yYW5nZSk6IE5ldyBhcmd1bWVudCBmdWxsX3JhbmdlLgoJQ2hhbmdlZCBhbGwgY2FsbGVycy4KCgkqIGJ0LWxvYWQuYyAobW92ZV90cl9kZWYpOiBTZXQgb3RoZXJfdHJfdXNlc19iZWZvcmVfZGVmCgl0YWtpbmcgbmV3IGJ0ciBhc3NpZ25tZW50IGludG8gYWNjb3VudC4KCjIwMDQtMTItMDUgIERhbmllbCBCZXJsaW4gPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiB0cmVlLXNzYS1hbGlhcy5jIChjcmVhdGVfZ2xvYmFsX3Zhcik6IFVzZSB2b2lkX3R5cGVfbm9kZSwKCW5vdCBzaXplX3R5cGVfbm9kZS4KCjIwMDQtMTItMDUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBleHByLmMgKGV4cGFuZF9leHByX3JlYWxfMSk6IEFib3J0IG9uIENPTkRfRVhQUiBvZgoJVk9JRF9UWVBFLgoKMjAwNC0xMi0wNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTg4NDEKCSogY29uZmlnL2FscGhhL2FscGhhLm1kIChVTlNQRUNWX1NFVEpNUFJfRVIpOiBOZXcuCgkoYnVpbHRpbl9zZXRqbXBfcmVjZWl2ZXJfZXJfc2xfMSk6IFVzZSBpdC4KCShidWlsdGluX3NldGptcF9yZWNlaXZlcl9lcl8xKTogTGlrZXdpc2UuCgkoYnVpbHRpbl9zZXRqbXBfcmVjZWl2ZXJfZXIsIGV4Y2VwdGlvbl9yZWNlaXZlcl9lcik6IFJlbW92ZS4KCShidWlsdGluX3NldGptcF9yZWNlaXZlcik6IERvbid0IHNwbGl0IGZvciBleHBsaWNpdCByZWxvY3MgdW50aWwKCWFmdGVyIHJlbG9hZC4KCShleGNlcHRpb25fcmVjZWl2ZXIpOiBMaWtld2lzZS4KCjIwMDQtMTItMDUgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogbWtsaWJnY2MuaW4gKHZpc19oaWRlKTogQWRkIHRoZSBwcm90b3R5cGUgZm9yIHRoZSB0ZXN0LgoKMjAwNC0xMi0wNSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBjLXR5cGVjay5jIChjX2ZpbmlzaF9sb29wKTogSW1wcm92ZSBpbml0aWFsIGltcGxlbWVudGF0aW9ucwoJZm9yIGxvb3BzIHdob3NlIGNvbmRpdGlvbnMgYXJlIGtub3duIGF0IGNvbXBpbGUtdGltZS4KCjIwMDQtMTItMDUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBidWlsdGlucy5jOiBGaXggY29tbWVudCB0eXBvcy4KCjIwMDQtMTItMDQgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJUFIgbWlkZGxlLWVuZC8xODczMAoJKiBlbWl0LXJ0bC5jIChnZXRfZmlyc3Rfbm9ubm90ZV9pbnNuLCBnZXRfbGFzdF9ub25ub3RlX2luc24pOiBXaGVuCgl0aGUgZmlyc3QvbGFzdCBpbnNuIGlzIGEgc2VxdWVuY2UsIHJldHVybiB0aGUgZmlyc3QvbGFzdCBpbnNuIG9mIHRoZQoJc2VxdWVuY2UuCgoJUFIgYm9vdHN0cmFwLzE4ODA0CgkqIG1rbGliZ2NjLmluICh2aXNfaGlkZSk6IFVzZSBpbXBsZW1lbnRhdGlvbiBpbnN0ZWFkIG9mIGRlY2xhcmF0aW9uCglmb3IgdGVzdCBmdW5jdGlvbi4KCjIwMDQtMTItMDQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoYWxwaGFfZXhwYW5kX3VuYWxpZ25lZF9sb2FkKTogRG9uJ3QgZm9yZ2V0IHRvCgl1c2Ugb2ZzIGluIEJXWCB0d28gYnl0ZSBzcGVjaWFsIGNhc2UuCgkoYWxwaGFfZXhwYW5kX3VuYWxpZ25lZF9zdG9yZSk6IExpa2V3aXNlLgoKMjAwNC0xMi0wNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGdjc2UuYyAoZ2NzZV9tYWluKTogQWRkIGEgY29tbWVudC4KCjIwMDQtMTItMDQgIEFuZHJldyAgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiBtaWRkbGUtZW5kLzE3OTA5CgkqIGJ1aWx0aW5zLmMgKGZvbGRfYnVpbHRpbl9uZXh0X2FyZyk6IEV4cG9ydCBhbmQgcmV0dXJuIHRydWUKCXdoZW4gdGhlcmUgaXMgYSB3YXJuaW5nIG9yIGFuIGVycm9yLgoJKGV4cGFuZF9idWlsdGluX3ZhX3N0YXJ0KTogV2hlbiBmb2xkX2J1aWx0aW5fbmV4dF9hcmcgcmV0dXJucyB0cnVlLAoJcmV0dXJuIGNvbnN0MF9ydHguCgkoZXhwYW5kX2J1aWx0aW4pOiBMaWtld2lzZS4KCSogZ2ltcGxpZnkuYyAoZ2ltcGxpZnlfY2FsbF9leHByKTogRXJyb3Igb3V0IGlmIHRoZXJlIGlzIG5vdAoJZW5vdWdoIGFyZ3VtZW50cyB0byB2YV9zdGFydC4gQ2FsbCBmb2xkX2J1aWx0aW5fbmV4dF9hcmcgYWxzbwoJb24gdGhlIHNlY29uZCBhcmd1bWVudC4KCSogdHJlZS5oIChmb2xkX2J1aWx0aW5fbmV4dF9hcmcpOiBQcm90b3R5cGUuCgoyMDA0LTEyLTA0ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbWtsaWJnY2MuaW46IEJ1aWxkIHNoYXJlZCBsaWJnY2MgYW5kIHNoYXJlZCBsaWJ1bndpbmQgaW4gZ2NjLy4KCURvbid0IHN1YnN0IHNobGliX2RpciBmb3IgU0hMSUJfTElOSywgU0hMSUJVTldJTkRfTElOSywKCVNITElCX0lOU1RBTEwsIGFuZCBTSExJQlVOV0lORF9JTlNUQUxMLgoJKiBjb25maWcvaTM4Ni90LW53bGQgKFNITElCX05BTUUpOiBVc2Ugc2hsaWJfYmFzZV9uYW1lIGluIHBsYWNlIG9mCglzaGxpYl9kaXIgYW5kIHNobGliX3NvX25hbWUuCgkqIGNvbmZpZy9taXBzL3Qtc2xpYmdjYy1pcml4IChTSExJQl9OQU1FKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90LWxpYnVud2luZC1lbGYgKFNITElCX05BTUUpOiBMaWtld2lzZS4KCSogY29uZmlnL3Qtc2xpYmdjYy1kYXJ3aW4gKFNITElCX05BTUUpOiBMaWtld2lzZS4KCSogY29uZmlnL3Qtc2xpYmdjYy1lbGYtdmVyIChTSExJQl9OQU1FKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90LXNsaWJnY2Mtc2xkIChTSExJQl9OQU1FKTogTGlrZXdpc2UuCgkoU0hMSUJfTElOSyk6IERvbid0IHVzZSBzaGxpYl9kaXIgd2hlbiBjcmVhdGluZyBzeW1saW5rLgoKMjAwNC0xMi0wMyAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBkb2MvdG0udGV4aSAoVEFSR0VUX0RFTEVHSVRJTUlaRV9BRERSRVNTKTogRG9jdW1lbnQgdGFyZ2V0IGhvb2suCgoyMDA0LTEyLTAzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogYWxpYXMuYyAoY29tcG9uZW50X3VzZXNfcGFyZW50X2FsaWFzX3NldCk6IFJlbmFtZSBmcm9tCgljYW5fYWRkcmVzc19wLiAgUmV0dXJuIGJvb2wuICBSZXZlcnNlIHRoZSBzZW5zZSBvZiB0aGUgcmVzdWx0LgoJUmVpbnN0YXRlIHRoZSBjaGVjayBmb3IgYWxpYXMgc2V0IHplcm8uCgkoZ2V0X2FsaWFzX3NldCk6IFVwZGF0ZSB0byBtYXRjaC4KCSogYWxpYXMuaCAoY29tcG9uZW50X3VzZXNfcGFyZW50X2FsaWFzX3NldCk6IExpa2V3aXNlLgoJKiBlbWl0LXJ0bC5jIChzZXRfbWVtX2F0dHJpYnV0ZXNfbWludXNfYml0cG9zKTogTGlrZXdpc2UuCgkqIGV4cHIuYyAoZXhwYW5kX2Fzc2lnbm1lbnQpOiBMaWtld2lzZS4KCSogZXhwci5oOiBSZW1vdmUgY29tbWVudGVkIG91dCBwcm90b3R5cGVzIHRoYXQgd2VyZSBtb3ZlZCB0byBhbGlhcy5oLgoKMjAwNC0xMi0wMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGRvYy90bS50ZXhpIChUQVJHRVRfQlVJTERfQlVJTFRJTl9WQV9MSVNUKTogTmV3LgoJKFRBUkdFVF9DQU5OT1RfRk9SQ0VfQ09OU1RfTUVNKTogTmV3LgoKMjAwNC0xMi0wNCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiBtaWRkbGUgZW5kLzE4NzE4CgkqIHNjaGVkLXJnbi5jIChzY2hlZHVsZV9yZWdpb24pOiBEb24ndCBhc3N1bWUgUkVHX1NBVkVfTk9URXMgYXJlCglpbiBwYWlycy4KCSogc2NoZWQtZWJiLmMgKHNjaGVkdWxlX2ViYik6IExpa2V3aXNlLgoKMjAwNC0xMi0wMyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIE1ha2VmaWxlLmluIChIT1NUSE9PS1NfREVGX0gpOiBEZWZpbmUuCgkoZ2djLWNvbW1vbi5vKTogRGVwZW5kIG9uICQoSE9TVEhPT0tTX0RFRl9IKS4KCShob3N0LWRlZmF1bHQubyk6IExpa2V3aXNlLgoKMjAwNC0xMi0wMyAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvc3Rvcm15MTYvc3Rvcm15MTYubWQgKHB1c2hxaSwgcG9wcWksIHB1c2hoaSwKCXBvcGhpKTogQWRkIG51bWJlciBvZiBhcmd1bWVudHMgdG8gbmFtZSBzbyB0aGF0IHRoZQoJcGF0dGVybiBpcyByZWNvZ25pemVkIGFzIGEgbmFtZWQgcGF0dGVybi4KCjIwMDQtMTItMDMgIEphbmlzIEpvaG5zb24gIDxqYW5pczE4N0B1cy5pYm0uY29tPgoKCSogZG9jL2V4dGVuZC50ZXhpIChBbHRpVmVjIEJ1aWx0aW5zKTogRml4IGluZm8gYWJvdXQgc2lnbmVkbmVzcy4KCjIwMDQtMTItMDMgIEFuZHJlYXMgVG9ibGVyICA8YS50b2JsZXJAc2Nod2Vpei5jaD4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9vdmVycmlkZV9vcHRpb25zKTogUHJvdGVjdAoJZGFyd2luX29uZV9ieXRlX2Jvb2wgd2l0aCAjaWYuCgoyMDA0LTEyLTAzICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogZG9jL3RtLnRleGkgKE1pc2MpOiBEb2N1bWVudCBUQVJHRVRfRk9MRF9CVUlMVElOLgoKMjAwNC0xMi0wMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogbWtsaWJnY2MuaW46IFB1dCBiYWNrIHRoZSBkZWZhdWx0IHNldCBvZiBFWFRSQV9NVUxUSUxJQl9QQVJULgoKMjAwNC0xMi0wMyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmFjOiBNb3ZlIFRMX0FDX0dDQ19WRVJTSU9OIGludG8gaW5pdGlhbGl6YXRpb24gc2VjdGlvbi4KCVNldCBsaWJzdGRjeHhfaW5jZGlyIGRpcmVjdGx5LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA0LTEyLTAzICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1zc2EtZG9tLmMgKHJlY29yZF9lcXVpdmFsZW5jZXNfZnJvbV9waGlzKTogUmVtb3ZlIGFuCgkiaWYiIHdob3NlIGNvbmRpdGlvbiBpcyBhbHdheXMgdHJ1ZS4KCgkqIGNmZ3J0bC5jIChydGxfdmVyaWZ5X2Zsb3dfaW5mb18xKTogVXNlIEpVTVBfUCBpbnN0ZWFkIG9mCglJTlNOX1AuCgoyMDA0LTEyLTAyICBTdGFuIFNoZWJzICA8c2hlYnNAYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX292ZXJyaWRlX29wdGlvbnMpOiBNYWtlIDY0LWJpdAoJRGFyd2luIGRlZmF1bHQgdG8gb25lLWJ5dGUgYm9vbHMuCgoyMDA0LTEyLTAyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIDE4Nzc0CgkqIHNpbXBsaWZ5LXJ0eC5jIChzaW1wbGlmeV9pbW1lZF9zdWJyZWcpOiBGYWlsIGNvbXBsZXggbW9kZXMuCgoyMDA0LTEyLTAzICBCZW4gRWxsaXN0b24gIDxiamVAYXUuaWJtLmNvbT4KCgkqIGRvYy9jZmcudGV4aSAoRWRnZXMpOiBVcGRhdGUuIERvY3VtZW50IHRoZSBlZGdlX2l0ZXJhdG9yIGRhdGEKCXR5cGUgYW5kIGl0cyBtZXRob2RzLgoKMjAwNC0xMi0wMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGV4cHIuYyAod3JpdGVfY29tcGxleF9wYXJ0KTogVXNlIHNpbXBsaWZ5X2dlbl9zdWJyZWcgd2hlbiB0aGUKCXN1Ym1vZGUgaXMgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgYSB3b3JkLgoJKHJlYWRfY29tcGxleF9wYXJ0KTogTGlrZXdpc2UuCgoyMDA0LTEyLTAyICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgYm9vdHN0cmFwLzE4NTMyCgkqIG1rbGliZ2NjLmluOiBCdWlsZCBvbmUgc2V0IG9mIEVYVFJBX01VTFRJTElCX1BBUlRTIGZvcgoJbXVsdGlsaWIgYXQgYSB0aW1lLiBEb24ndCBidWlsZCB0aGUgZGVmYXVsdCBzZXQuIERvbid0IGFkZAoJRVhUUkFfTVVMVElMSUJfUEFSVFMgdG8gc2hhcmVkIGxpYnVud2luZCBub3IgbGliZ2NjLiBSZW1vdmUKCWZpbHRlciBmb3Igc2hhcmVkIGxpYnVud2luZCBhbmQgbGliZ2NjLgoKMjAwNC0xMi0wMiAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgdGFyZ2V0LzE4NzU5CgkqIGNvbmZpZy9pMzg2L2kzODYuYyAob3ZlcnJpZGVfb3B0aW9ucyk6IElmIC1mb21pdC1mcmFtZS1wb2ludGVyIGhhcwoJYWxyZWFkeSBiZWVuIHNwZWNpZmllZCwgaWdub3JlIHRoZSAtbW9taXQtbGVhZi1mcmFtZS1wb2ludGVyIG9wdGlvbi4KCjIwMDQtMTItMDIgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIHZhcmFzbS5jIChtYWtlX2RlY2xfcnRsKTogQWRkIHRoZSBtaXNzaW5nIGA7Jy4KCjIwMDQtMTItMDIgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogdHJlZS5jIChpc19hdHRyaWJ1dGVfcCk6IFNwbGl0IG91dCB0byAuLgoJKGlzX2F0dHJpYnV0ZV93aXRoX2xlbmd0aF9wKTogSGVyZS4gIFVzZSBJREVOVElGSUVSX0xFTkdUSCBpbnN0ZWFkCglvZiBzdHJsZW4gYW5kIGNvbXBhcmUgdGhlIHN0cmluZyBsZW5ndGhzIGJlZm9yZSBjYWxsaW5nIHN0cmNtcC4KCShsb29rdXBfYXR0cmlidXRlKTogQ2FsbCBpc19hdHRyaWJ1dGVfd2l0aF9sZW5ndGhfcCBpbnN0ZWFkIG9mCglpc19hdHRyaWJ1dGVfcC4KCjIwMDQtMTItMDIgIERldmFuZyBQYXRlbCAgPGRwYXRlbEBhcHBsZS5jb20+CgoJKiBjb25maWcvZGFyd2luLmggKFRBUkdFVF9PUFRJT05fVFJBTlNMQVRFX1RBQkxFKTogQWRkIC1nZnVsbCBhbmQgLWd1c2VkLgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5oIChDQzFfU1BFQyk6IERvIG5vdCBoYW5kbGUgLWdmdWxsIGFuZCAtZ3VzZWQuCgkqIGNvbmZpZy9pMzg2L2Rhcndpbi5oIChDQzFfU1BFQyk6IFNhbWUuCgoyMDA0LTEyLTAyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogb3B0YWJzLmMgKGxvd3BhcnRfc3VicmVnX21heWJlX2NvcHkpOiBOZXcuCgkoZXhwYW5kX3Vub3AsIGV4cGFuZF9hYnNfbm9qdW1wKTogVXNlIGl0LgoKMjAwNC0xMi0wMiAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN0LmNvbT4KCgkqIHNoLm1kIChleHR2LCBleHR6dik6IEFkZCBwYXR0ZXJuIHByZWRpY2F0ZS4KCjIwMDQtMTItMDIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jIChwaGlfYWx0ZXJuYXRpdmVzX2VxdWFsKTogQ2hlY2sgdGhhdCBQSElfQVJHX0RFRgoJaXMgbm90IG51bGwuCgoJKiB0cmVlLWNmZy5jIChwaGlfYWx0ZXJuYXRpdmVzX2VxdWFsKTogQ2hlY2sgdGhhdCBQSElfQVJHX0RFRgoJaXMgbm90IG51bGwuCgoJKiB0cmVlLWNmZy5jICh0aHJlYWRfanVtcHMpOiBSZWR1Y2UgdGhlIHNpemUgb2YgV09SS0xJU1QuCgoyMDA0LTEyLTAyICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogdHJlZS1laC5jOiBSZXZlcnQgeWVzdGVyZGF5J3MgY2hhbmdlLgoKMjAwNC0xMi0wMiAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiB2YXJhc20uYyAoZGVjb2RlX3JlZ19uYW1lKTogUmV2ZXJ0IGNoYW5nZSB0byBjaGVjayBmb3IgemVybwoJbGVuZ3RoIHN0cmluZ3MuCgkobWFrZV9kZWNsX3J0bCk6IE1ha2Ugc3VyZSB0aGF0IHdlIGNhbGwgZGVjb2RlX3JlZ19uYW1lIG9ubHkKCXdoZW4gbmVlZGVkLgoKMjAwNC0xMi0wMiAgRG9yaXQgTmFpc2hsb3MgIDxkb3JpdEBpbC5pYm0uY29tPgoKCVBSIHRyZWUtb3B0LzE4NzE2CgkqIHRyZWUtdmVjdG9yaXplci5jIChzbHBlZWxfbWFrZV9sb29wX2l0ZXJhdGVfbnRpbWVzKTogUHJvcGVybHkgc2V0Cgl0aGVuIGFuZCBlbHNlIGxhYmVscy4KCjIwMDQtMTItMDIgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBNYWtlZmlsZS5pbiAoV0VSUk9SX0ZMQUdTKTogUmVuYW1lZCBmcm9tIFdFUlJPUi4KCShTVFJJQ1QyX1dBUk4pOiBVc2UgJChXRVJST1JfRkxBR1MpIGluc3RlYWQgb2YgJChXRVJST1IpLgoJKFNUQUdFMl9GTEFHU19UT19QQVNTKTogTGlrZXdpc2UuCgoJKiBjb25maWcvaTM4Ni94LW1pbmd3MzI6IFNldCBXRVJST1JfRkxBR1MgaW5zdGVhZCBvZiBXRVJST1IuCgoyMDA0LTEyLTAyICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWd1cmUuYWM6IFVzZSBUTF9BQ19HQ0NfVkVSU0lPTiB0byBzZXQgZ2NjX3ZlcnNpb24uICBSZW1vdmUKCW5vdy1yZWR1bmRhbnQgQUNfU1VCU1RzLgoJKiBhY2xvY2FsLm00OiBJbmNsdWRlIC4uL2NvbmZpZy9nY2MtdmVyc2lvbi5tNC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNC0xMi0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9hc3NlbWJsZV9pbnRlZ2VyKTogUHV0IGJhY2sgdGhlCgkjaWZkZWYgUkVMT0NBVEFCTEVfTkVFRFNfRklYVVAuCgoyMDA0LTEyLTAxICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiB0YXJnZXQvOTkwOAoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kICgqY2FsbF92YWx1ZV8xLCAqc2liY2FsbF92YWx1ZV8xKTogQ29ycmVjdAoJSW50ZWwgYXNzZW1ibGVyIHN5bnRheCBieSB1c2luZyAlQTEgaW5zdGVhZCBvZiAlKiUxLgoKMjAwNC0xMi0wMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGV4cHIuYyAoZXhwYW5kX2Fzc2lnbm1lbnQpOiBIYW5kbGUgQ09OQ0FUIGJvdGggYXMgYSBmaW5hbAoJZGVzdGluYXRpb24gYW5kIGFzIGEgbWlkZGxlIHBvaW50LgoKMjAwNC0xMi0wMSAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIHRyZWUtZWguYyAoc2F2ZV9lcHRyLCBzYXZlX2ZpbHQpOiBOb3cgZmlsZSBzY29wZWQgc3RhdGljcy4KCShob25vcl9wcm90ZWN0X2NsZWFudXBfYWN0aW9ucyk6IE9ubHkgY3JlYXRlIHNhdmVfZXB0ciBhbmQKCXNhdmVfZmlsdCBpZiB0aGV5IGRvIG5vdCBhbHJlYWR5IGV4aXN0LgoJKGxvd2VyX2VoX2NvbnN0cnVjdHMpOiBXaXBlIGFsbCBrbm93bGVkZ2Ugb2Ygc2F2ZV9lcHRyIGFuZAoJc2F2ZV9maWx0IGJlZm9yZSByZXR1cm5pbmcuCgoyMDA0LTEyLTAyICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1waGlub2Rlcy5jIChyZW1vdmVfcGhpX2FyZ19udW0pOiBGaXggYSBjb21tZW50LgoKMjAwNC0xMi0wMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiB0YXJnZXQvMTY5NTIKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2Fzc2VtYmxlX2ludGVnZXIpOiBSZXBsYWNlCgkjaWZkZWYgUkVMT0NBVEFCTEVfTkVFRFNfRklYVVAgd2l0aCBpZi4KCSogY29uZmlnL3JzNjAwMC9saW51eC5oIChSRUxPQ0FUQUJMRV9ORUVEU19GSVhVUCk6IERlZmluZSBpbiB0ZXJtcwoJb2YgdGFyZ2V0X2ZsYWdzX2V4cGxpY2l0LgoJKiBjb25maWcvcnM2MDAwL2xpbnV4NjQuaCAoUkVMT0NBVEFCTEVfTkVFRFNfRklYVVApOiBEaXR0byBmb3IgYmlhcmNoCgljYXNlLiAgRGVmaW5lIGFzIDAgZm9yIG5vbi1iaWFyY2guCgoyMDA0LTEyLTAxICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL3JzNjAwMC90LWFpeDQzLCBjb25maWcvcnM2MDAwL3QtYWl4NTIgKFNITElCX0xJTkspOgoJQ2hhbmdlIHRlbXBvcmFyeSBmaWxlIHRhZyBmcm9tIGEgcHJlZml4IHRvIGFuIGluZml4LgoKMjAwNC0xMi0wMiAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAc3VzZS5kZT4KCgkqIGdjYy5jIChzdHJ1Y3Qgb3B0aW9uX21hcCk6IEFkZCBlbnRyeSBmb3IgIi0tcGFzcy1leGl0LWNvZGVzIi4KCjIwMDQtMTItMDEgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHRyZWUtb3B0LzE4NzYzCglQUiB0cmVlLW9wdC8xODc0NgoJKiB0cmVlLXNzYS1hbGlhcy5jIChpbml0X2FsaWFzX2luZm8pOiBHZXQgc3RhdGVtZW50IG9wZXJhbmRzIGZvciBhbGwKCXRoZSBzdGF0ZW1lbnRzIGlmIGFsaWFzZXNfY29tcHV0ZWRfcCBpcyB0cnVlLgoKMjAwNC0xMi0wMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2VmaWxlLmluIChXRVJST1IpOiBOZXcgdmFyaWFibGUuCgkoU1RSSUNUMl9XQVJOKTogVXNlIGl0LgoJKFNUQUdFMl9GTEFHU19UT19QQVNTKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L3gtbWluZ3czMiAoV0VSUk9SKTogQWRkIC1Xbm8tZm9ybWF0LgoKMjAwNC0xMi0wMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGV4cHIuYyAoZ2V0X2lubmVyX3JlZmVyZW5jZSk6IEZpeCB0aGlua28gaW4gUkVBTC9JTUFHUEFSVF9FWFBSCglvZmZzZXR0aW5nLgoKMjAwNC0xMi0wMSAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTgyOTEKCSogdHJlZS1zc2EtY29weS5jIChtZXJnZV9hbGlhc19pbmZvKTogRml4IG1lcmdpbmcgb2YKCWZsb3ctc2Vuc2l0aXZlIGFsaWFzIGluZm9ybWF0aW9uLiAgSWYgdGhlIG5ldyBwb2ludGVyIGhhcyBubwoJbmFtZSB0YWcsIGNvcHkgaXQgZnJvbSB0aGUgb3JpZ2luYWwgcG9pbnRlci4gIE90aGVyd2lzZSwgbWFrZQoJc3VyZSB0aGF0IHRoZSBwb2ludGVkLXRvIHNldHMgaGF2ZSBhIGNvbW1vbiBpbnRlcnNlY3Rpb24uCgoyMDA0LTEyLTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHJ0bC1vcHQvMTUyODkKCSogZW1pdC1ydGwuYyAoZ2VuX2NvbXBsZXhfY29uc3RhbnRfcGFydCk6IFJlbW92ZS4KCShnZW5fcmVhbHBhcnQsIGdlbl9pbWFncGFydCk6IFJlbW92ZS4KCSogcnRsLmggKGdlbl9yZWFscGFydCwgZ2VuX2ltYWdwYXJ0KTogUmVtb3ZlLgoJKiBleHBtZWQuYyAoZXh0cmFjdF9iaXRfZmllbGQpOiBSZW1vdmUgQ09OQ0FUIGhhY2sgY2F0ZXJpbmcgdG8KCWdlbl9yZWFscGFydC9nZW5faW1hZ3BhcnQuCgkqIGV4cHIuYyAod3JpdGVfY29tcGxleF9wYXJ0LCByZWFkX2NvbXBsZXhfcGFydCk6IE5ldy4KCShlbWl0X21vdmVfdmlhX2FsdF9tb2RlLCBlbWl0X21vdmVfdmlhX2ludGVnZXIsIGVtaXRfbW92ZV9yZXNvbHZlX3B1c2gsCgllbWl0X21vdmVfY29tcGxleF9wdXNoLCBlbWl0X21vdmVfY29tcGxleCwgZW1pdF9tb3ZlX2NjbW9kZSwKCWVtaXRfbW92ZV9tdWx0aV93b3JkKTogU3BsaXQgb3V0IGZyb20gLi4uCgkoZW1pdF9tb3ZlX2luc25fMSk6IC4uLiBoZXJlLgoJKGV4cGFuZF9leHByX3JlYWxfMSkgPENPTVBMRVhfRVhQUj46IFVzZSB3cml0ZV9jb21wbGV4X3BhcnQuCgk8UkVBTFBBUlRfRVhQUiwgSU1BR1BBUlRfRVhQUj46IFVzZSByZWFkX2NvbXBsZXhfcGFydC4KCSogZnVuY3Rpb24uYyAoYXNzaWduX3Bhcm1fc2V0dXBfcmVnKTogSGFyZC1jb2RlIHRyYW5zZm9ybWF0aW9ucwoJaW5zdGVhZCBvZiB1c2luZyBnZW5fcmVhbHBhcnQvZ2VuX2ltYWdwYXJ0LgoKCSogZXhwci5jIChvcHRpbWl6ZV9iaXRmaWVsZF9hc3NpZ25tZW50X29wKTogU3BsaXQgb3V0IGZyb20gLi4uCgkoZXhwYW5kX2Fzc2lnbm1lbnQpOiAuLi4gaGVyZS4gIFVzZSBoYW5kbGVkX2NvbXBvbmVudF9wIHRvIGdhdGUKCWdldF9pbm5lcl9yZWZlcmVuY2UgY29kZS4gIFNpbXBsaWZ5IE1FTSBoYW5kbGluZy4gIFNwZWNpYWwgY2FzZQoJQ09OQ0FUIGRlc3RpbmF0aW9ucy4KCgkqIGV4cG1lZC5jIChzdG9yZV9iaXRfZmllbGQpOiBVc2Ugc2ltcGxpZnlfZ2VuX3N1YnJlZyBpbnN0ZWFkCglvZiBnZW5fcnR4X1NVQlJFRyBkaXJlY3RseS4KCjIwMDQtMTItMDEgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCSAgICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIHRhcmdldC8xNzEwNwoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAoc2dlKTogRW5hYmxlIGZvciBub24tVEFSR0VUX1BPV0VSLgoJKHNndCk6IFNhbWUuCgkoc2xlKTogU2FtZS4KCShzbHQpOiBTYW1lLgoKMjAwNC0xMi0wMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBtaWRkbGUtZW5kLzE4NjY3CgkqIHBhcmFtcy5jIChzZXRfcGFyYW1fdmFsdWUpOiBBZGQgcmFuZ2UgY2hlY2suCgkqIHBhcmFtcy5kZWY6IEFkZCBtaW4gYW5kIG1heCB2YWx1ZXMuIFJlZm9ybWF0IGxvbmcgc3RyaW5ncy4KCSogcGFyYW1zLmggKHN0cnVjdCBwYXJhbV9pbmZvKTogQWRkIG1pbiBhbmQgbWF4IGZpZWxkcy4KCShlbnVtIGNvbXBpbGVyX3BhcmFtKTogQWRqdXN0IERFRlBBUkFNLgoJKiB0b3BsZXYuYyAobGFuZ19pbmRlcGVuZGVudF9wYXJhbXMpOiBMaWtld2lzZS4KCjIwMDQtMTItMDEgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgdGFyZ2V0LzEyODE3CgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9lbWl0X3Byb2xvZ3VlKTogVXNlIHIwIGZvciB2cnNhdmUuCgoyMDA0LTEyLTAxICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRvYy9zdGFuZGFyZHMudGV4aTogVXBkYXRlIGZvciBDOTkgVEMyLgoKMjAwNC0xMS0zMCAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIHNiaXRtYXAuYyAoc2JpdG1hcF9hbnlfY29tbW9uX2JpdHMpOiBOZXcgZnVuY3Rpb24uCgkqIHNiaXRtYXAuaCAoc2JpdG1hcF9hbnlfY29tbW9uX2JpdHMpOiBQcm90b3R5cGUuCgkqIG1vZHVsby1zY2hlZC5jIChzbXNfc2NoZWR1bGVfYnlfb3JkZXIpOiBVc2Ugc2JpdG1hcF9hbnlfY29tbW9uX2JpdHMKCU5vIGxvbmdlciBhbGxvY2F0ZS9mcmVlICJwc3AiLCAicHNzIiBzYml0bWFwcy4KCSogdHJlZS1zc2EtYWxpYXMuYyAoY29tcHV0ZV9mbG93X2luc2Vuc2l0aXZlX2FsaWFzaW5nKTogU2ltaWxhcmx5IGZvcgoJdGhlICJyZXMiIHNiaXRtYXAuCgkoZ3JvdXBfYWxpYXNlcyk6IFNpbWlsYXJseS4KCjIwMDQtMTEtMzAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAodmVjdF9hbmFseXplX2RhdGFfcmVmcyk6IFJlZm9ybWF0IGFuZCBhdm9pZAoJdW5pbml0aWFsaXplZCB2YXJpYWJsZS4KCjIwMDQtMTEtMzAgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogZm9sZC1jb25zdC5jIChmb2xkX3dpZGVuZWRfY29tcGFyaXNvbik6IE1ha2Ugc3VyZSB0aGF0IHdlJ3JlCglwYXNzaW5nIGFuIElOVEVHRVJfVFlQRSB0byBpbnRfZml0c190eXBlX3AuCgkoZm9sZCk6IENsZWFuIHVwIGNvbW1lbnQuCgoyMDA0LTExLTMwICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogbWtsaWJnY2MuaW46IENvcnJlY3QgY2FsY3VsYXRpb24gb2YgbGliZ2NjX3Nfc29uYW1lIGFuZAoJbGlidW53aW5kX3NvbmFtZS4gIFVzZSAkb3V0LCBub3QgJG91dFMsIGluIGNvbW1hbmRzIGZvcgoJbm8tc2hhcmVkLWxpYnJhcnkgY2FzZS4gIE1vdmUgRVhUUkFfTVVMVElMSUJfUEFSVFMgcnVsZXMgYWJvdmUKCWxpYnJhcnkgYnVpbGQgcnVsZXMsIG1ha2UgJGxpYnVud2luZF9zbyBhbmQgJGxpYmdjY19zX3NvCglkZXBlbmQgb24gdGhlbSBpbiB0aGUgbm9ybWFsIGZhc2hpb24sIGFuZCBmaWx0ZXIgdGhvc2Ugb2JqZWN0cwoJb3V0IG9mIEBzaGxpYl9vYmpzQC4KCjIwMDQtMTEtMzAgIEphbmlzIEpvaG5zb24gIDxqYW5pczE4N0B1cy5pYm0uY29tPgoKCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLmggKHZlY19zdGVwX2hlbHApOiBTdXBwb3J0IGNvbnN0IHZlY3RvciB0eXBlcy4KCjIwMDQtMTEtMzAgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHRyZWUtb3B0LzE4Mjk4CgkqIHRyZWUtb3B0aW1pemUuYyAoaW5pdF90cmVlX29wdGltaXphdGlvbl9wYXNzZXMpOiBBZGQgYSBtYXlfYWxpYXMKCXBhc3MgcmlnaHQgYWZ0ZXIgZm9sZCBidWlsdGlucy4KCjIwMDQtMTEtMzAgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWwxQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLW1vZGVzLmRlZjogQWRkZWQgY2MgbW9kZXMgZG9jdW1lbnRhdGlvbi4KCSogY29uZmlnL3MzOTAvczM5MC5jOiAoczM5MF90bV9jY21vZGUsIHMzOTBfc2VsZWN0X2NjbW9kZSwKCXMzOTBfZXhwYW5kX2FkZGNjKTogQWRkZWQgY2MgbW9kZSBjb21tZW50cy4KCSogY29uZmlnL3MzOTAvczM5MC5tZDogUmVtb3ZlZCBvbGQgY2MgbW9kZSBkb2N1bWVudGF0aW9uLgoKMjAwNC0xMS0zMCAgTWFyayBEZXR0aW5nZXIgIDxkZXR0aW5nZUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5jIChzdHJ1Y3QgcHJvY2Vzc29yX2Nvc3RzKTogTmV3IGRhdGEgdHlwZS4KCShzMzkwX2Nvc3QsIHo5MDBfY29zdCwgejk5MF9jb3N0KTogTmV3IGdsb2JhbCB2YXJpYWJsZXMuCgkob3ZlcnJpZGVfb3B0aW9ucyk6IEluaXRpYWxpemUgczM5MF9jb3N0LgoJKHMzOTBfcnR4X2Nvc3RzKTogUmVpbXBsZW1lbnQuCgoyMDA0LTExLTI5ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCglGaXggUFIgdHJlZS1vcHRpbWl6YXRpb24vMTg2NzMKCgkqIHRyZWUtc3NhLXByZS5jOiBSZW1vdmUgc3BsYXktdHJlZS5oIGluY2x1ZGUuCgkoYml0bWFwX3ZhbHVlX3JlcGxhY2VfaW5fc2V0KTogRml4IHRvIGFkZCBpZiBpdCBkb2VzIG5vdCBleGlzdC4KCShmaW5kX29yX2dlbmVyYXRlX2V4cHJlc3Npb24pOiBSZW1vdmUgbm93LXdyb25nIGNvbmRpdGlvbi4KCShjcmVhdGVfZXhwcmVzc2lvbl9ieV9waWVjZXMpOiBGaXggY29uZGl0aW9uIGFuZCBjb21tZW50IHJlYXNvbgoJZm9yIGl0LgoJKGluc2VydF9hdXgpOiBGaXggY29uZGl0aW9uIGFuZCBjb21tZW50IHJlYXNvbnMgZm9yIGl0LgoJRmFjdG9yIGluc2VydGlvbiBjb2RlIGZyb20gaGVyZS4KCShpbnNlcnRfaW50b19wcmVkc19vZl9ibG9jayk6IFRvIGhlcmUuICBGaXggY29uZGl0aW9ucyBpbiBmYWN0b3JlZAoJZnVuY3Rpb24gYW5kIGNvbW1lbnQgcmVhc29ucyBmb3IgdGhlbS4KCjIwMDQtMTEtMzAgIElyYSBSb3NlbiAgPGlyYXJAaWwuaWJtLmNvbT4KCglQUiB0cmVlLW9wdC8xODYwNwoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAodmVjdF9hbmFseXplX2RhdGFfcmVmcyk6IFVzZSB0ZW1wb3JhcnkKCXZhcmlhYmxlIGZvciBkYXRhX3JlZmVyZW5jZSB3aGVuIGxvb2tpbmcgZm9yIG1lbXRhZy4KCjIwMDQtMTEtMzAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogYy1vcHRzLmMgKGNoZWNrX2RlcHNfZW52aXJvbm1lbnRfdmFycyk6IElmIHNwZWMgIT0gTlVMTCwgc2V0CglkZXBzX3NlZW4uCgoyMDA0LTExLTMwICBEb3JpdCBOYWlzaGxvcyAgPGRvcml0QGlsLmlibS5jb20+CgoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAodmVjdF9nZW5fbml0ZXJzX2Zvcl9wcm9sb2dfbG9vcCk6IFVzZQoJdHJlZV9sb3dfY3N0IGluc3RlYWQgb2YgVFJFRV9JTlRfQ1NUX0xPVy4KCjIwMDQtMTEtMzAgIERvcml0IE5haXNobG9zICA8ZG9yaXRAaWwuaWJtLmNvbT4KCglQUiB0YXJnZXQvMTgxNzMKCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfY2FuX2ZvcmNlX2RyX2FsaWdubWVudF9wKTogUmV0dXJuIGZhbHNlIGZvcgoJZGVjbHMgdGhhdCBhcmUgYXNzZW1ibGVkIGJlZm9yZSB2ZWN0b3JpemF0aW9uIHRha2VzIHBsYWNlLgoJKHZlY3RfY29tcHV0ZV9kYXRhX3JlZl9hbGlnbm1lbnQpOiBTZXQgREVDTF9VU0VSX0FMSUdOIHRvIDEuCgoyMDA0LTExLTMwICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBwYXNzZXMuYyAocmVzdF9vZl9oYW5kbGVfb2xkX3JlZ2FsbG9jKTogRGVsZXRlIHVucmVhY2hhYmxlIGJsb2NrcwoJaWYgbG9jYWxfYWxsb2MgbW9kaWZpZWQganVtcHMuCgoyMDA0LTExLTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogdmFyYXNtLmMgKGRlZmF1bHRfZW5jb2RlX3NlY3Rpb25faW5mbyk6IERvbid0IHNldCBTWU1CT0xfRkxBR19TTUFMTAoJb24gVExTIHN5bWJvbHMuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9lbGZfaW5fc21hbGxfZGF0YV9wKTogUmVtb3ZlIFRMUwoJY2hlY2suCgoyMDA0LTExLTMwICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZ3Roci1nbmF0LmMsIGd0aHItZ25hdC5oLCBndGhyLmgsIGxpYmdjYzIuaCwgdW53aW5kLWR3Mi1mZGUuaAoJKiB1bndpbmQuaDogU3Vycm91bmQgYWxsIHZpc2liaWxpdHkgcHJhZ21hcyB3aXRoICNpZm5kZWYgSElERV9FWFBPUlRTLgoKCSogbWtsaWJnY2MuaW46IERyYXN0aWMgcmVzdHJ1Y3R1cmUgZm9yIGNvbXByZWhlbnNpYmlsaXR5LgoJUmVtb3ZlIHRoZSBvbGQgaGlkZGVuLWRpcmVjdGl2ZSBoYWNrLgoJRWxpbWluYXRlIHN1cHBvcnQgZm9yIC50eHQgZmlsZXMgaW4gTElCMkFERCBldGMgKG5ldmVyIHVzZWQpLgoJRWxpbWluYXRlIHN1cHBvcnQgZm9yIGFzc2VtYmx5IHNvdXJjZSBmaWxlcyBpbiBMSUIyQURERUgqIGFuZAoJTElCVU5XSU5EIChhbHNvIG5ldmVyIHVzZWQpLgoJQnVpbGQgdXAgZGVwZW5kZW5jeSBsaXN0cyBmb3IgbGlicmFyaWVzIGluY3JlbWVudGFsbHkuCglJZiB3ZSBoYXZlIFNITElCX0xJTkssIGNvbXBpbGUgZWFjaCBmaWxlIHR3aWNlLCBvbmNlIGZvciB0aGUKCXN0YXRpYyBhbmQgb25jZSBmb3IgdGhlIHNoYXJlZCBsaWJyYXJ5OyBhbHNvIHByb2JlIGZvcgoJLWZ2aXNpYmlsaXR5PWhpZGRlbiBpbiB0aGUgZ2VuZXJhdGVkIGxpYmdjYy5tay4gIElmIGZvdW5kLAoJcGFzcyB0aGF0IGFuZCAtREhJREVfRVhQT1JUUyB0byB0aGUgY29tcGlsYXRpb24gb2YgZXZlcnkgQwoJc291cmNlIGZpbGUgZ29pbmcgaW50byB0aGUgc3RhdGljIGxpYnJhcnkuICBJZiBmb3VuZCwgZ2VuZXJhdGUKCWhpZGRlbi1kaXJlY3RpdmUgbGlzdHMgZm9yIGV2ZXJ5IGFzc2VtYmx5IHNvdXJjZSBmaWxlIGdvaW5nCglpbnRvIHRoZSBzdGF0aWMgbGlicmFyeSwgYnV0IGluY29ycG9yYXRlIHRoZW0gd2l0aCAtaW5jbHVkZQoJaW5zdGVhZCBvZiBsZCAtci4KCVdyaXRlIGNvbW1lbnRzIGludG8gZ2VuZXJhdGVkIGxpYmdjYy5tayB0byBmYWNpbGl0YXRlIGRlYnVnZ2luZy4KCSogTWFrZWZpbGUuaW46IFBhc3MgQVNNX0hJRERFTl9PUCB0byBta2xpYmdjYy4KCSogY29uZmlnL3Qtc2xpYmdjYy1kYXJ3aW46IERlZmluZSBBU01fSElEREVOX09QLgoKCSogY29uZmlnL2Rhcndpbi5oIChSRUFMX0xJQkdDQ19TUEVDKTogUHV0IC1sZ2NjIGJhY2sgaW4KCS1aZHluYW1pY2xpYiBjYXNlLgoKMjAwNC0xMS0yOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGV4cHIuYyAoZ2V0X2lubmVyX3JlZmVyZW5jZSk6IEhhbmRsZSBSRUFML0lNQUdQQVJUX0VYUFIuCgkoaGFuZGxlZF9jb21wb25lbnRfcCk6IExpa2V3aXNlLgoJKiBhbGlhcy5jIChjYW5fYWRkcmVzc19wKTogUmVmb3JtYXQgYW5kIHNpbXBsaWZ5LiAgSGFuZGxlCglSRUFML0lNQUdQQVJUX0VYUFIuICBEbyBub3QgZGlzYWJsZSBhZGRyZXNzYWJpbGl0eSBiYXNlZCBvbgoJYWxpYXMgc2V0IHplcm8uCgkqIGZvbGQtY29uc3QuYyAoYnVpbGRfZm9sZF9hZGRyX2V4cHJfd2l0aF90eXBlKTogUmVtb3ZlIGR1cGxpY2F0ZQoJY2hlY2sgZm9yIFJFQUwvSU1BR1BBUlRfRVhQUi4KCSogZ2ltcGxpZnkuYyAoZ2ltcGxpZnlfY29tcG91bmRfbHZhbCk6IExpa2V3aXNlLgoJKiB0cmVlLWNmZy5jICh2ZXJpZnlfZXhwcik6IExpa2V3aXNlLgoJKiB0cmVlLWdpbXBsZS5jIChpc19naW1wbGVfYWRkcmVzc2FibGUsIGdldF9iYXNlX2FkZHJlc3MpOiBMaWtld2lzZS4KCSogdHJlZS1uZXN0ZWQuYyAoYnVpbGRfYWRkciwgY29udmVydF9ub25sb2NhbF9yZWZlcmVuY2UpOiBMaWtld2lzZS4KCShjb252ZXJ0X2xvY2FsX3JlZmVyZW5jZSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChwcmVwYXJlX2RlY2xfcnRsKTogTGlrZXdpc2UuCgoyMDA0LTExLTMwICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZXhwci5jIChlbWl0X2dyb3VwX2xvYWRfMSk6IERvbid0IGRpZSBvbiBjb25zdF9pbnQgb3JpZ19zcmMuCgoyMDA0LTExLTI5ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCVBSIHBjaC8xNDk0MAoJKiBjb25maWcvcGEvcGEtaG9zdC5jLCBjb25maWcvcGEveC1ocHV4LCBjb25maWcvcGEveC1saW51eDogTmV3IGZpbGVzLgoJKiBjb25maWcuaG9zdCAoaHBwYSotKi1ocHV4KiwgaHBwYSotKi1saW51eCk6IERlZmluZSBvdXRfaG9zdF9ob29rX29iagoJYW5kIGhvc3RfeG1ha2VfZmlsZSB1c2luZyBuZXcgaG9zdCBjb25maWd1cmF0aW9uIGZpbGVzLgoKMjAwNC0xMS0yOSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiByZWctc3RhY2suYyAoY2hhbmdlX3N0YWNrKTogSW1wcm92ZSBhbGdvcml0aG0gdXNlZCB0byBwb3AgcmVncwoJb2ZmIHRoZSBzdGFjayB0byBtYXhpbWl6ZSBmZnJlZXAgdXNhZ2UgYW5kIHJlZHVjZSBmeGNoIGNvdW50LgoKMjAwNC0xMS0zMCAgSmFtZXMgQS4gTW9ycmlzb24gIDxwaHl0aG9uQGdjYy5nbnUub3JnPgoKCVBSIG1pZGRsZS1lbmQvMTg1OTYKCSogYy1kZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogUmVzZXQgREVDTF9JTlRJQUwgdG8gZXJyb3JfbWFya19ub2RlCglvbiBlcnJvcnMuCgoyMDA0LTExLTMwICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEsIGNhc2UgTk9QX0VYUFIpOiBQcm9wZXJseSBoYW5kbGUKCVJFRFVDRV9CSVRfRklFTEQgYnkgYXBwbHlpbmcgaXQgdG8gcmVzdWx0LCBub3QgaW5wdXQsIG9mIGNvbnZlcnNpb24uCgoyMDA0LTExLTMwICBCZW4gRWxsaXN0b24gIDxiamVAYXUuaWJtLmNvbT4KCgkqIE1ha2VmaWxlLmluIChSRUdTX0gpOiBEZXBlbmQgb24gJChCQVNJQ19CTE9DS19IKS4KCjIwMDQtMTEtMjkgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIGMvMTg0NzkKCSogYy1jb21tb24uYyAoaGFuZGxlX3Zpc2liaWxpdHlfYXR0cmlidXRlKTogV2hlbiB0aGUgdHlwZSBkZWNsCglpcyByZWFsbHkgYSBpZGVudGlmaWVyIG5vZGUsIHdhcm4gYWJvdXQgYmVpbmcgaWdub3JlZCBhbmQgcmV0dXJuLgoKMjAwNC0xMS0yOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyZWUtY2ZnLmMgKHRyZWVfbm9kZV9jYW5fYmVfc2hhcmVkKTogRml4IHR5cG8nZCBlcnJvcl9tYXJrX25vZGUuCgoyMDA0LTExLTI5ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBjZmdjbGVhbnVwLmMgKG91dGdvaW5nX2VkZ2VzX21hdGNoLCB0cnlfY3Jvc3NqdW1wX3RvX2VkZ2UpOgoJUmVtb3ZlIENBU0VfRFJPUFNfVEhST1VHSCBjaGVja3MsIGl0IGlzIG5ldmVyIGRlZmluZWQuCgkqIGNmZ2x5b3V0LmMgKGZpeHVwX3Jlb3JkZXJfY2hhaW4pOiBMaWtld2lzZS4KCSogY2ZncnRsLmMgKHJ0bF92ZXJpZnlfZmxvd19pbmZvKTogTGlrZXdpc2UuCgkqIHN0bXQuYyAoZXhwYW5kX2Nhc2UpOiBMaWtld2lzZS4KCSogY2ZnYnVpbGQuYyAobWFrZV9lZGdlcyk6IExpa2V3aXNlLiAgQWxzbyByZW1vdmUgZm9yY2VfZmFsbHRocnUsCglpdCBpcyBub3cgYWx3YXlzIDAuCgkqIHN5c3RlbS5oIChDQVNFX0RST1BTX1RIUk9VR0gpOiBQb2lzb24uCgkqIGRvYy9tZC50ZXhpIChjYXNlc2kpOiBSZW1vdmUgZG9jdW1lbnRhdGlvbiBvZiBDQVNFX0RST1BTX1RIUk9VR0guCgkqIGRvYy90bS50ZXhpIChjYXNlc2kpOiBSZW1vdmUgZG9jdW1lbnRhdGlvbiBvZiBDQVNFX0RST1BTX1RIUk9VR0guCgoJKiBjb25maWcvdjg1MC92ODUwLmg6IFJlbW92ZSBjb21tZW50ZWQgb3V0IENBU0VfRFJPUFNfVEhST1VHSC4KCjIwMDQtMTEtMjkgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIG1pZGRsZS1lbmQvMTg3MjUKCSogdHJlZS1jZmcuYyAodHJlZV9ub2RlX2Nhbl9iZV9zaGFyZWQpOiBFcnJvcl9tYXJrX25vZGUgY2FuIGJlCglzaGFyZWQgYWx3YXlzLgoKMjAwNC0xMS0yOSAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTg3MTIKCSogdHJlZS1pbnRvLXNzYS5jIChpbnNlcnRfcGhpX25vZGVzX2Zvcik6IFBhc3MgYXJndW1lbnQKCVdPUktfU1RBQ0sgYnkgcmVmZXJlbmNlLgoJQ2FsbCBWRUNfc2FmZV9wdXNoIGluc3RlYWQgb2YgVkVDX3F1aWNrX3B1c2guCglVcGRhdGUgYWxsIHVzZXJzLgoKMjAwNC0xMS0yOSAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjLzc1NDQKCSogTWFrZWZpbGUuaW4gKGMtbGFuZy5vKTogVXBkYXRlIGRlcGVuZGVuY2llcy4KCSogYy1sYW5nLmM6IEluY2x1ZGUgImMtcHJhZ21hLmgiLgoJKGZpbmlzaF9maWxlKTogQ2FsbCBtYXliZV9hcHBseV9wZW5kaW5nX3ByYWdtYV93ZWFrcy4KCSogYy1wcmFnbWEuYyAobWF5YmVfYXBwbHlfcGVuZGluZ19wcmFnbWFfd2Vha3MpOiBOZXcgZnVuY3Rpb24uCgkqIGMtcHJhZ21hLmggKG1heWJlX2FwcGx5X3BlbmRpbmdfcHJhZ21hX3dlYWtzKTogTmV3IHByb3RvdHlwZS4KCjIwMDQtMTEtMjkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE3MjI0CgkqIGNvbmZpZy9pYTY0L3ByZWRpY2F0ZXMubWQgKHNkYXRhX3N5bWJvbGljX29wZXJhbmQpOiBEZW55IG9mZnNldHMKCW91dHNpZGUgdGhlIHJlZmVyZW5jZWQgb2JqZWN0LgoKMjAwNC0xMS0yOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtaWYtY29udi5jIChyZXBsYWNlX3BoaV93aXRoX2NvbmRfbW9kaWZ5X2V4cHIpOiBVc2UKCUVER0VfUFJFRCBpbnN0ZWFkIG9mIFBISV9BUkdfRURHRS4KCSogdHJlZS1zc2EtbGl2ZS5jOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtbG9vcC1tYW5pcC5jOiBMaWtld2lzZS4KCSogdHJlZS1zc2EuYzogTGlrZXdpc2UuCgoJKiBjZmdydGwuYyAoY2ZnX2xheW91dF9yZWRpcmVjdF9lZGdlX2FuZF9icmFuY2gpOiBTcGVlZCB1cCBieQoJc2ltcGxpZnlpbmcgZWRnZSBtYW5pcHVsYXRpb24uCgoJKiBjZmdydGwuYyAocnRsX3RpZHlfZmFsbHRocnVfZWRnZSk6IFNwZWVkIHVwIGJ5IHVzaW5nCglFREdFX0NPVU5ULgoKCSogdHJlZS1jZmcuYyAodHJlZV9yZWRpcmVjdF9lZGdlX2FuZF9icmFuY2gpOiBDYWxsIGZpbmRfZWRnZQoJb25seSB3aGVuIG5lZWRlZC4KCgkqIGNmZy5jIChmbG93X29ic3RhY2spOiBSZW1vdmUuCgkoZmxvd19maXJzdG9iaik6IExpa2V3aXNlLgoJKGluaXRfZmxvdyk6IFJlbW92ZSBhbGwgdXNlcyBvZiBmbG93X29ic3RhY2suCgoyMDA0LTExLTI5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogdmFyYXNtLmMgKGRlZmF1bHRfZWxmX3NlbGVjdF9zZWN0aW9uXzEpOiBPbmx5IHBhc3MgREVDTF9QIGRlY2wKCXRvIG5hbWVkX3NlY3Rpb24uCgoyMDA0LTExLTI5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogb3B0cy5jIChkZWNvZGVfb3B0aW9ucyk6IERvIG5vdCBzZXQgbWF4LWlubGluZS1pbnNucy1ydGwuCgkoY29tbW9uX2hhbmRsZV9vcHRpb24pOiBMaWtld2lzZS4KCSogcGFyYW1zLmRlZiAoUEFSQU1fTUFYX0lOTElORV9JTlNOU19SVEwpOiBSZW1vdmUuCgkqIHBhcmFtcy5oIChNQVhfSU5MSU5FX0lOU05TX1JUTCk6IFJlbW92ZS4KCSogZG9jL2ludm9rZS50ZXhpIChtYXgtaW5saW5lLWluc25zLXJ0bCk6IFJlbW92ZS4KCjIwMDQtMTEtMjkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgdGFyZ2V0Lzk1NzEKCSogdmFyYXNtLmMgKGRlZmF1bHRfZWxmX3NlbGVjdF9zZWN0aW9uXzEpOiBQYXNzIGRlY2wgdG8gbmFtZWRfc2VjdGlvbi4KCjIwMDQtMTEtMjggIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIG1pZGRsZS1lbmQvMTgxNjQKCSogZ2ltcGxpZnkuYyAoZ2ltcGxpZnlfYXNtX2V4cHIpOiBJZiB0aGUgbGVuZ3RoIG9mIGFuIG91dHB1dCBvcGVyYW5kCglpcyB6ZXJvLCBkbyBub3QgcHJvY2VzcyBpdCwganVzdCBsZXQgaXQgZ28gdGhyb3VnaC4KCjIwMDQtMTEtMjggIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgkgICAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUFIvMTg2NjIsIGFsc28gYmFja3BvcnRlZCBmcm9tIHRyZWUtY2xlYW51cC1icmFuY2guCgkqIHRyZWUtc3NhLWNjcC5jIChzdWJzdGl0dXRlX2FuZF9mb2xkKTogSWYgcmVwbGFjZWQgYW55dGhpbmcsCglhbHdheXMgY2FsbCBtYXliZV9jbGVhbl9laF9zdG10IGFuZCBtb2RpZnlfc3RtdC4KCjIwMDQtMTEtMjggIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJUFIvMTg2NjQKCSogdHJlZS1zc2Etb3BlcmFuZHMuYyAoYnVpbGRfc3NhX29wZXJhbmRzLCBjYXNlIE1PRElGWV9FWFBSKToKCUlnbm9yZSBhIFZJRVdfQ09OVkVSVF9FWFBSIG9uIExIUyB3aGVuIGRlY2lkaW5nIGlmIG11c3Qgb3IgbWF5IGRlZi4KCSogdHJlZS1zc2EtY2NwLmMgKHZpc2l0X2Fzc2lnbm1lbnQpOiBJZiBMSFMgaXMgYSBWSUVXX0NPTlZFUlRfRVhQUiwKCWFkZCBhbiBpbnZlcnNlIFZJRVdfQ09OVkVSVF9FWFBSIHRvIGNvbnN0X3ZhbC4KCglQUi8xODY1NwoJKiB0cmVlLW5lc3RlZC5jIChjaGVja19mb3JfbmVzdGVkX3dpdGhfdmFyaWFibHlfbW9kaWZpZWQpOiBOZXcuCgkoY3JlYXRlX25lc3RpbmdfdHJlZSk6IENhbGwgaXQuCgoJKiB0cmVlLXNzYS1hbGlhcy5jIChjb21wdXRlX3BvaW50c190b19hbmRfYWRkcl9lc2NhcGVzKTogUmVtb3ZlCglzcGVjaWFsIGNvZGUgZm9yIGFzc2lnbmluZyB0byBub24tcG9pbnRlci4KCShpc19lc2NhcGVfc2l0ZSk6IElmIFJIUyBpcyBhIGNvbnZlcnNpb24gYmV0d2VlbiBwb2ludGVyIGFuZCBpbnRlZ2VyCgl0eXBlcywJdGhpcyBpcyBhbiBlc2NhcGUgc2l0ZS4KCgkqIGdjc2UuYyAoaW5zZXJ0X3N0b3JlKTogRXJyb3IgaWYgdHJ5IHRvIGluc2VydCBzdG9yZSBvbiBhYm5vcm1hbCBlZGdlLgoJKHN0b3JlX21vdGlvbik6IERvbid0IG1vdmUgc3RvcmUgaWYgYW55IGVkZ2Ugd2UnZCB3YW50IHRvIG1vdmUgaXQKCXRvIGlzIGFibm9ybWFsLgoKCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEsIGNhc2UgQVJSQVlfUkVGKTogUHJvcGVybHkgZm9sZCB3aXRoCglub24temVybyBsb3dlciBib3VuZC4KCgkqIGV4cHIuYyAoY2F0ZWdvcml6ZV9jdG9yX2VsZW1lbnRzXzEsIGNhc2UgU1RSSU5HX0NTVCk6IE5ldyBjYXNlLgoKMjAwNC0xMS0yOCAgTWF0dCBLcmFhaSAgPGtyYWFpQGFsdW1uaS5jbXUuZWR1PgoKCVBSIGRpYWdub3N0aWMvMTc1OTQKCSogb3B0cy5jIChmaW5kX29wdCk6IFJlcXVpcmUgdGhhdCB0aGUgaW5wdXQgbWF0Y2ggYSBzd2l0Y2ggZXhhY3RseQoJb3IgdGhhdCB0aGUgc3dpdGNoIHRha2UgYSBqb2luZWQgb3B0aW9uIHRvIGJlIGludGVycHJldGVkIGFzIGEKCW1hdGNoIGZvciBhbm90aGVyIGxhbmd1YWdlLgoKMjAwNC0xMS0yOCAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiB0aW1ldmFyLmRlZiAoVFZfVFJFRV9SRURQSEkpOiBOZXcgdGltZXZhci4KCSogdHJlZS1zc2EuYyAocGFzc19yZWR1bmRhbnRfcGhpKTogVXNlIFRWX1RSRUVfUkVEUEhJIGZvciB0aGUgdHYgaWQuCgoyMDA0LTExLTI4ICBOYXRoYW5hZWwgTmVyb2RlICA8bmVyb2RlbkBnY2MuZ251Lm9yZz4KCglQUiBwcmVwcm9jZXNzb3IvMTc2NTEKCSogYy1vcHRzLmMgKHNhbml0aXplX2NwcF9vcHRzKTogTWFrZSBmbGFnX25vX291dHB1dCBpbXBseQoJZmxhZ19ub19saW5lX2NvbW1hbmRzLgoJKiBjLXBwb3V0cHV0LmMgKHBwX2ZpbGVfY2hhbmdlKTogUmVtb3ZlIG5vdy1yZWR1bmRhbnQgY2hlY2sgb2YKCWZsYWdfbm9fb3V0cHV0LgoKMjAwNC0xMS0yOCAgVGhlb2RvcmUgQS4gUm90aCAgPHRyb3RoQG9wZW5hdnIub3JnPgoKCSogY29uZmlnL2F2ci9hdnIuYyAoYXZyX2hhbmRsZV9mbmRlY2xfYXR0cmlidXRlKTogR2VuZXJhdGUgYQoJd2FybmluZyBpZiB0aGUgZnVuY3Rpb24gbmFtZSBkb2VzIG5vdCBiZWdpbiB3aXRoICJfX3ZlY3RvciIgYW5kIHRoZQoJZnVuY3Rpb24gaGFzIGVpdGhlciB0aGUgJ3NpZ25hbCcgb3IgJ2ludGVycnVwdCcgYXR0cmlidXRlLgoKMjAwNC0xMS0yOCAgVGhlb2RvcmUgQS4gUm90aCAgPHRyb3RoQG9wZW5hdnIub3JnPgoKCSogY29uZmlnL2F2ci9hdnIuYyAoYXZyX21jdV90eXBlcyk6IEFkZCBlbnRyaWVzIGZvciBhdG1lZ2E0OCwKCWF0bWVnYTg4LCBhdG1lZ2ExNjgsIGF0dGlueTEzLCBhdHRpbnkyMzEzLCBhdDkwY2FuMTI4LCBhdG1lZ2ExNjUsCglhdG1lZ2EzMjUsIGF0bWVnYTMyNTAsIGF0bWVnYTY0NSBhbmQgYXRtZWdhNjQ1MC4KCSogY29uZmlnL2F2ci9hdnIuaCAoTElOS19TUEVDKTogRGl0dG8uCgkoTElCX1NQRUMpOiBEaXR0by4KCShMSUJHQ0NfU1BFQyk6IERpdHRvLgoJKENSVF9CSU5VVElMU19TUEVDUyk6IERpdHRvLgoJKiBjb25maWcvYXZyL3QtYXZyIChNVUxUSUxJQl9NQVRDSEVTKTogRGl0dG8uCgoyMDA0LTExLTI4ICBOYXRoYW5hZWwgTmVyb2RlICA8bmVyb2RlbkBnY2MuZ251Lm9yZz4KCglQUiBwcmVwcm9jZXNzb3IvMTc2MTAKCSogdGVzdHN1aXRlL2djYy5kZy9jcHAvZW1wdHktaW5jbHVkZS5jOiBOZXcgdGVzdGNhc2UuCgoyMDA0LTExLTI4ICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtYWxpYXMuYyAoY291bnRfY2FsbHNfYW5kX21heWJlX2NyZWF0ZV9nbG9iYWxfdmFyKTogTmV3LgoJKHBhc3NfbWF5YmVfY3JlYXRlX2dsb2JhbF92YXIpOiBOZXcuCgkqIHRyZWUtcGFzcy5oIChwYXNzX21heWJlX2NyZWF0ZV9nbG9iYWxfdmFyKTogRGVjbGFyZS4KCSogdHJlZS1vcHRpbWl6ZS5jIChpbml0X3RyZWVfb3B0aW1pemF0aW9uX3Bhc3Nlcyk6IExpbmsgaW4KCXBhc3NfbWF5YmVfY3JlYXRlX2dsb2JhbF92YXIuCgoyMDA0LTExLTI4ICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogdHJlZS1pbmxpbmUuYyAoaW5saW5lX2ZvcmJpZGRlbl9wXzEsIGNhc2UgUkVDT1JEX1RZUEUpOiBBZGQgY29tbWVudC4KCjIwMDQtMTEtMjggIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE4NDIwCgkqIHNpbXBsaWZ5LXJ0eC5jIChzaW1wbGlmeV9nZW5fc3VicmVnKTogUmV2ZXJ0IDIwMDQtMTAtMjggY2hhbmdlLgoKMjAwNC0xMS0yOCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoJICAgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBjb25maWcvdmF4L3ZheC5oIChDQVNFX0RST1BTX1RIUk9VR0gpOiBEb24ndCBkZWZpbmUuCgkqIGNvbmZpZy92YXgvdmF4Lm1kIChjYXNlc2kpOiBFbWl0IGEgdGVzdC1hbmQtYnJhbmNoIHRvIG1ha2Ugc3VyZQoJdGhhdCB0aGUgY2FzZSBpcyBpbiByYW5nZSwgdG8gbWFrZSBzdXJlIHRoZSBjYXNlc2kgaW5zbiBpcyBhbHdheXMKCWluIHJhbmdlIGFuZCBuZXZlciBmYWxscyB0aHJvdWdoLgoJKGNhc2VzaTEpOiBBZGQgY29tbWVudCB0byBleHBsYWluIHdoeSBjYXNlc2kgbmV2ZXIgZmFsbHMgdGhyb3VnaC4KCVJlbW92ZSB0aGUgdW5uYW1lZCBzcGVjaWFsIGNhc2UgY2FzZXNpIHBhdHRlcm4uCgoyMDA0LTExLTI4ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJUFIgdGFyZ2V0LzE4MzMxCgkqIGNvbmZpZy9tbWl4L21taXgubWQgKCIqbW92ZGljY19yZWFsX3JldmVyc2libGUiKTogUmVuYW1lIGZyb20KCSIqbW92ZGljY19yZWFsIi4gIE9ubHkgbWF0Y2ggcmV2ZXJzaWJsZSBjb21wYXJpc29ucy4KCSgiKm1vdmRpY2NfcmVhbF9ub25yZXZlcnNpYmxlIik6IE5ldyBwYXR0ZXJuLCBzcGxpdCBmcm9tCgkiKm1vdmRpY2NfcmVhbCIuICBNYXRjaCBvbmx5IG5vbnJldmVyc2libGUgY29tcGFyaXNvbnMuICBFeGNsdWRlCglyZXZlcnNlZCBhbHRlcm5hdGl2ZXMuCgkoIiptb3ZkZmNjX3JlYWxfcmV2ZXJzaWJsZSIsICIqbW92ZGZjY19yZWFsX25vbnJldmVyc2libGUiKToKCVNpbWlsYXIuCgoyMDA0LTExLTI3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2lhNjQvaWE2NC5tZDogTW92ZSBhbGwgZGVmaW5lX3ByZWRpY2F0ZSdzIC4uLgoJKiBjb25maWcvaWE2NC9wcmVkaWNhdGVzLm1kOiAuLi4gaGVyZS4gIE5ldyBmaWxlLgoKMjAwNC0xMS0yNyAgUGVyIEJvdGhuZXIgIDxwZXJAYm90aG5lci5jb20+CgoJUFIgYm9vdHN0cmFwLzE4MTQyCglSZS1hcHBsaWVkIGZvbGxvd2luZywgd2l0aCB0d28gbW9kaWZpY2F0aW9uczogYWRkIGEgVVJMIGZvciB0aGUKCWZpeGVkIGNjdG9vbHM7IG9ubHkgZXhpdCBpZiAkYnVpbGQgPSAkdGFyZ2V0LgoKCTIwMDQtMTAtMTggIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgkqIGNvbmZpZ3VyZS5hYyAocG93ZXJwYy0qLWRhcndpbiopOiBSZXF1aXJlIGFzc2VtYmxlciB0byBzdXBwb3J0CgkubWFjaGluZSBkaXJlY3RpdmUuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDQtMTEtMjggIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCglQUiB0YXJnZXQvMTY4MDAKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3J0eF9jb3N0cyk6IEltcHJvdmUgYWNjdXJhY3kgb2YKCUVRLCBHVFUsIGFuZCBMVFUgY29zdHMuICBBZGQgY29zdHMgZm9yIEdULCBMVCwgYW5kIFVOT1JERVJFRC4KCURpc3Rpbmd1aXNoIGJldHdlZW4gU0ltb2RlIGFuZCBESW1vZGUgQ09OU1RfSU5ULgoKMjAwNC0xMS0yOCAgQW5kcmVhcyBGaXNjaGVyIDxhX2Zpc2NoQGdteC5kZT4KCSAgICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCVBSIHRhcmdldC8xNjM0MwoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfZWxmX2luX3NtYWxsX2RhdGFfcCk6IERpc2FsbG93CglmdW5jdGlvbnMsIHN0cmluZ3MgYW5kIHRocmVhZC1sb2NhbCB2YXJzLgoKMjAwNC0xMS0yOCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKFdPUkxEX1NBVkVfUCk6IERlZmluZS4KCSogY29uZmlnL3JzNjAwMC9kYXJ3aW4uaCAoV09STERfU0FWRV9QKTogRGVmaW5lLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChjb21wdXRlX3NhdmVfd29ybGRfaW5mbyk6IFVzZSBXT1JMRF9TQVZFX1AKCXRvIGFsbG93IG5vbi1kYXJ3aW4gQUJJcyB0byBvcHRpbWl6ZSBhd2F5IGNvZGUuCgkocnM2MDAwX2VtaXRfcHJvbG9ndWUsIHJzNjAwMF9lbWl0X2VwaWxvZ3VlKTogTGlrZXdpc2UuCgoyMDA0LTExLTI3ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS5jIChvcGVyYW5kX2VxdWFsX2Zvcl9waGlfYXJnX3ApOiBOZXcuCgkqIHRyZWUuaDogQWRkIGEgcHJvdG90eXBlIGZvciBvcGVyYW5kX2VxdWFsX2Zvcl9waGlfYXJnX3AuCgkqIHRyZWUtY2ZnLmMsIHRyZWUtc3NhLWRvbS5jLCB0cmVlLXNzYS1waGlvcHQuYywgdHJlZS1zc2EuYzoKCVJlcGxhY2Ugb3BlcmFuZF9lcXVhbF9wIHdpdGggb3BlcmFuZF9mb3JfcGhpX2FyZ19wCglhcHByb3ByaWF0ZWx5LgoKCSogYmItcmVvcmRlci5jIChmaW5kX3RyYWNlc18xX3JvdW5kKTogU3BlZWQgdXAgYnkgdXNpbmcKCUVER0VfQ09VTlQgaW5zdGVhZCBvZiBGT1JfRUFDSF9FREdFLgoKCSogZm9sZC1jb25zdC5jLCBjb25maWcvaTM4Ni9saW51eDY0Lmg6IEZpeCBjb21tZW50IHR5cG9zLgoKMjAwNC0xMS0yNyAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCglQUiBwY2gvMTQ5NDAKCSogY29uZmlnL2hvc3QtbGludXguYyAoVFJZX0VNUFRZX1ZNX1NQQUNFKTogUmV2ZXJ0IDIwMDQtMTEtMjIgY2hhbmdlLgoKMjAwNC0xMS0yNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy9pMzg2L2xpbnV4Lmg6IEZpeCBhIGNvbW1lbnQgdHlwby4KCSogZG9jL2V4dGVuZC50ZXhpOiBGaXggYSB0eXBvLgoKMjAwNC0xMS0yNyAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIHRyZWUtY2ZnLmMgKGNsZWFudXBfdHJlZV9jZmcpOiBBbHNvIHJldHVybiB0cnVlIGlmIGJsb2NrcwoJYXJlIG1lcmdlZC4KCjIwMDQtMTEtMjcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvbGludXg2NC5oIChSRUdfTkFNRSk6IERlZmluZS4KCjIwMDQtMTEtMjcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZm9sZC1jb25zdC5jIChleHRyYWN0X211bGRpdl8xKSA8Y2FzZSBBQlNfRVhQUj46IElmIGN0eXBlIGlzCgl1bnNpZ25lZCBhbmQgdHlwZSBzaWduZWQsIGJ1aWxkIEFCU19FWFBSIHdpdGggc2lnbmVkX3R5cGUgKGN0eXBlKQoJYW5kIG9ubHkgYWZ0ZXJ3YXJkcyBjb252ZXJ0IHRvIGN0eXBlLgoKMjAwNC0xMS0yNyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy1wcm90b3MuaCAoZnVuY3Rpb25fYXJnX2JvdW5kYXJ5KTogRGVjbGFyZS4KCSogY29uZmlnL21pcHMvbWlwcy5oIChQQVJNX0JPVU5EQVJZKTogU2ltcGxpZnkgZGVmaW5pdGlvbi4KCShTVEFDS19CT1VOREFSWSwgTUlQU19TVEFDS19BTElHTik6IExpa2V3aXNlLgoJKEZVTkNUSU9OX0FSR19CT1VOREFSWSk6IFVzZSBuZXcgZnVuY3Rpb25fYXJnX2JvdW5kYXJ5IGZ1bmN0aW9uLgoJKiBjb25maWcvbWlwcy9taXBzLmMgKGZ1bmN0aW9uX2FyZ19ib3VuZGFyeSk6IE5ldyBmdW5jdGlvbi4KCUltcG9zZSBhIG1heGltdW0gYWxpZ25tZW50IG9mIFNUQUNLX0JPVU5EQVJZLgoKMjAwNC0xMS0yNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNzgyNQoJKiBjb21iaW5lLmMgKHN1YnN0KTogSWdub3JlIFNUUklDVF9MT1dfUEFSVCBubyBtYXR0ZXIgaWYgUkVHX1AgKG5ldykKCW9yIG5vdC4KCjIwMDQtMTEtMjcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgdGFyZ2V0LzEyNzY5CgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKGluaXRfY3VtdWxhdGl2ZV9hcmdzKTogU2V0IGNhbGxfY29va2llCglmcm9tIHJzNjAwMF9kZWZhdWx0X2xvbmdfY2FsbHMgZm9yIGxpYmNhbGxzLgoKMjAwNC0xMS0yNiAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGV4cG1lZC5jIChleHRyYWN0X2JpdF9maWVsZCk6IFdoZW4gZXh0cmFjdGluZyBmcm9tIG5vbi1pbnRlZ2VyIG1vZGUsCglmb3JjZSBhIFNVQlJFRyBpbnRvIGEgcmVnaXN0ZXIgYmVjYXVzZSB3ZSBtYXkgYmUgdGFraW5nIGEgZnVydGhlcgoJU1VCUkVHIG9mIGl0LgoKMjAwNC0xMS0yNyAgRGktYW4gSmFuICA8ZGlhbmpAZnJlZXNoZWxsLm9yZz4KCgkqIGRvYy9jb250cmliLnRleGkgKFRpbSBKb3NsaW5nKTogUmVtb3ZlIG5lc3RpbmcgcXVvdGF0aW9uIG1hcmtzLgoKMjAwNC0xMS0yNiAgUm9iZXJ0IE1pbGxhbiAgPHJvYmVydG1oQGdudS5vcmc+CgoJQ2hhbmdlcyBmb3Igaypic2QtZ251IHN1cHBvcnQuCgkqIGNvbmZpZy9pMzg2L2xpbnV4Lmg6IERlZmluZSBSRUdfTkFNRSB0byBhbGxvdyBvdmVycmlkaW5nIG9mCglyZWdpc3RlciBuYW1lcyBpbiBzYyBzdHJ1Y3R1cmUuCgkqIGNvbmZpZy9pMzg2L2xpbnV4LXVud2luZC5oOiBSZWZlciB0byBzYy0+UkVHX05BTUUocmVnKSBpbnN0ZWFkCglvZiBzYy0+cmVnLgoJKiBjb25maWcuZ2NjOiBEZXRlY3QgeDg2XzY0LWsqYnNkLWdudSBzeXN0ZW1zLgoKMjAwNC0xMS0yNiAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLmMgKHZlcmlmeV9mbG93X3NlbnNpdGl2ZV9hbGlhc19pbmZvKTogRG9uJ3QKCXJldHJpZXZlIGFubm90YXRpb25zIG9yIHBvaW50ZXIgaW5mbyBiZWZvcmUgaXQncyBuZWNlc3NhcnkuCglSZW9yZGVyIHRlc3RzIGZvciBlYXJseSBjb250aW51ZSBvZiB0aGUgbG9vcC4gIE1hbnVhbGx5IENTRQoJU1NBX05BTUVfVkFSLgoKMjAwNC0xMS0yNiAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIHRhcmdldC5oIChzdHJ1Y3QgZ2NjX3RhcmdldCk6IE5ldyBmaWVsZCAnZHdhcmZfaGFuZGxlX2ZyYW1lX3Vuc3BlYycuCgkqIHRhcmdldF9kZWYuaCAoVEFSR0VUX0RXQVJGX0hBTkRMRV9GUkFNRV9VTlNQRUMpOiBEZWZpbmUgdG8gMC4KCShUQVJHRVRfSU5JVElBTElaRVIpOiBBZGQgVEFSR0VUX0RXQVJGX0hBTkRMRV9GUkFNRV9VTlNQRUMuCgkqIGR3YXJmMm91dC5jIChkd2FyZjJvdXRfZnJhbWVfZGVidWdfZXhwcik6IEFsbG93IFJFRy0+UkVHIG1vdmUKCXRvIGEgZml4ZWQgcmVnIGlmIHRoZSBzb3VyY2UgaXMgdGhlIFJldHVybiBBZGRyZXNzIHJlZ2lzdGVyLgoJSW1wbGVtZW50IG5ldyBSdWxlIDE1LgoJKiBkb2MvdG0udGV4aSAoRnJhbWUgTGF5b3V0KTogRG9jdW1lbnQgVEFSR0VUX0RXQVJGX0hBTkRMRV9GUkFNRV9VTlNQRUMuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChUQVJHRVRfRFdBUkZfSEFORExFX0ZSQU1FX1VOU1BFQyk6IERlZmluZSB0bwoJc3BhcmNfZHdhcmZfaGFuZGxlX2ZyYW1lX3Vuc3BlYy4KCShnZW5fc2F2ZV9yZWdpc3Rlcl93aW5kb3cpOiBOZXcgZnVuY3Rpb24uCgkoZW1pdF9zdGFja19wb2ludGVyX2luY3JlbWVudCk6IFJlbmFtZSBpbnRvIGdlbl9zdGFja19wb2ludGVyX2luYy4KCShlbWl0X3N0YWNrX3BvaW50ZXJfZGVjcmVtZW50KTogUmVuYW1lIGludG8gZ2VuX3N0YWNrX3BvaW50ZXJfZGVjLgoJKGV4cGFuZF9wcm9sb2d1ZSk6IEFkanVzdCBjYWxscyB0byBlbWl0X3N0YWNrX3BvaW50ZXJfe2luLGRlfWNyZW1lbnQuCglTZXQgUlRYX0ZSQU1FX1JFTEFURURfUCBvbiB0aGUgYXBwcm9wcmlhdGUgaW5zbnMgYW5kIG1lbWJlcnMgb2YgaW5zbnMuCgkoc3BhcmNfYXNtX2Z1bmN0aW9uX3Byb2xvZ3VlKTogRG8gbm90IGVtaXQgY2FsbCBmcmFtZSBkZWJ1Z2dpbmcgaW5mby4KCShlbWl0X2FuZF9wcmVzZXJ2ZSk6IEFkanVzdCBjYWxscyB0byBlbWl0X3N0YWNrX3BvaW50ZXJfe2luLGRlfWNyZW1lbnQuCgkoc3BhcmNfZXhwYW5kX2VwaWxvZ3VlKTogTGlrZXdpc2UuCgkoc3BhcmNfZHdhcmZfaGFuZGxlX2ZyYW1lX3Vuc3BlYyk6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL3NwYXJjL3NwYXJjLm1kIChzYXZlX3JlZ2lzdGVyX3dpbmRvdyk6IFJlbW92ZS4KCShzYXZlX3JlZ2lzdGVyX3dpbmRvd2RpKTogUmV3cml0ZSBtb2RlbGxlZCBvbiB0aGUgY2FsbGZyYW1lIGRlYnVnIGluZm8uCgkoc2F2ZV9yZWdpc3Rlcl93aW5kb3dzaSk6IExpa2V3aXNlLgoKMjAwNC0xMS0yNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvZnJ2L2Zydi1wcm90b3MuaDogR3VhcmQgaWZjdnQgZnVuY3Rpb25zIGRlY2xhcmF0aW9ucyB3aXRoCglCQl9IRUFELCBub3QgQkxPQ0tfSEVBRC4KCjIwMDQtMTEtMjYgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogY29uZmlnL2Zydi9mcnYuYyAoZnJ2X2lmY3Z0X21vZGlmeV9pbnNuKTogRG9uJ3QgbGVhdmUgYWxvbmUKCXNjcmF0Y2ggaW5zbnMgdGhhdCBzZXQgYSByZWdpc3RlciBsaXZlIGF0IHRoZSBqb2luIHBvaW50LgoKMjAwNC0xMS0yNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNzZS5jLCB0cmVlLXNzYS1vcGVyYW5kcy5jOiBGaXggY29tbWVudCB0eXBvcy4KCgkqIHRyZWUtY2ZnLmMgKHRyZWVfc3BsaXRfZWRnZSk6IFNwZWVkIHVwIGJ5IHVzaW5nIGZpbmRfZWRnZS4KCjIwMDQtMTEtMjYgIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCglQUiB0YXJnZXQvMTg1MTAKCSogZG9jL2V4dGVuZC50ZXhpIChTUEFSQyBWSVMgQnVpbHQtaW4gRnVuY3Rpb25zKTogTmV3IHNlY3Rpb24uCgoyMDA0LTExLTI2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY2ZncnRsLmMgKHRyeV9yZWRpcmVjdF9ieV9yZXBsYWNpbmdfanVtcCk6IFNwZWVkIHVwIHRoZQoJY2hlY2sgdGhhdCB0ZXN0cyBpZiBhbGwgZWRnZXMgZ28gdG8gdGhlIHNhbWUgZGVzdGluYXRpb24uCgoJKiBiaXRtYXAuYyAoYml0bWFwX2ZpbmRfYml0KTogU3BlZWQgdXAgYnkgdHJhdmVyc2luZyBmcm9tCgloZWFkLT5maXJzdCBpZiB0aGF0IHNlZW1zIHByb2ZpdGFibGUuCgoyMDA0LTExLTI1ICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogdGltZXZhci5kZWYgKFRWX1RSRUVfTE9PUF9JTklULCBUVl9UUkVFX0xPT1BfRklOSSk6IE5ldyB0aW1ldmFycy4KCSogdHJlZS1zc2EtbG9vcC5jIChwYXNzX2xvb3BfaW5pdCk6IFVzZSBUVl9UUkVFX0xPT1BfSU5JVC4KCShwYXNzX2xvb3BfZG9uZSk6IFVzZSBUVl9UUkVFX0xPT1BfRklOSS4KCjIwMDQtMTEtMjYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNjM1NgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAoZmxvYXRkaXNmMl9pbnRlcm5hbDIpOiBSZXdyaXRlIHdpdGgKCXNlcGFyYXRlIG91dHB1dCByZWdpc3RlciBhbmQgb25lIGxlc3MganVtcC4gIEVuYWJsZSBmb3IgcG93ZXJwYzY0LgoJKGZsb2F0ZGlzZjIpOiBBZGp1c3QgZm9yIGFib3ZlLgoKMjAwNC0xMS0yNSAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGNvbmZpZy94dGVuc2EveHRlbnNhLmggKFNUQVJURklMRV9TUEVDKTogQWRkIGNydDAuCgkoR0NDX0RSSVZFUl9IT1NUX0lOSVRJQUxJWkFUSU9OKTogRGVmaW5lLgoKMjAwNC0xMS0yNSAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgbWlkZGxlLWVuZC8xNzk1NwoJKiB0cmVlLWNvbXBsZXguYyAodmVjdG9yX2lubmVyX3R5cGUpOiBOZXcgdmFyaWFibGUgbW92ZWQgZnJvbQoJYnVpbGRfd29yZF9tb2RlX3ZlY3Rvcl90eXBlLgoJKHZlY3Rvcl9sYXN0X3R5cGUpOiBMaWtld2lzZS4KCSh2ZWN0b3JfbGFzdF9udW5pdHMpOiBMaWtld2lzZS4KCShidWlsZF93b3JkX21vZGVfdmVjdG9yX3R5cGUpOiBVc2UgdGhlIG5ldyB2YXJpYWJsZXMuCgkqIE1ha2VmaWxlLmluICh0cmVlLWNvbXBsZXgubyk6IEFkZCBndC10cmVlLWNvbXBsZXguaCAkKEdHQ19IKS4KCShHVEZJTEVTKTogQWRkIHRyZWUtY29tcGxleC5jLgoJKGd0LXRyZWUtY29tcGxleC5oKTogTmV3IHJ1bGUsIGFkZCBpdCB0byB0aGUgcmVzdCBvZiB0aGUgZ3QtKiBydWxlcy4KCjIwMDQtMTEtMjUgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBjb25maWcveHRlbnNhL3h0ZW5zYS5oIChUQVJHRVRfQ1BVX0NQUF9CVUlMVElOUyk6IERlZmluZQoJX19YVEVOU0FfV0lORE9XRURfQUJJX18uCgoyMDA0LTExLTI1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZHdhcmYyb3V0LmMgKGR3YXJmMm91dF9zdGFja19hZGp1c3QpOiBBZGQgYWZ0ZXJfcCBhcmd1bWVudC4gIFNhdmUKCWFyZ3Nfc2l6ZSBhZGp1c3RtZW50cyBmb3IgY2FsbHMgZXZlbiB3aXRoIGNmYSBhcyBzdGFjayBwb2ludGVyLgoJU2VhcmNoIGNhbGxzIGZvciBzdGFjayBhZGp1c3RtZW50cyBhZnRlciB0aGUgaW5zbiBpcyBpc3N1ZWQuCgkoZHdhcmYyb3V0X2ZyYW1lX2RlYnVnKTogQWRkIGFmdGVyX3AgYXJndW1lbnQ7IHBhc3MgaXQgb24uCgkqIGR3YXJmMm91dC5oIChkd2FyZjJvdXRfZnJhbWVfZGVidWcpOiBVcGRhdGUgdG8gbWF0Y2guCgkqIGZpbmFsLmMgKGZpbmFsX3N0YXJ0X2Z1bmN0aW9uLCBmaW5hbF9zY2FuX2luc24pOiBMaWtld2lzZS4KCjIwMDQtMTEtMjUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgYysrLzY3NjQKCSogcmVsb2FkMS5jIChzZXRfaW5pdGlhbF9laF9sYWJlbF9vZmZzZXQpOiBOZXcuCgkoc2V0X2luaXRpYWxfbGFiZWxfb2Zmc2V0cyk6IFVzZSBpdC4KCjIwMDQtMTEtMjUgIEtheiBLb2ppbWEgIDxra29qaW1hQGdjYy5nbnUub3JnPgoKCSogY29uZmlnL3NoL3NoLmMgKHNoX291dHB1dF9taV90aHVuayk6IEluaXRpYWxpemUgYml0bWFwIG9ic3RhY2tzCgliZWZvcmUgY2FsbGluZyBsaWZlX2FuYWx5c2lzIGFuZCByZWxlYXNlIHRoZW0gYWZ0ZXIuCgoyMDA0LTExLTI1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1zc2EtZm9yd3Byb3AuYyAoc3Vic3RpdHV0ZV9zaW5nbGVfdXNlX3ZhcnMpOiBSZW1vdmUKCWR1cGxpY2F0ZSBjb2RlLgoKMjAwNC0xMS0yNSAgQW5kcmV3IFBpbnNraSA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCgkqIGJpdG1hcC5oIChCSVRNQVBfWE1BTExPQyk6IFVzZSBCSVRNQVBfQUxMT0MgYW5kIG5vdAoJQklUTUFQX09CU1RBQ0tfQUxMT0MuCgkoQklUTUFQX1hGUkVFKTogVXNlIEJJVE1BUF9GUkVFIGFuZCBub3QgQklUTUFQX09CU1RBQ0tfRlJFRS4KCjIwMDQtMTEtMjUgIEFuZHJldyBQaW5za2kgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJcGFydHMgb2YgUFIgcnRsLW9wdC8xODQ2MywgcnRsLW9wdC8xNzY0NwoJKiBjc2UuYyAoY2Fub25fZm9yX2FkZHJlc3MpOiBOZXcgZnVuY3Rpb24uCgkoZmluZF9iZXN0X2FkZHIpOiBDYWxsIGNhbm9uX2Zvcl9hZGRyZXNzIGJlZm9yZSBnZXR0aW5nIHRoZQoJYWRkcmVzcydzIGNvc3Qgd2hlbiBjaGVja2luZyBpZiB3ZSBzaG91bGQgdGFrZSB0aGF0IGFkZHJlc3MuCgoyMDA0LTExLTI1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1waGlub2Rlcy5jIChhZGRfcGhpX2FyZyk6IFRha2UgInRyZWUiIGluc3RlYWQgb2YKCSJ0cmVlICoiIGFzIHRoZSBmaXJzdCBhcmd1bWVudC4KCSogdHJlZS1mbG93Lmg6IFVwZGF0ZSB0aGUgcHJvdG90eXBlIG9mIGFkZF9waGlfYXJnLgoJKiBsYW1iZGEtY29kZS5jLCB0cmVlLWNmZy5jLCB0cmVlLWludG8tc3NhLmMsCgl0cmVlLXNzYS1sb29wLWl2b3B0cy5jLCB0cmVlLXNzYS1sb29wLW1hbmlwLmMsIHRyZWUtc3NhLXByZS5jLAoJdHJlZS1zc2EtdGhyZWFkdXBkYXRlLmMsIHRyZWUtc3NhLmMsIHRyZWUtdGFpbGNhbGwuYywKCXRyZWUtdmVjdG9yaXplci5jOiBVcGRhdGUgYWxsIGNhbGwgc2l0ZXMgb2YgYWRkX3BoaV9hcmcuCgoyMDA0LTExLTI1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogYml0bWFwLmMgKGJpdG1hcF9tYWxsb2NfYWxsb2MsIGJpdG1hcF9tYWxsb2NfZnJlZSk6IFJlbW92ZS4KCSogYml0bWFwLmggKGJpdG1hcF9tYWxsb2NfYWxsb2MsIGJpdG1hcF9tYWxsb2NfZnJlZSk6IFJlbW92ZS4KCShCSVRNQVBfWE1BTExPQyk6IEZvcndhcmQgdG8gQklUTUFQX09CU1RBQ0tfQUxMT0MuCgkoQklUTUFQX1hGUkVFKTogRm9yd2FyZCB0byBCSVRNQVBfT0JTVEFDS19GUkVFLgoKMjAwNC0xMS0yNSAgQW5kcmV3IE1hY0xlb2QgIDxhbWFjbGVvZEByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE4NTg3CgkqIHRyZWUtZmxvdy1pbmxpbmUuaCAobWFya19jYWxsX2Nsb2JiZXJlZCwgbWFya19ub25fYWRkcmVzc2FibGUpOiBGbGFnCgljYWxsIGNsb2JiZXJlZCBjYWNoZXMgYXMgaW52YWxpZC4KCSogdHJlZS1zc2Etb3BlcmFuZHMuYyAoc3NhX2NhbGxfY2xvYmJlcmVkX2NhY2hlX3ZhbGlkKTogTmV3LiAgRmxhZwoJaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBjYWxsIGNsb2JiZXJlZCBvcGVyYW5kIGNhY2hlIGlzIHZhbGlkLgoJKHNzYV9yb19jYWxsX2NhY2hlX3ZhbGlkKTogTmV3LiAgRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlCglwdXJlL2NvbnN0IGNhbGwgb3BlcmFuZCBjYWNoZSBpcyB2YWxpZC4KCShjbG9iYmVyZWRfdl9tYXlfZGVmcywgY2xvYmJlcmVkX3Z1c2VzLCByb19jYWxsX3Z1c2VzKTogTmV3LiAgQ2FjaGVkCglsaXN0IG9mIG9wZXJhbmRzIGZvciBjYWNoZWQgY2FsbCB2aXJ0dWFsIG9wZXJhbmRzLgoJKGNsb2JiZXJlZF9hbGlhc2VkX2xvYWRzLCBjbG9iYmVyZWRfYWxpYXNlZF9zdG9yZXMsCglyb19jYWxsX2FsaWFzZWRfbG9hZCk6IE5ldy4gIGZsYWdzIGNhY2hpbmcgd2hldGhlciBhbGlhcyBiaXRzIGFyZQoJdG8gYmUgc2V0IGluIGNhbGwgc3RtdCdzLgoJKGZpbmlfc3NhX29wZXJhbmRzKTogUmVtb3ZlIGNhbGwgb3BlcmFuZCBjYWNoZXMgaWYgcHJlc2VudC4KCShnZXRfZXhwcl9vcGVyYW5kcywgZ2V0X2FzbV9leHByX29wZXJhbmRzLAoJZ2V0X2luZGlyZWN0X3JlZl9vcGVyYW5kcyk6IFBhc3Mgc3RtdCBhbm5vdGF0aW9uIHRvIGFkZF9zdG10X29wZXJhbmQuCgkoZ2V0X2NhbGxfZXhwcl9vcGVyYW5kcyk6IEFkZCBjYWxsIGNsb2JiZXJlZCB2YXJpYWJsZXMgZmlyc3QuCgkoYWRkX3N0bXRfb3BlcmFuZCk6IFRha2Ugc3RtdCBhbm5vdGF0aW9uIHJhdGhlciB0aGFuIHN0bXQgYXMgYSBwYXJhbS4KCShhZGRfY2FsbF9jbG9iYmVyX29wcywgYWRkX2NhbGxfcmVhZF9vcHMpOiBVc2UgdGhlIGNhbGwgb3BlcmFuZCBjYWNoZQoJaWYgaXQgaXMgdmFsaWQsIG90aGVyaXNlIGZpbGwgdGhlIGNhY2hlLgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5oIChzc2FfY2xvYmJlcmVkX2NhY2hlX3ZhbGlkKTogRGVjbGFyZSBleHRlcm4uCgkqIHRyZWUtZmxvdy5oIChzdHJ1Y3QgdmFyX2Fubl9kKTogQWRkIGluX3Z1c2VfbGlzdCBhbmQKCWluX3ZfbWF5X2RlZl9saXN0IGJpdHMuCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGNsZWFudXBfdl9tYXlfZGVmcyk6IE5ldy4gIENsZWFyIHRoZQoJaW5fbGlzdCBiaXRzIGZvciB0aGUgdl9tYXlfZGVmIGVsZW1lbnRzIGFuZCBlbXB0eSB0aGUgb3BlcmFuZAoJYnVpbGQgYXJyYXkKCShmaW5hbGl6ZV9zc2FfdnVzZXMpOiBVc2UgY2xlYW51cF92X21heV9kZWZzIGFuZCByZW1vdmUgcmVkdW5kYW50CglWVVNFUyBieSBjaGVja2luZyB0aGUgaW5fdl9tYXlfZGVmX2xpc3QgYml0LgoJKGFwcGVuZF92X21heV9kZWYsIGFwcGVuZF92dXNlKTogVXNlIHRoZSBpbl9saXN0IGJpdCByYXRoZXIgdGhhbgoJc2Nhbm5pbmcgdGhlIGFycmF5IGZvciBkdXBsaWNhdGVzLgoKMjAwNC0xMS0yNSAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX3Nob3J0X2Rpc3BsYWNlbWVudCk6IFVOU1BFQ19HT1ROVFBPRkYKCWRpc3BsYWNlbWVudHMgYXJlIG5vdCBzaG9ydC4KCjIwMDQtMTEtMjUgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAobGVnaXRpbWl6ZV9waWNfYWRkcmVzcyk6IFVzZSBzMzkwX2xvYWRfYWRkcmVzcwoJdG8gbG9hZCBhZGRyZXNzZXMuCgoyMDA0LTExLTI1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xODAwMQoJKiBjLWNvbW1vbi5oIChsdmFsdWVfdXNlKTogTW92ZSBoZXJlIGZyb20gYy1jdHlwZWNrLmMuCgkobHZhbHVlX29yX2Vsc2UpOiBEZWNsYXJlLgoJKiBjLWNvbW1vbi5jIChsdmFsdWVfb3JfZWxzZSk6IE1vdmUgaGVyZSBmcm9tIGMtdHlwZWNrLmMuCgkqIGMtdHlwZWNrLmMgKGx2YWx1ZV91c2UpOiBSZW1vdmUuCgkobHZhbHVlX29yX2Vsc2UpOiBSZW1vdmUuCgoJUFIgYysrLzE4NTU2CgkqIHRvcGxldi5jIChjaGVja19nbG9iYWxfZGVjbGFyYXRpb25zKTogU2V0IERFQ0xfSUdOT1JFRF9QIG9uCgl1bmVtaXR0ZWQgdmFyaWFibGVzIHdpdGggc3RhdGljIHN0b3JhZ2UgZHVyYXRpb24uCgoyMDA0LTExLTI1ICBHZXJhbGQgUGZlaWZlciAgPGdlcmFsZEBwZmVpZmVyLmNvbT4KCgkqIHRyZWUtY2ZnLmMgKHRyZWVfdmVyaWZ5X2Zsb3dfaW5mbyk6IERvIG5vdCB0ZXJtaW5hdGUgZXJyb3IoKQoJbWVzc2FnZSB3aXRoIFxuLgoKMjAwNC0xMS0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvYWx0aXZlYy5tZCAoVklzaG9ydCk6IE5ldyBtb2RlIG1hY3JvLgoJKGFsdGl2ZWNfdmFkZHVicywgYWx0aXZlY192YWRkdWhzLCBhbHRpdmVjX3ZhZGR1d3MpOiBSZXBsYWNlCgl3aXRoIC4uLgoJKGFsdGl2ZWNfdmFkZHU8VklfY2hhcj5zKTogLi4uIHRoaXMuCgkoYWx0aXZlY192YWRkc2JzLCBhbHRpdmVjX3ZhZGRzaHMsIGFsdGl2ZWNfdmFkZHN3cyk6IFJlcGxhY2UKCXdpdGggLi4uCgkoYWx0aXZlY192YWRkczxWSV9jaGFyPnMpOiAuLi4gdGhpcy4KCShhbHRpdmVjX3ZzdWJ1YnMsIGFsdGl2ZWNfdnN1YnVocywgYWx0aXZlY192c3VidXdzKTogUmVwbGFjZQoJd2l0aCAuLi4KCShhbHRpdmVjX3ZzdWJ1PFZJX2NoYXI+cyk6IC4uLiB0aGlzLgoJKGFsdGl2ZWNfdnN1YnNicywgYWx0aXZlY192c3Vic2hzLCBhbHRpdmVjX3ZzdWJzd3MpOiBSZXBsYWNlCgl3aXRoIC4uLgoJKGFsdGl2ZWNfdnN1YnM8VklfY2hhcj5zKTogLi4uIHRoaXMuCgkoYWx0aXZlY192YXZndWIsIGFsdGl2ZWNfdmF2Z3VoLCBhbHRpdmVjX3Zhdmd1dyk6IFJlcGxhY2UKCXdpdGggLi4uCgkoYWx0aXZlY192YXZndTxWSV9jaGFyPik6IC4uLiB0aGlzLgoJKGFsdGl2ZWNfdmF2Z3NiLCBhbHRpdmVjX3ZhdmdzaCwgYWx0aXZlY192YXZnc3cpOiBSZXBsYWNlCgl3aXRoIC4uLgoJKGFsdGl2ZWNfdmF2Z3M8VklfY2hhcj4pOiAuLi4gdGhpcy4KCShhbHRpdmVjX3Ztc3VtdWJtLCBhbHRpdmVjX3Ztc3VtdWhtKTogUmVwbGFjZSB3aXRoIC4uLgoJKGFsdGl2ZWNfdm1zdW11PFZJX2NoYXI+bSk6IC4uLiB0aGlzLgoJKGFsdGl2ZWNfdm1zdW1tYm0sIGFsdGl2ZWNfdm1zdW1taG0pOiBSZXBsYWNlCgl3aXRoIC4uLgoJKGFsdGl2ZWNfdm1zdW1tPFZJX2NoYXI+bSk6IC4uLiB0aGlzLgoJKGFsdGl2ZWNfdmFuZGMpOiBSZW1vdmUuCgkoKmFuZGM8bW9kZT4zKTogUmVuYW1lZCB0byAuLi4KCShhbmRjPG1vZGU+Myk6IC4uLiBoZXJlLiBTd2FwIG9wZXJhbmQgMSBhbmQgMiBudW1iZXJpbmcuCgkoYWx0aXZlY192cmxiLCBhbHRpdmVjX3ZybGgsIGFsdGl2ZWNfdnJsdyk6IFJlcGxhY2UKCXdpdGggLi4uCgkoYWx0aXZlY192cmw8VklfY2hhcj4pOiAuLi4gdGhpcy4KCShhbHRpdmVjX3ZzbGIsIGFsdGl2ZWNfdnNsaCwgYWx0aXZlY192c2x3KTogUmVwbGFjZQoJd2l0aCAuLi4KCShhbHRpdmVjX3ZzbDxWSV9jaGFyPik6IC4uLiB0aGlzLgoJKGFsdGl2ZWNfdnNyYiwgYWx0aXZlY192c3JoLCBhbHRpdmVjX3ZzcncpOiBSZXBsYWNlCgl3aXRoIC4uLgoJKGFsdGl2ZWNfdnNyPFZJX2NoYXI+KTogLi4uIHRoaXMuCgkoYWx0aXZlY192c3JhYiwgYWx0aXZlY192c3JhaCwgYWx0aXZlY192c3Jhdyk6IFJlcGxhY2UKCXdpdGggLi4uCgkoYWx0aXZlY192c3JhPFZJX2NoYXI+KTogLi4uIHRoaXMuCgkoYWx0aXZlY192c3VtNHNicywgYWx0aXZlY192c3VtNHNocyk6IFJlcGxhY2Ugd2l0aCAuLi4KCShhbHRpdmVjX3ZzdW00czxWSV9jaGFyPnMpOiAuLi4gdGhpcy4KCShhbHRpdmVjX3ZwZXJtXzRzaSwgYWx0aXZlY192cGVybV84aGksIGFsdGl2ZWNfdnBlcm1fMTZxaSk6IFJlcGxhY2UKCXdpdGggLi4uCgkoYWx0aXZlY192cGVybV88bW9kZT4pOiAuLi4gdGhpcy4KCShhbHRpdmVjX3ZzZWxfNHNmKTogUmVuYW1lIHRvIC4uLgoJKGFsdGl2ZWNfdnNlbF92NHNmKTogLi4uIGhlcmUuCgkoYWx0aXZlY192c2VsXzRzaSwgYWx0aXZlY192c2VsXzhoaSwgYWx0aXZlY192c2VsXzE2cWkpOiBSZXBsYWNlCgl3aXRoIC4uLgoJKGFsdGl2ZWNfdnNlbF88bW9kZT4pOiAuLi4gdGhpcy4KCShhbHRpdmVjX3ZzbGRvaV80c2ksIGFsdGl2ZWNfdnNsZG9pXzhoaSwKCWFsdGl2ZWNfdnNsZG9pXzE2cWkpOiBSZW5hbWUgdG8gLi4uCgkoYWx0aXZlY192c2xkb2lfdjRzaSwgYWx0aXZlY192c2xkb2lfdjhoaSwKCWFsdGl2ZWNfdnNsZG9pX3YxNnFpKTogLi4uIGhlcmUuCgkoYWx0aXZlY192c2xkb2lfNHNmKTogUmVuYW1lIHRvIC4uLgoJKGFsdGl2ZWNfdnNsZG9pX3Y0c2YpOiAuLi4gaGVyZS4KCShhbHRpdmVjX3ByZWRpY2F0ZV92NHNpLCBhbHRpdmVjX3ByZWRpY2F0ZV92OGhpLAoJYWx0aXZlY19wcmVkaWNhdGVfdjE2cWkpOiBSZXBsYWNlIHdpdGggLi4uCgkoYWx0aXZlY19wcmVkaWNhdGVfPG1vZGU+KTogLi4uIHRoaXMuCgkoYWx0aXZlY19sdmVieCwgYWx0aXZlY19sdmVoeCwgYWx0aXZlY19sdmV3eCk6IFJlcGxhY2UKCXdpdGggLi4uCgkoYWx0aXZlY19sdmU8VklfY2hhcj54KTogLi4uIHRoaXMuCgkoYWx0aXZlY19zdHZlYngsIGFsdGl2ZWNfc3R2ZWh4LCBhbHRpdmVjX3N0dmV3eCk6IFJlcGxhY2UKCXdpdGggLi4uCgkoYWx0aXZlY19zdHZlPFZJX2NoYXI+eCk6IC4uLiB0aGlzLgoJKGFic3YxNnFpMiwgYWJzdjhoaTIsIGFic3Y0c2kyKTogUmVwbGFjZQoJd2l0aCAuLi4KCShhYnM8bW9kZT4yKTogLi4uIHRoaXMuCgkoYWx0aXZlY19hYnNzX3YxNnFpLCBhbHRpdmVjX2Fic3NfdjhoaSwgYWx0aXZlY19hYnNzX3Y0c2kpOiBSZXBsYWNlCgl3aXRoIC4uLgoJKGFsdGl2ZWNfYWJzc188bW9kZT4pOiAuLi4gdGhpcy4KCSh2ZWNfcmVhbGlnbl9sb2FkX3YxNnFpLCB2ZWNfcmVhbGlnbl9sb2FkX3Y4aGksCgl2ZWNfcmVhbGlnbl9sb2FkX3Y0c2kpOiBSZXBsYWNlIHdpdGggLi4uCgkodmVjX3JlYWxpZ25fbG9hZF88bW9kZT4pOiAuLi4gdGhpcy4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAoYmRlc2NfM2FyZywgYmRlc2NfMmFyZyk6IFVwZGF0ZSB0d2Vha2VkCglpbnNuIG5hbWVzLgoJKHJzNjAwMF9leHBhbmRfdGVybm9wX2J1aWx0aW4pOiBMaWtld2lzZS4KCjIwMDQtMTEtMjUgIEFuZHJldyBIYWxleSAgPGFwaEByZWRoYXQuY29tPgoKCSogZ2NjLmMgKHByb2Nlc3NfY29tbWFuZCk6IERvbid0IHN1cHBseSAtdiB0byBsaW5rZXIuCgoyMDA0LTExLTI1ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLmggKFNVQlRBUkdFVF9PVkVSUklERV9PUFRJT05TKTogVXNlICVxcwoJaW5zdGVhZCBvZiBgJXMnIGluIGRpYWdub3N0aWMuCgoyMDA0LTExLTI1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogYmFzaWMtYmxvY2suaCAoT0JTVEFDS19BTExPQ19SRUdfU0VUKTogQWRqdXN0LgoJKEZSRUVfUkVHX1NFVCk6IEFkanVzdC4KCSogYml0bWFwLmMgKGJpdG1hcF9vYnN0YWNrX2ZyZWUpOiBDb3BlIHdpdGggTlVMTCBiaXRtYXAuCgkqIGJpdG1hcC5oIChCSVRNQVBfT0JTVEFDS19BTExPQyk6IFJlbmFtZSB0byAuLi4KCShCSVRNQVBfQUxMT0MpOiAuLi4gaGVyZS4KCShCSVRNQVBfT0JTVEFDS19GUkVFKTogUmVuYW1lIHRvIC4uLgoJKEJJVE1BUF9GUkVFKTogRG9uJ3QgY2hlY2sgZm9yIE5VTEwgYml0bWFwIGhlcmUuCgkqIHRyZWUtc3NhLXByZS5jICh2YWx1ZV9pbnNlcnRfaW50b19zZXRfYml0bWFwLAoJYml0bWFwX3NldF9uZXcpOiBVc2UgbmV3IG5hbWVzLgoKCSogYnQtbG9hZC5jIChtaWdyYXRlX2J0cl9kZWZzKTogUmVtb3ZlIHVubmVlZGVkIE5VTEwgY2hlY2suCgkqIGRmLmMgKGRmX2ZyZWUpOiBMaWtld2lzZS4KCSogcmEtYnVpbGQuYyAocmFfYnVpbGRfZnJlZSwgcmFfYnVpbGRfZnJlZV9hbGwpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAoc2V0X3VzZV9pdl9jb3N0KTogTGlrZXdpc2UuCgoJKiBiYXNpYy1ibG9jay5oIChPQlNUQUNLX0FMTE9DX1JFR19TRVQpOiBSZW5hbWUgdG8gLi4uCgkoQUxMT0NfUkVHX1NFVCk6IC4uLiBoZXJlLgoJKEZSRUVfUkVHX1NFVCk6IEFkanVzdC4KCShYTUFMTE9DX1JFR19TRVQsIFhGUkVFX1JFR19TRVQpOiBSZW1vdmUuCgkqIGJiLXJlb3JkZXIuYyAoZml4X2Nyb3NzaW5nX2NvbmRpdGlvbmFsX2JyYW5jaGVzKTogQWRqdXN0LgoJKiBjZmdsYXlvdXQuYyAoY2ZnX2xheW91dF9kdXBsaWNhdGVfYmIpOiBBZGp1c3QuCgkqIGNmZ3J0bC5jIChydGxfc3BsaXRfYmxvY2ssIHJ0bF9zcGxpdF9lZGdlLAoJc2FmZV9pbnNlcnRfaW5zbl9vbl9lZGdlLCBjZmdfbGF5b3V0X3NwbGl0X2VkZ2UpOiBBZGp1c3QuCgkqIGZsb3cuYyAodXBkYXRlX2xpZmVfaW5mbywgY2FsY3VsYXRlX2dsb2JhbF9yZWdzX2xpdmUsCglhbGxvY2F0ZV9iYl9saWZlX2RhdGEsIGluaXRfcHJvcGFnYXRlX2Jsb2NrX2luZm8pOiBBZGp1c3QuCgkqIGdsb2JhbC5jIChidWlsZF9pbnNuX2NoYWluKTogQWRqdXN0LgoJKiBpZmN2dC5jIChkZWFkX29yX3ByZWRpY2FibGUpOiBBZGp1c3QuCgkqIGxvb3AtaXYuYyAoc2ltcGxpZnlfdXNpbmdfaW5pdGlhbF92YWx1ZXMpOiBBZGp1c3QuCgkqIHJlY29nLmMgKHBlZXBob2xlMl9vcHRpbWl6ZSk6IEFkanVzdC4KCSogc2NoZWQtZGVwcy5jIChpbml0X2RlcHNfZ2xvYmFsKTogQWRqdXN0LgoKMjAwNC0xMS0yNSAgUmFsZiBDb3JzZXBpdXMgPHJhbGYuY29yc2VwaXVzQHJ0ZW1zLm9yZz4KCgkqIGNvbmZpZy5nY2MgKGF2ci0qLXJ0ZW1zKik6IEZpeCB0eXBvLgoKMjAwNC0xMS0yNSAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN0LmNvbT4KCgkqIHNoLmMgKHNoX291dHB1dF9taV90aHVuayk6IERvIG5vdCBjYWxsIHJlZ3NldF9yZWxlYXNlX21lbW9yeS4KCjIwMDQtMTEtMjQgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1hbGlhcy5jIChjb21wdXRlX2Zsb3dfaW5zZW5zaXRpdmVfYWxpYXNpbmcpOiBSZWR1Y2UKCXRoZSBudW1iZXIgb2YgcXVlcmllcyB0byByYW5kb20gZWxlbWVudHMgaW4gdGhlIGFpLT53cml0dGVuX3ZhcnMKCWJpdG1hcC4KCjIwMDQtMTEtMjQgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChvdmVycmlkZV9vcHRpb25zKTogRGlzYWJsZSB4ODcgZmFuY3kgbWF0aAoJaW50cmluc2ljcyBpZiAtbWZwbWF0aD0gZG9lc24ndCBpbmNsdWRlIDM4NyAoZGVmYXVsdCBvbiB4ODZfNjQpLgoKMjAwNC0xMS0yNCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBjb25maWd1cmUuYWM6IFR3ZWFrIHRlc3QgZm9yIEhBVkVfREVDTF9MREdFVE5BTUUgdG8gYXZvaWQgYQoJc3lzdGVtIGhlYWRlciBjb25mbGljdCBvbiBBSVggNS4yLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA0LTExLTI0ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1vdXRvZi1zc2EuYyAoY29hbGVzY2VfYWJub3JtYWxfZWRnZXMpOiBVc2UgZS0+ZGVzdF9pZHgKCWluc3RlYWQgb2YgY2FsbGluZyBwaGlfYXJnX2Zyb21fZWRnZS4KCgkqIHRyZWUtcGhpbm9kZXMuYyAocmVtb3ZlX3BoaV9hcmdzKTogUmVwbGFjZSBwaGlfYXJnX2Zyb21fZWRnZQoJd2l0aCBlLT5kZXN0X2lkeC4KCjIwMDQtMTEtMjQgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5oIChBU01fT1VUUFVUX0RXQVJGX0FERFJfQ09OU1QpOiBSZW1vdmUuCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaTM4Nl9kd2FyZl9vdXRwdXRfYWRkcl9jb25zdCk6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni9pMzg2LXByb3Rvcy5oIChpMzg2X2R3YXJmX291dHB1dF9hZGRyX2NvbnN0KToKCUxpa2V3aXNlLgoKMjAwNC0xMS0yNCAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIHRyZWUtc3JhLmMgKHNyYV93YWxrX21vZGlmeV9leHByKTogSGFuZGxlIFJIUyBmaXJzdCwgdGhlbiBMSFMuCgoJKiB0cmVlLWlubGluZS5jIChjb3B5X2JvZHlfcik6IEV4cGxpY2l0bHkgY29weSBhIGNvbnN0YW50IGlmIHRoZQoJdHlwZSB3aWxsIGJlIHJlbWFwcGVkLgoKMjAwNC0xMS0yNCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogYy1vcHRzLmMgKGNfY29tbW9uX3Bvc3Rfb3B0aW9ucyk6IERvbid0IGNsZWFyCglmbGFnX2lubGluZV9mdW5jdGlvbnMuCgkqIGRvanVtcC5jIChjbGVhcl9wZW5kaW5nX3N0YWNrX2FkanVzdCk6IFJlbW92ZSBjaGVjayBvbgoJZmxhZ19pbmxpbmVfZnVuY3Rpb25zLCBpdCdzIGFsd2F5cyB0cnVlLgoJKiBjb25maWcvYWxwaGEvYWxwaGEubWQgKG1vdmRpX2VyX21heWJlX2cpOiBSZW1vdmUgc3BsaXR0ZXIKCXRoYXQgY2FuIG5ldmVyIHRyaWdnZXIuCgkqIGNvbmZpZy9jNHgvYzR4LmggKFRBUkdFVF9DUFVfQ1BQX0JVSUxUSU5TKTogRG9uJ3QgbG9vayBhdAoJZmxhZ19pbmxpbmVfdHJlZXMsIG5vdyB0aGF0IGZsYWdfaW5saW5lX2Z1bmN0aW9ucyBpcyBuZXZlcgoJY2xlYXJlZC4KCSogY29uZmlnL3BkcDExL3BkcDExLmggKE9QVElNSVpBVElPTl9PUFRJT05TKTogRG9uJ3Qgc2V0CglmbGFnX2lubGluZV9mdW5jdGlvbnMgYXQgb3B0aW1pemF0aW9uIGxldmVscyBncmVhdGVyIHRoYW4KCW9yIGVxdWFsIHRvIDMuICBUaGlzIGlzIGFscmVhZHkgZG9uZSBieSBkZWZhdWx0LgoKMjAwNC0xMS0yNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtb3V0b2Ytc3NhLmMgKGVsaW1pbmF0ZV9idWlsZCk6IFVzZSBnLT5lLT5kZXN0X2lkeAoJaW5zdGVhZCB0byBmaW5kIHRoZSBQSEkgYXJndW1lbnQuICBEbyBub3QgdGFrZSBJIGFzIGFuCglhcmd1bWVudC4KCShlbGltaW5hdGVfcGhpKTogQWRqdXN0IHRoZSBjYWxsIHRvIGVsaW1pbmF0ZV9idWlsZC4gIERvIG5vdAoJdGFrZSBJIGFzIGFuIGFyZ3VtZW50LgoJKHJld3JpdGVfdHJlZXMpOiBBZGp1c3QgdGhlIGNhbGwgdG8gZWxpbWluYXRlX3BoaS4KCjIwMDQtMTEtMjQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIG9wdGFicy5oIChmb3JjZV9leHBhbmRfYmlub3ApOiBEZWNsYXJlLgoJKiBvcHRhYnMuYyAoZm9yY2VfZXhwYW5kX2Jpbm9wKTogRXhwb3J0LgoJKiBzdG10LmMgKHNoaWZ0X3JldHVybl92YWx1ZSk6IERlbGV0ZS4KCShleHBhbmRfcmV0dXJuKTogRG9uJ3QgY2FsbCBpdC4KCSogZXhwci5oIChzaGlmdF9yZXR1cm5fdmFsdWUpOiBEZWNsYXJlLgoJKiBjYWxscy5jIChzaGlmdF9yZXR1cm5lZF92YWx1ZSk6IERlbGV0ZSBpbiBmYXZvciBvZi4uLgoJKHNoaWZ0X3JldHVybl92YWx1ZSk6IC4uLnRoaXMgbmV3IGZ1bmN0aW9uLiAgTGVhdmUgdGhlIGNhbGxlciB0byBjaGVjawoJZm9yIG5vbi1CTEttb2RlIHZhbHVlcyBwYXNzZWQgaW4gdGhlIG1zYiBvZiBhIHJlZ2lzdGVyLiAgVGFrZSBzYWlkIG1vZGUKCWFuZCBhIHNoaWZ0IGRpcmVjdGlvbiBhcyBhcmd1bWVudC4gIE9wZXJhdGUgb24gdGhlIGhhcmQgZnVuY3Rpb24gdmFsdWUsCglub3QgYSBwc2V1ZG8uCgkoZXhwYW5kX2NhbGwpOiBBZGp1c3QgYWNjb3JkaW5nbHkuCgkqIGZ1bmN0aW9uLmMgKGV4cGFuZF9mdW5jdGlvbl9zdGFydCk6IElmIGEgbm9uLUJMS21vZGUgcmV0dXJuIHZhbHVlCglpcyBwYWRkZWQgYXQgdGhlIGxhc3Qgc2lnbmlmaWNhbnQgZW5kIG9mIHRoZSByZXR1cm4gcmVnaXN0ZXIsIHVzZSB0aGUKCXJldHVybiB2YWx1ZSdzIG5hdHVyYWwgbW9kZSBmb3IgdGhlIERFQ0xfUkVTVUxULCBub3QgdGhlIG1vZGUgb2YgdGhlCglwYWRkZWQgcmVnaXN0ZXIuCgkoZXhwYW5kX2Z1bmN0aW9uX2VuZCk6IFNoaWZ0IHRoZSBzYW1lIHNvcnQgb2YgcmV0dXJuIHZhbHVlcyBsZWZ0IGJ5Cgl0aGUgYXBwcm9wcmlhdGUgYW1vdW50LgoKMjAwNC0xMS0yNCAgTWF0dCBBdXN0ZXJuICA8YXVzdGVybkBhcHBsZS5jb20+CgoJKiByZWNvZy5jIChyZWNvZ19tZW1vaXplZF8xKTogUmVtb3ZlLgoJKiByZWNvZy5oIChyZWNvZ19tZW1vaXplZF8xKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKHJlY29nX21lbW9pemVkKTogQ2hhbmdlIGZyb20gbWFjcm8gdG8gaW5saW5lIGZ1bmN0aW9uLgoKMjAwNC0xMS0yNCAgRGV2YW5nIFBhdGVsICA8ZHBhdGVsQGFwcGxlLmNvbT4KCglQUi8xODU1NQoJKiBnY2MuaCAoREVGQVVMVF9XT1JEX1NXSVRDSF9UQUtFU19BUkcpOiBBZGQgaXN5c3Jvb3QuCgkqIGNvbmZpZy9kYXJ3aW4tYy5jIChkYXJ3aW5fcmVnaXN0ZXJfZnJhbWV3b3Jrcyk6IFVzZSBzeXNyb290LgoKMjAwNC0xMS0yNCAgRGV2YW5nIFBhdGVsICA8ZHBhdGVsQGFwcGxlLmNvbT4KCgkqIGdjYy5jIChwcm9jZXNzX2NvbW1hbmQpOiBTdXBwbHkgLXYgdG8gbGlua2VyLgoKMjAwNC0xMS0yNCAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoJICAgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfcmV0dXJuX2luX21lbW9yeSk6IEFsbG93IEFsdGl2ZWMKCXZlY3RvciBtb2RlcyB3aXRob3V0IEFMVElWRUNfQUJJLiAgVXNlIEdDQyB2ZWN0b3IgaW5zdGVhZCBvZgoJc3ludGhldGljIHZlY3Rvci4KCShyczYwMDBfcGFzc19ieV9yZWZlcmVuY2UpOiBTcGxpdCBjb25kaXRpb25hbCBpbnRvIHBpZWNlcy4gIFVzZQoJR0NDIHZlY3RvciBpbnN0ZWFkIG9mIHN5bnRoZXRpYyB2ZWN0b3IuCgoyMDA0LTExLTI0ICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiB0cmVlLmMgKHJlY29tcHV0ZV90cmVlX2ludmFyYW50X2Zvcl9hZGRyX2V4cHIpOiBUaGUgYWRkcmVzcyBvZiBhCgl0aHJlYWQtbG9jYWwgdmFyaWFibGUgaXMgaW52YXJpYW50LgoKMjAwNC0xMS0yNCAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIHRyZWUtcHJldHR5LXByaW50LmMgKGR1bXBfZ2VuZXJpY19ub2RlLCBjYXNlIFBPSU5URVJfVFlQRSk6CglIYW5kbGUgVFlQRV9SRUZfQ0FOX0FMSUFTX0FMTC4KCShwcmludF9kZWNsYXJhdGlvbik6IFByaW50IGFycmF5IGRpbWVuc2lvbnMgbGlrZSBkdW1wX2dlbmVyaWNfbm9kZS4KCgkqIGZvbGQtY29uc3QuYyAob3BlcmFuZF9lcXVhbF9wKTogUmVtb3ZlIGtsdWRnZSBhbGxvd2luZyBBUkcwIGFuZAoJQVJHMSB0byBiZSBudWxsOyBpbnN0ZWFkIGRlZmluZSBPUF9TQU1FIGFuZCBPUF9TQU1FX05VTEwgYW5kIHVzZSB0aGVtLgoKMjAwNC0xMS0yNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGJpdG1hcC5jIChJTkxJTkUpOiBEbyBub3QgZGVmaW5lLgoJKGJpdG1hcF9lbGVtX3RvX2ZyZWVsaXN0LCBiaXRtYXBfZWxlbWVudF9mcmVlLAoJYml0bWFwX2VsZW1lbnRfYWxsb2NhdGUsIGJpdG1hcF9jbGVhciwgYml0bWFwX2VsZW1lbnRfemVyb3AsCgliaXRtYXBfZWxlbWVudF9saW5rLCBiaXRtYXBfZmluZF9iaXQpOiBVc2UgaW5saW5lIGtleXdvcmQvbWFjcm8uCgoyMDA0LTExLTI0ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1zc2EtZG9tLmMgKGNwcm9wX2ludG9fc3VjY2Vzc29yX3BoaXMpOiBSZW1vdmUgY29kZSB0bwoJZmluZCB0aGUgaW5kZXggb2YgYSBQSEkgYXJndW1lbnQuICBVc2UgZS0+ZGVzdF9pZHggaW5zdGVhZC4KCVJlcGxhY2UgaGludCB3aXRoIGluZGV4LgoKCSogdHJlZS1zc2EtZG9tLmMgKGNwcm9wX2ludG9fc3VjY2Vzc29yX3BoaXMpOiBSZXBsYWNlIGluZGV4Cgl3aXRoIGluZHguCgoyMDA0LTExLTI0ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWFsaWFzLmMgKG1lcmdlX3BvaW50ZWRfdG9faW5mbyk6IEZpeCBjb21tZW50CglyZWdhcmRpbmcgUFRfTUFMTE9DLgoKMjAwNC0xMS0yNCAgSm9zZXBoIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKG9wdGltaXphdGlvbl9vcHRpb25zKTogVXNlCglTVUJUQVJHRVRfT1BUSU1JWkFUSU9OX09QVElPTlMuCgkqIGNvbmZpZy9pMzg2L3NvbDItMTAuaCAoU1VCVEFSR0VUX09QVElNSVpBVElPTl9PUFRJT05TKTogRGVmaW5lLgoJKFRBUkdFVF9TVUJUQVJHRVRfREVGQVVMVCk6IERvbid0IGluY2x1ZGUKCU1BU0tfT01JVF9MRUFGX0ZSQU1FX1BPSU5URVIuCgoyMDA0LTExLTI0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL2kzODYvc29sMi5oIChYODZfRklMRV9TVEFSVF9WRVJTSU9OX0RJUkVDVElWRSk6CglEZWZpbmUgdG8gZmFsc2UuCgoyMDA0LTExLTI0ICBKb3NlcGggTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9pMzg2L3Qtc29sMi0xMCAoTVVMVElMSUJfRElSTkFNRVMsIE1VTFRJTElCX09TRElSTkFNRVMpOgoJVXNlIGFtZDY0IGluc3RlYWQgb2YgNjQuCgoyMDA0LTExLTI0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoJICAgIEpvc2VwaCBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogY3J0c3R1ZmYuYyAoSU5fTElCR0NDMik6IERlZmluZSBpdC4KCShFSF9GUkFNRV9TRUNUSU9OX0NPTlNUKTogQ2hlY2sgRUhfVEFCTEVTX0NBTl9CRV9SRUFEX09OTFkKCWluc3RlYWQgb2YgSEFWRV9MRF9ST19SV19TRUNUSU9OX01JWElORy4KCSogZGVmYXVsdHMuaCAoRUhfVEFCTEVTX0NBTl9CRV9SRUFEX09OTFkpOiBOZXcgbWFjcm8uCgkqIGR3YXJmMm91dC5jIChuYW1lZF9zZWN0aW9uX2VoX2ZyYW1lX3NlY3Rpb24pOiBDaGVjawoJRUhfVEFCTEVTX0NBTl9CRV9SRUFEX09OTFkuCgkqIGV4Y2VwdC5jIChkZWZhdWx0X2V4Y2VwdGlvbl9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L3NvbDIuaCAoRUhfVEFCTEVTX0NBTl9CRV9SRUFEX09OTFkpOiBEZWZpbmUuCgkqIGRvYy90bS50ZXhpIChFSF9UQUJMRVNfQ0FOX0JFX1JFQURfT05MWSk6IERvY3VtZW50LgoKMjAwNC0xMS0yNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtc3NhLXByZS5jIChwaGlfdHJhbnNsYXRlKTogVXNlIGZpbmRfZWRnZSB0byBmaW5kIHRoZQoJaW5kZXggb2YgYSBQSEkgYXJndW1lbnQuCgoJKiB0cmVlLXNzYS1sb29wLW1hbmlwLmMgKGx2X2FkanVzdF9sb29wX2hlYWRlcl9waGkpOiBVc2UKCWZpbmRfZWRnZSB0byBmaW5kIHRoZSBpbmRleCBvZiBhIFBISSBhcmd1bWVudC4KCjIwMDQtMTEtMjQgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIGV4cHIuYyAoZXhwYW5kX2V4cHJfcmVhbF8xKTogUmVtb3ZlIGNhc2VzIGZvciBFWElUX0JMT0NLX0VYUFIKCWFuZCBMQUJFTEVEX0JMT0NLX0VYUFIuCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2xhYmVsZWRfYmxvY2tfZXhwcik6IFJlbW92ZS4KCShnaW1wbGlmeV9leGl0X2Jsb2NrX2V4cHIpOiBSZW1vdmUuCgkoZ2ltcGxpZnlfZXhwcik6IERvbid0IGNhbGwgdGhlbS4KCSogdHJlZS1pbmxpbmUuYyAoY29weV9ib2R5X3IpOiBEb24ndCBoYW5kbGUgRVhJVF9CTE9DS19FWFBSCglhbmQgTEFCRUxFRF9CTE9DS19FWFBSLgoJKGVzdGltYXRlX251bV9pbnNuc18xKTogTGlrZXdpc2UuCgkod2Fsa190cmVlKTogTGlrZXdpc2UuCgkqIHRyZWUtcHJldHR5LXByaW50LmMgKGR1bXBfZ2VuZXJpY19ub2RlKTogRG9uJ3QgaGFuZGxlCglFWElUX0JMT0NLX0VYUFIgYW5kIExBQkVMRURfQkxPQ0tfRVhQUi4KCSogdHJlZS5kZWYgKEVYSVRfQkxPQ0tfRVhQUik6IE1vdmVkIHRvIGphdmEtdHJlZS5kZWYuCgkoTEFCRUxFRF9CTE9DS19FWFBSKTogTGlrZXdpc2UuCgkqIHRyZWUuaCAoTEFCRUxFRF9CTE9DS19MQUJFTCk6IE1vdmVkIHRvIGphdmEtdHJlZS5oLgoJKExBQkVMRURfQkxPQ0tfQk9EWSk6IExpa2V3aXNlLgoJKEVYSVRfQkxPQ0tfTEFCRUxFRF9CTE9DSyk6IExpa2V3aXNlLgoJKEVYSVRfQkxPQ0tfUkVUVVJOKTogUmVtb3ZlZC4KCjIwMDQtMTEtMjQgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIGNmZ3J0bC5jIChydGxfZGVsZXRlX2Jsb2NrKTogRml4IGNvbW1lbnQuCgkqIGVtaXQtcnRsLmMgKHJlbW92ZV91bm5lY2Vzc2FyeV9ub3Rlcyk6IERpZSBpZiB3ZSBzZWUgQkxPQ0tfQkVHCglvciBCTE9DS19FTkQgaW5zbiBub3Rlcy4KCSoganVtcC5jIChzcXVlZXplX25vdGVzKTogTGlrZXdpc2UuCgkqIGhhaWZhLXNjaGVkLmMgKHJlZW1pdF9ub3Rlcyk6IERvbid0ICJyZS1lbWl0IiBFSF9SRUdJT05fQkVHIGFuZAoJRUhfUkVHSU9OX0VORCBub3Rlcywgd2UgbmV2ZXIgaGF2ZSB0aGVtIHRvIGJlZ2luIHdpdGguCgkqIHNjaGVkLWRlcHMuYyAoc2NoZWRfYW5hbHl6ZV9pbnNuKTogV2hlbiB1cGRhdGluZyBsb29wIG5vdGVzLAoJdmVyaWZ5IHRoYXQgd2UgaGF2ZSBpbmRlZWQgb25seSByZWNvcmRlZCBsb29wIG5vdGVzLgoJKHNjaGVkX2FuYWx5emUpOiBEaWUgaWYgd2Ugc2VlIEVIX1JFR0lPTl9CRUcgb3IgRUhfUkVHSU9OX0VORCBub3Rlcy4KCU9ubHkgcmVjb3JkIGxvb3Agbm90ZXMuCgoJKiBjZmdleHBhbmQuYyAodHJlZV9leHBhbmRfY2ZnKTogRml4IGNvbW1lbnQuCgoJKiBwYXNzZXMuYyAocmVzdF9vZl9jb21waWxhdGlvbik6IERvbid0IGRvIGEgc2Vjb25kIGNhbGwgdG8KCWNvbnZlcnRfZnJvbV9laF9yZWdpb25fcmFuZ2VzIGZyb20gaGVyZSwgaXQncyBhbHJlYWR5IGNhbGxlZAoJZnJvbSBjZmdleHBhbmQuYy4KCSogZXhjZXB0LmMgKHJlc29sdmVfZml4dXBfcmVnaW9ucyk6IFJlbW92ZS4KCShyZW1vdmVfZml4dXBfcmVnaW9ucyk6IFJlbW92ZS4KCShjb252ZXJ0X2Zyb21fZWhfcmVnaW9uX3Jhbmdlc18xKTogUmVtb3ZlLgoJKGNvbnZlcnRfZnJvbV9laF9yZWdpb25fcmFuZ2VzKTogUmVtb3ZlIHRoZSBjYXNlIHdoZXJlIEVIIGlzCglub3QgYWxyZWFkeSBsb3dlcmVkIGF0IHRoZSB0cmVlIGxldmVsLiAgV2UgYWx3YXlzIGxvd2VyIHRoZXJlLgoKMjAwNC0xMS0yNCAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCglQUiBjKysvMTY4ODIKCSogdHJlZS5jIChtYWtlX3ZlY3Rvcl90eXBlKTogTW92ZSBxdWFsaWZpZXJzIHRvIHRoZSB2ZWN0b3IgdHlwZSwKCXVzZSB0aGUgaW5uZXIgdHlwZSdzIG1haW4gdmFyaWFudCBhbmQgYnVpbGQgYSBtYWluIHZhcmlhbnQgZm9yCgl0aGUgdmVjdG9yIHR5cGUgaWYgbmVjZXNzYXJ5LgoJKHR5cGVfaGFzaF9lcSk6IENoZWNrIGEgdmVjdG9yIHR5cGUncyBUWVBFX1ZFQ1RPUl9TVUJQQVJUUy4KCjIwMDQtMTEtMjQgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiB0YXJnZXQuaCAobGF0ZV9ydGxfcHJvbG9ndWVfZXBpbG9ndWUpOiBSZW1vdmUuCgkqIHRhcmdldC1kZWYuaCAoVEFSR0VUX0xBVEVfUlRMX1BST0xPR1VFX0VQSUxPR1VFKTogUmVtb3ZlLgoJKiBzeXN0ZW0uaDogUG9pc29uIFRBUkdFVF9MQVRFX1JUTF9QUk9MT0dVRV9FUElMT0dVRS4KCSogcGFzc2VzLmMgKHJlc3Rfb2ZfaGFuZGxlX3Byb2xvZ3VlX2VwaWxvZ3VlKTogUmVtb3ZlIGFuZCBtb3ZlCglyZW1haW5pbmcgYml0cyB0by4uLgoJKHJlc3Rfb2ZfaGFuZGxlX2Zsb3cyKTogLi4uaGVyZS4KCShyZXN0X29mX2NvbXBpbGF0aW9uKTogUmVtb3ZlIGNhbGwgdG8gcmVzdF9vZl9oYW5kbGVfcHJvbG9ndWVfZXBpbG9ndWUuCgkqIGRvYy90bS50ZXhpIChUQVJHRVRfTEFURV9SVExfUFJPTE9HVUVfRVBJTE9HVUUpOiBSZW1vdmUuCgoyMDA0LTExLTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogaHdpbnQuaCAoSE9TVF9MT05HX0xPTkdfRk9STUFUKTogTmV3IG1hY3JvLiAgVXNlIGl0IHRocm91Z2hvdXQuCgkqIGNvbmZpZy9pMzg2L3htLW1pbmd3MzIuaCAoSE9TVF9MT05HX0xPTkdfRk9STUFUKTogRGVmaW5lLgoJKiBkb2MvaG9zdGNvbmZpZy50ZXhpIChIT1NUX0xPTkdfTE9OR19GT1JNQVQpOiBEb2N1bWVudC4KCjIwMDQtMTEtMjQgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKG92ZXJyaWRlX29wdGlvbnMpOiBNb3ZlCglTVUJUQVJHRVRfT1ZFUlJJREVfT1BUSU9OUyBiZWZvcmUgZGVmYXVsdGluZwoJZmxhZ19vbWl0X2ZyYW1lX3BvaW50ZXIuCgoyMDA0LTExLTIzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogcnRsLmggKHZhbGlkYXRlX3N1YnJlZyk6IERlY2xhcmUuCgkqIGVtaXQtcnRsLmMgKHZhbGlkYXRlX3N1YnJlZyk6IE5ldy4KCShnZW5fcnR4X1NVQlJFRyk6IFVzZSBpdC4KCSogc2ltcGxpZnktcnR4LmMgKHNpbXBsaWZ5X3N1YnJlZyk6IExpa2V3aXNlLgoJKHNpbXBsaWZ5X2dlbl9zdWJyZWcpOiBMaWtld2lzZS4gIFJlbW92ZSBkdXBsaWNhdGUgYXNzZXJ0cy4KCSogZXhwci5jIChlbWl0X21vdmVfaW5zbl8xKTogVGlkeSBjb21wbGV4IG1vdmUgY29kZS4gIFVzZSBtZW1vcnkKCWZhbGxiYWNrIHdoZW5ldmVyIGdlbl9yZWFscGFydC9nZW5faW1hZ3BhcnQgd291bGQgbm90IGJlIGFibGUgdG8KCWNyZWF0ZSBTVUJSRUdzLgoKMjAwNC0xMS0yMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGV4cG1lZC5jIChleHRyYWN0X2JpdF9maWVsZCk6IFVzZSBzaW1wbGlmeV9nZW5fc3VicmVnIGluc3RlYWQgb2YKCWhhcmQtY29kaW5nIGF2b2lkaW5nIGNhbGxzIHRvIGdlbl9ydHhfU1VCUkVHLiAgU3BsaXQgY29tcGxleCByZXR1cm4KCW1vZGVzIHRvIENPTkNBVC4KCjIwMDQtMTEtMjMgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE4NjE4CgkqIHRyZWUtaW50by1zc2EuYyAoREVGX1ZFQ19NQUxMT0NfUChiYXNpY19ibG9jaykpOiBEZWNsYXJlLgoJKGluc2VydF9waGlfbm9kZXNfZm9yKTogQ2hhbmdlIHRoaXJkIGFyZ3VtZW50IHRvIFZFQyhiYXNpY19ibG9jaykuCgkqIHRyZWUtc3NhLWRvbS5jIChhdmFpbF9leHByc19zdGFjayk6IENoYW5nZSB0eXBlIHRvIFZFQyh0cmVlX29uX2hlYXApLgoJVXBkYXRlIGFsbCB1c2Vycy4KCShzdG10c190b19yZXNjYW4pOiBMaWtld2lzZS4KCShjb25zdF9hbmRfY29waWVzX3N0YWNrKTogTGlrZXdpc2UuCgkobm9uemVyb192YXJzX3N0YWNrKTogTGlrZXdpc2UuCgkodnJwX3ZhcmlhYmxlc19zdGFjayk6IExpa2V3aXNlLgoKMjAwNC0xMS0yMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNzZS5jIChyZWNvcmRfanVtcF9jb25kX3N1YnJlZyk6IE5ldy4KCShyZWNvcmRfanVtcF9jb25kKTogVXNlIGl0IGluc3RlYWQgb2YgZ2VuX2xvd3BhcnQuCgoyMDA0LTExLTIzICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgoJICAgIEpvc2VwaCBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL3NvbDItYy5jIChzb2xhcmlzX3JlZ2lzdGVyX3ByYWdtYXMpOiBVc2UKCWNfcmVnaXN0ZXJfcHJhZ21hX3dpdGhfZXhwYW5zaW9uLgoJKiBjb25maWcvc29sMi5oIChIQU5ETEVfUFJBR01BX1BBQ0tfV0lUSF9FWFBBTlNJT04pOiBEZWZpbmUuCgkqIGMtcHJhZ21hLmMgKGNfcmVnaXN0ZXJfcHJhZ21hKTogVXBkYXRlIGNhbGwgdG8KCWNwcF9yZWdpc3Rlcl9wcmFnbWEuCgkoY19yZWdpc3Rlcl9wcmFnbWFfd2l0aF9leHBhbnNpb24pOiBOZXcgZnVuY3Rpb24uCgkoaW5pdF9wcmFnbWEpOiBIb25vciBIQU5ETEVfUFJBR01BX1BBQ0tfV0lUSF9FWFBBTlNJT04uCgkqIGMtcHJhZ21hLmggKGNfcmVnaXN0ZXJfcHJhZ21hX3dpdGhfZXhwYW5zaW9uKTogTmV3IHByb3RvdHlwZS4KCSogZG9jL2V4dGVuZC50ZXhpIChTb2xhcmlzIFByYWdtYXMpOiBNZW50aW9uIG1hY3JvIGV4cGFuc2lvbiBmb3IKCSNwcmFnbWEgYWxpZ24uCgkqIGRvYy90bS50ZXhpIChjX3JlZ2lzdGVyX3ByYWdtYV93aXRoX2V4cGFuc2lvbiwKCUhBTkRMRV9QUkFHTUFfUEFDS19XSVRIX0VYUEFOU0lPTik6IERvY3VtZW50LgoKMjAwNC0xMS0yMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbWJpbmUuYyAoZ2VuX2xvd3BhcnRfZm9yX2NvbWJpbmUpOiBGYWN0b3Igb3V0IG1vZGUgb2YgeCBhcyB3ZWxsCglhcyBtb2RlIHNpemVzIGludG8gbG9jYWwgdGVtcG9yYXJpZXMuICBVbmlmeSBmYWlsdXJlIHBhdGguCgoyMDA0LTExLTIzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZW1pdC1ydGwuYywgcnRsLmggKHN1YnJlZ19oYXJkX3JlZ25vKTogUmVtb3ZlLgoJKiBjYWxsZXItc2F2ZS5jIChtYXJrX3NldF9yZWdzKTogVXNlIHN1YnJlZ19yZWdubyBpbnN0ZWFkLgoJKiBmaW5hbC5jIChhbHRlcl9zdWJyZWcpOiBMaWtld2lzZS4KCSogbG9jYWwtYWxsb2MuYyAocmVnX2lzX2Jvcm4pOiBMaWtld2lzZS4KCjIwMDQtMTEtMjMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBzaW1wbGlmeS1ydHguYyAoc2ltcGxpZnlfc3VicmVnKTogVXNlIHN1YnJlZ19yZWdub19vZmZzZXQgZGlyZWN0bHkKCWluc3RlYWQgb2YgdXNpbmcgYSBTVUJSRUcgdGVtcG9yYXJ5LgoKMjAwNC0xMS0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmMgKHRyZWVfZm9yd2FyZGVyX2Jsb2NrX3ApOiBTcGVlZCB1cCBieSByZW9yZGVyaW5nCgl0d28gY2hlY2tzLgoKMjAwNC0xMS0yMyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGZ1bmN0aW9uLmggKHN0cnVjdCBmdW5jdGlvbik6IFJlbW92ZSBjYWxsc19sb25nam1wLgoJKGN1cnJlbnRfZnVuY3Rpb25fY2FsbHNfbG9uZ2ptcCk6IERlbGV0ZS4KCSogdHJlZS5oIChFQ0ZfTE9OR0pNUCk6IERlbGV0ZS4KCShFQ0ZfU0lCQ0FMTCwgRUNGX1BVUkUsIEVDRl9TUF9ERVBSRVNTRUQsIEVDRl9BTFdBWVNfUkVUVVJOKQoJKEVDRl9MSUJDQUxMX0JMT0NLKTogRXZlcnlib2R5IHNsaWRlIGRvd24gb25lLgoJKEVDRl9DT05TVCwgRUNGX05PUkVUVVJOLCBFQ0ZfU0lCQ0FMTCk6IENsYXJpZnkgY29tbWVudHMuCgkqIGJ1aWx0aW5zLmMgKGV4cGFuZF9idWlsdGluX2xvbmdqbXApOiBEb24ndCBzZXQKCWN1cnJlbnRfZnVuY3Rpb25fY2FsbHNfbG9uZ2ptcC4KCSogY2FsbHMuYyAoc3BlY2lhbF9mdW5jdGlvbl9wKTogTWFyayBsb25nam1wIGFuZCBzaWdsb25nam1wCgl3aXRoIEVDRl9OT1JFVFVSTiwgbm90IEVDRl9MT05HSk1QLgoJKGVtaXRfY2FsbF8xLCBleHBhbmRfY2FsbCwgZW1pdF9saWJyYXJ5X2NhbGxfdmFsdWVfMSk6CglEb24ndCBjaGVjayBmb3IgRUNGX0xPTkdKTVAuCgkqIHRyZWUtY2ZnLmMgKG1ha2VfZXhpdF9lZGdlcywgaXNfY3RybF9hbHRlcmluZ19zdG10KQoJKG5lZWRfZmFrZV9lZGdlX3ApOiBMaWtld2lzZS4KCgkqIGNvbmZpZy9hdnIvYXZyLmgsIGNvbmZpZy9pcDJrL2lwMmsuaDogRG9uJ3QgZGVmaW5lIE5PTl9TQVZJTkdfU0VUSk1QLgoJKiBzeXN0ZW0uaDogUG9pc29uIE5PTl9TQVZJTkdfU0VUSk1QLgoJKiBmdW5jdGlvbi5jICh1c2VfcmVnaXN0ZXJfZm9yX2RlY2wpCgkqIGdjc2UuYyAoY29tcHV0ZV9oYXNoX3RhYmxlX3dvcmssIGNvbXB1dGVfc3RvcmVfdGFibGUpCgkqIHBvc3RyZWxvYWQtZ2NzZS5jIChyZWNvcmRfb3ByX2NoYW5nZXMpCgkqIHJlbG9hZC5jIChmaW5kX2VxdWl2X3JlZykKCSogcmVsb2FkMS5jIChyZWxvYWQpCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9jYW5fdXNlX3JldHVybl9pbnNuX3ApOgoJUmVtb3ZlIGNvZGUgY29uZGl0aW9uYWwgb24gTk9OX1NBVklOR19TRVRKTVAuCgkqIGRvYy90bS50ZXhpOiBEZWxldGUgZG9jdW1lbnRhdGlvbiBvZiBOT05fU0FWSU5HX1NFVEpNUC4KCgkqIGNvbmZpZy9pMzg2L3N5c3YzLmg6IERlbGV0ZSBmaWxlLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfc3ZyM19hc21fb3V0X2NvbnN0cnVjdG9yKTogRGVsZXRlLgoKMjAwNC0xMS0yMyAgRG9yaXQgTmFpc2hsb3MgIDxkb3JpdEBpbC5pYm0uY29tPgoKCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfYW5hbHl6ZV9vcGVyYXRpb25zKTogRG9uJ3QgdmVjdG9yaXplIGlmCgl0aGUgdmVjdG9yaXphdGlvbiBmYWN0b3IgaXMgZ3JlYXRlciB0aGFuIHRoZSBpdGVyYXRpb24gY291bnQuCgkodmVjdF9nZW5fbml0ZXJzX2Zvcl9wcm9sb2dfbG9vcCk6IE5vIG5lZWQgdG8gY2FsY3VsYXRlIG1pbiBpZiB0aGUKCWl0ZXJhdGlvbiBjb3VudCBpcyBrbm93bi4KCgkodmVjdF9idWlsZF9zeW1ib2xfYm91bmQpOiBSZW1vdmVkLiBJdHMgZnVuY3Rpb25hbGl0eSBtb3ZlZCB0bwoJdmVjdF9nZW5lcmF0ZV90bXBzX29uX3ByZWhlYWRlci4KCSh2ZWN0X2dlbmVyYXRlX3RtcHNfb25fcHJlaGVhZGVyKTogTW92ZWQgY29udGVudCBvZgoJdmVjdF9idWlsZF9zeW1ib2xfYm91bmQgaGVyZSBpbnN0ZWFkIG9mIGNhbGxpbmcgaXQuICBDaGFuZ2VkIHNvbWUKCXZhcmlhYmxlcyBuYW1lcy4KCgkodmVjdF9idWlsZF9sb29wX25pdGVycyk6IFdlIGRvbid0IGV4cGVjdCBhIG5ld19iYiB0byBiZSBnZW5lcmF0ZWQgLQoJdXNlIGdjY19hc3NlcnQuCgkodmVjdF9nZW5fbml0ZXJzX2Zvcl9wcm9sb2dfbG9vcCk6IExpa2V3aXNlLgoJKHZlY3RfZ2VuX25pdGVyc19mb3JfcHJvbG9nX2xvbyk6IExpa2V3aXNlLgoKCShzbHBlZWxfbWFrZV9sb29wX2l0ZXJhdGVfbnRpbWVzKTogVXNlIGJ1aWxkTiBpbnN0ZWFkIG9mIGJ1aWxkLgoJKHNscGVlbF9hZGRfbG9vcF9ndWFyZCk6IExpa2V3aXNlLgoJKHNscGVlbF90cmVlX3BlZWxfbG9vcF90b19lZGdlKTogTGlrZXdpc2UuCgkodmVjdF9kb19wZWVsaW5nX2Zvcl9hbGlnbm1lbnQpOiBMaWtld2lzZS4KCgkodmVjdF9nZXRfZmlyc3RfaW5kZXgpOiBNaXNzaW5nIHNwYWNlLgoKMjAwNC0xMS0yMyAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5tZCAoIippb3JkaTMiKTogTWFyayBjb21tdXRhdGl2ZS4KCSgiKmlvcnNpM196YXJjaCIsICIqaW9yc2kzX2VzYSIpOiBMaWtld2lzZS4KCjIwMDQtMTEtMjMgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLXBoaW5vZGUuYyAocmVzaXplX3BoaV9ub2RlKTogQWJvcnQgd2hlbiBMRU4gaXMgc3RyaWN0bHkKCWdyZWF0ZXIgdGhhbiBQSElfQVJHX0NBUEFDSVRZLgoJKHJlc2VydmVfcGhpX2FyZ3NfZm9yX25ld19lZGdlKTogSW5pdGlhbGl6ZSB0aGUgbmV3IFBISQoJYXJndW1lbnQgdG8gTlVMTF9UUkVFLiAgSW5jcmVtZW50IFBISV9OVU1fQVJHUy4KCShhZGRfcGhpX2FyZyk6IEFkZCBhIFBISSBhcmd1bWVudCB0byB0aGUgc2xvdCBnaXZlbiBieQoJRS0+ZGVzdF9pZHguCgkocmVtb3ZlX3BoaV9hcmdfbnVtKTogRG8gbm90IHdyaXRlIHRvIFBISV9BUkdfRURHRS4KCSogdHJlZS1mbG93LWlubGluZSAocGhpX2FyZ19mcm9tX2VkZ2UpOiBSZXR1cm4gRS0+ZGVzdF9pZHguCgkqIHRyZWUtc3NhLmMgKHNzYV9yZWRpcmVjdF9lZGdlKTogQ2hlY2sgZm9yIGEgbWlzc2luZyBQSEkKCWFyZ3VtZW50IGJ5IGxvb2tpbmcgYXQgUEhJX0FSR19ERUYuCgkodmVyaWZ5X3BoaV9hcmdzKTogQ2hlY2sgZm9yIGEgbWlzc2luZyBQSEkgYXJndW1lbnQuICBSZW1vdmUKCXRoZSBjaGVjayBmb3IgZHVwbGljYXRlIFBISSBhcmd1bWVudHMuCgkqIHRyZWUuaCAoUEhJX0FSR19FREdFKTogUmVkZWZpbmUgaW4gdGVybXMgb2YgRURHRV9QUkVELgoJKHBoaV9hcmdfZCk6IFJlbW92ZSBlLgoKCSogdHJlZS1jZmcuYyAodHJlZV90cnlfcmVkaXJlY3RfYnlfcmVwbGFjaW5nX2p1bXApOiBTcGVlZCB1cAoJYnkgcmVzdHJpY3RpbmcgdG8gdGhlIGNhc2Ugd2l0aCB0d28gb3V0Z29pbmcgZWRnZXMuCgoyMDA0LTExLTIzICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsMUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX2JhY2tjaGFpbl9zdHJpbmcpOiBSZW1vdmVkLgoJKHMzOTBfcmV0dXJuX2FkZHJfcnR4LCBzMzkwX2JhY2tfY2hhaW5fcnR4LCBzMzkwX2ZyYW1lX2luZm8pCgkoczM5MF9lbWl0X3Byb2xvZ3VlLCBzMzkwX3ZhX3N0YXJ0LCBzMzkwX2dpbXBsaWZ5X3ZhX2FyZyk6CglDaGFuZ2VkIHVzZXJzIG9mIFRBUkdFVF9CQUNLQ0hBSU4sIFRBUkdFVF9OT19CQUNLQ0hBSU4gYW5kCglUQVJHRVRfS0VSTkVMX0JBQ0tDSEFJTiB0byByZWZsZWN0IHRoZSBuZXcgb3B0aW9ucy4KCSogY29uZmlnL3MzOTAvczM5MC5oIChNQVNLX0JBQ0tDSEFJTiwgTUFTS19QQUNLRURfU1RBQ0spOiBOZXcgbWFjcm9zLgoJKFRBUkdFVF9LRVJORUxfQkFDS0NIQUlOKTogUmVtb3ZlZC4KCShUQVJHRVRfQkFDS0NIQUlOKTogRm9ybWVyIHRyaXBsZSBzdGF0ZSBvcHRpb24gY2hhbmdlIHRvIGEgdGFyZ2V0IGZsYWcuCgkoVEFSR0VUX1BBQ0tFRF9TVEFDSyk6IE5ldyBtYWNyby4KCShUQVJHRVRfU1dJVENIRVMpOiBOZXcgc3dpdGNoZXMgYWRkZWQuCgkoVEFSR0VUX09QVElPTlMpOiAiYmFja2NoYWluIiwgIm5vLWJhY2tjaGFpbiIgYW5kICJrZXJuZWwtYmFja2NoYWluIgoJcmVtb3ZlZC4KCShEWU5BTUlDX0NIQUlOX0FERFJFU1MpOiBVc2UgVEFSR0VUX1BBQ0tFRF9TVEFDSy4KCSogY29uZmlnL3MzOTAvczM5MC5tZCAoImFsbG9jYXRlX3N0YWNrIiwgInJlc3RvcmVfc3RhY2tfYmxvY2siKQoJKCJzYXZlX3N0YWNrX25vbmxvY2FsIiwgInJlc3RvcmVfc3RhY2tfbm9ubG9jYWwiKTogTW9kaWZpZWQgdG8gcmVmbGVjdAoJdGhlIGNoYW5nZSBpbiB0YXJnZXQgc3dpdGNoIHNlbWFudGljcy4KCSogY29uZmlnL3MzOTAvdHBmLmggKFRBUkdFVF9ERUZBVUxUX0JBQ0tDSEFJTik6IFJlbW92ZWQuCgkoVEFSR0VUX0RFRkFVTFQpOiBNQVNLX0JBQ0tDSEFJTiBhZGRlZC4KCSogZG9jL2ludm9rZS50ZXhpOiBBZGRlZCBkb2N1bWVudGF0aW9uIGZvciB0aGUgbmV3L2NoYW5nZWQgb3B0aW9ucy4KCjIwMDQtMTEtMjMgIFVyb3MgQml6amFrICA8dXJvc0Brc3MtbG9rYS5zaT4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE4NjE0CgkqIHNpbXBsaWZ5LXJ0eC5jIChzaW1wbGlmeV9iaW5hcnlfb3BlcmF0aW9uKTogRG8gbm90CglzaW1wbGlmeSBpbm5lciBlbGVtZW50cyBvZiBjb25zdGFudCBhcmd1bWVudHMgb2YKCVZFQ19DT05DQVQgaW5zbi4KCjIwMDQtMTEtMjMgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBndGhyLXNvbGFyaXMuaCAoX19ndGhyZWFkX3JlY3Vyc2l2ZV9tdXRleF9pbml0X2Z1bmN0aW9uKTogVXNlCgkwIGluc3RlYWQgb2YgTlVMTC4KCjIwMDQtMTEtMjMgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLXBoaW5vZGUuYyAobWFrZV9waGlfbm9kZSk6IFVzZSBhIG5ldyB2YXJpYWJsZSwKCWNhcGFjaXR5LCB0byByZWNlaXZlIHRoZSByZXR1cm4gdmFsdWUgb2YgaWRlYWxfcGhpX25vZGVfbGVuLgoKMjAwNC0xMS0yMyAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGd0aHItc29sYXJpcy5oIChfX2d0aHJlYWRfcmVjdXJzaXZlX211dGV4X3QpOiBOZXcgdHlwZS4KCShfX0dUSFJFQURfUkVDVVJTSVZFX01VVEVYX0lOSVRfRlVOQ1RJT04pOiBEZWZpbmUgdG8KCV9fZ3RocmVhZF9yZWN1cnNpdmVfbXV0ZXhfaW5pdF9mdW5jdGlvbi4KCShfX2d0aHJlYWRfa2V5X2NyZWF0ZSk6IFByb3Blcmx5IGNhc3QgLTEuCgkoX19ndGhyZWFkX3JlY3Vyc2l2ZV9tdXRleF9pbml0X2Z1bmN0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKF9fZ3RocmVhZF9yZWN1cnNpdmVfbXV0ZXhfbG9jayk6IFJld3JpdGUuCgkoX19ndGhyZWFkX3JlY3Vyc2l2ZV9tdXRleF90cnlsb2NrKTogTGlrZXdpc2UuCgkoX19ndGhyZWFkX3JlY3Vyc2l2ZV9tdXRleF91bmxvY2spOiBMaWtld2lzZS4KCjIwMDQtMTEtMjMgIFJhbGYgQ29yc2VwaXVzIDxyYWxmLmNvcnNlcGl1c0BydGVtcy5vcmc+CgoJKiBjb25maWcvYzR4L3QtcnRlbXM6IE5ldy4KCSogY29uZmlnLmdjYzogUmVmbGVjdCBoYXZpbmcgYWRkZWQgYzR4L3QtcnRlbXMuCgoyMDA0LTExLTIzICBEb3JpdCBOYWlzaGxvcyA8ZG9yaXRAaWwuaWJtLmNvbT4KCglQUiB0cmVlLW9wdC8xODQwMwoJUFIgdHJlZS1vcHQvMTg1MDUKCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfY3JlYXRlX2RhdGFfcmVmX3B0cik6IFVzZQoJbGFuZ19ob29rcy50eXBlcy50eXBlX2Zvcl9zaXplIGluc3RlYWQgb2YgaW50ZWdlcl90eXBlX25vZGUgZm9yIHRoZQoJdHlwZSBvZiBwdHJfdXBkYXRlLgoKMjAwNC0xMS0yMyAgUmFsZiBDb3JzZXBpdXMgPHJhbGYuY29yc2VwaXVzQHJ0ZW1zLm9yZz4KCgkqIGNvbmZpZy5nY2MgKGg4MzAwLSotcnRlbXMqKTogVXNlIGg4MzAwL3QtcnRlbXMuCgoyMDA0LTExLTIzICBSYWxmIENvcnNlcGl1cyA8cmFsZi5jb3JzZXBpdXNAcnRlbXMub3JnPgoKCSogY29uZmlnL2FybS90LXJ0ZW1zOiBOZXcuCgkqIGNvbmZpZy5nY2M6IFJlZmxlY3QgaGF2aW5nIGFkZGVkIGFybS90LXJ0ZW1zLgoKMjAwNC0xMS0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmMgKHRyZWVfZXhlY3V0ZV9vbl9ncm93aW5nX3ByZWQpOiBOZXcuCgkodHJlZV9jZmdfaG9va3MpOiBBZGQgdHJlZV9leGVjdXRlX29uX2dyb3dpbmdfcHJlZC4KCSogdHJlZS1mbG93Lmg6IEFkZCBhIHByb3RvdHlwZSBmb3IKCXJlc2VydmVfcGhpX2FyZ3NfZm9yX25ld19lZGdlLgoJKiB0cmVlLXBoaW5vZGVzLmMgKHJlc2VydmVfcGhpX2FyZ3NfZm9yX25ld19lZGdlKTogTmV3LgoJKGFkZF9waGlfYXJnKTogRG9uJ3QgcmVzaXplIGEgUEhJIGFycmF5LgoKMjAwNC0xMS0yMyAgUmFsZiBDb3JzZXBpdXMgPHJhbGYuY29yc2VwaXVzQHJ0ZW1zLm9yZz4KCgkqIGNvbmZpZy5nY2M6IEFkZCBhdnItKi1ydGVtcyouCgkqIGNvbmZpZy9hdnIvdC1ydGVtczogTmV3LgoJKiBjb25maWcvYXZyL3J0ZW1zLmg6IE5ldy4KCjIwMDQtMTEtMjIgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogZGYuYyAoZGF0YWZsb3dfc2V0X2Ffb3BfYik6IFJlbW92ZSByZXNsdCBwYXJhbWV0ZXIsIHNpbmNlIGl0J3MKCWFsd2F5cyB0aGUgc2FtZSBhcyBvcDEuICBVc2UgYml0bWFwX2lvcl9pbnRvIGFuZCBiaXRtYXBfYW5kX2ludG8uCglBZGQgY29tbWVudCB0byBmdW5jdGlvbi4KCjIwMDQtMTEtMjIgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJUFIgcGNoLzE0OTQwCgkqIGNvbmZpZy9ob3N0LWxpbnV4LmMgKFRSWV9FTVBUWV9WTV9TUEFDRSk6IERlZmluZSBmb3IgX19ocHBhX18uCgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNDgzOAoJKiBlbWl0LXJ0bC5jIChnZXRfZmlyc3Rfbm9ubm90ZV9pbnNuKTogRG9uJ3QgYXNzdW1lIGZpcnN0IGluc24gaXMgYQoJbm90ZS4KCShnZXRfbGFzdF9ub25ub3RlX2luc24pOiBEb24ndCBhc3N1bWUgbGFzdCBpbnNuIGlzIGEgbm90ZS4KCjIwMDQtMTEtMjIgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogZm9sZC1jb25zdC5jIChub25kZXN0cnVjdGl2ZV9mb2xkX2JpbmFyeV90b19jb25zdGFudCk6IFJlbmFtZQoJdG8gZm9sZF9iaW5hcnlfdG9fY29uc3RhbnQuCgkobm9uZGVzdHJ1Y3RpdmVfZm9sZF91bmFyeV90b19jb25zdGFudCk6IExpa2V3aXNlLCByZW5hbWUgdG8KCWZvbGRfdW5hcnlfdG9fY29uc3RhbnQuCgkoZm9sZF9yZWxhdGlvbmFsX2hpX2xvKTogVXBkYXRlIGNhbGwgdG8gZm9sZF9iaW5hcnlfdG9fY29uc3RhbnQuCgkqIHRyZWUuaCAobm9uZGVzdHJ1Y3RpdmVfZm9sZF9iaW5hcnlfdG9fY29uc3RhbnQpOiBVcGRhdGUgcHJvdG90eXBlLgoJKG5vbmRlc3RydWN0aXZlX2ZvbGRfdW5hcnlfdG9fY29uc3RhbnQpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtY2NwLmMgKGNjcF9mb2xkKTogVXBkYXRlIGNhbGxzIHRvIGZvbGRfdW5hcnlfdG9fY29uc3RhbnQKCWFuZCBmb2xkX2JpbmFyeV90b19jb25zdGFudC4KCSogdHJlZS1zc2EtbG9vcC1uaXRlci5jIChFWEVDX0JJTkFSWSwgRVhFQ19VTkFSWSk6IERlbGV0ZSBtYWNyb3MuCgkoaW52ZXJzZSwgbnVtYmVyX29mX2l0ZXJhdGlvbnNfY29uZCk6IFJlcGxhY2UgdXNlcyBvZiBFWEVDX0JJTkFSWQoJYW5kIEVYRUNfVU5BUlkgd2l0aCBjYWxscyB0byBmb2xkXypuYXJ5X3RvX2NvbnN0YW50LgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChFWEVDX0JJTkFSWSwgRVhFQ19VTkFSWSk6IERlbGV0ZSBtYWNyb3MuCgkoaWR4X2ZpbmRfc3RlcCk6IFJlcGxhY2UgdXNlcyBvZiBFWEVDX0JJTkFSWSB3aXRoIGNhbGxzIHRvCglmb2xkX2JpbmFyeV90b19jb25zdGFudC4KCjIwMDQtMTEtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBzYml0bWFwLmMgKHNiaXRtYXBfdW5pb25fb2ZfcHJlZHMpOiBSZW1vdmUgcmVkdW5kYW50Cglpbml0aWFsaXNhdGlvbiBvZiAnZScuCgoyMDA0LTExLTIyICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuaCAoVEFSR0VUX1VTRV9GQU5DWV9NQVRIXzM4Nyk6IE5ldyBtYWNyby4KCSogY29uZmlnL2kzODYvaTM4Ni5jIChvdmVycmlkZV9vcHRpb25zKTogIFNldCBNQVNLX05PX0ZBTkNZX01BVEhfMzg3CglhdXRvbWF0aWNhbGx5IGZvciB0YXJnZXRzIHdpdGhvdXQgVEFSR0VUXzgwMzg3LgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kIChzcXJ0c2YyLCBzcXJ0c2YyXzEsIHNxcnRzZjJfaTM4Nywgc3FydGRmMiwKCXNxcnRkZjJfMSwgc3FydGRmMl9pMzg3LCAqc3FydGV4dGVuZHNmZGYyLCBzcXJ0eGYyLAoJKnNxcnRleHRlbmRkZnhmMiwgKnNxcnRleHRlbmRzZnhmMiwgZnByZW14ZjQsIGZtb2RzZjMsIGZtb2RkZjMsCglmbW9keGYzLCBmcHJlbTF4ZjQsIGRyZW1zZjMsIGRyZW1kZjMsIGRyZW14ZjMsICpzaW5kZjIsICpzaW5zZjIsCgkqc2luZXh0ZW5kc2ZkZjIsICpzaW54ZjIsICpjb3NkZjIsICpjb3NzZjIsICpjb3NleHRlbmRzZmRmMiwKCSpjb3N4ZjIsIHNpbmNvc2RmMywgc2luY29zc2YzLCAqc2luY29zZXh0ZW5kc2ZkZjMsIHNpbmNvc3hmMywKCSp0YW5kZjNfMSwgdGFuZGYyLCAqdGFuc2YzXzEsIHRhbnNmMiwgKnRhbnhmM18xLCB0YW54ZjIsCglhdGFuMmRmM18xLCBhdGFuMmRmMywgYXRhbmRmMiwgYXRhbjJzZjNfMSwgYXRhbjJzZjMsIGF0YW5zZjIsCglhdGFuMnhmM18xLCBhdGFuMnhmMywgYXRhbnhmMiwgYXNpbmRmMiwgYXNpbnNmMiwgYXNpbnhmMiwKCWFjb3NkZjIsIGFjb3NzZjIsIGFjb3N4ZjIsIGZ5bDJ4X3hmMywgbG9nc2YyLCBsb2dkZjIsIGxvZ3hmMiwKCWxvZzEwc2YyLCBsb2cxMGRmMiwgbG9nMTB4ZjIsIGxvZzJzZjIsIGxvZzJkZjIsIGxvZzJ4ZjIsCglmeWwyeHAxX3hmMywgbG9nMXBzZjIsIGxvZzFwZGYyLCBsb2cxcHhmMiwgKmZ4dHJhY3R4ZjMsIGxvZ2JzZjIsCglsb2diZGYyLCBsb2dieGYyLCBpbG9nYnNpMiwgKmYyeG0xeGYyLCAqZnNjYWxleGY0LCBleHBzZjIsCglleHBkZjIsIGV4cHhmMiwgZXhwMTBzZjIsIGV4cDEwZGYyLCBleHAxMHhmMiwgZXhwMnNmMiwgZXhwMmRmMiwKCWV4cDJ4ZjIsIGV4cG0xZGYyLCBleHBtMXNmMiwgZXhwbTF4ZjIsIGZybmRpbnR4ZjIsIHJpbnRkZjIsCglyaW50c2YyLCByaW50eGYyLCBmcm5kaW50eGYyX2Zsb29yLCBmbG9vcmRmMiwgZmxvb3JzZjIsCglmbG9vcnhmMiwgZnJuZGludHhmMl9jZWlsLCBjZWlsZGYyLCBjZWlsc2YyLCBjZWlseGYyLAoJZnJuZGludHhmMl90cnVuYywgYnRydW5jZGYyLCBidHJ1bmNzZjIsIGJ0cnVuY3hmMiwKCWZybmRpbnR4ZjJfbWFza19wbSwgbmVhcmJ5aW50ZGYyLCBuZWFyYnlpbnRzZjIsIG5lYXJieWludHhmMik6CglTaW1wbGlmeSBjb25kaXRpb25hbHMgdXNpbmcgVEFSR0VUX1VTRV9GQU5DWV9NQVRIXzM4Ny4KCjIwMDQtMTEtMjIgIERhbGUgSm9oYW5uZXNlbiAgPGRhbGVqQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW4uaCAoSlVNUF9UQUJMRVNfSU5fVEVYVF9TRUNUSU9OKTogIENvbmRpdGlvbmFsaXplCglwcm9wZXJseSBhbmQgY29tbWVudC4KCjIwMDQtMTEtMjIgIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZwoKCSogY29uZmlnL3NwYXJjL3NwYXJjLmM6IEluY2x1ZGUgaW5zbi1jb2Rlcy5oIGFuZCBsYW5naG9va3MuaC4KCShzcGFyY19pbml0X2J1aWx0aW5zKTogTmV3IGZ1bmN0aW9uLgoJKHNwYXJjX2luaXRfdmlzX2J1aWx0aW5zKTogQ3JlYXRlIGJ1aWx0aW4gZnVuY3Rpb25zIGZvciBWSVMKCWluc3RydWN0aW9ucy4KCShzcGFyY19leHBhbmRfYnVpbHRpbik6IEV4cGFuZCBidWlsdGluIGZ1bmN0aW9ucyBmb3IgVklTIGluc3RydWN0aW9ucy4KCShUQVJHRVRfSU5JVF9CVUlMVElOUyk6IERlZmluZSB0byBzcGFyY19pbml0X2J1aWx0aW5zLgoJKFRBUkdFVF9FWFBBTkRfQlVJTFRJTik6IERlZmluZSB0byBzcGFyY19leHBhbmRfYnVpbHRpbi4KCShkZWZfYnVpbHRpbik6IE5ldyBtYWNybyBmb3IgY3JlYXRpbmcgYnVpbHRpbiBmdW5jdGlvbnMuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5tZCAoUCk6IE5ldyBtb2RlIG1hY3JvIGZvciBwb2ludGVyIHR5cGVzLgoJKFVOU1BFQ19GUEFDSzE2LCBVTlNQRUNfRlBBQ0szMiwgVU5TUEVDX0ZQQUNLRklYLCBVTlNQRUNfRkVYUEFORCwKCVVOU1BFQ19GUE1FUkdFLCBVTlNQRUNfTVVMMTZBTCwgVU5TUEVDX01VTDhVTCwgVU5TUEVDX01VTERVTCwKCVVOU1BFQ19BTElHTkRBVEEsIFVOU1BFQ19BTElHTkFERFIsIFVOU1BFQ19QRElTVCk6IE5ldyBjb25zdGFudHMuCgkoZnBhY2sxNl92aXMsIGZwYWNrZml4X3ZpcywgZnBhY2szMl92aXMsIGZleHBhbmRfdmlzLCBmcG1lcmdlX3ZpcywKCWZtdWw4eDE2X3ZpcywgZm11bDh4MTZhdV92aXMsIGZtdWw4eDE2YWxfdmlzLCBmbXVsOHN1eDE2X3ZpcywKCWZtdWw4dWx4MTZfdmlzLCBmbXVsZDhzdXgxNl92aXMsIGZtdWxkOHVseDE2X3ZpcywgcGRpc3RfdmlzLAoJZmFsaWduZGF0YTxWNjQ6bW9kZT5fdmlzLCBhbGlnbmFkZHI8UDptb2RlPl92aXMpOiBOZXcgcGF0dGVybnMuCgoyMDA0LTExLTIyICBEZXZhbmcgUGF0ZWwgIDxkcGF0ZWxAYXBwbGUuY29tPgoKCSogdHJlZS1pZi1jb252LmMgKGNsZWFuX3ByZWRpY2F0ZV9saXN0cyk6IENsZWFuIGFsbCBiYXNpYyBibG9ja3MuCgoyMDA0LTExLTIyICBEZXZhbmcgUGF0ZWwgIDxkcGF0ZWxAYXBwbGUuY29tPgoKCSogdHJlZS1pZi1jb252LmMgKGlmX2NvbnZlcnRhYmxlX3BoaV9wKTogUmVuYW1lIHRvIC4uLgoJKGlmX2NvbnZlcnRpYmxlX3BoaV9wKTogLi4uIG5ldyBuYW1lLgoJKGlmX2NvbnZlcnRhYmxlX21vZGlmeV9leHByX3ApOiBSZW5hbWUgdG8gLi4uCgkoaWZfY29udmVydGlibGVfbW9kaWZ5X2V4cHJfcCk6IC4uLiBuZXcgbmFtZS4KCShpZl9jb252ZXJ0YWJsZV9zdG10X3ApOiBSZW5hbWUgdG8gLi4uCgkoaWZfY29udmVydGlibGVfc3RtdF9wKTogLi4uIG5ldyBuYW1lLgoJKGlmX2NvbnZlcnRhYmxlX2JiX3ApOiBSZW5hbWUgdG8gLi4uCgkoaWZfY29udmVydGlibGVfYmJfcCk6IC4uLiBuZXcgbmFtZS4KCShpZl9jb252ZXJ0YWJsZV9sb29wX3ApOiBSZW5hbWUgdG8gLi4uCgkoaWZfY29udmVydGlibGVfbG9vcF9wKTogLi4uIG5ldyBuYW1lLgoKMjAwNC0xMS0yMiAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiB0YXJnZXQvMTg0NDQKCSogY29uZmlndXJlLmFjICh0aHJlYWRpbmcpOiBBY2NlcHQgJ3Bvc2l4OTUnLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5nY2MgKGlbMzQ1NjddODYtKi1zb2xhcmlzMiopOiBPbiBTb2xhcmlzIHVwIHRvIDIuNiwKCWluY2x1ZGUgc29sMjYuaCBhbmQgZGVmYXVsdCB0byBwb3NpeDk1IHRocmVhZHMgaWYgaGF2ZV9wdGhyZWFkX2guCgkoc3BhcmMtKi1zb2xhcmlzMiopOiBMaWtld2lzZS4KCSogZ3Roci5oOiBJbmNsdWRlIGd0aHItcG9zaXg5NS5oIGlmIF9QVEhSRUFEUzk1IGlzIGRlZmluZWQuCgkqIGd0aHItcG9zaXg5NS5oOiBOZXcgZmlsZS4KCSogY29uZmlnL3NvbDI2Lmg6IE5ldyBmaWxlLgoJKiBkb2MvaW5zdGFsbC50ZXhpICgtLWVuYWJsZS10aHJlYWRzKTogRG9jdW1lbnQgJ3Bvc2l4OTUnLgoKMjAwNC0xMS0yMyAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBwb2ludGVyLXNldC5oIChwb2ludGVyX3NldF9jb250YWlucyk6IFJlbW92ZS4KCSogcG9pbnRlci1zZXQuYyAocG9pbnRlcl9zZXRfY29udGFpbnMpOiBMaWtld2lzZS4KCjIwMDQtMTEtMjIgIERhbGUgSm9oYW5uZXNlbiAgPGRhbGVqQGFwcGxlLmNvbT4KCgkqIGNhbGxzLmMgKGV4cGFuZF9jYWxsKTogRG8gbm90IGNhbGwgcHJlc2VydmVfdGVtcF9zbG90cy4KCjIwMDQtMTEtMjIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWZsb3cuaDogUmVtb3ZlIHRoZSBwcm90b3R5cGUgZm9yIHJlbW92ZV9waGlfYXJnLgoJQWRkIGEgcHJvdG90eXBlIGZvciByZW1vdmVfcGhpX2FyZ3MuCgkqIHRyZWUtcGhpbm9kZXMuYyAocmVtb3ZlX3BoaV9hcmcpOiBSZW1vdmUuCgkocmVtb3ZlX3BoaV9hcmdzKTogTmV3LgoJKiB0cmVlLXNzYS5jIChzc2FfcmVtb3ZlX2VkZ2UpOiBDYWxsIHJlbW92ZV9waGlfYXJncyBpbnN0ZWFkCglvZiByZW1vdmVfcGhpX2FyZy4KCgkqIGNmZy5jICh1bmNoZWNrZWRfbWFrZV9lZGdlKTogQ2FsbCBleGVjdXRlX29uX2dyb3dpbmdfcHJlZAoJYWZ0ZXIgbWFraW5nIGFuIGVkZ2UuCgkocmVtb3ZlX2VkZ2UpOiBDYWxsIGV4ZWN1dGVfb25fc2hyaW5raW5nX3ByZWQgYmVmb3JlIHJlbW92aW5nCglhbiBlZGdlLgoJKHJlZGlyZWN0X2VkZ2Vfc3VjYyk6IENhbGwgZXhlY3V0ZV9vbl9ncm93aW5nX3ByZWQgYW5kCglleGVjdXRlX29uX3Nocmlua2luZ19wcmVkLgoJKiBjZmdob29rcy5jIChleGVjdXRlX29uX2dyb3dpbmdfcHJlZCk6IE5ldy4KCShleGVjdXRlX29uX3Nocmlua2luZ19wcmVkKTogTGlrZXdpc2UuCgkqIGNmZ2hvb2tzLmggKGNmZ19ob29rcyk6IEFkZCBleGVjdXRlX29uX2dyb3dpbmdfcHJlZCBhbmQKCWV4ZWN1dGVfb25fc2hyaW5raW5nX3ByZWQuCglBZGQgcHJvdG90eXBlcyBmb3IgZXhlY3V0ZV9vbl9ncm93aW5nX3ByZWQgYW5kCglleGVjdXRlX29uX3Nocmlua2luZ19wcmVkLgoJKiBjZmdydGwuYyAocnRsX2NmZ19ob29rcyk6IEFkZCBOVUxMIGhvb2tzIHRvCglleGVjdXRlX29uX2dyb3dpbmdfcHJlZCBhbmQgZXhlY3V0ZV9vbl9zaHJpbmtpbmdfcHJlZC4KCShjZmdfbGF5b3V0X3J0bF9jZmdfaG9vayk6IExpa2V3aXNlLgoJKiB0cmVlLWNmZy5jICh0cmVlX2NmZ19ob29rcyk6IExpa2V3aXNlLgoKCSogdHJlZS1jZmcuYyAodHJlZV9leGVjdXRlX29uX3Nocmlua2luZ19wcmVkKTogTmV3LgoJKHRyZWVfY2ZnX2hvb2tzKTogVXNlIGl0LgoJKiB0cmVlLXNzYS5jIChzc2FfcmVtb3ZlX2VkZ2UpOiBEb24ndCBjYWxsIHJlbW92ZV9waGlfYXJncy4KCShzc2FfcmVkaXJlY3RfZWRnZSk6IERvbid0IGNhbGwgcmVtb3ZlX3BoaV9hcmdfbnVtLgoKCSogdHJlZS1waGlub2Rlcy5jIChyZW1vdmVfcGhpX2FyZ19udW0pOiBNYWtlIGl0IHN0YXRpYy4KCSogdHJlZS1mbG93Lmg6IFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGUuCgoJKiB0cmVlLXNzYS5jIChzc2FfcmVtb3ZlX2VkZ2UpOiBSZW1vdmUuCgkqIHRyZWUtZmxvdy5oOiBSZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvdG90eXBlLgoJKiB0cmVlLWNmZy5jOiBSZXBsYWNlIHNzYV9yZW1vdmVfZWRnZSB3aXRoIHJlbW92ZV9lZGdlLgoJKiBiYXNpYy1ibG9jay5oOiBMaWtld2lzZS4KCSogdHJlZS1pZi1jb252LmM6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS10aHJlYWR1cGRhdGUuYzogTGlrZXdpc2UuCgoyMDA0LTExLTIzICBCZW4gRWxsaXN0b24gIDxiamVAYXUuaWJtLmNvbT4KCgkqIGRvYy9jZmcudGV4aSAoTWFpbnRhaW5pbmcgdGhlIENGRyk6IFVzZSBAZnRhYmxlIGluc3RlYWQgb2YKCUB0YWJsZSB0byBsaXN0IHRoZSBCU0kgbWV0aG9kcy4gIFVzZSBpbmRpdmlkdWFsIEBmaW5kZXggZGlyZWN0aXZlcwoJaW5zdGVhZCBvZiBvbmUgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGluZGV4IGVudHJpZXMuCgoyMDA0LTExLTIyICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE4NTI5CgkqIGZvbGQtY29uc3QuYyAoZm9sZF90b19ub25zaGFycF9pbmVxX3VzaW5nX2JvdW5kKTogTmV3IGZ1bmN0aW9uLgoJKHNpbXBsZV9vcGVyYW5kX3ApOiBVc2UgU1RSSVBfTk9QUy4gIENvbnNpZGVyIFNTQSBuYW1lcyBzaW1wbGUuCgkoZm9sZCk6IENhbGwgZm9sZF90b19ub25zaGFycF9pbmVxX3VzaW5nX2JvdW5kLgoJKiB0cmVlLXNzYS1sb29wLW5pdGVyLmMgKHNpbXBsaWZ5X3JlcGxhY2VfdHJlZSk6IE5ldyBmdW5jdGlvbi4KCShudW1iZXJfb2ZfaXRlcmF0aW9uc19jb25kKTogRm9sZCB0aGUgZXhwcmVzc2lvbnMgYmVmb3JlIGZ1dGhlcgoJcHJvY2Vzc2luZy4KCSh0cmVlX3NpbXBsaWZ5X3VzaW5nX2NvbmRpdGlvbik6IEhhbmRsZSBjYXNlIHdoZW4gY29uZCBvciBleHByIGlzCglhbiBFUV9FWFBSIHNwZWNpYWxseS4KCjIwMDQtMTEtMjIgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiB0cmVlLXNzYS5jICh2ZXJpZnlfc3NhKTogU1NBX09QX0FMTF9VU0VTIHNob3VsZCBiZQoJU1NBX09QX0FMTF9VU0VTIHwgU1NBX09QX0FMTF9LSUxMUyBmb3IgdmVyaWZpY2F0aW9uIHB1cnBvc2VzLgoKMjAwNC0xMS0yMiAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoJICAgIEZhcmlib3J6IEphaGFuaWFuICA8ZmphaGFuaWFuQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9yZXR1cm5faW5fbWVtb3J5KTogVGVzdAoJVEFSR0VUX0FMVElWRUNfQUJJLgoJKGZ1bmN0aW9uX2FyZ19ib3VuZGFyeSk6IEFsaWduIDggdG8gMTYgYnl0ZSB2ZWN0b3JzIGxpa2UgU1BFLgoJQWxpZ24gMTYgYnl0ZSBhbmQgbGFyZ2VyIHZlY3RvcnMgbGlrZSBBbHRpdmVjLgoJKGZ1bmN0aW9uX2FyZ19hZHZhbmNlKTogUGFzcyBhbnkgMTYgYnl0ZSB2ZWN0b3IgbGlrZSBBbHRpdmVjIHZlY3Rvci4KCShmdW5jdGlvbl9hcmcpOiBTYW1lLgoJKHJzNjAwMF9wYXNzX2J5X3JlZmVyZW5jZXMpOiBUZXN0IFRBUkdFVF9BTFRJVkVDX0FCSS4KCjIwMDQtMTEtMjIgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHRyZWUtb3B0LzE4NTcyCgkqIHRyZWUtc3JhLmMgKHNjYWxhcml6ZV9pbml0KTogVW5zaGFyZSB0aGUgcmhzIGJlZm9yZSBnaW1wbGlmeWluZwoJaXQuCgoyMDA0LTExLTIyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZnVuY3Rpb24uYyAoYXNzaWduX3Bhcm1fc2V0dXBfYmxvY2spOiBSZXZlcnQgMTEtMTMgY2hhbmdlIHRvCglmb3JjYWJseSByZS1tb2RlIGEgKHBvc3NpYmx5IEJMS21vZGUpIGhhcmQgcmVnaXN0ZXIuCgoyMDA0LTExLTIyICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKG1lbV9taW5fYWxpZ25tZW50KTogQ2hlY2sgTUVNX0FMSUdOLgoKMjAwNC0xMS0yMiAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogY29uZmlnL3JzNjAwMC9wb3dlcjQubWQ6IFJlbW92ZSBkZWxheSBiZXR3ZWVuIGRpc3BhdGNoIGFuZCBpc3N1ZQoJYXNzb2NpYXRlZCB3aXRoIGRpc3BhdGNoIGdyb3VwIHNsb3RzIDMgYW5kIDQuCgkqIGNvbmZpZy9yczYwMDAvcG93ZXI1Lm1kOiBTYW1lLgoKMjAwNC0xMS0yMSAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIGNmZy5jIChjYWNoZWRfbWFrZV9lZGdlKTogVXNlIGZpbmRfZWRnZSByYXRoZXIgdGhhbiBhbiBpbmxpbmVkCgl2YXJpYW50LgoJKiBjZmdidWlsZC5jIChtYWtlX2VkZ2VzKTogTGlrZXdpc2UuCgkqIGNmZ2hvb2tzLmMgKGNhbl9kdXBsaWNhdGVfYmxvY2tfcCk6IExpa2V3aXNlLgoJKiBjZmdsb29wLmMgKGxvb3BfbGF0Y2hfZWRnZSk6IExpa2V3aXNlLgoJKiBjZmdsb29wbWFuaXAuYyAoZm9yY2Vfc2luZ2xlX3N1Y2NfbGF0Y2hlcyk6IExpa2V3aXNlLgoJKiBjZmdydGwuYyAocnRsX2Zsb3dfY2FsbF9lZGdlc19hZGQpOiBMaWtld2lzZS4KCSogcHJlZGljdC5jIChwcmVkaWN0X2xvb3BzLCBwcm9wYWdhdGVfZnJlcSk6IExpa2V3aXNlLgoJKiB0cmFjZXIuYyAodGFpbF9kdXBsaWNhdGUpOiBMaWtld2lzZS4KCSogdHJlZS1jZmcuYyAoZGlzYmFuZF9pbXBsaWNpdF9lZGdlcyk6IExpa2V3aXNlLgoJKHRyZWVfZm9yd2FyZGVyX2Jsb2NrX3AsIHRyZWVfZmxvd19jYWxsX2VkZ2VzX2FkZCk6IExpa2V3aXNlLgoKMjAwNC0xMS0yMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHNiaXRtYXAuYyAoc2JpdG1hcF91bmlvbl9vZl9wcmVkcyk6IFJlbW92ZSByZWR1bmRhbnQKCWluaXRpYWxpc2F0aW9uIG9mICdlJy4KCjIwMDQtMTEtMjIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xODU5OQoJKiByZWdyZW5hbWUuYyAoY29weXByb3BfaGFyZHJlZ19mb3J3YXJkKTogU3BlZWQgdXAgYnkgcHV0dGluZwoJQkJfVklTSVRFRCBmbGFncyBvbiBiYXNpYyBibG9ja3MgYXMgd2UgcHJvY2VzcyB0aGVtLgoKMjAwNC0xMS0yMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiB0YXJnZXQvMTg1MzEKCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kIChWSV9jaGFyKTogTmV3IG1vZGUgYXR0cmlidXRlLgoJKGFkZHYxNnFpMywgYWRkdjhoaTMsIGFkZHY0YWkzKTogUmVwbGFjZSB3aXRoIC4uLgoJKGFkZDxtb2RlPjMpOiAuLi4gdGhpcy4KCShzdWJ2MTZxaTMsIHN1YnY4aGkzLCBzdWJ2NGFpMyk6IFJlcGxhY2Ugd2l0aCAuLi4KCShzdWI8bW9kZT4zKTogLi4uIHRoaXMuCgkoc21heHYxNnFpMywgc21heHY4aGkzLCBzbWF4djRhaTMpOiBSZXBsYWNlIHdpdGggLi4uCgkoc21heDxtb2RlPjMpOiAuLi4gdGhpcy4KCShzbWludjE2cWkzLCBzbWludjhoaTMsIHNtaW52NGFpMyk6IFJlcGxhY2Ugd2l0aCAuLi4KCShzbWluPG1vZGU+Myk6IC4uLiB0aGlzLgoJKHVtYXh2MTZxaTMsIHVtYXh2OGhpMywgdW1heHY0YWkzKTogUmVwbGFjZSB3aXRoIC4uLgoJKHVtYXg8bW9kZT4zKTogLi4uIHRoaXMuCgkodW1pbnYxNnFpMywgdW1pbnY4aGkzLCB1bWludjRhaTMpOiBSZXBsYWNlIHdpdGggLi4uCgkodW1pbjxtb2RlPjMpOiAuLi4gdGhpcy4KCShhbmR2MTZxaTMsIGFuZHY4aGkzLCBhbmR2NGFpMyk6IFJlcGxhY2Ugd2l0aCAuLi4KCShhbmQ8bW9kZT4zKTogLi4uIHRoaXMuCgkoaW9ydjE2cWkzLCBpb3J2OGhpMywgaW9ydjRhaTMpOiBSZXBsYWNlIHdpdGggLi4uCgkoaW9yPG1vZGU+Myk6IC4uLiB0aGlzLgoJKHhvcnYxNnFpMywgeG9ydjhoaTMsIHhvcnY0YWkzKTogUmVwbGFjZSB3aXRoIC4uLgoJKHhvcjxtb2RlPjMpOiAuLi4gdGhpcy4KCShhbmR2MTZxaTMsIGFuZHY4aGkzLCBhbmR2NGFpMyk6IFJlcGxhY2Ugd2l0aCAuLi4KCShhbmQ8bW9kZT4zKTogLi4uIHRoaXMuCgkoaW9ydjE2cWkzLCBpb3J2OGhpMywgaW9ydjRhaTMpOiBSZXBsYWNlIHdpdGggLi4uCgkoaW9yPG1vZGU+Myk6IC4uLiB0aGlzLgoJKGFsdGl2ZWNfdm5vcik6IFJlcGxhY2Ugd2l0aCAuLi4KCShhbHRpdmVjX25vcjxtb2RlPik6IC4uLiB0aGlzLgoJKG9uZV9jbXBsdjE2cWkyLCBvbmVfY21wbHY4aGkyLCBvbmVfY29tcGx2NGFpMik6IFJlcGxhY2Ugd2l0aCAuLi4KCShvbmVfY21wbDxtb2RlPjIpOiAuLi4gdGhpcy4KCShhbHRpdmVjX3ZhbmRjKTogTmV3IGV4cGFuZGVyLgoJKCphbmRjPG1vZGU+Myk6IE5ldyBpbnNuLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChiZGVzY18yYXJnKTogQWRqdXN0IGZvciBuZXcgaW5zbiBuYW1lcy4KCjIwMDQtMTEtMjIgIERvcml0IE5haXNobG9zICA8ZG9yaXRAaWwuaWJtLmNvbT4KCglQUiB0cmVlLW9wdC8xODUzNgoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAobWFrZV9sb29wX2l0ZXJhdGVfbnRpbWVzKTogVXNlIHR5cGUgb2Ygbml0ZXJzIHdoZW4KCWNyZWF0aW5nIGl2IGluc3RlYWQgb2YgaW50ZWdlcl90eXBlLgoJKHZlY3RfYnVpbGRfbG9vcF9uaXRlcnMpOiBSZW1vdmUgcmVkdW5kYW50IGNvZGUuCgkodmVjdF90cmFuc2Zvcm1fbG9vcF9ib3VuZCk6IFJlbW92ZWQgKGR1cGxpY2F0ZXMgZnVuY3Rpb25hbGl0eSBvZgoJbWFrZV9sb29wX2l0ZXJhdGVfbnRpbWVzLgoJKHZlY3RfZ2VuX25pdGVyc19mb3JfcHJvbG9nX2xvb3ApOiBBZGQgZG9jdW1lbnRhdGlvbi4gQ2FsbAoJbGFuZ19ob29rcy50eXBlcy50eXBlX2Zvcl9zaXplIHRvIGNyZWF0ZSBhIHR5cGUgb2YgdGhlIHJlcXVpcmVkIHNpemUuCglVc2UgdGhhdCB0eXBlIGluc3RlYWQgb2YgaW50ZWdlcl90eXBlLiBSZW1vdmUgcmVkdW5kYW50IGNvZGUuCgkodmVjdF91cGRhdGVfbml0ZXJzX2FmdGVyX3BlZWxpbmcpOiBVc2UgdHlwZSBvZiBuaXRlcnMgaW5zdGVhZCBvZgoJaW50ZWdlcl90eXBlLgoJKHZlY3RfdHJhbnNmb3JtX2xvb3ApOiBVbmlmeSBoYW5kbGluZyBvZiBrbm93biBhbmQgdW5rbm93biBsb29wIGJvdW5kCgljYXNlcy4gQ2FsbCBtYWtlX2xvb3BfaXRlcmF0ZV9udGltZXMgaW5zdGVhZCBvZgoJdmVjdF90cmFuc2Zvcm1fbG9vcF9ib3VuZC4KCjIwMDQtMTEtMjIgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHRhcmdldC8xODIxNwoJKiBjb25maWcvcnM2MDAwL3QtZGFyd2luIChMSUIyRlVOQ1NfRVhUUkEpOiBNb3ZlIGRhcndpbi1mYWxsYmFjay5jIHRvCgkoTElCMkFEREVIKTogSGVyZS4KCjIwMDQtMTEtMjIgIERvcml0IE5haXNobG9zICA8ZG9yaXRAaWwuaWJtLmNvbT4KCglQUiB0cmVlLW9wdC8xODU0NAoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAodmVjdF9hbmFseXplX2RhdGFfcmVmcyk6IEZhaWwgaWYgbWVtdGFnIG5vdCBmb3VuZC4KCjIwMDQtMTEtMjIgS2F6dWhpcm8gSW5hb2thIDxpbmFva2Eua2F6dWhpcm9AcmVuZXNhcy5jb20+CgoJKiBjb25maWcuZ2NjOiBVc2UgdC1zbGliZ2NjLWVsZiB0byBidWlsZCBsaWJnY2Nfcy5zbyBvbgoJbTMycipsaW51eC4KCSogY29uZmlnL20zMnIvdC1saW51eCAoU0hMSUJfTUFQRklMRVMpOiBPdmVycmlkZSB0byB1c2UKCW0zMnIvbGliZ2NjLWdsaWJjLnZlci4KCSogY29uZmlnL20zMnIvbGliZ2NjLWdsaWJjLnZlcjogQWRkIE5ldyBmaWxlLgoKMjAwNC0xMS0yMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGJpdG1hcC5oIChzdHJ1Y3QgYml0bWFwX29ic3RhY2spOiBOZXcgb2JzdGFjayB0eXBlLgoJKHN0cnVjdCBiaXRtYXBfaGVhZF9kZWYpOiBSZXBsYWNlIHVzaW5nX29ic3RhY2sgd2l0aCBvYnN0YWNrCglwb2ludGVyLgoJKGJpdG1hcF9kZWZhdWx0X29ic3RhY2spOiBOZXcuCgkoYml0bWFwX2luaXRpYWxpemUpOiBNYWtlIGlubGluZSwgZG9lcyBub3QgZG8gYWxsb2NhdGlvbi4KCShiaXRtYXBfcmVsZWFzZV9tZW1vcnkpOiBSZW1vdmUuCgkoYml0bWFwX29ic3RhY2tfaW5pdGlhbGl6ZSwgYml0bWFwX29ic3RhY2tfcmVsZWFzZSk6IERlY2xhcmUuCgkoYml0bWFwX29ic3RhY2tfYWxsb2MsIGJpdG1hcF9tYWxsb2NfYWxsb2MsIGJpdG1hcF9nY19hbGxvYywKCWJpdG1hcF9vYnN0YWNrX2ZyZWUsIGJpdG1hcF9tYWxsb2NfZnJlZSk6IERlY2xhcmUuCgkoQklUTUFQX09CU1RBQ0tfQUxMT0MsIEJJVE1BUF9HR0NfQUxMT0MsIEJJVE1BUF9YTUFMTE9DKTogQWRqdXN0LgoJKEJJVE1BUF9GUkVFKTogUmVwbGFjZSB3aXRoIC4uLgoJKEJJVE1BUF9PQlNUQUNLX0ZSRUUpOiAuLi4gdGhpcy4KCShCSVRNQVBfWEZSRUUpOiBBZGp1c3QuCgkoQklUTUFQX0lOSVRfT05DRSk6IFJlbW92ZS4KCSogYml0bWFwLmMgKGJpdG1hcF9vYnN0YWNrLCBiaXRtYXBfb2JzdGFja19pbml0LCBiaXRtYXBfZnJlZTogUmVtb3ZlLgoJKGJpdG1hcF9kZWZhdWx0X29ic3RhY2spOiBOZXcuCgkoYml0bWFwX2VsZW1fdG9fZnJlZWxpc3QpOiBBZGp1c3QuCgkoYml0bWFwX2VsZW1lbnRfYWxsb2NhdGUpOiBBZGp1c3QuIEJyZWFrIGluaXRpYWxpemF0aW9uIGludG8gLi4uCgkoYml0bWFwX29ic3RhY2tfaW5pdGlhbGl6ZSk6IC4uLiBoZXJlLgoJKGJpdG1hcF9yZWxlYXNlX21lbW9yeSk6IFJlcGxhY2Ugd2l0aCAuLi4KCShiaXRtYXBfb2JzdGFja19yZWxlYXNlKTogLi4uIHRoaXMuCgkoYml0bWFwX29ic3RhY2tfYWxsb2MsIGJpdG1hcF9tYWxsb2NfYWxsb2MsIGJpdG1hcF9nY19hbGxvYywKCWJpdG1hcF9vYnN0YWNrX2ZyZWUsIGJpdG1hcF9tYWxsb2NfZnJlZSk6IE5ldy4KCShiaXRtYXBfaW9yX2FuZF9jb21wbCwgYml0bWFwX2lvcl9hbmRfY29tcGxfaW50byk6IFVzZQoJYml0bWFwX2luaXRpYWxpemUuCgkoYml0bWFwX2luaXRpYWxpemUpOiBNb3ZlIHRvIGJpdG1hcC5oLgoJKiBnZW5ndHlwZS5jIChvcGVuX2Jhc2VfZmlsZXMpOiBBZGQgb2JzdGFjay5oIHRvIGlmaWxlcy4KCSogTWFrZWZpbGUuaW4gKEJBU0lDX0JMT0NLX0gsIFJFR1NfSCk6IEFkZCBvYnN0YWNrLmguCgkqIGJhc2ljLWJsb2NrLmggKElOSVRfUkVHX1NFVCk6IEFsbG9jYXRlIGZyb20gcmVnX29ic3RhY2suCgkoSU5JVElBTElaRV9SRUdfU0VUKTogUmVtb3ZlLgoJKEZSRUVfUkVHX1NFVCk6IFVzZSBCSVRNQVBfT0JTVEFDS19GUkVFLgoJKElOSVRfT05DRV9SRUdfU0VULCBNQVhfUkVHTk9fUkVHX1NFVCk6IFJlbW92ZS4KCShmbG93X29ic3RhY2spOiBEbyBub3QgZGVjbGFyZS4KCShyZWdfb2JzdGFjayk6IERlY2xhcmUuCgkqIHJlZ3MuaDogSW5jbHVkZSBvYnN0YWNrLmguCgkqIHRyZWUtb3B0aW1pemUuYyAodHJlZV9yZXN0X29mX2NvbXBpbGF0aW9uKTogSW5pdGlhbGl6ZSBhbmQKCXJlbGVhc2UgYml0bWFwIG9ic3RhY2sgaGVyZS4KCSogYmItcmVvcmRlci5jOiAjaW5jbHVkZSByZWdzLCBub3QgYmFzaWMtYmxvY2suCgkoZml4X2Nyb3NzaW5nX2NvbmRpdGlvbmFsX2JyYW5jaGVzKTogQWxsb2NhdGUgcmVnc2V0cyBmcm9tCglyZWdfb2JzdGFjay4KCSogYnQtbG9hZC5jOiBEbyBub3QgaW5sdWRlIGJpdG1hcC5oLCBzYml0bWFwLmgsIGJhc2ljLWJsb2NrLmggb3IKCW9ic3RhY2suaC4KCSogY2FsbGVyLXNhdmUuYzogSW5jbHVkZSByZWdzLmggZWFybGllci4KCSogY2ZnLmM6IERvIG5vdCBpbmNsdWRlIGJhc2ljLWJsb2NrLmggb3Igb2JzdGFjay5oLgoJKHJlZ19vYnN0YWNrKTogRGVmaW5lLgoJKiBjZmdhbmFsLmM6IEluY2x1ZGUgb2JzdGFjay5oCgkqIGNmZ2NsZWFueXAuYzogRG8gbm90IGluY2x1ZGUgYmFzaWMtYmxvY2suaC4gSW5jbHVkZSByZWdzLmgKCWVhcmxpZXIuCgkqIGNmZ2xheW91dC5jOiBEbyBub3QgaW5jbHVkZSBvYnN0YWNrLmguCgkoZmxvd19vYnN0YWNrKTogUmVtb3ZlIGRlY2xhcmF0aW9uLgoJKGNmZ19sYXlvdXRfZHVwbGljYXRlX2JiKTogVXNlIHJlZ19vYnN0YWNrLgoJKiBjZmdsb29wLmMsIGNmZ2xvb3BhbmFsLmMsIGNmZ2xvb3BtYW5pcC5jOiBJbmNsdWRlIG9ic3RhY2suaC4KCSogY2ZncnRsLmMgKHJ0bF9zcGxpdF9ibG9jayk6IFVzZSByZWdfb2JzdGFjay4KCShmb3JjZV9ub25mYWxsdGhydV9hbmRfcmVkaXJlY3QsIHJ0bF9zcGxpdF9lZGdlKTogTGlrZXdpc2UuCgkoc2FmZV9pbnNlcnRfaW5zbl9vbl9lZGdlKTogVXNlIE9CU1RBQ0tfQUxMT0NfUkVHX1NFVCwgYWRqdXN0LgoJKGNmZ19sYXlvdXRfc3BsaXRfZWRnZSk6IFVzZSByZWdfb2JzdGFjay4KCSogY3NlLmM6IEluY2x1ZGUgcmVncy5oIGVhcmxpZXIuCgkqIGRkZy5jOiBEbyBub3QgaW5jbHVkZSBiYXNpYy1ibG9jay5oLgoJKiBkb21pbmFuY2UuYzogSW5sdWRlIG9ic3RhY2suaC4KCSogZmxvdy5jICh1cGRhdGVfbGlmZV9pbmZvKTogVXNlIE9CU1RBQ0tfQUxMT0NfUkVHX1NFVCwgYWRqdXN0LgoJKGNhbGN1bGF0ZV9nbG9iYWxfcmVnc19saXZlKTogTGlrZXdpc2UuCgkoYWxsb2NhdGVfYmJfbGlmZV9kYXRhKTogVXNlIHJlZ19vYnN0YWNrLgoJKGluaXRfcHJvcGFnYXRlX2Jsb2NrX2luZm8pOiBVc2UgT0JTVEFDS19BTExPQ19SRUdTRVQuCgkqIGdsb2JhbC5jOiBEbyBub3QgaW5jbHVkZSBiYXNpYy1ibG9jay5oLgoJKGJ1aWxkX2luc25fY2hhaW4pOiBVc2UgT0JTVEFDS19BTExPQ19SRUdfU0VULCBhZGp1c3QuCgkqIGdyYXBoLmM6IEluY2x1ZGUgb2JzdGFjay5oLgoJKiBoYWlmYS1zY2hlZC5jOiBEbyBub3QgaW5jbHVkZSBiYXNpYy1ibG9jay5oLgoJKiBpZmN2dC5jOiBVc2UgT0JTVEFDS19BTExPQ19SRUdfU0VULCBhZGp1c3QuCgkqIGxvY2FsLWFsbG9jLmM6IERvIG5vdCBpbmNsdWRlIGJhc2ljLWJsb2NrLmguCgkqIGxvb3AtaW5pdC5jLCBsb29wLWludmFyaWFudC5jOiBJbmNsdWRlIG9ic3RhY2suaC4KCSogbG9vcC1pdi5jOiBMaWtld2lzZS4KCShzaW1wbGlmeV91c2luZ19pbml0aWFsX3ZhbHVlcyk6IFVzZSBPQlNUQUNLX0FMTE9DX1JFR19TRVQsCglhZGp1c3QuCgkqIGxvb3AtdW5yb2xsLmMsIGxvb3AtdW5zd2l0Y2guYzogSW5sdWRlIG9ic3RhY2suaC4KCSogbW9kdWxvLXNjaGVkLmM6IERvIG5vdCBpbmNsdWRlIGJhc2ljLWJsb2NrLmguCgkqIHBhc3Nlcy5jIChyZXN0X29mX2hhbmRsZV9maW5hbCk6IERvIG5vdCBjYWxsCglyZWdzZXRfcmVsZWFzZV9tZW1vcnkuCgkqIHJhLWRlYnVnLmM6IEluY2x1ZGUgcmVncy5oIGVhcmxpZXIuIERvIG5vdCBpbmNsdWRlCgliYXNpYy1ibG9jay5oLgoJKiByZWNvZy5jIChwZWVwaG9sZTJfb3B0aW1pemUpOiBVc2UgT0JTVEFDS19BTExPQ19SRUdfU0VULCBhZGp1c3QuCgkqIHJlZ2NsYXNzLmMgKGluaXRfcmVnX3NldHMpOiBEbyBub3QgY2FsbCBJTklUX09OQ0VfUkVHX1NFVC4KCShhbGxvY2F0ZV9yZWdfaW5mbyk6IERvIG5vdCBjYWxsIE1BWF9SRUdOT19SRUdfU0VULgoJKHJlZ3NldF9yZWxlYXNlX21lbW9yeSk6IFJlbW92ZS4KCSogcmVzb3VyY2UuYzogRG8gbm90IGluY2x1ZGUgYmFzaWMtYmxvY2suaC4KCSogcnRsYW5hbC5jOiBEbyBub3QgaW5jbHVkZSBiYXNpYy1ibG9jay5oLgoJKiBzYml0bWFwLmM6IEluY2x1ZGUgb2JzdGFjay5oLgoJKiBzY2hlZC1kZXBzLmM6IERvIG5vdCBpbmNsdWRlIGJhc2ljLWJsb2NrLmguCgkocmVnX3BlbmRpbmdfc2V0c19oZWFkLCByZWdfcGVuZGluZ19jbG9iYmVyc19oZWFkLAoJcmVnX3BlbmRpbmdfdXNlc19oZWFkKTogUmVtb3ZlLgoJKGluaXRfZGVwc19nbG9iYWwpOiBVc2UgT0JTVEFDS19BTExPQ19SRUdfU0VULgoJKiBzY2hlZC1lYmIuYzogRG8gbm90IGluY2x1ZGUgYmFzaWMtYmxvY2suaC4KCSogc2NoZWQtcmduLmM6IExpa2V3aXNlLgoJKiB0cmVlLWlmLWNvbnYuYyAoZ2V0X2xvb3BfYm9keV9pbl9pZl9jb252X29yZGVyKTogVXNlCglCSVRNQVBfWEZSRUUuCgkqIHRyZWUtb3V0b2Ytc3NhLmMgKHBlcmZvcm1fZWRnZV9pbnNlcnRzKTogVXNlIEJJVE1BUF9YRlJFRS4KCSogdHJlZS1zcmEuYyAoZGVjaWRlX2luc3RhbnRpYXRpb25zKTogQWRqdXN0IGJpdG1hcAoJaW5pdGlhbGl6YXRpb24uCgkqIHRyZWUtc3NhLWRjZS5jOiBJbmNsdWRlIG9ic3RhY2suaC4KCSogdHJlZS1zc2EtcHJlLmMgKGdyYW5kX2JpdG1hcF9vYnN0YWNrKTogTWFrZSBhIGJpdG1hcF9vYnN0YWNrLgoJKHZhbHVlX2luc2VydF9pbnRvX3NldF9iaXRtYXApOiBSZW1vdmUgdXNlbGVzcyBiaXRtYXBfY2xlYXIuCgkoYml0bWFwX3NldF9uZXcpOiBMaWtld2lzZS4KCShpbml0X3ByZSk6IEluaXRpYWxpemUgYml0bWFwIG9ic3RhY2suCgkoZmluaV9wcmUpOiBSZWxlYXNlIGJpdG1hcCBvYnN0YWNrLgoJKiB0cmVlLXNzYW5hbWVzLmMgKHNzYV9uYW1lc190b19yZXdyaXRlKTogTWFrZSBzdGF0aWMuCgkobWFya2VkX2Zvcl9yZXdyaXRlX3ApOiBzc2FfbmFtZXNfdG9fcmV3cml0ZSBpcyBuZXZlciBOVUxMLgoJKG1hcmtfZm9yX3Jld3JpdGUsIHVubWFya19mb3JfcmV3cml0ZSk6IExpa2V3aXNlLgoJKG1hcmtlZF9zc2FfbmFtZXMpOiBMaWtld2lzZS4KCShpbml0X3NzYW5hbWVzKTogVXNlIEJJVE1BUF9YTUFMTE9DLgoJKGZpbmlfc3NhbmFtZXMpOiBVc2UgQklUTUFQX1hGUkVFLgoJKiB3ZWIuYzogSW5jbHVkZSBvYnN0YWNrLmgKCjIwMDQtMTEtMjIgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBzYml0bWFwLmMgKHNiaXRtYXBfdW5pb25fb2ZfcHJlZHMpOiBTZXQgJ2UnIHRvIHRoZSBuZXh0IGVkZ2UKCXByZWRlY2Vzc29yIGluIHRoZSBmaXJzdCBmb3ItbG9vcC4KCjIwMDQtMTEtMjEgIFN0YW4gU2hlYnMgIDxzaGVic0BhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jOiAocnM2MDAwX2RhcndpbjY0X2Z1bmN0aW9uX2FyZyk6IEFkZAoJVU5JT05fVFlQRSBjYXNlLgoJKGZ1bmN0aW9uX2FyZyk6IE1vdmUgZGFyd2luIHRlc3QgdXAsIHNuaWZmIG1vZGUgZmlyc3QgZm9yCgllZmZpY2llbmN5LCB0ZXN0IGZvciB1bmlvbiB0eXBlLgoKMjAwNC0xMS0yMSAgRGFsZSBKb2hhbm5lc2VuICA8ZGFsZWpAYXBwbGUuY29tPgoKCSogY29uZmlnL2Rhcndpbi5oIChKVU1QX1RBQkxFU19JTl9URVhUX1NFQ1RJT04pOiAgRGVmaW5lLgoKMjAwNC0xMS0yMSAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLmMgKHZlcmlmeV91c2UpOiBGaXggY29tbWVudC4KCSh2ZXJpZnlfcGhpX2FyZ3MpOiBDaGVjayB0aGF0IHRoZSBudW1iZXIgb2YgaW5jb21pbmcgZWRnZXMgbWF0Y2hlcwoJdGhlIG51bWJlciBvZiBQSEkgYXJndW1lbnRzLiAgQ2hlY2sgdGhhdCBlYWNoIFBISSBhcmd1bWVudCBpcwoJZWl0aGVyIGFuIFNTQV9OQU1FIG9yIGFuIGludmFyaWFudC4gIENvYWxlc2NlIHRlc3RzIGZvciBQSElzIGZvcgoJZGVhZCBvciBkdXBsaWNhdGVkIGVkZ2VzLiAgQ2xlYXIgZS0+YXV4IGVhcmxpZXIgYW5kIGF2b2lkIHNlcGFyYXRlCglsb29wIHRvIGNsZWFyIGUtPmF1eCBhbmQgdGVzdCBmb3IgbWlzc2VkIGVkZ2VzLgoJKHZlcmlmeV9zc2EpOiBSZW1vdmUgZmlyc3Qgd2FsayBvdmVyIHN0YXRlbWVudHMuICBNb3ZlIGNoZWNraW5nCglvZiBQSEkgYXJncyBpbnRvIHZlcmlmeV9waGlfYXJncy4gIE1vdmUgY2hlY2tpbmcgb2Ygc3RhdGVtZW50cwoJd2l0aCBhbGlhc2VkIHN0b3JlcyBhbmQgVl9NQVlfREVGUyBpbnRvIHRoZSByZW1haW5pbmcgbG9vcCBvdmVyCgl0aGUgc3RhdGVtZW50cy4gIFJlZ2lzdGVyIGRlZnMgYnkgd2Fsa2luZyB0aHJvdWdoIHRoZSBmb3JtYWwKCVNTQV9OQU1FIHRhYmxlLgoKMjAwNC0xMS0yMSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgbWlkZGxlLWVuZC8xODUyMAoJKiBkb2p1bXAuYyAoY29tcGFyZV9mcm9tX3J0eCk6IENsYXJpZnkgbW9kZSBhcmd1bWVudCBpbiBmdW5jdGlvbgoJZGVzY3JpcHRpb24uICBDb3JyZWN0IG9yZGVyIG9mIG1vZGUvY21wX21vZGUgYXJndW1lbnRzIGluIGNhbGwgdG8KCXNpbXBsaWZ5X3JlbGF0aW9uYWxfb3BlcmF0aW9uLiAgQ2hlY2sgInRlbSIgZm9yIENPTVBBUklTT05fUC4KCjIwMDQtMTEtMjEgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgkgICAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCVBSIHRhcmdldC8xNzgzNgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfcmV0dXJuX2luX21lbW9yeSk6IFJldHVybgoJc3ludGhldGljIHZlY3RvcnMgaW4gbWVtb3J5LgoJKGZ1bmN0aW9uX2FyZ19ib3VuZGFyeSk6IEFsaWduIGxhcmdlIHN5bnRoZXRpYyB2ZWN0b3JzLgoJKHJzNjAwMF9wYXNzX2J5X3JlZmVyZW5jZSk6IFBhc3Mgc3ludGhldGljIHZlY3RvcnMgaW4gbWVtb3J5LgoKMjAwNC0xMS0yMSAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIGNmZy5jICh1cGRhdGVfYmJfcHJvZmlsZV9mb3JfdGhyZWFkaW5nKTogRG8gbm90IHJlc2NhbGUgdGhlCglzdWNjZXNzb3IgcHJvYmFiaWxpdGllcyBpZiB0aGV5IGFyZSBub3QgZ29pbmcgdG8gY2hhbmdlLiAgUHVsbAoJZGl2aXNpb24gb3V0IG9mIGxvb3AgaWYgd2UgZG8gbmVlZCB0byByZXNjYWxlIHN1Y2Nlc3NvciBwcm9iYWJpbGl0aWVzLgoKCSogdHJlZS1zc2EtdGhyZWFkdXBkYXRlLmMgKHJlZGlyZWN0aW9uX2RhdGFfaGFzaCk6IFVzZSB0aGUKCWluZGV4IG9mIHRoZSBkZXN0aW5hdGlvbiBibG9jayBmb3IgdGhlIGhhc2ggdmFsdWUgcmF0aGVyIHRoYW4KCWhhc2hpbmcgYSBwb2ludGVyLgoKMjAwNC0xMS0yMCAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLXR5cGVjay5jIChidWlsZF9hcnJheV9yZWYpOiBEb24ndCBjaGVjayBmb3IgaW5kZXggPT0gMC4gIE1ha2UKCWNoZWNrcyBmb3IgbmVpdGhlciBhcmd1bWVudCBiZWluZyBhbiBhcnJheSBvciBwb2ludGVyIChzd2FwcGluZwoJdGhlIGFyZ3VtZW50cyBpZiBuZWNlc3NhcnkpLCB0aGUgYXJyYXkgYXJndW1lbnQgYmVpbmcgYSBwb2ludGVyIHRvCglvciBhcnJheSBvZiBmdW5jdGlvbnMgYW5kIGZvciAtV2NoYXItc3Vic2NyaXB0cyB3YXJuaW5ncyB1cGZyb250LgoKMjAwNC0xMS0yMCAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIHJlZ3JlbmFtZS5jIChjb3B5cHJvcF9oYXJkcmVnX2ZvcndhcmQpOiBPbmx5IHNlYXJjaCBmb3IgYQoJcHJldmlvdXNseSBwcm9jZXNzZWQgYmxvY2sgaWYgdGhlIGN1cnJlbnQgYmxvY2sgb25seSBoYXMgb25lCglwcmVkZWNlc3Nvci4KCjIwMDQtMTEtMjAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLXNzYS10aHJlYWR1cGRhdGUuYywgdHJlZS12ZWN0b3JpemVyLmM6IEZpeCBjb21tZW50Cgl0eXBvcy4KCSogY29uZmlnL2FybS9hcm0uYzogRm9sbG93IHNwZWxsaW5nIGNvbnZlbnRpb25zLgoKMjAwNC0xMS0yMCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiBhcm0uYyAoYXJtX292ZXJyaWRlX29wdGlvbnMpOiBVc2UgYXJtX2xkX3NjaGVkIHJhdGhlciB0aGFuIHRlc3RpbmcKCWEgYml0IGluIHR1bmVfZmxhZ3MuCgkoY29uc3RfZG91YmxlX25lZWRzX21pbmlwb29sKTogTGlrZXdpc2UuICBTcGxpdCBtb3N0IG9mIHRoZSBjb2RlIG91dAoJaW50byAuLi4KCShhcm1fY29uc3RfZG91YmxlX2lubGluZV9jb3N0KTogLi4uIG5ldyBmdW5jdGlvbiBoZXJlLgoJKiBhcm0tcHJvdG9zLmggKGFybV9jb25zdF9kb3VibGVfaW5saW5lX2Nvc3QpOiBBZGQgcHJvdG90eXBlLgoJKiBhcm0uaCAoRVhUUkFfQ09OU1RSQUlOVF9TVFJfQVJNKTogQWRkIERbYWJjXSBjb25zdHJhaW50cyBmb3IgZG91YmxlLQoJd29yZCBjb25zdGFudHMgb2YgbGVuZ3RoIDIsIDMgYW5kIDQgaW5zbnMgcmVzcGVjdGl2ZWx5LgoJKENPTlNUUkFJTlRfTEVOKTogVGhlICdEJyBwcmVmaXggaXMgYSAyLWxldHRlciBjb25zdHJhaW50LgoJKiBhcm0ubWQgKGFybV9tb3ZkaSwgbW92ZGZfc29mdF9pbnNuKTogQWRkIGFsdGVybmF0aXZlcyBmb3IgRFthYmNdCgljb25zdHJhaW50cy4gIFNldCBpbnNuIGxlbmdodHMgYWNjb3JkaW5nbHkuCgoyMDA0LTExLTE5ICBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtdGhyZWFkdXBkYXRlLmM6IFJlcGxhY2UgUkVESVJFQ1RJT05fREFUQSB2YXJyYXkgd2l0aAoJYSBoYXNoIHRhYmxlLiAgRXh0ZW5zaXZlIG1vZGlmaWNhdGlvbnMgdGhyb3VnaG91dCB0byBzdXBwb3J0Cgl0aGF0IGNoYW5nZS4KCShzdHJ1Y3QgZWwpOiBOZXcuCgkoc3RydWN0IGxvY2FsX2luZm8pOiBOZXcuCgkoc3RydWN0IHJlZGlyZWN0aW9uX2RhdGEpOiBBZGQgbmV3IElOQ09NSU5HX0VER0VTIGFuZCBET19OT1RfRFVQTElDQVRFCglmaWVsZHMuCgkocmVkaXJlY3Rpb25fZGF0YSk6IE5vdyBhIGhhc2h0YWJsZS4KCShyZWRpcmVjdGlvbl9kYXRhX2hhc2gsIHJlZGlyZWN0aW9uX2RhdGFfZXEpOiBOZXcuCgkobG9va3VwX3JlZGlyZWN0aW9uX2RhdGEsIGNyZWF0ZV9kdXBsaWNhdGVzKTogTmV3LgoJKGNyZWF0ZV9lZGdlX2FuZF91cGRhdGVfZGVzdGlvbmF0aW9uX3BoaXMpOiBOZXcuCgkoZml4dXBfdGVtcGxhdGVfYmxvY2ssIHJlZGlyZWN0X2VkZ2VzKTogTmV3LgoJKHRocmVhZF9ibG9jayk6IFVzZSBoYXNoIHRhYmxlIHRyYXZlcnNhbHMgaW5zdGVhZCBvZiBsb29wcyBvdmVyCgl2YXJyYXkgZW50cmllcyBvciBpbmNvbWluZyBlZGdlIHZlY3RvcnMuCgoyMDA0LTExLTE5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYmFzaWMtYmxvY2suaCAoZWRnZV9kZWYpOiBBZGQgZGVzdF9pZHguCgkqIGNmZy5jICh1bmNoZWNrZWRfbWFrZV9lZGdlKTogSW5pdGlhbGl6ZSBkZXN0X2lkeC4KCShyZW1vdmVfZWRnZSk6IFNpbXBsaWZ5IHRoZSBkaXNjb25uZWN0aW9uIG9mIGFuIGVkZ2UgZnJvbSBpdHMKCWRlc3RpbmF0aW9uLgoJKHJlZGlyZWN0X2VkZ2Vfc3VjYyk6IExpa2V3aXNlLgoJKiBjZmdob29rcy5jICh2ZXJpZnlfZmxvd19pbmZvKTogQ2hlY2sgdGhlIGNvbnNpc3RlbmN5IG9mCglkZXN0X2lkeCBmb3IgZWFjaCBlZGdlLgoKMjAwNC0xMS0xOSAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogc2ltcGxpZnktcnR4LmMgKHNpbXBsaWZ5X3Rlcm5hcnlfb3BlcmF0aW9uKTogVXNlCglnZW5faW50X21vZGUuCgoyMDA0LTExLTE5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1jZmcuYyAocmVpbnN0YWxsX3BoaV9hcmdzKTogTmV3LgoJKHRyZWVfc3BsaXRfZWRnZSk6IFVzZSBpdCBhZnRlciByZWRpcmVjdGluZyBhbiBlZGdlLiAgRG9uJ3QKCW1vZGlmeSBQSElfQVJHX0VER0UuCgoyMDA0LTExLTE5ICBBbmRyZWFzIFRvYmxlciAgPGEudG9ibGVyQHNjaHdlaXouY2g+CgoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAoc2xwZWVsX3ZlcmlmeV9jZmdfYWZ0ZXJfcGVlbGluZyk6IERlZmluZSBvbmx5CglpZiBjaGVja2luZyBpcyBlbmFibGVkLgoKMjAwNC0xMS0xOSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLWRlY2wuYyAocHVzaF9zY29wZSk6IFJlbW92ZSAiXG4iIGZyb20gZW5kIG9mIGRpYWdub3N0aWMgZm9yCgl0b28gbWFueSBuZXN0ZWQgc2NvcGVzLgoKMjAwNC0xMS0xOSAgRG9yaXQgTmFpc2hsb3MgIDxkb3JpdEBpbC5pYm0uY29tPgoKCVBSIHRyZWUtb3B0LzE4MTgxCgkqIHRyZWUtdmVjdG9yaXplci5jIChzbHBlZWxfdHJlZV9wZWVsX2xvb3BfdG9fZWRnZSk6IFBlZWxpbmcgc2NoZW1lCgljaGFuZ2VkIHRvIHN1cHBvZXIgdXNlcy1hZnRlci1sb29wIGFuZCB0byB2b2lkIGNyZWF0aW5nIGZsb3cgcGF0aHMKCXRoYXQgc2hvdWxkbid0IGV4aXN0LgoJKHNscGVlbF91cGRhdGVfcGhpX25vZGVzX2Zvcl9ndWFyZCk6IFRha2VzIGFkZGl0aW9uYWwgdHdvIGFyZ3VtZW50cy4KCU1vZGlmaWVkIHRvIGZpdCB0aGUgbmV3IHBlZWxpbmcgc2NoZW1lLiBBdm9pZCBxdWFkcmF0aWMgYmVoYXZpb3IuCgkoc2xwZWVsX2FkZF9sb29wX2d1YXJkKTogVGFrZXMgYWRkaXRpb25hbCBhcmd1bWVudC4KCShzbHBlZWxfdmVyaWZ5X2NmZ19hZnRlcl9wZWVsaW5nKTogTmV3IGZ1bmN0aW9uLgoJKHZlY3RfdXBkYXRlX2l2c19hZnRlcl92ZWN0b3JpemVyKTogVGFrZXMgYWRkaXRpb25hbCBhcmd1bWVudC4gVXBkYXRlZAoJZG9jdW1lbnRhdGlvbi4gVXNlICdleGl0LWJiJyBpbnN0ZWFkIG9mIGNyZWF0aW5nICduZXctYmInLgoJKHJlbmFtZV92YXJpYWJsZXNfaW5fYmIpOiBEb24ndCB1cGRhdGUgcGhpcyBmb3IgQkJzIG91dCBvZiBsb29wLCB0byBmaXQKCXRoZSBuZXcgcGVlbGluZyBzY2hlbWUuCgkoY29weV9waGlfbm9kZXMpOiBGdW5jdGlvbiByZW1vdmVkLiBJdHMgZnVuY3Rpb25hbGl0eSBtb3ZlZCB0bwoJdXBkYXRlX3BoaXNfZm9yX2R1cGxpY2F0ZV9sb29wLgoJKHNscGVlbF91cGRhdGVfcGhpc19mb3JfZHVwbGljYXRlX2xvb3ApOiBGdW5jdGlvbmFsaXR5IG9mIGNvcHlfcGhpX25vZGVzCgltb3ZlZCBoZXJlLiBBZGRlZCBkb2N1bWVudGF0aW9uLiBNb2RpZmllZCB0byBmaXQgdGhlIG5ldyBwZWVsaW5nIHNjaGVtZS4KCShzbHBlZWxfbWFrZV9sb29wX2l0ZXJhdGVfbnRpbWVzKTogU2V0dGluZyBsb29wLT5zaW5nbGVfZXhpdCBub3Qgbm90CgluZWVkZWQgLSBkb25lIGluIHNscGVlbF90cmVlX3BlZWxfbG9vcF90b19lZGdlLgoJKHNscGVlbF90cmVlX2R1cGxpY2F0ZV9sb29wX3RvX2VkZ2VfY2ZnKTogRGVidWcgcHJpbnRvdXRzIGNvbXBhY3RlZC4KCSh2ZWN0X2RvX3BlZWxpbmdfZm9yX2xvb3BfYm91bmQpOiBBZGQgZG9jdW1lbnRhdGlvbi4gQ2FsbAoJc2xwZWVsX3ZlcmlmeV9jZmdfYWZ0ZXJfcGVlbGluZy4gQ2FsbCB2ZWN0X3VwZGF0ZV9pdnNfYWZ0ZXJfdmVjdG9yaXplcgoJd2l0aCBhZGRpdGlvbmFsIGFyZ3VtZW50LgoJKHZlY3RfZG9fcGVlbGluZ19mb3JfYWxpZ25tZW50KTogQ2FsbCBzbHBlZWxfdmVyaWZ5X2NmZ19hZnRlcl9wZWVsaW5nLgoKCSh2ZWN0X2ZpbmlzaF9zdG10X2dlbmVyYXRpb24pOiBBdm9pZCA4MCBjb2x1bW4gb3ZlZmxvdy4KCjIwMDQtMTEtMTkgIERvcml0IE5haXNobG9zICA8ZG9yaXRAaWwuaWJtLmNvbT4KCgkqIHRyZWUtdmVjdG9yaXplci5jIChzbHBlZWxfbWFrZV9sb29wX2l0ZXJhdGVfbnRpbWVzKTogTGFzdCB0d28KCWFyZ3VtZW50cyByZW1vdmVkLgoJKHNscGVlbF90cmVlX3BlZWxfbG9vcF90b19lZGdlKTogQ2FsbCBzbHBlZWxfbWFrZV9sb29wX2l0ZXJhdGVfbnRpbWVzCgl3aXRob3V0IGxhc3QgdHdvIGFyZ3VtZW50cy4gVXBkYXRlIHNpbmdsZV9leGl0IG9mIGxvb3BzLgoJKHZlY3RfdXBkYXRlX25pdGVyc19hZnRlcl9wZWVsaW5nKTogUmVtb3ZlZC4gSXRzIGZ1bmN0aW9uYWxpdHkgd2FzCgltb3ZlZCB0byB2ZWN0X2RvX3BlZWxpbmdfZm9yX2FsaWdubWVudC4KCSh2ZWN0X2RvX3BlZWxpbmdfZm9yX2xvb3BfYm91bmQpOiBOZXcgbmFtZSBmb3IgZnVuY3Rpb24gcHJldmlvdXNseQoJY2FsbGVkIHZlY3RfdHJhbnNmb3JtX2Zvcl91bmtub3duX2xvb3BfYm91bmQuCgkodmVjdF90cmFuc2Zvcm1fbG9vcF9ib3VuZCk6IENhbGwgc2xwZWVsX21ha2VfbG9vcF9pdGVyYXRlX250aW1lcwoJaW5zdGVhZCBvZiBjb2RlIHRoYXQgZHVwbGljYXRlcyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5LgoJKHZlY3RfZG9fcGVlbGluZ19mb3JfYWxpZ25tZW50KTogRnVuY3Rpb25hbGl0eSBvZgoJdmVjdF91cGRhdGVfbml0ZXJzX2FmdGVyX3BlZWxpbmcgbW92ZWQgaGVyZS4KCSh2ZWN0X3RyYW5zZm9ybV9sb29wKTogVW5pZnkgY2FsbCB0byB2ZWN0X2RvX3BlZWxpbmdfZm9yX2xvb3BfYm91bmQgLQoJcHJldmlvdXNseSBuYW1lZCB2ZWN0X3RyYW5zZm9ybV9mb3JfdW5rbm93bl9sb29wX2JvdW5kIC0gZm9yIGJvdGgga25vd24KCWFuZCB1bmtub3duIGxvb3AgYm91bmQgY2FzZXMuCgoyMDA0LTExLTE5ICBEb3JpdCBOYWlzaGxvcyAgPGRvcml0QGlsLmlibS5jb20+CgoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAoc2xwZWVsX2Nhbl9kdXBsaWNhdGVfbG9vcF9wKTogTmV3IG5hbWUgZm9yIGZ1bmN0aW9uCglwcmV2aW91c2x5IGNhbGxlZCB2ZXJpZnlfbG9vcF9mb3JfZHVwbGljYXRpb24uIEFsbCBjb25kaXRpb25zIGNvbXBhY3RlZAoJaW50byBvbmUgY29tcG91bmQgY29uZGl0aW9uLiBSZW1vdmVkIGRlYnVnIGR1bXBzLgoJKHZlY3RfYW5hbHl6ZV9sb29wX3dpdGhfc3ltYm9saWNfbnVtX29mX2l0ZXJzKTogUmVtb3ZlZC4gU29tZSBvZiB0aGUKCWZ1bmN0aW9uYWxpdHkgbW92ZWQgdG8gdmVjdF9jYW5fYWR2YW5jZV9pdnNfcCwgYW5kIHNvbWUgdG8KCXZlY3RfYW5hbHl6ZV9sb29wX2Zvcm0uCgkodmVjdF9jYW5fYWR2YW5jZV9pdnNfcCk6IE5ldyBmdW5jdGlvbi4gQ29udGFpbnMgZnVuY3Rpb25hbGl0eSB0aGF0IHdhcwoJdGFrZW4gb3V0IG9mIHZlY3RfYW5hbHl6ZV9sb29wX3dpdGhfc3ltYm9saWNfbnVtX29mX2l0ZXJzLgoJKHNscGVlbF90cmVlX3BlZWxfbG9vcF90b19lZGdlKTogQ2FsbCBzbHBlZWxfY2FuX2R1cGxpY2F0ZV9sb29wX3AuCgkodmVjdF9hbmFseXplX29wZXJhdGlvbnMpOiBDYWxsIHZlY3RfY2FuX2FkdmFuY2VfaXZzX3AgYW5kCglzbHBlZWxfY2FuX2R1cGxpY2F0ZV9sb29wX3AuCgkodmVjdF9nZXRfbG9vcF9uaXRlcnMpOiBBZGRlZCBkb2N1bWVudGF0aW9uLgoJKHZlY3RfYW5hbHl6ZV9sb29wX2Zvcm0pOiBDaGVjayB0aGUgbG9vcCBlbnRyeSBhbHdheXMgLSBub3Qgb25seSBpbiBjYXNlCglvZiB1bmtub3duIGxvb3AgYm91bmQuIENyZWF0ZSBwcmVoZWFkZXIgYW5kIGV4aXQgYmIgaWYgbmVjZXNzYXJ5LiBBcHBseQoJYSBjaGVjayB0aGF0IHVzZWQgdG8gdGFrZSBwbGFjZSBpbgoJdmVjdF9hbmFseXplX2xvb3Bfd2l0aF9zeW1ib2xpY19udW1fb2ZfaXRlcnMuCgkodmVjdG9yaXplX2xvb3BzKTogQ2FsbCB2ZXJpZnlfbG9vcF9jbG9zZWRfc3NhIHVuZGVyIEVOQUJMRV9DSEVDS0lORy4KCVJlbW92ZSByZWR1bmRhbnQgY2FsbCB0byByZXdyaXRlX2ludG9fbG9vcF9jbG9zZWRfc3NhLgoJKHZlY3RfY29tcHV0ZV9kYXRhX3JlZnNfYWxpZ25tZW50KTogUmVtb3ZlZCBvYnNvbGV0ZSBjb21tZW50LgoKMjAwNC0xMS0xOSAgRG9yaXQgTmFpc2hsb3MgIDxkb3JpdEBpbC5pYm0uY29tPgoKCSogdHJlZS12ZWN0b3JpemVyLmMgKHNscGVlbF90cmVlX3BlZWxfbG9vcF90b19lZGdlKTogTmV3IG5hbWUgZm9yCglmdW5jdGlvbiBwcmV2aW91c2x5IGNhbGxlZCB0cmVlX2R1cGxpY2F0ZV9sb29wX3RvX2VkZ2UuCgkoc2xwZWVsX3RyZWVfZHVwbGljYXRlX2xvb3BfdG9fZWRnZV9jZmcpOiBOZXcgbmFtZSBmb3IgZnVuY3Rpb24KCXByZXZpb3VzbHkgY2FsbGVkIHRyZWVfZHVwbGljYXRlX2xvb3BfdG9fZWRnZV9jZmcuCgkoc2xwZWVsX3VwZGF0ZV9waGlzX2Zvcl9kdXBsaWNhdGVfbG9vcCk6IFByZWZpeCAnc2xwZWVsJyBhZGRlZCB0bwoJZnVuY3Rpb24gbmFtZS4KCShzbHBlZWxfdXBkYXRlX3BoaV9ub2Rlc19mb3JfZ3VhcmQpOiBMaWtld2lzZS4KCShzbHBlZWxfbWFrZV9sb29wX2l0ZXJhdGVfbnRpbWVzKTogTGlrZXdpc2UuCgkoc2xwZWVsX2FkZF9sb29wX2d1YXJkKTogTGlrZXdpc2UuCgkoYWxsb2NhdGVfbmV3X25hbWVzLCBmcmVlX25ld19uYW1lcyk6IEZ1bmN0aW9uIGRlY2xhcmF0aW9uIG1vdmVkIHRvIHRvcAoJb2YgZmlsZS4KCShyZW5hbWVfdXNlX29wLCByZW5hbWVfZGVmX29wKTogTGlrZXdpc2UuCgkocmVuYW1lX3ZhcmlhYmxlc19pbl9iYiwgcmVuYW1lX3ZhcmlhYmxlc19pbl9sb29wKTogTGlrZXdpc2UuCgkodmVjdF9nZW5lcmF0ZV90bXBzX29uX3ByZWhlYWRlcik6IEZ1bmN0aW9uIGRlY2xhcmF0aW9uIG1vdmVkLgoJKHZlY3RfdHJhbnNmb3JtX2Zvcl91bmtub3duX2xvb3BfYm91bmQpOiBBZGRlZCBtaXNzaW5nIGZ1bmN0aW9uCglkZWNsYXJhdGlvbi4KCjIwMDQtMTEtMTkgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHRyZWUtb3B0LzE4NTA3CgkqIHRyZWUtZmxvdy5oICh0cmVlX29uX2hlYXApOiBUeXBlZGVmIGJlY2F1c2UgdGhlcmUgaXMgYWxyZWFkeSBhIFZFQyh0cmVlKS4KCURlZmluZSBhIFZFQyh0cmVlX29uX2hlYXApIGZvciBoZWFkLgoJKHJlZ2lzdGVyX25ld19kZWYpOiBDaGFuZ2Ugc2Vjb25kIGFyZ3VtZW50IHRvIGJlIGEgVkVDKHRyZWVfb25faGVhcCkuCgkqIHRyZWUtc3NhLWRvbS5jIChibG9ja19kZWZzX3N0YWNrKTogQ2hhbmdlIHRvIGJlIGEgVkVDKHRyZWVfb25faGVhcCkuCgkodHJlZV9zc2FfZG9taW5hdG9yX29wdGltaXplKTogSW5pdGlhbGl6ZSBibG9ja19kZWZzX3N0YWNrIHdpdGgKCXRoZSBWRUModHJlZV9vbl9oZWFwKSBmdW5jdGlvbi4gIEFsc28gZnJlZSBpdCBiZWZvcmUgcmV0dXJuaW5nLgoJKGRvbV9vcHRfaW5pdGlhbGl6ZV9ibG9jayk6IFVzZSBWRUNfc2FmZV9wdXNoIGluc3RlYWQgb2YgVkFSUkFZX1BVU0hfVFJFRQoJZm9yIGJsb2NrX2RlZnNfc3RhY2suCgkocmVzdG9yZV9jdXJyZGVmc190b19vcmlnaW5hbF92YWx1ZSk6IFVzZSBWRUNfbGVuZ3RoIGluc3RlYWQgb2YKCVZBUlJBWV9BQ1RJVkVfU0laRS4gVkVDX3BvcCBpbnN0ZWFkIG9mIFZBUlJBWV9UT1BfVFJFRS9WQVJSQVlfUE9QLgoJKGRvbV9vcHRfZmluYWxpemVfYmxvY2spOiBVc2UgVkVDX3NhZmVfcHVzaCBpbnN0ZWFkIG9mIFZBUlJBWV9QVVNIX1RSRUUKCWZvciBibG9ja19kZWZzX3N0YWNrLgoJKiB0cmVlLWludG8tc3NhLmMgKGJsb2NrX2RlZnNfc3RhY2spOiBDaGFuZ2UgdG8gYmUgYSBWRUModHJlZV9vbl9oZWFwKS4KCShyZXdyaXRlX2luaXRpYWxpemVfYmxvY2spOiBVc2UgVkVDX3NhZmVfcHVzaCBpbnN0ZWFkIG9mIFZBUlJBWV9QVVNIX1RSRUUKCWZvciBibG9ja19kZWZzX3N0YWNrLgoJKHNzYV9yZWdpc3Rlcl9uZXdfZGVmKTogTGlrZXdpc2UuCgkoc3NhX3Jld3JpdGVfaW5pdGlhbGl6ZV9ibG9jayk6IExpa2V3aXNlLgoJKHJld3JpdGVfZmluYWxpemVfYmxvY2spOiBVc2UgVkVDX2xlbmd0aCBpbnN0ZWFkIG9mCglWQVJSQVlfQUNUSVZFX1NJWkUuIFZFQ19wb3AgaW5zdGVhZCBvZiBWQVJSQVlfVE9QX1RSRUUvVkFSUkFZX1BPUC4KCShzc2FfcmV3cml0ZV9maW5hbGl6ZV9ibG9jayk6IExpa2V3aXNlLgoJKHJlZ2lzdGVyX25ld19kZWYpOiBDaGFuZ2Ugc2Vjb25kIGFyZ3VtZW50IHRvIGJlIGEgVkVDKHRyZWVfb25faGVhcCkuCglVc2UgVkVDX3NhZmVfcHVzaCBpbnN0ZWFkIG9mIFZBUlJBWV9QVVNIX1RSRUUuCgkocmV3cml0ZV9ibG9ja3MpOiBJbml0aWFsaXplIGJsb2NrX2RlZnNfc3RhY2sgd2l0aAoJdGhlIFZFQyh0cmVlX29uX2hlYXApIGZ1bmN0aW9uLiAgQWxzbyBmcmVlIGl0IGJlZm9yZSByZXR1cm5pbmcuCgkocmV3cml0ZV9zc2FfaW50b19zc2EpOiBMaWtld2lzZS4KCjIwMDQtMTEtMTkgIEZhcmlib3J6IEphaGFuaWFuIDxmamFoYW5pYW5AYXBwbGUuY29tPgoKCSogY29uZmlnL2Rhcndpbi5jIChtYWNob3BpY19kYXRhX2RlZmluZWRfcCk6IHJldHVybiAxIGZvcgoJTUFDSE9QSUNfREVGSU5FRF9GVU5DVElPTi4KCjIwMDQtMTEtMTkgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS5jICh2ZXJpZnlfc3NhKTogUmVtb3ZlIHJlZHVuZGFudCBjaGVja2luZyBvZiBQSEkKCWFyZ3VtZW50cy4KCjIwMDQtMTEtMTkgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgdGFyZ2V0LzE3NzM1CgkqIHZhcmFzbS5jIChkZWZhdWx0X2Fzc2VtYmxlX2ludGVnZXIpOiBBbGxvdyBwb2ludGVyLXNpemVkIHZhbHVlcy4KCUV4cGFuZCBjb21tZW50LgoKMjAwNC0xMS0xOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9zdG9ybXkxNi9zdG9ybXkxNi5jIChjb21iaW5lX2JucCk6IEFkZCBjb2RlIHRvIGhhbmRsZQoJemVyb19leHRlbnNpb24gYW5kIGxzaGlmdHJ0IGluc25zLgoJUmVwbGFjZSB1c2VzIG9mIFhFWFAoLi4uKSB3aXRoIGVpdGhlciBTRVRfREVTVCgpIG9yIFNFVF9TUkMoKQoJd2hlcmUgYXBwcm9wcmlhdGUuCgkqIGNvbmZpZy9zdG9ybXkxNi5zdG9ybXkxNi5tZCAoYmNscngzLCBic2V0eDMpOiBOZXcgcGF0dGVybnMKCXRvIGhhbmRsZSBicCBhbmQgYm4gaW5zbiBwYXR0ZXJucyB3aXRoIGEgemVyb19leHRlbmQgcnR4CglpbnNpZGUgdGhlbS4KCjIwMDQtMTEtMTkgIElhbiBMYW5jZSBUYXlsb3IgIDxpYW5Ad2FzYWJpc3lzdGVtcy5jb20+CgoJKiBjb25maWcvYXJtL2FybS5tZCAoZ2VuZXJpY19zY2hlZCk6IE1ha2UgY29uc3QuCgoyMDA0LTExLTE5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZW1pdC1ydGwuYyAoY2xhc3NpZnlfaW5zbik6IE1ha2UgaXQgc3RhdGljLgoJKiBydGwuaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHByb3RvdHlwZS4KCgkqIGludGVncmF0ZS5jIChoYXNfZnVuY19oYXJkX3JlZ19pbml0aWFsX3ZhbCwKCWdldF9mdW5jX2hhcmRfcmVnX2luaXRpYWxfdmFsKTogTWFrZSB0aGVtIHN0YXRpYy4KCSogaW50ZWdyYXRlLmg6IFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGVzLgoKMjAwNC0xMS0xOSAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBkd2FyZjJhc20uaCAoZHcyX2FzbV9vdXRwdXRfcGNlbCk6IFN0dWIgb3V0IHdpdGggI2lmIDAuCgkoZHcyX2FzbV9vdXRwdXRfZGVsdGFfc2xlYjEyOCk6IExpa2V3aXNlLgoJKiBkd2FyZjJhc20uYyAoZHcyX2FzbV9vdXRwdXRfcGNyZWwpOiBMaWtld2lzZS4KCShkdzJfYXNtX291dHB1dF9kZWx0YV9zbGViMTI4KTogTGlrZXdpc2UuCgoyMDA0LTExLTE5ICBBZGFtIE5lbWV0ICA8YW5lbWV0QGxueHcuY29tPgoKCSogdHJlZS1zc2EtYWxpYXMuYzogRml4IGNvbW1lbnQuCgoyMDA0LTExLTE5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1vdXRvZi1zc2EuYzogRml4IGEgY29tbWVudCB0eXBvLgoKMjAwNC0xMS0xOSAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBwcmVkaWN0LmggKHByZWRpY3RfaW5zbik6IFJlbW92ZSBleHRlcm4gZGVjbGFyYXRpb24uCgkqIHByZWRpY3QuYyAocHJlZGljdF9pbnNuKTogTWFrZSBzdGF0aWMuCgoyMDA0LTExLTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAoZnVuY3Rpb25fYXJnKTogRG9uJ3QgcmV0dXJuIEJMS21vZGUgcmVncy4KCjIwMDQtMTEtMTggIE5pY29sYXMgUGl0cmUgPG5pY29AY2FtLm9yZz4KCgkqIGNvbmZpZy9hcm0vYXJtLmMgKGNvbnN0X2RvdWJsZV9uZWVkc19taW5pcG9vbCk6IE5ldyBmdW5jdGlvbiB0bwoJZGV0ZXJtaW5lIGlmIGEgQ09OU1RfRE9VQkxFIHNob3VsZCBiZSBwdXNoZWQgdG8gdGhlIG1pbmlwb29sLgoJKG5vdGVfaW52YWxpZF9jb25zdGFudHMpOiBVc2UgaXQuCgoyMDA0LTExLTE4ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL2FybS9hcm0uYyAodGFyZ2V0X2Zsb2F0X3N3aXRjaCk6IE5ldyB2YXJpYWJsZS4uCgkoYXJtX292ZXJyaWRlX29wdGlvbnMpOiBVc2UgVEFSR0VUX0RFRkFVTFRfRkxPQVRfQUJJIGFuZAoJdGFyZ2V0X2Zsb2F0X3N3aXRjaC4KCSogY29uZmlnL2FybS9hcm0uaCAodGFyZ2V0X2Zsb2F0X3N3aXRjaCk6IERlY2xhcmUuCgkoQVJNX0ZMQUdfU09GVF9GTE9BVCk6IFJlbW92ZS4KCShUQVJHRVRfU1dJVENIRVMpOiBSZW1vdmUgaGFyZC1mbG9hdCBhbmQgc29mdC1mbG9hdC4KCShUQVJHRVRfT1BUSU9OUyk6IEFkZCBoYXJkLWZsb2F0IGFuZCBzb2Z0LWZsb2F0LgoJKFRBUkdFVF9ERUZBVUxUX0ZMT0FUX0FCSSk6IERlZmluZS4KCSogY29uZmlnL2FybS9jb2ZmLmggKFRBUkdFVF9ERUZBVUxUX0ZMT0FUX0FCSSk6IERlZmluZQoJKFRBUkdFVF9ERUZBVUxUKTogRG9uJ3QgdXNlIEFSTV9GTEFHX1NPRlRfRkxPQVQuCgkqIGNvbmZpZy9hcm0vZWxmLmg6IERvbid0IHVzZSBBUk1fRkxBR19TT0ZUX0ZMT0FULgoJKiBjb25maWcvYXJtL25ldGJzZC1lbGYuaDogRGl0dG8uCgkqIGNvbmZpZy9hcm0vbmV0YnNkLmg6IERpdHRvLgoJKiBjb25maWcvYXJtL3BlLmg6IERpdHRvLgoJKiBjb25maWcvYXJtL3Vua25vd24tZWxmLmg6IERpdHRvLgoJKiBjb25maWcvYXJtL3dpbmNlLXBlLmg6IERpdHRvLgoJKiBjb25maWcvYXJtL2xpbnV4LWVsZi5oIChUQVJHRVRfREVGQVVMVF9GTE9BVF9BQkkpOiBEZWZpbmUuCgkqIGNvbmZpZy9hcm0vc2VtaS5oIChUQVJHRVRfREVGQVVMVF9GTE9BVF9BQkkpOiBEZWZpbmUuCgkqIGNvbmZpZy9hcm0vc2VtaWFvZi5oIChUQVJHRVRfREVGQVVMVF9GTE9BVF9BQkkpOiBEZWZpbmUuCgoyMDA0LTExLTE4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kIChWSSwgVkYsIFYpOiBOZXcgbW9kZSBtYWNyb3MuCgkoYWx0aXZlY19sdnhfNHNpLCBhbHRpdmVjX2x2eF84aGksIGFsdGl2ZWNfbHZ4XzE2cWksCglhbHRpdmVjX2x2eF80c2YpOiBSZW5hbWUgYW5kIHJlcGxhY2Ugd2l0aCAuLi4KCShhbHRpdmVjX2x2eF88bW9kZT4pOiAuLi4gbW9kZSBtYWNybyB2ZXJzaW9uLgoJKGFsdGl2ZWNfc3R2eF80c2ksIGFsdGl2ZWNfc3R2eF84aGksIGFsdGl2ZWNfc3R2eF8xNnFpLAoJYWx0aXZlY19zdHZ4XzRzZik6IFJlbmFtZSBhbmQgcmVwbGFjZSB3aXRoIC4uLgoJKGFsdGl2ZWNfc3R2eF88bW9kZT4pOiAuLi4gbW9kZSBtYWNybyB2ZXJzaW9uLgoJKG1vdnY0c2ksIG1vdnY4aGksIG1vdnYxNnFpLCBtb3Z2NHNmfSk6IFJlcGxhY2Ugd2l0aCAuLi4KCShtb3Y8bW9kZT4pOiAuLi4gbW9kZSBtYWNybyB2ZXJzaW9uLgoJKCptb3Z2NHNpX2ludGVybmFsLCAqbW92djhoaV9pbnRlcm5hbDEsICptb3Z2MTZxaV9pbnRlcm5hbDEsCgkqbW92djRzZl9pbnRlcm5hbDEpOiBSZXBsYWNlIHdpdGggLi4uCgkoKm1vdjxtb2RlPl9pbnRlcm5hbCk6IC4uLiBtb2RlIG1hY3JvIHZlcnNpb24uCgkoZ2V0X3Zyc2F2ZV9pbnRlcm5hbCwgKnNldF92cnNhdmVfaW50ZXJuYWwsICpzYXZlX3dvcmxkLAoJKnJlc3RvcmVfd29ybGQpOiBVbnF1b3RlIG91dHB1dCBzdGF0ZW1lbnRzLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChhbHRpdmVjX2V4cGFuZF9sZF9idWlsdGluLAoJYWx0aXZlY19leHBhbmRfc3RfYnVpbHRpbik6IEFkanVzdCBpbnNuIG5hbWVzLgoKMjAwNC0xMS0xOCAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2NvbXBsZXhfZnVuY3Rpb25fdmFsdWUpOiBSZXZlcnQKCXByZXZpb3VzIGNoYW5nZS4KCShyczYwMDBfb3ZlcnJpZGVfb3B0aW9ucyk6IExpa2V3aXNlLgoJKHNwZV9idWlsZF9yZWdpc3Rlcl9wYXJhbGxlbCk6IEhhbmRsZSBjb21wbGV4IGRvdWJsZXMgb24gZTUwMHYyLgoJKHJzNjAwMF9zcGVfZnVuY3Rpb25fYXJnKTogTGlrZXdpc2UuCgkoZnVuY3Rpb25fYXJnKTogTGlrZXdpc2UuCgkocnM2MDAwX2Z1bmN0aW9uX3ZhbHVlKTogTGlrZXdpc2UuCgkocnM2MDAwX2xpYmNhbGxfdmFsdWUpOiBMaWtld2lzZS4KCjIwMDQtMTEtMTggIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogaWZjdnQuYyAoZmluZF9pZl9ibG9jayk6IE1vdmUgdGhlIGNoZWNrIGZvciB0aGUgbnVtYmVyIG9mIGVkZ2VzCglhYm92ZSB0aGUgbG9vcHMgY2hlY2tpbmcgZm9yIGNvbXBsZXggZWRnZXMuCglSZW1vdmUgdGhlIGNvdW50aW5nIG9mIGVkZ2VzIGFzIHdlIHVzZSBFREdFX0NPVU5UIG5vdy4KCjIwMDQtMTEtMTggIEthenVoaXJvIEluYW9rYSA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tbj4KCgkqIGNvbmZpZy9tMzJyL2xpbnV4LmggKFRBUkdFVF9BU01fRklMRV9FTkQpOiBTZXQKCVRBUkdFVF9BU01fRklMRV9FTkQgdG8gZmlsZV9lbmRfaW5kaWNhdGVfZXhlY19zdGFjay4zCgoyMDA0LTExLTE4ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoZGVmaW5lX3BlZXBob2xlMik6IFJldmVydCBsYXN0IGNoYW5nZS4KCjIwMDQtMTEtMTggIEthenVoaXJvIEluYW9rYSA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tbj4KCgkqIGNvbmZpZy9tMzJyL2xpbnV4LmggKFRBUkdFVF9BU01fRklMRV9FTkQpOiBTZXQKCVRBUkdFVF9BU01fRklMRV9FTkQgdG8gZmlsZV9lbmRfaW5kaWNhdGVfZXhlY19zdGFjay4KCjIwMDQtMTEtMTggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtcHJvcGFnYXRlLmMgKHNzYV9wcm9wX2luaXQpOiBVc2UgRk9SX0FMTF9CQiBpbnN0ZWFkCglvZiBGT1JfRUFDSF9CQi4KCjIwMDQtMTEtMTggIEpvbiBHcmltbSA8amdyaW1tMkB1cy5pYm0uY29tPgoKCSogTWFrZWZpbGUuaW4gKG1hY3JvX2xpc3QpOiBEZXBlbmQgb24gcy1tYWNyb19saXN0LgoJKHMtbWFjcm9fbGlzdCk6IE5ldyB0YXJnZXQuCgoyMDA0LTExLTE4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIHRhcmdldC8xNzEwNwoJKiBmb2xkLWNvbnN0LmMgKFJBTkdFX1RFU1RfTk9OX1NIT1JUX0NJUkNVSVQpOiBSZW5hbWUgdG8gLi4uCgkoTE9HSUNBTF9PUF9OT05fU0hPUlRfQ0lSQ1VJVCk6IC4uLiBoZXJlLgoJKGZvbGRfcmFuZ2VfdGVzdCk6IEFkanVzdC4KCShmb2xkX3RydXRob3ApOiBVc2UgaXQuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKFJBTkdFX1RFU1RfTk9OX1NIT1JUX0NJUkNVSVQpOiBSZW5hbWUgdG8gLi4uCgkoTE9HSUNBTF9PUF9OT05fU0hPUlRfQ0lSQ1VJVCk6IC4uLiBoZXJlLgoKMjAwNC0xMS0xOCAgVXJvcyBCaXpqYWsgIDx1cm9zQGtzcy1sb2thLnNpPgoKCSogY29uZmlndXJlL2kzODYvaTM4Ni5tZCAoKmZpeF90cnVuY2hfMSk6IEFkZCAiJiYgMSIgdG8KCWluc24gc3BsaXQgY29uc3RyYWludC4KCShkZWZpbmVfcGVlcGhvbGUyKTogUmVtb3ZlIHVubmVlZGVkICImJiAxIiBmcm9tIHBlZXBob2xlMgoJY29uc3RyYWludHMuCgoyMDA0LTExLTE4ICBCZW4gRWxsaXN0b24gIDxiamVAYXUuaWJtLmNvbT4KCgkqIGRvYy9jZmcudGV4aSAoTWFpbnRhaW5pbmcgdGhlIENGRyk6IFJlbW92ZSBkdXBsaWNhdGVkIEBpdGVtCgllbGVtZW50IGZvciBic2lfcHJldjsgdXNlIEBmaW5kZXggaW5zdGVhZC4KCjIwMDQtMTEtMTggIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogb3B0cy5oIChhZGRfaW5wdXRfZmlsZW5hbWUpOiBSZW1vdmUgZXh0ZXJuIGRlY2xhcmF0aW9uLgoJKiBvcHRzLmMgKGFkZF9pbnB1dF9maWxlbmFtZSk6IE1ha2Ugc3RhdGljLgoKMjAwNC0xMS0xNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaTM4Nl9zb2xhcmlzX2VsZl9uYW1lZF9zZWN0aW9uKTogTWFyayB3aXRoCglBVFRSSUJVVEVfVU5VU0VELgoKMjAwNC0xMS0xNyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRlZmF1bHRzLmgsIGNvbmZpZy9kYXJ3aW4uaDogRG9uJ3QgZGVmaW5lIFRBUkdFVF9TVVBQT1JUU19ISURERU4uCgkqIHN5c3RlbS5oOiBQb2lzb24gaXQuCgkqIGRvYy90bS50ZXhpOiBEZWxldGUgaXRzIGRvY3VtZW50YXRpb24uCgoyMDA0LTExLTE4ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgoJICAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvaTM4Ni9zb2wyLTEwLmgsIGNvbmZpZy9pMzg2L3Qtc29sMi0xMDogTmV3IGZpbGVzLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGkzODZfc29sYXJpc19lbGZfbmFtZWRfc2VjdGlvbik6IE5ldwoJZnVuY3Rpb24uCgkqIGNvbmZpZy5nY2MgKGlbMzQ1NjddODYtKi1zb2xhcmlzMiopOiBIYW5kbGUgU29sYXJpcyAyLjEwLgoJKiBjb25maWcvaTM4Ni9zb2wyLmggKEFTTV9QUkVGRVJSRURfRUhfREFUQV9GT1JNQVQpOiBIYW5kbGUKCTY0LWJpdC4KCShBU01fUVVBRCk6IERvbid0IHVuZGVmaW5lIGZvciBiaWFyY2ggdGFyZ2V0cy4KCSogY29uZmlnL2kzODYvdC1zb2wyOiBJbnRyb2R1Y2UgbXVsdGlsaWIgc3VwcG9ydC4KCjIwMDQtMTEtMTggIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogY2dyYXBodW5pdC5jOiBSZXBsYWNlICJpdCdzIiB3aXRoICJpdHMiIGFuZCBmaXggYSB0eXBvLgoKMjAwNC0xMS0xOCAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBjZ3JhcGguaDogUmVwbGFjZSAiaXQncyIgd2l0aCAiaXRzIiB0aHJvdWdob3V0LgoKMjAwNC0xMS0xOCAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBkb2MvcnRsLnRleGkgKEZsYWdzKTogR3JhbW1hciBmaXguCgoyMDA0LTExLTE3ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZXhwbWVkLmMgKGFsZ19jb2RlKTogQWRkIGFsZ191bmtub3duLgoJKGFsZ19oYXNoX2VudHJ5KTogTmV3LgoJKE5VTV9BTEdfSEFTSF9FTlRSSUVTKTogTGlrZXdpc2UuCgkoYWxnX2hhc2gpOiBMaWtld2lzZS4KCShzeW50aF9tdWx0KTogQ2FjaGUgdGhlIHJlc3VsdCBpbnRvIGFsZ19oYXNoLgoKMjAwNC0xMS0xNyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvdC1kYXJ3aW46IEF1Z21lbnQgU0hMSUJfTUFQRklMRVMgd2l0aAoJY29uZmlnL3JzNjAwMC9saWJnY2MtcHBjNjQudmVyLgoKMjAwNC0xMS0xNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNmZ3J0bC5jIChydGxfdmVyaWZ5X2Zsb3dfaW5mbyk6IERvbid0IHVzZSBJTlNOX1Agd2hlbgoJY2hlY2tpbmcgaWYgYW4gdW5jb25kaXRpb25hbCByZXR1cm4gaXMgZm9sbG93ZWQgYnkgYSBiYXJyaWVyLgoKCSoganVtcC5jIChjb25kanVtcF9wKTogUmVtb3ZlIHVucmVhY2hhYmxlIGNvZGUuCgoJKiBiYXNpYy1ibG9jay5oLCBjLWNvbW1vbi5oLCBkZi5oLCBleHByLmgsIG91dHB1dC5oLCBydGwuaCwKCXRyZWUtY2hyZWMuaCwgdHJlZS1mbG93LmgsIHRyZWUtc2NhbGFyLWV2b2x1dGlvbi5oLAoJdHJlZS1zc2EtbGl2ZS5oLCB0cmVlLmg6IFJlbW92ZSB1bnVzZWQgcHJvdG90eXBlcy4KCjIwMDQtMTEtMTcgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiB0cmVlLWNmZy5jIChlZGdlX3RvX2Nhc2VzKTogUmVuYW1lZCBmcm9tIGVkZ2VfdG9fY2FzZV9sZWFkZXIuCgkoZWRnZV90b19jYXNlc19lbHQpOiBSZW5hbWVkIGZyb20gZWRnZV90b19jYXNlX2xlYWRlci4KCShlZGdlX3RvX2Nhc2VzX2hhc2gpOiBSZW5hbWVkIGZyb20gZWRnZV90b19jYXNlX2xlYWRlcl9oYXNoLgoJKGVkZ2VfdG9fY2FzZXNfZXEpOiBSZW5hbWVkIGZyb20gZWRnZV90b19jYXNlX2xlYWRlcl9lcS4KCShlZGdlX3RvX2Nhc2VzX2NsZWFudXAsIHJlY29yZGluZ19jYXNlX2xhYmVsc19wKTogTmV3IGZ1bmN0aW9ucy4KCShnZXRfY2FzZXNfZm9yX2VkZ2UpOiBOZXcgZnVuY3Rpb24uCgkoc3RhcnRfcmVjb3JkaW5nX2Nhc2VfbGFiZWxzLCBlbmRfcmVjb3JkaW5nX2Nhc2VfbGFiZWxzKTogU2ltaWxhcmx5LgoJKHJlY29yZF9zd2l0Y2hfZWRnZSk6IERvbid0IG11Y2sgd2l0aCB0aGUgQ0FTRV9MQUJFTC4gIEluc3RlYWQKCWNoYWluIGVxdWl2YWxlbnQgQ0FTRV9MQUJFTF9FWFBScyB0b2dldGhlci4KCShnZXRfY2FzZV9sZWFkZXJfZm9yX2VkZ2UsIGdldF9jYXNlX2xlYWRlcl9mb3JfZWRnZV9oYXNoKTogS2lsbC4KCShtYWtlX3N3aXRjaF9leHByX2VkZ2VzKTogRG8gbm90IHJlY29yZCBlZGdlL2Nhc2VzIGhlcmUuCgkoY2xlYW51cF90cmVlX2NmZyk6IFJlY29yZCBjYXNlcyBhcm91bmQgdGhlIGNhbGwgdG8gdGhyZWFkX2p1bXBzLgoJKHNwbGl0X2NyaXRpY2FsX2VkZ2VzKTogUmVjb3JkIGNhc2VzIGFyb3VuZCB0aGUgZWRnZSBzcGxpdHRpbmcgY29kZS4KCShjbGVhbnVwX2RlYWRfbGFiZWxzKTogVXNlIENBU0VfTEFCRUwgYWdhaW4uCgkodHJlZV9yZWRpcmVjdF9lZGdlX2FuZF9icmFuY2gpOiBJZiB3ZSBoYXZlIGEgbWFwcGluZyBmcm9tIGVkZ2UKCXRvIGNhc2VzLCB1c2UgaXQgdG8gaGFuZGxlIHJlZGlyZWN0aW9ucy4gIEVsc2UgZG8gaXQgdGhlIHNsb3cgd2F5LgoJKiB0cmVlLmggKENBU0VfTEVBREVSX09SX0xBQkVMKTogS2lsbC4KCShDQVNFX0xBQkVMKTogUmV2ZXJ0IHRvIGp1c3QgbG9va2luZyBhdCB0aGUgdHJlZSdzIHNlY29uZCBvcGVyYW5kLgoJKiB0cmVlLmMgKGdldF9jYXNlX2xhYmVsKTogS2lsbC4KCjIwMDQtMTEtMTcgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE4MzA3CgkqIHRyZWUtc3NhLWFsaWFzLmMgKG1lcmdlX3BvaW50ZWRfdG9faW5mbyk6IElDRSBpZiAnZGVzdCcgYW5kCgknb3JpZycgYXJlIHRoZSBzYW1lIG5vZGUuCgkoY29sbGVjdF9wb2ludHNfdG9faW5mb19yKTogRG8gbm90IGNhbGwgbWVyZ2VfcG9pbnRlZF90b19pbmZvCgl3aGVuIHRoZSBQSEkgYXJndW1lbnQgaXMgaWRlbnRpY2FsIHRvIHRoZSBMSFMuCgoyMDA0LTExLTE3ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiB0cmVlLXNzYS1wcm9wYWdhdGUuYyAoY2ZnX2Jsb2Nrc19hZGQpOiBBc3NlcnQgd2UncmUgbm90IHRyeWluZwoJdG8gaW5zZXJ0IHRoZSBleGl0IG9yIGVudHJ5IGJsb2NrLgoJKHNzYV9wcm9wX2luaXQpOiBVc2UgYWRkX2NvbnRyb2xfZWRnZSB0byBzZWVkIHRoZSBhbGdvcml0aG0uCgoyMDA0LTExLTE2ICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogbWttYXAtZmxhdC5hd2ssIG1rbWFwLXN5bXZlci5hd2s6IElmIHRoZSBsYXN0IHZlcnNpb24KCWFzc2lnbmVkIHRvIGEgc3ltYm9sIHdhcyAnJWV4Y2x1ZGUnLCBkbyBub3QgZW1pdCBpdCBhbnl3aGVyZS4KCUlmIGxlYWRpbmdfdW5kZXJzY29yZSBpcyB0cnVlLCBwcmVmaXggYWxsIHN5bWJvbHMgZnJvbSB0aGUKCXZlcnNpb24gc2NyaXB0cyB3aXRoIGEgbGVhZGluZyB1bmRlcnNjb3JlIGJlZm9yZSBjb21wYXJpbmcKCXRoZW0gd2l0aCBubSBvdXRwdXQgb3IgZW1pdHRpbmcgdGhlbS4gIFJlbW92ZSBzdXBwb3J0IGZvciBkb3QKCXN5bWJvbHMuCgkqIGNvbmZpZy90LXNsaWJnY2MtZGFyd2luIChTSExJQl9MSU5LKTogVXNlIG1rbWFwLWZsYXQuYXdrLgoJKFNITElCX01BUEZJTEVTKTogVXNlIGxpYmdjYy1zdGQudmVyLgoJKFNITElCX01LTUFQX09QVFMpOiBFbmFibGUgbGVhZGluZy11bmRlcnNjb3JlIG1vZGUuCgkoU0hMSUJfTElOSyk6IEFkZCAtV2wsLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCwkKFNITElCX01BUCkuCgkqIGNvbmZpZy9zaC90LWxpbnV4OiBVc2UgdGhlIG5vcm1hbCBsaWJnY2Mtc3RkLnZlciwgcGx1cwoJbGliZ2NjLWV4Y2wudmVyIGFuZCBsaWJnY2MtZ2xpYmMudmVyLgoKCSogY29uZmlnL3NoL2xpYmdjYy1leGNsLnZlcjogTmV3IGZpbGUuCgkqIGNvbmZpZy9zaC9saWJnY2Mtc3RkLnZlciwgbGliZ2NjLWRhcndpbi52ZXI6IERlbGV0ZS4KCjIwMDQtMTEtMTYgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogbGFtYmRhLWNvZGUuYyAobGFtYmRhX2xvb3BuZXN0X3RvX2djY19sb29wbmVzdCk6IFN3YXAKCXRoZSB0ZXN0IHdoZW4gdGhlIGVkZ2UgaGFzIHRoZSBvcHBvc2l0ZSBtZWFuaW5nLCBub3Qgd2hlbgoJdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGludmFyaWFudC4KCjIwMDQtMTEtMTYgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9vdmVycmlkZV9vcHRpb25zKTogU3BsaXQgZTUwMHYyCglkb3VibGVzLgoJKHJzNjAwMF9jb21wbGV4X2Z1bmN0aW9uX3ZhbHVlKTogSGFuZGxlIGU1MDAgdjIgdmFyaWFudC4KCjIwMDQtMTEtMTYgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCUZpeCBQUiB0cmVlLW9wdGltaXphdGlvbi8xODUxOQoKCSogdHJlZS1vcHRpbWl6ZSAoZXhlY3V0ZV90b2RvKTogQWRkIGNhc2UgZm9yIFRPRE9fY2xlYW51cF9jZmcuCgkqIHRyZWUtcGFzcy5oOiBBZGQgVE9ET19jbGVhbnVwX2NmZy4KCSogdHJlZS1zc2EtY2NwLmMgKHBhc3NfY2NwKTogVXNlIFRPRE9fY2xlYW51cF9jZmcuCgkoY2NwX2ZpbmFsaXplKTogUmVtb3ZlIGNhbGwgdG8gY2xlYW51cF9jZmcuCgkqIHRyZWUtc3NhLWRjZS5jIChwYXNzX2RjZSk6IFVzZSBUT0RPX2NsZWFudXBfY2ZnIGFuZCBUT0RPX2R1bXBfZnVuYy4KCShwYXNzX2NkX2RjZSk6IERpdHRvLgoJKHBlcmZvcm1fdHJlZV9zc2FfZGNlKTogUmVtb3ZlIGNhbGwgdG8gY2xlYW51cF9jZmcsCglkdW1wX2Z1bmN0aW9uX3RvX2ZpbGUuCgkqIHRyZWUtc3NhLWxvb3AtY2guYyAoY29weV9sb29wX2hlYWRlcnMpOiBSZW1vdmUgY2FsbAoJdG8gY2xlYW51cF9jZmcuCgkocGFzc19jaCk6IEFkZCBUT0RPX2NsZWFudXBfY2ZnLgoJKiB0cmVlLXNzYS1sb29wLmMgKHRyZWVfc3NhX2xvb3BfZG9uZSk6IFJlbW92ZSBjYWxsIHRvCgljbGVhbnVwX2NmZy4KCShwYXNzX2xvb3BfZG9uZSk6IEFkZCBUT0RPX2NsZWFudXBfY2ZnLgoJKiB0cmVlLXNzYS1waGlvcHQuYyAocGFzc19waGlvcHQpOiBEaXR0by4KCSh0cmVlX3NzYV9waGlvcHQpOiBSZW1vdmUgY2FsbCB0byBjbGVhbnVwX2NmZy4KCjIwMDQtMTEtMTYgIERldmFuZyBQYXRlbCAgPGRwYXRlbEBhcHBsZS5jb20+CgoJKiBvcHRhYnMuYyAodmVjdG9yX2NvbXBhcmVfcnR4KTogRml4IENPTVBBUklTT05fQ0xBU1NfUCB1c2UuCgoyMDA0LTExLTE2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZXhwbWVkLmMsIHJhLWNvbG9yaXplLmM6IEZpeCBjb21tZW50IHR5cG9zLgoKCSogZG9jL3RtLnRleGk6IEZpeCB0eXBvcy4KCjIwMDQtMTEtMTYgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgkgICAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiB0YXJnZXQvNjEyMwoJKiBjb25maWcvc29sMi5oIChUQVJHRVRfT1NfQ1BQX0JVSUxUSU5TKTogRGVmaW5lIF9fUElDX18gYW5kCglfX3BpY19fIGlmIFBJQy4KCjIwMDQtMTEtMTYgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIHJlZ21vdmUuYyAocmVnbW92ZV9vcHRpbWl6ZSk6IFVzZSBsb3dwYXJ0X3N1YnJlZyBpbnN0ZWFkIG9mCglnZW5fcnR4X1NVQlJFRyB3aXRoIGluY29ycmVjdCBvZmZzZXQgdG8gY29tcHV0ZSBTUkNfU1VCUkVHLgoKMjAwNC0xMS0xNiAgRGV2YW5nIFBhdGVsICA8ZHBhdGVsQGFwcGxlLmNvbT4KCgkqIHRyZWUtaWYtY29udi5jIChjbGVhbl9wcmVkaWNhdGVfbGlzdHMpOiBVcGRhdGUgZ2NjX2Fzc2VydCBjaGVjay4KCjIwMDQtMTEtMTYgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5jOiBVc2UgcnRsIF9QIHByZWRpY2F0ZXMuCgkqIGNvbmZpZy9taXBzL21pcHMuaDogRGl0dG8uCgkqIGNvbmZpZy9taXBzL21pcHMubWQ6IERpdHRvLgoKMjAwNC0xMS0xNiAgRmFyaWJvcnogSmFoYW5pYW4gPGZqYWhhbmlhbkBhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL2FsdGl2ZWMubWQgKGFsdGl2ZWNfdmFuZGMpOiBDYW5vbmljYWxpemUKCXRoZSBwYXR0ZXJuLgoKMjAwNC0xMS0xNiAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbDFAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoczM5MF9jY19tb2Rlc19jb21wYXRpYmxlKTogTmV3IGZ1bmN0aW9uLgoJKFRBUkdFVF9DQ19NT0RFU19DT01QQVRJQkxFKTogVGFyZ2V0IG1hY3JvIGRlZmluZWQuCgoyMDA0LTExLTE2ICBLYXogS29qaW1hICA8a2tvamltYUBnY2MuZ251Lm9yZz4KCglQUiB0YXJnZXQvMTg0NDcKCSogY29uZmlnL3NoL3NoLmMgKHByZXBhcmVfbW92ZV9vcGVyYW5kcyk6IEVtaXQgYmxvY2thZ2UgaW5zbnMKCWJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGluc25zIGZvciBnZXR0aW5nIEdPVCBhZGRyZXNzIGluIG5vbi1QSUMKCVRMU19NT0RFTF9JTklUSUFMX0VYRUMgdGxzIHNlcXVlbmNlIHdoZW4gdGhlIGZpcnN0IHNjaGVkdWxpbmcKCWlzIGVuYWJsZWQuCgoyMDA0LTExLTE2ICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsMUBkZS5pYm0uY29tPgoKCSogZ2NjL2NzZS5jIChzdHJ1Y3QgY2hhbmdlX2NjX21vZGVfYXJncyk6IE5ldyBzdHJ1Y3R1cmUuCgkoY3NlX2NoYW5nZV9jY19tb2RlX2luc24pOiBOZXcgZnVuY3Rpb24uCgkoY3NlX2NoYW5nZV9jY19tb2RlKTogVXNlIHZhbGlkYXRlX2NoYW5nZSB0byBwZXJmb20gY2hhbmdlcy4KCShjc2VfY2hhbmdlX2NjX21vZGVfaW5zbnMsIGNzZV9jb25kaXRpb25fY29kZV9yZWcpOgoJQ2FsbCBjc2VfY2hhbmdlX2NjX21vZGVfaW5zbi4KCjIwMDQtMTEtMTYgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIHN0YWNrLmg6IFJlbW92ZS4KCjIwMDQtMTEtMTYgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoeDg2X3NjaGVkdWxlKTogRml4IHR5cG8sIG1fSzYgaW50ZWFkIG9mIG1fSzguCgoyMDA0LTExLTE1ICBEYWxlIEpvaGFubmVzZW4gIDxkYWxlakBhcHBsZS5jb20+CgoJKiB0cmVlLWZsb3cuaCAoYWRkX3JlZmVyZW5jZWRfdGVtcF92YXIpOiAgUmVtb3ZlIG5hbWUgZnJvbSBwcm90b3R5cGUuCgoyMDA0LTExLTE1ICBEYWxlIEpvaGFubmVzZW4gIDxkYWxlakBhcHBsZS5jb20+CgoJKiBwcm9maWxlLmMgKGNvbXB1dGVfYnJhbmNoX3Byb2JhYmlsaXRpZXMpOiAgUHJldmVudAoJY3Jhc2ggd2l0aCBFSCBpbiBSVEwtYmFzZWQgcHJvZmlsaW5nLgoKMjAwNC0xMS0xNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmMgKHZlcmlmeV9leHByKTogUmVwbGFjZSBUUkVFX09QRVJBTkQgd2l0aAoJQ09ORF9FWFBSX0NPTkQuCgkqIHRyZWUtaWYtY29udi5jICh0cmVlX2lmX2NvbnZlcnRfY29uZF9leHByKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWRvbS5jICh0aHJlYWRfYWNyb3NzX2VkZ2UpOiBMaWtld2lzZS4KCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfdHJhbnNmb3JtX2xvb3BfYm91bmQpOiBSZXBsYWNlCglUUkVFX09QRVJBTkQgd2l0aCBDT05EX0VYUFJfQ09ORCwgQ09ORF9FWFBSX1RIRU4sIG9yCglDT05EX0VYUFJfRUxTRS4KCgkqIHRyZWUtY2ZnLmMgKGJzaV9jb21taXRfZWRnZV9pbnNlcnRzKTogUmVtb3ZlIGFuIGFyZ3VtZW50LgoJKHRyZWVfZmxvd19jYWxsX2VkZ2VzX2FkZCk6IFVwZGF0ZSB0aGUgY2FsbCB0bwoJYnNpX2NvbW1pdF9lZGdlX2luc2VydHMuCgkqIGxhbWJkYS1jb2RlLmMgKGxhbWJkYV9sb29wbmVzdF90b19nY2NfbG9vcG5lc3QpOiBMaWtld2lzZS4KCSogcHJvZmlsZS5jIChicmFuY2hfcHJvYik6IExpa2V3aXNlLgoJKiB0cmVlLW11ZGZsYXAuYyAobWZfZGVjbF9jYWNoZV9sb2NhbHMpOiBMaWtld2lzZS4KCSogdHJlZS1zcmEuYyAoc2NhbGFyaXplX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWxvb3AtaW0uYyAobG9vcF9jb21taXRfaW5zZXJ0cyk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1wcmUuYyAoZmluaV9wcmUpOiBMaWtld2lzZS4KCSogdHJlZS1mbG93Lmg6IFVwZGF0ZSB0aGUgcHJvdG90eXBlIGZvcgoJYnNpX2NvbW1pdF9lZGdlX2luc2VydHMuCgoyMDA0LTExLTE1ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIHNjaGVkLWRlcHMuYyAoc2V0X3NjaGVkX2dyb3VwX3ApOiBEZWxldGUuCgkoZGVsZXRlX2FsbF9kZXBlbmRlbmNpZXMpOiBOZXcgZnVuY3Rpb24uCgkoZml4dXBfc2NoZWRfZ3JvdXBzKTogVXNlLiBOZXcgZnVuY3Rpb24uCgkoc2NoZWRfYW5hbHl6ZV9pbnNuKTogVXNlLgoKMjAwNC0xMS0xNSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLWNvbW1vbi5jIChiaW5hcnlfb3BfZXJyb3IpOiBEb24ndCBhbGxvdyBMUk9UQVRFX0VYUFIsCglSUk9UQVRFX0VYUFIgb3IgdW5rbm93biBjb2RlLgoJKiBjLXR5cGVjay5jIChidWlsZF9iaW5hcnlfb3ApOiBEb24ndCBhbGxvdyBSUk9UQVRFX0VYUFIsCglMUk9UQVRFX0VYUFIsIE1BWF9FWFBSLCBNSU5fRVhQUiwgVU5PUkRFUkVEX0VYUFIsIE9SREVSRURfRVhQUiwKCVVOTFRfRVhQUiwgVU5MRV9FWFBSLCBVTkdUX0VYUFIsIFVOR0VfRVhQUiwgVU5FUV9FWFBSLCBMVEdUX0VYUFIKCW9yIHVua25vd24gY29kZS4KCjIwMDQtMTEtMTUgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMvMTg0OTgKCSogYy1kZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogQ2FsbCBjaGVja19iaXRmaWVsZF90eXBlX2FuZF93aWR0aAoJYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgZGVjbGFyYXRvci4KCjIwMDQtMTEtMTUgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvYWx0aXZlYy5tZCAoImFsdGl2ZWNfdnNwbHRoIik6IFJld3JpdGUgd2l0aAoJdmVjX2R1cGxpY2F0ZS4KCShhbHRpdmVjX3ZzcGx0Yik6IFNhbWUuCgkoYWx0aXZlY192c3BsdHcpOiBTYW1lLgoJKGFsdGl2ZWNfdnNwbHRpc2IpOiBTYW1lLgoJKGFsdGl2ZWNfdnNwbHRpc2gpOiBTYW1lLgoJKGFsdGl2ZWNfdnNwbHRpc3cpOiBTYW1lLgoJKGFsdGl2ZWNfdnNwbHRpc3dfdjRzZik6IFNhbWUuCgkoZGVmaW5lX2NvbnN0YW50cyk6IFJlbW92ZSBVTlNQRUNfVlNQTFRJU0IsIFVOU1BFQ19WU1BMVElTVywKCVVOU1BFQ19WU1BMVElTSC4KCU1vdmUgIkVuZCBvZiB2ZWN0b3IgeG9yJ3MiIGNvbW1lbnQgdG8gdGhlIHJpZ2h0IHBsYWNlLgoKMjAwNC0xMS0xNSAgU3RldmUgRWxsY2V5ICA8c2plQGN1cC5ocC5jb20+CgoJKiBjb25maWcvaWE2NC9pYTY0Lm1kICgqbW92dGZfaW50ZXJuYWwpOiAgVXNlIGRlc3RpbmF0aW9uX29wZXJhbmQKCWluc3RlYWQgb2Ygbm9uaW1tZWRpYXRlX29wZXJhbmQuCgoyMDA0LTExLTE1ICBNYXJrIE1pdGNoZWxsIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvaTM4Ni9zb2wyLmggKEFTTV9PVVRQVVRfQ0FMTCk6IFVzZSBwcmludF9vcGVyYW5kLgoJKiBjb25maWcvc3BhcmMvc29sMi5oIChBU01fT1VUUFVUX0NBTEwpOiBMaWtld2lzZS4KCSogY29uZmlnL3NvbDIuYyAoc29sYXJpc19vdXRwdXRfaW5pdF9maW5pKTogVXBkYXRlIGNhbGxzIHRvCglBU01fT1VUUFVUX0NBTEwuICBJbmNsdWRlICJydGwuaCIuCgoyMDA0LTExLTE1ICBNYXJrIE1pdGNoZWxsIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvc29sMi1jLmMgKGNtbl9lcnJfY2hhcl90YWJsZSk6IEFkZCAicCIuCgoyMDA0LTExLTE1ICBNYXJrIE1pdGNoZWxsIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvc3BhcmMvc29sMi5oIChTVVBQT1JUU19JTklUX1BSSU9SSVRZKTogUmVtb3ZlLgoJKiBjb25maWcvc29sMi5oIChTVVBQT1JUU19JTklUX1BSSU9SSVRZKTogRGVmaW5lIGhlcmUuCgoyMDA0LTExLTE1ICBNYXJrIE1pdGNoZWxsIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvdC1zbGliZ2NjLXNsZCAoU0hMSUJfTElOSyk6IE1ha2Ugc3ltbGlua3MgZW50aXJlbHkKCXdpdGhpbiB0aGUgbXVsdGlsaWIgZGlyZWN0b3J5LgoKMjAwNC0xMS0xNSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9zdG9ybXkxNi9zdG9ybXkxNi5oIChUQVJHRVRfQ1BVX0NQUF9CVUlMVElOUyk6IEFkZAoJYnVpbHRpbiBhc3NlcnQgb2YgY3B1PXhzdG9ybXkxNi4KCjIwMDQtMTEtMTUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlLXNzYS1wcmUuYyAoYml0bWFwX3ByaW50X3ZhbHVlX3NldCk6IEZpeCB1bmluaXRpYWxpemVkCgl2YXJpYWJsZS4KCjIwMDQtMTEtMTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgMTg0ODAKCSogY2FsbHMuYyAoc3RydWN0IGFyZ19kYXRhKTogQWRkIHBhcmFsbGVsX3ZhbHVlLgoJKHByZWNvbXB1dGVfcmVnaXN0ZXJfcGFyYW1ldGVycyk6IFNldCBpdC4KCShsb2FkX3JlZ2lzdGVyX3BhcmFtZXRlcnMpOiBVc2UgaXQuCgkoc3RvcmVfb25lX2FyZyk6IEFsc28gc2V0IGl0IGhlcmUuCgoyMDA0LTExLTE0ICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE4NDMxCgkqIGZvbGQtY29uc3QuYyAoYXNzb2NpYXRlX3RyZWVzKTogRG8gbm90IHByb2R1Y2UgeCArIDAuCgkoZm9sZF93aWRlbmVkX2NvbXBhcmlzb24sIGZvbGRfc2lnbl9jaGFuZ2VkX2NvbXBhcmlzb24pOiBOZXcgZnVuY3Rpb25zLgoJKGZvbGQpOiBVc2UgdGhlbS4KCSogdHJlZS1zc2EtbG9vcC1uaXRlci5jICh1cHBlcl9ib3VuZF9pbl90eXBlLCBsb3dlcl9ib3VuZF9pbl90eXBlKToKCU1vdmVkIC4uLgoJKiB0cmVlLmMgKHVwcGVyX2JvdW5kX2luX3R5cGUsIGxvd2VyX2JvdW5kX2luX3R5cGUpOiBIZXJlLgoJKiB0cmVlLmggKHVwcGVyX2JvdW5kX2luX3R5cGUsIGxvd2VyX2JvdW5kX2luX3R5cGUpOiBEZWNsYXJlLgoKMjAwNC0xMS0xNCAgRXJpYyBCb3RjYXpvdSA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogZG9jL3J0bC50ZXhpIChTVUJSRUcpOiBBZGp1c3QgQllURU5VTSB2YWx1ZSBpbiBleGFtcGxlLgoKMjAwNC0xMS0xNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNmZ3J0bC5jLCBnbG9iYWwuYywgdHJlZS1zc2EtY29weS5jLCB0cmVlLXNzYS1sb29wLWl2b3B0cy5jLAoJdmFsdWUtcHJvZi5jOiBGaXggY29tbWVudCB0eXBvcy4KCjIwMDQtMTEtMTQgIFN0YW4gU2hlYnMgIDxzaGVic0BhcHBsZS5jb20+CgoJQmFzaWMgQUJJIGNoYW5nZXMgZm9yIHBhc3Npbmcgc3RydWN0cyBieSB2YWx1ZSBpbiA2NC1iaXQgRGFyd2luLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfZGFyd2luNjRfYWJpKTogTmV3IGZsYWcuCgkocnM2MDAwX292ZXJyaWRlX29wdGlvbnMpOiBTZXQgaXQgZm9yIDY0LWJpdCBEYXJ3aW4uCgkocnM2MDAwX3BhcnNlX2FiaV9vcHRpb25zKTogQWRkIHRlc3Rpbmcgb3B0aW9ucyB0byBjaGFuZ2UgaXQuCgkocnM2MDAwX3JldHVybl9pbl9tZW1vcnkpOiBUZXN0IHdoZXRoZXIgdGhlIHR5cGUgaXMgb25lCgl0aGF0IGNhbiBiZSBwYXNzZWQgaW4gcmVnaXN0ZXJzLgoJKGRhcndpbjY0X2Z1bmN0aW9uX2FyZ19hZHZhbmNlKTogTmV3LgoJKGZ1bmN0aW9uX2FyZ19hZHZhbmNlKTogQ2FsbCBpdCwgcGx1cyBhZGQgcmVjdXJzaW9uIGRlcHRoCglhcmd1bWVudCBhbmQgdGVzdCB3aGVuIGNvdW50aW5nIG9mZiBhcmd1bWVudHMuCgkocnM2MDAwX2RhcndpbjY0X2Z1bmN0aW9uX2FyZyk6IE5ldy4KCShmdW5jdGlvbl9hcmcpOiBDYWxsIGl0LgoJKHNldHVwX2luY29taW5nX3ZhcmFyZ3MpOiBBZGQgYXJndW1lbnQgdG8gZnVuY3Rpb25fYXJnX2FkdmFuY2UuCgkocnM2MDAwX2RhcndpbjY0X2Z1bmN0aW9uX3ZhbHVlKTogTmV3LgoJKHJzNjAwMF9mdW5jdGlvbl92YWx1ZSk6IENhbGwgaXQuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKEZVTkNUSU9OX0FSR19BRFZBTkNFKTogUGFzcyBkZXB0aCBhcmcuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLXByb3Rvcy5oOiBVcGRhdGUgZGVjbCBvZgoJZnVuY3Rpb25fYXJnX2FkdmFuY2UuCgoyMDA0LTExLTE0ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiBjLzE3Mjc5CgkqIGMtY29tbW9uLmMgKGNfY29tbW9uX25vZGVzX2FuZF9idWlsdGlucyk6IEFzayB0aGUgYmFjay1lbmQgaWYgd2UKCXN1cHBvcnQgVEltb2RlIGJlZm9yZSBhZGRpbmcgX19pbnQxMjhfdCBhbmQgX191aW50MTI4X3QgdHlwZXMuCgoyMDA0LTExLTE0ICBEb3JpdCBOYWlzaGxvcyAgPGRvcml0QGlsLmlibS5jb20+CgoJUFIgdHJlZS1vcHQvMTg0MDAKCSogdHJlZS12ZWN0b3JpemVyLmMgKG1ha2VfbG9vcF9pdGVyYXRlX250aW1lcyk6IFNldCBsb29wLT5uYl9pdGVyYXRpb25zLgoJKHZlY3RfdHJhbnNmb3JtX2xvb3BfYm91bmQpOiBTZXQgbG9vcC0+bmJfaXRlcmF0aW9ucy4KCjIwMDQtMTEtMTQgIERvcml0IE5haXNobG9zICA8ZG9yaXRAaWwuaWJtLmNvbT4KCSAgICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiB0cmVlLW9wdC8xODQyNQoJKiB0cmVlLXZlY3Rvcml6ZS5jICh2ZWN0X2J1aWxkX2xvb3Bfbml0ZXJzKTogRG8gbm90IGluc2VydAoJTlVMTCBpbnRvIHRoZSBpbnN0cnVjdGlvbiBzdHJlYW0uIEluaXRpYWxpemUgbmV3X2JiIHRvIE5VTEwuCgkodmVjdF91cGRhdGVfaXZzX2FmdGVyX3ZlY3Rvcml6ZXIpOiBMaWtld2lzZS4KCSh2ZWN0X2dlbl9uaXRlcnNfZm9yX3Byb2xvZ19sb29wKTogTGlrZXdpc2UuCgoyMDA0LTExLTE0ICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE4NDMxCgkqIHRyZWUtZmxvdy5oIChzdG10X3JlZmVyZW5jZXNfbWVtb3J5X3ApOiBEZWNsYXJlLgoJKiB0cmVlLXNzYS1sb29wLWltLmMgKHN0bXRfY29zdCk6IFVzZSBzdG10X3JlZmVyZW5jZXNfbWVtb3J5X3AuCgkqIHRyZWUtc3NhLmMgKHN0bXRfcmVmZXJlbmNlc19tZW1vcnlfcCk6IE5ldyBmdW5jdGlvbi4KCjIwMDQtMTEtMTQgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBNYWtlZmlsZS5pbiAobGFtYmRhLWNvZGUubywgdHJlZS1sb29wLWxpbmVhci5vKTogRGVwZW5kIG9uCgkkKEVYUFJfSCkuCgoyMDA0LTExLTE0ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYy1jb21tb24uYyAod2Fsa19zdG10X3RyZWUpOiBSZW1vdmUuCgkqIGMtY29tbW9uLmg6IFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGUuCgoJKiBlbWl0LXJ0bC5jIChwdXNoX3RvX2Z1bGxfc2VxdWVuY2UpOiBSZW1vdmUuCgkqIHJ0bC5oOiBSZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvdG90eXBlLgoKCSogY3NlbGliLmMsIGV4cHIuYzogRml4IGNvbW1lbnQgdHlwb3MuCgoyMDA0LTExLTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY2FsbHMuYyAocHJlY29tcHV0ZV9yZWdpc3Rlcl9wYXJhbWV0ZXJzKTogRm9yY2UgYWxsIFBBUkFMTEVMcwoJaW50byBwc2V1ZG8gcmVnaXN0ZXJzLgoJKGxvYWRfcmVnaXN0ZXJfcGFyYW1ldGVycyk6IENvcHkgUEFSQUxMRUxzIGludG8gaGFyZCByZWdpc3RlcnMuCgkqIGZ1bmN0aW9uLmMgKGFzc2lnbl9wYXJtX3NldHVwX2Jsb2NrKTogQ29weSBQQVJBTExFTFMgaW50bwoJcHNldWRvIHJlZ2lzdGVycy4gIERvIGVtaXRfZ3JvdXBfc3RvcmUgaW4gY29udmVyc2lvbl9pbnNucy4KCSogZXhwci5jIChlbWl0X2dyb3VwX2xvYWRfMSk6IFJlbmFtZSBmcm9tIGVtaXRfZ3JvdXBfbG9hZCwgdGFrZQoJdG1wcyBhcyBhbiBhcmd1bWVudC4gIE1vdmUgZmluYWwgY29weSBsb29wIC4uLgoJKGVtaXRfZ3JvdXBfbG9hZCk6IC4uLiBoZXJlLiAgTmV3IGZ1bmN0aW9uLgoJKGVtaXRfZ3JvdXBfbG9hZF9pbnRvX3RlbXBzLCBlbWl0X2dyb3VwX21vdmVfaW50b190ZW1wcyk6IE5ldy4KCSogZXhwci5oOiBEZWNsYXJlIHRoZW0uCgoyMDA0LTExLTE0ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1jZmcuYywgdHJlZS1pZi1jb252LmMsIHRyZWUtc3NhLWxvb3AtaXZvcHRzLmMsCgl0cmVlLXNzYS1sb29wLW1hbmlwLmMsIHRyZWUtdmVjdG9yaXplci5jOiBSZXBsYWNlIFRSRUVfQ0hBSU4KCXdpdGggUEhJX0NIQUlOIHdoZXJlIGFwcHJvcHJpYXRlLgoKMjAwNC0xMS0xMyAgRGFsZSBKb2hhbm5lc2VuICA8ZGFsZWpAYXBwbGUuY29tPgoKCSogdHJlZS1mbG93LmggKGJzaV9jb21taXRfb25lX2VkZ2VfaW5zZXJ0KTogUmVtb3ZlIG5hbWUgZnJvbSBwcm90b3R5cGUuCgkodHJlZV9ibG9ja19sYWJlbCk6IERpdHRvLgoJKGZsdXNoX3BlbmRpbmdfc3RtdHMpOiBEaXR0by4KCShpbnNlcnRfZWRnZV9jb3BpZXMpOiBEaXR0by4KCShleHByX2ludmFyaWFudF9pbl9sb29wX3ApOiBEaXR0by4KCShUREZfVVNFX09QUyk6IFBhcmVudGhlc2l6ZSBkZWZpbml0aW9uLgoJKFRERl9VU0VfVk9QUyk6IERpdHRvLgoKMjAwNC0xMS0xMyAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogY29uZmlnL3JzNjAwMC9haXg1MS5oIChBU01fQ1BVX1NQRUMpOiBBZGQgOTcwIGFuZCBHNS4KCSogY29uZmlnL3JzNjAwMC9haXg1Mi5oIChBU01fQ1BVX1NQRUMpOiBTYW1lLgoJKGF0b2xsKTogRGVjbGFyZS4KCSogY29uZmlnL3JzNjAwMC90LWFpeDUyIChCT09UX0xERkxBR1MpOiBEZWZpbmUuCgoyMDA0LTExLTE0ICBKb3NlcGggTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAob3ZlcnJpZGVfb3B0aW9ucyk6IE1vdmUgbG9vcCB0byBzZXQgZGVmYXVsdAoJdHVuaW5nIHRvIGNvcnJlY3QgcGxhY2UuCgoyMDA0LTExLTEzICBaYWsgS2lwbGluZyAgPHpha0B0cmFuc3ZlcnNhbC5jb20+CgoJUFIgdGFyZ2V0LzE4MzAwCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoY2xhc3NpZnlfYXJndW1lbnQpOiBGaXggaW5maW5pdGUgbG9vcCB3aGVuCglwYXNzaW5nIG9iamVjdCB3aXRoIDMgb3IgbW9yZSBiYXNlIGNsYXNzZXMgYnkgdmFsdWUuCgoyMDA0LTExLTEzICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogZG9jL21kLnRleGkgKGNvbnN0cmFpbnRzKSA8JSBtb2RpZmllcj46IE1lbnRpb24gdGhhdCBpdCBpcwoJdXNlbGVzcyB3aGVuIHRoZSB0d28gYWx0ZXJuYXRpdmVzIGFyZSBzdHJpY3RseSBpZGVudGljYWwuCgoyMDA0LTExLTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZXhwbWVkLmMgKGV4dHJhY3Rfc3BsaXRfYml0X2ZpZWxkKTogVGVtcG9yYXJpbHkgZGlzYWJsZSBjYWxsIHRvCglleHRyYWN0X2ZvcmNlX2FsaWduX21lbV9iaXRfZmllbGQuCgoyMDA0LTExLTEzICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYml0bWFwLmMsIGJpdG1hcC5oLCBleHBtZWQuYywgdHJlZS1jZmcuYzogRml4IGNvbW1lbnQKCWZvcm1hdHRpbmcuCgoJKiBjLWNwcGJ1aWx0aW4uYywgY2dyYXBoLmMsIGRvbXdhbGsuaCwgZXhjZXB0LmMsIGdpbXBsaWZ5LmMsCglsYW1iZGEtY29kZS5jLCBwb3N0cmVsb2FkLmMsIHByZWRpY3QuYywgdHJlZS1zcmEuYywKCXRyZWUtc3NhLWxvb3AtbWFuaXAuYywgdHJlZS5jOiBGaXggY29tbWVudCB0eXBvcy4KCjIwMDQtMTEtMTMgIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgoJKiBkb2MvaW5zdGFsbC50ZXhpIChhdXRvbWFrZSk6IENvcnJlY3RseSBkb2N1bWVudCB0aGF0IGV2ZXJ5dGhpbmcgbm93Cgl3aWxsIHVzZSBhdXRvbWFrZSAxLjkuMy4KCjIwMDQtMTEtMTMgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCglQUiB0YXJnZXQvMTgzNDcKCSogY29uZmlnL21taXgvbW1peC5jIChtbWl4X2Z1bmN0aW9uX291dGdvaW5nX3ZhbHVlKTogSGFuZGxlCglUSW1vZGUuICBTb3JyeSBmb3Igb3RoZXIgbm9uLWNvbXBsZXggbGFyZ2VyLXRoYW4tNjQtYml0IG1vZGVzLgoJKiBjb25maWcvbW1peC9tbWl4LmggKE1JTl9VTklUU19QRVJfV09SRCk6IERvIG5vdCBkZWZpbmUuCgoyMDA0LTExLTEzICBLZWxsZXkgQ29vayAgPGtjb29rQGdjYy5nbnUub3JnPgoKCSogZG9jL2luc3RhbGwudGV4aSAoYXV0b21ha2UpOiBEb2N1bWVudCB0aGF0IGV2ZXJ5dGhpbmcgbm93IHVzZXMgMS45LgoKMjAwNC0xMS0xMyAgQmVybmQgU2NobWlkdCAgPGJlcm5kLnNjaG1pZHRAYW5hbG9nLmNvbT4KCgkqIGNzZS5jIChjc2VfaW5zbik6IFN0b3JlcyBpbiBhIGxpYmNhbGwgc2VxdWVuY2UgY2FuIGludmFsaWRhdGUKCXByZXZpb3VzIGxvYWRzLgoKMjAwNC0xMS0xMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUuaDogRml4IGNvbW1lbnQgdHlwb3MuCgoyMDA0LTExLTEzICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBjc2UuYyAoQ0hFQVBfUkVHTk8pOiBSZWRlZmluZSB1c2luZyBSRUdOT19QVFJfRlJBTUVfUCBhbmQKCUhBUkRfUkVHSVNURVJfTlVNX1AuCgoJKiBjc2VsaWIuYyAobmV3X2NzZWxpYl92YWwpOiBNYWtlIGNvbW1lbnQgY29ycmVjdCBhbmQgbW9yZSBkZXRhaWxlZC4KCSogZmxvdy5jIChtYXJrX3NldF8xKTogTGlrZXdpc2UuCgoJKiBleGNlcHQuYyAoZHVwbGljYXRlX2VoX3JlZ2lvbl8xLCBkdXBsaWNhdGVfZWhfcmVnaW9uXzIsCglkdXBsaWNhdGVfZWhfcmVnaW9ucyk6IFJlbW92ZS4KCSogZXhjZXB0LmggKGR1cGxpY2F0ZV9laF9yZWdpb25zKTogUmVtb3ZlIHByb3RvdHlwZS4KCSogaW50ZWdyYXRlLmMgKGdldF9sYWJlbF9mcm9tX21hcCwgY29weV9ydHhfYW5kX3N1YnN0aXR1dGUsCglnbG9iYWxfY29uc3RfZXF1aXZfdmFycmF5KTogUmVtb3ZlLgoJKiBpbnRlZ3JhdGUuaCAoZ2V0X2xhYmVsX2Zyb21fbWFwLCBjb3B5X3J0eF9hbmRfc3Vic3RpdHV0ZSwKCWdsb2JhbF9jb25zdF9lcXVpdl92YXJyYXksIHNldF9sYWJlbF9pbl9tYXApOiBSZW1vdmUgcHJvdG90eXBlcywKCWV4dGVybiBkZWNsYXJhdGlvbiwgYW5kICNkZWZpbmUuCgkoTUFZQkVfRVhURU5EX0NPTlNUX0VRVUlWX1ZBUlJBWSwgU0VUX0NPTlNUX0VRVUlWX0RBVEEpOiBSZW1vdmUuCgkoc3RydWN0IGlubGluZV9yZW1hcCk6IFJlbW92ZS4KCSogdmFycmF5LmMgKHN0cnVjdCBlbGVtZW50KTogUmVtb3ZlIGVudHJ5IGZvciBjb25zdF9lcXVpdl9kYXRhLgoJKiB2YXJyYXkuaCAoc3RydWN0IGNvbnN0X2VxdWl2X2RhdGEpOiBSZW1vdmUuCgkoZW51bSB2YXJyYXlfZGF0YV9lbnVtKSA8VkFSUkFZX0RBVEFfQ09OU1RfRVFVSVY+OiBSZW1vdmUuCgkodW5pb24gdmFycmF5X2RhdGFfdGFnKSA8Y29uc3RfZXF1aXY+OiBSZW1vdmUuCgkoVkFSUkFZX0NPTlNUX0VRVUlWX0lOSVQsIFZBUlJBWV9DT05TVF9FUVVJViwKCVZBUlJBWV9QVVNIX0NPTlNUX0VRVUlWLCBWQVJSQVlfVE9QX0NPTlNUX0VRVUlWKTogUmVtb3ZlLgoKCSogcmVnc3RhY2suYyAocmVjb3JkX2xhYmVsX3JlZmVyZW5jZXMpOiBSZW1vdmUgdW51c2VkIGZ1bmN0aW9uLgoKCSogcnRsLmRlZiAoVkFMVUUpOiBVcGRhdGUgY29tbWVudC4KCShMQUJFTF9SRUYpOiBSZW1vdmUgdW51c2VkIG9wZXJhbmQgMi4KCSogcnRsLmggKHN0cnVjdCBydHhfZGVmKTogVXBkYXRlIGZvciByZW1vdmVkIGFjY2Vzc29yIG1hY3Jvcy4KCShYQ0FEVkZMQUdTLCBJTlNOX0RFQURfQ09ERV9QLCBMSU5FX05VTUJFUiwgQ09OVEFJTklOR19JTlNOLAoJUkVHX0xPT1BfVEVTVF9QKTogUmVtb3ZlLgoJKEFERFJfRElGRl9WRUNfRkxBR1MsIENTRUxJQl9WQUxfUFRSLCBMQUJFTF9ORVhUUkVGKTogQWRkIGNvbW1lbnRzLgoJKiB3ZWIuYyAoZW50cnlfcmVnaXN0ZXIpOiBEb24ndCBjb3B5IFJFR19MT09QX1RFU1RfUC4KCSogZG9jL3J0bC50ZXhpIChJTlNOX0RFQURfQ09ERV9QLCBSRUdfTE9PUF9URVNUX1ApOiBSZW1vdmUuCgoyMDA0LTExLTEzICBKYW1lcyBBLiBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgkgICAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiB0YXJnZXQvMTgyMzAKCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKHNwYXJjX3J0eF9jb3N0cyk6IEhhbmRsZSB0aGUgTkFORCB2ZWN0b3IKCXBhdHRlcm5zLgoJKiBjb25maWcvc3BhcmMvc3BhcmMubWQgKFY2NEkpOiBOZXcgbWFjcm8gZm9yIDY0LWJpdCBtb2Rlcy4KCShWMzJJKTogTmV3IG1hY3JvIGZvciAzMi1iaXQgbW9kZXMuCgkoYW5kZGkzLCBhbmRkaV9zcDMyLCBhbmRkaV9zcDY0LCBhbmRfbm90X2RpX3NwMzIsIGFuZF9ub3RfZGlfc3A2NCwKCWlvcmRpMywgaW9yZGkzX3NwMzIsIGlvcmRpX3NwNjQsIG9yX25vdF9kaV9zcDMyLCBvcl9ub3RfZGlfc3A2NCwKCXhvcmRpMywgeG9yZGkzX3NwMzIsIHhvcmRpM19zcDY0LCB7QU5ELCBJT1IsIFhPUn0gREkgc3BsaXR0ZXIsCgl4b3Jfbm90X2RpX3NwMzIsIHhvcmRpX25vdF9kaV9zcDY0LCBvbmVfY21wbGRpMiwgb25lX2NtcGxkaV9zcDMyLAoJb25lX2NtcGxkaV9zcDY0KTogVXNlIFY2NEkgaW5zdGVhZCBvZiBESS4KCShhbmRzaTMsIGFuZHNpX3NwMzIsIGFuZHNpX3NwNjQsIGFuZF9ub3Rfc2ksIGlvcnNpMywgb3Jfbm90X3NpLAoJeG9yc2kzLCB4b3Jfbm90X3NpLCBvbmVfY21wbHNpMik6IFVzZSBWMzJJIGluc3RlYWQgb2YgU0kuCgkoYWRkdjJzaTMsIGFkZHY0aGkzLCBhZGR2MmhpMyk6IFJlbW92ZSAlIG1vZGlmaWVyLgoJKG5hbmR2NjRpX3ZpcywgbmFuZHYzMmlfdmlzKTogTmV3IHBhdHRlcm5zLgoKMjAwNC0xMS0xMiAgTWlrZSBTdHVtcCAgPG1yc0BhcHBsZS5jb20+CgoJKiBNYWtlZmlsZS5pbjogQWRkIGh0bWwgc3VwcG9ydC4KCSogamF2YS9NYWtlLWxhbmcuaW46IExpa2V3aXNlLgoJKiBmb3J0cmFuL01ha2UtbGFuZy5pbjogTGlrZXdpc2UuCgkqIHRyZWVsYW5nL01ha2UtbGFuZy5pbjogTGlrZXdpc2UuCgkqIGRvYy9pbnN0YWxsLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvbWFrZWZpbGUudGV4aTogTGlrZXdpc2UuCgkqIGRvYy9zb3VyY2VidWlsZC50ZXhpOiBMaWtld2lzZS4KCjIwMDQtMTEtMTMgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLXNzYS1sb29wLW1hbmlwLmM6IEZpeCBhIGNvbW1lbnQgdHlwby4KCjIwMDQtMTEtMTIgIE1pa2UgU3R1bXAgIDxtcnNAYXBwbGUuY29tPgoKCSogZG9jL2NwcGludGVybmFscy50ZXhpIChJbmRleCk6IEZpeCBodG1sIGdlbmVyYXRpb24gd2l0aCBtYWtlaW5mbyBieQoJcmVuYW1pbmcgdGhpcyBub2RlIHRvIENvbmNlcHQgSW5kZXguCgkqIGRvYy9nY2NpbnQudGV4aSAoSW5kZXgpOiBMaWtld2lzZS4gIEFsc28gbWlub3IgZm9ybWF0dGluZyB0d2Vha3MKCXRvIG1vcmUgY2xvc2VseSBtYXRjaCBnY2MudGV4aS4KCjIwMDQtMTEtMTIgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiB0cmVlLWNmZy5jIChoYXNodGFiLmgpOiBJbmNsdWRlLgoJKHN0cnVjdCBlZGdlX3RvX2Nhc2VfbGVhZGVyX2VsdCk6IE5ldyBzdHJ1Y3R1cmUuCgkoZWRnZV90b19jYXNlX2xlYWRlcik6IE5ldy4KCShlZGdlX3RvX2Nhc2VfbGVhZGVyX2hhc2gpOiBOZXcgaGFzaHRhYmxlIGhhc2luZyBmdW5jdGlvbi4KCShlZGdlX3RvX2Nhc2VfbGVhZGVyX2VxKTogTmV3IGhhc2h0YWJsZSBlcXVhbGl0eSBmdW5jdGlvbi4KCShyZWNvcmRfc3dpdGNoX2VkZ2UpOiBOZXcgZnVuY3Rpb24uCgkoZ2V0X2Nhc2VfbGVhZGVyX2Zvcl9lZGdlLCBnZXRfY2FzZV9sZWFkZXJfZm9yX2VkZ2UpOiBOZXcgZnVuY3Rpb25zLgoJKG1ha2Vfc3dpdGNoX2V4cHJfZWRnZXMpOiBCdWlsZCB0aGUgZWRnZS10by1jYXNlLWxlYWRlcgoJaGFzaCB0YWJsZS4gIFRlYXIgZG93biB0aGUgaGFzaCB0YWJsZSB3aGVuIHdlJ3JlIGRvbmUuCgkoY2xlYW51cF9kZWFkX2xhYmVscyk6IFVzZSBDQVNFX0xFQURFUl9PUl9MQUJFTCBpbnN0ZWFkIG9mCglDQVNFX0xBQkVMLgoJKHRyZWVfbm9kZV9jYW5fYmVfc2hhcmVkKTogQWxsb3cgc2hhcmluZyBvZiBDQVNFX0xBQkVMX0VYUFIgbm9kZXMuCgkodHJlZV9yZWRpcmVjdF9lZGdlX2FuZF9icmFuY2gsIGNhc2UgU1dJVENIX0VYUFIpOiBVcGRhdGUKCXRvIHVzZSBuZXcgY29uY2VwdCBvZiBjYXNlIGxlYWRlcnMgdG8gcmVkdWNlIG92ZXJoZWFkIG9mCglyZWRpcmVjdGluZyBvdXRnb2luZyBlZGdlcyBmcm9tIHN3aXRjaCBzdGF0ZW1lbnRzLgoJKiB0cmVlLmMgKGdldF9jYXNlX2xhYmVsKTogTmV3IGZ1bmN0aW9uLgoJKiB0cmVlLmggKENBU0VfTEFCRUwpOiBEZWZpbmUgaW4gdGVybXMgb2YgZ2V0X2Nhc2VfbGFiZWwuCgkoQ0FTRV9MRUFERVJfT1JfTEFCRUwpOiBEZWZpbmUuCgoyMDA0LTExLTEyICBaaWVtb3dpdCBMYXNraSAgPHpsYXNraUBhcHBsZS5jb20+CgoJKiB2YXJhc20uYyAob3V0cHV0X2FkZHJlc3NlZF9jb25zdGFudHMpOiBGb3IgQ09OU1RfREVDTHMsCglvdXRwdXQgdGhlIGluaXRpYWxpemVyIGlmIHByZXNlbnQuCgoyMDA0LTExLTEyICBaaWVtb3dpdCBMYXNraSAgPHpsYXNraUBhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5oOiBGaXggY29uZnVzaW5nIHR5cG8gaW4gY29tbWVudC4KCjIwMDQtMTEtMTIgIERldmFuZyBQYXRlbCAgPGRwYXRlbEBhcHBsZS5jb20+CgoJKiBvcHRhYnMuYyAodmVjdG9yX2NvbXBhcmVfcnR4KTogVXNlIENPTVBBUklTT05fQ0xBU1NfUC4KCjIwMDQtMTEtMTIgIERldmFuZyBQYXRlbCAgPGRwYXRlbEBhcHBsZS5jb20+CgoJKiB0cmVlLWlmLWNvbnYuYyAoY2xlYW5fcHJlZGljYXRlX2xpc3RzKTogVXNlIGxvb3AgaGVhZGVyCglhbmQgbGF0Y2ggZGlyZWN0bHkuCgoyMDA0LTExLTEyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIDE3Nzc4CgkqIGNvbmZpZy9pMzg2L2kzODYuaCAoVEFSR0VUXzk2X1JPVU5EXzUzX0xPTkdfRE9VQkxFKTogTmV3LgoJKiBjb25maWcvaTM4Ni9mcmVlYnNkLmggKFNVQlRBUkdFVF9PVkVSUklERV9PUFRJT05TKTogUmVtb3ZlLgoJKFRBUkdFVF85Nl9ST1VORF81M19MT05HX0RPVUJMRSk6IE5ldy4KCSogY29uZmlnL2kzODYvaTM4Ni1tb2Rlcy5kZWYgKFhGKTogVXNlIGl0LgoKMjAwNC0xMS0xMSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBNYWtlZmlsZS5pbiAobWFjcm9fbGlzdCk6IFVzZSBtb3ZlLWlmLWNoYW5nZSB0byBhdm9pZCBzcHVyaW91cwoJcmVidWlsZHMuCgoyMDA0LTExLTEyICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xODQxNgoJKiBwYXNzZXMuYyAocmVzdF9vZl9kZWNsX2NvbXBpbGF0aW9uKTogRG8gbm90IGxvb2sgYXQgREVDTF9SVEwKCXdoZW4gZGVjaWRpbmcgd2hldGhlciB0byBwYXNzIGEgdmFyaWFibGUgdG8KCWNncmFwaF92YXJwb29sX2ZpbmFsaXplX2RlY2wgb3IgYXNzZW1ibGVfdmFyaWFibGUuCgkqIHRvcGxldi5jIChjaGVja19nbG9iYWxfZGVjbGFyYXRpb25zKTogRG8gbm90IGNsZWFyIERFQ0xfUlRMLgoKMjAwNC0xMS0xMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtdmVjdG9yaXplci5jOiBGaXggYSBjb21tZW50IHR5cG8uCgoyMDA0LTExLTEyICBCZXJuZCBTY2htaWR0ICA8YmVybmQuc2NobWlkdEBhbmFsb2cuY29tPgoKCSogZ2VuY29uZmlnLmMgKHdhbGtfaW5zbl9wYXJ0KTogTG9vayBhdCBtYXRjaF9kdXBzIGluc2lkZSBhIGxhYmVsX3JlZi4KCjIwMDQtMTEtMTIgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1zY2FsYXItZXZvbHV0aW9uLmMgKGFuYWx5emFibGVfY29uZGl0aW9uKTogUmVtb3ZlCglzdXBlcmZsdW91cyBUUkVFX1RISVNfVk9MQVRJTEUgY2hlY2tzIG9uIFNTQV9OQU1Fcy4KCjIwMDQtMTEtMTIgIFJhbGYgQ29yc2VwaXVzICA8cmFsZi5jb3JzZXBpdXNAcnRlbXMub3JnPgoKCSogY29uZmlnL3JzNjAwMC90LXJ0ZW1zIChNVUxUSUxJQl9ORVdfRVhDRVBUSU9OU19PTkxZKToKCVJlbW92ZSBtNTA1L3JvZSBtdWx0aWxpYiB2YXJpYW50LgoKMjAwNC0xMS0xMiAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGV4cHIuYyAoZW1pdF9ncm91cF9sb2FkKSA8Q09OQ0FUPjogVXNlIGV4dHJhY3RfYml0X2ZpZWxkCgl0byBsb2FkIGZyb20gdGhlIHN0YWNrLgoKMjAwNC0xMS0xMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRvcGxldi5jIChmbG9vcl9sb2cyKTogUmVuYW1lIGZyb20gZmxvb3JfbG9nMl93aWRlLCB1c2UgQ0xaX0hXSS4KCShleGFjdF9sb2cyKTogUmVuYW1lIGZyb20gZXhhY3RfbG9nMl93aWRlLCB1c2UgQ1RaX0hXSS4KCSogdG9wbGV2LmggKEZMMlRfXyk6IFJlbW92ZS4KCShDTFpfSFdJKTogUmVuYW1lIGZyb20gRkwyVF9DTFpfXy4KCShDVFpfSFdJKTogTmV3LgoJKGZsb29yX2xvZzIpOiBTaW1wbGlmeS4KCShleGFjdF9sb2cyKTogTmV3LgoKMjAwNC0xMS0xMiAgU2ViYXN0aWFuIFBvcCAgPHBvcEBjcmkuZW5zbXAuZnI+CgoJKiB0cmVlLWRhdGEtcmVmLmMgKGFuYWx5emVfc3Vic2NyaXB0X2FmZmluZV9hZmZpbmUpOiBDb3JyZWN0bHkKCWNvbXB1dGUgdGhlIGZpcnN0IG92ZXJsYXBwaW5nIGl0ZXJhdGlvbnMuCgoyMDA0LTExLTEyICBTZWJhc3RpYW4gUG9wICA8cG9wQGNyaS5lbnNtcC5mcj4KCglQUiBtaWRkbGUtZW5kLzE4MDA1CgkqIHRyZWUtZGF0YS1yZWYuYyAoZXN0aW1hdGVfbml0ZXJfZnJvbV9zaXplX29mX2RhdGEpOiBFbnN1cmUKCXRoYXQgYXJndW1lbnRzIG9mIEVYQUNUX0RJVl9FWFBSIGFyZSBJTlRFR0VSX0NTVC4KCjIwMDQtMTEtMTIgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xODQxOQoJKiB0cmVlLXNzYS5jICh3YWxrX3VzZV9kZWZfY2hhaW5zXzEpOiBNYWtlIHRoZSB2aXNpdGVkIG1hcCBhCglwb2ludGVyIHNldCBpbnN0ZWFkIG9mIGEgYml0bWFwLgoJKHdhbGtfdXNlX2RlZl9jaGFpbnMpOiBDcmVhdGUsIHBhc3MgYW5kIGNsZWFuIHVwIHRoYXQgcG9pbnRlcl9zZXQuCgoJKiB0cmVlLXNzYS1hbGlhcy5jIChzdHJ1Y3QgYWxpYXNfaW5mbyk6IE1ha2UgdGhlIHNzYV9uYW1lc192aXNpdGVkCglmaWVsZCBhbiBzYml0bWFwLgoJKGluaXRfYWxpYXNfaW5mbyk6IEFsbG9jYXRlIGFuZCB6ZXJvIGl0IGhlcmUuCgkoZGVsZXRlX2FsaWFzX2luZm8pOiBEZWxldGUgaXQgaGVyZS4KCShjb2xsZWN0X3BvaW50c190b19pbmZvX2Zvcik6IFVzZSBpdC4KCjIwMDQtMTEtMTEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBhbGlhcy5jIChyZWNvcmRfYWxpYXNfc3Vic2V0LCBhZGRyX3NpZGVfZWZmZWN0X2V2YWwpOgoJTWFrZSB0aGVtIHN0YXRpYy4KCSogYWxpYXMuaDogUmVtb3ZlIHRoZSBwcm90b3R5cGUgZm9yIHJlY29yZF9hbGlhc19zdWJzZXQuCgkqIGV4cHIuaDogUmVtb3ZlIHRoZSBjb21tZW50ZWQtb3V0IHByb3RvdHlwZSBmb3IKCXJlY29yZF9hbGlhc19zdWJzZXQuCgkqIHJ0bC5oOiBSZW1vdmUgdGhlIHByb3RvdHlwZSBmb3IgYWRkcl9zaWRlX2VmZmVjdF9ldmFsLgoKCSogY2ZnbGF5b3V0LmMgKGNob29zZV9pbm5lcl9zY29wZSk6IE1ha2UgaXQgc3RhdGljLgoJKiBydGwuaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHByb3RvdHlwZS4KCgkqIGNmZ2xvb3BtYW5pcC5jICh1cGRhdGVfc2luZ2xlX2V4aXRzX2FmdGVyX2R1cGxpY2F0aW9uLAoJdW5sb29wKTogTWFrZSB0aGVtIHN0YXRpYy4KCSogY2ZnbG9vcC5oOiBSZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvdG90eXBlcy4KCgkqIGMtdHlwZWNrLmMgKGNfc2l6ZV9pbl9ieXRlcywgcmVjb3JkX21heWJlX3VzZWRfZGVjbCk6CglNYWtlIHRoZW0gc3RhdGljLgoJKiBjLXRyZWUuaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHByb3RvdHlwZXMuCgoJKiBleHBsb3cuYyAocm91bmRfcHVzaCk6IE1ha2UgaXQgc3RhdGljLgoJKiBleHByLmg6IFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGUuCgoJKiB2YXJhc20uYyAoZ2V0X25hbWVkX3NlY3Rpb25fZmxhZ3MsIGRlY2xfdGxzX21vZGVsKTogTWFrZQoJdGhlbSBzdGF0aWMuCgkqIG91dHB1dC5oOiBSZW1vdmUgdGhlIHByb3RvdHlwZSBmb3IgZ2V0X25hbWVkX3NlY3Rpb25fZmxhZ3MuCgkqIHRyZWUuaDogUmVtb3ZlIHRoZSBwcm90b3R5cGUgZm9yIGRlY2xfdGxzX21vZGVsLgoKMjAwNC0xMS0xMSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGZ1bmN0aW9uLmMgKGV4cGFuZF9mdW5jdGlvbl9lbmQpOiBSZW1vdmUgYW4gImlmIiBzdGF0ZW1lbnQKCXRoYXQgYWx3YXlzIHRyaWdnZXJzLgoJKiBzdG10LmMgKGV4cGFuZF9udWxsX3JldHVybl8xKTogTGlrZXdpc2UuCgoyMDA0LTExLTExICBKYW1lcyBFLiBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogY29uZmlnL2lhNjQvaWE2NC5oIChIQVJEX1JFR05PX05SRUdTKTogSGFuZGxlIFhDbW9kZS4KCShIQVJEX1JFR05PX01PREVfT0ssIE1PREVTX1RJRUFCTEVfUCwgU0VDT05EQVJZX01FTU9SWV9ORUVERUQsCglDTEFTU19NQVhfTlJFR1MpOiBMaWtld2lzZS4KCjIwMDQtMTEtMTEgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTc3NDIKCSogdHJlZS1zY2FsYXItZXZvbHV0aW9uLmMgKGZvbGxvd19zc2FfZWRnZV9pbl9yaHMpOiBIYW5kbGUKCU1JTlVTX0VYUFIgY29ycmVjdGx5LgoKMjAwNC0xMS0xMSAgU2ViYXN0aWFuIFBvcCAgPHBvcEBjcmkuZW5zbXAuZnI+CgoJKiB0cmVlLXNjYWxhci1ldm9sdXRpb24uYyAoZm9sbG93X3NzYV9lZGdlX2luX2NvbmRpdGlvbl9waGkpOgoJR2l2ZSB1cCBhcyBzb29uIGFzIHRoZSBldm9sdXRpb24gaXMga25vd24gbm90IGNvbXB1dGFibGUuCgoyMDA0LTExLTExICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCVBSIHRhcmdldC8xNjQ1NwoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChtYXNrNjRfMl9vcGVyYW5kKTogU3R1YiB0byBjYWxsCgltYXNrNjRfMW9yMl9vcGVyYW5kLgoJKG1hc2s2NF8xb3IyX29wZXJhbmQpOiBCcm9rZW4gb3V0IG9mIG1hc2s2NF8yX29wZXJhbmQsIGFkZCBmbGFnCgl0byBzcG90IHJsd2lubSBvcHBvcnR1bml0aWVzLgoJKGFuZDY0XzJfb3BlcmFuZCk6IFVzZSBtYXNrXzFvcjJfb3BlcmFuZC4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQgKGFuZGRpMyk6IFVzZSBybHdpbm0gd2hlbiBwb3NzaWJsZS4KCjIwMDQtMTEtMTEgIERvcml0IE5haXNobG9zICA8ZG9yaXRAaWwuaWJtLmNvbT4KCgkqIHRyZWUtdmVjdG9yaXplci5jICh1cGRhdGVfcGhpX25vZGVzX2Zvcl9ndWFyZCk6IENhbGwgcmV2ZXJzZV9waGlzLgoJKHZlY3RfdXBkYXRlX2l2c19hZnRlcl92ZWN0b3JpemVyKTogVXBkYXRlIGZ1bmN0aW9uIGRvY3VtZW50YXRpb24uCglBdm9pZCBxdWFkcmF0aWMgYmVoYXZpb3IgYW5kIGRpcmVjdCB3cml0ZSB0byBQSElfQVJHX0RFRi4KCjIwMDQtMTEtMTEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvYXJtL2FybS5jOiBGaXggYSBjb21tZW50IHR5cG8uCgoyMDA0LTExLTExICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogYml0bWFwLmggKG5CSVRNQVBfV09SRF9CSVRTKTogUmVtb3ZlLgoJKEJJVE1BUF9XT1JEX0JJVFMpOiBGb3JjZSB1bnNpZ25lZCBieSB1c2Ugb2YgMXUuCgkoQklUTUFQX0VMRU1FTlRfV09SRFMsIEJJVE1BUF9FTEVNRU5UX0FMTF9CSVRTKTogUmVtb3ZlCgl1bm5lY2Vzc2FyeSBjYXN0cy4KCShiaXRtYXBfZmlyc3Rfc2V0X2JpdCk6IFJldHVybiB1bnNpZ25lZCwgdXNlIGN0emwuCgkoYml0bWFwX2xhc3Rfc2V0X2JpdCk6IFJlbW92ZS4KCSogYml0bWFwLmMgKGJpdG1hcF9lbGVtZW50X3plcm9wLCBiaXRtYXBfY29weSk6IE1ha2UgaXRlcmF0b3IKCXVuc2lnbmVkLgoJKGJpdG1hcF9maXJzdF9zZXRfYml0KTogUmV0dXJuIHVuc2lnbmVkLCByZXF1aXJlIG5vbi1lbXB0eSBiaXRtYXAsCglyZW1vdmUgc3BlY2lhbCBjYXNlIGNvZGUgZm9yIHR3byB3b3JkIGVsZW1lbnRzLgoJKGJpdG1hcF9sYXN0X3NldF9iaXQpOiBSZW1vdmUuCgkqIHJhLWJ1aWxkLmMgKGxpdmV0aHJvdWdoX2NvbmZsaWN0c19iYik6IFJlcGxhY2UgdW5uZWNlc3NhcnkgdXNlIG9mCgliaXRtYXBfZmlyc3Rfc2V0X2JpdCB3aXRoIGJpdG1hcF9lbXB0eV9wLgoJKiB0cmVlLW91dG9mLXNzYS5jIChhbmFseXplX2VkZ2VzX2Zvcl9iYik6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1wcmUuYyAoYml0bWFwX3ByaW50X3ZhbHVlKTogVXNlIHNpbXBsZSBmbGFnIHJhdGhlciB0aGFuCgliaXRtYXBfbGFzdF9iaXRfc2V0LgoKMjAwNC0xMS0xMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCglQUiB0YXJnZXQvMTY3OTYKCSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQ6IEFkZCBERiAmIFNGIHJlZyBtb3ZlIHBlZXBob2xlcy4KCglQUiB0YXJnZXQvMTY0NTgKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2dlbmVyYXRlX2NvbXBhcmUpOiBHZW5lcmF0ZSBhbgoJdW5zaWduZWQgZXF1YWxpdHkgY29tcGFyZSB3aGVuIHdlIGtub3cgdGhlIG9wZXJhbmRzIGFyZSB1bnNpZ25lZC4KCjIwMDQtMTEtMTAgIFBldGVyIFMuIE1hemluZ2VyICA8cHMubUBnbXgubmV0PgoKCSogY29uZmlnL21pcHMvbGludXguaCAoTElOVVhfVEFSR0VUX09TX0NQUF9CVUlMVElOUyk6IERlZmluZQoJX19QSUNfXyBhbmQgX19waWNfXyBvbmx5IGlmIFRBUkdFVF9BQklDQUxMUy4KCShTVUJUQVJHRVRfQ1BQX1NQRUNTKTogRG9uJ3QgZGVmaW5lIG9yIHVuZGVmaW5lIF9fUElDX18gYW5kIF9fcGljX18uCgkoU1VCVEFSR0VUX0FTTV9TUEVDUyk6IERvbid0IHBhc3MgLW5vbl9zaGFyZWQgdG8gYXNzZW1ibGVyOyBwYXNzCgktS1BJQyBvbmx5IGlmIG5vdCAtbW5vLWFiaWNhbGxzLgoKCSogY29uZmlnL2FscGhhL2xpbnV4LmgsIGNvbmZpZy9hcm0vbGludXgtZWxmLmgsIGNvbmZpZy9wYS9wYS1saW51eC5oCgkqIGNvbmZpZy9zcGFyYy9saW51eC5oLCBjb25maWcvc3BhcmMvbGludXg2NC5oCgkoVEFSR0VUX09TX0NQUF9CVUlMVElOUyk6IERlZmluZSBfX1BJQ19fIGFuZCBfX3BpY19fIGlmIGZsYWdfcGljLgoKCSogY29uZmlnL2FybS9saW51eC1nYXMuaCAoQ1BQX1NQRUMpOiBEb24ndCBkZWZpbmUgX19QSUNfXyBvciBfX3BpY19fLgoJKiBjb25maWcvcGEvcGEvbGludXguaCAoQ1BQX1NQRUMpOiBMaWtld2lzZS4KCSogY29uZmlnL3NwYXJjL2xpbnV4LmggKENQUF9TVUJUQVJHRVRfU1BFQyk6IExpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvbGludXg2NC5oIChDUFBfU1VCVEFSR0VUX1NQRUMpOiBMaWtld2lzZS4KCjIwMDQtMTEtMTEgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvYXJtL2FybS5jIChhcm1fY29tcHV0ZV9zYXZlX3JlZzBfcmVnMTJfbWFzayk6IFNhdmUgUElDCglyZWdpc3RlciBpZiBjdXJyZW50X2Z1bmN0aW9uX3VzZXNfcGljX29mZnNldF90YWJsZSBpcyBzZXQuCgoyMDA0LTExLTEwICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAoZGVmaW5lX2F0dHIgInR5cGUiKTogQWRkIHR3byBhbmQgdGhyZWUuCglDaGFuZ2UgbXVsdGktaW5zdHJ1Y3Rpb24gc2VxdWVuY2VzIHRvIG5ldyBhdHRyaWJ1dGUuCgkqIGNvbmZpZy9yczYwMDAvezQweC5tZCw0NDAubWQsNjAzLm1kLDZ4eC5tZCwKCTc0NTAubWQsN3h4Lm1kLDg1NDAubWQsbXBjLm1kLHBvd2VyNC5tZCxwb3dlcjUubWQsCglyaW9zMS5tZCxyaW9zMi5tZCxyczY0Lm1kfTogQWRkIGRlc2NyaXB0aW9ucyBmb3IgdHdvIGFuZCB0aHJlZS4KCjIwMDQtMTEtMTAgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogdHJlZS1kYXRhLXJlZi5jIChidWlsZF9jbGFzc2ljX2Rpc3RfdmVjdG9yKTogSWYgZWl0aGVyIGxvb3AKCWlzIG91dHNpZGUgb2YgdGhlIG5lc3Qgd2UgYXNrZWQgYWJvdXQsIHRoZSBkZXBlbmRlbmNlIGNhbid0CgltYXR0ZXIuCgkoYnVpbGRfY2xhc3NpY19kaXJfdmVjdG9yKTogRGl0dG8uCgoyMDA0LTExLTEwICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAoZ2V0X2FkZHJlc3NfY29zdCk6IEFkZCBhZGRyZXNzIGVsZW1lbnRzIGluCglyaWdodCBvcmRlci4KCShmb3JjZV92YXJfY29zdCk6IERldGVybWluZSBjb3N0IG9mIGFkZGl0aW9uIGFuZCBtdWx0aXBsaWNhdGlvbiBtb3JlCglwcmVjaXNlbHkuCgkoZ2V0X2NvbXB1dGF0aW9uX2Nvc3RfYXQpOiBBZGQgY29zdCBmb3IgY29tcHV0aW5nIGFkZHJlc3MgZWxlbWVudHMgdG8KCXRoZSBmaW5hbCBjb3N0LgoKCSogZm9sZC1jb25zdC5jIChmb2xkKTogQXR0ZW1wdCB0byB1c2UgcHRyX2RpZmZlcmVuY2VfY29uc3Qgd2hlbmV2ZXIKCW9uZSBvZiB0aGUgYXJndW1lbnRzIG9mIE1JTlVTX0VYUFIgaXMgYW4gYWRkcmVzcy4KCShzcGxpdF9hZGRyZXNzX3RvX2NvcmVfYW5kX29mZnNldCk6IE5ldyBmdW5jdGlvbi4KCShwdHJfZGlmZmVyZW5jZV9jb25zdCk6IEhhbmRsZSBjYXNlIHdoZW4gb25lIG9mIHRoZSBvcGVyYW5kcyBpcyBhCglwb2ludGVyLgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChkZXRlcm1pbmVfYmFzZV9vYmplY3QpOiBGb2xkICYqYWRkci4KCShwdHJfZGlmZmVyZW5jZV9jb3N0KTogUGFzcyBhZGRyZXNzZXMgaW5zdGVhZCBvZiBvYmplY3RzIHRvCglwdHJfZGlmZmVyZW5jZV9jb25zdC4KCjIwMDQtMTEtMTAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlLmMgKHRyZWVfY2hlY2tfZmFpbGVkKTogRW1pdCBnZW5lcmFsIGVycm9yIGlmIHRoZSBsaXN0IG9mCglub2RlIHR5cGVzIGlzIGVtcHR5LgoKMjAwNC0xMS0xMCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChmdW5jdGlvbl9hcmdfdW5pb25fdmFsdWUpOiBOZXcgJ3Nsb3RubycKCWFyZ3VtZW50LiAgV2hlbiB0aGUgdW5pb24gaXMgcGFzc2VkIGluIHRoZSA2dGggc2xvdCwgYnVpbGQgYQoJUEFSQUxMRUwgd2l0aCBvbmx5IG9uZSBlbGVtZW50LgoJKGZ1bmN0aW9uX2FyZyk6IEFkanVzdCBjYWxsIHRvIGZ1bmN0aW9uX2FyZ191bmlvbl92YWx1ZS4KCShmdW5jdGlvbl92YWx1ZSk6IExpa2V3aXNlLgoKMjAwNC0xMS0xMCAgRmFyaWJvcnogSmFoYW5pYW4gPGZqYWhhbmlhbkBhcHBsZS5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTc4OTIKCSogdHJlZS1zc2EtZG9tLmMgKHVuc2FmZV9hc3NvY2lhdGl2ZV9mcF9iaW5vcCk6IEFkZCB0ZXN0IGZvcgoJTUlOVVNfRVhQUiBvcGVyYXRvci4KCjIwMDQtMTEtMTAgIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCglQUiB0YXJnZXQvMTgyMzAKCWNvbmZpZy9zcGFyYy9zcGFyYy5tZCAoYWRkc2kzLCBzdWJzaTMpOiBTZXQgImZwdHlwZSIgYXR0cmlidXRlLgoJKGFkZHYyc2ksIGFkZHY0aGksIGFkZHYyaGksIHN1YnYyc2ksIHN1YnY0aGksIHN1YnYyaGkpOiBOZXcgcGF0dGVybnMuCgoyMDA0LTExLTEwICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBiYXNpYy1ibG9jay5oIChYTUFMTE9DX1JFR19TRVQsIFhGUkVFX1JFR19TRVQpOiBOZXcuCgkoc3RydWN0IGJhc2ljX2Jsb2NrX2RlZik6IFJlbW92ZSBsb2NhbF9zZXQgYW5kIGNvbmRfbG9jYWxfc2V0CglmaWVsZHMuICBVcGRhdGUgY29tbWVudCBmb3IgZ2xvYmFsX2xpdmVfYXRfc3RhcnQuCgkqIGZsb3cuYyAoY2FsY3VsYXRlX2dsb2JhbF9yZWdzX2xpdmUpOiBBbGxvY2F0ZSBsb2NhbF9zZXRzIGFuZAoJY29uZF9sb2NhbF9zZXRzIGhlcmUgYXMgYXJyYXlzIG9mIGJpdG1hcHMgcHJldmlvdXNseSBzdG9yZWQgaW4KCWJiLT5sb2NhbF9zZXQgYW5kIGJiLT5jb25kX2xvY2FsX3NldC4gIFVzZSB4bWFsbG9jIGluc3RlYWQgb2YKCW9ic3RhY2sgYWxsb2NhdGVkIGJpdG1hcHMuCgoyMDA0LTExLTA5ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgdGFyZ2V0LzE4MzgwCgkqIGNvbmZpZy9pYTY0L3Vud2luZC1pYTY0LmggKF9VbndpbmRfRmluZFRhYmxlRW50cnkpOiBNYXJrIGl0CgloaWRkZW4uCgoJKiB1bndpbmQtZHcyLmMgKF9VbndpbmRfRmluZFRhYmxlRW50cnkpOiBSZW1vdmVkLgoKMjAwNC0xMS0wOSAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIGNmZ2FuYWwuYyAoZmxvd19kZnNfY29tcHV0ZV9yZXZlcnNlX2V4ZWN1dGUpOiBBY2NlcHQgbmV3Cglhcmd1bWVudCBob2xkaW5nIGxhc3QgdW52aXNpdGVkIGJsb2NrLiAgU3RhcnQgc2VhcmNoIGZvcgoJdW52aXNpdGVkIGJsb2NrcyBhdCBMQVNUX1VOVklTSVRFRCByYXRoZXIgdGhhbiBFWElUX0JMT0NLLgoJKGNvbm5lY3RfaW5maW5pdGVfbG9vcHNfdG9fZXhpdCk6IFN1cHBseSBsYXN0IHVudmlzaXRlZCBibG9jawoJdG8gZmxvd19kZnNfY29tcHV0ZV9yZXZlcnNlX2V4ZWN1dGUuCgoyMDA0LTEwLTIyICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAoZml4X3RydW5jZGZzaTIpOiBIYW5kbGUgZTUwMAoJZG91Ymxlcy4KCShmbG9hdHVuc3NpZGYyKTogU2FtZS4KCShmbG9hdHNpZGYyKTogU2FtZS4KCSgiZXh0ZW5kc2ZkZjIiKTogTmV3IGV4cGFuZGVyLgoJKCpleHRlbmRzZmRmMl9mcHIpOiBSZW5hbWUuCgkoKnRydW5jZGZzZjJfZnByKTogU2FtZS4KCSgqbmVnZGYyX2Zwcik6IFNhbWUuCgkoKmFic2RmMl9mcHIpOiBTYW1lLgoJKCpuYWJzZGYyX2Zwcik6IFNhbWUuCgkoKmFkZGRmM19mcHIpOiBTYW1lLgoJKCpzdWJkZjNfZnByKTogU2FtZS4KCSgqbXVsZGYzX2Zwcik6IFNhbWUuCgkoKmRpdmRmM19mcHIpOiBTYW1lLgoKCSogY29uZmlnL3JzNjAwMC9zcGUubWQgKCJzcGVfZXh0ZW5kc2ZkZjIiKTogUmVtb3ZlIEZJWE1FIGNvbW1lbnQuCgkoInNwZV9maXhfdHJ1bmNkZnNpMiIpOiBTYW1lLgoJKHNwZV9mbG9hdHVuc3NpZGYyKTogU2FtZS4KCShzcGVfZmxvYXRzaWRmMik6IFNhbWUuCgoyMDA0LTExLTA5ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjLzE4MzIyCgkqIGMtY29tbW9uLmMgKGZuYW1lX2RlY2wpOiBEb24ndCB1c2UgbGluZSBudW1iZXIgb2YgZGVjbCBpbgoJZGlhZ25vc3RpYy4KCjIwMDQtMTEtMDkgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAtcHJvdG9zLmggKHMzOTBfcG9vbF9vcGVyYW5kKTogUmVtb3ZlLgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHMzOTBfcG9vbF9vcGVyYW5kKTogTGlrZXdpc2UuCgkoczM5MF9leHRyYV9jb25zdHJhaW50X3N0cik6IEhhbmRsZSAnQicgY29uc3RyYWludHMuCgkqIGNvbmZpZy9zMzkwL3MzOTAuaCAoQ09OU1RSQUlOVF9MRU4pOiBIYW5kbGUgJ0InIGNvbnN0cmFpbnRzLgoJKiBjb25maWcvczM5MC9zMzkwLm1kOiBEb2N1bWVudCAnQicgY29uc3RyYWludHMuCgkoIipjbXBkaV9jY3QiLCAiKmNtcHNpX2NjdCIpOiBVc2UgJ0InIGNvbnN0cmFpbnQgaW5zdGVhZCBvZgoJczM5MF9wb29sX29wZXJhbmQgdG8gcHJldmVudCBpbnNucyB3aXRoIHR3byBsaXRlcmFsIHBvb2wKCXJlZmVyZW5jZXMuICBNYWtlIHBhdHRlcm4gY29tbXV0YXRpdmUuCgkoIipjbXBkaV9jY3UiLCAiKmNtcHNpX2NjdSIsICIqY21waGlfY2N1IiwgIipjbXBxaV9jY3UiKTogVXNlCgknQicgY29uc3RyYWludCBpbnN0ZWFkIG9mIHMzOTBfcG9vbF9vcGVyYW5kLgoKMjAwNC0xMS0wOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmMgKGNyZWF0ZV9iYik6IFJlbW92ZSB1bm5lY2Vzc2FyeSBtZW1zZXQuCgoyMDA0LTExLTA5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1zc2EtdGhyZWFkdXBkYXRlLmMgKGNvcHlfcGhpc190b19ibG9jayk6IFJlbW92ZS4KCSh0aHJlYWRfYmxvY2spOiBDYWxsIGZsdXNoX3BlbmRpbmdfc3RtdCBpbnN0ZWFkIG9mCgljb3B5X3BoaXNfdG9fYmxvY2suCgoyMDA0LTExLTA5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogbG9vcC1pdi5jIChpdl9udW1iZXJfb2ZfaXRlcmF0aW9ucyk6IE1ha2UgaXQgc3RhdGljLgoJKiBjZmdsb29wLmg6IFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGUuCgoyMDA0LTExLTA5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZnVuY3Rpb24uYyAoY29tYmluZV90ZW1wX3Nsb3RzLCBhc3NpZ25fcGFybXMsCglleHBhbmRfcGVuZGluZ19zaXplcyk6IE1ha2UgdGhlbSBzdGF0aWMuCgkqIHRyZWUuaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHByb3RvdHlwZXMuCgoyMDA0LTExLTA5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZW1pdC1ydGwuYyAoY29weV9tb3N0X3J0eCk6IFJlbW92ZS4KCSogcnRsLmg6IFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGUuCgoyMDA0LTExLTA5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY2ZnbG9vcC5jIChmbG93X2xvb3BzX3VwZGF0ZSk6IFJlbW92ZS4KCSogY2ZnbG9vcC5oOiBSZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvdG90eXBlLgoKMjAwNC0xMS0wOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZsaWN0LmMgKG1hcmtfcmVnLCBjb25mbGljdF9ncmFwaF9jb21wdXRlKTogUmVtb3ZlLgoJKiBiYXNpYy1ibG9jay5oOiBSZW1vdmUgdGhlIHByb3RvdHlwZSBmb3IKCWNvbmZsaWN0X2dyYXBoX2NvbXB1dGUuCgoyMDA0LTExLTA5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1pZi1jb252LmMgKGFkZF90b19kc3RfcHJlZGljYXRlX2xpc3QpOiBDaGFuZ2UgdGhlCglzZWNvbmQgYXJndW1lbnQgdG8gYmFzaWNfYmxvY2suCgkodHJlZV9pZl9jb252ZXJ0X2NvbmRfZXhwcik6IFVwZGF0ZSBjYWxsIHNpdGVzLgoKMjAwNC0xMS0wOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGZvbGQtY29uc3QuYyAocGVkYW50aWNfbm9uX2x2YWx1ZSk6IE1ha2UgaXQgc3RhdGljLgoJKiB0cmVlLmg6IFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGUuCgoyMDA0LTExLTA5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogb3B0YWJzLmMgKHByZXBhcmVfb3BlcmFuZCk6IE1ha2UgaXQgc3RhdGljLgoJKiBvcHRhYnMuaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHByb3RvdHlwZS4KCjIwMDQtMTEtMDkgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiByZWxvYWQxLmMgKHJlbG9hZHNfY29uZmxpY3QsIGdlbl9yZWxvYWQpOiBNYWtlIHRoZW0gc3RhdGljLgoJKiByZWxvYWQuaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHByb3RvdHlwZXMuCgoyMDA0LTExLTA5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogcmVsb2FkLmMgKHJlZmVyc190b19tZW1fZm9yX3JlbG9hZF9wLAoJcmVmZXJzX3RvX3JlZ25vX2Zvcl9yZWxvYWRfcCk6IE1ha2UgdGhlbSBzdGF0aWMuCgkqIHJlbG9hZC5oOiBSZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvdG90eXBlcy4KCjIwMDQtMTEtMDkgIEphbWVzIEEuIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCSAgICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIHRhcmdldC8xODIzMAoJKiBkb2MvbWQudGV4aSAoU1BBUkMgY29uc3RyYWludHMpOiBEb2N1bWVudCAnWScgY29uc3RyYWludC4KCSogY29uZmlnL3NwYXJjL3NwYXJjLW1vZGVzLmRlZjogQWRkIHZlY3RvciBtb2RlcyBvZiA0IGFuZCA4IGJ5dGVzLgoJKiBjb25maWcvc3BhcmMvc3BhcmMuYyAoc3BhcmNfdmVjdG9yX21vZGVfc3VwcG9ydGVkX3ApOiBOZXcgZnVuY3Rpb24uCgkoVEFSR0VUX1ZFQ1RPUl9NT0RFX1NVUFBPUlRFRF9QKTogU2V0IHRvIHNwYXJjX3ZlY3Rvcl9tb2RlX3N1cHBvcnRlZF9wLgoJKGZwX3plcm9fb3BlcmFuZCk6IEFjY2VwdCBNT0RFX1ZFQ1RPUl9JTlQgbW9kZXMuCgkoaW5wdXRfb3BlcmFuZCk6IEFjY2VwdCBDT05TVF9WRUNUT1Igd2l0aCBNT0RFX1ZFQ1RPUl9JTlQgbW9kZXMuCgkoc3BhcmNfY2Fubm90X2ZvcmNlX2NvbnN0X21lbSk6IFJldHVybiBmYWxzZSBmb3IgQ09OU1RfVkVDVE9SLgoJKHNwYXJjX2luaXRfbW9kZXMpOiBTZXQgc3BhcmNfbW9kZV9jbGFzcyB0byBTRl9NT0RFIG9yIERGX01PREUgZm9yCglNT0RFX1ZFQ1RPUl9JTlQgbW9kZXMuCgkoc3BhcmNfZXh0cmFfY29uc3RyYWludF9jaGVjayk6IEFkZCBuZXcgY29uc3RyYWludCAnWScuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5oOiBEZWZpbmUgVU5JVFNfUEVSX1NJTURfV09SRCB0byA4IGZvciBUQVJHRVRfVklTLgoJKiBjb25maWcvc3BhcmMvc3BhcmMubWQgKFYzMik6IE5ldyBtb2RlIG1hY3JvIGZvciAzMi1iaXQgbW9kZXMuCgkoVjY0KTogTmV3IG1vZGUgbWFjcm8gZm9yIDY0LWJpdCBtb2Rlcy4KCShtb3ZzZik6IFVzZSBWMzIgZm9yIG1vZGUgaW5zdGVhZCBvZiBTRi4KCShtb3ZzZl9pbnNuX3Zpcyk6IFVzZSBWMzIgZm9yIG1vZGUgaW5zdGVhZCBvZiBTRi4gIEFkZCAnWScgY29uc3RyYWludAoJYWxvbmdzaWRlICdHJyBjb25zdHJhaW50LgoJKG1vdmRmKTogVXNlIFY2NCBmb3IgbW9kZSBpbnN0ZWFkIG9mIERGLgoJKG1vdmRmX2luc25fdjlvbmx5X3ZpcywgbW9kZl9pbnNuX3NwNjRfdmlzKTogVXNlIFY2NCBmb3IgbW9kZSBpbnN0ZWFkCglvZiBERi4gIEFkZCAnWScgY29uc3RyYWludCBhbG9uZ3NpZGUgJ0cnIGNvbnN0cmFpbnQuCgkobXVsdGktaXNuIGFuZCBtaXNhbGlnbmVkIG1lbXMgREZtb2RlIHNwbGl0dGVycyk6IFVzZSBWNjQgZm9yIG1vZGUKCWluc3RlYWQgb2YgREYuCgoyMDA0LTExLTA5ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHMzOTBfc2VsZWN0X2NjbW9kZSk6IFJldHVybiBDQ0FQbW9kZSBmb3IKCWludGVnZXIgTkVHIGFuZCBBQlMuCgkqIGNvbmZpZy9zMzkwL3MzOTAubWQgKCIqbmVnZGkyXzY0Iik6IEZpeCBvcF90eXBlIGF0dHJpYnV0ZS4KCSgiKm5lZ2RpMl8zMSIpOiBSZWltcGxlbWVudCB1c2luZyBhIHNwbGl0dGVyLgoJKCIqbmVnZGkyX2NjIiwgIipuZWdkaTJfY2Nvbmx5Iik6IE5ldyBpbnNucy4KCSgiKm5lZ2RpMl9zaWduIiwgIipuZWdkaTJfc2lnbl9jYyIpOiBMaWtld2lzZS4KCSgiKm5lZ3NpMl9jYyIsICIqbmVnc2kyX2Njb25seSIpOiBMaWtld2lzZS4KCSgiKm5lZ2RmMl9jYyIsICIqbmVnZGYyX2Njb25seSIpOiBMaWtld2lzZS4KCSgiKm5lZ3NmMl9jYyIsICIqbmVnc2YyX2Njb25seSIpOiBMaWtld2lzZS4KCSgiKmFic2RpMl9jYyIsICIqYWJzZGkyX2Njb25seSIpOiBOZXcgaW5zbnMuCgkoIiphYnNkaTJfc2lnbiIsICIqYWJzZGkyX3NpZ25fY2MiKTogTGlrZXdpc2UuCgkoIiphYnNzaTJfY2MiLCAiKmFic3NpMl9jY29ubHkiKTogTGlrZXdpc2UuCgkoIiphYnNkZjJfY2MiLCAiKmFic2RmMl9jY29ubHkiKTogTGlrZXdpc2UuCgkoIiphYnNzZjJfY2MiLCAiKmFic3NmMl9jY29ubHkiKTogTGlrZXdpc2UuCgkoIipuZWdhYnNkaTJfY2MiLCAiKm5lZ2Fic2RpMl9jY29ubHkiKTogTmV3IGluc25zLgoJKCIqbmVnYWJzZGkyX3NpZ24iLCAiKm5lZ2Fic2RpMl9zaWduX2NjIik6IExpa2V3aXNlLgoJKCIqbmVnYWJzc2kyX2NjIiwgIipuZWdhYnNzaTJfY2Nvbmx5Iik6IExpa2V3aXNlLgoJKCIqbmVnYWJzZGYyX2NjIiwgIipuZWdhYnNkZjJfY2Nvbmx5Iik6IExpa2V3aXNlLgoJKCIqbmVnYWJzc2YyX2NjIiwgIipuZWdhYnNzZjJfY2Nvbmx5Iik6IExpa2V3aXNlLgoKMjAwNC0xMS0wOSAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX2Nhbm9uaWNhbGl6ZV9jb21wYXJpc29uKTogUmV2ZXJzZSBjb25kaXRpb24KCXdoZW4gZWxpbWluYXRpbmcgYW4gVU5TUEVDX0NNUElOVC4KCShzMzkwX3NlY29uZGFyeV9pbnB1dF9yZWxvYWRfY2xhc3MpOiBGaXggdGVzdCBmb3IgQ0MgcmVnaXN0ZXIgcmVsb2FkLgoJKHMzOTBfc2Vjb25kYXJ5X291dHB1dF9yZWxvYWRfY2xhc3MpOiBMaWtld2lzZS4KCShzMzkwX2V4cGFuZF9jbXBtZW0pOiBTd2FwIG9wZXJhbmRzLiAgVXNlIGdlbl9jbXBpbnQuCgkqIGNvbmZpZy9zMzkwL3MzOTAubWQgKCIqY21waW50X3NpIiwgIipjbXBpbnRfZGkiKTogUmVtb3ZlLgoJKCJjbXBpbnQiLCAiKmNtcGludF9jYyIsICIqY21waW50X3NpZ24iLCAiKmNtcGludF9zaWduX2NjIik6IE5ldwoJaW5zbiBwYXR0ZXJucyB3aXRoIHNwbGl0dGVycy4KCjIwMDQtMTEtMDkgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9ydHhfY29zdHMpOiBBZGQgRVEsIEdUVSwgYW5kIExUVS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQgKHNDQyk6IFNwbGl0IEdUVSBhbmQgTFRVIHBhdHRlcm5zLgoKMjAwNC0xMS0wOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtcGhpbm9kZXMuYyAocGhpX3JldmVyc2UpOiBOZXcuCgkqIHRyZWUtY2ZnLmMgKHRyZWVfbWFrZV9mb3J3YXJkZXJfYmxvY2ssIHRyZWVfZHVwbGljYXRlX2JiKToKCVVzZSBpdC4KCSogdHJlZS1mbG93Lmg6IEFkZCBhIHByb3RvdHlwZSBmb3IgcGhpX3JldmVyc2UuCgoyMDA0LTExLTA5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYzogRml4IGEgY29tbWVudCB0eXBvLgoKMjAwNC0xMS0wOSAgSmFtZXMgQS4gTW9ycmlzb24gIDxwaHl0aG9uQGdjYy5nbnUub3JnPgoKCVBSIHBjaC8xNDk0MAoJKiBjb25maWcvaG9zdC1saW51eC5jIChUUllfRU1QVFlfVk1fU1BBQ0UpOiBBZGQgX19zcGFyY19fCglkZWZpbml0aW9ucy4KCjIwMDQtMTEtMDkgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogYnVpbHRpbnMuYywgYy1jb21tb24uYywgYy1kZWNsLmMsIGMtZm9ybWF0LmM6IFNheSAiYXJndW1lbnQiCglpbnN0ZWFkIG9mICJhcmciIGluIGRpYWdub3N0aWNzLgoKMjAwNC0xMS0wOSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBidWlsdGlucy5jLCBjLWNvbW1vbi5jLCBjLWRlY2wuYywgYy1mb3JtYXQuYywgYy1mb3JtYXQuaCwKCWMtcGFyc2UuaW4sIGMtcGNoLmMsIGMtcHJhZ21hLmMsIGNvbGxlY3QyLmMsIGZpbmFsLmMsIGdjYy5jLAoJZ2Nvdi5jLCBvcHRzLmMsIHByZXR0eS1wcmludC5oLCBwcm90b2l6ZS5jLCByZWctc3RhY2suYywgcnRsLmMsCgl0bGluay5jLCBjb25maWcvYWxwaGEvYWxwaGEuYywgY29uZmlnL2FyYy9hcmMuYywgY29uZmlnL2FybS9hcm0uYywKCWNvbmZpZy9hdnIvYXZyLmMsIGNvbmZpZy9jNHgvYzR4LmMsIGNvbmZpZy9kYXJ3aW4uYywKCWNvbmZpZy9mcnYvZnJ2LmMsIGNvbmZpZy9oODMwMC9oODMwMC5jLCBjb25maWcvaTM4Ni9pMzg2LmMsCgljb25maWcvaTM4Ni93aW5udC5jLCBjb25maWcvaWE2NC9pYTY0LmMsIGNvbmZpZy9pcDJrL2lwMmsuYywKCWNvbmZpZy9pcTIwMDAvaXEyMDAwLmMsIGNvbmZpZy9tMzJyL20zMnIuYywKCWNvbmZpZy9tNjhoYzExL202OGhjMTEuYywgY29uZmlnL202OGsvbTY4ay5jLCBjb25maWcvbTY4ay9tNjhrLmgsCgljb25maWcvbWNvcmUvbWNvcmUuYywgY29uZmlnL21pcHMvbWlwcy5jLCBjb25maWcvbW1peC9tbWl4LmMsCgljb25maWcvbnMzMmsvbnMzMmsuYywgY29uZmlnL3JzNjAwMC9ob3N0LWRhcndpbi5jLAoJY29uZmlnL3JzNjAwMC9yczYwMDAuYywgY29uZmlnL3MzOTAvczM5MC5jLCBjb25maWcvc2gvc2guYywKCWNvbmZpZy9zaC9zeW1iaWFuLmMsIGNvbmZpZy9zdG9ybXkxNi9zdG9ybXkxNi5jLAoJY29uZmlnL3Y4NTAvdjg1MC5jOiBBdm9pZCAiYCIgYXMgbGVmdCBxdW90ZSwgdXNpbmcgIiciIG9yICVxLCAlPAoJYW5kICU+IGFzIGFwcHJvcHJpYXRlLiAgVXNlICUnIGFzIGFwb3N0cm9waGUgaW4gZGlhZ25vc3RpY3Mgd2hlcmUKCWFwcGxpY2FibGUuICBVc2UgJTwgYW5kICU+IGluIHBsYWNlIG9mICcnIHF1b3RlcyB3aGVyZSBhcHBsaWNhYmxlLgoJVXNlICVxcyBpbiBwbGFjZSBvZiAlPCVzJT4uICBDb25zaXN0ZW50bHkgcXVvdGUgX19idWlsdGluIGZ1bmN0aW9uCgluYW1lcy4KCjIwMDQtMTEtMDkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGdkYmluaXQuaW4gKHBiYiwgcGJtKTogTmV3IG1hY3Jvcy4KCjIwMDQtMTEtMDggSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIGNmZy5jIChyZWRpcmVjdF9lZGdlX3N1Y2Nfbm9kdXApOiBVc2UgZmluZF9lZGdlIHJhdGhlciB0aGFuCglpbXBsZW1lbnRpbmcgaXQgaW5saW5lLgoKCSogY2ZnYW5hbC5jIChmaW5kX2VkZ2UpOiBTZWFyY2ggcHJlZC0+c3VjY3Mgb3Igc3VjYy0+cHJlZHMsCgl3aGljaGV2ZXIgaXMgc2hvcnRlci4KCjIwMDQtMTEtMDggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBwYXNzZXMuYyAocmVzdF9vZl9oYW5kbGVfanVtcCk6IFJlbW92ZSBkZWFkIGNvZGUuCgoyMDA0LTExLTA4ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1jZmcuYyAodGhyZWFkX2p1bXBzKTogU3BlZWQgdXAgYnkga2VlcGluZyBhIHBvaW50ZXIgdG8KCXRoZSBsYXN0IHVzZWQgZWxlbWVudCBpbiB0aGUgd29ya2xpc3QuCgoyMDA0LTExLTA4ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1pbmxpbmUuYyAocmVtYXBfc2F2ZV9leHByKTogTWFrZSBpdCBzdGF0aWMuCgkqIHRyZWUtaW5saW5lLmg6IFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGUuCgoyMDA0LTExLTA4ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1zc2EtbG9vcC1uaXRlci5jICh1cHBlcl9ib3VuZF9pbl90eXBlLAoJbG93ZXJfYm91bmRfaW5fdHlwZSk6IE1ha2UgdGhlbSBzdGF0aWMuCgkqIHRyZWUuaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHByb3RvdHlwZXMuCgoyMDA0LTExLTA4ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1zc2EtbGl2ZS5jICh0cGFfaW5pdCwgcG9wX2Jlc3RfY29hbGVzY2UpOiBNYWtlIHRoZW0KCXN0YXRpYy4KCSogdHJlZS1zc2EtbGl2ZS5oOiBSZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvdG90eXBlcy4KCjIwMDQtMTEtMDggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWlmLWNvbnYuYyAodHJlZV9pZl9jb252ZXJzaW9uKTogTWFrZSBpdCBzdGF0aWMuCgkqIHRyZWUtZmxvdy5oOiBSZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvdG90eXBlLgoKMjAwNC0xMS0wOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGJ1aWxkX3NzYV9vcGVyYW5kcyk6IE1ha2UgaXQgc3RhdGljLgoJKiB0cmVlLWZsb3cuaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHByb3RvdHlwZS4KCjIwMDQtMTEtMDggIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHRyZWUtb3B0LzE4Mjk5CgkqIHRyZWUtaW5saW5lLmMgKGNvcHlfYm9keV9yKTogQ2hhbmdlICJ0ID0gdCIgdG8gZW1wdHkKCXN0YXRlbWVudCBpbnN0ZWFkIG9mICJ0Ii4KCjIwMDQtMTEtMDggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBtb2R1bG8tc2NoZWQuYyAoY3JlYXRlX3BhcnRpYWxfc2NoZWR1bGUsCglmcmVlX3BhcnRpYWxfc2NoZWR1bGUsIHJlc2V0X3BhcnRpYWxfc2NoZWR1bGUsCglwc19hZGRfbm9kZV9jaGVja19jb25mbGljdHMsIHJvdGF0ZV9wYXJ0aWFsX3NjaGVkdWxlKTogTWFrZQoJdGhlbSBzdGF0aWMuCgoyMDA0LTExLTA4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZXhwbWVkLmMgKGV4dHJhY3RfZm9yY2VfYWxpZ25fbWVtX2JpdF9maWVsZCk6IENvcnJlY3QgaGFuZGxpbmcgYXQKCXRoZSBlbmQgb2YgYSBwYWdlLgoKMjAwNC0xMS0wOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHNjaGVkLWRlcHMuYyAoYWRkX2luc25fbWVtX2RlcGVuZGVuY2UpOiBNYWtlIGl0IHN0YXRpYy4KCSogc2NoZWQtaW50Lmg6IFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGVzLgoKMjAwNC0xMS0wOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGZsb3cuYyAoYWxsb2NhdGVfYmJfbGlmZV9kYXRhKTogTWFrZSBpdCBzdGF0aWMuCgkqIGJhc2ljLWJsb2NrLmg6IFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGUuCgoyMDA0LTExLTA4ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY2FsbHMuYyAoc3BsaXRfY29tcGxleF92YWx1ZXMsIHNwbGl0X2NvbXBsZXhfdHlwZXMpOiBNYWtlCgl0aGVtIHN0YXRpYy4KCSogZXhwci5oOiBSZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvdG90eXBlcy4KCjIwMDQtMTEtMDggIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogYXJtLmMgKGFybV9oYW5kbGVfbm90c2hhcmVkX2F0dHJpYnV0ZSk6IFdyYXAgZGVjbGFyYXRpb24gYW5kIHVzZQoJd2l0aCAjaWYgVEFSR0VUX0RMTElNUE9SVF9ERUNMX0FUVFJJQlVURVMuCgoyMDA0LTExLTA4ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1pZi1jb252LmMgKHRyZWVfaWZfY29udmVydF9jb25kX2V4cHIpOiBSZW1vdmUgdHdvICJpZiIKCXN0YXRlbWVudHMgdGhhdCBhbHdheXMgdHJpZ2dlci4KCjIwMDQtMTEtMDggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jLCB0cmVlLWlmLWNvbnYuYywgdHJlZS1pbnRvLXNzYS5jLAoJdHJlZS1zY2FsYXItZXZvbHV0aW9uLmMsIHRyZWUtc3NhLWxvb3AtaW0uYywKCXRyZWUtc3NhLWxvb3AtaXZvcHRzLmMsIHRyZWUtc3NhLWxvb3AtbWFuaXAuYywgdHJlZS1zc2EuYywKCXRyZWUtdmVjdG9yaXplci5jOiBSZXBsYWNlIFRSRUVfQ0hBSU4gd2l0aCBQSElfQ0hBSU4gd2hlcmUKCWFwcHJvcHJpYXRlLgoKMjAwNC0xMS0wOCAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBjZ3JhcGguaCAoY2dyYXBoX2NhbGxzX3ApOiBSZW1vdmUuCgkqIGNncmFwaC5jIChjZ3JhcGhfY2FsbHNfcCk6IExpa2V3aXNlLgoKCSogdmFycmF5LmggKHZhcnJheV9jb3B5KTogUmVtb3ZlLgoJKiB2YXJyYXkuYyAodmFycmF5X2NvcHkpOiBMaWtld2lzZS4KCjIwMDQtMTEtMDcgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHRhcmdldC8xODI2OQoJKiBjb25maWcvZGFyd2luLmMgKG1hY2hvcGljX2luZGlyZWN0X2RhdGFfcmVmZXJlbmNlKToKCUNhbGwgZ2VuX21hY2hvX2hpZ2ggYW5kIGdlbl9tYWNob19sb3cgaW5zdGVhZCBvZgoJY2hlY2tpbmcgdGhlIG1vZGUgYW5kIGNhbGxpbmcgZ2VuX21hY2hvX2hpZ2hfZGkgZGlyZWN0bHkuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9lbWl0X21vdmUpOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQ6IE1vdmUgbW9zdCBvZiBUQVJHRVRfTUFDSE8gZXhwYW5kL2luc25zCgl0byBkYXJ3aW4ubWQuCgkobW92ZGZfbG93LCBtb3ZzZl9sb3csIG1vdnNmX2xvd19zdCwgbW92c2lfbG93LCBtYWNob19jb3JyZWN0X3BpYywKCWxvYWRfbWFjaG9fcGljYmFzZSwgbWFjaG9fbG93LCBtYWNob19oaWdoKTogUmVtb3ZlZC4KCShidWlsdGluX3NldGptcF9yZWNlaXZlcik6IENhbGwgZ2VuX21hY2hvX2hpZ2ggYW5kCglnZW5fbWFjaG9fbG93IGluc3RlYWQgb2YgY2hlY2tpbmcgdGhlIG1vZGUgYW5kIGNhbGxpbmcKCWdlbl9tYWNob19oaWdoX2RpIGRpcmVjdGx5LgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5tZCAobG9hZF9tYWNob19waWNiYXNlX2RpKTogVXNlIHRoZSBNRCBjb25zdGFudC4KCShtb3ZkZl9sb3dfc2ksIG1vdnNmX2xvd19zaSwgbW92c2ZfbG93X3N0X3NpLCBtb3ZzaV9sb3dfc3QpOgoJTW92ZWQgZnJvbSByczYwMDAubWQuCgkobWFjaG9faGlnaCk6IE5ldyBleHBhbmRlci4KCShtYWNob19oaWdoX3NpKTogUmVuYW1lZCB2ZXJzaW9uIG9mIG1hY2hvX2hpZ2ggZnJvbSByczYwMDAubWQuCgkobWFjaG9fbG93KTogTmV3IGV4cGFuZGVyLgoJKG1hY2hvX2xvd19zaSk6IFJlbmFtZWQgdmVyc2lvbiBvZiBtYWNob19sb3cgZnJvbSByczYwMDAubWQuCgkobG9hZF9tYWNob19waWNiYXNlKTogTmV3IGV4cGFuZGVyLgoJKGxvYWRfbWFjaG9fcGljYmFzZV9zaSk6IFJlbmFtZWQgdmVyc2lvbiBvZiBsb2FkX21hY2hvX3BpY2Jhc2UKCWZyb20gcnM2MDAwLm1kLgoJKG1hY2hvX2NvcnJlY3RfcGljKTogTmV3IGV4cGFuZGVyLgoJKG1hY2hvX2NvcnJlY3RfcGljX3NpKTogUmVuYW1lZCB2ZXJzaW9uIG9mIG1hY2hvX2NvcnJlY3RfcGljCglmcm9tIHJzNjAwMC5tZC4KCjIwMDQtMTEtMDcgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogYy1kZWNsLmMgKGZpbmlzaF9zdHJ1Y3QpOiBVc2UgY29tcGxldGUgc2VudGVuY2VzIGZvciBkaWFnbm9zdGljCglmb3Igc3RydWN0dXJlcyBvciB1bmlvbnMgd2l0aCBubyBtZW1iZXJzIG9yIG5hbWVkIG1lbWJlcnMuCgoyMDA0LTExLTA3ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGMtdHlwZWNrLmMgKGJ1aWxkX3VuYXJ5X29wKTogUmVwbGFjZSB1bnJlYWNoYWJsZSBkaWFnbm9zdGljIGZvcgoJdGFraW5nIGFkZHJlc3Mgb2YgYml0LWZpZWxkIGJ5IGFzc2VydGlvbi4KCjIwMDQtMTEtMDYgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAubWQgKGF0dHJpYnV0ZSAib3BfdHlwZSIpOiBEZWZhdWx0IHRvICJOTiIuCgkoYXR0cmlidXRlICJhdHlwZSIpOiBEZWZhdWx0IHRvICJhZ2VuIi4KCShhdHRyaWJ1dGUgImxlbmd0aCIpOiBEZWZhdWx0IHRvIDYuCgkoZGVmaW5lX2FzbV9hdHRpYnV0ZXMpOiBSZW1vdmUuCgkoIm1vdnRpIiwgIiptb3ZkaV82NCIsICIqbW92ZGlfMzEiLCAiKm1vdnNpX3phcmNoIiwgIiptb3ZzaV9lc2EiLAoJIiptb3ZoaSIsICIqbW92cWkiLCAiKm1vdmRmXzY0IiwgIiptb3ZkZl8zMSIsICJtb3ZzZiIsCgkiKmNsYyIsICIqbXZjIiwgIipuYyIsICIqb2MiLCAiKnhjIiwgIip4Y196ZXJvIik6CglEbyBub3Qgc2V0IHR5cGUgYXR0cmlidXRlIHRvICJjcyIgd2hlcmUgYWxyZWFkeSBkZWZhdWx0LgoJKCIqY21waW50X3NpIiwgIipjbXBpbnRfZGkiLCAiZml4X3RydW5jZGZzaTJfaWJtIiwgImZsb2F0c2lkZjJfaWJtIiwKCSIqbmVnZGkyXzMxIik6CglEbyBub3Qgc2V0IHR5cGUgYXR0cmlidXRlIHRvICJvdGhlciIgd2hlcmUgYWxyZWFkeSBkZWZhdWx0LgoJKCJtb3Z0aSIsICIqbW92ZGlfNjQiLCAiKm1vdmRpXzMxIiwgIiptb3ZkZl8zMSIsCgkiKnN0cmxlbmRpIiwgIipzdHJsZW5zaSIsCgkiKm1vdm1lbV9sb25nXzY0IiwgIiptb3ZtZW1fbG9uZ18zMSIsCgkiKmNscm1lbV9sb25nXzY0IiwgIipjbHJtZW1fbG9uZ18zMSIsCgkiKmNtcG1lbV9sb25nXzY0IiwgIipjbXBtZW1fbG9uZ18zMSIsCgkiKmNtcGludF9zaSIsICIqY21waW50X2RpIiwKCSJhZGR0aTMiLCAiKmFkZGRpM18zMXoiLCAiKmFkZGRpM18zMSIsCgkic3VidGkzIiwgIipzdWJkaTNfMzF6IiwgIipzdWJkaTNfMzEiLCAiKm5lZ2RpMl8zMSIsCgkiKnNjb25kZGkiLCAiKnNjb25kc2kiLCAiKnNjb25kZGlfbmVnIiwgIipzY29uZHNpX25lZyIsCgkiZml4X3RydW5jZGZzaTJfaWJtIiwgImZsb2F0c2lkZjJfaWJtIiwgImV4dGVuZHNmZGYyX2libSIsCgkiKnBvb2xfZW50cnkiLCAicG9vbF9hbGlnbiIsICJwb29sX3NlY3Rpb25fc3RhcnQiLAoJInBvb2xfc2VjdGlvbl9lbmQiLCAibWFpbl9wb29sIiwgInJlbG9hZF9iYXNlXzMxIiwgInBvb2wiKToKCURvIG5vdCBzZXQgb3BfdHlwZSBhdHRyaWJ1dGUgdG8gIk5OIiB3aGVyZSBhbHJlYWR5IGRlZmF1bHQuCgkoIipleHRyYWN0cWkiLCAiKmV4dHJhY3RoaSIsICIqemVyb19leHRlbmRoaXNpMl8zMSIsCgkiKnplcm9fZXh0ZW5kcWlzaTJfMzEiLCAiKnplcm9fZXh0ZW5kcWloaTJfMzEiLAoJImZpeF90cnVuY2Rmc2kyX2libSIsICJmbG9hdHNpZGYyX2libSIpOgoJRG8gbm90IHNldCBhdHlwZSBhdHRyaWJ1dGUgdG8gImFnZW4iIHdoZXJlIGFscmVhZHkgZGVmYXVsdC4KCSgiKm1vdm1lbV9zaG9ydCIsICIqY2xybWVtX3Nob3J0IiwgIipjbXBtZW1fc2hvcnQiKTogRG9uJ3Qgc2V0IG9wX3R5cGUuCgoyMDA0LTExLTA2ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy90LWlyaXM2ICh0cC1iaXQuYyk6IEZpeCB0YXJnZXQgZmlsZW5hbWUuCgoyMDA0LTExLTA2ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE2ODMwCgkqIGNvbmZpZy9taXBzL21pcHMuaCAoVEFSR0VUX0NQVV9DUFBfQlVJTFRJTlMpOiBEb24ndCBkZWZpbmUgdGhlCglSMzAwMCBhbmQgUjQwMDAgbWFjcm9zIG9uIElSSVguCgoyMDA0LTExLTA2ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCVBSIHRhcmdldC8xNjI4NgoJKiBjb25maWcvcnM2MDAwL2FsdGl2ZWMuaDogUmVwbGFjZSBib29sIGJ5IF9fYm9vbCBhbmQgcGl4ZWwgYnkKCV9fcGl4ZWwuCgoyMDA0LTExLTA2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1zc2EtY29weXJlbmFtZS5jIChyZW5hbWVfc3NhX2NvcGllcyk6IE1ha2UgaXQgc3RhdGljLgoKMjAwNC0xMS0wNiAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvMjA2NC5tZCAoInpfaW50IiwgInpfYWdlbiIpOiBFbnN1cmUgdGhlIGNvbmRpdGlvbgoJbWF0Y2hlcyBubyBpbnNucyBhbHJlYWR5IG1hdGNoZWQgYnkgb3RoZXIgcmVzZXJ2YXRpb25zLgoJKiBjb25maWcvczM5MC8yMDg0Lm1kICgieF9pbnQiLCAieF9hZ2VuIik6IEVuc3VyZSB0aGUgY29uZGl0aW9uCgltYXRjaGVzIG5vIGluc25zIGFscmVhZHkgbWF0Y2hlZCBieSBvdGhlciByZXNlcnZhdGlvbnMuCgkoInhfc3MiKTogUmVtb3ZlLCByZXBsYWNlIGJ5IC4uLgoJKCJ4X2NzIik6IC4uLiB0aGlzIG5ldyByZXNlcnZhdGlvbi4gIENoZWNrIHR5cGUgaW5zdGVhZCBvZiBvcF90eXBlLgoJVXBkYXRlIGJ5cGFzc2VzIHRvIHVzZSB4X2NzIGluc3RlYWQgb2YgeF9zcy4KCSgieF9ubiIpOiBSZW1vdmUsIHJlcGxhY2UgYnkgLi4uCgkoInhfb3RoZXIiKTogLi4uIHRoaXMgbmV3IHJlc2VydmF0aW9uLiAgQ2hlY2sgdHlwZSBpbnN0ZWFkIG9mIG9wX3R5cGUuCglBZGQgeF9vdGhlciBhbmQgeF9icmFuY2ggdG8gYnlwYXNzZXMuCgkoInhfdnMiKTogTmV3IHJlc2VydmF0aW9uLgoJKiBjb25maWcvczM5MC9zMzkwLm1kIChhdHRyaWJ1dGUgInR5cGUiKTogRGVmYXVsdCBhY2NvcmRpbmcgdG8gb3BfdHlwZS4KCSgiKmV4ZWN1dGUiKTogU2V0IHR5cGUgdG8gImNzIi4KCjIwMDQtMTEtMDYgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBmb2xkLWNvbnN0LmMgKG5vbl9sdmFsdWUpOiBEb24ndCBjb25zdHJ1Y3QgTk9OX0xWQUxVRV9FWFBSCglpZiB3ZSBhcmUgaW4gR0lNUExFLgoKMjAwNC0xMS0wNiAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMTc5MzMKCSogcnRsYW5hbC5jIChkZWFkX29yX3NldF9yZWdub19wKTogQnJlYWsgb3V0IGNvbW1vbiBjb2RlIHRvLi4uCgkoY292ZXJzX3JlZ25vX3ApOiBOZXcgZnVuY3Rpb24uICBIYW5kbGUgU0VUcyBvZiBQQVJBTExFTCwKCWFuZCBkZWZlciB0aGUgcmVzdCB0by4uLgoJKGNvdmVyc19yZWdub19ub19wYXJhbGxlbF9wKTogTmV3IGZ1bmN0aW9uLgoKMjAwNC0xMS0wNiAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChmdW5jdGlvbl9hcmdfcmVjb3JkX3ZhbHVlXzEpOiBTa2lwCglmaWVsZHMgd2l0aCB6ZXJvIGxlbmd0aC4KCShmdW5jdGlvbl9hcmdfcmVjb3JkX3ZhbHVlXzIpOiBMaWtld2lzZS4KCShmdW5jdGlvbl9hcmdfcmVjb3JkX3ZhbHVlXzMpOiBVc2Ugc21hbGxlc3RfbW9kZV9mb3Jfc2l6ZQoJaW5zdGVhZCBvZiBtb2RlX2Zvcl9zaXplLgoJKGZ1bmN0aW9uX2FyZ191bmlvbl92YWx1ZSk6IFJldHVybiBuYWtlZCByZWdpc3RlciBmb3IgdW5pb25zCgl3aXRoIHplcm8gbGVuZ3RoLgoKMjAwNC0xMS0wNiAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChzY2FuX3JlY29yZF90eXBlKTogSGFuZGxlIHZlY3RvciB0eXBlcy4KCShmdW5jdGlvbl9hcmdfc2xvdG5vKTogSGFuZGxlIHZlY3RvciB0eXBlcyBzcGVjaWFsbHkuCgkoZnVuY3Rpb25fYXJnX3JlY29yZF92YWx1ZV8xKTogU3BsaXQgZmllbGRzIHdpdGggdmVjdG9yIHR5cGUgYW5kCglCTEttb2RlIGludG8gdGhlaXIgc3VicGFydHMuCgkoZnVuY3Rpb25fYXJnX3JlY29yZF92YWx1ZV8yKTogTGlrZXdpc2UuICBCZSBwcmVwYXJlZCB0byBoYW5kbGUKCW1vcmUgdGhhbiAyIHJlZ2lzdGVycyBwZXIgZmllbGQuCgkoZnVuY3Rpb25fYXJnX3VuaW9uX3ZhbHVlKTogSW5jcmVtZW50IHJlZ25vIGluc2lkZSB0aGUgbG9vcC4KCShmdW5jdGlvbl9hcmdfdmVjdG9yX3ZhbHVlKTogTmV3IGZ1bmN0aW9uLgoJKGZ1bmN0aW9uX2FyZyk6IFVzZSBpdCB0byBzcGxpdCBmaWVsZHMgd2l0aCB2ZWN0b3IgdHlwZSBhbmQKCUJMS21vZGUgaW50byB0aGVpciBzdWJwYXJ0cyBhbmQgYnVpbGQgYSBQQVJBTExFTC4gIFRyZWF0CglvdGhlciB2ZWN0b3IgdHlwZXMgbGlrZSBmbG9hdHMuCgkoZnVuY3Rpb25fdmFsdWUpOiBMaWtld2lzZS4KCShzcGFyY19wYXNzX2J5X3JlZmVyZW5jZSk6IEhhbmRsZSB2ZWN0b3IgdHlwZXMuCgkoc3BhcmNfcmV0dXJuX2luX21lbW9yeSk6IExpa2V3aXNlLgoKMjAwNC0xMS0wNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmMgKGZpbmRfdGFrZW5fZWRnZV9jb25kX2V4cHIpOiBSZW1vdmUgYW4gImlmIgoJc3RhdGVtZW50IHRoYXQgbmV2ZXIgdHJpZ2dlcnMuCgoyMDA0LTExLTA2ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC8yMDY0Lm1kICgiel9vMiIsICJ6X28zIik6IFJlbW92ZS4KCSogY29uZmlnL3MzOTAvMjA4NC5tZCAoInhfbzIiLCAieF9vMyIpOiBSZW1vdmUuCgkoInhfZmRpdmQiKTogVXNlIGFsc28gZm9yIGZzcXJ0ZCB0eXBlLgoJKCJ4X2ZkaXZzIik6IFVzZSBhbHNvIGZvciBmc3FydHMgdHlwZS4KCSogY29uZmlnL3MzOTAvczM5MC5tZCAoYXR0cmlidXRlICJ0eXBlIik6IFJlbW92ZSAibzIiIGFuZCAibzMiIHR5cGVzLgoJKCJmaXhfdHJ1bmNkZnNpMl9pZWVlIik6IFNldCB0eXBlIHRvICJmdG9pIi4KCSgiZml4X3RydW5jZGZzaTJfaWJtIik6IFNldCB0eXBlIHRvICJvdGhlciIuCgkoImZsb2F0ZGlkZjIiLCAiZmxvYXRkaXNmMiIpOiBEbyBub3QgY2xvYmJlciBDQy4KCSgiZmxvYXRzaWRmMiIsICJmbG9hdHNpZGYyX2llZWUiKTogTGlrZXdpc2UuCgkoImZsb2F0c2lzZjIiLCAiZmxvYXRzaXNmMl9pZWVlIik6IExpa2V3aXNlLgoJKCJ0cnVuY2Rmc2YyIiwgInRydW5jZGZzZjJfaWVlZSIpOiBPbmx5IGFsbG93ICJyZWdpc3Rlcl9vcGVyYW5kIi4KCSgidHJ1bmNkZnNmMl9pYm0iKTogT25seSBhbGxvdyAibm9uaW1tZWRpYXRlX29wZXJhbmQiLiAgVXNlIExFUgoJaW5zdGVhZCBvZiBMUkVSLgoJKCJleHRlbmRzZmRmMl9pYm0iKTogRG8gbm90IHNldCBhdHlwZS4gIFNldCB0eXBlIHRvICJmbG9hZHMiLgoJKCJzcXJ0ZGYyIik6IFNldCB0eXBlIHRvICJmc3FydGQiLgoJKCJzcXJ0c2YyIik6IFNldCB0eXBlIHRvICJmc3FydHMiLgoKMjAwNC0xMS0wNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtcGhpbm9kZXMuYyAocmVtb3ZlX2FsbF9waGlfbm9kZXNfZm9yKTogU3BlZWQgdXAgdXNpbmcgYQoJcG9pbnRlciB0byB0aGUgbGFzdCBQSEkgbm9kZSBpbiB0aGUgbmV3IFBISSBjaGFpbi4KCjIwMDQtMTEtMDYgIEtheiBLb2ppbWEgIDxra29qaW1hQGdjYy5nbnUub3JnPgoKCSogY29uZmlnL3NoL3NoLmMgKHByZXBhcmVfbW92ZV9vcGVyYW5kcyk6IEVtaXQgYSB1c2Ugb2YgcjEyCglmb3Igbm9uLVBJQyBUTFNfTU9ERUxfSU5JVElBTF9FWEVDIGNhc2UuCgoyMDA0LTExLTA2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZXhwbWVkLmM6IEZpeCBhIGNvbW1lbnQgdHlwby4KCjIwMDQtMTEtMDYgIEFhcm9uIFcuIExhRnJhbWJvaXNlICA8YWFyb25hdmF5NjJAYWFyb253bC5jb20+CgoJUFIgdGFyZ2V0LzE4MTA2CgkqIGNvbmZpZy9pMzg2L2N5Z21pbmcuaAoJW0hBVkVfR0FTX1dFQUtdIChBU01fV0VBS0VOX0xBQkVMKTogTWFjcm8gZGVmaW5lZC4KCjIwMDQtMTEtMDYgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvc2gvc2g0YS5tZDogRml4IGNvcHlyaWdodC4KCjIwMDQtMTEtMDYgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5tZCwgY29uZmlnL3NoL3NoNGEubWQ6IFJlcGxhY2UgR05VIENDCgl3aXRoIEdDQy4KCjIwMDQtMTEtMDUgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChzY2MgcGF0dGVybnMpOiBSZXBsYWNlIHN1YmZjIHdpdGggc3ViZgoJd2hlbiBjYXJyeSBub3QgdXNlZC4gIFN1Z2dlc3RlZCBieSBUb3Jiam9ybiBHcmFubHVuZC4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9lbWl0X21vdmUpOiBEb24ndCBmb3JjZV9yZWcKCW9wZXJhbmRbMV0gdW5uZWNlc3NhcmlseS4gIFN1Z2dlc3RlZCBieSBFcmljIENocmlzdG9waGVyLgoJKHJzNjAwMF9hZGp1c3RfY29zdCk6IEluY3JlYXNlIGxhdGVuY3kgb2Ygc3RvcmUgdG8gd2lkZXIgbG9hZC4KCShyczYwMDBfcnR4X2Nvc3RzKTogbXVsbGkgb25seSBhbGxvd3MgMTYtYml0IGNvbnN0YW50cy4KCjIwMDQtMTEtMDUgIFN0YW4gU2hlYnMgIDxzaGVic0BhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChtYWNob3BpY19vdXRwdXRfc3R1Yik6IE91dHB1dAoJbGR1IGluc3RlYWQgb2YgbHd6dSBmb3IgNjQtYml0IHN0dWJzLgoKMjAwNC0xMS0wNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5jIChhbHBoYV9leHBhbmRfdW5hbGlnbmVkX2xvYWQpOiBTcGVjaWFsIGNhc2UKCXNpemUgMiB3aXRoIEJXWC4KCShhbHBoYV9leHBhbmRfdW5hbGlnbmVkX3N0b3JlKTogTGlrZXdpc2UuCgoyMDA0LTExLTA1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZXhwbWVkLmMgKGV4dHJhY3RfZm9yY2VfYWxpZ25fbWVtX2JpdF9maWVsZCk6IE5ldy4KCShleHRyYWN0X3NwbGl0X2JpdF9maWVsZCk6IENhbGwgaXQuCgoyMDA0LTExLTA1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogaWE2NC5tZCAoVU5TUEVDX1NIUlApOiBOZXcuCgkoZHNoaWZ0X2NvdW50X29wZXJhbmQpOiBOZXcuCgkoYXNocnRpMywgYXNocnRpM19pbnRlcm5hbCwgbHNocnRpMywgbHNocnRpM19pbnRlcm5hbCwgc2hycCk6IE5ldy4KCSogaWE2NC5jIChydHhfbmVlZHNfYmFycmllcik6IEhhbmRsZSBVTlNQRUNfU0hSUC4KCjIwMDQtMTEtMDUgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogYy10eXBlY2suYyAob3V0cHV0X2luaXRfZWxlbWVudCk6IFJldHVybiBlYXJseSBpZiB2YWx1ZSBpcwoJZXJyb3JfbWFya19ub2RlLgoKMjAwNC0xMS0wNSAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogaW52b2tlLnRleGkgKC1mbm8tZ3Vlc3MtYnJhbmNoLXByb2JhYmlsaXR5KTogUmV3cml0ZS4KCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAocnR4X25lZWRzX2JhcnJpZXIsIGNhc2UgVU5TUEVDX0dSX1NQSUxMKTogQ2hhbmdlCgkxIHRvIFVOU1BFQ19HUl9TUElMTC4KCjIwMDQtMTEtMDUgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWwxQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHMzOTBfZml4ZWRfY29uZGl0aW9uX2NvZGVfcmVncyk6IE5ldyBmdW5jdGlvbi4KCShUQVJHRVRfRklYRURfQ09ORElUSU9OX0NPREVfUkVHUyk6IE1hY3JvIGRlZmluZWQuCgoyMDA0LTExLTA1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogYml0bWFwLmggKGVudW0gYml0bWFwX2JpdHMpOiBSZW1vdmUuCgkoYml0bWFwX29wZXJhdGlvbik6IFJlbW92ZS4KCShiaXRtYXBfYW5kLCBiaXRtYXBfYW5kX2ludG8sIGJpdG1hcF9hbmRfY29tcGwsCgliaXRtYXBfYW5kX2NvbXBsX2ludG8sIGJpdG1hcF9pb3IsIGJpdG1hcF9pb3JfaW50bywgYml0bWFwX3hvciwKCWJpdG1hcF94b3JfaW50byk6IFByb3RvdHlwZS4KCSogYml0bWFwLmMgKGJpdG1hcF9lbHRfaW5zZXJ0X2FmdGVyLCBiaXRtYXBfZWx0X2NsZWFyX2Zyb20pOiBOZXcuCgkoYml0bWFwX29wZXJhdGlvbik6IFJlbW92ZS4KCShiaXRtYXBfYW5kLCBiaXRtYXBfYW5kX2ludG8sIGJpdG1hcF9hbmRfY29tcGwsCgliaXRtYXBfYW5kX2NvbXBsX2ludG8sIGJpdG1hcF9pb3IsIGJpdG1hcF9pb3JfaW50bywgYml0bWFwX3hvciwKCWJpdG1hcF94b3JfaW50byk6IE5ldy4KCShiaXRtYXBfaW9yX2FuZF9jb21wbCwgYml0bWFwX2lvcl9hbmRfY29tcGxfaW50byk6IEFkanVzdC4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xODMwNwoJKiB0cmVlLXNzYS1hbGlhcy5jIChtZXJnZV9wb2ludGVkX3RvX2luZm8pOiBQcm90ZWN0ZWQgYWdhaW5zdCBERVNUCglhbmQgT1JJRyBiZWluZyB0aGUgc2FtZSBub2RlLgoKMjAwNC0xMS0wNCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBNYWtlZmlsZS5pbiAoZGlzdGNsZWFuKTogRG9uJ3QgZGVsZXRlIG5vbmV4aXN0ZW50IGZpeGluYy8gZGlyZWN0b3J5LgoJKGluc3RhbGwtbWtoZWFkZXJzKTogSW5zdGFsbCB0aGUgdmVyc2lvbiBidWlsdCBmb3IgdGhlCglob3N0LCBub3QgZm9yIHRoZSBidWlsZCBtYWNoaW5lLgoJKiBjb25maWd1cmUuYWM6IEFsd2F5cyBydW4gZml4aW5jbHVkZXMuCgkoYWxsX291dHB1dHMpOiBSZW1vdmUgbWtoZWFkZXJzLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGZpeGluYy5pbjogTW92ZSB0byBmaXhpbmNsdWRlcy8uCgkqIG1rZml4aW5jLnNoOiBMaWtld2lzZS4KCSogbWtoZWFkZXJzLmluOiBMaWtld2lzZS4KCSogUkVBRE1FLWZpeGluYzogTGlrZXdpc2UuCgoyMDA0LTExLTA1ICBSYW1hbmEgUmFkaGFrcmlzaG5hbiAgPHJhbWFuYS5yYWRoYWtyaXNobmFuQGNvZGl0by5jb20+CgoJUFIgdGFyZ2V0LzE4MjYzCgkqIGNvbmZpZy9hcmMvbGliMWZ1bmNzLmFzbSAoX19fdW11bHNpZGkzKTogQ2hhbmdlIHVzZSBvZiBjbXAgdG8gdGhlCgllcXVpdmFsZW50IG9uIHRoZSBBNC4KCjIwMDQtMTEtMDUgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogZG9jL2MtdHJlZS50ZXhpLCBkb2MvY2ZnLnRleGksIGRvYy9jb250cmliLnRleGksIGRvYy9jcHAudGV4aSwKCWRvYy9jcHBvcHRzLnRleGksIGRvYy9leHRlbmQudGV4aSwgZG9jL2ZyYWdtZW50cy50ZXhpLAoJZG9jL2Zyb250ZW5kcy50ZXhpLCBkb2MvZ2Nvdi50ZXhpLCBkb2MvaG9zdGNvbmZpZy50ZXhpLAoJZG9jL2ltcGxlbWVudC1jLnRleGksIGRvYy9pbnN0YWxsLnRleGksIGRvYy9pbnZva2UudGV4aSwKCWRvYy9saWJnY2MudGV4aSwgZG9jL21kLnRleGksIGRvYy9wYXNzZXMudGV4aSwKCWRvYy9wb3J0YWJpbGl0eS50ZXhpLCBkb2MvcnRsLnRleGksIGRvYy9zb3VyY2VidWlsZC50ZXhpLAoJZG9jL3N0YW5kYXJkcy50ZXhpLCBkb2MvdG0udGV4aSwgZG9jL3RyZWUtc3NhLnRleGksCglkb2MvdHJvdWJsZS50ZXhpOiBDb3JyZWN0IGVuZC1vZi1zZW50ZW5jZSBtYXJrdXAgYW5kIG1hcmt1cCBvZgoJImV0Yy4iLCAiZS5nLiIgYW5kICJpLmUuIi4gIFVzZSBAY29kZSBpbiB2YXJpb3VzIHBsYWNlcyB3aGVyZQoJYXBwcm9wcmlhdGUuCgoyMDA0LTExLTA1ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRvYy9jLXRyZWUudGV4aSwgZG9jL2NmZy50ZXhpLCBkb2MvZXh0ZW5kLnRleGksIGRvYy9ndHkudGV4aSwKCWRvYy9pbnN0YWxsLnRleGksIGRvYy9pbnZva2UudGV4aSwgZG9jL21kLnRleGksIGRvYy9wYXNzZXMudGV4aSwKCWRvYy9ydGwudGV4aSwgZG9jL3RtLnRleGksIGRvYy90cmVlLXNzYS50ZXhpOiBSZW1vdmUgdHJhaWxpbmcKCXdoaXRlc3BhY2UuCgoyMDA0LTExLTA0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL2FybS9hcm0uYyAoYXJtX2hhbmRsZV9ub3RzaGFyZWRfYXR0cmlidXRlKTogTmV3IGZ1bmN0aW9uLgoJKiBkb2MvZXh0ZW5kLnRleGk6IERvY3VtZW50ICJub3RzaGFyZWQiIGF0dHJpYnV0ZS4KCjIwMDQtMTEtMDQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLXBoaW5vZGVzLmMgKG1ha2VfcGhpX25vZGUpOiBNYWtlIGl0IHN0YXRpYy4KCSogdHJlZS5oOiBSZW1vdmUgdGhlIHByb3RvdHlwZXMgZm9yIG1ha2VfcGhpX25vZGUuCgoyMDA0LTExLTA0ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogc3RtdC5jIChleHBhbmRfYXNtLCBleHBhbmRfYXNtX29wZXJhbmRzKTogTWFrZSB0aGVtIHN0YXRpYy4KCSogdHJlZS5oOiBSZW1vdmUgdGhlIHByb3RvdHlwZXMgZm9yIGV4cGFuZF9hc20gYW5kCglleHBhbmRfYXNtX29wZXJhbmRzLgoKMjAwNC0xMS0wNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHBhc3Nlcy5jIChyZXN0X29mX2NvbXBpbGF0aW9uKTogTWFrZSBpdCBzdGF0aWMuCgkqIHRvcGxldi5oOiBSZW1vdmUgdGhlIHByb3RvdHlwZSBmb3IgcmVzdF9vZl9jb21waWxhdGlvbi4KCjIwMDQtMTEtMDQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBqdW1wLmMgKGNsZWFudXBfYmFycmllcnMpOiBVc2UgZGVsZXRlX2luc24gaW5zdGVhZCBvZgoJZGVsZXRlX2JhcnJpZXIuCgkoZGVsZXRlX2JhcnJpZXIpOiBSZW1vdmUuCgkqIHJ0bC5oOiBSZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvdG90eXBlLgoKMjAwNC0xMS0wNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGV4cHIuYyAobW9zdGx5X3plcm9fcCk6IE1ha2UgaXQgc3RhdGljLgoJKiB0cmVlLmg6IFJlbW92ZSB0aGUgcHJvdG90eXBlIGZvciBtb3N0bHlfemVyb3NfcC4KCjIwMDQtMTEtMDQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjZmdydGwuYyAoZm9yY2Vfbm9uZmFsbHRocnVfYW5kX3JlZGlyZWN0KTogTWFrZSBpdCBzdGF0aWMuCgoyMDA0LTExLTA0ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fcmV0dXJuX2FkZHIsCglleHBhbmRfYnVpbHRpbl9sb25nam1wLCBleHBhbmRfYnVpbHRpbl90cmFwKTogTWFrZSB0aGVtIHN0YXRpYy4KCSogZXhwci5oOiBSZW1vdmUgdGhlIHByb3RvdHlwZXMgZm9yIGV4cGFuZF9idWlsdGluX2xvbmdqbXAgYW5kCglleHBhbmRfYnVpbHRpbl90cmFwLgoJKiB0cmVlLmg6IFJlbW92ZSB0aGUgcHJvdG90eXBlIGZvciBleHBhbmRfYnVpbHRpbl9yZXR1cm5fYWRkci4KCjIwMDQtMTEtMDQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jIChmaW5kX3Rha2VuX2VkZ2UpOiBSZWplY3QgVkFMIGJlZ2luIE5VTEwuCgkqIHRyZWUtc3NhLWNjcC5jICh2aXNpdF9jb25kX3N0bXQpOiBEb24ndCBjYWxsIGZpbmRfdGFrZW5fZWRnZQoJd2l0aCBWQUwgYmVpbmcgTlVMTC4KCjIwMDQtMTEtMDQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjZmdob29rcy5jIChkZWxldGVfYmFzaWNfYmxvY2spOiBSZW1vdmUgY29kZSB0byB0cnVuY2F0ZQoJZWRnZSB2ZWN0b3JzLgoKMjAwNC0xMS0wNCAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiBmbG93LmMgKGluaXRfcHJvcGFnYXRlX2Jsb2NrX2luZm8pOiBDaGFuZ2UgdGhlIHR5cGUgb2YgaSB0bwoJdW5zaWduZWQuCgoyMDA0LTExLTA0ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTgxODQKCSogYy10eXBlY2suYyAoY29tcHR5cGVzKTogRG8gbm90IHRyZWF0IHBvaW50ZXJzIG9mIGRpZmZlcmVudAoJbW9kZXMgb3IgYWxpYXMtYWxsIGZsYWdzIGFzIGVxdWl2YWxlbnQuCgkqIHRyZWUtc3NhLmMgKHRyZWVfc3NhX3VzZWxlc3NfdHlwZV9jb252ZXJzaW9uXzEpOiBMaWtld2lzZS4KCjIwMDQtMTEtMDQgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogZG9jL2d0eS50ZXhpLCBkb2MvbWFrZWZpbGUudGV4aSwgZG9jL3NvdXJjZWJ1aWxkLnRleGk6IERvbid0CglyZWZlcmVuY2Ugc3BlY2lmaWMgQyBwYXJzZXIgZmlsZXMgaW4gZXhhbXBsZXMuCgoyMDA0LTExLTA0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE1MzQyCgkqIHJlZ3JlbmFtZS5jIChzY2FuX3J0eCk6IFRyZWF0IHRoZSBkZXN0aW5hdGlvbnMgb2YgU0VUcyBhbmQgQ0xPQkJFUnMKCWFzIE9QX0lOT1VUIGlmIHRoZSBpbnN0cnVjdGlvbiBpcyBwcmVkaWNhdGVkLgoKMjAwNC0xMS0wNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGJpdG1hcC5oOiBGaXggYSBjb21tZW50IHR5cG8uICBGb2xsb3cgc3BlbGxpbmcgY29udmVudGlvbnMuCgkqIHRyZWUtdmVjdG9yaXplci5jOiBGaXggYSBjb21tZW50IHR5cG8uCgoyMDA0LTExLTA0ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogc2Rib3V0LmMgKFNEQl9HRU5FUkFURV9GQUtFKTogUmVtb3ZlLgoJKGdlbl9mYWtlX2xhYmVsKTogRG9uJ3QgdXNlIFNEQl9HRU5FUkFURV9GQUtFLgoJKiBzeXN0ZW0uaDogUG9pc29uIFNEQl9HRU5FUkFURV9GQUtFLgoJKiBkb2MvdG0udGV4aSAoU0RCX0dFTkVSQVRFX0ZBS0UpOiBSZW1vdmUuCgoyMDA0LTExLTA0ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLm1kICgiKmFkZHNpM19zaWduIik6IFVzZSBjYW5vbmljYWwgUlRMLgoKMjAwNC0xMS0wNCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiBvdGhlci8xODI3NwoJKiBndGhyLXBvc2l4LmggKF9fZ3RocmVhZF9yZWN1cnNpdmVfbXV0ZXhfaW5pdF9mdW5jdGlvbik6IFJldmVydAoJMjAwNC0xMC0yOSBwYXRjaAoKMjAwNC0xMS0wNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHByZWRpY3QuYyAocHJvcGFnYXRlX2ZyZXEpOiBNYWtlIGJpdG5vIHVuc2lnbmVkLiBNb3ZlCglucHJlZGVjZXNzb3JzIHVwZGF0ZSBvdXQgb2YgbG9vcC4KCgkqIGJpdG1hcC5oIChiaXRtYXBfaXRlcmF0b3IpOiBSZW1vdmUgd29yZF9iaXQgYW5kIGJpdAoJZmllbGRzLiBSZW5hbWUgb3RoZXJzLgoJKGJtcF9pdGVyX2NvbW1vbl9uZXh0XzEsIGJtcF9pdGVyX3NpbmdsZV9uZXh0XzEsCglibXBfaXRlcl9zaW5nbGVfaW5pdCwgYm1wX2l0ZXJfZW5kX3AsIGJtcF9pdGVyX3NpbmdsZV9uZXh0LAoJYm1wX2l0ZXJfYW5kX25vdF9uZXh0XzEsIGJtcF9pdGVyX2FuZF9ub3RfaW5pdCwKCWJtcF9pdGVyX2FuZF9ub3RfbmV4dCwgYm1wX2l0ZXJfYW5kX25leHRfMSwgYm1wX2l0ZXJfYW5kX2luaXQsCglibXBfaXRlcl9hbmRfbmV4dCk6IFJlbW92ZS4KCShibXBfaXRlcl9zZXRfaW5pdCwgYm1wX2l0ZXJfYW5kX2luaXQsIGJtcF9pdGVyX2FuZF9jb21wbF9pbml0LAoJYm1wX2l0ZXJfbmV4dCwgYm1wX2l0ZXJfc2V0LCBibXBfaXRlcl9hbmQsIGJtcF9pdGVyX2FuZF9jb21wbCk6CglOZXcuCgkoRVhFQ1VURV9JRl9TRVRfSU5fQklUTUFQLCBFWEVDVVRFX0lGX0FORF9JTl9CSVRNQVAsCglFWEVDVVRFX0lGX0FORF9DT01QTF9JTl9CSVRNQVApOiBBZGp1c3QuCgoJKiBiaXRtYXAuaCAoYml0bWFwX2Ffb3JfYiwgYml0bWFwX2FfYW5kX2IpOiBSZW1vdmUuCgkqIGRmLmMgKGRhdGFmbG93X3NldF9hX29wX2IpOiBVc2UgYml0bWFwX2FuZCwgYml0bWFwX2lvciwKCWJpdG1hcF9hbmRfaW50bywgYml0bWFwX2lvcl9pbnRvIGFzIGFwcHJvcHJpYXRlLgoJKiBleGNlcHQuYyAocmVtb3ZlX2VoX2hhbmRsZXIpOglMaWtld2lzZS4KCSogZ2xvYmFsLmMgKG1vZGlmeV9iYl9yZWdfcGF2LCBtYWtlX2FjY3VyYXRlX2xpdmVfYW5hbHlzaXMpOiBMaWtld2lzZS4KCSogdHJlZS1kZmEuYyAobWFya19uZXdfdmFyc190b19yZW5hbWUpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtYWxpYXMuYyAobWVyZ2VfcG9pbnRlZF90b19pbmZvKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWxpdmUuaCAobGl2ZV9tZXJnZV9hbmRfY2xlYXIpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAoZmluZF9iZXN0X2NhbmRpZGF0ZSwgdHJ5X2FkZF9jYW5kX2Zvcik6CglMaWtld2lzZS4KCgkqIGJpdG1hcC5jIChiaXRtYXBfcHJpbnQpOiBNYWtlIGJpdG5vIHVuc2lnbmVkLgoJKiBidC1sb2FkLmMgKGNsZWFyX2J0cl9mcm9tX2xpdmVfcmFuZ2UsCglidHJfZGVmX2xpdmVfcmFuZ2UpOiBMaWtld2lzZS4KCSogY2FsbGVyLXNhdmUuYyAoc2F2ZV9jYWxsX2Nsb2JiZXJlZF9yZWdzKTogTGlrZXdpc2UuCgkqIGNmZ2FuYWwuYyAoY29tcHV0ZV9kb21pbmFuY2VfZnJvbnRpZXJzXzEpOiBMaWtld2lzZS4KCSogY2ZnY2xlYW51cC5jICh0aHJlYWRfanVtcCk6IExpa2V3aXNlLgoJKiBjZmdydGwuYyAoc2FmZV9pbnNlcnRfaW5zbl9vbl9lZGdlKTogTGlrZXdpc2UuCgkqIGNvbmZsaWN0LmMgKGNvbmZsaWN0X2dyYXBoX2NvbXB1dGUpOiBMaWtld2lzZS4KCSogZGRnLmMgKGFkZF9kZXBzX2Zvcl91c2UpOiBMaWtld2lzZS4KCSogZGYuYyAoZGZfcmVmc191cGRhdGUpOiBMaWtld2lzZS4KCSogZXhjZXB0LmMgKHJlbW92ZV9laF9oYW5kbGVyKTogTGlrZXdpc2UuCgkqIGZsb3cuYyAodmVyaWZ5X2xvY2FsX2xpdmVfYXRfc3RhcnQsIHVwZGF0ZV9saWZlX2luZm8sCglpbml0aWFsaXplX3VuaW5pdGlhbGl6ZWRfc3VicmVncywgcHJvcGFnYXRlX29uZV9pbnNuLAoJZnJlZV9wcm9wYWdhdGVfYmxvY2tfaW5mbywgcHJvcGFnYXRlX2Jsb2NrLCBmaW5kX3VzZV9hc19hZGRyZXNzLAoJcmVnX3NldF90b19oYXJkX3JlZ19zZXQpOiBMaWtld2lzZS4KCSogZ2NzZS5jIChjbGVhcl9tb2RpZnlfbWVtX3RhYmxlcyk6IExpa2V3aXNlLgoJKiBnbG9iYWwuYyAoZ2xvYmFsX2NvbmZsaWN0cywgYnVpbGRfaW5zbl9jaGFpbik6IExpa2V3aXNlLgoJKiBpZmN2dC5jIChkZWFkX29yX3ByZWRpY2FibGUpOiBMaWtld2lzZS4KCSogbG9jYWwtYWxsb2MuYyAodXBkYXRlX2VxdWl2X3JlZ3MpOiBMaWtld2lzZS4KCSogbG9vcC5jIChsb2FkX21lbXMpOiBMaWtld2lzZS4KCSogcmEtYnVpbGQuYyAobGl2ZXRocm91Z2hfY29uZmxpY3RzX2JiLCBjb25mbGljdHNfYmV0d2Vlbl93ZWJzKToKCUxpa2V3aXNlLgoJKiByYS1yZXdyaXRlLmMgKHJlbG9hZHNfdG9fbG9hZHMsIHJld3JpdGVfcHJvZ3JhbTIsIGFjdHVhbF9zcGlsbCk6CglMaWtld2lzZS4KCSogcmVsb2FkMS5jIChvcmRlcl9yZWdzX2Zvcl9yZWxvYWQsIGZpbmlzaF9zcGlsbHMpOiBMaWtld2lzZS4KCSogc2NoZWQtZGVwcy5jIChzY2hlZF9hbmFseXplX2luc24sIGZyZWVfZGVwcyk6IExpa2V3aXNlLgoJKiBzY2hlZC1yZ24uYyAocHJvcGFnYXRlX2RlcHMKCSogdHJlZS1jZmcuYyAodHJlZV9wdXJnZV9hbGxfZGVhZF9laF9lZGdlcyk6IExpa2V3aXNlLgoJKiB0cmVlLWRmYS5jIChkdW1wX2RmYV9zdGF0cwoJdHJlZS1pbnRvLXNzYS5jIChjb21wdXRlX2dsb2JhbF9saXZlaW4sIGluc2VydF9waGlfbm9kZXMsCglpbnNlcnRfcGhpX25vZGVzX2ZvciwgZGVidWdfZGVmX2Jsb2Nrc19yLCBpbnZhbGlkYXRlX25hbWVfdGFncyk6CglMaWtld2lzZS4KCSogdHJlZS1vdXRvZi1zc2EuYyAoY29hbGVzY2Vfc3NhX25hbWUsIGNvYWxlc2NlX3ZhcnMsCglmcmVlX3RlbXBfZXhwcl90YWJsZSwgZmluZF9yZXBsYWNlYWJsZV9leHBycyk6IExpa2V3aXNlLgoJKiB0cmVlLXNyYS5jIChzY2FuX2Z1bmN0aW9uLCBzY2FsYXJpemVfcGFybXMpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtYWxpYXMuYyAoaW5pdF9hbGlhc19pbmZvLAoJY29tcHV0ZV9wb2ludHNfdG9fYW5kX2FkZHJfZXNjYXBlLAoJY29tcHV0ZV9mbG93X3NlbnNpdGl2ZV9hbGlhc2luZywgbWF5YmVfY3JlYXRlX2dsb2JhbF92YXIpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtZGNlLmMgKG1hcmtfY29udHJvbF9kZXBlbmRlbnRfZWRnZXNfbmVjZXNzYXJ5KTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWxpdmUuYyAobmV3X3RyZWVfbGl2ZV9pbmZvLCBsaXZlX3dvcmtsaXN0LAoJY2FsY3VsYXRlX2xpdmVfb25fZW50cnksIGNhbGN1bGF0ZV9saXZlX29uX2V4aXQsIGNvbXBhcmVfcGFpcnMsCglzb3J0X2NvYWxlc2NlX2xpc3QsIGJ1aWxkX3RyZWVfY29uZmxpY3RfZ3JhcGgsIGR1bXBfbGl2ZV9pbmZvCgl0cmVlLXNzYS1sb29wLW1hbmlwLmMgKGFkZF9leGl0X3BoaXNfdmFyKTogTGlrZXdpc2UuCgl0cmVlLXNzYS1vcGVyYW5kcy5jIChnZXRfYXNtX2V4cHJfb3BlcmFuZHMsIGFkZF9jYWxsX2Nsb2JiZXJfb3BzLAoJYWRkX2NhbGxfcmVhZF9vcHMpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtcHJlLmMgKGJpdG1hcF9wcmludF92YWx1ZV9zZXQsIGluc2VydF9hdXgpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtbGl2ZS5oIChudW1fdmFyX3BhcnRpdGlvbnMpOiBSZXR1cm4gdW5zaWduZWQuCgoyMDA0LTExLTAzICBEb3JpdCBOYWlzaGxvcyAgPGRvcml0QGlsLmlibS5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTgwMDkKCSogdHJlZS12ZWN0b3JpemVyLmggKGVudW0gZHJfYWxpZ25tZW50X3N1cHBvcnQpOiBOZXcgdHlwZS4KCShNQVhfTlVNQkVSX09GX1VOQUxJR05FRF9EQVRBX1JFRlMpOiBSZW1vdmVkLgoJKExPT1BfVU5BTElHTkVEX0RSKTogcmVwbGFjZWQgd2l0aCBMT09QX1ZJTkZPX1VOQUxJR05FRF9EUiBhbmQgaG9sZHMgYQoJc2luZ2xlIGRhdGFfcmVmZXJlbmNlIChpbnN0ZWFkIG9mIGEgdmFycmF5IG9mIHJlZmVyZW5jZXMpLgoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAobmV3X2xvb3BfdmVjX2luZm8pOiBMaWtld2lzZS4KCSh2ZWN0X2dlbl9uaXRlcnNfZm9yX3Byb2xvZ19sb29wKTogTGlrZXdpc2UuCgkodmVjdF91cGRhdGVfaW5pdHNfb2ZfZHJzKTogTGlrZXdpc2UuCgoJKHZlY3RfdXBkYXRlX2luaXRzX29mX2Rycyk6IFNldHRpbmcgb2YgRFJfTUlTQUxJR05NRU5UIG1vdmVkIHRvCgl2ZWN0X2VuaGFuY2VfZGF0YV9yZWZzX2FsaWdubWVudC4KCSh2ZWN0X2RvX3BlZWxpbmdfZm9yX2FsaWdubWVudCk6IExpa2V3aXNlLgoJKHZlY3RfZW5oYW5jZV9kYXRhX3JlZnNfYWxpZ25tZW50KTogRGVjaWRlIGlmIGFuZCBieSBob3cgbXVjaCB0byBwZWVsOwoJdGhpcyBmdW5jdGlvbmFsaXR5IHVzZWQgdG8gYmUgaW4gdmVjdF9hbmFseXplX2RhdGFfcmVmc19hbGlnbm1lbnQuCglBbHNvIHVwZGF0ZSBEUl9NSVNBTElHTk1FTlQgZHVlIHRvIHBlZWxpbmc7IHRoaXMgZnVuY3Rpb25hbGl0eSB1c2VkIHRvCgliZSBpbiB2ZWN0X3VwZGF0ZV9pbml0c19vZl9kcnMgYW5kIHZlY3RfZG9fcGVlbGluZ19mb3JfYWxpZ25tZW50KS4KCSh2ZWN0X2FuYWx5emVfZGF0YV9yZWZzX2FsaWdubWVudCk6IERlY2lzaW9uIG9uIHdoZXRoZXIgYW5kIGJ5IGhvdyBtdWNoCgl0byBwZWVsIG1vdmVkIHRvIHZlY3RfZW5oYW5jZV9kYXRhX3JlZnNfYWxpZ25tZW50LiBDYWxsCgl2ZWN0X3N1cHBvcnRhYmxlX2RyX2FsaWdubWVudC4KCgkodmVjdF9jb21wdXRlX2RhdGFfcmVmX2FsaWdubWVudCk6IFNldCBTVE1UX1ZJTkZPX1ZFQ1RZUEUuCgkodmVjdF9jb21wdXRlX2RhdGFfcmVmc19hbGlnbm1lbnQpOiBSZXR1cm4gYm9vbC4gQ29uc2lkZXIgcmV0dXJuIHZhbHVlCglvZiB2ZWN0X2NvbXB1dGVfZGF0YV9yZWZfYWxpZ25tZW50IGFuZCByZXR1cm4gdHJ1ZS9mYWxzZSBhY2NvcmRpbmdseS4KCSh2ZWN0X2VuaGFuY2VfZGF0YV9yZWZzX2FsaWdubWVudCk6IENvbnNpZGVyIHJldHVybiB2YWx1ZSBvZgoJdmVjdF9jb21wdXRlX2RhdGFfcmVmc19hbGlnbm1lbnQgYW5kIHJldHVybiB0cnVlL2ZhbHNlIGFjY29yZGluZ2x5LgoKCSh2ZWN0X3N1cHBvcnRhYmxlX2RyX2FsaWdubWVudCk6IE5ldyBmdW5jdGlvbi4KCSh2ZWN0b3JpemFibGVfc3RvcmUpOiBDYWxsIHZlY3Rfc3VwcG9ydGFibGVfZHJfYWxpZ25tZW50LgoJKHZlY3Rvcml6YWJsZV9sb2FkKTogQ2FsbCB2ZWN0X3N1cHBvcnRhYmxlX2RyX2FsaWdubWVudC4gQWxpZ25tZW50CglzdXBwb3J0IGNoZWNrcyBtb3ZlZCBmcm9tIGhlcmUgdG8gdmVjdF9zdXBwb3J0YWJsZV9kcl9hbGlnbm1lbnQuCgoJKHZlY3RfdHJhbnNmb3JtX2xvb3ApOiBBdm9pZCA4MCBjb2x1bW5zIG92ZXJmbG93LgoKMjAwNC0xMS0wMyAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiB0aW1ldmFyLmMgKHRpbWV2YXJfZW5hYmxlKTogQ2hhbmdlIGZyb20KCXN0YXRpYy4KCSh0aW1ldmFyX3B1c2gpOiBSZW5hbWUgdG8gLi4uCgkodGltZXZhcl9wdXNoXzEpOiB0aGlzIGFuZCByZW1vdmUgdGhlCgllbmFibGVkIGNoZWNrLgoJKHRpbWV2YXJfcG9wKTogUmVuYW1lIHRvIC4uLgoJKHRpbWV2YXJfcG9wXzEpOiB0aGlzIGFuZCByZW1vdmUgdGhlCgllbmFibGVkIGNoZWNrLgoJKiB0aW1ldmFyLmggKFBPUF9USU1FVkFSX0FORF9SRVRVUk4pOiBVc2UgZG8vd2hpbGUgbG9vcHMuCgkodGltZXZhcl9wb3ApOiBOZXcgbWFjcm8uCgkodGltZXZhcl9wdXNoKTogTmV3IG1hY3JvLgoJKHRpbWV2YXJfZW5hYmxlKTogRGVjbGFyZS4KCjIwMDQtMTEtMDMgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogY29uZmlnL2Rhcndpbi5oIChSRUFMX0xJQkdDQ19TUEVDKTogRGVmaW5lIHRvIHVzZSBzaGFyZWQKCWxpYmdjYyBmb3Igc2hhcmVkIGxpYnJhcmllcy4KCjIwMDQtMTEtMDMgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAtcHJvdG9zLmggKHMzOTBfc3BsaXRfYWNjZXNzX3JlZyk6IEFkZCBwcm90b3R5cGUuCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoczM5MF9zcGxpdF9hY2Nlc3NfcmVnKTogTmV3IGZ1bmN0aW9uLgoJKHJlZ2NsYXNzX21hcCk6IEFkZCBhY2Nlc3MgcmVnaXN0ZXJzLgoJKGdldF90aHJlYWRfcG9pbnRlcik6IFVzZSBhY2Nlc3MgcmVnaXN0ZXIgaW5zdGVhZCBvZiBVTlNQRUNfVFAuCgkqIGNvbmZpZy9zMzkwL3MzOTAuaCAoRklSU1RfUFNFVURPX1JFR0lTVEVSKTogU2V0IHRvIDM4LgoJKEFDQ0VTU19SRUdOT19QLCBBQ0NFU1NfUkVHX1ApOiBOZXcgbWFjcm9zLgoJKFRQX1JFR05VTSk6IE5ldyBkZWZpbmUuCgkoRklYRURfUkVHSVNURVJTLCBDQUxMX1VTRURfUkVHSVNURVJTLCBDQUxMX1JFQUxMWV9VU0VEX1JFR0lTVEVSUywKCVJFR19BTExPQ19PUkRFUik6IEFkZCBhY2Nlc3MgcmVnaXN0ZXJzLgoJKEhBUkRfUkVHTk9fTlJFR1MsIEhBUkRfUkVHTk9fTU9ERV9PSywgQ0xBU1NfTUFYX05SRUdTLAoJQ0FOTk9UX0NIQU5HRV9NT0RFX0NMQVNTKTogU3VwcG9ydCBhY2Nlc3MgcmVnaXN0ZXJzLgoJKGVudW0gcmVnX2NsYXNzKTogQWRkIEFDQ0VTU19SRUdTLgoJKFJFR19DTEFTU19OQU1FUywgUkVHX0NMQVNTX0NPTlRFTlRTKTogTGlrZXdpc2UuCgkoUkVHX0NMQVNTX0ZST01fTEVUVEVSKTogQWRkICd0JyBjb25zdHJhaW50LgoJKFJFR0lTVEVSX05BTUVTKTogQWRkIGFjY2VzcyByZWdpc3RlcnMuCgkqIGNvbmZpZy9zMzkwL3MzOTAubWQgKFVOU1BFQ19UUCk6IFJlbW92ZS4KCSgiKm1vdmRpXzY0Iik6IEFkZCBhY2Nlc3MgcmVnaXN0ZXIgYWx0ZXJuYXRpdmVzLiAgUHJvdmlkZSBzcGxpdHRlcnMKCXRvIHNwbGl0IERJbW9kZSBhY2Nlc3MgcmVnaXN0ZXIgPC0+IEdQUiBtb3ZlcyBpbnRvIFNJbW9kZSBtb3Zlcy4KCSgiKm1vdnNpX3phcmNoIiwgIiptb3ZzaV9lc2EiKTogQWRkIGFjY2VzcyByZWdpc3RlciBhbHRlcm5hdGl2ZXMuCgkoIm1vdnN0cmljdHNpIik6IExpa2V3aXNlLgoJKCJnZXRfdHBfNjQiLCAiZ2V0X3RwXzMxIik6IFJlaW1wbGVtZW50IHVzaW5nIGFjY2VzcyByZWdpc3RlcnMuCgkoInNldF90cF82NCIsICJzZXRfdHBfMzEiKTogTGlrZXdpc2UuCgkoIipzZXRfdHAiKTogTmV3IGluc24uCgoyMDA0LTExLTAzICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1waGlub2Rlcy5jIChyZXNpemVfcGhpX25vZGUpOiBDb3B5IG9ubHkgYSBwb3J0aW9uIG9mCgl0aGUgUEhJIG5vZGUgY3VycmVudGx5IGluIHVzZS4KCjIwMDQtMTEtMDMgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHRyZWUtb3B0LzE4MjMxCgkqIHRyZWUuYyAoc3RhdGljcCkgPGNhc2UgRlVOQ1RJT05fREVDTD46IE5lc3RlZCBmdW5jdGlvbnMgYXJlIHN0YXRpYwoJYWxzby4KCjIwMDQtMTEtMDMgIEFuZHJldyBNYWNMZW9kICA8YW1hY2xlb2RAcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xODI3MAoJKiB0cmVlLW91dG9mLXNzYS5jIChhbmFseXplX2VkZ2VzX2Zvcl9iYik6IElmIGEgYmxvY2sgaGFzIGluY29taW5nCglhYm5vcm1hbCBlZGdlcywgY29tbWl0IGFsbCBwZW5kaW5nIHN0bXRzIG9uIGluY29taW5nIGVkZ2VzLgoKMjAwNC0xMS0wMyAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAoZ2V0X2FkZHJlc3NfY29zdCk6IE9mZnNldCB6ZXJvIGRvZXMgbm90CgljYXVzZSBleHRyYSBjb3N0cy4gIEdlbmVyYXRlIGNhbm9uaWNhbCBSVEwuCgoyMDA0LTExLTAyICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIGxhbWJkYS1jb2RlLmMgKGxhbWJkYV9jb21wdXRlX2F1eGlsbGFyeV9zcGFjZSk6IFVwZGF0ZSBjb21tZW50cy4KCShsYW1iZGFfY29tcHV0ZV90YXJnZXRfc3BhY2UpLiBEaXR0by4KCSogbGFtYmRhLmggKGxhbWJkYV90cmFuc19tYXRyaXgpOiBEaXR0by4KCShsYW1iZGFfbGluZWFyX2V4cHJlc3Npb24pOiBEaXR0by4KCShsYW1iZGFfYm9keV92ZWN0b3IpOiBEaXR0by4KCShsYW1iZGFfbG9vcG5lc3QpOiBEaXR0by4KCSogdHJlZS1sb29wLWxpbmVhci5jIChnYXRoZXJfaW50ZXJjaGFuZ2Vfc3RhdHMpOiBDb21iaW5lIHRlc3RzLAoJdXBkYXRlIGNvbW1lbnRzLCBhbmQgcmVtb3ZlIHBvaW50bGVzcyBhZGRpdGlvbiBvZiAwLgoJKGxpbmVhcl90cmFuc2Zvcm1fbG9vcHMpOiBVcGRhdGUgY29tbWVudHMuCgoyMDA0LTExLTAzICBTZWJhc3RpYW4gUG9wICA8cG9wQGNyaS5lbnNtcC5mcj4KCgkqIHRyZWUuYyAodHJlZV9mb2xkX2djZCk6IFVzZSBGTE9PUl9NT0RfRVhQUiBpbnN0ZWFkIG9mCglDRUlMX01PRF9FWFBSLgoKMjAwNC0xMS0wMyBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogcHJlZGljdC5jIChzdHJ1Y3QgYmxvY2tfaW5mb19kZWYpOiBLaWxsICJ0b3Zpc2l0IiBmaWVsZC4KCShwcm9wYWdhdGVfZnJlcSk6IEFjY2VwdCBuZXcgInRvdmlzaXQiIHBhcmFtZXRlci4gIENoYW5nZQoJcmVhZC93cml0ZSBhY2Nlc3MgbWV0aG9kcyBmb3IgInRvdmlzaXQiIHRvIGNoZWNrIHRoZSAidG92aXNpdCIKCWJpdG1hcCBpbnN0ZWFkIG9mIGEgYml0IGluIGJsb2NrX2luZm9fZGVmLgoJKGVzdGltYXRlX2xvb3BzX2F0X2xldmVsKTogQWxsb2NhdGUgInRvdmlzaXQiIGJpdG1hcC4gIFBhc3MKCWl0IHRvIHByb3BhZ2F0ZV9mcmVxLgoKCSogc3RtdC5jIChleHBhbmRfY2FzZSk6IFNwZWVkIHVwIGNvZGUgdG8gZGV0ZWN0IGR1cGxpY2F0ZSBjYXNlCglsYWJlbCB0YXJnZXRzIGFuZCBjb3VudCB1bmlxdWUgY2FzZSBsYWJlbCB0YXJnZXRzLgoKMjAwNC0xMS0wMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNwcGRlZmF1bHQuYywgY3BwZGVmYXVsdC5oLCB0aW1ldmFyLmg6IFVwZGF0ZSBjb3B5cmlnaHQuCgoyMDA0LTExLTAzICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYml0bWFwLmgsIGRieG91dC5jLCB0cmVlLW11ZGZsYXAuYzogRml4IGNvbW1lbnQgZm9ybWF0dGluZy4KCjIwMDQtMTEtMDMgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jIChmaW5kX3Rha2VuX2VkZ2UpOiBBYm9ydCBpZiB3ZSBhcmUgZ2l2ZW4gYQoJc3RhdGVtZW50IHRoYXQgaXMgbmVpdGhlciBDT05EX0VYUFIgbm9yIFNXSVRDSF9FWFBSLgoKMjAwNC0xMS0wMiAgWmRlbmVrIER2b3JhayAgPGR2b3Jha3pAc3VzZS5jej4KCgkqIGZvbGQtY29uc3QuYyAoZm9sZCk6IFJlYXNzb2NpYXRlIGFsc28gKHggLSBtdWx0KSArIG11bHQgYW5kCgkobXVsdCAtIHgpICsgbXVsdC4gIENhc3Qgb3BlcmFuZHMgb2YgZXhwcmVzc2lvbiBhZnRlciBhcHBseWluZwoJZGlzdHJpYnV0aXZlIGxhdyB0byB0aGUgY29ycmVjdCB0eXBlcy4gIEFwcGx5IGRpc3RyaWJ1dGl2ZSBsYXcKCXRvIGEgKiBjIC0gYiAqIGMgZm9yIGFsbCBub24tZmxvYXQgdHlwZXMuCgoyMDA0LTExLTAyICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzogRG9uJ3QgY2xlYXIgU1RNUF9GSVhJTkMgb3IgU1RNUF9GSVhQUk9UTyBqdXN0CgliZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gcnVuIHRoZW0gbm93OyBpbnN0ZWFkLCBzZXQgdGhlbSB0bwoJc3RtcC1pbnN0YWxsLWZpeHByb3RvIG9yIHN0bXAtaW5zdGFsbC1maXhpbmMuCgkqIE1ha2VmaWxlLmluIChzdG1wLWluc3RhbGwtZml4cHJvdG8pOiBOZXcuCgkoc3RtcC1pbnN0YWxsLWZpeGluYyk6IE5ldy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNC0xMS0wMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGZsb3cuYyAoaW5pdF9wcm9wYWdhdGVfYmxvY2tfaW5mbyk6IFVzZSBiaXRtYXBfZW1wdHlfcCBvbiByZXN1bHQKCW9mIGJpdG1hcF94b3IuCgoyMDA0LTExLTAyICBaaWVtb3dpdCBMYXNraSAgPHpsYXNraUBhcHBsZS5jb20+CgoJKiBjLWxhbmcuYyAoTEFOR19IT09LU19UWVBFU19DT01QQVRJQkxFX1ApOiBSZW1vdmUuCgkoY190eXBlc19jb21wYXRpYmxlX3ApOiBNb3ZlIGZ1bmN0aW9uIGRlZmluaXRpb24uLi4KCSogYy1vYmpjLWNvbW1vbi5jIChjX3R5cGVzX2NvbXBhdGlibGVfcCk6IC4uLmhlcmUuCgkqIGMtb2JqYy1jb21tb24uaCAoTEFOR19IT09LU19UWVBFU19DT01QQVRJQkxFX1ApOiBNb3ZlZCBoZXJlIGZyb20KCWMtbGFuZy5jLgoKMjAwNC0xMS0wMiAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogY2ZnbG9vcC5oIChzdHJ1Y3QgbG9vcCk6IFVwZGF0ZSBjb21tZW50LgoJKiBjc2UuYyAoY3NlX21haW4pOiBSZW1vdmUgb2Jzb2xldGUgY29tbWVudC4KCgkqIGV4cHIuaCAoZ2VuX2NvbmRfdHJhcCk6IE1vdmUgcHJvdG90eXBlIHVuZGVyIGZ1bmN0aW9ucyBwcm92aWRlZAoJYnkgb3B0YWJzLmMuCgkoY2Fub25pY2FsaXplX2NvbmRpdGlvbiwgZ2V0X2NvbmRpdGlvbik6IE1vdmUgdG8uLi4KCSogcnRsLmggKGNhbm9uaWNhbGl6ZV9jb25kaXRpb24sIGdldF9jb25kaXRpb24pOiAuLi5oZXJlLgoJKGJyYW5jaF90YXJnZXRfbG9hZF9vcHRpbWl6ZSk6IEFkZCBjb21tZW50IHRoYXQgdGhpcyBmdW5jdGlvbiBpcwoJaW4gYnQtbG9hZC5jLgoJKiBsb29wLmMgKGNhbm9uaWNhbGl6ZV9jb25kaXRpb24sIGdldF9jb25kaXRpb24pOiBNb3ZlIHRvLi4uCgkqIHJ0bGFuYWwuYyAoY2Fub25pY2FsaXplX2NvbmRpdGlvbiwgZ2V0X2NvbmRpdGlvbik6IC4uLmhlcmUuCgkqIHNjaGVkLWRlcHMuYyAoZ2V0X2NvbmRpdGlvbik6IFJlbmFtZSB0byBzY2hlZF9nZXRfY29uZGl0aW9uLgoJKGFkZF9kZXBlbmRlbmNlKTogVXBkYXRlIHRoaXMgY2FsbGVyLgoKMjAwNC0xMS0wMiAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgdHJlZS1vcHQvMTY4MDgKCSogdHJlZS1zc2EuYyAocmVwbGFjZV9pbW1lZGlhdGVfdXNlcyk6IElmIHdlIGNhbGwgZm9sZF9zdG10LCBtYWtlIHN1cmUKCXRoYXQgdGhlIHZvcHMgZ2V0IG1hcmtlZCBmb3IgcmVuYW1pbmcuCgoyMDA0LTExLTAyICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsMUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5tZCAoIm1vdmNjIik6IFNldCB0eXBlIGF0dHJpYnV0ZS4KCjIwMDQtMTEtMDIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLXBoaW5vZGVzLmMgKGFkZF9waGlfYXJnKTogQWRkIGFuIGFzc2VydGlvbiB0aGF0IHRoZQoJZWRnZSBhbHJlYWR5IGV4aXN0cy4KCjIwMDQtMTEtMDIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLXBoaW5vZGVzLmMgKHJlbW92ZV9waGlfYXJnX251bSk6IERvIG5vdCB6ZXJvIHRoZQoJZWxlbWVudCB0aGF0J3MgYmVpbmcgcmVtb3ZlZC4KCjIwMDQtMTEtMDIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLXNzYS10aHJlYWR1cGRhdGUuYyAoY29weV9waGlzX3RvX2Jsb2NrKTogSW5zdGFsbCBQSEkKCWFyZ3VtZW50cyB1c2luZyBQRU5ESU5HX1NUTVQuCgkodGhyZWFkX2Jsb2NrKTogQ2FsbCBjb3B5X3BoaXNfdG9fYmxvY2sgYWZ0ZXIgcmVkaXJlY3RpbmcgYW4KCWVkZ2UuCgoyMDA0LTExLTAyICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogYml0bWFwLmggKGJpdG1hcF9hbmQsIGJpdG1hcF9hbmRfaW50bywgYml0bWFwX2FuZF9jb21wbCwKCWJpdG1hcF9hbmRfY29tcGxfaW50bywgYml0bWFwX2lvciwgYml0bWFwX2lvdF9pbnRvLAoJYml0bWFwX2lvcl9jb21wbCwgYml0bWFwX3hvciwgYml0bWFwX3hvcl9pbnRvKTogUHJvZHVjZSB2b2lkLgoJKGJpdG1hcF9pb3JfYW5kX2NvbXBsX2ludG8pOiBQcm9kdWNlIGJvb2wuCgkoYml0bWFwX3VuaW9uX29mX2RpZmYpOiBSZW5hbWUgdG8gLi4uCgkoYml0bWFwX2lvcl9hbmRfY29tcGwpOiAuLi4gaGVyZS4gUHJvZHVjZSBib29sLgoJKiBiaXRtYXAuYyAoYml0bWFwX2lvcl9hbmRfY29tcGxfaW50byk6IFJldHVybiBib29sLiBVc2UKCWJpdG1hcF9vcGVyYXRpb24gZGlyZWN0bHkuCgkoYml0bWFwX3VuaW9uX29mX2RpZmYpOiBSZW5hbWUgdG8gLi4uCgkoYml0bWFwX2lvcl9hbmRfY29tcGwpOiAuLi4gaGVyZS4gUmV0dXJuIGJvb2wsIHVzZQoJYml0bWFwX29wZXJhdGlvbiBkaXJlY3RseS4KCSogZGYuYyAoZGZfcmRfdHJhbnNmZXJfZnVuY3Rpb24pOiBVc2UgYml0bWFwX2lvcl9hbmRfY29tcGwuCgkoZGZfcnVfdHJhbnNmZXJfZnVuY3Rpb24sIGRmX2xyX3RyYW5zZmVyX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkqIGdsb2JhbC5jIChtb2RpZnlfYmJfcmVnX3Bhdik6IExpa2V3aXNlLgoKCSogYml0bWFwLmggKGJpdG1hcF9lcXVhbF9wKTogUmV0dXJuIGJvb2wuCgkoYml0bWFwX2ludGVyc2VjdF9wLCBiaXRtYXBfaW50ZXJzZWN0X2NvbXBsX3ApOiBEZWNsYXJlLgoJKiBiaXRtYXAuYyAoYml0bWFwX2VxdWFsX3ApOiBSZXR1cm4gYm9vbC4gQ29tcGFyZSBkaXJlY3RseS4KCShiaXRtYXBfaW50ZXJzZWN0X3AsIGJpdG1hcF9pbnRlcnNlY3RfY29tcGxfcCk6IE5ldy4KCSogZmxvdy5jIChjYWxjdWxhdGVfZ2xvYmFsX3JlZ3NfbGl2ZSk6IFVzZSBiaXRtYXBfaW50ZXJzZWN0X3AgYW5kCgliaXRtYXBfaW50ZXJzZWN0X2NvbXBsX3AuCgkqIGlmY3Z0IChkZWFkX29yX3ByZWRpY2FibGUpOiBMaWtld2lzZS4KCjIwMDQtMTEtMDIgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNzEwNAoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfZW1pdF9tb3ZlKTogRG9uJ3Qgd3JhcCBzbWFsbAoJbG9hZHMgaW4gemVyb19leHRlbmQuCgoyMDA0LTExLTAyICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIGRlYnVnLzE4MjQyCgkqIHRvcGxldi5jIChkZWJ1Z190eXBlX25hbWVzKTogUmVtb3ZlICJkd2FyZi0xIi4KCjIwMDQtMTEtMDIgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogdGltZXZhci5oICh0aW1ldmFyX2dldCk6IFJlbW92ZS4KCSogdGltZXZhci5jICh0aW1ldmFyX2dldCk6IFJlbW92ZSB1bnVzZWQgZnVuY3Rpb24uCgoyMDA0LTExLTAyICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRvYy9pbmNsdWRlL3RleGluZm8udGV4OiBVcGRhdGUgZnJvbSBUZXhpbmZvIENWUy4KCjIwMDQtMTEtMDIgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogY3BwZGVmYXVsdC5oIChjcHBfU1lTUk9PVCk6IFJlbW92ZS4KCSogY3BwZGVmYXVsdC5jIChjcHBfU1lTUk9PVCk6IExpa2V3aXNlLgoKMjAwNC0xMS0wMSAgQW5kcmV3IE1hY0xlb2QgIDxhbWFjbGVvZEByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE2NDQ3CgkqIHRyZWUtY2ZnLmMgKGJzaV9jb21taXRfb25lX2VkZ2VfaW5zZXJ0KTogUmVuYW1lIGZyb20KCWJzaV9jb21taXRfZWRnZV9pbnNlcnRzXzEsIGFuZCBtYWtlIGZ1bnRpb24gZXh0ZXJuYWwuICBSZXR1cm4gbmV3IGJsb2NrLgoJKGJzaV9jb21taXRfZWRnZV9pbnNlcnRzKTogVXNlIHJlbmFtZWQgYnNpX2NvbW1pdF9vbmVfZWRnZV9pbnNlcnQuCgkqIHRyZWUtb3B0aW1pemUuYyAocGFzc19jbGVhbnVwX2NmZ19wb3N0X29wdGltaXppbmcpOiBFbmFibGUgbGlzdGluZy4KCSogdHJlZS1mbG93LmggKGJzaV9jb21taXRfb25lX2VkZ2VfaW5zZXJ0KTogRXh0ZXJuIGRlY2wuCgkqIHRyZWUtb3V0b2Ytc3NhLmMgKHJld3JpdGVfdHJlZXMpOiBEb24ndCBjb21taXQgZWRnZXMgaGVyZS4KCShzYW1lX3N0bXRfbGlzdF9wKTogTmV3LiAgUmV0dXJuIFRSVUUgaWYgZWRnZSBpcyB0byBiZSBmb3J3YXJkZWQuCgkoaWRlbnRpY2FsX2NvcGllc19wKTogTmV3LiAgUmV0dXJuIHRydWUgaXMgdHdvIGNvcGllcyBhcmUgdGhlIHNhbWUuCgkoaWRlbnRpY2FsX3N0bXRfbGlzdHNfcCk6IE5ldy4gIFJldHVybiB0cnVlIGlmIHN0bXQgbGlzdHMgYXJlIHRoZSBzYW1lLgoJKGFuYWx5emVfZWRnZXNfZm9yX2JiKTogTmV3LiAgRGV0ZXJtaW5lIGhvdyBiZXN0IHRvIGluc2VydCBlZGdlIHN0bXRzCglmb3IgYSBiYXNpYyBibG9jay4KCShwZXJmb3JtX2VkZ2VfaW5zZXJ0cyk6IE5ldy4gIERldGVybWluZSB3aGF0IHRvIGRvIHdpdGggYWxsIHN0bXRzIHRoYXQKCWhhdmUgYmVlbiBpbnNlcnRlZCBvbiBlZGdlcy4KCShyZW1vdmVfc3NhX2Zvcm0pOiAgQW5hbHl6ZSBhbmQgY29tbWl0IGVkZ2VzIGZyb20gaGVyZS4KCjIwMDQtMTEtMDEgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIGJvb3RzdHJhcC8xODIzMgoJKiBiaXRtYXAuaCAoYm1wX2l0ZXJfZW5kX3ApOiBUYWtlIGEgY29uc3QgcG9pbnRlciBpbnN0ZWFkIG9mIGEgc3RydWN0LgoJKEVYRUNVVEVfSUZfU0VUX0lOX0JJVE1BUCk6IFVwZGF0ZSBjYWxsIHRvIGJtcF9pdGVyX2VuZF9wLgoJKEVYRUNVVEVfSUZfQU5EX0NPTVBMX0lOX0JJVE1BUCk6IExpa2V3aXNlLgoJKEVYRUNVVEVfSUZfQU5EX0lOX0JJVE1BUCk6IExpa2V3aXNlLgoKMjAwNC0xMS0wMSAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYy8xODIzOQoJKiBjLWRlY2wuYyAoZ2V0X3Bhcm1faW5mbyk6IEFsbG93IEZVTkNUSU9OX0RFQ0xzIHRvIGFwcGVhciBhbW9uZ3N0CglwYXJhbWV0ZXIgZGVjbGFyYXRpb25zLgoKMjAwNC0xMS0wMSAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbDFAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAocmVnY2xhc3NfbWFwKTogUHV0IHJlZyAzMyAoY2MpIHRvIENDX1JFR1MgZ3JvdXAuCgkoczM5MF9zZWNvbmRhcnlfaW5wdXRfcmVsb2FkX2NsYXNzKQoJKHMzOTBfc2Vjb25kYXJ5X291dHB1dF9yZWxvYWRfY2xhc3MpOiBVc2UgR0VORVJBTF9SRUdTIHRvIHJlbG9hZCBhIGNjCglyZWdpc3Rlci4KCShzMzkwX2V4cGFuZF9jbXBtZW0pOiBFbmFibGUgY21wbWVtIGltcGxlbWVudGF0aW9uLgoJKiBjb25maWcvczM5MC9zMzkwLmggKHJlZ19jbGFzcywgUkVHX0NMQVNTX05BTUVTLCBSRUdfQ0xBU1NfQ09OVEVOVFMpOgoJQWRkZWQgdGhyZWUgbmV3IGNsYXNzZXM6IENDX1JFR1MsIEFERFJfQ0NfUkVHUywgR0VORVJBTF9DQ19SRUdTLgoJKFJFR19DTEFTU19GUk9NX0xFVFRFUik6IE5ldyBjb25zdHJhaW50ICdjJyBhZGRlZC4KCSogY29uZmlnL3MzOTAvczM5MC5tZCAoIm1vdmNjIik6IE5ldyBpbnNuIHBhdHRlcm4uCgkqIGRvYy9tZC50ZXhpOiBEb2N1bWVudCAnYycgY29uc3RyYWludCBmb3IgczM5MC4KCjIwMDQtMTEtMDEgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYysrLzE4MDY0CgkqIGRvYy9leHRlbmQudGV4aSAoRGVwcmVjYXRlZCBGZWF0dXJlcyk6IERlcHJlY2F0ZSBHKysgY292YXJpYW50CglleHRlbnNpb24uCgoyMDA0LTEwLTE2ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCglGaXggUFIgdHJlZS1vcHRpbWl6YXRpb24vMTc2NzIKCUZpeCBQUiB0cmVlLW9wdGltaXphdGlvbi8xODE2OAoKCSogbGFtYmRhLWNvZGUuYyAobGFtYmRhX2xhdHRpY2VfY29tcHV0ZV9iYXNlKTogRml4IHJldmVyc2VkCglhc3NlcnQgdGVzdC4KCShnY2NfdHJlZV90b19saW5lYXJfZXhwcmVzc2lvbik6IEFkZCBleHRyYSB0byBleGlzdGluZyBjb25zdGFudC4KCShkZXB0aF9vZl9uZXN0KTogRmFjdG9yIG91dCBmdW5jdGlvbiB1c2VkIGluIHZhcmlvdXMgcGxhY2VzLgoJKGdjY19sb29wX3RvX2xhbWJkYV9sb29wKTogQ2xlYW4gdXAgY29kZSBhIGxpdHRsZSBiaXQuIE5vCglmdW5jdGlvbmFsIGNoYW5nZXMuCgkoZmluZF9pbmR1Y3Rpb25fdmFyX2Zyb21fZXhpdF9jb25kKTogU3RvcCBndWVzc2luZywgYW5kIGp1c3QKCWdldCB0aGUgcmlnaHQgYW5zd2VyIDopLgoJKGdjY19sb29wbmVzdF90b19sYW1iZGFfbG9vcG5lc3QpOiBSZW1vdmUgdXNlbGVzcyBwcmUtYWxsb2NhdGlvbi4KCVByaW50IG91dCBtZXNzYWdlIGFib3V0IHJlc3VsdCBvZiBhdHRlbXB0IHRvIGNyZWF0ZSBwZXJmZWN0IG5lc3QuCgkobGJ2X3RvX2djY19leHByZXNzaW9uKTogQWRkIHR5cGUgYXJndW1lbnQsIHVzZSBpdCB0byBkbyBtYXRoCglhbmQgaW5kdWN0aW9uIHZhcmlhYmxlIGNyZWF0aW9uLgoJKGxsZV90b19nY2NfZXhwcmVzc2lvbik6IERpdHRvLgoJKGxhbWJkYV9sb29wbmVzdF90b19nY2NfbG9vcG5lc3QpOiBDcmVhdGUgbmV3IGl2IHdpdGggc2FtZSB0eXBlIGFzCglvbGRpdi4gUGFzcyB0eXBlIGFyZ3VtZW50IHRvIGxsZV90b19nY2NfZXhwcmVzc2lvbiBhbmQKCWxidl90b19nY2NfZXhwcmVzc2lvbi4KCVJlc2V0IG51bWJlciBvZiBpdGVyYXRpb25zIGFmdGVyIHRyYW5zZm9ybWF0aW9uLgoJKHBlcmZlY3RfbmVzdGlmeSk6IFJlbW92ZSB1c2VsZXNzIHByZS1hbGxvY2F0aW9uLCBhbmQgY2xlYW51cAoJYSBzbWFsbCBhbW91bnQuCgoJKiB0cmVlLWRhdGEtcmVmLmMgKGJ1aWxkX2NsYXNzaWNfZGlzdF92ZWN0b3IpOiBSZXR1cm4gZmFsc2UgZm9yCglkZXBlbmRlbmNlcyBjb21wbGV0ZWx5IG91dHNpZGUgb2YgdGhlIGxvb3AgbmVzdCB3ZSBhc2tlZCBhYm91dC4KCShidWlsZF9jbGFzc2ljX2Rpcl92ZWN0b3IpOiBEaXR0by4KCShjb21wdXRlX2RhdGFfZGVwZW5kZW5jZXNfZm9yX2xvb3ApOiBPbmx5IGFkZCBkZXBlbmRlbmNlIHJlbGF0aW9ucwoJaW5zaWRlIHRoZSBsb29wIHdlIGFza2VkIGFib3V0LgoKCSogdHJlZS1sb29wLWxpbmVhci5jIChsaW5lYXJfdHJhbnNmb3JtX2xvb3BzKTogVXNlIEREUl9TSVpFX1ZFQ1QuCglDb21wdXRlIGltbWVkaWF0ZSB1c2VzLgoKCSogdHJlZS1vcHRpbWl6ZS5jOiBNb3ZlIGxpbmVhcl90cmFuc2Zvcm1fbG9vcHMgdG8gYmVmb3JlIGl2Y2Fub24uCgoyMDA0LTExLTAxICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1jZmcuYyAodGhyZWFkX2p1bXBzKTogRml4IGEgY29tbWVudCB0eXBvLgoKMjAwNC0xMS0wMSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmMgKHRocmVhZF9qdW1wcyk6IEZpeCBhIGNvbW1lbnQgdHlwby4KCjIwMDQtMTAtMzEgIE5pY29sYXMgUGl0cmUgPG5pY29AY2FtLm9yZz4KCgkqIGNvbmZpZy9hcm0vaWVlZTc1NC1zZi5TIChmbG9hdGRpc2YpOiBGaXggcmVncmVzc2lvbiB3aXRoCgl2YWx1ZXMgc21hbGxlciB0aGFuIDJeMzIuCgoyMDA0LTEwLTMxIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiBjZmdsb29wLmggKHN0cnVjdCBsb29wKTogUmVtb3ZlIHVudXNlZCAibm9kZXMiIGZpZWxkLgoJKiB0aW1ldmFyLmRlZiAoVFZfVFJFRV9MT09QX0JPVU5EUyk6IE5ldy4KCSogdHJlZS1kYXRhLXJlZi5jIChmaW5kX2RhdGFfcmVmZXJlbmNlc19pbl9sb29wKTogVXNlIGdldF9sb29wX2JvZHkKCWluc3RlYWQgb2YgY2FsbGluZyBmbG93X2JiX2luc2lkZV9sb29wX3AgZm9yIGV2ZXJ5IGJhc2ljIGJsb2NrCglpbiB0aGUgZnVuY3Rpb24uCgkqIHRyZWUtc3NhLWxvb3AuYyAocGFzc19yZWNvcmRfYm91bmRzKTogVXNlIFRWX1RSRUVfTE9PUF9CT1VORFMuCgoyMDA0LTEwLTMxICBHcmFoYW0gU3RvdHQgPGdyYWhhbS5zdG90dEBidGludGVybmV0LmNvbT4KCgkqIGNvbmZpZy9wYS9wYS5tZDogKHByZWZldGNoXzY0LCBwcmVmZXRjaF8zMik6IEZpeCB0eXBvLiAgVXNlCglJTlRfNV9CSVRTIGluc3RlYWQgb2YgVkFMXzVfQklUU19QLgoKMjAwNC0xMC0zMSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgbWlkZGxlLWVuZC8xNDUyMQoJKiB0cmVlLWlubGluZS5jIChpbmxpbmVfZm9yYmlkZGVuX3BfMSk6IFVzZSAlcUYgaW5zdGVhZCBvZiAnJUYnCglmb3IgY29uc2lzdGVudCBxdW90aW5nIGluIGRpYWdub3N0aWMgbWVzc2FnZXMuCgkoZXhwYW5kX2NhbGxfaW5saW5lKTogTGlrZXdpc2UuCgkqIHRyZWUtb3B0aW1pemUuYyAodHJlZV9yZXN0X29mX2NvbXBpbGF0aW9uKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLmMgKHdhcm5fdW5pbml0aWFsaXplZF92YXIpOiBMaWtld2lzZS4KCSh3YXJuX3VuaW5pdGlhbGl6ZWRfcGhpKTogTGlrZXdpc2UuCgoyMDA0LTEwLTMxICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHNfY2Fubm90X2NoYW5nZV9tb2RlX2NsYXNzKTogVXNlIGEgc3RyaWN0ZXIKCW1vZGUgY2hlY2suCgoyMDA0LTEwLTMxICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYy1jb21tb24uYzogRml4IGEgY29tbWVudCB0eXBvLgoKMjAwNC0xMC0zMSAgSmFzb24gTWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CgoJUFIgbWlkZGxlLWVuZC8xNzUyNgoJKiB0cmVlLWdpbXBsZS5jIChpc19naW1wbGVfbWVtX3Jocyk6IEFsc28gcmVxdWlyZSBhIHZhbCBmb3IKCWFnZ3JlZ2F0ZSB0eXBlcyB0aGF0IGFyZSBub3QgQkxLbW9kZS4KCjIwMDQtMTAtMzAgIFppZW1vd2l0IExhc2tpICA8emxhc2tpQGFwcGxlLmNvbT4KCgkqIGMtY29tbW9uLmggKG9iamNfbG9va3VwX2l2YXIpOiBBZGQgc2Vjb25kIHBhcmFtZXRlciB0bwoJcHJvdG90eXBlLgoJKiBjLXR5cGVjay5jIChidWlsZF9leHRlcm5hbF9yZWYpOiBBZnRlciBsb29raW5nIHVwIHN5bWJvbCwKCXBhc3MgaXQgdG8gb2JqY19sb29rdXBfaXZhcigpIHRvIGRlY2lkZSB3aGV0aGVyIGl0IG9yIHRoZQoJaXZhciBzaG91bGQgYmUgdXNlZCwgcmF0aGVyIHRoYW4gZGVjaWRpbmcgdGhlIGlzc3VlIGxvY2FsbHkuCgkqIHN0dWItb2JqYy5jIChvYmpjX2xvb2t1cF9pdmFyKTogQWRkIGFuIE9USEVSIHBhcmFtZXRlciwKCXdoaWNoIGlzIHNpbXBseSByZXR1cm5lZCBpbiB0aGUgbm9uLU9iakMgY2FzZS4KCjIwMDQtMTAtMzAgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBzZGJvdXQuYyAoc2Rib3V0X3N5bWJvbCk6IERvIG5vdCBvdXRwdXQgdHlwZSAuZGVmIHN0YXRlbWVudHMKCWZvciBidWlsdGluIHR5cGVzLgoKMjAwNC0xMC0zMCAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBjLWNvbW1vbi5jIChjYXRlbmF0ZV9zdHJpbmdzKTogTmV3LgoJKGNfcGFyc2VfZXJyb3IpOiBVc2UgaXQuICBEb24ndCBvdmVyLWVzY2FwZS4KCjIwMDQtMTAtMzAgIEtheiBLb2ppbWEgIDxra29qaW1hQGdjYy5nbnUub3JnPgoKCSogY29uZmlnL3NoL3NoLmMgKGNhbGNfbGl2ZV9yZWdzKTogRGVjbGFyZSByZWcgYXMgdW5zaWduZWQgYW5kCgltb2RpZnkgdGhlIGZvciBsb29wIGV4cHJlc3Npb25zIGZvciBpdC4gIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXN0cy4KCShzaF9leHBhbmRfcHJvbG9ndWUpOiBEZWNsYXJlIHJlZyBhcyB1bnNpZ25lZC4KCShzaF9naW1wbGlmeV92YV9hcmdfZXhwcik6IEluaXRpbmFsaXplIGxhYl9vdmVyLgoJKHNoX2hhbmRsZV9zcF9zd2l0Y2hfYXR0cmlidXRlKTogQWRkIGNvbnN0IHF1YWxpZmllciBhcHByb3ByaWF0ZWx5LgoKMjAwNC0xMC0zMCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBkb2MvaW52b2tlLnRleGkgKERhcndpbiBPcHRpb25zKTogSW1wcm92ZSBkZXNjcmlwdGlvbiBvZgoJaG93IHRoZSBzdWJ0eXBlIGlzIGNob3Nlbi4KCjIwMDQtMTAtMzAgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCVBSIG1pZGRsZS1lbmQvMTgwOTYKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2VtaXRfYWxsb2NhdGVfc3RhY2spOiBDaGVjayB0aGF0Cgl0aGUgc3RhY2sgYWRqdXN0bWVudCwgInNpemUiLCBpcyB2YWxpZCBmb3IgUG1vZGUuICBJZiB0aGUgc3RhY2sKCWZyYW1lIGlzIHRvbyBsYXJnZSwgZ2VuZXJhdGUgYSB0cmFwIGluc24gYW5kIGlzc3VlIGEgd2FybmluZy4KCjIwMDQtMTAtMzAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLXNzYS1kb20uYzogRml4IGNvbW1lbnQgdHlwb3MuCgoyMDA0LTEwLTMwICBLYXogS29qaW1hICA8a2tvamltYUBnY2MuZ251Lm9yZz4KCgkqIGNvbmZpZy9zaC9zaC5jIChwcmVwYXJlX21vdmVfb3BlcmFuZHMpOiBVc2Ugb3BlcmFuZHNbMF0KCWZvciB0aGUgb3V0cHV0IHJ0bCBpZiBub19uZXdfcHNldWRvcyBpcyBzZXQuICBSZW1vdmUgcmVkdW5kYW50CglsaW5lLgoKMjAwNC0xMC0zMCAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgYy8xNjY2NgoJKiBjLWRlY2wuYyAoc3RhcnRfZnVuY3Rpb24pOiBEb24ndCBjaGVjayBmb3IgREVDTF9CVUlMVF9JTiB3aGVuCglkZXRlcm1pbmluZyB3aGV0aGVyIHRvIGNvcHkgcGFyYW1ldGVyIHR5cGVzIGZyb20gYSBwcmV2aW91cwoJcHJvdG90eXBlIGRlY2xhcmF0aW9uLgoKMjAwNC0xMC0yOSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNzU4MQoJKiBjc2VsaWIuYyAoY3NlbGliX3Byb2Nlc3NfaW5zbik6IFRoZSBsYXN0IGluc3RydWN0aW9uIG9mIGEgbGliY2FsbAoJYmxvY2ssIHdpdGggdGhlIFJFR19SRVRWQUwgbm90ZSwgc2hvdWxkIGJlIGNvbnNpZGVyZWQgaW4gdGhlIGxpYmNhbGwuCgkqIGdjc2UuYyAoZG9fbG9jYWxfY3Byb3ApOiBBbGxvdyBjb25zdGFudHMgdG8gYmUgcHJvcGFnYXRlZCBvdXRzaWRlCglvZiBsaWJjYWxsIGJsb2Nrcy4KCShhZGp1c3RfbGliY2FsbF9ub3Rlcyk6IFVzZSBzaW1wbGlmeV9yZXBsYWNlX3J0eCBpbnN0ZWFkIG9mCglyZXBsYWNlX3J0eCB0byBhdm9pZCBjcmVhdGluZyBpbnZhbGlkIFJUTCBpbiBSRUdfUkVUVkFMIG5vdGVzLgoKMjAwNC0xMC0zMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtcGhpbm9kZXMuYyAoY3JlYXRlX3BoaV9ub2RlKTogRG9uJ3QgemVybyBQSElfUkVXUklUVEVOLgoKMjAwNC0xMC0yOSBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtZG9tLmMgKHN0cnVjdCBlZGdlX2luZm8pOiBOZXcgc3RydWN0dXJlIGhvbGRpbmcKCWVkZ2UgZXF1aXZhbGVuY2VzIGFuZCBlZGdlIHJlZGlyZWN0aW9uIGluZm9ybWF0aW9uLgoJKGdldF9lcV9leHByX3ZhbHVlLCByZWNvcmRfZG9taW5hdGluZ19jb25kaXRpb25zKTogS2lsbC4KCShwcm9wYWdhdGVfdG9fb3V0Z29pbmdfZWRnZXMpOiBSZW5hbWVkIGZyb20gY3Byb3BfaW50b19waGlzLgoJQ2FsbCByZWNvcmRfZWRnZV9pbmZvLgoJKGFsbG9jYXRlX2VkZ2VfaW5mbywgZnJlZV9lZGdlX2luZm8pOiBOZXcuCgkodHJlZV9zc2FfZG9taW5hdG9yX29wdGltaXplKTogVXNlIHByb3BhZ2F0ZV90b19vdXRnb2luZ19lZGdlcwoJcmF0aGVyIHRoYW4gY3Byb3BfaW50b19waGlzLiAgRnJlZSBhbGwgZWRnZSBpbmZvcyBiZWZvcmUgdGhyZWFkaW5nCglqdW1wcy4KCSh0aHJlYWRfYWNyb3NzX2VkZ2UpOiBBbGxvY2F0ZSBuZXcgZWRnZSBpbmZvIHN0cnVjdHVyZXMgYXMgbmVlZGVkCglhbmQgc3RvcmUgdGhlIHJlZGlyZWN0aW9uIHRhcmdldCBpbnRvIHRoZSBlZGdlIGluZm8gc3RydWN0dXJlCglpbnN0ZWFkIG9mIHRoZSBlZGdlJ3MgQVVYIGZpZWxkLgoJKGRvbV9vcHRfaW5pdGlhbGl6ZV9ibG9jayk6IE1hcmsgdW51c2VkIGFyZ3VtZW50IHdpdGggQVRUUklCVVRFX1VOVVNFRC4KCShyZWNvcmRfZXF1aXZhbGVuY2VfZnJvbV9pbmNvbWluZ19lZGdlKTogTG9zZSB1bm5lY2Vzc2FyeSBhcmd1bWVudC4KCVJldmFtcCBjb2RlIHdoaWNoIGZpbmRzIGFuZCByZWNvcmRzIGVxdWl2YWxlbmNlcyBhc3NvY2lhdGVkIHdpdGgKCWVkZ2VzIHRvIHVzZSBzYXZlZCBkYXRhIGluIHRoZSBlZGdlX2luZm8gc3RydWN0dXJlLgoJKHJlY29yZF9lcXVpdmFsZW5jc19mcm9tX3BoaXMpOiBTaW1pbGFybHkuCgkoZG9tX29wdF9maW5hbGl6ZV9ibG9jayk6IFJldmFtcCBjb2RlIHdoaWNoIGZpbmRzIGFuZCByZWNvcmRzCgllcXVpdmFsZW5jZXMgYXNzb2NpYXRlZCB3aXRoIGVkZ2VzIHRvIHVzZSBzYXZlZCBkYXRhIGluIHRoZQoJZWRnZV9pbmZvIHN0cnVjdHVyZS4KCShidWlsZF9hbmRfcmVjb3JkX25ld19jb25kKTogTmV3IGZ1bmN0aW9uLgoJKHJlY29yZF9jb25kaXRpb25zKTogVXNlIGJ1aWxkX2FuZF9yZWNvcmRfbmV3X2NvbmQgdG8gcmVjb3JkCglkb21pbmF0aW5nIGNvbmRpdGlvbnMuCgkocmVjb3JkX2VkZ2VfaW5mbyk6IE5ldyBmdW5jdGlvbi4KCShyZWNvcmRfcmFuZ2UpOiBUaWdodGVuIHRlc3QgZm9yIGNvbmRpdGlvbnMgd2hpY2ggY3JlYXRlCgl1c2VmdWwgcmFuZ2UgcmVjb3Jkcy4KCjIwMDQtMTAtMjkgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY29uZmlnL2kzODYvZGFyd2luLmggKEFTTV9TUEVDKTogU2ltcGxpZnkuCgkoU1VCVEFSR0VUX0VYVFJBX1NQRUNTKTogQWRkIGRhcndpbl9zdWJhcmNoIHNwZWMuCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLmggKERBUldJTl9TVUJBUkNIX1NQRUMpOiBOZXcuCgkoU1VCVEFSR0VUX0VYVFJBX1NQRUNTKTogQWRkIGRhcndpbl9zdWJhcmNoIHNwZWMuCgkqIGNvbmZpZy9kYXJ3aW4uaCAoTElOS19DT01NQU5EX1NQRUMpOiBEb24ndCBwYXNzIC1hcmNoIGhlcmUuCgkoTElOS19TUEVDKTogRG8gcGFzcyAtYXJjaCBoZXJlLiAgSGFuZGxlIC1mb3JjZV9jcHVzdWJ0eXBlX0FMTAoJaW4gYWxsIGNhc2VzLiAgUGFzcyB0aGUgcmlnaHQgLWFyY2ggb3IgLWFyY2hfb25seSBiYXNlZCBvbiAtbWNwdS4KCShBU01fU1BFQyk6IEhhbmRsZSAtZm9yY2VfY3B1c3VidHlwZV9BTEwuCgkqIGRvYy9pbnZva2UudGV4aSAoRGFyd2luIE9wdGlvbnMpOiBJbXByb3ZlIGRvY3VtZW50YXRpb24gZm9yCglEYXJ3aW4gbGlua2VyIChhbmQgbGlidG9vbCkgc3dpdGNoZXMuCgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi1mYWxsYmFjay5jOiBJbmNsdWRlIDxtYWNoL3RocmVhZF9zdGF0dXMuaD4uCgoyMDA0LTEwLTI5ICBTdGFuIFNoZWJzICA8c2hlYnNAYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC9kYXJ3aW4tdHJhbXAuYXNtOiBNYWtlIG1vcmUgNjQtYml0LWZyaWVuZGx5LgoKMjAwNC0xMC0yOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtcGhpbm9kZXMuYyAoYWxsb2NhdGVfcGhpX25vZGUpOiBOZXcuCgkobWFrZV9waGlfbm9kZSwgcmVzaXplX3BoaV9ub2RlKTogVXNlIGl0LgoKMjAwNC0xMC0yOSAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogY29uZmlnL3JzNjAwMC9zeXN2NC5oIChUQVJHRVRfUE9XRVIpOiBEZWZpbmUgYXMgMC4KCSogY29uZmlnL3JzNjAwMC9kYXJ3aW4uaCAoVEFSR0VUX1BPV0VSKTogRGVmaW5lIGFzIDAuCgoyMDA0LTEwLTI5ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1waGlub2Rlcy5jIChtYWtlX3BoaV9ub2RlLCByZXNpemVfcGhpX25vZGUpOiBEb24ndCB6ZXJvCgl0aGUgd2hvbGUgUEhJIG5vZGUuCgkqIHRyZWUuaCAodHJlZV9waGlfbm9kZSk6IFRlbGwgdGhlIGdhcmJhZ2UgY29sbGVjdG9yIHRvIGNoYXNlCgludW1fYXJncyBhcmd1bWVudHMuCgoyMDA0LTEwLTI5ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIG9wdHMuYyAoZGVjb2RlX29wdGlvbnMpOiBMb3dlciB0aGUgY3Jvc3NqdW1wIHRocmVzaG9sZCBmb3IgLU9zLgoKMjAwNC0xMC0yOSAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLmggKHN0cnVjdCB0cmVlX3NzYV9uYW1lKTogUmVtb3ZlIGZpZWxkICdlcXVpdicuCgoyMDA0LTEwLTI4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogYml0bWFwLmggKGJpdG1hcF9lbXB0eV9wKTogTmV3LgoJKGJpdG1hcF9hbmQsIGJpdG1hcF9hbmRfaW50bywgYml0bWFwX2FuZF9jb21wbCwKCWJpdG1hcF9hbmRfY29tcGxfaW50bywgYml0bWFwX2lvciwgYml0bWFwX2lvcl9pbnRvLAoJYml0bWFwX2lvcl9jb21wbCwgYml0bWFwX3hvciwgYml0bWFwX3hvcl9pbnRvKTogTmV3IGJpdG1hcAoJb3BlcmF0aW9uIG1hY3Jvcy4KCShiaXRtYXBfaW9yX2FuZF9jb21wbCk6IFJlbmFtZSB0byAuLi4KCShiaXRtYXBfaW9yX2FuZF9jb21wbF9pbnRvKTogLi4uIGhlcmUuCgkqIGJpdG1hcC5jIChiaXRtYXBfZXF1YWxfcCk6IFVzZSBiaXRtYXBfeG9yLgoJKGJpdG1hcF9pb3JfYW5kX2NvbXBsKTogUmVuYW1lIHRvIC4uLgoJKGJpdG1hcF9pb3JfYW5kX2NvbXBsX2ludG8pOiAuLi4gaGVyZS4gQWRqdXN0LiBSZXR1cm4gY2hhbmdlZAoJZmxhZy4KCShiaXRtYXBfdW5pb25fb2ZfZGlmZik6IFVzZSByZW5hbWVkIGJpdG1hcCBmdW5jdGlvbnMuCgkqIGJhc2ljLWJsb2NrLmggKEFORF9SRUdfU0VULCBBTkRfQ09NUExfUkVHX1NFVCwgSU9SX1JFR19TRVQsCglYT1JfUkVHX1NFVCwgSU9SX0FORF9DT01QTF9SRUdfU0VUKTogTGlrZXdpc2UuCgkqIGNmZ3J0bC5jIChzYWZlX2luc2VydF9pbnNuX29uX2VkZ2UpOiBMaWtld2lzZS4KCSogZGYuYyAoZGZfYmJfcmRfbG9jYWxfY29tcHV0ZSkKCSogZmxvdy5jIChjYWxjdWxhdGVfZ2xvYmFsX3JlZ3NfbGl2ZSwKCWluaXRfcHJvcGFnYXRlX2Jsb2NrX2luZm8pOiBMaWtld2lzZS4KCSogaWZjdnQuYyAoZmluZF9pZl9jYXNlXzEsIGZpbmRfaWZfY2FzZV8yLAoJZGVhZF9vcl9wcmVkaWNhYmxlKTogTGlrZXdpc2UuCgkqIHJhLWJ1aWxkLmMgKHVuaW9uX3dlYl9wYXJ0X3Jvb3RzLCBsaXZldGhyb3VnaF9jb25mbGljdHNfYmIsCglyZXNldF9jb25mbGljdHMsIGNvbmZsaWN0c19iZXR3ZWVuX3dlYnMpOiBMaWtld2lzZS4KCSogcmEtcmV3cml0ZS5jIChyZWxvYWRzX3RvX2xvYWRzLCByZXdyaXRlX3Byb2dyYW0yLAoJZGV0ZWN0X3dlYl9wYXJ0c190b19yZWJ1aWxkKTogTGlrZXdpc2UuCgkqIHNjaGVkLWViYi5jIChjb21wdXRlX2p1bXBfcmVnX2RlcGVuZGVuY2llcyk6IExpa2V3aXNlLgoJKiB0cmVlLWludC1zc2EuYyAoaW5zZXJ0X3BoaV9ub2Rlc19mb3IsIHJld3JpdGVfaW50b19zc2EpOiBMaWtld2lzZS4KCSogdHJlZS1zcmEuYyAoZGVjaWRlX2luc3RhbnRpYXRpb25zKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWFsaWFzLmMgKGNyZWF0ZV9uYW1lX3RhZ3MsCgltZXJnZV9wb2ludGVkX3RvX2luZm8pOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtZG9tLmMgKHRyZWVfc3NhX2RvbWluYXRvcl9vcHRpbWl6ZSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1sb29wLWltLmMgKG1vdmVfY29tcHV0YXRpb25zKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGdldF9jYWxsX2V4cHJfb3BlcmFuZHMpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtcHJlLmMgKGZpbmlfcHJlKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLmMgKHZlcmlmeV9mbG93X3NlbnNpdGl2ZV9hbGlhc19pbmZvKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhbmFtZXMuYyAoYW55X21hcmtlZF9mb3JfcmV3cml0ZV9wKTogTGlrZXdpc2UuCgkqIHRyZWUtdmVjdG9yaXplci5jICh2ZWN0b3JpemVfbG9vcHMpOiBMaWtld2lzZS4KCjIwMDQtMTAtMjkgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJY29uZmlnL21uMTAzMDAvbW4xMDMwMC5oIChDT05ESVRJT05BTF9SRUdJU1RFUl9VU0FHRSk6IFdoZW4KCWFkZGluZyB0aGUgUElDIHJlZ2lzdGVyIHRvIHRoZSBmaXhlZF9yZWdzIGFycmF5LCBhbHNvIGFkZCBpdAoJdG8gdGhlIGNhbGxfdXNlZF9yZWdzIGFycmF5LgoKMjAwNC0xMC0yOSAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGd0aHItcG9zaXguaCAoX19ndGhyZWFkX3JlY3Vyc2l2ZV9tdXRleF9pbml0X2Z1bmN0aW9uKTogR3VhcmQKCXdpdGggI2lmZGVmIFBUSFJFQURfTVVURVhfUkVDVVJTSVZFLyNlbmRpZiBwYWlycy4KCjIwMDQtMTAtMjggIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogdHJlZS1pbnRvLXNzYS5jIChyZXdyaXRlX3ZpcnR1YWxfcGhpX2FyZ3VtZW50cyk6IE5ldyBmdW5jdGlvbi4KCShyZXdyaXRlX2Jsb2Nrcyk6IE1vZGlmeSBhcmd1bWVudCwgYW5kIHVzZSBpdCB0byBkZWNpZGUgd2hpY2gKCWZ1bmN0aW9uIHRvIGNhbGwuCgkocmV3cml0ZV9kZWZfZGVmX2NoYWlucyk6IENhbGwgcmV3cml0ZV9ibG9ja3Mgd2l0aCB0cnVlIGhlcmUuCgkocmV3cml0ZV9pbnRvX3NzYSk6IGFuZCBjYWxsIGl0IHdpdGggZmFsc2UgaGVyZS4KCjIwMDQtMTAtMjkgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLXBoaW5vZGVzLmMgKGFkZF9waGlfYXJnKTogVHVybiBhbiAiaWYiIHRoYXQgYWx3YXlzCgl0cmlnZ2VycyBpbnRvIGdjY19hc3NlcnQuCgoyMDA0LTEwLTI4ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNjcyOAoJKiB0cmVlLWZsb3cuaCAoZ2V0X3B0cl9pbmZvKTogRGVjbGFyZS4KCSogdHJlZS1zc2EtYWxpYXMuYyAoZ2V0X3B0cl9pbmZvKTogTWFrZSBleHRlcm4uCgkqIHRyZWUtc3NhLWNvcHkuYyAobWVyZ2VfYWxpYXNfaW5mbyk6IE1lcmdlIGZsb3ctc2Vuc2l0aXZlCglhbGlhcyBpbmZvcm1hdGlvbi4KCjIwMDQtMTAtMjggIFN0YW4gU2hlYnMgIDxzaGVic0BhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5oIChTVUJUQVJHRVRfRVhUUkFfU1BFQ1MpOiBIYW5kbGUgLW02NC4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2Rhcndpbl9maWxlX3N0YXJ0KTogQWRkIHBwYzY0CgljYXNlLgoKMjAwNC0xMC0yOCAgRnJhbmsgQ2guIEVpZ2xlciAgPGZjaGVAcmVkaGF0LmNvbT4KCgkqIHRyZWUtbXVkZmxhcC5jIChtdWRmbGFwX2luaXQpOiBNYXJrIGNhY2hlLWxvb2t1cCBkZWNscyB0bwoJcHJldmVudCB0aGVpciBsYXRlciB1bm5lY2Vzc2FyeSByZWdpc3RyYXRpb24uCgkobWZfYnVpbGRfY2hlY2tfc3RhdGVtZW50X2Zvcik6IFJlbW92ZSAiYWRkciIgYXJndW1lbnQsIGFuZAoJcmVsYXRlZCAiX19tZl92YWx1ZSIgZ2VuZXJhdGVkIGNvZGUuICBVcGRhdGUgY2FsbGVycy4KCShtZl9kZWNsX2VsaWdpYmxlX3ApOiBOZXcgZnVuY3Rpb24sIGZhY3RvcmVkIGZyb20gbXhfcmVnaXN0ZXJfZGVjbHMuCgkobXhfcmVnaXN0ZXJfZGVjbHMpOiBDYWxsIGl0LgoJKG1mX3hmb3JtX2RlcmVmc18xKTogUmV3cml0ZSBDT01QT05FTlRfUkVGIGFuZCBBUlJBWV9SRUYgY2FzZXMKCXRvIHJlc3RvcmUgc3VwcG9ydCBmb3IgY29tcGxleCBuZXN0ZWQgZXhwcmVzc2lvbnMuCgkobXVkZmxhcF9lbnF1ZXVlX2RlY2wpOiBTaW1wbGlmeS4gIE1vdmUgcmVnaXN0cmF0aW9uIGNhbGwgZW1pc3Npb24KCW91dCAuLi4KCShtdWRmbGFwX2ZpbmlzaF9maWxlKTogLi4uIHRvIGhlcmUuCgkobXVkZmxhcF9lbnF1ZXVlX2NvbnN0YW50KTogUmVtb3ZlIGR1bXAgY29kZS4KCjIwMDQtMTAtMjggIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJUFIgMTgxOTkKCSogZGJ4b3V0LmMgKGRieG91dF9iZWdpbl9jb21wbGV4X3N0YWJzX25vZm9yY2V0ZXh0KTogTmV3IGZ1bmN0aW9uLgoJKERCWF9GSU5JU0hfU1RBQlMpOiBBZGQgKHVudXNlZCBieSBkZWZhdWx0KSBTWU0gcGFyYW1ldGVyLgoJKGRieG91dF9maW5pc2hfY29tcGxleF9zdGFicyk6IFVwZGF0ZSB0byBtYXRjaC4KCShkYnhvdXRfc3ltYm9sX2xvY2F0aW9uKTogQ2FsbCBlbWl0X3BlbmRpbmdfYmluY2xzX2lmX3JlcXVpcmVkCglhbmQgRk9SQ0VfVEVYVCBiZWZvcmUgREJYX1NUQVRJQ19CTE9DS19TVEFSVC4gIFVzZQoJZGJ4b3V0X2JlZ2luX2NvbXBsZXhfc3RhYnNfbm9mb3JjZXRleHQuCgkqIHhjb2Zmb3V0LmggKERCWF9GSU5JU0hfU1RBQlMpOiBSZXN0b3JlIHNwZWNpYWwgY2FzZSBmb3IKCU5fR1NZTSwgdXNpbmcgbmV3IFNZTSBwYXJhbWV0ZXIuICBDb3JyZWN0IGxvZ2ljIGZvciBzcGVjaWFsCgljYXNlcyBmb3IgTl9GVU4uCgoJKiB2YXJhc20uYyAoZnVuY3Rpb25fc2VjdGlvbik6IElmIERFQ0wgaXMgTlVMTF9UUkVFLCBkb24ndCB0cnkKCXRvIGRvIGFueXRoaW5nIGVsc2UuICBEbyBub3QgY2FsbCBnZXRfaW5zbnMgaWYgY2Z1biBvcgoJY2Z1bi0+ZW1pdCBhcmUgTlVMTC4KCjIwMDQtMTAtMjggIEFkYW0gTmVtZXQgIDxhbmVtZXRAbG54dy5jb20+CgoJUFIgbWlkZGxlLWVuZC8xODE2MAoJKiBjLXR5cGVjay5jIChjX21hcmtfYWRkcmVzc2FibGUpOiBJc3N1ZSBlcnJvciBpZiBhZGRyZXNzIG9mIGEKCXJlZ2lzdGVyIHZhcmlhYmxlIGlzIHRha2VuLiAgVXNlICIlcUQiIHRvIHByaW50IERFQ0xfTkFNRS4KCjIwMDQtMTAtMjggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogb3B0cy5jIChkZWNvZGVfb3B0aW9ucyk6IERvbid0IHJ1biBQUkUgYXQgLU9zLgoKMjAwNC0xMC0yOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5tZCAobW92cWljY19pbnRlcm5hbCk6IEFsbG93IGV4YWN0bHkgb25lCgl6ZXJvIGluIHRoZSBjb25kaXRpb25hbC4KCShtb3ZoaWNjX2ludGVybmFsLCBtb3ZzaWNjX2ludGVybmFsLCBtb3ZkaWNjX2ludGVybmFsKTogTGlrZXdpc2UuCgoyMDA0LTEwLTI4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY3NlLmMgKG1lbW9yeV9leHRlbmRfcnR4KTogUmVtb3ZlLgoJKGNzZV9tYWluKTogRG9uJ3Qgc2V0IGl0LgoJKGNzZV9pbnNuKTogVXNlIGEgbG9jYWwgYnVmZmVyIGluc3RlYWQuCgoyMDA0LTEwLTI4ICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsMUBkZS5pYm0uY29tPgoKCSogcHJvZmlsZS5jIChicmFuY2hfcHJvYik6IENhbGwgdG8gaW5pdF9lZGdlX3Byb2ZpbGVyIGFkZGVkLgoJKiBydGwtcHJvZmlsZS5jIChydGxfaW5pdF9lZGdlX3Byb2ZpbGVyKTogTmV3IGZ1bmN0aW9uLgoJKHJ0bF9nZW5fZWRnZV9wcm9maWxlcik6IFJlcGxhY2VkIGNhbGwgdG8gaW5zZXJ0X2luc25fb25fZWRnZSB3aXRoCgljYWxsIHRvIHNhZmVfaW5zZXJ0X2luc25fb25fZWRnZS4KCShydGxfcHJvZmlsZV9ob29rcyk6IHJ0bF9pbml0X2VkZ2VfcHJvZmlsZXIgYWRkZWQuCgkqIHRyZWUtcHJvZmlsZS5jICh0cmVlX2luaXRfZWRnZV9wcm9maWxlcik6IE5ldyBmdW5jdGlvbi4KCSh0cmVlX3Byb2ZpbGVfaG9va3MpOiB0cmVlX2luaXRfZWRnZV9wcm9maWxlciBhZGRlZC4KCSogdmFsdWUtcHJvZi5oIChwcm9maWxlX2hvb2tzKSBpbml0X2VkZ2VfcHJvZmlsZXIgcHJvdG90eXBlIGFkZGVkLgoKMjAwNC0xMC0yOCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pcTIwMDAvaXEyMDAwLmMgKGlxMjAwMF9leHBhbmRfZXBpbG9ndWUpOiBVc2UKCWVtaXRfanVtcF9pbnNuKCkgdG8gZ2VuZXJhdGUgdGhlIHJldHVybiBpbnN0cnVjdGlvbi4KCjIwMDQtMTAtMjggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLXBoaW5vZGVzLmM6IFJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgoKMjAwNC0xMC0yOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtc3NhLWxvb3AtaXZvcHRzLmM6IEZpeCBhIGNvbW1lbnQgdHlwby4KCSogZG9jL2ludm9rZS50ZXhpOiBGaXggYSB0eXBvLgoKMjAwNC0xMC0yOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIE1ha2VmaWxlLmluIChPQkpTLWNvbW1vbik6IFJlbW92ZSBkdXBsaWNhdGVzLgoKMjAwNC0xMC0yOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGxhbWJkYS1jb2RlLmMgKG5lc3RpZnlfdXBkYXRlX3BlbmRpbmdfc3RtdHMpOiBSZW1vdmUuCgkocGVyZmVjdF9uZXN0aWZ5KTogVXNlIGZsdXNoX3BlbmRpbmdfc3RtdHMgaW5zdGVhZCBvZgoJbmVzdGlmeV91cGRhdGVfcGVuZGluZ19zdG10cy4KCSogdHJlZS1jZmcuYyAodHJlZV9tYWtlX2ZvcndhcmRlcl9ibG9jayk6IFVzZQoJZmx1c2hfcGVuZGluZ19zdG10cy4KCSogdHJlZS1mbG93Lmg6IEFkZCBhIHByb3RvdHlwZSBmb3IgZmx1c2hfcGVuZGluZ19zdG10cy4KCSogdHJlZS1zc2EtbG9vcC1tYW5pcC5jICh0cmVlX2R1cGxpY2F0ZV9sb29wX3RvX2hlYWRlcl9lZGdlKToKCVVzZSBmbHVzaF9wZW5kaW5nX3N0bXRzLgoJKGx2X3VwZGF0ZV9wZW5kaW5nX3N0bXRzKTogUmVtb3ZlLgoJKHRyZWVfc3NhX2xvb3BfdmVyc2lvbik6IFVzZSBmbHVzaF9wZW5kaW5nX3N0bXRzIGluc3RlYWQgb2YKCWx2X3VwZGF0ZV9wZW5kaW5nX3N0bXRzLgoJKiB0cmVlLXNzYS5jIChmbHVzaF9wZW5kaW5nX3N0bXRzKTogTmV3LgoKMjAwNC0xMC0yOCAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCVBSIHRhcmdldC8xNTI4NgoJKiBmaW5hbC5jIChhbHRlcl9zdWJyZWcpOiBDb21wdXRlIGNvcnJlY3Qgb2Zmc2V0IHRvIHVzZSB3aXRoCglwYXJhZG94aWNhbCBTVUJSRUdzIG9mIG1lbW9yeSBvcGVyYW5kcy4KCSogcmVjb2cuYyAoZ2VuZXJhbF9vcGVyYW5kKTogQWxsb3cgcGFyYWRveGljYWwgU1VCUkVHcyBvZgoJbWVtb3J5IG9wZXJhbmRzIGFmdGVyIHJlbG9hZC4KCSogc2ltcGxpZnktcnR4LmMgKHNpbXBsaWZ5X2dlbl9zdWJyZWcpOiBGYWlsIGlmIHNpbXBsaWZ5X3N1YnJlZwoJaGFzIGZhaWxlZCB3aGVuIHBhc3NlZCBhIGhhcmQgcmVnaXN0ZXIuCgoyMDA0LTEwLTI4ICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiBmdW5jdGlvbi5jIChhc3NpZ25fcGFybV9zZXR1cF9ibG9jayk6IEhhbmRsZSBwYXJhbGxlbHMgY29ycmVjdGx5LgoKMjAwNC0xMC0yOCAgS2F6IEtvamltYSAgPGtrb2ppbWFAZ2NjLmdudS5vcmc+CgoJKiBmaW5hbC5jIChzaG9ydGVuX2JyYW5jaGVzKTogSW5pdGlhbGl6ZSBmbGFncyBzdHJ1Y3R1cmUuCgoyMDA0LTEwLTI4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJlZS5jIChpbnRfY3N0X25vZGUsIGludF9jc3RfaGFzaF90YWJsZSk6IE5ldyB2YXJpYWJsZXMuCgkoaW5pdF90dHJlZSk6IEluaXRpYWxpemUgdGhlbS4KCShpbnRfY3N0X2hhc2hfaGFzaCwgaW50X2NzdF9oYXNoX2VxKTogTmV3IGhhc2hpbmcgZnVuY3Rpb25zLgoJKGJ1aWxkX2ludF9jc3Rfd2lkZSk6IFVzZSBoYXNoIHRhYmxlIGZvciBvdmVyc2l6ZWQgaW50ZWdlcnMuCgoyMDA0LTEwLTI4ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlnL20zMnIvbTMyci5oIChEQlhfT1VUUFVUX1NPVVJDRV9MSU5FKTogRGVmaW5lCgliZWdpbl9sYWJlbC4KCjIwMDQtMTAtMjcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgbWlkZGxlLWVuZC8xODE2MwoJKiBleHByLmMgKGVtaXRfZ3JvdXBfbG9hZCk6IERvbid0IGdvIGZvcmNlIHRlbXBvcmFyeSBmb3IgbWVtb3J5CglvciBjb25jYXQgc291cmNlLgoJKGVtaXRfZ3JvdXBfc3RvcmUpOiBTaW1pbGFybHkuCgoyMDA0LTEwLTI3ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiBvdGhlci8xODE4NgoJKiBjb21tb24ub3B0ICgtLXBhcmFtKTogRml4IHNwZWxsaW5nIG9mIHBhcmFtZXRlci4KCjIwMDQtMTAtMjcgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHRyZWUtb3B0LzE3NTI5CgkqIHRyZWUtY2ZnLmMgKHJlbW92ZV91c2VsZXNzX3N0bXRzXzEpIDxjYXNlIFNXSVRDSF9FWFBSPjoKCURvbid0IGZvbGQgc3RhdGVtZW50LgoJPGNhc2UgQVNNX0VYUFI+OiBGb2xkIHRoZSBzdGF0ZW1lbnQuCgoyMDA0LTEwLTI4ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1zc2EtZGNlLmMgKG1hcmtfc3RtdF9pZl9vYnZpb3VzbHlfbmVjZXNzYXJ5KQoJPENPTkRfRVhQUj46IFVzZSBFREdFX0NPVU5UIGluc3RlYWQgb2YgR09UT19ERVNUSU5BVElPTi4KCjIwMDQtMTAtMjggIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogZG9jL2NvbnRyaWIudGV4aSwgZG9jL2NwcC50ZXhpLCBkb2MvY3Bwb3B0cy50ZXhpLAoJZG9jL2V4dGVuZC50ZXhpLCBkb2MvZ2Nvdi50ZXhpLCBkb2MvaW5zdGFsbC50ZXhpLCBkb2MvaW52b2tlLnRleGksCglkb2MvbGliZ2NjLnRleGksIGRvYy9tZC50ZXhpLCBkb2MvcGFzc2VzLnRleGksCglkb2Mvc291cmNlYnVpbGQudGV4aSwgZG9jL3RtLnRleGk6IEltcHJvdmUgVGV4aW5mbyBmb3JtYXR0aW5nLgoKMjAwNC0xMC0yOCAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBkb2MvYy10cmVlLnRleGksIGRvYy9jcHAudGV4aSwgZG9jL2ltcGxlbWVudC1jLnRleGksCglkb2MvaW52b2tlLnRleGksIGRvYy9tZC50ZXhpLCBkb2MvcGFzc2VzLnRleGksIGRvYy90bS50ZXhpOiBQdXQKCXB1bmN0dWF0aW9uIG91dHNpZGUgcXVvdGVzLgoKMjAwNC0xMC0yNyAgRGF2aWQgTW9zYmVyZ2VyICA8ZGF2aWRtQGhwbC5ocC5jb20+CgkgICAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCVBSIHRhcmdldC8xMzE1OAoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfZXhwYW5kX2VwaWxvZ3VlKTogU2V0IFJUWF9GUkFNRV9SRUxBVEVEX1Agb24KCXNpYmNhbGwgYWxsb2MgaW5zdHJ1Y3Rpb24uCgkocHJvY2Vzc19zZXQpOiBIYW5kbGUgc2liY2FsbCBhbGxvYyBpbnN0cnVjdGlvbi4KCjIwMDQtMTAtMjcgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2F0dHJpYnV0ZV90YWJsZSk6IEFkZAoJU1VCVEFSR0VUX0FUVFJJQlVURV9UQUJMRS4KCSogY29uZmlnL2Rhcndpbi5oIChBU01fV0VBS0VOX0RFQ0wpOiBIYW5kbGUgd2Vha19pbXBvcnQuCgkoU1VCVEFSR0VUX0FUVFJJQlVURV9UQUJMRSk6IERlZmluZS4KCSogY29uZmlnL2Rhcndpbi5jIChkYXJ3aW5faGFuZGxlX3dlYWtfaW1wb3J0X2F0dHJpYnV0ZSk6IE5ldy4KCShIQVZFX0RFQURfU1RSSVApOiBEZWxldGUuCgkobm9fZGVhZF9zdHJpcCk6IERvbid0IHRlc3QgSEFWRV9ERUFEX1NUUklQLgoJKiBjb25maWcvZGFyd2luLXByb3Rvcy5oIChkYXJ3aW5faGFuZGxlX3dlYWtfaW1wb3J0X2F0dHJpYnV0ZSk6CglQcm90b3R5cGUuCgoJKiBkb2MvdG0udGV4aSAoVVNFX1NFTEVDVF9TRUNUSU9OX0ZPUl9GVU5DVElPTlMpOiBEb2N1bWVudC4KCgkqIGNvbmZpZy9kYXJ3aW4uaCAoR1RIUkVBRF9VU0VfV0VBSyk6IERlZmluZS4KCjIwMDQtMTAtMjggIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogcGFyYW1zLmRlZiAoUEFSQU1fU1JBX01BWF9TVFJVQ1RVUkVfU0laRSk6IE5ldy4KCShQQVJBTV9TUkFfRklFTERfU1RSVUNUVVJFX1JBVElPKTogTGlrZXdpc2UuCgkqIHBhcmFtcy5oIChTUkFfTUFYX1NUUlVDVFVSRV9TSVpFKTogTmV3LgoJKFNSQV9GSUVMRF9TVFJVQ1RVUkVfUkFUSU8pOiBMaWtld2lzZS4KCSogdHJlZS1zcmEuYzogSW5jbHVkZSAicGFyYW1zLmgiLgoJKGRlY2lkZV9ibG9ja19jb3B5KTogVXNlIG5ldyBwYXJhbWV0ZXJzLgoJKiBkb2MvaW52b2tlLnRleGkgKE9wdGltaXplIE9wdGlvbnMpOiBEb2N1bWVudCBuZXcgU1JBIHBhc3MKCXBhcmFtZXRlcnMgc3JhLW1heC1zdHJ1Y3R1cmUtc2l6ZSBhbmQgc3JhLWZpZWxkLXN0cnVjdHVyZS1yYXRpby4KCjIwMDQtMTAtMjcgIE5pY29sYXMgUGl0cmUgPG5pY29AY2FtLm9yZz4KCgkqIGNvbmZpZy9hcm0vaWVlZTc1NC1kZi5TIChmbG9hdGRpZGYpOiBGaXggcmVncmVzc2lvbiB3aXRoIGJpZyB2YWx1ZXMuCgoyMDA0LTEwLTI3ICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE4MDQ4CgkqIGZvbGQtY29uc3QuYyAodHJ5X21vdmVfbXVsdF90b19pbmRleCk6IE5ldyBmdW5jdGlvbi4KCShmb2xkKTogVXNlIHRyeV9tb3ZlX211bHRfdG9faW5kZXguCgkqIHRyZWUtc3NhLWxvb3AtaXZvcHRzLmMgKHRyeV9hZGRfY2FuZF9mb3IpOiBQcmVmZXIgY29tbW9uIGNhbmRpZGF0ZXMuCgkqIHRyZWUtc3NhLWxvb3Atbml0ZXIuYyAobnVtYmVyX29mX2l0ZXJhdGlvbnNfY29uZCk6IFByb2R1Y2UKCWFuIGFsbC1vbmVzIHVuc2lnbmVkIGNvbnN0YW50IHdpdGhvdXQgZXh0cmEgYml0cy4KCSogdHJlZS5jIChidWlsZF9sb3dfYml0c19tYXNrKTogTmV3IGZ1bmN0aW9uLgoJKiB0cmVlLmggKGJ1aWxkX2xvd19iaXRzX21hc2spOiBEZWNsYXJlLgoKMjAwNC0xMC0yNyAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCVBSIHRhcmdldC8xNzk1NgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAobWF4c2YzKTogQWRkICFmbGFnX3RyYXBwaW5nX21hdGggdG8KCWZpbmFsIGNvbmRpdGlvbi4KCShtaW5zZjMpOiBTYW1lLgoJKG1heGRmMyk6IFNhbWUuCgkobWluZGYzKTogU2FtZS4KCjIwMDQtMTAtMjcgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jICh0aHJlYWRfanVtcHMpOiBTcGVlZCB1cCBieSByZW9yZGVyaW5nIHRoZSB0d28KCWNvbmRpdGlvbnMgZm9yIGVudGVyaW5nIGJhc2ljIGJsb2NrcyBpbnRvIHdvcmtsaXN0LgoKMjAwNC0xMC0yNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmMgKHRocmVhZF9qdW1wcyk6IFNwZWVkIHVwIGJ5IHByZXRlbmRpbmcgdG8gaGF2ZQoJRU5UUllfQkxPQ0tfUFRSIGluIHdvcmtsaXN0LgoKMjAwNC0xMC0yNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtc3NhLWRjZS5jIChtYXJrX3N0bXRfaWZfb2J2aW91c2x5X25lY2Vzc2FyeSkKCTxHT1RPX0VYUFI+OiBEb24ndCBsZXQgYW4gZXhwbGljaXQgR09UT19FWFBSIHNsaXAgdGhyb3VnaC4KCjIwMDQtMTAtMjcgIERhbmllbCBCZXJsaW4gPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJRml4IFBSIHRyZWUtb3B0aW1pemF0aW9uLzE3MTMzCgoJKiB0cmVlLWNmZy5jIChyZXdyaXRlX3RvX25ld19zc2FfbmFtZXNfYmIpOiBBbHNvIHJld3JpdGUgbXVzdAoJZGVmIGtpbGwgb3BlcmFuZC4KCgkqIHRyZWUtZmxvdy1pbmxpbmUuaDogVl9NVVNUX0RFRl9PUCBiZWNhbWUgVl9NVVNUX0RFRl9SRVNVTFQuCgkoZ2V0X3ZfbXVzdF9kZWZfcmVzdWx0X3B0cik6IE1vZGlmeSBmb3IgbmV3IHN0cnVjdHVyZSBvZgoJdl9tdXN0X2RlZnMgYXJyYXkuCgkoZ2V0X3ZfbXVzdF9kZWZfa2lsbF9wdHIpOiBOZXcuCgkob3BfaXRlcl9uZXh0X3VzZSk6IEFkZCBzdXBwb3J0IGZvciB0aGUga2lsbCB0aGF0IG9jY3VycyBpbiBWX01VU1RfREVGcy4KCShvcF9pdGVyX25leHRfdHJlZSk6IERpdHRvLiBBbHNvIFZfTUFZX0RFRl9PUCBiZWNhbWUgVl9NQVlfREVGX1JFU1VMVC4KCShvcF9pdGVyX25leHRfZGVmKTogVl9NQVlfREVGX09QIGJlY2FtZSBWX01BWV9ERUZfUkVTVUxULgoJKG9wX2l0ZXJfaW5pdCk6IEluaXRpYWxpemUgbmV3IG11c3R1IG1lbWJlcnMuCgkob3BfaXRlcl9uZXh0X211c3RkZWYpOiBOZXcgZnVuY3Rpb24uCgkob3BfaXRlcl9pbml0X211c3RkZWYpOiBEaXR0by4KCgkqIHRyZWUtZmxvdy5oIChyZXdyaXRlX2RlZl9kZWZfY2hhaW5zKTogTmV3IGZ1bmN0aW9uLgoKCSogdHJlZS1pbnRvLXNzYS5jIChtYXJrX2RlZl9zaXRlcyk6IEhhbmRsZSBtdXN0ZGVma2lsbCBvcGVyYW5kcy4KCShzc2FfbWFya19kZWZfc2l0ZXMpOiBEaXR0by4KCShyZXdyaXRlX3N0bXQpOiBEaXR0by4KCShzc2FfcmV3cml0ZV9zdG10KTogRGl0dG8uCgkocmV3cml0ZV9ibG9ja3MpOiBGYWN0b3Igb3V0IGZyb20gcmV3cml0ZV9pbnRvX3NzYS4KCShtYXJrX2RlZl9ibG9ja19zaXRlcyk6IERpdHRvLgoJKHJld3JpdGVfZGVmX2RlZl9jaGFpbnMpOiBOZXcgZnVuY3Rpb24sIGp1c3QgcmV3cml0ZXMgZGVmLWRlZgoJY2hhaW5zIHdpdGhvdXQgcGhpIG5vZGUgaW5zZXJ0aW9uLgoKCSogdHJlZS1wYXNzLmggKFRPRE9fZml4X2RlZl9kZWZfY2hhaW5zKTogTmV3IHRvZG8gZmxhZy4KCgkqIHRyZWUtb3B0aW1pemUuYyAoZXhlY3V0ZV90b2RvKTogSGFuZGxlIFRPRE9fZml4X2RlZl9kZWZfY2hhaW5zLgoKCSogdHJlZS1wcmV0dHktcHJpbnQuYyAoZHVtcF92b3BzKTogUHJpbnQgb3V0IE1VU1RfREVGJ3Mgc28gdGhhdAoJdGhleSBpbmNsdWRlIHRoZSByaHMgbm93LgoKCSogdHJlZS1zc2EtY2NwLmMgKHZpc2l0X2Fzc2lnbm1lbnQpOiBWX01VU1RfREVGX09QIGJlY2FtZQoJVl9NVVNUX0RFRl9SRVNVTFQuCgoJKiB0cmVlLXNzYS1kY2UuYyAobWFya19vcGVyYW5kX25lY2Vzc2FyeSk6IEFkZCBwaGlvbmx5IGFyZ3VtZW50LgoJVXBkYXRlIGNhbGxlcnMuCgkobWFya19yZWFsbHlfbmVjZXNzYXJ5X2tpbGxfb3BlcmFuZF9waGlzKTogTmV3IGZ1bmN0aW9uLgoJKHBlcmZvcm1fdHJlZV9zc2FfZGNlKTogQ2FsbCBpdC4KCShwYXNzX2RjZSk6IEFkZCBUT0RPX2ZpeF9kZWZfZGVmX2NoYWlucy4KCShwYXNzX2NkX2RjZSk6IERpdHRvLgoKCSogdHJlZS1zc2EtbG9vcC1pbS5jIChkZXRlcm1pbmVfbWF4X21vdmVtZW50KTogTG9vayBhdCBraWxscyBhcwoJd2VsbC4KCShyZXdyaXRlX21lbV9yZWZzKTogRGl0dG8uCgoJKiB0cmVlLXNzYS1sb29wLW1hbmlwLmMgKGZpbmRfdXNlc190b19yZW5hbWVfc3RtdCk6IExvb2sgYXQga2lsbHMKCWFzIHdlbGwuCgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChhbGxvY2F0ZV92X21heV9kZWZfb3B0eXBlKToKCXZfbWF5X2RlZl9vcGVyYW5kX3R5cGVfdCBiZWNhbWUgdl9kZWZfdXNlX29wZXJhbmRfdHlwZV90LgoJKGFsbG9jYXRlX3ZfbXVzdF9kZWZfb3B0eXBlKSBEaXR0by4KCShmaW5hbGl6ZV9zc2Ffdl9tdXN0X2RlZnMpOiBVcGRhdGUgZm9yIG5ldyBvcGVyYW5kIHR5cGUsIGFzIHdlbGwKCWFzIHNldHRpbmcgdGhlIHVzZSBwb3J0aW9uIGFzIHdlbGwuCgkoY29weV92aXJ0dWFsX29wZXJhbmRzKTogQ29weSB0aGUga2lsbCBvcGVyYW5kIGFzIHdlbGwuCgkoY3JlYXRlX3NzYV9hcnRmaWNpYWxfbG9hZF9zdG10KTogVl9NVVNUX0RFRl9PUCBiZWNhbWUKCVZfTVVTVF9ERUZfUkVTVUxULgoKCSogdHJlZS1zc2Etb3BlcmFuZHMuaCAodl9tYXlfZGVmX29wZXJhbmRfdHlwZSk6IFJlbmFtZWQgdG8KCXZfZGVmX3VzZV9vcGVyYW5kX3R5cGUuCgkodl9tdXN0X2RlZl9vcHR5cGVfZCk6IFVzZSB2X2RlZl91c2Vfb3BlcmFuZF90eXBlLgoJKFZfTVVTVF9ERUZfT1BfKik6IFJlbmFtZWQgdG8gVl9NVVNUX0RFRl9SRVNVTFRfKgoJKFZfTVVTVF9ERUZfS0lMTF8qKTogTmV3IG1hY3Jvcy4KCShzdHJ1Y3Qgc3NhX29wZXJhbmRfaXRlcmF0b3JfZCk6IEFkZCBudW1fdl9tdXN0dSBhbmQgdl9tdXN0dV9pCgltZW1iZXJzLgoJUmVuYW1lIGV4aXN0aW5nIG11c3RfaSBhbmQgbnVtX3ZfbXVzdCBtZW1iZXJzIHRvIG11c3RkX2kgYW5kCgludW1fdl9tdXN0ZC4KCShTU0FfT1BfVk1VU1RERUZLSUxMKTogTmV3IGZsYWcuCgkoU1NBX09QX1ZJUlRVQUxfS0lMTFMpOiBOZXcgZmxhZy4KCShTU0FfT1BfQUxMX09QRVJBTkRTKTogQWRkIGluIFNTQV9PUF9BTExfS0lMTFMuCgkoU1NBX09QX0FMTF9LSUxMUyk6IE5ldyBmbGFnLgoJKEZPUl9FQUNIX1NTQV9NVVNUREVGX09QRVJBTkQpOiBOZXcgbWFjcm8uCgoJKiB0cmVlLXNzYS5jICh2ZXJpZnlfc3NhKTogVmVyaWZ5IHZpcnR1YWwga2lsbHMgYXMgd2VsbC4KCgkqIHRyZWUtdmVjdG9yaXplci5jICh2ZWN0X2NyZWF0ZV9kYXRhX3JlZl9wdHIpOiBWX01VU1RfREVGX09QCgliZWNhbWUgVl9NVVNUX0RFRl9SRVNVTFQuCgkocmVuYW1lX3ZhcmlhYmxlc19pbl9iYik6IFJlbmFtZSBraWxsIHBvaW50ZXIgYXMgd2VsbC4KCgkqIHRyZWUtZGZhLmMgKGNvbXB1dGVfaW1tZWRpYXRlX3VzZXNfZm9yX3N0bXQpOiBBZGQga2lsbHMgaW50byB0aGUKCWltbWVkaWF0ZSB1c2VzLgoKMjAwNC0xMC0yNyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogZGJ4b3V0LmMgKGRieG91dF9zb3VyY2VfbGluZSk6IE1vdmUgZGVjbGFyYXRpb24gb2YgYmVnaW5fbGFiZWwgdG8KCXRoZSBibG9jayB0aGF0IG5lZWRzIGl0LgoKMjAwNC0xMC0yNyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRieG91dC5jIChkYnhvdXRfZmluaXNoX2NvbXBsZXhfc3RhYnMpOiBNYXJrICdsaW5lJyB2YXJpYWJsZQoJQVRUUklCVVRFX1VOVVNFRC4KCjIwMDQtMTAtMjcgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLWxleC5jIChjYl9kZWZfcHJhZ21hKTogQ2xlYW4gdXAgY29kZSBmb3IgbWFraW5nIGxvY2F0aW9uCglwYWxhdGFibGUgdG8gZGlhZ25vc3RpYy5jLgoKMjAwNC0xMC0yNyAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE3NzU3CgkqIHRyZWUtcGhpbm9kZXMuYyAocmVtb3ZlX3BoaV9hcmdfbnVtKTogRG9uJ3QgcmVtb3ZlIFBISXMKCXdpdGhvdXQgYW55IFBISSBhcmd1bWVudHMgbGVmdC4gIE1ha2Ugc3VyZSB0aGUgYXJndW1lbnQgdGhhdAoJd2UncmUgc3VwcG9zZWQgdG8gcmVtb3ZlIGV4aXN0cyBhdCBhbGwuCgoyMDA0LTEwLTI3ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlndXJlLmFjOiBEb24ndCB0ZXN0IGZvciBbYnVpbGRdIF9fY3hhX2F0ZXhpdCB3aGVuIGJ1aWxkaW5nIGEKCWNyb3NzIGNvbXBpbGVyLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA0LTEwLTI3ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlb3N1cmNlcnkuY29tPgoKCSogY29uZmlndXJlLmFjOiBVc2UgYnVpbGRfZXhlZXh0IG5vdCBob3N0X2V4ZWV4dCB3aGVuIGxvb2tpbiBmb3IKCXRhcmdldCB0b29scy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNC0xMC0yNyAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbDFAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAubWQgKCIqc3ViZGYzX2NjIik6IFJlcGxhY2VkIHBsdXMgYnkgbWludXMuCgoyMDA0LTEwLTI3ICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsMUBkZS5pYm0uY29tPgoJICAgIHBhdGNoIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBLZWxsZXkgQ29vayAgPGtjb29rQGdjYy5nbnUub3JnPgoKCVBSIG1pZGRsZS1lbmQvMTQ2ODQKCSogb3B0cy5jIChPUFRfZnByb2ZpbGVfZ2VuZXJhdGUpOiBEZWZhdWx0IHRvIC1mdW5yb2xsLWxvb3BzCgl0byBtYXRjaCAtZnByb2ZpbGUtdXNlLgoKMjAwNC0xMC0yNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmM6IEZpeCBhIGNvbW1lbnQgdHlwby4KCjIwMDQtMTAtMjcgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvbTMyci9tMzJyLmggKERCWF9PVVRQVVRfU09VUkNFX0xJTkUpOiBJbmNyZW1lbnQgbGluZQoJY291bnRlci4KCjIwMDQtMTAtMjcgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiB2YXJhc20uYyAoZGVmYXVsdF9zdGFic19hc21fb3V0X2Rlc3RydWN0b3IpOiBNYXJrIHN5bWJvbCBhcwoJdW51c2VkLgoJKGRlZmF1bHRfc3RhYnNfYXNtX291dF9jb25zdHJ1Y3Rvcik6IExpa2V3aXNlLgoKMjAwNC0xMC0yNiAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBidWlsdGlucy5jIChmb2xkX2J1aWx0aW5fdW5vcmRlcmVkX2NtcCk6IEFsd2F5cyBicmluZyBib3RoCglvcGVyYW5kcyB0byB0aGUgc2FtZSB0eXBlLgoKMjAwNC0xMC0yNiAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCVBSIHRhcmdldC8xODAxMAoJKiBlbWl0LXJ0bC5jIChlbWl0X2NvcHlfb2ZfaW5zbl9hZnRlcik6IENvcHkgUlRYX0ZSQU1FX1JFTEFURURfUC4KCjIwMDQtMTAtMjYgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkYnhvdXQuYzogSW5jbHVkZSBvYnN0YWNrLmguCgkoQVNNX1NUQUJTX09QKTogVGFrZSBYQ09GRl9ERUJVR0dJTkdfSU5GTyBpbnRvIGFjY291bnQgaW4KCWRlZmF1bHQgZGVmaW5pdGlvbi4KCShBU01fU1RBQkRfT1AsIE5PX0RCWF9NQUlOX1NPVVJDRV9ESVJFQ1RPUlksIERCWF9DT05USU5fQ0hBUik6CglEZWZhdWx0LWRlZmluZSBoZXJlLgoJKERCWF9DT05USU5fTEVOR1RIKTogTW92ZSBkZWZpbml0aW9uIHdpdGggb3RoZXJzLgoJKERCWF9GSU5JU0hfU1RBQlMpOiBOZXcgdGFyZ2V0IG1hY3JvLgoJKGN1cnJlbnRfc3ltX2NvZGUsIGN1cnJlbnRfc3ltX3ZhbHVlLCBjdXJyZW50X3N5bV9hZGRyKQoJKGN1cnJlbnRfc3ltX25jaGFycywgQ0hBUlMsIGRieG91dF9jb250aW51ZSkKCShwcmludF9pbnRfY3N0X29jdGFsLCBwcmludF9vY3RhbCwgcHJpbnRfd2lkZV9pbnQpCgkoZGJ4b3V0X3ByZXBhcmVfc3ltYm9sLCBkYnhvdXRfZmluaXNoX3N5bWJvbCk6IERlbGV0ZS4KCShzdGFic3RyX29iLCBzdGFic3RyX2xhc3RfY29udGluX3BvaW50KTogTmV3IHZhcmlhYmxlcy4KCShOVU1CRVJfRk1UX0xPT1ApOiBOZXcgaW1wcm9wZXIgbWFjcm8uCgkoZGJ4b3V0X2ludCwgZGJ4b3V0X3N0YWJfdmFsdWVfemVybywgZGJ4b3V0X3N0YWJfdmFsdWVfbGFiZWwpCgkoZGJ4b3V0X3N0YWJfdmFsdWVfbGFiZWxfZGlmZiwgZGJ4b3V0X3N0YWJfdmFsdWVfaW50ZXJuYWxfbGFiZWwpCgkoZGJ4b3V0X3N0YWJfdmFsdWVfaW50ZXJuYWxfbGFiZWxfZGlmZiwgZGJ4b3V0X3N0YWJkKQoJKGRieG91dF9iZWdpbl9zdGFibiwgZGJ4b3V0X2JlZ2luX3N0YWJuX3NsaW5lKQoJKGRieG91dF9iZWdpbl9zaW1wbGVfc3RhYnMsIGRieG91dF9iZWdpbl9zaW1wbGVfc3RhYnNfZGVzYykKCShkYnhvdXRfYmVnaW5fY29tcGxleF9zdGFicywgZGJ4b3V0X2ZpbmlzaF9jb21wbGV4X3N0YWJzKQoJKHN0YWJzdHJfQywgc3RhYnN0cl9TLCBzdGFic3RyX0ksIHN0YWJzdHJfRCwgc3RhYnN0cl9VLCBzdGFic3RyX08pCgkoc3RhYnN0cl9jb250aW51ZSwgREVDTF9BQ0NFU1NJQklMSVRZX0NIQVIpCglOZXcgZnVuY3Rpb25zIGFuZC9vciBwcm9wZXIgZnVuY3Rpb24tbGlrZSBtYWNyb3MuCgkoQ09OVElOKTogVXNlIHN0YWJzdHJfY29udGludWUsIHVuY29uZGl0aW9uYWxseS4KCShnZXRfbGFuZ19udW1iZXIpOiBEZWZpbmUgdW5jb25kaXRpb25hbGx5LCB3aXRoIEFUVFJJQlVURV9VTlVTRUQuCgkoZGJ4b3V0X2luaXQpOiBJbml0aWFsaXplIHN0YWJzdHJfb2IuICBDaGVjawoJTk9fREJYX01BSU5fU09VUkNFX0RJUkVDVE9SWS4gIE9ubHkgd3JpdGUgb3V0IHRoZSBMdGV4dCBsYWJlbAoJaWYgaXQgd2FzIHVzZWQuICBVc2UgdGhlIG5ldyBpbnRlcmZhY2VzLgoJKGRieG91dF9zb3VyY2VfZmlsZSk6IFJlbW92ZSBmaWxlIGFyZ3VtZW50OyBhbHdheXMgd3JpdGUgdG8KCWFzbV9vdXRfZmlsZS4gIFVzZSB0aGUgbmV3IGludGVyZmFjZXMuCgkoZGJ4b3V0X3R5cGVfbWV0aG9kXzEpOiBSZW1vdmUgc2Vjb25kIGFyZ3VtZW50IHdoaWNoIGlzIGFsd2F5cwoJREVDTF9BU1NFTUJMRVJfTkFNRSBvZiB0aGUgZmlyc3QgYXJndW1lbnQuICBVc2UgdGhlIG5ldyBpbnRlcmZhY2VzLgoJKGRieG91dF90eXBlX21ldGhvZHMpOiBSZW1vdmUgd3JpdGUtb25seSB2YXJpYWJsZXMuICBVc2UgdGhlCgluZXcgaW50ZXJmYWNlcy4KCShkYnhvdXRfcGFybXMpOiBSZWZhY3RvciB0byByZW1vdmUgY29kZSBkdXBsaWNhdGVkIGluIGVhY2ggb2YKCXNldmVyYWwgc3VjY2Vzc2l2ZSBpZi1lbHNlLWlmIGJsb2Nrcy4gIFVzZSB0aGUgbmV3IGludGVyZmFjZXMuCgkoZGJ4b3V0X2Z1bmN0aW9uX2VuZCwgZW1pdF9iaW5jbF9zdGFiLCBkYnhvdXRfZW5kX3NvdXJjZV9maWxlKQoJKGRieG91dF9zb3VyY2VfbGluZSwgZGJ4b3V0X2ZpbmlzaCwgZGJ4b3V0X3R5cGVfaW5kZXgpCgkoZGJ4b3V0X3R5cGVfZmllbGRzLCBkYnhvdXRfcmFuZ2VfdHlwZSwgZGJ4b3V0X3R5cGUsIGRieG91dF90eXBlX25hbWUpCgkoZGJ4b3V0X2NsYXNzX25hbWVfcXVhbGlmaWVycywgZGJ4b3V0X3N5bWJvbCwgZGJ4b3V0X3N5bWJvbF9sb2NhdGlvbikKCShkYnhvdXRfc3ltYm9sX25hbWUsIGRieG91dF9yZWdfcGFybXMsIGRieG91dF9hcmdzKQoJKGRieF9vdXRwdXRfbGJyYWMsIGRieF9vdXRwdXRfcmJyYWMsIGRieG91dF9ibG9jayk6CglVc2UgdGhlIG5ldyBpbnRlcmZhY2VzLgoJKiBNYWtlZmlsZS5pbiAoZGJ4b3V0Lm8pOiBVcGRhdGUgZGVwZW5kZW5jaWVzLgoKCSogZGVmYXVsdHMuaDogRG9uJ3QgZGVmaW5lIEFTTV9TVEFCRF9PUC4KCSogb3V0cHV0Lmg6IFByb3RvdHlwZSBuZXcgZGJ4b3V0XyogaW50ZXJmYWNlcy4KCSogc3lzdGVtLmg6IFBvaXNvbiBEQlhfT1VUUFVUX0dDQ19NQVJLRVIgYW5kIERCWF9GSU5JU0hfU1lNQk9MLgoJKiB2YXJhc20uYzogRG9uJ3QgZGVmaW5lIEFTTV9TVEFCU19PUC4KCShkZWZhdWx0X3N0YWJzX2FzbV9vdXRfY29uc3RydWN0b3IsIGRlZmF1bHRfc3RhYnNfYXNtX291dF9kZXN0cnVjdG9yKToKCVVzZSB0aGUgbmV3IGRieG91dC5jIGludGVyZmFjZXMuICBDYWxsIHNvcnJ5IGlmIG5laXRoZXIKCURCWF9ERUJVR0dJTkdfSU5GTyBub3IgWENPRkZfREVCVUdHSU5HX0lORk8gaXMgZGVmaW5lZC4KCgkqIHhjb2Zmb3V0Lmg6IERvbid0IGRlZmluZSBBU01fU1RBQlNfT1AuCgkoREJYX0ZJTklTSF9TWU1CT0wpOiBSZXdyaXRlIGFuZCByZW5hbWUgREJYX0ZJTklTSF9TVEFCUy4KCShEQlhfT1VUUFVUX01BSU5fU09VUkNFX0RJUkVDVE9SWSwgREJYX09VVFBVVF9HQ0NfTUFSS0VSKTogRGVsZXRlLgoJKE5PX0RCWF9NQUlOX1NPVVJDRV9ESVJFQ1RPUlksIE5PX0RCWF9HQ0NfTUFSS0VSKTogRGVmaW5lLgoJKERCWF9PVVRQVVRfTUFJTl9TT1VSQ0VfRklMRV9FTkQpOiBDaGFuZ2UgYmFyZSBibG9jayB0bwoJZG8geyAuLi4gfSB3aGlsZSAoMCkgaWRpb20uCgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAobnVtX3NvdXJjZV9maWxlbmFtZXMpOiBFeHBvcnQuCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5oIChudW1fc291cmNlX2ZpbGVuYW1lcyk6IERlY2xhcmUuCgkoREJYX09VVFBVVF9TT1VSQ0VfTElORSk6IFVzZSBuZXcgaW50ZXJmYWNlcy4KCShTREJfT1VUUFVUX1NPVVJDRV9MSU5FKTogQWRkIG1pc3NpbmcgbmV3bGluZS4KCSogY29uZmlnL20zMnIvbTMyci5oIChEQlhfT1VUUFVUX1NPVVJDRV9MSU5FKTogVXNlIG5ldyBpbnRlcmZhY2VzLgoJQWx3YXlzIHVzZSAuZGVidWdzeW0uICBVcGRhdGUgY29tbWVudGFyeS4KCSogY29uZmlnL21pcHMvbWlwcy5oIChEQlhfT1VUUFVUX1NPVVJDRV9MSU5FKTogVXNlIG5ldyBpbnRlcmZhY2VzLgoJKFNEQl9PVVRQVVRfU09VUkNFX0xJTkUpOiBBZGQgbWlzc2luZyBuZXdsaW5lLgoJKiBjb25maWcvcnM2MDAwL2xpbnV4NjQuaCAoREJYX09VVFBVVF9TT1VSQ0VfTElORSwgREJYX09VVFBVVF9CUkFDKToKCVVzZSBuZXcgaW50ZXJmYWNlcy4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYzogSWYgVEFSR0VUX01BQ0hPLCBpbmNsdWRlIGdzdGFiLmguCgkobWFjaG9fYnJhbmNoX2lzbGFuZHMpOiBVc2UgbmV3IGludGVyZmFjZXMuCgoJKiBkb2MvdG0udGV4aTogVXBkYXRlLgoKMjAwNC0xMC0yNiAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogZXhwci5jIChlbWl0X2dyb3VwX3N0b3JlKTogRG8gbm90IHRyZWF0IGZsb2F0cyBhcyBCTEttb2RlLgoJKGVtaXRfZ3JvdXBfbG9hZCk6IFNhbWUuCgoyMDA0LTEwLTI2ICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtcGFyc2UuaW4gKGRhdGFkZWYpOiBVc2UgcGVkd2FybiByYXRoZXIgdGhhbiBlcnJvciBhbmQgd2FybmluZwoJZm9yIGRpYWdub3N0aWMgaW4gY2FzZSBvZiBubyBkZWNsYXJhdGlvbiBzcGVjaWZpZXJzLgoKMjAwNC0xMC0yNiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCVBSIGJvb3RzdHJhcC8xNTc0NwoJKiBkb2MvaW5zdGFsbC50ZXhpIChtaXBzLXNnaS1pcml4NSk6IERvY3VtZW50IHRoYXQgL2Jpbi9zaCBoYXMgYmVlbgoJcmVwb3J0ZWQgdG8gaGFuZyBkdXJpbmcgYm9vdHN0cmFwIGFuZCB0aGF0IENPTkZJR19TSEVMTD0vYmluL2tzaAoJY2FuIGJlIHVzZWQgdG8gd29yayBhcm91bmQgdGhpcy4KCjIwMDQtMTAtMjYgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKE1FTUJFUl9UWVBFX0ZPUkNFU19CTEspOiBBZGp1c3QgZm9yIGU1MDAKCWRvdWJsZXMuCgoyMDA0LTEwLTI2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogc3RtdC5jIChleHBhbmRfY2FzZSk6IFVwZGF0ZSBhIGNvbW1lbnQuCgoyMDA0LTEwLTI2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogc3RtdC5jIChleHBhbmRfY2FzZSk6IFB1dCBhbiBhc3NlcnRpb24gdGhhdCBpbmRleF9leHByIGlzCgluZXZlciBJTlRFR0VSX0NTVC4gIERvbid0IHNwZWNpYWwgY2FzZSBmb3IgY29uc3RhbnQKCWluZGV4X2V4cHIuCgoyMDA0LTEwLTI2ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiAxODE2MgoJKiBjLXBhcnNlLmluIChkZXNpZ25hdG9yKTogRmluaXNoIHdpdGggYSBzZW1pLWNvbG9uLgoKMjAwNC0xMC0yNiAgRmFyaWJvcnogSmFoYW5pYW4gPGZqYWhhbmlhbkBhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAoYW5kc2kzX2ludGVybmFsOCk6IFNldCBDUiB3aGVuIHNwbGl0dGluZwoJaW50byByb3Rsc2kzLgoKMjAwNC0xMC0yNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHN0bXQuYyAoZXhwYW5kX2Nhc2UpOiBSZW1vdmUgY29kZSB0byBoYW5kbGUgU1dJVENIX0VYUFIgd2l0aAoJYSBkZWZhdWx0IGNhc2Ugb25seS4KCjIwMDQtMTAtMjYgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9oYXJkX3JlZ25vX25yZWdzKTogQWRqdXN0IGZvcgoJZTUwMCBkb3VibGVzLgoJKHNwZV9idWlsZF9yZWdpc3Rlcl9wYXJhbGxlbCk6IE5ldy4KCShyczYwMDBfc3BlX2Z1bmN0aW9uX2FyZyk6IEhhbmRsZSBlNTAwIGRvdWJsZXMuCgkoZnVuY3Rpb25fYXJnKTogU2FtZS4KCShzcGVfZnVuY19oYXNfNjRiaXRfcmVnc19wKTogU2FtZS4KCShyczYwMDBfZnVuY3Rpb25fdmFsdWUpOiBTYW1lLgoJKHJzNjAwMF9saWJjYWxsX3ZhbHVlKTogU2FtZS4KCShsZWdpdGltYXRlX2xvX3N1bV9hZGRyZXNzX3ApOiBSZXR1cm4gZmFsc2UgZm9yIGU1MDAgZG91Ymxlcy4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKExPQ0FMX0FMSUdOTUVOVCk6IEFkanVzdCBmb3IgZTUwMAoJZG91Ymxlcy4KCShEQVRBX0FMSUdOTUVOVCk6IFNhbWUuCgkoQ0FOTk9UX0NIQU5HRV9NT0RFX0NMQVNTKTogU2FtZS4KCjIwMDQtMTAtMjYgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGV4cHIuYyAoZW1pdF9ncm91cF9sb2FkKTogSGFuZGxlIGZsb2F0cy4KCShlbWl0X2dyb3VwX3N0b3JlKTogU2FtZS4KCjIwMDQtMTAtMjYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLWxleC5jIChnZXRfbm9ucGFkZGluZ190b2tlbik6IFJlbW92ZS4KCShjX2xleF93aXRoX2ZsYWdzKTogUHVzaCB0aW1ldmFyIGFuZCBlYXQgcGFkZGluZyBoZXJlLiAgSW1wcm92ZQoJc3RyYXkgdG9rZW4gZGlhZ25vc3RpYy4KCShsZXhfc3RyaW5nKTogUmVwbGFjZSBsb2dpYyB3aXRoIHN3aXRjaCBzdGF0ZW1lbnQsIGVhdCBwYWRkaW5nCgl0b2tlbiBoZXJlLgoKMjAwNC0xMC0yNiAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJUFIgMTgxNDkKCSogY29uZmlnL2kzODYvZGFyd2luLmggKEFTTV9TUEVDKTogVW5kZWYgaXQgYmVmb3JlIGRlZmluaW5nLgoKMjAwNC0xMC0yNSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBjb25maWcvZGFyd2luLmggKExJTktfU1BFQyk6IERlZmF1bHQgd2Vha19yZWZlcmVuY2VfbWlzbWF0Y2hlcwoJdG8gJ25vbi13ZWFrJy4KCShNQUtFX0RFQ0xfT05FX09OTFkpOiBTZXQgREVDTF9XRUFLLgoJKEFTTV9NQUtFX0xBQkVMX0xJTktPTkNFKTogRGVsZXRlLgoJKEFTTV9XRUFLRU5fREVDTCk6IE5ldy4KCShBU01fREVDTEFSRV9PQkpFQ1RfTkFNRSk6IExvb2sgYXQgREVDTF9XRUFLIG5vdCBERUNMX09ORV9PTkxZLgoJKEFTTV9ERUNMQVJFX0ZVTkNUSU9OX05BTUUpOiBMaWtld2lzZS4KCShURVhUX1NFQ1RJT05fQVNNX09QKTogQWRkIGEgdGFiLgoJKERBVEFfU0VDVElPTl9BU01fT1ApOiBMaWtld2lzZS4KCShTRUNUSU9OX0ZVTkNUSU9OKTogQWRkIGEgdGFiLiAgVXNlIGZwdXRzLiAgRG9uJ3QgY2FsbAoJZGF0YV9zZWN0aW9uIG9uIGV2ZXJ5IHNlY3Rpb24gY2hhbmdlLgoJKEVYVFJBX1NFQ1RJT05TKTogQWRkIGEgYnVuY2ggb2YgbmV3IGV4dHJhIHNlY3Rpb25zLgoJKEVYVFJBX1NFQ1RJT05fRlVOQ1RJT05TKTogTGlrZXdpc2UuCgkoVVNFX1NFTEVDVF9TRUNUSU9OX0ZPUl9GVU5DVElPTlMpOiBEZWZpbmUuCgkoSkNSX1NFQ1RJT05fTkFNRSk6IERlZmluZS4KCShUQVJHRVRfU0VDVElPTl9UWVBFX0ZMQUdTKTogRG9uJ3QgZGVmaW5lLgoJKiBjb25maWcvZGFyd2luLmMgKGRhcndpbl9lbmNvZGVfc2VjdGlvbl9pbmZvKTogQSBzeW1ib2wgaXMgZGVmaW5lZAoJaW4gdGhpcyBmaWxlIGlmIGl0IGlzIG5vdCB3ZWFrLgoJKHRleHRjb2FsX3NlY3Rpb24pOiBEZWxldGUuCgkoZGF0YWNvYWxfc2VjdGlvbik6IERlbGV0ZS4KCShkYXJ3aW5fbWFrZV9kZWNsX29uZV9vbmx5KTogRGVsZXRlLgoJKG1hY2hvcGljX3NlbGVjdF9zZWN0aW9uKTogSGFuZGxlIGZ1bmN0aW9ucy4KCShkYXJ3aW5fYXNtX25hbWVkX3NlY3Rpb24pOiBBZGQgYSB0YWIuCgkoZGFyd2luX3NlY3Rpb25fdHlwZV9mbGFncyk6IERlbGV0ZS4KCShkYXJ3aW5fdW5pcXVlX3NlY3Rpb24pOiBEZWxldGUgY29udGVudHMuCgkoZGFyd2luX2VtaXRfdW53aW5kX2xhYmVsKTogQWRkIGEgdGFiLiAgTWFrZSBkZWNscyB3ZWFrIGlmCglERUNMX1dFQUsgaXMgc2V0LgoJKiBjb25maWcvZGFyd2luLXByb3Rvcy5oIChkYXJ3aW5fc2VjdGlvbl90eXBlX2ZsYWdzKTogRGVsZXRlLgoJKGRhcndpbl9tYWtlX2RlY2xfb25lX29ubHkpOiBEZWxldGUuCgkodGV4dF9jb2FsX3NlY3Rpb24pOiBOZXcuCgkodGV4dF91bmxpa2VseV9zZWN0aW9uKTogTmV3LgoJKHRleHRfdW5saWtlbHlfY29hbF9zZWN0aW9uKTogTmV3LgoJKGNvbnN0X2NvYWxfc2VjdGlvbik6IE5ldy4KCShkYXRhX2NvYWxfc2VjdGlvbik6IE5ldy4KCShjb25zdF9kYXRhX2NvYWxfc2VjdGlvbik6IE5ldy4KCSogdmFyYXNtLmMgKGZ1bmN0aW9uX3NlY3Rpb24pOiBIb25vdXIKCVVTRV9TRUxFQ1RfU0VDVElPTl9GT1JfRlVOQ1RJT05TLgoJKiBkd2FyZjJvdXQuYyAob3V0cHV0X2NhbGxfZnJhbWVfaW5mbyk6IExvb2sgYXQgREVDTF9XRUFLIHdoZW4KCVRBUkdFVF9VU0VTX1dFQUtfVU5XSU5EX0lORk8gaXMgaW4gZWZmZWN0LgoJKiBkYnhvdXQuYyAoZGJ4b3V0X3NvdXJjZV9maWxlKTogRG9uJ3QgY2hhbmdlIHNlY3Rpb25zIHdoaWxlCglhIGZ1bmN0aW9uIGlzIGJlaW5nIG91dHB1dC4KCjIwMDQtMTAtMjUgIERhdmlkIEF5ZXJzICA8ZC5heWVyc0Bpbm9kZS5hdD4KCgkqIGMtY29tbW9uLmg6IFJlbW92ZSBSSURfSUQuCgkqIGMtcGFyc2UuaW46IFJlbW92ZSBPQkpFQ1ROQU1FIGFuZCByZWZlcmVuY2VzIHRvIFJJRF9JRC4KCSh0eXBlc3BlY19yZXNlcnZlZF9hdHRyKTogQWRkIHJ1bGUgZm9yIFRZUEVOQU1FCglub25fZW1wdHlfcHJvdG9jb2xyZWZzLgoJKHl5bGV4bmFtZSk6IFJlbW92ZSBzcGVjaWFsIGhhbmRsaW5nIG9mIFJJRF9JRC4KCjIwMDQtMTAtMjUgIEphbWVzIEUgV2lsc29uICA8d2lsc29uQHNwZWNpZml4aW5jLmNvbT4KCgkqIGRvYy9pbnZva2UudGV4aSAoLWZjcm9zc2p1bXBpbmcpOiBOb3QgZW5hYmxlZCBhdCAtTy4KCjIwMDQtMTAtMjUgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCVBSIGMvMTY2NjcKCSogYy1wYXJzZS5pbiAoYXJyYXlfZGVzaWduYXRvcik6IE5ldy4KCShkZXNpZ25hdG9yKTogVXNlIGl0LgoJKGluaXRlbHQpOiBPbmx5IHBlcm1pdCBhcnJheV9kZXNpZ25hdG9yIHdpdGhvdXQgJz0nLCBub3QgIi5mb28iLgoKMjAwNC0xMC0yNSAgS2VubmV0aCBaYWRlY2sgPHphZGVja0BuYXR1cmFsYnJpZGdlLmNvbT4KCSogZ2NjL01ha2VmaWxlLmluOiByZW1vdmVkIGdnYyBmb3IgY2dyYXBodW5pdC4KCSogZ2NjL2NncmFwaC5jLmR1bXBfY2dyYXBoX25vZGU6IHJlbW92ZWQgc3RhdGljIHZhciBhbmFseXNpcy4KCSogZ2NjL2NncmFwaC5oOiByZW1vdmVkIHN0YXRpYyB2YXIgYW5hbHlzaXMgZGF0YSBzdHJ1Y3R1cmVzIGFuZCBjYWxscy4KCSogZ2NjL2NncmFwaHVuaXQuYzoKCWNncmFwaF9tYXJrX2xvY2FsX2FuZF9leHRlcm5hbF9mdW5jdGlvbnM6Y2hhbmdlZCBuYW1lIHRvCgkJY2dyYXBoX21hcmtfbG9jYWxfZnVuY3Rpb25zCgkocHJpbnRfb3JkZXIsY29udmVydF9VSURzX2luX2JpdG1hcCxuZXdfc3RhdGljX3ZhcnNfaW5mbywKCWNncmFwaF9yZXNldF9zdGF0aWNfdmFyX21hcHMsZ2V0X2dsb2JhbF9zdGF0aWNfdmFyc19pbmZvLAoJZ2V0X2dsb2JhbF9zdGF0aWNzX25vdF9yZWFkLGdldF9nbG9iYWxfc3RhdGljc19ub3Rfd3JpdHRlbixzZWFyY2hjLAoJY2dyYXBoX3JlZHVjZWRfaW5vcmRlcixoYXNfcHJvcGVyX3Njb3BlX2Zvcl9hbmFseXNpcyxjaGVja19yaHNfdmFyLAoJY2hlY2tfbGhzX3ZhcixnZXRfYXNtX2V4cHJfb3BlcmFuZHMscHJvY2Vzc19jYWxsX2Zvcl9zdGF0aWNfdmFycywKCXNjYW5fZm9yX3N0YXRpY19yZWZzLGNncmFwaF9jaGFyYWN0ZXJpemVfc3RhdGljc19sb2NhbCwKCWNsZWFyX3N0YXRpY192YXJzX21hcHMsY2dyYXBoX3Byb3BhZ2F0ZV9iaXRzLGNncmFwaF9jaGFyYWN0ZXJpemVfc3RhdGljcyk6CglyZW1vdmVkLgoJKGNncmFwaF9vcHRpbWl6ZSxpbml0X2NncmFwaCk6IHJlbW92ZWQgY2FsbHMgdG8gc3RhdGljIHZhcnMgYW5hbHlzaXMKCSogZ2NjL3RyZWUtZGZhLmMgZmluZF9yZWZlcmVuY2VkX3ZhcnM6IHJlbW92ZWQgY2FsbCB0byBzdGF0aWMgdmFycwoJYW5hbHlzaXMKCSogZ2NjL3RyZWUtZmxvdy5oIHN0YXRpY192YXJzX2luZm86IHJlbW92ZWQKCSogZ2NjL3RyZWUtc3NhLW9wZXJhbmRzLmMgKGFkZF9jYWxsX2Nsb2JiZXJfb3BzLGFkZF9jYWxsX3JlYWRfb3BzKToKCXJlbW92ZWQgY2FsbHMgdG8gc3RhdGljIHZhcnMgYW5hbHlzaXMuCglnZXRfY2FsbF9leHByX29wZXJhbmRzOiByZW1vdmVkIGNhbGxlZSB2YXJpYWJsZS4KCjIwMDQtMTAtMjUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjZmcuYyAodW5jaGVja2VkX21ha2VfZWRnZSwgcmVkaXJlY3RfZWRnZV9zdWNjLAoJcmVkaXJlY3RfZWRnZV9wcmVkKTogVXNlIFZFQ19zYWZlX3B1c2ggaW5zdGVhZCBvZgoJVkVDX3NhZmVfaW5zZXJ0LgoJKiBjZmdydGwuYyAoZm9yY2Vfbm9uZmFsbHRocnVfYW5kX3JlZGlyZWN0KTogTGlrZXdpc2UuCgoyMDA0LTEwLTI1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY2ZnbG9vcG1hbmlwLmMgKGxvb3BpZnkpOiBUYWtlIHR3byBtb3JlIGFyZ3VtZW50cyB0cnVlX2VkZ2UKCWFuZCBmYWxzZV9lZGdlLgoJKiBjZmdsb29wLmg6IEFkanVzdCB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGUuCgkqIGxvb3AtdW5zd2l0Y2guYyAodW5zd2l0Y2hfbG9vcCk6IEFkanVzdCBhIGNhbGwgdG8gbG9vcGlmeS4KCSogdHJlZS1zc2EtbG9vcC1tYW5pcC5jICh0cmVlX3NzYV9sb29wX3ZlcnNpb24pOiBMaWtld2lzZS4KCjIwMDQtMTAtMjUgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZHdhcmYyb3V0LmMgKHJ0bF9mb3JfZGVjbF9sb2NhdGlvbik6IEF2b2lkIHNlZ2ZhdWx0IGlmCglERUNMX0lOQ09NSU5HX1JUTCBpcyBOVUxMLgoKMjAwNC0xMC0yNSAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogdGltZXZhci5kZWYgKFRWX0ZJTkRfUkVGRVJFTkNFRF9WQVJTKTogTmV3LgoJKiB0cmVlLWRmYS5jIChwYXNzX3JlZmVyZW5jZWRfdmFyKTogVXNlIGl0LgoKMjAwNC0xMC0yNSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgkgICAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIGNzZS5jOiBDaGFuZ2UgZW5jb2Rpbmcgb2YgcXVhbnRpdHkgbnVtYmVycyB0byBhdm9pZCB1bmRlZmluZWQKCXBvaW50ZXIgYXJpdGhtZXRpYyBvbiBxdHlfdGFibGUuCgkoUkVHTk9fUVRZX1ZBTElEX1ApOiBBIHF1YW50aXR5IGlzIG5vdyB2YWxpZCBpZiBpdCBpc24ndCBuZWdhdGl2ZS4KCShnZXRfY3NlX3JlZ19pbmZvKTogSW5pdGlhbGl6ZSByZWdfcXR5IHRvIGEgdW5pcXVlIG5lZ2F0aXZlIHZhbHVlLgoJKG5ld19iYXNpY19ibG9jayk6IEFzc2lnbiAicmVhbCIgcXVhbnRpdHkgbnVtYmVycyBmcm9tIHplcm8uCgkoZGVsZXRlX3JlZ19lcXVpdik6IERvIG5vdGhpbmcgaWYgcXVhbnRpdHkgaXMgaW52YWxpZC4gIFJlc2V0IHRoZQoJUkVHX1FUWSB0byBpdHMgdW5pcXVlIG5lZ2F0aXZlIHZhbHVlLgoJKG1lcmdlX2VxdWl2X2NsYXNzZXMpOiBDYWxjdWxhdGUgbmVlZF9yZWhhc2ggaWYgcXVhbnRpdHkgaXMgdmFsaWQuCgkoY3NlX21haW4pOiBEb24ndCBpbmNsdWRlIG1heF9yZWcgd2hlbiBkZXRlcm1pbmluZyBtYXhfcXR5LgoJKGNzZV9iYXNpY19ibG9jayk6IEF2b2lkIHN1YnRyYWN0aW5nIGEgbGFyZ2Ugb2Zmc2V0IGZyb20gcXR5X3RhYmxlLAoJd2hpY2ggY2F1c2VzIHVuZGVmaW5lZCBDOTkgYmVoYXZpb3VyLiAgT25seSBhbGxvY2F0ZSBuZWVkZWQgbWVtb3J5LgoKMjAwNC0xMC0yNSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHN0bXQuYyAoZXhwYW5kX2Nhc2UpOiBSZW1vdmUgYW4gb2Jzb2xldGUgY29tbWVudC4KCjIwMDQtMTAtMjUgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIG1pZGRsZS1lbmQvMTc0MDcKCSogYy1kZWNsLmMgKGdyb2tkZWNsYXJhdG9yKSA8Y2FzZSBjZGtfYXJyYXk+OiBSZW1vdmUgdGhlIGNhbGwKCWxheW91dF90eXBlIGFzIGl0IGlzIGFscmVhZHkgZG9uZSBieSBidWlsZF9hcnJheV90eXBlLgoJKiB0cmVlLmMgKGJ1aWxkX2FycmF5X3R5cGUpOiBMYXlvdXQgdGhlIHR5cGUgZXZlbgoKMjAwNC0xMC0yNSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBjb25maWcvZnJ2L2xpbnV4LmggKFRBUkdFVF9DOTlfRlVOQ1RJT05TKTogRGVmaW5lIHRvIDAuCgoyMDA0LTEwLTI1ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9mcnYvZnJ2Lm1kIChtb3ZkaSwgbW92ZGYpOiBIYW5kbGUgd2lkZS1jb25zdGFudCBzcGxpdHMKCXdpdGggd2lkZXItdGhhbi0zMi1iaXQgSE9TVF9XSURFX0lOVHMuCgoyMDA0LTEwLTI1ICBEYXZpZCBCaWxsaW5naHVyc3QgPERhdmlkLkJpbGxpbmdodXJzdEByaW90aW50by5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLmMobWlwc19vdXRwdXRfZmlsZW5hbWUpOiBSZW1vdmUgdW51c2VkCglhcnJheSBsdGV4dF9sYWJlbF9uYW1lCgoyMDA0LTEwLTI0ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGdlb2Zmay5vcmc+CgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5oIChCTE9DS19SRUdfUEFERElORyk6IERlZmluZS4KCjIwMDQtMTAtMjUgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogY2ZnY2xlYW51cC5jIChvdXRnb2luZ19lZGdlc19tYXRjaCk6IEZpeCB0eXBvIGluIGR1bXAgb3V0cHV0LgoKMjAwNC0xMC0yMyAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiBwcmVkaWN0LmMgKHByZWRpY3RfbG9vcHMpOiBDYWxsIHNjZXZfZmluYWxpemUgaW5zdGVhZCBvZgoJc2Nldl9yZXNldC4KCjIwMDQtMTAtMjQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvZGJ4Y29mZi5oLCBjb25maWcvZGJ4ZWxmLmgsIGNvbmZpZy9saWJnbG9zcy5oLAoJY29uZmlnL29wZW5ic2QuaCwgY29uZmlnL21pcHMvcjM5MDAuaCwgY29uZmlnL3BkcDExL3BkcDExLm1kLAoJY29uZmlnL3NoL3VzaG1lZGlhLmgsIGNvbmZpZy9zcGFyYy9lbGYuaCwKCWNvbmZpZy9zcGFyYy9zcDY0LWVsZi5oOiBVcGRhdGUgY29weXJpZ2h0LgoKMjAwNC0xMC0yNCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHN0bXQuYyAoZXhwYW5kX2Nhc2UpOiBIYW5kbGUgdGhlIGRlZmF1bHQgbGFiZWwgb3V0c2lkZSBvZgoJdGhlIGZvciBsb29wLiAgUmVtb3ZlIGNvZGUgdG8gaGFuZGxlIGEgbWlzc2luZyBkZWZhdWx0IGxhYmVsLgoKMjAwNC0xMC0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRieG91dC5jIChkYnhvdXRfZnVuY3Rpb25fZGVjbCk6IERvbid0IHVzZQoJREJYX09VVFBVVF9GVU5DVElPTl9FTkQuCgkqIHN5c3RlbS5oOiBQb2lzb24gREJYX09VVFBVVF9GVU5DVElPTl9FTkQuCgkqIGRvYy90bS50ZXhpIChEQlhfT1VUUFVUX0ZVTkNUSU9OX0VORCk6IFJlbW92ZS4KCjIwMDQtMTAtMjMgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIG1pZGRsZS1lbmQvMTc5NjcKCSogdHJlZS1jZmcuYyAocmVtb3ZlX3VzbGVzc19zdG10c19jb25kKTogIERvbid0IEZvbGQgc3RhdGVtZW50LgoKMjAwNC0xMC0yMyAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiB0cmVlLXNzYS1kb20uYyAocmVjb3JkX2VxdWFsaXR5KTogVXNlIGxvb3AgZGVwdGggdG8gZGV0ZXJtaW5lCgl3aGljaCB3YXkgdG8gcmVjb3JkIHRoZSBlcXVhbGl0eSBhcyB3ZWxsLgoJKGxvb3BfZGVwdGhfb2ZfbmFtZSk6IE5ldyBmdW5jdGlvbi4KCjIwMDQtMTAtMjMgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJUFIgbWlkZGxlLWVuZC8xNzc5MwoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9hZGRyX2V4cHIpIDxWSUVXX0NPTlZFUlRfRVhQUj46IExvb2sKCXRocm91Z2ggdGhlIG9wZXJhbmQgaWYgaXQgaXMgYSB1c2VsZXNzIHR5cGUgY29udmVyc2lvbi4KCjIwMDQtMTAtMjMgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogY2ZnLmMgKHJlbW92ZV9lZGdlKTogVXNlIFZFQ191bm9yZGVyZWRfcmVtb3ZlLgoJKHJlZGlyZWN0X2VkZ2Vfc3VjYyk6IExpa2V3aXNlLgoJKHJlZGlyZWN0X2VkZ2VfcHJlZCk6IExpa2V3aXNlLgoJKiBjZmdydGwuYyAoZm9yY2Vfbm9uZmFsbHRocnVfYW5kX3JlZGlyZWN0KTogTGlrZXdpc2UuCgoyMDA0LTEwLTIyICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogc2JpdG1hcC5oIChFWEVDVVRFX0lGX1NFVF9JTl9TQklUTUFQKTogRG9uJ3QgYWNjZXNzIFBUUgoJYmV5b25kIGl0cyBlbmQuCgoyMDA0LTEwLTIyICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHNldHVwX2luY29taW5nX3ZhcmFyZ3MpOiBBbGlnbiBERm1vZGUKCXNhdmVzLgoKMjAwNC0xMC0yMiAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3JzNjAwMC9zcGUubWQgKHNwZV9leHRlbmRzZmRmMik6IE5ldy4KCShtb3ZkZl9lNTAwX2RvdWJsZSk6IE5ldy4KCShzcGVfdHJ1bmNkZnNmMik6IE5ldy4KCShzcGVfYWJzZGYyKTogTmV3LgoJKHNwZV9uYWJzZGYyKTogTmV3LgoJKHNwZV9uZWdkZjIpOiBOZXcuCgkoc3ViX2FkZGRmMyk6IE5ldy4KCShzcGVfc3ViZGYzKTogTmV3LgoJKHNwZV9tdWxkZjMpOiBOZXcuCgkoc3BlX2Zsb2F0c2lkZjIpOiBOZXcuCgkoc3BlX2Zsb2F0dW5zc2lkZjIpOiBOZXcuCgkoZml4X3RydW5jZGZzaTIpOiBOZXcuCgkoc3BlX2ZpeHVuc190cnVuY2Rmc2kyKTogTmV3LgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQgKHRydW5jZGZzZjIpOiBDaGFuZ2UgdG8gZXhwYW5kZXIuCgkoZnByX3RydW5jZGZzZjIpOiBOZXcuCgkobmVnZGYyKTogQ2hhbmdlIHRvIGV4cGFuZGVyLgoJKGZwcl9uZWdkZjIpOiBOZXcuCgkoZnByX25hYnNkZjIpOiBOYW1lIHBhdHRlcm4uCgkoYWRkZGYzKTogQ2hhbmdlIHRvIGV4cGFuZGVyLgoJKGZwcl9hZGRkZjMpOiBOZW0uCgkoc3ViZGYzKTogQ2hhbmdlIHRvIGV4cGFuZGVyLgoJKGZwcl9zdWJkZjMpOiBOZXcuCgkobXVsZGYzKTogQ2hhbmdlIHRvIGV4cGFuZGVyLgoJKGZwcl9tdWxkZjMpOiBOZXcuCgkoZGl2ZGYzKTogQ2hhbmdlIHRvIGV4cGFuZGVyLgoJKGZwcl9kaXZkZjMpOiBOZXcuCgkobW92ZGZfc29mdGZsb2F0MzIpOiBDaGFuZ2UgIVRBUkdFVF9GUFJTIHRvIFRBUkdFVF9FNTAwX1NJTkdMRS4KCShjbXBkZik6IEFsbG93IGZvciBUQVJHRVRfRTUwMF9ET1VCTEUuCgoyMDA0LTEwLTIyICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYy1zZW1hbnRpY3MuYyAocmVfcHVzaF9zdG10X2xpc3QpOiBSZW1vdmUuCgkqIGMtY29tbW9uLmg6IFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGUuCgoyMDA0LTEwLTIyICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogc3RtdC5jIChhc21fb3BfaXNfbWVtX2lucHV0KTogUmVtb3ZlLgoJKiB0cmVlLmg6IFJlbW92ZSB0aGUgY29ycmVzcG9uZGluZyBwcm90b3R5cGUuCgoyMDA0LTEwLTIyICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1naW1wbGUuYyAoaXNfZ2ltcGxlX2NvbnN0cnVjdG9yX2VsdCk6IFJlbW92ZS4KCSogdHJlZS1naW1wbGUuaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHByb3RvdHlwZS4KCjIwMDQtMTAtMjIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB2YXJhc20uYyAoZ2V0X3Bvb2xfbW9kZV9mb3JfZnVuY3Rpb24sIGdldF9wb29sX29mZnNldCk6CglSZW1vdmUuCgkqIHJ0bC5oOiBSZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvdG90eXBlcy4KCjIwMDQtMTAtMjIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jICh0aHJlYWRfanVtcHNfZnJvbV9iYik6IFNwZWVkIHVwIGJ5IGV4dHJhY3RpbmcKCWVkZ2UgaW5mb3JtYXRpb24gd2hlbiB3ZSBjb21taXQgb3Vyc2VsdmVzIHRvIHRocmVhZGluZyBhCglwYXJ0aWN1bGFyIGp1bXAuCgoyMDA0LTEwLTIyICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1jZmcuYyAodGhyZWFkX2p1bXBzKTogU3BlZWQgdXAgYnkgcHV0dGluZyBiYXNpYyBibG9ja3MKCWludG8gd29ya2xpc3QgaW5zdGVhZCBvZiB0aGVpciBpbmRleGVzLgoKMjAwNC0xMC0yMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGFsaWFzLmMsIGJhc2ljLWJsb2NrLmgsIGNncmFwaHVuaXQuYywgY29tYmluZS5jLCBkb213YWxrLmgsCglmaW5hbC5jLCBnZW5ndHlwZS5jLCBnZW5wcmVkcy5jLCBnZ2MtcGFnZS5jLCBpbnNuLW5vdGVzLmRlZiwKCWxhbWJkYS1jb2RlLmMsIGxvb3AtdW5yb2xsLmMsIG1vZHVsby1zY2hlZC5jLCBwb2ludGVyLXNldC5jLAoJcHJldHR5LXByaW50LmMsIHJhLWNvbG9yaXplLmMsIHNiaXRtYXAuYywgdHJlZS1jb21wbGV4LmMsCgl0cmVlLWRhdGEtcmVmLmMsIHRyZWUtZGZhLmMsIHRyZWUtaW5saW5lLmMsIHRyZWUtaW50by1zc2EuYywKCXRyZWUtc2NhbGFyLWV2b2x1dGlvbi5jLCB0cmVlLXNzYS1kb20uYywKCXRyZWUtc3NhLWxvb3AtbWFuaXAuYywgdHJlZS1zc2EtbG9vcC1uaXRlci5jLAoJdHJlZS1zc2EtcGhpb3B0LmMsIHRyZWUtc3NhLXByZS5jLCB0cmVlLXNzYS10aHJlYWR1cGRhdGUuYywKCXRyZWUtdmVjdG9yaXplci5jLCB2ZWMuaDogRml4IGNvbW1lbnQgZm9ybWF0dGluZy4KCjIwMDQtMTAtMjIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBkd2FyZi5oLCBndGhyLWRjZS5oLCBndGhyLXNpbmdsZS5oLCBndGhyLXNvbGFyaXMuaCwgZ3Roci5oLAoJbGliZnVuY3MuaCwgbGliZ2NjMi5oLCBzdGFiLmRlZiwgdHN5c3RlbS5oOiBVcGRhdGUgY29weXJpZ2h0LgoKMjAwNC0xMC0yMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy9wdHg0LmgsIGNvbmZpZy9tY29yZS9tY29yZS1wZS5oLAoJY29uZmlnL3JzNjAwMC9lYWJpLmgsIGNvbmZpZy92YXgvZWxmLmg6IFVwZGF0ZSBjb3B5cmlnaHQuCgoyMDA0LTEwLTIyICBQZXRlciBCYXJhZGEgPHBldGVyQHRoZS1iYXJhZGFzLmNvbT4KCgkqIGNvbmZpZy9tNjhrL202OGsuaCAoSEFSRF9SRUdOT19SRU5BTUVfT0spOiBOZXcgbWFjcm8uCgkqIGNvbmZpZy9tNjhrL202OGsuYyAobTY4a19oYXJkIHJlZ25vX3JlbmFtZV9vayk6IERpc2FsbG93CglyZW5hbWluZyBvZiBub24tbGl2ZSByZWdpc3RlcnMgaW4gaW50ZXJydXB0IGZ1bmN0aW9ucy4KCSogY29uZmlnL202OGsvbTY4ay1wcm90b3MuaCAobTY4a19oYXJkX3JlZ25vX3JlbmFtZV9vayk6IEFkZCBwcm90b3R5cGUuCgoyMDA0LTEwLTIyICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCSogdHJlZS1zc2EtbG9vcC1uaXRlci5jIChpbnZlcnNlKTogQ291bnQgaW4gSE9TVF9XSURFX0lOVCBpZiBwb3NzaWJsZS4KCVVzZSBpbnRlZ2VyIGZvciBsb29wIGNvdW50ZXIuCgkobnVtX2VuZGluZ196ZXJvcyk6IE5ldyBmdW5jdGlvbi4KCShudW1iZXJfb2ZfaXRlcmF0aW9uc19jb25kKTogVXNlIG51bV9lbmRpbmdfemVyb3MuCgoyMDA0LTEwLTIxICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ2NjOiBBZGQgc3VwcG9ydCBmb3IgLS1lbmFibGUtZTUwMF9kb3VibGUuCgoJKiBjb25maWcvcnM2MDAwL2U1MDAtZG91YmxlLmg6IE5ldyBmaWxlLgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuaDogRGVmaW5lIFRBUkdFVF9FNTAwX1NJTkdMRSBhbmQKCVRBUkdFVF9FNTAwX0RPVUJMRS4KCgkqIGNvbmZpZy9yczYwMDAvZWFiaS5oOiBEZWZpbmUgVEFSR0VUX0U1MDBfU0lOR0xFIGFuZAoJVEFSR0VUX0U1MDBfRE9VQkxFLgoKCSogY29uZmlnL3JzNjAwMC9saW51eHNwZS5oOiBTYW1lLgoKCSogZG9jL2ludm9rZS50ZXhpIChPcHRpb24gU3VtbWFyeSk6IERvY3VtZW50IG5ldyBvcHRpb25zIGZvcgoJbWZsb2F0LWdwcnMuCgkoUlMvNjAwMCBhbmQgUG93ZXJQQyBPcHRpb25zKTogU2FtZS4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9wYXJzZV9mbG9hdF9ncHJzX29wdGlvbik6IE5ldwoJZnVuY3Rpb24uCgkocnM2MDAwX292ZXJyaWRlX29wdGlvbnMpOiBVc2UgaXQuICBVc2UKCVNVQjNUQVJHRVRfT1ZFUlJJREVfT1BUSU9OUy4KCUFkZCA4NTQ4IHRvIHByb2Nlc3Nvcl90YXJnZXRfdGFibGUuCgkocnM2MDAwX2xlZ2l0aW1hdGVfYWRkcmVzcyk6IEhhbmRsZSBlNTAwIGRvdWJsZXMuCgkocnM2MDAwX2xlZ2l0aW1pemVfYWRkcmVzcyk6IFNhbWUuCgkocnM2MDAwX2xlZ2l0aW1pemVfcmVsb2FkX2FkZHJlc3MpOiBTYW1lLgoJKHJzNjAwMF9oYXJkX3JlZ25vX25yZWdzKTogU2FtZS4KCShzcGVfZnVuY19oYXNfNjRiaXRfcmVnc19wKTogU2FtZS4KCShlbWl0X2ZyYW1lX3NhdmUpOiBTYW1lLgoJKGdlbl9mcmFtZV9tZW1fb2Zmc2V0KTogU2FtZS4KCShyczYwMDBfZHdhcmZfcmVnaXN0ZXJfc3Bhbik6IFNhbWUuCgkocnM2MDAwX2dlbmVyYXRlX2NvbXBhcmUpOiBTYW1lLgoJKGVhc3lfZnBfY29uc3RhbnQpOiBTYW1lLgoJKGxlZ2l0aW1hdGVfb2Zmc2V0X2FkZHJlc3NfcCk6IFNhbWUuCgoJKiBjb25maWcvcnM2MDAwL3NwZS5tZDogKGNtZGZlcV9ncHIpOiBOZXcuCgkodHN0ZGZlcV9ncHIpOiBOZXcuCgkoY21wZGZndF9ncHIpOiBOZXcuCgkodHN0ZGZndF9ncHIpOiBOZXcuCgkodHN0ZGZndF9ncHIpOiBOZXcuCgkoY21wZGZsdF9ncHIpOiBOZXcuCgkodHN0ZGZsdF9ncHIpOiBOZXcuCglBZGQgbmV3IGNvbnN0YW50cy4KCjIwMDQtMTAtMjEgIEdpb3Zhbm5pIEJham8gIDxnaW92YW5uaWJham9AZ2NjLmdudS5vcmc+CgoJKiBjb25maWcvYXJjL2xpYjFmdW5jcy5hc20gKF9fX3VtdWxzaWRpMyk6IEZpeCB0eXBvLgoKMjAwNC0xMC0yMSAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRieG91dC5jOiBSZW1vdmUgdW5uZWNlc3NhcnkgI3VuZGVmcy4KCShHREJfSU5WX1JFRl9SRUdQQVJNX1NUQUJTX0xFVFRFUiwgREJYX01FTVBBUk1fU1RBQlNfTEVUVEVSKQoJKEZJTEVfTkFNRV9KT0lORVIsIFNUQUJTX0dDQ19NQVJLRVIpOiBSZW1vdmU7IGZvbGQgc29sZQoJZGVmaW5pdGlvbiBpbnRvIHVzZSBzaXRlcy4KCShjd2QpOiBNYWtlIGxvY2FsIHRvIGRieG91dF9pbml0LgoJKGRieG91dF9pbml0KTogUmVzdHJ1Y3R1cmUgY3dkLXVzaW5nIGxvZ2ljIGZvciBjbGFyaXR5LiAgVXNlCglJU19ESVJfU0VQQVJBVE9SLgoJKiB4Y29mZm91dC5oIChEQlhfT1VUUFVUX0dDQ19NQVJLRVIpOiBEZWZpbml0aW9uIG9mCglTVEFCU19HQ0NfTUFSS0VSIGZvbGRlZCBpbiBoZXJlLgoJKiBzeXN0ZW0uaDogUG9pc29uIG5vdy11bnVzZWQgbWFjcm9zLgoJKiBkb2MvdG0udGV4aTogUmVtb3ZlIGRvY3VtZW50YXRpb24gb2Ygbm93LXVudXNlZCBtYWNyb3MuCgoyMDA0LTEwLTIxICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiBjLzE3NTM4CgkqIGMtb3B0cy5jIChwdXNoX2NvbW1hbmRfbGluZV9pbmNsdWRlKTogVXNlIHRoZSBjdXJyZW50IGZpbGUKCW5hbWUgaW5zdGVhZCBvZiB0aGUgbWFpbiBvbmUuCgoyMDA0LTEwLTIxICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiBvYmpjLzE3OTIzCgkqIHRyZWUuYyAoc3RhdGljcCk6IEEgQ09OU1RfREVDTCBoYXMgc3RhdGljIHN0b3JhZ2UgaWYgZWl0aGVyCglUUkVFX1NUQVRJQyBvciBERUNMX0VYVEVSTkFMIGlzIHNldC4KCSogYy1kZWNsLmMgKHB1c2hkZWNsX3RvcF9sZXZlbCk6IEFjY2VwdCBDT05TVF9ERUNMcyB3aGljaCBjYW4KCWhhdmUgbnVsbCBuYW1lcy4KCjIwMDQtMTAtMjEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBleHByLmMgKHN0b3JlX2V4cHIpOiBSZW1vdmUgZG9udF9zdG9yZV90YXJnZXQuCgoyMDA0LTEwLTIxICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1jZmcuYyAodGhyZWFkX2p1bXBzKTogU3BlZWQgdXAgYnkgdXNpbmcgYSB3b3JrbGlzdC4KCjIwMDQtMTAtMjEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jICh0aHJlYWRfanVtcHMpOiBNb3ZlIGEgcGFydCBvZiBpdCB0byAuLi4KCSh0aHJlYWRfanVtcHNfZnJvbV9iYik6IC4uLiBoZXJlLgoKMjAwNC0xMC0yMSAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogZGJ4b3V0LmMgKERCWF9GSU5JU0hfU1lNQk9MKTogQWRkIGFzbV9vdXRfZmlsZSBhcmd1bWVudC4KCSogeGNvZmZvdXQuaCAoREJYX0ZJTklTSF9TWU1CT0wpOiBDaGFuZ2UgYXNtZmlsZSB0byAoQVNNRklMRSkuCgoyMDA0LTEwLTIxICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZXhwci5jIChzdG9yZV9leHByKTogQ2xlYW4gdXAgYnkgcmVuYW1pbmcgd2FudF92YWx1ZSB0bwoJY2FsbF9wYXJhbV9wLgoKMjAwNC0xMC0yMSAgS2F6IEtvamltYSAgPGtrb2ppbWFAZ2NjLmdudS5vcmc+CgoJKiBjb25maWcvc2gvbGludXgtdW53aW5kLmggKHNoX2ZhbGxiYWNrX2ZyYW1lX3N0YXRlKTogRG9uJ3QKCWZpeHVwIHBjIGhlcmUuCgoyMDA0LTEwLTIxICBBbGR5IEhlcm5hbmRleiAgPGFsZHloQHJlZGhhdC5jb20+CgoJUFIgMTgwMDQuCgkqIGV4cG1lZC5jIChzdG9yZV9iaXRfZmllbGQpOiBQYXNzIG9yaWdpbmFsICd2YWx1ZScgYmVmb3JlCglyZWN1cnNpbmcuCgoyMDA0LTEwLTIxICBOaWNvbGFzIFBpdHJlIDxuaWNvQGNhbS5vcmc+CgoJKiBjb25maWcvYXJtL2llZWU3NTQtc2YuUzogTGFyZ2Ugc3BlZWQgaW1wcm92ZW1lbnRzLiBGaXggTkFOIGhhbmRsaW5nLgoJKiBjb25maWcvYXJtL2llZWU3NTQtZGYuUzogRGl0dG8uCgoyMDA0LTEwLTIwICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGJ4b3V0LmMgKGFzbWZpbGUpOiBEZWxldGUuICBBbGwgdXNlcyBjaGFuZ2VkIHRvIGFzbV9vdXRfZmlsZS4KCShEQlhfQkxPQ0tTX0ZVTkNUSU9OX1JFTEFUSVZFLCBEQlhfTElORVNfRlVOQ1RJT05fUkVMQVRJVkUpOgoJRGVmYXVsdCB0byAwLgoJKGRieG91dF9zb3VyY2VfbGluZSk6IFVzZSBEQlhfT1VUUFVUX1NPVVJDRV9MSU5FIHdoZW4gZGVmaW5lZC4KCVdoZW4gaXQgaXMgbm90LCBidXQgREJYX0xJTkVTX0ZVTkNUSU9OX1JFTEFUSVZFIGlzIHRydWUsIGVtaXQKCWFuIGludGVybmFsIGxhYmVsIGFuZCBhbiBOX1NMSU5FIC5zdGFibiB3aG9zZSB2YWx1ZSBpcyB0aGUKCWRpZmZlcmVuY2UgYmV0d2VlbiB0aGF0IGxhYmVsIGFuZCB0aGUgZnVuY3Rpb24gZW50cnkgbGFiZWwuCgkoZGJ4b3V0X2ZpbmlzaCk6IElmIERCWF9PVVRQVVRfTUFJTl9TT1VSQ0VfRklMRV9FTkQgaXMgbm90IGRlZmluZWQsCglidXQgREJYX09VVFBVVF9OVUxMX05fU09fQVRfTUFJTl9TT1VSQ0VfRklMRV9FTkQgaXMsIGVtaXQgYQoJbGFiZWwgYW5kIGFuIE5fU08gc3RhYiB3aXRoIGFuIGVtcHR5IHN0cmluZyByZWZlcnJpbmcgdG8gaXQuCgkoZGJ4X291dHB1dF9sYnJhYywgZGJ4X291dHB1dF9yYnJhYyk6IFVzZSBpZiBzdGF0ZW1lbnQgaW5zdGVhZAoJb2YgI2lmZGVmIGRpcmVjdGl2ZSB0byB0ZXN0IERCWF9CTE9DS1NfRlVOQ1RJT05fUkVMQVRJVkUuCgkoZGJ4b3V0X3R5cGVfbWV0aG9kcywgZGJ4b3V0X3N5bWJvbCk6IFJlbW92ZSAjaWYgMCBibG9jay4KCShkYnhvdXRfcHJlcGFyZV9zeW1ib2wpOiBSZW1vdmUgI2lmZGVmIFdJTk5JTkdfR0RCIGJsb2NrLCB0aGlzCgltYWNybyBpcyBuZXZlciBkZWZpbmVkLgoJKiBzZGJvdXQuYyAoc2Rib3V0X3NvdXJjZV9saW5lX2NvdW50ZXIpOiBEZWxldGUuCgkoUFVUX1NEQl9TUkNfRklMRSk6IERlbGV0ZS4gIFVzZXMgcmVwbGFjZWQgd2l0aCBzb2xlIGRlZmluaXRpb24uCgkoc2Rib3V0X3NvdXJjZV9saW5lKTogVXNlIFNEQl9PVVRQVVRfU09VUkNFX0xJTkUsIHdoaWNoIHRha2VzCglvbmx5IHR3byBhcmd1bWVudHMuCgkqIHhjb2Zmb3V0LmMgKEFTTV9PVVRQVVRfU09VUkNFX0xJTkUpOiBSZW5hbWUgQVNNX09VVFBVVF9MSU5FLgoKCSogY29uZmlnL2RieGNvZmYuaCwgY29uZmlnL2RieGVsZi5oOiBSZW1vdmUgdW5uY2Vzc2FyeSAjdW5kZWZzLgoJKiBjb25maWcvYzR4L2M0eC5oLCBjb25maWcvcGEvcGEuaDogUmVtb3ZlIHVubmVjZXNzYXJ5IG1hY3JvCglkZWZpbml0aW9ucyAoaWRlbnRpY2FsIHRvIGRlZmF1bHQpLgoJKiBjb25maWcvZGFyd2luLmgsIGNvbmZpZy9kYnhjb2ZmLmgsIGNvbmZpZy9kYnhlbGYuaCwgY29uZmlnL3B0eDQuaAoJKiBjb25maWcvaDgzMDAvY29mZi5oLCBjb25maWcvcGEvc29tLmgsIGNvbmZpZy9zaC9lbGYuaDoKCURlZmluZSBEQlhfT1VUUFVUX05VTExfTl9TT19BVF9NQUlOX1NPVVJDRV9GSUxFX0VORCwgbm90CglEQlhfT1VUUFVUX01BSU5fU09VUkNFX0ZJTEVfRU5ELgoJKiBjb25maWcvZGJ4Y29mZi5oLCBjb25maWcvZGJ4ZWxmLmgsIGNvbmZpZy9wdHg0LmgKCSogY29uZmlnL21jb3JlL21jb3JlLXBlLmgsIGNvbmZpZy9wYS9zb20uaCwgY29uZmlnL3NoL2VsZi5oOgoJRGVmaW5lIERCWF9MSU5FU19GVU5DVElPTl9SRUxBVElWRSwgbm90IEFTTV9PVVRQVVRfU09VUkNFX0xJTkUuCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS1wcm90b3MuaDogRG9uJ3QgcHJvdG90eXBlIGFscGhhX291dHB1dF9saW5lbm8uCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5jOiBNb3ZlIGRlY2xhcmF0aW9uIG9mIG51bV9zb3VyY2VfZmlsZW5hbWVzIHVwLgoJKGFscGhhX3N0YXJ0X2Z1bmN0aW9uKTogVXNlIFNEQl9PVVRQVVRfU09VUkNFX0xJTkUuCgkoc3ltX2xpbmVubyk6IERlbGV0ZS4KCShhbHBoYV9vdXRwdXRfZmlsZW5hbWUpOiBEbyBub3QgZW1pdCBOX1NPTCBzdGFicyBoZXJlLiAgUmVtb3ZlCglub3ctdW51c2VkIHZhcmlhYmxlLgoJKGFscGhhX291dHB1dF9saW5lbm8pOiBEZWxldGUuCgkqIGNvbmZpZy9taXBzL21pcHMtcHJvdG9zLmg6IERvbid0IHByb3RvdHlwZSBtaXBzX291dHB1dF9saW5lbm8uCgkqIGNvbmZpZy9taXBzL21pcHMuYyAobWlwc19vdXRwdXRfZmlsZW5hbWUpOiBEb24ndCB1c2UKCUFTTV9PVVRQVVRfRklMRU5BTUUuIERvbid0IGVtaXQgTl9TT0wgc3RhYnMgaGVyZS4KCShtaXBzX291dHB1dF9saW5lbm8pOiBEZWxldGUuCgkobWlwc19vdXRwdXRfZnVuY3Rpb25fcHJvbG9ndWU6IFVzZSBTREJfT1VUUFVUX1NPVVJDRV9MSU5FLgoJKiBjb25maWcvYWxwaGEvYWxwaGEuaDogRGVmaW5lIERCWF9PVVRQVVRfU09VUkNFX0xJTkUgYW5kCglTREJfT1VUUFVUX1NPVVJDRV9MSU5FLCBub3QgQVNNX09VVFBVVF9TT1VSQ0VfTElORS4KCSogY29uZmlnL21pcHMvbWlwcy5oOiBMaWtld2lzZS4gIERvbid0IGRlZmluZSBBU01fT1VUUFVUX0ZJTEVOQU1FLgoJKiBjb25maWcvbWlwcy9zZGIuaDogVXNlIFNEQl9PVVRQVVRfU09VUkNFX0xJTkUuCgkqIGNvbmZpZy9hdnIvYXZyLmg6IERvbid0IGRlZmluZSBBU01fT1VUUFVUX1NPVVJDRV9MSU5FLgoJKiBjb25maWcvbW1peC9tbWl4Lmg6IExpa2V3aXNlLgoJKiBjb25maWcvbW1peC9tbWl4LmMgKG1taXhfYXNtX291dHB1dF9zb3VyY2VfbGluZSk6IERlbGV0ZS4KCSogY29uZmlnL21taXgvbW1peC1wcm90b3MuaDogRG9uJ3QgcHJvdG90eXBlIGl0LgoJKiBjb25maWcvYWxwaGEvdW5pY29zbWsuaDogQWxzbyAjdW5kZWYgUFJFRkVSUkVEX0RFQlVHR0lOR19UWVBFOwoJbm8gbmVlZCB0byAjdW5kZWYgQVNNX09VVFBVVF9TT1VSQ0VfTElORS4KCSogY29uZmlnL2FybS9hb3V0Lmg6IFJlbW92ZSBSSVNDaVgtc3BlY2lmaWMgZGVmaW5pdGlvbiBvZgoJREJYX09VVFBVVF9NQUlOX1NPVVJDRV9GSUxFTkFNRS4KCSogY29uZmlnL20zMnIvbTMyci5oOiBEZWZpbmUgREJYX09VVFBVVF9TT1VSQ0VfTElORSwgbm90CglBU01fT1VUUFVUX1NPVVJDRV9MSU5FLgoJKiBjb25maWcvcnM2MDAwL2xpbnV4NjQuaCAoQVNNX09VVFBVVF9TT1VSQ0VfTElORSk6IFJlbmFtZSB0bwoJREJYX09VVFBVVF9TT1VSQ0VfTElORS4gIERvbid0IHVzZSBjdXJyZW50X2Z1bmN0aW9uX2Z1bmNfYmVnaW5fbGFiZWwuCgkqIGNvbmZpZy92YXgvZWxmLmg6IE5vIG5lZWQgdG8gZGVmaW5lIERCWF9PVVRQVVRfRlVOQ1RJT05fRU5ELgoKCSogZG9jL3RtLnRleGk6IFVwZGF0ZS4KCjIwMDQtMTAtMjAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmVlLXNyYS5jIChpbnN0YW50aWF0ZV9lbGVtZW50KTogQ29weSBERUNMX0lHTk9SRURfUCBhbHNvLgoKMjAwNC0xMC0yMCAgS2VsbGV5IENvb2sgIDxrY29va0BnY2MuZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzogUmV2ZXJ0IG15IHByZXZpb3VzIHBhdGNoLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA0LTEwLTIwICBCZW4gRWxsaXN0b24gIDxiamVAYXUuaWJtLmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMKCShyczYwMDBfdmFfc3RhcnQpOiBVc2UgYnVpbGRfdmFfYXJnX2luZGlyZWN0X3JlZi4KCShyczYwMDBfZ2ltcGxpZnlfdmFfYXJnKTogTGlrZXdpc2UuCgoyMDA0LTEwLTIwICBCcnljZSBNY0tpbmxheSAgPG1ja2lubGF5QHJlZGhhdC5jb20+CgoJUFIgamF2YS8xNTU3NQoJKiBjb25maWd1cmUuYWM6IERlY2xhcmUgQU1fTEFOR0lORk9fQ09ERVNFVC4KCSogYWNsb2NhbC5tNDogRGVmaW5lIEFNX0xBTkdJTkZPX0NPREVTRVQuCgkqIGNvbmZpZ3VyZSwgY29uZmlnLmluOiBSZWJ1aWx0LgoKMjAwNC0xMC0yMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGV4cHIuYyAoc3RvcmVfZXhwcik6IFJlbW92ZSBjb2RlIHRoYXQgaXMgcnVuIHdoZW4KCXdhbnRfdmFsdWUgJiAxIGlzIG5vbnplcm8uCgoyMDA0LTEwLTIwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZ3Roci1wb3NpeC5oIChfX2d0aHJlYWRfYWN0aXZlX3ApOiBVc2UgX19leHRlbnNpb25fXyBhcm91bmQgY2FzdAoJZnJvbSBmdW5jdGlvbiBwb2ludGVyIHRvIHZvaWQgKi4KCjIwMDQtMTAtMjAgIEtheiBLb2ppbWEgIDxra29qaW1hQGdjYy5nbnUub3JnPgoKCVBSIHRhcmdldC8xODAzMgoJKiBjb25maWcvc2gvc2guYyAoc2hfZXhwYW5kX2VwaWxvZ3VlKTogRW1pdCBhIGJsb2NrYWdlIGluc24gYmVmb3JlCgl0aGUgZnJhbWUgcG9pbnRlciBhZGp1c3RtZW50IHdoZW4gZXhjZXB0aW9uIGhhbmRsaW5nIGlzIGVuYWJsZWQuCgoyMDA0LTEwLTIwICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogc3Rvci1sYXlvdXQuYzogRml4IGEgY29tbWVudCB0eXBvLgoKMjAwNC0xMC0yMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGV4cHIuYyAoc3RvcmVfZmllbGQpOiBSZW1vdmUgdHdvIGFyZ3VtZW50cyB2YWx1ZV9tb2RlIGFuZAoJdW5zaWduZWRwLgoJKGV4cGFuZF9hc3NpZ25tZW50LCBzdG9yZV9jb25zdHJ1Y3Rvcl9maWVsZCwKCWV4cGFuZF9leHByX3JlYWxfMSk6IEFkanVzdCBjYWxscyB0byBzdG9yZV9maWVsZC4KCjIwMDQtMTAtMTggIFJhbWFuYSBSYWRoYWtyaXNobmFuICA8cmFtYW5hLnJhZGhha3Jpc2huYW5AY29kaXRvLmNvbT4KCgkqIGNvbmZpZy9hcmMvbGliMWZ1bmNzLmFzbSAoX19fdW11bHNpZGkzKTogQ29ycmVjdCB1c2FnZSBvZiBmbGFncy4KCglQUiB0YXJnZXQvMTczMTcKCSogY29uZmlnL2FyYy9hcmMuaCAoUkVHTk9fT0tfRk9SX0JBU0VfUCxSRUdOT19PS19GT1JfSU5ERVhfUCwKCVJFR19PS19GT1JfQkFTRSwgUkVHX09LX0ZPUl9JTkRFWCk6IENvbnNpZGVyIGJsaW5rKHIzMSkgYXMgYSB2YWxpZAoJYmFzZSBhbmQgaW5kZXggcmVnaXN0ZXIgZm9yIGxvYWRzLgoKCSogY29uZmlnL2FyYy90LWFyYzogRml4IG11bHRpbGliIGhhbmRsaW5nLgoKMjAwNC0xMC0yMCAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYml0cmFuZ2UuY29tPgoKCSogY2ZncnRsLmMgKHJ0bF92ZXJpZnlfZmxvd19pbmZvXzEpOiBXaGVuIGNoZWNraW5nIGluc25zIGluIGEgYmIsCglkb24ndCBpbnNwZWN0IEJMT0NLX0ZPUl9JTlNOIGZvciBiYXJyaWVycy4KCSogZW1pdC1ydGwuYyAoZW1pdF9iYXJyaWVyX2JlZm9yZSk6IFJldmVydCBsYXN0IGNoYW5nZS4KCShlbWl0X2JhcnJpZXJfYWZ0ZXIsIGVtaXRfYmFycmllcik6IERpdHRvLgoKCSogZG9jL2V4dGVuZC50ZXhpIChFeHRlbmRlZCBBc20pOiBXYXJuIGFuZCBwcm92aWRlIGV4YW1wbGUKCXNvbHV0aW9uIGZvciB1c2luZyBhIGNhbGwtY2xvYmJlcmVkIGFzbSByZWdpc3Rlci4KCShMb2NhbCBSZWcgVmFycyk6IFNpbWlsYXIuICBDcm9zcy1yZWZlcmVuY2UgZXhhbXBsZS4KCjIwMDQtMTAtMTkgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogdHJlZS1jZmcuYyAoZ3JvdXBfY2FzZV9sYWJlbHMpOiBMb29rIGF0IHRoZSBzZWNvbmQgdG8gbGFzdAoJY2FzZSBzdGF0ZW1lbnQgZm9yIGNvbWJpbmcgd2l0aCB0aGUgZGVmYXVsdCBjYXNlLgoKMjAwNC0xMC0xOSAgUmljaGFyZCBIZW5kZXNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIDE3OTYyCgkqIHN0b3ItbGF5b3V0LmMgKGxheW91dF90eXBlKTogU2V0IFRZUEVfQUxJR04gZm9yIHZlY3RvcnMuCgoyMDA0LTEwLTE5ICBSaWNoYXJkIEhlbmRlc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBidWlsdGlucy5jIChleHBhbmRfYnVpbHRpbl9tZW1tb3ZlKTogSWYgZm9sZF9idWlsdGluX21lbW1vdmUKCXN1Y2NlZWRzLCBvbmx5IGV4cGFuZCB0aGUgcmVzdWx0LgoKMjAwNC0xMC0xOSAgUmljaGFyZCBIZW5kZXNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIG1pZGRsZS1lbmQvMTc4ODUKCSogdHJlZS5jIChyZWNvbXB1dGVfdHJlZV9pbnZhcmFudF9mb3JfYWRkcl9leHByKTogQWx3YXlzIHBvbGwgYWRkcmVzcwoJb2YgSU5ESVJFQ1RfUkVGLgoKMjAwNC0xMC0xOSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmMgKHRocmVhZF9qdW1wcyk6IFVzZSBhIGRvLXdoaWxlIGxvb3AgaW5zdGVhZCBvZiBhCglsb29wIHdpdGggZ290by4KCjIwMDQtMTAtMTkgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBleHByLmMgKGV4cGFuZF9hc3NpZ25tZW50KTogUmVtb3ZlIHRoZSBsYXN0IGFyZ3VtZW50LgoJQ2hhbmdlIHRoZSByZXR1cm4gdHlwZSB0byB2b2lkLgoJKiBleHByLmg6IFVwZGF0ZSB0aGUgcHJvdG90eXBlIG9mIGV4cGFuZF9hc3NpZ25tZW50LgoJKiBmdW5jdGlvbi5jIChhc3NpZ25fcGFybV9zZXR1cF9yZWcpOiBVcGRhdGUgYSBjYWxsIHRvCglleHBhbmRfYXNzaWdubWVudC4KCSogc3RtdC5jIChleHBhbmRfYXNtX2V4cHIpOiBMaWtld2lzZS4KCjIwMDQtMTAtMTkgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBleHByLmMgKGV4cGFuZF9leHByX3JlYWxfMSkgPE1PRElGWV9FWFBSPjogUmVtb3ZlCgl1bm5lY2Vzc2FyeSBhc3NpZ25tZW50cyB0byB0ZW1wLiAgUmV0dXJuIGNvbnN0MF9ydHguCgoyMDA0LTEwLTE5ICBLYXogS29qaW1hICA8a2tvamltYUBnY2MuZ251Lm9yZz4KCgkqIGNvbmZpZy9zaC9zaC5jIChzaDVfc2NoZWR1bGVfc2F2ZXMpOiBGaXggdHlwby4KCjIwMDQtMTAtMTggIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgoJKiBjb25maWd1cmUuYWMgKHBvd2VycGMtKi1kYXJ3aW4qKTogUmVxdWlyZSBhc3NlbWJsZXIgdG8gc3VwcG9ydAoJLm1hY2hpbmUgZGlyZWN0aXZlLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA0LTEwLTE4ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogcmVsb2FkMS5jIChpb3JfaGFyZF9yZWdfc2V0KTogUmVtb3ZlLgoJKGZpbmlzaF9zcGlsbHMpOiBVc2UgSU9SX0hBUkRfUkVHX1NFVCBpbnN0ZWFkIG9mCglpb3JfaGFyZF9yZWdfc2V0LgoKMjAwNC0xMC0xOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHNiaXRtYXAuaCAoRVhFQ1VURV9JRl9TRVRfSU5fU0JJVE1BUCk6IFNwZWVkIHVwIGJ5IHNoaWZ0aW5nCgl0aGUgY3VycmVudGx5IHZpc2l0ZWQgd29yZCB0byByaWdodC4KCjIwMDQtMTAtMTggIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJUFIgbWlkZGxlLWVuZC8xODA0NQoJKiBleHBtZWQuYyAoZXhwYW5kX3Ntb2RfcG93Mik6IEhhbmRsZSBtb2RlcyB3aG9zZSBzaXplCglpcyBncmVhdGVyIHRoYW4gdGhhdCBvZiBIT1NUX1dJREVfSU5ULgoKMjAwNC0xMC0xOCAgWmllbW93aXQgTGFza2kgIDx6bGFza2lAYXBwbGUuY29tPgoKCSogYy1wYXJzZS5pbiAocmVzZXJ2ZWR3b3Jkcyk6IEFkZCBPQkpDX1RZUEVfUVVBTCBhcyBhbHRlcm5hdGl2ZS4KCjIwMDQtMTAtMTggIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgkgICAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgbWlkZGxlLWVuZC8xNzgxMwoJKiBkb2p1bXAuYyAoZGlzY2FyZF9wZW5kaW5nX3N0YWNrX2FkanVzdCk6IE5ldyBmdW5jdGlvbi4KCShjbGVhcl9wZW5kaW5nX3N0YWNrX2FkanVzdCk6IENhbGwgaXQuCgkqIGV4cHIuaCAoZGlzY2FyZF9wZW5kaW5nX3N0YWNrX2FkanVzdCk6IERlY2xhcmUgaXQuCgkqIGV4cGxvdy5jIChlbWl0X3N0YWNrX3NhdmUpOiBFbWl0IHBlbmRpbmcgc3RhY2sgYWRqdXN0bWVudHMKCWJlZm9yZSBzYXZpbmcgdGhlIHN0YWNrIHBvaW50ZXIuCgkoZW1pdF9zdGFja19yZXN0b3JlKTogRGlzY2FyZCBwZW5kaW5nIHN0YWNrIGFkanVzdG1lbnRzIGJlZm9yZQoJcmVzdG9yaW5nIHRoZSBzdGFjayBwb2ludGVyLgoKMjAwNC0xMC0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGMtY29tbW9uLmMgKGhhbmRsZV9tb2RlX2F0dHJpYnV0ZSk6IEFsbG93IHNjYWxhci0+dmVjdG9yCgl0eXBlIGNoYW5nZXMgeWV0LgoKMjAwNC0xMC0xOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGV4cHIuYyAoZXhwYW5kX2V4cHJfcmVhbF8xKSBbTU9ESUZZX0VYUFJdOiBEb24ndCByZXF1ZXN0IGEKCXZhbHVlIHRvIGV4cGFuZF9hc3NpZ25tZW50LgoKMjAwNC0xMC0xOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmMgKGNsZWFudXBfdHJlZV9jZmcpOiBEb24ndCBpdGVyYXRlIG9uCgl0aHJlYWRfanVtcHMuCgkodGhyZWFkX2p1bXBzKTogSXRlcmF0ZSB1bnRpbCBubyBuZXcgZm9yd2FyZGVyIGJsb2NrIGFyaXNlcy4KCjIwMDQtMTAtMTggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jICh0cmVlX2ZvcndhcmRlcl9ibG9ja19wKTogRG9uJ3Qgc2V0IGZvcndhcmRhYmxlLgoJKHRocmVhZF9qdW1wcyk6IFVzZSBmb3J3YXJkYWJsZSBhcyBjYWNoZSBvZgoJdHJlZV9mb3J3YXJkZXJfYmxvY2tfcCB0aHJvdWdob3V0IHRoZSBmdW5jdGlvbi4KCjIwMDQtMTAtMTggIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWwxQGRlLmlibS5jb20+CgoJKiBjZmcuYyAoZHVtcF9mbG93X2luZm8pOiBSZW1vdmUgcmVkdW5kYW50IGR1bXAgb2YgcmVnIGxpZmUgaW5mby4KCjIwMDQtMTAtMTggIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIG1pZGRsZS1lbmQvMTUwMTQKCVBSIG1pZGRsZS1lbmQvMTY5NzMKCSogdHJlZS1jZmcuYyAocmVtb3ZlX2JiKTogSWYgd2UgaGF2ZSBhIGxhYmVsIGV4cHJlc3Npb24gaW4gdGhlCgliYXNpYyBibG9jayBhbmQgdGhlIGxhYmVsIHdlIGhhdmUgdGFrZW4gdGhlIGFkZHJlc3MsIG1vdmUgdGhlCglsYWJlbCBleHByZXNzaW9uIHRvIHRoZSBiYXNpYyBibG9jayB3aGljaCBpcyBwcmV2aW91cyBpbiB0aGUKCWxpbmtlZCBsaXN0LgoJKHRyZWVfdmVyaWZ5X2Zsb3dfaW5mbyk6IEZpeCBwcmludGluZyBvdXQgdGhlIGxhYmVsIG5hbWUgb2YgdGhlCglwcm9ibGVtYXRpYyBsYWJlbCBleHByZXNzaW9uLgoKMjAwNC0xMC0xOCAgUGF0IEhhdWdlbiAgPHB0aGF1Z2VuQHVzLmlibS5jb20+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xODAwMgoJKiBzaW1wbGlmeS1ydHguYyAobW9kZV9zaWduYml0X3ApOiBFeHRlcm5hbGl6ZSBmdW5jdGlvbi4uLgoJKiBydGwuaCAobW9kZV9zaWduYml0X3ApOiAuLi4gdG8gaGVyZS4KCSogY29tYmluZS5jIChzaW1wbGlmeV9zaGlmdF9jb25zdCk6IFJlY29nbml6ZSBQTFVTIHNpZ25iaXQgYXMKCWNhbm9uaWNhbCBmb3JtIG9mIFhPUiBzaWduYml0IGFuZCBtb3ZlIHRvIG91dGVyIG9wLgoKMjAwNC0xMC0xOCAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLWNmZy5jIChic2lfZm9yX3N0bXQpOiBSZW5hbWUgZnJvbSBzdG10X2Zvcl9ic2kuCglVcGRhdGUgYWxsIGNhbGxlcnMuCgkqIHRyZWUtc3NhLmMgKHJlcGxhY2VfaW1tZWRpYXRlX3VzZXMpOiBDYWxsIGJzaV9mb3Jfc3RtdC4KCURvbid0IGNhbGwgZm9sZF9zdG10IG1vcmUgdGhhbiBvbmNlLCB1c2UgYnNpX3JlcGxhY2UuCgoyMDA0LTEwLTE4ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNzY1NgoJKiB0cmVlLXNzYS5jIChyZXBsYWNlX2ltbWVkaWF0ZV91c2VzKTogV2hlbiByZXBsYWNpbmcgYQoJY29uc3RhbnQsIGlmIHRoZSBjYWxsIHRvIGZvbGRfc3RtdCBwcm9kdWNlZCBhIGRpZmZlcmVudAoJc3RhdGVtZW50LCBnZXQgYW4gYXBwcm9wcmlhdGUgc3RhdGVtZW50IHBvaW50ZXIgYnkgc2Nhbm5pbmcKCVNUTVQncyBiYXNpYyBibG9jay4KCjIwMDQtMTAtMTggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBwb2ludGVyLXNldC5jIChoYXNoMSk6IERvbid0IHVzZSBsaWJtIGZ1bmN0aW9ucyBpbiBmYWxsYmFjayBjYXNlLgoKMjAwNC0xMC0xOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGJvb3RzdHJhcC8xNzY4NAoJKiBNYWtlZmlsZS5pbiAoY2xlYW4pOiBSZW1vdmUgbGliZ2NjX3MkKFNITElCX0VYVCkuMS5zdGFnZT8uCgkoc3RhZ2UxLXN0YXJ0KTogUmVtb3ZlIGFuZCBjb3B5IGxpYnVud2luZC5hIGFuZAoJbGlidW53aW5kKiQoU0hMSUJfRVhUKSBpbnN0ZWFkIG9mIGxpYnVud2luZCouCgkoc3RhZ2UyLXN0YXJ0KTogTGlrZXdpc2UuCgkoc3RhZ2UzLXN0YXJ0KTogTGlrZXdpc2UuCgkoc3RhZ2U0LXN0YXJ0KTogTGlrZXdpc2UuCgkoc3RhZ2Vwcm9maWxlLXN0YXJ0KTogTGlrZXdpc2UuCgkoc3RhZ2VmZWVkYmFjay1zdGFydCk6IExpa2V3aXNlLgoKCSogY29uZmlnL2FscGhhL3Qtb3NmNCAoU0hMSUJfTElOSyk6IFVzZSBhIHRlbXBvcmFyeSBmaWxlIGZvcgoJdGhlIHNoYXJlZCBsaWJyYXJ5IHRvIGJlIGNyZWF0ZWQgYW5kIGRvbid0IHJlbW92ZSB0aGUgZXhpc3RpbmcKCXNoYXJlZCBsaWJyYXJ5LgoJKiBjb25maWcvYXJtL3QtbmV0YnNkIChTSExJQl9MSU5LKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L3QtbndsZCAoU0hMSUJfTElOSyk6IExpa2V3aXNlLgoJKiBjb25maWcvbWlwcy90LXNsaWJnY2MtaXJpeCAoU0hMSUJfTElOSyk6IExpa2V3aXNlLgoJKiBjb25maWcvcGEvdC1ocHV4LXNobGliIChTSExJQl9MSU5LKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zaC90LWxpbnV4IChTSExJQl9MSU5LKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90LWxpYnVud2luZC1lbGYgKFNITElCVU5XSU5EX0xJTkspOiBMaWtld2lzZS4KCSogY29uZmlnL3Qtc2xpYmdjYy1kYXJ3aW4gKFNITElCX0xJTkspOiBMaWtld2lzZS4KCSogY29uZmlnL3Qtc2xpYmdjYy1lbGYtdmVyIChTSExJQl9MSU5LKTogTGlrZXdpc2UuCgkqIGNvbmZpZy90LXNsaWJnY2Mtc2xkIChTSExJQl9MSU5LKTogTGlrZXdpc2UuCgoJKiBta2xpYmdjYy5pbiAobGliZ2NjLXN0YWdlLXN0YXJ0KTogQWxzbyBtb3ZlICIqJHtvYmpleHR9cyIKCWZpbGVzLgoKMjAwNC0xMC0xOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGJhc2ljLWJsb2NrLmggKHJlZ19zZXRfaXRlcmF0b3IpOiBOZXcuCgkoRVhFQ1VURV9JRl9TRVRfSU5fUkVHX1NFVCk6IE1ha2UgaXQgaXRlcmF0b3Igc3R5bGUuCgkoRVhFQ1VURV9JRl9BTkRfQ09NUExfSU5fUkVHX1NFVCk6IExpa2V3aXNlLgoJKEVYRUNVVEVfSUZfQU5EX0lOX1JFR19TRVQpOiBMaWtld2lzZS4KCSogY2FsbGVyLXNhdmUuYyAoc2F2ZV9jYWxsX2Nsb2JiZXJlZF9yZWdzKTogQWRqdXN0IHRvIHRoZSBuZXcKCXN0eWxlLgoJKiBjZmdjbGVhbnVwLmMgKHRocmVhZF9qdW1wKTogTGlrZXdpc2UuCgkqIGNmZ3J0bC5jIChzYWZlX2luc2VydF9pbnNuX29uX2VkZ2UpOiBMaWtld2lzZS4KCSogY29uZmxpY3QuYyAoY29uZmxpY3RfZ3JhcGhfY29tcHV0ZSk6IExpa2V3aXNlLgoJKiBmbG93LmMgKHZlcmlmeV9sb2NhbF9saXZlX2F0X3N0YXJ0LCB1cGRhdGVfbGlmZV9pbmZvLAoJaW5pdGlhbGl6ZV91bmluaXRpYWxpemVkX3N1YnJlZ3MsIHByb3BhZ2F0ZV9vbmVfaW5zbiwKCWluaXRfcHJvcGFnYXRlX2Jsb2NrX2luZm8sIGZyZWVfcHJvcGFnYXRlX2Jsb2NrX2luZm8sCglwcm9wYWdhdGVfYmxvY2ssIGR1bXBfcmVnc2V0KTogTGlrZXdpc2UuCgkqIGdsb2JhbC5jIChnbG9iYWxfY29uZmxpY3RzKTogTGlrZXdpc2UuCgkqIGdyYXBoLmMgKHN0YXJ0X2JiKTogTGlrZXdpc2UuCgkqIGxvY2FsLWFsbG9jLmMgKHVwZGF0ZV9lcXVpdl9yZWdzKTogTGlrZXdpc2UuCgkqIGxvb3AuYyAobG9hZF9tZW1zKTogTGlrZXdpc2UuCgkqIHJlbG9hZDEuYyAoY29tcHV0ZV91c2VfYnlfcHNldWRvcywgb3JkZXJfcmVnc19mb3JfcmVsb2FkLAoJZmluZF9yZWcsIGZpbmlzaF9zcGlsbHMpOiBMaWtld2lzZS4KCSogcmVzb3VyY2UuYyAobWFya190YXJnZXRfbGl2ZV9yZWdzKTogTGlrZXdpc2UuCgkqIHNjaGVkLWRlcHMuYyAoc2NoZWRfYW5hbHl6ZV9pbnNuKTogTGlrZXdpc2UuCgkqIHNjaGVkLXJnbi5jIChzY2hlZC1yZ24uYyk6IExpa2V3aXNlLgoJKiBjb25maWcvZnJ2L2Zydi5jIChmcnZfaWZjdnRfbW9kaWZ5X3Rlc3RzKTogTGlrZXdpc2UuCgoyMDA0LTEwLTE4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKGFkZHFpXzFfc2xwKTogVGVzdCBmb3IgaW5jZGVjX29wZXJhbmQKCW9wZXJhbmQgMSBpbnN0ZWFkIG9mIDIKCjIwMDQtMTAtMTggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBsb29wLXVucm9sbC5jOiBGaXggY29tbWVudCB0eXBvcy4KCjIwMDQtMTAtMTggIFJldml0YWwgRXJlcyAgPGVyZXNAaWwuaWJtLmNvbT4KCgkqIE1ha2VmaWxlLmluIChsb29wLXVucm9sbC5vKTogQWRkIFZBUlJBWV9IIGRlcGVuZGVuY3kuCgkqIGxvb3AtdW5yb2xsLmM6IEluY2x1ZGUgdmFycmF5LmguCgkoc3RydWN0IHZhcl90b19leHBhbmQsIHN0cnVjdCBvcHRfaW5mbyk6IFJlbmFtZSBzcGxpdF9pdnNfaW5mbyB0bwoJb3B0X2luZm8gYW5kIGV4cGFuZCBpdCB0byBzdXBwb3J0IHZhcmlhYmxlIGV4cGFuc2lvbi4KCShhbmFseXplX2luc25zX2luX2xvb3ApOiBSZW5hbWUgYW5hbHl6ZV9pdnNfdG9fc3BsaXQgYW5kCglleHBhbmQgaXQgdG8gc3VwcG9ydCB2YXJpYWJsZSBleHBhbnNpb24uCgkocHRfaW5mb19zdGFydF9kdXBsaWNhdGlvbik6IFJlbmFtZSBzaV9pbmZvX3N0YXJ0X2R1cGxpY2F0aW9uLgoJKGFwcGx5X29wdF9pbl9jb3BpZXMpOiBSZW5hbWUgc3BsaXRfaXZzX2luX2NvcGllcyBhbmQgYWRkIHN1cHBvcnQKCXRvIHRoZSB2YXJpYWJsZSBleHBhbnNpb24gb3B0aW1pemF0aW9uLgoJKGZyZWVfb3B0X2luZm8pOiBSZW5hbWUgZnJlZV9zaV9pbmZvLgoJKGFuYWx5emVfaW5zbl90b19leHBhbmRfdmFyLCByZWZlcmVuY2VkX2luX29uZV9pbnNuX2luX2xvb3BfcCwKCWV4cGFuZF92YXJfZHVyaW5nX3Vucm9sbGluZywgaW5zZXJ0X3Zhcl9leHBhbnNpb25faW5pdGlhbGl6YXRpb24sCgljb21iaW5lX3Zhcl9jb3BpZXNfaW5fbG9vcF9leGl0LCByZWxlYXNlX3Zhcl9jb3BpZXMsCglnZXRfZXhwYW5zaW9uKTogTmV3IGZ1bmN0aW9ucy4KCShwZWVsX2xvb3BfY29tcGxldGVseSwgdW5yb2xsX2xvb3BfY29uc3RhbnRfaXRlcmF0aW9ucywKCXVucm9sbF9sb29wX3J1bnRpbWVfaXRlcmF0aW9ucywgcGVlbF9sb29wX3NpbXBsZSwKCXVucm9sbF9sb29wX3N0dXBpZCk6IENoYW5nZSB1c2VzIG9mIHN0cnVjdCBzaV9pbmZvCgl0byBzdHJ1Y3Qgb3B0X2luZm8KCWFuZCBhZGQgdXNlcyBvZiBmdmFyaWFibGUtZXhwYW5zaW9uLWluLXVucm9sbGVyIGZsYWcuCgkqIHBhcmFtcy5kZWY6IEFkZCBwYXJhbWV0ZXIgdG8gcmVzdHJpY3QgdGhlIG51bWJlciBvZiBleHBhbnNpb25zLgoJKiBwYXJhbXMuaDogKE1BWF9WQVJJQUJMRV9FWFBBTlNJT05TKTogTmV3IGRlZmluZSB0byByZXN0cmljdAoJdGhlIG51bWJlciBvZiBleHBhbnNpb25zLgoJKiBjb21tb24ub3B0OiAoZnZhcmlhYmxlLWV4cGFuc2lvbi1pbi11bnJvbGxlcik6IE5ldyBmbGFnLgoJKiBkb2MvaW52b2tlLnRleGk6IChmdmFyaWFibGUtZXhwYW5zaW9uLWluLXVucm9sbGVyKTogRG9jdW1lbnQuCgoyMDA0LTEwLTE4ICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY29uZmlnL2kzODYvY3lnbWluZy5oIChUQVJHRVRfT1NfQ1BQX0JVSUxUSU5TKTogRGVmaW5lCglfX0dYWF9NRVJHRURfVFlQRUlORk9fTkFNRVMgdG8gMC4KCjIwMDQtMTAtMTcgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNmZ3J0bC5jIChydGxfdmVyaWZ5X2Zsb3dfaW5mb18xKTogV2hlbiBjaGVja2luZyBpbnNucyBpbiBhIGJiLAoJaGFuZGxlIGJhcnJpZXJzIGluIGEgYmIgYnkgY2hlY2tpbmcgdGhhdCBpdCBwb2ludHMgdG8gYSBOVUxMIGJiLgoJKiBlbWl0LXJ0bC5jIChlbWl0X2JhcnJpZXJfYmVmb3JlKTogU2V0IEJMT0NLX0ZPUl9JTlNOIHRvIE5VTEwuCgkoZW1pdF9iYXJyaWVyX2FmdGVyLCBlbWl0X2JhcnJpZXIpOiBEaXR0by4KCjIwMDQtMTAtMTggIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogZG9jL2V4dGVuZC50ZXhpIChBdHRyaWJ1dGUgU3ludGF4KTogQ2xhcmlmeSBkZXRhaWxzIG9mCglhdHRyaWJ1dGVzIG9uIHBhcmFtZXRlcnMuCgoyMDA0LTEwLTE3ICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAodHJlZV9zc2FfaXZfb3B0aW1pemUpOiBNb3ZlIGNoZWNraW5nIG91dCBvZgoJbG9vcC4KCjIwMDQtMTAtMTcgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVJldmVydDoKCTIwMDQtMTAtMTcgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogYy10eXBlY2suYyAoZGVmYXVsdF9mdW5jdGlvbl9hcnJheV9jb252ZXJzaW9uKTogQWx3YXlzIGNyZWF0ZQoJJmFbMF0gZm9yIGFycmF5IHR5cGVzLgoJKGJ1aWxkX3VuYXJ5X29wKTogRG8gbm90IGZvbGQgJmFbeF0gaW50byBhICsgeC4KCjIwMDQtMTAtMTcgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIG1pZGRsZS1lbmQvMTc5MjUKCSogY2ZnZXhwYW5kLmMgKGV4cGFuZF9naW1wbGVfY29uZF9leHByKTogRW1pdCBsaW5lIG5vdGVzIGZvciBuZXh0IGJhc2ljCglibG9jayBpZiB0aGVyZSBpcyBhIGdvdG8gd2l0aCBhIGxvY3VzLgoKMjAwNC0xMC0xNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy9lbGZvcy5oLCBjb25maWcvZ29mYXN0LmgsIGNvbmZpZy9pbnRlcml4LmgsCgljb25maWcvbmV0YnNkLmgsIGNvbmZpZy9zdnIzLmgsIGNvbmZpZy92eHdvcmtzLmgsCgljb25maWcvYWxwaGEvYWxwaGEtbW9kZXMuZGVmLCBjb25maWcvYWxwaGEvYWxwaGEtcHJvdG9zLmgsCgljb25maWcvYWxwaGEvZXY0Lm1kLCBjb25maWcvYWxwaGEvZXY1Lm1kLCBjb25maWcvYWxwaGEvZXY2Lm1kLAoJY29uZmlnL2FscGhhL25ldGJzZC5oLCBjb25maWcvYXJtL2FybS1tb2Rlcy5kZWYsCgljb25maWcvYXJtL3Vua25vd24tZWxmLmgsIGNvbmZpZy9jNHgvYzR4LW1vZGVzLmRlZiwKCWNvbmZpZy9jcmlzL2FvdXQuaCwgY29uZmlnL2Zydi9mcnYtbW9kZXMuZGVmLAoJY29uZmlnL2kzODYvYmVvcy1lbGYuaCwgY29uZmlnL2kzODYvZ2FzLmgsCgljb25maWcvaTM4Ni9pMzg2LWNvZmYuaCwgY29uZmlnL2kzODYvaTM4Ni1tb2Rlcy5kZWYsCgljb25maWcvaTM4Ni9saW51eC5oLCBjb25maWcvaTM4Ni9saW51eDY0LmgsCgljb25maWcvaTM4Ni9taW5ndzMyLmgsIGNvbmZpZy9pMzg2L25ldGJzZC1lbGYuaCwKCWNvbmZpZy9pMzg2L25ldGJzZDY0LmgsIGNvbmZpZy9pMzg2L3NjbzUuaCwKCWNvbmZpZy9pMzg2L3NvbDIuaCwgY29uZmlnL2kzODYvdXdpbi5oLCBjb25maWcvaTg2MC9pODYwLm1kLAoJY29uZmlnL2lhNjQvaWE2NC1tb2Rlcy5kZWYsIGNvbmZpZy9pYTY0L2l0YW5pdW0xLm1kLAoJY29uZmlnL2lhNjQvaXRhbml1bTIubWQsIGNvbmZpZy9tNjhrL202OGstbW9kZXMuZGVmLAoJY29uZmlnL21pcHMvbWlwcy1tb2Rlcy5kZWYsIGNvbmZpZy9taXBzL3NkYi5oLAoJY29uZmlnL21pcHMvdnIuaCwgY29uZmlnL21pcHMvdnh3b3Jrcy5oLAoJY29uZmlnL3BhL3BhLWhwdXgxMC5oLCBjb25maWcvcGEvcGEtaHB1eDExLmgsCgljb25maWcvcGEvcGEzMi1saW51eC5oLCBjb25maWcvcnM2MDAwLzQweC5tZCwKCWNvbmZpZy9yczYwMDAvNzQ1MC5tZCwgY29uZmlnL3JzNjAwMC84NTQwLm1kLAoJY29uZmlnL3JzNjAwMC9saW51eHNwZS5oLCBjb25maWcvcnM2MDAwL3Bvd2VyNC5tZCwKCWNvbmZpZy9yczYwMDAvcnM2MDAwLW1vZGVzLmRlZiwgY29uZmlnL3JzNjAwMC9ydGVtcy5oLAoJY29uZmlnL3JzNjAwMC9zcGUuaCwgY29uZmlnL3MzOTAvMjA2NC5tZCwgY29uZmlnL3MzOTAvbGludXguaCwKCWNvbmZpZy9zMzkwL3MzOTAtbW9kZXMuZGVmLCBjb25maWcvc2gvZWxmLmgsCgljb25maWcvc2gvc2gtbW9kZXMuZGVmLCBjb25maWcvc2gvc2g2NC5oLAoJY29uZmlnL3NwYXJjL3VsdHJhMV8yLm1kLCBjb25maWcvc3BhcmMvdWx0cmEzLm1kLAoJY29uZmlnL3N0b3JteTE2L3N0b3JteTE2Lm1kLCBjb25maWcvdjg1MC92ODUwLXByb3Rvcy5oLAoJY29uZmlnL3ZheC92YXgubWQ6IFVwZGF0ZSBjb3B5cmlnaHQuCgoyMDA0LTEwLTE3ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEpOiBSZW1vdmUgYW4gb2Jzb2xldGUgY29tbWVudC4KCjIwMDQtMTAtMTcgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogYy10eXBlY2suYyAoZGVmYXVsdF9mdW5jdGlvbl9hcnJheV9jb252ZXJzaW9uKTogQWx3YXlzIGNyZWF0ZQoJJmFbMF0gZm9yIGFycmF5IHR5cGVzLgoJKGJ1aWxkX3VuYXJ5X29wKTogRG8gbm90IGZvbGQgJmFbeF0gaW50byBhICsgeC4KCjIwMDQtMTAtMTcgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogcG9pbnRlci1zZXQuYyAoaGFzaDEpOiBVc2UgaW50ZWdlciBwYXJ0IG9mIDJeNjQgLyBwaGkKCWluc3RlYWQgMl4zMiAvIHBoaSBpZiBsb25nIGlzIDY0LWJpdC4KCjIwMDQtMTAtMTcgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYy1jb21tb24uaCAoZW51bSByaWQpOiBSZW1vdmUgUklEX1BUUkJBU0UsIFJJRF9QVFJFWFRFTlQgYW5kCglSSURfUFRSVkFMVUUuCgkqIGMtcGFyc2UuaW4gKFBUUl9WQUxVRSwgUFRSX0JBU0UsIFBUUl9FWFRFTlQpOiBSZW1vdmUgJXRva2VuCglkZWNsYXJhdGlvbnMuCgkocmVzd29yZHMpOiBSZW1vdmUgX19wdHJiYXNlLCBfX3B0cmJhc2VfXywgX19wdHJleHRlbnQsCglfX3B0cmV4dGVudF9fLCBfX3B0cnZhbHVlIGFuZCBfX3B0cnZhbHVlX18uCgkocmlkX3RvX3l5KTogUmVtb3ZlIFJJRF9QVFJCQVNFLCBSSURfUFRSRVhURU5UIGFuZCBSSURfUFRSVkFMVUUKCWVudHJpZXMuCgoyMDA0LTEwLTE2ICBEYWxlIEpvaGFubmVzZW4gIDxkYWxlakBhcHBsZS5jb20+CgoJKiBjLWNvbW1vbi5jIChjX2NvbW1vbl9nZXRfYWxpYXNfc2V0KTogIFVzZSBHR0MgZm9yIHR5cGVfaGFzaF90YWJsZS4KCjIwMDQtMTAtMTYgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTc3NjYKCSogYmFzaWMtYmxvY2suaCAoZW51bSBkb21fc3RhdGUpOiBET01fQ09OU19PSyByZW1vdmVkLgoJKGRvbV9pbmZvX2F2YWlsYWJsZV9wKTogRGVjbGFyZS4KCSogY2ZnaG9va3MuYyAoc3BsaXRfYmxvY2ssIG1ha2VfZm9yd2FyZGVyX2Jsb2NrKTogVXNlCglkb21faW5mb19hdmFpbGFibGVfcC4KCSogZG9taW5hbmNlLmMgKGNvbXB1dGVfZG9tX2Zhc3RfcXVlcnksIGNhbGN1bGF0ZV9kb21pbmFuY2VfaW5mbywKCWZyZWVfZG9taW5hbmNlX2luZm8sIHZlcmlmeV9kb21pbmF0b3JzKTogRGl0dG8uCgkoZG9tX2luZm9fYXZhaWxhYmxlX3ApOiBOZXcgZnVuY3Rpb24uCgkqIHRyZWUtY2ZnLmMgKGNsZWFudXBfY29udHJvbF9leHByX2dyYXBoKTogRnJlZSBkb21pbmFuY2UgaW5mb3JtYXRpb24uCgkodGhyZWFkX2p1bXBzKTogVXNlIGRvbV9pbmZvX2F2YWlsYWJsZV9wLgoJKiB0cmVlLWNvbXBsZXguYyAoZXhwYW5kX2NvbXBsZXhfZGl2X3dpZGUpOiBEaXR0by4KCSogdHJlZS1tdWRmbGFwLmMgKG1mX2J1aWxkX2NoZWNrX3N0YXRlbWVudF9mb3IpOiBEaXR0by4KCjIwMDQtMTAtMTYgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChzdHJ1Y3QgaXZvcHRzX2RhdGEpOiBOZXcgZmllbGQgaW1wb3J0YW50X2NhbmRpZGF0ZXMuCgkoZmluZF9iZXN0X2NhbmRpZGF0ZSk6IFRha2UgYWxzbyBpbXBvcnRhbnQgY2FuZGlkYXRlcyBpbnRvIGFjY291bnQuCgkoZmluZF9vcHRpbWFsX2l2X3NldCk6IEluaXRpYWxpemUgaW1wb3J0YW50X2NhbmRpZGF0ZXMgYml0bWFwLgoKMjAwNC0xMC0xNiAgWmRlbmVrIER2b3JhayAgPGR2b3Jha3pAc3VzZS5jej4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNzU2MAoJKiBwcmVkaWN0LmMgKHRyZWVfZXN0aW1hdGVfcHJvYmFiaWxpdHkpOiBNYXJrIGlycmVkdWNpYmxlCglsb29wcy4KCjIwMDQtMTAtMTYgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNzcyMwoJKiBjZmdjbGVhbnVwLmMgKG1lcmdlX21lbWF0dHJzKTogSGFuZGxlIGNhc2Ugd2hlbgoJTUVNX1NJWkUgPT0gTlVMTF9SVFguCgoyMDA0LTEwLTE1ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCgkqIHRvcGxldi5jIChkdW1wX2ZpbGVfbmFtZSk6IENoYW5nZSB0eXBlIHRvIGJlIGNvbnN0LgoKMjAwNC0xMC0xNSAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBjLXR5cGVjay5jIChidWlsZF9jb21wb3VuZF9leHByLCBidWlsZF9jX2Nhc3QpOiBEb24ndCB0cnkgdG8gdXNlCglub25fbHZhbHVlIHRvIHN0b3Agc29tZXRoaW5nIGJlaW5nIGEgbnVsbCBwb2ludGVyIGNvbnN0YW50LgoKMjAwNC0xMC0xNSAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuaCAoRlVOQ1RJT05fQVJHX1JFR05PX1ApOiBGUFJzIGFyZSBvbmx5CglhdmFpbGFibGUgZm9yIFRBUkdFVF9GUFJTLgoJKEZVTkNUSU9OX1ZBTFVFX1JFR05PX1ApOiBTYW1lLgoKMjAwNC0xMC0xNSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBkb2MvaW52b2tlLnRleGkgKFJTLzYwMDAgYW5kIFBvd2VyUEMgT3B0aW9ucyk6IERvY3VtZW50CgktbWFsdGl2ZWMgaW4gc2FtZSBzdHlsZSBhcyBvdGhlciBJU0Egb3B0aW9ucy4KCjIwMDQtMTAtMTUgIEpvbiBHcmltbSA8amdyaW1tMkB1cy5pYm0uY29tPgoKCSogY29uZmlnL2hvc3QtbGludXguYyAoVFJZX0VNUFRZX1ZNX1NQQUNFKTogQWRkIF9fcG93ZXJwY19fCglkZWZpbml0aW9uLgoKMjAwNC0xMC0xNSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGJpdG1hcC5jLCBiaXRtYXAuaCwgYnVpbHRpbi1hdHRycy5kZWYsIGNmZ2xheW91dC5oLAoJY29sbGVjdDIuaCwgY29uZmxpY3QuYywgY29yZXR5cGVzLmgsIGNvdmVyYWdlLmgsIGVycm9ycy5oLAoJZ2NjLmgsIGdjb3YtZHVtcC5jLCBnZW4tcHJvdG9zLmMsIGdlbmNoZWNrLmMsIGdlbmNvZGVzLmMsCglnZW5jb25zdGFudHMuYywgZ2VuZ2VucnRsLmMsIGdlbm1vZGVzLmMsIGdlbnBlZXAuYywKCWdlbnN1cHBvcnQuaCwgZ3JhcGguaCwgZ3Roci1nbmF0LmMsIGd0aHItZ25hdC5oLCBndGhyLXBvc2l4LmMsCglndGhyLXBvc2l4LmgsIGhhcmQtcmVnLXNldC5oLCBod2ludC5oLCBpbnRlZ3JhdGUuaCwgbGliZ2NjMi5jLAoJbGlzdHMuYywgbWFjaG1vZGUuZGVmLCBtaXBzLXRkdW1wLmMsIG9wdHMuaCwgcGFyYW1zLmMsCglwcmVkaWN0LmRlZiwgcHJlZGljdC5oLCBwcm90b2l6ZS5jLCByZWxvYWQuaCwgcmVzb3VyY2UuaCwKCXJ0bC1lcnJvci5jLCBzYml0bWFwLmMsIHNiaXRtYXAuaCwgc3JlYWwuYywgdGxpbmsuYywKCXRyZWUtZHVtcC5oLCB0cmVlLWlubGluZS5oLCB1bndpbmQtZHcyLWZkZS5jLCB1bndpbmQtZHcyLmMsCgl1bndpbmQtc2psai5jLCB2YWx1ZS1wcm9mLmg6IFVwZGF0ZSBjb3B5cmlnaHQuCgoyMDA0LTEwLTE1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogcG9pbnRlci1zZXQuYywgdHJlZS12ZWN0b3JpemVyLmM6IEZpeCBjb21tZW50IHR5cG9zLgoKMjAwNC0xMC0xNSAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLW9wdGltaXplLmMgKGV4ZWN1dGVfb25lX3Bhc3MpOiBTdG9wIHRpbWVyIHJpZ2h0IGFmdGVyCglleGVjdXRpbmcgdGhlIHBhc3MuCgoyMDA0LTEwLTE0ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglSZXZlcnQ6CgkyMDA0LTEwLTE0ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCVBSIG1pZGRsZS1lbmQvMTc5NjcKCVJldmVydDoKCQkqIHRyZWUtY2ZnLmMgKHJlbW92ZV91c2xlc3Nfc3RtdHNfY29uZCk6ICBGb2xkIHN0YXRlbWVudC4KCQkocmVtb3ZlX3VzZWxlc3Nfc3RtdHNfMSk6ICBGb2xkIHRyZWVzIHdlIGtub3cgaG93IHRvIGZvbGQuCgoyMDA0LTEwLTE0ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBjb25maWd1cmUuYWM6IEFkZCAubWFjaGluZSBwb3dlcjQgZGlyZWN0aXZlIHdoZW4gdGVzdGluZyBmb3IKCW1mY3IgZmllbGQuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDQtMTAtMTQgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY29uZmlnL2Rhcndpbi5oIChKVU1QX1RBQkxFU19JTl9URVhUX1NFQ1RJT04pOiBEb24ndCBkZWZpbmUuCgoyMDA0LTEwLTE0ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCgkqIHRyZWUtdmVjdG9yaXplci5jICh2ZWN0X3RyYW5zZm9ybV9sb29wKTogRGVjbGFyZSB2ZWN0b3JpemF0aW9uX2ZhY3RvcgoJYWx3YXlzLgoKMjAwNC0xMC0xNCAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKFJFR19DTEFTU19GUk9NX0xFVFRFUik6IFJldHVybiBOT19SRUdTCglmb3IgJ2YnIGlmICFUQVJHRVRfRlBSUy4KCjIwMDQtMTAtMTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgZGVidWcvMTQ0OTIKCSogZHdhcmYyb3V0LmMgKGxvY19kZXNjcmlwdG9yX2Zyb21fdHJlZV8xKTogSGFuZGxlIEZJWF8qX0VYUFIuCgoyMDA0LTEwLTE0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIGMvMTcwMjMKCSogYy1kZWNsLmMgKHN0b3JlX3Bhcm1fZGVjbHNfb2xkc3R5bGUpOiBDYXJlIGZvciBwYXJhbWV0ZXIgdHlwZQoJYXMgZXJyb3JfbWFya19ub2RlLgoJKiBjLXBhcnNlLmluIChjb21wc3RtdF9wcmltYXJ5X3N0YXJ0KTogQ2hlY2sgY3VyX3N0bXRfbGlzdCBub24tbnVsbAoJaW5zdGFlZCBvZiBjdXJyZW50X2Z1bmN0aW9uX2RlY2wgbm9uLW51bGwuCgoyMDA0LTEwLTE0ICBNYXR0IEF1c3Rlcm4gIDxhdXN0ZXJuQGFwcGxlLmNvbT4KCgkqIHBvaW50ZXItc2V0LmM6IE5ldyBmaWxlLCBzcGVjaWFsLXB1cnBvc2UgaGFzaCB0YWJsZS4KCSogcG9pbnRlci1zZXQuaDogTmV3IGZpbGUuCgkqIHRyZWUuaCAoc3RydWN0IHBvaW50ZXJfc2V0X3QpOiBEZWNsYXJlIGFzIG9wYXF1ZSB0eXBlLgoJKHRyZWVfd2Fsayk6IExhc3QgYXJndW1lbnQgaXMgcG9pbnRlcl9zZXRfdCogbm93LgoJKiB0cmVlLWlubGluZS5jIChXQUxLX1NVQlRSRUUpOiBDb252ZXJ0IGZyb20gaHRhYiB0byBwc2V0LgoJKHdhbGtfdHlwZV9maWVsZHMpOgoJKHdhbGtfdHJlZSk6IENvbnZlcnQgZnJvbSBodGFiX3QgdG8gcG9pbnRlcl9zZXRfdCBmb3Iga2VlcGluZwoJdHJhY2sgb2Ygd2hpY2ggbm9kZXMgaGF2ZSBhbHJlYWR5IGJlZW4gdmlzaXRlZC4KCSh3YWxrX3RyZWVfd2l0aG91dF9kdXBsaWNhdGVzKTogQ29udmVydCBmcm9tIGh0YWJfdCB0byBwb2ludGVyX3NldF90LgoJKiBjZ3JhcGh1bml0LmMgKGNncmFwaF9jcmVhdGVfZWRnZXMpOiBMaWtld2lzZS4KCShjZ3JhcGhfY2hhcmFjdGVyaXplX3N0YXRpY3NfbG9jYWwpOiBMaWtld2lzZS4KCSogdHJlZS1kZmEuYyAoY29sbGVjdF9kZmFfc3RhdHMpOiBMaWtld2lzZS4KCSogbGFuZ2hvb2tzLWRlZi5oIChsaGRfdHJlZV9pbmxpbmluZ193YWxrX3N1YnRyZWVzKTogTGFzdCBhcmcgaXMKCXBvaW50ZXJfc2V0X3QqIG5vdy4KCSogbGFuZ2hvb2tzLmMgKGxoZF90cmVlX2lubGluaW5nX3dhbGtfc3VidHJlZXMpOiBMaWtld2lzZS4KCSogbGFuZ2hvb2tzLmggKHN0cnVjdCBsYW5nX2hvb2tzX2Zvcl90cmVlX2lubGluaW5nKTogTGFzdCBhcmcgdHlwZQoJb2Ygd2Fsa19zdWJ0cmVlcyBpcyBwb2ludGVyX3NldF90KiBub3cuCgkqIE1ha2VmaWxlLmluIChPQkpTLWNvbW1vbik6IGFkZCBwb2ludGVyLXNldC5vCgkodHJlZS1pbmxpbmUubyk6IERlcGVuZHMgb24gcG9pbnRlci1zZXQuaAoJKHRyZWUtZGZhLm8pOiBMaWtld2lzZQoJKGNncmFwaHVuaXQubyk6IExpa2V3aXNlCgoyMDA0LTEwLTE0ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLmggKEFTTV9TUEVDKTogRGVsZXRlLgoJKFRBUkdFVF9BU01fRklMRV9TVEFSVCk6IERlZmluZS4KCSogY29uZmlnL2Rhcndpbi5oIChBU01fU1BFQyk6IERlZmluZS4KCSogY29uZmlnL3JzNjAwMC90LWRhcndpbiAoVEFSR0VUX0xJQkdDQzJfQ0ZMQUdTKTogRG9uJ3Qgc3VwcGx5CgktbWxvbmctZG91YmxlLTEyOCwgaXQncyB0aGUgZGVmYXVsdC4gIFVwZGF0ZSBjb21tZW50IGFib3V0IHJlYXNvbgoJZm9yIGZvcmNlX2NwdXN1YnR5cGVfQUxMLgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi12ZWNzYXZlLmFzbTogU3VwcGx5IC5tYWNoaW5lLgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi13b3JsZC5hc206IExpa2V3aXNlLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfZGFyd2luX2ZpbGVfc3RhcnQpOiBOZXcuCgkoc3ltYm9saWNfb3BlcmFuZCk6IERlbGV0ZSAjaWYgMGVkIGNvZGUuCgoyMDA0LTEwLTE0ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCgkqIHN0bXQuYyAoYWRkX2Nhc2Vfbm9kZSk6IE1ha2Ugc3VyZSB0aGF0IHdlIGhhdmUgaW50ZWdlcgoJY29uc3RhbnQgYmVmb3JlIGNhbGxpbmcgdHJlZV9pbnRfY3N0X2NvbXBhcmUuCgoyMDA0LTEwLTE0ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiBtaWRkbGUtZW5kLzE3OTY3CglSZXZlcnQ6CgkJKiB0cmVlLWNmZy5jIChyZW1vdmVfdXNsZXNzX3N0bXRzX2NvbmQpOiAgRm9sZCBzdGF0ZW1lbnQuCgkJKHJlbW92ZV91c2VsZXNzX3N0bXRzXzEpOiAgRm9sZCB0cmVlcyB3ZSBrbm93IGhvdyB0byBmb2xkLgoKMjAwNC0xMC0xNCAgSm9zZXBoIFMuIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvcnM2MDAwL2VhYmlzcGUuaCAoU1VCU1VCVEFSR0VUX09WRVJSSURFX09QVElPTlMpLAoJY29uZmlnL3JzNjAwMC9saW51eHNwZS5oIChTVUJTVUJUQVJHRVRfT1ZFUlJJREVfT1BUSU9OUyk6IERpc2FsbG93CgktbTY0LgoKMjAwNC0xMC0xNCAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogcmVsb2FkLmMgKGZpbmRfcmVsb2Fkcyk6IFdoZW4gcmVsb2FkaW5nIGEgUExVUyB3aXRoIGNvbnN0YW50CglvcGVyYW5kLCBtYWtlIHN1cmUgdGhlIGNvbnN0YW50IGlzIHB1c2hlZCB0byB0aGUgY29uc3RhbnQgcG9vbAoJaWYgcmVxdWlyZWQuCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoczM5MF9zZWNvbmRhcnlfaW5wdXRfcmVsb2FkX2NsYXNzKTogUmVtb3ZlCglyZWxvYWQgYnVnIHdvcmthcm91bmQuCgkoczM5MF9leHBhbmRfcGx1c19vcGVyYW5kKTogTGlrZXdpc2UuCgoyMDA0LTEwLTE0ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBvcHRzLmMgKGNvbW1vbl9oYW5kbGVfb3B0aW9uKTogRG8gbm90IGVuYWJsZQoJZmxhZ19zcGVjdWxhdGl2ZV9wcmVmZXRjaGluZyBmb3IgLWZwcm9maWxlLWdlbmVyYXRlL3VzZS4KCjIwMDQtMTAtMTQgIERldmFuZyBQYXRlbCAgPGRwYXRlbEBhcHBsZS5jb20+CgoJUFIgMTc2MzUKCSogdHJlZS1pZi1jb252LmMgKHByb2Nlc3NfcGhpX25vZGVzKTogUHJvY2VzcyBsYXRjaCBibG9jay4KCShjb21iaW5lX2Jsb2Nrcyk6IFByb2Nlc3MgbGF0Y2ggYmxvY2sgYW5kIHVwZGF0ZSBsb29wIHN0cnVjdHVyZS4KCjIwMDQtMTAtMTQgIE9sZ2EgR29sb3ZhbmV2c2t5ICA8b2xnYUBpbC5pYm0uY29tPgoKCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfZ2VuZXJhdGVfdG1wc19vbl9wcmVoZWFkZXIpOgoJKHZlY3RfdXBkYXRlX2l2c19hZnRlcl92ZWN0b3JpemVyKToKCSh2ZWN0X3RyYW5zZm9ybV9mb3JfdW5rbm93bl9sb29wX2JvdW5kKToKCSh0cmVlX2R1cGxpY2F0ZV9sb29wX3RvX2VkZ2UpOgoJKGFsbG9jYXRlX25ld19uYW1lcyk6CgkocmVuYW1lX3VzZV9vcCk6CgkocmVuYW1lX2RlZl9vcCk6CgkocmVuYW1lX3ZhcmlhYmxlc19pbl9iYik6CgkoZnJlZV9uZXdfbmFtZXMpOgoJKHJlbmFtZV92YXJpYWJsZXNfaW5fbG9vcCk6CgkoY29weV9waGlfbm9kZXMpOgoJKHVwZGF0ZV9waGlzX2Zvcl9kdXBsaWNhdGVfbG9vcCk6CgkodXBkYXRlX3BoaV9ub2Rlc19mb3JfZ3VhcmQpOgoJKG1ha2VfbG9vcF9pdGVyYXRlX250aW1lcyk6CgkodHJlZV9kdXBsaWNhdGVfbG9vcF90b19lZGdlX2NmZyk6CgkoYWRkX2xvb3BfZ3VhcmQpOgoJKHZlY3RfYW5hbHl6ZV9sb29wX3dpdGhfc3ltYm9saWNfbnVtX29mX2l0ZXJzKToKCSh2ZXJpZnlfbG9vcF9mb3JfZHVwbGljYXRpb24pOgoJKHZlY3RfZ2VuX25pdGVyc19mb3JfcHJvbG9nX2xvb3ApOgoJKHZlY3RfdXBkYXRlX25pdGVyc19hZnRlcl9wZWVsaW5nKToKCSh2ZWN0X3VwZGF0ZV9pbml0c19vZl9kcik6CgkodmVjdF91cGRhdGVfaW5pdHNfb2ZfZHJzKToKCSh2ZWN0X2J1aWxkX2xvb3Bfbml0ZXJzKToKCSh2ZWN0X2RvX3BlZWxpbmdfZm9yX2FsaWdubWVudCk6IE5ldyBmdW5jdGlvbnMuCgkodmVjdF90cmFuc2Zvcm1fbG9vcCk6IEFkZCB1bmtub3duIGFuZCBrbm93biBidXQgaW5kaXZpc2libGUgbG9vcAoJYm91bmQgc3VwcG9ydDsgYWRkIHBlZWxpbmcgZm9yIHVuYWxpZ25tZW50IHN1cHBvcnQuCgkodmVjdF9hbmFseXplX2xvb3BfZm9ybSk6IFN1cHBvcnQgc3ltYm9saWMgbnVtYmVyIG9mIGl0ZXJhdGlvbnMuCgkodmVjdF90cmFuc2Zvcm1fbG9vcF9ib3VuZCk6IE5ldyBpbnB1dCBwYXJhbWV0ZXIuCgkodmVjdF9nZXRfbG9vcF9uaXRlcnMpOiBDaGFuZ2UgaW5wdXQgcGFyYW1ldGVyIHR5cGUuCgkobmV3X2xvb3BfdmVjX2luZm8pOiBMT09QX1ZJTkZPX05JVEVSUyBpcyB0cmVlIG5vdy4KCSh2ZWN0b3JpemFibGVfc3RvcmUpOiBBbGxvdyB1bmFsaWduZWQgYWNjZXNzLgoJKHZlY3Rvcml6ZV9sb29wcyk6IEFkZCByZXdyaXRlX2ludG9fbG9vcF9jbG9zZWRfc3NhLgoJKHZlY3RfYW5hbHl6ZV9kYXRhX3JlZnNfYWxpZ25tZW50KTogQWxsb3dlZCBvbmUgdW5hbGlnbmVkCglzdG9yZS4KCSogdHJlZS12ZWN0b3JpemVyLmggKExPT1BfVklORk9fTklURVJTX0tOT1dOX1ApOiBSZWRlZmluZWQKCXRvIHVzZSB0cmVlLgoJKExPT1BfVklORk9fSU5UX05JVEVSUyk6IE5ldyBtYWNyby4KCShNQVhfTlVNQkVSX09GX1VOQUxJR05FRF9EQVRBX1JFRlMpOiBOZXcgZGVmaW5lLgoJKGRvX3BlZWxpbmdfZm9yX2FsaWdubWVudCk6CgkodW5hbGlnbmVkX2Rycyk6IE5ldyBtZW1iZXJzIG9mIF9sb29wX3ZlY19pbmZvLgoJKExPT1BfRE9fUEVFTElOR19GT1JfQUxJR05NRU5UKTogTmV3IG1hY3JvLgoKMjAwNC0xMC0xNCAgUmFuaml0IE1hdGhldyAgPHJtYXRoZXdAaG90bWFpbC5jb20+CgoJKiB0cmVlLmggKFRSRUVfU1RSSU5HX1BPSU5URVIpOiBXcmFwIGluICJjb25zdCBjaGFyICoiLgoJKHN0cnVjdCB0cmVlX3N0cmluZyk6IFJlbW92ZSAiY29uc3QiIHF1YWxpZmllciBmb3IgInN0ciIuCgoyMDA0LTEwLTE0ICBJcmEgUm9zZW4gIDxpcmFyQGlsLmlibS5jb20+CgoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAodmVjdF9hbmFseXplX2RhdGFfcmVmcyk6IENhbGwKCXZlY3RfZ2V0X2Jhc2VfYW5kX2JpdF9vZmZzZXQgdG8gZ2V0IG1lbW9yeSB0YWcgZm9yIGFycmF5IHJlZi4KCSh2ZWN0X2NyZWF0ZV9hZGRyX2Jhc2VfZm9yX3ZlY3Rvcl9yZWYpOiBSZW1vdmUgcmVkdW5kYW50IGNoZWNrcy4KCjIwMDQtMTAtMTQgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogY29uZmlndXJlLmFjOiBVc2UgJExOX1MgZm9yIGNyZWF0aW5nIHN5bWxpbmtzIChub3QgJExOKS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNC0xMC0xNCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogZG9jL2luc3RhbGwudGV4aSAoKi0qLXNvbGFyaXMyKik6IFVwZGF0ZSB3aXRoIGluZm8gYWJvdXQga2VybmVsCglwYXRjaGVzIHRvIHNvbHZlIHNwdXJpb3VzIHRlc3RzdWl0ZSBmYWlsdXJlcy4KCjIwMDQtMTAtMTQgIERvcml0IE5haXNobG9zICA8ZG9yaXRAaWwuYmltLmNvbT4KCgkqIHRyZWUtdmVjdG9yaXplci5jIChnZXRfdmVjdHlwZV9mb3Jfc2NhbGFyX3R5cGUpOiBBZGRlZCBkZWJ1ZyBwcmlub3V0cy4KCUFkZGVkIGNoZWNrIHRoYXQgdmVjdHlwZSBpcyBWRUNUT1JfTU9ERV9QLCBpbnN0ZWFkIG9mIGNoZWNrIGZvciBCTEttb2RlLgoJKHZlY3RfYW5hbHl6ZV9vcGVyYXRpb25zKTogTWFrZSBzdXJlIHRoZSB2ZWN0b3JpemF0aW9uIGZhY3RvciA+IDEuIEFkZAoJZ2NjX2Fzc2VydCB1bmRlciBFTkFCTEVfQ0hFQ0tJTkcuCgkodmVjdG9yaXphYmxlX29wZXJhdGlvbik6IFJlbW92ZSBjaGVjayBmb3IgVkVDVE9SX01PREVfUCAobW92ZWQgdG8KCWdldF92ZWN0eXBlX2Zvcl9zY2FsYXJfdHlwZSkuCgoJKHZlY3RfZ2V0X3ZlY19kZWZfZm9yX29wZXJhbmQpOiBSZW1vdmUgcmVkdW5kYW50IHZhcmlhYmxlcy4KCSh2ZWN0X3RyYW5zZm9ybV9sb29wKTogTGlrZXdpc2UuCgoyMDA0LTEwLTE0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvYXJtL2FybS5oIChDT05ESVRJT05BTF9SRUdJU1RFUl9VU0FHRSk6IE1ha2UgcjExIGZpeGVkIGFuZAoJZ2xvYmFsIGZvciAtbWNhbGxlci1zdXBlci1pbnRlcndvcmtpbmcuCgkoQ0FMTEVSX0lOVEVSV09SS0lOR19TTE9UX1NJWkUpOiBOZXcgbWFjcm8uCgkqIGNvbmZpZy9hcm0vYXJtLmMgKHRodW1iX2NvbXB1dGVfc2F2ZV9yZWdfbWFzayk6IFNhdmUgcjExIGlmCglDQUxMRVJfSU5URVJXT1JLSU5HX1NMT1RfU0laRSBpcyBub256ZXJvIGFuZCB0aGUgZnVuY3Rpb24gZG9lcwoJbm90IG5lZWQgYSBmcmFtZSBwb2ludGVyLgoJKGFybV9nZXRfZnJhbWVfb2Zmc2V0cyk6IEFkZCBDQUxMRVJfSU5URVJXT1JLSU5HX1NMT1RfU0laRSBieXRlcyB0bwoJdGhlIHNvZnQgZnJhbWUgcG9pbnRlciBvZmZzZXQuCgkodGh1bWJfZXhwYW5kX3Byb2xvZ3VlKTogU2V0IHVwIHIxMSBmb3IgLW1jYWxsZXItc3VwZXItaW50ZXJ3b3JraW5nLgoJKiBjb25maWcvYXJtL2FybS5tZCAoKmNhbGxfcmVnX3RodW1iLCAqY2FsbF92YWx1ZV9yZWdfdGh1bWIpOiBVc2UKCV9pbnRlcndvcmtfe3I3LHIxMX1fY2FsbF92aWFfck4gaWYgc29tZSBhcmd1bWVudHMgYXJlIHBhc3NlZCBvbgoJdGhlIHN0YWNrLiAgVXNlIGZyYW1lX3BvaW50ZXJfbmVlZGVkIHRvIGNob29zZSBiZXR3ZWVuIHRoZW0uCgkqIGNvbmZpZy9hcm0vbGliMWZ1bmNzLmFzbSAoX2FybV9yZXR1cm5fe3I3LHIxMX0pOiBOZXcgZnVuY3Rpb25zLgoJKGludGVyd29ya193aXRoX2ZyYW1lKTogTmV3IG1hY3JvLgoJKGludGVyd29yayk6IEFkZCBfaW50ZXJ3b3JrX3tyNyxyMTF9X2NhbGxfdmlhX3JOKCkuCgoyMDA0LTEwLTE0ICBCZW4gRWxsaXN0b24gIDxiamVAYXUuaWJtLmNvbT4KCglQUiBvdGhlci8xNzkwMAoJKiBkaWFnbm9zdGljLmMgKHRyaW1fZmlsZW5hbWUpOiBGaXggbG9naWMgYnVnIGluIHdhbGtpbmcgYmFja3dhcmRzCgl1cCB0aGUgZmlsZW5hbWUgbG9va2luZyBmb3IgYSBwcmV2aW91cyBkaXJlY3Rvcnkgc2VwYXJhdG9yLgoKMjAwNC0xMC0xNCAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBjLXRyZWUuaCAoZW51bSBjX3R5cGVzcGVjX2tpbmQsIHN0cnVjdCBjX3R5cGVzcGVjLAoJcGFyc2VyX3hyZWZfdGFnKTogTmV3LgoJKHN0cnVjdCBjX2RlY2xzcGVjcyk6IEFkZCB0YWdfZGVmaW5lZF9wLiAgQWRqdXN0IGRlZmluaXRpb24gb2YKCXR5cGVkZWZfcC4KCShkZWNsc3BlY3NfYWRkX3R5cGUpOiBBZGp1c3QgcHJvdG90eXBlcy4KCSogYy1wYXJzZS5pbiAoJXVuaW9uKTogQWRkIHRzdHlwZS4KCSh0eXBlc3BlY19ub25hdHRyLCB0eXBlc3BlY19hdHRyLCB0eXBlc3BlY19yZXNlcnZlZF9ub25hdHRyLAoJdHlwZXNwZWNfcmVzZXJ2ZWRfYXR0ciwgdHlwZXNwZWNfbm9ucmVzZXJ2ZWRfbm9uYXR0ciwKCXN0cnVjdHNwX2F0dHIsIHN0cnVjdHNwX25vbmF0dHIpOiBDaGFuZ2UgdG8gdHN0eXBlLiAgVXBkYXRlCglhY3Rpb25zLgoJKiBjLWRlY2wuYyAoYnVpbGRfbnVsbF9kZWNsc3BlY3MpOiBJbml0aWFsaXplIHRhZ19kZWZpbmVkX3AuCgkoZGVjbHNwZWNzX2FkZF90eXBlKTogVXBkYXRlIHRvIHRha2Ugc3RydWN0IGNfdHlwZXNwZWMgYXJndW1lbnQuCglTZXQgdGFnX2RlZmluZWRfcCBhbmQgdHlwZWRlZl9wIGFzIGFwcHJvcHJpYXRlLgoJKHhyZWZfdGFnKTogUmVuYW1lIHRvIHBhcnNlcl94cmVmX3RhZyBhbmQgcmVwbGFjZSBieSB3cmFwcGVyLgoJVXBkYXRlIHRvIHJldHVybiBzdHJ1Y3QgY190eXBlc3BlYy4KCShzaGFkb3dfdGFnX3dhcm5lZCk6IERvbid0IGxldCBlbXB0eSBkZWNsYXJhdGlvbnMgd2l0aCBxdWFsaWZpZXJzCglvciBzdG9yYWdlIGNsYXNzIHNwZWNpZmllcnMgcmVkZWNsYXJlIGEgdGFnIGlmIGEgcHJldmlvdXMKCWRlY2xhcmF0aW9uIGlzIHZpc2libGUuCgoyMDA0LTEwLTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIGRlYnVnLzE1ODYwCgkqIGR3YXJmMm91dC5jIChydGxfZm9yX2RlY2xfbG9jYXRpb24pOiBBcHBseSBiaWctZW5kaWFuIGNvcnJlY3Rpb24KCWZvciBERUNMX0lOQ09NSU5HX1JUTC4KCjIwMDQtMTAtMTQgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCVBSIHRhcmdldC8xNzk4NAoJKiBjb25maWcvY3Jpcy9jcmlzLm1kIChhc3JhbmRiLCBhc3JhbmR3LCBsc3JhbmRiLCBsc3JhbmR3KTogQXBwbHkKCXRydW5jX2ludF9mb3JfbW9kZSBmb3IgY29uc3RhbnRzIHVzZWQgaW4gc2hvcnRlbmVkIG1vZGUuCgoyMDA0LTEwLTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIGMvMTczODQKCSogYy1jb21tb24uYyAoaGFuZGxlX21vZGVfYXR0cmlidXRlKTogRGlzYWxsb3cgbW9kZSBjaGFuZ2VzIHRoYXQKCWFsdGVyIHRoZSBDT0RFIG9mIHRoZSB0b3AtbGV2ZWwgdHlwZS4KCgkqIGNydHN0dWZmLmMgKF9fRlJBTUVfRU5EX18pOiBSZW1vdmUgbW9kZSBhdHRyaWJ1dGUuICBGaW5kIDMyLWJpdAoJaW50ZWdlciBmcm9tIGludGVybmFsIGxpbWl0cyBtYWNyb3MuCgkqIGNvbmZpZy9pMzg2L21tM2Rub3cuaCAoX192MnNmKTogRml4IGJhc2UgdHlwZS4KCjIwMDQtMTAtMTMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgZGVidWcvMTM4NDEKCSogZnVuY3Rpb24uYyAoaW5zdGFudGlhdGVfZGVjbCk6IFJlY3Vyc2UgZm9yIENPTkNBVC4KCjIwMDQtMTAtMTMgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChhbmRzaTMpOiBBZGQgYXR0cmlidXRlICJjb21wYXJlIiBmb3IKCWFuZGkuL2FuZGlzLgoJKGFuZGRpMyk6IFNhbWUuCgkoZXh0enZkaV9pbnRlcm5hbDEpOiBBZGQgYXR0cmlidXRlICJjb21wYXJlIi4KCShleHR6dmRpX2ludGVybmFsMik6IFNhbWUuCgoyMDA0LTEwLTEyICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CgoJKiBkb2MvbWQudGV4aSAoSW5zbiBDYW5vbmljYWxpemF0aW9ucyk6IFJlbW92ZWQgZXh0cmFuZW91cyBxdW90ZS4KCjIwMDQtMTAtMTMgIERhbGUgSm9oYW5uZXNlbiAgPGRhbGVqQGFwcGxlLmNvbT4KCgkqIGRvYy9leHRlbmQudGV4aSAoRXh0ZW5kZWQgQXNtKTogIFJld3JpdGUgYXNtIHZvbGF0aWxlIGRlc2NyaXB0aW9uLgoKMjAwNC0xMC0xMyAgRnJhbmsgQ2guIEVpZ2xlciAgPGZjaGVAcmVkaGF0LmNvbT4KCgkqIHRvcGxldi5jIChjb21waWxlX2ZpbGUpOiBDYWxsIG11ZGZsYXBfZmluaXNoX2ZpbGUgZnJvbSBoZXJlIC4uLgoJKiBjLWRlY2wuYyAoY193cml0ZV9nbG9iYWxfZGVjbGFyYXRpb25zKTogLi4uIGluc3RlYWQgb2YgaGVyZSAuLi4KCSogY3AvZGVjbC5jIChjcF9maW5pc2hfZmlsZSk6IC4uLiBhbmQgaGVyZS4KCSogdHJlZS1tdWRmbGFwLmMgKG11ZGZsYXBfZW5xdWV1ZV9kZWNsKTogUmV3b3JkIGEgd2FybmluZyBtZXNzYWdlLgoKMjAwNC0xMC0xMyAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiB0cmVlLXNzYS1kb20uYyAocmVjb3JkX3JhbmdlKTogRnJlZSB0aGUgZWxlbWVudCBpZiB3ZSBhcmUgbm90Cglnb2luZyB0byB1c2UgaXQuCgoyMDA0LTEwLTEzICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CgoJUFIgamF2YS8xNTU3ODoKCSogZ2NjLmMgKG9wdGlvbl9tYXApOiBBZGRlZCAtLWV4dGRpcnMgYW5kIC0tZW5jb2RpbmcuCgoyMDA0LTEwLTEzICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIHRhcmdldC8xNDQ1NAoJKiBjb25maWcvc3BhcmMvc3BhcmMuYyAoVEFSR0VUX0FTTV9DQU5fT1VUUFVUX01JX1RIVU5LKTogU2V0IHRvCglzcGFyY19jYW5fb3V0cHV0X21pX3RodW5rLgoJKHNwYXJjX291dHB1dF9taV90aHVuayk6IFNpbXBsaWZ5IGhhbmRsaW5nIG9mIGRlbHRhIG9mZnNldC4gIEFkZAoJaGFuZGxpbmcgb2YgdmNhbGwgb2Zmc2V0LgoJKHNwYXJjX2Nhbl9vdXRwdXRfbWlfdGh1bmspOiBOZXcgcHJlZGljYXRlLgoJKiBkb2MvdG0udGV4aSAoVEFSR0VUX0FTTV9PVVRQVVRfTUlfVEhVTkspOiBEb2N1bWVudCBWQ0FMTF9PRkZTRVQuCgkoVEFSR0VUX0FTTV9PVVRQVVRfTUlfVkNBTExfVEhVTkspOiBEZWxldGUuCgkoVEFSR0VUX0FTTV9DQU5fT1VUUFVUX01JX1RIVU5LKTogTmV3IHRhcmdldCBob29rLgoKCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKGVtaXRfYW5kX3ByZXNlcnZlKTogUHJlc2VydmUgc3RhY2sgYWxpZ25tZW50LgoKCSogY29uZmlnL3NwYXJjL3NwYXJjLm1kIChtb3ZkaSk6IFJlbW92ZSByZWR1bmRhbnQgdGVzdC4KCjIwMDQtMTAtMTMgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiB0cmVlLWR1bXAuYyAoZHVtcF9vcHRpb25zKTogUmVtb3ZlIFRERl9UUkVFLCBUREZfUlRMLAoJVERGX0lQQSBmcm9tIC1mZHVtcC10cmVlLSotYWxsLgoKMjAwNC0xMC0xMyAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9hcm0vYXJtLXByb3Rvcy5oIChhcm1fbG9hZF9waWNfcmVnaXN0ZXIpOiBVcGRhdGUgcHJvdG90eXBlLgoJKiBjb25maWcvYXJtL2FybS5jICh0aHVtYl9maW5kX3dvcmtfcmVnaXN0ZXIpOiBVcGRhdGUgY29tbWVudHMuCgkoYXJtX2xvYWRfcGljX3JlZ2lzdGVyKTogQWRkIGFyZ3VtZW50IGZvciBzY3JhdGNoIHJlZ2lzdGVyLgoJKGFybV9leHBhbmRfcHJvbG9ndWUsIHRodW1iX2V4cGFuZF9wcm9sb2d1ZSk6IFBhc3MgZXh0cmEgYXJndW1lbnQuCgkqIGNvbmZpZy9hcm0vYXJtLm1kIChidWlsdGluX3NldGptcF9yZWNlaXZlcik6IERpdHRvLgoKMjAwNC0xMC0xMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtZGF0YS1yZWYuYzogRml4IGNvbW1lbnQgdHlwb3MuCgoyMDA0LTEwLTEzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCSAgICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE3NzI0CgkqIHRyZWUtY2ZnLmMgKHRyZWVfcHVyZ2VfZGVhZF9laF9lZGdlcyk6IEZyZWUgZG9taW5hbmNlIGluZm8uCgoyMDA0LTEwLTEzICBEb3JpdCBOYWlzaGxvcyAgPGRvcml0QGlsLmlibS5jb20+CgoJKiByczYwMDAuYyAoYWx0aXZlY19idWlsdGluX21hc2tfZm9yX2xvYWQpOiBNYWRlIHN0YXRpYyBHVFkoKCkpLgoJKGFsdGl2ZWNfYnVpbHRpbl9tYXNrX2Zvcl9zdG9yZSk6IExpa2V3aXNlLgoJKGFsdGl2ZWNfaW5pdF9idWlsdGlucyk6IFVzZSBsYW5nX2hvb2tzLmJ1aWx0aW5fZnVuY3Rpb24gdG8KCWNyZWF0ZSB0aGUgZGVjbHMgZm9yIGJ1aWx0aW5fYWx0aXZlY19tYXNrX2Zvcl9sb2FkL3N0b3JlLgoKMjAwNC0xMC0xMyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9jNHgvYzR4LmM6IFJlbW92ZSBpbmNsdXNpb24gb2YgbG9vcC5oLgoKMjAwNC0xMC0xMiAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiBiYXNpYy1ibG9jay5oIChlZGdlX2l0ZXJhdG9yKTogS2VlcCB0aGUgYWRkcmVzcyBvZiBWRUMoZWRnZSkgKi4KCShlaV9jb250YWluZXIpOiBOZXc7IHJlbmFtZWQuCgkoZWlfc3RhcnQsIGVpX2xhc3QpOiBOZXcgbWFjcm9zLgoJKGVpX3N0YXJ0XzEsIGVpX2xhc3RfMSk6IFJlbmFtZWQgZnJvbSBlaV9zdGFydC4KCShlaV9sYXN0XzEsIGVpX2VuZF9wKTogVXNlIGVpX2NvbnRhaW5lcigpIHdoZXJlIGFwcGxpY2FibGUuCgkoZWlfb25lX2JlZm9yZV9lbmRfcCwgZWlfbmV4dCwgZWlfZWRnZSk6IExpa2V3aXNlLgoJKiBnY3NlLmMgKHJlbW92ZV9yZWFjaGFibGVfZXF1aXZfbm90ZXMpOiBVc2UgZWlfY29udGFpbmVyKCkuCgoyMDA0LTEwLTExICBTZWJhc3RpYW4gUG9wICA8cG9wQGNyaS5lbnNtcC5mcj4KCgkqIE1ha2VmaWxlLmluICh0cmVlLXNzYS1sb29wLW5pdGVyLm8pOiBEZXBlbmRzIG9uIHRyZWUtZGF0YS1yZWYuaC4KCSogY2ZnbG9vcC5jIChpbml0aWFsaXplX2xvb3BzX3BhcmFsbGVsX3ApOiBOZXcuCgkoZmxvd19sb29wc19maW5kKTogSW5pdGlhbGl6ZSB0aGUgcGFyYWxsZWxfcCBmaWVsZCB0byB0cnVlIGZvciBhbGwKCXRoZSBsb29wcy4KCSogdHJlZS1zc2EtbG9vcC1uaXRlci5jOiBJbmNsdWRlICJ0cmVlLWRhdGEtcmVmLmgiLgoJKGVzdGltYXRlX251bWJlcnNfb2ZfaXRlcmF0aW9uc19sb29wKTogSW5mZXJzIHRoZSBsb29wIGJvdW5kcyBmcm9tCgl0aGUgc2l6ZSBvZiB0aGUgZGF0YSBhY2Nlc3NlZCBpbiB0aGUgbG9vcC4KCShzdHJ1Y3QgbmJfaXRlcl9ib3VuZCk6IE1vdmVkLi4uCgkqIGNmZ2xvb3AuaCAoc3RydWN0IG5iX2l0ZXJfYm91bmQpOiAuLi4gaGVyZS4KCShlc3RpbWF0ZWRfbmJfaXRlcmF0aW9ucywgcGFyYWxsZWxfcCk6IE5ldyBmaWVsZHMgaW4gc3RydWN0IGxvb3AuCgkocmVjb3JkX2VzdGltYXRlKTogRGVjbGFyZSBleHRlcm4gaGVyZS4KCSogdHJlZS1jaHJlYy5jOiBGaXggY29tbWVudHMuCgkobmJfdmFyc19pbl9jaHJlYyk6IE5ldyBmdW5jdGlvbi4KCSogdHJlZS1jaHJlYy5oIChuYl92YXJzX2luX2NocmVjKTogRGVjbGFyZWQgaGVyZS4KCSogdHJlZS1kYXRhLXJlZi5jOiBEb24ndCBpbmNsdWRlIGxhbWJkYS5oLCB0aGF0IGlzIGFscmVhZHkgaW5jbHVkZWQKCWluIHRyZWUtZGF0YS1yZWYuaC4KCSh0cmVlX2ZvbGRfZGl2aWRlc19wKTogRG9uJ3QgY2hlY2sgZm9yIGludGVnZXJfb25lcC4KCSh0cmVlX2ZvbGRfYmV6b3V0KTogUmVtb3ZlZC4KCShnY2QpOiBOZXcgc3RhdGljIGR1cGxpY2F0ZWQgZnVuY3Rpb24uCgkoaW50X2RpdmlkZXNfcCwgZHVtcF9zdWJzY3JpcHQpOiBOZXcuCgkoZHVtcF9kYXRhX2RlcGVuZGVuY2VfcmVsYXRpb24pOiBVc2UgZHVtcF9zdWJzY3JpcHQuCgkoZHVtcF9kaXN0X2Rpcl92ZWN0b3JzLCBkdW1wX2RkcnMsIGNvbXB1dGVfZXN0aW1hdGVkX25iX2l0ZXJhdGlvbnMsCgllc3RpbWF0ZV9uaXRlcl9mcm9tX3NpemVfb2ZfZGF0YSk6IE5ldy4KCShhbmFseXplX2FycmF5X2luZGV4ZXMsIGFuYWx5emVfYXJyYXkpOiBDYWxsCgllc3RpbWF0ZV9uaXRlcl9mcm9tX3NpemVfb2ZfZGF0YSBkdXJpbmcJdGhlIGRldGVjdGlvbiBvZiBhcnJheQoJcmVmZXJlbmNlcy4gIFBhc3MgaW4gYSBwb2ludGVyIHRvIHRoZSBzdGF0ZW1lbnQgdGhhdCBjb250YWlucyB0aGUKCWFycmF5IHJlZmVyZW5jZS4KCShhbGxfY2hyZWNzX2VxdWFsX3ApOiBOZXcuCgkoY29tcHV0ZV9kaXN0YW5jZV92ZWN0b3IpOiBSZW5hbWVkIGNvbXB1dGVfc3Vic2NyaXB0X2Rpc3RhbmNlLgoJRGVhbCB3aXRoIG11bHRpdmFyaWF0ZSBjb25mbGljdCBmdW5jdGlvbnMuCgkoaW5pdGlhbGl6ZV9kYXRhX2RlcGVuZGVuY2VfcmVsYXRpb24pOiBJbml0aWFsaXplIEREUl9BRkZJTkVfUCwKCUREUl9TSVpFX1ZFQ1QsIEREUl9ESVNUX1ZFQ1QsIGFuZCBERFJfRElSX1ZFQ1QuCgkobm9uX2FmZmluZV9kZXBlbmRlbmNlX3JlbGF0aW9uKTogTmV3LgoJKGFuYWx5emVfeml2X3N1YnNjcmlwdCwgYW5hbHl6ZV9zaXZfc3Vic2NyaXB0X2NzdF9hZmZpbmUsCglhbmFseXplX3Npdl9zdWJzY3JpcHQsIGFuYWx5emVfbWl2X3N1YnNjcmlwdCwKCWFuYWx5emVfb3ZlcmxhcHBpbmdfaXRlcmF0aW9ucywgc3Vic2NyaXB0X2RlcGVuZGVuY2VfdGVzdGVyKToKCUluaXRpYWxpemUgYW5kIHJldHVybiBsYXN0X2NvbmZsaWN0cyBmdW5jdGlvbi4KCShpbml0aWFsaXplX21hdHJpeF9BLCBGTE9PUiwgY29tcHV0ZV9vdmVybGFwX3N0ZXBzX2Zvcl9hZmZpbmVfdW5pdmFyLAoJY29tcHV0ZV9vdmVybGFwX3N0ZXBzX2Zvcl9hZmZpbmVfMV8yKTogTmV3LgoJKGFuYWx5emVfc2l2X3N1YnNjcmlwdF9hZmZpbmVfY3N0KTogUmVtb3ZlZC4KCShhbmFseXplX3N1YnNjcmlwdF9hZmZpbmVfYWZmaW5lKTogRGlzcHJvdmUgZGVwZW5kZW5jZXMgYmFzZWQgb24gdGhlCglpdGVyYXRpb24gZG9tYWlucy4gIFNvbHZlIHRoZSB1bml2YXJpYXRlIGRlcGVuZGVuY2UgY2FzZSBhcyBiZWZvcmUsCglidXQgdXNlIGxhbWJkYV9tYXRyaXhfcmlnaHRfaGVybWl0ZSBpbnN0ZWFkIG9mIHRyZWVfZm9sZF9iZXpvdXQuCglJbXBsZW1lbnQgdGhlIG11bHRpdmFyaWF0ZSBjYXNlIG9mIDIgdmVyc3VzIDEgdmFyaWFibGVzLgoJKGJ1aWxkX2NsYXNzaWNfZGlzdF92ZWN0b3IsIGJ1aWxkX2NsYXNzaWNfZGlyX3ZlY3Rvcik6IEltcGxlbWVudCBzb21lCgl1bmhhbmRsZWQgY2FzZXMuCgkoZmluZF9kYXRhX3JlZmVyZW5jZXNfaW5fbG9vcCk6IENvbXB1dGUgYW5kIGluaXRpYWxpemUKCWxvb3AtPmVzdGltYXRlZF9uYl9pdGVyYXRpb25zIGFuZCBsb29wLT5wYXJhbGxlbF9wLgoJKGFuYWx5emVfYWxsX2RhdGFfZGVwZW5kZW5jZXMpOiBNb2RpZnkgdGhlIGRlYnVnIGR1bXAgb3JkZXIuCgkqIHRyZWUtZGF0YS1yZWYuaCAoU1VCX0xBU1RfQ09ORkxJQ1RfSU5fQSwgU1VCX0xBU1RfQ09ORkxJQ1RfSU5fQiwKCXN1YnNjcmlwdC0+bGFzdF9jb25mbGljdF9pbl9hLCBzdWJzY3JpcHQtPmxhc3RfY29uZmxpY3RfaW5fYik6IFJlbW92ZWQuCgkoU1VCX0xBU1RfQ09ORkxJQ1QsIHN1YnNjcmlwdC0+bGFzdF9jb25mbGljdCwKCWRhdGFfZGVwZW5kZW5jZV9yZWxhdGlvbi0+YWZmaW5lX3AsIGRhdGFfZGVwZW5kZW5jZV9yZWxhdGlvbi0+c2l6ZV92ZWN0LAoJRERSX0FGRklORV9QLCBERFJfU0laRV9WRUNUKTogTmV3LgoJKGZpbmRfZGF0YV9yZWZlcmVuY2VzX2luX2xvb3AsIGluaXRpYWxpemVfZGF0YV9kZXBlbmRlbmNlX3JlbGF0aW9uLAoJZHVtcF9zdWJzY3JpcHQsIGR1bXBfZGRycywgZHVtcF9kaXN0X2Rpcl92ZWN0b3JzKTogRGVjbGFyZWQgaGVyZS4KCjIwMDQtMTAtMTIgIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA0LTEwLTEyICBGYXJpYm9yeiBKYWhhbmlhbiA8ZmphaGFuaWFuQGFwcGxlLmNvbT4KCglQUiAxNzg5MgoJKiB0cmVlLXNzYS1kb20uYyAodW5zYWZlX2Fzc29jaWF0aXZlX2ZwX2Jpbm9wKTogTmV3IGZ1bmN0aW9uLgoJKHNpbXBsaWZ5X3Joc19hbmRfbG9va3VwX2F2YWlsX2V4cHIpOiBEaXNhbGxvdyBhc3NvY2lhdGl2aXR5CglhbmQgY29uc3RhbnQgZm9sZGluZyBvZiBmbG9hdGluZyBwb2ludCBNVUxUX0VYUFIvUExVU19FWFBSCglleHByZXNzaW9ucy4KCjIwMDQtMTAtMTIgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoczM5MF92YV9zdGFydCk6IFVzZSBidWlsZF92YV9hcmdfaW5kaXJlY3RfcmVmLgoJKHMzOTBfZ2ltcGxpZnlfdmFfYXJnKTogTGlrZXdpc2UuCgoyMDA0LTEwLTEyICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBkZWJpYW4ub3JnPgoKCSogZGVmYXVsdHMuaCAoUkVHTk9fTU9ERV9PS19GT1JfQkFTRV9QLCBSRUdfTU9ERV9PS19GT1JfQkFTRV9QKQoJKE1PREVfQkFTRV9SRUdfUkVHX0NMQVNTLCBSRUdOT19NT0RFX09LX0ZPUl9SRUdfQkFTRV9QKQoJKFJFR19NT0RFX09LX0ZPUl9SRUdfQkFTRV9QKTogUHJvdmlkZSBkZWZhdWx0IGRlZmluaXRpb25zLgoJKiByZWdjbGFzcy5jIChyZWNvcmRfYWRkcmVzc19yZWdzKTogUmVtb3ZlIGlmZGVmLiAgVXNlCglSRUdfTU9ERV9PS19GT1JfUkVHX0JBU0VfUCBhbmQgTU9ERV9CQVNFX1JFR19SRUdfQ0xBU1MuCgkqIHJlZ3JlbmFtZS5jIChSRUdfTU9ERV9PS19GT1JfQkFTRV9QKTogUmVtb3ZlIHVubmVjZXNzYXJ5CglkZWZpbml0aW9uLgoJKHNjYW5fcnR4X2FkZHJlc3MsIHJlcGxhY2Vfb2xkZXN0X3ZhbHVlX2FkZHIpOiBVc2UKCVJFR19NT0RFX09LX0ZPUl9SRUdfQkFTRV9QIGFuZCBNT0RFX0JBU0VfUkVHX1JFR19DTEFTUy4KCSogcmVsb2FkLmMgKFJFR05PX01PREVfT0tfRk9SX0JBU0VfUCwgUkVHX01PREVfT0tfRk9SX0JBU0VfUCk6IFJlbW92ZQoJdW5uZWNlc3NhcnkgZGVmaW5pdGlvbnMuCgkoZmluZF9yZWxvYWRzX2FkZHJlc3NfMSk6IFN1cHBvcnQgUkVHX01PREVfT0tfRk9SX1JFR19CQVNFX1AKCWFuZCBNT0RFX0JBU0VfUkVHX1JFR19DTEFTUy4KCSogY29uZmlnL2FybS9hcm0uaCAoTU9ERV9CQVNFX1JFR19DTEFTUyk6IERvbid0IGNoZWNrIHJlbG9hZF9jb21wbGV0ZWQuCgkoTU9ERV9CQVNFX1JFR19SRUdfQ0xBU1MpOiBEZWZpbmUuCgkoUkVHTk9fTU9ERV9PS19GT1JfUkVHX0JBU0VfUCk6IERlZmluZS4KCShSRUdfTU9ERV9PS19GT1JfUkVHX0JBU0VfUCk6IERlZmluZS4KCSogZG9jL3RtLnRleGkgKFJlZ2lzdGVyIENsYXNzZXMpOiBEb2N1bWVudCBNT0RFX0JBU0VfUkVHX1JFR19DTEFTUywKCVJFR19NT0RFX09LX0ZPUl9SRUdfQkFTRV9QLCBhbmQgUkVHTk9fTU9ERV9PS19GT1JfUkVHX0JBU0VfUC4KCjIwMDQtMTAtMTIgIERhbmllbCBCZXJsaW4gPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiB0cmVlLXNzYS1hbGlhcy5jICh2ZXJpZnlfbmFtZV90YWdzKTogTmV3IGZ1bmN0aW9uLgoJKHZlcmlmeV9mbG93X3NlbnNpdGl2ZV9hbGlhc19pbmZvKTogUmVtb3ZlIGNvZGUgdGhhdCB1c2VkIHRvIGNoZWNrIG5hbWUgdGFncy4KCSh2ZXJpZnlfYWxpYXNfaW5mbyk6IENhbGwgdmVyaWZ5X25hbWVfdGFncy4KCjIwMDQtMTAtMTIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNzkzMQoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfcnR4X2Nvc3RzKTogSGFuZGxlIENPTVBBUkUgd2l0aAoJWkVST19FWFRSQUNUIGluIGl0LgoKMjAwNC0xMC0xMiAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiBhcm0uYyAoYXJtX3ByaW50X29wZXJhbmQpOiBVc2Ugb3V0cHV0X29wZXJhbmRfbG9zc2FnZSB3aGVyZSBwb3NzaWJsZQoJcmF0aGVyIHRoYW4gYWJvcnRpbmcuCgoyMDA0LTEwLTEyICBQYXVsIEJyb29rICA8cGF1bEBjb3VkZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy5nY2M6IEFkZCBhcm12NntrLHosemt9CgkqIGNvbmZpZy9hcm0vYXJtLWNvcmVzLmRlZjogQWRkIGFybTExNzYgYW5kIG1wY29yZS4KCSogY29uZmlnL2FybS90dW5lLm1kOiBSZWdlbmVyYXRlLgoJKiBjb25maWcvYXJtL2FybS5jIChGTF9GT1JfQVJDSDZLLCBGTF9GT1JfQVJDSDZaLCBGTF9GT1JfQVJDSDZaSyk6CglEZWZpbmUuCgkoYWxsX2FyY2hpdGVjdHVyZXMpOiBBZGQgYXJtdjZrLCBhcm12NnosIGFybXY2emsuCgkqIGNvbmZpZy9hcm0vbGliMWZ1bmNzLmFzbTogUmVjb2duaXNlIG5ldyBhcm0gYXJjaXRlY3R1cmVzLgoJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IG5ldyBhcmNoIGFuZCBjcHUgdmFsdWVzLgoKMjAwNC0xMC0xMiAgUGF1bCBCcm9vayAgPHBhdWxAY29vZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvYXJtL2JwYWJpLmggKFNVQlRBUkdFVF9FWFRSQV9BU01fU1BFQyk6IENoYW5nZSBtZWFiaT0zIHRvCgltZWFiaT00LgoKMjAwNC0xMC0xMiAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9hcm0vYXJtLm1kIChhZGRzaTNfY2JyYW5jaF9zY3JhdGNoKTogQ29ycmVjdCBjb25zdHJhaW50cy4KCUhhbmRsZSBuZWdhdGl2ZSBjb25zdGFudHMuCgoyMDA0LTEwLTEyICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCglQUiBjLzE3MzAxCgkqIGMtdHlwZWNrLmMgKGNvbnZlcnRfYXJndW1lbnRzKTogUmV0dXJuIGVycm9yX21hcmtfbm9kZSBpZiB0aGVyZQoJYXJlIHRvbyBmZXcgYXJndW1lbnRzLgoJKGJ1aWxkX2Z1bmN0aW9uX2NhbGwpOiBIYW5kbGUgZXJyb3JfbWFya19ub2RlIHJldHVybiBmcm9tCgljb252ZXJ0X2FyZ3VtZW50cy4KCjIwMDQtMTAtMDYgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiBjb25maWd1cmUuYWMgKHN5bWJvbGljX2xpbmspOiBSZXBsYWNlIHdpdGggJExOX1MuCgkoQXNzZW1ibGVyL0xpbmtlcik6IEhhcmQgbGluayBmcm9tIGdhcyBhbmQgYmludXRpbHMgdHJlZXMuCgkqIGFjbG9jYWwubTQgKGdjY19BQ19QUk9HX0xOX1MpOiBUcnkgImNwIC1wIiBiZWZvcmUgY3AuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDQtMTAtMTIgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWd1cmUuYWM6IERvbid0IGxvb2sgZm9yIGhvc3QgYXNzZW1ibGVyIHdoZW4gYnVpbGRpbmcgYSBjYW5hZGlhbgoJY3Jvc3MuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDQtMTAtMTEgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCVBSIG90aGVyLzE3MzYxCgkqIGMtb3B0cy5jIChwZXJtaXRfZm9ydHJhbl9vcHRpb25zKTogRGVsZXRlL29ic29sZXRlIGdsb2JhbCB2YXJpYWJsZS4KCShjX2NvbW1vbl9pbml0X29wdGlvbnMpOiBSZW1vdmUgI2lmZGVmIENMX0Y3NyBjb2RlLiAgU2NhbiBjb21tYW5kCglsaW5lIG9wdGlvbnMgZm9yICItbGFuZy1hc20iIGFuZCBpZiBmb3VuZCBhbGxvdyBhbnkgb2YgdGhlIEMtZmFtaWx5Cglmcm9udC1lbmQgb3B0aW9ucy4KCShjX2NvbW1vbl9oYW5kbGVfb3B0aW9uKTogUmVtb3ZlIGxhc3QgdXNlIG9mIHBlcm1pdF9mb3J0cmFuX29wdGlvbnMuCgoyMDA0LTEwLTExICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHByaW50X29wZXJhbmQpOiBTdXBwb3J0ICdTJyBmb3JtYXQgZmxhZy4KCSogY29uZmlnL3MzOTAvczM5MC5tZCAoIip0bXFpX21lbSIpOiBVc2UgJ1MnIGZvcm1hdCBmbGFnLgoJKCIqdHN0c2kiLCAiKnRzdHNpX2Njb25seSIsICIqdHN0c2lfY2Nvbmx5MiIpOiBMaWtld2lzZS4KCSgiKnRzdGhpQ0NUIiwgIip0c3RoaUNDVF9jY29ubHkiLCAiKnRzdGhpIiwgIip0c3RoaV9jY29ubHkiKTogTGlrZXdpc2UuCgkoIip0c3RxaUNDVCIsICIqdHN0cWlDQ1RfY2Nvbmx5IiwgIip0c3RxaSIsICIqdHN0cWlfY2Nvbmx5Iik6IExpa2V3aXNlLgoJKCIqY21waGlfY2N1IiwgIipjbXBxaV9jY3UiLCAiKmNsYyIpOiBMaWtld2lzZQoJKCJtb3Z0aSIsICIqbW92ZGlfMzEiLCAiKm1vdnFpIiwgIiptb3ZkZl8zMSIsICIqbXZjIik6IExpa2V3aXNlLgoJKCIqbW92c3RyaWN0aGkiKTogTGlrZXdpc2UuCgkoIipsb2FkX211bHRpcGxlX2RpIiwgIipsb2FkX211bHRpcGxlX3NpIik6IExpa2V3aXNlLgoJKCIqc3RvcmVfbXVsdGlwbGVfZGkiLCAiKnN0b3JlX211bHRpcGxlX3NpIik6IExpa2V3aXNlLgoJKCIqc2V0aGlxaXNpIiwgIipzZXRoaWhpc2kiKTogTGlrZXdpc2UuCgkoIipzZXRoaXFpZGlfNjQiLCAiKnNldGhpcWlkaV8zMSIpOiBMaWtld2lzZS4KCSgiKmFuZHFpM196YXJjaCIsICIqYW5kcWkzX2VzYSIsICIqbmMiKTogTGlrZXdpc2UuCgkoIippb3JxaTNfemFyY2giLCAiKmlvcnFpM19lc2EiLCAiKm9jIik6IExpa2V3aXNlLgoJKCIqeG9ycWkzIiwgIip4YyIsICIqeGNfemVybyIpOiBMaWtld2lzZS4KCSgiZ2V0X3RwXzY0IiwgImdldF90cF8zMSIsICJzZXRfdHBfNjQiLCAic2V0X3RwXzMxIik6IExpa2V3aXNlLgoKCSgiKnRtaGlfZnVsbCIpOiBGaXggaW5jb3JyZWN0IG9wX3R5cGUgYXR0cmlidXRlLgoKCSgiKmFkZGRpM19hbGNfY2MiLCAiKmFkZGRpM19hbGMiKTogUmVtb3ZlIGRvdWJsZSBiYWNrc2xhc2guCgkoIipzdWJkaTNfc2xiX2NjIiwgIipzdWJkaTNfc2xiIik6IExpa2V3aXNlLgoJKCIqYWRkc2kzX2FsY19jYyIsICIqYWRkc2kzX2FsYyIpOiBMaWtld2lzZS4KCSgiKnN1YnNpM19zbGJfY2MiLCAiKnN1YnNpM19zbGIiKTogTGlrZXdpc2UuCgoyMDA0LTEwLTExICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdQoKCVBSIG1pZGRsZS1lbmQvMTYyNjYKCSogZnVuY3Rpb24uYyAodGVtcF9zbG90c19hdF9sZXZlbCk6IEZpeCB0eXBvIHdoaWNoIGNyZWF0ZXMgdG9vCgltYW55IHRlbXAgc3RhY2sgc2xvdHMgbGV2ZWxzLgoKMjAwNC0xMC0xMSAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX3RyYW1wb2xpbmVfdGVtcGxhdGUpOiBHZW5lcmF0ZSBzaG9ydGVyCgl0cmFtcG9saW5lIGNvZGUuCgkoczM5MF90cmFtcG9saW5lX2luc3RhbnRpYXRlKTogQWRhcHQuCgkqIGNvbmZpZy9zMzkwL3MzOTAuaCAoVFJBTVBPTElORV9TSVpFKTogQWRhcHQgdG8gbmV3IGNvZGUuCgoyMDA0LTEwLTExICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBtaWRkbGUtZW5kLzE3NjU3CgkqIHN0bXQuYyAoYWRkX2Nhc2Vfbm9kZSk6IEFkZCBhZGRpdGlvbmFsIHR5cGUgYXJndW1lbnQuICBEZWNsYXJlCglhcyBzdGF0aWMgdG8gbWF0Y2ggcHJvdG90eXBlLiAgQ29udmVydCB0aGUgdXBwZXIgYW5kIGxvd2VyIGJvdW5kcwoJdG8gdGhlIHNwZWNpZmllZCBpbmRleCB0eXBlLiAgT3B0aW1pemUgYXdheSBjYXNlIHJhbmdlcy92YWx1ZXMKCXRoYXQgYXJlIG91dHNpZGUgdGhlIGluZGV4IHR5cGUncyBib3VuZHMuICBUcnVuY2F0ZSBjYXNlIHJhbmdlcwoJdGhhdCBzcGFuIHRoZSBpbmRleCB0eXBlJ3MgYm91bmRzLgoJKGV4cGFuZF9jYXNlKTogQXZvaWQgdW5uZXNzYXJ5IGNvbXB1dGF0aW9uIGFuZCBtZW1vcnkgYWxsb2NhdGlvbgoJd2hlbiBpbmRleCB0eXBlIGlzIGVycm9yX21hcmtfbm9kZS4gIFBhc3MgaW5kZXhfdHlwZSBhcyByZXF1aXJlZAoJYnkgY2hhbmdlIHRvIGFkZF9jYXNlX25vZGUgQVBJLiAgTm8gbmVlZCB0byBjb252ZXJ0IGNhc2UgcmFuZ2UKCWJvdW5kcyB0byBpbmRleF90eXBlLCB0aGlzIGlzIG5vdyBkb25lIGJ5IGFkZF9jYXNlX25vZGUuCgoyMDA0LTEwLTExICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLXByb3Rvcy5oIChzMzkwX29mZnNldF9wKTogQWRkIHByb3RvdHlwZS4KCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX29mZnNldF9wKTogTmV3IGZ1bmN0aW9uLgoJKiBjb25maWcvczM5MC9zMzkwLm1kICgiKmNtcGRpX2NjdCIsICIqY21wc2lfY2N0IiwgIipjbXBkaV9jY3UiLAoJIipjbXBzaV9jY3UiLCAiKmNtcGhpX2NjdSIsICIqY21wcWlfY2N1Iik6IFVzZSBzcGxpdHRlciB0bwoJdHJhbnNmb3JtIFEtPlEgYWx0ZXJuYXRpdmVzIHRvICpjbGMgcGF0dGVybi4KCSgiKmNsYyIpOiBNb3ZlLgoJKCJtb3Z0aSIsICIqbW92ZGlfNjQiLCAiKm1vdmRpXzMxIiwgIiptb3ZzaV96YXJjaCIsICIqbW92c2lfZXNhIiwKCSIqbW92aGkiLCAiKm1vdnFpIiwgIiptb3ZkZl82NCIsICIqbW92ZGZfMzEiLCAibW92c2YiKTogVXNlIHNwbGl0dGVyCgl0byB0cmFuc2Zvcm0gUS0+USBhbHRlcm5hdGl2ZXMgdG8gKm12YyBwYXR0ZXJuLgoJKCIqbXZjIik6IE1vdmUuICBBZGQgcGVlcGhvbGUgdG8gbWVyZ2UgYWRqYWNlbnQgTVZDcy4KCSgiKmFuZGRpMyIsICIqYW5kc2kzX3phcmNoIiwgIiphbmRzaTNfZXNhIiwgIiphbmRoaTNfemFyY2giLAoJIiphbmRoaTNfZXNhIiwgIiphbmRxaTNfemFyY2giLCAiKmFuZHFpM19lc2EiKTogVXNlIHNwbGl0dGVyIHRvCgl0cmFuc2Zvcm0gUS0+USBhbHRlcm5hdGl2ZXMgdG8gKm5jIHBhdHRlcm4uCgkoIipuYyIpOiBOZXcgaW5zbi4gIE5ldyBwZWVwaG9sZSB0byBtZXJnZSBhZGphY2VudCBOQ3MuCgkoIippb3JkaTMiLCAiKmlvcnNpM196YXJjaCIsICIqaW9yc2kzX2VzYSIsICIqaW9yaGkzX3phcmNoIiwKCSIqaW9yaGkzX2VzYSIsICIqaW9ycWkzX3phcmNoIiwgIippb3JxaTNfZXNhIik6IFVzZSBzcGxpdHRlciB0bwoJdHJhbnNmb3JtIFEtPlEgYWx0ZXJuYXRpdmVzIHRvICpvYyBwYXR0ZXJuLgoJKCIqb2MiKTogTmV3IGluc24uICBOZXcgcGVlcGhvbGUgdG8gbWVyZ2UgYWRqYWNlbnQgT0NzLgoJKCIqeG9yZGkzIiwgIip4b3JzaTMiLCAiKnhvcmhpMyIsICIqeG9ycWkzIik6IFVzZSBzcGxpdHRlciB0bwoJdHJhbnNmb3JtIFEtPlEgYWx0ZXJuYXRpdmVzIHRvICp4YyBwYXR0ZXJuLgoJKCIqeGMiKTogTmV3IGluc24uICBOZXcgcGVlcGhvbGUgdG8gbWVyZ2UgYWRqYWNlbnQgWENzLgoJKCIqeGNfemVybyIpOiBNb3ZlLiAgQWRkIHBlZXBob2xlIHRvIG1lcmdlIGFkamFjZW50IFhDcy4KCjIwMDQtMTAtMTEgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCSogZ2ltcGxpZnkuYyAoZ2ltcGxlX3B1c2hfY29uZGl0aW9uKTogTWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3QKCWhhdmUgYW55IHNhdmVkIGNvbmRpdGlvbiBjbGVhbnVwIGlmIHdlIHdlcmUgYXQgdGhlIHRvcCBsZXZlbC4KCjIwMDQtMTAtMTEgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9mcnYvZnJ2Lm1kICgqYWRkZGkzX2ludGVybmFsKTogQ2hhbmdlIG5hbWUgdG8uLi4KCShhZGRkaTMpOiAuLi5yZXBsYWNpbmcgdGhlIGV4aXNpdGluZyBkZWZpbmVfZXhwYW5kLiAgQ29tYmluZQoJYWx0ZXJuYXRpdmVzLiAgRml4IHRoZSByYW5nZSBvZiB0aGUgY29uc3RhbnQgY29uc3RyYWludHMgKCdKJyBpbnN0ZWFkCglvZiAnTk9QJykuICBSZW1vdmUgYm9ndXMgb3BlcmFuZHNbMl0gY2hlY2suICBVc2Ugc2ltcGxpZnlfZ2VuX3N1YnJlZwoJdG8gZXh0cmFjdCB0aGUgbG93ZXIgYW5kIHVwcGVyIGhhbHZlcyBvZiB0aGUgREltb2RlIG9wZXJhbmRzLgoJQWx3YXlzIHVzZSBhZGRpM19sb3dlciBhbmQgYWRkZGkzX3VwcGVyLCBub3QgdGhlIHN1YmRpMyBmb3Jtcy4KCShhZGRkaTNfbG93ZXIpOiBGaXggdGhlIHJhbmdlIG9mIHRoZSBjb25zdGFudCBjb25zdHJhaW50cyBhbmQKCXJlbW92ZSB0aGUgYm9ndXMgb3BlcmFuZHNbMl0gY2hlY2suCgkoYWRkZGkzX3VwcGVyKTogVXNlIGdwcl9vcl9pbnQxMF9vcGVyYW5kIGFzIHRoZSBwcmVkaWNhdGUgZm9yCglvcGVyYW5kIDIuICBVc2UgYWRkeGkgdG8gaGFuZGxlIGNvbnN0YW50IG9wZXJhbmRzLgoJKHN1YmRpM19sb3dlciwgc3ViZGkzX3VwcGVyKTogRG9uJ3QgaGFuZGxlIGNvbnN0YW50IG9wZXJhbmRzLgoKMjAwNC0xMC0xMSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdlbmd0eXBlLWxleC5sOiBBZGQgY29tbWVudGVkIH0gJiApIGNoYXJhY3RlcnMgdG8gdW5jb25mdXNlCgllZGl0b3IncyBwYXJlbiBtYXRjaGluZy4gQWxsb3cgI2RlZmluZSBpbnNpZGUgYSBzdHJ1Y3QuCgoyMDA0LTEwLTEwICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiBtaWRkbGUtZW5kLzE3NzAzCglwYXJ0IG9mIFBSIGMrKy8xNzY1NwoJKiBmb2xkLWNvbnN0LmMgKGZvbGRfYnVpbGRfY2xlYW51cF9wb2ludF9leHByKTogTmV3IGZ1bmN0aW9uLgoJKiB0cmVlLmggKGZvbGRfYnVpbGRfY2xlYW51cF9wb2ludF9leHByKTogUHJvdG90eXBlLgoKMjAwNC0xMC0xMCAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBkd2FyZjJvdXQuYzogTW92ZSBhdHRyaWJ1dGUgdG8gc3VicHJvZ3JhbSBkZWNsYXJhdGlvbgoJaW5zdGVhZCBvZiBzdWJyb3V0aW5lIHR5cGUuCgoyMDA0LTEwLTEwICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYmFzaWMtYmxvY2suaDogUmVtb3ZlIHRoZSBwcm90b3R5cGVzIGZvciBjYW5faG9pc3RfaW5zbl9wLAoJaG9pc3RfaW5zbl9hZnRlciwgYW5kIGhvaXN0X2luc25fdG9fZWRnZS4KCSogcnRsLmg6IFJlbW92ZSB0aGUgcHJvdG90eXBlcyBmb3IgcmVnX3JlZmVyZW5jZWRfYmV0d2Vlbl9wLAoJbm9fanVtcHNfYmV0d2Vlbl9wLCBhbmQgaW5zbl9kZXBlbmRlbnRfcC4KCSogcnRsYW5hbC5jIChub19qdW1wc19iZXR3ZWVuX3AsIHJlZ19yZWZlcmVuY2VkX2JldHdlZW5fcCwKCWluc25fZGVwZW5kZW50X3AsIGluc25fZGVwZW5kZW50X3BfMSwgaG9pc3RfdGVzdF9zdG9yZSwKCWNhbl9ob2lzdF9pbnNuX3AsIGhvaXN0X3VwZGF0ZV9zdG9yZSwgaG9pc3RfaW5zbl9hZnRlciwKCWhvaXN0X2luc25fdG9fZWRnZSk6IFJlbW92ZS4KCjIwMDQtMTAtMTAgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCVBSIGMvMTc4ODEKCSogYy1kZWNsLmMgKGdyb2twYXJtcyk6IERvbid0IHdhcm4gZm9yIHBhcmFtZXRlcnMgb2YgaW5jb21wbGV0ZQoJdHlwZSBpbiBkZWNsYXJhdGlvbnMgdGhhdCBhcmUgbm90IGRlZmluaXRpb25zIGV4Y2VwdCBmb3IgdGhlIGNhc2UKCW9mIHBhcmFtZXRlcnMgb2Ygdm9pZCB0eXBlLgoKMjAwNC0xMC0xMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmM6IEZpeCBjb21tZW50IHR5cG9zLgoKMjAwNC0xMC0xMCAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJUFIgYy8xNzMwMQoJKiBidWlsdGlucy5jIChleHBhbmRfYnVpbHRpbl92YV9zdGFydCk6IENoZWNrIGZvciB0b28gZmV3Cglhcmd1bWVudHMgdG8gdmFfc3RhcnQuCgoyMDA0LTEwLTEwICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCglQUiBjLzE3MTg5CgkqIGMtZGVjbC5jIChncm9rZmllbGQpOiBNYWtlIGRpYWdub3N0aWMgZm9yIGJhZCBjYXNlcyBvZiB1bm5hbWVkCglmaWVsZHMgYSBwZWR3YXJuLiAgUGVkd2FybiBoZXJlIGZvciB1bm5hbWVkIHN0cnVjdHMvdW5pb25zIGlmCglwZWRhbnRpYy4KCSogYy1wYXJzZS5pbiAoY29tcG9uZW50X2RlY2wpOiBEb24ndCBwZWR3YXJuIGhlcmUgZm9yIHVubmFtZWQKCWZpZWxkcy4KCjIwMDQtMTAtMDkgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTc5MDYKCSogdHJlZS10YWlsY2FsbC5jICh0cmVlX29wdGltaXplX3RhaWxfY2FsbHNfMSk6IERvIG5vdCBhdHRlbXB0IHRvCgljb3B5IG5vbi1naW1wbGUgcmVnIGFyZ3VtZW50cy4KCjIwMDQtMTAtMDkgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMTc4NTMKCSogc2ltcGxpZnktcnR4LmMgKHNpbXBsaWZ5X3JlbGF0aW9uYWxfb3BlcmF0aW9uKTogQ29ycmVjdCBjb21tZW50LgoJUmVvcmdhbml6ZSBoYW5kbGluZyBvZiBjb21wYXJpc29uIG9wZXJhdGlvbnMgd2l0aCBmbG9hdGluZyBwb2ludAoJcmVzdWx0cyAoYWx3YXlzIHJldHVybiAwLjAgZXZlbiB3aXRob3V0IEZMT0FUX1NUT1JFX0ZMQUdfVkFMVUUpLgoJTGlrZXdpc2UsIGludHJvZHVjZSBzdXBwb3J0IGZvciBjb21wYXJpc29uIG9wZXJhdGlvbnMgd2l0aCB2ZWN0b3IKCXJlc3VsdCB0eXBlcywgaW50cm9kdWNpbmcgYSBuZXcgVkVDVE9SX1NUT1JFX0ZMQUdfVkFMVUUgdGFyZ2V0IG1hY3JvLgoKCSogZG9jL3J0bC50ZXhpOiBEb2N1bWVudCBuZXcgVkVDVE9SX1NUT1JFX0ZMQUdfVkFMVUUgdGFyZ2V0IG1hY3JvLgoJKiBkb2MvdG0udGV4aTogTGlrZXdpc2UuCgoyMDA0LTEwLTA5ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiByZWdzLmggKHN0cnVjdCByZWdfaW5mb19kZWYpOiBSZW1vdmUgdGhlIGxhc3Rfbm9kZV91aWQgYW5kCgljaGFuZ2VzX21vZGUgZmllbGRzLgoJKFJFR05PX0xBU1RfTk9URV9VSUQpOiBEb24ndCBkZWZpbmUuCgkqIHJlZ2NsYXNzLmMgKHJlZ19zY2FuX21hcmtfcmVmcyk6IERvbid0IHNldCBSRUdOT19MQVNUX05PVEVfVUlELgoJKiByZWdtb3ZlLmMgKGNvcHlfc3JjX3RvX2Rlc3QpOiBMaWtld2lzZS4KCjIwMDQtMTAtMDkgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCVBSIG1pZGRsZS1lbmQvMTc4OTQKCSogZm9sZC1jb25zdC5jIChmb2xkX2Rpdl9jb21wYXJlKTogV2hlbiBvcHRpbWl6aW5nIFgvQzEgb3AgQzIsIHRoZQoJcmVsYXRpb25hbCBjb21wYXJpc29uIG9wZXJhdG9yIG9wIG5lZWRzIHRvIGJlIHN3YXBwZWQvcmV2ZXJzZWQgd2hlbgoJQzEgaXMgbmVnYXRpdmUuICBpLmUuIFgvLTEwIDwgMSBiZWNvbWVzIFggPj0gLTksIG5vdCBYIDwgLTkuCgoyMDA0LTEwLTA4ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiB0cmVlLW9wdC8xNzkwMgoJKiB0cmVlLXNzYS1waGlvcHQuYyAoY29uZGl0aW9uYWxfcmVwbGFjZW1lbnQpOiBVc2UgYnNpX2FmdGVyX2xhYmVscwoJaW5zdGVhZCBvZiBic2lfc3RhcnQuCgkodmFsdWVfcmVwbGFjZW1lbnQpOiBMaWtld2lzZS4KCShhYnNfcmVwbGFjZW1lbnQpOiBMaWtld2lzZQoKMjAwNC0xMC0wOSAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogY2ZnZXhwYW5kLmMgKG1heWJlX2R1bXBfcnRsX2Zvcl90cmVlX3N0bXQpOiBOZXcgZnVuY3Rpb24uCgkoZXhwYW5kX2dpbXBsZV9jb25kX2V4cHIsIGV4cGFuZF9naW1wbGVfdGFpbGNhbGwsCglleHBhbmRfZ2ltcGxlX2Jhc2ljX2Jsb2NrKTogVXNlIGl0IHRvIGR1bXAgUlRMIGZvciBlYWNoIHN0bXQuCgkodHJlZV9leHBhbmRfY2ZnKTogQW5ub3VuY2UgZnVsbCBSVEwgZnVuY3Rpb24gZHVtcC4KCSogdHJlZS1vcHRpbWl6ZS5jIChleGVjdXRlX29uZV9wYXNzKTogVXNlIG5vcm1hbCBSVEwgcHJpbnRpbmcsCglub3QgdGhlIGdyYXBoIHZlcnNpb24uCgkqIHRyZWUtcHJldHR5LXByaW50LmMgKGR1bXBfZ2VuZXJpY19ub2RlKTogQWxsb3cgZW1wdHkgc3RhdGVtZW50cwoJaW4gdGhlIGFybXMgb2YgYSBDT05EX0VYUFIgZm9yIGxvd2VyZWQgbm9kZXMuCgoyMDA0LTEwLTA4ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvc3BlLmggKGF0b3NmaXgxNiwgYXRvc2ZpeDMyLCBhdG9zZml4NjQsIGF0b3VmaXgxNiwKCWF0b3VmaXgzMiwgYXRvdWZpeDY0LCBzdHJ0b3NmaXgxNiwgc3RydG9zZml4MzIsIHN0cnRvc2ZpeDY0LAoJc3RydG91Zml4MTYsIHN0cnRvdWZpeDMyLCBzdHJ0b3VmaXg2NCk6IERlY2xhcmUuCgoyMDA0LTEwLTA4ICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtbGV4LmMgKGludGVycHJldF9mbG9hdCk6IEdpdmUgYSBwZWR3YXJuIHJhdGhlciB0aGFuIGEgd2FybmluZwoJZm9yIGFuIG91dC1vZi1yYW5nZSBmbG9hdGluZyBwb2ludCBjb25zdGFudC4KCSogYnVpbHRpbnMuYyAoZm9sZF9idWlsdGluX2luZik6IEdpdmUgYSBwZWR3YXJuIHJhdGhlciB0aGFuIGEKCXdhcm5pbmcgaWYgdGhlIHRhcmdldCBmb3JtYXQgZG9lcyBub3Qgc3VwcG9ydCBpbmZpbml0aWVzLgoKMjAwNC0xMC0wOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGVtaXQtcnRsLmMgKGxhc3RfbGFiZWxfbnVtLCBiYXNlX2xhYmVsX251bSk6IFJlbW92ZS4KCShtYXhfbGFiZWxfbnVtKTogQWx3YXlzIHJldHVybiBsYWJlbF9udW0uCgkoc2V0X25ld19sYXN0X2xhYmVsX251bSwgcmVzdG9yZV9lbWl0X3N0YXR1cyk6IFJlbW92ZS4KCShpbml0X2VtaXQpOiBEb24ndCBpbml0aWFsaXplIGxhc3RfbGFiZWxfbnVtLgoJKiBmdW5jdGlvbi5jIChwb3BfZnVuY3Rpb25fY29udGV4dF9mcm9tKTogRG9uJ3QgY2FsbAoJcmVzdG9yZV9lbWl0X3N0YXR1cy4KCSogZnVuY3Rpb24uaDogUmVtb3ZlIHRoZSBwcm90b3R5cGUgZm9yIHJlc3RvcmVfZW1pdF9zdGF0dXMuCgkqIHJ0bC5oOiBSZW1vdmUgdGhlIHByb3RvdHlwZSBmb3Igc2V0X25ld19sYXN0X2xhYmVsX251bS4KCjIwMDQtMTAtMDggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBzdG10LmMgKGV4cGFuZF9kZWNsX2luaXQpOiBSZW1vdmUuCgkqIHRyZWUuaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHByb3RvdHlwZS4KCjIwMDQtMTAtMDggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBpbnRlZ3JhdGUuYyAodHJ5X2NvbnN0YW50cywgc3Vic3RfY29uc3RhbnRzLCBtYXJrX3N0b3Jlcyk6CglSZW1vdmUuCgkqIGludGVncmF0ZS5oOiBSZW1vdmUgdGhlIHByb3RvdHlwZSBmb3IgdHJ5X2NvbnN0YW50cy4KCjIwMDQtMTAtMDggIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYy10eXBlY2suYyAoZW51bSBpbXBsX2NvbnYpOiBBZGQgaWNfYXJncGFzc19ub25wcm90by4KCShjb252ZXJ0X2Zvcl9hc3NpZ25tZW50KTogSGFuZGxlIGljX2FyZ3Bhc3Nfbm9ucHJvdG8uICBBZGQKCWNvbW1lbnRzIGFib3V0IGl0cyByZWxldmFuY2UgdG8gZXJyb3JzLgoJKGNfY29udmVydF9wYXJtX2Zvcl9pbmxpbmluZyk6IFVzZSBpY19hcmdwYXNzX25vbnByb3RvLgoKMjAwNC0xMC0wOCAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgYy8xNjk5OQoJKiBjLXBwb3V0cHV0LmMgKGNiX2lkZW50KTogRG9uJ3QgcXVvdGUgc3RyaW5nIGFzIGl0IGlzIGFscmVhZHkKCXF1b3RlZC4KCjIwMDQtMTAtMDggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtcHJlLmMgKGluaXRfcHJlKTogVXNlIHNpemUgb2YgQVJSQVlfUkVGIHRvIGFsbG9jYXRlCglyZWZlcmVuY2Vfbm9kZV9wb29sLgoKMjAwNC0xMC0wOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmM6IEZpeCBhIGNvbW1lbnQgdHlwby4KCjIwMDQtMTAtMDggIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWwxQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHMzOTBfcmVnaXN0ZXJfaW5mbyk6IERvbid0IHNhdmUgZnBycyBmb3IKCS1tc29mdC1mbG9hdC4KCShzMzkwX2NvbmRpdGlvbmFsX3JlZ2lzdGVyX3VzYWdlKTogTWFrZSBmcHJzICdmaXhlZCcgZm9yIC1tc29mdC1mbG9hdC4KCjIwMDQtMTAtMDggIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuaCAoVEFSR0VUX0RFRkFVTFRfQkFDS0NIQUlOKTogTmV3IGRlZmluZS4KCShUQVJHRVRfREVGQVVMVCk6IFVzZSBzeW1ib2xpYyB2YWx1ZXMuCgkqIGNvbmZpZy9zMzkwL3RwZi5oIChUQVJHRVRfREVGQVVMVF9CQUNLQ0hBSU4pOiBSZWRlZmluZS4KCShUQVJHRVRfREVGQVVMVCk6IFVzZSBzeW1ib2xpYyB2YWx1ZXMuCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoczM5MF9iYWNrY2hhaW5fc3RyaW5nKTogSW5pdGlhbGl6ZSB0bwoJVEFSR0VUX0RFRkFVTFRfQkFDS0NIQUlOLgoKMjAwNC0xMC0wOCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fbWVtcGNweSk6IE1vdmUgdHJlZSBoYW5kbGluZyBjb2RlIHRvCglmb2xkX2J1aWx0aW5fbWVtcGNweS4gIEFjY2VwdCBhIHR5cGUgcGFyYW1ldGVyLiAgRGVsZXRlIGR1cGxpY2F0ZQoJY29kZS4KCShleHBhbmRfYnVpbHRpbl9zdHJjYXQpOiBBY2NlcHQgYSB0eXBlIHBhcmFtZXRlci4KCShmb2xkX2J1aWx0aW5fbWVtcGNweSk6IEFjY2VwdCBhIHR5cGUgYW5kIGVuZHAgcGFyYW1ldGVyLgoKCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fc3RybmNweSk6IERlbGV0ZSBkdXBsaWNhdGUgY29kZS4KCUFjY2VwdCBhbiBgZXhwJyBpbnN0ZWFkIG9mIGFuIGBhcmdsaXN0Jy4KCjIwMDQtMTAtMDggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlLXRhaWxjYWxsLmMgKHRyZWVfb3B0aW1pemVfdGFpbF9jYWxsc18xKTogVXNlIGZvbGRfY29udmVydCwKCXJldmVydGluZyBteSAyMDA0LTA5LTA3IHBhdGNoIHRvIHVzZSBidWlsZF9pbnRfY3N0LgoKMjAwNC0xMC0wOCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiB0YXJnZXQvMTcyNDUKCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKGlucHV0X29wZXJhbmQpOiBSZW1vdmUgcmVkdW5kYW50IGNvZGUKCWZvciBoYW5kbGluZyBMT19TVU0uCgkobGVnaXRpbWF0ZV9hZGRyZXNzX3ApIDxSRUcrUkVHPjogRG8gbm90IHJlY2hlY2sgVEFSR0VUX1Y5LgoJPExPX1NVTT46IElmIExPX1NVTSBpcyBvZmZzZXR0YWJsZSwgYWNjZXB0IGl0IGZvciBURm1vZGUgb24gVjkuCglPdGhlcndpc2Ugb25seSBhY2NlcHQgaXQgZm9yIFRGbW9kZSBpZiBxdWFkIG1vdmUgaW5zbnMgYXJlIGF2YWlsYWJsZS4KCjIwMDQtMTAtMDggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jICh0cmVlX2ZvcndhcmRlcl9ibG9ja19wKTogUmVvcmRlciBjaGVja3Mgc28gdGhhdAoJY29tbW9uIGNhc2VzIHdpbGwgYmUgY2F1Z2h0IGVhcmxpZXIgdGhhbiBvdGhlcnMuCgoyMDA0LTEwLTA4ICBNaWNoYWVsIE1hdHogIDxtYXR6QHN1c2UuZGU+CgoJKiBsb29wLWRvbG9vcC5jIChkb2xvb3Bfb3B0aW1pemUpOiBFeHRlbmQgY291bnQuCgoyMDA0LTEwLTA4ICBLYXogS29qaW1hICA8a2tvamltYUBnY2MuZ251Lm9yZz4KCgkqIGNvbmZpZy9zaC9zaC5tZCAocHJlZmV0Y2hfbWVkaWEsIHByZWZldGNoX2k0KTogTmV3IGluc25zLgoJKHByZWZldGNoKTogQ29udmVydCB0byBleHBhbmRlci4KCjIwMDQtMTAtMDggIEtheiBLb2ppbWEgIDxra29qaW1hQGdjYy5nbnUub3JnPgoKCSogY29uZmlnL3NoL3NoLm1kICh0bHNfZ2xvYmFsX2R5bmFtaWMpOiBVc2UgTUVNIHBhdHRlcm4gZm9yIHRoZQoJZmlyc3QgYXJndW1lbnQgb2YgQ0FMTC4KCSh0bHNfbG9jYWxfZHluYW1pYyk6IExpa2V3aXNlLgoKMjAwNC0xMC0wOCAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBjLXR5cGVjay5jIChlbnVtIGltcGxfY29udik6IE5ldy4KCShjb252ZXJ0X2Zvcl9hc3NpZ25tZW50KTogVXNlIGl0LiAgVGFrZSB0cmVlIGZvciBmdW5jdGlvbiBjYWxsZWQKCWluc3RlYWQgb2YgaXRzIG5hbWUuICBIYW5kbGUgT2JqQyBzZWxlY3RvcnMgZm9yIGRpYWdub3N0aWNzIGF0CglzdGFydCBvZiBmdW5jdGlvbi4gIFNlbGVjdCBkaWFnbm9zdGljIHRleHQgd2l0aGluIHRoZSBmdW5jdGlvbgoJdXNpbmcgZnVsbCBzZW50ZW5jZXMgZm9yIGRpYWduc290aWNzLiAgVXNlICVxRSB0byBuYW1lIGZ1bmN0aW9ucwoJaW4gZGlhZ25vc3RpY3MuCgkoY29udmVydF9hcmd1bWVudHMsIGJ1aWxkX21vZGlmeV9leHByLAoJY19jb252ZXJ0X3Bhcm1fZm9yX2lubGluaW5nLCBkaWdlc3RfaW5pdCwgY19maW5pc2hfcmV0dXJuKTogVXBkYXRlCgljYWxsZXJzIHRvIGNvbnZlcnRfZm9yX2Fzc2lnbm1lbnQuCgkod2Fybl9mb3JfYXNzaWdubWVudCk6IFJlbW92ZS4KCjIwMDQtMTAtMDggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvc2gvc3ltYmlhbi5jIChzeW1iaWFuX3Bvc3NpYmx5X2V4cG9ydF9iYXNlX2NsYXNzKToKCVJlcGxhY2UgdXNlIG9mIGRlbGV0ZWQgVFlQRV9VU0VTX1ZJUlRVQUxfQkFTRUNMQVNTRVMgbWFjcm8gd2l0aAoJVFlQRV9DT05UQUlOU19WUFRSX1AuCgoyMDA0LTEwLTA4ICBLYXp1aGlybyBJbmFva2EgIDxpbmFva2Eua2F6dWhpcm9AcmVuZXNhcy5jb20+CgoJKiBjb25maWcvbTMyci9tMzJyLmggKENPTkRJVElPTkFMX1JFR0lTVEVSX1VTQUdFKTogRG9uJ3QgZXhjbHVkZQoJZml4ZWQgcmVnaXN0ZXJzIGZvcm0gYWxsX3VzZWRfcmVncy4gVXBkYXRlIGNhbGxfcmVhbGx5X3VzZWRfcmVncy4KCShDQUxMX1JFQUxMWV9VU0VEX1JFR0lTVEVSUyk6IERlZmluZS4KCSogY29uZmlnL20zMnIvbTMyci5jIChNVVNUX1NBVkVfUkVHSVNURVIpOiBSZXBsYWNlIGNhbGxfdXNlZF9yZWdzCgl3aXRoIGNhbGxfcmVhbGx5X3VzZWRfcmVncy4KCjIwMDQtMTAtMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBjb25maWcvcnM2MDAwL3N5c3Y0LmggKFNUQVJURklMRV9MSU5VWF9TUEVDKTogQ2hvb3NlIGdjcnQxLm8KCWZvciAtcHJvZmlsZSBhcyB3ZWxsIGFzIC1wIGFuZCAtcGcuCgoyMDA0LTEwLTA3ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCgkqIGxpYmdjYzIuYyAoX19tb2RkaTMpOiBDYXN0ICZ3IHRvIFVEV3R5cGUqLgoKMjAwNC0xMC0wNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmMgKHRyZWVfYmxvY2tfZm9yd2FyZHNfdG8pOiBSZW1vdmUuCgkqIHRyZWUtZmxvdy5oOiBSZW1vdmUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvdG90eXBlLgoKMjAwNC0xMC0wNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtZmxvdy1pbmxpbmUuaCAocGhpX25vZGVzKTogUmVtb3ZlIGFuIHVubmVjZXNzYXJ5IGNoZWNrCglmb3IgRU5UUllfQkxPQ0tfUFRSIGFuZCBFWElUX0JMT0NLX1BUUi4KCjIwMDQtMTAtMDcgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCVJhZGFyIDM4MTM3OTYKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2dlbmVyYXRlX2NvbXBhcmUpOiBXaGVuCglmbGFnX3RyYXBwaW5nX21hdGggaXMgaW4gZWZmZWN0LCBkb24ndCBnZW5lcmF0ZSBzdWJ0cmFjdAoJaW5zdHJ1Y3Rpb25zLgoKMjAwNC0xMC0wNyAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC1wcm90b3MuaCAoczM5MF9uYXJyb3dfbG9naWNhbF9vcGVyYXRvcik6IEFkZC4KCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX25hcnJvd19sb2dpY2FsX29wZXJhdG9yKTogTmV3IGZ1bmN0aW9uLgoJKHMzOTBfZXh0cmFfY29uc3RyYWludF9zdHIpOiBBZGQgJ0EnIGNvbnN0cmFpbnRzLgoJKHMzOTBfY29uc3Rfb2tfZm9yX2NvbnN0cmFpbnRfcCk6IEFkZCAnTngnIGNvbnN0cmFpbnRzLgoJKiBjb25maWcvczM5MC9zMzkwLmggKEVYVFJBX01FTU9SWV9DT05TVFJBSU5UKTogQWRkICdBJyBjb25zdHJhaW50LgoJKENPTlNUUkFJTlRfTEVOKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zMzkwL3MzOTAubWQgKCIqYW5kZGkzIik6IEFkZCBOSSBhbHRlcm5hdGl2ZSBhbmQgc3BsaXR0ZXIuCgkoIiphbmRzaTNfemFyY2giLCAiKmFuZHNpM19lc2EiKTogTGlrZXdpc2UuCgkoIiphbmRoaTNfemFyY2giLCAiKmFuZGhpM19lc2EiKTogTGlrZXdpc2UuCgkoIippb3JkaTMiKTogQWRkIE9JIGFsdGVybmF0aXZlIGFuZCBzcGxpdHRlci4KCSgiKmlvcnNpM196YXJjaCIsICIqaW9yc2kzX2VzYSIpOiBMaWtld2lzZS4KCSgiKmlvcmhpM196YXJjaCIsICIqaW9yaGkzX2VzYSIpOiBMaWtld2lzZS4KCSgiKnhvcmRpMyIpOiBBZGQgWEkgYWx0ZXJuYXRpdmUgYW5kIHNwbGl0dGVyLgoJKCIqeG9yc2kzIiwgIip4b3JoaTMiKTogTGlrZXdpc2UuCgoyMDA0LTEwLTA3ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHNfZnVuY3Rpb25fcm9kYXRhX3NlY3Rpb24pOiBOZXcgZnVuY3Rpb24uCgkoVEFSR0VUX0FTTV9GVU5DVElPTl9ST0RBVEFfU0VDVElPTik6IFVzZSBpdC4KCjIwMDQtMTAtMDcgIERldmFuZyBQYXRlbCAgPGRwYXRlbEBhcHBsZS5jb20+CgoJKiByczYwMDAvYWx0aXZlYy5tZCAoVU5TUEVDX1ZDTVBCRlAsIFVOU1BFQ19WQ01QRVFVQiwgVU5TUEVDX1ZDTVBFUVVILAoJVU5TUEVDX1ZDTVBFUVVXLCBVTlNQRUNfVkNNUEdFRlAsIFVOU1BFQ19WQ01QR1RVQiwgVU5TUEVDX1ZDTVBHVFNCLAoJVU5TUEVDX1ZDTVBHVFVILCBVTlNQRUNfVkNNUEdUU0gsIFVOU1BFQ19WQ01QR1RVVywgVU5TUEVDX1ZDTVBHVFNXLAoJVU5TUEVDX1ZDTVBHVEZQLCBVTlNQRUNfVlNFTDRTSSwgVU5TUEVDX1ZTRUw0U0YsIFVOU1BFQ19WU0VMOEhJLAoJVU5TUEVDX1ZTRUwxNlFJLCBVTlNQRUNfVkNPTkRfVjRTSSwgVU5TUEVDX1ZDT05EX1Y0U0YsIFVOU1BFQ19WQ09ORF9WOEhJLAoJVU5TUEVDX1ZDT05EX1YxNlFJLCBVTlNQRUNfVkNPTkRVX1Y0U0ksIFVOU1BFQ19WQ09ORFVfVjhISSwKCVVOU1BFQ19WQ09ORFVfVjE2UUkpOiBOZXcgY29uc3RhbnQgZGVmaW5lcy4KCSh2Y29uZHY0c2ksIHZjb25kdjRzZiwgdmNvbmR2OGhpLCB2Y29uZHYxNnFpLCB2Y29uZHV2NHNpLCB2Y29uZHV2OGhpLAoJdmNvbmR1djE2cWkpOiBOZXcgcGF0dGVybnMuCgkqIHJzNjAwMC9yczYwMDAtcHJvdG9zLmggKHJzNjAwMF9lbWl0X3ZlY3Rvcl9jb25kX2V4cHIpOiBOZXcgZnVuY3Rpb24uCgkqIHJzNjAwMC9yczYwMDAuYyAocnM2MDAwX2VtaXRfdmVjdG9yX2NvbmRfZXhwcik6IE5ldyBmdW5jdGlvbi4KCShnZXRfdmVjX2NtcF9pbnNuKTogU2FtZS4KCShnZXRfdnNlbF9pbnNuKTogU2FtZS4KCShyczYwMDBfZW1pdF92ZWN0b3JfY29tcGFyZSk6IFNhbWUuCgkocnM2MDAwX2VtaXRfdmVjdG9yX3NlbGVjdCk6IFNhbWUuCgkoSU5TTl9OT1RfQVZBSUxBQkxFKTogTmV3LgoKMjAwNC0xMC0wNyAgWmRlbmVrIER2b3JhayAgPGR2b3Jha3pAc3VzZS5jej4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNzc0OQoJKiB0cmVlLXRhaWxjYWxsLmMgKGZpbmRfdGFpbF9jYWxscyk6IENoZWNrIHRoYXQgcGFyYW1ldGVyIGlzCglhIGdpbXBsZV9yZWcuCgoyMDA0LTEwLTA3ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL2lhNjQvaWE2NC5jOiBGaXggYSBjb21tZW50IHR5cG8uCgoyMDA0LTEwLTA3ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogZG9jL2luc3RhbGwudGV4aSAoKi0qLXNvbGFyaXMyKik6IEZpeCBtYXJrZXIgZm9yIFVSTC4KCjIwMDQtMTAtMDcgIEdpb3Zhbm5pIEJham8gIDxnaW92YW5uaWJham9AZ2NjLmdudS5vcmc+CgoJUFIgYysrLzE3MTE1CgkqIHRyZWUtaW5saW5lLmMgKGV4cGFuZF9jYWxsX2lubGluZSk6IERvIG5vdCB3YXJuIGZvciBmdW5jdGlvbnMKCW1hcmtlZCB3aXRoIGF0dHJpYnV0ZSBub2lubGluZS4KCjIwMDQtMTAtMDcgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJUFIgdGFyZ2V0LzE3ODYyCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChzcGFyY19vdXRwdXRfbWlfdGh1bmspOiBTZXQKCWN1cnJlbnRfZnVuY3Rpb25fdXNlc19vbmx5X2xlYWZfcmVncyBhcyB3ZWxsIGFzIHNwYXJjX2xlYWZfZnVuY3Rpb25fcC4KCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChzcGFyY19naW1wbGlmeV92YV9hcmcpOiBQYXNzICdmYWxzZScgaW5zdGVhZAoJb2YgMCBhcyA0dGggYXJndW1lbnQgdG8gcGFzc19ieV9yZWZlcmVuY2UuCglDYWxsIGJ1aWxkX3ZhX2FyZ19pbmRpcmVjdF9yZWYgaW5zdGVhZCBvZiBidWlsZF9mb2xkX2luZGlyZWN0X3JlZi4KCjIwMDQtMTAtMDYgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogY29uZmlnL3NoL3NoLmMgKHNoX2R3YXJmX2NhbGxpbmdfY29udmVudGlvbik6IEZpeCByZW5lc2FzIGR3YXJmCglhdHRyaWJ1dGUuCgoyMDA0LTEwLTA3ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE3NzcwCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKG1vdl88bG9hZD5sKTogUmVtb3ZlIGhhemFyZD1ub25lIGF0dHJpYnV0ZS4KCjIwMDQtMTAtMDcgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNzc5MQoJKiBsb29wLWRvbG9vcC5jIChkb2xvb3BfbW9kaWZ5KTogVGFrZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBhcwoJYXJndW1lbnQuCgkoZG9sb29wX29wdGltaXplKTogRXh0ZW5kIG9yIHNob3J0ZW4gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zCgl3aGVuIGNoYW5naW5nIG1vZGUgb2YgY291bnRlciByZWdpc3Rlci4KCSogbG9vcC1pdi5jIChsb3dwYXJ0X3N1YnJlZyk6IEV4cG9ydC4KCSogcnRsLmggKGxvd3BhcnRfc3VicmVnKTogRGVjbGFyZS4KCjIwMDQtMTAtMDcgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTc4MDYKCSogY2ZnaG9va3MuYyAoc3BsaXRfZWRnZSk6IFVwZGF0ZSBJUlJFRFVDSUJMRV9MT09QIGZsYWdzLgoJKiBjZmdsb29wbWFuaXAuYyAobG9vcF9zcGxpdF9lZGdlX3dpdGgpOiBVcGRhdGluZyBvZiBJUlJFRFVDSUJMRV9MT09QCglmbGFncyBtb3ZlZCB0byBzcGxpdF9lZGdlLgoKMjAwNC0xMC0wNyAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiBtaWRkbGUtZW5kLzE3ODM1CgkqIGV4cG1lZC5jIChleHBhbmRfc2Rpdl9wb3cyKTogRm9yY2UgYSBzdGFjayBhZGp1c3RtZW50CgliZWZvcmUgdGVudGF0aXZlbHkgYnVpbGRpbmcgdGhlIGNvbmRpdGlvbmFsIG1vdmUgc2VxdWVuY2UuCgoyMDA0LTEwLTA3ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE2ODE1CgkqIGZ1bmN0aW9uLmMgKGFzc2lnbl9wYXJtX3NldHVwX2Jsb2NrX3ApOiBUaWdodGVuIEJMT0NLX1JFR19QQURESU5HCgljaGVjay4KCSogY29uZmlnL3BhL3BhLmggKEJMT0NLX1JFR19QQURESU5HKTogRGVmaW5lIGluIHRlcm1zIG9mCglmdW5jdGlvbl9hcmdfcGFkZGluZy4KCjIwMDQtMTAtMDcgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCglQUiBib290c3RyYXAvMTc4NTcKCSogTWFrZWZpbGUuaW4gKHN0bXAtZml4cHJvdG8pOiBQYXNzIEZJWF9IRUFERVI9YnVpbGQvLi4uIHRvIGZpeHByb3RvLgoKMjAwNC0xMC0wNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGhvb2tzLmMgKGhvb2tfaW50X3ZvaWRfMSwgaG9va192b2lkX2ludCk6IFJlbW92ZS4KCSogaG9va3MuaDogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIHByb3RvdHlwZXMuCgoyMDA0LTEwLTA2ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiBtaWRkbGUtZW5kLzE3ODQ5CgkqIHRyZWUtbmVzdGVkLmMgKHdhbGtfc3RtdF9pbmZvKTogQWRkIGNoYW5nZWQgZmllbGQuCgkoY29udmVydF9ub25sb2NhbF9yZWZlcmVuY2UpOiBTZXQgY2hhbmdlZCB0byB3aGVuIHdlCgljaGFuZ2UgYSBkZWNsIHRvIHVubmVzdGVkIGRlY2wuCgk8Y2FzZSBBRERSX0VYUFI+OiBJbnN0ZWFkIG9mIGNoZWNraW5nIGlmIHRoZSBpbW1lZGlhdGUgcGFydAoJb2YgdGhlIEFERFJfRVhQUiBjaGFuZ2VkLCBjaGVjayB0aGUgZmllbGQgY2hhbmdlZC4KCVVzZSByZWNvbXB1dGVfdHJlZV9pbnZhcmFudF9mb3JfYWRkcl9leHByIGluc3RlYWQgb2YgdW5zZXR0aW5nCglUUkVFX0lOVkFSSUFOVC4KCShjb252ZXJ0X2xvY2FsX3JlZmVyZW5jZSk6ICBTZXQgY2hhbmdlZCB0byB3aGVuIHdlCgljaGFuZ2UgYSBkZWNsIHRvIHVubmVzdGVkIGRlY2wuCgk8Y2FzZSBBRERSX0VYUFI+OiBJbnN0ZWFkIG9mIGNoZWNraW5nIGlmIHRoZSBpbW1lZGlhdGUgcGFydAoJb2YgdGhlIEFERFJfRVhQUiBjaGFuZ2VkLCBjaGVjayB0aGUgZmllbGQgY2hhbmdlZC4KCUFsc28gY2FsbCByZWNvbXB1dGVfdHJlZV9pbnZhcmFudF9mb3JfYWRkcl9leHByIG9uIHRoZSBBRERSX0VYUFIuCgoyMDA0LTEwLTA2ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZGVmYXVsdHMuaCAoRFdBUkYyX0dFTkVSQVRFX1RFWFRfU0VDVElPTl9MQUJFTCk6IFJlbW92ZS4KCSogZHdhcmYyb3V0LmMgKGR3YXJmMm91dF9pbml0KTogUmVtb3ZlIHJlZmVyZW5jZXMgdG8KCURXQVJGMl9HRU5FUkFURV9URVhUX1NFQ1RJT05fTEFCRUwuCgkqIHN5c3RlbS5oOiBQb2lzb24gRFdBUkYyX0dFTkVSQVRFX1RFWFRfU0VDVElPTl9MQUJFTC4KCSogZG9jL3RtLnRleGkgKERXQVJGMl9HRU5FUkFURV9URVhUX1NFQ1RJT05fTEFCRUwpOiBSZW1vdmUuCgoyMDA0LTEwLTA2ICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtdHlwZWNrLmMgKGNvbnZlcnRfYXJndW1lbnRzKTogVGFrZSBleHByZXNzaW9uIGZvciBjYWxsZWQKCWZ1bmN0aW9uIHJhdGhlciB0aGFuIGl0cyBuYW1lLiAgSGFuZGxlIE9iakMgc2VsZWN0b3JzIGRpcmVjdGx5CglyYXRoZXIgdGhhbiByZWx5aW5nIG9uIHdhcm5fZm9yX2Fzc2lnbm1lbnQgdG8gZG8gc28uICBDYWxsIHdhcm5pbmcKCWRpcmVjdGx5IHJhdGhlciB0aGFuIHdhcm5fZm9yX2Fzc2lnbm1lbnQuICBVc2UgJXFFIGluIGRpYWdub3N0aWNzLgoJU2F5ICJhcmd1bWVudCIgcmF0aGVyIHRoYW4gImFyZyIgaW4gZGlhZ25vc3RpY3MuCgkoYnVpbGRfZnVuY3Rpb25fY2FsbCk6IFVwZGF0ZSBjYWxsIHRvIGNvbnZlcnRfYXJndW1lbnRzLgoKMjAwNC0xMC0wNiAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgZGVidWcvMTc3ODcKCSogZGJ4b3V0LmMgKGRieG91dF9zeW1ib2wpOiBSZWFsbHkgaGFuZGxlIFJFQ09SRCwgVU5JT04sIGFuZAoJRU5VTXMgc3BlY2lhbGx5IGluc3RlYWQgb2YganVzdCBzYXlpbmcgd2UgZG8uCgoyMDA0LTEwLTA2ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGR3YXJmMi5oOiBTeW5jIHdpdGggaW5jbHVkZS9lbGYvZHdhcmYyLmgKCjIwMDQtMTAtMDYgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogdHJlZS1wcmV0dHktcHJpbnQuYyAoZHVtcF9nZW5lcmljX25vZGUpOiBGaXggcHJpbnRpbmcgb2YgQklORk8KCWFuZCBUUkVFX1ZFQyBub2Rlcy4KCjIwMDQtMTAtMDYgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogbGFtYmRhLWNvZGUuYyAobGFtYmRhX2xvb3BuZXN0X3RvX2djY19sb29wbmVzdCk6IENvbnZlcnQKCXRvIHVzZSBGT1JfRUFDSF9TU0FfVVNFX09QRVJBTkQgaXRlcmF0b3IsIGFuZCBwcm9wYWdhdGVfdmFsdWUuCgoyMDA0LTEwLTA2ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIGxhbWJkYS1jb2RlLmMgKGNvbXB1dGVfbmVzdF91c2luZ19mb3VyaWVyX21vdHpraW4pOiBOZXcKCWZ1bmN0aW9uLgoJKGxhbWJkYV9jb21wdXRlX2F1eGlsbGFyeV9zcGFjZSk6IFNwbGl0IGZyb20gaGVyZS4KCjIwMDQtMTAtMDYgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAoZXhwcl9pbnZhcmlhbnRfaW5fbG9vcCk6IE1ha2Ugbm9uLXN0YXRpYy4KCSogdHJlZS1mbG93Lmg6IEFkZCBwcm90b3R5cGUuCgkqIGxhbWJkYS1jb2RlLmMgKGludmFyaWFudF9pbl9sb29wX2FuZF9vdXRlcl9sb29wcyk6IFVzZQoJZXhwcl9pbnZhcmlhbnRfaW5fbG9vcC4KCjIwMDQtMTAtMDYgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jICh0aHJlYWRfanVtcHMpOiBSZW1vdmUgYSBkdXBsaWNhdGUgY2hlY2sgZm9yCglFWElUX0JMT0NLX1BUUi4KCjIwMDQtMTAtMDYgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAtcHJvdG9zLmggKHNfaW1tX29wZXJhbmQpOiBSZW1vdmUuCgkoczM5MF9wb29sX29wZXJhbmQpOiBBZGQgcHJvdG90eXBlLgoJKiBjb25maWcvczM5MC9zMzkwLmMgKGdlbmVyYWxfc19vcGVyYW5kKTogUmVtb3ZlLgoJKHNfaW1tX29wZXJhbmQpOiBSZW1vdmUuCgkoc19vcGVyYW5kKTogTWVyZ2UgY29udGVudHMgb2YgZ2VuZXJhbF9zX29wZXJhbmQuCgkoczM5MF9wb29sX29wZXJhbmQpOiBOZXcgZnVuY3Rpb24uCgkqIGNvbmZpZy9zMzkwL3MzOTAuaCAoUFJFRElDQVRFX0NPREVTKTogUmVtb3ZlIHNfaW1tX29wZXJhbmQuCgkqIGNvbmZpZy9zMzkwL3MzOTAubWQgKCIqY21wZGlfY2N0IiwgIipjbXBzaV9jY3QiKTogTmV3IGluc25zLgoJKCIqY21wZGlfY2N1Iik6IE1lcmdlIFEtPlEgYWx0ZXJuYXRpdmUuCgkoIipjbXBzaV9jY3UiLCAiKmNtcGhpX2NjdSIpOiBMaWtld2lzZS4KCSgiKmNtcHFpX2NjdSIpOiBNZXJnZSBRLT5RLCBuLT5RLCBuLT5TIGFsdGVybmF0aXZlcy4KCSgiKmNsaSIpOiBSZW1vdmUuCgkoIipjbXBkaV9jY3VfbWVtIiwgIipjbXBzaV9jY3VfbWVtIik6IExpa2V3aXNlLgoJKCIqY21waGlfY2N1X21lbSIsICIqY21wcWlfY2N1X21lbSIpOiBMaWtld2lzZS4KCSgiKm1vdnN0cmljdGhpIik6IFVzZSBtZW1vcnlfb3BlcmFuZCBpbnN0ZWFkIG9mIHNfaW1tX29wZXJhbmQuCgoyMDA0LTEwLTA2ICBTdGV2ZSBFbGxjZXkgIDxzamVAY3VwLmhwLmNvbT4KCgkqIGNvbmZpZy9pYTY0L2lhNjQuaCAoRlVOQ1RJT05fQVJHX0JPVU5EQVJZKTogQ2hhbmdlIG1hY3JvIHRvCgljYWxsIGlhNjRfZnVuY3Rpb25fYXJnX2JvdW5kYXJ5LgoJKiBjb25maWcvaWE2NC9pYTY0LXByb3Rvcy5oIChpYTY0X2Z1bmN0aW9uX2FyZ19ib3VuZGFyeSk6IE5ldy4KCSogY29uZmlnL2lhNjQvaWE2NC5jIChpYTY0X2Z1bmN0aW9uX2FyZ19ib3VuZGFyeSk6IE5ldy4KCShpYTY0X2Z1bmN0aW9uX2FyZ19hZHZhbmNlKTogRG8gbm90IHB1dCAxMjggYml0IGZsb2F0cyBpbnRvCglGUCByZWdpc3RlcnMuCgoyMDA0LTEwLTA2ICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBidWlsdGlucy5jIChleHBhbmRfYnVpbHRpbl9zdHJjcHkpOiBEZWxldGUgZHVwbGljYXRlIGNvZGUuCglBY2NlcHQgYW4gZXhwcmVzc2lvbiBpbnN0ZWFkIG9mIGFuIGFyZ2xpc3QuCgkoZXhwYW5kX2J1aWx0aW5fc3RwY3B5KTogQWNjZXB0IGFuIGV4cHJlc3Npb24gaW5zdGVhZCBvZiBhbgoJYXJnbGlzdC4KCjIwMDQtMTAtMDYgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJUFIgdGFyZ2V0LzE2MDA3CgkqIGRvYy9pbnN0YWxsLnRleGkgKCotKi1zb2xhcmlzMiopOiBNZW50aW9uIHBvdGVudGlhbCBwcm9ibGVtCgl3aXRoIFN1biBhc3NlbWJsZXIgKyBHTlUgbGlua2VyIGFuZCBDKysgcHJvZ3JhbXMuCglEb2N1bWVudCBzdGF0dXMgb2YgYmludXRpbHMgMi4xNSByZWxlYXNlLgoKMjAwNC0xMC0wNiAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogY3NlLmMgKGNzZV9tYWluKTogS2lsbCBwdXNoL3BvcCBjb250ZXh0LgoKMjAwNC0xMC0wNSAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHByZXR0eS1wcmludC5jOiBJbmNsdWRlIHRyZWUuaC4KCShwcF9iYXNlX3ByZXBhcmVfdG9fZm9ybWF0KTogTmV3IGZ1bmN0aW9uLCBsb2dpYyBmcm9tCgl0ZXh0X3NwZWNpZmllc19sb2NhdGlvbi4KCShwcF9iYXNlX2Zvcm1hdF90ZXh0KTogVXNlIGdjY19hc3NlcnQuCgkqIHByZXR0eS1wcmludC5oIChwcF9wcmVwYXJlX3RvX2Zvcm1hdCk6IE5ldyBtYWNyby4KCShwcF9iYXNlX3ByZXBhcmVfdG9fZm9ybWF0KTogUHJvdG90eXBlLgoJKiBkaWFnbm9zdGljLmMgKHRleHRfc3BlY2lmaWVzX2xvY2F0aW9uKTogRGVsZXRlLgoJKGJ1Z19yZXBvcnRfcmVxdWVzdCk6IERlbGV0ZS4KCShkaWFnbm9zdGljX3NldF9pbmZvKTogRG9uJ3QgY2FsbCB0ZXh0X3NwZWNpZmllc19sb2NhdGlvbi4KCShkaWFnbm9zdGljX2FjdGlvbl9hZnRlcl9vdXRwdXQpOiBQdXQgdGV4dCBmcm9tCglidWdfcmVwb3J0X3JlcXVlc3QgaW5saW5lIGhlcmUuICBVc2UgZ2NjX3VucmVhY2hhYmxlLgoJKGRpYWdub3N0aWNfcmVwb3J0X2N1cnJlbnRfZnVuY3Rpb24pOiBGaXggY29tbWVudC4KCShkaWFnbm9zdGljX3JlcG9ydF9kaWFnbm9zdGljKTogQ2xhcmlmeSBsb2dpYyBmb3IgZXJyb3IgcmVjdXJzaW9uLgoJQ2FsbCBwcF9wcmVwYXJlX3RvX2Zvcm1hdCBiZWZvcmUgZGlhZ25vc3RpY19zdGFydGVyLgoJKHRyaW1fZmlsZW5hbWUpOiBVc2UgSVNfRElSX1NFUEFSQVRPUi4KCShmYXRhbF9lcnJvciwgaW50ZXJuYWxfZXJyb3IpOiBVc2UgZ2NjX3VucmVhY2hhYmxlLgoJKGVycm9yX3JlY3Vyc2lvbik6IENhbGwgZGlhZ25vc3RpY19hY3Rpb25fYWZ0ZXJfb3V0cHV0IHRvCglpc3N1ZSB0aGUgYnVnX3JlcG9ydF9yZXF1ZXN0IG1lc3NhZ2UgYW5kIGV4aXQuCgkqIE1ha2VmaWxlLmluIChkaWFnbm9zdGljLm8sIHByZXR0eS1wcmludC5vKTogVXBkYXRlIGRlcGVuZGVuY2llcy4KCgkqIGMtcGFyc2UuaW46IEFkZCBsaXN0IG9mIGRpYWdub3N0aWMgbWVzc2FnZXMgdG8gaW5zdWxhdGUKCXRyYW5zbGF0aW9uIHRlbXBsYXRlIGZyb20gdmVyc2lvbiBvZiB5YWNjL2Jpc29uIHVzZWQgdG8KCWNvbXBpbGUgdGhlIGdyYW1tYXIuCgoyMDA0LTEwLTA2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCVBSIDE2NDA2CgkqIGRvYy90bS50ZXhpIChVU0VfTERfQVNfTkVFREVELCBMSU5LX0VIX1NQRUMpOiBEb2N1bWVudC4KCjIwMDQtMTAtMDUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBiYXNpYy1ibG9jay5oOiBSZW1vdmUgdGhlIHByb3RvdHlwZSBmb3IKCWZsb3dfcHJlb3JkZXJfdHJhbnN2ZXJzYWxfY29tcHV0ZS4KCSogY2ZnYW5hbC5jIChkZnN0X25vZGUpOiBSZW1vdmUuCgkoZmxvd19wcmVvcmRlcl90cmFuc3ZlcnNhbF9jb21wdXRlKTogTGlrZXdpc2UuCgkqIHJ0bC5oOiBSZW1vdmUgdGhlIHByb3RvdHlwZSBmb3IgZ2V0X2p1bXBfdGFibGVfb2Zmc2V0LgoJKiBydGxhbmFsLmMgKGdldF9qdW1wX3RhYmxlX29mZnNldCk6IFJlbW92ZS4KCjIwMDQtMTAtMDUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgMTc3NTYKCSogdHJlZS1zc2Etb3BlcmFuZHMuYyAoZ2V0X2V4cHJfb3BlcmFuZHMpOiBIYW5kbGUgQ09OU1RfREVDTC4KCjIwMDQtMTAtMDUgIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgoJUFIgYm9vdHN0cmFwLzE3ODE3CgkqIE1ha2VmaWxlLmluOiBTdGFnZSB0aGUgYnVpbGQgZGlyZWN0b3J5IHRvby4KCjIwMDQtMTAtMDUgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9mcnYvZnJ2LmggKExFR0lUSU1JWkVfQUREUkVTUyk6IE5ldy4KCgkqIGNvbmZpZy9mcnYvZnJ2LXByb3Rvcy5oIChmcnZfbGVnaXRpbWl6ZV9hZGRyZXNzKTogUHJvdG9pemUuCgkoZnJ2X2VtaXRfbW92ZSk6IFNhbWUuCgoJKiBjb25maWcvZnJ2L2Zydi5jIChmcnZfZW1pdF9tb3ZlKTogTmV3LgoJKGZydl9sZWdpdGltaXplX2FkZHJlc3MpOiBOZXcuCgoJKiBjb25maWcvZnJ2L2Zydi5tZCAoIm1vdnNpIik6IENhbGwgZnJ2X2VtaXRfbW92ZS4KCSgibW92cWkiKTogU2FtZS4KCSgibW92aGkiKTogU2FtZS4KCSgibW92ZGkiKTogU2FtZS4KCSgibW92c2YiKTogU2FtZS4KCSgibW92ZGYiKTogU2FtZS4KCjIwMDQtMTAtMDUgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYy1kZWNsLmMgKGRlY2xzcGVjc19hZGRfdHlwZSk6IERvbid0IHBlZHdhcm4gZm9yIF9Db21wbGV4IGluCglzeXN0ZW0gaGVhZGVycy4KCjIwMDQtMTAtMDUgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYy1kZWNsLmMgKHB1c2hkZWNsKTogV2hlbiBhbiBleHRlcm4gZGVjbGFyYXRpb24gYXQgYmxvY2sgc2NvcGUKCXJlZmVycyB0byBhIHZpc2libGUgZW50aXR5IHdpdGggaW50ZXJuYWwgbGlua2FnZSwgdXNlIHRoZSBvbGQgREVDTAoJcmF0aGVyIHRoYW4gdGhlIG5ldyBvbmUuCgoyMDA0LTEwLTA1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1jZmcuYyAoY2xlYW51cF90cmVlX2NmZyk6IFJlbW92ZSBleHRyYSBwYXJlbnRoZXNlcyBpbgoJY29tbWVudHMuCgoyMDA0LTEwLTA1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1jZmcuYyAodGhyZWFkX2p1bXBzKTogUmVtb3ZlIGEgZHVwbGljYXRlIGNoZWNrIGZvcgoJYW4gaW5maW5pdGUgbG9vcC4KCjIwMDQtMTAtMDUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jICh0aHJlYWRfanVtcHMpOiBJdGVyYXRlIHdpdGggRk9SX0VBQ0hfQkIgaW5zdGVhZAoJb2YgRk9SX0JCX0JFVFdFRU4uICBSZW1vdmUgYSB1c2VsZXNzIGNoZWNrIGZvciB1bnJlYWNoYWJsZQoJYmxvY2tzLgoKMjAwNC0xMC0wNSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHRyZWUtY2ZnLmMgKGNsZWFudXBfdHJlZV9jZmcpOiBEb24ndCBjYWxsCglkZWxldGVfdW5yZWFjaGFibGVfYmxvc2soKSBhZnRlciB0aHJlYWRfanVtcHMoKS4KCSh0aHJlYWRfanVtcHMpOiBBbHdheXMgcmVtb3ZlIGJhc2ljIGJsb2NrcyBhcyB0aGV5IGJlY29tZQoJdW5yZWFjaGFibGUuCgoyMDA0LTEwLTA1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1jZmcuYyAoY2xlYW51cF90cmVlX2NmZyk6IFJlbW92ZSB2YXJpYWJsZQoJc29tZXRoaW5nX2NoYW5nZWQuICBTaW1wbGlmeSB0aGUgd2hpbGUgbG9vcC4KCjIwMDQtMTAtMDUgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGJ1aWx0aW5zLmMgKGV4cGFuZF9idWlsdGluX21lbW1vdmUpOiBEZWxldGUgZHVwbGljYXRlIGNvZGUKCWFuZCBhY2NlcHQgYSB0cmVlIHR5cGUgZm9yIHRoZSByZXN1bHQuCgkoZXhwYW5kX2J1aWx0aW5fYmNvcHkpOiBBY2NlcHQgYSB0cmVlIHR5cGUgZm9yIHRoZSByZXN1bHQuCgkoZm9sZF9idWlsdGluX21lbW1vdmUpOiBBY2NlcHQgYW4gYXJnbGlzdCBhbmQgdHJlZSB0eXBlIGZvcgoJdGhlIHJlc3VsdC4KCjIwMDQtMTAtMDUgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoczM5MF9kdW1wX3Bvb2wpOiBSZW1vdmUgcmV0dXJuIHZhbHVlLgoJVXNlIGdlbl9wb29sX2FsaWduLCBnZW5fcG9vbF9zZWN0aW9uX3N0YXJ0L2VuZCBpbnN0ZWFkIG9mCglnZW5fcG9vbF9zdGFydC9lbmRfMzEvNjQuCgkqIGNvbmZpZy9zMzkwL3MzOTAubWQgKFVOU1BFQ1ZfUE9PTF9TVEFSVCwgVU5TUEVDVl9QT09MX0VORCk6IFJlbW92ZS4KCShVTlNQRUNWX1BPT0xfU0VDVElPTiwgVU5TUEVDVl9QT09MX0FMSUdOKTogTmV3IGNvbnN0YW50cy4KCSgicG9vbF9zdGFydF8zMSIsICJwb29sX2VuZF8zMSIpOiBSZW1vdmUuCgkoInBvb2xfc3RhcnRfNjQiLCAicG9vbF9lbmRfNjQiKTogTGlrZXdpc2UuCgkoInBvb2xfYWxpZ24iLCAicG9vbF9zZWN0aW9uX3N0YXJ0IiwgInBvb2xfc2VjdGlvbl9lbmQiOiBOZXcgaW5zbnMuCgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHMzOTBfY2Fubm90X2NvcHlfaW5zbl9wKTogTmV3IGZ1bmN0aW9uLgoJKFRBUkdFVF9DQU5OT1RfQ09QWV9JTlNOX1ApOiBEZWZpbmUuCgkoczM5MF9jYW5ub3RfZm9yY2VfY29uc3RfbWVtKTogSGFuZGxlIFVOU1BFQ19JTlNOLgoJKHN0cnVjdCBjb25zdGFudF9wb29sKTogTmV3IG1lbWJlciAnZXhlY3V0ZScuCgkoczM5MF9hZGRfZXhlY3V0ZSwgczM5MF9maW5kX2V4ZWN1dGUpOiBOZXcgZnVuY3Rpb25zLgoJKHMzOTBfZXhlY3V0ZV9sYWJlbCwgczM5MF9leGVjdXRlX3RhcmdldCk6IExpa2V3aXNlLgoJKHMzOTBfZHVtcF9wb29sKTogT3V0cHV0IGluLXBvb2wgZXhlY3V0ZSB0YXJnZXQgdGVtcGxhdGVzLgoJKHMzOTBfZHVtcF9leGVjdXRlKTogTmV3IGZ1bmN0aW9uLgoJKHMzOTBfYWxsb2NfcG9vbCwgczM5MF9mcmVlX3Bvb2wpOiBIYW5kbGUgZXhlY3V0ZSB0ZW1wbGF0ZXMuCgkoczM5MF9tYWlucG9vbF9zdGFydCwgczM5MF9tYWlucG9vbF9maW5pc2gpOiBMaWtld2lzZS4KCShzMzkwX2NodW5raWZ5X3N0YXJ0LCBzMzkwX2NodW5raWZ5X2ZpbmlzaCk6IExpa2V3aXNlLgoJKiBjb25maWcvczM5MC9zMzkwLm1kIChVTlNQRUNfSU5TTiwgVU5TUEVDX0VYRUNVVEUpOiBOZXcgY29uc3RhbnRzLgoJKCIqZXhlY3V0ZSIpOiBOZXcgaW5zbiBwYXR0ZXJuLgoJKCJtb3ZtZW1fc2hvcnQiLCAiKm1vdm1lbV9zaG9ydCIpOiBVc2Ugc3BsaXR0ZXJzIHRvIGdlbmVyYXRlCglleHBsaWNpdCBleGVjdXRlIHBhdHRlcm4sIHJlbW92ZSBlbWJlZGRlZCBleGVjdXRlLgoJKCJjbHJtZW1fc2hvcnQiLCAiKmNscm1lbV9zaG9ydCIpOiBMaWtld2lzZS4KCSgiY21wbWVtX3Nob3J0IiwgIipjbXBtZW1fc2hvcnQiKTogTGlrZXdpc2UuCgoyMDA0LTEwLTA1ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIHRyZWUtc3NhLmMgKHZlcmlmeV9zc2EpOiBWZXJpZnkgcGhpIGFyZ3VtZW50cyBvbmx5Cgljb250YWluIHJlbmFtZWQgbmFtZXMuCgoyMDA0LTEwLTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3JzNjAwMC9saW51eC5oOiBGb3JtYXR0aW5nLCB3aGl0ZXNwYWNlLgoJKiBjb25maWcvcnM2MDAwL2xpbnV4NjQuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLXByb3Rvcy5oOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYzogTGlrZXdpc2UuCgkoZWFzeV92ZWN0b3Jfc3BsYXRfY29uc3QpOiBBZGQgZmFsbCB0aHJ1IGNvbW1lbnRzLgoJKG91dHB1dF92ZWNfY29uc3RfbW92ZSk6IExpa2V3aXNlLgoKMjAwNC0xMC0wNSAgS2VsbGV5IENvb2sgIDxrY29va0BnY2MuZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmluOiBVcGRhdGUgLVduby1lcnJvciBleGNlcHRpb25zIGZvciBtb3ZlIHRvIGJ1aWxkIGRpci4KCjIwMDQtMTAtMDUgIENoYW8tWWluZyBGdSAgPGZ1QG1pcHMuY29tPgoJICAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGRvYy9pbnZva2UudGV4aSAoLW1wYWlyZWQtc2luZ2xlKTogTGluayB0byB0aGUgbmV3IGRlc2NyaXB0aW9uIG9mIHRoZQoJYnVpbHQtaW4gZnVuY3Rpb25zLiAgRG9jdW1lbnQgZGVwZW5kZW5jaWVzLgoJKC1taXBzM2QpOiBBZGQgbGluayBoZXJlIHRvby4KCSogZG9jL2V4dGVuZC50ZXhpIChNSVBTIFBhaXJlZC1TaW5nbGUgU3VwcG9ydCk6IE5ldyBzZWN0aW9uLgoKMjAwNC0xMC0wNCAgQ2hhby15aW5nIEZ1ICA8ZnVAbWlwcy5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLmggKFVOSVRTX1BFUl9TSU1EX1dPUkQpOiBEZWZpbmUuCgoyMDA0LTEwLTA0ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWRvbS5jICh0cmVlX3NzYV9kb21pbmF0b3Jfb3B0aW1pemUpOgoJSW5pdGlhbGl6ZSBPUFRfU1RBVFMgdG8gMC4KCjIwMDQtMTAtMDQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWRhdGEtcmVmLmM6IEZpeCBjb21tZW50IHR5cG9zLgoKMjAwNC0xMC0wNCAgU2ViYXN0aWFuIFBvcCAgPHBvcEBjcmkuZW5zbXAuZnI+CgoJKiB0cmVlLWRhdGEtcmVmLmMgKGFycmF5X2Jhc2VfbmFtZV9kaWZmZXJfcCk6IEZpeCBjb21tZW50cy4gIFdoZW4KCXRoZSBwcmVkaWNhdGUgY2Fubm90IGJlIGNvbXB1dGVkLCBkb24ndCBpbml0aWFsaXplIHRoZSByZXN1bHQgdG8KCWZhbHNlLgoKMjAwNC0xMC0wMSAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBkd2FyZjIuaCAoZHdhcmZfY2FsbGluZ19jb252ZW50aW9uKTogQWRkIEdOVSBwcmVmaXggdG8KCWxvY2FsbHkgZGVmaW5lZCBlbnVtLgoJKiBkd2FyZjJvdXQuYyAoYWRkX2NhbGxpbmdfY29udmVudGlvbl9hdHRyaWJ1dGUpOiBEb24ndAoJZW1pdCBEV19DQ19ub3JtYWwuCgoyMDA0LTEwLTAzICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiBjLzE3MTc4LCBQUiBjLzE3ODIwCgkqIGMtZGVjbC5jIChwb3Bfc2NvcGUpOiBEbyBub3Qgd2FybiBhYm91dCB1bnVzZWQgc3RhdGljCgl2YXJpYWJsZXMgYXMgdGhleSB3YXJuZWQgaW4gdGhlIG1pZGRsZS1lbmQuCgoyMDA0LTEwLTAzICBLYXZlaCBSLiBHaGF6aSAgPGdoYXppQGNhaXAucnV0Z2Vycy5lZHU+CgoJKiBidWlsdGlucy5jIChleHBhbmRfYnVpbHRpbl9tZW1jcHkpOiBEZWxldGUgZHVwbGljYXRlIGNvZGUKCWFuZCBtYWtlIHRoZSBmaXJzdCBwYXJhbWV0ZXIgdGhlIGV4cHJlc3Npb24gbm90IHRoZSBhcmdsaXN0LgoKMjAwNC0xMC0wMyAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogZXhwci5jIChleHBhbmRfZXhwcl9hZGRyX2V4cHIpOiBPbmx5IGFjY2VwdCBQbW9kZSBvciBwdHJfbW9kZQoJYXMgdmFsaWQgbW9kZXMgdG8gZXhwYW5kIGFkZHJlc3MgZXhwcmVzc2lvbnMuCgoyMDA0LTEwLTAzICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtYXV4LWluZm8uYywgYy1jb21tb24uYywgYy1jb21tb24uaCwgYy1jcHBidWlsdGluLmMsIGMtZGVjbC5jLAoJYy1mb3JtYXQuYywgYy1pbmNwYXRoLmMsIGMtbGV4LmMsIGMtb2JqYy1jb21tb24uYywgYy1vcHRzLmMsCgljLXBhcnNlLmluLCBjLXBjaC5jLCBjLXBwb3V0cHV0LmMsIGMtcHJhZ21hLmMsIGMtdHlwZWNrLmM6IEZvbGxvdwoJY29kZSBmb3JtYXR0aW5nIGNvbnZlbnRpb25zLgoKMjAwNC0xMC0wMyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5tZCAoPHU+bXVsc2lkaTNfMzJiaXRfcjQwMDApOiBGaXggdW5zaWduZWQgY2FzZS4KCjIwMDQtMTAtMDMgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTY2MzIKCSogZm9sZC1jb25zdC5jIChmb2xkKSBbRVFfRVhQUl06IFdoZW4gc2VlaW5nIGlmIEQgJiB+QyAhPSAwIHRvCglmb2xkIChBICYgQykgPT0gRCBpbnRvIDAsIGZvbGQgfkMuICBTaW1pbGFybHksIGZvciB0aGUgY2FzZQoJd2hlcmUgfCBpcyB1c2VkIGluc3RlYWQgb2YgJi4KCjIwMDQtMTAtMDMgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBnaW5jbHVkZS9zdGRkZWYuaDogRml4IGEgY29tbWVudCB0eXBvLgoKMjAwNC0xMC0wMyAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiB0YXJnZXQvMTc0NDMKCSogY29uZmlnLmdjYyAoaT84Ni0qLXNvbGFyaXMyKik6IFJlc3RvcmUgY29ycmVjdCBsb2dpYwoJZm9yIC0tZW5hYmxlLXRocmVhZHMgb3B0aW9uLgoJKHNwYXJjNjQtKi1zb2xhcmlzMiopOiBMaWtld2lzZS4KCShzcGFyYy0qLXNvbGFyaXMyKik6IExpa2V3aXNlLgoKMjAwNC0xMC0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy9yczYwMDAvbGludXguaCAoVEFSR0VUX0M5OV9GVU5DVElPTlMpOiBEZWZpbmUuCgkoT1NfTUlTU0lOR19QT1dFUlBDNjQpOiBNb3ZlLCBhbmQgY29tbWVudC4KCSogY29uZmlnL3JzNjAwMC9saW51eDY0LmggKFRBUkdFVF9DOTlfRlVOQ1RJT05TKTogRGVmaW5lLgoJKE9TX01JU1NJTkdfUE9XRVJQQzY0KTogTW92ZSwgYW5kIGNvbW1lbnQuCgoyMDA0LTEwLTAyICBJYW4gTGFuY2UgVGF5bG9yICA8aWFuQHdhc2FiaXN5c3RlbXMuY29tPgoKCSogYXJtLmMgKG91dHB1dF9jYWxsX21lbSk6IEFkZCBtaXNzaW5nIFx0LgoKMjAwNC0xMC0wMiAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fbWVtY21wLCBleHBhbmRfYnVpbHRpbl9zdHJjbXAsCglleHBhbmRfYnVpbHRpbl9zdHJuY21wKTogRGVsZXRlIGR1cGxpY2F0ZSBjb2RlLgoKMjAwNC0xMC0wMiAgRnJhbmsgQ2guIEVpZ2xlciAgPGZjaGVAcmVkaGF0LmNvbT4KCgkqIHRyZWUtbXVkZmxhcC5jIChtZl9idWlsZF9jaGVja19zdGF0ZW1lbnRfZm9yKTogUmVvcmdhbml6ZSB0bwoJdGFrZSBjaGVjay1iYXNlIGFuZCAtbGltaXQgYXJndW1lbnRzLgoJKG1mX3hmb3JtX2RlcmVmc18xKTogUmVvcmdhbml6ZSBzbGlnaHRseSB0byBwYXNzIHByb3BlciBiYXNlL2xpbWl0CgljaGVjayByYW5nZXMgZm9yIEFSUkFZX1JFRiBhbmQgQ09NUE9ORU5UX1JFRi4KCShleGVjdXRlX211ZGZsYXBfZm5jdGlvbl9vcHMsIC4uLl9kZWNscyk6IExpbWl0IHVubmVjZXNzYXJ5CglpbnN0cnVtZW50YXRpb24uCgoyMDA0LTEwLTAyICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtb2JqYy1jb21tb24uYyAoY190cmVlX3ByaW50ZXIpOiBDb3JyZWN0IGRlc2NyaXB0aW9uIG9mICVFLgoJRG9uJ3QgZmFsbCB0aHJvdWdoIGFmdGVyIHByaW50aW5nIGFuIGV4cHJlc3Npb24uCgoyMDA0LTEwLTAyICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1jZmcuYywgY29uZmlnL3MzOTAvdHBmLXVud2luZC5oOiBGaXggY29tbWVudCB0eXBvcy4KCjIwMDQtMTAtMDIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jIChjbGVhbnVwX3RyZWVfY2ZnKTogU3BlZWQgdXAgYnkgY2FsbGluZwoJZGVsZXRlX3VucmVjaGFibGVfYmxvY2tzKCkgb25seSB3aGVuIG5lY2Vzc2FyeS4KCjIwMDQtMTAtMDIgIFAuSi4gRGFyY3kgIDxkYXJjeXBqQHVzLmlibS5jb20+CgoJKiBndGhyLXRwZi5oIChfX2d0aHJlYWRfcmVjdXJzaXZlX211dGV4X3QpOiBOZXcgdHlwZS4KCShfX0dUSFJFQURfUkVDVVJTSVZFX01VVEVYX0lOSVQpOiBEZWZpbmUuCgkoX19ndGhyZWFkX3JlY3Vyc2l2ZV9tdXRleF9sb2NrLCBfX2d0aHJlYWRfcmVjdXJzaXZlX211dGV4X3RyeWxvY2ssCglfX2d0aHJlYWRfcmVjdXJzaXZlX211dGV4X3VubG9jayk6IE5ldyBmdW5jdGlvbnMuCgoyMDA0LTEwLTAyICBQLkouIERhcmN5ICA8ZGFyY3lwakB1cy5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvdC10cGYgKExJQjJBRERFSCk6IFJlbW92ZSB0cGYtZWguYy4KCSogY29uZmlnL3MzOTAvdHBmLWVoLmM6IFJlbW92ZSBmaWxlLgoJKiBjb25maWcvczM5MC90cGYtdW53aW5kLmg6IE5ldyBmaWxlLgoJKiBjb25maWcvczM5MC90cGYuaCAoTURfRkFMTEJBQ0tfRlJBTUVfU1RBVEVfRk9SKTogUmVtb3ZlLgoJKE1EX1VOV0lORF9TVVBQT1JUKTogRGVmaW5lLgoKMjAwNC0xMC0wMiAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBjLXR5cGVjay5jICh3YXJuX2Zvcl9hc3NpZ25tZW50KTogRG9uJ3QgcGVybWl0IGFyZ251bSA9PSAwLgoKMjAwNC0xMC0wMSAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC1wcm90b3MuaCAoczM5MF9jb21wYXJpc29uKTogQWRkIHByb3RvdHlwZS4KCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX2NvbXBhcmlzb24pOiBOZXcgZnVuY3Rpb24uCgkoczM5MF9icmFuY2hfY29uZGl0aW9uX21hc2spOiBSZXR1cm4gLTEgZm9yIGludmFsaWQgY29tcGFyaXNvbnMuCgkoczM5MF9icmFuY2hfY29uZGl0aW9uX21uZW1vbmljKTogQXNzZXJ0IHZhbGlkIGNvbXBhcmlzb24uCgkqIGNvbmZpZy9zMzkwL3MzOTAuaCAoUFJFRElDQVRFX0NPREVTKTogQWRkIHMzOTBfY29tcGFyaXNvbi4KCSogY29uZmlnL3MzOTAvczM5MC5tZCAoIipjanVtcF82NCIsICIqY2p1bXBfMzEiLCAiKmNqdW1wX2xvbmciLAoJIippY2p1bXBfNjQiLCAiKmljanVtcF8zMSIsICIqaWNqdW1wX2xvbmciLCAiKnRyYXAiKTogVXNlCglzMzkwX2NvbXBhcmlzb24gaW5zdGVhZCBvZiBjb21wYXJpc29uX29wZXJhdG9yLgoKCSogY29uZmlnL3MzOTAvczM5MC5tZCAoVU5TUEVDX0NNUElOVCk6IE5ldyBjb25zdGFudC4KCSgiY21wbWVtZGkiKTogUmVtb3ZlLgoJKCJjbXBtZW1fc2hvcnQiLCAiKmNtcG1lbV9zaG9ydCIpOiBVc2UgQ0NVbW9kZSBpbnN0ZWFkIG9mIENDU21vZGUuCgkoImNtcG1lbV9sb25nIiwgIipjbXBtZW1fbG9uZ182NCIsICIqY21wbWVtX2xvbmdfMzEiKTogTGlrZXdpc2UuCgkoImNtcGludF9zaSIpOiBSZW5hbWUgdG8gLi4uCgkoIipjbXBpbnRfc2kiKTogLi4uIHRoaXMuICBVc2UgVU5TUEVDX0NNUElOVC4KCSgiY21waW50X2RpIiwgIipjbXBpbnRfZGkiKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoczM5MF9jYW5vbmljYWxpemVfY29tcGFyaXNvbik6IFJlbW92ZQoJcmVkdW5kYW50IFVOU1BFQ19DTVBJTlQgY29udmVyc2lvbnMuCgkoczM5MF9leHBhbmRfY21wbWVtKTogQWRhcHQgdG8gY21waW50IHBhdHRlcm4gY2hhbmdlcy4KCjIwMDQtMTAtMDEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb2xsZWN0Mi5jIChDT0xMRUNUX1BBUlNFX0ZMQUcpOiBSZW1vdmUuCgkobWFpbik6IFJlbW92ZSBhIHJlZmVyZW5jZSB0byBDT0xMRUNUX1BBUlNFX0ZMQUcKCSogc3lzdGVtLmg6IFBvaXNvbiBDT0xMRUNUX1BBUlNFX0ZMQUcuCgkqIGRvYy90bS50ZXhpIChDT0xMRUNUX1BBUlNFX0ZMQUcpOiBSZW1vdmUuCgoyMDA0LTEwLTAxICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL2FybS9jcnRpLmFzbTogR2l2ZSBfaW5pdCBhbmQgX2ZpbmkgZnVuY3Rpb24gdHlwZS4KCjIwMDQtMTAtMDEgIFpkZW5layBEdm9yYWsgIDxkdm9yYWt6QHN1c2UuY3o+CgoJKiBjb21tb24ub3B0IChmdHJlZS1sb29wLWl2Y2Fub24pOiBFbmFibGUgYnkgZGVmYXVsdC4KCSogdHJlZS1zc2EtbG9vcC1pdmNhbm9uLmMgKHRyeV91bnJvbGxfbG9vcF9jb21wbGV0ZWx5KToKCUVuYWJsZSBjb21wbGV0ZSBsb29wIHVucm9sbGluZy4KCShjYW5vbmljYWxpemVfaW5kdWN0aW9uX3ZhcmlhYmxlcywgdHJlZV91bnJvbGxfbG9vcHNfY29tcGxldGVseSk6CglSZXNldCBzY2V2IGluZm8uCgoyMDA0LTEwLTAxICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL2FybS9hcm0uYyAodGh1bWJfY29tcHV0ZV9zYXZlZF9yYWdfbWFzayk6IE9yIHdpdGggYml0bWFzaywKCW5vdCByZWdpc3RlciBudW1iZXIuCgkodGh1bWJfZmluZF93b3JrX3JlZ2lzdGVyKTogU2VhcmNoIGZ1bGwgcmVnaXN0ZXIgcmFuZ2UuCgoyMDA0LTEwLTAxICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiB0cmVlLW9wdC8xNzM0MwoJKiB0cmVlLWNmZy5jIChncm91cF9jYXNlX2xhYmVscyk6IEdldCB0aGUgbGFiZWwgYW5kIG5vdAoJdGhlIGNhc2UgZXhwciBmb3IgdGhlIGRlZmF1bHQgY2FzZS4KCVdoZW4gdGhlIGxhYmVsIHdlIGxvb2tpbmcgYXQgaXMgdGhlIGRlZmF1bHQsIGRlY3JlbWVudCB0aGUKCW5ld19zaXplLgoKMjAwNC0xMC0wMSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogYy1kZWNsLmMgKGNfZXhwYW5kX2JvZHkpOiBVcGRhdGUgY2FsbCB0cmVlX3Jlc3Rfb2ZfY29tcGlsYXRpb24uCgkqIGNncmFwaHVuaXQuYyAoY2dyYXBoX2J1aWxkX3N0YXRpY19jZHRvcik6IExpa2V3aXNlLgoJKiB0b3BsZXYuaCAodHJlZV9yZXN0X29mX2NvbXBpbGF0aW9uKTogVXBkYXRlIHByb3RvdHlwZS4KCSogdHJlZS1vcHRpbWl6ZS5jICh0cmVlX3Jlc3Rfb2ZfY29tcGlsYXRpb24pOiAgS2lsbCBuZXN0ZWRfcCBhcmd1bWVudC4KCjIwMDQtMTAtMDEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLWNmZy5jIChjbGVhbnVwX3RyZWVfY2ZnKTogUHVsbCBhIGNhbGwgdG8KCWNsZWFudXBfY29udHJvbF9mbG93KCkgb3V0IG9mIHRoZSB3aGlsZSBsb29wLgoKMjAwNC0xMC0wMSAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIHRyZWUtdmVjdG9yaXplci5jICh2ZWN0b3JpemFibGVfb3BlcmF0aW9uKTogRmFpbCB1bmxlc3MKCXRoZSBtb2RlIGZvciB0aGUgdmVjdG9yIHR5cGUgaXMgaW5kZWVkIGEgdmVjdG9yIG1vZGUuCgoyMDA0LTEwLTAxICBaZGVuZWsgRHZvcmFrICA8ZHZvcmFrekBzdXNlLmN6PgoKCSogdHJlZS1jaHJlYy5jIChjaHJlY19mb2xkX3BsdXNfcG9seV9wb2x5LCBjaHJlY19mb2xkX3BsdXNfMSwKCWNocmVjX2ZvbGRfbXVsdGlwbHkpOiBVc2UgZm9sZF9jb252ZXJ0IG9yIGJ1aWxkX2ludF9jc3RfdHlwZSBpbnN0ZWFkCglvZiBjb252ZXJ0LgoJKiB0cmVlLXNjYWxhci1ldm9sdXRpb24uYyAoY29tcHV0ZV9vdmVyYWxsX2VmZmVjdF9vZl9pbm5lcl9sb29wLAoJYWRkX3RvX2V2b2x1dGlvbiwgc2V0X25iX2l0ZXJhdGlvbnNfaW5fbG9vcCwgZm9sbG93X3NzYV9lZGdlX2luX3JocywKCWZvbGxvd19zc2FfZWRnZV9pbl9yaHMpOiBEaXR0by4KCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAoc3RydWN0IGl2KTogQWRkIGJhc2Vfb2JqZWN0IGZpZWxkLgoJKGR1bXBfaXYpOiBEdW1wIGJhc2Vfb2JqZWN0LgoJKGR1bXBfdXNlLCBkdW1wX2NhbmQpOiBVc2UgZHVtcF9pdi4KCShkZXRlcm1pbmVfYmFzZV9vYmplY3QpOiBOZXcgZnVuY3Rpb24uCgkoYWxsb2NfaXYpOiBJbml0aWFsaXplIGJhc2Vfb2JqZWN0IGZpZWxkLgoJKHJlY29yZF91c2UpOiBDbGVhciB0aGUgc3NhX25hbWUgZmllbGQgb2YgaXYuCgkoZ2V0X2NvbXB1dGF0aW9uX2Nvc3RfYXQpOiBEbyBub3QgdXNlIGRpZmZlcmVuY2Ugb2YgYWRkcmVzc2VzIG9mCgl0d28gZGlmZmVyZW50IG9iamVjdHMuCgkobWF5X2VsaW1pbmF0ZV9pdik6IERvIG5vdCByZXF1aXJlIHRoZSBsb29wIHRvIGhhdmUganVzdCBzaW5nbGUgZXhpdC4KCSogdHJlZS1zc2EtbG9vcC1uaXRlci5jICh6ZXJvX3ApOiBEbyBub3QgY2hlY2sgZm9yIG92ZXJmbG93cy4KCShub256ZXJvX3ApOiBOZXcgZnVuY3Rpb24uCgkoaW52ZXJzZSwgbnVtYmVyX29mX2l0ZXJhdGlvbnNfY29uZCwgc2ltcGxpZnlfdXNpbmdfb3V0ZXJfZXZvbHV0aW9ucywKCXRyZWVfc2ltcGxpZnlfdXNpbmdfY29uZGl0aW9uLCBzaW1wbGlmeV91c2luZ19pbml0aWFsX2NvbmRpdGlvbnMsCglsb29wX25pdGVyX2J5X2V2YWwsIGZpbmRfbG9vcF9uaXRlcl9ieV9ldmFsLAoJZXN0aW1hdGVfbnVtYmVyc19vZl9pdGVyYXRpb25zX2xvb3AsIGNvbXBhcmVfdHJlZXMsCgl1cHBlcl9ib3VuZF9pbl90eXBlLCBsb3dlcl9ib3VuZF9pbl90eXBlLAoJY2FuX2NvdW50X2l2X2luX3dpZGVyX3R5cGVfYm91bmQpOiBVc2UgYnVpbGROIGluc3RlYWQgb2YgYnVpbGQuICBVc2UKCWZvbGRfY29udmVydCBvciBidWlsZF9pbnRfY3N0X3R5cGUgaW5zdGVhZCBvZiBjb252ZXJ0LiAgVXNlIChub24pemVyb19wCglpbnN0ZWFkIG9mIGludGVnZXJfKG5vbil6ZXJvcC4KCjIwMDQtMTAtMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCVJldmVydAoJMjAwNC0wOS0yOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiB0cmVlLmggKGVudW0gdHJlZV9pbmRleCk6IEFkZCBUSV9WQV9MSVNUX0dQUl9DT1VOVEVSX0ZJRUxECglhbmQgVElfVkFfTElTVF9GUFJfQ09VTlRFUl9GSUVMRC4KCSh2YV9saXN0X2dwcl9jb3VudGVyX2ZpZWxkLCB2YV9saXN0X2Zwcl9jb3VudGVyX2ZpZWxkKTogRGVmaW5lLgoJKiB0cmVlLXBhc3MuaCAocGFzc19zdGRhcmcpOiBBZGQuCgkqIHRyZWUtb3B0aW1pemUuYyAoaW5pdF90cmVlX29wdGltaXphdGlvbl9wYXNzZXMpOiBBZGQgcGFzc19zdGRhcmcuCgkqIHRyZWUtc3RkYXJnLmM6IE5ldyBmaWxlLgoJKiBNYWtlZmlsZS5pbiAoT0JKUy1jb21tb24pOiBBZGQgdHJlZS1zdGRhcmcuby4KCSh0cmVlLXN0ZGFyZy5vKTogQWRkIGRlcGVuZGVuY2llcy4KCSogZnVuY3Rpb24uaCAoc3RydWN0IGZ1bmN0aW9uKTogQWRkIHZhX2xpc3RfZ3ByX3NpemUgYW5kCgl2YV9saXN0X2Zwcl9zaXplIGZpZWxkcy4KCSogZnVuY3Rpb24uYyAoYWxsb2NhdGVfc3RydWN0X2Z1bmN0aW9uKTogSW5pdGlhbGl6ZSB0aGVtLgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2J1aWxkX2J1aWx0aW5fdmFfbGlzdCk6IEluaXRpYWxpemUKCXZhX2xpc3Rfe2csZn1wcl9jb3VudGVyX2ZpZWxkLgoJKGl4ODZfc2V0dXBfaW5jb21pbmdfdmFyYXJncyk6IERvbid0IGRvIGFueXRoaW5nIGlmIHJlZ19zYXZlCglhcmVhIHdpbGwgbm90IGJlIHVzZWQuICBPbmx5IHNhdmUgcmVnaXN0ZXJzIHRoYXQgdHJlZS1zdGRhcmcuYwoJZGV0ZWN0ZWQgdGhleSBuZWVkIHNhdmluZy4KCShpeDg2X3ZhX3N0YXJ0KTogRG9uJ3Qgc2V0IHVwIGZpZWxkcyB0aGF0IHdvbid0IGJlIHVzZWQuCgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfYnVpbGRfYnVpbHRpbl92YV9saXN0KTogSW5pdGlhbGl6ZQoJdmFfbGlzdF97ZyxmfXByX2NvdW50ZXJfZmllbGQuCgkoc2V0dXBfaW5jb21pbmdfdmFyYXJncyk6IERvbid0IGRvIGFueXRoaW5nIGlmIHJlZ19zYXZlCglhcmVhIHdpbGwgbm90IGJlIHVzZWQuICBPbmx5IHNhdmUgcmVnaXN0ZXJzIHRoYXQgdHJlZS1zdGRhcmcuYwoJZGV0ZWN0ZWQgdGhleSBuZWVkIHNhdmluZy4KCShyczYwMDBfdmFfc3RhcnQpOiBEb24ndCBzZXQgdXAgZmllbGRzIHRoYXQgd29uJ3QgYmUgdXNlZC4KCjIwMDQtMDktMzAgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogZHdhcmYyLmggKGR3YXJmX2NhbGxpbmdfY29udmVudGlvbik6IEFkZCBlbnVtIGZvciByZW5lc2FzCglzaCBhYmkuCgkqIGR3YXJmMm91dC5jIChhZGRfY2FsbGluZ19jb252ZW50aW9uX2F0dHJpYnV0ZSk6IE5ldyBmdW5jdGlvbi4KCShnZW5fc3Vicm91dGluZV90eXBlX2RpZSk6IFVzZS4KCSogdGFyZ2V0LWRlZi5oIChUQVJHRVRfRFdBUkZfQ0FMTElOR19DT05WRU5USU9OKTogTmV3IGhvb2suCgkqIHRhcmdldC5oIChnY2NfdGFyZ2V0KTogQWRkIGR3YXJmX2NhbGxpbmdfY29udmVudGlvbi4KCSogaG9va3MuYyAoaG9va19pbnRfdHJlZV8wKTogTmV3IGZ1bmN0aW9uLgoJKiBob29rcy5oOiBQcm90b3R5cGUuCgkqIGNvbmZpZy9zaC9zaC5jOiBJbmNsdWRlIGR3YXJmMi5oLgoJKHNoX2R3YXJmX2NhbGxpbmdfY29udmVudGlvbik6IE5ldyBmdW5jdGlvbi4KCShUQVJHRVRfRFdBUkZfQ0FMTElOR19DT05WRU5USU9OKTogVXNlLgoJKiBkb2MvdG0udGV4aSAoVEFSR0VUX0RXQVJGX0NBTExJTkdfQ09OVkVOVElPTik6IERvY3VtZW50LgoKMjAwNC0wOS0zMCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fc3Ryc3RyLCBleHBhbmRfYnVpbHRpbl9zdHJjaHIsCglleHBhbmRfYnVpbHRpbl9zdHJyY2hyLCBleHBhbmRfYnVpbHRpbl9zdHJwYnJrLAoJZXhwYW5kX2J1aWx0aW5fc3RybmNhdCwgZXhwYW5kX2J1aWx0aW5fc3Ryc3BuLAoJZXhwYW5kX2J1aWx0aW5fc3RyY3NwbiwgZXhwYW5kX2J1aWx0aW5fZnB1dHMpOiBFbGltaW5hdGUgZHVwbGljYXRlCgljb2RlLgoKMjAwNC0wOS0zMCAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC1wcm90b3MuaCAoczM5MF9leHBhbmRfbG9naWNhbF9vcGVyYXRvcik6IEFkZAoJcHJvdG90eXBlLgoJKHMzOTBfbG9naWNhbF9vcGVyYXRvcl9va19wKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoczM5MF9leHBhbmRfbG9naWNhbF9vcGVyYXRvcik6IE5ldyBmdW5jdGlvbi4KCShzMzkwX2xvZ2ljYWxfb3BlcmF0b3Jfb2tfcCk6IExpa2V3aXNlLgoJKiBjb25maWcvczM5MC9zMzkwLm1kICgiYW5kZGkzIik6IE5ldyBleHBhbmRlci4KCSgiKmFuZGRpMyIpOiBSZW5hbWUgZnJvbSBvbGQgYW5kZGkzIHBhdHRlcm4sIGFkZCBRLT5RIGFsdGVybmF0aXZlLgoJKCIqYW5kZGkzX3NzIiwgIiphbmRkaTNfc3NfaW52Iik6IFJlbW92ZS4KCSgiYW5kc2kzIik6IFVzZSBzMzkwX2V4cGFuZF9sb2dpY2FsX29wZXJhdG9yLgoJKCIqYW5kc2kzX2VzYSIsICIqYW5kc2kzX3phcmNoIik6IEFkZCBRLT5RIGFsdGVybmF0aXZlLgoJKCIqYW5kc2kzX3NzIiwgIiphbmRzaTNfc3NfaW52Iik6IFJlbW92ZS4KCSgiYW5kaGkzIik6IE5ldyBleHBhbmRlci4KCSgiKmFuZGhpM196YXJjaCIsICIqYW5kaGkzX2VzYSIpOiBOZXcgcGF0dGVybnMuCgkoImFuZGhpMyIsICIqYW5kaGkzX25pIiwgIiphbmRoaTNfc3MiLCAiKmFuZGhpM19zc19pbnYiKTogUmVtb3ZlLgoJKCJhbmRxaTMiKTogTmV3IGV4cGFuZGVyLgoJKCIqYW5kcWkzX3phcmNoIiwgIiphbmRxaTNfZXNhIik6IE5ldyBwYXR0ZXJucy4KCSgiYW5kcWkzIiwgIiphbmRxaTNfbmkiLCAiKmFuZHFpM19zcyIsICIqYW5kcWkzX3NzX2ludiIpOiBSZW1vdmUuCgkoImlvcmRpMyIpOiBOZXcgZXhwYW5kZXIuCgkoIippb3JkaTMiKTogUmVuYW1lIGZyb20gb2xkIGlvcmRpMyBwYXR0ZXJuLCBhZGQgUS0+USBhbHRlcm5hdGl2ZS4KCSgiKmlvcmRpM19zcyIsICIqaW9yZGkzX3NzX2ludiIpOiBSZW1vdmUuCgkoImlvcnNpMyIpOiBVc2UgczM5MF9leHBhbmRfbG9naWNhbF9vcGVyYXRvci4KCSgiKmlvcnNpM19lc2EiLCAiKmlvcnNpM196YXJjaCIpOiBBZGQgUS0+USBhbHRlcm5hdGl2ZS4KCSgiKmlvcnNpM19zcyIsICIqaW9yc2kzX3NzX2ludiIpOiBSZW1vdmUuCgkoImlvcmhpMyIpOiBOZXcgZXhwaW9yZXIuCgkoIippb3JoaTNfemFyY2giLCAiKmlvcmhpM19lc2EiKTogTmV3IHBhdHRlcm5zLgoJKCJpb3JoaTMiLCAiKmlvcmhpM19uaSIsICIqaW9yaGkzX3NzIiwgIippb3JoaTNfc3NfaW52Iik6IFJlbW92ZS4KCSgiaW9ycWkzIik6IE5ldyBleHBpb3Jlci4KCSgiKmlvcnFpM196YXJjaCIsICIqaW9ycWkzX2VzYSIpOiBOZXcgcGF0dGVybnMuCgkoImlvcnFpMyIsICIqaW9ycWkzX25pIiwgIippb3JxaTNfc3MiLCAiKmlvcnFpM19zc19pbnYiKTogUmVtb3ZlLgoJKCJ4b3JkaTMiKTogTmV3IGV4cGFuZGVyLgoJKCIqeG9yZGkzIik6IFJlbmFtZSBmcm9tIG9sZCB4b3JkaTMgcGF0dGVybiwgYWRkIFEtPlEgYWx0ZXJuYXRpdmUuCgkoIip4b3JkaTNfc3MiLCAiKnhvcmRpM19zc19pbnYiKTogUmVtb3ZlLgoJKCJ4b3JzaTMiKTogTmV3IGV4cGFuZGVyLgoJKCIqeG9yc2kzIik6IFJlbmFtZSBmcm9tIG9sZCB4b3JzaTMgcGF0dGVybiwgYWRkIFEtPlEgYWx0ZXJuYXRpdmUuCgkoIip4b3JzaTNfc3MiLCAiKnhvcnNpM19zc19pbnYiKTogUmVtb3ZlLgoJKCJ4b3JoaTMiKTogTmV3IGV4cGFuZGVyLgoJKCIqeG9ycWkzIik6IFJlbmFtZSBmcm9tIG9sZCB4b3JoaTMgcGF0dGVybiwgYWRkIFEtPlEgYWx0ZXJuYXRpdmUuCgkoIip4b3JoaTNfc3MiLCAiKnhvcmhpM19zc19pbnYiKTogUmVtb3ZlLgoJKCJ4b3JxaTMiKTogTmV3IGV4cGFuZGVyLgoJKCIqeG9ycWkzIik6IFJlbmFtZSBmcm9tIG9sZCB4b3JxaTMgcGF0dGVybiwgYWRkIFEtPlEgYWx0ZXJuYXRpdmUuCgkoIip4b3JxaTNfc3MiLCAiKnhvcnFpM19zc19pbnYiKTogUmVtb3ZlLgoKMjAwNC0wOS0zMCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBjb21iaW5lLmMgKGZvcmNlX3RvX21vZGUpIDxORV9FWFBSPjogT25seSBjb252ZXJ0IHRoZSBleHByZXNzaW9uCgkoQU5EIChORSBGT08gMCkgQ09OU1QpIGludG8gKEFORCBGT08gQ09OU1QpIGlmIEZPTyBoYXMgdGhlIHNhbWUKCW1hY2hpbmUgbW9kZSBhcyB0aGUgcmVzdWx0LgoKMjAwNC0wOS0zMCAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJUFIgYm9vdHN0cmFwLzE3NzYxCgkqIGxjbS5jIChvcHRpbWl6ZV9tb2RlX3N3aXRjaGluZyk6IFVwZGF0ZSB0byB1c2UgRURHRV9TVUNDIGFuZAoJRk9SX0VBQ0hfRURHRSBtYWNyb3MuCgoyMDA0LTA5LTMwICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtdHJlZS5oIChyZWFkb25seV9lcnJvcik6IFJlbW92ZS4KCSogYy10eXBlY2sgKGVudW0gbHZhbHVlX3VzZSk6IE5ldy4KCShsdmFsdWVfb3JfZWxzZSwgcmVhZG9ubHlfZXJyb3IpOiBVc2UgaXQuICBBbGwgY2FsbGVycyBjaGFuZ2VkLgoJKHJlYWRvbmx5X2Vycm9yKTogTWFrZSBzdGF0aWMuCgoyMDA0LTA5LTMwICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJUFIgZGVidWcvMTM5NzQKCSogY2ZncnRsLmMgKHRyeV9yZWRpcmVjdF9ieV9yZXBsYWNpbmdfanVtcCwKCWZvcmNlX25vbmZhbGx0aHJ1X2FuZF9yZWRpcmVjdCwgY29tbWl0X29uZV9lZGdlX2luc2VydGlvbiwKCWNmZ19sYXlvdXRfbWVyZ2VfYmxvY2tzKTogIERvIG5vdCBhdHRhY2ggYW55IGxpbmUgbnVtYmVyIGluZm9ybWF0aW9uCgl0byBuZXdseSBpbnNlcnRlZCBpbnN0cnVjdGlvbnMuCgkqIGVtaXQtcnRsLmMgKGVtaXRfaW5zbipfYmVmb3JlLCBlbWl0X2luc24qX2FmdGVyKTogUmVuYW1lIHRvCgllbWl0X2luc25fKl9ub2xvYy4KCShlbWl0XyppbnNuX2JlZm9yZSwgZW1pdF9pbnNuKl9hZnRlcik6IE5ldy4KCShlbWl0XyppbnNuX2JlZm9yZV9zZXRsb2MsIGVtaXRfKmluc25fYWZ0ZXJfc2V0bG9jKTogRG8gbm90IG92ZXJ3cml0ZQoJZXhpc3RpbmcgbG9jYXRvcnMuCgkqIHJ0bC5oIChlbWl0XyppbnNuX2JlZm9yZV9ub2xvYywgZW1pdF8qaW5zbl9hZnRlcl9ub2xvYyk6IERlY2xhcmUuCgkoZW1pdF8qaW5zbl9iZWZvcmVfc2FtZWxvYywgZW1pdF8qaW5zbl9hZnRlcl9zYW1lbG9jKTogS2lsbC4KCjIwMDQtMDktMzAgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAtcHJvdG9zLmggKHMzOTBfYXJnX2ZyYW1lX29mZnNldCk6IFJlbW92ZS4KCShzMzkwX3JldHVybl9hZGRyZXNzX29mZnNldCk6IFJlbW92ZS4KCShzMzkwX2Nhbl9lbGltaW5hdGUpOiBBZGQgcHJvdG90eXBlLgoJKHMzOTBfaW5pdGlhbF9lbGltaW5hdGlvbl9vZmZzZXQpOiBBZGQgcHJvdG90eXBlLgoJKiBjb25maWcvczM5MC9zMzkwLmggKENBTl9FTElNSU5BVEUpOiBDYWxsIHMzOTBfY2FuX2VsaW1pbmF0ZS4KCShJTklUSUFMX0VMSU1JTkFUSU9OX09GRlNFVCk6IENhbGwgczM5MF9pbml0aWFsX2VsaW1pbmF0aW9uX29mZnNldC4KCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX2FyZ19mcmFtZV9vZmZzZXQpOiBSZW1vdmUuCgkoczM5MF9yZXR1cm5fYWRkcmVzc19vZmZzZXQpOiBSZW1vdmUuCgkoczM5MF9jYW5fZWxpbWluYXRlLCBzMzkwX2luaXRpYWxfZWxpbWluYXRpb25fb2Zmc2V0KTogTmV3IGZ1bmN0aW9ucy4KCShzdHJ1Y3QgbWFjaGluZV9mdW5jdGlvbik6IE5ldyBtZW1iZXIgc3BsaXRfYnJhbmNoZXNfcGVuZGluZ19wLgoJKHMzOTBfbWFpbnBvb2xfc3RhcnQpOiBBbGxvdyBub25leGlzdGFudCBwb29sIGluc24gZm9yIGVtcHR5IHBvb2wuCgkoczM5MF9tYWlucG9vbF9maW5pc2gpOiBMaWtld2lzZS4gIENsZWFyIGJhc2VfcmVnIGlmIHBvb2wgZW1wdHkuCgkoczM5MF9vcHRpbWl6ZV9wcm9sb2d1ZSk6IFJlbW92ZSBiYXNlX3VzZWQgYXJndW1lbnQuICBDYWxsCglzMzkwX3VwZGF0ZV9mcmFtZV9sYXlvdXQgaW5zdGVhZCBvZiBzMzkwX3JlZ2lzdGVyX2luZm8uICBIYW5kbGUKCXByb2xvZ3VlL2VwaWxvZ3VlIGluc25zIHRoYXQgdG91Y2ggb25seSBSRVRVUk5fUkVHTlVNLgoJKHMzOTBfcmVvcmcpOiBSZW1vdmUgYmFzZV91c2VkLiAgQ2xlYXIgc3BsaXRfYnJhbmNoZXNfcGVuZGluZ19wLgoJKHMzOTBfcmVnaXN0ZXJfaW5mbyk6IFJlbW92ZSBiYXNlX3VzZWQgYW5kIHJldHVybl9hZGRyX3VzZWQKCWFyZ3VtZW50cywgY29tcHV0ZSBzcGVjaWFsIHJlZ2lzdGVyIHVzYWdlIGlubGluZS4gIFJldHVybiBsaXZlCglyZWdpc3RlciBkYXRhIHRvIGNhbGxlci4KCShzMzkwX2ZyYW1lX2luZm8pOiBSZW1vdmUgYXJndW1lbnRzLCBkbyBub3QgY2FsbCBzMzkwX3JlZ2lzdGVyX2luZm8uCgkoczM5MF9pbml0X2ZyYW1lX2xheW91dCk6IE5ldyBmdW5jdGlvbi4KCShzMzkwX3VwZGF0ZV9mcmFtZV9sYXlvdXQpOiBMaWtld2lzZS4KCShzMzkwX2VtaXRfcHJvbG9ndWUpOiBDYWxsIHMzOTBfdXBkYXRlX2ZyYW1lX2xheW91dDsgc29tZSBjb2RlCgltb3ZlIHRvIHRoZXJlLiAgRG8gbm90IGVtaXQgcG9vbCBwbGFjZWhvbGRlciBpbnNuIGlmIHVubmVjZXNzYXJ5LgoKMjAwNC0wOS0zMCAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5jIChsZWdpdGltYXRlX3JlbG9hZF9jb25zdGFudF9wKTogUmVtb3ZlCglmbG9hdGluZyBwb2ludCBjb25zdGFudCB3b3JrYXJvdW5kLgoJKHMzOTBfc2Vjb25kYXJ5X2lucHV0X3JlbG9hZF9jbGFzcyk6IEhhbmRsZSBQTFVTIHJlbG9hZHMKCXdpdGggdG9vLWxhcmdlIGNvbnN0YW50LgoJKHMzOTBfZXhwYW5kX3BsdXNfb3BlcmFuZCk6IExpa2V3aXNlLgoJKiBjb25maWcvczM5MC9zMzkwLm1kICgibW92ZGkiKTogRG8gbm90IGNhbGwgZm9yY2VfY29uc3RfbWVtLgoJKCJtb3ZzaSIpOiBMaWtld2lzZS4gIEFsc28sIHJlbW92ZSB3b3JrYXJvdW5kIGZvciBub24tZ2VuZXJhbAoJb3BlcmFuZHMuCgkoIm1vdmRmIik6IERvIG5vdCBjYWxsIGZvcmNlX2NvbnN0X21lbS4KCSgibW92c2YiKTogTGlrZXdpc2UuICBNZXJnZSBleHBhbmRlciB3aXRoICptb3ZzZiBpbnNuLgoJKCIqbW92c2YiKTogUmVtb3ZlLCBtZXJnZSB3aXRoIG1vdnNmIGV4cGFuZGVyLgoKMjAwNC0wOS0zMCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9hcm0vc3ltYmlhbi5oIChTVEFSVEZJTEVfU1BFQyk6IFJlbW92ZSBjcnQqLm8uCgkoRU5ERklMRV9TUEVDKTogRGVmaW5lLgoJKiBjb25maWcvYXJtL3Qtc3ltYmlhbi5oIChFWFRSQV9NVUxUSUxJQl9QQVJUUyk6IFNldC4KCjIwMDQtMDktMzAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvYWxwaGEvcXJubmQuYXNtOiBNYXJrIGZvciBub2V4ZWNzdGFjay4KCjIwMDQtMDktMzAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBwcm90b2l6ZS5jLCB0cmVlLWNmZy5jOiBGaXggY29tbWVudCB0eXBvcy4KCjIwMDQtMDktMzAgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCVBSIGMvMTc3MzAKCSogYy10eXBlY2suYyAobHZhbHVlX29yX2Vsc2UpOiBQYXNzIG1zZ2lkIGRpcmVjdGx5IHRvIGVycm9yLgoKMjAwNC0wOS0zMCAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1hbGlhcy5jIChjb2xsZWN0X3BvaW50c190b19pbmZvX3IpOiBNb3ZlIGFuYWx5c2lzIG9mCglleHByZXNzaW9ucy4uLgoJKGFkZF9wb2ludGVkX3RvX2V4cHIpOiAuLi4gaGVyZS4KCUNhbGwgYWRkX3BvaW50ZWRfdG9fZXhwciBmb3IgdmFyaWFibGVzIHdpdGggREVDTF9JTklUSUFMIHNldC4KCSogdHJlZS1kZmEuYyAoYWRkX3JlZmVyZW5jZWRfdmFyKTogU2NhbiBERUNMX0lOSVRJQUwgb2YgYW55Cglwb2ludGVyIHZhcmlhYmxlLCBpZiBzZXQuCgoyMDA0LTA5LTMwICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL3NoL3NoLmM6IEZvbGxvdyBzcGVsbGluZyBjb252ZW50aW9ucy4KCjIwMDQtMDktMjkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB1bndpbmQtZHcyLmMgKF9VbndpbmRfR2V0R1IpOiBIb25vciBEV0FSRl9aRVJPX1JFRy4KCSogZG9jL3RtLnRleGkgKERXQVJGX1pFUk9fUkVHKTogTmV3LgoKCSogY29uZmlnL2FscGhhL2FscGhhLmMgKGFscGhhX3NhX21hc2ssIGFscGhhX2V4cGFuZF9wcm9sb2d1ZSwKCWFscGhhX2V4cGFuZF9lcGlsb2d1ZSk6IFJldmVydCAyMDAzLTA5LTMwIGNoYW5nZSB0byBzdG9yZSB6ZXJvLgoJKiBjb25maWcvYWxwaGEvYWxwaGEuaCAoRFdBUkZfWkVST19SRUcpOiBOZXcuCgoyMDA0LTA5LTI5ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBidWlsdGlucy5jIChleHBhbmRfYnVpbHRpbl9zdHJsZW4pOiBEbyBub3QgY2FsbCBlbWl0X21vdmVfaW5zbgoJd2l0aCBhIFBMVVMgYXMgc291cmNlIG9wZXJhbmQuCgkoZXhwYW5kX21vdnN0cik6IExpa2V3aXNlLgoJKGV4cGFuZF9idWlsdGluX3N0cGNweSk6IExpa2V3aXNlLgoKMjAwNC0wOS0yOSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiAxNzczOQoJKiB0cmVlLWdpbXBsZS5jIChpc19naW1wbGVfcmVnKTogUmVqZWN0IGhhcmQgcmVnaXN0ZXJzLgoJKGlzX2dpbXBsZV9hc21fdmFsKTogTmV3LgoJKiB0cmVlLWdpbXBsZS5oIChpc19naW1wbGVfYXNtX3ZhbCk6IERlY2xhcmUuCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2FzbV9leHByKTogVXNlIGl0LgoJKiB0cmVlLXByZXR0eS1wcmludC5jIChwcmludF9kZWNsYXJhdGlvbik6IER1bXAgaGFyZCByZWdzLgoJKiB0cmVlLW91dG9mLXNzYS5jIChjaGVja19yZXBsYWNlYWJsZSk6IERvbid0IGNoZWNrIGZvciBoYXJkIHJlZ3MuCgkqIHRyZWUtc3NhLWNvcHlyZW5hbWUuYyAoY29weV9yZW5hbWVfcGFydGl0aW9uX2NvYWxlc2NlKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLXByZS5jIChpc191bmRlZmluZWRfdmFsdWUpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtY29weS5jIChtYXlfcHJvcGFnYXRlX2NvcHkpOiBMaWtld2lzZS4KCShtYXlfcHJvcGFnYXRlX2NvcHlfaW50b19hc20pOiBQcm90ZWN0IERFQ0xfSEFSRF9SRUdJU1RFUi4KCSogdHJlZS1zc2EuYyAod2Fybl91bmluaXQpOiBMaWtld2lzZS4KCSogdHJlZS5oIChERUNMX0hBUkRfUkVHSVNURVIpOiBDaGVjayBmb3IgVkFSX0RFQ0wuCgoyMDA0LTA5LTI5ICBGYXJpYm9yeiBKYWhhbmlhbiA8ZmphaGFuaWFuQGFwcGxlLmNvbT4KCgkqIGMtZGVjbC5jIChtZXJnZV9kZWNscyk6IFVzZSBjb21wdHlwZSB3aGVuIGNvbXBhcmluZwoJdHlwZXMgdG8gZGVjaWRlIG9uIERFQ0xfU0laRSBzYXZlIG9mIG9sZGRlY2wuCgoyMDA0LTA5LTI5ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIHRyZWUuaCAoSU5ESVJFQ1RfUkVGX1ApOiBOZXcgbWFjcm8uCgkqIGFsaWFzLmMgKGdldF9hbGlhc19zZXQpOiBVc2UgaXQKCShub25vdmVybGFwcGluZ19tZW1yZWZzX3ApOiBEaXR0by4KCSogZW1pdC1ydGwuYyAobWVtX2V4cHJfZXF1YWxfcCk6IERpdHRvLgoJKHNldF9tZW1fYXR0cmlidXRlc19taW51c19iaXRwb3MpOiBEaXR0by4KCShpc19naW1wbGVfYWRkcmVzc2FibGUpOiBEaXR0by4KCShnZXRfYmFzZV9hZGRyZXNzKTogRGl0dG8uCgkqIHRyZWUtc3NhLWFsaWFzLmMgKGZpbmRfcHRyX2RlcmVmZXJuZWNlKTogRGl0dG8uCgkqIHRyZWUtc3NhLWRjZS5jIChtYXJrX3N0bXRfaWZfb2J2aW91c2x5X25lY2Vzc2FyeSk6IERpdHRvLgoJKiB0cmVlLXNzYS1kb20uYyAocmVjb3JkX2VxdWl2YWxlbmNlc19mcm9tX3N0bXQpOiBEaXR0by4KCSogdHJlZS1zc2EtbG9vcC1pbS5jIChpc19jYWxsX2Nsb2JiZXJlZF9yZWYpOiBEaXR0by4KCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAoZmluZF9pbnRlcmVzdGluZ191c2VzX2FkZHJlc3MpOiBEaXR0by4KCShhZGRfYWRkcmVzc19jYW5kaWRhdGVzKTogRGl0dG8uCgkocmV3cml0ZV9hZGRyZXNzX2Jhc2UpOiBEaXR0by4KCjIwMDQtMDktMzAgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogdHJlZS1mbG93LmggKHN0cnVjdCBiYl9hbm5fZCk6IFJlbW92ZSBudW1fcHJlZHMgbWVtYmVyLgoJKiB0cmVlLWludG8tc3NhLmMgKHJld3JpdGVfaW50b19zc2EpOiBEb24ndCBzZXQgaXQuCgkocmV3cml0ZV9zc2FfaW50b19zc2EpOiBMaWtld2lzZS4KCSogdHJlZS1waGlub2Rlcy5jIChjcmVhdGVfcGhpX25vZGUpOiBBY2Nlc3MgdGhlIG51bWJlciBvZgoJcHJlZGVjZXNzb3IgZWRnZXMgdXNpbmcgRURHRV9DT1VOVCgpIGFuZCBub3QgbnVtX3ByZWRzLgoKMjAwNC0wOS0yOSAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJUFIgYy83NDI1CgkqIGMtZGVjbC5jIChtZXJnZV9kZWNscyk6IE1lcmdlIFRSRUVfREVQUkVDQVRFRC4KCjIwMDQtMDktMjkgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogZm9sZC1jb25zdC5jICh0cmVlX3N3YXBfb3BlcmFuZHNfcCk6IFJlbW92ZSBkdXBsaWNhdGVkIGNvZGUuCgoyMDA0LTA5LTI5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGNvbmZpZy9jcmlzL2NyaXMubWQgKG1vdmVyc2lkZSwgbW92ZW1zaWRlKTogV2l0aCBNRU0sIG1ha2Ugc3VyZQoJdGhlIGFkZHJlc3MgaXMgKHBsdXMgcmVnIG1lbSkuCgoyMDA0LTA5LTI5ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBjb25maWcvcnM2MDAwL2xpbnV4NjQuaCAoUFJPQ0VTU09SX0RFRkFVTFQpOiBEZWZpbmUuCgoyMDA0LTA5LTI5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJlZS5jIChtYWtlX25vZGVfc3RhdCk6IEZpeCB1bmluaXRpYWxpemVkIHdhcm5pbmcuICBSZXBsYWNlCgljYXNjYWRlZCBpZiAuLi4gZWxzZSBpZiB3aXRoIGEgc3dpdGNoLgoKMjAwNC0wOS0yOSAgQWFyb24gVy4gTGFGcmFtYm9pc2UgIDxhYXJvbmF2YXk2MkBhYXJvbndsLmNvbT4KCgkqIHJlYWQtcnRsLmMgKGFwcGx5X21hY3JvX3RvX3N0cmluZyk6IFJlcGxhY2UgaW5kZXggd2l0aCBzdHJjaHIuCgoyMDA0LTA5LTI5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHRyZWUuaCAoZW51bSB0cmVlX2luZGV4KTogQWRkIFRJX1ZBX0xJU1RfR1BSX0NPVU5URVJfRklFTEQKCWFuZCBUSV9WQV9MSVNUX0ZQUl9DT1VOVEVSX0ZJRUxELgoJKHZhX2xpc3RfZ3ByX2NvdW50ZXJfZmllbGQsIHZhX2xpc3RfZnByX2NvdW50ZXJfZmllbGQpOiBEZWZpbmUuCgkqIHRyZWUtcGFzcy5oIChwYXNzX3N0ZGFyZyk6IEFkZC4KCSogdHJlZS1vcHRpbWl6ZS5jIChpbml0X3RyZWVfb3B0aW1pemF0aW9uX3Bhc3Nlcyk6IEFkZCBwYXNzX3N0ZGFyZy4KCSogdHJlZS1zdGRhcmcuYzogTmV3IGZpbGUuCgkqIE1ha2VmaWxlLmluIChPQkpTLWNvbW1vbik6IEFkZCB0cmVlLXN0ZGFyZy5vLgoJKHRyZWUtc3RkYXJnLm8pOiBBZGQgZGVwZW5kZW5jaWVzLgoJKiBmdW5jdGlvbi5oIChzdHJ1Y3QgZnVuY3Rpb24pOiBBZGQgdmFfbGlzdF9ncHJfc2l6ZSBhbmQKCXZhX2xpc3RfZnByX3NpemUgZmllbGRzLgoJKiBmdW5jdGlvbi5jIChhbGxvY2F0ZV9zdHJ1Y3RfZnVuY3Rpb24pOiBJbml0aWFsaXplIHRoZW0uCgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfYnVpbGRfYnVpbHRpbl92YV9saXN0KTogSW5pdGlhbGl6ZQoJdmFfbGlzdF97ZyxmfXByX2NvdW50ZXJfZmllbGQuCgkoaXg4Nl9zZXR1cF9pbmNvbWluZ192YXJhcmdzKTogRG9uJ3QgZG8gYW55dGhpbmcgaWYgcmVnX3NhdmUKCWFyZWEgd2lsbCBub3QgYmUgdXNlZC4gIE9ubHkgc2F2ZSByZWdpc3RlcnMgdGhhdCB0cmVlLXN0ZGFyZy5jCglkZXRlY3RlZCB0aGV5IG5lZWQgc2F2aW5nLgoJKGl4ODZfdmFfc3RhcnQpOiBEb24ndCBzZXQgdXAgZmllbGRzIHRoYXQgd29uJ3QgYmUgdXNlZC4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9idWlsZF9idWlsdGluX3ZhX2xpc3QpOiBJbml0aWFsaXplCgl2YV9saXN0X3tnLGZ9cHJfY291bnRlcl9maWVsZC4KCShzZXR1cF9pbmNvbWluZ192YXJhcmdzKTogRG9uJ3QgZG8gYW55dGhpbmcgaWYgcmVnX3NhdmUKCWFyZWEgd2lsbCBub3QgYmUgdXNlZC4gIE9ubHkgc2F2ZSByZWdpc3RlcnMgdGhhdCB0cmVlLXN0ZGFyZy5jCglkZXRlY3RlZCB0aGV5IG5lZWQgc2F2aW5nLgoJKHJzNjAwMF92YV9zdGFydCk6IERvbid0IHNldCB1cCBmaWVsZHMgdGhhdCB3b24ndCBiZSB1c2VkLgoKMjAwNC0wOS0yOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBidWlsdGlucy5kZWYgKEJVSUxUX0lOX0ZQVVRDLCBCVUlMVF9JTl9GUFVUQ19VTkxPQ0tFRCwKCUJVSUxUX0lOX0ZQVVRTLCBCVUlMVF9JTl9GUFVUU19VTkxPQ0tFRCwgQlVJTFRfSU5fRldSSVRFLAoJQlVJTFRfSU5fRldSSVRFX1VOTE9DS0VELCBCVUlMVF9JTl9QVVRDSEFSLCBCVUlMVF9JTl9QVVRDSEFSX1VOTE9DS0VELAoJQlVJTFRfSU5fUFVUUywgQlVJTFRfSU5fUFVUU19VTkxPQ0tFRCk6IFJlbW92ZSBub3Rocm93IGF0dHJpYnV0ZS4KCSogYnVpbHRpbi1hdHRycy5kZWYgKEFUVFJfTk9OTlVMTF8xLCBBVFRSX05PTk5VTExfMiwgQVRUUl9OT05OVUxMXzFfMiwKCUFUVFJfTk9OTlVMTF8xXzQpOiBOZXcuCgoyMDA0LTA5LTI5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNzY5NwoJKiB0cmVlLXNzYS1jY3AuYyAoZXhlY3V0ZV9mb2xkX2FsbF9idWlsdGlucyk6IFVwZGF0ZSBlaCBhbmQgY2xlYW51cAoJY2ZnIGlmIG5lZWRlZC4KCjIwMDQtMDktMjggIFBlciBCb3RobmVyICA8cGVyQGJvdGhuZXIuY29tPgoKCSogcHJvZmlsZS5jIChicmFuY2hfcHJvYik6IFBhc3MgY29ycmVjdCB2YWx1ZSB0byBvdXRwdXRfbG9jYXRpb24sCglldmVuIHdoZW4gVVNFX01BUFBFRF9MT0NBVElPTi4gIEZpeGVzIGJ1ZyBmcm9tIDA5LTExLgoKMjAwNC0wOS0yOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiAxNTA4OQoJKiB0cmVlLXNzYS1jb3B5LmMgKG1heV9wcm9wYWdhdGVfY29weV9pbnRvX2FzbSk6IE5ldy4KCSogdHJlZS1mbG93LmggKG1heV9wcm9wYWdhdGVfY29weV9pbnRvX2FzbSk6IERlY2xhcmUuCgkqIHRyZWUtc3NhLWNjcC5jIChyZXBsYWNlX3VzZXNfaW4pOiBVc2UgaXQuCgkqIHRyZWUtc3NhLWRvbS5jIChjcHJvcF9vcGVyYW5kKTogTGlrZXdpc2UuCgoyMDA0LTA5LTI4IEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS10aHJlYWR1cGRhdGUuYyAoY3JlYXRlX2Jsb2NrX2Zvcl90aHJlYWRpbmcpOiAgUmVxdWVzdAoJdGhhdCBubyBvdXRnb2luZyBlZGdlcyBiZSBsZWZ0IGluIHRoZSBkdXBsaWNhdGUgYmxvY2suICBEbyBubwoJdXBkYXRlIGluZm9ybWF0aW9uIG9uIG91dGdvaW5nIGVkZ2VzIG9yIFBISSBub2RlcyBpbiB0YXJnZXQKCWJsb2NrcyBoZXJlLgoJKHJlbW92ZV9jdHJsX3N0bXRfYW5kX3VzZWxlc3NfZWRnZXMpOiBSZW5hbWVkIGZyb20KCXJlbW92ZV9sYXN0X3N0bXRfYW5kX3VzZWxlc3NfZWRnZXMuICBIYW5kbGUgY2FzZSB3aGVyZSB0aGUKCWJsb2NrIGlzIGVtcHR5IG9yIGhhcyBubyBjb250cm9sIHN0YXRlbWVudHMuICBEbyBub3QgdXBkYXRlIGVkZ2UKCWZsYWdzIGhlcmUuCgkodGhyZWFkX2Jsb2NrKTogQ3JlYXRlIGEgdGVtcGxhdGUgYmxvY2sgcmF0aGVyIHRoYW4gY29weWluZyB0aGUKCW9yaWdpbmFsIGJsb2NrIGV2ZXJ5IHRpbWUuICBDcmVhdGUgb3V0Z29pbmcgZWRnZXMgZnJvbSB0aGUKCWR1cGxpY2F0ZSBibG9ja3MgYW5kIHVwZGF0ZSBQSElzIGF0IHRoZSB0YXJnZXQgb2YgdGhlIG91dGdvaW5nCgllZGdlcyBoZXJlLiAgRml4IGVkZ2UgZmxhZ3MgZm9yIHRoZSBvcmlnaW5hbCBibG9jayBpZiBuZWNlc3NhcnkuCgkqIGNmZ2hvb2tzIChkdXBsaWNhdGVfYmxvY2spOiBObyBsb25nZXIgYXNzZXJ0IHRoYXQgdGhlIG9yaWdpbmFsCglibG9jayBoYXMgaW5jb21pbmcgZWRnZXMuCgoyMDA0LTA5LTI5ICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBkb2MvZXh0ZW5kLnRleGkgKEV4dGVuZGVkIEFzbSk6IEFkZCBibHVyYiBhYm91dCB1c2luZyBFeHBsaWNpdAoJUmVnIFZhcnMgdG8gZW5mb3JjZSByZWdpc3RlciBhbGxvY2F0aW9uIHdpdGggZ2VuZXJhbCBjb25zdHJhaW50cy4KCShFeHBsaWNpdCBSZWcgVmFycyk6IENsYXJpZnkgcmVsYXRpb24gdG8gYXNtIHN0YXRlbWVudHMuCgkoTG9jYWwgUmVnIFZhcnMpOiBTaW1pbGFyLgoKMjAwNC0wOS0yOCAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogc2NoZWQtcmduLmMgKGhhaWZhX2VkZ2UsIGVkZ2VfdGFibGUsIE5FWFRfSU4sIE5FWFRfT1VULCBGUk9NX0JMT0NLLAoJVE9fQkxPQ0ssIG5yX2VkZ2VzLCBpbl9lZGdlcywgb3V0X2VkZ2VzLCBJTl9FREdFUywgT1VUX0VER0VTLAoJYnVpbGRfY29udHJvbF9mbG93LCBuZXdfZWRnZSk6IFJlbW92ZS4KCShzY2hlZHVsZV9pbnNucyk6IFJlbW92ZSBlZGdlX3RhYmxlL2luX2VkZ2VzL291dF9lZGdlcyBjbGVhbnVwLgoJKGJpdGxzdCwgYml0bHN0X3RhYmxlX2xhc3QsIGJpdGxzdF90YWJsZSk6IFJlbW92ZS4KCShiYmxzdCk6IFN0b3JlIGJhc2ljX2Jsb2NrIHBvaW50ZXIgaW5zdGVhZCBvZiBibG9jayBpbmRleC4KCShiYmxzdF90YWJsZSk6IExpa2V3aXNlLgoJKGVkZ2Vsc3QpOiBTdG9yZSBlZGdlIHBvaW50ZXIgaW5zdGVhZCBvZiBlZGdlIGluZGV4LgoJKGVkZ2Vsc3RfdGFibGUsIGVkZ2Vsc3RfbGFzdCk6IE5ldyB2YXJpYWJsZXMuCgkoZXh0cmFjdF9iaXRsc3QpOiBSZW5hbWUgdG8gLi4uCgkoZXh0cmFjdF9lZGdlbHN0KTogLi4uIHRoaXMuICBSZXR1cm4gZWRnZSBwb2ludGVycywgbm90IGluZGljZXMuCgkoc3BsaXRfZWRnZXMpOiBVcGRhdGUgY2FsbC4KCShyZ25fZWRnZXMpOiBTdG9yZSBlZGdlIHBvaW50ZXJzIGluc3RlYWQgb2YgaW5kaWNlcy4KCShlZGdlX3RvX2JpdCk6IFJlbW92ZS4KCShFREdFX1RPX0JJVCk6IFN0b3JlIHBlci1yZWdpb24gZWRnZSBpbmRleCBpbiBlZGdlLT5hdXguCgkoU0VUX0VER0VfVE9fQklUKTogTmV3IG1hY3JvLgoJKGlzX2NmZ19ub25yZWd1bGFyKTogQ2hlY2sgZm9yIHNpbXBsZSBjYXNlcyBvZiB1bnJlYWNoYWJsZSBibG9ja3MuCgkoZmluZF9yZ25zKTogUmVtb3ZlIGVkZ2VfbGlzdCBwYXJhbWV0ZXIuICBUcmF2ZXJzZSBzdGFuZGFyZCBDRkcKCWRhdGEgc3RydWN0dXJlcyBpbnN0ZWFkIG9mIGhhaWZhX2VkZ2UgZXQgYWwuICBVc2UgZWRnZSBwb2ludGVycwoJaW5zdGVhZCBvZiBlZGdlIGluZGljZXMgZXZlcnl3aGVyZS4KCShjb21wdXRlX2RvbV9wcm9iX3BzKTogVXNlIHN0YW5kYXJkIENGRyBkYXRhIHN0cnVjdHVyZXMuICBBY2NvdW50Cglmb3IgZXhpdCBlZGdlcy4KCShjb21wdXRlX3RyZ19pbmZvKTogTGlrZXdpc2UuCgkocHJvcGFnYXRlX2RlcHMpOiBMaWtld2lzZS4KCShkZWJ1Z19jYW5kaWRhdGUpOiBBY2NvdW50IGZvciBiYmxzdCBkYXRhIHN0cnVjdHVyZSBjaGFuZ2UuCgkoY2hlY2tfbGl2ZV8xLCB1cGRhdGVfbGl2ZV8xLCBpc19wZnJlZSk6IExpa2V3aXNlLgoJKElTX1JFQUNIQUJMRSk6IFVzZSBzdGFuZGFyZCBDRkcgZGF0YSBzdHJ1Y3R1cmVzLgoJKGluaXRfcmVhZHlfbGlzdCk6IFVwZGF0ZSBiYmxzdF90YWJsZS9lZGdlbHN0X3RhYmxlIGFsbG9jYXRpb24uCgkoc2NoZWR1bGVfcmVnaW9uKTogVXBkYXRlIGFsbG9jL2NsZWFudXAgY29kZSB0byBkYXRhIHN0cnVjdHVyZQoJY2hhbmdlcy4gIFVzZSBlZGdlLT5hdXggdG8gc3RvcmUgcGVyLXJlZ2lvbiBlZGdlIGluZGV4LgoJKGluaXRfcmVnaW9ucyk6IE5vIGxvbmdlciBjYWxsIGJ1aWxkX2NvbnRyb2xfZmxvdy4gIERvIG5vdAoJY3JlYXRlIGVkZ2UgbGlzdCBhbnkgbW9yZS4KCjIwMDQtMDktMjggIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNzZS5jIChjc2VfaW5zbik6IEF2b2lkIGNyZWF0aW5nIGRpcmVjdCBub24tbG9jYWwganVtcHMuCgkqIGNvbWJpbmUuYyAoY2FuX2NvbWJpbmVfcCk6IExpa2V3aXNlLgoJKiBsb2NhbC1hbGxvYy4gKHVwZGF0ZV9lcXVpdl9yZWdzKTogTGlrZXdpc2UuCgoyMDA0LTA5LTI4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIDE3NTMxCgkqIGV4cHIuYyAoZXhwYW5kX2V4cHJfYWRkcl9leHByXzEpOiBPbmx5IGFzc2VtYmxlX2V4dGVybmFsIGZvciBkZWNscy4KCURvbid0IGNoZWNrIFZPSURtb2RlIGhlcmUuICBGb3JjZSBQTFVTIG9wZXJhbmRzIHRvIGNvbW1vbiB0eXBlLgoJKGV4cGFuZF9leHByX2FkZHJfZXhwcik6IERvIFZPSURtb2RlIGNoZWNrIGVhcmxpZXIuICBGb3JjZSB1c2Ugb2YKCVBtb2RlIGlmIGdpdmVuIGEgbm9uIHBvaW50ZXIgdHlwZS4KCjIwMDQtMDktMjggIFpkZW5layBEdm9yYWsgIDxyYWtkdmVyQGF0cmV5Lmthcmxpbi5tZmYuY3VuaS5jej4KCglQUiAxNzUzMQoJKiBvcHRhYnMuYyAoZXhwYW5kX2Jpbm9wKTogRm9yY2UgY29uc3RhbnRzIHRvIHRoZSBjb3JyZWN0IG1vZGUuCgoyMDA0LTA5LTI4ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHMzOTBfYWRqdXN0X2Nvc3QpOiBSZW1vdmUuCgkoVEFSR0VUX1NDSEVEX0FESlVTVF9DT1NUKTogRG8gbm90IHJlZGVmaW5lLgoJKHMzOTBfYWRqdXN0X3ByaW9yaXR5KTogSGFuZGxlIFRZUEVfU1RNIGxpa2UgVFlQRV9TVE9SRS4KCSogY29uZmlnL3MzOTAvczM5MC5tZCAoIm1haW5fcG9vbCIpOiBVc2UgImxhcmwiIHR5cGUKCWF0dHJpYnV0ZSBpZiBUQVJHRVRfQ1BVX1pBUkNILgoKMjAwNC0wOS0yOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfZXhwYW5kX3Byb2xvZ3VlKTogRGVjbGFyZSBlaQoJdmFyaWFibGUuCgoyMDA0LTA5LTI4ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWxvb3AuYyAocGFzc19yZWNvcmRfYm91bmRzKTogRG8gbm90IGFzc2lnbiBhCgluYW1lIHRvIHRoZSBwYXNzLgoKMjAwNC0wOS0yOCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogY29tbW9uLm9wdCAoZmxhZ19nY3NlX3NtKTogRGlzYWJsZSBieSBkZWZhdWx0LgoJKGZsYWdfZ2NzZV9sYXMpOiBMaWtld2lzZS4KCShmbGFnX3dlYik6IExpa2V3aXNlLiAgQ3JlYXRlIGZyb20gdGhpcyBmaWxlLgoJKiBmbGFncy5oOiBSZW1vdmUgZmxhZ193ZWIgZGVjbGFyYXRpb24uCgkqIHRvcGxldi5jIChmbGFnX3dlYik6IExpa2V3aXNlLgoJKHByb2Nlc3Nfb3B0aW9ucyk6IE5ldmVyIHNldCBmbGFnX3dlYi4KCjIwMDQtMDktMjggIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIE1ha2VmaWxlLmluICh0cmVlLXNzYS1wcm9wYWdhdGUubyk6IERlcGVuZCBvbiB2ZWMuaC4KCSogdHJlZS1zc2EtcHJvcGFnYXRlLmM6IEluY2x1ZGUgdmVjLmguCgkoaW50ZXJlc3Rpbmdfc3NhX2VkZ2VzLCB2YXJ5aW5nX3NzYV9lZGdlcyk6IE1ha2UgdGhlc2UgVkVDcwoJaW5zdGVhZCBvZiB2YXJyYXlzLgoJKGNmZ19ibG9ja3NfYWRkKTogQXNzZXJ0IHRoZSBibG9jayBpcyBub3QgYWxyZWFkeSBpbiB0aGUgd29ya2xpc3QuCglVcGRhdGUgdXNlcyBvZiBpbnRlcmVzdGluZ19zc2FfZWRnZXMgYW5kIHZhcnlpbmdfc3NhX2VkZ2VzLgoJKHByb2Nlc3Nfc3NhX2VkZ2Vfd29ya2xpc3QsIHNzYV9wcm9wX2luaXQsIHNzYV9wcm9wX2ZpbmksCglzc2FfcHJvcGFnYXRlKTogTGlrZXdpc2UuCgoyMDA0LTA5LTI4ICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCglQUiBjLzE2NDA5CgkqIGMtZGVjbC5jIChzdGFydF9kZWNsKTogQ2hlY2sgZm9yIGluaXRpYWxpemluZyBpbmNvbXBsZXRlIGFycmF5CglvZiBWTEFzLgoJKGJ1aWxkX2NvbXBvdW5kX2xpdGVyYWwpOiBDaGVjayBmb3IgVFlQRSBiZWluZyBlcnJvcl9tYXJrX25vZGUuCgkqIGMtcGFyc2UuaW4gKHByaW1hcnkpOiBDaGVjayBmb3IgVkxBIGNvbXBvdW5kIGxpdGVyYWxzLgoKMjAwNC0wOS0yOCAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1saXZlLmMgKGNhbGN1bGF0ZV9saXZlX29uX2VudHJ5KTogRml4IHdhcm5pbmdzCgl3aXRoIC0tZGlzYWJsZS1jaGVja2luZy4KCjIwMDQtMDktMjggIERldmFuZyBQYXRlbCAgPGRwYXRlbEBhcHBsZS5jb20+CgoJKiB0cmVlLXByZXR0eS1wcmludC5jIChkdW1wX2dlbmVyaWNfbm9kZSk6IFByaW50IHZlY3RvciB0eXBlcy4KCjIwMDQtMDktMjggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvc2gvc2guaCAoSU5JVF9DVU1VTEFUSVZFX0FSR1MpOiBSZXBsYWNlIHdpdGggYW4KCWludm9jYXRpb24gb2YgdGhlIGZ1bmN0aW9uIHNoX2luaXRfY3VtdWxhdGl2ZV9hcmdzLgoJKElOSVRfQ1VNVUxBVElWRV9MSUJDQUxMX0FSR1MpOiBMaWtld2lzZS4KCShJTklUX0NVTVVMQVRJVkVfSU5DT01JTkdfQVJHUyk6IERlbGV0ZS4KCSogY29uZmlnL3NoL3NoLXByb3Rvcy5oOiBQcm90b3R5cGUgc2hfaW5pdF9jdW11bGF0aXZlX2FyZ3MuCgkqIGNvbmZpZy9zaC9zaC5jIChzaF9pbml0X2N1bXVsYXRpdmVfYXJncyk6IE5ldyBmdW5jdGlvbiBiYXNlZAoJb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBvbGQgSU5JVF9DVU1VTEFUSVZFX0FSR1MgbWFjcm8gYnV0IHdpdGggYQoJaGV1cmlzdGljIGFkZGVkIHRvIGRldGVybWluZSB0aGUgc2V0dGluZyBvZiBmb3JjZV9tZW0gd2hlbiBhCglsaWJyYXJ5IGZ1bmN0aW9uIGlzIGJlaW5nIGNhbGxlZC4KCjIwMDQtMDktMjggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtbG9vcC1pbS5jIChzaW5nbGVfcmVhY2hhYmxlX2FkZHJlc3MpIDxQSElfTk9ERT46CglTa2lwIGNvbnN0YW50IGFyZ3VtZW50cy4KCjIwMDQtMDktMjggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtYWxpYXMuYyAoY3JlYXRlX25hbWVfdGFncyk6IElmIFBUUiBwb2ludHMgdG8gYQoJdm9sYXRpbGUgdHlwZSwgbWFyayB0aGUgdGFnIHZvbGF0aWxlLgoJKGdldF90bXRfZm9yKTogSWYgVEFHX1RZUEUgaXMgYSB2b2xhdGlsZSB0eXBlLCBtYXJrIHRoZSB0YWcKCXZvbGF0aWxlLgoKMjAwNC0wOS0yOCAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiB0cmVlLmRlZiAodmVjX2NvbmRfZXhwcik6IEZpeC4gQ2hhbmdlICdlJwoJdG8gdGNjX2V4cHJlc3Npb24uCgoyMDA0LTA5LTI4ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYmFzaWMtYmxvY2suaDogRml4IGEgY29tbWVudCB0eXBvLgoKMjAwNC0wOS0yOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIG9wdGFicy5jLCBvcHRhYnMuaDogRml4IGNvbW1lbnQgdHlwb3MuCgoyMDA0LTA5LTI4ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGFjdC1ldXJvcGUuZnI+CgoJKiBjb25maWcvc3BhcmMvc3BhcmMubWQgKGNhbGxfYWRkcmVzc19zdHJ1Y3RfdmFsdWVfc3AzMik6CglQcm9wZXJseSBtYXNrIHRoZSBpbW1lZGlhdGUgZmllbGQgb2YgdGhlICd1bmltcCcgaW5zdHJ1Y3Rpb24uCgkoY2FsbF9zeW1ib2xpY19zdHJ1Y3RfdmFsdWVfc3AzMik6IExpa2V3aXNlLgoKMjAwNC0wOS0yOCAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgkgICAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoJICAgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCU1lcmdlIGZyb20gZWRnZS12ZWN0b3ItYnJhbmNoOgoJKiBiYXNpYy1ibG9jay5oOiBJbmNsdWRlIHZlYy5oLCBlcnJvcnMuaC4gSW5zdGFudGlhdGUgYSBWRUMoZWRnZSkuCgkoc3RydWN0IGVkZ2VfZGVmKTogUmVtb3ZlIHByZWRfbmV4dCwgc3VjY19uZXh0IG1lbWJlcnMuCgkoc3RydWN0IGJhc2ljX2Jsb2NrX2RlZik6IFJlbW92ZSBwcmVkLCBzdWNjIG1lbWJlcnMuICBBZGQgcHJlZHMKCWFuZCBzdWNjcyBtZW1iZXJzIG9mIHR5cGUgVkVDKGVkZ2UpLgoJKEZBTExUSFJVX0VER0UpOiBSZWRlZmluZSB1c2luZyBFREdFX1NVQ0MuCgkoQlJBTkNIX0VER0UpOiBMaWtld2lzZS4KCShFREdFX0NSSVRJQ0FMX1ApOiBSZWRlZmluZSB1c2luZyBFREdFX0NPVU5ULgoJKEVER0VfQ09VTlQsIEVER0VfSSwgRURHRV9QUkVELCBFREdFX1NVQ0MpOiBOZXcuCgkoZWRnZV9pdGVyYXRvcik6IE5ldy4KCShlaV9zdGFydCwgZWlfbGFzdCwgZWlfZW5kX3AsIGVpX29uZV9iZWZvcmVfZW5kX3ApOiBOZXcuCgkoZWlfbmV4dCwgZWlfcHJldiwgZWlfZWRnZSwgZWlfc2FmZV9lZGdlKTogTGlrZXdpc2UuCgkoRk9SX0VBQ0hfRURHRSk6IE5ldy4KCSogYmItcmVvcmRlci5jIChmaW5kX3RyYWNlcyk6IFVzZSBGT1JfRUFDSF9FREdFIGFuZCBFREdFXyogbWFjcm9zCgl3aGVyZSBhcHBsaWNhYmxlLgoJKHJvdGF0ZV9sb29wKTogTGlrZXdpc2UuCgkoZmluZF90cmFjZXNfMV9yb3V0ZSk6IExpa2V3aXNlLgoJKGJiX3RvX2tleSk6IExpa2V3aXNlLgoJKGNvbm5lY3RfdHJhY2VzKTogTGlrZXdpc2UuCgkoY29weV9iYl9wKTogTGlrZXdpc2UuCgkoZmluZF9yYXJlbHlfZXhlY3V0ZWRfYmFzaWNfYmxvY2tzX2FuZF9jcm9zc2luZ19lZGdlcyk6IExpa2V3aXNlLgoJKGFkZF9sYWJlbHNfYW5kX21pc3NpbmdfanVtcHMpOiBMaWtld2lzZS4KCShmaXhfdXBfZmFsbF90aHJ1X2VkZ2VzKTogTGlrZXdpc2UuCgkoZmluZF9qdW1wX2Jsb2NrKTogTGlrZXdpc2UuCgkoZml4X2Nyb3NzaW5nX2NvbmRpdGlvbmFsX2JyYW5jaGVzKTogTGlrZXdpc2UuCgkoZml4X2Nyb3NzaW5nX3VuY29uZGl0aW9uYWxfYnJhbmNoZXMpOiBMaWtld2lzZS4KCShhZGRfcmVnX2Nyb3NzaW5nX2p1bXBfbm90ZXMpOiBMaWtld2lzZS4KCSogYnQtbG9hZC5jIChhdWdtZW50X2xpdmVfcmFuZ2UpOiBMaWtld2lzZS4KCSogY2ZnLmMgKGNsZWFyX2VkZ2VzKTogTGlrZXdpc2UuCgkodW5jaGVja2VkX21ha2VfZWRnZSk6IExpa2V3aXNlLgoJKGNhY2hlZF9tYWtlX2VkZ2UpOiBMaWtld2lzZS4KCShtYWtlX3NpbmdsZV9zdWNjX2VkZ2UpOiBMaWtld2lzZS4KCShyZW1vdmVfZWRnZSk6IExpa2V3aXNlLgoJKHJlZGlyZWN0X2VkZ2Vfc3VjY19ub2R1cCk6IExpa2V3aXNlLgoJKGNoZWNrX2JiX3Byb2ZpbGUpOiBMaWtld2lzZS4KCShkdW1wX2Zsb3dfaW5mbyk6IExpa2V3aXNlLgoJKGFsbG9jX2F1eF9mb3JfZWRnZXMpOiBMaWtld2lzZS4KCShjbGVhcl9hdXhfZm9yX2VkZ2VzKTogTGlrZXdpc2UuCgkoZHVtcF9jZmdfYmJfaW5mbyk6IExpa2V3aXNlLgoJKiBjZmdhbmFsLmMgKGZvcndhcmRlcl9ibG9ja19wKTogTGlrZXdpc2UuCgkoY2FuX2ZhbGx0aHJ1KTogTGlrZXdpc2UuCgkoY291bGRfZmFsbF90aHJvdWdoKTogTGlrZXdpc2UuCgkobWFya19kZnNfYmFja19lZGdlcyk6IExpa2V3aXNlLgoJKHNldF9lZGdlX2Nhbl9mYWxsdGhydV9mbGFnKTogTGlrZXdpc2UuCgkoZmluZF91bnJlYWNoYWJsZV9ibG9ja3MpOiBMaWtld2lzZS4KCShjcmVhdGVfZWRnZV9saXN0KTogTGlrZXdpc2UuCgkodmVyaWZ5X2VkZ2VfbGlzdCk6IExpa2V3aXNlLgoJKGFkZF9ub3JldHVybl9mYWtlX2V4aXRfZWRnZXMpOiBMaWtld2lzZS4KCShjb25uZWN0X2luZmluaXRlX2xvb3BzX3RvX2V4aXQpOiBMaWtld2lzZS4KCShmbG93X3JldmVyc2VfdG9wX3NvcnRfb3JkZXJfY29tcHV0ZSk6IExpa2V3aXNlLgoJKGZsb3dfZGVwdGhfZmlyc3Rfb3JkZXJfY29tcHV0ZSk6IExpa2V3aXNlLgoJKGZsb3dfcHJlb3JkZXJfdHJhbnN2ZXJzYWxfY29tcHV0ZSk6IExpa2V3aXNlLgoJKGZsb3dfZGZzX2NvbXB1dGVfcmV2ZXJzZV9leGVjdXRlKTogTGlrZXdpc2UuCgkoZGZzX2VudW1lcmF0ZV9mcm9tKTogTGlrZXdpc2UuCgkoY29tcHV0ZV9kb21pbmFuY2VfZnJvbnRpZXJzXzEpOiBMaWtld2lzZS4KCSogY2ZnYnVpbGQuYyAobWFrZV9lZGdlcyk6IExpa2V3aXNlLgoJKGNvbXB1dGVfb3V0Z29pbmdfZnJlcXVlbmNpZXMpOiBMaWtld2lzZS4KCShmaW5kX21hbnlfc3ViX2Jhc2ljX2Jsb2Nrcyk6IExpa2V3aXNlLgoJKGZpbmRfc3ViX2Jhc2ljX2Jsb2Nrcyk6IExpa2V3aXNlLgoJKiBjZmdjbGVhbnVwLmMgKHRyeV9zaW1wbGlmeV9jb25kanVtcCk6IExpa2V3aXNlLgoJKHRocmVhZF9qdW1wKTogTGlrZXdpc2UuCgkodHJ5X2ZvcndhcmRfZWRnZXMpOiBMaWtld2lzZS4KCShtZXJnZV9ibG9ja3NfbW92ZSk6IExpa2V3aXNlLgoJKG91dGdvaW5nX2VkZ2VzX21hdGNoKTogTGlrZXdpc2UuCgkodHJ5X2Nyb3NzanVtcF90b19lZGdlKTogTGlrZXdpc2UuCgkodHJ5X2Nyb3NzanVtcF9iYik6IExpa2V3aXNlLgoJKHRyeV9vcHRpbWl6ZV9jZmcpOiBMaWtld2lzZS4KCShtZXJnZV9zZXFfYmxvY2tzKTogTGlrZXdpc2UuCgkqIGNmZ2V4cGFuZC5jIChleHBhbmRfZ2ltcGxlX3RhaWxjYWxsKTogTGlrZXdpc2UuCgkoZXhwYW5kX2dpbXBsZV9iYXNpY19ibG9jayk6IExpa2V3aXNlLgoJKGNvbnN0cnVjdF9pbml0X2Jsb2NrKTogTGlrZXdpc2UuCgkoY29uc3RydWN0X2V4aXRfYmxvY2spOiBMaWtld2lzZS4KCSogY2ZnaG9va3MuYyAodmVyaWZ5X2Zsb3dfaW5mbyk6IExpa2V3aXNlLgoJKGR1bXBfYmIpOiBMaWtld2lzZS4KCShkZWxldGVfYmFzaWNfYmxvY2spOiBMaWtld2lzZS4KCShzcGxpdF9lZGdlKTogTGlrZXdpc2UuCgkobWVyZ2VfYmxvY2tzKTogTGlrZXdpc2UuCgkobWFrZV9mb3J3YXJkZXJfYmxvY2spOiBMaWtld2lzZS4KCSh0aWR5X2ZhbGx0aHJ1X2VkZ2VzKTogTGlrZXdpc2UuCgkoY2FuX2R1cGxpY2F0ZV9ibG9ja19wKTogTGlrZXdpc2UuCgkoZHVwbGljYXRlX2Jsb2NrKTogTGlrZXdpc2UuCgkqIGNmZ2xheW91dC5jIChmaXh1cF9yZW9yZGVyX2NoYWluKTogTGlrZXdpc2UuCgkoZml4dXBfZmFsbHRocnVfZXhpdF9wcmVkZWNlc3Nvcik6IExpa2V3aXNlLgoJKGNhbl9jb3B5X2Jic19wKTogTGlrZXdpc2UuCgkoY29weV9iYnMpOiBMaWtld2lzZS4KCSogY2ZnbG9vcC5jIChmbG93X2xvb3BzX2NmZ19kdW1wKTogTGlrZXdpc2UuCgkoZmxvd19sb29wX2VudHJ5X2VkZ2VzX2ZpbmQpOiBMaWtld2lzZS4KCShmbG93X2xvb3BfZXhpdF9lZGdlc19maW5kKTogTGlrZXdpc2UuCgkoZmxvd19sb29wX25vZGVzX2ZpbmQpOiBMaWtld2lzZS4KCShtYXJrX3NpbmdsZV9leGl0X2xvb3BzKTogTGlrZXdpc2UuCgkoZmxvd19sb29wX3ByZV9oZWFkZXJfc2Nhbik6IExpa2V3aXNlLgoJKGZsb3dfbG9vcF9wcmVfaGVhZGVyX2ZpbmQpOiBMaWtld2lzZS4KCSh1cGRhdGVfbGF0Y2hfaW5mbyk6IExpa2V3aXNlLgoJKGNhbm9uaWNhbGl6ZV9sb29wX2hlYWRlcnMpOiBMaWtld2lzZS4KCShmbG93X2xvb3BzX2ZpbmQpOiBMaWtld2lzZS4KCShnZXRfbG9vcF9ib2R5X2luX2Jmc19vcmRlcik6IExpa2V3aXNlLgoJKGdldF9sb29wX2V4aXRfZWRnZXMpOiBMaWtld2lzZS4KCShudW1fbG9vcF9icmFuY2hlcyk6IExpa2V3aXNlLgoJKHZlcmlmeV9sb29wX3N0cnVjdHVyZSk6IExpa2V3aXNlLgoJKGxvb3BfbGF0Y2hfZWRnZSk6IExpa2V3aXNlLgoJKGxvb3BfcHJlaGVhZGVyX2VkZ2UpOiBMaWtld2lzZS4KCSogY2ZnbG9vcGFuYWwuYyAobWFya19pcnJlZHVjaWJsZV9sb29wcyk6IExpa2V3aXNlLgoJKGV4cGVjdGVkX2xvb3BfaXRlcmF0aW9ucyk6IExpa2V3aXNlLgoJKiBjZmdsb29wbWFuaXAuYyAocmVtb3ZlX2Jicyk6IExpa2V3aXNlLgoJKGZpeF9iYl9wbGFjZW1lbnQpOiBMaWtld2lzZS4KCShmaXhfaXJyZWR1Y2libGVfbG9vcHMpOiBMaWtld2lzZS4KCShyZW1vdmVfcGF0aCk6IExpa2V3aXNlLgoJKHNjYWxlX2Jic19mcmVxdWVuY2llcyk6IExpa2V3aXNlLgoJKGxvb3BpZnkpOiBMaWtld2lzZS4KCSh1bmxvb3ApOiBMaWtld2lzZS4KCShmaXhfbG9vcF9wbGFjZW1lbnQpOiBMaWtld2lzZS4KCShsb29wX2RlbGV0ZV9icmFuY2hfZWRnZSk6IExpa2V3aXNlLgoJKGR1cGxpY2F0ZV9sb29wX3RvX2hlYWRlcl9lZGdlKTogTGlrZXdpc2UuCgkobWZiX2tlZXBfanVzdCk6IExpa2V3aXNlLgoJKGNyZWF0ZV9wcmVoZWFkZXIpOiBMaWtld2lzZS4KCShmb3JjZV9zaW5nbGVfc3VjY19sYXRjaGVzKTogTGlrZXdpc2UuCgkobG9vcF9zcGxpdF9lZGdlX3dpdGgpOiBMaWtld2lzZS4KCShjcmVhdGVfbG9vcF9ub3Rlcyk6IExpa2V3aXNlLgoJKiBjZmdydGwuYyAocnRsX3NwbGl0X2Jsb2NrKTogTGlrZXdpc2UuCgkocnRsX21lcmdlX2Jsb2Nrcyk6IExpa2V3aXNlLgoJKHJ0bF9jYW5fbWVyZ2VfYmxvY2tzKTogTGlrZXdpc2UuCgkodHJ5X3JlZGlyZWN0X2J5X3JlcGxhY2luZ19qdW1wKTogTGlrZXdpc2UuCgkoZm9yY2Vfbm9uZmFsbHRocnVfYW5kX3JlZGlyZWN0KTogTGlrZXdpc2UuCgkocnRsX3RpZHlfZmFsbHRocnVfZWRnZSk6IExpa2V3aXNlLgoJKGNvbW1pdF9vbmVfZWRnZV9pbnNlcnRpb24pOiBMaWtld2lzZS4KCShjb21taXRfZWRnZV9pbnNlcnRpb25zKTogTGlrZXdpc2UuCgkoY29tbWl0X2VkZ2VfaW5zZXJ0aW9uc193YXRjaF9jYWxscyk6IExpa2V3aXNlLgoJKHJ0bF92ZXJpZnlfZmxvd19pbmZvXzEpOiBMaWtld2lzZS4KCShydGxfdmVyaWZ5X2Zsb3dfaW5mbyk6IExpa2V3aXNlLgoJKHB1cmdlX2RlYWRfZWRnZXMpOiBMaWtld2lzZS4KCShjZmdfbGF5b3V0X3JlZGlyZWN0X2VkZ2VfYW5kX2JyYW5jaCk6IExpa2V3aXNlLgoJKGNmZ19sYXlvdXRfY2FuX21lcmdlX2Jsb2Nrc19wKTogTGlrZXdpc2UuCgkocnRsX2Zsb3dfY2FsbF9lZGdlc19hZGQpOiBMaWtld2lzZS4KCSogY3NlLmMgKGNzZV9jY19zdWNjcyk6IExpa2V3aXNlLgoJKiBkZi5jIChoeWJyaWRfc2VhcmNoKTogTGlrZXdpc2UuCgkqIGRvbWluYW5jZS5jIChjYWxjX2Rmc190cmVlX25vbnJlYyk6IExpa2V3aXNlLgoJKGNhbGNfZGZzX3RyZWUpOiBMaWtld2lzZS4KCShjYWxjX2lkb21zKTogTGlrZXdpc2UuCgkocmVjb3VudF9kb21pbmF0b3IpOiBMaWtld2lzZS4KCSogZG9td2Fsay5jICh3YWxrX2RvbWluYXRvcl90cmVlKTogTGlrZXdpc2UuCgkqIGV4Y2VwdC5jIChlbWl0X3RvX25ld19iYl9iZWZvcmUpOiBMaWtld2lzZS4KCShjb25uZWN0X3Bvc3RfbGFuZGluZ19wYWRzKTogTGlrZXdpc2UuCgkoc2psal9lbWl0X2Z1bmN0aW9uX2VudGVyKTogTGlrZXdpc2UuCgkoc2psal9lbWl0X2Z1bmN0aW9uX2V4aXQpOiBMaWtld2lzZS4KCShmaW5pc2hfZWhfZ2VuZXJhdGlvbik6IExpa2V3aXNlLgoJKiBmaW5hbC5jIChjb21wdXRlX2FsaWdubWVudHMpOiBMaWtld2lzZS4KCSogZmxvdy5jIChjYWxjdWxhdGVfZ2xvYmFsX3JlZ3NfbGl2ZSk6IExpa2V3aXNlLgoJKGluaXRpYWxpemVfdW5pbml0aWFsaXplZF9zdWJyZWdzKTogTGlrZXdpc2UuCgkoaW5pdF9wcm9wYWdhdGVfYmxvY2tfaW5mbyk6IExpa2V3aXNlLgoJKiBmdW5jdGlvbi5jICh0aHJlYWRfcHJvbG9ndWVfYW5kX2VwaWxvZ3VlX2luc25zKTogTGlrZXdpc2UuCgkqIGdjc2UuYyAoZmluZF9pbXBsaWNpdF9zZXRzKTogTGlrZXdpc2UuCgkoYnlwYXNzX2Jsb2NrKTogTGlrZXdpc2UuCgkoYnlwYXNzX2NvbmRpdGlvbmFsX2p1bXBzKTogTGlrZXdpc2UuCgkoY29tcHV0ZV9wcmVfZGF0YSk6IExpa2V3aXNlLgoJKGluc2VydF9pbnNuX2VuZF9iYik6IExpa2V3aXNlLgoJKGluc2VydF9zdG9yZSk6IExpa2V3aXNlLgoJKHJlbW92ZV9yZWFjaGFibGVfZXF1aXZfbm90ZXMpOiBMaWtld2lzZS4KCSogZ2xvYmFsLmMgKGdsb2JhbF9jb25mbGljdHMpOiBMaWtld2lzZS4KCShjYWxjdWxhdGVfcmVnX3Bhdik6IExpa2V3aXNlLgoJKiBncmFwaC5jIChwcmludF9ydGxfZ3JhcGhfd2l0aF9iYik6IExpa2V3aXNlLgoJKiBpZmN2dC5jIChtYXJrX2xvb3BfZXhpdF9lZGdlcyk6IExpa2V3aXNlLgoJKG1lcmdlX2lmX2Jsb2NrKTogTGlrZXdpc2UuCgkoZmluZF9pZl9oZWFkZXIpOiBMaWtld2lzZS4KCShibG9ja19qdW1wc19hbmRfZmFsbHRocnVfcCk6IExpa2V3aXNlLgoJKGZpbmRfaWZfYmxvY2spOiBMaWtld2lzZS4KCShmaW5kX2NvbmRfdHJhcCk6IExpa2V3aXNlLgoJKGJsb2NrX2hhc19vbmx5X3RyYXApOiBMaWtld2lzZS4KCShmaW5kX2lmX2Nhc2UxKTogTGlrZXdpc2UuCgkoZmluZF9pZl9jYXNlXzIpOiBMaWtld2lzZS4KCSogbGFtYmRhLWNvZGUuYyAobGFtYmRhX2xvb3BuZXN0X3RvX2djY19sb29wbmVzdCk6IExpa2V3aXNlLgoJKHBlcmZlY3RfbmVzdGlmeSk6IExpa2V3aXNlLgoJKiBsY20uYyAoY29tcHV0ZV9hbnRpbm91dF9lZGdlKTogTGlrZXdpc2UuCgkoY29tcHV0ZV9sYXRlcmluKTogTGlrZXdpc2UuCgkoY29tcHV0ZV9hdmFpbGFibGUpOiBMaWtld2lzZS4KCShjb21wdXRlX25lYXJlcm91dCk6IExpa2V3aXNlLgoJKiBsb29wLWRvbG9vcC5jIChkb2xvb3BfbW9kaWZ5KTogTGlrZXdpc2UuCgkqIGxvb3AtaW5pdC5jIChsb29wX29wdGltaXplcl9pbml0KTogTGlrZXdpc2UuCgkqIGxvb3AtaW52YXJpYW50LmMgKGZpbmRfZXhpdHMpOiBMaWtld2lzZS4KCSogbG9vcC1pdi5jIChzaW1wbGlmeV91c2luZ19pbml0aWFsX3ZhbHVlcyk6IExpa2V3aXNlLgoJKGNoZWNrX3NpbXBsZV9leGl0KTogTGlrZXdpc2UuCgkoZmluZF9zaW1wbGVfZXhpdCk6IExpa2V3aXNlLgoJKiBsb29wLXVucm9sbC5jIChwZWVsX2xvb3BfY29tcGxldGVseSk6IExpa2V3aXNlLgoJKHVucm9sbF9sb29wX2NvbnN0YW50X2l0ZXJhdGlvbnMpOiBMaWtld2lzZS4KCSh1bnJvbGxfbG9vcF9ydW50aW1lX2l0ZXJhdGlvbnMpOiBMaWtld2lzZS4KCSogbG9vcC11bnN3aXRjaC5jIChtYXlfdW5zd2l0Y2hfb24pOiBMaWtld2lzZS4KCSh1bnN3aXRjaF9sb29wKTogTGlrZXdpc2UuCgkqIG1vZHVsby1zY2hlZC5jIChnZW5lcmF0ZV9wcm9sb2dfZXBpbG9nKTogTGlrZXdpc2UuCgkoc21zX3NjaGVkdWxlKTogTGlrZXdpc2UuCgkqIHBvc3RyZWxvYWQtZ2NzZS5jIChlbGltaW5hdGVfcGFydGlhbGx5X3JlZHVuZGFudF9sb2FkKToKCUxpa2V3aXNlLgoJKiBwcmVkaWN0LmMgKGNhbl9wcmVkaWN0X2luc25fcCk6IExpa2V3aXNlLgoJKHNldF9ldmVuX3Byb2JhYmlsaXRpZXMpOiBMaWtld2lzZS4KCShjb21iaW5lX3ByZWRpY3Rpb25zX2Zvcl9iYik6IExpa2V3aXNlLgoJKHByZWRpY3RfbG9vcHMpOiBMaWtld2lzZS4KCShlc3RpbWF0ZV9wcm9iYWJpbGl0eSk6IExpa2V3aXNlLgoJKHRyZWVfcHJlZGljdF9ieV9vcGNvZGUpOiBMaWtld2lzZS4KCSh0cmVlX2VzdGltYXRlX3Byb2JhYmlsaXR5KTogTGlrZXdpc2UuCgkobGFzdF9iYXNpY19ibG9ja19wKTogTGlrZXdpc2UuCgkocHJvcGFnYXRlX2ZyZXEpOiBMaWtld2lzZS4KCShlc3RpbWF0ZV9sb29wc19hdF9sZXZlbCk6IExpa2V3aXNlLgoJKGVzdGltYXRlX2JiX2ZyZXF1ZW5jaWVzKTogTGlrZXdpc2UuCgkqIHByb2ZpbGUuYyAoaW5zdHJ1bWVudF9lZGdlcyk6IExpa2V3aXNlLgoJKGdldF9leGVjX2NvdW50cyk6IExpa2V3aXNlLgoJKGNvbXB1dGVfYnJhbmNoX3Byb2JhYmlsaXRpZXMpOiBMaWtld2lzZS4KCShicmFuY2hfcHJvYik6IExpa2V3aXNlLgoJKiByYS1idWlsZC5jIChsaXZlX2luKTogTGlrZXdpc2UuCgkqIHJhLXJld3JpdGUuYyAocmV3cml0ZV9wcm9ncmFtMik6IExpa2V3aXNlLgoJKiByYS5jIChyZWdfYWxsb2MpOiBMaWtld2lzZS4KCSogcmVnLXN0YWNrLmMgKHJlZ190b19zdGFjayk6IExpa2V3aXNlLgoJKGNvbnZlcnRfcmVnc19lbnRyeSk6IExpa2V3aXNlLgoJKGNvbXBlbnNhdGVfZWRnZSk6IExpa2V3aXNlLgoJKGNvbnZlcnRfcmVnc18xKTogTGlrZXdpc2UsCgkoY29udmVydF9yZWdzXzIpOiBMaWtld2lzZS4KCShjb252ZXJ0X3JlZ3MpOiBMaWtld2lzZS4KCSogcmVncmVuYW1lLmMgKGNvcHlwcm9wX2hhcmRyZWdfZm9yd2FyZCk6IExpa2V3aXNlLgoJKiByZWxvYWQxLmMgKGZpeHVwX2Fibm9ybWFsX2VkZ2VzKTogTGlrZXdpc2UuCgkqIHNiaXRtYXAuYyAoc2JpdG1hcF9pbnRlcnNlY3Rpb25fb2Zfc3VjY3MpOiBMaWtld2lzZS4KCShzYml0bWFwX2luc2Vyc2VjdGlvbl9vZl9wcmVkcyk6IExpa2V3aXNlLgoJKHNiaXRtYXBfdW5pb25fb2Zfc3VjY3MpOiBMaWtld2lzZS4KCShzYml0bWFwX3VuaW9uX29mX3ByZWRzKTogTGlrZXdpc2UuCgkqIHNjaGVkLWViYi5jIChjb21wdXRlX2p1bXBfcmVnX2RlcGVuZGVuY2llcyk6IExpa2V3aXNlLgoJKGZpeF9iYXNpY19ibG9ja19ib3VuZGFyaWVzKTogTGlrZXdpc2UuCgkoc2NoZWRfZWJicyk6IExpa2V3aXNlLgoJKiBzY2hlZC1yZ24uYyAoYnVpbGRfY29udHJvbF9mbG93KTogTGlrZXdpc2UuCgkoZmluZF9yZ25zKTogTGlrZXdpc2UuCgkqIHRyYWNlci5jIChmaW5kX2Jlc3Rfc3VjY2Vzc29yKTogTGlrZXdpc2UuCgkoZmluZF9iZXN0X3ByZWRlY2Vzc29yKTogTGlrZXdpc2UuCgkodGFpbF9kdXBsaWNhdGUpOiBMaWtld2lzZS4KCSogdHJlZS1jZmcuYyAobWFrZV9lZGdlcyk6IExpa2V3aXNlLgoJKG1ha2VfY3RybF9zdG10X2VkZ2VzKTogTGlrZXdpc2UuCgkobWFrZV9nb3RvX2V4cHJfZWRnZXMpOiBMaWtld2lzZS4KCSh0cmVlX2Nhbl9tZXJnZV9ibG9ja3NfcCk6IExpa2V3aXNlLgoJKHRyZWVfbWVyZ2VfYmxvY2tzKTogTGlrZXdpc2UuCgkoY2ZnX3JlbW92ZV91c2VsZXNzX3N0bXRzX2JiKTogTGlrZXdpc2UuCgkocmVtb3ZlX3BoaV9ub2Rlc19hbmRfZWRnZXNfZm9yX3VucmVhY2hhYmxlX2Jsb2NrKTogTGlrZXdpc2UuCgkodHJlZV9ibG9ja19mb3J3YXJkc190byk6IExpa2V3aXNlLgoJKGNsZWFudXBfY29udHJvbF9leHByX2dyYXBoKTogTGlrZXdpc2UuCgkoZmluZF90YWtlbl9lZGdlKTogTGlrZXdpc2UuCgkoZHVtcF9jZmdfc3RhdHMpOiBMaWtld2lzZS4KCSh0cmVlX2NmZzJ2Y2cpOiBMaWtld2lzZS4KCShkaXNiYW5kX2ltcGxpY2l0X2VkZ2VzKTogTGlrZXdpc2UuCgkodHJlZV9maW5kX2VkZ2VfaW5zZXJ0X2xvYyk6IExpa2V3aXNlLgoJKGJzaV9jb21taXRfZWRnZV9pbnNlcnRzKTogTGlrZXdpc2UuCgkodHJlZV9zcGxpdF9lZGdlKTogTGlrZXdpc2UuCgkodHJlZV92ZXJpZnlfZmxvd19pbmZvKTogTGlrZXdpc2UuCgkodHJlZV9tYWtlX2ZvcndhcmRlcl9ibG9jayk6IExpa2V3aXNlLgoJKHRyZWVfZm9yd2FyZGVyX2Jsb2NrX3ApOiBMaWtld2lzZS4KCSh0aHJlYWRfanVtcHMpOiBMaWtld2lzZS4KCSh0cmVlX3RyeV9yZWRpcmVjdF9ieV9yZXBsYWNpbmdfanVtcCk6IExpa2V3aXNlLgoJKHRyZWVfc3BsaXRfYmxvY2spOiBMaWtld2lzZS4KCShhZGRfcGhpX2FyZ3NfYWZ0ZXJfY29weV9iYik6IExpa2V3aXNlLgoJKHJld3JpdGVfdG9fbmV3X3NzYV9uYW1lc19iYik6IExpa2V3aXNlLgoJKGR1bXBfZnVuY3Rpb25fdG9fZmlsZSk6IExpa2V3aXNlLgoJKHByaW50X3ByZWRfYmJzKTogTGlrZXdpc2UuCgkocHJpbnRfbG9vcCk6IExpa2V3aXNlLgoJKHRyZWVfZmxvd19jYWxsX2VkZ2VzX2FkZCk6IExpa2V3aXNlLgoJKHNwbGl0X2NyaXRpY2FsX2VkZ2VzKTogTGlrZXdpc2UuCgkoZXhlY3V0ZV93YXJuX2Z1bmN0aW9uX3JldHVybik6IExpa2V3aXNlLgoJKGV4dHJhY3RfdHJ1ZV9mYWxzZV9lZGdlc19mcm9tX2Jsb2NrKTogTGlrZXdpc2UuCgkqIHRyZWUtaWYtY29udi5jICh0cmVlX2lmX2NvbnZlcnNpb24pOiBMaWtld2lzZS4KCShpZl9jb252ZXJ0YWJsZV9iYl9wKTogTGlrZXdpc2UuCgkoZmluZF9waGlfcmVwbGFjZW1lbnRfY29uZGl0aW9uKTogTGlrZXdpc2UuCgkoY29tYmluZV9ibG9ja3MpOiBMaWtld2lzZS4KCSogdHJlZS1pbnRvLXNzYS5jIChjb21wdXRlX2dsb2JhbF9saXZlaW4pOiBMaWtld2lzZS4KCShzc2FfbWFya19waGlfdXNlcyk6IExpa2V3aXNlLgoJKHNzYV9yZXdyaXRlX2luaXRpYWxpemVfYmxvY2spOiBMaWtld2lzZS4KCShyZXdyaXRlX2FkZF9waGlfYXJndW1lbnRzKTogTGlrZXdpc2UuCgkoc3NhX3Jld3JpdGVfcGhpX2FyZ3VtZW50cyk6IExpa2V3aXNlLgoJKGluc2VydF9waGlfbm9kZXNfZm9yKTogTGlrZXdpc2UuCgkocmV3cml0ZV9pbnRvX3NzYSk6IExpa2V3aXNlLgoJKHJld3JpdGVfc3NhX2ludG9fc3NhKTogTGlrZXdpc2UuCgkqIHRyZWUtbXVkZmxhcC5jIChtZl9idWlsZF9jaGVja19zdGF0ZW1lbnRfZm9yKTogTGlrZXdpc2UuCgkqIHRyZWUtb3V0b2Ytc3NhLmMgKGNvYWxlc2NlX2Fibm9ybWFsX2VkZ2VzKTogTGlrZXdpc2UuCgkocmV3cml0ZV90cmVlcyk6IExpa2V3aXNlLgoJKiB0cmVlLXByZXR0eS1wcmludC5jIChkdW1wX2JiX2hlYWRlcik6IExpa2V3aXNlLgoJKGR1bXBfaW1wbGljaXRfZWRnZXMpOiBMaWtld2lzZS4KCSogdHJlZS1zcmEuYyAoaW5zZXJ0X2VkZ2VfY29waWVzKTogTGlrZXdpc2UuCgkoZmluZF9vYnZpb3VzbHlfbmVjZXNzYXJ5X3N0bXRzKTogTGlrZXdpc2UuCgkocmVtb3ZlX2RhdGFfc3RtdCk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1kb20uYyAodGhyZWFkX2Fjcm9zc19lZGdlKTogTGlrZXdpc2UuCgkoZG9tX29wdF9maW5hbGl6ZV9ibG9jayk6IExpa2V3aXNlLgoJKHNpbmdsZV9pbmNvbWluZ19lZGdlX2lnbm9yaW5nX2xvb3BfZWRnZXMpOiBMaWtld2lzZS4KCShyZWNvcmRfZXF1aXZhbGVuY2VzX2Zyb21faW5jb21pbmdfZWRnZXMpOiBMaWtld2lzZS4KCShjcHJvcF9pbnRvX3N1Y2Nlc3Nvcl9waGlzKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWxpdmUuYyAobGl2ZV93b3JrbGlzdCk6IExpa2V3aXNlLgoJKGNhbGN1bGF0ZV9saXZlX29uX2VudHJ5KTogTGlrZXdpc2UuCgkoY2FsY3VsYXRlX2xpdmVfb25fZXhpdCk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1sb29wLWNoLmMgKHNob3VsZF9kdXBsaWNhdGVfbG9vcF9oZWFkZXJfcCk6IExpa2V3aXNlLgoJKGNvcHlfbG9vcF9oZWFkZXJzKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWxvb3AtaW0uYyAobG9vcF9jb21taXRfaW5zZXJ0cyk6IExpa2V3aXNlLgoJKGZpbGxfYWx3YXlzX2V4ZWN1dGVkX2luKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWxvb3AtaXZjYW5vbi5jIChjcmVhdGVfY2Fub25pY2FsX2l2KTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWxvb3AtaXZvcHRzLmMgKGZpbmRfaW50ZXJlc3RpbmdfdXNlcyk6IExpa2V3aXNlLgoJKGNvbXB1dGVfcGhpX2FyZ19vbl9leGl0KTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWxvb3AtbWFuaXAuYyAoYWRkX2V4aXRfcGhpc19lZGdlKTogTGlrZXdpc2UuCgkoZ2V0X2xvb3BzX2V4aXQpOiBMaWtld2lzZS4KCShzcGxpdF9sb29wX2V4aXRfZWRnZSk6IExpa2V3aXNlLgoJKGlwX25vcm1hbF9wb3MpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtbG9vcC1uaXRlci5jIChzaW1wbGlmeV91c2luZ19pbml0aWFsX2NvbmRpdGlvbnMpOgoJTGlrZXdpc2UuCgkqIHRyZWUtc3NhLXBoaW9wdC5jIChjYW5kaWRhdGVfYmJfZm9yX3BoaV9vcHRpbWl6YXRpb24pOiBMaWtld2lzZS4KCShyZXBsYWNlX3BoaV93aXRoX3N0bXQpOiBMaWtld2lzZS4KCSh2YWx1ZV9yZXBsYWNlbWVudCk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1wcmUuYyAoY29tcHV0ZV9hbnRpY19hdXgpOiBMaWtld2lzZS4KCShpbnNlcnRfYXV4KTogTGlrZXdpc2UuCgkoaW5pdF9wcmUpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtcHJvcGFnYXRlLmMgKHNpbXVsYXRlX3N0bXQpOiBMaWtld2lzZS4KCShzaW11bGF0ZV9ibG9jayk6IExpa2V3aXNlLgoJKHNzYV9wcm9wX2luaXQpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtdGhyZWFkdXBkYXRlLmMgKHRocmVhZF9ibG9jayk6IExpa2V3aXNlLgoJKGNyZWF0ZV9ibG9ja19mb3JfdGhyZWFkaW5nKTogTGlrZXdpc2UuCgkocmVtb3ZlX2xhc3Rfc3RtdF9hbmRfdXNlbGVzc19lZGdlcyk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS5jICh2ZXJpZnlfcGhpX2FyZ3MpOiBMaWtld2lzZS4KCSh2ZXJpZnlfc3NhKTogTGlrZXdpc2UuCgkqIHRyZWVfdGFpbGNhbGwuYyAoaW5kZXBlbmRlbnRfb2Zfc3RtdF9wKTogTGlrZXdpc2UuCgkoZmluZF90YWlsX2NhbGxzKTogTGlrZXdpc2UuCgkoZWxpbWluYXRlX3RhaWxfY2FsbCk6IExpa2V3aXNlLgoJKHRyZWVfb3B0aW1pemVfdGFpbF9jYWxsc18xKTogTGlrZXdpc2UuCgkqIHRyZWUtdmVjdG9yaXplci5jICh2ZWN0X3RyYW5zZm9ybV9sb29wKTogTGlrZXdpc2UuCgkqIHZhci10cmFja2luZy5jIChwcm9sb2d1ZV9zdGFja19hZGp1c3QpOiBMaWtld2lzZS4KCSh2dF9zdGFja19hZGp1c3RtZW50cyk6IExpa2V3aXNlLgoJKHZ0X2ZpbmRfbG9jYXRpb25zKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9mcnYvZnJ2LmMgKGZydl9pZmN2dF9tb2RpZnlfdGVzdHMpOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X3BhZF9yZXR1cm5zKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoaWE2NF9leHBhbmRfcHJvbG9ndWUpOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2VtaXRfcHJvbG9ndWUpOiBMaWtld2lzZS4KCjIwMDQtMDktMjggIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJUFIgdGFyZ2V0LzE2NTMyCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChzdHJ1Y3QgbWFjaGluZV9mdW5jdGlvbik6IE5ldyBmaWVsZAoJJ2xlYWZfZnVuY3Rpb25fcCcgYW5kICdwcm9sb2d1ZV9kYXRhX3ZhbGlkX3AnLgoJKHNwYXJjX2xlYWZfZnVuY3Rpb25fcCwgc3BhcmNfcHJvbG9ndWVfZGF0YV92YWxpZF9wKTogTmV3IG1hY3JvCgl0byBjb252ZW5pZW50bHkgYWNjZXNzIHRoZSBhYm92ZSBmaWVsZHMuCgkoVEFSR0VUX0xBVEVfUlRMX1BST0xPR1VFX0VQSUxPR1VFKTogRGVsZXRlLgoJKGVsaWdpYmxlX2Zvcl9yZXR1cm5fZGVsYXkpOiBVc2UgJ3NwYXJjX2xlYWZfZnVuY3Rpb25fcCcgaW5zdGVhZAoJb2YgdGhlIGdlbmVyaWMgZmxhdm9yICdjdXJyZW50X2Z1bmN0aW9uX3VzZXNfb25seV9sZWFmX3JlZ3MnLgoJKGVsaWdpYmxlX2Zvcl9zaWJjYWxsX2RlbGF5KTogTGlrZXdpc2UuCgkoc3BhcmNfZXhwYW5kX3Byb2xvZ3VlKTogQ29tcHV0ZSAnc3BhcmNfbGVhZl9mdW5jdGlvbl9wJyBhbmQgc2V0Cgknc3BhcmNfcHJvbG9ndWVfZGF0YV92YWxpZF9wJy4gIFVzZSAnc3BhcmNfbGVhZl9mdW5jdGlvbl9wJy4KCShzcGFyY19hc21fZnVuY3Rpb25fcHJvbG9ndWUpOiBBZGQgc2FuaXR5IGNoZWNrIGZvciB0aGUgYXNzdW1wdGlvbgoJbWFkZSBpbiAnc3BhcmNfZXhwYW5kX3Byb2xvZ3VlJy4gIFVzZSAnc3BhcmNfbGVhZl9mdW5jdGlvbl9wJy4KCShzcGFyY19jYW5fdXNlX3JldHVybl9pbnNuX3ApOiBOZXcgZnVuY3Rpb24uCgkoc3BhcmNfZXhwYW5kX2VwaWxvZ3VlKTogVXNlICdzcGFyY19sZWFmX2Z1bmN0aW9uX3AnLgoJKG91dHB1dF9yZXN0b3JlKTogTGlrZXdpc2UuCgkob3V0cHV0X3NpYmNhbGwpOiBMaWtld2lzZS4KCShzcGFyY19vdXRwdXRfbWlfdGh1bmspOiBMaWtld2lzZS4KCSogY29uZmlnL3NwYXJjL3NwYXJjLXByb3Rvcy5oIChzcGFyY19jYW5fdXNlX3JldHVybl9pbnNuX3ApOiBEZWNsYXJlLgoJKiBjb25maWcvc3BhcmMvc3BhcmMubWQgKHJldHVybik6IE5ldyBleHBhbmRlci4KCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5oIChJTklUSUFMX0VMSU1JTkFUSU9OX09GRlNFVCk6IE1pbm9yIHR3ZWFrLgoKMjAwNC0wOS0yNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTc2NDIKCSogc3Rvci1sYXlvdXQuYyAobGF5b3V0X2RlY2wpOiBVc2UgZm9sZF9jb252ZXJ0LCBub3QgY29udmVydC4KCShiaXRfZnJvbV9wb3MpOiBMaWtld2lzZS4KCShieXRlX2Zyb21fcG9zKTogTGlrZXdpc2UuCgkocG9zX2Zyb21fYml0KTogTGlrZXdpc2UuCgkobm9ybWFsaXplX29mZnNldCk6IExpa2V3aXNlLgoJKHBsYWNlX2ZpZWxkKTogTGlrZXdpc2UuCgkoZmluYWxpemVfdHlwZV9zaXplKTogTGlrZXdpc2UuCgkobGF5b3V0X3R5cGUpOiBMaWtld2lzZS4KCSogdHJlZS5jIChidWlsZF9pbmRleF90eXBlKTogTGlrZXdpc2UuCgoyMDA0LTA5LTI3ICBEZXZhbmcgUGF0ZWwgIDxkcGF0ZWxAYXBwbGUuY29tPgoKCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEpOiBIYW5kbGUgVkVDX0NPTkRfRVhQUi4KCSogZ2Vub3Bpbml0LmMgKG9wdGFicyk6IE5ldyBlbnRyeSBmb3IgdmNvbmRfZ2VuX2NvZGUgYW5kCgl2Y29uZHVfZ2VuX2NvZGUuCgkqIG9wdGFicy5jICh2Y29uZF9nZW5fY29kZSwgdmNvbmR1X2dlbl9jb2RlKTogTmV3IG9wdGFicy4KCShnZXRfcnR4X2NvZGUpOiBOZXcgZnVuY3Rpb24uCgkodmVjdG9yX2NvbXBhcmVfcnR4KTogTmV3IGZ1bmN0aW9uLgoJKGluaXRfb3B0YWJzKTogSW5pdGlhbGl6ZSB2Y29uZF9nZW5fY29kZSBhbmQgdmNvbmR1X2dlbl9jb2RlLgoJKGV4cGFuZF92ZWNfY29uZF9leHByX3ApOiBOZXcgZnVuY3Rpb24uCgkoZXhwYW5kX3ZlY19jb25kX2V4cHIpOiBOZXcgZnVuY3Rpb24uCgkoZ2V0X3Zjb25kX2ljb2RlKTogTmV3IGZ1bmN0aW9uLgoJKiBvcHRhYnMuaCAoZXhwYW5kX3ZlY19jb25kX2V4cHIsIGV4cGFuZF92ZWNfY29uZF9leHByX3ApOiBOZXcgZXh0ZXJucy4KCSh2Y29uZF9nZW5fY29kZSwgdmNvbmR1X2dlbl9jb2RlKTogU2FtZS4KCjIwMDQtMDktMjcgIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgoJKiBNYWtlZmlsZS5pbiAoU1RBR0VTVFVGRik6IFNwbGl0IGludG8gLi4uCgkoU1RBR0VDT1BZU1RVRkYsIFNUQUdFTU9WRVNUVUZGKTogLi4uIHRoZXNlLgoJKG1vc3RseWNsZWFuKTogVXBkYXRlLgoJKHN0YWdlMS1zdGFydCwgc3RhZ2UyLXN0YXJ0LCBzdGFnZTMtc3RhcnQsIHN0YWdlNC1zdGFydCwKCXN0YWdlcHJvZmlsZS1zdGFydCwgc3RhZ2VmZWVkYmFjay1zdGFydCk6IENvcHkgdGhlIFNUQUdFQ09QWVNUVUZGLgoJTW92ZSB0aGUgU1RBR0VNT1ZFU1RVRkYuCgoyMDA0LTA5LTI3ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogc3lzdGVtLmggKGdldHBhZ2VzaXplKTogUmV0dXJuICdpbnQnIGluc3RlYWQgb2YgJ2xvbmcnLgoKMjAwNC0wOS0yNyAgTWljaGFlbCBNYXR6IDxtYXR6QHN1c2UuZGU+CgoJUFIgYm9vdHN0cmFwLzE3Njk4CglQUiBib290c3RyYXAvMTc3MDIKCSogYml0bWFwLmggKGJtcF9pdGVyX3NpbmdsZV9pbml0LCBibXBfaXRlcl9hbmRfbm90X2luaXQsCglibXBfaXRlcl9hbmRfaW5pdCk6IFNoaWZ0IGJ5IGJpdF9pbl93b3JkLgoKMjAwNC0wOS0yNyAgS2VsbGV5IENvb2sgIDxrY29va0BnY2MuZ251Lm9yZz4KCgkqIGFjbG9jYWwubTQ6IFF1b3RlIG00X2luY2x1ZGVzLiBJbmNsdWRlIC4uL2NvbmZpZy9nY2MtbGliLXBhdGgubTQuCgkqIGNvbmZpZ3VyZS5hYzogRG9uJ3Qgc2luY2x1ZGUgaXQgaGVyZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNC0wOS0yNyAgRG9yaXQgTmFpc2hsb3MgIDxkb3JpdEBpbC5pYm0uY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2xlZ2l0aW1hdGVfYWRkcmVzcywgcHJpbnRfb3BlcmFuZCk6CglIYW5kbGUgQU5EIHBhdHRlcm4KCjIwMDQtMDktMjcgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCVBSIGMvMTM4MDQKCSogYy10eXBlY2suYyAoYnVpbGRfY29tcG9uZW50X3JlZik6IE5hbWUgdHlwZSBpbnZvbHZlZCBpbgoJZGlhZ25vc3RpYyBmb3Igc3RydWN0dXJlIG9yIHVuaW9uIHdpdGhvdXQgYSBtZW1iZXIgb2YgdGhlIGdpdmVuCgluYW1lLgoKMjAwNC0wOS0yNyAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgoJKiBjb25maWcvc3Rvcm15MTYvc3Rvcm15MTYuYyAoeHN0b3JteTE2X2FzbV9vdXRwdXRfYWxpZ25lZF9jb21tb24pOgoJLmNvbW0gYWxpZ25tZW50IGlzIGJ5dGVzLCBub3QgYml0cy4KCjIwMDQtMDktMjcgIERldmFuZyBQYXRlbCAgPGRwYXRlbEBhcHBsZS5jb20+CgoJKiB0cmVlLXByZXR0eS1wcmludC5jIChkdW1wX2dlbmVyaWNfbm9kZSk6IFByaW50IFZFQ19DT05EX0VYUFIuCgkocHJpbnRfY2FsbF9uYW1lKTogRG8gbm90IHByaW50IFZFQ19DT05EX0VYUFIuCgoyMDA0LTA5LTI3ICBEZXZhbmcgUGF0ZWwgIDxkcGF0ZWxAYXBwbGUuY29tPgoKCSogdHJlZS1wcmV0dHktcHJpbnQuYyAoZHVtcF9nZW5lcmljX25vZGUpOiBQcmludCBWRUNfQ09ORF9FWFBSLgoKMjAwNC0wOS0yNyAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogaTM4Ni5jIChhdGhsb25fY29zdCwgazhfY29zdCk6IFNldCBCUkFOQ0hfQ09TVCB0byA1LgoKMjAwNC0wOS0yNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGJpdG1hcC5oOiBGaXggYSBjb21tZW50IHR5cG8uCgoyMDA0LTA5LTI3ICBBYXJvbiBXLiBMYUZyYW1ib2lzZSA8YWFyb25yYW9sZXRlMzZAYWFyb253bC5jb20+CgoJKiBsaWJnY2MyLmMgKGdldHBhZ2VzaXplKTogQ2hhbmdlIHR5cGUgb2YgcmV0dXJuIHZhbHVlIHRvIGludC4KCjIwMDQtMDktMjYgIE1hdHQgQXVzdGVybiAgPGF1c3Rlcm5AYXBwbGUuY29tPgoKCSogZ2djLXBhZ2UuYyAoR0dDX1FVSVJFX1NJWkUpOiBCdW1wIHVwIGZyb20gMTYgdG8gMjU2IGlmIHdlJ3JlCgl1c2luZyBtbWFwLgoKMjAwNC0wOS0yNiAgWmRlbmVrIER2b3JhayAgPHJha2R2ZXJAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgoKCSogYml0bWFwLmggKEVYRUNVVEVfSUZfU0VUX0lOX0JJVE1BUCwgRVhFQ1VURV9JRl9BTkRfQ09NUExfSU5fQklUTUFQLAoJRVhFQ1VURV9JRl9BTkRfSU5fQklUTUFQKTogQ2hhbmdlZCB0byBpdGVyYXRvciBzdHlsZS4KCShiaXRtYXBfaXRlcmF0b3IpOiBOZXcgdHlwZS4KCShibXBfaXRlcl9jb21tb25fbmV4dF8xLCBibXBfaXRlcl9zaW5nbGVfbmV4dF8xLCBibXBfaXRlcl9zaW5nbGVfaW5pdCwKCWJtcF9pdGVyX2VuZF9wLCBibXBfaXRlcl9zaW5nbGVfbmV4dCwgYm1wX2l0ZXJfYW5kX25vdF9uZXh0XzEsCglibXBfaXRlcl9hbmRfbm90X2luaXQsIGJtcF9pdGVyX2FuZF9ub3RfbmV4dCwgYm1wX2l0ZXJfYW5kX25leHRfMSwKCWJtcF9pdGVyX2FuZF9pbml0LCBibXBfaXRlcl9hbmRfbmV4dCk6IE5ldyBmdW5jdGlvbnMuCgkqIGJhc2ljLWJsb2NrLmggKEVYRUNVVEVfSUZfU0VUX0lOX1JFR19TRVQsCglFWEVDVVRFX0lGX0FORF9DT01QTF9JTl9SRUdfU0VULCBFWEVDVVRFX0lGX0FORF9JTl9SRUdfU0VUKTogQ2hhbmdlZCB0bwoJdXNlIGl0ZXJhdG9yLXN0eWxlIEVYRUNVVEVfSUZfSU5fQklUTUFQIG1hY3Jvcy4KCSogYml0bWFwLmMgKGJpdG1hcF9wcmludCk6IERpdHRvLgoJKiBidC1sb2FkLmMgKGNsZWFyX2J0cl9mcm9tX2xpdmVfcmFuZ2UsIGFkZF9idHJfdG9fbGl2ZV9yYW5nZSwKCWJ0cl9kZWZfbGl2ZV9yYW5nZSk6IERpdHRvLgoJKiBjZmdhbmFsLmMgKGNvbXB1dGVfZG9taW5hbmNlX2Zyb250aWVyc18xKSBEaXR0by4KCSogY2dyYXBodW5pdC5jIChjb252ZXJ0X1VJRHNfaW5fYml0bWFwLCBjZ3JhcGhfY2hhcmFjdGVyaXplX3N0YXRpY3MpOgoJRGl0dG8uCgkqIGRkZy5jIChidWlsZF9pbnRlcl9sb29wX2RlcHMpOiBEaXR0by4KCSogZGYuYyAoRk9SX0VBQ0hfQkJfSU5fQklUTUFQLCBkZl9iYl9yZWdfaW5mb19jb21wdXRlLCBkZl9yZWZzX3VwZGF0ZSk6CglEaXR0by4KCSogZXhjZXB0LmMgKHJlbW92ZV9laF9oYW5kbGVyKTogRGl0dG8uCgkqIGZsb3cuYyAocmVnX3NldF90b19oYXJkX3JlZ19zZXQpOiBEaXR0by4KCSogZ2NzZS5jIChjbGVhcl9tb2RpZnlfbWVtX3RhYmxlcyk6IERpdHRvLgoJKiBnbG9iYWwuYyAoYnVpbGRfaW5zbl9jaGFpbik6IERpdHRvLgoJKiBpZmN2dC5jIChkZWFkX29yX3ByZWRpY2FibGUpOiBEaXR0by4KCSogbG9vcC1pbnZhcmlhbnQuYyAoZ2V0X2ludl9jb3N0LCBzZXRfbW92ZV9tYXJrLCBtb3ZlX2ludmFyaWFudF9yZWcpOgoJRGl0dG8uCgkqIHJhLWJ1aWxkLmMgKGxpdmV0aHJvdWdoX2NvbmZsaWN0c19iYiwgY29uZmxpY3RzX2JldHdlZW5fd2Vicyk6IERpdHRvLgoJKiByYS1yZXdyaXRlLmMgKHJlbG9hZHNfdG9fbG9hZHMsIHJld3JpdGVfcHJvZ3JhbTIsCglkZXRlY3Rfd2ViX3BhcnRzX3RvX3JlYnVpbGQsIGRlbGV0ZV91c2VsZXNzX2RlZnMsIGFjdHVhbF9zcGlsbCk6IERpdHRvLgoJKiB0cmVlLWNmZy5jIChhbGxvY2F0ZV9zc2FfbmFtZXMsIHRyZWVfZHVwbGljYXRlX3Nlc2VfcmVnaW9uLAoJdHJlZV9wdXJnZV9hbGxfZGVhZF9laF9lZGdlcyk6IERpdHRvLgoJKiB0cmVlLWludG8tc3NhLmMgKGNvbXB1dGVfZ2xvYmFsX2xpdmVpbiwgaW5zZXJ0X3BoaV9ub2RlcywKCWluc2VydF9waGlfbm9kZXNfZm9yLCBkZWJ1Z19kZWZfYmxvY2tzX3IsIGludmFsaWRhdGVfbmFtZV90YWdzLAoJcmV3cml0ZV9zc2FfaW50b19zc2EpOiBEaXR0by4KCSogdHJlZS1vdXRvZi1zc2EuYyAoZmluZF9yZXBsYWNlYWJsZV9leHBycyk6IERpdHRvLgoJKiB0cmVlLXNyYS5jIChzY2FuX2Z1bmN0aW9uLCBkZWNpZGVfaW5zdGFudGlhdGlvbnMsIHNjYWxhcml6ZV9wYXJtcyk6CglEaXR0by4KCSogdHJlZS1zc2EtYWxpYXMuYyAoaW5pdF9hbGlhc19pbmZvLCBjb21wdXRlX3BvaW50c190b19hbmRfYWRkcl9lc2NhcGUsCgljb21wdXRlX2Zsb3dfc2Vuc2l0aXZlX2FsaWFzaW5nLCBtYXliZV9jcmVhdGVfZ2xvYmFsX3ZhciwKCWR1bXBfcG9pbnRzX3RvX2luZm9fZm9yKTogRGl0dG8uCgkqIHRyZWUtc3NhLWRjZS5jIChFWEVDVVRFX0lGX0NPTlRST0xfREVQRU5ERU5UKTogRGl0dG8uCgkqIHRyZWUtc3NhLWRzZS5jIChkc2VfZmluYWxpemVfYmxvY2spOiBEaXR0by4KCSogdHJlZS1zc2EtbGl2ZS5jIChsaXZlX3dvcmtsaXN0LCBjYWxjdWxhdGVfbGl2ZV9vbl9lbnRyeSwKCWNhbGN1bGF0ZV9saXZlX29uX2V4aXQsIGJ1aWxkX3RyZWVfY29uZmxpY3RfZ3JhcGgsIGR1bXBfbGl2ZV9pbmZvKToKCURpdHRvLgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChmaW5kX2luZHVjdGlvbl92YXJpYWJsZXMsCglmaW5kX2ludGVyZXN0aW5nX3VzZXMsIGFkZF9vbGRfaXZzX2NhbmRpZGF0ZXMsIGFsbG9jX3VzZV9jb3N0X21hcCwKCWRldGVybWluZV91c2VfaXZfY29zdHMsIGRldGVybWluZV9zZXRfY29zdHMsIGZpbmRfYmVzdF9jYW5kaWRhdGUsCglzZXRfY29zdF91cF90bywgY3JlYXRlX25ld19pdnMsIHJlbW92ZV91bnVzZWRfaXZzLCBmcmVlX2xvb3BfZGF0YSk6CglEaXR0by4KCSogdHJlZS1zc2EtbG9vcC1tYW5pcC5jIChhZGRfZXhpdF9waGlzX3ZhciwgYWRkX2V4aXRfcGhpcyk6IERpdHRvLgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChnZXRfYXNtX2V4cHJfb3BlcmFuZHMsIGFkZF9jYWxsX2Nsb2JiZXJfb3BzLAoJYWRkX2NhbGxfcmVhZF9vcHMpOiBEaXR0by4KCSogdHJlZS1zc2EtcHJlLmMgKGJpdG1hcF9wcmludF92YWx1ZV9zZXQsIGluc2VydF9hdXgpOiBEaXR0by4KCjIwMDQtMDktMjYgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBwYS5jIChwcmludF9vcGVyYW5kKTogVXNlIG5vbi10cmFwcGluZyBjb21wbGV0ZXJzIGZvciBVTkxFLCBVTkxULAoJVU5HRSwgVU5HVCwgVU5FUSwgVU5PUkRFUkVEIGFuZCBPUkRFUkVEIGNvbXBhcmlzb25zLgoKMjAwNC0wOS0yNiAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fbWVtY21wKTogQWRqdXN0IE1FTV9TSVpFIHRvCglyZWZsZWN0IHNpemUgb2YgbWVtb3J5IHJlZ2lvbnMgYmVpbmcgY29tcGFyZWQuCgoyMDA0LTA5LTI2ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBidWlsdGlucy5jIChnZXRfbWVtb3J5X3J0eCk6IFNldCBtZW0gYXR0cmlidXRlcyBmb3Igbm9uLUFERFJfRVhQUgoJZXhwcmVzc2lvbnMuICBBbHdheXMgY2xlYXIgTUVNX1NJWkUgYW5kIGFsaWFzIHNldC4KCjIwMDQtMDktMjYgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoJICAgIEdpb3Zhbm5pIEJham8gIDxnaW92YW5uaWJham9AZ2NjLmdudS5vcmc+CgoJUFIgbWlkZGxlLWVuZC8xNzExMgoJKiBzdG9yLWxheW91dC5jIChjb21wdXRlX3JlY29yZF9tb2RlKTogRm9yIHJlY29yZHMgd2l0aCBhIHNpbmdsZQoJZmllbGQsIG9ubHkgdXNlIHRoZSBmaWVsZCdzIG1vZGUgaWYgaXRzIHNpemUgbWF0Y2hlcyB3aGF0IHdlJ2QKCWhhdmUgY2hvb3NlbiBmb3IgdGhlIHJlY29yZCBvdXJzZWx2ZXMuICBUaGlzIGZvcmNlcyB0aGUgdXNlIG9mCglCTEttb2RlIGZvciBwYWNrZWQgcmVjb3JkcyB0aGF0IGRvbid0IGNvbXBsZXRlbHkgZmlsbCBhIG1vZGUuCgoyMDA0LTA5LTI2ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBtaWRkbGUtZW5kLzE3MTUxCgkqIGNvbWJpbmUuYyAoZm9yY2VfdG9fbW9kZSk6IFJlbW92ZSBkdWJpb3VzIGVhcmx5IHJldHVybiB0ZXN0IHRoYXQKCWluaGliaXRzIGZ1cnRoZXIgb3B0aW1pemF0aW9uLgoKMjAwNC0wOS0yNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIHByb2ZpbGUuYzogRml4IGEgY29tbWVudCB0eXBvLgoKMjAwNC0wOS0yNiAgWmRlbmVrIER2b3JhayAgPHJha2R2ZXJAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgoKCVBSIGJvb3RzdHJhcC8xNzU5MQoJKiB0cmVlLXNzYS1sb29wLWltLmMgKGZvcl9lYWNoX2luZGV4KTogQ2FsbCBjYWxsYmFjayBmb3IgY29tcG9uZW50X3JlZnMKCXdpdGggdmFyeWluZyBvZmZzZXQuCgkqIHRyZWUtc3NhLWxvb3AtaXZvcHRzLmMgKGFibm9ybWFsX3NzYV9uYW1lX3ApOiBOZXcgZnVuY3Rpb24uCgkoaWR4X2NvbnRhaW5zX2Fibm9ybWFsX3NzYV9uYW1lX3ApOiBTY2FuIHN0ZXAgYW5kIGxvd2VyIGJvdW5kIGZvcgoJQVJSQVlfUkVGUy4KCShleHByX2ludmFyaWFudF9pbl9sb29wX3ApOiBOZXcgZnVuY3Rpb24uCgkoaWR4X2ZpbmRfc3RlcCk6IEhhbmRsZSBzdGVwIGFuZCBsb3dlciBib3VuZCBmb3IgQVJSQVlfUkVGcy4gIEhhbmRsZQoJY29tcG9uZW50X3JlZl9maWVsZF9vZmZzZXQgZm9yIENPTVBPTkVOVF9SRUZzLiAgRG8gbm90IGFsbG93CglBTElHTl9JTkRJUkVDVF9SRUZzIGFuZCBNSVNBTElHTkVEX0lORElSRUNUX1JFRnMuCgkoYWRkX2FkZHJlc3NfY2FuZGlkYXRlcyk6IERvIG5vdCBoYW5kbGUgQUxJR05fSU5ESVJFQ1RfUkVGcyBhbmQKCU1JU0FMSUdORURfSU5ESVJFQ1RfUkVGcy4KCShpZHhfcmVtb3ZlX3NzYV9uYW1lcyk6IEhhbmRsZSBzdGVwIGFuZCBsb3dlciBib3VuZCBmb3IgQVJSQVlfUkVGcy4KCShyZXdyaXRlX2FkZHJlc3NfYmFzZSk6IERvIG5vdCBoYW5kbGUgQUxJR05fSU5ESVJFQ1RfUkVGcyBhbmQKCU1JU0FMSUdORURfSU5ESVJFQ1RfUkVGcy4KCjIwMDQtMDktMjYgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCVBSIGMvMTE0NTkKCSogZ2NjLmMgKGNwcF9vcHRpb25zLCBjYzFfb3B0aW9ucyk6IFByZXNlcnZlIHJlbGF0aXZlIG9yZGVyIG9mCgktc3RkIGFuZCAtYW5zaSBvcHRpb25zLgoKMjAwNC0wOS0yNiAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogZHdhcmYyb3V0LmMgKGR3YXJmMm91dF9maW5pc2gpOiBTZXQgcGFyZW50IHRvIGNvbXBfdW5pdF9kaWUKCWZvciBuZXN0ZWQgZnVuY3Rpb25zIHdob3NlIHByb3BlciBwYXJlbnQgaGFzIG5vdCBiZWVuIG91dHB1dC4KCgkqIHByb2ZpbGUuYyAoY29tcHV0ZV9icmFuY2hfcHJvYmFiaWxpdGllcyk6IFVzZSBSRUdfQlJfUFJPQiBub3RlcwoJd2hlbiByZS1jb25zdHJ1Y3RpbmcgcHJvZmlsZSBwcmV2aW91c2x5IGludmFsaWRhdGVkIGJ5IGxvb3AuCgoyMDA0LTA5LTI1ICBEYWxlIEpvaGFubmVzZW4gIDxkYWxlakBhcHBsZS5jb20+CgoJKiB0cmVlLWdpbXBsZS5jOiAgTW92ZSBHSU1QTEUgZGVmaW5pdGlvbi4uLgoJKiBkb2MvdHJlZS1zc2EudGV4aTogIGhlcmUuCgoyMDA0LTA5LTI1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS12ZWN0b3JpemVyLmM6IEZpeCBhIGNvbW1lbnQgdHlwby4KCjIwMDQtMDktMjUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjLXR5cGVjay5jLCBkZWZhdWx0cy5oLCBkd2FyZi5oLCBkd2FyZjJvdXQuYywgZm9sZC1jb25zdC5jLAoJZ3Roci1kY2UuaCwgZ3Roci1wb3NpeC5oLCBndGhyLXNvbGFyaXMuaCwgZ3Roci13aW4zMi5oLAoJbGFtYmRhLWNvZGUuYywgbGFtYmRhLW1hdC5jLCBsaWJnY2MyLmMsIHN0bXQuYywKCXRyZWUtc3NhLXByZS5jLCB0cmVlLXZuLmMsIHRyZWUuaDogRml4IGNvbW1lbnQgZm9ybWF0dGluZy4KCjIwMDQtMDktMjUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiB0cmVlLXNzYS1sb29wLXVuc3dpdGNoLmM6IEZpeCBhIGNvbW1lbnQgdHlwby4KCjIwMDQtMDktMjUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBkb2MvcGFzc2VzLnRleGk6IEZpeCBhIHR5cG8uCgoyMDA0LTA5LTI1ICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJKiB0cmVlLW9wdGltaXplLmMgKGluaXRfdHJlZV9vcHRpbWl6YXRpb25fcGFzc2VzKTogQWRkCglwYXNzX3JlY29yZF9ib3VuZHMuCgkqIHRyZWUtcGFzcy5oIChwYXNzX3JlY29yZF9ib3VuZHMpOiBEZWNsYXJlLgoJKiB0cmVlLXNzYS1sb29wLmMgKHRyZWVfc3NhX2xvb3BfYm91bmRzLCBwYXNzX3JlY29yZF9ib3VuZHMpOgoJTmV3IHBhc3MuCgoyMDA0LTA5LTI1ICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTc0NzQKCSogdHJlZS1zc2EtY2NwLmMgKG1heWJlX2ZvbGRfb2Zmc2V0X3RvX2NvbXBvbmVudF9yZWYpOiBEZXRlcm1pbmUKCW9mZnNldCBvZiB0aGUgZmllbGQgY29ycmVjdGx5IHdoZW4gREVDTF9GSUVMRF9CSVRfT0ZGU0VUICE9IDAuCgoyMDA0LTA5LTI1ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBwcmVkaWN0LmMgKGNvdW50c190b19mcmVxcyk6IE1ha2UgZ2xvYmFsLgoJKiBwcmVkaWN0LmggKGNvdW50c190b19mcmVxYSk6IERlY2xhcmUuCgkqIHByb2ZpbGUuYyAoY29tcHV0ZV9icmFuY2hfcHJvYmFiaWxpdGllcyk6IENvbXB1dGUgZnJlcXVlbmNpZXMKCSogdHJlZS1wcm9maWxlLmMgKGRvX3RyZWVfcHJvZmlsaW5nKTogUmVmaW5lIGNvbmRpdGlvbmFsIG9uIHdoZW4KCXRyZWUgcHJvZmlsaW5nIHBhc3MgaXMgbmVlZGVkLgoKCSogcGFzc2VzLmMgKHJlc3Rfb2ZfaGFuZGxlX2NmZyk6IERpc2FibGUgY29uc3QvcHVyZSBmdW5jdGlvbgoJZGV0ZWN0aW9uIHdoZW4gZG9pbmcgdHJlZSBiYXNlZCBwcm9maWxpbmcuCgoJKiB0cmVlLWlubGluZS5jIChleHBhbmRfY2FsbF9pbmxpbmUpOiBGaXggaW5jb3JyZWN0bHkgcmV2ZXJzZWQKCWNvbmRpdGlvbmFsLgoKMjAwNC0wOS0yNSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5oIChzdHJ1Y3QgbWlwc19hcmdzKTogQ2xhcmlmeSBjb21tZW50cy4KCSogY29uZmlnL21pcHMvbWlwcy5jIChzdHJ1Y3QgbWlwc19hcmdfaW5mbyk6IExpa2V3aXNlLgoJKG1pcHNfYXJnX2luZm8pOiBEb24ndCBhbGxvdyBmcHJfcCB0byBhZmZlY3QgdGhlIHJlZ2lzdGVyIG9yCglzdGFjayBhbGlnbm1lbnQuICBSZW1vdmUgbzY0IHNpbGxpbmVzcy4KCShmdW5jdGlvbl9hcmcpOiBEZWFsIHdpdGggdGhlIG8zMiBmbG9hdCxmbG9hdCBjYXNlIHNwZWNpYWxseS4KCjIwMDQtMDktMjUgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKGxvYWR4LCBzdG9yZXgpOiBEZWZpbmUgZm9yIFYyU0YuCgoyMDA0LTA5LTI1ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLXByb3Rvcy5oIChzMzkwX2JhY2tfY2hhaW5fcnR4KTogQWRkIHByb3RvdHlwZS4KCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX2JhY2tfY2hhaW5fcnR4KTogTmV3IGZ1bmN0aW9uLgoJKiBjb25maWcvczM5MC9zMzkwLm1kICgiYWxsb2NhdGVfc3RhY2siKTogVXNlIHMzOTBfYmFja19jaGFpbl9ydHguCglDYWxsIGFudGlfYWRqdXN0X3N0YWNrLgoJKCJyZXN0b3JlX3N0YWNrX2Jsb2NrIik6IFVzZSBzMzkwX2JhY2tfY2hhaW5fcnR4LiAgRW5hYmxlIHBhdHRlcm4KCW9ubHkgaWYgY29tcGlsaW5nIHdpdGggYmFjayBjaGFpbi4KCSgic2F2ZV9zdGFja19ub25sb2NhbCIsICJyZXN0b3JlX3N0YWNrX25vbmxvY2FsIik6IFNhdmUvcmVzdG9yZQoJYmFjayBjaGFpbiBvbmx5IGlmIGJhY2sgY2hhaW4gZW5hYmxlZC4gIFVzZSBzMzkwX2JhY2tfY2hhaW5fcnR4LgoKMjAwNC0wOS0yNSAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBkb2MvdHJvdWJsZS50ZXhpOiBSZW1vdmUgb2Jzb2xldGUgaW5mb3JtYXRpb24uICBVcGRhdGUKCWluZm9ybWF0aW9uIG9uIGhvdyB0byByZWdlbmVyYXRlIGZpeGluY2x1ZGVkIGhlYWRlcnMuCgoyMDA0LTA5LTI1ICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCglQUiBjLzEyOTUxCgkqIGRvYy9pbnZva2UudGV4aTogRG9jdW1lbnQgdGhhdAoJLVduby1lcnJvci1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiBpcyBub3QgYWNjZXB0ZWQuCgoyMDA0LTA5LTI0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2FscGhhL2FscGhhLmggKFVOSVRTX1BFUl9TSU1EX1dPUkQpOiBOZXcuCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5jIChhbHBoYV92ZWN0b3JfbW9kZV9zdXBwb3J0ZWRfcCk6IERvbid0IGRlcGVuZAoJb24gVEFSR0VUX01BWC4KCShhbHBoYV9leHBhbmRfbW92KTogQWxsb3cgdW5hbGlnbmVkIHZlY3RvcnMuCgkoYWxwaGFfZXhwYW5kX3VuYWxpZ25lZF9zdG9yZSk6IFVzZSBDT05TVDBfUlRYLgoJKFRBUkdFVF9WRUNUT1JJWkVfTUlTQUxJR05FRF9NRU1fT0spOiBOZXcuCgoyMDA0LTA5LTI0IEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1kb20uYyAoZG9tX29wdF9maW5hbGl6ZV9ibG9jayk6IEZpeCB2aW9sYXRpb24gb2Ygc3RyaWN0CglhbGlhc2luZyBydWxlcy4KCShzaW1wbGlmeV9jb25kX2FuZF9sb29rdXBfYXZhaWxfZXhwcik6IExpa2V3aXNlLgoKMjAwNC0wOS0yNCAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJUFIgYy8xMjgwMgoJKiBkb2MvZXh0ZW5kLnRleGkgKFVubmFtZWQgRmllbGRzKTogUmVtb3ZlICIuIiBmcm9tIGVuZCBvZiBsb25nCgl0aXRsZS4gIERvY3VtZW50IGludGVyYWN0aW9uIHdpdGggLWZtcy1leHRlbnNpb25zLgoJKiBkb2MvaW52b2tlLnRleGkgKC1mbXMtZXh0ZW5zaW9ucyk6IFJlZmVyIHRvIFVubmFtZWQgRmllbGRzCglzZWN0aW9uLgoKMjAwNC0wOS0yNCAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJUFIgYy8xMjcxMwoJKiBkb2MvZXh0ZW5kLnRleGk6IERvY3VtZW50IGludGVyYWN0aW9uIG9mIGF0dHJpYnV0ZSBub3JldHVybiBhbmQKCWxvbmdqbXAuCgoyMDA0LTA5LTI0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHJ0bC1vcHQvMTc1MDMKCSogcmVnY2xhc3MuYyAoc3VicmVnc19vZl9tb2RlKTogVHVybiBpbnRvIGFuIGh0YWIuICBNYWtlIHN0YXRpYy4KCShzb21faGFzaCwgc29tX2VxKTogTmV3LgoJKGluaXRfc3VicmVnc19vZl9tb2RlLCByZWNvcmRfc3VicmVnc19vZl9tb2RlKTogTmV3LgoJKGNhbm5vdF9jaGFuZ2VfbW9kZV9zZXRfcmVncyk6IFJld3JpdGUgZm9yIGh0YWIgaW1wbGVtZW50YXRpb24uCgkoaW52YWxpZF9tb2RlX2NoYW5nZV9wKTogTGlrZXdpc2UuCgkqIGNvbWJpbmUuYyAoZ2VuX2xvd3BhcnRfZm9yX2NvbWJpbmUpOiBVc2UgcmVjb3JkX3N1YnJlZ3Nfb2ZfbW9kZS4KCSogZmxvdy5jIChtYXJrX3VzZWRfcmVncyk6IExpa2V3aXNlLgoJKGxpZmVfYW5hbHlzaXMpOiBVc2UgaW5pdF9zdWJyZWdzX29mX21vZGUuCgkqIHJlZ3MuaCAoc3VicmVnc19vZl9tb2RlKTogUmVtb3ZlLgoJKiBydGwuaCAoaW5pdF9zdWJyZWdzX29mX21vZGUsIHJlY29yZF9zdWJyZWdzX29mX21vZGUpOiBEZWNsYXJlLgoKMjAwNC0wOS0yNCAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiB0cmVlLXNzYS1waGlvcHQuYyAoY29uZGl0aW9uYWxfcmVwbGFjZW1lbnQpOiBVc2UgdGhlIGNvcnJlY3QKCXR5cGUgd2l0aCB0aGUgY29weSBvZiB0aGUgY29uZGl0aW9uYWwuCgoyMDA0LTA5LTI0ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiB0cmVlLW9wdC8xNjk1NAoJKiB0cmVlLXNzYS1jb3B5cmVuYW1lLmMgKGNvcHlfcmVuYW1lX3BhcnRpdGlvbl9jb2FsZXNjZSk6CglQcmV2ZW50IHJlbmFtaW5nIGlmIHRoZSBhbGlhc2luZyBzZXRzIG9mIHRoZSB0eXBlIHdoaWNoIHRoZQoJcG9pbnRlciBwb2ludHMgdG8gYXJlIGRpZmZlcmVudC4KCjIwMDQtMDktMjQgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCVBSIGMvMTcxODgKCSogYy1kZWNsLmMgKGRpYWdub3NlX21pc21hdGNoZWRfZGVjbHMpOiBDaGVjayBmb3IgZHVwbGljYXRlCglkZWNsYXJhdGlvbnMgb2YgZW51bWVyYXRvcnMuCgkoc3RhcnRfc3RydWN0KTogQ2hlY2sgVFlQRV9TSVpFIHJhdGhlciB0aGFuIFRZUEVfRklFTERTIHRvIGNoZWNrCglmb3IgcmVkZWZpbml0aW9uLiAgQ2hlY2sgZm9yIG5lc3RlZCByZWRlZmluaXRpb24uCgkoZmluaXNoX3N0cnVjdCk6IERvbid0IGNoZWNrIGZvciBuZXN0ZWQgcmVkZWZpbml0aW9uLgoJKHN0YXJ0X2VudW0pOiBDaGVjayBmb3IgbmVzdGVkIHJlZGVmaW5pdGlvbi4KCjIwMDQtMDktMjQgIERldmFuZyBQYXRlbCAgPGRwYXRlbEBhcHBsZS5jb20+CgoJKiB0cmVlLWlmLWNvbnYuYyAodHJlZV9pZl9jb252ZXJ0X2NvbmRfZXhwcjA6IENyZWF0ZSB0ZW1wLiB2YXJpYWJsZQoJb25seSB3aGVuIG5lY2Vzc3NhcnkuCgkoY29tYmluZV9ibG9ja3MpOiBDb21iaW5lIGxvb3AgaGVhZGVyIGFuZCBleGl0IGJsb2NrLgoKMjAwNC0wOS0yNCAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGhvb2tzLmMgKGhvb2tfdHJlZV90cmVlX2Jvb2xfbnVsbCk6IE5ldy4KCSogaG9va3MuaCAoaG9va190cmVlX3RyZWVfYm9vbF9udWxsKTogRGVjbGFyZSBpdC4KCSogdGFyZ2V0LWRlZi5jIChUQVJHRVRfRk9MRF9CVUlMVElOKTogUG9pbnQgdG8gaXQuCgkqIHRhcmdob29rcy5jIChkZWZhdWx0X2ZvbGRfYnVpbHRpbik6IFJlbW92ZS4KCSogdGFyZ2hvb2tzLmggKGRlZmF1bHRfZm9sZF9idWlsdGluKTogUmVtb3ZlLgoKMjAwNC0wOS0yNCAgWmRlbmVrIER2b3JhayAgPHJha2R2ZXJAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMTc2MjUKCSogbG9vcC1kb2xvb3AuYyAoZG9sb29wX21vZGlmeSk6IFVuc2hhcmUgcnRsIGJlZm9yZSBlbWl0dGluZyBpdC4KCjIwMDQtMDktMjQgIEFuZHJldyBQaW5za2kgIDxwaW5za2lhQHBoeXNpY3MudWMuZWR1PgoKCVBSIHRyZWUtb3B0LzE3NjI0CgkqIHRyZWUtc3NhLWZvcndwcm9wLmMgKHJlY29yZF9zaW5nbGVfYXJndW1lbnRfY29uZF9leHBycyk6CglSZWplY3QgaWYgYW55IG9mIHRoZSBvcGVyYW5kcyBvY2N1ciBpbiBhbiBhYm5vcm1hbCBQSEkuCgoyMDA0LTA5LTI0ICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogdHJlZS1zc2EtZG9tLmMgKHJlY29yZF9yYW5nZSk6IEZpeCB2aW9sYXRpb24gb2Ygc3RyaWN0IGFsaWFzaW5nCglydWxlcy4KCjIwMDQtMDktMjQgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBjb25maWcuZ2NjIChzcGFyYzY0LSotc29sYXJpczIqKTogSW5jbHVkZSBzcGFyYy9zb2wyLWdhcy5oCglpZiB0aGUgR05VIGFzc2VtYmxlciBpcyB1c2VkLgoJKHNwYXJjLSotc29sYXJpczIqKTogTGlrZXdpc2UuCgkqIGRieG91dC5jIChOT19EQlhfQk5TWU1fRU5TWU0pOiBEZWZhdWx0IHRvIHplcm8uCgkoZGJ4b3V0X2Z1bmN0aW9uX2VuZCk6IFByb3RlY3QgTl9FTlNZTSB3aXRoIGl0LgoJKGRieG91dF9iZWdpbl9wcm9sb2d1ZSk6IFByb3RlY3QgTl9CTlNZTSB3aXRoIGl0LgoJKiBkb2MvdG0udGV4aSAoTk9fREJYX0JOU1lNX0VOU1lNKTogRG9jdW1lbnQgaXQuCgkqIGNvbmZpZy9zcGFyYy9zb2wyLmggKE5PX0RCWF9CTlNZTV9FTlNZTSk6IERlZmluZSB0byAxLgoJKiBjb25maWcvc3BhcmMvc29sMi1nYXMuaDogTmV3IGZpbGUuCgoyMDA0LTA5LTIzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgYm9vdHN0cmFwLzE3MzY5CgkqIE1ha2VmaWxlLmluIChAc2V0X2djY19saWJfcGF0aEApOiBBZGRlZC4KCgkqIGNvbmZpZ3VyZS5hYzogSW5jbHVkZSAuLi9jb25maWcvZ2NjLWxpYi1wYXRoLm00LiBVc2UKCVRMX0FDX0dOVV9NQUtFX0dDQ19MSUJfUEFUSC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDQtMDktMjQgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCVBSIGMvNjk4MAoJKiBjLXR5cGVjay5jIChidWlsZF9jX2Nhc3QpOiBJbXByb3ZlIHdvcmRpbmcgb2YKCS1XYmFkLWZ1bmN0aW9uLWNhc3QgZGlhZ25vc3RpYy4KCjIwMDQtMDktMjMgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCVBSIHRhcmdldC8xNzYyNgoJKiBjb25maWcvY3Jpcy9jcmlzLm1kIChtb3ZlcnNpZGUsIG1vdmVtc2lkZSk6IFJlbmFtZSB2YXJpYWJsZQoJInJlZyIgdG8gIm90aGVyb3AiLiAgVG8gZ2VuZXJhdGUgY2Fub25pY2FsIFJUWCwgY2hlY2sgdGhhdCBvdGhlcm9wCglpc24ndCBjb25zdGFudCBpbnN0ZWFkIG9mIGNoZWNraW5nIHRoYXQgb3BlcmFuZCAxIGlzIGEgcmVnaXN0ZXIuCgoyMDA0LTA5LTIzICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLXByb3BhZ2F0ZS5jIChzZXRfcmhzKTogRmFpbCBpZiBFWFBSIGlzIENPTVBPVU5EX0VYUFIuCgoyMDA0LTA5LTIzICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCSAgICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHRyZWUtZmxvdy5oIChmaW5kX25ld19yZWZlcmVuY2VkX3ZhcnMpOiBBZGQgcHJvdG90eXBlLgoJKiB0cmVlLXNyYS5jIChmaW5kX25ld19yZWZlcmVuY2VkX3ZhcnNfMSwgZmluZF9uZXdfcmVmZXJlbmNlZF92YXJzKToKCU1vdmUgdG8uLi4KCSogdHJlZS1kZmEuYyAoZmluZF9uZXdfcmVmZXJlbmNlZF92YXJzXzEsIGZpbmRfbmV3X3JlZmVyZW5jZWRfdmFycyk6CgkuLi4gaGVyZS4KCShtYXJrX25ld192YXJzX3RvX3JlbmFtZSk6IFdhbGsgdGhyb3VnaCBhbGwgb3BlcmFuZHMuCgkqIHRyZWUtc3NhLWNjcC5jIChjb252ZXJ0X3RvX2dpbXBsZV9idWlsdGluKTogTmV3IGZ1bmN0aW9uLgoJKGV4ZWN1dGVfZm9sZF9hbGxfYnVpbHRpbnMpOiBVc2UgaXQuCgkocGFzc19mb2xkX2J1aWx0aW5zKTogQWRkIFRPRE9fcmVuYW1lX3ZhcnMgdG8gdG9kb19mbGFnc19maW5pc2guCgoyMDA0LTA5LTIzICBQLkouIERhcmN5ICA8ZGFyY3lwakB1cy5pYm0uY29tPgoKCSogZ3Roci10cGYuaDogTmV3IGZpbGUuCgkqIGNvbmZpZy5nY2MgKHMzOTB4LWlibS10cGYqKTogQWRkIHRocmVhZF9maWxlPSd0cGYnLgoJKiBndGhyLmg6IFVzZSBndGhyLXRwZi5oIG9uIFRQRiBPUy4KCjIwMDQtMDktMjMgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWNjcC5jIChnZXRfZGVmYXVsdF92YWx1ZSk6IFVzZSBTU0FfTkFNRV9WQUxVRSByYXRoZXIKCXRoYW4gU1NBX05BTUVfRVFVSVYgYW5kIFNFVF9TU0FfTkFNRV9FUVVJVi4KCShzdWJzdGl0dXRlX2FuZF9mb2xkKTogIExpa2V3aXNlLgoJKiB0cmVlLXNzYS1kb20uYyAodHJlZV9zc2FfZG9taW5hdG9yX29wdGltaXplKTogUmVtb3ZlIGV2ZXJ5dGhpbmcKCWV4Y2VwdCBpbnZhcmlhbnRzIGZyb20gU1NBX05BTUVfVkFMVUUuCgkodGhyZWFkX2Fjcm9zc19lZGdlKTogVXNlIFNTQV9OQU1FX1ZBTFVFIHJhdGhlciB0aGFuIFNTQV9OQU1FX0VRVUlWCglhbmQgU0VUX1NTQV9OQU1FX0VRVUlWLgoJKHJlc3RvcmVfdmFyc190b19vcmlnaW5hbF92YWx1ZSwgcmVjb3JkX2NvbnN0X29yX2NvcHkpOiBMaWtld2lzZS4KCShyZWNvcmRfZXF1aXZhbGVuY2VzX2Zyb21fcGhpcywgcmVjb3JkX2NvbnN0X29yX2NvcHlfMSk6IExpa2V3aXNlLgoJKHJlY29yZF9lcXVhbGl0eSwgY3Byb3BfaW50b19zdWNjZXNzb3JfcGhpcyk6IExpa2V3aXNlLgoJKHJlY29yZF9lcXVpdmFsZW5jZXNfZnJvbV9zdG10LCBjcHJvcF9vcGVyYW5kKTogTGlrZXdpc2UuCgkobG9va3VwX2F2YWlsX2V4cHIpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtcHJlLmMgKGZpbmlfcHJlKTogUmVtb3ZlIGV2ZXJ5dGhpbmcgZXhjZXB0IGludmFyaWFudHMKCWZyb20gU1NBX05BTUVfVkFMVUUuCgkqIHRyZWUuaCAoU1NBX05BTUVfRVFVSVYsIFNFVF9TU0FfTkFNRV9FUVVJVik6IEtpbGwuCgkoc3RydWN0IHRyZWVfc3NhX25hbWUpOiAgS2lsbCBFUVVJViBmaWVsZC4gIFJlbW92ZSBHR0Mgc2tpcAoJYW5ub3RhdGlvbiBmcm9tIHRoZSBWQUxVRV9IQU5ETEUgZmllbGQuCgoyMDA0LTA5LTIxIEZhcmlib3J6IEphaGFuaWFuIDxmamFoYW5pYW5AYXBwbGUuY29tPgoKCVBSIGMrKy8xMzk4OQoJUFIgYysrLzk4NDQKCSogdHJlZS5jIChyZWNvbnN0cnVjdF9jb21wbGV4X3R5cGUpOiBSZW1vdmUgZXh0cmEgInRoaXMiLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfaGFuZGxlX2FsdGl2ZWNfYXR0cmlidXRlKToKCUFkZCBWNFNGbW9kZSB0byBjYXNlIHN0YXRlbWVudC4KCjIwMDQtMDktMjMgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCVBSIGMvMTY4MzMKCSogZG9jL2V4dGVuZC50ZXhpLCBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IGludGVyYWN0aW9uIG9mCgktZm5vLWJ1aWx0aW4gd2l0aCBmb3JtYXQgY2hlY2tzLiAgTm90ZSB0aGF0IGJ1aWx0LWluIGZ1bmN0aW9ucwoJaGF2ZSBlZmZlY3RzIGJleW9uZCBnZW5lcmF0aW5nIGNvZGUgdGhhdCBhdm9pZHMgY2FsbHMgdG8gdGhvc2UKCWZ1bmN0aW9ucy4KCjIwMDQtMDktMjMgIEZyYW5rIENoLiBFaWdsZXIgPGZjaGVAcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNzUzMwoJKiBkb21pbmFuY2UuYyAodmVyaWZ5X2RvbWluYXRvcnMpOiBUb2xlcmF0ZSBldmVuIG1vcmUgaW5jb3JyZWN0Cglkb21pbmFuY2UgZGF0YSBkdXJpbmcgZXJyb3IgbWVzc2FnZSBwcmludGluZy4KCSogdHJlZS1tdWRmbGFwLmMgKG1mX2J1aWxkX2NoZWNrX3N0YXRlbWVudF9mb3IpOiBCdWlsZCBiYXNpYyBibG9ja3MKCWFuZCBlZGdlcyBtb3JlIGNvcnJlY3RseS4KCjIwMDQtMDktMjMgIERvcml0IE5haXNobG9zIDxkb3JpdEBpbC5pYm0uY29tPgoKCSogdHJlZS5kZWYgKEFMSUdOX0lORElSRUNUX1JFRiwgTUlTQUxJR05FRF9JTkRJUkVDVF9SRUYpOgoJTmV3IHRyZWUtY29kZXMuCgkqIHRyZWUuaCAoUkVGX09SSUdJTkFMKTogQ29uc2lkZXIgQUxJR05fSU5ESVJFQ1RfUkVGIGFuZAoJTUlTQUxJR05FRF9JTkRJUkVDVF9SRUYuCgkqIGFsaWFzLmMgKGdldF9hbGlhc19zZXQsIG5vbm92ZXJsYXBwaW5nX21lbXJlZnNfcCk6IExpa2V3aXNlLgoJKiBlbWl0LXJ0bC5jIChtZW1fZXhwcl9lcXVhbF9wLCBzZXRfbWVtX2F0dHJpYnV0ZXNfbWludXNfYml0cG9zKToKCUxpa2V3aXNlLgoJKiBleHByLmMgKHNhZmVfZnJvbV9wLCBleHBhbmRfZXhwcl9yZWFsXzEsIHJld3JpdGVfYWRkcmVzc19iYXNlKQoJKGZpbmRfaW50ZXJlc3RpbmdfdXNlc19hZGRyZXNzKTogTGlrZXdpc2UuCgkqIGZvbGQtY29uc3QuYyAobm9uX2x2YWx1ZSwgb3BlcmFuZF9lcXVhbF9wKTogTGlrZXdpc2UuCgkoYnVpbGRfZm9sZF9hZGRyX2V4cHJfd2l0aF90eXBlKTogTGlrZXdpc2UuCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2FkZHJfZXhwciwgZ2ltcGxpZnlfZXhwcik6IExpa2V3aXNlLgoJKiBwcmludC1ydGwuYyAocHJpbnRfbWVtX2V4cHIpOiBMaWtld2lzZS4KCSogdHJlZS1kdW1wLmMgKGRlcXVldWVfYW5kX2R1bXApOiBMaWtld2lzZS4KCSogdHJlZS1laC5jICh0cmVlX2NvdWxkX3RyYXBfcCk6IExpa2V3aXNlLgoJKiB0cmVlLWdpbXBsZS5jIChpc19naW1wbGVfYWRkcmVzc2FibGUsIGdldF9iYXNlX2FkZHJlc3MpOiBMaWtld2lzZS4KCSogdHJlZS1wcmV0dHktcHJpbnQuYyAob3BfcHJpbywgb3Bfc3ltYm9sLCBkdW1wX2dlbmVyaWNfbm9kZSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1hbGlhcy5jIChmaW5kX3B0cl9kZXJlZmVyZW5jZSwgcHRyX2lzX2RlcmVmZXJlbmNlZF9ieSk6CglMaWtld2lzZS4KCSogdHJlZS1zc2EtZGNlLmMgKG1hcmtfc3RtdF9pZl9vYnZpb3VzbHlfbmVjZXNzYXJ5KTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWRvbS5jIChyZWNvcmRfZXF1aXZhbGVuY2VzX2Zyb21fc3RtdCk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1sb29wLWltLmMgKGZvcl9lYWNoX2luZGV4LCBpc19jYWxsX2Nsb2JiZXJlZF9yZWYpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAoZmluZF9pbnRlcmVzdGluZ191c2VzX2FkZHJlc3MpOiBMaWtld2lzZS4KCShhZGRfYWRkcmVzc19jYW5kaWRhdGVzLCByZXdyaXRlX2FkZHJlc3NfYmFzZSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChnZXRfZXhwcl9vcGVyYW5kcywgZ2V0X2luZGlyZWN0X3JlZl9vcGVyYW5kcyk6CglMaWtld2lzZS4KCSogdHJlZS5jIChzdGF0aWNwLCBidWlsZDFfc3RhdCk6IExpa2V3aXNlLgoKCSogdHJlZS5kZWYgKFJFQUxJR05fTE9BRF9FWFBSLCBSRUFMSUdOX1NUT1JFX0VYUFIpOiBOZXcgdHJlZS1jb2Rlcy4KCSogdHJlZS1wcmV0dHktcHJpbnQuYyAoZHVtcF9nZW5lcmljX25vZGUpOiBDb25zaWRlciBSRUFMSUdOX0xPQURfRVhQUi4KCSogdHJlZS1zc2Etb3BlcmFuZHMuYyAoZ2V0X2V4cHJfb3BlcmFuZHMpOiBMaWtld2lzZS4KCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEpOiBMaWtld2lzZS4KCgkqIG9wdGFicy5oICh2ZWNfcmVhbGlnbl9zdG9yZV9vcHRhYiwgdmVjX3JlYWxpZ25fbG9hZF9vcHRhYik6IE5ldwoJb3B0YWJzLgoJKE9USV92ZWNfcmVhbGlnbl9zdG9yZSwgT1RJX3ZlY19yZWFsaWduX2xvYWQpOiBOZXcgb3B0YWJfaW5kZXggdmFsdWVzCglmb3IgdGhlIG5ldyBvcHRhYnMuCgkoZXhwYW5kX3Rlcm5hcnlfb3ApOiBOZXcgZnVuY3Rpb24uCgkqIGdlbm9waW5pdC5jIChvcHRhYnMpOiBIYW5kbGUgdGhlIG5ldyBvcHRhYnMuCgkqIG9wdGFicy5jIChvcHRhYl9mb3JfdHJlZV9jb2RlKTogQWRkIGNhc2VzIGZvciB0aGUgbmV3IHRyZWUtY29kZXMuCgkoaW5pdF9vcHRhYnMpOiBJbml0aWFsaXplIHZlY19yZWFsaWduX2xvYWRfb3B0YWIuCgkoZXhwYW5kX3Rlcm5hcnlfb3ApOiBOZXcgZnVuY3Rpb25zLgoKCSogdGFyZ2V0LWRlZi5oIChUQVJHRVRfVkVDVE9SSVpFKTogTmV3IG1lbWJlciBmb3Igc3RydWN0IGdjY190YXJnZXQuCgkoVEFSR0VUX1ZFQ1RPUklaRV9NSVNBTElHTkVEX01FTV9PSyk6IE5ldyBtZW1iZXIgZm9yIHRhcmdldG0udmVjdG9yaXplLgoJKFRBUkdFVF9WRUNUT1JJWkVfQlVJTFRJTl9NQVNLX0ZPUl9MT0FEKTogTGlrZXdpc2UuCgkoVEFSR0VUX1ZFQ1RPUklaRV9CVUlMVElOX01BU0tfRk9SX1NUT1JFKTogTGlrZXdpc2UuCgkqIHRhcmdldC5oIChzdHJ1Y3QgdmVjdG9yaXplKTogTmV3IG1lbWJlciBmb3Igc3RydWN0IGdjY190YXJnZXQuCgkobWlzYWxpZ25lZF9tZW1fb2spOiBOZXcgbWVtYmVyIGZvciB0YXJnZXRtLnZlY3Rvcml6ZS4KCShidWlsdGluX21hc2tfZm9yX2xvYWQpOiBMaWtld2lzZS4KCShidWlsdGluX21hc2tfZm9yX3N0b3JlKTogTGlrZXdpc2UuCgkqIHRhcmdldGhvb2tzLmMgKGRlZmF1bHRfdmVjdF9taXNhbGlnbmVkX21lbV9vayk6IE5ldyBmdW5jdGlvbi4KCSogdGFyZ2V0aG9va3MuaCAoZGVmYXVsdF92ZWN0X21pc2FsaWduZWRfbWVtX29rKTogTmV3IGZ1bmN0aW9uLgoKCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kIChidWlsZF92ZWN0b3JfbWFza19mb3JfbG9hZCk6IE5ldwoJZGVmaW5lX2V4cGFuZC4KCSh2ZWNfcmVhbGlnbl9sb2FkX3Y0c2ksIHZlY19yZWFsaWduX2xvYWRfdjRzZiwgdmVjX3JlYWxpZ25fbG9hZF92OGhpKQoJKHZlY19yZWFsaWduX2xvYWRfdjE2cWkpOiBOZXcgZGVmaW5lX2luc24uCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKEFMVElWRUNfQlVJTFRJTl9NQVNLX0ZPUl9MT0FEKToKCShBTFRJVkVDX0JVSUxUSU5fTUFTS19GT1JfU1RPUkUpOiBOZXcgdGFyZ2V0IGJ1aWx0aW5zLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChhbHRpdmVjX2J1aWx0aW5fbWFza19mb3JfbG9hZCk6CgkoYWx0aXZlY19idWlsdGluX21hc2tfZm9yX3N0b3JlKTogTmV3IHZhcmlhYmxlcy4KCShyczYwMDBfYnVpbHRpbl9tYXNrX2Zvcl9sb2FkKTogTmV3IGZ1bmN0aW9uLiBJbXBsZW1lbnRzCglUQVJHRVRfVkVDVE9SSVpFX0JVSUxUSU5fTUFTS19GT1JfTE9BRC4KCShyczYwMDBfYnVpbHRpbl9tYXNrX2Zvcl9zdG9yZSk6IE5ldyBmdW5jdGlvbi4gSW1wbGVtZW50cwoJVEFSR0VUX1ZFQ1RPUklaRV9CVUlMVElOX01BU0tfRk9SX1NUT1JFLgoJKHJzNjAwMF9leHBhbmRfYnVpbHRpbik6IEV4cGFuZCB0aGUgdGFyZ2V0IGJ1aWx0aW5zCglidWlsdGluX21hc2tfZm9yX2xvYWQgYW5kIGJ1aWx0aW5fbWFza19mb3Jfc3RvcmUuCgkoYWx0aXZlY19pbml0X2J1aWx0aW5zKTogSW5pdGlhbGl6ZSB0aGUgbmV3IHRhcmdldCBidWlsdGlucy4KCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X21pc2FsaWduZWRfbWVtX29rKTogTmV3IGZ1bmN0aW9uLgoJSW1wbGVtZW50cyB0aGUgdGFyZ2V0IGhvb2sgVEFSR0VUX1ZFQ1RPUklaRV9NSVNBTElHTkVEX01FTV9PSy4KCgkqIHRyZWUtdmVjdG9yaXplci5jICh2ZWN0X2NyZWF0ZV9kYXRhX3JlZik6IFJlbmFtZWQgdG8KCXZlY3RfY3JlYXRlX2RhdGFfcmVmX3B0ci4gUmV0dXJucyBhIHBvaW50ZXIgaW5zdGVhZCBvZiBhbiBhcnJheS1yZWYuCgkodmVjdF9jcmVhdGVfYWRkcl9iYXNlX2Zvcl92ZWN0b3JfcmVmKTogQWRkaXRpb25hbCBhcmd1bWVudCAob2Zmc2V0KS4KCSh2ZWN0b3JpemFibGVfc3RvcmUpOiBDYWxsIHZlY3RfY3JlYXRlX2RhdGFfcmVmX3B0ciB3aXRoIGFkZGl0aW9uYWwKCWFyZ3VtZW50cywgYW5kIGNyZWF0ZSBhbiBpbmRpcmVjdF9yZWYgd2l0aCBpdHMgcmV0dXJuIHZhbHVlIGRhdGFfcmVmLgoJQ2hlY2sgYWxpZ25lZF9hY2Nlc3NfcC4KCSh2ZWN0b3JpemFibGVfbG9hZCk6IEhhbmRsZSBtaXNhbGlnbmVkIGxvYWRzLCB1c2luZyBzb2Z0d2FyZS1waXBlbGluZWQKCXNjaGVtZSB3aXRoIFJFQUxJR05fTE9BRF9FWFBSIGFuZCBBTElHTl9JTkRJUkVDVF9SRUYgaWYKCXZlY19yZWFsaWduX2xvYWRfb3B0YWIgaXMgc3VwcG9ydGVkLCBvciB1c2luZyBhIHNjaGVtZSB3aXRob3V0Cglzb2Z0d2FyZS1waXBlbGluaW5nIHdpdGggTUlTQUxJR05FRF9JTkRJUkVDVF9SRUYgaWYgdGhlIHRhcmdldCBob29rCgltaXNhbGlnbmVkX21lbV9vayBpcyBzdXBwb3J0ZWQuCgoJKHZlY3RfZmluaXNoX3N0bXRfZ2VuZXJhdGlvbik6IFR5cG8uCgkodmVjdF9lbmhhbmNlX2RhdGFfcmVmc19hbGlnbm1lbnQpOiBSZW5hbWUgbG9vcF92aW5mbyB0byBsb29wX2luZm8uCgkodmVjdF9hbmFseXplX2RhdGFfcmVmc19hbGlnbm1lbnQpOiBEb24ndCBmYWlsIHZlY3Rvcml6YXRpb24gaW4gdGhlCglwcmVzZW5jZSBvZiBtaXNhbGlnbmVkIGxvYWRzLgoJKHZlY3RfYW5hbHl6ZV9kYXRhX3JlZl9hY2Nlc3MpOiBBZGQgY2hlY2sgZm9yIGNvbnN0YW50IGluaXQuCgkodmVjdF9nZXRfc3ltYmxfYW5kX2RyKTogUmVtb3ZlIGR1cGxpY2F0ZSBsaW5lLgoJKiB0cmVlLXZlY3Rvcml6ZXIuaCAoRFJfTUlTQUxJR05NRU5UKTogQWRkIGNvbW1lbnQuCgoyMDA0LTA5LTIzICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogYnVpbHRpbnMuYzogRml4IGEgY29tbWVudCB0eXBvLgoKMjAwNC0wOS0yMyAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogcHJvZmlsZS5jIChicmFuY2hfcHJvYik6IERvIG5vdCB2ZXJpZnkgZmxvdyBpbmZvIGluIHRoZSBtaWRkbGUgb2YgdGhlCglwYXNzLgoKMjAwNC0wOS0yMyAgWmRlbmVrIER2b3JhayAgPHJha2R2ZXJAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgoKCSogY2ZnbG9vcC5oICh1cGRhdGVfc2luZ2xlX2V4aXRzX2FmdGVyX2R1cGxpY2F0aW9uKTogRGVjbGFyZS4KCShsb29waWZ5LCBzcGxpdF9sb29wX2JiKTogRGVjbGFyYXRpb24gY2hhbmdlZC4KCSogY2ZnbG9vcG1hbmlwLmMgKHNwbGl0X2xvb3BfYmIpOiBUYWtlIHZvaWQgKiBhcyBhbiBhcmd1bWVudCBpbnN0ZWFkCglvZiBydHguCgkobG9vcGlmeSk6IEFkZGVkIHJlZGlyZWN0X2FsbF9lZGdlcyBhcmd1bWVudC4KCSh1cGRhdGVfc2luZ2xlX2V4aXRzX2FmdGVyX2R1cGxpY2F0aW9uKTogRXhwb3J0LgoJKiBsb29wLXVuc3dpdGNoLmMgKHVuc3dpdGNoX2xvb3ApOiBDaGFuZ2VkIGR1ZSB0byBsb29waWZ5IGNoYW5nZS4KCSogdHJlZS1mbG93LmggKHRyZWVfZHVwbGljYXRlX2xvb3BfdG9faGVhZGVyX2VkZ2UsCgl0cmVlX3NzYV9sb29wX3ZlcnNpb24pOiBEZWNsYXJlLgoJKiB0cmVlLXNzYS1sb29wLW1hbmlwLmMgKGNvcHlfcGhpX25vZGVfYXJncywgcmVuYW1lX3ZhcmlhYmxlcywKCXNldF9waGlfZGVmX3N0bXRzLCB0cmVlX2R1cGxpY2F0ZV9sb29wX3RvX2hlYWRlcl9lZGdlLAoJbHZfYWRqdXN0X2xvb3BfaGVhZGVyX3BoaSwgbHZfYWRqdXN0X2xvb3BfZW50cnlfZWRnZSwKCWx2X3VwZGF0ZV9wZW5kaW5nX3N0bXRzLCB0cmVlX3NzYV9sb29wX3ZlcnNpb24pOiBOZXcgZnVuY3Rpb25zLgoKCSogdHJlZS1zc2EtbG9vcC11bnN3aXRjaC5jOiBOZXcgZmlsZS4KCSogTWFrZWZpbGUuaW4gKHRyZWUtc3NhLWxvb3AtdW5zd2l0Y2gubyk6IEFkZC4KCSogdGltZXZhci5kZWYgKFRWX1RSRUVfTE9PUF9VTlNXSVRDSCk6IE5ldyB0aW1ldmFyLgoJKiB0cmVlLWZsb3cuaCAodHJlZV9zc2FfdW5zd2l0Y2hfbG9vcHMpOiBEZWNsYXJlLgoJKiB0cmVlLW9wdGltaXplLmMgKGluaXRfdHJlZV9vcHRpbWl6YXRpb25fcGFzc2VzKTogQWRkIHBhc3NfdW5zd2l0Y2guCgkqIHRyZWUtcGFzcy5oIChwYXNzX3Vuc3dpdGNoKTogRGVjbGFyZS4KCSogdHJlZS1zc2EtbG9vcC5jICh0cmVlX3NzYV9sb29wX3Vuc3dpdGNoLAoJZ2F0ZV90cmVlX3NzYV9sb29wX3Vuc3dpdGNoLCBwYXNzX3Vuc3dpdGNoKTogTmV3IHBhc3MuCgkqIGRvYy9wYXNzZXMudGV4aTogRG9jdW1lbiB0cmVlIGxldmVsIGxvb3AgdW5zd2l0Y2hpbmcuCgoyMDA0LTA5LTIzICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY2ZnZXhwYW5kLmMsIGNvbmZpZy9zMzkwL3RwZi1laC5jOiBGaXggY29tbWVudCB0eXBvcy4KCjIwMDQtMDktMjIgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogYnVpbHRpbnMuYyAoc2ltcGxpZnlfYnVpbHRpbl92YV9zdGFydCk6IFJlbW92ZS4KCShzaW1wbGlmeV9idWlsdGluKTogRGl0dG8uCgkoZm9sZF9idWlsdGluX3N0cmNocik6IERpdHRvLgoJKHNpbXBsaWZ5X2J1aWx0aW5fKik6IFJlbmFtZSByZW1haW5kZXJzIHRvIGZvbGRfYnVpbHRpbl8qLgoJKGV4cGFuZF9idWlsdGluKTogRml4IHVwIGZvciBhYm92ZSBjaGFuZ2VzLgoJKGZvbGRfYnVpbHRpbl8xKTogQWRkIG5ldyBmb2xkZXJzLiBDaGFuZ2UgZm9yIGFib3ZlLgoJKGV4cGFuZF9idWlsdGluX3ZhX3N0YXJ0KTogQ2FsbCBmb2xkX2J1aWx0aW5fbmV4dF9hcmcuCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2NhbGxfZXhwcik6IEZpeCBjYWxscyB0byBzaW1wbGlmeV9idWlsdGluLgoJKiB0cmVlLmg6IFJlbW92ZSBwcm90b3R5cGUgZm9yIHNpbXBsaWZ5X2J1aWx0aW4uCgoyMDA0LTA5LTIzICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJUFIgZGVidWcvMTczODkKCSogZHdhcmYyb3V0LmMgKGR3YXJmMm91dF9maW5pc2gpOiBEZWFsIHdpdGggbmVzdGVkIGZ1bmN0aW9ucwoJb2YgZnVsbHkgaW5saW5lZCBmdW5jdGlvbnMuCgkqIHRyZWUtaW5saW5lLmMgKGlubGluZV9mb3JiaWRkZW5fcF8xKTogTmVzdGVkIGZ1bmN0aW9ucyBjYW4gYmUKCWlubGluZWQuCgoJKiBjZmdleHBhbmQuYyAoYWRkX3JlZ19icl9wcm9iX25vdGUpOiBOZXcgZnVuY3Rpb24uCgkoZXhwYW5kX2dpbXBsZV9jb25kX2V4cHIpOiBVc2UgaXQuCgkodHJlZV9leHBhbmRfY2ZnKTogTm8gbG9uZ2VyIGtpbGwgdGhlIHByb2ZpbGUuCgkqIGNmZ3J0LmMgKHJ0bF92ZXJpZnlfZmxvd19pbmZvXzEpOiBDaGVjayBwcm9maWxlIGNvbnNpc3RlbmN5Cglvbmx5IGlmIGl0IGlzIHByZXNlbnQuCgkqIHBhc3Nlcy5jIChyZXN0X29mX2hhbmRsZV9sb29wX29wdGltaXplKTogS2lsbCB0aGUgcHJvZmlsZS4KCSogcHJlZGljdC5jIChjb21iaW5lX3ByZWRpY3Rpb25zX2Zvcl9pbnNuKTogU2V0IHRoZSBwcm9iYWJpbGl0aWVzCgliYXNlZCBvbiBSRUdfQlJfUFJPQiBub3RlIGlmIHByZXNlbnQuCgkqIHByZWRpY3QuYyAoYnJhbmNoX3Byb2IpOiBQcm9maWxlIGlzIHJlYWQgb25seSB3aXRoCglmbGFnX2JyYW5jaF9wcm9iYWJpbGl0aWVzLgoKMjAwNC0wOS0yMiAgS2VsbGV5IENvb2sgIDxrY29va0BnY2MuZ251Lm9yZz4KCgkqIGFjbG9jYWwubTQ6IEFkZCBpbiBnZXR0ZXh0J3MgbTQgaW5jbHVkZXMuCgkoQUNfSUNPTlYsIEFDX0xDTUVTU0FHRVMsIEdDQ19QQVRIX1BST0cpOiBSZW1vdmUuCgkqIGNvbmZpZ3VyZS5hYzogQWRkIGluIGNoZWNrIGZvciBpY29udi5oCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDQtMDktMjIgIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgoJKiBhY2xvY2FsLm00OiBVcGRhdGUgZm9yIHJlbmFtZSBvZiBnZXR0ZXh0LXNpc3Rlci5tNC4KCjIwMDQtMDktMjIgIERhbmllbCBCZXJsaW4gPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJRml4IFBSIHRyZWUtb3B0aW1pemF0aW9uLzE3NTg3CgkqIHRyZWUtc3NhLXByZS5jIChmaW5pX3ByZSk6IENvbW1pdCBlZGdlIGluc2VydHMgaGVyZS4KCShpbnNlcnRfYXV4KTogSW5zdGVhZCBvZiBoZXJlLgoKMjAwNC0wOS0yMiAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTY3MjEKCSogdHJlZS1kZmEuYyAoZHVtcF92YXJpYWJsZSk6IFNob3cgVFJFRV9USElTX1ZPTEFUSUxFLgoJKiB0cmVlLXNzYS1hbGlhcy5jIChjcmVhdGVfbWVtb3J5X3RhZyk6IE1vdmUgc2V0dGluZyBvZgoJVFJFRV9USElTX1ZPTEFUSUxFIC4uLgoJKGdldF90bXRfZm9yKTogLi4uIGhlcmUuCgoyMDA0LTA5LTIyICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogY29uZmlnL3NwYXJjL3NwYXJjLm1kIChjbW92ZSBzcGxpdHRlcik6IEZpeCBmb3JtYXR0aW5nLgoJKGNvbmRpdGlvbmFsX3RyYXAgZXhwYW5kZXIpOiBSZWplY3QgaW5hcHByb3ByaWF0ZSBDQ21vZGVzLgoJKGNvbmRpdGlvbmFsIHRyYXAgaW5zbik6IFVzZSBWOSBzeW50YXggaWYgcG9zc2libGUuCgoyMDA0LTA5LTIyICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCglQUiBjLzE2NTY2CgkqIGMtdHlwZWNrLmMgKGJ1aWxkX2NvbXBvbmVudF9yZWYpOiBEb24ndCBzcGVjaWFsLWNhc2UKCUNPTVBPVU5EX0VYUFIuCgoyMDA0LTA5LTIyICBGcmFuayBDaC4gRWlnbGVyICA8ZmNoZUByZWRoYXQuY29tPgoKCSogZG9taW5hbmNlLmMgKHZlcmlmeV9kb21pbmF0b3JzKTogRG9uJ3QgU0VHViBpZiByZWNvdW50X2RvbWluYXRvcgoJcmV0dXJucyBOVUxMLgoKMjAwNC0wOS0yMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRvYy9jLXRyZWUudGV4aSAoVFJVVEhfTk9UX0VYUFIsIFRSVVRIX0FORElGX0VYUFIsCglUUlVUSF9PUklGX0VYUFIsIFRSVVRIX0FORF9FWFBSLCBUUlVUSF9PUl9FWFBSLAoJVFJVVEhfWE9SX0VYUFIpOiBNZW50aW9uIHRoZSByZXN0cmljdGlvbiBvbiB0eXBlcy4KCjIwMDQtMDktMjIgIE1hdHQgQXVzdGVybiAgPGF1c3Rlcm5AYXBwbGUuY29tPgoKCSogY29uZmlnL2Rhcndpbi5jIChkYXJ3aW5fbWFrZV9kZWNsX29uZV9vbmx5KToKCUFsbG93IGNvYWxlc2NlZCBzeW1ib2wgdG8gYXBwZWFyIGluIHN0YXRpYyBhcmNoaXZlJ3MgdGFibGUgb2YgY29udGVudHMKCjIwMDQtMDktMjIgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTc1MTIKCSogY29udmVydC5jIChjb252ZXJ0X3RvX2ludGVnZXIpOiBEb24ndCBoYW5kbGUgVFJVVEhfKl9FWFBSIGFzCglzcGVjaWFsIGNhc2VzLgoKMjAwNC0wOS0yMiAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogZGJ4b3V0LmMgKGdldF9sYW5nX251bWJlcik6IERvIG5vdCBkZWZpbmUgaWYKCURCWF9PVVRQVVRfTUFJTl9TT1VSQ0VfRElSRUNUT1JZIGlzIGRlZmluZWQuCgoyMDA0LTA5LTIyICBSYWxmIENvcnNlcGl1cyAgPGNvcnNlcGl1QGZhdy51bmktdWxtLmRlPgoKCVBSIHRhcmdldC8xNTU4MwoJKiBjb25maWcvcnM2MDAwL3J0ZW1zLmggKFRBUkdFVF9PU19DUFBfQlVJTFRJTlMpOiBBZGQKCWJ1aWx0aW5fZGVmaW5lICgiX19VU0VfSU5JVF9GSU5JX18iKS4KCjIwMDQtMDktMjIgIFAuSi4gRGFyY3kgIDxkYXJjeXBqQHVzLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLXByb3Rvcy5oIChzMzkwX2VtaXRfdHBmX2VoX3JldHVybik6IEFkZCBwcm90b3R5cGUuCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoczM5MF9lbWl0X3RwZl9laF9yZXR1cm4pOiBOZXcgZnVuY3Rpb24uCgkqIGNvbmZpZy9zMzkwL3MzOTAuaCAoVEFSR0VUX1RQRik6IE5ldyBtYWNyby4KCSogY29uZmlnL3MzOTAvczM5MC5tZCAoImVoX3JldHVybiIpOiBOZXcgZXhwYW5kZXIuCgkqIGNvbmZpZy9zMzkwL3QtdHBmIChMSUIyQURERUgpOiBVc2UgdW53aW5kLWR3Mi1mZGUuYyByYXRoZXIgdGhhbgoJdW53aW5kLWR3Mi1mZGUtZ2xpYmMuYy4gIEFkZCBjb25maWcvczM5MC90cGYtZWguYy4KCShMSUIyQURERUhERVApOiBSZW1vdmUgdW53aW5kLWR3Mi1mZGUuYy4KCSogY29uZmlnL3MzOTAvdHBmLmggKFRBUkdFVF9UUEYpOiBEZWZpbmUgdG8gMS4KCShTVEFDS19QT0lOVEVSX09GRlNFVCk6IEluY3JlYXNlIHRvIDQ0OC4KCShUQVJHRVRfREVGQVVMVCk6IFNldCAtbXRwZi10cmFjZSBvbiBhcyBkZWZhdWx0LgoJKFRQRl9MT0NfRElGRl9PRkZTRVQpOiBOZXcgbWFjcm8uCgkoQVNNX1BSRUZFUlJFRF9FSF9EQVRBX0ZPUk1BVCk6IFJlZGVmaW5lIHRvIGFsd2F5cyB1c2UgYWJzb2x1dGUKCWVuY29kaW5nLgoJKF9faXNQQVRyYW5nZSk6IEFkZCBwcm90b3R5cGUuCgkoTURfRkFMTEJBQ0tfRlJBTUVfU1RBVEVfRk9SKTogRGVmaW5lLgoJKiBjb25maWcvczM5MC90cGYtZWguYzogTmV3IGZpbGUuCgoyMDA0LTA5LTIyICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIGZvbGQtY29uc3QuYyAoZm9sZCk6IEF2b2lkIG5vbiBJTlRFR0VSX1RZUEVzIHdoZW4gd2lkZW5pbmcKCW9wZXJhbmRzIGluIGFuIGludGVnZXIgY29tcGFyaXNvbi4KCSogdHJlZS1jZmcuYyAoZmluZF90YWtlbl9lZGdlKTogQ2FsbCBmb2xkKCkgdG8gZGV0ZXJtaW5lCgl3aGV0aGVyIHRoZSBwcmVkaWNhdGUgaXMga25vd24uCgoyMDA0LTA5LTIyICBLZWxsZXkgQ29vayAgPGtjb29rQGdjYy5nbnUub3JnPgoKCSogYWNsb2NhbC5tNDogSW1wb3J0IEFNX1BST0dfQ0NfQ19PIGFuZCBBTV9BVVhfRElSX0VYUEFORC4KCSogY29uZmlndXJlLmFjOiBDYWxsIEFNX1BST0dfQ0NfQ19PIGluc3RlYWQgb2YgQUNfUFJPR19DQ19DX08uCglDcmVhdGUgYnVpbGQgYW5kIGRvYyBkaXJlY3RvcmllcyBhbG9uZyB3aXRoIHRoZSBsYW5ndWFnZSBkaXJlY3Rvcmllcy4KCURvbid0IGNyZWF0ZSBkb2MgZGlyZWN0b3J5IHNlcGFyYXRlbHkuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogTWFrZWZpbGUuaW46IENyZWF0ZSBhbGwgb2JqZWN0IGFuZCBleGVjdXRhYmxlcyBmaWxlcyBidWlsdAoJd2l0aCB0aGUgYnVpbGQgY29tcGlsZXIgaW4gYSBidWlsZC8gZGlyZWN0b3J5LgoJKGdlbm9iam5hbWVzKTogQWRkIG1pc3NpbmcgYnVpbGQgb2JqZWN0cy4KCShTVEFHRVNUVUZGKTogRG9uJ3Qgc3RhZ2UgdGhlIGdlbiogcHJvZ3JhbXMuCgkoZ2djLW5vbmUubyk6IERlZmluZSBkZXBlbmRlbmNpZXMgZm9yIHRoZSB0YXJnZXQgY29tcGlsZXIuCgkoYnVpbGQtcHJpbnQtcnRsLm8pOiBSZW5hbWUgdG8gYnVpbGQvcHJpbnQtcnRsLm8uCgkoYnVpbGQtZXJyb3JzLm8pOiBSZW5hbWUgdG8gYnVpbGQvZXJyb3JzLm8uCgkoYnVpbGQtdmFycmF5Lm8pOiBSZW5hbWUgdG8gYnVpbGQvdmFycmF5Lm8uCgkobWFpbnRhaW5lcmNsZWFuKTogRGVsZXRlIHRoZSBjb250ZW50cyBvZiB0aGUgYnVpbGQgZGlyZWN0b3J5LgoJKCQoZ2Vub2Jqcyk6ICUubyk6IEV4cGxpY2l0bHkgdXNlIC1vLgoJKGJ1aWxkL2luc24tY29uZGl0aW9ucy5vKTogRGVsZXRlIHNwZWNmaWMgcnVsZSB0byB1c2UgZ2VuZXJpYyBydWxlLgoJKGJ1aWxkL2dlbmd0eXBlLWxleC5vKTogTGlrZXdpc2UuCgkoYnVpbGQvZ2VuZ3R5cGUteWFjYy5vKTogTGlrZXdpc2UuCgkoYnVpbGQvZ2Nvdi1pb3Yubyk6IExpa2V3aXNlLgoKMjAwNC0wOS0yMiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHZlYy5oIChWRUNfc3BhY2UpOiBSZXR1cm4gdHJ1ZSBpZiB0aGVyZSBfaXNfIHNwYWNlLgoJKFZFQ19yZXNlcnZlKTogQWRqdXN0LgoKMjAwNC0wOS0yMiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5jIChtaXBzX2Z1bmN0aW9uX3ZhbHVlKTogRm9yIG8zMiwgbzY0LCBuMzIgYW5kIG42NCwKCXVzZSBGUFJzIGZvciBzY2FsYXIsIGNvbXBsZXggYW5kIHZlY3RvciB0eXBlcyBvbmx5LgoKMjAwNC0wOS0yMSBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtZG9tLmMgKG9wdF9zdGF0cyk6IE1vdmUgc28gdGhhdCBpdCBsaXZlcyBqdXN0IGFmdGVyCgl0aGUgb3B0X3N0YXRzX2Qgc3RydWN0dXJlLgoJKHZycF9kYXRhKTogQ2hhbmdlIGZyb20gYSB2YXJyYXkgaW50byBhIGhhc2ggdGFibGUuCgkodnJwX2hhc2hfZWx0KTogTmV3IHN0cnVjdHVyZSBmb3IgZWxlbWVudHMgaW4gdGhlIHZycCBoYXNoIHRhYmxlLgoJKHZycF9oYXNoLCB2cnBfZXEpOk5ldyBmdW5jdGlvbnMgZm9yIGhhc2hpbmcgYW5kIHRlc3RpbmcgZXF1YWxpdHkKCWluIHRoZSB2cnAgaGFzaCB0YWJsZS4KCSh0cmVlX3NzYV9kb21pbmF0b3Jfb3B0aW1pemUpOiBJbml0aWFsaXplIFZSUF9EQVRBLiAgUmVvcmdhbml6ZQoJaW5pdGlhbGl6YXRpb24gc2xpZ2h0bHkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gcmVhZC4gIE5vIGxvbmdlciBuZWVkCgl0byBncm93L2NsZWFyIHRoZSB2YXJyYXkuICBJbnN0ZWFkIGVtcHR5IGFuZCBkZWxldGUgdGhlIGhhc2ggdGFibGUuCgkoZG9tX29wdF9maW5hbGl6ZV9ibG9jayk6IFVwZGF0ZSBkdWUgdG8gY2hhbmdlIG9mIFZSUF9EQVRBIGZyb20KCWEgdmFycmF5IHRvIGEgaGFzaCB0YWJsZS4KCShzaW1wbGlmeV9jb25kX2FuZF9sb29wX2F2YWlsX2V4cHIsIHJlY29yZF9yYW5nZSk6IFNpbWlsYXJseS4KCgkqIHRyZWUtc3NhLWNjcC5jIChnZXRfZGVmYXVsdF92YWx1ZSk6IElmIHdlIGhhdmUgYSBjb25zdGFudAoJdmFsdWUgcmVjb3JkZWQgZm9yIGFuIFNTQV9OQU1FLCB0aGVuIHVzZSB0aGF0IGNvbnN0YW50IGFzCgl0aGUgaW5pdGlhbCBsYXR0aWNlIHZhbHVlLgoJKHN1YnN0aXR1dGVfYW5kX2ZvbGQpOiBUcmFuc2ZlciBlcXVpdmFsZW5jZXMgZGlzY292ZXJlZCBpbnRvCglTU0FfTkFNRV9FUVVJVi4KCgkqIHRyZWUuaCAoU1NBX05BTUVfRVFVSVYpOiBBZGQgY29tbWVudHMuCgkoU0VUX1NTQV9OQU1FX0VRVUlWKTogU2ltaWxhcmx5LgoKMjAwNC0wOS0yMSAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogY29uZmlnL3JzNjAwMC9saW51eDY0LmggKFBST0NFU1NPUl9ERUZBVUxUNjQpOiBEZWZhdWx0IHRvIFBPV0VSNC4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9hZGp1c3RfY29zdCk6IGRlcF9pbnNuIGlzIHVzZWQuCgoyMDA0LTA5LTIxICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogYy1kZWNsLmMgKGltcGxpY2l0eWxfZGVjbGFyZSk6IENhbGwgbWF5YmVfYXBwbHlfcmVuYW1pbmdfcHJhZ21hLgoJKGZpbmlzaF9kZWNsKTogTGlrZXdpc2UuCgoyMDA0LTA5LTIxICBEZXZhbmcgUGF0ZWwgIDxkcGF0ZWxAYXBwbGUuY29tPgoKCSogdHJlZS5kZWYgKFZFQ19DT05EX0VYUFIpOiBOZXcgdHJlZSBub2RlLgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChnZXRfZXhwcl9vcGVyYW5kcyk6IEhhbmRsZSBWRUNfQ09ORF9FWFBSLgoKMjAwNC0wOS0yMSAgU3RhbiBTaGVicyAgPHNoZWJzQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLXRyYW1wLmFzbTogQWRkIF9fcHBjNjRfXyBjYXNlLgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi13b3JsZC5hc206IExpa2V3aXNlLgoKMjAwNC0wOS0yMSAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiB0cmVlLXNzYS5jICh2ZXJpZnlfZGVmKTogVXNlIHByaW50X2dlbmVyaWNfc3RtdCwKCW5vdCBkZWJ1Z19nZW5lcmljX3N0bXQuCgkodmVyaWZ5X3VzZSk6IERpdHRvLgoJKHZlcmlmeV9waGlfYXJncyk6IERpdHRvLgoJKHZlcmlmeV9zc2EpOiBEaXR0by4KCjIwMDQtMDktMjEgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB2YXJhc20uYyAoZGVmYXVsdF9hc3NlbWJsZV9pbnRlZ2VyKTogUmV0dXJuIGZhbHNlIGZvciB2YWx1ZXMgd2lkZXIKCXRoYW4gdGhlIHRhcmdldCB3b3JkIHNpemUuICBXb3JrcyBhcm91bmQgR0FTIGJ1Zy4KCjIwMDQtMDktMjEgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiByZWctbm90ZXMuZGVmIChSRUdfREVQX1RSVUUpOiBOZXcgZW50cnksIHBsYWNlIGZpcnN0IHNvIGl0CglnZXRzIHZhbHVlIDAuCgkqIHByaW50LXJ0bC5jIChwcmludF9ydHgpOiBQcmludCB0aGUgbmFtZSBvZiBhIFJFR19OT1RFIGV2ZW4KCWlmIGl0IGhhcyB2YWx1ZSAwLgoKMjAwNC0wOS0yMSAgRGFuaWVsIEJlcmxpbiA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIGMtdHlwZWNrLmMgKGJ1aWxkX2Z1bmN0aW9uX2NhbGwpOiBHaXZlIG5hbWUgb2Ygb2JqZWN0Cgl3ZSBhcmUgYXR0ZW1wdGluZyB0byBjYWxsIGluIGVycm9yIG1lc3NhZ2UuCgkqIGMtb2JqYy1jb21tb24uYyAoY190cmVlX3ByaW50ZXIpOiBDYWxsIHBwX2V4cHJlc3Npb24sCglub3QgcmV0dXJuIGZhbHNlLCBmb3IgJ0UnIGNhc2UuCgoyMDA0LTA5LTIxICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNzQ4MgoJKiBwb3N0cmVsb2FkLWdjc2UuYyAocmVnX2F2YWlsX2luZm8sIG9wcnNfdW5jaGFuZ2VkX3AsCglsb2FkX2tpbGxlZF9pbl9ibG9ja19wKTogQ2xhcmlmeSBjb21tZW50cy4KCShyZWNvcmRfbGFzdF9yZWdfc2V0X2luZm8pOiBNYWtlIHN0YXRpYyBpbmxpbmUuCgkobWFya19jYWxsLCBtYXJrX3NldCwgbWFya19jbG9iYmVyLCBtYXJrX29wcnNfc2V0KTogUmVtb3ZlLgoJKHJlY29yZF9vcHJfY2hhbmdlcyk6IE5ldyBmdW5jdGlvbiB0byByZXBsYWNlIHRoZSBhYm92ZS4KCShjb21wdXRlX2hhc2hfdGFibGUpOiBDbGFyaWZ5IGNvbW1lbnRzLiAgVXNlIHJlY29yZF9vcHJfY2hhbmdlcy4KCShyZWdfc2V0X2JldHdlZW5fYWZ0ZXJfcmVsb2FkX3ApOiBDbGVhbiB1cC4KCShyZWdfdXNlZF9iZXR3ZWVuX2FmdGVyX3JlbG9hZF9wKTogTGlrZXdpc2UuCgkoZWxpbWluYXRlX3BhcnRpYWxseV9yZWR1bmRhbnRfbG9hZCk6IENsYXJpZnkgY29tbWVudHMuCgoyMDA0LTA5LTIxICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMTcyNjYKCSogcmVnbW92ZS5jIChvcHRpbWl6ZV9yZWdfY29weV8zKTogTWFrZSBhIG5ldyBTVUJSRUcgZm9yIGVhY2ggaW5zbi4KCjIwMDQtMDktMjEgIFVyb3MgQml6amFrICA8dXJvc0Brc3MtbG9rYS5zaT4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE0ODUxCgkqIHJ0bGFuYWwuYyAoY29tbXV0YXRpdmVfb3BlcmFuZF9wcmVjZWRlbmNlKTogQ2FsY3VsYXRlCglwcmVjZWRlbmNlIG9mIHN0cmlwcGVkIGNvbnN0YW50LgoKMjAwNC0wOS0yMCBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoJICAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogdHJlZS1zc2FuYW1lcy5jIChtYWtlX3NzYV9uYW1lKTogTm8gbG9uZ2VyIG5lZWQgdG8gY2xlYXIsIHRoZW4KCWluaXRpYWxpemUga2V5IGVsZW1lbnRzIGhlcmUuCgkocmVsZWFzZV9zc2FfbmFtZSk6IFplcm8gdGhlIHJlbGVhc2VkIFNTQV9OQU1FIGhlcmUuCgkqIHRyZWUuaCAoU1NBX05BTUVfRVFVSVYsIFNFVF9TU0FfTkFNRV9FUVVJVik6IE5ldyBtYWNyb3MuCgkoc3RydWN0IHRyZWVfc3NhX25hbWUpOiBBZGQgbmV3ICJlcXVpdiIgZmllbGQuCgkqIHRyZWUtc3NhLWRvbS5jIChjb25zdF9hbmRfY29waWVzKTogS2lsbCB0aGUgZ2xvYmFsIHZhcnJheS4KCSh0cmVlX3NzYV9kb21pbmF0b3Jfb3B0aW1pemUpOiBObyBsb25nZXIgYWxsb2NhdGUsIHJlc2l6ZSBvcgoJY2xlYXIgQ09OU1RfQU5EX0NPUElFUy4KCShnZXRfdmFsdWVfZm9yLCBzZXRfdmFsdWVfZm9yKTogS2lsbC4KCSh0aHJlYWRfYWNyb3NzX2VkZ2UpOiBHZXQvc2V0IHRoZSBlcXVpdmFsZW5jeSB1c2luZwoJU1NBX05BTUVfRVFVSVYgYW5kIFNFVF9TU0FfTkFNRV9FUVVJVi4KCShyZXN0b3JlX3ZhcnNfdG9fb3JpZ2luYWxfdmFsdWUpOiBMaWtld2lzZS4KCShyZWNvcmRfZXF1aXZhbGVuY2VzX2Zyb21fcGhpcyk6IExpa2V3aXNlLgoJKHJlY29yZF9kb21pbmF0aW5nX2NvbmRpdGlvbnMpOiBMaWtld2lzZS4KCShyZWNvcmRfY29uc3Rfb3JfY29weSwgcmVjb3JkX2VxdWFsaXR5KTogTGlrZXdpc2UuCgkobG9va3VwX2F2YWlsX2V4cHIpOiBMaWtld2lzZS4KCShyZWNvcmRfZXF1aXZhbGVuY2VzX2Zyb21fc3RtdCwgY3Byb3Bfb3BlcmFuZCk6IExpa2V3aXNlLgoJKGNwcm9wX2ludG9fc3VjY2Vzc29yX3BoaXMpOiBObyBsb25nZXIgbmVlZCB0byBwYXNzIGFyb3VuZAoJQ09OU1RfQU5EX0NPUElFUy4gIENhbGxlcnMgdXBkYXRlZC4gR2V0IGVxdWl2YWxlbmNlcyB2aWEKCVNTQV9OQU1FX0VRVUlWLgoJKGNwcm9wX2ludG9fcGhpcyk6IExpa2V3aXNlLgoKMjAwNC0wOS0yMCAgTWF0dCBBdXN0ZXJuIDxhdXN0ZXJuQGFwcGxlLmNvbT4KCSAgICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogYy1jb21tb24uYyAoZml4X3N0cmluZ190eXBlKTogQnVpbGQgdGhlIHVucXVhbGlmaWVkIGFycmF5Cgl0eXBlIHVuY29uZGl0aW9uYWxseSwgdGhlbiB1c2UgY19idWlsZF9xdWFsaWZpZWRfdHlwZSB0byBnZXQKCXRoZSBwcm9wZXIgY29uc3QtcXVhbGlmaWVkIHZhcmlhbnQsIGFuZCBzZXQgaXRzCglUWVBFX01BSU5fVkFSSUFOVCB0byByZWZlciB0byB0aGUgdW5xdWFsaWZpZWQgdHlwZS4KCSogYy1sZXguYyAoY19sZXhfcmV0dXJuX3Jhd19zdHJpbmcpOiBOZXcgZ2xvYmFsLgoJKGNfbGV4X3dpdGhfZmxhZ3MpOiBIb25vciBpdC4KCSogYy1wcmFnbWEuaDogRGVjbGFyZSBpdC4KCjIwMDQtMDktMjAgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogTWFrZWZpbGUuaW46IEZpeCBmbGFncy5oIGRlcGVuZGVuY2llcyB0byBiZSAkKEZMQUdTX0gpLgoKMjAwNC0wOS0yMSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCVBSIG1pZGRsZS1lbmQvMTcxMjYKCSogdHJlZS1vcHRpbWl6ZS5jICh1cGRhdGVfaW5saW5lZF90b19wb2ludGVycyk6IEZpeCB0aGUgcmVjdXJzaW9uLgoJKHRyZWVfcmVzdF9vZl9jb21waWxhdGlvbik6IENsZWFudXAuCgoyMDA0LTA5LTIwICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHMzOTBfc2VsZWN0X3J0eF9zZWN0aW9uKTogUmVtb3ZlLgoJKFRBUkdFVF9BU01fU0VMRUNUX1JUWF9TRUNUSU9OKTogRG8gbm90IHJlZGVmaW5lLgoKMjAwNC0wOS0yMCAgS2F6IEtvamltYSAgPGtrb2ppbWFAZ2NjLmdudS5vcmc+CgoJKiBjb25maWcvc2gvc2guYyAoc2hfZXhwYW5kX3Byb2xvZ3VlKTogQWRkIGEgUkVHX0ZSQU1FX1JFTEFURURfRVhQUgoJbm90ZSB0byBwcmV0ZW5kIGEgZGlyZWN0IHNhdmUgZnJvbSB0aGUgb3JpZ2luYWwgcmVnaXN0ZXIgd2hlbiBhbgoJaW50ZXJtZWRpYXRlIHJlZ2lzdGVyIGlzIHVzZWQgZm9yIHRoZSBzYXZlLgoKMjAwNC0wOS0yMCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogdHN5c3RlbS5oIChhbGxvY2EpOiBQcm92aWRlIGEgZGVmYXVsdCBkZWZpbml0aW9uLgoKCVJldmVydDoKCTIwMDEtMDgtMzEgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCSAgICAqIHVud2luZC1kdzIuYzogQ2FsbCBfX2J1aWx0aW5fYWxsb2NhLCBub3QgYWxsb2NhLgoKMjAwNC0wOS0yMCAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgdHJlZS1vcHQvMTc1NTgKCSogdHJlZS1zc2EtY29weS5jIChtYXlfcHJvcGFnYXRlX2NvcHkpOiBPbmx5IGFsbG93IGlmIHRoZQoJYWxpYXNpbmcgc2V0cyBhcmUgdGhlIHNhbWUgcmF0aGVyIHRoYW4ganVzdCBjb25mbGljdGluZy4KCjIwMDQtMDktMjAgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCglQUiBtaWRkbGUtZW5kLzE2NDYwCgoJKiBjZ3JhcGguYyAoY2dyYXBoX3VubmVzdF9ub2RlKTogTmV3IGZ1bmN0aW9uLgoJKGNfZmluYWxpemUpOiBSZW5hbWUgdG8gLi4uLgoJKGNfd2Fybl91bnVzZWRfcmVzdWx0X3JlY3Vyc2l2bHkpOiAuLi4gdGhpcyBvbmU7IGRvIG9ubHkgdGhlIHdhcm5pbmcKCShmaW5pc2hfZnVuY3Rpb24pOiBGaW5hbGl6ZSB0aGUgdG9wbGV2ZWwgZnVuY3Rpb247IGRvIG5vdCBsb3dlciBuZXN0ZWQgdHJlZS4KCSogY2dyYXBoLmggKGNncmFwaF91bm5lc3Rfbm9kZSk6IERlY2xhcmUuCgkqIGNncmFwaHVuaXQuYyAoZGVjaWRlX2lzX2Z1bmN0aW9uX25lZWRlZCk6IERvIG5vdCB1c2UgY2dyYXBoCgluZXN0ZWRuZXNzIGRhdGFzdHJ1Y3R1cmUuCgkqIGNzZS5jIChjc2VfaW5zbik6IERvIG5vdCBjcHJvcCBub25sb2NhbCBMQUJFTF9SRUZzLgoJKiByZWxvYWQxLmMgKHNldF9sYWJlbF9vZmZzZXRzKTogRml4IGNhbGwgb2Ygc2V0X2xhYmVsX29mZnNldHMuCgkqIHRyZWUtbmVzdGVkLmMgKGZpbmxpemVfbmVzdGluZ190cmVlXzEpOiAgVXNlIHVuLW5lc3RpbmcgY29kZS4KCjIwMDQtMDktMjAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoc29tZV9zbWFsbF9zeW1ib2xpY19vcGVyYW5kX2ludCk6IFJlbmFtZQoJZnJvbSBzb21lX3NtYWxsX3N5bWJvbGljX29wZXJhbmRfMTsgZXhwb3J0LgoJKHNvbWVfc21hbGxfc3ltYm9saWNfb3BlcmFuZCk6IFJlbW92ZS4KCSogY29uZmlnL2FscGhhL2FscGhhLm1kIChzb21lX3NtYWxsX3N5bWJvbGljX29wZXJhbmQgc3BsaXR0ZXIpOiBSZW1vdmUKCWV4dHJhIEMgY2hlY2suCgkqIGNvbmZpZy9hbHBoYS9wcmVkaWNhdGVzLm1kIChzb21lX3NtYWxsX3N5bWJvbGljX29wZXJhbmQpOiBOZXcuCgoyMDA0LTA5LTIwICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBwcmVkaWN0LmMgKHJldHVybl9wcmVkaWN0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKGFwcGx5X3JldHVybl9wcmVkaWN0aW9uKTogTGlrZXdpc2UuCgkodHJlZV9iYl9sZXZlbF9wcmVkaWN0aW9ucyk6IExpa2V3aXNlLgoJKHRyZWVfZXN0aW1hdGVfcHJvYmFiaWxpdHkpOiBBZGQgbm9yZXR1cm4gZXhpdCBlZGdlczsgY2FsbAoJYmJfbGV2ZWxfcHJlZGljdGlvbnM7IGZpeCBsb2dpYyBvZiByZXR1cm4gaGV1cmlzdGljcy4KCShwcmVkaWN0X3BhdGhzX2xlYWRpbmdfdG8pOiAgUmVzY3Vlc2NlIGZyb20gb2xkIENWUyB2ZXJzaW9uIG9mCglwcm9jZXNzX25vdGVfcHJlZGljdGlvbiBmdW5jdGlvbi4KCSogcHJlZGljdC5kZWYgKFBSRURfVFJFRV9FQVJMWV9SRVRVUk4pOiBOZXcgcHJlZGljdG9yLgoKMjAwNC0wOS0yMCAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbDFAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoczM5MF9mcmFtZV9pbmZvKTogQWRkZWQgYWxpZ25tZW50IHN0YXRlbWVudCBmb3IKCWZsb2F0aW5nIHBvaW50IHJlZ2lzdGVyIGFyZWEgb24gc3RhY2suCgoyMDA0LTA5LTIwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHByZWRpY3QuYyAoZXhwcl9leHBlY3RlZF92YWx1ZSk6IFVzZSAqX0NMQVNTX1AgbWFjcm9zLgoKMjAwNC0wOS0yMCAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiB0cmVlLXNzYS1wcmUuYyAoY29tcHV0ZV9hbnRpY19hdXgpOiBVc2UgbWFsbG9jJ2Qgd29ya2xpc3QsIHRvIGF2b2lkCglnZW5lcmF0aW5nIHVzZWxlc3MgZ2FyYmFnZS4KCjIwMDQtMDktMjAgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiBidWlsdGlucy5jIChmb2xkX2J1aWx0aW4pOiBDYWxsIHRoZSBuZXcgb21vbnltb3VzCgl0YXJnZXQgaG9vayBmb3IgbWFjaGluZS1kZXBlbmRlbnQgYnVpbHQtaW5zLgoJKiB0YXJnZXQtZGVmLmggKFRBUkdFVF9GT0xEX0JVSUxUSU4pOiBOZXcuCgkqIHRhcmdldC5oIChzdHJ1Y3QgZ2NjX3RhcmdldCk6IEFkZCB0aGUgZm9sZF9idWlsdGluIGhvb2suCgkqIHRhcmdob29rcy5jIChkZWZhdWx0X2ZvbGRfYnVpbHRpbik6IE5ldy4KCSogdGFyZ2hvb2tzLmggKGRlZmF1bHRfZm9sZF9idWlsdGluKTogRGVjbGFyZSBpdC4KCjIwMDQtMDktMjAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjZmcuYywgdHJlZS1zc2EtdGhyZWFkdXBkYXRlLmMsIHRyZWUtdmVjdG9yaXplci5jOiBGaXgKCWNvbW1lbnQgdHlwb3MuCgoyMDA0LTA5LTIwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE3NTY1CgkqIGNvbmZpZy9taXBzL21pcHMubWQgKGRlZmluZV9hc21fYXR0cmlidXRlcyk6IFNldCBjYW5fZGVsYXkgdG8gbm8uCgoyMDA0LTA5LTIwICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBwcmVkaWN0LmMgKGVzdGltYXRlX3Byb2JhYmlsaXR5KTogUmVtb3ZlIHVubmVjZXNhcnkgY29kZS4KCjIwMDQtMDktMTkgIElyYSBSb3NlbiAgPGlyYXJAaWwuaWJtLmNvbT4KCgkqIHRyZWUtdmVjdG9yaXplci5oIChzdG10X3ZlY19pbmZvKTogQWRkIHZlY3RfZHJfYmFzZSBmaWVsZC4KCShTVE1UX1ZJTkZPX1ZFQ1RfRFJfQkFTRSk6IERlY2xhcmUuCgkoVkVDVF9TTU9EVUxPKTogRGVjbGFyZS4KCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfY29tcHV0ZV9hcnJheV9yZWZfYWxpZ25tZW50KTogTmV3IGZ1bmN0aW9uLgoJKHZlY3RfY29tcHV0ZV9hcnJheV9iYXNlX2FsaWdubWVudCk6IE5ldyBmdW5jdGlvbi4KCSh2ZWN0X2FuYWx5emVfZGF0YV9yZWZfYWNjZXNzKTogQ2hlY2sgYXJyYXkgaW5kaWNlcy4gUmVtb3ZlIG9uZQoJZGltZW5zaW9uYWwgYXJyYXlzIHJlc3RyaWN0aW9uLgoJKHZlY3RfZ2V0X3B0cl9vZmZzZXQpOiBOZXcgZnVuY3Rpb24uCgkodmVjdF9nZXRfc3ltYmxfYW5kX2RyKTogTmV3IGZ1bmN0aW9uLgoJKHZlY3RfZ2V0X2Jhc2VfYW5kX2JpdF9vZmZzZXQpOiBTdXBwb3J0IGFkZGl0aW9uYWwgZGF0YSByZWZzLiBSZW5hbWVkCgkoZm9ybWVyIG5hbWUgdmVjdF9nZXRfYmFzZV9kZWNsX2FuZF9iaXRfb2Zmc2V0KS4KCSh2ZWN0X2NyZWF0ZV9pbmRleF9mb3JfYXJyYXlfcmVmKTogUmVtb3ZlZC4KCSh2ZWN0X2NyZWF0ZV9pbmRleF9mb3JfdmVjdG9yX3JlZik6IE5ldyBmdW5jdGlvbi4KCSh2ZWN0X2NyZWF0ZV9hZGRyX2Jhc2VfZm9yX3ZlY3Rvcl9yZWYpOiBOZXcgZnVuY3Rpb24uCgkodmVjdF9jcmVhdGVfZGF0YV9yZWYpOiBIYW5kbGUgYWRkaXRpb25hbCBkYXRhIHJlZnMuIENhbGwKCXZlY3RfY3JlYXRlX2luZGV4X2Zvcl92ZWN0b3JfcmVmIGFuZCB2ZWN0X2NyZWF0ZV9hZGRyX2Jhc2VfZm9yX3ZlY3Rvcl9yZWYuCgkodmVjdF9jb21wdXRlX2RhdGFfcmVmX2FsaWdubWVudCk6IFN1cHBvcnQgdGhlIGNoYW5nZXMuIENhbGwKCXZlY3RfZ2V0X2Jhc2VfYW5kX2JpdF9vZmZzZXQuCgkodmVjdF9hbmFseXplX2RhdGFfcmVmcyk6IENhbGwgdmVjdF9nZXRfc3ltYmxfYW5kX2RyLiBTdXBwb3J0IGFkZGl0aW9uYWwKCWRhdGEgcmVmcy4gU3RvcmUgdmVjdF9kcl9iYXNlLgoJKHZlY3RfYW5hbHl6ZV9kYXRhX3JlZl9hY2Nlc3Nlcyk6IFN1cHBvcnQgbm9uY29uc3RhbnQgaW5pdC4KCShuZXdfc3RtdF92ZWNfaW5mbyk6IEluaXRpYWxpemUgdmVjdF9kcl9iYXNlIGZpZWxkLgoJKHZlY3RfaXNfc2ltcGxlX2l2X2V2b2x1dGlvbik6IENhbGwgaW5pdGlhbF9jb25kaXRpb25faW5fbG9vcF9udW0uCgkoZ2V0X3ZlY3R5cGVfZm9yX3NjYWxhcl90eXBlKTogQ2hlY2sgZm9yIEJMS21vZGUuCgkqIHRyZWUtY2hyZWMuaCAoaW5pdGlhbF9jb25kaXRpb25faW5fbG9vcF9udW0pOiBEZWNsYXJlLgoJKiB0cmVlLWNocmVjLmMgKGluaXRpYWxfY29uZGl0aW9uX2luX2xvb3BfbnVtKTogTmV3IGZ1bmN0aW9uLgoJKGNocmVjX2NvbXBvbmVudF9pbl9sb29wX251bSk6IE5ldyBmdW5jdGlvbi4KCShldm9sdXRpb25fcGFydF9pbl9sb29wX251bSk6IENhbGwgY2hyZWNfY29tcG9uZW50X2luX2xvb3BfbnVtLgoJKiB0cmVlLWRhdGEtcmVmLmMgKGFuYWx5emVfYXJyYXlfaW5kZXhlcyk6IENoYW5nZSBwYXJhbWV0ZXIgKGFjY2Vzc19mbnMpCgl0byBiZSBwb2ludGVyIHRvIHZhcnJheV90eXBlLgoKMjAwNC0wOS0xOSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogYmFzaWMtYmxvY2suaCAodXBkYXRlX2JiX3Byb2ZpbGVfYWZ0ZXJfdGhyZWFkaW5nKTogRGVjbGFyZS4KCSogY2ZnLmMgKHVwZGF0ZV9iYl9wcm9maWxlX2FmdGVyX3RocmVhZGluZyk6IEJyZWFrIG91dCBmcm9tIC4uLgoJKiBjZmdjbGVhbnVwLmMgKHRyeV9mb3J3YXJkX2VkZ2VzKTogLi4uIGhlcmU7IHVzZSBpdC4KCSogdHJlZS1zc2EtZG9tLmMgKHRocmVhZF9hY3Jvc3NfZWRnZSk6IFVzZSBpdC4KCSogdHJlZS1zc2EtdGhyZWFkdXBkYXRlLmMgKGNyZWF0ZV9ibG9ja19mb3JfdGhyZWFkaW5nKTogWmVybyBvdXQKCXByb2ZpbGUgb2YgdGhlIG5ldyBCQi4KCjIwMDQtMDktMTkgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogdHJlZS1zc2EtcHJlLmMgKGluc2VydF9pbnRvX3NldCk6IERvbid0IHB1dAoJaXNfZ2ltcGxlX21pbl9pbnZhcmlhbnQgdmFsdWVzIGludG8gdGhlIHNldC4KCjIwMDQtMDktMTkgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIHRyZWUtc3NhLWRvbS5jIChyZXN0b3JlX25vbnplcm9fdmFyc190b19vcmlnaW5hbF92YWx1ZSk6IEZpeAoJcHJvdG90eXBlLgoKMjAwNC0wOS0xOCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNvbmZpZy9jcmlzL2NyaXMuaDogUHJlc2VydmUgdGhlIG9yaWdpbmFsIHNwZWxsaW5nIGluIGEKCXF1b3RlLgoKMjAwNC0wOS0xOCBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtZG9tLmMgKG5vbnplcm9fdmFyc19zdGFjaywgdnJwX3ZhcmlhYmxlc19zdGFjayk6IE5ldwoJZ2xvYmFsIHZhcnJheXMgdG8gcmVwbGFjZSB0aGUgYmxvY2sgbG9jYWwgdmFycmF5cy4KCShzdHJ1Y3QgZG9tX3dhbGtfYmxvY2tfZGF0YSk6IFJlbW92ZSwgbm8gbG9uZ2VyIHVzZWQuCgkoZ2V0X2VxX2V4cHJfdmFsdWUpOiBObyBsb25nZXIgbmVlZCB0byBwYXNzIGFyb3VuZCBwb2ludGVycyB0byBsb2NhbAoJdmFycmF5cy4gIENhbGxlcnMgdXBkYXRlZC4gIFVudXNlZCBtYXJrZXJzIGFkZGVkIHRvIHVudXNlZCBwYXJhbWV0ZXJzLgoJKHJlY29yZF9yYW5nZSwgcmVjb3JkX2VxdWl2YWxlbmNlc19mcm9tX3N0bXQpOiBMaWtld2lzZS4KCShyZWNvcmRfZXF1aXZhbGVuY2VzX2Zyb21faW5jb21pbmdfZWRnZSk6IExpa2V3aXNlLgoJKHJlY29yZF92YXJfaXNfbm9uemVybyk6IExpa2V3aXNlLiAgVXBkYXRlIG5vdyB0aGF0IHdlIGhhdmUgYQoJc2luZ2xlIGdsb2JhbCB2YXJyYXkgb2YgU1NBX05BTUVzIHRoYXQgbmVlZCByZXN0b3JpbmcuCgkoZG9tX29wdF9pbml0aWFsaXplX2Jsb2NrX2xvY2FsX2RhdGEpOiBLaWxsLCBubyBsb25nZXIgdXNlZC4KCSh0cmVlX3NzYV9kb21pbmF0b3Jfb3B0aW1pemUpOiBJbml0aWFsaXplIG5ldyBnbG9iYWwgdmFycmF5cy4KCVVwZGF0ZSBjYWxsYmFja3MgaW4gZG9taW5hdG9yIHdhbGtlciBzdHJ1Y3R1cmUuCgkoZG9tX29wdF9pbml0aWFsaXplX2Jsb2NrKTogQWRkIG1hcmtlcnMgdG8gTk9OWkVST19WQVJfU1RBQ0sgYW5kCglWUlBfVkFSSUFCTEVTX1NUQUNLLgoJKHJlc3RvcmVfbm9uemVyb192YXJzX3RvX29yaWdpbmFsX3ZhbHVlKTogVXBkYXRlIG5vdyB0aGF0IHdlIGhhdmUKCWEgc2luZ2xlIGdsb2JhbCB2YXJyYXkgb2YgU1NBX05BTUVzIHRoYXQgbmVlZCByZXN0b3JpbmcuCgkoZG9tX29wdF9maW5hbGl6ZV9ibG9jayk6IFNpbWlsYXJseSBmb3IgVlJQX1ZBUklBQkxFU19TVEFDSy4KCVJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgoJKG9wdGltaXplX3N0bXQpOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgoKMjAwNC0wOS0xOCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogdHJlZS1jZmcuYyAodGhyZWFkX2p1bXBzKTogIEZpeCB1cGRhdGluZyBvZiB0aGUgcHJvZmlsZS4KCgkqIHRyZWUtb3B0aW1pemUuYyAodHJlZV9yZXN0X29mX2NvbXBpbGF0aW9uKTogS2lsbCBmb3Jnb3R0ZW4KCXZlcmlmeV9jZ3JhcGggY2FsbC4KCjIwMDQtMDktMTggIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBhbGlhcy5jLCBjcnRzdHVmZi5jLCBkYnhvdXQuYywgZG9td2Fsay5jLCBkb213YWxrLmgsIGdjYy5jLAoJZ2NzZS5jLCBnbG9iYWwuYywgbGFtYmRhLWNvZGUuYywgbG9vcC5jLCBtaXBzLXRkdW1wLmMsCglvcHRhYnMuaCwgcHJlZGljdC5jLCByZWctc3RhY2suYywgcmVnY2xhc3MuYywgc2NoZWQtcmduLmMsCgl0cmVlLW9wdGltaXplLmMsIHRyZWUtc3NhLWRvbS5jLCB0cmVlLXNzYS1mb3J3cHJvcC5jLAoJdHJlZS1zc2Etb3BlcmFuZHMuYywgdHJlZS1zc2EtcGhpb3B0LmMsCgl0cmVlLXNzYS10aHJlYWR1cGRhdGUuYzogRml4IGNvbW1lbnQgdHlwb3MuCgoyMDA0LTA5LTE4ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL2Rhcndpbi1jLmMsIGNvbmZpZy9hcmMvYXJjLmMsIGNvbmZpZy9hcmMvYXJjLm1kLAoJY29uZmlnL2FybS9SRUFETUUtaW50ZXJ3b3JraW5nLCBjb25maWcvYXJtL2FybS1jb3Jlcy5kZWYsCgljb25maWcvYXJtL2FybS5jLCBjb25maWcvYXJtL2FybS5oLCBjb25maWcvYXJtL3BlLmMsCgljb25maWcvYXJtL3ZmcC5tZCwgY29uZmlnL2M0eC9jNHguYywgY29uZmlnL2M0eC9jNHguaCwKCWNvbmZpZy9jcmlzL2NyaXMuYywgY29uZmlnL2NyaXMvY3Jpcy5oLCBjb25maWcvZnIzMC9mcjMwLmMsCgljb25maWcvZnIzMC9mcjMwLmgsIGNvbmZpZy9mcjMwL2ZyMzAubWQsIGNvbmZpZy9mcnYvZnJ2LmMsCgljb25maWcvZnJ2L2Zydi5tZCwgY29uZmlnL2kzODYvd2lubnQuYywKCWNvbmZpZy9pYTY0L3Vud2luZC1pYTY0LmMsIGNvbmZpZy9pcTIwMDAvaXEyMDAwLmMsCgljb25maWcvaXEyMDAwL2lxMjAwMC5oLCBjb25maWcvbTY4aGMxMS9tNjhoYzExLmMsCgljb25maWcvbTY4aGMxMS9tNjhoYzExLm1kLCBjb25maWcvbTY4ay9tNjhrLmMsCgljb25maWcvbWNvcmUvbWNvcmUuYywgY29uZmlnL21pcHMvbWlwcy5oLAoJY29uZmlnL21uMTAzMDAvbW4xMDMwMC5tZCwgY29uZmlnL3BhL3BhLmMsCgljb25maWcvcGEvcGE2NC1yZWdzLmgsIGNvbmZpZy9wZHAxMS9wZHAxMS5jLAoJY29uZmlnL3JzNjAwMC9yczYwMDAuYywgY29uZmlnL3NoL3N5bWJpYW4uYywKCWNvbmZpZy9zcGFyYy9zcGFyYy5oOiBGaXggY29tbWVudCB0eXBvcy4gIEZvbGxvdyBzcGVsbGluZwoJY29udmVudGlvbnMuCgoyMDA0LTA5LTE4ICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCglQUiBjLzE3NDI0CgkqIGMtdHlwZWNrLmMgKGNfZXhwcl9zaXplb2ZfZXhwcik6IENoZWNrIGZvciBlcnJvcl9tYXJrX25vZGUuCgoyMDA0LTA5LTE4ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWFsaWFzLmMgKHNldHVwX3BvaW50ZXJzX2FuZF9hZGRyZXNzYWJsZXMpOiBEb24ndAoJcmVtb3ZlIFRSRUVfQUREUkVTU0FCTEUgZnJvbSBSRVNVTFRfREVDTC4KCjIwMDQtMDktMTggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtYWxpYXMuYyAoZHVtcF9hbGlhc19pbmZvKTogSWdub3JlIE5VTEwgU1NBX05BTUVzLgoKMjAwNC0wOS0xOCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogdHJlZS1pbnRvLXNzYS5jIChyZXdyaXRlX3NzYV9pbnRvX3NzYSk6ICBFeHBlY3Qgc3NhX25hbWUgdG8gcmV0dXJuCglOVUxMLgoJKiB0cmVlLXNzYS1hbGlhcy5jIChpbml0X2FsaWFzX2luZm8pOiBMaWtld2lzZS4KCSogdHJlZS1zc2EuYyAodmVyaWZ5X2Zsb3dfc2Vuc2l0aXZlX2FsaWFzX2luZm8pOiBMaWtld2lzZS4KCSh2ZXJpZnlfc3NhKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhbmFtZXMuYyAobWFrZV9zc2FfbmFtZSk6IENsZWFyIG91dCBzc2FfbmFtZXMgYXJyYXlzLgoKMjAwNC0wOS0xOCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogaTM4Ni5jIChsZWdpdGltaXplX3BpY19hZGRyZXNzKTogRml4IHNwbGl0dGluZyBvZiBQTFVTIHdpdGgKCWh1Z2Ugb2Zmc2V0LgoKMjAwNC0wOS0xOCAgS2F6IEtvamltYSAgPGtrb2ppbWFAZ2NjLmdudS5vcmc+CgoJKiBjb25maWcvc2gvbGludXguaCAoQVNNX1BSRUZFUlJFRF9FSF9EQVRBX0ZPUk1BVCk6IFJlbW92ZS4KCSogY29uZmlnL3NoL3NoLmggKEFTTV9QUkVGRVJSRURfRUhfREFUQV9GT1JNQVQpOiBVc2UKCURXX0VIX1BFX3NkYXRhKiBmb3IgZGF0YS4KCShBU01fTUFZQkVfT1VUUFVUX0VOQ09ERURfQUREUl9SVFgpOiBMaWtld2lzZS4KCjIwMDQtMDktMTcgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogdHJlZS1pbmxpbmUuYyAoY29weV90cmVlX3IpOiBEb24ndCBkdXBsaWNhdGUgY29uc3RhbnRzLCB0aGV5J3JlCglzaGFyZWQgYW55d2F5LgoKCVBSIHBjaC8xMzM2MQoJKiBjLXR5cGVjay5jIChjb25zdHJ1Y3Rvcl9hc21zcGVjKTogRGVsZXRlLgoJKHN0cnVjdCBpbml0aWFsaXplcl9zdGFjayk6IERlbGV0ZSBmaWVsZCAnYXNtc3BlYycuCgkoc3RhcnRfaW5pdCk6IERlbGV0ZSBzYXZpbmcgb2YgYXNtc3BlYy4KCShmaW5pc2hfaW5pdCk6IERvbid0IHVwZGF0ZSBjb25zdHJ1Y3Rvcl9hc21zcGVjLgoJKiBkd2FyZjJvdXQuYyAocnRsX2Zvcl9kZWNsX2xvY2F0aW9uKTogRHVwbGljYXRlIHN0cmluZyBmcm9tIHRyZWUuCgkqIHN0bXQuYyAoZXhwYW5kX2FzbSk6IER1cGxpY2F0ZSBzdHJpbmdzIGZyb20gdHJlZS4KCShleHBhbmRfYXNtX29wZXJhbmRzKTogTGlrZXdpc2UuCgkqIHRyZWUuYyAodHJlZV9zaXplKTogVXBkYXRlIGNvbXB1dGF0aW9uIG9mIHNpemUgb2YgU1RSSU5HX0NTVC4KCShtYWtlX25vZGUpOiBEb24ndCBtYWtlIFNUUklOR19DU1Qgbm9kZXMuCgkoYnVpbGRfc3RyaW5nKTogQWxsb2NhdGUgc3RyaW5nIHdpdGggdHJlZSBub2RlLgoJKHRyZWVfY29kZV9zaXplKTogQ2xlYW4gdXAgYXNzZXJ0aW9ucywgZG9uJ3QgYWxsb3cgcmVxdWVzdHMKCWZvciAidGhlIHNpemUgb2YgYSBTVFJJTkdfQ1NUIi4KCSogdHJlZS5kZWYgKFNUUklOR19DU1QpOiBVcGRhdGUgY29tbWVudC4KCSogdHJlZS5oIChUUkVFX1NUUklOR19QT0lOVEVSKTogQWRqdXN0IGZvciBjaGFuZ2UgdG8gU1RSSU5HX0NTVC4KCSh0cmVlX3N0cmluZyk6IFBsYWNlIGNvbnRlbnRzIG9mIHN0cmluZyBpbiB0cmVlIG5vZGUuCgkqIGNvbmZpZy9zaC9zaC5jIChzaF9oYW5kbGVfc3Bfc3dpdGNoX2F0dHJpYnV0ZSk6IER1cGxpY2F0ZSBzdHJpbmcKCWZyb20gdHJlZS4KCjIwMDQtMDktMTcgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5pbiAoYy1wYXJzZS5vKTogRGVwZW5kIG9uICQoQ19QUkFHTUFfSCkuCgkqIG9iamMvTWFrZS1sYW5nLmluIChvYmpjL29iamMtcGFyc2Uubyk6IExpa2V3aXNlLgoKMjAwNC0wOS0xNyAgSm9uZXMgRGVzb3VnaSAgPGpvbmVzQGluZ2F0ZS5jb20+CgoJKiBjb25maWd1cmUuYWM6IFJlcGxhY2UgQUNfQ09NUElMRV9DSEVDS19TSVpFT0Ygd2l0aCBBQ19DSEVDS19TSVpFT0YuCgkqIGNvbmZpZ3VyZSwgY29uZmlnLmluOiBSZWdlbmVyYXRlLgoKMjAwNC0wOS0xNyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWUuYywgdHJlZS5oICh0cmVlX2NsYXNzX3N0cmluZ3MpOiBNYWtlIGFycmF5IGNvbnN0LgoJUmVpbmRlbnQgcGVyIGNvZGluZyBjb252ZW50aW9uLiAgTW92ZSBhc3RlcmlzayB0byBwcm9wZXIgcGxhY2UKCXBlciBjb2RpbmcgY29udmVudGlvbi4KCjIwMDQtMDktMTggIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBNYWtlZmlsZS5pbiAoZ2ltcGxlLWxvdy5vKTogRGVwZW5kIG9uICQoRVhQUl9IKS4KCSh0cmVlLXZlY3Rvcml6ZXIubyk6IExpa2V3aXNlLgoJKHRhcmdob29rcy5vKTogTGlrZXdpc2UuCgoyMDA0LTA5LTE3ICBKZWZmcmV5IEQuIE9sZGhhbSAgPG9sZGhhbUBjb2Rlc291cmNlcnkuY29tPgoJICAgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBhbGlhcy5jIChmaW5kX2Jhc2VfZGVjbCk6IFJlbW92ZSB1bnJlYWNoYWJsZSBjYXNlICczJyBibG9jay4KCSogZXhwci5jIChzYWZlX2Zyb21fcCk6IEFib3J0IGlmIHBhc3NlZCBhIHR5cGUuCgkqIHRyZWUtZ2ltcGxlLmMgKHJlY2FsY3VsYXRlX3NpZGVfZWZmZWN0cyk6IEFib3J0IGlmIHBhc3NlZAoJYW55dGhpbmcgb3RoZXIgdGhhbiBhbiBleHByZXNzaW9uLgoJKiB0cmVlLXNzYS1wcmUuYyAocGhpX3RyYW5zbGF0ZSk6IFJldHVybiBleHByIGltbWVkaWF0ZWx5IGlmCglpc19naW1wbGVfbWluX2ludmFyaWFudCBpcyB0cnVlIGZvciBpdC4gIFJlb3JkZXIgY2FzZXMgZm9yIGNsYXJpdHkuCglBYm9ydCBvbiB1bi1oYW5kbGVkIHRyZWUgY2xhc3Nlcy4KCSh2YWxpZF9pbl9zZXQpOiBMaWtld2lzZS4KCSogdHJlZS5jICh0cmVlX2NvZGVfY2xhc3Nfc3RyaW5ncyk6IE5ldyBzdGF0aWMgZGF0YS4KCgkqIHRyZWUuaCAoZW51bSB0cmVlX2NvZGVfY2xhc3MpOiBOZXcuCgkodHJlZV9jb2RlX2NsYXNzX3N0cmluZ3MpOiBEZWNsYXJlLgoJKFRSRUVfQ09ERV9DTEFTU19TVFJJTkcsIEVYQ0VQVElPTkFMX0NMQVNTX1AsIENPTlNUQU5UX0NMQVNTX1ApCgkoUkVGRVJFTkNFX0NMQVNTX1AsIENPTVBBUklTT05fQ0xBU1NfUCwgVU5BUllfQ0xBU1NfUCwgQklOQVJZX0NMQVNTX1ApCgkoU1RBVEVNRU5UX0NMQVNTX1AsIEVYUFJFU1NJT05fQ0xBU1NfUCwgSVNfVFlQRV9PUl9ERUNMX1ApOiBOZXcgbWFjcm9zLgoJKFRZUEVfUCwgREVDTF9QLCBJU19OT05fVFlQRV9DT0RFX0NMQVNTLCBJU19FWFBSX0NPREVfQ0xBU1MpCgkoY2hlY2tpbmcgbWFjcm9zLCBFWFBSX0xPQ0FUSU9OLCBTRVRfRVhQUl9MT0NBVElPTiwgRVhQUl9MT0NVUyk6IFVwZGF0ZS4KCgkqIHRyZWUuZGVmLCBjLWNvbW1vbi5kZWYsIG9iamMvb2JqYy10cmVlLmRlZjogVXNlCgl0cmVlX2NvZGVfY2xhc3MgZW51bWVyYXRpb24gY29uc3RhbnRzIGluc3RlYWQgb2YgY29kZSBsZXR0ZXJzLgoKCSogYWxpYXMuYywgYnVpbHRpbnMuYywgYy1jb21tb24uYywgYy1mb3JtYXQuYywgYy1sYW5nLmMsIGMtcHJhZ21hLmMKCSogYy10eXBlY2suYywgY2dyYXBodW5pdC5jLCBjb252ZXJ0LmMsIGRieG91dC5jLCBkd2FyZjJvdXQuYwoJKiBlbWl0LXJ0bC5jIGV4cHIuYywgZm9sZC1jb25zdC5jLCBnaW1wbGlmeS5jLCBsYW1iZGEtY29kZS5jCgkqIGxhbmdob29rcy5jLCBsYW5naG9va3MuaCwgcHJlZGljdC5jLCBwcmludC10cmVlLmMsIHJlbG9hZDEuYywgc3RtdC5jCgkqIHRyZWUtYnJvd3Nlci5jLCB0cmVlLWNmZy5jLCB0cmVlLWNocmVjLmMsIHRyZWUtY29tcGxleC5jLCB0cmVlLWRmYS5jCgkqIHRyZWUtZHVtcC5jLCB0cmVlLWVoLmMsIHRyZWUtZ2ltcGxlLmMsIHRyZWUtaW5saW5lLmMsIHRyZWUtbmVzdGVkLmMKCSogdHJlZS1vdXRvZi1zc2EuYywgdHJlZS1wcmV0dHktcHJpbnQuYywgdHJlZS1zcmEuYywgdHJlZS1zc2EtY2NwLmMKCSogdHJlZS1zc2EtZGNlLmMsIHRyZWUtc3NhLWRvbS5jLCB0cmVlLXNzYS1mb3J3cHJvcC5jLCB0cmVlLXNzYS1saXZlLmMKCSogdHJlZS1zc2EtbG9vcC1pbS5jLCB0cmVlLXNzYS1sb29wLWl2b3B0cy5jLCB0cmVlLXNzYS1vcGVyYW5kcy5jCgkqIHRyZWUtc3NhLXBoaW9wdC5jLCB0cmVlLXNzYS1wcmUuYywgdHJlZS1zc2EtcHJvcGFnYXRlLmMKCSogdHJlZS1zc2EuYywgdHJlZS1zc2FuYW1lcy5jLCB0cmVlLXRhaWxjYWxsLmMsIHRyZWUuYywgdmFyYXNtLmMKCSogY29uZmlnL3NvbDItYy5jLCBjb25maWcvYXJtL2FybS5jLCBjb25maWcvaTM4Ni93aW5udC5jCgkqIGNvbmZpZy9wYS9wYS5jLCBjb25maWcvcGEvcGEuaCwgY29uZmlnL3NoL3NoLmMsIG9iamMvb2JqYy1sYW5nLmMKCVVwZGF0ZSB0byBtYXRjaC4KCgkqIExBTkdVQUdFUzogQWRkIG5vdGUgYWJvdXQgY2hhbmdlLgoKMjAwNC0wOS0xNyAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTczMTkKCSogdHJlZS1zc2EtYWxpYXMuYyAoY29tcHV0ZV9wb2ludHNfdG9fYW5kX2FkZHJfZXNjYXBlKTogQWxzbwoJZXhhbWluZSBwb2ludGVycyBvbiB0aGUgTEhTIG9mIGFuIGFzc2lnbm1lbnQuCgkoY29sbGVjdF9wb2ludHNfdG9faW5mb19yKTogSGFuZGxlIFJFVFVSTl9FWFBSLgoKMjAwNC0wOS0xNyBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtZG9tLmMgKGNvbnN0X2FuZF9jb3BpZXNfc3RhY2spOiBOZXcuCgkoZG9tX3dhbGtfYmxvY2tfZGF0YSk6IFJlbW92ZSBjb25zdF9hbmRfY29waWVzIGZpZWxkLgoJKHJlY29yZF9jb25zdF9vcl9jb3B5KTogTm8gbG9uZ2VyIG5lZWQgdG8gcGFzcyBpbiB2YXJyYXlfdHlwZSAqLgoJVXNlIENPTlNUX0FORF9DT1BJRVNfU1RBQ0sgcmF0aGVyIHRoYW4gcGFzc2VkIGluIGJsb2NrIGxvY2FsIHN0YWNrLgoJQ2FsbGVycyB1cGRhdGVkLgoJKHJlY29yZF9lcXVhbGl0eSk6IFNpbWlsYXJseS4KCShyZXN0b3JlX3ZhcnNfdG9fb3JpZ2luYWxfdmFsdWUpOiBTaW1pbGFybHkuICBSZXZhbXAgdG8gdXNlIG5ldwoJc2luZ2xlIGdsb2JhbCBzdGFjayByYXRoZXIgdGhhbiBwZXItYmxvY2sgc3RhY2tzLgoJKHRyZWVfc3NhX2RvbWluYXRvcl9vcHRpbWl6ZSk6IEluaXRpYWxpemUgdGhlIENPTlNUX0FORF9DT1BJRVNfU1RBQ0suCgkodGhyZWFkX2Fjcm9zc19lZGdlKTogUmVtb3ZlIG5vdyB1bnVzZWQgcGFyYW1ldGVycy4KCShkb21fb3B0X2luaXRpYWxpemVfYmxvY2tfbG9jYWxfZGF0YSk6IE5vIGxvbmdlciB0ZXN0IHRoZSBibG9jawoJbG9jYWwgQ09OU1RfQU5EX0NPUElFUy4KCShkb21fb3B0X2luaXRpYWxpemVfYmxvY2spOiBQdXNoIGEgbWFya2VyIG9uIENPTlNUX0FORF9DT1BJRVNfU1RBQ0suCgoyMDA0LTA5LTE3ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTc1MDkKCSogdHJlZS1vcHRpbWl6ZS5jICh1cGRhdGVfaW5saW5lZF90b19wb2ludGVycyk6IE5ldyBmdW5jdGlvbi4KCSh0cmVlX3Jlc3Rfb2ZfY29tcGlsYXRpb24pOiBVc2UgaXQuCgoyMDA0LTA5LTE3ICBEZXZhbmcgUGF0ZWwgIDxkcGF0ZWxAYXBwbGUuY29tPgoKCSogZGJ4b3V0LmMgKGdldF9sYW5nX251bWJlcik6IE5ldy4KCShkYnhvdXRfaW5pdCk6IEluY2x1ZGUgbGFuZyBudW1iZXIgaW4gTl9TTyAgc3RhYi4KCSogZGJ4b3V0LmggKE5fU09fQVMsIE5fU09fQywgTl9TT19BTlNJX0MsIE5fU09fQ0MsIE5fU09fRk9SVFJBTiwKCU5fU09fUEFTQ0FMLCBOX1NPX0ZPUlRSQU45MCwgTl9TT19PQkpDLCBOX1NPX09CSkNQTFVTKTogTmV3ICNkZWZpbmUuCgoyMDA0LTA5LTE3ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNzI3MwoJKiB0cmVlLXNzYS5jIChyZXBsYWNlX2ltbWVkaWF0ZV91c2VzKTogQ2FsbCBmb2xkX3N0bXQgaWYgdGhlCglyZXBsYWNlbWVudCBpcyBhIGNvbnN0YW50LgoKMjAwNC0wOS0xNyAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBjLXRyZWUuaCAoZW51bSBjX3R5cGVzcGVjX2tleXdvcmQpOiBOZXcuCgkoc3RydWN0IGNfZGVjbHNwZWNzKTogQWRqdXN0IGRlc2NyaXB0aW9uIG9mICJ0eXBlIi4gIFJlbW92ZQoJc3BlY2JpdHMsIGV4cGxpY2l0X2ludF9wIGFuZCBleHBsaWNpdF9jaGFyX3AuICBSZW5hbWUKCXR5cGVkZWZfc2lnbmVkX3AgdG8gZXhwbGljaXRfc2lnbmVkX3AuICBBZGQgZGVmYXVsdF9pbnRfcCwgbG9uZ19wLAoJc2hvcnRfcCwgc2lnbmVkX3AsIHVuc2lnbmVkX3AgYW5kIGNvbXBsZXhfcC4KCShmaW5pc2hfZGVjbHNwZWNzKTogTmV3LgoJKiBjLXBhcnNlLmluIChkYXRhZGVmLCBkYXRhZGVjbCwgc2V0c3BlY3MsIGRlY2wsIGNvbXBvbmVudF9kZWNsLAoJdHlwZW5hbWUpOiBDYWxsIGZpbmlzaF9kZWNsc3BlY3MuCgkqIGMtZGVjbC5jIChmaW5pc2hfZGVjbHNwZWNzKTogTmV3LgoJKGRlY2xzcGVjc19hZGRfdHlwZSk6IENoZWNrIGZvciBjb21iaW5hdGlvbnMgd2hpY2ggY2Fubm90IG9jY3VyIGluCgl2YWxpZCBzcGVjaWZpZXIgbGlzdHMuICBVcGRhdGUgY29tbWVudHMuCgkoc2hhZG93X3RhZ193YXJuZWQpOiBSZW1vdmUgY2hlY2tzIGRvbmUgaW4gZmluaXNoX2RlY2xzcGVjcy4KCURvbid0IHJlcG9ydCB1c2VsZXNzIHR5cGUgbmFtZSBpZiB0eXBlIGRlZmF1bHRlZCB0byBpbnQuCgkoZ3Jva2RlY2xhcmF0b3IpOiBSZW1vdmUgY2hlY2tzIGFuZCBhY3Rpb25zIGRvbmUgaW4KCWZpbmlzaF9kZWNsc3BlY3MuICBEb24ndCBhbGxvdyBmb3IgdHlwZSBiZWluZyBOVUxMLiAgVXBkYXRlIGZvcgoJZGF0YXN0cnVjdHVyZXMgY2hhbmdlcy4gIEluaXRpYWxpemUgZGVjbF9hdHRyLgoJKGJ1aWxkX251bGxfZGVjbHNwZWNzLCBxdWFsc19mcm9tX2RlY2xzcGVjcyk6IFVwZGF0ZSBmb3IKCWRhdGFzdHJ1Y3R1cmVzIGNoYW5nZXMuCgoyMDA0LTA5LTE3ICBTeWx2YWluIFBpb24gIDxTeWx2YWluLlBpb25Ac29waGlhLmlucmlhLmZyPgoKCSogZG9jL2V4dGVuZC50ZXhpOiBGaXggZHVwbGljYXRlZCB3b3JkLgoKMjAwNC0wOS0xNyAgVG9vbiBNb2VuZSAgPHRvb25AbW9lbmUuaW5kaXYubmx1dWcubmw+CgoJKiBkb2MvaW52b2tlLnRleGk6IFJlbW92ZSBzdHJheSBleHBsYW5hdGlvbiBvbgoJLWZyZWR1Y2UtYWxsLWdpdnMgYW5kIC1mbW92ZS1hbGwtbW92YWJsZXMuCgoyMDA0LTA5LTE3ICBKYW1lcyBNb3JyaXNvbiAgPHBoeXRob25AZ2NjLmdudS5vcmc+CgoJKiBkb2MvY2ZnLnRleGk6IFVzZSBAc21hbGxleGFtcGxlLgoJKiBkb2MvbWQudGV4aTogTGlrZXdpc2UuCgkqIGRvYy90cmVlLXNzYS50ZXhpOiBMaWtld2lzZS4KCSogZG9jL2V4dGVuZC50ZXhpOiBMaWtld2lzZS4gIFVzZSBAcnt9IGluIGNvbW1lbnRzLgoJKiBkb2MvdHJvdWJsZS50ZXhpOiBVc2UgQHJ7fSBpbiBjb21tZW50cy4KCjIwMDQtMDktMTcgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGJpdHJhbmdlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAoZ2NjX2N2X2dsZF92ZXJzaW9uKTogSGFuZGxlIHdoaXRlc3BhY2UgYmVmb3JlCgkiVkVSU0lPTj0iLgoJKiBhY2xvY2FsLm00IChfZ2NjX0NPTVBVVEVfR0FTX1ZFUlNJT04pOiBEaXR0by4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNC0wOS0xNyAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJKiBzaC5jIChzaF9naW1wbGlmeV92YV9hcmdfZXhwcik6IERvbid0IGNhbGwgcGFzc19ieV9yZWZlcmVuY2UuCgkoc2hfcGFzc19ieV9yZWZlcmVuY2UpOiBXb3JrIGFyb3VuZCBzdGRfZ2ltcGxpZnlfdmFfYXJnX2V4cHIgYnVnLgoJKiB0LXNoIChNVUxUSUxJQl9DUFVTKTogcy9NTF9tL01MX3NoL2cgLgoJKiB0LXNoNjQgKE1VTFRJTElCX0NQVV9ESVJTKTogTGlrZXdpc2UuICBNYXRjaCBkYXNoZXMgYW5kIHRyYWlsaW5nCglzbGFzaGVzIGluIHN1YnN0aXR1dGlvbnMuCgkoTVVMVElMSUJfRElSTkFNRVMpOiBSZW1vdmUgZGVmdW5jdCByZW1vdmFsIG9mIC9tZWRpYTMyLgoKMjAwNC0wOS0xNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGJhc2ljLWJsb2NrLmgsIGMtZGVjbC5jLCBjLXBhcnNlLmluLCBjZ3JhcGh1bml0LmMsIGRkZy5jLAoJZ2ltcGxpZnkuYywgbGFtYmRhLWNvZGUuYywgb3B0YWJzLmMsIHByZWRpY3QuYywKCXRyZWUtc2NhbGFyLWV2b2x1dGlvbi5jLCB0cmVlLXNyYS5jLCB0cmVlLXNzYS1sb29wLWNoLmMsCgl0cmVlLXNzYS5jLCB2ZWMuaDogRml4IGNvbW1lbnQgdHlwb3MuICBGb2xsb3cgc3BlbGxpbmcKCWNvbnZlbnRpb25zLgoKMjAwNC0wOS0xNyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRvYy9jb21wYXQudGV4aSwgZG9jL2NwcC50ZXhpLCBkb2MvY3Bwb3B0cy50ZXhpLAoJZG9jL2V4dGVuZC50ZXhpLCBkb2MvaW5zdGFsbC50ZXhpLCBkb2MvaW52b2tlLnRleGksCglkb2Mvc291cmNlYnVpbGQudGV4aSwgZG9jL3RtLnRleGksIGRvYy90cmVlLXNzYS50ZXhpLAoJZG9jL3Ryb3VibGUudGV4aTogVXNlIEBvcHRpb24gYXJvdW5kIG9wdGlvbnMuCgoyMDA0LTA5LTE3ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5pbiAoZ2VuLXByb3Rvcy5vKTogRGVwZW5kIG9uIGVycm9ycy5oLgoKMjAwNC0wOS0xNyAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE3NTEzCgkqIGNmZ2V4cGFuZC5jIChjb25zdHJ1Y3RfaW5pdF9ibG9jayk6IENsZWFyIEVER0VfRVhFQ1VUQUJMRQoJZm9yIHN1Y2Nlc3NvcnMgb2YgdGhlIGVudHJ5IGJsb2NrLgoKMjAwNC0wOS0xNyAgVXJvcyBCaXpqYWsgIDx1cm9zQGtzcy1sb2thLnNpPgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMTUxODcKCSogaWZjdnQuYyAobm9jZV90cnlfY21vdmVfYXJpdGgpOiBFeGl0IGVhcmx5IGlmIHRvdGFsCglpbnNuX3J0eF9jb3N0IG9mIGJvdGggYnJhbmNoZXMgPiBCUkFOQ0hfQ09TVAoKMjAwNC0wOS0xNiAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTc1MjgKCSogdHJlZS1zc2EtYWxpYXMuYyAoY29tcHV0ZV9mbG93X2luc2Vuc2l0aXZlX2FsaWFzaW5nKTogRG8gbm90CgllcmFzZSB0aGUgbWF5LWFsaWFzIHNldCBmb3IgYSB0YWcgd2hlbiBtZXJnaW5nIGl0IHdpdGgKCWFub3RoZXIuCgoyMDA0LTA5LTE2ICBLYXogS29qaW1hICA8a2tvamltYUBnY2MuZ251Lm9yZz4KCgkqIGNvbmZpZy9zaC9zaC5tZCAoY2FsbCk6IEV4dGVuZCAzMi1iaXQgYWRkcmVzc2VzIHRvIERJbW9kZQoJZm9yIDMyLWJpdCBUQVJHRVRfU0hNRURJQS4KCShjYWxsX3ZhbHVlKTogTGlrZXdpc2UuCgoyMDA0LTA5LTE2ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGFkZF9jYWxsX2Nsb2JiZXJfb3BzKTogTWFrZSByZWFkLW9ubHkKCXRlc3QgYXBwbHkgb25seSB0byBUUkVFX1NUQVRJQyBhbmQgREVDTF9FWFRFUk5BTC4KCjIwMDQtMDktMTYgIFpkZW5layBEdm9yYWsgIDxyYWtkdmVyQGF0cmV5Lmthcmxpbi5tZmYuY3VuaS5jej4KCgkqIE1ha2VmaWxlLmluICh0cmVlLWNmZy5vKTogQWRkIENGR0xBWU9VVF9IIGRlcGVuZGVuY3kuCgkqIGJhc2ljLWJsb2NrLmggKGdldF9kb21pbmF0ZWRfYnlfcmVnaW9uKTogRGVjbGFyZS4KCSogZG9taW5hbmNlLmMgKGdldF9kb21pbmF0ZWRfYnlfcmVnaW9uKTogTmV3IGZ1bmN0aW9uLgoJKiB0cmVlLWNmZy5jOiBJbmNsdWRlIGNmZ2xheW91dC5oLgoJKHRyZWVfZHVwbGljYXRlX2JiKTogRHVwbGljYXRlIGFsc28gcGhpIG5vZGVzLgoJKHN0cnVjdCBzc2FfbmFtZV9tYXBfZW50cnkpOiBOZXcgdHlwZS4KCShhZGRfcGhpX2FyZ3NfYWZ0ZXJfY29weV9iYiwgYWRkX3BoaV9hcmdzX2FmdGVyX2NvcHksCglzc2FfbmFtZV9tYXBfZW50cnlfaGFzaCwgc3NhX25hbWVfbWFwX2VudHJ5X2VxLAoJYWxsb2NhdGVfc3NhX25hbWVzLCByZXdyaXRlX3RvX25ld19zc2FfbmFtZXNfZGVmLAoJcmV3cml0ZV90b19uZXdfc3NhX25hbWVzX3VzZSwgcmV3cml0ZV90b19uZXdfc3NhX25hbWVzX2JiLAoJcmV3cml0ZV90b19uZXdfc3NhX25hbWVzLCB0cmVlX2R1cGxpY2F0ZV9zZXNlX3JlZ2lvbik6IE5ldyBmdW5jdGlvbnMuCgkqIHRyZWUtZmxvdy5oICh0cmVlX2R1cGxpY2F0ZV9zZXNlX3JlZ2lvbiwgYWRkX3BoaV9hcmdzX2FmdGVyX2NvcHlfYmIsCglhZGRfcGhpX2FyZ3NfYWZ0ZXJfY29weSwgcmV3cml0ZV90b19uZXdfc3NhX25hbWVzX2JiLAoJcmV3cml0ZV90b19uZXdfc3NhX25hbWVzLCBhbGxvY2F0ZV9zc2FfbmFtZXMsCglyZXdyaXRlX2ludG9fbG9vcF9jbG9zZWRfc3NhLCB2ZXJpZnlfbG9vcF9jbG9zZWRfc3NhKTogRGVjbGFyZS4KCSogdHJlZS1zc2EtbG9vcC1jaC5jIChkdXBsaWNhdGVfYmxvY2tzKTogUmVtb3ZlZC4KCShjb3B5X2xvb3BfaGVhZGVycyk6IFVzZSB0cmVlX2R1cGxpY2F0ZV9zZXNlX3JlZ2lvbi4KCjIwMDQtMDktMTYgIEZyYW5rIENoLiBFaWdsZXIgIDxmY2hlQHJlZGhhdC5jb20+CgoJKiBwcm9maWxlLmMgKGJyYW5jaF9wcm9iKTogUmVzdG9yZSBzdXBwb3J0IGZvciBVU0VfTUFQUEVEX0xPQ0FUSU9OLgoKMjAwNC0wOS0xNiBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogdHJlZS1pbnRvLXNzYS5jIChibG9ja19kZWZzX3N0YWNrKTogTmV3IHRvcGxldmVsIHZhcnJheS4KCShyZXdyaXRlX2Jsb2NrX2RhdGEpOiBSZW1vdmUsIG5vIGxvbmdlciB1c2VkLgoJKHJld3JpdGVfaW5pdGlhbGl6ZV9ibG9ja19sb2NhbF9kYXRhKTogUmVtb3ZlLCBubyBsb25nZXIgdXNlZC4KCShyZXdyaXRlX2luaXRpYWxpemVfYmxvY2spOiBNYXJrIHBhcmFtZXRlcnMgYXMgdW51c2VkIGFzIG5lZWRlZC4KCUNoYW5nZSByZWZlcmVuY2VzIHRvIHRoZSBibG9jayBsb2NhbCBibG9ja19kZWZzIHRvIGJlIGJsb2NrX2RlZnNfc3RhY2suCglQdXNoIGEgbWFya2VyIG9udG8gdGhlIGJsb2NrX2RlZnNfc3RhY2suCgkoc3NhX3Jld3JpdGVfaW5pdGlhbGl6ZV9ibG9jayk6IFNpbWlsYXJseS4KCShyZXdyaXRlX3N0bXQsIHNzYV9yZXdyaXRlX3N0bXQpOiBTaW1pbGFybHkuCgkoc3NhX3JlZ2lzdGVyX25ld19kZWYpOiBObyBsb25nZXIgbmVlZHMgdmFycmF5IGFyZ3VtZW50LiAgVXNlCglibG9ja19kZWZzX3N0YWNrIGluc3RlYWQuICBObyBsb25nZXIgaGFuZGxlIHBvc3NpYmx5IG51bGwgYmxvY2tfZGVmcwoJdmFycmF5LiAgUmV2ZXJzZSBvcmRlciBvZiBpdGVtcyB3ZSBwdXNoIG9uIHRoZSBzdGFjayB0byBtYWtlIGl0CgllYXNpZXIgdG8gaWRlbnRpZnkgb3VyIG1hcmtlci4KCShyZWdpc3Rlcl9uZXdfZGVmKTogTm8gbG9uZ2VyIGhhbmRsZSBwb3NzaWJseSBudWxsIGJsb2NrX2RlZnMKCXZhcnJheS4KCShyZXdyaXRlX2ZpbmFsaXplX2Jsb2NrKTogUmV2YW1wIHRvIGxvb2sgZm9yIG1hcmtlcnMgaW4gdGhlIGdsb2JhbAoJYmxvY2tfZGVmc19zdGFjayB2YXJyYXkgcmF0aGVyIHRoYW4gd2lwaW5nIGEgYmxvY2sgbG9jYWwgdmFycmF5LgoJTWFyayBhcmd1bWVudHMgYXMgdW51c2VkIGFzIG5lZWRlZC4KCShzc2FfcmV3cml0ZV9maW5hbGl6ZV9ibG9jayk6IFNpbWlsYXJseS4KCShyZXdyaXRlX2ludG9fc3NhKTogVXBkYXRlIGluaXRpYWxpemF0aW9uIG9mIGRvbSB3YWxrZXIgc3RydWN0dXJlCgl0byByZWZsZWN0IHRoYXQgd2UgZG9uJ3QgbmVlZCBibG9jayBsb2NhbCBkYXRhIGFueW1vcmUuICBJbml0aWFsaXplCgl0aGUgYmxvY2tfZGVmc19zdGFjayB2YXJyYXkuCgkocmV3cml0ZV9zc2FfaW50b19zc2EpOiBTaW1pbGFybHkuCgkqIHRyZWUtc3NhLWRvbS5jIChibG9ja19kZWZzX3N0YWNrKTogTmV3IHRvcGxldmVsIHZhcnJheS4KCShzdHJ1Y3QgZG9tX3dhbGtfZGF0YSk6IEtpbGwgYmxvY2tfZGVmcyBmaWVsZC4KCSh0cmVlX3NzYV9kb21pbmF0b3Jfb3B0aW1pemUpOiBJbml0aWFsaXplIGJsb2NrX2RlZnNfc3RhY2suCgkodGhyZWFkX2Fjcm9zc19lZGdlKTogVXNlIHRoZSBnbG9iYWwgYmxvY2tfZGVmc19zdGFjayBpbnN0ZWFkIG9mCgl0aGUgb2xkIGJsb2NrX2RlZnMgdmFycmF5LgoJKGRvbV9vcHRfaW5pdGlhbGl6ZV9ibG9ja19sb2NhbF9kYXRhKTogVXBkYXRlIG5vdyB0aGF0IHdlIGRvbid0IGhhdmUKCWJsb2NrX2RlZnMgZmllbGQgdG8gY2hlY2sgYW55bW9yZS4KCShkb21fb3B0X2luaXRpYWxpemVfYmxvY2spOiBQdXNoIGEgbWFya2VyIG9udG8gYmxvY2tfZGVmc19zdGFjay4KCShyZXN0b3JlX2N1cnJkZWZzX3RvX29yaWdpbmFsX3ZhbHVlKTogVXNlIHRoZSBuZXcgYmxvY2tfZGVmc19zdGFjawoJaW5zdGVhZCBvZiBhIGJsb2NrIGxvY2FsIHZhcnJheS4KCShkb21fb3B0X2ZpbmFsaXplX2Jsb2NrKTogU2ltaWxhcmx5LgoJKHJlY29yZF9lcXVpdmFsZW5jc19mcm9tX3BoaXMpOiBTaW1pbGFybHkuCgkob3B0aW1pemVfc3RtdCwgcmVnaXN0ZXJfZGVmaW5pdGlvbnNfZm9yX3N0bXQpOiBTaW1pbGFybHkuCgoyMDA0LTA5LTE2ICBBbmRyZXcgTWFjTGVvZCAgPGFtYWNsZW9kQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTc1MTcKCSogdHJlZS1zc2EtY29weXJlbmFtZS5jIChjb3B5X3JlbmFtZV9wYXJ0aXRpb25fY29hbGVzY2UpOiBEb24ndAoJY29hbGVzY2Ugc2FtZS1yb290IHZhcmlhYmxlcyB3aXRob3V0IGNoZWNraW5nIGZvciBhYm5vcm1hbCBQSEkgdXNhZ2UuCgoyMDA0LTA5LTE2ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIGNmZ2xvb3AuaCAoZHVwbGljYXRlX2xvb3ApOiAgQWRkIHByb3RvdHlwZS4KCSogY2ZnbG9vcG1hbmlwLmMgKGR1cGxpY2F0ZV9sb29wKTogTWFrZSBub24tc3RhdGljLgoJKiBsYW1iZGEtY29kZS5jIChwZXJmZWN0X25lc3RpZnkpOiBGYWN0b3Igb3V0IHRlc3Qgd2hldGhlcgoJd2UgY2FuIGhhbmRsZSB0aGlzIGxvb3AgaW50byBzZXBhcmF0ZSBmdW5jdGlvbi4KCUNhbGwgaXQuCgkoY2FuX2NvbnZlcnRfdG9fcGVyZmVjdF9uZXN0KTogTmV3IGZ1bmN0aW9uLgoJKHJlcGxhY2VfdXNlc19vZl94X3dpdGhfeSk6IEFkZCBtb2RpZnlfc3RtdCBjYWxsLgoJKiB0cmVlLWxvb3AtbGluZWFyLmMgKGxpbmVhcl90cmFuc2Zvcm1fbG9vcHMpOiBDYWxsCglyZXdyaXRlX2ludG9fbG9vcF9jbG9zZWRfc3NhIGFuZCBmcmVlX2RmLgoKMjAwNC0wOS0xNiAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiBsYW1iZGEtY29kZS5jIChpbnZhcmlhbnRfaW5fbG9vcCk6IGlzX2dpbXBsZV9taW5faW52YXJpYW50IGlzCglsb29wIGludmFyaWFudCBhcyB3ZWxsLgoJKHBlcmZlY3RfbmVzdGlmeSk6IG5ldyBmdW5jdGlvbi4KCShnY2NfbG9vcF90b19sYW1iZGFfbG9vcCk6IE5ldyBwYXJhbWV0ZXJzIHRvIHRyYWNrIGxvd2VyIGJvdW5kcywKCXVwcGVyIGJvdW5kcywgYW5kIHN0ZXBzLgoJU2V0IG91dGVyaW5kdWN0aW9udmFyIHByb3Blcmx5LgoJKGdjY19sb29wbmVzdF90b19sYW1iZGFfbG9vcG5lc3QpOiBBZGQgbG9vcHMgYW5kIG5lZWRfcGVyZmVjdAoJcGFyYW1ldGVycy4KCVJldHVybiBOVUxMIGlmIHdlIG5lZWQgYSBwZXJmZWN0IGxvb3AgYW5kIGNhbid0IG1ha2Ugb25lLgoJKGxhbWJkYV9sb29wbmVzdF90b19nY2NfbG9vcG5lc3QpOiBDb3JyZWN0IGFsZ29yaXRobS4KCShub3RfaW50ZXJlc3Rpbmdfc3RtdCk6IE5ldyBmdW5jdGlvbi4KCShwaGlfbG9vcF9lZGdlX3VzZXNfZGVmKTogRGl0dG8uCgkoc3RtdF91c2VzX3BoaV9yZXN1bHQpOiBEaXR0by4KCShzdG10X2lzX2J1bXBlcl9mb3JfbG9vcCk6IERpdHRvLgoJKHBlcmZlY3RfbmVzdF9wKTogRGl0dG8uCgkobmVzdGlmeV91cGRhdGVfcGVuZGluZ19zdG10cyk6IERpdHRvLgoJKHJlcGxhY2VfdXNlc19vZl94X3dpdGhfeSk6IERpdHRvLgoJKHN0bXRfdXNlc19vcCk6IERpdHRvLgoJKHBlcmZlY3RfbmVzdGlmeSk6IERpdHRvLgoJKiBsYW1iZGEtbWF0LmMgKGxhbWJkYV9tYXRyaXhfaWRfcCk6IE5ldyBmdW5jdGlvbi4KCSogbGFtYmRhLXRyYW5zLmMgKGxhbWJkYV90cmFuc19tYXRyaXhfaWRfcCk6IERpdHRvLgoJKiBsYW1iZGEuaDogVXBkYXRlIHByb3RvdHlwZXMuCgkqIHRyZWUtbG9vcC1saW5lYXIgKGxpbmVhcl90cmFuc2Zvcm1fbG9vcCk6IFVzZSBuZXcKCXBlcmZlY3RfbmVzdF9wLiBEZXRlY3QgYW5kIGlnbm9yZSBpZGVudGl0eSB0cmFuc2Zvcm0uCgkqIHRyZWUtc3NhLWxvb3AuYyAocGFzc19saW5lYXJfdHJhbnNmb3JtKTogVXNlIFRPRE9fd3JpdGVfbG9vcF9jbG9zZWQuCgoyMDA0LTA5LTE2ICBTZWJhc3RpYW4gUG9wICA8cG9wQGNyaS5lbnNtcC5mcj4KCgkqIHRyZWUtbG9vcC1saW5lYXIuYyAoZ2F0aGVyX2ludGVyY2hhbmdlX3N0YXRzKTogQWRkIG1vcmUgY29tbWVudHMuCglHYXRoZXIgYWxzbyBzdHJpZGVzIG9mIGFjY2Vzc2VkIGRhdGEuICBQYXNzIGluIHRoZSBkYXRhIHJlZmVyZW5jZXMKCWFycmF5LgoJKHRyeV9pbnRlcmNoYW5nZV9sb29wcyk6IEFkZCBhIG5ldyBoZXVyaXN0aWMgZm9yIGhhbmRsaW5nIHRoZSB0ZW1wb3JhbAoJbG9jYWxpdHkuICBQYXNzIGluIHRoZSBkYXRhIHJlZmVyZW5jZXMgYXJyYXkuCgkobGluZWFyX3RyYW5zZm9ybV9sb29wcyk6IFBhc3MgdGhlIGRhdGEgcmVmZXJlbmNlcyBhcnJheSB0bwoJdHJ5X2ludGVyY2hhbmdlX2xvb3BzLgoKMjAwNC0wOS0xNiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRvYy9pbnZva2UudGV4aTogRml4IHR5cG9zLiAgRm9sbG93IHNwZWxsaW5nIGNvbnZlbnRpb25zLgoKMjAwNC0wOS0xNiAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRvYy9jLXRyZWUudGV4aSAoQ2xhc3Nlcyk6IFJlbW92ZSBpbmRleCBlbnRyaWVzIGZvcgoJVFJFRV9WSUFfe1BVQkxJQyxQUk9URUNURUQsUFJJVkFURX0uCgoyMDA0LTA5LTE2ICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJKiBmb2xkLWNvbnN0LmMgKGZvbGQpOiBGb2xkIGRpZmZlcmVuY2Ugb2YgYWRkcmVzc2VzLgoJKHB0cl9kaWZmZXJlbmNlX2NvbnN0KTogTW92ZWQgZnJvbSB0cmVlLXNzYS1sb29wLWl2b3B0cywgYmFzZWQgb24KCWdldF9pbm5lcl9yZWZlcmVuY2UuCgkqIHRyZWUtc3NhLWxvb3AtaXZvcHRzLmMgKHBlZWxfYWRkcmVzcyk6IFJlbW92ZWQuCgkocHRyX2RpZmZlcmVuY2VfY29uc3QpOiBNb3ZlZCB0byBmb2xkLWNvbnN0LmMuCgkoc3BsaXRfYWRkcmVzc19jb3N0KTogVXNlIGdldF9pbm5lcl9yZWZlcmVuY2UgaW5zdGVhZCBvZiBwZWVsX2FkZHJlc3MuCgkocHRyX2RpZmZlcmVuY2VfY29zdCk6IENoYW5nZSB0eXBlIG9mIGRpZmYgdG8gSE9TVF9XSURFX0lOVC4KCSogdHJlZS5oIChwdHJfZGlmZmVyZW5jZV9jb25zdCk6IEV4cG9ydC4KCgkqIHRyZWUtc3NhLWxvb3AtaXZvcHRzLmMgKGR1bXBfaXYsIGR1bXBfdXNlLCBkdW1wX2NhbmQpOiBBZGQgaW5kdWN0aW9uCgl2YXJpYWJsZSB0eXBlIHRvIHRoZSBkdW1wLiAgRml4IGluZGVudGF0aW9uLgoJKGlkeF9maW5kX3N0ZXApOiBIYW5kbGUgbm9uY29uc3RhbnQgYXJyYXlfcmVmX2VsZW1lbnRfc2l6ZSBhbmQKCWFycmF5X3JlZl9sb3dfYm91bmQuCgkoaWR4X3JlY29yZF91c2UpOiBIYW5kbGUgYXJyYXlfcmVmX2VsZW1lbnRfc2l6ZSBhbmQKCWFycmF5X3JlZl9sb3dfYm91bmQuCgkoZmluZF9pbnRlcmVzdGluZ191c2VzX3N0bXQpOiBIYW5kbGUgbWVtb3J5ID0gbm9udHJpdmlhbF9leHByZXNzaW9uCglzdGF0ZW1lbnRzIGNvcnJlY3RseS4KCShnZXRfY29tcHV0YXRpb25fYXQsIGl2X3ZhbHVlKTogRG8gbm90IHVuc2hhcmUgZXhwcmVzc2lvbnMgaGVyZS4KCShyZXdyaXRlX3VzZV9vdXRlcik6IFVuc2hhcmUgdGhlIGV4cHJlc3Npb24gYmVmb3JlIGl0IGlzIGVtaXR0ZWQKCXRvIGNvZGUuCgkqIHRyZWUtc3NhLWxvb3Atbml0ZXIuYyAodW5zaWduZWRfdHlwZV9mb3IsIHNpZ25lZF90eXBlX2Zvcik6CglNb3ZlZCB0byB0cmVlLmMuCgkqIHRyZWUuYyAodW5zaWduZWRfdHlwZV9mb3IsIHNpZ25lZF90eXBlX2Zvcik6IE1vdmVkIGZyb20KCXRyZWUtc3NhLWxvb3Atbml0ZXIuYy4gIFVzZSBsYW5naG9va3MuCgkqIHRyZWUuaCAoc2lnbmVkX3R5cGVfZm9yKTogRXhwb3J0LgoKMjAwNC0wOS0xNiAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3hjb2ZmX2FzbV9uYW1lZF9zZWN0aW9uKTogVXBkYXRlCglwcm90b3R5cGUuCgoyMDA0LTA5LTE1ICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiB0YXJnZXQvMTE1NzIKCSogYy1pbmNwYXRoLmggKHRhcmdldF9jX2luY3BhdGhfcyk6IEFkZCBleHRyYV9wcmVfaW5jbHVkZXMuCglBZGQgdHdvIHBhcmFtZXRlcnMgdG8gZXh0cmFfaW5jbHVkZXMuCgkoQ19JTkNQQVRIX0lOSVQpOiBSZW1vdmUuCgkqIGMtaW5jcGF0aC5jIChyZWdpc3Rlcl9pbmNsdWRlX2NoYWlucyk6IENhbGwgZXh0cmFfcHJlX2luY2x1ZGVzCgliZWZvcmUgYWRkaW5nIHRoZSBzdGFuZGFyZCBpbmNsdWRlIGRpcmVjdG9yeS4KCVVwZGF0ZSBjYWxsIHRvIGV4dHJhX2luY2x1ZGVzLgoJKCFkZWZpbmVkIFRBUkdFVF9FWFRSQV9JTkNMVURFUyk6IFVwZGF0ZQoJaG9va192b2lkX2NoYXJwdHJfY2hhcnB0cl9pbnQgYW5kIGFkZCAhZGVmaW5lCglUQVJHRVRfRVhUUkFfUFJFX0lOQ0xVREVTLgoJKCFkZWZpbmUgVEFSR0VUX0VYVFJBX0lOQ0xVREVTKTogRGVmaW5lIGFzCglob29rX3ZvaWRfY2hhcnB0cl9jaGFycHRyX2ludC4KCSghZGVmaW5lIFRBUkdFVF9FWFRSQV9QUkVfSU5DTFVERVMpOiBMaWtld2lzZS4KCSh0YXJnZXRfY19pbmNwYXRoKTogQWx3YXlzIGRlY2xhcmUuCgkqIGZpeGluY2x1ZGUuYyAoZGVmaW5lZCBUQVJHRVRfRVhUUkFfSU5DTFVERVMpOiBEZWNsYXJlIGEKCWVtcHR5IGZ1bmN0aW9uLgoJKGRlZmluZSBUQVJHRVRfRVhUUkFfUFJFX0lOQ0xVREVTKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9kYXJ3aW4uaDogKGRhcndpbl9yZWdpc3Rlcl9mcmFtZXdvcmtzKTogVXBkYXRlIGZvcgoJdGhlIHR3byBuZXcgcGFyYW1ldGVycy4KCShkYXJ3aW5fcmVnaXN0ZXJfb2JqY19pbmNsdWRlcyk6IEFkZCBwcm90b3R5cGUuCgkoVEFSR0VUX0VYVFJBX1BSRV9JTkNMVURFUyk6IERlZmluZS4KCSogY29uZmlnL2Rhcndpbi1jLmMgKGRhcndpbl9yZWdpc3Rlcl9vYmpjX2luY2x1ZGVzKTogTmV3IGZ1bmN0aW9uLgoJKGRhcndpbl9yZWdpc3Rlcl9mcmFtZXdvcmtzKTogVXBkYXRlIGZvciB0aGUgdHdvIG5ldyBwYXJhbWV0ZXJzLgoJKHRhcmdldF9jX2luY3BhdGgpOiBSZW1vdmUuCgkqIGNvbmZpZy90LWRhcndpbiAoZGFyd2luLWMubyk6IEFkZCAkKFBSRVBST0NFU1NPUl9ERUZJTkVTKSB0bwoJdGhlIGNvbXBpbGUgbGluZS4KCSogZG9jL3RtLnRleGkgKFRBUkdFVF9FWFRSQV9JTkNMVURFUyk6IERvY3VtZW50IHRoZSB0d28gbmV3CglwYXJhbWV0ZXJzLgoJKFRBUkdFVF9FWFRSQV9QUkVfSU5DTFVERVMpOiBEb2N1bWVudC4KCgkqIGdjYy5jIChzcGVjX2Z1bmN0aW9uKTogQWRkIHJlcGxhY2Utb3V0ZmlsZS4KCShyZXBsYWNlX291dGZpbGVfc3BlY19mdW5jdGlvbik6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL2Rhcndpbi5oIChMSU5LX1NQRUMpOiBBZGQgcmVwbGFjZQoJLWxvYmpjIHdpdGggLWxvYmpjLWdudSBpZiAtZmdudS1ydW50aW1lIGlzCglzdXBwbGllZC4KCSogaW52b2tlLnRleGkgKHJlcGxhY2Utb3V0ZmlsZSk6IERvY3VtZW50LgoKMjAwNC0wOS0xMyAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogcHJlZGljdC5jIChleHByX2V4cGVjdGVkX3ZhbHVlLCBzdHJpcF9idWlsdGluX2V4cGVjdCk6IE5ldyBmdW5jdGlvbi4KCSh0cmVlX3ByZWRpY3RfYnlfb3Bjb2RlKTogVXNlIGl0LgoJKHRyZWVfZXN0aW1hdGVfcHJvYmFiaWxpdHkpOiBBZGQsIGZvciBub3cgZGlzYWJsZWQsCglzdHJpcF9idWlsdGluX2V4cGVjdCBjYWxsLgoKMjAwNC0wOS0xNSAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCVBSIHRhcmdldC8xNzQ1NQoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfZnVuY3Rpb25fb2tfZm9yX3NpYmNhbGwpOiBSZXR1cm4gZmFsc2UKCWlmIGN1cnJlbnRfZnVuY3Rpb25fZGVjbCBpcyBhIHNpYmNhbGwuCgoyMDA0LTA5LTE1ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogdmFyYXNtLmMgKGRlZmF1bHRfZnVuY3Rpb25fcmRvZGF0YV9zZWN0aW9uKTogTWFrZSBzdXJlIHRvIHBhc3MKCWFsb25nIGEgZGVjbCBmb3IgYSBsaW5rLW9uY2Ugc2VjdGlvbi4KCjIwMDQtMDktMTUgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChhZGRfY2FsbF9jbG9iYmVyX29wcyk6IEZpeCB1bnVzZWQgdmFyaWFibGUKCXdhcm5pbmcgd2l0aCBjb2RlIGRpc2FibGUuICBGaXggZm9ybWF0dGluZy4KCjIwMDQtMDktMTUgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIE1ha2VmaWxlLmluICh0cmVlLXNzYS1kb20ubyk6IERlcGVuZCBvbiB0cmVlLXNzYS1wcm9wYWdhdGUuaC4KCSogdHJlZS1zc2EtZG9tLmMgKGNwcm9wX2ludG9fc3RtdCk6IFJlY29tcHV0ZSBUUkVFX0lOVkFSSUFOVAoJYWZ0ZXIgcHJvcGFnYXRpbmcgaW50byBhbiBBRERSX0VYUFIuCgoyMDA0LTA5LTE1ICBBbmRyZXcgUGluc2tpICA8YXBpbnNraUBhcHBsZS5jb20+CgoJUFIgcnRsLW9wdC8xNzQyNwoJKiBnY3NlLmMgKHByb2Nlc3NfaW5zZXJ0X2luc24pOiBpbnNuX2ludmFsaWRfcCBoYXMgc2lkZSBlZmZlY3RzLgoJTW92ZSBpdCBvdXQgb2YgZ2NjX2Fzc2VydC4KCjIwMDQtMDktMTUgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYXR0cmlicy5jLCBidWlsdGlucy5jLCBjLWZvcm1hdC5jLCBjLXBjaC5jLCBjb3ZlcmFnZS5jLAoJZXhjZXB0LmMsIGZvbGQtY29uc3QuYywgZnVuY3Rpb24uYywgbGFuZ2hvb2tzLmMsIHBhcmFtcy5jLAoJcmVsb2FkLmMsIHJlbG9hZDEuYywgc3RtdC5jLCBzdG9yLWxheW91dC5jLCB0b3BsZXYuYywgdHJlZS1jZmcuYywKCXRyZWUtZHVtcC5jLCB0cmVlLW11ZGZsYXAuYywgdHJlZS5jLCB2YXJhc20uYzogVXNlICU8LCAlPiBhbmQgJXEKCWZvciBxdW90aW5nIGluIGRpYWdub3N0aWNzIGdvaW5nIHRocm91Z2ggcHJldHR5LXByaW50LmMuICBVc2UgJycKCWZvciBxdW90aW5nIGluIG90aGVyIGRpYWdub3N0aWMgdGV4dC4KCSogbGFuZ2hvb2tzLmM6IEluY2x1ZGUgaW50bC5oLiAgTWFyayB0ZXh0IGxvY2F0aW5nIGRpYWdub3N0aWNzIGZvcgoJdHJhbnNsYXRpb24uCgkqIE1ha2VmaWxlLmluIChsYW5naG9va3Mubyk6IFVwZGF0ZSBkZXBlbmRlbmNpZXMuCgkqIHByZXR0eS1wcmludC5oIChwcF9wcmludGYpOiBNYXJrIGFzIGFjY2VwdGluZyBHQ0MgZGlhZ25vc3RpYwoJZm9ybWF0cy4KCjIwMDQtMDktMTUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBDT01EQVQgc3VwcG9ydC4gIFJvYnVzdGlmeSBjaGVjayBmb3IKCVNIRl9NRVJHRSBzdXBwb3J0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGVkLgoJKiBjb25maWcuaW46IExpa2V3aXNlLgoJKiBsYW5naG9va3MtZGVmLmggKGxoZF9jb21kYXRfZ3JvdXApOiBOZXcgZnVuY3Rpb24uCgkoTEFOR19IT09LU19DT01EQVRfR1JPVVApOiBOZXcgbWFjcm8uCgkoTEFOR19IT09LU19ERUNMUyk6IFVzZSBpdC4KCSogbGFuZ2hvb2tzLmMgKGxoZF9jb21kYXRfZ3JvdXApOiBEZWZpbmUuCgkqIGxhbmdob29rcy5oIChsYW5nX2hvb2tzX2Zvcl9kZWNscyk6IEFkZCBjb21kYXRfZ3JvdXAuCgkqIG91dHB1dC5oIChuYW1lZF9zZWN0aW9uX2ZsYWdzKTogTWFrZSBpdCBhIG1hY3JvLgoJKG5hbWVkX3NlY3Rpb25fcmVhbCk6IE5ldyBmdW5jdGlvbi4KCShkZWZhdWx0X25vX25hbWVkX3NlY3Rpb24pOiBBZGQgZGVjbCBwYXJhbWV0ZXIuCgkoZGVmYXVsdF9lbGZfYXNtX25hbWVkX3NlY3Rpb24pOiBMaWtld2lzZS4KCShkZWZhdWx0X2NvZmZfYXNtX25hbWVkX3NlY3Rpb24pOiBMaWtld2lzZS4KCShkZWZhdWx0X3BlX2FzbV9uYW1lZF9zZWN0aW9uKTogTGlrZXdpc2UuCgkqIHRhcmdldC5oIChnY2NfdGFyZ2V0KTogQWRqdXN0IHR5cGUgb2YgbmFtZWRfc2VjdGlvbi4KCSogdmFyYXNtLmMgKG5hbWVkX3NlY3Rpb25fZmxhZ3MpOiBSZW5hbWUgdG8gbmFtZWRfc2VjdGlvbl9yZWFsLgoJQWRkIGRlY2wgcGFyYW1ldGVyLgoJKGRlZmF1bHRfbm9fbmFtZWRfc2VjdGlvbik6IEFkZCBkZWNsIHBhcmFtZXRlci4KCShkZWZhdWx0X2VsZl9hc21fbmFtZWRfc2VjdGlvbik6IFVzZSBDT01EQVQsIGlmIGF2YWlsYWJsZS4gIERlYWwKCXdpdGggdGhlIGNhc2UgdGhhdCBBU01fQ09NTUVOVF9TVEFSVCBpcyAiQCIuCgkoZGVmYXVsdF9jb2ZmX2FzbV9uYW1lZF9zZWN0aW9uKTogQWRkIGRlY2wgcGFyYW1ldGVyLgoJKGRlZmF1bHRfcGVfYXNtX25hbWVkX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL2FscGhhL2FscGhhLmMgKHZtc19hc21fbmFtZWRfc2VjdGlvbik6IEFkZCBkZWNsCglwYXJhbWV0ZXIuCgkodW5pY29zbWtfYXNtX25hbWVkX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL2FybS9hcm0uYyAoYXJtX2VsZl9hc21fbmFtZWRfc2VjdGlvbik6IFJlbW92ZS4KCSogY29uZmlnL2FybS9lbGYuaCAoVEFSR0VUX0FTTV9OQU1FRF9TRUNUSU9OKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9jNHgvYzR4LmMgKGM0eF9hc21fbmFtZWRfc2VjdGlvbik6IEFkZCBkZWNsIHBhcmFtZXRlci4KCSogY29uZmlnL2NyaXMvY3Jpcy1wcm90b3MuaCAoY3Jpc190YXJnZXRfYXNtX25hbWVkX3NlY3Rpb24pOgoJTGlrZXdpc2UuCgkqIGNvbmZpZy9jcmlzL2NyaXMuYyAoY3Jpc190YXJnZXRfYXNtX25hbWVkX3NlY3Rpb24pOgoJTGlrZXdpc2UuCgkqIGNvbmZpZy9kYXJ3aW4vZGFyd2luLXByb3Rvcy5oIChkYXJ3aW5fYXNtX25hbWVkX3NlY3Rpb24pOgoJTGlrZXdpc2UuCgkqIGNvbmZpZy9kYXJ3aW4vZGFyd2luLmMgKGRhcndpbl9hc21fbmFtZWRfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAoaDgzMDBfYXNtX25hbWVkX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvaTM4Ni1wcm90b3MuaCAoaTM4Nl9wZV9hc21fbmFtZWRfc2VjdGlvbik6CglMaWtld2lzZS4KCSogY29uZmlnL2kzODYvd2lubnQuYyAoaTM4Nl9wZV9hc21fbmFtZWRfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvbTY4ay9tNjhrLmMgKG02OGtfY29mZl9hc21fbmFtZWRfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvbWNvcmUvbWNvcmUuYyAobWNvcmVfYXNtX25hbWVkX3NlY3Rpb24pOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3hjb2ZmX2FzbV9uYW1lZF9zZWN0aW9uKToKCUxpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvc3BhcmMuYyAoc3BhcmNlX2VsZl9hc21fbmFtZWRfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBjcC9jcC1sYW5nLmggKExBTkdfSE9PS1NfQ09NREFUX0dST1VQKTogRGVmaW5lLgoJKiBjcC9jcC10cmVlLmggKGN4eF9jb21kYXRfZ3JvdXApOiBEZWNsYXJlLgoJKiBjcC9kZWNsLmMgKGN4eF9jb21kYXRfZ3JvdXApOiBOZXcgZnVuY3Rpb24uCgoyMDA0LTA5LTE1ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiB0cmVlLXNzYS5jICh2ZXJpZnlfZmxvd19zZW5zaXRpdmVfYWxpYXNfaW5mbyk6IERvIG5vdCB3YWxrIGRlYWQgbm9kZXMuCgkqIHRyZWUtdGFpbGNhbGwuYyAoZWxpbWluYXRlX3RhaWxfY2FsbCk6IFJlbGVhc2UgU1NBIG5hbWUuCgoJKiB0cmVlLWNmZy5jIChyZW1vdmVfYmIpOiBSZWxlYXNlIFNTQSBkZWZzLgoKMjAwNC0wOS0xNSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRvYy90bS50ZXhpOiBGb2xsb3cgc3BlbGxpbmcgY29udmVudGlvbnMuCgoyMDA0LTA5LTE1ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogdHJlZS1zc2EtZG9tLmM6IEZpeCBjb21tZW50IHR5cG9zLgoKMjAwNC0wOS0xNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy9yczYwMDAvbGludXgtdW53aW5kLmggKHN0cnVjdCBnY2NfcHRfcmVncyk6IEV4dGVuZCB0bwoJaW5jbHVkZSBjY3IuCgkocHBjX2ZhbGxiYWNrX2ZyYW1lX3N0YXRlKTogU2F2ZSBsb2NhdGlvbiBvZiBDUi4KCjIwMDQtMDktMTUgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZXhwci5jIChzdHJpbmdfY29uc3RhbnQpOiBIYW5kbGUgYWxzbyByZWFkLW9ubHkgdmFyaWFibGVzCglpbml0aWFsaXplZCB0byBzdHJpbmcgbGl0ZXJhbHMuCgoJKiBidWlsdGlucy5jIChleHBhbmRfYnVpbHRpbl9tZW1tb3ZlKTogT3B0aW1pemUgbWVtbW92ZSAoeCwgeSwgMSkKCWludG8gbWVtY3B5ICh4LCB5LCAxKSBpZiBtZW1jcHkgY2FuIGJlIGV4cGFuZGVkIGlubGluZS4KCjIwMDQtMDktMTUgIFpkZW5layBEdm9yYWsgIDxyYWtkdmVyQGF0cmV5Lmthcmxpbi5tZmYuY3VuaS5jej4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNzQ2OAoJKiB0cmVlLXNzYS5jICh2ZXJpZnlfdXNlLCB2ZXJpZnlfcGhpX2FyZ3MsIHZlcmlmeV9zc2EpOiAgVmVyaWZ5IHRoYXQKCWRlZmluaXRpb24gaW5zaWRlIGEgYmxvY2sgcHJlY2VkZSB1c2VzLgoJKiB0cmVlLXRhaWxjYWxsLmMgKGFkanVzdF9yZXR1cm5fdmFsdWUpOiBFbWl0IHN0YXRlbWVudHMgaW4gdGhlCgljb3JyZWN0IG9yZGVyLgoKMjAwNC0wOS0xNSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5oIChQT0lOVEVSU19FWFRFTkRfVU5TSUdORUQpOiBEZWxldGUuCgoyMDA0LTA5LTE1ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogZG9jL2luc3RhbGwudGV4aSAoc3BhcmMtc3VuLXNvbGFyaXMyKik6IFByb3Blcmx5IGZvcm1hdCB3YXJuaW5nLgoKMjAwNC0wOS0xNCBKZWZmIExhdyAgPGxhd0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtZG9tLmMgKGF2YWlsX2V4cHJzX3N0YWNrKTogTmV3IGdsb2JhbCB2YXJyYXkuCgkoc3RydWN0IGRvbV93YWxrX2Jsb2NrX2RhdGEpOiBSZW1vdmUgYXZhaWxfZXhwcnMgbWVtYmVyLgoJKHRyZWVfc3NhX2RvbWluYXRvcl9vcHRpbWl6ZSk6IEluaXRpYWxpemUgYXZhaWxfZXhwcnNfc3RhY2suCgkobG9va3VwX2F2YWlsX2V4cHIpOiBObyBsb25nZXIgbmVlZCB0byBwYXNzIGluIGFkZHJlc3Mgb2YKCXRoZSBibG9jayBsb2NhbCBhdmFpbGFibGUgZXhwcnMgc3RhY2suICBBbGwgY2FsbGVycyBjaGFuZ2VkLgoJKHNpbXBsaWZ5X2NvbmRfYW5kX2xvb2t1cF9hdmFpbF9leHByKTogU2ltaWxhcmx5LgoJKHNpbXBsaWZ5X3N3aXRjaF9hbmRfbG9va3VwX2F2YWlsX2V4cHIpOiBTaW1pbGFybHkuCgkoZ2V0X2VxX2V4cHJfdmFsdWUsIHJlY29yZF9jb25kKTogTGlrZXdpc2UuCgkocmVjb3JkX2RvbWluYXRpbmdfY29uZGl0aW9ucyk6IExpa2V3aXNlLgoJKHVwZGF0ZV9yaHNfYW5kX2xvb2t1cF9hdmFpbF9leHByKTogTGlrZXdpc2UuCgkocmVjb3JkX2VxdWl2YWxlbmNlc19mcm9tX3N0bXQpOiBMaWtld2lzZS4KCShkb21fb3B0X2luaXRpYWxpemVfYmxvY2tfbG9jYWxfZGF0YSk6IE5vIGxvbmdlciB0ZXN0IHN0YXRlIG9mCglibG9jayBsb2NhbCBhdmFpbF9leHBycy4KCShkb21fb3B0X2luaXRpYWxpemVfYmxvY2spOiBNYXJrIHVud2luZCBwb2ludCBpbiB0aGUgZ2xvYmFsCglhdmFpbF9leHByIHN0YWNrLgoJKHJlbW92ZV9leHByZXNzaW9uc19mcm9tX3RhYmxlKTogVXBkYXRlIHRvIHVud2luZCB0byB0aGUKCW1vc3QgcmVjZW50IHVud2luZCBtYXJrZXIgaW4gdGhlIGdsb2JhbCBhdmFpbF9leHByIHN0YWNrLgoJQWxsIGNhbGxlcnMgY2hhbmdlZC4KCShkb21fb3B0X2ZpbmFsaXplX2Jsb2NrKTogTWFyayB1bndpbmQgcG9pbnQgaW4gdGhlIGdsb2JhbAoJYXZhaWxfZXhwciBzdGFjayBhcyBuZWVkZWQuCgkocmVjb3JkX2NvbmQpOiBQdXNoIGVsZW1lbnRzIGludG8gdGhlIGdsb2JhbCBhdmFpbF9leHBycyBzdGFjay4KCgkqIHRyZWUtZGZhLmMgKGZyZWVfZGZfZm9yX3N0bXQpOiBObyBsb25nZXIgc3RhdGljLgoJKGZyZWVfZGYpOiBVcGRhdGUgY29tbWVudHMuCgkqIHRyZWUtZmxvdy5oIChmcmVlX2RmX2Zvcl9zdG10KTogUHJvdG90eXBlLgoJKiB0cmVlLXNzYS1kc2UuYyAoZHNlX29wdGltaXplX3N0bXQpOiBDYWxsIGZyZWVfZGZfZm9yX3N0bXQuICBBbHNvCgljYWxsIHJlbGVhc2VfZGVmcy4KCjIwMDQtMDktMTQgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE3MjUyCgkqIHRyZWUtc3NhLWFsaWFzLmMgKG1heV9hbGlhc19wKTogRG9uJ3QgYXNzdW1lIHRoYXQgYQoJcG9pbnRlciBtYXkgbm90IHBvaW50IHRvIGl0c2VsZiB3aGVuIHVzaW5nIHJlbGF4ZWQKCWFsaWFzaW5nIHJ1bGVzLgoKMjAwNC0wOS0xNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5kLzE3Mzk3CgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2FkZHJfZXhwcik6IERvbid0IGluYWR2ZXJ0ZW50bHkgY2hhbmdlIHR5cGVzCgl3aGlsZSBmb2xkaW5nIDxBRERSX0VYUFIgPElORElSRUNUX1JFRiBYPj4uCgoyMDA0LTA5LTE0ICBBbmRyZXcgUGluc2tpICA8YXBpbnNraUBhcHBsZS5jb20+CgoJKiB0cmVlLXNzYS1jb3B5LmMgKG1heV9wcm9wYWdhdGVfY29weSk6IERvbid0IGNoZWNrIHRoZSBhbGlhc2luZwoJc2V0cyBvZiB0aGUgcG9pbnRlcnMgYnV0IHRoZSBhbGlhc2luZyBzZXRzIG9mIHdoYXQgdGhleSBwb2ludCB0by4KCjIwMDQtMDktMTQgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vOTc3MQoJKiByZWdjbGFzcy5jIChDQUxMX1JFQUxMWV9VU0VEX1JFR05PX1ApOiBOZXcgbWFjcm8gdG8gZWxpbWluYXRlCgljb25kaXRpb25hbCBjb21waWxhdGlvbiBpbiBpbml0X3JlZ19zZXRzXzEuCgkoaW5pdF9yZWdfc2V0c18xKTogTGV0IGdsb2JhbF9yZWdzW2ldIHRha2UgcHJpb3JpdHkgb3ZlciB0aGUgZnJhbWUKCShidXQgbm90IHN0YWNrKSBwb2ludGVyIGV4Y2VwdGlvbnMgdG8gcmVnc19pbnZhbGlkYXRlZF9ieV9jYWxsLgoJKGdsb2JhbGl6ZV9yZWcpOiBHbG9iYWxpemluZyBhIGZpeGVkIHJlZ2lzdGVyIG1heSBuZWVkIHRvIHVwZGF0ZQoJcmVnc19pbnZhbGlkYXRlZF9ieV9jYWxsLgoKMjAwNC0wOS0xNCAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTUyNjIKCSogdHJlZS1kZmEuYyAoZHVtcF92YXJpYWJsZSk6IEFsc28gcHJpbnQgdGhlIHR5cGUgb2YgdGhlCgl2YXJpYWJsZS4KCSogdHJlZS1zc2EtYWxpYXMuYyAoY29tcHV0ZV9mbG93X2luc2Vuc2l0aXZlX2FsaWFzaW5nKTogSWYgdHdvCgltZW1vcnkgdGFncyBhcmUgb2YgY29uZmxpY3RpbmcgYWxpYXMgc2V0cyBidXQgaGF2ZSBubyBhbGlhc2VkCglzeW1ib2xzIGluIGNvbW1vbiwgYWRkIG9uZSB0YWcgdG8gdGhlIGFsaWFzIHNldCBvZiB0aGUgb3RoZXIuCgkoc2V0dXBfcG9pbnRlcnNfYW5kX2FkZHJlc3NhYmxlcyk6IFJlbW92ZSBoYWNrIHRvIGRlYWwgd2l0aAoJcHJvZ3JhbXMgd2l0aCBubyBhbGlhc2VkIHN5bWJvbHMuCgkobWF5X2FsaWFzX3ApOiBEb24ndCBzcGVjaWFsIGNhc2UgYWdncmVnYXRlIHR5cGVzLgoKMjAwNC0wOS0xNCAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJUFIgYy8xNTQ5OAoJKiBkb2MvaW52b2tlLnRleGkgKEVudmlyb25tZW50IFZhcmlhYmxlcyk6IENvcnJlY3QgZXhhbXBsZSBsb2NhbGUuCgoyMDA0LTA5LTE0ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBjZmcuYyAoZXhwdW5nZV9ibG9jayk6IFJldmVydCBwcmV2aW91cyBjaGFuZ2UgYWRkaW5nIGdnY19mcmVlIGNhbGwuCgoyMDA0LTA5LTE0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnLmdjYzogRG8gbm90IGJ1aWxkIGEgc2hhcmVkIGxpYmdjYyBmb3IgYXJtLW5vbmUtZWFiaS4KCjIwMDQtMDktMTQgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYy10cmVlLmggKHN0cnVjdCBjX2RlY2xzcGVjcyk6IEFkZCBjb25zdF9wLCB2b2xhdGlsZV9wIGFuZAoJcmVzdHJpY3RfcC4KCShzdHJ1Y3QgY19kZWNsYXJhdG9yKTogQ2hhbmdlIHUuYXJyYXkucXVhbHMgYW5kIHBvaW50ZXJfcXVhbHMgdG8KCWludC4gIEFkZCB1LmFycmF5LmF0dHJzLgoJKHF1YWxzX2Zyb21fZGVjbHNwZWNzKTogTmV3LgoJKiBjLWRlY2wuYyAocXVhbHNfZnJvbV9kZWNsc3BlY3MpOiBOZXcuCgkoc2hhZG93X3RhZ193YXJuZWQpOiBHaXZlIG1vcmUgc3BlY2lmaWMgbWVzc2FnZSBmb3IgdXNlbGVzcyB0eXBlCglxdWFsaWZpZXJzLgoJKGJ1aWxkX2FycmF5X2RlY2xhcmF0b3IsIHNldF9hcnJheV9kZWNsYXJhdG9yX2lubmVyLAoJZ3Jva2RlY2xhcmF0b3IsIG1ha2VfcG9pbnRlcl9kZWNsYXJhdG9yLCBidWlsZF9udWxsX2RlY2xzcGVjcywKCWRlY2xzcGVjc19hZGRfcXVhbCk6IFVwZGF0ZSBmb3IgY2hhbmdlZCBzdHJ1Y3R1cmVzLgoKMjAwNC0wOS0xNCAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWRvbS5jIChzdG10c190b19yZXNjYW4pOiBNb3ZlIGZyb20gYSBibG9jay1sb2NhbAoJdG8gYSBnbG9iYWwgdmFycmF5LgoJKHRyZWVfc3NhX2RvbWluYXRvcl9vcHRpbWl6ZSk6IEFsbG9jYXRlIHN0bXRzX3RvX3Jlc2Nhbi4KCShkb21fb3B0X2luaXRpYWxpemVfYmxvY2tfbG9jYWxfZGF0YSk6IE5vIGxvbmdlciB0ZXN0IHN0YXRlCglvZiBzdG10c190b19yZXNjYW4uCgkoZG9tX29wdF9maW5hbGl6ZV9ibG9jayk6IFVwZGF0ZSBkdWUgdG8gY2hhbmdlIGluIHNjb3BlIG9mCglzdG10c190b19yZXNjYW4uCgkob3B0aW1pemVfc3RtdCk6IFNpbWlsYXJseS4KCjIwMDQtMDktMTQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjZ3JhcGguaCwgY2dyYXBodW5pdC5jLCBmb2xkLWNvbnN0LmMsIGxhbWJkYS1tYXQuYywKCWxhbWJkYS5oLCBwcm9maWxlLmMsIHRyZWUtb3B0aW1pemUuYywgdHJlZS1zcmEuYywgdmVjLmg6IEZpeAoJY29tbWVudCB0eXBvcy4gIEZvbGxvdyBzcGVsbGluZyBjb252ZW50aW9ucy4KCjIwMDQtMDktMTQgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvZGFyd2luLWMuYywgY29uZmlnL2FscGhhL2FscGhhLmMsIGNvbmZpZy9pMzg2L2kzODYuYywKCWNvbmZpZy9pMzg2L3ByZWRpY2F0ZXMubWQsIGNvbmZpZy9zcGFyYy9zcGFyYy5jOiBGb2xsb3cKCXNwZWxsaW5nIGNvbnZlbnRpb25zLgoKMjAwNC0wOS0xNCAgWmRlbmVrIER2b3JhayAgPHJha2R2ZXJAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgoJICAgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIE1ha2VmaWxlLmluIChsb29wLXVucm9sbC5vKTogQWRkIEhBU0hUQUJfSCBhbmQgUkVDT0dfSCBkZXBlbmRlbmN5LgoJKiBiYXNpYy1ibG9jay5oIChzdHJ1Y3QgcmVvcmRlcl9ibG9ja19kZWYpOiBBZGQgY29weV9udW1iZXIgZmllbGQuCgkqIGNmZ2xvb3AuaCAoYml2X3ApOiBEZWNsYXJlLgoJKiBjZmdsb29wbWFuaXAuYyAoZHVwbGljYXRlX2xvb3BfdG9faGVhZGVyX2VkZ2UpOiBTZXQgY29weV9udW1iZXIuCgkqIGNvbW1vbi5vcHQgKGZzcGxpdC1pdnMtaW4tdW5yb2xsZXIpOiBOZXcgZmxhZy4KCSogbG9vcC1pdi5jIChiaXZfcCk6IE5ldyBmdW5jdGlvbi4KCSogbG9vcC11bnJvbGwuYzogSW5jbHVkZSBoYXNodGFiLmggYW5kIHJlY29nLmguCgkoc3RydWN0IGl2X3RvX3NwbGl0LCBzdHJ1Y3Qgc3BsaXRfaXZzX2luZm8pOiBOZXcgdHlwZXMuCgkoYW5hbHl6ZV9pdnNfdG9fc3BsaXQsIHNpX2luZm9fc3RhcnRfZHVwbGljYXRpb24sIHNwbGl0X2l2c19pbl9jb3BpZXMsCglmcmVlX3NpX2luZm8sIHNpX2luZm9faGFzaCwgc2lfaW5mb19lcSwgYW5hbHl6ZV9pdl90b19zcGxpdF9pbnNuLAoJZGV0ZXJtaW5lX3NwbGl0X2l2X2RlbHRhLCBnZXRfaXZ0c19leHByLCBhbGxvY2F0ZV9iYXNpY192YXJpYWJsZSwKCWluc2VydF9iYXNlX2luaXRpYWxpemF0aW9uLCBzcGxpdF9pdik6IE5ldyBmdW5jdGlvbnMuCgkocGVlbF9sb29wX2NvbXBsZXRlbHksIHVucm9sbF9sb29wX2NvbnN0YW50X2l0ZXJhdGlvbnMsCgl1bnJvbGxfbG9vcF9ydW50aW1lX2l0ZXJhdGlvbnMsIHBlZWxfbG9vcF9zaW1wbGUsIHVucm9sbF9sb29wX3N0dXBpZCk6CglVc2UgdGhlbS4KCSogZG9jL2ludm9rZS50ZXhpICgtZnNwbGl0LWl2cy1pbi11bnJvbGxlcik6IERvY3VtZW50LgoKMjAwNC0wOS0xNCAgWmRlbmVrIER2b3JhayAgPHJha2R2ZXJAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgoKCSogdHJlZS1jZmcuYyAodGhyZWFkX2p1bXBzKTogVXBkYXRlIGRvbWluYXRvcnMgY29ycmVjdGx5IGluCgljYXNlIGRlc3RpbmF0aW9uIG9mIHRocmVhZGVkIGVkZ2UgZG9taW5hdGVzIGl0cyBzb3VyY2UuCgoyMDA0LTA5LTE0ICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJKiB1bnJvbGwuYzogUmVtb3ZlZC4KCSogbG9vcC5oOiBSZW1vdmVkLgoJKiBNYWtlZmlsZS5pbiAoTE9PUF9ILCB1bnJvbGwubyk6IFJlbW92ZWQuCgkodG9wbGV2Lm8sIHBhc3Nlcy5vLCBzdG10Lm8sIGludGVncmF0ZS5vLCBsb29wLm8pOiBSZW1vdmUgTE9PUF9ICglkZXBlbmRlbmN5LgoJKiBhbGlhcy5jIChpbml0X2FsaWFzX2FuYWx5c2lzKTogUmVtb3ZlIGZsYWdfb2xkX3Vucm9sbF9sb29wcwoJcmVmZXJlbmNlLgoJKiBjZmdsb29wLmggKExPT1BfUFJFRkVUQ0gsIGxvb3Bfb3B0aW1pemUpOiBNb3ZlZCBmcm9tIGxvb3AuaC4KCSogY29tbW9uLm9wdCAoZm9sZC11bnJvbGwtbG9vcHMsIGZvbGQtdW5yb2xsLWFsbC1sb29wcyk6IFJlbW92ZWQuCgkqIGxvb3AuYzogRG8gbm90IGluY2x1ZGUgbG9vcC5oLgoJKExPT1BfSU5GTywgTE9PUF9NT1ZBQkxFUywgTE9PUF9SRUdTLCBMT09QX0lWUywgSU5TTl9MVUlELAoJUkVHTk9fRklSU1RfTFVJRCwgUkVHTk9fTEFTVF9MVUlELCBlbnVtIGdfdHlwZXMsIHN0cnVjdCBpbmR1Y3Rpb24sCglzdHJ1Y3QgaXZfY2xhc3MsIGVudW0gaXZfbW9kZSwgc3RydWN0IGl2LCBSRUdfSVZfVFlQRSwgUkVHX0lWX0lORk8sCglSRUdfSVZfQ0xBU1MsIHN0cnVjdCBsb29wX2l2cywgc3RydWN0IGxvb3BfbWVtX2luZm8sIHN0cnVjdCBsb29wX3JlZywKCXN0cnVjdCBsb29wX3JlZ3MsIHN0cnVjdCBsb29wX21vdmFibGVzLCBzdHJ1Y3QgbG9vcF9pbmZvKTogTW92ZWQKCWZyb20gbG9vcC5oLgoJKGJhY2tfYnJhbmNoX2luX3JhbmdlX3AsIGZvbGRfcnR4X211bHRfYWRkLCBiaXZfdG90YWxfaW5jcmVtZW50LAoJcmVnX2RlYWRfYWZ0ZXJfbG9vcCwgZmluYWxfYml2X3ZhbHVlLCBsb29wX2ZpbmRfZXF1aXZfdmFsdWUsCglmaW5kX2NvbW1vbl9yZWdfdGVybSwgbG9vcF9pdGVyYXRpb25zLCBmaW5hbF9naXZfdmFsdWUpOiBNb3ZlZAoJZnJvbSB1bnJvbGwuYy4KCSh1aWRfbHVpZCwgdWlkX2xvb3AsIG1heF91aWRfZm9yX2xvb3AsIG1heF9yZWdfYmVmb3JlX2xvb3AsCglsb29wX2R1bXBfc3RyZWFtLCBmb3JfZWFjaF9pbnNuX2luX2xvb3AsIGV4cHJlc3NfZnJvbSwKCWV4dGVuZF92YWx1ZV9mb3JfZ2l2LCBsb29wX2l2X2FkZF9tdWx0X2VtaXRfYmVmb3JlLAoJbG9vcF9pdl9hZGRfbXVsdF9zaW5rLCBsb29wX2l2X2FkZF9tdWx0X2hvaXN0LAoJbG9vcF9pbnNuX2ZpcnN0X3AsIGdldF9jb25kaXRpb25fZm9yX2xvb3AsCglsb29wX2luc25fZW1pdF9iZWZvcmUsIGxvb3BfaW5zbl9ob2lzdCwKCWxvb3BfaW5zbl9zaW5rKTogTWFkZSBzdGF0aWMuCgkobG9vcF9pbnZhcmlhbnRfcCk6IE1hZGUgc3RhdGljLiAgUmVtb3ZlZCBmbGFnX29sZF91bnJvbGxfbG9vcHMKCXJlZmVyZW5jZS4KCShzdHJlbmd0aF9yZWR1Y2UpOiBEbyBub3QgY2FsbCB1bnJvbGxlci4KCShyZWNvcmRfZ2l2KTogRG8gbm90IGluaXRpYWxpemUgdW5yb2xsZWQgZmllbGQuCgkocHJlc2Nhbl9sb29wKTogRG8gbm90IHNldCBsb29wX2luZm8tPnByZWNvbmRpdGlvbmVkLgoJKiBwYXNzZXMuYzogRG8gbm90IGluY2x1ZGUgbG9vcC5oLgoJKHJlc3Rfb2ZfaGFuZGxlX2xvb3Bfb3B0aW1pemUpOiBEbyBub3QgY2FsbCB1bnJvbGxlci4KCSogcHJlZGljdC5jOiBEbyBub3QgaW5jbHVkZSBsb29wLmguCgkqIHJ0bC5oIChOT1RFX1BSRUNPTkRJVElPTkVEKTogUmVtb3ZlZC4KCSogc3RtdC5jOiBEbyBub3QgaW5jbHVkZSBsb29wLmguCgkqIHRvcGxldi5jOiBEbyBub3QgaW5jbHVkZSBsb29wLmguCgkocHJvY2Vzc19vcHRpb25zKTogRG8gbm90IGhhbmRsZSBmbGFnX29sZF91bnJvbGxfbG9vcHMuCgoJKiBkb2MvaW52b2tlLnRleGkgKGZvbGQtdW5yb2xsLWxvb3BzLCBmb2xkLXVucm9sbC1hbGwtbG9vcHMpOgoJRG9jdW1lbnRhdGlvbiByZW1vdmVkLgoJKiBkb2MvcGFzc2VzLnRleGkgKHVucm9sbC5jLCBsb29wLmgpOiBEb2N1bWVudGF0aW9uIHJlbW92ZWQuCgoyMDA0LTA5LTE0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuaW4gKFNUQUdFMV9DSEVDS0lORyk6IE5ldyB2YXJpYWJsZS4KCShzdGFnZTFfYnVpbGQpOiBVc2UgaXQuCgkqIHRyZWUtc3NhLmMgKHZlcmlmeV9zc2EpOiBQcmVzZXJ2ZSBzdGF0ZSBvZiBkb21pbmFuY2UKCWluZm9ybWF0aW9uLgoKMjAwNC0wOS0xNCAgVXJvcyBCaXpqYWsgIDx1cm9zQGtzcy1sb2thLnNpPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChvdXRwdXRfZnBfY29tcGFyZSk6IEFkZCBnZW5lcmF0aW9uCglvZiBmdHN0IGluc3RydWN0aW9uLgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kICgqY21wZnBfMF9zZiwgY21wZnBfMF9kZiwgY21wZnBfMF94Zik6CglVc2Ugb3V0cHV0X2ZwX2NvbXBhcmUgKCkgZnVuY3Rpb24uCgkoY21wZnBfaSwgKmNtcGZwX2lfc3NlLCAqY21wZnBfaV9zc2Vfb25seSk6IEZpeCBpbnNuIGNvbnN0cmFpbnQuCgkoZml4X3RydW5jZGlfbWVtb3J5KTogUmVtb3ZlIG9wZXJhbmRzWzVdIGNvcHkuCgoyMDA0LTA5LTE0ICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogY29uZmlnL20zMnIvbTMyci5tZCwgY29uZmlnL202OGsvbTY4a2VsZi5oLAoJY29uZmlnL21jb3JlL21jb3JlLm1kLCBjb25maWcvcnM2MDAwL2xpbnV4NjQuaCwKCWNvbmZpZy9yczYwMDAvcnM2MDAwLmMsIGNvbmZpZy9zcGFyYy9zcGFyYy5jOiBGaXggY29tbWVudAoJdHlwb3MuCgoyMDA0LTA5LTEzICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJKiBNYWtlZmlsZS5pbiAoR0VOX1BST1RPU19PQkpTKTogQWRkICQoQlVJTERfRVJST1JTKS4KCSogZ2VuLXByb3Rvcy5jOiBJbmNsdWRlIGVycm9ycy5oLgoJKHByb2duYW1lKTogRGVsZXRlLgoKMjAwNC0wOS0xNCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogTWFrZWZpbGUuaW4gKHByZWRpY3Qubyk6IERlcGVuZCBvbiB0cmVlLXNjYWxhci1ldm9sdXRpb24uaAoJKiBwcmVkaWN0LmM6IEluY2x1ZGUgdHJlZS1zY2FsYXItZXZvbHV0aW9uLmggYW5kIGNmZ2xvb3AuaAoJKHByZWRpY3RfbG9vcHMpOiBVc2UgbnVtYmVyX29mX2l0ZXJhdGlvbnNfZXhpdCB0byBwcmVkaWN0CgludW1iZXIgb2YgaXRlcmF0aW9ucyBvbiB0cmVlcy4KCjIwMDQtMDktMTMgIERhbGUgSm9oYW5uZXNlbiAgPGRhbGVqQGFwcGxlLmNvbT4KCglQUiAxNzQwOAoJUFIgMTc0MDkKCSogYy1kZWNsLmMgKHN0YXJ0X2RlY2wpOiBSZXBhaXIgVFJFRV9TVEFUSUMgZm9yIGluaXRpYWxpemVkCglvYmplY3RzIGRlY2xhcmVkIGV4dGVybi4KCjIwMDQtMDktMTQgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvYXJtL2FybS5jIChhcm1fZXhwYW5kX3Byb2xvZ3VlKTogTWFrZSBhcmdzX3RvX3B1c2ggYQoJSE9TVF9XSURFX0lOVC4KCjIwMDQtMDktMTMgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGRlYmlhbi5vcmc+CgoJKiBmb2xkLWNvbnN0LmMgKGZvbGRfY2hlY2tzdW1fdHJlZSk6IElnbm9yZSBUWVBFX0NBQ0hFRF9WQUxVRVMuCglPbmx5IHVzZSBUWVBFX0JJTkZPIGZvciBhZ2dyZWdhdGVzLgoKMjAwNC0wOS0xMyAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AZGViaWFuLm9yZz4KCgkqIGV4cG1lZC5jIChzeW50aF9tdWx0KTogSW5pdGlhbGl6ZSBsYXRlbmN5LiAgQ2hlY2sgY29zdCBiZWZvcmUKCWNoZWNraW5nIG9wcyBjb3VudC4KCjIwMDQtMDktMTMgIEtlbm5ldGggWmFkZWNrICA8S2VubmV0aC5aYWRlY2tATmF0dXJhbEJyaWRnZS5jb20+CgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChnZXRfY2FsbF9leHByX29wZXJhbmRzKTogQWRkZWQgcGFybSB0bwoJYWRkX2NhbGxfY2xvYmJlcl9vcHMgYW5kIGFkZF9jYWxsX3JlYWRfb3BzLgoJKGFkZF9jYWxsX2Nsb2JiZXJfb3BzLCBhZGRfY2FsbF9yZWFkX29wcyk6IEFkZGVkIGNvZGUgdG8gcmVkdWNlCgl0aGUgbnVtYmVyIG9mIHZkZWZzIGFuZCB2dXNlcyBpbnNlcnRlZCBiYXNlZCBvbiBhbmFseXNpcyBvZiBnbG9iYWwKCXZhcmlhYmxlcyBhY3Jvc3MgY2FsbHMuICAqIHRyZWUtZGZhLmMgKGZpbmRfcmVmZXJlbmNlZF92YXJzKToKCU5lZWRlZCB0byByZXNldCBzdGF0aWMgdmFyIG1hcHMgYmVmb3JlIGVhY2ggZnVuY3Rpb24gaXMgY29tcGlsZWQuCgkqIGNncmFwaHVuaXQuYzoKCShzdGF0aWNfdmFyc190b19jb25zaWRlcl9ieV90cmVlLHN0YXRpY192YXJzX3RvX2NvbnNpZGVyX2J5X3VpZCwKCXN0YXRpY192YXJzX2luZm8sZnVuY3Rpb25zX3RvX3N0YXRpY192YXJzX2luZm8sbW9kdWxlX3N0YXRpY3NfZXNjYXBlLAoJYWxsX21vZHVsZV9zdGF0aWNzLHNlYXJjaGNfZW52LGRmc19pbmZvKTogTmV3IGZpZWxkcyB0byBzdXBwb3J0CglhbmFseXNpcyBvZiBzdGF0aWMgZ2xvYmFsIHZhcmlhYmxlcy4KCShwcmludF9vcmRlciwgY29udmVydF9VSURzX2luX2JpdG1hcCwgbmV3X3N0YXRpY192YXJzX2luZm8sCgljZ3JhcGhfcmVzZXRfc3RhdGljX3Zhcl9tYXBzLCBnZXRfZ2xvYmFsX3N0YXRpY192YXJzX2luZm8sCglnZXRfZ2xvYmFsX3N0YXRpY3Nfbm90X3JlYWQsIGdldF9nbG9iYWxfc3RhdGljc19ub3Rfd3JpdHRlbiwKCXNlYXJjaGMsIGNncmFwaF9yZWR1Y2VkX2lub3JkZXIsIGhhc19wcm9wZXJfc2NvcGVfZm9yX2FuYWx5c2lzLAoJY2hlY2tfcmhzX3ZhciwgY2hlY2tfbGhzX3ZhciwgZ2V0X2FzbV9leHByX29wZXJhbmRzLAoJcHJvY2Vzc19jYWxsX2Zvcl9zdGF0aWNfdmFycywgc2Nhbl9mb3Jfc3RhdGljX3JlZnMsCgljZ3JhcGhfY2hhcmFjdGVyaXplX3N0YXRpY3NfbG9jYWwsIGNncmFwaF9nZXRfc3RhdGljX25hbWVfYnlfdWlkLAoJY2xlYXJfc3RhdGljX3ZhcnNfbWFwcywgY2dyYXBoX3Byb3BhZ2F0ZV9iaXRzLAoJY2dyYXBoX2NoYXJhY3Rlcml6ZV9zdGF0aWNzKTogTmV3LiBGdW5jdGlvbnMgdG8gc3VwcG9ydCBhbmFseXNpcwoJb2Ygc3RhdGljIGdsb2JhbCB2YXJpYWJsZXMuCgkoY2dyYXBoX21hcmtfbG9jYWxfYW5kX2V4dGVybmFsX2Z1bmN0aW9ucyk6IFJlbmFtZWQgZnJvbToKCShjZ3JhcGhfbWFya19sb2NhbF9mdW5jdGlvbnMpCgkoY2dyYXBoX2V4cGFuZF9hbGxfZnVuY3Rpb25zKTogUmVtb3ZlIGNhbGwgdG8KCWNncmFwaF9tYXJrX2xvY2FsX2FuZF9leHRlcm5hbF9mdW5jdGlvbnMuCgkoY2dyYXBoX29wdGltaXplKTogQWRkZWQgZHJpdmVyIHRvIGFuYWx5emUgc3RhdGljIHZhcmlhYmxlcyB3aG9zZQoJc2NvcGUgaXMgd2l0aGluIHRoZSBjb21waWxhdGlvbiB1bml0LiAgKiBjZ3JhcGguaCAoc3RydWN0CgljZ3JhcGhfbG9jYWxfaW5mbywgR1RZKTogQWRkZWQgc3RhdGljc19yZWFkLCBzdGF0aWNzX3dyaXR0ZW4sCglsb2NhbCwgY2FsbHNfcmVhZF9hbGwsIGNhbGxzX3dyaXRlX2FsbCwgZm9yX2Z1bmN0aW9uc192YWxpZC4KCShzdHJ1Y3QgY2dyYXBoX25vZGUpOiBBZGRlZCBuZXh0X2N5Y2xlLiAgKiBjZ3JhcGguYwoJKGR1bXBfY2dyYXBoX25vZGUpOiBBZGRlZCBwcmludCByb3V0aW5lcyBmb3IgbmV3IGZpZWxkcy4gICoKCW1ha2VmaWxlLmluOiBtYWNyb2l6ZWQgY2dyYXBoLmgsIGFkZGVkIGNncmFwaHVuaXQuYyB0byB0aGUgZ2djCglsaXN0LgoKMjAwNC0wOS0xMyAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBjLWRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBDb3JyZWN0IGNvbW1lbnRzIGFib3V0IHdoZXJlIHN0b3JhZ2UKCWNsYXNzIHNwZWNpZmllcnMgYXJlIHJlamVjdGVkIGJ5IGdyYW1tYXIgYW5kIGFkZCBjb3JyZXNwb25kaW5nCglhc3NlcnRzLiAgRGlhZ25vc2UgdHlwZWRlZnMgYW5kIHBhcmFtZXRlcnMgZGVjbGFyZWQgaW5saW5lLgoJQ2hhbmdlIHdhcm5pbmcgZm9yIGlubGluZSBtYWluIHRvIGEgcGVkd2Fybi4gIE9ubHkgZGlhZ25vc2UgaW5saW5lCgltYWluIGlmIGhvc3RlZC4KCShkZWNsc3BlY3NfYWRkX3Njc3BlYyk6IEFsbG93IGR1cGxpY2F0ZSAiaW5saW5lIi4KCjIwMDQtMDktMTMgIFN0ZXZlIEVsbGNleSAgPHNqZUBjdXAuaHAuY29tPgoKCSogY29uZmlnL2lhNjQvaWE2NC5jIChpYTY0X3NjYWxhcl9tb2RlX3N1cHBvcnRlZF9wKTogTmV3LgoJKFRBUkdFVF9TQ0FMQVJfTU9ERV9TVVBQT1JURURfUCk6IE5ldy4KCjIwMDQtMDktMTMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgMTc0MzYKCSogdHJlZS5oIChUWVBFX0NPTlRBSU5TX1BMQUNFSE9MREVSX0lOVEVSTkFMKTogTmV3LgoJKHRyZWVfdHlwZSk6IFJlcGxhY2Ugc3BhcmUgd2l0aCBjb250YWluc19wbGFjZWhvbGRlcl9iaXRzLgoJKHR5cGVfY29udGFpbnNfcGxhY2Vob2xkZXJfMSk6IFJlbmFtZSBmcm9tIHR5cGVfY29udGFpbnNfcGxhY2Vob2xkZXJfcCwKCW1ha2Ugc3RhdGljLiAgUmVtb3ZlIHNlZW5fdHlwZXMgbGlzdC4KCSh0eXBlX2NvbnRhaW5zX3BsYWNlaG9sZGVyX3ApOiBOZXcuCgoyMDA0LTA5LTEzICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLmMgKENPREVfRk9SX21pcHNfc3FydF9wcyk6IE5ldy4KCShzYjFfYmRlc2MsIGJkZXNjX21hcCwgYmRlc2NfYXJyYXlzKTogTmV3LgoJKG1pcHNfZXhwYW5kX2J1aWx0aW4pOiBBZGQgU0ItMSBzdXBwb3J0LiAgVXNlIGJkZXNjX21hcCBhbmQKCWJkZXNjX2FycmF5cyBpbnN0ZWFkIG9mIG1pcHNfYmRlc2MuCgkobWlwc19pbml0X2J1aWx0aW5zKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9taXBzL21pcHMuaCAoVEFSR0VUX1NCMSk6IE5ldy4KCShIQVZFX1NRUlRfUCk6IERlbGV0ZS4KCSogY29uZmlnL21pcHMvbWlwcy5tZCAoZGl2aWRlX2NvbmRpdGlvbik6IFN1cHBvcnQgVjJTRi4KCShzcXJ0X2NvbmRpdGlvbiwgcmVjaXBfY29uZGl0aW9uKTogTmV3LgoJKGRpdjxtb2RlPjMpOiBVc2UgQU5ZRiBpbnN0ZWFkIG9mIFNDQUxBUkYuCgkoKmRpdjxtb2RlPjMpOiBVc2UgQU5ZRiBpbnN0ZWFkIG9mIFNDQUxBUkYuICBVc2UgVU5JVE1PREUgaW5zdGVhZCBvZgoJTU9ERS4KCSgqcmVjaXA8bW9kZT4zLCAqcnNxcnQ8bW9kZT5hLCAqcnNxcnQ8bW9kZT5iKTogVXNlIHJlY2lwX2NvbmRpdGlvbgoJaW5zdGVhZCBvZiBJU0FfSEFTX0ZQNC4gIFVzZSBBTllGIGluc3RlYWQgb2YgU0NBTEFSRi4gIFVzZSBVTklUTU9ERQoJaW5zdGVhZCBvZiBNT0RFLgoJKHNxcnQ8bW9kZT4yKTogVXNlIHNxcnRfY29uZGl0aW9uIGluc3RlYWQgb2YgSEFWRV9TUVJUX1AuICBVc2UgQU5ZRgoJaW5zdGVhZCBvZiBTQ0FMQVJGLiAgVXNlIFVOSVRNT0RFIGluc3RlYWQgb2YgTU9ERS4KCjIwMDQtMDktMTMgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUgYWZ0ZXIgcmVtb3ZhbCBvZiBsaWJiYW5zaGVlLgoKMjAwNC0wOS0xMyAgQW5kcmV3IE1hY0xlb2QgIDxhbWFjbGVvZEByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE3NDAwCgkqIHRyZWUtc3NhLWNvcHlyZW5hbWUuYyAoY29weV9yZW5hbWVfcGFydGl0aW9uX2NvYWxlc2NlKTogRG9uJ3QKCWNvYWxlc2NlIHBhcnRpdGlvbnMgd2hlbiBvbmUgb2NjdXJzIGluIGFuIGFibm9ybWFsIFBISS4KCjIwMDQtMDktMTMgIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLmggKEFTTV9PVVRQVVRfQ09NTU9OKTogQ2hhbmdlIHZhcmlhYmxlIHNpemUncwoJbmFtZSB0byBfbmV3X3NpemUuCgoyMDA0LTA5LTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIGlubGluZS1hc20vNjgwNgoJKiBjc2VsaWIuYyAoY3NlbGliX2ludmFsaWRhdGVfcnR4KTogRXhwb3J0LiAgUmVtb3ZlIHVudXNlZCBhcmdzLgoJKGNzZWxpYl9pbnZhbGlkYXRlX3J0eF9ub3RlX3N0b3Jlcyk6IE5ldy4KCShjc2VsaWJfcmVjb3JkX3NldHMsIGNzZWxpYl9wcm9jZXNzX2luc24pOiBVcGRhdGUgdG8gbWF0Y2guCgkqIGNzZWxpYi5oIChjc2VsaWJfaW52YWxpZGF0ZV9ydHgpOiBEZWNsYXJlLgoJKiBwb3N0cmVsb2FkLmMgKHJlbG9hZF9jc2Vfc2ltcGxpZnkpOiBJbnZhbGlkYXRlIGFzbSBjbG9iYmVycy4KCjIwMDQtMDktMTMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHQvMTA1MjgKCSogdHJlZS1pbmxpbmUuYyAoY29weV9ib2R5X3IpOiBSZWNvbXB1dGUgYml0cyBmb3IgQUREUl9FWFBSLAoJYWZ0ZXIgY29weWluZyBpdHMgYXJndW1lbnQuCgoyMDA0LTA5LTEzICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtY29tbW9uLmMsIGMtZGVjbC5jLCBjLWxleC5jLCBjLW9iamMtY29tbW9uLmMsIGMtb3B0cy5jLAoJYy1wYXJzZS5pbiwgYy1wcmFnbWEuYywgYy10eXBlY2suYzogVXNlICVxLCAlPCBhbmQgJT4gZm9yIHF1b3RpbmcKCWluIGRpYWdub3N0aWNzLiAgVXNlICUnIGZvciBFbmdsaXNoIGFwb3N0cm9waGVzLgoJKiBjLXRyZWUuaCAoQVRUUklCVVRFX0dDQ19DRElBRyk6IERlZmluZS4KCShwZWR3YXJuX2M5MCwgcGVkd2Fybl9jOTkpOiBVc2UgaXQuCgkqIGMtZGVjbC5jIChsb29rdXBfbGFiZWwpOiBRdW90ZSBsYWJlbCBuYW1lIGluIGRpYWdub3N0aWMuCgkqIGMtcGFyc2UuaW4gKHl5cHJpbnQpOiBVc2UgJyBpbnN0ZWFkIG9mIGAgZm9yIGxlZnQgcXVvdGUuCgkqIGMtdHlwZWNrLmMgKHdhcm5fZm9yX2Fzc2lnbm1lbnQpOiBMaWtld2lzZS4KCjIwMDQtMDktMTMgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIGkzODYuYyAoeDg2X3NjaGVkdWxlKTogTmV3IGdsb2JhbCB2YXJpYWJsZS4KCShvdmVycmlkZV9vcHRpb25zKTogRGlzYWJsZSBzY2hlZHVsaW5nIHdoZW4gbm90IHN1cHBvcnRlZC4KCSogaTM4Ni5oICh4ODZfc2NoZWR1bGUpOiBEZWNsYXJlLgoJKFRBUkdFVF9TQ0hFRFVMRSk6IE5ldyBtYWNyby4KCjIwMDQtMDktMTIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgYysrLzE2MjU0CgkqIGZvbGQtY29uc3QuYyAoZm9sZCkgPGNhc2UgQ0xFQU5VUF9QT0lOVF9FWFBSPjogUmVtb3ZlLgoJKiB0cmVlLmMsIHRyZWUuaCAoaGFzX2NsZWFudXBzKTogUmVtb3ZlLgoKMjAwNC0wOS0xMiAgWmRlbmVrIER2b3JhayAgPHJha2R2ZXJAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgoKCSogdHJlZS1zc2EtbG9vcC1tYW5pcC5jIChzcGxpdF9sb29wX2V4aXRfZWRnZSk6IEhhbmRsZSBub24tc3NhbmFtZQoJYXJndW1lbnRzIG9mIHRoZSBwaGkgbm9kZXMgY29ycmVjdGx5LgoKMjAwNC0wOS0xMiAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogZ2djLWNvbW1vbi5jIChjbXBfc3RhdGlzdGljcyk6IEZpeCBzb3J0aW5nLgoKMjAwNC0wOS0xMiAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCVBSIHRhcmdldC8xNjc5NQoJKiBleHBtZWQuYyAoZXhwYW5kX2Rpdm1vZCk6IElmIGNoZWFwIHBvd2VyIG9mIDIgZGl2aWRlIGlzCglhdmFpbGFibGUsIHVzZSBpdCBmb3IgbmVnYXRpdmUgY29uc3RhbnQgYXMgd2VsbC4KCjIwMDQtMDktMTIgIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGFwcGxlLmNvbT4KCgkqIGRhcndpbi5oIChBU01fT1VUUFVUX0NPTU1PTik6IE1ha2Ugc3VyZSB3ZSBkbyBub3QgaGF2ZSBhCglzaXplIG9mIDAuCgoJKiB0cmVlLWNocmVjLmMgKGluaXRpYWxpemVfc2NhbGFyX2V2b2x1dGlvbnNfYW5hbHl6ZXIpOiBSZW1vdmUuCgoyMDA0LTA5LTEyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X3NwbGl0X2FzaGxkaSk6IFNwZWNpYWwgY2FzZSBvcDEgYXMgb25lCglvciBtaW51cyBvbmUuCgkoaXg4Nl9zcGxpdF9hc2hyZGksIGl4ODZfc3BsaXRfbHNocmRpKTogQ2xlYW4gdXAgY29uZGl0aW9ucyBmb3IKCXBvc3QtcmVsb2FkLCBhbmQgc2NyYXRjaCBOVUxMLgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kICh0ZXN0cWlfMSk6IFVzZSBGTEFHU19SRUcgbmFtZS4KCSh4ODZfc2hpZnRfYWRqXzIpOiBVc2UgaXg4Nl9leHBhbmRfY2xlYXIuCgkoYXNobGRpMyk6IFJlbW92ZSBDTU9WRSBleHBhbnNpb24gZGlmZmVyZW5jZS4KCShhc2hsZGkzXzEpOiBSZW1vdmUuCgkoKmFzaGxkaTNfMSk6IFJlbmFtZSBmcm9tICphc2hsZGkzXzIuICBVc2UgcmVnX29yX3BtMV9vcGVyYW5kIGFuZAoJYWRkIGNvbnN0cmFpbnRzIGZvciBpbW1lZGlhdGVzLiAgTmV3IHBlZXBob2xlIGZvciBzcGxpdC13aXRoLXRlbXAuCglSdW4gc3BsaXR0ZXIgYWZ0ZXIgcGVlcDIgcGFzcy4KCShhc2hyZGkzLCBhc2hyZGkzXzEsIGFzaHJkaTNfMik6IFNpbWlsYXJseS4KCShsc2hyZGkzLCBsc2hyZGkzXzEsIGxzaHJkaTNfMik6IFNpbWlsYXJseS4KCShzZXRjY18yKTogUmVuYW1lIHdpdGggKi4KCSogY29uZmlnL2kzODYvcHJlZGljYXRlcy5tZCAocmVnX29yX3BtMV9vcGVyYW5kKTogTmV3LgoJKGFzaGxkaV9pbnB1dF9vcGVyYW5kKTogTmV3LgoKMjAwNC0wOS0xMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbQoKCSogcHJpbnQtcnRsLmMgKHByaW50X2RlY2xfbmFtZSk6IE5ldy4KCShwcmludF9tZW1fZXhwcik6IFVzZSBpdC4KCjIwMDQtMDktMTIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20KCglQUiAxNzE4NiwgcGFydCBkZXV4CgkqIGV4Y2VwdC5jIChzamxqX2VtaXRfZnVuY3Rpb25fZXhpdCk6IEZpeCBsb2dpYyBsb2NhdGluZwoJc2psal9leGl0X2FmdGVyIGluIGZpbmFsIGJsb2NrLgoKMjAwNC0wOS0xMiAgVG9vbiBNb2VuZSAgPHRvb25AbW9lbmUuaW5kaXYubmx1dWcubmw+CgoJKiBjb21tb24ub3B0OiBSZW1vdmUgZmxhZ3MgLWZtb3ZlLWFsbC1tb3ZhYmxlcyBhbmQKCS1mcmVkdWNlLWFsbC1naXZzLgoJKiBsb29wLWludmFyaWFudC5jIChmaW5kX2ludmFyaWFudHNfdG9fbW92ZSk6CglSZW1vdmUgYWxsIHVzZXMgb2YgZmxhZ19tb3ZlX2FsbF9tb3ZhYmxlcy4KCSogbG9vcC5jIChtb3ZlX21vdmFibGVzKTogUmVtb3ZlIGFsbCB1c2VzIG9mCglmbGFnX21vdmVfYWxsX21vdmFibGVzLgoJKHN0cmVuZ3RoX3JlZHVjZSk6IFJlbW92ZSBhbGwgdXNlcyBvZgoJZmxhZ19yZWR1Y2VfYWxsX2dpdnMuCgkqIGRvYy9pbnZva2UudGV4aTogUmVtb3ZlIGRvY3VtZW50YXRpb24gb2YgZmxhZ3MKCS1mcmVtb3ZlLWFsbC1tb3ZhYmxlcyBhbmQgLWZyZWR1Y2UtYWxsLWdpdnMuCgoyMDA0LTA5LTExICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBtaWRkbGUtZW5kLzE3NDExCgkqIHRyZWUtc3JhLmMgKGdlbmVyYXRlX2VsZW1lbnRfemVybyk6IFJldmVydCByZWNlbnQgYnVpbGRfaW50X2NzdAoJY2hhbmdlLiBlbHQtPnR5cGUgbWF5IGJlIGEgZmxvYXRpbmcgcG9pbnQgdHlwZSwgc28gdXNlIGZvbGRfY29udmVydC4KCjIwMDQtMDktMTEgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY29uZmlnL2Rhcndpbi5jIChtYWNob3BpY192YWxpZGF0ZV9zdHViX29yX25vbl9sYXp5X3B0cik6IE1hcmsKCXRoZSB0aGluZyByZWZlcmVuY2VkIGFzIHVzZWQsIG5vdCB0aGUgc3R1YiBpdHNlbGYuCgoyMDA0LTA5LTExICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtdHJlZS5oIChlbnVtIGNfc3RvcmFnZV9jbGFzcyk6IE5ldy4KCShzdHJ1Y3QgY19kZWNsc3BlY3MpOiBBZGQgc3RvcmFnZV9jbGFzcywgaW5saW5lX3AgYW5kIHRocmVhZF9wLgoJKiBjLWRlY2wuYyAoc2hhZG93X3RhZ193YXJuZWQpOiBHaXZlIGVycm9ycyBmb3IgImlubGluZSIgaW4gZW1wdHkKCWRlY2xhcmF0aW9ucyBhbmQgImF1dG8iIG9yICJyZWdpc3RlciIgaW4gZmlsZSBzY29wZSBlbXB0eQoJZGVjbGFyYXRpb25zLiAgR2l2ZSBtb3JlIHNwZWNpZmljIHdhcm5pbmdzIGZvciBvdGhlciBjYXNlcyBvZgoJc3RvcmFnZSBjbGFzcyBzcGVjaWZpZXJzIGluIGVtcHR5IGRlY2xhcmF0aW9ucy4KCShncm9rZGVjbGFyYXRvcik6IFVwZGF0ZSBmb3IgbmV3IHN0cnVjdHVyZXMuICBEb24ndCBjaGVjayBmb3IKCW11bHRpcGxlIHN0b3JhZ2UgY2xhc3Nlcy4gIERpYWdub3NlIGZpbGUtc2NvcGUgInJlZ2lzdGVyIiBpZgoJcGVkYW50aWMuCgkoYnVpbGRfbnVsbF9kZWNsc3BlY3MpOiBVcGRhdGUuCgkoZGVjbHNwZWNzX2FkZF9zY3NwZWMpOiBVcGRhdGUuICBEaWFnbm9zZSBtdWx0aXBsZSBzdG9yYWdlIGNsYXNzCglzcGVjaWZpZXJzIGFuZCBpbnZhbGlkIHVzZXMgb2YgIl9fdGhyZWFkIi4KCjIwMDQtMDktMTEgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlLmMgKHRyZWVfY29kZV9zaXplKTogTmV3IGZ1bmN0aW9uLCBidWxrIG9mIGNvZGUgZnJvbSB0cmVlX3NpemUuCgkodHJlZV9zaXplLCBtYWtlX25vZGUpOiBVc2UgaXQuCgkqIHRyZWUtc3NhLXByZS5jIChpbml0X3ByZSk6IFVzZSBpdC4KCSogdHJlZS5oOiBQcm90b3R5cGUgaXQuCgoyMDA0LTA5LTExICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJKiB0cmVlLWNmZy5jIChzZXRfYmJfZm9yX3N0bXQpOiBVc2UgUEhJX0JCLgoJKiB0cmVlLWRmYS5jIChjb21wdXRlX2ltbWVkaWF0ZV91c2VzLCBhZGRfaW1tZWRpYXRlX3VzZSwKCXJlZGlyZWN0X2ltbWVkaWF0ZV91c2UpOiBVc2UgUEhJX0RGLgoJKiB0cmVlLWZsb3ctaW5saW5lLmggKHN0bXRfYW5uKTogQWJvcnQgb24gcGhpIG5vZGVzLgoJKGJiX2Zvcl9zdG10KTogVXNlIFBISV9CQi4KCShnZXRfaW1tZWRpYXRlX3VzZXMpOiBVc2UgUEhJX0RGLgoJKiB0cmVlLXNzYS1kc2UuYyAobWF4X3N0bXRfdWlkKTogTmV3IHZhcmlhYmxlLgoJKGdldF9zdG10X3VpZCk6IE5ldyBmdW5jdGlvbi4KCShkc2Vfb3B0aW1pemVfc3RtdCwgZHNlX3JlY29yZF9waGlzLCB0cmVlX3NzYV9kc2UpOiBEbyBub3QgdXNlIHBoaQoJbm9kZSBhbm5vdGF0aW9ucy4KCSogdHJlZS1zc2EtbG9vcC1pbS5jIChMSU1fREFUQSk6IERvIG5vdCB1c2UgcGhpIHN0YXRlbWVudCBhbm5vdGF0aW9ucy4KCShtYXhfdWlkKTogUmVuYW1lZCB0byBtYXhfc3RtdF91aWQuCgkoZ2V0X3N0bXRfdWlkKTogTmV3IGZ1bmN0aW9uLgoJKG1heWJlX3F1ZXVlX3Zhciwgc2luZ2xlX3JlYWNoYWJsZV9hZGRyZXNzLCBkZXRlcm1pbmVfbHNtKTogRG8gbm90IHVzZQoJcGhpIG5vZGUgYW5ub3RhdGlvbnMuCgkqIHRyZWUtc3NhLmMgKHJlcGxhY2VfaW1tZWRpYXRlX3VzZXMpOiBEbyBub3QgdXNlIHBoaSBub2RlIGFubm90YXRpb25zLgoJKiB0cmVlLmggKFBISV9CQiwgUEhJX0RGKTogTmV3IGFjY2Vzc29yIGZ1bmN0aW9ucy4KCShzdHJ1Y3QgdHJlZV9waGlfbm9kZSk6IEFkZCBiYiBhbmQgZGYgZmllbGRzLgoKMjAwNC0wOS0xMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5kLzE3NDE2CgkqIGNmZ2V4cGFuZC5jIChleHBhbmRfdXNlZF92YXJzX2Zvcl9ibG9jayk6IEZpeCBvZmYtYnktb25lIGJ1ZwoJaW4gY29uZmxpY3QgbG9vcC4KCjIwMDQtMDktMTEgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIGkzODYuaCAoTU9ERV9ORUVERUQpOiBDYWxscyBuZWVkIFVOSU5JVElBTElaRUQgbW9kZTsgYWRkIGNvbW1lbnQuCgkoRU1JVF9NT0RFX1NFVCk6IFVOSU5JVElBTElaRUQgbW9kZSBuZWVkcyBubyBzZXQuCgkqIGkzODYubWQgKGkzODdfY3cpOiBBZGQgJ3VuaW5pdGlhbGl6ZWQnIG1vZGUuCgoJKiBwcm9maWxlLmMgKEJCX1RPX0dDT1ZfSU5ERVgpOiBtb3ZlIG1vcmUgdG8gdGhlIGZyb250LgoJKG91dHB1dF9sb2NhdGlvbik6IEJyZWFrIG91dCBmcm9tIC4uLi4KCShicmFuY2hfcHJvYik6IC4uLiBoZXJlOyBoYW5kbGUgZ2NvdiBvdXRwdXQgb24gdHJlZXMuCgkqIHRvcGxldi5jIChwcm9jZXNzX29wdGlvbnMpOiBObyBsb25nZXIgYmUgc29ycnkgYWJvdXQgY292ZXJhZ2UgZm9yCgl0cmVlcy4KCjIwMDQtMDktMTEgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCglQUiBjKysvMTc0MTIKCSogZm9sZC1jb25zdC5jIChmb2xkKTogRG8gbm90IHRyeSB0byBmb2xkIHRoZSBvcGVyYW5kIG9mIGEKCUNMRUFOVVBfUE9JTlRfRVhQUiBpZiB0aGF0IG9wZXJhbmQgZG9lcyBpdHNlbGYgbm90IGhhdmUgYW55CglvcGVyYW5kcy4KCglQUiBtaWRkbGUtZW5kLzE3NDE3CgkqIGxhbmdob29rcy5jIChsaGRfZGVjbF9wcmludGFibGVfbmFtZSk6IE1ha2Ugc3VyZSB0aGF0IHRoaXMKCWZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIGlzIGEgZGVjbCBub2RlIHRoYXQgaGFzIGFuIGlkZW50aWZpZXIuCgkqIHRyZWUtcHJldHR5LXByaW50LmMgKGR1bXBfZnVuY3Rpb25fbmFtZSk6IE5ldyBmdW5jdGlvbiB0bwoJd3JhcCBQUklOVF9GVU5DVElPTl9OQU1FIGFuZCBkdW1wX2RlY2xfbmFtZS4KCShwcmludF9jYWxsX25hbWUpOiBVc2UgaXQuCgoyMDA0LTA5LTExICBNb2hhbiBFbWJhciAgPGdudXN0dWZmQHRoaXNpc2Nvb2wuY29tPgoKCSogZ2djLW5vbmUuYzogSW5jbHVkZSAiYmNvbmZpZy5oIiBpZiAtREdFTkVSQVRPUl9GSUxFLAoJImNvbmZpZy5oIiBpZiBub3QuCgoyMDA0LTA5LTExICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWFsaWFzLmMgKGNvbGxlY3RfcG9pbnRzX3RvX2luZm9fcik6IEhhbmRsZQoJcG9pbnRpbmcgdG8gUFRSICsgT0ZGU0VUIGFzIFBUUiwgbm90IGFzIHBvaW50aW5nIHRvIFBUUiBvciBwb2ludGluZwoJdG8gT0ZGU0VULgoKMjAwNC0wOS0xMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGV4cHIuYyAoZXhwYW5kX2V4cHJfYWRkcl9leHByXzEpIFJlbmFtZSBmcm9tIGV4cGFuZF9leHByX2FkZHJfZXhwci4KCShleHBhbmRfZXhwcl9hZGRyX2V4cHIpOiBOZXcgZnVuY3Rpb24uICBUYWtlIEFERFJfRVhQUiBpbnN0ZWFkIG9mIHRoZQoJb3BlcmFuZCBvZiB0aGUgQUREUl9FWFBSLgoJKGV4cGFuZF9leHByX3JlYWxfMSk6IFVwZGF0ZSB0byBtYXRjaC4KCjIwMDQtMDktMTEgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCglQUiB0YXJnZXQvMTcyNzcKCSogY29uZmlnL3JzNjAwMC9haXguaCAoTURfRlJPQl9VUERBVEVfQ09OVEVYVCk6IFVzZSBfXzY0QklUX18gdG8KCWNob29zZSA2NC1iaXQgdmVyc2lvbi4KCjIwMDQtMDktMTEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgYy8xNzM5NgoJKiBjLXR5cGVjay5jIChidWlsZF91bmFyeV9vcCk6IEFkZCBsZWdhY3kgb2Zmc2V0b2YgaGFjay4KCjIwMDQtMDktMTEgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBkb2MvY2ZnLnRleGksIGRvYy9ob3N0Y29uZmlnLnRleGksIGRvYy9pbnN0YWxsLnRleGksCglkb2MvaW52b2tlLnRleGksIGRvYy9tZC50ZXhpLCBkb2MvdG0udGV4aSwgZG9jL3RyZWUtc3NhLnRleGk6CglJbnNlcnQgQDogYWZ0ZXIgaS5lLiBvciBlLmcuCgoyMDA0LTA5LTEwICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIHRyZWUtcHJldHR5LXByaW50LmMgKGR1bXBfZGVjbF9uYW1lKTogUHJpbnQgdW5uYW1lZCBkZWNscyBhcwoJRC54eHggcmF0aGVyIHRoYW4gPER4eHg+LgoKMjAwNC0wOS0xMCAgQWRhbSBOZW1ldCAgPGFuZW1ldEBsbnh3LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAoQUNfTVNHX0NIRUNLSU5HKHdoYXQgbGlua2VyIHRvIHVzZSkpOgoJaW5fdHJlZV9sZF9pc19lbGYgc2hvdWxkIGJlIHRydWUgZm9yIEx5bnhPUy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNC0wOS0xMCAgQWRhbSBOZW1ldCAgPGFuZW1ldEBsbnh3LmNvbT4KCgkqIE1ha2VmaWxlLmluIChhbGwuY3Jvc3MpOiBBZGQgc3JjZXh0cmEuCgoyMDA0LTA5LTEwICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCglQUiBtaWRkbGUtZW5kLzE3MDI0CgkqIGZvbGQtY29uc3QuYyAoZm9sZF9jb25kX2V4cHJfd2l0aF9jb21wYXJpc29uKTogSGFuZGxlIHVub3JkZXJlZAoJZmxvYXRpbmcgcG9pbnQgY29tcGFyaXNvbiBvcGVyYXRvcnMuICBDaGFuZ2UgYWJvcnRzIHRvIGdjY19hc3NlcnRzLgoKMjAwNC0wOS0xMCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBmaW5hbC5jIChvdXRwdXRfYXNtX2luc24pOiBDb3JyZWN0IHByb2JsZW0gd2l0aCAtZnZlcmJvc2UtYXNtLgoKMjAwNC0wOS0xMCAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogTWFrZWZpbGUuaW4gKExJQkdDQ19ERVBTKTogRGVsZXRlIGR1cGxpY2F0ZSBzdG1wLWludC1oZHJzIHJlZmVyZW5jZS4KCShzdG1wLWZpeHByb3RvKTogQ2hhbmdlIHN0bXAtaW50LWhlYWRlcnMgdG8gc3RtcC1pbnQtaGRycyBpbiBjb21tZW50LgoKCSogY29udmVydC5jIChjb252ZXJ0X3RvX3ZlY3Rvcik6IFJlcGxhY2UgcmVjdXJzaXZlIGNhbGwgd2l0aAoJZXJyb3JfbWFya19ub2RlLgoKCSogZW1pdC1ydGwuYyAoZ2VuX2NvbnN0X3ZlY3Rvcik6IFJlbmFtZWQgZnJvbSBnZW5fY29uc3RfdmVjdG9yXzAuCglBZGQgaW50ZWdlciBhcmd1bWVudCBuYW1lZCBjb25zdGFudC4gIFVzZSBjb25zdF90aW55X3J0eCBpbnN0ZWFkIG9mCglDT05TVDBfUlRYLgoJKGdlbl9ydHhfQ09OU1RfVkVDVE9SKTogUmV3cml0ZSB0byBoYW5kbGUgY2hlY2tzIGZvciBib3RoIENPTlNUMF9SVFgKCWFuZCBDT05TVDFfUlRYLgoJKGluaXRfZW1pdF9vbmNlKTogRml4IHVzZXJzIG9mIGdlbl9jb25zdF92ZWN0b3IuICBTZXQgQ09OU1QxX1JUWCBmb3IKCXZlY3RvciB0eXBlcy4KCSogZXhwci5jIChjb25zdF92ZWN0b3JfZnJvbV90cmVlKTogQ2FsbCBnZW5fcnR4X0NPTlNUX1ZFQ1RPUiBpbnN0ZWFkCglvZiBnZW5fcnR4X3Jhd19DT05TVF9WRUNUT1IuCgoyMDA0LTA5LTEwICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCglQUiBjLzE2MDQ2CgkqIGMtcGFyc2UuaW4gKGF0dHJpYnV0ZSk6IEFkZCBOVUxMX1RSRUUgZm9yIGVycm9yIGNhc2UKCWZvciBlcnJvciByZWNvdmVyeS4KCjIwMDQtMDktMTAgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLWNvbW1vbi5oIChzdHJ1Y3QgY19maWxlaW5mbyk6IENvbW1lbnQgbW92ZWQgaGVyZSBmcm9tIGNwLXRyZWUuaC4KCShleHRyYWN0X2ludGVyZmFjZV9pbmZvKTogRGVsZXRlIHByb3RvdHlwZS4KCSogYy1kZWNsLmMgKGV4dHJhY3RfaW50ZXJmYWNlX2luZm8pOiBEZWxldGUgc3R1Yi4KCSogYy1sZXguYyAoZ2V0X2ZpbGVpbmZvKTogSW5pdGlhbGl6ZSBmaWxlX2luZm9fdHJlZSBoZXJlLCBpZgoJaXQncyBub3QgYWxyZWFkeSBiZWVuIGRvbmUgLi4uCgkoaW5pdF9jX2xleCk6IC4uLiBub3QgaGVyZS4KCShmZV9maWxlX2NoYW5nZSk6IERvbid0IGNhbGwgZXh0cmFjdF9pbnRlcmZhY2VfaW5mby4KCjIwMDQtMDktMTEgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYy10cmVlLmggKHN0cnVjdCBjX2RlY2xzcGVjcyk6IFJlbW92ZSB0eXBlZGVmX2RlY2wuICBBZGQKCXR5cGVkZWZfcCBhbmQgdHlwZWRlZl9zaWduZWRfcC4KCSogYy1kZWNsLmMgKHNoYWRvd190YWdfd2FybmVkKTogQ2hlY2sgdHlwZWRlZl9wLCBub3QgdHlwZWRlZl9kZWNsLgoJKGdyb2tkZWNsYXJhdG9yKTogRG9uJ3QgdXNlIHR5cGVkZWZfZGVjbCBmb3Igd2Fybl9kZXByZWNhdGVkX3VzZS4KCUNoZWNrIHR5cGVkZWZfcCBhbmQgdHlwZWRlZl9zaWduZWRfcCwgbm90IHR5cGVkZWZfZGVjbC4KCShncm9rZmllbGQpOiBDaGVjayB0eXBlZGVmX3AsIG5vdCB0eXBlZGVmX2RlY2wuCgkoYnVpbGRfbnVsbF9kZWNsc3BlY3MpOiBJbml0aWFsaXplIHR5cGVkZWZfcCBhbmQgdHlwZWRlZl9zaWduZWRfcCwKCW5vdCB0eXBlZGVmX2RlY2wuCgkoZGVjbHNwZWNzX2FkZF90eXBlKTogU2V0IHR5cGVkZWZfcCBhbmQgdHlwZWRlZl9zaWduZWRfcCwgbm90Cgl0eXBlZGVmX2RlY2wuCgoyMDA0LTA5LTEwICBLYXp1IEhpcmF0YSAgPGthenVAY3MudW1hc3MuZWR1PgoKCSogZG9jL3RtLnRleGksIGRvYy90cmVlLXNzYS50ZXhpOiBGaXggdHlwb3MuCgoyMDA0LTA5LTEwICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGdpbXBsaWZ5LmMgKGNyZWF0ZV90bXBfdmFyX3Jhdyk6IERvbid0IG5hbWUgb3RoZXJ3aXNlLW5hbWVsZXNzCgl0ZW1wb3JhcnkgdmFyaWFibGVzLgoKCSogZGJ4b3V0LmMgKGRieG91dF9ibG9jayk6IFVwZGF0ZSBmb3IKCWN1cnJlbnRfZnVuY3Rpb25fZnVuY19iZWdpbl9sYWJlbCBhIHN0cmluZy4KCSogZHdhcmYyb3V0LmMgKGR3YXJmMm91dF9iZWdpbl9wcm9sb2d1ZSk6IExpa2V3aXNlLgoJKiBleGNlcHQuYyAoZHcyX291dHB1dF9jYWxsX3NpdGVfdGFibGUpOiBMaWtld2lzZS4KCSogdG9wbGV2LmMgKGN1cnJlbnRfZnVuY3Rpb25fZnVuY19iZWdpbl9sYWJlbCk6IExpa2V3aXNlLgoJKiB0cmVlLmggKGN1cnJlbnRfZnVuY3Rpb25fZnVuY19iZWdpbl9sYWJlbCk6IExpa2V3aXNlLgoJKiBjb25maWcvcnM2MDAwL2xpbnV4NjQuaCAoREJYX09VVFBVVF9CUkFDKTogTGlrZXdpc2UuCgoJKiBmaW5hbC5jIChvdXRwdXRfYXNtX2luc24pOiBVc2Ugc3RydG91bCBpbnN0ZWFkIG9mIGF0b2ksIHNhdmUgYQoJbG9vcC4KCgkqIGNvbmZpZy9kYXJ3aW4uYzogSW5jbHVkZSB0YXJnZXQuaC4KCShzdHJ1Y3QgbWFjaG9waWNfaW5kaXJlY3Rpb24pOiBNYWtlIHB0cl9uYW1lIGEgc3RyaW5nLgoJKG1hY2hvcGljX2luZGlyZWN0aW9uX2hhc2gpOiBVcGRhdGUgZm9yIHB0cl9uYW1lIGEgc3RyaW5nLgoJKG1hY2hvcGljX2luZGlyZWN0aW9uX2VxKTogTGlrZXdpc2UuCgkobWFjaG9waWNfaW5kaXJlY3Rpb25fbmFtZSk6IExpa2V3aXNlLgoJKG1hY2hvcGljX291dHB1dF9pbmRpcmVjdGlvbik6IExpa2V3aXNlLgoJKG1hY2hvcGljX3ZhbGlkYXRlX3N0dWJfb3Jfbm9uX2xhenlfcHRyKTogVXBkYXRlIGZvciBwdHJfbmFtZSBhCglzdHJpbmcuICBEb24ndCBleHBlY3Qgc3R1YiBuYW1lcyB0byBiZSBpbiB0aGUgaWRlbnRpZmllciBoYXNoIHRhYmxlLgoJRG8gY2FsbCBzdHJpcF9uYW1lX2VuY29kaW5nIGJlZm9yZSBsb29raW5nIHVwIGVudHJ5IGluIElEIGhhc2ggdGFibGUuCgkqIGNvbmZpZy90LWRhcndpbiAoZGFyd2luLm8pOiBBZGQgdGFyZ2V0LmggdG8gZGVwZW5kZW5jaWVzLgoKCSogZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHByaW50X29wZXJhbmQpOiBVc2UgZnB1dHMgaW5zdGVhZAoJb2YgZnByaW50ZiBmb3IgcmVnaXN0ZXIgbmFtZXMuCgoJKiBvdXRwdXQuaCAodW5saWtlbHlfc2VjdGlvbl9sYWJlbCk6IERlbGV0ZSBkZWNsYXJhdGlvbi4KCSh1bmxpa2VseV90ZXh0X3NlY3Rpb25fbmFtZSk6IExpa2V3aXNlLgoJKiB2YXJhc20uYyAodW5saWtlbHlfc2VjdGlvbl9sYWJlbF9wcmludGVkKTogTWFrZSBzdGF0aWMuCgkodW5saWtlbHlfc2VjdGlvbl9sYWJlbCk6IExpa2V3aXNlLgoJKHVubGlrZWx5X3RleHRfc2VjdGlvbl9uYW1lKTogTGlrZXdpc2UuCgkoYXNzZW1ibGVfc3RhcnRfZnVuY3Rpb24pOiBVc2UgcmVjb25jYXQuCgoJKiBydGwuZGVmIChSRUcpOiBBZGQgY29tbWVudCB0byBkZXNjcmliZSB0aGlyZCBmaWVsZC4KCjIwMDQtMDktMTAgIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW4uYyAobWFjaG9waWNfbWNvdW50X3N0dWJfbmFtZSk6IENhbGwKCW1hY2hvcGljX2luZGlyZWN0aW9uX25hbWUgaW5zdGVhZCBvZiBtYWtpbmcgdGhlIHN0cmluZwoJb3Vyc2VsdmVzLgoKMjAwNC0wOS0xMCAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUmV2ZXJ0CgoJMjAwNC0wOS0wOCAgSmllIFpoYW5nICA8emhhbmdqaWVAbWFnaW1hLmNvbS5jbj4KCgkgICAgKiB0cmVlLXNzYS1hbGlhcy5jIChjb21wdXRlX2Zsb3dfaW5zZW5zaXRpdmVfYWxpYXNpbmcpOiBJZiB0eXBlCgkgICAgbWVtb3J5IHRhZyBpcyBjYWxsIGNsb2JiZXJlZCwgc28gYXJlIGl0cyBhbGlhc2VzLgoJICAgIChncm91cF9hbGlhc2VzKTogV2hlbiB0d28gbWVtb3J5IHRhZ3MgYmVpbmcgZ3JvdXBlZCwgaWYgb25lIGlzCgkgICAgY2FsbCBjbG9iYmVyZWQsIHNvIGFyZSB0aGUgb3RoZXIgYW5kIGl0cyBhbGlhc2VzLgoJICAgIChhZGRfbWF5X2FsaWFzKTogUmVtb3ZlIGNhbGwtY2xvYmJlcmluZyBzdHVmZi4KCSAgICAocmVwbGFjZV9tYXlfYWxpYXMpOiBMaWtld2lzZS4KCSAgICAobWVyZ2VfcG9pbnRlZF90b19pbmZvKTogTWVyZ2UgcHRfZ2xvYmFsX21lbQoKMjAwNC0wOS0xMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGJiLXJlb3JkZXIuYywgYy1jb21tb24uYywgYy1pbmNwYXRoLmMsIGMtdHlwZWNrLmMsCglnZW5yZWNvZy5jLCBsYW1iZGEtY29kZS5jLCBtaXBzLXRkdW1wLmMsIG1pcHMtdGZpbGUuYywKCXBhc3Nlcy5jLCB0cmVlLWRhdGEtcmVmLmMsIHRyZWUtZGF0YS1yZWYuaCwgdHJlZS1tdWRmbGFwLmMsCgl0cmVlLXNjYWxhci1ldm9sdXRpb24uYywgdHJlZS1zc2EtY29weXJlbmFtZS5jLAoJdHJlZS1zc2EtbGl2ZS5jLCB0cmVlLXNzYS1saXZlLmg6IEZpeCBjb21tZW50IHR5cG9zLgoKMjAwNC0wOS0xMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL2Zydi9mcnYubWQgKFVOU1BFQ19NQVNBQ0NTLCBVTlNQRUNfTURBU0FDQ1MpOiBOZXcgY29uc3RhbnRzLgoJKG1hZGRhY2NzLCBtc3ViYWNjcywgKm1hZGRhY2MpOiBUdXJuIG9wZXJhbmQgMCBpbnRvIGEgc2luZ2xlIEFDQy9BQ0NHCglwYWlyLiAgUmVtb3ZlIG1hdGNoX2R1cCBmcm9tIGlucHV0cy4gIFJlbW92ZSBtYXNhY2NzIGhhbmRsaW5nLgoJKG1kYWRkYWNjcywgbWRzdWJhY2NzLCAqbWRhZGRhY2MpOiBMaWtld2lzZSBhIGR1YWwgQUNDL0FDQ0cgcGFpci4KCShtYXNhY2NzLCBtZGFzYWNjcyk6IFR1cm4gaW50byBkZWZpbmVfaW5zbnMuCgoyMDA0LTA5LTEwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiB0cmVlLXRhaWxjYWxsLmMgKHByb2Nlc3NfYXNzaWdubWVudCk6IE9ubHkgZG8gYWNjdW11bGF0b3IgdHJhbnNmb3JtcwoJZm9yIGZsb2F0aW5nLXBvaW50IHR5cGVzIGlmIGZsYWdfdW5zYWZlX21hdGhfb3B0aW1pemF0aW9ucy4KCjIwMDQtMDktMTAgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjb25maWcvZGFyd2luLmMsIGNvbmZpZy9hbHBoYS9hbHBoYS5oLCBjb25maWcvYXJtL2FybS5jLAoJY29uZmlnL2FybS9hcm0uaCwgY29uZmlnL2FybS9hcm0ubWQsIGNvbmZpZy9hcm0vYnBhYmkuaCwKCWNvbmZpZy9hcm0vcHJlZGljYXRlcy5tZCwgY29uZmlnL2Zydi9mcnYuYywgY29uZmlnL2Zydi9mcnYubWQsCgljb25maWcvaDgzMDAvaDgzMDAubWQsIGNvbmZpZy9pMzg2L2dtbV9tYWxsb2MuaCwKCWNvbmZpZy9pYTY0L2lhNjQubWQsIGNvbmZpZy9pcDJrL2xpYmdjYy5TLAoJY29uZmlnL21pcHMvbWlwcy1wcy0zZC5tZCwgY29uZmlnL21pcHMvbWlwcy5jLAoJY29uZmlnL3JzNjAwMC9yczYwMDAuYywgY29uZmlnL3MzOTAvczM5MC5jLAoJY29uZmlnL3NoL3N5bWJpYW4uYzogRml4IGNvbW1lbnQgdHlwb3MuCgoyMDA0LTA5LTEwICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsMUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX2VtaXRfcHJvbG9ndWUpOiBBZGRlZCBtaXNzaW5nCgkie30iIGJyYWNrZXRzLgoKMjAwNC0wOS0xMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGRvYy9leHRlbmQudGV4aSwgZG9jL2ludm9rZS50ZXhpLCBkb2MvcGFzc2VzLnRleGk6IEZpeAoJdHlwb3MuICBGb2xsb3cgc3BlbGxpbmcgY29udmVudGlvbnMuCgoyMDA0LTA5LTEwICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIHRvcGxldi5jICh3YXJuX2RlcHJlY2F0ZWRfdXNlKTogQ29ycmVjdCBsb2dpYyBmb3Igc2F5aW5nICJ0eXBlIgoJaW4gZGlhZ25vc3RpYy4gIERvbid0IGRlcmVmZXJlbmNlIE5VTEwgVFlQRV9OQU1FLgoKMjAwNC0wOS0xMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGMtY29tbW9uLmMsIGMtcGNoLmMsIGRlZmF1bHRzLmgsIGxhbWJkYS1jb2RlLmMsIHBhc3Nlcy5jLAoJdHJlZS1kYXRhLXJlZi5jLCB0cmVlLWZsb3cuaCwgdHJlZS1zc2Etb3BlcmFuZHMuYywKCXRyZWUtc3NhLXRocmVhZHVwZGF0ZS5jLCB0cmVlLXZlY3Rvcml6ZXIuYywgdHJlZS12ZWN0b3JpemVyLmgsCgl2YWx1ZS1wcm9mLmM6IEZpeCBjb21tZW50IHR5cG9zLiAgRm9sbG93IHNwZWxsaW5nIGNvbnZlbnRpb25zLgoKMjAwNC0wOS0xMCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogdHJlZS1zc2EtZGNlLmMgKHJlbW92ZV9kZWFkX3N0bXQpOiBVcGRhdGUgcHJvZmlsZS4KCSogdHJlZS1zcGxpdF9lZGdlLmMgKHRyZWVfc3BsaXRfZWRnZSk6IExpa2V3aXNlLgoJKHRocmVhZF9qdW1wcyk6IExpa2V3aXNlLgoKMjAwNC0wOS0xMCAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGNncmFwaHVuaXQuYywgcHJlZGljdC5jLCB0cmVlLXNzYS1sb29wLWl2b3B0cy5jOiBGaXggY29tbWVudAoJdHlwb3MuCgoyMDA0LTA5LTEwICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogY2dyYXBoLmggKGNncmFwaF9kdW1wX2ZpbGUpOiBEbyBub3QgZGVjbGFyZS4KCSogY2dyYXBodW5pdC5jIChjZ3JhcGhfZHVtcF9maWxlKTogRGVjbGFyZSBhcyBzdGF0aWMuCgkoaW5pdF9jZ3JhcGgpOiBOZXcuCgkqIHRvcGxldi5jIChjZ3JhcGhfZHVtcF9maWxlKTogRG8gbm90IGRlY2xhcmUuCgkoY29tcGlsZV9maWxlKTogQ2FsbCBpbml0X2NncmFwaC4KCSogdHJlZS1kdW1wLmMgKGR1bXBfZmlsZXMpOiBBZGQgSVBBIGR1bXAgZmlsZSwgcmVtb3ZlCglYTUwgZHVtcCBvZiBjYWxsIGdyYXBoLgoJKGdldF9kdW1wX2ZpbGVfbmFtZSk6IFN1cHBvcnQgSVBBIGR1bXAgZmlsZSBuYW1pbmcgc2NoZW1lLgoJKiB0cmVlLmggKGVudW0gdHJlZV9kdW1wX2luZGV4KTogQWRkIElQQSBkdW1wIGZpbGUsIHJlbW92ZQoJWE1MIGR1bXAgb2YgY2FsbCBncmFwaC4KCSogZG9jL2ludm9rZS50ZXhpIChEZWJ1Z2dpbmcgT3B0aW9ucyk6IERvY3VtZW50IHRoZSBuZXcgb3B0aW9ucy4KCjIwMDQtMDktMTAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGRvYy9leHRlbmQudGV4aTogRG9jdW1lbnQgdGhlIEZSLVYgYnVpbHQtaW4gZnVuY3Rpb25zLgoKMjAwNC0wOS0wOSAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogZG9jL3NvdXJjZWJ1aWxkLnRleGk6IERlbGV0ZSBsaWJiYW5zaGVlIHJlZmVyZW5jZS4KCjIwMDQtMDktMTAgIEtlbGxleSBDb29rICA8a2Nvb2tAZ2NjLmdudS5vcmc+CgoJKiBNYWtlZmlsZS5pbiAocy1ndHlwZSk6IEFkZCAkKGJ1aWxkX2V4ZWV4dCkgdG8gZ2VuZ3R5cGUgY29tbWFuZC4KCjIwMDQtMDktMDkgIEphbWVzIEUgV2lsc29uICA8d2lsc29uQHNwZWNpZml4aW5jLmNvbT4KCgkqIGMtdHlwZWNrLmMgKGNvbnZlcnRfZm9yX2Fzc2lnbm1lbnQpOiBDaGVjayB0aGF0IHJocyBoYXMgVkVDVE9SX1RZUEUKCWJlZm9yZSBjYWxsaW5nIHZlY3Rvcl90eXBlc19jb252ZXJ0aWJsZV9wLgoJKGRpZ2VzdF9pbml0KTogQ2hlY2sgdGhhdCBpbnNpZGVfaW5pdCBoYXMgVkVDVE9SX1RZUEUgYmVmb3JlIGNhbGxpbmcKCXZlY3Rvcl90eXBlc19jb252ZXJ0aWJsZV9wLiAgRG9uJ3QgZ2l2ZSBhbm90aGVyIGVycm9yIGlmCgljb252ZXJ0X2Zvcl9hc3NpZ25tZW50IHJldHVybnMgZXJyb3JfbWFya19ub2RlLgoKMjAwNC0wOS0wOSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgbWlkZGxlLWVuZC8xNzA1NQoJKiBmb2xkLWNvbnN0LmMgKGJ1aWxkX3plcm9fdmVjdG9yKTogTmV3IGZ1bmN0aW9uIHRvIGNvbnN0cnVjdCBhCgl2ZWN0b3IgKGVpdGhlciBmbG9hdGluZyBwb2ludCBvciBpbnRlZ2VyKSBvZiB6ZXJvcy4KCShmb2xkX2NvbnZlcnQpOiBJbnRlcm5hbGx5LCBlbmFibGUgY29udmVyc2lvbnMgb2YgaW50ZWdlciB6ZXJvCgl0byBhcmJpdHJhcnkgdmVjdG9yIHR5cGVzLCB1c2luZyB0aGUgbmV3IGJ1aWxkX3plcm9fdmVjdG9yLgoKMjAwNC0wOS0wOSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfZXhwYW5kX2FzaGxzaTNfY29uc3QpOiBOZXcgZnVuY3Rpb24gdG8KCWV4cGFuZCBhIGxlZnQgc2hpZnQgYnkgYW4gaW1tZWRpYXRlIGNvbnN0YW50IGFzIGVpdGhlciBhbiBhc2hsIG9yCglhIHNlcXVlbmNlIG9mIGFkZGl0aW9ucy4KCShpeDg2X3NwbGl0X2FzaGxkaSk6IFVzZSBuZXcgaXg4Nl9leHBhbmRfYXNobHNpM19jb25zdCBmdW5jdGlvbgoJaW5zdGVhZCBvZiBjYWxsaW5nIGdlbl9hc2hsc2kzIHdpdGggYSBjb25zdGFudCBkaXJlY3RseS4KCjIwMDQtMDktMDkgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X3NwbGl0X2xvbmdfbW92ZSk6IFdoZW4gb3B0aW1pemluZyBmb3IKCXNpemUsIGFuZCB0aGUgbG93IGFuZCBoaWdoIHBhcnRzIG9mIGEgREltb2RlIGNvbnN0YW50IGFyZSBlcXVhbCwKCWNvcHkgb25lIHJlZ2lzdGVyIHRvIGFub3RoZXIgaW5zdGVhZCBvZiBsb2FkaW5nIHRoZSBzYW1lIGltbWVkaWF0ZQoJdmFsdWUgdHdpY2UuCgoyMDA0LTA5LTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIG1pZGRsZS1lbmQvMTczNjcKCSogZnVuY3Rpb24uYyAoYXNzaWduX3Bhcm1fc2V0dXBfYmxvY2spOiBPbmx5IHB1dCBQQVJBTExFTHMgaW50bwoJYSByZWdpc3RlciBpZiB1c2VfcmVnaXN0ZXJfZm9yX2RlY2wuCgoyMDA0LTA5LTA5ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIHJhLWNvbG9yaXplLmMgKHJlc2V0X2xpc3RzKTogTW92ZSB2YXJpYWJsZSBkZWNsYXJhdGlvbiBpbnNpZGUKCUVOQUJMRV9DSEVDS0lORyB0byBhdm9pZCB1bnVzZWQgdmFyaWFibGUgd2FybmluZ3Mgd2hlbgoJbm90IC0tZW5hYmxlLWNoZWNraW5nLgoJKGNoZWNrX2NvbG9ycyk6IERpdHRvLgoKMjAwNC0wOS0wOSAgTWlrZSBTdHVtcCAgPG1yc0BhcHBsZS5jb20+CgoJKiB2ZXJzaW9uLmMgKHZlcnNpb25fc3RyaW5nKTogQnVtcCB0byA0LjAuMC4KCSogZG9jL2luY2x1ZGUvZ2NjLWNvbW1vbi50ZXhpICh2ZXJzaW9uLUdDQyk6IExpa2V3aXNlLgoKMjAwNC0wOS0xMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBkb2MvZXh0ZW5kLnRleGkgKG5vdGhyb3cgYXR0cmlidXRlKTogVGhlIGF0dHJpYnV0ZSBpcyBub3QKCWltcGxlbWVudGVkIGluIDMuMiBhbmQgZWFybGllci4KCjIwMDQtMDktMDkgIFN0ZXZlIEVsbGNleSAgPHNqZUBjdXAuaHAuY29tPgoKCSogZ2VucmVjb2cuYyAoY29tcHV0ZV9wcmVkaWNhdGVfY29kZXMpOiBVc2Ugb3AwX2NvZGVzCglpbnN0ZWFkIG9mIGNvZGVzLgoKMjAwNC0wOS0wOSAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogcmEtY29sb3JpemUuYyAoaGFyZHJlZ3NldF90b19zdHJpbmcpOiBBZGFwdCB0byBIQVJEX1JFR19TRVQKCWltcGxlbWVudGF0aW9uIGNoYW5nZXMuCgoyMDA0LTA5LTA5ICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb21iaW5lLmMgKHRyeV9jb21iaW5lKTogV2hlbiBzd2FwcGluZyBpMiBhbmQgaTMsIG5ld2kycGF0IG1heSBiZQoJYSBQQVJBTExFTCBpbnN0ZWFkIG9mIGEgU0VUIGR1ZSB0byBhZGRlZCBjbG9iYmVycy4KCjIwMDQtMDktMDkgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIHJlbG9hZC5jIChmaW5kX3JlbG9hZHNfYWRkcmVzcyk6IFBhc3MgY29ycmVjdCBvcGVyYW5kIHRvCgltYXliZV9tZW1vcnlfYWRkcmVzc19wLgoKMjAwNC0wOS0wOSAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiBNYWtlZmlsZS5pbjogUmVtb3ZlIGxpYmJhbnNoZWUsIHRyZWUtYWxpYXMtKi4KCVJlbW92ZSB0cmVlLWFsaWFzLWNvbW1vbi5oIGRlcGVuZGVuY2llcy4KCSogY29tbW9uLm9wdDogUmVtb3ZlIC1mdHJlZS1wb2ludHMtdG8uCgkqIGNvbmZpZ3VyZS5hYzogUmVtb3ZlIGxpYmJhbnNoZWUuCgkqIGZsYWdzLmg6IFJlbW92ZSBwdGFfdHlwZSwgZmxhZ190cmVlX3BvaW50c190by4KCSogZ2VuZ3R5cGUuYyAob3Blbl9iYXNlX2ZpbGVzKTogUmVtb3ZlIHRyZWUtYWxpYXMtdHlwZS5oLgoJKiBvcHRzLmMgKE9QVF9mdHJlZV9wb2ludHNfdG8pOiBSZW1vdmUuCgkqIHRvcGxldi5jOiBSZW1vdmUgdHJlZS1hbGlhcy1jb21tb24uaCwgZmxhZ190cmVlX3BvaW50c190by4KCSogdHJlZS1kZmEuYzogUmVtb3ZlIHRyZWUtYWxpYXMtY29tbW9uLmgKCSogdHJlZS1pbnRvLXNzYS5jOiBEaXR0by4KCSogdHJlZS1vdXRvZi1zc2EuYzogRGl0dG8uCgkqIHRyZWUtc3NhLWNvcHlyZW5hbWUuYzogRGl0dG8uCgkqIHRyZWUtc3NhLWxpdmUuYzogRGl0dG8uCgkqIHRyZWUtb3B0aW1pemUuYzogRGl0dG8uCgkqIHRyZWUtc3NhLmM6IERpdHRvLgoJUmVtb3ZlIHBhc3NfYnVpbGRfcHRhLCBwYXNzX2RlbF9wdGEuCgkqIHRyZWUtcGFzcy5oOiBEaXR0by4KCSogdHJlZS1zc2EtYWxpYXMuYzogUmVtb3ZlIHRyZWUtYWxpYXMtY29tbW9uLmguCgkoc3RydWN0IGFsaWFzX3N0YXRzX2QpOglSZW1vdmUgcHRhX3F1ZXJpZXMsIHB0YV9yZXNvbHZlZC4KCShwYXNzX21heV9hbGlhcyk6IFJlbW92ZSBQUk9QX3B0YSByZXF1aXJlbWVudC4KCShtYXlfYWxpYXNfcCk6IFJlbW92ZSBwdGFfcXVlcmllcywgcHRhX3Jlc29sdmVkLCB1c2Ugb2YgYW5kZXJzZW5zLgoJKGdldF90bXRfZm9yKTogRGl0dG8uCgkoZHVtcF9hbGlhc19zdGF0cyk6IERpdHRvLgoJKiBkb2MvcGFzc2VzLnRleGk6IFJlbW92ZSBibHVyYiBhYm91dCBwb2ludHMtdG8gYW5hbHlzaXMuCgkqIGZvcnRyYW4vTWFrZS1sYW5nLmluOiBSZW1vdmUgdHJlZS1hbGlhcy0qLm8uCgoyMDA0LTA5LTA5ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBnZW5hdHRydGFiLmMgKHdyaXRlX2luc25fY2FzZXMpOiBOZXcgZnVuY3Rpb24sIHNwbGl0IG91dCBmcm9tCgl3cml0ZV9hdHRyX2Nhc2UuICBDb3JyZWN0bHkgaGFuZGxlIGRlZmluZV9wZWVwaG9sZXMgd2hlbiBwcmludGluZwoJdGhlIGluc3RydWN0aW9uIG5hbWUuCgkod3JpdGVfYXR0cl9jYXNlLCB3cml0ZV9jb25zdF9udW1fZGVsYXlfc2xvdHMpOiBVc2Ugd3JpdGVfaW5zbl9jYXNlcy4KCjIwMDQtMDktMDkgIEhhbnMtUGV0ZXIgTmlsc3NvbiAgPGhwQGF4aXMuY29tPgoKCVBSIHRhcmdldC8xNzM3NwoJKiBjb25maWcvY3Jpcy9jcmlzLXByb3Rvcy5oIChjcmlzX3JldHVybl9hZGRyZXNzX29uX3N0YWNrKTogRGVjbGFyZS4KCSogY29uZmlnL2NyaXMvY3Jpcy5jIChjcmlzX3JldHVybl9hZGRyZXNzX29uX3N0YWNrKTogTmV3IGZ1bmN0aW9uLgoJKiBjb25maWcvY3Jpcy9jcmlzLm1kICgicmV0dXJuIik6IEZvciBsb2NhdGlvbiBvZiByZXR1cm4gYWRkcmVzcywKCWFsc28gY2hlY2sgY3Jpc19yZXR1cm5fYWRkcmVzc19vbl9zdGFjay4KCjIwMDQtMDktMDkgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1vdXRvZi1zc2EuYyAoY29hbGVzY2VfYWJub3JtYWxfZWRnZXMpOiBGaXggdHlwbyBpbgoJY2FsbGluZyBwaGlfc3NhX25hbWVfcC4KCjIwMDQtMDktMDkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgYy8xNzMyMgoJKiBjLXR5cGVjay5jICh2YWxpZF9jb21wb3VuZF9leHByX2luaXRpYWxpemVyKTogVXNlIG9ubHkKCWluaXRpYWxpemVyX2NvbnN0YW50X3ZhbGlkX3AsIGFuZCBub3QgVFJFRV9DT05TVEFOVC4KCShkaWdlc3RfaW5pdCk6IExpa2V3aXNlLgoJKG91dHB1dF9pbml0X2VsZW1lbnQpOiBMaWtld2lzZS4KCjIwMDQtMDktMDkgIEdpb3Zhbm5pIEJham8gIDxnaW92YW5uaWJham9AZ2NjLmdudS5vcmc+CgoJKiByYS1idWlsZC5jIChjb3B5X2luc25fcCwgcmVtZW1iZXJfbW92ZSwgZGVmdXNlX292ZXJsYXBfcF8xLAoJbGl2ZV9vdXRfMSwgcHJ1bmVfaGFyZHJlZ3NfZm9yX21vZGUsIGluaXRfb25lX3dlYl9jb21tb24sCglyZWluaXRfb25lX3dlYiwgYWRkX3N1YndlYiwgYWRkX3N1YndlYl8yLCBpbml0X3dlYl9wYXJ0cywKCXJlY29yZF9jb25mbGljdCwgY29tcGFyZV9hbmRfZnJlZV93ZWJzLCBpbml0X3dlYnNfZGVmc191c2VzLAoJcGFydHNfdG9fd2Vic18xLCBwYXJ0c190b193ZWJzLCByZXNldF9jb25mbGljdHMsCgljaGVja19jb25mbGljdF9udW1iZXJzLCByZW1lbWJlcl93ZWJfd2FzX3NwaWxsZWQsIGhhbmRsZV9hc21faW5zbiwKCXJhX2J1aWxkX2ZyZWUpOiBVc2UgZ2NjX2Fzc2VydCBhbmQgZ2NjX3VucmVhY2hhYmxlIGluc3RlYWQgb2YgYWJvcnQuCgkqIHJhLWNvbG9yaXplLmMgKHB1c2hfbGlzdCwgcHV0X3dlYiwgcmVzZXRfbGlzdHMsIHB1dF93ZWJfYXRfZW5kLAoJcHV0X21vdmUsIHJlbW92ZV9tb3ZlLCBjb21iaW5lLCBzZWxlY3Rfc3BpbGwsIGNvbG9yaXplX29uZV93ZWIsCgl0cnlfcmVjb2xvcl93ZWIsIGluc2VydF9jb2FsZXNjZWRfY29uZmxpY3RzLCBjaGVja19jb2xvcnMsCglicmVha19wcmVjb2xvcmVkX2FsaWFzLCByZXN0b3JlX2NvbmZsaWN0c19mcm9tX2NvYWxlc2NlLAoJc29ydF9hbmRfY29tYmluZV93ZWJfcGFpcnMsIGNoZWNrX3VuY29hbGVzY2VkX21vdmVzKTogTGlrZXdpc2UuCgkqIHJhLXJld3JpdGUuYyAoc3BpbGxfY29hbGVzY2luZywgc2xvdHNfb3ZlcmxhcF9wLCBlbWl0X2xvYWRzLAoJcmVsb2Fkc190b19sb2FkcywgcmV3cml0ZV9wcm9ncmFtMiwgZW1pdF9jb2xvcnMpOiBMaWtld2lzZS4KCSogcmEuYyAoZmlyc3RfaGFyZF9yZWcsIGNyZWF0ZV9pbnNuX2luZm8sIGZpbmRfc3Vid2ViLCBpbml0X3JhLAoJY2hlY2tfZGYpOiBMaWtld2lzZS4KCSogcmVhbC5jIChkb19hZGQsIGRvX211bHRpcGx5LCBkb19kaXZpZGUsIGRvX2NvbXBhcmUsIGRvX2ZpeF90cnVuYywKCXJlYWxfYXJpdGhtZXRpYywgcmVhbF9jb21wYXJlLCByZWFsX2V4cG9uZW50LCByZWFsX2xkZXhwLAoJcmVhbF9pZGVudGljYWwsIHJlYWxfdG9faW50ZWdlciwgcmVhbF90b19pbnRlZ2VyMiwgcmVhbF90b19kZWNpbWFsLAoJcmVhbF90b19oZXhhZGVjaW1hbCwgcmVhbF9mcm9tX2ludGVnZXIsIHRlbl90b19wdHdvLCB0ZW5fdG9fbXB0d28sCglyZWFsX2RpZ2l0LCByZWFsX25hbiwgcmVhbF9tYXh2YWwsIHJvdW5kX2Zvcl9mb3JtYXQsIHJlYWxfY29udmVydCwKCXJlYWxfdG9fdGFyZ2V0LCByZWFsX2Zyb21fdGFyZ2V0LCByZWFsX2hhc2gsIGVuY29kZV9pZWVlX3NpbmdsZSwKCWVuY29kZV9pZWVlX2RvdWJsZSwgZW5jb2RlX2llZWVfZXh0ZW5kZWQsIGVuY29kZV9pZWVlX3F1YWQsCgllbmNvZGVfdmF4X2YsIGVuY29kZV92YXhfZCwgZW5jb2RlX3ZheF9nLCBlbmNvZGVfaTM3MF9zaW5nbGUsCgllbmNvZGVfaTM3MF9kb3VibGUsIGVuY29kZV9jNHhfc2luZ2xlLCBlbmNvZGVfYzR4X2V4dGVuZGVkKTogTGlrZXdpc2UuCgkqIHJlY29nLmMgKHZhbGlkYXRlX2NoYW5nZSwgdmFsaWRhdGVfcmVwbGFjZV9ydHhfMSwgYXNtX29wZXJhbmRfb2ssCglleHRyYWN0X2luc24sIHBlZXAyX25leHRfaW5zbiwgcGVlcDJfcmVnX2RlYWRfcCwKCXBlZXAyX2ZpbmRfZnJlZV9yZWdpc3RlciwgcGVlcGhvbGUyX29wdGltaXplLCBzdG9yZV9kYXRhX2J5cGFzc19wLAoJaWZfdGVzdF9ieXBhc3NfcCk6IExpa2V3aXNlLgoJKiByZWctc3RhY2suYyAocmVjb3JkX2xhYmVsX3JlZmVyZW5jZXMsIGdldF9hc21fb3BlcmFuZF9uX2lucHV0cywKCXN0YWNrX3Jlc3VsdCwgcmVtb3ZlX3JlZ25vX25vdGUsIGdldF9oYXJkX3JlZ251bSwgZW1pdF9wb3BfaW5zbiwKCWVtaXRfc3dhcF9pbnNuLCBzd2FwX3RvX3RvcCwgbW92ZV9mb3Jfc3RhY2tfcmVnLAoJc3Vic3Rfc3RhY2tfcmVnc19wYXQsIHN1YnN0X2FzbV9zdGFja19yZWdzLCBjaGFuZ2Vfc3RhY2ssCgljb21wZW5zYXRlX2VkZ2UsIGNvbnZlcnRfcmVnc18xKTogTGlrZXdpc2UuCgkqIHJlZ2NsYXNzLmMgKGluaXRfcmVnX3NldHMsIGluaXRfcmVnX3NldHNfMSwKCW1lbW9yeV9tb3ZlX3NlY29uZGFyeV9jb3N0KTogTGlrZXdpc2UuCgkqIHJlZ3JlbmFtZS5jIChub3RlX3NldHMsIGNsZWFyX2RlYWRfcmVncywgc2Nhbl9ydHhfcmVnLCBzY2FuX3J0eCk6CglMaWtld2lzZS4KCSogcmVsb2FkLmMgKHB1c2hfc2Vjb25kYXJ5X3JlbG9hZCwgZmluZF92YWxpZF9jbGFzcywgcHVzaF9yZWxvYWQsCglvcGVyYW5kc19tYXRjaF9wLCBkZWNvbXBvc2UsIGltbXVuZV9wLCBmaW5kX3JlbG9hZHMsCglmaW5kX3JlbG9hZHNfdG9wbGV2LCBmaW5kX3JlbG9hZHNfYWRkcmVzc18xLCBzdWJzdF9yZWxvYWRzLAoJY29weV9yZXBsYWNlbWVudHMsIHJlZmVyc190b19yZWdub19mb3JfcmVsb2FkX3AsCglyZWdfb3ZlcmxhcF9tZW50aW9uZWRfZm9yX3JlbG9hZF9wKTogTGlrZXdpc2UuCgkqIHJlbG9hZDEuYyAoY29tcHV0ZV91c2VfYnlfcHNldWRvcywgcmVwbGFjZV9wc2V1ZG9zX2luLCByZWxvYWQsCgljb3VudF9wc2V1ZG8sIGZpbmRfcmVnLCBlbGltaW5hdGVfcmVncywgZWxpbWluYXRlX3JlZ3NfaW5faW5zbiwKCXZlcmlmeV9pbml0aWFsX2VsaW1fb2Zmc2V0cywgZmluaXNoX3NwaWxscywgY2xlYXJfcmVsb2FkX3JlZ19pbl91c2UsCglyZWxvYWRfcmVnX2ZyZWVfcCwgcmVsb2FkX3JlZ19yZWFjaGVzX2VuZF9wLCByZWxvYWRzX2NvbmZsaWN0LAoJY2hvb3NlX3JlbG9hZF9yZWdzLCBtZXJnZV9hc3NpZ25lZF9yZWxvYWRzLCBlbWl0X2lucHV0X3JlbG9hZF9pbnNucywKCWRvX291dHB1dF9yZWxvYWQsIGZpeHVwX2Fibm9ybWFsX2VkZ2VzKTogTGlrZXdpc2UuCgkqIHJlb3JnLmMgKHN0b3Bfc2VhcmNoX3AsIGVtaXRfZGVsYXlfc2VxdWVuY2UsIGdldF9qdW1wX2ZsYWdzLAoJZmlsbF9zbG90c19mcm9tX3RocmVhZCwgcmVsYXhfZGVsYXlfc2xvdHMpOiBMaWtld2lzZS4KCSogcmVzb3VyY2UuYyAobWFya19yZWZlcmVuY2VkX3Jlc291cmNlcywgbWFya19zZXRfcmVzb3VyY2VzKToKCUxpa2V3aXNlLgoJKiBydGwuYyAoY29weV9ydHgsIHJ0eF9lcXVhbF9wKTogTGlrZXdpc2UuCgkqIHJ0bGFuYWwuYyAoaW5zbl9kZXBlbmRlbnRfcCwgcmVnX292ZXJsYXBfbWVudGlvbmVkX3AsCglkZWFkX29yX3NldF9wLCBmaW5kX3JlZ19mdXNhZ2UsIHJlbW92ZV9ub3RlLCByZXBsYWNlX3J0eCwKCXN1YnJlZ19sc2JfMSwgc3VicmVnX3JlZ25vX29mZnNldCwgc3VicmVnX29mZnNldF9yZXByZXNlbnRhYmxlX3AsCglmaW5kX2ZpcnN0X3BhcmFtZXRlcl9sb2FkLCBjYW5faG9pc3RfaW5zbl9wLCBob2lzdF91cGRhdGVfc3RvcmUsCglob2lzdF9pbnNuX2FmdGVyLCBob2lzdF9pbnNuX3RvX2VkZ2UsIG5vbnplcm9fYml0czEpOiBMaWtld2lzZS4KCSogcnRsaG9va3MuYyAoZ2VuX2xvd3BhcnRfZ2VuZXJhbCk6IExpa2V3aXNlLgoJKiBzYml0bWFwLmMgKHNiaXRtYXBfZGlmZmVyZW5jZSk6IExpa2V3aXNlLgoJKiBzY2hlZC1kZXBzLmMgKGFkZF9kZXBlbmRlbmNlLCBzY2hlZF9hbmFseXplXzEsIHNjaGVkX2FuYWx5emVfMiwKCXNjaGVkX2FuYWx5emUsIGFkZF9mb3J3YXJkX2RlcGVuZGVuY2UpOiBMaWtld2lzZS4KCSogc2NoZWQtZWJiLmMgKGZpeF9iYXNpY19ibG9ja19ib3VuZGFyaWVzLCBzY2hlZHVsZV9lYmIpOiBMaWtld2lzZS4KCSogc2NoZWQtcmduLmMgKGRlYnVnX3JlZ2lvbnMsIGNvbXB1dGVfdHJnX2luZm8sIHNjaGVkdWxlX3JlZ2lvbiwKCXNjaGVkdWxlX2luc25zKTogTGlrZXdpc2UuCgkqIHNjaGVkLXZpcy5jIChwcmludF9wYXR0ZXJuKTogTGlrZXdpc2UuCgkqIHNkYm91dC5jIChzZGJvdXRfc3ltYm9sLCBzZGJvdXRfdG9wbGV2ZWxfZGF0YSk6IExpa2V3aXNlLgoJKiBzaW1wbGlmeS1ydHguYyAoc2ltcGxpZnlfdW5hcnlfb3BlcmF0aW9uLCBzaW1wbGlmeV9iaW5hcnlfb3BlcmF0aW9uLAoJc2ltcGxpZnlfY29uc3RfcmVsYXRpb25hbF9vcGVyYXRpb24sIHNpbXBsaWZ5X3Rlcm5hcnlfb3BlcmF0aW9uLAoJc2ltcGxpZnlfaW1tZWRfc3VicmVnLCBzaW1wbGlmeV9zdWJyZWcsIHNpbXBsaWZ5X2dlbl9zdWJyZWcpOgoJTGlrZXdpc2UuCgkqIHNyZWFsLmMgKGNvcHksIHNyZWFsX3N1Yiwgc3JlYWxfZGl2KTogTGlrZXdpc2UuCgkqIHN0bXQuYyAoZm9yY2VfbGFiZWxfcnR4LCBleHBhbmRfZ290bywgZXhwYW5kX2FzbV9vcGVyYW5kcywKCXJlc29sdmVfb3BlcmFuZF9uYW1lXzEsIGV4cGFuZF9yZXR1cm4sIGV4cGFuZF9kZWNsLAoJZXhwYW5kX2Fub25fdW5pb25fZGVjbCwgZW1pdF9jYXNlX2JpdF90ZXN0cywgZXhwYW5kX2Nhc2UpOiBMaWtld2lzZS4KCSogc3Rvci1sYXlvdXQuYyAocHV0X3BlbmRpbmdfc2l6ZSwgc21hbGxlc3RfbW9kZV9mb3Jfc2l6ZSwKCWludF9tb2RlX2Zvcl9tb2RlLCBsYXlvdXRfZGVjbCwgZmluaXNoX2J1aWx0aW5fc3RydWN0LCBsYXlvdXRfdHlwZSwKCXNldF9zaXpldHlwZSwgZ2V0X21vZGVfYm91bmRzKTogTGlrZXdpc2UuCgoyMDA0LTA5LTA5ICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVmYXVsdHMuaCAoTVVMVElQTEVfU1lNQk9MX1NQQUNFUyk6IFByb3ZpZGUgZGVmYXVsdC4KCSogY29uZmlnL2FybS9wZWNvZmYuaCwgY29uZmlnL2kzODYvYmVvcy1lbGYuaAoJKiBjb25maWcvaTM4Ni9jeWdtaW5nLmgsIGNvbmZpZy9pMzg2L2kzODYtaW50ZXJpeC5oOgoJRGVmaW5lIE1VTFRJUExFX1NZTUJPTF9TUEFDRVMgdG8gMSwgbm90IG5vdGhpbmcuICBSZW1vdmUKCWNvbW1lbnQgY2xvbmVkIGZyb20gbWFudWFsLgoJKiBkb2MvdG0udGV4aTogVXBkYXRlIGRlc2NyaXB0aW9uIG9mIE1VTFRJUExFX1NZTUJPTF9TUEFDRVMuCgoyMDA0LTA5LTA5ICBGcmFuayBDaC4gRWlnbGVyICA8ZmNoZUByZWRoYXQuY29tPgoKCSogYnVpbHRpbnMuYyAoYnVpbGRfdmFfYXJnX2luZGlyZWN0X3JlZik6IE5ldyBmdW5jdGlvbi4KCShzdGRfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBDYWxsIGl0IGluc3RlYWQgb2YgbXVkZmxhcCBjaGVjayBhbmQKCWJ1aWxkX2ZvbGRfaW5kaXJlY3RfcmVmLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfZ2ltcGxpZnlfdmFfYXJnKTogRGl0dG8uCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoaWE2NF9naW1wbGlmeV92YV9hcmcpOiBEaXR0by4KCSogdHJlZS5oOiBEZWNsYXJlIG5ldyBmdW5jdGlvbi4KCjIwMDQtMDktMDkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjZ3JhcGh1bml0LmMgKGNncmFwaF9tYXJrX2Z1bmN0aW9uc190b19vdXRwdXQpOiBSZW5hYmxlIG5vZGUKCWR1bXBpbmcgZm9yIGRldmVsb3BtZW50IGJ1aWxkcy4KCSogZW1pdC1ydGwuYyAodmVyaWZ5X3J0eF9zaGFyaW5nKTogR2l2ZSB2ZXJib3NlIGZhaWx1cmUgZm9yCglkZXZlbG9wbWVudCBidWlsZHMgb25seS4KCSogZ2VuYXR0cnRhYi5jICh3cml0ZV9lbGlnaWJsZV9kZWxheSk6IEZpeCB0eXBvIGluIHByZXZpb3VzCgljb21taXQuCgkqIHRyZWUuYyAoaXRlcmF0aXZlX2hhc2hfZXhwcik6IFJlcGxhY2UgZ2NjX3VucmVhY2hhYmxlIHdpdGgKCWdjY19hc3NlcnQuCgoyMDA0LTA5LTA5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZ2NzZS5jIChJTlNOX0NVSUQsIGluc2VydF9zZXRfaW5fdGFibGUsIGZpbmRfYXZhaWxfc2V0LAoJY3Byb3BfaW5zbiwgZG9fbG9jYWxfY3Byb3AsIGxvY2FsX2Nwcm9wX3Bhc3MsIGZpbmRfYnlwYXNzX3NldCwKCXByb2Nlc3NfaW5zZXJ0X2luc24sIGluc2VydF9pbnNuX2VuZF9iYiwgcHJlX2luc2VydF9jb3B5X2luc24sCglob2lzdF9jb2RlLCBleHRyYWN0X21lbnRpb25lZF9yZWdzX2hlbHBlciwgY29tcHV0ZV9zdG9yZV90YWJsZSwKCWluc2VydF9zdG9yZSk6IFVzZSBnY2NfYXNzZXJ0IGFuZCBnY2NfdW5yZWFjaGFibGUuCgkqIGdnYy1jb21tb24uYyAoZ2djX3NwbGF5X2FsbG9jLCBnZ2Nfc3BsYXlfZG9udF9mcmVlLAoJZ3RfcGNoX25vdGVfb2JqZWN0LCBndF9wY2hfbm90ZV9yZW9yZGVyLCByZWxvY2F0ZV9wdHJzLAoJZ2djX3JlY29yZF9vdmVyaGVhZCk6IExpa2V3aXNlLgoJKiBnZ2MtcGFnZS5jIChhbGxvY19wYWdlLCBmcmVlX3BhZ2UsIGdnY19zZXRfbWFyaywgZ2djX21hcmtlZF9wLAoJaW5pdF9nZ2MsIGdnY19wdXNoX2NvbnRleHQsIGdnY19yZWNhbGN1bGF0ZV9pbl91c2VfcCwKCWdnY19wb3BfY29udGV4dCwgY2xlYXJfbWFya3MsIHZhbGlkYXRlX2ZyZWVfb2JqZWN0cywKCWdnY19wY2hfcmVhZCk6IExpa2V3aXNlLgoJKiBnZ2Mtem9uZS5jIChnZ2NfYWxsb2NhdGVkX3AsIGZyZWVfY2h1bmssIGdnY19zZXRfbWFyaywKCWdnY19tYXJrZWRfcCwgZ2djX2dldF9zaXplLCBpbml0X2dnYywgZGVzdHJveV9nZ2Nfem9uZSwKCWdnY19wdXNoX2NvbnRleHQsIGNoZWNrX2Nvb2tpZXMsIGdnY19jb2xsZWN0LAoJZ2djX3ByaW50X3N0YXRpc3RpY3MpOiBMaWtld2lzZS4KCSogZ2ltcGxlLWxvdy5jIChsb3dlcl9mdW5jdGlvbl9ib2R5LCBsb3dlcl9zdG10LAoJbG93ZXJfYmluZF9leHByKTogTGlrZXdpc2UuCgkqIGdpbXBsaWZ5LmMgKGdpbXBsZV90cmVlX2VxLCBwdXNoX2dpbXBsaWZ5X2NvbnRleHQsCglwb3BfZ2ltcGxpZnlfY29udGV4dCwgZ2ltcGxlX3BvcF9jb25kaXRpb24sIGNyZWF0ZV90bXBfdmFyLAoJZGVjbGFyZV90bXBfdmFycywgZ2ltcGxlX2FkZF90bXBfdmFyLCBhbm5vdGF0ZV9hbGxfd2l0aF9sb2N1cywKCW1vc3RseV9jb3B5X3RyZWVfciwgZ2ltcGxpZnlfcmV0dXJuX2V4cHIsIGdpbXBsaWZ5X3N3aXRjaF9leHByLAoJZ2ltcGxpZnlfY2FzZV9sYWJlbF9leHByLCBnaW1wbGlmeV9leGl0X2Jsb2NrX2V4cHIsCgljYW5vbmljYWxpemVfY29tcG9uZW50X3JlZiwgZ2ltcGxpZnlfY29tcG91bmRfbHZhbCwKCWdpbXBsaWZ5X3NlbGZfbW9kX2V4cHIsIGdpbXBsaWZ5X2NhbGxfZXhwciwKCWdpbXBsaWZ5X2luaXRfY3Rvcl9ldmFsLCBnaW1wbGlmeV9pbml0X2NvbnN0cnVjdG9yLAoJZ2ltcGxpZnlfbW9kaWZ5X2V4cHIsIGdpbXBsaWZ5X3NhdmVfZXhwciwgZ2ltcGxpZnlfdGFyZ2V0X2V4cHIsCglnaW1wbGlmeV9leHByLCBjaGVja19wb2ludGVyX3R5cGVzX3IsCglmb3JjZV9naW1wbGVfb3BlcmFuZCk6IExpa2V3aXNlLgoJKiBnbG9iYWwuYyAoZ2xvYmFsX2FsbG9jLCBidWlsZF9pbnNuX2NoYWluKTogTGlrZXdpc2UuCgkqIGdyYXBoLmMgKGNsZWFuX2dyYXBoX2R1bXBfZmlsZSwKCWZpbmlzaF9ncmFwaF9kdW1wX2ZpbGUpOiBMaWtld2lzZS4KCWdjb3YtaW8uYyAoZ2Nvdl9vcGVuKTogVXNlIEdDT1ZfQ0hFQ0suCgoyMDA0LTA5LTA5ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvZnJ2L2Zydi5jIChhY2Nfb3BlcmFuZCwgYWNjZ19vcGVyYW5kKTogVXNlIFJFR05PLgoKMjAwNC0wOS0wOSAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCW1pZGRsZS1lbmQvMTcxMjgKCSogdHJlZS1pbmxpbmUuYyAoZXhwYW5kX2NhbGxfaW5saW5lKTogTWFrZSBvdmVyYWN0aXZlIHNhbml0eSBjaGVjawoJaGFwcHkuCgoyMDA0LTA5LTA5ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChwZWVsX2FkZHJlc3MpOiBGaXggYWJvcnQgb24KCVZJRVdfQ09OVkVSVF9FWFBSLgoKMjAwNC0wOS0wOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2VmaWxlLmluIChnZW5ndHlwZSk6IFVzZSAkKEJVSUxEX0VSUk9SUykuCgkoZ2VuZ3R5cGUubyk6IERlcGVuZCBvbiBlcnJvcnMuaC4KCSogZ2VuYXR0cnRhYi5jIChzdHJjbXBfY2hlY2spOiBVc2UgZ2NjX2Fzc2VydCBhbmQgZ2NjX3VucmVhY2hhYmxlLgoJKGF0dHJfcnR4XzEsIGF0dHJfcHJpbnRmLCBhdHRyX2NvcHlfcnR4LCBldmFsdWF0ZV9lcV9hdHRyLAoJYXR0cl9hbHRfc3Vic2V0X3AsIGF0dHJfYWx0X3N1YnNldF9vZl9jb21wbF9wLAoJYXR0cl9hbHRfaW50ZXJzZWN0aW9uLCBhdHRyX2FsdF91bmlvbiwgb3B0aW1pemVfYXR0cnMsIGdlbl9pbnNuLAoJd3JpdGVfdGVzdF9leHByLCB3cml0ZV9hdHRyX3ZhbHVlLCB3cml0ZV9lbGlnaWJsZV9kZWxheSwKCW1ha2VfaW50ZXJuYWxfYXR0ciwgbWFrZV9udW1lcmljX3ZhbHVlKTogTGlrZXdpc2UuCgkqIGdlbmF1dG9tYXRhLmMgKHJlZ2V4cF9uYW1lLCBnZXRfc3RyX3ZlY3QsCglnZW5fcHJlc2VuY2VfYWJzZW5jZV9zZXQsIGF1dG9tYXRvbl9kZWNsX2hhc2gsCglhdXRvbWF0b25fZGVjbF9lcV9wLCBpbnNuX2RlY2xfaGFzaCwgaW5zbl9kZWNsX2VxX3AsIGRlY2xfaGFzaCwKCWRlY2xfZXFfcCwgcHJvY2Vzc19yZWdleHAsIGxvb3BfaW5fcmVnZXhwLCBjaGVja19sb29wc19pbl9yZWdleHBzLAoJcHJvY2Vzc19yZWdleHBfY3ljbGVzLCByZXNlcnZfc2V0c19jbXAsIHNldF91bml0X3Jlc2VydiwKCXRlc3RfdW5pdF9yZXNlcnYsIGl0X2lzX2VtcHR5X3Jlc2Vydl9zZXRzLAoJcmVzZXJ2X3NldHNfYXJlX2ludGVyc2VjdGVkLCByZXNlcnZfc2V0c19zaGlmdCwgcmVzZXJ2X3NldHNfb3IsCglyZXNlcnZfc2V0c19hbmQsIG91dHB1dF9jeWNsZV9yZXNlcnZzLCBnZXRfZnJlZV9zdGF0ZSwKCWludGVyc2VjdGVkX3N0YXRlX3Jlc2VydnNfcCwgc3RhdGVzX3VuaW9uLCByZW1vdmVfYXJjLAoJY29weV9pbnNuX3JlZ2V4cCwgdHJhbnNmb3JtXzEsIHRyYW5zZm9ybV8yLCB0cmFuc2Zvcm1fMywKCXJlZ2V4cF90cmFuc2Zvcm1fZnVuYywgc3RvcmVfYWx0X3VuaXRfdXNhZ2UsCgljaGVja19yZWdleHBfdW5pdHNfZGlzdHJpYnV0aW9uLCBwcm9jZXNzX3NlcV9mb3JfZm9ybWluZ19zdGF0ZXMsCglwcm9jZXNzX2FsdHNfZm9yX2Zvcm1pbmdfc3RhdGVzLCBtYWtlX2F1dG9tYXRvbiwKCWZvcm1fYXJjc19tYXJrZWRfYnlfaW5zbiwgY3JlYXRlX2NvbXBvc2VkX3N0YXRlLAoJc2V0X291dF9hcmNfaW5zbnNfZXF1aXZfbnVtLCBwYXJ0aXRpb25fZXF1aXZfY2xhc3MsCglwcm9jZXNzX2luc25fZXF1aXZfY2xhc3MsIHNldF9pbnNuX2VxdWl2X2NsYXNzZXMsCgl1bml0c190b19hdXRvbWF0YV9oZXVyaXN0aWNfZGlzdHIsIGZvcm1fcmVnZXhwLAoJbG9uZ2VzdF9wYXRoX2xlbmd0aCwgb3V0cHV0X2RmYV9tYXhfaXNzdWVfcmF0ZSwgYWRkX3ZlY3QsCglvdXRfc3RhdGVfYXJjc19udW0sIGFkZF92ZWN0X2VsLCBvdXRwdXRfdHJhbnNfdGFibGUsCglvdXRwdXRfc3RhdGVfYWx0c190YWJsZSwgb3V0cHV0X2RlYWRfbG9ja192ZWN0LAoJb3V0cHV0X21heF9pbnNuX3F1ZXVlX2luZGV4X2RlZiwKCW91dHB1dF9taW5faW5zbl9jb25mbGljdF9kZWxheV9mdW5jLAoJb3V0cHV0X2ludGVybmFsX2luc25fbGF0ZW5jeV9mdW5jLCBvdXRwdXRfcHJpbnRfcmVzZXJ2YXRpb25fZnVuYywKCW91dHB1dF9jcHVfdW5pdF9yZXNlcnZhdGlvbl9wLCBvdXRwdXRfc3RhdGVfYXJjcywKCW1ha2VfaW5zbl9hbHRzX2F0dHIsIG1ha2VfaW50ZXJuYWxfZGZhX2luc25fY29kZV9hdHRyLAoJbWFrZV9kZWZhdWx0X2luc25fbGF0ZW5jeV9hdHRyLAoJZm9ybV9pbXBvcnRhbnRfaW5zbl9hdXRvbWF0YV9saXN0cyk6IExpa2V3aXNlLgoJKiBnZW5lbWl0LmMgKGdlbl9leHAsIG91dHB1dF9hZGRfY2xvYmJlcnMsCglvdXRwdXRfYWRkZWRfY2xvYmJlcnNfaGFyZF9yZWdfcCk6IExpa2V3aXNlLgoJKiBnZW5leHRyYWN0LmMgKHByaW50X3BhdGgsIG1haW4pOiBMaWtld2lzZS4KCSogZ2VuZmxhZ3MuYyAoZ2VuX21hY3JvKTogTGlrZXdpc2UuCgkqIGdlbmdlbnJ0bC5jOiBJbmNsdWRlIGVycm9ycy5oCgkodHlwZV9mcm9tX2Zvcm1hdCwgYWNjZXNzb3JfZnJvbV9mb3JtYXQpOiBMaWtld2lzZS4KCSogZ2VuZ3R5cGUuYyAoZ2V0X2ZpbGVfYmFzZW5hbWUsIG91dHB1dF9tYW5nbGVkX3R5cGVuYW1lLAoJd2Fsa190eXBlLCB3cml0ZV90eXBlc19wcm9jZXNzX2ZpZWxkLAoJd3JpdGVfdHlwZXNfbG9jYWxfcHJvY2Vzc19maWVsZCk6IExpa2V3aXNlLgoJKiBnZW5tb2Rlcy5jIChjb21wbGV0ZV9tb2RlKTogTGlrZXdpc2UuCgkqIGdlbm9waW5pdC5jIChnZW5faW5zbik6IExpa2V3aXNlLgoJKiBnZW5vdXRwdXQuYyAob3V0cHV0X2luc25fZGF0YSwgY2hlY2tfY29uc3RyYWludF9sZW4sCgljb25zdHJhaW50X2xlbik6IExpa2V3aXNlLgoJKiBnZW5wcmVkcy5jIChhZGRfbW9kZV90ZXN0cyk6TGlrZXdpc2UuCgkqIGdlbi1wcm90b3MuYyAoYWRkX2hhc2gpOiBMaWtld2lzZS4KCSogZ2VucmVjb2cuYyAoZmluZF9vcGVyYW5kLCBmaW5kX21hdGNoaW5nX29wZXJhbmQsCgl2YWxpZGF0ZV9wYXR0ZXJuLCBhZGRfdG9fc2VxdWVuY2UsIG1heWJlX2JvdGhfdHJ1ZSwKCW5vZGVzX2lkZW50aWNhbF8xLCBtZXJnZV90cmVlcywgd3JpdGVfc3dpdGNoLCB3cml0ZV9jb25kLAoJd3JpdGVfYWN0aW9uLCBpc191bmNvbmRpdGlvbmFsLCBtYWtlX2luc25fc2VxdWVuY2UsCglkZWJ1Z19kZWNpc2lvbl8yKTogTGlrZXdpc2UuCgkqIGdlbnN1cHBvcnQuYyAoaXNfcHJlZGljYWJsZSwgY29sbGVjdF9pbnNuX2RhdGEsCglhbHRlcl9wcmVkaWNhdGVfZm9yX2luc24sIG1heWJlX2V2YWxfY190ZXN0KTogTGlrZXdpc2UuCgoyMDA0LTA5LTA5ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBiYXNpYy1ibG9jay5oIChndWVzc19vdXRnb2luZ19lZGdlX3Byb2JhYmlsaXRpZXMpOiBEZWNsYXJlLgoJKiBjZmdidWlsZC5jIChjb21wdXRlX291dGdvaW5nX2ZyZXF1ZW5jaWVzKTogV2hlbiBwcm9iYWJpbGl0eSBpcwoJbWlzc2luZywgZ3Vlc3MgaXQuCgkoZmluZF9tYW55X3N1Yl9iYXNpY19ibG9ja3MpOiBEbyB1cGRhdGUgcHJvZmlsZSBvbmx5IHdoZW4gaXQgaXMKCXByZXNlbnQuCgkqIHByZWRpY3QuYyAoc2V0X2V2ZW5fcHJvYmFiaWxpdGllcyk6IEJyZWFrIG91dCBmcm9tIC4uLgoJKGNvbWJpbmVfcHJlZGljdGlvbnNfZm9yX2luc24pOiAuLi4gaGVyZTsgZGVhbCB3aXRoCgkhY2FuX3ByZWRpY3RfaW5zbl9wIGluc25zLgoJKGNvbWJpbmVfcHJlZGljdGlvbnNfZm9yX2JiKTogVXNlIHNldF9ldmVuX3Byb2JhYmlsaXRpZXMuCgkoYmJfZXN0aW1hdGVfcHJvYmFiaWxpdHlfbG9jYWxseSk6IEJyZWFrIG91dCBmcm9tIC4uLi4KCShlc3RpbWF0ZV9wcm9iYWJpbGl0eSk6IC4uLiBoZXJlLgoJKGd1ZXNzX291dGdvaW5nX2VkZ2VfcHJvYmFiaWxpdGllcyk6IE5ldyBlbnRyeSBwb2ludC4KCjIwMDQtMDktMDkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnY2MuYyAoYWRkX3N5c3Jvb3RlZF9wcmVmaXgsIGV4ZWN1dGUsIGRvX3NlbGZfc3BlYywgZG9fc3BlY18xLAoJaGFuZGxlX2JyYWNlcywgcHJvY2Vzc19icmFjZV9ib2R5LCBtYWluLCB1c2VkX2FyZywKCXNldF9tdWx0aWxpYl9kaXIsIHByaW50X211bHRpbGliX2luZm8pOiBVc2UgZmF0YWwsIG5vdCBhYm9ydC4KCgkqIHRyZWUtbmVzdGVkLmMgKGNyZWF0ZV90bXBfdmFyX2Zvcik6IENvcnJlY3QgbWlzc2ludmVydGVkIGFzc2VydC4KCgkqIHRyZWUtb3V0b2Ytc3NhLmMgKGZyZWVfdGVtcF9leHByX3RhYmxlKTogQWRkIG1pc3NlZCBhc3NlcnQuCgkqIHRyZWUtc3NhLWNjcC5jIChzZXRfbGF0dGljZV92YWx1ZSk6IENvcnJlY3QgbWlzc2FwcGxpZWQgZGUKCU1vcmdhbidzIHRoZW9yZW0gaW4gbGFzdCBjaGVja2luLgoKMjAwNC0wOS0wOSAgR2lvdmFubmkgQmFqbyAgPGdpb3Zhbm5pYmFqb0BnY2MuZ251Lm9yZz4KCSAgICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdGFyZ2hvb2tzLmMgKGRlZmF1bHRfdW53aW5kX2VtaXQsIGRlZmF1bHRfc2NhbGFyX21vZGVfc3VwcG9ydGVkX3ApOgoJVXNlIGdjY19hc3NlcnQsIGdjY191bnJlYWNoYWJsZSAmIGludGVybmFsX2Vycm9yIGluc3RlYWQgb2YgYWJvcnQuCgkqIHRpbWV2YXIuYyAodGltZXZhcl9wdXNoLCB0aW1ldmFyX3BvcCwgdGltZXZhcl9zdGFydCwKCXRpbWV2YXJfc3RvcCk6IExpa2V3aXNlLgoJKiB0b3BsZXYuYyAoZGVmYXVsdF9wY2hfdmFsaWRfcCk6IExpa2V3aXNlLgoJKiB0cmFjZXIuYyAodGFpbF9kdXBsaWNhdGUpOiBMaWtld2lzZS4KCSogdHJlZS1hbGlhcy1jb21tb24uYyAoZ2V0X2FsaWFzX3Zhcl9kZWNsLAoJZ2V0X3ZhbHVlc19mcm9tX2NvbnN0cnVjdG9yLCBjcmVhdGVfYWxpYXNfdmFyLCBkZWxldGVfYWxpYXNfdmFycywKCWVtcHR5X3BvaW50c190b19zZXQsIHNhbWVfcG9pbnRzX3RvX3NldCwgcHRyX21heV9hbGlhc192YXIpOgoJTGlrZXdpc2UuCgkqIHRyZWUuYyAodHJlZV9zaXplLCBtYWtlX25vZGVfc3RhdCwgY29weV9ub2RlX3N0YXQsCglidWlsZF9pbnRfY3N0X3dpZGUsIGludGVnZXJfYWxsX29uZXNwLCBsaXN0X2xlbmd0aCwgY2hhaW5vbiwKCXRyZWVfbm9kZV9zdHJ1Y3R1cmUsIHR5cGVfY29udGFpbnNfcGxhY2Vob2xkZXJfcCwgc3Vic3RpdHV0ZV9pbl9leHByLAoJc3Vic3RpdHV0ZV9wbGFjZWhvbGRlcl9pbl9leHByLCB0YWJpbGl6ZV9yZWZlcmVuY2VfMSwgYnVpbGQwX3N0YXQsCglidWlsZDFfc3RhdCwgYnVpbGQyX3N0YXQsIGJ1aWxkM19zdGF0LCBidWlsZDRfc3RhdCwgaXNfYXR0cmlidXRlX3AsCglsb29rdXBfYXR0cmlidXRlLCB0eXBlX2hhc2hfY2Fub24sIGhvc3RfaW50ZWdlcnAsIGl0ZXJhdGl2ZV9oYXNoX2V4cHIsCglidWlsZF9tZXRob2RfdHlwZV9kaXJlY3RseSwgZGVjbF90eXBlX2NvbnRleHQsIGdldF9jYWxsZWVfZm5kZWNsLAoJZ2V0X3NldF9jb25zdHJ1Y3Rvcl9iaXRzLCBidWlsZF92ZWN0b3JfdHlwZV9mb3JfbW9kZSwgaW50X2NzdF92YWx1ZSwKCXRyZWVfZm9sZF9nY2QpOiBMaWtld2lzZS4KCSogdHJlZS1jZmcuYyAoY3JlYXRlX2JiLCBtYWtlX2N0cmxfc3RtdF9lZGdlcywgbWFrZV9leGl0X2VkZ2VzLAoJbWFrZV9jb25kX2V4cHJfZWRnZXMsIGdyb3VwX2Nhc2VfbGFiZWxzLCB0cmVlX21lcmdlX2Jsb2NrcywKCWNsZWFudXBfY29udHJvbF9leHByX2dyYXBoLCBmaW5kX3Rha2VuX2VkZ2UsCglmaW5kX3Rha2VuX2VkZ2Vfc3dpdGNoX2V4cHIsIHBoaV9hbHRlcm5hdGl2ZXNfZXF1YWwsCglpc19jdHJsX2FsdGVyaW5nX3N0bXQsIGRpc2JhbmRfaW1wbGljaXRfZWRnZXMsIHNldF9iYl9mb3Jfc3RtdCwKCXN0bXRfZm9yX2JzaSwgdHJlZV9maW5kX2VkZ2VfaW5zZXJ0X2xvYywgYnNpX2luc2VydF9vbl9lZGdlX2ltbWVkaWF0ZSwKCXRyZWVfc3BsaXRfZWRnZSwgdHJlZV92ZXJpZnlfZmxvd19pbmZvLCB0aHJlYWRfanVtcHMsCgl0cmVlX3JlZGlyZWN0X2VkZ2VfYW5kX2JyYW5jaCwgdHJlZV9mbG93X2NhbGxfZWRnZXNfYWRkKTogTGlrZXdpc2UuCgkqIHRyZWUtY2hyZWMuYyAoY2hyZWNfZm9sZF9wb2x5X2NzdCwgY2hyZWNfZm9sZF9wbHVzX3BvbHlfcG9seSwKCWNocmVjX2ZvbGRfbXVsdGlwbHlfcG9seV9wb2x5KTogTGlrZXdpc2UuCgkqIHRyZWUtY29tcGxleC5jIChleHRyYWN0X2NvbXBvbmVudCwgZXhwYW5kX2NvbXBsZXhfZGl2aXNpb24sCglleHBhbmRfY29tcGxleF9jb21wYXJpc29uLCBleHBhbmRfY29tcGxleF9vcGVyYXRpb25zXzEsCglidWlsZF9yZXBsaWNhdGVkX2NvbnN0LCBleHBhbmRfdmVjdG9yX29wZXJhdGlvbnNfMSk6IExpa2V3aXNlLgoJKiB0cmVlLWRhdGEtcmVmLmMgKHRyZWVfZm9sZF9iZXpvdXQsIGJ1aWxkX2NsYXNzaWNfZGlzdF92ZWN0b3IsCglidWlsZF9jbGFzc2ljX2Rpcl92ZWN0b3IpOiBMaWtld2lzZS4KCSogdHJlZS1kZmEuYyAoY29tcHV0ZV9pbW1lZGlhdGVfdXNlc19mb3JfcGhpLAoJY29tcHV0ZV9pbW1lZGlhdGVfdXNlc19mb3Jfc3RtdCwgY3JlYXRlX3Zhcl9hbm4sIGNyZWF0ZV9zdG10X2FubiwKCWNyZWF0ZV90cmVlX2FubiwgY29sbGVjdF9kZmFfc3RhdHMsIGdldF92aXJ0dWFsX3Zhcik6IExpa2V3aXNlLgoJKiB0cmVlLWR1bXAuYyAoZGVxdWV1ZV9hbmRfZHVtcCk6IExpa2V3aXNlLgoJKiB0cmVlLWVoLmMgKHJlY29yZF9zdG10X2VoX3JlZ2lvbiwgYWRkX3N0bXRfdG9fZWhfcmVnaW9uLAoJcmVjb3JkX2luX2ZpbmFsbHlfdHJlZSwgcmVwbGFjZV9nb3RvX3F1ZXVlXzEsCgltYXliZV9yZWNvcmRfaW5fZ290b19xdWV1ZSwgdmVyaWZ5X25vcmVjb3JkX3N3aXRjaF9leHByLAoJZG9fcmV0dXJuX3JlZGlyZWN0aW9uKTogTGlrZXdpc2UuCgkqIHRyZWUtaWYtY29udi5jICh0cmVlX2lmX2NvbnZlcnRfc3RtdCwgdHJlZV9pZl9jb252ZXJ0X2NvbmRfZXhwciwKCWFkZF90b19kc3RfcHJlZGljYXRlX2xpc3QsIGZpbmRfcGhpX3JlcGxhY2VtZW50X2NvbmRpdGlvbiwKCXJlcGxhY2VfcGhpX3dpdGhfY29uZF9tb2RpZnlfZXhwciwgZ2V0X2xvb3BfYm9keV9pbl9pZl9jb252X29yZGVyKToKCUxpa2V3aXNlLgoJKiB0cmVlLWlubGluZS5jIChyZW1hcF9kZWNsLCByZW1hcF90eXBlLCByZW1hcF9kZWNscywgY29weV9ib2R5X3IsCglpbml0aWFsaXplX2lubGluZWRfcGFyYW1ldGVycywgZGVjbGFyZV9yZXR1cm5fdmFyaWFibGUsCgllc3RpbWF0ZV9udW1faW5zbnNfMSwgZXhwYW5kX2NhbGxfaW5saW5lLCBleHBhbmRfY2FsbHNfaW5saW5lLAoJb3B0aW1pemVfaW5saW5lX2NhbGxzLCBjb3B5X3RyZWVfcik6IExpa2V3aXNlLgoJKiB0cmVlLWludG8tc3NhLmMgKHJld3JpdGVfaW5pdGlhbGl6ZV9ibG9ja19sb2NhbF9kYXRhLCByZXdyaXRlX3N0bXQsCglzc2FfcmV3cml0ZV9zdG10LCByZXdyaXRlX2ludG9fc3NhKTogTGlrZXdpc2UuCgkqIHRyZWUtaXRlcmF0b3IuYyAoYWxsb2Nfc3RtdF9saXN0LCB0c2lfbGlua19iZWZvcmUsIHRzaV9saW5rX2FmdGVyLAoJdHNpX3NwbGl0X3N0YXRlbWVudF9saXN0X2FmdGVyLCB0c2lfc3BsaXRfc3RhdGVtZW50X2xpc3RfYmVmb3JlKToKCUxpa2V3aXNlLgoJKiB0cmVlLW11ZGZsYXAuYyAobWZfdmFybmFtZV90cmVlKTogTGlrZXdpc2UuCgkqIHRyZWUtbmVzdGVkLmMgKGNyZWF0ZV90bXBfdmFyX2ZvciwgbG9va3VwX2ZpZWxkX2Zvcl9kZWNsLAoJbG9va3VwX3RyYW1wX2Zvcl9kZWNsLCBjb252ZXJ0X2FsbF9mdW5jdGlvbl9jYWxscyk6IExpa2V3aXNlLgoJKiB0cmVlLW9wdGltaXplLmMgKHRyZWVfcmVzdF9vZl9jb21waWxhdGlvbik6IExpa2V3aXNlLgoJKiB0cmVlLW91dG9mLXNzYS5jIChjcmVhdGVfdGVtcCwgZWxpbWluYXRlX2J1aWxkLCBlbGltaW5hdGVfcGhpLAoJY29hbGVzY2VfYWJub3JtYWxfZWRnZXMsIGNvYWxlc2NlX3NzYV9uYW1lLCBlbGltaW5hdGVfdmlydHVhbF9waGlzLAoJZnJlZV90ZW1wX2V4cHJfdGFibGUsIGFkZF9kZXBlbmRhbmNlLCBmaW5pc2hfZXhwciwgcmV3cml0ZV90cmVlcyk6CglMaWtld2lzZS4KCSogdHJlZS1waGlub2Rlcy5jIChyZXNpemVfcGhpX25vZGUsIGFkZF9waGlfYXJnLAoJcmVtb3ZlX2FsbF9waGlfbm9kZXNfZm9yKTogTGlrZXdpc2UuCgkqIHRyZWUtcHJldHR5LXByaW50LmMgKG9wX3ByaW8sIHByaW50X2NhbGxfbmFtZSk6IExpa2V3aXNlLgoJKiB0cmVlLXByb2ZpbGUuYyAodHJlZV9nZW5faW50ZXJ2YWxfcHJvZmlsZXIsIHRyZWVfZ2VuX3BvdzJfcHJvZmlsZXIsCgl0cmVlX2dlbl9vbmVfdmFsdWVfcHJvZmlsZXIsIHRyZWVfZ2VuX2NvbnN0X2RlbHRhX3Byb2ZpbGVyKTogTGlrZXdpc2UuCgkqIHRyZWUtc3JhLmMgKHR5cGVfY2FuX2luc3RhbnRpYXRlX2FsbF9lbGVtZW50cywgc3JhX2hhc2hfdHJlZSwKCXNyYV9lbHRfZXEsIHNyYV93YWxrX2V4cHIsIGluc3RhbnRpYXRlX21pc3NpbmdfZWxlbWVudHMsCglnZW5lcmF0ZV9vbmVfZWxlbWVudF9yZWYsIGdlbmVyYXRlX2VsZW1lbnRfY29weSwKCWdlbmVyYXRlX2VsZW1lbnRfemVybywgc2NhbGFyaXplX2NvcHksIHNjYWxhcml6ZV9pbml0LAoJc2NhbGFyaXplX2xkc3QpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtYWxpYXMuYyAoZGVsZXRlX2FsaWFzX2luZm8sIGdyb3VwX2FsaWFzZXMsIG1heV9hbGlhc19wLAoJYWRkX21heV9hbGlhcywgYWRkX3BvaW50ZWRfdG9fZXhwciwgYWRkX3BvaW50ZWRfdG9fdmFyLAoJY29sbGVjdF9wb2ludHNfdG9faW5mb19yLCBnZXRfdG10X2ZvciwgZ2V0X3B0cl9pbmZvKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLmMgKHdhbGtfdXNlX2RlZl9jaGFpbnMsIGNoZWNrX3BoaV9yZWR1bmRhbmN5KTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWNjcC5jIChkdW1wX2xhdHRpY2VfdmFsdWUsIGdldF9kZWZhdWx0X3ZhbHVlLCBnZXRfdmFsdWUsCglzZXRfbGF0dGljZV92YWx1ZSwgbGlrZWx5X3ZhbHVlLCBjY3BfdmlzaXRfcGhpX25vZGUsIHZpc2l0X2Fzc2lnbm1lbnQsCgl3aWRlbl9iaXRmaWVsZCwgY2NwX2ZvbGRfYnVpbHRpbik6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1jb3B5LmMgKG1heV9wcm9wYWdhdGVfY29weSwgbWVyZ2VfYWxpYXNfaW5mbywKCXJlcGxhY2VfZXhwXzEsIHByb3BhZ2F0ZV90cmVlX3ZhbHVlKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWNvcHlyZW5hbWUuYyAoY29weV9yZW5hbWVfcGFydGl0aW9uX2NvYWxlc2NlKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWRjZS5jIChzZXRfY29udHJvbF9kZXBlbmRlbmNlX21hcF9iaXQsCglmaW5kX2NvbnRyb2xfZGVwZW5kZW5jZSwgZmluZF9wZG9tLCBtYXJrX29wZXJhbmRfbmVjZXNzYXJ5LAoJbWFya19zdG10X2lmX29idmlvdXNseV9uZWNlc3NhcnksCgltYXJrX2NvbnRyb2xfZGVwZW5kZW50X2VkZ2VzX25lY2Vzc2FyeSwgcmVtb3ZlX2RlYWRfc3RtdCk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1kb20uYyAoZG9tX29wdF9pbml0aWFsaXplX2Jsb2NrX2xvY2FsX2RhdGEsCglzaW1wbGlmeV9zd2l0Y2hfYW5kX2xvb2t1cF9hdmFpbF9leHByLCBjcHJvcF9pbnRvX3N1Y2Nlc3Nvcl9waGlzLAoJZWxpbWluYXRlX3JlZHVuZGFudF9jb21wdXRhdGlvbnMsIGF2YWlsX2V4cHJfZXEpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtZHNlLmMgKGZpeF9zdG10X3ZfbWF5X2RlZnMpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtbG9vcC1jaC5jIChzaG91bGRfZHVwbGljYXRlX2xvb3BfaGVhZGVyX3AsCglkdXBsaWNhdGVfYmxvY2tzKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWxvb3AtaW0uYyAoZm9yX2VhY2hfaW5kZXgsIHNldF9sZXZlbCwKCWlzX2NhbGxfY2xvYmJlcmVkX3JlZik6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChkdW1wX3VzZSwgZGl2aWRlLCBzdG10X2FmdGVyX2lwX25vcm1hbF9wb3MsCglzdG10X2FmdGVyX2luY3JlbWVudCwgc2V0X2l2LCBjb250YWluc19hYm5vcm1hbF9zc2FfbmFtZV9wLAoJZmluZF9pbnRlcmVzdGluZ191c2VzX291dGVyX29yX25vbmxpbiwgYWRkX2Rlcml2ZWRfaXZzX2NhbmRpZGF0ZXMsCglwZWVsX2FkZHJlc3MsIHB0cl9kaWZmZXJlbmNlX2Nvc3QsIG1heV9yZXBsYWNlX2ZpbmFsX3ZhbHVlLAoJZGV0ZXJtaW5lX3VzZV9pdl9jb3N0LCByZXdyaXRlX3VzZV9ub25saW5lYXJfZXhwciwgcmV3cml0ZV91c2Vfb3V0ZXIsCglyZXdyaXRlX3VzZSwgcmV3cml0ZV91c2VzKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWxvb3AtbWFuaXAuYyAocmV3cml0ZV9pbnRvX2xvb3BfY2xvc2VkX3NzYSwKCWNoZWNrX2xvb3BfY2xvc2VkX3NzYV91c2UpOiBMaWtld2lzZS4KCSogdHJlZS1zc2FuYW1lcy5jIChtYWtlX3NzYV9uYW1lKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGZpbmFsaXplX3NzYV9kZWZzLCBmaW5hbGl6ZV9zc2FfdXNlcywKCWZpbmFsaXplX3NzYV92X211c3RfZGVmcywgZmluYWxpemVfc3NhX3N0bXRfb3BlcmFuZHMsCglnZXRfc3RtdF9vcGVyYW5kcywgZ2V0X2V4cHJfb3BlcmFuZHMsIGdldF9hc21fZXhwcl9vcGVyYW5kcywKCWdldF9pbmRpcmVjdF9yZWZfb3BlcmFuZHMsIGFkZF9zdG10X29wZXJhbmQpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtcHJlLmMgKHZhbHVlX2V4aXN0c19pbl9zZXRfYml0bWFwLAoJdmFsdWVfcmVtb3ZlX2Zyb21fc2V0X2JpdG1hcCwgYml0bWFwX2luc2VydF9pbnRvX3NldCwgaW5zZXJ0X2ludG9fc2V0LAoJcGhpX3RyYW5zbGF0ZSwgdmFsaWRfaW5fc2V0LCBjb21wdXRlX2FudGljLAoJZmluZF9vcl9nZW5lcmF0ZV9leHByZXNzaW9uLCBjcmVhdGVfZXhwcmVzc2lvbl9ieV9waWVjZXMsIGluc2VydF9hdXgsCgljcmVhdGVfdmFsdWVfZXhwcl9mcm9tLCBlbGltaW5hdGUpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtcHJvcGFnYXRlLmMgKGNmZ19ibG9ja3NfZ2V0KTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLXRocmVhZHVwZGF0ZS5jIChyZW1vdmVfbGFzdF9zdG10X2FuZF91c2VsZXNzX2VkZ2VzKToKCUxpa2V3aXNlLgoJKiB0cmVlLXRhaWxjYWxsLmMgKGluZGVwZW5kZW50X29mX3N0bXRfcCwgYWRqdXN0X3JldHVybl92YWx1ZSwKCWVsaW1pbmF0ZV90YWlsX2NhbGwpOiBMaWtld2lzZS4KCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfY3JlYXRlX2luZGV4X2Zvcl9hcnJheV9yZWYsCgl2ZWN0X2FsaWduX2RhdGFfcmVmLCB2ZWN0X2NyZWF0ZV9kYXRhX3JlZiwKCXZlY3RfY3JlYXRlX2Rlc3RpbmF0aW9uX3ZhciwgdmVjdF9nZXRfdmVjX2RlZl9mb3Jfb3BlcmFuZCwKCXZlY3RfZmluaXNoX3N0bXRfZ2VuZXJhdGlvbiwgdmVjdF90cmFuc2Zvcm1fc3RtdCwKCXZlY3RfdHJhbnNmb3JtX2xvb3BfYm91bmQsIHZlY3RfdHJhbnNmb3JtX2xvb3AsCgl2ZWN0X2FuYWx5emVfb3BlcmF0aW9ucyk6IExpa2V3aXNlLgoJKiB0cmVlLXZuLmMgKHZuX2NvbXB1dGUsIHNldF92YWx1ZV9oYW5kbGUsIGdldF92YWx1ZV9oYW5kbGUpOgoJTGlrZXdpc2UuCgkqIHRyZWUtZmxvdy1pbmxpbmUuaCAodmFyX2FubiwgZ2V0X3Zhcl9hbm4sIGdldF9kZWZfZnJvbV9wdHIsCglnZXRfdXNlX29wX3B0ciwgaW1tZWRpYXRlX3VzZSwgcGhpX3NzYV9uYW1lX3AsIGJzaV9zdGFydCwKCWJzaV9hZnRlcl9sYWJlbHMsIGJzaV9sYXN0KTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWxpdmUuYyAodmFyX3VuaW9uLCBjaGFuZ2VfcGFydGl0aW9uX3ZhciwKCWNyZWF0ZV9zc2FfdmFyX21hcCwgY2FsY3VsYXRlX2xpdmVfb25fZW50cnksIHJvb3RfdmFyX2luaXQsCgl0eXBlX3Zhcl9pbml0LCBhZGRfY29hbGVzY2UsIHNvcnRfY29hbGVzY2VfbGlzdCwgcG9wX2Jlc3RfY29hbGVzY2UpOgoJTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWxpdmUuaCAocGFydGl0aW9uX2lzX2dsb2JhbCwgbGl2ZV9lbnRyeV9ibG9ja3MsCgl0cGFfZmluZF90cmVlKTogTGlrZXdpc2UuCgkocmVnaXN0ZXJfc3NhX3BhcnRpdGlvbl9jaGVjayk6IERlY2xhcmUuCgkocmVnaXN0ZXJfc3NhX3BhcnRpdGlvbik6IHVzZSBpdC4KCSogdHJlZS1zc2EtbGl2ZS5jOiBJbmNsdWRlIGVycm9ycy5oLgoJKHJlZ2lzdGVyX3NzYV9wYXJ0aXRpb25fY2hlY2spOiBOZXcuCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmM6IEluY2x1ZGUgZXJyb3JzLmguCgkqIE1ha2VmaWxlLmluICh0cmVlLXNzYS1vcGVyYW5kcy5vKTogRGVwZW5kIG9uIGVycm9ycy5oLgoKMjAwNC0wOS0wOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJICAgIENhdGhlcmluZSBNb29yZSAgPGNsbUByZWRoYXQuY29tPgoKCSogY29uZmlnL2Zydi9mcnYtcHJvdG9zLmggKEZSVl9DUFVfRlI1NTAsIEZSVl9DUFVfRlI0NTApCgkoRlJWX0NQVV9GUjQwNSk6IE5ldyBwcm9jZXNzb3IgZW51bXMuCgkoZnJ2X2lzc3VlX3JhdGUsIGZydl9hY2NfZ3JvdXApOiBEZWNsYXJlLgoJKiBjb25maWcvZnJ2L2Zydi5oIChDUFBfU1BFQywgQ1BQX0ZSVl9TUEVDLCBDUFBfRlI1MDBfU1BFQyk6IERlbGV0ZS4KCShDUFBfRlI0MDBfU1BFQywgQ1BQX1NJTVBMRV9TUEVDKTogRGVsZXRlLgoJKE1BU0tfREVGQVVMVF9GUjU1MCwgTUFTS19ERUZBVUxUX0ZSNDUwKTogTmV3IG1hY3Jvcy4KCShTVUJUQVJHRVRfRVhUUkFfU1BFQ1MsIEVYVFJBX1NQRUNTLCBDUFBfQ1BVX0RFRkFVTFRfU1BFQyk6IERlbGV0ZS4KCShUQVJHRVRfQ1BVX0NQUF9CVUlMVElOUyk6IERlZmluZSB0aGUgbWFjcm9zIHRoYXQgd2VyZSBwcmV2aW91c2x5CgloYW5kbGVkIGJ5IENQUF9TUEVDLgoJKE1BU0tfTE9OR19DQUxMUywgVEFSR0VUX0xPTkdfQ0FMTFMpOiBOZXcgbWFjcm9zLgoJKE1BU0tfQUxJR05fTEFCRUxTLCBUQVJHRVRfQUxJR05fTEFCRUxTKTogTmV3IG1hY3Jvcy4KCShBQ0NfTUFTSyk6IE5ldyBtYWNyby4KCShUQVJHRVRfTUVESUFfUkVWMik6IEluY2x1ZGUgRlJWX0NQVV97RlI0MDUsRlI0NTAsRlI1NTB9LgoJKFRBUkdFVF9NRURJQV9GUjQ1MCk6IE5ldyBtYWNyby4KCShUQVJHRVRfRlI1MDBfRlI1NTBfQlVJTFRJTlMsIFRBUkdFVF9GUjQwNV9CVUlMVElOUyk6IE5ldyBtYWNyb3MuCgkoVEFSR0VUX1NXSVRDSEVTKTogQWRkIC1te25vLSx9YWxpZ24tbGFiZWxzIGFuZCAtbXtuby0sfWxvbmctY2FsbHMuCgkoTEFCRUxfQUxJR05fQUZURVJfQkFSUklFUik6IERlZmluZS4KCShBQ0NfTEFTVCwgQUNDR19MQVNUKTogQWRkIGZvdXIgbmV3IGFjY3VtdWxhdG9yIHJlZ2lzdGVycy4KCShJQUNDX0ZJUlNULCBJQUNDX0xBU1QpOiBOZXcgcGFpciBvZiBTUFJzLgoJKEFDQ0dfRklSU1QsIEFQX0ZJUlNULCBTUFJfRklSU1QsIFNQUl9MQVNUKTogQWRqdXN0IGFjY29yZGluZ2x5LgoJKEZJWEVEX1JFR0lTVEVSUywgQ0FMTF9VU0VEX1JFR0lTVEVSUywgUkVHX0FMTE9DX09SREVSKQoJKFJFR0lTVEVSX05BTUVTKTogQWRkIGVudHJpZXMgZm9yIG5ldyByZWdpc3RlcnMuCgkoUkVHX0NMQVNTX0NPTlRFTlRTKTogVXBkYXRlIGZvciBuZXcgcmVnaXN0ZXIgcmFuZ2VzLgoJKEVYVFJBX0NPTlNUUkFJTlRfRk9SX1MpOiBSZWRlZmluZSBpbiB0ZXJtcyBvZiBjYWxsX29wZXJhbmQuCgkoSVNTVUVfUkFURSwgQ0xFQVJfVkxJV19TVEFSVCwgU0VUX1ZMSVdfU1RBUlQpOiBEZWxldGUuCgkoUEFDS0lOR19GTEFHX1VTRURfUCk6IERlbGV0ZS4KCShGUlZfQlVJTFRJTl9NUUxDTFJIUywgRlJWX0JVSUxUSU5fTVFMTVRIUywgRlJWX0JVSUxUSU5fTVFTTExISSkKCShGUlZfQlVJTFRJTl9NUVNSQUhJLCBGUlZfQlVJTFRJTl9TTVVMLCBGUlZfQlVJTFRJTl9VTVVMKQoJKEZSVl9CVUlMVElOX1BSRUZFVENIMCwgRlJWX0JVSUxUSU5fUFJFRkVUQ0gsIEZSVl9CVUlMVElOX1NNQVNTKQoJKEZSVl9CVUlMVElOX1NNU1NTLCBGUlZfQlVJTFRJTl9TTVUsIEZSVl9CVUlMVElOX1NDVVRTUykKCShGUlZfQlVJTFRJTl9BRERTUywgRlJWX0JVSUxUSU5fU1VCU1MsIEZSVl9CVUlMVElOX1NMQVNTKQoJKEZSVl9CVUlMVElOX0lBQ0NyZWFke2wsbGx9LCBGUlZfQlVJTFRJTl9JQUNDc2V0e2xsLGx9KQoJKEZSVl9CVUlMVElOX1NDQU4pOiBOZXcgbWVtYmVycyBvZiBmcnZfYnVpbHRpbl9lbnVtLgoJKEZSVl9CVUlMVElOX0ZJUlNUX05PTk1FRElBKTogTmV3IG1hY3JvLgoJKENQVV9VTklUU19RVUVSWSk6IERlZmluZSB0byAxLgoJKiBjb25maWcvZnJ2L2Zydi5jOiBJbmNsdWRlIGd0LWZydi5oCgkoTlVNX05PUF9QQVRURVJOUywgTlRIX1VOSVQsIFVOSVRfTlVNQkVSLCBQQUNLSU5HX0ZMQUdfUCk6IE5ldyBtYWNyb3MuCgkoU0VUX1BBQ0tJTkdfRkxBRywgQ0xFQVJfUEFDS0lOR19GTEFHLCBGT1JfRUFDSF9SRUdOTyk6IE5ldyBtYWNyb3MuCgkoZnJ2X2luc25fZ3JvdXApOiBOZXcgZW51bWVyYXRpb24uCgkoZnJ2X3VuaXRfbmFtZXMsIGZydl91bml0X2dyb3VwcywgZnJ2X3VuaXRfY29kZXMpOiBOZXcgdmFyaWFibGVzLgoJKGZydl90eXBlX3RvX3VuaXQsIGZydl9ub3BzLCBmcnZfbnVtX25vcHMpOiBOZXcgdmFyaWFibGVzLgoJKFJFR1NUQVRFX0RFQUQsIFJFR1NUQVRFX0xJVkUsIFJFR1NUQVRFX1VOVVNFRCwgUkVHU1RBVEVfTUFTSykKCShSRUdTVEFURV9DT05ESlVNUCk6IERlbGV0ZS4gIFNodWZmbGUgb3RoZXIgbnVtYmVycyB0byBjb3ZlciB0aGUKCWdhcCBsZWZ0IGJ5IFJFR1NUQVRFX0xJVkUuCgkocmVnc3RhdGVfdCk6IE5ldyB0eXBlZGVmLgoJKFRBUkdFVF9NQUNISU5FX0RFUEVOREVOVF9SRU9SRyk6IERlZmluZS4KCShmcnZfZGVmYXVsdF9mbGFnc19mb3JfY3B1KTogSGFuZGxlIEZSVl9DUFVfe0ZSNTUwLEZSNDUwLEZSNDA1fS4KCShmcnZfb3ZlcnJpZGVfb3B0aW9ucyk6IENoZWNrIGZvciAtbWNwdT17ZnI1NTAsZnI0NTAsZnI0MDV9LgoJSW5pdGlhbGl6ZSBmcnZfdW5pdF9jb2Rlc1tdIGFuZCBmcnZfdHlwZV90b191bml0W10uCgkoZnJ2X2NvbmRpdGlvbmFsX3JlZ2lzdGVyX3VzYWdlKTogUmVtb3ZlIHJlZHVuZGFudCBmaXhpbmcgb2YKCWFjY3VtdWxhdG9yIHJlZ2lzdGVycy4KCShmcnZfaW5zbl9wYWNraW5nX2ZsYWcpOiBVcGRhdGUgc3BlY2lmaWNhdGlvbi4KCShmcnZfZnVuY3Rpb25fcHJvbG9ndWUpOiBEb24ndCBzZXQgZnJ2X2luc25fcGFja2luZ19mbGFnIGhlcmUuCglaZXJvIG91dCBmcnZfbm9wc1tdLgoJKGZydl9leHBhbmRfZXBpbG9ndWUpOiBSZW1vdmUgY29tbWVudHMgYWJvdXQgdGhlIG5vLWxvbmdlci1wcmVzZW50CglTSUJDQUxMX1AgYXJndW1lbnQuCgkoZnJ2X2FzbV9vdXRwdXRfbWlfdGh1bmspOiBDaGVjayBmcnZfaXNzdWVfcmF0ZSgpIHJhdGhlciB0aGFuCglQQUNLSU5HX0ZMQUdfVVNFRF9QKCkgd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRvIHBhY2sgaW5zdHJ1Y3Rpb25zLgoJKGZydl9hc21fb3V0cHV0X29wY29kZSwgZnJ2X2ZpbmFsX3ByZXNjYW5faW5zbik6IFNpbXBsaWZ5IGluIGxpZ2h0CglvZiB0aGUgbmV3IG1lYW5pbmcgb2YgZnJ2X2luc25fcGFja2luZ19mbGFnLiAgRW1pdCBhbiBtbm9wLnAgaWYKCXBhY2tpbmcgaXMgZGlzYWJsZWQgYW5kIGlmIElOU04gY2FuIG9ubHkgaXNzdWUgdG8gTTEuCgkoY2FsbF9vcGVyYW5kKTogQ2hlY2sgVEFSR0VUX0xPTkdfQ0FMTFMuCgkoYWNjX29wZXJhbmQsIGV2ZW5fYWNjX29wZXJhbmQsIHF1YWRfYWNjX29wZXJhbmQpCgkoYWNjZ19vcGVyYW5kKTogU2ltcGxpZnkuICBEb24ndCBhY2NlcHQgcHNldWRvIHJlZ2lzdGVycy4KCShvdXRwdXRfbW92ZV9zaW5nbGUpOiBIYW5kbGUgU1BSPC16ZXJvIG1vdmVzLgoJKGZydl9pc3N1ZV9yYXRlKTogTWFrZSBub24tc3RhdGljLiAgSGFuZGxlIEZSVl9DUFVfe0ZSNTUwLEZSNDUwLEZSNDA1fS4KCShmcnZfcmVnaXN0ZXJzX3VwZGF0ZSwgZnJ2X3JlZ2lzdGVyc191c2VkX3ApOiBEZWxldGUuCgkoZnJ2X3JlZ2lzdGVyc19zZXRfcCk6IERlbGV0ZS4KCShmcnZfYWNjX2dyb3VwXzEsIGZydl9hY2NfZ3JvdXAsIGZydl9pbnNuX3VuaXQpOiBOZXcgZnVuY3Rpb25zLgoJKGZydl9pc3N1ZXNfdG9fYnJhbmNoX3VuaXRfcCk6IE5ldyBmdW5jdGlvbi4KCShmcnZfcGFja2V0KTogTmV3IHN0cnVjdHVyZS4KCShmcnZfY29uZF9mbGFncywgZnJ2X3JlZ3N0YXRlX2NvbmZsaWN0X3ApOiBOZXcgZnVuY3Rpb25zLgoJKGZydl9yZWdpc3RlcnNfY29uZmxpY3RfcF8xLCBmcnZfcmVnaXN0ZXJzX2NvbmZsaWN0X3ApOiBOZXcgZnVuY3Rpb25zLgoJKGZydl9yZWdpc3RlcnNfdXBkYXRlXzEsIGZydl9yZWdpc3RlcnNfdXBkYXRlKTogTmV3IGZ1bmN0aW9ucy4KCShmcnZfc3RhcnRfcGFja2V0LCBmcnZfc3RhcnRfcGFja2V0X2Jsb2NrLCBmcnZfZmluaXNoX3BhY2tldCkKCShmcnZfcGFja19pbnNuX3AsIGZydl9hZGRfaW5zbl90b19wYWNrZXQsIGZydl9pbnNlcnRfbm9wX2luX3BhY2tldCkKCShmcnZfZm9yX2VhY2hfcGFja2V0LCBmcnZfc29ydF9pbnNuX2dyb3VwXzEsIGZydl9jb21wYXJlX2luc25zKQoJKGZydl9zb3J0X2luc25fZ3JvdXAsIGZydl9yZW9yZGVyX3BhY2tldCk6IE5ldyBmdW5jdGlvbnMuCgkoZnJ2X3BhY2tfaW5zbnMpOiBVc2UgZnJ2X3Jlb3JkZXJfcGFja2V0LgoJKGZydl9wYWNrZXRfYWRkcmVzcyk6IE5ldyB2YXJpYWJsZS4KCShmcnZfZmlsbF91bnVzZWRfdW5pdHMsIGZydl9hbGlnbl9sYWJlbCwgZnJ2X3Jlb3JnX3BhY2tldCkKCShmcnZfcmVnaXN0ZXJfbm9wLCBmcnZfcmVvcmcpOiBOZXcgZnVuY3Rpb25zLgoJKGJkZXNjXzFhcmcpOiBBZGQgX19TQ1VUU1MuCgkoYmRlc2NfMmFyZyk6IEFkZCBfX01RTENMUkhTLCBfX01RTE1USFMsIF9fU01VTCwgX19VTVVMLCBfX0FERFNTLAoJX19TVUJTUywgX19TTEFTUyBhbmQgX19TQ0FOLgoJKGJkZXNjXzJhcmdpbW0pOiBBZGQgX19NUVNMTEhJIGFuZCBfX01RU1JBSEkuCgkoYmRlc2NfaW50X3ZvaWQyYXJnLCBiZGVzY19wcmVmZXRjaGVzKTogTmV3IGFycmF5cy4KCShmcnZfaW5pdF9idWlsdGlucyk6IFJlZ2lzdGVyIHRoZSBhYm92ZSBidWlsdGlucy4KCShmcnZfaW50X3RvX2FjYyk6IFVzZSBBQ0NfTUFTSyB0byBjaGVjayBmb3IgdmFsaWQgYWNjdW11bGF0b3IKCXJlZ2lzdGVycy4gIFR1cm4gdGhlIHJlZmVyZW5jZWQgYWNjdW11bGF0b3JzIGludG8gZ2xvYmFsIHJlZ2lzdGVycy4KCShmcnZfcmVhZF9pYWNjX2FyZ3VtZW50KTogTmV3IGZ1bmN0aW9uLgoJKGZydl9leHBhbmRfaW50X3ZvaWQyYXJnLCBmcnZfZXhwYW5kX3ByZWZldGNoZXMpOiBOZXcgZnVuY3Rpb25zLgoJKGZydl9zcGxpdF9pYWNjX21vdmUpOiBOZXcgZnVuY3Rpb24uCgkoZnJ2X2V4cGFuZF9idWlsdGluKTogSGFuZGxlIHRoZSBuZXcgYnVpbHRpbnMuCgkqIGNvbmZpZy9mcnYvZnJ2Lm1kOiBSZXBsYWNlIG9sZCBzY2hlZHVsZXJzIHdpdGggbmV3IG9yZGVyLWluZGVwZW5kZW50CglvbmVzLiAgQWRkIHNjaGVkdWxlcnMgZm9yIHRoZSBGUjQwNSwgRlI0NTAgYW5kIEZSNTUwLiAgRGVzY3JpYmUgbmV3CglwYWNraW5nIGFsZ29yaXRobS4KCShjcHUpOiBBZGQgZnI1NTAsIGZyNDUwIGFuZCBmcjQwNS4KCSh0eXBlKTogQWRkIG1hY2MsIHNjYW4sIGN1dCwgZm5vcCwgZnNjbXAsIGZkY21wLCBtbm9wLCBtcWxpbWggYW5kCgltcXNoaWZ0LiAgUmVwbGFjZSBmbWFzIHdpdGggZnNtYWRkIGFuZCBmbWFkIHdpdGggZmRtYWRkLiAgRGVsZXRlIG03LgoJKCptdWxhZGRbc2RdZjQsICptdWxzdWJbc2RdZjQpOiBGaXggdHlwZXMuCgkoKmNtcFtzZF1mX2NjX2ZwKTogVXNlIG5ldyBmW3NkXWNtcCB0eXBlcy4KCShmbm9wLCBtbm9wKTogTmV3IHBhdHRlcm5zLgoJKFVOU1BFQ19NUUxDTFJIUywgVU5TUEVDX01RTE1USFMsIFVOU1BFQ19NUVNMTEhJLCBVTlNQRUNfTVFTUkFISSk6CglOZXcgY29uc3RhbnRzLgoJKG1leHBkaHcsICpjb25kX2V4ZWNfbWV4cGRodyk6IEZpeCBkZXN0aW5hdGlvbiBvcGVyYW5kcy4KCShtY2xyYWNjYTgpOiBVc2UgQUNDX01BU0sgdG8gZGV0ZXJtaW5lIHRoZSB1cHBlciBzZXQgb2YgYWNjdW11bGF0b3IKCXJlZ2lzdGVycy4KCShtcWxjbHJocywgbXFsbXRocywgbXFzbGxoaSwgbXFzcmFoaSk6IE5ldyBwYXR0ZXJucy4KCShVTlNQRUNfU01VTCwgVU5TUEVDX1VNVUwsIFVOU1BFQ19TTVUsIFVOU1BFQ19BRERTUywgVU5TUEVDX1NVQlNTKQoJKFVOU1BFQ19TTEFTUywgVU5TUEVDX1NDQU4sIFVOU1BFQ19JTlRTUywgVU5TUEVDX1NDVVRTUykKCShVTlNQRUNfUFJFRkVUQ0gwLCBVTlNQRUNfUFJFRkVUQ0gsIFVOU1BFQ19JQUNDcmVhZGxsKQoJKFVOU1BFQ19JQUNDcmVhZGwsIFVOU1BFQ19JQUNDc2V0bGwsIFVOU1BFQ19JQUNDc2V0bCwgVU5TUEVDX1NNQVNTKQoJKFVOU1BFQ19TTVNTUywgVU5TUEVDX0lNVUwsIElBQ0MwX1JFRyk6IE5ldyBjb25zdGFudHMuCgkoc211bCwgdW11bCwgc21hc3MsIHNtc3NzLCBzbXUsIGFkZHNzLCBzdWJzcywgc2xhc3MsIHNjYW4sIHNjdXRzcykKCShmcnZfcHJlZmV0Y2gwLCBmcnZfcHJlZmV0Y2gpOiBOZXcgcGF0dGVybnMuCgkqIGNvbmZpZy9mcnYvdC1mcnYgKE1VTFRJTElCX09QVElPTlMpOiBSZW1vdmUgLW1jcHU9ZnJ2IGFuZAoJLW1jcHU9c2ltcGxlLiAgQWRkIC1tY3B1PWZyNTUwLgoJKE1VTFRJTElCX0RJUk5BTUVTKTogVXBkYXRlIGFjY29yZGluZ2x5LgoJKE1VTFRJTElCX01BVENIRVMpOiBVc2UgdGhlIGZyNDAwIG11bHRpbGlicyBmb3IgLW1jcHU9ZnI0MDUgYW5kCgktbWNwdT1mcjQ1MC4KCSogZG9jL2ludm9rZS50ZXhpOiBEb2N1bWVudCB0aGUgbmV3IC1tY3B1PXtmcjU1MCxmcjQ1MCxmcjQwNX0sCgktbWxvbmctY2FsbHMgYW5kIC1tYWxpZ24tbGFiZWxzIG9wdGlvbnMgZm9yIEZSLVYuCgoyMDA0LTA5LTA5ICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCglQUiBjLzg0MjAKCSogYy10cmVlLmggKHN0cnVjdCBjX2RlY2xzcGVjcyk6IE5ldy4KCShzdHJ1Y3QgY19kZWNsYXJhdG9yLCBzdHJ1Y3QgY190eXBlX25hbWUsIHN0cnVjdCBjX3Bhcm0pOiBVcGRhdGUKCWVsZW1lbnQgdHlwZXMuCgkoYnVpbGRfYXJyYXlfZGVjbGFyYXRvciwgZ3Jva2ZpZWxkLCBzaGFkb3dfdGFnLCBzaGFkb3dfdGFnX3dhcm5lZCwKCXN0YXJ0X2Z1bmN0aW9uLCBzdGFydF9kZWNsLCBidWlsZF9jX3Bhcm0sCgltYWtlX3BvaW50ZXJfZGVjbGFyYXRvcik6IFVwZGF0ZSBwcm90b3R5cGVzLgoJKGJ1aWxkX251bGxfZGVjbHNwZWNzLCBkZWNsc3BlY3NfYWRkX3F1YWwsIGRlY2xzcGVjc19hZGRfdHlwZSwKCWRlY2xzcGVjc19hZGRfc2NzcGVjLCBkZWNsc3BlY3NfYWRkX2F0dHJzKTogTmV3LgoJKHNwbGl0X3NwZWNzX2F0dHJzKTogUmVtb3ZlLgoJKiBjLXBhcnNlLmluICgldW5pb24pOiBBZGQgZHNwdHlwZS4KCShkZWNsc3BlY3Nfbm9zY19ub3RzX25vc2Ffbm9lYSwgZGVjbHNwZWNzX25vc2Nfbm90c19ub3NhX2VhLAoJZGVjbHNwZWNzX25vc2Nfbm90c19zYV9ub2VhLCBkZWNsc3BlY3Nfbm9zY19ub3RzX3NhX2VhLAoJZGVjbHNwZWNzX25vc2NfdHNfbm9zYV9ub2VhLCBkZWNsc3BlY3Nfbm9zY190c19ub3NhX2VhLAoJZGVjbHNwZWNzX25vc2NfdHNfc2Ffbm9lYSwgZGVjbHNwZWNzX25vc2NfdHNfc2FfZWEsCglkZWNsc3BlY3Nfc2Nfbm90c19ub3NhX25vZWEsIGRlY2xzcGVjc19zY19ub3RzX25vc2FfZWEsCglkZWNsc3BlY3Nfc2Nfbm90c19zYV9ub2VhLCBkZWNsc3BlY3Nfc2Nfbm90c19zYV9lYSwKCWRlY2xzcGVjc19zY190c19ub3NhX25vZWEsIGRlY2xzcGVjc19zY190c19ub3NhX2VhLAoJZGVjbHNwZWNzX3NjX3RzX3NhX25vZWEsIGRlY2xzcGVjc19zY190c19zYV9lYSwgZGVjbHNwZWNzX3RzLAoJZGVjbHNwZWNzX25vdHMsIGRlY2xzcGVjc190c19ub3NhLCBkZWNsc3BlY3Nfbm90c19ub3NhLAoJZGVjbHNwZWNzX25vc2NfdHMsIGRlY2xzcGVjc19ub3NjX25vdHMsIGRlY2xzcGVjc19ub3NjLCBkZWNsc3BlY3MsCgltYXliZV90eXBlX3F1YWxzX2F0dHJzKTogQ2hhbmdlIHRvIGRzcHR5cGUuCgkoc3RydWN0IGNfZGVjbHNwZWNfc3RhY2spOiBOZXcuCgkoY3VycmVudF9kZWNsc3BlY3MsIGRlY2xzcGVjX3N0YWNrKTogQ2hhbmdlIHR5cGUuCgkoUFVTSF9ERUNMU1BFQ19TVEFDSywgUE9QX0RFQ0xTUEVDX1NUQUNLKTogVXBkYXRlIHRvIG5ldwoJc3RydWN0dXJlcy4KCShleHRkZWZzKTogTGlrZXdpc2UuCgkoc2V0c3BlY3MpOiBMaWtld2lzZS4KCShmbmRlZik6IFVzZSBjdXJyZW50X2RlY2xzcGVjcyBmb3IgZW1wdHkgZGVjbHNwZWNzIGxpc3QuCgkoZGVjbHNwZWNzX25vc2Nfbm90c19ub3NhX25vZWEsIGRlY2xzcGVjc19ub3NjX25vdHNfbm9zYV9lYSwKCWRlY2xzcGVjc19ub3NjX25vdHNfc2Ffbm9lYSwgZGVjbHNwZWNzX25vc2Nfbm90c19zYV9lYSwKCWRlY2xzcGVjc19ub3NjX3RzX25vc2Ffbm9lYSwgZGVjbHNwZWNzX25vc2NfdHNfbm9zYV9lYSwKCWRlY2xzcGVjc19ub3NjX3RzX3NhX25vZWEsIGRlY2xzcGVjc19ub3NjX3RzX3NhX2VhLAoJZGVjbHNwZWNzX3NjX25vdHNfbm9zYV9ub2VhLCBkZWNsc3BlY3Nfc2Nfbm90c19ub3NhX2VhLAoJZGVjbHNwZWNzX3NjX25vdHNfc2Ffbm9lYSwgZGVjbHNwZWNzX3NjX25vdHNfc2FfZWEsCglkZWNsc3BlY3Nfc2NfdHNfbm9zYV9ub2VhLCBkZWNsc3BlY3Nfc2NfdHNfbm9zYV9lYSwKCWRlY2xzcGVjc19zY190c19zYV9ub2VhLCBkZWNsc3BlY3Nfc2NfdHNfc2FfZWEpOiBVcGRhdGUgdG8gbmV3CglzdHJ1Y3R1cmVzIGFuZCBoZWxwZXIgZnVuY3Rpb25zLiAgVXBkYXRlIGNvbW1lbnRzLgoJKHR5cGVzcGVjX25vbmF0dHIpOiBDb3JyZWN0IGNvbW1lbnQuCgkobWF5YmVfdHlwZV9xdWFsc19hdHRycywgdHlwZW5hbWUpOiBVcGRhdGUgdG8gbmV3IHN0cnVjdHVyZXMuCgkqIGMtZGVjbC5jIChncm9rZGVjbGFyYXRvciwgYnVpbGRfYXJyYXlfZGVjbGFyYXRvciwgZ3Jva2ZpZWxkLAoJc2hhZG93X3RhZywgc2hhZG93X3RhZ193YXJuZWQsIHN0YXJ0X2Z1bmN0aW9uLCBzdGFydF9kZWNsLAoJYnVpbGRfY19wYXJtLCBtYWtlX3BvaW50ZXJfZGVjbGFyYXRvciwKCXNldF9hcnJheV9kZWNsYXJhdG9yX2lubmVyLCBncm9rdHlwZW5hbWUpOiBVcGRhdGUgdG8gbmV3CglzdHJ1Y3R1cmVzLgoJKGJ1aWxkX251bGxfZGVjbHNwZWNzLCBkZWNsc3BlY3NfYWRkX3F1YWwsIGRlY2xzcGVjc19hZGRfdHlwZSwKCWRlY2xzcGVjc19hZGRfc2NzcGVjLCBkZWNsc3BlY3NfYWRkX2F0dHJzKTogTmV3LgoJKHNwbGl0X3NwZWNzX2F0dHJzKTogUmVtb3ZlLgoJKHNoYWRvd190YWdfd2FybmVkKTogTWFrZSB3YXJuaW5nIGZvciB1c2VsZXNzIHR5cGUgbmFtZXMgYQoJcGVkd2Fybi4gIEdpdmUgaGFyZCBlcnJvciBmb3IgbG9uZywgc2hvcnQsIHNpZ25lZCwgdW5zaWduZWQgb3IKCV9Db21wbGV4IHVzZWQgd2l0aCBzdHJ1Y3QsIHVuaW9uIG9yIGVudW0gaW4gZW1wdHkgZGVjbGFyYXRpb24uCglNYWtlIGZvdW5kX3RhZyBhIGJvb2wuCgkoZ3Jva2RlY2xhcmF0b3IpOiBSZW1vdmUgY2hlY2tzIG5vdyBkb25lIGF0IHBhcnNlIHRpbWUuCgoyMDA0LTA5LTA5ICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtdHJlZS5oIChlbnVtIGNfZGVjbGFyYXRvcl9raW5kLCBzdHJ1Y3QgY19hcmdfaW5mbywgc3RydWN0CgljX2RlY2xhcmF0b3IsIHN0cnVjdCBjX3R5cGVfbmFtZSwgc3RydWN0IGNfcGFybSk6IE5ldy4KCShidWlsZF9hcnJheV9kZWNsYXJhdG9yLCBzZXRfYXJyYXlfZGVjbGFyYXRvcl9pbm5lciwKCWdldF9wYXJtX2luZm8sIGdyb2tmaWVsZCwgZ3Jva3R5cGVuYW1lLCBncm9rcGFybSwgcHVzaF9wYXJtX2RlY2wsCglzdGFydF9mdW5jdGlvbiwgc3RhcnRfZGVjbCwgYnVpbGRfY19wYXJtLCBidWlsZF9hdHRyc19kZWNsYXJhdG9yLAoJYnVpbGRfZnVuY3Rpb25fZGVjbGFyYXRvciwgbWFrZV9wb2ludGVyX2RlY2xhcmF0b3IsIGNfY2FzdF9leHByLAoJc3RvcmVfcGFybV9kZWNsc19uZXdzdHlsZSwgY19leHByX3NpemVvZl90eXBlKTogVXBkYXRlIHByb3RvdHlwZXMuCgkoYnVpbGRfaWRfZGVjbGFyYXRvcik6IE5ldy4KCSogYy10eXBlY2suYyAoY19jYXN0X2V4cHIsIGNfZXhwcl9zaXplb2ZfdHlwZSk6IFVwZGF0ZSB0byBuZXcKCXN0cnVjdHVyZXMuCgkqIGMtZGVjbC5jIChBUkdfSU5GT19QQVJNUywgQVJHX0lORk9fVEFHUywgQVJHX0lORk9fVFlQRVMsCglBUkdfSU5GT19PVEhFUlMpOiBSZW1vdmUuCgkoYnVpbGRfaWRfZGVjbGFyYXRvcik6IE5ldy4KCShidWlsZF9hcnJheV9kZWNsYXJhdG9yLCBzZXRfYXJyYXlfZGVjbGFyYXRvcl9pbm5lciwgZ3Jva3R5cGVuYW1lLAoJc3RhcnRfZGVjbCwgZ3Jva3Bhcm0sIHB1c2hfcGFybV9kZWNsLCBncm9rcGFybXMsIGdldF9wYXJtX2luZm8sCglncm9rZmllbGQsIHN0YXJ0X2Z1bmN0aW9uLCBzdG9yZV9wYXJtX2RlY2xzX25ld3N0eWxlLAoJc3RvcmVfcGFybV9kZWNsc19vbGRzdHlsZSwgc3RvcmVfcGFybV9kZWNscywKCWJ1aWxkX2NfcGFybSwgYnVpbGRfYXR0cnNfZGVjbGFyYXRvciwgYnVpbGRfZnVuY3Rpb25fZGVjbGFyYXRvciwKCW1ha2VfcG9pbnRlcl9kZWNsYXJhdG9yLCBncm9rZGVjbGFyYXRvcik6IFVwZGF0ZSB0byBuZXcKCXN0cnVjdHVyZXMuCgkqIGMtcGFyc2UuaW4gKCV1bmlvbik6IEFkZCBhcmdpbmZvdHlwZSwgZHRydHlwZSwgdHlwZW5hbWV0eXBlIGFuZAoJcGFybXR5cGUuCgkoZGVjbGFyYXRvciwgbm90eXBlX2RlY2xhcmF0b3IsIGFmdGVyX3R5cGVfZGVjbGFyYXRvciwKCXBhcm1fZGVjbGFyYXRvciwgcGFybV9kZWNsYXJhdG9yX3N0YXJ0dHlwZW5hbWUsCglwYXJtX2RlY2xhcmF0b3Jfbm9zdGFydHR5cGVuYW1lLCBhcnJheV9kZWNsYXJhdG9yLCB0eXBlbmFtZSwKCWFic2RjbCwgYWJzZGNsMSwgYWJzZGNsMV9lYSwgYWJzZGNsMV9ub2VhLCBkaXJlY3RfYWJzZGNsMSwKCWFic2RjbF9tYXliZV9hdHRyaWJ1dGUsIHBhcm0sIGZpcnN0cGFybSwgcGFybXMsIHBhcm1saXN0LAoJcGFybWxpc3RfMSwgcGFybWxpc3RfMiwgcGFybWxpc3Rfb3JfaWRlbnRpZmllcnMsCglwYXJtbGlzdF9vcl9pZGVudGlmaWVyc18xKTogVXNlIHRoZXNlIHR5cGVzLgoJKHByaW1hcnksIGFmdGVyX3R5cGVfZGVjbGFyYXRvciwgcGFybV9kZWNsYXJhdG9yX3N0YXJ0dHlwZW5hbWUsCglub3R5cGVfZGVjbGFyYXRvciwgY29tcG9uZW50X2RlY2wsIGNvbXBvbmVudF9kZWNsYXJhdG9yLAoJY29tcG9uZW50X25vdHlwZV9kZWNsYXJhdG9yLCB0eXBlbmFtZSwgYWJzZGNsLAoJYWJzZGNsX21heWJlX2F0dHJpYnV0ZSwgYWJzZGNsMV9lYSwgZGlyZWN0X2Fic2RjbDEsIHBhcm1saXN0XzEsCglwYXJtbGlzdF8yLCBwYXJtbGlzdF9vcl9pZGVudGlmaWVyc18xKTogVXBkYXRlIHRvIG5ldyBzdHJ1Y3R1cmVzLgoKMjAwNC0wOS0wOSAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBjLXRyZWUuaCAoQ19ERUNMX1VTRUQsIHBhcnNlcl9vYnN0YWNrLCBpbl9hbGlnbm9mLCBpbl9zaXplb2YsCglpbl90eXBlb2YsIHJlY29yZF9tYXliZV91c2VkX2RlY2wsIHBvcF9tYXliZV91c2VkLAoJY19leHByX3NpemVvZl9leHByLCBjX2V4cHJfc2l6ZW9mX3R5cGUpOiBOZXcuCgkqIGMtZGVjbC5jIChwYXJzZXJfb2JzdGFjayk6IE5ldy4KCShjX2luaXRfZGVjbF9wcm9jZXNzaW5nKTogSW5pdGlhbGl6ZSBwYXJzZXJfb2JzdGFjay4KCShjX3dyaXRlX2dsb2JhbF9kZWNsYXJhdGlvbnNfMSk6IENoZWNrIGZvciB1c2VkIGJ1dCB1bmRlZmluZWQKCXN0YXRpYyBmdW5jdGlvbnMuCgkqIGMtcGFyc2UuaW4gKCV1bmlvbik6IEFkZCBvdHlwZS4KCShzYXZlX29ic3RhY2tfcG9zaXRpb24pOiBOZXcuCgkoZXh0ZGVmcyk6IFVzZSBpdC4KCSh1bmFyeV9leHByKTogVXBkYXRlIGluX3NpemVvZiBhbmQgaW5fYWxpZ25vZi4gIFVzZQoJY19leHByX3NpemVvZl9leHByIGFuZCBjX2V4cHJfc2l6ZW9mX3R5cGUuCgkoc2l6ZW9mKTogVXBkYXRlIGluX3NpemVvZi4KCShhbGlnbm9mKTogVXBkYXRlIGluX2FsaWdub2YuCgkodHlwZW9mKTogVXBkYXRlIGluX3R5cGVvZi4KCSh0eXBlc3BlY19ub25yZXNlcnZlZF9ub25hdHRyKTogQ2FsbCBwb3BfbWF5YmVfdXNlZC4KCSogYy10eXBlY2suYyAoaW5fYWxpZ25vZiwgaW5fc2l6ZW9mLCBpbl90eXBlb2YsIHN0cnVjdAoJbWF5YmVfdXNlZF9kZWNsLCBtYXliZV91c2VkX2RlY2xzLCByZWNvcmRfbWF5YmVfdXNlZF9kZWNsLAoJcG9wX21heWJlX3VzZWQsIGNfZXhwcl9zaXplb2ZfZXhwciwgY19leHByX3NpemVvZl90eXBlKTogTmV3LgoJKGJ1aWxkX2V4dGVybmFsX3JlZik6IFNldCBDX0RFQ0xfVVNFRCBvciBjYWxsCglyZWNvcmRfbWF5YmVfdXNlZF9kZWNsIGlmIGFwcHJvcHJpYXRlLgoJKiB0b3BsZXYuYyAoY2hlY2tfZ2xvYmFsX2RlY2xhcmF0aW9ucyk6IENoZWNrIFRSRUVfTk9fV0FSTklORy4KCjIwMDQtMDktMDggIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogYnVpbHRpbnMuYzogRml4IHByb3RvdHlwZSBmb3IgZm9sZF9idWlsdGluX2F0YW4uCgoyMDA0LTA5LTA4ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGJ1aWx0aW5zLmMgKGZvbGRfYnVpbHRpbl9zdHJsZW4sIGZvbGRfYnVpbHRpbl9zcXJ0LCBmb2xkX2J1aWx0aW5fY2JydCwKCWZvbGRfYnVpbHRpbl9wb3csIGZvbGRfYnVpbHRpbl9zaW4sIGZvbGRfYnVpbHRpbl9jb3MsIGZvbGRfYnVpbHRpbl90YW4sCglmb2xkX2J1aWx0aW5fYXRhbik6IE5ldyBmdW5jdGlvbnMuIE1pZ3JhdGUgZnVuY3Rpb24gYm9kaWVzLi4uCgkoZm9sZF9idWlsdGluXzEpOiAuLi4gZnJvbSBoZXJlLgoKMjAwNC0wOS0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9zdGFja19pbmZvKTogQ29ycmVjdCBhbGlnbm1lbnQgb2YKCXNhdmVfc2l6ZS4KCjIwMDQtMDktMDggIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIGNvbmZpZy9yczYwMDAvcG93ZXI0Lm1kIChwb3dlcjQtbG11bCk6IGR1NCBmZWVkcyBpdTEuCgkqIGNvbmZpZy9yczYwMDAvcG93ZXI1Lm1kIChwb3dlcjUtbG11bCk6IFNhbWUuCgoyMDA0LTA5LTA4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHJ0bC1vcHQvMTcxODYKCSogZnVuY3Rpb24uYyAoZXhwYW5kX2Z1bmN0aW9uX2VuZCk6IEhhdmUgZmFsbC1vZmYtdGhlLWVuZAoJcmV0dXJuIHBhdGgganVtcCBhcm91bmQgcmV0dXJuIHJlZ2lzdGVyIHNldHVwLgoKMjAwNC0wOS0wOCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChzcGFyY19pbmRlbnRfb3Bjb2RlKTogTmV3IHZhcmlhYmxlLgoJKG91dHB1dF9yZXR1cm4pOiBEbyBub3QgdGVzdCBmb3IgdGhlIHByZXNlbmNlIG9mIHRoZSAndW5pbXAnIGluc24uCglVc2UgJ2N1cnJlbnRfZnVuY3Rpb25fdXNlc19vbmx5X2xlYWZfcmVncycgYW5kICdmaW5hbF9zZXF1ZW5jZScKCWFzIHByZWRpY2F0ZXMgaW5zdGVhZCBvZiBjdXN0b20gb25lcy4gIFJldHVybiByYXcgc3RyaW5ncyB3aGVuCglwb3NzaWJsZS4KCShvdXRwdXRfc2liY2FsbCk6IExpa2V3aXNlLiAgQ29uY2F0ZW5hdGUgc3RyaW5ncy4KCShvdXRwdXRfdWJyYW5jaCk6IFJlbW92ZSBrbHVkZ2UgZm9yIFR1cmJvU1BBUkMuCgkob3V0cHV0X2NicmFuY2gpOiBSZW1vdmUgJ25vb3AnIHBhcmFtZXRlci4gIERvIG5vdCBvdXRwdXQgJ25vcCcuCgkob3V0cHV0X3Y5YnJhbmNoKTogTGlrZXdpc2UuCgkocHJpbnRfb3BlcmFuZCk6IFVzZSAnZmluYWxfc2VxdWVuY2UnIGluc3RlYWQgb2YgJ2Ricl9zZXF1ZW5jZV9sZW5ndGgnLgoJPCM+OiBTZXQgc3BhcmNfaW5kZW50X29wY29kZSBpZiB0aGUgZGVsYXkgc2xvdCBpcyBmaWxsZWQuCgk8KD46IExpa2V3aXNlLgoJPCk+OiBOZXcgb3BlcmFuZCB0byBlbWl0IHRoZSBkaXNwbGFjZW1lbnQgZnJvbSB0aGUgc2F2ZWQgUEMgb24gcmV0dXJuLgoJPEA+OiBSZW1vdmUuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5oIChzcGFyY19pbmRlbnRfb3Bjb2RlKTogRGVjbGFyZSBpdC4KCShBU01fT1VUUFVUX09QQ09ERSk6IE5ldyBtYWNyby4KCShQUklOVF9PUEVSQU5EX1BVTkNUX1ZBTElEX1ApOiBSZW1vdmUgJ14nIGFuZCBhZGQgJyknLgoJKiBjb25maWcvc3BhcmMvc3BhcmMubWQgKG5vcm1hbF9icmFuY2gsIGludmVydGVkX2JyYW5jaCwKCW5vcm1hbF9mcF9icmFuY2gsIGludmVydGVkX2ZwX2JyYW5jaCwgbm9ybWFsX2ZwZV9icmFuY2gsCglpbnZlcnRlZF9mcGVfYnJhbmNoKTogQWRqdXN0IGNhbGwgdG8gb3V0cHV0X2NicmFuY2guCgkobm9ybWFsX2ludF9icmFuY2hfc3A2NCwgaW52ZXJ0ZWRfaW50X2JyYW5jaF9zcDY0KTogQWRqdXN0CgljYWxsIHRvIG91dHB1dF92OWJyYW5jaC4KCSogY29uZmlnL3NwYXJjL3NwYXJjLXByb3Rvcy5oIChvdXRwdXRfY2JyYW5jaCk6IEFkanVzdC4KCShvdXRwdXRfdjlicmFuY2gpOiBMaWtld2lzZS4KCjIwMDQtMDktMDggIERldmFuZyBQYXRlbCAgPGRwYXRlbEBhcHBsZS5jb20+CgoJKiBjb25maWcvZGFyd2luLmggIChUQVJHRVRfT1BUSU9OX1RSQU5TTEFURV9UQUJMRSk6IEFkZCAtc2VnYWRkciwKCS1zZWdzX3JlYWRfb25seV9hZGRyIGFuZCAtc2Vnc19yZWFkX3dyaXRlX2FkZHIuCgkoV09SRF9TV0lUQ0hfVEFLRVNfQVJHKTogU2FtZS4KCShMSU5LX1NQRUMpOiBTYW1lLgoJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IC1zZWdhZGRyLCAtc2Vnc19yZWFkX29ubHlfYWRkciBhbmQKCS1zZWdzX3JlYWRfd3JpdGVfYWRkci4KCjIwMDQtMDktMDggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBmdW5jdGlvbi5jIChyZWZlcmVuY2VfY2FsbGVlX2NvcGllZCk6IE5ldy4KCShhc3NpZ25fcGFybV9zZXR1cF9yZWcpOiBVc2UgaXQuCgkqIGNhbGxzLmMgKGluaXRpYWxpemVfYXJndW1lbnRfaW5mb3JtYXRpb24pOiBMaWtld2lzZS4KCShlbWl0X2xpYnJhcnlfY2FsbF92YWx1ZV8xKTogTGlrZXdpc2UuCgkqIGZ1bmN0aW9uLmggKHJlZmVyZW5jZV9jYWxsZWVfY29waWVkKTogRGVjbGFyZS4KCgkqIHRhcmdldC5oIChzdHJ1Y3QgZ2NjX3RhcmdldCk6IEFkZCBjYWxsZWVfY29waWVzLgoJKiB0YXJnZXQtZGVmLmggKFRBUkdFVF9DQUxMRUVfQ09QSUVTKTogTmV3LgoJKFRBUkdFVF9QQVNTX0JZX1JFRkVSRU5DRSk6IFVwZGF0ZSBkZWZhdWx0LgoJKiBleHByLmggKEZVTkNUSU9OX0FSR19DQUxMRUVfQ09QSUVTKTogUmVtb3ZlLgoJKiB0YXJnaG9va3MuYyAoaG9va19jYWxsZWVfY29waWVzX25hbWVkKTogTmV3LgoJKGhvb2tfYm9vbF9DVU1VTEFUSVZFX0FSR1NfbW9kZV90cmVlX2Jvb2xfZmFsc2UpOiBSZW5hbWUgZnJvbQoJaG9va19wYXNzX2J5X3JlZmVyZW5jZV9mYWxzZS4KCShob29rX2Jvb2xfQ1VNVUxBVElWRV9BUkdTX21vZGVfdHJlZV9ib29sX3RydWUpOiBOZXcuCgkqIHRhcmdob29rcy5oOiBVcGRhdGUgZGVjbHMuCgkqIGNvbmZpZy9hcmMvYXJjLmMgKFRBUkdFVF9DQUxMRUVfQ09QSUVTKTogTmV3LgoJKiBjb25maWcvYXJjL2FyYy5oIChGVU5DVElPTl9BUkdfQ0FMTEVFX0NPUElFUyk6IFJlbW92ZS4KCSogY29uZmlnL2Zydi9mcnYtcHJvdG9zLmggKGZydl9mdW5jdGlvbl9hcmdfY2FsbGVlX2NvcGllcyk6IFJlbW92ZS4KCSogY29uZmlnL2Zydi9mcnYuYyAoZnJ2X2Z1bmN0aW9uX2FyZ19jYWxsZWVfY29waWVzKTogUmVtb3ZlLgoJKiBjb25maWcvZnJ2L2Zydi5oIChGVU5DVElPTl9BUkdfQ0FMTEVFX0NPUElFUyk6IFJlbW92ZS4KCSogY29uZmlnL2lxMjAwMC9pcTIwMDAuYyAoVEFSR0VUX0NBTExFRV9DT1BJRVMpOiBOZXcuCgkqIGNvbmZpZy9pcTIwMDAvaXEyMDAwLmggKEZVTkNUSU9OX0FSR19DQUxMRUVfQ09QSUVTKTogUmVtb3ZlLgoJKiBjb25maWcvbTY4aGMxMS9tNjhoYzExLmMgKFRBUkdFVF9DQUxMRUVfQ09QSUVTKTogTmV3LgoJKiBjb25maWcvbTY4aGMxMS9tNjhoYzExLmggKEZVTkNUSU9OX0FSR19DQUxMRUVfQ09QSUVTKTogUmVtb3ZlLgoJKiBjb25maWcvbWlwcy9taXBzLmMgKFRBUkdFVF9DQUxMRUVfQ09QSUVTKTogTmV3LgoJKG1pcHNfY2FsbGVlX2NvcGllcyk6IE5ldy4KCSogY29uZmlnL21pcHMvbWlwcy5oIChGVU5DVElPTl9BUkdfQ0FMTEVFX0NPUElFUyk6IFJlbW92ZS4KCSogY29uZmlnL21taXgvbW1peC5jIChUQVJHRVRfQ0FMTEVFX0NPUElFUyk6IE5ldy4KCSogY29uZmlnL21taXgvbW1peC5oIChGVU5DVElPTl9BUkdfQ0FMTEVFX0NPUElFUyk6IFJlbW92ZS4KCSogY29uZmlnL21uMTAzMDAvbW4xMDMwMC5jIChUQVJHRVRfQ0FMTEVFX0NPUElFUyk6IE5ldy4KCSogY29uZmlnL21uMTAzMDAvbW4xMDMwMC5oIChGVU5DVElPTl9BUkdfQ0FMTEVFX0NPUElFUyk6IFJlbW92ZS4KCSogY29uZmlnL3BhL3BhLmMgKFRBUkdFVF9DQUxMRUVfQ09QSUVTKTogTmV3LgoJKiBjb25maWcvcGEvcGEuaCAoRlVOQ1RJT05fQVJHX0NBTExFRV9DT1BJRVMpOiBSZW1vdmUuCgkqIGNvbmZpZy9zaC9zaC5jIChzaF9jYWxsZWVfY29waWVzKTogTmV3LgoJKFRBUkdFVF9DQUxMRUVfQ09QSUVTKTogTmV3LgoJKiBjb25maWcvc2gvc2guaCAoRlVOQ1RJT05fQVJHX0NBTExFRV9DT1BJRVMpOiBSZW1vdmUuCgkqIGNvbmZpZy92ODUwL3Y4NTAuYyAoVEFSR0VUX0NBTExFRV9DT1BJRVMpOiBOZXcuCgkqIGNvbmZpZy92ODUwL3Y4NTAuaCAoRlVOQ1RJT05fQVJHX0NBTExFRV9DT1BJRVMpOiBSZW1vdmUuCgkqIGRvYy90bS50ZXhpIChUQVJHRVRfQ0FMTEVFX0NPUElFUyk6IFJlcGxhY2UgZG9jdW1lbnRhdGlvbgoJZm9yIEZVTkNUSU9OX0FSR19DQUxMRUVfQ09QSUVTLgoJKiBkb2MvcnRsLnRleGkgKENBTExfSU5TTl9GVU5DVElPTl9VU0FHRSk6IFVwZGF0ZS4KCjIwMDQtMDktMDggIERldmFuZyBQYXRlbCAgPGRwYXRlbEBhcHBsZS5jb20+CgoJKiB0cmVlLWlmLWNvbnYuYyAoZmluZF9waGlfcmVwbGFjZW1lbnRfY29uZGl0aW9uKTogUmV0dXJuIHRydWUKCWVkZ2UgYmxvY2suCgkocmVwbGFjZV9waGlfd2l0aF9jb25kX21vZGlmeV9leHByKTogU2VsZWN0IGNvbmRpdGlvbmFsIGV4cHIgYXJncwoJYmFzZWQgb24gdHJ1ZSBlZGdlIGJhc2ljIGJsb2NrLgoKMjAwNC0wOS0wOCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogdHJlZS1zc2Etb3BlcmFuZHMuYyAoYWRkX3N0bXRfb3BlcmFuZCk6IFVzZSBWX01VU1RfREVGIGV2ZW4gZm9yCgl2YXJpYWJsZXMgYmVpbmcgYWxpYXMgc2V0LgoKMjAwNC0wOS0wOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGZpbmFsLmMgKHNob3J0ZW5fYnJhbmNoZXMsIGZpbmFsLCBnZXRfaW5zbl90ZW1wbGF0ZSwKCW91dHB1dF9hbHRlcm5hdGVfZW50cnlfcG9pbnQsIGZpbmFsX3NjYW5faW5zbiwgYWx0ZXJfc3VicmVnLAoJYWx0ZXJfY29uZCwgb3V0cHV0X29wZXJhbmQsIGFzbV9mcHJpbnRmLCBmaW5hbF9mb3J3YXJkX2JyYW5jaF9wLAoJbGVhZl9yZW51bWJlcl9yZWdzX2luc24pOiBVc2UgZ2NjX2Fzc2VydCBhbmQgZ2NjX3VucmVhY2hhYmxlLgoJKiBmaXgtaGVhZGVyLmMgKGxvb2t1cF9zdGRfcHJvdG8pOiBMaWtld2lzZS4KCSogZmxvdy5jIChmaXJzdF9pbnNuX2FmdGVyX2Jhc2ljX2Jsb2NrX25vdGUsIHZlcmlmeV93aWRlX3JlZywKCXZlcmlmeV9sb2NhbF9saXZlX2F0X3N0YXJ0LCB1cGRhdGVfbGlmZV9pbmZvLCBtYXJrX3JlZywKCWNhbGN1bGF0ZV9nbG9iYWxfcmVnc19saXZlLCBhbGxvY2F0ZV9yZWdfbGlmZV9kYXRhLAoJaW5pdF9wcm9wYWdhdGVfYmxvY2tfaW5mbywgbWFya19zZXRfcmVncywgZmx1c2hfcmVnX2NvbmRfcmVnXzEsCglpb3JfcmVnX2NvbmQsIG5vdF9yZWdfY29uZCwgYW5kX3JlZ19jb25kLCBlbGltX3JlZ19jb25kLAoJYXR0ZW1wdF9hdXRvX2luYywgbWFya191c2VkX3JlZywgbWFya191c2VkX3JlZ3MpOiBMaWtld2lzZS4KCSogZm9sZC1jb25zdC5jIChmb3JjZV9maXRfdHlwZSwgZGl2X2FuZF9yb3VuZF9kb3VibGUsCgltYXlfbmVnYXRlX3dpdGhvdXRfb3ZlcmZsb3dfcCwgaW50X2NvbnN0X2Jpbm9wLCBjb25zdF9iaW5vcCwKCXNpemVfYmlub3AsIHNpemVfZGlmZm9wLCBmb2xkX2NvbnZlcnRfY29uc3QsIGZvbGRfY29udmVydCwKCWludmVydF90cmVlX2NvbXBhcmlzb24sIHN3YXBfdHJlZV9jb21wYXJpc29uLAoJY29tcGFyaXNvbl90b19jb21wY29kZSwgY29tcGNvZGVfdG9fY29tcGFyaXNvbiwgaW52ZXJ0X3RydXRodmFsdWUsCglyYW5nZV9iaW5vcCwgbWFrZV9yYW5nZSwgZm9sZF9jb25kX2V4cHJfd2l0aF9jb21wYXJpc29uLAoJZm9sZF9kaXZfY29tcGFyZSwgZm9sZCwgZm9sZF9jaGVja3N1bV90cmVlLCBmb2xkX25lZ2F0ZV9jb25zdCwKCWZvbGRfYWJzX2NvbnN0LCBmb2xkX25vdF9jb25zdCwgZm9sZF9yZWxhdGlvbmFsX2NvbnN0LCByb3VuZF91cCwKCXJvdW5kX2Rvd24pOiBMaWtld2lzZS4KCSogZnVuY3Rpb24uYyAoZmluZF9mdW5jdGlvbl9kYXRhLCBhc3NpZ25fc3RhY2tfdGVtcF9mb3JfdHlwZSwKCWluc3RhbnRpYXRlX3ZpcnR1YWxfcmVnc19sb3NzYWdlLCBhZ2dyZWdhdGVfdmFsdWVfcCwKCWFzc2lnbl9wYXJtX2ZpbmRfZW50cnlfcnRsLCBhc3NpZ25fcGFybV9zZXR1cF9ibG9jaywKCWV4cGFuZF9mdW5jdGlvbl9zdGFydCwgZXhwYW5kX2Z1bmN0aW9uX2VuZCwga2VlcF9zdGFja19kZXByZXNzZWQsCgloYW5kbGVfZXBpbG9ndWVfc2V0LCB0aHJlYWRfcHJvbG9ndWVfYW5kX2VwaWxvZ3VlX2luc25zKTogTGlrZXdpc2UuCgoyMDA0LTA5LTA4ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIE1ha2VmaWxlLmluICh0cmVlLWxvb3AtbGluZWFyLm8pOiBBZGRlZC4KCShPQkpTLWNvbW1vbik6IEFkZCB0cmVlLWxvb3AtbGluZWFyLm8KCSogY29tbW9uLm9wdDogTmV3IGZsYWcsIGZ0cmVlLWxvb3AtbGluZWFyLgoJKiB0aW1ldmFyLmRlZjogTmV3IHRpbWV2YXIsIFRWX1RSRUVfTE9PUF9MSU5FQVIuCgkqIHRyZWUtZmxvdy5oOiBBZGQgcHJvdG90eXBlIGZvciBsaW5lYXJfdHJhbnNmb3JtX2xvb3BzLgoJKiB0cmVlLW9wdGltaXplLmM6IEFkZCBsaW5lYXIgdHJhbnNmb3JtIGFmdGVyIHZlY3Rvcml6YXRpb24uCgkqIHRyZWUtcGFzcy5oOiBBZGQgc3RydWN0IHBhc3NfbGluZWFyX3RyYW5zZm9ybS4KCSogdHJlZS1zc2EtbG9vcC5jOiBBZGQgcGFzc19saW5lYXJfdHJhbnNmb3JtLgoJKiB0cmVlLWxvb3AtbGluZWFyLmM6IE5ldyBmaWxlLgoJKiBsYW1iZGEtY29kZS5jOiBnY2NfYXNzZXJ0aWZ5LgoJKGdjY19sb29wX3RvX2xhbWJkYV9sb29wKTogSGFuZGxlIGFsbCBleGl0IHRlc3RzLgoJSGFuZGxlIGNhc2Ugd2hlcmUgd2UgaGF2ZSAoaW52YXJpYW50ID49IGluZHVjdGlvbiB2YXIpLgoJKGZpbmRfaW5kdWN0aW9uX3Zhcl9mcm9tX2V4aXRfY29uZCk6IERpdHRvLgoKMjAwNC0wOS0wOCAgSmllIFpoYW5nICA8emhhbmdqaWVAbWFnaW1hLmNvbS5jbj4KCgkqIHRyZWUtc3NhLWFsaWFzLmMgKGNvbXB1dGVfZmxvd19pbnNlbnNpdGl2ZV9hbGlhc2luZyk6IElmIHR5cGUKCW1lbW9yeSB0YWcgaXMgY2FsbCBjbG9iYmVyZWQsIHNvIGFyZSBpdHMgYWxpYXNlcy4KCShncm91cF9hbGlhc2VzKTogV2hlbiB0d28gbWVtb3J5IHRhZ3MgYmVpbmcgZ3JvdXBlZCwgaWYgb25lIGlzCgljYWxsIGNsb2JiZXJlZCwgc28gYXJlIHRoZSBvdGhlciBhbmQgaXRzIGFsaWFzZXMuCgkoYWRkX21heV9hbGlhcyk6IFJlbW92ZSBjYWxsLWNsb2JiZXJpbmcgc3R1ZmYuCgkocmVwbGFjZV9tYXlfYWxpYXMpOiBMaWtld2lzZS4KCShtZXJnZV9wb2ludGVkX3RvX2luZm8pOiBNZXJnZSBwdF9nbG9iYWxfbWVtCgoyMDA0LTA5LTA4ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBjZ3JhcGguYyAoY2dyYXBoX3JlbW92ZV9ub2RlKTogRnJlZSBERUNMX0lOSVRJQUwgZmllbGQgb2Ygbm9kZS4KCSogY2dyYXBodW5pdC5jICh2ZXJpZnlfY2dyYXBoKTogRG9uJ3QgdmVyaWZ5IG9uIHN5bnRheCBlcnJvcnMuCgkoY2dyYXBoX2V4cGFuZF9mdW5jdGlvbik6IFJlbW92ZSBzdGFsZSBjZ3JhcGggZWRnZXMgb2YgY3VycmVudGx5Cgljb21waWxlZCBmdW5jdGlvbjsgZml4IG5vbi11bml0LWF0LWEtdGltZSBjb2RlIGNvcHlpbmcgZnVuY3Rpb24KCW5vZGUgZm9yIGxhdGVyIHJldXNlLgoKMjAwNC0wOS0wOCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHZlYy5jICh2ZWNfcF9yZXNlcnZlLCB2ZWNfb19yZXNlcnZlKTogUmVuYW1lIHRvIC4uLgoJKHZlY19nY19wX3Jlc2VydmUsIHZlY19nY19vX3Jlc2VydmUpOiAuLi4gaGVyZS4gQ2xvbmUgdG8KCSh2ZWNfaGVhcF9wX3Jlc2VydmUsIHZlY19oZWFwX29fcmVzZXJ2ZSk6IC4uLiBoZXJlLCBhZGp1c3QuCgkodmVjX2djX2ZyZWUsIHZlY19oZWFwX2ZyZWUpOiBOZXcuCgkqIHZlYy5oIChERUZfVkVDX0dDX1AsIERFRl9WRUNfTUFMTE9DX1ApOiBOZXcuCgkoREVGX1ZFQ19QKTogQWRkIGFsbG9jYXRvciBhcmd1bWVudC4gQWRqdXN0LgoJKERFRl9WRUNfR0NfTywgREVGX1ZFQ19NQUxMT0NfTyk6IE5ldy4KCShERUZfVkVDX08pOiBBZGQgYWxsb2NhdG9yIGFyZ3VtZW50LiBBZGp1c3QuCgkoVkVDKGZyZWUpKTogTmV3LgoKCSogdHJlZS5oICh0cmVlKTogRGVmaW5lIGEgR0MnZCB2ZWN0b3IuCgkqIGxhbWJhLWNvZGUuYyAobGFtYmRhX2xvb3ApOiBMaWtld2lzZS4KCSogdmFsdWUtcHJvZi5oIChoaXN0b2dyYW1fdmFsdWUpOiBMaWtld2lzZS4KCjIwMDQtMDktMDggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlbWl0LXJ0bC5jIChpbW1lZF9kb3VibGVfY29uc3QpOiBVc2UgZ2NjX2Fzc2VydCBhbmQgZ2NjX3VucmVhY2hhYmxlLgoJKGdlbl9ydHhfU1VCUkVHLCBnZW5fcmVnX3J0eCwgbWFya191c2VyX3JlZywgc3VicmVnX2hhcmRfcmVnbm8sCglnZW5fbG93cGFydF9jb21tb24sIGdlbl9oaWdocGFydCwgZ2VuX2hpZ2hwYXJ0X21vZGUsCglzdWJyZWdfaGlnaHBhcnRfb2Zmc2V0LCBvcGVyYW5kX3N1YndvcmQsIG9wZXJhbmRfc3Vid29yZF9mb3JjZSwKCW1lbV9leHByX2VxdWFsX3AsIHNldF9tZW1fYXR0cmlidXRlc19taW51c19iaXRwb3MsCglzZXRfbWVtX2FsaWFzX3NldCwgY2hhbmdlX2FkZHJlc3NfMSwgdmVyaWZ5X3J0eF9zaGFyaW5nLAoJY29weV9tb3N0X3J0eCwgc2V0X2ZpcnN0X2luc24sIHNldF9sYXN0X2luc24sIHByZXZfY2MwX3NldHRlciwKCXRyeV9zcGxpdCwgYWRkX2luc25fYWZ0ZXIsIGFkZF9pbnNuX2JlZm9yZSwgcmVtb3ZlX2luc24sCglyZW1vdmVfdW5uZWNlc3Nhcnlfbm90ZXMsIGVtaXRfaW5zbl9iZWZvcmUsIGVtaXRfanVtcF9pbnNuX2JlZm9yZSwKCWVtaXRfY2FsbF9pbnNuX2JlZm9yZSwgZW1pdF9pbnNuX2FmdGVyLCBlbWl0X2p1bXBfaW5zbl9hZnRlciwKCWVtaXRfY2FsbF9pbnNuX2FmdGVyLCBlbWl0X2luc24sIGVtaXRfanVtcF9pbnNuLCBlbWl0X2NhbGxfaW5zbiwKCXNldF91bmlxdWVfcmVnX25vdGUsIGVtaXQsIHB1c2hfdG9fZnVsbF9zZXF1ZW5jZSwgY29weV9pbnNuXzEsCglnZW5fY29uc3RfdmVjdG9yXzAsIGVtaXRfY29weV9vZl9pbnNuX2FmdGVyKTogTGlrZXdpc2UuCgkqIGV0LWZvcmVzdC5jIChzZXRfcHJldiwgc2V0X25leHQsIGV0X2NoZWNrX29jY19zYW5pdHksCglyZWNvcmRfcGF0aF9iZWZvcmVfMSwgY2hlY2tfcGF0aF9hZnRlcl8xLCBjaGVja19wYXRoX2FmdGVyKTogTGlrZXdpc2UuCgkqIGV4Y2VwdC5jIChnZW5fZWhfcmVnaW9uLCByZXNvbHZlX29uZV9maXh1cF9yZWdpb24sCglyZW1vdmVfdW5yZWFjaGFibGVfcmVnaW9ucywgY29udmVydF9mcm9tX2VoX3JlZ2lvbl9yYW5nZXNfMSwKCWFkZF9laGxfZW50cnksIGR1cGxpY2F0ZV9laF9yZWdpb25fMSwgYnVpbGRfcG9zdF9sYW5kaW5nX3BhZHMsCgljb25uZWN0X3Bvc3RfbGFuZGluZ19wYWRzLCBzamxqX2VtaXRfZnVuY3Rpb25fZXhpdCwKCXJlbW92ZV9leGNlcHRpb25faGFuZGxlcl9sYWJlbCwgcmVtb3ZlX2VoX2hhbmRsZXIsCglyZWFjaGFibGVfbmV4dF9sZXZlbCwgY29sbGVjdF9vbmVfYWN0aW9uX2NoYWluLAoJb3V0cHV0X2Z1bmN0aW9uX2V4Y2VwdGlvbl90YWJsZSk6IExpa2V3aXNlLgoJKiBleHBsb3cuYyAodHJ1bmNfaW50X2Zvcl9tb2RlLCBjb3B5X3RvX21vZGVfcmVnLAoJb3B0aW1pemVfc2F2ZV9hcmVhX2FsbG9jYSwgYWxsb2NhdGVfZHluYW1pY19zdGFja19zcGFjZSwKCXByb2JlX3N0YWNrX3JhbmdlLCBoYXJkX2Z1bmN0aW9uX3ZhbHVlKTogTGlrZXdpc2UuCgkqIGV4cG1lZC5jIChtb2RlX2Zvcl9leHRyYWN0aW9uLCBzdG9yZV9iaXRfZmllbGQsCglzdG9yZV9maXhlZF9iaXRfZmllbGQsIGV4dHJhY3RfYml0X2ZpZWxkLCBleHBhbmRfc2hpZnQsCglleHBhbmRfbXVsdF9jb25zdCwgZXhwYW5kX211bHQsIGNob29zZV9tdWx0aXBsaWVyLAoJZXhwYW5kX211bHRfaGlnaHBhcnQsIGV4cGFuZF9kaXZtb2QsIGVtaXRfc3RvcmVfZmxhZywKCWRvX2NtcF9hbmRfanVtcCk6IExpa2V3aXNlLgoJKiBleHByLmMgKGNvbnZlcnRfbW92ZSwgY29udmVydF9tb2RlcywgbW92ZV9ieV9waWVjZXMsCgltb3ZlX2J5X3BpZWNlc19uaW5zbnMsIG1vdmVfYnlfcGllY2VzXzEsIGVtaXRfYmxvY2tfbW92ZSwKCW1vdmVfYmxvY2tfZnJvbV9yZWcsIGdlbl9ncm91cF9ydHgsIGVtaXRfZ3JvdXBfbG9hZCwKCWVtaXRfZ3JvdXBfbW92ZSwgZW1pdF9ncm91cF9zdG9yZSwgdXNlX3JlZywgdXNlX3JlZ3MsCgljYW5fc3RvcmVfYnlfcGllY2VzLCBzdG9yZV9ieV9waWVjZXMsIHN0b3JlX2J5X3BpZWNlc18xLAoJZW1pdF9tb3ZlX2luc24sIGVtaXRfbW92ZV9pbnNuXzEsIGVtaXRfcHVzaF9pbnNuLAoJZXhwYW5kX2Fzc2lnbm1lbnQsIHN0b3JlX2V4cHIsIGNvdW50X3R5cGVfZWxlbWVudHMsCglzdG9yZV9jb25zdHJ1Y3Rvciwgc3RvcmVfZmllbGQsIHNhZmVfZnJvbV9wLCBleHBhbmRfdmFyLAoJZXhwYW5kX2V4cHJfYWRkcl9leHByLCBleHBhbmRfZXhwcl9yZWFsXzEsIGRvX3N0b3JlX2ZsYWcpOiBMaWtld2lzZS4KCjIwMDQtMDktMDggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkYnhvdXQuYyAoZGJ4b3V0X3R5cGUsIGRieG91dF90eXBlX25hbWUsIGRieG91dF9zeW1ib2wpOiBVc2UKCWdjY19hc3NlcnQgYW5kIGdjY191bnJlYWNoYWJsZS4KCSogZGRnLmMgKGNyZWF0ZV9kZGdfZGVwZW5kZW5jZSwgYWRkX2RlcHNfZm9yX2RlZiwKCWFkZF9kZXBzX2Zvcl91c2UsIGNyZWF0ZV9kZGcsIGFkZF9lZGdlX3RvX2RkZyk6IExpa2V3aXNlLgoJKiBkZi5jIChkZl9yZWZfdW5saW5rLCBkZl9yZWZfcmVjb3JkLCBkZl91c2VzX3JlY29yZCwKCWRmX3JlZ19kZWZfY2hhaW5fY3JlYXRlLCBkZl9yZWdfdXNlX2NoYWluX2NyZWF0ZSwgZGZfYW5hbHl6ZSwKCWRmX2luc25fZGVsZXRlLCBkZl9yZWZzX3JlZ19yZXBsYWNlLCBkZl9yZWZfcmVnX3JlcGxhY2UsCglkZl9pbnNuc19tb2RpZnksIGRmX3BhdHRlcm5fZW1pdF9iZWZvcmUsIGRmX2JiX3JlZ19saXZlX3N0YXJ0X3AsCglkZl9iYl9yZWdfbGl2ZV9lbmRfcCwgZGZfYmJfcmVnc19saXZlc19jb21wYXJlLAoJZGZfYmJfc2luZ2xlX2RlZl91c2VfaW5zbl9maW5kLCBkYXRhZmxvd19zZXRfYV9vcF9iLAoJZGF0YWZsb3dfc2V0X2NvcHksIGh5YnJpZF9zZWFyY2gsIGRpYWdub3N0aWMuYywKCWRpYWdub3N0aWNfYnVpbGRfcHJlZml4LCBkaWFnbm9zdGljX2NvdW50X2RpYWdub3N0aWMpOiBMaWtld2lzZS4KCSogZG9qdW1wLmMgKGRvX2p1bXApOiBMaWtld2lzZS4KCSogZG9taW5hbmNlLmMgKGNhbGNfZGZzX3RyZWVfbm9ucmVjLCBjYWxjX2Rmc190cmVlLAoJY29tcHV0ZV9kb21fZmFzdF9xdWVyeSwgY2FsY3VsYXRlX2RvbWluYW5jZV9pbmZvLAoJZnJlZV9kb21pbmFuY2VfaW5mbywgZ2V0X2ltbWVkaWF0ZV9kb21pbmF0b3IsCglzZXRfaW1tZWRpYXRlX2RvbWluYXRvciwgZ2V0X2RvbWluYXRlZF9ieSwKCXJlZGlyZWN0X2ltbWVkaWF0ZV9kb21pbmF0b3JzLCBuZWFyZXN0X2NvbW1vbl9kb21pbmF0b3IsCglkb21pbmF0ZWRfYnlfcCwgdmVyaWZ5X2RvbWluYXRvcnMsIHJlY291bnRfZG9taW5hdG9yLAoJaXRlcmF0ZV9maXhfZG9taW5hdG9ycywgYWRkX3RvX2RvbWluYW5jZV9pbmZvLAoJZGVsZXRlX2Zyb21fZG9taW5hbmNlX2luZm8pOiBMaWtld2lzZS4KCSogZHdhcmYyYXNtLmMgKHNpemVfb2ZfZW5jb2RlZF92YWx1ZSwgZWhfZGF0YV9mb3JtYXRfbmFtZSwKCWR3Ml9hc21fb3V0cHV0X2RlbHRhX3VsZWIxMjgsIGR3Ml9hc21fb3V0cHV0X2RlbHRhX3NsZWIxMjgsCglkdzJfZm9yY2VfY29uc3RfbWVtLCBkdzJfYXNtX291dHB1dF9lbmNvZGVkX2FkZHJfcnR4KTogTGlrZXdpc2UuCgkqIGR3YXJmMm91dC5jIChleHBhbmRfYnVpbHRpbl9pbml0X2R3YXJmX3JlZ19zaXplcywgcmVnX3NhdmUsCglpbml0aWFsX3JldHVybl9zYXZlLCBzdGFja19hZGp1c3Rfb2Zmc2V0LCBkd2FyZjJvdXRfc3RhY2tfYWRqdXN0LAoJZmx1c2hfcXVldWVkX3JlZ19zYXZlcywgZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2V4cHIsCglkd2FyZjJvdXRfZnJhbWVfZGVidWcsIGR3X2NmaV9vcHJuZDFfZGVzYywgb3V0cHV0X2NmaSwKCW91dHB1dF9jYWxsX2ZyYW1lX2luZm8sIG91dHB1dF9sb2Nfb3BlcmFuZHMsIGJ1aWxkX2NmYV9sb2MsCglkZWNsX3VsdGltYXRlX29yaWdpbiwgQVRfZmxhZywgQVRfaW50LCBBVF91bnNpZ25lZCwgQVRfc3RyaW5nLAoJQVRfc3RyaW5nX2Zvcm0sIGFkZF9BVF9zcGVjaWZpY2F0aW9uLCBBVF9yZWYsIHNldF9BVF9yZWZfZXh0ZXJuYWwsCglBVF9sb2MsIEFUX2xvY19saXN0LCBBVF9hZGRyLCBBVF9sYmwsIGFkZF9jaGlsZF9kaWUsCglzcGxpY2VfY2hpbGRfZGllLCBhdHRyX2NoZWNrc3VtLCBzYW1lX2R3X3ZhbF9wLAoJYnJlYWtfb3V0X2luY2x1ZGVzLCBidWlsZF9hYmJyZXZfdGFibGUsIHNpemVfb2ZfZGllLCBtYXJrX2RpZXMsCgl1bm1hcmtfZGllcywgdmFsdWVfZm9ybWF0LCBvdXRwdXRfbG9jX2xpc3QsIG91dHB1dF9kaWUsCglvdXRwdXRfcHVibmFtZXMsIG91dHB1dF9hcmFuZ2VzLCBiYXNlX3R5cGVfZGllLCBpc19iYXNlX3R5cGUsCgltb2RpZmllZF90eXBlX2RpZSwgZGJ4X3JlZ19udW1iZXIsIG11bHRpcGxlX3JlZ19sb2NfZGVzY3JpcHRvciwKCW1lbV9sb2NfZGVzY3JpcHRvciwgbG9jX2Rlc2NyaXB0b3IsIGxvY19kZXNjcmlwdG9yX2Zyb21fdHJlZV8xLAoJZmllbGRfYnl0ZV9vZmZzZXQsIGFkZF9kYXRhX21lbWJlcl9sb2NhdGlvbl9hdHRyaWJ1dGUsCglhZGRfY29uc3RfdmFsdWVfYXR0cmlidXRlLCBydGxfZm9yX2RlY2xfbG9jYXRpb24sCglhZGRfbG9jYXRpb25fb3JfY29uc3RfdmFsdWVfYXR0cmlidXRlLCBhZGRfYnl0ZV9zaXplX2F0dHJpYnV0ZSwKCWFkZF9iaXRfb2Zmc2V0X2F0dHJpYnV0ZSwgYWRkX2JpdF9zaXplX2F0dHJpYnV0ZSwKCWFkZF9hYnN0cmFjdF9vcmlnaW5fYXR0cmlidXRlLCBwb3BfZGVjbF9zY29wZSwgc2NvcGVfZGllX2ZvciwKCWRlY2xfc3RhcnRfbGFiZWwsIGdlbl9mb3JtYWxfcGFyYW1ldGVyX2RpZSwKCWdlbl90eXBlX2RpZV9mb3JfbWVtYmVyLCBnZW5fc3VicHJvZ3JhbV9kaWUsIGdlbl9sYWJlbF9kaWUsCglnZW5fdHlwZWRlZl9kaWUsIGdlbl90eXBlX2RpZSwgZ2VuX3RhZ2dlZF90eXBlX2luc3RhbnRpYXRpb25fZGllLAoJZm9yY2VfZGVjbF9kaWUsIGZvcmNlX3R5cGVfZGllLCBnZW5fZGVjbF9kaWUsCglkd2FyZjJvdXRfaW1wb3J0ZWRfbW9kdWxlX29yX2RlY2wsIHBydW5lX3VudXNlZF90eXBlc19wcnVuZSwKCWR3YXJmMm91dF9maW5pc2gpOiBMaWtld2lzZS4KCjIwMDQtMDktMDggIEFuZHJlYXMgVG9ibGVyICA8dG9hQHBvcC5hZ3JpLmNoPgoKCSogTWFrZWZpbGUuaW4gKGJ1aWx0aW5zLm8pOiBEZXBlbmQgb24gdHJlZS1tdWRmbGFwLmguCgkqIGJ1aWx0aW5zLmM6IEluY2x1ZGUgdHJlZS1tdWRmbGFwLmguCgoyMDA0LTA5LTA4ICBVcm9zIEJpemphayAgPHVyb3NAa3NzLWxva2Euc2k+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfcHJlcGFyZV9mcF9jb21wYXJlX2FyZ3MpOiBEbyBub3QKCWZvcmNlIG9wZXJhbmQgMC4wIGludG8gcmVnaXN0ZXIgaW4gWEZtb2RlLiBBbHNvIGRvIG5vdCBmb3JjZQoJb3BlcmFuZCAwLjAgaW50byByZWdpc3RlciBpZiAhVEFSR0VUX0NNT1ZFLgoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kICgqY21wZnBfMCk6IERlbGV0ZS4gUmVtb3ZlIGNvbW1lbnQuCgkoKmNtcGZwXzBfc2YsIGNtcGZwXzBfZGYsIGNtcGZwXzBfeGYpOiBOZXcgcGF0dGVybnMgdG8KCWltcGxlbWVudCBmdHN0IHg4NyBpbnN0cnVjdGlvbi4KCSgqZnBfamNjXzcpOiBOZXcgaW5zbiBwYXR0ZXJuLiBDaGFuZ2UgY29ycmVzcG9uZGluZyBzcGxpdAoJcGF0dGVybiB0byBoYW5kbGUgImdlbmVyYWxfb3BlcmFuZCIgaW5zdGVhZCBvZgoJIm5vbmltbWVkaWF0ZV9vcGVyYW5kIi4KCjIwMDQtMDktMDggIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogZG9jL3J0bC50ZXhpIChJbnNucyk6IERvY3VtZW50IE5PVEVfSU5TTl9GVU5DVElPTl9CRUcuCgoyMDA0LTA5LTA3ICBGcmFuayBDaC4gRWlnbGVyICA8ZmNoZUByZWRoYXQuY29tPgoKCSogYnVpbHRpbnMuYyAoc3RkX2dpbXBsaWZ5X3ZhX2FyZ19leHByKTogTWFyayBJTkRJUkVDVF9SRUYgbm9kZXMKCWdlbmVyYXRlZCBmcm9tIHN0YW5kYXJkIHZhX2FyZyBleHBhbnNpb24uCgkqIHRyZWUtbXVkZmxhcC5jIChteF94Zm9ybV9kZXJlZnNfMSk6IE9taXQgaW5zdHJ1bWVudGF0aW9uIGZyb20KCW1hcmtlZCBub2Rlcy4KCShtZl92YXJuYW1lX3RyZWUsIG1mX2ZpbGVfZnVuY3Rpb25fbGluZV90cmVlKTogQWRkIHNvbWUgc3VwcG9ydAoJZm9yIGNvbHVtbiBudW1iZXJzIGlmIGNvbXBpbGVkIHdpdGggVVNFX01BUFBFRF9MT0NBVElPTi4KCjIwMDQtMDktMDcgIFppZW1vd2l0IExhc2tpICA8emxhc2tpQGFwcGxlLmNvbT4KCgkqIGMtZGVjbC5jIChncm9rdHlwZW5hbWVfaW5fcGFybV9jb250ZXh0KTogUmVtb3ZlIGZ1bmN0aW9uLgoJKiBjLXRyZWUuaCAoZ3Jva3R5cGVuYW1lX2luX3Bhcm1fY29udGV4dCk6IFJlbW92ZSBwcm90b3R5cGUuCgoyMDA0LTA5LTA3ICBaaWVtb3dpdCBMYXNraSAgPHpsYXNraUBhcHBsZS5jb20+CgoJKiBNYWtlZmlsZS5pbiAoYy1wYXJzZS5vKTogRGVwZW5kIG9uICQoQ19DT01NT05fSCkuCgkqIGMtcGFyc2UuaW46IEluY2x1ZGUgYy1jb21tb24uaCBpbnN0ZWFkIG9mIG9iamMtYWN0LmguCgkoaXZhcl9kZWNsX2xpc3QsIGl2YXJfZGVjbHMsIGl2YXJfZGVjbCwgaXZhcnMsIGl2YXJfZGVjbGFyYXRvciwKCW15cGFybXMsIG15cGFybSk6IFJlbW92ZSAldHlwZSBkZWNsYXJhdGlvbnMuCgkobWV0aG9kdHlwZSwgb3B0cGFybXMsIE9CSkNfVFlQRV9RVUFMLCBvYmpjX3F1YWxzLCBvYmpjX3F1YWwsCglvYmpjX3R5cGVuYW1lLCBvYmpjX3RyeV9jYXRjaF9zdG10LCBvcHRlbGxpcHNpcyk6IEFkZCAldHlwZQoJZGVjbGFyYXRpb25zLgoJKG9iamNfaW5oZXJpdF9jb2RlLCBvYmpjX3B1YmxpY19mbGFnKTogUmVtb3ZlLgoJKHR5cGVzcGVjX25vbnJlc2VydmVkX25vbmF0dHIpOiBDYWxsCglvYmpjX2dldF9wcm90b2NvbF9xdWFsaWZpZWRfdHlwZSgpIGluc3RlYWQgb2YgZ2V0X3N0YXRpY19yZWZlcmVuY2UoKQoJYW5kIGdldF9wcm90b2NvbF9yZWZlcmVuY2UoKS4KCShzdG10X25vY29tcCk6IENhbGwgZ3Jva3Bhcm0oKSBvbiBAY2F0Y2ggcGFyYW1ldGVyLgoJKG9iamNkZWYpOiBNb3ZlIHNlbWFudGljIGFjdGlvbiB0byBvYmpjX2ZpbmlzaF9pbXBsZW1lbnRhdGlvbigpLgoJKGNsYXNzZGVmKTogTW92ZSBzZW1hbnRpYyBhY3Rpb24gdG8gb2JqY19zdGFydF9jbGFzc19pbnRlcmZhY2UoKSwKCW9iamNfY29udGludWVfaW50ZXJmYWNlKCksIG9iamNfZmluaXNoX2ludGVyZmFjZSgpLAoJb2JqY19zdGFydF9jbGFzc19pbXBsZW1lbnRhdGlvbigpLCBvYmpjX2NvbnRpbnVlX2ltcGxlbWVudGF0aW9uKCksCglvYmpjX3N0YXJ0X2NhdGVnb3J5X2ludGVyZmFjZSgpIGFuZAoJb2JqY19zdGFydF9jYXRlZ29yeV9pbXBsZW1lbnRhdGlvbigpLgoJKHByb3RvY29sZGVmKTogTW92ZSBzZW1hbnRpYyBhY3Rpb25zIHRvIG9iamNfc3RhcnRfcHJvdG9jb2woKSBhbmQKCW9iamNfZmluaXNoX2ludGVyZmFjZSgpLgoJKGl2YXJfZGVjbF9saXN0KTogUmVtb3ZlIG5vbnRlcm1pbmFsLgoJKHZpc2liaWxpdHlfc3BlYyk6IE1vdmUgc2VtYW50aWMgYWN0aW9ucyB0byBvYmpjX3NldF92aXNpYmlsaXR5KCkuCgkoaXZhcl9kZWNscyk6IFJlbW92ZSBhc3NpZ25tZW50IHRvICQkLgoJKGl2YXJfZGVjbCk6IFJlcGhyYXNlIGluIHRlcm1zIG9mIGNvbXBvbmVudF9kZWNsOyBjYWxsCglvYmpjX2FkZF9pbnN0YW5jZV92YXJpYWJsZSgpLgoJKGl2YXJzLCBpdmFyX2RlY2xhcmF0b3IpOiBSZW1vdmUgbm9udGVybWluYWxzLgoJKG9wdF9zZW1pKTogTmV3IG5vbnRlcm1pbmFsLgoJKG1ldGhvZHR5cGUpOiBSZW1vdmUgc2VtYW50aWMgYWN0aW9ucy4KCShtZXRob2RkZWYpOiBNb3ZlIHNlbWFudGljIGFjdGlvbnMgdG8gb2JqY19zZXRfbWV0aG9kX3R5cGUoKSwKCW9iamNfc3RhcnRfbWV0aG9kX2RlZmluaXRpb24oKSBhbmQgb2JqY19maW5pc2hfbWV0aG9kX2RlZmluaXRpb24oKS4KCShtZXRob2Rwcm90byk6IE1vdmUgc2VtYW50aWMgYWN0aW9ucyB0byBvYmpjX3NldF9tZXRob2RfdHlwZSgpIGFuZAoJb2JqY19hZGRfbWV0aG9kX2RlY2xhcmF0aW9uKCkuCgkobWV0aG9kZGVjbCk6IFVzZSBvYmpjX3R5cGVuYW1lIGluc3RlYWQgb2YgdHlwZW5hbWU7IG1vdmUgc2VtYW50aWMKCWFjdGlvbnMgdG8gb2JqY19idWlsZF9tZXRob2Rfc2lnbmF0dXJlKCkuCgkob3B0YXJnbGlzdCwgbXl4ZGVjbHMsIG15ZGVjbCwgbXlwYXJtcywgbXlwYXJtKTogUmVtb3ZlIG5vbnRlcm1pbmFscy4KCShvcHRwYXJtbGlzdCk6IEV4cHJlc3MgaW4gdGVybXMgb2Ygb3B0cGFybXMgYW5kIG9wdGVsbGlwc2lzLgoJKG9wdHBhcm1zLCBvcHRlbGxpcHNpcywgb2JqY19xdWFsLCBvYmpjX3F1YWxzLCBvYmpjX3R5cGVuYW1lKTogTmV3Cglub250ZXJtaW5hbHMuCgkoa2V5d29yZGRlY2wpOiBVc2Ugb2JqY190eXBlbmFtZSBpbnN0ZWFkIG9mIHR5cGVuYW1lLgoJKHJpZF90b195eSk6IE1hcmsgUklEX0lOLCBSSURfT1VULCBSSURfSU5PVVQsIFJJRF9CWUNPUFksIFJJRF9CWVJFRgoJYW5kIFJJRF9PTkVXQVkgYXMgcmV0dXJuaW5nIE9CSkNfVFlQRV9RVUFMIHRvIHl5cGFyc2UoKS4KCjIwMDQtMDktMDggIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBkb2MvdG0udGV4aSAoTURfVU5XSU5EX1NVUFBPUlQpOiBEb2N1bWVudC4KCShNRF9GQUxMQkFDS19GUkFNRV9TVEFURV9GT1IpOiBVcGRhdGUuCgkqIHVud2luZC1kdzIuYyAoTURfVU5XSU5EX1NVUFBPUlQpOiAjaW5jbHVkZSBpZiBkZWZpbmVkLgoJKHV3X2ZyYW1lX3N0YXRlX2Zvcik6IEFkanVzdCBNRF9GQUxMQkFDS19GUkFNRV9TVEFURV9GT1IgaW52b2NhdGlvbi4KCShNRF9GUk9CX1VQREFURV9DT05URVhUKTogUmVtb3ZlIGRlZmF1bHQuCgkodXdfdXBkYXRlX2NvbnRleHRfMSk6IEluc3RlYWQgI2lmZGVmIGludm9jYXRpb24uCgkqIGNvbmZpZy9pYTY0L3Vud2luZC1pYTY0LmMgKE1EX1VOV0lORF9TVVBQT1JUKTogI2luY2x1ZGUgaWYgZGVmaW5lZC4KCSh1d19mcmFtZV9zdGF0ZV9mb3IpOiBBZGp1c3QgTURfRkFMTEJBQ0tfRlJBTUVfU1RBVEVfRk9SIGludm9jYXRpb24uCgkqIGNvbmZpZy9hbHBoYS9nbnUuaCAoTURfRkFMTEJBQ0tfRlJBTUVfU1RBVEVfRk9SKTogRG9uJ3QgdW5kZWYuCgkoTURfVU5XSU5EX1NVUFBPUlQpOiBVbmRlZmluZSB0aGlzIGluc3RlYWQuCgkqIGNvbmZpZy9pMzg2L2dudS5oOiBMaWtld2lzZS4KCSogY29uZmlnL2FscGhhL2xpbnV4LXVud2luZC5oOiBOZXcgZmlsZSwgbWFjcm8gY29udmVydGVkIHRvCglmdW5jdGlvbiwgZXh0cmFjdGVkIGZyb20uLgoJKiBjb25maWcvYWxwaGEvbGludXguaCAoTURfRkFMTEJBQ0tfRlJBTUVfU1RBVEVfRk9SKTogLi50aGlzLgoJKE1EX1VOV0lORF9TVVBQT1JUKTogRGVmaW5lLgoJKiBjb25maWcvYWxwaGEvdm1zLXVud2luZC5oLCBjb25maWcvYWxwaGEvdm1zLmg6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni9saW51eC11bndpbmQuaCwgY29uZmlnL2kzODYvbGludXguaCwKCWNvbmZpZy9pMzg2L2xpbnV4NjQuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9pYTY0L2xpbnV4LXVud2luZC5oLCBjb25maWcvaWE2NC9saW51eC5oOiBMaWtld2lzZS4KCU1EX0hBTkRMRV9VTldBQkkgdG9vLgoJKiBjb25maWcvbWlwcy9saW51eC11bndpbmQuaCwgY29uZmlnL21pcHMvbGludXguaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9wYS9saW51eC11bndpbmQuaCwgY29uZmlnL3BhL3BhMzItbGludXguaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLXVud2luZC5oLCBjb25maWcvcnM2MDAwL2Rhcndpbi5oOiBMaWtld2lzZS4KCSogY29uZmlnL3MzOTAvbGludXgtdW53aW5kLmgsIGNvbmZpZy9zMzkwL2xpbnV4Lmg6IExpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvbGludXgtdW53aW5kLmgsIGNvbmZpZy9zcGFyYy9saW51eC5oLAoJY29uZmlnL3NwYXJjL2xpbnV4NjQuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9zaC9saW51eC11bndpbmQuaCwgY29uZmlnL3NoL2xpbnV4Lmg6IExpa2V3aXNlLCBidXQgbWVyZ2UKCVNIX0ZBTExCQUNLX0ZSQU1FX0ZMT0FUX1NUQVRFIGludG8gc2hfZmFsbGJhY2tfZnJhbWVfc3RhdGUuCgkqIGNvbmZpZy9yczYwMDAvbGludXgtdW53aW5kLmgsIGNvbmZpZy9yczYwMDAvbGludXguaCwKCWNvbmZpZy9yczYwMDAvbGludXg2NC5oOiBMaWtld2lzZS4gIFNwbGl0IG91dCBnZXRfc2lnY29udGV4dAoJZnVuY3Rpb24uICBVc2UgQVJHX1BPSU5URVJfUkVHTlVNIGZvciAzMi1iaXQgdGVtcCByZWcgdG9vLgoKMjAwNC0wOS0wNyAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogY3NlLmMgKGZvbGRfcnR4KTogIEF2b2lkIGJ1aWxkaW5nIG9mCgkoQ09OU1QgKE1JTlVTIChDT05TVF9JTlQpIChTWU1CT0xfUkVGKSkpCgoJKiB0cmVlLXNzYS1wcmUuYyAoZ3JhbmRfYml0bWFwX29ic3RhY2spOiBOZXcuCgkodmFsdWVfaW5zZXJ0X2ludG9fc2V0X2JpdG1hcCwgYml0bWFwX3NldF9uZXcpOiBVc2UgdGhlIG9ic3RhY2suCgkoaW5pdF9wcmUpOiBJbml0aWFsaXplIG9ic3RhY2suCgkoZmluaV9wcmUpOiBGcmVlIG9ic3RhY2suCgoyMDA0LTA5LTA3ICBEYXZpZCBEYW5leSAgPGRkYW5leUBhdnRyZXguY29tPgoKCSogY29uZmlnLmdjYzogQWRkZWQgc3VwcG9ydCBmb3IgLS13aXRoLWRpdmlkZT1bYnJlYWtzfHRyYXBzXSBmb3IKCW1pcHMgdGFyZ2V0cy4KCSogY29uZmlnL21pcHMvbWlwcy5oIChNQVNLX0RJVklERV9CUkVBS1MpOiBOZXcgdGFyZ2V0X2ZsYWdzIGJpdC4KCShUQVJHRVRfRElWSURFX1RSQVBTKTogTmV3IG1hY3JvLgoJKFRBUkdFVF9TV0lUQ0hFUyk6IEFkZGVkIC1tZGl2aWRlLXRyYXBzIGFuZCAtbWRpdmlkZS1icmVha3MuCgkoT1BUSU9OX0RFRkFVTFRfU1BFQ1MpOiBBZGRlZCAtLXdpdGgtZGl2aWRlPSBzdXBwb3J0LgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHNfaWRpdl9pbnNucyk6IEdlbmVyYXRlIHByb3BlciBjb3VudCBvbgoJR0VORVJBVEVfRElWSURFX1RSQVBTLgoJKG1pcHNfb3V0cHV0X2RpdmlzaW9uKTogRW1pdCBjb25kaXRpb25hbCB0cmFwIGlmCglHRU5FUkFURV9ESVZJREVfVFJBUFMgaXMgc2V0LgoJKiBkb2MvaW5zdGFsbC50ZXhpOiBEb2N1bWVudCAtLXdpdGgtZGl2aWRlLgoJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IC1tZGl2aWRlLXRyYXBzIGFuZCAtbWRpdmlkZS1icmVha3MuCgoyMDA0LTA5LTA3ICBDYXJvbGluZSBUaWNlICA8Y3RpY2VAYXBwbGUuY29tPgoKCSogY2ZncnRsLmMgKHJ0bF92ZXJpZnlfZmxvd19pbmZvXzEpOiAgQWRkIG5ldyBlZGdlIGZsYWcsCglFREdFX0NST1NTSU5HLCB0byBmbGFncyB0ZXN0IGNhc2UuCgoyMDA0LTA5LTA3ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChjb250YWluc19hYm5vcm1hbF9zc2FfbmFtZV9wKTogRGVhbCB3aXRoICc8JwoJY2xhc3MgdG9vLgoKMjAwNC0wOS0wNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNmZ2FuYWwuYyAoZmxvd19kZXB0aF9maXJzdF9vcmRlcl9jb21wdXRlLCBkZnNfZW51bWVyYXRlX2Zyb20sCgljZmdidWlsZC5jLCBpbnNpZGVfYmFzaWNfYmxvY2tfcCwgY29udHJvbF9mbG93X2luc25fcCwKCW1ha2VfbGFiZWxfZWRnZSwgbWFrZV9lZGdlcywgZmluZF9iYXNpY19ibG9ja3NfMSk6IFVzZSBnY2NfYXNzZXJ0CglvciBnY2NfdW5yZWFjaGFibGUuCgkqIGNmZy5jIChjbGVhcl9lZGdlcywgaW5pdGlhbGl6ZV9iYl9yYmksIGNvbXBhY3RfYmxvY2tzLAoJcmVtb3ZlX2VkZ2UsIGFsbG9jX2F1eF9mb3JfYmxvY2tzLCBmcmVlX2F1eF9mb3JfYmxvY2tzLAoJYWxsb2NfYXV4X2Zvcl9lZGdlcywgZnJlZV9hdXhfZm9yX2VkZ2VzKTogTGlrZXdpc2UuCgkqIGNmZ2NsZWFudXAuYyAodHJ5X2ZvcndhcmRfZWRnZXMsCgltZXJnZV9ibG9ja3NfbW92ZV9wcmVkZWNlc3Nvcl9ub2p1bXBzLAoJbWVyZ2VfYmxvY2tzX21vdmVfc3VjY2Vzc29yX25vanVtcHMpOiBMaWtld2lzZS4KCSogY2ZnZXhwYW5kLmMgKGV4cGFuZF9naW1wbGVfY29uZF9leHByLAoJZXhwYW5kX2dpbXBsZV90YWlsY2FsbCk6IExpa2V3aXNlLgoJKiBjZmdob29rcy5jIChkdXBsaWNhdGVfYmxvY2spOiBMaWtld2lzZS4KCSogY2ZnbGF5b3V0LmMgKHJlY29yZF9lZmZlY3RpdmVfZW5kcG9pbnRzLAoJaW5zbl9sb2NhdG9yc19pbml0aWFsaXplLCBjaGFuZ2Vfc2NvcGUsIGZpeHVwX3Jlb3JkZXJfY2hhaW4sCgl2ZXJpZnlfaW5zbl9jaGFpbiwgZml4dXBfZmFsbHRocnVfZXhpdF9wcmVkZWNlc3NvciwKCWR1cGxpY2F0ZV9pbnNuX2NoYWluLCBjZmdfbGF5b3V0X2ZpbmFsaXplKTogTGlrZXdpc2UuCgkqIGNmZ2xvb3BhbmFsLmMgKGNoZWNrX2lycmVkKTogTGlrZXdpc2UuCgkqIGNmZ2xvb3AuYyAoc3VwZXJsb29wX2F0X2RlcHRoLCBmbG93X2xvb3BzX2ZyZWUsCglmbG93X2xvb3BfZW50cnlfZWRnZXNfZmluZCwgZmxvd19sb29wc19maW5kLAoJZmxvd19sb29wX291dHNpZGVfZWRnZV9wLCBnZXRfbG9vcF9ib2R5LAoJZ2V0X2xvb3BfYm9keV9pbl9kb21fb3JkZXIsIGdldF9sb29wX2JvZHlfaW5fYmZzX29yZGVyLAoJZ2V0X2xvb3BfZXhpdF9lZGdlcywgbnVtX2xvb3BfYnJhbmNoZXMsIGNhbmNlbF9sb29wLAoJdmVyaWZ5X2xvb3Bfc3RydWN0dXJlKTogTGlrZXdpc2UuCgljZmdsb29wbWFuaXAuYyAoZmluZF9wYXRoLCByZW1vdmVfcGF0aCwgbG9vcF9kZWxldGVfYnJhbmNoX2VkZ2UsCglkdXBsaWNhdGVfbG9vcF90b19oZWFkZXJfZWRnZSwgY3JlYXRlX3ByZWhlYWRlciwKCWNyZWF0ZV9sb29wX25vdGVzKTogTGlrZXdpc2UuCgkqIGNmZ3J0bC5jIChkZWxldGVfaW5zbiwgdHJ5X3JlZGlyZWN0X2J5X3JlcGxhY2luZ19qdW1wLAoJZWRpcmVjdF9icmFuY2hfZWRnZSwgZm9yY2Vfbm9uZmFsbHRocnVfYW5kX3JlZGlyZWN0LAoJcnRsX3NwbGl0X2VkZ2UsIGluc2VydF9pbnNuX29uX2VkZ2UsIGNvbW1pdF9vbmVfZWRnZV9pbnNlcnRpb24sCgljb21taXRfZWRnZV9pbnNlcnRpb25zLCBjb21taXRfZWRnZV9pbnNlcnRpb25zX3dhdGNoX2NhbGxzLAoJcHVyZ2VfZGVhZF9lZGdlcywgY2ZnX2xheW91dF9yZWRpcmVjdF9lZGdlX2FuZF9icmFuY2gsCgljZmdfbGF5b3V0X3JlZGlyZWN0X2VkZ2VfYW5kX2JyYW5jaF9mb3JjZSwKCWNmZ19sYXlvdXRfbWVyZ2VfYmxvY2tzLCBydGxfZmxvd19jYWxsX2VkZ2VzX2FkZCk6IExpa2V3aXNlLgoJKiBjZ3JhcGguYyAoY2dyYXBoX25vZGUsIGNncmFwaF9jcmVhdGVfZWRnZSwgY2dyYXBoX3JlbW92ZV9lZGdlLAoJY2dyYXBoX3JlZGlyZWN0X2VkZ2VfY2FsbGVlLCBjZ3JhcGhfZ2xvYmFsX2luZm8sIGNncmFwaF9ydGxfaW5mbywKCWNncmFwaF92YXJwb29sX25vZGUpOiBMaWtld2lzZS4KCSogY2dyYXBodW5pdC5jIChjZ3JhcGhfZmluYWxpemVfZnVuY3Rpb24sCgljZ3JhcGhfZmluYWxpemVfY29tcGlsYXRpb25fdW5pdCwgY2dyYXBoX21hcmtfZnVuY3Rpb25zX3RvX291dHB1dCwKCWNncmFwaF9leHBhbmRfZnVuY3Rpb24sIGNncmFwaF9yZW1vdmVfdW5yZWFjaGFibGVfbm9kZXMsCgljZ3JhcGhfY2xvbmVfaW5saW5lZF9ub2RlcywgY2dyYXBoX21hcmtfaW5saW5lX2VkZ2UsCgljZ3JhcGhfbWFya19pbmxpbmUsIGNncmFwaF9leHBhbmRfYWxsX2Z1bmN0aW9ucywKCWNncmFwaF9idWlsZF9zdGF0aWNfY2R0b3IpOiBMaWtld2lzZS4KCSogY29tYmluZS5jICAoZG9fU1VCU1QsIHRyeV9jb21iaW5lLCBzdWJzdCwgY29tYmluZV9zaW1wbGlmeV9ydHgsCglzaW1wbGlmeV9sb2dpY2FsLCBkaXN0cmlidXRlX25vdGVzLCBpbnNuX2N1aWQpOiBMaWtld2lzZS4KCSogY29uZmxpY3QuYyAoY29uZmxpY3RfZ3JhcGhfYWRkLCBwcmludF9jb25mbGljdCk6IExpa2V3aXNlLgoJKiBjb3ZlcmFnZS5jIChydGxfY292ZXJhZ2VfY291bnRlcl9yZWYsIHRyZWVfY292ZXJhZ2VfY291bnRlcl9yZWYsCgljb3ZlcmFnZV9jaGVja3N1bV9zdHJpbmcpOiBMaWtld2lzZS4KCSogY3NlLmMgKG1ha2VfbmV3X3F0eSwgbWFrZV9yZWdzX2VxdiwgaW5zZXJ0LCBpbnZhbGlkYXRlLAoJaGFzaF9ydHgsIGV4cF9lcXVpdl9wLCBjc2VfYmFzaWNfYmxvY2ssIGNvdW50X3JlZ191c2FnZSwKCWNzZV9jY19zdWNjcywgY3NlX2NvbmRpdGlvbl9jb2RlX3JlZyk6IExpa2V3aXNlLgoJKiBjc2VsaWIuYyAoZW50cnlfYW5kX3J0eF9lcXVhbF9wLCByZW1vdmVfdXNlbGVzc192YWx1ZXMsCglydHhfZXF1YWxfZm9yX2NzZWxpYl9wLCB3cmFwX2NvbnN0YW50LCBjc2VsaWJfaGFzaF9ydHgsCgluZXdfY3NlbGliX3ZhbCwgY3NlbGliX3N1YnN0X3RvX3ZhbHVlcywgY3NlbGliX2ludmFsaWRhdGVfcmVnbm8sCgljc2VsaWJfcmVjb3JkX3NldCk6IExpa2V3aXNlLgoKMjAwNC0wOS0wNyAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogdHJlZS1zc2EtbG9vcC1pdm9wdHMuYyAoaXZfdmFsdWUpOiBBdm9pZCBpbnZhbGlkIHNoYXJpbmcgb24gbml0ZXIuCgoyMDA0LTA5LTA3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogYnVpbHRpbnMuYyAoZm9sZF9idWlsdGluX3N0cmNocik6IFVzZSBidWlsZF9pbnRfY3N0LCBub3QKCWZvbGRfY29udmVydC4KCShmb2xkX2J1aWx0aW5fc3RycGJyayk6IExpa2V3aXNlLgoJKiBleHByLmMgKGFycmF5X3JlZl9sb3dfYm91bmQpOiBMaWtld2lzZS4KCSogdHJlZS1zY2FsYXItZXZvbHV0aW9uLmMgKGNocmVjX2lzX3Bvc2l0aXZlLCBhZGRfdG9fZXZvbHV0aW9uXzEsCglpbnRlcnByZXRfcmhzX21vZGlmeV9leHByLCBudW1iZXJfb2ZfaXRlcmF0aW9uc19pbl9sb29wKTogTGlrZXdpc2UuCgkqIHRyZWUtc3JhLmMgKGdlbmVyYXRlX2VsZW1lbnRfemVybyk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1kb20uYyAoc2ltcGxpZnlfcmhzX2FuZF9sb29rdXBfYXZhaWxfZXhwcik6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChkZXRlcm1pbmVfYml2X3N0ZXAsIGlkeF9maW5kX3N0ZXAsCglhZGRfb2xkX2l2X2NhbmRpZGF0ZXMsIGFkZF9pdl9jYW5kaWRhdGVzKTogTGlrZXdpc2UuCgkqIHRyZWUtdGFpbGNhbGwuYyAodHJlZV9vcHRpbWl6ZV90YWlsX2NhbGxzXzEpOiBMaWtld2lzZS4KCjIwMDQtMDktMDcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLWF1eC1pbmZvLmMgKGdlbl90eXBlKTogVXNlIGdjY19hc3NlcnQgb3IgZ2NjX3VucmVhY2hhYmxlLgoJKiBjLWNvbW1vbi5jIChjX3R5cGVfaGFzaCwgY19jb21tb25fbm9kZXNfYW5kX2J1aWx0aW5zLAoJY19leHBhbmRfZXhwciwgYm9vbGVhbl9pbmNyZW1lbnQsIG5vbm51bGxfY2hlY2tfcCwKCWNoZWNrX2Z1bmN0aW9uX2FyZ3VtZW50c19yZWN1cnNlLCBmb2xkX29mZnNldG9mXzEpOiBMaWtld2lzZS4KCSogYy1jcHBidWlsdGluLmMgKGRlZmluZV9fR05VQ19fLCBidWlsdGluX2RlZmluZV9zdGRpbnRfbWFjcm9zLAoJYnVpbHRpbl9kZWZpbmVfdHlwZV9tYXgpOiBMaWtld2lzZS4KCSogYy1kZWNsLmMgKGJpbmQsIHBvcF9zY29wZSwgbWVyZ2VfZGVjbHMsIHB1c2hkZWNsX3RvcF9sZXZlbCwKCWltcGxpY2l0X2RlY2xfd2FybmluZywgYnVpbHRpbl9mdW5jdGlvbiwgYnVpbGRfY29tcG91bmRfbGl0ZXJhbCwKCWNvbXBsZXRlX2FycmF5X3R5cGUsIGdyb2tkZWNsYXJhdG9yLCBnZXRfcGFybV9pbmZvLAoJc3RhcnRfZnVuY3Rpb24sIHN0b3JlX3Bhcm1fZGVjbHNfb2xkc3R5bGUsCgljX3dyaXRlX2dsb2JhbF9kZWNsYXJhdGlvbnMpOiBMaWtld2lzZS4KCSogYy1mb3JtYXQuYyAoZ2V0X2NvbnN0YW50LCBkZWNvZGVfZm9ybWF0X2F0dHIsCgltYXliZV9yZWFkX2RvbGxhcl9udW1iZXIsIGdldF9mbGFnX3NwZWMsIGNoZWNrX2Zvcm1hdF9hcmcsCgljaGVja19mb3JtYXRfdHlwZXMsIGZvcm1hdF90eXBlX3dhcm5pbmcsCglmaW5kX2NoYXJfaW5mb19zcGVjaWZpZXJfaW5kZXgsIGluaXRfZHluYW1pY19hc21fZnByaW50Zl9pbmZvLAoJaW5pdF9keW5hbWljX2RpYWdfaW5mbywgaGFuZGxlX2Zvcm1hdF9hdHRyaWJ1dGUpOiBMaWtld2lzZS4KCSogYy1naW1wbGlmeS5jIChwdXNoX2NvbnRleHQsIHBvcF9jb250ZXh0LCBmaW5pc2hfYmNfYmxvY2spOgoJKiBjLWxleC5jIChjX2xleF93aXRoX2ZsYWdzLCBsZXhfc3RyaW5nKTogTGlrZXdpc2UuCgkqIGMtb2JqYy1jb21tb24uYyAoY190cmVlX3ByaW50ZXIpOiBMaWtld2lzZS4KCSogYy1wY2guYyAocGNoX2luaXQpOiBMaWtld2lzZS4KCSogYy1wcmFnbWEuYyAobWF5YmVfYXBwbHlfcHJhZ21hX3dlYWspOiBMaWtld2lzZS4KCSogYy1wcmV0dHktcHJpbnQuYyAocHBfY190cmVlX2RlY2xfaWRlbnRpZmllcik6IExpa2V3aXNlLgoJKiBjLXR5cGVjay5jIChjX2luY29tcGxldGVfdHlwZV9lcnJvciwgY29tcG9zaXRlX3R5cGUsCgljb21tb25fcG9pbnRlcl90eXBlLCBjb21tb25fdHlwZSwgc2FtZV90cmFuc2xhdGlvbl91bml0X3AsCgl0YWdnZWRfdHlwZXNfdHVfY29tcGF0aWJsZV9wLCBmaW5pc2hfaW5pdCwgcG9wX2luaXRfbGV2ZWwsCglzZXRfZGVzaWduYXRvciwgc2V0X25vbmluY3JlbWVudGFsX2luaXRfZnJvbV9zdHJpbmcsCglwcm9jZXNzX2luaXRfZWxlbWVudCwgY19maW5pc2hfaWZfc3RtdCk6IExpa2V3aXNlLgoJKiBjYWxsZXItc2F2ZS5jIChpbml0X2NhbGxlcl9zYXZlLCBzYXZlX2NhbGxfY2xvYmJlcmVkX3JlZ3MsCglpbnNlcnRfcmVzdG9yZSwgaW5zZXJ0X3NhdmUsIGluc2VydF9vbmVfaW5zbik6IExpa2V3aXNlLgoJKiBjYWxscy5jIChlbWl0X2NhbGxfMSwgY29tcHV0ZV9hcmd1bWVudF9ibG9ja19zaXplLAoJcHJlY29tcHV0ZV9hcmd1bWVudHMsIGV4cGFuZF9jYWxsLCBlbWl0X2xpYnJhcnlfY2FsbF92YWx1ZV8xLAoJc3RvcmVfb25lX2FyZyk6IExpa2V3aXNlLgoKMjAwNC0wOS0wNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAoZW5hYmxlLWNoZWNraW5nKTogQWRkIHJlbGVhc2Ugb3B0aW9uLiBSZW9yZ2FuaXplCgl0byBhdm9pZCByZXBldGl0aW9uLgoJKiBjb25maWd1cmU6IFJlYnVpbHQuCgkqIGRvYy9pbnN0YWxsLnRleGkgKGVuYWJsZS1jaGVja2luZyk6IEFtZW5kIGRvY3VtZW50YXRpb24uCgoyMDA0LTA5LTA2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgYm9vdHN0cmFwLzE3MzEzCgkqIE1ha2VmaWxlLmluIChzcGVjcy5yZWFkeSk6IERlcGVuZCBvbiBjYzEkKGV4ZWV4dCkuCgoyMDA0LTA5LTA2ICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChtb3ZzZl9oYXJkZmxvYXQsIG1vdmRmX2hhcmRmbG9hdF82NGJpdCwKCW1vdmRmX2hhcmRmbG9hdF8zMmJpdCk6IFNwbGl0IGZHIGludG8gdHdvIGFsdGVybmF0aXZlcy4KCShtb3Z2MnNmX2hhcmRmbG9hdF82NGJpdCk6IFNwbGl0IGZZRyBpbnRvIHR3byBhbHRlcm5hdGl2ZXMuCgoJKiBlbWl0LXJ0bC5jICh0cnlfc3BsaXQpOiBDaGVjayBJTlNOX1AgYmVmb3JlIG1heV90cmFwX3AgY2FsbC4KCjIwMDQtMDktMDYgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBmaW5hbC5jIChvdXRwdXRfaW5fc2xvdCk6IERlbGV0ZS4KCShmaW5hbF9zY2FuX2luc24pOiBSZXZlcnQgMjAwNC0wOS0wMyBjaGFuZ2UuCgkob3V0cHV0X2FzbV9pbnNuKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChvdXRwdXRfcmV0dXJuKTogTGlrZXdpc2UuCgkob3V0cHV0X3NpYmNhbGwpOiBMaWtld2lzZS4KCjIwMDQtMDktMDYgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KCgkqIGxvb3AuYyAobG9vcF9kdW1wX2F1eCk6IERvIG5vdCBwcmludCBSVEwgd2hlbiBub3QgYXZhaWxhYmxlLgoJKiB0cmVlLXNzYS1sb29wLWl2b3B0cy5jIChhZGRfc3RhbmRhcmRfaXZfY2FuZGlkYXRlcyk6IERvIG5vdCB1c2UKCWZyb250ZW5kIHNwZWNpZmljIHR5cGUgbm9kZXMuCgkocHJvZHVjZV9tZW1vcnlfZGVjbF9ydGwpOiBCcmVhayBvdXQgZnJvbSAuLi4KCShwcmVwYXJlX2RlY2xfcnRsKTogLi4uIGhlcmUuICBIYW5kbGUgQUREUl9FWFBSIGNvcnJlY3RseS4KCShnZXRfY29tcHV0YXRpb25fYXQpOiBBdm9pZCByYW5kb20gdHJlZSBzaGFyaW5nLgoJKHRyZWVfc3NhX2l2X29wdGltaXplKTogVmVyaWZ5IHRyZWUgc2hhcmluZzsgZHVtcCBsb29wcy4KCjIwMDQtMDktMDYgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5pbiAocnRsLm8sIGJpdG1hcC5vKTogQ29ycmVjdCBkZXBlbmRlbmNpZXMsIHJlbW92ZQoJdW5uZWNlc3NhcnkgY29tbWFuZHMuCgoyMDA0LTA5LTA2ICBNb2hhbiBFbWJhciAgPGdudXN0dWZmQHRoaXNpc2Nvb2wuY29tPgoKCSogTWFrZWZpbGUuaW4gKHJ0bC5vKTogUmVtb3ZlIC1ER0VORVJBVE9SX0ZJTEUuCgkoYml0bWFwLm8pOiBMaWtld2lzZS4KCjIwMDQtMDktMDYgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJVW5pZnkgdGhlIG1hbmFnZW1lbnQgb2YgUlRMIGFuZCB0cmVlLWxldmVsIGR1bXAgZmlsZXMuCgoJKiBjZmdleHBhbmQuYyAodHJlZV9leHBhbmRfY2ZnKTogRml4IGluY29ycmVjdCBjb21tZW50LgoJRG9uJ3QgcHJpbnQgZnVuY3Rpb24gbmFtZSB0byB0aGUgZHVtcCBmaWxlLCB0aGUgcGFzcyBtYW5hZ2VyCgl3b3VsZCBkbyB0aGlzIGZvciB1cy4gQWRkIGNvZGUgZnJvbSB0aGUgdG9wIG9mCglyZXN0X29mX2NvbXBpbGF0aW9uLCB1cCB0byB0aGUgaW5pdGlhbCBSVEwgZHVtcC4KCSogcGFzc2VzLmMgKHJlc3Rfb2ZfaGFuZGxlX2p1bXApOiBDYWxsIGZpeHVwX3RhaWxfY2FsbHMgYW5kCgljbG9zZSB0aGUgREZJX3NpYmxpbmcgZHVtcCBmaWxlLgoJKHJlc3Rfb2ZfY29tcGlsYXRpb24pOiBEb24ndCBkbyB0aGF0IGhlcmUuICBSZW1vdmUgY29kZSB1cCB0byB0aGUKCWluaXRpYWwgUlRMIGR1bXAuCgkoaW5pdF9vcHRpbWl6YXRpb25fcGFzc2VzKTogUmVtb3ZlLgoJKHBhc3NfcmVzdF9vZl9jb21waWxhdGlvbik6IENoYW5nZSBwYXNzIG5hbWUgdG8gTlVMTC4KCSogdG9wbGV2LmMgKGxhbmdfZGVwZW5kZW50X2luaXQpOiBEbyBub3QgdXNlIGFuIGVtcHR5IGR1bXAgZmlsZSBwcmVmaXguCglEbyBub3QgY2FsbCBpbml0X29wdGltaXphdGlvbl9wYXNzZXMuCgkqIHRvcGxldi5oIChpbml0X29wdGltaXphdGlvbl9wYXNzZXMpOiBSZW1vdmUuCgoJKiBncmFwaC5jIChwcmludF9ydGxfZ3JhcGhfd2l0aF9iYiwgY2xlYW5fZ3JhcGhfZHVtcF9maWxlLAoJZmluaXNoX2dyYXBoX2R1bXBfZmlsZSk6IFJlbW92ZSBTVUZGSVggcGFyYW1ldGVyLgoJKiBncmFwaC5oIChwcmludF9ydGxfZ3JhcGhfd2l0aF9iYiwgY2xlYW5fZ3JhcGhfZHVtcF9maWxlLAoJZmluaXNoX2dyYXBoX2R1bXBfZmlsZSk6IExpa2V3aXNlLgoKCSogdHJlZS1wYXNzLmggKHN0cnVjdCB0cmVlX29wdF9wYXNzKTogQWRkIGBsZXR0ZXInIGZpZWxkLgoJKiBjZmdleHBhbmQuYyAocGFzc19leHBhbmQpOiBBZGp1c3QuCgkqIGdpbXBsZS1sb3cuYyAocGFzc19sb3dlcl9jZiwgcGFzc19yZW1vdmVfdXNlbGVzc192YXJzKTogQWRqdXN0LgoJKiBwYXNzZXMuYyAocGFzc19yZXN0X29mX2NvbXBpbGF0aW9uKTogQWRqdXN0LgoJKiBwcmVkaWN0LmMgKHBhc3NfcHJvZmlsZSk6IEFkanVzdC4KCSogdHJlZS1hbGlhcy1jb21tb24uYyAocGFzc19idWlsZF9wdGEsIHBhc3NfZGVsX3B0YSk6IEFkanVzdC4KCSogdHJlZS1jZmcuYyAocGFzc19idWlsZF9jZmcsIHBhc3NfcmVtb3ZlX3VzZWxlc3Nfc3RtdHMsCglwYXNzX3NwbGl0X2NyaXRfZWRnZXMsIHBhc3Nfd2Fybl9mdW5jdGlvbl9yZXR1cm4pOiBBZGp1c3QuCgkqIHRyZWUtY29tcGxleC5jIChwYXNzX2xvd2VyX3ZlY3Rvcl9zc2EsIHBhc3NfcHJlX2V4cGFuZCk6IEFkanVzdC4KCSogdHJlZS1kZmEuYyAocGFzc19yZWZlcmVuY2VkX3ZhcnMpOiBBZGp1c3QuCgkqIHRyZWUtZWguYyAocGFzc19sb3dlcl9laCk6IEFkanVzdC4KCSogdHJlZS1pZi1jb252LmMgKHBhc3NfYnVpbGRfc3NhKTogQWRqdXN0LgoJKiB0cmVlLWludG8tc3NhLmMgKHBhc3NfYnVpbGRfc3NhKTogQWRqdXN0LgoJKiB0cmVlLW11ZGZsYXAuYyAocGFzc19tdWRmbGFwXzEsIHBhc3NfbXVkZmxhcF8yKTogQWRqdXN0LgoJKiB0cmVlLW5vbXVkZmxhcC5jIChwYXNzX211ZGZsYXBfMSwgcGFzc19tdWRmbGFwXzIpOiBBZGp1c3QuCgkqIHRyZWUtbnJ2LmMgKHBhc3NfbnJ2KTogQWRqdXN0LgoJKiB0cmVlLW9wdGltaXplLmMgKHBhc3NfZ2ltcGxlLCBwYXNzX2FsbF9vcHRpbWl6YXRpb25zLAoJcGFzc19jbGVhbnVwX2NmZ19wb3N0X29wdGltaXppbmcsIHBhc3NfZnJlZV9kYXRhc3RydWN0dXJlcywKCXBhc3NfaW5pdF9kYXRhc3RydWN0dXJlcyk6IEFkanVzdC4KCSogdHJlZS1vdXRvZi1zc2EuYyAocGFzc19kZWxfc3NhKTogQWRqdXN0LgoJKiB0cmVlLXByb2ZpbGUuYyAocGFzc190cmVlX3Byb2ZpbGUpOiBBZGp1c3QuCgkqIHRyZWUtc3JhLmMgKHBhc3Nfc3JhKTogQWRqdXN0LgoJKiB0cmVlLXNzYS1hbGlhcy5jIChwYXNzX21heV9hbGlhcyk6IEFkanVzdC4KCSogdHJlZS1zc2EtY2NwLmMgKHBhc3NfY2NwLCBwYXNzX2ZvbGRfYnVpbHRpbnMpOiBBZGp1c3QuCgkqIHRyZWUtc3NhLWNvcHlyZW5hbWUuYyAocGFzc19yZW5hbWVfc3NhX2NvcGllcyk6IEFkanVzdC4KCSogdHJlZS1zc2EtZGNlLmMgKHBhc3NfZGNlLCBwYXNzX2NkX2RjZSk6IEFkanVzdC4KCSogdHJlZS1zc2EtZG9tLmMgKHBhc3NfZG9taW5hdG9yKTogQWRqdXN0LgoJKiB0cmVlLXNzYS1kc2UuYyAocGFzc19kc2UpOiBBZGp1c3QuCgkqIHRyZWUtc3NhLWZvcndwcm9wLmMgKHBhc3NfZm9yd3Byb3ApOiBBZGp1c3QuCgkqIHRyZWUtc3NhLWlmLWNvbnYuYyAocGFzc19pZl9jb252ZXJzaW9uKTogQWRqdXN0LgoJKiB0cmVlLXNzYS1sb29wLWNoLmMgKHBhc3NfY2gpOiBBZGp1c3QuCgkqIHRyZWUtc3NhLWxvb3AuYyAocGFzc19sb29wLCBwYXNzX2xvb3BfaW5pdCwgcGFzc19saW0sCglwYXNzX2xvb3BfZG9uZSwgcGFzc19jb21wbGV0ZV91bnJvbGwsIHBhc3NfaXZfY2Fub24sCglwYXNzX2l2X29wdGltaXplLCBwYXNzX3ZlY3Rvcml6ZSk6IEFkanVzdC4KCSogdHJlZS1zc2EtcGhpb3B0LmMgKHBhc3NfcGhpb3B0KTogQWRqdXN0LgoJKiB0cmVlLXNzYS1wcmUuYyAocGFzc19wcmUsIHBhc3NfZnJlKTogQWRqdXN0LgoJKiB0cmVlLXNzYS5jIChwYXNzX3JlZHVuZGFudF9waGksIHBhc3NfZWFybHlfd2Fybl91bmluaXRpYWxpemVkLAoJcGFzc19sYXRlX3dhcm5fdW5pbm5pdGlhbGl6ZWQpOiBBZGp1c3QuCgkqIHRyZWUtdGFpbGNhbGwuYyAocGFzc190YWlsX3JlY3Vyc2lvbiwgcGFzc190YWlsX2NhbGxzKTogQWRqdXN0LgoKCSogTWFrZWZpbGUuaW4gKHRyZWUtZHVtcC5vKTogQWRkIG5ldyBkZXBlbmRlbmNpZXMuCgkqIGNncmFwaC5jIChjZ3JhcGhfcmVtb3ZlX25vZGUpOiBUREZfYWxsIC0+IFRERl90cmVlX2FsbC4KCSogY2dyYXBodW5pdC5jIChjZ3JhcGhfcHJlc2VydmVfZnVuY3Rpb25fYm9keV9wLCBjZ3JhcGhfb3B0aW1pemUpOgoJTGlrZXdpc2UuCgkqIHRvcGxldi5jIChkdW1wX2ZpbGVfbmFtZSk6IE5ldy4KCSogdHJlZS1kdW1wLmMgKGR1bXBfZW5hYmxlX2FsbCk6IEFkZCBMRVRURVIgcGFyYW1ldGVyLgoJKHN0cnVjdCBkdW1wX2ZpbGVfaW5mbyk6IEFkZCBOVU0gYW5kIExFVFRFUiBmaWVsZHMuCgkoZHVtcF9maWxlcyk6IEFkanVzdCBhbmQgYWRkIFJUTCBkdW1wIGZpbGVzLgoJKGR1bXBfcmVnaXN0ZXIpOiBBZGQgTlVNIGFuZCBMRVRURVIgZmllbGRzLgoJKGdldF9kdW1wX2ZpbGVfbmFtZSwgZHVtcF9pbml0aWFsaXplZF9wLCBlbmFibGVfcnRsX2R1bXBfZmlsZSk6IE5ldy4KCShkdW1wX2JlZ2luKTogVXNlIGdldF9kdW1wX2ZpbGVfbmFtZS4KCShkdW1wX3N3aXRjaF9wXzEpOiBBZGp1c3QgY2FsbCB0byBkdW1wX2VuYWJsZV9hbGwuCgkqIHRyZWUtZHVtcC5oIChkdW1wX3JlZ2lzdGVyKTogQWRqdXN0IHByb3RvdHlwZS4KCSogdHJlZS1vcHRpbWl6ZS5jIChyZWdpc3Rlcl9vbmVfZHVtcF9maWxlKTogVGFrZSBkdW1wIGZpbGUgaW5kZXguCglTdXBwb3J0IGZsYWdzIGZvciBSVEwgZHVtcHMuCgkocmVnaXN0ZXJfZHVtcF9maWxlcyk6IEZpbGwgaW4gTlVNIGZpZWxkIG9mIHN0cnVjdCBkdW1wX2ZpbGVfaW5mby4KCVRyYWNrIHByb3BlcnRpZXMgYm90aCB3aGVuIHRoZSBnYXRlIGlzIGV4ZWN1dGVkIGFuZCB3aGVuIGl0IGlzIG5vdC4KCShleGVjdXRlX3RvZG8pOiBEdW1wIFJUTC4gIEFkZCBQUk9QRVJUSUVTIHBhcmFtZXRlci4KCShleGVjdXRlX29uZV9wYXNzKTogUGFzcyBwcm9wZXJ0aWVzIHRvIGV4ZWN1dGVfdG9kby4gIEhhbmRsZSBWQ0cKCWR1bXBzIG9mIFJUTC4KCSogdHJlZS1wYXNzLmggKGR1bXBfZmlsZV9uYW1lKTogTmV3LgoJKiB0cmVlLmggKFRERl9UUkVFLCBUREZfUlRMLCBnZXRfZHVtcF9maWxlX25hbWUsIGR1bXBfaW5pdGlhbGl6ZWRfcCk6CglOZXcuCgoJKiBNYWtlZmlsZS5pbiAocGFzc2VzLm8pOiBBZGQgbmV3IGRlcGVuZGVuY2llcy4KCSogcGFzc2VzLmMgKHN0cnVjdCBkdW1wX2ZpbGVfaW5mbywgZW51bSBkdW1wX2ZpbGVfaW5kZXgsCglkdW1wX2ZpbGVfdGJsLCBpbml0X29wdGltaXphdGlvbl9wYXNzZXMpOiBSZW1vdmUuCgkob3Blbl9kdW1wX2ZpbGUsIGNsb3NlX2R1bXBfZmlsZSk6IFVzZSB0cmVlLWR1bXBpbmcgaW5mcmFzdHJ1Y3R1cmUuCgkocmVzdF9vZl9oYW5kbGVfbmV3X3JlZ2FsbG9jLCByZXN0X29mX2hhbmRsZV9vbGRfcmVnYWxsb2MpOiBVc2UKCWR1bXBfZW5hYmxlZF9wLgoJKGZpbmlzaF9vcHRpbWl6YXRpb25fcGFzc2VzKTogVXBkYXRlIGZpbmlzaF9ncmFwaF9kdW1wX2ZpbGUgbG9vcC4KCShlbmFibGVfcnRsX2R1bXBfZmlsZSk6IFJlbW92ZS4KCSogdHJlZS1kdW1wLmMgKGR1bXBfZmlsZXMpOiBBZGp1c3QgYW5kIGFkZCBSVEwgZHVtcCBmaWxlcy4KCShlbmFibGVfcnRsX2R1bXBfZmlsZSk6IEFkZCBoZXJlLgoJKiB0cmVlLmggKGVudW0gdHJlZV9kdW1wX2luZGV4KTogQWRkIFJUTCBkdW1wIGZpbGUgaW5kaWNlcy4KCSogZG9jL2ludm9rZS50ZXhpIChEZWJ1Z2dpbmcgb3B0aW9ucyk6IERvY3VtZW50IG5ldyBSVEwgZGVidWdnaW5nCglvcHRpb25zLiAgVXBkYXRlLgoKMjAwNC0wOS0wNSAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGMtY29tbW9uLmMsIGMtZGVjbC5jLCBjb21iaW5lLmMsIGRlZmF1bHRzLmgsIGZvbGQtY29uc3QuYywKCWdpbXBsaWZ5LmMsIGd0aHItbmtzLmgsIGhvb2tzLmMsIGxhbWJkYS1jb2RlLmMsIGxhbWJkYS1tYXQuYywKCXN0b3ItbGF5b3V0LmMsIHRhcmdldC5oLCB0cmVlLWNmZy5jLCB0cmVlLWNocmVjLmMsCgl0cmVlLWlmLWNvbnYuYywgdHJlZS1pbmxpbmUuYywgdHJlZS1pbnRvLXNzYS5jLAoJdHJlZS1tdWRmbGFwLmMsIHRyZWUtb3B0aW1pemUuYywgdHJlZS1zY2FsYXItZXZvbHV0aW9uLmMsCgl0cmVlLXNzYS1hbGlhcy5jLCB0cmVlLXNzYS1jY3AuYywgdHJlZS1zc2EtZGNlLmMsCgl0cmVlLXNzYS1wcmUuYywgdHJlZS12ZWN0b3JpemVyLmMsIHRyZWUtdmVjdG9yaXplci5oLCB0cmVlLmgsCgl2ZWMuaDogRml4IGNvbW1lbnQgZm9ybWF0dGluZy4KCjIwMDQtMDktMDUgIEthenUgSGlyYXRhICA8a2F6dUBjcy51bWFzcy5lZHU+CgoJKiBjLWNvbW1vbi5jLCBjZmdleHBhbmQuYywgY2dyYXBodW5pdC5jLCBkZWZhdWx0cy5oLAoJZXQtZm9yZXN0LmMsIGV4cHIuYywgZ2ltcGxpZnkuYywgZ2xvYmFsLmMsIGd0aHItbHlueC5oLAoJaGFyZC1yZWctc2V0LmgsIG1vZHVsby1zY2hlZC5jLCBvcHRhYnMuYywgcG9zdHJlbG9hZC1nY3NlLmMsCgl0cmVlLWRhdGEtcmVmLmMsIHRyZWUtZmxvdy5oLCB0cmVlLWlmLWNvbnYuYywgdHJlZS1pbmxpbmUuYywKCXRyZWUtc3JhLmMsIHRyZWUtc3NhLWxvb3AtaW0uYywgdHJlZS1zc2EtbG9vcC1pdm9wdHMuYywKCXRyZWUtc3NhLWxvb3Atbml0ZXIuYywgdHJlZS1zc2Etb3BlcmFuZHMuYywKCXRyZWUtc3NhLW9wZXJhbmRzLmgsIHRyZWUtc3NhLXByb3BhZ2F0ZS5jLAoJdHJlZS1zc2EtcHJvcGFnYXRlLmgsIHRyZWUtc3NhLXRocmVhZHVwZGF0ZS5jLCB2YWx1ZS1wcm9mLmMsCgl2ZWMuYywgdmVjLmg6IEZpeCBjb21tZW50IHR5cG9zLiAgRm9sbG93IHNwZWxsaW5nIGNvbnZlbnRpb25zLgoKMjAwNC0wOS0wNSAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLWlmLWNvbnYuYyAoZ2F0ZV90cmVlX2lmX2NvbnZlcnNpb24pOiBFbmFibGUgb25seSBpZiB0aGUKCXZlY3Rvcml6ZXIgaXMgZW5hYmxlZC4KCjIwMDQtMDktMDUgIEFuZHJlYXMgSmFlZ2VyICA8YWpAc3VzZS5kZT4KCgkqIHRyZWUtaWYtY29udi5jOiBTcGVsbCBjaGVjayBjb21tZW50cyBhbmQgY2xlYW4gdXAgd2hpdGVzcGFjZS4KCjIwMDQtMDktMDUgIFpkZW5layBEdm9yYWsgIDxyYWtkdmVyQGF0cmV5Lmthcmxpbi5tZmYuY3VuaS5jej4KCgkqIHRyZWUtc3NhLWxvb3AtaXZvcHRzLmM6IE5ldyBmaWxlLgoJKiBNYWtlZmlsZS5pbiAodHJlZS1zc2EtbG9vcC1pdm9wdHMuYyk6IEFkZC4KCSogY2ZnbG9vcC5oICh0YXJnZXRfYXZhaWxfcmVncywgdGFyZ2V0X3Jlc19yZWdzLCB0YXJnZXRfc21hbGxfY29zdCwKCXRhcmdldF9wcmVzX2Nvc3QsIHRhcmdldF9zcGlsbF9jb3N0KTogRGVjbGFyZS4KCSogY2ZnbG9vcGFuYWwuYyAoYXZhaWxfcmVncywgcmVzX3JlZ3MsIHNtYWxsX2Nvc3QsIHByZXNfY29zdCwKCXNwaWxsX2Nvc3QpOiBSZW5hbWVkIHRvIC4uLgoJKHRhcmdldF9hdmFpbF9yZWdzLCB0YXJnZXRfcmVzX3JlZ3MsIHRhcmdldF9zbWFsbF9jb3N0LAoJdGFyZ2V0X3ByZXNfY29zdCwgdGFyZ2V0X3NwaWxsX2Nvc3QpOiAuLi4gYW5kIGV4cG9ydGVkLgoJKGluaXRfc2V0X2Nvc3RzLCBnbG9iYWxfY29zdF9mb3Jfc2l6ZSk6IFdvcmsgd2l0aCByZW5hbWVkIHZhcmlhYmxlcy4KCSogY29tbW9uLm9wdCAoZmxhZ19pdm9wdHMpOiBOZXcgZmxhZy4KCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEpOiBIYW5kbGUgU1NBX05BTUUgY2FzZS4gIEhhbmRsZQoJUkVGX09SSUdJTkFMLgoJKiBnaW1wbGlmeS5jIChzdHJ1Y3QgZ2ltcGxpZnlfY3R4KTogQWRkIGludG9fc3NhIGZpZWxkLgoJKGludGVybmFsX2dldF90bXBfdmFyLCBnaW1wbGlmeV9tb2RpZnlfZXhwciwgZ2ltcGxpZnlfZXhwcik6IFN1cHBvcnQKCWdlbmVyYXRpbmcgU1NBIGZvcm0uCgkoZm9yY2VfZ2ltcGxlX29wZXJhbmQpOiBOZXcgZnVuY3Rpb24uCgkqIHRpbWV2YXIuZGVmIChUVl9UUkVFX0xPT1BfSVZPUFRTKTogTmV3IHRpbWV2YXIuCgkqIHRyZWUtY2ZnLmMgKHN0bXRfYnNpKTogTmV3IGZ1bmN0aW9uLgoJKiBwYXJhbXMuZGVmIChQQVJBTV9JVl9DT05TSURFUl9BTExfQ0FORElEQVRFU19CT1VORCwKCVBBUkFNX0lWX01BWF9DT05TSURFUkVEX1VTRVMpOiBOZXcuCgkqIHRyZWUtZmxvdy5oIChzdG10X2JzaSwgdHJlZV9zc2FfaXZfb3B0aW1pemUsIHNwbGl0X2xvb3BfZXhpdF9lZGdlLAoJYnNpX2luc2VydF9vbl9lZGdlX2ltbWVkaWF0ZV9sb29wLiBzdGFuZGFyZF9pdl9pbmNyZW1lbnRfcG9zaXRpb24sCglpcF9lbmRfcG9zLCBpcF9ub3JtYWxfcG9zLCBmb3JjZV9naW1wbGVfb3BlcmFuZCk6IERlY2xhcmUuCgkqIHRyZWUtZ2ltcGxlLmMgKGlzX2dpbXBsZV9mb3JtYWxfdG1wX3Zhcik6IEFjY2VwdCBzc2EgbmFtZXMuCgkqIHRyZWUtbmVzdGVkLmMgKGJ1aWxkX2FkZHIpOiBFeHBvcnQuCgkqIHRyZWUtb3B0aW1pemUuYyAoaW5pdF90cmVlX29wdGltaXphdGlvbl9wYXNzZXMpOiBBZGQKCXBhc3NfaXZfb3B0aW1pemUuCgkqIHRyZWUtcGFzcy5oIChwYXNzX2l2X29wdGltaXplKTogRGVjbGFyZS4KCSogdHJlZS1zc2EtbG9vcC1pbS5jIChmb3JfZWFjaF9pbmRleCk6IEhhbmRsZSBSRUFMUEFSVF9FWFBSIGFuZAoJSU1BR1BBUlRfRVhQUi4KCSogdHJlZS1zc2EtbG9vcC1tYW5pcC5jIChjcmVhdGVfaXYpOiBGb3JjZSB0aGUgYmFzZSB0byBiZSBhY2NlcHRhYmxlCglhcyBhIHBoaSBub2RlIGFyZ3VtZW50LgoJKHNwbGl0X2xvb3BfZXhpdF9lZGdlLCBic2lfaW5zZXJ0X29uX2VkZ2VfaW1tZWRpYXRlX2xvb3AsCglpcF9lbmRfcG9zLCBpcF9ub3JtYWxfcG9zLCBzdGFuZGFyZF9pdl9pbmNyZW1lbnRfcG9zaXRpb24pOiBOZXcKCWZ1bmN0aW9ucy4KCSogdHJlZS1zc2EtbG9vcC1uaXRlci5jICh6ZXJvX3AsIHVuc2lnbmVkX3R5cGVfZm9yKTogRXhwb3J0LgoJKiB0cmVlLXNzYS1sb29wLmMgKHRyZWVfc3NhX2xvb3BfaXZvcHRzLCBnYXRlX3RyZWVfc3NhX2xvb3BfaXZvcHRzLAoJcGFzc19pdl9vcHRpbWl6ZSk6IE5ldyBwYXNzLgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChnZXRfaW5kaXJlY3RfcmVmX29wZXJhbmRzKTogSGFuZGxlIFJFRl9PUklHSU5BTC4KCSogdHJlZS1zc2FuYW1lcy5jIChyZWxlYXNlX3NzYV9uYW1lKTogQWxsb3cgY2FsbGluZyB3aXRoIHZhciA9IE5VTEwuCgkqIHRyZWUuYyAoYnVpbGRfaW50X2NzdF90eXBlLCBjc3RfYW5kX2ZpdHNfaW5faHdpKTogTmV3IGZ1bmN0aW9ucy4KCSogdHJlZS5oIChSRUZfT1JJR0lOQUwpOiBOZXcgbWFjcm8uCgkoYnVpbGRfaW50X2NzdF90eXBlLCB1bnNpZ25lZF90eXBlX2ZvciwgemVyb19wLAoJY3N0X2FuZF9maXRzX2luX2h3aSwgYnVpbGRfYWRkcik6IERlY2xhcmUuCgkqIGRvYy9pbnZva2UudGV4aSAoLWZpdm9wdHMpOiBEb2N1bWVudC4KCShQQVJBTV9JVl9DT05TSURFUl9BTExfQ0FORElEQVRFU19CT1VORCwKCVBBUkFNX0lWX01BWF9DT05TSURFUkVEX1VTRVMpOiBEb2N1bWVudC4KCSogZG9jL3Bhc3Nlcy50ZXhpOiBEb2N1bWVudCBpbmR1Y3Rpb24gdmFyaWFibGUgb3B0aW1pemF0aW9ucyBwYXNzLgoKMjAwNC0wOS0wNCAgS2F2ZWggUi4gR2hhemkgIDxnaGF6aUBjYWlwLnJ1dGdlcnMuZWR1PgoKCSogYnVpbHRpbi1hdHRycy5kZWYgKEFUVFJfTk9USFJPV19TRU5USU5FTF8xKTogTmV3LgoJKiBidWlsdGlucy5kZWYgKEJVSUxUX0lOX0VYRUNMRSk6IFNldCBBVFRSX05PVEhST1dfU0VOVElORUxfMS4KCSogYy1jb21tb24uYyAoY19jb21tb25fYXR0cmlidXRlX3RhYmxlKTogQWNjZXB0IHBhcmFtZXRlcnMgdG8KCXNlbnRpbmVsIGF0dHJpYnV0ZS4KCShjaGVja19mdW5jdGlvbl9zZW50aW5lbCwgaGFuZGxlX3NlbnRpbmVsX2F0dHJpYnV0ZSk6IExpa2V3aXNlLgoJKiBkb2MvZXh0ZW5kLnRleGk6IFVwZGF0ZSBhY2NvcmRpbmdseS4KCjIwMDQtMDktMDQgIEthdmVoIFIuIEdoYXppICA8Z2hhemlAY2FpcC5ydXRnZXJzLmVkdT4KCgkqIGJ1aWx0aW4tYXR0cnMuZGVmIChBVFRSX1NFTlRJTkVMLCBBVFRSX1NFTlRJTkVMX05PVEhST1dfTElTVCk6CglOZXcuCgkqIGJ1aWx0aW5zLmRlZiAoQlVJTFRfSU5fRVhFQ0wsIEJVSUxUX0lOX0VYRUNMUCk6IEFkZCBgc2VudGluZWwnCglhdHRyaWJ1dGUuCgkqIGMtY29tbW9uLmMgKGhhbmRsZV9zZW50aW5lbF9hdHRyaWJ1dGUsIGNoZWNrX2Z1bmN0aW9uX3NlbnRpbmVsKToKCU5ldyBmdW5jdGlvbnMuCgkoY19jb21tb25fYXR0cmlidXRlX3RhYmxlKTogQWRkIGBzZW50aW5lbCcgYXR0cmlidXRlLgoJKGNoZWNrX2Z1bmN0aW9uX2FyZ3VtZW50cyk6IEhhbmRsZSBgc2VudGluZWwnIGF0dHJpYnV0ZS4KCSogZG9jL2V4dGVuZC50ZXhpOiBEb2N1bWVudCBgc2VudGluZWwnIGF0dHJpYnV0ZS4KCjIwMDQtMDktMDQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgoyMDA0LTA5LTA0ICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogZ2ltcGxpZnkuYyAoaW50ZXJuYWxfZ2V0X3RtcF92YXIpOiBSZW1vdmUgdW51c2VkIHZhciBDTEFTUy4KCgkqIHRyZWUuYyAoc2F2ZV9leHByKTogTm8gbG9uZ2VyIFRSRUVfUkVBRE9OTFkuCgoyMDA0LTA5LTA0ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBwYXNzZXMuYyAocmVzdF9vZl9jbGVhbl9zdGF0ZSk6ICBGaXggbWVyZ2UgY29uZmxpY3QgbWFkZSBkdXJpbmcKCWNvbW1pdGluZyB0aGUgcGF0Y2guCgoyMDA0LTA5LTA0ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBwYXNzZXMuYyAocmVzdF9vZl9jbGVhbl9zdGF0ZSk6ICBEZWNvbXBvc2UgdGhlIGluc3RydWN0aW9uIHN0cmVhbS4KCjIwMDQtMDktMDQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGRvYy9tZC50ZXhpIChzaGlmdCBwYXR0ZXJucyk6IE5ldyBhbmNob3IuICBBZGQgcmVmZXJlbmNlIHRvCglUQVJHRVRfU0hJRlRfVFJVTkNBVElPTl9NQVNLLgoJKiBkb2MvdG0udGV4aSAoVEFSR0VUX1NISUZUX1RSVU5DQVRJT05fTUFTSyk6IERvY3VtZW50LgoJKiB0YXJnZXQuaCAoc2hpZnRfdHJ1bmNhdGlvbl9tYXNrKTogTmV3IHRhcmdldCBob29rLgoJKiB0YXJnaG9vay5oIChkZWZhdWx0X3NoaWZ0X3RydW5jYXRpb25fbWFzayk6IERlY2xhcmUuCgkqIHRhcmdob29rLmMgKGRlZmF1bHRfc2hpZnRfdHJ1bmNhdGlvbl9tYXNrKTogRGVmaW5lLgoJKiB0YXJnZXQtZGVmLmggKFRBUkdFVF9TSElGVF9UUlVOQ0FUSU9OX01BU0spOiBEZWZpbmUuCgkoVEFSR0VUX0lOSVRJQUxJWkVSKTogSW5jbHVkZSBpdC4KCSogc2ltcGxpZnktcnR4LmMgKHNpbXBsaWZ5X2JpbmFyeV9vcGVyYXRpb24pOiBDb21iaW5lIEFTSElGVCwgQVNISUZUUlQKCWFuZCBMU0hJRlRSVCBjYXNlcy4gIFRydW5jYXRlIGFyZzEgaWYgU0hJRlRfQ09VTlRfVFJVTkNBVEVELCBvdGhlcndpc2UKCXJlamVjdCBhbGwgb3V0LW9mLXJhbmdlIHZhbHVlcy4gIEZpeCBzaWduLWV4dGVuc2lvbiBjb2RlIGZvciBtb2RlcwoJd2hvc2Ugd2lkdGggaXMgc21hbGxlciB0aGFuIEhPU1RfQklUU19QRVJfV0lERV9JTlQuCgkqIG9wdGFicy5jIChzaW1wbGlmeV9leHBhbmRfYmlub3AsIGZvcmNlX2V4cGFuZF9iaW5vcCk6IE5ldyBmdW5jdGlvbnMuCgkoZXhwYW5kX3N1cGVyd29yZF9zaGlmdCwgZXhwYW5kX3N1YndvcmRfc2hpZnQpOiBMaWtld2lzZS4KCShleHBhbmRfZG91Ymxld29yZF9zaGlmdF9jb25kbW92ZSwgZXhwYW5kX2RvdWJsZXdvcmRfc2hpZnQpOiBMaWtld2lzZS4KCShleHBhbmRfYmlub3ApOiBVc2UgdGhlbSB0byBpbXBsZW1lbnQgZG91YmxlLXdvcmQgc2hpZnRzLgoJKiBjb25maWcvYXJtL2FybS5jIChhcm1fc2hpZnRfdHJ1bmNhdGlvbl9tYXNrKTogTmV3IGZ1bmN0aW9uLgoJKFRBUkdFVF9TSElGVF9UUlVOQ0FUSU9OX01BU0spOiBEZWZpbmUuCgoyMDA0LTA5LTA0ICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiB0cmVlLmMgKGl0ZXJhdGVfaGFzaF9leHByKTogT3B0aW1pemUsIGF2b2lkIHVzZSBvZiBpdGVyYXRpdmVfaGFzaF9vYmplY3QuCgkobWl4KTogTmV3IG1hY3JvIGNvcGllZCBmcm9tIGhhc2h0YWIuYwoJKGl0ZXJhdGl2ZV9oYXNoX2hhc2h2YWxfdCwgaXRlcmF0aXZlX2hhc2hfcG9pbnRlciwKCWl0ZXJhdGl2ZV9oYXNoX2hvc3Rfd2lkZV9pbnQpOiBOZXcgZnVuY3Rpb25zIGJhc2VkIG9uIGhhc2h0YWIuYwoJaW1wbGVtZW50YXRpb24uCgoyMDA0LTA5LTA0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChtYXNrKTogTmV3IG1vZGUgYXR0cmlidXRlLgoJKHplcm9fZXh0ZW5kc2lkaTIpOiBBZGQgbWVtb3J5IGFsdGVybmF0aXZlLgoJKCp6ZXJvX2V4dGVuZHNpZGkyX21lbSk6IERlbGV0ZS4KCSh6ZXJvX2V4dGVuZFtxaF1pW3NkXWkyKTogUmVkZWZpbmUgdXNpbmcgOkdQUiBhbmQgOlNIT1JULiAgVXNlCgltZW1vcnlfb3BlcmFuZCBpbiB0aGUgVEFSR0VUX01JUFMxNiBjaGVjay4KCSgqemVyb19leHRlbmRbcWhdaVtzZF1pMnssX21pcHMxNn0pOiBOYW1lIHByZXZpb3VzbHkgdW5uYW1lZCBwYXR0ZXJucy4KCVJlZGVmaW5lIHVzaW5nIDpHUFIgYW5kIDpTSE9SVC4KCSh6ZXJvX2V4dGVuZHFpaGkyKTogVXNlIG1lbW9yeV9vcGVyYW5kIGluIHRoZSBUQVJHRVRfTUlQUzE2IGNoZWNrLgoKMjAwNC0wOS0wNCAgVXJvcyBCaXpqYWsgIDx1cm9zQGtzcy1sb2thLnNpPgoKCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fbWF0aGZuKTogSGFuZGxlIEJVSUxUX0lOX1JJTlR7LEYsTH0KCXVzaW5nIHJpbnRfb3B0YWIuCgkoZXhwYW5kX2J1aWx0aW4pOiBFeHBhbmQgQlVJTFRfSU5fUklOVHssRixMfSB1c2luZwoJZXhwYW5kX2J1aWx0aW5fbWF0aGZuLgoJKiBnZW5vcGluaXQuYyAob3B0YWJzKTogUmVuYW1lIHRydW5jX29wdGFiIHRvIGJ0cnVuY19vcHRhYi4gVXNlCglidHJ1bmM/ZiBwYXR0ZXJucyBmb3IgYnRydW5jX29wdGFiLiBJbXBsZW1lbnQgcmludF9vcHRhYiB1c2luZwoJcmludD9mIHBhdHRlcm5zLgoJKiBvcHRhYnMuYyAoaW5pdF9vcHRhYnMpOiBJbml0aWFsaXplIHJpbnRfb3B0YWIuCgkqIG9wdGFicy5oIChlbnVtIG9wdGFiX2luZGV4KTogUmVuYW1lIE9USV90cnVuYyB0byBPVElfYnRydW5jLgoJQWRkIG5ldyBPVElfcmludC4KCShidHJ1bmNfb3B0YWIpOiBSZW5hbWUgbWFjcm8gZnJvbSB0cnVuY19vcHRhYi4KCShyaW50X29wdGFiKTogRGVmaW5lIGNvcnJlc3BvbmRpbmcgbWFjcm8uCgoJKiByZWctc3RhY2suYyAoc3Vic3Rfc3RhY2tfcmVnc19wYXQpOiBIYW5kbGUgVU5TUEVDX0ZSTkRJTlRfRkxPT1IsCglVTlNQRUNfRlJORElOVF9DRUlMLCBVTlNQRUNfRlJORElOVF9UUlVOQywgVU5TUEVDX0ZSTkRJTlRfTUFTS19QTS4KCgkqIGNvbmZpZy9pMzg2L2kzODYtcHJvdG9zLmggKGVtaXRfaTM4N19jd19pbml0aWFsaXphdGlvbik6CglDaGFuZ2UgcHJvdG90eXBlLiBBZGQgbmV3IGludCBwYXJhbWV0ZXIuCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoZW1pdF9pMzg3X2N3X2luaXRpYWxpemF0aW9uKToKCUhhbmRsZSBuZXcgcm91bmRpbmcgbW9kZXMuCgoJKiBjb25maWcvaTM4Ni9pMzg2LmggKGVudW0gZnBfY3dfbW9kZSk6IERlbGV0ZS4KCShNT0RFX05FRURFRCk6IEhhbmRsZSBuZXcgcm91bmRpbmcgbW9kZXMuCgkoRU1JVF9NT0RFX1NFVCk6IENoYW5nZSBjb25kaXRpb24gdG8gaGFuZGxlIG5ldyByb3VuZGluZyBtb2Rlcy4KCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKFVOU1BFQ19GUk5ESU5UX0ZMT09SLCBVTlNQRUNfRlJORElOVF9DRUlMLAoJVU5TUEVDX0ZSTkRJTlRfVFJVTkMsIFVOU1BFQ19GUk5ESU5UX01BU0tfUE0pOiBOZXcgdW5zcGVjcyB0bwoJcmVwcmVzZW50IGRpZmZlcmVudCByb3VuZGluZyBtb2RlcyBvZiBmcm5kaW50IGluc24uCgkodHlwZSk6IEFkZCBmcm5kaW50IHR5cGUuCgkoaTM4NywgbGVuZ3RoLCBtZW1vcnkpOiBIYW5kbGUgdGhpcyB0eXBlLgoJKGkzODdfY3cpOiBOZXcgYXR0cmlidXRlIGRlZmluaXRpb24uCgkoKmZpeF90cnVuY2RpXzEsIGZpeF90cnVuY2RpX25vbWVtb3J5LCBmaXhfdHJ1bmNkaV9tZW1vcnksCgkqZml4X3RydW5jc2lfMSwgZml4X3RydW5jc2lfbm9tZW1vcnksIGZpeF90cnVuY3NpX21lbW9yeSwKCSpmaXhfdHJ1bmNoaV8xLCBmaXhfdHJ1bmNoaV9ub21lbW9yeSwgZml4X3RydW5jaGlfbWVtb3J5KToKCUFkZCAiaTM4N19jdyIgYXR0cmlidXRlIGRlZmluZWQgdG8gInRydW5jIi4KCSh4ODZfZm5zdGN3XzEpOiBSZW1vdmUgY29tbWVudC4KCSgqZnJuZGludHhmMik6IFJlbmFtZSBpbnNuIGRlZmluaXRpb24gdG8gZnJuZGludHhmMi4gTW92ZQoJaW5zbiBkZWZpbml0aW9uIG5lYXIgcmludD9mMiBleHBhbmRlcnMuCgkocmludGRmMiwgcmludHNmMiwgcmludHhmMik6IE5ldyBleHBhbmRlcnMgdG8gaW1wbGVtZW50IHJpbnQsCglyaW50ZiBhbmQgcmludGwgYnVpbHQtaW5zIGFzIGlubGluZSB4ODcgaW50cmluc2ljcy4KCShmcm5kaW50eGYyX2Zsb29yKTogTmV3IHBhdHRlcm4gdG8gaW1wbGVtZW50IGZsb29yIHJvdW5kaW5nCgltb2RlIHdpdGggZnJuZGludCB4ODcgaW5zdHJ1Y3Rpb24uCgkoZmxvb3JkZjIsIGZsb29yc2YyLCBmbG9vcnhmMik6IE5ldyBleHBhbmRlcnMgdG8gaW1wbGVtZW50IGZsb29yLAoJZmxvb3JmIGFuZCBmbG9vcmwgYnVpbHQtaW5zIGFzIGlubGluZSB4ODcgaW50cmluc2ljcy4KCShmcm5kaW50eGYyX2NlaWwpOiBOZXcgcGF0dGVybiB0byBpbXBsZW1lbnQgY2VpbCByb3VuZGluZwoJbW9kZSB3aXRoIGZybmRpbnQgeDg3IGluc3RydWN0aW9uLgoJKGNlaWxkZjIsIGNlaWxzZjIsIGNlaWx4ZjIpOiBOZXcgZXhwYW5kZXJzIHRvIGltcGxlbWVudCBjZWlsLAoJY2VpbGYgYW5kIGNlaWxsIGJ1aWx0LWlucyBhcyBpbmxpbmUgeDg3IGludHJpbnNpY3MuCgkoZnJuZGludHhmMl90cnVuYyk6IE5ldyBwYXR0ZXJuIHRvIGltcGxlbWVudCB0cnVuYyByb3VuZGluZwoJbW9kZSB3aXRoIGZybmRpbnQgeDg3IGluc3RydWN0aW9uLgoJKGJ0cnVuY2RmMiwgYnRydW5jc2YyLCBidHJ1bmN4ZjIpOiBOZXcgZXhwYW5kZXJzIHRvIGltcGxlbWVudCB0cnVuYywKCXRydW5jZiBhbmQgdHJ1bmNsIGJ1aWx0LWlucyBhcyBpbmxpbmUgeDg3IGludHJpbnNpY3MuCgkoZnJuZGludHhmMl9tYXNrX3BtKTogTmV3IHBhdHRlcm4gdG8gaW1wbGVtZW50IHJvdW5kaW5nCgltb2RlIHdpdGggZXhjZXB0aW9ucyB3aXRoIGZybmRpbnQgeDg3IGluc3RydWN0aW9uLgoJKG5lYXJieWludGRmMiwgbmVhcmJ5aW50c2YyLCBuZWFyYnlpbnR4ZjIpOiBOZXcgZXhwYW5kZXJzIHRvCglpbXBsZW1lbnQgbmVhcmJ5aW50LCBuZWFyYnlpbnRmIGFuZCBuZWFyYnlpbnRsIGJ1aWx0LWlucyBhcwoJaW5saW5lIHg4NyBpbnRyaW5zaWNzLgoKMjAwNC0wOS0wNCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5tZCAoU0hPUlQpOiBOZXcgbW9kZSBtYWNyby4KCShzaXplKTogTmV3IG1vZGUgYXR0cmlidXRlLgoJKGV4dGVuZFtxaF1pW3NkXWkyKTogUmVkZWZpbmUgdXNpbmcgOkdQUiBhbmQgOlNIT1JULgoJKCpleHRlbmRbcWhdaVtzZF1pMik6IE5ldyBkZWZpbmVfaW5zbl9hbmRfc3BsaXQsIGNvbWJpbmluZyBwcmV2aW91cwoJKmV4dGVuZFtxaF1pW3NkXWkyIGFuZCAqZXh0ZW5kW3FoXWlbc2RdaTJfbWVtIHBhdHRlcm5zLiAgVXNlIG9ubHkgaWYKCSFJU0FfSEFTX1NFQl9TRUguCgkoKmV4dGVuZFtxaF1pW3NkXWkyX3NlW2JoXSk6IE5ldyBwYXR0ZXJuLCBjb21iaW5pbmcgcHJldmlvdXMKCSpleHRlbmRbcWhdaXNpMl9odyBwYXR0ZXJucyBhbmQgZXh0ZW5kaW5nIHRoZW0gdG8gZGkuCgkoZXh0ZW5kcWloaTIpOiBJbXBsZW1lbnQgYXMgZGVmaW5lX2luc25fYW5kX3NwbGl0IHRoYXQgcHJvZHVjZXMKCWV4dGVuZHFpc2kyIGFmdGVyIHJlbG9hZC4KCjIwMDQtMDktMDMgIERldmFuZyBQYXRlbCAgPGRwYXRlbEBhcHBsZS5jb20+CgoJKiBNYWtlZmlsZS5pbiAoT0JKUy1jb21tb24pOiBBZGQgdHJlZS1pZi1jb252Lm8KCSh0cmVlLWlmLWNvbnYubyk6IE5ldyBydWxlLgoJKiBjZmdsb29wLmMgKGZsb3dfbG9vcF9leGl0X2VkZ2VzX2ZpbmQpOiBTZXQgRURHRV9MT09QX0VYSVQgZmxhZy4KCShnZXRfbG9vcF9ib2R5X2luX2Jmc19vcmRlcik6IE5ldy4KCSogY2ZnbG9vcC5oIChnZXRfbG9vcF9ib2R5X2luX2Jmc19vcmRlcik6IE5ldy4KCSogdHJlZS1mbG93LmggKGVudW0gbW92ZV9wb3MpOiBNb3ZlIGhlcmUgZnJvbSAuLgoJKiB0cmVlLXNzYS1sb29wLWltLmMgKGVudW0gbW92ZV9wb3MpOiBoZXJlLgoJKG1vdmVtZW50X3Bvc3NpYmlsaXR5KTogTWFrZSBleHRlcm5hbGx5IHZpc2libGUuCgkqIHRyZWUtb3B0aW1pemUuYyAoaW5pdF90cmVlX29wdGltaXphdGlvbl9wYXNzZXMpOiBOZXcgZW50cnkgZm9yCglpZiBjb252ZXJzaW9uIHBhc3MuCgkqIHRyZWUtcGFzcy5oIChwYXNzX2lmX2NvbnZlcnNpb24pOiBOZXcuCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGdldF9leHByX29wZXJhbmRzKTogSGFuZGxlIENPTkRfRVhQUi4KCSogdHJlZS1pZi1jb252LmM6IE5ldyBmaWxlLgoJKiBkb2MvcGFzc2VzLnRleGk6IERvY3VtZW50IHRyZWUgaWYtY29udmVyc2lvbiBwYXNzLgoJKiBkb2MvdHJlZS1zc2EudGV4aTogU2FtZS4KCjIwMDQtMDktMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiB0YXJnZXQvMTQ5MjU6CglNYWtlZmlsZS5pbiAoTElCMkFEREVIU1RBVElDKTogTmV3LgoJKExJQjJBRERFSFNIQVJFRCk6IE5ldy4KCShMSUJVTldJTkQpOiBOZXcuCgkoTElCVU5XSU5EREVQKTogTmV3LgoJKFNITElCVU5XSU5EX0xJTkspOiBOZXcuCgkoU0hMSUJVTldJTkRfSU5TVEFMTCk6IE5ldy4KCShsaWJnY2MubWspOiBQYXNzIExJQjJBRERFSFNUQVRJQywgTElCMkFEREVIU0hBUkVELCBMSUJVTldJTkQsCglMSUJVTldJTkRERVAsIFNITElCVU5XSU5EX0xJTksgYW5kIFNITElCVU5XSU5EX0lOU1RBTEwuCgkoY2xlYW4pOiBSZW1vdmUgbGlidW53aW5kKgoJKHN0YWdlMS1zdGFydCk6IFJlbW92ZSBhbmQgY29weSBzdGFnZTEvbGlidW53aW5kKi4KCShzdGFnZTItc3RhcnQpOiBSZW1vdmUgYW5kIGNvcHkgc3RhZ2UyL2xpYnVud2luZCouCgkoc3RhZ2UzLXN0YXJ0KTogUmVtb3ZlIGFuZCBjb3B5IHN0YWdlMy9saWJ1bndpbmQqLgoJKHN0YWdlNC1zdGFydCk6IFJlbW92ZSBhbmQgY29weSBzdGFnZTQvbGlidW53aW5kKi4KCShzdGFnZXByb2ZpbGUtc3RhcnQpOiBSZW1vdmUgYW5kIGNvcHkgc3RhZ2Vwcm9maWxlL2xpYnVud2luZCouCgkoc3RhZ2VmZWVkYmFjay1zdGFydCk6IFJlbW92ZSBhbmQgY29weSBzdGFnZWZlZWRiYWNrL2xpYnVud2luZCouCgoJKiBjb25maWcuZ2NjIChpYTY0Ki0qLWxpbnV4Kik6IEFsd2F5cyBhZGQgdC1saWJ1bndpbmQgdG8KCXRtYWtlX2ZpbGUuIEFkZCB0LWxpYnVud2luZC1lbGYgYW5kIGlhNjQvdC1nbGliYy1saWJ1bndpbmQgdG8KCXRtYWtlX2ZpbGUgaWYgLS13aXRoLXN5c3RlbS1saWJ1bndpbmQgaXNuJ3QgdXNlZC4KCgkqIGNvbmZpZy9pYTY0L3QtZ2xpYmMtbGlidW53aW5kOiBOZXcgZmlsZS4KCSogY29uZmlnL3QtbGlidW53aW5kLWVsZjogTGlrZXdpc2UuCgkqIHVud2luZC1jb21wYXQuYzogTGlrZXdpc2UuCgkqIHVud2luZC1jb21wYXQuaDogTGlrZXdpc2UuCgkqIHVud2luZC1kdzItZmRlLWNvbXBhdC5jOiBMaWtld2lzZS4KCgkqIGNvbmZpZy9pYTY0L3QtZ2xpYmMgKExJQjJBRERFSCk6IFVwZGF0ZWQuCgkqIGNvbmZpZy9pYTY0L3QtaHB1eCAoVF9DRkxBR1MpOiBBZGQgLURVU0VfTElCVU5XSU5EX0VYQ0VQVElPTlMuCgoJKiBjb25maWcvaWE2NC91bndpbmQtaWE2NC5jOiBJbmNsdWRlICJ1bndpbmQtY29tcGF0LmgiLiBEZWZpbmUKCWFsaWFzZXMgaWYgbmVlZGVkLgoJKiB1bndpbmQtZHcyLWZkZS1nbGliYy5jOiBMaWtld2lzZS4KCSogdW53aW5kLWR3Mi5jOiBMaWtld2lzZS4KCgkqIGNvbmZpZy90LWxpYnVud2luZCAoTElCMkFEREVIKTogVXBkYXRlZC4KCShMSUIyQURERUhTVEFUSUMpOiBOZXcuCgkoVF9DRkxBR1MpOiBBZGQgLURVU0VfTElCVU5XSU5EX0VYQ0VQVElPTlMuCgkoVEFSR0VUX0xJQkdDQzJfQ0ZMQUdTKTogU2V0IHRvIC1EVVNFX0dBU19TWU1WRVIuCgoJKiBjb25maWd1cmUuYWM6IENoYW5nZSAtLWVuYWJsZS1saWJ1bndpbmQtZXhjZXB0aW9ucyB0bwoJLS13aXRoLXN5c3RlbS1saWJ1bndpbmQuIERvbid0IGRlZmluZSBVU0VfTElCVU5XSU5EX0VYQ0VQVElPTlMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgkqIGNvbmZpZy5pbjogVXBkYXRlZC4KCgkqIGRvYy9pbnN0YWxsLnRleGkgKGlhNjQtKi1saW51eCk6IFJlcXVpcmUgbGlidW53aW5kIDAuOTggb3IKCWFib3ZlIGFuZCBtZW50aW9uIC0td2l0aC1zeXN0ZW0tbGlidW53aW5kLgoJKGlhNjQtKi1ocHV4Kik6IE1lbnRpb24gLS1lbmFibGUtbGlidW53aW5kLWV4Y2VwdGlvbnMgaXMKCXJlbW92ZWQgaW4gZ2NjIDMuNC4zIGFuZCBsYXRlci4KCgkqIGdjYy5jIChpbml0X3NwZWMpOiBBZGQgLWx1bndpbmQgdG8gLWxnY2NfcyBpZgoJVVNFX0xJQlVOV0lORF9FWENFUFRJT05TIGlzIGRlZmluZWQuCgoJKiBta2xpYmdjYy5pbjogU3VwcG9ydCBsaWJ1bndpbmQuCgoyMDA0LTA5LTAzICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKHg4Nl9icmFuY2hfaGludHMpOiBSZW1vdmUgbV9QRU5UNCBhbmQKCW1fTk9DT05BLgoKMjAwNC0wOS0wMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5kLzk5OTcKCSogY2ZnZXhwYW5kLmMgKExPQ0FMX0FMSUdOTUVOVCk6IFByb3ZpZGUgZGVmYXVsdC4KCShTVEFDS19BTElHTk1FTlRfTkVFREVELCBGUkFNRV9HUk9XU19ET1dOV0FSRCk6IExpa2V3aXNlLgoJKHN0cnVjdCBzdGFja192YXIsIEVPQywgc3RhY2tfdmFycywgc3RhY2tfdmFyc19hbGxvYywgc3RhY2tfdmFyc19udW0sCglzdGFja192YXJzX3NvcnRlZCwgc3RhY2tfdmFyc19jb25mbGljdCwgc3RhY2tfdmFyc19jb25mbGljdF9hbGxvYywKCWZyYW1lX3BoYXNlLCBnZXRfZGVjbF9hbGlnbl91bml0LCBhZGRfc3RhY2tfdmFyLCB0cmlhbmd1bGFyX2luZGV4LAoJcmVzaXplX3N0YWNrX3ZhcnNfY29uZmxpY3QsIGFkZF9zdGFja192YXJfY29uZmxpY3QsCglzdGFja192YXJfY29uZmxpY3RfcCwgYWRkX2FsaWFzX3NldF9jb25mbGljdHMsIHN0YWNrX3Zhcl9zaXplX2NtcCwKCXVuaW9uX3N0YWNrX3ZhcnMsIHBhcnRpdGlvbl9zdGFja192YXJzLCBkdW1wX3N0YWNrX3Zhcl9wYXJ0aXRpb24sCglleHBhbmRfb25lX3N0YWNrX3Zhcl9hdCwgZXhwYW5kX3N0YWNrX3ZhcnMsIGV4cGFuZF9vbmVfc3RhY2tfdmFyLAoJZXhwYW5kX29uZV9zdGF0aWNfdmFyLCBleHBhbmRfb25lX2hhcmRfcmVnX3ZhciwKCWV4cGFuZF9vbmVfcmVnaXN0ZXJfdmFyLCBleHBhbmRfb25lX2Vycm9yX3ZhciwgZGVmZXJfc3RhY2tfYWxsb2NhdGlvbiwKCWV4cGFuZF9vbmVfdmFyLCBleHBhbmRfdXNlZF92YXJzX2Zvcl9ibG9jaywgY2xlYXJfdHJlZV91c2VkKTogTmV3LgoJKGV4cGFuZF91c2VkX3ZhcnMpOiBSZXdyaXRlLgoJKiBNYWtlZmlsZS5pbiAoY2ZnZXhwYW5kLm8pOiBVcGRhdGUgZGVwZW5kZW5jaWVzLgoKMjAwNC0wOS0wNCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogY2ZnLmMgKGZyZWVfZWRnZSk6IFVzZSBnZ2NfZnJlZS4KCShleHB1bmdlX2Jsb2NrKTogVXNlIGdnY19mcmVlLgoJKiBwYXNzZXMuYyAocmVzdF9vZl9jbGVhbl9zdGF0ZSk6IEZyZWUgYWZ0ZXIgY29tcGlsYXRpb24uCgkqIHRyZWUtc3NhLmMgKGRlbGV0ZV90cmVlX3NzYSk6IEZyZWUgYW5ub3RhdGlvbnM7IGNhbGwgcmVsZWFzZV9kZWZzCgkqIHRyZWUtc3NhbmFtZXMuYyAocmVsZWFzZV9kZWZzKTogSWdub3JlIG5vbi1TU0FfTkFNRSBhcmd1bWVudHMuCgoyMDA0LTA5LTAzICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJKiB0cmVlLXNzYS1hbGlhcy5jIChtYXlfYmVfYWxpYXNlZCk6IE1vdmUgVFJFRV9TVEFUSUMgY2hlY2sgYWZ0ZXIKCURFQ0xfRVhURVJOQUwgY2hlY2suCgoyMDA0LTA5LTAzICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogZmluYWwuYyAob3V0cHV0X2luX3Nsb3QpOiBOZXcgZ2xvYmFsIHZhcmlhYmxlLgoJKGZpbmFsX3NjYW5faW5zbik6IEFkZCBuZXcgc3RhdGUgJzInIHRvIHRoZSAnbm9wZWVwaG9sZXMnIHBhcmFtZXRlci4KCVBhc3MgMiBhcyAnbm9wZWVwaG9sZXMnIHRvIHNlbGYgZm9yIGluc25zIGluIGEgU0VRVUVOQ0UuICBTZXQKCSdvdXRwdXRfaW5fc2xvdCcgYmVmb3JlIGludm9raW5nIG91dHB1dF9hc21faW5zbi4KCShvdXRwdXRfYXNtX2luc24pOiBBZGQgYSBzcGFjZSBhZnRlciB0aGUgdGFiIGlmICdvdXRwdXRfaW5fc2xvdCcKCWlzIHNldC4KCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKG91dHB1dF9yZXR1cm4pOiBQYXNzIDIgYXMgJ25vcGVlcGhvbGVzJyB0bwoJZmluYWxfc2Nhbl9pbnNuLgoJKG91dHB1dF9zaWJjYWxsKTogTGlrZXdpc2UuCgoyMDA0LTA5LTAzICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChmaW5pX3NzYV9vcGVyYW5kcyk6IGdnY19mcmVlIHVudXNlZCBhcnJheXMuCgkqIHRyZWUtc3NhbmFtZXMgKGluaXRfc3NhbmFtZXMpOiBMaWtld2lzZS4KCjIwMDQtMDktMDMgIFppZW1vd2l0IExhc2tpICA8emxhc2tpQGFwcGxlLmNvbT4KCgkqIHN0dWItb2JqYy5jIChvYmpjX2lzX2lkLCBvYmpjX2RlY2xhcmVfYWxpYXMsIG9iamNfZGVjbGFyZV9jbGFzcywKCW9iamNfZGVjbGFyZV9wcm90b2NvbHMsIG9iamNfc3RhcnRfcHJvdG9jb2wsCglvYmpjX3N0YXJ0X2NsYXNzX2ludGVyZmFjZSwgb2JqY19zdGFydF9jYXRlZ29yeV9pbnRlcmZhY2UsCglvYmpjX2NvbnRpbnVlX2ludGVyZmFjZSwgb2JqY19maW5pc2hfaW50ZXJmYWNlLAoJb2JqY19hZGRfaW5zdGFuY2VfdmFyaWFibGUsIG9iamNfc2V0X3Zpc2liaWxpdHksIG9iamNfc2V0X21ldGhvZF90eXBlLAoJb2JqY19zdGFydF9jbGFzc19pbXBsZW1lbnRhdGlvbiwgb2JqY19zdGFydF9jYXRlZ29yeV9pbXBsZW1lbnRhdGlvbiwKCW9iamNfY29udGludWVfaW1wbGVtZW50YXRpb24sIG9iamNfZmluaXNoX2ltcGxlbWVudGF0aW9uLAoJb2JqY19hZGRfbWV0aG9kX2RlY2xhcmF0aW9uLCBvYmpjX3N0YXJ0X21ldGhvZF9kZWZpbml0aW9uLAoJb2JqY19maW5pc2hfbWV0aG9kX2RlZmluaXRpb24sIG9iamNfYnVpbGRfa2V5d29yZF9kZWNsLAoJb2JqY19idWlsZF9tZXRob2Rfc2lnbmF0dXJlLCBvYmpjX2J1aWxkX2VuY29kZV9leHByLAoJb2JqY19idWlsZF9wcm90b2NvbF9leHByLCBvYmpjX2J1aWxkX3NlbGVjdG9yX2V4cHIsCglvYmpjX2J1aWxkX21lc3NhZ2VfZXhwciwgb2JqY19idWlsZF9zdHJpbmdfb2JqZWN0LAoJb2JqY19nZXRfY2xhc3NfcmVmZXJlbmNlLCBvYmpjX2dldF9wcm90b2NvbF9xdWFsaWZpZWRfdHlwZSwKCW9iamNfc3RhdGljX2luaXRfbmVlZGVkX3AsIG9iamNfZ2VuZXJhdGVfc3RhdGljX2luaXRfY2FsbCk6IE5ldyBzdHVicy4KCjIwMDQtMDktMDMgIEphbWVzIEUgV2lsc29uICA8d2lsc29uQHNwZWNpZml4aW5jLmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuaCAoVEFSR0VUX0NQVV9DUFBfQlVJTFRJTlMpOiBBZGQgX19taXBzM2QuCgoJKiBjb25maWcvbWlwcy9nZW5lcmljLm1kIChnZW5lcmljX2ZyZWNpcF9mc3FydF9zdGVwKTogTmV3LgoJKiBjb25maWcvbWlwcy9taXBzLXBzLTNkLm1kIChtaXBzX3JzcXJ0MV88Zm10Pik6IFVzZSBmcnNxcnQxIHR5cGUuCgkobWlwc19yc3FydDJfPGZtdD4pOiBVc2UgZnJzcXJ0MiB0eXBlLgoJKG1pcHNfcmVjaXAxXzxmbXQ+KTogVXNlIGZyZGl2MSB0eXBlLgoJKG1pcHNfcmVjaXAyXzxmbXQ+KTogVXNlIGZyZGl2MiB0eXBlLgoJKiBjb25maWcvbWlwcy9taXBzLm1kICh0eXBlKTogQWRkIGZyZGl2MSwgZnJkaXYyLCBmcnNxcnQxLCBmcnNxcnQyLgoJKiBjb25maWcvbWlwcy9zYjEubWQgKGlyX3NiMV9mcHVfMnBpcGVzLCBpcl9zYjFfZnB1XzFwaXBlKTogQWRkIGZyZGl2MQoJYW5kIGZyc3FydDEuCgkoaXJfc2IxX2ZwdV9zdGVwMl8ycGlwZXMsIGlyX3NiMV9mcHVfc3RlcDJfMXBpcGUpOiBOZXcuCgoyMDA0LTA5LTAzICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBkZWJpYW4ub3JnPgoKCSogcmVsb2FkLmMgKGZpbmRfcmVsb2Fkcyk6IFN3YXAgb3BlcmFuZF9sb2MgcG9pbnRlcnMgZm9yCglmaW5kX2R1bW15X3JlbG9hZCBpZiB3ZSBoYXZlIHN3YXBwZWQgdHdvIG9wZXJhbmRzLgoKMjAwNC0wOS0wMyAgSGFucy1QZXRlciBOaWxzc29uICA8aHBAYXhpcy5jb20+CgoJKiBjb25maWcvY3Jpcy9jcmlzLmggKEFTTV9PVVRQVVRfQ0FTRV9FTkQpOiBVc2UgcHJldl9ub25ub3RlX2luc24KCXRvIGdldCB0aGUgdGFibGVqdW1wLWluc24gYmVmb3JlIHRoZSBqdW1wLXRhYmxlIGxhYmVsLgoKMjAwNC0wOS0wMyAgWmllbW93aXQgTGFza2kgIDx6bGFza2lAYXBwbGUuY29tPgoKCSogYy1jb21tb24uaCAob2JqY19pc19pZCwgb2JqY19kZWNsYXJlX2FsaWFzLCBvYmpjX2RlY2xhcmVfY2xhc3MsCglvYmpjX2RlY2xhcmVfcHJvdG9jb2xzLCBvYmpjX2J1aWxkX21lc3NhZ2VfZXhwciwKCW9iamNfZmluaXNoX21lc3NhZ2VfZXhwciwgb2JqY19idWlsZF9zZWxlY3Rvcl9leHByLAoJb2JqY19idWlsZF9wcm90b2NvbF9leHByLCBvYmpjX2J1aWxkX2VuY29kZV9leHByLAoJb2JqY19idWlsZF9zdHJpbmdfb2JqZWN0LCBvYmpjX2dldF9wcm90b2NvbF9xdWFsaWZpZWRfdHlwZSwKCW9iamNfZ2V0X2NsYXNzX3JlZmVyZW5jZSwgb2JqY19nZXRfY2xhc3NfaXZhcnMsCglvYmpjX3N0YXJ0X2NsYXNzX2ludGVyZmFjZSwgb2JqY19zdGFydF9jYXRlZ29yeV9pbnRlcmZhY2UsCglvYmpjX3N0YXJ0X3Byb3RvY29sLCBvYmpjX2NvbnRpbnVlX2ludGVyZmFjZSwgb2JqY19maW5pc2hfaW50ZXJmYWNlLAoJb2JqY19zdGFydF9jbGFzc19pbXBsZW1lbnRhdGlvbiwgb2JqY19zdGFydF9jYXRlZ29yeV9pbXBsZW1lbnRhdGlvbiwKCW9iamNfY29udGludWVfaW1wbGVtZW50YXRpb24sIG9iamNfZmluaXNoX2ltcGxlbWVudGF0aW9uLAoJb2JqY19zZXRfdmlzaWJpbGl0eSwgb2JqY19zZXRfbWV0aG9kX3R5cGUsIG9iamNfYnVpbGRfbWV0aG9kX3NpZ25hdHVyZSwKCW9iamNfYWRkX21ldGhvZF9kZWNsYXJhdGlvbiwgb2JqY19zdGFydF9tZXRob2RfZGVmaW5pdGlvbiwKCW9iamNfZmluaXNoX21ldGhvZF9kZWZpbml0aW9uLCBvYmpjX2FkZF9pbnN0YW5jZV92YXJpYWJsZSwKCW9iamNfYnVpbGRfa2V5d29yZF9kZWNsLCBvYmpjX2J1aWxkX3Rocm93X3N0bXQsIG9iamNfYmVnaW5fdHJ5X3N0bXQsCglvYmpjX2ZpbmlzaF90cnlfc3RtdCwgb2JqY19iZWdpbl9jYXRjaF9jbGF1c2UsCglvYmpjX2ZpbmlzaF9jYXRjaF9jbGF1c2UsIG9iamNfYnVpbGRfZmluYWxseV9jbGF1c2UsCglvYmpjX2J1aWxkX3N5bmNocm9uaXplZCwgb2JqY19zdGF0aWNfaW5pdF9uZWVkZWRfcCwKCW9iamNfZ2VuZXJhdGVfc3RhdGljX2luaXRfY2FsbCk6IE5ldyBwcm90b3R5cGVzLgoKMjAwNC0wOS0wMyAgU3RldmUgRWxsY2V5ICA8c2plQGN1cC5ocC5jb20+CgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfZnVuY3Rpb25fYXJnKTogVXNlIFBBUkFMTEVMIGV2ZW4gaWYgdGhlcmUKCWlzIG9ubHkgb25lIHJlZy4KCShpYTY0X2Z1bmN0aW9uX3ZhbHVlKTogRGl0dG8uCgoyMDA0LTA5LTAzICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBjb25maWcuZ2NjOiBSZXN1cnJlY3QgTmV0V2FyZSBhcyBhIHRhcmdldC4gSGFuZGxlIHNwZWNpYWwgY2FzZSBvZgoJTm92ZWxsIGxpbmtlciB0byBiZSB1c2VkIChzcGVjaWZpZWQgdGhyb3VnaCAtLXdpdGgtbGQ9KSBhbmQgdGhyZWFkaW5nCgltb2RlbCBvZiBlaXRoZXIgUG9zaXggKGRlZmF1bHQpIG9yIE5LUy4KCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X3JldHVybl9wb3BzX2FyZ3MpOiBDb25kaXRpb25hbGl6ZSBwb3BwaW5nCglvZiBpbmNvbWluZyBoaWRkZW4gYXJndW1lbnQgb24gS0VFUF9BR0dSRUdBVEVfUkVUVVJOX1BPSU5URVIuCgkqIGNvbmZpZy9pMzg2L2kzODYuaCAoS0VFUF9BR0dSRUdBVEVfUkVUVVJOX1BPSU5URVIpOiBOZXcuCgkqIGNvbmZpZy9pMzg2L25ldHdhcmUuYywgY29uZmlnL2kzODYvbmV0d2FyZS5oOiBOZXcuCgkqIGNvbmZpZy9pMzg2L253bGQuYywgY29uZmlnL2kzODYvbndsZC5oOiBOZXcuCgkqIGNvbmZpZy9pMzg2L25ldHdhcmUtY3J0MC5jOiBOZXcuCgkqIGNvbmZpZy9pMzg2L25ldHdhcmUtbGliZ2NjLmM6IE5ldy4KCSogY29uZmlnL2kzODYvbmV0d2FyZS1saWJnY2MuZGVmOiBOZXcuCgkqIGNvbmZpZy9pMzg2L25ldHdhcmUtbGliZ2NjLmV4cDogTmV3LgoJKiBjb25maWcvaTM4Ni90LW5ldHdhcmUsIGNvbmZpZy9pMzg2L3QtbndsZDogTmV3LgoJKiBndGhyLW5rcy5oOiBOZXcuCgkqIGRvYy9pbnN0YWxsLnRleGk6IERvY3VtZW50IE5LUyB0aHJlYWRpbmcgbW9kZWwuCgoyMDA0LTA5LTAzICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJUFIgYy83MDU0CgkqIGRlZmF1bHRzLmggKFRBUkdFVF9ERUZBVUxUX1BBQ0tfU1RSVUNUKTogUHJvdmlkZSBkZWZhdWx0LgoJKiB0cmVlLmggKGluaXRpYWxfbWF4X2ZsZF9hbGlnbik6IERlY2xhcmUKCSogc3Rvci1sYXlvdXQuYyAoaW5pdGlhbF9tYXhfZmxkX2FsaWduKTogRGVmaW5lIGFuZCBpbml0aWFsaXplLgoJKG1heGltdW1fZmllbGRfYWxpZ25tZW50KTogSW5pdGlhbGl6ZSB0byB0aGUgc2FtZSB2YWx1ZS4KCSogY29tbW9uLm9wdDogQWRkIC1mcGFjay1zdHJ1Y3Q9IHZhcmlhbnQgb2Ygc3dpdGNoLgoJKiBvcHRzLmM6IEhhbmRsZSAtZnBhY2stc3RydWN0PSB2YXJpYW50IG9mIHN3aXRjaC4KCSogYy1wcmFnbWEuYzogQ2hhbmdlICNwcmFnbWEgcGFjaygpIGhhbmRsaW5nIHNvIHRoYXQgaXQgYmVjb21lcwoJY29tcGF0aWJsZSB0byBvdGhlciBjb21waWxlcnM6IGFjY2VwdCBpbmRpdmlkdWFsICdwdXNoJyBhcmd1bWVudCwKCW1ha2UgZmluYWwgcG9wIHJlc3RvcmUgKGNvbW1hbmQgbGluZSkgZGVmYXVsdCwgY29ycmVjdCBpbnRlcmFjdGlvbgoJb2YgcHVzaC9wb3AgYW5kIHNvbGUgc3BlY2lmaWNhdGlvbiBvZiBhIG5ldyBhbGlnbm1lbnQgKHNvIHRoYXQgdGhlCglzZXF1ZW5jZSAjcHJhZ21hIHBhY2socHVzaCkgLSAjcHJhZ21hIHBhY2soPG4+KSBiZWNvbWVzIGlkZW50aWNhbAoJdG8gI3ByYWdtYSBwYWNrKHB1c2gsIDxuPikuCgkqIGRvYy9leHRlbmQudGV4aTogTmV3IG5vZGUgIlN0cnVjdHVyZS1QYWNraW5nIFByYWdtYXMiIHVuZGVyCgkiUHJhZ21hcyIsIGRlc2NyaWJpbmcgI3ByYWdtYSBwYWNrLgoJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IC1mcGFjay1zdHJ1Y3Q9PG4+IHZhcmlhbnQgb2Ygc3dpdGNoLgoJKiBkb2MvdG0udGV4aTogQWRqdXN0IGRlc2NyaXB0aW9uIGZvciBIQU5ETEVfUFJBR01BX1BBQ0tfUFVTSF9QT1AuCglEb2N1bWVudCBuZXcgVEFSR0VUX0RFRkFVTFRfUEFDS19TVFJVQ1QuCgoyMDA0LTA5LTAzICBEZXZhbmcgUGF0ZWwgIDxkcGF0ZWxAYXBwbGUuY29tPgoKCSogZHdhcmYyb3V0LmMgKGdlbl9maWVsZF9kaWUpLiBFcXVhdGUgZGVjbCBudW1iZXIgdG8gZGllLgoKMjAwNC0wOS0wMyAgVmxhZGltaXIgTWFrYXJvdiAgPHZtYWthcm92QHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE1ODMyCgkqIGdsb2JhbC5jIChtb2RpZnlfcmVnX3Bhdik6IE5ldyBmdW5jdGlvbi4KCShtYWtlX2FjY3VyYXRlX2xpdmVfYW5hbHlzaXMpOiBDYWxsIHRoZSBuZXcgZnVuY3Rpb24uICBNb3ZlIHBhdmluCgltb2RpZmljYXRpb24gYnkgZWFybHljbG9iYmVyIHNldCBpbnRvIHRoZSBuZXcgZnVuY3Rpb24uCgoyMDA0LTA5LTAzICBBbmRyZWFzIFNjaHdhYiAgPHNjaHdhYkBzdXNlLmRlPgoKCSogY29uZmlnL202OGsvbTY4ay5jIChvdXRwdXRfYW5kc2kzKTogVXNlIC0xIGluc3RlYWQgb2YKCShIT1NUX1dJREVfSU5UKTB4ZmZmZmZmZmYgc2luY2UgQ09OU1RfSU5UIHZhbHVlIGFyZSBhbHdheXMgc2lnbgoJZXh0ZW5kZWQuCgoyMDA0LTA5LTAyICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBNYWtlZmlsZS5pbiAoTElCMkFEREVIREVQKTogQWRkIHVud2luZC5oIGFuZCB1bndpbmQtcGUuaC4KCSogbWtsaWJnY2MuaW4gKGxpYmdjY19kZXApOiBOZXcsIGNvdmVyaW5nIGdlbmVyYWwgZGVwZW5kZW5jaWVzLCBidXQKCW5vdCB1bndpbmQgY29kZSBzcGVjaWZpYyBvbmVzLgoJKGxpYmdjYzJfY19kZXApOiBSZXBsYWNlIGdlbmVyYWwgZGVwZW5kZW5jaWVzIHdpdGggdXNlIG9mIGxpYmdjY19kZXAuCglSZW1vdmUgdW53aW5kIGNvZGUgc3BlY2lmaWMgZGVwZW5kZW5jaWVzLgoJKGxpYmdjb3ZfY19kZXApOiBSZXBsYWNlIGdlbmVyYWwgZGVwZW5kZW5jaWVzIHdpdGggdXNlIG9mIGxpYmdjY19kZXAuCglSZW1vdmUgZ2JsLWN0b3JzLmguCglBZGQgbGliZ2NjX2RlcCB0byBvdXRwdXQgZ2VuZXJhdGVkIGZvciBMSUIyQURELCBMSUIyQURERUgsIGFuZAoJTElCMkFERF9TVC4gQWRkIExJQjJBRERFSERFUCB0byBvdXRwdXQgZ2VuZXJhdGVkIGZvciBMSUIyQURERUguCgkqIHRzeXN0ZW0uaDogRGVjbGFyZSBtZW1jcHkgYW5kIG1lbXNldCB3aGVuIGluaGliaXRfbGliYy4KCjIwMDQtMDktMDIgIFJvbWFuIFppcHBlbCAgPHppcHBlbEBsaW51eC1tNjhrLm9yZz4KCgkqIGNvbWJpbmUuYyAodHJ5X2NvbWJpbmUpOiBEZWxheSBtb2RpZnlpbmcgb2YgaW5zbnMgd2hpY2ggY2Fubm90CgliZSBlYXNpbHkgdW5kb25lLgoKMjAwNC0wOS0wMiAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiBnY2MvY29tbW9uLm9wdDogUmVuYW1lIGl2Y2Fub24gdG8gdHJlZS1sb29wLWl2Y2Fub24sIHRyZWUtbGltIHRvCgl0cmVlLWxvb3AtaW0uCgkqIGdjYy90cmVlLXNzYS1sb29wLmM6IERpdHRvCgkqIGdjYy90cmVlLXNzYS1sb29wLWl2Y2Fub24uYzogRGl0dG8KCSogZ2NjL2RvYy9pbnZva2UudGV4aTogRGl0dG8uCgoyMDA0LTA5LTAyICBaaWVtb3dpdCBMYXNraSAgPHpsYXNraUBhcHBsZS5jb20+CgoJKiBjLWRlY2wuYyAoc3RvcmVfcGFybV9kZWNsc19uZXdzdHlsZSk6IE1ha2Ugc3RhdGljLgoJKHN0b3JlX3Bhcm1fZGVjbHNfZnJvbSk6IE5ldyBmdW5jdGlvbi4KCSogYy10cmVlLmggKHN0b3JlX3Bhcm1fZGVjbHNfbmV3c3R5bGUpOiBSZW1vdmUgcHJvdG90eXBlLgoJKHN0b3JlX3Bhcm1fZGVjbHNfZnJvbSk6IE5ldyBwcm90b3R5cGUuCgoyMDA0LTA5LTAyICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChleHBhbmRfYmxvY2tfbW92ZSk6IFVzZSBTSW1vZGUgYW5kCglISW1vZGUgd2l0aCBTVFJJQ1RfQUxJR05NRU5ULgoKMjAwNC0wOS0wMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9hcm0vYnBhYmkuaCAoVEFSR0VUX0JQQUJJX0NQUF9CVUlMVElOUyk6IERlZmluZS4KCShUQVJHRVRfT1NfQ1BQX0JVSUxUSU5TKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9hcm0vc3ltYmlhbi5oIChUQVJHRVRfT1NfQ1BQX0JVSUxUSU5TKTogSW5jbHVkZQoJVEFSR0VUX0JQQUJJX0NQUF9CVUlMVElOUy4KCjIwMDQtMDktMDIgIFJvbWFuIFppcHBlbCAgPHppcHBlbEBsaW51eC1tNjhrLm9yZz4KCgkqIGNvbWJpbmUuYyAoZGlzdHJpYnV0ZV9ub3Rlcyk6IERvbid0IGFkZCBSRUdfTEFCRUwgdG8ganVtcCBpbnNuLgoKMjAwNC0wOS0wMiAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgoJKiBidWlsdGlucy5jIChleHBhbmRfYnVpbHRpbl9jYWJzKTogRGVsZXRlLgoJKGV4cGFuZF9idWlsdGluKTogSWYgdW5hYmxlIHRvIGZvbGQgdGhlIHZhbHVlcyBkbyBhIG5vcm1hbAoJbGlicmFyeSBjYWxsIGZvciBidWlsdGluX2NhYiouCgkoZm9sZF9idWlsdGluX2NhYnMpOiBEZXBlbmQgb24gb3B0aW1pemUgYW5kIG9wdGltaXplX3NpemUuCgkqIG9wdGFicy5jIChleHBhbmRfY21wbHhkaXZfc3RyYWlnaHQpOiBEZWxldGUuCgkoZXhwYW5kX2NtcGx4ZGl2X3dpZGUpOiBEaXR0by4KCShleHBhbmRfdmVjdG9yX2Jpbm9wKTogRGl0dG8uCgkoZXhwYW5kX3ZlY3Rvcl91bm9wKTogRGl0dG8uCgkoZXhwYW5kX2NvbXBsZXhfYWJzKTogRGVsZXRlLgoJKGV4cGFuZF9iaW5vcCk6IFJlbW92ZSBjYWxscyB0byBhYm92ZSBmdW5jdGlvbnMuCglSZW1vdmUgb3BlbiBjb2Rpbmcgb2YgY29tcGxleCBhcml0aG1ldGljLgoJKGV4cGFuZF91bm9wKTogRGl0dG8uCgkqIG9wdGFicy5oOiBSZW1vdmUgcHJvdG90eXBlcy4KCjIwMDQtMDktMDIgIFppZW1vd2l0IExhc2tpICA8emxhc2tpQGFwcGxlLmNvbT4KCgkqIGMtZGVjbC5jIChzdG9yZV9wYXJtX2RlY2xzX25ld3N0eWxlKTogTWFrZSBleHRlcm5hbGx5IHZpc2libGUuCgkqIGMtdHJlZS5oIChzdG9yZV9wYXJtX2RlY2xzX25ld3N0eWxlKTogTmV3IHByb3RvdHlwZS4KCjIwMDQtMDktMDIgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAoZXhwYW5kX2Jsb2NrX2NsZWFyKTogVXNlIHZlY3RvcgoJaW5zdHJ1Y3Rpb25zIGlmIGF2YWlsYWJsZS4KCShleHBhbmRfYmxvY2tfbW92ZSk6IExpa2V3aXNlLgoKMjAwNC0wOS0wMyAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogcnRsLmRlZiAoUkFOR0VfSU5GTywgUkFOR0VfUkVHLCBSQU5HRV9WQVIsIFJBTkdFX0xJVkUpOiBLaWxsLgoKMjAwNC0wOS0wMiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9hcm0vc3ltYmlhbi5oIChMSUJfU1BFQyk6IERlZmluZSB0byBlbXB0eS4KCSogY29uZmlnL2FybS90LXN5bWJpYW4gKFNITElCX0xDKTogTGlrZXdpc2UuCgoyMDA0LTA5LTAyICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL2FybS9icGFiaS5jIChfX2FlYWJpX3VsMmQsIF9fYWVhYmlfdWwyZik6IFJlbW92ZS4KCjIwMDQtMDktMDIgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuYyAobWlwc19jbGFzc2lmeV9zeW1ib2wsIG1pcHNfZmV0Y2hfaW5zbnMpOgoJKG1pcHNfcmVzdG9yZV9ncCwgbWlwc19zZXRfcmV0dXJuX2FkZHJlc3MsIG1pcHNfZXhwYW5kX3Byb2xvZ3VlKQoJKG1pcHMxNl9mcF9hcmdzLCBtaXBzX2F2b2lkX2hhemFyZCk6IFJlcGxhY2UgYWJvcnQgd2l0aCBnY2NfYXNzZXJ0LgoJKGJ1aWxkX21pcHMxNl9jYWxsX3N0dWIpOiBMaWtld2lzZS4gIFJlbW92ZSBkYWZ0IENBTExfSU5TTiBjaGVja3MuCgkobWlwc19pc3N1ZV9yYXRlKTogUmVtb3ZlIHVucmVhY2hhYmxlIGFib3J0LgoJKG1pcHNfc3ltYm9saWNfY29uc3RhbnRfcCwgbWlwc19zeW1ib2xpY19hZGRyZXNzX3AsIG1pcHNfc3ltYm9sX2luc25zKQoJKG1pcHNfb3V0cHV0X21vdmUsIG1pcHNfcmVsYXRpb25hbF9vcGVyYW5kX29rX3AsIG1pcHNfYXJnX2luZm8pCgkobWlwc19ibG9ja19tb3ZlX3N0cmFpZ2h0LCBwcmludF9vcGVyYW5kX2FkZHJlc3MsIG1pcHNfZmlsZV9zdGFydCkKCShtaXBzX2luaXRpYWxfZWxpbWluYXRpb25fb2Zmc2V0LCBtaXBzMTZfZnBfYXJncywgZHVtcF9jb25zdGFudHNfMSkKCShtaXBzX291dHB1dF9jb25kaXRpb25hbF9icmFuY2gsIG1pcHNfZXhwYW5kX2J1aWx0aW5fZGlyZWN0KQoJKG1pcHNfZXhwYW5kX2J1aWx0aW5fY29tcGFyZSk6IFJlcGxhY2UgYWJvcnQgd2l0aCBnY2NfdW5yZWFjaGFibGUuCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKHJvdHI8bW9kZT4zLCBjb25zdHRhYmxlX2Zsb2F0KTogUmVwbGFjZSBhYm9ydAoJd2l0aCBnY2NfYXNzZXJ0LgoKMjAwNC0wOS0wMiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5tZCAoKmxlYV9oaWdoNjQpOiBDaGFuZ2Ugc3BsaXQgY29uZGl0aW9uIHRvCglmbG93Ml9jb21wbGV0ZWQuICBBZGQgYSBwZWVwaG9sZTIgdG8gZ2VuZXJhdGUgYSBtb3JlIHBhcmFsbGVsIHZlcnNpb24uCgoyMDA0LTA5LTAyICBKYW4gSHViaWNrYSAgPGpoQHN1c2UuY3o+CgoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9jb21wb3VuZF9sdmFsKTogTW92ZSAic3RhY2siIHZhcnJheSBvdXQgb2YKCUdHQy4KCgkqIGdnYy1wYWdlLmM6IGluY2x1ZGUgdHJlZS1mbG93LmguCgkoZXh0cmFfb3JkZXJfc2l6ZV90YWJsZSk6IEFkZCBzdG10X2Fubl9kLgoJKFNUQVRfTEFCRUwpOiBSZW5hbWUgZnJvbSAuLi4uCgkoTEFCRUwpOiAuLi4gdGhpcyBvbmUuCgkqIE1ha2VmaWxlLmluIChnZ2MtcGFnZS5vKTogQWRkIGRlcGVuZGVuY3kuCgoJKiBnZ2MtY29tbW9uLmMgKGdnY19mb3JjZV9jb2xsZWN0KTogTmV3IGdsb2JhbCB2YXJpYWJsZS4KCShsb2NfZGVzY3JpcHRpb24pOiBBZGQgZmllbGRzICJmcmVlZCIsICJjb2xsZWN0ZWQiCgkocHRyX2hhc2gpOiBOZXcgc3RhdGljIGhhc2gKCShwdHJfaGFzaF9lbnRyeSk6IE5ldyBzdHJ1Y3R1cmUuCgkoaGFzaF9wdHIsZXFfcHRyLGdnY19wcnVuZV9wdHIpOiBOZXcgc3RhdGljIGZ1bmN0aW9ucy4KCShnZ2NfcmVjb3JkX292ZXJoZWFkKTogVGFrZSBwdHIgYXJndW1lbnQsIHJlY29yZCBpdAoJKGdnY19wcnVuZV9vdmVyaGVhZF9saXN0LCBnZ2NfZnJlZV9vdmVyaGVhZCk6IE5ldyBmdW5jdGlvbnMuCgkoY21wX3N0YXRpc3RpY3MpOiBJbXJvdmUgc29ydGluZy4KCShkdW1wX2dnY19sb2Nfc3RhdGlzdGljcyk6IE91dHB1dCBuZXdseSBjb2xsZWN0ZWQgc3RhdGlzdGljcwoJKiBnZ2MtcGFnZS5jIChnZ2NfYWxsb2MpOiBVcGRhdGUgY2FsbCBvZiBnZ2NfcmVjb3JkX292ZXJoZWFkCgkoZ2djX2ZyZWUpOiBDYWxsIGdnY19mcmVlX292ZXJoZWFkLgoJKGdnY19jb2xsZWN0KTogRm9yY2UgY29sbGVjdGlvbiB3aGVuIGFza2VkIHRvIGJlIGZvcmNlZC4KCShnZ2NfY29sbGVjdCk6IENhbGwgZ2djX3BydW5lX292ZXJoZWFkX2xpc3QuCgkqIGdnYy5oIChnZ2NfZm9yY2VfY29sbGVjdCk6IERlY2xhcmUKCShnZ2NfcmVjb3JkX292ZXJoZWFkKTogVXBkYXRlIHByb3RvdHlwZS4KCShnZ2NfZnJlZV9vdmVyaGVhZCwgZ2djX3BydW5lX292ZXJoZWFkX2xpc3QpOiBEZWNsYXJlLgoKMjAwNC0wOS0wMiAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogY29tbW9uLm9wdCAoZnRyYXBwaW5nLW1hdGgpOiBEZWZhdWx0IHRvIG9uLgoKMjAwNC0wOS0wMiAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiBhcm0vcHJlZGljYXRlcy5tZCAoYXJtX3JlbG9hZF9tZW1vcnlfb3BlcmFuZCk6IEFsbG93IE1FTS4KCjIwMDQtMDktMDIgIERlbmlzIENoZXJ0eWtvdiAgPGRlbmlzY0BvdmVydGEucnU+CgoJUFIgdGFyZ2V0LzE2ODg0CgkqIGNvbmZpZy9hdnIvYXZyLm1kICgibW92bWVtaGkiKTogU3Vic3RpdHV0ZSBtYXRjaF9kdXAgdG8KCW1hdGNoX3NjcmF0Y2guCgkoKm1vdm1lbXFpX2luc24pOiBMaWtld2lzZS4KCSgqbW92bWVtaGkpOiBMaWtld2lzZS4KCShjbHJtZW1oaSk6IExpa2V3aXNlLgoJKCpjbHJtZW1xaSk6IExpa2V3aXNlLgoJKCpjbHJtZW1oaSk6IExpa2V3aXNlLgoKMjAwNC0wOS0wMiAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy5nY2MgKGFybSotKi1lYWJpKiB8IGFybSotKi1zeW1iaWFuZWxmKik6IFNldAoJZGVmYXVsdF91c2VfY3hhX2F0ZXhpdD15ZXMuCgoyMDA0LTA5LTAyICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3JzNjAwMC9saW51eDY0Lmg6IERvbid0IGluY2x1ZGUgc2lnbmFsLmggb3Igc3lzL3Vjb250ZXh0LmguCgkoc3RydWN0IGtlcm5lbF9vbGRfdWNvbnRleHQpOiBEZWxldGUuCgkoc3RydWN0IGdjY19wdF9yZWdzLCBnY2Nfc2lnY29udGV4dCwgZ2NjX3Vjb250ZXh0KTogTmV3LgoJKE1EX0ZBTExCQUNLX0ZSQU1FX1NUQVRFX0ZPUik6IFVzZSBnY2NfKiBzdHJ1Y3RzLiAgT25seSBkZWZpbmUKCXdoZW4gSU5fTElHR0NDMi4KCjIwMDQtMDktMDIgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIHRvcGxldi5jIChwcm9jZXNzX29wdGlvbnMpOiBGaXggdHlwby4KCjIwMDQtMDktMDEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgbWlkZGxlLWVuZC8xNzI1OAoJKiBjYWxscy5jIChpbml0aWFsaXplX2FyZ3VtZW50X2luZm9ybWF0aW9uKTogVGlnaHRlbiBwYXNzLXRocm91Z2gKCWNvbmRpdGlvbnMgZm9yIHBhc3MtYnktcmVmZXJlbmNlLiAgUmVtb3ZlIGRlYWQgVEFSR0VUX0VYUFIgY29kZS4KCVVzZSBidWlsZF9mb2xkX2FkZHJfZXhwci4KCShlbWl0X2xpYnJhcnlfY2FsbF92YWx1ZV8xKTogVXNlIGJ1aWxkX2ZvbGRfYWRkcl9leHByLiAgUmVtb3ZlIGNvZGUKCXRoYXQgYXNzdW1lcyBBRERSX0VYUFIgYWxsb2NhdGVzIHN0YWNrIHNwYWNlLgoJKiBmb2xkLWNvbnN0LmMgKGJ1aWxkX2ZvbGRfYWRkcl9leHByX3dpdGhfdHlwZSk6IExvb2sgdGhyb3VnaAoJV0lUSF9TSVpFX0VYUFIuCgoyMDA0LTA5LTAxICBEYW4gTmljb2xhZXNjdSAgPGRhbm5AaWNzLnVjaS5lZHU+CgoJKiBnZW5nZW5ydGwuYyAoZ2VuZGVmKTogVXNlIHJ0eF9hbGxvYywgZG9uJ3QgZG8gUFVUX0NPREUuCgkqIGdnYy5oIChnZ2NfYWxsb2NfcnR4KTogRGVsZXRlLgoKMjAwNC0wOS0wMSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBleHBtZWQuYyAoZW51bSBhbGdfY29kZSk6IFJlbW92ZSBsb25nIHVudXNlZCBlbnVtZXJhdGlvbiB2YWx1ZXMuCgkoc3RydWN0IG11bHRfY29zdCk6IE5ldyBzdHJ1Y3R1cmUgdG8gaG9sZCB0aGUgInNjb3JlIiBvZiBhIHN5bnRoZXRpYwoJbXVsdGlwbHkgc2VxdWVuY2UsIGluY2x1ZGluZyBib3RoIGEgcnR4X2Nvc3QgYW5kIGEgbGF0ZW5jeSBmaWVsZC4KCShNVUxUX0NPU1RfTEVTUyk6IE5ldyBtYWNybyB0byBjb21wYXJlIG11bHRfY29zdCB0byBhIGNvbnN0YW50LgoJKENIRUFQRVJfTVVMVF9DT1NUKTogTmV3IG1hY3JvIHRvIGNvbXBhcmUgdHdvIG11bHRfY29zdHMuCgkoc3RydWN0IGFsZ29yaXRobSk6IENoYW5nZSB0eXBlIG9mIGNvc3QgZmllbGQgdG8gYmUgbXVsdF9jb3N0LgoJKHN5bnRoX211bHQpOiBDaGFuZ2UgdHlwZSBvZiBjb3N0X2xpbWl0IGFyZ3VtZW50IHRvIGJlIGEKCXBvaW50ZXIgdG8gYSBtdWx0X2Nvc3QuICBVcGRhdGUgYWxsIGNvc3QgY29tcGFyaXNvbnMgdG8gdXNlIHRoZQoJbmV3IG11bHRfY29zdCBpbmZyYXN0cnVjdHVyZS4gIEZvciBhbGdfYWRkX2ZhY3RvciBhbmQKCWFsZ19zdWJfZmFjdG9yIG9wZXJhdGlvbnMsIGxhdGVuY3kgaXMgbG93ZXIgdGhhbiB0aGUgcnR4X2Nvc3QuCgkoY2hvb3NlX211bHRfdmFyaWFudCk6ICBVcGRhdGUgY2FsbHMgdG8gc3ludGhfbXVsdC4gIFBlcmZvcm0KCWNvc3QgY29tcGFyaXNvbnMgdXNpbmcgdGhlIG5ldyBtdWx0X2Nvc3QgaW5mcmFzdHJ1Y3R1cmUuCgkoZXhwYW5kX211bHRfaGlnaHBhcnQpOiBVc2UgYWxnLmNvc3QuY29zdCBpbnN0ZWFkIG9mIGFsZy5jb3N0Cgl0byBvcHRhaW4gdGhlIHRvdGFsIHJ0eF9jb3N0IG9mIGEgc3ludGhfbXVsdCAiYWxnb3JpdGhtIi4KCjIwMDQtMDktMDEgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIGNvbmZpZy9yczYwMDAvcG93ZXI0Lm1kOiBJbmNyZWFzZSBzdG9yZSBsYXRlbmN5IHRvIDEyLgoJKiBjb25maWcvcnM2MDAwL3Bvd2VyNS5tZDogU2FtZS4KCjIwMDQtMDktMDEgIEphbWVzIEUgV2lsc29uICA8d2lsc29uQHNwZWNpZml4aW5jLmNvbT4KCglQUiB0YXJnZXQvMTQwNjQKCSogY29uZmlnL2F2ci9hdnIuYyAoYXZyX3VuaXF1ZV9zZWN0aW9uKTogRGVsZXRlIHByb3RvdHlwZSBhbmQKCWRlZmluaXRpb24uCgkoVEFSR0VUX0FTTV9VTklRVUVfU0VDVElPTik6IERlbGV0ZS4KCjIwMDQtMDktMDEgIFppZW1vd2l0IExhc2tpICA8emxhc2tpQGFwcGxlLmNvbT4KCgkqIGMtcGFyc2UuaW4gKHByaW1hcnkpOiBDYWxsIG9iamNfYnVpbGRfbWVzc2FnZV9leHByKCksCglvYmpjX2J1aWxkX3NlbGVjdG9yX2V4cHIoKSwgb2JqY19idWlsZF9wcm90b2NvbF9leHByKCksCglvYmpjX2J1aWxkX2VuY29kZV9leHByKCkgYW5kIG9iamNfYnVpbGRfc3RyaW5nX29iamVjdCgpIGluc3RlYWQgb2YKCWJ1aWxkX21lc3NhZ2VfZXhwcigpLCBidWlsZF9zZWxlY3Rvcl9leHByKCksIGJ1aWxkX3Byb3RvY29sX2V4cHIoKSwKCWJ1aWxkX2VuY29kZV9leHByKCkgYW5kIGJ1aWxkX29iamNfc3RyaW5nX29iamVjdCgpLCByZXNwZWN0aXZlbHkuCgkoY29tcG9uZW50X2RlY2xfbGlzdDIpOiBDYWxsIG9iamNfZ2V0X2NsYXNzX2l2YXJzKCkgaW5zdGVhZCBvZgoJZ2V0X2NsYXNzX2l2YXJzX2Zyb21fbmFtZSgpLgoJKGtleXdvcmRkZWNsKTogQ2FsbCBvYmpjX2J1aWxkX2tleXdvcmRfZGVjbCgpIGluc3RlYWQgb2YKCWJ1aWxkX2tleXdvcmRfZGVjbCgpLgoJKHJlY2VpdmVyKTogQ2FsbCBvYmpjX2dldF9jbGFzc19yZWZlcmVuY2UoKSBpbnN0ZWFkIG9mCglnZXRfY2xhc3NfcmVmZXJlbmNlKCkuCgkocmVzd29yZHMpOiBBZGQgYmxhbmsgbGluZSBiZWZvcmUgQEBpZm9iamMgc2VjdGlvbiwgZm9yIGNsYXJpdHkuCgoyMDAyLTA5LTAxICBGYXJpYm9yeiBKYWhhbmlhbiA8ZmphaGFuaWFuQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLmggKFJPVU5EX1RZUEVfQUxJR04pOiBSZXN0cmljdCBhbGlnbm1lbnQKCXRvIEFsdGl2ZWMgdmV0b3JzLgoKMjAwNC0wOS0wMSAgV3UgWW9uZ3dlaSAgPGFkYWhAc2gxNjMubmV0PgoJICAgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBndGhyLXdpbjMyLmggKF9fZ3RocmVhZF9yZWN1cnNpdmVfbXV0ZXhfdCk6IFVzZSAndW5zaWduZWQgbG9uZycsCglub3QgV2luZG93cyAnRFdPUkQnLgoJKF9fR1RIUkVBRF9SRUNVUlNJVkVfTVVURVhfSU5JVF9GVU5DVElPTik6IENvcnJlY3QgdHlwby4KCShfX0dUSFJFQURfUkVDVVJTSVZFX01VVEVYX0lOSVRfREVGQVVMVCk6IExpa2V3aXNlLgoJKF9fZ3Rocl93aW4zMl9yZWN1cnNpdmVfbXV0ZXhfaW5pdF9mdW5jdGlvbik6IEFkZCBwcm90b3R5cGUgZm9yCglfX0dUSFJFQURfSElERV9XSU4zMkFQSSBjYXNlLi4KCShfX2d0aHJfd2luMzJfcmVjdXJzaXZlX211dGV4X2xvY2spOiBMaWtld2lzZS4KCShfX2d0aHJfd2luMzJfcmVjdXJzaXZlX211dGV4X3RyeWxvY2spOiBMaWtld2lzZS4KCShfX2d0aHJfd2luMzJfcmVjdXJzaXZlX211dGV4X3VubG9jayk6IExpa2V3aXNlLgoJKF9fZ3RocmVhZF9yZWN1cnNpdmVfbXV0ZXhfaW5pdF9mdW5jdGlvbik7IEFkZCBkZWZpbml0aW9uIGZvcgoJX19HVEhSRUFEX0hJREVfV0lOMzJBUEkgY2FzZS4KCShfX2d0aHJlYWRfcmVjdXJzaXZlX211dGV4X2xvY2spOiBDb3JyZWN0IGNhbGwgdG8gSW50ZXJsb2NrZWREZWNyZW1lbnQuCgkqIGNvbmZpZy9pMzg2L2dydGhyLXdpbjMyLmMgKF9fZ3RocmVhZF9yZWN1cnNpdmVfbXV0ZXhfbG9jayk6IENvcnJlY3QKCWNhbGwgdG8gSW50ZXJsb2NrZWREZWNyZW1lbnQuCgoyMDA0LTA5LTAxICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogdHJlZS10YWlsY2FsbC5jIChmaW5kX3RhaWxfY2FsbHMpOiBBbHNvIGZhaWwgaXMgc3RhdGVtZW50IGhhcwoJdm9sYXRpbGUgb3BlcmFuZHMuCgoJKiB0cmVlLXNzYS5jIChwcm9wYWdhdGVfaW50b19hZGRyKTogUHJvcGVybHkgdGVzdCBmb3IgTEhSLgoKCSogZG9jL2MtdHJlZS50ZXhpOiBEb2N1bWVudCBuZXcgb3BlcmFuZHMgZm9yIEFSUkFZX1JFRiBhbmQKCUNPTVBPTkVOVF9SRUYuCgoyMDA0LTA5LTAxICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJKiBNYWtlZmlsZS5pbiAocnRsLXByb2ZpbGUubywgdmFsdWUtcHJvZi5vKTogQWRkIEdDQ19IIGRlcGVuZGVuY3kuCgkqIGNvbW1vbi5vcHQgKGZzcGVjdWxhdGl2ZS1wcmVmZXRjaGluZyk6IE5ldy4KCSogZmxhZ3MuaCAoZmxhZ19zcGVjdWxhdGl2ZV9wcmVmZXRjaGluZ19zZXQpOiBEZWNsYXJlLgoJKiBnY292LWlvLmMgKGdjb3Zfd3JpdGVfY291bnRlciwgZ2Nvdl9yZWFkX2NvdW50ZXIpOiBBbGxvdyBuZWdhdGl2ZQoJdmFsdWVzLgoJKiBvcHRzLmMgKGZsYWdfc2VwY3VsYXRpdmVfcHJlZmV0Y2hpbmdfc2V0KTogTmV3IHZhcmlhYmxlLgoJKGNvbW1vbl9oYW5kbGVfb3B0aW9uKTogSGFuZGxlIC1mc3BlY3VsYXRpdmUtcHJlZmV0Y2hpbmcuCgkqIHBhc3Nlcy5jIChyZXN0X29mX2NvbXBpbGF0aW9uKTogRGl0dG8uCgkqIHByb2ZpbGUuYyAoaW5zdHJ1bWVudF92YWx1ZXMsIGNvbXB1dGVfdmFsdWVfaGlzdG9ncmFtcywgYnJhbmNoX3Byb2IpOgoJVXNlIHZlY3RvcnMgaW5zdGVhZCBvZiBhcnJheXMuCgkqIHRvcGxldi5jIChwcm9jZXNzX29wdGlvbnMpOiBIYW5kbGUgLWZzcGVjdWxhdGl2ZS1wcmVmZXRjaGluZy4KCSogcnRsLXByb2ZpbGUuYzogSW5jbHVkZSBnZ2MuaC4KCShydGxfZ2VuX2ludGVydmFsX3Byb2ZpbGVyLCBydGxfZ2VuX3BvdzJfcHJvZmlsZXIsCglydGxfZ2VuX29uZV92YWx1ZV9wcm9maWxlcl9ub19lZGdlX21hbmlwdWxhdGlvbiwKCXJ0bF9nZW5fb25lX3ZhbHVlX3Byb2ZpbGVyLCBydGxfZ2VuX2NvbnN0X2RlbHRhX3Byb2ZpbGVyKTogVHlwZSBvZgoJYXJndW1lbnQgY2hhbmdlZC4KCSogdHJlZS1wcm9maWxlLmMgKHRyZWVfZ2VuX2ludGVydmFsX3Byb2ZpbGVyLCB0cmVlX2dlbl9wb3cyX3Byb2ZpbGVyLAoJdHJlZV9nZW5fb25lX3ZhbHVlX3Byb2ZpbGVyLCB0cmVlX2dlbl9jb25zdF9kZWx0YV9wcm9maWxlcik6IFR5cGUgb2YKCWFyZ3VtZW50IGNoYW5nZWQuCgkqIHZhbHVlLXByb2YuYzogSW5jbHVkZSBnZ2MuaC4KCShOT1BSRUZFVENIX1JBTkdFX01JTiwgTk9QUkVGRVRDSF9SQU5HRV9NQVgpOiBOZXcKCW1hY3Jvcy4KCShpbnNuX3ByZWZldGNoX3ZhbHVlc190b19wcm9maWxlLCBmaW5kX21lbV9yZWZlcmVuY2VfMSwKCWZpbmRfbWVtX3JlZmVyZW5jZV8yLCBmaW5kX21lbV9yZWZlcmVuY2UsIGdlbl9zcGVjdWxhdGl2ZV9wcmVmZXRjaCwKCXNwZWN1bGF0aXZlX3ByZWZldGNoaW5nX3RyYW5zZm9ybSk6IE5ldy4KCSh2YWx1ZV9wcm9maWxlX3RyYW5zZm9ybWF0aW9ucyk6IENhbGwgc3BlY3VsYXRpdmVfcHJlZmV0Y2hpbmdfdHJhbnNmb3JtLgoJKGluc25fdmFsdWVzX3RvX3Byb2ZpbGUpOiBDYWxsIGluc25fcHJlZmV0Y2hfdmFsdWVzX3RvX3Byb2ZpbGUuCgkoaW5zbl9kaXZtb2RfdmFsdWVzX3RvX3Byb2ZpbGUsIHJ0bF9maW5kX3ZhbHVlc190b19wcm9maWxlLAoJdHJlZV9maW5kX3ZhbHVlc190b19wcm9maWxlLCBmaW5kX3ZhbHVlcyB0byBwcm9maWxlKTogVXNlIHZlY3RvcnMKCWluc3RlYWQgb2YgYXJyYXlzLgoJKGZyZWVfcHJvZmlsZWRfdmFsdWVzKTogUmVtb3ZlZC4KCSogdmFsdWUtcHJvZi5oIChzdHJ1Y3QgaGlzdG9ncmFtX3ZhbHVlKTogUmVuYW1lZCB0bwoJc3RydWN0IGhpc3RvZ3JhbV92YWx1ZV90LgoJKGhpc3RvZ3JhbV92YWx1ZSwgaGlzdG9ncmFtX3ZhbHVlcyk6IE5ldyB0eXBlcy4KCShmaW5kX3ZhbHVlc190b19wcm9maWxlKTogRGVjbGFyYXRpb24gY2hhbmdlZC4KCShmcmVlX3Byb2ZpbGVkX3ZhbHVlcyk6IFJlbW92ZWQuCgkoc3RydWN0IHByb2ZpbGVfaG9va3MpOiBUeXBlIG9mIGFyZ3VtZW50IG9mIHRoZSBob29rcyBjaGFuZ2VkIHRvCgloaXN0b2dyYW1fdmFsdWUuCgkqIGRvYy9pbnZva2UudGV4aSAoLWZzcGVjdWxhdGl2ZS1wcmVmZXRjaGluZyk6IERvY3VtZW50LgoKMjAwNC0wOS0wMSAgWmRlbmVrIER2b3JhayAgPHJha2R2ZXJAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgoKCVBSIHJ0bC1vcHRpbWl6YXRpb24vMTY0MDgKCSogZ2NzZS5jIChyZXBsYWNlX3N0b3JlX2luc24pOiBGaXggTElCQ0FMTC9SRVRWQUwgbm90ZXMuCgoyMDA0LTA5LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL25zMzJrL25zMzJrLmggKFRSQU5TRkVSX0ZST01fVFJBTVBPTElORSk6IFJlbW92ZS4KCShUUkFNUE9MSU5FX1RFTVBMQVRFKTogTWVyZ2UgY29kZSBmcm9tIF9fdHJhbXBvbGluZSBpbmxpbmUuCgoyMDA0LTA5LTAxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGxpYmdjYy1zdGQudmVyIChHQ0NfMy40LjIpOiBFeHBvcnQgYWxzbyBfX3RyYW1wb2xpbmVfc2V0dXAuCgoyMDA0LTA5LTAxICBNaWtlIFN0dW1wICA8bXJzQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW4uYyAobWFjaG9waWNfc3ltYm9sX2RlZmluZWRfcCk6IEluIGFkZGl0aW9uIHRvCgliZWluZyBTWU1CT0xfUkVGX0xPQ0FMX1AsIGEgc3ltYm9sIG11c3QgYWxzbyBiZQoJISBTWU1CT0xfUkVGX0VYVEVSTkFMX1AsIGFzIG9ubHkgdGhvc2UgYXJlIF9hbHdheXNfIGxvY2FsbHkKCWRlZmluZWQgaW4gdGhpcyBvdXRwdXQgZmlsZSwgb3IgdHJhbnNsYXRpb24gdW5pdCBpbiB0aGUgY2FzZQoJb2YgSU1BIG5vdCBiZWluZyB1c2VkLgoJKG1hY2hvcGljX291dHB1dF9pbmRpcmVjdGlvbik6IFNZTUJPTF9SRUZfTE9DQUxfUCBzeW1ib2xzCgluZXZlciBuZWVkIC5pbmRpcmVjdF9zeW1ib2wgd2hlbiBpbmRpcmVjdGluZy4KCjIwMDQtMDktMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuaW4gKGJiLXJlb3JkZXIubyk6IEFkZCBzZXZlcmFsIGRlcGVuZGVuY2llcy4KCjIwMDQtMDktMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZm9sZC1jb25zdC5jIChvcGVyYW5kX2VxdWFsX3ApOiBSZXF1aXJlIGVxdWFsIHNpZ24gYWxzbyBmb3IKCUZJWF97Q0VJTCxUUlVOQyxGTE9PUixST1VORH1fRVhQUi4KCjIwMDQtMDktMDEgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogY29uZmlnLmdjYyAoLS13aXRoLWNwdSBvbiBBUk0pOiBQcmVzZXJ2ZSB0aGUgY2Fub25pY2FsIGNwdSBuYW1lCglmb3IgdXNlIGluIGNvbmZpZ2FyZ3MuaC4gIFB1dCB0aGUgY25hbWUgaW4gYSBzZXBhcmF0ZSB2YXJpYWJsZS4gIFVzZQoJdGhhdCB0byBzZXQgdGFyZ2V0X2NwdV9kZWZhdWx0Mi4KCjIwMDQtMDktMDEgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoJICAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvc2gvc2gubWQgKCJsZW5ndGgiKTogSW5jcmVhc2UgYnJhbmNoIGxlbmd0aCB3aGVuCglTSDEgcGljIGNvZGUgdG8gMTg6IDEyIGJ5dGVzIG9mIGluc3RydWN0aW9ucywgNCBieXRlIGZvciB0aGUKCWNvbnN0YW50LCAyIGJ5dGUgZm9yIGFsaWduaW5nIHRoZSBjb25zdGFudC4KCjIwMDQtMDktMDEgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogYXJtL2FybS1jb3Jlcy5kZWYgKEFSTV9DT1JFKTogQWRkIG5ldyBmaWVsZCBmb3IgdGhlIHJlYWwgbmFtZSBvZiB0aGUKCUNQVS4KCShhcm03dGRtaS1zKTogTmV3IENQVSBuYW1lLgoJKiBhcm0vYXJtLmMgKEFSTV9DT1JFKTogVXBkYXRlIGZvciBuZXcgZm9ybWF0LgoJKiBhcm0vYXJtLmggKEFSTV9DT1JFKTogTGlrZXdpc2UuCgkqIGFybS9nZW50dW5lLnNoOiBVcGRhdGUgZm9yIGV4dHJhIGZpZWxkLgoJKiBjb25maWcuZ2NjOiBMaWtld2lzZS4KCSogYXJtL2FybS10dW5lLm1kOiBSZWdlbmVyYXRlLgoJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IHRoZSByZWFsIHByb2Nlc3NvciBuYW1lcyBmb3IgQVJNIGNwdXMuCgoyMDA0LTA5LTAxICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIGFybS9pZWVlNzU0LWRmLlMgKGFlYWJpX3VsMmQsIGFlYWJpX2wyZCwgZmxvYXR1bmRpZGYpCgkoZmxvYXRkaWRmKTogTmV3IGZ1bmN0aW9ucy4KCSogYXJtL2llZWU3NTQtc2YuUyAoYWVhYmlfdWwyZiwgYWVhYmlfbDJmLCBmbG9hdHVuZGlzZikKCShmbG9hdGRpc2YpOiBOZXcgZnVuY3Rpb25zLgoJKiB0LWFybS1lbGY6IFVzZSB0aGVtLgoKMjAwNC0wOS0wMSAgWmllbW93aXQgTGFza2kgIDx6bGFza2lAYXBwbGUuY29tPgoKCSogYy1jb21tb24uaCAobG9va3VwX2ludGVyZmFjZSk6IFJlbW92ZSBwcm90b3R5cGUuCgkoaXNfY2xhc3NfbmFtZSk6IFJlbmFtZSB0byBvYmpjX2lzX2NsYXNzX25hbWUuCgkobG9va3VwX29iamNfaXZhcik6IFJlbmFtZSB0byBvYmpjX2xvb2t1cF9pdmFyLgoJKGdldF9jdXJyZW50X3Njb3BlKTogUmVuYW1lIHRvIG9iamNfZ2V0X2N1cnJlbnRfc2NvcGUuCgkqIGMtZGVjbC5jIChnZXRfY3VycmVudF9zY29wZSk6IFJlbmFtZSB0byBvYmpjX2dldF9jdXJyZW50X3Njb3BlLgoJKiBjLXBhcnNlLmluIChwYXJtbGlzdF9vcl9pZGVudGlmaWVyc18xKTogR2V0IHJpZCBvZiB1bnVzZWQgdmFyaWFibGUuCgkoeXlsZXhuYW1lKTogQ2FsbCBvYmpjX2lzX2NsYXNzX25hbWUoKSBpbnN0ZWFkIG9mIGlzX2NsYXNzX25hbWUoKS4KCSogYy10eXBlY2suYyAoYnVpbGRfZXh0ZXJuYWxfcmVmKTogQ2FsbCBvYmpjX2xvb2t1cF9pdmFyKCkKCWluc3RlYWQgb2YgbG9va3VwX29iamNfaXZhcigpLgoJKiBzdHViLW9iamMuYyAobG9va3VwX2ludGVyZmFjZSk6IFJlbW92ZSBzdHViLgoJKGlzX2NsYXNzX25hbWUpOiBSZW5hbWUgdG8gb2JqY19pc19jbGFzc19uYW1lLgoJKGxvb2t1cF9vYmpjX2l2YXIpOiBSZW5hbWUgdG8gb2JqY19sb29rdXBfaXZhci4KCjIwMDQtMDgtMzEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcuZ2NjIChhcm0qLSotc3ltYmlhbmVsZiopOiBEbyBub3QgaW5jbHVkZSB0LWJwYWJpLgoJKiBjb25maWcvYXJtL2xpYjFmdW5jcy5hc206IERvIG5vdCBpbmNsdWRlIHN1cHBsZW1lbnRhbCAuUyBmaWxlcwoJd2hlbiBjb21waWxpbmcgZm9yIFN5bWJpYW4uCgkqIGNvbmZpZy9hcm0vc3ltYmlhbi5oIChSRU5BTUVfTElCUkFSWSk6IE5ldyBtYWNyby4KCShUQVJHRVRfT1NfQ1BQX0JVSUxUSU5TKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9hcm0vdC1zeW1iaWFuIChMSUIxQVNNRlVOQ1MpOiBEZWZpbmUuCgoyMDA0LTA4LTMxICBTdGFuIFNoZWJzICA8c2hlYnNAYXBwbGUuY29tPgoKCSogdG9wbGV2LmMgKHByb2Nlc3Nfb3B0aW9ucyk6IEVuc3VyZSBkZWJ1Z19ob29rcyBpcyBpbml0aWFsaXplZC4KCjIwMDQtMDgtMzEgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0YXJnZXQtZGVmLmggKFRBUkdFVF9DWFgpOiBBZGQgVEFSR0VUX0NYWF9FWFBPUlRfQ0xBU1NfREFUQS4KCSogdGFyZ2V0LmggKGN4eCk6IEFkZCBleHBvcnRfY2xhc3NfZGF0YS4KCSogY29uZmlnL2FybS9hcm0uYyAoYXJtX2N4eF9leHBvcnRfY2xhc3NfZGF0YSk6IE5ldyBmdW5jdGlvbi4KCShUQVJHRVRfQ1hYX0VYUE9SVF9DTEFTU19EQVRBKTogVXNlIGl0LgoJKiBkb2MvdG0udGV4aSAoVEFSR0VUX0NYWF9FWFBPUlRfQ0xBU1NfREFUQSk6IERvY3VtZW50IGl0LgoKMjAwNC0wOC0zMSAgS2F6IEtvamltYSAgPGtrb2ppbWFAZ2NjLmdudS5vcmc+CgoJKiBjb25maWcvc2gvc2guYyAob3V0cHV0X2JyYW5jaCk6IENoZWNrIHRoZSBpbnNuIGxlbmd0aCBwb3NzaWJseQoJaW4gdGhlIGRlbGF5ZWQgc2xvdC4KCjIwMDQtMDgtMzEgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiB0cmVlLXByZXR0eS1wcmludC5jIChkdW1wX2dlbmVyaWNfbm9kZSwgY2FzZSBDT05WRVJUX0VYUFIpOiBBZGQKCWJsYW5rIGFmdGVyICcpJy4KCShvcF9zeW1ib2wsIGNhc2UgKl97RElWLE1PRH1fRVhQUik6IFNheSB3aGF0IHJvdW5kaW5nIGlzIGJlaW5nIHVzZWQuCgoJKiBjLWNvbW1vbi5jIChjX2FsaWdub2ZfZXhwcik6IFVzZSBERUNMX0FMSUdOX1VOSVQgYW5kIFRZUEVfQUxJR05fVU5JVC4KCShjX3NpemVvZl9vZl9hbGlnbm9mX3R5cGUpOiBMaWtld2lzZS4KCSogZXhwci5jIChhcnJheV9yZWZfZWxlbWVudF9zaXplKTogTGlrZXdpc2UuCgkoaGlnaGVzdF9wb3cyX2ZhY3Rvcl9mb3JfdGFyZ2V0KTogTGlrZXdpc2UuCgkqIGdpbXBsaWZ5LmMgKGNhbm9uaWNhbGl6ZV9hZGRyX2V4cHIpOiBMaWtld2lzZS4KCShnaW1wbGlmeV9jb21wb3VuZF9sdmFsKTogTGlrZXdpc2UuCgkqIHN0b3ItbGF5b3V0LmMgKGZpbmFsaXplX3JlY29yZF9zaXplLCBmaW5hbGl6ZV90eXBlX3NpemUpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtY2NwLmMgKG1heWJlX2ZvbGRfb2Zmc2V0X3RvX2FycmF5X3JlZik6IExpa2V3aXNlLgoJKiB2YXJhc20uYyAoYXNzZW1ibGVfdmFyaWFibGUpOiBMaWtld2lzZS4KCShvdXRwdXRfY29uc3RhbnRfZGVmX2NvbnRlbnRzKTogQWxpZ25tZW50cyBhcmUgdW5zaWduZWQuCgoyMDA0LTA4LTMxICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoJICAgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiB0cmVlLWNmZy5jIChjZmdfcmVtb3ZlX3VzZWxlc3Nfc3RtdHNfYmIpOiBBbHNvIGludmFsaWRhdGUgaWYgVkFMCglnZXRzIG1vZGlmaWVkLgoKMjAwNC0wOC0zMSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGhvb2tzLmMgKGhvb2tfYm9vbF92b2lkX3RydWUpOiBOZXcgZnVuY3Rpb24uCgkqIGhvb2tzLmggKGhvb2tfYm9vbF92b2lkX3RydWUpOiBEZWNsYXJlLgoJKiB0YXJnZXQtZGVmLmggKFRBUkdFVF9DWFgpOiBBZGQKCVRBUkdFVF9DWFhfS0VZX01FVEhPRF9NQVlfQkVfSU5MSU5FLgoJKiB0YXJnZXQuaCAoc3RydWN0IGN4eCk6IEFkZCBrZXlfbWV0aG9kX21heV9iZV9pbmxpbmUuCgkqIGNvbmZpZy9hcm0vYXJtLmMgKGFybV9jeHhfa2V5X21ldGhvZF9tYXlfYmVfaW5saW5lKTogTmV3CglmdW5jdGlvbi4KCShUQVJHRVRfQ1hYX0tFWV9NRVRIT0RfTUFZX0JFX0lOTElORSk6IE5ldyBtYWNyby4KCSogY29uZmlnL2FybS9icGFiaS5oOiBVc2UgX19USFVNQl9JTlRFUldPUktfXyBpbnN0ZWFkIG9mCglfX1RIVU1CX0lOVEVSV09SSy4KCjIwMDQtMDgtMzEgIERlbmlzIENoZXJ0eWtvdiAgPGRlbmlzY0BvdmVydGEucnU+CgoJUFIgdGFyZ2V0LzE1NDE3CgkqIGNvbmZpZy9hdnIvYXZyLmMgKGF2cl9oYXJkX3JlZ25vX21vZGVfb2spOiBFbmFibGUgdXNhZ2Ugb2YKCWZyYW1lIHBvaW50ZXIgcmVnaXN0ZXIgb25seSBpbiBQbW9kZSB3aGlsZSByZWxvYWQgaW4gcHJvZ3Jlc3MuCgoyMDA0LTA4LTMxICBTdGVwaGFuZSBDYXJyZXogIDxzdGNhcnJlekBuZXJpbS5mcj4KCglQUiB0YXJnZXQvMTUzMzQKCSogY29uZmlnL202OGhjMTEvbTY4aGMxMS5jIChtNjhoYzExX292ZXJyaWRlX29wdGlvbnMpOiBEaXNhYmxlIC1md2ViCgliZWNhdXNlIGl0IGJyZWFrcyB0aGUgMzItYml0IHNoaWZ0IHBhdHRlcm5zIHRoYXQgcmVseSBvbiBhIG1hdGNoX2R1cC4KCjIwMDQtMDgtMzEgIE1hdHQgQXVzdGVybiAgPGF1c3Rlcm5AYXBwbGUuY29tPgoKCSogY29uZmlnL2Rhcndpbi5jIChkYXJ3aW5fbWFrZV9kZWNsX29uZV9vbmx5KTogQWxsb2NhdGUgc2VjdGlvbgoJbmFtZXMgb25jZSBwZXIgY29tcGlsYXRpb24sIGluc3RlYWQgb2Ygb25jZSBwZXIgc3ltYm9sLgoKMjAwNC0wOC0zMSAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmluIChidWlsZF9zdWJkaXIpOiBOZXcgc3Vic3RpdHV0aW9uLgoJKGZpeGluYy5zaCk6IFNpbXBsaWZ5IGhlYXZpbHkgc2luY2UgZml4aW5jbHVkZXMgaXMgYWxyZWFkeSBidWlsdC4KCShzdG1wLWZpeGluYyk6IERlcGVuZCBvbiBzcGVjcy5yZWFkeS4KCShpbnN0YWxsLW1raGVhZGVycyk6IFVzZSBuZXcgbG9jYXRpb24gb2YgZml4aW5jbHVkZXMuCgkoY2xlYW4pOiBEbyBub3QgZGVzY2VuZCBpbnRvIGZpeGluYy4KCShGT1JCVUlMRCk6IFJlcGxhY2Ugd2l0aCAuLi8kKGJ1aWxkX3N1YmRpcikuCgkqIGNvbmZpZ3VyZS5hYyAoYnVpbGRfc3ViZGlyKTogU3Vic3RpdHV0ZS4KCShGT1JCVUlMRCk6IERvIG5vdCBzZXQuCgkoYWxsX291dHB1dHMpOiBSZW1vdmUgZml4aW5jL01ha2VmaWxlLgoJKGRlZmF1bHQgY29tbWFuZHMpOiBEbyBub3QgY3JlYXRlIGxpbmtzIGluIGZpeGluYy4KCSogbWtmaXhpbmMuc2g6IE5ldywgZnJvbSBmaXhpbmMvbWtmaXhpbmMuc2ggd2l0aG91dAoJdGhlIGZpeGluY2x1ZGVzIGNvbmZpZ3VyYXRpb24gc3RlcHMgYW5kIHN1YnN0aXR1dGluZwoJQEZJWElOQ0xAIGluIGZpeGluYy5pbi4KCSogZml4aW5jLmluOiBOZXcsIGZyb20gZml4aW5jL2ZpeGluY2wuc2guCgoJKiBmaXhpbmMvKjogUmVtb3ZlZC4KCjIwMDQtMDgtMzEgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYXR0cmlicy5jIChzdHJpcF9hdHRycyk6IFJlbW92ZS4KCShzcGxpdF9zcGVjc19hdHRycyk6IE1vdmUgLi4uCgkqIGMtZGVjbC5jOiAuLi4gdG8gaGVyZS4KCSogdHJlZS5oIChzcGxpdF9zcGVjc19hdHRycywgc3RyaXBfYXR0cnMpOiBSZW1vdmUuCgkqIGMtdHJlZS5oIChzcGxpdF9zcGVjc19hdHRycyk6IERlY2xhcmUuCgoyMDA0LTA4LTMxICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiByZWFkLXJ0bC5jOiBEaXNhYmxlIFJUTCBjaGVja2luZy4KCShhcHBseV9tYWNyb190b19ydHgpOiBVc2UgWFRNUEwgdG8gYWNjZXNzICdUJyBmaWVsZHMuCgoyMDA0LTA4LTMxICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChmY29uZCk6IE5ldyBjb2RlIG1hY3JvIGFuZCBhdHRyaWJ1dGUuCgkoc3Vub3JkZXJlZF9bc2RdZiwgc3VuZXFfW3NkXWYsIHN1bmx0X1tzZF1mLCBzdW5sZV9bc2RdZikKCShzZXFfW3NkXWYsIHNsdF9bc2RdZiwgc2xlX1tzZF1mKTogUmVkZWZpbmUgdXNpbmcgOlNDQUxBUkYgYW5kIGZjb25kLgoJKHNndF9bc2RdZiwgc2dlX1tzZF1mKTogUmVkZWZpbmUgdXNpbmcgOlNDQUxBUkYuCgoyMDA0LTA4LTMwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVJldmVydDoKCTIwMDQtMDgtMjkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CglQUiBydGwtb3B0aW1pemF0aW9uLzE2NTkwCgkqIGdjc2UuYyAocHJlX2RlbGV0ZSk6IERvIG5vdCBjcmVhdGUgaW52YWxpZCBSRUdfRVFVQUwgbm90ZXMuCgoyMDA0LTA4LTMwICBBbmRyZXcgUGluc2tpICA8YXBpbnNraUBhcHBsZS5jb20+CgoJKiBoYXJkLXJlZy1zZXQuaDoKCXMvSE9TVF9CSVRTX1BFUl9XSURFU19GQVNUX0lOVC9IT1NUX0JJVFNfUEVSX1dJREVTVF9GQVNUX0lOVC4KCSogQ2hhbmdlTG9nOiBGaXggcHJldmlvdXMgQ2hhbmdlTG9nIGVudHJ5LgoKCVBSIHJ0bC1vcHQvMTM5ODcKCSogY29uZmlnLmhvc3QgKHVzZV9sb25nX2xvbmdfZm9yX3dpZGVzdF9mYXN0X2ludCk6IE5ldywgZGVmYXVsdCBpcwoJb2ZmLgoJKGlhNjQtKi1ocHV4Kik6IEVuYWJsZSB1c2VfbG9uZ19sb25nX2Zvcl93aWRlc3RfZmFzdF9pbnQuCgkqIGNvbmZpZ3VyZS5hYzogSWYgdXNlX2xvbmdfbG9uZ19mb3Jfd2lkZXN0X2Zhc3RfaW50LCB0aGVuCglkZWZpbmUgVVNFX0xPTkdfTE9OR19GT1JfV0lERVNUX0ZBU1RfSU5ULgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KCSogaHdpbnQuaCAoSE9TVF9XSURFU1RfRkFTVF9JTlQsIEhPU1RfQklUU19QRVJfV0lERVNUX0ZBU1RfSU5UKToKCU5ldzogd2lkZXN0IGludGVnZXIgdHlwZSBzdXBwb3J0ZWQgZWZmaWNpZW50bHkgaW4gaGFyZHdhcmUgZm9yIHRoZQoJaG9zdC4KCSogc2JpdG1hcC5oIChTQklUTUFQX0VMVF9CSVRTKTogRGVmaW5lIGJhc2VkIG9uCglIT1NUX0JJVFNfUEVSX1dJREVTVF9GQVNUX0lOVC4KCShTQklUTUFQX0VMVF9UWVBFKTogRGVmaW5lIGJhc2VkIG9uIEhPU1RfV0lERVNUX0ZBU1RfSU5ULgoJKiBoYXJkLXJlZy1zZXQuaCAoSEFSRF9SRUdfRUxUX1RZUEUpOiBEZWZpbmUgYmFzZWQgb24KCUhPU1RfV0lERVNUX0ZBU1RfSU5UCglpbnN0ZWFkIG9mIEhPU1RfV0lERV9JTlQuCgkoSEFSRF9SRUdfU0VUX0xPTkdTKTogTGlrZXdpc2UuCgkoVUhPU1RfQklUU19QRVJfV0lERV9JTlQpOiBMaWtld2lzZS4KCUNoYW5nZSB0aGUgY2hlY2tzIGZvciB0aGUgZmFzdCBjYXNlcyB0byBiZSBiYXNlZCBvbgoJSE9TVF9CSVRTX1BFUl9XSURFU1RfRkFTVF9JTlQgaW5zdGVhZCBvZiBIT1NUX0JJVFNfUEVSX1dJREVfSU5ULgoKMjAwNC0wOC0zMCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogY2ZnY2xlYW51cC5jIChtZXJnZV9tZW1hdHRycyk6IExvb2sgYXQgdGhlIHZhbHVlIG9mIE1FTV9TSVpFLAoJbm90IHRoZSBwb2ludGVycy4KCjIwMDQtMDgtMzAgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCVBSIDEyNzM4CglQUiAxNzIwNQoJUmFkYXIgMzQ2MDUyNgoJUmFkYXIgMzc3NTcyOQoJKiBjLWRlY2wuYyAoZ3Jva2RlY2xhcmF0b3IpOiBQcm9kdWNlIGVycm9yIGZvciAnc3RhdGljJyBvbiBsb2NhbAoJZnVuY3Rpb24gZGVjbGFyYXRpb24uCgoyMDA0LTA4LTMwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZXhwci5jIChhcnJheV9yZWZfZWxlbWVudF9zaXplKTogRm9yY2UgYWxpZ25lZF9zaXplIGJhY2sgdG8KCXNpemV0eXBlLgoJKGNvbXBvbmVudF9yZWZfZmllbGRfb2Zmc2V0KTogU2ltaWxhcmx5IGZvciBhbGlnbmVkX29mZnNldC4KCSogdHJlZS5jIChyZWNvbXB1dGVfdHJlZV9pbnZhcmFudF9mb3JfYWRkcl9leHByKTogTWFyayByYXcKCWxvdy1ib3VuZCwgZWxlbWVudC1zaXplLCBmaWVsZC1vZmZzZXQgZmllbGRzIHJhdGhlciB0aGFuCgljb21wdXRlZCB2YWx1ZXMuCgoyMDA0LTA4LTMwICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtcGFyc2UuaW4gKHBhcm1saXN0X29yX2lkZW50aWZpZXJzXzEpOiBSZW1vdmUgdW5yZWFjaGFibGUgYW5kCglyZWR1bmRhbnQgY29kZS4KCjIwMDQtMDgtMzAgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYy10cmVlLmggKHN0cnVjdCBsYW5ndWFnZV9mdW5jdGlvbik6IEFkZCBhcmdfaW5mbyBlbGVtZW50LgoJKiBjLWRlY2wuYyAoY3VycmVudF9mdW5jdGlvbl9hcmdfaW5mbyk6IE5ldy4KCShncm9rZGVjbGFyYXRvciwgc3RvcmVfcGFybV9kZWNscyk6IFVzZSBpdCBpbnN0ZWFkIG9mCglERUNMX0FSR1VNRU5UUy4KCShjX3B1c2hfZnVuY3Rpb25fY29udGV4dCwgY19wb3BfZnVuY3Rpb25fY29udGV4dCk6IFNhdmUgYW5kCglyZXN0b3JlIGl0LgoKMjAwNC0wOC0zMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGMtdHlwZWNrLmMgKGJ1aWxkX3VuYXJ5X29wKTogRG9uJ3QgZXhwYW5kIEFERFJfRVhQUiBvZiBhCglDT01QT05FTlRfUkVGIHRvIHBvaW50ZXIgYXJpdGhtZXRpYy4KCSogdmFyYXNtLmMgKGluaXRpYWxpemVyX2NvbnN0YW50X3ZhbGlkX3ApOiBBbGxvdyAiJigqYykuZiIsIGZvcgoJY29uc3RhbnQgImMiIGFzIGEgdmFsaWQgY29uc3RhbnQgaW5pdGlhbGl6ZXIuICBBbGxvdyBuYXJyb3dpbmcgb2YKCWRpZmZlcmVuY2VzIGFnYWluc3QgdGhlIHNhbWUgYmFzZSBvYmplY3QsIGZvciBhbnkgYmFzZSBvYmplY3QuCgoyMDA0LTA4LTMwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZXhwci5jIChleHBhbmRfZXhwcl9hZGRyX2V4cHIpOiBOZXcuCgkoZXhwYW5kX2V4cHJfcmVhbF8xKSA8Y2FzZSBBRERSX0VYUFI+OiBVc2UgaXQuCgoyMDA0LTA4LTMwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLmMgKE1JUFNfRlBfQ09ORElUSU9OUyk6IE5ldyBtYWNyby4KCShtaXBzX2ZwX2NvbmRpdGlvbik6IE5ldyBlbnVtLgoJKG1pcHNfZnBfY29uZGl0aW9ucyk6IE5ldyBhcnJheS4KCShwcmludF9mY2Nfb3BlcmFuZCk6IERlbGV0ZS4KCShwcmludF9vcGVyYW5kKTogUmVtb3ZlICVWLCAldiBhbmQgJVEuICBSZWRlZmluZSAlWiBzbyB0aGF0IGl0IHByaW50cwoJdGhlIG9wZXJhbmQgYW5kIGNvbW1hIGlmIGFuZCBvbmx5IGlmIElTQV9IQVNfOENDLiAgQWRkICVZLgoJKGJ1aWx0aW5fZGVzY3JpcHRpb24pOiBBZGQgImNvbmQiIGZpZWxkLgoJKERJUkVDVF9CVUlMVElOKTogSW5pdGlhbGl6ZSBpdC4KCShDTVBfe1NDQUxBUixQUyw0U31fQlVJTFRJTlMsIE1PVlRGX0JVSUxUSU5TKTogU3BsaXQgSU5TTiBwYXJhbWV0ZXIKCWludG8gSU5TTiBhbmQgQ09ERS4gIEluaXRpYWxpemUgdGhlICJjb25kIiBmaWVsZC4KCShDTVBfQlVJTFRJTlMpOiBVcGRhdGUgYWNjb3JkaW5nbHkuCgkobWlwc19iZGVzYyk6IFVzZSBNSVBTX0ZQX0NPTkRJVElPTlMgdG8gaW52b2tlIENNUF9CVUlMVElOUy4KCShtaXBzX2V4cGFuZF9idWlsdGluX21vdnRmLCBtaXBzX2V4cGFuZF9idWlsdGluX2NvbXBhcmUpOiBUYWtlIHRoZQoJbWlwc19mcF9jb25kaXRpb24gYXMgYXJndW1lbnQuICBNYWtlIGl0IHRoZSBmaW5hbCBvcGVyYW5kIG9mIHRoZQoJY29tcGFyaXNvbiBpbnN0cnVjdGlvbi4KCShtaXBzX2V4cGFuZF9idWlsdGluKTogVXBkYXRlIGFjY29yZGluZ2x5LgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChVTlNQRUNfQ18qLCBVTlNQRUNfQ0FCU18qKTogRGVsZXRlLgoJKFVOU1BFQ19DLCBVTlNQRUNfQ0FCUyk6IE5ldyBjb25zdGFudHMuICBTaHVmZmxlIG90aGVycyB0byBmaWxsCgl0aGUgZ2Fwcy4KCSogY29uZmlnL21pcHMvbWlwcy1wcy0zZC5tZCAobWlwc19jb25kX21vdmVfdGZfcHMsIGJjMWFueVsyNF1bZnRdKToKCURvbid0IHVzZSB0aGUgJ1EnIG9wZXJhbmQgcHJlZml4OyBqdXN0IHByaW50IHRoZSBvcGVyYW5kIG5vcm1hbGx5LgoJKG1pcHNfY2Fic18qLCBtaXBzX2NfKik6IERlbGV0ZSwgcmVwbGFjaW5nIHdpdGguLi4KCShtaXBzX2NfY29uZF97cHMsNHN9LCBtaXBzX2NhYnNfY29uZF97cyxkLHBzLDRzfSk6IC4uLnRoZXNlIG5ldwoJcGF0dGVybnMuICBTcGxpdCB0aGUgNHMgdmVyc2lvbnMgaW50byAyIHBzIHBhdHRlcm5zIGFmdGVyIHJlbG9hZC4KCjIwMDQtMDgtMzAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBmb2xkLWNvbnN0LmMgKHRyZWVfZXhwcl9ub256ZXJvX3ApOiBVc2UgZ2V0X2Jhc2VfYWRkcmVzcyBiZWZvcmUKCWFzc3VtaW5nIGFuIEFERFJfRVhQUiBpcyBub24tbnVsbC4KCjIwMDQtMDgtMzAgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogZ3Roci1wb3NpeC5oLCBndGhyLWRjZS5oOiBBZGQgI3ByYWdtYSB3ZWFrcy4KCjIwMDQtMDgtMzAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBhbGlhcy5jIChtZW1zX2luX2Rpc2pvaW50X2FsaWFzX3NldHNfcCwgcmVjb3JkX2FsaWFzX3N1YnNldCwKCXJlY29yZF9zZXQsIHJ0eF9lcXVhbF9mb3JfbWVtcmVmX3AsIGluaXRfYWxpYXNfYW5hbHlzaXMpOiBVc2UKCWdjY19hc3NlcnQgYW5kIGdjY191bnJlYWNoYWJsZSBpbnN0ZWFkIG9mIGFib3J0LgoJKiBhbGxvYy1wb29sLmMgKGFib3J0LCBmYW5jeV9hYm9ydCk6IFJlbW92ZS4KCShjcmVhdGVfYWxsb2NfcG9vbCwgZnJlZV9hbGxvY19wb29sLCBwb29sX2FsbG9jLCBwb29sX2ZyZWUpOiBVc2UKCWdjY19hc3NlcnQgb3IgZ2NjX3VucmVhY2hhYmxlLgoJKiBhdHRyaWJzLmMgKGluaXRfYXR0cmlidXRlcywgZGVjbF9hdHRyaWJ1dGVzKTogTGlrZXdpc2UuCgkqIGJiLXJlb3JkZXIuYyAoRlJFRSwgZmluZF90cmFjZXNfMV9yb3VuZCwgY29weV9iYiwKCW1hcmtfYmJfZm9yX3VubGlrZWx5X2V4ZWN1dGVkX3NlY3Rpb24sCglhZGRfbGFiZWxzX2FuZF9taXNzaW5nX2p1bXBzLCBmaXhfY3Jvc3NpbmdfY29uZGl0aW9uYWxfYnJhbmNoZXMsCglmaXhfY3Jvc3NpbmdfdW5jb25kaXRpb25hbF9icmFuY2hlcyk6ICBMaWtld2lzZS4KCSogYml0bWFwLmMgKGJpdG1hcF9maXJzdF9zZXRfYml0LCBiaXRtYXBfbGFzdF9zZXRfYml0LAoJYml0bWFwX29wZXJhdGlvbik6ICBMaWtld2lzZS4KCSogYnQtbG9hZC5jIChpbnNuX3NldHNfYnRyX3AsIGF1Z21lbnRfbGl2ZV9yYW5nZSwKCW1vdmVfYnRyX2RlZik6ICBMaWtld2lzZS4KCSogYnVpbHRpbnMuYyAoY19yZWFkc3RyLCBleHBhbmRfYnVpbHRpbl9sb25nam1wLCBhcHBseV9hcmdzX3NpemUsCglhcHBseV9yZXN1bHRfc2l6ZSwgZXhwYW5kX2J1aWx0aW5fYXBwbHksIGV4cGFuZF9idWlsdGluX21hdGhmbiwKCWV4cGFuZF9idWlsdGluX21hdGhmbl8yLCBleHBhbmRfYnVpbHRpbl9tYXRoZm5fMywKCWJ1aWx0aW5fbWVtY3B5X3JlYWRfc3RyLCBleHBhbmRfbW92c3RyLCBleHBhbmRfYnVpbHRpbl9zdHBjcHksCglleHBhbmRfYnVpbHRpbl9tZW1jbXAsIGV4cGFuZF9idWlsdGluX2FyZ3NfaW5mbywKCXN0ZF9naW1wbGlmeV92YV9hcmdfZXhwciwgZXhwYW5kX2J1aWx0aW5fdW5vcCwKCWV4cGFuZF9idWlsdGluX2ZwdXRzLCBleHBhbmRfYnVpbHRpbl9wcm9maWxlX2Z1bmMsCglleHBhbmRfYnVpbHRpbl9mb3JrX29yX2V4ZWMsIGZvbGRfYnVpbHRpbl9iaXRvcCwKCWZvbGRfYnVpbHRpbl9jbGFzc2lmeSwgZm9sZF9idWlsdGluX2ZwdXRzKTogTGlrZXdpc2UuCgoyMDA0LTA4LTMwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZ2Nvdi1pby5jIChHQ09WX0NIRUNLKTogVXNlIGdjY19hc3NlcnQgd2hlbiBhdmFpbGFibGUuCgkqIGdjb3YuYyAoYWJvcnQpOiBSZW1vdmUgdW5kZWYuCgoJKiB0cmVlLmggKEJJTkZPX1BSSU1BUllfQkFTRV9PRik6IFJlbW92ZS4KCShzdHJ1Y3QgdHJlZV9iaW5mbyk6IFJlbW92ZSBwcmltYXJ5IGZpZWxkLgoKMjAwNC0wOC0zMCAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGZpeGluYy9NYWtlZmlsZS5pbiAobWFjaG5hbWUuaCk6IFJlbW92ZS4KCShmaXhpbmNsLngpOiBEbyBub3QgcGFzcyAkQCB0byBnZW5maXhlcy4KCSogZml4aW5jL2dlbmZpeGVzOiBSZW1vdmUgY29kZSB0byBwcm9kdWNlIG1hY2huYW1lLmguCgkqIGZpeGluYy9maXhpbmNsLnNoOiBNb3ZlIGl0IGhlcmUgaW5zdGVhZC4KCSogZml4aW5jL2ZpeGxpYi5jOiBEbyBub3QgY29uZGl0aW9uYWxpemUgb24gTU5fTkFNRV9QQVQncyBwcmVzZW5jZSwKCWluc3RlYWQgY2hlY2sgaWYgcHpfbW5fbmFtZV9wYXQgaXMgTlVMTC4gIE1ha2UgbW5fZ2V0X3JlZ2V4cHMKCXJldHVybiBhIGJvb2wgaW5kaWNhdGluZyB3aGV0aGVyIHB6X21uX25hbWVfcGF0IGlzIE5VTEwuCgkqIGZpeGluYy9maXhsaWIuaDogRG8gbm90IGNvbmRpdGlvbmFsaXplIG9uIE1OX05BTUVfUEFUJ3MgcHJlc2VuY2UuCglEZWNsYXJlIGV4dGVybiBDIHZhcmlhYmxlcyBmb3IgdGhlIEVOVl9UQUJMRS4KCSogZml4aW5jL2ZpeGZpeGVzLmM6IERvIG5vdCBjb25kaXRpb25hbGl6ZSBvbiBNTl9OQU1FX1BBVCdzIHByZXNlbmNlLAoJaW5zdGVhZCB1c2UgdGhlIHJlc3VsdCBvZiBtbl9nZXRfcmVnZXhwcy4KCSogZml4aW5jL2ZpeHRlc3RzLmM6IExpa2V3aXNlLgoKMjAwNC0wOC0zMCAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGNvbmZpZ3VyZS5hYzogRG8gbm90IHJ1biBmaXhpbmNsdWRlcyBhZnRlciBzdGFnZTEgZHVyaW5nCgl0b3BsZXZlbCBib290c3RyYXAuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDQtMDgtMzAgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogc2NoZWQtZGVwcy5jIChnZXRfY29uZGl0aW9uKTogUGFydGlhbGx5IHJldmVydCBwcmV2aW91cywgYnkgbmV2ZXIKCXRyeWluZyB0byBleHRyYWN0IHRoZSBjb25kaXRpb24gZnJvbSBhIGNvbmRqdW1wLgoKMjAwNC0wOC0zMCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGMtY29tbW9uLmMgKGNfc2l6ZW9mX29yX2FsaWdub2ZfdHlwZSk6IFVzZSBnY2NfYXNzZXJ0LgoJKGhhbmRsZV92aXNpYmlsaXR5X2F0dHJpYnV0ZSwgY19kZXRlcm1pbmVfdmlzaWJpbGl0eSk6IExpa2V3aXNlLgoJKiBjLWNvbW1vbi5oIChteV9mcmllbmRseV9hc3NlcnQpOiBSZW1vdmUuCgoyMDA0LTA4LTMwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChVTlNQRUNfe1JTUVJULFJFQ0lQfVsxMl1fe1MsRCxQU30pOiBEZWxldGUuCgkoVU5TUEVDX3tSU1FSVCxSRUNJUH1bMTJdKTogTmV3IGNvbnN0YW50cy4KCShVTlNQRUNfTU9WRV9URl9QUyk6IFJlbnVtYmVyIHRvIGF2b2lkIGdhcHMuCgkqIGNvbmZpZy9taXBzL21pcHMtcHMtM2QubWQgKCptb3ZjY192MnNmX1tzZF1pKTogVXNlIDpHUFIuCgkobWlwc197cnNxcnQscmVjaXB9WzEyXV97cyxkLHBzfSk6IFVzZSA6QU5ZRi4KCjIwMDQtMDgtMzAgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1wcmV0dHktcHJpbnQuYyAoZHVtcF9nZW5lcmljX25vZGUpOiBIYW5kbGUgVkFMVUVfSEFORExFCglpbiBDT01QT05FTlRfUkVGIG5vZGVzLgoKMjAwNC0wOC0yOSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJUFIgYysrLzE1Mzc4CgkqIGMtb3B0cy5jIChjX2NvbW1vbl9oYW5kbGVfb3B0aW9uKTogPGNhc2UgT1BUX1dlcnJvcj4gc2V0CglnbG9iYWxfZGMtPndhcm5pbmdfYXNfZXJyb3JfcmVxdWVzdGVkLgoJKiBkaWFnbm9zdGljLmMgKGRpYWdub3N0aWNfaW5pdGlhbGl6ZSk6IFRpZHkuCgkqIGRpYWdub3N0aWMuaCAoZGlhZ25vc3RpY19jb250ZXh0Ojp4X2RhdGEpOiBSZW1vdmUKCShkaWFnbm9zdGljX2NvbnRleHQ6Omlzc3VlX3dhcm5pbmdzX2FyZV9lcnJvcnNfbWVzc2FnZSk6IFJlbmFtZQoJZnJvbSB3YXJuaW5nc19hcmVfZXJyb3JzX21lc3NhZ2UuCgkoZGlhZ25vc3RpY19jb250ZXh0Ojp3YXJuaW5nX2FzX2Vycm9yX3JlcXVlc3RlZCk6IE5ldy4KCjIwMDQtMDgtMzAgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogc2NoZWQtZGVwcy5jIChnZXRfY29uZGl0aW9uKTogRml4IGJyZWFrYWdlIGluIHByZXZpb3VzIHBhdGNoLgoKMjAwNC0wOC0zMCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRvYy9pbnN0YWxsLnRleGk6IEZpeCBicm9rZW4gbXBmciBsaW5rLgoKMjAwNC0wOC0yOSAgRGF2aWQgTydCcmllbiAgPG9icmllbkBGcmVlQlNELm9yZz4KCgkqIGNvbmZpZy9yczYwMDAvc3lzdjQuaCAoTElOS19PU19GUkVFQlNEX1NQRUMpOiBTeW5jICctcCcgaGFuZGxpbmcgd2l0aAoJb3RoZXIgRnJlZUJTRCBwbGF0Zm9ybXMuCgoyMDA0LTA4LTI5ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIGFybS5oIChSRVZFUlNFX0NPTkRJVElPTik6IERlZmluZS4KCShSRVZFUlNJQkxFX0NDX01PREUpOiBBbGwgY29tcGFyaXNvbnMgYXJlIG5vdyByZXZlcnNpYmxlLgoKMjAwNC0wOC0yOSAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiBmbG93LmMgKFJFVkVSU0VfQ09OREVYRUNfUFJFRElDQVRFU19QKTogVXNlIHRoZSB3aG9sZSBjb21wYXJpc29uLCBub3QKCWp1c3QgdGhlIGNvZGVzLCBjYWxsIHJldmVyc2VkX2NvbXBhcmlzb25fY29kZSAoKS4KCShpb3JfcmVnX2NvbmQpOiBVcGRhdGUgYXJndW1lbnRzIHRvIFJFVkVSU0VfQ09OREVYRUNfUFJFRElDQVRFU19QLgoJKG5vdF9yZWdfY29uZCk6IFVzZSByZXZlcnNlZF9jb21wYXJpc29uX2NvZGUuCgkoYW5kX3JlZ19jb25kKTogTGlrZXdpc2UuCgkqIGlmY3Z0LmMgKGNvbmRfZXhlY19wcm9jZXNzX2lmX2Jsb2NrKTogTGlrZXdpc2UuCgkqIGRvYy90bS50ZXhpIChSRVZFUlNFX0NPTkRFWEVDX1BSRURJQ0FURVNfUCk6IFVwZGF0ZSBkb2N1bWVudGF0aW9uLgoKMjAwNC0wOC0yOSAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiBzY2hlZC1kZXBzLmMgKGdldF9jb25kaXRpb24pOiBSZXdyaXRlIHVzaW5nIGp1bXAgc3VwcG9ydCBmdW5jdGlvbnMuCglVc2UgcmV2ZXJzZWRfY29tcGFyaXNvbl9jb2RlLgoJKGNvbmRpdGlvbnNfbXV0ZXhfcCk6IFVzZSByZXZlcnNlZF9jb21wYXJpc29uX2NvZGUuCgoyMDA0LTA4LTI5ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG92ZXJyaWRlX29wdGlvbnMpOiBEaXNhYmxlIGhvdC9jb2xkIHBhcnRpdGlvbmluZwoJZm9yIE1JUFMxNi4KCjIwMDQtMDgtMjkgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuaCAobWlwc19idWlsdGlucywgbWlwc19jbXBfY2hvaWNlKTogRGVsZXRlLgoJKG1pcHNfZnVuY3Rpb25fdHlwZSk6IE1vdmUgdG8gbWlwcy5jLgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHNfYnVpbHRpbl90eXBlKTogTmV3IGVudW0uCgkoYnVpbHRpbl9kZXNjcmlwdGlvbik6IFJlcGxhY2UgY29kZSBhbmQgZnR5cGUgd2l0aCBidWlsdGluX3R5cGUKCWFuZCBmdW5jdGlvbl90eXBlLgoJKERJUkVDVF9CVUlMVElOLCBDTVBfU0NBTEFSX0JVSUxUSU5TLCBDTVBfUFNfQlVJTFRJTlMsIENNUF80U19CVUlMVElOUykKCShNT1ZURl9CVUlMVElOUywgQ01QX0JVSUxUSU5TKTogTmV3IG1hY3Jvcy4KCShDT0RFX0ZPUl9taXBzX2Fic19wcyk6IERlZmluZS4KCShtaXBzX2JkZXNjKTogVXNlIG5ldyBtYWNyb3MuCgkobWlwc19leHBhbmRfYnVpbHRpbik6IFVzZSBidWlsdGluX3R5cGUuICBVcGRhdGUgY2FsbHMgdG8gc3Vicm91dGluZXMuCgkobWlwc19pbml0X2J1aWx0aW5zKTogVXNlIHRoZSBtaXBzX2JkZXNjW10gaW5kZXggYXMgdGhlIGZ1bmN0aW9uIGNvZGUuCgkobWlwc19leHBhbmRfYnVpbHRpbl9kaXJlY3QpOiBOZXcgZnVuY3Rpb24uCgkobWlwc19leHBhbmRfYnVpbHRpbl9tb3Z0Zik6IFJlbmFtZWQgZnJvbSBtaXBzX2V4cGFuZF9wc19jb25kX21vdmVfCglidWlsdGluLiAgUmVwbGFjZSBib29sZWFuIHBhcmFtZXRlciB3aXRoIGJ1aWx0aW5fdHlwZS4KCShtaXBzX2V4cGFuZF9jb21wYXJlX2J1aWx0aW4sIG1pcHNfZXhwYW5kX3NjYWxhcl9jb21wYXJlX2J1aWx0aW4pCgkobWlwc19leHBhbmRfNHNfY29tcGFyZV9idWlsdGluKTogRGVsZXRlLCByZXBsYWNpbmcgd2l0aC4uLgoJKG1pcHNfZXhwYW5kX2J1aWx0aW5fY29tcGFyZSk6IC4uLnRoaXMgbmV3IGZ1bmN0aW9uLgoKMjAwNC0wOC0yOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE2NTkwCgkqIGdjc2UuYyAocHJlX2RlbGV0ZSk6IERvIG5vdCBjcmVhdGUgaW52YWxpZCBSRUdfRVFVQUwgbm90ZXMuCgoyMDA0LTA4LTI5ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWNjcC5jIChjY3BfdmlzaXRfc3RtdCk6IFJlbW92ZSAjaWYgMCBndWFyZHMuCgkqIHRyZWUtc3NhLXByb3BhZ2F0ZS5jOiBGaXggZG9jdW1lbnRhdGlvbi4KCjIwMDQtMDgtMjkgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKCptb3Zbc2RdZl9vbl8qKTogUmVkZWZpbmUgdXNpbmcgOlNDQUxBUkYuCgkobW92W3NkXWZjYyk6IExpa2V3aXNlLgoKMjAwNC0wOC0yOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5tZCAoY21wW3NkXWYpOiBSZWRlZmluZSB1c2luZyA6U0NBTEFSRi4KCjIwMDQtMDgtMjkgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKGRpdmlkZV9jb25kaXRpb24pOiBOZXcgbW9kZSBhdHRyaWJ1dGUuCgkoZGl2W3NkXWYzLCAqZGl2W3NkXWYzKTogVXNlIGl0LiAgUmVkZWZpbmUgdXNpbmcgOlNDQUxBUkYuCgkoc3FydFtzZF1mMyk6IFJlZGVmaW5lIHVzaW5nIFNDQUxBUkYuCgkoKnJlY2lwW3NkXWYzLCAqcnNxcnQ8bW9kZT5bYWJdKTogTGlrZXdpc2UuICBOYW1lIGZvcm1lcmx5IHVubmFtZWQKCXBhdHRlcm5zLgoKMjAwNC0wOC0yOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5tZCAoQU5ZRiwgU0NBTEFSRik6IE5ldyBtb2RlIG1hY3Jvcy4KCShsb2FkeCwgc3RvcmV4LCBmbXQsIFVOSVRNT0RFKTogTmV3IG1vZGUgYXR0cmlidXRlcy4KCShhZGR7c2YsZGYsdjJzZn0zLCBzdWJ7c2YsZGYsdjJzZn0zKTogUmVkZWZpbmUgdXNpbmcgOkFOWUYuCgkobXVsW3NkXWYzKTogUmVkZWZpbmUgdXNpbmcgOlNDQUxBUkYuCgkoKm11bFtzZF1mMyk6IFJlbmFtZWQgZnJvbSBtdWxbc2RdZjNfaW50ZXJuYWwuICBVc2UgOlNDQUxBUkYuCgkoKm11bFtzZF0zX3I0MzAwKTogTGlrZXdpc2UgbXVsW3NkXWYzX3I0MzAwLgoJKCpte2FkZCxzdWJ9e3NmLGRmLHYyc2Z9Myk6IE5hbWUgZm9ybWVybHkgdW5uYW1lZCBwYXR0ZXJucy4gIFVzZSA6QU5ZRi4KCUNoZWNrIFRBUkdFVF9GVVNFRF9NQUREIGZvciBWMlNGIHRvby4KCSgqbm17YWRkLHN1Yn17c2YsZGYsdjJzZn0zeyxfZmFzdG1hdGh9KTogTGlrZXdpc2UsIGV4Y2VwdCB2MnNmIHBhdHRlcm5zCgl3ZXJlIGFscmVhZHkgbmFtZWQuCgkoYWJze3NmLGRmLHYyc2Z9MywgbmVne3NmLGRmLHYyc2Z9Myk6IFJlZGVmaW5lIHVzaW5nIDpBTllGLgoJKCpbc2xdW3dkXXhjMV9bc2RdaSk6IFJlZGVmaW5lIHVzaW5nIDpBTllGLgoKMjAwNC0wOC0yOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5jIChtaXBzX2luaXRfYnVpbHRpbnMpOiBTaW1wbGlmeS4gIE9ubHkgY3JlYXRlCglWMlNGX3R5cGVfbm9kZSBpZiBpdCB3aWxsIGJlIG5lZWRlZC4KCjIwMDQtMDgtMjkgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuaCAoTUlQU19DTVBfTU9WVCwgTUlQU19DTVBfTU9WRik6IERlbGV0ZS4KCSogY29uZmlnL21pcHMvbWlwcy5jIChtaXBzX3ByZXBhcmVfYnVpbHRpbl9hcmcpOiBOZXcgZnVuY3Rpb24uCgkobWlwc19wcmVwYXJlX2J1aWx0aW5fdGFyZ2V0KTogTmV3IGZ1bmN0aW9uLgoJKG1pcHNfZXhwYW5kX2J1aWx0aW4pOiBVc2UgdGhlbS4gIFVwZGF0ZSBjYWxscyB0byBzdWJyb3V0aW5lcy4KCShtaXBzX2V4cGFuZF9wc19jb25kX21vdmVfYnVpbHRpbik6IFVzZSB0aGUgbmV3IGZ1bmN0aW9ucy4gIFJlcGxhY2UKCWNtcF9jaG9pY2Ugd2l0aCBhIGJvb2xlYW4gYXJndW1lbnQgdG8gc2VsZWN0IGJldHdlZW4gbW92dCBhbmQgbW92Zi4KCVRha2UgdGhlIGNvbXBhcmlzb24ncyBpY29kZSBhcyBhbiBhcmd1bWVudCwgbm90IHRoZSBmdW5jdGlvbidzIGZjb2RlLgoJKG1pcHNfZXhwYW5kX2NvbXBhcmVfYnVpbHRpbik6IE5ldyBmdW5jdGlvbi4gIFJlbmFtZSBleGlzdGluZyBmdW5jdGlvbgoJdG8gbWlwc19leHBhbmRfc2NhbGFyX2NvbXBhcmVfYnVpbHRpbi4KCShtaXBzX2V4cGFuZF9zY2FsYXJfY29tcGFyZV9idWlsdGluLCBtaXBzX2V4cGFuZF80c19jb21wYXJlX2J1aWx0aW4pCgkobWlwc19leHBhbmRfcHNfY29tcGFyZV9idWlsdGluKTogVXNlIHRoZSBuZXcgZnVuY3Rpb25zLiAgVGFrZSB0aGUKCWNvbXBhcmlzb24ncyBpY29kZSBhcyBhbiBhcmd1bWVudCwgbm90IHRoZSBidWlsdGluJ3MgZmNvZGUuCgoyMDA0LTA4LTI5ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLmMgKHByaW50X29wZXJhbmQpOiBSZW1vdmUgJyVZJyBhbmQgJyV5Jy4KCShtaXBzX2V4cGFuZF80c19jb21wYXJlX2J1aWx0aW4pOiBSZWRlZmluZSBDQ1Y0IHRvIGJlIDAgaWYgYWxsCglyZWdpc3RlcnMgYXJlIGZhbHNlIGFuZCAtMSBpZiBhbGwgcmVnaXN0ZXJzIGFyZSB0cnVlLgoJKG1pcHNfZXhwYW5kX3BzX2NvbXBhcmVfYnVpbHRpbik6IExpa2V3aXNlIENDVjIuICBVc2Ugc3VicmVncyBmb3IKCU1JUFNfQ01QX1VQUEVSIGFuZCBNSVBTX0NNUF9MT1dFUi4KCSogY29uZmlnL21pcHMvbWlwcy5tZCAobWlwc19jb25kX21vdmVfdGZfcHMpOiBVc2UgJVEgcmF0aGVyIHRoYW4gJXkuCgkoYmMxYW55NHQsIGJjMWFueTRmKTogQWRqdXN0IGZvciBuZXcgQ0NWNCBpbnRlcnByZXRhdGlvbi4KCShiYzFhbnkydCwgYmMxYW55MmYpOiBMaWtld2lzZSBDQ1YyLgoJKGJjMXVwcGVyMnQsIGJjMWxvd2VyMnQsIGJjMXVwcGVyMmYsIGJjMWxvd2VyMmYpOiBEZWxldGUuCgoyMDA0LTA4LTI5ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChVTlNQRUNfTU9WRV9URl9QUyk6IE5ldy4KCSogY29uZmlnL21pcHMvbWlwcy1wcy0zZC5tZCAobWlwc19jb25kX21vdmVfdGZfcHMpOiBFeHByZXNzIGFzIGFuCglVTlNQRUMgcmF0aGVyIHRoYW4gYW4gSUZfVEhFTl9FTFNFLgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHNfZXhwYW5kX3BzX2NvbmRfbW92ZV9idWlsdGluKTogRW1pdAoJbWlwc19jb25kX21vdmVfdGZfcHMgYnkgbmFtZS4KCjIwMDQtMDgtMjkgIENoYW8teWluZyBGdSAgPGZ1QG1pcHMuY29tPgoJICAgIEphbWVzIEUgV2lsc29uICA8d2lsc29uQHNwZWNpZml4aW5jLmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMtbW9kZXMuZGVmIChWMlNGLCBDQ1YyLCBDQ1Y0KTogTmV3IG1vZGVzLiBHaXZlIENDVjIKCTggYnl0ZSBzaXplIGFuZCBhbGlnbm1lbnQuICBHaXZlIENDVjQgMTYgYnl0ZSBzaXplIGFuZCBhbGlnbm1lbnQuCgkqIGNvbmZpZy9taXBzL21pcHMtcHMtM2QubWQ6IE5ldyBmaWxlLgoJKiBjb25maWcvbWlwcy9taXBzLmMgKFRBUkdFVF9WRUNUT1JfTU9ERV9TVVBQT1JURURfUCwKCVRBUkdFVF9JTklUX0JVSUxUSU5TLCBUQVJHRVRfRVhQQU5EX0JVSUxUSU4pOiBEZWZpbmUuCgkobWlwc19jb25zdF9pbnNucyk6IEhhbmRsZSBDT05TVF9WRUNUT1IgdGhlIHNhbWUgYXMgQ09OU1RfRE9VQkxFLgoJKG1pcHNfb3V0cHV0X21vdmUpOiBFbWl0ICJtb3YucHMiIGZvciBWMlNGbW9kZS4KCShtaXBzX2FyZ19pbmZvKTogQWRkIGNoZWNrcyBmb3IgVkVDVE9SX0ZMT0FUX1RZUEVfUCBhbmQKCU1PREVfVkVDVE9SX0ZMT0FULgoJKG92ZXJyaWRlX29wdGlvbnMpOiBDaGVjayBpZiBUQVJHRVRfTUlQUzNEIGFuZCB0aGVyZSB3YXMgYW4gZXhwbGljaXQKCSFUQVJHRVRfUEFJUkVEX1NJTkdMRV9GTE9BVC4gIFNldCBNQVNLX1BBSVJFRF9TSU5HTEUsIGlmIFRBUkdFVF9NSVBTM0QuCglDaGVjayBpZiBUQVJHRVRfRkxPQVQ2NCBhbmQgVEFSR0VUX0hBUkRfRkxPQVQgYXJlIGJvdGggdHJ1ZSwgd2hlbgoJVEFSR0VUX1BBSVJFRF9TSU5HTEVfRkxPQVQgaXMgdHJ1ZS4gIENoZWNrIGlmIHRoZSBJU0Egc3VwcG9ydHMKCVRBUkdFVF9QQUlSRURfU0lOR0xFX0ZMT0FULiAgQWxsb3cgTU9ERV9WRUNUT1JfRkxPQVQgaW4gZnAgcmVnaXN0ZXJzLAoJYW5kIGFsbG93IENDVjIgYW5kIENDVjQgdG8gb2NjdXB5IHR3byBhbmQgZm91ciBDQyByZWdpc3RlcnMuCgkocHJpbnRfZmNjX29wZXJhbmQpOiBOZXcgZnVuY3Rpb24uCgkocHJpbnRfb3BlcmFuZCk6IEFkZCAlWSwgJXksICVWLCAldiwgJVEgZm9yIENDVjIsIENDVjQsIENDLiAgTW9kaWZ5CgklWiB0byBjYWxsIHByaW50X2ZjY19vcGVyYW5kLgoJKG1pcHNfZnVuY3Rpb25fdmFsdWUpOiBIYW5kbGUgTU9ERV9WRUNUT1JfRkxPQVQuCgkobWlwc19jbGFzc19tYXhfbnJlZ3MpOiBDaGVjayBmb3IgU1RfUkVHUywgYW5kIGhhbmRsZSBDQ21vZGVzLgoJKG1pcHNfdmVjdG9yX21vZGVfc3VwcG9ydGVkX3ApOiBOZXcgZnVuY3Rpb24uCgkobWlwc19oYXJkX3JlZ25vX25yZWdzKTogQ2hlY2sgZm9yIFNUX1JFR19QLCBhbmQgaGFuZGxlIENDbW9kZXMuCgkoYnVpbHRpbl9kZXNjcmlwdGlvbik6IE5ldyBzdHJ1Y3QuCgkobWlwc19iZGVzYyk6IE5ldyBhcnJheSBvZiBzdHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbi4KCShtaXBzX2V4cGFuZF9idWlsdGluLCBtaXBzX2luaXRfYnVpbHRpbnMsCgltaXBzX2V4cGFuZF9wc19jb25kX21vdmVfYnVpbHRpbiwgbWlwc19leHBhbmRfNHNfY29tcGFyZV9idWlsdGluLAoJbWlwc19leHBhbmRfY29tcGFyZV9idWlsdGluLCBtaXBzX2V4cGFuZF9wc19jb21wYXJlX2J1aWx0aW4pOiBOZXcKCWZ1bmN0aW9ucy4KCSogY29uZmlnL21pcHMvbWlwcy5oIChNQVNLX1BBSVJFRF9TSU5HTEUsIE1BU0tfTUlQUzNEKTogTmV3IGRlZmluZXMuCgkoVEFSR0VUX1BBSVJFRF9TSU5HTEVfRkxPQVQsIFRBUkdFVF9NSVBTM0QpOiBOZXcgZGVmaW5lcy4KCShUQVJHRVRfQ1BVX0NQUF9CVUlMVElOUyk6IEFkZCBfX21pcHNfcGFpcmVkX3NpbmdsZV9mbG9hdC4KCShUQVJHRVRfU1dJVENIRVMpOiBBZGRlZCAiLW1wYWlyZWQtc2luZ2xlIiwgIi1tbm8tcGFpcmVkLXNpbmdsZSIsCgkiLW1pcHMzZCIsIGFuZCAiLW1uby1taXBzM2QiLgoJKEFTTV9TUEVDKTogTWFwIC1taXBzM2QgdG8gLW1pcHMzZCBpbiBnYXMuCgkoRVhUUkFfQ09OU1RSQUlOVF9ZKTogTmV3IG1hY3JvLgoJKEVYVFJBX0NPTlNUUkFJTlRfU1RSKTogUmVuYW1lZCBmcm9tIEVYVFJBX0NPTlNUUkFJTlQuICBBZGQgbmV3CgltdWx0aS1sZXR0ZXIgY29uc3RyYWludCAnWScuCgkoQ09OU1RSQUlOVF9MRU4pOiBOZXcgbWFjcm8uCgkoZW51bSBtaXBzX2J1aWx0aW5zKTogTmV3IGZvciBNSVBTIGJ1aWx0aW4gZnVuY3Rpb25zLgoJKGVudW0gbWlwc19mdW5jdGlvbl90eXBlKTogTmV3IGZvciB0aGUgdHlwZXMgb2YgTUlQUyBidWlsdGluIGZ1bmN0aW9ucy4KCShlbnVtIG1pcHNfY21wX2Nob2ljZSk6IE5ldyBmb3IgdGhlIE1JUFMgY29tcGFyaXNvbiBidWlsdGluIGZ1bmN0aW9ucy4KCSogY29uZmlnL21pcHMvbWlwcy5tZDogTmV3IGNvbnN0YW50cyBmb3IgcGFpcmVkIHNpbmdsZSBhbmQgTUlQUy0zRAoJaW5zdHJ1Y3Rpb25zLiAgSW5jbHVkZSB0aGUgbmV3IG1pcHMtcHMtM2QubWQgZmlsZS4KCShhZGR2MnNmMywgc3VidjJzZjMsIG11bHYyc2YzLCBhYnN2MnNmMiwgbmVndjJzZjIsIG1vdnYyc2YsCgltb3Z2MnNmX2hhcmRmbG9hdF82NGJpdCk6IE5ldyBuYW1lZCBwYXR0ZXJucy4KCShtYWRkLnBzLCBtc3ViLnBzLCBubWFkZHYyc2YsIG5tYWRkdjJzZl9mYXN0bWF0aCwgbm1zdWJ2MnNmLAoJbm1zdWJ2MnNmX2Zhc3RtYXRoLCBsZHhjMV92MnNmX3NpLCBsZHhjMV92MnNmX2RpLCBzZHhjMV92MnNmX3NpLAoJc2R4YzFfdjJzZl9kaSk6IE5ldyB1bm5hbWVkIHBhdHRlcm5zLgoJKiBjb25maWcvbWlwcy9wcmVkaWNhdGVzLm1kIChjb25zdF8wX29wZXJhbmQsIGNvbnN0XzFfb3BlcmFuZCk6IEFkZAoJY29uc3RfdmVjdG9yIHN1cHBvcnQuCgkoY29uc3RfMF9vcl8xX29wZXJhbmQpOiBOZXcgcHJlZGljYXRlLgoJKiBkb2MvaW52b2tlLnRleGkgKE1JUFMgT3B0aW9ucyk6IEFkZCAtbXBhaXJlZC1zaW5nbGUgYW5kIC1taXBzM2QuCgoyMDA0LTA4LTI5ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIE1ha2VmaWxlLmluIChPQkpTLWNvbW1vbik6IEFkZCB0cmVlLXNzYS1wcm9wYWdhdGUubwoJKHRyZWUtc3NhLXByb3BhZ2F0ZS5vKTogTmV3IHJ1bGUuCgkoR1RGSUxFUyk6IEFkZCB0cmVlLXNzYS1wcm9wYWdhdGUuYy4KCSogdHJlZS1mbG93LmggKHN0cnVjdCBzdG10X2Fubl9kKTogUmVtb3ZlIGZpZWxkCglpbl9jY3Bfd29ya2xpc3QuCgkqIHRyZWUtc3NhLXByb3BhZ2F0ZS5jOiBOZXcgZmlsZS4KCSogdHJlZS1zc2EtcHJvcGFnYXRlLmg6IE5ldyBmaWxlLgoJKiB0cmVlLXNzYS1jY3AuYzogUmUtd3JpdGUgdG8gdXNlIHRoZSByb3V0aW5lcyBmcm9tCgl0cmVlLXNzYS1wcm9wYWdhdGUuYy4KCjIwMDQtMDgtMjggIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGFwcGxlLmNvbT4KCgkqIHRyZWUtc3NhLWxvb3AuYzogUmVtb3ZlIGV4dHJhIGluY2x1ZGUgb2YgYmFzaWMtYmxvY2suaC4KCjIwMDQtMDgtMjggIFppZW1vd2l0IExhc2tpICA8emxhc2tpQGFwcGxlLmNvbT4KCgkqIGMtY29tbW9uLmg6IFVwZGF0ZSBjb21tZW50cyBhYm91dCBPYmpDL09iakMrKyBlbnRyeSBwb2ludHMuCgkob2JqY19pc19yZXNlcnZlZF93b3JkKTogTmV3IHByb3RvdHlwZS4KCShnZXRfY3VycmVudF9zY29wZSwgb2JqY19tYXJrX2xvY2Fsc192b2xhdGlsZSk6IE1vdmUgcHJvdG90eXBlcyB0bwoJc2VwYXJhdGUgc2VjdGlvbjsgdGhlc2UgYXJlIGNhbGwtYmFja3MuCgkqIGMtbGV4LmMgKGNfbGV4X3dpdGhfZmxhZ3MpOiBDYWxsIG9iamNfaXNfcmVzZXJ2ZWRfd29yZCgpIHRvIGRldGVjdAoJT2JqQy9PYmpDKysgIkAiIGtleXdvcmRzLgoJKiBjLXRyZWUuaCAoZ2V0X2N1cnJlbnRfc2NvcGUsIG9iamNfbWFya19sb2NhbHNfdm9sYXRpbGUpOiBSZW1vdmUKCXByb3RvdHlwZXM7IHRoZXkgYWxyZWFkeSBsaXZlIGluIGMtY29tbW9uLmguCgkqIHN0dWItb2JqYy5jOiBVcGRhdGUgY29weXJpZ2h0IG5vdGljZS4KCShvYmpjX2lzX3Jlc2VydmVkX3dvcmQpOiBOZXcgc3R1Yi4KCjIwMDQtMDgtMjggIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzeXN0ZW0uaCAoZ2NjX2Fzc2VydCk6IFJlbW92ZSBfX2J1aWx0aW5fZXhwZWN0LiAgRXZhbHVhdGUgRVhQUgoJZXZlbiB3aGVuIG5vdCBjaGVja2luZy4KCjIwMDQtMDgtMjcgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy8xMzY4NAoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9jbGVhbnVwX3BvaW50X2V4cHIpOiBIYW5kbGUgQ0xFQU5VUF9FSF9PTkxZLgoJKGdpbXBsZV9wdXNoX2NsZWFudXApOiBBZGQgZWhfb25seSBwYXJtLgoJKGdpbXBsaWZ5X3RhcmdldF9leHByKTogUGFzcyBpdC4KCSogYy5vcHQgKC1mbm8tdGhyZWFkc2FmZS1zdGF0aWNzKTogTmV3IG9wdGlvbi4KCSogYy1vcHRzLmMgKGNfY29tbW9uX2hhbmRsZV9vcHRpb24pOiBIYW5kbGUgaXQuCgkqIGMtY29tbW9uLmggKGZsYWdfdGhyZWFkc2FmZV9zdGF0aWNzKTogRGVjbGFyZSBpdC4KCSogYy1jb21tb24uYyAoZmxhZ190aHJlYWRzYWZlX3N0YXRpY3MpOiBSZWNvcmQgaXQuCgkqIGRvYy9pbnZva2UudGV4aTogRG9jdW1lbnQgaXQuCgkqIHRzeXN0ZW0uaCAoX0dOVV9TT1VSQ0UpOiBEZWZpbmUuCgkqIGd0aHItcG9zaXguaCAoX19ndGhyZWFkX3JlY3Vyc2l2ZV9tdXRleF90KTogTmV3IHR5cGVkZWYuCgkoX19HVEhSRUFEX1JFQ1VSU0lWRV9NVVRFWF9JTklUKTogTmV3IG1hY3JvLgoJKF9fR1RIUkVBRF9SRUNVUlNJVkVfTVVURVhfSU5JVF9GVU5DVElPTik6IE5ldyBtYWNyby4KCShfX2d0aHJlYWRfcmVjdXJzaXZlX211dGV4X2luaXRfZnVuY3Rpb24pOiBOZXcgZm4uCgkoX19ndGhyZWFkX3JlY3Vyc2l2ZV9tdXRleF9sb2NrKTogTmV3IGZuLgoJKF9fZ3RocmVhZF9yZWN1cnNpdmVfbXV0ZXhfdHJ5bG9jayk6IE5ldyBmbi4KCShfX2d0aHJlYWRfcmVjdXJzaXZlX211dGV4X3VubG9jayk6IE5ldyBmbi4KCSogZ3Roci1zb2xhcmlzLmgsIGd0aHItc2luZ2xlLmgsIGd0aHItZGNlLmg6IExpa2V3aXNlLgoJKiBndGhyLXdpbjMyLmgsIGd0aHItdnh3b3Jrcy5oOiBMaWtld2lzZS4KCSogZ3Roci5oOiBEb2N1bWVudC4KCjIwMDQtMDgtMjcgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9vdmVycmlkZV9vcHRpb25zKTogSW5jcmVhc2UKCW1heGltdW0gc2tpcCB0byAxNS4gIFNldCBmdW5jdGlvbiBhbGlnbm1lbnQsIGp1bXAgYWxpZ25tZW50LCBhbmQKCWxvb3AgYWxpZ25tZW50IHRvIDE2IGZvciBwcm9jZXNzb3JzIHRoYXQgZm9ybSBkaXNwYXRjaCBncm91cHMuCgkocnM2MDAwX3J0eF9jb3N0cyk6IG91dGVyX2NvZGUgaXMgdXNlZC4KCjIwMDQtMDgtMjcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzdG9yLWxheW91dC5jIChzaXpldHlwZV9zZXQpOiBSZW1vdmUuCgkoc2V0X3NpemV0eXBlKTogRG9uJ3QgdGVzdCBvciBzZXQgaXQuCgoJKiB0cmVlLmggKHNpemVfaW50X3R5cGUpOiBSZW1vdmUuCgkqIGZvbGQtY29uc3QuYzogRG8gbm90ICNpbmNsdWRlIGd0LWZvbGQtY29uc3QuaC4KCShzaXplX2h0YWJfaGFzaCwgc2l6ZV9odGFiX2VxKTogUmVtb3ZlLgoJKHNpemVfaW50X2tpbmQpOiBVc2UgYnVpbGRfaW50X2NzdC4KCShuZXdfY29uc3QsIHNpemVfaHRhYik6IFJlbW92ZS4KCShzaXplX2ludF90eXBlKTogUmVtb3ZlLgoJKHJvdW5kX3VwKTogVXNlIGJ1aWxkX2ludF9jc3QuCgkocm91bmRfZG93bik6IExpa2V3aXNlLiBSZW1vdmUgc3B1cmlvdXMgY29uc3RhbnQgYnVpbGQuCgoyMDA0LTA4LTI3ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlndXJlLmFjOiBBZGQgRU5BQkxFX0FTU0VSVF9DSEVDS0lORyBjb250cm9sLgoJQWRkIGlzX3JlbGVhc2UgdmFyaWFibGUsIHVzZSBpdCBmb3IgLS1lbmFibGUtd2Vycm9yIGFuZAoJLS1lbmFibGUtY2hlY2tpbmcgZGVmYXVsdHMuCgkqIHN5c3RlbS5oIChnY2NfYXNzZXJ0LCBnY2NfdW5yZWFjaGFibGUpOiBOZXcuCgkqIGRvYy9pbnN0YWxsLnRleGkgKC0tZW5hYmxlLWNoZWNraW5nKTogVXBkYXRlLgoJKiBjb25maWd1cmUsIGNvbmZpZy5pbjogUmVidWlsdC4KCjIwMDQtMDgtMjYgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIHJ0bC5oIChyZWFkX3J0eCk6IENoYW5nZSBwcm90b3R5cGUuCgkqIHJlYWQtcnRsLmMgKHJlYWRfcnR4KTogUHJvdmlkZSB0aGUgY2FsbGVyIHdpdGggYm90aCBhbiBydHggYW5kIGEKCWxpbmUgbnVtYmVyLiAgUmV0dXJuIHRydWUgb24gc3VjY2Vzcy4KCSogZ2Vuc3VwcG9ydC5jIChwcm9jZXNzX2luY2x1ZGUsIGluaXRfbWRfcmVhZGVyX2FyZ3NfY2IpOiBBZGp1c3QKCWNhbGxlcnMgYWNjb3JkaW5nbHkuCgoyMDA0LTA4LTI2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogYy10eXBlY2suYyAoYnVpbGRfb2Zmc2V0b2YpOiBSZW1vdmUuCgkqIGMtdHJlZS5oIChidWlsZF9vZmZzZXRvZik6IFJlbW92ZS4KCSogYy1jb21tb24uYyAoZm9sZF9vZmZzZXRvZl8xLCBmb2xkX29mZnNldG9mKTogTmV3LgoJKiBjLWNvbW1vbi5oIChmb2xkX29mZnNldG9mKTogRGVjbGFyZS4KCSogYy1wYXJzZS5pbiAob2Zmc2V0b2ZfYmFzZSk6IE5ldy4KCShvZmZzZXRvZl9tZW1iZXJfZGVzaWduYXRvcik6IFVzZSBpdC4gIEJ1aWxkIHJlZmVyZW5jZXMsIG5vdCBqdXN0CglhIHRyZWUgbGlzdC4KCShwcmltYXJ5KTogVXNlIGZvbGRfb2Zmc2V0b2YsIG5vdCBidWlsZF9vZmZzZXRvZi4KCjIwMDQtMDgtMjYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmVlLmMgKHN0YXRpY3ApOiBSZXR1cm4gdGhlIHN0YXRpYyBvYmplY3QuCgkqIHRyZWUuaCAoc3RhdGljcCk6IFVwZGF0ZSBkZWNsLgoJKiBsYW5naG9va3MuaCAoc3RydWN0IGxhbmdfaG9va3MpOiBDaGFuZ2Ugc3RhdGljcCByZXR1cm4gdHlwZSB0byB0cmVlLgoJKiBsYW5naG9va3MuYyAobGhkX3N0YXRpY3ApOiBSZXR1cm4gTlVMTF9UUkVFLgoJKiBsYW5naG9va3MtZGVmLmggKGxoZF9zdGF0aWNwKTogVXBkYXRlIGRlY2wuCgkqIGMtY29tbW9uLmMgKGNfc3RhdGljcCk6IFJldHVybiB0aGUgc3RhdGljIG9iamVjdC4KCSogYy1jb21tb24uaCAoY19zdGF0aWNwKTogVXBkYXRlIGRlY2wuCgoyMDA0LTA4LTI2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2FscGhhL2FscGhhLmggKEhBUkRfUkVHTk9fTU9ERV9PSyk6IEFsbG93IGNvbXBsZXggZmxvYXQKCW1vZGVzLgoKMjAwNC0wOC0yNiAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJUFIgYy8xMzgwMQoJKiBjLWRlY2wuYyAoc3RydWN0IGNfYmluZGluZyk6IEFkZCB0eXBlIGFuZCBpbm5lcl9jb21wIGZpZWxkcy4KCShiaW5kKTogU2V0IHR5cGUgYW5kIGlubmVyX2NvbXAgZmllbGRzLgoJKHBvcF9zY29wZSk6IFJlc3RvcmUgdHlwZSBvZiBkZWNsIHRvIHRoZSBjb3JyZWN0IHR5cGUgZnJvbSBhbgoJb3V0ZXIgc2NvcGUuICBHaXZlIGVycm9yIHdoZW4gcG9wcGluZyBmaWxlIHNjb3BlIGZvciBpbmNvbXBsZXRlCglhcnJheXMgY29tcGxldGVkIGluY29tcGF0aWJseSB3aXRoIGRlZmF1bHQgaW5pdGlhbGl6YXRpb24gaW4gYW4KCWlubmVyIHNjb3BlLgoJKGRpYWdub3NlX21pc21hdGNoZWRfZGVjbHMpOiBIYW5kbGUgZXh0ZXJucyB3aXRoIGluaXRpYWxpemVycyBhdAoJYmxvY2sgc2NvcGUuCgkocHVzaGRlY2wpOiBTZXQgdHlwZSBvZiBleHRlcm5hbCBkZWNsYXJhdGlvbiBhdCBibG9jayBzY29wZSBiYXNlZAoJb25seSBvbiB0aGUgdmlzaWJsZSBkZWNsYXJhdGlvbnMuICBTYXZlIHR5cGUgd2hlbiBjaGFuZ2luZyB0aGUKCXR5cGUgb2YgYSBkZWNsYXJhdGlvbi4gIE1lcmdlIGFuIGV4dGVybmFsIGRlY2xhcmF0aW9uIGF0IGJsb2NrCglzY29wZSB3aXRoIGEgdmlzaWJsZSBzdGF0aWMgZGVjbGFyYXRpb24gYXQgZmlsZSBzY29wZS4KCShpbXBsaWNpdGx5X2RlY2xhcmUpOiBHaXZlIHJlY3ljbGVkIG9sZCBkZWNsYXJhdGlvbiB0aGUgbmV3IHR5cGUKCWV4Y2VwdCBmb3IgaW5jb21wYXRpYmxlIGRlY2xhcmF0aW9ucyBvZiBidWlsdC1pbiBmdW5jdGlvbnMsIHNhdmluZwoJdGhlIG9sZCB0eXBlLgoKMjAwNC0wOC0yNiAgWmllbW93aXQgTGFza2kgIDx6bGFza2lAYXBwbGUuY29tPgoKCSogYy1wYXJzZS5pbiAoT0JKQ19UWVBFX1FVQUwpOiBOZXcgJXRva2VuIGZvciBPYmpDIHVzZS4KCjIwMDQtMDgtMjYgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogdHJlZS1hbGlhcy1jb21tb24uYyAoZ2F0ZV9wdGEpOiBOZXcgZnVuY3Rpb24uCgkocGFzc19idWlsZF9wdGEpOiBVc2UgaXQuCgkocGFzc19kZWxfcHRhKTogVXNlIGl0LgoJKGRlbGV0ZV9hbGlhc192YXJzKTogRG9uJ3QgY2hlY2sgZmxhZ190cmVlX3BvaW50c190by4KCjIwMDQtMDgtMjYgIEZhcmlib3J6IEphaGFuaWFuICA8ZmphaGFuaWFuQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKEhBUkRfUkVHTk9fQ0FMTF9QQVJUX0NMT0JCRVJFRCk6IEFkZGVkCglURm1vZGUgYXMgYWRkaXRpb25hbCByZWdpc3RlciBtb2RlIGNsb2JlcnJlZCBieSBjYWxsLgoKMjAwNC0wOC0yNiAgRmFyaWJvcnogSmFoYW5pYW4gIDxmamFoYW5pYW5AYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2xpYmNhbGxfdmFsdWUpOiBHZW5lcmF0ZQoJcGFyYWxsZWwgcGF0dGVybiBmb3IgbGlicmFyeSBjYWxsIHJldHVybmluZyBESW1vZGUgaW4KCW1peGVkIG1vZGUuCgoyMDA0LTA4LTI2ICBGYXJpYm9yeiBKYWhhbmlhbiAgPGZqYWhhbmlhbkBhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChmdW5jdGlvbl9hcmcpOiBHZW5lcmF0ZSBwYXJhbGxlbAoJcGF0dGVybiBmb3IgbW9yZSBzcGxpdCBhcmdzLgoKMjAwNC0wOC0yNiAgRmFyaWJvcnogSmFoYW5pYW4gIDxmamFoYW5pYW5AYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3NwbGl0X211bHRpcmVnX21vdmUpOiBDYWxsCgllaXRoZXIgZ2VuX21vdmRpX2RpX3VwZGF0ZSBvciBnZW5fbW92ZGlfc2lfdXBkYXRlIGRlcGVuZGluZyBvbgoJdGFyZ2V0IG1vZGUuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChtb3ZkaV91cGRhdGUpOiBDaGFuZ2VkIHRvIG1vdmRpXzxtb2RlPl91cGRhdGUsCgl0byBnZW5lcmF0ZSB0d28gdmVyc2lvbnMuCgoyMDA0LTA4LTI2ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIE1ha2VmaWxlLmluIChsYW1iZGEtY29kZS5vKTogTmV3LgoJKGxhbWJkYS10cmFucy5vKTogRGl0dG8uCgkoVFJFRV9EQVRBX1JFRl9IKTogRGl0dG8uCgkoTEFNQkRBX0gpOiBEaXR0by4KCShsYW1iZGEtbWF0Lm8pOiBVc2UgTEFNQkRBX0guCgkodHJlZS1kYXRhLXJlZi5vKTogRGl0dG8uCgkqIGxhbWJkYS1jb2RlLmM6IE5ldyBmaWxlLiAgTGFtYmRhIGNvZGUgZ2VuZXJhdGlvbiBhbGdvcml0aG0uCgkqIGxhbWJkYS10cmFucy5jOiBEaXR0by4gTGFtYmRhIHRyYW5zZm9ybWF0aW9uIG1hdHJpeCBzdXBwb3J0LgoJKiBsYW1iZGEuaDogQWRkIGxhbWJkYSBsb29wIHN0cnVjdHVyZXMuCglBZGQgbGFtYmRhIGxvb3BuZXN0IHN0cnVjdHVyZXMuCglBZGQgbGFtYmRhIGJvZHkgdmVjdG9yIHN0cnVjdHVyZS4KCUFkZCBsYW1iZGEgbGluZWFyIGV4cHJlc3Npb24gc3RydWN0dXJlcy4KCUFkZCBwcm90b3R5cGVzIGZvciBmdW5jdGlvbnMgaW4gbmV3IGZpbGVzLgoJKiBsYW1iZGEtbWF0LmM6IEluY2x1ZGUgdHJlZS5oCgoyMDA0LTA4LTI2ICBEYW5pZWwgQmVybGluIDxkYmVybGluQGRiZXJsaW4ub3JnPgoJICAgIFNlYmFzdGlhbiBQb3AgIDxwb3BAY3JpLmVuc21wLmZyPgoKCSogdHJlZS1kYXRhLXJlZi5oOiBJbmNsdWRlIGxhbWJkYS5oCgkoZnJlZV9kZXBlbmRlbmNlX3JlbGF0aW9uKTogRGVjbGFyZWQgaGVyZS4KCShmcmVlX2RlcGVuZGVuY2VfcmVsYXRpb25zKTogRGl0dG8uCgkoZnJlZV9kYXRhX3JlZnMpOiBEaXR0by4KCSogdHJlZS1kYXRhLXJlZi5jIChmcmVlX2RlcGVuZGVuY2VfcmVsYXRpb24pOiBOZXcgZnVuY3Rpb24uCgkoZnJlZV9kZXBlbmRlbmNlX3JlbGF0aW9ucyk6IERpdHRvLgoJKGZyZWVfZGF0YV9yZWZzKTogRGl0b3QuCgkoYW5hbHl6ZV9hbGxfZGF0YV9kZXBlbmRlbmNlcyk6IEZyZWUgZGF0YXJlZnMgYW5kIGRlcGVuZGVuY2VfcmVsYXRpb25zLgoJKGJ1aWxkX2NsYXNzaWNfZGlzdF92ZWN0b3IpOiBTdG9yZSBpbiB0aGUgZGVwZW5kZW5jZV9yZWxhdGlvbnMgdGhlCglpbmZvcm1hdGlvbi4gRWFjaCBhcmMgaW4gdGhlIGRlcGVuZGVuY2VfcmVsYXRpb25zIGdyYXBoIGlzIGxhYmVsbGVkCgl3aXRoIHRoZSBkaXN0YW5jZSBhbmQgZGlyZWN0aW9uIHZlY3RvcnMuCgkoYnVpbGRfY2xhc3NpY19kaXJfdmVjdG9yKTogRGl0dG8uCgkoY29tcHV0ZV9yd193cl93d19kZXBlbmRlbmNlcyk6IFJlbmFtZWQgYWdhaW4gY29tcHV0ZV9hbGxfZGVwZW5kZW5jZXMuCglOb3cgY29tcHV0ZXMgYWdhaW4gdGhlIHdob2xlIGRlcGVuZGVuY2UgZ3JhcGggaW5jbHVkaW5nIHJlYWQtcmVhZAoJcmVsYXRpb25zLgoJKGNvbXB1dGVfZGF0YV9kZXBlbmRlbmNlc19mb3JfbG9vcCk6IE5vdyBkZXBlbmRlbmNlX3JlbGF0aW9ucyBjb250YWlucwoJYWxsIHRoZSBkYXRhLCBhbmQgdGh1cyBpdCBkb2Vzbid0IG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGUgY2xhc3NpY19kaXIKCWFuZCBjbGFzc2ljX2Rpc3QgdmVjdG9ycy4KCShhbmFseXplX2FsbF9kYXRhX2RlcGVuZGVuY2VzKTogQWRqdXN0ZWQgZm9yIHVzaW5nIHRoZSBuZXcgaW50ZXJmYWNlIG9mCgljb21wdXRlX2RhdGFfZGVwZW5kZW5jZXNfZm9yX2xvb3AuICBSZW1vdmUgdGhlIHN0YXRpc3RpY3MgZHVtcC4KCjIwMDQtMDgtMjYgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBjb25maWcveHRlbnNhL3h0ZW5zYS5jICh4dGVuc2FfbGRfb3Bjb2RlcywgeHRlbnNhX3N0X29wY29kZXMpOiBEZWxldGUuCgkoeHRlbnNhX2V4cGFuZF9ibG9ja19tb3ZlKTogVXBkYXRlIGNvbW1lbnQuCgkob3ZlcnJpZGVfb3B0aW9ucyk6IFJlbW92ZSBpbml0aWFsaXphdGlvbiBvZiB4dGVuc2Ffe2xkLHN0fV9vcGNvZGVzLgoKMjAwNC0wODAyNiAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJUFIgdGFyZ2V0LzEzNTA2CgkqIHRvcGxldi5jIChjcmFzaF9zaWduYWwpOiBJZiB3ZSBjcmFzaGVkIHdoaWxlIGVtaXR0aW5nCglhIHVzZXIgYXNtLCB0aGVuIGRpZSBtb3JlIGdyYWNlZnVsbHkuCgoyMDA0LTA4LTI2ICBLYXp1aGlybyBJbmFva2EgIDxpbmFva2Eua2F6dWhpcm9AcmVuZXNhcy5jb20+CgoJUFIgdGFyZ2V0LzE3MTE5LgoJKiBjb25maWcvbTMyci5jIChnZW5fY29tcGFyZSk6IFVzZSByZWdfb3JfaW50MTZfb3BlcmFuZCB3aGVuCgljaGVja2luZyBmb3IgYSB2YWxpZCBjb25zdGFudCwgcmVnYXJkbGVzcyBvZiBzaWduLgoKMjAwNC0wOC0yNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTY5NzQKCSogY29uZmlnL2FscGhhL2FscGhhLm1kIChhZGRkaV9mcF9oYWNrKTogRG9uJ3QgcmVseSBvbiBzcGxpdHRpbmcKCWlmIHRoZSBjb25zdGFudCBzYXRpc2ZpZXMgYWRkX29wZXJhbmQuCgoyMDA0LTA4LTI1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIGRlYnVnLzEwNjk1CgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5jIChlbWl0X2ZyYW1lX3N0b3JlXzEsIGVtaXRfZnJhbWVfc3RvcmUpOiBOZXcuCgkoYWxwaGFfZXhwYW5kX3Byb2xvZ3VlKTogSGFuZGxlID4zMi1iaXQgZnJhbWVzLiAgR2VuZXJhdGUgcHJvcGVyCgl1bndpbmQgaW5mbyBmb3IgPjE2LWJpdCBmcmFtZXMuCgoyMDA0LTA4LTI1ICBSaWNoYXJkIEIuIEtyZWNrZWwgIDxyaWNoYXJkLmtyZWNrZWxAZnJhbWF0b21lLWFucC5jb20+CgoJUFIgdGFyZ2V0LzE3MTcxCgkqIGNvbmZpZy9pMzg2L2dhcy5oIChBU01fQ09NTUVOVF9TVEFSVCk6IERlZmluZSB0byAiIyIuCgoyMDA0LTA4LTI1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2FscGhhL2FscGhhLmMgKGFscGhhX2Nhbm5vdF9mb3JjZV9jb25zdF9tZW0pOiBOZXcuCgkoVEFSR0VUX0NBTk5PVF9GT1JDRV9DT05TVF9NRU0pOiBOZXcuCgoyMDA0LTA4LTI1ICBBbmRyZXcgTWFjTGVvZCAgPGFtYWNsZW9kQHJlZGhhdC5jb20+CgoJKiBkb2MvdHJlZS1zc2EudGV4aTogRG9jdW1lbnQgbmV3IG9wZXJhbmQgaXRlcmF0b3IuCgoyMDA0LTA4LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCVBSIHRhcmdldC8xNjQ4MAoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfc3BsaXRfbXVsdGlyZWdfbW92ZSk6IERvbid0IGFib3J0CglvbiAiKG1lbSAoc3ltYm9sX3JlZiAuLikpIiBydGwuICBMb29rIGF0IExPX1NVTSBiYXNlIHJlZ3MgYXMgd2VsbAoJYXMgUExVUyBiYXNlIHJlZ3MuCgoyMDA1LTA4LTI4ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL2FybS9zeW1iaWFuLmggKFNVQlRBUkdFVF9BU01fRkxPQVRfU1BFQyk6IERlZmF1bHQgdG8KCS1tZnB1PXZmcCAtbWFyY2g9YXJtdjV0CgkqIGNvbmZpZy9hcm0vdC1zeW1iaWFuOiBDaGFuZ2UgbXVsdGlsaWIgdG8gbWZsb2F0LWFiaT1zb2Z0ZnAuCgoyMDA0LTA4LTI1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdGFyZ2V0LWRlZi5oIChUQVJHRVRfU0NBTEFSX01PREVfU1VQUE9SVEVEX1ApOiBOZXcuCgkqIHRhcmdldC5oIChzdHJ1Y3QgZ2NjX3RhcmdldCk6IEFkZCBzY2FsYXJfbW9kZV9zdXBwb3J0ZWRfcC4KCSogdGFyZ2hvb2tzLmMgKGRlZmF1bHRfc2NhbGFyX21vZGVfc3VwcG9ydGVkX3ApOiBOZXcuCgkqIHRhcmdob29rcy5oIChkZWZhdWx0X3NjYWxhcl9tb2RlX3N1cHBvcnRlZF9wKTogRGVjbGFyZS4KCSogZG9jL3RtLnRleGkgKFRBUkdFVF9TQ0FMQVJfTU9ERV9TVVBQT1JURURfUCk6IERvY3VtZW50LgoKCSogYy1jb21tb24uYyAoaGFuZGxlX21vZGVfYXR0cmlidXRlKTogUXVlcnkgc2NhbGFyX21vZGVfc3VwcG9ydGVkX3AKCWJlZm9yZSBhdHRlbXB0aW5nIHRvIGNyZWF0ZSB0eXBlcy4gIFRpZHkuCgkqIGV4cHIuYyAodmVjdG9yX21vZGVfdmFsaWRfcCk6IFVzZSBzY2FsYXJfbW9kZV9zdXBwb3J0ZWRfcC4KCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5jIChhbHBoYV9zY2FsYXJfbW9kZV9zdXBwb3J0ZWRfcCk6IE5ldy4KCShUQVJHRVRfU0NBTEFSX01PREVfU1VQUE9SVEVEX1ApOiBOZXcuCgoyMDA0LTA4LTI1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvZnJlZWJzZC5oIChTVUJUQVJHRVRfT1ZFUlJJREVfT1BUSU9OUyk6IERvbid0CglzZXQgUkVBTF9NT0RFX0ZPUk1BVCBmb3IgVEZtb2RlLgoKMjAwNC0wOC0yNSAgWmllbW93aXQgTGFza2kgIDx6bGFza2lAYXBwbGUuY29tPgoKCSogYy1kZWNsLmMgKGdyb2twYXJtKTogTmV3IGZ1bmN0aW9uLgoJKiBjLXRyZWUuaCAoZ3Jva3Bhcm0pOiBOZXcgcHJvdG90eXBlLgoKMjAwNC0wOC0yNSAgQW5kcmV3IE1hY0xlb2QgIDxhbWFjbGVvZEByZWRoYXQuY29tPgoKCSogdHJlZS1zc2Etb3BlcmFuZHMuaCAoc3RydWN0IHNzYV9vcGVyYW5kX2l0ZXJhdG9yX2QpOiBOZXcuICBTU0Egb3BlcmFuZAoJaXRlcmF0b3IgY29udHJvbGxpbmcgc3RydWN0dXJlLgoJKFNTQV9PUF9VU0UsIFNTQV9PUF9ERUYsIFNTQV9PUF9WVVNFLCBTU0FfT1BfVk1BWVVTRSwgU1NBX09QX1ZNQVlERUYsCglTU0FfT1BfVk1VU1RERUYsIFNTQV9PUF9WSVJUVUFMX1VTRVMsIFNTQV9PUF9WSVJUVUFMX0RFRlMsCglTU0FfT1BfQUxMX1VTRVMsIFNTQV9PUF9BTExfREVGUywgU1NBX09QX0FMTF9PUEVSQU5EUyk6IE5ldy4gIE9wZXJhbmQKCWl0ZXJhdG9yIGZsYWdzLgoJKEZPUl9FQUNIX1NTQV9UUkVFX09QRVJBTkQpOiBOZXcuICBJdGVyYXRlIG92ZXIgb3BlcmFuZHMgYXMgdHJlZXMuCgkoRk9SX0VBQ0hfU1NBX1VTRV9PUEVSQU5EKTogTmV3LiAgSXRlcmF0ZSBvdmVyIG9wZXJhbmRzIGFzIHVzZXMuCgkoRk9SX0VBQ0hfU1NBX0RFRl9PUEVSQU5EKTogTmV3LiAgSXRlcmF0ZSBvdmVyIG9wZXJhbmRzIGFzIGRlZnMuCgkoRk9SX0VBQ0hfU1NBX01BWURFRl9PUEVSQU5EKTogTmV3LiAgSXRlcmF0ZSBvdmVyIFZfTUFZX0RFRnMuCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKE5VTExfREVGX09QRVJBTkRfUCwgTlVMTF9VU0VfT1BFUkFORF9QKTogTmV3LgoJRW1wdHkgb3BlcmFuZCBwb2ludGVycy4KCSogdHJlZS1mbG93LWlubGluZS5oIChvcF9pdGVyX2RvbmUpOiBOZXcuICBSZXR1cm4gdHJ1ZSBpZiBmaW5pc2hlZC4KCShvcF9pdGVyX25leHRfdXNlKTogTmV3LiAgUmV0dXJuIG5leHQgdXNlX29wZXJhbmRfcC4KCShvcF9pdGVyX25leHRfZGVmKTogTmV3LiAgUmV0dXJuIG5leHQgZGVmX29wZXJhbmRfcC4KCShvcF9pdGVyX25leHRfdHJlZSk6IE5ldy4gIFJldHVybiBuZXh0IG9wZXJhbmRzIGFzIGEgdHJlZS4KCShvcF9pdGVyX2luaXQpOiBOZXcuICBJbml0aWFsaXplIGFuIGl0ZXJhdG9yIHN0cnVjdHVyZS4KCShvcF9pdGVyX2luaXRfdXNlKTogTmV3LiAgSW5pdGlhbGl6ZSBzdHJ1Y3R1cmUgYW5kIGdldCB0aGUgZmlyc3QgdXNlLgoJKG9wX2l0ZXJfaW5pdF9kZWYpOiBOZXcuICBJbml0aWFsaXplIHN0cnVjdHVyZSBhbmQgZ2V0IHRoZSBmaXJzdCBkZWYuCgkob3BfaXRlcl9pbml0X3RyZWUpOiBOZXcuICBJbml0aWFsaXplIHN0cnVjdHVyZSBhbmQgZ2V0IHRoZSBmaXJzdCB0cmVlLgoJKG9wX2l0ZXJfbmV4dF9tYXlkZWYpOiBOZXcuICBSZXR1cm4gbmV4dCBWX01BWV9ERUYgb3BlcmFuZHMuCgkob3BfaXRlcl9pbml0X21heWRlZik6IE5ldy4gIEluaXRpYWxpemUgc3RydWN0dXJlIGFuZCBnZXQgdGhlIGZpcnN0CglWX01BWV9ERUYgb3BlcmFuZHMuCgkqIHRyZWUtY2ZnLmMgKHRyZWVfZHVwbGljYXRlX2JiKTogVXNlIG5ldyBvcGVyYW5kIGl0ZXJhdG9yLgoJKiB0cmVlLWRmYS5jIChjb21wdXRlX2ltbWVkaWF0ZV91c2VzX2Zvcl9zdG10LAoJcmVkaXJlY3RfaW1tZWRpYXRlX3VzZXMpOiBVc2UgbmV3IG9wZXJhbmQgaXRlcmF0b3IuCgkodl9tYXlfZGVmc19kaXNhcHBlYXJlZF9wLCB2X211c3RfZGVmc19kaXNhcHBlYXJlZF9wKTogRGVsZXRlLgoJKG1hcmtfbmV3X3ZhcnNfdG9fcmVuYW1lKTogVXNlIG5ldyBvcGVyYW5kIGl0ZXJhdG9yLiAgQ291bnQgdmlydHVhbAoJb3BlcmFuZHMgaW5zdGVhZCBvZiB1c2luZyAqX2Rpc2FwcGVhcmVkX3Agcm91dGluZXMuCgkqIHRyZWUtaW50by1zc2EuYyAobWFya19kZWZfc2l0ZXMsIHNzYV9tYXJrX2RlZl9zaXRlcywgcmV3cml0ZV9zdG10LAoJc3NhX3Jld3JpdGVfc3RtdCk6IFVzZSBuZXcgb3BlcmFuZCBpdGVyYXRvci4KCSogdHJlZS1vdXRvZi1zc2EuYyAoY2hlY2tfcmVwbGFjZWFibGUsIGZpbmRfcmVwbGFjZWFibGVfaW5fYmIsCglyZXdyaXRlX3RyZWVzKTogVXNlIG5ldyBvcGVyYW5kIGl0ZXJhdG9yLgoJKiB0cmVlLXByZXR0eS1wcmludC5jIChkdW1wX3ZvcHMpOiBVc2UgbmV3IG9wZXJhbmQgaXRlcmF0b3IuCgkqIHRyZWUtc3JhLmMgKG1hcmtfYWxsX3ZfZGVmcyk6IFVzZSBuZXcgb3BlcmFuZCBpdGVyYXRvci4KCSogdHJlZS1zc2EtYWxpYXMuYyAoY29tcHV0ZV9wb2ludHNfdG9fYW5kX2FkZHJfZXNjYXBlLAoJZHVtcF9wb2ludHNfdG9faW5mbyk6IFVzZSBuZXcgb3BlcmFuZCBpdGVyYXRvci4KCSogdHJlZS1zc2EtY2NwLmMgKGNwX2xhdHRpY2VfbWVldCwgdmlzaXRfc3RtdCwgaW5pdGlhbGl6ZSwKCXJlcGxhY2VfdXNlc19pbiwgcmVwbGFjZV92dXNlX2luLCBsaWtlbHlfdmFsdWUsIHNldF9yaHMpOiBVc2UgbmV3CglvcGVyYW5kIGl0ZXJhdG9yLgoJKiB0cmVlLXNzYS1kY2UuYyAobWFya19zdG10X2lmX29idmlvdXNseV9uZWNlc3NhcnksCglwcm9wYWdhdGVfbmVjZXNzaXR5KTogVXNlIG5ldyBvcGVyYW5kIGl0ZXJhdG9yLgoJKiB0cmVlLXNzYS1kb20uYyAoY3Byb3BfaW50b19zdG10LCBvcHRpbWl6ZV9zdG10KTogVXNlIG9wZXJhbmQgaXRlcmF0b3IuCgkocmVnaXN0ZXJfZGVmaW5pdGlvbnNfZm9yX3N0bXQpOiBVc2UgbmV3IG9wZXJhbmQgaXRlcmF0b3IuICBUYWtlIHN0bXQgYXMKCWEgcGFyYW1ldGVyIGluc3RlYWQgb2YgYSBzdG10X2Fubl90LgoJKiB0cmVlLXNzYS1saXZlLmMgKGNyZWF0ZV9zc2FfdmFyX21hcCwgY2FsY3VsYXRlX2xpdmVfb25fZW50cnksCglidWlsZF90cmVlX2NvbmZsaWN0X2dyYXBoKTogVXNlIG5ldyBvcGVyYW5kIGl0ZXJhdG9yLgoJKiB0cmVlLXNzYS1sb29wLWltLmMgKGRldGVybWluZV9tYXhfbW92ZW1lbnQsIHNpbmdsZV9yZWFjaGFibGVfYWRkcmVzcywKCXJld3JpdGVfbWVtX3JlZnMpOiBVc2UgbmV3IG9wZXJhbmQgaXRlcmF0b3IuCgkqIHRyZWUtc3NhLWxvb3AtbWFuaXAuYyAoZmluZF91c2VzX3RvX3JlbmFtZV9zdG10LAoJY2hlY2tfbG9vcF9jbG9zZWRfc3NhX3VzZSk6IFVzZSBuZXcgb3BlcmFuZCBpdGVyYXRvci4KCSogdHJlZS1zc2EuYyAodmVyaWZ5X3NzYSwgcmVwbGFjZV9pbW1lZGlhdGVfdXNlcyk6IFVzZSBvcGVyYW5kIGl0ZXJhdG9yLgoJKiB0cmVlLXNzYW5hbWVzLmMgKHJlbGVhc2VfZGVmcyk6IFVzZSBuZXcgb3BlcmFuZCBpdGVyYXRvci4KCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfY3JlYXRlX2RhdGFfcmVmKTogVXNlIG5ldyBvcGVyYW5kIGl0ZXJhdG9yLgoKMjAwNC0wOC0yNSAgQWRhbSBOZW1ldCAgPGFuZW1ldEBsbnh3LmNvbT4KCgkqIHRsaW5rLmMgKGluaXRpYWxfY3dkKTogTmV3IHZhcmlhYmxlLgoJKHRsaW5rX2luaXQpOiBJbml0aWFsaXplIGl0LgoJKHJlY29tcGlsZV9maWxlcyk6IFVzZSB0bGlua19leGVjdXRlKCkgaW5zdGVhZCBvZiBzeXN0ZW0oKS4gIERvbid0CglkdXBsaWNhdGUgdmVyYm9zZSBvdXRwdXQgb2YgY29sbGVjdF9leGVjdXRlLiAgUmVzdG9yZSBpbml0aWFsX2N3ZC4KCVVwZGF0ZSBjb21tZW50IGJlZm9yZSB0aGUgZnVuY3Rpb24uCgoyMDA0LTA4LTI1ICBaaWVtb3dpdCBMYXNraSAgPHpsYXNraUBhcHBsZS5jb20+CgoJKiBjLXR5cGVjay5jIChidWlsZF9jX2Nhc3QpOiBJbiBPYmpDLCBhbHdheXMgcHJlc2VydmUgKGFuZCBzaWxlbnRseQoJYWNjZXB0KSBhIGNhc3QgZnJvbSBvbmUgT2JqZWN0aXZlLUMgcG9pbnRlciB0eXBlIHRvIGFub3RoZXIuCgoyMDA0LTA4LTI1ICBQYW9sbyBDYXJsaW5pICA8cGNhcmxpbmlAc3VzZS5kZT4KCgkqIGRvYy9pbnN0YWxsLnRleGk6IERvY3VtZW50IHRoYXQgbGlic3RkYysrLXYzIHJlcXVpcmVzCglub3cgYXV0b21ha2UgMS45LjEuCgoyMDA0LTA4LTI1ICBDYXJvbGluZSBUaWNlICA8Y3RpY2VAYXBwbGUuY29tPgoKCSogYmItcmVvcmRlci5jIChwYXJ0aXRpb25faG90X2NvbGRfYmFzaWNfYmxvY2tzKTogIEFkZCBtb3JlIGRldGFpbHMKCXRvIGNvbW1lbnRzIGF0IHN0YXJ0IG9mIGZ1bmN0aW9uLgoJKiBjZmdidWlsZC5jIChtYWtlX2VkZ2VzKTogIEFkZCBtb3JlIGRldGFpbHMgdG8gaG90L2NvbGQgcGFydGl0aW9uaW5nCgljb21tZW50LgoJKiBjZmdjbGVhbnVwLmMgKHRyeV9zaW1wbGlmeV9jb25kanVtcCwgdHJ5X2ZvcndhcmRfZWRnZXMsCgltZXJnZV9ibG9ja3NfbW92ZV9wcmVkZWNlc3Nvcl9ub2p1bXBzLAoJbWVyZ2VfYmxvY2tzX21vdmVfc3VjY2Vzc29yX25vanVtcHMsIG1lcmdlX2Jsb2Nrc19tb3ZlLAoJdHJ5X2Nyb3NzanVtcF90b19lZGdlLCB0cnlfY3Jvc3NqdW1wX2JiKTogTGlrZXdpc2UuCgkqIGNmZ2xheW91dC5jIChmaXh1cF9yZW9yZGVyX2NoYWluKTogTGlrZXdpc2UuCgkqIGNmZ3J0bC5jIChydGxfY2FuX21lcmdlX2Jsb2NrcywgdHJ5X3JlZGlyZWN0X2J5X3JlcGxhY2luZ19qdW1wLAoJY2ZnX2xheW91dF9jYW5fbWVyZ2VfYmxvY2tzX3ApOiAgTGlrZXdpc2UuCgkqIGlmY3Z0LmMgKGZpbmRfaWZfY2FzZV8xLCBmaW5kX2lmX2Nhc2VfMik6IExpa2V3aXNlLgoJKiBwYXNzZXMuYyAocmVzdF9vZl9jb21waWxhdGlvbik6IFVwZGF0ZSBjb21tZW50cyBmb3IgY2FsbGluZwoJb3B0aW1pemF0aW9uIHRoYXQgcGFydGl0aW9ucyBob3QvY29sZCBiYXNpYyBibG9ja3MuCgkqIGRvYy9pbnZva2UudGV4aTogIFVwZGF0ZSBkb2N1bWVudGF0aW9uIG9mCglmcmVvcmRlci1ibG9ja3MtYW5kLXBhcnRpdGlvbiBmbGFnLgoKMjAwNC0wOC0yNSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5tZCAocmVnKTogUmVuYW1lZCBtb2RlIGF0dHJpYnV0ZSBmcm9tIGNjcmVnLgoJKCptb3YqX29uXyopOiBBZGp1c3QgYWNjb3JkaW5nbHkuICBBZGQgYW4gZXhwbGljaXQgTU9WRUNDOiBwcmVmaXguCgoyMDA0LTA4LTI1ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChhbnlfc2hpZnQpOiBOZXcgY29kZSBtYWNyby4KCShvcHRhYiwgaW5zbik6IE5ldyBjb2RlIGF0dHJpYnV0ZXMuCgkoe2FzaGwsYXNocixsc2hyfVtzZF1pMyk6IFJlZGVmaW5lIHVzaW5nIDpHUFIgYW5kIGFueV9zaGlmdC4KCVVzZSB0aGUgc3RhbmRhcmQgcmF0aGVyIHRoYW4gaW50ZXJuYWwgcGF0dGVybnMgZm9yIHRoZSBNSVBTMTYKCWRvdWJsZS1zaGlmdCBvcHRpbWl6YXRpb24uCgkoKnthc2hsLGFzaHIsbHNocn1bc2RdaTMpOiBOZXcgbmFtZXMgZm9yIHRoZSBub24tbWlwczE2IHNoaWZ0IHBhdHRlcm5zLgoJUmVkZWZpbmUgdXNpbmcgOkdQUiBhbmQgYW55X3NoaWZ0LgoJKCp7YXNobCxhc2hyLGxzaHJ9c2kzX2V4dGVuZCk6IEdlbmVyYWxpemUgYXNobHNpM19pbnRlcm5hbDFfZXh0ZW5kCgl0byBjb3ZlciBhbGwgdGhyZWUgc2hpZnRzLgoJKCp7YXNobCxhc2hyLGxzaHJ9c2kzX21pcHMxNik6IE5ldyBuYW1lcyBmb3IgdGhlIG1pcHMxNiBTSW1vZGUgc2hpZnRzLgoJUmVkZWZpbmUgdXNpbmcgYW55X3NoaWZ0LiAgVXNlIDpHUFIgYW5kIGFueV9zaGlmdCB0byBjb21iaW5lIHNwbGl0dGVycy4KCSgqe2FzaGwsYXNocixsc2hyfWRpM19taXBzMTYpOiBOZXcgbmFtZXMgZm9yIHRoZSBtaXBzMTYgREltb2RlIHNoaWZ0cy4KCjIwMDQtMDgtMjQgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogZ2ltcGxpZnkuYyAobG9va3VwX3RtcF92YXIpOiBTZXBhcmF0ZSB0ZW1wb3JhcmllcyB3aGVuIG5vdAoJb3B0aW1pemluZy4KCjIwMDQtMDgtMjUgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJUFIgbGlic3RkYysrLzE3MDA1IChmaXggZm9yIEhQLVVYIDExLjExKQoJKiBjb25maWcuZ2NjIChocHBhKi0qLSopOiBNb3ZlIE1BU0tfQklHX1NXSVRDSCB0byB0YXJnZXRfY3B1X2RlZmF1bHQyLgoJKGhwcGEqLSotaHB1eCopOiBDb25zb2xpZGF0ZSBocHBhMS4wLSotKiBjb2RlLiAgUmV3b3JrIGhhbmRsaW5nIG9mCgl0bV9maWxlIGluY2x1ZGluZyBwYS1ocHV4MTAxMC5oIG9yIHBhLWhwdXgxMTExLmggd2hlbiBhcHByb3ByaWF0ZS4KCSogY29uZmlnL3BhL3BhLWhwdXgxMDEwLmgsIGNvbmZpZy9wYS9wYS1ocHV4MTExMS5oOiBOZXcgZmlsZXMuCgkqIGNvbmZpZy9wYS9wYS1ocHV4LmggKFRBUkdFVF9IUFVYKTogRGVmaW5lLgoJKExJTktfU1BFQyk6IEhhbmRsZSBtYXJjaD0xLjAgb3B0aW9uLgoJKiBjb25maWcvcGEvcGEtaHB1eDEwLmggKFRBUkdFVF9PU19DUFBfQlVJTFRJTlMpOiBQcmVkZWZpbmUgX1hPUEVOX1VOSVgKCWFuZCBfWE9QRU5fU09VUkNFX0VYVEVOREVEIGZvciBVTklYIDk1LgoJKFNVQlRBUkdFVF9PUFRJT05TKTogTmV3IGRlZmluZS4KCShMSU5LX1NQRUMpOiBIYW5kbGUgbWFyY2g9MS4wIG9wdGlvbi4KCShTVEFSVEZJTEVfU1BFQyk6IE5ldyBkZWZpbmUuCgkqIGNvbmZpZy9wYS9wYS1ocHV4MTEuaCAoVEFSR0VUX09TX0NQUF9CVUlMVElOUyk6IFByZWRlZmluZSBfWE9QRU5fVU5JWAoJYW5kIF9YT1BFTl9TT1VSQ0VfRVhURU5ERUQgZm9yIFVOSVggOTUuICBBZGRpdGlvbmFsbHksIHByZWRlZmluZQoJX0lOQ0xVREVfX1NURENfQTFfU09VUkNFIGFuZCBfSU5DTFVERV9YT1BFTl9TT1VSQ0VfNTAwIGZvciBVTklYIDk4LgoJKFNVQlRBUkdFVF9PUFRJT05TKTogTmV3IGRlZmluZS4KCShMSU5LX1NQRUMpOiBIYW5kbGUgbWFyY2g9MS4wIG9wdGlvbi4KCShTVEFSVEZJTEVfU1BFQyk6IE5ldyBkZWZpbmUuCgkqIGNvbmZpZy9wYS9wYS5jIChvdmVycmlkZV9vcHRpb25zKTogQWRkIGNvZGUgdG8gcHJvY2VzcyAtbXVuaXg9IG9wdGlvbi4KCSogY29uZmlnL3BhL3BhLmggKHBhX3VuaXhfc3RyaW5nLCBmbGFnX3BhX3VuaXgpOiBEZWNsYXJlLgoJKFRBUkdFVF9IUFVYLCBUQVJHRVRfSFBVWF8xMF8xMCwgVEFSR0VUX0hQVVhfMTFfMTEpOiBQcm92aWRlIGRlZmF1bHQKCWRlZmluZXMuCgkoVEFSR0VUX09QVElPTlMpOiBBZGQgU1VCVEFSR0VUX09QVElPTlMgdG8gb3B0aW9uIGxpc3QuCgkoU1VCVEFSR0VUX09QVElPTlMpOiBQcm92aWRlIGRlZmF1bHQgZGVmaW5lLgoJKiBjb25maWcvcGEvcGE2NC1ocHV4LmggKFNUQU5EQVJEX1NUQVJURklMRV9QUkVGSVhfMSwKCVNUQU5EQVJEX1NUQVJURklMRV9QUkVGSVhfMik6IE5ldyBkZWZpbmVzLgoJKFNUQVJURklMRV9TUEVDKTogUHJvdmlkZSB1bml4OTUubyBvciB1bml4OTgubyBzdGFydGZpbGVzIGFzIG5lY2Vzc2FyeS4KCShFTkRGSUxFX1NQRUMpOiBVc2UgJU8uCgkqIGRvYy9pbnN0YWxsLnRleGkgKGhwcGEqLSotaHB1eCopOiBSZXdvcmQgcGFyYWdyYXBoIG9uIC1nIGFuZCBnYXMuCglNZW50aW9uIGlzc3VlIGNhdXNlZCBieSBjaGFuZ2luZyBuYW1lc3BhY2UgYW5kIHJ1bnRpbWUgdG8gVU5JWCA5NS85OC4KCSogZG9jL2ludm9rZS50ZXhpIChIUFBBIG9wdGlvbnMpOiBNb3ZlIG1pc3BsYWNlZCB0ZXh0IHRvIEZSViBvcHRpb25zLgoJRG9jdW1lbnQgLW11bml4PXN0ZCBvcHRpb24uCgoyMDA0LTA4LTI1ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBjc2UuYyAoY3NlX2Fyb3VuZF9sb29wLCBjc2VfY2hlY2tfbG9vcF9zdGFydCwKCWNzZV9zZXRfYXJvdW5kX2xvb3ApOiBSZW1vdmUuCgkoY3NlX2Jhc2ljX2Jsb2NrKTogUmVtb3ZlIHRoZSBhcm91bmRfbG9vcCBhcmd1bWVudC4KCShjc2VfZW5kX29mX2Jhc2ljX2Jsb2NrKTogUmVtb3ZlIHRoZSBhZnRlcl9sb29wIGFyZ3VtZW50LgoJKGNzZV9tYWluKTogTGlrZXdpc2UuCgkqIHJ0bC5oIChjc2VfbWFpbik6IFVwZGF0ZSBwcm90b3R5cGUuCgkqIHBhc3Nlcy5jIChyZXN0X29mX2hhbmRsZV9jc2UsIHJlc3Rfb2ZfaGFuZGxlX2NzZTIsCglyZXN0X29mX2hhbmRsZV9nY3NlKTogVXBkYXRlIGNzZV9tYWluIGNhbGxzLgoKMjAwNC0wOC0yNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWUuaCAgKGJ1aWxkX2ludF9jc3QpOiBOZXcsIHNpZ24gZXh0ZW5kZWQgY29uc3RhbnQuCgkoYnVpbGRfaW50X2NzdHUpOiBOZXcsIHplcm8gZXh0ZW5kZWQgY29uc3RhbnQuCgkoYnVpbGRfaW50X2NzdF93aWRlKTogUmVuYW1lZCBmcm9tIGJ1aWxkX2ludF9jc3QuCgkqIHRyZWUuYyAoYnVpbGRfaW50X2NzdCwgYnVpbGRfaW50X2NzdHUpOiBOZXcuCgkoYnVpbGRfaW50X2NzdF93aWRlKTogUmVuYW1lZCBmcm9tIGJ1aWxkX2ludF9jc3QuCgkobWFrZV92ZWN0b3JfdHlwZSwgYnVpbGRfY29tbW9uX3RyZWVfbm9kZXMsCglidWlsZF9jb21tb25fdHJlZV9ub2Rlc18yKTogQWRqdXN0IGJ1aWxkX2ludF9jc3QgY2FsbHMuCgkqIGJ1aWx0aW5zLmMgKGV4cGFuZF9idWlsdGluX3ByZWZldGNoLCBleHBhbmRfYnVpbHRpbl9zdHJzdHIsCglleHBhbmRfYnVpbHRpbl9zdHJwYnJrLCBleHBhbmRfYnVpbHRpbl9mcHV0cywKCWJ1aWxkX3N0cmluZ19saXRlcmFsLCBleHBhbmRfYnVpbHRpbl9wcmludGYsCglleHBhbmRfYnVpbHRpbl9zcHJpbnRmLCBmb2xkX2J1aWx0aW5fY2xhc3NpZnlfdHlwZSwKCWZvbGRfYnVpbHRpbl9scm91bmQsIGZvbGRfYnVpbHRpbl9iaXRvcCwgZm9sZF9idWlsdGluX2lzYXNjaWksCglmb2xkX2J1aWx0aW5fdG9hc2NpaSwgZm9sZF9idWlsdGluX2lzZGlnaXQsCglzaW1wbGlmeV9idWlsdGluX3N0cnN0ciwgc2ltcGxpZnlfYnVpbHRpbl9zdHJwYnJrLAoJZm9sZF9idWlsdGluX2ZwdXRzLCBzaW1wbGlmeV9idWlsdGluX3NwcmludGYpOiBMaWtld2lzZS4KCSogYy1jb21tb24uYyAoc3RhcnRfZm5hbWVfZGVjbHMsIGZpeF9zdHJpbmdfdHlwZSwgc2hvcnRlbl9jb21wYXJlLAoJREVGX0FUVFJfSU5UKTogTGlrZXdpc2UuCgkqIGMtZGVjbC5jIChjb21wbGV0ZV9hcnJheV90eXBlLCBjaGVja19iaXRmaWVsZF90eXBlX2FuZF93aWR0aCk6CglMaWtld2lzZS4KCSogYy1sZXguYyAoaW50ZXJwcmV0X2ludGVnZXIsIGxleF9jaGFyY29uc3QpOiBMaWtld2lzZS4KCSogYy1wYXJzZS5pbiAocHJpbWFyeSkgPFRZUEVTX0NPTVBBVElCTEVfUD4gTGlrZXdpc2UuCgkqIGMtcHJldHR5LXByaW50LmMgKHBwX2NfaW50ZWdlcl9jb25zdGFudCk6IExpa2V3aXNlLgoJKiBjLXR5cGVjay5jIChyZWFsbHlfc3RhcnRfaW5jcmVtZW50YWxfaW5pdCwgcHVzaF9pbml0X2xldmVsLAoJc2V0X25vbmluY3JlbWVudGFsX2luaXRfZnJvbV9zdHJpbmcpOiBMaWtld2lzZS4KCSogY2FsbHMuYyAobG9hZF9yZWdpc3Rlcl9wYXJhbWV0ZXJzKTogTGlrZXdpc2UuCgljb252ZXJ0LmMgKGNvbnZlcnRfdG9fcG9pbnRlcik6IExpa2V3aXNlLgoJY292ZXJhZ2UuYyAoY292ZXJhZ2VfY291bnRlcl9hbGxvYywgdHJlZV9jb3ZlcmFnZV9jb3VudGVyX3JlZiwKCWJ1aWxkX2ZuX2luZm9fdHlwZSwgYnVpbGRfZm5faW5mb192YWx1ZSwgYnVpbGRfY3RyX2luZm9fdmFsdWUsCglidWlsZF9nY292X2luZm8pOiBMaWtld2lzZS4KCSogZXhjZXB0LmMgKGluaXRfZWgsIGFzc2lnbl9maWx0ZXJfdmFsdWVzKTogTGlrZXdpc2UuCgkqIGV4cG1lZC5jIChzdG9yZV9maXhlZF9iaXRfZmllbGQsIGV4dHJhY3RfYml0X2ZpZWxkLAoJZXh0cmFjdF9maXhlZF9iaXRfZmllbGQsIGV4dHJhY3Rfc3BsaXRfYml0X2ZpZWxkLCBleHBhbmRfc2hpZnQsCglleHBhbmRfbXVsdF9jb25zdCwgZXhwYW5kX211bHRfaGlnaHBhcnRfYWRqdXN0LCBleHRyYWN0X2hpZ2hfaGFsZiwKCWV4cGFuZF9zZGl2X3BvdzIsIGV4cGFuZF9kaXZtb2QsIG1ha2VfdHJlZSk6IExpa2V3aXNlLgoJKiBleHByLmMgKGNvbnZlcnRfbW92ZSwgZW1pdF9ncm91cF9sb2FkLCBlbWl0X2dyb3VwX3N0b3JlLAoJZXhwYW5kX2Fzc2lnbm1lbnQsIHN0b3JlX2NvbnN0cnVjdG9yLCBzdG9yZV9maWVsZCwKCWV4cGFuZF9leHByX3JlYWxfMSwgcmVkdWNlX3RvX2JpdF9maWVsZF9wcmVjaXNpb24pOiBMaWtld2lzZS4KCWZvbGQtY29uc3QuYyAoZm9yY2VfZml0X3R5cGUsIGludF9jb25zdF9iaW5vcCwgZm9sZF9jb252ZXJ0X2NvbnN0LAoJaW52ZXJ0X3RydXRodmFsdWUsIG9wdGltaXplX2JpdF9maWVsZF9jb21wYXJlLAoJZGVjb2RlX2ZpZWxkX3JlZmVyZW5jZSwgYWxsX29uZXNfbWFza19wLCBjb25zdGFudF9ib29sZWFuX25vZGUsCglmb2xkX2Rpdl9jb21wYXJlLCBmb2xkLCBmb2xkX3JlYWRfZnJvbV9jb25zdGFudF9zdHJpbmcsCglmb2xkX25lZ2F0ZV9jb25zdCwgZm9sZF9hYnNfY29uc3QsIGZvbGRfbm90X2NvbnN0LCByb3VuZF91cCwKCXJvdW5kX2Rvd24pOiBMaWtld2lzZS4KCSogZnVuY3Rpb24uYyAoYXNzaWduX3Bhcm1fc2V0dXBfYmxvY2spOiBMaWtld2lzZS4KCSogc3RtdC5jIChzaGlmdF9yZXR1cm5fdmFsdWUsIGV4cGFuZF9jYXNlLCBlc3RpbWF0ZV9jYXNlX2Nvc3RzKToKCUxpa2V3aXNlLgoJKiBzdG9yLWxheW91dC5jIChsYXlvdXRfdHlwZSwgaW5pdGlhbGl6ZV9zaXpldHlwZXMsCglzZXRfbWluX2FuZF9tYXhfdmFsdWVzX2Zvcl9pbnRlZ3JhbF90eXBlKTogTGlrZXdpc2UuCgkqIHRyZWUtY2hyZWMuYyAoY2hyZWNfZm9sZF9tdWx0aXBseV9wb2x5X3BvbHksCglyZXNldF9ldm9sdXRpb25faW5fbG9vcCk6IExpa2V3aXNlLgoJKiB0cmVlLWNocmVjLmggKGJ1aWxkX3BvbHlub21pYWxfY2hyZWMpOiBMaWtld2lzZS4KCSogdHJlZS1jb21wbGV4LmMgKGJ1aWxkX3JlcGxpY2F0ZWRfY29uc3QpOiBMaWtld2lzZS4KCSogdHJlZS1laC5jIChob25vcl9wcm90ZWN0X2NsZWFudXBfYWN0aW9ucywKCWxvd2VyX3RyeV9maW5hbGx5X29uZWRlc3QsIGxvd2VyX3RyeV9maW5hbGx5X2NvcHksCglsb3dlcl90cnlfZmluYWxseV9zd2l0Y2gpOiBMaWtld2lzZS4KCSogdHJlZS1tdWRmbGFwLmMgKG1mX2J1aWxkX3N0cmluZywgbXhfcmVnaXN0ZXJfZGVjbHMsCgltdWRmbGFwX3JlZ2lzdGVyX2NhbGwsIG11ZGZsYXBfZW5xdWV1ZV9jb25zdGFudCk6IExpa2V3aXNlLgoJKiB0cmVlLW5lc3RlZC5jIChnZXRfdHJhbXBvbGluZV90eXBlLCBnZXRfbmxfZ290b19maWVsZCk6IExpa2V3aXNlLgoJKiB0cmVlLXByZXR0eS1wcmludC5jIChkdW1wX2dlbmVyaWNfbm9kZSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1jY3AuYyAod2lkZW5fYml0ZmllbGQsIG1heWJlX2ZvbGRfb2Zmc2V0X3RvX2FycmF5X3JlZik6CglMaWtld2lzZS4KCSogdHJlZS1zc2EtZG9tLmMgKHNpbXBsaWZ5X3Joc19hbmRfbG9va3VwX2F2YWlsX2V4cHIpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtbG9vcC1uaXRlci5jIChudW1iZXJfb2ZfaXRlcmF0aW9uc19jb25kLAoJbG9vcF9uaXRlcl9ieV9ldmFsLCB1cHBlcl9ib3VuZF9pbl90eXBlLCBsb3dlcl9ib3VuZF9pbl90eXBlKToKCUxpa2V3aXNlLgoJKiB0cmVlLXNzYS1sb29wLWl2Y2Fub24uYyAoY3JlYXRlX2Nhbm9uaWNhbF9pdiwKCWNhbm9uaWNhbGl6ZV9sb29wX2luZHVjdGlvbl92YXJpYWJsZXMpOiBMaWtld2lzZS4KCSogdHJlZS12ZWN0b3JpemVyLmMgKHZlY3RfY3JlYXRlX2luZGV4X2Zvcl9hcnJheV9yZWYsCgl2ZWN0X3RyYW5zZm9ybV9sb29wX2JvdW5kLCB2ZWN0X2NvbXB1dGVfZGF0YV9yZWZfYWxpZ25tZW50KToKCUxpa2V3aXNlLgoKCSogY29uZmlnL2FscGhhL2FscGhhLmMgKGFscGhhX2luaXRpYWxpemVfdHJhbXBvbGluZSwgYWxwaGFfdmFfc3RhcnQsCglhbHBoYV9naW1wbGlmeV92YV9hcmdfMSk6IExpa2V3aXNlLgoJKiBjb25maWcvYXJtL2FybS5jIChhcm1fZ2V0X2Nvb2tpZV9zaXplKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9jNHgvYzR4LmMgKGM0eF9naW1wbGlmeV92YV9hcmdfZXhwcik6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfdmFfc3RhcnQsIGl4ODZfZ2ltcGxpZnlfdmFfYXJnKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoaWE2NF9naW1wbGlmeV92YV9hcmcpOiBMaWtld2lzZS4KCSogY29uZmlnL21pcHMvbWlwcy5jIChtaXBzX2J1aWxkX2J1aWx0aW5fdmFfbGlzdCwgbWlwc192YV9zdGFydCwKCW1pcHNfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBMaWtld2lzZS4KCSogY29uZmlnL3BhL3BhLmMgKGhwcGFfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3ZhX3N0YXJ0LCByczYwMDBfZ2ltcGxpZnlfdmFfYXJnLAoJYWRkX2NvbXBpbGVyX2JyYW5jaF9pc2xhbmQpOiBMaWtld2lzZS4KCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX3ZhX3N0YXJ0KTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zaC9zaC5jIChzaF92YV9zdGFydCk6IExpa2V3aXNlLgoJKiBjb25maWcvc3Rvcm15MTYvc3Rvcm15MTYuYyAoeHN0b3JteTE2X2V4cGFuZF9idWlsdGluX3ZhX3N0YXJ0KToKCUxpa2V3aXNlLgoJKiBjb25maWcveHRlbnNhL3h0ZW5zYS5jICh4dGVuc2FfdmFfc3RhcnQsCgl4dGVuc2FfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBMaWtld2lzZS4KCgkqIG9iamMvb2JqYy1hY3QuYyAoYnVpbGRfb2JqY19zdHJpbmdfb2JqZWN0LAoJYnVpbGRfb2JqY19zeW10YWJfdGVtcGxhdGUsIGluaXRfZGVmX2xpc3QsIGluaXRfb2JqY19zeW10YWIsCglpbml0X21vZHVsZV9kZXNjcmlwdG9yLCBnZW5lcmF0ZV9zdGF0aWNfcmVmZXJlbmNlcywKCWJ1aWxkX3NlbGVjdG9yX3RyYW5zbGF0aW9uX3RhYmxlLCBnZXRfcHJvdG9fZW5jb2RpbmcsCglidWlsZF90eXBlZF9zZWxlY3Rvcl9yZWZlcmVuY2UsIGJ1aWxkX3NlbGVjdG9yX3JlZmVyZW5jZSwKCWJ1aWxkX25leHRfb2JqY19leGNlcHRpb25fc3R1ZmYsCglidWlsZF9tZXRob2RfcHJvdG90eXBlX2xpc3RfdGVtcGxhdGUsIGdlbmVyYXRlX2Rlc2NyaXB0b3JfdGFibGUsCglnZW5lcmF0ZV9wcm90b2NvbHMsIGJ1aWxkX3Byb3RvY29sX2luaXRpYWxpemVyLAoJYnVpbGRfaXZhcl9saXN0X3RlbXBsYXRlLCBidWlsZF9tZXRob2RfbGlzdF90ZW1wbGF0ZSwKCWJ1aWxkX2l2YXJfbGlzdF9pbml0aWFsaXplciwgZ2VuZXJhdGVfaXZhcnNfbGlzdCwKCWdlbmVyYXRlX2Rpc3BhdGNoX3RhYmxlLCBnZW5lcmF0ZV9wcm90b2NvbF9saXN0LAoJYnVpbGRfY2F0ZWdvcnlfaW5pdGlhbGl6ZXIsIGJ1aWxkX3NoYXJlZF9zdHJ1Y3R1cmVfaW5pdGlhbGl6ZXIsCglnZW5lcmF0ZV9zaGFyZWRfc3RydWN0dXJlcywgaGFuZGxlX2ltcGVudCwKCWdlbmVyYXRlX29iamNfaW1hZ2VfaW5mbyk6IExpa2V3aXNlLgoKMjAwNC0wNC0yNSAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGNmZ2xheW91dC5jIChkdXBsaWNhdGVfaW5zbl9jaGFpbik6IFJlbW92ZSByZWZlcmVuY2VzIHRvCglOT1RFX0lOU05fTE9PUF9WVE9QIGFuZCBOT1RFX0lOU05fTE9PUF9DT05ULgoJKiBjZmdsb29wLmggKHN0cnVjdCBsb29wKTogUmVtb3ZlIGZpZWxkcyB2dG9wLCBjb250IGFuZCBjb250X2RvbWluYXRvci4KCSogY2ZncnRsLmMgKHJ0bF9kZWxldGVfYmxvY2spOiBSZW1vdmUgaGFuZGxpbmcgb2YgTk9URV9JTlNOX0xPT1BfQ09OVC4KCSogZmluYWwuYyAoZmluYWxfc2Nhbl9pbnNuKTogUmVtb3ZlIHJlZmVyZW5jZXMgdG8gTk9URV9JTlNOX0xPT1BfVlRPUAoJYW5kIE5PVEVfSU5TTl9MT09QX0NPTlQuCgkqIGluc24tbm90ZXMuZGVmIChOT1RFX0lOU05fTE9PUF9WVE9QLCBOT1RFX0lOU05fTE9PUF9DT05UKTogUmVtb3ZlLgoJKiBqdW1wLmMgKHNxdWVlemVfbm90ZXMpOiBSZW1vdmUgcmVmZXJlbmNlcyB0byBOT1RFX0lOU05fTE9PUF9WVE9QCglhbmQgTk9URV9JTlNOX0xPT1BfQ09OVC4KCSogbG9vcC5jIChzY2FuX2xvb3BzLCBmaW5kX2FuZF92ZXJpZnlfbG9vcHMsIGZvcl9lYWNoX2luc25faW5fbG9vcCwKCWNoZWNrX2RicmFfbG9vcCwgbG9vcF9kdW1wX2F1eCk6IFJlbW92ZSByZWZlcmVuY2VzIHRvIHJlbW92ZWQgbm90ZXMKCWFuZCBmaWVsZHMuCgkqIHJlb3JnLmMgKG1vc3RseV90cnVlX2p1bXApOiBEbyBub3QgcmVseSBvbiBOT1RFX0lOU05fTE9PUF9WVE9Qcy4KCSogdW5yb2xsLmMgKHVucm9sbF9sb29wLCBjb3B5X2xvb3BfYm9keSwgbG9vcF9pdGVyYXRpb25zKTogUmVtb3ZlCglyZWZlcmVuY2VzIHRvIHJlbW92ZWQgbm90ZXMgYW5kIGZpZWxkcy4KCShzdWJ0cmFjdF9yZWdfdGVybSwgdWp1bXBfdG9fbG9vcF9jb250KTogUmVtb3ZlLgoKMjAwNC0wOC0yNSAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGRvYy9pbnN0YWxsLnRleGk6IERvY3VtZW50IHRoYXQgbGliY3BwIGRvZXMgbm90IHJlcXVpcmUKCUF1dG9tYWtlIGFueSBsb25nZXIuICBEb2N1bWVudCB0aGF0IEF1dG9tYWtlIDEuOS4xIHNob3VsZAoJd29yayBldmVyeXdoZXJlLgoKMjAwNC0wOC0yNSAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGZsYWdzLmggKGVudW0gZGVidWdfaW5mb190eXBlKTogUmVtb3ZlIERXQVJGX0RFQlVHLgoJKiBkZWZhdWx0cy5oIChQUkVGRVJSRURfREVCVUdHSU5HX1RZUEUpOiBSZW1vdmUgY2hlY2sgZm9yCglEV0FSRl9ERUJVR0dJTkdfSU5GTyBmcm9tIGNob2ljZS1vZi1kZWZpbml0aW9uIGNoYWluOwoJcmVzdHJ1Y3R1cmUgdXNpbmcgQzg5IGZlYXR1cmVzICgjZWxpZiwgI2Vycm9yKS4KCSogYy1sZXguYywgZmluYWwuYywgb3B0cy5jLCBjb25maWcvY3Jpcy9jcmlzLmMsIGNvbmZpZy9mcnYvZnJ2LmMKCSogY29uZmlnL3NoL3NoLmg6IFJlbW92ZSByZWZlcmVuY2VzIHRvIERXQVJGX0RFQlVHLgoJKiBkb2MvaW52b2tlLnRleGk6IFJlbW92ZSByZWZlcmVuY2VzIHRvIERXQVJGIHZlcnNpb24gMTsKCWNsYXJpZnkgd2h5IC1nZHdhcmYtMjxuPiBkb2Vzbid0IHdvcmsuCgoyMDA0LTA4LTI1ICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogYmFzaWMtYmxvY2suaCAoQkJfU0VUX1BBUlRJVElPTik6IENsZWFyIG9sZCB2YWx1ZSBmaXJzdC4KCSogY2ZnLmMgKGNsZWFyX2JiX2ZsYWdzKTogRG9uJ3QgY2xlYXIgcGFydGl0aW9uIHNldHRpbmcuCgkqIGlmY3Z0LmMgKGZpbmRfaWZfY2FzZV8xKTogUmVtb3ZlID8/PyBjb21tZW50LgoKMjAwNC0wOC0yNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiB0YXJnZXQvMTcwNTIKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuaCAobWFjaGluZV9mdW5jdGlvbik6IFJlbW92ZSBzeXN2X3ZhcmFyZ3NfcC4KCSogY29uZmlnL3JzNjAwMC9zeXN2NC5oIChSUzYwMDBfVkFSQVJHU19BUkVBKTogVXNlCgljdXJyZW50X2Z1bmN0aW9uX3N0ZGFyZyBpbiBwbGFjZSBvZiBzeXN2X3ZhcmFyZ3NfcC4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAoc2V0dXBfaW5jb21pbmdfdmFyYXJncyk6IERvbid0IHNldAoJc3lzdl92YXJhcmdzX3AuCgoyMDA0LTA4LTI0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xNjI5OAoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGxlZ2l0aW1hdGVfY29uc3RhbnRfcCk6IFJld29yayB0byBub3QgYWNjZXB0CglyYW5kb20gY29kZXMgd2l0aGluIENPTlNULgoKMjAwNC0wOC0yNCAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogTWFrZWZpbGUuaW4gKFNUQUdFRkVFREJBQ0tfRkxBR1NfVE9fUEFTUyk6IFJlbW92ZQoJLWZyZW9yZGVyLWJsb2Nrcy1hbmQtcGFydGl0aW9uLgoKMjAwNC0wOC0yNCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCglQUiBtaWRkbGUtZW5kLzE3MDQ0CgkqIHRyZWUtc3NhLXRocmVhZHVwZGF0ZS5jIChyZWRpcmVjdGlvbl9kYXRhKTogTWFrZSBzdGF0aWMuCgkodGhyZWFkX2Jsb2NrKTogVXNlIGdnY19hbGxvY19jbGVhcmVkIHRvIGFsbG9jYXRlIHN0cnVjdAoJcmVkaXJlY3Rpb25fZGF0YS4gIERvbid0IGZyZWUgZWxlbWVudHMgaW4gcmVkaXJlY3Rpb25fZGF0YS4KCjIwMDQtMDgtMjQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL3ByZWRpY2F0ZXMubWQgKHNtYWxsX2RhdGFfcGF0dGVybik6IE1hdGNoIHByZWZldGNoZXMuCgoyMDA0LTA4LTI0ICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTcwMTYKCSogdHJlZS1zc2EtbG9vcC1uaXRlci5jIChudW1iZXJfb2ZfaXRlcmF0aW9uc19jb25kLAoJbnVtYmVyX29mX2l0ZXJhdGlvbnNfZXhpdCk6IFVzZSBQT0lOVEVSX1RZUEVfUCBpbnN0ZWFkCglvZiB0ZXN0aW5nIGZvciBQT0lOVEVSX1RZUEUuCgoyMDA0LTA4LTI0ICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJKiB0cmVlLXNzYS1sb29wLWl2Y2Fub24uYzogTmV3IGZpbGUuCgkqIHRyZWUtc3NhLWxvb3AtbWFuaXAuYyAoY3JlYXRlX2l2KTogTmV3IGZ1bmN0aW9uLgoJKiBNYWtlZmlsZS5pbiAodHJlZS1zc2EtbG9vcC1pdmNhbm9uLm8pOiBBZGQuCgkodHJlZS1zc2EtbG9vcC5vLCB0cmVlLXNzYS1sb29wLW1hbmlwLm8pOiBBZGQgU0NFVl9IIGRlcGVuZGVuY3kuCgkqIGNmZ2xvb3AuYyAobWFya19zaW5nbGVfZXhpdF9sb29wcyk6IE5ldyBmdW5jdGlvbi4KCSh2ZXJpZnlfbG9vcF9zdHJ1Y3R1cmUpOiBWZXJpZnkgc2luZ2xlLWV4aXQgbG9vcHMuCgkqIGNmZ2xvb3AuaCAoc3RydWN0IGxvb3ApOiBBZGQgc2luZ2xlX2V4aXQgZmllbGQuCgkoTE9PUFNfSEFWRV9NQVJLRURfU0lOR0xFX0VYSVRTKTogTmV3IGNvbnN0YW50LgoJKG1hcmtfc2luZ2xlX2V4aXRfbG9vcHMpOiBEZWNsYXJlLgoJKHRyZWVfbnVtX2xvb3BfaW5zbnMpOiBEZWNsYXJlLgoJKiBjZmdsb29wbWFuaXAuYyAodXBkYXRlX3NpbmdsZV9leGl0c19hZnRlcl9kdXBsaWNhdGlvbik6IE5ldyBmdW5jdGlvbi4KCShkdXBsaWNhdGVfbG9vcF90b19oZWFkZXJfZWRnZSk6IFVzZSBpdC4KCSogY29tbW9uLm9wdCAoZml2Y2Fub24pOiBOZXcgZmxhZy4KCSogdGltZXZhci5kZWYgKFRWX1RSRUVfTE9PUF9JVkNBTk9OLCBUVl9DT01QTEVURV9VTlJPTEwpOiBOZXcgdGltZXZhcnMuCgkqIHRyZWUtY2ZnLmMgKHRyZWVfZmluZF9lZGdlX2luc2VydF9sb2MpOiBSZXR1cm4gbmV3bHkgY3JlYXRlZCBibG9jay4KCShic2lfY29tbWl0X2VkZ2VfaW5zZXJ0c18xKTogUGFzcyBudWxsIHRvIHRyZWVfZmluZF9lZGdlX2luc2VydF9sb2MuCgkoYnNpX2luc2VydF9vbl9lZGdlX2ltbWVkaWF0ZSk6IE5ldyBmdW5jdGlvbi4KCSogdHJlZS1mbG93LmggKGJzaV9pbnNlcnRfb25fZWRnZV9pbW1lZGlhdGUsCgljYW5vbmljYWxpemVfaW5kdWN0aW9uX3ZhcmlhYmxlcywgdHJlZV91bnJvbGxfbG9vcHNfY29tcGxldGVseSwKCWNyZWF0ZV9pdik6IERlY2xhcmUuCgkqIHRyZWUtb3B0aW1pemUuYyAoaW5pdF90cmVlX29wdGltaXphdGlvbl9wYXNzZXMpOiBBZGQKCXBhc3NfaXZfY2Fub24gYW5kIHBhc3NfY29tcGxldGVfdW5yb2xsLgoJKiB0cmVlLXBhc3MuaCAocGFzc19pdl9jYW5vbiwgcGFzc19jb21wbGV0ZV91bnJvbGwpOiBEZWNsYXJlLgoJKiB0cmVlLXNjYWxhci1ldm9sdXRpb24uYyAoZ2V0X2xvb3BfZXhpdF9jb25kaXRpb24sCglnZXRfZXhpdF9jb25kaXRpb25zX3JlYywgbnVtYmVyX29mX2l0ZXJhdGlvbnNfaW5fbG9vcCwKCXNjZXZfaW5pdGlhbGl6ZSk6IFVzZSBzaW5nbGVfZXhpdCBpbmZvcm1hdGlvbi4KCSogdHJlZS1zc2EtbG9vcC1uaXRlci5jIChudW1iZXJfb2ZfaXRlcmF0aW9uc19jb25kKTogUmVjb3JkCgltaXNzaW5nIGFzc3VtcHRpb25zLgoJKGxvb3Bfbml0ZXJfYnlfZXZhbCk6ICBSZXR1cm4gbnVtYmVyIG9mIGl0ZXJhdGlvbnMgYXMgdW5zaWduZWQKCWludC4KCSogdHJlZS1zc2EtbG9vcC5jICh0cmVlX3NzYV9sb29wX2luaXQpOiBNYXJrIHNpbmdsZSBleGl0IGxvb3BzLgoJKHRyZWVfc3NhX2xvb3BfaXZjYW5vbiwgZ2F0ZV90cmVlX3NzYV9sb29wX2l2Y2Fub24sIHBhc3NfaXZfY2Fub24sCgl0cmVlX2NvbXBsZXRlX3Vucm9sbCwgZ2F0ZV90cmVlX2NvbXBsZXRlX3Vucm9sbCwgcGFzc19jb21wbGV0ZV91bnJvbGwpOgoJTmV3IHBhc3Nlcy4KCSh0cmVlX3NzYV9sb29wX2RvbmUpOiBDYWxsIGZyZWVfbnVtYmVyc19vZl9pdGVyYXRpb25zX2VzdGltYXRlcy4KCSogdHJlZS1zc2FuYW1lcy5jIChtYWtlX3NzYV9uYW1lKTogQWxsb3cgY3JlYXRpbmcgc3NhIG5hbWUgYmVmb3JlCgl0aGUgZGVmaW5pbmcgc3RhdGVtZW50IGlzIHJlYWR5LgoJKiB0cmVlLXZlY3Rvcml6ZXIuYyAodmVjdF9jcmVhdGVfaXZfc2ltcGxlKTogUmVtb3ZlZC4KCSh2ZWN0X2NyZWF0ZV9pbmRleF9mb3JfYXJyYXlfcmVmLCB2ZWN0X3RyYW5zZm9ybV9sb29wX2JvdW5kKToKCVVzZSBjcmVhdGVfaXYuCgkodmVjdF90cmFuc2Zvcm1fbG9vcF9ib3VuZCk6IFVzZSBzaW5nbGVfZXhpdCBpbmZvcm1hdGlvbi4KCSh2ZWN0X2FuYWx5emVfbG9vcF9mb3JtKTogQ2xlYW51cCBib2d1cyB0ZXN0cy4KCSh2ZWN0b3JpemVfbG9vcHMpOiBEbyBub3QgY2FsbCBmbG93X2xvb3Bfc2Nhbi4KCSogdHJlZS5oIChtYXlfbmVnYXRlX3dpdGhvdXRfb3ZlcmZsb3dfcCk6IERlY2xhcmUuCgkqIGZvbGQtY29uc3QuYyAobWF5X25lZ2F0ZV93aXRob3V0X292ZXJmbG93X3ApOiBTcGxpdCBvdXQgZnJvbSAuLi4KCShuZWdhdGVfZXhwcl9wKTogLi4uIHRoaXMgZnVuY3Rpb24uCgkodHJlZV9leHByX25vbnplcm9fcCk6IEhhbmRsZSBvdmVyZmxvd2VkIGNvbnN0YW50cyBjb3JyZWN0bHkuCgkqIGRvYy9pbnZva2UudGV4aSAoLWZpdmNhbm9uKTogRG9jdW1lbnQuCgkqIGRvYy9wYXNzZXMudGV4aTogRG9jdW1lbnQgY2Fub25pY2FsIGluZHVjdGlvbiB2YXJpYWJsZSBjcmVhdGlvbi4KCjIwMDQtMDgtMjQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuaCAoSVNBX0hBU19JTlRfQ09ORE1PVkUpOiBEZWxldGUuCgkqIGNvbmZpZy9taXBzL21pcHMuYyAocHJpbnRfb3BlcmFuZCk6IEZvbGQgJUIvJWIgaGFuZGxpbmcgaW50byAlVC8ldCwKCXVzaW5nIHRoZSBtb2RlIG9mIHRoZSBvcGVyYW5kIHRvIGRlY2lkZSBiZXR3ZWVuIHRoZW0uCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKE1PVkVDQyk6IE5ldyBtb2RlIG1hY3JvLgoJKGNjcmVnKTogTmV3IG1vZGUgYXR0cmlidXRlLgoJKCptb3Z7c2ksZGksc2YsZGZ9X29uX3tjYyxzaSxkaX0pOiBOYW1lIGZvcm1lcmx5IHVubmFtZWQgcGF0dGVybnMuCglSZWRlZmluZSB1c2luZyA6R1BSIGFuZCA6TU9WRUNDLiAgVXNlICVUIGFuZCAldCBmb3IgdGhlIGNvbmRpdGlvbi4KCShtb3Zbc2RdaWNjKTogUmVkZWZpbmUgdXNpbmcgOkdQUi4KCjIwMDQtMDgtMjQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMtcHJvdG9zLmggKG1pcHNfZW1pdF9wcmVmZXRjaCk6IERlbGV0ZS4KCShtaXBzX3ByZWZldGNoX2Nvb2tpZSk6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL21pcHMvbWlwcy5jIChwcmludF9vcGVyYW5kX2FkZHJlc3MpOiBGaXggaGFuZGxpbmcgb2YKCUFERFJFU1NfQ09OU1RfSU5ULgoJKG1pcHNfZW1pdF9wcmVmZXRjaCk6IERlbGV0ZS4KCShtaXBzX3ByZWZldGNoX2Nvb2tpZSk6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL21pcHMvbWlwcy5tZCAocHJlZmV0Y2gpOiBUdXJuIGludG8gYSBkZWZpbmVfaW5zbi4gIFVzZSBhCgltb2RlIG9mIFFJbW9kZSBmb3IgdGhlIGFkZHJlc3Nfb3BlcmFuZC4gIFVzZSBtaXBzX3ByZWZldGNoX2Nvb2tpZQoJdG8gY2FsY3VsYXRlIHRoZSBmaXJzdCAicHJlZiIgb3BlcmFuZC4KCShwcmVmZXRjaF9bc2RdaSwgcHJlZmV0Y2hfW3NkXWlfYWRkcmVzcyk6IERlbGV0ZS4KCShwcmVmZXRjaF9pbmRleGVkX1tzZF1pKTogUmVkZWZpbmUgdXNpbmcgOlAuICBVc2UgbWlwc19wcmVmZXRjaF9jb29raWUuCgoyMDA0LTA4LTI0ICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIGFybS5tZDogSW5jbHVkZSBwcmVkaWNhdGVzLm1kLgoJKiBwcmVkaWNhdGVzLm1kOiBOZXcgZmlsZS4KCSogYXJtLmMgKHNfcmVnaXN0ZXJfb3BlcmFuZCwgYXJtX2hhcmRfcmVnaXN0ZXJfb3BlcmFuZCkKCShhcm1fZ2VuZXJhbF9yZWdpc3Rlcl9vcGVyYW5kLCBmX3JlZ2lzdGVyX29wZXJhbmQsIHJlZ19vcl9pbnRfb3BlcmFuZCkKCShhcm1faW1tZWRpYXRlX29wZXJhbmQsIGFybV9uZWdfaW1tZWRpYXRlX29wZXJhbmQpCgkoYXJtX25vdF9pbW1lZGlhdGVfb3BlcmFuZCwgYXJtX3Joc19vcGVyYW5kLCBhcm1fcmhzbV9vcGVyYW5kKQoJKGFybV9hZGRfb3BlcmFuZCwgYXJtX2FkZGltbV9vcGVyYW5kLCBhcm1fbm90X29wZXJhbmQpCgkob2Zmc2V0dGFibGVfbWVtb3J5X29wZXJhbmQsIGFsaWduYWJsZV9tZW1vcnlfb3BlcmFuZCkKCShhcm1fcmVsb2FkX21lbW9yeV9vcGVyYW5kLCBhcm1fZmxvYXRfcmhzX29wZXJhbmQpCgkoYXJtX2Zsb2F0X2FkZF9vcGVyYW5kLCB2ZnBfY29tcGFyZV9vcGVyYW5kLCBhcm1fZmxvYXRfY29tcGFyZV9vcGVyYW5kKQoJKGluZGV4X29wZXJhbmQsIHNoaWZ0YWJsZV9vcGVyYXRvciwgbG9naWNhbF9iaW5hcnlfb3BlcmF0b3IpCgkoc2hpZnRfb3BlcmF0b3IsIGVxdWFsaXR5X29wZXJhdG9yLCBhcm1fY29tcGFyaXNvbl9vcGVyYXRvcikKCShtaW5tYXhfb3BlcmF0b3IsIGNjX3JlZ2lzdGVyLCBkb21pbmFudF9jY19yZWdpc3RlcikKCShhcm1fZXh0ZW5kcWlzaV9tZW1fb3AsIHBvd2VyX29mX3R3b19vcGVyYW5kLCBub25pbW1lZGlhdGVfZGlfb3BlcmFuZCkKCShkaV9vcGVyYW5kLCBub25pbW1lZGlhdGVfc29mdF9kZl9vcGVyYW5kLCBzb2Z0X2RmX29wZXJhbmQpCgkoY29uc3Rfc2hpZnRfb3BlcmFuZCwgbG9hZF9tdWx0aXBsZV9vcGVyYXRpb24pCgkoc3RvcmVfbXVsdGlwbGVfb3BlcmF0aW9uLCBtdWx0aV9yZWdpc3Rlcl9wdXNoLCB0aHVtYl9jbXBfb3BlcmFuZCkKCSh0aHVtYl9jbXBuZWdfb3BlcmFuZCwgdGh1bWJfY2JyY2hfdGFyZ2V0X29wZXJhbmQpCgkoY2lycnVzX3JlZ2lzdGVyX29wZXJhbmQsIGNpcnJ1c19mcF9yZWdpc3RlcikKCShjaXJydXNfc2hpZnRfY29uc3QpOiBEZWxldGUsIHJlcGxhY2VkIHdpdGggZXF1aXZhbGVudHMgaW4KCXByZWRpY2F0ZXMubWQuCgkoc2hpZnRfb3ApOiBIYW5kbGUgUk9UQVRFLgoJKiBhcm0tcHJvdG9zLmg6IERlbGV0ZSBkZWNsYXJhdGlvbnMgZm9yIGFib3ZlLgoJKiBhcm0uaCAoUFJFRElDQVRFX0NPREVTLCBTUEVDSUFMX01PREVfUFJFRElDQVRFUyk6IERlbGV0ZS4KCSogdC1hcm0gKE1EX0lOQ0xVREVTKTogQWRkIHByZWRpY2F0ZXMubWQuCgkocy1wcmVkcyk6IERlcGVuZHMgb24gTURfSU5DTFVERVMuCgoyMDA0LTA4LTI0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHNfZ2VuX2NvbmRpdGlvbmFsX3RyYXApOiBGaXggbW9kZS4KCSogY29uZmlnL21pcHMvbWlwcy5tZCAoKmNvbmRpdGlvbmFsX3RyYXBbc2RdaSk6IE5hbWUgcHJldmlvdXNseSB1bm5hbWVkCglwYXR0ZXJucy4gIFJlZGVmaW5lIHVzaW5nIDpHUFIuICBHaXZlIHRoZSBtYXRjaF9vcGVyYXRvciBhIG1vZGUuCglVc2UgJyUyJyByYXRoZXIgdGhhbiAnJXoyJyBmb3Igb3BlcmFuZCAyLgoKMjAwNC0wOC0yNCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5tZCAobG9hZF9jYWxsW3NkXWkpOiBSZWRlZmluZSB1c2luZyA6UC4gIEFkZCBtb2RlCglhdHRyaWJ1dGUuCgoyMDA0LTA4LTI0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChpbmRpcmVjdF9qdW1wKTogVXNlIGZvcmNlX3JlZy4gIEFkanVzdCBuYW1lcwoJb2YgaW50ZXJuYWwgcGF0dGVybnMuCgkoaW5kaXJlY3RfanVtcFtzZF1pKTogUmVuYW1lZCBmcm9tIGluZGlyZWN0X2p1bXBfaW50ZXJuYWxbMTJdLgoJUmVkZWZpbmUgdXNpbmcgOlAuCgkodGFibGVqdW1wKTogVXNlIGV4cGFuZF9iaW5vcCB0byBjYWxjdWxhdGUgYWRkcmVzcy4gIEFkanVzdCBuYW1lcwoJb2YgaW50ZXJuYWwgcGF0dGVybnMuCgkodGFibGVqdW1wW3NkXWkpOiBSZW5hbWVkIGZyb20gdGFibGVqdW1wX2ludGVybmFsWzEyXS4KCVJlZGVmaW5lIHVzaW5nIDpQLgoJKHRhYmxlanVtcF9taXBzMTZbMTJdKTogRGVsZXRlLgoKMjAwNC0wOC0yNCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5tZCAoKnNlcV9bc2RdaSwgKnNlcV9bc2RdaV9taXBzMTYsICpzbmVfW3NkXWkpCgkoKnNndF9bc2RdaSwgKnNndF9bc2RdaV9taXBzMTYsICpzZ2VfW3NkXWksICpzbHRfW3NkXWkpCgkoKnNsdF9bc2RdaV9taXBzMTYsICpzbGVfW3NkXWksICpzbGVfW3NkXWlfbWlwczE2LCAqc2d0dV9bc2RdaSkKCSgqc2d0dV9bc2RdaV9taXBzMTYsICpzZ2VfW3NkXWksICpzbHR1X1tzZF1pLCAqc2x0dV9bc2RdaV9taXBzMTYpCgkoKnNsZXVfW3NkXWksICpzbGV1X1tzZF1pX21pcHMxNik6IFJlZGVmaW5lIHVzaW5nIDpHUFIuCgoyMDA0LTA4LTI0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChjbXBzaSwgY21wZGkpOiBSZWRlZmluZSB1c2luZyA6R1BSLgoJKCpicmFuY2hfemVyb1tzZF1pKTogUmVuYW1lZCBmcm9tIGJyYW5jaF96ZXJveyxfZGl9LiAgUmVkZWZpbmUKCXVzaW5nIDpHUFIuCgkoKmJyYW5jaF96ZXJvW3NkXWlfaW52ZXJ0ZWQpOiBMaWtld2lzZSBicmFuY2hfemVyb3ssX2RpfV9pbnZlcnRlZC4KCSgqYnJhbmNoX2VxdWFsaXR5W3NkXWkpOiBMaWtld2lzZSBicmFuY2hfZXF1YWxpdHl7LF9kaX0uCgkoKmJyYW5jaF9lcXVhbGl0eVtzZF1pX2ludmVydGVkKTogTGlrZXdpc2UKCWJyYW5jaF9lcXVhbGl0eXssX2RpfV9pbnZlcnRlZC4KCSgqYnJhbmNoX2VxdWFsaXR5W3NkXWlfbWlwczE2KTogTmFtZSBmb3JtZXJseSB1bm5hbWVkIHBhdHRlcm5zLgoJUmVkZWZpbmUgdXNpbmcgOkdQUi4KCjIwMDQtMDgtMjQgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBydGwuZGVmOiBSZW9yZ2FuaXplLCBwbGFjaW5nIGFsbCBjb2RlcyB1c2VkIG9ubHkgaW4gbWFjaGluZQoJZGVzY3JpcHRpb25zIGF0IHRoZSBlbmQuCgoJKiBydGwuZGVmOiBXcmFwIE1ELW9ubHkgY29kZXMgaW4gI2lmZGVmIEdFTkVSQVRPUl9GSUxFLgoJKiBnZW5ndHlwZS5jOiBEb24ndCBpbmNsdWRlIHJ0bC5oLiAgRGVmaW5lIGVudW0gcnR4X2NvZGUgYW5kCglydHhfbmFtZSwgcnR4X2Zvcm1hdCBhcnJheXMgYnkgZGlyZWN0IHJlZmVyZW5jZSB0byBydGwuZGVmLAoJZmlyc3QgdW5kZWZpbmluZyBHRU5FUkFUT1JfRklMRS4gIERlZmluZSBlbnVtIGluc25fbm90ZSBhbmQKCW5vdGVfaW5zbl9uYW1lIGFycmF5IGJ5IGRpcmVjdCByZWZlcmVuY2UgdG8gaW5zbi1ub3Rlcy5kZWYuCgkoYWRqdXN0X2ZpZWxkX3J0eF9kZWYpOiBSZW1vdmUgbG9jYWwgZGVmaW5pdGlvbiBvZiBydHhfbmFtZS4KCVVzZSBzeW1ib2xpYyBuYW1lcyBmb3IgaW5zbiBub3Rlcy4KCSogTWFrZWZpbGUuaW4gKGdlbmd0eXBlLm8pOiBVcGRhdGUgZGVwZW5kZW5jaWVzLgoKMjAwNC0wOC0yNCAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGJhc2ljLWJsb2NrLmggKHN0cnVjdCBiYXNpY19ibG9ja19kZWYpOiBSZW9yZGVyIGZpZWxkcyB0bwoJZWxpbWluYXRlIGludGVyaW9yIHBhZGRpbmcuICBSZW1vdmUgJ3BhcnRpdGlvbicgZmllbGQuCgkoQkJfRElTQUJMRV9TQ0hFRFVMRSwgQkJfSE9UX1BBUlRJVElPTiwgQkJfQ09MRF9QQVJUSVRJT04pCgkoQkJfVU5QQVJUSVRJT05FRCwgQkJfUEFSVElUSU9OLCBCQl9TRVRfUEFSVElUSU9OKQoJKEJCX0NPUFlfUEFSVElUSU9OKTogTmV3IG1hY3Jvcy4KCSogYmItcmVvcmRlci5jLCBjZmdjbGVhbnVwLmMsIGNmZ2xheW91dC5jLCBjZmdydGwuYywgaWZjdnQuYwoJUmVwbGFjZSBhbGwgcmVmZXJlbmNlcyB0byB0aGUgJ3BhcnRpdGlvbicgZmllbGQgb2YgYSBiYXNpYwoJYmxvY2sgd2l0aCBuZXcgbWFjcm9zLgoKCSogaW5zbi1ub3Rlcy5kZWY6IERlbGV0ZSBOT1RFX0lOU05fRElTQUJMRV9TQ0hFRF9PRl9CTE9DSy4KCSogZmluYWwuYyAoZmluYWxfc2Nhbl9pbnNuKTogRG9uJ3QgaGFuZGxlIGl0LgoJKiBtb2R1bG8tc2NoZWQuYzogU2V0IEJCX0RJU0FCTEVfU0NIRURVTEUgZmxhZyBvbiBnLT5iYgoJaW5zdGVhZCBvZiBlbWl0dGluZyBhIE5PVEVfSU5TTl9ESVNBQkxFX1NDSEVEX09GX0JMT0NLIG5vdGUuCgkqIHNjaGVkLXJnbi5jIChzY2hlZF9pc19kaXNhYmxlZF9mb3JfY3VycmVudF9yZWdpb25fcCk6CglMb29rIGZvciBhIEJCX0RJU0FCTEVfU0NIRURVTEUgZmxhZyBvbiB0aGUgYmxvY2sgaW5zdGVhZCBvZiBhIG5vdGUuCgoyMDA0LTA4LTI0ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogYy1kZWNsLmMgKGNfaW5pdF9kZWNsX3Byb2Nlc3NpbmcpOiBBZGp1c3QKCWJ1aWxkX2NvbW1vbl90cmVlX25vZGVzIGNhbGwuCgkqIGV4cG1lZC5jIChjb25zdF9tdWx0X2FkZF9vdmVyZmxvd19wKTogVXNlCglidWlsZF9kaXN0aW5jdF90eXBlX2NvcHkuCgkqIHN0b3ItbGF5b3V0LmMgKGVhcmx5X3R5cGVfbGlzdCk6IFJlbW92ZS4KCShsYXlvdXRfdHlwZSk6IERvbid0IGFwcGVuZCB0byBlYXJseV90eXBlX2xpc3QuCgkoaW5pdGlhbGl6ZV9zaXpldHlwZXMpOiBBZGQgc2lnbmVkX3AgYXJndW1lbnQuCgkoc2V0X3NpemV0eXBlKTogT3ZlcndyaXRlIHRoZSBzdHViIHR5cGUgbm9kZXMgZGlyZWN0bHkuCgkqIHRyZWUuYyAoY29weV9ub2RlX3N0YXQpOiBDbGVhciBhIHR5cGUncyB2YWx1ZSBjYWNoZSBoZXJlIC4uLgoJKGJ1aWxkX2Rpc3RpbmN0X3R5cGUpOiAuLi4gbm90IGhlcmUuCgkoYnVpbGRfY29tbW9uX3RyZWVfbm9kZXMpOiBBZGQgc2lnbmVkX3NpemV0eXBlIGFyZ3VtZW50LiBBZGp1c3QuCgkqIHRyZWUuaCAoaW5pdGlhbGl6ZV9zaXpldHlwZXMpOiBBZGQgc2lnbmVkX3AgYXJndW1lbnQuCgkoYnVpbGRfY29tbW9uX3RyZWVfbm9kZXMpOiBMaWtld2lzZS4KCgkqIG9iamMvb2JqYy1hY3QuYyAoZ2V0X3N0YXRpY19yZWZlcmVuY2UpOiBVc2UKCWJ1aWxkX3ZhcmlhbnRfdHlwZV9jb3B5LgoJKGdldF9wcm90b2NvbF9yZWZlcmVuY2UpOiBMaWtld2lzZS4KCSogb2JqYy9vYmpjLWFjdC5oIChUUkVFX1NUQVRJQ19URU1QTEFURSk6IFVzZSBUUkVFX1BSSVZBVEUuCgoyMDA0LTA4LTI0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoJICAgIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGFwcGxlLmNvbT4KCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2FycmF5X3JlZl90b19wbHVzKTogRGVsZXRlLgoJKGdpbXBsaWZ5X2FkZHJfZXhwcik6IERvIG5vdCBjYWxsIGdpbXBsaWZ5X2FycmF5X3JlZl90b19wbHVzCglmb3IgQVJSQVlfUkVGLgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAoYWx0aXZlY19leHBhbmRfYnVpbHRpbik6IEdvIHBhc3NlZAoJQVJSQVlfUkVGIGFsc28gdG8gZ2V0IHRvIHRoZSBTVFJJTkdfQ1NULgoKMjAwNC0wOC0yNCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9hcm0vYXJtLmMgKGFybV9vdmVycmlkZV9vcHRpb25zKTogVXBkYXRlIGVycm9yIG1lc3NhZ2UuCgkqIGNvbmZpZy9hcm0vYXJtLmggKFRBUkdFVF9IQVJEX0ZMT0FUKTogUmVuYW1lIHRvCglUQVJHRVRfSEFSRF9GTE9BVF9BQkkuCgkoVEFSR0VUX1NPRlRfRkxPQVRfQUJJKTogUmVuYW1lIHRvIFRBUkdFVF9IQVJEX0ZMT0FULgoJKExJQkNBTExfVkFMVUUsIEZVTkNUSU9OX1ZBTFVFX1JFR05PX1ApOiBVc2UgVEFSR0VUX0hBUkRfRkxPQVRfQUJJLgoKMjAwNC0wOC0yNCAgS2F6dWhpcm8gSW5hb2thICA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tPgoKCVBSIHRhcmdldC8xNzA5MwoJKiBjb25maWcvbTMyci5tZCAobW92c2lfc2RhKTogQWRkIFNJIG1vZGUgc3BlY2lmaWNhdGlvbiB0bwoJVU5TUEVDLgoKMjAwNC0wOC0yNCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9tMzJyL20zMnIuaCAoUFJFRElDQVRFX0NPREVTKTogUmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9uCglvZiBzZXRoX2FkZDNfb3BlcmFuZC4KCjIwMDQtMDgtMjQgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5pbiAoUFJPVE9fT0JKUyk6IEFkZCBlcnJvcnMuby4KCSogcHJvdG9pemUuYyAoZmFuY3lfYWJvcnQpOiBSZW1vdmUuCgkqIG1pcHMtdGZpbGUuYyAoZmFuY3lfYWJvcnQpOiBBZGQgcGFyYW1ldGVycy4KCjIwMDQtMDgtMjQgIEpvbmF0aGFuIFdha2VseSAgPHJlZGlAZ2NjLmdudS5vcmc+CgoJKiBkb2MvdHJvdWJsZS50ZXhpIChDKysgbWlzdW5kZXJzdGFuZGluZ3MpOiBGaXggZXhhbXBsZSBjb2RlLgoKMjAwNC0wOC0yNCAgQW5kcmVhcyBUb2JsZXIgIDxhLnRvYmxlckBzY2h3ZWl6LmNoPgoKCSogTWFrZWZpbGUuaW4gKEhPT0tTX0gpOiBBZGQgZGVwZW5kZW5jeSBvbiBNQUNITU9ERV9ILgoJKGhvc3QtZGVmYXVsdC5vKTogQWRkIGRlcGVuZGVuY3kgb24gSE9PS1NfSC4KCSogY29uZmlnL3gtbGludXg6IExpa2V3aXNlLgoJKiBjb25maWcveC1zb2xhcmlzOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYveC1taW5ndzMyOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC94LWRhcndpbjogTGlrZXdpc2UuCgoyMDA0LTA4LTIzICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJKiByZWctbm90ZXMuZGVmIChSRUdfTk9URSk6IEluIGNvbW1lbnQsIGNoYW5nZSBERUZfSU5TTl9OT1RFIHRvCglERUZfUkVHX05PVEUuCgoyMDA0LTA4LTIzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMvMTQ0OTIKCSogZHdhcmYyb3V0LmMgKGxvY19kZXNjcmlwdG9yX2Zyb21fdHJlZSk6IFJvYnVzdGlmeS4KCjIwMDQtMDgtMjMgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogY2ZnLmMgKGNoZWNrX2JiX3Byb2ZpbGUpOiBGaXggdHlwb3MuCgkqIGZ1bmN0aW9uLmMgKGFzc2lnbl9wYXJtX2lzX3N0YWNrX3Bhcm0pOiBMaWtld2lzZS4KCSogdHJlZS1uZXN0ZWQuYzogTGlrZXdpc2UuCgoyMDA0LTA4LTIzICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBkZWJpYW4ub3JnPgoKCSogZ2djLXpvbmUuYyAoc3RydWMgYWxsb2NfY2h1bmspOiBSZWFycmFuZ2UgZmxhZyBiaXRzIGFuZCBTSVpFLgoJUmVtb3ZlIFRZUEVDT0RFLgoJKGdnY19hbGxvY196b25lXzEpOiBNYXJrIFRZUEUgYXMgdW51c2VkLiAgRG9uJ3Qgc2F2ZSBpdCBpbiB0aGUgY2h1bmsuCgoyMDA0LTA4LTIzICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGRlZmF1bHRzLmggKFZFQ1RPUl9NT0RFX1NVUFBPUlRFRF9QKTogUmVtb3ZlIG1hY3JvLgoJKiBzeXN0ZW0uaCAoVkVDVE9SX01PREVfU1VQUE9SVEVEX1ApOiBQb2lzb24uCgkqIHRhcmdldC1kZWYuaCAoVEFSR0VUX1ZFQ1RPUl9NT0RFX1NVUFBPUlRFRF9QKTogRGVmaW5lLgoJKiB0YXJnZXQuaDogRGl0dG8uCgkqIGhvb2tzLmg6IEluY2x1ZGUgbWFjaG1vZGUuaC4KCShob29rX2Jvb2xfbW9kZV9mYWxzZSk6IERlY2xhcmUuCgkqIGhvb2tzLmMgKGhvb2tfYm9vbF9tb2RlX2ZhbHNlKTogRGVmaW5lLgoJKiBleHByLmMgKHZlY3Rvcl9tb2RlX3ZhbGlkX3ApOiBVc2UgdGFyZ2V0bS52ZWN0b3JfbW9kZV9zdXBwb3J0ZWRfcC4KCSogc3Rvci1sYXlvdXQuYyAobGF5b3V0X3R5cGUpOiBEaXR0by4KCSogY29uZmlnL2FscGhhL2FscGhhLmMgKGFscGhhX3ZlY3Rvcl9tb2RlX3N1cHBvcnRlZF9wKTogTmV3IGZ1bmN0aW9uLgoJRGVmaW5lIHRvIHRhcmdldCBtYWNyby4KCSogY29uZmlnL2FscGhhL2FscGhhLmggKFZFQ1RPUl9NT0RFX1NVUFBPUlRFRF9QKTogRGVsZXRlLgoJKiBjb25maWcvYXJtL2FybS5jOiBEaXR0by4gVXNlLgoJKiBjb25maWcvYXJtL2FybS5oOiBEaXR0by4KCSogY29uZmlnL2FybS9hcm0tcHJvdG9zLmg6IERpdHRvLgoJKiBjb25maWcvaTM4Ni9pMzg2LmM6IERpdHRvLgoJKiBjb25maWcvaTM4Ni9pMzg2Lmg6IERpdHRvLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jOiBEaXR0by4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuaDogRGl0dG8uCgkqIGNvbmZpZy9zaC9zaC5jOiBEaXR0by4KCSogY29uZmlnL3NoL3NoLmg6IERpdHRvLgoJKiBjb25maWcvc2gvc2gtcHJvdG9zLmg6IERpdHRvLgoJKiBjb25maWcvc2gvc2gubWQ6IFVzZS4KCSogZG9jL3RtLnRleGk6IE1vdmUgZG9jdW1lbnRhdGlvbiBmb3IgVkVDVE9SX01PREVfU1VQUE9SVEVEX1AKCXRvIFRBUkdFVF9WRUNUT1JfTU9ERV9TVVBQT1JURURfUC4KCjIwMDQtMDgtMjMgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5pbiAoQlVJTERfRVJST1JTKTogU2V0IHRvIGJ1aWxkLWVycm9ycy4KCShlcnJvcnMubyk6IE5ldyB0YXJnZXQgZm9yIGhvc3QuCgkoYnVpbGQtZXJyb3JzLm8pOiBOZXcgdGFyZ2V0IGZvciBidWlsZC4KCShnZW5vYmpzKTogUmVwbGFjZSBlcnJvcnMubyB3aXRoIGJ1aWxkLWVycm9ycy4KCShnZW5nZW5ydGwkKGJ1aWxkZXhlZXh0KSk6IEFkZCAkKEJVSUxEX0VSUk9SUykuCgkoR0NPVl9PQkpTLCBHQ09WX0RVTVBfT0JKUyk6IEFkZCBlcnJvcnMuby4KCShmaXgtaGVhZGVycyQoYnVpbGRfZXhlZXh0KSk6IEFkZCAkKEJVSUxEX0VSUk9SUykuCgkoZml4LWhlYWRlci5vKTogQWRkIGVycm9ycy5oCgkqIGNvbGxlY3QyLmMgKGZhbmN5X2Fib3J0KTogQWRkIHBhcmFtZXRlcnMuCgkqIGNvbGxlY3QyLmggKGZhbmN5X2Fib3J0KTogRG9uJ3QgZGVjbGFyZS4KCSogZXJyb3JzLmggKGZhbmN5X2Fib3J0KTogRG9uJ3QgZGVjbGFyZS4KCSogZXJyb3JzLmM6IEluY2x1ZGUgZWl0aGVyIGJjb25maWcuaCBvciBjb25maWcuaC4KCShmYW5jeV9hYm9ydCk6IFRyaW0gZmlsZW5hbWUuCgkqIGZpeC1oZWFkZXIuYyAodl9mYXRhbCwgZmF0YWwpOiBSZW1vdmUuCgkocHJvZ25hbWUpOiBSZW1vdmUgZGVmaW5pdGlvbi4KCShtYWluKTogU2V0IHByb2duYW1lIGhlcmUuCgkqIGdjYy5jIChmYW5jeV9hYm9ydCk6IEFkZCBwYXJhbWV0ZXJzLgoJKiBnY2MuaCAoZmFuY3lfYWJvcnQpOiBSZW1vdmUgZGVjbGFyYXRpb24uCgkqIGdjb3YuYyAoZmFuY3lfYWJvcnQpOiBSZW1vdmUuCgkqIHJ0bC5oIChmYW5jeV9hYm9ydCk6IERvbid0IGRlY2xhcmUuCgkoYWJvcnQpOiBEb24ndCBkZWZpbmUuCgkqIHRyZWUuaCAoZmFuY3lfYWJvcnQpOiBEb24ndCBkZWNsYXJlLgoJKGFib3J0KTogRG9uJ3QgZGVmaW5lLgoJKiBzeXN0ZW0uaCAoZmFuY3lfYWJvcnQpOiBEZWNsYXJlLgoJKGFib3J0KTogRGVmaW5lIHRvIGZhbmN5X2Fib3J0LgoJKiBmaXhpbmMvTWFrZWZpbGUuaW4gKEFMTE9CSik6IEFkZCAuLi9idWlsZC1lcnJvcnMubwoKCSogdHJlZS5oIChlbnVtIHNpemVfdHlwZV9raW5kKTogUmVtb3ZlIFVTSVpFVFlQRSwgVUJJVFNJWkVUWVBFLgoJKHVzaXplX3R5cGUsIHViaXRzaXpldHlwZSk6IFJlbW92ZS4KCSogc3Rvci1sYXlvdXQuYyAoc2V0X3NpemV0eXBlKTogRG9uJ3QgaW5pdGlhbGl6ZSB1c2l6ZXR5cGUsCgl1Yml0c2l6ZXR5cGUuCgkqIGZvbGQtY29uc3QuYyAoc2l6ZV9kaWZmb3ApOiBUWVBFIGNhbiBuZXZlciBiZSB1Yml0c2l6ZXR5cGUuCgoJKiB0cmVlLmggKGJ1aWxkX2Rpc3RpbmN0X3R5cGVfY29weSk6IE5ldy4KCShidWlsZF90eXBlX2NvcHkpOiAuLi4gaGVyZS4gIFJlbmFtZSB0byAuLi4KCShidWlsZF92YXJpYW50X3R5cGVfY29weSk6IC4uLiBoZXJlLgoJKiB0cmVlLmMgKGJ1aWxkX3F1YWxpZmllZF90eXBlKTogUmVuYW1lIGJ1aWxkX3R5cGVfY29weSBjYWxsLgoJKGJ1aWxkX2Rpc3RpbmN0X3R5cGVfY29weSk6IE5ldywgYnJva2VuIG91dCBvZiAuLi4KCShidWlsZF90eXBlX2NvcHkpOiAuLi4gaGVyZS4gIFJlbmFtZSB0byAuLi4KCShidWlsZF92YXJpYW50X3R5cGVfY29weSk6IC4uLiBoZXJlLiAgVXNlCglidWlsZF9kaXN0aW5jdF90eXBlX2NvcHkuCgkoYnVpbGRfY29tbW9uX3RyZWVfbm9kZXNfMik6IFJlbmFtZSBidWlsZF90eXBlX2NvcHkgY2FsbC4KCSogYy1jb21tb24uYyAoY19jb21tb25fbm9kZXNfYW5kX2J1aWx0aW5zKTogUmVuYW1lIGJ1aWxkX3R5cGVfY29weQoJY2FsbC4KCShoYW5kbGVfcGFja2VkX2F0dHJpYnV0ZSwgaGFuZGxlX3VudXNlZF9hdHRyaWJ1dGUsCgloYW5kbGVfdHJhbnNwYXJhbmV0X3VuaW9uX2F0dHJpYnV0ZSwgaGFuZGxlX2FsaWduZWRfYXR0cmlidXRlLAoJaGFuZGxlX2RlcHJlY2F0ZWRfYXR0cmlidXRlKTogTGlrZXdpc2UuCgkqIGMtZGVjbC5jIChjbG9uZV91bmRlcmx5aW5nX3R5cGUsIHN0b3JlX3Bhcm1fZGVjbHNfb2xkc3R5bGUpOgoJTGlrZXdpc2UuCgkqIGNvbmZpZy9hcm0vYXJtLmMgKGFybV9oYW5kbGVfaXNyX2F0dHJpYnl0ZSk6IExpa2V3aXNlLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfaW5pdF9idWlsdGlucyk6IFVzZQoJYnVpbGRfZGlzdGluY3RfdHlwZV9jb3B5LgoKMjAwNC0wOC0yMyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5tZCAobWZoaWxvX1tzZF1pKTogUmVkZWZpbmUgdXNpbmcgOkdQUi4gIEFkZCBtb2RlCglhdHRyaWJ1dGUuCgoyMDA0LTA4LTIzICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChsZW5ndGgpOiBEb24ndCB1c2UgbWlwc19mZXRjaF9pbnNucyBmb3IgaW5kZXhlZAoJbG9hZHMgYW5kIHN0b3Jlcy4KCSgqbHd4YzFfPG1vZGU+LCAqbGR4YzFfPG1vZGU+LCAqc3d4YzFfPG1vZGU+LCAqc2R4YzFfPG1vZGU+KTogTmFtZQoJZm9ybWVybHkgdW5uYW1lZCBwYXR0ZXJucy4gIFJlZGVmaW5lIHVzaW5nIDpQIGZvciB0aGUgYWRkcmVzcy4gIFJlbW92ZQoJZXhwbGljaXQgbGVuZ3RoIGF0dHJpYnV0ZXMuCgoyMDA0LTA4LTIzICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJKiB0cmVlLXNzYS1sb29wLWltLmMgKGZlbV9zaW5nbGVfcmVhY2hhYmxlX2FkZHJlc3MsIGZvcl9lYWNoX21lbXJlZik6CglOZXcgZnVuY3Rpb25zLgoJKHNpbmdsZV9yZWFjaGFibGVfYWRkcmVzcyk6IFVzZSB0aGVtLgoJKHNjaGVkdWxlX3NtKTogQWRkIGR1bXAuCgkoaXNfY2FsbF9jbG9iYmVyZWRfcmVmKTogTmV3IGZ1bmN0aW9uLgoJKGRldGVybWluZV9sc21fcmVnKTogQ2hlY2sgd2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIGNhbGwgY2xvYmJlcmVkLgoJT25seSB3b3JrIGZvciBnaW1wbGVfcmVnX3R5cGUgdmFsdWVzLgoKMjAwNC0wOC0yMyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5tZCAoKm1vdjxtb2RlPl9yYSk6IE5hbWUgcHJldmlvdXNseSB1bm5hbWVkIE1JUFMxNgoJJDMxIHN0b3JlIGluc25zLiAgUmVkZWZpbmUgdXNpbmcgOkdQUi4KCjIwMDQtMDgtMjMgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKFApOiBOZXcgbW9kZSBtYWNyby4KCSgqeGdvdF9oaVtzZF1pLCAqeGdvdF9sb1tzZF1pLCAqZ290X2Rpc3Bbc2RdaSwgKmdvdF9wYWdlW3NkXWkpCgkoKmxvYWRfZ290W3NkXWksICpsb3dbc2RdaSwgKmxvd1tzZF1pX21pcHMxNik6IFJlZGVmaW5lIHVzaW5nIDpQLgoJQWRkIG1vZGUgYXR0cmlidXRlcy4KCjIwMDQtMDgtMjMgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKFVOU1BFQ19bTFNdW1dEXVtMUl0pOiBEZWxldGUgaW4gZmF2b3Igb2YuLi4KCShVTlNQRUNfe0xPQUQsU1RPUkV9X3tMRUZULFJJR0hUfSk6IC4uLnRoZXNlIG5ldyBjb25zdGFudHMuICBTaHVmZmxlCglsYXRlciBjb25zdGFudHMgdG8gY292ZXIgdGhlIGdhcC4KCShsb2FkLCBzdG9yZSk6IE5ldyBtb2RlIGF0dHJpYnV0ZXMuCgkobW92X2xbd2RdbCwgbW92X2xbd2RdciwgbW92X3Nbd2RdbCwgbW92X3Nbd2Rdcik6IFJlZGVmaW5lIHVzaW5nIDpHUFIuCglVc2UgbmV3IHVuc3BlYyBjb25zdGFudHMuCgoyMDA0LTA4LTIzICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChvbmVfY21wbFtzZF1pMik6IFJlZGVmaW5lIHVzaW5nIDpHUFIuCgkoYW5kW3NkXTMsIGlvcltzZF1pMywgeG9yW3NkXWkzKTogTGlrZXdpc2UuICBDaGFuZ2UgMzItYml0IHBhdHRlcm5zCgl0byB1c2UgcmVnaXN0ZXJfb3BlcmFuZCByYXRoZXIgdGhhbiB1bnNfYXJpdGhfb3BlcmFuZCBhcyB0aGUgcHJlZGljYXRlCglmb3Igb3BlcmFuZCAxLiAgUmVtb3ZlIHJlZHVuZGFudCBNSVBTMTYgZm9yY2VfcmVnKCkgZm9yIG9wZXJhbmQgMS4KCSgqYW5kW3NkXWkzLCAqaW9yW3NkXWkzLCAqeG9yW3NkXWkzKTogTmFtZSBmb3JtZXJseSB1bm5hbWVkIHBhdHRlcm5zLgoJUmVkZWZpbmUgdXNpbmcgOkdQUi4gIE1ha2Ugc2FtZSBwcmVkaWNhdGUgY2hhbmdlIGhlcmUuICBFeHRlbmQgdGhlCgljb21tdXRhdGl2aXR5IG9mIG9wZXJhbmRzIDEgYW5kIDIgZnJvbSB0aGUgU0ltb2RlIHZlcnNpb24gdG8gdGhlCglESW1vZGUgb25lLgoJKCphbmRbc2RdaTNfbWlwczE2LCAqaW9yW3NkXWkzX21pcHMxNiwgKnhvcltzZF1pM19taXBzMTYpOiBMaWtld2lzZSwKCWJ1dCB3aXRoIG5vIHByZWRpY2F0ZSBjaGFuZ2VzLgoJKCpub3Jbc2RdaTMpOiBSZWRlZmluZSB1c2luZyA6R1BSLgoKMjAwNC0wOC0yMyAgWmRlbmVrIER2b3JhayAgPHJha2R2ZXJAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgoKCSogdHJlZS1zc2Etb3BlcmFuZHMuYyAoZ2V0X2NhbGxfZXhwcl9vcGVyYW5kcyk6IEFkZCBWVVNFIG9wZXJhbmRzIGZvcgoJbm9yZXR1cm4gZnVuY3Rpb25zLgoKMjAwNC0wOC0yMyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5oIChJU0FfSEFTX0RDTFpfRENMTyk6IERlbGV0ZS4KCSogY29uZmlnL21pcHMvbWlwcy5tZCAoYWJzW3NkXWkyKTogUmVkZWZpbmUgdXNpbmcgOkdQUi4gIE9ubHkgdXNlCglicmFuY2gtbGlrZWx5IGluc25zIGZvciBhYnNkaTIgaWYgR0VORVJBVEVfQlJBTkNITElLRUxZLiAgVXNlICIlLiIKCXJhdGhlciB0aGFuICIlejIiICh3aXRoIGEgZmFrZSBjb25zdDBfcnR4IGZvciBvcGVyYW5kIDIpLgoJKGZmc1tzZF1pMik6IFJlZGVmaW5lIHVzaW5nIDpHUFIuCgkoY2x6W3NkXWkyKTogTGlrZXdpc2UuICBVc2UgSVNBX0hBU19DTE9fQ0xaIGZvciB0aGUgNjQtYml0IGNhc2UuCgoyMDA0LTA4LTIzICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kICh7LHV9ZGl2bW9kW3NkXWk0KTogUmVkZWZpbmUgdXNpbmcgOkdQUi4KCjIwMDQtMDgtMjMgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKGFueV9leHRlbmQpOiBOZXcgY29kZSBtYWNyby4KCSh1LCBzdSk6IE5ldyBjb2RlIGF0dHJpYnV0ZXMuCgkoeyx1fW11bHNpZGkzLCB7LHV9bXVsc2lkaTNfMzJiaXRfaW50ZXJuYWwsIHssdX1tdWxzaWRpM18zMmJpdF9yNDAwMCkKCSh7dSxzfW11bHNpM19oaWdocGFydCwge3Usc31tdWxzaTNfaGlnaHBhcnRfaW50ZXJuYWwpCgkoe3Usc31tdWxzaTNfaGlnaHBhcnRfbXVsaGlfaW50ZXJuYWwsIHtzLHV9bXVsZGkzX2hpZ2hwYXJ0KQoJKCp7cyx1fW11bF9hY2NfZGkpOiBSZWRlZmluZSB1c2luZyBhbnlfZXh0ZW5kLgoJKCp7LHV9bXVsc19kaSwgKntzLHV9bXNhY19kaSk6IExpa2V3aXNlLiAgQ2hhbmdlIG5hbWVzIG9mIHBhdHRlcm5zCgl0byByZWZsZWN0IHJlYWwgaW5zbiBuYW1lcy4KCSgqbXVsc2lkaTNfNjRiaXQsICptdWxzaWRpM182NGJpdF9wYXJ0cyk6IFJlcGxhY2UgdXNlIG9mIG1hdGNoX29wZXJhdG9yCgl3aXRoIGFuIGFueV9leHRlbmQgdGVtcGxhdGUuCgkoe3Usc31tdWxzaTNfaGlnaHBhcnRfbmVnX211bGhpX2ludGVybmFsKTogUmVkZWZpbmUgdXNpbmcgYW55X2V4dGVuZC4KCUFkZCAnKicgdG8gbmFtZS4KCjIwMDQtMDgtMjMgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuaCAoR0VORVJBVEVfTVVMVDNfU0kpOiBDaGVjayBUQVJHRVRfTUFELgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChtdWxbc2RdaTMsIG11bFtzZF1pM19pbnRlcm5hbCkKCShtdWxbc2RdaTNfcjQwMDApOiBSZWRlZmluZSB1c2luZyA6R1BSLgoJKG11bHNpM19tdWx0Myk6IERvbid0IGNoZWNrIFRBUkdFVF9NQUQgc2VwYXJhdGVseS4KCShtdWxkaTNfbXVsdDMpOiBNb3ZlZCBhZnRlciBtdWxzaV9tdWx0My4KCjIwMDQtMDgtMjMgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5nY2MgKG1pcHMtKi0qKTogUmVtb3ZlIGRlZmluaXRpb25zIG9mIE1BU0tfR0FTIGFuZAoJT0JKRUNUX0ZPUk1BVF9FTEYuICBTZXQgTUFTS19TUExJVF9BRERSIGJ5IGRlZmF1bHQgaWYgdXNpbmcgR05VIGxkLgoJKiBjb25maWcvbWlwcy9taXBzLmggKE1BU0tfR0FTKTogRGVsZXRlLiAgU2h1ZmZsZSBsYXRlciBtYXNrcyBkb3duLgoJKFRBUkdFVF9HQVMsIFRBUkdFVF9NSVBTX0FTKTogRGVsZXRlLgoJKFRBUkdFVF9HUFdPUkQpOiBEZWZpbmUgdG8gdHJ1ZSBmb3IgbjMyIG9uIElSSVguCgkoVEFSR0VUX1NXSVRDSEVTKTogUmVtb3ZlIC1tbWlwcy1hcy4gIFR1cm4gLW1nYXMgaW50byBhIG5vLW9wLgoJKE1JUFNfQVNfQVNNX1NQRUMsIFNVQlRBUkdFVF9NSVBTX0FTX0FTTV9TUEVDKTogRGVsZXRlLgoJKEdBU19BU01fU1BFQyk6IERlbGV0ZSwgZm9sZGluZyBpbnRvIEFTTV9TUEVDLgoJKEFTTV9BQklfREVGQVVMVF9TUEVDLCBUQVJHRVRfQVNNX1NQRUMpOiBEZWxldGUuCgkoTURFQlVHX0FTTV9TUEVDKTogRGVsZXRlLCBmb2xkaW5nIGludG8uLi4KCShTVUJUQVJHRVRfQVNNX0RFQlVHR0lOR19TUEVDKTogLi4uaGVyZS4KCShBU01fU1BFQyk6IElubGluZSBvbGQgR0FTX0FTTV9TUEVDLiAgVXNlIEdOVSBuYW1lcyBmb3IgQUJJIHN3aXRjaGVzLgoJKEVYVFJBX1NQRUNTKTogUmVtb3ZlIG1pcHNfYXNfYXNtX3NwZWMsIGdhc19hc21fc3BlYywgdGFyZ2V0X2FzbV9zcGVjLAoJc3VidGFyZ2V0X21pcHNfYXNfYXNtX3NwZWMsIG1kZWJ1Z19hc21fc3BlYy4gIFVzZSBNVUxUSUxJQl9BQklfREVGQVVMVAoJdG8gZGVmaW5lIGFzbV9hYmlfZGVmYXVsdF9zcGVjLgoJKEFTTV9TVEFCU19PUCwgQVNNX1NUQUJOX09QLCBBU01fU1RBQkRfT1ApOiBEZWxldGUuCgkoVEFSR0VUX0FTTV9TRUxFQ1RfU0VDVElPTik6IERlbGV0ZS4KCSogY29uZmlnL21pcHMvbWlwcy5jIChNSVBTX01BWF9GSVJTVF9TVEFDS19TVEVQKTogRGVmaW5lIHRvIDB4N2ZmMAoJZm9yIG5vbi1taXBzMTYgY29kZSwgcmVtb3ZpbmcgcHJldmlvdXMgd29ya2Fyb3VuZCBmb3IgU0dJIGFzc2VtYmxlcnMuCgkoVEFSR0VUX0FTTV9JTlRFR0VSLCBtaXBzX2Fzc2VtYmxlX2ludGVnZXIpOiBEZWxldGUuCgkoVEFSR0VUX0FTTV9BTElHTkVEX0RJX09QKTogRGVmaW5lIHRoaXMgaW5zdGVhZC4KCShvdmVycmlkZV9vcHRpb25zKTogUmVtb3ZlICFUQVJHRVRfR0FTIGFuZCAhaGF2ZV9uYW1lZF9zZWN0aW9ucyBjb2RlLgoJKHByaW50X29wZXJhbmQpOiBGb2xkIFRBUkdFVF9HQVMgY29uZGl0aW9uYWxzIGludG8gYXNtIHN0cmluZ3MuCgkobWlwc19vdXRwdXRfZmlsZW5hbWUpOiBSZW1vdmUgIVRBUkdFVF9HQVMgY29kZS4gIFJlcGxhY2UgdXNlIG9mCglBU01fU1RBQlNfT1AgYW5kIEFTTV9TVEFCTl9PUC4KCShtaXBzX2ZpbGVfc3RhcnQpOiBSZW1vdmUgVEFSR0VUX01JUFNfQVMvVEFSR0VUX0dBUyBjaGVja3MuCgkobWlwc19vdXRwdXRfYWxpZ25lZF9kZWNsX2NvbW1vbik6IFJlbW92ZSBtZW50aW9uIG9mIFNHSSBvMzIgYXNzZW1ibGVyLgoJKG1pcHNfb3V0cHV0X2Z1bmN0aW9uX3Byb2xvZ3VlKTogUmVtb3ZlICFUQVJHRVRfR0FTIGNvZGUuCgkobWlwc19zZWxlY3RfcnR4X3NlY3Rpb24pOiBSZW1vdmUgIWhhdmVfbmFtZWRfc2VjdGlvbnMgY29kZS4KCShtaXBzX3NlbGVjdF9zZWN0aW9uKTogRGVsZXRlLgoJKiBjb25maWcvbWlwcy9taXBzLm1kICh0cmFwKTogUmVtb3ZlICFUQVJHRVRfR0FTIGNoZWNrLgoJKiBjb25maWcvbWlwcy9saW51eC5oIChUQVJHRVRfREVGQVVMVCk6IFJlbW92ZSB1c2Ugb2YgTUFTS19HQVMuCgkqIGNvbmZpZy9taXBzL3NkYi5oIChQVVRfU0RCX0RFRiwgUFVUX1NEQl9QTEFJTl9ERUYpOiBEZWxldGUuCgkoUFVUX1NEQl9CTE9DS19TVEFSVCwgUFVUX1NEQl9CTE9DS19FTkQpOiBGb2xkIFRBUkdFVF9HQVMgY29uZGl0aW9uYWwuCgkqIGNvbmZpZy9taXBzL3Z4d29ya3MuaCAoQVNNX1NQRUMpOiBBcyBmb3IgbWlwcy5oLgoJKiBjb25maWcvbWlwcy93aW5kaXNzLmggKEFTTV9TUEVDKTogTGlrZXdpc2UuCgoyMDA0LTA4LTIzICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiByZWFkLXJ0bC5jIChtYXBfdmFsdWUsIG1hcHBpbmcsIG1hY3JvX2dyb3VwKTogTmV3IHN0cnVjdHVyZXMuCgkoQkVMTFdFVEhFUl9DT0RFKTogTmV3IG1hY3JvLgoJKG1vZGVzLCBjb2RlcywgYmVsbHdldGhlcl9jb2Rlcyk6IE5ldyB2YXJpYWJsZXMuCgkoZmluZF9tb2RlLCB1c2VzX21vZGVfbWFjcm9fcCwgYXBwbHlfbW9kZV9tYWNybywgZmluZF9jb2RlKQoJKHVzZXNfY29kZV9tYWNyb19wLCBhcHBseV9jb2RlX21hY3JvLCBhcHBseV9tYWNyb190b19zdHJpbmcpCgkoYXBwbHlfbWFjcm9fdG9fcnR4LCB1c2VzX21hY3JvX3AsIGFkZF9jb25kaXRpb25fdG9fc3RyaW5nKQoJKGFkZF9jb25kaXRpb25fdG9fcnR4LCBhcHBseV9tYWNyb190cmF2ZXJzZSwgYWRkX21hcHBpbmcpCgkoYWRkX21hcF92YWx1ZSwgaW5pdGlhbGl6ZV9tYWNyb3MpOiBOZXcgZnVuY3Rpb25zLgoJKGRlZl9oYXNoLCBkZWZfaGFzaF9lcV9wKTogR2VuZXJhbGl6ZSB0byBhbnl0aGluZyB0aGF0IHBvaW50cyB0bywKCW9yIHN0YXJ0cyB3aXRoLCBhIGNoYXIgKiBmaWVsZC4KCShmaW5kX21hY3JvLCByZWFkX21hcHBpbmcsIGNoZWNrX2NvZGVfbWFjcm8pOiBOZXcgZnVuY3Rpb25zLgoJKHJlYWRfcnR4XzEpOiBOZXcsIHNwbGl0IG91dCBmcm9tIHJlYWRfcnR4LiAgSGFuZGxlIHRoZSBuZXcKCWRlZmluZV97bW9kZSxjb2RlfV97bWFjcm8sYXR0cn0gY29uc3RydWN0cy4gIFVzZSBmaW5kX21hY3JvCgl0byBwYXJzZSB0aGUgbmFtZSBvZiBhIGNvZGUgb3IgbW9kZS4gIFVzZSBCRUxMV0VUSEVSX0NPREUgdG8KCWV4dHJhY3QgdGhlIGZvcm1hdCBhbmQgdG8gY2hvb3NlIGEgc3VpdGFibGUgY29kZSBmb3IgcnR4X2FsbG9jLgoJTW9kaWZ5IHJlY3Vyc2l2ZSBpbnZvY2F0aW9ucyB0byB1c2UgcmVhZF9ydHhfMS4KCShyZWFkX3J0eCk6IENhbGwgaW5pdGlhbGl6ZV9tYWNyb3MuICBBcHBseSBjb2RlIGFuZCBtb2RlIG1hY3JvcwoJdG8gdGhlIHJ0eCByZXR1cm5lZCBieSByZWFkX3J0eF8xLiAgQ2FjaGUgZXZlcnl0aGluZyBhZnRlciB0aGUKCWZpcnN0IG1hY3JvIGV4cGFuc2lvbiBmb3Igc3Vic2VxdWVudCByZWFkX3J0eCBjYWxscy4KCSogZG9jL21kLnRleGk6IERvY3VtZW50IG5ldyAubWQgY29uc3RydWN0cy4KCSogY29uZmlnL21pcHMvbWlwcy5tZCAoR1BSKTogTmV3IG1vZGUgbWFjcm8uCgkoZCwgc2k4X2RpNSk6IE5ldyBtb2RlIGF0dHJpYnV0ZXMuCgkoYW55X2NvbmQpOiBOZXcgY29kZSBtYWNyby4KCShhZGRbc2RdaTMpOiBSZWRlZmluZSB1c2luZyA6R1BSLgoJKCphZGRbc2RdaTMpOiBMaWtld2lzZSwgcmVuYW1pbmcgZnJvbSBhZGRbc2RdaTNfaW50ZXJuYWwuCgkoKmFkZFtzZF1pM19zcFsxMl0sICphZGQ8bW9kZT4zX21pcHMxNik6IFJlZGVmaW5lIHVzaW5nIDpHUFIsIG5hbWluZwoJcHJldmlvdXNseSB1bm5hbWVkIE1JUFMxNiBwYXR0ZXJucy4KCSgqYWRkc2kzX2V4dGVuZGVkKTogUmVuYW1lZCBmcm9tIGFkZHNpM19pbnRlcm5hbF8yLiAgRml4IG92ZXJseSBsb25nCglsaW5lcy4gIERvbid0IG1hdGNoIChwbHVzIChjb25zdF9pbnQgMCkgLi4uKS4KCSgqYWRkc2kzX2V4dGVuZGVkX21pcHMxNik6IE5hbWUgcHJldmlvdXNseSB1bm5hbWVkIE1JUFMxNiBwYXR0ZXJuLgoJVXNlIGEgZGVmaW5lX3NwbGl0IHRvIGdlbmVyYXRlIHRoZSBhZGRpdGlvbi4KCShzdWJbc2RdaTMpOiBSZWRlZmluZSB1c2luZyA6R1BSLiAgVHVybiBzdWJzaTMgaW50byBhIGRlZmluZV9pbnNuLgoJKHN1YnNpM19pbnRlcm5hbCk6IERlbGV0ZS4KCSgqc3Vic2kzX2V4dGVuZGVkKTogUmVuYW1lZCBmcm9tIHN1YnNpM19pbnRlcm5hbF8yLgoJKGJ1bm9yZGVyZWQsIGJvcmRlcmVkLCBidW5sdCwgYnVuZ2UsIGJ1bmVxLCBibHRndCwgYnVubGUsIGJ1bmd0KQoJKGJlcSwgYm5lLCBiZ3QsIGJnZSwgYmx0LCBibGUsIGJndHUsIGJnZXUsIGJsdHUsIGJsZXUpOiBSZWRlZmluZQoJdXNpbmcgYW4gYW55X2NvbmQgdGVtcGxhdGUuCgoyMDA0LTA4LTIzICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiByZWFkLXJ0bC5jIChyZWFkX3J0eCk6IFRpZHkgdXNlIG9mIGZvcm1hdF9wdHIuCgoyMDA0LTA4LTIzICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiByZWFkLXJ0bC5jIChzdHJpbmdfb2JzdGFjayk6IE5ldyBmaWxlLXNjb3BlIHZhcmlhYmxlLgoJKHJlYWRfc3RyaW5nLCByZWFkX3F1b3RlZF9zdHJpbmcsIHJlYWRfYnJhY2VkX3N0cmluZykKCShyZWFkX2VzY2FwZSk6IFJlbW92ZSBvYnN0YWNrIHBhcmFtZXRlciBhbmQgdXNlIHN0cmluZ19vYnN0YWNrIGluc3RlYWQuCgkocmVhZF9ydHgpOiBSZW1vdmUgZnVuY3Rpb24tbG9jYWwgcnRsX29ic3RhY2sgYW5kIGluaXRpYWxpemUKCXN0cmluZ19vYnN0YWNrIGluc3RlYWQuICBVcGRhdGUgY2FsbCB0byByZWFkX3N0cmluZy4KCjIwMDQtMDgtMjIgIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGFwcGxlLmNvbT4KCglQUiBjLzE1MjYyCgkqIGMtdHlwZWNrLmMgKGJ1aWxkX3VuYXJ5X29wKTogVXNlICZhLmIgaWYgdGhlIGZvbGRkZWQgbG93ZXJlZAoJZXhwcmVzc2lvbiBpcyBub3QgY29uc3RhbnQuCgkoY19maW5pc2hfcmV0dXJuKTogRG8gbm90IGdvIHRocm91Z2ggSU5ESVJFQ1RfUkVGIHdoZW4gbG9va2luZwoJZm9yIHRoZSBpbm5lciBleHByZXNzaW9uIG9mIGFuIEFERFJfRVhQUiBmb3Igd2FybmluZyBhYm91dC4KCjIwMDQtMDgtMjIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgMTcwNzUKCSogY2ZnZXhwYW5kLmMgKGV4cGFuZF9naW1wbGVfdGFpbGNhbGwpOiBEZXRlY3Qgd2hlbiB3ZSBjYW4gYm90aAoJY3JlYXRlIG5ldyBibG9ja3MgYW5kIGZhbGwgdGhyb3VnaC4KCShleHBhbmRfZ2ltcGxlX2Jhc2ljX2Jsb2NrKTogVXBkYXRlIHRvIG1hdGNoLgoKMjAwNC0wOC0yMiAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogcmVsb2FkLmMgKGZpbmRfcmVsb2Fkc19hZGRyZXNzKTogTWFrZSByZXR1cm4gdmFsdWUgdHJpLXN0YXRlLgoJUmV0dXJuIC0xIGlmIExFR0lUSU1JWkVfUkVMT0FEX0FERFJFU1Mgc3VjY2VlZGVkLgoJKGZpbmRfcmVsb2Fkcyk6IEFzc3VtZSB0aGF0IHJlbG9hZGVkIGFkZHJlc3NlcyBtYXRjaCAnbycgb3IKCUVYVFJBX01FTU9SWV9DT05TVFJBSU5UIGNvbnN0cmFpbnRzIG9ubHkgaWYgZmluZF9yZWxvYWRzX2FkZHJlc3MKCXJldHVybmVkIDEgKG5vdCAtMSkuICBPbWl0IG9wdGlvbmFsIHJlbG9hZHMgZm9yIGFkZHJlc3Mgb3BlcmFuZHMKCW9ubHkgaWYgZmluZF9yZWxvYWRzX2FkZHJlc3MgcmV0dXJuZWQgMSAobm90IC0xKS4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAobGVnaXRpbWl6ZV9yZWxvYWRfYWRkcmVzcyk6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL3MzOTAvczM5MC1wcm90b3MuaCAobGVnaXRpbWl6ZV9yZWxvYWRfYWRkcmVzcyk6IERlY2xhcmUuCgkqIGNvbmZpZy9zMzkwL3MzOTAuaCAoTEVHSVRJTUlaRV9SRUxPQURfQUREUkVTUyk6IERlZmluZS4gIENhbGwKCWxlZ2l0aW1pemVfcmVsb2FkX2FkZHJlc3MuCgoyMDA0LTA4LTIyICBSaWNoYXJkIEhlbmRlcnNpb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyZWUuaCAoU0FWRV9FWFBSX1JFU09MVkVEX1ApOiBOZXcuCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X3NhdmVfZXhwcik6IFVzZSBpdC4KCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEpOiBMaWtld2lzZS4gIEFsc28gc2V0IERFQ0xfSUdOT1JFRF9QCglvbiB0aGUgdGVtcG9yYXJ5IHZhcmlhYmxlLgoKMjAwNC0wOC0yMiAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJKiBmb2xkLWNvbnN0LmMgKHJ0bF9leHByX25vbm5lZ2F0aXZlX3ApOiBEZWxldGUuCgkqIHRyZWUuaCAocnRsX2V4cHJfbm9ubmVnYXRpdmVfcCk6IFJlbW92ZS4KCjIwMDQtMDgtMjIgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIGNvbmZpZy9pMzg2L3Bwcm8ubWQgKHBwcm9fY29tcGxleF9pbnNuKTogQWRkIG1pc3NpbmcgY2hlY2sKCWZvciBjcHU9PXBlbnRpdW1wcm8uCgoJKiBjb21iaW5lLmMgKHN0cnVjdCByZWdfc3RhdCk6IEZpeCBjb21tZW50IHR5cG8uCgoyMDA0LTA4LTIyICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtdHJlZS5oIChjX3NpemVvZl9ub3dhcm4pOiBSZW1vdmUuCgoyMDA0LTA4LTIxICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtZGVjbC5jIChzZXRfYXJyYXlfZGVjbGFyYXRvcl90eXBlKTogUmVuYW1lIHRvCglzZXRfYXJyYXlfZGVjbGFyYXRvcl9pbm5lci4KCShidWlsZF9jX3Bhcm0sIGJ1aWxkX2F0dHJzX2RlY2xhcmF0b3IsIGJ1aWxkX2Z1bmN0aW9uX2RlY2xhcmF0b3IpOgoJTmV3IGZ1bmN0aW9ucy4KCShtYWtlX3BvaW50ZXJfZGVjbGFyYXRvcik6IENhbGwgYnVpbGRfYXR0cnNfZGVjbGFyYXRvci4KCSogYy10cmVlLmggKHNldF9hcnJheV9kZWNsYXJhdG9yX3R5cGUpOiBSZW5hbWUgdG8KCXNldF9hcnJheV9kZWNsYXJhdG9yX2lubmVyLgoJKGJ1aWxkX2NfcGFybSwgYnVpbGRfYXR0cnNfZGVjbGFyYXRvciwgYnVpbGRfZnVuY3Rpb25fZGVjbGFyYXRvcik6CglOZXcgcHJvdG90eXBlcy4KCSogYy1wYXJzZS5pbiAoYWZ0ZXJfdHlwZV9kZWNsYXJhdG9yLAoJcGFybV9kZWNsYXJhdG9yX3N0YXJ0dHlwZW5hbWUsIHBhcm1fZGVjbGFyYXRvcl9ub3N0YXJ0dHlwZW5hbWUsCglub3R5cGVfZGVjbGFyYXRvciwgYWJzZGNsX21heWJlX2F0dHJpYnV0ZSwgZGlyZWN0X2Fic2RjbDEsIHBhcm0sCglmaXJzdHBhcm0pOiBVc2UgdGhlc2UgZnVuY3Rpb25zCgoyMDA0LTA4LTIxICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtZGVjbC5jIChidWlsZF9hcnJheV9kZWNsYXJhdG9yLCBzZXRfYXJyYXlfZGVjbGFyYXRvcl90eXBlLAoJc3RhcnRfZGVjbCwgZ3Jva2RlY2xhcmF0b3IsIGdyb2twYXJtcyk6IENoYW5nZSBib29sZWFuIHBhcmFtZXRlcnMKCXRvIHR5cGUgYm9vbC4KCSogYy10cmVlLmggKGJ1aWxkX2FycmF5X2RlY2xhcmF0b3IsIHNldF9hcnJheV9kZWNsYXJhdG9yX3R5cGUsCglzdGFydF9kZWNsKTogVXBkYXRlIHByb3RvdHlwZXMuCgkqIGMtZGVjbC5jLCBjLXBhcnNlLmluOiBBbGwgY2FsbGVycyBjaGFuZ2VkLgoKMjAwNC0wOC0yMSAgTWlrZSBTdHVtcCAgPG1yc0BhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5oIChTVUJUQVJHRVRfT1BUSU9OUyk6IE1vdmUgZnJvbSBoZXJlLCB0by4uLgoJKGRhcndpbl9maXhfYW5kX2NvbnRpbnVlKTogTGlrZXdpc2UuCgkoZGFyd2luX2ZpeF9hbmRfY29udGludWVfc3dpdGNoKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9kYXJ3aW4uaCAoU1VCVEFSR0VUX09QVElPTlMpOiAuLi5oZXJlLCB0byBmaXggLW1vbmUtYnl0ZS1ib29sLgoJKGRhcndpbl9maXhfYW5kX2NvbnRpbnVlKTogTGlrZXdpc2UuCgkoZGFyd2luX2ZpeF9hbmRfY29udGludWVfc3dpdGNoKTogTGlrZXdpc2UuCgoyMDA0LTA4LTIxICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSICBjKysvMTYwMzAKCSogY29uZmlnL2kzODYvd2lubnQvYyAoZ2VuX3N0ZGNhbGxfc3VmZml4LCBnZW5fZmFzdGNhbGxfc3VmZml4KToKCVJlbW92ZSwgbWVyZ2luZyBpbnRvIC4uLgoJKGdlbl9zdGRjYWxsX29yX2Zhc3RjYWxsX3N1ZmZpeCk6IE5ldyBmdW5jdGlvbiwgcmV0dXJuaW5nIHRyZWUKCXJhdGhlciB0aGFuIGNvbnN0IGNoYXIqLCBhbmQgYWNjZXB0aW5nIGFkZGl0aW9uYWwgcGFyYW1ldGVyLgoJRG9uJ3QgYWRkIHN1ZmZpeCB0byAnKictcHJlZml4ZWQgc3ltYm9scyBvciB2YXJpYWRpYyBmdW5jdGlvbnMuCgkoaTM4Nl9wZV9lbmNvZGVfc2VjdGlvbl9pbmZvKTogQWRqdXN0IGZvciBjYWxsIHRvIG5ldyBmdW5jdGlvbi4KCUNhbGwgY2hhbmdlX2RlY2xfYXNzZW1ibGVyX25hbWUuCgoyMDA0LTA4LTIwICBNaWtlIFN0dW1wICA8bXJzQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW4uYyAobWFjaG9waWNfaW5kaXJlY3RfZGF0YV9yZWZlcmVuY2UpOiBNYXJrCglzdHVicyBhcyBkZWZpbmVkLgoJKiBjb25maWcvMzg2LzM4Ni5jIChkYXJ3aW5fbG9jYWxfZGF0YV9waWMpOiBBZGQuCgkobGVnaXRpbWF0ZV9jb25zdGFudF9wKTogUmVvcmRlciBzbyB0aGF0IFBMVVMgaGFuZGxpbmcgcnVucwoJYmVmb3JlIGRhcndpbl9sb2NhbF9kYXRhX3BpYyB0byBtYXRjaCB0aGUgb3JkZXJpbmcgaW4KCWxlZ2l0aW1hdGVfcGljX2FkZHJlc3NfZGlzcF9wIGFuZCBzbyB0aGF0IE1JTlVTIHJ1bnMgYWZ0ZXIKCWRhcndpbl9sb2NhbF9kYXRhX3BpYyBhcyBvdGhlcndpc2UgdGhlIGRhcndpbl9sb2NhbF9kYXRhX3BpYwoJbG9naWMgY2FuIGJlIHNraXBwZWQsIHdoaWNoIHdvdWxkIGJlIHZlcnkgYmFkLgoJKGxlZ2l0aW1hdGVfcGljX2FkZHJlc3NfZGlzcF9wKTogTW92ZSBmcm9tIGZyb20gaGVyZSB0bwoJZGFyd2luX2xvY2FsX2RhdGFfcGljIHNvIGl0IGNhbiBiZSByZXVzZWQuCgoyMDA0LTA4LTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3JzNjAwMC9saW51eDY0LmggKERPVF9TWU1CT0xTKTogRGVmaW5lLgoJKENSVF9DQUxMX1NUQVRJQ19GVU5DVElPTik6IERlZmluZSAhRE9UX1NZTUJPTFMgdmVyc2lvbi4KCShBU01fREVDTEFSRV9GVU5DVElPTl9TSVpFKTogTW9kaWZ5IGZvciAhRE9UX1NZTUJPTFMuCgkoQVNNX09VVFBVVF9TT1VSQ0VfTElORSwgREJYX09VVFBVVF9CUkFDLCBEQlhfT1VUUFVUX05GVU4pOiBMaWtld2lzZS4KCShSUzYwMDBfQUJJX05BTUUpOiBEZWZpbmUgYXMgImxpbnV4Ii4KCShTVUJTVUJUQVJHRVRfT1ZFUlJJREVfT1BUSU9OUyk6IFNldCBkb3Rfc3ltYm9scy4KCSogY29uZmlnL3JzNjAwMC9zeXN2NC5oIChTVUJUQVJHRVRfT1ZFUlJJREVfT1BUSU9OUyk6IFNlbGVjdAoJQUJJX0FJWCB3aGVuIHJzNjAwMF9hYmlfbmFtZSBpcyAibGludXgiIGFuZCBUQVJHRVRfNjRCSVQuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLXByb3Rvcy5oIChyczYwMDBfb3V0cHV0X2Z1bmN0aW9uX2VudHJ5KTogRGVjbC4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAoZG90X3N5bWJvbHMpOiBOZXcgZ2xvYmFsIHZhci4KCShyczYwMDBfb3V0cHV0X2Z1bmN0aW9uX2VudHJ5KTogTmV3IGZ1bmN0aW9uLCBtb2RpZmllZCBmb3IKCSFET1RfU1lNQk9MUy4uCgkocHJpbnRfb3BlcmFuZCA8Y2FzZSAneic+KTogLi5leHRyYWN0ZWQgZnJvbSBoZXJlLgoJKHJzNjAwMF9hc3NlbWJsZV92aXNpYmlsaXR5KTogTW9kaWZ5IGZvciAhRE9UX1NZTUJPTFMuCgkocnM2MDAwX291dHB1dF9mdW5jdGlvbl9lcGlsb2d1ZSk6IExpa2V3aXNlLgoJKHJzNjAwMF9lbGZfZGVjbGFyZV9mdW5jdGlvbl9uYW1lKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKERPVF9TWU1CT0xTKTogRGVmaW5lLgoJKEFTTV9XRUFLRU5fREVDTCwgQVNNX09VVFBVVF9ERUZfRlJPTV9ERUNMUyk6IE1vZGlmeSBmb3IgIURPVF9TWU1CT0xTLgoJKiBjb25maWd1cmUuYWMgKEhBVkVfTERfTk9fRE9UX1NZTVMpOiBBZGQgbmV3IEFDX0RFRklORS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCgoyMDA0LTA4LTIwICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogcmVsb2FkLmMgKGZpbmRfcmVsb2Fkc19hZGRyZXNzKTogRml4IHRoaW5rbyBpbiBwcmV2aW91cyBjaGFuZ2UuCgoJKiByZWxvYWQuYyAoZmluZF9yZWxvYWRzX2FkZHJlc3MpOiBSZWxvYWQgdGhlIHN1bSBvZiBhIExPX1NVTSBhbmQKCWEgQ09OU1RfSU5ULgoKMjAwNC0wOC0yMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNzA5OQoJKiBjb21iaW5lLmMgKGZvcmNlX3RvX21vZGUpOiBDaGVjayBpZiBpbm5lcl9tYXNrIGhhcyBhbnkgYml0cyBzZXQKCW91dHNpZGUgb2YgR0VUX01PREUgKHgpIGluc3RlYWQgb2Ygb3BfbW9kZS4KCjIwMDQtMDgtMjAgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcuZ2NjIChhcm0qLSotc3ltYmlhbmVsZiopOiBBZGQgdC1zeW1iaWFuIE1ha2VmaWxlCglmcmFnbWVudC4KCSogY29uZmlnL2FybS9icGFiaS5oIChSRU5BTUVfTElCUkFSWV9TRVQpOiBGaXggdHlwby4KCShTVUJUQVJHRVRfRVhUUkFfQVNNX1NQRUMpOiBQYXNzIC1tZWFiaT0zIHRvIHRoZSBhc3NlbWJsZXIuCgkqIGNvbmZpZy9hcm0vc3ltYmlhbi5oIChTVUJUQVJHRVRfQ1BVX0RFRkFVTFQpOiBBc3N1bWUgQVJNVjUKCWFyY2hpdGVjdHVyZS4KCShTVUJUQVJHRVRfQVNNX0ZMT0FUX1NQRUMpOiBEZWZhdWx0IHRvIC1tZnB1PXZmcCBmb3IgaGFyZC1mbG9hdAoJY29uZmlndXJhdGlvbnMuCgkqIGNvbmZpZy9hcm0vdC1zeW1iaWFuOiBOZXcgZmlsZS4KCjIwMDQtMDgtMjAgIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGFwcGxlLmNvbT4KCgkqIHJlZ3JlbmFtZS5jIChraWxsX3ZhbHVlX3JlZ25vKTogQU5TSWZ5LgoKMjAwNC0wOC0yMCAgRGFsZSBKb2hhbm5lc2VuICA8ZGFsZWpAYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3J0eF9jb3N0cyk6IEltcHJvdmUgRElWL01PRC4KCjIwMDQtMDgtMjAgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGRlYmlhbi5vcmc+CgoJKiByZWdyZW5hbWUuYyAoa2lsbF92YWx1ZV9vbmVfcmVnbm8pOiBSZW5hbWVkIGZyb20ga2lsbF92YWx1ZV9yZWduby4KCShraWxsX3ZhbHVlX3JlZ25vKTogTmV3IGZ1bmN0aW9uLCBkZXJpdmVkIGZyb20ga2lsbF92YWx1ZS4KCShraWxsX3ZhbHVlKTogVXBkYXRlLgoJKGNvcHlwcm9wX2hhcmRyZWdfZm9yd2FyZF8xKTogVXBkYXRlIGNhbGwgdG8ga2lsbF92YWx1ZV9yZWduby4KCjIwMDQtMDgtMjAgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCUZpeCBQUiB0cmVlLW9wdGltaXphdGlvbi8xNzExMQoJKiB0cmVlLXNzYS1wcmUuYyAoY3JlYXRlX3ZhbHVlX2V4cHJfZnJvbSk6IERvbid0IGNoYW5nZSB0aGUgdHlwZXMKCW9mIG5vbi12YWx1ZV9oYW5kbGVzLgoJKGJpdG1hcF9zZXRfY29udGFpbnMpOiBBbGwgY29uc3RhbnRzIGFyZSBpbiBldmVyeSBzZXQuCgoyMDA0LTA4LTIwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZm9sZC1jb25zdC5jIChyb3VuZF91cCwgcm91bmRfZG93bik6IFVzZSBidWlsZF9pbnRfY3N0LgoJT3B0aW1pemUgY29tbW9uIGNhc2UuCgoyMDA0LTA4LTIwICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoJICAgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBjb25maWcvcGEvcGEtcHJvdG9zLmggKHJlYWRvbmx5X2RhdGEsIG9uZV9vbmx5X3JlYWRvbmx5X2RhdGFfc2VjdGlvbiwKCW9uZV9vbmx5X2RhdGFfc2VjdGlvbik6IFJlbmFtZSB0byBzb21fcmVhZG9ubHlfZGF0YV9zZWN0aW9uLAoJc29tX29uZV9vbmx5X3JlYWRvbmx5X2RhdGFfc2VjdGlvbiBhbmQgc29tX29uZV9vbmx5X2RhdGFfc2VjdGlvbi4KCSogY29uZmlnL3BhL3BhLmMgKE9ORV9PTkxZX1RFWFRfU0VDVElPTl9BU01fT1AsCglORVdfVEVYVF9TRUNUSU9OX0FTTV9PUCwgREVGQVVMVF9URVhUX1NFQ1RJT05fQVNNX09QKTogRGVsZXRlCgljb25kaXRpb25hbCBkZWZpbmVzLgoJKHNvbV90ZXh0X3NlY3Rpb25fYXNtX29wKTogUmVwbGFjZSBPTkVfT05MWV9URVhUX1NFQ1RJT05fQVNNX09QLAoJTkVXX1RFWFRfU0VDVElPTl9BU01fT1AgYW5kIERFRkFVTFRfVEVYVF9TRUNUSU9OX0FTTV9PUCB3aXRoIGFjdHVhbAoJc3RyaW5nIHZhbHVlcy4KCShwYV9zZWxlY3Rfc2VjdGlvbik6IFVzZSByZW5hbWVkIHNlY3Rpb24gZnVuY3Rpb25zLgoJKiBjb25maWcvcGEvcGEuaCAoRVhUUkFfU0VDVElPTlMsIEVYVFJBX1NFQ1RJT05fRlVOQ1RJT05TLAoJU09NX1JFQURPTkxZX0RBVEFfU0VDVElPTl9GVU5DVElPTiwKCVNPTV9PTkVfT05MWV9SRUFET05MWV9EQVRBX1NFQ1RJT05fRlVOQ1RJT04sCglTT01fT05FX09OTFlfREFUQV9TRUNUSU9OX0ZVTkNUSU9OLCBGT1JHRVRfU0VDVElPTl9GVU5DVElPTik6CglEZWZpbmUgaGVyZSAuLi4KCSogY29uZmlnL3BhL3NvbS5oOiAuLi4gbm90IGhlcmUuCgkoREVGQVVMVF9URVhUX1NFQ1RJT05fQVNNX09QLCBORVdfVEVYVF9TRUNUSU9OX0FTTV9PUCwKCU9ORV9PTkxZX1RFWFRfU0VDVElPTl9BU01fT1AsIFJFQURPTkxZX0RBVEFfQVNNX09QLAoJT05FX09OTFlfUkVBRE9OTFlfREFUQV9TRUNUSU9OX0FTTV9PUCwKCU9ORV9PTkxZX0RBVEFfU0VDVElPTl9BU01fT1ApOiBEZWxldGUuCgkoUkVBRE9OTFlfREFUQV9TRUNUSU9OKTogVXNlIHNvbV9yZWFkb25seV9kYXRhX3NlY3Rpb24uCgoyMDA0LTA4LTIwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZm9sZC1jb25zdC5jIChpbnRfY29uc3RfYmlub3ApOiBEb24ndCBnZW5lcmF0ZSBub24tb3ZlcmZsb3dpbmcKCXNpemUtdHlwZXMgc3BlY2lhbGx5LgoJKGZvbGRfY29udmVydF9jb25zdCk6IExpa2V3aXNlLgoKCSogc3Rvci1sYXlvdXQuYyAoaW5pdGlhbGl6ZV9zaXpldHlwZXMpOiBTZXQgU0laRVRZUEUgZWFybGllciwKCWNsZWFyIGNhY2hlIG9uIGNvcGllZCBzaXpldHlwZS4KCjIwMDQtMDgtMjAgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogY29uZmlndXJlLmFjOiBEb24ndCBlc2NhcGUgYXBvc3Ryb3BoZSBpbiAtLWVuYWJsZS1jb3ZlcmFnZSBoZWxwLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA0LTA4LTIwICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCVBSIDU2MjAKCSogZ2NjLmMgKHN0cnVjdCBzdGF0IGlucHV0X3N0YXQpOiBEb24ndCBkZWZpbmUgaWYKCUhPU1RfTEFDS1NfSU5PREVfTlVNQkVSUwoJKGRvX3NwZWNfMSk6IElmIEhPU1RfTEFDS1NfSU5PREVfTlVNQkVSUywgdXNlIGxyZWFscGF0aCByYXRoZXIKCXRoYW4gc3RhdCB0byBkZXRlcm1pbmUgaWYgdGVtcCBmaWxlIGlzIHNhbWUgYXMgaW5wdXQgZmlsZS4KCSogZG9jL2hvc3Rjb25maWcudGV4aTogRG9jdW1lbnQgSE9TVF9MQUNLU19JTk9ERV9OVU1CRVJTLgoJKiBjb25maWcvaTM4Ni94bS1taW5ndzMyLmg6IERlZmluZSBIT1NUX0xBQ0tTX0lOT0RFX05VTUJFUlMKCjIwMDQtMDgtMjAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAobWlwcyotKi0qKTogUHJpbnQgYW4gZXJyb3IgaWYgbm90IHVzaW5nIEdBUy4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCSogZG9jL2luc3RhbGwudGV4aTogUmVtb3ZlIGlyaXg1IGJ1bGxldCBmcm9tIC0td2l0aC1nbnUtYXMuICBSZW1vdmUKCWNvbW1lbnRzIGFib3V0IGJ1Z2d5IE1JUFNwcm8gYXNzZW1ibGVycy4KCSogY29uZmlnLmdjYyAobWlwcy1zZ2ktaXJpeFs1Nl0qKTogQ29tYmluZSBzdGFuemFzLiAgSW5jbHVkZSBlbGZvcy5oCgliZWZvcmUgbWlwcy5oIGFuZCBpcmlzLmggYWZ0ZXIgaXQuICBVc2UgdC1pcmlzIGFuZCB0LXNsaWJnY2MtaXJpeC4KCVVzZSBpcmlzNS5oIG9ubHkgZm9yIElSSVggNSBjb25maWdzLiAgVXNlIGlyaXM2LmggYW5kIHQtaXJpczYgZm9yCglJUklYIDYgY29uZmlncy4gIERlZmluZSBJUklYX1VTSU5HX0dOVV9MRCBpZiB1c2luZyBHTlUgbGQuCgkqIGNvbmZpZy9taXBzL2lyaXM1LmggKFRBUkdFVF9JUklYLCBTV0lUQ0hFU19ORUVEX1NQQUNFUykKCShERUZBVUxUX1NJR05FRF9DSEFSLCBXT1JEX1NXSVRDSF9UQUtFU19BUkcsIFNVQlRBUkdFVF9DQzFfU1BFQykKCShOT19JTVBMSUNJVF9FWFRFUk5fQywgTUlQU19ERUZBVUxUX0dWQUxVRSkKCShUQVJHRVRfQVNNX0VYVEVSTkFMX0xJQkNBTEwpOiBNb3ZlIHRvIGlyaXMuaC4KCShXQ0hBUl9UWVBFLCBXQ0hBUl9UWVBFX1NJWkUsIFRBUkdFVF9PU19DUFBfQlVJTFRJTlMpOiBEZWxldGUgaW4gZmF2b3IKCW9mIG1vcmUgZ2VuZXJhbCBJUklYIDYgZGVmaW5pdGlvbnMuCgkoT0JKRUNUX0ZPUk1BVF9FTEYsIEFTTV9PVVRQVVRfQVNDSUksIEFTTV9XRUFLRU5fTEFCRUwpCgkoSEFORExFX1NZU1ZfUFJBR01BKTogRGVsZXRlIGluIGZhdm9yIG9mIGVsZm9zLmggZGVmaW5pdGlvbnMuCgkoVEFSR0VUX0lSSVg1LCBBQklDQUxMU19BU01fT1AsIEJTU19TRUNUSU9OX0FTTV9PUCwgSEFTX0lOSVRfU0VDVElPTikKCShMRF9JTklUX1NXSVRDSCwgTERfRklOSV9TV0lUQ0gsIFNVQlRBUkdFVF9BU01fT1BUSU1JWklOR19TUEVDKQoJKEFTTV9GSU5BTF9TUEVDLCBEQlhfREVCVUdHSU5HX0lORk8sIE1JUFNfREVCVUdHSU5HX0lORk8pCgkoUFJFRkVSUkVEX0RFQlVHR0lOR19UWVBFLCBEV0FSRjJfVU5XSU5EX0lORk8sIFNFVF9GSUxFX05VTUJFUikKCShMQUJFTF9BRlRFUl9MT0MsIERPTExBUlNfSU5fSURFTlRJRklFUlMsIE5PX0RPTExBUl9JTl9MQUJFTCkKCShUQVJHRVRfQVNNX05BTUVEX1NFQ1RJT04sIEVYVFJBX1NFQ1RJT05fRlVOQ1RJT05TKQoJKEFTTV9ERUNMQVJFX0ZVTkNUSU9OX1NJWkUsIEFTTV9PVVRQVVRfV0VBS19BTElBUykKCShTVUJUQVJHRVRfRVhUUkFfU1BFQ1MpOiBEZWxldGUgZGVmaW5pdGlvbnMgb3IgdW5kZWZzLgoJKExJTktfU1BFQyk6IE1vdmUgbW9zdCBvZiBkZWZpbml0aW9uIHRvIGlyaXMuaC4KCShTVUJUQVJHRVRfTElOS19TUEVDKTogTmV3IG1hY3JvLgoJKElSSVhfU1RBUlRGSUxFX1NQRUMpOiBGb2xkIGludG8uLi4KCShTVEFSVEZJTEVfU1BFQyk6IC4uLmhlcmUuCgkoSVJJWF9FTkRGSUxFX1NQRUMpOiBGb2xkIGludG8uLi4KCShFTkRGSUxFX1NQRUMpOiAuLi5oZXJlLgoJKiBjb25maWcvbWlwcy9pcmlzNi5oIChUQVJHRVRfSVJJWDUpOiBSZW1vdmUgb3ZlcnJpZGUuCgkoV0NIQVJfVFlQRSwgV0NIQVJfVFlQRV9TSVpFLCBXSU5UX1RZUEUsIFdJTlRfVFlQRV9TSVpFKQoJKERXQVJGX09GRlNFVF9TSVpFLCBEV0FSRl9JTklUSUFMX0xFTkdUSF9TSVpFLCBTRVRfQVNNX09QKQoJKExJTktfRUxJTUlOQVRFX0RVUExJQ0FURV9MRElSRUNUT1JJRVMsIEFTTV9ERUNMQVJFX09CSkVDVF9OQU1FKQoJKEFTTV9GSU5JU0hfREVDTEFSRV9PQkpFQ1QsIExPQ0FMX0xBQkVMX1BSRUZJWCk6IE1vdmUgdG8gaXJpcy5oLgoJKFRBUkdFVF9PU19DUFBfQlVJTFRJTlMpOiBMaWtld2lzZS4gIEd1YXJkIElSSVg2LXNwZWNpZmljIGJpdHMuCgkoRFdBUkYyX1VOV0lORF9JTkZPLCBEV0FSRjJfR0VORVJBVEVfVEVYVF9TRUNUSU9OX0xBQkVMKQoJKFNVQlRBUkdFVF9DUFBfU1BFQywgRFdBUkYyX0RFQlVHR0lOR19JTkZPLCBNSVBTX0RFQlVHR0lOR19JTkZPKQoJKFBSRUZFUlJFRF9ERUJVR0dJTkdfVFlQRSwgRFdBUkYyX0ZSQU1FX0lORk8sIE1EX0VYRUNfUFJFRklYKQoJKEFTTV9ERUNMQVJFX0ZVTkNUSU9OX05BTUUsIEFTTV9ERUNMQVJFX0ZVTkNUSU9OX1NJWkUpCgkoRlVOQ1RJT05fTkFNRV9BTFJFQURZX0RFQ0xBUkVELCBTVVBQT1JUU19JTklUX1BSSU9SSVRZKQoJKFBPUFNFQ1RJT05fQVNNX09QLCBTVUJUQVJHRVRfQVNNX1NQRUMsIFNVQlRBUkdFVF9NSVBTX0FTX0FTTV9TUEVDKQoJKFNVQlRBUkdFVF9BU01fREVCVUdHSU5HX1NQRUMsIFNVQlRBUkdFVF9BU01fT1BUSU1JWklOR19TUEVDKQoJKEJTU19TRUNUSU9OX0FTTV9PUCosIFJFQURPTkxZX0RBVEFfU0VDVElPTl9BU01fT1AqKQoJKEVIX0ZSQU1FX1NFQ1RJT05fTkFNRSwgTVVTVF9VU0VfU0pMSl9FWENFUFRJT05TLCBDVE9SU19TRUNUSU9OX0FTTV9PUCkKCShEVE9SU19TRUNUSU9OX0FTTV9PUCwgVEFSR0VUX0FTTV9OQU1FRF9TRUNUSU9OLCBFSF9GUkFNRV9TRUNUSU9OX05BTUUpCgkoQVNNX09VVFBVVF9BTElHTiwgQVNNX09VVFBVVF9GSUxFTkFNRSwgQVNNX09VVFBVVF9BTElHTkVEX0xPQ0FMKQoJKEFTTV9PVVRQVVRfQUxJR05FRF9CU1MpOiBSZW1vdmUgZGVmaW5pdGlvbnMgb3IgdW5kZWZzLgoJKFRBUkdFVF9JUklYNik6IERlZmluZSB0byAxLgoJKERSSVZFUl9TRUxGX1NQRUNTKTogRGVmaW5lLgoJKERXQVJGMl9GUkFNRV9JTkZPKTogRGVmaW5lIHRvIDEgcmF0aGVyIHRoYW4gIVRBUkdFVF9TR0lfTzMyX0FTLgoJKFNVQlRBUkdFVF9DQzFfU1BFQyk6IFJlbW92ZSBpbiBmYXZvciBvZiBEUklWRVJfU0VMRl9TUEVDUy4KCShTVUJUQVJHRVRfTElOS19TUEVDKTogTmV3IG1hY3JvLgoJKElSSVhfU1RBUlRGSUxFX1NQRUMpOiBGb2xkIGludG8uLi4KCShTVEFSVEZJTEVfU1BFQyk6IC4uLmhlcmUuICBSZW1vdmUgIW1hYmk9KiBjYXNlLgoJKFNVQlRBUkdFVF97LERPTlRffVdBUk5fVU5VU0VEX1NQRUMpOiBOZXcgbWFjcm9zLgoJKExJQl9TUEVDLCBMSUJHQ0NfU1BFQyk6IFVzZSB0aGVtLgoJKExJQl9TUEVDKTogUmVtb3ZlICFtYWJpPSogY2FzZS4KCShJUklYX0VOREZJTEVfU1BFQyk6IEZvbGQgaW50by4uLgoJKEVOREZJTEVfU1BFQyk6IC4uLmhlcmUuICBSZW1vdmUgIW1hYmk9KiBjYXNlLgoJKiBjb25maWcvbWlwcy9taXBzLXByb3Rvcy5oIChpcml4X291dHB1dF9leHRlcm5hbF9saWJjYWxsKTogRGVsZXRlLgoJKiBjb25maWcvbWlwcy9taXBzLmggKFRBUkdFVF9JUklYNSwgVEFSR0VUX1NHSV9PMzJfQVMpOiBEZWxldGUuCgkoVEFSR0VUX0lSSVg2KTogTmV3IG1hY3JvLgoJKEFTTV9BQklfREVGQVVMVF9TUEVDKTogUmVtb3ZlICFFTEYgZGVmaW5pdGlvbi4KCShNRF9FWEVDX1BSRUZJWCwgTURfU1RBUlRGSUxFX1BSRUZJWCwgU0VUX0ZJTEVfTlVNQkVSKQoJKExBQkVMX0FGVEVSX0xPQyk6IERlbGV0ZS4KCSogY29uZmlnL21pcHMvbWlwcy5jIChUQVJHRVRfQVNNX0ZJTEVfU1RBUlQsIFRBUkdFVF9BU01fRklMRV9FTkQpCgkoVEFSR0VUX1NFQ1RJT05fVFlQRV9GTEFHUyk6IFJlbW92ZSBUQVJHRVRfSVJJWCB2ZXJzaW9ucy4KCShtaXBzX2J1aWxkX2J1aWx0aW5fdmFfbGlzdCk6IENoZWNrIFRBUkdFVF9JUklYNi4KCShvdmVycmlkZV9vcHRpb25zKTogUmVtb3ZlIFRBUkdFVF9TR0lfTzMyX0FTLXJlbGF0ZWQgY29kZS4KCShpcml4X291dHB1dF9leHRlcm5hbF9saWJjYWxsKTogTWFrZSBzdGF0aWMuCgkobWlwc19vdXRwdXRfZmlsZW5hbWUpOiBBdm9pZCB1c2Ugb2YgU0VUX0ZJTEVfTlVNQkVSIGFuZAoJTEFCRUxfQUZURVJfTE9DLgoJKG1pcHNfZmlsZV9zdGFydCk6IFRpZHkgZ3VhcmQgZm9yIEFCSSBzZWN0aW9ucy4gIFJlbW92ZSB1c2Ugb2YKCUFCSUNBTExTX0FTTV9PUDsgdXNlIC5hYmljYWxscyBpbnN0ZWFkLgoJKG1pcHNfb3V0cHV0X2FsaWduZWRfZGVjbF9jb21tb24sIG1pcHNfZGVjbGFyZV9vYmplY3RfbmFtZSkKCShtaXBzX2ZpbmlzaF9kZWNsYXJlX29iamVjdCk6IFJlbW92ZSB1c2Ugb2YgVEFSR0VUX1NHSV9PMzJfQVMuCgkobWlwc19vdXRwdXRfZnVuY3Rpb25fcHJvbG9ndWUpOiBTZXQgVFJFRV9BU01fV1JJVFRFTiBpZiBlbWl0dGluZwoJLmdsb2JsIGZvbyAudGV4dCBkaXJlY3RpdmVzLgoJKGlyaXhfYXNtX25hbWVkX3NlY3Rpb25fMSwgaXJpeF9hc21fbmFtZWRfc2VjdGlvbikKCShpcml4X3NlY3Rpb25fYWxpZ25fZW50cnksIGlyaXhfc2VjdGlvbl9hbGlnbl9odGFiKQoJKGlyaXhfb3JpZ19hc21fb3V0X2ZpbGUsIGlyaXhfc2VjdGlvbl9hbGlnbl9lbnRyeV9lcSkKCShpcml4X3NlY3Rpb25fYWxpZ25fZW50cnlfaGFzaCwgaXJpeF9hc21fb3V0cHV0X2FsaWduKQoJKGlyaXhfZmlsZV9zdGFydCwgaXJpeF9zZWN0aW9uX2FsaWduXzEsIGNvcHlfZmlsZV9kYXRhKQoJKGlyaXhfZmlsZV9lbmQsIGlyaXhfc2VjdGlvbl90eXBlX2ZsYWdzKTogRGVsZXRlLgoJKiBjb25maWcvbWlwcy9pcml4LWNydGkuYXNtIChfX2djY19pbml0KTogTW92ZSB0byAuZ2NjX2luaXQgc2VjdGlvbi4KCVVzZSBzdGFuZGFyZCBzZWN0aW9uIHN5bnRheC4gIFJlbW92ZSBwcm90ZWN0aXZlICJqciAkMzEiLgoJKF9fZ2NjX2ZpbmkpOiBMaWtld2lzZSAuZ2NjX2ZpbmkuCgkqIGNvbmZpZy9taXBzL2lyaXgtY3J0bi5hc206IEFkanVzdCBzZWN0aW9ucyBhY2NvcmRpbmdseS4KCSogY29uZmlnL21pcHMvc2RiLmggKFBVVF9TREJfU0laRSwgUFVUX1NEQl9UWVBFKTogTW92ZWQgZnJvbQoJaXJpczVnYXMuaC4KCSogY29uZmlnL21pcHMvdC1pcmlzIChpcml4LWNydGkubywgaXJpeC1jcnRuLm8pOiBOZXcgcnVsZXMsIG1vdmVkCglmcm9tIHQtaXJpeC1nbGQuCgkoRVhUUkFfTVVMVElMSUJfUEFSVFMpOiBEZWZpbmUuCgkqIGNvbmZpZy9taXBzL3QtaXJpczY6IFJlbW92ZSBib2d1cyBjb21tZW50LgoJKEVYVFJBX01VTFRJTElCX1BBUlRTLCBDUlRTVFVGRl9UX0NGTEFHUyk6IERlbGV0ZS4KCSogY29uZmlnL21pcHMvaXJpczVnYXMuaCwgY29uZmlnL21pcHMvaXJpczVnbGQuaCwKCWNvbmZpZy9taXBzL2lyaXM2Z2FzLmgsIGNvbmZpZy9taXBzL2lyaXM2Z2xkLmgsCgljb25maWcvbWlwcy90LWlyaXM1LWFzLCBjb25maWcvbWlwcy90LWlyaXM1LWdhcwoJY29uZmlnL21pcHMvdC1pcml4LWdsZDogRGVsZXRlLgoJKiBjb25maWcvbWlwcy9pcmlzLmg6IE5ldyBmaWxlLgoJKiBjb25maWcvbWlwcy90LXNsaWJnY2MtaXJpeDogUmVuYW1lZCBmcm9tIHQtaXJpczUtNi4KCjIwMDQtMDgtMjAgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogcG9zdHJlbG9hZC5jIChyZWxvYWRfY3NlX21vdmUyYWRkKTogQWxsb3cgYW55IGNvbmRqdW1wLCBidXQgY2hlY2sKCXRoYXQgdGhlIGltcGxpY2l0IHNldCBpc24ndCBjbG9iYmVyZWQgaW4gdGhlIGp1bXAgaW5zbi4KCjIwMDQtMDgtMTkgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWZhdWx0cy5oIChUQVJHRVRfTElCR0NDX0xJQkZVTkNTKTogUmVtb3ZlLgoJKiBvcHRhYnMuYyAoaW5pdF9vcHRhYnMpOiBEb24ndCBjaGVjayBpdC4KCSogY29uZmlnL2FybS9icGFiaS5oIChUQVJHRVRfTElCR0NDX0xJQkZVTkNTKTogRG8gbm90IGRlZmluZS4KCSogZG9jL3RtLnRleGkgKFRBUkdFVF9MSUJHQ0NfRlVOQ1MpOiBSZW1vdmUuCgoyMDA0LTA4LTE4ICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsMUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5tZCAoczM5MF93YXJuX2ZyYW1lc2l6ZV9zdHJpbmcpCgkoczM5MF93YXJuX2R5bmFtaWNfc3RyaW5nLCBzMzkwX3N0YWNrX3NpemVfc3RyaW5nKQoJKHMzOTBfc3RhY2tfZ3VhcmRfc3RyaW5nKTogTmV3IGdsb2JhbCBzdHJpbmcgdmFyaWFibGVzLgoJKHMzOTBfd2Fybl9mcmFtZXNpemUsIHMzOTBfd2Fybl9keW5hbWljc3RhY2tfcCwgczM5MF9zdGFja19zaXplKQoJKHMzOTBfc3RhY2tfZ3VhcmQpOiBOZXcgZ2xvYmFsIHZhcmlhYmxlcy4KCShvdmVycmlkZV9vcHRpb25zKTogQWRkZWQgY2hlY2tzIGZvciB0aGUgbmV3IG9wdGlvbnMuCgkoczM5MF9lbWl0X3Byb2xvZ3VlKTogRW1pdCBzdGFjayBjaGVjayBhbmQgdHJhcCBjb2RlIGFuZCBwZXJmb3JtCgljb21waWxlIHRpbWUgc3RhY2sgc2l6ZSBjaGVja2luZy4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuaCAoVEFSR0VUX09QVElPTlMpOiBBZGRlZCBuZXcgb3B0aW9ucwoJIndhcm4tZnJhbWVzaXplIiwgIndhcm4tZHluYW1pY3N0YWNrIiwgInN0YWNrLXNpemUiIGFuZAoJInN0YWNrLWd1YXJkIi4KCgkqIGRvYy9pbnZva2UudGV4aTogQWRkZWQgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIG5ldyBvcHRpb25zLgoKMjAwNC0wOC0xOSAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogdW53aW5kLWR3Mi1mZGUuYyAoZ2V0X2NpZV9lbmNvZGluZyk6IENhc3QgYXJndW1lbnQgdG8gc3RybGVuCgl0byBlbGltaW5hdGUgd2FybmluZy4KCShsaW5lYXJfc2VhcmNoX2ZkZXMpOiBEZWNsYXJlIHAgYXMgdW5zaWduZWQuCgkoYmluYXJ5X3NlYXJjaF9taXhlZF9lbmNvZGluZ19mZGVzKTogTGlrZXdpc2UuCgkqIHVud2luZC1kdzIuYyAoZ2V0X2NpZV9lbmNvZGluZyk6IENhc3QgYXJndW1lbnQgdG8gc3RybGVuCgl0byBlbGltaW5hdGUgd2FybmluZy4KCSogY29uZmlnL3MzOTAvbGludXguaCAoTURfRkFMTEJBQ0tfRlJBTUVfU1RBVEVfRk9SKTogQWRkIG1pc3NpbmcKCXR5cGUgY2FzdC4KCjIwMDQtMDgtMTkgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAtcHJvdG9zLmggKHByZWZlcnJlZF9sYV9vcGVyYW5kX3ApOiBBZGFwdCBwcm90b3R5cGUuCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAocHJlZmVycmVkX2xhX29wZXJhbmRfcCk6IEFjY2VwdCB0d28gb3BlcmFuZHMKCWluc3RlYWQgb2Ygb25lLiAgQ2hlY2sgZm9yIHN0cmljdGx5IGxlZ2l0aW1hdGUgYWRkcmVzcy4KCSogY29uZmlnL3MzOTAvczM5MC5tZCAoIipsYV8zMSIvIipsYV82NCIgcGVlcGhvbGVzKTogQWRhcHQgY2FsbAoJdG8gcHJlZmVycmVkX2xhX29wZXJhbmRfcCwgZG8gbm90IGNhbGwgZ2VuX3J0eF9QTFVTIGluIHByZWRpY2F0ZS4KCjIwMDQtMDgtMTkgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogbGFuZ2hvb2tzLWRlZi5oIChMQU5HX0hPT0tTX1VOU0FWRV9FWFBSX05PVyk6IFJlbW92ZS4KCSogbGFuZ2hvb2tzLmggKHVuc2F2ZV9leHByX25vdyk6IERpdHRvLgoJKiB0cmVlLmggKHVuc2F2ZV9leHByXzEpOiBSZW1vdmUgcHJvdG90eXBlLgoJKGxoZF91bnNhdmVfZXhwcl9ub3cpOiBSZW5hbWUgdG8gdW5zYXZlX2V4cHJfbm93LgoJKiB0cmVlLWlubGluZS5jICh1bnNhdmVfZXhwcl8xKTogTW92ZSBoZXJlCglmcm9tIHRyZWUuYy4gTWFrZSBzdGF0aWMuCgkodW5zYXZlX2V4cHJfbm93KTogUmVuYW1lIGZyb20gbGhkX3Vuc2F2ZV9leHByX25vdy4KCSogdHJlZS1zcmEuYzogRml4IHVwIGZvciByZW5hbWUuCgkqIHRyZWUtc3NhLWNvcHkuYzogRGl0dG8uCgkqIHRyZWUtZWguYzogRGl0dG8uCgkqIHRyZWUuYyAodW5zYXZlX2V4cHJfMSk6IE1vdmUgdG8gdHJlZS1pbmxpbmUuYy4KCjIwMDQtMDgtMTkgIENhcm9saW5lIFRpY2UgIDxjdGljZUBhcHBsZS5jb20+CgoJKiBjb25maWcvaTM4Ni9jeWdtaW5nLmggKHN3aXRjaF90b19zZWN0aW9uKTogIEZpeCB0eXBvIChjaGFuZ2UKCWluX3VubGlrZWx5X3RleHRfc2VjdGlvbiB0byBpbl91bmxpa2VseV9leGVjdXRlZF90ZXh0KS4KCjIwMDQtMDgtMTkgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogdmVjLmggKFZFQ19sb3dlcl9ib3VuZCk6IE5ldyBtYWNyby4KCjIwMDQtMDgtMTkgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTY0NDYKCSogY29uZmlnL21pcHMvbWlwcy5jIChzdHJ1Y3QgbWlwc19hcmdfaW5mbyk6IERlbGV0ZSBudW1fYnl0ZXMuCgkobWlwc19hcmdfaW5mbyk6IFVwZGF0ZSBhY2NvcmRpbmdseS4gIFJlbW92ZSBjb21tb24gdHJlYXRtZW50IG9mIGZwcl9wOwoJdHJlYXQgZWFjaCBBQkkgc2VwYXJhdGVseS4gIERlYWwgd2l0aCBuMzIvbjY0IGNvbXBsZXggZmxvYXQgYXJndW1lbnRzLgoJKGZ1bmN0aW9uX2FyZyk6IEFkZCBhc3NvY2lhdGVkIGNvbXBsZXggaGFuZGxpbmcgaGVyZS4KCjIwMDQtMDgtMTkgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvYXJtL2FybS5jIChhcm1fZ2VuX2xvYWRfbXVsdGlwbGUpOiBVc2UKCWFkanVzdF9hdXRvbW9kaWZ5X2FkZHJlc3MuICBUYWtlIGJhc2UgbWVtb3J5IGFuZCBvZmZzZXQgaW5zdGVhZAoJb2YgdW5jaGFuZ2luZy9zdHJ1Y3Qvc2NhbGFyIGJpdHMuCgkoYXJtX2dlbl9zdG9yZV9tdWx0aXBsZSk6IExpa2V3aXNlLgoJKGFybV9nZW5fbW92bWVtcWkpOiBVc2UgYWRqdXN0X2F1dG9tb2RpZnlfYWRkcmVzcy4KCSogY29uZmlnL2FybS9hcm0tcHJvdG9zLmg6IFVwZGF0ZSBkZWNscy4KCSogY29uZmlnL2FybS9hcm0ubWQgKGxvYWRfbXVsdGlwbGUpOiBVcGRhdGUgYXJtX2dlbl9sb2FkX211bHRpcGxlIGNhbGwuCgkoc3RvcmVfbXVsdGlwbGUpOiBTaW1pbGFybHkuCgoyMDA0LTA4LTE5ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIHJlZ2NsYXNzLmMgKGdsb2JhbGl6ZV9yZWcpOiBVcGRhdGUgY2FsbF9yZWFsbHlfdXNlZF9yZWdzLgoKMjAwNC0wOC0xOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRvYy9pbnZva2UudGV4aSAoaW50ZWdlci1zaGFyZS1saW1pdCk6IERvY3VtZW50LgoKCSogdHJlZS5oIChUWVBFX0NBQ0hFRF9WQUxVRVNfUCk6IE5ldy4KCShUWVBFX0NBQ0hFRF9WQUxVRVMpOiBOZXcuCgkoVFlQRV9PUklHX1NJWkVfVFlQRSk6IEFkanVzdC4KCSogdHJlZS5kZWYgKElOVEVHRVJfQ1NUKTogVXBkYXRlIGRvY3VtZW50YXRpb24uCgkqIHRyZWUuYzogSW5sY3VkZSBwYXJhbXMuaC4KCShidWlsZF9pbnRfY3N0KTogQ2FjaGUgc21hbGwgdmFsdWVzLgoJKGJ1aWxkX3R5cGVfY29weSk6IERvIG5vdCBjb3B5IHRoZSB2YWx1ZSBjYWNoZS4KCSogYy1jb21tb24uYyAoY19jb21tb25fbm9kZXNfYW5kX2J1aWx0aW5zKTogQWRkIGNvbW1lbnQsIHJlbW92ZQoJdW5uZWVkZWQgemVyb2luZy4KCSogYy10eXBlY2suYyAoYnVpbGRfY19jYXN0KTogQWRkIGNvbW1lbnQgYWJvdXQgT1ZFUkZMT1cgc2V0dGluZy4KCSogZXhwbWVkLmMgKGNvbnN0X211bHRfYWRkX292ZXJmbG93X3ApOiBDbGVhciB0eXBlIGNvcHkncyB2YWx1ZQoJY2FjaGUuCgkqIGZvbGQtY29uc3QuYyAoZm9yY2VfZml0X3R5cGUpOiBDb3B5IHZhbHVlIHdoZW4gc2V0dGluZwoJb3ZlcmZsb3dzLgoJKGludF9jb25zdF9iaW5vcCk6IExpa2V3aXNlLgoJKiBzdG9yLWxheW91dC5jOiBJbmNsdWRlIHBhcmFtcy5oCgkoc2V0X3NpemV0eXBlKTogQ3JlYXRlIHZhbHVlcyBjYWNoZS4KCShmaXh1cF91bnNpZ25lZF90eXBlKTogU2V0IFVOU0lHTkVEX1AgYmVmb3JlIGNhY2hpbmcgYW55IHZhbHVlcy4KCSogcGFyYW1zLmRlZiAoUEFSQU1fSU5URUdFUl9TSEFSRV9MSU1JVCk6IE5ldy4KCSogcGFyYW1zLmggKElOVEVHRVJfU0hBUkVfTElNSVQpOiBOZXcuCgkqIE1ha2VmaWxlLmluICh0cmVlLm8sIHN0b3ItbGF5b3V0Lm8pOiBEZXBlbmQgb24gUEFSQU1TX0guCgoyMDA0LTA4LTE5ICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogZ2ltcGxpZnkuYyAoZ2ltcGxpZnlfbWluaW1heF9leHByKTogUmVtb3ZlLgoJKGdpbXBsaWZ5X2V4cHIpIDxNSU5fRVhQUiwgTUFYX0VYUFI+OiBSZW1vdmUgc3BlY2lhbCBoYW5kbGluZy4KCjIwMDQtMDgtMTkgIERvcml0IE5haXNobG9zICA8ZG9yaXRAaWwuaWJtLmNvbT4KCgkqIHRyZWUtdmVjdG9yaXplci5jICh2ZWN0X2Nhbl9mb3JjZV9kcl9hbGlnbm1lbnRfcCk6IFJlcGxhY2UKCVNUQUNLX0JPVURBUlkgd2l0aCBQUkVGRVJSRURfU1RBQ0tfQk9VTkRBUlkuCgoyMDA0LTA4LTE5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogYnBhYmkuaCAoRlBVVFlQRV9ERUZBVUxUKTogU2V0IGl0IHRvIEZQVVRZUEVfVkZQLgoKMjAwNC0wOC0xOCAgQW5kcmV3IFBpbnNraSAgPGFwaW5za2lAYXBwbGUuY29tPgoKCSogdmFyYXNtLmMgKGVjb2RlX3JlZ19uYW1lKTogRG8gbm90aGluZyBpZiB0aGUgYXNtc3BlYyBpcyBlbXB0eS4KCjIwMDQtMDgtMTggIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvYXJtL2JwYWJpLmMgKF9fYWVhYmlfdWwyZCk6IEdpdmUgaXQgZGVmYXVsdCB2aXNpYmlsaXR5LgoJKF9fYWVhYmlfdWwyZik6IExpa2V3aXNlLgoKMjAwNC0wOC0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy94dGVuc2EveHRlbnNhLmMgKHh0ZW5zYV9leHBhbmRfYmxvY2tfbW92ZSk6IEV4cGFuZCBibG9jawoJbW92ZSB0byBydGwgY29tcGxldGVseS4KCShzdHJ1Y3QgbWVtaW5zbmJ1ZiwgeHRlbnNhX2VtaXRfYmxvY2tfbW92ZSk6IFJlbW92ZS4KCSh4dGVuc2FfZmluZF9tb2RlX2Zvcl9zaXplKTogUmVtb3ZlLgoJKiBjb25maWcveHRlbnNhL3h0ZW5zYS1wcm90b3MuaCAoeHRlbnNhX2VtaXRfYmxvY2tfbW92ZSk6IFJlbW92ZS4KCSogY29uZmlnL3h0ZW5zYS94dGVuc2EubWQgKG1vdm1lbXNpX2ludGVybmFsKTogUmVtb3ZlLgoKMjAwNC0wOC0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9tY29yZS9tY29yZS5jIChtb2RlX2Zyb21fYWxpZ24pOiBSZW1vdmUgREltb2RlLgoJKGJsb2NrX21vdmVfc2VxdWVuY2UpOiBSZXdyaXRlIHRvIHVzZSBhZGp1c3RfYWRkcmVzcy4KCShtY29yZV9leHBhbmRfYmxvY2tfbW92ZSk6IENsZWFudXAgbG9naWMuICBBY2NlcHQgb25seSBvcGVyYW5kcy4KCVJldHVybiBib29sZWFuIGluZGljYXRpbmcgc3VjY2Vzcy9mYWlsdXJlLgoJKiBjb25maWcvbWNvcmUvbWNvcmUtcHJvdG9zLmggKG1jb3JlX2V4cGFuZF9ibG9ja19tb3ZlKTogVXBkYXRlIGRlY2wuCgkqIGNvbmZpZy9tY29yZS9tY29yZS5tZCAobW92bWVtc2kpOiBVcGRhdGUgdG8gbWF0Y2guCgoyMDA0LTA4LTE4ICBNaWtlIFN0dW1wICA8bXJzQGFwcGxlLmNvbT4KCgkqIGRvYy9pbnZva2UudGV4aSAoLW1maXgtYW5kLWNvbnRpbnVlKTogQWRkIHN1cHBvcnQgZm9yCglmYXN0IHR1cm4gYXJvdW5kIGRlYnVnZ2luZy4KCSgtZmZpeC1hbmQtY29udGludWUpOiBMaWtld2lzZS4KCSgtbWluZGlyZWN0LWRhdGEpOiBMaWtld2lzZS4KCSgtZmluZGlyZWN0LWRhdGEpOiBMaWtld2lzZS4KCSogY29uZmlnL2Rhcndpbi5jIChUQVJHRVRfRklYX0FORF9DT05USU5VRSk6IExpa2V3aXNlLgoJKGluZGlyZWN0X2RhdGEpOiBMaWtld2lzZS4KCShtYWNob3BpY19kYXRhX2RlZmluZWRfcCk6IExpa2V3aXNlLgoJKG1hY2hvcGljX291dHB1dF9pbmRpcmVjdGlvbik6IExpa2V3aXNlLgoJKGRhcndpbl9lbmNvZGVfc2VjdGlvbl9pbmZvKTogTGlrZXdpc2UuCgkoZGFyd2luX2ZpeF9hbmRfY29udGludWUpOiBMaWtld2lzZS4KCShkYXJ3aW5fZml4X2FuZF9jb250aW51ZV9zd2l0Y2gpOiBMaWtld2lzZS4KCSogY29uZmlnL2Rhcndpbi5oIChNQUNIT19TWU1CT0xfU1RBVElDKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLmggKFNVQlRBUkdFVF9PVkVSUklERV9PUFRJT05TKTogTGlrZXdpc2UuCgkoU1VCVEFSR0VUX09QVElPTl9UUkFOU0xBVEVfVEFCTEUpOiBMaWtld2lzZS4KCShTVUJUQVJHRVRfT1BUSU9OUyk6IExpa2V3aXNlLgoJKGRhcndpbl9maXhfYW5kX2NvbnRpbnVlKTogTGlrZXdpc2UuCgkoZGFyd2luX2ZpeF9hbmRfY29udGludWVfc3dpdGNoKTogTGlrZXdpc2UuCgkoVEFSR0VUX0ZJWF9BTkRfQ09OVElOVUUpOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC5jIChyczYwMDBfZW1pdF9wcm9sb2d1ZSk6IExpa2V3aXNlLgoKMjAwNC0wOC0xOSAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogYmFzaWMtYmxvY2suaCAoc3RydWN0IGVkZ2VfZGVmKTogUmVtb3ZlIGNyb3NzaW5nX2VkZ2UuCgkoRURHRV9DUk9TU0lORyk6IE5ldyBkZWZpbmUuCgkoRURHRV9BTExfRkxBR1MpOiBVcGRhdGUuCgkqIGJiLXJlb3JkZXIuYyAoZmluZF90cmFjZXNfMV9yb3VuZCwgYmV0dGVyX2VkZ2VfcCwKCWZpbmRfcmFyZWx5X2V4ZWN1dGVkX2Jhc2ljX2Jsb2Nrc19hbmRfY3IsIGZpeF91cF9mYWxsX3RocnVfZWRnZXMsCglmaW5kX2p1bXBfYmxvY2ssIGZpeF9jcm9zc2luZ19jb25kaXRpb25hbF9icmFuY2hlcywKCWZpeF9jcm9zc2luZ191bmNvbmRpdGlvbmFsX2JyYW5jaGVzLCBhZGRfcmVnX2Nyb3NzaW5nX2p1bXBfbm90ZXMpOgoJUmVwbGFjZSBhbGwgb2NjdXJlbmNlcyBvZiBjcm9zc2luZ19lZGdlIHdpdGggYW4gZWRnZSBmbGFnIGNoZWNrCglvciBzZXQvcmVzZXQuCgkqIGNmZ2NsZWFudXAuYyAodHJ5X3NpbXBsaWZ5X2NvbmRqdW1wLCB0cnlfZm9yd2FyZF9lZGdlcywKCXRyeV9jcm9zc2p1bXBfYmIpOiBMaWtld2lzZS4KCSogY2ZnbGF5b3V0LmMgKGZpeHVwX3Jlb3JkZXJfY2hhaW4pOiBMaWtld2lzZS4KCSogY2ZncnRsLmMgKGZvcmNlX25vbmZhbGx0aHJ1X2FuZF9yZWRpcmVjdCwKCWNvbW1pdF9vbmVfZWRnZV9pbnNlcnRpb24pOiBMaWtld2lzZS4KCgkqIE1ha2VmaWxlLmluIChjZmdhbmFsLm8pOiBEZXBlbmQgb24gVElNRVZBUl9ILgoJKiB0cmVlLWZsb3cuaCAoY29tcHV0ZV9kb21pbmFuY2VfZnJvbnRpZXJzKTogTW92ZSBwcm90b3R5cGUuLi4KCSogYmFzaWMtYmxvY2suaDogIC4uLmhlcmUuCgkqIHRyZWUtY2ZnLmMgKGNvbXB1dGVfZG9taW5hbmNlX2Zyb250aWVyc18xLAoJY29tcHV0ZV9kb21pbmFuY2VfZnJvbnRpZXJzKTogTW92ZSBmcm9tIGhlcmUuLi4KCSogY2ZnYW5hbC5jOiAuLi50byBoZXJlLiAgSW5jbHVkZSB0aW1ldmFyLmguCgoyMDA0LTA4LTE4ICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLmggKEFTTV9TUEVDKTogSW4gY29tbWVudCwgY2hhbmdlIC1tZWFiaT0gdG8gLW1hYmk9LgoJKiBjb25maWcvbWlwcy9zYjEubWQgKGlyX3NiMV9kaXZzZl8xcGlwZSk6IFJlbmFtZWQgZnJvbSAuLi4xcGlwZXMuCgoJKiBjb25maWcvbWlwcy9taXBzLm1kICh0eXBlKTogQWRkIGZyZGl2LgoJKGRpdnNmMysxLCBkaXZzZjMrMik6IENoYW5nZSB0eXBlIHRvIGZyZGl2LgoJKiBjb25maWcvbWlwcy9zYjEubWQgKGlyX3NiMV9yZWNpcHNmXzJwaXBlcywgaXJfc2IxX3JlY2lwc2ZfMXBpcGUsCglpcl9zYjFfcmVjaXBkZl8ycGlwZXMsIGlyX3NiMV9yZWNpcGRmXzFwaXBlKTogTmV3LgoKCSogY29uZmlnL21pcHMvMzAwMC5tZCAocjNrX2ZkaXZfc2luZ2xlLCByM2tfZmRpdl9kb3VibGUpOiBBZGQgZnJkaXYuCgkqIGNvbmZpZy9taXBzLzQzMDAubWQgKHI0MzAwX2ZkaXZfc2luZ2xlLCByNDMwMF9mZGl2X2RvdWJsZSk6IExpa2V3aXNlLgoJKiBjb25maWcvbWlwcy80NjAwLm1kIChyNDYwMF9mZGl2X3NpbmdsZSwgZjQ2MDBfZmRpdl9kb3VibGUpOiBMaWtld2lzZS4KCSogY29uZmlnL21pcHMvNTAwMC5tZCAocjVrX2ZkaXZfc2luZ2xlKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9taXBzLzU0MDAubWQgKGlyX3ZyNTRfZmRpdl9zZiwgaXJfdnI1NF9mZGl2X2RmKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9taXBzLzU1MDAubWQgKGlyX3ZyNTVfZmRpdl9zZiwgaXJfdnI1NV9mZGl2X2RmKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9taXBzLzYwMDAubWQgKHI2a19mZGl2X3NpbmdsZSwgcjZrX2ZkaXZfZG91YmxlKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9taXBzLzcwMDAubWQgKHJtN19mcF9kaXZzcXJ0X2RmLCBybTdfZnBfZGl2c3FydF9zZik6IExpa2V3aXNlLgoJKiBjb25maWcvbWlwcy85MDAwLm1kIChybThrX2ZkaXZzLCBybTlrX2ZkaXZkKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9taXBzL2dlbmVyaWMubWQgKGdlbmVyaWNfZmRpdl9zaW5nbGUsIGdlbmVyaWNfZmRpdl9kb3VibGUpOgoJTGlrZXdpc2UuCgkqIGNvbmZpZy9taXBzL3NyNzFrLm1kIChpcl9zcjcwX2ZkaXZfc2YsIGlyX3NyNzBfZmRpdl9kZik6IExpa2V3aXNlLgoKMjAwNC0wOC0xOCAgUm9iZXJ0IEJvd2RpZGdlIDxib3dkaWRnZUBhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL3gtZGFyd2luOiBSZW1vdmUgWENGTEFHUyAtbWR5bmFtaWMtbm8tcGljIHRvCglnZXQgcmVncmVzc2lvbiB0ZXN0ZXIgd29ya2luZyBhZ2Fpbi4KCjIwMDQtMDgtMTggIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBpbnNuLW5vdGVzLmRlZiwgcmVnLW5vdGVzLmRlZjogTmV3IGZpbGVzLgoJKiBydGwuaDogVXNlIHRoZW0gdG8gZGVmaW5lIGVudW0gaW5zbl9ub3RlIGFuZCBlbnVtIHJlZ19ub3RlLgoJKiBydGwuYzogVXNlIHRoZW0gdG8gZGVmaW5lIG5vdGVfaW5zbl9uYW1lIGFuZCByZWdfbm90ZV9uYW1lLgoJKiBNYWtlZmlsZS5pbiAoUlRMX0JBU0VfSCk6IFVwZGF0ZS4KCgkqIG1vZHVsby1zY2hlZC5jLCBzY2hlZC1yZ24uYywgZmluYWwuYzogTk9URV9ESVNBQkxFX1NDSEVEX09GX0JMT0NLCglyZW5hbWVkIHRvIE5PVEVfSU5TTl9ESVNBQkxFX1NDSEVEX09GX0JMT0NLLgoKMjAwNC0wOC0xOCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiBhcm0uYyAoYXJtX3NpemVfcnR4X2Nvc3RzKTogTmV3IGZ1bmN0aW9uLgoJKGFybV9vdmVycmlkZV9vcHRpb25zKTogVXNlIGl0IGlmIG9wdGltaXppbmcgZm9yIHNwYWNlLgoKMjAwNC0wOC0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGVtaXQtcnRsLmMgKGdlbl9jb25zdF9tZW0pOiBOZXcuCgkqIHJ0bC5oIChnZW5fY29uc3RfbWVtKTogRGVjbGFyZS4KCSogZXhwci5jIChkb190YWJsZWp1bXApOiBVc2UgaXQuCgkqIHZhcmFzbS5jIChmb3JjZV9jb25zdF9tZW0pOiBMaWtld2lzZS4KCSogY29uZmlnL2Rhcndpbi5jIChtYWNob3BpY19pbmRpcmVjdF9kYXRhX3JlZmVyZW5jZSk6IExpa2V3aXNlLgoJKG1hY2hvcGljX2xlZ2l0aW1pemVfcGljX2FkZHJlc3MpOiBMaWtld2lzZS4KCSogY29uZmlnL2FybS9hcm0uYyAobGVnaXRpbWl6ZV9waWNfYWRkcmVzcyk6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGxlZ2l0aW1pemVfcGljX2FkZHJlc3MpOiBMaWtld2lzZS4KCShsZWdpdGltaXplX3Rsc19hZGRyZXNzKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoaWE2NF9leHBhbmRfdGxzX2FkZHJlc3MpOiBMaWtld2lzZS4KCSogY29uZmlnL2lhNjQvaWE2NC5tZCAobG9hZF9mcHRyKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9tMzJyL20zMnIuYyAobTMycl9sZWdpdGltaXplX3BpY19hZGRyZXNzKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9wYS9wYS5jIChsZWdpdGltaXplX3BpY19hZGRyZXNzKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9sZWdpdGltaXplX3Rsc19hZGRyZXNzKTogTGlrZXdpc2UuCgkocnM2MDAwX2VtaXRfbW92ZSk6IExpa2V3aXNlLgoJKiBjb25maWcvczM5MC9zMzkwLmMgKGxlZ2l0aW1pemVfcGljX2FkZHJlc3MpOiBMaWtld2lzZS4KCShsZWdpdGltaXplX3Rsc19hZGRyZXNzKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zMzkwL3MzOTAubWQgKGNhc2VzaSk6IExpa2V3aXNlLgoJKiBjb25maWcvc2gvc2guYyAoc2hfcmVvcmcpOiBMaWtld2lzZS4KCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKGxlZ2l0aW1pemVfcGljX2FkZHJlc3MpOiBMaWtld2lzZS4KCSogY29uZmlnL3Y4NTAvdjg1MC5tZCAoY2FzZXNpKTogTGlrZXdpc2UuCgoJKiBjb25maWcvZGFyd2luLmMgKG1hY2hvcGljX2luZGlyZWN0X2NhbGxfdGFyZ2V0KTogU2V0IE1FTV9OT1RSQVBfUC4KCSogY29uZmlnL3NoL3NoLmMgKHByZXBhcmVfbW92ZV9vcGVyYW5kcyk6IFJlbW92ZSBpbmNvcnJlY3QKCXVzZSBvZiBNRU1fUkVBRE9OTFlfUC4KCjIwMDQtMDgtMTggIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIE1ha2VmaWxlLmluIChPQkpTLWNvbW1vbik6IEFkZCBwb3N0cmVsb2FkLWdjc2UuYy4KCUFkZCBuZXcgcG9zdHJlbG9hZC1nY3NlLm8uCgkqIGNzZS5jIChTQUZFX0hBU0gpOiBEZWZpbmUgYXMgd3JhcHBlciBhcm91bmQgc2FmZV9oYXNoLgoJKGxvb2t1cF9hc19mdW5jdGlvbiwgaW5zZXJ0LCByZWhhc2hfdXNpbmdfcmVnLCB1c2VfcmVsYXRlZF92YWx1ZSwKCWVxdWl2X2NvbnN0YW50KTogVXNlIFNBRkVfSEFTSCBpbnN0ZWFkIG9mIHNhZmVfaGFzaC4KCShleHBfZXF1aXZfcCk6IEV4cG9ydC4gIEFkZCBmb3JfZ2NzZSBhcmd1bWVudCB3aGVuIGNvbXBhcmluZwoJZm9yIEdDU0UuCgkobG9va3VwLCBsb29rdXBfZm9yX3JlbW92ZSwgbWVyZ2VfZXF1aXZfY2xhc3NlcywgZmluZF9iZXN0X2FkZHIsCglmaW5kX2NvbXBhcmlzb25fYXJncywgZm9sZF9ydHgsIGNzZV9pbnNuKTogVXBkYXRlIGNhbGxlcnMuCgkoaGFzaF9ydHgpOiBOZXcgZnVuY3Rpb24gZGVyaXZlZCBmcm9tIG9sZCBjYW5vbl9oYXNoIGFuZCBiaXRzCglmcm9tIGdjc2UuYyBoYXNoX2V4cHJfMS4KCShjYW5vbl9oYXNoX3N0cmluZyk6IFJlbmFtZSB0byBoYXNoX3J0eF9zdHJpbmcuCgkoY2Fub25faGFzaCwgc2FmZV9oYXNoKTogTWFrZSBzdGF0aWMgaW5saW5lLiAgQ2FsbCBoYXNoX3J0eC4KCSogY3NlbGliLmMgKGhhc2hfcnR4KTogUmVuYW1lIHRvIGNzZWxpYl9oYXNoX3J0eC4KCShjc2VsaWJfbG9va3VwKTogVXBkYXRlIHRoaXMgY2FsbGVyLgoJKiBnY3NlLmMgKG1vZGlmeV9tZW1fbGlzdF9zZXQsIGNhbm9uX21vZGlmeV9tZW1fbGlzdF9zZXQpOgoJTWFrZSBzdGF0aWMuCgkoaGFzaF9leHByKTogQ2FsbCBoYXNoX3J0eC4KCShsZHN0X2VudHJ5KTogTGlrZXdpc2UuCgkoZXhwcl9lcXVpdl9wKTogQ2FsbCBleHBfZXF1aXZfcC4KCShzdHJ1Y3QgdW5vY2NyLCBoYXNoX2V4cHJfMSwgaGFzaF9zdHJpbmdfMSwgbG9va3VwX2V4cHIsCglyZWdfdXNlZF9vbl9lZGdlLCByZWdfc2V0X2JldHdlZW5fYWZ0ZXJfcmVsb2FkX3AsCglyZWdfdXNlZF9iZXR3ZWVuX2FmdGVyX3JlbG9hZF9wLCBnZXRfYXZhaWxfbG9hZF9zdG9yZV9yZWcsCglpc19qdW1wX3RhYmxlX2Jhc2ljX2Jsb2NrLCBiYl9oYXNfd2VsbF9iZWhhdmVkX3ByZWRlY2Vzc29ycywKCWdldF9iYl9hdmFpbF9pbnNuLCBoYXNoX3NjYW5fc2V0X2FmdGVyX3JlbG9hZCwKCWNvbXB1dGVfaGFzaF90YWJsZV9hZnRlcl9yZWxvYWQsCgllbGltaW5hdGVfcGFydGlhbGx5X3JlZHVuZGFudF9sb2FkcywgZ2NzZV9hZnRlcl9yZWxvYWQsCglnZXRfYmJfYXZhaWxfaW5zbiwgZ2NzZV9hZnRlcl9yZWxvYWRfbWFpbik6IFJlbW92ZS4KCSogcG9zdHJlbG9hZC1nY3NlLmM6IE5ldyBmaWxlLCByZWluY2FybmF0aW5nIG1vc3Qgb2YgdGhlIGFib3ZlLgoJKiBydGwuaCAoZXhwX2VxdWl2X3AsIGhhc2hfcnR4KTogTmV3IHByb3RvdHlwZXMuCgkoZ2NzZV9hZnRlcl9yZWxvYWRfbWFpbik6IFVwZGF0ZSBwcm90b3R5cGUuCgkqIHRpbWV2YXIuZGVmIChUVl9HQ1NFX0FGVEVSX1JFTE9BRCk6IE5ldyB0aW1ldmFyLgoJKiBwYXNzZXMuYyAocmVzdF9vZl9oYW5kbGVfZ2NzZTIpOiBVc2UgaXQuCgoyMDA0LTA4LTE4ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWxvb3AuYyAocGFzc19sb29wX2luaXQpOiBBZGQgVE9ET19kdW1wX2Z1bmMuCgkocGFzc19sb29wX2RvbmUpOiBMaWtld2lzZS4KCjIwMDQtMDgtMTggIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLm1kOiBEZWxldGUgdGhlIGFsdGl2ZWMgcGF0dGVybnMgd2hpY2ggYXJlCgloYW5kbGVkIGRpZmZlcmVudGx5IG5vdy4KCShsb2FkX21hY2hvX3BpY2Jhc2VfZGkpOiBNYWtlIHN1cmUgdGhhdCBpcyBvbmx5IGhhcHBlbnMgZm9yIFRBUkdFVF82NEJJVAoJKG1hY2hvX2NvcnJlY3RfcGljX2RpKTogTGlrZXdpc2UuCgkoY2FsbF9pbmRpcmVjdF9ub25sb2NhbF9kYXJ3aW42NCk6IExpa2V3aXNlLgoJRGVsZXRlIHRoZSBzYXZlIHdvcmxkL3NhdmVGUC9zYXZlVmVjIHBhdHRlcm5zLgoKCVJldmVydCB0aGUgcmV2ZXJzaW9uIG9mOiAyMDA0LTA4LTE2ICBTdGFuIFNoZWJzICA8c2hlYnNAYXBwbGUuY29tPgoJKiBjb25maWcvZGFyd2luLmMgKG1hY2hvX2luZGlyZWN0X2RhdGFfcmVmZXJlbmNlKTogQWRkIERJbW9kZSBjYXNlLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZDogSW5jbHVkZSBkYXJ3aW4ubWQuCgkoYnVpbHRpbl9zZXRqbXBfcmVjZWl2ZXIpOiBBZGQgREltb2RlIGNhc2UuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9lbWl0X21vdmUpOiBBZGQgREltb2RlIGNhc2UgdG8KCURhcndpbiBiaXRzLgoKMjAwNC0wOC0xOCAgTWF0dCBBdXN0ZXJuICA8YXVzdGVybkBhcHBsZS5jb20+CgoJRGVhZCBjb2RlIHN0cmlwcGluZwoJKiBkYXJ3aW4uaCAoRUhfRlJBTUVfU0VDVElPTl9BVFRSKTogTWFyayBzbyBpdCBkb2Vzbid0IGdldCBzdHJpcHBlZC4KCSogZGFyd2luLmMgKGRhcndpbl9maWxlX2VuZCk6IE1hcmsgZmlsZSBhcyBwb3RlbnRpYWxseSBzdHJpcHBhYmxlLgoKMjAwNC0wOC0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGFsaWFzLmMgKHJlYWRvbmx5X2ZpZWxkc19wKTogUmVtb3ZlLgoJKG9iamVjdHNfbXVzdF9jb25mbGljdF9wKTogRG9uJ3QgY2FsbCBpdC4KCSogdHJlZS5oIChyZWFkb25seV9maWVsZHNfcCk6IFJlbW92ZS4KCSogbGFuZ2hvb2tzLmggKHN0cnVjdCBsYW5nX2hvb2tzKTogUmVtb3ZlIGhvbm9yX3JlYWRvbmx5LgoJKiBsYW5naG9va3MtZGVmLmggKExBTkdfSE9PS1NfSE9OT1JfUkVBRE9OTFkpOiBSZW1vdmUuCgoyMDA0LTA4LTE4ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIHRyZWUtZGZhLmMgKGFkZF9yZWZlcmVuY2VkX3Zhcik6IE9ubHkgZ2xvYmFsIHZhcmlhYmxlcyBhcmUKCWNhbGwtY2xvYmJlcmVkLgoJKiB0cmVlLWZsb3cuaCAoc3RydWN0IHB0cl9pbmZvX2RlZik6IEFkZCBmaWVsZCBwdF9nbG9iYWxfbWVtLgoJKiB0cmVlLXNzYS1hbGlhcy5jIChjb21wdXRlX3BvaW50c190b19hbmRfYWRkcl9lc2NhcGUpOiBNYXJrCglhbGwgcG9pbnRlcnMgZGVyZWZlcmVuY2VkIGlmIHRoZSBzdGF0ZW1lbnQgZGVyZWZlcmVuY2VzIHRoZW0uCgkoY3JlYXRlX25hbWVfdGFncyk6IERvIG5vdCBjcmVhdGUgbWVtb3J5IHRhZ3MgZm9yIHBvaW50ZXJzCgl0aGF0IGhhdmUgUFRfQU5ZVEhJTkcgc2V0LgoJQWxzbyBjaGVjayBpZiBQVF9WQVJTIGlzIG5vdCBlbXB0eSBiZWZvcmUgY3JlYXRpbmcgYSBuYW1lIHRhZy4KCShjb21wdXRlX2Zsb3dfc2Vuc2l0aXZlX2FsaWFzaW5nKTogRG9uJ3QgbWFyayBjYWxsLWNsb2JiZXJlZAoJdmFyaWFibGVzIHRoYXQgc2hhcmUgdGhlIHNhbWUgYWxpYXMgc2V0IHdpdGggYSBwb2ludGVyIHRoYXQKCW1heSBwb2ludCBhbnl3aGVyZS4KCShhZGRfbWF5X2FsaWFzKTogQWRkIEZJWE1FIGNvbW1lbnQgdG8gcmVtb3ZlIGNsb2JiZXJpbmcKCWFsaWFzZWQgdmFyaWFibGVzIGFuZCB0YWdzLgoJKHJlcGxhY2VfbWF5X2FsaWFzKTogTGlrZXdpc2UuCgkoc2V0X3B0X2FueXRoaW5nKTogRG8gbm90IGNsZWFyIFBUX1ZBUlMgbm9yIElTX0RFUkVGRVJFTkNFRC4KCShtZXJnZV9wb2ludGVkX3RvX2luZm8pOiBJZiB0aGUgb3JpZ2luYWwgdmFyaWFibGUgaGFzIG5vdAoJcG9pbnRzLXRvIGluZm9ybWF0aW9uLCBjYWxsIHNldF9wdF9hbnl0aGluZy4KCShhZGRfcG9pbnRlZF90b192YXIpOiBEbyBub3QgcHJldmVudCBhZGRpbmcgYSBwb2ludGVkLXRvCgl2YXJpYWJsZSBpZiB0aGUgcG9pbnRlcnMgaXMgUFRfQU5ZVEhJTkcuCglJZiB0aGUgdmFyaWFibGUgaXMgYSBnbG9iYWwsIHNldCBQVF9HTE9CQUxfTUVNLgoJKGNvbGxlY3RfcG9pbnRzX3RvX2luZm9fcik6IERvbid0IGFzc3VtZSB0aGF0IFBMVVNfRVhQUnMgb2YKCXBvaW50ZXIgdHlwZSBvbmx5IGNvbWUgaW4gUFRSK09GRlNFVCBmbGF2b3Vycy4KCUFsd2F5cyBjYWxsIG1lcmdlX3BvaW50ZWRfdG9faW5mbyBvbiBQSEkgYXJndW1lbnRzIHRoYXQgYXJlCglTU0FfTkFNRXMuCgkoZ2V0X25tdF9mb3IpOiBNYXJrIGNhbGwtY2xvYmJlcmVkIHRhZ3Mgd2hvc2UgcG9pbnRlciBwb2ludHMKCXRvIGdsb2JhbCBtZW1vcnkuCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKG9wZl9raWxsX2RlZiwgb3BmX25vX3ZvcHMpOiBTd2l0Y2gKCXZhbHVlcy4KCShnZXRfaW5kaXJlY3RfcmVmX29wZXJhbmRzKTogQWx3YXlzIGNsZWFyIE9QRl9LSUxMX0RFRiBmcm9tCglGTEFHUy4KCShhZGRfc3RtdF9vcGVyYW5kKTogQWJvcnQgaWYgdGhlIGNhbGxlciB0cmllZCB0byBhZGQgYSBraWxsaW5nCglkZWZpbml0aW9uIGZvciBhIG1lbW9yeSB0YWcuCgkqIHRyZWUtc3NhLmMgKHZlcmlmeV9mbG93X3NlbnNpdGl2ZV9hbGlhc19pbmZvKTogUmVtb3ZlCgl1bm5lY2Vzc2FyeSBjaGVja3MuCgoyMDA0LTA4LTE4ICBKIm9ybiBSZW5uZWNrZSA8am9lcm4ucmVubmVja2VAc3VwZXJoLmNvbT4KCgkqIHNoLmggKENPTkRJVElPTkFMX1JFR0lTVEVSX1VTQUdFKTogRG9uJ3QgZXhjbHVkZSBmaXhlZCByZWdpc3RlcnMKCWZyb20gY2FsbF91c2VkX3JlZ3MuICBVcGRhdGUgY2FsbF9yZWFsbHlfdXNlZF9yZWdzLgoJKENBTExfUkVBTExZX1VTRURfUkVHSVNURVJTKTogRGVmaW5lLgoJKiBzaC5jIChvdXRwdXRfc3RhY2tfYWRqdXN0LCBzaG1lZGlhX3RhcmdldF9yZWdzX3N0YWNrX3NwYWNlKToKCVJlcGxhY2UgY2FsbF91c2VkX3JlZ3Mgd2l0aCBjYWxsX3JlYWxseV91c2VkX3JlZ3MuCgkoY2FsY19saXZlX3JlZ3MsIHNoX21lZGlhX3JlZ2lzdGVyX2Zvcl9yZXR1cm4pOiBMaWtld2lzZS4KCShzaDVfc2NoZWR1bGVfc2F2ZXMsIHNoX2V4cGFuZF9wcm9sb2d1ZSwgcmVnX3VudXNlZF9hZnRlcik6IExpa2V3aXNlLgoJKiBzaC5tZCAocmV0dXJuX21lZGlhKTogTGlrZXdpc2UuCgoyMDA0LTA4LTE4ICBBbmRyZXcgUGluc2tpICA8YXBpbnNraUBhcHBsZS5jb20+CgoJKiBjb25maWcvZGFyd2luLmMgKG1hY2hvcGljX2xlZ2l0aW1pemVfcGljX2FkZHJlc3MpOiBPbmx5IHNldAoJTUVNX1JFQURPTkxZX1AgaW4gdGhlIG5vbiBUQVJHRVRfVE9DIGNhc2UuCgoyMDA0LTA4LTE4ICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogcnRsLmRlZiAoTklMKTogRGVsZXRlLgoJKiByZWFkLXJ0bC5jIChyZWFkX3J0eCk6IEhhbmRsZSAobmlsKSBsaWtlIChkZWZpbmVfY29uc3RhbnRzKS4KCVRpZ2h0ZW4gdGhlIHN5bnRheCBhIGxpdHRsZS4KCgkqIGNmZ2xvb3AuaCwgY29tYmluZS5jLCBjc2UuYywgbG9vcC1pdi5jLCBwb3N0cmVsb2FkLmMsIHJlbG9hZC5jCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5jLCBjb25maWcvYWxwaGEvYWxwaGEuaCwgY29uZmlnL2FyYy9hcmMuaAoJKiBjb25maWcvYXJtL2FybS5oLCBjb25maWcvZnJ2L2Zydi5oLCBjb25maWcvaTM4Ni9pMzg2LmMKCSogY29uZmlnL2kzODYvcHJlZGljYXRlcy5tZCwgY29uZmlnL20zMnIvbTMyci5oCgkqIGNvbmZpZy9tNjhoYzExL202OGhjMTEuYywgY29uZmlnL21jb3JlL21jb3JlLmgsIGNvbmZpZy9taXBzL21pcHMuYwoJKiBjb25maWcvbW1peC9tbWl4LmMsIGNvbmZpZy9wYS9wYS5oLCBjb25maWcvc2gvc2guaAoJKiBjb25maWcvc3BhcmMvc3BhcmMuaCwgZG9jL3RtLnRleGk6CglSZXBsYWNlIGFsbCBvY2N1cnJlbmNlcyBvZiBOSUwgd2l0aCBVTktOT1dOLgoKMjAwNC0wOC0xOCAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGRvanVtcC5jIChkb19qdW1wIDx1bm9yZGVyZWRfYmNjPik6IERvIG5vdCByZWN1cnNpdmVseSBjYWxsCglzZWxmIHdpdGggYSBUUlVUSF9PUklGX0VYUFI7IGdlbmVyYXRlIHRoZSBhcHByb3ByaWF0ZSBqdW1wCglzZXF1ZW5jZSBpbmxpbmUuICBNb3ZlIGRyb3BfdGhyb3VnaF9sYWJlbCBjb2RlIGludG8gdGhpcwoJYmxvY2ssIGJlaW5nIHRoZSBvbmx5IHBsYWNlIGl0IGlzIHVzZWQuICBBZGp1c3QgY29tbWVudHMuCgoyMDA0LTA4LTE4ICBGYXJpYm9yeiBKYWhhbmlhbiA8ZmphaGFuaWFuQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvYWx0aXZlYy5tZDogQWRkIG5ldyBwYXR0ZXJucyBmb3IgY2FsbHMgdG8KCXNhdmVfd29ybGQvcmVzdF93b3JsZCBmdW5jdGlvbnMuCgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC1wcm90b3MuaDogKHNhdmVfd29ybGRfb3BlcmF0aW9uLAoJcmVzdG9yZV93b3JsZF9vcGVyYXRpb24pIG5ldyBkZWNsYXJhdGlvbnMuCgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jOiAoc3RydWN0IHJzNjAwMF9zdGFjaykgbmV3IHdvcmxkX3NhdmVfcAoJZmllbGQgYWRkZWQuCgkocnM2MDAwX3N0YWNrX2luZm8pOiBTZXQgd29ybGRfc2F2ZV9wIGZpZWxkLgoJKHNhdmVfd29ybGRfb3BlcmF0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKHJlc3RvcmVfd29ybGRfb3BlcmF0aW9uKTogTmV3IGZ1bmN0aW9uLgoJKGNvbXB1dGVfc2F2ZV93b3JsZF9pbmZvKTogTmV3IGZ1bmN0aW9uLgoJKHJzNjAwMF9zdGFja19pbmZvKTogQ2FsbCBjb21wdXRlX3NhdmVfd29ybGRfaW5mby4KCShyczYwMDBfZW1pdF9wcm9sb2d1ZSk6IENoZWNrIGZvciB3b3JsZF9zYXZlX3AgYW5kIGdlbmVyYXRlCglwYXR0ZXJuIHRvIGNhbGwgc2F2ZV93b3JsZCBmb3Igc2F2aW5nIGFsbCBub24tdm9sYXRpbGUgYW5kCglzcGVjaWFsIHJlZ2lzdGVycy4KCShyczYwMDBfZW1pdF9lcGlsb2d1ZSk6IENoZWNrIGZvciB3b3JsZF9zYXZlX3AgYW5kIGdlbmVyYXRlCglwYXR0ZXJuIHRvIGNhbGwgcmVzdF93b3JsZCB0byByZXN0b3JlIHNhdmVkIHJlZ2lzdGVycy4KCgljb25maWcvcnM2MDAwL3JzNjAwMC5oOiBtYWNyb3MgRklSU1RfU0FWRURfQUxUSVZFQ19SRUdOTywKCUZJUlNUX1NBVkVEX0ZQX1JFR05PLCBGSVJTVF9TQVZFRF9HUF9SRUdOTyBkZWZpbmVkLgoJKHJzNjAwMF9yZWdfbmFtZXMpOiBOZXcgZW50cmllcyBhZGRlZCBmb3Igc2F2ZV93b3JsZF9vcGVyYXRpb24gYW5kCglyZXN0b3JlX3dvcmxkX29wZXJhdGlvbi4KCjIwMDQtMDgtMTggIENhcm9saW5lIFRpY2UgIDxjdGljZUBhcHBsZS5jb20+CgoJKiBNYWtlZmlsZS5pbiAoU1RBR0VGRUVEQkFDS19GTEFHU19UT19QQVNTKSBBZGQKCSItZnJlb3JkZXItYmxvY2tzLWFuZC1wYXJ0aXRpb24iIHRvIHRoZSBmbGFncyB1c2VkIGluIHNlY29uZAoJc3RhZ2Ugb2YgcHJvZmlsZWRib290c3RyYXAuCgkqIGJiLXJlb3JkZXIuYyAocHVzaF90b19uZXh0X3JvdW5kX3ApOiBBZGQgbmV3IHZhcmlhYmxlLAoJbmV4dF9yb3VuZF9pc19sYXN0OyBzZXQgYW5kIHVzZSB2YXJpYWJsZSB0byBtYWtlIHN1cmUsIHdoZW4KCXBhcnRpdGlvbmluZywgdGhhdCB0aGUgbGFzdCB0cmFjZSBjb25zdHJ1Y3Rpb24gcm91bmQgY29uc2lzdHMKCW9mIGFsbCAoYW5kIG9ubHkpIGNvbGQgYmFzaWMgYmxvY2tzLgoJKHJvdGF0ZV9sb29wKTogRG9uJ3QgY29weSBibG9ja3MgdGhhdCBlbmQgaW4gYSBzZWN0aW9uCgljcm9zc2luZyBqdW1wLgoJKGNvcHlfYmIpOiBDb3JyZWN0bHkgaW5pdGlhbGl6ZSAicGFydGl0aW9uIiBvZiBkdXBsaWNhdGVkIGJiLgoJKGFkZF91bmxpa2VseV9leGVjdXRlZF9ub3Rlcyk6IEFkZCBhIGNvbW1lbnQuCgkoZmluZF9yYXJlbHlfZXhlY3V0ZWRfYmFzaWNfYmxvY2tzX2FuZF9jcm9zc2luZ19lZGdlcyk6IE1vZGlmeQoJdG8gbWFrZSBzdXJlLCBpZiBmdW5jdGlvbiBjb250YWlucyBob3QgYmxvY2tzLCB0aGF0IHRoZQoJc3VjY2Vzc29ycyBvZiBFTlRSWV9CTE9DS19QVFIgYXJlIGhvdDsgYWxzbywgb25seSBsb29rIGZvcgoJY3Jvc3NpbmcgZWRnZXMgaWYgdGhlIGFyY2hpdGVjdHVyZSBzdXBwb3J0cyBuYW1lZCBzZWN0aW9ucy4KCShtYXJrX2JiX2Zvcl91bmxpa2VseV9leGVjdXRlZF9zZWN0aW9uKTogTW9kaWZ5IHRvIGFsd2F5cwoJaW5zZXJ0IHRoZSBOT1RFX0lOU05fVU5MSUtFTFlfRVhFQ1VURURfQ09ERSBpbW1lZGlhdGVseSBhZnRlcgoJdGhlIGJhc2ljIGJsb2NrIG5vdGUgaW5zbi4KCShmaXhfY3Jvc3NpbmdfdW5jb25kaXRpb25hbF9icmFuY2hlcyk6IFJlbW92ZSBleHRyYSBzcGFjZS4KCShmaXhfZWRnZXNfZm9yX3JhcmVseV9leGVjdXRlZF9jb2RlKTogTW9kaWZ5IHRvIG9ubHkgZG8KCXBhcnRpdGlvbmluZyB3b3JrIGlmIHRoZSBhcmNoaXRlY3R1cmUgc3VwcG9ydHMgbmFtZWQgc2VjdGlvbnMuCgkocmVvcmRlcl9iYXNpY19ibG9ja3MpOiBNb2RpZnkgdG8gb25seSBhZGQKCU5PVEVfSU5TTl9VTkxJS0VMWV9FWEVDVVRFRF9DT0RFIG5vdGVzIGlmIHRoZSBhcmNoaXRlY3R1cmUKCXN1cHBvcnRzIG5hbWVkIHNlY3Rpb25zLgoJKiBjLWNvbW1vbi5jIChoYW5kbGVfc2VjdGlvbl9hdHRyaWJ1dGUpOiBJbml0aWFsaXplIG5ldyBnbG9iYWwKCXZhcmlhYmxlLCB1c2VyX2RlZmluZWRfc2VjdGlvbl9hdHRyaWJ1dGUsIHRvIHRydWUgaWYgdXNlciBoYXMKCXNwZWNpZmllZCBvbmUuCgkqIGNmZ2NsZWFudXAuYyAodHJ5X2ZvcndhcmRfZWRnZXMpOiBNb2RpZnkgdG8gbm90IGF0dGVtcHQgdG8KCWZvcndhcmQgZWRnZXMgdGhhdCBjcm9zcyBzZWN0aW9uIGJvdW5kYXJpZXMuCgkqIGNmZ2xheW91dC5jIChmaXh1cF9yZW9yZGVyX2NoYWluKTogTW9kaWZ5IHRvIG9ubHkgZml4IHVwCglwYXJ0aXRpb25pbmcgaW5mb3JtYXRpb24gaWYgdGhlIGFyY2hpdGVjdHVyZSBzdXBwb3J0cyBuYW1lZAoJc2VjdGlvbnMuCgkqIGNmZ3J0bC5jICh0YXJnZXQuaCk6IEFkZCBzdGF0ZW1lbnQgdG8gaW5jbHVkZSB0aGlzLgoJKHJ0bF9zcGxpdF9ibG9jayk6IE1ha2Ugc3VyZSBuZXdseSBjcmVhdGVkIGJiIGdldHMgY29ycmVjdAoJcGFydGl0aW9uLgoJKHRyeV9yZWRpcmVjdF9ieV9yZXBsYWNpbmdfanVtcCk6IE1ha2Ugc3VyZSByZWRpcmVjdGlvbiBpc24ndAoJYXR0ZW1wdGluZyB0byBjcm9zcyBzZWN0aW9uIGJvdW5kYXJpZXMuCgkoZm9yY2Vfbm9uZmFsbHRocnVfYW5kX3JlZGlyZWN0KTogT25seSBkbyBwYXJ0aXRpb24gZml4IHVwIGlmCglhcmNoaXRlY3R1cmUgc3VwcG9ydHMgbmFtZWQgc2VjdGlvbnMuCgkocnRsX3NwbGl0X2VkZ2UpOiBNYWtlIHN1cmUgbmV3bHkgY3JlYXRlZCBiYiBlbmRzIHVwIGluCgljb3JyZWN0IHBhcnRpdGlvbi4KCShjb21taXRfb25lX2VkZ2VfaW5zZXJ0aW9uKTogUmVtb3ZlIGNvZGUgdGhhdCBpbmNvcnJlY3RseQoJdXBkYXRlZCBiYXNpYyBibG9jayBwYXJ0aXRpb247IE1ha2Ugc3VyZSBwYXJ0aXRpb24gZml4IHVwIG9ubHkKCWhhcHBlbnMgaWYgYXJjaGl0ZWN0dXJlIHN1cHBvcnRzIG5hbWVkIHNlY3Rpb25zIGFuZCBpdCdzIG5vdAoJYWxyZWFkeSBkb25lLgoJKHJ0bF92ZXJpZnlfZmxvd19pbmZvXzEpOiBGaXggaWYtY29uZGl0aW9uIG9uIHRlc3QvZXJyb3IKCWNvbmRpdGlvbiB0aGF0IGZhbGx0aHJ1IGVkZ2VzIGFyZSBub3QgYWxsb3dlZCB0byBjcm9zcyBzZWN0aW9uCglib3VuZGFyaWVzLgoJKiBkZWZhdWx0cy5oIChOT1JNQUxfVEVYVF9TRUNUSU9OX05BTUUpOiBSZW1vdmUgdGhpcy4KCSogZmluYWwuYyAoZmluYWxfc2Nhbl9pbnNuKTogUmVtb3ZlIHJlZHVuZGFudCB0ZXN0IGZyb20gaWYtc3RhdGVtZW50OwoJY2hhbmdlIGNhbGxzIHRvIHRleHRfc2VjdGlvbiBpbnRvIGNhbGxzIHRvIGZ1bmN0aW9uX3NlY3Rpb247IGFkZCBjb2RlCgl0byBvbmx5IHRvIHBhcnRpdGlvbmluZyBmaXggdXAgaWYgYXJjaGl0ZWN0dXJlIHN1cHBvcnRzIG5hbWVkCglzZWN0aW9ucy4KCSogaWZjdnQuYyAoZmluZF9pZl9jYXNlXzEpOiBNYWtlIHN1cmUgbmV3bHkgY3JlYXRlZCBiYiBoYXMgY29ycmVjdAoJcGFydGl0aW9uLgoJKGlmX2NvbnZlcnQpOiBBZGQgdGFyZ2V0bS5oYXZlX25hbWVkX3NlY3Rpb25zIHRvIHRlc3QuCgkqIG91dHB1dC5oICh1bmxpa2VseV9zZWN0aW9uX2xhYmVsKTogRXh0ZXJuIGRlY2xhcmF0aW9uIGZvciBuZXcgZ2xvYmFsCgl2YXJpYWJsZS4KCSh1bmxpa2VseV90ZXh0X3NlY3Rpb25fbmFtZSk6IExpa2V3aXNlLgoJKiBvcHRzLmMgKGRlY29kZV9vcHRpb25zKTogSWYgYm90aCBwYXJ0aXRpb25pbmcgYW5kIERXQVJGIGRlYnVnZ2luZwoJYXJlIHR1cm5lZCBvbiwgaXNzdWUgYSB3YXJuaW5nIHRoYXQgdGhpcyBkb2Vzbid0IHdvcmssIGFuZCBjaGFuZ2UKCXBhcnRpdGlvbmcgdG8gYmFzaWMgYmxvY2sgcmVvcmRlcmluZyAod2l0aG91dCBob3QvY29sZCBwYXJ0aXRpb25zKS4KCSogcGFzc2VzLmMgKHJlc3Rfb2ZfaGFuZGxlX2ZpbmFsKTogUmUtc2V0IG5ldyBnbG9iYWwgdmFyaWFibGUsCgl1c2VyX2RlZmluZWRfc2VjdGlvbl9hdHRyaWJ1dGUsIHRvIGZhbHNlLgoJKHJlc3Rfb2ZfY29tcGlsYXRpb24pOiBDaGFuZ2Ugb3B0aW9ucyBmb3IgY2FsbGluZyBwYXJ0aXRpb25pbmcKCWZ1bmN0aW9uOiBEb24ndCBjYWxsIGlmIHRoZSB1c2VyIGRlZmluZWQgdGhlIHNlY3Rpb24gYXR0cmlidXRlLCBhbmQKCWRvbid0IGNhbGwgaWYgREVDTF9PTkVfT05MWSBpcyB0cnVlIGZvciB0aGUgY3VycmVudCBmdW5jdGlvbi4KCSogcHJlZGljdC5jIChjaG9vc2VfZnVuY3Rpb25fc2VjdGlvbik6IFJldHVybiBpbW1lZGlhdGVseSBpZiB3ZQoJYXJlIGRvaW5nIGhvdC9jb2xkIHBhcnRpdGlvbmluZyAoaS5lLiBsZXQgdGhlIGJhc2ljIGJsb2NrIHBhcnRpdGlvbmluZwoJZGV0ZXJtaW5lIHdoZXJlIHRoZSBmdW5jdGlvbiBiZWxvbmdzKS4KCSogcmVnLXN0YWNrLmMgKGVtaXRfc3dhcF9pbnNuKTogQWRkIGNvbmRpdGlvbiB0byBzdGVwIG92ZXIKCU5PVEVfSU5TTl9VTkxJS0VMWV9FWEVDVVRFRF9DT0RFIG5vdGVzLgoJKiB0b3BsZXYuYyAodXNlcl9kZWZpbmVkX3NlY3Rpb25fYXR0cmlidXRlKTogTmV3IGdsb2JhbCB2YXJpYWJsZS4KCSogdG9wbGV2LmggKHVzZXJfZGVmaW5lZF9zZWN0aW9uX2F0dHJpYnV0ZSk6IEV4dGVybiBkZWNsYXJhdGlvbgoJZm9yIG5ldyBnbG9iYWwgdmFyaWFibGUuCgkqIHZhcmFzbS5jICh1bmxpa2VseV9zZWN0aW9uX2xhYmVsKTogTmV3IGdsb2JhbCB2YXJpYWJsZS4KCSh1bmxpa2VseV90ZXh0X3NlY3Rpb25fbmFtZSk6IE5ldyBnbG9iYWwgdmFyaWFibGUuCgkodW5saWtlbHlfdGV4dF9zZWN0aW9uKTogQWRkIGNvZGUgdG8gaW5pdGlhbGl6ZQoJdW5saWtlbHlfdGV4dF9zZWN0aW9uX25hbWUgaWYgbmVjZXNzYXJ5OyBtb2RpZnkgdG8gdXNlCgl1bmxpa2VseV90ZXh0X3NlY3Rpb25fbmFtZSBhbmQgdW5saWtlbHlfc2VjdGlvbl9sYWJlbDsgYWxzbyB0byB1c2UKCW5hbWVkX3NlY3Rpb24gcHJvcGVybHkuCgkoaW5fdW5saWtlbHlfdGV4dF9zZWN0aW9uKTogIE1vZGlmeSB0byB3b3JrIGNvcnJlY3RseSB3aXRoCgluYW1lZF9zZWN0aW9uIGFuZCB0byB1c2UgdW5saWtlbHlfdGV4dF9zZWN0aW9uX25hbWUuCgkobmFtZWRfc2VjdGlvbik6ICBBZGQgY29kZSB0byB3b3JrIHByb3Blcmx5IHdpdGggY29sZCBzZWN0aW9uLgoJKGZ1bmN0aW9uX3NlY3Rpb24pOiBDbGVhbiB1cCBpZi1zdGF0ZW1lbnQuCgkqIGNvbmZpZy9kYXJ3aW4uYyAoZGFyd2luX2FzbV9uYW1lZF9zZWN0aW9uKTogUmV0dXJuIHRvIG9yaWdpbmFsCgljb2RlLCByZW1vdmluZyB1c2Ugb2YgU0VDVElPTl9GT1JNQVRfU1RSSU5HLgoJKiBjb25maWcvYXJtL3BlLmggKHN3aXRjaF90b19zZWN0aW9uKTogIEFkZCBjYXNlIGZvcgoJaW5fdW5saWtlbHlfZXhlY3V0ZWRfdGV4dCB0byBzd2l0Y2ggc3RhdGVtZW50LgoJKiBjb25maWcvaTM4Ni9jeWdtaW5nLmggKHN3aXRjaF90b19zZWN0aW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L2Rhcndpbi5oIChOT1JNQUxfVEVYVF9TRUNUSU9OX05BTUUpOiBSZW1vdmUuCgkoU0VDVElPTl9GT1JNQVRfU1RSSU5HKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9tY29yZS9tY29yZS5oIChzd2l0Y2hfdG9fc2VjdGlvbik6IExpa2V3aXNlLgoJKiBjb25maWcvcnM2MDAwL2Rhcndpbi5oIChOT1JNQUxfVEVYVF9TRUNUSU9OX05BTUUpOiBSZW1vdmUuCgkoU0VDVElPTl9GT1JNQVRfU1RSSU5HKTogUmVtb3ZlLgoKMjAwNC0wOC0xOCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmggKEZJWEVEX1JFR0lTVEVSUyk6IFVwZGF0ZSBlbmNvZGluZyB0byBiZQoJLWZmaXhlZC1yZWcgc2FmZSwgYnkgcHJlc2VydmluZyB0aGUgbWVhbmluZ3Mgb2YgemVybyBhbmQgb25lLgoJKENBTExfVVNFRF9SRUdJU1RFUlMpOiBMaWtld2lzZS4KCShDT05ESVRJT05BTF9SRUdJU1RFUl9VU0FHRSk6IFVwZGF0ZSB0byBwcm9jZXNzIG5ldyBlbmNvZGluZ3MuCgoyMDA0LTA4LTE4ICBLYXogS29qaW1hICA8a2tvamltYUBnY2MuZ251Lm9yZz4KCgkqIGNvbmZpZy9zaC9zaC5jIChzcGxpdF9icmFuY2hlcyk6IENoZWNrIHRoZSByZXN1bHQgb2YKCW5leHRfYWN0aXZlX2luc24uCgkoc2hfb3V0cHV0X21pX3RodW5rKTogQ2FsbCBpbml0X2Zsb3cgaWYgYmFzaWNfYmxvY2tfaW5mbyBpcyBudWxsLgoJQ2FsbCBydGxfcmVnaXN0ZXJfY2ZnX2hvb2tzLgoKMjAwNC0wOC0xOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHJ0bC5oIChNRU1fUkVBRE9OTFlfUCk6IFJlcGxhY2UgUlRYX1VOQ0hBTkdJTkdfUC4KCSogYWxpYXMuYyAodHJ1ZV9kZXBlbmRlbmNlKTogVXBkYXRlIHRvIG1hdGNoIG5ldyBzZW1hbnRpY3MuCgkoY2Fub25fdHJ1ZV9kZXBlbmRlbmNlLCB3cml0ZV9kZXBlbmRlbmNlX3ApOiBMaWtld2lzZS4KCShhbnRpX2RlcGVuZGVuY2UsIG91dHB1dF9kZXBlbmRlbmNlKTogVXBkYXRlIHdyaXRlX2RlcGVuZGVuY2VfcCBhcmdzLgoJKHVuY2hhbmdpbmdfYW50aV9kZXBlbmRlbmNlKTogUmVtb3ZlLgoJKiBjYWxscy5jIChwdXJnZV9tZW1fdW5jaGFuZ2luZ19mbGFnKTogUmVtb3ZlLgoJKGZpeHVwX3RhaWxfY2FsbHMpOiBEb24ndCBjYWxsIGl0LgoJKGV4cGFuZF9jYWxsKTogRG9uJ3QgYWRkIHVuY2hhbmdpbmcgbWVtb3J5IHRvIGZ1bmN0aW9uIHVzYWdlLgoJKiBleHByLmMgKGVtaXRfYmxvY2tfbW92ZV92aWFfbGliY2FsbCk6IExpa2V3aXNlLgoJKGNsZWFyX3N0b3JhZ2VfdmlhX2xpYmNhbGwpOiBEb24ndCBjbG9iYmVyIFJUWF9VTkNIQU5HSU5HX1AgbWVtcy4KCShnZXRfc3VidGFyZ2V0KTogRG9uJ3QgdXNlIFJUWF9VTkNIQU5HSU5HX1AuCgkoZXhwYW5kX2Fzc2lnbm1lbnQsIHN0b3JlX2NvbnN0cnVjdG9yLCBleHBhbmRfZXhwcl9yZWFsXzEpOiBMaWtld2lzZS4KCShkb190YWJsZWp1bXApOiBTZXQgTUVNX1JFQURPTkxZX1AsIG5vdCBSVFhfVU5DSEFOR0lOR19QLgoJKiBjb21iaW5lLmMgKGdldF9sYXN0X3ZhbHVlX3ZhbGlkYXRlKTogVXNlIE1FTV9SRUFET05MWV9QLgoJKiBjc2UuYyAoaW5zZXJ0KTogRG9uJ3QgdXNlIFJUWF9VTkNIQU5HSU5HX1AuCgkoY3NlX2luc24sIGNhbm9uX2hhc2gpOiBVc2UgTUVNX1JFQURPTkxZX1AuCgkqIGVtaXQtcnRsLmMgKHNldF9tZW1fYXR0cmlidXRlc19taW51c19iaXRwb3MpOiBVc2UgTUVNX1JFQURPTkxZX1AKCWluc3RlYWQgb2YgUlRYX1VOQ0hBTkdJTkdfUC4KCSogZXhwbG93LmMgKG1heWJlX3NldF91bmNoYW5naW5nKTogUmVtb3ZlLgoJKiBleHByLmggKG1heWJlX3NldF91bmNoYW5naW5nKTogUmVtb3ZlLgoJKiBmbG93LmMgKGluc25fZGVhZF9wLCBtYXJrX3VzZWRfcmVncyk6IFVzZSBhbnRpX2RlcGVuZGVuY2UuCgkqIGZ1bmN0aW9uLmMgKGFzc2lnbl9zdGFja190ZW1wX2Zvcl90eXBlKTogRG9uJ3QgdXNlIFJUWF9VTkNIQU5HSU5HX1AuCgkoYXNzaWduX3Bhcm1fc2V0dXBfcmVnLCBleHBhbmRfZnVuY3Rpb25fc3RhcnQpOiBMaWtld2lzZS4KCSogaW50ZWdyYXRlLmMgKGNvcHlfcnR4X2FuZF9zdWJzdGl0dXRlKTogTGlrZXdpc2UuCgkqIHJhLXJld3JpdGUuYyAoZW1pdF9jb2xvcnMpOiBMaWtld2lzZS4KCSogcmVnbW92ZS5jIChjb3B5X3NyY190b19kZXN0LCByZWdtb3ZlX29wdGltaXplKTogTGlrZXdpc2UuCgkoZml4dXBfbWF0Y2hfMSk6IExpa2V3aXNlLgoJKiByZWxvYWQxLmMgKHJlbG9hZCwgYWx0ZXJfcmVnKTogTGlrZXdpc2UuCgkqIGxvY2FsLWFsbG9jLmMgKHZhbGlkYXRlX2VxdWl2X21lbSk6IENoZWNrIE1FTV9SRUFET05MWV9QLAoJbm90IFJUWF9VTkNIQU5HSU5HX1AuCgkoZXF1aXZfaW5pdF92YXJpZXNfcCk6IExpa2V3aXNlLgoJKiBsb29wLWludmFyaWFudC5jIChjaGVja19tYXliZV9pbnZhcmlhbnQpOiBMaWtld2lzZS4KCSogcmVzb3VyY2UuYyAobWFya19yZWZlcmVuY2VkX3Jlc291cmNlcywgbWFya19zZXRfcmVzb3VyY2VzKTogTGlrZXdpc2UuCgkqIGxvb3AuYyAobm90ZV9hZGRyX3N0b3JlZCk6IExpa2V3aXNlLgoJKHByZXNjYW5fbG9vcCk6IExpa2V3aXNlLiBEb24ndCBjaGVjayBmdW5jdGlvbiB1c2FnZSBmb3IgY2xvYmJlcmVkCgl1bmNoYW5naW5nIG1lbW9yeS4KCSogcnRsYW5hbC5jIChydHhfdW5zdGFibGVfcCk6IENoZWNrIE1FTV9SRUFET05MWV9QLAoJbm90IFJUWF9VTkNIQU5HSU5HX1AuCgkocnR4X3Zhcmllc19wLCBtb2RpZmllZF9iZXR3ZWVuX3AsIG1vZGlmaWVkX2luX3ApOiBMaWtld2lzZS4KCSogdmFyYXNtLmMgKGZvcmNlX2NvbnN0X21lbSk6IExpa2V3aXNlLgoJKiBzdG10LmMgKGV4cGFuZF9kZWNsKTogRG9uJ3Qgc2V0IFJUWF9VTkNIQU5HSU5HX1AuCgkqIHdlYi5jIChlbnRyeV9yZWdpc3Rlcik6IExpa2V3aXNlLgoJKiB0cmVlLWdpbXBsZS5oIChnZXRfYmFzZV9hZGRyZXNzKTogTW92ZSBkZWNsIC4uLgoJKiB0cmVlLmg6IC4uLiBoZXJlLgoJKiBkb2MvcnRsLnRleGkgKE1FTV9SRUFET05MWV9QKTogUmVwbGFjZSBSVFhfVU5DSEFOR0lOR19QLgoKCSogY29uZmlnL2FscGhhL2FscGhhLmMgKGFscGhhX3NldF9tZW1mbGFnc18xKTogUmV3cml0ZSB0byBiZQoJY2FsbGVkIHZpYSBmb3JfZWFjaF9ydHguICBDb3B5IE1FTV9TQ0FMQVJfUCwgTUVNX05PVFJBUF9QIHRvby4KCShhbHBoYV9zZXRfbWVtZmxhZ3MpOiBVcGRhdGUgdG8gbWF0Y2guCgoJKiBjb25maWcvZGFyd2luLmMgKG1hY2hvcGljX2luZGlyZWN0X2RhdGFfcmVmZXJlbmNlKTogU2V0CglNRU1fUkVBRE9OTFlfUCBpbnN0ZWFkIG9mIFJUWF9VTkNIQU5HSU5HX1AuCgkobWFjaG9waWNfaW5kaXJlY3RfY2FsbF90YXJnZXQpOiBMaWtld2lzZS4KCShtYWNob3BpY19sZWdpdGltaXplX3BpY19hZGRyZXNzKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9hcm0vYXJtLmMgKGxlZ2l0aW1pemVfcGljX2FkZHJlc3MsIGFybV9nZW5fbG9hZF9tdWx0aXBsZSwKCWFybV9nZW5fc3RvcmVfbXVsdGlwbGUsIGFybV9nZW5fbW92bWVtcWkpOiBMaWtld2lzZS4KCSogY29uZmlnL2FybS9hcm0ubWQgKGxvYWRfbXVsdGlwbGUsIHN0b3JlX211bHRpcGxlKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9mcnYvZnJ2Lm1kIChzeW1HT1QycmVnKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAobGVnaXRpbWl6ZV9waWNfYWRkcmVzcywKCWxlZ2l0aW1pemVfdGxzX2FkZHJlc3MsIGl4ODZfc3BsaXRfdG9fcGFydHMpOiBMaWtld2lzZS4KCSogY29uZmlnL2lhNjQvaWE2NC5jIChpYTY0X2V4cGFuZF90bHNfYWRkcmVzcyk6IExpa2V3aXNlLgoJKiBjb25maWcvaWE2NC9pYTY0Lm1kIChsb2FkX2ZwdHIpOiBMaWtld2lzZS4KCSogY29uZmlnL20zMnIvbTMyci5jIChtMzJyX2xlZ2l0aW1pemVfcGljX2FkZHJlc3MpOiBMaWtld2lzZS4KCSogY29uZmlnL202OGsvbTY4ay5jIChsZWdpdGltaXplX3BpY19hZGRyZXNzKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9tY29yZS9tY29yZS5jIChibG9ja19tb3ZlX3NlcXVlbmNlKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9tbjEwMzAwL21uMTAzMDAubWQgKHN5bUdPVDJyZWcpOiBMaWtld2lzZS4KCSogY29uZmlnL3BhL3BhLmMgKGxlZ2l0aW1pemVfcGljX2FkZHJlc3MpOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2xlZ2l0aW1pemVfdGxzX2FkZHJlc3MpOiBMaWtld2lzZS4KCShyczYwMDBfZW1pdF9tb3ZlKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAobGVnaXRpbWl6ZV9waWNfYWRkcmVzcyk6IExpa2V3aXNlLgoJKGxlZ2l0aW1pemVfdGxzX2FkZHJlc3MpOiBMaWtld2lzZS4KCSogY29uZmlnL3MzOTAvczM5MC5tZCAoY2FzZXNpKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zaC9zaC5jIChwcmVwYXJlX21vdmVfb3BlcmFuZHMsIHNoX3Jlb3JnKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zaC9zaC5tZCAoc3ltR09UMnJlZyk6IExpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvc3BhcmMuYyAobGVnaXRpbWl6ZV9waWNfYWRkcmVzcyk6IExpa2V3aXNlLgoJKiBjb25maWcvdjg1MC92ODUwLm1kIChjYXNlc2kpOiBMaWtld2lzZS4KCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoZ2VuX3RocmVhZF9wb2ludGVyKTogRG9uJ3Qgc2V0IFJUWF9VTkNIQU5HSU5HX1AuCgkqIGNvbmZpZy9pcTIwMDAvaXEyMDAwLmMgKHNhdmVfcmVzdG9yZV9pbnNucyk6IExpa2V3aXNlLgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHNfcmVzdG9yZV9ncCk6IExpa2V3aXNlLgoJKG1pcHNfc2F2ZV9yZXN0b3JlX3JlZywgbWlwczE2X2dwX3BzZXVkb19yZWcpOiBMaWtld2lzZS4KCSogY29uZmlnL3NoL3NoLmMgKHNoX3Jlb3JnKTogTGlrZXdpc2UuCgoyMDA0LTA4LTE4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdHJlZS5oIChzdHJ1Y3QgdHJlZV9kZWNsKTogQWRkIGdpbXBsZV9mb3JtYWxfdGVtcC4KCShERUNMX0dJTVBMRV9GT1JNQUxfVEVNUF9QKTogTmV3LgoJKiBnaW1wbGlmeS5jIChwb3BfZ2ltcGxpZnlfY29udGV4dCk6IENsZWFyIGl0LgoJKGxvb2t1cF90bXBfdmFyKTogU2V0IGl0LCBpZiBpc19mb3JtYWwuCgkoZ2ltcGxpZnlfaW5pdF9jb25zdHJ1Y3Rvcik6IFVzZSByaHNfcHJlZGljYXRlX2ZvciBmb3IgQ09NUExFWC4KCVVzZSBpc19naW1wbGVfdmFsIGZvciBWRUNUT1IuICBTaW1wbGlmeSByZXR1cm4gdmFsdWUuCgkoZ2ltcGxpZnlfc2F2ZV9leHByKTogVXNlIGFuZCBzZXQgREVDTF9HSU1QTEVfRk9STUFMX1RFTVBfUC4KCShnaW1wbGlmeV9leHByKTogTGlrZXdpc2UuCgkqIHRyZWUtZ2ltcGxlLmMgKGlzX2dpbXBsZV9mb3JtYWxfdG1wX3Jocyk6IFJlbmFtZSBmcm9tCglpc19naW1wbGVfdG1wX3JocyBmb3IgY2xhcml0eS4gIFVwZGF0ZSBhbGwgY2FsbGVycy4KCShpc19naW1wbGVfcmVnX3Jocyk6IFNpbXBsaWZ5IGxvZ2ljLgoJKGlzX2dpbXBsZV9mb3JtYWxfdG1wX3Zhcik6IFJlbmFtZSBmcm9tIGlzX2dpbXBsZV90bXBfdmFyIGZvcgoJY2xhcml0eTsgdXNlIERFQ0xfR0lNUExFX0ZPUk1BTF9URU1QX1AuCgkoaXNfZ2ltcGxlX2Zvcm1hbF90bXBfcmVnKTogU2ltaWxhcmx5LgoJKiB0cmVlLWdpbXBsZS5oOiBVcGRhdGUgZGVjbHMuCgkqIHRyZWUtc3NhLWNvcHlyZW5hbWUuYyAoY29weV9yZW5hbWVfcGFydGl0aW9uX2NvYWxlc2NlKTogVXNlCglERUNMX0lHTk9SRURfUCwgbm90IERFQ0xfQVJUSUZJQ0lBTC4gIFRpZHkgZm9ybWF0dGluZy4KCSogdHJlZS1zc2EtbGl2ZS5jICh2YXJfdW5pb24sIHR5cGVfdmFyX2luaXQpOiBMaWtld2lzZS4KCjIwMDQtMDgtMTggIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiBjNHguYyAobGVnaXRpbWl6ZV9vcGVyYW5kcyk6IFJlbW92ZSBjYWxscyB0bwoJcHJlc2VydmVfc3ViZXhwcmVzc2lvbnNfcC4KCjIwMDQtMDgtMTggIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIHZhcmFzbS5jIChNQVhfT0ZJTEVfQUxJR05NRU5UKTogTW92ZSAuLi4KCSogZGVmYXVsdHMuaCAoTUFYX09GSUxFX0FMSUdOTUVOVCk6IC4uLiBoZXJlLgoKMjAwNC0wOC0xOCAgWmllbW93aXQgTGFza2kgIDx6bGFza2lAYXBwbGUuY29tPgoKCSogZ2NjLmMgKGRlZmF1bHRfY29tcGlsZXJzKTogQWRkIGluZm8gYWJvdXQgIi5tbSIsICIuTSIgYW5kICIubWlpIgoJT2JqZWN0aXZlLUMrKyBleHRlbnNpb25zLgoJKiBnZW5ndHlwZS5jIChnZXRfZmlsZV9iYXNlbmFtZSk6IE1hdGNoIGVudGlyZSBzdWJkaXJlY3RvcnkgbmFtZQoJKCdjcCcsICdvYmpjJywgJ29iamNwJykgcmF0aGVyIHRoYW4ganVzdCBpdHMgc3VmZml4LgoJKGdldF9iYXNlX2ZpbGVfYml0bWFwKTogQWxsb3cgZm9yIGZpbGVzIHRvIGJlbG9uZyB0byBtb3JlIHRoYW4gb25lCglsYW5ndWFnZS4KCShnZXRfb3V0cHV0X2ZpbGVfd2l0aF92aXNpYmlsaXR5KTogVHJlYXQgb2JqYy9vYmpjLWFjdC5oIGFzIGEgaGVhZGVyCgl1c2VkIGJ5IG1vcmUgdGhhbiBvbmUgZnJvbnQtZW5kLgoKMjAwNC0wOC0xOCAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiBhcm0ubWQgKGFkZHNpMywgc3Vic2kzLCBhbmRzaTMsIGlvcnNpMywgbW92c2ksIG1vdmhpKTogUmV3b3JrIHRvCglhdm9pZCB1c2Ugb2YgcHJlc2VydmVfc3ViZXhwcmVzc2lvbnNfcC4KCjIwMDQtMDgtMTcgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgMTcwNTEKCSogdHJlZS1zcmEuYyAoc2NhbGFyaXplX3VzZSk6IE1hcmsgYWxsIHZfZGVmcyBmb3IgIWlzX291dHB1dCB0b28uCgoyMDA0LTA4LTE3ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCgkqIGRvYy9leHRlbmQudGV4aTogRG9jdW1lbnQgbmV3IHhzdG9ybXkxNiBhdHRyaWJ1dGUuCgoJKiBjb25maWcvc3Rvcm15MTYvc3Rvcm15MTYuYyAoeHN0b3JteTE2X3NwbGl0dGFibGVfYmVsb3cxMDBfb3BlcmFuZCk6IE5ldy4KCSh4c3Rvcm15MTZfc3BsaXR0YWJsZV9iZWxvdzEwMF9vcl9yZWdpc3Rlcik6IE5ldy4KCShjb21iaW5lX2JucCk6IE5ldy4KCSh4c3Rvcm15MTZfcmVvcmcpOiBOZXcuCgkoVEFSR0VUX01BQ0hJTkVfREVQRU5ERU5UX1JFT1JHKTogRGVmaW5lLgoKCSogY29uZmlnL3N0b3JteTE2L3N0b3JteTE2Lm1kIChtb3ZxaV9pbnRlcm5hbCk6IE1ha2UgbmFtZSBwdWJsaWMuCgkobW92aGlfaW50ZXJuYWwpOiBMaWtld2lzZS4KCShjYmhyYW5jaGhpKTogTGlrZXdpc2UuCgkoY2JocmFuY2hoaV9uZWcpOiBMaWtld2lzZS4KCShhbmRoaTMpOiBPbmx5IGFsbG93IHNwbGl0dGFibGUgYmVsb3cxMDAgb3BlcmFuZHMuCgkoaW9yaGkzKTogTGlrZXdpc2UuCgkocGVlcGhvbGUyKTogTmV3IGFuZC96ZXJvX2V4dGVuZC0+YW5kIHBlZXBob2xlLgoJKHBlZXBob2xlMik6IE5ldyBsb2FkL2lvci9zYXZlLT5zZXQxIHBlZXBob2xlLgoJKHBlZXBob2xlMik6IE5ldyBsb2FkL2FuZC9zYXZlLT5jbHIxIHBlZXBob2xlLgoJKGJjbHJ4LCBiY2xyeDIsIGJjbHI3LCBiY2xyMTUpOiBOZXcuCgkoYnNldHgsIGJzZXR4MiwgYnNldDcsIGJzZXQxNSk6IE5ldy4KCgkqIGNvbmZpZy9zdG9ybXkxNi9zdG9ybXkxNi5jICh4c3Rvcm15MTZfcHJpbnRfb3BlcmFuZCk6IEJlIG1vcmUKCWxpYmVyYWwgYWJvdXQgYWNjZXB0YWJsZSAnQicgbWFza3MuCgoJKiBjb25maWcvc3Rvcm15MTYvc3Rvcm15MTYtcHJvdG9zLmgKCSh4c3Rvcm15MTZfYXNtX291dHB1dF9hbGlnbmVkX2NvbW1vbiwgeHN0b3JteTE2X2JlbG93MTAwX3N5bWJvbCwKCXhzdG9ybXkxNl9iZWxvdzEwMF9vcGVyYW5kLCB4c3Rvcm15MTZfYmVsb3cxMDBfb3JfcmVnaXN0ZXIsCgl4c3Rvcm15MTZfb25lYml0X3NldF9vcGVyYW5kLCB4c3Rvcm15MTZfb25lYml0X2Nscl9vcGVyYW5kKTogTmV3LgoJKFBSRURJQ0FURV9DT0RFUyk6IEFkZCBuZXcgcHJlZGljYXRlcy4KCgkqIGNvbmZpZy9zdG9ybXkxNi9zdG9ybXkxNi5jCgkoeHN0b3JteTE2X2FzbV9vdXRwdXRfYWxpZ25lZF9jb21tb24sIHhzdG9ybXkxNl9iZWxvdzEwMF9zeW1ib2wsCgl4c3Rvcm15MTZfYmVsb3cxMDBfb3BlcmFuZCwgeHN0b3JteTE2X2JlbG93MTAwX29yX3JlZ2lzdGVyLAoJeHN0b3JteTE2X29uZWJpdF9zZXRfb3BlcmFuZCwgeHN0b3JteTE2X29uZWJpdF9jbHJfb3BlcmFuZCk6IE5ldy4KCSh4c3Rvcm15MTZfZXhwYW5kX2lvcnFpMywgeHN0b3JteTE2X2V4cGFuZF9hbmRxaTMpOiBOZXcuCgkoeHN0b3JteTE2X2xlZ2l0aW1hdGVfYWRkcmVzc19wKTogQWxsb3cgYmVsb3cxMDAgc3ltYm9scy4KCSh4c3Rvcm15MTZfZXh0cmFfY29uc3RyYWludF9wKTogQWRkICdXJyBmb3IgYmVsb3cxMDAgb3BlcmFuZHMuCgkoeHN0b3JteTE2X2V4cGFuZF9tb3ZlKTogTGVhdmUgYmVsb3cxMDAgb3BlcmFuZHMgYXMtaXMuCgkoeHN0b3JteTE2X2VuY29kZV9zZWN0aW9uX2luZm8pOiBFbmNvZGUgYmVsb3cxMDAgc3ltYm9scy4KCSh4c3Rvcm15MTZfc3RyaXBfbmFtZV9lbmNvZGluZyk6IE5ldy4KCSh4c3Rvcm15MTZfcHJpbnRfb3BlcmFuZCk6IFByaW50ICdiJyBhcyBzaGlmdCBtYXNrLgoJKHhzdG9ybXkxNl9hdHRyaWJ1dGVfdGFibGUpOiBBZGQgYmVsb3cxMDAgYXR0cmlidXRlcy4KCSh4c3Rvcm15MTZfaGFuZGxlX2JlbG93MTAwX2F0dHJpYnV0ZSk6IE5ldy4KCgkqIGNvbmZpZy9zdG9ybXkxNi9zdG9ybXkxNi5oIChFWFRSQV9TRUNUSU9OUyk6IGFkZCBpbl9ic3MxMDAuCgkoWFNUT1JNWTE2X1NFQ1RJT05fRlVOQ1RJT04pOiBOZXcuCgkoRVhUUkFfU0VDVElPTl9GVU5DVElPTlMpOiBEZWZpbmUgdXNpbmcgdGhlIGFib3ZlLgoJKEFTTV9PVVRQVVRfQUxJR05FRF9ERUNMX0NPTU1PTiwgQVNNX09VVFBVVF9BTElHTkVEX0RFQ0xfTE9DQUwpOiBOZXcuCgkoQVNNX09VVFBVVF9TWU1CT0xfUkVGKTogSGFuZGxlIGVuY29kZWQgc3ltYm9scy4KCShBU01fT1VUUFVUX0xBQkVMUkVGKTogRGVmaW5lLgoKCSogY29uZmlnL3N0b3JteTE2L3N0b3JteTE2Lm1kIChtb3ZxaV9pbnRlcm5hbCk6IEFkZCBiZWxvdzEwMCBzdXBwb3J0LgoJKG1vdmhpX2ludGVybmFsKTogQWRkIGJlbG93MTAwIHN1cHBvcnQuCgkoYW5kaGkzKTogQWRkIGJlbG93MTAwIHN1cHBvcnQuCgkoaW9yaGkzKTogQWRkIGJlbG93MTAwIHN1cHBvcnQuCgkoaW9ycWkzLCBpb3JxaTNfaW50ZXJuYWwsIGFuZHFpMywgYW5kcWkzX2ludGVybmFsKTogTmV3LgoKMjAwNC0wOC0xNyAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5jIChnZW5fY29uZGl0aW9uYWxfbW92ZSk6IFVzZSBHRVRfTU9ERSAob3AwKSBpbnN0ZWFkCglvZiBWT0lEbW9kZSBmb3IgY29tcGFyaXNvbiBjb2RlIG1vZGUuCgkqIGNvbmZpZy9taXBzL21pcHMubWQ6IEZvciBjb25kaXRpb25hbCBtb3ZlIHBhdHRlcm5zLCB1c2UgbW9kZSBvZgoJZmlyc3QgY29tcGFyZSBvcGVyYW5kIGZvciBjb21wYXJpc29uIG1vZGUsIGluc3RlYWQgb2YgVk9JRG1vZGUuCgoJKiBjb25maWcvbWlwcy9taXBzLm1kOiBBZGQgY2Fub25pY2FsIG5tYWRkIGFuZCBubXN1YiBwYXR0ZXJucyBmb3IgYm90aAoJbm9ybWFsIGFuZCAtZmZhc3QtbWF0aCBjb2RlLgoKMjAwNC0wOC0xNyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBjKysvMTU4NzEKCSogZG9jL2ludm9rZS50ZXhpICgtZmtlZXAtaW5saW5lLWZ1bmN0aW9ucyk6IFVwZGF0ZSBkb2N1bWVudGF0aW9uLgoKMjAwNC0wOC0xNyAgUm9iZXJ0IEJvd2RpZGdlICA8Ym93ZGlkZ2VAYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC94LWRhcndpbjogQWRkIC1tZHluYW1pYy1uby1waWMgdG8gZ2NjIGJ1aWxkIGZsYWdzLgoKMjAwNC0wOC0xNyAgQW5kcmVhcyBUb2JsZXIgIDxhLnRvYmxlckBzY2h3ZWl6LmNoPgoKCSogY29uZmlnL3JzNjAwMC9kYXJ3aW4ubWQgKCpjYWxsX25vbmxvY2FsX2RhcndpbjY0KTogQWRkICNlbHNlIGNsYXVzZQoJZm9yIG5vbiBEYXJ3aW4gdGFyZ2V0cy4KCSgqY2FsbF92YWx1ZV9ub25sb2NhbF9kYXJ3aW42NCk6IExpa2V3aXNlLgoKMjAwNC0wOC0xNyAgRmFyaWJvcnogSmFoYW5pYW4gPGZqYWhhbmlhbkBhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfZnVuY3Rpb25fdmFsdWUpOiBDaGVjayBmb3IKCWFsdGl2ZWMgbW9kZSBmb3IgYWx0aXZlYyByZXR1cm4gcmVnaXN0ZXIuCgoyMDA0LTA4LTE3ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJUmV2ZXJ0IDIwMDQtMDgtMTYgIFN0YW4gU2hlYnMgIDxzaGVic0BhcHBsZS5jb20+CgkqIGNvbmZpZy9kYXJ3aW4uYyAobWFjaG9faW5kaXJlY3RfZGF0YV9yZWZlcmVuY2UpOiBBZGQgREltb2RlIGNhc2UuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kOiBJbmNsdWRlIGRhcndpbi5tZC4KCShidWlsdGluX3NldGptcF9yZWNlaXZlcik6IEFkZCBESW1vZGUgY2FzZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX2VtaXRfbW92ZSk6IEFkZCBESW1vZGUgY2FzZSB0bwoJRGFyd2luIGJpdHMuCgoyMDA0LTA4LTE3ICBEb3JpdCBOYWlzaGxvcyAgPGRvcml0QGlsLmlibS5jb20+CgoJKiB0cmVlLXZlY3Rvcml6ZXIuYzogTmV3IEZpbGU6IGxvb3AgdmVjdG9yaXphdGlvbiBvbiBTU0FlZCBHSU1QTEUKCXRyZWVzLgoJKiB0cmVlLXZlY3Rvcml6ZXIuaDogTmV3IEZpbGU6IFNhbWUuCgkqIE1ha2VmaWxlLmluICh0cmVlLXZlY3Rvcml6ZXIuYywgdHJlZS12ZWN0b3JpemVyLmgpOiBBZGQgbmV3IGZpbGVzLgoJKiBjb21tb24ub3B0IChmdHJlZS12ZWN0b3JpemUpOiBOZXcgZmxhZyB0byBlbmFibGUgdmVjdG9yaXphdGlvbi4KCSogdGltZXZhci5kZWYgKFRWX1RSRUVfVkVDVE9SSVpBVElPTik6IE5ldyBkdW1wIGZpbGUgZm9yCgl2ZWN0b3JpemF0aW9uIHBhc3MuCgkqIHRyZWUtZGF0YS1yZWYuaCAoaW5pdF9kYXRhX3JlZik6IEFkZGl0aW9uYWwgYXJndW1lbnQuCgkoYXJyYXlfYmFzZV9uYW1lX2RpZmZlcl9wKTogTW92ZWQgdG8gdHJlZS1kYXRhLXJlZi5jLgoJKiB0cmVlLWRhdGEtcmVmLmMgKGFycmF5X2Jhc2VfbmFtZV9kaWZmZXJfcCk6IFJldmlzZWQuCgkoaW5pdGlhbGl6ZV9kYXRhX2RlcGVuZGVuY2VfcmVsYXRpb24pOiBDYWxsIGFycmF5X2Jhc2VfbmFtZV9kaWZmZXJfcAoJd2l0aCBhbiBleHRyYSBhcmd1bWVudC4KCShhbmFseXplX2FsbF9kYXRhX2RlcGVuZGVuY2VzKTogU2FtZS4KCShpbml0X2RhdGFfcmVmKTogQWRkaXRpb25hbCBhcmd1bWVudCBpc19yZWFkIHRvIHNldCBEUl9JU19SRUFELgoJKiB0cmVlLXNzYS1waGlvcHQuYyAoZW1wdHlfYmxvY2tfcCk6IEV4cG9zZSBmb3IgdXNhZ2Ugb3V0IG9mIHRoaXMKCWZpbGUuCgkqIHRyZWUtZmxvdy5oICh2ZWN0b3JpemVfbG9vcHMsIGVtcHR5X2Jsb2NrX3ApOiBBZGQgZGVjbGFyYXRpb24uCgkqIHRyZWUtb3B0aW1pemUuYyAocGFzc192ZWN0b3JpemUpOiBTY2hlZHVsZSB0aGUgdmVjdG9yaXphdGlvbiBwYXNzLgoJKiB0cmVlLXBhc3MuaCAodHJlZV9vcHRfcGFzcyBwYXNzX3ZlY3Rvcml6ZSk6IERlY2xhcmUgdGhlIG5ldwoJdmVjdG9yaXphdGlvbiBwYXNzLgoJKiB0cmVlLXNzYS1sb29wLmMgKHRyZWVfc3NhX2xvb3BfaW5pdCk6IENhbGwgc2Nldl9pbml0aWFsaXplLgoJKHRyZWVfc3NhX2xvb3BfZG9uZSk6IENhbGwgc2Nldl9maW5hbGl6ZS4KCSh0cmVlX3ZlY3Rvcml6ZSk6IERlZmluZSB0aGUgbmV3IHZlY3Rvcml6YXRpb24gcGFzcy4KCSogZGVmYXVsdHMuaCAoVU5JVFNfUEVSX1NJTURfV09SRCk6IEFsbG93IHRhcmdldHMgdG8gc3BlY2lmeSB0aGUKCXNpemUgb2YgdGhlIHZlY3RvciB0aGV5IHN1cHBvcnQgKHVudGlsIHN1cHBvcnQgZm9yIG11bHRpcGxlIHZlY3RvcgoJc2l6ZXMgaXMgYWRkZWQgdG8gdGhlIHZlY3Rvcml6ZXIpLgoJKiBjb25maWcvaTM4Ni9pMzg2LmggKFVOSVRTX1BFUl9TSU1EX1dPUkQpOiBEZWZpbmUuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKFVOSVRTX1BFUl9TSU1EX1dPUkQpOiBEZWZpbmUuCgkqIGludm9rZS50ZXhpIChmZHVtcC10cmVlLXZlY3QsIGZ0cmVlLXZlY3Rvcml6ZSk6IEFkZAoJZG9jdW1lbnRhdGlvbi4KCjIwMDQtMDgtMTcgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBvYmpjL29iamMtYWN0LmMgKGJ1aWxkX3Byb3RvY29sX2luaXRpYWxpemVyKTogRml4IGJ1aWxkX2ludF9jc3QKCXVzYWdlLgoJKGdlbmVyYXRlX3Byb3RvY29sX2xpc3QsIGhhbmRsZV9pbXBlbnQpOiBMaWtld2lzZS4KCjIwMDQtMDgtMTcgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogcmVnY2xhc3MuYyAoaW5pdF9yZWdfc2V0c18xKTogQWRkIEVOQUJMRV9DSEVDS0lORyBzYW5pdHkgdGVzdHMgdG8KCWVuc3VyZSB0aGF0IGNhbGxfdXNlZF9yZWdzIGlzIGEgc3VwZXJzZXQgb2YgYm90aCBmaXhlZF9yZWdzIGFuZAoJY2FsbF9yZWFsbHlfdXNlZF9yZWdzLgoKMjAwNC0wOC0xNyAgRGFuaWVsIEJvcm5zdGVpbiAgPGRhbmZ1enpAbWlsay5jb20+CgoJUFIgdGFyZ2V0LzE3MDE5CgkqIGFybS5tZCAoYWRkc2kzX2NicmFuY2hfc2NyYXRjaCk6IENvcnJlY3QgY2FzZSBsYWJlbHMuCgoyMDA0LTA4LTE3ICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCVBSIG1pZGRsZS1lbmQvMTcwMzYKCSogZm9sZC1jb25zdC5jIChmb2xkKTogQ2hlY2sgZm9yIGludGVnZXIgb3BlcmFuZCB3aGVuCglmb2xkaW5nIChBID4+IE4pICYgMSA/ICgxIDw8IE4pIDogMC4gIEZpeCBmcm9tIEFuZHJldwoJUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4uCgoyMDA0LTA4LTE3ICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogY29uZmlndXJlLmFjOiBUcnVzdCB0b3BsZXZlbCdzIG5vdGlvbiBvZiBCSVNPTi9GTEVYL01BS0VJTkZPLgoJTm8gbmVlZCB0byBjaGVjayBpZiBpbiBhIGNyb3NzIGNvbmZpZ3VyYXRpb24uCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCgkqIGNhbGxzLmMgKHByZWNvbXB1dGVfcmVnaXN0ZXJfcGFyYW1ldGVycyk6CglJbmxpbmUgcHJlc2VydmVfc3ViZXhwcmVzc2lvbnNfcCAoKS4KCSogZXhwbWVkLmMgKGV4cGFuZF9tdWx0X2NvbnN0LCBlbWl0X3N0b3JlX2ZsYWcpOiBMaWtld2lzZS4KCSogb3B0YWJzLmMgKGV4cGFuZF9iaW5vcCwgZXhwYW5kX3R3b3ZhbF9iaW5vcCwgcHJlcGFyZV9jbXBfaW5zbik6CglMaWtld2lzZS4KCSogZXhwci5jIChnZXRfc3VidGFyZ2V0KTogTGlrZXdpc2UuCgkqIHJ0bC5oIChwcmVzZXJ2ZV9zdWJleHByZXNzaW9uc19wKTogUmVtb3ZlLgoJKiBzdG10LmMgKHByZXNlcnZlX3N1YmV4cHJlc3Npb25zX3ApOiBSZW1vdmUuCgoJKiBkb2p1bXAuYyAoZG9fanVtcCkgPENPTkRfRVhQUiwgRVFfRVhQUiwgTkVfRVhQUiwKCVRSVVRIX0FORElGX0VYUFIsIFRSVVRIX09SSUZfRVhQUiwgQ09NUE9VTkRfRVhQUj46CglBYm9ydCBvbiBnaW1wbGlmaWVkIGNhc2VzLgoKMjAwNC0wOC0xNiAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogdHJlZS5oIChWRUNUT1JfRkxPQVRfVFlQRV9QKTogTmV3LgoJKEZMT0FUX1RZUEVfUCk6IFVzZSBpdC4KCSogYy10eXBlY2suYyAoYnVpbGRfYmluYXJ5X29wKTogQWZ0ZXIgY29udmVydCBjYWxscywgY2hlY2sgZm9yCgljaGVjayBmb3IgRVJST1JfTUFSSyBvcGVyYW5kcy4KCjIwMDQtMDgtMTYgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5pbiAoQlVJTERfUFJFRklYLCBCVUlMRF9QUkVGSVhfMSk6IERlbGV0ZS4KCShCVUlMRF9SVEwsIEJVSUxEX1BSSU5ULCBCVUlMRF9FUlJPUlMsIEJVSUxEX1ZBUlJBWSk6IFVwZGF0ZS4KCShnZW5vYmpzKTogQWRkIGJ1aWxkLXJ0bC5vLCBidWlsZC1wcmludC1ydGwubywgYnVpbGQtdmFycmF5Lm8uCgkoZ2Vub2JqcyBzdGF0aWMgcGF0dGVybiBydWxlKTogUmVtb3ZlICUuYyBkZXBlbmRlbmN5LgoJKCQoQlVJTERfUFJFRklYXzEpcnRsLm8sIHByaW50LXJ0bC5vLCAkKEJVSUxEX1BSRUZJWF8xKXZhcnJheS5vKToKCVJlbmFtZSBydWxlczsgZGVsZXRlIGNvbW1hbmRzOyBmaXggZGVwZW5kZW5jaWVzLgoJKG1vc3RseWNsZWFuKTogRG8gbm90IGRlbGV0ZSB0ZW1wb3Jhcnkgc291cmNlIGNvcGllcy4KCSogY29uZmlndXJlLmFjOiBEZWxldGUgYWxsIHJlZmVyZW5jZXMgdG8gQlVJTERfUFJFRklYIGFuZAoJQlVJTERfUFJFRklYXzEuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCgkqIHByaW50LXJ0bC5jOiBJbmNsdWRlIGJjb25maWcuaCAjaWZkZWYgR0VORVJBVE9SX0ZJTEUuCglEbyBub3QgaW5jbHVkZSB0cmVlLmgsIHJlYWwuaCwgZmxhZ3MuaCwgaGFyZC1yZWctc2V0LmgsIG9yCgliYXNpYy1ibG9jay5oICNpZmRlZiBHRU5FUkFUT1JfRklMRS4gIFN1cnJvdW5kIHNvbWUgbW9yZSBjb2RlCgl3aXRoICNpZm5kZWYgR0VORVJBVE9SX0ZJTEUgc28gdGhhdCBub3RoaW5nIGZyb20gdGhvc2UgaGVhZGVycwoJaXMgdXNlZC4KCgkqIHJ0bC5jLCB2YXJyYXkuYzogSW5jbHVkZSBiY29uZmlnLmggI2lmZGVmIEdFTkVSQVRPUl9GSUxFLgoKMjAwNC0wOC0xNiAgQWRhbSBOZW1ldCAgPGFuZW1ldEBsbnh3LmNvbT4KCgkqIE1ha2VmaWxlLmluIChMSUJTKTogTW92ZSAkKExJQklCRVJUWSkgYWZ0ZXIgJChCQU5TSEVFTElCKS4KCjIwMDQtMDgtMTYgIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGFwcGxlLmNvbT4KCgkqIHRhcmdldC1kZWYuaCAoVEFSR0VUX0VIX1JFVFVSTl9GSUxURVJfTU9ERSk6IFJlbW92ZQoJZXh0cmFuZW91cyBzZW1pY29sb24uCgoyMDA0LTA4LTE2ICBEZXZhbmcgUGF0ZWwgIDxkcGF0ZWxAYXBwbGUuY29tPgoKCSogYy1jb21tb24uYyAoaGFuZGxlX3VzZWRfYXR0cmlidXRlKTogU2V0IERFQ0xfUFJFU0VSVkVfUC4KCSogcHJpbnQtdHJlZS5jIChwcmludF9ub2RlKTogUHJpbnQgREVDTF9QUkVTRVJWRV9QLgoJKiB0YXJnZXQtZGVmLmggKFRBUkdFVF9BU01fTUFSS19ERUNMX1BSRVNFUlZFRCk6IE5ldyAjZGVmaW5lLgoJKFRBUkdFVF9BU01fT1VUKTogTmV3IG1lbWJlciwgVEFSR0VUX0FTTV9NQVJLX0RFQ0xfUFJFU0VSVkVECgkqIHRhcmdldC5oIChzdHJ1Y3QgZ2NjX3RhcmdldCk6IE5ldyBtZW1iZXIsIG1hcmtfZGVjbF9wcmVzZXJ2ZWQuCgkqIGhvb2tzLmMgKGhvb2tfdm9pZF9jaGFycHRyKTogUmVuYW1lIHRvIC4uLgoJKGhvb2tfdm9pZF9jb25zdGNoYXJwdHIpOiAuLi4gbmV3IG5hbWUuCgkqIGhvb2tzLmggKGhvb2tfdm9pZF9jaGFycHRyKTogUmVuYW1lIHRvIC4uCgkoaG9va192b2lkX2NvbnN0Y2hhcnB0cik6IC4uLiBuZXcgbmFtZS4KCSogdHJlZS5oIChERUNMX1BSRVNFUlZFX1ApOiBOZXcgI2RlZmluZS4KCShzdHJ1Y3QgdHJlZV9kZWNsKTogTmV3IG1lbWJlciwgcHJlc2VydmVfZmxhZy4KCSogdmFyYXNtLmMgKGFzc2VtYmxlX3N0YXJ0X2Z1bmN0aW9uKTogTWFyayBkZWNsIHByZXNlcnZlZC4KCShhc3NlbWJsZV92YXJpYWJsZSk6IFNhbWUuCgkqIGRhcndpbi5jIChkYXJ3aW5fbWFya19kZWNsX3ByZXNlcnZlZCk6IE5ldyBmdW5jdGlvbi4KCSogZGFyd2luLmggKFRBUkdFVF9BU01fTUFSS19ERUNMX3ByZXNlcnZlZCk6IE5ldyAjZGVmaW5lLgoJKiBkYXJ3aW4tcHJvdG9zLmggKGRhcndpbl9tYXJrX2RlY2xfcHJlc2VydmVkKTogTmV3IGRlY2wuCgkqIGRvYy90bS50ZXhpIChUQVJHRVRfQVNNX01BUktfREVDTF9QUkVTRVJWRUQpOiBEb2N1bWVudC4KCjIwMDQtMDgtMTYgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYy1kZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogQWxsb3cgZm9yIGZ1bmN0aW9uIGRlZmluaXRpb24gd2hlcmUKCWlubmVybW9zdCBkZWNsYXJhdG9yIGhhcyBhdHRyaWJ1dGVzLgoKMjAwNC0wOC0xNiAgRmFyaWJvcnogSmFoYW5pYW4gPGZqYWhhbmlhbkBhcHBsZS5jb20+CgoJKiBleGNlcHQuYyAoZ2V0X2V4Y2VwdGlvbl9maWx0ZXIsIGJ1aWxkX3Bvc3RfbGFuZGluZ19wYWRzLAoJZHcyX2J1aWxkX2xhbmRpbmdfcGFkcyk6IFVzZSB0YXJnZXQtc3BlY2lmaWMgbW9kZSBmb3IgJ2ZpbHRlcicuCgkqIHRhcmdldC1kZWYuaCAoVEFSR0VUX0VIX1JFVFVSTl9GSUxURVJfTU9ERSk6IG1hY3JvIGRlZmluZWQgYW5kIHVzZWQuCgkqIHRhcmdldC5oIChlaF9yZXR1cm5fZmlsdGVyX21vZGUpOiBOZXcgZmllbGQgYWRkZWQuCgkqIHRhcmdob29rcy5jIChkZWZhdWx0X2VoX3JldHVybl9maWx0ZXJfbW9kZSk6IERlZmluZWQuCgkqIHRhcmdob29rcy5oIChkZWZhdWx0X2VoX3JldHVybl9maWx0ZXJfbW9kZSk6IERlY2xhcmVkLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfZWhfcmV0dXJuX2ZpbHRlcl9tb2RlKTogRGVmaW5lZC4KCjIwMDQtMDgtMTYgIE5hdGhhbmFlbCBOZXJvZGUgIDxuZXJvZGVuQGdjYy5nbnUub3JnPgoKCSogY29uZmlndXJlLmFjOiBSZXBsYWNlIF9HQ0NfVE9QTEVWX05PTkNBTk9OSUNBTF9UQVJHRVQgd2l0aAoJQUNYX05PTkNBTk9OSUNBTF9UQVJHRVQ7IHJlbW92ZSBub3ctdW5uZWVkZWQgQUNfU1VCU1QuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDQtMDgtMTYgIFN0YW4gU2hlYnMgIDxzaGVic0BhcHBsZS5jb20+CgoJQmFzaWMgc3VwcG9ydCBmb3IgNjQtYml0IERhcndpbi4KCSogY29uZmlnL2Rhcndpbi5jIChtYWNob19pbmRpcmVjdF9kYXRhX3JlZmVyZW5jZSk6IEFkZCBESW1vZGUgY2FzZS4KCShtYWNob3BpY19sZWdpdGltaXplX3BpY19hZGRyZXNzKTogU2ltaWxhcmx5LCBwbHVzIHVzZSBQbW9kZQoJaW5zdGVhZCBvZiBTSW1vZGUuCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLmggKFBUUkRJRkZfVFlQRSk6IEJlICJsb25nIGludCIgaWYgNjQtYml0LgoJKFRBUkdFVF9PU19DUFBfQlVJTFRJTlMpOiBBZGQgNjQtYml0IHByZXByb2Nlc3NvciBtYWNyby4KCShTVUJUQVJHRVRfU1dJVENIRVMpOiBBZGQgLW0zMiBhbmQgLW02NCBmbGFncy4KCShTVUJUQVJHRVRfT1ZFUlJJREVfT1BUSU9OUyk6IFJlcXVpcmUgNjQtYml0IHByb2Nlc3NvciBpZiAtbTY0LgoJKFBST0NFU1NPUl9ERUZBVUxUNjQpOiBEZWZpbmUuCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLm1kOiBOZXcgZmlsZSwgcGF0dGVybnMgc3BlY2lmaWMgdG8gNjQtYml0CglEYXJ3aW4uCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kOiBJbmNsdWRlIGRhcndpbi5tZC4KCShidWlsdGluX3NldGptcF9yZWNlaXZlcik6IEFkZCBESW1vZGUgY2FzZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAoVEFSR0VUX0FTTV9VTkFMSUdORURfRElfT1ApOiBEZWZpbmUgZm9yCglEYXJ3aW4uCgkoVEFSR0VUX0FTTV9BTElHTkVEX0RJX09QKTogRGl0dG8uCgkocnM2MDAwX2VtaXRfbW92ZSk6IEFkZCBESW1vZGUgY2FzZSB0byBEYXJ3aW4gYml0cy4KCShtYWNob3BpY19vdXRwdXRfc3R1Yik6IFVzZSAucXVhZCBpZiA2NC1iaXQuCgkqIGludm9rZS50ZXhpOiBEb2N1bWVudCAtbTMyIGFuZCAtbTY0LgoKMjAwNC0wOC0xNiAgSmFuaXMgSm9obnNvbiAgPGphbmlzMTg3QHVzLmlibS5jb20+CgoJKiBkb2MvZXh0ZW5kLnRleGkgKEFsdGlWZWMgYnVpbHRpbnMpOiBEb2N1bWVudCBhZGRpdGlvbmFsIGRpZmZlcmVuY2VzCglmcm9tIHRoZSBNb3Rvcm9sYSBBbHRpVmVjIFBJTS4KCjIwMDQtMDgtMTYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLXR5cGVjay5jIChidWlsZF9jX2Nhc3QpOiBPbmx5IGNvcHkgb3ZlcmZsb3cgZnJvbSBleHByIG5vZGVzLgoJKiB0cmVlLmggKElTX05PTl9UWVBFX0NPREVfQ0xBU1MpOiBTaW1wbGlmeS4KCShzdHJ1Y3QgdHJlZV9jb21tb24pOiBVcGRhdGUgcHVibGljX2ZsYWcgZG9jdW1lbnRhdGlvbi4KCjIwMDQtMDgtMTYgIE5hdGhhbmFlbCBOZXJvZGUgIDxuZXJvZGVuQGdjYy5nbnUub3JnPgoKCSogdHJlZS1zc2EtY29weXJlbmFtZS5jIChjb3B5X3JlbmFtZV9wYXJ0aXRpb25fY29hbGVzY2UpOgoJQ2hlY2sgZm9yIGFydGlmaWNpYWwgdmFyaWFibGVzLCBub3QgaXNfZ2ltcGxlX3RtcF92YXIuCgkqIHRyZWUtc3NhLWxpdmUuYyAodmFyX3VuaW9uKTogTGlrZXdpc2UuCgoyMDA0LTA4LTE2ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY2FsbHMuYyAobG9hZF9yZWdpc3Rlcl9wYXJhbWV0ZXJzKTogUmVtb3ZlIHNwdXJpb3VzIEZJWE1FIHRva2VuLgoKMjAwNC0wOC0xNSAgWmllbW93aXQgTGFza2kgIDx6bGFza2lAYXBwbGUuY29tPgoKCSogTWFrZWZpbGUuaW4gKENfUFJFVFRZX1BSSU5UX0gpOiBBZGQgYy1wcmV0dHktcHJpbnQuaC4KCShjLWxhbmcubyk6IERlcGVuZCBvbiBjLW9iamMtY29tbW9uLmguCgkoYy1vYmpjLWNvbW1vbi5vKTogRGVwZW5kIG9uICQoQ19QUkVUVFlfUFJJTlRfSCkgYW5kCgljLW9iamMtY29tbW9uLmg7IHJlbW92ZSBkdXBsaWNhdGUgJChDX1RSRUVfSCkgZGVwZW5kZW5jeS4KCSogYy1sYW5nLmM6IEluY2x1ZGUgYy1vYmpjLWNvbW1vbi5oLgoJKExBTkdfSE9PS1NfRklOSVNILCBMQU5HX0hPT0tTX0lOSVRfT1BUSU9OUywKCUxBTkdfSE9PS1NfSU5JVElBTElaRV9ESUFHTk9TVElDUywgTEFOR19IT09LU19IQU5ETEVfT1BUSU9OLAoJTEFOR19IT09LU19NSVNTSU5HX0FSR1VNRU5ULCBMQU5HX0hPT0tTX1BPU1RfT1BUSU9OUywKCUxBTkdfSE9PS1NfR0VUX0FMSUFTX1NFVCwgTEFOR19IT09LU19TQUZFX0ZST01fUCwKCUxBTkdfSE9PS1NfRVhQQU5EX0VYUFIsIExBTkdfSE9PS1NfTUFSS19BRERSRVNTQUJMRSwKCUxBTkdfSE9PS1NfUEFSU0VfRklMRSwgTEFOR19IT09LU19UUlVUSFZBTFVFX0NPTlZFUlNJT04sCglMQU5HX0hPT0tTX0ZJTklTSF9JTkNPTVBMRVRFX0RFQ0wsIExBTkdfSE9PS1NfVU5TQUZFX0ZPUl9SRUVWQUwsCglMQU5HX0hPT0tTX1NUQVRJQ1AsIExBTkdfSE9PS1NfU0VUX0RFQ0xfQVNTRU1CTEVSX05BTUUsCglMQU5HX0hPT0tTX05PX0JPRFlfQkxPQ0tTLCBMQU5HX0hPT0tTX1dBUk5fVU5VU0VEX0dMT0JBTF9ERUNMLAoJTEFOR19IT09LU19QUklOVF9JREVOVElGSUVSLCBMQU5HX0hPT0tTX0ZVTkNUSU9OX0VOVEVSX05FU1RFRCwKCUxBTkdfSE9PS1NfRlVOQ1RJT05fTEVBVkVfTkVTVEVELCBMQU5HX0hPT0tTX0RVUF9MQU5HX1NQRUNJRklDX0RFQ0wsCglMQU5HX0hPT0tTX0RFQ0xfVU5JTklULCBMQU5HX0hPT0tTX1JUTF9FWFBBTkRfU1RNVCwKCUxBTkdfSE9PS1NfQ09NTU9OX0FUVFJJQlVURV9UQUJMRSwgTEFOR19IT09LU19GT1JNQVRfQVRUUklCVVRFX1RBQkxFLAoJTEFOR19IT09LU19UUkVFX0lOTElOSU5HX0NBTk5PVF9JTkxJTkVfVFJFRV9GTiwKCUxBTkdfSE9PS1NfVFJFRV9JTkxJTklOR19ESVNSRUdBUkRfSU5MSU5FX0xJTUlUUywKCUxBTkdfSE9PS1NfVFJFRV9JTkxJTklOR19BTk9OX0FHR1JfVFlQRV9QLAoJTEFOR19IT09LU19UUkVFX0lOTElOSU5HX0NPTlZFUlRfUEFSTV9GT1JfSU5MSU5JTkcsCglMQU5HX0hPT0tTX1RSRUVfSU5MSU5JTkdfRVNUSU1BVEVfTlVNX0lOU05TLAoJTEFOR19IT09LU19UUkVFX0RVTVBfRFVNUF9UUkVFX0ZOLAoJTEFOR19IT09LU19DQUxMR1JBUEhfRVhQQU5EX0ZVTkNUSU9OLCBMQU5HX0hPT0tTX1RZUEVfRk9SX01PREUsCglMQU5HX0hPT0tTX1RZUEVfRk9SX1NJWkUsIExBTkdfSE9PS1NfU0lHTkVEX1RZUEUsCglMQU5HX0hPT0tTX1VOU0lHTkVEX1RZUEUsIExBTkdfSE9PS1NfU0lHTkVEX09SX1VOU0lHTkVEX1RZUEUsCglMQU5HX0hPT0tTX0lOQ09NUExFVEVfVFlQRV9FUlJPUiwgTEFOR19IT09LU19UWVBFX1BST01PVEVTX1RPLAoJTEFOR19IT09LU19SRUdJU1RFUl9CVUlMVElOX1RZUEUsIExBTkdfSE9PS1NfV1JJVEVfR0xPQkFMUyk6CglNb3ZlIHRvIGMtb2JqYy1jb21tb24uaC4KCSogYy1vYmpjLWNvbW1vbi5jOiBJbmNsdWRlIGMtb2JqYy1jb21tb24uaC4KCSogYy1vYmpjLWNvbW1vbi5oOiBOZXcgZmlsZS4KCjIwMDQtMDgtMTUgIEFuZHJlYXMgVG9ibGVyICA8YS50b2JsZXJAc2Nod2Vpei5jaD4KCSAgICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCglQUiB0YXJnZXQvMTQ5MzEKCSogY29uZmlnL3JzNjAwMC9kYXJ3aW4tdHJhbXAuYXNtIChMX2Fib3J0JHN0dWIpOiBDaGFuZ2UgdG8gbmV3IHN0dWIKCXN0eWxlLgoKMjAwNC0wOC0xNSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWUuaCAoYnVpbGRfaW50X2NzdCk6IE5ldy4KCShidWlsZF9pbnRfMik6IFJlbW92ZS4KCSogdHJlZS5jIChidWlsZF9pbnRfMik6IFJlbW92ZS4KCShidWlsZF9pbnRfY3N0KTogTmV3LgoJKG1ha2VfdmVjdG9yX3R5cGUsIGJ1aWxkX2NvbW1vbl90cmVlX25vZGVzLAoJYnVpbGRfY29tbW9uX3RyZWVfbm9kZXNfMik6IFVzZSBidWlsZF9pbnRfY3N0LgoJKiBidWlsdGlucy5jIChleHBhbmRfYnVpbHRpbl9wcmVmZXRjaCwgZXhwYW5kX2J1aWx0aW5fc3Ryc3RyLAoJZXhwYW5kX2J1aWx0aW5fc3RycGJyaywgZXhwYW5kX2J1aWx0aW5fZnB1dHMsCglidWlsZF9zdHJpbmdfbGl0ZXJhbCwgZXhwYW5kX2J1aWx0aW5fcHJpbnRmLAoJZXhwYW5kX2J1aWx0aW5fc3ByaW50ZiwgZm9sZF9idWlsdGluX2xyb3VuZCwgZm9sZF9idWlsdGluX2JpdG9wLAoJZm9sZF9idWlsdGluX2JpdG9wLCBmb2xkX2J1aWx0aW5faXNhc2NpaSwgZm9sZF9idWlsdGluX3RvYXNjaWksCglmb2xkX2J1aWx0aW5faXNkaWdpdCwgc2ltcGxpZnlfYnVpbHRpbl9zdHJzdHIsCglzaW1wbGlmeV9idWlsdGluX3N0cnBicmssIGZvbGRfYnVpbHRpbl9mcHV0cywKCXNpbXBsaWZ5X2J1aWx0aW5fc3ByaW50Zik6IFVzZSBidWlsZF9pbnRfY3N0LgoJKiBjLWNvbW1vbi5jIChzdGFydF9mbmFtZV9kZWNscywgZml4X3N0cmluZ190eXBlLAoJY19jb21tb25fbm9kZXNfYW5kX2J1aWx0aW5zLCBjX2luaXRfYXR0cmlidXRlcywKCXNob3J0ZW5fY29tcGFyZSk6IExpa2V3aXNlLgoJKiBjLWRlY2wuYyAoY29tcGxldGVfYXJyYXlfdHlwZSwKCWNoZWNrX2JpdGZpZWxkX3R5cGVfYW5kX3dpZHRoKTogTGlrZXdpc2UuCgkqIGMtbGV4LmMgKGludGVycHJldF9pbnRlZ2VyLCBsZXhfY2hhcmNvbnN0KTogTGlrZXdpc2UuCgkqIGMtcGFyc2UuaW4gKHByaW1hcnkpOiA8VFlQRVNfQ09NUEFUSUJMRV9QPiBMaWtld2lzZS4KCSogYy1wcmV0dHktcHJpbnQuYyAocHBfY19pbnRlZ2VyX2NvbnN0YW50KTogTGlrZXdpc2UuCgkqIGMtdHlwZWNrLmMgKHJlYWxseV9zdGFydF9pbmNyZW1lbnRhbF9pbml0LCBwdXNoX2luaXRfbGV2ZWwsCglzZXRfbm9uaW5jcmVtZW50YWxfaW5pdF9mcm9tX3N0cmluZyk6IExpa2V3aXNlLgoJKiBjYWxscy5jIChsb2FkX3JlZ2lzdGVyX3BhcmFtZXRlcnMpOiBMaWtld2lzZS4KCSogY29udmVydC5jIChjb252ZXJ0X3RvX3BvaW50ZXIpOiBMaWtld2lzZS4KCSogY292ZXJhZ2UuYyAoY292ZXJhZ2VfY291bnRlcl9hbGxvYywgdHJlZV9jb3ZlcmFnZV9jb3VudGVyX3JlZiwKCWJ1aWxkX2ZuX2luZm9fdHlwZSwgYnVpbGRfY3RyX2luZm9fdmFsdWUsIGJ1aWxkX2djb3ZfaW5mbyk6CglMaWtld2lzZS4KCSogZXhjZXB0LmMgKGluaXRfZWgsIGFzc2lnbl9maWx0ZXJfdmFsdWVzLCBhc3NpZ25fZmlsdGVyX3ZhbHVlcyk6CglMaWtld2lzZS4KCSogZXhwbWVkLmMgKHN0b3JlX2ZpeGVkX2JpdF9maWVsZCwgZXh0cmFjdF9iaXRfZmllbGQsCglleHRyYWN0X2ZpeGVkX2JpdF9maWVsZCwgZXh0cmFjdF9zcGxpdF9iaXRfZmllbGQsIGV4cGFuZF9zaGlmdCwKCWV4cGFuZF9tdWx0X2NvbnN0LCBleHBhbmRfbXVsdF9oaWdocGFydF9hZGp1c3QsIGV4dHJhY3RfaGlnaF9oYWxmLAoJZXhwYW5kX3NkaXZfcG93MiwgZXhwYW5kX2Rpdm1vZCwgbWFrZV90cmVlKTogTGlrZXdpc2UuCgkqIGV4cHIuYyAoY29udmVydF9tb3ZlLCBlbWl0X2dyb3VwX2xvYWQsIGVtaXRfZ3JvdXBfc3RvcmUsCglleHBhbmRfYXNzaWdubWVudCwgc3RvcmVfY29uc3RydWN0b3IsIHN0b3JlX2ZpZWxkLAoJZXhwYW5kX2V4cHJfcmVhbF8xLCByZWR1Y2VfdG9fYml0X2ZpZWxkX3ByZWNpc2lvbik6IExpa2V3aXNlLgoJKiBmb2xkLWNvbnN0LmMgKGZvcmNlX2ZpdF90eXBlLCBpbnRfY29uc3RfYmlub3AsIGZvbGRfY29udmVydF9jb25zdCwKCWludmVydF90cnV0aHZhbHVlLCBvcHRpbWl6ZV9iaXRfZmllbGRfY29tcGFyZSwKCWRlY29kZV9maWVsZF9yZWZlcmVuY2UsIGFsbF9vbmVzX21hc2tfcCwgY29uc3RhbnRfYm9vbGVhbl9ub2RlLAoJZm9sZF9kaXZfY29tcGFyZSwgZm9sZCwgZm9sZF9yZWFkX2Zyb21fY29uc3RhbnRfc3RyaW5nLAoJZm9sZF9uZWdhdGVfY29uc3QsIGZvbGRfYWJzX2NvbnN0LCBmb2xkX25vdF9jb25zdCk6IExpa2V3aXNlLgoJKiBmdW5jdGlvbi5jIChhc3NpZ25fcGFybV9zZXR1cF9ibG9jayk6IExpa2V3aXNlLgoJKiBzdG10LmMgKHNoaWZ0X3JldHVybl92YWx1ZSwgZXhwYW5kX2VuZF9jYXNlX3R5cGUsCgllc3RpbWF0ZV9jYXNlX2Nvc3RzKTogTGlrZXdpc2UuCgkqIHN0b3ItbGF5b3V0LmMgKGxheW91dF90eXBlLCBpbml0aWFsaXplX3NpemV0eXBlcywKCXNldF9taW5fYW5kX21heF92YWx1ZXNfZm9yX2ludGVncmFsX3R5cGUpOiBMaWtld2lzZS4KCSogdHJlZS1jaHJlYy5jIChjaHJlY19mb2xkX211bHRpcGx5X3BvbHlfcG9seSwKCXJlc2V0X2V2b2x1dGlvbl9pbl9sb29wKTogTGlrZXdpc2UuCgkqIHRyZWUtY2hyZWMuaCAoYnVpbGRfcG9seW5vbWlhbF9jaHJlYyk6IExpa2V3aXNlLgoJKiB0cmVlLWNvbXBsZXguYyAoYnVpbGRfcmVwbGljYXRlZF9jb25zdCk6IExpa2V3aXNlLgoJKiB0cmVlLWVoLmMgKGhvbm9yX3Byb3RlY3RfY2xlYW51cF9hY3Rpb25zLAoJbG93ZXJfdHJ5X2ZpbmFsbHlfb25lZGVzdCwgbG93ZXJfdHJ5X2ZpbmFsbHlfY29weSwKCWxvd2VyX3RyeV9maW5hbGx5X3N3aXRjaCk6IExpa2V3aXNlLgoJKiB0cmVlLW11ZGZsYXAuYyAobWZfYnVpbGRfc3RyaW5nLCBteF9yZWdpc3Rlcl9kZWNscywKCW11ZGZsYXBfcmVnaXN0ZXJfY2FsbCwgbXVkZmxhcF9lbnF1ZXVlX2NvbnN0YW50KTogTGlrZXdpc2UuCgkqIHRyZWUtbmVzdGVkLmMgKGdldF90cmFtcG9saW5lX3R5cGUsIGdldF9ubF9nb3RvX2ZpZWxkKTogTGlrZXdpc2UuCgkqIHRyZWUtcHJldHR5LXByaW50LmMgKGR1bXBfZ2VuZXJpY19ub2RlKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWNjcC5jICh3aWRlbl9iaXRmaWVsZCwgbWF5YmVfZm9sZF9vZmZzZXRfdG9fYXJyYXlfcmVmKToKCUxpa2V3aXNlLgoJKiB0cmVlLXNzYS1kb20uYyAoc2ltcGxpZnlfcmhzX2FuZF9sb29rdXBfYXZhaWxfZXhwcik6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1sb29wLW5pdGVyLmMgKG51bWJlcl9vZl9pdGVyYXRpb25zX2NvbmQsCglsb29wX25pdGVyX2J5X2V2YWwsIHVwcGVyX2JvdW5kX2luX3R5cGUsIGxvd2VyX2JvdW5kX2luX3R5cGUpOgoJTGlrZXdpc2UuCgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoYWxwaGFfaW5pdGlhbGl6ZV90cmFtcG9saW5lLAoJYWxwaGFfdmFfc3RhcnQsIGFscGhhX2dpbXBsaWZ5X3ZhX2FyZ18xKTogVXNlIGJ1aWxkX2ludF9jc3QuCgkqIGNvbmZpZy9hcm0vYXJtLmMgKGFybV9nZXRfY29va2llX3NpemUpOiBMaWtld2lzZS4KCSogY29uZmlnL2M0eC9jNHguYyAoYzR4X2dpbXBsaWZ5X3ZhX2FyZ19leHByKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl92YV9zdGFydCwgaXg4Nl9naW1wbGlmeV92YV9hcmcpOiBMaWtld2lzZS4KCSogY29uZmlnL2k4NjAvaTg2MC5jIChpODYwX3ZhX3N0YXJ0KTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoaWE2NF9naW1wbGlmeV92YV9hcmcpOiBMaWtld2lzZS4KCSogY29uZmlnL21pcHMvbWlwcy5jIChtaXBzX2J1aWxkX2J1aWx0aW5fdmFfbGlzdCwgbWlwc192YV9zdGFydCwKCW1pcHNfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBMaWtld2lzZS4KCSogY29uZmlnL3BhL3BhLmMgKGhwcGFfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3ZhX3N0YXJ0LCByczYwMDBfZ2ltcGxpZnlfdmFfYXJnLAoJYWRkX2NvbXBpbGVyX2JyYW5jaF9pc2xhbmQpOiBMaWtld2lzZS4KCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX3ZhX3N0YXJ0KTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zaC9zaC5jIChzaF92YV9zdGFydCk6IExpa2V3aXNlLgoJKiBjb25maWcvc3Rvcm15MTYvc3Rvcm15MTYuYyAoeHN0b3JteTE2X2V4cGFuZF9idWlsdGluX3ZhX3N0YXJ0KToKCUxpa2V3aXNlLgoJKiBjb25maWcveHRlbnNhL3h0ZW5zYS5jICh4dGVuc2FfdmFfc3RhcnQsCgl4dGVuc2FfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBMaWtld2lzZS4KCgkqIG9iamMvb2JqYy1hY3QuYyAoYnVpbGRfb2JqY19zdHJpbmdfb2JqZWN0LAoJYnVpbGRfb2JqY19zeW10YWJfdGVtcGxhdGUsIGluaXRfZGVmX2xpc3QsIGluaXRfb2JqY19zeW10YWIsCglpbml0X21vZHVsZV9kZXNjcmlwdG9yLCBnZW5lcmF0ZV9zdGF0aWNfcmVmZXJlbmNlcywKCWJ1aWxkX3NlbGVjdG9yX3RyYW5zbGF0aW9uX3RhYmxlLCBnZXRfcHJvdG9fZW5jb2RpbmcsCglidWlsZF90eXBlZF9zZWxlY3Rvcl9yZWZlcmVuY2UsIGJ1aWxkX3NlbGVjdG9yX3JlZmVyZW5jZSwKCWJ1aWxkX25leHRfb2JqY19leGNlcHRpb25fc3R1ZmYsCglidWlsZF9tZXRob2RfcHJvdG90eXBlX2xpc3RfdGVtcGxhdGUsIGdlbmVyYXRlX2Rlc2NyaXB0b3JfdGFibGUsCglnZW5lcmF0ZV9wcm90b2NvbHMsIGJ1aWxkX3Byb3RvY29sX2luaXRpYWxpemVyLAoJYnVpbGRfaXZhcl9saXN0X3RlbXBsYXRlLCBidWlsZF9tZXRob2RfbGlzdF90ZW1wbGF0ZSwKCWJ1aWxkX2l2YXJfbGlzdF9pbml0aWFsaXplciwgZ2VuZXJhdGVfaXZhcnNfbGlzdCwKCWdlbmVyYXRlX2Rpc3BhdGNoX3RhYmxlLCBnZW5lcmF0ZV9wcm90b2NvbF9saXN0LAoJYnVpbGRfY2F0ZWdvcnlfaW5pdGlhbGl6ZXIsIGJ1aWxkX3NoYXJlZF9zdHJ1Y3R1cmVfaW5pdGlhbGl6ZXIsCglnZW5lcmF0ZV9zaGFyZWRfc3RydWN0dXJlcywgaGFuZGxlX2ltcGVudCwKCWdlbmVyYXRlX29iamNfaW1hZ2VfaW5mbyk6IFVzZSBidWlsZF9pbnRfY3N0LgoKMjAwNC0wOC0xNSAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiB2ZWMuaDogQ29tbWVudCBpbXByb3ZlbWVudHMuCgoyMDA0LTA4LTE0ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGMtY29tbW9uLmMgKHNob3J0ZW5fY29tcGFyZSwgcG9pbnRlcl9pbnRfc3VtLAoJY19jb21tb25fdHJ1dGh2YWx1ZV9jb252ZXJzaW9uLCBib29sZWFuX2luY3JlbWVudCk6IFJlcGxhY2UgY2FsbHMKCXRvIGJ1aWxkIHdpdGggY2FsbHMgdG8gYnVpbGROLgoJKiBjLWRlY2wuYyAoY29tcGxldGVfYXJyYXlfdHlwZSwgZ3Jva2RlY2xhcmF0b3IpOiBMaWtld2lzZS4KCSogYy1naW1wbGlmeS5jIChjX2J1aWxkX2JpbmRfZXhwciwgZ2ltcGxpZnlfY19sb29wLAoJZ2ltcGxpZnlfc3dpdGNoX3N0bXQpOiBMaWtld2lzZS4KCSogYy10eXBlY2suYyAoZGVmYXVsdF9mdW5jdGlvbl9hcnJheV9jb252ZXJzaW9uLAoJYnVpbGRfY29tcG9uZW50X3JlZiwgYnVpbGRfYXJyYXlfcmVmLCBidWlsZF9mdW5jdGlvbl9jYWxsLAoJcG9pbnRlcl9kaWZmLCBidWlsZF91bmFyeV9vcCwgYnVpbGRfY29uZGl0aW9uYWxfZXhwciwKCWJ1aWxkX2NvbXBvdW5kX2V4cHIsIGJ1aWxkX21vZGlmeV9leHByLCBjX2ZpbmlzaF9nb3RvX2xhYmVsLAoJY19maW5pc2hfZ290b19wdHIsIGNfZmluaXNoX3JldHVybiwgY19maW5pc2hfbG9vcCwKCWNfZmluaXNoX2JjX3N0bXQsIGNfZmluaXNoX3N0bXRfZXhwciwgY19lbmRfY29tcG91bmRfc3RtdCwKCWJ1aWxkX2JpbmFyeV9vcCk6IExpa2V3aXNlLgoKMjAwNC0wOC0xNSAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogcnRsLmMgKG5vdGVfaW5zbl9uYW1lKTogQWRkIE5PVEVfRElTQUJMRV9TQ0hFRF9PRl9CTE9DSy4KCjIwMDQtMDgtMTQgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBmaXhpbmMvaW5jbGhhY2suZGVmIChzdGRpb192YV9saXN0KTogQWxzbyBmaXggY29tX2Vyci5oLCBjcHMuaCwKCWN1cnNlcy5oLCBrcmI1LmgsIGxjX2NvcmUuaCwgcGZtdC5oLCB3Y2hhci5oIGFuZCBjdXJzZXNfY29sci9jdXJzZXMuaC4KCSogZml4aW5jL2ZpeGluY2wueDogUmVidWlsdC4KCjIwMDQtMDgtMTQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMtcHJvdG9zLmggKG1pcHNfc3ltYm9saWNfY29uc3RhbnRfcCkKCShtaXBzX2F0b21pY19zeW1ib2xpY19jb25zdGFudF9wLCBtaXBzX3N0YWNrX2FkZHJlc3NfcCkKCShtaXBzX3NtYWxsX2RhdGFfcGF0dGVybl9wKTogRGVjbGFyZS4KCSogY29uZmlnL21pcHMvbWlwcy5oIChDT05TVF9HUF9QKTogTW92ZWQgZnJvbSBtaXBzLmMuCgkoUFJFRElDQVRFX0NPREVTLCBTUEVDSUFMX01PREVfUFJFRElDQVRFUyk6IERlbGV0ZS4KCSogY29uZmlnL21pcHMvbWlwcy5jIChtaXBzX3N5bWJvbGljX2NvbnN0YW50X3ApOiBNYWtlIGdsb2JhbC4KCShtaXBzX2F0b21pY19zeW1ib2xpY19jb25zdGFudF9wLCBtaXBzX3N0YWNrX2FkZHJlc3NfcCk6IE5ldyBmdW5jdGlvbnMuCgkodW5zX2FyaXRoX29wZXJhbmQsIGNvbnN0X2FyaXRoX29wZXJhbmQsIGFyaXRoX29wZXJhbmQsIHNsZV9vcGVyYW5kKQoJKHNsZXVfb3BlcmFuZCwgc21hbGxfaW50LCByZWdfb3JfMF9vcGVyYW5kLCBjb25zdF9mbG9hdF8xX29wZXJhbmQpCgkocmVnX29yX2NvbnN0X2Zsb2F0XzFfb3BlcmFuZCwgaGlsb19vcGVyYW5kLCBleHRlbmRfb3BlcmF0b3IpCgkobWFjY19tc2FjX29wZXJhbmQsIGVxdWFsaXR5X29wLCBjbXBfb3AsIHRyYXBfY21wX29wKQoJKHBjX29yX2xhYmVsX29wZXJhbmQsIGNhbGxfaW5zbl9vcGVyYW5kLCBtb3ZlX29wZXJhbmQpCgkoY29uc3R0YWJsZV9vcGVyYW5kLCBzeW1ib2xpY19vcGVyYW5kLCBnZW5lcmFsX3N5bWJvbGljX29wZXJhbmQpCgkoZ2xvYmFsX2dvdF9vcGVyYW5kLCBsb2NhbF9nb3Rfb3BlcmFuZCwgc3RhY2tfb3BlcmFuZCkKCShmcF9yZWdpc3Rlcl9vcGVyYW5kLCBsb19vcGVyYW5kLCBmY2NfcmVnaXN0ZXJfb3BlcmFuZCk6IERlbGV0ZS4KCShtaXBzX3NtYWxsX2RhdGFfcGF0dGVybl8xKTogUmVuYW1lZCBmcm9tIHNtYWxsX2RhdGFfcGF0dGVybl8xLgoJKG1pcHNfc21hbGxfZGF0YV9wYXR0ZXJuX3ApOiBSZXBsYWNlIHByZXZpb3VzIHNtYWxsX2RhdGFfcGF0dGVybgoJcHJlZGljYXRlLiAgVHVybiBpbnRvIGEgYm9vbCAoKSAocnR4KSBmdW5jdGlvbi4KCSogY29uZmlnL21pcHMvcHJlZGljYXRlcy5tZDogTmV3IGZpbGUuCgkqIGNvbmZpZy9taXBzL21pcHMubWQ6IEluY2x1ZGUgaXQuICBVc2UgdGhlIHRhcmdldC1pbmRlcGVuZGVudAoJY29tcGFyaXNvbl9vcGVyYXRvciBpbnN0ZWFkIG9mIGNtcF9vcC4gIFJlbmFtZSB0cmFwX2NtcF9vcCB0bwoJdHJhcF9jb21wYXJpc29uX29wZXJhdG9yIGFuZCBlcXVhbGl0eV9vcCB0byBlcXVhbGl0eV9vcGVyYXRvci4KCVJlcGxhY2UgdXNlcyBvZiBzbWFsbF9pbnQgd2l0aCB0aGUgZXF1aXZhbGVudCBjb25zdF9hcml0aF9vcGVyYW5kLgoJUmVuYW1lIHJlZ19vcl9jb25zdF9mbG9hdF8xX29wZXJhbmQgdG8gcmVnX29yXzFfb3BlcmFuZC4gIFJlbmFtZQoJY29uc3RfZmxvYXRfMV9vcGVyYW5kIHRvIGNvbnN0XzFfb3BlcmFuZC4gIFJlbmFtZSBmY2NfcmVnaXN0ZXJfb3BlcmFuZAoJdG8gZmNjX3JlbG9hZF9vcGVyYW5kLgoJKiBjb25maWcvbWlwcy9zYjEubWQ6IFJlbmFtZSBmcF9yZWdpc3Rlcl9vcGVyYW5kIHRvIGZwcl9vcGVyYW5kLgoKMjAwNC0wOC0xNCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCglQUiBsaWJzdGRjKysvMTcwMDUgcGFydGlhbCBmaXguCgkqIHBhLWhwdXgxMS5oIChUQVJHRVRfT1NfQ1BQX0JVSUxUSU5TKTogRGVmaW5lIF9JTkNMVURFX19TVERDX0ExX1NPVVJDRQoJZXhjZXB0IHdoZW4gZ2VuZXJhdGluZyBBTlNJL0M4OSBjb2RlLgoKMjAwNC0wOC0xNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGMtY29tbW9uLmMgKHNob3J0ZW5fY29tcGFyZSk6IFVzZSBmb3JjZV9maXRfdHlwZSBkaXJlY3RseS4KCjIwMDQtMDgtMTQgIEdlcmFsZCBQZmVpZmVyICA8Z2VyYWxkQHBmZWlmZXIuY29tPgoJICAgIERpbWl0cmkgUGFwYWRvcG91bG9zLU9yZmFub3MgIDxwYXBhZG9wb0BzaGZqLmNlYS5mcj4KCSAgICBEYXZlIEtvcm4gIDxka0BhcnRpbWkuY29tPgoKCSogZG9jL2luc3RhbGwudGV4aSAoQnVpbGRpbmcpOiBBdm9pZCBkdXBsaWNhdGUgcmVmZXJlbmNlIHRvIEdOVQoJbWFrZSByZXF1aXJlbWVudC4KCSgqLSotc29sYXJpczIqKTogRG8gbm90IHJlY29tbWVuZCBHTlUgbWFrZSBhbnkgbG9uZ2VyLiAgU2ltcGxpZnkuCgoyMDA0LTA4LTE0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2FscGhhL2FscGhhLmggKFBST01PVEVfTU9ERSk6IERvbid0IHByb21vdGUgdmVjdG9yIHR5cGVzLgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoZnVuY3Rpb25fdmFsdWUpOiBVc2UgUFJPTU9URV9NT0RFLgoKMjAwNC0wOC0xMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKGNhbGxfMSwgc2liY2FsbF8xLCBjYWxsXzFfcmV4NjQpOiBVc2UgUG1vZGUKCWZvciBjb25zdGFudF9jYWxsX2FkZHJlc3Nfb3BlcmFuZC4KCShjYWxsX3ZhbHVlX3BvcF8xLCBjYWxsX3ZhbHVlXzEpOiBMaWtld2lzZS4KCShzaWJjYWxsX3ZhbHVlXzEsIGNhbGxfdmFsdWVfMV9yZXg2NCk6IExpa2V3aXNlLgoKMjAwNC0wOC0xMyAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogY29uZmlnL21pcHMvc2IxLm1kIChpcl9zYjFfZGl2ZGZfMnBpcGVzLCBpcl9zYjFfZGl2ZGZfMXBpcGUpOgoJQ29ycmVjdCBtb2RlIGZyb20gU0Ztb2RlIHRvIERGbW9kZS4KCjIwMDQtMDgtMTMgIFppZW1vd2l0IExhc2tpICA8emxhc2tpQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW4uaCAoRVhUUkFfU0VDVElPTl9GVU5DVElPTlMpOiBNYXJrIHRoZSBfX3NlbF9maXh1cCwKCV9fY3N0cmluZ19vYmplY3QgYW5kIF9faW1hZ2VfaW5mbyBzZWN0aW9ucyB3aXRoIHRoZSBub19kZWFkX3N0cmlwCglhdHRyaWJ1dGUuCgoyMDA0LTA4LTEzICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCSAgICBEYXZpZCBCaWxsaW5naHVyc3QgIDxEYXZpZC5CaWxsaW5naHVyc3RAcmlvdGludG8uY29tPgoKCVBSIGxpYmdmb3J0cmFuLzE1OTMwCgkqIGZpeGluYy9pbmNsaGFjay5kZWYgKGlyaXhfX19nZW5lcmljMSwgaXJpeF9fX2dlbmVyaWMyKTogTmV3LgoJKiBmaXhpbmMvZml4aW5jbC54OiBSZWdlbmVyYXRlLgoJKiBmaXhpbmMvdGVzdHMvYmFzZS9pbnRlcm5hbC9tYXRoX2NvcmUuaDogTmV3IGZpbGUuCgoyMDA0LTA4LTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZGJ4b3V0LmMgKE5PX0RCWF9GVU5DVElPTl9FTkQpOiBEZWZhdWx0IHRvIHplcm8uCgkoZGJ4b3V0X2Z1bmN0aW9uX2VuZCk6IFJlbW92ZSBpZmRlZnMgZm9yIGl0LgoJKGRieG91dF9iZWdpbl9wcm9sb2d1ZSk6IFByb3RlY3QgTl9CTlNZTSB3aXRoIGl0LCBhbmQgZ2RiIGV4dGVuc2lvbnMuCgoyMDA0LTA4LTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuaW4gKGluc24tcHJlZHMubyk6IERlcGVuZCBvbiBUUkVFX0guCgkqIGdlbnByZWRzLmMgKHdyaXRlX2luc25fcHJlZHNfYyk6IEluY2x1ZGUgdHJlZS5oLgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAocmVnX29yXzBfb3BlcmFuZCwgcmVnX29yXzZiaXRfb3BlcmFuZCwKCXJlZ19vcl84Yml0X29wZXJhbmQsIGNpbnQ4X29wZXJhbmQsIGFkZF9vcGVyYW5kLCBzZXh0X2FkZF9vcGVyYW5kLAoJY29uc3Q0OF9vcGVyYW5kLCBhbmRfb3BlcmFuZCwgb3Jfb3BlcmFuZCwgbW9kZV93aWR0aF9vcGVyYW5kLAoJbW9kZV9tYXNrX29wZXJhbmQsIG11bDhfb3BlcmFuZCwgY29uc3QwX29wZXJhbmQsCgloYXJkX2ZwX3JlZ2lzdGVyX29wZXJhbmQsIGhhcmRfaW50X3JlZ2lzdGVyX29wZXJhbmQsCglyZWdfb3JfY2ludF9vcGVyYW5kLCBzb21lX29wZXJhbmQsIHNvbWVfbmlfb3BlcmFuZCwgaW5wdXRfb3BlcmFuZCwKCXNhbWVncF9mdW5jdGlvbl9vcGVyYW5kLCBkaXJlY3RfY2FsbF9vcGVyYW5kLCBzbWFsbF9zeW1ib2xpY19vcGVyYW5kLAoJZ2xvYmFsX3N5bWJvbGljX29wZXJhbmQsIGNhbGxfb3BlcmFuZCwgc3ltYm9saWNfb3BlcmFuZCwKCWR0cDE2X3N5bWJvbGljX29wZXJhbmQsIGR0cDMyX3N5bWJvbGljX29wZXJhbmQsCglnb3RkdHBfc3ltYm9saWNfb3BlcmFuZCwgdHAxNl9zeW1ib2xpY19vcGVyYW5kLCB0cDMyX3N5bWJvbGljX29wZXJhbmQsCglnb3R0cF9zeW1ib2xpY19vcGVyYW5kLCBhbHBoYV9jb21wYXJpc29uX29wZXJhdG9yLAoJYWxwaGFfemVyb19jb21wYXJpc29uX29wZXJhdG9yLCBhbHBoYV9zd2FwcGVkX2NvbXBhcmlzb25fb3BlcmF0b3IsCglzaWduZWRfY29tcGFyaXNvbl9vcGVyYXRvciwgYWxwaGFfZnBfY29tcGFyaXNvbl9vcGVyYXRvciwKCWRpdm1vZF9vcGVyYXRvciwgZml4X29wZXJhdG9yLCBhbGlnbmVkX21lbW9yeV9vcGVyYW5kLAoJdW5hbGlnbmVkX21lbW9yeV9vcGVyYW5kLCByZWdfb3JfdW5hbGlnbmVkX21lbV9vcGVyYW5kLAoJYW55X21lbW9yeV9vcGVyYW5kLCByZWdfbm90X2VsaW1fb3BlcmFuZCwgbm9ybWFsX21lbW9yeV9vcGVyYW5kLAoJcmVnX25vX3N1YnJlZ19vcGVyYW5kLCBhZGRpdGlvbl9vcGVyYXRpb24pOiBNb3ZlIHRvIHByZWRpY2F0ZXMubWQuCgkocmVnX29yX2NvbnN0X2ludF9vcGVyYW5kKTogUmVtb3ZlLiAgUmVwbGFjZSBhbGwgdXNlcnMgd2l0aAoJcmVnX29yX2NpbnRfb3BlcmFuZC4KCSh0bHNfc3ltYm9saWNfb3BlcmFuZF8xKTogRXhwb3J0LiAgRG9uJ3QgY2hlY2sgbW9kZSBvciBmb3IgQ09OU1QuCgkocmVzb2x2ZV9yZWxvYWRfb3BlcmFuZCk6IFNwbGl0IG91dCBvZiBhbGlnbmVkX21lbW9yeV9vcGVyYW5kLgoJKiBjb25maWcvYWxwaGEvYWxwaGEtcHJvdG9zLmg6IFVwZGF0ZSBmb3IgZXhwb3J0cy4KCSogY29uZmlnL2FscGhhL2FscGhhLmggKFBSRURJQ0FURV9DT0RFUyk6IFJlbW92ZS4KCSogY29uZmlnL2FscGhhL2FscGhhLm1kOiBJbmNsdWRlIHByZWRpY2F0ZXMubWQuCgkqIGNvbmZpZy9hbHBoYS9wcmVkaWNhdGVzLm1kOiBOZXcgZmlsZS4KCjIwMDQtMDgtMTMgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGdlbmF0dHJ0YWIuYyAoaW5zbl9lbnQpOiBSZXBsYWNlIGluc25fY29kZSwgaW5zbl9pbmRleCBhbmQgbGluZW5vCglmaWVsZHMgd2l0aCBhIHBvaW50ZXIgdG8gdGhlIGluc3RydWN0aW9uIGRlZmluaXRpb24uCgkoZ2V0X2F0dHJfdmFsdWUsIGZpbGxfYXR0ciwgbWFrZV9sZW5ndGhfYXR0cnMsIHJlbW92ZV9pbnNuX2VudCkKCShpbnNlcnRfaW5zbl9lbnQsIHNpbXBsaWZ5X3Rlc3RfZXhwLCBvcHRpbWl6ZV9hdHRycywgd3JpdGVfYXR0cl9nZXQpCgkod3JpdGVfYXR0cl9jYXNlLCB3cml0ZV9jb25zdF9udW1fZGVsYXlfc2xvdHMpOiBVcGRhdGUgYWNjb3JkaW5nbHkuCgkod3JpdGVfYXR0cl9jYXNlLCB3cml0ZV9jb25zdF9udW1fZGVsYXlfc2xvdHMpOiBXcml0ZSB0aGUgbmFtZSBvZgoJYW4gaW5zbiBuZXh0IHRvIGl0cyBjYXNlIHN0YXRlbWVudC4KCSogZ2Vub3V0cHV0LmMgKGRhdGEpOiBBZGQgYSBmaWxlbmFtZSBmaWVsZC4KCShnZW5faW5zbiwgZ2VuX3BlZXBob2xlLCBnZW5fZXhwYW5kLCBnZW5fc3BsaXQpOiBTZXQgaXQuCgkob3V0cHV0X2luc25fZGF0YSk6IFByaW50IHRoZSBsb2NhdGlvbiBvZiBlYWNoIGluc24gZGVmaW5pdGlvbi4KCSogZ2VucmVjb2cuYyAod3JpdGVfYWN0aW9uKTogUHJpbnQgdGhlIG5hbWUgb2YgYW4gaW5zbiBhYm92ZQoJdGhlIHN0YXRlbWVudCB0aGF0IHJldHVybnMgaXRzIGNvZGUuCgoyMDA0LTA4LTEyICBBbmRyZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KCgkqIGNvbmZpZy9kYXJ3aW4tYy5jIChmaW5kX3N1YmZyYW1ld29ya19maWxlKTogRml4IHNwZWxsaW5nIG9mIGNhbm5vdC4KCSogY29uZmlnL2xpYmdsb3NzLmg6IExpa2V3aXNlLgoJKiBjb25maWcvYXJtL2FybS5jIChhcm1fZ2VuX2xvYWRfbXVsdGlwbGUpOiBMaWtld2lzZS4KCSogYzR4L2M0eC1tb2Rlcy5kZWY6IExpa2V3aXNlLgoJKiBjb25maWcvYzR4L2M0eC5jIChjNHhfaGFyZF9yZWdub19yZW5hbWVfb2spOiBMaWtld2lzZS4KCShjNHhfcnB0Yl9ub3BfcCk6IExpa2V3aXNlLgoJKGM0eF9ycHRiX3ZhbGlkX3ApOiBMaWtld2lzZS4KCShjNHhfcnB0Yl9pbnNlcnQpOiBMaWtld2lzZS4KCShjNHhfYWRkcmVzc19jb25mbGljdCk6IExpa2V3aXNlLgoJKiBjb25maWcvYzR4L2M0eC5tZDogTGlrZXdpc2UuCgkqIGNvbmZpZy9mcnYvZnJ2Lm1kOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvYXRobG9uLm1kOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvaTM4Ni5tZDogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L3ByZWRpY2F0ZXMubWQ6IExpa2V3aXNlLgoJKiBjb25maWcvaWE2NC9pYTY0LmM6IExpa2V3aXNlLgoJKiBjb25maWcvaWE2NC9pdGFuaXVtMS5tZDogTGlrZXdpc2UuCgkqIGNvbmZpZy9pYTY0L2l0YW5pdW0yLm1kOiBMaWtld2lzZS4KCSogY29uZmlnL2lxMjAwMC9pcTIwMDAubWQ6IExpa2V3aXNlLgoJKiBjb25maWcvbWNvcmUvbWNvcmUuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy9taXBzL21pcHMuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy9taXBzL3IzOTAwLmg6IExpa2V3aXNlLgoJKiBjb25maWcvbWlwcy9zYjEubWQ6IExpa2V3aXNlLgoJKiBjb25maWcvcGEvbWlsbGk2NC5TOiBMaWtld2lzZS4KCSogY29uZmlnL3BhL3BhLmM6IExpa2V3aXNlLgoJKiBjb25maWcvcGEvcGEuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvODU0MC5tZDogTGlrZXdpc2UuCgoyMDA0LTA4LTEzICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIE1ha2VmaWxlLmluIChCT09UX0NGTEFHUyk6IFJlbW92ZSBhY2NpZGVudGFsIGFkZGl0aW9uIG9mIC1kVS4KCjIwMDQtMDgtMTMgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogc2gubWQgKGNicmFuY2ggZGVmaW5lX2RlbGF5KSBVc2UgY29uZF9kZWxheV9zbG90IGZvcgoJbm9uLWFudWxsZWQgY29uZGl0aW9uIHRvby4KCjIwMDQtMDgtMTIgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKGFueV9wYXJhbGxlbF9vcGVyYW5kKTogTmV3IHByZWRpY2F0ZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuaCAoUFJFRElDQVRFX0NPREVTKTogQWRkCglhbnlfcGFyYWxsZWxfb3BlcmFuZCwgbG13X29wZXJhdGlvbiwgc3Rtd19vcGVyYXRpb24sCgltZmNyX29wZXJhdGlvbiwgbXRjcmZfb3BlcmF0aW9uLiAgUmVtb3ZlIFBBUkFMTEVMIGZyb20gYW55X29wZXJhbmQuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChzYXZlX2ZwcmVnc197c2ksZGl9KTogVXNlCglhbnlfcGFyYWxsZWxfb3BlcmFuZC4KCShyZXR1cm5fYW5kX3Jlc3RvcmVfZnByZWdzX3tzaSxkaX0pOiBTYW1lLgoKMjAwNC0wOC0xMiAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdlbnJlY29nLmMgKGFkZF90b19zZXF1ZW5jZSk6IFdoZW4gcHJvY2Vzc2luZyBhIE1BVENIX1BBUkFMTEVMLAoJaWYgcHJlZC0+c2luZ2xldG9uICE9IFBBUkFMTEVMLCBpc3N1ZSBhIHdhcm5pbmcgYW5kIHByZXRlbmQgaXQgd2FzLgoJQWxzbyBpc3N1ZSBhIHdhcm5pbmcgZm9yIGFueSBwcmVkaWNhdGUgd2UgZG9uJ3Qga25vdyBhYm91dC4KCjIwMDQtMDgtMTIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGludGVybmFsX2xhYmVsX3ByZWZpeCk6IEV4cG9ydC4KCShpbnRlcm5hbF9sYWJlbF9wcmVmaXhfbGVuLCBzdHJ1Y3QgaXg4Nl9hZGRyZXNzLAoJaXg4Nl9kZWNvbXBvc2VfYWRkcmVzcywgbWF5YmVfZ2V0X3Bvb2xfY29uc3RhbnQsCglpeDg2X2ZwX2NvbXBhcmVfY29kZV90b19pbnRlZ2VyLCBpeDg2X2ZwX2NvbXBhcmlzb25fY29kZXMsCgltZW1vcnlfYWRkcmVzc19sZW5ndGgpOiBFeHBvcnQuCgkoYW55X2ZwX3JlZ2lzdGVyX29wZXJhbmQsIGZwX3JlZ2lzdGVyX29wZXJhbmQsCglyZWdpc3Rlcl9hbmRfbm90X2FueV9mcF9yZWdfb3BlcmFuZCwgcmVnaXN0ZXJfYW5kX25vdF9mcF9yZWdfb3BlcmFuZCwKCXg4Nl82NF9nZW5lcmFsX29wZXJhbmQsIHg4Nl82NF9zemV4dF9nZW5lcmFsX29wZXJhbmQsCgl4ODZfNjRfbm9ubWVtb3J5X29wZXJhbmQsIHg4Nl82NF9tb3ZhYnNfb3BlcmFuZCwKCXg4Nl82NF9zemV4dF9ub25tZW1vcnlfb3BlcmFuZCwgeDg2XzY0X2ltbWVkaWF0ZV9vcGVyYW5kLAoJeDg2XzY0X3pleHRfaW1tZWRpYXRlX29wZXJhbmQsIGNvbnN0X2ludF8xXzMxX29wZXJhbmQsCglzeW1ib2xpY19vcGVyYW5kLCBwaWNfc3ltYm9saWNfb3BlcmFuZCwgbG9jYWxfc3ltYm9saWNfb3BlcmFuZCwKCXRsc19zeW1ib2xpY19vcGVyYW5kLCBnbG9iYWxfZHluYW1pY19zeW1ib2xpY19vcGVyYW5kLAoJbG9jYWxfZHluYW1pY19zeW1ib2xpY19vcGVyYW5kLCBpbml0aWFsX2V4ZWNfc3ltYm9saWNfb3BlcmFuZCwKCWxvY2FsX2V4ZWNfc3ltYm9saWNfb3BlcmFuZCwgY2FsbF9pbnNuX29wZXJhbmQsIHNpYmNhbGxfaW5zbl9vcGVyYW5kLAoJY29uc3RhbnRfY2FsbF9hZGRyZXNzX29wZXJhbmQsIGNvbnN0MF9vcGVyYW5kLCBjb25zdDFfb3BlcmFuZCwKCWNvbnN0MjQ4X29wZXJhbmQsIGNvbnN0XzBfdG9fM19vcGVyYW5kLCBjb25zdF8wX3RvXzdfb3BlcmFuZCwKCWNvbnN0XzBfdG9fMTVfb3BlcmFuZCwgY29uc3RfMF90b18yNTVfb3BlcmFuZCwgaW5jZGVjX29wZXJhbmQsCglzaGlmdGRpX29wZXJhbmQsIHJlZ19ub19zcF9vcGVyYW5kLCBtbXhfcmVnX29wZXJhbmQsCglnZW5lcmFsX25vX2VsaW1fb3BlcmFuZCwgbm9ubWVtb3J5X25vX2VsaW1fb3BlcmFuZCwKCWluZGV4X3JlZ2lzdGVyX29wZXJhbmQsIHFfcmVnc19vcGVyYW5kLCBmbGFnc19yZWdfb3BlcmFuZCwKCW5vbl9xX3JlZ3Nfb3BlcmFuZCwgemVyb19leHRlbmRlZF9zY2FsYXJfbG9hZF9vcGVyYW5kLAoJdmVjdG9yX21vdmVfb3BlcmFuZCwgbm9fc2VnX2FkZHJlc3Nfb3BlcmFuZCwgc3NlX2NvbXBhcmlzb25fb3BlcmF0b3IsCglpeDg2X2NvbXBhcmlzb25fb3BlcmF0b3IsIGl4ODZfY2FycnlfZmxhZ19vcGVyYXRvciwKCWZjbW92X2NvbXBhcmlzb25fb3BlcmF0b3IsIHByb21vdGFibGVfYmluYXJ5X29wZXJhdG9yLAoJY21wX2ZwX2V4cGFuZGVyX29wZXJhbmQsIGV4dF9yZWdpc3Rlcl9vcGVyYW5kLCBiaW5hcnlfZnBfb3BlcmF0b3IsCgltdWx0X29wZXJhdG9yLCBkaXZfb3BlcmF0b3IsIGFyaXRoX29yX2xvZ2ljYWxfb3BlcmF0b3IsCgltZW1vcnlfZGlzcGxhY2VtZW50X29wZXJhbmQsIGNtcHNpX29wZXJhbmQsIGxvbmdfbWVtb3J5X29wZXJhbmQsCglhbGlnbmVkX29wZXJhbmQpOiBNb3ZlIHRvIHByZWRpY2F0ZXMubWQgYXMgZGVmaW5lX3ByZWRpY2F0ZXMuCgkodGxzX3N5bWJvbGljX29wZXJhbmRfMSk6IFJlbW92ZS4KCSh4ODZfNjRfc2lnbl9leHRlbmRlZF92YWx1ZSk6IE1lcmdlIGludG8geDg2XzY0X2ltbWVkaWF0ZV9vcGVyYW5kLgoJKHg4Nl82NF96ZXJvX2V4dGVuZGVkX3ZhbHVlKTogTWVyZ2UgaW50byB4ODZfNjRfemV4dF9pbW1lZGlhdGVfb3BlcmFuZC4KCShsZWdpdGltaXplX2FkZHJlc3MpOiBNZXJnZSB0bHNfc3ltYm9saWNfb3BlcmFuZCBjb250ZW50cy4KCShpeDg2X2V4cGFuZF9tb3ZlKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L2kzODYtcHJvdG9zLmg6IFVwZGF0ZSBmb3IgZXhwb3J0cy4KCSogY29uZmlnL2kzODYvaTM4Ni5oIChFWFRSQV9DT05TVFJBSU5UKTogVXBkYXRlIGZvciByZW5hbWVzLgoJKFBSRURJQ0FURV9DT0RFUywgU1BFQ0lBTF9NT0RFX1BSRURJQ0FURVMpOiBSZW1vdmUuCgkqIGNvbmZpZy9pMzg2L2kzODYubWQ6IEluY2x1ZGUgcHJlZGljYXRlcy5tZC4KCSogY29uZmlnL2kzODYvcHJlZGljYXRlcy5tZDogTmV3IGZpbGUuCgoyMDA0LTA4LTEzICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCVBSIGMrKy8xNjkyNAoJKiBjb25maWcvaTM4Ni93aW5udC5jIChpMzg2X3BlX21hcmtfZGxsZXhwb3J0KTogU2V0CglTWU1CT0xfUkVGX0RFQ0wuCgkoaTM4Nl9wZV9tYXJrX2RsbGltcG9ydCk6IExpa2V3aXNlLgoJKGkzODZfcGVfZW5jb2RlX3NlY3Rpb25faW5mbyk6IExpa2V3aXNlLCB3aGVuIG92ZXJyaWRpbmcKCWRsbGltcG9ydCBhdHRyaWJ1dGUuCgoyMDA0LTA4LTEyICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYzogV2hlbiB0ZXN0aW5nIGZvciBmbGV4LCBubSwgYXIsIGFuZCBiaXNvbiwgY2hlY2sKCXRoYXQgdGhleSB3aWxsIGFjdHVhbGx5IGJlIGJ1aWx0LgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA0LTA4LTEyICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLmggKE1BWF9GSVhFRF9NT0RFX1NJWkUpOiBEZWZpbmUuCgkoTU9WRV9NQVhfUElFQ0VTKTogRGVmaW5lLgoKMjAwNC0wOC0xMiAgRGV2YW5nIHBhdGVsICA8ZHBhdGVsQGFwcGxlLmNvbT4KCgkqIGRieG91dC5jIChkYnhvdXRfYmVnaW5fcHJvbG9ndWUpOiBOZXcgZnVuY3Rpb24uCgkoZGJ4X2RlYnVnX2hvb2tzKTogVXNlIG5ldyBiZWdpbiBwcm9sb2d1ZSBob29rLgoJKGRieG91dF9mdW5jdGlvbl9lbmQpOiBFbWl0IE5fRU5TWU0uCgkqIHN0YWIuZGVmIChOX0JOU1lNLCBOX0VOU1lNKTogRGVmaW5lIGFuZCBkb2N1bWVudCB0aGVzZSB0d28gbmV3IHN0YWJzLgoKMjAwNC0wOC0xMiAgSmFuaXMgSm9obnNvbiAgPGphbmlzMTg3QHVzLmlibS5jb20+CgoJKiBjb25maWcvcnM2MDAwL2FsdGl2ZWMuaCAodmVjX2RzdCk6IEZpeCBDKysgZnVuY3Rpb25zIHdob3NlIGZpcnN0Cglhcmd1bWVudCBpcyBmbG9hdCouCgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChhbHRpdmVjX2luaXRfYnVpbHRpbnMpOiBGaXggYXJndW1lbnQgdHlwZQoJZm9yIHZlY19kc3MuCgoJKiBkb2MvZXh0ZW5kLnRleGkgKEFsdGlWZWMgYnVpbHRpbnMpOiBGaXggZGVzY3JpcHRpb24gZm9yIHJlY2VudAoJY2hhbmdlcy4gIFVwZGF0ZSBvcGVyYXRpb24gbGlzdCB0byBtYXRjaCBjdXJyZW50IHN1cHBvcnQuCgoyMDA0LTA4LTEyICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsMUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5jIChzdHJ1Y3QgczM5MF9mcmFtZV9sYXlvdXQpOiBOZXcgc3RydWN0IGFzIGVsZW1lbnQKCW9mIHN0cnVjdCBtYWNoaW5lX2Z1bmN0aW9uLgoJKGNmdW4tPm1hY2hpbmUtPmZyYW1lX3NpemUpOiBNb3ZlZCBpbnRvIGNmdW4tPm1hY2hpbmUtPmZyYW1lX2xheW91dCBhbmQKCWNoYW5nZWQgYWxsIHVzZXMuCgkoY2Z1bi0+bWFjaGluZS0+c2F2ZV9mcHJzX3ApOiBSZXBsYWNlZCBieSBjZnVuX3NhdmVfaGlnaF9mcHJzIGFuZAoJY2hhbmdlZCBhbGwgdXNlcy4KCShjZnVuX2ZyYW1lX2xheW91dCwgY2Z1bl9zYXZlX2hpZ2hfZnByc19wLCBjZnVuX2dwcnNfc2F2ZV9hcmVhX3NpemUpCgkoY2Z1bl9zZXRfZnByX2JpdCwgY2Z1bl9mcHJfYml0X3ApOiBOZXcgbWFjcm9zLgoJKHMzOTBfZnJhbWVfYXJlYSwgczM5MF9yZWdpc3Rlcl9pbmZvKTogTmV3IGZ1bmN0aW9ucy4KCShzMzkwX29wdGltaXplX3Byb2xvZyk6IFJlbmFtZWQgdG8gczM5MF9vcHRpbWl6ZV9wcm9sb2d1ZS4gIEFkZGVkIGNoZWNrCglmb3IgYmFzZSByZWdpc3Rlci4KCShzMzkwX3JldHVybl9hZGRyX3J0eCwgczM5MF9yZXR1cm5fYWRkcmVzc19vZmZzZXQpCgkoczM5MF92YV9zdGFydCwgczM5MF9naW1wbGlmeV92YV9hcmcpCgkoczM5MF9lbWl0X3Byb2xvZ3VlLCBzMzkwX2VtaXRfZXBpbG9ndWUpOiBBZGp1c3RlZCBmb3IgbmV3IHN0YWNrCglsYXlvdXRzLgoJKHMzOTBfZnJhbWVfaW5mbyk6IEZ1bmN0aW9uYWxpdHkgcGFydGx5IG1vdmVkIHRvIHMzOTBfcmVnaXN0ZXJfaW5mby4KCU1hZGUgYWRhcHRpb25zIGZvciBuZXcgc3RhY2sgbGF5b3V0LgoJKHNhdmVfZ3BycywgcmVzdG9yZV9ncHJzKTogQ2hhbmdlZCBtZWFuaW5nIG9mIHNlY29uZCBwYXJhbWV0ZXIgYW5kCglhZGFwdGVkIGFsbCBjYWxsZXJzLgoKCSogY29uZmlnL3MzOTAvczM5MC5oIChzMzkwX2JhY2tjaGFpbl9zdHJpbmcpOiBOZXcgZ2xvYmFsIHZhcmlhYmxlLgoJKE1BU0tfQkFDS0NIQUlOKTogUmVtb3ZlZCBkZWZpbml0aW9uLgoJKFRBUkdFVF9CQUNLQ0hBSU4pOiBDaGFuZ2VkIGNoZWNrLgoJKFRBUkdFVF9LRVJORUxfQkFDS0NIQUlOKTogTmV3IG1hY3JvLgoJKFRBUkdFVF9TV0lUQ0hFUyk6IFJlbW92ZWQgZW50cmllcyBvZiAiYmFja2NoYWluIiBhbmQgIm5vLWJhY2tjaGFpbiIuCgkoVEFSR0VUX09QVElPTlMpOiBBZGRlZCAiYmFja2NoYWluIiwgIm5vLWJhY2tjaGFpbiIgYW5kCgkia2VybmVsLWJhY2tjaGFpbiIuCgkoRFlOQU1JQ19DSEFJTl9BRERSRVNTKTogQWRqdXN0ZWQgZm9yIG5ldyBzdGFjayBsYXlvdXRzLgoKCSogY29uZmlnL3MzOTAvczM5MC5tZCAoImFsbG9jYXRlX3N0YWNrIik6IEFkZGVkIFRBUkdFVF9LRVJORUxfQkFDS0NIQUlOCglhcyBjb25kaXRpb24uICBBZGp1c3RlZCBmb3IgbmV3IHN0YWNrIGxheW91dC4KCgkqIGRvYy9pbnZva2UudGV4aTogQWRkZWQgZG9jdW1lbnRhdGlvbiBmb3IgbmV3IG9wdGlvbgoJIi1ta2VybmVsLWJhY2tjaGFpbiIgYW5kIGFkanVzdGVkIGRvY3VtZW50YXRpb24gb2YgIi1tYmFja2NoYWluIiBhbmQKCSItbW5vLWJhY2tjaGFpbiIuCgoyMDA0LTA4LTEyICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnL2FybS9saWIxZnVuY3MuYXNtIChBUk1fRlVOQ19BTElBUyk6IEFsc28gYWxpYXMgX0xfX25hbWUuCgkoYWVhYmlfdWlkaXZtb2QsIGFlYWJpX2lkaXZtb2QpOiBQcm92aWRlIHRodW1iIGltcGxlbWVudGF0aW9uLgoKMjAwNC0wOC0xMiAgRGF2aWQgRGFuZXkgIDxkZGFuZXlAYXZ0cmV4LmNvbT4KCgkqIGphdmEvZ2NqLnRleGk6ICBBZGQgc3Vic2VjdGlvbiBvbiBzaWduYWwgdXNhZ2UuCgoyMDA0LTA4LTEyICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBleHByLmMgKG1vdmVfYnlfcGllY2VzKTogU2V0IGFsaWdubWVudCBmb3IgbW92ZSB0byBtaW5pbXVtIG9mCglNT1ZFX01BWF9QSUVDRVMgbW9kZSBhbGlnbm1lbnQgYW5kIHRoZSBsYXJnZXN0IG5vbi1zbG93IG1vZGUKCWFsaWdubWVudCwgYnV0IG5vdCBsZXNzIHRoYW4gdGhlIG9yaWdpbmFsIGFsaWdubWVudC4KCShtb3ZlX2J5X3BpZWNlc19uaW5zbnMpOiBTYW1lLgoJKGNhbl9zdG9yZV9ieV9waWVjZXMpOiBTaW1pbGFyIGZvciBzdG9yZSB3aXRoIFNUT1JFX01BWF9QSUVDRVMuCgkoc3RvcmVfYnlfcGllY2VzXzEpOiBTYW1lLgoKMjAwNC0wOC0xMiAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTY4NjcKCSogdHJlZS5jIChpc19nbG9iYWxfdmFyKTogTmV3IGZ1bmN0aW9uLgoJKG5lZWRzX3RvX2xpdmVfaW5fbWVtb3J5KTogQ2hlY2sgZm9yIFRSRUVfQUREUkVTU0FCTEUuCglDYWxsIGlzX2dsb2JhbF92YXIuCgkqIHRyZWUuaCAoREVDTF9ORUVEU19UT19MSVZFX0lOX01FTU9SWV9JTlRFUk5BTCk6IFJlbW92ZS4KCVVwZGF0ZSBhbGwgdXNlcnMuCgkoaXNfZ2xvYmFsX3Zhcik6IERlY2xhcmUuCgkqIHRyZWUtZGZhLmMgKGR1bXBfdmFyaWFibGUpOiBEaXNwbGF5IGdsb2JhbCBhbmQgYWRkcmVzc2FibGUKCWF0dHJpYnV0ZXMuCgkoYWRkX3JlZmVyZW5jZWRfdmFyKTogQ2xhcmlmeSBkb2N1bWVudGF0aW9uIHdoZW4gbWFya2luZwoJdmFyaWFibGVzIGNhbGwtY2xvYmJlcmVkLgoJKiB0cmVlLWZsb3ctaW5saW5lLmggKGlzX2NhbGxfY2xvYmJlcmVkKTogQ2FsbCBpc19nbG9iYWxfdmFyCglpbnN0ZWFkIG9mIG5lZWRzX3RvX2xpdmVfaW5fbWVtb3J5LgoJKG1hcmtfY2FsbF9jbG9iYmVyZWQpOiBJZiB0aGUgdmFyaWFibGUgaXMgYSB0YWcsIG1hcmsgaXQKCURFQ0xfRVhURVJOQUwuCgkqIHRyZWUtZ2ltcGxlLmMgKGlzX2dpbXBsZV9yZWcpOiBEb24ndCBjaGVjayBmb3IKCVRSRUVfQUREUkVTU0FCTEUuCgkoaXNfZ2ltcGxlX25vbl9hZGRyZXNzYWJsZSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1hbGlhcy5jIChnZXRfbm10X2Zvcik6IEFsd2F5cyBjaGVjayB3aGV0aGVyIHRoZSB0YWcKCW5lZWRzIHRvIGJlIG1hcmtlZCBjYWxsLWNsb2JiZXJlZC4KCShzZXR1cF9wb2ludGVyc19hbmRfYWRkcmVzc2FibGVzKTogQ2FsbCBpc19nbG9iYWxfdmFyIGluc3RlYWQKCW9mIG5lZWRzX3RvX2xpdmVfaW5fbWVtb3J5LgoJKiB0cmVlLXNzYS1kY2UuYyAobmVlZF90b19wcmVzZXJ2ZV9zdG9yZSk6IFJlbW92ZS4KCVVwZGF0ZSBhbGwgdXNlcnMgd2l0aCBpc19nbG9iYWxfdmFyLgoJKG1hcmtfc3RtdF9pZl9vYnZpb3VzbHlfbmVjZXNzYXJ5KTogRml4IHByb2Nlc3Npbmcgb2YgYWxpYXNlZAoJc3RvcmVzLiAgRG9uJ3QgY2hlY2sgdGhlIHZpcnR1YWwgZGVmaW5pdGlvbnMuICBSYXRoZXIsIGNoZWNrCgl3aGV0aGVyIHRoZSBzdG9yZSBpcyBnb2luZyBpbnRvIGdsb2JhbCBtZW1vcnkuCgkoZmluZF9vYnZpb3VzbHlfbmVjZXNzYXJ5X3N0bXRzKTogR2V0IHRoZSBzeW1ib2wgZnJvbSB0aGUgUEhJCglyZXN1bHQuCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGdldF9jYWxsX2V4cHJfb3BlcmFuZHMpOiBEbyBub3QgYWRkCgljbG9iYmVyaW5nIG1heS1kZWZzIGlmIHRoZSBjYWxsIGRvZXMgbm90IGhhdmUgc2lkZSBlZmZlY3RzLgoKMjAwNC0wOC0xMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgYysrLzE2Mjc2CgkqIG91dHB1dC5oIChkZWZhdWx0X2Z1bmN0aW9uX3JvZGF0YV9zZWN0aW9uLAoJZGVmYXVsdF9ub19mdW5jdGlvbl9yb2RhdGFfc2VjdGlvbik6IE5ldyBwcm90b3R5cGVzLgoJKiB0YXJnZXQuaCAoc3RydWN0IGdjY190YXJnZXQpOiBBZGQgYXNtX291dC5mdW5jdGlvbl9yb2RhdGFfc2VjdGlvbi4KCSogdGFyZ2V0LWRlZi5oIChUQVJHRVRfQVNNX0ZVTkNUSU9OX1JPREFUQV9TRUNUSU9OKTogRGVmaW5lLgoJKFRBUkdFVF9BU01fT1VUKTogQWRkIGl0LgoJKiB2YXJhc20uYyAoZGVmYXVsdF9mdW5jdGlvbl9yb2RhdGFfc2VjdGlvbiwKCWRlZmF1bHRfbm9fZnVuY3Rpb25fcm9kYXRhX3NlY3Rpb24pOiBOZXcgZnVuY3Rpb25zLgoJKiBmaW5hbC5jIChmaW5hbF9zY2FuX2luc24pOiBDYWxsCgl0YXJnZXRtLmFzbV9vdXQuZnVuY3Rpb25fcm9kYXRhX3NlY3Rpb24gaW5zdGVhZCBvZgoJcmVhZG9ubHlfZGF0YV9zZWN0aW9uLgoJKiBjb25maWcvZGFyd2luLmggKFRBUkdFVF9BU01fRlVOQ1RJT05fUk9EQVRBX1NFQ1RJT04pOiBEZWZpbmUuCgkqIGNvbmZpZy9tY29yZS9tY29yZS5jIChUQVJHRVRfQVNNX0ZVTkNUSU9OX1JPREFUQV9TRUNUSU9OKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pcDJrL2lwMmsuYyAoVEFSR0VUX0FTTV9GVU5DVElPTl9ST0RBVEFfU0VDVElPTik6IExpa2V3aXNlLgoJKiBjb25maWcvcnM2MDAwL3hjb2ZmLmggKFRBUkdFVF9BU01fRlVOQ1RJT05fUk9EQVRBX1NFQ1RJT04pOgoJTGlrZXdpc2UuCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5jIChUQVJHRVRfQVNNX0ZVTkNUSU9OX1JPREFUQV9TRUNUSU9OKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L2N5Z21pbmcuaCAoVEFSR0VUX0FTTV9GVU5DVElPTl9ST0RBVEFfU0VDVElPTik6CglMaWtld2lzZS4KCSogY29uZmlnL2kzODYvaTM4Ni1pbnRlcml4LmggKFRBUkdFVF9BU01fRlVOQ1RJT05fUk9EQVRBX1NFQ1RJT04pOgoJTGlrZXdpc2UuCgkqIGNvbmZpZy9hcm0vcGUuaCAoVEFSR0VUX0FTTV9GVU5DVElPTl9ST0RBVEFfU0VDVElPTik6IExpa2V3aXNlLgoJKiBjb25maWcvYXZyL2F2ci5jIChUQVJHRVRfQVNNX0ZVTkNUSU9OX1JPREFUQV9TRUNUSU9OKTogTGlrZXdpc2UuCgkqIGRvYy90bS50ZXhpIChUQVJHRVRfQVNNX0ZVTkNUSU9OX1JPREFUQV9TRUNUSU9OKTogRG9jdW1lbnQuCgoyMDA0LTA4LTEyICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogZHdhcmYyb3V0LmggKGR3YXJmMm91dF9mcmFtZV9maW5pc2gpOiBDb25kaXRpb25hbGl6ZSBvdXRwdXR0aW5nIGVoCglmcmFtZSBpbmZvLgoJKiBkb2MvdG0udGV4aTogRG9jdW1lbnQgaW50ZXJhY3Rpb24gYmV0d2VlbiBUQVJHRVRfVU5XSU5EX0lORk8gYW5kCglEV0FSRjJfVU5XSU5EX0lORk8uCgoyMDA0LTA4LTEyICBCZW4gRWxsaXN0b24gIDxiamVAYXUuaWJtLmNvbT4KCglQUiB0YXJnZXQvMTYyODYKCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLmg6IENoYW5nZSB2ZWN0b3IgdG8gX192ZWN0b3IgdGhyb3VnaG91dC4KCShFeGNlcHQgZm9yIHRoZSBgdmVjdG9yJyBtYWNybyBpdHNlbGYpLgoKMjAwNC0wOC0xMiAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdlbnByZWRzLmM6IEFkZCBjYXBhYmlsaXR5IHRvIGdlbmVyYXRlIHByZWRpY2F0ZSBib2RpZXMgYXMKCXdlbGwgYXMgZnVuY3Rpb24gcHJvdG90eXBlcy4gIFdyaXRlIGZ1bmN0aW9uIHByb3RvdHlwZXMgZm9yCgl0aGUgZ2VuZXJpYyBwcmVkaWNhdGVzIHRvby4KCShwcm9jZXNzX2RlZmluZV9wcmVkaWNhdGUsIHdyaXRlX3RtX3ByZWRzX2gsIHdyaXRlX2luc25fcHJlZHNfYykKCSh3cml0ZV9wcmVkaWNhdGVfc3ViZnVuY3Rpb24sIG1hcmtfbW9kZV90ZXN0cywgYWRkX21vZGVfdGVzdHMpCgkod3JpdGVfbWF0Y2hfY29kZSwgd3JpdGVfcHJlZGljYXRlX2V4cHIsIHdyaXRlX29uZV9wcmVkaWNhdGVfZnVuY3Rpb24pCgkocGFyc2Vfb3B0aW9uKTogTmV3IGZ1bmN0aW9ucy4KCShvdXRwdXRfcHJlZGljYXRlX2RlY2xzKTogRGVsZXRlLgoJKG1haW4pOiBSZWFkIHRoZSBtYWNoaW5lIGRlc2NyaXB0aW9uLCBwcm9jZXNzIERFRklORV9QUkVESUNBVEUgb3IKCURFRklORV9TUEVDSUFMX1BSRURJQ0FURSBwYXR0ZXJucywgd3JpdGUgdG0tcHJlZHMuaCBvciBpbnNuLXByZWRzLmMKCWFzIGFwcHJvcHJpYXRlLgoKCSogZ2VucmVjb2cuYyAoc3RydWN0IGRlY2lzaW9uX3Rlc3QpOiBSZXBsYWNlIGluZGV4IHdpdGgKCXN0cnVjdCBwcmVkX2RhdGEgcG9pbnRlci4KCShuZXh0X2luZGV4KTogUmVtb3ZlLCB1bnVzZWQuCgkocHJlZF90YWJsZSwgcHJlZHMsIHNwZWNpYWxfbW9kZV9wcmVkX3RhYmxlKTogRGVsZXRlLgoJKGNvbXB1dGVfcHJlZGljYXRlX2NvZGVzLCBwcm9jZXNzX2RlZmluZV9wcmVkaWNhdGUpOiBOZXcgZnVuY3Rpb25zLgoJKHZhbGlkYXRlX3BhdHRlcm4sIGFkZF90b19zZXF1ZW5jZSwgd3JpdGVfc3dpdGNoKTogVXBkYXRlIGZvcgoJbmV3IGRhdGEgc3RydWN0dXJlcy4KCShtYWluKTogSGFuZGxlIERFRklORV9QUkVESUNBVEUgYW5kIERFRklORV9TUEVDSUFMX1BSRURJQ0FURS4KCUNoZWNrIGJvdGggZXJyb3JfY291bnQgYW5kIGhhdmVfZXJyb3IuCgoJKiBnZW5zdXBwb3J0LmMgKGluX2ZuYW1lLCBmaXJzdF9wcmVkaWNhdGUpOiBOZXcgZ2xvYmFscy4KCShkZWZpbmVfcHJlZF9xdWV1ZSwgZGVmaW5lX3ByZWRfdGFpbCk6IE5ldyBSVEwtcGF0dGVybiBxdWV1ZS4KCShwcmVkaWNhdGVfdGFibGUsIGxhc3RfcHJlZGljYXRlLCBvbGRfcHJlZF90YWJsZSkKCShvbGRfc3BlY2lhbF9wcmVkX3RhYmxlKTogTmV3IHN0YXRpY3MuCgkoaGFzaF9zdHJ1Y3RfcHJlZF9kYXRhLCBlcV9zdHJ1Y3RfcHJlZF9kYXRhLCBsb29rdXBfcHJlZGljYXRlKQoJKGFkZF9wcmVkaWNhdGUsIGluaXRfcHJlZGljYXRlX3RhYmxlKTogTmV3IGZ1bmN0aW9ucy4KCShwcm9jZXNzX3J0eCk6IEhhbmRsZSBERUZJTkVfUFJFRElDQVRFIGFuZCBERUZJTkVfU1BFQ0lBTF9QUkVESUNBVEUuCgkoaW5pdF9tZF9yZWFkZXJfYXJnc19jYik6IFVzZSB0aGUgZ2xvYmFsIGluX2ZuYW1lLiAgTm8gbmVlZCB0byB6ZXJvCglpdCBvciBtYXhfaW5jbHVkZV9sZW4uICBDYWxsIGluaXRfcHJlZGljYXRlX3RhYmxlLgoJKHJlYWRfcnR4KTogUnVuIHRoZSBwcmVkaWNhdGUgcXVldWUgYWZ0ZXIgdGhlIGF0dHJpYnV0ZSBxdWV1ZQoJYnV0IGJlZm9yZSBhbGwgdGhlIG90aGVycy4KCSogZ2Vuc3VwcG9ydC5oIChpbl9mbmFtZSwgc3RydWN0IHByZWRfZGF0YSwgZmlyc3RfcHJlZGljYXRlKQoJKGxvb2t1cF9wcmVkaWNhdGUsIGFkZF9wcmVkaWNhdGUsIEZPUl9BTExfUFJFRElDQVRFUyk6IERlY2xhcmUuCgkqIHJ0bC5kZWYgKE1BVENIX0NPREUsIE1BVENIX1RFU1QsIERFRklORV9QUkVESUNBVEUpCgkoREVGSU5FX1NQRUNJQUxfUFJFRElDQVRFKTogTmV3IFJUTCBjb2Rlcy4KCSogZHVtbXktY29uZGl0aW9ucy5jOiBEb24ndCBpbmNsdWRlIGJjb25maWcuaCwgc3lzdGVtLmgsCgljb3JldHlwZXMuaCwgdG0uaCwgb3Igc3lzdGVtLmguICBEbyBpbmNsdWRlIHN0ZGRlZi5oLgoJRHVwbGljYXRlIGRlY2xhcmF0aW9uIG9mIHN0cnVjdCBjX3Rlc3QgZnJvbSBnZW5zdXBwb3J0LmguCgoJKiBNYWtlZmlsZS5pbiAoT0JKUy1jb21tb24pOiBBZGQgaW5zbi1wcmVkcy5vLgoJKFNUQUdFU1RVRkYsIC5QUkVDSU9VUyk6IEFkZCBpbnNuLXByZWRzLmMuCgkoaW5zbi1wcmVkcy5jLCBpbnNuLXByZWRzLm8pOiBOZXcgcnVsZXMuCgkocy1wcmVkcyk6IEFsc28gZ2VuZXJhdGUgaW5zbi1wcmVkcy5jLgoJKGR1bW15LWNvbmRpdGlvbnMubywgZ2VucHJlZHMkKGJ1aWxkX2V4ZWV4dCksIGdlbnByZWRzLm8pOgoJVXBkYXRlIGRlcGVuZGVuY2llcy4KCShwcmludC1ydGwubywgcHJpbnQtcnRsMS5vKTogQ29ycmVjdCBkZXBlbmRlbmNpZXMuCgoJKiByZWNvZy5oOiBEZWxldGUgcHJvdG90eXBlcyBvZiBwcmVkaWNhdGUgZnVuY3Rpb25zLgoKCSogZG9jL21kLnRleGkgKFByZWRpY2F0ZXMpOiBOZXcgc2VjdGlvbiB3aXRoIGNvbXBsZXRlCglkb2N1bWVudGF0aW9uIG9mIG9wZXJhbmQvb3BlcmF0b3IgcHJlZGljYXRlcy4gIFJlbW92ZSBzb21lCglpbmNvbXBsZXRlIGRvY3VtZW50YXRpb24gb2YgcHJlZGljYXRlcyBmcm9tIG90aGVyIHBsYWNlcy4KCSogZG9jL3RtLnRleGkgKE1pc2MpOiBNb3ZlIFNQRUNJQUxfTU9ERV9QUkVESUNBVEVTIG5leHQgdG8KCVBSRURJQ0FURV9DT0RFUzsgaW5kaWNhdGUgdGhhdCBib3RoIGFyZSBkZXByZWNhdGVkIGluIGZhdm9yCglvZiBkZWZpbmVfcHJlZGljYXRlL2RlZmluZV9zcGVjaWFsX3ByZWRpY2F0ZS4KCgkqIGNvbmZpZy9pYTY0L2lhNjQuYzogQWxsIHByZWRpY2F0ZSBmdW5jdGlvbiBkZWZpbml0aW9ucyBtb3ZlZAoJdG8gaWE2NC5tZCwgZXhjZXB0Cgkoc21hbGxfYWRkcl9zeW1ib2xpY19vcGVyYW5kLCB0bHNfc3ltYm9saWNfb3BlcmFuZCk6IERlbGV0ZS4KCShpYTY0X2V4cGFuZF9sb2FkX2FkZHJlc3MsIGlhNjRfZXhwYW5kX21vdmUpOgoJQ2hlY2sgU1lNQk9MX1JFRl9UTFNfTU9ERUwgZGlyZWN0bHksIGRvbid0IHVzZSB0bHNfc3ltYm9saWNfb3BlcmFuZC4KCgkqIGNvbmZpZy9pYTY0L2lhNjQubWQ6IEFsbCBwcmVkaWNhdGVzIG5vdyBkZWZpbmVkIGhlcmUuCgkoc3ltYm9saWNfb3BlcmFuZCk6IElzIG5vdyBhIHNwZWNpYWwgcHJlZGljYXRlLgoKCSogY29uZmlnL2lhNjQvaWE2NC5oOiBEZWNsYXJlIGlhNjRfc2VjdGlvbl90aHJlc2hvbGQuCgkoUFJFRElDQVRFX0NPREVTKTogRGVsZXRlLgoKMjAwNC0wOC0xMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGMtY29tbW9uLmggKFNUQVRFTUVOVF9MSVNUX0hBU19MQUJFTCk6IE5ldy4KCSogYy1zZW1hbnRpY3MuYyAoYWRkX3N0bXQpOiBTZXQgaXQuCgkqIGMtZGVjbC5jIChmaW5pc2hfZGVjbCk6IFVzZSBpdCB0byBjcmVhdGUgYSBuZXcgQklORF9FWFBSCgliZWZvcmUgaW5zdGFudGlhdGluZyBhIHZhcmlhYmxlIHNpemVkIHR5cGUuCgoyMDA0LTA4LTEyICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogc3Rvci1sYXlvdXQuYyAocm91bmRfdXAsIHJvdW5kX2Rvd24pOiBNb3ZlIC4uLgoJKiBmb2xkLWNvbnN0LmMgKHJvdW5kX3VwLCByb3VuZF9kb3duKTogLi4uIGhlcmUuICBVc2UKCW11bHRpcGxlX29mX3AgdG8gYXZvaWQgYW55IGFyaXRobWV0aWMgYXQgYWxsLgoKMjAwNC0wOC0xMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGdpbXBsaWZ5LmMgKHN0cnVjdCBnaW1wbGlmeV9pbml0X2N0b3JfcHJlZXZhbF9kYXRhKTogTmV3LgoJKGdpbXBsaWZ5X2luaXRfY3Rvcl9wcmVldmFsXzEpOiBOZXcuCgkoZ2ltcGxpZnlfaW5pdF9jdG9yX3ByZWV2YWwpOiBOZXcuCgkoZ2ltcGxpZnlfaW5pdF9jdG9yX2V2YWwpOiBOZXcuCgkoZ2ltcGxpZnlfaW5pdF9jb25zdHJ1Y3Rvcik6IFVzZSB0aGVtLiAgQWx3YXlzIGdpbXBsaWZ5IHRoZSBMSFMKCW9iamVjdCBmaXJzdC4KCjIwMDQtMDgtMTIgIFppZW1vd2l0IExhc2tpICA8emxhc2tpQGFwcGxlLmNvbT4KCgkoVGhpcyBwYXRjaCBpcyBwYXJ0IG9mIG1lcmdlIG9mIG9iamMtaW1wcm92ZW1lbnRzLWJyYW5jaAoJaW50byBtYWlubGluZS4pCgoJKiBkb2MvZnJvbnRlbmRzLnRleGk6IE1lbnRpb24gT2JqZWN0aXZlLUMrKyBpbiBhZGRpdGlvbiB0bwoJT2JqZWN0aXZlLUMuCgkqIGRvYy9pbnN0YWxsLnRleGk6IEFkZCAnb2JqLWMrKycgdG8gbGlzdCBvZiBjb25maWd1cmFibGUKCWxhbmd1YWdlcy4KCSogZG9jL2ludm9rZS50ZXhpOiBSZW5hbWUgT2JqZWN0aXZlLUMgb3B0aW9uIGhlYWRpbmdzIHRvCglpbmRpY2F0ZSB0aGV5IGFsc28gYXBwbHkgdG8gT2JqZWN0aXZlLUMrKy4gIExpc3QgZmlsZQoJZXh0ZW5zaW9ucyBmb3IgT2JqZWN0aXZlLUMrKyBzb3VyY2VzLiAgTWVudGlvbiB0aGF0CglPYmpDIGFuZCBPYmpDKysgY29tcGlsYXRpb25zIG1heSBhbHNvIHVzZSBDIGFuZCBDKysgb3B0aW9ucywKCXJlc3BlY3RpdmVseS4gIFBvaW50IHVzZXJzIHRvIGRvYy9zdGFuZGFyZHMudGV4aSBmb3IKCWZ1cnRoZXIgaW5mbyBvbiBPYmpDIGFuZCBPYmpDKysuCgkqIGRvYy9zb3VyY2VidWlsZC50ZXhpOiBNZW50aW9uIHRoZSBvYmpjcC8gZGlyZWN0b3J5IGFuZAoJdGhlIE9iamVjdGl2ZS1DKysgc291cmNlcyBpdCBjb250YWlucy4KCSogZG9jL3N0YW5kYXJkcy50ZXhpOiBVcGRhdGUgbGluayB0byBBcHBsZSBPYmpDIHNpdGU7CglhZGQgbGluayB0byBnY2MgcmVhZGluZ3MuaHRtbCBXV1cgZG9jLgoKMjAwNC0wOC0xMiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKGZ1bmN0aW9uX2FyZ19wYWRkaW5nKTogUmV2ZXJ0IDIwMDQtMDctMjgKCWFuZCAyMDA0LTA3LTE0IGNoYW5nZXMuCgoyMDA0LTA4LTEyICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogZG9jL2ludm9rZS50ZXhpOiBGaXggdHlwby4KCjIwMDQtMDgtMTEgRGV2YW5nIFBhdGVsICA8ZHBhdGVsQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW4uaCAoVEFSR0VUX09QVElPTl9UUkFOU0xBVEVfVEFCTEUpOiBBZGQgLWRlYWRfc3RyaXAKCWFuZCAtbm9fZGVhZF9zdHJpcF9pbml0c19hbmRfdGVybXMuCgkoTElOS19TUEVDKTogU2FtZS4KCSogZG9jL2ludm9rZS50ZXhpIChEYXJ3aW4gT3B0aW9ucyk6IERvY3VtZW50IC1kZWFkX3N0cmlwIGFuZAoJLW5vX2RlYWRfc3RyaXBfaW5pdHNfYW5kX3Rlcm1zLgoKMjAwNC0wOC0xMSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9hcm0vYXJtLXByb3Rvcy5oIChhcm1fZmluYWxpemVfcGljKSBSZW5hbWUgLi4uCgkoYXJtX2xvYWRfcGljX3JlZ2lzdGVyKTogLi4uIHRvIHRoaXMuCgkqIGNvbmZpZy9hcm0vYXJtLmMgKGFybV9maW5hbGl6ZV9waWMpOiBSZW5hbWUgLi4uCgkoYXJtX2xvYWRfcGljX3JlZ2lzdGVyKTogLi4uIHRvIHRoaXMuICBBbHdheXMgb3V0cHV0IGluc25zIGF0IHRoZQoJY3VycmVudCBsb2NhdGlvbi4gIExvYWQgdmlhIGxvdyByZWcgaW4gdGh1bWIgbW9kZS4KCShhcm1fZXhwYW5kX3Byb2xvZ3VlKTogQ2FsbCBhcm1fbG9hZF9waWNfcmVnaXN0ZXIuCgkodGh1bWJfZXhwYW5kX3Byb2xvZ3VlKTogRGl0dG8uCgkqIGNvbmZpZy9hcm0vYXJtLmggKEZJTkFMSVpFX1BJQyk6IFJlbW92ZS4KCSogY29uZmlnL2FybS9hcm0ubWQgKGJ1aWx0aW5fc2V0am1wX3JlY2VpdmVyKTogQ2FsbAoJYXJtX2xvYWRfcGljX3JlZ2lzdGVyLgoKMjAwNC0wOC0xMSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGFybS5jICh0aHVtYl9mb3JjZV9scl9zYXZlKTogQWRkIHByb3RvdHlwZS4KCSh0aHVtYl9jb21wdXRlX3NhdmVfcmVnX21hc2spOiBOZXcgZnVuY3Rpb24uCgkodGh1bWJfZmluZF93b3JrX3JlZ2lzdGVyKTogTmV3IGZ1bmN0aW9uLgoJKGFybV9nZXRfZnJhbWVfb2Zmc2V0cyk6IFVzZSB0aHVtYl9jb21wdXRlX3NhdmVfcmVnX21hc2suCgkodGh1bWJfdW5leHBhbmRlZF9lcGlsb2d1ZSk6IERpdHRvLiAgUmVtb3ZlIHJlZHVuZGFudCBjb2RlLgoJRG9uJ3QgY2xvYmJlciByMyB3aGVuIHJlbW92aW5nIHByZXRlbmQgYXJncy4KCSh0aHVtYl9leHBhbmRfcHJvbG9ndWUpOiBVc2UgdGh1bWJfY29tcHV0ZV9zYXZlX3JlZ19tYXNrLgoJKHRodW1iX291dHB1dF9mdW5jdGlvbl9wcm9sb2d1ZSk6IFVzZSBuZXcgZnVuY3Rpb25zLgoJKHRodW1iX3NldF9yZXR1cm5fYWRkcmVzcyk6IFVzZSB0aHVtYl9jb21wdXRlX3NhdmVfcmVnX21hc2suCgkqIGFybS5oIChUSFVNQl9SRUdfUFVTSEVEX1ApOiBSZW1vdmUuCgoyMDA0LTA4LTExICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNjQ5MAoJKiBjZmdydGwuYyAoY2ZnX2xheW91dF9zcGxpdF9lZGdlKTogU2V0IGdsb2JhbF9saXZlX2F0X3N0YXJ0IGFuZAoJZ2xvYmFsX2xpdmVfYXRfZW5kIGZvciBuZXcgYmFzaWMgYmxvY2sgaWYgYWxyZWFkeSBzZXQgZm9yIG90aGVyIGJsb2Nrcy4KCjIwMDQtMDgtMTEgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuaCAoTUFYX0ZJWEVEX01PREVfU0laRSk6IERlZmluZS4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChtZmNyIHJsd2lubSBwYXR0ZXJucyk6IFNldCBsZW5ndGggdG8gOC4KCShtZmNyIHJsd2lubSBybHdpbm0gcGF0dGVybnMpOiBTZXQgbGVuZ3RoIHRvIDEyLgoKMjAwNC0wOC0xMSAgQW5kcmV3IE1hY0xlb2QgIDxhbWFjbGVvZEByZWRoYXQuY29tPgoKCSogdHJlZS1mbG93LWlubGluZS5oIChnZXRfZGVmX29wcywgZ2V0X3VzZV9vcHMsIGdldF92X21heV9kZWZfb3BzLAoJZ2V0X3Z1c2Vfb3BzLGdldF92X211c3RfZGVmX29wcyk6IEFkZCBvcGVyYW5kIHN0cnVjdHVyZSByZWZlcmVuY2UuCgkoZ2V0X3ZfbWF5X2RlZl9yZXN1bHRfcHRyLCBnZXRfdl9tYXlfZGVmX29wX3B0cik6IE5ldyBhY2Nlc3Mgc3RydWN0LgoJKHN0YXJ0X3NzYV9zdG10X29wZXJhbmRzKTogRGVsZXRlLgoJKiB0cmVlLWZsb3cuaCAoc3RydWN0IHN0bXRfYW5uX2QpOiBSZXBsYWNlIG9wZXJhbmQgdmVjdG9ycyB3aXRoIG5ldwoJc3RydWN0IHN0bXRfb3BlcmFuZHNfZC4KCShidWlsZF9zc2Ffb3BlcmFuZHMpOiBOZXcgZXh0ZXJuIGVudHJ5IHBvaW50LgoJKiB0cmVlLXNzYS1kb20uYyAocmVjb3JkX2VxdWl2YWxlbmNlc19mcm9tX3N0bXQpOiBSZW1vdmUgb3BlcmFuZAoJYnVpbGRpbmcgY29kZSwgcmVwbGFjZSB3aXRoIGNyZWF0ZV9zc2FfYXJ0ZmljaWFsX2xvYWRfc3RtdCgpLgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChzdHJ1Y3Qgdm9wZXJhbmRzX2QpOiBEZWxldGUuCgkoYWxsb2NhdGVfdl9tYXlfZGVmX29wdHlwZSk6IEFsbG9jYXRlIHZfbWF5X2RlZl9vcGVyYW5kX3R5cGVfdCB2ZWN0b3IuCgkoYWxsb2NhdGVfdl9tdXN0X2RlZl9vcHR5cGUpOiBVc2Ugc2l6ZW9mICh0cmVlKSwgbm90IHNpemVvZiAodHJlZSAqKS4KCShmcmVlX3VzZXMsIGZyZWVfZGVmcywgZnJlZV92dXNlcywgZnJlZV92X21heV9kZWZzLAoJZnJlZV92X211c3RfZGVmcyk6IFJlbW92ZSBkZWFsbG9jIHBhcmFtZXRlci4KCShyZW1vdmVfdnVzZXMsIHJlbW92ZV92X21heV9kZWYsIHJlbW92ZV92X211c3RfZGVmcyk6IERlbGV0ZS4KCShmaW5hbGl6ZV9zc2FfZGVmcywgZmluYWxpemVfc3NhX3VzZXMsIGZpbmFsaXplX3NzYV92X21heV9kZWZzLAoJZmluYWxpemVfc3NhX3Z1c2VzLCBmaW5hbGl6ZV9zc2Ffdl9tdXN0X2RlZnMpOiBQZXJmb3JtIGFsbCBvcGVyYW5kCgl2ZWN0b3IgY29tcGFyaXNvbnMsIHNzYV9uYW1lIHJldXNlLCBhbmQgYWxsb2NhdGlvbnMgaGVyZS4KCSh2ZXJpZnlfc3RhcnRfb3BlcmFuZHMpOiBEZWxldGUuCgkoZmluYWxpemVfc3NhX3N0bXRfb3BlcmFuZHMpOiBTZXQgbmV3IG9wZXJhbmRzIGJ5IGNhbGxpbmcgZmluYWxpemUKCXJvdXRpbmVzLgoJKHN0YXJ0X3NzYV9zdG10X29wZXJhbmRzKTogTW92ZSBmcm9tIHRyZWUtZmxvdy1pbmxpbmUuaC4KCShhcHBlbmRfZGVmLCBhcHBlbmRfdXNlaSk6IFNpbXBsaWZ5IHRvIHNpbXBsZSBhY2N1bXVsYXRpb24uCgkoYXBwZW5kX3ZfbWF5X2RlZiwgYXBwZW5kX3Z1c2UsIGFwcGVuZF92X211c3RfZGVmKTogU2ltcGxpZnkgdG8gYXZvaWRpbmcKCWR1cGxpY2F0ZXMgYW5kIHNpbXBsZSBhY2N1bXVsYXRpb24uCgkoZnJlZV9zc2Ffb3BlcmFuZHMpOiBGcmVlIHZlY3RvcnMgaW4gYSBzdG10X29wZXJhbmQgc3RydWN0dXJlLgoJKGJ1aWxkX3NzYV9vcGVyYW5kcyk6IE5ldy4gQ3JlYXRlIGEgbmV3IHN0bXRfb3BlcmFuZCBzdHJ1Y3R1cmUgZnJvbQoJYSBzdG10IGFuZCBhbiBvbGQgc2V0IG9mIHN0bXRfb3BlcmFuZHMuCgkoZ2V0X3N0bXRfb3BlcmFuZHMpOiBTaW1wbGlmeSBhbmQgY2FsbCBidWlsZF9zc2Ffb3BlcmFuZHMuCgkoZ2V0X2V4cHJfb3BlcmFuZHMsIGdldF9hc21fZXhwcl9vcGVyYW5kcywgZ2V0X2luZGlyZWN0X3JlZl9vcGVyYW5kcywKCWdldF9jYWxsX2V4cHJfb3BlcmFuZHMsIGFkZF9zdG10X29wZXJhbmQsIGFkZF9jYWxsX2Nsb2JiZXJfb3BzLAoJYWRkX2NhbGxfcmVhZF9vcHMpOiBEb24ndCBwYXNzIHByZXZfdm9wcyBhcm91bmQgYW55bW9yZS4KCShub3RlX2FkZHJlc3NhYmxlKTogUmV0dXJuIGlmIG5vIHN0bXQgYW5ub3RhdGlvbi4KCShjb3B5X3ZpcnR1YWxfb3BlcmFuZHMpOiBBY2Nlc3Mgdl9tYXlfZGVmIG9wZXJhbmRzIHRocm91Z2ggYSBzdHJ1Y3QuCgkoY3JlYXRlX3NzYV9hcnRmaWNpYWxfbG9hZF9zdG10KTogTmV3LiAgQ3JlYXRlIGEgbG9hZCBzdG10IGZvciBET00ncwoJaGFzaCB0YWJsZXMgd2l0aG91dCB0cmVhdGluZyB0aGUgc3RtdCBhcyBhIHJlYWwgc3RtdC4KCSogdHJlZS1zc2Etb3BlcmFuZHMuaCAoc3RydWN0IHZfbWF5X2RlZl9vcGVyYW5kX3R5cGUpOiBOZXcuICBBY2Nlc3MKCXZfbWF5X2RlZiBkZWYgYW5kIHVzZSB0aHJvdWdoIGEgc3RydWN0IGluc3RlYWQgb2YgMiBhcnJheSBlbGVtZW50cy4KCShzdHJ1Y3Qgdl9tYXlfZGVmX29wdHlwZV9kKTogVXNlIHZfbWF5X2RlZl9vcGVyYW5kX3R5cGUuCgkoc3RydWN0IHN0bXRfb3BlcmFuZHNfZCk6IE5ldy4gIFN0cnVjdCBmb3Igc3RvcmluZyBhbGwgb3BlcmFuZCB2ZWN0b3JzLgoKMjAwNC0wOC0xMSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9hcm0vYXJtLmMgKGFybV9pc19sb25nY2FsbF9wKTogVXBkYXRlIGNvbW1lbnQgZGVzY3JpYmluZwoJdGhpcyBmdW5jaXRvbidzIGJlaGF2aW91ci4gIFJldHVybiB0cnVlIHdoZW4gdGhlIGN1cnJlbnQgZnVuY3Rpb24KCWhhcyBhIHNlY3Rpb24gYXR0cmlidXRlIGFuZCAtbWxvbmctY2FsbHMgaXMgaW4gZWZmZWN0LgoJKiBjb25maWcvYXJtL2FybS5oIChBUk1fREVDTEFSRV9GVU5DVElPTl9TSVpFKTogRG8gbm90IHNldCB0aGUKCXNob3J0LWNhbGwgbWFya2VyIHdoZW4gLW1sb25nLWNhbGxzIGlzIGluIGVmZmVjdCBhbmQgdGhlIGZ1bmN0aW9uCgloYXMgYSBzZWN0aW9uIGF0dHJpYnV0ZS4KCjIwMDQtMDgtMTAgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBzdG10LmMgKGV4cGFuZF9yZXR1cm4pOiBJZiBhc2tlZCB0byByZXR1cm4gdGhlIFJFU1VMVF9ERUNMLAoJanVzdCBjYWxsIGV4cGFuZF92YWx1ZV9yZXR1cm4gb24gcmVzdWx0X3J0bC4KCjIwMDQtMDgtMTAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBidWlsdGlucy5kZWYgKEJVSUxUX0lOX1NUQUNLX0FMTE9DKTogUmVtb3ZlLgoJKiBidWlsdGlucy5jIChleHBhbmRfYnVpbHRpbikgPEJVSUxUX0lOX1NUQUNLX0FMTE9DPjogUmVtb3ZlLgoJKiBkd2FyZjJvdXQuYyAobG9jX2Rlc2NyaXB0b3IpOiBIYW5kbGUgUEFSQUxMRUwgaGVyZSAuLi4KCShhZGRfbG9jYXRpb25fb3JfY29uc3RfdmFsdWVfYXR0cmlidXRlKTogLi4uIG5vdCBoZXJlLiAgVXNlCglsb2NfZGVzY3JpcHRvcl9mcm9tX3RyZWUgaWYgcG9zc2libGUuCgkobG9jX2Rlc2NyaXB0b3JfZnJvbV90cmVlXzEpOiBSZW5hbWUgZnJvbSBsb2NfZGVzY3JpcHRvcl9mcm9tX3RyZWUuCglTaW1wbGlmeSBhZGRyZXNzIGhhbmRsaW5nLiAgSGFuZGxlIERFQ0xfVkFMVUVfRVhQUi4gIEhhbmRsZSByZWdpc3RlcgoJdmFsdWVzIHNwZWNpYWxseS4KCShsb2NfZGVzY3JpcHRvcl9mcm9tX3RyZWUpOiBOZXcuICBVcGRhdGUgY2FsbGVycy4KCSogZXhwci5jIChleHBhbmRfdmFyKTogSWdub3JlIERFQ0xfVkFMVUVfRVhQUiB2YXJpYWJsZXMuCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2RlY2xfZXhwcik6IExvd2VyIHZhcmlhYmxlIHNpemVkIHR5cGVzIHRvCglwb2ludGVyIHBsdXMgZGVyZWZlcmVuY2UuICBTZXQgREVDTF9WQUxVRV9FWFBSLiAgU2V0IHNhdmVfc3RhY2suCgkoZ2ltcGxpZnlfY2FsbF9leHByKTogRG8gbm90IHJlY29nbml6ZSBCVUlMVF9JTl9TVEFDS19BTExPQwoJYW5kIEJVSUxUX0lOX1NUQUNLX1JFU1RPUkUuCgkoZ2ltcGxpZnlfZXhwcik6IExvd2VyIERFQ0xfVkFMVUVfRVhQUiBkZWNscy4KCSogc3RtdC5jIChleHBhbmRfc3RhY2tfYWxsb2MpOiBSZW1vdmUuCgkqIHRyZWUtbXVkZmxhcC5jIChteF9yZWdpc3Rlcl9kZWNscyk6IERvbid0IGxvb2sgZm9yCglCVUlMVF9JTl9TVEFDS19BTExPQy4KCSogdHJlZS1uZXN0ZWQuYyAoY29udmVydF9sb2NhbF9yZWZlcmVuY2UpOiBMaWtld2lzZS4KCSogdHJlZS5oIChERUNMX1ZBTFVFX0VYUFIpOiBOZXcuCgoyMDA0LTA4LTEwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogc3Rvci1sYXlvdXQuYyAocm91bmRfdXApOiBDaGVjayBmb3IgMC8xIGJlZm9yZSBkaXZpZGluZy4KCShyb3VuZF9kb3duKTogTGlrZXdpc2UuCgoJKiB0cmVlLXRhaWxjYWxsLmMgKHN1aXRhYmxlX2Zvcl90YWlsX29wdF9wKTogQWxzbyBjaGVjayBERUNMX0VYVEVSTkFMLgoKMjAwNC0wOC0wOSAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy5nY2MgKGFybSotKi1lYWJpKik6IE5ldyB0YXJnZXQuCgkqIGRlZmF1bHRzLmggKFRBUkdFVF9MSUJHQ0NfRlVOQ1MpOiBOZXcgbWFjcm8uCgkoVEFSR0VUX0xJQl9JTlRfQ01QX0JJQVNFRCk6IExpa2V3aXNlLgoJKiBleHBtZWQuYyAoZXhwYW5kX2Rpdm1vZCk6IFRyeSBhIHR3by12YWx1ZWQgZGl2bW9kIGZ1bmN0aW9uIGFzIGEKCWxhc3QgcmVzb3J0LgoJKiBndGhyLmg6IFJlbW92ZSBib2d1cyB0b2tlbnMgYXQgZW5kIG9mICNwcmFnbWEuCgkqIG9wdGFicy5jIChleHBhbmRfdHdvdmFsX2Jpbm9wX2xpYmZ1bmMpOiBOZXcgZnVuY3Rpb24uCgkocHJlcGFyZV9jbXBfaW5zbik6IEhhbmRsZSB0aGUgIVRBUkdFVF9MSUJfSU5UX0NNUF9CSUFTRUQgY2FzZS4KCShwcmVwYXJlX2Zsb2F0X2xpYl9jbXApOiBUcnkgcmV2ZXJzaW5nIHRoZSBjb25kaXRpb24uCgkoZGVidWdfb3B0YWJfbGliZnVuY3MpOiBOZXcgZnVuY3Rpb24uCgkqIG9wdGFicy5oIChleHBhbmRfdHdvdmFsX2Jpbm9wX2xpYmZ1bmMpOiBEZWNsYXJlLgoJKiBjb25maWcvYXJtL2FybS5jIChhcm1faW5pdF9saWJmdW5jcyk6IE5ldyBmdW5jdGlvbi4KCShhcm1fY29tcHV0ZV9pbml0aWFsX2VsaW1pbmF0aW5vX29mZnNldCk6IFJldHVybiBIT1NUX1dJREVfSU5ULgoJKFRBUkdFVF9JTklUX0xJQkZVTkNTKTogRGVmaW5lIGl0LgoJKiBjb25maWcvYXJtL2FybS5oIChUQVJHRVRfQlBBQkkpOiBOZXcgbWFjcm8uCgkqIGNvbmZpZy9hcm0vYXJtLXByb3Rvcy5oCgkoYXJtX2NvbXB1dGVfaW5pdGlhbF9lbGltaW5hdGlvbl9vZmZzZXQpOiBSZXR1cm4gSE9TVF9XSURFX0lOVC4KCSogY29uZmlnL2FybS9icGFiaS5TOiBOZXcgZmlsZS4KCSogY29uZmlnL2FybS9icGFiaS5jOiBMaWtld2lzZS4KCSogY29uZmlnL2FybS9icGFiaS5oOiBMaWtld2lzZS4KCSogY29uZmlnL2FybS9pZWVlNzU0LWRmLlMgKF9fYWVhYmlfZG5lZyk6IE5ldyBmdW5jdGlvbiBvciBhbGlhcy4KCShfX2FlYWJpX2Ryc3ViKTogTGlrZXdpc2UuCgkoX19hZWFiaV9kc3ViKTogTGlrZXdpc2UuCgkoX19hZWFiaV9kYWRkKTogTGlrZXdpc2UuCgkoX19hZWFiaV91aTJkKTogTGlrZXdpc2UuCgkoX19hZWFiaV9pMmQpOiBMaWtld2lzZS4KCShfX2FlYWJpX2YyZCk6IExpa2V3aXNlLgoJKF9fYWVhYmlfZG11bCk6IExpa2V3aXNlLgoJKF9fYWVhYmlfZGRpdik6IExpa2V3aXNlLgoJKF9fYWVhYmlfY2RyY21wbGUpOiBMaWtld2lzZS4KCShfX2FlYWJpX2NkY21wZXEpOiBMaWtld2lzZS4KCShfX2FlYWJpX2NkY21wbGUpOiBMaWtld2lzZS4KCShfX2FlYWJpX2RjbXBlcSk6IExpa2V3aXNlLgoJKF9fYWVhYmlfZGNtcGx0KTogTGlrZXdpc2UuCgkoX19hZWFiaV9kY21wbGUpOiBMaWtld2lzZS4KCShfX2FlYWJpX2RjbXBnZSk6IExpa2V3aXNlLgoJKF9fYWVhYmlfZGNtcGd0KTogTGlrZXdpc2UuCgkoX19hZWFiaV9kY21wdW4pOiBMaWtld2lzZS4KCShfX2FlYWJpX2QyaXopOiBMaWtld2lzZS4KCShfX2FlYWJpX2QydWl6KTogTGlrZXdpc2UuCgkoX19hZWFiaV9kMmYpOiBMaWtld2lzZS4KCSogY29uZmlnL2FybS9pZWVlNzU0LXNmLlMgKF9fYWVhYmlfZm5lZyk6IE5ldyBmdW5jdGlvbiBvciBhbGlhcy4KCShfX2FlYWJpX2Zyc3ViKTogTGlrZXdpc2UuCgkoX19hZWFiaV9mc3ViKTogTGlrZXdpc2UuCgkoX19hZWFiaV9mYWRkKTogTGlrZXdpc2UuCgkoX19hZWFiaV91aTJmKTogTGlrZXdpc2UuCgkoX19hZWFiaV9pMmYpOiBMaWtld2lzZS4KCShfX2FlYWJpX2ZtdWwpOiBMaWtld2lzZS4KCShfX2FlYWJpX2ZkaXYpOiBMaWtld2lzZS4KCShfX2FlYWJpX2NmcmNtcGxlKTogTGlrZXdpc2UuCgkoX19hZWFiaV9jZmNtcGVxKTogTGlrZXdpc2UuCgkoX19hZWFiaV9jZmNtcGxlKTogTGlrZXdpc2UuCgkoX19hZWFiaV9mY21wZXEpOiBMaWtld2lzZS4KCShfX2FlYWJpX2ZjbXBsdCk6IExpa2V3aXNlLgoJKF9fYWVhYmlfZmNtcGxlKTogTGlrZXdpc2UuCgkoX19hZWFiaV9mY21wZ2UpOiBMaWtld2lzZS4KCShfX2FlYWJpX2ZjbXBndCk6IExpa2V3aXNlLgoJKF9fYWVhYmlfZmNtcHVuKTogTGlrZXdpc2UuCgkoX19hZWFiaV9mMml6KTogTGlrZXdpc2UuCgkoX19hZWFiaV9mMnVpeik6IExpa2V3aXNlLgoJKiBjb25maWcvYXJtL2xpYjFmdW5jcy5hc20gKEFSTV9DQUxMKTogTmV3IG1hY3JvLgoJKF9fYWVhYmlfdWlkaXZtb2QpOiBOZXcgZnVuY3Rpb24gb3IgYWxpYXMuCgkoX19hZWFiaV9pZGl2bW9kKTogTGlrZXdpc2UuCgkoX19hZWFiaV9pZGl2MCk6IExpa2V3aXNlLgoJKF9fYWVhYmlfbGRpdjApOiBMaWtld2lzZS4KCShfX2FlYWJpX2xsc3IpOiBMaWtld2lzZS4KCShfX2FlYWJpX2xhc3IpOiBMaWtld2lzZS4KCShfX2FlYWJpX2xsc2wpOiBMaWtld2lzZS4KCShicGFiaS5TKTogSW5jbHVkZSBpdC4KCSogY29uZmlnL2FybS9saWJnY2MtYnBhYmkudmVyOiBOZXcgZmlsZS4KCSogY29uZmlnL2FybS9zeW1iaWFuLmggKEFSTV9ERUZBVUxUX0FCSSk6IFJlbW92ZS4KCShMSU5LX1NQRUMpOiBSZW1vdmUuCgkqIGNvbmZpZy9hcm0vdC1hcm0tZWxmIChMSUIxQVNNRlVOQ1MpOiBBZGQgX19hZWFiaV9sY21wIGFuZAoJX19hZWFiaV91bGNtcC4KCSogY29uZmlnL2FybS90LWJwYWJpOiBOZXcgZmlsZS4KCSogZG9jL3RtLnRleGkgKFRBUkdFVF9MSUJHQ0NfRlVOQ1MpOiBOZXcgZW50cnkuCgkoVEFSR0VUX0xJQl9JTlRfQ01QX0JJQVNFRCk6IExpa2V3aXNlLgoKMjAwNC0wOC0xMCAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAtcHJvdG9zLmggKGV4cGFuZF9ibG9ja19jbGVhcik6IERlY2xhcmUuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChjbHJtZW1zaSk6IE5ldyBwYXR0ZXJuLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChleHBhbmRfYmxvY2tfY2xlYXIpOiBOZXcgZnVuY3Rpb24uCgkoZXhwYW5kX2Jsb2NrX21vdmUpOiBDb252ZXJ0IGFsaWdubWVudCB0byBiaXRzLiAgVXNlIFNJbW9kZSBhbmQKCUhJbW9kZSBmb3IgdW5hbGlnbmVkIGFkZHJlc3NlcyBpZiBub3QgU1RSSUNUX0FMSUdOTUVOVC4KCjIwMDQtMDgtMTAgIENhcm9saW5lIFRpY2UgIDxjdGljZUBhcHBsZS5jb20+CgoJKiB2YXJhc20uYyAodW5saWtlbHlfc2VjdGlvbl9sYWJlbCk6IE5ldyBnbG9iYWwgdmFyaWFibGUuCgkodW5saWtlbHlfdGV4dF9zZWN0aW9uX25hbWUpOiBOZXcgZ2xvYmFsIHZhcmlhYmxlLgoJKHRleHRfc2VjdGlvbik6ICBSZW1vdmUgYWxpZ25tZW50IHN0YXRlbWVudC4KCSh1bmxpa2VseV90ZXh0X3NlY3Rpb24pOiBSZW1vdmUgYWxpZ25tZW50IHN0YXRlbWVudDsgdXNlCgl1bmxpa2VseV9zZWN0aW9uX2xhYmVsIHJhdGhlciB0aGFuIGhhcmQtY29kZWQgc3RyaW5nLgoJKGFzc2VtYmxlX3N0YXJ0X2Z1bmN0aW9uKTogSW5pdGlhbGl6ZSB1bmxpa2VseV9zZWN0aW9uX2xhYmVsIGFuZAoJdW5saWtlbHlfdGV4dF9zZWN0aW9uX25hbWU7ICBtYWtlIHN1cmUgY29sZCBzZWN0aW9uIGlzIHByb3Blcmx5CglhbGlnbmVkIGF0IHN0YXJ0IG9mIGZ1bmN0aW9uOyBvdXRwdXQgdW5saWtlbHlfc2VjdGlvbl9sYWJlbCBpZgoJYXBwcm9wcmlhdGUuCgoyMDA0LTA4LTEwICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLXByb3Rvcy5oIChzMzkwX2Nhbm9uaWNhbGl6ZV9jb21wYXJpc29uKTogRGVjbGFyZS4KCSogY29uZmlnL3MzOTAvczM5MC5jIChzMzkwX2Nhbm9uaWNhbGl6ZV9jb21wYXJpc29uKTogTmV3IGZ1bmN0aW9uLgoJKiBjb25maWcvczM5MC9zMzkwLmggKENBTk9OSUNBTElaRV9DT01QQVJJU09OKTogRGVmaW5lLgoJKiBjb25maWcvczM5MC9zMzkwLm1kICgiKnRtZGlfZXh0IiwgIip0bXNpX2V4dCIsICIqdG1xaXNpX2V4dCIsCgkiKnRtcWlkaV9leHQiLCAiKnRtZGlfbWVtIiwgIip0bXNpX21lbSIsICIqdG1oaV9tZW0iKTogUmVtb3ZlLgoJKCIqdG1xaV9tZW0iKTogUmVtb3ZlIFNVQlJFRyBmcm9tIHBhdHRlcm4uCgkoIiphbmRkaTNfY2Nvbmx5Iik6IFByZXZlbnQgYWNjaWRlbnRhbGx5IG1hdGNoaW5nIFRNIHBhdHRlcm4uCgkoIiphbmRzaTNfY2Nvbmx5Iik6IExpa2V3aXNlLgoKMjAwNC0wOC0xMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIHRhcmdldC8xNjkwOQoJKiBjb25maWcvaTM4Ni9pMzg2Lm1kICgqc3Ryc2V0ZGlfcmV4XzEpOiBVc2UgREkgaW5zdGVhZCBvZiBTSS4KCjIwMDQtMDgtMTAgIEphbmlzIEpvaG5zb24gIDxqYW5pczE4N0B1cy5pYm0uY29tPgoKCSogZG9jL3NvdXJjZWJ1aWxkLnRleGkgKGNvbXBhdCB0ZXN0aW5nKTogRG9jdW1lbnQgYXZhaWxhYmxlIHRlc3QKCWZyYW1ld29yayBjb21tYW5kcy4gIFVzZSB0aGUgcHJlZmVycmVkIHNwZWxsaW5nIG9mIERlamFHbnUuCgoyMDA0LTA4LTEwICBEYW5pZWwgQmVybGluIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogbGFtYmRhLmg6IEFkZCBtYXRyaXggdHlwZSwgYW5kIHByb3RvdHlwZXMgZm9yIHJlbWFpbmRlciBvZgoJbWF0cml4IGFuZCB2ZWN0b3IgZnVuY3Rpb25zLgoJKGxhbWJkYV92ZWN0b3JfbXVsdF9jb25zdCk6IE5ldyBmdW5jdGlvbi4KCShsYW1iZGFfdmVjdG9yX25lZ2F0ZSk6IERpdHRvLgoJKGxhbWJkYV92ZWN0b3JfYWRkKTogRGl0dG8uCgkobGFtYmRhX3ZlY3Rvcl9hZGRfbWMpOiBEaXR0by4KCShsYW1iZGFfdmVjdG9yX2NvcHkpOiBEaXR0by4KCShsYW1iZGFfdmVjdG9yX3plcm9wKTogRGl0dG8uCgkobGFtYmRhX3ZlY3Rvcl9lcXVhbCk6IERpdHRvLgoJKGxhbWJkYV92ZWN0b3JfbWluX256KTogRGl0dG8uCgkobGFtYmRhX3ZlY3Rvcl9maXJzdF9ueik6IERpdHRvLgoJKGxhbWJkYV92ZWN0b3JfbWF0cml4X211bHQpOiBEaXR0by4KCSogbGFtYmRhLW1hdC5jOiBOZXcgZmlsZS4KCSogTWFrZWZpbGUuaW4gKGxhbWJkYS1tYXQubyk6IE5ldy4KCjIwMDQtMDgtMTAgIEFuZHJldyBNYWNMZW9kICA8YW1hY2xlb2RAcmVkaGF0LmNvbT4KCgkqIHRyZWUtY2ZnLmMgKGJzaV9pbnNlcnRfYmVmb3JlLCBic2lfaW5zZXJ0X2FmdGVyKTogQ2FsbCBtb2RpZnlfc3RtdAoJYWZ0ZXIgbGlua2luZyBzdG10IGludG8gdGhlIHByb2dyYW0uCgkoYnNpX3JlbW92ZSk6IERvbid0IGNhbGwgbW9kaWZ5X3N0bXQuCgkqIHRyZWUtY29tcGxleC5jICh1cGRhdGVfY29tcGxleF9hc3NpZ25tZW50LAoJZXhwYW5kX2NvbXBsZXhfY29tcGFyaXNvbik6IENhbGwgbW9kaWZ5X3N0bXQgYWZ0ZXIgY2hhbmdpbmcgdGhlIHN0bXQuCgkqIHRyZWUtb3V0b2Ytc3NhLmMgKHJld3JpdGVfdHJlZXMpOiBDYWxsIG1vZGlmeV9zdG10IG9ubHkgaWYgbm90CglyZW1vdmluZyB0aGUgc3RtdC4KCSogdHJlZS1zc2EtY2NwLmMgKHN1YnN0aXR1dGVfYW5kX2ZvbGQpOiBDYWxsIG1vZGlmeV9zdG10IGFmdGVyIGNoYW5naW5nCgl0aGUgc3RtdCwgYW5kIG9ubHkgaWYgbmVlZGVkLgoJKiB0cmVlLXNzYS1kb20uYyAodGhyZWFkX2Fjcm9zc19lZGdlKTogUGFzcyBubyBhbm5vdGF0aW9uIGZvciBhIGR1bW15CglleHByZXNzaW9uLgoJKHNpbXBsaWZ5X3Joc19hbmRfbG9va3VwX2F2YWlsX2V4cHIpOiBEb24ndCB0YWtlIGFuIGFubm90YXRpb24gcGFyYW0uCgkoc2ltcGxpZnlfY29uZF9hbmRfbG9va3VwX2F2YWlsX2V4cHIpOiBVc2UgbW9kaWZ5X3N0bXQuCgkoc2ltcGxpZnlfc3dpdGNoX2FuZF9sb29rdXBfYXZhaWxfZXhwcik6IERvbid0IHRha2UgYW4gYW5ub3RhdGlvbiBwYXJhbS4KCShlbGltaW5hdGVfcmVkdW5kYW50X2NvbXB1dGF0aW9ucyk6IERvbid0IHBhc3MgYW4gYW5ub3RhdGlvbi4gQ2FsbAoJbW9kaWZ5X3N0bXQgcmF0aGVyIHRoYW4gc2V0dGluZyB0aGUgYW5ub3RhdGlvbiBkaXJlY3RseS4KCShyZWNvcmRfZXF1aXZhbGVuY2VzX2Zyb21fc3RtdCk6IFJlbW92ZSB1bnVzZWQgbG9jYWwgJ2onLgoJKGNwcm9wX29wZXJhbmQpOiBUYWtlIGEgc3RtdCByYXRoZXIgdGhhbiBhbiBhbm5vdGF0aW9uIGFzIGEgcGFyYW1ldGVyLgoJQ2FsbCBtb2RpZnlfc3RtdC4KCShjcHJvcF9pbnRvX3N0bXQpOiBQYXNzIHN0bXQgcmF0aGVyIHRoYW4gYW5ub3RhdGlvbi4KCSh1cGRhdGVfcmhzX2FuZF9sb29rdXBfYXZhaWxfZXhwcik6IENhbGwgbW9kaWZ5X3N0bXQuCgkqIHRyZWUtc3NhLWxvb3AtaW0uYyAoc2NoZWR1bGVfc20pOiBDYWxsIGdldF9zdG10X2FubiByYXRoZXIgdGhhbgoJbW9kaWZ5X3N0bXQuCgkqIHRyZWUtc3NhLmMgKHByb3BhZ2F0ZV9pbnRvX2FkZHIpOiBEb250IGNhbGwgbW9kaWZ5X3N0bXQuCgoyMDA0LTA4LTEwICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5kLzE2OTQ4CgkqIGZ1bmN0aW9uLmMgKGV4cGFuZF9mdW5jdGlvbl9zdGFydCk6IEhhbmRsZSBERUNMX0JZX1JFRkVSRU5DRSBvbgoJdGhlIFJFU1VMVF9ERUNMLgoKMjAwNC0wOC0xMCAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiB0cmVlLXZuLmMgKHZhbF9leHByX3BhaXJfZXhwcl9lcSk6IENvbXBhcmUgdnVzZXMsIHRvIG1hdGNoIHRoZQoJaGFzaCBmdW5jdGlvbi4KCjIwMDQtMDgtMTAgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5tZDogTmV3IHJlY2lwcm9jYWwgc3F1YXJlIHJvb3QgcGF0dGVybnMgdGhhdAoJbWF0Y2ggc3FydCgxLjAveCkgaW4gYWRkaXRpb24gdG8gdGhlIGV4aXN0aW5nIDEuMC9zcXJ0KHgpIGluc25zLgoKMjAwNC0wOC0xMCAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9hcm0vYXJtLXByb3Rvcy5oIChhcm1fc2V0X3JldHVybl9hZGRyZXNzLAoJdGh1bWJfc2V0X3JldHVybl9hZGRyZXNzKTogQWRkIHByb3RvdHlwZXMuCgkqIGNvbmZpZy9hcm0vYXJtLmggKEFSTV9GVF9FWENFUFRJT05fSEFORExFUik6IFJlbW92ZS4KCSogY29uZmlnL2FybS9hcm0uYyAoYXJtX2NvbXB1dGVfZnVuY190eXBlLAoJdXNlX3JldHVybl9pbnNuLCBhcm1fY29tcHV0ZV9zYXZlX3JlZzBfcmVnMTJfbWFzaywKCWFybV9jb21wdXRlX3NhdmVfcmVnX21hc2ssIGFybV9vdXRwdXRfZnVuY3Rpb25fcHJvbG9ndWUsCglhcm1fb3V0cHV0X2VwaWxvZ3VlKTogUmVwbGFjZSBBUk1fRlRfRVhDRVBUSU9OX0hBTkRMRVIgd2l0aAoJY3VycmVudF9mdW5jdGlvbl9jYWxsc19laF9yZXR1cm4uCgkodGh1bWJfZXhpdCwgdGh1bWJfcHVzaHBvcCwgdGh1bWJfdW5leHBhbmRlZF9lcGlsb2d1ZSk6IFJlcGxhY2UKCW9sZCBlaCBjb2RlLgoJKGFybV9zZXRfcmV0dXJuX2FkZHJlc3MsIHRodW1iX3NldF9yZXR1cm5fYWRkcmVzcyk6IE5ldyBmdW5jdGlvbnMuCgkqIGNvbmZpZy9hcm0vYXJtLmggKE1VU1RfVVNFX1NKTEpfRVhDRVBUSU9OUywgRFdBUkYyX1VOV0lORF9JTkZPLAoJQVJNX0VIX1NUQUNLQURKX1JFR05VTSwgRUhfUkVUVVJOX1NUQUNLQURKX1JUWCk6IERlZmluZS4KCSogY29uZmlnL2FybS9hcm0ubWQgKFZVTlNQRUNfRUhfUkVUVVJOKTogQWRkLgoJKGVwaWxvZ3VlKTogVXNlIHRoZSBzdGFja2FkaiByZWdpc3Rlci4KCShlaF9yZXR1cm4sIGFybV9laF9yZXR1cm4sIHRodW1iX2VoX3JldHVybik6IE5ldyBwYXR0ZXJuLgoKMjAwNC0wOC0xMCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzMxNDQKCSogZXhwci5jIChtb3ZlX2J5X3BpZWNlc19uaW5zbnMpOiBBZGQgbWF4X3NpemUgYXJndW1lbnQuCgkoTU9WRV9CWV9QSUVDRVNfUCk6IFBhc3MgTU9WRV9NQVhfUElFQ0VTICsgMSB0byBpdC4KCShDTEVBUl9CWV9QSUVDRVNfUCk6IFBhc3MgU1RPUkVfTUFYX1BJRUNFUyArIDEgdG8gaXQuCgkoU1RPUkVfQllfUElFQ0VTX1ApOiBEZWZpbmUgc2ltaWxhcmx5IHRvIENMRUFSX0JZX1BJRUNFU19QLAoJYnV0IHVzaW5nIE1PVkVfUkFUSU8uCgkobW92ZV9ieV9waWVjZXMpOiBQYXNzIG1heF9zaXplIHRvIG1vdmVfYnlfcGllY2VzX25pbnNucy4KCShjYW5fc3RvcmVfYnlfcGllY2VzKTogQ2hhbmdlIG1heF9zaXplIHR5cGUgdG8gdW5zaWduZWQgaW50LgoJKHN0b3JlX2J5X3BpZWNlc18xKTogTGlrZXdpc2UuICBQYXNzIG1heF9zaXplIHRvCgltb3ZlX2J5X3BpZWNlc19uaW5zbnMuCgkqIGNvbmZpZy9zMzkwL3MzOTAuaCAoU1RPUkVfQllfUElFQ0VTX1ApOiBEZWZpbmUuCgkqIGNvbmZpZy9zaC9zaC5jIChNT1ZFX0JZX1BJRUNFU19QKTogUGFzcyBNT1ZFX01BWF9QSUVDRVMgKyAxCgl0byBtb3ZlX2J5X3BpZWNlc19uaW5zbnMuCgkoU1RPUkVfQllfUElFQ0VTX1ApOiBEZWZpbmUuCgkqIGNvbmZpZy9uczMyay9uczMyay5oIChTVE9SRV9CWV9QSUVDRVNfUCk6IFBhc3MgU1RPUkVfTUFYX1BJRUNFUyArIDEKCXRvIG1vdmVfYnlfcGllY2VzX25pbnNucy4KCSogZG9jL3RtLnRleGkgKFNUT1JFX0JZX1BJRUNFU19QKTogRG9jdW1lbnQgY2hhbmdlZCBkZWZhdWx0LgoKCSogY29uZmlnL2kzODYvaTM4Ni5oIChDTEVBUl9SQVRJTyk6IERlZmluZS4KCjIwMDQtMDgtMDkgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiBleHByLmMgKGV4cGFuZF9leHByX3JlYWxfMSk6IEFkZCBiYWNrIGNvZGUgdGhhdCB3YXMgbm90IGRlYWQuCgoyMDA0LTA4LTA5ICBBbmRyZXcgUGluc2tpICA8YXBpbnNraUBhcHBsZS5jb20+CgoJKiBjLWNvbW1vbi5jIChjX2NvbW1vbl9nZXRfYWxpYXNfc2V0KTogU2V0IHRoZSBhbGlhc2luZyBzZXQgb2YgdGhlIHR5cGUKCXdoaWNoIGlzIGZvdW5kIHRvIGJlIGNvbXBhdGlibGUgYmVmb3JlIHJldHVybmluZyB0aGUgYWxpYXNpbmcgc2V0LgoKMjAwNC0wOC0wOSAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AZGViaWFuLm9yZz4KCgkqIGdnYy16b25lLmMgKHN0cnVjdCBhbGxvY196b25lKTogQWRkIHN0YXRpc3RpY3MgY291bnRlcnMuCgkoYWx3YXlzX2NvbGxlY3QpOiBOZXcgZmxhZy4KCShnZ2NfYWxsb2Nfem9uZV8xKTogVXBkYXRlIHN0YXRpc3RpY3Mgc3VwcG9ydC4gIERvbid0IGluY2x1ZGUKCW92ZXJoZWFkIGluIGFsbG9jYXRlZCBjb3VudGVyLgoJKHN3ZWVwX3BhZ2VzKTogVXBkYXRlIGFsbG9jYXRlZCBjb3VudGVyIGZvciBsYXJnZSBwYWdlcy4gIERvbid5CglpbmNsdWRlIG92ZXJoZWFkLgoJKGdnY19jb2xsZWN0XzEpOiBBbHdheXMgY29sbGVjdC4KCShnZ2NfY29sbGVjdCk6IEhvbm9yIGFsd2F5c19jb2xsZWN0IGZsYWcuICBTdW0gYWxsIHpvbmVzIHRvIGRlY2lkZQoJd2hldGhlciB0byBjb2xsZWN0LgoJKFNDQUxFLCBMQUJFTCk6IE5ldyBtYWNyb3MuCgkoZ2djX3ByaW50X3N0YXRpc3RpY3MpOiBBZGQgc3RhdGlzdGljcyBzdXBwb3J0LgoKMjAwNC0wOC0wOSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBleHBtZWQuYyAoc2Rpdl9wb3cyX2NoZWFwLCBzbW9kX3BvdzJfY2hlYXApOiBDaGFuZ2UgdHlwZSB0byBib29sLgoJKGluaXRfZXhwbWVkKTogRml4IHBvdGVudGlhbCBvdmVycnVuIHByb2JsZW0gd2l0aCAiYWxsLnJlZyIuCgkoZXhwYW5kX3NkaXYyX3BvdzIpOiBBZGQgYW4gYWx0ZXJuYXRlIGltcGxlbWVudGF0aW9uIGZvciBzaWduZWQKCWRpdmlzaW9uLCBpZiB0aGUgdGFyZ2V0IHByb3ZpZGVzIGEgc3VpdGFibGUgY29uZGl0aW9uYWwgbW92ZSBpbnNuLgoKMjAwNC0wOC0wOSAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCVJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB1bndpbmQtZHcyLmMgKHV3X2luc3RhbGxfY29udGV4dF8xKTogVXBkYXRlIHRhcmdldCBzYXZlZCBzdGFjawoJcG9pbnRlci4KCjIwMDQtMDgtMDkgIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogZ2djLWNvbW1vbi5jIChnZ2NfcmxpbWl0X2JvdW5kKTogRG9uJ3QgY2hlY2sgUlNTIGxpbWl0LgoJQ2hlY2sgREFUQSBsaW1pdCBvbmx5IGlmIHRoZXJlJ3Mgbm8gQVMgbGltaXQuICBJZ25vcmUgaW5zYW5lbHkKCWxvdyBEQVRBIGxpbWl0cy4KCShnZ2NfbWluX2hlYXBzaXplX2hldXJpc3RpYyk6IERvbid0IGRpdmlkZSBBUyBvciBSU1MgbGltaXRzIGJ5IDgsCglidXQgdGFrZSBjYXJlIHRoYXQgdGhlIEFTIGxpbWl0IGlzbid0IG92ZXJydW4uCgkqIGRvYy9pbnZva2UudGV4aTogVXBkYXRlIGRvY3VtZW50YXRpb24gb2YgbWluLWhlYXBzaXplIHBhcmFtZXRlci4KCjIwMDQtMDgtMDkgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiBNYWtlZmlsZS5pbiAoT0JKQy1jb21tb24pOiBBZGQgdHJlZS1zc2EtdGhyZWFkdXBkYXRlLmMKCSh0cmVlLXNzYS10aHJlYWR1cGRhdGUubyk6IEFkZCBkZXBlbmRlbmNpZXMuCgkqIHRyZWUtc3NhLXRocmVhZHVwZGF0ZS5jOiBOZXcgZmlsZS4KCSogdHJlZS1mbG93LmggKGluY29taW5nX2VkZ2VfdGhyZWFkZWQpOiBOZXcgZmxhZyBpbiBibG9jayBhbm5vdGF0aW9uLgoJKHJld3JpdGVfdmFyc19vdXRfb2Zfc3NhKTogUmVtb3ZlIHByb3RvdHlwZS4KCShjbGVhbnVwX3RyZWVfY2ZnKTogUmV0dXJucyBhIGJvb2wuCgkqIHRyZWUuaCAodGhyZWFkX3Rocm91Z2hfYWxsX2Jsb2Nrcyk6IFByb3RvdHlwZS4KCSogdHJlZS1vdXRvZi1zc2EuYyAgKFNTQU5PUk1fKik6IE1vdmUgaW50byBoZXJlLgoJKHJlbW92ZV9zc2FfZm9ybSk6IE5vdyBzdGF0aWMuCgkocmV3cml0ZV92YXJzX291dF9vZl9zc2EpOiBLaWxsLgoJKiB0cmVlLXNzYS1saXZlLmMgKHJlZ2lzdGVyX3NzYV9wYXJ0aXRpb25zX2Zvcl92YXJzKTogS2lsbC4KCSogdHJlZS1zc2EtbGl2ZS5oIChTU0FOT1JNXyopOiBNb3ZlZCBpbnRvIHRyZWUtb3V0b2Ytc3NhLmMuCgkocmVtb3ZlX3NzYV9mb3JtLCByZWdpc3Rlcl9wYXJ0aXRpb25zX2Zvcl92YXJzKTogS2lsbCBkZWNsYXJhdGlvbnMuCgkqIHRyZWUtY2ZnLmMgKGNsZWFudXBfdHJlZV9jZmcpOiBSZXR1cm4gYSB2YWx1ZSBpbmRpY2F0aW5nIGlmCglhbnl0aGluZyB3YXMgY2hhbmdlZC4KCSogdHJlZS1waGlub2Rlcy5jIChhZGRfcGhpX2FyZyk6IEdldCB0aGUgYmxvY2sgZm9yIHRoZSBQSEkKCWZyb20gdGhlIFBISSdzIGFubm90YXRpb24gcmF0aGVyIHRoYW4gdGhlIGVkZ2UgYXNzb2NpYXRlZCB3aXRoCgl0aGUgbmV3IGFyZ3VtZW50LgoJKiB0cmVlLXNzYS1kb20uYyAocmVkaXJlY3Rpb25fZWRnZXMpOiBLaWxsLgoJKHJlZGlyZWN0X2VkZ2VzX2FuZF91cGRhdGVfc3NhX2dyYXBoKTogS2lsbC4KCSh0cmVlX3NzYV9kb21pbmF0b3Jfb3B0aW1pemUpOiBEbyBub3QgcmVzZXQgZm9yd2FyZGFibGUgZmxhZwoJZm9yIGJsb2NrcyBhbnltb3JlLiAgRG8gbm90IGluaXRpYWxpemUgcmVkaXJlY3Rpb25fZWRnZXMuCglDYWxsIHRocmVhZF90aHJvdWdoX2FsbF9ibG9ja3MuICBTaW1wbGlmeSBjb2RlIGZvciBjbGVhbnVwCglvZiB0aGUgQ0ZHIGFuZCBpdGVyYXRpbmcuICBObyBsb25nZXIgY2FsbCBjbGVhbnVwX3RyZWVfY2ZnCglvdXRzaWRlIHRoZSBpdGVyYXRpb24gbG9vcC4KCSh0aHJlYWRfYWNyb3NzX2VkZ2UpOiBObyBsb25nZXIgbWVzcyB3aXRoIGZvcndhcmRhYmxlIGJsb2Nrcy4KCjIwMDQtMDgtMDkgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBleHBsb3cuYyAobWVtb3J5X2FkZHJlc3MpOiBVc2UgbWVtb3J5X2FkZHJlc3NfcC4KCSogcmVjb2cuYyAoZ2VuZXJhbF9vcGVyYW5kKTogTGlrZXdpc2UuCgkqIHJlZ3JlbmFtZS5jOiBObyBuZWVkIHRvIGRlZmluZSBSRUdfT0tfU1RSSUNULgoKMjAwNC0wOC0wOSAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogdGltZXZhci5kZWYgKFRWX0NQUk9QMSwgVFZfQ1BST1AyLCBUVl9QUkUsIFRWX0hPSVNULCBUVl9MU00pOgoJTmV3IHRpbWVycy4KCSogZ2NzZS5jOiBJbmNsdWRlIHRpbWV2YXIuaC4KCShjb25zdF9wcm9wX2NvdW50LCBjb3B5X3Byb3BfY291bnQpOiBSZW5hbWUgdG8gZ2xvYmFsX2NvbnN0X3Byb3BfY291bnQKCWFuZCBnbG9iYWxfY29weV9wcm9wX2NvdW50LgoJKGxvY2FsX2NvbnN0X3Byb3BfY291bnQsIGxvY2FsX2NvcHlfcHJvcF9jb3VudCk6IE5ldyBzdGF0aWMgZ2xvYmFscy4KCShnY3NlX21haW4pOiBTZXQgdGhlIHJpZ2h0IHRpbWV2YXIgZm9yIGVhY2ggcGFzcy4KCShjcHJvcF9qdW1wKTogSW5jcmVtZW50IGdsb2JhbF9jb25zdF9wcm9wX2NvdW50IHdoZW4gYSBjb25zdGFudCBpcwoJcHJvcGFnYXRlZC4gIEFkZCAiR0xPQkFMIiB0byBkdW1wIG91dHB1dC4KCShjcHJvcF9pbnNuKTogSW5jcmVtZW50IGdsb2JhbF9jb25zdF9wcm9wX2NvdW50IHdoZW4gYSBjb25zdGFudCBpcwoJcHJvcGFnYXRlZCwgb3IgZ2xvYmFsX2NvcHlfcHJvcF9jb3VudCB3aGVuIGEgY29weSBpcyBwcm9wYWdhdGVkLgoJKGRvX2xvY2FsX2Nwcm9wKTogTGlrZXdpc2UgZm9yIGxvY2FsX2NvbnN0X3Byb3BfY291bnQgYW5kCglsb2NhbF9jb3B5X3Byb3BfY291bnQuCgkob25lX2Nwcm9wX3Bhc3MpOiBJbml0aWFsaXplIGNvbnN0L2Nwcm9wIGNvdW50ZXJzIHRvIHplcm8uCglQcmludCBvdXQgcmVzdWx0cyBvZiBsb2NhbCBhbmQgZ2xvYmFsIGNvbnN0L2Nwcm9wIHNlcGFyYXRlbHkuCgkoYnlwYXNzX2Jsb2NrKTogQnJlYWsgb3Zlci1sZW5ndGggbGluZS4KCSogTWFrZWZpbGUuaW4gKGdjc2Uubyk6IEFkZCBUSU1FVkFSX0ggZGVwZW5kZW5jeS4gIEZpeCBkZXBlbmRlbmNpZXMKCWZvciBiYi1yZW9yZGVyLm8gYW5kIHRyYWNlci5vLgoKMjAwNC0wOC0wOSAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIE1ha2VmaWxlLmluIChHVEZJTEVTKTogUmVtb3ZlIHN0bXQuYwoJKHN0bXQubyk6IERvIG5vdCBkZXBlbmQgb24gZ3Qtc3RtdC5oLgoJKiBlbWl0LXJ0bC5jIChlbWl0X2xpbmVfbm90ZSk6IERvIG5vdCBjYWxsCglzZXRfZmlsZV9hbmRfbGluZV9mb3Jfc3RtdC4KCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEpIDxTV0lUQ0hfRVhQUj46IExldCBleHBhbmRfY2FzZQoJZG8gZXZlcnl0aGluZy4KCSogZnVuY3Rpb24uYyAoZnJlZV9hZnRlcl9wYXJzaW5nKTogRG8gbm90IGZyZWUgU1RNVCBmaWVsZC4KCShhbGxvY2F0ZV9zdHJ1Y3RfZnVuY3Rpb24pOiBEbyBub3QgY2FsbCBpbml0X3N0bXRfZm9yX2Z1bmN0aW9uLgoJKGFzc2lnbl9zdGFja190ZW1wX2Zvcl90eXBlKTogRG8gbm90IGFjY2VwdCB2YWx1ZXMgb2Yga2VlcAoJb3RoZXIgdGhhbiAwIG9yIDEuCgkoaW5pdF90ZW1wX3Nsb3RzKTogRG8gbm90IGluaXRpYWxpemUgcmVtb3ZlZCB2YXJpYWJsZXMuCgkqIGZ1bmN0aW9uLmggKHN0cnVjdCBmdW5jdGlvbik6IFJlbW92ZSBTVE1ULCBYX1RBUkdFVF9URU1QX1NMT1RfTEVWRUwKCWFuZCBYX1ZBUl9URU1QX1NMT1RfTEVWRUwgZmllbGRzLgoJKiBydGwuaCAoc2V0X2ZpbGVfYW5kX2xpbmVfZm9yX3N0bXQpOiBSZW1vdmUuCgkqIHN0bXQuYyAoc3RydWN0IG5lc3RpbmcsIEFMTE9DX05FU1RJTkcsIFBPUFNUQUNLLAoJc3RydWN0IHN0bXRfc3RhdHVzLCBjb25kX3N0YWNrLCBjYXNlX3N0YWNrLCBuZXN0aW5nX3N0YWNrLAoJbmVzdGluZ19kZXB0aCwgZW1pdF9sb2N1cywgc2V0X2ZpbGVfYW5kX2xpbmVfZm9yX3N0bXQsCglzYW1lX2Nhc2VfdGFyZ2V0X3AsIGluaXRfc3RtdF9mb3JfZnVuY3Rpb24sIGVtaXRfbm9wLAoJZXhwYW5kX3N0YXJ0X2NvbmQsIGV4cGFuZF9zdGFydF9lbHNlaWYsIGV4cGFuZF9zdGFydF9lbHNlLAoJZXhwYW5kX2Vsc2VpZiwgZXhwYW5kX2VuZF9jb25kKTogUmVtb3ZlLgoJKHByZXNlcnZlX3N1YmV4cHJlc3Npb25zX3ApOiBSZW1vdmUgcmVmZXJlbmNlcyB0byBDRlVOLT5TVE1ULgoJKGV4cGFuZF9zdGFydF9jYXNlLCBleHBhbmRfZW5kX2Nhc2VfdHlwZSk6IFJlbW92ZSwgbWVyZ2UgaW50by4uLgoJKGV4cGFuZF9jYXNlKTogLi4uIHRoaXMgb25lLCBpbmNsdWRpbmcgb3RoZXIgYml0cyBmcm9tCglleHBhbmRfZXhwcl9yZWFsXzEuICBJbmxpbmUgc2FtZV9jYXNlX3RhcmdldF9wLiAgVHVybiBtZW1iZXJzCglvZiBDQVNFX1NUQUNLIGludG8gbG9jYWwgdmFyaWFibGVzLgoJKGVtaXRfY2FzZV9iaXRfdGVzdHMpOiBJbmxpbmUgc2FtZV9jYXNlX3RhcmdldF9wLgoJKGFkZF9jYXNlX25vZGUpOiBBZGQgSEVBRCBhcmd1bWVudCwgcmV0dXJuIG5ldyBoZWFkIG9mIHRoZSBsaXN0LAoJZG8gbm90IGhhbmRsZSBkZWZhdWx0IGxhYmVsIGhlcmUuCgkqIHRyZWUuaCAoZXhwYW5kX3N0YXJ0X2NvbmQsIGV4cGFuZF9lbmRfY29uZCwgZXhwYW5kX3N0YXJ0X2Vsc2UsCglleHBhbmRfc3RhcnRfZWxzZWlmLCBjdXJyZW50X25lc3RpbmdfbGV2ZWwsIGV4cGFuZF9zdGFydF9jYXNlLAoJZXhwYW5kX2VuZF9jYXNlX3R5cGUsIGV4cGFuZF9lbmRfY2FzZSwgYWRkX2Nhc2Vfbm9kZSwKCWluaXRfc3RtdF9mb3JfZnVuY3Rpb24sIGV4cGFuZF9lbHNlaWYpOiBSZW1vdmUgcHJvdG90eXBlcy4KCShleHBhbmRfY2FzZSk6IEFkZCBwcm90b3R5cGUuCgoyMDA0LTA4LTA5ICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEpOiBVc2Ugb3B0YWJfZm9yX3RyZWVfY29kZS4KCjIwMDQtMDgtMDkgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiBleHByLmMgKHZhcl9ydHgpOiBSZW1vdmUuCgkoZXhwYW5kX2V4cHJfcmVhbF8xKSA8TE9PUF9FWFBSLCBFWElUX0VYUFIsCglMQUJFTEVEX0JMT0NLX0VYUFIsIEVYSVRfQkxPQ0tfRVhQUiwgVFJVVEhfQU5ESUZfRVhQUiwKCVRSVVRIX09SSUZfRVhQUiwgQ09NUE9VTkRfRVhQUiwgQ09OSl9FWFBSLCBJTklUX0VYUFI+OgoJQWJvcnQuCgkoZXhwYW5kX2V4cHJfcmVhbF8xKSA8Q09ORF9FWFBSPjogUmVtb3ZlIG1vc3Qgc3BlY2lhbCBjYXNlcy4KCSogb3B0YWJzLmMgKGVtaXRfY2xyX2luc24sIGVtaXRfMF90b18xX2luc24pOiBSZW1vdmUuCgkqIG9wdGFicy5oIChlbWl0X2Nscl9pbnNuLCBlbWl0XzBfdG9fMV9pbnNuKTogUmVtb3ZlLgoKMjAwNC0wOC0wOCAgTW9zdGFmYSBIYWdvZyAgPG11c3RhZmFAaWwuaWJtLmNvbT4KCUF5YWwgWmFrcyA8emFrc0BpbC5pYm0uY29tPgoKCSogY29tbW9uLm9wdCAoZnJlc2NoZWR1bGUtbW9kdWxvLXNjaGVkdWxlZC1sb29wcyk6IE5ldyBmbGFnLgoJKiBmaW5hbC5jIChmaW5hbF9zY2FuX2luc24pOiBIYW5kbGUgTk9URV9ESVNBQkxFX1NDSEVEX09GX0JMT0NLLgoJKiBtb2R1bG8tc2NoZWQuYyAoc21zX3NjaGVkdWxlKTogRW1pdCBhIG5vdGUgdG8gZGlzYWJsZSBzY2hlZHVsaW5nCgl3aGVuIC1mcmVzY2hlZHVsZS1tb2R1bG8tc2NoZWR1bGVkLWxvb3BzIGZsYWcgaXMgbm90IHNwZWNpZmllZC4KCShzbXNfc2NoZWR1bGVfYnlfb3JkZXIsIHBzX2luc25fYWR2YW5jZV9jb2x1bW4sIGFkZF9ub2RlX3RvX3BzLAoJYWRkX25vZGVfdG9fcHMsIHBzX2hhc19jb25mbGljdHMsIHBzX2FkZF9ub2RlX2NoZWNrX2NvbmZsaWN0cyk6CglNb3JlIGFjY3VyYXRlIHBsYWNpbmcgb2YgaW5zbiBpbiByb3cgb2YgcGFydGlhbCBzY2hlZHVsZS4KCShwc19pbnNuX2ZpbmRfY29sdW1uKTogTmV3IGZ1bmN0aW9uLgoJKiBydGwuaCAoTk9URV9ESVNBQkxFX1NDSEVEX09GX0JMT0NLKTogTmV3IG5vdGUuCgkqIHNjaGVkLXJnbi5jIChzY2hlZF9pc19kaXNhYmxlZF9mb3JfY3VycmVudF9yZWdpb25fcCk6IE5ldy4KCShzY2hlZHVsZV9yZWdpb24pOiBVc2Ugc2NoZWRfaXNfZGlzYWJsZWRfZm9yX2N1cnJlbnRfcmVnaW9uX3AuCgkqIGRvY3MvaW52b2tlLnRleGk6IERvY3VtZW50IC1mcmVzY2hlZHVsZS1tb2R1bG8tc2NoZWR1bGVkLWxvb3BzLgoKMjAwNC0wOC0wNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2V4cGFuZF9jbHJtZW0pOiBSZXZlcnQgdGhlIGxhc3QKCWNoYW5nZS4KCjIwMDQtMDgtMDcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9leHBhbmRfY2xybWVtKTogUHJvcGVybHkgY2FsbAoJZ2VuX3N0cnNldCBmb3IgNjRiaXQgdGFyZ2V0LgoKMjAwNC0wOC0wNyAgT2xpdmllciBIYWlucXVlICA8aGFpbnF1ZUBhY3QtZXVyb3BlLmZyPgoKCSogY29uZmlnL3Z4d29ya3MuaCAoSEFORExFX1NZU1ZfUFJBR01BKTogUmVtb3ZlIGRlZmluaXRpb24uCgoyMDA0LTA4LTA3ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglNYWtlIHJldHVybiBpbiBtZW1vcnkgZXhwbGljaXQuCgkqIGZ1bmN0aW9uLmMgKGFnZ3JlZ2F0ZV92YWx1ZV9wKTogQ2hlY2sgREVDTF9CWV9SRUZFUkVOQ0UuCgkoYXNzaWduX3Bhcm1fZmluZF9kYXRhX3R5cGVzKTogUmVtb3ZlIGNvZGUgZm9yIG9sZCBmcm9udCBlbmQKCWludmlzaWJsZSByZWZlcmVuY2UgaGFuZGxpbmcuCgkoYXNzaWduX3Bhcm1zKTogSGFuZGxlIERFQ0xfQllfUkVGRVJFTkNFIG9uIHRoZSBSRVNVTFRfREVDTC4KCShleHBhbmRfZnVuY3Rpb25fZW5kKTogTGlrZXdpc2UuCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X3JldHVybl9leHByKTogSGFuZGxlIGEgZGVyZWZlcmVuY2VkCglSRVNVTFRfREVDTC4KCSogdHJlZS1pbmxpbmUuYyAoY29weV9ib2R5X3IpOiBEb24ndCBib3RoZXIgbG9va2luZyBmb3IgJiogYW55bW9yZS4KCShkZWNsYXJlX3JldHVybl92YXJpYWJsZSk6IEhhbmRsZSBERUNMX0JZX1JFRkVSRU5DRS4KCSogY3AvY3AtZ2ltcGxpZnkuYyAoaXNfaW52aXNpcmVmX3Bhcm0pOiBBbHNvIGhhbmRsZSBSRVNVTFRfREVDTC4KCShjcF9nZW5lcmljaXplX3IpOiBVc2UgY29udmVydF9mcm9tX3JlZmVyZW5jZS4KCURvbid0IGRlcmVmZXJlbmNlIGEgUkVTVUxUX0RFQ0wgZGlyZWN0bHkgaW5zaWRlIGEgUkVUVVJOX0VYUFIuCgkoY3BfZ2VuZXJpY2l6ZSk6IEhhbmRsZSB0aGUgUkVTVUxUX0RFQ0wuICBVbnNldCBUUkVFX0FERFJFU1NBQkxFLgoKCSogYy1jb21tb24uYyAoY193YXJuX3VudXNlZF9yZXN1bHQpOiBDaGVjayBUUkVFX1VTRUQgYmVmb3JlCgl3YXJuaW5nIGFib3V0IGEgQ0FMTF9FWFBSIHdpdGggYW4gdW51c2VkIHZhbHVlLgoKMjAwNC0wOC0wNiAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9hcm0vc3ltYmlhbi5oIChDQzFfU1BFQyk6IEF2b2lkIHBhc3NpbmcgZHVwbGljYXRlIG9wdGlvbnMKCXRvIHRoZSBjb21waWxlci4gIFVzZSAtZnNob3J0LXdjaGFyIGJ5IGRlZmF1bHQuCgoyMDA0LTA4LTA2ICBQYXQgSGF1Z2VuICA8cHRoYXVnZW5AdXMuaWJtLmNvbT4KCgkqIHBhcmFtcy5kZWYgKFBBUkFNX01JTl9DUk9TU0pVTVBfSU5TTlMpOiBOZXcuCgkqIGNmZ2NsZWFudXAuYyAodHJ5X2Nyb3NzanVtcF90b19lZGdlKTogQWRkIG1pbmltdW0gaW5zbiBtYXRjaAoJdGhyZXNoaG9sZC4KCSogZG9jL2ludm9rZS50ZXhpIChwYXJhbSk6IERvY3VtZW50IG1pbi1jcm9zc2p1bXAtaW5zbnMuCgoyMDA0LTA4LTA2ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJUFIgYy8xMzI4MgoJKiBjLm9wdCAoV21pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzKTogTmV3IG9wdGlvbi4KCSogYy1vcHRzLmMgKGNfY29tbW9uX3Bvc3Rfb3B0aW9ucyk6IE1ha2UgLVdleHRyYSB0dXJuIGl0IG9uIGJ5IGRlZmF1bHQuCgkqIGMtdHlwZWNrLmMgKHBvcF9pbml0X2xldmVsKTogR3VhcmQgdGhlIG1pc3NpbmcgZmllbGQgd2FybmluZyB3aXRoCgl3YXJuX21pc3NpbmdfZmllbGRfaW5pdGlhbGl6ZXJzIHJhdGhlciB0aGFuIGV4dHJhX3dhcm5pbmdzLgoJKiBkb2MvaW52b2tlLnRleGkgKC1XbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMpOiBEb2N1bWVudCwgbW92aW5nCglzb21lIG9mIHRoZSBleHBsYW5hdGlvbiBmcm9tLi4uCgkoLVdleHRyYSk6IC4uLmhlcmUuICBTYXkgdGhhdCB0aGUgbWlzc2luZyBmaWVsZCB3YXJuaW5nIGNhbiBiZQoJc2VwZXJhdGVseSBjb250cm9sbGVkIGJ5IC1XbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMuCgoyMDA0LTA4LTA2ICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEpIDxFTlRSWV9WQUxVRV9FWFBSPjogUmVtb3ZlLgoJKiB0cmVlLWlubGluZS5jIChlc3RpbWF0ZV9udW1faW5zbnNfMSkgPEVOVFJZX1ZBTFVFX0VYUFI+OiBSZW1vdmUuCgkqIHRyZWUtcHJldHR5LXByaW50LmMgKGR1bXBfZ2VuZXJpY19ub2RlKSA8RU5UUllfVkFMVUVfRVhQUj46IFJlbW92ZS4KCSogdHJlZS5kZWYgKEVOVFJZX1ZBTFVFX0VYUFIpOiBSZW1vdmUuCgoyMDA0LTA4LTA2ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9leHBhbmRfY2xybWVtKTogTW92ZSBnZW5fY2xkIGRvd24gdG8KCXRoZSBwbGFjZXMgd2hlcmUgaXQgaXMgYWN0dWFsbHkgbmVlZGVkLiAgRG9uJ3QgdXNlIHJlcHo7IHN0b3NiCglmb3IgLU9zIHdpdGggc3VmZmljaWVudGx5IHNtYWxsIGNvbnN0YW50IHNpemVzLgoJRm9yIHN1ZmZpY2llbnRseSBzbWFsbCByZXB6OyBzdG9ze2wscX0gcmVwZWF0IGNvdW50cyB1c2UgYSBzZXF1ZW5jZQoJb2Ygc3Rvc3tsLHF9IGluc3RydWN0aW9ucyBpbnN0ZWFkLgoKMjAwNC0wOC0wNiAgWmRlbmVrIER2b3JhayAgPHJha2R2ZXJAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE2ODA3CgkqIGxvb3AtaXYuYyAoZHVtcF9pdl9pbmZvKTogRHVtcCBpbnZhcmlhbnRzIGNvcnJlY3RseS4KCShpdl9zdWJyZWcsIGl2X2V4dGVuZCk6IEV4cHJlc3MgdmFsdWUgb2YgaW52YXJpYW50IHB1cmVseSBpbgoJYmFzZSBmaWVsZC4KCjIwMDQtMDgtMDYgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvYXJtL3N5bWJpYW4uaCAoQ0MxX1NQRUMpOiBBZGQgLWZuby1zaG9ydC1lbnVtcy4KCShDQzFQTFVTX1NQRUMpOiBEZWZpbmUgaXQgdG8gYmUgdGhlIHNhbWUgYXMgQ0MxX1NQRUMuCgoyMDA0LTA4LTA2ICBSb21hbiBaaXBwZWwgIDx6aXBwZWxAbGludXgtbTY4ay5vcmc+CgoJKiBjb25maWcvbTY4ay9tNjhrLmMgKHBvc3RfaW5jX29wZXJhbmQscHJlX2RlY19vcGVyYW5kKTogTmV3LgoJKiBjb25maWcvbTY4ay9tNjhrLmggKFBSRURJQ0FURV9DT0RFUyk6IGFkZCBwb3N0X2luY19vcGVyYW5kLAoJcHJlX2RlY19vcGVyYW5kLgoJKiBjb25maWcvbTY4ay9tNjhrLm1kICh6ZXJvX2V4dGVuZCoyKTogZGVsYXkgdGhlIHNwbGl0dGluZyBvZiB0aGUKCXBhdHRlcm4gdW50aWwgcmVsb2FkIGlzIGZpbmlzaGVkIHRvIGFsbG93IGJldHRlciBjb2RlIGdlbmVyYXRpb24KCWFuZCBzcGxpdCB0aGVtIGNvbXBsZXRlbHkgaW50byBzZXBhcmF0ZSBpbnN0cnVuY3Rpb25zLgoJKCphbmRzaTNfc3BsaXQpOiBOZXcgcGF0dGVybi4KCjIwMDQtMDgtMDUgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlLmMgKGhhbmRsZV9kbGxfYXR0cmlidXRlKTogTW92ZSBoZXJlIGZyb20gaTM4My93aW5udC5jLgoJUmVwbGFjZSB1c2Ugb2YgREVDTF9JTkxJTkUgd2l0aCBERUNMX0RFQ0xBUkVEX0lOTElORV9QLiAgU2V0CglERUNMX1ZJU0lCTElUWS4gIFRlc3QgVEFSR0VUX0RMTElNUE9SVF9ERUNMX0FUVFJJQlVURVMgd2l0aCAjaWYuCgkqIHRyZWUuaCAoaGFuZGxlX2RsbF9hdHRyaWJ1dGUpOiBEZWNsYXJlLiAgVGVzdAoJVEFSR0VUX0RMTElNUE9SVF9ERUNMX0FUVFJJQlVURVMgd2l0aCAjaWYuCgkqIGMtY29tbW9uLmggKGNfZGV0ZXJtaW5lX3Zpc2liaWxpdHkpOiBEZWNsYXJlLgoJKiBjLWNvbW1vbi5jIChjX2RldGVybWluZV92aXNpYmlsaXR5KTogTmV3IGZ1bmN0aW9uLgoJKiBjLWRlY2wuYyAoZmluaXNoX2RlY2wpOiBVc2UgaXQuCgkoZmluaXNoX2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkqIGRlZmF1bHRzLmggKFRBUkdFVF9ETExJTVBPUlRfREVDTF9BVFRSSUJVVEVTKTogRGVmaW5lIGl0IHRvCgl6ZXJvLCBieSBkZWZhdWx0LiAgVXNlICNpZiwgbm90CSNpZmRlZiwgdG8gdGVzdCBpdC4KCSogY29uZmlnL2FybS9hcm0uYyAoYXJtX2F0dHJpYnV0ZV90YWJsZSk6IFVzZQoJaGFuZGxlX2RsbF9hdHRyaWJ1dGUuICBUZXN0IFRBUkdFVF9ETExJTVBPUlRfREVDTF9BVFRSSUJVVEVTIHdpdGgKCSNpZi4KCSogY29uZmlnL2FybS9wZS5oIChUQVJHRVRfRExMSU1QT1JUX0RFQ0xfQVRUUklCVVRFUyk6IERlZmluZSB0byAxLgoJKiBjb25maWcvaTM4Ni9jeWdtaW5nLmggKFRBUkdFVF9ETExJTVBPUlRfREVDTF9BVFRSSUJVVEVTKTogRGVmaW5lCgl0byAxLgoJKiBjb25maWcvaTM4Ni9pMzg2LXByb3Rvcy5oIChpeDg2X2hhbmRsZV9kbGxfYXR0cmlidXRlKTogUmVtb3ZlLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfYXR0cmlidXRlX3RhYmxlKTogVXNlCgloYW5kbGVfZGxsX2F0dHJpYnV0ZSBmb3IgZGxsaW1wb3J0L2RsbGV4cG9ydC4gIFRlc3QKCVRBUkdFVF9ETExJTVBPUlRfREVDTF9BVFRSSUJVVEVTIHdpdGggI2lmLgoJKiBjb25maWcvaTM4Ni93aW5udC5jIChpeDg2X2hhbmRsZV9kbGxfYXR0cmlidXRlKTogUmVtb3ZlLgoJKiBjb25maWcvbWNvcmUvbWNvcmUuaCAoVEFSR0VUX0RMTElNUE9SVF9ERUNMX0FUVFJJQlVURVMpOiBEZWZpbmUKCWl0IHRvIDEuCgkqIGNvbmZpZy9tY29yZS9tY29yZS5jIChUQVJHRVRfRExMSU1QT1JUX0RFQ0xfQVRUUklCVVRFUyk6IFRlc3QgaXQKCXdpdGggI2lmLgoJKiBjb25maWcvc2gvc3ltYmlhbi1wcmUuaCAoVEFSR0VUX0RMTElNUE9SVF9ERUNMX0FUVFJJQlVURVMpOiBEZWZpbmUKCWl0IHRvIDEuCgkqIGRvYy9leHRlbmQudGV4aSAoZGxsZXhwb3J0KTogQ2xhcmlmeSBhbmQgY29ycmVjdCBkb2N1bWVudGF0aW9uLgoJKGRsbGltcG9ydCk6IExpa2V3aXNlLgoJKiBkb2MvdG0udGV4aSAoVEFSR0VUX0RMTElNUE9SVF9ERUNMX0FUVFJJQlVURVMpOiBNZW50aW9uCgloYW5kbGVfZGxsX2F0dHJpYnV0ZS4KCjIwMDQtMDgtMDUgIFpkZW5layBEdm9yYWsgIDxyYWtkdmVyQGF0cmV5Lmthcmxpbi5tZmYuY3VuaS5jej4KCgkqIHRyZWUtc3NhLWxvb3AtbWFuaXAuYzogTmV3IGZpbGUuCgkqIE1ha2VmaWxlLmluICh0cmVlLXNzYS1sb29wLW1hbmlwLm8pOiBBZGQuCgkqIHRyZWUtZmxvdy5oIChyZXdyaXRlX2ludG9fbG9vcF9jbG9zZWRfc3NhLCB2ZXJpZnlfbG9vcF9jbG9zZWRfc3NhKToKCURlY2xhcmUuCgkqIHRyZWUtc3NhLWxvb3AuYyAodHJlZV9sb29wX29wdGltaXplcl9pbml0KTogQ3JlYXRlIGxvb3AgY2xvc2VkIHNzYQoJZm9ybS4KCSh0cmVlX3NzYV9sb29wX2RvbmUpOiBWZXJpZnkgbG9vcCBjbG9zZWQgc3NhIGZvcm0uCgkqIHRyZWUtc3NhLWxvb3AtaW0uYyAobW92ZV9jb21wdXRhdGlvbnMpOiBVcGRhdGUgbG9vcCBjbG9zZWQgc3NhIGZvcm0uCgoyMDA0LTA4LTA1ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCSogcGEuYyAocGFfYXNtX291dHB1dF9hbGlnbmVkX2JzcywgcGFfYXNtX291dHB1dF9hbGlnbmVkX2NvbW1vbiwKCXBhX2FzbV9vdXRwdXRfYWxpZ25lZF9sb2NhbCk6IE5ldyBmdW5jdGlvbnMuCgkqIHBhLXByb3Rvcy5oOiBBZGQgcHJvdG90eXBlcyBmb3IgcGFfYXNtX291dHB1dF9hbGlnbmVkX2JzcywKCXBhX2FzbV9vdXRwdXRfYWxpZ25lZF9jb21tb24gYW5kIHBhX2FzbV9vdXRwdXRfYWxpZ25lZF9sb2NhbC4KCSogcGEtcHJvLWVuZC5oIChBU01fT1VUUFVUX0FMSUdORURfQ09NTU9OKTogVXNlCglwYV9hc21fb3V0cHV0X2FsaWduZWRfY29tbW9uLgoJKEFTTV9PVVRQVVRfQUxJR05FRF9MT0NBTCk6IFVzZSBwYV9hc21fb3V0cHV0X2FsaWduZWRfbG9jYWwuCgkqIHBhLmggKEFTTV9PVVRQVVRfQUxJR05FRF9CU1MpOiBOZXcgbWFjcm8uCgkoQVNNX09VVFBVVF9BTElHTkVEX0NPTU1PTik6IFVzZSBwYV9hc21fb3V0cHV0X2FsaWduZWRfY29tbW9uLgoJKEFTTV9PVVRQVVRfQUxJR05FRF9MT0NBTCk6IFVzZSBwYV9hc21fb3V0cHV0X2FsaWduZWRfbG9jYWwuCgkqIHBhNjQtaHB1eC5oIChNQVhfT0ZJTEVfQUxJR05NRU5UKTogTmV3IG1hY3JvLgoJKEFTTV9PVVRQVVRfQUxJR05FRF9DT01NT04pOiBVc2UgcGFfYXNtX291dHB1dF9hbGlnbmVkX2NvbW1vbi4KCShBU01fT1VUUFVUX0FMSUdORURfTE9DQUwpOiBVc2UgcGFfYXNtX291dHB1dF9hbGlnbmVkX2xvY2FsLgoJKiBzb20uaCAoTUFYX09GSUxFX0FMSUdOTUVOVCk6IFByb3ZpZGUgbWF4aW11bSBhbGlnbm1lbnQgb2YgZ2xvYmFsCgljb21tb24gZGF0YS4KCjIwMDQtMDgtMDUgIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGFwcGxlLmNvbT4KCgkqIG9iamMvb2JqYy1hY3QuYyAoYnVpbGRfb2JqY19zdHJpbmdfb2JqZWN0KTogTWFyayB0aGUgYWRkcmVzcwoJZXhwcmVzc2lvbiBhcyBjb25zdGFudC4KCjIwMDQtMDgtMDUgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9ydHhfY29zdHMpOiBGaXggbWFza19vcGVyYW5kCglhbmQgbWFzazY0X29wZXJhbmQgdGhpbmtvcy4gIEhhbmRsZSBaRVJPX0VYVFJBQ1QuICBIYW5kbGUKCVNJR05fRVhURU5EIC8gWkVST19FWFRFTkQgb2YgTUVNLiAgSGFuZGxlIHJsd2lubSBwYXR0ZXJucy4KCjIwMDQtMDgtMDUgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogY29uZmlnL2xpbnV4LmgsIGNvbmZpZy9pMzg2L2xpbnV4LmgsIGNvbmZpZy9zcGFyYy9saW51eC5oOgoJUmVtb3ZlIGRlZmluaXRpb25zIGNvbmRpdGlvbmVkIG9uIFVTRV9HTlVMSUJDXzEgb3IgY29uZGl0aW9uZWQKCW91dCwgYW5kIGFzc29jaWF0ZWQgb2Jzb2xldGUgY29tbWVudHMuCgoyMDA0LTA4LTA1ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJlZS5oIChmb3JjZV9maXRfdHlwZSk6IFJldHVybiBhIHRyZWUsIHRha2UgdGhyZWUgZmxhZ3MuCgkqIGZvbGQtY29uc3QuYyAoZm9yY2VfZml0X3R5cGUpOiBTZXQgVFJFRV9PVkVSRkxPVyBhbmQKCVRSRUVfQ09OU1RBTlRfT1ZFUkZMT1cgaGVyZS4KCShpbnRfY29uc3RfYmlub3AsIGNvbnN0X2Jpbm9wKTogQWRqdXN0LgoJKHNpemVfaW50X3R5cGUpOiBEbyBzaWduIGV4dGVuc2lvbiBoZXJlLgoJKGZvbGRfY29udmVydF9jb25zdCwgb3B0aW1pemVfYml0X2ZpZWxkX2NvbXBhcmUsCglkZWNvZGVfZmllbGRfcmVmZXJlbmNlLCBhbGxfb25lc19tYXNrX3AsIGZvbGRfZGl2X2NvbXBhcmUsIGZvbGQsCglmb2xkX25lZ2F0ZV9jb25zdCwgZm9sZF9hYnNfY29uc3QsIGZvbGRfbm90X2NvbnN0KTogQWRqdXN0LgoJKiB0cmVlLmMgKHNpemVfaW5fYnl0ZXMsIGludF9maXRzX3R5cGVfcCk6IEFkanVzdC4KCjIwMDQtMDgtMDUgIFpkZW5layBEdm9yYWsgIDxyYWtkdmVyQGF0cmV5Lmthcmxpbi5tZmYuY3VuaS5jej4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNjg2NAoJKiB0cmVlLXRhaWxjYWxsLmMgKGVsaW1pbmF0ZV90YWlsX2NhbGwpOiBEbyBub3QgY3JlYXRlIHBoaSBub2RlcwoJZm9yIHNzYSBuYW1lcyB3aXRob3V0IGRlZmF1bHRfZGVmLgoKMjAwNC0wOC0wNSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2V4cGFuZF9wcm9sb2d1ZSk6IElmIHRoZSBmdW5jdGlvbiB1c2VzIGEKCWZyYW1lIHBvaW50ZXIsIHJlc3RvcmUgZWF4IHdpdGggYW4gZWJwLXJlbGF0aXZlIGFkZHJlc3MuCgoyMDA0LTA4LTA0ICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCglQUiAxNDUxNgoJKiBjLWNvbW1vbi5jIChjX2V4cGFuZF9kZWNsKTogRG9uJ3Qgc3BlY2lhbC1jYXNlIHN0YXRpYyBWQVJfREVDTHMuCgkqIGMtY29tbW9uLmggKG1ha2VfcnRsX2Zvcl9sb2NhbF9zdGF0aWMpOiBEZWxldGUuCgkqIGMtZGVjbC5jIChzaGFkb3dfdGFnX3dhcm5lZCk6IENsZWFuIHVwIGNvbW1lbnQuCgkoZmluaXNoX2RlY2wpOiBDbGVhbiB1cCBzcGFjaW5nLiAgVXNlIHNldF91c2VyX2Fzc2VtYmxlcl9uYW1lIHdoZW4KCWFwcHJvcHJpYXRlLiAgRG9uJ3QgcGFzcyBhc21zcGVjIHRvIHJlc3Rfb2ZfZGVjbF9jb21waWxhdGlvbi4KCSogYy1zZW1hbnRpY3MuYyAobWFrZV9ydGxfZm9yX2xvY2FsX3N0YXRpYyk6IERlbGV0ZS4KCSogZXhwci5jIChpbml0X2Jsb2NrX21vdmVfZm4pOiBVc2Ugc2V0X3VzZXJfYXNzZW1ibGVyX25hbWUuCgkoaW5pdF9ibG9ja19jbGVhcl9mbik6IExpa2V3aXNlLgoJKiBwYXNzZXMuYyAocmVzdF9vZl9kZWNsX2NvbXBpbGF0aW9uKTogUmVtb3ZlIGFzbXNwZWMgcGFyYW1ldGVyLAoJZXhwZWN0IGl0IHRvIGJlIGluIERFQ0xfQVNTRU1CTEVSX05BTUUuICBVcGRhdGUgY2FsbGVycyBpbiBtYW55IGZpbGVzLgoJKiB0b3BsZXYuaCAocmVzdF9vZl9kZWNsX2NvbXBpbGF0aW9uKTogUmVtb3ZlIGFzbXNwZWMgcGFyYW1ldGVyLgoJKiB0cmVlLmggKG1ha2VfZGVjbF9ydGwpOiBSZW1vdmUgc2Vjb25kIHBhcmFtZXRlci4KCShzZXRfdXNlcl9hc3NlbWJsZXJfbmFtZSk6IE5ldy4KCSogdmFyYXNtLmMgKHNldF91c2VyX2Fzc2VtYmxlcl9uYW1lKTogTmV3LgoJKG1ha2VfZGVjbF9ydGwpOiBSZW1vdmUgc2Vjb25kIHBhcmFtZXRlci4gIFVwZGF0ZSBjYWxsZXJzIGluIG1hbnkKCWZpbGVzLgoKMjAwNC0wOC0wNSAgQWRhbSBOZW1ldCAgPGFuZW1ldEBsbnh3LmNvbT4KCgkqIGNvbmZpZy5nY2MgKGNhc2UgaVszNDU2N104Ni0qLWx5bnhvcyopOiBVcGRhdGUgdG8gTHlueE9TIDQuMC4KCShjYXNlIHJzNjAwMC0qLWx5bnhvcyopOiBSZW5hbWUgaXQgdG8gcG93ZXJwYy0qLWx5bnhvcyouICBVcGRhdGUKCXRvIEx5bnhPUyA0LjAuCgkqIGd0aHItbHlueC5oOiBOZXcgZmlsZS4KCSogY29uZmlnL2x5bngtbmcuaDogUmVtb3ZlIGZpbGUuCgkqIGNvbmZpZy9seW54Lmg6IFVwZGF0ZSB0byBMeW54T1MgNC4wLgoJKiBjb25maWcvdC1seW54OiBOZXcgZmlsZS4KCSogY29uZmlnL2kzODYvbHlueC1uZy5oOiBSZW1vdmUgZmlsZS4KCSogY29uZmlnL2kzODYvbHlueC5oOiBVcGRhdGUgdG8gTHlueE9TIDQuMC4KCSogY29uZmlnL3JzNjAwMC9seW54YmFzZS5oOiBSZW1vdmUgZmlsZS4KCSogY29uZmlnL3JzNjAwMC9seW54Lmg6IFVwZGF0ZSB0byBMeW54T1MgNC4wLgoJKiBjb25maWcvcnM2MDAwL3QtbHlueDogTmV3IGZpbGUuCgkqIGRvYy9pbnN0YWxsLnRleGkgKE9wdGlvbnMgc3BlY2lmaWNhdGlvbik6IFJlbW92ZSByZWZlcmVuY2UgdG8KCUx5bnhPUyBmcm9tIHN5c3RlbXMgd2hlcmUgLS13aXRoLWdudS1hcyBtYWtlcyBhIGRpZmZlcmVuY2UuCgoyMDA0LTA4LTA1ICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtY29tbW9uLmMgKGNfc3RkZGVmX2NwcF9idWlsdGlucyk6IERlZmluZSBfX0lOVE1BWF9UWVBFX18gYW5kCglfX1VJTlRNQVhfVFlQRV9fLgoJKiBjLWNwcGJ1aWx0aW4uYyAoYnVpbHRpbl9kZWZpbmVfc3RkaW50X21hY3Jvcyk6IE5ldy4gIERlZmluZQoJX19JTlRNQVhfTUFYX18uCgkoY19jcHBfYnVpbHRpbnMpOiBDYWxsIGl0LgoJKiBkb2MvY3BwLnRleGk6IFVwZGF0ZS4KCjIwMDQtMDgtMDQgIERhdmlkIEVkZWxzb2huICA8ZWRlbHNvaG5AZ251Lm9yZz4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9ydHhfY29zdHMpOiBMQUJFTF9SRUZzIGFyZSB6ZXJvCgljb3N0LgoKMjAwNC0wOC0wNCAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogYmFzaWMtYmxvY2suaCAocHJvZmlsZV9zdGF1cyk6IE5ldyBnbG9iYWwgdmFyaWFibGUuCgkqIGNmZy5jIChwcm9maWxlX3N0YXR1cyk6IERlY2xhcmUuCgkoY2hlY2tfYmJfcHJvZmlsZSk6IEJyZWFrIG91dCBmcm9tIC4uLi47IHVzZSBwcm9maWxlX3N0YXR1cwoJKGR1bXBfZmxvd19pbmZvKTogLi4uIGhlcmUuCgkqIGNmZ2J1aWxkLmMgKGZpbmRfYmFzaWNfYmxvY2tzKTogU2V0IHByb2ZpbGVfc3RhdHVzLgoJKiBjZmdleHBhbmQuYyAodHJlZV9leHBhbmRfY2ZnKTogTGlrZXdpc2UuCgkqIHByZWRpY3QuYyAoZXN0aW1hdGVfcHJvYmFiaWxpdHkpOiBMaWtld2lzZS4KCSogcHJvZmlsZS5jIChicmFuY2hfcHJvYik6IExpa2V3aXNlLgoJKiB0cmVlLWNmZy5jIChidWlsZF90cmVlX2NmZyk6IExpa2V3aXNlLgoJKGR1bXBfZnVuY3Rpb25fdG9fZmlsZSk6IFVzZSBjaGVja19iYl9wcm9maWxlLgoJKiB0cmVlLXByZXR0eS1wcmludCAoZHVtcF9iYl9oZWFkZXIpOiBMaWtld2lzZS4KCSogdHJlZS1wcm9maWxlLmMgKGRvX3RyZWVfcHJvZmlsaW5nKTogQ2xlYW51cC4KCjIwMDQtMDgtMDQgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5pbiAoUlRMX0JBU0VfSCwgUlRMX0gpOiBDb3JyZWN0LgoJKEJVSUxEX1JUTCk6IFJlbW92ZSAkKEJVSUxEX1BSRUZJWCkgZnJvbSBnZ2Mtbm9uZS5vLgoJKGdlbm9ianMpOiBBZGQgZXJyb3JzLm8sIGdnYy1ub25lLm8sIGFuZCBtaW4taW5zbi1tb2Rlcy5vLgoJKHJlYWQtcnRsLm8sIGdlbnN1cHBvcnQubywgZ2VuY29uZmlnLm8sIGdlbmZsYWdzLm8sIGdlbmNvZGVzLm8pCgkoZ2VuY29uc3RhbnRzLm8sIGdlbmVtaXQubywgZ2Vub3Bpbml0Lm8sIGdlbnJlY29nLm8sIGdlbmV4dHJhY3QubykKCShnZW5wZWVwLm8sIGdlbmF0dHIubywgZ2VuYXR0cnRhYi5vLCBnZW5hdXRvbWF0YS5vLCBnZW5vdXRwdXQubykKCShnZW5jb25kaXRpb25zLm8pOiBEZXBlbmQgb24gJChSVExfQkFTRV9IKSBub3QgJChSVExfSCkuCgkoZ2djLW5vbmUubywgZXJyb3JzLm8pOiBNb3ZlIHJ1bGUgdG8gZ2VuZXJhdG9ycyBzZWN0aW9uOwoJY29ycmVjdCBkZXBlbmRlbmNpZXMuCgkobWluLWluc24tbW9kZXMubyk6IE1vdmUgcnVsZSB0byBnZW5lcmF0b3JzIHNlY3Rpb247IHJlbW92ZQoJdW5uZWNlc3NhcnkgZXhwbGljaXQgY29tbWFuZDsgY29ycmVjdCBkZXBlbmRlbmNpZXMuCgkocHJpbnQtcnRsLm8sIHByaW50LXJ0bDEubyk6IENvcnJlY3QgZGVwZW5kZW5jaWVzLgoJKCQoQlVJTERfUFJFRklYXzEpZXJyb3JzLm8uICQoQlVJTERfUFJFRklYXzEpZ2djLW5vbmUubyk6IERlbGV0ZSBydWxlLgoJKG1vc3RseWNsZWFuKTogVXBkYXRlLgoKCSogZXJyb3JzLmM6IEluY2x1ZGUgYmNvbmZpZy5oIG5vdCBjb25maWcuaC4gIENvcnJlY3QgY29tbWVudC4KCSogZ2VuZ3R5cGUuYywgZ2VucHJlZHMuYzogRG9uJ3QgZGVmaW5lIE5PX0dFTlJUTF9ILgoJKiBnZ2Mtbm9uZS5jOiBJbmNsdWRlIGJjb25maWcuaDsgbm90IGNvbmZpZy5oIG9yIHRtLmguCgkqIHByaW50LXJ0bC5jOiBEb24ndCBpbmNsdWRlIHRtX3AuaC4KCgkqIHJ0bC5oOiBNb3ZlIGZvcndhcmQtZGVjbCBvZiBzdHJ1Y3QgZnVuY3Rpb24gZG93biB3aGVyZSBpdCdzCgluZWVkZWQuICBJbmNsdWRlIGdlbnJ0bC5oICNpZm5kZWYgR0VORVJBVE9SX0ZJTEUsIG5vdAoJI2lmbmRlZiBOT19HRU5SVExfSC4gIFJlbW92ZSB1bm5lY2Vzc2FyeSAjaWZkZWYgQlVGU0laIHN0YXRlbWVudHMuCgoyMDA0LTA4LTA0ICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgkgICAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIHRyZWUtY2ZnLmMgKHRyZWVfZHVwbGljYXRlX2JiKTogTWFyayBkdXBsaWNhdGVkIGRlZmluaXRpb25zLgoJKiB0cmVlLWZsb3cuaCAocmV3cml0ZV9zc2FfaW50b19zc2EpOiBEZWNsYXJhdGlvbiBjaGFuZ2VkLgoJKiB0cmVlLWludG8tc3NhLmMgKHJld3JpdGVfc3NhX2ludG9fc3NhKTogVXNlIG5ldyBpbnRlcmZhY2UgdG8KCW1hbmlwdWxhdGUgdGhlIGR1cGxpY2F0ZWQgc3NhIG5hbWVzLgoJKiB0cmVlLXNzYW5hbWVzLmMgKHNzYV9uYW1lc190b19yZXdyaXRlKTogTmV3IHZhcmlhYmxlLgoJKG1hcmtlZF9mb3JfcmV3cml0ZV9wLCBhbnlfbWFya2VkX2Zvcl9yZXdyaXRlX3AsIG1hcmtfZm9yX3Jld3JpdGUsCgl1bm1hcmtfYWxsX2Zvcl9yZXdyaXRlLCBtYXJrZWRfc3NhX25hbWVzLCByZWxlYXNlX3NzYV9uYW1lX2ZvcmNlKToKCU5ldyBmdW5jdGlvbnMuCgkocmVsZWFzZV9zc2FfbmFtZSk6IERvIG5vdCByZWxlYXNlIHNzYSBuYW1lcyB0aGF0IG1heSBoYXZlIG11bHRpcGxlCglkZWZpbml0aW9ucy4KCSogdHJlZS5oIChyZWxlYXNlX3NzYV9uYW1lX2ZvcmNlLCBtYXJrX2Zvcl9yZXdyaXRlLAoJdW5tYXJrX2FsbF9mb3JfcmV3cml0ZSwgbWFya2VkX2Zvcl9yZXdyaXRlX3AsIGFueV9tYXJrZWRfZm9yX3Jld3JpdGVfcCwKCW1hcmtlZF9zc2FfbmFtZXMpOiBEZWNsYXJlLgoJKiB0cmVlLXNzYS1sb29wLWNoLmMgKG1hcmtfZGVmc19mb3JfcmV3cml0ZSk6IFJlbW92ZS4KCShkdXBsaWNhdGVfYmxvY2tzKTogUmVtb3ZlIGNhbGwgdG8gbWFya19kZWZzX2Zvcl9yZXdyaXRlLgoJVXBkYXRlIGNhbGwgdG8gcmV3cml0ZV9zc2FfaW50b19zc2EuCgoyMDA0LTA4LTA0ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogZGVmYXVsdHMuaCAoVEFSR0VUX0RFQ0xTUEVDKTogTmV3IG1hY3JvLgoJKiBjLWNwcGJ1aWx0aW4uYyAoY19jcHBfYnVpbHRpbnMpOiBIYW5kbGUgVEFSR0VUX0RFQ0xTUEVDLgoJKiBjb25maWcvYXJtL3BlLmggKFNVQlRBUkdFVF9DUFBfU1BFQyk6IFJlbW92ZSBfX2RlY2xzcGVjIHN1cHBvcnQuCgkqIGNvbmZpZy9hcm0vc3ltYmlhbi5oIChUQVJHRVRfRExMSU1QT1JUX0RFQ0xfQVRUUklCVVRFUyk6IERlZmluZS4KCSogY29uZmlnL2kzODYvYmVvZi1lbGYuaCAoVEFSR0VUX09TX0NQUF9CVUlMVElOUyk6IFJlbW92ZQoJX19kZWNsc3BlYyBzdXBwb3J0LgoJKFRBUkdFVF9ERUNMU1BFQyk6IERlZmluZS4KCSogY29uZmlnL2kzODYvY3lnbWluZy5oIChUQVJHRVRfT1NfQ1BQX0JVSUxUSU5TKTogUmVtb3ZlCglfX2RlY2xzcGVjIHN1cHBvcnQuCgkqIGNvbmZpZy9pMzg2L2kzODYtaW50ZXJpeC5oIChUQVJHRVRfT1NfQ1BQX0JVSUxUSU5TKTogUmVtb3ZlCglfX2RlY2xzcGVjIHN1cHBvcnQuCgkoVEFSR0VUX0RFQ0xTUEVDKTogRGVmaW5lLgoJKiBjb25maWcvbWNvcmUvbWNvcmUuaCAoVEFSR0VUX0NQVV9DUFBfQlVJTFRJTlMpOiBSZW1vdmUKCV9fZGVjbHNwZWMgc3VwcG9ydC4KCSogY29uZmlnL3NoL3N5bWJpYW4tcHJlLmggKFNVQlRBUkdFVF9DUFBfU1BFQyk6IFJlbW92ZSBfX2RlY2xzcGVjCglzdXBwb3J0LgoJKiBkb2MvdG0udGV4aSAoVEFSR0VUX0RFQ0xTUEVDKTogRG9jdW1lbnQuCgoJKiBkb2MvZXh0ZW5kLnRleGk6IEZpeCB0eXBvIGluIGNvbW1lbnQuCgoyMDA0LTA4LTA0ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogdGFyZ2V0LWRlZi5oIChUQVJHRVRfQ1hYX0NEVE9SX1JFVFVSTlNfVEhJUyk6IERlZmluZS4KCShUQVJHRVRfQ1hYKTogVXNlIGl0LgoJKiB0YXJnZXQuaCAoc3RydWN0IGdjY190YXJnZXQpOiBBZGQgY2R0b3JfcmV0dXJuc190aGlzLgoJKiBjb25maWcvYXJtL2FybS5jIChhcm1fY3h4X2NkdG9yX3JldHVybnNfdGhpcyk6IE5ldyBmdW5jdGlvbi4KCShUQVJHRVRfQ1hYX0NEVE9SX1JFVFVSTlNfVEhJUyk6IERlZmluZS4KCSogZG9jL3RtLnRleGk6IERvY3VtZW50IFRBUkdFVF9DWFhfQ0RUT1JfUkVUVVJOU19USElTLgoKMjAwNC0wOC0wMyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGMtbGV4LmMgKG5hcnJvd2VzdF91bnNpZ25lZF90eXBlLCBuYXJyb3dlc3Rfc2lnbmVkX3R5cGUpOiBUYWtlCglsb3cvaGlnaCBwYWlyLiBEbyByYW5nZSBjaGVja2luZyBkaXJlY3RseS4KCShpbnRlcnByZXRfaW50ZWdlcik6IEFkanVzdC4KCjIwMDQtMDgtMDQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvc2gvc2guaCAoVEFSR0VUX1NXSVRDSEVTKTogQWRkIG5vLXJlbmVzYXMgdG8gc2VsZWN0IHRoZQoJR0NDIEFCSS4KCSogZG9jL2ludm9rZS50ZXhpOiBEb2N1bWVudCB0aGlzIG5ldyBzd2l0Y2ggYW5kIGFsc28gdGhlIC1tcmVuZXNhcwoJc3dpdGNoLgoKMjAwNC0wOC0wNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNmZ2xheW91dC5jIChpbnNuX2xvY2F0b3JzX2luaXRpYWxpemUpOiBVcGRhdGUgdGhlIGN1cnJlbnQKCWxvY2F0aW9uIGJlZm9yZSBpbml0aWFsaXppbmcgYSBsb2NhdGlvbi4KCjIwMDQtMDgtMDMgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkYnhvdXQuYyAoZGJ4b3V0X2Z1bmN0aW9uX2RlY2wpOiBBbHdheXMgY2FsbCBkYnhvdXRfZnVuY3Rpb25fZW5kLgoJKGRieG91dF9mdW5jdGlvbl9lbmQpOiBSZXR1cm4gYWZ0ZXIgZW1pdHRpbmcgdGhlICJMc2NvcGUiIHN5bWJvbAoJdW5kZXIgdGhlIHNhbWUgY29uZGl0aW9ucyB0aGF0IHRoaXMgZnVuY3Rpb24gZm9ybWVybHkgd2Fzbid0IGNhbGxlZC4KCUFkZCBleHBsYW5hdG9yeSBjb21tZW50cy4KCglQUiAxNDg2MAoJKiBjLWRlY2wuYyAocmVjb3JkX2J1aWx0aW5fdHlwZSk6IENhbGwgZGVidWdfaG9va3MtPnR5cGVfZGVjbAoJb24gdGhlIG5ldyBkZWNsLgoKCVBSIDEzOTU2CgkqIGRieG91dC5jIChkYnhfb3V0cHV0X2xicmFjLCBkYnhfb3V0cHV0X3JicmFjKTogTmV3CglmdW5jdGlvbnMsIGJyb2tlbiBvdXQgb2YgZGJ4b3V0X2Jsb2NrLgoJKGRieG91dF9ibG9jayk6IFRoZSBibG9jayBhdCBkZXB0aCAwIHNob3VsZCBnZXQgTEJSQUMvUkJSQUMKCXN0YWJzIHRvbywgaWYgaXQgY29udGFpbnMgc3ltYm9scy4gIFVzZSB0aGUgYmVnaW5fbGFiZWwgYW5kCgl0aGUgTHNjb3BlIGxhYmVsIChlbWl0dGVkIGJ5IGRieG91dF9mdW5jdGlvbl9lbmQpIGZvciB0aGUKCXJhbmdlIG9mIHRoaXMgYmxvY2suCgoyMDA0LTA4LTAzICBOYXRoYW5hZWwgTmVyb2RlICA8bmVyb2RlbkBnY2MuZ251Lm9yZz4KCgkqIGRvYy9pbnN0YWxsLnRleGk6IFVwZGF0ZSBhdXRvY29uZiB2ZXJzaW9uIHJlcXVpcmVtZW50cy4KCjIwMDQtMDgtMDMgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkZWZhdWx0cy5oIChMRUdJVElNQVRFX1BJQ19PUEVSQU5EX1ApOiBQcm92aWRlIGRlZmF1bHQgZGVmaW5pdGlvbi4KCSogcmVjb2cuYyAoZ2VuZXJhbF9vcGVyYW5kLCBpbW1lZGlhdGVfb3BlcmFuZCwgbm9ubWVtb3J5X29wZXJhbmQpCgkoYXNtX29wZXJhbmRfb2spOiBSZW1vdmUgI2lmZGVmcyBvbiBMRUdJVElNQVRFX1BJQ09QRVJBTkRfUC4KCSogcmVnY2xhc3MuYyAocmVjb3JkX3JlZ19jbGFzc2VzKTogTGlrZXdpc2UuCgkqIHJlbG9hZC5jIChmaW5kX3JlbG9hZHMpOiBMaWtld2lzZS4KCSogcmVsb2FkMS5jIChyZWxvYWQpOiBMaWtld2lzZS4KCjIwMDQtMDgtMDMgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnZW5zdXBwb3J0LmMgKGluaXRfbWRfcmVhZGVyX2FyZ3NfY2IpOiBSZW5hbWVkIGZyb20KCWluaXRfbWRfcmVhZGVyX2FyZ3MuICBBZGQgdGhpcmQgb3B0aW9uLCBjYWxsYmFjayBmdW5jdGlvbiBmb3IKCXBhcnNpbmcgcHJvZ3JhbS1zcGVjaWZpYyBvcHRpb25zLiAgQWRkIGRpYWdub3NpcyBvZiBpbmNvcnJlY3QKCW51bWJlciBvZiBpbnB1dCBmaWxlcy4KCShpbml0X21kX3JlYWRlcik6IEZvbGQgaW50byBpbml0X21kX3JlYWRlcl9hcmdzX2NiLgoJKGluaXRfbWRfcmVhZGVyX2FyZ3MpOiBOb3cgYSB0aGluIHdyYXBwZXIgYXJvdW5kCglpbml0X21kX3JlYWRlcl9hcmdzX2NiLgoJKiBnZW5zdXBwb3J0Lmg6IFVwZGF0ZSBwcm90b3R5cGVzLgoKCSogZ2VuYXR0ci5jLCBnZW5hdHRydGFiLmMsIGdlbmNvZGVzLmMsIGdlbmNvbmZpZy5jLCBnZW5lbWl0LmMKCSogZ2VuZXh0cmFjdC5jLCBnZW5mbGFncy5jLCBnZW5vcGluaXQuYywgZ2Vub3V0cHV0LmMsIGdlbnBlZXAuYwoJKiBnZW5yZWNvZy5jOiBObyBuZWVkIHRvIGRpYWdub3NlIGxhY2sgb2YgYW4gaW5wdXQgZmlsZTsKCWluaXRfbWRfcmVhZGVyX2FyZ3Mgd2lsbCBoYW5kbGUgaXQuCgkqIGdlbmNvbmRpdGlvbnMuYzogTGlrZXdpc2UsIGFuZCB1c2UgaW5pdF9tZF9yZWFkZXJfYXJncy4KCSogZ2VuY29uc3RhbnRzLmM6IExpa2V3aXNlLCBhbmQgbm8gbmVlZCB0byBjYWxsIHJlYWRfbWRfcnR4LgoKMjAwNC0wOC0wMyAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBjLWRlY2wuYyAoaW1wbGljaXRseV9kZWNsYXJlKTogRGlhZ25vc2UgaW5jb21wYXRpYmxlIGltcGxpY2l0CglkZWNsYXJhdGlvbnMuCgoyMDA0LTA4LTAzICBNaWtlIFN0dW1wICA8bXJzQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW4tYy5jOiBEb24ndCBzZWFyY2ggaW4gIi9Mb2NhbC9MaWJyYXJ5L0ZyYW1ld29ya3MiCglmb3IgZnJhbWV3b3Jrcy4KCSogZG9jL2ludm9rZS50ZXhpIChEYXJ3aW4gT3B0aW9ucyk6IFVwZGF0ZSB0byByZWZsZWN0IGFib3ZlLgoKMjAwNC0wOC0wMyAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJUFIgbWlkZGxlLWVuZC8xNjc5MAoJKiBmb2xkLWNvbnN0LmMgKGV4dHJhY3RfbXVsZGl2XzEpIDxOT1BfRVhQUj46IERpc2FsbG93IGxvY2FsCgl0cnVuY2F0aW9ucywgbm90IGp1c3QgZ2xvYmFsIHRydW5jYXRpb25zLgoKMjAwNC0wOC0wMyAgQW5kcmV3IFBpbnNraSAgPGFwaW5za2lAYXBwbGUuY29tPgoKCVBSIGJvb3RzdHJhcC8xNjg2NQoJKiBsb29wLWl2LmMgKHNpbXBsaWZ5X3VzaW5nX2Fzc2lnbm1lbnQpOiBJbml0aWFsaXplIGxocy4KCjIwMDQtMDgtMDMgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBnY2MvZG9jL2luc3RhbGwudGV4aTogRG9jdW1lbnQgTVBGUiByZXF1aXJlbWVudC4KCjIwMDQtMDgtMDMgIE1hY2llaiBXLiBSb3p5Y2tpICA8bWFjcm9AbGludXgtbWlwcy5vcmc+CgoJKiBhY2xvY2FsLm00IChnY2NfQUNfRlVOQ19NTUFQX0JMQUNLTElTVCk6IENoZWNrIGZvciA8c3lzL21tYW4uaD4KCWFuZCBtbWFwKCkgZXhwbGljaXRseSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gcHJlc2V0IGF1dG9jb25mIGNhY2hlCgl2YXJpYWJsZXMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDQtMDgtMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiB0YXJnZXQvMTY1NzAKCSogY29uZmlnLmdjYyAoaVszNDU2N104Ni0qLSogfCB4ODZfNjQtKi0qKTogQWRkIGkzODYvdC1nbW1fbWFsbG9jCgl0byB0bWFrZV9maWxlLgoJKGlbMzQ1NjddODYtKi1saW51eCphb3V0KiB8IGlbMzQ1NjddODYtKi1saW51eCpsaWJjMSk6IExpa2V3aXNlLgoJKGlbMzQ1NjddODYtKi1saW51eCogfCB4ODZfNjQtKi1saW51eCopOiBBZGQgaTM4Ni90LXBtbV9tYWxsb2MKCXRvIHRtYWtlX2ZpbGUuCgoJKiBjb25maWcvaTM4Ni90LWdtbV9tYWxsb2M6IE5ldyBmaWxlLgoJKiBjb25maWcvaTM4Ni90LXBtbV9tYWxsb2M6IExpa2V3aXNlLgoKCSogY29uZmlnL2kzODYveG1taW50cmluLmg6IEluY2x1ZGUgPG1tX21hbGxvYy5oPi4KCjIwMDQtMDgtMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCSAgICBUYW5ndXkgRmF1dHLDICA8dGZhdXRyZUBwYW5kb3JhLmJlPgoKCSogY29uZmlnL2kzODYvcG1tX21hbGxvYy5oOiBOZXcgZmlsZS4KCjIwMDQtMDgtMDMgIERhbm55IFNtaXRoICA8ZGFubnlzbWl0aEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjb25maWcvaTM4Ni9nbW1fbWFsbG9jLmg6IE5ldyBmaWxlLgoKMjAwNC0wOC0wMyAgRGFsZSBKb2hhbm5lc2VuICA8ZGFsZWpAYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAobWFjaG9waWNfb3V0cHV0X3N0dWIpOiAgQWxpZ24gRGFyd2luIHN0dWJzLgoJKiBjLWNvbW1vbi5jOiBJbmNsdWRlIG9wdHMuaC4KCShjX2NvbW1vbl9nZXRfYWxpYXNfc2V0KTogRml4IGNoZWNrIGZvciBhIHNpbmdsZSBpbnB1dCBmaWxlLgoJKiB0b3BsZXYuYzogUmVtb3ZlIGN1cnJlbnRfZmlsZV9kZWNsLgoJKiB0cmVlLmg6IERpdHRvLgoKMjAwNC0wOC0wMyAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy5nY2MgKGFybSotKi1zeW1iaWFuZWxmKik6IE5ldyB0YXJnZXQuCgkqIGNvbmZpZy9hcm0vc3ltYmlhbi5oOiBOZXcgZmlsZS4KCgkqIGd0aHItZ25hdC5jOiBBZGQgdmlzaWJpbGl0eSAjcHJhZ21hcy4KCSogZ3Roci1nbmF0LmggOiBMaWtld2lzZS4KCSogZ3Roci5oOiBMaWtld2lzZS4KCSogbGliZ2NjMi5jIChfX2Zmc1NJMik6IE1vdmUgcHJvdG90eXBlIHRvIGxpYmdjYzIuaC4KCShfX2Zmc0RJMik6IExpa2V3aXNlLgoJKF9fY2x6U0kyKTogTGlrZXdpc2UuCgkoX19jdHpTSTIpOiBMaWtld2lzZS4KCShfX2N0ekRJMik6IExpa2V3aXNlLgoJKF9fcG9wY291bnRTSTIpOiBMaWtld2lzZS4KCShfX3BvcGNvdW50REkyKTogTGlrZXdpc2UuCgkoX19wYXJpdHlTSTIpOiBMaWtld2lzZS4KCShfX3Bhcml0eURJMik6IExpa2V3aXNlLgoJKiBsaWJnY2MyLmg6IEFkZCB2aXNpYmlsaXR5ICNwcmFnbWFzLgoJKF9fY2x6REkyKTogQWRkIHByb3RvdHlwZS4KCShfX2NselNJMik6IExpa2V3aXNlLgoJKF9fY3R6U0kyKTogTGlrZXdpc2UuCgkoX19mZnNESTIpOiBMaWtld2lzZS4KCShfX2Zmc1NJMik6IExpa2V3aXNlLgoJKF9fY3R6REkyKTogTGlrZXdpc2UuCgkoX19wb3Bjb3VudFNJMik6IExpa2V3aXNlLgoJKF9fcG9wY291bnRESTIpOiBMaWtld2lzZS4KCShfX3Bhcml0eVNJMik6IExpa2V3aXNlLgoJKF9fcGFyaXR5REkyKTogTGlrZXdpc2UuCgkqIHVud2luZC1kdzItZmRlLmg6IEFkZCB2aXNpYmlsaXR5ICNwcmFnbWFzLgoJKiB1bndpbmQuaDogTGlrZXdpc2UuCgoyMDA0LTA4LTAzICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgkgICAgRGFsZSBKb2hhbm5lc2VuICA8ZGFsZWpAYXBwbGUuY29tPgoJICAgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX3J0eF9jb3N0cyk6IENhbGN1bGF0ZSBjb3N0IG9mCgljb25zdGFudHMgbW9yZSBhY2N1cmF0ZWx5LiAgQWRqdXN0IGNvc3RzIGZvciBGTUEgaW5zdHJ1Y3Rpb25zLgoJQWRkIGNhc2VzIGZvciBtb3N0IGxvZ2ljYWwgYW5kIGZsb2F0IG9wZXJhdGlvbnMuICBSZWN1cnNlIGludG8KCW1vc3Qgb3BlcmFuZHMuCgoyMDA0LTA4LTAzICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIGNvbmZpZy5nY2MgKHN0cm9uZ2FybS0qLCB4c2NhbGUtKik6IEFkZCB0LWFybSB0byB0bWFrZV9maWxlcy4KCjIwMDQtMDgtMDMgIFBhdCBIYXVnZW4gIDxwdGhhdWdlbkB1cy5pYm0uY29tPgoKCSogcmEtYnVpbGQuYyAoY29uZmxpY3RzX2JldHdlZW5fd2Vicyk6IEZvciB3ZWJzIHRoYXQgY3Jvc3MgYSBjYWxsIGFkZAoJY29uZmxpY3RzIHRvIHJlZ3NfaW52YWxpZGF0ZWRfYnlfY2FsbC4KCjIwMDQtMDgtMDMgIFBhdWwgQnJvb2sgIDxwYXVsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvYXJtL2FybS5jIChlbWl0X3NmbSk6IE9ubHkgZW1pdCBhIHNpbmdsZSBmcmFtZSBhZGp1c3RtZW50LgoKMjAwNC0wOC0wMyAgSmFuIEh1Ymlja2EgIDxqaEBzdXNlLmN6PgoKCSogY292ZXJhZ2UuYyAodHJlZV9jb3ZlcmFnZV9jb3VudGVyX3JlZik6IEZpeCBjb21wdXRhdGlvbiBvZiB0aGUgbmV3CglBUlJBWV9SRUYgYXJndW1lbnQuCgoyMDA0LTA4LTAzICBSaWNoYXJkIEVhcm5zaGF3ICA8cmVhcm5zaGFAYXJtLmNvbT4KCgkqIGFybS1jb3Jlcy5kZWY6IFNvcnQgYnkgYXJjaGl0ZWN0dXJlLiAgQWRkIGFybTk0NmVzLCBhcm05NjZlcywKCWFybTk2OGVzLCBhcm0xMGUsIGFybTEwMjBlLCBhcm0xMDIyZS4KCSogaW52b2tlLnRleGk6IFVwZGF0ZSBsaXN0IG9mIEFSTSBjb3Jlcy4KCSogYXJtLXR1bmUubWQ6IFJlZ2VuZXJhdGUuCgoyMDA0LTA4LTAzICBSaWNoYXJkIEVhcm5zaGF3IDxyZWFybnNoYUBhcm0uY29tPgoKCSogYXJtL2dlbnR1bmUuc2g6IE5ldyBmaWxlLgoJKiBhcm0vdC1hcm06IE5ldyBmaWxlLgoJKiBhcm0vYXJtLXR1bmUubWQ6IE5ldyBmaWxlIChhdXRvZ2VuZXJhdGVkKS4KCSogY29uZmlnLmdjYyAoYXJtKi0qLSopOiBBZGQgdC1hcm0gdG8gdG1ha2VfZmlsZSBmb3IgYWxsIHZhcmlhbnRzLgoJKiBhcm0ubWQgKGF0dHJpYnV0ZSB0dW5lKTogRGVsZXRlLiAgSW5jbHVkZSBhcm0tdHVuZS5tZC4KCjIwMDQtMDgtMDMgIFBhb2xvIEJvbnppbmkgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGdjYy5jIChhZGRfcHJlZml4LCBhZGRfc3lzcm9vdGVkX3ByZWZpeCk6IFJlbW92ZQoJcGVudWx0aW1hdGUgcGFyYW1ldGVyLiAgQWxsIGNhbGxlcnMgYWRqdXN0ZWQuCgkoc3RydWN0IHByZWZpeF9saXN0KTogUmVtb3ZlIHVzZWRfZmxhZ19wdHIuCgkoZmluZF9hX2ZpbGUpOiBEbyBub3Qgc2V0ICpwbC0+dXNlZF9mbGFnX3B0ci4KCSh3YXJuX0IsIHdhcm5fc3RkX3B0cik6IFJlbW92ZS4KCjIwMDQtMDgtMDMgIFlvc3NpIE1hcmtvdmljaCA8eW9zc2ltQGlsLmlibS5jb20+CgkgICAgTW9zdGFmYSBIYWdvZyA8bXVzdGFmYUBpbC5pYm0uY29tPgoKCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLm1kIChhbHRpdmVjX3ZubXN1YmZwKTogRml4IHdyb25nIHBhdHRlcm4uCgoyMDA0LTA4LTAyICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGR3YXJmMm91dC5jIChvdXRwdXRfY2FsbF9mcmFtZV9pbmZvKTogRG9uJ3QgY2hhbmdlIGRhdGEgZm9ybWF0CglkdWUgdG8gVEFSR0VUX1VTRVNfV0VBS19VTldJTkRfSU5GTy4gIEFsd2F5cyByZWZlciB0byB0aGUgbG9jYWwKCWxhYmVsLiAgVXNlICd0cnVlJyBub3QgJzEnLgoJKiBkb2MvaW5zdGFsbC50ZXhpIChwb3dlcnBjLSotZGFyd2luKik6IE1lbnRpb24gY2N0b29scyB2ZXJzaW9uCglyZXF1aXJlZC4KCjIwMDQtMDgtMDIgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogZ2RiaW5pdC5pbjogUmVmbGVjdCBwcmV2aW91cyBjaGFuZ2VzIHRvIHJ0dW5pb25fZGVmLgoKMjAwNC0wOC0wMiAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBmb2xkLWNvbnN0LmMgKGZvbGQpIDxUUlVOQ19NT0RfRVhQUj46IFRoZSB0cmFuc2Zvcm1hdGlvbiAiWCAlIC1ZIgoJLT4gIlggJSBZIiBpcyBvbmx5IHZhbGlkIGZvciBUUlVOQ19NT0RfRVhQUi4KCjIwMDQtMDgtMDIgIEdhYnJpZWwgRG9zIFJlaXMgIDxnZHJAaW50ZWdyYWJsZS1zb2x1dGlvbnMubmV0PgoKCSogdmVjLmggKERFRl9WRUNfUCk6IEFkZCBwcm9wZXIgY2FzdCB0byB1c2VzIG9mIHZlY19vX3Jlc2VydmUgYW5kCgl2ZWNfcF9yZXNlcnZlLgoJKiBsYW5naG9va3MuaCAobGFuZ19ob29rczo6YnVpbHRpbl9mdW5jdGlvbik6IFJlbmFtZSBwYXJhbWV0ZXIKCWZyb20gImNsYXNzIiB0byAiYnRfY2xhc3MiLgoKMjAwNC0wOC0wMiAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE1MDY4CgkqIGZsb3cuYyAoaW5pdF9wcm9wYWdhdGVfYmxvY2tfaW5mbyk6IENoZWNrIGNvbmRpdGlvbiBpcyByZXZlcnNpYmxlLgoKMjAwNC0wOC0wMiAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9ucy5uZXQ+CgoJKiBnZW5ndHlwZS5oIChvcHRpb25zOjppbmZvKTogQ2hhbmdlIHR5cGUgdG8gY29uc3QgY2hhciAqLgoJKGVudW0gZ2NfdXNlZF9lbnVtKTogTW92ZSBvdXQgb2Ygc3RydWN0IHR5cGUgc2NvcGUuCgkqIGdlbmd0eXBlLmMgKGNyZWF0ZV9vcHRpb24pOiBDb252ZXJ0IGluaXRpYWxpemVyIGZvciBvcHRpb246OmluZm8gdG8KCWFwcHJvcGlhdGUgdHlwZS4KCShhZGp1c3RfZmllbGRfdHlwZSwgd2Fsa190eXBlLCB3cml0ZV9mdW5jX2Zvcl9zdHJ1Y3R1cmUsCgl3cml0ZV9yb290LCB3cml0ZV9yb290cyk6IFJlbW92ZSBwb2ludGxlc3MgY2FzdC4KCjIwMDQtMDgtMDIgIEoib3JuIFJlbm5lY2tlIDxqb2Vybi5yZW5uZWNrZUBzdXBlcmguY29tPgoKCSogZ2Vub3Bpbml0LmMgKGdlbl9pbnNuKTogQ2hlY2sgZm9yIE1PREVfQ09NUExFWF9GTE9BVCBwYXR0ZXJucyBmb3IgJEYuCgoyMDA0LTA4LTAyICBHYWJyaWVsIERvcyBSZWlzICA8Z2RyQGludGVncmFibGUtc29sdXRpb25zLm5ldD4KCgkqIHJ0bC5oICh1bmlvbiBydHVuaW9uX2RlZik6IEhhdmUgYWxsIG1lbWJlcnMgIHN0YXJ0IHdpdGggdGhlCglwcmVmaXggInJ0XyIuCgkoWElOVCwgWFNUUiwgWEVYUCwgWFZFQywgWE1PREUsIFhCSVRNQVAsIFhUUkVFLCBYQkJERUYsIFhUTVBMLAoJWDBJTlQsIFgwVUlOVCwgWDBTVFIsIFgwRVhQLCBYMFZFQywgWDBNT0RFLCBYMEJJVE1BUCwgWDBUUkVFLAoJWDBNRU1BVFRSLCBYMEJCREVGLCBYMFJFR0FUVFIsIFhDSU5ULCBYQ1VJTlQsIFhDU1RSLCBYQ0VYUCwKCVhDVkVDLCBYQ01PREUsIFhDQklUTUFQLCBYQ1RSRUUsIFhDQkJERUYsIFhDMkVYUCk6IEFkanVzdCBtZW1iZXJzCglhY2Nlc3MuCgkqIGdlbmd0eXBlLmMgKGFkanVzdF9maWVsZF9ydHhfZGVmKTogTGlrZXdpc2UuCgkqIHJ0bGFuYWwuYyAobG9jX21lbnRpb25lZF9pbl9wKTogTGlrZXdpc2UuCgoyMDA0LTA4LTAyICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcuZ2NjIChtaXBzKi0qLWVsZiosIG1pcHMqLSotcnRlbXMqKTogQWRkIGVsZm9zLmggdG8gdG1fZmlsZS4KCVJlcGxhY2UgdXNlcyBvZiBtaXBzL2VsZjY0Lmggd2l0aCBtaXBzL2VsZi5oCgkqIGNvbmZpZy9taXBzL2VsZi5oIChNQVhfT0ZJTEVfQUxJR05NRU5ULCBUQVJHRVRfQVNNX05BTUVEX1NFQ1RJT04pCgkoVFlQRV9PUEVSQU5EX0ZNVCwgVFlQRV9BU01fT1AsIFNJWkVfQVNNX09QLCBCU1NfU0VDVElPTl9BU01fT1ApCgkoQVNNX09VVFBVVF9BTElHTkVEX0JTUywgQVNNX1dFQUtFTl9MQUJFTCwgQVNNX09VVFBVVF9XRUFLX0FMSUFTKQoJKE1BS0VfREVDTF9PTkVfT05MWSwgSU5JVF9TRUNUSU9OX0FTTV9PUCwgRklOSV9TRUNUSU9OX0FTTV9PUCkKCShIQU5ETEVfU1lTVl9QUkFHTUEpOiBEZWxldGUuCgkoQVNNX09VVFBVVF9ERUYpOiBGaXggZm9ybWF0dGluZy4KCSogY29uZmlnL21pcHMvZWxmNjQuaDogRGVsZXRlLgoKMjAwNC0wOC0wMSAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoZ290X3N5bWJvbGljX29wZXJhbmQpOiBEbyByZXF1aXJlIGEKCXN5bWJvbCtvZmZzZXQgb3BlcmFuZCB0byBoYXZlIGl0cyBvZmZzZXQgYmUgemVybyBtb2QgMHgzZmZmCgl3aGVuIEdPVCBlbnRyaWVzIGFyZSBpbiB1c2UuICBDbGFyaWZ5IGxvZ2ljIGluIFNZTUJPTF9SRUYKCWNhc2UuICBDbGFyaWZ5IGNvbW1lbnRzLgoJKGlhNjRfZXhwYW5kX2xvYWRfYWRkcmVzcyk6IFNwbGl0IGEgc3ltYm9sK29mZnNldCBsb2FkIHdoZW4KCXRoZSBvZmZzZXQgaXMgbm9uemVybyBtb2QgMHgzZmZmLCBub3QgMHgxZmZmLgoKMjAwNC0wOC0wMSAgR2VvZmZyZXkgS2VhdGluZyAgPGdlb2Zma0BhcHBsZS5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfc3BsaXRfbXVsdGlyZWdfbW92ZSk6IEp1c3QgYWJvcnQKCWlmIHRyeWluZyB0byAqc3RvcmUqIHRvIGEgbm9uLW9mZnNldHRhYmxlIGFkZHJlc3MuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kIChtb3Z0Zl9pbnRlcm5hbCk6IERvbid0IG1vdmUgR1BScyB0bwoJYSBub25vZmZzZXR0YWJsZSBhZGRyZXNzLgoJKG1vdmRpX2ludGVybmFsMzIpOiBEb24ndCBtb3ZlIEdQUnMgdG8gYSBub25vZmZzZXR0YWJsZSBhZGRyZXNzLgoJQ2xlYW4gdXAuCgkobW92dGlfc3RyaW5nKTogRG9uJ3QgbW92ZSBHUFJzIHRvIGEgbm9ub2Zmc2V0dGFibGUgYWRkcmVzcy4KCShtb3Z0aV9wcGM2NCk6IERvbid0IG1vdmUgR1BScyB0byBhIG5vbm9mZnNldHRhYmxlIGFkZHJlc3MuICBDbGVhbiB1cC4KCjIwMDQtMDgtMDIgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCVBSIHRhcmdldC8xNjE1NQoJKiBjb25maWcvcnM2MDAwL2FsdGl2ZWMuaDogUmVwbGFjZSB0eXBlb2Ygd2l0aCBfX3R5cGVvZl9fLgoKMjAwNC0wOC0wMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGV4cHIuYyAoZXhwYW5kX2V4cHJfcmVhbF8xKSA8bm9ybWFsX2lubmVyX3JlZj46IEZpeCBjcmFzaCB3aXRoCgl2YXJpYWJsZSBzaXplZCB0eXBlcy4KCjIwMDQtMDgtMDEgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGRvYy9pbnZva2UudGV4aTogSW4gdGhlIE1JUFMgb3B0aW9ucyBzZWN0aW9uLCByZW1vdmUgdGhlIHBhc3NhZ2UKCXNheWluZyB0aGF0IC1tZXhwbGljaXQtcmVsb2NzIGlzIHVzdWFsbHkgZGlzYWJsZWQgZm9yIC1tYWJpY2FsbHMKCS1mbm8tdW5pdC1hdC1hLXRpbWUuCgkqIGNvbmZpZy9taXBzL21pcHMuYyAob3ZlcnJpZGVfb3B0aW9ucyk6IFJlbW92ZSB0aGUgY29kZSB0aGF0IGVuZm9yY2VkCgl0aGlzIHJ1bGUuCgoyMDA0LTA4LTAxICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChjcHJlc3RvcmUpOiBQcm92aWRlIHR3byBhbHRlcm5hdGl2ZXMsIG9uZSBmb3IKCWFuIGluLXJhbmdlIG9mZnNldCBhbmQgb25lIGZvciBhbiBvdXQtb2YtcmFuZ2Ugb2Zmc2V0LiAgV3JhcCB0aGUgbGF0dGVyCglpbiAuc2V0IG1hY3JvLy5zZXQgbm9tYWNybyBpZiBpdCdzIGluc2lkZSBhIC5zZXQgbm9tYWNybyBibG9jay4KCjIwMDQtMDgtMDEgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMtcHJvdG9zLmggKG1pcHNfZ3Bfc2F2ZV9zbG90KTogUmVtb3ZlLgoJKG1pcHNfcmVzdG9yZV9ncCk6IERlY2xhcmUuCgkqIGNvbmZpZy9taXBzL21pcHMuYyAobWlwc19hZGRfb2Zmc2V0KTogQWRkIGEgc2NyYXRjaCByZWdpc3RlcgoJYXJndW1lbnQuICBSZWltcGxlbWVudCBpbiBydGwgb25seSwgcmV1c2luZyBNSVBTMTYgbG9naWMgZnJvbQoJbWlwc19vdXRwdXRfbWlfdGh1bmsuCgkobWlwc19sZWdpdGltaXplX2FkZHJlc3MsIG1pcHNfbGVnaXRpbWl6ZV9jb25zdF9tb3ZlKTogQWRqdXN0IGNhbGxzCgl0byBtaXBzX2FkZF9vZmZzZXQuCgkobWlwc19ncF9zYXZlX3Nsb3QpOiBEZWxldGUuCgkobWlwc19yZXN0b3JlX2dwKTogTmV3IGZ1bmN0aW9uLgoJKG1pcHNfc2V0X3JldHVybl9hZGRyZXNzLCBtaXBzX291dHB1dF9taV90aHVuayk6IFVzZSBtaXBzX2FkZF9vZmZzZXQuCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKGV4Y2VwdGlvbl9yZWNlaXZlcik6IFR1cm4gaW50byBhCglkZWZpbmVfaW5zbl9hbmRfc3BsaXQuICBVc2UgbWlwc19yZXN0b3JlX2dwIHRvIGRvIHRoZSBzcGxpdC4KCShjYWxsX2ludGVybmFsLCBjYWxsX3ZhbHVlX2ludGVybmFsLCBjYWxsX3ZhbHVlX211bHRpcGxlX2ludGVybmFsKTogVXNlCgltaXBzX3Jlc3RvcmVfZ3AgdG8gcmVzdG9yZSAkZ3AuCgoyMDA0LTA3LTMxICBBbmRyZXcgUGluc2tpICA8YXBpbnNraUBhcHBsZS5jb20+CgoJUFIgb3RoZXIvMTY4NDIKCSogbWtoZWFkZXJzLmluIChsaWJzdWJkaXIpOiBzL2djYy1saWIvZ2NjLy4KCjIwMDQtMDctMzEgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYy1kZWNsLmMgKGRpYWdub3NlX21pc21hdGNoZWRfZGVjbHMpOiBHaXZlIGVycm9yIGZvciBleHRlcm5hbAoJcmVkZWNsYXJhdGlvbiBvZiBpZGVudGlmaWVyIGRlY2xhcmVkIHdpdGggbm8gbGlua2FnZSwgbm90IGp1c3QKCXdhcm5pbmcgd2l0aCAtV3RyYWRpdGlvbmFsLiAgRG8gbm90IGNoZWNrIERFQ0xfQ09OVEVYVCB0byBnaXZlCgllcnJvciBmb3IgcmVkZWNsYXJhdGlvbiB3aXRoIG5vIGxpbmthZ2UuCgoyMDA0LTA3LTMwICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCSAgICBGYXJpYm9yeiBKYWhhbmlhbiA8ZmphaGFuaWFuQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKGxlZ2l0aW1hdGVfbG9fc3VtX2FkZHJlc3NfcCk6IFBlcm1pdAoJbm9uLW9mZnNldHRhYmxlIGFkZHJlc3NlcyBldmVuIGZvciBESW1vZGUuCgkocnM2MDAwX3NwbGl0X211bHRpcmVnX21vdmUpOiBDb3BlIHdpdGggbm9uLW9mZnNldHRhYmxlIGFkZHJlc3NlcwoJYmVpbmcgbW92ZWQgaW50byBtdWx0aXBsZSBHUFJzLgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAoUlM2MDAwX0RFRkFVTFRfTE9OR19ET1VCTEVfU0laRSk6IERlZmF1bHQKCXRvIDY0LgoJKHJzNjAwMF9vdmVycmlkZV9vcHRpb25zKTogVXNlIFJTNjAwMF9ERUZBVUxUX0xPTkdfRE9VQkxFX1NJWkUuCgkqIGNvbmZpZy9yczYwMDAvZGFyd2luLmggKFJTNjAwMF9ERUZBVUxUX0xPTkdfRE9VQkxFX1NJWkUpOiBEZWZpbmUKCXRvIDEyOC4KCSogY29uZmlnL3JzNjAwMC9kYXJ3aW4tbGRvdWJsZS5jIChpc2xlc3MpOiBOZXcgbWFjcm8uCgkoaW5mKTogTmV3IG1hY3JvLgoJKG5vbmZpbml0ZSk6IE5ldyBtYWNyby4KCShGUEtJTkYpOiBEZWxldGUuCgkoX3hscWFkZCk6IENvbXBsZXRlbHkgcmV3cml0ZS4KCShfeGxxbXVsKTogQ29ycmVjdCBvdmVyZmxvdyBoYW5kbGluZy4KCShfeGxxZGl2KTogQ29ycmVjdCBvdmVyZmxvdyBoYW5kbGluZy4KCSogY29uZmlnL3JzNjAwMC9kYXJ3aW4tbGRvdWJsZS1mb3JtYXQ6IE5ldyBmaWxlLgoKMjAwNC0wNy0zMCAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgkgICAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYubWQ6IE5ldyBwZWVwaG9sZTIncyB0byBjb252ZXJ0IGltdWwgYnkgMywgNSBvcgoJOSBpbnRvIHRoZSBlcXVpdmFsZW50IGxlYSBpbnN0cnVjdGlvbi4KCjIwMDQtMDctMzAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9leHByKSA8Y2FzZSBDT05TVF9ERUNMPjogRG9uJ3QgcmVwbGFjZQoJd2l0aCBERUNMX0lOSVRJQUwgaWYgZmJfbHZhbHVlLgoJKiB0cmVlLWdpbXBsZS5jIChpc19naW1wbGVfaWQpOiBBZGQgQ09OU1RfREVDTC4KCSogdHJlZS1wcmV0dHktcHJpbnQuYyAoZHVtcF9kZWNsX25hbWUpOiBEdW1wIHVubmFtZWQgQ09OU1RfREVDTAoJd2l0aCA8Q3h4eD4uCgkqIHRyZWUtc3NhLWNjcC5jIChtYXliZV9mb2xkX3N0bXRfaW5kaXJlY3QpOiBGb2xkIENPTlNUX0RFQ0wuCgoyMDA0LTA3LTMwICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWFsaWFzLmMgKGNvbXB1dGVfcG9pbnRzX3RvX2FuZF9hZGRyX2VzY2FwZSk6IElmIGEKCXBvaW50ZXIgZXNjYXBlcyB0aHJvdWdoIGEgZnVuY3Rpb24gY2FsbCwgYXNzdW1lIHRoYXQgdGhlCgljYWxsZWUgd2lsbCBkZXJlZmVyZW5jZSBpdC4KCShhZGRfcG9pbnRlZF90b192YXIpOiBBc3N1bWUgdGhhdCBWQUxVRSBpcyBhbHdheXMgYW4KCUFERFJfRVhQUi4KCShjb2xsZWN0X3BvaW50c190b19pbmZvX3IpOiBPbmx5IGNhbGwgYWRkX3BvaW50ZWRfdG9fdmFyIGlmCgl0aGUgdmFsdWUgaXMgYW4gQUREUl9FWFBSLgoKMjAwNC0wNy0zMCAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1hbGlhcy5jIChjcmVhdGVfYWxpYXNfbWFwX2Zvcik6IERvIG5vdCBnZXQgdGhlCglhbGlhcyBzZXQgb2YgdGhlIGlubmVyIHR5cGUgb2YgQVJSQVlfVFlQRXMuCgoyMDA0LTA3LTI5ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWNjcC5jICh2aXNpdF9hc3NpZ25tZW50KTogTW92ZSBjb2RlIHRvIHByZXZlbnQKCXNldHRpbmcgYSBub24tcmVnaXN0ZXIgdG8gVU5ERUZJTkVEIHJpZ2h0IGJlZm9yZSB0aGUgY2FsbCB0bwoJc2V0X2xhdHRpY2VfdmFsdWUuCgoyMDA0LTA3LTI5ICBLYXogS29qaW1hICA8a2tvamltYUBnY2MuZ251Lm9yZz4KCgkqIGNvbmZpZy9zaC9saWIxZnVuY3MuYXNtOiBNYWtlIGFsaWFzZXMgbW92c3RyKiBmb3IgbW92bWVtKi4KCjIwMDQtMDctMjkgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EuYyAodmVyaWZ5X2Zsb3dfc2Vuc2l0aXZlX2FsaWFzX2luZm8pOiBXaGVuCgljb21wYXJpbmcgcG9pbnRzLXRvIHNldHMgb2YgZGlmZmVyZW50IHBvaW50ZXJzLCBtYWtlIHN1cmUgdGhlCglzZWNvbmQgcG9pbnRlciBpcyBhY3R1YWxseSByZWZlcmVuY2VkIGluIHRoZSBjb2RlLgoKMjAwNC0wNy0yOSAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoc2V0am1wX29wZXJhbmQpOiBEZWxldGUsIHVudXNlZC4KCShnb3Rfc3ltYm9saWNfb3BlcmFuZCk6IFJlbW92ZSB1bnJlYWNoYWJsZSBjb2RlLgoJKiBjb25maWcvaWE2NC9pYTY0LmggKFBSRURJQ0FURV9DT0RFUyk6IFJlbW92ZSBlbnRyeSBmb3IKCXNldGptcF9vcGVyYW5kOyBhZGQgZW50cnkgZm9yIHRsc19zeW1ib2xpY19vcGVyYW5kLgoJKiBjb25maWcvaWE2NC9pYTY0LXByb3Rvcy5oOiBSZW1vdmUgYWxsIHByb3RvdHlwZXMgb2YKCXByZWRpY2F0ZSBmdW5jdGlvbnMuCgoyMDA0LTA3LTI5ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogYy1jb21tb24uaCAobGFuZ19wb3N0X3BjaF9sb2FkKTogTmV3IHZhcmlhYmxlLgoJKiBjLXBjaC5jIChsYW5nX3Bvc3RfcGNoX2xvYWQpOiBEZWZpbmUgaXQuCgkoY19jb21tb25fcmVhZF9wY2gpOiBVc2UgaXQuCgkqIGNncmFwaHVuaXQuYyAocmVjb3JkX2NhbGxfMSk6IEdpdmUgdGhlIGZyb250IGVuZCBhIGNoYW5jZSB0bwoJcmVjb3JkIGFkZGl0aW9uYWwgbmVlZGVkIGVudGl0aWVzIHdoZW4gYSB2YXJpYWJsZSBpcyBtYXJrZWQgYXMKCW5lZWRlZC4KCSogdGxpbmsuYyAocmVjb21waWxlX2ZpbGVzKTogUm9idXN0aWZ5LgoJKHNjYW5fbGlua2VyX291dHB1dCk6IElmIGEgc3ltYm9sIGlzIGFzc2lnbmVkIHRvIGEgZmlsZSwKCWJ1dCBhZnRlciByZWNvbXBpbGF0aW9uIGlzIG5vdCBwcmVzZW50IHRoZXJlLCBpc3N1ZSBhbiBlcnJvcgoJbWVzc2FnZS4KCjIwMDQtMDctMjkgIFpkZW5layBEdm9yYWsgIDxyYWtkdmVyQGF0cmV5Lmthcmxpbi5tZmYuY3VuaS5jej4KCgkqIHRyZWUtc3NhLWxvb3AtaW0uYyAoZm9yY2VfbW92ZV90aWxsX2V4cHIsIGZvcmNlX21vdmVfdGlsbCk6CglUYWtlIG9yaWdfbG9vcCBhcmd1bWVudCBhbmQgcGFzcyBpdCB0byBzZXRfbGV2ZWwuCgkoc2NoZWR1bGVfc20pOiBQYXNzIHRoZSBjb3JyZWN0IG9yaWdfbG9vcCB0byBmb3JjZV9tb3ZlX3RpbGwuCgoyMDA0LTA3LTI5ICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJKiBjZmdsb29wLmMgKHVwZGF0ZV9sYXRjaF9pbmZvKTogVXBkYXRlIGRvbWluYXRvciBvZiB0aGUgbmV3IGJsb2NrLgoJKGNhbm9uaWNhbGl6ZV9sb29wX2hlYWRlcnMsIGZsb3dfbG9vcHNfZmluZCk6IERvIG5vdCBmcmVlIGRvbWluYW5jZQoJaW5mby4KCSogZG9taW5hbmNlLmMgKHZlcmlmeV9kb21pbmF0b3JzKTogQ2hlY2sgdGhhdCB0aGUgZG9taW5hbmNlIHRyZWUgaXMKCWNvbm5lY3RlZC4KCShyZWNvdW50X2RvbWluYXRvcik6IElnbm9yZSB1bnJlYWNoYWJsZSBibG9ja3MuCgkoaXRlcmF0ZV9maXhfZG9taW5hdG9ycyk6IENsZWFudXAgb2xkIGRvbWluYW5jZSBpbmZvcm1hdGlvbiBiZWZvcmUKCXJlY29tcHV0aW5nIGl0LgoKMjAwNC0wNy0yOSAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChnZXRfZXhwcl9vcGVyYW5kcyk6IFJldmVydCBjaGFuZ2VzCgl0byBBRERSX0VYUFIgcHJvY2Vzc2luZyBpbnRyb2R1Y2VkIGJ5OgoJICAgIDIwMDQtMDYtMjEgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgkgICAgKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChnZXRfZXhwcl9vcGVyYW5kcyk6IE1pbm9yIHJlYXJyYW5nZW1lbnRzLgoKMjAwNC0wNy0yOSAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBkb2MvaW1wbGVtZW50LWMudGV4aTogQWRkIEM5MCBzdWJjbGF1c2UgcmVmZXJlbmNlcy4gIFBvaW50IHRvCglwcmVwcm9jZXNzb3IgZG9jdW1lbnRhdGlvbiBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0LiAgQWRkIHBvaW50cwoJb25seSBwcmVzZW50IGluIEM5MC4gIEZpbGwgaW4gZG9jdW1lbnRhdGlvbiBmb3IgYWxsIHBvaW50cy4KCjIwMDQtMDctMjkgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBwYS5jIChvdXRwdXRfbW92Yik6IENvcnJlY3QgdHlwby4KCjIwMDQtMDctMjkgIFBhdCBIYXVnZW4gIDxwdGhhdWdlbkB1cy5pYm0uY29tPgoKCSogcmEuaCAoc2luZ2xlX3JlZ19pbl9yZWdjbGFzcyk6IERlY2xhcmUuCgkqIHJhLmMgKHNpbmdsZV9yZWdfaW5fcmVnY2xhc3MpOiBEZWZpbmUuCgkoZmlyc3RfaGFyZF9yZWcpOiBOZXcuCgkoaW5pdF9yYSk6IEluaXRpYWxpemUgc2luZ2xlX3JlZ19pbl9yZWdjbGFzcy4KCSogcmEtY29sb3JpemUuYyAob2tfY2xhc3MpOiBOZXcuCgkoY29hbGVzY2UsIGFnZ3Jlc3NpdmVfY29hbGVzY2UsIGV4dGVuZGVkX2NvYWxlc2NlXzIpOiBVc2UgaXQuCgoyMDA0LTA3LTI5ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZ2Nvdi1pby5oOiBBbGxvdyB6ZXJvIHRhZyBhcyBFT0YgaW5kaWNhdG9yLgoJKGdjb3ZfaXNfZW9mKTogUmVtb3ZlLgoJKGdjb3ZfdHJ1bmNhdGUpOiBSZW1vdmUuCgkqIGdjb3YtaW8uYyAoZ2Nvdl9zZWVrKTogQWx3YXlzIFNFRUtfU0VULgoJKiBsaWJnY292LmMgKGdjb3ZfZXhpdCk6IERvbid0IHVzZSBnY292X3RydW5jYXRlLiAgV3JpdGUgZXhwbGljaXQKCUVPRiB0YWcuCgkqIGNvdmVyYWdlLmMgKHJlYWRfY291bnRzX2ZpbGUpOiBEb24ndCB1c2UgZ2Nvdl9pc19lb2YuCgkqIGdjb3YtZHVtcC5jIChkdW1wX2ZpbGUpOiBMaWtld2lzZS4KCSogZ2Nvdi5jIChyZWFkX2dyYXBoX2ZpbGUsIHJlYWRfY291bnRfZmlsZSk6IExpa2V3aXNlLgoKCSogYy1kZWNsLmMgKGNvbXBsZXRlX2FycmF5X3R5cGUpOiBEb24ndCBncmF0dWl0b3VzbHkgY29weQoJbWF4aW5kZXguICBDaGVjayBpdCBhbHdheXMgaGFzIGEgdHlwZS4KCjIwMDQtMDctMjkgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIHJ0bC5jIChjdXJyZW50bHlfZXhwYW5kaW5nX3RvX3J0bCk6IE5ldy4KCSogcnRsLmggKGN1cnJlbnRseV9leHBhbmRpbmdfdG9fcnRsKTogRXhwb3J0IGl0LgoJKiBjZmdleHBhbmQuYyAodHJlZV9jZmdfZXhwYW5kKTogU2V0L2NsZWFyIGl0IGF0IGVudHJ5L2V4aXQuCgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoYWxwaGFfZXhwYW5kX21vdik6IFJlbW92ZSBvbGQgUlRMCglpbmxpbmVyIGhhY2suCgkqIGNvbmZpZy9zaC9zaC5jOiBSZXBsYWNlIHJ0eF9lcXVhbF9mdW5jdGlvbl92YWx1ZV9tYXR0ZXJzCgl3aXRoIGN1cnJlbnRseV9leHBhbmRpbmdfdG9fcnRsLgoJKiBjb25maWcvc2gvc2gubWQ6IExpa2V3aXNlLgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGdvdF9zeW1ib2xpY19vcGVyYW5kKTogTGlrZXdpc2UuCgoyMDA0LTA3LTI5ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCglJbnRyb2R1Y2Ugc2gyYSBzdXBwb3J0LgoJMjAwNC0wNy0yOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy5nY2M6IEJ1aWxkIG11bHRpbGlicyBmb3Igc2gyYSBhbmQgc2gyYS1zaW5nbGUgYnkKCWRlZmF1bHQuCgkqIGNvbmZpZy9zaC9zaC5oIChTVVBQT1JUX1NIMkEsIFNVUFBPUlRfU0gyQV9TSU5HTEUpOiBEZWZpbmUgYnkKCWRlZmF1bHQuICBTcGxpdCB0aGVpciB0ZXN0cyBvdXQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgU0g0CgltdWx0aWxpYnMuCgkqIGNvbmZpZy9zaC90LXNoIChNVUxUSUxJQl9NQVRDSEVTKTogRG9uJ3QgZXZlciB1c2UgU0g0IG9yIFNINGEKCW11bHRpbGlicyBmb3IgU0gyYS4KCTIwMDQtMDctMjggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcuZ2NjOiBIYW5kbGUgc2gyYSBtdWx0aWxpYnMgYW5kIGNwdSBzZWxlY3Rpb24uCgkqIGNvbmZpZy9zaC9zaC5oOiBMaWtld2lzZS4gIEhhbmRsZSBzaDJhIGNvbW1hbmQgbGluZSBmbGFncy4KCSogY29uZmlnL3NoL3QtbWxpYi1zaDJhOiBOZXcuCgkqIGNvbmZpZy9zaC90LW1saWItc2gyYS1ub2ZwdTogTmV3LgoJKiBjb25maWcvc2gvdC1tbGliLXNoMmEtc2luZ2xlOiBOZXcuCgkqIGNvbmZpZy9zaC90LW1saWItc2gyYS1zaW5nbGUtb25seTogTmV3LgoJMjAwNC0wNy0wOSAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCUlzc3VlIDQzNDAwCgkqIGNvbmZpZy9zaC9zaC5oIChEUklWRVJfU0VMRl9TUEVDUyk6IElzc3VlIGFuIGVycm9yIG1lc3NhZ2UgaWYKCS1tbCBhbmQgLW0yYSBhcmUgdXNlZCB0b2dldGhlci4KCTIwMDQtMDMtMjMgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoJKiBjb25maWcvc2gvc2guYyAoc2hfYnVpbHRpbl9zYXZlcmVncyk6IFVzZSB0aGUgZG91YmxlIGNvZGUgb25seQoJd2hlbiB3ZSBoYXZlIGEgZG91YmxlLXNpemVkIEZQVS4KCTIwMDQtMDItMjQgIENvcmlubmEgVmluc2NoZW4gPHZpbnNjaGVuQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9zaC9saWIxZnVuY3MuYXNtIChzZXRfZnBzY3IpOiBEb24ndCBidWlsZCBpZiBfX1NIMkFfTk9GUFVfXwoJaXMgc2V0LgoJKiBjb25maWcvc2gvZWxmLmggKFNVQlRBUkdFVF9BU01fSVNBX1NQRUMpOiBBZGQgY2FzZXMgZm9yIC1tc2gyYS1ub2ZwdSwKCS1tc2gyYS1zaW5nbGUgYW5kIC1tc2gyYS1zaW5nbGUtb25seQoJMjAwNC0wMi0yNCAgQ29yaW5uYSBWaW5zY2hlbiA8dmluc2NoZW5AcmVkaGF0LmNvbT4KCSogY29uZmlnL3NoL2NydDEuYXNtOiBEb24ndCBnZW5lcmF0ZSBGUFUgaW5zdHJ1Y3Rpb25zIGlmIF9fU0gyQV9OT0ZQVV9fCglpcyBzZXQuCgkyMDA0LTAyLTIwICBESiBEZWxvcmllICA8ZGpAZGVsb3JpZS5jb20+CgkqIGNvbmZpZy9zaC9zaC5tZCAobW92c2ZfaSwgbW92c2ZfaWUsIG1vdnNmLCBibGUsIGJnZSk6IERpc2FibGUgZm9yIHNoMmEtbm9mcHUuCgkyMDA0LTAyLTIwICBGcmVkIEZpc2ggPGZuZkByZWRoYXQuY29tPiwKCUNvcmlubmEgVmluc2NoZW4gPHZpbnNjaGVuQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9zaC90LXNoIChNVUxUSUxJQl9PUFRJT05TKTogQWRkIDJhLW5vZnB1LgoJKE1VTFRJTElCX0VYQ0VQVElPTlMpOiBEb24ndCBidWlsZCBsaXR0ZWwtZW5kaWFuIG9uIHNoMmEuCgkyMDA0LTAyLTE4ICBESiBEZWxvcmllICA8ZGpAcmVkaGF0LmNvbT4KCSogY29uZmlnL3NoL3NoLmMgKGJyb2tlbl9tb3ZlKTogQWRkIHN1cHBvcnQgZm9yIG1vdmkyMC4KCSogY29uZmlnL3NoL3NoLmg6IExpa2V3aXNlLgoJKFNISUZUX0NPVU5UX1RSVU5DQVRFRCk6IFNldCBmb3Igc2gyYS4KCSogY29uZmlnL3NoL3NoLm1kICh1ZGl2c2kzX3NoMmEpOiBOZXcuCgkodWRpdnNpMyk6IENhbGwgaXQuCgkoZGl2c2kzX3NoMmEpOiBOZXcuCgkoZGl2c2kzKTogQ2FsbCBpdC4KCShtdWxfcik6IE5ldy4KCShhc2hsc2kzX3NoMmEpOiBOZXcuCgkoYXNocnNpM19zaDJhKTogTmV3LgoJKGxzaHJzaTNfc2gyYSk6IE5ldy4KCShtb3ZzaV9pKTogRGlzYWJsZSBmb3Igc2gyYS4KCShtb3ZzaV9pZSk6IEFkZCBtb3ZpMjAuCgkobW92c2ZfaSwgbW92c2ZfaWUsIG1vdnNmLCBibGUsIHVudHlwZWRfY2FsbCk6IEV4cGxpY2l0bHkgZW5hYmxlCglzaDJhLCBmb3IgLW0yYS1ub2ZwdSBtb2RlLgoJMjAwNC0wMi0xMyAgREogRGVsb3JpZSAgPGRqQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9zaC9saWIxZnVuY3MuYXNtOiBIYW5kbGUgZG91YmxlIHZzIHNpbmdsZSBiZXR0ZXIuCgkqIGNvbmZpZy9zaC9zaC5oOiBMaWtld2lzZS4KCTIwMDQtMDItMDkgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoJKiBjb25maWcvc2gvY3J0MS5hc206IEFkZCBzdXBwb3J0IGZvciBzaDJhLgoJKiBjb25maWcvc2gvZWxmLmg6IExpa2V3aXNlLgoJKiBjb25maWcvc2gvbGliMWZ1bmNzLmFzbTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zaC9zaC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3NoL3NoLm1kOiBMaWtld2lzZS4KCSogY29uZmlnL3NoL3NoLmg6IExpa2V3aXNlLgoJKiBjb25maWcvc2gvdC1zaDogTGlrZXdpc2UuCgoyMDA0LTA3LTI4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9mcnYvZnJ2Lm1kIChtb3ZxaV9pbnRlcm5hbCwgbW92aGlfaW50ZXJuYWwsCgltb3ZzaV9pbnRlcm5hbCk6IEFkZCBiYWNrdXAgYWx0ZXJuYXRpdmVzIGZvciBtZW1vcnkgaW5wdXRzLgoKMjAwNC0wNy0yOCAgTWF0dCBBdXN0ZXJuICA8YXVzdGVybkBhcHBsZS5jb20+CgoJKiBjb25maWcvZGFyd2luLmMgKGRhcndpbl9vbmVfYnl0ZV9ib29sKTogTmV3IGdsb2JhbCB2YXJpYWJsZS4KCSogY29uZmlnL2Rhcndpbi5oIChkYXJ3aW5fb25lX2J5dGVfYm9vbCk6IERlY2xhcmUuCgkoU1VCVEFSR0VUX09QVElPTlMpOiBEZWZpbmUgbWFjcm8uICAoZm9yIC1tb25lLWJ5dGUtYm9vbCBmbGFnLikKCSogY29uZmlnL3JzNjAwMC9kYXJ3aW4uaCAoQk9PTF9UWVBFX1NJWkUpOiBDb25kaXRpb25hbGl6ZSBvbgoJdmFsdWUgb2YgZGFyd2luX29uZV9ieXRlX2Jvb2wuCgkqIGRvYy9pbnZva2UudGV4aTogRG9jdW1lbnQgLW1vbmUtYnl0ZS1ib29sIGZsYWcuCgoyMDA0LTA3LTI4ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGMtY29tbW9uLmMgKGNfY29tbW9uX3Vuc2FmZV9mb3JfcmVldmFsKTogRGVsZXRlLgoJKiBjLWxhbmcuYyAoTEFOR19IT09LU19VTlNBRkVfRk9SX1JFRVZBTCk6IERlbGV0ZSB1c2UuCgkqIGMtcHJldHR5LXByaW50LmMgKHBwX2NfZXhwcmVzc2lvbik6IERlbGV0ZSBVTlNBVkVfRVhQUiBjYXNlLgoJKiBjYWxscy5jIChmaXhfdW5zYWZlX3RyZWUpOiBEZWxldGUuCgkoZXhwYW5kX2NhbGwpOiBEZWxldGUgY29kZSB3aGljaCB1c2VkIGFib3ZlLgoJKiBkb2p1bXAuYyAoZG9fanVtcCk6IERlbGV0ZSBVTlNBVkVfRVhQUiBjYXNlLgoJKiBleHByLmMgKGV4cGFuZF9leHByX3JlYWxfMSk6IERpdHRvLgoJKiBmb2xkLWNvbnN0LmMgKG5vbl9sdmFsdWUpOiBEaXR0by4KCSogbGFuZ2hvb2tzLWRlZi5oIChMQU5HX0hPT0tTX1VOU0FGRV9GT1JfUkVFVkFMKTogRGVsZXRlLgoJKGxoZF91bnNhZmVfZm9yX3JlZXZhbCk6IERpdHRvLgoJKiBsYW5naG9va3MuYyAobGhkX3Vuc2FmZV9mb3JfcmVldmFsKTogRGl0dG8uCgkqIGxhbmdob29rcy5oICh1bnNhZmVfZm9yX3JlZXZhbCk6IERpdHRvLgoJKHVuc2F2ZV9leHByX25vdyk6IEFkanVzdCBjb21tZW50LgoJKiB0cmVlLWlubGluZS5jIChjb3B5X2JvZHlfcik6IERlbGV0ZSBVTlNBVkVfRVhQUiBiaXRzLgoJKGVzdGltYXRlX251bV9pbnNuc18xKTogRGl0dG8uCgkqIHRyZWUtcHJldHR5LXByaW50LmMgKGR1bXBfZ2VuZXJpY19ub2RlKTogRGl0dG8uCgkqIHRyZWUuYyAoZXhwcl9hbGlnbik6IERpdHRvLgoJKHVuc2F2ZV9leHByKTogRGVsZXRlLgoJKHVuc2FmZV9mb3JfcmVldmFsKTogRGl0dG8uCgkqIHRyZWUuaCAodW5zYWZlX2Zvcl9yZWV2YWwsIHVuc2F2ZV9leHByKTogRGl0dG8uCgkqIHRyZWUuZGVmIChVTlNBVkVfRVhQUik6IERlbGV0ZS4KCSogb2JqYy9vYmpjLWxhbmcuYyAoTEFOR19IT09LU19VTlNBRkVfRk9SX1JFRVZBTCk6IERlbGV0ZS4KCjIwMDQtMDctMjggIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlLmggKGVudW0gdGxzX21vZGVsKTogTW92ZSAuLi4KCSogY29yZXR5cGVzLmg6IC4uLiBoZXJlLgoKMjAwNC0wNy0yOCAgUmljaGFyZCBTYW5kaWZvcmQgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvZnJ2L2Zydi5oIChFUElMT0dVRV9VU0VTKTogTmV3LiAgVXNlIExSLgoKMjAwNC0wNy0yOCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY3NlLmMgKHZhbGlkYXRlX2Nhbm9uX3JlZyk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20uLi4KCShjYW5vbl9yZWcpOiAuLi5oZXJlLiAgVXNlIHZhbGlkYXRlX2Nhbm9uX3JlZyBmb3IgYm90aCAnZScgYW5kICdFJy4KCjIwMDQtMDctMjggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtYWxpYXMuYyAobWF5YmVfY3JlYXRlX2dsb2JhbF92YXIpOiBEb24ndCBqdXN0CglyZXR1cm4gaWYgLkdMT0JBTF9WQVIgaGFzIGJlZW4gY3JlYXRlZC4KCjIwMDQtMDctMjggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EuYyAodmVyaWZ5X2Zsb3dfaW5zZW5zaXRpdmVfYWxpYXNfaW5mbyk6IFByb2Nlc3MKCWV2ZXJ5IHZhcmlhYmxlIHRoYXQgbWF5IGhhdmUgYWxpYXNlcywgbm90IGp1c3QgdGFncy4KCjIwMDQtMDctMjggIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kICgibW92ZV9mcm9tX0NSX2d0X2JpdCIpOiBSZW5hbWUgdG8KCW1vdmVfZnJvbV9DUl9lcV9iaXQuCglSZW5hbWUgVU5TUEVDX01WX0NSX0dUIHRvIFVOU1BFQ19NVl9DUl9FUS4KCgoJKiBjb25maWcvcnM2MDAwL3NwZS5tZCAoImU1MDBfZmxpcF9ndF9iaXQiKTogUmVuYW1lIHRvCgllNTAwX2ZsaXBfZXFfYml0LgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAtcHJvdG9zLmg6IFJlbmFtZSBvdXRwdXRfZTUwMF9mbGlwX2d0X2JpdCB0bwoJb3V0cHV0X2U1MDBfZmxpcF9lcV9iaXQuCgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChvdXRwdXRfZTUwMF9mbGlwX2d0X2JpdCk6IFJlbmFtZSB0bwoJb3V0cHV0X2U1MDBfZmxpcF9lcV9iaXQuCgkocnM2MDAwX2VtaXRfc0NPTkQpOiBSZW5hbWUgY2FsbCB0byBvdXRwdXRfZTUwMF9mbGlwX2d0X2JpdCB0bwoJb3V0cHV0X2U1MDBfZmxpcF9lcV9iaXQuCglSZW5hbWUgZ2VuX21vdmVfZnJvbV9DUl9ndF9iaXQgdG8gZ2VuX21vdmVfZnJvbV9DUl9lcV9iaXQuCgkocHJpbnRfb3BlcmFuZCk6IGNhc2UgRC4gIEdldCB0byBFUSBiaXQuCgoyMDA0LTA3LTI4ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBnY292LmMgKGZ1bmN0aW9uX3N1bW1hcnkpOiBBZGQgbWlzc2luZyBcbi4KCjIwMDQtMDctMjggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCUludHJvZHVjZSBzaDRhIHN1cHBvcnQuCgkqIGNvbmZpZy5nY2M6IEhhbmRsZSBzaDRhIG11bHRpbGlicyBhbmQgY3B1IHNlbGVjdGlvbi4KCSogY29uZmlnL3NoL3NoLmg6IExpa2V3aXNlLiAgSGFuZGxlIHNoNGEgY29tbWFuZCBsaW5lIGZsYWdzLgoJKiBjb25maWcvc2gvdC1tbGliLXNoNGE6IE5ldy4KCSogY29uZmlnL3NoL3QtbWxpYi1zaDRhbDogTmV3LgoJKiBjb25maWcvc2gvdC1tbGliLXNoNGEtbm9mcHU6IE5ldy4KCSogY29uZmlnL3NoL3QtbWxpYi1zaDRhLXNpbmdsZTogTmV3LgoJKiBjb25maWcvc2gvdC1tbGliLXNoNGEtc2luZ2xlLW9ubHk6IE5ldy4KCTIwMDQtMDItMjAgIERKIERlbG9yaWUgIDxkakByZWRoYXQuY29tPgoJKiBjb25maWcvc2gvc2gubWQgKCJtb3Z1YSIpOiBDaGFuZ2UgY29uc3RyYWludCBmcm9tICJtIiB0byAiU3VhIi4KCSogY29uZmlnL3NoL3NoLmggKEVYVFJBX0NPTlNUUkFJTlRfUyk6IEFkZCAiU3VhIiBzdXBwb3J0LgoJMjAwMy0wOC0yMiAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9zaC9zaDRhLm1kOiBVcGRhdGUgZm9yIGNoaXAgZXJyYXRhLgoJMjAwMy0wOC0wNyAgRXJpYyBDaHJpc3RvcGhlciAgPGVjaHJpc3RvQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9zaC9zaDRhLm1kOiBOZXcgZmlsZS4gc2g0YSBwcm9jZXNzb3IgZGVzY3JpcHRpb24uCgkyMDAzLTA3LTA4ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogY29uZmlnL3NoL3NoLmggKFRBUkdFVF9TV0lUQ0hFUyk6IEFkZGVkIDRhbC4gIEFkanVzdCBkZXNjcmlwdGlvbgoJb2YgLW00YS1ub2ZwdS4KCShTSF9BU01fU1BFQyk6IFBhc3MgLWRzcCBmb3IgLW00YWwsIG5vdCAtbTRhLW5vZnB1LgoJKiBjb25maWcvc2gvdC1zaCAoTVVMVElMSUJfTUFUQ0hFUyk6IE1hcCAtbTRhbCB0byAtbTRhLW5vZnB1LgoJKiBkb2MvaW52b2tlLnRleGkgKFNIIE9wdGlvbnMpOiBEb2N1bWVudCAtbTRhbC4KCTIwMDMtMDctMDMgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvc2gvc2guYyAoZXhwYW5kX2Jsb2NrX21vdmUpOiBSZW1vdmUgY29tbWVudGVkLW91dCBjb2RlCgljaGVja2VkIGluIGJ5IG1pc3Rha2UuCgkoc2hfY2Fubm90X2NoYW5nZV9tb2RlX2NsYXNzKTogRW5hYmxlIFNVQlJFR3MgdG8gYmUgdXNlZCB0byBzZWxlY3QKCXNpbmdsZSBlbGVtZW50cyBmcm9tIFNGbW9kZSB2ZWN0b3JzLgoJKiBjb25maWcvc2gvc2gubWQgKGZzY2EpOiBVc2UgVkVDX0NPTkNBVCB0byBpbml0aWFsaXplIHRoZSBvdXRwdXQKCXJlZ2lzdGVyLgoJKHNpbnNmMiwgY29zc2YyLCBzaW5kZjIsIGNvc2RmMik6IERvbid0IGVtaXQgQ0xPQkJFUi4KCTIwMDMtMDctMDEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvc2gvc2guaCAoc2hfZnNjYV9zZjJpbnQsIHNoX2ZzY2FfZGYyaW50LAoJc2hfZnNjYV9pbnQyc2YpOiBSZW1vdmUgdmFyaWFibGUgZGVjbGFyYXRpb25zLgoJKiBjb25maWcvc2gvc2guYyAoc2hfZnNjYV9zZjJpbnQsIHNoX2ZzY2FfZGYyaW50LAoJc2hfZnNjYV9pbnQyc2YpOiBOZXcgZnVuY3Rpb25zLgoJKHNoX2ZzY2Ffc2YyaW50X3J0eCwgc2hfZnNjYV9kZjJpbnRfcnR4LAoJc2hfZnNjYV9pbnQyc2ZfcnR4KTogTmV3IHN0YXRpYyB2YXJpYWJsZXMuCgkqIGNvbmZpZy9zaC9zaC1wcm90b3MuaCAoc2hfZnNjYV9zZjJpbnQsIHNoX2ZzY2FfZGYyaW50LAoJc2hfZnNjYV9pbnQyc2YpOiBEZWNsYXJlLgoJKiBjb25maWcvc2gvc2gubWQ6IEFkanVzdC4KCSogZG9jL2ludm9rZS50ZXhpIChTSCBPcHRpb25zKTogRG9jdW1lbnQgbmV3IG9wdGlvbnMuCgkqIGNvbmZpZy9zaC9saWIxZnVuY3MuYXNtIChpY19pbnZhbGlkYXRlKTogUmVtb3ZlIFNINGEgZm9yd2FyZAoJY29tcGF0aWJpbGl0eSBmcm9tIFNINCBjb2RlLgoJMjAwMy0wNi0yNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9zaC9zaC5jIChleHBhbmRfYmxvY2tfbW92ZSk6IERvbid0IGVtaXQgUE9TVF9JTkMgdG9vCgllYXJseS4KCShtZW1vcnlfbW92c3JjX29wZXJhbmQpOiBSZW5hbWVkIHRvLi4uCgkodW5hbGlnbmVkX2xvYWRfb3BlcmFuZCk6IC4uLiB0aGlzLiAgU2ltcGxpZmllZC4KCSogY29uZmlnL3NoL3NoLmggKFBSRURJQ0FURV9DT0RFUyk6IEFkanVzdC4KCSogY29uZmlnL3NoL3NoLm1kIChtb3Z1YSwgZXh0diwgZXh0enYpOiBMaWtld2lzZS4gIENoYW5nZSBtb3Z1YSdzCglpbnB1dCBvcGVyYW5kIHRvIFNJbW9kZSwgYW5kIGFkanVzdCB0aGUgb3RoZXJzLiAgSW50cm9kdWNlCglwb3N0LWluY3JlbWVudCBieSBwZWVwaG9sZS4KCSogY29uZmlnL3NoL3NoLmMgKGV4cGFuZF9ibG9ja19tb3ZlKTogR2l2ZSB0aGUgdGFyZ2V0IGFkZHJlc3MgdGhlCglzYW1lIG1vZGUgYXMgdGhlIHRlbXAgcmVnLgoJKiBjb25maWcvc2gvc2guYyAoZXhwYW5kX2Jsb2NrX21vdmUpOiBVc2UgYSB0ZW1wIHJlZyBmb3IgdW5hbGlnbmVkCgljb3B5aW5nLgoJMjAwMy0wNi0yNiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CglJbnRyb2R1Y2Ugc3VwcG9ydCBmb3IgU0g0YS4KCSogY29uZmlnL3NoL2xpYjFmdW5jcy5hc20gKGljX2ludmFsaWRhdGUpOiBVc2UgaWNiaSBpZgoJX19TSDRBX18uICBFbWl0IDQgNGtiIGJsb2NrcyBhbmQgdG91Y2ggYWxsIG9mIHRoZW0gb3RoZXJ3aXNlLgoJKiBjb25maWcvc2gvc2guYyAoc2hfZnNjYV9zZjJpbnQsIHNoX2ZzY2FfZGYyaW50LAoJc2hfZnNjYV9pbnQyc2YpOiBOZXcuCgkoc2hfaW5pdF9idWlsdGlucyk6IEluaXRpYWxpemUgdGhlbS4KCShwcmludF9vcGVyYW5kKTogU3VwcG9ydCBgZCcuCgkoZXhwYW5kX2Jsb2NrX21vdmUpOiBVc2UgbW92dWEgaWYgc3JjIGlzIG1pc2FsaWduZWQuCgkobWVtb3J5X21vdnNyY19vcGVyYW5kKTogTmV3LgoJKiBjb25maWcvc2gvc2guaCAoVEFSR0VUX0NQVV9DUFBfQlVJTFRJTlMpOiBEZWZpbmUgX19TSDRBX18KCWFuZCBvbmUgb2YgdGhlIFNINCBtYWNyb3MuCgkoU0g0QV9CSVQsIFRBUkdFVF9TSDRBX0FSQ0gsIFRBUkdFVF9TSDRBX0ZQLAoJU0VMRUNUX1NINEFfTk9GUFUsIFNFTEVDVF9TSDRBX1NJTkdMRV9PTkxZLCBTRUxFQ1RfU0g0QSwKCVNFTEVDVF9TSDRBX1NJTkdMRSk6IE5ldy4KCShUQVJHRVRfTk9ORSk6IEFkZCBTSDRBX0JJVC4KCShUQVJHRVRfU1dJVENIRVMpOiBBZGQgNGEtc2luZ2xlLW9ubHksIDRhLXNpbmdsZSwgNGEtbm9mcHUgYW5kIDRhLgoJKFNIX0FTTV9TUEVDKTogUGFzcyAtZHNwIGlmIC1tNGEtbm9mcHUuCgkoc2hfZnNjYV9zZjJpbnQsIHNoX2ZzY2FfZGYyaW50LCBzaF9mc2NhX2ludDJzZik6IERlY2xhcmUuCgkoT1ZFUlJJREVfT1BUSU9OUyk6IFNldCBjcHUgdG8gQ1BVX1NINEEgd2hlbiBhcHByb3ByaWF0ZS4KCShlbnVtIHByb2Nlc3Nvcl90eXBlKTogQWRkZWQgUFJPQ0VTU09SX1NINEEuCgkoUFJFRElDQVRFX0NPREVTKTogQWRkIG1lbW9yeV9tb3ZzcmNfb3BlcmFuZC4KCSogY29uZmlnL3NoL3NoLm1kOiBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZXMuCgkoYXR0ciBjcHUpOiBBZGQgc2g0YS4KCShhdHRyIHR5cGUpOiBBZGQgbW92dWEsIGZzcnJhIGFuZCBmc2NhLgoJKHByZWZldGNoKTogTmV3LCBmb3IgU0g0LgoJKGljX2ludmFsaWRhdGVfbGluZSwgaWNfaW52YWxpZGF0ZV9saW5lX3NoNGEpOiBVc2UgaWNiaS4KCSh0b2dnbGVfc3opOiBTZXQgdHlwZSB0byBmcC4KCSh0b2dnbGVfcHIsIHJzcXJ0c2YyLCBmc2NhLCBzaW5zZjIsIGNvc3NmMiwgc2luZGYyLCBjb3NkZjIpOiBOZXcuCgkobW92dWEsIGV4dHYsIGV4dHp2KTogTmV3LgoJKiBjb25maWcvc2gvdC1zaDogQWRkIG11bHRpbGlicyBmb3IgNGEsIDRhLW5vZnB1LCA0YS1zaW5nbGUKCWFuZCA0YS1zaW5nbGUtb25seS4KCjIwMDQtMDctMjggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1vcHRpbWl6ZS5jIChpbml0X3RyZWVfb3B0aW1pemF0aW9uX3Bhc3Nlcyk6IFNjaGVkdWxlCglwYXNzX21heV9hbGlhcyByaWdodCBhZnRlciB0aGUgcHJvZ3JhbSBpcyByZW5hbWVkIGludG8gU1NBLgoJKiB0cmVlLXBhc3MuaCAoUFJPUF9hbGlhcyk6IERlZmluZS4KCSogdHJlZS1vdXRvZi1zc2EuYyAocGFzc19kZWxfc3NhKTogUmVxdWlyZSBQUk9QX2FsaWFzLgoJKiB0cmVlLXNyYS5jIChwYXNzX3NyYSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1jY3AuYyAocGFzc19jY3ApOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtY29weXJlbmFtZS5jIChwYXNzX3JlbmFtZV9zc2FfY2NwKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWRjZS5jIChwYXNzX2RjZSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1kb20uYyAocGFzc19kb21pbmF0b3IpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtZHNlLmMgKHBhc3NfZHNlKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWZvcndwcm9wLmMgKHBhc3NfZm9yd3Byb3ApOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtbG9vcC1jaC5jIChwYXNzX2NoKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLXBoaW9wdC5jIChwYXNzX3BoaW9wdCk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1wcmUuYyAocGFzc19wcmUpOiBMaWtld2lzZS4KCSogdHJlZS10YWlsY2FsbC5jIChwYXNzX3RhaWxfcmVjdXJzaW9uKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLmMgKHBhc3NfcmVkdW5kYW50X3BoaSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1hbGlhcy5jIChhbGlhc2VzX2NvbXB1dGVkX3ApOiBSZW1vdmUuCglVcGRhdGUgYWxsIHVzZXJzLgoJKGluaXRfYWxpYXNfaW5mbyk6IERvIG5vdCBtYXJrIGFsbCB0eXBlIHRhZ3MgZm9yIHJlbmFtaW5nCgl1bmNvbmRpdGlvbmFsbHkuCglDbGVhciBtYXlfYWxpYXNlcyBmcm9tIGV2ZXJ5IHN5bWJvbC4KCShzZXR1cF9wb2ludGVyc19hbmRfYWRkcmVzc2FibGVzKTogSWYgYSBwb2ludGVyIGhhcyBub3QgYmVlbgoJZGVyZWZlcmVuY2VkIGFuZCBpdCBoYWQgYSB0eXBlIHRhZywgY2xlYXIgaXQgYW5kIG1hcmsgdGhlIG9sZAoJdGFnIGZvciByZW5hbWluZy4KCjIwMDQtMDctMjggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE2NzA1CgkqIHRyZWUtc3NhLWFsaWFzLmMgKGNyZWF0ZV9nbG9iYWxfdmFyKTogU2V0IERFQ0xfRVhURVJOQUwgb24KCS5HTE9CQUxfVkFSLgoKMjAwNC0wNy0yNyAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGV4cHIuYyAoZXhwYW5kX2V4cHJfcmVhbF8xLCBjYXNlIFBBUk1fREVDTCk6IFJlbW92ZSBvYnNvbGV0ZSBlcnJvcgoJY2hlY2suCgoJKiBnaW1wbGlmeS5jIChtYXliZV93aXRoX3NpemVfZXhwcik6IElmIGFscmVhZHkgaGF2ZSBXSVRIX1NJWkVfRVhQUiwKCWRvbid0IG1ha2UgYW5vdGhlciBvbmUuCgoJUFIgb3B0aW1pemF0aW9uLzE1MDc3CgkqIGZ1bmN0aW9uLmggKHN0cnVjdCBmdW5jdGlvbik6IEFkZCBmaWVsZCBzYXZlZF9zdGF0aWNfY2hhaW5fZGVjbC4KCUZpeCBjb21tZW50IGZvciBzdGF0aWNfY2hhaW5fZGVjbC4KCSogdHJlZS1pbmxpbmUuYyAoc2F2ZV9ib2R5KTogQWRkIG5ldyBhcmcgYW5kIGhhbmRsZSBzdGF0aWNfY2hhaW5fZGVjbC4KCSogdHJlZS1pbmxpbmUuaCAoc2F2ZV9ib2R5KTogQWRkIG5ldyBhcmcuCgkqIHRyZWUtb3B0aW1pemUuYyAodHJlZV9yZXN0X29mX2NvbXBpbGF0aW9uKTogSGFuZGxlIHNhdmluZwoJc3RhdGljX2NoYWluX2RlY2wuCgoyMDA0LTA3LTI3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZ2ltcGxpZnkuYyAoaXNfZ2ltcGxlX2FkZHJfZXhwcl9hcmdfb3JfaW5kaXJlY3QpOiBSZW1vdmUuCgkoZ2ltcGxpZnlfbW9kaWZ5X2V4cHIsIGdpbXBsaWZ5X2FkZHJfZXhwciwgZ2ltcGxpZnlfZXhwcik6IFVzZQoJaXNfZ2ltcGxlX2FkZHJlc3NhYmxlLgoJKiB0cmVlLWdpbXBsZS5jIChpc19naW1wbGVfYWRkcmVzc2FibGUpOiBSZW5hbWUgZnJvbQoJaXNfZ2ltcGxlX2FkZHJfZXhwcl9hcmc7IGFjY2VwdCBJTkRJUkVDVF9SRUYuCgkoaXNfZ2ltcGxlX2x2YWx1ZSk6IERvbid0IHRlc3QgSU5ESVJFQ1RfUkVGIGRpcmVjdGx5LgoJKiB0cmVlLWdpbXBsZS5oLCB0cmVlLXNyYS5jLCB0cmVlLXNzYS1sb29wLWltLmM6IFVwZGF0ZSBmb3IKCXJlbmFtZSB0byBpc19naW1wbGVfYWRkcmVzc2FibGUuCgoyMDA0LTA3LTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAoZnVuY3Rpb25fYXJnX3BhZGRpbmcpOiBQYWQgU0Ztb2RlIHVwd2FyZHMuCgoyMDA0LTA3LTI3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZnVuY3Rpb24uYyAoYXNzaWduX3N0YWNrX2xvY2FsXzEpOiBXaWRlbiBhbGlnbm1lbnQgdG8gSE9TVF9XSURFX0lOVAoJYmVmb3JlIHJvdW5kaW5nLgoKMjAwNC0wNy0yNyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxpYmdjYzIuYzogQ2hhbmdlIGFsbCBjb25kaXRpb25hbHMgdGVzdGluZwoJTElCR0NDMl9MT05HX0RPVUJMRV9UWVBFX1NJWkUgPT0gOTYgdG8gPT0gODAuCgkqIGxpYmdjYzIuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9pbml0X21teF9zc2VfYnVpbHRpbnMpOiBTZXQKCVRZUEVfUFJFQ0lTSU9OIG9mIGZsb2F0ODBfdHlwZSB0byA4MC4KCSogY29uZmlnL2lhNjQvaWE2NC5jIChpYTY0X2luaXRfYnVpbHRpbnMpOiBTZXQgVFlQRV9QUkVDSVNJT04KCW9mIGZwcmVnX3R5cGUgYW5kIGZsb2F0ODBfdHlwZSB0byA4MC4KCSogY29uZmlnL2kzODYvaTM4Ni5oLCBjb25maWcvaWE2NC9pYTY0LmgsIGNvbmZpZy9tNjhrL202OGsuaAoJKiBjb25maWcvbTY4ay9uZXRic2QtZWxmLmg6CglDaGFuZ2UgTE9OR19ET1VCTEVfVFlQRV9TSVpFIGFuZCBwb3NzaWJseSBMSUJHQ0MyX0xPTkdfRE9VQkxFX1RZUEVfU0laRQoJdG8gZXZhbHVhdGUgdG8gODAgd2hlbmV2ZXIgdGhleSB3b3VsZCBmb3JtZXJseSBoYXZlIGV2YWx1YXRlZCB0byA5Ni4KCSogY29uZmlnL2kzODYvc2NvNS5oOiBSZW1vdmUgdW5uZWNlc3NhcnkgcmVkZWZpbml0aW9uIG9mCglMT05HX0RPVUJMRV9UWVBFX1NJWkUuCgkqIGRvYy9ydGwudGV4aTogQ2xhcmlmeSB1c2VzIG9mIFhGbW9kZSBhbmQgVEZtb2RlLgoJKiBjb25maWcvaTM4Ni9pMzg2LW1vZGVzLmRlZjogVXNlIEZSQUNUSU9OQUxfRkxPQVRfTU9ERSBmb3IKCVhGbW9kZSwgd2l0aCBhIGJpdHNpemUgb2YgODAuICBVcGRhdGUgY29tbWVudGFyeS4KCSogY29uZmlnL2lhNjQvaWE2NC1tb2Rlcy5kZWY6IExpa2V3aXNlLgoJKiBjb25maWcvbTY4ay9tNjhrLW1vZGVzLmRlZjogTGlrZXdpc2UuCgoyMDA0LTA3LTI3ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBjZmdleHBhbmQuYyAodHJlZV9leHBhbmRfY2ZnKTogRml4IGNvbW1lbnQuCgoJKiBjYWxscy5jIChleHBhbmRfY2FsbCk6IElnbm9yZSBydHhfZXF1YWxfZnVuY3Rpb25fdmFsdWVfbWF0dGVycy4KCSogZnVuY3Rpb24uYyAocHVyZ2Vfc2luZ2xlX2hhcmRfc3VicmVnX3NldCwgcHVyZ2VfaGFyZF9zdWJyZWdfc2V0cyk6CglSZW1vdmUuCgkocHJlcGFyZV9mdW5jdGlvbl9zdGFydCk6IERvbid0IHNldCBydHhfZXF1YWxfZnVuY3Rpb25fdmFsdWVfbWF0dGVycy4KCSogaW50ZWdyYXRlLmMgKGNvcHlfcnR4X2FuZF9zdWJzdGl0dXRlKTogRG9uJ3QgdGVzdCBmb3IgaXQuCgkqIHBhc3Nlcy5jIChyZXN0X29mX2NvbXBpbGF0aW9uKTogRG9uJ3QgY2FsbCBwdXJnZV9oYXJkX3N1YnJlZ19zZXRzLgoJRG9uJ3Qgc2V0IHJ0eF9lcXVhbF9mdW5jdGlvbl92YWx1ZV9tYXR0ZXJzLiAgRG9uJ3QgcmVnaXN0ZXIgUlRMIGhvb2tzCgloZXJlIGFnYWluLiAgVXBkYXRlIGxlYWRpbmcgY29tbWVudC4KCSogcnRsLmMgKHJ0eF9lcXVhbF9mdW5jdGlvbl92YWx1ZV9tYXR0ZXJzKTogUmVtb3ZlLgoJKHJ0eF9lcXVhbF9wKTogRG9uJ3QgdGVzdCBmb3IgaXQuCgkqIHNpbXBsaWZ5LXJ0eC5jIChzaW1wbGlmeV9iaW5hcnlfb3BlcmF0aW9uLCBzaW1wbGlmeV9zdWJyZWcpOgoJTGlrZXdpc2UuCgoJKiBydGwuaCAoZW51bSBpbnNuX25vdGUpOiBSZW1vdmUgTk9URV9JTlNOX0xPT1BfRU5EX1RPUF9DT05ELgoJKiBydGwuYyAobm90ZV9pbnNuX25hbWUpOiBMaWtld2lzZS4KCSogZW1pdC1ydGwuYyAocmVtb3ZlX3VubmVjZXNzYXJ5X25vdGVzKTogRG9uJ3QgaGFuZGxlIGl0LgoJKiBmaW5hbC5jIChmaW5hbF9zY2FuX2luc24pOiBMaWtld2lzZS4KCgkqIGV4Y2VwdC5jIChmaW5pc2hfZWhfZ2VuZXJhdGlvbik6IERvbid0IGNhbGwgY2ZnX2NsZWFudXAgZnJvbSBoZXJlLgoJKiBwYXNzZXMuYyAocmVzdF9vZl9oYW5kbGVfZWgpOiBEbyBpdCBoZXJlLgoKCSogc3RtdC5jIChzdHJ1Y3QgbmVzdGluZyk6IFJlbW92ZSBzdHJ1Y3QgbmVzdGluZyBibG9jayBtZW1iZXIuCgkoc3RydWN0IHN0bXRfc3RhdHVzKTogUmVtb3ZlIHhfYmxvY2tfc3RhcnRfY291bnQgZmllbGQuCgkoY3VycmVudF9ibG9ja19zdGFydF9jb3VudCk6IFJlbW92ZS4KCjIwMDQtMDctMjcgIEJyaWFuIEJvb3RoICA8YmJvb3RoQHJlZGhhdC5jb20+CgoJKiB0cmVlLW9wdGltaXplLmMgKHJlZ2lzdGVyX29uZV9kdW1wX2ZpbGUpOiBVcGRhdGUgY29uZGl0aW9uIHRoYXQgdXNlcwoJc3RhdGljX3Bhc3NfbnVtYmVyLgoJKGR1cF9wYXNzXzEpOiBSZXBsYWNlIHdpdGguLi4KCShuZXh0X3Bhc3NfMSk6IFRoaXMuCgkoTkVYVF9QQVNTKTogQ2FsbCBuZXh0X3Bhc3NfMS4KCShEVVBfUEFTUyk6IFJlbW92ZS4KCShpbml0X3RyZWVfb3B0aW1pemF0aW9uX3Bhc3Nlcyk6IFJlbW92ZSB1c2VzIG9mIERVUF9QQVNTLgoJKGV4ZWN1dGVfb25lX3Bhc3MpOiBVcGRhdGUgY29uZGl0aW9uIHRoYXQgdXNlcwoJc3RhdGljX3Bhc3NfbnVtYmVyLgoJKiB0cmVlLXBhc3MuaCAodHJlZV9vcHRfcGFzcyk6IERlY2xhcmUgc3RhdGljX3Bhc3NfbnVtYmVyIGFzIGEgc2lnbmVkCglpbnRlZ2VyLgoKMjAwNC0wNy0yNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9tMzJyL20zMnIuYzogSW5jbHVkZSBpbnRlZ3JhdGUuaCBpbiBvcmRlciB0byBnZXQgdGhlCglwcm90b3R5cGUgZm9yIGdldF9oYXJkX3JlZ19pbml0aWFsX3ZhbCgpLgoKCSogY29uZmlnL20zMnIvbTMyci5tZCAobTMycnBpcGVsaW5lKTogUmVtb3ZlIHVudXNlZCB2YWx1ZSAibTMyciIKCWFuZCB0aWR5IHVwIGluZGVudGF0aW9uLgoJKGZpbmFsX3ByZXNlbmNlX3NldCk6IFVzZSBhYnNlbmNlX3NldCBpbnN0ZWFkLCBzbyB0aGF0IGlmIHRoZXJlIGlzCglub3RoaW5nIGluIHRoZSAibyIgcGlwZSB0aGUgInMiIHBpcGUgY2FuIGJlIHNjaGVkdWxlZC4KCjIwMDQtMDctMjcgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtYWxpYXMuYyAoY3JlYXRlX25hbWVfdGFncyk6IElnbm9yZSBwb2ludGVycyB0aGF0Cglkb24ndCBoYXZlIFBUX1ZBUlMgbm9yIFBUX01BTExPQyBzZXQuCglDbGVhciBuYW1lIHRhZyBmcm9tIHBvaW50ZXJzIHRoYXQgaGF2ZSBub3QgYmVlbiBkZXJlZmVyZW5jZWQuCgkoc2V0X3B0X2FueXRoaW5nLCBzZXRfcHRfbWFsbG9jKTogRm9yd2FyZCBkZWNsYXJlLgoJKiB0cmVlLXNzYS1jb3B5LmMgKG1heV9wcm9wYWdhdGVfY29weSk6IENvbXBhcmUgYWxpYXMgc2V0cywKCW5vdCB0eXBlIGNvbXBhdGliaWxpdHkgd2hlbiBkZXRlcm1pbmluZyBpZiBhIHBvaW50ZXIgY2FuIGJlCgljb3B5IHByb3BhZ2F0ZWQuCgoyMDA0LTA3LTI3ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBleHByLmggKGNhbm9uaWNhbGl6ZV9jb25kaXRpb24sIGdldF9jb25kaXRpb24pOiBBZGQgYW4gaW50IGFyZ3VtZW50LgoJKiBnY3NlLmMgKGZpc19nZXRfY29uZGl0aW9uKTogUmVpbXBsZW1lbnQgdXNpbmcgZ2V0X2NvbmRpdGlvbiwgbGVhdmluZwoJaXQgdG8gY2hlY2sgd2hldGhlciB0aGUgY29uZGl0aW9uIGlzIHN0aWxsIHZhbGlkIGF0IHRoZSBqdW1wIGluc24uCgkqIGlmY3Z0LmMgKG5vY2VfZ2V0X2NvbmRpdGlvbik6IExpa2V3aXNlLgoJKG5vY2VfZ2V0X2FsdF9jb25kaXRpb24pOiBVcGRhdGUgY2FsbCB0byBjYW5vbmljYWxpemVfY29uZGl0aW9uLgoJKiBsb29wLWl2LmMgKHNpbXBsaWZ5X3VzaW5nX2luaXRpYWxfdmFsdWVzKTogVXBkYXRlIGNhbGwgdG8KCWdldF9jb25kaXRpb24uICBSZW1vdmUgRklYTUUuCgkoY2hlY2tfc2ltcGxlX2V4aXQpOiBVcGRhdGUgY2FsbCB0byBnZXRfY29uZGl0aW9uLgoJKiBsb29wLXVuc3dpdGNoLmMgKG1heV91bnN3aXRjaF9vbik6IExpa2V3aXNlLgoJKiBsb29wLmMgKGNoZWNrX2RicmFfbG9vcCk6IExpa2V3aXNlLgoJKGNhbm9uaWNhbGl6ZV9jb25kaXRpb24sIGdldF9jb25kaXRpb24pOiBBZGQgYW4gYXJndW1lbnQgdG8gc2F5IHdoZXRoZXIKCXRoZSBjb25kaXRpb24gbXVzdCBzdGlsbCBiZSB2YWxpZCBhdCBJTlNOLgoJKGdldF9jb25kaXRpb25fZm9yX2xvb3ApOiBVcGRhdGUgY2FsbCB0byBnZXRfY29uZGl0aW9uLiAgUmVxdWlyZSB0aGF0Cgl0aGUgY29uZGl0aW9uIGJlIHZhbGlkIGF0IElOU04uCgkqIHByZWRpY3QuYyAoZXN0aW1hdGVfcHJvYmFiaWxpdHkpOiBVcGRhdGUgY2FsbCB0byBnZXRfY29uZGl0aW9uLgoJUmVtb3ZlIHVudXNlZCBlYXJsaWVzdCBwYXJhbWV0ZXIuCgkoZXhwZWN0ZWRfdmFsdWVfdG9fYnJfcHJvYik6IFVwZGF0ZSBjYWxsIHRvIGNhbm9uaWNhbGl6ZV9jb25kaXRpb24uCgoyMDA0LTA3LTI2ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIHRyZWUtZGZhLmMgKGFkZF9yZWZlcmVuY2VkX3Zhcik6IFJlZ2lzdGVyIGluaXRpYWxpemVycyBvZiBnbG9iYWwKCXZhcmlhYmxlcy4KCjIwMDQtMDctMjYgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGZ1bmN0aW9uX2FyZyk6IEFsd2F5cyB0cmVhdCA4LQoJYW5kIDE2LWJ5dGUgd2lkZSB2ZWN0b3JzIHRoZSBzYW1lLCBldmVuIGlmIE1NWC9TU0UKCWFyZSBkaXNhYmxlZC4KCShjb250YWluc18xMjhiaXRfYWxpZ25lZF92ZWN0b3JfcCk6IEFkZCBjb21tZW50LgoKMjAwNC0wNy0yNiAgSiJvcm4gUmVubmVja2UgPGpvZXJuLnJlbm5lY2tlQHN1cGVyaC5jb20+CgoJKiByYS5oIChlbnVtIG5vZGVfdHlwZSk6IFJlbmFtZSB0bzoKCShlbnVtIHJhX25vZGVfdHlwZSkuCgkqIHJhLWNvbG9yaXplLmM6IExpa2V3aXNlLgoKMjAwNC0wNy0yNiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY2ZnY2xlYW51cC5jICh0cnlfc2ltcGxpZnlfY29uZGp1bXApOiBDYWxsIHVwZGF0ZV9mb3J3YXJkZXJfZmxhZwoJYWZ0ZXIgc2ltcGxpZnlpbmcgdGhlIGp1bXAuCgoyMDA0LTA2LTI2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY2FsbHMuYyAoY29tYmluZV9wZW5kaW5nX3N0YWNrX2FkanVzdG1lbnRfYW5kX2NhbGwpOiBNYWtlCglwcmVmZXJyZWRfdW5pdF9zdGFja19ib3VuZGFyeSBhcmd1bWVudCB1bnNpZ25lZC4gIE1ha2UKCXVuYWRqdXN0ZWRfYWxpZ25tZW50IHVuc2lnbmVkLgoJKGV4cGFuZF9jYWxsKTogTWFrZSBwcmVmZXJyZWRfc3RhY2tfYm91bmRhcnkgYW5kCglwcmVmZXJyZWRfdW5pdF9zdGFja19ib3VuZGFyeSB2YXJpYWJsZXMgdW5zaWduZWQuCgkqIGZ1bmN0aW9uLmMgKGFzc2lnbl9zdGFja19sb2NhbF8xKTogTWFrZSBhbGlnbm1lbnQgdW5zaWduZWQuCgkqIGZ1bmN0aW9uLmggKHN0cnVjdCBmdW5jdGlvbik6IE1ha2Ugc3RhY2tfYWxpZ25tZW50X25lZWRlZCwKCXByZWZlcnJlZF9zdGFja19ib3VuZGFyeSB1bnNpZ25lZC4KCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X3ByZWZlcnJlZF9zdGFja19ib3VuZGFyeSk6IE1ha2UgdW5zaWduZWQuCgkoaXg4Nl9jb21wdXRlX2ZyYW1lX2xheW91dCk6IE1ha2Ugc3RhY2tfYWxpZ25tZW50X25lZWRlZCwKCXByZWZlcnJlZF9hbGlnbm1lbnQgdmFyaWFibGVzIHVuc2lnbmVkLgoJKiBjb25maWcvaTM4Ni9pMzg2LmggKGl4ODZfcHJlZmVycmVkX3N0YWNrX2JvdW5kYXJ5KTogTWFrZSB1bnNpZ25lZC4KCjIwMDQtMDctMjYgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4KCgkqIHRyZWUuaDogRml4IHR5cG8gaW4gY29tbWVudC4KCjIwMDQtMDctMjYgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGRlYmlhbi5vcmc+CgoJUFIgYm9vdHN0cmFwLzEyODA0CgkqIGdnYy16b25lLmMgKHN0cnVjdCBhbGxvY19jaHVuayk6IFJlbW92ZSBhdHRyaWJ1dGUgcGFja2VkLgoJKE1BWF9GUkVFX0JJTl9TSVpFKTogSW5jcmVhc2Ugb24gNjQtYml0IHRhcmdldHMuCgkoZ2djX2ZyZWUpOiBSZW1vdmUgaW5jb3JyZWN0IGZyZWVpbmcuCgkoc3dlZXBfcGFnZXMpOiBBZHZhbmNlIFBQIGZvciBsYXJnZSBwYWdlcy4gIEZpeCBpbmRlbnRhdGlvbi4KCjIwMDQtMDctMjYgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE2NjQzCgkqIGNmZ2xheW91dC5oIChjZmdfbGF5b3V0X2luaXRpYWxpemUpOiBBZGQgYSBmbGFncyBwYXJhbWV0ZXIuCgkqIGNmZ2xheW91dC5jIChjZmdfbGF5b3V0X2luaXRpYWxpemUpOiBQYXNzIGl0IHRvIGNsZWFudXBfY2ZnLgoJKiBiYXNpYy1ibG9jay5oIChyZW9yZGVyX2Jhc2ljX2Jsb2Nrcyk6IEFkZCBhIGZsYWdzIHBhcmFtZXRlci4KCSogY2ZnbGF5b3V0LmMgKHJlb3JkZXJfYmFzaWNfYmxvY2tzKTogUGFzcyBpdCB0byBjZmdfbGF5b3V0X2luaXRpYWxpemUuCgkocGFydGl0aW9uX2hvdF9jb2xkX2Jhc2ljX2Jsb2Nrcyk6IFBhc3MgMCB0byBjZmdfbGF5b3V0X2luaXRpYWxpemUuCgkqIGZ1bmN0aW9uLmMgKHRocmVhZF9wcm9sb2d1ZV9hbmRfZXBpbG9ndWVfaW5zbnMpOiBMaWtld2lzZS4KCSogcnRsLmggKHRyYWNlcik6IEFkZCBhIGZsYWdzIHBhcmFtZXRlci4KCSogdHJhY2VyLmMgKHRyYWNlcik6IFBhc3MgaXQgdG8gY2ZnX2xheW91dF9pbml0aWFsaXNlLgoJKiBwYXNzZXMuYyAocmVzdF9vZl9oYW5kbGVfc3RhY2tfcmVncyk6IFBhc3MgMCB0byByZW9yZGVyX2Jhc2ljX2Jsb2Nrcy4KCShyZXN0X29mX2hhbmRsZV9yZW9yZGVyX2Jsb2Nrcyk6IFVwZGF0ZSBjYWxscyB0byB0cmFjZXIgYW5kCglyZW9yZGVyX2Jhc2ljX2Jsb2NrcywgcGFzc2luZyBDTEVBTlVQX1VQREFURV9MSUZFIGlmIGFwcHJvcHJpYXRlLgoJKHJlc3Rfb2ZfaGFuZGxlX3RyYWNlcik6IFBhc3MgMCB0byB0cmFjZXIuCgkocmVzdF9vZl9oYW5kbGVfbG9vcDIpOiBQYXNzIDAgdG8gY2ZnX2xheW91dF9pbml0aWFsaXplLgoKMjAwNC0wNy0yNSAgRGF2aWQgRWRlbHNvaG4gIDxlZGVsc29obkBnbnUub3JnPgoKCVBSIHRhcmdldC8xNjIzOQoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5tZCAobW92ZGlfaW50ZXJuYWw2NCk6IEZ1cnRoZXIgZGlzcGFyYWdlCglmLT5mLgoKMjAwNC0wNy0yNCAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWUuaCAoQklORk9fQkFTRV9BQ0NFU1NFUyk6IEFjY2Vzc2VzIGFyZSBhIFZFQyh0cmVlKS4KCShCSU5GT19CQVNFX0FDQ0VTUyk6IEFkanVzdC4KCShCSU5GT19CQVNFX0FDQ0VTU19BUFBFTkQpOiBOZXcuCgkoc3RydWN0IHRyZWVfYmluZm8pOiBNYWtlIGJhc2VfYWNjZXNzZXMgYSBWRUModHJlZSkgcG9pbnRlci4KCSogZGJ4b3V0LmMgKGRieG91dF90eXBlKTogQWRqdXN0IGJpbmZvIGFjY2VzcyBhY2Nlc3NpbmcuCgkqIGR3YXJmMm91dC5jIChnZW5fbWVtYmVyX2RpZSk6IExpa2V3aXNlLgoJKiB0cmVlLWR1bXAuYyAoZGVxdWVfYW5kX2R1bXApOiBMaWtld2lzZS4KCjIwMDQtMDctMjYgIEZhbGsgSHVlZmZuZXIgIDxmYWxrQGRlYmlhbi5vcmc+CgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoYWxwaGFfcnR4X2Nvc3RfZGF0YSk6IFR3ZWFrIGludF9kaXYKCWNvc3RzLgoKMjAwNC0wNy0yNSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKG91dHB1dF9mcF9jb21wYXJlKTogVXNlIGZmcmVlcCB0byBwb3AgdG9wCgl2YWx1ZSBvZmYgb2YgdGhlIHN0YWNrIGlmIFRBUkdFVF9VU0VfRkZSRUVQLgoKMjAwNC0wNy0yNiAgQmVybmFyZG8gSW5ub2NlbnRpICA8YmVybmllQGRldmVsZXIuY29tPgoKCSogZ2VuZ3R5cGUuYyAob3ByaW50Zik6IFJlcGxhY2UgeHJlYWxsb2MgKCkgd2l0aCBYUkVTSVpFVkVDICgpLgoJKiBnZW5ndHlwZS15YWNjLnk6IExpa2V3aXNlLiAgUmVwbGFjZSBmcmVlKCkgd2l0aCBYREVMRVRFICgpLgoJKiBjLXR5cGVjay5jIChQVVNIX1NQRUxMSU5HKTogUmVtb3ZlIHJlZHVuZGFudCBOVUxMLXBvaW50ZXIKCWNoZWNrIG9uIGludm9jYXRpb24gb2YgWFJFU0laRVZFQyAoKS4KCjIwMDQtMDctMjYgIEJlcm5hcmRvIElubm9jZW50aSAgPGJlcm5pZUBkZXZlbGVyLmNvbT4KCgkqIGMtY29tbW9uLmMgKGRpc2FibGVfYnVpbHRpbl9mdW5jdGlvbik6IFJlbmFtZSB2YXJpYWJsZSBuIHRvCgluZXdfZGlzYWJsZWRfYnVpbHRpbi4KCSogYy1kZWNsLmMgKGR1cGxpY2F0ZV9kZWNscyk6IFJlbmFtZSBwYXJhbWV0ZXIgZGVjbCB0byBuZXdfZGVjbC4KCVJlbmFtZSBsb2NhbCB2YXJpYWJsZSBvbGQgdG8gb2xkX2RlY2wuCgkqIGdlbnN1cHBvcnQuYyAoc2hpZnRfb3V0cHV0X3RlbXBsYXRlKTogUmVuYW1lIHBhcmFtZXRlciBvbGQgdG8gc3JjLgoJKiBzaW1wbGlmeS1ydHguYyAoc2ltcGxpZnlfcmVwbGFjZV9ydHgpOiBSZW5hbWUgcGFyYW1ldGVyIG9sZHggdG8KCW9sZF9ydHggYW5kIG5ld3ggdG8gbmV3X3J0eC4KCjIwMDQtMDctMjYgIEJlcm5hcmRvIElubm9jZW50aSAgPGJlcm5pZUBkZXZlbGVyLmNvbT4KCgkqIE1ha2VmaWxlLmluIChDX1BSQUdNQV9IKTogTmV3IHZhcmlhYmxlIHRvIHRyYWNrIGRlcGVuZGVuY2llcwoJb2YgYy1wcmFnbWEuaC4KCSogYy1wcmFnbWEuaCAoY19sZXgsIGNfbGV4X3dpdGhfZmxhZ3MpOiBDaGFuZ2UgcmV0dXJudHlwZSB0bwoJZW51bSBjcHBfdHR5cGUuCgkqIGMtbGV4LmM6IExpa2V3aXNlLgoKMjAwNC0wNy0yNSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBmb2xkLWNvbnN0LmMgKGNvbnN0YW50X2Jvb2xlYW5fbm9kZSk6IE1ha2UgZXh0ZXJuLgoJKG1ha2VfcmFuZ2UpOiBXcmFwIGxvbmcgbGluZXMuCgkoZm9sZF9jb25kX2V4cHJfd2l0aF9jb21wYXJpc29uKTogUmVtb3ZlIHVubmVjZXNzYXJ5IGNhbGwgdG8KCXBlZGFudGljX25vbl9sdmFsdWUuICBBZGQgbWlzc2luZyBjYWxscyB0byBmb2xkX2NvbnZlcnQuCgkoZm9sZF90cnV0aG9wKTogQWRkIG1pc3NpbmcgY2FsbHMgdG8gZm9sZF9jb252ZXJ0LgoJKGZvbGQpOiBMaWtld2lzZS4KCSogdHJlZS5oIChjb25zdGFudF9ib29sZWFuX25vZGUpOiBBZGQgcHJvdG90eXBlIGhlcmUuCgkqIGJ1aWx0aW5zLmMgKGV4cGFuZF9idWlsdGluX3N0cm5jbXApOiBBZGQgbWlzc2luZyBjYWxscyB0bwoJZm9sZF9jb252ZXJ0LgoJKiB0cmVlLXNzYS1kb20uYyAocmVjb3JkX2VxdWl2YWxlbmNlc19mcm9tX2luY29taW5nX2VkZ2UpOgoJQ2FsbCBmb2xkX2NvbnZlcnQgYW5kIGNvbnN0YW50X2Jvb2xlYW5fbm9kZSB0byBjb3JyZWN0IHR5cGVzLgoJKiB0cmVlLXNzYS1mb3J3cHJvcC5jIChzdWJzdGl0dXRlX3NpbmdsZV91c2VfdmFycyk6IEFkZAoJbWlzc2luZyBjYWxsIHRvIGZvbGRfY29udmVydCB0byBjb3JyZWN0IHR5cGVzLgoKMjAwNC0wNy0yNiAgTmlhbGwgRG91Z2xhcyAgPHNfZnNmZXVyb3BlMkBuZWRwcm9kLmNvbT4KCSAgICBCcmlhbiBSeW5lciAgPGJyeW5lckBicmlhbnJ5bmVyLmNvbT4KCglQUiBjKysvOTI4MwoJUFIgYysrLzE1MDAwCgkqIGMtY29tbW9uLmMgKGNfY29tbW9uX2F0dHJpYnV0ZV90YWJsZSk6IEFsbG93CgloYW5kbGVfdmlzaWJpbGl0eV9hdHRyaWJ1dGUgdG8gYmUgY2FsbGVkIGZvciB0eXBlcy4KCShoYW5kbGVfdmlzaWJpbGl0eV9hdHRyaWJ1dGUpIFdoZW4gZ2l2ZW4gYSB0eXBlLCBzZXQgdGhlIHZpc2liaWxpdHkKCWJpdHMgb24gdGhlIFRZUEVfTkFNRS4gIFdoZW4gZ2l2ZW4gYSBkZWNsLCBkb24ndCBzZXQgbm9fYWRkX2F0dHJzCglzbyB0aGF0IHdlIGNhbiBjaGVjayBsYXRlciB3aGV0aGVyIHRoZSBhdHRyaWJ1dGUgd2FzIHByZXNlbnQuIEFkZGVkCgl3YXJuaW5nIGlmIGF0dHJpYnV0ZSBhcHBsaWVkIHRvIG5vbiBjbGFzcyB0eXBlLgoJKiBjLWRlY2wuYyAoZGlhZ25vc2VfbWlzbWF0Y2hlZF9kZWNscyk6IFVwZGF0ZWQgcnVsZXMgZm9yIG1lcmdpbmcKCWRlY2xzIGFuZCBjaGVja2luZyB0aGF0IHRoZXkgYXJlIGNvbnNpc3RlbnQuCgkqIGNvbW1vbi5vcHQ6IEFkZGVkIC1mdmlzaWJpbGl0eS4KCSogYy5vcHQsIGMtb3B0cy5jOiBBZGRlZCAtZnZpc2liaWxpdHktaW5saW5lcy1oaWRkZW4uCgkqIGMtcHJhZ21hLmgsIGMtcHJhZ21hLmM6IEFkZGVkIGhhbmRsZV9wcmFnbWFfdmlzaWJpbGl0eSgpLgoJKiBmbGFncy5oLCB0cmVlLmg6IEFkZGVkIGFzc29ydGVkIHN1cHBvcnQgZGVmaW5lcyBmb3Igb3ZlcmFsbCBwYXRjaAoJKiBvcHRzLmM6IEFkZGVkIHBhcnNpbmcgc3VwcG9ydCBmb3IgLWZ2aXNpYmlsaXR5LgoJKiB0cmVlLmMgKGJ1aWxkX2RlY2wpOiBTZXQgdmlzaWJpbGl0eSBmb3IgYWxsIGRlY2xzIHRvIGJlIHdoYXRldmVyCglpcyBpbiBmb3JjZSBhdCB0aGF0IHRpbWUuCgkqIHZhcmFzbS5jIChkZWZhdWx0X2JpbmRzX2xvY2FsX3BfMSk6IFJld29ya2VkIGxvZ2ljIGRldGVybWluaW5nCgl3aGVuIHRvIG1ha2UgYSBzeW1ib2wgbG9jYWxseSBib3VuZC4KCSogZG9jL2ludm9rZS50ZXhpOiBBZGRlZCBkb2N1bWVudGF0aW9uIGZvciAtZnZpc2liaWxpdHkgYW5kCgktZnZpc2liaWxpdHktaW5saW5lcy1oaWRkZW4uCgoyMDA0LTA3LTI1ICBCZXJuYXJkbyBJbm5vY2VudGkgIDxiZXJuaWVAZGV2ZWxlci5jb20+CgoJKiBiYXNpYy1ibG9jay5oIChyZW9yZGVyX2Jsb2NrX2RlZik6IFJlbmFtZSB0byByZW9yZGVyX2Jsb2NrX2RlZl9wLgoJKiBjLWNvbW1vbi5jOiBBZGQgbWlzc2luZyBjYXN0cyBmcm9tIHZvaWQgKiB0byBvdGhlciB0eXBlcy4KCSogYy1kZWNsLmM6IExpa2V3aXNlLgoJKiBjLWZvcm1hdC5jOiBMaWtld2lzZS4KCSogYy1sZXguYzogTGlrZXdpc2UuCgkqIGMtcHJhZ21hLmM6IExpa2V3aXNlLgoJKiBjLXR5cGVjay5jOiBMaWtld2lzZS4KCSogZGVmYXVsdHMuaDogTGlrZXdpc2UuCgkqIGdlbmNvbnN0YW50cy5jOiBMaWtld2lzZS4KCSogZ2VuZ3R5cGUtbGV4Lmw6IExpa2V3aXNlLgoJKiBnZW5tb2Rlcy5jOiBMaWtld2lzZS4KCSogcmVhZC1ydGwuYzogTGlrZXdpc2UuCgkqIHJ0bC5jOiBMaWtld2lzZS4KCjIwMDQtMDctMjUgIEJlcm5hcmRvIElubm9jZW50aSAgPGJlcm5pZUBkZXZlbGVyLmNvbT4KCgkqIGJpdG1hcC5jOiBVc2UgdHlwZS1zYWZlIG1lbW9yeSBhbGxvY2F0aW9uIG1hY3JvcyBmcm9tIGxpYmliZXJ0eS4KCSogYy1jb21tb24uYzogTGlrZXdpc2UuCgkqIGMtZGVjbC5jOiBMaWtld2lzZS4KCSogYy1sYW5nLmM6IExpa2V3aXNlLgoJKiBjLWxleC5jOiBMaWtld2lzZS4KCSogYy1vcHRzLmM6IExpa2V3aXNlLgoJKiBjLXBhcnNlLmluOiBMaWtld2lzZS4KCSogYy10eXBlY2suYzogTGlrZXdpc2UuCgkqIGdlbmNvbmRpdGlvbnMuYzogTGlrZXdpc2UuCgkqIGdlbmd0eXBlLWxleC5sOiBMaWtld2lzZS4KCSogZ2VuZ3R5cGUteWFjYy55OiBMaWtld2lzZS4KCSogZ2VuZ3R5cGUuYzogTGlrZXdpc2UuCgkqIGdlbm1vZGVzLmM6IExpa2V3aXNlLgoJKiBnZW5zdXBwb3J0LmM6IExpa2V3aXNlLgoJKiByZWFkLXJ0bC5jOiBMaWtld2lzZS4KCSogcmVhZC1ydGwuYyAocmVhZF9jb25zdGFudHMpOiBVc2UgSU5TRVJUIGluc3RlYWQgb2YgVFJVRSBpbiBjYWxsIHRvCglodGFiX2ZpbmRfc2xvdCgpLgoKMjAwNC0wNy0yNSAgQmVybmFyZG8gSW5ub2NlbnRpICA8YmVybmllQGRldmVsZXIuY29tPgoKCSogYy1kZWNsLmMgKGdyb2t0eXBlbmFtZSwgZ3Jva3R5cGVuYW1lX2luX3BhcmFtX2NvbnRleHQpOiBSZW5hbWUKCXZhcmlhYmxlIHR5cGVuYW1lIHRvIHR5cGVfbmFtZS4KCSogYy1sZXguYyAoaW50ZXJwcmV0X2Zsb2F0KTogTGlrZXdpc2UuCgoyMDA0LTA3LTI1ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGNvbnZlcnQuYyAoY29udmVydF90b19yZWFsLCBjb252ZXJ0X3RvX2ludGVnZXIsCgljb252ZXJ0X3RvX2NvbXBsZXgpOiBSZXBsYWNlIGNhbGxzIHRvIGJ1aWxkIHdpdGggY2FsbHMgdG8gYnVpbGROLgoJKiBjb3ZlcmFnZS5jICh0cmVlX2NvdmVyYWdlX2NvdW50ZXJfcmVmKTogTGlrZXdpc2UuCgkqIGRvanVtcC5jIChkb19qdW1wKTogTGlrZXdpc2UuCgkqIGR3YXJmMm91dC5jIChsb2NfZGVzY3JpcHRvcl9mcm9tX3RyZWUpOiBMaWtld2lzZS4KCSogZW1pdC1ydGwuYyAoY29tcG9uZW50X3JlZl9mb3JfbWVtX2V4cHIsCglzZXRfbWVtX2F0dHJpYnV0ZXNfbWludXNfYml0cG9zKTogTGlrZXdpc2UuCgkqIGV4cGxvdy5jICh1cGRhdGVfbm9ubG9jYWxfZ290b19zYXZlX2FyZWEpOiBMaWtld2lzZS4KCSogZXhwbWVkLmMgKGV4cGFuZF9zaGlmdCwgbWFrZV90cmVlLCBjb25zdF9tdWx0X2FkZF9vdmVyZmxvd19wLAoJZXhwYW5kX211bHRfYWRkKTogTGlrZXdpc2UuCgkqIGV4cHIuYyAoZW1pdF9ibG9ja19tb3ZlX3ZpYV9saWJjYWxsLCBjbGVhcl9zdG9yYWdlX3ZpYV9saWJjYWxsLAoJc3RvcmVfY29uc3RydWN0b3IsIGdldF9pbm5lcl9yZWZlcmVuY2UsIGV4cGFuZF9leHByX3JlYWxfMSwKCXRyeV9jYXNlc2ksIHRyeV90YWJsZWp1bXApOiBMaWtld2lzZS4KCSogZnVuY3Rpb24uYyAoZXhwYW5kX2Z1bmN0aW9uX3N0YXJ0KTogTGlrZXdpc2UuCgkqIHN0bXQuYyAoZW1pdF9jYXNlX2JpdF90ZXN0cywgZXhwYW5kX2VuZF9jYXNlX3R5cGUsCglub2RlX2hhc19sb3dfYm91bmQsIG5vZGVfaGFzX2hpZ2hfYm91bmQsIGVtaXRfY2FzZV9ub2Rlcyk6IExpa2V3aXNlLgoJKiBzdG9yLWxheW91dC5jIChwbGFjZV91bmlvbl9maWVsZCwgbGF5b3V0X3R5cGUpOiBMaWtld2lzZS4KCSogdHJlZS5jIChzdWJzdGl0dXRlX2luX2V4cHIsIHRyZWVfZm9sZF9nY2QpOiBMaWtld2lzZS4KCSogdmFyYXNtLmMgKGNvcHlfY29uc3RhbnQpOiBMaWtld2lzZS4KCjIwMDQtMDctMjUgIEJlcm5hcmRvIElubm9jZW50aSAgPGJlcm5pZUBkZXZlbGVyLmNvbT4KCgkqIGMtY29tbW9uLmM6IFJlbmFtZSBhbGwgaWRlbnRpZmllcnMgbmFtZWQgYG5ldycuCgkqIGMtZGVjbC5jOiBMaWtld2lzZS4KCSogZ2Vuc3VwcG9ydC5jOiBMaWtld2lzZS4KCSogc2ltcGxpZnktcnR4LmM6IExpa2V3aXNlLgoJKiBjLWNvbW1vbi5jIChkaXNhYmxlX2J1aWx0aW5fZnVuY3Rpb24pOiBSZXBsYWNlIGEgY2FsbCB0byB4bWFsbG9jKCkKCXdpdGggWE5FVygpLgoJKiBnZW5zdXBwb3J0LmMgKGFsdGVyX291dHB1dF9mb3JfaW5zbik6IFJlcGxhY2UgdHdvIGNhbGxzIHRvIHhtYWxsb2MoKQoJd2l0aCBYTkVXVkVDKCkuCgoyMDA0LTA3LTI1ICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCglQUiBjLzE1MzYwCgkqIGMtZGVjbC5jIChzdGFydF9kZWNsKTogRG8gbm90IHNldCBERUNMX0VYVEVSTkFMIGZvciBpbml0aWFsaXplZAoJZGVjbGFyYXRpb25zIHVudGlsIGFmdGVyIGNhbGxpbmcgcHVzaGRlY2wuCgkoZ3Jva2RlY2xhcmF0b3IpOiBTZXQgREVDTF9FWFRFUk5BTCBmb3IgdmFyaWFibGVzIGJhc2VkIG9uIHVzZSBvZgoJImV4dGVybiIgYW5kIG5vdCBvbiB3aGV0aGVyIHRoZSBkZWNsYXJhdGlvbiBpcyBpbml0aWFsaXplZC4KCjIwMDQtMDctMjUgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGRlYmlhbi5vcmc+CgoJKiBjb25maWcuZ2NjIChpWzM0NTY3XTg2LSotc29sYXJpczIqLCBzcGFyYzY0LSotc29sYXJpczIqKQoJKHNwYXJjLSotc29sYXJpczIqKTogSW5jbHVkZSBzb2wyLm8gYW5kIHNvbDItcHJvdG9zLmguCgkqIGNvbmZpZy9zb2wyLWMuYzogSW5jbHVkZSAidG0uaCIsICJ0bV9wLmgiLCAidG9wbGV2LmgiLAoJImNwcGxpYi5oIiwgImMtcHJhZ21hLmgiLCAiYy1jb21tb24uaCIuCgkoc29sYXJpc19wcmFnbWFfYWxpZ24sIHNvbGFyaXNfcHJhZ21hX2luaXQsIHNvbGFyaXNfcHJhZ21hX2ZpbmkpCgkoc29sYXJpc19yZWdpc3Rlcl9wcmFnbWFzKTogTmV3IGZ1bmN0aW9ucy4KCSogY29uZmlnL3NvbDItcHJvdG9zLmg6IE5ldyBmaWxlLgoJKiBjb25maWcvc29sMi5jOiBOZXcgZmlsZS4KCSogY29uZmlnL3NvbDIuaCAoU09MQVJJU19BVFRSSUJVVEVfVEFCTEUsIEFTTV9ERUNMQVJFX0ZVTkNUSU9OX1NJWkUpCgkoUkVHSVNURVJfVEFSR0VUX1BSQUdNQVMpOiBOZXcgbWFjcm9zLgoJKHNvbGFyaXNfcGVuZGluZ19hbGlnbnMsIHNvbGFyaXNfcGVuZGluZ19pbml0cykKCShzb2xhcmlzX3BlbmRpbmdfZmluaXMpOiBOZXcgdmFyaWFibGVzLgoJKiBjb25maWcvdC1zb2wyIChzb2wyLWMubyk6IFVwZGF0ZSBkZXBlbmRlbmNpZXMuCgkoc29sMi5vKTogTmV3IHJ1bGUuCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoVEFSR0VUX0lOU0VSVF9BVFRSSUJVVEVTKTogRGVmaW5lIGluIHRlcm1zIG9mCglTVUJUQVJHRVRfSU5TRVJUX0FUVFJJQlVURVMuCgkoaXg4Nl9hdHRyaWJ1dGVfdGFibGUpOiBJbmNsdWRlIFNVQlRBUkdFVF9BVFRSSUJVVEVfVEFCTEUuCgkqIGNvbmZpZy9pMzg2L3NvbDIuaCAoU1VCVEFSR0VUX0lOU0VSVF9BVFRSSUJVVEVTKQoJKFNVQlRBUkdFVF9BVFRSSUJVVEVfVEFCTEUsIEFTTV9PVVRQVVRfQ0FMTCk6IERlZmluZS4KCSogY29uZmlnL3NwYXJjL2VsZi5oIChBU01fREVDTEFSRV9GVU5DVElPTl9TSVpFKTogUmVkZWZpbmUuCgkqIGNvbmZpZy9zcGFyYy9zcDY0LWVsZi5oIChBU01fREVDTEFSRV9GVU5DVElPTl9TSVpFKTogUmVkZWZpbmUuCgkqIGNvbmZpZy9zcGFyYy9zb2wyLmggKFNVQlRBUkdFVF9JTlNFUlRfQVRUUklCVVRFUykKCShTVUJUQVJHRVRfQVRUUklCVVRFX1RBQkxFLCBBU01fT1VUUFVUX0NBTEwpOiBEZWZpbmUuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChzcGFyY19hdHRyaWJ1dGVfdGFibGUpOiBOZXcuCgkoVEFSR0VUX0lOU0VSVF9BVFRSSUJVVEVTKTogRGVmaW5lIGluIHRlcm1zIG9mCglTVUJUQVJHRVRfSU5TRVJUX0FUVFJJQlVURVMuCgkoVEFSR0VUX0FUVFJJQlVURV9UQUJMRSk6IERlZmluZSBpZiBTVUJUQVJHRVRfQVRUUklCVVRFX1RBQkxFCglpcyBkZWZpbmVkLgoJKiBkb2MvZXh0ZW5kLnRleGkgKFNvbGFyaXMgUHJhZ21hcyk6IE5ldyBzZWN0aW9uLgoKMjAwNC0wNy0yNSAgQmVybmFyZG8gSW5ub2NlbnRpICA8YmVybmllQGRldmVsZXIuY29tPgoKCSogYy1jb21tb24uYzogUmVuYW1lIGFsbCBpZGVudGlmaWVycyBuYW1lZCBgY2xhc3MnIHRvIGBjbCcuCgkqIGMtY29tbW9uLmg6IExpa2V3aXNlLgoJKiBjLXBhcnNlLmluOiBMaWtld2lzZS4KCSogYy10eXBlY2suYzogTGlrZXdpc2UuCgkqIGdlbm1vZGVzLmM6IExpa2V3aXNlLgoJKiByZWFsLmM6IExpa2V3aXNlLgoJKiByZWFsLmg6IExpa2V3aXNlLgoJKiByZWNvZy5jOiBMaWtld2lzZS4KCSogcmVjb2cuaDogTGlrZXdpc2UuCgkqIHJlZ3JlbmFtZS5jOiBMaWtld2lzZS4KCSogdHJlZS5oOiBMaWtld2lzZS4KCSogYy1jb21tb24uYyAoYnVpbHRpbl9mdW5jdGlvbl8yKTogQ2hhbmdlIHR5cGUgb2YgNXRoIHBhcmFtZXRlciBmcm9tCglpbnQgdG8gZW51bSBidWlsdF9pbl9mdW5jdGlvbi4gQ2hhbmdlIHR5cGUgb2YgOHRoIHBhcmFtZXRlciBmcm9tIGludAoJdG8gYm9vbC4KCSogYy1kZWNsIChidWlsdGluX2Z1bmN0aW9uKTogUmVwbGFjZSBjYWxsIHRvIGdnY19hbGxvY19jbGVhcmVkICgpCgl3aXRoIEdHQ19DTkVXKCkuCgkqIGMtdHlwZWNrLmMgKGNvbnZlcnRfYXJndW1lbnRzKTogQ2hhbmdlIHR5cGUgb2YgZm9ybWFsX3ByZWMgZnJvbQoJaW50IHRvIHVuc2lnbmVkIGludC4KCSogZ2VubW9kZXMuYyAoYmxhbmtfbW9kZSk6IE1ha2UgYSBmZXcgbmVnYXRpdmUgY29uc3RhbnRzIHVuc2lnbmVkLgoJKGNvbXBsZXRlX2FsbF9tb2RlcywgY2FsY193aWRlcl9tb2RlLCBlbWl0X2luc25fbW9kZXNfaCwKCWVtaXRfbW9kZV9uYW1lLCBlbWl0X21vZGVfY2xhc3MsIGVtaXRfbW9kZV9wcmVjaXNpb24sIGVtaXRfbW9kZV9zaXplLAoJZW1pdF9tb2RlX251bml0cywgZW1pdF9tb2RlX3dpZGVyLCBlbWl0X21vZGVfbWFzaywgZW1pdF9tb2RlX2lubmVyLAoJZW1pdF9tb2RlX2Jhc2VfYWxpZ24sIGVtaXRfY2xhc3NfbmFycm93ZXN0X21vZGUpOiBQYXNzIGFuIGludGVnZXIKCWl0ZXJhdG9yIHRvIGZvcl9hbGxfbW9kZXMgKCkgaW5zdGVhZCBvZiBhbiBlbnVtIGJlY2F1c2UgZW51bXMgY2FuJ3QKCWJlIGluY3JlbWVudGVkIGluIEMrKy4KCgoyMDA0LTA3LTI1ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBkZWJpYW4ub3JnPgoKCSogcmVnbW92ZS5jIChvcHRpbWl6ZV9yZWdfY29weV8xKTogRG9uJ3QgdHJ5IHRvIHJlcGxhY2UgY2FsbC11c2VkCgloYXJkIHJlZ2lzdGVycy4KCjIwMDQtMDctMjUgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChnZXRfc3RtdF9vcGVyYW5kcywgZ2V0X2V4cHJfb3BlcmFuZHMpOgoJSGFuZGxlIEFSUkFZX1JBTkdFX1JFRiBsaWtlIEFSUkFZX1JFRi4KCjIwMDQtMDctMjUgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYy10eXBlY2suYyAoZGlnZXN0X2luaXQpOiBEb24ndCBhbGxvdyBhcnJheXMgb2Ygc2lnbmVkIG9yCgl1bnNpZ25lZCB2YXJpYW50cyBvZiB3Y2hhcl90IHRvIGJlIGluaXRpYWxpemVkIGJ5IHdpZGUgc3RyaW5nCgljb25zdGFudHMuICBEbyBhbGxvdyBhcnJheXMgb2YgZW51bWVyYXRlZCB0eXBlcyBjb21wYXRpYmxlIHdpdGgKCXdjaGFyX3QgdG8gYmUgaW5pdGlhbGl6ZWQgYnkgd2lkZSBzdHJpbmcgY29uc3RhbnRzLiAgUmVmaW5lIHRlc3RzCglkaXN0aW5ndWlzaGluZyB3aWRlIGFuZCBuYXJyb3cgc3RyaW5ncyBhbmQgYXJyYXlzLiAgR2l2ZSBzcGVjaWZpYwoJZXJyb3IgZm9yIGFycmF5cyBvZiBvdGhlciBpbnRlZ2VyIHR5cGVzIGluaXRpYWxpemVkIGJ5IHN0cmluZwoJY29uc3RhbnRzLgoJKG91dHB1dF9pbml0X2VsZW1lbnQsIHByb2Nlc3NfaW5pdF9lbGVtZW50KTogQ2hlY2sgZm9yCglJTlRFR1JBTF9UWVBFX1AgcmF0aGVyIHRoYW4ganVzdCBmb3IgSU5URUdFUl9UWVBFIHdoZW4KCWluaXRpYWxpemluZyB3aXRoIHN0cmluZyBjb25zdGFudHMuCgoyMDA0LTA3LTI1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogYy1kZWNsLmMgKHN0YXJ0X2Z1bmN0aW9uKTogU2V0IERFQ0xfQVJUSUZJQ0lBTCBhbmQgREVDTF9JR05PUkVEX1AKCW9uIHRoZSBSRVNVTFRfREVDTC4KCSogY2dyYXBodW5pdC5jIChjZ3JhcGhfYnVpbGRfc3RhdGljX2NkdG9yKTogTGlrZXdpc2UuCgkqIGludGVncmF0ZS5jIChjb3B5X2RlY2xfZm9yX2lubGluaW5nKTogQ29weSBERUNMX0FSVElGSUNJQUwgYW5kCglERUNMX0lHTk9SRURfUCB0byBuZXcgZGVjbC4KCjIwMDQtMDctMjQgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGdlbmVyYWxfeGZtb2RlX29wZXJhbmQpCgkoZGVzdGluYXRpb25feGZtb2RlX29wZXJhbmQpOiBEZWxldGUuCgkqIGNvbmZpZy9pYTY0L2lhNjQuaCAoUFJFRElDQVRFX0NPREVTKTogUmVtb3ZlIHRoZW0uCgkqIGNvbmZpZy9pYTY0L2lhNjQubWQgKCptb3Z4Zl9pbnRlcm5hbCk6IFVzZSBnZW5lcmFsX29wZXJhbmQKCWFuZCBkZXN0aW5hdGlvbl9vcGVyYW5kLgoKMjAwNC0wNy0yNCAgQWxleGFuZGVyIEthYmFldiAgPGthbkBmcmVlYnNkLm9yZz4KCgkqIGNvbmZpZy9pYTY0L2lhNjQuaCAoU1VCVEFSR0VUX0VYVFJBX1NQRUNTKTogRGVmYXVsdCB0byBub3RoaW5nLgoJKEVYVFJBX1NQRUNTKTogVXNlIFNVQlRBUkdFVF9FWFRSQV9TUEVDUy4KCjIwMDQtMDctMjQgIEFsZXhhbmRlciBLYWJhZXYgIDxrYW5AZnJlZWJzZC5vcmc+CgkgICAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbQoKCVBSIDE2Njg0CgkqIGMtZGVjbC5jIChkaWFnbm9zZV9taXNtYXRjaGVkX2RlY2xzKTogRG9uJ3QgaXNzdWUgYQoJcmVkdW5kYW50LWRlY2xhcmF0aW9uIHdhcm5pbmcgdGhlIGZpcnN0IHRpbWUgYSBidWlsdGluIGlzCglkZWNsYXJlZCBleHBsaWNpdGx5LgoKMjAwNC0wNy0yNSAgQmVybmFyZG8gSW5ub2NlbnRpICA8YmVybmllQGRldmVsZXIuY29tPgoKCSogdHJlZS5oIChzdGF0aWNwKTogQ2hhbmdlIHJldHVybiB0eXBlIHRvIGJvb2wuCgoyMDA0LTA3LTI1ICBCZXJuYXJkbyBJbm5vY2VudGkgIDxiZXJuaWVAZGV2ZWxlci5jb20+CgoJKiBjLWNvbW1vbi5jIChjX3N0YXRpY3ApOiBMYXN0IGVwaXNvZGUgb2YgdGhlIHN0YXRpY3Agc2FnYS4KCjIwMDQtMDctMjUgIEJlcm5hcmRvIElubm9jZW50aSAgPGJlcm5pZUBkZXZlbGVyLmNvbT4KCgkqIGMtY29tbW9uLmggKGNfc3RhdGljcCk6IENoYW5nZSByZXR1cm4gdHlwZSBmcm9tIGludCB0byBib29sLgoJKiB0cmVlLmMgKHN0YXRpY3ApOiBMaWtld2lzZS4KCSogbGFuZ2hvb2tzLmggKHN0YXRpY3ApOiBMaWtld2lzZS4KCjIwMDQtMDctMjUgIEJlcm5hcmRvIElubm9jZW50aSAgPGJlcm5pZUBkZXZlbGVyLmNvbT4KCgkqIGxhbmdob29rcy1kZWYuaCAobGhkX3N0YXRpY3ApOiBDaGFuZ2UgcmV0dXJuIHR5cGUgZnJvbSBpbnQgdG8KCWJvb2wgaW4gcHJvdG90eXBlIHRvIG1hdGNoIGRlZmluaXRpb24uCgoyMDA0LTA3LTI1ICBCZXJuYXJkbyBJbm5vY2VudGkgIDxiZXJuaWVAZGV2ZWxlci5jb20+CgoJKiBzeXN0ZW0uaCAoYm9vbCwgdHJ1ZSwgZmFsc2UpOiBEb24ndCByZWRlZmluZSBhcyBwcmVwcm9jZXNzb3IgbWFjcm9zCglpbiBDKysuCgoyMDA0LTA3LTI0ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGV4cG1lZC5jIChpbml0X2V4cG1lZCk6IEEgc2lnbmVkIG1vZHVsdXMgYnkgYSBwb3dlciBvZiB0d28gaXMKCWNvbnNpZGVyZWQgY2hlYXAgaWYgaXRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBmb3VyIGluc3RydWN0aW9ucy4KCjIwMDQtMDctMjUgIEJlcm5hcmRvIElubm9jZW50aSAgPGJlcm5pZUBkZXZlbGVyLmNvbT4KCgkqIGdnYy5oIChHR0NfTkVXLCBHR0NfQ05FVywgR0dDX05FV1ZFQywgR0dDX0NORVdWRUMsIEdHQ19ORVdWQVIsCglHR0NfQ05FV1ZBUik6IE5ldyBtYWNyb3MuCgoyMDA0LTA3LTI1ICBCZXJuYXJkbyBJbm5vY2VudGkgIDxiZXJuaWVAZGV2ZWxlci5jb20+CgoJKiBjLWNvbW1vbi5jOiBDb252ZXJ0IEFUVFJJQlVURV9VTlVTRUQgdG8gQVJHX1VOVVNFRCBpbiBwYXJhbWV0ZXIKCWxpc3RzLgoJKiBjLWRlY2wuYzogTGlrZXdpc2UuCgkqIGMtZm9ybWF0LmM6IExpa2V3aXNlLgoJKiBjLWxleC5jOiBMaWtld2lzZS4KCSogYy1vcHRzLmM6IExpa2V3aXNlLgoJKiBjLXByYWdtYS5jOiBMaWtld2lzZS4KCSogYy10eXBlY2suYzogTGlrZXdpc2UuCgkqIGdlbmNoZWNrLmM6IExpa2V3aXNlLgoJKiBnZW5jb25kaXRpb25zLmM6IExpa2V3aXNlLgoJKiBnZW5jb25maWcuYzogTGlrZXdpc2UuCgkqIGdlbmZsYWdzLmM6IExpa2V3aXNlLgoJKiBnZW5ndHlwZS5jOiBMaWtld2lzZS4KCSogZ2Vuc3VwcG9ydC5jOiBMaWtld2lzZS4KCSogZ2djLW5vbmUuYzogTGlrZXdpc2UuCgkqIGxhbmdob29rcy5jOiBMaWtld2lzZS4KCSogc3RhdGlzdGljcy5oOiBMaWtld2lzZS4KCSogc3R1Yi1vYmpjLmM6IExpa2V3aXNlLgoJKiBqYXZhL2RlY2wuYzogTGlrZXdpc2UuCgoyMDA0LTA3LTI0ICBSb21hbiBaaXBwZWwgIDx6aXBwZWxAbGludXgtbTY4ay5vcmc+CgoJKiBjb25maWcvbTY4ay9tNjhrLmMgKG91dHB1dF9zY2NfZGkpOiBGaXggY29kaW5nIHN0eWxlLgoJKHN5bWJvbGljX29wZXJhbmQpOiBGaXggcHJvdG90eXBlLgoJKiBjb25maWcvbTY4ay9tNjhrLmggKFBSRURJQ0FURV9DT0RFUyk6IEFkZCBzeW1ib2xpY19vcGVyYW5kLgoJKiBjb25maWcvbTY4ay9tNjhrLm1kOiBBZGQgY29uc3RhbnRzIGZvciByZWdpc3RlcnMgYTAgYW5kIHNwIGFuZAoJdXNlIHRoZW0sIGNoYW5nZSBmcm9tIHRoZSAiey4uLn0iIHN5bnRheCB0byB0aGUgc2ltcGxlciB7Li4ufQoJc3ludGF4LgoJKCpjZnY0X2V4dGVuZHFpc2kyKTogRml4IGRlc3RpbmF0aW9uIHByZWRpY2F0ZS4KCSogY29uZmlnL202OGsvbTY4ay1wcm90b3MuaDogUmVtb3ZlIHZhcmlvdXMgZGVjbGFyYXRpb25zIGFsc28KCWdlbmVyYXRlZCB2aWEgUFJFRElDQVRFX0NPREVTLgoKMjAwNC0wNy0yMyAgTWlrZSBTdHVtcCAgPG1yc0BhcHBsZS5jb20+CgoJKiBjLXR5cGVjay5jIChjb252ZXJ0X2Zvcl9hc3NpZ25tZW50KTogVGlnaHRlbmVkIHVwIHBvaW50ZXIKCWNvbnZlcnN0aW9ucyB0aGF0IGRpZmZlciBpbiBzaWduZWRuZXNzLgoKMjAwNC0wNy0yMyAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGdlbm1vZGVzLmMgKG1ha2VfdmVjdG9yX21vZGVzKTogTWFyayB3aXRoIEFUVFJJQlVURV9VTlVTRUQuCgoyMDA0LTA3LTIzICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogdHJlZS5kZWYgKFZJRVdfQ09OVkVSVF9FWFBSKTogQ2hhbmdlIHRvIGNsYXNzICdyJy4KCSogdHJlZS1zc2Etb3BlcmFuZHMuYyAoZ2V0X2V4cHJfb3BlcmFuZHMsIGNhc2UgVklFV19DT05WRVJUX0VYUFIpOiBOZXcuCgoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9jb21wb3VuZF9sdmFsKTogQ2hlY2sgZm9yIG5vIGhhbmRsZWQKCW9wZXJhdGlvbnMsIHJhdGhlciB0aGFuIGNoZWNraW5nIGZvciBleHBsaWNpdCBsaXN0IG9mIG5vZGVzLgoJKGlzX2dpbXBsZV9hZGRyX2V4cHJfYXJnX29yX2luZGlyZWN0KTogTmV3IGZ1bmN0aW9uLgoJKGdpbXBsaWZ5X2FkZHJfZXhwcik6IENhbGwgaXQgYW5kIGhhbmRsZSBJTkRJUkVDVF9SRUY7IHJlbW92ZQoJcmVkdW5kYW50IHNldHRpbmcgb2YgVFJFRV9JTlZBUklBTlQuCgkoZ2ltcGxpZnlfZXhwciwgY2FzZSBWSUVXX0NPTlZFUlRfRVhQUik6IENhbGwgZ2ltcGxpZnlfY29tcG91bmRfbHZhbC4KCSogdHJlZS1naW1wbGUuYyAoaXNfZ2ltcGxlX2FkZHJfZXhwcl9hcmcpOiBDYWxsIGhhbmRsZWRfY29tcG9uZW50X3AuCgoyMDA0LTA3LTIzICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNjY4OAoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTY2ODkKCSogdHJlZS1zc2EtYWxpYXMuYyAoc2V0dXBfcG9pbnRlcnNfYW5kX2FkZHJlc3NhYmxlcyk6IFJlbW92ZQoJdW5uZWNlc3NhcnkgaW5pdGlhbGl6YXRpb24gb2YgJ3RhZycuCgkoZ2V0X3RtdF9mb3IpOiBDaGVjayB0aGF0IHRoZSBuZXcgdHlwZSB0YWcgaGFzIHRoZSBzYW1lIGFsaWFzCglzZXQgYXMgdGhlIHBvaW50ZWQtdG8gdHlwZS4KCShncm91cF9hbGlhc2VzKTogT25seSByZWd1bGFyIHZhcmlhYmxlcyBuZWVkIHRvIGJlIHJlbW92ZWQKCWZyb20gdGhlIGFsaWFzIHNldCBvZiBhIG5hbWUgdGFnLgoJKiB0cmVlLXNzYS1jb3B5LmMgKG1heV9wcm9wYWdhdGVfY29weSk6IERvIG5vdCBhbGxvdyBjb3B5Cglwcm9wYWdhdGlvbiBpZiB0aGUgdHdvIHR5cGVzIGFyZSBub3QgY29tcGF0aWJsZS4KCShtZXJnZV9hbGlhc19pbmZvKTogUmVuYW1lIGZyb20gcmVwbGFjZV9zc2FfbmFtZXNfYW5uLgoJQWRkIG1vcmUgY2hlY2tpbmcuCgkocmVwbGFjZV9leHBfMSk6IElmIGJvdGggYXJndW1lbnRzIGFyZSBTU0FfTkFNRXMsIGNoZWNrIHRoYXQKCXRoZSBwcm9wYWdhdGlvbiBjYW4gYmUgZG9uZS4KCU9ubHkgY2FsbCBtZXJnZV9hbGlhc19pbmZvIG9uIHBvaW50ZXJzLgoJKHByb3BhZ2F0ZV92YWx1ZSk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1jb3B5cmVuYW1lLmM6IEluY2x1ZGUgbGFuZ2hvb2tzLmguCgkoY29weV9yZW5hbWVfcGFydGl0aW9uX2NvYWxlc2NlKTogQ2FsbCByZXBsYWNlX3NzYV9uYW1lX3N5bWJvbAoJdG8gZG8gdGhlIG1lcmdpbmcuCglEbyBub3QgY29hbGVzY2UgdmFyaWFibGVzIHdpdGggaW5jb21wYXRpYmxlIHR5cGVzLgoJKHJlbmFtZV9zc2FfY29waWVzKTogQ2FsbCByZXBsYWNlX3NzYV9uYW1lX3N5bWJvbC4KCSogdHJlZS1zc2EuYyAodmVyaWZ5X3NzYV9uYW1lKTogVmVyaWZ5IHRoYXQgdGhlIFNTQV9OQU1FIGhhcwoJdGhlIHNhbWUgdHlwZSBhcyB0aGUgdW5kZXJseWluZyBfREVDTC4KCSogdHJlZS1zc2FuYW1lcy5jIChyZXBsYWNlX3NzYV9uYW1lX3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCSogdHJlZS5oIChyZXBsYWNlX3NzYV9uYW1lX3N5bWJvbCk6IERlY2xhcmUuCgoyMDA0LTA3LTIzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIGMrKy8xNjI3NwoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9jb25kX2V4cHIpOiBHaW1wbGlmeSBUQVJHRVQgdG8gYSBtaW5fbHZhbDsKCXVuc2hhcmUgaXQgcHJvcGVybHkuCgkoZ2ltcGxpZnlfbW9kaWZ5X2V4cHJfcmhzKTogUHVzaCBhc3NpZ25tZW50IGZyb20gYSBjb25kaXRpb25hbCBpbnRvCgl0aGUgY29uZGl0aW9uYWwgZm9yIGFsbCBub24tcmVnaXN0ZXIgdHlwZXMuCgoyMDA0LTA3LTIzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEpOiBEb24ndCBoYW5kbGUgbm9uLWxvY2FsIHZhcmlhYmxlcy4KCSogZXhwci5oIChmaXhfbGV4aWNhbF9hZGRyKTogUmVtb3ZlLgoJKiBmdW5jdGlvbi5jIChORUVEX1NFUEFSQVRFX0FQKTogUmVtb3ZlLgoJKGZpeF9sZXhpY2FsX2FkZHIpOiBSZW1vdmUuCgkqIHRyZWUtYWxpYXMtY29tbW9uLmMgKGdldF9hbGlhc192YXJfZGVjbCk6IENoZWNrIFRSRUVfU1RBVElDLAoJbm90IG51bGwgZGVjbF9mdW5jdGlvbl9jb250ZXh0LgoJKGNyZWF0ZV9hbGlhc192YXJzKTogTGlrZXdpc2UuCgkqIHRyZWUtY2ZnLmMgKG1ha2VfY3RybF9zdG10X2VkZ2VzKTogRG9uJ3QgY2hlY2sgZm9yIG5vbi1sb2NhbCBsYWJlbHMuCgkoc2ltcGxlX2dvdG9fcCk6IExpa2V3aXNlLgoJKiB0cmVlLWRmYS5jIChhZGRfcmVmZXJlbmNlZF92YXIpOiBEb24ndCBjaGVjayBmb3Igbm9uLWxvY2FsIHZhcmlhYmxlcy4KCSogdHJlZS1zc2EtY2NwLmMgKGdldF9kZWZhdWx0X3ZhbHVlKTogTGlrZXdpc2UuCgkqIHRyZWUtdGFpbGNhbGwuYyAoc3VpdGFibGVfZm9yX3RhaWxfb3B0X3ApOiBMaWtld2lzZS4KCSogdHJlZS5jIChuZWVkc190b19saXZlX2luX21lbW9yeSk6IExpa2V3aXNlLgoJKiB0cmVlLWZsb3ctaW5saW5lLmggKG1heV9iZV9hbGlhc2VkKTogTW92ZS4uLgoJKiB0cmVlLXNzYS1hbGlhcy5jIChtYXlfYmVfYWxpYXNlZCk6IC4uLiBoZXJlLiAgRW5oYW5jZSBjaGVjayBmb3IKCXdoZW4gVFJFRV9TVEFUSUMgdmFyaWFibGVzIG1heSBiZSBhZGRyZXNzYWJsZS4KCjIwMDQtMDctMjQgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogTWFrZWZpbGUuaW4gKHNpdGUuZXhwKTogQWRkIEhPU1RDQyBhbmQgSE9TVENGTEFHUyB0byBzaXRlLmV4cC4KCjIwMDQtMDctMjMgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwcmludC1ydGwuYyAocHJpbnRfcnR4IDxjYXNlICdiJz4pOiBEb24ndCBhdHRlbXB0IHRvIHByaW50CgliaXRtYXAgY29udGVudHMgaWYgR0VORVJBVE9SX0ZJTEUgaXMgZGVmaW5lZC4KCSogTWFrZWZpbGUuaW4gKEJVSUxEX1JUTCk6IFJlbW92ZSAkKEJVSUxEX1BSRUZJWCliaXRtYXAuby4KCSgkKEJVSUxEX1BSRUZJWF8xKWJpdG1hcC5vKTogRGVsZXRlIHJ1bGUuCgoyMDA0LTA3LTIzICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtZGVjbC5jIChzdGFydF9mdW5jdGlvbik6IEZvcm0gY29tcG9zaXRlIHR5cGUgb2YgZnVuY3Rpb24gdHlwZXMKCXJhdGhlciB0aGFuIGNvcHlpbmcgdHlwZSBmcm9tIHByZXZpb3VzIHByb3RvdHlwZSBkZWNsYXJhdGlvbi4KCjIwMDQtMDctMjMgIEphbmlzIEpvaG5zb24gIDxqYW5pczE4N0B1cy5pYm0uY29tPgoKCSogY29uZmlnL3JzNjAwMC9hbHRpdmVjLmggKHZlY19sdmV3eCwgdmVjX2x2ZWh4LCB2ZWNfbHZ3YngpOiBSZW1vdmUKCXRoZSBjb25zdCBxdWFsaWZpZXIgZm9yIHRoZSBzZWNvbmQgYXJndW1lbnQgaW4gdGhlIEMrKyBmdW5jdGlvbnMuCgoJKiBjb25maWcvcnM2MDAwL2FsdGl2ZWMuaCAodmVjX3N0dmV3eCwgdmVjX3N0dmVoeCwgdmVjX3N0dmVieCk6IFVzZQoJc3BlY2lmaWMgcG9pbnRlciB0eXBlcy4KCgkqIGNvbmZpZy9yczYwMDAvYWx0aXZlYy5oICh2ZWNfdmFkZHV3bSk6ICh2ZWNfdmFkZHV3bSwgdmVjX3ZhZGR1aG0sCgl2ZWNfdmFkZHVibSwgdmVjX3ZzdWJ1d20sIHZlY192c3VidWhtLCB2ZWNfdnN1YnVibSk6IEZpeCB0eXBlcyB1c2VkCglmb3IgdmVjdG9yIGJvb2wgYW5kL29yIHZlY3RvciBwaXhlbCwgYWRkIEMrKyBhbmQgQyBtaXNzaW5nIHN1cHBvcnQuCgkodmVjX3ZhZGRzd3MsIHZlY192YWRkc2hzLCB2ZWNfdmFkZHNicywgdmVjX3ZtYXhzdywgdmVjX3ZtYXhzaCwKCXZlY192bWF4c2IsIHZlY192bXJnaHcsIHZlY192bXJnaGgsIHZlY192bXJnaGIsIHZlY192bXJnbHcsIHZlY192bXJnbGgsCgl2ZWNfdm1yZ2xiLCB2ZWNfdm1pbnN3LCB2ZWNfdm1pbnNoLCB2ZWNfdm1pbnNiLCB2ZWNfdnBrdXd1bSwKCXZlY192cGt1aHVtLCB2ZWNfdnNwbHR3LCB2ZWNfdnNwbHRoLCB2ZWNfdnNwbHRiLCB2ZWNfdnN1YnN3cywKCXZlY192c3Vic2hzLCB2ZWNfdnN1YnNicywgdmVjX3Z1cGtsc2gsIHZlY192dXBraHNoLCB2ZWNfdnVwa2xzYik6IEFkZAoJbWlzc2luZyBDKysgYW5kIEMgc3VwcG9ydCBmb3IgdmVjdG9yIGJvb2wgYW5kL29yIHZlY3RvciBwaXhlbC4KCSh2ZWNfdmFkZHV3cywgdmVjX3ZhZGR1aHMsIHZlY192YWRkdWJzLCB2ZWNfdmNtcGVxZnAsIHZlY192Y21wZXF1dywKCXZlY192Y21wZXF1aCwgdmVjX3ZjbXBlcXViLCB2ZWNfdmNtcGd0ZnAsIHZlY192Y21wZ3RzdywgdmVjX3ZjbXBndHV3LAoJdmVjX3ZjbXBndHNoLCB2ZWNfdmNtcGd0dWgsIHZlY192Y21wZ3RzYiwgdmVjX3ZjbXBndHViLCB2ZWNfdm1heHV3LAoJdmVjX3ZtYXh1aCwgdmVjX3ZtYXh1YiwgdmVjX3ZtaW51dywgdmVjX3ZtaW51aCwgdmVjX3ZtaW51YiwKCXZlY192c3VidXdzLCB2ZWNfdnN1YnVocywgdmVjX3ZzdWJ1YnMsIHZlY192dXBraHB4LCB2ZWNfdnVwa2xweCk6IEZpeAoJQysrIGFuZCBDIHR5cGVzIHVzZWQgZm9yIHZlY3RvciBib29sIGFuZC9vciB2ZWN0b3IgcGl4ZWwuCgkodmVjX3N0LCB2ZWNfc3RsKTogQWRkIEMrKyBzdXBwb3J0IGZvciB2ZWN0b3IgcGl4ZWwuCgkodmVjX3VucGFja2gsIHZlY191bnBhY2tsLCB2ZWNfYW55X2dlKTogRml4IEMrKyBzdXBwb3J0IGZvciB2ZWN0b3IgYm9vbC4KCSh2ZWNfYWxsX25lKTogQWRkIEMrKyBzdXBwb3J0IGZvciB2ZWN0b3IgcGl4ZWwuCgoJKiBjb25maWcvcnM2MDAwL2FsdGl2ZWMuaCAodmVjX3ZjbXBndHNoKTogRml4IEMrKyBmdW5jdGlvbiBuYW1lLgoJKHZlY192bXVsZXNiKTogQWRkIG1pc3NpbmcgQysrIGZ1bmN0aW9uLgoJKHZlY19wZXJtKTogRml4IHR5cGUgb2YgdGhpcmQgYXJndW1lbnQgaW4gQysrIGZ1bmN0aW9uLgoJKHZlY192c3VtNHNocyk6IEZpeCBDKysgZnVuY3Rpb24gbmFtZS4KCSh2ZWNfYW55X2dlKTogUmVtb3ZlIEMrKyBmdW5jdGlvbnMgZm9yIHVuc3VwcG9ydGVkIGFyZyBjb21iaW5hdGlvbnMuCgkodmVjX3ZjbXBndHN3LCB2ZWNfdmNtcGd0dXcsIHZlY19taW5zYiwgdmVjX3Ztc3VtbWJtKTogRml4IHRoZQoJYXJndW1lbnQgcGFzc2VkIHRvIHRoZSBlcnJvciBoYW5kbGVyIGluIEMgbWFjcm8uCgkodmVjX25tc3ViKTogUmVtb3ZlIGV4dHJhIHBhcmVucyBhcm91bmQgYXJndW1lbnQgbmFtZXMgaW4gQyBtYWNyby4KCSh2ZWNfcGFja3B4KTogQWRkIG1pc3NpbmcgcGFyZW5zIGluIEMgbWFjcm8uCgoyMDA0LTA3LTIyICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogbWFjaG1vZGUuZGVmOiBSZW1vdmUgdmVjdG9yIG1vZGVzLgoJKiBjb25maWcvYWxwaGEvYWxwaGEtbW9kZXMuZGVmOiBBZGQgc3VwcG9ydGVkIHZlY3RvciBtb2Rlcy4KCSogY29uZmlnL2FybS9hcm0tbW9kZXMuZGVmOiBMaWtld2lzZS4KCSogY29uZmlnL2Zydi9mcnYtbW9kZXMuZGVmOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvaTM4Ni1tb2Rlcy5kZWY6IExpa2V3aXNlLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC1tb2Rlcy5kZWY6IExpa2V3aXNlLgoJKiBjb25maWcvc2gvc2gtbW9kZXMuZGVmOiBMaWtld2lzZS4KCjIwMDQtMDctMjMgIE1hdHRoaWFzIEtsb3NlICA8ZG9rb0BkZWJpYW4ub3JnPgoKCSogaW50bC5jIChnY2NfaW5pdF9saWJpbnRsKTogVXNlIFBBQ0tBR0UgZm9yIHRoZSB0ZXh0IGRvbWFpbi4KCSogY29uZmlndXJlLmFjOiBBZGQgQUNfREVGSU5FX1VOUVVPVEVEIGZvciBQQUNLQUdFLgoJKiBjb25maWcuaDogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBMaWtld2lzZS4KCjIwMDQtMDctMjIgIE1hcmsgTWl0Y2hlbGwgIDxtYXJrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkd2FyZjJvdXQuYyAob3V0cHV0X2NhbGxfZnJhbWVfaW5mbyk6IFNldCBTWU1CT0xfRkxBR19MT0NBTCBvbgoJZ2VuZXJhdGVkIFNZTUJPTF9SRUZzIGZvciBsYWJlbHMuCgkqIGNvbmZpZy9kYXJ3aW4tcHJvdG9zLmggKG1hY2hvcGljX3ZhbGlkYXRlX3N0dWJfb3Jfbm9uX2xhenlfcHRyKToKCUNoYW5nZSBwcm90b3R5cGUuCgkobWFjaG9waWNfc3R1Yl9uYW1lKTogUmVtb3ZlLgoJKG1hY2hvcGljX2luZGlyZWN0aW9uX25hbWUpOiBOZXcgZnVuY3Rpb24uCgkobWFjaG9waWNfbWNvdW50X3N0dWJfbmFtZSk6IExpa2V3aXNlLgoJKG1hY2hvcGljX2NsYXNzaWZ5X25hbWUpOiBSZW1vdmUuCgkobWFjaG9waWNfZnVuY3Rpb25fYmFzZV9zeW0pOiBOZXcgZnVuY3Rpb24uCgkobWFjaHBvaWNfY2xhc3NpZnlfc3ltYm9sKTogTGlrZXdpc2UuCgkobWFjaG9waWNfY2xhc3NpZnlfaWRlbnQpOiBSZW1vdmUuCgkobWFjaG9waWNfZGVmaW5lX2lkZW50KTogTGlrZXdpc2UuCgkobWFjaG9waWNfZGVmaW5lX25hbWUpOiBMaWtld2lzZS4KCShtYWNob3BpY19uYW1lX2RlZmluZWRfcCk6IExpa2V3aXNlLgoJKG1hY2hvcGljX2lkZW50X2RlZmluZWRfcCk6IExpa2V3aXNlLgoJKGRhcndpbl9zdHJpcF9uYW1lX2VuY29kaW5nKTogTGlrZXdpc2UuCgkobWFjaG9waWNfZGVmaW5lX3N5bWJvbCk6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL2Rhcndpbi5jIChoYXNodGFiLmgpOiBJbmNsdWRlLgoJKG1hY2hvcGljX2RlZmluZWRfbGlzdCk6IFJlbW92ZS4KCShtYWNob3BpY19jbGFzc2lmeV9pZGVudCk6IExpa2V3aXNlLgoJKG1hY2hvcGljX2NsYXNzaWZ5X25hbWUpOiBMaWtld2lzZS4KCShtYWNob3BpY19pZGVudF9kZWZpbmVkX3ApOiBMaWtld2lzZS4KCShtYWNob3BpY19kZWZpbmVfaWRlbnQpOiBMaWtld2lzZS4KCShtYWNob3BpY19kZWZpbmVfbmFtZSk6IExpa2V3aXNlLgoJKG1hY2hvcGljX3N5bWJvbF9kZWZpbmVkX3ApOiBOZXcgZnVuY3Rpb24uCgkobWFjaG9waWNfY2xhc3NpZnlfc3ltYm9sKTogTGlrZXdpc2UuCgkobWFjaG9waWNfZGF0YV9kZWZpbmVkX3ApOiBVc2UgbWFjaG9waWNfY2xhc3NpZnlfc3ltYm9sLgoJKG1hY2hvcGljX2RlZmluZV9zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkobWFjaG9waWNfZnVuY3Rpb25fYmFzZV9zeW0pOiBOZXcgZnVuY3Rpb24uCgkobWFjaG9waWNfbm9uX2xhenlfcG9pbnRlcnMpOiBSZW1vdmUuCgkobWFjaG9waWNfbm9uX2xhenlfcHRyX25hbWUpOiBMaWtld2lzZS4KCShtYWNob3BpY19zdHVicyk6IExpa2V3aXNlLgoJKG1hY2hvcGljX3N0dWJfbmFtZSk6IExpa2V3aXNlLgoJKE5PTl9MQVpZX1BPSU5URVJfU1VGRklYKTogTmV3IG1hY3JvLgoJKFNUVUJfU1VGRklYKTogTGlrZXdpc2UuCgkobWFjaG9waWNfaW5kaXJlY3Rpb24pOiBOZXcgc3RydWN0dXJlLgoJKG1hY2hvcGljX2luZGlyZWN0aW9ucyk6IE5ldyB2YXJpYWJsZS4KCShtYWNob3BpY19pbmRpcmVjdGlvbl9oYXNoKTogTmV3IGZ1bmN0aW9uLgoJKG1hY2hvcGljX2luZGlyZWN0aW9uX2VxKTogTGlrZXdpc2UuCgkobWFjaG9waWNfaW5kaXJlY3Rpb25fbmFtZSk6IExpa2V3aXNlLgoJKG1hY2hvcGljX21jb3VudF9zdHViX25hbWUpOiBOZXcgZnVuY3Rpb24uCgkobWFjaG9waWNfdmFsaWRhdGVfc3R1Yl9vcl9ub25fbGF6eV9wb2ludGVyKTogUmVpbXBsZW1lbnQgdG8gdXNlCgloYXNoIHRhYmxlLgoJKG1hY2hvcGljX2luZGlyZWN0X2RhdGFfcmVmZXJlbmNlKTogUmV3b3JrIHRvIHVzZSBuZXcgZnVuY3Rpb25zLgoJKG1hY2hvcGljX2luZGlyZWN0X2NhbGxfdGFyZ2V0KTogTGlrZXdpc2UuCgkobWFjaG9waWNfbGVnaXRpbWl6ZV9waWNfYWRkcmVzcyk6IExpa2V3aXNlLgoJKG1hY2hvcGljX291dHB1dF9pbmRpcmVjdGlvbik6IE5ldyBmdW5jdGlvbi4KCShtYWNob3BpY19maW5pc2gpOiBVc2UgaXQuCgkobWFjaG9waWNfb3BlcmFuZF9wKTogUmV3b3JrIHRvIHVzZSBuZXcgZnVuY3Rpb25zLgoJKGRhcndpbl9lbmNvZGVfc2VjaXRvbl9pbmZvKTogVXNlIFNZTUJPTF9SRUZfRkxBR1MuCgkoZGFyd2luX3N0cmlwX25hbWVfZW5jb2RpbmcpOiBSZW1vdmUuCgkodXBkYXRlX25vbl9sYXp5X3B0cnMpOiBSZW1vdmUuCgkodXBkYXRlX3N0dWJzKTogTGlrZXdpc2UuCgkoZGFyd2luX25vbl9sYXp5X3BjcmVsKTogVXNlIG5ldyBmdW5jdGlvbnMuCgkqIGNvbmZpZy9kYXJ3aW4uaCAoQVNNX0RFQ0xBUkVfT0JKRUNUX05BTUUpOiBMaWtld2lzZS4KCShBU01fT1VUUFVUX0xBQkVMUkVGKTogTGlrZXdpc2UuCgkoQVNNX09VVFBVVF9BTElHTkVEX0RFQ0xfTE9DQUwpOiBMaWtld2lzZS4KCShNQUNIT19TWU1CT0xfRkxBR19WQVJJQUJMRSk6IE5ldyBtYWNyby4KCShNQUNIT19TWU1CT0xfRkxBR19ERUZJTkVEKTogTGlrZXdpc2UuCgkoVEFSR0VUX1NUUklQX05BTUVfRU5DT0RJTkcpOiBEbyBub3QgdXNlCglkYXJ3aW5fc3RyaXBfbmFtZV9lbmNvZGluZy4KCShHRU5fTEFaWV9QVFJfTkFNRV9GT1JfU1lNQk9MKTogRG8gbm90IHVzZQoJZGFyd2luX3N0cmlwX25hbWVfZW5jb2RpbmcuCgkqIGNvbmZpZy9pMzg2L2Rhcndpbi5oIChGVU5DVElPTl9QUk9GSUxFUik6IFVzZQoJbWFjaG9waWNfbWNvdW50X3N0dWJfbmFtZS4KCSogY29uZmlnL2kzODYvaTM4Ni5jICh4ODZfb3V0cHV0X21pX3RodW5rKTogVXNlCgltYWNob3BpY19pbmRpcmVjdGlvbl9uYW1lLCBub3QgbWFjaG9waWNfc3R1Yl9uYW1lLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfbGVnaXRpbWl6ZV9yZWxvYWRfYWRkcmVzcyk6IFVzZQoJbWFjaG9waWNfZnVuY3Rpb25fYmFzZV9zeW0uCgkocHJpbnRfb3BlcmFuZCk6IFVzZSBtYWNob3BpY19jbGFzc2lmeV9zeW1ib2wuCgkocnM2MDAwX2VtaXRfcHJvbG9ndWUpOiBVc2UgbWFjaG9waWNfZnVuY3Rpb25fYmFzZV9zeW0uCgkob3V0cHV0X3Byb2ZpbGVfaG9vayk6IERvIG5vdCB1c2UgbWFjaG9waWNfc3R1Yl9uYW1lLgoJKG1hY2hvX2JyYW5jaF9pc2FsbmRzKTogRG8gbm90IHVzZSBkYXJ3aW5fc3RyaXBfbmFtZV9lbmNvZGluZy4KCjIwMDQtMDctMjIgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCVBSIGMvNzI4NAoJKiBmb2xkLWNvbnN0LmMgKGV4dHJhY3RfbXVsZGl2XzEpOiBEbyBub3QgdHJlYXQgc2lnbmVkIGxlZnQgc2hpZnQKCWFzIG11bHRpcGxpY2F0aW9uLgoKMjAwNC0wNy0yMiAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBkb2MvaW1wbGVtZW50LWMudGV4aTogTmV3IGZpbGUuCgkqIGRvYy9leHRlbmQudGV4aSAoQyBJbXBsZW1lbnRhdGlvbik6IE1vdmUgdG8gdGhlcmUuCgkqIGRvYy9nY2MudGV4aTogSW5jbHVkZSBpbXBsZW1lbnQtYy50ZXhpLgoJKiBNYWtlZmlsZS5pbiAoVEVYSV9HQ0NfRklMRVMpOiBBZGQgaW1wbGVtZW50LWMudGV4aS4KCjIwMDQtMDctMjIgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCSogaW50ZWdyYXRlLmMgKGNvcHlfZGVjbF9mb3JfaW5saW5pbmcpOiBSZW1vdmUgaW52aXNpYmxlIHJlZmVyZW5jZQoJaGFuZGxpbmcuCgkqIHRyZWUtaW5saW5lLmMgKHNldHVwX29uZV9wYXJhbWV0ZXIpOiBMaWtld2lzZS4KCjIwMDQtMDctMjIgIEJyaWFuIEJvb3RoICA8YmJvb3RoQHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1jY3AuYyAobGF0dGljZXZhbHVlKTogQWRkIFVOS05PV05fVkFMLgoJKHN1YnN0aXR1dGVfYW5kX2ZvbGQpOiBQcm9waWdhdGUgaW50byBWVVNFIG9wZXJhbmRzIHdoZW4gcG9zc2libGUuCgkodmlzaXRfcGhpX25vZGUpOiBIYW5kbGUgVU5LTk9XTl9WQUwgbGF0dGljZXZhbHVlLgoJKGNwX2xhdHRpY2VfbWVldCk6IEhhbmRsZSBtZXJnaW5nIG9mIGxhdHRpY2V2YWx1ZXMgd2hlbgoJVU5LTk9XTl9WQUwgaXMgcHJlc2VudC4KCSh2aXNpdF9zdG10KTogVmlzaXQgYXNzaWdubWVudHMgd2l0aCBWX01VU1RfREVGcy4KCSh2aXNpdF9hc3NpZ25tZW50KTogR2F0aGVyIGNjcCBpbmZvcm1hdGlvbiBmb3IgVl9NVVNUX0RFRiBvcGVyYW5kcy4KCShjY3BfZm9sZCk6IERlYWwgd2l0aCBSSFMnIHRoYXQgYXJlIGNvbnN0YW50IGFuZCB2aXJ0dWFsLgoJKGV2YWx1YXRlX3N0bXQpOiBIYW5kbGUgVU5LTk9XTl9WQUwgbGlrZWx5IHZhbHVlcy4KCShkdW1wX2xhdHRpY2VfdmFsdWUpOiBEdW1wIFVOS05PV05fVkFMIGxhdHRpY2V2YWx1ZXMuCgkoaW5pdGlhbGl6ZSk6IE1hcmsgc3RhdGVtZW50cyB3aXRoIFZfTVVTVF9ERUZzIGFzIFZBUllJTkcgb25seSBpZiB0aGUKCVZfTVVTVF9ERUYgb3BlcmFuZCBpcyBWQVJZSU5HLiBGaXggY29tbWVudCBhbmQgaW5jbHVkZSBWT1BTIHdoZW4KCWNvbXB1dGluZyBpbW1lZGlhdGUgdXNlcy4KCShzZXRfbGF0dGljZV92YWx1ZSk6IERpc2FsbG93IGEgVU5LTk9XTl9WQUwtPlVOREVGSU5FRCBzdGF0ZQoJdHJhbnNpdGlvbi4KCShyZXBsYWNlX3Z1c2VfaW4pOiBOZXcgZnVuY3Rpb24uCgkobGlrZWx5X3ZhbHVlKTogQWRkIGNoZWNrIG9mIHZ1c2Ugb3BlcmFuZHMuCgkoZ2V0X2RlZmF1bHRfdmFsdWUpOiBTZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdmlydHVhbGx5IGRlZmluZWQKCXZhcmlhYmxlcyB0byBVS05PV05fVkFMIGluc3RlYWQgb2YgVkFSWUlORy4KCjIwMDQtMDctMjIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBleHByLmMgKGVtaXRfcHVzaF9pbnNuKTogRG9uJ3QgdXNlIHNldF9tZW1fYXR0cmlidXRlcy4KCjIwMDQtMDctMjIgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1saXZlLmMgKGNyZWF0ZV9zc2FfdmFyX21hcCk6IEF2b2lkIGRlZmluZWQtYnV0LW5vdC11c2VkCgl2YXJpYWJsZXMgZHVlIHRvIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLgoKMjAwNC0wNy0yMiAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLWludG8tc3NhLmMgKHNldF9saXZlaW5fYmxvY2spOiBGaXggdHlwbyBpbiBjb21tZW50LgoJKHJld3JpdGVfc3NhX2ludG9fc3NhKTogU3RhcnQgaXRlcmF0aW5nIG92ZXIgU1NBIG5hbWVzIGF0IDEuCglSZWxlYXNlIFNTQSBuYW1lcyB0aGF0IGhhdmUgYmVlbiByZS1yZW5hbWVkLgoJKiB0cmVlLXBoaW5vZGVzLmMgKG1ha2VfcGhpX25vZGUpOiBTZXQgc2FtZSBUUkVFX1RZUEUgYXMgdGhlCgl2YXJpYWJsZS4KCSogdHJlZS1zc2EtYWxpYXMuYyAoaW5pdF9hbGlhc19pbmZvKTogSWYgYWxpYXNlcyBoYXZlIGJlZW4KCWNvbXB1dGVkIGJlZm9yZSwgY2xlYXIgZXhpc3RpbmcgYWxpYXMgaW5mb3JtYXRpb24uCgkoY3JlYXRlX25hbWVfdGFncyk6IERvIG5vIGZpeHVwIFBUX0FOWVRISU5HIHBvaW50ZXJzLgoJSWYgdGhlIG5ldyBuYW1lIHRhZyBmb3IgYSBwb2ludGVyIGlzIGRpZmZlcmVudCB0aGFuIHRoZSBvbmUgaXQKCWhhZCBiZWZvcmUsIG1hcmsgdGhlIG9sZCB0YWcgZm9yIHJlbmFtaW5nLgoJKHJlcGxhY2VfbWF5X2FsaWFzKTogTmV3IGZ1bmN0aW9uLgoJKGdyb3VwX2FsaWFzZXMpOiBDYWxsIGl0LgoJKHNldHVwX3BvaW50ZXJzX2FuZF9hZGRyZXNzYWJsZXMpOiBBbHdheXMgY2FsbCBnZXRfdG10X2Zvci4KCShtYXliZV9jcmVhdGVfZ2xvYmFsX3Zhcik6IERvbid0IGNyZWF0ZSAuR0xPQkFMX1ZBUiBtb3JlIHRoYW4KCW9uY2UuCgkoc2V0X3B0X2FueXRoaW5nKTogTmV3IGxvY2FsIGZ1bmN0aW9uLgoJKHNldF9wdF9tYWxsb2MpOiBOZXcgbG9jYWwgZnVuY3Rpb24uCgkobWVyZ2VfcG9pbnRlZF90b19pbmZvKTogRG9uJ3QgbWVyZ2UgcG9pbnRlZC10byB2YXJpYWJsZXMgZnJvbQoJdGhlIG9yaWdpbmFsIHBvaW50ZXIgaWYgdGhlIGRlc3RpbmF0aW9uIGlzIHBvaW50aW5nIHRvIGFuCgl1bmtub3duIGxvY2F0aW9uLgoJKGFkZF9wb2ludGVkX3RvX2V4cHIpOiBDYWxsIHNldF9wdF9hbnl0aGluZyBhbmQgc2V0X3B0X21hbGxvYy4KCShhZGRfcG9pbnRlZF90b192YXIpOiBEbyBub3QgYWRkIGEgdmFyaWFibGUgdG8gdGhlIHBvaW50cy10bwoJc2V0IGlmIHRoZSBwb2ludGVyIGlzIGFscmVhZHkgcG9pbnRpbmcgdG8gYW55d2hlcmUuCgkoY29sbGVjdF9wb2ludHNfdG9faW5mb19yKTogSWYgdGhlIGRlZmluaW5nIHN0YXRlbWVudCBpcyBhIFBISQoJbm9kZSwgb25seSBtZXJnZSBwb2ludGVkLXRvIGluZm9ybWF0aW9uIGlmIHRoZSBhcmd1bWVudCBoYXMKCWFscmVhZHkgYmVlbiB2aXNpdGVkLgoJKGdldF90bXRfZm9yKTogT25seSBjcmVhdGUgYSBuZXcgdGFnIGlmIHRoZSBwb2ludGVyIGRpZG4ndAoJaGF2ZSBvbmUgYWxyZWFkeS4KCShkdW1wX2FsaWFzX2luZm8pOiBFbWl0IG1vcmUgaW5mb3JtYXRpb24uCgkoZHVtcF9wb2ludHNfdG9faW5mb19mb3IpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtZG9tLmMgKHJlZGlyZWN0X2VkZ2VzX2FuZF91cGRhdGVfc3NhX2dyYXBoKTogRG9uJ3QKCXRyeSB0byBnZXQgdGhlIGFubm90YXRpb24gb2YgYW4gU1NBX05BTUUuCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGFkZF9zdG10X29wZXJhbmQpOiBPbmx5IGNoZWNrIGZvciBlbXB0eQoJYWxpYXMgc2V0cyB3aGVuIGNoZWNraW5nIGlzIGVuYWJsZWQuCgkqIHRyZWUtc3NhLXByZS5jIChuZWVkX2VoX2NsZWFudXApOiBOZXcgbG9jYWwgdmFyaWFibGUuCgkoZWxpbWluYXRlKTogTWFyayBiYXNpYyBibG9ja3MgdGhhdCB3aWxsIG5lZWQKCUVIIGluZm9ybWF0aW9uIGNsZWFuZWQgdXAuCgkoaW5pdF9wcmUpOiBTcGxpdCBFTlRSWV9CTE9DSy0+MCBpZiBibG9jayAwIGhhcyBtb3JlIHRoYW4gb25lCglwcmVkZWNlc3Nvci4KCUluaXRpYWxpemUgbmVlZF9laF9jbGVhbnVwLgoJKGZpbmlfcHJlKTogQ2FsbCB0cmVlX3B1cmdlX2FsbF9kZWFkX2VoX2VkZ2VzIGFuZAoJY2xlYW51cF90cmVlX2NmZyBpZiBuZWVkZWQuCglGcmVlIG5lZWRfZWhfY2xlYW51cC4KCSogdHJlZS1zc2EuYyAodmVyaWZ5X3NzYV9uYW1lKTogTmV3IGZ1bmN0aW9uLgoJKHZlcmlmeV9kZWYpOiBDYWxsIGl0LgoJUmUtYXJyYW5nZSB0byBhdm9pZCBwcmludGluZyB0b28gbWFueSBlcnJvciBtZXNzYWdlcy4KCSh2ZXJpZnlfdXNlKTogTGlrZXdpc2UuCgkodmVyaWZ5X3BoaV9hcmdzKTogTGlrZXdpc2UuCgkodmVyaWZ5X2Zsb3dfaW5zZW5zaXRpdmVfYWxpYXNfaW5mbyk6IE5ldyBmdW5jdGlvbi4KCSh2ZXJpZnlfZmxvd19zZW5zaXRpdmVfYWxpYXNfaW5mbyk6IE5ldyBmdW5jdGlvbi4KCSh2ZXJpZnlfYWxpYXNfaW5mbyk6IE5ldyBmdW5jdGlvbi4KCSh2ZXJpZnlfc3NhKTogQ2FsbCB2ZXJpZnlfYWxpYXNfaW5mby4KCUNsZWFyIFRSRUVfVklTSVRFRCBvbiBhbGwgdGhlIFNTQV9OQU1FcyBiZWZvcmUgc2Nhbm5pbmcgdGhlCglwcm9ncmFtLgoJUmUtYXJyYW5nZSB0byBhdm9pZCBwcmludGluZyB0b28gbWFueSBlcnJvciBtZXNzYWdlcy4KCSogdHJlZS1zc2FuYW1lcy5jIChtYWtlX3NzYV9uYW1lKTogQ2xlYXIKCVNTQV9OQU1FX0lOX0ZSRUVfTElTVC4KCShyZWxlYXNlX3NzYV9uYW1lKTogTmV2ZXIgcmVsZWFzZSBhIGRlZmF1bHQgZGVmaW5pdGlvbi4KCShyZWxlYXNlX2RlZnMpOiBOZXcgZnVuY3Rpb24uCgkqIHRyZWUuaDogRGVjbGFyZSBpdC4KCSogdHJlZS1zc2EtZGNlLmMgKHJlbW92ZV9kZWFkX3N0bXQpOiBDYWxsIGl0LgoKMjAwNC0wNy0yMiAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS5jICh3YWxrX3VzZV9kZWZfY2hhaW5zXzEpOiBBZGQgbmV3IGFyZ3VtZW50IElTX0RGUy4KCUlmIHRydWUsIGRvIGEgZGVwdGgtZmlyc3Qgc2VhcmNoLiAgRG8gYSBicmVhZGh0LWZpcnN0IHNlYXJjaCwKCW90aGVyd2lzZS4KCSh3YWxrX3VzZV9kZWZfY2hhaW5zKTogQWRkIG5ldyBhcmd1bWVudCBJU19ERlMuCglVcGRhdGUgYWxsIHVzZXJzLgoJKiB0cmVlLWZsb3cuaCAod2Fsa191c2VfZGVmX2NoYWlucyk6IFVwZGF0ZSBwcm90b3R5cGUuCgoyMDA0LTA3LTIyICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBheGlzLmNvbT4KCgkqIGNvbmZpZy9jcmlzL2NyaXMubWQ6IFR3ZWFrIGZvcm1hdHRpbmcuCgkoYXNyYW5kYiwgYXNyYW5kdywgbHNyYW5kYiwgbHNyYW5kdywgbW92ZXJzaWRlcWksIG1vdmVtc2lkZXFpKQoJKG1vdmVyMnNpZGUsIG1vdmVyc2lkZSwgbW92ZW1zaWRlLCBtb3ZlaSwgb3AzLCBhbmR1KTogUmVwbGFjZQoJbGl2ZSBkZWZpbmVfcGVlcGhvbGU6cyB3aXRoIGRlZmluZV9wZWVwaG9sZTIgbmVhci1lcXVpdmFsZW50cy4KCURlbGV0ZSB0aGUgcmVzdC4KCSgiKm1vdl9zaWRlc2lzZl9iaWFwIik6IFJlbmFtZSBmcm9tICIqbW92X3NpZGVzaV9iaWFwIi4gIE1hdGNoIGFsbAoJd29yZC1zaXplIG1vZGVzLgoJKCIqbW92X3NpZGVzaXNmIiwgIiptb3Zfc2lkZXNpc2ZfYmlhcF9tZW0iLCAiKm1vdl9zaWRlc2lzZl9tZW0iKToKCVNpbWlsYXIgZm9yICIqbW92X3NpZGVzaSIsICIqbW92X3NpZGVzaV9iaWFwX21lbSIgYW5kCgkiKm1vdl9zaWRlc2lfbWVtIiByZXNwZWN0aXZlbHkuCgoyMDA0LTA3LTIyICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogdHJlZS1jZmcuYyAoZ2ltcGxpZnlfdmFsKTogTW92ZSBmcm9tIHRyZWUtY29tcGxleC5jLgoJKGdpbXBsaWZ5X2J1aWxkMSk6IE1vdmUgZnJvbSB0cmVlLWNvbXBsZXguYyBkb191bm9wLgoJKGdpbXBsaWZ5X2J1aWxkMik6IE1vdmUgZnJvbSB0cmVlLWNvbXBsZXguYyBkb19iaW5vcC4KCShnaW1wbGlmeV9idWlsZDMpOiBOZXcuCgkqIHRyZWUtY29tcGxleC5jIChnaW1wbGlmeV92YWwsIGRvX3Vub3AsIGRvX2Jpbm9wKTogUmVtb3ZlLgoJQWRqdXN0IHRocm91Z2hvdXQgdG8gY2FsbCB0aGUgZnVuY3Rpb25zIGFib3ZlLgoJKiB0cmVlLWZsb3cuaDogRGVjbGFyZSB0aGUgZnVuY3Rpb25zIGFib3ZlLgoJKiB0cmVlLW5lc3RlZC5jIChnaW1wbGlmeV92YWwpOiBSZW5hbWUgdG8uLi4KCSh0c2lfZ2ltcGxpZnlfdmFsKTogLi4uIHRoaXMuCgoJKiBNYWtlZmlsZS5pbiAodHJlZV9jb21wbGV4Lm8pOiBVcGRhdGUgZGVwZW5kZW5jaWVzLgoJKHN0b3ItbGF5b3V0Lm8pOiBEZXBlbmQgb24gcmVncy5oLgoJKiBjLWNvbW1vbi5jIChoYW5kbGVfdmVjdG9yX3NpemVfYXR0cmlidXRlKTogVXBkYXRlIGZvcgoJdmVjdG9yIHR5cGVzIHdpdGhvdXQgY29ycmVzcG9uZGluZyB2ZWN0b3IgbW9kZXMuCgkqIGV4cHIuYyAoZXhwYW5kX2V4cHIpOiBUcmVhdCBWRUNUT1JfQ1NUJ3MgbGlrZSBDT05TVFJVQ1RPUlMgaWYKCWEgY29ycmVzcG9uZGluZyB2ZWN0b3IgbW9kZSBpcyBub3QgYXZhaWxhYmxlLgoJKiBwcmludC10cmVlLmMgKHByaW50X25vZGUpOiBQcmludCBudW5pdHMgZm9yIHZlY3RvciB0eXBlcwoJKiByZWdjbGFzcy5jIChoYXZlX3JlZ3Nfb2ZfbW9kZSk6IE5ldy4KCShpbml0X3JlZ19zZXRzXzEpOiBJbml0aWFsaXplIGl0IGFuZCB1c2UgaXQgaW5zdGVhZAoJb2YgYWxsb2NhdGFibGVfcmVnc19vZl9tb2RlLgoJKiByZWdzLmggKGhhdmVfcmVnc19vZl9tb2RlKTogRGVjbGFyZSBpdC4KCSogc3Rvci1sYXlvdXQuYyAobGF5b3V0X3R5cGUpOiBQaWNrIGEgbW9kZSBmb3IgdmVjdG9yIHR5cGVzLgoJKiB0cmVlLWNvbXBsZXguYyAoYnVpbGRfd29yZF9tb2RlX3ZlY3Rvcl90eXBlLCB0cmVlX3ZlY19leHRyYWN0LAoJYnVpbGRfcmVwbGljYXRlZF9jb25zdCwgZG9fdW5vcCwgZG9fYmlub3AsIGRvX3BsdXNfbWludXMsCglkb19uZWdhdGUsIGV4cGFuZF92ZWN0b3JfcGllY2V3aXNlLCBleHBhbmRfdmVjdG9yX3BhcmFsbGVsLAoJZXhwYW5kX3ZlY3Rvcl9hZGRpdGlvbiwgZXhwYW5kX3ZlY3Rvcl9vcGVyYXRpb25zXzEsCglleHBhbmRfdmVjdG9yX29wZXJhdGlvbnMsIHRyZWVfbG93ZXJfb3BlcmF0aW9ucywKCXBhc3NfbG93ZXJfdmVjdG9yX3NzYSwgcGFzc19wcmVfZXhwYW5kKTogTmV3LgoJKGV4cGFuZF9jb21wbGV4X29wZXJhdGlvbnMsIHBhc3NfbG93ZXJfY29tcGxleCk6IFJlbW92ZS4KCSogdHJlZS1vcHRpbWl6ZS5jIChpbml0X3RyZWVfb3B0aW1pemF0aW9uX3Bhc3Nlcyk6IEFkanVzdAoJcGFzcyBvcmRlcmluZyBmb3IgY2hhbmdlcyBpbiB0cmVlLWNvbXBsZXguYy4KCSogdHJlZS1wYXNzLmg6IERlY2xhcmUgbmV3IHBhc3Nlcy4KCSogdHJlZS5jIChmaW5pc2hfdmVjdG9yX3R5cGUpOiBSZW1vdmUuCgkobWFrZV92ZWN0b3JfdHlwZSk6IE5ldy4KCShidWlsZF92ZWN0b3JfdHlwZV9mb3JfbW9kZSwgYnVpbGRfdmVjdG9yX3R5cGUpOiBSZXdyaXR0ZW4uCgkqIHRyZWUuZGVmIChWRUNUT1JfVFlQRSk6IERvY3VtZW50IHdoZXJlIHRoZSBudW1iZXIgb2YKCXN1YnBhcnRzIGlzIHN0b3JlZC4KCSogdHJlZS5oIChUWVBFX1ZFQ1RPUl9TVUJQQVJUUyk6IFVzZSBUWVBFX1BSRUNJU0lPTiBmaWVsZC4KCShtYWtlX3ZlY3Rvcik6IFJlbW92ZSBkZWNsYXJhdGlvbi4KCjIwMDQtMDctMjEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBnaW1wbGUtbG93LmMgKGV4cGFuZF92YXJfcCk6IERvbid0IGxvb2sgYXQgVFJFRV9BRERSRVNTQUJMRSwKCVRSRUVfVEhJU19WT0xBVElMRSwgbWF5X2FsaWFzZXMsIG9yIG9wdGltaXphdGlvbiBsZXZlbC4KCShyZW1vdmVfdXNlbGVzc192YXJzKTogRHVtcCBkZWJ1Z2dpbmcgaW5mby4KCShleHBhbmRfdXNlZF92YXJzKTogTW92ZSAuLi4KCSogY2ZnZXhwYW5kLmMgKGV4cGFuZF91c2VkX3ZhcnMpOiAuLi4gaGVyZS4gIE1ha2Ugc3RhdGljLgoJKiB0cmVlLWZsb3ctaW5saW5lLmggKHNldF9pc191c2VkKTogTmV3LgoJKHNldF9kZWZhdWx0X2RlZik6IFVzZSBnZXRfdmFyX2Fubi4KCSogdHJlZS1mbG93Lmg6IFVwZGF0ZSBkZWNscy4KCSogdHJlZS1zc2EtbGl2ZS5jIChtYXJrX2FsbF92YXJzX3VzZWRfMSwgbWFya19hbGxfdmFyc191c2VkKTogTmV3LgoJKGNyZWF0ZV9zc2FfdmFyX21hcCk6IFVzZSBpdC4KCSogdHJlZS1zc2EuYyAoc2V0X2lzX3VzZWQpOiBSZW1vdmUuCgoyMDA0LTA3LTIyICBCZW4gRWxsaXN0b24gIDxiamVAYXUuaWJtLmNvbT4KCgkqIGdkYmluaXQuaW46IFNldCBhIGJyZWFrcG9pbnQgb24gaW50ZXJuYWxfZXJyb3IuCgoyMDA0LTA3LTIxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY2ZnZXhwYW5kLmMgKGV4cGFuZF9naW1wbGVfdGFpbGNhbGwpOiBGaXggY2FzZSB3aGVyZSB3ZSBuZWVkCgl0byBjcmVhdGUgYSBuZXcgYmFzaWMgYmxvY2suCgoyMDA0LTA3LTIyICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCglQUiBjLzE1MDUyCgkqIGMtZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IE9ubHkgcGVkd2FybiBmb3IgcXVhbGlmaWVkIHZvaWQKCXJldHVybiB0eXBlIG9uIGZ1bmN0aW9uIGRlZmluaXRpb25zLiAgTW92ZSBvdGhlciB3YXJuaW5ncyBmb3IKCXF1YWxpZmllZCByZXR1cm4gdHlwZSB0byAtV3JldHVybi10eXBlLiAgRG8gbm90IGNvbmRpdGlvbiBhbnkgc3VjaAoJd2FybmluZ3Mgb24gLXBlZGFudGljLiAgVXBkYXRlIGNvbW1lbnRzLgoJKHN0YXJ0X2Z1bmN0aW9uKTogT25seSBjb3B5IGZ1bmN0aW9uIHR5cGUgZnJvbSBwcmV2aW91cyBwcm90b3R5cGUKCWRlY2xhcmF0aW9uIGlmIHJldHVybiB0eXBlcyBhcmUgY29tcGF0aWJsZS4KCSogYy10eXBlY2suYyAoZnVuY3Rpb25fdHlwZXNfY29tcGF0aWJsZV9wKTogRG9uJ3QgY29uZGl0aW9uCgl3YXJuaW5nIGZvciBpbmNvbXBhdGliaWxpdHkgb2Ygdm9sYXRpbGUgcXVhbGlmaWVycyBvbiB0aGUgcmV0dXJuCgl0eXBlIG9uIC1wZWRhbnRpYy4gIFVwZGF0ZSBjb21tZW50LgoJKiBkb2MvaW52b2tlLnRleGkgKC1XcmV0dXJuLXR5cGUsIC1XZXh0cmEpOiBVcGRhdGUuCgoyMDA0LTA3LTIyICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGMtdHlwZWNrLmMgKHNldF9pbml0X2luZGV4KTogUmVxdWlyZSBkZXNpZ25hdG9yIHRvIGJlIG9mIGludGVnZXIKCXR5cGUuCgoyMDA0LTA3LTIyICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCglQUiBjLzExMjUwCgkqIGMtcGFyc2UuaW4gKGluaXQpOiBDaGFuZ2UgdG8gZXhwcnR5cGUuCgkocHJpbWFyeSk6IFNldCBvcmlnaW5hbF9jb2RlIGZvciBTVFJJTkcgdG8gU1RSSU5HX0NTVC4KCUNhbGwgbWF5YmVfd2Fybl9zdHJpbmdfaW5pdCBmb3IgY29tcG91bmQgbGl0ZXJhbHMuCgkoaW5pdGRjbCwgbm90eXBlX2luaXRkY2wpOiBDYWxsIG1heWJlX3dhcm5fc3RyaW5nX2luaXQuCgkoaW5pdHZhbCk6IFVwZGF0ZS4KCSogYy10cmVlLmggKG1heWJlX3dhcm5fc3RyaW5nX2luaXQpOiBOZXcuCgkocG9wX2luaXRfbGV2ZWwsIHByb2Nlc3NfaW5pdF9lbGVtZW50KTogVXNlIHN0cnVjdCBjX2V4cHIuCgkoc3RydWN0IGNfZXhwcik6IFVwZGF0ZSBjb21tZW50LgoJKiBjLXR5cGVjay5jIChtYXliZV93YXJuX3N0cmluZ19pbml0KTogTmV3IGZ1bmN0aW9uLgoJKGRpZ2VzdF9pbml0KTogQ2FsbCBpdC4gIEFkZGl0aW9uYWwgcGFyYW1ldGVyIHN0cmljdF9zdHJpbmcuICBBbGwKCWNhbGxlcnMgY2hhbmdlZC4KCShvdXRwdXRfaW5pdF9lbGVtZW50KTogTGlrZXdpc2UuCgkoc3RydWN0IGNvbnN0cnVjdG9yX3N0YWNrKTogVXNlIHN0cnVjdCBjX2V4cHIgZm9yCglyZXBsYWNlbWVudF92YWx1ZS4KCShyZWFsbHlfc3RhcnRfaW5jcmVtZW50YWxfaW5pdCwgcHVzaF9pbml0X2xldmVsKTogVXBkYXRlLgoJKHBvcF9pbml0X2xldmVsKTogVXBkYXRlLiAgUmV0dXJuIHN0cnVjdCBjX2V4cHIuCgkocHJvY2Vzc19pbml0X2xldmVsKTogVXBkYXRlLiAgVGFrZSBzdHJ1Y3QgY19leHByIGFyZ3VtZW50LgoKMjAwNC0wNy0yMSAgRGF2aWQgUy4gTWlsbGVyICA8ZGF2ZW1AbnV0cy5kYXZlbWxvZnQubmV0PgoKCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKHNwYXJjX3J0eF9jb3N0cyk6IEZpeCB0eXBvIGluIHByZXZpb3VzCgljb21taXQuCgoyMDA0LTA3LTIxICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGJ1aWx0aW5zLmMgKGV4cGFuZF9idWlsdGluX3NldGptcF9yZWNlaXZlcik6IEZpeCBjb21tZW50IGZvciBjb2RlCglyZW1vdmFsLgoJKiBjLWRlY2wuYyAocG9wX3Njb3BlKTogRGl0dG8uCgkqIGNhbGxzLmMgKGV4cGFuZF9jYWxsKTogUmVtb3ZlIGNhbGwgdG8gY3VycmVudF9uZXN0aW5nX2xldmVsLAoJdXBkYXRlIGNvbW1lbnQgYWNjb3JkaW5nbHkuIFJlbW92ZSBjYWxscyB0byBleHBhbmRfc3RhcnRfdGFyZ2V0X3RlbXBzCglhbmQgZXhwYW5kX2VuZF90YXJnZXRfdGVtcHMuCgkqIGNmZ2V4cGFuZC5jIChjb25zdHJ1Y3RfaW5pdF9ibG9jayk6IFJlbW92ZSBjYWxsIHRvCglleHBhbmRfc3RhcnRfYmluZGluZ3NfYW5kX2Jsb2NrLgoJKGNvbnN0cnVjdF9leGl0X2Jsb2NrKTogUmVtb3ZlIGNhbGwgdG8gZXhwYW5kX2VuZF9iaW5kaW5ncy4KCSogZXhwci5jIChzYWZlX2Zyb21fcCk6IFJlbW92ZSBCSU5EX0VYUFIgaGFuZGxpbmcuCgkoZXhwYW5kX2V4cHJfcmVhbF8xKTogRGl0dG8uIEZpeCBmb3JtYXR0aW5nLgoJKGV4cGFuZF92YXJzKTogRGVsZXRlLgoJKiBzdG10LmMgKFBPUFNUQUNLKTogUmVtb3ZlIGJsb2NrX3N0YWNrLgoJKHN0bXRfc3RhdHVzKTogUmVtb3ZlIHhfYmxvY2tfc3RhY2suCgkoYmxvY2tfc3RhY2spOiBEZWxldGUuCgkoZXhwYW5kX3N0YXJ0X2JpbmRpbmdzX2FuZF9ibG9jayk6IERpdHRvLgoJKGV4cGFuZF9zdGFydF90YXJnZXRfdGVtcHMpOiBEaXR0by4KCShleHBhbmRfZW5kX3RhcmdldF90ZW1wcyk6IERpdHRvLgoJKGN1cnJlbnRfbmVzdGluZ19sZXZlbCk6IERpdHRvLgoJKHdhcm5fYWJvdXRfdW51c2VkX3ZhcmlhYmxlcyk6IERpdHRvLgoJKGV4cGFuZF9lbmRfYmluZGluZ3MpOiBEaXR0by4KCSogdHJlZS5oOiBSZW1vdmUgZGVjbGFyYXRpb25zIGZvciBhYm92ZS4KCjIwMDQtMDctMjEgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIHJ0bC5oIChpbnNuX25vdGUpOiBSZW1vdmUgTk9URV9JTlNOX1BSRURJQ1RJT04uCgkqIHJ0bC5jIChub3RlX2luc25fbmFtZSk6IExpa2V3aXNlLgoJKiBwcmludC1ydGwuYyAocHJpbnRfcnR4KTogRG9uJ3QgcHJpbnQgaXQuCgkqIGNmZ3J0bC5oIChjYW5fZGVsZXRlX25vdGVfcCk6IERvbid0IGhhbmRsZSBpdC4KCShydGxfZGVsZXRlX2Jsb2NrKTogTGlrZXdpc2UuCgkqIHBhc3Nlcy5jIChyZXN0X29mX2hhbmRsZV9ndWVzc19icmFuY2hfcHJvYik6IFJlbW92ZS4KCShyZXN0X29mX2NvbXBpbGF0aW9uKTogRG9uJ3QgY2FsbCBpdC4KCSogcHJlZGljdC5jIChwcm9jZXNzX25vdGVfcHJlZGljdGlvbnMsIHByb2Nlc3Nfbm90ZV9wcmVkaWN0aW9uLAoJbm90ZV9wcmVkaWN0aW9uX3RvX2JyX3Byb2IpOiBSZW1vdmUuCgkqIGJhc2ljLWJsb2NrLmMgKG5vdGVfcHJlZGljdGlvbl90b19icl9wcm9iKTogUmVtb3ZlIHByb3RvdHlwZS4KCSogc3RtdC5jIChyZXR1cm5fcHJlZGljdGlvbik6IFJlbW92ZS4KCShleHBhbmRfdmFsdWVfcmV0dXJuKTogRG9uJ3QgY2FsbCBpdC4gIERvbid0IGFkZCBwcmVkaWN0aW9uCglub3RlcyBmb3IgcmV0dXJuIHN0YXRlbWVudHMuCgoyMDA0LTA3LTIxICBKb3NlZiBabG9tZWsgIDx6bG9tZWtqQHN1c2UuY3o+CgoJKiB2YXItdHJhY2tpbmcuYyAodnRfZmluZF9sb2NhdGlvbnMpOiBTZXQgdGhlIGluX3BlbmRpbmcgYml0bWFwIGF0CglvbmNlLgoKMjAwNC0wNy0yMSAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGMtY29tbW9uLmMgKHZlY3Rvcl90eXBlc19jb252ZXJ0aWJsZV9wKTogVXNlIHZlY3RvciB0eXBlcycKCVRZUEVfU0laRSBhbmQgVFJFRV9UWVBFIGluc3RlYWQgb2YgdGhlaXIgbW9kZS4KCSogY29udmVydC5jIChjb252ZXJ0X3RvX2ludGVnZXIpOiBMaWtld2lzZS4KCShjb252ZXJ0X3RvX3ZlY3Rvcik6IExpa2V3aXNlLgoJKiBmb2xkLWNvbnN0LmMgKGZvbGRfY29udmVydCk6IExpa2V3aXNlLgoJKiB2YXJhc20uYyAob3V0cHV0X2NvbnN0YW50KTogTGlrZXdpc2UuCgkqIGV4cHIuYyAoc3RvcmVfY29uc3RydWN0b3IpOiBTcGxpdCBBUlJBWV9UWVBFIGFuZCBWRUNUT1JfVFlQRS4KCUFsbG93IGEgVkVDVE9SX1RZUEUgaW5pdGlhbGl6ZXIgdG8gYmUgbWFkZSBvZiBzZXZlcmFsIHZlY3RvcnMuCglGb3IgQVJSQVlfVFlQRXMgYW5kIFZFQ1RPUl9UWVBFUywgc2ltcGxpZnkgYSBiaXQgdGhlIGhhbmRsaW5nCglvZiBjbGVhcmVkIGFuZCBuZWVkX3RvX2NsZWFyLCBhbmQgdXNlIGZvbGRfY29udmVydC4KCSogYy10eXBlY2suYyAoYnVpbGRfYmluYXJ5X29wKTogRG8gbm90IHVzZSBSRElWX0VYUFIgZm9yCglpbnRlZ2VyIHZlY3RvcnMuCgoyMDA0LTA3LTIwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY2ZnZXhwYW5kLmMgKGV4cGFuZF9naW1wbGVfY29uZF9leHByLCBleHBhbmRfZ2ltcGxlX3RhaWxjYWxsKTogU3BsaXQsCgkoZXhwYW5kX2dpbXBsZV9iYXNpY19ibG9jayk6IG91dCBmcm9tIGhlcmUuICBSZW5hbWVkIGZyb20gZXhwYW5kX2Jsb2NrLgoKMjAwNC0wNy0yMCAgRGF2aWQgUy4gTWlsbGVyICA8ZGF2ZW1AbnV0cy5kYXZlbWxvZnQubmV0PgoKCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKHNwYXJjX3J0eF9jb3N0cyBjYXNlIE1VTFQpOiBFbWl0Cgllbm9ybW91cyBjb3N0IGlmIG5vdCBUQVJHRVRfSEFSRF9NVUwuCgoyMDA0LTA3LTIwICBBbmRyZXcgUGluc2tpICA8YXBpbnNraUBhcHBsZS5jb20+CgoJUFIgdGFyZ2V0LzE2NTU3CgkqIGNvbmZpZy9pMzg2L2Rhcndpbi5oIChDQzFfU1BFQyk6IE1vdmUgdGhlIC1nIFNQRUNzIGZyb20gLi4uCgkoQVNNX1NQRUMpOiBoZXJlLgoKMjAwNC0wNy0yMSAgUGF1bCBicm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZy9hcm0vYXJtLmMgKHRodW1iX2V4cGFuZF9wcm9sb2d1ZSk6IFJlbW92ZSBib2d1cyBHRU5fSU5ULgoKMjAwNC0wNy0yMCAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGZvbGQtY29uc3QuYyAob3BlcmFuZF9lcXVhbF9wKTogVGVtcG9yYXJpbHkgc3VwcG9ydCBOVUxMIGFyZ3MuCgkob3BlcmFuZF9lcXVhbF9wLCBjYXNlIEFSUkFZX1JFRik6IENvbXBhcmUgYXJncyAyIGFuZCAzLgoJKG9wZXJhbmRfZXF1YWxfcCwgY2FzZSBDT01QT05FTlRfUkVGKTogTGlrZXdpc2UsIGZvciBhcmcgMi4KCjIwMDQtMDctMjAgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBydGwuaCAocGx1c19jb25zdGFudCk6IERlbGV0ZS4KCShwbHVzX2NvbnN0YW50X3dpZGUpOiBSZW5hbWUgdG8gcGx1c19jb25zdGFudC4KCShwbHVzX2NvbnN0YW50X2Zvcl9vdXRwdXRfd2lkZSk6IERlbGV0ZSB2ZXN0aWdpYWwgcHJvdG90eXBlLgoJKEdFTl9JTlQpOiBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdC4KCSogdHJlZS5oIChidWlsZF9pbnRfMiwgc2l6ZV9pbnRfdHlwZSk6IERlbGV0ZS4KCShidWlsZF9pbnRfMl93aWRlKTogUmVuYW1lIHRvIGJ1aWxkX2ludF8yLgoJKHNpemVfaW50X3dpZGUpOiBSZW5hbWUgdG8gc2l6ZV9pbnRfa2luZC4KCShzaXplX2ludF90eXBlX3dpZGUpOiBSZW5hbWUgdG8gc2l6ZV9pbnRfdHlwZS4KCShzaXplX2ludCwgc3NpemVfaW50LCBiaXRzaXplX2ludCwgc2JpdHNpemVfaW50KTogVXNlIHNpemVfaW50X2tpbmQuCglSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdC4KCSogdHJlZS5jIChidWlsZF9pbnRfMl93aWRlKTogUmVuYW1lIGJ1aWxkX2ludF8yOyB1cGRhdGUgY29tbWVudC4KCSogZXhwbG93LmMgKHBsdXNfY29uc3RhbnRfd2lkZSk6IFJlbmFtZSBwbHVzX2NvbnN0YW50OyB1cGRhdGUgY29tbWVudC4KCSogZm9sZC1jb25zdC5jIChzaXplX2ludF93aWRlKTogUmVuYW1lIHNpemVfaW50X2tpbmQuIFVzZSBzaXplX2ludF90eXBlLgoJKHNpemVfaW50X3R5cGVfd2lkZSk6IFJlbmFtZSBzaXplX2ludF90eXBlLgoJKGludF9jb25zdF9iaW5vcCk6IFVzZSBzaXplX2ludF90eXBlLgoJKiBjLWxleC5jIChpbnRlcnByZXRfaW50ZWdlcik6IFVzZSBidWlsZF9pbnRfMi4KCSogZmluYWwuYyAoc3BsaXRfZG91YmxlKTogUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3RzLgoJKiB0cmVlLXNzYS1jY3AuYyAobWF5YmVfZm9sZF9vZmZzZXRfdG9fYXJyYXlfcmVmKTogVXNlIGJ1aWxkX2ludF8yLgoKMjAwNC0wNy0yMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGdpbXBsaWZ5LmMgKGlzX2dpbXBsZV90bXBfdmFyKTogTW92ZSB0byB0cmVlLWdpbXBsZS5jLgoJKGdpbXBsaWZ5X2NvbXBvdW5kX2x2YWwpOiBVc2UgaXNfZ2ltcGxlX3RtcF9yZWcuCgkqIHRyZWUtZ2ltcGxlLmMgKGlzX2dpbXBsZV90bXBfdmFyKTogTW92ZSBmcm9tIGdpbXBsaWZ5LmMuCgkoaXNfZ2ltcGxlX3RtcF9yZWcpOiBOZXcuCgkqIHRyZWUtZ2ltcGxlLmggKGlzX2dpbXBsZV90bXBfcmVnKTogRGVjbGFyZS4KCjIwMDQtMDctMjAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmVlLXByZXR0eS1wcmludC5jIChkdW1wX2dlbmVyaWNfbm9kZSk6IER1bXAKCUNBTExfRVhQUl9IQVNfUkVUVVJOX1NMT1RfQUREUi4KCjIwMDQtMDctMjAgIEZyYW5rIENoLiBFaWdsZXIgIDxmY2hlQHJlZGhhdC5jb20+CgoJKiB0cmVlLW11ZGZsYXAuYyAobWZfc2V0X29wdGlvbnNfZm5kZWNsKTogTmV3IHRyZWUuCgkobXVkZmxhcF9pbml0KTogU2V0IGl0LgoJKG11ZGZsYXBfcmVnaXN0ZXJfY2FsbCk6IFJlbW92ZSBfX21mX2luaXQgY2FsbC4KCShtdWRmbGFwX2ZpbmlzaF9maWxlKTogRW1pdCBjYWxsIHRvIF9fbWZfaW5pdCBoZXJlLiAgRW1pdCBhIGNhbGwgdG8KCXRvIHBhc3MgIi1pZ25vcmUtcmVhZHMiIG9wdGlvbiB0byBsaWJtdWRmbGFwIGlmIG5lZWRlZC4KCjIwMDQtMDctMjAgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2YS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJUFIgYysrLzE0NjA3CgkqIGNvbmZpZy9wYS9wYS1ocHV4MTAuaCAoU1VQUE9SVFNfT05FX09OTFkpOiBEZWZpbmUuCgkoTUFLRV9ERUNMX09ORV9PTkxZKTogVW5kZWZpbmUuCgkqIHBhLXByb3Rvcy5oIChzb21fdGV4dF9zZWN0aW9uX2FzbV9vcCwgb25lX29ubHlfcmVhZG9ubHlfZGF0YV9zZWN0aW9uLAoJcmVhZG9ubHlfZGF0YSwgb25lX29ubHlfZGF0YV9zZWN0aW9uLCBmb3JnZXRfc2VjdGlvbik6IE5ldyBwcm90b3R5cGVzLgoJKiBwYS5jIChwYV9pbml0X21hY2hpbmVfc3RhdHVzLCBzb21fdGV4dF9zZWN0aW9uX2FzbV9vcCk6IE5ldwoJZnVuY3Rpb25zLgoJKHBhX3NlbGVjdF9zZWN0aW9uKTogQWRkIG9uZS1vbmx5IChDT01EQVQpIHN1cHBvcnQuCgkqIHBhLmggKHN0cnVjdCBtYWNoaW5lX2Z1bmN0aW9uKTogRGVmaW5lLgoJKiBzb20uaCAoQVNNX09VVFBVVF9GVU5DVElPTl9QUkVGSVgpOiBEZWxldGUuCgkoVEVYVF9TRUNUSU9OX0FTTV9PUCk6IENhbGwgc29tX3RleHRfc2VjdGlvbl9hc21fb3AuCgkoREVGQVVMVF9URVhUX1NFQ1RJT05fQVNNX09QLCBORVdfVEVYVF9TRUNUSU9OX0FTTV9PUCwKCU9ORV9PTkxZX1RFWFRfU0VDVElPTl9BU01fT1AsIE9ORV9PTkxZX1JFQURPTkxZX0RBVEFfU0VDVElPTl9BU01fT1AsCglPTkVfT05MWV9EQVRBX1NFQ1RJT05fQVNNX09QKTogTmV3IGRlZmluZXMuCgkoRVhUUkFfU0VDVElPTlMpOiBBZGQgaW5fb25lX29ubHlfcmVhZG9ubHlfZGF0YSBhbmQgaW5fb25lX29ubHlfZGF0YS4KCShFWFRSQV9TRUNUSU9OX0ZVTkNUSU9OUyk6IFJld29yayB0byB1c2UgaW5kaXZpZHVhbCBmdW5jdGlvbiBtYWNyb3MuCgkoUkVBRE9OTFlfREFUQV9GVU5DVElPTiwgT05FX09OTFlfUkVBRE9OTFlfREFUQV9TRUNUSU9OX0ZVTkNUSU9OLAoJT05FX09OTFlfREFUQV9TRUNUSU9OX0ZVTkNUSU9OLCBGT1JHRVRfU0VDVElPTl9GVU5DVElPTik6IE5ldyBkZWZpbmVzCglmb3IgRVhUUkFfU0VDVElPTl9GVU5DVElPTlMuCgkqIGRvYy9pbnN0YWxsLnRleGk6IFVwZGF0ZSBiaW51dGlscyByZXF1aXJlbWVudHMuCgoyMDA0LTA3LTIwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdmVjLmggKFZFQ19UX2xlbmd0aCwgVkVDX1RfaW5kZXgsIFZFQ19UX2l0ZXJhdGUsIFZFQ19UX3RydW5jYXRlLAoJVkVDX1RfcmVwbGFjZSwgVkVDX1RfcXVpY2tfaW5zZXJ0LCBWRUNfVF9zYWZlX2luc2VydCwKCVZFQ19UX29yZGVyZWRfcmVtb3ZlLCBWRUNfVF91bm9yZGVyZWRfcmVtb3ZlKTogVXNlIHVuc2lnbmVkLCBub3QKCXNpemVfdC4KCShzdHJ1Y3QgVkVDKTogVXNlIHVuc2lnbmVkIGZvciBudW0gYW5kIGFsbG9jLgoJKiB2ZWMuYyAoc3RydWN0IHZlY19wcmVmaXgpOiBMaWtld2lzZS4KCSh2ZWNfb19yZXNlcnZlKTogQWRqdXN0LgoKCSogZGJ4b3V0LmMgKGRieG91dF90eXBlKTogRml4IHByaW50ZiBmb3JtYXQuCgoJKiB0cmVlLmggKGJpbmZvX21lbWJlcik6IFJlbW92ZS4KCSogdHJlZS5jIChiaW5mb19tZW1iZXIpOiBSZW1vdmUuCgoyMDA0LTA3LTIwICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdHJlZS5oOiBJbmNsdWRlIHZlYy5oCgkoREVGX1ZFQ19QKHRyZWUpKTogTmV3IHR5cGUuCgkoQklORk9fQkFTRV9CSU5GT1MsIEJJTkZPX05fQkFTRV9CSU5GT1MsIEJJTkZPX0JBU0VfQklORk8pOiBBZGp1c3QuCgkoQklORk9fQkFTRV9BUFBFTkQsIEJJTkZPX0JBU0VfSVRFUkFURSk6IE5ldy4KCShCSU5GT19MQU5HX1NMT1QpOiBSZW1vdmUuCgkoQklORk9fU1VCVlRUX0lOREVYLCBCSU5GT19WUFRSX0lOREVYLCBCSU5GT19QUklNQVJZX0JBU0VfT0YpOiBOZXcuCgkoc3RydWN0IHRyZWVfYmluZm8pOiBUdXJuIGJhc2VfYmluZm9zIGludG8gYSB0cmFpbGluZwoJVkVDKHRyZWUpLiBBZGQgdnR0X3N1YnZ0dCwgdnR0X3ZwdHIsIHByaW1hcnkgZmllbGRzLgoJKGJpbmZvX2xhbmdfc2xvdHMpOiBSZW1vdmUuCgkqIHRyZWUuYyAoYmluZm9fbGFuZ19zbG90cyk6IFJlbW92ZS4KCShtYWtlX3RyZWVfYmluZm9fc3RhdCk6IFRha2UgYSBiYXNlIGJpbmZvIGNvdW50LCBub3QgYQoJbGFuZyBzbG90IGNvdW50LiAgQWRqdXN0LgoJKiBNYWtlZmlsZS5pbiAoVFJFRV9IKTogQWRkIHZlYy5oCgkqIGFsaWFzLmMgKHJlY29yZF9jb21wb25lbnRfYWxpYXNlcyk6IEFkanVzdCBCSU5GTyBhY2Nlc3MuCgkqIGRieG91dC5jIChkYnhvdXRfdHlwZSk6IExpa2V3aXNlLgoJKiBkd2FyZjJvdXQuYyAoZ2VuX21lbWJlcl9kaWUpOiBMaWtld2lzZS4KCSogc2Rib3V0LmMgKHNkYm91dF9vbmVfdHlwZSk6IExpa2V3aXNlLgoJKiB0cmVlLWR1bXAuYyAoZGVxdWVfYW5kX2R1bXApOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvaTM4Ni5jIChjbGFzc2lmeV9hcmd1bWVudCwKCWNvbnRhaW5zXzEyOGJpdF9hbGlnbmVkX3ZlY3Rvcl9wKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zaC9zeW1iaWFuLmMgKHN5bWJpYW5fZXhwb3J0X3Z0YWJsZV9hbmRfcnR0aV9wKTogTGlrZXdpc2UuCgkqIGRvYy9jLXRyZWUudGV4aSAoQ2xhc3Nlcyk6IFVwZGF0ZSBCSU5GTyBkb2N1bWVudGF0aW9uLgoKMjAwNC0wNy0yMCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogYy1jb21tb24uaCAoY2hlY2tfY2FzZV92YWx1ZSk6IFJlbW92ZSBwcm90b3R5cGUuCgkoY19hZGRfY2FzZV9sYWJlbCk6IEFkanVzdCBwcm90b3R5cGUuCgkqIGMtY29tbW9uLmMgKGNoZWNrX2Nhc2VfdmFsdWUpOiBNYWtlIHN0YXRpYy4KCShjaGVja19jYXNlX2JvdW5kcyk6IE5ldyBmdW5jdGlvbi4KCShjX2FkZF9jYXNlX2xhYmVsKTogVXNlIGl0LiAgVGFrZSBuZXcgYXJndW1lbnQgb3JpZ190eXBlLgoJKiBjLXR5cGVjay5jIChzdHJ1Y3QgY19zd2l0Y2gpOiBOZXcgb3JpZ190eXBlIGZpZWxkLgoJKGNfc3RhcnRfY2FzZSk6IFNldCBpdC4KCShkb19jYXNlKTogUGFzcyBpdCB0byBjX2FkZF9jYXNlX2xhYmVsLgoJKiBleHByLmMgKGV4cGFuZF9leHByX3JlYWxfMSk6IERvbid0IHdhcm4gZm9yIG91dC1vZi1ib3VuZHMKCWNhc2VzIGZyb20gaGVyZS4gIEFkZCB0aGUgbGFiZWxzIGluIHJldmVyc2Ugb3JkZXIuCgkqIHN0bXQuYyAoc3RydWN0IGNhc2Vfbm9kZSk6IEFkanVzdCBjb21tZW50LiAgUmVtb3ZlIGJhbGFuY2UgZmllbGQuCgkoYWRkX2Nhc2Vfbm9kZSk6IFJldHVybiBub3RoaW5nLCBkb24ndCBjaGVjayBmb3IgZHVwbGljYXRlIGNhc2VzLgoJSW5zZXJ0IG5ldyBjYXNlIG5vZGVzIGluIGEgbGlzdCwgbm90IGluIGFuIEFWTCB0cmVlLgoJKGV4cGFuZF9lbmRfY2FzZV90eXBlKTogRG9uJ3QgdHVybiBhIGNhc2UgdHJlZSBpbnRvIGEgY2FzZSBsaXN0LgoJKGNhc2VfdHJlZTJsaXN0KTogUmVtb3ZlLgoJKiB0cmVlLmggKGFkZF9jYXNlX25vZGUpOiBBZGp1c3QgcHJvdG90eXBlLgoKMjAwNC0wNy0xOSAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGdlbmF0dHIuYyAoc3RydWN0IHJhbmdlLCBzdHJ1Y3QgZnVuY3Rpb25fdW5pdCwKCXdyaXRlX3VuaXRzLCBleHRlbmRfcmFuZ2UsIGluaXRfcmFuZ2UpOiBSZW1vdmUgdGhlbS4KCShtYWluKTogUmVtb3ZlIGNvZGUgZGVhbGluZyB3aXRoIERFRklORV9GVU5DVElPTl9VTklULgoJT3V0cHV0ICIjZGVmaW5lIElOU05fU0NIRURVTElORyIgaGVyZS4KCSogZ2VuYXR0cnRhYi5jIChzdHJ1Y3QgcmFuZ2UsIHN0cnVjdCBmdW5jdGlvbl91bml0X29wLAoJc3RydWN0IGZ1bmN0aW9uX3VuaXQsIHN0cnVjdCBkaW1lbnNpb24sIGVudW0gb3BlcmF0b3IsCglvcGVyYXRlX2V4cCwgZXhwYW5kX3VuaXRzLCBzaW1wbGlmeV9rbm93aW5nLAoJZW5jb2RlX3VuaXRzX21hc2ssIHNpbXBsaWZ5X2J5X2V4cGxvZGluZywKCWZpbmRfYW5kX21hcmtfdXNlZF9hdHRyaWJ1dGVzLCB1bm1hcmtfdXNlZF9hdHRyaWJ1dGVzLAoJYWRkX3ZhbHVlc190b19jb3ZlciwgaW5jcmVtZW50X2N1cnJlbnRfdmFsdWUsCgl0ZXN0X2Zvcl9jdXJyZW50X3ZhbHVlLCBzaW1wbGlmeV93aXRoX2N1cnJlbnRfdmFsdWUsCglzaW1wbGlmeV93aXRoX2N1cnJlbnRfdmFsdWVfYXV4LCBnZW5fdW5pdCwKCXdyaXRlX3VuaXRfbmFtZSwgd3JpdGVfZnVuY3Rpb25fdW5pdF9pbmZvLAoJd3JpdGVfY29tcGxleF9mdW5jdGlvbiwgd3JpdGVfdG9wbGV2ZWxfZXhwciwKCWZpbmRfc2luZ2xlX3ZhbHVlLCBleHRlbmRfcmFuZ2UpOiBSZW1vdmUuCgkod3JpdGVfYXR0cl9nZXQpOiBEbyBub3QgaGFuZGxlIGNvbW1vbl9hdi0+dmFsdWUKCWJlaW5nIGFuIEZGUy4KCShzdHJ1Y3QgYXR0cl9kZXNjKTogUmVtb3ZlIGZ1bmNfdW5pdHNfcCBhbmQgYmxvY2thZ2VfcC4KCSh3cml0ZV9hdHRyX3ZhbHVlcSk6IERvIG5vdCBoYW5kbGUgdGhlbS4KCShmaW5kX2F0dHIpOiBEbyBub3QgY2xlYXIgdGhlbS4KCShtYWtlX2ludGVybmFsX2F0dHIpOiBEbyBub3QgaW5pdGlhbGl6ZSB0aGVtLgoJKG1haW4pOiBSZW1vdmUgY29kZSBkZWFsaW5nIHdpdGggREVGSU5FX0ZVTkNUSU9OX1VOSVQuCgkqIHNjaGVkLXZpcy5jIChpbml0X3RhcmdldF91bml0cywgaW5zbl9wcmludF91bml0cywKCWluaXRfYmxvY2tfdmlzdWFsaXphdGlvbiwgcHJpbnRfYmxvY2tfdmlzdWFsaXphdGlvbiwKCXZpc3VhbGl6ZV9zY2hlZHVsZWRfaW5zbnMsIHZpc3VhbGl6ZV9ub191bml0LAoJdmlzdWFsaXplX3N0YWxsX2N5Y2xlcywgdmlzdWFsaXplX2FsbG9jLAoJdmlzdWFsaXplX2ZyZWUsIHRhcmdldF91bml0cywgZ2V0X3Zpc3VhbF90YmxfbGVuZ3RoLAoJTUFYX1ZJU1VBTF9MSU5FUywgSU5TTl9MRU4sIG5fdmlzdWFsX2xpbmVzLAoJdmlzdWFsX3RibF9saW5lX2xlbmd0aCwgdmlzdWFsX3RibCwgbl92aXNfbm9fdW5pdCwKCU1BWF9WSVNVQUxfTk9fVU5JVCwgdmlzX25vX3VuaXQpOiBSZW1vdmUuCgkqIGhhaWZhLXNjaGVkLmMgKGJsb2NrYWdlX3JhbmdlLCBjbGVhcl91bml0cywKCXNjaGVkdWxlX3VuaXQsIGFjdHVhbF9oYXphcmQsIHBvdGVudGlhbF9oYXphcmQsCglpbnNuX3VuaXQsIHVuaXRfbGFzdF9pbnNuLCB1bml0X3RpY2ssCglhY3R1YWxfaGF6YXJkX3RoaXNfaW5zdGFuY2UsIHBvdGVudGlhbF9oYXphcmQsCglzY2hlZHVsZV91bml0LCBtYXhfaW5zbl9xdWV1ZV9pbmRleF92YWx1ZSk6IFJlbW92ZS4KCShNQVhfSU5TTl9RVUVVRV9JTkRFWCk6IFJlbW92ZWQsIHJlbmFtZWQgdGhyb3VnaG91dCB0bwoJbWF4X2luc25fcXVldWVfaW5kZXguCgkqIHJ0bC5kZWYgKERFRklORV9GVU5DVElPTl9VTklUKTogUmVtb3ZlLgoJKiBkb2MvbWQudGV4aSAoUHJvY2Vzc29yIHBpcGVsaW5lIGRlc2NyaXB0aW9uKTogUmVtb3ZlCglyZWZlcmVuY2VzIHRvIG9sZCBwaXBlbGluZSBkZXNjcmlwdGlvbnMuCgkoQXV0b21hdG9uIHBpcGVsaW5lIGRlc2NyaXB0aW9uKTogTWVyZ2Ugd2l0aCB0aGUgYWJvdmUuCgkoT2xkIHBpcGVsaW5lIGRlc2NyaXB0aW9uLCBDb21wYXJpc29uIG9mIHRoZSB0d28gZGVzY3JpcHRpb25zKToKCVJlbW92ZS4KCgkqIGJ0LWxvYWQuYyAobWlncmF0ZV9idHJfZGVmKTogUmVtb3ZlIHJlZmVyZW5jZXMgdG8KCXVzZV9waXBlbGluZV9pbnRlcmZhY2UuCgkqIGhhaWZhLXNjaGVkLmMgKGluc25fY29zdCwgc2NoZWR1bGVfaW5zbiwKCXNjaGVkdWxlX2Jsb2NrLCBhZHZhbmNlX29uZV9jeWNsZSwgc2NoZWRfaW5pdCwKCXF1ZXVlX3RvX3JlYWR5LCBzY2hlZF9maW5pc2gpOiBMaWtld2lzZS4KCSogbW9kdWxvLXNjaGVkLmMgKHNtc19zY2hlZHVsZSwgYWR2YW5jZV9vbmVfY3ljbGUsCglwc19oYXNfY29uZmxpY3RzKTogTGlrZXdpc2UuCgkqIHNjaGVkLXJnbi5jIChpbml0X3JlYWR5KTogTGlrZXdpc2UuCgkoZGVidWdfZGVwZW5kZW5jaWVzKTogTGlrZXdpc2UsIGFuZCByZW1vdmUgYW4gImlmICgxKSIuCgkqIHRhcmdldC5oICh1c2VfZGZhX3BpcGVsaW5lX2ludGVyZmFjZSk6IFJlbW92ZS4KCSogY29uZmlnL2FscGhhL2FscGhhLmMgKFRBUkdFVF9VU0VfREZBX1BJUEVMSU5FX0lOVEVSRkFDRSk6IFJlbW92ZS4KCSogY29uZmlnL2FyYy9hcmMuYyAoVEFSR0VUX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogUmVtb3ZlLgoJKiBjb25maWcvYXJtL2FybS5jIChUQVJHRVRfVVNFX0RGQV9QSVBFTElORV9JTlRFUkZBQ0UpOiBSZW1vdmUuCgkqIGNvbmZpZy9jNHgvYzR4LmMgKFRBUkdFVF9VU0VfREZBX1BJUEVMSU5FX0lOVEVSRkFDRSk6IFJlbW92ZS4KCSogY29uZmlnL2Zydi9mcnYuYyAoVEFSR0VUX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogUmVtb3ZlLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKFRBUkdFVF9VU0VfREZBX1BJUEVMSU5FX0lOVEVSRkFDRSk6IFJlbW92ZS4KCSogY29uZmlnL2lhNjQvaWE2NC5jIChUQVJHRVRfVVNFX0RGQV9QSVBFTElORV9JTlRFUkZBQ0UpOiBSZW1vdmUuCgkqIGNvbmZpZy9pcTIwMDAvaXEyMDAwLmMgKFRBUkdFVF9VU0VfREZBX1BJUEVMSU5FX0lOVEVSRkFDRSk6IFJlbW92ZS4KCSogY29uZmlnL20zMnIvbTMyci5jIChUQVJHRVRfVVNFX0RGQV9QSVBFTElORV9JTlRFUkZBQ0UpOiBSZW1vdmUuCgkqIGNvbmZpZy9tY29yZS9tY29yZS5jIChUQVJHRVRfVVNFX0RGQV9QSVBFTElORV9JTlRFUkZBQ0UpOiBSZW1vdmUuCgkqIGNvbmZpZy9taXBzL21pcHMuYyAoVEFSR0VUX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogUmVtb3ZlLgoJKiBjb25maWcvcGEvcGEuYyAoVEFSR0VUX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogUmVtb3ZlLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChUQVJHRVRfVVNFX0RGQV9QSVBFTElORV9JTlRFUkZBQ0UpOiBSZW1vdmUuCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoVEFSR0VUX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogUmVtb3ZlLgoJKiBjb25maWcvc2gvc2guYyAoVEFSR0VUX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogUmVtb3ZlLgoJKiBjb25maWcvc3BhcmMvc3BhcmMuYyAoVEFSR0VUX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogUmVtb3ZlLgoJKiBjb25maWcvdjg1MC92ODUwLmMgKFRBUkdFVF9VU0VfREZBX1BJUEVMSU5FX0lOVEVSRkFDRSk6IFJlbW92ZS4KCSogY29uZmlnL3h0ZW5zYS94dGVuc2EuYyAoVEFSR0VUX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogUmVtb3ZlLgoJKiBkb2MvdG0udGV4aSAoVEFSR0VUX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogUmVtb3ZlLgoKMjAwNC0wNy0xOSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBydGxhbmFsLmMgKHJlZ19zZXRfcCk6IEFkZCBjaGVjayBmb3IgcmVnc19pbnZhbGlkYXRlZF9ieV9jYWxsLgoKMjAwNC0wNy0xOSAgSmVmZiBMYXcgIDxsYXdAcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWRvbS5jIChzaW5nbGVfaW5jb21pbmdfZWRnZV9pZ25vcmluZ19sb29wX2VkZ2VzKTogTmV3LgoJKGdldF9lcV9leHByX3ZhbHVlKTogVXNlIGl0LiAgU2ltcGxpZnkgc2xpZ2h0bHkuCgoyMDA0LTA3LTE5ICBNYWNpZWogVy4gUm96eWNraSAgPG1hY3JvQGxpbnV4LW1pcHMub3JnPgoKCSogY29uZmlnL21pcHMvbWlwcy5tZCAobXVsc2lkaTNfMzJiaXRfcjQwMDApOiBGaXggdGhlIGNsb2JiZXIgbGlzdC4KCSh1bXVsc2lkaTNfMzJiaXRfcjQwMDApOiBMaWtld2lzZS4KCjIwMDQtMDctMTkgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB2ZWMuaDogUHJvcGFnYXRlIGxvY2F0aW9uIGluZm9ybWF0aW9uIHByb3Blcmx5LgoJKFZFQ19UX2l0ZXJhdGUpOiBBZGQgcmVzdWx0IHBvaW50ZXIgcGFyYW1ldGVyLgoJKFZFQ19UX3NwYWNlKTogTmV3LgoJKFZFQ19UX3Jlc2VydmUpOiBVc2UgaXQuCgoyMDA0LTA3LTE5ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBkZWJpYW4ub3JnPgoKCSogTWFrZWZpbGUuaW4gKGMtZm9ybWF0Lm8pOiBEZXBlbmQgb24gYy1mb3JtYXQuaC4KCSogYy1mb3JtYXQuaDogTmV3IGZpbGUuCgkoc3RydWN0IGZvcm1hdF9jaGFyX2luZm8pOiBBZGQgQ0hBSU4gbWVtYmVyLgoJKiBjLWZvcm1hdC5jOiBNb3ZlIHNvbWUgdHlwZXMgYW5kIGNvbnN0YW50cyB0byBjLWZvcm1hdC5oLgoJKGZvcm1hdF90eXBlX2Vycm9yKTogU2V0IHRvIC0xLgoJKHN0cnVjdCBmdW5jdGlvbl9mb3JtYXRfaW5mbyk6IFVzZSBhbiBpbnQgZm9yIGZvcm1hdF90eXBlLgoJKGRlY29kZV9mb3JtYXRfdHlwZSk6IFJldHVybiBhbiBpbnQuICBSZXR1cm4gZm9ybWF0X3R5cGVfZXJyb3IKCW9uIGVycm9yLgoJKHByaW50X2NoYXJfdGFibGUsIGFzbV9mcHJpbnRmX2NoYXJfdGFibGUsIGdjY19kaWFnX2NoYXJfdGFibGUpCgkoZ2NjX2RpYWdfY2hhcl90YWJsZSwgZ2NjX2NkaWFnX2NoYXJfdGFibGUsIGdjY19jeHhkaWFnX2NoYXJfdGFibGUpCgkoc2Nhbl9jaGFyX3RhYmxlLCB0aW1lX2NoYXJfdGFibGUsIG1vbmV0YXJ5X2NoYXJfdGFibGUpOiBJbml0aWFsaXplCglDSEFJTiB0byBOVUxMLgoJKG5fZm9ybWF0X3R5cGVzKTogTmV3IHZhcmlhYmxlLgoJKGNoZWNrX2Zvcm1hdF9pbmZvX21haW4pOiBIYW5kbGUgQ0hBSU4gaW4gZm9ybWF0X2NoYXJfaW5mby4KCShoYW5kbGVfZm9ybWF0X2F0dHJpYnV0ZSk6IEhhbmRsZSBUQVJHRVRfRk9STUFUX1RZUEVTIGFuZAoJVEFSR0VUX05fRk9STUFUX1RZUEVTLgoJKiBjb25maWcuZ2NjIChpWzM0NTY3XTg2LSotc29sYXJpczIqLCBzcGFyYzY0LSotc29sYXJpczIqKQoJKHNwYXJjLSotc29sYXJpczIqKTogSW5jbHVkZSBjb25maWcvdC1zb2wyIGFuZCBjb25maWcvc29sMi1jLmMuCgkqIGNvbmZpZy9zb2wyLWMuYzogTmV3IGZpbGUuCgkqIGNvbmZpZy90LXNvbDI6IE5ldyBmaWxlLgoJKiBjb25maWcvc29sMi5oIChUQVJHRVRfTl9GT1JNQVRfVFlQRVMsIFRBUkdFVF9GT1JNQVRfVFlQRVMpOiBEZWZpbmUuCgkqIGNvbmZpZy9zcGFyYy9lbGYuaCwgY29uZmlnL3NwYXJjL3NwNjQtZWxmLmg6IFVuZGVmaW5lCglUQVJHRVRfTl9GT1JNQVRfVFlQRVMgYW5kIFRBUkdFVF9GT1JNQVRfVFlQRVMuCgoJKiBkb2MvZXh0ZW5kLnRleGkgKFRhcmdldCBGb3JtYXQgQ2hlY2tzKTogTmV3IHNlY3Rpb24uCgkoRnVuY3Rpb24gQXR0cmlidXRlcyk6IE1lbnRpb24gaXQuCgkqIGRvYy9pbnZva2UudGV4aTogTWVudGlvbiB0YXJnZXQgZm9ybWF0IGNoZWNrcy4KCSogZG9jL3NvdXJjZWJ1aWxkLnRleGk6IE1lbnRpb24gdGFyZ2V0IGZvcm1hdCBjaGVja3MuCgkqIGRjL3RtLnRleGkgKE1pc2MpOiBEb2N1bWVudCBUQVJHRVRfTl9GT1JNQVRfVFlQRVMgYW5kCglUQVJHRVRfRk9STUFUX1RZUEVTLgoKMjAwNC0wNy0xOSAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbDFAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAtcHJvdG9zLmggKHMzOTBfcmV0dXJuX2FkZHJlc3Nfb2Zmc2V0KTogUHJvdG90eXBlCglhZGRlZC4KCSogY29uZmlnL3MzOTAvczM5MC5jIChyZWdjbGFzc19tYXAgaW5pdGlhbGl6ZXIpOiBSZWdpc3RlciAzNSBhZGRlZCB0bwoJQUREUl9SRUdTLgoJKGxvYWRfbXVsdGlwbGVfb3BlcmF0aW9uLCBzdG9yZV9tdWx0aXBsZV9vcGVyYXRpb24pOiBSZW1vdmVkCglwb2ludGxlc3Mgc2FuaXR5IGNoZWNrLgoJKHMzOTBfZGVjb21wb3NlX2FkZHJlc3MpOiBBZGRlZCBjaGVjayBmb3IgcmV0dXJuX2FkZHJlc3NfcG9pbnRlcl9ydHguCgkoczM5MF9yZXR1cm5fYWRkcl9ydHgpOiBVc2UgcmV0dXJuX2FkZHJlc3NfcG9pbnRlcl9ydHggZm9yIGNvdW50ID09IDAuCgkoczM5MF9yZXR1cm5fYWRkcmVzc19vZmZzZXQpOiBOZXcgZnVuY3Rpb24uCgkqIGNvbmZpZy9zMzkwL3MzOTAuaCAoRklSU1RfUFNFVURPX1JFR0lTVEVSKTogSW5jcmVhc2VkIHRvIDM2LgoJKEZSQU1FX1JFR05PX1ApOiBBZGRlZCBjaGVjayBmb3IgcmVnaXN0ZXIgMzUuCgkoRklYRURfUkVHSVNURVJTLCBDQUxMX1VTRURfUkVHSVNURVJTLCBDQUxMX1JFQUxMWV9VU0VEX1JFR0lTVEVSUywKCVJFR19BTExPQ19PUkRFUik6IEFwcGVuZGVkIGVudHJ5IGZvciByZWdpc3RlciAzNS4KCShSRUdfQ0xBU1NfQ09OVEVOVFMpOiBBZGp1c3RlZCBjbGFzcyBtYXNrcyBmb3IgcmVnaXN0ZXIgMzUuCgkoRUhfUkVUVVJOX0hBTkRMRVJfUlRYKTogVXNlIHJldHVybl9hZGRyZXNzX3BvaW50ZXJfcnR4LgoJKFJFVFVSTl9BRERSRVNTX1BPSU5URVJfUkVHTlVNKTogTmV3IG1hY3JvLgoJKEVMSU1JTkFCTEVfUkVHUywgSU5JVElBTF9FTElNSU5BVElPTl9PRkZTRVQpOiBSZXR1cm4gYWRkcmVzcyBwb2ludGVyCglpcyBlbGltaW5hYmxlIHVzaW5nIHN0YWNrIHBvaW50ZXIgb3IgaGFyZCBmcmFtZSBwb2ludGVyLgoJKFJFR0lTVEVSX05BTUVTKTogQWRkZWQgbmFtZSBmb3IgcmVnaXN0ZXIgMzUuCgkqIGNvbmZpZy9zMzkwL3MzOTAubWQgKCJsb2FkX211bHRpcGxlIiwgInN0b3JlX211bHRpcGxlIik6IFJlbW92ZWQKCXBvaW50bGVzcyBzYW5pdHkgY2hlY2suCgoyMDA0LTA3LTE5ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGZvbGQtY29uc3QuYyAodHJlZV9leHByX25vbnplcm9fcCk6IEFkZCBmdW5jdGlvbiBwcm90b3R5cGUuCgkoZm9sZCkgPEVRX0VYUFI+OiBNb3ZlIHRyZWVfZXhwcl9ub256ZXJvX3Agb3B0aW1pemF0aW9uIGZyb20KCWZvbGRfcmVsYXRpb25hbF9jb25zdCB0byBoZXJlLCBpLmUuICIoeCB8IDUpID09IDAiIC0+IGZhbHNlLgoJKGZvbGQpIChVTkVRX0VYUFI+OiBBZGQgb3B0aW1pemF0aW9ucyBmb3IgdW5vcmRlcmVkIGNvbXBhcmlzb25zCglvZiB0aGUgZm9ybSAieCBvcCB4IiB3aGVyZSBvcCBpcyBVTkxFLCBVTkdFLCBVTkVRIG9yIExUR1QuCgkoZm9sZF9yZWxhdGlvbmFsX2NvbnN0KTogVGlkeSB1cCBoYW5kbGluZyBvZiBmbG9hdGluZyBwb2ludAoJY29tcGFyaXNvbnMgYnkgY2FsbGluZyByZWFsX2NvbXBhcmUuICBSZW1vdmUgdHJlZV9leHByX25vbnplcm9fcAoJdHJhbnNmb3JtYXRpb247IGZvbGRfcmVsYXRpb25hbF9jb25zdCBhc3N1bWVzIGNvbnN0YW50IG9wZXJhbmRzLgoKMjAwNC0wNy0xOSAgR2FicmllbCBEb3MgUmVpcyAgPGdkckBpbnRlZ3JhYmxlLXNvbHV0aW9uLm5ldD4KCgkqIGRvYy9zb3VyY2VidWlsZC50ZXhpOiBBZGQgbGliY3BwLCBub3cgdGhhdCBDUFAgaGFzIGl0cyBvd24KCWRpcmVjdG9yeS4KCjIwMDQtMDctMTkgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYy10cmVlLmggKHN0cnVjdCBjX2V4cHIpOiBEZWZpbmUuCgkoQ19TRVRfRVhQX09SSUdJTkFMX0NPREUpOiBSZW1vdmUuCgkocGFyc2VyX2J1aWxkX2JpbmFyeV9vcCwgYnVpbGRfY29tcG91bmRfZXhwcik6IFVwZGF0ZSBwcm90b3R5cGVzLgoJKiBjLXBhcnNlLmluICgldW5pb24pOiBBZGQgZXhwcnR5cGUuCgkoRlVOQ19OQU1FKTogTWFyayBhcyB0dHlwZS4KCShleHByLCBleHByX25vX2NvbW1hcywgY2FzdF9leHByLCB1bmFyeV9leHByLCBwcmltYXJ5KTogQ2hhbmdlIHRvCglleHBydHlwZS4KCShleHByKTogVXBkYXRlLiAgRGVmaW5lIGRpcmVjdGx5IGluIHRlcm1zIG9mIGV4cHJfbm9fY29tbWFzCglpbnN0ZWFkIG9mIHVzaW5nIG5vbm51bGxfZXhwcmxpc3QuCgkobm9ubnVsbF9leHBybGlzdCwgdW5hcnlfZXhwciwgY2FzdF9leHByLCBleHByX25vX2NvbW1hcywgcHJpbWFyeSwKCW9mZnNldG9mX21lbWJlcl9kZXNpZ25hdG9yLCB0eXBlc3BlY19ub25yZXNlcnZlZF9ub25hdHRyLCBpbml0LAoJaW5pdHZhbCwgZGVzaWduYXRvciwgY29tcG9uZW50X2RlY2xhcmF0b3IsCgljb21wb25lbnRfbm90eXBlX2RlY2xhcmF0b3IsIGVudW1lcmF0b3IsIGFycmF5X2RlY2xhcmF0b3IsCgljb25kaXRpb24sIGV4ZXhwciwgc3dpdGNoX3N0YXRlbWVudCwgc3RtdF9ub2NvbXAsIHN0bXQsCglub25udWxsX2FzbV9vcGVyYW5kcywgaXZhcl9kZWNsYXJhdG9yLCByZWNlaXZlcik6IFVwZGF0ZS4gIERvbid0CglzZXQgQ19FWFBfT1JJR0lOQUxfQ09ERS4gIFVzZSBUUkVFX05PX1dBUk5JTkcgZm9yIGFzc2lnbm1lbnRzCgl3aGVyZSBhcHByb3ByaWF0ZS4KCSogYy1jb21tb24uaCAoQ19FWFBfT1JJR0lOQUxfQ09ERSk6IFJlbW92ZS4KCSogYy1jb21tb24uYyAoY19jb21tb25fdHJ1dGh2YWx1ZV9jb252ZXJzaW9uKTogRG9uJ3QgY2hlY2sKCUNfRVhQX09SSUdJTkFMX0NPREUuCgkqIGMtdHlwZWNrLmMgKHBhcnNlcl9idWlsZF9iaW5hcnlfb3ApOiBVc2UgY19leHByIHN0cnVjdHVyZXMuCglEb24ndCB1c2UgQ19FWFBfT1JJR0lOQUxfQ09ERS4KCShkZWZhdWx0X2NvbnZlcnNpb24sIGRlZmF1bHRfZnVuY3Rpb25fYXJyYXlfY29udmVyc2lvbik6IERvbid0IHVzZQoJQ19FWFBfT1JJR0lOQUxfQ09ERS4gIFByZXNlcnZlIFRSRUVfTk9fV0FSTklORy4KCShpbnRlcm5hbF9idWlsZF9jb21wb3VuZF9leHByKTogTWVyZ2UgaW50byBidWlsZF9jb21wb3VuZF9leHByLgoJKGJ1aWxkX2NvbXBvdW5kX2V4cHIpOiBUYWtlIHR3byBvcGVyYW5kcyBpbnN0ZWFkIG9mIGEgVFJFRV9MSVNULgoJKiBvYmpjL29iamMtYWN0LmMgKGdldF9zdXBlcl9yZWNlaXZlcik6IFVwZGF0ZSBjYWxscyB0bwoJYnVpbGRfY29tcG91bmRfZXhwci4KCjIwMDQtMDctMTggIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiBjb25maWcvc2gvc2guYyAoc2hfdXNlX2RmYV9pbnRlcmZhY2UpOiBSZW1vdmUuCgkoVEFSR0VUX1NDSEVEX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogU2V0IHRvCglob29rX2ludF92b2lkXzEuCgkqIGNvbmZpZy9zaC9zaC5tZDogRXh0cmFjdCBwaXBlbGluZSBkZXNjcmlwdGlvbnMKCWludG8gc2VwYXJhdGUgZmlsZXMuCgkqIGNvbmZpZy9zaC9zaDEubWQ6IE5ldyBmaWxlLCBleHRyYWN0ZWQgZnJvbSBzaC5tZC4KCSogY29uZmlnL3NoL3NoNC5tZDogTmV3IGZpbGUsIGV4dHJhY3RlZCBmcm9tIHNoLm1kLgoJKiBjb25maWcvc2gvc2htZWRpYS5tZDogTmV3IGZpbGUsIGV4dHJhY3RlZCBmcm9tIHNoLm1kCglhbmQgcmV3cml0dGVuIHVzaW5nIG5ldy1zdHlsZSBwaXBlbGluZSBkZXNjcmlwdGlvbi4KCjIwMDQtMDctMTggIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWcvcGEvcGEubWQ6IERlbGV0ZSB0aGUgdHdvIHJlbWFpbmluZyBkZWZpbmVfcGVlcGhvbGUKCXBhdHRlcm5zLgoKMjAwNC0wNy0xOCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoJICAgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYy1jb21tb24uYyAoY19jb21tb25fdHJ1dGh2YWx1ZV9jb252ZXJzaW9uKTogRG9uJ3Qgd2FybiBpZgoJVFJFRV9OT19XQVJOSU5HIGlzIHNldC4KCjIwMDQtMDctMTggIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogYnVpbHRpbnMuYyAoc2ltcGxpZnlfYnVpbHRpbl9tZW1jbXAsIHNpbXBsaWZ5X2J1aWx0aW5fc3RyY21wLAoJc2ltcGxpZnlfYnVpbHRpbl9zdHJuY21wKTogRGVsZXRlLgoJKGZvbGRfYnVpbHRpbl9tZW1jbXAsIGZvbGRfYnVpbHRpbl9zdHJjbXAsIGZvbGRfYnVpbHRpbl9zdHJuY21wKToKCUNoYW5nZSBhcmd1bWVudCB0byBhY2NlcHQgYW4gYXJnbGlzdCBpbnN0ZWFkIG9mIGFuICJleHAiLiAgQXNzdW1lCgl0aGF0IHRoZSByZXR1cm4gdHlwZSBpcyBhbHdheXMgaW50ZWdlcl90eXBlX25vZGUuICBDb3B5IG1pc3NpbmcKCXRyYW5zZm9ybWF0aW9ucyBmcm9tIHRoZWlyIG5vdyBvYnNvbGV0ZSBzaW1wbGlmeV9idWlsdGluXyoKCWVxdWl2YWxlbnRzLgoJKGZvbGRfYnVpbHRpbl8xKTogUGFzcyBhcmdsaXN0IGluc3RlYWQgb2YgZXhwIHRvIGZvbGRfYnVpbHRpbl9tZW1jbXAsCglmb2xkX2J1aWx0aW5fc3RyY21wIGFuZCBmb2xkX2J1aWx0aW5fc3RybmNtcC4KCShzaW1wbGlmeV9idWlsdGluKTogQ2FsbCBmb2xkX2J1aWx0aW5fbWVtY21wLCBmb2xkX2J1aWx0aW5fc3RyY21wCglhbmQgZm9sZF9idWlsdGluX3N0cm5jbXAgaW5zdGVhZCBvZiBzaW1wbGlmeV9idWlsdGluX21lbWNtcCwKCXNpbXBsaWZ5X2J1aWx0aW5fc3RyY21wIGFuZCBzaW1wbGlmeV9idWlsdGluX3N0cm5jbXAgcmVzcGVjdGl2ZWx5LgoKMjAwNC0wNy0xOCAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AZGViaWFuLm9yZz4KCgkqIE1ha2VmaWxlLmluICh0cmVlLWFsaWFzLWNvbW1vbi5vKTogVXBkYXRlIGRlcGVuZGVuY2llcy4KCjIwMDQtMDctMTcgIFNlYmFzdGlhbiBQb3AgIDxwb3BAY3JpLmVuc21wLmZyPgoKCSogY2ZnbG9vcC5jIChmbG93X2xvb3BfbmVzdGVkX3ApOiBGaXggY29tbWVudC4KCjIwMDQtMDctMTcgIEphc29uIE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgoKCVBSIGMrKy8xNjExNQoJKiBzdG9yLWxheW91dC5jIChyZWxheW91dF9kZWNsKTogTmV3IGZuLgoJKiB0cmVlLmg6IERlY2xhcmUgaXQuCgkoREVDTF9CWV9SRUZFUkVOQ0UpOiBOZXcgbWFjcm8uCgoyMDA0LTA3LTE3ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGFjdC1ldXJvcGUuZnI+CgoJKiBsaWJnY2MyLmMgKF9fZW5hYmxlX2V4ZWN1dGVfc3RhY2spOiBOZXcgc3ltYm9sLgoJKiBsaWJnY2Mtc3RkLnZlciAoR0NDXzMuNC4yKTogTmV3IHZlcnNpb24uICBJbmhlcml0IGZyb20gR0NDXzMuNAoJYW5kIGRlY2xhcmUgX19lbmFibGVfZXhlY3V0ZV9zdGFjay4KCSogbWtsaWJnY2MuaW4gKGxpYjJmdW5jcyk6IEFkZCBfZW5hYmxlX2V4ZWN1dGVfc3RhY2suCgkqIGNvbmZpZy9uZXRic2QuaCAoTkVUQlNEX0VOQUJMRV9FWEVDVVRFX1NUQUNLKTogQU5TSWZ5LgoJKiBjb25maWcvc29sMi5oIChUUkFOU0ZFUl9GUk9NX1RSQU1QT0xJTkUpOiBSZW5hbWUgaW50bwoJRU5BQkxFX0VYRUNVVEVfU1RBQ0suCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5jIChhbHBoYV9pbml0aWFsaXplX3RyYW1wb2xpbmUpOiBDb25kaXRpb25hbGl6ZQoJb24gRU5BQkxFX0VYRUNVVEVfU1RBQ0sgaW5zdGVhZCBvZiBUUkFOU0ZFUl9GUk9NX1RSQU1QT0xJTkUuCgkqIGNvbmZpZy9hbHBoYS9uZXRic2QuaCAoVFJBTlNGRVJfRlJPTV9UUkFNUE9MSU5FKTogUmVuYW1lIGludG8KCUVOQUJMRV9FWEVDVVRFX1NUQUNLLgoJKiBjb25maWcvYWxwaGEvb3NmLmggKFRSQU5TRkVSX0ZST01fVFJBTVBPTElORSk6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKHg4Nl9pbml0aWFsaXplX3RyYW1wb2xpbmUpOiBDb25kaXRpb25hbGl6ZQoJb24gRU5BQkxFX0VYRUNVVEVfU1RBQ0sgaW5zdGVhZCBvZiBUUkFOU0ZFUl9GUk9NX1RSQU1QT0xJTkUuCgkqIGNvbmZpZy9pMzg2L25ldGJzZC1lbGYuaCAoVFJBTlNGRVJfRlJPTV9UUkFNUE9MSU5FKTogUmVuYW1lIGludG8KCUVOQUJMRV9FWEVDVVRFX1NUQUNLLgoJKiBjb25maWcvaTM4Ni9uZXRic2QuaCAoVFJBTlNGRVJfRlJPTV9UUkFNUE9MSU5FKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L25ldGJzZDY0LmggKFRSQU5TRkVSX0ZST01fVFJBTVBPTElORSk6IExpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvZnJlZWJzZC5oIChUUkFOU0ZFUl9GUk9NX1RSQU1QT0xJTkUpOiBMaWtld2lzZS4KCSogY29uZmlnL3NwYXJjL25ldGJzZC1lbGYuaCAoVFJBTlNGRVJfRlJPTV9UUkFNUE9MSU5FKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChzcGFyY19pbml0aWFsaXplX3RyYW1wb2xpbmUpOiBDb25kaXRpb25hbGl6ZQoJb24gRU5BQkxFX0VYRUNVVEVfU1RBQ0sgaW5zdGVhZCBvZiBUUkFOU0ZFUl9GUk9NX1RSQU1QT0xJTkUuCgkoc3BhcmM2NF9pbml0aWFsaXplX3RyYW1wb2xpbmUpOiBMaWtld2lzZS4KCSogZG9jL3RtLnRleGkgKHRyYW1wb2xpbmVzKTogQWRkIEVOQUJMRV9FWEVDVVRFX1NUQUNLIG1hY3JvLgoKMjAwNC0wNy0xNyAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBsYW5naG9va3MuaCAoYnVpbHRpbl9mdW5jdGlvbik6IE5ldyBsYW5naG9vay4KCSogbGFuZ2hvb2tzLWRlZi5oIChMQU5HX0hPT0tTX0JVSUxUSU5fRlVOQ1RJT04pOiBOZXcuCgkoTEFOR19IT09LU19JTklUSUFMSVpFUik6IFVwZGF0ZS4KCSogdHJlZS5oIChidWlsdGluX2Z1bmN0aW9uKTogUmVtb3ZlLgoJKiBkb2MvdG0udGV4aTogVXBkYXRlLgoJKiBjLXRyZWUuaCAoYnVpbHRpbl9mdW5jdGlvbik6IERlY2xhcmUuCgkqIGMtY29tbW9uLmMsIGNvbmZpZy9hbHBoYS9hbHBoYS5jLCBjb25maWcvYXJtL2FybS5jLAoJY29uZmlnL2M0eC9jNHguYywgY29uZmlnL2Zydi9mcnYuYywgY29uZmlnL2kzODYvaTM4Ni5jLAoJY29uZmlnL2lhNjQvaWE2NC5jLCBjb25maWcvaXEyMDAwL2lxMjAwMC5jLAoJY29uZmlnL3JzNjAwMC9yczYwMDAuYywgY29uZmlnL3MzOTAvczM5MC5jLCBjb25maWcvc2gvc2guYywKCWNvbmZpZy9zdG9ybXkxNi9zdG9ybXkxNi5jOiBBbGwgY2FsbGVycyBvZiBidWlsdGluX2Z1bmN0aW9uCgljaGFuZ2VkLgoKMjAwNC0wNy0xNyAgQW5kcmV3IFBpbnNraSAgPHBpbnNraWFAcGh5c2ljcy51Yy5lZHU+CgoJUFIgdGFyZ2V0LzE2NTU2CgkqIGNvbmZpZy9pMzg2L2Rhcndpbi5oIChVTkxJS0VMWV9FWEVDVVRFRF9URVhUX1NFQ1RJT05fTkFNRSk6CglSZW1vdmUgd2hpdGUgc3BhY2UgYWZ0ZXIgdGhlIGJhY2tzbGFzaC4KCjIwMDQtMDctMTcgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNjI5NAoJKiByZXNvdXJjZS5jIChyZXR1cm5faW5zbl9wKTogTmV3IHByZWRpY2F0ZS4KCShtYXJrX3RhcmdldF9saXZlX3JlZ3MpOiBVc2UgaXQuICBTcGVjaWFsLWNhc2UgcmV0dXJuIGluc25zLgoJKGluaXRfcmVzb3VyY2VfaW5mbyk6IFVzZSBpdC4gIERvbid0IHNjYW4gdGhlIGVwaWxvZ3VlIHBhc3QKCWEgcmV0dXJuLgoKMjAwNC0wNy0xNyAgWmRlbmVrIER2b3JhayAgPHJha2R2ZXJAYXRyZXkua2FybGluLm1mZi5jdW5pLmN6PgoKCSogbG9vcC1pbml0LmMgKGxvb3Bfb3B0aW1pemVyX2luaXQsIGxvb3Bfb3B0aW1pemVyX2ZpbmFsaXplKTogRG8gbm90CglkZXN0cm95IGRvbWluYW5jZSBpbmZvcm1hdGlvbi4KCSogcGFzc2VzLmMgKHJlc3Rfb2ZfaGFuZGxlX2xvb3AyKTogIEZyZWUgZG9taW5hbmNlIGluZm9ybWF0aW9uLgoJKiB0cmVlLWNmZy5jIChjbGVhbnVwX3RyZWVfY2ZnKTogUmVtb3ZlIHVucmVhY2hhYmxlIGJsb2NrcyBiZWZvcmUKCWp1bXAgdGhyZWFkaW5nLgoJKHRocmVhZF9qdW1wcyk6IFVwZGF0ZSBkb21pbmFuY2UgaW5mb3JtYXRpb24gYW5kIHJlbW92ZSB1bnJlYWNoYWJsZQoJYmxvY2tzLgoJKiB0cmVlLXNzYS1waGlvcHQuYyAocmVwbGFjZV9waGlfd2l0aF9zdG10KTogIFVwZGF0ZSBkb21pbmFuY2UKCWluZm9ybWF0aW9uIGFuZCByZW1vdmUgdGhlIHVucmVhY2hhYmxlIGJsb2NrLgoKMjAwNC0wNy0xNyAgR3JhaGFtIFN0b3R0ICA8Z3JhaGFtLnN0b3R0QGJ0aW50ZXJuZXQuY29tPgoKCSogZW1pdC1ydGwuYyAocmVvcmRlcl9pbnNucyk6IERvbid0IHNldCBCQiBmb3IgYSBCQVJSSUVSIGluc24uCgoyMDA0LTA3LTE3ICBUb29uIE1vZW5lICA8dG9vbkBtb2VuZS5pbmRpdi5ubHV1Zy5ubD4KCgkqIGRvYy9zb3VyY2VidWlsZC50ZXhpOiBSZW1vdmUgbGliZjJjIGVudHJ5LgoKMjAwNC0wNy0xNyAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGNvbmZpZy9pMzg2L2kzODYubWQgKG1vdnYxNnFpX2ludGVybmFsKTogRml4IHR5cG8uCgoyMDA0LTA3LTE3ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBmaW5hbC5jIChmaW5hbF9zY2FuX2luc24pOiBGaXggYnJva2VuIGNvbW1pdCBmcm9tIHByZXZpb3VzCglwYXRjaC4KCjIwMDQtMDctMTcgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogYy10eXBlY2suYyAocGFyc2VyX2J1aWxkX2JpbmFyeV9vcCk6IENvbmRpdGlvbiB3YXJuaW5ncyBmb3IKCVg8PVk8PVogb24gLVdwYXJlbnRoZXNlcyBpbnN0ZWFkIG9mIC1XZXh0cmEuCgkqIGRvYy9pbnZva2UudGV4aTogVXBkYXRlLiAgRG9jdW1lbnQgdGhhdCBtb3N0IG9mIC1XcGFyZW50aGVzZXMgaXMKCXN1cHBvcnRlZCBmb3IgQyBvbmx5LgoKMjAwNC0wNy0xNyAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogY2ZnY2xlYW51cC5jICh0cnlfc2ltcGxpZnlfY29uZGp1bXApOiBEb24ndCByZW1vdmUgbGluZQoJbm90ZXMgdG8gYXZvaWQgdW5yZWFjaGFibGUgY29kZSB3YXJuaW5ncy4KCSogdG9wbGV2LmMgKGJhY2tlbmRfaW5pdCk6IERvbid0IGVtaXQgbGluZSBub3RlcyBmb3IKCXVucmVhY2hhYmxlIGNvZGUgd2FybmluZ3MuCgoJKiBjb21iaW5lLmMgKGRpc3RyaWJ1dGVfbm90ZXMpOiBEb24ndCBkaXN0cmlidXRlIGEKCVJFR19WVEFCTEVfUkVGIG5vdGUuCgkqIGZpbmFsLmMgKGZpbmFsX3NjYW5faW5zbik6IERvbid0IGhhbmRsZSBpdC4KCSogcnRsLmMgKHJlZ19ub3RlX25hbWUpOiBSZW1vdmUgaXQuCgkqIHJ0bC5oIChlbnVtIHJlZ19ub2RlKTogRGl0by4KCgkqIGVtaXQtcnRsLmMgKGZvcmNlX2xpbmVfbnVtYmVycywgcmVzdG9yZV9saW5lX251bWJlcl9zdGF0dXMpOgoJUmVtb3ZlLgoJKiBydGwuaCAoZm9yY2VfbGluZV9udW1iZXJzLCByZXN0b3JlX2xpbmVfbnVtYmVyX3N0YXR1cyk6CglSZW1vdmUgcHJvdG90eXBlcy4KCgkqIHN0bXQuYyAodXNpbmdfZWhfZm9yX2NsZWFudXBzX3AsIHVzaW5nX2VoX2Zvcl9jbGVhbnVwcyk6IE1vdmUuLi4KCSogdHJlZS1laC5jICh1c2luZ19laF9mb3JfY2xlYW51cHNfcCk6IC4uLmhlcmUuICBNYWtlIHN0YXRpYy4KCSh1c2luZ19laF9mb3JfY2xlYW51cHMpOiBBbHNvIG1vdmVkIGhlcmUuCgoJKiBleHByLmMgKGV4cGFuZF9leHByX3JlYWxfMSkgPENBU0VfTEFCRUxfRVhQUj46IERpZSBpZiB3ZSBzZWUgb25lLgoJPFNXSVRDSF9FWFBSPjogRGllIGlmIHdlIGhhdmUgYSBub24tTlVMTCBTV0lUQ0hfQk9EWS4gIFVwZGF0ZSBjYWxscwoJdG8gZXhwYW5kX3N0YXJ0X2Nhc2UgYW5kIGFkZF9jYXNlX25vZGUuCgkqIHN0bXQuYyAoc3RydWN0IG5lc3RpbmcpOiBDbGVhbnVwIHVudXNlZCBmaWVsZHMgY29uZGl0aW9uX2NvZGUsCglsYXN0X3VuY29uZGl0aW9uYWxfY2xlYW51cCwgbm9taW5hbF90eXBlLCBwcmludG5hbWUsIGFuZAoJbGluZV9udW1iZXJfc3RhdHVzLgoJKHN0cnVjdCBmaXh1cF9nb3RvKTogUmVtb3ZlLgoJKHN0cnVjdCBzdG10X3N0YXR1cyk6IFJlbW92ZSB4X2dvdG9fZml4dXBfY2hhaW4gZmllbGQuCgkoZ290b19maXh1cF9jaGFpbik6IFJlbW92ZS4KCShzdHJpcF9kZWZhdWx0X2Nhc2Vfbm9kZXMsIGdyb3VwX2Nhc2Vfbm9kZXMsIGVtaXRfanVtcF9pZl9yZWFjaGFibGUsCglwdXNoY2FzZSwgcHVzaGNhc2VfcmFuZ2UpOiBSZW1vdmUuCgkoZXhwYW5kX3N0YXJ0X2JpbmRpbmdzX2FuZF9ibG9jayk6IERvbid0IHNldCB1bnVzZWQgZmllbGRzIGluCgl0aGUgbmVzdGluZyBzdGFjay4KCShleHBhbmRfc3RhcnRfY2FzZSwgYWRkX2Nhc2Vfbm9kZSk6IENsZWFudXAgdW51c2VkIGZvcm1hbCBhcmd1bWVudHMuCgkoZXhwYW5kX2VuZF9jYXNlX3R5cGUpOiBEb24ndCBzaW1wbGlmeSB0aGUgY2FzZS1saXN0LiAgVXNlIGVtaXRfanVtcAoJaW5zdGVhZCBvZiBlbWl0X2p1bXBfaWZfcmVhY2hhYmxlLgoJKGVtaXRfY2FzZV9ub2Rlcyk6IExpa2V3aXNlLgoJKiB0cmVlLWNmZy5jIChncm91cF9jYXNlX2xhYmVscywgY2xlYW51cF9kZWFkX2xhYmVscyk6IE5vIGxvbmdlcgoJc3RhdGljLgoJKHVwZGF0ZV9laF9sYWJlbCk6IFdvcmsgYXJvdW5kIGxlZnQtb3ZlciBleGNlcHRpb24gaGFuZGluZyByZWdpb25zLgoJKiB0cmVlLWZsb3cuaCAoZ3JvdXBfY2FzZV9sYWJlbHMsIGNsZWFudXBfZGVhZF9sYWJlbHMpOiBBZGQgcHJvdG9zLgoJKiB0cmVlLW9wdGltaXplLmMgKGV4ZWN1dGVfY2xlYW51cF9jZmdfcG9zdF9vcHRpbWl6aW5nKTogTmV3IGZ1bmN0aW9uLgoJKHBhc3NfY2xlYW51cF9jZmdfcG9zdF9vcHRpbWl6aW5nKTogTmV3IHBhc3MuCgkoaW5pdF90cmVlX29wdGltaXphdGlvbl9wYXNzZXMpOiBSdW4gdGhlIG5ldyBwYXNzIGFmdGVyIGFsbAoJb3B0aW1pemF0aW9ucy4KCSogdHJlZS5oIChwdXNoY2FzZSwgcHVzaGNhc2VfcmFuZ2UpOiBSZW1vdmUgcHJvdG90eXBlcy4KCShleHBhbmRfc3RhcnRfY2FzZSwgYWRkX2Nhc2Vfbm9kZSk6IFVwZGF0ZSBwcm90b3R5cGVzLgoKMjAwNC0wNy0xNiAgS3Jpc3RlciBXYWxmcmlkc3NvbiAgPGNhdG9AZGYubHRoLnNlPgoKCSogdHJlZS1pbmxpbmUuYyAoZXN0aW1hdGVfbnVtX2luc25zXzEpOiBDb3JyZWN0IGluY3JlYXNlIG9mIGNvdW50LgoKMjAwNC0wNy0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGJ1aWx0aW5zLmMgKHN0ZF9leHBhbmRfYnVpbHRpbl92YV9hcmcpOiBSZW1vdmUuCgkoZXhwYW5kX2J1aWx0aW5fdmFfYXJnKTogUmVtb3ZlLgoJKiBleHByLmg6IERvbid0IGRlY2xhcmUgdGhlbS4KCSogZ2ltcGxpZnkuYyAobWFya19kZWNsc192b2xhdGlsZV9yKTogUmVtb3ZlLgoJKGNvcHlfaWZfc2hhcmVkX3IpOiBEb24ndCBjYWxsIGl0LgoJKiB0YXJnZXQtZGVmLmg6IERvbid0IHRlc3QgRVhQQU5EX0JVSUxUSU5fVkFfQVJHLgoJKiBleHByLmMgKGV4cGFuZF9leHByX3JlYWxfMSk6IERvbid0IGhhbmRsZSBWQV9BUkdfRVhQUi4KCSogZ2ltcGxlLWxvdy5jIChsb3dlcl9zdG10KTogTGlrZXdpc2UuCgkqIHRyZWUtY2ZnLmMgKGNmZ19yZW1vdmVfdXNlbGVzc19zdG10c19iYik6IExpa2V3aXNlLgoJKiB0cmVlLWdpbXBsZS5jIChpc19naW1wbGVfdG1wX3JocywgaXNfZ2ltcGxlX3N0bXQpOiBMaWtld2lzZS4KCSogdHJlZS1zc2Etb3BlcmFuZHMuYyAoZ2V0X2V4cHJfb3BlcmFuZHMpOiBMaWtld2lzZS4KCSogZG9jL3RtLnRleGkgKFRBUkdFVF9HSU1QTElGWV9WQV9BUkdfRVhQUik6IERvbid0IG1lbnRpb24KCUVYUEFORF9CVUlMVElOX1ZBX0FSRy4KCSogc3lzdGVtLmggKEVYUEFORF9CVUlMVElOX1ZBX0FSRyk6IFBvaXNvbi4KCSogY29uZmlnL2FscGhhL2FscGhhLmgsIGNvbmZpZy9hbHBoYS91bmljb3Ntay5oLCBjb25maWcvaTM4Ni9pMzg2LmgsCgljb25maWcvaWE2NC9pYTY0LmgsIGNvbmZpZy9yczYwMDAvcnM2MDAwLmgsIGNvbmZpZy9zMzkwL3MzOTAuaCwKCWNvbmZpZy9zcGFyYy9zcGFyYy5oIChFWFBBTkRfQlVJTFRJTl9WQV9BUkcpOiBSZW1vdmUuCgoyMDA0LTA3LTE2ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIHRyZWUtc3NhLXByZS5jIChpbnNlcnRfYXV4KTogQnJlYWsgb3V0IGlmIHdlIGhpdAoJYSBjcml0aWNhbCBlZGdlLgoKMjAwNC0wNy0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGJhc2ljLWJsb2NrLmggKHJlbW92ZV9mYWtlX2V4aXRfZWRnZXMpOiBEZWNsYXJlLgoJKiBjZmdhbmFsLmMgKHJlbW92ZV9mYWtlX3ByZWRlY2Vzc29ycyk6IFJlbmFtZSBmcm9tCglyZW1vdmVfZmFrZV9zdWNjZXNzb3JzOyBpdGVyYXRlIG92ZXIgcHJlZGVjZXNzb3JzLgoJKHJlbW92ZV9mYWtlX2V4aXRfZWRnZXMpOiBOZXcuCgkqIGNmZ2NsZWFudXAuYyAodHJ5X29wdGltaXplX2NmZyk6IFVzZSBpdC4KCSogZ2NzZS5jIChvbmVfcHJlX2djc2VfcGFzcywgc3RvcmVfbW90aW9uKTogTGlrZXdpc2UuCgkqIHByZWRpY3QuYyAoZXN0aW1hdGVfcHJvYmFiaWxpdHkpOiBMaWtld2lzZS4KCSh0cmVlX2VzdGltYXRlX3Byb2JhYmlsaXR5LCBub3RlX3ByZWRpY3Rpb25fdG9fYnJfcHJvYik6IExpa2V3aXNlLgoJKiB0cmVlLWNmZy5jIChtYWtlX2VkZ2VzKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLXByZS5jIChmaW5pX3ByZSk6IExpa2V3aXNlLgoJKiBwcm9maWxlLmMgKGluc3RydW1lbnRfZWRnZXMpOiBEb24ndCByZW1vdmVfZmFrZV9lZGdlcy4KCShicmFuY2hfcHJvYik6IERvIGl0IGVhcmxpZXIgaGVyZS4KCjIwMDQtMDctMTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChnZXRfZXhwcl9vcGVyYW5kcyk6IEZpeCAyMDA0LTA3LTE1Cglzd2l0Y2hpZmljYXRpb24gd3J0IENPTlNUUlVDVE9SLiAgRG9jdW1lbnQgdGhlIHJlYXNvbi4KCjIwMDQtMDctMTYgIEZyYW5rIENoLiBFaWdsZXIgIDxmY2hlQHJlZGhhdC5jb20+CgoJKiB0cmVlLW11ZGZsYXAuYyAobWZfZmlsZV9mdW5jdGlvbl9saW5lX3RyZWUpOiBDb3JyZWN0IHR5cG8KCXRoYXQgcHJldmVudGVkIGRlc2NyaXB0aXZlIF9fbWZfY2hlY2sgc291cmNlIGxvY2F0aW9uIHN0cmluZ3MuCgoyMDA0LTA3LTE2ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdHJlZS1kZWYgKFdJVEhfU0laRV9FWFBSKTogTmV3LgoJKiBleHBsb3cuYyAoZXhwcl9zaXplLCBpbnRfZXhwcl9zaXplKTogSGFuZGxlIFdJVEhfU0laRV9FWFBSLgoJKiBleHByLmMgKGV4cGFuZF9leHByX3JlYWxfMSk6IExpa2V3aXNlLgoJKiBnaW1wbGlmeS5jIChtYXliZV93aXRoX3NpemVfZXhwcik6IE5ldy4KCShnaW1wbGlmeV9hcmcsIGdpbXBsaWZ5X21vZGlmeV9leHByKTogVXNlIGl0LgoJKGdpbXBsaWZ5X21vZGlmeV9leHByX3RvX21lbWNweSk6IFRha2Ugc2l6ZSBwYXJhbWV0ZXIuCgkoZ2ltcGxpZnlfbW9kaWZ5X2V4cHJfdG9fbWVtc2V0KTogTGlrZXdpc2UuCgkoZ2ltcGxpZnlfZXhwcik6IEhhbmRsZSBXSVRIX1NJWkVfRVhQUi4KCSogdHJlZS1hbGlhcy1jb21tb24uYyAoZmluZF9mdW5jX2FsaWFzZXMpOiBMaWtld2lzZS4KCSogdHJlZS1laC5jICh0cmVlX2NvdWxkX3RyYXBfcCk6IExpa2V3aXNlLgoJKHRyZWVfY291bGRfdGhyb3dfcCk6IExpa2V3aXNlLgoJKiB0cmVlLWdpbXBsZS5jIChpc19naW1wbGVfbHZhbHVlKTogTGlrZXdpc2UuCgkoZ2V0X2NhbGxfZXhwcl9pbik6IExpa2V3aXNlLgoJKiB0cmVlLWlubGluZS5jIChlc3RpbWF0ZV9udW1faW5zbnNfMSk6IExpa2V3aXNlLgoJKGV4cGFuZF9jYWxsc19pbmxpbmUpOiBMaWtld2lzZS4KCSogdHJlZS1uZXN0ZWQuYyAoY29udmVydF9jYWxsX2V4cHIpOiBMaWtld2lzZS4KCSogdHJlZS1wcmV0dHktcHJpbnQuYyAoZHVtcF9nZW5lcmljX25vZGUpOiBMaWtld2lzZS4KCSogdHJlZS1zcmEuYyAoc3JhX3dhbGtfZXhwcik6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1hbGlhcy5jIChhZGRfcG9pbnRlZF90b19leHByKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWNjcC5jIChnZXRfcmhzLCBzZXRfcmhzKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGdldF9leHByX29wZXJhbmRzKTogTGlrZXdpc2UuCgkqIHRyZWUtdGFpbGNhbGwuYyAoZmluZF90YWlsX2NhbGxzKTogTGlrZXdpc2UuCgoJKiBjYWxscy5jIChleHBhbmRfY2FsbCk6IFJlc2V0IG9sZF9zdGFja19hbGxvY2F0ZWQgYWZ0ZXIKCWNhbGxpbmcgZW1pdF9zdGFja19yZXN0b3JlLgoKMjAwNC0wNy0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGxhbmdob29rcy1kZWYuaCAoTEFOR19IT09LU19UUkVFX0lOTElOSU5HX0NPUFlfUkVTX0RFQ0xfRk9SX0lOTElOSU5HLAoJbGhkX3RyZWVfaW5saW5pbmdfY29weV9yZXNfZGVjbF9mb3JfaW5saW5pbmcpOiBSZW1vdmUuCgkqIGxhbmdob29rcy5jIChsaGRfdHJlZV9pbmxpbmluZ19jb3B5X3Jlc19kZWNsX2Zvcl9pbmxpbmluZyk6IFJlbW92ZS4KCSogbGFuZ2hvb2tzLmggKHN0cnVjdCBsYW5nX2hvb2tzX2Zvcl90cmVlX2lubGluaW5nKTogUmVtb3ZlCgljb3B5X3Jlc19kZWNsX2Zvcl9pbmxpbmluZy4KCgkqIHRyZWUtaW5saW5lLmMgKGRlY2xhcmVfcmV0dXJuX3ZhcmlhYmxlKTogTmV3IG1vZGlmeV9kZXN0IGFyZ3VtZW50LgoJVXNlIGl0IGFzIHRoZSByZXR1cm4gdmFsdWUsIHdoZW4gcG9zc2libGUgb3IgbWFuZGl0b3J5LiAgSGFuZGxlCglUUkVFX0FERFJFU1NBQkxFIHR5cGVzLgoJKGV4cGFuZF9jYWxsX2lubGluZSk6IEV4dHJhY3QgTU9ESUZZX0VYUFIgbGhzIGZvciBjYWxsLiAgU2ltcGxpZnkKCXJlcGxhY2VtZW50IG9mIENBTExfRVhQUi4KCjIwMDQtMDctMTYgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmVlLWZsb3cuaCAoc3RydWN0IHZhcl9hbm5fZCk6IFJlbW92ZSBoYXNfaGlkZGVuX3VzZS4KCSogZ2ltcGxlLWxvdy5jIChleHBhbmRfdmFyX3ApOiBEb24ndCBjaGVjayBpdC4KCSogdHJlZS1zc2EtYWxpYXMuYyAoc2V0dXBfcG9pbnRlcnNfYW5kX2FkZHJlc3NhYmxlcyk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1jb3B5cmVuYW1lLmMgKHJlbmFtZV9zc2FfY29waWVzKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGFkZF9zdG10X29wZXJhbmQpOiBMaWtld2lzZS4KCSogdHJlZS1kZmEuYyAoZmluZF9oaWRkZW5fdXNlX3ZhcnMsIGZpbmRfaGlkZGVuX3VzZV92YXJzX3IpOiBLaWxsLgoJKGZpbmRfcmVmZXJlbmNlZF92YXJzKTogRG9uJ3QgY2FsbCB0aGVtLgoJKiB0cmVlLWZsb3ctaW5saW5lLmggKGhhc19oaWRkZW5fdXNlLCBzZXRfaGFzX2hpZGRlbl91c2UpOiBLaWxsLgoKMjAwNC0wNy0xNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGZ1bmN0aW9uLmMgKHBhc3NfYnlfcmVmZXJlbmNlKTogVHJ1ZSBmb3IgYWxsIHZhcmlhYmxlIHNpemVkIHR5cGVzLgoKMjAwNC0wNy0xNiAgU2ViYXN0aWFuIFBvcCAgPHBvcEBjcmkuZW5zbXAuZnI+CgoJKiBNYWtlZmlsZS5pbiAodHJlZS1wcmV0dHktcHJpbnQubyk6IERlcGVuZCBvbiB0cmVlLWNocmVjLmguCgkqIHRyZWUtcHJldHR5LXByaW50LmM6IEluY2x1ZGUgdHJlZS1jaHJlYy5oLgoJKGR1bXBfZ2VuZXJpY19ub2RlKTogUHJldHR5IHByaW50IFNDRVZfS05PV04sIFNDRVZfTk9UX0tOT1dOCglhbmQgUE9MWU5PTUlBTF9DSFJFQyBub2Rlcy4KCjIwMDQtMDctMTYgIFN0ZXZlIEVsbGNleSAgPHNqZUBjdXAuaHAuY29tPgoKCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fc3RwY3B5KTogRG8gbm90IGNyZWF0ZSB0ZW1wb3JhcnkKCXJlZyB3aXRoIFZPSURtb2RlLgoKMjAwNC0wNy0xNiAgU2VnaGVyIEJvZXNzZW5rb29sICA8c2VnaGVyQGtlcm5lbC5jcmFzaGluZy5vcmc+CgoJKiBjb25maWcvcnM2MDAwL2VhYmkuYXNtIChfX2VhYmlfY29udmVydCk6IEZpeCB0eXBvIChjbXBpIHZzLiBjbXB3aSkuCgoyMDA0LTA3LTE2ICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsMUBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvczM5MC5tZDogQ2hhbmdlZCBldmVyeSBvY2N1cmVuY2Ugb2YgQkFTRV9SRUdJU1RFUgoJdG8gQkFTRV9SRUdOVU0uCgkqIGNvbmZpZy9zMzkwL3MzOTAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy9zMzkwL3MzOTAuaDogTGlrZXdpc2UuCgoyMDA0LTA3LTE2ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kIChhZGRzaTMsIGFkZGRpMyk6IFJlbW92ZSBzcGVjaWFsIGhhbmRsaW5nCglvZiAkc3AgYWRkcy4gIFJlbW92ZSBSRUdOTyBjaGVja3MgZnJvbSBtaXBzMTYgcGF0dGVybnMuCgoyMDA0LTA3LTE2ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kOiBEZWxldGUgb3V0ZGF0ZWQgY29tbWVudC4KCjIwMDQtMDctMTYgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuYyAoZ2V0X2Zsb2F0X2NvbXBhcmVfY29kZXMpOiBEZWxldGUuCgkobWlwc19lbWl0X2NvbXBhcmUpOiBOZXcgZnVuY3Rpb24sIG1vc3RseSBleHRyYWN0ZWQgZnJvbQoJZ2V0X2Zsb2F0X2NvbXBhcmVfY29kZXMgYW5kIGdlbl9jb25kaXRpb25hbF9icmFuY2guCgkoZ2VuX2NvbmRpdGlvbmFsX2JyYW5jaCwgZ2VuX2NvbmRpdGlvbmFsX21vdmUpOiBVc2UgaXQuCgoyMDA0LTA3LTE2ICBTZWdoZXIgQm9lc3Nlbmtvb2wgIDxzZWdoZXJAa2VybmVsLmNyYXNoaW5nLm9yZz4KCgkqIGdlbmF1dG9tYXRhLmMgKGFkZF92ZWN0KTogU3BlZWR1cCBieSB1c2luZyBpbnRlZ2VycyBhcwoJYml0LXZlY3RvcnMgZm9yIHdhbGtpbmcgdGhyb3VnaCB0aGUgY29tYl92ZWN0IGFuZCBmaW5kaW5nCglhIG1hdGNoLgoKMjAwNC0wNy0xNiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5jIChtaXBzX3plcm9faWZfZXF1YWwpOiBPbmx5IHVzZSBYT1JzIGlmIHRoZSBzZWNvbmQKCW9wZXJhbmQgaXMgYW4gdW5zX2FyaXRoX29wZXJhbmQ7IHVzZSBzdWJ0cmFjdGlvbiBvdGhlcndpc2UuCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKGNtcHNpLCBjbXBkaSk6IEFsbG93IGFueSBub25tZW1vcnlfb3BlcmFuZCwKCW5vdCBqdXN0IGFyaXRoX29wZXJhbmRzLgoKMjAwNC0wNy0xNiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy1wcm90b3MuaCAoZ2VuX2ludF9yZWxhdGlvbmFsKTogRGVsZXRlLgoJKG1pcHNfZW1pdF9zY2MpOiBEZWNsYXJlLgoJKiBjb25maWcvbWlwcy9taXBzLmMgKGludGVybmFsX3Rlc3QpOiBEZWxldGUuCgkoc2xlX29wZXJhbmQsIHNsZXVfb3BlcmFuZCk6IE5ldyBmdW5jdGlvbnMuCgkobWFwX3Rlc3RfdG9faW50ZXJuYWxfdGVzdCwgZ2VuX2ludF9yZWxhdGlvbmFsKTogRGVsZXRlLgoJKG1pcHNfZW1pdF9iaW5hcnksIG1pcHNfcmVsYXRpb25hbF9vcGVyYW5kX29rX3ApCgkobWlwc19lbWl0X2ludF9yZWxhdGlvbmFsLCBtaXBzX3plcm9faWZfZXF1YWwpCgkobWlwc19lbWl0X3NjYyk6IE5ldyBmdW5jdGlvbnMuCgkoZ2VuX2NvbmRpdGlvbmFsX2JyYW5jaCk6IFJld29yayB0byB1c2UgbWlwc19lbWl0X2ludF9yZWxhdGlvbmFsLgoJKiBjb25maWcvbWlwcy9taXBzLmggKFBSRURJQ0FURV9DT0RFUyk6IEFkZCBzbGVfb3BlcmFuZCBhbmQKCXNsZXVfb3BlcmFuZC4KCSogY29uZmlnL21pcHMvbWlwcy5tZCAoc2VxLCBzbmUsIHNndCwgc2dlLCBzbHQsIHNsZSwgc2d0dSwgc2dldSkKCShzbHR1LCBzbGV1KTogVXNlIG1pcHNfZW1pdF9zY2MuCgkoKnNnZV9bc2RdaSwgKnNnZXVfW3NkXWkpOiBOZXcgcGF0dGVybnMuCgkoKnNsZV9bc2RdaSwgKnNsZV9bc2RdaV9taXBzMTYpOiBVc2Ugc2xlX29wZXJhbmQuCgkoKnNsZXVfW3NkXWksICpzbGV1X1tzZF1pX21pcHMxNik6IFVzZSBzbGV1X29wZXJhbmQuCgoyMDA0LTA3LTE2ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kICgqc2d0X2RpX21pcHMxNik6IEZpeCBkZXN0aW5hdGlvbiBjb25zdHJhaW50LgoKMjAwNC0wNy0xNiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5tZCAoKnNlcV9bc2RdaSk6IFJlbmFtZWQgZnJvbSBzZXFfW3NkXWlfemVyby4KCSgqc25lX1tzZF1pKTogTGlrZXdpc2Ugc25lX1tzZF1pX3plcm8uCgkoKnNndF9bc2RdaSk6IC4uLmFuZCBzZ3RfW3NkXWkuCgkoKnNsdF9bc2RdaSk6IC4uLmFuZCBzbHRfW3NkXWkuCgkoKnNndHVfW3NkXWkpOiAuLi5hbmQgc2d0dV9bc2RdaS4KCSgqc2x0dV9bc2RdaSk6IC4uLmFuZCBzbHR1X1tzZF1pLgoJKCpzbGV1X1tzZF1pKTogLi4uYW5kIHNsZXVfW3NkXWlfY29uc3QuCglOYW1lIHByZXZpb3VzbHkgdW5uYW1lZCBtaXBzMTYgcGF0dGVybnMuICBGb3JtYXR0aW5nIGZpeGVzLgoKMjAwNC0wNy0xNiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy5jIChjbXBfb3BlcmFuZHMpOiBSZW5hbWVkIGZyb20gYnJhbmNoX2NtcC4KCShicmFuY2hfdHlwZSk6IERlbGV0ZS4KCShnZW5fY29uZGl0aW9uYWxfYnJhbmNoLCBnZW5fY29uZGl0aW9uYWxfbW92ZSkKCShtaXBzX2dlbl9jb25kaXRpb25hbF90cmFwKTogVXBkYXRlIGFmdGVyIG5hbWUgY2hhbmdlLiAgR2V0IHRoZQoJY29tcGFyaXNvbiBtb2RlIGZyb20gY21wX29wZXJhbmRzWzBdLgoJKiBjb25maWcvbWlwcy9taXBzLmggKGNtcF90eXBlLCBicmFuY2hfdHlwZSk6IERlbGV0ZS4KCShjbXBfb3BlcmFuZHMpOiBSZW5hbWVkIGZyb20gYnJhbmNoX2NtcC4KCSogY29uZmlnL21pcHMvbWlwcy5tZCAoY21wc2ksIGNtcGRpLCBjbXBzZiwgY21wZGYpOiBVcGRhdGUgYWZ0ZXIKCW5hbWUgY2hhbmdlLiAgRG9uJ3Qgc2V0IGJyYW5jaF90eXBlLgoJKHNlcSwgc25lLCBzZ3QsIHNnZSwgc2x0LCBzbGUsIHNndHUsIHNnZXUsIHNsdHUsIHNsZXUpOiBDaGVjayB0aGUKCW1vZGUgY2xhc3Mgb2YgY21wX29wZXJhbmRzWzBdIHJhdGhlciB0aGFuIGJyYW5jaF90eXBlLiAgVXBkYXRlIGFmdGVyCgluYW1lIGNoYW5nZS4KCjIwMDQtMDctMTYgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuYyAobWlwc19ydHhfY29zdHMpOiBJbiBtaXBzMTYgY29kZSwgc2V0IHRoZSBjb3N0CglvZiAwLi4uMjU1IHRvIDAgd2hlbiBpbnNpZGUgYSBTRVQuCgoyMDA0LTA3LTE2ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLm1kOiBSZW1vdmUgbWlwczE2IGRlZmluZV9wZWVwaG9sZXMuCgoyMDA0LTA3LTE2ICBEYW5pZWwgQmVybGluICA8ZGJlcmxpbkBkYmVybGluLm9yZz4KCgkqIHRyZWUtc3NhLXByZS5jIChpbml0X3ByZSk6IENvbm5lY3QgaW5maW5pdGUgbG9vcHMgdG8gZXhpdC4KCShmaW5pX3ByZSk6IFJlbW92ZSBmYWtlIGVkZ2VzLgoKMjAwNC0wNy0xNSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGdldF9leHByX29wZXJhbmRzKTogVXNlIGEgc3dpdGNoLiAgU3BsaXQgb3V0Li4uCgkoZ2V0X2luZGlyZWN0X3JlZl9vcGVyYW5kcywgZ2V0X2NhbGxfZXhwcl9vcGVyYW5kcyk6IC4uLiB0aGVzZS4KCjIwMDQtMDctMTUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB2ZWMuaCAoVkVDX2FkZHJlc3MpOiBOZXcgZnVuY3Rpb24uCgoyMDA0LTA3LTE0ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBtaWRkbGUtZW5kLzE1ODg1CgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2FyZyk6IE5ldyBmbiwgc3BsaXQgb3V0IGZyb20uLi4KCShnaW1wbGlmeV9jYWxsX2V4cHIpOiBIZXJlLiAgU3BlY2lhbC1jYXNlIEJVSUxUX0lOX1ZBX1NUQVJULgoKMjAwNC0wNy0xNSAgUm9tYW4gWmlwcGVsICA8emlwcGVsQGxpbnV4LW02OGsub3JnPgoKCSogY29uZmlnL202OGsvbTY4ay5jIChvdXRwdXRfbW92ZV9xaW1vZGUpOiBBYm9ydCBvbiBhbiBhdHRlbXB0IHRvCglnZW5lcmF0ZSBjb2RlIHdoaWNoIGlzIGdlbmVyYXRlZCBieSBwdXNocWkxIG5vdwoJKiBjb25maWcvbTY4ay9tNjhrLmggKE1PVkVfQllfUElFQ0VTX1ApOiBSZW1vdmUuCgoyMDA0LTA3LTE1ICBSb21hbiBaaXBwZWwgIDx6aXBwZWxAbGludXgtbTY4ay5vcmc+CgoJKiBjb21iaW5lLmMgKHNpbXBsaWZ5X3NldCk6IG1hdGNoIHRoZSBtb2RlIG9mIHRoZSBjb25zdGFudCAwIHdpdGgKCXRoZSB0ZXN0ZWQgb3BlcmFuZCB0byBtYXRjaCB0aGUgY29tcGFyZSBiZWhhdmlvdXIgYW5kIHRoZQoJc2ltcGxpZnlfcmVsYXRpb25hbF9vcGVyYXRpb24oKSBleHBlY3RhdGlvbi4KCjIwMDQtMDctMTUgIEFsZHkgSGVybmFuZGV6ICA8YWxkeWhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kICgiYnVub3JkZXJlZCIpOiBEaXNhYmxlIGZvciBlNTAwLgoJKCJib3JkZXJlZCIpOiBTYW1lLgoKMjAwNC0wNy0xNSAgQWxkeSBIZXJuYW5kZXogIDxhbGR5aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3JzNjAwMC9yczYwMDAubWQgKCIqY2NlcV9pb3JfY29tcGFyZSIpOiBBbGxvdwoJdW5jb25kaXRpb25hbGx5LgoJKiBjb25maWcvcnM2MDAwL3NwZS5tZCAoImU1MDBfY2NlcV9pb3JfY29tcGFyZSIpOiBSZW1vdmUuCgoyMDA0LTA3LTE1ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHNfYWRqdXN0X2luc25fbGVuZ3RoKTogRml4IGhhbmRsaW5nIG9mCgljYWxscyBpbiBtaXBzMTYgY29kZS4KCjIwMDQtMDctMTUgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMubWQ6IEluIHRoZSBtaXBzMTYgbGkvbmVnIHNwbGl0dGVyLCB1c2UgU0ltb2RlIGZvcgoJdGhlIGRlc3RpbmF0aW9uIG9mIHRoZSBsaSBhcyB3ZWxsIGFzIGZvciB0aGUgbmVnLgoKMjAwNC0wNy0xNSAgRnJhbmsgQ2guIEVpZ2xlciAgPGZjaGVAcmVkaGF0LmNvbT4KCglnKysvMTU4NjEKCSogY2dyYXBodW5pdC5jIChjZ3JhcGhfYnVpbGRfc3RhdGljX2NkdG9yKTogQWRkIHByaW9yaXR5IGFyZ3VtZW50LgoJKiBjZ3JhcGguaDogVXBkYXRlIGRlY2xhcmF0aW9uLgoJKiBjLWRlY2wuYyAoYnVpbGRfY2R0b3IpOiBVcGRhdGUgY2FsbCB3aXRoIGRlZmF1bHQgcHJpb3JpdHkuCgkqIGNvdmVyYWdlLmMgKGNyZWF0ZV9jb3ZlcmFnZSk6IERpdHRvLgoJKiB0cmVlLW11ZGZsYXAuYyAobWZfaW5pdF9mbmRlY2wpOiBOZXcgdHJlZS4KCShtdWRmbGFwX2luaXQpOiBTZXQgaXQuCgkobXVkZmxhcF9yZWdpc3Rlcl9jYWxsKTogQXJyYW5nZSB0byBjYWxsIF9fbWZfaW5pdCBiZWZvcmUgdGhlIGZpcnN0CglfX21mX3JlZ2lzdGVyIGNhbGwuCgkobXVkZmxhcF9maW5pc2hfZmlsZSk6IE1hcmsgdGhlIG11ZGZsYXAgc3RhdGljIGluaXRpYWxpemVyIGFzIGV4dHJhCgloaWdoIHByaW9yaXR5LCB0byBiZWF0IGFsbCBDKysgc3RhdGljIGNvbnN0cnVjdG9ycy4KCjIwMDQtMDctMTUgIEplZmYgTGF3ICA8bGF3QHJlZGhhdC5jb20+CgoJKiBsb29wLmMgKGNoZWNrX2luc25fZm9yX2dpdnMpOiBSZXN0b3JlIGNoZWNrIGZvciBjb2RlIGxhYmVscyB0aGF0IHdhcwoJYWNjaWRlbnRhbGx5IGRlbGV0ZWQgYnkgYSByZWNlbnQgY2hlY2tpbi4KCjIwMDQtMDctMTUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB2ZWMuaCAoVkVDX1RfdHJ1bmNhdGUpOiBBbGxvdyB0cnVuY2F0aW9uIG9mIGFuIGVtcHR5IHZlY3Rvci4KCShWRUNfVF9xdWlja19pbnNlcnQsIFZFQ19UX29yZGVyZWRfcmVtb3ZlKTogRml4IHNpemVvZihUKSB0aGlua28uCgoyMDA0LTA3LTE0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogcHJpbnQtdHJlZS5jIChwcmludF9ub2RlKTogRml4IGNhc3RzIGxhc3QgY2hhbmdlLgoKMjAwNC0wNy0xNSAgUGF1bCBCcm9vawk8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogZHdhcmYyb3V0LmMgKGR3YXJmMm91dF9iZWdpbl9wcm9sb2d1ZSk6IFJlbmFtZSBJQTY0X1VOV0lORF9JTkZPCgl0byBUQVJHRVRfVU5XSU5EX0lORk8uCgkqIGV4Y2VwdC5jIChvdXRwdXRfZnVuY3Rpb25fZXhjZXB0aW9uX3RhYmxlKTogRGl0dG8uCgkqIGV4Y2VwdC5oOiBEaXR0by4KCSogb3B0cy5jIChkZWNvZGVfb3B0aW9ucyk6IERpdHRvLgoJKiBwYXNzZXMuYyAocmVzdF9vZl9oYW5kbGVfZmluYWwpOiBEaXR0by4KCSogZmluYWwuYyAoZmluYWxfc3RhcnRfZnVuY3Rpb24pOiBEaXR0by4KCShmaW5hbF9zY2FuX2luc24sIGZpbmFsX3NjYW5faW5zbik6IFJlcGxhY2UgSUE2NF9VTldJTkRfRU1JVCB3aXRoCgl0YXJnZXQgaG9vay4KCSogdGFyZ2hvb2tzLmggKGRlZmF1bHRfdW53aW5kX2VtaXQpOiBEZWNsYXJlLgoJKiB0YXJnaG9va3MuYyAoZGVmYXVsdF91bndpbmRfZW1pdCk6IE5ldyBmdW5jdGlvbi4KCSogdGFyZ2V0LWRlZi5oOiBEZWZpbmUgYW5kIHVzZSBUQVJHRVRfVU5XSU5EX0VNSVQuCgkqIHRhcmdldC5oIChzdHJ1Y3QgZ2NjX3RhcmdldCk6IEFkZCB1bndpbmRfZW1pdC4KCSogY29uZmlnL2lhNjQvaWE2NC5jIChUQVJHRVRfVU5XSU5EX0VNSVQpOiBEZWZpbmUuCgkqIGNvbmZpZy9pYTY0L2lhNjQuaDogUmVuYW1lIElBNjRfVU5XSU5EX0lORk8gdG8gVEFSR0VUX1VOV0lORF9JTkZPLgoJUmVtb3ZlIElBNjRfVU5XSU5EX0VNSVQuCgkqIGRvYy90bS50ZXhpOiBEb2N1bWVudCBUQVJHRVRfVU5XSU5EX0VNSVQgYW5kIFRBUkdFVF9VTldJTkRfSU5GTy4KCjIwMDQtMDctMTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBwcmludC10cmVlLmMgKHByaW50X25vZGUpOiBIYW5kbGUgU1NBX05BTUUuCgoyMDA0LTA3LTE0ICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJUFIgdGFyZ2V0LzE2MzI1CgkqIGNvbmZpZy9taXBzL21pcHMuaCAoU1RBUlRJTkdfRlJBTUVfT0ZGU0VUKTogV2hlbiBmbGFnX3Byb2ZpbGVfdmFsdWUKCWFuZCAhIFRBUkdFVF82NEJJVCwgaW5jbHVkZSBSRUdfUEFSTV9TVEFDS19TUEFDRS4KCjIwMDQtMDctMTUgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZXhwci5jIChleHBhbmRfYXNzaWdubWVudCk6IFJlZW5hYmxlIGJpdGZpZWxkICs9IG9wdGltaXphdGlvbnMuCglVc2UgYWxpYXMgc2V0IDAgZm9yIG1lbW9yeSwgZG8gcHJvcGVyIG1vZGUgY2FsY3VsYXRpb25zIGFuZCBhZGp1c3QKCWFkZHJlc3MgZm9yIG1lbW9yaWVzLgoKMjAwNC0wNy0xNCAgUGVyIEJvdGhuZXIJIDxwZXJAYm90aG5lci5jb20+CgoJKiBpbnB1dC5oOiAgSWYgVVNFX01BUFBFRF9MT0NBVElPTiwgZGVmaW5lIHNlcGFyYXRlIGV4cGFuZGVkX2xvY2F0aW9uCglzdHJ1Y3R1cmUgd2l0aCBleHRyYSBjb2x1bW4gZmllbGQuCgkqIHRyZWUuYyAoZXhwYW5kX2xvY2F0aW9uKTogIEFsc28gZmlsbCBpbiBjb2x1bW4gZmllbGQuCgkqIGdlbmd0eXBlLWxleC5sOiAgSWdub3JlIGV4cGFuZGVkX2xvY2F0aW9uIHR5cGVkZWYsIHNpbnplIGdlbmd0eXBlCglnZXRzIGNvbmZ1c2VkIGJ5IHRoZSB0d28gY29uZGl0aW9uYWxseS1jb21waWxlZCBkZWZpbml0aW9ucy4KCjIwMDQtMDctMTQgIEVyaWMgQ2hyaXN0b3BoZXIgIDxlY2hyaXN0b0ByZWRoYXQuY29tPgoKCSogY2FsbHMuYyAoZXhwYW5kX2NhbGwpOiBGaXggdHlwbyBpbiBjb21tZW50LgoKMjAwNC0wNy0xNCAgU3RldmUgRWxsY2V5ICA8c2plQGN1cC5ocC5jb20+CgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfZXhwYW5kX2NvbXBhcmUpOiBBbGxvdyBPUkRFUkVECgljb21wYXJpc2lvbiBvZiBURm1vZGUuCgoyMDA0LTA3LTE0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2FscGhhL2FscGhhLmMgKGFscGhhX2dpbXBsaWZ5X3ZhX2FyZ18xKTogTW92ZSBpbmRpcmVjdCAuLi4KCShhbHBoYV9naW1wbGlmeV92YV9hcmcpOiAuLi4gaGFuZGxpbmcgaGVyZS4gIFVzZSBwYXNzX2J5X3JlZmVyZW5jZS4KCSogY29uZmlnL2M0eC9jNHguYyAoYzR4X2dpbXBsaWZ5X3ZhX2FyZ19leHByKTogVXNlIHBhc3NfYnlfcmVmZXJlbmNlLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGl4ODZfZ2ltcGxpZnlfdmFfYXJnKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pODYwL2k4NjAuYyAoaTg2MF9naW1wbGlmeV92YV9hcmdfZXhwcik6IExpa2V3aXNlLgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfZ2ltcGxpZnlfdmFfYXJnKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9naW1wbGlmeV92YV9hcmcpOiBMaWtld2lzZS4KCSogY29uZmlnL3NoL3NoLmMgKHNoX2dpbXBsaWZ5X3ZhX2FyZ19leHByKTogTGlrZXdpc2UuCgkqIGNvbmZpZy94dGVuc2EveHRlbnNhLmMgKHh0ZW5zYV9naW1wbGlmeV92YV9hcmdfZXhwcik6IExpa2V3aXNlLgoKMjAwNC0wNy0xNCAgTWlrZSBTdHVtcAk8bXJzQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW4uaCAoV0lOVF9UWVBFKTogRGVmaW5lIHRvIGJlIGludCB0byBtYXRjaAoJc3lzdGVtIGhlYWRlciBmaWxlcy4KCjIwMDQtMDctMTQgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBjb25maWcveHRlbnNhL3h0ZW5zYS5jIChmdW5jdGlvbl9hcmdfYWR2YW5jZSk6IENoZWNrIGZvciBhcmdzCgl0aGF0IG11c3QgYmUgcGFzc2VkIGluIHRoZSBzdGFjay4KCSh4dGVuc2FfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBTa2lwIHNwZWNpYWwtY2FzZSBwYWRkaW5nIGZvciBzbWFsbAoJYXJndW1lbnRzIGlmIHRoZSBzaXplIGlzIG5vdCBhIGNvbnN0YW50LgoKMjAwNC0wNy0xNCAgUGVyIEJvdGhuZXIgIDxwZXJAYm90aG5lci5jb20+CgoJKiBjLXR5cGVjay5jIChlbWl0X3NpZGVfZWZmZWN0X3dhcm5pbmdzKTogIFVzZSBFWFBSX0hBU19MT0NBVElPTgoJaW5zdGVhZCBvZiBFWFBSX0xPQ1VTIGluIGEgYm9vbGVhbiBjb250ZXh0LCB3aGljaCBpcyBhbHdheXMgdHJ1ZQoJaWYgLS1lbmFibGUtbWFwcGVkLWxvY2F0aW9uLgoJKiBzdG10LmMgKHdhcm5faWZfdW51c2VkX3ZhbHVlKTogIExpa2V3aXNlLiAgQWxzbyB1c2UgRVhQUl9MT0NBVElPTi4KCjIwMDQtMDctMTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBkb21pbmFuY2UuYyAoc3RydWN0IGRvbV9pbmZvKTogQWRkIGZha2VfZXhpdF9lZGdlLgoJKGluaXRfZG9tX2luZm8pOiBBbGxvY2F0ZSBpdC4KCShmcmVlX2RvbV9pbmZvKTogRnJlZSBpdC4KCShjYWxjX2Rmc190cmVlKTogU2V0IGl0LiAgSGFuZGxlIG5vcmV0dXJuIGFuZCBpbmZpbml0ZSBsb29wcwoJaW4gdHdvIHBhc3Nlcy4KCShjYWxjX2lkb21zKTogSG9ub3IgZmFrZV9leGl0X2VkZ2UuCgoyMDA0LTA3LTEzICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCgkqIHRyZWUtZ2ltcGxlLmMgKGlzX2dpbXBsZV9yZWdfcmhzLCBpc19naW1wbGVfbWVtX3Jocyk6IE5ldyBmbnMuCgkocmhzX3Rlc3RfZm9yKTogTmV3IGZuLgoJKGlzX2dpbXBsZV90bXBfcmhzKTogUmVuYW1lIGZyb20gaXNfZ2ltcGxlX3Jocy4KCSogdHJlZS1naW1wbGUuaDogRGVjbGFyZSB0aGVtLgoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9tb2RpZnlfZXhwcik6IFVzZSB0aGUgbmV3IGZucy4KCjIwMDQtMDctMTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvYXJtL2FybS1wcm90b3MuaCAoYXJtX3ZhX2FyZyk6IFJlbW92ZS4KCSogY29uZmlnL2FybS9hcm0uYyAoYXJtX3ZhX2FyZyk6IFJlbW92ZS4KCShhcm1faW5pdF9leHBhbmRlcnMpOiBGaXggYWxpZ25tZW50IG9mIGFyZ19wb2ludGVyX3J0eC4KCSogY29uZmlnL2FybS9hcm0uaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoKMjAwNC0wNy0xNCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIHBhLmMgKGZpeF9yYW5nZSk6IE5ldyBmdW5jdGlvbiB0byBtYXJrIGEgcmFuZ2Uocykgb2YgcmVnaXN0ZXJzIGFzCglmaXhlZCByZWdpc3RlcnMuCgkob3ZlcnJpZGVfb3B0aW9ucyk6IENhbGwgZml4X3JhbmdlIGlmIHRoZSAtbWZpeGVkLXJhbmdlIG9wdGlvbiBzdHJpbmcKCWlzIG5vdCBlbXB0eS4KCSogcGEuaCAoVEFSR0VUX09QVElPTlMpOiBBZGQgLW1maXhlZC1yYW5nZSBvcHRpb24uCgkqIGRvYy9pbnZva2UudGV4aSAoLW1maXhlZC1yYW5nZSk6IERvY3VtZW50IG5ldyBvcHRpb24uCgoyMDA0LTA3LTE0ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChmdW5jdGlvbl9hcmdfcGFkZGluZyk6IERvIG5vdCBwYWQgU0Ztb2RlCglmb3IgVEFSR0VUXzY0QklULgoJKHJzNjAwMF9naW1wbGlmeV92YV9hcmcpOiBVc2Ugc2l6ZV9pbnQgaW5zdGVhZCBvZiBidWlsZF9pbnRfMi4KCjIwMDQtMDctMTQgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogZXhwbWVkLmMgKGV4cGFuZF9zZGl2X3BvdzIpOiBOZXcgZnVuY3Rpb24gdG8gZXhwYW5kIHNpZ25lZCBkaXZpc2lvbgoJYnkgYSBwb3NpdGl2ZSBwb3dlciBvZiB0d28sIHNwbGl0IG91dCBmcm9tIGV4cGFuZF9kaXZtb2QuICBQcm92aWRlCglhbiBhbHRlcm5hdGUgaW1wbGVtZW50YXRpb24gd2hlbiBzaGlmdHMgYXJlIGV4cGVuc2l2ZS4gIExvd2VyIHRoZQoJdGhyZXNob2xkIGZvciB1c2luZyBhIGJyYW5jaGxlc3MgaW1wbGVtZW50YXRpb24gdG8gQlJBTkNIX0NPU1QgPj0gMi4KCShleHBhbmRfZGl2bW9kKTogQ2FsbCBleHBhbmRfc2Rpdl9wb3cyIGZvciBzdWl0YWJsZSBkaXZpc2lvbnMuCgoyMDA0LTA3LTE0ICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogdHJlZS1kZmEuYyAobWFrZV9yZW5hbWVfdGVtcCk6ICpSZWFsbHkqIHdvcmsganVzdAoJbGlrZSBjcmVhdGVfdG1wX3ZhciBpZiBjYWxsZWQgd2hpbGUgb3V0c2lkZSBTU0EgZm9ybS4KCjIwMDQtMDctMTQgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAubWQgKCJ1ZGl2c2kzIik6IEVuc3VyZSB0cmFwIGlzIGdlbmVyYXRlZAoJZm9yIGRpdmlzaW9uIGJ5IHplcm8uCgkoInVtb2RzaTMiKTogTGlrZXdpc2UuCgoyMDA0LTA3LTE0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHNfb3V0cHV0X21vdmUpOiBXaGVuIGdlbmVyYXRpbmcgbWlwczE2IGNvZGUsCglmb3JjZSBsb2FkcyBvZiBuZWdhdGl2ZSBjb25zdGFudHMgdG8gYmUgc3BsaXQuCgkqIGNvbmZpZy9taXBzL21pcHMubWQgKCptb3ZoaV9taXBzMTYsICptb3ZxaV9taXBzMTYpOiBMaWtld2lzZS4KCUdlbmVyYWxpemUgU0ltb2RlIGxpL25lZyBzcGxpdHRlciB0byBjb3BlIHdpdGggb3RoZXIgbW9kZXMuCgoyMDA0LTA3LTE0ICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogZXhwbWVkLmM6IFJlbW92ZSBtb3JlIHJlZmVyZW5jZXMgdG8gUVVFVUVEIGluIHRoZSBjb21tZW50cy4KCSogZXhwci5jOiBMaWtld2lzZS4KCjIwMDQtMDctMTQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCglSZXZlcnQ6CgkyMDA0LTA3LTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHNfcGFzc19ieV9yZWZlcmVuY2UpOiBIYW5kbGUgbW9kZSBzaXplcwoJY29ycmVjdGx5LgoKMjAwNC0wNy0xNCAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIHRyZWUtZGZhLmMgKG1ha2VfcmVuYW1lX3RlbXApOiBXb3JrIGp1c3QgbGlrZQoJY3JlYXRlX3RtcF92YXIgaWYgY2FsbGVkIHdoaWxlIG91dHNpZGUgU1NBIGZvcm0uCgoyMDA0LTA3LTE0ICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogZXhwci5jIChlbnF1ZXVlX2luc24sIGZpbmlzaF9leHByX2Zvcl9mdW5jdGlvbiwKCXByb3RlY3RfZnJvbV9xdWV1ZSwgcXVldWVkX3N1YmV4cF9wLCBtYXJrX3F1ZXVlLAoJZW1pdF9pbnNuc19lbnF1ZXVlZF9hZnRlcl9tYXJrLCBlbWl0X3F1ZXVlLAoJZXhwYW5kX2luY3JlbWVudCk6IFJlbW92ZS4KCShzdG9yZV9jb25zdHJ1Y3Rvcik6IEV4cGFuZCBpbmNyZW1lbnQgYXMgYW4gYXNzaWdubWVudC4KCShleHBhbmRfZXhwcl9yZWFsXzEgPGNhc2UgUFJFSU5DUkVNRU5UX0VYUFIsCgljYXNlIFBSRURFQ1JFTUVOVF9FWFBSLCBjYXNlIFBPU1RJTkNSRU1FTlRfRVhQUiwKCWNhc2UgUE9TVERFQ1JFTUVOVF9FWFBSPik6IEFib3J0LgoJKiBleHByLmggKFFVRVVFRF9WQVIsIFFVRVVFRF9JTlNOLCBRVUVVRURfQ09QWSwKCVFVRVVFRF9CT0RZLCBRVUVVRURfTkVYVCwgZmluaXNoX2V4cHJfZm9yX2Z1bmN0aW9uLAoJcHJvdGVjdF9mcm9tX3F1ZXVlLCBlbWl0X3F1ZXVlLCBxdWV1ZWRfc3ViZXhwX3ApOiBSZW1vdmUuCgkqIGZ1bmN0aW9uLmggKHBlbmRpbmdfY2hhaW4sIHhfcGVuZGluZ19jaGFpbik6IFJlbW92ZS4KCSogcnRsLmRlZiAoUVVFVUVEKTogUmVtb3ZlLgoKCSogZW1pdC1ydGwuYyAoY29weV9pbnNuXzEsIGNvcHlfbW9zdF9ydHgsCglzZXRfdXNlZF9mbGFncywgdmVyaWZ5X3J0eF9zaGFyaW5nKTogUmVtb3ZlIHJlZmVyZW5jZXMgdG8gUVVFVUVELgoJKiBnZW5hdHRydGFiLmMgKGF0dHJfY29weV9ydHgsIGNsZWFyX3N0cnVjdF9mbGFnLAoJZW5jb2RlX3VuaXRzX21hc2spOiBMaWtld2lzZS4KCSogbG9jYWwtYWxsb2MuYyAoZXF1aXZfaW5pdF92YXJpZXNfcCk6IExpa2V3aXNlLgoJKiBydGwuYyAoY29weV9ydHgpOiBMaWtld2lzZS4KCSogcnRsYW5hbC5jIChydHhfdW5zdGFibGVfcCwgcnR4X3Zhcmllc19wKTogTGlrZXdpc2UuCgkqIHNpbXBsaWZ5LXJ0eC5jIChzaW1wbGlmeV9nZW5fc3VicmVnKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9tbjEwMzAwL21uMTAzMDAuYyAobGVnaXRpbWF0ZV9waWNfb3BlcmFuZF9wKTogTGlrZXdpc2UuCgoJKiBidWlsdGlucy5jIChleHBhbmRfYnVpbHRpbiwgZXhwYW5kX2J1aWx0aW5fYXBwbHksCglleHBhbmRfYnVpbHRpbl9tYXRoZm4sIGV4cGFuZF9idWlsdGluX21hdGhmbl8yLAoJZXhwYW5kX2J1aWx0aW5fbWF0aGZuXzMsIGV4cGFuZF9idWlsdGluX3NldGptcF9zZXR1cCk6CglSZW1vdmUgY2FsbHMgdG8gZW1pdF9xdWV1ZSBhbmQgcHJvdGVjdF9mcm9tX3F1ZXVlLgoJKiBjYWxscy5jIChleHBhbmRfY2FsbCwgcHJlY29tcHV0ZV9hcmd1bWVudHMsCglwcmVjb21wdXRlX3JlZ2lzdGVyX3BhcmFtZXRlcnMsIHJ0eF9mb3JfZnVuY3Rpb25fY2FsbCwKCXN0b3JlX29uZV9hcmcpOiBMaWtld2lzZS4KCSogZG9qdW1wLmMgKGRvX2NvbXBhcmVfYW5kX2p1bXAsIGRvX2p1bXApOiBMaWtld2lzZS4KCSogZXhwbG93LmMgKG1lbW9yeV9hZGRyZXNzKTogTGlrZXdpc2UuCgkqIGV4cG1lZC5jIChjbGVhcl9ieV9waWVjZXNfMSwgY2xlYXJfc3RvcmFnZSwKCWNsZWFyX3N0b3JhZ2VfdmlhX2xpYmNhbGwsIGVtaXRfZ3JvdXBfbG9hZCwKCWVtaXRfZ3JvdXBfc3RvcmUsIGVtaXRfc3RvcmVfZmxhZywKCWV4cGFuZF9leHByX3JlYWxfMSwgc3RvcmVfYnlfcGllY2VzLAoJc3RvcmVfY29uc3RydWN0b3IsIHN0b3JlX2V4cHIsIHRyeV9jYXNlc2ksCgl0cnlfdGFibGVqdW1wKTogTGlrZXdpc2UuCgkqIGZ1bmN0aW9uLmMgKGV4cGFuZF9wZW5kaW5nX3NpemVzKTogTGlrZXdpc2UuCgkqIG9wdGFicy5jIChlbWl0X2NtcF9hbmRfanVtcF9pbnNucywKCWVtaXRfY29uZGl0aW9uYWxfYWRkLCBlbWl0X2NvbmRpdGlvbmFsX21vdmUsCglleHBhbmRfZml4LCBleHBhbmRfZmxvYXQsIHByZXBhcmVfY21wX2luc24pOiBMaWtld2lzZS4KCSogc3RtdC5jIChlbWl0X2Nhc2VfYml0X3Rlc3RzLAoJZXhwYW5kX2FzbV9leHByLCBleHBhbmRfY29tcHV0ZWRfZ290bywKCWV4cGFuZF9kZWNsX2luaXQsIGV4cGFuZF9lbmRfY2FzZV90eXBlLAoJZXhwYW5kX2VuZF9zdG10X2V4cHIsIGV4cGFuZF9leHByX3N0bXRfdmFsdWUsCglleHBhbmRfcmV0dXJuLCBleHBhbmRfc3RhcnRfY2FzZSwKCW9wdGltaXplX3RhaWxfcmVjdXJzaW9uKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9jNHgvYzR4LmMgKGM0eF9leHBhbmRfYnVpbHRpbik6IExpa2V3aXNlLgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHMzOTBfZXhwYW5kX2NtcG1lbSk6IExpa2V3aXNlLgoKMjAwNC0wNy0xNCAgQmVuIEVsbGlzdG9uICA8YmplQGF1LmlibS5jb20+CgoJKiB2ZWMuaDogQ29tbWVudCBmaXguCgoyMDA0LTA3LTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdGFyZ2V0LmggKHN0cnVjdCBnY2NfdGFyZ2V0KTogQWRkIGNhbGxzLnBhc3NfYnlfcmVmZXJlbmNlLgoJKiB0YXJnZXQtZGVmLmggKFRBUkdFVF9QQVNTX0JZX1JFRkVSRU5DRSk6IE5ldy4KCSogZnVuY3Rpb24uYyAocGFzc19ieV9yZWZlcmVuY2UpOiBVc2UgdGhlIGhvb2suCgkqIHN5c3RlbS5oIChGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UpOiBQb2lzb24uCgkqIHRhcmdob29rcy5jLCB0YXJnaG9va3MuaCAoaG9va19wYXNzX2J5X3JlZmVyZW5jZV9mYWxzZSk6IE5ldy4KCShob29rX3Bhc3NfYnlfcmVmZXJlbmNlX211c3RfcGFzc19pbl9zdGFjayk6IE5ldy4KCSogY29uZmlnL2FscGhhL2FscGhhLmMgKGZ1bmN0aW9uX2FyZyk6IERvbid0IHF1ZXJ5IHBhc3MtYnktcmVmLgoJKGFscGhhX3Bhc3NfYnlfcmVmZXJlbmNlKTogTmV3LgoJKFRBUkdFVF9QQVNTX0JZX1JFRkVSRU5DRSk6IE5ldy4KCSogY29uZmlnL2FscGhhL2FscGhhLmggKEZVTkNUSU9OX0FSR19QQVNTX0JZX1JFRkVSRU5DRSk6IFJlbW92ZS4KCSogY29uZmlnL2FyYy9hcmMuYyAoYXJjX3Bhc3NfYnlfcmVmZXJlbmNlKTogTmV3LgoJKFRBUkdFVF9QQVNTX0JZX1JFRkVSRU5DRSk6IE5ldy4KCSogY29uZmlnL2FyYy9hcmMuaCAoRlVOQ1RJT05fQVJHX1BBU1NfQllfUkVGRVJFTkNFKTogUmVtb3ZlLgoJKEZVTkNUSU9OX0FSR19DQUxMRUVfQ09QSUVTKTogVHJ1ZS4KCSogY29uZmlnL2FybS9hcm0tcHJvdG9zLmggKGFybV9mdW5jdGlvbl9hcmdfcGFzc19ieV9yZWZlcmVuY2UpOiBSZW1vdmUuCgkqIGNvbmZpZy9hcm0vYXJtLmMgKFRBUkdFVF9QQVNTX0JZX1JFRkVSRU5DRSk6IE5ldy4KCShhcm1fcGFzc19ieV9yZWZlcmVuY2UpOiBSZW5hbWUgZnJvbSBhcm1fZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJlbmNlLgoJKiBjb25maWcvYXJtL2FybS5oIChGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UpOiBSZW1vdmUuCgkqIGNvbmZpZy9jNHgvYzR4LmggKEZVTkNUSU9OX0FSR19QQVNTX0JZX1JFRkVSRU5DRSk6IFJlbW92ZS4KCSogY29uZmlnL2NyaXMvY3Jpcy5jIChjcmlzX3Bhc3NfYnlfcmVmZXJlbmNlKTogTmV3LgoJKFRBUkdFVF9QQVNTX0JZX1JFRkVSRU5DRSk6IE5ldy4KCSogY29uZmlnL2NyaXMvY3Jpcy5oIChGVU5DVElPTl9BUkcpOiBEb24ndCBxdWVyeSBwYXNzLWJ5LXJlZi4KCShGVU5DVElPTl9JTkNPTUlOR19BUkcsIEZVTkNUSU9OX0FSR19BRFZBTkNFKTogTGlrZXdpc2UuCgkoRlVOQ1RJT05fQVJHX1BBU1NfQllfUkVGRVJFTkNFKTogUmVtb3ZlLgoJKiBjb25maWcvZnIzMC9mcjMwLmMgKFRBUkdFVF9QQVNTX0JZX1JFRkVSRU5DRSk6IE5ldy4KCSogY29uZmlnL2ZyMzAvZnIzMC5oIChGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UpOiBSZW1vdmUuCgkqIGNvbmZpZy9mcnYvZnJ2LXByb3Rvcy5oIChmcnZfZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJlbmNlKTogS2lsbC4KCSogY29uZmlnL2Zydi9mcnYuYyAoVEFSR0VUX1BBU1NfQllfUkVGRVJFTkNFKTogTmV3LgoJKGZydl9mdW5jdGlvbl9hcmdfcGFzc19ieV9yZWZlcmVuY2UpOiBSZW1vdmUuCgkqIGNvbmZpZy9mcnYvZnJ2LmggKEZVTkNUSU9OX0FSR19QQVNTX0JZX1JFRkVSRU5DRSk6IFJlbW92ZS4KCSogY29uZmlnL2kzODYvaTM4Ni1wcm90b3MuaCAoZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJlbmNlKTogUmVtb3ZlLgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKFRBUkdFVF9QQVNTX0JZX1JFRkVSRU5DRSk6IE5ldy4KCShpeDg2X3Bhc3NfYnlfcmVmZXJlbmNlKTogUmVuYW1lIGZyb20gZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJlbmNlLgoJKiBjb25maWcvaTM4Ni9pMzg2LmggKEZVTkNUSU9OX0FSR19QQVNTX0JZX1JFRkVSRU5DRSk6IFJlbW92ZS4KCSogY29uZmlnL2lhNjQvaWE2NC1wcm90b3MuaCAoaWE2NF9mdW5jdGlvbl9hcmdfcGFzc19ieV9yZWZlcmVuY2UpOiBLaWxsLgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKFRBUkdFVF9QQVNTX0JZX1JFRkVSRU5DRSk6IE5ldy4KCShpYTY0X3Bhc3NfYnlfcmVmZXJlbmNlKTogUmVuYW1lIGZyb20KCWlhNjRfZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJlbmNlLgoJKiBjb25maWcvaWE2NC9pYTY0LmggKEZVTkNUSU9OX0FSR19QQVNTX0JZX1JFRkVSRU5DRSk6IFJlbW92ZS4KCSogY29uZmlnL2lwMmsvaXAyay5oIChGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UpOiBSZW1vdmUuCgkqIGNvbmZpZy9pcTIwMDAvaXEyMDAwLXByb3Rvcy5oIChmdW5jdGlvbl9hcmdfcGFzc19ieV9yZWZlcmVuY2UpOiBLaWxsLgoJKiBjb25maWcvaXEyMDAwL2lxMjAwMC5jIChUQVJHRVRfUEFTU19CWV9SRUZFUkVOQ0UpOiBOZXcuCgkoaXEyMDAwX3Bhc3NfYnlfcmVmZXJlbmNlKTogUmVuYW1lIGZyb20gZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJlbmNlLgoJKiBjb25maWcvaXEyMDAwL2lxMjAwMC5oIChGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UpOiBSZW1vdmUuCgkoRlVOQ1RJT05fQVJHX0NBTExFRV9DT1BJRVMpOiBEb24ndCByZWZlcmVuY2UgcGFzcy1ieS1yZWYuCgkqIGNvbmZpZy9tMzJyL20zMnItcHJvdG9zLmggKG0zMnJfcGFzc19ieV9yZWZlcmVuY2UpOiBSZW1vdmUuCgkqIGNvbmZpZy9tMzJyL20zMnIuYyAoVEFSR0VUX1BBU1NfQllfUkVGRVJFTkNFKTogTmV3LgoJKG0zMnJfcGFzc19ieV9yZWZlcmVuY2UpOiBBZGp1c3QgcHJvdG90eXBlLiAgTWFrZSBzdGF0aWMuCglIYW5kbGUgbW9kZSBzaXplcyBjb3JyZWN0bHkuCgkqIGNvbmZpZy9tMzJyL20zMnIuaCAoRlVOQ1RJT05fQVJHX1BBU1NfQllfUkVGRVJFTkNFKTogUmVtb3ZlLgoJKiBjb25maWcvbTY4aGMxMS9tNjhoYzExLXByb3Rvcy5oLCBjb25maWcvbTY4aGMxMS9tNjhoYzExLmMKCShtNjhoYzExX2Z1bmN0aW9uX2FyZ19wYXNzX2J5X3JlZmVyZW5jZSk6IFJlbW92ZS4KCSogY29uZmlnL202OGhjMTEvbTY4aGMxMS5oIChGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UpOiBSZW1vdmUuCgkoRlVOQ1RJT05fQVJHX0NBTExFRV9DT1BJRVMpOiBEb24ndCByZWZlcmVuY2UgcGFzcy1ieS1yZWYuCgkqIGNvbmZpZy9tY29yZS9tY29yZS5jIChUQVJHRVRfUEFTU19CWV9SRUZFUkVOQ0UpOiBOZXcuCgkqIGNvbmZpZy9tY29yZS9tY29yZS5oIChGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UpOiBSZW1vdmUuCgkqIGNvbmZpZy9taXBzL21pcHMtcHJvdG9zLmggKGZ1bmN0aW9uX2FyZ19wYXNzX2J5X3JlZmVyZW5jZSk6IFJlbW92ZS4KCSogY29uZmlnL21pcHMvbWlwcy5jIChUQVJHRVRfUEFTU19CWV9SRUZFUkVOQ0UpOiBOZXcuCgkobWlwc192YV9hcmcpOiBVc2UgcGFzc19ieV9yZWZlcmVuY2UuCgkobWlwc19wYXNzX2J5X3JlZmVyZW5jZSk6IFJlbmFtZSBmcm9tIGZ1bmN0aW9uX2FyZ19wYXNzX2J5X3JlZmVyZW5jZS4KCUhhbmRsZSBtb2RlIHNpemVzIGNvcnJlY3RseS4KCSogY29uZmlnL21pcHMvbWlwcy5oIChGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UpOiBSZW1vdmUuCgkoRlVOQ1RJT05fQVJHX0NBTExFRV9DT1BJRVMpOiBEb24ndCByZWZlcmVuY2UgcGFzcy1ieS1yZWYuCgkqIGNvbmZpZy9tbWl4L21taXgtcHJvdG9zLmggKG1taXhfZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJlbmNlKTogS2lsbC4KCSogY29uZmlnL21taXgvbW1peC5jIChUQVJHRVRfUEFTU19CWV9SRUZFUkVOQ0UpOiBOZXcuCgkobW1peF9wYXNzX2J5X3JlZmVyZW5jZSk6IFJlbmFtZSBmcm9tCgltbWl4X2Z1bmN0aW9uX2FyZ19wYXNzX2J5X3JlZmVyZW5jZS4KCSogY29uZmlnL21taXgvbW1peC5oIChGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UpOiBSZW1vdmUuCgkoRlVOQ1RJT05fQVJHX0NBTExFRV9DT1BJRVMpOiBUcnVlLgoJKiBjb25maWcvbW4xMDMwMC9tbjEwMzAwLmMgKFRBUkdFVF9QQVNTX0JZX1JFRkVSRU5DRSk6IE5ldy4KCShtbjEwMzAwX3Bhc3NfYnlfcmVmZXJlbmNlKTogTmV3LgoJKiBjb25maWcvbW4xMDMwMC9tbjEwMzAwLmggKEZVTkNUSU9OX0FSR19QQVNTX0JZX1JFRkVSRU5DRSk6IFJlbW92ZS4KCShGVU5DVElPTl9BUkdfQ0FMTEVFX0NPUElFUyk6IFRydWUuCgkqIGNvbmZpZy9wYS9wYS5jIChwYV9wYXNzX2J5X3JlZmVyZW5jZSk6IE5ldy4KCShUQVJHRVRfUEFTU19CWV9SRUZFUkVOQ0UpOiBOZXcuCgkqIGNvbmZpZy9wYS9wYS5oIChGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UpOiBSZW1vdmUuCgkoRlVOQ1RJT05fQVJHX0NBTExFRV9DT1BJRVMpOiBUcnVlLgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC1wcm90b3MuaCAoZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJlbmNlKTogS2lsbC4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAoVEFSR0VUX1BBU1NfQllfUkVGRVJFTkNFKTogTmV3LgoJKHJzNjAwMF9wYXNzX2J5X3JlZmVyZW5jZSk6IFJlbmFtZSBmcm9tIGZ1bmN0aW9uX2FyZ19wYXNzX2J5X3JlZmVyZW5jZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuaCAoRlVOQ1RJT05fQVJHX1BBU1NfQllfUkVGRVJFTkNFKTogUmVtb3ZlLgoJKiBjb25maWcvczM5MC9zMzkwLXByb3Rvcy5oIChzMzkwX2Z1bmN0aW9uX2FyZ19wYXNzX2J5X3JlZmVyZW5jZSk6IEtpbGwuCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoVEFSR0VUX1BBU1NfQllfUkVGRVJFTkNFKTogTmV3LgoJKHMzOTBfcGFzc19ieV9yZWZlcmVuY2UpOiBSZW5hbWUgZnJvbQoJczM5MF9mdW5jdGlvbl9hcmdfcGFzc19ieV9yZWZlcmVuY2UuCgkoczM5MF9mdW5jdGlvbl9hcmdfYWR2YW5jZSk6IERvbid0IHF1ZXJ5IHBhc3MtYnktcmVmLgoJKHMzOTBfZnVuY3Rpb25fYXJnKTogTGlrZXdpc2UuCgkoczM5MF9naW1wbGlmeV92YV9hcmcpOiBVc2UgcGFzc19ieV9yZWZlcmVuY2UuCgkoczM5MF9jYWxsX3NhdmVkX3JlZ2lzdGVyX3VzZWQpOiBMaWtld2lzZS4KCSogY29uZmlnL3MzOTAvczM5MC5oIChGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UpOiBSZW1vdmUuCgkqIGNvbmZpZy9zaC9zaC5jIChUQVJHRVRfUEFTU19CWV9SRUZFUkVOQ0UpOiBOZXcuCgkoc2hjb21wYWN0X2J5cmVmLCBzaF9wYXNzX2J5X3JlZmVyZW5jZSk6IE5ldy4KCSogY29uZmlnL3NoL3NoLmggKEZVTkNUSU9OX0FSR19QQVNTX0JZX1JFRkVSRU5DRSk6IFJlbW92ZS4KCShTSENPTVBBQ1RfQllSRUYpOiBSZW1vdmUuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy1wcm90b3MuaCAoZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJlbmNlKTogS2lsbC4KCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKFRBUkdFVF9QQVNTX0JZX1JFRkVSRU5DRSk6IE5ldy4KCShzcGFyY19wYXNzX2J5X3JlZmVyZW5jZSk6IFJlbmFtZSBmcm9tIGZ1bmN0aW9uX2FyZ19wYXNzX2J5X3JlZmVyZW5jZS4KCShzcGFyY19naW1wbGlmeV92YV9hcmcpOiBVc2UgcGFzc19ieV9yZWZlcmVuY2UuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5oIChGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UpOiBSZW1vdmUuCgkqIGNvbmZpZy9zdG9ybXkxNi9zdG9ybXkxNi5oIChGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UpOiBSZW1vdmUuCgkqIGNvbmZpZy92ODUwL3Y4NTAuYyAoVEFSR0VUX1BBU1NfQllfUkVGRVJFTkNFKTogTmV3LgoJKHY4NTBfcGFzc19ieV9yZWZlcmVuY2UpOiBOZXcuCgkqIGNvbmZpZy92ODUwL3Y4NTAuaCAoRlVOQ1RJT05fQVJHX1BBU1NfQllfUkVGRVJFTkNFKTogUmVtb3ZlLgoJKEZVTkNUSU9OX0FSR19DQUxMRUVfQ09QSUVTKTogVHJ1ZS4KCSogZG9jL3RtLnRleGkgKFRBUkdFVF9QQVNTX0JZX1JFRkVSRU5DRSk6IFVwZGF0ZSBmcm9tCglGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0UgZG9jcy4KCjIwMDQtMDctMTQgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgkgICAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29uZmlnL21pcHMvbWlwcy1wcm90b3MuaCAobWlwc192YV9hcmcpOiBEZWxldGUuCgkqIGNvbmZpZy9taXBzL21pcHMuaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogRGVsZXRlLgoJKiBjb25maWcvbWlwcy9taXBzLmM6IEluY2x1ZGUgdHJlZS1naW1wbGUuaC4KCShUQVJHRVRfR0lNUExJRllfVkFfQVJHX0VYUFIpOiBEZWZpbmUuCgkobWlwc19hcmdfaW5mbyk6IFJlbW92ZSBzcGVjaWFsIGhhbmRsaW5nIG9mIG11c3RfcGFzc19pbl9zdGNrIGFyZ3MuCgkobWlwc19naW1wbGlmeV92YV9hcmdfZXhwcik6IFJld3JpdHRlbiBmcm9tIG1pcHNfdmFfYXJnLgoJKGZ1bmN0aW9uX2FyZ19wYXNzX2J5X3JlZmVyZW5jZSk6IFJldHVybiB0cnVlIGlmIG11c3RfcGFzc19pbl9zdGFjay4KCjIwMDQtMDctMTMgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBjb25maWcveHRlbnNhL3h0ZW5zYS5jICh4dGVuc2FfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBTd2FwCglhcmd1bWVudHMgZm9yIENPTkRfRVhQUiBpbiBiaWctZW5kaWFuIGFkanVzdG1lbnQgY29kZS4KCjIwMDQtMDctMTMgIEpvaG4gRGF2aWQgQW5nbGluICA8ZGF2ZS5hbmdsaW5AbnJjLWNucmMuZ2MuY2E+CgoJKiBwYS02NC5oIChBUkdfUE9JTlRFUl9SRUdOVU0sIFNUQVRJQ19DSEFJTl9SRUdOVU0pOiBEZWxldGUuCgkqIHBhLmggKEFSR19QT0lOVEVSX1JFR05VTSwgU1RBVElDX0NIQUlOX1JFR05VTSk6IE1vZGlmeSBmb3IgaHBwYTY0LgoJKiBwYTMyLXJlZ3MuaCAoUkVHX0FMTE9DX09SREVSKTogUmVvcmRlciBjYWxsZXItc2F2ZWQgcmVnaXN0ZXJzLgoJKiBwYTY0LXJlZ3MuaCAoUkVHX0FMTE9DX09SREVSKTogTGlrZXdpc2UuCgoyMDA0LTA3LTEzICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNjQ0MwoJKiB0cmVlLXNzYS1hbGlhcy5jOiBBZGQgbW9yZSBkZXNjcmlwdGlvbiBmb3IKCUNBTExfQ0xPQkJFUkVEX1ZBUlMgYW5kIEFERFJFU1NBQkxFX1ZBUlMuCgkqIHRyZWUtc3NhLW9wZXJhbmRzLmMgKGdldF9hc21fZXhwcl9vcGVyYW5kcyk6IFJlLW9yZGVyIHRoZQoJY2xvYmJlcmluZyBvZiBjYWxsLWNsb2JiZXJlZCBhbmQgYWRkcmVzc2FibGUgdmFyaWFibGVzLiAgSWYKCXRoZXJlIGFyZSBhbnkgYmVmb3JlIGFsaWFzZXMgaGF2ZSBiZWVuIGNvbXB1dGVkLCBhZGQgdGhlbS4KCjIwMDQtMDctMTMgIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1vcHRpbWl6ZS5jIChleGVjdXRlX3RvZG8pOiBGbHVzaCBEVU1QX0ZJTEUgYmVmb3JlCgl2ZXJpZmljYXRpb24uCgoyMDA0LTA3LTEzICBVbHJpY2ggV2VpZ2FuZCAgPHV3ZWlnYW5kQGRlLmlibS5jb20+CgoJKiBjb25maWcvczM5MC9zMzkwLmMgKHMzOTBfZ2ltcGxpZnlfdmFfYXJnKTogVXNlIHNpemVfaW50IGluc3RlYWQKCW9mIGJ1aWxkX2ludF8yLiAgQ29udmVydCBib3RoIG9wZXJhbmRzIG9mIFBMVVNfRVhQUiBhbmQgTVVMVF9FWFBSCgl0byB0aGUgc2FtZSB0eXBlLgoKMjAwNC0wNy0xMyAgUGVyIEJvdGhuZXIgIDxwZXJAYm90aG5lci5jb20+CgoJKiBjb2xsZWN0Mi5jIChtYWluKTogIEhhbmRsZSAtLW5vLWRlbWFuZ2xlIGFuZCAtLWRlbWFuZ2xlIGZsYWdzLgoKMjAwNC0wNy0xMyAgU2ViYXN0aWFuIFBvcCAgPHBvcEBjcmkuZW5zbXAuZnI+CgoJKiBNYWtlZmlsZS5pbiAoT0JKUy1jb21tb24pOiBBZGQgdHJlZS1kYXRhLXJlZi5vLgoJKHRyZWUtc2NhbGFyLWV2b2x1dGlvbi5vKTogQWRkIG1pc3NpbmcgZGVwZW5kZW5jZXMgb24gdHJlZS1wYXNzLmggZmxhZ3MuaC4KCSh0cmVlLWRhdGEtcmVmLm8pOiBOZXcgcnVsZS4KCSogbGFtYmRhLmg6IE5ldyBmaWxlLgoJKiB0cmVlLWRhdGEtcmVmLmM6IE5ldyBmaWxlLgoJKiB0cmVlLWRhdGEtcmVmLmg6IE5ldyBmaWxlLgoJKiB0cmVlLmMgKGludF9jc3RfdmFsdWUsIHRyZWVfZm9sZF9nY2QpOiBOZXcgZnVuY3Rpb25zLgoJKiB0cmVlLmggKGludF9jc3RfdmFsdWUsIHRyZWVfZm9sZF9nY2QpOiBEZWNsYXJlZCBoZXJlLgoKMjAwNC0wNy0xMyAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiB0YXJnZXQvMTM5MjYKCSogY29uZmlnL3NwYXJjL3NwYXJjLXByb3Rvcy5oIChvdXRwdXRfdWJyYW5jaCk6IE5ldyBwcm90b3R5cGUuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChvdXRwdXRfdWJyYW5jaCk6IE5ldyBmdW5jdGlvbi4KCSogY29uZmlnL3NwYXJjL3NwYXJjLm1kIChqdW1wIHBhdHRlcm4pOiBVc2UgaXQuCgoyMDA0LTA3LTEzICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIHRhcmdldC8xNjQ5NAoJKiBjb25maWcvc3BhcmMvc3BhcmMuYyAob3V0cHV0X2NicmFuY2gpOiBQcm9wZXJseSBndWFyZAoJdGhlIGNvZGUgaGFuZGxpbmcgZmFyIGJyYW5jaGVzIHdpdGggVEFSR0VUX1Y5LgoJKiBjb25maWcvc3BhcmMvc3BhcmMubWQgKGxlbmd0aCBhdHRyaWJ1dGUpOiBEb2N1bWVudCB0aGUKCXNpZGUtZWZmZWN0IG9mIGhhdmluZyBhIGxlbmd0aCBncmVhdGVyIG9yIGVxdWFsIHRvIDMuCgoyMDA0LTA3LTEzICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoJICAgIExsb3lkIFBhcmtlcyAgPGxsb3lkQG11c3QtaGF2ZS1jb2ZmZWUuZ2VuLm56PgoKCVBSIHRhcmdldC8xNTE4NgoJKiBjb25maWcvc3BhcmMvc29sMi1iaS5oIChMSU5LX0FSQ0g2NF9TUEVDX0JBU0UpOiBQYXNzCgkvdXNyL3VjYmxpYi9zcGFyY3Y5IGFzIC1SIHBhdGggd2hlbiAtY29tcGF0LWJzZCBpcyBzcGVjaWZpZWQuCgoyMDA0LTA3LTEzICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoJICAgIE1hcnRpbiBTZWJvciAgPHNlYm9yQHJvZ3Vld2F2ZS5jb20+CgoJUFIgdGFyZ2V0LzEyNjAyCgkqIGRvYy9pbnZva2UudGV4aSAoU1BBUkMgb3B0aW9ucyk6IERvY3VtZW50IC10aHJlYWRzCglhbmQgLXB0aHJlYWRzIG9uIFNvbGFyaXMuCgoyMDA0LTA3LTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogYnVpbHRpbnMuYyAoc3RkX2dpbXBsaWZ5X3ZhX2FyZ19leHByKTogSGFuZGxlIHR5cGVzIHBhc3NlZAoJYnkgcmVmZXJlbmNlLgoJKGluZF9naW1wbGlmeV92YV9hcmdfZXhwcik6IFJlbW92ZS4KCSogdHJlZS5oIChpbmRfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZW1vdmUuCgkqIGNvbmZpZy9wYS9wYS5jIChocHBhX2dpbXBsaWZ5X3ZhX2FyZ19leHByKTogRG9uJ3QgdXNlIGl0LgoJKiBjb25maWcvbW1peC9tbWl4LmMgKG1taXhfZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJlbmNlKTogQWxsb3cKCWFyZ3NwIHRvIGJlIG51bGwuCgoJKiBjb25maWcvYXJjL2FyYy5jIChhcmNfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZW1vdmUuCgkoVEFSR0VUX0dJTVBMSUZZX1ZBX0FSR19FWFBSKTogUmVtb3ZlLgoJKiBjb25maWcvY3Jpcy9jcmlzLmMsIGNvbmZpZy9mcjMwL2ZyMzAuYywgY29uZmlnL2Zydi9mcnYuYywKCWNvbmZpZy9pcTIwMDAvaXEyMDAwLmMsIGNvbmZpZy9tMzJyL20zMnIuYywgY29uZmlnL21taXgvbW1peC5jLAoJY29uZmlnL21uMTAzMDAvbW4xMDMwMC5jLCBjb25maWcvdjg1MC92ODUwLmM6IFNpbWlsYXJseS4KCjIwMDQtMDctMTMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBmdW5jdGlvbi5jIChwYXNzX2J5X3JlZmVyZW5jZSk6IE5ldy4KCShhc3NpZ25fcGFybV9maW5kX2RhdGFfdHlwZXMpOiBVc2UgaXQuCgkqIGNhbGxzLmMgKGluaXRpYWxpemVfYXJndW1lbnRfaW5mb3JtYXRpb24pOiBMaWtld2lzZS4KCShlbWl0X2xpYnJhcnlfY2FsbF92YWx1ZV8xKTogTGlrZXdpc2UuCgkqIGV4cHIuaCAoRlVOQ1RJT05fQVJHX1BBU1NfQllfUkVGRVJFTkNFKTogUmVtb3ZlLgoJKiBmdW5jdGlvbi5oIChwYXNzX2J5X3JlZmVyZW5jZSk6IERlY2xhcmUuCgoyMDA0LTA3LTEzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdGFyZ2V0LWRlZi5oIChUQVJHRVRfTVVTVF9QQVNTX0lOX1NUQUNLKTogTmV3LgoJKiB0YXJnZXQuaCAoc3RydWN0IGdjY190YXJnZXQpOiBBZGQgY2FsbHMubXVzdF9wYXNzX2luX3N0YWNrLgoJKiBleHByLmggKE1VU1RfUEFTU19JTl9TVEFDSyk6IFJlbW92ZS4KCSogc3lzdGVtLmggKE1VU1RfUEFTU19JTl9TVEFDSyk6IFBvaXNvbi4KCSogdHJlZS5oIChtdXN0X3Bhc3NfaW5fc3RhY2tfdmFyX3NpemUpOiBEZWNsYXJlLgoJKG11c3RfcGFzc19pbl9zdGFja192YXJfc2l6ZV9vcl9wYWQpOiBEZWNsYXJlLgoJKiBjYWxscy5jIChtdXN0X3Bhc3NfaW5fc3RhY2tfdmFyX3NpemUpOiBOZXcuCgkobXVzdF9wYXNzX2luX3N0YWNrX3Zhcl9zaXplX29yX3BhZCk6IFJlbmFtZSBmcm9tCglkZWZhdWx0X211c3RfcGFzc19pbl9zdGFjay4KCSogY29uZmlnL2FscGhhL2FscGhhLmMgKHVuaWNvc21rX211c3RfcGFzc19pbl9zdGFjayk6IE5ldy4KCShUQVJHRVRfTVVTVF9QQVNTX0lOX1NUQUNLKTogTmV3LgoJKiBjb25maWcvYWxwaGEvdW5pY29zbWsuaCAoTVVTVF9QQVNTX0lOX1NUQUNLKTogUmVtb3ZlLgoJKiBjb25maWcvZnIzMC9mcjMwLmMgKGZyMzBfbXVzdF9wYXNzX2luX3N0YWNrKTogTmV3LgoJKFRBUkdFVF9NVVNUX1BBU1NfSU5fU1RBQ0spOiBOZXcuCgkqIGNvbmZpZy9mcjMwL2ZyMzAuaCAoTVVTVF9QQVNTX0lOX1NUQUNLKTogUmVtb3ZlLgoJKiBjb25maWcvZnJ2L2Zydi5jIChmcnZfbXVzdF9wYXNzX2luX3N0YWNrKTogTmV3LgoJKFRBUkdFVF9NVVNUX1BBU1NfSU5fU1RBQ0spOiBOZXcuCgkqIGNvbmZpZy9mcnYvZnJ2LmggKE1VU1RfUEFTU19JTl9TVEFDSyk6IFJlbW92ZS4KCSogY29uZmlnL2kzODYvaTM4Ni1wcm90b3MuaCAoaXg4Nl9tdXN0X3Bhc3NfaW5fc3RhY2spOiBSZW1vdmUuCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoVEFSR0VUX01VU1RfUEFTU19JTl9TVEFDSyk6IE5ldy4KCShpeDg2X211c3RfcGFzc19pbl9zdGFjayk6IE1ha2Ugc3RhdGljLgoJKiBjb25maWcvaTM4Ni9pMzg2LmggKE1VU1RfUEFTU19JTl9TVEFDSyk6IFJlbW92ZS4KCSogY29uZmlnL2lhNjQvaWE2NC5jIChUQVJHRVRfTVVTVF9QQVNTX0lOX1NUQUNLKTogTmV3LgoJKiBjb25maWcvaWE2NC9pYTY0LmggKE1VU1RfUEFTU19JTl9TVEFDSyk6IFJlbW92ZS4KCSogY29uZmlnL20zMnIvbTMyci5jIChUQVJHRVRfTVVTVF9QQVNTX0lOX1NUQUNLKTogTmV3LgoJKiBjb25maWcvbTMyci9tMzJyLmggKE1VU1RfUEFTU19JTl9TVEFDSyk6IFJlbW92ZS4KCSogY29uZmlnL21jb3JlL21jb3JlLXByb3Rvcy5oIChtY29yZV9tdXN0X3Bhc3Nfb25fc3RhY2spOiBSZW1vdmUuCgkqIGNvbmZpZy9tY29yZS9tY29yZS5jIChUQVJHRVRfTVVTVF9QQVNTX0lOX1NUQUNLKTogTmV3LgoJKG1jb3JlX211c3RfcGFzc19vbl9zdGFjayk6IFJlbW92ZS4KCSogY29uZmlnL21jb3JlL21jb3JlLmggKE1VU1RfUEFTU19JTl9TVEFDSyk6IFJlbW92ZS4KCSogY29uZmlnL21pcHMvbWlwcy5jIChUQVJHRVRfTVVTVF9QQVNTX0lOX1NUQUNLKTogTmV3LgoJKiBjb25maWcvbWlwcy9taXBzLmggKE1VU1RfUEFTU19JTl9TVEFDSyk6IFJlbW92ZS4KCSogY29uZmlnL3BhL3BhLmMgKFRBUkdFVF9NVVNUX1BBU1NfSU5fU1RBQ0spOiBOZXcuCgkqIGNvbmZpZy9wYS9wYS5oIChNVVNUX1BBU1NfSU5fU1RBQ0spOiBSZW1vdmUuCgkqIGNvbmZpZy9yczYwMDAvYWl4LmggKE1VU1RfUEFTU19JTl9TVEFDSyk6IFJlbW92ZS4KCSogY29uZmlnL3JzNjAwMC9saW51eDY0LmggKE1VU1RfUEFTU19JTl9TVEFDSyk6IFJlbW92ZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX211c3RfcGFzc19pbl9zdGFjayk6IE5ldy4KCShUQVJHRVRfTVVTVF9QQVNTX0lOX1NUQUNLKTogTmV3LgoJKiBjb25maWcvc2gvc2guYyAoVEFSR0VUX01VU1RfUEFTU19JTl9TVEFDSyk6IE5ldy4KCSogY29uZmlnL3NoL3NoLmggKE1VU1RfUEFTU19JTl9TVEFDSyk6IFJlbW92ZS4KCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKFRBUkdFVF9NVVNUX1BBU1NfSU5fU1RBQ0spOiBOZXcuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5oIChNVVNUX1BBU1NfSU5fU1RBQ0spOiBSZW1vdmUuCgkqIGNvbmZpZy94dGVuc2EveHRlbnNhLmMgKFRBUkdFVF9NVVNUX1BBU1NfSU5fU1RBQ0spOiBOZXcuCgkqIGNvbmZpZy94dGVuc2EveHRlbnNhLmggKE1VU1RfUEFTU19JTl9TVEFDSyk6IFJlbW92ZS4KCSogZG9jL3RtLnRleGkgKFRBUkdFVF9NVVNUX1BBU1NfSU5fU1RBQ0spOiBVcGRhdGUgZnJvbQoJTVVTVF9QQVNTX0lOX1NUQUNLLgoKCSogY2FsbHMuYywgZnVuY3Rpb24uYywgY29uZmlnL2FscGhhL2FscGhhLmMsIGNvbmZpZy9hbHBoYS9hbHBoYS5oLAoJY29uZmlnL2FscGhhL3VuaWNvc21rLmgsIGNvbmZpZy9hbHBoYS92bXMuaCwgY29uZmlnL2M0eC9jNHguYywKCWNvbmZpZy9jcmlzL2NyaXMuaCwgY29uZmlnL2ZyMzAvZnIzMC5jLCBjb25maWcvZnIzMC9mcjMwLmgsCgljb25maWcvZnJ2L2Zydi5jLCBjb25maWcvaTM4Ni9pMzg2LmMsIGNvbmZpZy9pcTIwMDAvaXEyMDAwLmMsCgljb25maWcvbWNvcmUvbWNvcmUuYywgY29uZmlnL21jb3JlL21jb3JlLmgsIGNvbmZpZy9taXBzL21pcHMuYywKCWNvbmZpZy9tbWl4L21taXguYywgY29uZmlnL21taXgvbW1peC5oLCBjb25maWcvcnM2MDAwL3JzNjAwMC5jLAoJY29uZmlnL3NoL3NoLmMsIGNvbmZpZy9zaC9zaC5oLCBjb25maWcvc3Rvcm15MTYvc3Rvcm15MTYuYywKCWNvbmZpZy94dGVuc2EveHRlbnNhLmM6IFVzZSB0YXJnZXQgaG9vay4KCjIwMDQtMDctMTMgIEFudGhvbnkgSGVhZGluZyAgPGFoZWFkaW5nQGpwbW9yZ2FuLmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAoZ2NjX2N2X2FzX29mZnNldGFibGVfbG8xMCk6IEZpeCBhIHR5cG8uCgkqIGNvbmZpZ3VyZTogUmVidWlsdC4KCjIwMDQtMDctMTMgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGRvYy9pbnZva2UudGV4aTogUmVtb3ZlIGRvY3VtZW50YXRpb24gZm9yIE1JUFMgLW1ybmFtZXMgb3B0aW9uLgoJKiBjb25maWcvbWlwcy9taXBzLmggKG1pcHNfcmVnX25hbWVzKTogRG9uJ3QgZGVjbGFyZS4KCShNQVNLX05BTUVfUkVHUyk6IERlbGV0ZS4gIFNodWZmbGUgb3RoZXIgTUFTS18qIHZhbHVlcyBkb3duLgoJKFRBUkdFVF9OQU1FX1JFR1MpOiBEZWxldGUuCgkoVEFSR0VUX1NXSVRDSEVTKTogUmVtb3ZlIC1tcm5hbWVzLgoJKFJFR0lTVEVSX05BTUVTKTogSW5pdGlhbGlzZSB3aXRoIHRoZSBvbGQgY29udGVudHMgb2YgbWlwc19yZWdfbmFtZXNbXS4KCShBRERJVElPTkFMX1JFR0lTVEVSX05BTUVTKTogUmVtb3ZlIGVudHJpZXMgZm9yIG5hbWVzIG1lbnRpb25lZAoJaW4gUkVHSVNURVJfTkFNRVMuCgkqIGNvbmZpZy9taXBzL21pcHMuYyAobWlwc19yZWdfbmFtZXMsIG1pcHNfc3dfcmVnX25hbWVzKTogRGVsZXRlLgoJKG92ZXJyaWRlX29wdGlvbnMpOiBSZW1vdmUgaGFuZGxpbmcgb2YgVEFSR0VUX05BTUVfUkVHUy4KCjIwMDQtMDctMTMgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuaCAoVEFSR0VUXyopOiBCb29saWZ5LgoKMjAwNC0wNy0xMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy5nY2M6IEFkZCBzaC0qLXN5bWJpYW5lbGYgdGFyZ2V0LgoJKiBjb25maWcvc2gvc2guYzogQWRkIG5ldyB0YXJnZXQgbWFjcm9zOgoJVEFSR0VUX0VOQ09ERV9TRUNUSU9OX0lORk8sIFRBUkdFVF9TVFJJUF9OQU1FX0VOQ09ESU5HLAoJVEFSR0VUX0NYWF9JTVBPUlRfRVhQT1JUX0NMQVNTLgoJKHNoX2ZpbGVfc3RhcnQpOiBDcmVhdGUgYSBkZWZpbml0aW9uIG9mIHRoZSAuZGlyZWN0aXZlIHNlY3Rpb24uCgkoc2hfYXR0cmlidXRlKTogQWRkIGRsbGltcG9ydCBhbmQgZGxsZXhwb3J0IGF0dHJpYnV0ZXMuCgkqIGNvbmZpZy9zaC9zeW1iaWFuLXByZS5oOiBOZXcgZmlsZS4KCSogY29uZmlnL3NoL3N5bWJpYW4tcG9zdC5oOiBOZXcgZmlsZS4KCSogY29uZmlnL3NoL3N5bWJpYW4uYzogTmV3IGZpbGUuIENvbnRhaW5zIFN5bWJpYW4gc3BlY2lmaWMKCWZ1bmN0aW9ucy4KCSogY29uZmlnL3NoL3NoLXByb3Rvcy5oOiBBZGQgcHJvdG90eXBlcyBmb3IgbmV3IGZ1bmN0aW9ucwoJcHJvdmlkZWQgYnkgc3ltYmlhbi5jLgoJKiBjb25maWcvc2gvdC1zeW1iaWFuOiBOZXcgZmlsZS4KCSogZG9jL2V4dGVuZC50ZXhpOiBEb2N1bWVudCBzdXBwb3J0IGZvciBkbGxpbXBvcnQgYW5kIGRsbGV4cG9ydAoJYXR0cmlidXRlcyBieSB0aGUgc2gtc3ltYmlhbmVsZiB0YXJnZXQuCgoyMDA0LTA3LTEyICBKYW1lcyBFIFdpbHNvbiAgPHdpbHNvbkBzcGVjaWZpeGluYy5jb20+CgoJKiBNYWtlZmlsZS5pbiAoQVIpOiBVc2UgQEFSQCBub3QgYXIuCgkoTk0pOiBOZXcuCgkoQVJfRk9SX1RBUkdFVCk6IFVzZSAkKEFSKSBub3QgYXIgZm9yIG5hdGl2ZS4KCShOTV9GT1JfVEFSR0VUKTogVXNlICQoTk0pIG5vdCBubSBmb3IgbmF0aXZlLgoJKiBjb25maWd1cmUuYWM6IEFkZCBBQ19DSEVDS19QUk9HIGNhbGxzIGZvciBOTSBhbmQgQVIuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDQtMDctMTIgIERhdmlkIFMuIE1pbGxlciAgPGRhdmVtQG51dHMuZGF2ZW1sb2Z0Lm5ldD4KCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5tZCAoYXNobHNpMyk6IEVsaW1pbmF0ZSBjb25zdCAxCglzcGVjaWFsIGNhc2UuCgkoYXNobGRpM19zcDY0KTogTGlrZXdpc2UuCgoyMDA0LTA3LTEyICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCVBSIHRhcmdldC8xNjQ3NwoJKiBwYS5jIChmdW5jdGlvbl9hcmcpOiBVcGRhdGUgY29tbWVudC4KCSogcGEuaCAoQkxPQ0tfUkVHX1BBRERJTkcpOiBEZWZpbmUuCgoyMDA0LTA3LTEyICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTY0NjEKCSogdHJlZS10YWlsY2FsbC5jIChpbmRlcGVuZGVudF9vZl9zdG10X3ApOiBIYW5kbGUgbm9uLVNTQSBuYW1lCglhcmd1bWVudHMgb2YgcGhpIG5vZGVzLgoKMjAwNC0wNy0xMiAgRGV2YW5nIFBhdGVsICA8ZHBhdGVsQGFwcGxlLmNvbT4KCgkqIGRvYy9pbnZva2UudGV4aSAoRGFyd2luIE9wdGlvbnMpOiBEb2N1bWVudCAtZ3VzZWQgYW5kIC1nZnVsbC4KCjIwMDQtMDctMTIgIFN0ZXZlIEVsbGNleSAgPHNqZUBjdXAuaHAuY29tPgoKCSogZnVuY3Rpb24uYyAoZXhwYW5kX2Z1bmN0aW9uX3N0YXJ0KTogRW5zdXJlIHJfc2F2ZSBpcyBpbiBQbW9kZS4KCSogY2FsbHMuYyAocHJlcGFyZV9jYWxsX2FkZHJlc3MpOiBFbnN1cmUgc3RhdGljX2NoYWluX3ZhbHVlIGlzCglpbiBQbW9kZS4KCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fbm9ubG9jYWxfZ290byk6IEVuc3VyZSByX2xhYmVsIGFuZAoJcl9zYXZlX2FyZWEgYXJlIGluIFBtb2RlLgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfaW5pdGlhbGl6ZV90cmFtcG9saW5lKTogRW5zdXJlIGFkZHIsCglmbmFkZHIsIGFuZCBzdGF0aWNfY2hhaW4gYXJlIGluIFBtb2RlLgoKMjAwNC0wNy0xMiAgVmxhZGltaXIgTWFrYXJvdiAgPHZtYWthcm92QHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE2NDQ1CgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoYnVuZGxpbmcpOiBEb24ndCBjb3VudCBpZ25vcmVkIGluc25zLgoKMjAwNC0wNy0xMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRhcmdldC5oIChzdHJ1Y3QgZ2NjX3RhcmdldCk6IE1vdmUgZ2ltcGxpZnlfdmFfYXJnX2V4cHIKCW5leHQgdG8gYnVpbGRfYnVpbHRpbl92YV9saXN0LgoJKiB0YXJnZXQtZGVmLmggKFRBUkdFVF9HSU1QTElGWV9WQV9BUkdfRVhQUik6IFVwZGF0ZSB0byBtYXRjaC4KCSogYnVpbHRpbnMuYyAoZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBMaWtld2lzZS4KCSogZ2ltcGxpZnkuYyAoY29weV9pZl9zaGFyZWRfcik6IExpa2V3aXNlLgoKMjAwNC0wNy0xMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBwYXNzZXMuYyAocmVzdF9vZl9kZWNsX2NvbXBpbGF0aW9uKTogRG9uJ3QgZGVmZXIgY2FsbCBvZgoJYXNzZW1ibGVfdmFyaWFibGUgaWYgaXRzIERFQ0xfUlRMIGlzIGFscmVhZHkgc2V0LgoKMjAwNC0wNy0xMiAgU2ViYXN0aWFuIFBvcCAgPHBvcEBjcmkuZW5zbXAuZnI+CgoJKiBjZmdsb29wLmggKHN0cnVjdCBsb29wKTogQWRkIG5iX2l0ZXJhdGlvbnMgZmllbGQuCgkoY3VycmVudF9sb29wcyk6IERlY2xhcmUuCgkqIHRyZWUtY2hyZWMuYyAoY2hyZWNfbm90X2FuYWx5emVkX3lldCwKCWNocmVjX2RvbnRfa25vdywgY2hyZWNfa25vd24sIGNvdW50X2V2X2luX3dpZGVyX3R5cGUsCgljaHJlY19jb250YWluc19zeW1ib2xzX2RlZmluZWRfaW5fbG9vcCk6IFJlbW92ZSB0aGUgdGVtcG9yYXJ5Cglob29rcy4KCSogdHJlZS1mbG93LWlubGluZS5oIChsb29wX2NvbnRhaW5pbmdfc3RtdCk6IE5ldyBmdW5jdGlvbi4KCSogdHJlZS1zY2FsYXItZXZvbHV0aW9uLmM6IEFkZCBpbXBsZW1lbnRhdGlvbi4KCSogdHJlZS1zY2FsYXItZXZvbHV0aW9uLmg6IEFkZCBkZWNsYXJhdGlvbnMuCgoyMDA0LTA3LTEyIFZsYWRpbWlyIE1ha2Fyb3YgPHZtYWthcm92QHJlZGhhdC5jb20+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNTkyMQoJKiBNYWtlZmlsZS5pbiAoZ2xvYmFsLm8pOiBBZGQgcmVjb2cuaC4KCgkqIGdsb2JhbC5jIChyZWNvZy5oKTogQWRkIHRoZSBpbmNsdWRlLWNsYXVzZS4KCShiYl9pbmZvKTogTmV3IG1lbWJlciBlYXJseWNsb2JiZXIuCgkoYWxsb2NhdGVfYmJfaW5mbywgZnJlZV9iYl9pbmZvKTogSW5pdGlhbGl6ZS9maW5pc2ggdGhlIG5ldwoJbWVtYmVyLgoJKGVhcmx5Y2xvYmJlcl9yZWdjbGFzcywgZWFybHljbG9iYmVyX3JlZ2NsYXNzX2xlbmd0aCk6IFRoZSBuZXcKCWdsb2JhbCB2YXJpYWJsZXMuCgkoY2hlY2tfZWFybHljbG9iYmVyLCByZWdjbGFzc19pbnRlcnNlY3QsCgltYXJrX3JlZ191c2VfZm9yX2Vhcmx5Y2xvYmJlciwgbWFya19yZWdfdXNlX2Zvcl9lYXJseWNsb2JiZXJfMSk6CglOZXcgZnVuY3Rpb25zLgoJKGNhbGN1bGF0ZV9sb2NhbF9yZWdfYmJfaW5mbyk6IENhbGN1bGF0ZSB2YWx1ZSBvZiBlYXJseWNsb2JiZXIuCgkobWFrZV9hY2N1cmF0ZV9saXZlX2FuYWx5c2lzKTogTW9kaWZ5IHBhdmluLgoKMjAwNC0wNy0xMiAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLWNmZy5jIChmaW5kX3Rha2VuX2VkZ2UpOiBTdGF0aWNhbGx5IGNvbXB1dGUgdGhlIHRydXRoCgl2YWx1ZSBvZiBhIHByZWRpY2F0ZSBjb21wYXJpbmcgYW4gU1NBX05BTUUgdG8gaXRzZWxmLgoKMjAwNC0wNy0xMiAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChyczYwMDBfcnR4X2Nvc3RzKTogSW5kaWNhdGUgdGhhdCB0aGUKCXJzNjAwMCBkb2Vzbid0IGhhdmUgc2hpZnQtYW5kLWFkZCBvciBzaGlmdC1hbmQtc3ViIGluc3RydWN0aW9ucwoJYnkgcmV0dXJuaW5nIHRoZSBjb3N0IG9mIGEgbXVsdGlwbGljYXRpb24gcGx1cyBhbiBhZGRpdGlvbi4KCjIwMDQtMDctMTIgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTQxMDcKCSogZ2ltcGxpZnkuYyAoZ2ltcGxpZnlfcmV0dXJuX2V4cHIpOiBBY2NlcHQgYQoJUkVUVVJOX0VYUFIgd2l0aCBhbiBlcnJvciBhcmd1bWVudC4KCSogdHJlZS1vcHRpbWl6ZS5jIChpbml0X3RyZWVfb3B0aW1pemF0aW9uX3Bhc3Nlcyk6CglSdW4gcGFzc193YXJuX2Z1bmN0aW9uX3JldHVybiBhdCAtTzAuCgoyMDA0LTA3LTEyICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGRvYy9pbnZva2UudGV4aTogQ29ycmVjdCAtZmFzeW5jaHJvbm91cy11bndpbmQtdGFibGVzIG9wdGlvbgoJaW5kZXggZW50cnkuCgoyMDA0LTA3LTEyICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJKiBjb25maWcvbWlwcy9taXBzLmMgKG1pcHNfdXNlX2RmYV9waXBlbGluZV9pbnRlcmZhY2UpOiBEZWxldGUuCgkoVEFSR0VUX1NDSEVEX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogRGVmaW5lIHRvIGhvb2tfaW50X3ZvaWRfMS4KCSogY29uZmlnL21pcHMvMzAwMC5tZDogQWRkIGNvcHlyaWdodCBub3RpY2UuICBSZW1vdmUgYXV0b21vdGEgYW5kCglmdW5jdGlvbiB1bml0czsgdXNlIGdlbmVyaWMgb25lcyBpbnN0ZWFkLiAgT25seSBkZWZpbmUgcmVzZXJ2YXRpb25zCglmb3IgdGhpbmdzIHRoYXQgYXJlIGRpZmZlcmVudCBmcm9tIGdlbmVyaWMubWQuICBFeHRlbmQgZWFjaCBjbGF1c2UKCXRvIGluY2x1ZGUgcjM5MDAuCgkqIGNvbmZpZy9taXBzL3s0MDAwLDQxMDAsNDMwMCw0NjAwLDUwMDAsNjAwMCxnZW5lcmljfS5tZDogTmV3IGZpbGVzLgoJKiBjb25maWcvbWlwcy9taXBzLm1kOiBJbmNsdWRlIHRoZW0uIFJlbW92ZSBkZWZpbmVfZnVuY3Rpb25fdW5pdHMuCgkoYWx1LCBpbXVsZGl2KTogTmV3IGF1dG9tYXRhIGFuZCB1bml0cy4KCjIwMDQtMDctMTIgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogZG9jL2ludm9rZS50ZXhpIChPcHRpbWl6ZSBPcHRpb25zKTogRG9jdW1lbnQgLWZyZW5hbWUtcmVnaXN0ZXJzCglub3QgYmVpbmcgZW5hYmxlZCBieSBkZWZhdWx0IGF0IC1PMy4KCjIwMDQtMDctMTEgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogZm9sZC1jb25zdC5jIChmb2xkKSA8UExVU19FWFBSPjogQ2Fub25pY2FsaXplIFggKyAtQyBhcyBYIC0gQyBmb3IKCWZsb2F0aW5nIHBvaW50IGFkZGl0aW9ucywgdG8ga2VlcCByZWFsIGltbWVkaWF0ZSBjb25zdGFudCBwb3NpdGl2ZS4KCTxNSU5VU19FWFBSPjogIEZvciBmbG9hdGluZyBwb2ludCBzdWJ0cmFjdGlvbnMsIG9ubHkgdHJhbnNmb3JtIFggLSAtQwoJaW50byBYICsgQywgYW5kIGxlYXZlIHBvc2l0aXZlIHJlYWwgY29uc3RhbnRzIGFzIFggLSBDLgoKMjAwNC0wNy0xMSAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIHBhLmMgKGhwcGFfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZW1vdmUgY29tbWVudC4KCjIwMDQtMDctMTEgIFpkZW5layBEdm9yYWsgIDxyYWtkdmVyQGF0cmV5Lmthcmxpbi5tZmYuY3VuaS5jej4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNTY1NAoJKiB0cmVlLXRhaWxjYWxsLmMgKGVsaW1pbmF0ZV90YWlsX2NhbGwpOiBSZW1vdmUgdW5yZWFjaGFibGUgY29kZS4KCjIwMDQtMDctMTEgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogYnVpbHRpbnMuYyAoZm9sZF9idWlsdGluX2ZwdXRzKTogRG9uJ3QgYm90aGVyIGNvbnZlcnRpbmcgdGhlCglyZXR1cm4gdHlwZSB0byBpbnRlZ2VyX3R5cGVfbm9kZSwgYXMgd2UndmUgYWxyZWFkeSBjaGVja2VkIHRoYXQKCXRoZSByZXN1bHQgd2lsbCBiZSBpZ25vcmVkLgoKCSogdHJlZS1laC5jICh0cmVlX2NvdWxkX3RyYXBfcCk6IEFkZCBzdXBwb3J0IGZvciAtZnRyYXB2IHN1Y2gKCXRoYXQgc2lnbmVkIGFkZGl0aW9uLCBzdWJ0cmFjdGlvbiwgbXVsdGlwbGljYXRpb24sIGRpdmlzaW9uLAoJcmVtYWluZGVyLCBuZWdhdGlvbiBhbmQgYWJzb2x1dGUgdmFsdWUgbWF5IHBvdGVudGlhbGx5IHRyYXAuCgoJKiBmb2xkLWNvbnN0LmMgKGZvbGRfaWdub3JlZF9yZXN1bHQpOiBOZXcgZnVuY3Rpb24gdG8gc3RyaXAKCW5vbi1zaWRlLWVmZmVjdGluZyB0cmVlIG5vZGVzIGZyb20gYW4gZXhwcmVzc2lvbiB3aG9zZSByZXN1bHQKCWlzIGlnbm9yZWQuCgkoZm9sZF9jb252ZXJ0KTogQ2FsbCBmb2xkX2lnbm9yZWRfcmVzdWx0IHdoZW4gY2FzdGluZyBhIHZhbHVlCgl0byBWT0lEX1RZUEUuCgkob21pdF9vbmVfb3BlcmFuZCk6ICBDYWxsIGZvbGRfaWdub3JlZF9yZXN1bHQgb24gdGhlICJvbWl0dGVkIgoJb3BlcmFuZCB3aGVuIGJ1aWxkaW5nIGEgQ09NUE9VTkRfRVhQUi4KCShwZWRhbnRpY19vbWl0X29uZV9vcGVyYW5kKTogTGlrZXdpc2UuCgkqIHRyZWUuaCAoZm9sZF9pZ25vcmVkX3Jlc3VsdCk6IFByb3RvdHlwZSBoZXJlLgoJKiB0cmVlLXNzYS1jY3AuYyAoY2NwX2ZvbGRfYnVpbHRpbik6IENhbGwgZm9sZF9pZ25vcmVkX3Jlc3VsdAoJd2hlbiB3ZSdyZSBnb2luZyB0byBpZ25vcmUgdGhlIHJlc3VsdC4KCjIwMDQtMDctMTEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJUFIgdHJlZS1vcHQvMTYzODMKCSogdHJlZS1zc2EtY2NwLmMgKGZvbGRfc3RtdF9yKTogU3BsaXQgb3V0Li4uCgkqIHRyZWUuYyAoZmllbGRzX2NvbXBhdGlibGVfcCwgZmluZF9jb21wYXRpYmxlX2ZpZWxkKTogLi4uIG5ldy4KCSogdHJlZS5oIChmaWVsZHNfY29tcGF0aWJsZV9wLCBmaW5kX2NvbXBhdGlibGVfZmllbGQpOiBEZWNsYXJlLgoJKiB0cmVlLXNyYS5jIChzcmFfaGFzaF90cmVlKTogSGFzaCBmaWVsZHMgYnkgb2Zmc2V0LgoJKHNyYV9lbHRfZXEpOiBVc2UgZmllbGRzX2NvbXBhdGlibGVfcC4KCShnZW5lcmF0ZV9vbmVfZWxlbWVudF9yZWYpOiBVc2UgZmluZF9jb21wYXRpYmxlX2ZpZWxkLgoKMjAwNC0wNy0xMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiB0cmVlLW9wdC8xNjQyMgoJKiB0cmVlLXNyYS5jIChnZW5lcmF0ZV9vbmVfZWxlbWVudF9pbml0KTogTmV3LgoJKGdlbmVyYXRlX2VsZW1lbnRfaW5pdCk6IFVzZSBpdC4KCShzY2FsYXJpemVfaW5pdCk6IFB1c2gvcG9wIGdpbXBsaWZ5IGNvbnRleHQgYXJvdW5kIGl0LgoJKGZpbmRfbmV3X3JlZmVyZW5jZWRfdmFyc18xLCBmaW5kX25ld19yZWZlcmVuY2VkX3ZhcnMpOiBOZXcuCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2V4cHIpOiBBbGxvdyBTU0FfTkFNRS4KCjIwMDQtMDctMTEgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogcnRsYW5hbC5jIChpbnNuX3J0eF9jb3N0KTogTmV3IGZ1bmN0aW9uLCBtb3ZlZCBhbmQgcmVuYW1lZCBmcm9tCgljb21iaW5lLmMncyBjb21iaW5lX2luc25fY29zdC4KCSogcnRsLmggKGluc25fcnR4X2Nvc3QpOiBQcm90b3R5cGUgaGVyZS4KCSogY29tYmluZS5jIChjb21iaW5lX2luc25fY29zdCk6IERlbGV0ZSBmdW5jdGlvbi4KCShjb21iaW5lX3ZhbGlkYXRlX2Nvc3QpOiBVcGRhdGUgY2FsbGVycyBvZiBjb21iaW5lX2luc25fY29zdCB0bwoJY2FsbCBpbnNuX3J0eF9jb3N0IGluc3RlYWQuCgkoY29tYmluZV9pbnN0cnVjdGlvbnMpOiBMaWtld2lzZS4gIFVzZSBOT05KVU1QX0lOU05fUCB0byBhdm9pZAoJcmVxdWVzdGluZyB0aGUgcnR4X2Nvc3Qgb2YgY2FsbCBhbmQvb3IganVtcCBpbnN0cnVjdGlvbnMuCgoJKiBpZmN2dC5jICh0b3RhbF9iYl9ydHhfY29zdCk6IFVzZSBpbnNuX3J0eF9jb3N0IGluc3RlYWQgb2YgY2FsbGluZwoJcnR4X2Nvc3QgZGlyZWN0bHkuICBEb24ndCByZXF1ZXN0L3VzZSB0aGUgY29zdCBvZiBjYWxsIG9yIGp1bXAKCWluc3RydWN0aW9ucy4gIFJldHVybiAtMSBpZiB0aGUgY29zdCBvZiBhbnkgaW5zdHJ1Y3Rpb24gY2FuJ3QgYmUKCWRldGVybWluZWQgKG9yIHRoZSBCQiBjb250YWlucyBhIGZ1bmN0aW9uIGNhbGwpLgoJKGZpbmRfaWZfY2FzZV8xKTogQWJvcnQgdHJhbnNmb3JtYXRpb24gaWYgdG90YWxfYmJfcnR4X2Nvc3QgcmV0dXJucwoJLTEgKGkuZS4gY2FuJ3QgZGV0ZXJtaW5lIHRoZSBjb3N0IG9mIGFueSBpbnN0cnVjdGlvbiBvciB0aGUgYmFzaWMKCWJsb2NrIGNvbnRhaW5zIGEgc3Vicm91dGluZSBjYWxsKS4KCShmaW5kX2lmX2Nhc2VfMik6IExpa2V3aXNlLgoKMjAwNC0wNy0xMSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiByczYwMDAuYyAoc3RydWN0IHByb2Nlc3Nvcl9jb3N0cyk6IENoYW5nZSBzZW1hbnRpY3Mgb2YgZmllbGRzIHRvCglpbmNsdWRlIHRoZSBDT1NUX05fSU5TTlMgc2NhbGluZywgYW5kIHVwZGF0ZSBhbGwgaW5pdGlhbGl6ZXJzLgoJKHJzNjAwMF9ydHhfY29zdHMpOiBEb24ndCB1c2UgQ09TVFNfTl9JTlNOUyBvbiByczYwMDBfY29zdCBmaWVsZHMuCglVc2UgQ09TVFNfTl9JTlNOUygxKSBmb3IgTk9ULCBTSUdOX0VYVEVORCwgWkVST19FWFRFTkQgYW5kIENPTVBBUkUuCglVc2UgcnM2MDAwX2Nvc3QtPmZwIGZvciBib3RoIEZMT0FUX1RSVU5DQVRFIGFuZCBVTlNQRUNfRlJTUC4gIFdoZW4KCW9wdGltaXppbmcgZm9yIHNpemUsIHVzZSBDT1NUU19OX0lOU05TKDEpIGZvciBDQUxMIGFuZCBJRl9USEVOX0VMU0UuCgoyMDA0LTA3LTExICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIExBTkdVQUdFUzogUmVtb3ZlIG9ic29sZXRlIGluZm9ybWF0aW9uLgoKMjAwNC0wNy0xMSAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogY29uZmlnL3MzOTAvbGludXguaCAoTURfRkFMTEJBQ0tfRlJBTUVfU1RBVEVfRk9SKTogRm9yIFNJR1NFR1YgYW5kCglTSUdCVVMgc2lnbmFsIGZyYW1lcywgdGhlIFBTVyBhZGRyZXNzIHBvaW50cyAqdG8qIHRoZSBmYXVsdGluZwoJaW5zdHJ1Y3Rpb24sIG5vdCBhZnRlciBpdC4KCjIwMDQtMDctMTEgIFVscmljaCBXZWlnYW5kICA8dXdlaWdhbmRAZGUuaWJtLmNvbT4KCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAobGVnaXRpbWl6ZV90bHNfYWRkcmVzcyk6IEhhbmRsZSBjb25zdGFudCBvZmZzZXRzCglhZGRlZCB0byBUTFMgc3ltYm9sIGFkZHJlc3Nlcy4KCjIwMDQtMDctMTEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBleHBtZWQuYyAoaW5pdF9leHBtZWQpOiBVc2Ugc3RhY2stbG9jYWwgc3RydWN0dXJlcyBmb3IKCXRlbXBvcmFyeSBydGwuICBEb24ndCByZWNvZ25pemUgc2hpZnRzLgoKMjAwNC0wNy0xMSAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGV4cHIuYyAoc3RvcmVfZXhwcik6IERvbid0IGZpZGRsZSBzdWJyZWcgcHJvbW90aW9uIGZvciB0eXBlcwoJd2l0aCBwcmVjaXNpb24gc21hbGxlciB0aGFuIHRoZSBtb2RlLgoKMjAwNC0wNy0xMSAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiB0cmVlLmggKGFsbF90eXBlc19wZXJtYW5lbnQpOiBSZW1vdmUuCgoyMDA0LTA3LTExICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCgkqIGxhbmdob29rcy5oIChlc3RpbWF0ZV9udW1faW5zbnMsIHB1c2hsZXZlbCwgcG9wbGV2ZWwsIHNldF9ibG9jaywKCW1heWJlX2J1aWxkX2NsZWFudXAsIHVwZGF0ZV9kZWNsX2FmdGVyX3NhdmluZyk6IFJlbW92ZSBob29rcy4KCSogbGFuZ2hvb2tzLmMgKGxoZF9jbGVhcl9iaW5kaW5nX3N0YWNrKTogUmVtb3ZlLgoJKiBsYW5naG9va3MtZGVmLmggKGxoZF9jbGVhcl9iaW5kaW5nX3N0YWNrLAoJTEFOR19IT09LU19NQVlCRV9CVUlMRF9DTEVBTlVQLAoJTEFOR19IT09LU19VUERBVEVfREVDTF9BRlRFUl9TQVZJTkcsCglMQU5HX0hPT0tTX1RSRUVfSU5MSU5JTkdfRVNUSU1BVEVfTlVNX0lOU05TLCBMQU5HX0hPT0tTX1BVU0hMRVZFTCwKCUxBTkdfSE9PS1NfUE9QTEVWRUwsIExBTkdfSE9PS1NfU0VUX0JMT0NLKTogUmVtb3ZlLgoJKExBTkdfSE9PS1NfQ0xFQVJfQklORElOR19TVEFDSyk6IERlZmluZSB0byBsaGRfZG9fbm90aGluZy4KCSogc3lzdGVtLmggKExBTkdfSE9PS1NfVFJFRV9JTkxJTklOR19FU1RJTUFURV9OVU1fSU5TTlMsCglMQU5HX0hPT0tTX1BVU0hMRVZFTCwgTEFOR19IT09LU19TRVRfQkxPQ0ssCglMQU5HX0hPT0tTX01BWUJFX0JVSUxEX0NMRUFOVVAsCglMQU5HX0hPT0tTX1VQREFURV9ERUNMX0FGVEVSX1NBVklORywgTEFOR19IT09LU19QT1BMRVZFTCk6IFBvaXNvbi4KCSogdHJlZS5oIChwb3BsZXZlbCk6IERvbid0IGRlY2xhcmUuCgkqIGMtbGFuZy5jIChMQU5HX0hPT0tTX0NMRUFSX0JJTkRJTkdfU1RBQ0ssIExBTkdfSE9PS1NfUFVTSExFVkVMLAoJTEFOR19IT09LU19QT1BMRVZFTCwgTEFOR19IT09LU19TRVRfQkxPQ0spOiBSZW1vdmUuCgkqIG9iamMvb2JqYy1sYW5nLmMgKExBTkdfSE9PS1NfQ0xFQVJfQklORElOR19TVEFDSywKCUxBTkdfSE9PS1NfUFVTSExFVkVMLCBMQU5HX0hPT0tTX1BPUExFVkVMLCBMQU5HX0hPT0tTX1NFVF9CTE9DSyk6CglSZW1vdmUuCgoyMDA0LTA3LTExICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCglQUiB0cmVlLW9wdGltaXphdGlvbi8xNjQzNwoJKiBjLWNvbW1vbi5jIChzaG9ydGVuX2NvbXBhcmUpOiBEb24ndCBtYXJrIHJlc3VsdCBvZiBjb252ZXJzaW9uIHRvCgluYXJyb3dlciBzaWduZWQgdHlwZSBhcyBvdmVyZmxvd2luZy4KCSogZm9sZC1jb25zdC5jIChkZWNvZGVfZmllbGRfcmVmZXJlbmNlKTogRGV0ZXJtaW5lIHdoZXRoZXIKCXNpZ25lZG5lc3MgY29tZXMgZnJvbSBvdXRlciB0eXBlIHVzaW5nIHByZWNpc2lvbiByYXRoZXIgdGhhbiBzaXplLgoKMjAwNC0wNy0xMSAgUGhpbCBFZHdhcmRzICA8cGhpbEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlndXJlLmFjOiAgQWxwaGFiZXRpemUgLS1lbmFibGUtY2hlY2tpbmcgbGlzdCwgYWRkCgltaXNzaW5nIHZhbGdyaW5kIGVudHJ5LgoJKiBjb25maWd1cmU6ICBSZWdlbmVyYXRlLgoKMjAwNC0wNy0xMSAgUGhpbCBFZHdhcmRzICA8cGhpbEBjb2Rlc291cmNlcnkuY29tPgoKCSogZG9jL2luc3RhbGwudGV4aSAoVGVzdGluZyk6ICBGaXggc3ludGF4IGluICJtYWtlIGNoZWNrIiBleGFtcGxlLgoKMjAwNC0wNy0xMCAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCSogY29uZmlnL2dvZmFzdC5oIChnb2Zhc3RfbWF5YmVfaW5pdF9saWJmdW5jcyk6IFVzZSBTSW1vZGUgZm9yIGxpdG9kcC4KCjIwMDQtMDctMTAgIFpkZW5layBEdm9yYWsgIDxyYWtkdmVyQGF0cmV5Lmthcmxpbi5tZmYuY3VuaS5jej4KCglQUiBydGwtb3B0aW1pemF0aW9uLzE2MDAxCgkqIGxvb3AtaXYuYyAoaXZfbnVtYmVyX29mX2l0ZXJhdGlvbnMpOiBQcmV2ZW50IGNvcHkgcHJvcGFnYXRpb24gaW4KCW5pdGVyX2V4cHIuCgoyMDA0LTA3LTEwICBHZW9mZnJleSBLZWF0aW5nICA8Z2VvZmZrQGFwcGxlLmNvbT4KCgkqIGNvbmZpZy9kYXJ3aW4uaCAoTElOS19DT01NQU5EX1NQRUMpOiBEb24ndCBjYWxsIGMrK2ZpbHQuCgoyMDA0LTA3LTEwICBTdGV2ZSBLYXJnbCAgPHNna0B0cm91dG1hc2suYXBsLndhc2hpbmd0b24uZWR1PgoJICAgIEphbWVzIE1vcnJpc29uICA8cGh5dGhvbkBnY2MuZ251Lm9yZz4KCgkqIGRvYy9jb250cmliLnRleGkgKENvbnRyaWJ1dG9ycyk6IEFkZCBnZm9ydHJhbiBjb250cmlidXRvcnMgYW5kCglmaXggYSBjb3VwbGUgb2YgdHlwb3MuCgoyMDA0LTA3LTEwICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNTM4NwoJKiBjYWxscy5jIChjaGVja19zaWJjYWxsX2FyZ3VtZW50X292ZXJsYXBfMSk6IEhhbmRsZSBwb2ludGVycwoJdG8gaW5jb21pbmcgYXJncyBzcGFjZSBjb3JyZWN0bHkuCgoyMDA0LTA3LTEwICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCSogcGEuYyAob3V0cHV0X2luZGlyZWN0X2NhbGwpOiBPbmx5IHVzZSAlcjIgYXMgdGhlIGxpbmsgcmVnaXN0ZXIgaW4KCWluZGlyZWN0IGNhbGxzIHdpdGggdGhlIGxvbmcgUEEgMi4wIHBjLXJlbGF0aXZlIGJyYW5jaC4KCjIwMDQtMDctMTAgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGRlYmlhbi5vcmc+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKG92ZXJyaWRlX29wdGlvbnMpOiBQaWNrIGEgNjQtYml0IENQVQoJZm9yIHRoZSBkZWZhdWx0IHR1bmluZyBpZiBUQVJHRVRfNjRCSVQuCgoyMDA0LTA3LTEwICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogYnVpbHRpbnMuYyAoc3RkX2dpbXBsaWZ5X3ZhX2FyZ19leHByKTogV2lkZW4gYWxpZ24vYm91bmRhcnkKCXRvIEhPU1RfV0lERV9JTlQuICBGb2xkIHBhZC1hcmdzLWRvd24gYXJpdGhtZXRpYy4KCjIwMDQtMDctMTAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZXhwci5oIChzdG9yZV9iaXRfZmllbGQsIGV4dHJhY3RfYml0X2ZpZWxkKTogUmVtb3ZlIGxhc3QgYXJndW1lbnQuCgkqIGV4cG1lZC5jIChzdG9yZV9iaXRfZmllbGQsIGV4dHJhY3RfYml0X2ZpZWxkKTogUmVtb3ZlIGxhc3QKCWFyZ3VtZW50LgoJKiBidWlsdGlucy5jIChleHBhbmRfYnVpbHRpbl9zaWduYml0KTogQWRqdXN0IGNhbGxlcnMuCgkqIG9wdGFicy5jIChleHBhbmRfdmVjdG9yX2Jpbm9wLCBleHBhbmRfdmVjdG9yX3Vub3ApOiBMaWtld2lzZS4KCSogY2FsbHMuYyAoc3RvcmVfdW5hbGlnbmVkX2FyZ3VtZW50c19pbnRvX3BzZXVkb3MpOiBMaWtld2lzZS4KCSogaWZjdnQuYyAobm9jZV9lbWl0X21vdmVfaW5zbik6IExpa2V3aXNlLgoJKiBzdG10LmMgKGV4cGFuZF9yZXR1cm4pOiBMaWtld2lzZS4KCSogZXhwci5jIChlbWl0X2dyb3VwX2xvYWQsIGVtaXRfZ3JvdXBfc3RvcmUsIGNvcHlfYmxrbW9kZV9mcm9tX3JlZywKCXN0b3JlX2ZpZWxkLCBleHBhbmRfZXhwcl9yZWFsXzEpOiBMaWtld2lzZS4KCjIwMDQtMDctMTAgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBidWlsdGlucy5jIChzdGRfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBGaXggYm9ya2VkIEJJVF9BTkRfRVhQUi4KCjIwMDQtMDctMDkgIE1pa2UgU3R1bXAgIDxtcnNAYXBwbGUuY29tPgoKCSogY29uZmlnL2Rhcndpbi5jIChub19kZWFkX3N0cmlwKTogQWRkLgoJKEhBVkVfREVBRF9TVFJJUCk6IEFkZC4KCShkYXJ3aW5fZW1pdF91bndpbmRfbGFiZWwpOiBFbnN1cmUgdGhhdCB3ZSBkb24ndCBkZWFkIGNvZGUgc3RyaXAKCXRoZSAuZWggbGFiZWwuCgoyMDA0LTA3LTA5ICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJKiB0cmVlLXNzYS1sb29wLWltLmM6IE5ldyBmaWxlLgoJKiBNYWtlZmlsZS5pbiAodHJlZS1zc2EtbG9vcC1pbS5vKTogQWRkLgoJKiBjZmdsb29wLmMgKHN1cGVybG9vcF9hdF9kZXB0aCk6IE5ldyBmdW5jdGlvbi4KCSogY2ZnbG9vcC5oIChzdXBlcmxvb3BfYXRfZGVwdGgpOiBEZWNsYXJlLgoJKiBjb21tb24ub3B0IChmdHJlZS1saW0pOiBOZXcgZmxhZy4KCSogZXhwci5jIChhcnJheV9yZWZfdXBfYm91bmQpOiBOZXcgZnVuY3Rpb24uCgkqIHBhcmFtcy5kZWYgKFBBUkFNX0xJTV9FWFBFTlNJVkUpOiBOZXcgcGFyYW1ldGVyLgoJKiB0aW1ldmFyLmRlZiAoVFZfTElNKTogTmV3IHRpbWV2YXIuCgkqIHRyZWUtZGZhLmMgKGNvbXB1dGVfaW1tZWRpYXRlX3VzZXMpOiBSZXNwZWN0IFRERkFfVVNFIGZsYWdzIHdoZW4KCWNvbXB1dGluZyBpbW1lZGlhdGUgdXNlcyBvZiBhIHBoaSBub2RlLgoJKiB0cmVlLWZsb3cuaCAoc3RydWN0IHRyZWVfYW5uX2NvbW1vbl9kKTogQWRkIGF1eCBmaWVsZC4KCShsb29wX2NvbW1pdF9pbnNlcnRzLCBmb3JfZWFjaF9pbmRleCwgdHJlZV9zc2FfbGltKTogRGVjbGFyZS4KCSogdHJlZS1vcHRpbWl6ZS5jIChpbml0X3RyZWVfb3B0aW1pemF0aW9uX3Bhc3Nlcyk6IEFkZCBwYXNzX2xpbS4KCSogdHJlZS1wYXNzLmggKHBhc3NfbGltKTogRGVjbGFyZS4KCSogdHJlZS1zc2EtbG9vcC5jICh0cmVlX3NzYV9sb29wX2ltLCBnYXRlX3RyZWVfc3NhX2xvb3BfaW0pOiBOZXcKCWZ1bmN0aW9ucy4KCShwYXNzX2xpbSk6IE5ldyBwYXNzIHN0cnVjdHVyZS4KCSogdHJlZS1laC5jICh0cmVlX2NvdWxkX3RyYXBfcCk6IEhhbmRsZSBBUlJBWV9SRUZzIGNvcnJlY3RseS4KCSogdHJlZS5jIChpbl9hcnJheV9ib3VuZHNfcCk6IE5ldyBmdW5jdGlvbi4KCSogdHJlZS5oIChUUkVFX1RISVNfTk9UUkFQKTogRGVmaW5lIGFsc28gZm9yIEFSUkFZX1JFRnMuCgkoaW5fYXJyYXlfYm91bmRzX3AsIGFycmF5X3JlZl91cF9ib3VuZCk6IERlY2xhcmUuCgkqIGRvYy9pbnZva2UudGV4aSAoLWZ0cmVlLWxpbSwgLS1wYXJhbSBsaW0tZXhwZW5zaXZlKTogRG9jdW1lbnQuCgkqIGRvYy9wYXNzZXMudGV4aSAodHJlZS1zc2EtbG9vcC1pbS5jKTogRG9jdW1lbnQuCgoyMDA0LTA3LTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fc3RwY3B5KTogRG9uJ3QgbW9kaWZ5IGxlbi4KCgkqIHRyZWUtc3NhLWNjcC5jIChjY3BfZm9sZF9idWlsdGluKTogU3RyaXAgY29udmVyc2lvbiBleHBycwoJd2l0aCBwcmVqdWRpY2UuCgoyMDA0LTA3LTEwICBLZWxsZXkgQ29vayAgPGtjb29rQGdjYy5nbnUub3JnPgoKCSogZmxhZ3MuaDogRGVsZXRlIHJlZHVuZGFudCBwcm90b3R5cGVzIHRoYXQgYXJlIGJlaW5nIGdlbmVyYXRlZAoJaW4gb3B0aW9ucy5oIGZyb20gY29tbW9uLm9wdC4KCSogY29tbW9uLm9wdDogQWRkIGluIHRoZSBleHBvc2l0b3J5IGNvbW1lbnRzIGZvcm1lcmx5IGluIGZsYWdzLmguCgoyMDA0LTA3LTA5ICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKGluaXRfY3VtdWxhdGl2ZV9hcmdzKTogU2V0IG1teC9zc2UgcmVnaXN0ZXJzCglhdmFpbGFibGUgZm9yIHVzZSBvbmx5IHdoZW4gVEFSR0VUX01NWC9fU1NFIGlzIHNldCwgYW5kIGNoZWNrIGZvcgoJdmFyaWFibGUgYXJndW1lbnQgZnVuY3Rpb24gaWYgYW55IHJlZ2lzdGVyIGNvdW50IGlzIG5vbi16ZXJvLgoJKGZ1bmN0aW9uX2FyZyk6IENvcnJlY3RseSBzdXBwcmVzcyByZXBlYXRlZCB3YXJuaW5ncyBmb3IgcGFzc2luZyBTU0UKCXZlY3RvcnMgYXJlIGFyZ3VtZW50cyB3aXRob3V0IFNTRSBlbmFibGVkLgoJKGl4ODZfZnVuY3Rpb25fYXJnX2JvdW5kYXJ5KTogV2l0aG91dCBTU0UgZW5hYmxlZCwgdGhlIHVzZSBvZiB3aGF0Cgl3b3VsZCBiZSBTU0UgcmVnaXN0ZXIgbW9kZXMgZG9lcyBubyBsb25nZXIgaW5mbHVlbmNlIHRoZSBhbGlnbm1lbnQuCgoyMDA0LTA3LTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogYnVpbHRpbnMuYyAoc3RkX2dpbXBsaWZ5X3ZhX2FyZ19leHByKTogRGVueSBBUkdTX0dST1dfRE9XTldBUkQuCglBbHdheXMgYWxpZ24gdXB3YXJkIHRvIGFyZyBib3VuZGFyeS4gIFVzZSBzaXplX2luX2J5dGVzL3JvdW5kX3VwLgoJTWFpbnRhaW4gdHlwZS1jb3JyZWN0bmVzcyBvZiBjb25zdGFudHMuCgkqIHN0b3ItbGF5b3V0LmMgKHJvdW5kX3VwLCByb3VuZF9kb3duKTogU3BlY2lhbC1jYXNlIHBvd2VycyBvZiAyLgoKMjAwNC0wNy0wOSAgRGF2aWQgUy4gTWlsbGVyICA8ZGF2ZW1AbnV0cy5kYXZlbWxvZnQubmV0PgoKCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKCpfY29zdHMpOiBTY2FsZSBpbnN0cnVjdGlvbiBjb3N0cwoJYnkgQ09TVFNfTl9JTlNOUy4KCShzcGFyY19ydHhfY29zdHMpOiBBZGp1c3QgYXMgYXBwcm9wcmlhdGUuCgoyMDA0LTA3LTA5ICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBjb25maWcvaTM4Ni9tbTNkbm93Lmg6IE5ldy4KCSogY29uZmlnLmdjYzogQWRkIG1tM2Rub3cuaCB0byBleHRyYV9oZWFkZXJzIGZvciBpPzg2IGFuZCB4ODYtNjQuCgoyMDA0LTA3LTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogc2ltcGxpZnktcnR4LmMgKHNpbXBsaWZ5X2NvbnN0X3JlbGF0aW9uYWxfb3BlcmF0aW9uKTogT25seQoJbG9vayBhdCBib3VuZHMgb2Ygc2NhbGFyIGludGVnZXJzLgoKMjAwNC0wNy0wOSAgSmFuIEJldWxpY2ggIDxqYmV1bGljaEBub3ZlbGwuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoc3NlMl9jbGZsdXNoKTogVXNlIGNvcnJlY3Qgb3BlcmFuZCBmb3IgY2xmbHVzaC4KCjIwMDQtMDctMDkgIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGFwcGxlLmNvbT4KCgkqIG9iamMvb2JqYy1hY3QuYyAoYnVpbGRfbW9kdWxlX2Rlc2NyaXB0b3IpOiBNYXJrIFVPQkpDX01PRFVMRVNfZGVjbCBhcwoJYWx3YXlzIHJlZmVyZW5jZWQuCgkoc3ludGhfZm9yd2FyZF9kZWNsYXJhdGlvbnMpOiBMaWtld2lzZSBmb3IgVU9CSkNfQ0xBU1NfZGVjbCBhbmQKCVVPQkpDX01FVEFDTEFTU19kZWNsLgoKMjAwNC0wNy0wOSAgSmFtZXMgRSBXaWxzb24gIDx3aWxzb25Ac3BlY2lmaXhpbmMuY29tPgoKCVBSIHRhcmdldC8xNjM2NAoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfZnVuY3Rpb25fYXJnKTogRm9yIGEgc2luZ2xlIGVsZW1lbnQgSEZBLAoJZG8gcmV0dXJuIGEgcGFyYWxsZWwgaWYgaGZhX21vZGUgPT0gWEZtb2RlIGFuZCBtb2RlID09IFRJbW9kZS4KCjIwMDQtMDctMDkgIEphbiBCZXVsaWNoICA8amJldWxpY2hAbm92ZWxsLmNvbT4KCgkqIGMtdHlwZWNrLmMgKGJ1aWxkX3VuYXJ5X29wKTogaW5jbHVkZSBWRUNUT1JfVFlQRSBpbiBzZXQgb2YgY29kZXMKCXBlcm1pc3NpYmxlIGZvciB1bmFyeSBwbHVzLgoKMjAwNC0wNy0wOSAgSmFuIEJldWxpY2ggIDxqYmV1bGljaEBub3ZlbGwuY29tPgoKCSogYnVpbHRpbi10eXBlcy5kZWYgKEJUX1VJTlQpOiBSZW5hbWUgZnJvbSBCVF9VTlNJR05FRC4KCShCVF9GTl9VSU5UKTogUmVuYW1lIGZyb20gQlRfRk5fVU5TSUdORUQuCgkoQlRfRk5fUFRSX1VJTlQpOiBSZW5hbWUgZnJvbSBCVF9GTl9QVFJfVU5TSUdORUQuCgkoQlRfVUxPTkcsIEJUX1VMT05HTE9ORywgQlRfVUlOVE1BWCwgQlRfRk5fSU5UX1VJTlQsIEJUX0ZOX0lOVF9VTE9ORywKCUJUX0ZOX0lOVF9VTE9OR0xPTkcsIEJUX0ZOX0lOVF9JTlRNQVgsIEJUX0ZOX0lOVF9VSU5UTUFYKTogTmV3LgoJKiBidWlsdGlucy5kZWYgKEJVSUxUSU5fQ0xaeHh4LCBCVUlMVElOX0NUWHh4eCwgQlVJTFRJTl9QQVJJVFl4eHgsCglCVUlMVElOX1BPUENPVU5UeHh4KTogQXJndW1lbnRzIGFyZSB1bnNpZ25lZC4KCShCVUlMVElOX3h4eElNQVgpOiBOZXcuCgkqIGJ1aWx0aW5zLmMgKGV4cGFuZF9idWlsdGluKTogSGFuZGxlIEJVSUxUX0lOX0ZGU0lNQVgsCglCVUlMVF9JTl9DTFpJTUFYLCBCVUlMVF9JTl9DVFpJTUFYLCBCVUlMVF9JTl9QT1BDT1VOSU1BWCwgYW5kCglCVUlMVF9JTl9QQVJJVFlJTUFYLgoKMjAwNC0wNy0wOSAgRGF2aWQgUy4gTWlsbGVyICA8ZGF2ZW1AbnV0cy5kYXZlbWxvZnQubmV0PgoKCSogY29uZmlnL3NwYXJjL3NwYXJjLmggKHByb2Nlc3Nvcl9jb3N0cyk6IERlZmluZS4KCShzcGFyY19jb3N0cyk6IERlY2xhcmUuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChjeXByZXNzX2Nvc3RzLCBzdXBlcnNwYXJjX2Nvc3RzLAoJaHlwZXJzcGFyY19jb3N0cywgc3BhcmNsZXRfY29zdHMsIHVsdHJhc3BhcmNfY29zdHMsCgl1bHRyYXNwYXJjM19jb3N0cyk6IE5ldy4KCShzcGFyY19vdmVycmlkZV9vcHRpb25zKTogU2V0IHNwYXJjX2Nvc3RzIGFzIGFwcHJvcHJpYXRlLgoJKHNwYXJjX3J0eF9jb3N0cyk6IFVzZSBzcGFyY19jb3N0cyBpbnN0ZWFkIG9mIG1lc3N5Cgljb25kaXRpb25hbHMuCgoyMDA0LTA3LTA5ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBkb2MvbWQudGV4aSAoUHJvY2Vzc29yIHBpcGVsaW5lIGRlc2NyaXB0aW9uKTogTWVudGlvbiB0aGF0Cgl0aGUgb2xkIHBpcGVsaW5lIGRlc2NyaXB0aW9uIGlzIGRlcHJlY2F0ZWQuCgoJKiBjb25maWcvcnM2MDAwLzc0NTAubWQgKGF1dG9tYXRvbiBwcGM3NDUwKTogU3BsaXQgdXAsIG1vdmUKCW1jaXVfNzQ1MCBmdW5jdGlvbiB1bml0IHRvLi4uCgkoYXV0b21hdG9uIHBwYzc0NTBtY2l1KTogLi4ubmV3IGF1dG9tYXRvbi4KCgkqIGhhaWZhLXNjaGVkLmMgKGluc2VydF9zY2hlZHVsZV9idWJibGVzX3ApOiBSZW1vdmUuCgkoc2NoZWR1bGVfYmxvY2spOiBEb24ndCBjb25zaWRlciBpbnNlcnRpbmcgYnViYmxlcy4KCShzY2hlZF9pbml0KTogRG9uJ3QgaW5pdGlhbGl6ZSBERkEgYnViYmxlcy4KCSogdGFyZ2V0LWRlZi5oIChUQVJHRVRfU0NIRURfSU5JVF9ERkFfQlVCQkxFUywKCVRBUkdFVF9TQ0hFRF9ERkFfQlVCQkxFKTogUmVtb3ZlLgoJKiB0YXJnZXQuaCAoaW5pdF9kZmFfYnViYmxlcywgZGZhX2J1YmJsZSk6IFJlbW92ZSBob29rcy4KCSogZG9jL3RtLnRleGkgKFRBUkdFVF9TQ0hFRF9JTklUX0RGQV9CVUJCTEVTLAoJVEFSR0VUX1NDSEVEX0RGQV9CVUJCTEUpOiBSZW1vdmUgZG9jdW1lbnRhdGlvbi4KCgkqIHN0bXQuYyAoY29uZGl0aW9uYWxfY29udGV4dCk6IFJlbW92ZSBwcm90b3R5cGUuCgkqIHRyZWUuaCAoY29uZGl0aW9uYWxfY29udGV4dCk6IFJlbW92ZS4KCSogdHJlZS1jZmcuYyAocHJlX2luc2VydF9vbl9lZGdlKTogUmVtb3ZlLgoKCSogYy1jb21tb24uaCAoY19leHBhbmRfYXNtX29wZXJhbmRzKTogUmVtb3ZlIHByb3RvdHlwZS4KCSogYy10eXBlY2suYyAoY19leHBhbmRfYXNtX29wZXJhbmRzKTogUmVtb3ZlLgoKMjAwNC0wNy0wOSAgSmFuIEJldWxpY2ggIDxqYmV1bGljaEBub3ZlbGwuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChjbGFzc2lmeV9hcmd1bWVudCk6IFRyZWF0IFYxeHggbW9kZXMgdGhlIHNhbWUgYXMKCXRoZWlyIGJhc2UgbW9kZXMuIENUSW1vZGUsIFRDbW9kZSwgYW5kIFhDbW9kZSBtdXN0IGJlIHBhc3NlZCBpbiBtZW1vcnkuCglURm1vZGUgKF9fZmxvYXQxMjgpIG11c3QgYmUgaXMgYW4gU1NFL1NTRVVQIHBhaXIuIFYyU0ltb2RlLCBWNEhJbW9kZSwKCWFuZCBWOFFJIGFyZSBjbGFzcyBTU0UuIEFsbCBzdWZmaWNpZW50bHkgc21hbGwgcmVtYWluaW5nIHZlY3RvciBtb2RlcwoJbXVzdCBiZSBwYXNzZWQgaW4gb25lIG9yIHR3byBpbnRlZ2VyIHJlZ2lzdGVycy4KCShpeDg2X2xpYmNhbGxfdmFsdWUpOiBURm1vZGUgbXVzdCBiZSByZXR1cm5lZCBpbiB4bW0wLCBYQ21vZGUgbXVzdCBiZQoJcmV0dXJuZWQgaW4gbWVtb3J5LgoJKGJkZXNjXzJhcmcsIGl4ODZfaW5pdF9tbXhfc3NlX2J1aWx0aW5zKTogX19idWlsdGluX2lhMzJfcG11bHVkcSBhbmQKCV9fYnVpbHRpbl9pYTMyX3BtdWx1ZHExMjggaGF2ZSBub24tdW5pZm9ybSBhcmd1bWVudCBhbmQgcmV0dXJuIHR5cGVzCglhbmQgbXVzdCB0aHVzIGJlIGhhbmRsZWQgZXhwbGljaXRseS4KCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoKm1vdmRpXzFfcmV4NjQpOiBBZGQgY2FzZXMgZm9yIG1vdmluZyBiZXR3ZWVuCglNTVggYW5kIFhNTSByZWdzLgoJKG1vdnY4cWlfaW50ZXJuYWwsIG1vdnY0aGlfaW50ZXJuYWwsIG1vdnYyc2lfaW50ZXJuYWwsCgltb3Z2MnNmX2ludGVybmFsKTogUGVybWl0IG1vdmluZyBiZXR3ZWVuIE1NWCBhbmQgWE1NIHJlZ2lzdGVycyAoc2luY2UKCU1NWCBhcmVndW1lbnRzIGFuZCByZXR1cm4gdmFsdWVzIGFyZSBwYXNzZWQgaW4gWE1NIHJlZ2lzdGVycykuCgkoc3NlMl91bXVsc2lkaTMpOiBDb3JyZWN0IHR5cGUgYW5kIG1vZGUuCgoyMDA0LTA3LTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdHJlZS1jZmcuYyAoZHVtcF9jZmdfc3RhdHMpOiBGaXggNjQtYml0IGZvcm1hdCBtaXNtYXRjaCBlcnJvcnMuCgoyMDA0LTA3LTA5ICBFcmljIENocmlzdG9waGVyICA8ZWNocmlzdG9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9yczYwMDAvNDB4Lm1kOiBTcGxpdCBpbnRvIHR3byBhdXRvbWF0b25zLgoKMjAwNC0wNy0wOSAgWmFjayBXZWluYmVyZyAgPHphY2tAY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBBbmRyZXcgUGluc2tpICA8YXBpbnNraUBhcHBsZS5jb20+CgoJKiBjLW9wdHMuYyAoY19jb21tb25fcG9zdF9vcHRpb25zKTogRm9yY2UgdW5pdC1hdC1hLXRpbWUgbW9kZQoJb24gd2hlbiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgaW5wdXQgZmlsZS4KCShjX2NvbW1vbl9wYXJzZV9maWxlKTogUmVzdG9yZSBsb29wIG92ZXIgYWxsIGlucHV0IGZpbGVzLgoJQ2xhcmlmeSBkaWFnbm9zdGljIGZvciAtZHkgd2hlbiBZWURFQlVHIHdhc24ndCBkZWZpbmVkLgoKCSogYy1kZWNsLmMgKHNldF90eXBlX2NvbnRleHQpOiBOZXcgZnVuY3Rpb24uCgkocG9wX3Njb3BlKTogVXNlIGl0IHRvIHNldCBjb250ZXh0IG9mIHR5cGVzLiAgV2hlbiB3ZQoJZW5jb3VudGVyIGEgVFlQRV9ERUNMLCBzZXQgdGhlIGNvbnRleHQgb2YgdGhlIGF0dGFjaGVkIHR5cGUgdG9vLgoJKHBvcF9maWxlX3Njb3BlKTogRG9uJ3QgY2FsbCBjcHBfdW5kZWZfYWxsIGhlcmUuCgkoZGlhZ25vc2VfbWlzbWF0Y2hlZF9kZWNscyk6IERvIG5vdCBjb21wbGFpbiBhYm91dCBhIHNlY29uZAoJZGVmaW5pdGlvbiBvZiBhbiAnZXh0ZXJuIGlubGluZScgZnVuY3Rpb24gaWYgaXQncyBub3QgaW4gdGhlCglzYW1lIHRyYW5zbGF0aW9uIHVuaXQuICBEbyBub3QgY29tcGxhaW4gYWJvdXQgaW5saW5lCglkZWNsYXJhdGlvbiBhZnRlciB1c2UgaWYgdGhlIHVzZSB3YXMgaW4gYSBkaWZmZXJlbnQKCXRyYW5zbGF0aW9uIHVuaXQuCgkobWVyZ2VfZGVjbHMpOiBEb24ndCBjbG9iYmVyIG9sZGRlY2wncyBERUNMX0NPTlRFWFQuCgkocHVzaGRlY2wpOiBEbyBub3QgcHV0IERFQ0xfRVhURVJOQUwsICFUUkVFX1BVQkxJQyBkZWNscyBpbgoJdGhlIGV4dGVybmFsIHNjb3BlLgoJKHB1c2hkZWNsX3RvcF9sZXZlbCk6IExpa2V3aXNlLgoJKGdyb2tkZWNsYXJhdG9yKTogQ2xhcmlmeSB3aGF0IGlzIGdvaW5nIG9uIHdpdGggc2V0dGluZwoJREVDTF9FWFRFUk5BTCBvbiBmdW5jdGlvbiB0eXBlcywgYSBsaXR0bGUuCgkoY193cml0ZV9nbG9iYWxfZGVjbGFyYXRpb25zKTogRG9uJ3QgZG8gYW55dGhpbmcgaWYKCS1mc3ludGF4LW9ubHkgb3IgZXJyb3JzIGhhdmUgYmVlbiBlbmNvdW50ZXJlZC4KCjIwMDQtMDctMDkgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB2ZWMuYywgdmVjLmggKHZlY19hc3NlcnRfZmFpbCk6IFVzZSB1bnNpZ25lZCBpbnQgZm9yIExJTkUgYXJndW1lbnQuCgoyMDA0LTA3LTA5ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCVBSIHRhcmdldC8xNjQ1OQoJKiBwYS5jIChvdXRwdXRfaW5kaXJlY3RfY2FsbCk6IFVzZSAlcjIgYXMgdGhlIGxpbmsgcmVnaXN0ZXIgd2hlbgoJY2FsbGluZyAkJGR5bmNhbGwgd2l0aCBhIHBjLXJlbGF0aXZlIGJyYW5jaC4KCjIwMDQtMDctMDggIEdlcmFsZCBQZmVpZmVyICA8Z2VyYWxkQHBmZWlmZXIuY29tPgoKCSogZG9jL2luc3RhbGwudGV4aSAoQmluYXJpZXMpOiBNZW50aW9uIE9wZW5QS0cuCgoyMDA0LTA3LTA5ICBEaWVnbyBOb3ZpbGxvICA8ZG5vdmlsbG9AcmVkaGF0LmNvbT4KCglGaXggUFIgdHJlZS1vcHRpbWl6YXRpb24vMTU1NTUKCSogdHJlZS1kZmEuYyAoZHVtcF92YXJpYWJsZSk6IElmIHRoZSB2YXJpYWJsZSBpcyBhIHBvaW50ZXIKCVNTQV9OQU1FLCBhbHNvIGR1bXAgaXRzIHBvaW50cy10byBpbmZvcm1hdGlvbi4KCSogdHJlZS1mbG93LmggKHN0cnVjdCBwdHJfaW5mb19kZWYpOiBBZGQgZmllbGQKCWlzX2RlcmVmZXJlbmNlZC4KCShkdW1wX3BvaW50c190b19pbmZvX2Zvcik6IERlY2xhcmUuCgkoZGVidWdfcG9pbnRzX3RvX2luZm9fZm9yKTogRGVjbGFyZS4KCSogdHJlZS1vcHRpbWl6ZS5jIChpbml0X3RyZWVfb3B0aW1pemF0aW9uX3Bhc3Nlcyk6IEFkZCBhCglzZWNvbmQgYWxpYXMgYW5hbHlzaXMgcGFzcyBhZnRlciBET00yLgoJTW92ZSBwYXNzX2RlbF9wdGEgdG8gYSBsYXRlciBzcG90LgoJKiB0cmVlLXNzYS1hbGlhcy5jIChjb21wdXRlX3BvaW50c190b19hbmRfYWRkcl9lc2NhcGUpOiBEbyBub3QKCWNyZWF0ZSBhIG5hbWUgdGFncyB3aGVuIHdlIGZpbmQgYSBkZXJlZmVyZW5jZWQgcG9pbnRlci4gIEp1c3QKCW1hcmsgdGhlIHBvaW50ZXIgZGVyZWZlcmVuY2VkLgoJKGNvbGxlY3RfcG9pbnRzX3RvX2luZm9fZm9yKTogTW92ZSBjb2RlIHRvIGNsZWFyIHBvaW50cy10bwoJaW5mb3JtYXRpb24gdG8gY3JlYXRlX25hbWVfdGFncy4KCShjcmVhdGVfbmFtZV90YWdzKTogTmV3IGZ1bmN0aW9uLgoJKGNvbXB1dGVfZmxvd19zZW5zaXRpdmVfYWxpYXNpbmcpOiBDYWxsIGl0LgoJKHNldHVwX3BvaW50ZXJzX2FuZF9hZGRyZXNzYWJsZXMpOiBNYXJrIHR5cGUgdGFncyBmb3IgcmVuYW1pbmcKCWhlcmUgaW5zdGVhZCBvZiAuLi4KCShjcmVhdGVfbWVtb3J5X3RhZyk6IC4uLiBoZXJlLgoJKG1lcmdlX3BvaW50ZWRfdG9faW5mbyk6IERvIG5vdCBtZXJnZSBQVF9NQUxMT0MgYXR0cmlidXRlcy4KCShkdW1wX3BvaW50c190b19pbmZvX2Zvcik6IERlY2xhcmUgZXh0ZXJuLgoJKGRlYnVnX3BvaW50c190b19pbmZvX2Zvcik6IE5ldyBmdW5jdGlvbi4KCjIwMDQtMDctMDkgIFBhb2xvIEJvbnppbmkgIDxib256aW5pQGdudS5vcmc+CgoJKiBjb25maWcvYXJjL2FyYy5tZDogU3dpdGNoIHRvIERGQS1iYXNlZCBzY2hlZHVsZXIgZGVzY3JpcHRpb24uCgkqIGNvbmZpZy9hcmMvYXJjLmM6IFN3aXRjaCB0byBERkEtYmFzZWQgc2NoZWR1bGVyIGRlc2NyaXB0aW9uLgoKMjAwNC0wNy0wOSAgUmljaGFyZCBFYXJuc2hhdyAgPHJlYXJuc2hhQGFybS5jb20+CgoJKiBhcm0vdW5rbm93bi1lbGYuaCAoVEFSR0VUX0RFRkFVTFQpOiBEb24ndCByZXF1aXJlIGFuIEFQQ1MgZnJhbWUKCXBvaW50ZXIuCgoyMDA0LTA3LTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3h0ZW5zYS94dGVuc2EtcHJvdG9zLmggKHh0ZW5zYV92YV9hcmcpOiBSZW1vdmUuCgkqIGNvbmZpZy94dGVuc2EveHRlbnNhLmMgKFRBUkdFVF9HSU1QTElGWV9WQV9BUkdfRVhQUik6IE5ldy4KCSh4dGVuc2FfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZXdyaXRlIGZyb20geHRlbnNhX3ZhX2FyZy4KCSogY29uZmlnL3h0ZW5zYS94dGVuc2EuaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoKCSogY29uZmlnL3Y4NTAvdjg1MC1wcm90b3MuaCAodjg1MF92YV9hcmcpOiBSZW1vdmUuCgkqIGNvbmZpZy92ODUwL3Y4NTAuYyAoVEFSR0VUX0dJTVBMSUZZX1ZBX0FSR19FWFBSKTogTmV3LgoJKHY4NTBfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZXdyaXRlIGZyb20gdjg1MF92YV9hcmcuCgkqIGNvbmZpZy92ODUwL3Y4NTAuaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoJKEZVTkNUSU9OX0FSR19QQVNTX0JZX1JFRkVSRU5DRSk6IEhhbmRsZSB2YXJpYWJsZSBzaXplIHR5cGVzLgoJKEZVTkNUSU9OX0FSR19DQUxMRUVfQ09QSUVTKTogVXNlIEZVTkNUSU9OX0FSR19QQVNTX0JZX1JFRkVSRU5DRS4KCjIwMDQtMDctMDkgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCVBSIHRhcmdldC8xMjEzMwoJKiBhcm0uYyAoYXJtX2xlZ2l0aW1hdGVfaW5kZXhfcCkgQWxsb3cgREZtb2RlIGZvciBzb2Z0LWZsb2F0CglhbmQgREltb2RlIHRvIHVzZSArLy00ayBvZmZzZXQuCgoyMDA0LTA3LTA5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL3N0b3JteTE2L3N0b3JteTE2LXByb3Rvcy5oICh4c3Rvcm15MTZfZXhwYW5kX2J1aWx0aW5fdmFfYXJnKToKCVJlbW92ZS4KCSogY29uZmlnL3N0b3JteTE2L3N0b3JteTE2LmMgKFRBUkdFVF9HSU1QTElGWV9WQV9BUkdfRVhQUik6IE5ldy4KCSh4c3Rvcm15MTZfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZXdyaXRlIGZyb20KCXhzdG9ybXkxNl9leHBhbmRfYnVpbHRpbl92YV9hcmcuCgkqIGNvbmZpZy9zdG9ybXkxNi9zdG9ybXkxNi5oIChFWFBBTkRfQlVJTFRJTl9WQV9BUkcpOiBSZW1vdmUuCgoJKiBjb25maWcvc3BhcmMvc3BhcmMtcHJvdG9zLmggKHNwYXJjX3ZhX2FyZyk6IFJlbW92ZS4KCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKHNwYXJjX2dpbXBsaWZ5X3ZhX2FyZyk6IE1hcmsgc3RhdGljLgoKCSogY29uZmlnL3NoL3NoLXByb3Rvcy5oIChzaF92YV9hcmcpOiBSZW1vdmUuCgkqIGNvbmZpZy9zaC9zaC5jIChUQVJHRVRfR0lNUExJRllfVkFfQVJHX0VYUFIpOiBOZXcuCgkoc2hfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZXdyaXRlIGZyb20gc2hfdmFfYXJnLgoJKiBjb25maWcvc2gvc2guaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoKCSogY29uZmlnL3BhL3BhLXByb3Rvcy5oIChocHBhX3ZhX2FyZyk6IFJlbW92ZS4KCSogY29uZmlnL3BhL3BhLmMgKFRBUkdFVF9HSU1QTElGWV9WQV9BUkdfRVhQUik6IE5ldy4KCShocHBhX2dpbXBsaWZ5X3ZhX2FyZ19leHByKTogUmV3cml0ZSBmcm9tIGhwcGFfdmFfYXJnLgoJKiBjb25maWcvcGEvcGEuaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoKCSogY29uZmlnL21uMTAzMDAvbW4xMDMwMC1wcm90b3MuaCAobW4xMDMwMF92YV9hcmcpOiBSZW1vdmUuCgkqIGNvbmZpZy9tbjEwMzAwL21uMTAzMDAuYyAoVEFSR0VUX0dJTVBMSUZZX1ZBX0FSR19FWFBSKTogTmV3LgoJKG1uMTAzMDBfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZXdyaXRlIGZyb20gbW4xMDMwMF92YV9hcmcuCgkqIGNvbmZpZy9tbjEwMzAwL21uMTAzMDAuaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoKMjAwNC0wNy0wOSAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5tZCAocmV0dXJuKTogUmV3cml0ZSBsZW5ndGggZm9ybXVsYS4KCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKG91dHB1dF9yZXR1cm4pOiBQYXNzIDEgYXMgNXRoCglhcmd1bWVudCB0byBmaW5hbF9zY2FuX2luc24gd2hlbiBpbiBhIGRlbGF5IHNsb3QuCgkob3V0cHV0X3NpYmNhbGwpOiBMaWtld2lzZS4KCjIwMDQtMDctMDkgIFJpY2hhcmQgRWFybnNoYXcgIDxyZWFybnNoYUBhcm0uY29tPgoKCSogYXJtLmMgKGFybV9jcHBfaW50ZXJ3b3JrKTogTmV3IHZhcmlhYmxlLgoJKGFybV9vdmVycmlkZV9vcHRpb25zKTogU2V0IGl0IGlmIFRBUkdFVF9JTlRFUldPUksgd2FzIG9uIHRoZSBjb21tYW5kCglsaW5lLgoJKiBhcm0uaCAoYXJtX2NwcF9pbnRlcndvcmspOiBEZWNsYXJlIGl0LgoJKFRBUkdFVF9DUFVfQ1BQX0JVSUxUSU5TKTogVXNlIGl0IHRvIGNvbnRyb2wgZGVmaW5pdGlvbiBvZgoJX19USFVNQl9JTlRFUldPUktfXyBpbiB0aGUgcHJlcHJvY2Vzc29yLgoKMjAwNC0wNy0wOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHZlYy5oIChWRUNfVF9hbGxvYyk6IEZpeCBNRU1fU1RBVF9ERUNMIHBhc3RvLgoKMjAwNC0wNy0wOSAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiB0YXJnZXQvMTY0MTYKCSogY29uZmlnL3NwYXJjL3NvbDItYmkuaCAoT1BUSU9OX0RFRkFVTFRfU1BFQ1MpOiBOZXcgbWFjcm8uCglPdmVycmlkZSBkZWZhdWx0IHNldHRpbmdzIHRvIGFjY291bnQgZm9yIC1tMzIgYW5kIC1tNjQuCgoyMDA0LTA3LTA4ICBSYW5kb2xwaCBDaHVuZyAgPHRhdXNxQGRlYmlhbi5vcmc+CgoJKiBwYTMyLWxpbnV4LmggKE1EX0ZBTExCQUNLX0ZSQU1FX1NUQVRFX0ZPUik6IERlZmluZS4KCjIwMDQtMDctMDkgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogYnVpbHRpbnMuYyAoZm9sZF9idWlsdGluX3N0cm5jcHkpOiBNYWtlIHN1cmUgbGVuIGlzIGEgY29uc3RhbnQKCWJlZm9yZSBjb21wYXJpbmcgaXQgYXMgc3VjaC4KCjIwMDQtMDctMDggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBidWlsdGlucy5jIChzdGRfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBIb2lzdCB2YWxpc3QgaW50byBhCgl0ZW1wb3JhcnkuICBVc2UgYml0IGFyaXRobWV0aWMgdG8gYWxpZ24uCgoyMDA0LTA3LTA4ICBKZXJyeSBRdWlubiAgPGpscXVpbm5Ab3B0b25saW5lLm5ldD4KCgkqIGFsaWFzLmMgKG5vbmxvY2FsX21lbnRpb25lZF9wLCBub25sb2NhbF9yZWZlcmVuY2VkX3AsCglub25sb2NhbF9zZXRfcCwgaW5pdF9hbGlhc19hbmFseXNpcyk6IFVzZSwgTEFCRUxfUCwgSlVNUF9QLCBDQUxMX1AsCglOT05KVU1QX0lOU05fUCwgSU5TTl9QLCBOT1RFX1AsIEJBUlJJRVJfUC4KCSogYmItcmVvcmRlci5jIChtYXJrX2JiX2Zvcl91bmxpa2VseV9leGVjdXRlZF9zZWN0aW9uLAoJYWRkX2xhYmVsc19hbmRfbWlzc2luZ19qdW1wcywgZmluZF9qdW1wX2Jsb2NrLAoJZml4X2Nyb3NzaW5nX3VuY29uZGl0aW9uYWxfYnJhbmNoZXMsIGFkZF9yZWdfY3Jvc3NpbmdfanVtcF9ub3Rlcyk6CglMaWtld2lzZS4KCSogYnQtbG9hZC5jIChidHJfcmVmZXJlbmNlZF9wLCBjb21wdXRlX2RlZnNfdXNlc19hbmRfZ2VuLAoJbGlua19idHJfdXNlcywgbW92ZV9idHJfZGVmKTogTGlrZXdpc2UuCgkqIGJ1aWx0aW5zLmMgKGV4cGFuZF9idWlsdGluX2xvbmdqbXAsIGV4cGFuZF9idWlsdGluX25vbmxvY2FsX2dvdG8sCglleHBhbmRfYnVpbHRpbl9leHBlY3RfanVtcCk6IExpa2V3aXNlLgoJKiBjYWxsZXItc2F2ZS5jIChzYXZlX2NhbGxfY2xvYmJlcmVkX3JlZ3MsIGluc2VydF9vbmVfaW5zbik6IExpa2V3aXNlLgoJKiBjYWxscy5jIChleHBhbmRfY2FsbCwgZW1pdF9saWJyYXJ5X2NhbGxfdmFsdWVfMSk6IExpa2V3aXNlLgoJKiBjZmdhbmFsLmMgKGZvcndhcmRlcl9ibG9ja19wKTogTGlrZXdpc2UuCgkqIGNmZ2J1aWxkLmMgKGluc2lkZV9iYXNpY19ibG9ja19wLCBjb3VudF9iYXNpY19ibG9ja3MsCgltYWtlX2xhYmVsX2VkZ2UsIHJ0bF9tYWtlX2VoX2VkZ2UsIG1ha2VfZWRnZXMsIGZpbmRfYmFzaWNfYmxvY2tzXzEsCglmaW5kX2JiX2JvdW5kYXJpZXMpOiBMaWtld2lzZS4KCSogY2ZnY2xlYW51cC5jICh0cnlfc2ltcGxpZnlfY29uZGp1bXAsIHRyeV9mb3J3YXJkX2VkZ2VzLAoJbWVyZ2VfYmxvY2tzX21vdmVfcHJlZGVjZXNzb3Jfbm9qdW1wcywKCW1lcmdlX2Jsb2Nrc19tb3ZlX3N1Y2Nlc3Nvcl9ub2p1bXBzLCBpbnNuc19tYXRjaF9wLAoJZmxvd19maW5kX2Nyb3NzX2p1bXAsIG91dGdvaW5nX2VkZ2VzX21hdGNoLCB0cnlfY3Jvc3NqdW1wX3RvX2VkZ2UsCgl0cnlfb3B0aW1pemVfY2ZnKTogTGlrZXdpc2UuCgkqIGNmZ2V4cGFuZC5jIChleHBhbmRfYmxvY2ssIGNvbnN0cnVjdF9leGl0X2Jsb2NrKTogTGlrZXdpc2UuCgkqIGNmZ2xheW91dC5jIChza2lwX2luc25zX2FmdGVyX2Jsb2NrLCBsYWJlbF9mb3JfYmIsCglyZWNvcmRfZWZmZWN0aXZlX2VuZHBvaW50cywgaW5zbl9sb2NhdG9yc19pbml0aWFsaXplLAoJZml4dXBfcmVvcmRlcl9jaGFpbiwgdXBkYXRlX3VubGlrZWx5X2V4ZWN1dGVkX25vdGVzKTogTGlrZXdpc2UuCgkqIGNmZ21haW5sb29wLmMgKGNyZWF0ZV9sb29wX25vdGVzKTogTGlrZXdpc2UuCgkqIGNmZ3J0bC5jIChkZWxldGVfaW5zbiwgZGVsZXRlX2luc25fY2hhaW4sCgljcmVhdGVfYmFzaWNfYmxvY2tfc3RydWN0dXJlLCBydGxfZGVsZXRlX2Jsb2NrLCBmcmVlX2JiX2Zvcl9pbnNuLAoJdXBkYXRlX2JiX2Zvcl9pbnNuLCBydGxfbWVyZ2VfYmxvY2tzLCBydGxfY2FuX21lcmdlX2Jsb2NrcywKCWJsb2NrX2xhYmVsLCB0cnlfcmVkaXJlY3RfYnlfcmVwbGFjaW5nX2p1bXAsIGxhc3RfbG9vcF9iZWdfbm90ZSwKCXJlZGlyZWN0X2JyYW5jaF9lZGdlLCBmb3JjZV9ub25mYWxsdGhydV9hbmRfcmVkaXJlY3QsCglydGxfdGlkeV9mYWxsdGhydV9lZGdlLCBiYWNrX2VkZ2Vfb2Zfc3ludGFjdGljX2xvb3BfcCwKCXJ0bF9zcGxpdF9lZGdlLCBjb21taXRfb25lX2VkZ2VfaW5zZXJ0aW9uLCBwcmludF9ydGxfd2l0aF9iYiwKCXVwZGF0ZV9icl9wcm9iX25vdGUsIHJ0bF92ZXJpZnlfZmxvd19pbmZvXzEsIHJ0bF92ZXJpZnlfZmxvd19pbmZvLAoJcHVyZ2VfZGVhZF9lZGdlcywgY2ZnX2xheW91dF9yZWRpcmVjdF9lZGdlX2FuZF9icmFuY2gsCgljZmdfbGF5b3V0X2RlbGV0ZV9ibG9jaywgY2ZnX2xheW91dF9jYW5fbWVyZ2VfYmxvY2tzX3AsCgljZmdfbGF5b3V0X21lcmdlX2Jsb2NrcywgcnRsX2Jsb2NrX2VuZHNfd2l0aF9jYWxsX3AsCgluZWVkX2Zha2VfZWRnZV9wLCBydGxfZmxvd19jYWxsX2VkZ2VzX2FkZCk6IExpa2V3aXNlLgoJKiBjb21iaW5lLmMgKGNvbWJpbmVfaW5zdHJ1Y3Rpb25zLCBjYW5fY29tYmluZV9wLCB0cnlfY29tYmluZSwKCWZpbmRfc3BsaXRfcG9pbnQsIHJlY29yZF9kZWFkX2FuZF9zZXRfcmVncywgcmVnX2RlYWRfYXRfcCwKCWRpc3RyaWJ1dGVfbm90ZXMsIGRpc3RyaWJ1dGVfbGlua3MsIGluc25fY3VpZCk6IExpa2V3aXNlLgoJKiBjc2UuYyAoZm9sZF9ydHgsIGNzZV9pbnNuLCBjc2VfYXJvdW5kX2xvb3AsCglpbnZhbGlkYXRlX3NraXBwZWRfYmxvY2ssIGNzZV9zZXRfYXJvdW5kX2xvb3AsCgljc2VfZW5kX29mX2Jhc2ljX2Jsb2NrLCBjc2VfbWFpbiwgY3NlX2Jhc2ljX2Jsb2NrLAoJY3NlX2NvbmRpdGlvbl9jb2RlX3JlZyk6IExpa2V3aXNlLgoJKiBjc2VsaWIuYyAoY3NlbGliX3Byb2Nlc3NfaW5zbik6IExpa2V3aXNlLgoJKiBkZGcuYyAoY3JlYXRlX2RkZyk6IExpa2V3aXNlLgoJKiBkZi5jIChkZl9pbnNuX3JlZnNfcmVjb3JkLCBkZl9iYl9yZF9sb2NhbF9jb21wdXRlLCBkZl9pbnNuc19tb2RpZnkpOgoJTGlrZXdpc2UuCgkqIGR3YXJmMm91dC5jIChkd2FyZjJvdXRfc3RhY2tfYWRqdXN0LCBkd2FyZjJvdXRfZnJhbWVfZGVidWcsCglnZW5fbGFiZWxfZGllLCBkd2FyZjJvdXRfdmFyX2xvY2F0aW9uKTogTGlrZXdpc2UuCgkqIGVtaXQtcnRsLmMgKGdldF9maXJzdF9ub25ub3RlX2luc24sIGdldF9sYXN0X25vbm5vdGVfaW5zbiwKCW5leHRfaW5zbiwgcHJldmlvdXNfaW5zbiwgbmV4dF9ub25ub3RlX2luc24sIHByZXZfbm9ubm90ZV9pbnNuLAoJbGFzdF9jYWxsX2luc24sIGFjdGl2ZV9pbnNuX3AsIG5leHRfbGFiZWwsIHByZXZfbGFiZWwsCglsaW5rX2NjMF9pbnNucywgbmV4dF9jYzBfdXNlciwgdHJ5X3NwbGl0LCBhZGRfaW5zbl9hZnRlciwKCWFkZF9pbnNuX2JlZm9yZSwgcmVtb3ZlX2luc24sIGFkZF9mdW5jdGlvbl91c2FnZV90bywKCXJlb3JkZXJfaW5zbnMsIGZpbmRfbGluZV9ub3RlLCByZW1vdmVfdW5uZWNlc3Nhcnlfbm90ZXMsCgllbWl0X2luc25fYWZ0ZXJfMSwgY2xhc3NpZnlfaW5zbik6IExpa2V3aXNlLgoJKiBleGNlcHQuYyAoY29udmVydF9mcm9tX2VoX3JlZ2lvbl9yYW5nZXNfMSwgZW1pdF90b19uZXdfYmJfYmVmb3JlLAoJY29ubmVjdF9wb3N0X2xhbmRpbmdfcGFkcywgc2psal9tYXJrX2NhbGxfc2l0ZXMsCglzamxqX2VtaXRfZnVuY3Rpb25fZW50ZXIsIHNqbGpfZW1pdF9mdW5jdGlvbl9leGl0LCByZWFjaGFibGVfaGFuZGxlcnMsCgljYW5fdGhyb3dfaW50ZXJuYWwsIGNhbl90aHJvd19leHRlcm5hbCwgc2V0X25vdGhyb3dfZnVuY3Rpb25fZmxhZ3MsCgljb252ZXJ0X3RvX2VoX3JlZ2lvbl9yYW5nZXMpOiBMaWtld2lzZS4KCSogZXhwbG93LmMgKG9wdGltaXplX3NhdmVfYXJlYV9hbGxvY2EpOiBMaWtld2lzZS4KCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsKTogTGlrZXdpc2UuCgkqIGZpbmFsLmMgKGluc25fY3VycmVudF9yZWZlcmVuY2VfYWRkcmVzcywgY29tcHV0ZV9hbGlnbm1lbnRzLAoJc2hvcnRlbl9icmFuY2hlcywgZmluYWwsIHNjYW5fYWhlYWRfZm9yX3VubGlrZWx5X2V4ZWN1dGVkX25vdGUsCglmaW5hbF9zY2FuX2luc24sIG91dHB1dF9hc21fbGFiZWwsIGxlYWZfZnVuY3Rpb25fcCk6IExpa2V3aXNlLgoJKiBmbG93LmMgKGZpcnN0X2luc25fYWZ0ZXJfYmFzaWNfYmxvY2tfbm90ZSwgZGVsZXRlX2RlYWRfanVtcHRhYmxlcywKCXByb3BhZ2F0ZV9ibG9ja19kZWxldGVfaW5zbiwgcHJvcGFnYXRlX29uZV9pbnNuLAoJaW5pdF9wcm9wYWdhdGVfYmxvY2tfaW5mbywgcHJvcGFnYXRlX2Jsb2NrLCBsaWJjYWxsX2RlYWRfcCwKCW1hcmtfc2V0XzEsIGF0dGVtcHRfYXV0b19pbmMsIGZpbmRfYXV0b19pbmMsIHRyeV9wcmVfaW5jcmVtZW50KToKCUxpa2V3aXNlLgoJKiBmdW5jdGlvbi5jIChpbnN0YW50aWF0ZV92aXJ0dWFsX3JlZ3MsCXJlb3JkZXJfYmxvY2tzXzEsCglleHBhbmRfZnVuY3Rpb25fc3RhcnQsIGV4cGFuZF9mdW5jdGlvbl9lbmQsIGNvbnRhaW5zLAoJdGhyZWFkX3Byb2xvZ3VlX2FuZF9lcGlsb2d1ZV9pbnNucywKCXJlcG9zaXRpb25fcHJvbG9ndWVfYW5kX2VwaWxvZ3VlX25vdGVzKTogTGlrZXdpc2UuCgkqIGdjc2UuYyAoY29uc3Rwcm9wX3JlZ2lzdGVyLCBieXBhc3NfY29uZGl0aW9uYWxfanVtcHMsCglpbnNlcnRfaW5zbl9lbmRfYmIsIGdjc2VfYWZ0ZXJfcmVsb2FkKTogTGlrZXdpc2UuCgkqIGdlbmVtaXQuYyAoZ2VuX2V4cGFuZCwgZ2VuX3NwbGl0KTogTGlrZXdpc2UuCgkqIGdlbnBlZXAuYyAoZ2VuX3BlZXBob2xlLCBtYWluKTogTGlrZXdpc2UuCgkqIGdsb2JhbC5jIChidWlsZF9pbnNuX2NoYWluKTogTGlrZXdpc2UuCgkqIGdyYXBoLmMgKG5vZGVfZGF0YSwgcHJpbnRfcnRsX2dyYXBoX3dpdGhfYmIpOiBMaWtld2lzZS4KCSogaGFpZmEtc2NoZWQuYyAodW5saW5rX290aGVyX25vdGVzLCB1bmxpbmtfbGluZV9ub3RlcywKCWdldF9ibG9ja19oZWFkX3RhaWwsIG5vX3JlYWxfaW5zbnNfcCwgcm1fbGluZV9ub3Rlcywgc2F2ZV9saW5lX25vdGVzLAoJcmVzdG9yZV9saW5lX25vdGVzLCBybV9yZWR1bmRhbnRfbGluZV9ub3Rlcywgcm1fb3RoZXJfbm90ZXMsCglva19mb3JfZWFybHlfcXVldWVfcmVtb3ZhbCwgc2V0X3ByaW9yaXRpZXMsIHNjaGVkX2luaXQpOiBMaWtld2lzZS4KCSogaWZjdnQuYyAoY291bnRfYmJfaW5zbnMsIGZpcnN0X2FjdGl2ZV9pbnNuLCBsYXN0X2FjdGl2ZV9pbnNuLAoJY29uZF9leGVjX3Byb2Nlc3NfaW5zbnMsIGVuZF9pZmN2dF9zZXF1ZW5jZSwgbm9jZV9wcm9jZXNzX2lmX2Jsb2NrLAoJbWVyZ2VfaWZfYmxvY2ssIGJsb2NrX2p1bXBzX2FuZF9mYWxsdGhydV9wLCBmaW5kX2lmX2Jsb2NrLAoJZGVhZF9vcl9wcmVkaWNhYmxlKTogTGlrZXdpc2UuCgkqIGludGVncmF0ZS5jICh0cnlfY29uc3RhbnRzKTogTGlrZXdpc2UuCgkqIGp1bXAuYyAocmVidWlsZF9qdW1wX2xhYmVscywgY2xlYW51cF9iYXJyaWVycywKCXB1cmdlX2xpbmVfbnVtYmVyX25vdGVzLCBpbml0X2xhYmVsX2luZm8sIG1hcmtfYWxsX2xhYmVscywKCXNxdWVlemVfbm90ZXMsIGdldF9sYWJlbF9iZWZvcmUsIGdldF9sYWJlbF9hZnRlciwKCXJldmVyc2VkX2NvbXBhcmlzb25fY29kZV9wYXJ0cywgc2ltcGxlanVtcF9wLCBwY19zZXQsCglyZXR1cm5qdW1wX3AsIG9ubHlqdW1wX3AsIGZvbGxvd19qdW1wcywgbWFya19qdW1wX2xhYmVsLAoJZGVsZXRlX2JhcnJpZXIsIGRlbGV0ZV9wcmlvcl9jb21wdXRhdGlvbiwgZGVsZXRlX2NvbXB1dGF0aW9uLAoJZGVsZXRlX3JlbGF0ZWRfaW5zbnMsIGRlbGV0ZV9mb3JfcGVlcGhvbGUsIHJlZGlyZWN0X2p1bXApOgoJTGlrZXdpc2UuCgkqIGxjbS5jIChvcHRpbWl6ZV9tb2RlX3N3aXRjaGluZyk6IExpa2V3aXNlLgoJKiBsb2NhbC1hbGxvYy5jICh2YWxpZGF0ZV9lcXVpdl9tZW0sIHVwZGF0ZV9lcXVpdl9yZWdzLCBibG9ja19hbGxvYyk6CglMaWtld2lzZS4KCSogbG9vcC1kb2xvb3AuYyAoZG9sb29wX3ZhbGlkX3AsIGRvbG9vcF9vcHRpbWl6ZSk6IExpa2V3aXNlLgoJKiBsb29wLWludmFyaWFudC5jIChmaW5kX2V4aXRzLCBmaW5kX2ludmFyaWFudHNfYmIpOiBMaWtld2lzZS4KCSogbG9vcC1pdi5jIChzaW1wbGlmeV91c2luZ19hc3NpZ25tZW50KTogTGlrZXdpc2UuCgkqIGxvb3AuYyAoY29tcHV0ZV9sdWlkcywgbG9vcF9vcHRpbWl6ZSwgc2Nhbl9sb29wLCBsaWJjYWxsX290aGVyX3JlZywKCWxpYmNhbGxfYmVuZWZpdCwgc2tpcF9jb25zZWNfaW5zbnMsIG1vdmVfbW92YWJsZXMsIHByZXNjYW5fbG9vcCwKCWZpbmRfYW5kX3ZlcmlmeV9sb29wcywgbGFiZWxzX2luX3JhbmdlX3AsIGZvcl9lYWNoX2luc25faW5fbG9vcCwKCWxvb3BfYml2c19pbml0X2ZpbmQsIHN0cmVuZ3RoX3JlZHVjZSwgY2hlY2tfaW5zbl9mb3JfYml2cywKCWNoZWNrX2luc25fZm9yX2dpdnMsIGNoZWNrX2ZpbmFsX3ZhbHVlLCB1cGRhdGVfZ2l2X2Rlcml2ZSwKCWJhc2ljX2luZHVjdGlvbl92YXIsIHByb2R1Y3RfY2hlYXBfcCwgY2hlY2tfZGJyYV9sb29wLAoJbG9vcF9pbnNuX2ZpcnN0X3AsIGxhc3RfdXNlX3RoaXNfYmFzaWNfYmxvY2ssCgljYW5vbmljYWxpemVfY29uZGl0aW9uLCBnZXRfY29uZGl0aW9uLCBsb29wX3JlZ3Nfc2NhbiwgbG9hZF9tZW1zLAoJdHJ5X2NvcHlfcHJvcCwgTE9PUF9CTE9DS19OVU0sIGxvb3BfZHVtcF9hdXgpOiBMaWtld2lzZS4KCSogbW9kdWxvLXNjaGVkLmMgKGRvbG9vcF9yZWdpc3Rlcl9nZXQsIGZpbmRfbGluZV9ub3RlLCBzbXNfc2NoZWR1bGUsCglzbXNfc2NoZWR1bGVfYnlfb3JkZXIpOiBMaWtld2lzZS4KCSogb3B0YWJzLmMgKGVtaXRfbm9fY29uZmxpY3RfYmxvY2ssIGVtaXRfbGliY2FsbF9ibG9jayk6IExpa2V3aXNlLgoJKiBwb3N0cmVsb2FkLmMgKHJlbG9hZF9jc2Vfc2ltcGxpZnlfb3BlcmFuZHMsIHJlbG9hZF9jb21iaW5lLAoJcmVsb2FkX2NzZV9tb3ZlMmFkZCk6IExpa2V3aXNlLgoJKiBwcmVkaWN0LmMgKGNhbl9wcmVkaWN0X2luc25fcCwgZXN0aW1hdGVfcHJvYmFiaWxpdHksCglleHBlY3RlZF92YWx1ZV90b19icl9wcm9iLCBwcm9jZXNzX25vdGVfcHJlZGljdGlvbnMpOiBMaWtld2lzZS4KCSogcHJpbnQtcnRsLmMgKHByaW50X3J0eCwgcHJpbnRfcnRsLCBwcmludF9ydGxfc2luZ2xlKTogTGlrZXdpc2UuCgkqIHByb2ZpbGUuYyAoYnJhbmNoX3Byb2IpOiBMaWtld2lzZS4KCSogcmEtYnVpbGQuYyAobGl2ZV9vdXRfMSwgbGl2ZXRocm91Z2hfY29uZmxpY3RzX2JiLAoJZGV0ZWN0X3dlYnNfc2V0X2luX2NvbmRfanVtcCk6IExpa2V3aXNlLgoJKiByYS1kZWJ1Zy5jIChyYV9wcmludF9ydHhfb2JqZWN0LCByYV9kZWJ1Z19pbnNucywKCXJhX3ByaW50X3J0bF93aXRoX2JiKTogTGlrZXdpc2UuCgkqIHJhLXJld3JpdGUuYyAoaW5zZXJ0X3N0b3JlcywgcmV3cml0ZV9wcm9ncmFtMik6IExpa2V3aXNlLgoJKiByZWNvZy5jIChuZXh0X2luc25fdGVzdHNfbm9faW5lcXVhbGl0eSwgZmluZF9zaW5nbGVfdXNlLAoJc3BsaXRfYWxsX2luc25zLCBwZWVwaG9sZTJfb3B0aW1pemUsIGlmX3Rlc3RfYnlwYXNzX3ApOiBMaWtld2lzZS4KCSogcmVnLXN0YWNrLmMgKG5leHRfZmxhZ3NfdXNlciwgcmVjb3JkX2xhYmVsX3JlZmVyZW5jZXMsCgllbWl0X3N3YXBfaW5zbiwgc3dhcF9ydHhfY29uZGl0aW9uLCBzdWJzdF9zdGFja19yZWdzLAoJY29tcGVuc2F0ZV9lZGdlLCBjb252ZXJ0X3JlZ3NfMSk6IExpa2V3aXNlLgoJKiByZWdjbGFzcy5jIChzY2FuX29uZV9pbnNuKTogTGlrZXdpc2UuCgkqIHJlZ21vdmUuYyAob3B0aW1pemVfcmVnX2NvcHlfMSwgb3B0aW1pemVfcmVnX2NvcHlfMiwgZml4dXBfbWF0Y2hfMiwKCXJlZ21vdmVfb3B0aW1pemUsIGZpeHVwX21hdGNoXzEsIHNpbmdsZV9zZXRfZm9yX2NzYSwKCWNvbWJpbmVfc3RhY2tfYWRqdXN0bWVudHNfZm9yX2Jsb2NrKTogTGlrZXdpc2UuCgkqIHJlZ3JlbmFtZS5jIChidWlsZF9kZWZfdXNlLCBjb3B5cHJvcF9oYXJkcmVnX2ZvcndhcmRfMSk6IExpa2V3aXNlLgoJKiByZWxvYWQuYyAoZmluZF9yZWxvYWRzLCBmaW5kX3JlbG9hZHNfYWRkcmVzc18xLCBzdWJzdF9yZWxvYWRzLAoJZmluZF9lcXVpdl9yZWcpOiBMaWtld2lzZS4KCSogcmVsb2FkMS5jIChyZWxvYWQsIGNhbGN1bGF0ZV9uZWVkc19hbGxfaW5zbnMsIHNldF9sYWJlbF9vZmZzZXRzLAoJcmVsb2FkX2FzX25lZWRlZCwgZW1pdF9pbnB1dF9yZWxvYWRfaW5zbnMsIGRvX291dHB1dF9yZWxvYWQsCglkZWxldGVfb3V0cHV0X3JlbG9hZCwgZGVsZXRlX2FkZHJlc3NfcmVsb2Fkc18xLCBmaXh1cF9hYm5vcm1hbF9lZGdlcyk6CglMaWtld2lzZS4KCSogcmVvcmcuYyAoZmluZF9lbmRfbGFiZWwsIGVtaXRfZGVsYXlfc2VxdWVuY2UsCglkZWxldGVfZnJvbV9kZWxheV9zbG90LCBkZWxldGVfc2NoZWR1bGVkX2p1bXAsIG9wdGltaXplX3NraXAsCglnZXRfanVtcF9mbGFncywgcmFyZV9kZXN0aW5hdGlvbiwgbW9zdGx5X3RydWVfanVtcCwKCXRyeV9tZXJnZV9kZWxheV9pbnNucywgcmVkdW5kYW50X2luc24sIG93bl90aHJlYWRfcCwKCWZpbGxfc2ltcGxlX2RlbGF5X3Nsb3RzLCBmaWxsX3Nsb3RzX2Zyb21fdGhyZWFkLAoJZmlsbF9lYWdlcl9kZWxheV9zbG90cywgcmVsYXhfZGVsYXlfc2xvdHMsIG1ha2VfcmV0dXJuX2luc25zLAoJZGJyX3NjaGVkdWxlKTogTGlrZXdpc2UuCgkqIHJlc291cmNlLmMgKGZpbmRfYmFzaWNfYmxvY2ssIG5leHRfaW5zbl9ub19hbm51bCwKCWZpbmRfZGVhZF9vcl9zZXRfcmVnaXN0ZXJzLCBtYXJrX3RhcmdldF9saXZlX3JlZ3MpOiBMaWtld2lzZS4KCSogcnRsLmggKFJUWF9QUkVWKTogTGlrZXdpc2UuCgkqIHJ0bGFuYWwuYyAoZ2xvYmFsX3JlZ19tZW50aW9uZWRfcCwgbm9fbGFiZWxzX2JldHdlZW5fcCwKCW5vX2p1bXBzX2JldHdlZW5fcCwgcmVnX3VzZWRfYmV0d2Vlbl9wLCByZWdfcmVmZXJlbmNlZF9iZXR3ZWVuX3AsCglyZWdfc2V0X3AsIGZpbmRfbGFzdF92YWx1ZSwgZGVhZF9vcl9zZXRfcmVnbm9fcCwgZmluZF9yZWdfZnVzYWdlLAoJZmluZF9yZWdub19mdXNhZ2UsIHB1cmVfY2FsbF9wLCByZXBsYWNlX2xhYmVsLCBydHhfcmVmZXJlbmNlZF9wXzEsCgl0YWJsZWp1bXBfcCwgY29tcHV0ZWRfanVtcF9wLCBpbnNuc19zYWZlX3RvX21vdmVfcCwKCWZpbmRfZmlyc3RfcGFyYW1ldGVyX2xvYWQsIGNhbl9ob2lzdF9pbnNuX3ApOiBMaWtld2lzZS4KCSogc2NoZWQtZGVwcy5jIChnZXRfY29uZGl0aW9uLCBhZGRfZGVwZW5kZW5jZSwgc2NoZWRfYW5hbHl6ZV8yLAoJc2NoZWRfYW5hbHl6ZV9pbnNuLCBzY2hlZF9hbmFseXplLCBhZGRfZm9yd2FyZF9kZXBlbmRlbmNlKTogTGlrZXdpc2UuCgkqIHNjaGVkLWViYi5jIChmaXhfYmFzaWNfYmxvY2tfYm91bmRhcmllcywgYWRkX2RlcHNfZm9yX3Jpc2t5X2luc25zLAoJc2NoZWR1bGVfZWJicyk6IExpa2V3aXNlLgoJKiBzY2hlZC1yZ24uYyAoaXNfY2ZnX25vbnJlZ3VsYXIsIGZpbmRfY29uZGl0aW9uYWxfcHJvdGVjdGlvbiwKCWlzX2NvbmRpdGlvbmFsbHlfcHJvdGVjdGVkLCBjYW5fc2NoZWR1bGVfcmVhZHlfcCwKCWFkZF9icmFuY2hfZGVwZW5kZW5jZXMsIGRlYnVnX2RlcGVuZGVuY2llcyk6IExpa2V3aXNlLgoJKiBzdG10LmMgKGVtaXRfbm9wLCBleHBhbmRfc3RhcnRfY2FzZSwgZW1pdF9qdW1wX2lmX3JlYWNoYWJsZSk6CglMaWtld2lzZS4KCSogdW5yb2xsLmMgKHVucm9sbF9sb29wLCBjb3B5X2xvb3BfYm9keSwgYmFja19icmFuY2hfaW5fcmFuZ2VfcCwKCXJlZ19kZWFkX2FmdGVyX2xvb3AsIGxvb3BfZmluZF9lcXVpdl92YWx1ZSwgbG9vcF9pdGVyYXRpb25zLAoJc2V0X2RvbWluYXRlc191c2UsIHVqdW1wX3RvX2xvb3BfY29udCk6IExpa2V3aXNlLgoJKiB2YXItdHJhY2tpbmcuYyAocHJvbG9ndWVfc3RhY2tfYWRqdXN0LCB2dF9pbml0aWFsaXplKTogTGlrZXdpc2UuCgkqIHZhcmFzbS5jIChvdXRwdXRfY29uc3RhbnRfcG9vbF8xKTogTGlrZXdpc2UuCgoyMDA0LTA3LTA4ICBaZGVuZWsgRHZvcmFrICA8cmFrZHZlckBhdHJleS5rYXJsaW4ubWZmLmN1bmkuY3o+CgoJKiB0cmVlLXNjYWxhci1ldm9sdXRpb24uYzogTmV3IGZpbGUuCgkqIHRyZWUtc2NhbGFyLWV2b2x1dGlvbi5oOiBOZXcgZmlsZS4KCSogdHJlZS1zc2EtbG9vcC1uaXRlci5jOiBOZXcgZmlsZS4KCSogTWFrZWZpbGUuaW4gKFNDRVZfSCk6IE5ldy4KCSh0cmVlLXNjYWxhci1ldm9sdXRpb24ubywgdHJlZS1zc2EtbG9vcC1uaXRlci5vKTogQWRkIG5ldyBmaWxlcy4KCSogY2ZnbG9vcC5oIChzdHJ1Y3QgbG9vcCk6IEFkZCBib3VuZHMgZmllbGQuCgkqIHRyZWUtZmxvdy5oIChzdHJ1Y3QgdHJlZV9uaXRlcl9kZXNjKTogTmV3IHR5cGUuCgkobnVtYmVyX29mX2l0ZXJhdGlvbnNfY29uZCwgbnVtYmVyX29mX2l0ZXJhdGlvbnNfZXhpdCwKCWxvb3Bfbml0ZXJfYnlfZXZhbCwgZmluZF9sb29wX25pdGVyX2J5X2V2YWwsCgllc3RpbWF0ZV9udW1iZXJzX29mX2l0ZXJhdGlvbnMsIGNhbl9jb3VudF9pdl9pbl93aWRlcl90eXBlLAoJZnJlZV9udW1iZXJzX29mX2l0ZXJhdGlvbnNfZXN0aW1hdGVzKTogRGVjbGFyZS4KCSogdHJlZS5oIChsb3dlcl9ib3VuZF9pbl90eXBlLCB1cHBlcl9ib3VuZF9pbl90eXBlKTogRGVjbGFyZS4KCSogcGFyYW1zLmRlZiAoUEFSQU1fTUFYX0lURVJBVElPTlNfVE9fVFJBQ0spOiBOZXcgcGFyYW1ldGVyLgoJKiBkb2MvaW52b2tlLnRleGkgKG1heC1pdGVyYXRpb25zLXRvLXRyYWNrKTogRG9jdW1lbnQuCgoyMDA0LTA3LTA4ICBLYXogS29qaW1hICA8a2tvamltYUBnY2MuZ251Lm9yZz4KCgkqIGNvbmZpZy9zaC9zaC5jIChzaF92YV9hcmcpOiBJbml0aW5hbGl6ZSBsYWJfb3Zlci4KCSogY29uZmlnL3NoL3NoLmggKENPTlNUX09LX0ZPUl9KMTYpOiBVc2UgcGFyZW50aGVzZXMuCgkoTU9ERV9BRlRFUik6IEFkZCBjYXN0IGFwcHJvcHJpYXRlbHkuCgkqIGNvbmZpZy9zaC9zaC5tZCAobW92ZGkgc3BsaXR0ZXIpOiBMaWtld2lzZS4KCShjYXNlc2lfd29ya2VyXzIpOiBBZGQgY29uc3QgcXVhbGlmaWVyIGFwcHJvcHJpYXRlbHkuCgkoZWhfcmV0dXJuKTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KCShpbnN2KTogSW5pdGlhbGl6ZSB2OwoKMjAwNC0wNy0wOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9tbWl4L21taXgtcHJvdG9zLmggKG1taXhfZXhwYW5kX2J1aWx0aW5fdmFfYXJnKTogUmVtb3ZlLgoJKiBjb25maWcvbW1peC9tbWl4LmMgKFRBUkdFVF9HSU1QTElGWV9WQV9BUkdfRVhQUik6IE5ldy4KCShtbWl4X2dpbXBsaWZ5X3ZhX2FyZ19leHByKTogUmV3cml0ZSBmcm9tIG1taXhfZXhwYW5kX2J1aWx0aW5fdmFfYXJnLgoJKiBjb25maWcvbW1peC9tbWl4LmggKEVYUEFORF9CVUlMVElOX1ZBX0FSRyk6IFJlbW92ZS4KCShGUkFNRV9QT0lOVEVSX1JFUVVJUkVEKTogVXNlIGN1cnJlbnRfZnVuY3Rpb25faGFzX25vbmxvY2FsX2xhYmVsLgoKCSogY29uZmlnL20zMnIvbTMyci1wcm90b3MuaCAobTMycl92YV9hcmcpOiBSZW1vdmUuCgkqIGNvbmZpZy9tMzJyL20zMnIuYyAoVEFSR0VUX0dJTVBMSUZZX1ZBX0FSR19FWFBSKTogTmV3LgoJKG0zMnJfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZXdyaXRlIGZyb20gbTMycl92YV9hcmcuCgkqIGNvbmZpZy9tMzJyL20zMnIuaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoKCSogY29uZmlnL2lxMjAwMC9pcTIwMDAtcHJvdG9zLmggKGlxMjAwMF92YV9hcmcpOiBSZW1vdmUuCgkqIGNvbmZpZy9pcTIwMDAvaXEyMDAwLmMgKFRBUkdFVF9HSU1QTElGWV9WQV9BUkdfRVhQUik6IE5ldy4KCShpcTIwMDBfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZXdyaXRlIGZyb20gaXEyMDAwX3ZhX2FyZy4KCSogY29uZmlnL2lxMjAwMC9pcTIwMDAuaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoKCSogY29uZmlnL2Zydi9mcnYtcHJvdG9zLmggKGZydl9leHBhbmRfYnVpbHRpbl92YV9hcmcpOiBSZW1vdmUuCgkqIGNvbmZpZy9mcnYvZnJ2LmMgKFRBUkdFVF9HSU1QTElGWV9WQV9BUkdfRVhQUik6IE5ldy4KCShmcnZfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZXdyaXRlIGZyb20gZnJ2X2V4cGFuZF9idWlsdGluX3ZhX2FyZy4KCSogY29uZmlnL2Zydi9mcnYuaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoKCSogY29uZmlnL2k4NjAvaTg2MC1wcm90b3MuaCAoaTg2MF92YV9hcmcpOiBSZW1vdmUuCgkqIGNvbmZpZy9pODYwL2k4NjAuYyAoVEFSR0VUX0dJTVBMSUZZX1ZBX0FSR19FWFBSKTogTmV3LgoJKGk4NjBfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZXdyaXRlIGZyb20gaTg2MF92YV9hcmcuCgkqIGNvbmZpZy9pODYwL2k4NjAuaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoKMjAwNC0wNS0zMSAgQWFyb24gVy4gTGFGcmFtYm9pc2UgPGFhcm9ucmFvbGV0ZTM2QGFhcm9ud2wuY29tPgoKCSogc3lzdGVtLmg6IFByb3RvdHlwZSBnZXRwYWdlc2l6ZSBpZiBtaXNzaW5nLgoJKiBjb25maWd1cmUuYWM6IEFkZCBnZXRwYWdlc2l6ZSB0byBnY2NfQUNfQ0hFQ0tfREVDTFMuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoKMjAwNC0wNy0wOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9mcjMwL2ZyMzAtcHJvdG9zLmggKGZyMzBfdmFfYXJnKTogUmVtb3ZlLgoJKiBjb25maWcvZnIzMC9mcjMwLmMgKFRBUkdFVF9HSU1QTElGWV9WQV9BUkdfRVhQUik6IE5ldy4KCShmcjMwX2dpbXBsaWZ5X3ZhX2FyZ19leHByKTogTmV3LgoJKGZyMzBfcGFzc19ieV9yZWZlcmVuY2UsIGZyMzBfcGFzc19ieV92YWx1ZSwgZnIzMF92YV9hcmcpOiBSZW1vdmUuCgkqIGNvbmZpZy9mcjMwL2ZyMzAuaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoKMjAwNC0wNy0wOCAgVmxhZGltaXIgTWFrYXJvdiAgPHZtYWthcm92QHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE2NDE0CgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoaWE2NF9kZmFfbmV3X2N5Y2xlKTogRml4IHR5cG8gaW4gY29tcGFyaXNvbgoJb2YgYXNtX25vcGVyYW5kcyByZXN1bHQuCgoyMDA0LTA3LTA4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2NyaXMvY3Jpcy1wcm90b3MuaCAoY3Jpc19leHBhbmRfYnVpbHRpbl92YV9hcmcpOiBSZW1vdmUuCgkqIGNvbmZpZy9jcmlzL2NyaXMuYyAoVEFSR0VUX0dJTVBMSUZZX1ZBX0FSR19FWFBSKTogTmV3LgoJKGNyaXNfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZXdyaXRlIGZyb20gY3Jpc19leHBhbmRfYnVpbHRpbl92YV9hcmcuCgkqIGNvbmZpZy9jcmlzL2NyaXMuaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoKMjAwNC0wNy0wOCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGJ1aWx0aW5zLmMgKGluZF9naW1wbGlmeV92YV9hcmdfZXhwcik6IE5ldy4KCSogdHJlZS5oIChpbmRfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBEZWNsYXJlLgoJKiBjb25maWcvYXJjL2FyYy5jIChhcmNfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBVc2UgaXQuCgoyMDA0LTA3LTA4ICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBleHBtZWQuYyAoZXh0cmFjdF9iaXRfZmllbGQpOiBDb3JyZWN0IGNvbmRpdGlvbiB0byB1c2UgdmVjX2V4dHJhY3QKCXBhdHRlcm5zIGFsc28gb24gdmVjdG9yIGVsZW1lbnRzIG90aGVyIHRoYW4gdGhlIGZpcnN0IG9uZS4KCSogY29uZmlnL2kzODYvaTM4Ni5tZCAodmVjX2V4dHJhY3R2MmRmLCB2ZWNfZXh0cmFjdHY0c2YpOiBBZGQgbWlzc2luZwoJYnJlYWsgc3RhdGVtZW50cy4KCjIwMDQtMDctMDggIEdlb2ZmcmV5IEtlYXRpbmcgIDxnZW9mZmtAYXBwbGUuY29tPgoKCSogY29uZmlnL3JzNjAwMC9kYXJ3aW4tbGRvdWJsZS5jOiBDb3JyZWN0IHJlZmVyZW5jZQoJdG8gdGhlIExpbm5haW5tYWEgcGFwZXIuCgoyMDA0LTA3LTA4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2FyYy9hcmMtcHJvdG9zLmggKGFyY192YV9hcmcpOiBSZW1vdmUuCgkqIGNvbmZpZy9hcmMvYXJjLmMgKFRBUkdFVF9HSU1QTElGWV9WQV9BUkdfRVhQUik6IE5ldy4KCShhcmNfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZXdyaXRlIGZyb20gYXJjX3ZhX2FyZy4KCSogY29uZmlnL2FyYy9hcmMuaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoKCSogY29uZmlnL2M0eC9jNHgtcHJvdG9zLmggKGM0eF92YV9hcmcpOiBSZW1vdmUuCgkqIGNvbmZpZy9jNHgvYzR4LmMgKFRBUkdFVF9HSU1QTElGWV9WQV9BUkdfRVhQUik6IE5ldy4KCShjNHhfZ2ltcGxpZnlfdmFfYXJnX2V4cHIpOiBSZXdyaXRlIGZyb20gYzR4X3ZhX2FyZy4KCSogY29uZmlnL2M0eC9jNHguaCAoRVhQQU5EX0JVSUxUSU5fVkFfQVJHKTogUmVtb3ZlLgoKMjAwNC0wNy0wOCAgSm9obiBEYXZpZCBBbmdsaW4gIDxkYXZlLmFuZ2xpbkBucmMtY25yYy5nYy5jYT4KCgkqIHBhLm1kIChwcmVmZXRjaF8zMiwgcHJlZmV0Y2hfNjQpOiBTaW1wbGlmeSBjb25zdHJhaW50IGNoZWNrcy4KCjIwMDQtMDctMDggIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLWRlY2wuYyAoc3RhdGljX2N0b3JzLCBzdGF0aWNfZHRvcnMpOiBNYWtlIHN0YXRpYy4KCShwb3BfZmlsZV9zY29wZSk6IENhbGwgY19jb21tb25fd3JpdGVfcGNoIGFuZAoJY2dyYXBoX2ZpbmFsaXplX2NvbXBpbGF0aW9uX3VuaXQgaGVyZS4KCShidWlsZF9jZHRvcik6IE1vdmVkIGhlcmUgZnJvbSBjLW9iamMtY29tbW9uLmM7IHNpbXBsaWZ5LgoJKGNfd3JpdGVfZ2xvYmFsX2RlY2xhcmF0aW9uc18xKTogQ2xhcmlmeSBjb21tZW50LgoJKGNfd3JpdGVfZ2xvYmFsX2RlY2xhcmF0aW9ucyk6IENsb3NlIHRoZSBleHRlcm5hbCBzY29wZSBiZWZvcmUKCWRvaW5nIGFueXRoaW5nIGVsc2UuICBDYWxsIGJ1aWxkX2NkdG9yLCBjZ3JhcGhfb3B0aW1pemUsIGFuZAoJbXVkZmxhcF9maW5pc2hfZmlsZSBoZXJlLgoJKiBjLWxhbmcuYyAoZmluaXNoX2ZpbGUpOiBEb24ndCBjYWxsIGNfb2JqY19jb21tb25fZmluaXNoX2ZpbGUuCglDbGFyaWZ5IGNvbW1lbnQuCgkqIGMtb2JqYy1jb21tb24uYzogTm8gbmVlZCB0byBpbmNsdWRlIGNncmFwaC5oLgoJKGJ1aWxkX2NkdG9yKTogTW92ZWQgdG8gYy1kZWNsLmMuCgkoY19vYmpjX2NvbW1vbl9maW5pc2hfZmlsZSk6IERlbGV0ZS4KCSogYy10cmVlLmg6IFVwZGF0ZSB0byBtYXRjaC4KCSogb2JqYy9vYmpjLWFjdC5jIChmaW5pc2hfZmlsZSk6IERvbid0IGNhbGwgY19vYmpjX2NvbW1vbl9maW5pc2hfZmlsZS4KCShnZW5lcmF0ZV9zdGF0aWNfcmVmZXJlbmNlcyk6IFNldCBUUkVFX1VTRUQgYmVmb3JlIGNhbGxpbmcgZmluaXNoX2RlY2wuCglFbGltaW5hdGUgdW5uZWNlc3NhcnkgZHVtbXkgZGVjbGFyYXRpb24uICBDYWxsIHJlc3Rfb2ZfZGVjbF9jb21waWxhdGlvbgoJb24gdGhlIHN0YXRpY19pbnN0YW5jZXNfZGVjbC4KCjIwMDQtMDctMDggIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLWRlY2wuYyAocG9wX3Njb3BlKTogRG8gbm90IHNldCBERUNMX0NPTlRFWFQgb24gZmlsZS1zY29wZQoJZGVjbHMgd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSBpbnB1dCB0cmFuc2xhdGlvbiB1bml0LgoJKiBsYW5naG9va3MuYyAobGhkX3NldF9kZWNsX2Fzc2VtYmxlcl9uYW1lKTogUGFydGlhbGx5IHJldmVydAoJY2hhbmdlIG9mIDIwMDQtMDctMDU7IGRvIG5vdCB0cmVhdCBkZWNsYXJhdGlvbnMgd2l0aAoJREVDTF9DT05URVhUIGEgVFJBTlNMQVRJT05fVU5JVF9ERUNMIHNwZWNpYWxseS4KCSogb3B0cy5jIChjdXJfaW5fZm5hbWUpOiBEZWxldGUuCgkqIG9wdHMuaDogTGlrZXdpc2UuCgkqIHRyZWUuYzogUmV2ZXJ0IGNoYW5nZXMgb2YgMjAwNC0wNy0wNTsgbm8gc3BlY2lhbCB0cmVhdG1lbnQKCWZvciBUUkFOU0xBVElPTl9VTklUX0RFQ0xzLgoJKiBNYWtlZmlsZS5pbiAodHJlZS5vKTogVXBkYXRlIGRlcGVuZGVuY2llcy4KCjIwMDQtMDctMDggIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogYnVpbHRpbnMuYyAoZm9sZF9idWlsdGluX3N0cmNweSk6IE1lcmdlIGZ1bmN0aW9uYWxpdHkgZnJvbQoJc2ltcGxpZnlfYnVpbHRpbl9zdHJjcHkuICBBZGQgYWRkaXRpb25hbCBsZW4gYXJndW1lbnQuICBObyBsb25nZXIKCXN0YXRpYy4gIFJlbW92ZSBmdW5jdGlvbiBwcm90b3R5cGUuCgkoZm9sZF9idWlsdGluX3N0cm5jcHkpOiBMaWtld2lzZSBpbnRlZ3JhdGUgZnVuY3Rpb25hbGl0eSBmcm9tCglzaW1wbGlmeV9idWlsdGluX3N0cm5jcHkuICBBZGQgYWRkaXRpb25hbCBzbGVuIGFyZ3VtZW50LiAgTm8KCWxvbmdlciBzdGF0aWMuICBSZW1vdmUgZnVuY3Rpb24gcHJvdG90eXBlLgoJKHNpbXBsaWZ5X2J1aWx0aW5fc3RyY3ksIHNpbXBsaWZ5X2J1aWx0aW5fc3RybmNweSk6IERlbGV0ZS4KCShzaW1wbGlmeV9idWlsdGluX2ZwdXRzKTogUmVuYW1lIHRvIGZvbGRfYnVpbHRpbl9mcHV0cy4gIENoYW5nZQoJdHlwZXMgb2YgImlnbm9yZSIgYW5kICJ1bmxvY2tlZCIgcGFyYW1ldGVycyB0byBib29sLgoJKGZvbGRfYnVpbHRpbl8xKTogIEFkZCBhZGRpdGlvbmFsIGlnbm9yZSBhcmd1bWVudC4gIENhbGwgcmVuYW1lZAoJZm9sZF9idWlsdGluX2ZwdXRzIHRvIHNpbXBsaWZ5IEdDQyAiZnB1dHMiIGFuZCAiZnB1dHNfdW5sb2NrZWQiCglidWlsdGlucy4gIFVwZGF0ZSBhcmd1bWVudHMgdG8gZm9sZF9idWlsdGluX3N0cm5jcHkgYW5kCglmb2xkX2J1aWx0aW5fc3RyY3B5LiAgQWRkIGZ1bmN0aW9uIHByb3RvdHlwZS4KCShmb2xkX2J1aWx0aW4pOiBBZGQgYWRkaXRpb25hbCBCb29sZWFuIGlnbm9yZSBhcmd1bWVudCB0byBwYXNzCgl0byBmb2xkX2J1aWx0aW5fMS4KCShzaW1wbGlmeV9idWlsdGluKTogQ2FsbCBmb2xkX2J1aWx0aW5fZnB1dHMsIGZvbGRfYnVpbHRpbl9zdHJjcHkKCWFuZCBmb2xkX2J1aWx0aW5fc3RybmNweSBpbnN0ZWFkIG9mIHNpbXBsaWZ5X2J1aWx0aW5fZnB1dHMsCglzaW1wbGlmeV9idWlsdGluX3N0cmNweSBhbmQgc2ltcGxpZnlfYnVpbHRpbl9zdHJuY3B5IHJlc3BlY3RpdmVseS4KCgkqIGV4cHIuaCAoc2ltcGxpZnlfYnVpbHRpbl9mcHV0cywgc2ltcGxpZnlfYnVpbHRpbl9zdHJjcHksCglzaW1wbGlmeV9idWlsdGluX3N0cm5jcHkpOiBEZWxldGUgZnVuY3Rpb24gcHJvdG90eXBlcy4KCSogdHJlZS5oIChmb2xkX2J1aWx0aW5fZnB1dHMsIGZvbGRfYnVpbHRpbl9zdHJjcHksCglmb2xkX2J1aWx0aW5fc3RybmNweSk6IEFkZCBmdW5jdGlvbiBwcm90b3R5cGVzIGhlcmUuCgkoZm9sZF9idWlsdGluKTogVXBkYXRlIGZ1bmN0aW9uIHByb3RvdHlwZSB3aXRoIG5ldyAiYm9vbCBpZ25vcmUiLgoKCSogdHJlZS1zc2EtY2NwLmMgKGNjcF9mb2xkKTogVXBkYXRlIGNhbGwgdG8gZm9sZF9idWlsdGluLgoJKGNjcF9mb2xkX2J1aWx0aW4pOiAgVXBkYXRlIGNhbGwgdG8gZm9sZF9idWlsdGluLiAgQ2FsbAoJZm9sZF9idWlsdGluX2ZwdXRzLCBmb2xkX2J1aWx0aW5fc3RyY3B5IGFuZCBmb2xkX2J1aWx0aW5fc3RybmNweQoJaW5zdGVhZCBvZiBzaW1wbGlmeV9idWlsdGluX2ZwdXRzLCBzaW1wbGlmeV9idWlsdGluX3N0cmNweSBhbmQKCXNpbXBsaWZ5X2J1aWx0aW5fc3RybmNweSByZXNwZWN0aXZlbHkuCgkqIGZvbGQtY29uc3QuYyAoZm9sZCk6IFVwZGF0ZSBjYWxsIHRvIGZvbGRfYnVpbHRpbi4KCjIwMDQtMDctMDggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fc3RwY3B5KTogVW4tc2ltcGxpZnkgZGVjYXkgb2Ygc3RwY3B5Cgl0byBzdHJjcHkuCgoJKiBleHByLmggKEZVTkNUSU9OX0FSR19QQVJUSUFMX05SRUdTKTogRGVmYXVsdCB0byAwLgoJKEZVTkNUSU9OX0FSR19QQVNTX0JZX1JFRkVSRU5DRSk6IExpa2V3aXNlLgoJKEZVTkNUSU9OX0FSR19DQUxMRUVfQ09QSUVTKTogTGlrZXdpc2UuCgkqIGNhbGxzLmM6IFJlbW92ZSBpZmRlZnMgb2YgbWFjcm9zIGFib3ZlLgoJKiBmdW5jdGlvbnMuYzogTGlrZXdpc2UuCgkqIGV4cHIuYzogTGlrZXdpc2UuCgoyMDA0LTA3LTA4ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogY29uZmlnL3NwYXJjL3NwYXJjLm1kIChVTlNQRUNWX0dPVE9fVjkpOiBEZWxldGUuCgkoYXJjaCBhdHRyaWJ1dGUpOiBEZWxldGUuCgkoY3VycmVudF9mdW5jdGlvbl9jYWxsc19hbGxvY2EgYXR0cmlidXRlKTogUmVuYW1lIGludG8gY2FsbHNfYWxsb2NhLgoJKGNhbGxzX2VoX3JldHVybik6IE5ldyBhdHRyaWJ1dGUuCgkobGVhZl9mdW5jdGlvbik6IExpa2V3aXNlLgoJKGxlbmd0aCBhdHRyaWJ1dGUpOiBGaXggZm9ybXVsYSBmb3Igc2liY2FsbHMuCgkocmV0dXJuIGluc24pOiBDb3JyZWN0bHkgY29tcHV0ZSB0aGUgJ2xlbmd0aCcgYXR0cmlidXRlLgoJKGRvX2J1aWx0aW5fc2V0am1wX3NldHVwKTogQWRqdXN0IHVzZSBvZiBjdXJyZW50X2Z1bmN0aW9uX2NhbGxzX2FsbG9jYS4KCjIwMDQtMDctMDggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmVlLWNmZy5jIChtYWtlX2V4aXRfZWRnZXMpOiBVc2UgZ2V0X2NhbGxfZXhwcl9pbi4KCShyZW1vdmVfdXNlbGVzc19zdG10c18xLCBpc19jdHJsX2FsdGVyaW5nX3N0bXQpOiBMaWtld2lzZS4KCSh0cmVlX2Jsb2NrX2VuZHNfd2l0aF9jYWxsX3AsIG5lZWRfZmFrZV9lZGdlX3ApOiBMaWtld2lzZS4KCSogdHJlZS1laC5jIChsb3dlcl9laF9jb25zdHJ1Y3RzXzEpOiBMaWtld2lzZS4KCSogdHJlZS1zcmEuYyAoc3JhX3dhbGtfbW9kaWZ5X2V4cHIpOiBMaWtld2lzZS4KCSogdHJlZS1zc2EtZGNlLmMgKG1hcmtfc3RtdF9pZl9vYnZpb3VzbHlfbmVjZXNzYXJ5KTogTGlrZXdpc2UuCgkoZWxpbWluYXRlX3VubmVjZXNzYXJ5X3N0bXRzKTogTGlrZXdpc2UuCgkqIHRyZWUtc3NhLWRzZS5jIChkc2Vfb3B0aW1pemVfc3RtdCk6IExpa2V3aXNlLgoJKiB0cmVlLXRhaWxjYWxsLmMgKG9wdGltaXplX3RhaWxfY2FsbCk6IExpa2V3aXNlLgoJKiB0cmVlLXNzYS1jY3AuYyAoZ2V0X3Jocywgc2V0X3Jocyk6IFJlb3JnIHRvIHVzZSBzd2l0Y2guCgoyMDA0LTA3LTA4ICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoJICAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogY29uZmlnL2kzODYvaTM4Ni5jIChvdmVycmlkZV9vcHRpb25zKTogRW5hYmxlCglTU0UgcHJlZmV0Y2hlcyB3aXRoIC1tdHVuZSwgYXMgbG9uZyBhcyB3ZSBhcmUKCWNvbXBpbGluZyBmb3IgaTY4NiBvciBoaWdoZXIuICBBbGwgaTY4NiBwcm9jZXNzb3JzCglhY2NlcHQgU1NFIHByZWZldGNoZXMgYXMgTk9QUywgc29tZSBpNTg2J3MgZG9uJ3QuCgoyMDA0LTA3LTA4ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIHRhcmdldC8xMDU2NwoJKiBjb25maWcvc3BhcmMvc3BhcmMubWQgKHVwZGF0ZV9yZXR1cm4pOiBIb25vciBmbGFnX2RlbGF5ZWRfYnJhbmNoLgoKMjAwNC0wNy0wOCAgRGllZ28gTm92aWxsbyAgPGRub3ZpbGxvQHJlZGhhdC5jb20+CgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChnZXRfYXNtX2V4cHJfb3BlcmFuZHMpOiBGaXggdGhpbmtvcyBpbgoJdGhlIGhhbmRsaW5nIG9mIGNsb2JiZXJpbmcgQVNNX0VYUFJzLgoKMjAwNC0wNy0wOCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiB0YXJnZXQvMTY0MzAKCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKGZ1bmN0aW9uX3ZhbHVlKTogSW4gNjQtYml0IG1vZGUsCglyZXR1cm4gdGhlIGFnZ3JlZ2F0ZXMgbGFyZ2VyIHRoYW4gMTYgYnl0ZXMgbGlrZSB1bmlvbnMuCgoyMDA0LTA3LTA4ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCVBSIHRhcmdldC8xNjE5OQoJKiBjb25maWcvc3BhcmMvc3BhcmMuYyAoc3BhcmNfZW1pdF9zZXRfc3ltYm9saWNfY29uc3Q2NCk6IFdoZW4KCSd0ZW1wJyBpcyB6ZXJvLCBnZW5lcmF0ZSBuZXcgcHNldWRvcyBhcyBuZWVkZWQgYW5kIGVtaXQgdGhlCglzZXF1ZW5jZSBvZiBpbnNucyBpbiBzaW5nbGUtYXNzaWdubWVudCBmb3JtLiAgUmVzeW5jIGNvbW1lbnRzCgl3aXRoIGNvZGUuCgkoc3BhcmNfZW1pdF9zZXRfY29uc3Q2NCk6IFBhc3MgemVybyBhcyAndGVtcCcgYXJndW1lbnQgdG8gYWJvdmUKCWZ1bmN0aW9uIGJlZm9yZSByZWxvYWQuCgoyMDA0LTA3LTA4ICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogdmVjLmMgKHZlY19hc3NlcnRfZmFpbCk6IFJlbW92ZSBkdXBsaWNhdGUgJ2Z1bmN0aW9uJy4KCgkqIHZlYy5jICh2ZWNfcF9yZXNlcnZlLCB2ZWNfb19yZXNlcnZlKTogQWxsb2NhdGlvbiBpcyBzaWduZWQuCgoJKiB2ZWMuaCAoVkVDX2FsbG9jLCBWRUNfZW1iZWRkZWRfc2l6ZSwgVkVDX2VtYmVkZGVkX2luaXQpOgoJQWxsb2NhdGlvbiBpcyBzaWduZWQuCgkoVkVDX3Jlc2VydmUpOiBSZXR1cm4gZmxhZywgYWxsb2NhdGlvbiBpcyBzaWduZWQuCgoyMDA0LTA3LTA4ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdHJlZS1zc2EtY2NwLmMgKGZvbGRfc3RtdCk6IEdldCB0eXBlIGRpcmVjdGx5IGZyb20KCU9CSl9UWVBFX1JFRl9PQkpFQ1QuCgoyMDA0LTA3LTA4ICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCSAgICBOZWlsIEJvb3RoICA8bmVpbEBkYWlrb2t1eWEuY28udWs+CgoJUFIgYy8yNTExCglQUiBjLzMzMjUKCSogYy1kZWNsLmMgKGZpbmlzaF9zdHJ1Y3QpOiBFbnN1cmUgYml0LWZpZWxkcyBhcmUgZ2l2ZW4gdGhlCgljb3JyZWN0IHR5cGUuCgkqIGMtY29tbW9uLmMgKGNfY29tbW9uX3NpZ25lZF9vcl91bnNpZ25lZF90eXBlKTogRm9yIEMsIHJlcXVpcmUKCXRoZSBwcmVjaXNpb24gdG8gbWF0Y2ggYXMgd2VsbCBhcyB0aGUgbW9kZS4KCSogZXhwci5jIChyZWR1Y2VfdG9fYml0X2ZpZWxkX3ByZWNpc2lvbik6IE5ldyBmdW5jdGlvbi4KCShleHBhbmRfZXhwcl9yZWFsXzEpOiBSZWR1Y2UgZXhwcmVzc2lvbnMgb2YgYml0LWZpZWxkIHR5cGUgdG8KCXByb3BlciBwcmVjaXNpb24uCgkqIGxhbmdob29rcy5oIChyZWR1Y2VfYml0X2ZpZWxkX29wZXJhdGlvbnMpOiBOZXcgaG9vay4KCSogbGFuZ2hvb2tzLWRlZi5oIChMQU5HX0hPT0tTX1JFRFVDRV9CSVRfRklFTERfT1BFUkFUSU9OUyk6CglEZWZpbmUuCgkqIGMtbGFuZy5jLCBvYmpjL29iamMtbGFuZy5jCgkoTEFOR19IT09LU19SRURVQ0VfQklUX0ZJRUxEX09QRVJBVElPTlMpOiBEZWZpbmUuCgkqIG9iamMvb2JqYy1hY3QuYyAoY2hlY2tfaXZhcnMpOiBDb252ZXJ0IHR5cGVzIHRvIGJpdC1maWVsZCB0eXBlcwoJYmVmb3JlIGNoZWNraW5nLgoJKiB0cmVlLmMgKGJ1aWxkX25vbnN0YW5kYXJkX2ludGVnZXJfdHlwZSk6IE5ldyBmdW5jdGlvbi4KCSogdHJlZS5oIChidWlsZF9ub25zdGFuZGFyZF9pbnRlZ2VyX3R5cGUpOiBOZXcgcHJvdG90eXBlLgoJKiB0cmVlLXNzYS5jICh0cmVlX3NzYV91c2VsZXNzX3R5cGVfY29udmVyc2lvbl8xKTogRG9uJ3QgdHJlYXQKCWNvbnZlcnNpb25zIGJldHdlZW4gaW50ZWdlciBhbmQgYm9vbGVhbiB0eXBlcyBhcyB1c2VsZXNzLgoKMjAwNC0wNy0wOCAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGMtY29tbW9uLmMgKGNfY29tbW9uX25vZGVzX2FuZF9idWlsdGlucyk6IERvIG5vdAoJY3JlYXRlIF9fYnVpbHRpbl9wdHJkaWZmX3QgYW5kIF9fYnVpbHRpbl9zaXplX3QuCgoyMDA0LTA3LTA4ICBBbmRyZXcgUGluc2tpICA8YXBpbnNraUBhcHBsZS5jb20+CgoJKiBNYWtlZmlsZS5pbiAobGliYmFja2VuZC5vKTogQWRkIC1jb21iaW5lIHRvIHRoZSBnY2MKCWNvbW1hbmQgbGluZS4KCjIwMDQtMDctMDggIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBjb25maWcvc3Rvcm15MTYvdC1zdG9ybXkxNiAoVEFSR0VUX0xJQkdDQzJfQ0ZMQUdTKTogRGVmaW5lLgoJU2V0IHRvIC1Pcy4KCjIwMDQtMDctMDggIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBleGNlcHQuYyAoZXhwYW5kX2VoX3JlZ2lvbl9zdGFydCwgZXhwYW5kX2VoX3JlZ2lvbl9lbmQsCglleHBhbmRfZWhfaGFuZGxlciwgZXhwYW5kX2VoX3JlZ2lvbl9lbmRfY2xlYW51cCwKCWV4cGFuZF9zdGFydF9hbGxfY2F0Y2gsIGV4cGFuZF9zdGFydF9jYXRjaCwgZXhwYW5kX2VuZF9jYXRjaCwKCWV4cGFuZF9lbmRfYWxsX2NhdGNoLCBleHBhbmRfZWhfcmVnaW9uX2VuZF9hbGxvd2VkLAoJZXhwYW5kX2VoX3JlZ2lvbl9lbmRfbXVzdF9ub3RfdGhyb3csIGV4cGFuZF9laF9yZWdpb25fZW5kX3Rocm93LAoJZXhwYW5kX2VoX3JlZ2lvbl9lbmRfZml4dXApOiBSZW1vdmUuCgkqIHN0bXQuYyAoc3RydWN0IG5lc3RpbmcpOiBSZW1vdmUgc3RhY2tfbGV2ZWwsIGlubmVybW9zdF9zdGFja19ibG9jaywKCWNsZWFudXBzLCBvdXRlcl9jbGVhbnVwcywgbGFiZWxfY2hhaW4sIGV4Y2VwdGlvbl9yZWdpb24uCgkoc3RydWN0IGdvdG9fZml4dXApOiBSZW1vdmUgc3RhY2tfbGV2ZWwsIGNsZWFudXBfbGlzdF9saXN0LgoJKHN0cnVjdCBsYWJlbF9jaGFpbik6IFJlbW92ZS4KCShzdHJ1Y3Qgc3RtdF9zdGF0dXMpOiBSZW1vdmUgeF9zdGFja19ibG9ja19zdGFjay4KCShzdGFja19ibG9ja19zdGFjaywgZXhwYW5kX2dvdG9faW50ZXJuYWwsIGV4cGFuZF9maXh1cCwgZXhwYW5kX2ZpeHVwcywKCWZpeHVwX2dvdG9zLCBzYXZlX3N0YWNrX3BvaW50ZXIsIGV4cGFuZF9kZWNsX2NsZWFudXAsCglleHBhbmRfZGVjbF9jbGVhbnVwX2VoLCBleHBhbmRfY2xlYW51cHMsIHN0YXJ0X2NsZWFudXBfZGVmZXJyYWwsCgllbmRfY2xlYW51cF9kZWZlcnJhbCwgbGFzdF9jbGVhbnVwX3RoaXNfY29udG91ciwKCWNvbnRhaW5pbmdfYmxvY2tzX2hhdmVfY2xlYW51cHNfb3Jfc3RhY2tfbGV2ZWwsCglhbnlfcGVuZGluZ19jbGVhbnVwcyk6IFJlbW92ZS4KCShleHBhbmRfbnVsbF9yZXR1cm5fMSk6IFRha2Ugbm8gYXJndW1lbnRzLgoJKGV4cGFuZF9sYWJlbCwgZXhwYW5kX25ha2VkX3JldHVybiwgZXhwYW5kX3JldHVybiwKCWV4cGFuZF9zdGFydF9iaW5kaW5nc19hbmRfYmxvY2ssIGV4cGFuZF9lbmRfYmluZGluZ3MsIGV4cGFuZF9kZWNsLAoJZXhwYW5kX2Fub25fdW5pb25fZGVjbCwgZXhwYW5kX3N0YXJ0X2Nhc2UsIHB1c2hjYXNlLCBwdXNoY2FzZV9yYW5nZSwKCWV4cGFuZF9lbmRfY2FzZV90eXBlKTogRG9uJ3QgdXNlIGFueSBvZiB0aGVtLgoJKiBjYWxscy5jIChleHBhbmRfY2FsbCk6IExpa2V3aXNlLgoJKiBkb2p1bXAuYyAoZG9fanVtcCk6IExpa2V3aXNlLgoJKiBmdW5jdGlvbi5jIChleHBhbmRfZnVuY3Rpb25fZW5kKTogTGlrZXdpc2UuCgkqIGV4cHIuYyAoc3RvcmVfZXhwciwgZXhwYW5kX2V4cHJfcmVhbF8xKTogTGlrZXdpc2UuCgkoc2FmZV9mcm9tX3ApOiBEb24ndCBoYW5kbGUgV0lUSF9DTEVBTlVQX0VYUFIsIENMRUFOVVBfUE9JTlRfRVhQUi4KCShleHBhbmRfZXhwcl9yZWFsXzEpOiBEb24ndCBoYW5kbGUgV0lUSF9DTEVBTlVQX0VYUFIsCglDTEVBTlVQX1BPSU5UX0VYUFIsIFRBUkdFVF9FWFBSLCBUUllfQ0FUQ0hfRVhQUiwgQ0FUQ0hfRVhQUiwKCUVIX0ZJTFRFUl9FWFBSLCBUUllfRklOQUxMWV9FWFBSLCBHT1RPX1NVQlJPVVRJTkVfRVhQUi4KCSogZm9sZC1jb25zdC5jIChmb2xkX2NoZWNrc3VtX3RyZWUpOiBVc2UgZmlyc3RfcnRsX29wLgoJKiBnZW5ndHlwZS5jIChhZGp1c3RfZmllbGRfdHJlZV9leHApOiBSZW1vdmUgcnRsIG9wIGhhbmRsaW5nLgoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9jbGVhbnVwX3BvaW50X2V4cHIpOiBSZW51bWJlciBvcGVyYW5kcwoJZm9yIFdJVEhfQ0xFQU5VUF9FWFBSLgoJKGdpbXBsZV9wdXNoX2NsZWFudXApOiBMaWtld2lzZS4KCSogaW50ZWdyYXRlLmMgKGNvcHlfZGVjbF9mb3JfaW5saW5pbmcpOiBEb24ndCBERUNMX1RPT19MQVRFLgoJKiBwcmludC10cmVlLmMgKHByaW50X25vZGUpOiBMaWtld2lzZS4KCSogdHJlZS1wcmV0dHktcHJpbnQuYyAoZHVtcF9nZW5lcmljX25vZGUpOiBSZW1vdmUgR09UT19TVUJST1VUSU5FX0VYUFIuCgkqIHRyZWUuYyAoZmlyc3RfcnRsX29wKTogQWx3YXlzIGp1c3QgVFJFRV9DT0RFX0xFTkdUSC4KCShoYXNfY2xlYW51cHMpOiBSZW1vdmUgR09UT19TVUJST1VUSU5FX0VYUFIuCgkqIHRyZWUuZGVmIChXSVRIX0NMRUFOVVBfRVhQUik6IFJlbW92ZSBvcDEgYW5kIG9wMi4KCShHT1RPX1NVQlJPVVRJTkVfRVhQUik6IFJlbW92ZS4KCSogdHJlZS5oIChXSVRIX0NMRUFOVVBfRVhQUl9SVEwpOiBSZW1vdmUuCgkoREVDTF9UT09fTEFURSk6IFJlbW92ZS4KCSogZXhjZXB0LmgsIHRyZWUuaDogVXBkYXRlIGRlY2xzLgoKMjAwNC0wNy0wOCAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGV4cGxvdy5jIChvcHRpbWl6ZV9zYXZlX2FyZWFfYWxsb2NhKTogRG8gbm90IGFjY2VwdCBwYXJhbWV0ZXJzLgoJKiBwYXNzZXMuYyAocmVzdF9vZl9oYW5kbGVfZmluYWwpOiBIYW5kbGUgc3ltb3V0LgoJKHJlc3Rfb2ZfaGFuZGxlX25ld19yZWdhbGxvYywgcmVzdF9vZl9oYW5kbGVfb2xkX3JlZ2FsbG9jKToKCVB1c2ggdGltZXZhciBoZXJlLgoJKHJlc3Rfb2ZfaGFuZGxlX3NjaGVkKTogQnJlYWsgb3V0IFNNUy4gIFJlbW92ZSBpZnMgZm9yCglmbGFnX3NjaGVkdWxlX2luc25zIGFuZCBmbGFnX21vZHVsb19zY2hlZC4KCShyZXN0X29mX2hhbmRsZV9hZGRyZXNzb2YsIHJlc3Rfb2ZfaGFuZGxlX2NzZTIpOiBHYXJiYWdlCgljb2xsZWN0IGF0IHRoZSBlbmQuCgkocmVzdF9vZl9oYW5kbGVfZ2NzZTIpOiBQdXQgdW5kZXIgdGltZXZhciBUVl9SRUxPQURfQ1NFX1JFR1MuCgkocmVzdF9vZl9oYW5kbGVfcGFydGl0aW9uX2Jsb2NrcywgcmVzdF9vZl9oYW5kbGVfc21zLAoJcmVzdF9vZl9oYW5kbGVfaWZfYWZ0ZXJfcmVsb2FkLCByZXN0X29mX2hhbmRsZV9wZWVwaG9sZTIsCglyZXN0X29mX2hhbmRsZV9tb2RlX3N3aXRjaGluZywgcmVzdF9vZl9oYW5kbGVfanVtcCwKCXJlc3Rfb2ZfaGFuZGxlX2d1ZXNzX2JyYW5jaF9wcm9iLCByZXN0X29mX2hhbmRsZV9laCwKCXJlc3Rfb2ZfaGFuZGxlX2p1bXAyLCByZXN0X29mX2hhbmRsZV9wb3N0cmVsb2FkLAoJcmVzdF9vZl9oYW5kbGVfZmxvdzIsIHJlc3Rfb2ZfY2xlYW5fc3RhdGUsCglyZXN0X29mX2hhbmRsZV9zaG9ydGVuX2JyYW5jaGVzLAoJcmVzdF9vZl9oYW5kbGVfcHJvbG9ndWVfZXBpbG9ndWUsCglyZXN0X29mX2hhbmRsZV9icmFuY2hfdGFyZ2V0X2xvYWRfb3B0aW1pemUpOiBOZXcuCgkocmVzdF9vZl9jb21waWxhdGlvbik6IENhbGwgdGhlIGFib3ZlLiAgUmVtb3ZlIGdnY19jb2xsZWN0CgljYWxscyBtb3ZlZCB0byByZXN0X29mX2hhbmRsZV8qLgoJKiBydGwuaCAob3B0aW1pemVfc2F2ZV9hcmVhX2FsbG9jYSk6IERvIG5vdCBhY2NlcHQgcGFyYW1ldGVycy4KCgkqIGR3YXJmMm91dC5jIChkd2FyZjJvdXRfYmVnaW5fcHJvbG9ndWUpOiBVc2UgVFJFRV9OT1RIUk9XLgoJKiBleGNlcHQuYyAoc2V0X25vdGhyb3dfZnVuY3Rpb25fZmxhZ3MpOiBTZXQgVFJFRV9OT1RIUk9XLgoJKiBleGNlcHQuaCAoc2V0X25vdGhyb3dfZnVuY3Rpb25fZmxhZ3MpOiBVcGRhdGUgY29tbWVudC4KCSogZnVuY3Rpb24uYyAoY3VycmVudF9mdW5jdGlvbl9ub3Rocm93KTogUmVtb3ZlLgoJKiBvdXRwdXQuaCAoY3VycmVudF9mdW5jdGlvbl9ub3Rocm93KTogUmVtb3ZlLgoJKiBwYXNzZXMuYyAocmVzdF9vZl9jb21waWxhdGlvbik6IERvIG5vdCBzZXQgVFJFRV9OT1RIUk9XLgoJKiBjb25maWcvYXJtL2FybS5jIChhcm1fY29tcHV0ZV9mdW5jX3R5cGUpOiBVc2UgVFJFRV9OT1RIUk9XLgoKMjAwNC0wNy0wOCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiBib290c3RyYXAvMTYzMjYKCSogcmVvcmcuYzogUmV2ZXJ0IDIwMDQtMDYtMzAgY2hhbmdlLgoJKGZpbmRfZW5kX2xhYmVsKTogSWYgSEFWRV9lcGlsb2d1ZSBhbmQgIUhBVkVfcmV0dXJuLAoJcmV0dXJuIDAgaW5zdGVhZCBvZiBjcmVhdGluZyBhIGxhYmVsIGF0IHRoZSBlbmQgb2YgdGhlIGluc24gY2hhaW4uCgkob3B0aW1pemVfc2tpcCk6IEFjY291bnQgZm9yIHRoZSBmYWlsdXJlIG1vZGUgb2YgZmluZF9lbmRfbGFiZWwuCgkoZmlsbF9zaW1wbGVfZGVsYXlfc2xvdHMpOiBMaWtld2lzZS4KCShmaWxsX3Nsb3RzX2Zyb21fdGhyZWFkKTogTGlrZXdpc2UuCgkocmVsYXhfZGVsYXlfc2xvdHMpOiBMaWtld2lzZS4KCjIwMDQtMDctMDggIERpZWdvIE5vdmlsbG8gIDxkbm92aWxsb0ByZWRoYXQuY29tPgoKCSogdHJlZS1mbG93LmggKGFkZHJlc3NhYmxlX3ZhcnMpOiBEZWNsYXJlLgoJKiB0cmVlLXNzYS1hbGlhcy5jIChhZGRyZXNzYWJsZV92YXJzKTogRGVmaW5lLgoJKHNldHVwX3BvaW50ZXJzX2FuZF9hZGRyZXNzYWJsZXMpOiBBZGQgYWRkcmVzc2FibGUgdmFyaWFibGVzCgl0byBhZGRyZXNzYWJsZV92YXJzLgoJKiB0cmVlLXNzYS1vcGVyYW5kcy5jIChnZXRfc3RtdF9vcGVyYW5kcyk6IE1vdmUKCWhhbmRsaW5nIG9mIEFTTV9FWFBScyAuLi4KCShnZXRfYXNtX2V4cHJfb3BlcmFuZHMpOiAuLi4gaGVyZS4KCVdoZW4gdGhlIEFTTV9FWFBSIGNsb2JiZXJzIG1lbW9yeSwgYWxzbyBjbG9iYmVyIGFkZHJlc3NhYmxlCgl2YXJpYWJsZXMuCgkqIHRyZWUtc3NhLmMgKGluaXRfdHJlZV9zc2EpOiBJbml0aWFsaXplIGFkZHJlc3NhYmxlX3ZhcnMuCgkoZGVsZXRlX3RyZWVfc3NhKTogUmVzZXQgYWRkcmVzc2FibGVfdmFycy4KCjIwMDQtMDctMDcgIEphbiBCZXVsaWNoICA8amJldWxpY2hAbm92ZWxsLmNvbT4KCSAgICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdmFyYXNtLmMgKGFzc2VtYmxlX3ZhcmlhYmxlKTogVXNlIGFzc2VtYmxlX3plcm9zIGZvcgoJemVyby1pbml0aWFsaXplZCB2YXJpYWJsZXMuCgkoY2F0ZWdvcml6ZV9kZWNsX2Zvcl9zZWN0aW9uKTogSG9ub3IgZmxhZ196ZXJvX2luaXRpYWxpemVkX2luX2JzcwoJZm9yIFNFQ0NBVF9CU1MgYW5kIFNFQ0NBVF9UQlNTLgoKMjAwNC0wNy0wNyAgSmFuIEJldWxpY2ggIDxqYmV1bGljaEBub3ZlbGwuY29tPgoKCSogdmFyYXNtLmMgKGFzbV9vdXRwdXRfYnNzKTogRG9uJ3QgZGVjbGFyZSB1bmxlc3MgQlNTX1NFQ1RJT05fQVNNX09QLgoKCSogZXhwbWVkLmMgKGVtaXRfc3RvcmVfZmxhZyk6IEFsc28gc3BlY2lhbC1jYXNlIGRvdWJsZS13b3JkCgkoaW4tKWVxdWFsaXR5IGNvbXBhcmlzb24gYWdhaW5zdCAtMS4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9naW1wbGlmeV92YV9hcmcpOiBEb24ndCBuZWVkIHRlbXBvcmFyeSBmb3IKCXBhc3NpbmcgYXJndW1lbnRzIHRoZSBjb250YWluZXJzIGZvciB3aGljaCBhcmUgcmVnaXN0ZXJzLgoKCSogY2FsbHMuYyAoZW1pdF9saWJyYXJ5X2NhbGxfdmFsdWVfMSk6IFVzZSBtb2RlIG9mIGZ1bmN0aW9uIHBhcmFtZXRlcgoJcmF0aGVyIHRoYW4gdGhhdCBvZiBhcmd1bWVudCBzaW5jZSBjb25zdGFudHMgaGF2ZSBub25lLgoKMjAwNC0wNy0wOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJSW50cm9kdWNlIEg4U1ggc3VwcG9ydC4KCSogZXhwci5jIChleHBhbmRfc3RyY3B5KTogUmVuYW1lZCBhbmQgbW92ZWQgdG8uLi4KCSogYnVpbHRpbnMuYyAoZXhwYW5kX21vdnN0cik6IC4uLiBoZXJlLiAgVHdlYWsuCgkoZXhwYW5kX2J1aWx0aW5fc3RyY3B5KTogQWRqdXN0LiAgVXNlIG1vdnN0ciBpZiBsZW4gY2FuJ3QgYmUKCWNvbXB1dGVkIG9yIGhhcyBzaWRlIGVmZmVjdHMuCgkoZXhwYW5kX2J1aWx0aW5fc3RwY3B5KTogTGlrZXdpc2UuICBVc2Ugc3RyY3B5IGlmIHJldHVybiB2YWx1ZSBpcwoJdW51c2VkLCBvciBpZiBtZW1wY3B5IGZhaWxzLiAgQWRqdXN0IHRoZSByZXR1cm4gdmFsdWUgaW4gdGhlCglsYXR0ZXIgY2FzZS4gIFVzZSBtb3ZzdHIgaWYgZXZlcnl0aGluZyBlbHNlIGZhaWxzLgoJKiBkb2MvbWQudGV4aSAobW92c3RyKTogRG9jdW1lbnQuCgkobW92bWVtTSwgY2xybWVtTSk6IEZpeCBleHBsYW5hdGlvbiBvZiBtZW1vcnkgYmxvY2sgb3BlcmFuZHMuCgkqIGNvbmZpZy9oODMwMC9oODMwMC5tZCAoc3RwY3B5KTogUmVuYW1lZCB0by4uLgoJKG1vdnN0cik6IC4uLiB0aGlzLiAgQWRqdXN0LgoJMjAwNC0wNy0wNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9oODMwMC9oODMwMC5tZDogUmVuYW1lIG1vdnN0ciosIGV4Y2VwdCBmb3IgbW92c3RyaWN0KiwgdG8KCW1vdm1lbSogYW5kIGNscnN0ciogdG8gY2xybWVtKi4KCTIwMDQtMDYtMjcgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAoaDgzMDBfcmVnX2NsYXNzX2Zyb21fbGV0dGVyKTogTWFwICdEJyB0bwoJR0VORVJBTF9SRUdTLCBhbHdheXMuCgkoaDgzMDBfc3dhcF9pbnRvX2VyNiwgaDgzMDBfc3dhcF9pbnRvX2VyNik6IEhhbmRsZSB0aGUgY2FzZSBvZgoJZ2V0dGluZyB0aGUgc3RhY2sgcG9pbnRlciBhcyBhZGRyLgoJKiBjb25maWcvaDgzMDAvaDgzMDAuaCAoUFJFRElDQVRFX0NPREVTKTogUmVtb3ZlIGNvbnN0YW50IHJ0eGVzCglmcm9tIGdlbmVyYWxfb3BlcmFuZF9kc3QuCgkqIGNvbmZpZy9oODMwMC9oODMwMC5tZCAobW92bWRfaW50ZXJuYWxfbm9ybWFsKTogTmV3LCBub3JtYWwtbW9kZQoJdmFyaWFudCBvZi4uLgoJKG1vdm1kX2ludGVybmFsKTogLi4uIHRoaXMuICBBZGQgbW9kZXMgdG8gb3BlcmFuZHMuICBEaXNwYXJhZ2UgYEQnCglpbnN0ZWFkIG9mIHJlcXVpcmluZyBpdCB0byBtYXRjaCBvbmx5IGJlZm9yZSByZWxvYWQuCgkoc3RwY3B5X2ludGVybmFsX25vcm1hbCk6IE5ldywgbm9ybWFsLW1vZGUgdmFyaWFudCBvZi4uLgoJKHN0cGNweV9pbnRlcm5hbCk6IC4uLiB0aGlzLiAgQWRkIG1vZGVzIHRvIG9wZXJhbmRzLiAgRGlzcGFyYWdlCglgRCcgaW5zdGVhZCBvZiByZXF1aXJpbmcgaXQgdG8gbWF0Y2ggb25seSBiZWZvcmUgcmVsb2FkLgoJKiBjb25maWcvaDgzMDAvaDgzMDAtcHJvdG9zLmggKGg4MzAwX2xlZ2l0aW1hdGVfYWRkcmVzc19wKTogQWRkCgltb2RlIGFyZ3VtZW50LgoJKiBjb25maWcvaDgzMDAvaDgzMDAuaCAoR09fSUZfTEVHSVRJTUFURV9BRERSRVNTKTogUGFzcyBpdCB0by4uLgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAoaDgzMDBfbGVnaXRpbWF0ZV9hZGRyZXNzX3ApOiBQYXNzIGl0IHRvCgloODMwMF9nZXRfaW5kZXguCgkqIGNvbmZpZy9oODMwMC9oODMwMC5tZCAoYXR0ciB0eXBlKTogQWRkIGNhbGwuCgkoYXR0ciBjYW5fZGVsYXkpOiBJZiB0eXBlIGlzIGNhbGwsIHNldCBpdCBuby4KCShjYWxsLCBjYWxsX3ZhbHVlKTogU2V0IHR5cGUgdG8gY2FsbC4KCTIwMDQtMDYtMjEgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQgKGxvZ2ljYWxoaTNfc24sIGxvZ2ljYWxzaTNfc24pOiBOZXcuCgkyMDA0LTA2LTE2ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogdHJlZS5jIChnZXRfbmFycm93ZXIpOiBEb24ndCBuYXJyb3cgaW50ZWdyYWwgdHlwZXMgaW50bwoJbm9uLWludGVncmFsIHR5cGVzLgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAoaDgzMDBfZXhwYW5kX2VwaWxvZ3VlKTogSW5pdGlhbGl6ZQoJZnJhbWVfc2l6ZSAqYmVmb3JlKiB0aGUgZmlyc3QgdXNlLgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQgKG1vdnN0cmljdHFpKTogUmVpbnRyb2R1Y2UgcG9zdC1pbmNyZW1lbnQKCW9uIGlucHV0LgoJKHBlZXBob2xlMik6IERvbid0IHdpZGVuIGluc3RydWN0aW9ucyB0aGF0IHB1c2ggU1AuICBNb3ZlCglkZWNyZW1lbnQgb2YgU1AgdG8gdGhlIGVuZCBvZiBhbGwgc3RtLWdlbmVyYXRpbmcgcGVlcGhvbGVzLgoJMjAwMy0wNy0yNCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQgKGluc3YpOiBQcmVmZXIgdG8gdXNlIEFORCB0byBjbGVhciBhIGJpdGZpZWxkCglhbmQgT1IgdG8gc2V0IGl0IHRvIGFsbCBvbmVzLgoJMjAwMy0wNy0yNCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQgKGNhbl9kZWxheSk6IERlZmF1bHQgdG8gIm5vIiBmb3IgYml0IGJyYW5jaGVzLgoJKGNhbGwsIGNhbGxfdmFsdWUpOiBTZXQgY2FuX2RlbGF5IHRvICJubyIuCgkyMDAzLTA3LTIyICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9oODMwMC9oODMwMC5tZCAoZXh0enYpOiBNYWtlIHN1YnJlZyBjaGVjayBtb3JlIHJvYnVzdC4KCTIwMDMtMDctMjEgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCSogY29uZmlnL2g4MzAwL2g4MzAwLm1kICgqYnJhYml0KTogUmVtb3ZlLgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQgKCpicmFiYywgKmJyYWJzKTogUmVtb3ZlIG1vZGUgZnJvbQoJemVyb19leHRyYWN0LiAgVXNlIGJpdF9tZW1vcnlfb3BlcmFuZCBhcyB0aGUgcHJlZGljYXRlIGZvcgoJb3BlcmFuZCAxIGFuZCAnV1UnIGFzIHRoZSBjb25zdHJhaW50LiAgQ2hlY2sgdGhlIGRpZmZlcmVuY2UKCWJldHdlZW4gdGhlIGJhc2UgbGVuZ3RoIGFuZCB0aGUgZmluYWwgb25lIHdoZW4gZGVjaWRpbmcgd2hpY2gKCXR5cGUgb2YgYnJhbmNoIHRvIHVzZS4KCTIwMDMtMDctMjEgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCSogY29uZmlnL2g4MzAwL2g4MzAwLm1kIChleHR6dik6IFJlbW92ZSBtb2RlIGZyb20gb3BlcmFuZHMgMCBhbmQgMS4KCVVzZSBjb252ZXJ0X21vdmUgdG8gZXh0ZW5kIHRoZSByZXN1bHQgZm9yIFRBUkdFVF9IODMwMFNYLiAgQ2hlY2sKCWZvciBRSW1vZGUgbWVtb3J5IHJlZmVyZW5jZXMuICBPcHRpbWl6ZSB0aGUgY2FzZSB3aGVyZSB0aGUKCWRlc3RpbmF0aW9uIGlzIGEgcGFyYWRveGljYWwgc3VicmVnLgoJMjAwMy0wNy0yMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQgKCptb3ZzZl9oOHN4KTogQWRkIGFuIHIgPC0gRyBhbHRlcm5hdGl2ZS4KCSogY29uZmlnL2g4MzAwL2g4MzAwLm1kIChhbmRxaSk6IFJlbW92ZSBiY2xyIGZyb20gaDhzeCB2ZXJzaW9uLgoJMjAwMy0wNy0yMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQ6IEluY2x1ZGUgbW92YS5tZAoJKGxlbmd0aF90YWJsZSk6IEFkZCBtb3ZhIGFuZCBtb3ZhX3plcm8uCgkqIGNvbmZpZy9oODMwMC9oODMwMC5jIChwcmludF9vcGVyYW5kKTogSGFuZGxlICclbycuICBQcmludCBhIGxlbmd0aAoJYWZ0ZXIgYWxsIGNvbnN0YW50IGFkZHJlc3NlcyBmb3IgJyVSJywgJyVYJywgJyVUJyBhbmQgJyVTJy4KCShoODMwMF9tb3ZhX2xlbmd0aCk6IE5ldyBmdW5jdGlvbi4KCShoODMwMF9pbnNuX2xlbmd0aF9mcm9tX3RhYmxlKTogVXNlIGl0IHRvIGhhbmRsZSBtb3ZhIGFuZCBtb3ZhX3plcm8uCgkqIGNvbmZpZy9oODMwMC90LWg4MzAwIChtb3ZhLm1kKTogR2VuZXJhdGUgZnJvbSBnZW5tb3ZhLnNoLiAgQWRkIHRvCglkZXBlbmRlbmNpZXMgZm9yIHMtY29uZmlnLCBldGMuCgkqIGNvbmZpZy9oODMwMC9nZW1vdmEuc2g6IE5ldyBmaWxlLgoJKiBjb25maWcvaDgzMDAvbW92YS5tZDogR2VuZXJhdGVkLgoJMjAwMy0wNy0yMCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9oODMwMC9oODMwMC5jIChoODMwMF9iaXRmaWVsZF9sZW5ndGgpOiBOZXcuCgkobmliYmxlX29wZXJhbmQpOiBBZGp1c3QuCgkoaDgzMDBfYmluYXJ5X2xlbmd0aCk6IEhhbmRsZSBjb25kaXRpb25hbCBiaW5hcnkgb3AuCgkoaDgzMDBfaW5zbl9sZW5ndGhfZnJvbV90YWJsZSk6IEhhbmRsZSBiaXRmaWVsZCBhbmQgYml0YnJhbmNoLgoJKiBjb25maWcvaDgzMDAvaDgzMDAuaDogQ2hhbmdlIGNvbnN0cmFpbnRzIFcjIGFuZCBZIyB0byBQIz5YIGFuZAoJUCM8WCwgcmVzcGVjdGl2ZWx5LiAgVGhlIG9yaWdpbmFsIFAgaXMgbm93IElQND5YLiAgSW50cm9kdWNlZCBQIz4wCglhbmQgUCM8MCwgdW51c2VkIHNvIGZhci4gIFcgYW5kIFkgYXJlIG5vdyBwcmVmaXhlcyB0byBtdWx0aS1sZXR0ZXIKCWNvbnN0cmFpbnRzLiAgV1UgaXMgaW50cm9kdWNlZCBhcyBhIHZhcmlhbnQgb2YgVSB0aGF0IHJlcXVpcmVzIGEKCW1lbSwgYW5kIGlzIHRoZXJlZm9yZSBjb25zaWRlcmVkIGFuIEVYVFJBX01FTU9SWV9DT05TVFJBSU5ULgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQgKGF0dHIgdHlwZSk6IEFkZGVkIGJpdGJyYW5jaC4KCShhdHRyIGxlbmd0aF90YWJsZSk6IEFkZGVkIGJpdGZpZWxkIGFuZCBiaXRicmFuY2guCgkoYXR0ciBsZW5ndGgpOiBDb21wdXRlIGJpdGJyYW5jaCBsZW5ndGguCgkoYW5kcWkpOiBTZXBhcmF0ZSBwYXR0ZXJuIGZvciBIODMwMFNYLiAgVXNlIGJmbGQgZm9yIGxvYWRpbmcgdGhlCglsZWFzdC1zaWduaWZpY2FudCBiaXQgb2YgYSBieXRlLgoJKGJyYWJpdCwgYnJhYmMsIGJyYWJzKTogTmV3LgoJKGluc3YsIGV4dHp2KTogRW1pdCBiZnN0IGFuZCBiZmxkIG9uIEg4MzAwU1guCgkoYmZsZCwgYmZzdCwgc2VxLCBzbmUpOiBOZXcuCgkoYnN0emhpcmVnLCBjbXBzdHosIGJzdHosIGJpc3R6KTogTmV3LgoJKGNtcGNvbmRic2V0LCBjb25kYnNldCwgY21wY29uZGJjbHIsIGNvbmRiY2xyKTogTmV3LgoJKGNtcGNvbmRic2V0cmVnLCBjb25kYnNldHJlZywgY21wY29uZGJjbHJyZWcsIGNvbmRiY2xycmVnKTogTmV3LgoJMjAwMy0wNy0xMSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAoaDhzeF9iaW5hcnlfbWVtb3J5X29wZXJhdG9yKTogTmV3IGZ1bmN0aW9uLgoJKGg4c3hfdW5hcnlfbWVtb3J5X29wZXJhdG9yKTogTmV3IGZ1bmN0aW9uLgoJKiBjb25maWcvaDgzMDAvaDgzMDAuaCAoRVhUUkFfTUVNT1JZX0NPTlNUUkFJTlQpOiBEaXNhYmxlLgoJKFBSRURJQ0FURV9DT0RFUyk6IEFkZCBoOHN4X3t1bmFyeSxiaW5hcnl9X21lbW9yeV9vcGVyYXRvci4KCSogY29uZmlnL2g4MzAwL2g4MzAwLm1kOiBBZGQgcGVlcGhvbGVzIHRvIGNvbWJpbmUgcmVsb2FkcyBhbmQKCWFyaXRobWV0aWMgaW5zbnMuCgkyMDAzLTA3LTEwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9oODMwMC9oODMwLm1kIChjbXBxaSk6IFVzZSAnaScgcmF0aGVyIHRoYW4gJ24nIGluIGNvbnN0cmFpbnRzLgoJKCpjbXBoaV9oODMwMGhzLCAqYWRkcWkzLCAqYWRkaGkzX2g4c3gsIHN1YmhpMyk6IExpa2V3aXNlLgoJKGFuZD9pLCBpb3I/aSwgeG9yP2kpOiBMaWtld2lzZS4KCTIwMDMtMDctMTAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCSogY29uZmlnL2g4MzAwL2g4MzAwLmM6IE1vdmUgZW51bXMgYW5kIHByb3RvdHlwZXMgdG8gaGVhZCBvZiBmaWxlLgoJVmFyaW91cyB3aGl0ZXNwYWNlIGZpeGVzLgoJKGg4MzAwX2NvbnN0YW50X2xlbmd0aCk6IE5ldyBmdW5jdGlvbiwgc3BsaXQgb3V0IGZyb20uLi4KCShoODMwMF9kaXNwbGFjZW1lbnRfc2l6ZSk6IC4uLmhlcmUuICBSZW5hbWUgaDgzMDBfZGlzcGxhY2VtZW50X2xlbmd0aC4KCShoODMwMF9jbGFzc2lmeV9vcGVyYW5kKTogVXNlIElOX1JBTkdFLgoJKGg4MzAwX2NsYXNzaWZ5X29wZXJhbmQpOiBVc2UgaDgzMDBfY29uc3RhbnRfbGVuZ3RoLgoJKGg4MzAwX3Nob3J0X21vdmVfbWVtX3ApOiBUaWdodGVuIHNpemUgY2hlY2suCgkoaDhzeF9tZXJnZWFibGVfbWVtcmVmc19wKTogVGlnaHRlbiBlcXVhbGl0eSBjaGVjay4KCTIwMDMtMDYtMzAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCSogY29uZmlnL2g4MzAwL2g4MzAwLmggKFRBUkdFVF9DUFVfQ1BQX0JVSUxUSU5TKTogRGVmaW5lIF9fSDgzMDBTWF9fCglmb3IgLW1zeC4KCSogY29uZmlnL2g4MzAwL2NydGkuYXNtOiBVc2UgLmg4MzAwc3ggb3IgLmg4MzAwc3huIGZvciAtbXN4IGNvZGUuCgkqIGNvbmZpZy9oODMwMC9jcnRuLmFzbTogTGlrZXdpc2UuCgkqIGNvbmZpZy9oODMwMC9saWIxZnVuY3MuYXNtOiBMaWtld2lzZS4gIFVzZSAzMi1iaXQgcG9pbnRlcnMKCWlmIF9fSDgzMDBTWF9fIGlzIGRlZmluZWQuCgkyMDAzLTA2LTI3ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9oODMwMC9oODMwMC1wcm90b3MuaCAoaDgzMDBfZ2V0X2luZGV4KTogQWRkIG1vZGUgcGFyYW1ldGVyLgoJKiBjb25maWcvaDgzMDAvaDgzMDAuaCAoR09fSUZfTEVHSVRJTUFURV9BRERSRVNTKTogVXBkYXRlIGFjY29yZGluZ2x5LgoJKEdPX0lGX01PREVfREVQRU5ERU5UX0FERFJFU1MpOiBUcmVhdCBQT1NUX0RFQywgUFJFX0lOQyBhbmQgaW5kZXhlZAoJYWRkcmVzc2VzIGFzIG1vZGUtZGVwZW5kZW50LgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAocHJpbnRfb3BlcmFuZF9hZGRyZXNzKTogVXBkYXRlIGNhbGwgdG8KCWg4MzAwX2dldF9pbmRleC4KCShoODMwMF9nZXRfaW5kZXgpOiBUYWtlIGEgbW9kZSBhcmd1bWVudC4gIFJld29yayB0byBmaXggYW4KCWVhcmxpZXIgbWlzdW5kZXJzdGFuZGluZy4KCTIwMDMtMDYtMjYgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCSogY29uZmlnL2g4MzAwL2g4MzAwLmMgKHplcm9fZXh0ZW5kcWlzaTIpOiBGb3JjZSB0aGUgc291cmNlIG9wZXJhbmQKCWludG8gYSByZWdpc3RlciBpZiBUQVJHRVRfSDgzMDBTWC4KCSgqemVyb19leHRlbmRxaXNpMl9oODMwMGhzLCAqZXh0ZW5kcWlzaTJfaDgzMDApOiBEaXNhYmxlIGZvcgoJVEFSR0VUX0g4MzAwU1guICBBbHNvIGRpc2FibGUgcmVsYXRlZCBkZWZpbmVfc3BsaXRzLgoJKCp6ZXJvX2V4dGVuZHFpc2kyX2g4c3gsICpleHRlbmRxaXNpMl9oOHN4KTogTmV3IHBhdHRlcm5zLgoJMjAwMy0wNi0yMyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAoaDgzMDBfcnR4X2Nvc3RzKTogQWRkIGg4c3ggaGFuZGxpbmcuCgkyMDAzLTA2LTIwICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9oODMwMC9oODMwMC5oIChPS19GT1JfWik6IE5ldyBtYWNyby4KCShFWFRSQV9DT05TVFJBSU5UX1NUUik6IENoZWNrIGl0LgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAoaDgzMDBfY2xhc3NpZnlfb3BlcmFuZCk6IEFjY2VwdCBudWxsCgljbGFzcyBhcmd1bWVudHMuCgkoaDgzMDBfaW5zbl9sZW5ndGhfZnJvbV90YWJsZSk6IEhhbmRsZSBMRU5HVEhfVEFCTEVfTU9WX0lNTTQuCgkqIGNvbmZpZy9oODMwMC9oODMwMC5tZCAobGVuZ3RoX3RhYmxlKTogQWRkIG1vdl9pbW00LgoJKG1vdnFpLCBtb3ZoaSk6IEFkZCBaIDwtIFc0IGFsdGVybmF0aXZlcyB0byBoOHN4IHBhdHRlcm5zLgoJMjAwMy0wNi0yMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBnZW5hdHRydGFiLmMgKHdyaXRlX2VsaWdpYmxlX2RlbGF5KTogQWxsb3cgY2FuZGlkYXRlX2luc24gdG8KCWJlIGEgbGFiZWwuCgkqIGNvbmZpZy9oODMwMC9oODMwMC5oIChERUxBWV9TTE9UX0xFTkdUSCk6IE5ldyBtYWNyby4KCSogY29uZmlnL2g4MzAwL2g4MzAwLmMgKGg4MzAwX3Jlb3JnKTogTmV3IGZ1bmN0aW9uLgoJKFRBUkdFVF9NQUNISU5FX0RFUEVOREVOVF9SRU9SRyk6IERlZmluZS4KCSogY29uZmlnL2g4MzAwL2g4MzAwLm1kIChsZW5ndGgpOiBTdWJ0cmFjdCB0aGUgbGVuZ3RoIG9mIHRoZQoJZGVsYXkgc2xvdCBmcm9tIChwYykgd2hlbiBjaGVja2luZyB0aGUgcmFuZ2Ugb2YgZm9yd2FyZCBicmFuY2hlcy4KCShkZWxheV9zbG90LCBjYW5fZGVsYXkpOiBOZXcgYXR0cmlidXRlcy4KCShkZWZpbmVfZGVsYXkpOiBBZGQgYnJhL3MgaGFuZGxpbmcuCgkobW92bWRfaW50ZXJuYWwsIHJldHVybl9oOHN4LCAqcmV0dXJuXzEpOiBTZXQgY2FuX2RlbGF5IHRvIG5vLgoJKGp1bXApOiBBZGQgZGVsYXllZC1icmFuY2ggaGFuZGxpbmcuCgkyMDAzLTA2LTE3ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgkqIGV4cHIuYyAoZXhwYW5kX3N0cmNweSk6IE5ldyBmdW5jdGlvbi4KCSogYnVpbHRpbnMuYyAoZXhwYW5kX2J1aWx0aW5fc3RyY3B5KTogRmFsbCBiYWNrIG9uIGV4cGFuZF9zdHJjcHkuCgkoZXhwYW5kX2J1aWx0aW5fc3RwY3B5KTogTGlrZXdpc2UuCgkqIGNvbmZpZy9oODMwMC9oODMwMC1wcm90b3MuaCAoaDhzeF9zcGxpdF9tb3ZtZCk6IFJlbW92ZS4KCShoODMwMF9zd2FwX2ludG9fZXI2LCBoODMwMF9zd2FwX291dF9vZl9lcjYpOiBEZWNsYXJlLgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAoaDgzMDBfcmVnX2NsYXNzX2Zyb21fbGV0dGVyKTogVHdlYWsgJ2QnCgloYW5kbGluZyB0byBpbXByb3ZlIHJlZ2lzdGVyIGFsbG9jYXRpb24gZm9yIC1mbm8tb21pdC1mcmFtZS1wb2ludGVyLgoJKGg4c3hfc3BsaXRfbW92bWQpOiBEZWxldGUsIG1vdmluZyBlcjYgaGFuZGxpbmcgaW50by4uLgoJKGg4MzAwX3N3YXBfaW50b19lcjYsIGg4MzAwX3N3YXBfb3V0X29mX2VyNik6IC4uLnRoZXNlIG5ldyBmdW5jdGlvbnMuCgkqIGNvbmZpZy9oODMwMC9oODMwMC5tZCAoVU5TUEVDX1NUUENQWSk6IE5ldyB1bnNwZWMgY29uc3RhbnQuCgkobW92bWQpOiBBZGQgY2FsbHMgdG8gY29weV9ydHguCgkobW92bWRfaW50ZXJuYWwpOiBJbiB0aGUgc2Vjb25kIGFsdGVybmF0aXZlLCBhbGxvdyB0aGUgaW5pdGlhbCBhbmQKCWZpbmFsIGRlc3RpbmF0aW9uIHJlZ2lzdGVycyB0byBiZSBkaWZmZXJlbnQgLiAgVXBkYXRlIHRoZSBzcGxpdHRlcgoJYWNjb3JkaW5nbHkuICBDYWxsIGg4MzAwX3N3YXBfaW50b19lcjYgYW5kIGg4MzAwX3N3YXBfb3V0X29mX2VyNgoJaW5zdGVhZCBvZiBoOHN4X3NwbGl0X21vdm1kLgoJKHN0cGNweSwgbW92c2QpOiBOZXcgZXhwYW5kZXJzLgoJKG1vdnNkX2ludGVybmFsKTogTmV3IGRlZmluZV9pbnNuLgoJMjAwMy0wNi0xMyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBjb25maWcvaDgzMDAvaDgzMDAtcHJvdG9zLmggKGg4MzAwX3JlZ19jbGFzc19mcm9tX2xldHRlcik6IERlY2xhcmUuCgkoaDhzeF9lbWl0X21vdm1kLCBoOHN4X3NwbGl0X21vdm1kKTogRGVjbGFyZS4KCSogY29uZmlnL2g4MzAwL2g4MzAwLmggKHJlZ19jbGFzcyk6IEFkZCBDT1VOVEVSX1JFR1MsIFNPVVJDRV9SRUdTCglhbmQgREVTVElOQVRJT05fUkVHUy4KCShSRUdfQ0xBU1NfTkFNRVMsIFJFR19DTEFTU19DT05URU5UUyk6IFVwZGF0ZSBhY2NvcmRpbmdseS4KCShSRUdOT19SRUdfQ0xBU1MpOiBNYXAgZXI0LCBlcjUgYW5kIGVyNiB0byB0aGUgbmV3IGNsYXNzZXMuCgkoUkVHX0NMQVNTX0ZST01fTEVUVEVSKTogVXNlIGg4MzAwX3JlZ19jbGFzc19mcm9tX2xldHRlci4KCShoODMwMF9tb3ZlX3JhdGlvKTogRGVjbGFyZS4KCShNT1ZFX1JBVElPKTogVXNlIGl0LgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAoaDgzMDBfbW92ZV9yYXRpbyk6IE5ldyB2YXJpYWJsZS4KCShoODMwMF9pbml0X29uY2UpOiBJbml0aWFsaXplIGl0LgoJKGg4MzAwX3JlZ19jbGFzc19mcm9tX2xldHRlcik6IE5ldyBmdW5jdGlvbi4KCShwcmludF9vcGVyYW5kKTogQWRkIGFuICdtJyBwcmVmaXggZm9yIHByaW50aW5nICIuYiIsICIudyIgb3IgIi5sIi4KCShoOHN4X2VtaXRfbW92bWQsIGg4c3hfc3BsaXRfbW92bWQpOiBOZXcgZnVuY3Rpb25zLgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQgKFVOU1BFQ19NT1ZNRCk6IE5ldyB1bnNwZWMgY29uc3RhbnQuCgkoQ09VTlRFUl9SRUcsIFNPVVJDRV9SRUcsIERFU1RJTkFUSU9OX1JFRyk6IE5ldyByZWdpc3RlciBjb25zdGFudHMuCgkobW92c3Ryc2ksIG1vdm1kKTogTmV3IGV4cGFuZGVycy4KCShtb3ZtZF9pbnRlcm5hbCk6IE5ldyBpbnNuLgoJMjAwMy0wNi0wNiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBjb25maWcvaDgzMDAvaDgzMDAuaCAoRVhUUkFfTUVNT1JZX0NPTlNUUkFJTlQpOiBEZWZpbmUuCgkyMDAzLTA2LTA0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9oODMwMC9lbGYuaCAoTElOS19TUEVDKTogVXNlIC1tIGg4MzAwc3huZWxmIGZvciAtbXN4IC1tbi4KCSogY29uZmlnL2g4MzAwL2g4MzAwLmMgKGFzbV9maWxlX3N0YXJ0KTogVXNlIC5oODMwMHN4biBsaWtld2lzZS4KCTIwMDMtMDYtMDMgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCSogY29uZmlnL2g4MzAwL2g4MzAwLmMgKG5pYmJsZV9vcGVyYW5kKTogRml4IHdhcm5pbmcuCgkqIGNvbmZpZy9oODMwMC9oODMwMC5tZCAobW92c3RyaWN0aGkpOiBTZXQgYWRqdXN0X2xlbmd0aCB0byBuby4KCShtb3ZzaV9oOHN4KTogTGlrZXdpc2UgaGVyZSBhbmQgdGhlIG5vcm1hbCBoOHN4IG1vdmhpIHBhdHRlcm4uCgkobW92c2ZfaDgzMDBoKTogRGlzYWJsZSBmb3IgVEFSR0VUX0g4MzAwU1guCgkyMDAzLTA2LTAzICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9oODMwMC9oODMwMC5oIChQUkVESUNBVEVfQ09ERVMpOiBBZGQgaDgzMDBfbGRtX3BhcmFsbGVsLAoJaDgzMDBfc3RtX3BhcmFsbGVsIGFuZCBoODMwMF9yZXR1cm5fcGFyYWxsZWwuCgkqIGNvbmZpZy9oODMwMC9oODMwMC5jIChoODMwMF9wdXNoX3BvcCwgaDgzMDBfc3RhY2tfb2Zmc2V0X3AsCgloODMwMF9sZG1fc3RtX3JlZ25vLCBoODMwMF9sZG1fc3RtX3BhcmFsbGVsLCBoODMwMF9sZG1fcGFyYWxsZWwsCgloODMwMF9zdG1fcGFyYWxsZWwsIGg4MzAwX3JldHVybl9wYXJhbGxlbCk6IE5ldyBmdW5jdGlvbnMuCgkoaDgzMDBfZXhwYW5kX3Byb2xvZ3VlKTogRG9uJ3QgZW5mb3JjZSBsZG0vc3RtIHJlZ2lzdGVyIGFsaWdubWVudAoJaWYgVEFSR0VUX0g4MzAwU1guICBVc2UgaDgzMDBfcHVzaF9wb3AuCgkoaDgzMDBfZXhwYW5kX2VwaWxvZ3VlKTogTGlrZXdpc2UuICBUcnkgdG8gbWVyZ2UgdGhlIHJldHVybiBpbnNuCglhbmQgZmluYWwgcG9wIHdoZW4gZ2VuZXJhdGluZyBoOHN4IGNvZGUuICBBbHdheXMgZW1pdCBzb21lIGZvcm0KCW9mIHJldHVybiBpbnNuLgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQ6IERvbid0IGVuZm9yY2UgcmVnaXN0ZXIgYWxpZ25tZW50IGluCglzdG0gcGVlcGhvbGVzIGlmIFRBUkdFVF9IODMwMFNYLgoJKGxkbV9oODMwMHMsIHN0bV9oODMwMHMsIHJldHVybl9oOHN4KTogTmV3IHBhdHRlcm5zLgoJKGxkbV9oODMwMHNfWzIzNF0sIHN0bV9oODMwMF9bMjM0XSk6IERpc2FibGUuCgkoZXBpbG9ndWUpOiBFeHBlY3QgaDgzMDBfZXhwYW5kX2VwaWxvZ3VlIHRvIGVtaXQgYSByZXR1cm4gaW5zbi4KCTIwMDMtMDYtMDMgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCSogY29uZmlnL2g4MzAwL3QtaDgzMDAgKE1VTFRJTElCX09QVElPTlMpOiBBZGQgYSAtbXN4IG11bHRpbGliLgoJKE1VTFRJTElCX0RJUk5BTUVTKTogQWRkIGEgZGlyZWN0b3J5IGZvciBpdC4KCShNVUxUSUxJQl9NQVRDSEVTKTogRGVsZXRlLgoJMjAwMy0wNS0yOCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBmaW5hbC5jICh3YWxrX2FsdGVyX3N1YnJlZyk6IEhhbmRsZSBhZGRyZXNzZXMgd2l0aCBzdWJyZWdzCglpbnNpZGUgYSBaRVJPX0VYVEVORCBvciBBTkQuCgkqIGNvbmZpZy9oODMwMC9oODMwMC1wcm90b3MuaCAoaDgzMDBfZ2V0X2luZGV4KTogRGVjbGFyZS4KCSogY29uZmlnL2g4MzAwL2g4MzAwLmggKElOREVYX1JFR19DTEFTUyk6IFNldCB0byBHRU5FUkFMX1JFR1MKCWlmIFRBUkdFVF9IODMwMFNYLgoJKEdPX0lGX0xFR0lUSU1BVEVfQUREUkVTUyk6IFVzZSBoODMwMF9nZXRfaW5kZXguCgkqIGNvbmZpZy9oODMwMC9oODMwMC5jIChwcmludF9vcGVyYW5kX2FkZHJlc3MpOiBIYW5kbGUgQChkZCxSbkwuYiksCglAKGRkLFJuLncpIGFuZCBAKGRkLEVSbi5MKS4KCShoODMwMF9kaXNwbGFjZW1lbnRfc2l6ZSk6IFRha2UgdGhlIHdob2xlIGFkZHJlc3MgYXMgYXJndW1lbnQuCgkoaDgzMDBfY2xhc3NpZnlfb3BlcmFuZCwgaDgzMDBfc2hvcnRfbW92ZV9tZW1fcCk6IEFkanVzdCBhY2NvcmRpbmdseS4KCTIwMDMtMDUtMjggIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCSogY29uZmlnL21pcHMvbWlwcy1wcm90b3MuaCAoaDgzMDBfb3BlcmFuZHNfbWF0Y2hfcCk6IERlY2xhcmUuCgkoaDhzeF9tZXJnZWFibGVfbWVtcmVmc19wKTogRGVjbGFyZS4KCSogY29uZmlnL2g4MzAwL2g4MzAwLmggKEhBVkVfUE9TVF9ERUNSRU1FTlQpOiBEZWZpbmUgdG8gVEFSR0VUX0g4MzAwU1guCgkoSEFWRV9QUkVfSU5DUkVNRU5UKTogTGlrZXdpc2UuCgkoR09fSUZfTEVHSVRJTUFURV9BRERSRVNTKTogQWNjZXB0IHByZS9wb3N0IGluY3JlbWVudC9kZWNyZW1lbnQKCWFkZHJlc3NlcyBmb3IgVEFSR0VUX0g4MzAwU1gsCgkqIGNvbmZpZy9oODMwMC9oODMwMC5jIChwcmludF9vcGVyYW5kX2FkZHJlc3MpOiBEZWFsIHdpdGggUFJFX0lOQwoJYW5kIFBPU1RfREVDLgoJKG1vdmJfbGVuZ3RoX3RhYmxlLCBtb3ZsX2xlbmd0aF90YWJsZSk6IE5ldyB0YWJsZXMuCgkobW92d19sZW5ndGhfdGFibGUpOiBEZWZpbmUgdG8gbW92Yl9sZW5ndGhfdGFibGUuCgkoaDgzMDBfZGlzcGxhY2VtZW50X3NpemUpOiBOZXcsIHNwbGl0IG91dCBmcm9tLi4uCgkoaDgzMDBfY2xhc3NpZnlfYWRkcmVzcyk6IC4uLmhlcmUuICBIYW5kbGUgcHJlL3Bvc3QgaW5jL2RlYy4KCShoODMwMF9zaG9ydF9pbW1lZGlhdGVfbGVuZ3RoKTogQWxsb3cgSDhPUF9NRU1fQ09NUExFWCBvcGVyYW5kcy4KCShoODMwMF9pbnNuX2xlbmd0aF9mcm9tX3RhYmxlKTogQWRkIGNhc2VzIGZvciBtb3ZiLCBtb3Z3IGFuZCBtb3ZsLgoJKGg4c3hfbWVyZ2VhYmxlX21lbXJlZnNfcCwgaDgzMDBfb3BlcmFuZHNfbWF0Y2hfcCk6IE5ldyBmdW5jdGlvbnMuCgkob3V0cHV0X3BsdXNzaSk6IFVzZSBhZGQubCAjeHg6MyxSbiBhbmQgc3ViLmwgI3h4OjMsUm4gZm9yIGg4c3guCgkoY29tcHV0ZV9wbHVzc2lfbGVuZ3RoLCBjb21wdXRlX3BsdXNzaV9jYyk6IFVwZGF0ZSBhY2NvcmRpbmdseS4KCShoOHN4X3VuYXJ5X3NoaWZ0X29wZXJhdG9yKTogR2V0IHRoZSBtb2RlIGZyb20gdGhlIG9wZXJhdG9yLgoJKGJpbmFyeV9zaGlmdF9vcGVyYXRvcik6IExpa2V3aXNlLgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQ6IElmIGEgcGVlcGhvbGUyIGFwcGxpZXMgZ2VuX2xvd3BhcnQgdG8KCWEgbWVtb3J5IHJlZmVyZW5jZSwgY2hlY2sgd2hldGhlciB0aGUgcmVmZXJlbmNlIGlzIG9mZnNldHRhYmxlLgoJKGxlbmd0aF90YWJsZSk6IEFkZCBtb3ZiLCBtb3Z3IGFuZCBtb3ZsLgoJKG1vdnFpKTogQWRkIG5ldyBoOHN4IHBhdHRlcm4uICBEb24ndCBmb3JjZSBvbmUgb3BlcmFuZCB0byBiZSBhCglyZWdpc3RlciB3aGVuIGdlbmVyYXRpbmcgaDhzeCBjb2RlLgoJKG1vdmhpLCBtb3ZzaSwgbW92c2YpOiBMaWtld2lzZS4KCShtb3ZzdHJpY3RxaSk6IFVzZSB0aGUgbGVuZ3RoX3RhYmxlIGF0dHJpYnV0ZS4KCShtb3ZzdHJpY3RoaSk6IExpa2V3aXNlLiAgQWRkIGg4c3ggYWx0ZXJuYXRpdmUgZm9yIG1vdi53ICN4eDozLFJuLgoJKGFkZHFpMyk6IFNwbGl0IGludG8gYSBkZWZpbmVfZXhwYW5kIGFuZCBkZWZpbmVfaW5zbi4gIERvbid0IGFjY2VwdAoJbWVtb3J5IG9wZXJhbmRzIGluIHRoZSBleHBhbmRlci4gIFVzZSBoODMwMF9vcGVyYW5kc19tYXRjaF9wIHRvCgljaGVjayBmb3IgbWF0Y2hpbmcgb3BlcmFuZHMgaW4gdGhlIGRlZmluZV9pbnNuLgoJKHN1YnFpMywgbmVncWkyLCBvbmVfY21wbHFpMik6IExpa2V3aXNlLgoJKGFkZFtoc11pMyk6IERvbid0IGFjY2VwdCBtZW1vcnkgb3BlcmFuZHMgaW4gdGhlIGV4cGFuZGVyLiAgTGlrZXdpc2UKCWluIGFueSBwYXR0ZXJucyB0aGF0IGFyZSB1bnVzZWQgaW4gaDhzeCBjb2RlLiAgSW4gdGhlIGg4c3ggcGF0dGVybnMsCgl1c2UgaDgzMDBfb3BlcmFuZHNfbWF0Y2hfcCB0byBjaGVjayB3aGV0aGVyIG9wZXJhbmRzIG1hdGNoLgoJKHN1Yltoc11pMywgYW5kW2hpXTMsIGlvcltoc11pMywgeG9yW2hzXWkzLCBuZWdbaHNpXTMsCglvbmVfY21wbFtoc11pMyk6IExpa2V3aXNlLgoJKGFuZHFpMywgaW9ycWkzLCB4b3JxaTMpOiBMaWtld2lzZS4gIERvbid0IGNhbGwgZml4X2JpdF9vcGVyYW5kCglpbiB0aGUgZXhwYW5kZXIuCgkyMDAzLTA1LTIzICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9oODMwMC9oODMwMC1wcm90b3MuaCAoZXhwYW5kX2Ffc2hpZnQpOiBSZXR1cm4gYSBib29sLgoJKGg4MzAwX2luc25fbGVuZ3RoX2Zyb21fdGFibGUpOiBBZGQgYSBzZWNvbmQgcGFyYW1ldGVyLgoJKG91dHB1dF9oOHN4X3NoaWZ0KTogRGVjbGFyZS4KCSogY29uZmlnL2g4MzAwL2g4MzAwLmggKE9LX0ZPUl9XLCBPS19GT1JfWSk6IE5ldyBtYWNyb3MuCgkoRVhUUkFfQ09OU1RSQUlOVCk6IFJlcGxhY2Ugd2l0aC4uLgoJKEVYVFJBX0NPTlNUUkFJTlRfU1RSKTogLi4udGhpcy4gIFVzZSBPS19GT1JfVyBhbmQgT0tfRk9SX1kuCgkoQ09OU1RSQUlOVF9MRU4pOiBEZWZpbmUsIHJldHVybmluZyAyIGZvciAnVycgYW5kICdZJy4KCShQUkVESUNBVEVfQ09ERVMpOiBBZGQgZW50cmllcyBmb3IgaDhzeF91bmFyeV9zaGlmdF9vcGVyYXRvcgoJYW5kIGg4c3hfYmluYXJ5X3NoaWZ0X29wZXJhdG9yLgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAodHdvX2luc25fYWRkc19zdWJzX29wZXJhbmQpOiBSZXR1cm4gZmFsc2UKCWZvciBUQVJHRVRfSDgzMDBTWC4KCShiaXRfb3BlcmFuZCk6IFJlcGxhY2UgdXNlIG9mIEVYVFJBX0NPTlNUUkFJTlQgd2l0aCBPS19GT1JfVS4KCShiaXRfbWVtb3J5X29wZXJhbmQsIGZpeF9iaXRfb3BlcmFuZCk6IExpa2V3aXNlLgoJKGg4MzAwX2xlbmd0aF90YWJsZV9mb3JfaW5zbik6IFJlbW92ZS4KCShoODMwMF9jbGFzc2lmeV9vcGVyYW5kKTogRml4IGNoZWNrIGZvciAxNi1iaXQgb3BlcmFuZHMgaW4gMzItYml0CglpbnN0cnVjdGlvbnMuCgkoaDgzMDBfc2hvcnRfaW1tZWRpYXRlX2xlbmd0aCwgaDgzMDBfYmluYXJ5X2xlbmd0aCk6IE5ldyBmdW5jdGlvbnMuCgkoaDgzMDBfaW5zbl9sZW5ndGhfZnJvbV90YWJsZSk6IEFkZCBhbiBvcGNvZGVzIHBhcmFtZXRlci4gIFJld29yay4KCShvdXRwdXRfcGx1c3NpKTogVXNlIHN1YiB0byBhZGQgbmVnYXRpdmUgY29uc3RhbnRzLgoJKGNvbXB1dGVfcGx1c3NpX2xlbmd0aCk6IEFkanVzdCBhY2NvcmRpbmdseS4KCShoOHN4X3NpbmdsZV9zaGlmdF90eXBlKTogTmV3IGVudW0uCgkoaDhzeF9zaW5nbGVfc2hpZnQsIGg4c3hfdW5hcnlfc2hpZnRfb3BlcmF0b3IsCgloOHN4X2JpbmFyeV9zaGlmdF9vcGVyYXRvciwgb3V0cHV0X2g4c3hfc2hpZnQpOiBOZXcgZnVuY3Rpb25zLgoJKGV4cGFuZF9hX3NoaWZ0LCBleHBhbmRfYV9yb3RhdGUpOiBFbWl0IG5vdGhpbmcgaWYgdGhlIHNoaWZ0IGlzIGEKCXNpbmdsZSBoOHN4IGluc3RydWN0aW9uLiAgUmV0dXJuIGZhbHNlIGluIHRoaXMgY2FzZS4KCSogY29uZmlnL2g4MzAwL2g4MzAwLm1kIChsZW5ndGhfdGFibGUpOiBBZGQgc2hvcnRfaW1tZWRpYXRlLgoJKGxlbmd0aCk6IFBhc3MgdGhlIG9wZXJhbmQgYXJyYXkgdG8gaDgzMDBfaW5zbl9sZW5ndGhfZnJvbV90YWJsZS4KCShhZGp1c3RfbGVuZ3RoKTogQXNzdW1lICJubyIgZm9yIGluc25zIHdpdGggYSBsZW5ndGhfdGFibGUgYXR0cmlidXRlLgoJKCpjbXBoaV9oODMwMGhzLCBjbXBzaSk6IEFkZCBhbHRlcm5hdGl2ZXMgZm9yICN4eDozLgoJKCphZGRoaTNfaDgzMDBocyk6IERvbid0IHVzZSBmb3IgaDhzeC4KCSgqYWRkaGkzX2g4c3gpOiBOZXcgcGF0dGVybiwgd2l0aCBhbHRlcm5hdGl2ZXMgZm9yIGFkZC53ICN4eDozCglhbmQgc3ViLncgI3h4OjMuCgkoYXNobFtxaHNdaTMsIGxzaHJbcWhzXWkzLCBhc2hyW3Foc11pMywgcm90bFtxaHNdaTMpOiBDaGFuZ2Ugb3BlcmFuZAoJMSdzIHByZWRpY2F0ZSB0byBub25pbW1lZGlhdGVfb3BlcmFuZC4gIE9ubHkgc2tpcCBkZWZhdWx0IGV4cGFuc2lvbgoJaWYgZXhwYW5kX2Ffc2hpZnQgb3IgZXhwYW5kX2Ffcm90YXRlIHJldHVybnMgdHJ1ZS4gIEFkZCBuZXcgcGF0dGVybnMKCWZvciBzaW5nbGUgaDhzeCBzaGlmdCBpbnN0cnVjdGlvbnMuCgkyMDAzLTA1LTIyICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KCSogY29uZmlnL2g4MzAwL2g4MzAwLmMgKG5pYmJsZV9vcGVyYW5kKTogU3BsaXQgb3V0IG9mLi4uCgkocmVnX29yX25pYmJsZV9vcGVyYW5kKTogLi4uIHRoaXMuCgkqIGNvbmZpZy9oODMwMC9oODMwMC5oIChQUkVESUNBVEVfQ09ERVMpOiBBZGRlZCBuaWJibGVfb3BlcmFuZC4KCSogY29uZmlnL2g4MzAwL2g4MzAwLm1kOiAobXVscWloaTMsIG11bGhpc2kzLCB1bXVscWloaTMsCgl1bXVsaGlzaTMpOiBJbnRyb2R1Y2UgZXhwYW5kLCBhbmQgaW50cm9kdWNlIHNlcGFyYXRlIGluc25zIGZvcgoJc2lnbi0gb3IgemVyby1leHRlbmRlZCBSRUcgYW5kIGFscmVhZHktZXh0ZW5kZWQgQ09OU1RfSU5ULgoJMjAwMy0wNS0yMCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAoaDgzMDBfdW5hcnlfbGVuZ3RoKTogRml4IG1pc2NvdW50aW5nLgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQgKHN1YnFpMyk6IEdlbmVyYWxpemUgZm9yIGg4c3guCgkoc3ViaGkzKTogTGlrZXdpc2UuICBEb24ndCBhY2NlcHQgaW1tZWRpYXRlcyBmb3Igb3BlcmFuZCAxLgoJUmVtb3ZlIHRoZSBlYXJseSBjbG9iYmVyIGZyb20gc2Vjb25kIGFsdGVybmF0aXZlIG9mIHRoZSBoODMwMHMgcGF0dGVybi4KCShzdWJzaTMpOiBHZW5lcmFsaXplIGZvciBoOHN4LiAgRm9yY2Ugb3BlcmFuZCAyIGludG8gYSByZWdpc3RlcgoJb24gcGxhaW4gaDgzMDAgdGFyZ2V0cy4KCShzdWJzaTNfaDgzMDApOiBVc2UgaDgzMDBfZHN0X29wZXJhbmQgZm9yIGNvbnNpc3RlbmN5IHdpdGggZXhwYW5kZXIuCgkoc3Vic2kzX2g4MzAwaCk6IEdlbmVyYWxpemUgZm9yIGg4c3guCgkob25lX2NtcGxxaTIsIG9uZV9jbXBsaGkyLCBvbmVfY21wbHNpMik6IExpa2V3aXNlLgoJMjAwMy0wNS0xOSAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9oODMwMC9oODMwMC5jIChyZWdfb3JfbmliYmxlX29wZXJhbmQpOiBOZXcuCgkqIGNvbmZpZy9oODMwMC9oODMwMC5oIChQUkVESUNBVEVfQ09ERVMpOiBBZGp1c3QuCgkoVEFSR0VUX0g4MzAwU1hNVUwpOiBOZXcuCgkoQ09OU1RfT0tfRk9SX1ApOiBOZXcuCgkoQ09OU1RfT0tfRk9SX0xFVFRFUl9QKTogQWRqdXN0LgoJKiBjb25maWcvaDgzMDAvaDgzMDAubWQgKG11bHFpaGkzLCBtdWxoaXNpMywgdW11bHFpaGkzLAoJdW11bGhpc2kzKTogQWNjZXB0IDQtYml0IGltbWVkaWF0ZSBvbiBIOFNYLgoJKG11bGhpMywgbXVsc2kzLCBzbXVsc2kzX2hpZ2hwYXJ0LCB1bXVsc2kzX2hpZ2hwYXJ0KTogTmV3LgoJKHVkaXZzaTMsIGRpdmhpMywgdWRpdnNpMywgZGl2c2kzKTogTmV3LgoJMjAwMy0wNS0xOSAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoJKiBjb25maWcvaDgzMDAvaDgzMDAtcHJvdG9zLmggKGg4MzAwX2luc25fbGVuZ3RoX2Zyb21fdGFibGUpOiBEZWNsYXJlLgoJKiBjb25maWcvaDgzMDAvaDgzMDAuaCAoT0tfRk9SX1EpOiBOZXcgbWFjcm8uCgkoRVhUUkFfQ09OU1RSQUlOVCk6IFVzZSBpdCB0byBjaGVjayB0aGUgJ1EnIGNvbnN0cmFpbnQuCgkoUFJFRElDQVRFX0NPREVTKTogQWRkIGg4MzAwX3NyY19vcGVyYW5kIGFuZCBoODMwMF9kc3Rfb3BlcmFuZC4KCUFkZCBBRERSRVNTT0YgdG8gdGhlIGJpdF9vcGVyYW5kIGVudHJ5LgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAoaDgzMDBfZHN0X29wZXJhbmQpOiBOZXcgcHJlZGljYXRlLgoJKGg4MzAwX3NyY19vcGVyYW5kKTogTGlrZXdpc2UuCgkoYml0X29wZXJhbmQpOiBDaGVjayBub25pbW1lZGlhdGVfb3BlcmFuZCByYXRoZXIgdGhhbiBnZW5lcmFsX29wZXJhbmQuCglBY2NlcHQgYW55IG5vbmltbWVkaWF0ZV9vcGVyYW5kIGluIGg4c3ggY29kZS4KCShoODMwMF9hbmRfY29zdHMpOiBJbml0aWFsaXplIG9wZXJhbmRzWzFdLgoJKGg4MzAwX3J0eF9jb3N0cykgPEFORD46IFJldHVybiBmYWxzZSBpZiB0aGUgb3BlcmFuZHMgYXJlbid0IHZhbGlkLgoJKGg4MzAwX29wZXJhbmRfY2xhc3MpOiBOZXcgZW51bS4KCShoODMwMF9sZW5ndGhfdGFibGUpOiBOZXcgdHlwZWRlZi4KCShhZGRiX2xlbmd0aF90YWJsZSwgYWRkd19sZW5ndGhfdGFibGUsIGFkZGxfbGVuZ3RoX3RhYmxlLAoJbG9naWNsX2xlbmd0aF90YWJsZSk6IE5ldyB0YWJsZXMuCgkobG9naWNiX2xlbmd0aF90YWJsZSwgbG9naWN3X2xlbmd0aF90YWJsZSk6IE5ldyBtYWNyb3MuCgkoaDgzMDBfY2xhc3NpZnlfb3BlcmFuZCwgaDgzMDBfbGVuZ3RoX2Zyb21fdGFibGUsCgloODMwMF9sZW5ndGhfdGFibGVfZm9yX2luc24sIGg4MzAwX3VuYXJ5X2xlbmd0aCwKCWg4MzAwX2luc25fbGVuZ3RoX2Zyb21fdGFibGUpOiBOZXcgZnVuY3Rpb25zLgoJKG91dHB1dF9wbHVzc2kpOiBPbmx5IHVzZSBhZGRzIGFuZCBzdWJzIGZvciByZWdpc3RlciBkZXN0aW5hdGlvbnMuCglEaXNhYmxlIHJlZHVuZGFudCBjbGF1c2UuCgkoY29tcHV0ZV9wbHVzc2lfY2MpOiBMaWtld2lzZS4KCShjb21wdXRlX3BsdXNzaV9sZW5ndGgpOiBMaWtld2lzZS4gIFVzZSBoODMwMF9sZW5ndGhfZnJvbV90YWJsZQoJdG8gd29yayBvdXQgdGhlIGxlbmd0aCBvZiBhbiBpbnNuLgoJKG91dHB1dF9sb2dpY2FsX29wKTogT25seSB1c2UgbmFycm93ZXIgaW1tZWRpYXRlIGluc3RydWN0aW9ucwoJaWYgdGhlIGRlc3RpbmF0aW9uIGlzIGEgcmVnaXN0ZXIuCgkoY29tcHV0ZV9sb2dpY2FsX29wX2NjKTogTGlrZXdpc2UuCgkoY29tcHV0ZV9sb2dpY2FsX29wX2xlbmd0aCk6IExpa2V3aXNlLiAgVXNlIGg4MzAwX2xlbmd0aF9mcm9tX3RhYmxlLgoJKGg4MzAwX2FkanVzdF9pbnNuX2xlbmd0aCk6IFRpZ2h0ZW4gY2hlY2sgZm9yIHJlZzwtPm1lbSBtb3Zlcy4KCSogY29uZmlnL2g4MzAwL2g4MzAwLm1kIChsZW5ndGhfdGFibGUpOiBOZXcgYXR0cmlidXRlLgoJKGxlbmd0aCk6IFdoZW4gYW4gaW5zdHJ1Y3Rpb24gaGFzIGEgbGVuZ3RoX3RhYmxlIGF0dHJpYnV0ZSwgdXNlCgloODMwMF9pbnNuX2xlbmd0aF9mcm9tX3RhYmxlIHRvIGNhbGN1bGF0ZSBpdHMgZGVmYXVsdCBsZW5ndGguCgkoY21wcWkpOiBVc2UgaDgzMDBfZHN0X29wZXJhbmQgZm9yIHRoZSBmaXJzdCBvcGVyYW5kIGFuZAoJaDgzMDBfc3JjX29wZXJhbmQgZm9yIHRoZSBzZWNvbmQuCgkoY21waGksICpjbXBoaV9oODMwMGhzLCBjbXBzaSwgbmVncWkyLCBuZWdoaTIsIG5lZ2hpMl9oODMwMGgsIG5lZ3NpMiwKCW5lZ3NpMl9oODMwMGgsIGFkZHFpMywgYWRkaGkzLCAqYWRkaGkzX2g4MzAwLCAqYWRkaGkzX2g4MzAwaHMsIGFkZHNpMywKCWFkZHNpX2g4MzAwLCBhZGRzaV9oODMwMGgsIGFuZGhpMywgYW5kc2kzLCBpb3JoaTMsCglpb3JzaTMsIHhvcmhpMywgeG9yc2kzKTogTGlrZXdpc2UuCgkoYW5kcWkzKTogVXNlIGg4MzAwX3NyY19vcGVyYW5kIGZvciBvcGVyYW5kIDIuICBBZGp1c3QgdGhlIGNvbmRpdGlvbgoJc28gdGhhdCBpdCBhbGxvd3MgYW55IGNvbWJpbmF0aW9uIG9mIG9wZXJhbmRzIGZvciBUQVJHRVRfSDgzMDBTWC4KCShpb3JxaTMsIHhvcnFpMyk6IExpa2V3aXNlLgoJKGNtcHFpKTogVXNlIHRoZSBsZW5ndGhfdGFibGUgYXR0cmlidXRlLgoJKCpjbXBoaV9oODMwMGhzLCBjbXBzaSwgYWRkcWksICphZGRoaTNfaDgzMDBocywgYW5kcWkzLCBpb3JxaTMsCgl4b3JxaTMsIG5lZ3FpMiwgbmVnaGkyX2g4MzAwaCwgbmVnc2kyX2g4MzAwaCk6IExpa2V3aXNlLgoJKGNtcHFpKTogQWRkICdRJyBjb25zdHJhaW50LgoJKCpjbXBoaV9oODMwMGhzLCBjbXBzaSwgYWRkcWksICphZGRoaTNfaDgzMDBocywgYWRkc2lfaDgzMDBoLCBhbmRxaTMsCglpb3JxaTMsIHhvcnFpMywgbmVncWkyLCBuZWdoaTJfaDgzMDBoLCBuZWdzaTJfaDgzMDBoKTogTGlrZXdpc2UuCgkyMDAzLTA1LTE0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9oODMwMC9oODMwMC5oIChNQVNLX0g4MzAwU1gpOiBOZXcgbWFjcm8uCgkoVEFSR0VUX0g4MzAwUyk6IFRydWUgZm9yIGJvdGggLW1zIGFuZCAtbXN4LgoJKFRBUkdFVF9IODMwMFNYKTogTmV3IG1hY3JvLgoJKFRBUkdFVF9TV0lUQ0hFUyk6IEFkZCBlbnRyaWVzIGZvciAtbXN4IGFuZCAtbW5vLXN4LgoJKiBjb25maWcvaDgzMDAvaDgzMDAuYyAoYXNtX2ZpbGVfc3RhcnQpOiBXcml0ZSAuaDgzMDBzeCBmb3IgLW1zeC4KCSogY29uZmlnL2g4MzAwL2VsZi5oIChMSU5LX1NQRUMpOiBVc2UgLW0gaDgzMDBzeGVsZiBmb3IgLW1zeC4KCSogY29uZmlnL2g4MzAwL3QtaDgzMDAgKE1VTFRJTElCX01BVENIRVMpOiBVc2UgLW1zIG11bHRpbGlicyBmb3IgLW1zeC4KCVtUZW1wb3JhcnkgY2hhbmdlLl0KCTIwMDMtMDItMjggIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoJKiBjb25maWcvaDgzMDAvaDgzMDAuaCAoU0laRV9UWVBFLCBQVFJESUZGX1RZUEUpOiBVc2Ugc2hvcnQgd2l0aAoJMTYtYml0IHBvaW50ZXJzIGFuZCAzMi1iaXQgaW50cy4KCSogY29uZmlnL2g4MzAwL2g4MzAwLmggKExFR0lUSU1BVEVfQ09OU1RBTlRfUCk6IEFjY2VwdAoJQ09OU1RfRE9VQkxFIHdpdGggbW9kZSBubyB3aWRlciB0aGFuIFNJbW9kZS4KCSogY29uZmlnL2g4MzAwL2g4MzAwLm1kIChleHRlbmRxaXNpMl9oODMwMCk6IEFkZCBjb25zdHJhaW50cyBmb3IKCW91dHB1dCBvcGVyYW5kLgoJMjAwMy0wMi0yNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9oODMwMC9oODMwMC5jIChnZW5lcmFsX29wZXJhbmRfc3JjKTogTWF0Y2ggQ09OU1RBTlRfUF9SVFgKCW9yIFNVQlJFRyB0aGVyZW9mLgoJKiBjb25maWcvaDgzMDAvaDgzMDAuaCAoUFJFRElDQVRFX0NPREVTKTogQWRqdXN0LgoJMjAwMy0wMi0yMiAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgkqIGNvbmZpZy9oODMwMC9oODMwMC5jIChkb3NpemUpOiBUcnVuY2F0ZSBzaWduICogc2l6ZSB0byBQbW9kZS4KCjIwMDQtMDUtMjggIEFhcm9uIFcuIExhRnJhbWJvaXNlIDxhYXJvbnJhb2xldGUzNkBhYXJvbndsLmNvbT4KCgkqIGNvbmZpZy5nY2MgKGlbMzQ1NjddODYtKi1taW5ndzMyKik6IEVuYWJsZSB0aHJlYWRzIGJ5IGRlZmF1bHQuCgoyMDA0LTA3LTA3ICBQZXIgQm90aG5lciAgPHBlckBib3RobmVyLmNvbT4KCgkqIGZsb3cuYyAoYXR0ZW1wdF9hdXRvX2luYyk6ICBSZW1vdmUgbm93LXJlZHVuZGFudCBQVVRfQ09ERS4KCjIwMDQtMDctMDcgIE1pa2UgU3R1bXAgIDxtcnNAYXBwbGUuY29tPgoKCSogZGFyd2luLmggKEFTTV9PVVRQVVRfTEFCRUxSRUYpOiBGaXggLWZuby1sZWFkaW5nLXVuZGVyc2NvcmUuCgkqIGRhcndpbi5jIChtYWNob3BpY19ub25fbGF6eV9wdHJfbmFtZSwgbWFjaG9waWNfc3R1Yl9uYW1lKQoJKG1hY2hvcGljX2ZpbmlzaCk6IExpa2V3aXNlLgoKMjAwNC0wNy0wNyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWRvbS5jIChzaW1wbGlmeV9zd2l0Y2hfYW5kX2xvb2t1cF9hdmFpbF9leHByKTogTG9vawoJdGhyb3VnaCBhbnkgdmFsdWUtcHJlc2VydmluZyBjYXN0LgoKMjAwNC0wNy0wNyAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+CgoJKiBmdW5jdGlvbi5jIChhc3NpZ25fcGFybV9maW5kX2RhdGFfdHlwZXMpOiBDYWxsCglGVU5DVElPTl9BUkdfUEFTU19CWV9SRUZFUkVOQ0Ugb25seSBpZiBpdCdzIGRlZmluZWQuCgoyMDA0LTA3LTA3ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiB0cmVlLWNmZy5jIChncm91cF9jYXNlX2xhYmVscyk6IFJlbW92ZSBjYXNlIGxhYmVscyB0aGF0IGhhdmUKCXRoZSBzYW1lIHRhcmdldCBhcyB0aGUgZGVmYXVsdCBjYXNlLgoKMjAwNC0wNy0wNyAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogdHJlZS1pbmxpbmUuYyAob3B0aW1pemVfaW5saW5lX2NhbGxzKTogU2V0IERFQ0xfSU5MSU5FRF9GTlMKCXJlZ2FyZGxlc3Mgb2YgREVDTF9MQU5HX1NQRUNJRklDIGJlaW5nIHByZXNlbnQgb3Igbm90LgoJKiB0cmVlLmggKERFQ0xfTlVNX1NUTVRTKTogUHVyZ2UuCgoyMDA0LTA3LTA3ICBBbmRyZXcgUGluc2tpICA8YXBpbnNraUBhcHBsZS5jb20+CgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUgd2l0aCB0aGUgcmlnaHQgYXV0b2NvbmYuCgoyMDA0LTA3LTA3ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CgoJKiBpZmN2dC5jICh0b3RhbF9iYl9ydHhfY29zdCk6IE5ldyBmdW5jdGlvbi4KCShmaW5kX2lmX2Nhc2VfMSk6IENvbXBhcmUgcnR4X2Nvc3Qgb2YgYmFzaWMgYmxvY2sgdG8gY29zdCBvZgoJQlJBTkNIX0NPU1QgaW5zbnMuCgkoZmluZF9pZl9jYXNlXzIpOiBTYW1lLgoKMjAwNC0wNy0wNyAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBsaWJlcnR5c3VyZi5mcj4KCglQUiB0YXJnZXQvMTA1NjcKCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKGxvYWRfcGljX3JlZ2lzdGVyKTogSG9ub3IgZmxhZ19kZWxheWVkX2JyYW5jaC4KCShvdXRwdXRfcmV0dXJuKTogTGlrZXdpc2UuCgkob3V0cHV0X3NpYmNhbGwpOiBBYm9ydCBpZiAhZmxhZ19kZWxheWVkX2JyYW5jaC4KCShzcGFyY19mdW5jdGlvbl9va19mb3Jfc2liY2FsbCk6IFJldHVybiAwIGlmICFmbGFnX2RlbGF5ZWRfYnJhbmNoLgoJKGVtaXRfYW5kX3ByZXNlcnZlKTogTmV3IGZ1bmN0aW9uLgoJKHNwYXJjX291dHB1dF9taV90aHVuayk6IFVzZSBpdC4gIEhvbm9yIGZsYWdfZGVsYXllZF9icmFuY2guICBFbWl0IGFuCglpbmRpcmVjdCBqdW1wIHRvIHRoZSB0aHVua2VkLXRvIGZ1bmN0aW9uIGlmICFmbGFnX2RlbGF5ZWRfYnJhbmNoLgoJKiBjb25maWcvc3BhcmMvc3BhcmMubWQgKGRlbGF5ZWRfYnJhbmNoKTogTmV3IGF0dHJpYnV0ZS4KCShsb2FkX3BjcmVsX3N5bSk6IEhvbm9yIGZsYWdfZGVsYXllZF9icmFuY2guICBVc2UgYWJvdmUKCWF0dHJpYnV0ZSB0byBjb21wdXRlIHRoZSBsZW5ndGggb2YgdGhlIGluc24uCgkoZ290b19oYW5kbGVyX2FuZF9yZXN0b3JlKTogTGlrZXdpc2UuCgoyMDA0LTA3LTA3ICBBbmRyZXcgUGluc2tpICA8YXBpbnNraUBhcHBsZS5jb20+CgoJUFIgdHJlZS1vcHRpbWl6YXRpb24vMTU3NzcKCSogZm9sZC1jb25zdC5jIChmb2xkX3NpbmdsZV9iaXRfdGVzdCk6IEZvbGQgdGhlIHheMSBleHByZXNzaW9uLgoKCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEpOiBGaXggZm9ybWF0aW5nLgoJQlVGRkVSX1JFRiBhbmQgSU5fRVhQUiBhcmUgZGVhZC4KCSogZm9sZC1jb25zdC5jIChub25fbHZhbHVlKTogQlVGRkVSX1JFRiBpcyBkZWFkLgoJKiB0cmVlLWlubGluZS5jIChlc3RpbWF0ZV9udW1faW5zbnNfMSk6IExpa2V3aXNlLgoJKiB0cmVlLXByZXR0eS1wcmludC5jIChkdW1wX2dlbmVyaWNfbm9kZSk6IEJVRkZFUl9SRUYsCglJTl9FWFBSLCBTRVRfTEVfRVhQUiwgYW5kIENBUkRfRVhQUiBhcmUgZGVhZC4KCSogdHJlZS5kZWYgKEJVRkZFUl9SRUYsIElOX0VYUFIsIFNFVF9MRV9FWFBSLCBDQVJEX0VYUFIpOiBLaWxsLgoKMjAwNC0wNy0wNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogY29sbGVjdDIuYyAoZHVtcF9maWxlKTogRG9uJ3QgY2FsbCBjcGx1c19kZW1hbmdsZSBpZgoJSEFWRV9MRF9ERU1BTkdMRSBpcyBkZWZpbmVkLgoJKG1haW4pOiBQYXNzICItLWRlbWFuZ2xlIiB0byBsZCBpZiBub19kZW1hbmdsZSBpcyBub3QgMCBhbmQKCUhBVkVfTERfREVNQU5HTEUgaXMgZGVmaW5lZC4gRG9uJ3Qgc2V0IGN1cnJlbnRfZGVtYW5nbGluZ19zdHlsZQoJaWYgSEFWRV9MRF9ERU1BTkdMRSBpcyBkZWZpbmVkLgoKCSogY29uZmlndXJlLmFjICgtLXdpdGgtZGVtYW5nbGVyLWluLWxkKTogQWRkZWQKCShIQVZFX0xEX0RFTUFOR0xFKTogRGVmaW5lIGlmIGxkIHN1cHBvcnRzIC0tZGVtYW5nbGUgd2hlbgoJLS13aXRoLWRlbWFuZ2xlci1pbi1sZCBpcyB1c2VkLgoJKiBjb25maWcuaW46IFJlZ2VuZXJhdGVkLgoJKiBjb25maWd1cmU6IExpa2V3aXNlLgoKMjAwNC0wNy0wNyAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChzdHJ1Y3QgcHJvY2Vzc29yX2Nvc3RzKTogQWRkIG5ldyBmaWVsZHMKCWZvciBzaW1wbGUgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyAiZnAiLCBkb3VibGUgcHJlY2lzaW9uCgltdWx0aXBsaWNhdGlvbiAiZG11bCIsIGFuZCBzaW5nbGUgYW5kIGRvdWJsZSBwcmVjaXNpb24gZGl2aXNpb24KCSJzZGl2IiBhbmQgImRkaXYiLiAgVXBkYXRlIGFsbCBDUFUgdmFyaWFudCB0YWJsZXMgYXMgYXBwcm9wcmlhdGUuCgkocHBjNjMwX2Nvc3QpOiBOZXcgdGFibGUgc3BsaXQgZnJvbSBwcGM2MjBfY29zdCwgdG8gZGlzdGluZ3Vpc2gKCWRpZmZlcmVuY2VzIGluIGZsb2F0aW5nIHBvaW50IGxhdGVuY2llcy4KCShyczYwMDBfb3ZlcnJpZGVfb3B0aW9ucyk6IFVzZSBwcGM2MzBfY29zdCBmb3IgUFJPQ0VTU09SX1BQQzYzMC4KCShyczYwMDBfcnR4X2Nvc3RzKTogQWRkIHN1cHBvcnQgZm9yIHNpbmdsZSBhbmQgZG91YmxlIHByZWNpc2lvbgoJZmxvYXRpbmcgcG9pbnQgYWRkaXRpb24sIHN1YnRyYWN0aW9uLCBtdWx0aXBsaWNhdGlvbiwgZGl2aXNpb24sCglmdXNlZC1tdWx0aXBseS1hZGQsIGZ1c2VkLW11bHRpcGx5LXN1YiwgbmVnYXRpb24sIGFic29sdXRlIHZhbHVlCglhbmQgbmVnYXRpdmUgYWJzb2x1dGUgdmFsdWUuICBUd2VhayBNRU0gY2FzZSB0byB1c2UgcHJlZmVyZWQgaWRpb20uCgoyMDA0LTA3LTA3ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdHJlZS1mbG93LWlubGluZS5oIChtYXlfcHJvcGFnYXRlX2NvcHkpOiBNb3ZlLi4uCgkqIHRyZWUtc3NhLWNvcHkuYyAobWF5X3Byb3BhZ2F0ZV9jb3B5KTogLi4uIGhlcmUuICBGYWlsIGlmIHdlCglhdHRlbXB0IHRvIGNvcHkgYmV0d2VlbiB0eXBlcyByZXF1aXJpbmcgY29udmVyc2lvbi4KCSogdHJlZS1mbG93LmggKG1heV9wcm9wYWdhdGVfY29weSk6IFVwZGF0ZSBkZWNsLgoJKiB0cmVlLXNzYS1kb20uYyAoY3Byb3Bfb3BlcmFuZCk6IFRpZHkgcmVkdW5kYW50IHRlc3RzLgoKMjAwNC0wNy0wNyAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+CgoJKiBjb25maWcvaTM4Ni9pMzg2LmMgKG92ZXJyaWRlX29wdGlvbnMpOiBEb24ndCBzZXQgeDg2X3ByZWZldGNoX3NzZQoJZnJvbSAtbXR1bmU9IG9wdGlvbi4KCjIwMDQtMDctMDcgIEFsZXhhbmRyZSBPbGl2YSAgPGFvbGl2YUByZWRoYXQuY29tPgoKCSogYnVpbHRpbnMuYzogUmVuYW1lIG1vdnN0ciosIGV4Y2VwdCBmb3IgbW92c3RyaWN0KiwgdG8KCW1vdm1lbSogYW5kIGNscnN0ciogdG8gY2xybWVtKi4KCSogZXhwci5jOiBMaWtld2lzZS4KCSogZXhwci5oOiBMaWtld2lzZS4KCSogZ2Vub3Bpbml0LmM6IExpa2V3aXNlLgoJKiBpbnRlZ3JhdGUuYzogTGlrZXdpc2UuCgkqIGxvY2FsLWFsbG9jLmM6IExpa2V3aXNlLgoJKiBvcHRhYnMuYzogTGlrZXdpc2UuCgkqIG9wdGFicy5oOiBMaWtld2lzZS4KCSogY29uZmlnL2FscGhhL2FscGhhLmg6IExpa2V3aXNlLgoJKiBjb25maWcvYWxwaGEvYWxwaGEubWQ6IExpa2V3aXNlLgoJKiBjb25maWcvYXJtL2FybS1wcm90b3MuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9hcm0vYXJtLmM6IExpa2V3aXNlLgoJKiBjb25maWcvYXJtL2FybS5tZDogTGlrZXdpc2UuCgkqIGNvbmZpZy9hdnIvYXZyLm1kOiBMaWtld2lzZS4KCSogY29uZmlnL2M0eC9jNHguYzogTGlrZXdpc2UuCgkqIGNvbmZpZy9jNHgvYzR4Lm1kOiBMaWtld2lzZS4KCSogY29uZmlnL2Zydi9mcnYubWQ6IExpa2V3aXNlLgoJKiBjb25maWcvaTM4Ni9pMzg2LXByb3Rvcy5oOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvaTM4Ni5jOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvaTM4Ni5oOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvaTM4Ni5tZDogTGlrZXdpc2UuCgkqIGNvbmZpZy9pODYwL2k4NjAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy9pODYwL2k4NjAubWQ6IExpa2V3aXNlLgoJKiBjb25maWcvaXAyay9pcDJrLm1kOiBMaWtld2lzZS4KCSogY29uZmlnL2lwMmsvbGliZ2NjLlM6IExpa2V3aXNlLgoJKiBjb25maWcvaXAyay90LWlwMms6IExpa2V3aXNlLgoJKiBjb25maWcvbTMyci9tMzJyLmM6IExpa2V3aXNlLgoJKiBjb25maWcvbTMyci9tMzJyLm1kOiBMaWtld2lzZS4KCSogY29uZmlnL21jb3JlL21jb3JlLm1kOiBMaWtld2lzZS4KCSogY29uZmlnL21pcHMvbWlwcy5jOiBMaWtld2lzZS4KCSogY29uZmlnL21pcHMvbWlwcy5tZDogTGlrZXdpc2UuCgkqIGNvbmZpZy9uczMyay9uczMyay5jOiBMaWtld2lzZS4KCSogY29uZmlnL25zMzJrL25zMzJrLmg6IExpa2V3aXNlLgoJKiBjb25maWcvbnMzMmsvbnMzMmsubWQ6IExpa2V3aXNlLgoJKiBjb25maWcvcGEvcGEuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy9wYS9wYS5tZDogTGlrZXdpc2UuCgkqIGNvbmZpZy9wZHAxMS9wZHAxMS5oOiBMaWtld2lzZS4KCSogY29uZmlnL3BkcDExL3BkcDExLm1kOiBMaWtld2lzZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLm1kOiBMaWtld2lzZS4KCSogY29uZmlnL3MzOTAvczM5MC1wcm90b3MuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy9zMzkwL3MzOTAuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy9zMzkwL3MzOTAubWQ6IExpa2V3aXNlLgoJKiBjb25maWcvc2gvbGliMWZ1bmNzLmFzbTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zaC9zaC5jOiBMaWtld2lzZS4KCSogY29uZmlnL3NoL3NoLm1kOiBMaWtld2lzZS4KCSogY29uZmlnL3NoL3Qtc2g6IExpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvc3BhcmMuaDogTGlrZXdpc2UuCgkqIGNvbmZpZy92YXgvdmF4Lm1kOiBMaWtld2lzZS4KCSogY29uZmlnL3h0ZW5zYS94dGVuc2EuYzogTGlrZXdpc2UuCgkqIGNvbmZpZy94dGVuc2EveHRlbnNhLm1kOiBMaWtld2lzZS4KCSogZG9jL2ludm9rZS50ZXhpOiBMaWtld2lzZS4KCSogZG9jL21kLnRleGk6IExpa2V3aXNlLgoJKiBkb2MvcnRsLnRleGk6IExpa2V3aXNlLgoKMjAwNC0wNy0wNyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCVBSIHRhcmdldC8xNjQwNwoJKiBjb25maWcvbWlwcy9taXBzLXByb3Rvcy5oIChtaXBzX2RlY2xhcmVfY29tbW9uX29iamVjdCk6IERlY2xhcmUuCgkqIGNvbmZpZy9taXBzL21pcHMuYyAobWlwc19kZWNsYXJlX2NvbW1vbl9vYmplY3QpOiBOZXcgZnVuY3Rpb24sCgltb3N0bHkgc3BsaXQgb3V0IGZyb20uLi4KCShtaXBzX291dHB1dF9hbGlnbmVkX2RlY2xfY29tbW9uKTogLi4uaGVyZS4KCSogY29uZmlnL21pcHMvbWlwcy5oIChBU01fT1VUUFVUX0xPQ0FMKTogUmVtb3ZlIGluIGZhdm9yIG9mLi4uCgkoQVNNX09VVFBVVF9BTElHTkVEX0xPQ0FMKTogLi4udGhpcyBuZXcgZGVmaW5pdGlvbi4KCSogY29uZmlnL21pcHMvaXJpczYuaCAoQVNNX09VVFBVVF9BTElHTkVEX0xPQ0FMKTogVW5kZWZpbmUgdGhpcwoJcmF0aGVyIHRoYW4gQVNNX09VVFBVVF9MT0NBTC4gIENhbGwgbWlwc19kZWNsYXJlX2NvbW1vbl9vYmplY3QuCgoyMDA0LTA3LTA3ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCVBSIGMvMTYzOTIKCSogZnVuY3Rpb24uYyAoYXNzaWduX3Bhcm1zKTogRml4IHR5cG8gZnJvbSBwcmV2aW91cyBjaGFuZ2UuCgoyMDA0LTA3LTA3ICBKYXNvbiBNZXJyaWxsICA8amFzb25AcmVkaGF0LmNvbT4KCglQUiBjKysvMTU4MTUKCSogZG9jL2V4dGVuZC50ZXhpIChDKysgSW50ZXJmYWNlKTogQ29ycmVjdCBpbmZvcm1hdGlvbiBhbmQKCWRpc2NvdXJhZ2UgdXNlLgoKMjAwNC0wNy0wNyAgVmxhZGltaXIgTWFrYXJvdiAgPHZtYWthcm92QHJlZGhhdC5jb20+CgoJUFIgdGFyZ2V0LzE2MTMwCglQUiB0YXJnZXQvMTYxNDIKCVBSIHRhcmdldC8xNjE0MwoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfZGZhX25ld19jeWNsZSk6IFJlc2V0IERGQSBzdGF0ZSBmb3IgYXNtCglpbnNuLgoKMjAwNC0wNy0wNiAgS2F6dWhpcm8gSW5hb2thICA8aW5hb2thLmthenVoaXJvQHJlbmVzYXMuY29tPgoKCVBSIHRhcmdldC8xNjc5LgoJKiBjb25maWcvbTMyci9tMzJyLmMgKG0zMnJfZnVuY3Rpb25fc3ltYm9sKTogTmV3IGZ1bmN0aW9uOgoJR2VuZXJhdGUgYSBzeW1ib2wgbmFtZSBSVFggd2l0aCB0aGUgY29ycmVjdCBtMzJyIHNwZWNpZmljIGZsYWdzCglzZXQuCgkoYmxvY2tfbW92ZV9jYWxsKTogVXNlIG5ldyBmdW5jdGlvbiB0byBnZW5lcmF0ZSBjb3JyZWN0IHN5bWJvbC4KCSogY29uZmlnL20zMnIvbTMyci1wcm90b3MuaDogQWRkIHByb3RvdHlwZSBmb3IgbmV3IGZ1bmNpb24uCgkqIGNvbmZpZy9tMzJyL20zMnIuaCAoSU5JVElBTElaRV9UUkFNUE9MSU5FKTogVXNlIHRoZSBuZXcKCWZ1bmN0aW9uLgoKMjAwNC0wNy0wNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHRyZWUuaCAoVFlQRV9CSU5GT19PRkZTRVQsIFRZUEVfQklORk9fVlRBQkxFLAoJVFlQRV9CSU5GT19WSVJUVUFMUywgVFlQRV9CSU5GT19CQVNFVFlQRVMsCglUWVBFX0JJTkZPX0JBU0VUWVBFKTogUmVtb3ZlLgoJKEJJTkZPX0JBU0VUWVBFUywgQklORk9fTl9CQVNFVFlQRVMsIEJJTkZPX0JBU0VUWVBFKTogUmVuYW1lCgl0byAuLi4KCShCSU5GT19CQVNFX0JJTkZPUywgQklORk9fTl9CQVNFX0JJTkZPUywgQklORk9fQkFTRV9CSU5GTyk6IC4uLgoJaGVyZS4KCShCSU5GT19CQVNFQUNDRVNTRVMsIEJJTkZPX0JBU0VBQ0NFU1MpOiBSZW5hbWUgdG8gLi4uCgkoQklORk9fQkFTRV9BQ0NFU1NFUywgQklORk9fQkFTRV9BQ0NFU1MpOiAuLi4gaGVyZS4KCShCSU5GT19JTkhFUklUQU5DRV9DSEFJTik6IFJlZG9jdW1lbnQgYXMgaXQgaXMgYWN0dWFsbHkgdXNlZC4KCShzdHJ1Y3QgdHJlZV9iaW5mbyk6IFJlbmFtZSBiYXNlX3R5cGVzIHRvIGJhc2VfYmluZm9zLgoJKiBhbGlhcy5jIChyZWNvcmRfY29tcG9uZW50X2FsaWFzZXMpOiBBZGp1c3QgQklORk8gbWFjcm9zLgoJKiBkYnhvdXQuYyAoZGJ4b3V0X3R5cGUpOiBMaWtld2lzZS4KCSogZHdhcmYyb3V0LmMgKGdlbl9tZW1iZXJfZGllKTogTGlrZXdpc2UuCgkqIHNkYm91dC5jIChzZGJvdXRfb25lX3R5cGUpOiBMaWtld2lzZS4KCSogdHJlZS1kdW1wLmMgKGRlcXVlX2FuZF9kdW1wKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoY2xhc3NpZnlfYXJndW1lbnQsCgljb250YWluc18xMjhiaXRfYWxpZ25lZF92ZWN0b3JfcCk6IExpa2V3aXNlLgoKMjAwNC0wNy0wNyAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9mcjMwL2ZyMzAuYyAoZnIzMF9zZXR1cF9pbmNvbWluZ192YXJhcmdzKTogQ2hhbmdlCglhcmd1bWVudHMgdG8gbWF0Y2ggVEFSR0VUX1NFVFVQX0lOQ09NSU5HX1ZBUkFSR1MgcHJvdG90eXBlLgoKMjAwNC0wNy0wNyAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIHZlYy5oOiBGaXggdGhlIGV4YW1wbGUgdXNlLgoKMjAwNC0wNy0wNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGxhbmdob29rcy1kZWYuaCAoTEFOR19IT09LU19HSU1QTEVfQkVGT1JFX0lOTElOSU5HKTogUmVtb3ZlLgoJKiBsYW5naG9va3MuaCAoc3RydWN0IGxhbmdfaG9va3MpOiBSZW1vdmUgZ2ltcGxlX2JlZm9yZV9pbmxpbmluZy4KCSogdHJlZS1pbmxpbmUuYyAoY29weV9ib2R5X3IsIHNldHVwX29uZV9wYXJhbWV0ZXIsCglpbml0aWFsaXplX2lubGluZWRfcGFyYW1ldGVycywgZXhwYW5kX2NhbGxfaW5saW5lLAoJZGVjbGFyZV9pbmxpbmVfdmFycyk6IERvbid0IGNoZWNrIGl0LgoJKGV4cGFuZF9jYWxsc19pbmxpbmUpOiBSZW1vdmUgb2xkIHZlcnNpb24sIHJlbmFtZSBuZXcgdmVyc2lvbgoJZnJvbSBnaW1wbGVfZXhwYW5kX2NhbGxzX2lubGluZS4KCSogdHJlZS1vcHRpbWl6ZS5jIChleGVjdXRlX2dpbXBsZSk6IFJlbW92ZS4KCShwYXNzX2dpbXBsZSk6IERvbid0IHJ1biBhbnl0aGluZy4KCjIwMDQtMDctMDYgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogZG9jL3NvdXJjZWJ1aWxkLnRleGk6IFVzZSBzZW1pY29sb25zIGluc3RlYWQgb2YgY29tbWFzIGluCglzZWN0aW9uIHRpdGxlLgoKMjAwNC0wNy0wNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3JhLmMgKHN0cnVjdCBzcmFfd2Fsa19mbnMpOiBSZXZlcnQgMjAwNC0wNy0wNSBjaGFuZ2UuCgkoc3JhX3dhbGtfbW9kaWZ5X2V4cHIsIHNjYW5faW5pdCk6IExpa2V3aXNlLgoJKGdlbmVyYXRlX2VsZW1lbnRfemVybyk6IENoZWNrIHZpc2l0ZWQgYmVmb3JlIHNjYW5uaW5nIGNoaWxkcmVuLgoJKGdlbmVyYXRlX2VsZW1lbnRfaW5pdCk6IFNldCB2aXNpdGVkIG9uIGVycm9yLgoJKHNjYWxhcml6ZV9pbml0KTogSGFuZGxlIGdlbmVyYXRlX2VsZW1lbnRfaW5pdCBmYWlsdXJlIHNpbWlsYXIKCXRvIHVzZV9ibG9ja19jb3B5LgoKMjAwNC0wNy0wNiAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiB0b3BsZXYuaCAoTk9fRlJPTlRfRU5EX0RJQUcsIEFUVFJJQlVURV9HQ0NfRkVfRElBRyk6IERlZmluZS4KCSh3YXJuaW5nLCBlcnJvciwgcGVkd2Fybiwgc29ycnkpOiBVc2UgQVRUUklCVVRFX0dDQ19GRV9ESUFHLgoKMjAwNC0wNy0wNiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAobGVnaXRpbWl6ZV9waWNfYWRkcmVzcyk6IE1ha2Ugc3RhdGljLgoJKGxlZ2l0aW1pemVfYWRkcmVzcyk6IEhhbmRsZSBDT05TVCB3aXRoIFRMUyBvcGVyYW5kLgoJKGl4ODZfZXhwYW5kX21vdmUpOiBEb24ndCBjYWxsIGxlZ2l0aW1pemVfcGljX2FkZHJlc3MgZGlyZWN0bHkuCgkqIGNvbmZpZy9pMzg2L2kzODYtcHJvdG9zLmggKGxlZ2l0aW1pemVfcGljX2FkZHJlc3MpOiBSZW1vdmUuCgoyMDA0LTA3LTA2ICBSb2dlciBTYXlsZSAgPHJvZ2VyQGV5ZXNvcGVuLmNvbT4KCgkqIGlmY3Z0LmMgKHN0cnVjdCBub2NlX2lmX2luZm8pOiBBZGQgYSBCb29sZWFuIGJfdW5jb25kaXRpb25hbCBmaWVsZC4KCShub2NlX3RyeV9zaWduX21hc2spOiBUd2VhayBydHhfY29zdCBjaGVjayBpZiB0IGlzIGV2YWx1YXRlZCBhbnl3YXkuCgkobm9jZV9wcm9jZXNzX2lmX2Jsb2NrKTogSW5pdGlhbGl6ZSBpZl9pbmZvLmJfdW5jb25kaXRpb25hbCBpZiBpbnNuX2IKCWlzIGN1cnJlbnRseSBleGVjdXRlZCB1bmNvbmRpdGlvbmFsbHksIGkuZS4gbm90IGluICJlbHNlX2JiIi4KCjIwMDQtMDctMDYgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5jIChhbHBoYV91c2VfZGZhX3BpcGVsaW5lX2ludGVyZmFjZSk6IFJlbW92ZS4KCShUQVJHRVRfU0NIRURfVVNFX0RGQV9QSVBFTElORV9JTlRFUkZBQ0UpOiBEZWZpbmUgdG8gaG9va19pbnRfdm9pZF8xLgoJKiBjb25maWcvYXJtL2FybS5jIChhcm1fdXNlX2RmYV9waXBlbGluZV9pbnRlcmZhY2UpOiBSZW1vdmUuCgkoVEFSR0VUX1NDSEVEX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogRGVmaW5lIHRvIGhvb2tfaW50X3ZvaWRfMS4KCSogY29uZmlnL2Zydi9mcnYuYyAoZnJ2X3VzZV9kZmFfcGlwZWxpbmVfaW50ZXJmYWNlKTogUmVtb3ZlLgoJKFRBUkdFVF9TQ0hFRF9VU0VfREZBX1BJUEVMSU5FX0lOVEVSRkFDRSk6IERlZmluZSB0byBob29rX2ludF92b2lkXzEuCgkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaWEzMl91c2VfZGZhX3BpcGVsaW5lX2ludGVyZmFjZSk6IFJlbW92ZS4KCShUQVJHRVRfU0NIRURfVVNFX0RGQV9QSVBFTElORV9JTlRFUkZBQ0UpOiBEZWZpbmUgdG8gaG9va19pbnRfdm9pZF8xLgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfdXNlX2RmYV9waXBlbGluZV9pbnRlcmZhY2UpOiBSZW1vdmUuCgkoVEFSR0VUX1NDSEVEX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogRGVmaW5lIHRvIGhvb2tfaW50X3ZvaWRfMS4KCSogY29uZmlnL3BhL3BhLmMgKGhocGFfdXNlX2RmYV9waXBlbGluZV9pbnRlcmZhY2UpOiBSZW1vdmUuCgkoVEFSR0VUX1NDSEVEX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKTogRGVmaW5lIHRvIGhvb2tfaW50X3ZvaWRfMS4KCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKHNwYXJjX3VzZV9kZmFfcGlwZWxpbmVfaW50ZXJmYWNlKTogUmVtb3ZlLgoJKFRBUkdFVF9TQ0hFRF9VU0VfREZBX1BJUEVMSU5FX0lOVEVSRkFDRSk6IERlZmluZSB0byBob29rX2ludF92b2lkXzEuCgkqIGNvbmZpZy92ODUwL3Y4NTAuYyAodjg1MF91c2VfZGZhX3BpcGVsaW5lX2ludGVyZmFjZSk6IFJlbW92ZS4KCShUQVJHRVRfU0NIRURfVVNFX0RGQV9QSVBFTElORV9JTlRFUkZBQ0UpOiBEZWZpbmUgdG8gaG9va19pbnRfdm9pZF8xLgoKMjAwNC0wNy0wNiAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiBkb2p1bXAuYyAoZG9fanVtcCk6IFJFRkVSRU5DRV9FWFBSIGlzIGRlYWQuCgkqIGV4cHIuYyAoZXhwYW5kX2V4cHJfcmVhbF8xKTogRGl0dG8uCgkqIHRyZWUtaW5saW5lLmMgKGVzdGltYXRlX251bV9pbnNuc18xKTogRGl0dG8uCgkqIHRyZWUtcHJldHR5LXByaW50LmMgKGR1bXBfZ2VuZXJpY19ub2RlKTogRGl0dG8uCgkob3Bfc3ltYm9sKTogRGl0dG8uCgkqIHRyZWUuZGVmOiBEaXR0by4KCjIwMDQtMDctMDYgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnPgoKCSogdHJlZS1zc2EtcHJlLmMgKHJlZmVyZW5jZV9ub2RlX3Bvb2wpOiBOZXcgcG9vbC4KCShmaW5kX29yX2dlbmVyYXRlX2V4cHJlc3Npb24pOiBDbGFzcyAncicgaXMgb2theSB0b28uCgkoY3JlYXRlX3ZhbHVlX2V4cHJfZnJvbSk6IERpdHRvLgoJKGFkZF90b19zZXRzKTogTEhTIHNob3VsZCBub3QgaW5jbHVkZSB2dXNlcy4KCShlbGltaW5hdGUpOiBEaXR0by4KCShjb21wdXRlX2F2YWlsKTogUmV2ZXJzZSBvcmRlcmluZyBvZiB0ZXN0cy4KCVZhbHVpemUgSU5ESVJFQ1RfUkVGIGFzIHdlbGwuCgoyMDA0LTA3LTA2ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJzYW5kaWZvQHJlZGhhdC5jb20+CgoJUFIgcnRsLW9wdGltaXphdGlvbi8xNjM4MAoJKiBsb29wLmMgKGNoZWNrX2RicmFfbG9vcCk6IFNpbmsgY29tcGFyaXNvbiBpbnN0cnVjdGlvbnMgaWYgdGhleQoJZG8gc29tZXRoaW5nIG90aGVyIHRoYW4gc2V0IGNjMC4KCjIwMDQtMDctMDYgIEphbWVzIEUgV2lsc29uICA8d2lsc29uQHNwZWNpZml4aW5jLmNvbT4KCgkqIGRvYy9pbnRlcmZhY2UudGV4aSAobG9uZ2ptcCBhbmQgYXV0b21hdGljIHZhcmlhYmxlcyk6IERlbGV0ZQoJcGFyYWdyYXBoIHJlY29tbWVuZGluZyB0YWtpbmcgdGhlIGFkZHJlc3Mgb2YgYSB2YXJpYWJsZS4KCjIwMDQtMDctMDYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB2ZWMuaCAoVkVDX2VtYmVkZGVkX2FsbG9jKTogUmVtb3ZlLgoJKFZFQ19lbWJlZGRlZF9zaXplLCBWRUNfZW1iZWRkZWRfaW5pdCk6IE5ldy4KCShWRUNfYWxsb2MsIFZFQ19yZXNlcnZlLCBWRUNfc2FmZV9wdXNoLCBWRUNfc2FmZV9pbnNlcnQpOiBBZGQKCU1FTV9TVEFUX0lORk8uCgkoVkVDX3RydW5jYXRlKTogTmV3LgoJKHZlY19wX3Jlc2VydmUsIHZlY19vX3Jlc2VydmUpOiBBZGQgTUVNX1NUQVRfREVDTC4KCSh2ZWNfZW1iZWRkZWRfYWxsb2MpOiBSZW1vdmUuCgkqIHZlYy5jICh2ZWNfcF9yZXNlcnZlLCB2ZWNfb19yZXNlcnZlKTogQWRkIE1FTV9TVEFUX0RFQ0wsIGFkanVzdC4KCSh2ZWNfZW1iZWRkZWRfYWxsb2MpOiBSZW1vdmUuCgoyMDA0LTA3LTA2ICBNYXJrIE1pdGNoZWxsICA8bWFya0Bjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuaW4gKGxhbmdob29rcy5vKTogRG8gbm90IGRlcGVuZCBvbiBndC1sYW5naG9va3MuaC4KCShndC1sYW5naG9va3MuaCk6IFJlbW92ZS4KCjIwMDQtMDctMDYgIEdlb3JnZSBIZWxmZnJpY2ggPGdlb3JnZUBnbHkuYnJpcy5hYy51az4KCgkqIHhjb2Zmb3V0LmggKERCWF9GSU5JU0hfU1lNQk9MKTogRml4IHR5cG8uCgoyMDA0LTA3LTA2ICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGxpYmVydHlzdXJmLmZyPgoKCSogY29uZmlnL3NwYXJjL3NwYXJjLmMgKGdldF9wY19zeW1ib2wpOiBSZW5hbWUgaW50bwoJYWRkX3BjX3RvX3BpY19zeW1ib2wuCgkoZ2V0X3BjX3N5bWJvbF9uYW1lKTogUmVuYW1lIGludG8gYWRkX3BjX3RvX3BpY19zeW1ib2xfbmFtZS4KCShsb2FkX3BpY19yZWdpc3Rlcik6IEFjY291bnQgZm9yIHByZXZpb3VzIGNoYW5nZXMuCglVc2UgcmVnX25hbWVzLiAgRG9uJ3QgY3JlYXRlIHRoZSBsYWJlbCB0d2ljZS4KCSogY29uZmlnL3NwYXJjL3NwYXJjLm1kIChVTlNQRUNfR0VUX1BDKTogUmVuYW1lIGludG8KCVVOU1BFQ19MT0FEX1BDUkVMX1NZTS4KCShnZXRfcGMpOiBSZW5hbWUgaW50byBsb2FkX3BjcmVsX3N5bS4gIEFkZCBwcmVkaWNhdGUgdG8KCW9wZXJhbmRzLiAgUmVtb3ZlIGNvbmRpdGlvbi4KCjIwMDQtMDctMDYgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBkYnhvdXQuYyAoZGJ4b3V0X3R5cGUpOiBEb24ndCB0ZXN0IHdoZXRoZXIgdGhlIGJpbmZvIHNsb3Qgb2YKCVJFQ09SRCwgVU5JT04gJiBRVUFMX1VOSU9OIGlzIGFjdHVhbGx5IGEgYmluZm8uCgoJKiB0cmVlLmggKFRSRUVfVklBX1ZJUlRVQUwpOiBSZW5hbWUgdG8gLi4uCgkoQklORk9fVklSVFVBTF9QKTogLi4uIGhlcmUuIFJlcXVpcmUgVFJFRV9CSU5GTyBvbmx5LgoJKEJJTkZPX01BUktFRCwgQklORk9fRkxBR19bMTZdKTogTmV3IGJpbmZvIGZsYWdzLgoJKiBkYnhvdXQuYyAoZGJ4b3V0X3R5cGUpOiBVc2UgQklORk9fVklSVFVBTF9QLgoJKiBkd2FyZjJvdXQuYyAoYWRkX2RhdGFfbWVtYmVyX2xvY2F0aW9uX2F0dHJpYnV0ZSk6IExpa2V3aXNlLgoJKGdlbl9pbmhlcml0YW5jZV9kaWUpOiBMaWtld2lzZS4KCSogdHJlZS1kdW1wLmMgKGRlcXVlX2FuZF9kdW1wKTogTGlrZXdpc2UuCgkqIGRvYy9jLXRyZWUudGV4aSAoQmluZm9zKTogQWRkIHVuZGVyIHJlY29uc3RydWN0aW9uIG5vdGUuCgoyMDA0LTA3LTA2ICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBjb25maWcvbWNvcmUvbWNvcmUuYyAoVEFSR0VUX1NDSEVEX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKToKCURlZmluZS4KCSogY29uZmlnL21jb3JlL21jb3JlLm1kOiBNb2RlbCBtZW1vcnkgbGF0ZW5jeSB3aXRoIGEgc2ltcGxlIERGQQoJcGlwZWxpbmUgZGVzY3JpcHRpb24gaW5zdGVhZCBvZiBhIGRlZmluZV9mdW5jdGlvbl91bml0LgoKMjAwNC0wNy0wNSAgUmljaGFyZCBLZW5uZXIgIDxrZW5uZXJAdmxzaTEudWx0cmEubnl1LmVkdT4KCgkqIGxhbmdob29rcy1kZWYuaCAoTEFOR19IT09LU19UUkVFX0lOTElOSU5HX1ZBUl9NT0RfVFlQRV9QKTogRXh0cmEgYXJnLgoJKiBsYW5naG9va3MuaCAodmFyX21vZF90eXBlX3ApOiBMaWtld2lzZS4KCSogYy1kZWNsLmMgKGZpbmlzaF9kZWNsKTogQWRkIGV4dHJhIGFyZyB0byB2YXJpYWJseV9tb2RpZmllZF90eXBlX3AuCgkqIGV4cHIuYyAoY291bnRfdHlwZV9lbGVtZW50cyk6IFByb3Blcmx5IGhhbmRsZSByZXR1cm4gZnJvbQoJYXJyYXlfdHlwZV9uZWx0cyBhbmQgcHJvcGVybHkgdGVzdCBmb3Igb3ZlcmZsb3cuCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2luaXRfY29uc3RydWN0b3IpOiBQcm9wZXJseSBoYW5kbGUgcmV0dXJuCglmcm9tIGFycmF5X3R5cGVfbmVsdHMuCgkoZ2ltcGxpZnlfYWRkcl9leHByKTogUmVtb3ZlIHJlZHVuZGFudCBjbGVhciBvZiBUUkVFX1NJREVfRUZGRUNUUy4KCSogaW50ZWdyYXRlLmMgKGNvcHlfZGVjbF9mb3JfaW5saW5pbmcpOiBDb3JyZWN0IGNvbW1lbnRzLgoJKiB0cmVlLWlubGluZS5jIChyZW1hcF9kZWNsKTogVXBkYXRlIGNvbW1lbnRzLCByZW1vdmUgZGVhZCBjb2RlLAoJYW5kIGNvcHkgREVDTF9GSUVMRF9PRkZTRVQgYW5kIERFQ0xfUVVBTElGSUVSLCBpZiB0aGV5IGV4aXN0LgoJKHJlbWFwX3R5cGUpOiBPbmx5IHJlbWFwIGlmIHZhcmlhYmx5IG1vZGlmaWVkIGJ5IHZhcnMgaW4gZnVuY3Rpb24KCWJlaW5nIGlubGluZWQuCgkoY29weV9ib2R5X3IpOiBVc2UgY29tcGF0aWJsZV90eXBlIGxhbmdob29rcyB0byBzZWUgd2hlbiBjYW4gZm9sZC4KCShzZXR1cF9vbmVfcGFyYW1ldGVyKTogRG9uJ3QgcmVtYXAgdHlwZS4KCShpbmxpbmVfZm9yYmlkZGVuX3BfMSk6IEFkZCBhcmcgdG8gdmFyaWFibHlfbW9kaWZpZWRfdHlwZV9wLgoJKiB0cmVlLmMgKHJlY29tcHV0ZV90cmVlX2ludmFyYW50X2Zvcl9hZGRyX2V4cHIpOiBQcm9wZXJseQoJY29tcHV0ZSBUUkVFX0lOVkFSSUFOVCBmb3IgZGVjbCBjYXNlLgoJKGZpbmRfdmFyX2Zyb21fZm4pOiBOZXcgZnVuY3Rpb24uCgkodmFyaWFibHlfbW9kaWZpZWRfdHlwZV9wKTogQWRkIGFyZyBhbmQgY2FsbCBuZXcgZnVuY3Rpb24uCgkqIHRyZWUuaCAodmFyaWFibHlfbW9kaWZpZWRfdHlwZV9wKTogQWRkIGV4dHJhIGFyZy4KCjIwMDQtMDctMDUgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBjb25maWcvc3BhcmMvc3BhcmMubWQgKG5vbmxvY2FsX2dvdG8pOiBSZW1vdmUgZGlzYWJsZWQgY29kZS4KCShnb3RvX2hhbmRsZXJfYW5kX3Jlc3RvcmVfdjkpOiBEZWxldGUgZGlzYWJsZWQgaW5zbi4KCShnb3RvX2hhbmRsZXJfYW5kX3Jlc3RvcmVfdjlfc3A2NCk6IExpa2V3aXNlLgoKMjAwNC0wNy0wNSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBjYWxscy5jIChsb2FkX3JlZ2lzdGVyX3BhcmFtZXRlcnMpOiBDYWxsIGV4cGFuZF9zaGlmdCBpbnN0ZWFkCglvZiBleHBhbmRfYmlub3Agd2l0aCBhc2hsX29wdGFiIChvciBvdGhlciBzaGlmdCBvcHRhYikgZGlyZWN0bHkuCgkqIGV4cHIuYyAoZW1pdF9ncm91cF9sb2FkLCBlbWl0X2dyb3VwX3N0b3JlKTogTGlrZXdpc2UuCgkqIGZ1bmN0aW9uLmMgKGFzc2lnbl9wYXJtX3NldHVwX2Jsb2NrKTogTGlrZXdpc2UuCgkqIHN0bXQuYyAoc2hpZnRfcmV0dXJuX3ZhbHVlKTogTGlrZXdpc2UuCgoyMDA0LTA3LTA1ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGV4cHIuYyAoZXhwYW5kX2Fzc2lnbm1lbnQpOiBEaXNhYmxlIHRoZSBiaXRmaWVsZCArPSBvcHRpbWl6YXRpb25zLgoKMjAwNC0wNy0wNSAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBkb2Mvc291cmNlYnVpbGQudGV4aTogUmV2ZXJ0IHByZXZpb3VzIHBhdGNoLgoKMjAwNC0wNy0wNSAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBjLWRlY2wuYywgY29uZmlnL20zMnIvbTMyci5jLCBleHByLmMsIG9wdGFicy5jOiBEb24ndCBjaGVjawoJVEFSR0VUX01FTV9GVU5DVElPTlMuCgkqIHN5c3RlbS5oOiBQb2lzb24gVEFSR0VUX01FTV9GVU5DVElPTlMuCgkqIGxpYmZ1bmNzLmggKExUSV9iY29weSwgTFRJX2JjbXAsIExUSV9iemVybywgYmNvcHlfbGliZnVuYywKCWJjbXBfbGliZnVuYywgYnplcm9fbGliZnVuYyk6IFJlbW92ZS4KCSogb3B0YWJzLmMgKGluaXRfb2J0YWJzKTogRG9uJ3Qgc2V0IGJjb3B5X2xpYmZ1bmMsIGJjbXBfbGliZnVuYyBvcgoJYnplcm9fbGliZnVuYy4KCSogZG9jL3RtLnRleGkgKFRBUkdFVF9NRU1fRlVOQ1RJT05TKTogUmVtb3ZlLgoJKiBkb2Mvc3RhbmRhcmRzLnRleGk6IERvbid0IG1lbnRpb24gY2FsbGluZyBCU0Qgc3RyaW5nIGZ1bmN0aW9ucy4KCSogZG9jL2ludm9rZS50ZXhpOiBMaWtld2lzZS4gIE1lbnRpb24gdGhhdCBtZW1tb3ZlIG1heSBiZSBjYWxsZWQuCgkqIGNvbmZpZy92YXgvdC1tZW1mdW5jczogTmV3LgoJKiBjb25maWcvbWVtY21wLmMsIGNvbmZpZy9tZW1jcHkuYywgY29uZmlnL21lbW1vdmUuYywKCWNvbmZpZy9tZW1zZXQuYzogTmV3LgoJKiBjb25maWcvcGRwMTEvdC1wZHAxMSAoTElCMkZVTkNTX0VYVFJBKTogVXNlIHRoZXNlIGZpbGVzLgoJKiBjb25maWcuZ2NjICh2YXgtKi1ic2QqLCB2YXgtKi1zeXN2KiwgdmF4LSotdWx0cml4Kik6IFVzZQoJdmF4L3QtbWVtZnVuY3MuCgkqIGNvbmZpZy9hbHBoYS9hbHBoYS5oLCBjb25maWcvYXJjL2FyYy5oLCBjb25maWcvYXJtL2FybS5oLAoJY29uZmlnL2F2ci9hdnIuaCwgY29uZmlnL2M0eC9jNHguaCwgY29uZmlnL2NyaXMvYW91dC5oLAoJY29uZmlnL2VsZm9zLmgsIGNvbmZpZy9nbnUuaCwgY29uZmlnL2g4MzAwL2g4MzAwLmgsCgljb25maWcvaTM4Ni9nYXMuaCwgY29uZmlnL2lhNjQvaWE2NC5oLCBjb25maWcvaW50ZXJpeC5oLAoJY29uZmlnL2lwMmsvaXAyay5oLCBjb25maWcvbHlueC1uZy5oLCBjb25maWcvbTMyci9tMzJyLmgsCgljb25maWcvbWNvcmUvbWNvcmUuaCwgY29uZmlnL21pcHMvbWlwcy5oLCBjb25maWcvbW1peC9tbWl4LmgsCgljb25maWcvbmV0YnNkLmgsIGNvbmZpZy9vcGVuYnNkLmgsIGNvbmZpZy9wYS9wYS5oLAoJY29uZmlnL3JzNjAwMC9yczYwMDAuaCwgY29uZmlnL3J0ZW1zLmgsIGNvbmZpZy9zMzkwL3MzOTAuaCwKCWNvbmZpZy9zaC9zaC5oLCBjb25maWcvc3BhcmMvc3BhcmMuaCwgY29uZmlnL3N0b3JteTE2L3N0b3JteTE2LmgsCgljb25maWcvc3ZyMy5oOiBEb24ndCBkZWZpbmUgVEFSR0VUX01FTV9GVU5DVElPTlMuCgoyMDA0LTA3LTA1ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZnVuY3Rpb24uYyAoYXNzaWduX3Bhcm1fc2V0dXBfcmVnKTogUHJvcGVybHkgcmVuYW1lIHZhcmlhYmxlcyBpbgoJRlVOQ1RJT05fQVJHX0NBTExFRV9DT1BJRVMgc2VjdGlvbi4KCjIwMDQtMDctMDUgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiB0cmVlLW11ZGZsYXAuYzogSW5jbHVkZSBjZ3JhcGguaC4KCShtZl9pbml0X2V4dGVybl90cmVlcyk6IFJlbmFtZSB0byBtdWRmbGFwX2luaXQuICBFeHBvcnQuCglSZXdyaXRlIHRvIGNyZWF0ZSBzeW50aGV0aWMgZGVjbGFyYXRpb25zIGluc3RlYWQgb2YgbG9va2luZwoJdXAgZGVjbGFyYXRpb25zIGZyb20gbWYtcnVudGltZS5oLgoJKG1mX21ha2VfYnVpbHRpbiwgbWZfbWFrZV9jYWNoZV9zdHJ1Y3RfdHlwZSk6IE5ldyBmdW5jdGlvbnMuCgkobWZfY2FjaGVfc2hpZnRfZGVjbCwgbWZfY2FjaGVfbWFza19kZWNsLCBtZl91bnJlZ2lzdGVyX2ZuZGVjbCk6CglDb3JyZWN0IGNvbW1lbnRhcnkuCgkoZXhlY3V0ZV9tdWRmbGFwX2Z1bmN0aW9uX2RlY2xzLCBtdWRmbGFwX3JlZ2lzdGVyX2NhbGwpOgoJRG9uJ3QgY2FsbCBtZl9pbml0X2V4dGVybl90cmVlcy4KCShtdWRmbGFwX2ZpbmlzaF9maWxlKTogVXNlIGNncmFwaF9idWlsZF9zdGF0aWNfY2R0b3IuCgoJKiB0cmVlLW11ZGZsYXAuaDogVXBkYXRlIHByb3RvdHlwZXMuCgkqIGMtbXVkZmxhcC5jOiBEZWxldGUgZmlsZS4KCSogYy1jb21tb24uYzogSW5jbHVkZSB0cmVlLW11ZGZsYXAuaC4KCShjX2NvbW1vbl9ub2Rlc19hbmRfYnVpbHRpbnMpOiBDYWxsIG11ZGZsYXBfaW5pdCBpZiBhcHByb3ByaWF0ZS4KCSogTWFrZWZpbGUuaW46IFJlbW92ZSBhbGwgcmVmZXJlbmNlcyB0byBjLW11ZGZsYXAuby4KCVVwZGF0ZSBkZXBlbmRlbmNpZXMuCgoyMDA0LTA3LTA1ICBKb2huIERhdmlkIEFuZ2xpbiAgPGRhdmUuYW5nbGluQG5yYy1jbnJjLmdjLmNhPgoKCSogcGEubWQgKHByZWZldGNoLCBwcmVmZXRjaF8zMiwgcHJlZmV0Y2hfNjQpOiBPbmx5IGFsbG93IHNob3J0CglkaXNwbGFjZW1lbnRzIHdpdGggdGhlIHNwYXRpYWwtbG9jYWxpdHkgY2FjaGUtY29udHJvbCBjb21wbGV0ZXIuCgoyMDA0LTA3LTA1ICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoKCSogbGFuZ2hvb2tzLmM6IERvbid0IGluY2x1ZGUgZ3QtbGFuZ2hvb2tzLmguCgkodmFyX2xhYmVsbm8pOiBEZWxldGUuCgkobGhkX3NldF9kZWNsX2Fzc2VtYmxlcl9uYW1lKTogRG8gbm90IGFwcGVuZCBhIGRpc3Rpbmd1aXNoaW5nCgludW1iZXIgdG8gZmlsZS1zY29wZSBpbnRlcm5hbC1saW5rYWdlIGRlY2xhcmF0aW9ucyBmb3IgdGhlIGZpcnN0CglpbnB1dCBmaWxlLCBldmVuIGlmIHRoZXkgaGF2ZSBERUNMX0NPTlRFWFQgc2V0LiAgVXNlIERFQ0xfVUlEIG9mCgl0aGUgZGVjbGFyYXRpb24gaXRzZWxmIChpZiBhdCBibG9jayBzY29wZSksIG9yIGl0cyBjb250YWluaW5nCglUUkFOU0xBVElPTl9VTklUX0RFQ0wgKGlmIGF0IGZpbGUgc2NvcGUpIGZvciB0aGUgZGlzdGluZ3Vpc2hpbmcKCW51bWJlci4KCgkqIG9wdHMuYyAoY3VyX2luX2ZuYW1lKTogTmV3IGdsb2JhbC4KCSogb3B0cy5oOiBEZWNsYXJlIGl0LgoJKiB0cmVlLmM6IEluY2x1ZGUgb3B0cy5oLgoJKG1ha2Vfbm9kZV9zdGF0KTogSWYgY3JlYXRpbmcgYSBUUkFOU0xBVElPTl9VTklUX0RFQ0wsIGdpdmUgaXQKCURFQ0xfVUlEIGVxdWFsIHRvIGN1cl9pbl9mbmFtZS4KCShjb3B5X25vZGVfc3RhdCk6IERvIG5vdCBjaGFuZ2UgREVDTF9VSUQgd2hlbiBjb3B5aW5nIGEKCVRSQU5TTEFUSU9OX1VOSVRfREVDTC4KCShidWlsZF9jb21tb25fdHJlZV9ub2Rlcyk6IEFkanVzdCBuZXh0X2RlY2xfdWlkIHRvIHJlc2VydmUgdGhlCglyYW5nZSAwIC4uIG51bV9pbl9mbmFtZXMtMSBmb3IgVFJBTlNMQVRJT05fVU5JVF9ERUNMcy4KCgkqIGMtZGVjbC5jIChjX3N0YXRpY19hc3NlbWJsZXJfbmFtZSk6IERlbGV0ZS4KCSogYy10cmVlLmggKGNfc3RhdGljX2Fzc2VtYmxlcl9uYW1lKTogRGVsZXRlIHByb3RvdHlwZS4KCSogYy1sYW5nLmMsIG9iamMvb2JqYy1sYW5nLmM6IERvbid0IG92ZXJyaWRlCglMQU5HX0hPT0tTX1NFVF9ERUNMX0FTU0VNQkxFUl9OQU1FLgoKCSogTWFrZWZpbGUuaW4gKHRyZWUubyk6IFVwZGF0ZSBkZXBlbmRlbmNpZXMuCgkoR1RGSUxFUyk6IFJlbW92ZSBsYW5naG9va3MuYy4KCjIwMDQtMDctMDUgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogZm9sZC1jb25zdC5jIChmb2xkKSA8VFJVTkNfTU9EX0VYUFI+OiBPcHRpbWl6ZSB1bnNpZ25lZCBtb2R1bHVzCglieSBhIHBvd2VyIG9mIHR3byBpbnRvIGEgYml0LXdpc2UgQU5ELCBpLmUuICJYICUgQyIgYXMgIlggJiAoQy0xKSIuCglOb3JtYWxpemUgIlggJSBDIiBhcyAiWCAlIC1DIiBmb3Igc2lnbmVkIG1vZHVsdXMgYW5kIG5lZ2F0aXZlIEMuCglPcHRpbWl6ZSAiWCAlIC1ZIiBhcyAiWCAlIFkiIGZvciBzaWduZWQgbW9kdWx1cy4KCTxFUV9FWFBSPjogUmVjdXJzaXZlbHkgY2FsbCAiZm9sZCIgd2hlbiB0cmFuc2Zvcm1pbmcgIihYICUgWSkgPT0gMCIKCWludG8gIigodW5zaWduZWQpIFggJSBZKSA9PSAwIi4KCjIwMDQtMDctMDUgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogc291cmNlYnVpbGQudGV4aSAoQ29uZmlnIEZyYWdtZW50cyk6IFVzZSBAY29tbWF7fSBpbgoJY3Jvc3MtcmVmZXJlbmNlIHRvIHNlY3Rpb24gdGl0bGUuCgoyMDA0LTA3LTA1ICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogdHJlZS5oIChERUNMX1NFRU5fSU5fQklORF9FWFBSX1ApOiBOZXcgbWFjcm8uCgkqIGdpbXBsaWZ5LmMgKGdpbXBsZV9hZGRfdG1wX3ZhciwgZ2ltcGxpZnlfYmluZF9leHByKTogVXNlIGl0LgoJKGdpbXBsaWZ5X3RhcmdldF9leHByLCBnaW1wbGlmeV9leHByKTogTGlrZXdpc2UuCgkoY29weV9pZl9zaGFyZWRfcik6IE5vIGxvbmdlciBuZWVkIHNwZWNpYWwgY2FzZSBmb3IgQklORF9FWFBSLgoJKHVuc2hhcmVfYm9keSwgdW52aXNpdF9ib2R5KTogT25seSBsb29rIGF0IG5lc3RlZCBpZiBCT0RZX1AgaXMKCXdob2xlIGZ1bmN0aW9uLgoJKGdpbXBsaWZ5X2NvbXBvdW5kX2x2YWwpOiBTZWUgaWYgd2UgY2FuIHN0cmlwIGFueSB1c2VsZXNzIGNvbnZlcnNpb24uCgkoZ2ltcGxpZnlfbW9kaWZ5X2V4cHIsIGdpbXBsaWZ5X21vZGlmeV9leHByX3RvX21lbWNweSk6IFRha2Ugc2l6ZQoJZnJvbSBSSFMsIG5vdCBMSFMuCgkoZ2ltcGxpZnlfbW9kaWZ5X2V4cHJfdG9fbWVtc2V0KTogTGlrZXdpc2UuCgkoZ2ltcGxpZnlfZXhwciwgY2FzZSBDT05TVFJVQ1RPUik6IEhhbmRsZSB1c2UgYXMgc3RhdGVtZW50LgoJKiB0cmVlLWlubGluZS5jIChzZXR1cF9vbmVfcGFyYW1ldGVyKTogVXNlIERFQ0xfU0VFTl9JTl9CSU5EX0VYUFJfUC4KCShkZWNsYXJlX2lubGluZV92YXJzKTogTGlrZXdpc2UuCgkod2Fsa190eXBlX2ZpZWxkcyk6IE5ldyBmdW5jdGlvbi4KCSh3YWxrX3RyZWUpOiBVc2UgaXQuCgkqIHRyZWUtbmVzdGVkLmMgKGNyZWF0ZV90bXBfdmFyX2Zvcik6IFNob3cgc2VlbiBpbiBCSU5EX0VYUFIuCgoJKiB0cmVlLXNyYS5jIChzdHJ1Y3Qgc3JhX3dhbGtfZm5zKTogSW5pdCBmdW5jdGlvbiBub3cgcmV0dXJucyBib29sLgoJKHNyYV93YWxrX21vZGlmeV9leHByKTogQWxsb3cgaW5pdCBmdW5jdGlvbiB0byBmYWlsLgoJKHNjYW5faW5pdCk6IE5vdyByZXR1cm5zIGJvb2wuCgkoZ2VuZXJhdGVfZWxlbWVudF9pbml0KTogSWYgY2FuJ3QgdW5kZXJzdGFuZCBJTklULCByZXR1cm4gZmFsc2UuCgkoc2NhbGFyaXplX2luaXQpOiBSZXR1cm4gZmFsc2UgaWYgZ2VuZXJhdGVfZWxlbWVudF9pbml0IGRvZXMuCgoJKiB0cmVlLXByZXR0eS1wcmludC5jIChkdW1wX2dlbmVyaWNfbm9kZSwgY2FzZSBBUlJBWV9UWVBFKTogUHJvcGVybHkKCXByaW50IGJvdW5kcy4KCgkqIGV4cHIuYyAoZXhwYW5kX2V4cHJfcmVhbF8xLCBjYXNlIFNXSVRDSF9FWFBSKTogRG9uJ3QgY2hlY2sgYWdhaW5zdAoJYm91bmRzIGlmIGJvdW5kcyBhcmVuJ3QgY29uc3RhbnQuCgoJKiB0cmVlLWNmZy5jICh2ZXJpZnlfZXhwcik6IFVzZSBDSEVDS19PUCBpbiBiaW5hcnkgY2FzZS4KCgkqIGZ1bmN0aW9uLmMsIGxhbmdob29rcy1kZWYuaCwgbGFuZ2hvb2tzLmg6IE1vdmUgbWF4X3NpemUgaG9vawoJdG8gdHlwZSBob29rczsgcmVtb3ZlIGJvZ3VzIFBBUkFNUy4KCjIwMDQtMDctMDUgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLXRyZWUuaCAoVFlQRV9BQ1RVQUxfQVJHX1RZUEVTKTogVXNlIFRZUEVfTEFOR19TTE9UXzEuCgkqIGR3YXJmMm91dC5jIChhZGRfZGF0YV9tZW1iZXJfbG9jYXRpb25fYXR0cmlidXRlKTogQ2hlY2sgZm9yCglUUkVFX0JJTkZPLgoJKiB0cmVlLmMgKHRyZWVfbm9kZV9raW5kcyk6IEFkZCAiYmluZm9zIi4KCShiaW5mb19sYW5nX3Nsb3RzKTogTmV3LgoJKG1ha2Vfbm9kZV9zdGF0KTogQWRkIFRSRUVfQklORk8uCgkobWFrZV90cmVlX2JpbmZvX3N0YXQpOiBOZXcuCgkodHJlZV9ub2RlX3N0cnVjdHVyZSk6IEFkZCBUUkVFX0JJTkZPLgoJKiB0cmVlLmRlZiAoVFJFRV9CSU5GTyk6IE5ldy4KCSogdHJlZS5oIChSRUNfT1JfVU5JT05fQ0hFQ0spOiBSZW5hbWUgdG8gLi4uCgkoUkVDT1JEX09SX1VOSU9OX0NIRUNLKTogLi4uIGhlcmUuCgkoTk9UX1JFQ09SRF9PUl9VTklPTl9DSEVDSyk6IE5ldy4KCShUUkVfVklBX1ZJUlRVQUwpOiBBbGxvdyBUUkVFX0xJU1Qgb3IgVFJFRV9CSU5GTy4KCShUWVBFX0ZJRUxEUywgVFlQRV9NRVRIT0RTLCBUWVBFX1ZGSUVMRCk6IEFkanVzdCBmb3IKCVJFQ09SRF9PUl9VTklPTl9DSEVDSy4KCShUWVBFX0JJTkZPKTogVXNlIFJFQ09SRF9PUl9VTklPTl9DSEVDSy4KCShUWVBFX0xBTkdfU0xPVF8xKTogTmV3LgoJKEJJTkZPX1RZUEUsIEJJTkZPX09GRlNFVCwgQklORk9fVlRBQkxFLCBCSU5GT19WSVJUVUFMUywKCUJJTkZPX0JBU0VUWVBFUywgVFlQRV9CSU5GT19CQVNFVFlQRVMsIEJJTkZPX1ZQVFJfRklFTEQsCglCSU5GT19CQVNFQUNDRVNTRVMsIEJJTkZPX0lOSEVSSVRBTkNFX0NIQUlOKTogQWRqdXN0LgoJKEJJTkZPX0VMVFMpOiBSZW1vdmUuCgkoQklORk9fTEFOR19TTE9UKTogTmV3LgoJKHN0cnVjdCB0cmVlX2JpbmZvKTogTmV3LgoJKGJpbmZvX2xhbmdfc2xvdHMpOiBEZWNsYXJlLgoJKGVudW0gdHJlZV9ub2RlX3N0cnVjdHVyZV9lbnVtKTogQWRkIFRTX0JJTkZPLgoJKHVuaW9uIHRyZWVfbm9kZSk6IEFkZCBiaW5mby4KCShtYWtlX3RyZWVfYmluZm9fc3RhdCk6IERlY2xhcmUuCgkobWFrZV90cmVlX2JpbmZvKTogTmV3LgoJKGVudW0gdHJlZV9ub2RlX2tpbmQpOiBBZGQgYmluZm9fa2luZC4KCgkqIG9iamMvb2JqYy1hY3QuYyAoc3RhcnRfY2xhc3MsIG9iamNfZGVjbGFyZV9wcm90b2NvbHMsCglzdGFydF9wcm90b2NvbHMpOiBVc2UgVFlQRV9MQU5HX1NMT1RfMS4KCSogb2JqYy9vYmpjLWFjdC5oIChDTEFTU19CSU5GT19FTFRTLCBQUk9UT0NPTF9CSU5GT19FTFRTKTogUmVuYW1lCgl0byAuLi4KCShDTEFTU19MQU5HX1NMT1RfRUxUUywgUFJPVE9DT0xfTEFOR19TTE9UX0VMVFMpOiAuLi4gaGVyZS4KCShDTEFTU19JVkFSUywgQ0xBU1NfUkFXX0lWQVJTLCBDTEFTU19TVEFUSUNfVEVNUExBVEUsCglDTEFTU19DQVRFR09SWV9MSVNULCBDTEFTU19QUk9UT0NPTF9MSVNULCBDTEFTU19PV05fSVZBUlMsCglQUk9UT0NPTF9MSVNULCBQUk9UT0NPTF9GT1JXQVJEX0RFQ0wpOiBVc2UgVFlQRV9MQU5HX1NMT1RfMS4KCjIwMDQtMDctMDUgIFN0ZXZlbiBCb3NzY2hlciAgPHN0ZXZlbmJAc3VzZS5kZT4KCgkqIHJ0bC5oIChzdHJ1Y3QgcnR4X2RlZik6IFJlbW92ZSB0aGUgaW50ZWdyYXRlZCBmbGFnLgoJVXNlIHRoZSByZXR1cm5fdmFsIGZsYWcgZm9yIE1FTV9TQ0FMQVJfUC4KCVJlc2h1ZmZsZSBhbmQgdXBkYXRlIGZsYWdzIGluIENMRUFSX1JUWF9GTEFHUy4KCjIwMDQtMDctMDUgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCglQUiB0YXJnZXQvMTYzNTcKCSogY29uZmlnL21pcHMvbWlwcy5jIChtaXBzX2Jsb2NrX21vdmVfc3RyYWlnaHQpOiBQYXNzIEJMS21vZGUgbWVtcmVmcwoJdG8gbWlwc19leHBhbmRfdW5hbGlnbmVkX2xvYWQsIG1pcHNfZXhwYW5kX3VuYWxpZ25lZF9zdG9yZSwgYW5kCgltb3ZlX2J5X3BpZWNlcy4KCjIwMDQtMDctMDUgIEpvc2VmIFpsb21layAgPHpsb21la2pAc3VzZS5jej4KCgkqIHZhci10cmFja2luZy5jOiBGaXggc29tZSBjb21tZW50cy4KCShmcmFtZV9zdGFja19hZGp1c3QpOiBOZXcuCgkodnRfc3RhY2tfYWRqdXN0bWVudHMpOiBJbml0IHN0YWNrX2FkanVzdCBvZiBlbnRyeSBibG9jayB0bwoJbWludXMgc3RhY2sgYWRqdXN0bWVudCBvZiBmdW5jdGlvbiBwcm9sb2d1ZS4KCShhZGp1c3Rfc3RhY2tfcmVmZXJlbmNlKTogRG8gbm90IGFkanVzdCBpZiBhZGp1c3RtZW50ID09IDAuCgkoY29tcHV0ZV9iYl9kYXRhZmxvdyk6IFVzZSBwbHVzX2NvbnN0YW50IGluc3RlYWQgb2YgZ2VuX3J0eF9QTFVTLgoJKGVtaXRfbm90ZXNfaW5fYmIpOiBMaWtld2lzZS4KCSh2dF9hZGRfZnVuY3Rpb25fcGFyYW1ldGVycyk6IERvIG5vdCBhZGp1c3QgbG9jYXRpb25zIG9mCglmdW5jdGlvbiBhcmd1bWVudHMuCgkodnRfaW5pdGlhbGl6ZSk6IENvbXB1dGUgdGhlIHN0YWNrIGFkanVzdG1lbnQgb2YgZnVuY3Rpb24KCXByb2xvZ3VlIGFuZCBvZmZzZXQgdGhlIGluaXRpYWwgImxvY2F0aW9uIiBvZiBmcmFtZV9iYXNlX2RlY2wKCWZyb20gdGhlIHN0YWNrIHBvaW50ZXIgYWZ0ZXIgcHJvbG9ndWUuCgoyMDA0LTA3LTA0ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZnVuY3Rpb24uYyAoc3RydWN0IGFzc2lnbl9wYXJtX2RhdGFfYWxsKTogTmV3LgoJKHN0cnVjdCBhc3NpZ25fcGFybV9kYXRhX29uZSk6IE5ldy4KCShhc3NpZ25fcGFybXNfaW5pdGlhbGl6ZV9hbGwsIGFzc2lnbl9wYXJtc19hdWdtZW50ZWRfYXJnX2xpc3QsCglhc3NpZ25fcGFybV9maW5kX2RhdGFfdHlwZXMsIGFzc2lnbl9wYXJtc19zZXR1cF92YXJhcmdzLAoJYXNzaWduX3Bhcm1fZmluZF9lbnRyeV9ydGwsIGFzc2lnbl9wYXJtX2lzX3N0YWNrX3Bhcm0sCglhc3NpZ25fcGFybV9maW5kX3N0YWNrX3J0bCwgYXNzaWduX3Bhcm1fYWRqdXN0X2VudHJ5X3J0bCwKCWFzc2lnbl9wYXJtX2FkanVzdF9zdGFja19ydGwsIGFzc2lnbl9wYXJtX3NldHVwX2Jsb2NrX3AsCglhc3NpZ25fcGFybV9zZXR1cF9ibG9jaywgYXNzaWduX3Bhcm1fc2V0dXBfcmVnLAoJYXNzaWduX3Bhcm1fc2V0dXBfc3RhY2ssIGFzc2lnbl9wYXJtc191bnNwbGl0X2NvbXBsZXgpOiBTcGxpdCBmcm9tIC4uLgoJKGFzc2lnbl9wYXJtcyk6IC4uLiBoZXJlLgoKMjAwNC0wNy0wNCAgRGFuaWVsIEJlcmxpbiAgPGRiZXJsaW5AZGJlcmxpbi5vcmc+CgoJKiB0cmVlLXNzYS1wcmUuYyAoYmJfdmFsdWVfc2V0cyk6IHBoaV9nZW4sIHRtcF9nZW4sIG5ld19zZXRzCglub3cgYXJlIGJpdG1hcF9zZXRfdCdzLgoJKGJpdG1hcF9pbnNlcnRfaW50b19zZXQpOiBObyBwb2ludCBpbiBpbnNlcnRpbmcgdGhlIHZhbHVlIGlmCglpdCdzIGludmFyaWFudC4KCShiaXRtYXBfc2V0X2NvbnRhaW5zKTogTmV3IGZ1bmN0aW9uLgoJKGJpdG1hcF9zZXRfcmVwbGFjZV92YWx1ZSk6IEFkZCBjb21tZW50IG9uIHdoeSB3ZSBkbyBpdAoJdGhpcyB3YXkuCgkoc2V0X2NvbnRhaW5zKTogUmVtb3ZlZC4KCShiaXRtYXBfc2V0X3N1YnRyYWN0X2Zyb21fdmFsdWVfc2V0KTogTmV3IG5hbWUgb2YKCXNldF9zdWJ0cmFjdCBub3cgdGhhdCBpdCdzIGFyZ3VtZW50cyBhcmUgdHdvIGRpZmZlcmVudAoJdHlwZXMgb2Ygc2V0cy4KCVVwZGF0ZSBjYWxsZXJzLgoJKGJpdG1hcF9maW5kX2xlYWRlcik6IENoYW5nZSBhbGdvcml0aG0gdXNlZC4KCShmaW5kX29yX2dlbmVyYXRlX2V4cHJlc3Npb24pOiBVcGRhdGUgdXNlIG9mIGZ1bmN0aW9ucyBmb3IgbmV3CgliaXRtYXAgc2V0cy4KCShjcmVhdGVfZXhwcmVzc2lvbl9ieV9waWVjZXMpOiBEaXR0by4KCShpbnNlcnRfYXV4KTogRGl0dG8uCgkoaW5zZXJ0KTogRGl0dG8uCgkoYWRkX3RvX3NldHMpOiBEaXR0by4KCShpbml0X3ByZSk6IERpdHRvLgoJKGV4ZWN1dGVfcHJlKTogRGl0dG8uCgkoY29tcHV0ZV9hdmFpbCk6IERpdHRvLgoJQWxzbyBpZ25vcmUgdmlydHVhbCBwaGlzLgoKMjAwNC0wNy0wNCAgUmljaGFyZCBTYW5kaWZvcmQgIDxyc2FuZGlmb0ByZWRoYXQuY29tPgoKCSogY29tYmluZS5jIChzaW1wbGlmeV9jb21wYXJpc29uKTogRml4IGNvbW1lbnQgdHlwby4KCjIwMDQtMDctMDQgIEVyaWMgQm90Y2F6b3UgIDxlYm90Y2F6b3VAbGliZXJ0eXN1cmYuZnI+CgoJKiBjb25maWcvc3BhcmMvc3BhcmMuYyAoU0lCQ0FMTF9TTE9UX0VNUFRZX1ApOiBSZW5hbWUKCWludG8gTEVBRl9TSUJDQUxMX1NMT1RfUkVTRVJWRURfUCBhZnRlciBuZWdhdGlvbi4KCShlbGlnaWJsZV9mb3Jfc2liY2FsbF9kZWxheSk6IEFkanVzdCB1c2Ugb2YgU0lCQ0FMTF9TTE9UX0VNUFRZX1AuCgkob3V0cHV0X3Jlc3RvcmUpOiBDaGFuZ2UgcGFyYW1ldGVyIGZyb20gJ2luc24nIHRvICdwYXQnLgoJKG91dHB1dF9yZXR1cm4pOiBBZGp1c3QgY2FsbCB0byBvdXRwdXRfcmVzdG9yZS4KCShvdXRwdXRfc2liY2FsbCk6IEFkanVzdCB1c2Ugb2YgU0lCQ0FMTF9TTE9UX0VNUFRZX1AuCglBZGp1c3QgY2FsbCB0byBvdXRwdXRfcmVzdG9yZS4KCjIwMDQtMDctMDQgIE5laWwgQm9vdGggIDxuZWlsQGR1cm9uLmFraWhhYmFyYS5jby51az4KCgkqIGNvbmZpZy9uZXRic2QuaCAoTkVUQlNEX09TX0NQUF9CVUlMVElOU19DT01NT04pOiBEZWZpbmUgX191bml4X18KCWFuZCBhc3NlcnQgc3lzdGVtIGlzIGJzZC4KCjIwMDQtMDctMDQgIFJpY2hhcmQgU2FuZGlmb3JkICA8cnNhbmRpZm9AcmVkaGF0LmNvbT4KCgkqIGNvbmZpZy9taXBzL21pcHMuaCAoTUFTS19ERUJVR19DLCBUQVJHRVRfREVCVUdfQ19NT0RFKTogRGVsZXRlLgoJKFRBUkdFVF9TV0lUQ0hFUyk6IFJlbW92ZSAtbWRlYnVnYy4KCSogY29uZmlnL21pcHMvbWlwcy5tZCAoc2VxLCBzbmUsIHNndCwgc2dlLCBzbHQsIHNsZSwgc2d0dSwgc2dldSkKCShzbHR1LCBzbGV1KTogUmVtb3ZlIFRBUkdFVF9ERUJVR19DX01PREUgaGFuZGxpbmcuCgkoc2VxX1tzZF1pLCBzbmVfW3NkXWksIHNnZV9bc2RdaSwgc2xlX1tzZF1pX3JlZywgc2dldV9bc2RdaSkKCShzbGVfW3NkXWlfcmVnKTogRGVsZXRlLgoKMjAwNC0wNy0wNCAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogY29uZmlnL2lxMjAwMC9pcTIwMDAuYyAoVEFSR0VUX1NDSEVEX1VTRV9ERkFfUElQRUxJTkVfSU5URVJGQUNFKToKCURlZmluZS4KCSogY29uZmlnL2lxMjAwMC9pcTIwMDAubWQ6IFRyYW5zbGF0ZSBvbGQgcGlwZWxpbmUgZGVzY3JpcHRpb24gdG8gYW4KCWVxdWl2YWxlbnQgbmV3IG9uZS4KCjIwMDQtMDctMDQgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogdHJlZS1zc2EtY2NwLmMgKHNldF9yaHMpOiBDaGFuZ2UgZnVuY3Rpb24gdG8gcmV0dXJuIGEgYm9vbC4KCUVuc3VyZSB0aGUgcmVwbGFjZW1lbnQgcmhzIGlzIHZhbGlkIGdpbXBsZSBiZWZvcmUgcGVyZm9ybWluZwoJdGhlIHN1YnN0aXR1dGlvbi4gIFJldHVybiBmYWxzZSBpZiB0aGVzZSBzYW5pdHkgY2hlY2tzIGZhaWwuCgkoZm9sZF9zdG10KTogT25seSBzZXQgY2hhbmdlZCB0byB0cnVlLCBpZiBzZXRfcmhzIHJldHVybnMgdHJ1ZS4KCShleGVjdXRlX2ZvbGRfYWxsX2J1aWx0aW5zKTogT25seSBjYWxsIG1vZGlmeV9zdG10IGlmIHNldF9yaHMKCXN1Y2NlZWRzLgoKMjAwNC0wNy0wNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCglQUiBjLzE2MzQ4CgkqIGMtdHlwZWNrLmMgKGNfZmluaXNoX2xvb3ApOiBEb24ndCBjbGVhciBjb25kIGZvciBjb25kX2lzX2ZpcnN0IGxvb3BzLgoKMjAwNC0wNy0wNCAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZ3VyZS5hYyAocmFubGliX2ZsYWdzKTogTmV3IHZhcmlhYmxlLgoJKiBNYWtlZmlsZS5pbiAoUkFOTElCX0ZMQUdTKTogTmV3IHZhcmlhYmxlLgoJKGxpYmJhY2tlbmQuYSk6IFVzZSBpdC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDQtMDctMDQgIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogaWZjdnQuYyAobm9jZV90cnlfc2lnbl9tYXNrKTogQ2FsbCBlbWl0X3N0b3JlX2ZsYWcgdG8gZ2VuZXJhdGUKCWEgInNpZ24gbWFzayIgaW5zdGVhZCBvZiB1c2luZyBhc2hyX29wdGFiIGRpcmVjdGx5LgoKMjAwNC0wNy0wNCAgTmVpbCBCb290aCAgPG5laWxAZHVyb24uYWtpaGFiYXJhLmNvLnVrPgoKCSogZG9jL2NwcC50ZXhpOiBEb24ndCBkb2N1bWVudCB3aGF0IHdlIGRvIGZvciBpbGwtZm9ybWVkIGV4cHJlc3Npb25zLgoJKiBkb2MvY3Bwb3B0cy50ZXhpOiBDbGFyaWZ5IHByb2Nlc3Npbmcgb2YgY29tbWFuZC1saW5lIGRlZmluZXMuCgoyMDA0LTA3LTA0ICBHZXJhbGQgUGZlaWZlciAgPGdlcmFsZEBwZmVpZmVyLmNvbT4KCgkqIGRvYy9jb250cmliLnRleGkgKENvbnRyaWJ1dG9ycyk6IEFkanVzdCBsaW5rIGZvciBHTlUgQ2xhc3NwYXRoLgoKMjAwNC0wNy0wNCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHJ0bC5kZWYgKEFERFJFU1NPRik6IFJlbW92ZS4KCSogYWxpYXMuYyAocnR4X2VxdWFsX2Zvcl9tZW1yZWZfcCk6IERvbid0IGhhbmRsZSBhZGRyZXNzb2YuCgkoZmluZF9iYXNlX3Rlcm0sIG1lbXJlZnNfY29uZmxpY3RfcCk6IExpa2V3aXNlLgoJKiBjc2UuYyAoZml4ZWRfYmFzZV9wbHVzX3AsIGZpbmRfYmVzdF9hZGRyOiBMaWtld2lzZS4KCShmb2xkX3J0eCwgY3NlX2luc24sIHNldF9saXZlX3ApOiBMaWtld2lzZS4KCSogZHdhcmYyb3V0LmMgKG1lbV9sb2NfZGVzY3JpcHRvcik6IExpa2V3aXNlLgoJKGFkZF9sb2NhdGlvbl9vcl9jb25zdF92YWx1ZV9hdHRyaWJ1dGUpOiBMaWtld2lzZS4KCSogZW1pdC1ydGwuYyAoY29weV9pbnNuXzEpOiBMaWtld2lzZS4KCSogZXhwbG93LmMgKG1lbW9yeV9hZGRyZXNzKTogTGlrZXdpc2UuCgkqIGV4cG1lZC5jIChzdG9yZV9zcGxpdF9iaXRfZmllbGQpOiBMaWtld2lzZS4KCSogZXhwci5jIChleHBhbmRfZXhwcl9yZWFsXzEpOiBMaWtld2lzZS4KCSogZnVuY3Rpb24uYyAoaW5zdGFudGlhdGVfZGVjbAoJKGluc3RhbnRpYXRlX3ZpcnR1YWxfcmVnc18xLCBmaXhfbGV4aWNhbF9hZGRyKTogTGlrZXdpc2UuCgkqIGdlbnJlY29nLmMgKHByZWRzLCB2YWxpZGF0ZV9wYXR0ZXJuKTogTGlrZXdpc2UuCgkqIGludGVncmF0ZS5jIChjb3B5X3J0eF9hbmRfc3Vic3RpdHV0ZSk6IExpa2V3aXNlLgoJKiByZWNvZy5jIChnZW5lcmFsX29wZXJhbmQsIHJlZ2lzdGVyX29wZXJhbmQpOiBMaWtld2lzZS4KCShtZW1vcnlfYWRkcmVzc19wKTogTGlrd2lzZS4KCSogcmVsb2FkMS5jIChlbGltaW5hdGVfcmVncywgZWxpbWluYXRpb25fZWZmZWN0cyk6IExpa2V3aXNlLgoJKiBydGwuYyAoY29weV9ydHgpOiBMaWtld2lzZS4KCSogcnRsYW5hbC5jIChydHhfdW5zdGFibGVfcCwgcnR4X3Zhcmllc19wKTogTGlrZXdpc2UuCgkocnR4X2FkZHJfY2FuX3RyYXBfcCwgbm9uemVyb19hZGRyZXNzX3AsIGFkZHJlc3NfY29zdCk6IExpa2V3aXNlLgoJKiBydGxob29rcy5jIChnZW5fbG93cGFydF9nZW5lcmFsKTogTGlrZXdpc2UuCgkqIHN0bXQuYyAoZXhwYW5kX2FzbV9vcGVyYW5kcyk6IExpa2V3aXNlLgoJKiB3ZWIuYyAoZW50cnlfcmVnaXN0ZXIsIHJlcGxhY2VfcmVmLCB3ZWJfbWFpbik6IExpa2V3aXNlLgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoaW5wdXRfb3BlcmFuZCwgYWxwaGFfbGVnaXRpbWF0ZV9hZGRyZXNzX3AsCglhbHBoYV9leHBhbmRfYmxvY2tfbW92ZSwgYWxwaGFfZXhwYW5kX2Jsb2NrX2NsZWFyKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9hcm0vYXJtLmMgKHRodW1iX3J0eF9jb3N0cyk6IExpa2V3aXNlLgoJKiBjb25maWcvYzR4L2M0eC5jIChjNHhfdmFsaWRfb3BlcmFuZHMpOiBMaWtld2lzZS4KCSogY29uZmlnL2Zydi9mcnYuYyAobW92ZV9kZXN0aW5hdGlvbl9vcGVyYW5kLCBtb3ZlX3NvdXJjZV9vcGVyYW5kLAoJY29uZGV4ZWNfZGVzdF9vcGVyYW5kLCBjb25kZXhlY19zb3VyY2Vfb3BlcmFuZCwKCWNvbmRleGVjX21lbW9yeV9vcGVyYW5kKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9oODMwMC9oODMwMC5oIChQUkVESUNBVEVfQ09ERVMpOiBMaWtld2lzZS4KCSogY29uZmlnL2lhNjQvaWE2NC5jIChnZW5lcmFsX3hmbW9kZV9vcGVyYW5kKTogTGlrZXdpc2UuCgkoZGVzdGluYXRpb25feGZtb2RlX29wZXJhbmQpOiBMaWtld2lzZS4KCSogY29uZmlnL21pcHMvbWlwcy5oIChQUkVESUNBVEVfQ09ERVMpOiBMaWtld2lzZS4KCSogY29uZmlnL21uMTAzMDAvbW4xMDMwMC5jIChtbjEwMzAwX2FkZHJlc3NfY29zdF8xKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9zMzkwL3MzOTAuYyAoZ2VuZXJhbF9zX29wZXJhbmQpOiBMaWtld2lzZS4KCSogY29uZmlnL3MzOTAvczM5MC5tZCAobW92Kik6IExpa2V3aXNlLgoJKiBjb25maWcvc3BhcmMvc3BhcmMuaCAoUFJFRElDQVRFX0NPREVTKTogTGlrZXdpc2UuCgoJKiBjLXR5cGVjay5jIChjX21hcmtfYWRkcmVzc2FibGUpOiBEb24ndCBwdXRfdmFyX2ludG9fc3RhY2suCgkqIGV4cHIuYyAoZXhwYW5kX2V4cHJfcmVhbF8xKTogTGlrZXdpc2UuCgkqIHN0bXQuYyAoZXhwYW5kX2RlY2wpOiBMaWtld2lzZS4KCSogY29uZmlnL2M0eC9jNHguYyAoYzR4X2V4cGFuZF9idWlsdGluKTogTGlrZXdpc2UuCgoJKiBmdW5jdGlvbi5jIChzdHJ1Y3QgZml4dXBfcmVwbGFjZW1lbnQsIHN0cnVjdCBpbnNuc19mb3JfbWVtX2VudHJ5LAoJcG9zdHBvbmVkX2luc25zLCBwdXRfdmFyX2ludG9fc3RhY2ssIHB1dF9yZWdfaW50b19zdGFjaywKCXNjaGVkdWxlX2ZpeHVwX3Zhcl9yZWZzLCBmaXh1cF92YXJfcmVmcywgZmluZF9maXh1cF9yZXBsYWNlbWVudCwKCWZpeHVwX3Zhcl9yZWZzX2luc25zLCBmaXh1cF92YXJfcmVmc19pbnNuc193aXRoX2hhc2gsCglmaXh1cF92YXJfcmVmc19pbnNuLCBmaXh1cF92YXJfcmVmc18xLCBmaXh1cF9tZW1vcnlfc3VicmVnLAoJd2Fsa19maXh1cF9tZW1vcnlfc3VicmVnLCBmaXh1cF9zdGFja18xLCBvcHRpbWl6ZV9iaXRfZmllbGQsCglnZW5fbWVtX2FkZHJlc3NvZiwgZmx1c2hfYWRkcmVzc29mLCBwdXRfYWRkcmVzc29mX2ludG9fc3RhY2ssCglwdXJnZV9iaXRmaWVsZF9hZGRyZXNzb2ZfcmVwbGFjZW1lbnRzLCBwdXJnZV9hZGRyZXNzb2ZfcmVwbGFjZW1lbnRzLAoJcHVyZ2VfYWRkcmVzc29mXzEsIGluc25zX2Zvcl9tZW1faGFzaCwgaW5zbnNfZm9yX21lbV9jb21wLAoJc3RydWN0IGluc25zX2Zvcl9tZW1fd2Fsa19pbmZvLCBpbnNuc19mb3JfbWVtX3dhbGssCgljb21wdXRlX2luc25zX2Zvcl9tZW0sIGlzX2FkZHJlc3NvZiwgcHVyZ2VfYWRkcmVzc29mLCBzZXRqbXBfcHJvdGVjdCwKCXNldGptcF9wcm90ZWN0X2FyZ3MpOiBSZW1vdmUuCgkocHVzaF9mdW5jdGlvbl9jb250ZXh0X3RvKTogRG9uJ3QgaGFuZGxlIHZhcl9yZWZzX3F1ZXVlLgoJKHBvcF9mdW5jdGlvbl9jb250ZXh0X2Zyb20sIGZyZWVfYWZ0ZXJfY29tcGlsYXRpb24pOiBMaWtld2lzZS4KCShpbnN0YW50aWF0ZV92aXJ0dWFsX3JlZ3MpOiBEb24ndCBoYW5kbGUgcGFybV9yZWdfc3RhY2tfbG9jLgoJKGFzc2lnbl9wYXJtcywgYWxsb2NhdGVfc3RydWN0X2Z1bmN0aW9uKTogTGlrZXdpc2UuCgkodXNlX3JlZ2lzdGVyX2Zvcl9kZWNsKTogTmV3LgoJKGV4cGFuZF9mdW5jdGlvbl9lbmQpOiBEb24ndCBzZXRqbXBfcHJvdGVjdC4KCSogZnVuY3Rpb24uaCAoc3RydWN0IGVtaXRfc3RhdHVzKTogVXBkYXRlIGNvbW1lbnRhcnkuCgkoc3RydWN0IGZ1bmN0aW9uKTogUmVtb3ZlIHhfbWF4X3Bhcm1fcmVnLCB4X3Bhcm1fcmVnX3N0YWNrX2xvYy4KCShtYXhfcGFybV9yZWcsIHBhcm1fcmVnX3N0YWNrX2xvYyk6IFJlbW92ZS4KCSogcGFzc2VzLmMgKERGSV9hZGRyZXNzb2YpOiBSZW1vdmUuCgkoZHVtcF9maWxlX2luZm8pOiBSZW1vdmUgYWRkcmVzc29mLgoJKHJlc3Rfb2ZfaGFuZGxlX2FkZHJlc3NvZik6IFJlbW92ZS4KCShyZXN0X29mX2NvbXBpbGF0aW9uKTogRG9uJ3QgY2FsbCBpdC4KCSogcnRsLmggKEFERFJFU1NPRl9SRUdOTywgQUREUkVTU09GX0RFQ0wpOiBSZW1vdmUuCgkqIHN0bXQuYyAoZXhwYW5kX2RlY2wpOiBVc2UgdXNlX3JlZ2lzdGVyX2Zvcl9kZWNsLgoJKiB0cmVlLmg6IFVwZGF0ZSBkZWNscy4KCSogd2ViLmMgKG1hcmtfYWRkcmVzc29mKTogUmVtb3ZlLgoJKiBkb2MvaW52b2tlLnRleGkgKC1kRik6IFJlbW92ZS4KCjIwMDQtMDctMDMgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKHNwaWxsX3hmbW9kZV9vcGVyYW5kKTogVXNlIGFzc2lnbl9zdGFja190ZW1wCglpbnN0ZWFkIG9mIGdlbl9tZW1fYWRkcmVzc29mLgoJKiBjb25maWcvaWE2NC9pYTY0Lm1kIChtb3Z4Zik6IFVzZSBhc3NpZ25fc3RhY2tfdGVtcCB0byBoYW5kbGUKCVRJbW9kZSBvdXRwdXQgcmVnaXN0ZXIuCgoyMDA0LTA3LTAzICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzE2MzQxCgkqIHRyZWUtc3JhLmMgKHNyYV93YWxrX2Z1bmN0aW9uKTogSW5jcmVtZW50IHRvIG5leHQgc3RtdCBiZWZvcmUKCXByb2Nlc3NpbmcgdGhlIGN1cnJlbnQgc3RtdC4KCShzcmFfaW5zZXJ0X2FmdGVyKTogQWx3YXlzIHVzZSBCU0lfU0FNRV9TVE1ULgoKMjAwNC0wNy0wMyAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIHRyZWUtc3NhLWRvbS5jIChzaW1wbGlmeV9yaHNfYW5kX2xvb2t1cF9hdmFpbF9leHByKTogRG9uJ3QgZm9sZAoJZnAgcGx1cyB3aXRoIG1pbnVzLgoKMjAwNC0wNy0wMyAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiB0cmVlLmMgKHR5cGVfaGFzaF9lcSk6IEFsbG93IFRZUEVfTUlOX1ZBTFVFIHdoaWNoIGNvbXBhcmVzIGVxdWFsCgl3aXRoIHRyZWVfaW50X2NzdF9lcXVhbC4KCjIwMDQtMDctMDMgIEFuZHJlYXMgU2Nod2FiICA8c2Nod2FiQHN1c2UuZGU+CgoJKiBjb25maWcvaWE2NC9pYTY0Lm1kOiBEZWZpbmUgbmV3IGF0dHJpYnV0ZSAiZW1wdHkiLgoJKHByb2xvZ3VlX3VzZSwgbm9wX3gsIGluc25fZ3JvdXBfYmFycmllcik6IFNldCBpdC4KCgkqIGNvbmZpZy9pYTY0L2lhNjQuYyAoaWE2NF9yZW9yZyk6IFdoZW4gbG9va2luZyBmb3IgdHJhaWxpbmcgY2FsbAoJc2tpcCBvdmVyICJlbXB0eSIgaW5zbnMuCgoyMDA0LTA3LTAzICBSaWNoYXJkIEtlbm5lciAgPGtlbm5lckB2bHNpMS51bHRyYS5ueXUuZWR1PgoKCSogdHJlZS1pbmxpbmUuYyAoaW5pdGlhbGl6ZV9pbmxpbmVkX3BhcmFtZXRlcnMpOiBQYXNzIHByb3BlciBmdW5jdGlvbgoJY29udGV4dCB0byBnaW1wbGlmeV9ib2R5LgoJKHdhbGtfdHJlZSk6IERvbid0IHdhbGsgaW50byB0eXBlcyB0d2ljZS4KCSh3YWxrX3RyZWUsIGNhc2UgUE9JTlRFUl9UWVBFKTogRGVhbCB3aXRoIG11dHVhbGx5IHJlY3Vyc2l2ZSBwb2ludGVycy4KCgkqIHRyZWUtc3JhLmMgKGdlbmVyYXRlX2VsZW1lbnRfaW5pdCk6IFJlbW92ZSBhbnkgdXNlbGVzcyBjb252ZXJzaW9ucy4KCgkqIGdpbXBsaWZ5LmMgKGdpbXBsaWZ5X2NvbnZlcnNpb24pOiBSZW1vdmUgc3RyaXBwaW5nIHVzZWxlc3MKCWNvbnZlcnNpb25zIGZyb20gaGVyZS4KCShnaW1wbGlmeV9leHByKTogUHV0IGl0IGhlcmUsIGluIHBsYWNlIG9mIGNhbGwgdG8gU1RSSVBfTUFJTl9UWVBFX05PUFMuCgkoZ2ltcGxpZnlfbW9kaWZ5X2V4cHJfdG9fbWVtY3B5LCBnaW1wbGlmeV92YXJpYWJsZV9zaXplZF9jb21wYXJlKToKCVVuc2hhcmUgYmVmb3JlIHN1YnN0aXR1dGluZyBQTEFDRUhPTERFUl9FWFBSLgoJKGdpbXBsaWZ5X21vZGlmeV9leHByX3RvX21lbXNldCk6IExpa2V3aXNlLgoJUGFzcyBhZGRyZXNzIG9mIFRPIHRvIG1lbXNldCwgbm90IFRPIGl0c2VsZi4KCShnaW1wbGlmeV9pbml0X2NvbnN0cnVjdG9yKTogTWFrZSBjb3B5IG9mIE9CSkVDVCBzbyB3ZSBoYXZlIGl0IGVhY2gKCXRpbWUgd2UgbWFrZSBhbiBleHByZXNzaW9uICh0byBtYXRjaCBhIFBMQUNFSE9MREVSX0VYUFIpLgoKCSogdHJlZS1zc2EuYyAodHJlZV9zc2FfdXNlbGVzc190eXBlX2NvbnZlcnNpb24pOiBBbHNvIGxvb2sgYXQKCVZJRVdfQ09OVkVSVF9FWFBSIGFuZCBOT05fTFZBTFVFX0VYUFIuCgkqIHRyZWUtc3NhLWNjcC5jIChmb2xkX3N0bXQpOiBDYWxsIGp1c3QgU1RSSVBfVVNFTEVTU19UWVBFX0NPTlZFUlNJT04uCgkqIHRyZWUtc3NhLWRvbS5jIChsb2NhbF9mb2xkKTogTGlrZXdpc2UuCgoJKiBsYW5naG9va3MtZGVmLmggKExBTkdfSE9PS1NfVFlQRV9NQVhfU0laRSk6IE5ldyBsYW5naG9vay4KCSogbGFuZ2hvb2tzLmggKHN0cmN0IGxhbmdfaG9va3MpOiBOZXcgZmllbGQgdHlwZV9tYXhfc2l6ZS4KCSogZnVuY3Rpb24uYyAoYXNzaWduX3RlbXApOiBDYWxsIGl0LgoKMjAwNC0wNy0wMyAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogY29uZmlnL3NoL3NoLmMgKHNoX3VzZV9kZmFfaW50ZXJmYWNlKTogQWRkIFRBUkdFVF9TSDEuCgkqIGNvbmZpZy9zaC9zaC5tZDogQ29udmVydCB0aGUgU0gxIHBpcGVsaW5lIGRlc2NyaXB0aW9uIHRvCglhIERGQSBtb2RlbC4KCjIwMDQtMDctMDIgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjLWRlY2wuYyAoc3RydWN0IGNfYmluZGluZyk6IFJlbW92ZSBjb250b3VyIGZpZWxkOyBhZGQKCWRlcHRoLCBpbnZpc2libGUsIG5lc3RlZCBmaWVsZHMuCgkoQl9JTl9TQ09QRSwgQl9JTl9DVVJSRU5UX1NDT1BFLCBCX0lOX0ZJTEVfU0NPUEUpCgkoQl9JTl9FWFRFUk5BTF9TQ09QRSk6IE5ldyBjb252ZW5pZW5jZSBtYWNyb3MuCgkoYmluZCk6IEFkZCBpbnZpc2libGUgYW5kIG5lc3RlZCBhcmd1bWVudHMuIEluaXRpYWxpemUKCW5ldyBmaWVsZHMgb2Ygc3RydWN0IGNfYmluZGluZzsgYWRqdXN0IGxvb3Agc2Nhbm5pbmcgZm9yCglpbnNlcnRpb24gcG9pbnQuCgkoZnJlZV9iaW5kaW5nX2FuZF9hZHZhbmNlKTogQ2xlYXIgc3RydWN0dXJlIHdpdGggbWVtc2V0LgoJKHBvcF9zY29wZSk6IEFkanVzdCB0byBtYXRjaC4gIFNldCBERUNMX0NPTlRFWFQgb24gZXZlcnl0aGluZwoJaW4gZmlsZSBzY29wZSwgZXZlbiBpZiBpdCdzIGluIGV4dGVybmFsIHNjb3BlIHRvby4KCShwdXNoZGVjbCk6IEFkanVzdCB0byBtYXRjaC4gIENyZWF0ZSBpbnZpc2libGUgZmlsZS1zY29wZQoJZGVjbGFyYXRpb25zIGZvciBibG9jay1zY29wZSBmb3J3YXJkIGRlY2xhcmF0aW9ucyBvZiBzdGF0aWMgZnVuY3Rpb25zLgoJKHB1c2h0YWcsIHdhcm5faWZfc2hhZG93aW5nLCBwdXNoZGVjbF90b3BfbGV2ZWwsIGltcGxpY2l0bHlfZGVjbGFyZSkKCSh1bmRlY2xhcmVkX3ZhcmlhYmxlLCBsb29rdXBfbGFiZWwsIGRlY2xhcmVfbGFiZWwsIGRlZmluZV9sYWJlbCkKCShsb29rdXBfdGFnLCBsb29rdXBfbmFtZSwgbG9va3VwX25hbWVfaW5fc2NvcGUsIGJ1aWx0aW5fZnVuY3Rpb24pCgkoY19tYWtlX2ZuYW1lX2RlY2wsIHN0b3JlX3Bhcm1fZGVjbHNfbmV3c3R5bGUsIGlkZW50aWZpZXJfZ2xvYmFsX3ZhbHVlKQoJKHN0b3JlX3Bhcm1fZGVjbHNfb2xkc3R5bGUpOiBBZGp1c3QgdG8gbWF0Y2guCgkoZGlhZ25vc2VfbWlzbWF0Y2hlZF9kZWNscyk6IENvcnJlY3QgaGFuZGxpbmcgb2YgbGlua2FnZSBjbGFzaGVzLgoJKG1lcmdlX2RlY2xzKTogTm8gbmVlZCB0byBjb3B5IENfREVDTF9JTl9FWFRFUk5BTF9TQ09QRS4KCgkqIGMtdHJlZS5oIChDX0RFQ0xfSU5fRVhURVJOQUxfU0NPUEUpOiBEZWxldGUuCgkoQ19ERUNMX0RFQ0xBUkVEX0JVSUxUSU4sIENfREVDTF9SRUdJU1RFUik6IFNsaWRlIGRvd24gb25lLgoKMjAwNC0wNy0wMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGMtZGVjbC5jIChncm9rZGVjbGFyYXRvcik6IERvbid0IGZyb2IgY3VycmVudF9mdW5jdGlvbl9kZWNsCglhcm91bmQgdmFyaWFibGVfc2l6ZS4KCShzZXRfZGVjbF9ub25sb2NhbCk6IFJlbW92ZS4KCShzdG9yZV9wYXJtX2RlY2xzKTogQWRkIHN0bXRzIGZvciBwZW5kaW5nIHNpemVzLgoJKiBjYWxscy5jIChjYWxsc19mdW5jdGlvbiwgY2FsbHNfZnVuY3Rpb25fMSk6IFJlbW92ZS4KCShwcmVjb21wdXRlX2FyZ3VtZW50cyk6IERvbid0IGNhbGwgaXQuCgkqIGNmZ2V4cGFuZC5jIChzZXRfc2F2ZV9leHByX2NvbnRleHQpOiBSZW1vdmUuCgkodHJlZV9leHBhbmRfY2ZnKTogRG9uJ3QgY2FsbCBpdC4KCSogZHdhcmYyb3V0LmMgKGFkZF9ib3VuZF9pbmZvKTogRG9uJ3QgaGFuZGxlIFNBVkVfRVhQUi4KCShkd2FyZjJvdXRfZmluaXNoKTogTGlrZXdpc2UuCgkqIGV4cHIuYyAoZW1pdF9ibG9ja19tb3ZlKTogQWRqdXN0IGFkZHJlc3NlcyB0byBCTEttb2RlLgoJKHN0b3JlX2NvbnN0cnVjdG9yKTogRG9uJ3QgcHJlLWV2YWx1YXRlIFNBVkVfRVhQUi4KCShzYWZlX2Zyb21fcCk6IERvbid0IHF1ZXVlIFNBVkVfRVhQUnMuCgkoZXhwYW5kX2V4cHJfcmVhbF8xIDxjYXNlIFNBVkVfRVhQUj4pOiBSZXdyaXRlIHRvIGV4cGVjdCwKCW9yIGJ1aWxkIHBsYWluIFZBUl9ERUNMcy4KCSogZm9sZC1jb25zdC5jICh0d292YWxfY29tcGFyaXNvbl9wKTogRG9uJ3QgbG9vayBhdCBTQVZFX0VYUFJfUlRMLgoJKGZvbGQpOiBMaWtld2lzZS4KCShmb2xkX2NoZWNrc3VtX3RyZWUpOiBEb24ndCBzcGVjaWFsLWNhc2UgU0FWRV9FWFBSLgoJKiBmdW5jdGlvbi5jIChmcmVlX2FmdGVyX2NvbXBpbGF0aW9uKTogRG9uJ3QgY2xlYXIgeF9zYXZlX2V4cHJfcmVncy4KCShwdXRfdmFyX2ludG9fc3RhY2spOiBEb24ndCBoYW5kbGUgU0FWRV9FWFBSLgoJKGdlbl9tZW1fYWRkcmVzc29mKTogTGlrZXdpc2UuCgkqIGZ1bmN0aW9uLmggKHN0cnVjdCBmdW5jdGlvbik6IFJlbW92ZSB4X3NhdmVfZXhwcl9yZWdzLgoJKHNhdmVfZXhwcl9yZWdzKTogUmVtb3ZlLgoJKiBnZW5ndHlwZS5jIChhZGp1c3RfZmllbGRfdHJlZV9leHApOiBEb24ndCBzcGVjaWFsLWNhc2UgU0FWRV9FWFBSLgoJKiBwcmludC10cmVlLmMgKHByaW50X25vZGUpOiBEb24ndCBkdW1wIFNBVkVfRVhQUl9OT1BMQUNFSE9MREVSLgoJKiBzdG9yLWxheW91dC5jICh2YXJpYWJsZV9zaXplKTogRG9uJ3Qgc2V0IGl0LgoJKGZvcmNlX3R5cGVfc2F2ZV9leHBycywgZm9yY2VfdHlwZV9zYXZlX2V4cHJzXzEpOiBSZW1vdmUuCgkqIHRyZWUtaW5saW5lLmMgKHJlbWFwX3NhdmVfZXhwcik6IFJlbW92ZSBmbiBhcmd1bWVudC4gIFVwZGF0ZQoJYWxsIGNhbGxlcnMuICBEb24ndCBzZXQgU0FWRV9FWFBSX0NPTlRFWFQuCgkqIHRyZWUtaW5saW5lLmggKHJlbWFwX3NhdmVfZXhwcik6IFVwZGF0ZSBkZWNsLgoJKiB0cmVlLmMgKHNhdmVfZXhwcik6IFVwZGF0ZSBidWlsZCBzaXplLgoJKGZpcnN0X3J0bF9vcCk6IERvbid0IGhhbmRsZSBTQVZFX0VYUFIuCgkodW5zYXZlX2V4cHJfMSwgY29udGFpbnNfcGxhY2Vob2xkZXJfcCk6IExpa2V3aXNlLgoJKGRlY2xfZnVuY3Rpb25fY29udGV4dCk6IExpa2V3aXNlLgoJKiB0cmVlLmRlZiAoU0FWRV9FWFBSKTogUmVtb3ZlIGFyZ3MgMSBhbmQgMi4KCSogdHJlZS5oIChTQVZFX0VYUFJfQ09OVEVYVCwgU0FWRV9FWFBSX1JUTCk6IFJlbW92ZS4KCShTQVZFX0VYUFJfTk9QTEFDRUhPTERFUiwgU0FWRV9FWFBSX1BFUlNJU1RFTlRfUCk6IFJlbW92ZS4KCjIwMDQtMDctMDMgIEpvc2VwaCBTLiBNeWVycyAgPGpzbUBwb2x5b21pbm8ub3JnLnVrPgoKCSogZG9jL2J1Z3JlcG9ydC50ZXhpLCBkb2MvY29uZmlndGVybXMudGV4aSwgZG9jL2NvbnRyaWIudGV4aSwKCWRvYy9jb250cmlidXRlLnRleGksIGRvYy9jcHAudGV4aSwgZG9jL2NwcGludGVybmFscy50ZXhpLAoJZG9jL2V4dGVuZC50ZXhpLCBkb2MvaW5zdGFsbC50ZXhpLCBkb2MvaW52b2tlLnRleGksIGRvYy9tZC50ZXhpLAoJZG9jL3BvcnRhYmlsaXR5LnRleGksIGRvYy90cmVlLXNzYS50ZXhpLCBkb2MvdHJvdWJsZS50ZXhpOiBBdm9pZAoJc29tZSBmaXJzdC1wZXJzb24gcmVmZXJlbmNlcyBhbmQgcGF0cm9uaXppbmcgY29tbWVudHMuICBCYXNlZCBvbgoJcHJpbnRlZCBtYW51YWwuCgkqIGRvYy9pbnZva2UudGV4aTogRG9uJ3QgcmVmZXJlbmNlIGZvcnRyYW5AZ251Lm9yZy4KCSogZG9jL3Ryb3VibGUudGV4aSAoV2FybmluZyB3aGVuIGEgbm9uLXZvaWQgZnVuY3Rpb24gdmFsdWUgaXMKCWlnbm9yZWQpOiBSZXdyaXRlLiAgRnJvbSBSdXNzIEFsbGJlcnkgYW5kIENocmlzIERldmVycy4KCjIwMDQtMDctMDIgIERhbmllbCBCZXJsaW4gIDxkYmVybGluQGRiZXJsaW4ub3JnKQoKCSogdHJlZS1zc2EtcHJlLmMgKGJpdG1hcF9zZXRfdCk6IE5ldy4KCShiYl92YWx1ZV9zZXRzKTogYXZhaWxfb3V0IGlzIG5vdyBhIGJpdG1hcF9zZXRfdC4KCShiaXRtYXBfZmluZF9sZWFkZXIpOiBOZXcgZnVuY3Rpb24uCgkoYml0bWFwX3ZhbHVlX2luc2VydF9pbnRvX3NldCk6IERpdHRvLgoJKGJpdG1hcF9zZXRfY29weSk6IERpdHRvLgoJKGJpdG1hcF92YWx1ZV9yZXBsYWNlX2luX3NldCk6IERpdHRvLgoJKGJpdG1hcF9zZXRfY29udGFpbnNfdmFsdWUpOiBEaXR0by4KCShiaXRtYXBfc2V0X25ldyk6IERpdHRvLgoJKGJpdG1hcF9zZXRfcG9vbCk6IE5ldyBwb29sLgoJKGZpbmRfb3JfZ2VuZXJhdGVfZXhwcmVzc2lvbik6IFVzZSBiaXRtYXBfIGZ1bmN0aW9ucyBvbiBBVkFJTCBzZXRzLgoJKGluc2VydF9hdXgpOiBEaXR0by4KCShhZGRfdG9fc2V0cyk6IERpdHRvLgoJKGNvbXB1dGVfYXZhaWwpOiBEaXR0bwoJKGVsaW1pbmF0ZSk6IERpdHRvLgoJKGluaXRfcHJlKTogRGl0dG8uCgkoZmluaV9wcmUpOiBEaXR0by4KCShleGVjdXRlX3ByZSk6IERpdHRvLgoKMjAwNC0wNy0wMiAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBjb25maWcvcnM2MDAwL3JzNjAwMC5jIChzdHJ1Y3QgcHJvY2Vzc29yX2Nvc3RzKTogTmV3IHN0cnVjdHVyZQoJdXNlZCB0byBob2xkIGluc3RydWN0aW9uIGxhdGVuY2llcy9zaXplcyBmb3IgcHJvY2Vzc29yIHR5cGVzLgoJKHJzNjAwMF9jb3N0KTogTmV3IGdsb2JhbCB2YXJpYWJsZSBwb2ludGluZyB0byBjdXJyZW50IENQVSdzIGNvc3RzLgoJKHJzNjAwMF9vdmVycmlkZV9vcHRpb25zKTogSW5pdGlhbGl6ZSByczYwMDBfY29zdCB0byBwb2ludCB0byB0aGUKCWFwcHJvcHJpYXRlIGNvc3QgdGFibGUgYmFzZWQgdXBvbiByczYwMDBfY3B1IGFuZCBvcHRpbWl6ZV9zaXplLgoJKHJzNjAwMF9ydHhfY29zdHMpOiBVc2UgcnM2MDAwX2Nvc3QgdG8gYXZvaWQgaGFyZGNvZGluZyBwcm9jZXNzb3IKCXRpbWluZ3MgaW5saW5lLgoKMjAwNC0wNy0wMiAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KCgkqIGV4cG1lZC5jIChtYWtlX3RyZWUpOiBEb24ndCB1c2UgU0VUX0RFQ0xfUlRMLgoKMjAwNC0wNy0wMiAgU3RldmVuIEJvc3NjaGVyICA8c3RldmVuYkBzdXNlLmRlPgoKCSogdHJlZS1mbG93LmggKGJiX2Fubl9kKTogUmVtb3ZlIGVwaGlfbm9kZXMgZmllbGQuCgoyMDA0LTA3LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY29uZmlnL2FscGhhL2FscGhhLmMgKHN0cnVjdCBtYWNoaW5lX2Z1bmN0aW9uKTogQWRkIGdwX3NhdmVfcnR4LgoJKGFscGhhX2dwX3NhdmVfcnR4KTogVXNlIGFzc2lnbl9zdGFja19sb2NhbCBpbnN0ZWFkIG9mCglnZW5fbWVtX2FkZHJlc3NvZi4KCjIwMDQtMDctMDEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoc3RydWN0IGFscGhhX3J0eF9jb3N0X2RhdGEpOiBBZGQgaW50X2Rpdi4KCShhbHBoYV9ydHhfY29zdF9kYXRhKTogVXBkYXRlIHRvIG1hdGNoLgoJKGFscGhhX3J0eF9jb3N0X3NpemUpOiBOZXcuCgkoYWxwaGFfcnR4X2Nvc3RzKTogSG9ub3Igb3B0aW1pemVfc2l6ZS4KCjIwMDQtMDctMDEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBnaW1wbGUtbG93LmMgKGxvd2VyX2Z1bmN0aW9uX2JvZHkpOiBEb24ndCByZXNldF9ibG9ja19jaGFuZ2VzIGhlcmUuCgkqIGNmZ2V4cGFuZC5jICh0cmVlX2V4cGFuZF9jZmcpOiBEbyBpdCBoZXJlLgoJKiBjb25maWcvYWxwaGEvYWxwaGEuYyAoYWxwaGFfb3V0cHV0X21pX3RodW5rX29zZik6IEFuZCBoZXJlLgoJKiBjb25maWcvaWE2NC9pYTY0LmMgKGlhNjRfb3V0cHV0X21pX3RodW5rKTogQW5kIGhlcmUuCgkqIGNvbmZpZy9taXBzL21pcHMuYyAobWlwc19vdXRwdXRfbWlfdGh1bmspOiBBbmQgaGVyZS4KCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAocnM2MDAwX291dHB1dF9taV90aHVuayk6IEFuZCBoZXJlLgoJKiBjb25maWcvc2gvc2guYyAoc2hfb3V0cHV0X21pX3RodW5rKTogQW5kIGhlcmUuCgkqIGNvbmZpZy9zcGFyYy9zcGFyYy5jIChzcGFyY19vdXRwdXRfbWlfdGh1bmspOiBBbmQgaGVyZS4KCjIwMDQtMDctMDEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiB0cmVlLmRlZiAoUlRMX0VYUFIpOiBSZW1vdmUuCgkqIGMtdHlwZWNrLmMgKGx2YWx1ZV9wKTogRG9uJ3QgaGFuZGxlIGl0LgoJKiBleHByLmMgKHNhZmVfZnJvbV9wKTogTGlrZXdpc2UuCgkoZXhwYW5kX2V4cHJfcmVhbF8xKTogTGlrZXdpc2UuCgkqIGZvbGQtY29uc3QuYyAobm9uX2x2YWx1ZSwgb3BlcmFuZF9lcXVhbF9wLCBmb2xkKTogTGlrZXdpc2UuCgkoZm9sZF9jaGVja3N1bV90cmVlLCB0cmVlX2V4cHJfbm9ubmVnYXRpdmVfcCk6IExpa2V3aXNlLgoJKiBnZW5ndHlwZS5jIChhZGp1c3RfZmllbGRfdHJlZV9leHApOiBMaWtld2lzZS4KCSogc3RtdC5jICh3YXJuX2lmX3VudXNlZF92YWx1ZSk6IExpa2V3aXNlLgoJKiB0cmVlLWdpbXBsZS5jIChyZWNhbGN1bGF0ZV9zaWRlX2VmZmVjdHMpOiBMaWtld2lzZS4KCSogdHJlZS1wcmV0dHktcHJpbnQuYyAoZHVtcF9nZW5lcmljX25vZGUpOiBMaWtld2lzZS4KCSogdHJlZS5jIChtYWtlX25vZGVfc3RhdCwgZmlyc3RfcnRsX29wLCB1bnNhdmVfZXhwcl8xKTogTGlrZXdpc2UuCgkodW5zYWZlX2Zvcl9yZWV2YWwsIHN0YWJpbGl6ZV9yZWZlcmVuY2UsIGJ1aWxkMV9zdGF0KTogTGlrZXdpc2UuCgkqIHRyZWUuaCAoUlRMX0VYUFJfU0VRVUVOQ0UsIFJUTF9FWFBSX1JUTCwgUlRMX0VYUFJfQUxUX1JUTCk6IFJlbW92ZS4KCgkqIHN0bXQuYyAoc3RydWN0IHN0bXRfc3RhdHVzKTogUmVtb3ZlIHhfbGFzdF9leHByX3R5cGUsCgl4X2xhc3RfZXhwcl92YWx1ZSwgeF9sYXN0X2V4cHJfYWx0X3J0bCwgeF9leHByX3N0bXRzX2Zvcl92YWx1ZS4KCShsYXN0X2V4cHJfdHlwZSwgbGFzdF9leHByX3ZhbHVlLCBsYXN0X2V4cHJfYWx0X3J0bCk6IFJlbW92ZS4KCShleHBhbmRfZXhwcl9zdG10KTogTWVyZ2Ugd2l0aCBleHBhbmRfZXhwcl9zdG10X3ZhbHVlLiAgUmVtb3ZlCglhbGwgdGhlIGJpdHMgdGhhdCB0cmFja2VkIGxhc3RfZXhwci4KCShleHBhbmRfZW5kX2JpbmRpbmdzKTogRG9uJ3QgdHJhY2sgbGFzdF9leHByLgoJKGV4cGFuZF9zdGFydF9zdG10X2V4cHIsIGV4cGFuZF9lbmRfc3RtdF9leHByKTogUmVtb3ZlLgoJKGNsZWFyX2xhc3RfZXhwcik6IFJlbW92ZS4KCShleHBhbmRfYXNtKTogRG9uJ3QgY2FsbCBpdC4KCShleHBhbmRfYXNtX29wZXJhbmRzLCBleHBhbmRfZW5kX2NvbmQpOiBMaWtld2lzZS4KCShleHBhbmRfbmFrZWRfcmV0dXJuLCBleHBhbmRfbnVsbF9yZXR1cm5fMSk6IExpa2V3aXNlLgoJKiBjLXR5cGVjay5jIChjX2JlZ2luX2NvbXBvdW5kX3N0bXQpOiBMaWtld2lzZS4KCSogY2ZnZXhwYW5kLmMgKGV4cGFuZF9ibG9jayk6IFVzZSBleHBhbmRfZXhwcl9zdG10LgoJKiBleHByLmMgKGV4cGFuZF9leHByX3JlYWxfMSk6IExpa2V3aXNlLgoJKiB0cmVlLmg6IFVwZGF0ZSBwcm90b3R5cGVzLgoKCSogZnVuY3Rpb24uaCAoc3RydWN0IHNlcXVlbmNlX3N0YWNrKTogUmVtb3ZlIHNlcXVlbmNlX3J0bF9leHByLgoJKHN0cnVjdCBlbWl0X3N0YXR1cyk6IFJlbW92ZSBzZXF1ZW5jZV9ydGxfZXhwci4KCShzdHJ1Y3QgZnVuY3Rpb24pOiBSZW1vdmUgeF9ydGxfZXhwcl9jaGFpbi4KCShzZXFfcnRsX2V4cHIsIHJ0bF9leHByX2NoYWluKTogUmVtb3ZlLgoJKiBmdW5jdGlvbi5jIChzdHJ1Y3QgdGVtcF9zbG90KTogUmVtb3ZlIHJ0bF9leHByLgoJKGFzc2lnbl9zdGFja190ZW1wX2Zvcl90eXBlKTogRG9uJ3Qgc2V0IGl0LgoJKGZyZWVfdGVtcF9zbG90cywgcG9wX3RlbXBfc2xvdHMpOiBEb24ndCBjaGVjayBpdC4KCShmcmVlX2FmdGVyX2NvbXBpbGF0aW9uKTogRG9uJ3QgY2xlYXIgeF9ydGxfZXhwcl9jaGFpbi4KCShmaXh1cF92YXJfcmVmcyk6IERvbid0IHNlYXJjaCBpdC4KCShwcmVzZXJ2ZV9ydGxfZXhwcl9yZXN1bHQsIGZyZWVfdGVtcHNfZm9yX3J0bF9leHByKTogUmVtb3ZlLgoJKiBlbWl0LXJ0bC5jIChzdGFydF9zZXF1ZW5jZSk6IERvbid0IHVzZSBzZXF1ZW5jZV9ydGxfZXhwcgoJb3Igc2VxX3J0bF9leHByLgoJKHB1c2hfdG9wbW9zdF9zZXF1ZW5jZSk6IExpa2V3aXNlLgoJKGVuZF9zZXF1ZW5jZSwgaW5pdF9lbWl0KTogTGlrZXdpc2UuCgkoc3RhcnRfc2VxdWVuY2VfZm9yX3J0bF9leHByKTogUmVtb3ZlLgoJKiBleHBtZWQuYyAobWFrZV90cmVlKTogQnVpbGQgYSBWQVJfREVDTCBpbnN0ZWFkIG9mIGFuIFJUTF9FWFBSLgoJKiBydGwuaCAocHJlc2VydmVfcnRsX2V4cHJfcmVzdWx0KTogUmVtb3ZlLgoKMjAwNC0wNy0wMiAgS2F6dSBIaXJhdGEgIDxrYXp1QGNzLnVtYXNzLmVkdT4KCgkqIGlmY3Z0LmMsIG1vZHVsby1zY2hlZC5jLCB0cmVlLWFsaWFzLWNvbW1vbi5jLCB0cmVlLXNyYS5jLAoJdHJlZS1zc2EtY29weS5jLCB0cmVlLXNzYS1kb20uYywgdHJlZS1zc2EtcHJlLmM6IEZpeCBjb21tZW50Cgl0eXBvcy4KCjIwMDQtMDctMDIgIEFhcm9uIFcuIExhRnJhbWJvaXNlIDxhYXJvbnJhb2xldGUzNkBhYXJvbndsLmNvbT4KCgkqIGdjYy5jIChTVEFOREFSRF9TVEFSVEZJTEVfUFJFRklYXzEpOiBEZWZpbmUuCgkoU1RBTkRBUkRfU1RBUlRGSUxFX1BSRUZJWF8yKTogRGVmaW5lLgoJKHN0YW5kYXJkX3N0YXJ0ZmlsZV9wcmVmaXhfMSk6IEluaXRpYWxpemUgdG8KCVNUQU5EQVJEX1NUQVJURklMRV9QUkVGSVhfMS4KCShzdGFuZGFyZF9zdGFydGZpbGVfcHJlZml4XzIpOiBJbml0aWFsaXplIHRvCglTVEFOREFSRF9TVEFSVEZJTEVfUFJFRklYXzIuCgkqIGNvbmZpZy9pMzg2L21pbmd3MzIuaCAoTURfU1RBUlRGSUxFX1BSRUZJWCk6IFJlbW92ZS4KCShTVEFOREFSRF9TVEFSVEZJTEVfUFJFRklYXzEpOiBEZWZpbmUuCgkoU1RBTkRBUkRfU1RBUlRGSUxFX1BSRUZJWF8yKTogRGVmaW5lLgoJKiBkb2MvdG0udGV4aSAoU1RBTkRBUkRfU1RBUlRGSUxFX1BSRUZJWF8xKTogRG9jdW1lbnQuCgkoU1RBTkRBUkRfU1RBUlRGSUxFX1BSRUZJWF8yKTogRG9jdW1lbnQuCgoyMDA0LTA3LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogdHJlZS1zcmEuYyAoc3JhX3dhbGtfZXhwcik6IERvbid0IG1heWJlX2xvb2t1cF9lbGVtZW50X2Zvcl9leHByCglpbiBvcmRlciB0byBkaXNhYmxlIHNjYWxhcml6YXRpb24uICBJbnN0ZWFkIHNldCBhIGZsYWcgYW5kIHdhaXQKCWZvciBhIGNhbmRpZGF0ZSBkZWNsLgoKMjAwNC0wNy0wMSAgSm9zZXBoIFMuIE15ZXJzICA8anNtQHBvbHlvbWluby5vcmcudWs+CgoJKiBkb2MvY3BwaW50ZXJuYWxzLnRleGksIGRvYy9pbnN0YWxsLnRleGksIGRvYy9pbnZva2UudGV4aSwKCWRvYy9tZC50ZXhpLCBkb2Mvc291cmNlYnVpbGQudGV4aSwgZG9jL3RtLnRleGksIGRvYy90cm91YmxlLnRleGk6CglVc2UgdGVybWlub2xvZ3kgInRlc3RzdWl0ZSIgYW5kICJlbnVtZXJhdGVkIi4KCjIwMDQtMDctMDEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBkd2FyZjJvdXQuYyAocmVnX3NhdmUpOiBVc2UgSU5WQUxJRF9SRUdOVU0uCgkoZHdhcmYyb3V0X3JlZ19zYXZlLCBkd2FyZjJvdXRfcmV0dXJuX3NhdmUpOiBMaWtld2lzZS4KCShpbml0aWFsX3JldHVybl9zYXZlKTogTGlrZXdpc2UuCgkoZmx1c2hfcXVldWVkX3JlZ19zYXZlcyk6IFJlbWFwIHJlZ2lzdGVyIG51bWJlcnMuCgkoZHdhcmYyb3V0X3JldHVybl9yZWcpOiBMaWtld2lzZS4KCjIwMDQtMDctMDEgIFJpY2hhcmQgS2VubmVyICA8a2VubmVyQHZsc2kxLnVsdHJhLm55dS5lZHU+CgoJKiBnaW1wbGlmeS5jIChnaW1wbGlmeV9vbmVfc2l6ZXBvcyk6IERvbid0IGRvIGFueXRoaW5nIGlmIGFueSBWQVJfREVDTC4KCgkqIHRyZWUtcHJldHR5LXByaW50LmMgKGR1bXBfZ2VuZXJpY19ub2RlLCBjYXNlIEFSUkFZX1JFRik6IFVzZQoJYWNjZXNzIGZ1bmN0aW9ucyBmb3IgbG93ZXIgYm91bmQgYW5kIGVsZW1lbnQgc2l6ZSBhbmQgb25seSBvdXRwdXQKCWlmIGxvd2VyIGJvdW5kIG5vbnplcm8gb3IgZWxlbWVudCBzaXplIG5vdCBzYW1lIGFzIHRoYXQgb2YgdHlwZS4KCShkdW1wX2dlbmVyaWNfbm9kZSwgY2FzZSBDT01QT05FTlRfUkVGKTogVXNlIGFjY2VzcyBmdW5jLiBmb3Igb2Zmc2V0LgoKMjAwNC0wNy0wMSAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGMtcHJldHR5LXByaW50LmMgKHBwX2NfcG9zdGZpeF9leHByZXNzaW9uKTogRml4IHBhc3RvLgoKMjAwNC0wNy0wMSAgUGVyIEJvdGhuZXIgIDxwZXJAYm90aG5lci5jb20+CgoJKiBmaW5hbC5jIChmaW5hbCk6ICBGaXggdHlwbyByZXBvcnRlZCBieSBBYXJvbiBXLiBMYUZyYW1ib2lzZS4KCjIwMDQtMDctMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogZXhwci5jIChleHBhbmRfYXNzaWdubWVudCk6IE9wdGltaXplIGJpdGZsZCArPSBjc3QgZm9yIDEgYml0CgliaXRmaWVsZHMgYXMgd2VsbC4gIFNUUklQX05PUFMgZnJvbSBzcmMgb3BlcmFuZCBhbmQgUExVU19FWFBSJ3MKCWZpcnN0IG9wZXJhbmQuICBEb24ndCBvcHRpbWl6ZSBpZiB0aGUgYml0ZmllbGQgaXMgdm9sYXRpbGUuCgoyMDA0LTA3LTAxICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogYy1wcmV0dHktcHJpbnQuYyAocHBfY19wb3N0Zml4X2V4cHJlc3Npb24pOiBIYW5kbGUKCWZsb2F0aW5nLXBvaW50IGNvbXBhcmlzb24gb3BlcmF0b3JzLgoJKHBwX2NfZXhwcmVzc2lvbik6IFBhc3MgZmxvYXRpbmctcG9pbnQgY29tcGFyaXNvbgoJb3BlcmF0b3JzIHRvIHBwX2NfcG9zdGZpeF9leHByZXNzaW9uLgoKMjAwNC0wNy0wMSAgUm9nZXIgU2F5bGUgIDxyb2dlckBleWVzb3Blbi5jb20+CgoJKiBzaW1wbGlmeS1ydHguYyAoc2ltcGxpZnlfYmluYXJ5X29wZXJhdGlvbikgPFBMVVMsIE1JTlVTPjogVXNlCglydHhfY29zdCBpbnN0ZWFkIG9mICJoYWRfbXVsdCIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHRyYW5zZm9ybWVkCglleHByZXNzaW9uIGlzIGNoZWFwZXIgdGhhbiB0aGUgb3JpZ2luYWwuCgoyMDA0LTA3LTAxICBKZXJyeSBRdWlubiAgPGpscXVpbm5Ab3B0b25saW5lLm5ldD4KCgkqIGFsaWFzLmMgKGdldF9hbGlhc19zZXQsIGNhbm9uX3J0eCwgZ2V0X2FkZHIsCglub25vdmVybGFwcGluZ19tZW1yZWZzX3AsIG5vbmxvY2FsX3JlZmVyZW5jZWRfcF8xLCBtZW1vcnlfbW9kaWZpZWRfMSk6CglVc2UgTUVNX1AuCgkqIGJ1aWx0aW5zLmMgKGV4cGFuZF9idWlsdGluX3ByZWZldGNoLCBleHBhbmRfYnVpbHRpbl9wcm9maWxlX2Z1bmMsCglleHBhbmRfYnVpbHRpbik6IExpa2V3aXNlLgoJKiBjYWxscy5jIChleHBhbmRfY2FsbCwgZW1pdF9saWJyYXJ5X2NhbGxfdmFsdWVfMSwgc3RvcmVfb25lX2FyZyk6CglMaWtld2lzZS4KCSogY29tYmluZS5jIChjYW5fY29tYmluZV9wLCBjb21iaW5hYmxlX2kzcGF0LCB0cnlfY29tYmluZSwKCWZpbmRfc3BsaXRfcG9pbnQsIGNvbWJpbmVfc2ltcGxpZnlfcnR4LCBzaW1wbGlmeV9zZXQsIG1ha2VfZXh0cmFjdGlvbiwKCXJ0eF9lcXVhbF9mb3JfZmllbGRfYXNzaWdubWVudF9wLCBnZW5fbG93cGFydF9mb3JfY29tYmluZSwKCXJlY29yZF9kZWFkX2FuZF9zZXRfcmVnc18xLCBnZXRfbGFzdF92YWx1ZV92YWxpZGF0ZSwKCW1hcmtfdXNlZF9yZWdzX2NvbWJpbmUsIG1vdmVfZGVhdGhzLCB1bm1lbnRpb25lZF9yZWdfcF8xKTogTGlrZXdpc2UuCgkqIGNzZS5jIChjaGVja19kZXBlbmRlbmNlLCBjYW5vbl9oYXNoLCBlcXVpdl9jb25zdGFudCwKCWdlbl9sb3dwYXJ0X2lmX3Bvc3NpYmxlLCBjc2VfaW5zbiwgaW52YWxpZGF0ZV9mcm9tX2Nsb2JiZXJzLAoJY3NlX2Fyb3VuZF9sb29wLCBjc2VfY2hlY2tfbG9vcF9zdGFydCwgY3NlX3NldF9hcm91bmRfbG9vcCwKCWNvdW50X3JlZ191c2FnZSk6IExpa2V3aXNlLgoJKiBjc2VsaWIuYyAocnR4X2VxdWFsX2Zvcl9jc2VsaWJfcCwgYWRkX21lbV9mb3JfYWRkciwgY3NlbGliX2xvb2t1cCwKCWNzZWxpYl9pbnZhbGlkYXRlX21lbSwgY3NlbGliX2ludmFsaWRhdGVfcnR4LCBjc2VsaWJfcmVjb3JkX3NldCwKCWNzZWxpYl9yZWNvcmRfc2V0cyk6IExpa2V3aXNlLgoJKiBkYnhvdXQuYyAoUEFSTV9QQVNTRURfSU5fTUVNT1JZLCBkYnhvdXRfc3ltYm9sLAoJZGJ4b3V0X3N5bWJvbF9sb2NhdGlvbiwgZGJ4b3V0X3Bhcm1zLCBkYnhvdXRfcmVnX3Bhcm1zKTogTGlrZXdpc2UuCgkqIGRkZy5jIChtYXJrX21lbV91c2UsIG1hcmtfbWVtX3N0b3JlLCBydHhfbWVtX2FjY2Vzc19wKTogTGlrZXdpc2UuCgkqIGRmLmMgKGRmX3VzZXNfcmVjb3JkKTogTGlrZXdpc2UuCgkqIGRvanVtcCAoZG9fanVtcCk6IExpa2V3aXNlLgoJKiBkd2FyZjJvdXQuYyAoc3RhY2tfYWRqdXN0X29mZnNldCwgbWVtX2xvY19kZXNjcmlwdG9yLAoJbG9jX2Rlc2NyaXB0b3JfZnJvbV90cmVlLCBydGxfZm9yX2RlY2xfbG9jYXRpb24sIGFkZF9ib3VuZF9pbmZvLAoJZGVjbF9zdGFydF9sYWJlbCk6IExpa2V3aXNlLgoJKiBlbWl0LXJ0bC5jIChnZW5fY29tcGxleF9jb25zdGFudF9wYXJ0LCBnZW5faGlnaHBhcnQsCglvcGVyYW5kX3N1YndvcmQsIGNoYW5nZV9hZGRyZXNzXzEsIG1ha2Vfc2FmZV9mcm9tKTogTGlrZXdpc2UuCgkqIGV4cGxvdy5jIChicmVha19vdXRfbWVtb3J5X3JlZnMsIGNvcHlfYWxsX3JlZ3MsIHZhbGlkaXplX21lbSwKCXN0YWJpbGl6ZSwgZm9yY2Vfbm90X21lbSk6IExpa2V3aXNlLgoJKiBleHBtZWQuYyAoc3RvcmVfYml0X2ZpZWxkLCBzdG9yZV9zcGxpdF9iaXRfZmllbGQsIGV4dHJhY3RfYml0X2ZpZWxkLAoJZXhwYW5kX211bHRfY29uc3QsIGV4cGFuZF9kaXZtb2QsIGVtaXRfc3RvcmVfZmxhZyk6IExpa2V3aXNlLgoJKiBleHByLmMgKGNvbnZlcnRfbW92ZSwgY29udmVydF9tb2RlcywgZW1pdF9ibG9ja19tb3ZlLAoJZW1pdF9ncm91cF9sb2FkLCBlbWl0X2dyb3VwX3N0b3JlLCBjbGVhcl9zdG9yYWdlLCBlbWl0X21vdmVfaW5zbiwKCWVtaXRfbW92ZV9pbnNuXzEsIGV4cGFuZF9hc3NpZ25tZW50LCBzdG9yZV9leHByLAoJc3RvcmVfY29uc3RydWN0b3JfZmllbGQsIHN0b3JlX2NvbnN0cnVjdG9yLCBzdG9yZV9maWVsZCwKCWZvcmNlX29wZXJhbmQsIHNhZmVfZnJvbV9wLCBleHBhbmRfZXhwcl9yZWFsXzEsIGV4cGFuZF9pbmNyZW1lbnQpOgoJTGlrZXdpc2UuCgkqIGZpbmFsLmMgKGNsZWFudXBfc3VicmVnX29wZXJhbmRzLCBhbHRlcl9zdWJyZWcsCglnZXRfbWVtX2V4cHJfZnJvbV9vcCk6IExpa2V3aXNlLgoJKiBmbG93LmMgKG5vdGljZV9zdGFja19wb2ludGVyX21vZGlmaWNhdGlvbl8xLAoJaW5pdF9wcm9wYWdhdGVfYmxvY2tfaW5mbywgaW5zbl9kZWFkX3AsIG1hcmtfc2V0XzEsIG1hcmtfdXNlZF9yZWdzKToKCUxpa2V3aXNlLgoJKiBmdW5jdGlvbi5jIChtYXJrX3RlbXBfYWRkcl90YWtlbiwgcHJlc2VydmVfdGVtcF9zbG90cywKCXByZXNlcnZlX3J0bF9leHByX3Jlc3VsdCwgcHV0X3Zhcl9pbnRvX3N0YWNrLCBmaXh1cF92YXJfcmVmc18xLAoJb3B0aW1pemVfYml0X2ZpZWxkLCBmbHVzaF9hZGRyZXNzb2YsIHB1cmdlX2FkZHJlc3NvZl8xLAoJaW5zdGFudGlhdGVfZGVjbCwgaW5zdGFudGlhdGVfdmlydHVhbF9yZWdzXzEsIGFzc2lnbl9wYXJtcywKCXNldGptcF9wcm90ZWN0LCBzZXRqbXBfcHJvdGVjdF9hcmdzLCBmaXhfbGV4aWNhbF9hZGRyLAoJa2VlcF9zdGFja19kZXByZXNzZWQpOiBMaWtld2lzZS4KCSogaWZjdnQuYyAobm9jZV90cnlfY21vdmVfYXJpdGgsIG5vY2VfdHJ5X2Ficywgbm9jZV9vcGVyYW5kX29rLAoJbm9jZV9wcm9jZXNzX2lmX2Jsb2NrLCBmaW5kX21lbW9yeSk6IExpa2V3aXNlLgoJKiBpbnRlZ3JhdGUuYyAoc3Vic3RfY29uc3RhbnRzLCBhbGxvY2F0ZV9pbml0aWFsX3ZhbHVlcyk6IExpa2V3aXNlLgoJKiBsb2NhbC1hbGxvYy5jICh2YWxpZGF0ZV9lcXVpdl9tZW1fZnJvbV9zdG9yZSwgbWVtcmVmX3JlZmVyZW5jZWRfcCwKCXVwZGF0ZV9lcXVpdl9yZWdzKTogTGlrZXdpc2UuCgkqIGxvb3AuYyAoc2Nhbl9sb29wLCBwcmVzY2FuX2xvb3AsIG5vdGVfYWRkcl9zdG9yZWQsIGNoZWNrX3N0b3JlLAoJbWF5YmVfZWxpbWluYXRlX2Jpdl8xLCBmaW5kX21lbV9pbl9ub3RlXzEpOiBMaWtld2lzZS4KCSogb3B0YWJzLmMgKGV4cGFuZF9hYnMsIGVtaXRfdW5vcF9pbnNuKTogTGlrZXdpc2UuCgkqIHBhc3Nlcy5jIChyZXN0X29mX2hhbmRsZV9maW5hbCk6IExpa2V3aXNlLgoJKiBwb3N0cmVsb2FkLmMgKHJlbG9hZF9jc2Vfc2ltcGxpZnlfc2V0LCByZWxvYWRfY3NlX3NpbXBsaWZ5X29wZXJhbmRzLAoJbW92ZTJhZGRfbm90ZV9zdG9yZSk6IExpa2V3aXNlLgoJKiByYS1idWlsZC5jIChkZXRlY3RfcmVtYXRfd2Vicyk6IExpa2V3aXNlLgoJKiByYS1kZWJ1Zy5jIChkdW1wX3N0YXRpY19pbnNuX2Nvc3QpOiBMaWtld2lzZS4KCSogcmEtcmV3cml0ZS5jIChzbG90c19vdmVybGFwX3AsIGluc2VydF9zdG9yZXMpOiBMaWtld2lzZS4KCSogcmVjb2cuYyAodmFsaWRhdGVfY2hhbmdlLCBhcHBseV9jaGFuZ2VfZ3JvdXAsIGNhbmNlbF9jaGFuZ2VzLAoJdmFsaWRhdGVfcmVwbGFjZV9ydHhfMSwgZ2VuZXJhbF9vcGVyYW5kLCByZWdpc3Rlcl9vcGVyYW5kLAoJbm9ubWVtb3J5X29wZXJhbmQsIHB1c2hfb3BlcmFuZCwgcG9wX29wZXJhbmQsIG1lbW9yeV9vcGVyYW5kLAoJaW5kaXJlY3Rfb3BlcmFuZCwgYXNtX29wZXJhbmRfb2ssIG9mZnNldHRhYmxlX21lbXJlZl9wLAoJb2Zmc2V0dGFibGVfbm9uc3RyaWN0X21lbXJlZl9wLCBjb25zdHJhaW5fb3BlcmFuZHMsCglzdG9yZV9kYXRhX2J5cGFzc19wKTogTGlrZXdpc2UuCgkqIHJlZy1zdGFjay5jIChzdWJzdF9zdGFja19yZWdzX3BhdCk6IExpa2V3aXNlLgoJKiByZWdjbGFzcy5jIChyZWNvcmRfb3BlcmFuZF9jb3N0cywgc2Nhbl9vbmVfaW5zbiwgcmVjb3JkX3JlZ19jbGFzc2VzLAoJY29weV9jb3N0LCByZWdfc2Nhbl9tYXJrX3JlZnMpOiBMaWtld2lzZS4KCSogcmVnbW92ZS5jIChvcHRpbWl6ZV9yZWdfY29weV8zLCBzdGFja19tZW1yZWZfcCwKCWNvbWJpbmVfc3RhY2tfYWRqdXN0bWVudHNfZm9yX2Jsb2NrKTogTGlrZXdpc2UuCgkqIHJlZ3JlbmFtZS5jIChjb3B5cHJvcF9oYXJkcmVnX2ZvcndhcmRfMSk6IExpa2V3aXNlLgoJKiByZWxvYWQuYyAoY2FuX3JlbG9hZF9pbnRvLCBwdXNoX3JlbG9hZCwgZGVjb21wb3NlLCBpbW11bmVfcCwKCWZpbmRfcmVsb2FkcywgZmluZF9yZWxvYWRzX2FkZHJlc3MsIGZpbmRfcmVsb2Fkc19hZGRyZXNzXzEsCglyZWdfb3ZlcmxhcF9tZW50aW9uZWRfZm9yX3JlbG9hZF9wLCByZWZlcnNfdG9fbWVtX2Zvcl9yZWxvYWRfcCwKCWZpbmRfZXF1aXZfcmVnKTogTGlrZXdpc2UuCgkqIHJlbG9hZDEuYyAocmVsb2FkLCBlbGltaW5hdGVfcmVncywgZWxpbWluYXRlX3JlZ3NfaW5faW5zbiwKCXJlbG9hZF9hc19uZWVkZWQsIGNob29zZV9yZWxvYWRfcmVncywgZW1pdF9pbnB1dF9yZWxvYWRfaW5zbnMsCglkb19pbnB1dF9yZWxvYWQsIGVtaXRfcmVsb2FkX2luc25zLCBnZW5fcmVsb2FkLCBkZWxldGVfb3V0cHV0X3JlbG9hZCwKCWRlbGV0ZV9hZGRyZXNzX3JlbG9hZHMpOiBMaWtld2lzZS4KCSogcmVzb3VyY2UuYyAobWFya19yZWZlcmVuY2VkX3Jlc291cmNlcyk6IExpa2V3aXNlLgoJKiBydGxhbmFsLmMgKGdldF9qdW1wX3RhYmxlX29mZnNldCwgY291bnRfb2NjdXJyZW5jZXMsCglyZWdfcmVmZXJlbmNlZF9wLCByZWdfc2V0X3AsIHNldF9vZl8xLCBzZXRfbm9vcF9wLAoJcmVnX292ZXJsYXBfbWVudGlvbmVkX3AsIG5vdGVfdXNlcywgcmVwbGFjZV9yZWdzLCBub256ZXJvX2JpdHMxLAoJbnVtX3NpZ25fYml0X2NvcGllczEpOiBMaWtld2lzZS4KCSogcnRsaG9va3MuYyAoZ2VuX2xvd3BhcnRfZ2VuZXJhbCk6IExpa2V3aXNlLgoJKiBzY2hlZC1kZXBzLmMgKHNjaGVkX2FuYWx5emVfMSwgc2NoZWRfYW5hbHl6ZV8yKTogTGlrZXdpc2UuCgkqIHNkYm91dC5jIChQQVJNX1BBU1NFRF9JTl9NRU1PUlksIHNkYm91dF9zeW1ib2wsCglzZGJvdXRfdG9wbGV2ZWxfZGF0YSwgc2Rib3V0X3Bhcm1zLCBzZGJvdXRfcmVnX3Bhcm1zLAoJc2Rib3V0X2dsb2JhbF9kZWNsKTogTGlrZXdpc2UuCgkqIHNpbXBsaWZ5LXJ0eC5jIChzaW1wbGlmeV9zdWJyZWcpOiBMaWtld2lzZS4KCSogc3RtdC5jIChleHBhbmRfYXNtX29wZXJhbmRzLCBleHBhbmRfZXhwcl9zdG10X3ZhbHVlLCBleHBhbmRfZGVjbCwKCWV4cGFuZF9hbm9uX3VuaW9uX2RlY2wsIGV4cGFuZF9lbmRfY2FzZV90eXBlKTogTGlrZXdpc2UuCgkqIHVucm9sbC5jIChjYWxjdWxhdGVfZ2l2X2luYyk6IExpa2V3aXNlLgoJKiB2YXItdHJhY2tpbmcuYyAoc3RhY2tfYWRqdXN0X29mZnNldF9wcmVfcG9zdCwKCWJiX3N0YWNrX2FkanVzdF9vZmZzZXQsIHRyYWNrX2V4cHJfcCwgY291bnRfdXNlcywgYWRkX3VzZXMsCglhZGRfc3RvcmVzLCBjb21wdXRlX2JiX2RhdGFmbG93LCB2dF9nZXRfZGVjbF9hbmRfb2Zmc2V0LAoJdnRfYWRkX2Z1bmN0aW9uX3BhcmFtZXRlcnMpOiBMaWtld2lzZS4KCSogdmFyYXNtLmMgKG1ha2VfdmFyX3ZvbGF0aWxlLCBub3RpY2VfZ2xvYmFsX3N5bWJvbCwKCWFzc2VtYmxlX2V4dGVybmFsLCBkZWNvZGVfYWRkcl9jb25zdCwgbWFya193ZWFrLAoJZGVmYXVsdF9lbmNvZGVfc2VjdGlvbl9pbmZvKTogTGlrZXdpc2UuCgoyMDA0LTA3LTAxICBTdGV2ZW4gQm9zc2NoZXIgIDxzdGV2ZW5iQHN1c2UuZGU+CgoJKiBzdG10LmMgKGNoZWNrX3NlZW5sYWJlbCk6IFJlbW92ZS4KCShwdXNoY2FzZSwgcHVzaGNhc2VfcmFuZ2UsIGV4cGFuZF9lbmRfY2FzZV90eXBlKTogRG9uJ3QgY2FsbCBpdC4KCjIwMDQtMDctMDEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBmdW5jdGlvbi5oIChzdHJ1Y3QgZnVuY3Rpb24pOiBSZW1vdmUgeF9mdW5jdGlvbl9jYWxsX2NvdW50LgoJKGZ1bmN0aW9uX2NhbGxfY291bnQpOiBSZW1vdmUuCgkqIGNhbGxzLmMgKGV4cGFuZF9jYWxsKTogRG9uJ3Qgc2V0IGl0LgoJKiBpbnRlZ3JhdGUuYyAoY29weV9ydHhfYW5kX3N1YnN0aXR1dGUpOiBMaWtld2lzZS4KCgkqIGZ1bmN0aW9uLmggKHN0cnVjdCBmdW5jdGlvbik6IFJlbW92ZSB4X2NsZWFudXBfbGFiZWwuCgkoY2xlYW51cF9sYWJlbCk6IFJlbW92ZS4KCSogc3RtdC5jIChleHBhbmRfdmFsdWVfcmV0dXJuKTogRG9uJ3QgdXNlIGl0LgoJKiBmdW5jdGlvbi5jIChmcmVlX2FmdGVyX2NvbXBpbGF0aW9uKTogRG9uJ3Qgc2V0IGl0LgoJKGV4cGFuZF9mdW5jdGlvbl9zdGFydCk6IExpa2V3aXNlLiAgUmVtb3ZlIHBhcm1zX2hhdmVfY2xlYW51cHMgYXJnLgoJKiBjZmdleHBhbmQuYyAodHJlZV9leHBhbmRfY2ZnKTogVXBkYXRlIGNhbGwuCgkqIHRyZWUuaCAoZXhwYW5kX2Z1bmN0aW9uX3N0YXJ0KTogVXBkYXRlIGRlY2wuCgoyMDA0LTA3LTAxICBKb3NlcGggUy4gTXllcnMgIDxqc21AcG9seW9taW5vLm9yZy51az4KCglQUiBjLzEwMjcKCSogYy1sYW5nLmMgKGNfaW5pdGlhbGl6ZV9kaWFnbm9zdGljcyk6IE1vdmUgZnJvbSBoZXJlIC4uLgoJKiBjLW9iamMtY29tbW9uLmM6IC4uLiB0byBoZXJlLiAgSW5jbHVkZSAiYy1wcmV0dHktcHJpbnQuaCIuCgkoY190cmVlX3ByaW50ZXIpOiBVc2UgcHJldHR5LXByaW50ZXIgdG8gZm9ybWF0ICVULgoJKiBjLXByZXR0eS1wcmludC5jIChwcF9jX3NwZWNpZmllcl9xdWFsaWZpZXJfbGlzdCk6IEluY2x1ZGUgc3BhY2UKCWJlZm9yZSAnKicgaWYgbm90IEMrKy4KCShwcF9jX2RpcmVjdF9hYnN0cmFjdF9kZWNsYXJhdG9yKTogRG9uJ3QgdHJ5IHRvIHByaW50IGFycmF5IHVwcGVyCglib3VuZCBmb3IgZmxleGlibGUgYXJyYXkgbWVtYmVycy4KCSogYy10cmVlLmg6IEluY2x1ZGUgImRpYWdub3N0aWMuaCIuCgkoY19pbml0aWFsaXplX2RpYWdub3N0aWNzKTogRGVjbGFyZS4KCSogb2JqYy9vYmpjLWxhbmcuYyAoTEFOR19IT09LU19JTklUSUFMSVpFX0RJQUdOT1NUSUNTKTogRGVmaW5lLgoJKiBjLWZvcm1hdC5jIChmb3JtYXRfdHlwZV93YXJuaW5nKTogTmV3IGZ1bmN0aW9uLiAgSW1wcm92ZQoJZGlhZ25vc3RpY3MgZm9yIGluY29ycmVjdCBmb3JtYXQgYXJndW1lbnQgdHlwZXMuCgkoY2hlY2tfZm9ybWF0X3R5cGVzKTogVXNlIGl0LiAgQWRkIHR3byBwYXJhbWV0ZXJzLiAgVXNlIHRoZQoJVFlQRV9NQUlOX1ZBUklBTlQgb2Ygd2FudGVkX3R5cGUuCgkoY2hlY2tfZm9ybWF0X2luZm9fbWFpbik6IFBhc3MgbmV3IHBhcmFtZXRlcnMgdG8KCWNoZWNrX2Zvcm1hdF90eXBlcy4KCShzdHJ1Y3QgZm9ybWF0X3dhbnRlZF90eXBlKTogVXBkYXRlIGNvbW1lbnQuCgoyMDA0LTA3LTAxICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogdGFyZ2V0LmggKHN0cnVjdCBnY2NfdGFyZ2V0KTogQWRkIG5ldyBmaWVsZCB0byBzdHJ1Y3QgY3h4OgoJaW1wb3J0X2V4cG9ydF9jbGFzcy4KCSogdGFyZ2V0LWRlZi5oIChUQVJHRVRfQ1hYKTogSW5pdGlhbGlzZSB0aGUgbmV3IGZpZWxkLgoJKFRBUkdFVF9DWFhfSU1QT1JUX0VYUE9SVF9DTEFTUyk6IFByb3ZpZGUgYSBkZWZhdWx0IHZhbHVlIGZvcgoJdGhlIG5ldyBmaWVsZC4KCSogZG9jL3RtLnRleGk6IERvY3VtZW50IHRoZSBuZXcgdGFyZ2V0IGhvb2suCgoyMDA0LTA3LTAxICBQYW9sbyBCb256aW5pICA8Ym9uemluaUBnbnUub3JnPgoKCSogYnVpbHRpbnMuYyAoZm9sZF9idWlsdGluX2NsYXNzaWZ5KTogRml4IHR5cG8uCgoyMDA0LTA3LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogZnVuY3Rpb24uYyAoaWRlbnRpZnlfYmxvY2tzLCBpZGVudGlmeV9ibG9ja3NfMSk6IFJlbW92ZS4KCSogZnVuY3Rpb24uaCAoaWRlbnRpZnlfYmxvY2tzKTogUmVtb3ZlLgoJKiBydGwuaCAoTk9URV9JTlNOX0JMT0NLX0JFRyk6IFVwZGF0ZSBjb21tZW50LgoKMjAwNC0wNy0wMSAgUGFvbG8gQm9uemluaSAgPGJvbnppbmlAZ251Lm9yZz4KCgkqIGJ1aWx0aW5zLmMgKGZvbGRfYnVpbHRpbl9jbGFzc2lmeSk6IE5ldy4KCShmb2xkX2J1aWx0aW5fdW5vcmRlcmVkX2NtcCk6IEZpeCBjb21tZW50YXJ5LgoJKGZvbGRfYnVpbHRpbik6IFVzZSBpdC4KCSogYnVpbHRpbnMuZGVmOiBEZWZpbmUgYnVpbHRpbnMgZm9yIGlzbmFuLAoJaXNuYW5mLCBpc25hbmwsIGZpbml0ZSwgZmluaXRlZiwgZmluaXRlbCwKCWlzaW5mLCBpc2luZmYsIGlzaW5mbC4KCjIwMDQtMDctMDEgIFJpY2hhcmQgSGVuZGVyc29uICA8cnRoQHJlZGhhdC5jb20+CgoJKiBmdW5jdGlvbi5oIChzdHJ1Y3QgZnVuY3Rpb24pOiBSZW1vdmUgZG9udF9lbWl0X2Jsb2NrX25vdGVzLgoJKiBnaW1wbGUtbG93LmMgKGxvd2VyX2Z1bmN0aW9uX2JvZHkpOiBEb24ndCBzZXQgaXQuCgkqIGNmZ2V4cGFuZC5jIChleHBhbmRfYmxvY2spOiBEb24ndCBjaGVjayBpdC4KCSogY2ZnbGF5b3V0LmMgKGluc25fbG9jYXRvcnNfaW5pdGlhbGl6ZSk6IExpa2V3aXNlLgoJKiBleHByLmMgKGV4cGFuZF9leHByX3JlYWwsIGV4cGFuZF9leHByX3JlYWxfMSk6IExpa2V3aXNlLgoJKiBwYXNzZXMuYyAocmVzdF9vZl9jb21waWxhdGlvbik6IExpa2V3aXNlLgoJKiBzdG10LmMgKGV4cGFuZF9zdGFydF9iaW5kaW5nc19hbmRfYmxvY2spOiBMaWtld2lzZS4KCShleHBhbmRfZW5kX2JpbmRpbmdzKTogTGlrZXdpc2UuCgoyMDA0LTA3LTAxICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgoKCSogY2dyYXBoLmggKGNncmFwaF9idWlsZF9zdGF0aWNfY2R0b3IpOiBEZWNsYXJlLgoJKiBjZ3JhcGh1bml0LmMgKGNncmFwaF9idWlsZF9zdGF0aWNfY2R0b3IpOiBOZXcuCgkqIGMtb2JqYy1jb21tb24uYyAoYnVpbGRfY2R0b3IpOiBVc2UgaXQuCgkqIGNvdmVyYWdlLmMgKGNyZWF0ZV9jb3ZlcmFnZSk6IExpa2V3aXNlLgoJKiBsaWJmdW5jcy5oIChMVElfZ2Nvdl9pbml0LCBnY292X2luaXRfbGliZnVuYyk6IFJlbW92ZS4KCSogb3B0YWJzLmMgKGluaXRfb3B0YWJzKTogRG9uJ3Qgc2V0IGdjb3ZfaW5pdF9saWJmdW5jLgoKU2VlIENoYW5nZUxvZy4xMSBmb3IgZWFybGllciBjaGFuZ2VzLgo=