ZGlmZiAtLWdpdCBhL0NIQU5HRUxPRyBiL0NIQU5HRUxPRwppbmRleCAyYjgxMTZlLi5hOWZjNDAwIDEwMDY0NAotLS0gYS9DSEFOR0VMT0cKKysrIGIvQ0hBTkdFTE9HCkBAIC0xLDcgKzEsMTAgQEAKIENoYW5nZUxvZyA6CiA9PT09PT09PT09PQogCi0yMDA1LzA3LzA2IDogMS4yLjYgKDEuMS4zMikKKzIwMDUvMDgvMDcgOiAxLjIuNgorICAtIGNsZWFuLXVwIHBhdGNoIGZyb20gQWxleGFuZGVyIExhemljIGZpeGVzIGJ1aWxkIG9uIERlYmlhbiAzLjEgKHNvY2tsZW5fdCkuCisKKzIwMDUvMDcvMDYgOiAxLjIuNi1wcmU1ICgxLjEuMzIpCiAgIC0gYWRkZWQgdGhlIG51bWJlciBvZiBhY3RpdmUgc2Vzc2lvbnMgKHByb3h5L3Byb2Nlc3MpIGluIHRoZSBsb2dzCiAKIDIwMDUvMDcvMDYgOiAxLjIuNi1wcmU0ICgxLjEuMzItcHJlNCkKZGlmZiAtLWdpdCBhL2RvYy9hcmNoaXRlY3R1cmUudHh0IGIvZG9jL2FyY2hpdGVjdHVyZS50eHQKaW5kZXggMDZhMDQ0Ni4uYjg3NWI4NCAxMDA2NDQKLS0tIGEvZG9jL2FyY2hpdGVjdHVyZS50eHQKKysrIGIvZG9jL2FyY2hpdGVjdHVyZS50eHQKQEAgLTIsOSArMiw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggQSAtIFAgciBvIHggeQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJjaGl0ZWN0dXJlICBHdWlkZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uIDEuMS4zMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uIDEuMS4zMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbHkgdGFycmVhdQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDQvMTEvMjgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDA1LzA3LzE3CiAKIAogVGhpcyBkb2N1bWVudCBwcm92aWRlcyByZWFsIHdvcmxkIGV4YW1wbGVzIHdpdGggd29ya2luZyBjb25maWd1cmF0aW9ucy4KQEAgLTUwLDcgKzUwLDcgQEAKIENvbmZpZyBvbiBoYXByb3h5IChMQjEpIDoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICAKLSAgICBsaXN0ZW4gMTkyLjE2OC4xLjE6ODAKKyAgICBsaXN0ZW4gd2ViZmFybSAxOTIuMTY4LjEuMTo4MAogICAgICAgIG1vZGUgaHR0cAogICAgICAgIGJhbGFuY2Ugcm91bmRyb2JpbgogICAgICAgIGNvb2tpZSBTRVJWRVJJRCBpbnNlcnQgaW5kaXJlY3QKQEAgLTE0Myw3ICsxNDMsNyBAQAogYXBwbGljYXRpb24gYWxyZWFkeSBnZW5lcmF0ZXMgYSAiSlNFU1NJT05JRCIgY29va2llIHdoaWNoIGlzIGVub3VnaCB0byB0cmFjawogc2Vzc2lvbnMsIHNvIHdlJ2xsIHByZWZpeCB0aGlzIGNvb2tpZSB3aXRoIHRoZSBzZXJ2ZXIgbmFtZSB3aGVuIHdlIHNlZSBpdC4KIFNpbmNlIHRoZSBsb2FkLWJhbGFuY2VyIGJlY29tZXMgY3JpdGljYWwsIGl0IHdpbGwgYmUgYmFja2VkIHVwIHdpdGggYSBzZWNvbmQKLW9uZSBpbiBWUlJQIG1vZGUgdXNpbmcga2VlcGFsaXZlZC4KK29uZSBpbiBWUlJQIG1vZGUgdXNpbmcga2VlcGFsaXZlZCB1bmRlciBMaW51eC4KIAogRG93bmxvYWQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIGtlZXBhbGl2ZWQgZnJvbSB0aGlzIHNpdGUgYW5kIGluc3RhbGwgaXQKIG9uIGVhY2ggbG9hZC1iYWxhbmNlciBMQjEgYW5kIExCMiA6CkBAIC0xNTIsNyArMTUyLDcgQEAKIAogWW91IHRoZW4gaGF2ZSBhIHNoYXJlZCBJUCBiZXR3ZWVuIHRoZSB0d28gbG9hZC1iYWxhbmNlcnMgKHdlIHdpbGwgc3RpbGwgdXNlIHRoZQogb3JpZ2luYWwgSVApLiBJdCBpcyBhY3RpdmUgb25seSBvbiBvbmUgb2YgdGhlbSBhdCBhbnkgbW9tZW50LiBUbyBhbGxvdyB0aGUKLXByb3h5IHRvIGJpbmQgdG8gdGhlIHNoYXJlZCBJUCwgeW91IG11c3QgZW5hYmxlIGl0IGluIC9wcm9jIDoKK3Byb3h5IHRvIGJpbmQgdG8gdGhlIHNoYXJlZCBJUCBvbiBMaW51eCAyLjQsIHlvdSBtdXN0IGVuYWJsZSBpdCBpbiAvcHJvYyA6CiAKICMgZWNobyAxID4vcHJvYy9zeXMvbmV0L2lwdjQvaXBfbm9ubG9jYWxfYmluZAogCkBAIC0xNzEsNyArMTcxLDcgQEAKIENvbmZpZyBvbiBib3RoIHByb3hpZXMgKExCMSBhbmQgTEIyKSA6CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAKIAotICAgIGxpc3RlbiAxOTIuMTY4LjEuMTo4MAorICAgIGxpc3RlbiB3ZWJmYXJtIDE5Mi4xNjguMS4xOjgwCiAgICAgICAgbW9kZSBodHRwCiAgICAgICAgYmFsYW5jZSByb3VuZHJvYmluCiAgICAgICAgY29va2llIEpTRVNTSU9OSUQgcHJlZml4CkBAIC0xODgsNyArMTg4LDggQEAKIHNvIGl0IGlzIGltcG9ydGFudCB0aGF0IGl0IGNhbiBhY2Nlc3MgdG8gQUxMIGNvb2tpZXMgaW4gQUxMIHJlcXVlc3RzIGZvcgogZWFjaCBzZXNzaW9uLiBUaGlzIGltcGxpZXMgdGhhdCB0aGVyZSBpcyBubyBrZWVwLWFsaXZlIChIVFRQLzEuMSksIHRodXMgdGhlCiAiaHR0cGNsb3NlIiBvcHRpb24uIE9ubHkgaWYgeW91IGtub3cgZm9yIHN1cmUgdGhhdCB0aGUgY2xpZW50KHMpIHdpbGwgbmV2ZXIKLXVzZSBrZWVwLWFsaXZlLCB5b3UgY2FuIHJlbW92ZSB0aGlzIG9wdGlvbi4KK3VzZSBrZWVwLWFsaXZlIChlZzogQXBhY2hlIDEuMyBpbiByZXZlcnNlLXByb3h5IG1vZGUpLCB5b3UgY2FuIHJlbW92ZSB0aGlzCitvcHRpb24uCiAKIAogRGVzY3JpcHRpb24gOgpAQCAtMjY2LDcgKzI2Nyw3IEBACiBDb25maWcgb24gYm90aCBwcm94aWVzIChMQjEgYW5kIExCMikgOgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICAKLSAgICBsaXN0ZW4gMC4wLjAuMDo4MAorICAgIGxpc3RlbiB3ZWJmYXJtIDAuMC4wLjA6ODAKICAgICAgICBtb2RlIGh0dHAKICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KICAgICAgICBjb29raWUgSlNFU1NJT05JRCBwcmVmaXgKQEAgLTI4NCwyOCArMjg1LDExMSBAQAogY2hlY2tzIGZyb20gdGhlIEFsdGVvbi4gSWYgYSBzZXNzaW9uIGV4Y2hhbmdlcyBubyBkYXRhLCB0aGVuIGl0IHdpbGwgbm90IGJlCiBsb2dnZWQuCiAgICAgICAgCitDb25maWcgb24gdGhlIEFsdGVvbiA6CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAvYy9zbGIvcmVhbCAgMTEKKyAgICAgICAgICAgZW5hCisgICAgICAgICAgIG5hbWUgIkxCMSIKKyAgICAgICAgICAgcmlwIDE5Mi4xNjguMS4zCisgICAgL2Mvc2xiL3JlYWwgIDEyCisgICAgICAgICAgIGVuYQorICAgICAgICAgICBuYW1lICJMQjIiCisgICAgICAgICAgIHJpcCAxOTIuMTY4LjEuNAorICAgIC9jL3NsYi9ncm91cCAxMAorICAgICAgICAgICBuYW1lICJMQjEtMiIKKyAgICAgICAgICAgbWV0cmljIHJvdW5kcm9iaW4KKyAgICAgICAgICAgaGVhbHRoIHRjcAorICAgICAgICAgICBhZGQgMTEKKyAgICAgICAgICAgYWRkIDEyCisgICAgL2Mvc2xiL3ZpcnQgMTAKKyAgICAgICAgICAgZW5hCisgICAgICAgICAgIHZpcCAxOTIuMTY4LjEuMQorICAgIC9jL3NsYi92aXJ0IDEwL3NlcnZpY2UgaHR0cAorICAgICAgICAgICBncm91cCAxMAorCisKK05vdGU6IHRoZSBoZWFsdGgtY2hlY2sgb24gdGhlIEFsdGVvbiBpcyBzZXQgdG8gInRjcCIgdG8gcHJldmVudCB0aGUgcHJveHkgZnJvbQorZm9yd2FyZGluZyB0aGUgY29ubmVjdGlvbnMuIEl0IGNhbiBhbHNvIGJlIHNldCB0byAiaHR0cCIsIGJ1dCBmb3IgdGhpcyB0aGUKK3Byb3h5IG11c3Qgc3BlY2lmeSBhICJtb25pdG9yLW5ldCIgd2l0aCB0aGUgQWx0ZW9ucycgYWRkcmVzc2VzLCBzbyB0aGF0IHRoZQorQWx0ZW9uIGNhbiByZWFsbHkgY2hlY2sgdGhhdCB0aGUgcHJveGllcyBjYW4gdGFsayBIVFRQIGJ1dCB3aXRob3V0IGZvcndhcmRpbmcKK3RoZSBjb25uZWN0aW9ucyB0byB0aGUgZW5kIHNlcnZlcnMuIENoZWNrIG5leHQgc2VjdGlvbiBmb3IgYW4gZXhhbXBsZSBvbiBob3cgdG8KK3VzZSBtb25pdG9yLW5ldC4KKworCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzIuMiBHZW5lcmljIFRDUCByZWxheWluZyBhbmQgZXh0ZXJuYWwgbGF5ZXIgNCBsb2FkLWJhbGFuY2VycworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1NvbWV0aW1lcyBpdCdzIHVzZWZ1bCB0byBiZSBhYmxlIHRvIHJlbGF5IGdlbmVyaWMgVENQIHByb3RvY29scyAoU01UUCwgVFNFLAorVk5DLCBldGMuLi4pLCBmb3IgZXhhbXBsZSB0byBpbnRlcmNvbm5lY3QgcHJpdmF0ZSBuZXR3b3Jrcy4gVGhlIHByb2JsZW0gY29tZXMKK3doZW4geW91IHVzZSBleHRlcm5hbCBsb2FkLWJhbGFuY2VycyB3aGljaCBuZWVkIHRvIHNlbmQgcGVyaW9kaWMgaGVhbHRoLWNoZWNrcwordG8gdGhlIHByb3hpZXMsIGJlY2F1c2UgdGhlc2UgaGVhbHRoLWNoZWNrcyBnZXQgZm9yd2FyZGVkIHRvIHRoZSBlbmQgc2VydmVycy4KK1RoZSBzb2x1dGlvbiBpcyB0byBzcGVjaWZ5IGEgbmV0d29yayB3aGljaCB3aWxsIGJlIGRlZGljYXRlZCB0byBtb25pdG9yaW5nCitzeXN0ZW1zIGFuZCBtdXN0IG5vdCBsZWFkIHRvIGEgZm9yd2FyZGluZyBjb25uZWN0aW9uIG5vciB0byBhbnkgbG9nLCB1c2luZyB0aGUKKyJtb25pdG9yLW5ldCIga2V5d29yZC4gTm90ZTogdGhpcyBmZWF0dXJlIGV4cGVjdHMgYSB2ZXJzaW9uIG9mIGhhcHJveHkgZ3JlYXRlcgordGhhbiBvciBlcXVhbCB0byAxLjEuMzIgb3IgMS4yLjYuCisKKworICAgICAgICAgICAgICAgIHwgIFZJUD0xNzIuMTYuMS4xICAgfAorICAgICAgICAgICArLS0tLSstLS0tKyAgICAgICAgICstLS0tKy0tLS0rCisgICAgICAgICAgIHwgQWx0ZW9uMSB8ICAgICAgICAgfCBBbHRlb24yIHwKKyAgICAgICAgICAgKy0tLS0rLS0tLSsgICAgICAgICArLS0tLSstLS0tKworIDE5Mi4xNjguMS4yNTIgIHwgIEdXPTE5Mi4xNjguMS4yNTQgfCAgMTkyLjE2OC4xLjI1MworICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfAorICAgICAgICAgIC0tLS0tLSstLS0rLS0tLS0tLS0tLS0tKy0tKy0tLS0tLS0tLS0tLS0tLS0tPiBUU0UgZmFybSA6IDE5Mi4xNjguMS4xMAorICAgICAgIDE5Mi4xNjguMS4xICB8ICAgICAgICAgICAgfCAxOTIuMTY4LjEuMgorICAgICAgICAgICAgICAgICArLS0rLS0rICAgICAgKy0tKy0tKworICAgICAgICAgICAgICAgICB8IExCMSB8ICAgICAgfCBMQjIgfAorICAgICAgICAgICAgICAgICArLS0tLS0rICAgICAgKy0tLS0tKworICAgICAgICAgICAgICAgICBoYXByb3h5ICAgICAgaGFwcm94eQorCisKK0NvbmZpZyBvbiBib3RoIHByb3hpZXMgKExCMSBhbmQgTEIyKSA6CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIAorICAgIGxpc3RlbiB0c2UtcHJveHkKKyAgICAgICBiaW5kIDozMzg5LDoxNDk0LDo1OTAwICAjIFRTRSwgSUNBIGFuZCBWTkMgYXQgb25jZS4KKyAgICAgICBtb2RlIHRjcAorICAgICAgIGJhbGFuY2Ugcm91bmRyb2JpbgorICAgICAgIHNlcnZlciB0c2UtZmFybSAxOTIuMTY4LjEuMTAKKyAgICAgICBtb25pdG9yLW5ldCAxOTIuMTY4LjEuMjUyLzMxCisKK1RoZSAibW9uaXRvci1uZXQiIG9wdGlvbiBpbnN0cnVjdHMgdGhlIHByb3hpZXMgdGhhdCBhbnkgY29ubmVjdGlvbiBjb21pbmcgZnJvbQorMTkyLjE2OC4xLjI1MiBvciAxOTIuMTY4LjEuMjUzIHdpbGwgbm90IGJlIGxvZ2dlZCBub3IgZm9yd2FyZGVkIGFuZCB3aWxsIGJlCitjbG9zZWQgaW1tZWRpYXRlbHkuIFRoZSBBbHRlb24gbG9hZC1iYWxhbmNlcnMgd2lsbCB0aGVuIHNlZSB0aGUgcHJveGllcyBhbGl2ZQord2l0aG91dCBwZXJ0dXJiYXRpbmcgdGhlIHNlcnZpY2UuCisKIENvbmZpZyBvbiB0aGUgQWx0ZW9uIDoKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotL2Mvc2xiL3JlYWwgIDExCi0gICAgICAgZW5hCi0gICAgICAgbmFtZSAiTEIxIgotICAgICAgIHJpcCAxOTIuMTY4LjEuMwotL2Mvc2xiL3JlYWwgIDEyCi0gICAgICAgZW5hCi0gICAgICAgbmFtZSAiTEIyIgotICAgICAgIHJpcCAxOTIuMTY4LjEuNAotL2Mvc2xiL2dyb3VwIDEwCi0gICAgICAgbmFtZSAiTEIxLTIiCi0gICAgICAgbWV0cmljIHJvdW5kcm9iaW4KLSAgICAgICBoZWFsdGggdGNwCi0gICAgICAgYWRkIDExCi0gICAgICAgYWRkIDEyCi0vYy9zbGIvdmlydCAxMAotICAgICAgIGVuYQotICAgICAgIHZpcCAxOTIuMTY4LjEuMQotL2Mvc2xiL3ZpcnQgMTAvc2VydmljZSBodHRwCi0gICAgICAgZ3JvdXAgMTAKKyAgICAvYy9sMy9pZiAxCisgICAgICAgICAgIGVuYQorICAgICAgICAgICBhZGRyIDE5Mi4xNjguMS4yNTIKKyAgICAgICAgICAgbWFzayAyNTUuMjU1LjI1NS4wCisgICAgL2Mvc2xiL3JlYWwgIDExCisgICAgICAgICAgIGVuYQorICAgICAgICAgICBuYW1lICJMQjEiCisgICAgICAgICAgIHJpcCAxOTIuMTY4LjEuMQorICAgIC9jL3NsYi9yZWFsICAxMgorICAgICAgICAgICBlbmEKKyAgICAgICAgICAgbmFtZSAiTEIyIgorICAgICAgICAgICByaXAgMTkyLjE2OC4xLjIKKyAgICAvYy9zbGIvZ3JvdXAgMTAKKyAgICAgICAgICAgbmFtZSAiTEIxLTIiCisgICAgICAgICAgIG1ldHJpYyByb3VuZHJvYmluCisgICAgICAgICAgIGhlYWx0aCB0Y3AKKyAgICAgICAgICAgYWRkIDExCisgICAgICAgICAgIGFkZCAxMgorICAgIC9jL3NsYi92aXJ0IDEwCisgICAgICAgICAgIGVuYQorICAgICAgICAgICB2aXAgMTcyLjE2LjEuMQorICAgIC9jL3NsYi92aXJ0IDEwL3NlcnZpY2UgMTQ5NAorICAgICAgICAgICBncm91cCAxMAorICAgIC9jL3NsYi92aXJ0IDEwL3NlcnZpY2UgMzM4OQorICAgICAgICAgICBncm91cCAxMAorICAgIC9jL3NsYi92aXJ0IDEwL3NlcnZpY2UgNTkwMAorICAgICAgICAgICBncm91cCAxMAogCiAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtNDIyLDcgKzUwNiw3IEBACiBpbnN0YW5jZXMgaW5jcmVhc2VzLCBzbyB0aGUgYXBwbGljYXRpb24gc2VlbXMgamVya3kgZm9yIGEgbG9uZ2VyIHBlcmlvZC4KIAogSEFwcm94eSBvZmZlcnMgc2V2ZXJhbCBzb2x1dGlvbnMgZm9yIHRoaXMuIEFsdGhvdWdoIGl0IGNhbm5vdCBiZSByZWNvbmZpZ3VyZWQKLXdpdGhvdXQgYmVpbmcgc3RvcHBlZCwgbm90IGRvZXMgaXQgb2ZmZXIgYW55IGV4dGVybmFsIGNvbW1hbmQsIHRoZXJlIGFyZSBvdGhlcgord2l0aG91dCBiZWluZyBzdG9wcGVkLCBub3IgZG9lcyBpdCBvZmZlciBhbnkgZXh0ZXJuYWwgY29tbWFuZCwgdGhlcmUgYXJlIG90aGVyCiB3b3JraW5nIHNvbHV0aW9ucy4KIAogCkBAIC01ODgsMTMgKzY3MiwxMyBAQAogCiAgICMga2lsbCAkKDwvdmFyL3J1bi9oYXByb3h5LWNoZWNrcy5waWQpCiAKLVRoZSBwb3J0IDgxIHdpbGwgc3RvcCB0byByZXNwb25kIGFuZCB0aGUgbG9hZC1iYWxhbmNlciB3aWxsIG5vdGljZSB0aGUgZmFpbHVyZS4KK1RoZSBwb3J0IDgxIHdpbGwgc3RvcCByZXNwb25kaW5nIGFuZCB0aGUgbG9hZC1iYWxhbmNlciB3aWxsIG5vdGljZSB0aGUgZmFpbHVyZS4KIAogCiA0LjIuMiBDZW50cmFsaXppbmcgdGhlIHNlcnZlciBtYW5hZ2VtZW50CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLUlmIG9uZSBmaW5kIGl0IHByZWZlcmFibGUgdG8gbWFuYWdlIHRoZSBzZXJ2ZXJzIGZyb20gdGhlIGxvYWQtYmFsYW5jZXIgaXRzZWxmLAorSWYgb25lIGZpbmRzIGl0IHByZWZlcmFibGUgdG8gbWFuYWdlIHRoZSBzZXJ2ZXJzIGZyb20gdGhlIGxvYWQtYmFsYW5jZXIgaXRzZWxmLAogdGhlIHBvcnQgcmVkaXJlY3RvciBjYW4gYmUgaW5zdGFsbGVkIG9uIHRoZSBsb2FkLWJhbGFuY2VyIGl0c2VsZi4gU2VlIHRoZQogZXhhbXBsZSB3aXRoIGlwdGFibGVzIGJlbG93LgogCkBAIC02MjEsOCArNzA1LDggQEAKIAogICAtIGhlYWx0aC1jaGVja3Mgd2lsbCBiZSBzZW50IHR3aWNlIGFzIG9mdGVuLCBvbmNlIGZvciBlYWNoIHN0YW5kYXJkIHNlcnZlciwKICAgICBhbmQgb25jZSBmb3IgcmVhY2ggYmFja3VwIHNlcnZlci4gQWxsIHRoaXMgd2lsbCBiZSBtdWx0aXBsaWNhdGVkIGJ5IHRoZQotICAgIG51bWJlciBvZiBwcm9jZXNzZXMgaWYgeW91IHVzZSBtdWx0aS1wcm9jZXNzIG1vZGUuIFlvdSB3aWxsIGhhdmUgdG8gY2hlY2sKLSAgICB0aGF0IGFsbCB0aGUgY2hlY2tzIHNlbnQgdG8gdGhlIHNlcnZlciBkbyBub3QgbG9hZCBpdC4KKyAgICBudW1iZXIgb2YgcHJvY2Vzc2VzIGlmIHlvdSB1c2UgbXVsdGktcHJvY2VzcyBtb2RlLiBZb3Ugd2lsbCBoYXZlIHRvIGVuc3VyZQorICAgIHRoYXQgYWxsIHRoZSBjaGVja3Mgc2VudCB0byB0aGUgc2VydmVyIGRvIG5vdCBvdmVybG9hZCBpdC4KIAogCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvZG9jL2hhcHJveHktZW4udHh0IGIvZG9jL2hhcHJveHktZW4udHh0CmluZGV4IGQ5MDY4YTUuLjRjNWZkNDIgMTAwNjQ0Ci0tLSBhL2RvYy9oYXByb3h5LWVuLnR4dAorKysgYi9kb2MvaGFwcm94eS1lbi50eHQKQEAgLTIsOSArMiw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEggQSAtIFAgciBvIHggeQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZmVyZW5jZSAgTWFudWFsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAJCSAgICAgIHZlcnNpb24gMS4yLjUKLQkJCSAgICAgIHdpbGx5IHRhcnJlYXUKLQkJCSAgICAgICAgMjAwNS8wNC8zMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAxLjIuNgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbHkgdGFycmVhdQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDA1LzA4LzA3CiAKID09PT09PT09PT09PQogfCBBYnN0cmFjdCB8CkBAIC0xMDQsOCArMTA0LDEwIEBACiAgIC0gbm9wb2xsCiAgIC0gcXVpZXQKICAgLSBwaWRmaWxlIDxmaWxlPgorICAtIHVsaW1pdC1uIDxudW1iZXI+CiAgIC0gc3RhdHMKIAorCiAxLjEpIEV2ZW50IGxvZ2dpbmcKIC0tLS0tLS0tLS0tLS0tLS0tLQogTW9zdCBldmVudHMgYXJlIGxvZ2dlZCA6IHN0YXJ0LCBzdG9wLCBzZXJ2ZXJzIGdvaW5nIHVwIGFuZCBkb3duLCBjb25uZWN0aW9ucyBhbmQKQEAgLTEzNSwxNyArMTM3LDE4IEBACiBFeGFtcGxlIDoKIC0tLS0tLS0tLQogICAgIGdsb2JhbAotCWxvZyAxOTIuMTY4LjIuMjAwIGxvY2FsMwotCWxvZyAxMjcuMC4wLjEgICAgIGxvY2FsNCBub3RpY2UKKyAgICAgICAgbG9nIDE5Mi4xNjguMi4yMDAgbG9jYWwzCisgICAgICAgIGxvZyAxMjcuMC4wLjEgICAgIGxvY2FsNCBub3RpY2UKKwogCiAxLjIpIGxpbWl0aW5nIHRoZSBudW1iZXIgb2YgY29ubmVjdGlvbnMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogSXQgaXMgcG9zc2libGUgYW5kIHJlY29tbWVuZGVkIHRvIGxpbWl0IHRoZSBnbG9iYWwgbnVtYmVyIG9mIHBlci1wcm9jZXNzCi1jb25uZWN0aW9ucy4gU2luY2Ugb25lIGNvbm5lY3Rpb24gaW5jbHVkZXMgYm90aCBhIGNsaWVudCBhbmQgYSBzZXJ2ZXIsIGl0Ci1tZWFucyB0aGF0IHRoZSBtYXggbnVtYmVyIG9mIFRDUCBzZXNzaW9ucyB3aWxsIGJlIGFib3V0IHRoZSBkb3VibGUgb2YgdGhpcwotbnVtYmVyLiBJdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoaXMgd2hlbiB0cnlpbmcgdG8gZmluZCBiZXN0IHZhbHVlcwotZm9yICd1bGltaXQgLW4nIGJlZm9yZSBzdGFydGluZyB0aGUgcHJveHkuIFRvIGFudGljaXBhdGUgdGhlIG51bWJlciBvZgotc29ja2V0cyBuZWVkZWQsIGFsbCB0aGVzZSBwYXJhbWV0ZXJzIG11c3QgYmUgY291bnRlZCA6Citjb25uZWN0aW9ucyB1c2luZyB0aGUgJ21heGNvbm4nIGdsb2JhbCBrZXl3b3JkLiBTaW5jZSBvbmUgY29ubmVjdGlvbiBpbmNsdWRlcworYm90aCBhIGNsaWVudCBhbmQgYSBzZXJ2ZXIsIGl0IG1lYW5zIHRoYXQgdGhlIG1heCBudW1iZXIgb2YgVENQIHNlc3Npb25zIHdpbGwKK2JlIGFib3V0IHRoZSBkb3VibGUgb2YgdGhpcyBudW1iZXIuIEl0J3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhpcyB3aGVuCit0cnlpbmcgdG8gZmluZCBiZXN0IHZhbHVlcyBmb3IgJ3VsaW1pdCAtbicgYmVmb3JlIHN0YXJ0aW5nIHRoZSBwcm94eS4gVG8KK2FudGljaXBhdGUgdGhlIG51bWJlciBvZiBzb2NrZXRzIG5lZWRlZCwgYWxsIHRoZXNlIHBhcmFtZXRlcnMgbXVzdCBiZSBjb3VudGVkIDoKIAogICAtIDEgc29ja2V0IHBlciBpbmNvbWluZyBjb25uZWN0aW9uCiAgIC0gMSBzb2NrZXQgcGVyIG91dGdvaW5nIGNvbm5lY3Rpb24KQEAgLTE1NCw5ICsxNTcsMTkgQEAKICAgLSAxIHNvY2tldCBmb3IgYWxsIGxvZ3MKIAogSW4gc2ltcGxlIGNvbmZpZ3VyYXRpb25zIHdoZXJlIGVhY2ggcHJveHkgb25seSBsaXN0ZW5zIG9uZSBvbmUgYWRkcmVzcy9wb3J0LAotc2V0IHRoZSBsaW1pdCBvZiBmaWxlIGRlc2NyaXB0b3JzICh1bGltaXQgLW4pIHRvIAotKDIgKiBtYXhjb25uICsgbmJwcm94aWVzICsgbmJzZXJ2ZXJzICsgMSkuIEluIGEgZnV0dXJlIHJlbGVhc2UsIGhhcHJveHkgbWF5Ci1iZSBhYmxlIHRvIHNldCB0aGlzIHZhbHVlIGl0c2VsZi4KK3NldCB0aGUgbGltaXQgb2YgZmlsZSBkZXNjcmlwdG9ycyAodWxpbWl0IC1uKSB0bworKDIgKiBtYXhjb25uICsgbmJwcm94aWVzICsgbmJzZXJ2ZXJzICsgMSkuIFN0YXJ0aW5nIHdpdGggdmVyc2lvbnMgMS4xLjMyLzEuMi42LAoraXQgaXMgbm93IHBvc3NpYmxlIHRvIHNldCB0aGUgbGltaXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gdXNpbmcgdGhlICd1bGltaXQtbicKK2dsb2JhbCBrZXl3b3JkLCBwcm92aWRlZCB0aGUgcHJveHkgaXMgc3RhcnRlZCBhcyByb290LiBUaGlzIHB1dHMgYW4gZW5kIHRvIHRoZQorcmVjdXJyZW50IHByb2JsZW0gb2YgZW5zdXJpbmcgdGhhdCB0aGUgc3lzdGVtIGxpbWl0cyBhcmUgYWRhcHRlZCB0byB0aGUgcHJveHkKK3ZhbHVlcy4gTm90ZSB0aGF0IHRoZXNlIGxpbWl0cyBhcmUgcGVyLXByb2Nlc3MuCisKK0V4YW1wbGUgOgorLS0tLS0tLS0tCisgICAgZ2xvYmFsCisgICAgICAgIG1heGNvbm4gMzIwMDAKKyAgICAgICAgdWxpbWl0LW4gNjU1MzYKKwogCiAxLjMpIERyb3Agb2YgcHJpdmlsZWRnZXMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTk5LDkgKzIxMiwxMCBAQAogLS0tLS0tLS0tCiAKICAgICBnbG9iYWwKLQl1aWQJMzAwMDAKLQlnaWQJMzAwMDAKLQljaHJvb3QgIC92YXIvY2hyb290L2hhcHJveHkKKyAgICAgICAgdWlkICAgICAzMDAwMAorICAgICAgICBnaWQgICAgIDMwMDAwCisgICAgICAgIGNocm9vdCAgL3Zhci9jaHJvb3QvaGFwcm94eQorCiAKIDEuNCkgU3RhcnR1cCBtb2RlcwogLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMjYsNiArMjQwLDcgQEAKIHdheXMuIFRoaXMgbW9kZSBpcyBpbmNvbXBhdGlibGUgd2l0aCAnZGFlbW9uJyBhbmQgJ3F1aWV0JyBtb2RlcyBmb3Igb2J2aW91cwogcmVhc29ucy4KIAorCiAxLjUpIEluY3JlYXNpbmcgdGhlIG92ZXJhbGwgcHJvY2Vzc2luZyBwb3dlcgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIE9uIG11bHRpLXByb2Nlc3NvciBzeXN0ZW1zLCBpdCBtYXkgc2VlbSB0byBiZSBhIHNoYW1lIHRvIHVzZSBvbmx5IG9uZSBwcm9jZXNzb3IsCkBAIC0yNDEsOSArMjU2LDkgQEAKIC0tLS0tLS0tLQogCiAgICAgZ2xvYmFsCi0JZGFlbW9uCi0JcXVpZXQKLQluYnByb2MJMgorICAgICAgICBkYWVtb24KKyAgICAgICAgcXVpZXQKKyAgICAgICAgbmJwcm9jICAyCiAKIAogMS42KSBIZWxwaW5nIHByb2Nlc3MgbWFuYWdlbWVudApAQCAtMjYxLDcgKzI3Niw3IEBACiAgICAgZ2xvYmFsCiAgICAgICAgIGRhZW1vbgogICAgICAgICBxdWlldAotICAgICAgICBuYnByb2MgMgorICAgICAgICBuYnByb2MgIDIKICAgICAgICAgcGlkZmlsZSAvdmFyL3J1bi9oYXByb3h5LXByaXZhdGUucGlkCiAKICAgICAjIHRvIHN0b3Agb25seSB0aG9zZSBwcm9jZXNzZXMgYW1vbmcgb3RoZXJzIDoKQEAgLTM1Niw3ICszNzEsOCBAQAogLS0tLS0tLS0tLQogICAgIGxpc3RlbiBodHRwX3Byb3h5CiAgICAgICAgIGJpbmQgOjgwLDo0NDMKLQliaW5kIDEwLjAuMC4xOjEwMDgwLDEwLjAuMC4xOjEwNDQzCisgICAgICAgIGJpbmQgMTAuMC4wLjE6MTAwODAsMTAuMC4wLjE6MTA0NDMKKwogCiAyLjEpIEluaGliaXRpbmcgYSBzZXJ2aWNlCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNjUsMTEgKzM4MSwxMiBAQAogc2VjdGlvbiB0byBiZSBkaXNhYmxlZCA6CiAKICAgICBsaXN0ZW4gc210cF9wcm94eSAwLjAuMC4wOjI1Ci0JZGlzYWJsZWQKKyAgICAgICAgZGlzYWJsZWQKIAogTm90ZTogdGhlICdlbmFibGVkJyBrZXl3b3JkIGFsbG93cyB0byBlbmFibGUgYSBzZXJ2aWNlIHdoaWNoIGhhcyBiZWVuIGRpc2FibGVkCiAgICAgICBwcmV2aW91c2x5IGJ5IGEgZGVmYXVsdCBjb25maWd1cmF0aW9uLgogCisKIDIuMikgTW9kZXMgb2Ygb3BlcmF0aW9uCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogQSBzZXJ2aWNlIGNhbiB3b3JrIGluIDMgZGlmZmVyZW50IGRpc3RpbmN0IG1vZGVzIDoKQEAgLTM4Nyw3ICs0MDQsNyBAQAogRXhhbXBsZSA6CiAtLS0tLS0tLS0KICAgICBsaXN0ZW4gc210cF9wcm94eSAwLjAuMC4wOjI1Ci0JbW9kZSB0Y3AKKyAgICAgICAgbW9kZSB0Y3AKIAogSFRUUCBtb2RlCiAtLS0tLS0tLS0KQEAgLTM5OSw3ICs0MTYsNyBAQAogRXhhbXBsZSA6CiAtLS0tLS0tLS0KICAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCisgICAgICAgIG1vZGUgaHR0cAogCiBIZWFsdGgtY2hlY2tpbmcgbW9kZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQxNSwxMyArNDMyLDQ1IEBACiAtLS0tLS0tLS0KICAgICAjIHNpbXBsZSByZXNwb25zZSA6ICdPSycKICAgICBsaXN0ZW4gaGVhbHRoX2NoZWNrIDAuMC4wLjA6NjAwMDAKLQltb2RlIGhlYWx0aAorICAgICAgICBtb2RlIGhlYWx0aAogCiAgICAgIyBIVFRQIHJlc3BvbnNlIDogJ0hUVFAvMS4wIDIwMCBPSycKICAgICBsaXN0ZW4gaHR0cF9oZWFsdGhfY2hlY2sgMC4wLjAuMDo2MDAwMQotCW1vZGUgaGVhbHRoCi0Jb3B0aW9uIGh0dHBjaGsKKyAgICAgICAgbW9kZSBoZWFsdGgKKyAgICAgICAgb3B0aW9uIGh0dHBjaGsKKworTW9uaXRvcmluZworLS0tLS0tLS0tLQorVmVyc2lvbnMgMS4xLjMyIGFuZCAxLjIuNiBwcm92aWRlIGEgbmV3IHNvbHV0aW9uIHRvIGNoZWNrIHRoZSBwcm94eSdzCithdmFpbGFiaWxpdHkgd2l0aG91dCBwZXJ0dXJiYXRpbmcgdGhlIHNlcnZpY2UuIFRoZSAnbW9uaXRvci1uZXQnIGtleXdvcmQgd2FzCitjcmVhdGVkIHRvIHNwZWNpZnkgYSBuZXR3b3JrIG9mIGVxdWlwbWVudHMgd2hpY2ggQ0FOTk9UIHVzZSB0aGUgc2VydmljZSBmb3IKK2FueXRoaW5nIGJ1dCBoZWFsdGgtY2hlY2tzLiBUaGlzIGlzIHBhcnRpY3VsYXJseSBzdWl0ZWQgdG8gVENQIHByb3hpZXMsIGJlY2F1c2UKK2l0IHByZXZlbnRzIHRoZSBwcm94eSBmcm9tIHJlbGF5aW5nIHRoZSBtb25pdG9yJ3MgY29ubmVjdGlvbiB0byB0aGUgcmVtb3RlCitzZXJ2ZXIuCisKK1doZW4gdXNlZCB3aXRoIFRDUCwgdGhlIGNvbm5lY3Rpb24gaXMgYWNjZXB0ZWQgdGhlbiBjbG9zZWQgYW5kIG5vdGhpbmcgaXMKK2xvZ2dlZC4gVGhpcyBpcyBlbm91Z2ggZm9yIGEgZnJvbnQtZW5kIGxvYWQtYmFsYW5jZXIgdG8gZGV0ZWN0IHRoZSBzZXJ2aWNlIGFzCithdmFpbGFibGUuCiAKK1doZW4gdXNlZCB3aXRoIEhUVFAsIHRoZSBjb25uZWN0aW9uIGlzIGFjY2VwdGVkLCBub3RoaW5nIGlzIGxvZ2dlZCwgdGhlCitmb2xsb3dpbmcgcmVzcG9uc2UgaXMgc2VudCwgdGhlbiB0aGUgc2Vzc2lvbiBpcyBjbG9zZWQgOiAiSFRUUC8xLjAgMjAwIE9LIi4KK1RoaXMgaXMgbm9ybWFsbHkgZW5vdWdoIGZvciBhbnkgZnJvbnQtZW5kIEhUVFAgbG9hZC1iYWxhbmNlciB0byBkZXRlY3QgdGhlCitzZXJ2aWNlIGFzIGF2YWlsYWJsZSB0b28sIGJvdGggd2l0aCBUQ1AgYW5kIEhUVFAgY2hlY2tzLgorCitQcm94aWVzIHVzaW5nIHRoZSAibW9uaXRvci1uZXQiIGtleXdvcmQgY2FuIHJlbW92ZSB0aGUgIm9wdGlvbiBkb250bG9nbnVsbCIsIGFzCitpdCB3aWxsIG1ha2UgdGhlbSBsb2cgZW1wdHkgY29ubmVjdGlvbnMgZnJvbSBob3N0cyBvdXRzaWRlIHRoZSBtb25pdG9yaW5nCituZXR3b3JrLgorCitFeGFtcGxlIDoKKy0tLS0tLS0tLQorCisgICAgbGlzdGVuIHRzZS1wcm94eQorICAgICAgIGJpbmQgOjMzODksOjE0OTQsOjU5MDAgICMgVFNFLCBJQ0EgYW5kIFZOQyBhdCBvbmNlLgorICAgICAgIG1vZGUgdGNwCisgICAgICAgYmFsYW5jZSByb3VuZHJvYmluCisgICAgICAgc2VydmVyIHRzZS1mYXJtIDE5Mi4xNjguMS4xMAorICAgICAgIG1vbml0b3ItbmV0IDE5Mi4xNjguMS4yNTIvMzEgICAjIEw0IGxvYWQtYmFsYW5jZXJzIG9uIC4yNTIgYW5kIC4yNTMKKwogCiAyLjMpIExpbWl0aW5nIHRoZSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGNvbm5lY3Rpb25zCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC00NTcsMTMgKzUwNiwxMyBAQAogICAgICMgZW50ZXIgc29mdCBzdG9wIGFmdGVyICdraWxsYWxsIC1VU1IxIGhhcHJveHknCiAgICAgIyB0aGUgc2VydmljZSB3aWxsIHN0aWxsIHJ1biAxMCBzZWNvbmRzIGFmdGVyIHRoZSBzaWduYWwKICAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0JZ3JhY2UgMTAwMDAKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGdyYWNlIDEwMDAwCiAKICAgICAjIHRoaXMgcG9ydCBpcyBkZWRpY2F0ZWQgdG8gYSBsb2FkLWJhbGFuY2VyLCBhbmQgbXVzdCBmYWlsIGltbWVkaWF0ZWx5CiAgICAgbGlzdGVuIGhlYWx0aF9jaGVjayAwLjAuMC4wOjYwMDAwCi0JbW9kZSBoZWFsdGgKLQlncmFjZSAwCisgICAgICAgIG1vZGUgaGVhbHRoCisgICAgICAgIGdyYWNlIDAKIAogCiAyLjUpIENvbm5lY3Rpb25zIGV4cGlyYXRpb24gdGltZQpAQCAtNDc2LDIwICs1MjUsMjAgQEAKICAgLSB0aGUgdGltZSB3ZSBhY2NlcHQgdG8gd2FpdCBmb3IgZGF0YSBmcm9tIHRoZSBjbGllbnQsIG9yIGZvciB0aGUgY2xpZW50IHRvCiAgICAgYWNjZXB0IGRhdGEgOiAnY2xpdGltZW91dCcgOgogCi0JIyBjbGllbnQgdGltZS1vdXQgc2V0IHRvIDJtbjMwLgotCWNsaXRpbWVvdXQJMTUwMDAwCisgICAgICAgICMgY2xpZW50IHRpbWUtb3V0IHNldCB0byAybW4zMC4KKyAgICAgICAgY2xpdGltZW91dCAgMTUwMDAwCiAKICAgLSB0aGUgdGltZSB3ZSBhY2NlcHQgdG8gd2FpdCBmb3IgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIsIG9yIGZvciB0aGUgc2VydmVyIHRvCiAgICAgYWNjZXB0IGRhdGEgOiAnc3J2dGltZW91dCcgOgogCi0JIyBzZXJ2ZXIgdGltZS1vdXQgc2V0IHRvIDMwcy4KLQlzcnZ0aW1lb3V0CTMwMDAwCisgICAgICAgICMgc2VydmVyIHRpbWUtb3V0IHNldCB0byAzMHMuCisgICAgICAgIHNydnRpbWVvdXQgIDMwMDAwCiAKICAgLSB0aGUgdGltZSB3ZSBhY2NlcHQgdG8gd2FpdCBmb3IgYSBjb25uZWN0aW9uIHRvIGVzdGFibGlzaCBvbiBhIHNlcnZlciA6CiAgICAgJ2NvbnRpbWVvdXQnIDoKIAogICAgICAgICAjIHdlIGdpdmUgdXAgaWYgdGhlIGNvbm5lY3Rpb24gZG9lcyBub3QgY29tcGxldGUgd2l0aGluIDQgc2Vjb25kcwotCWNvbnRpbWVvdXQJNDAwMAorICAgICAgICBjb250aW1lb3V0ICA0MDAwCiAKIE5vdGVzIDoKIC0tLS0tLS0KQEAgLTUwMCw2ICs1NDksNyBAQAogICAgIGNvbXBlbnNhdGUgZm9yIGEgcGFja2V0IGxvc3MuIEEgNCBzZWNvbmRzIHRpbWUtb3V0IHNlZW1zIGEgcmVhc29uYWJsZQogICAgIG1pbmltdW0gd2hpY2ggd2lsbCBjb25zaWRlcmFibHkgcmVkdWNlIGNvbm5lY3Rpb24gZmFpbHVyZXMuCiAKKwogMi42KSBBdHRlbXB0cyB0byByZWNvbm5lY3QKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBBZnRlciBhIGNvbm5lY3Rpb24gZmFpbHVyZSB0byBhIHNlcnZlciwgaXQgaXMgcG9zc2libGUgdG8gcmV0cnksIHBvdGVudGlhbGx5CkBAIC01MDksOCArNTU5LDggQEAKIAogRXhhbXBsZSA6CiAtLS0tLS0tLS0KLQkjIHdlIGNhbiByZXRyeSAzIHRpbWVzIG1heCBhZnRlciBhIGZhaWx1cmUKLQlyZXRyaWVzIDMKKyAgICAgICAgIyB3ZSBjYW4gcmV0cnkgMyB0aW1lcyBtYXggYWZ0ZXIgYSBmYWlsdXJlCisgICAgICAgIHJldHJpZXMgMwogCiAKIDIuNykgQWRkcmVzcyBvZiB0aGUgZGlzcGF0Y2ggc2VydmVyIChkZXByZWNhdGVkKQpAQCAtNTI3LDggKzU3Nyw4IEBACiAKIEV4YW1wbGUgOgogLS0tLS0tLS0tCi0gICAJIyBhbGwgbmV3IGNvbm5lY3Rpb25zIGdvIHRoZXJlCi0JZGlzcGF0Y2ggMTkyLjE2OC4xLjI6ODAKKyAgICAgICAgICAgIyBhbGwgbmV3IGNvbm5lY3Rpb25zIGdvIHRoZXJlCisgICAgICAgIGRpc3BhdGNoIDE5Mi4xNjguMS4yOjgwCiAKIE5vdGUgOgogLS0tLS0tCkBAIC01NTEsMTIgKzYwMSwxMiBAQAogRXhhbXBsZXMgOgogLS0tLS0tLS0tLQogICAgIGxpc3RlbiBodHRwX3Byb3h5ICo6ODAKLSAgIAkjIGFsbCBjb25uZWN0aW9ucyB0YWtlIDE5Mi4xNjguMS4yMDAgYXMgc291cmNlIGFkZHJlc3MKLQlzb3VyY2UgMTkyLjE2OC4xLjIwMDowCisgICAgICAgICAgICMgYWxsIGNvbm5lY3Rpb25zIHRha2UgMTkyLjE2OC4xLjIwMCBhcyBzb3VyY2UgYWRkcmVzcworICAgICAgICBzb3VyY2UgMTkyLjE2OC4xLjIwMDowCiAKICAgICBsaXN0ZW4gcmxvZ2luX3Byb3h5ICo6NTEzCi0gICAJIyB1c2UgYWRkcmVzcyAxOTIuMTY4LjEuMjAwIGFuZCB0aGUgcmVzZXJ2ZWQgcG9ydCA5MDAgKG5lZWRzIHRvIGJlIHJvb3QpCi0Jc291cmNlIDE5Mi4xNjguMS4yMDA6OTAwCisgICAgICAgICAgICMgdXNlIGFkZHJlc3MgMTkyLjE2OC4xLjIwMCBhbmQgdGhlIHJlc2VydmVkIHBvcnQgOTAwIChuZWVkcyB0byBiZSByb290KQorICAgICAgICBzb3VyY2UgMTkyLjE2OC4xLjIwMDo5MDAKIAogCiAyLjkpIFNldHRpbmcgdGhlIGNvb2tpZSBuYW1lCkBAIC01NjgsOCArNjE4LDggQEAKIEV4YW1wbGUgOgogLS0tLS0tLS0tCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgOjgwCi0JbW9kZSBodHRwCi0JY29va2llIFNFUlZFUklECisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBjb29raWUgU0VSVkVSSUQKIAogSXQgaXMgcG9zc2libGUgdG8gY2hhbmdlIHRoZSBjb29raWUgYmVoYXZpb3VyIHRvIGdldCBhIHNtYXJ0ZXIgcGVyc2lzdGVuY2UsCiBkZXBlbmRpbmcgb24gYXBwbGljYXRpb25zLiBJdCBpcyBub3RhYmx5IHBvc3NpYmxlIHRvIGRlbGV0ZSBvciBtb2RpZnkgYSBjb29raWUKQEAgLTU4MiwzOCArNjMyLDM4IEBACiBUbyByZW1vdmUgdGhlIGNvb2tpZSBmb3IgZGlyZWN0IGFjY2Vzc2VzIChpZSB3aGVuIHRoZSBzZXJ2ZXIgbWF0Y2hlcyB0aGUgb25lCiB3aGljaCB3YXMgc3BlY2lmaWVkIGluIHRoZSBjbGllbnQgY29va2llKSA6CiAKLQljb29raWUgU0VSVkVSSUQgaW5kaXJlY3QKKyAgICAgICAgY29va2llIFNFUlZFUklEIGluZGlyZWN0CiAKIFRvIHJlcGxhY2UgdGhlIGNvb2tpZSB2YWx1ZSB3aXRoIHRoZSBvbmUgYXNzaWduZWQgdG8gdGhlIHNlcnZlciBpZiBhbnkgKG5vCiBjb29raWUgd2lsbCBiZSBjcmVhdGVkIGlmIHRoZSBzZXJ2ZXIgZG9lcyBub3QgcHJvdmlkZSBvbmUsIG5vciBpZiB0aGUKIGNvbmZpZ3VyYXRpb24gZG9lcyBub3QgcHJvdmlkZSBvbmUpLiBUaGlzIGxldHMgdGhlIGFwcGxpY2F0aW9uIHB1dCB0aGUgY29va2llCiBleGFjdGx5IG9uIGNlcnRhaW4gcGFnZXMgKGVnOiBzdWNjZXNzZnVsIGF1dGhlbnRpY2F0aW9uKSA6CiAKLQljb29raWUgU0VSVkVSSUQgcmV3cml0ZQorICAgICAgICBjb29raWUgU0VSVkVSSUQgcmV3cml0ZQogCiBUbyBjcmVhdGUgYSBuZXcgY29va2llIGFuZCBhc3NpZ24gdGhlIHNlcnZlciBpZGVudGlmaWVyIHRvIGl0IChpbiB0aGlzIGNhc2UsIGFsbAogc2VydmVycyBzaG91bGQgYmUgYXNzb2NpYXRlZCB3aXRoIGEgdmFsaWQgY29va2llLCBzaW5jZSBubyBjb29raWUgd2lsbCBzaW1wbHkKIGRlbGV0ZSB0aGUgY29va2llIGZyb20gdGhlIGNsaWVudCdzIGJyb3dzZXIpIDoKIAotCWNvb2tpZSBTRVJWRVJJRCBpbnNlcnQKKyAgICAgICAgY29va2llIFNFUlZFUklEIGluc2VydAogCiBUbyByZXVzZSBhbiBleGlzdGluZyBhcHBsaWNhdGlvbiBjb29raWUgYW5kIHByZWZpeCBpdCB3aXRoIHRoZSBzZXJ2ZXIncwogaWRlbnRpZmllciwgYW5kIHJlbW92ZSBpdCBpbiB0aGUgcmVxdWVzdCwgdXNlIHRoZSAncHJlZml4JyBvcHRpb24uIFRoaXMgYWxsb3dzCiB0byBpbnNlcnQgYSBoYXByb3h5IGluIGZyb250IG9mIGFuIGFwcGxpY2F0aW9uIHdpdGhvdXQgcmlza2luZyB0byBicmVhayBjbGllbnRzCiB3aGljaCBkb2VzIG5vdCBzdXBwb3J0IG1vcmUgdGhhbiBvbmUgY29va2llIDoKIAotCWNvb2tpZSBKU0VTU0lPTklEIHByZWZpeAorICAgICAgICBjb29raWUgSlNFU1NJT05JRCBwcmVmaXgKIAogVG8gaW5zZXJ0IGEgY29va2llIGFuZCBlbnN1cmUgdGhhdCBubyB1cHN0cmVhbSBjYWNoZSB3aWxsIHN0b3JlIGl0LCBhZGQgdGhlCiAnbm9jYWNoZScgb3B0aW9uIDoKIAotCWNvb2tpZSBTRVJWRVJJRCBpbnNlcnQgbm9jYWNoZQorICAgICAgICBjb29raWUgU0VSVkVSSUQgaW5zZXJ0IG5vY2FjaGUKIAogVG8gaW5zZXJ0IGEgY29va2llIG9ubHkgYWZ0ZXIgYSBQT1NUIHJlcXVlc3QsIGFkZCAncG9zdG9ubHknIGFmdGVyICdpbnNlcnQnLgogVGhpcyBoYXMgdGhlIGFkdmFudGFnZSB0aGF0IHRoZXJlJ3Mgbm8gcmlzayBvZiBjYWNoaW5nLCBhbmQgdGhhdCBhbGwgcGFnZXMKIHNlZW4gYmVmb3JlIHRoZSBQT1NUIG9uZSBjYW4gc3RpbGwgYmUgY2FjaGVkIDoKIAotCWNvb2tpZSBTRVJWRVJJRCBpbnNlcnQgcG9zdG9ubHkKKyAgICAgICAgY29va2llIFNFUlZFUklEIGluc2VydCBwb3N0b25seQogCiBOb3RlcyA6CiAtLS0tLS0tLS0tLQpAQCAtNjQxLDYgKzY5MSw3IEBACiAgIGFwcGxpY2F0aW9uIHRvIHNlbGVjdCB3aGljaCBwYWdlIGl0IHdhbnRzIHRoZSB1cHN0cmVhbSBzZXJ2ZXJzIHRvIGNhY2hlLiBJbgogICB0aGlzIGNhc2UsIHlvdSB3b3VsZCB1c2UgJ2luc2VydCBwb3N0b25seSBpbmRpcmVjdCcuCiAKKwogMi4xMCkgQXNzb2NpYXRpbmcgYSBjb29raWUgdmFsdWUgd2l0aCBhIHNlcnZlcgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogSW4gSFRUUCBtb2RlLCBpdCdzIHBvc3NpYmxlIHRvIGFzc29jaWF0ZSBhIGNvb2tpZSB2YWx1ZSB0byBlYWNoIHNlcnZlci4gVGhpcwpAQCAtNjU2LDE1ICs3MDcsMTYgQEAKIEV4YW1wbGUgOiB0aGUgJ1NFUlZFUklEJyBjb29raWUgY2FuIGJlIGVpdGhlciAnc2VydmVyMDEnIG9yICdzZXJ2ZXIwMicKIC0tLS0tLS0tLQogICAgIGxpc3RlbiBodHRwX3Byb3h5IDo4MAotCW1vZGUgaHR0cAotCWNvb2tpZSBTRVJWRVJJRAotCWRpc3BhdGNoIDE5Mi4xNjguMS4xMDA6ODAKLQlzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEKLQlzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRAorICAgICAgICBkaXNwYXRjaCAxOTIuMTY4LjEuMTAwOjgwCisgICAgICAgIHNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMQorICAgICAgICBzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIKIAogV2FybmluZyA6IHRoZSBzeW50YXggaGFzIGNoYW5nZWQgc2luY2UgdmVyc2lvbiAxLjAgIQogLS0tLS0tLS0tCiAKKwogMi4xMSkgQXBwbGljYXRpb24gQ29va2llcwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogU2luY2UgMS4yLjQgaXQgaXMgcG9zc2libGUgdG8gY2F0Y2ggdGhlIGNvb2tpZSB0aGF0IGNvbWVzIGZyb20gYW4KQEAgLTY4NywxMSArNzM5LDEyIEBACiBFeGFtcGxlIDoKIC0tLS0tLS0tLQogICAgIGxpc3RlbiBodHRwX3Byb3h5IDo4MAotCW1vZGUgaHR0cAorICAgICAgICBtb2RlIGh0dHAKICAgICAgICAgYXBwc2Vzc2lvbiBKU0VTU0lPTklEIGxlbiA1MiB0aW1lb3V0IDMwMDAwMAogICAgICAgICAuCiAgICAgICAgIC4KIAorCiAzKSBBdXRvbm9tb3VzIGxvYWQgYmFsYW5jZXIKID09PT09PT09PT09PT09PT09PT09PT09PT09PQogCkBAIC03MDcsMTEgKzc2MCwxMSBAQAogLS0tLS0tLS0tCiAKICAgICBsaXN0ZW4gaHR0cF9wcm94eSA6ODAKLQltb2RlIGh0dHAKLQljb29raWUgU0VSVkVSSUQKLQliYWxhbmNlIHJvdW5kcm9iaW4KLQlzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEKLQlzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxCisgICAgICAgIHNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMgogCiAKIFNpbmNlIHZlcnNpb24gMS4xLjIyLCBpdCBpcyBwb3NzaWJsZSB0byBhdXRvbWF0aWNhbGx5IGRldGVybWluZSBvbiB3aGljaCBwb3J0CkBAIC03MzksMzMgKzc5MiwzMiBAQAogIyBzYW1lIGFzIHByZXZpb3VzIGV4YW1wbGUKIAogICAgIGxpc3RlbiBodHRwX3Byb3h5IDo4MAotCW1vZGUgaHR0cAotCWNvb2tpZSBTRVJWRVJJRAotCWJhbGFuY2Ugcm91bmRyb2JpbgotCXNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xIGNvb2tpZSBzZXJ2ZXIwMQotCXNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yIGNvb2tpZSBzZXJ2ZXIwMgorICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgY29va2llIFNFUlZFUklECisgICAgICAgIGJhbGFuY2Ugcm91bmRyb2JpbgorICAgICAgICBzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMSBjb29raWUgc2VydmVyMDEKKyAgICAgICAgc2VydmVyIHdlYjIgMTkyLjE2OC4xLjIgY29va2llIHNlcnZlcjAyCiAKICMgc2ltdWx0YW5lb3VzIHJlbGF5aW5nIG9mIHBvcnRzIDgwLCA4MSBhbmQgODA4MC04MDg5CiAKICAgICBsaXN0ZW4gaHR0cF9wcm94eSA6ODAsOjgxLDo4MDgwLTgwODkKLQltb2RlIGh0dHAKLQljb29raWUgU0VSVkVSSUQKLQliYWxhbmNlIHJvdW5kcm9iaW4KLQlzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMSBjb29raWUgc2VydmVyMDEKLQlzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMiBjb29raWUgc2VydmVyMDIKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgc2VydmVyIHdlYjEgMTkyLjE2OC4xLjEgY29va2llIHNlcnZlcjAxCisgICAgICAgIHNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yIGNvb2tpZSBzZXJ2ZXIwMgogCiAjIHJlbGF5aW5nIG9mIFRDUCBwb3J0cyAyNSwgMzg5IGFuZCA2NjMgdG8gcG9ydHMgMTAyNSwgMTM4OSBhbmQgMTY2MwogCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgOjI1LDozODksOjY2MwotCW1vZGUgdGNwCi0JYmFsYW5jZSByb3VuZHJvYmluCi0Jc2VydmVyIHNydjEgMTkyLjE2OC4xLjE6KzEwMDAKLQlzZXJ2ZXIgc3J2MiAxOTIuMTY4LjEuMjorMTAwMAorICAgICAgICBtb2RlIHRjcAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgc2VydmVyIHNydjEgMTkyLjE2OC4xLjE6KzEwMDAKKyAgICAgICAgc2VydmVyIHNydjIgMTkyLjE2OC4xLjI6KzEwMDAKIAogCiAzLjEpIFNlcnZlciBtb25pdG9yaW5nCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KIEl0IGlzIHBvc3NpYmxlIHRvIGNoZWNrIHRoZSBzZXJ2ZXJzIHN0YXR1cyBieSB0cnlpbmcgdG8gZXN0YWJsaXNoIFRDUAogY29ubmVjdGlvbnMgb3IgZXZlbiBzZW5kaW5nIEhUVFAgcmVxdWVzdHMgdG8gdGhlbS4gQSBzZXJ2ZXIgd2hpY2ggZmFpbHMgdG8KIHJlcGx5IHRvIGhlYWx0aCBjaGVja3MgYXMgZXhwZWN0ZWQgd2lsbCBub3QgYmUgdXNlZCBieSB0aGUgbG9hZCBiYWxhbmNpbmcKQEAgLTg0MCw3OCArODkyLDc4IEBACiAtLS0tLS0tLS0tCiAjIHNhbWUgc2V0dXAgYXMgaW4gIHBhcmFncmFwaCAzKSB3aXRoIFRDUCBtb25pdG9yaW5nCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAotCW1vZGUgaHR0cAotCWNvb2tpZSBTRVJWRVJJRAotCWJhbGFuY2Ugcm91bmRyb2JpbgotCXNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMSBjaGVjawotCXNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMiBjaGVjayBpbnRlciA1MDAgcmlzZSAxIGZhbGwgMgorICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgY29va2llIFNFUlZFUklECisgICAgICAgIGJhbGFuY2Ugcm91bmRyb2JpbgorICAgICAgICBzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEgY2hlY2sKKyAgICAgICAgc2VydmVyIHdlYjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyIGNoZWNrIGludGVyIDUwMCByaXNlIDEgZmFsbCAyCiAKICMgc2FtZSB3aXRoIEhUVFAgbW9uaXRvcmluZyB2aWEgJ09QVElPTlMgLyBIVFRQLzEuMCcKICAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0JY29va2llIFNFUlZFUklECi0JYmFsYW5jZSByb3VuZHJvYmluCi0Jb3B0aW9uIGh0dHBjaGsKLQlzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEgY2hlY2sKLQlzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sgaW50ZXIgNTAwIHJpc2UgMSBmYWxsIDIKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgb3B0aW9uIGh0dHBjaGsKKyAgICAgICAgc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxIGNoZWNrCisgICAgICAgIHNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMiBjaGVjayBpbnRlciA1MDAgcmlzZSAxIGZhbGwgMgogCiAjIHNhbWUgd2l0aCBIVFRQIG1vbml0b3JpbmcgdmlhICdPUFRJT05TIC9pbmRleC5odG1sIEhUVFAvMS4wJwogICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKLQltb2RlIGh0dHAKLQljb29raWUgU0VSVkVSSUQKLQliYWxhbmNlIHJvdW5kcm9iaW4KLQlvcHRpb24gaHR0cGNoayAvaW5kZXguaHRtbAotCXNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMSBjaGVjawotCXNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMiBjaGVjayBpbnRlciA1MDAgcmlzZSAxIGZhbGwgMgorICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgY29va2llIFNFUlZFUklECisgICAgICAgIGJhbGFuY2Ugcm91bmRyb2JpbgorICAgICAgICBvcHRpb24gaHR0cGNoayAvaW5kZXguaHRtbAorICAgICAgICBzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEgY2hlY2sKKyAgICAgICAgc2VydmVyIHdlYjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyIGNoZWNrIGludGVyIDUwMCByaXNlIDEgZmFsbCAyCiAKICMgc2FtZSB3aXRoIEhUVFAgbW9uaXRvcmluZyB2aWEgJ0hFQUQgL2luZGV4LmpzcD8gSFRUUC8xLjFcclxuSG9zdDogd3d3JwogICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKLQltb2RlIGh0dHAKLQljb29raWUgU0VSVkVSSUQKLQliYWxhbmNlIHJvdW5kcm9iaW4KLQlvcHRpb24gaHR0cGNoayBIRUFEIC9pbmRleC5qc3A/IEhUVFAvMS4xXHJcbkhvc3Q6XCB3d3cKLQlzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEgY2hlY2sKLQlzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sgaW50ZXIgNTAwIHJpc2UgMSBmYWxsIDIKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgb3B0aW9uIGh0dHBjaGsgSEVBRCAvaW5kZXguanNwPyBIVFRQLzEuMVxyXG5Ib3N0Olwgd3d3CisgICAgICAgIHNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMSBjaGVjaworICAgICAgICBzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sgaW50ZXIgNTAwIHJpc2UgMSBmYWxsIDIKIAogIyBMb2FkLWJhbGFuY2luZyB3aXRoICdwcmVmaXhlZCBjb29raWUnIHBlcnNpc3RlbmNlLCBhbmQgc29mdC1zdG9wIHVzaW5nIGFuCiAjIGFsdGVybmF0ZSBwb3J0IDgxIG9uIHRoZSBzZXJ2ZXIgZm9yIGhlYWx0aC1jaGVja3MuCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAotCW1vZGUgaHR0cAotCWNvb2tpZSBKU0VTU0lPTklEIHByZWZpeAotCWJhbGFuY2Ugcm91bmRyb2JpbgotCW9wdGlvbiBodHRwY2hrIEhFQUQgL2luZGV4LmpzcD8gSFRUUC8xLjFcclxuSG9zdDpcIHd3dwotCXNlcnZlciB3ZWIxLW5vcm0gMTkyLjE2OC4xLjE6ODAgY29va2llIHMxIGNoZWNrIHBvcnQgODEKLQlzZXJ2ZXIgd2ViMi1ub3JtIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzMiBjaGVjayBwb3J0IDgxCi0Jc2VydmVyIHdlYjEtc3RvcCAxOTIuMTY4LjEuMTo4MCBjb29raWUgczEgY2hlY2sgcG9ydCA4MCBiYWNrdXAKLQlzZXJ2ZXIgd2ViMi1zdG9wIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzMiBjaGVjayBwb3J0IDgwIGJhY2t1cAorICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgY29va2llIEpTRVNTSU9OSUQgcHJlZml4CisgICAgICAgIGJhbGFuY2Ugcm91bmRyb2JpbgorICAgICAgICBvcHRpb24gaHR0cGNoayBIRUFEIC9pbmRleC5qc3A/IEhUVFAvMS4xXHJcbkhvc3Q6XCB3d3cKKyAgICAgICAgc2VydmVyIHdlYjEtbm9ybSAxOTIuMTY4LjEuMTo4MCBjb29raWUgczEgY2hlY2sgcG9ydCA4MQorICAgICAgICBzZXJ2ZXIgd2ViMi1ub3JtIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzMiBjaGVjayBwb3J0IDgxCisgICAgICAgIHNlcnZlciB3ZWIxLXN0b3AgMTkyLjE2OC4xLjE6ODAgY29va2llIHMxIGNoZWNrIHBvcnQgODAgYmFja3VwCisgICAgICAgIHNlcnZlciB3ZWIyLXN0b3AgMTkyLjE2OC4xLjI6ODAgY29va2llIHMyIGNoZWNrIHBvcnQgODAgYmFja3VwCiAKICMgYXV0b21hdGljIGluc2VydGlvbiBvZiBhIGNvb2tpZSBpbiB0aGUgc2VydmVyJ3MgcmVzcG9uc2UsIGFuZCBhdXRvbWF0aWMKICMgZGVsZXRpb24gb2YgdGhlIGNvb2tpZSBpbiB0aGUgY2xpZW50IHJlcXVlc3QsIHdoaWxlIGFza2luZyB1cHN0cmVhbSBjYWNoZXMKICMgbm90IHRvIGNhY2hlIHJlcGxpZXMuCiAgICAgbGlzdGVuIHdlYl9hcHBsIDAuMC4wLjA6ODAKLQltb2RlIGh0dHAKLQljb29raWUgU0VSVkVSSUQgaW5zZXJ0IG5vY2FjaGUgaW5kaXJlY3QKLQliYWxhbmNlIHJvdW5kcm9iaW4KLQlzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEgY2hlY2sKLQlzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRCBpbnNlcnQgbm9jYWNoZSBpbmRpcmVjdAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxIGNoZWNrCisgICAgICAgIHNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMiBjaGVjawogCiAjIHNhbWUgd2l0aCBvZmYtc2l0ZSBhcHBsaWNhdGlvbiBiYWNrdXAgYW5kIGxvY2FsIGVycm9yIHBhZ2VzIHNlcnZlcgogICAgIGxpc3RlbiB3ZWJfYXBwbCAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0JY29va2llIFNFUlZFUklEIGluc2VydCBub2NhY2hlIGluZGlyZWN0Ci0JYmFsYW5jZSByb3VuZHJvYmluCi0Jc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxIGNoZWNrCi0Jc2VydmVyIHdlYjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyIGNoZWNrCi0Jc2VydmVyIHdlYi1iYWNrdXAgMTkyLjE2OC4yLjE6ODAgY29va2llIHNlcnZlcjAzIGNoZWNrIGJhY2t1cAotCXNlcnZlciB3ZWItZXhjdXNlIDE5Mi4xNjguMy4xOjgwIGNoZWNrIGJhY2t1cAorICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgY29va2llIFNFUlZFUklEIGluc2VydCBub2NhY2hlIGluZGlyZWN0CisgICAgICAgIGJhbGFuY2Ugcm91bmRyb2JpbgorICAgICAgICBzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEgY2hlY2sKKyAgICAgICAgc2VydmVyIHdlYjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyIGNoZWNrCisgICAgICAgIHNlcnZlciB3ZWItYmFja3VwIDE5Mi4xNjguMi4xOjgwIGNvb2tpZSBzZXJ2ZXIwMyBjaGVjayBiYWNrdXAKKyAgICAgICAgc2VydmVyIHdlYi1leGN1c2UgMTkyLjE2OC4zLjE6ODAgY2hlY2sgYmFja3VwCiAKLSMgU01UUCtUTFMgcmVsYXlpbmcgd2l0aCBoZWFrdGgtY2hlY2tzIGFuZCBiYWNrdXAgc2VydmVycworIyBTTVRQK1RMUyByZWxheWluZyB3aXRoIGhlYWx0aC1jaGVja3MgYW5kIGJhY2t1cCBzZXJ2ZXJzCiAKICAgICBsaXN0ZW4gaHR0cF9wcm94eSA6MjUsOjU4NwotCW1vZGUgdGNwCi0JYmFsYW5jZSByb3VuZHJvYmluCi0Jc2VydmVyIHNydjEgMTkyLjE2OC4xLjEgY2hlY2sgcG9ydCAyNSBpbnRlciAzMDAwMCByaXNlIDEgZmFsbCAyCi0Jc2VydmVyIHNydjIgMTkyLjE2OC4xLjIgYmFja3VwCisgICAgICAgIG1vZGUgdGNwCisgICAgICAgIGJhbGFuY2Ugcm91bmRyb2JpbgorICAgICAgICBzZXJ2ZXIgc3J2MSAxOTIuMTY4LjEuMSBjaGVjayBwb3J0IDI1IGludGVyIDMwMDAwIHJpc2UgMSBmYWxsIDIKKyAgICAgICAgc2VydmVyIHNydjIgMTkyLjE2OC4xLjIgYmFja3VwCiAKIAogMy4yKSBSZWRpc3RyaWJ1dGUgY29ubmVjdGlvbnMgaW4gY2FzZSBvZiBmYWlsdXJlCkBAIC05MjQsMTIgKzk3NiwxMiBAQAogRXhhbXBsZSA6CiAtLS0tLS0tLS0KICAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0JY29va2llIFNFUlZFUklECi0JZGlzcGF0Y2ggMTkyLjE2OC4xLjEwMDo4MAotCXNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMQotCXNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMgotCXJlZGlzcGF0Y2ggIyBzZW5kIGJhY2sgdG8gZGlzcGF0Y2ggaW4gY2FzZSBvZiBjb25uZWN0aW9uIGZhaWx1cmUKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRAorICAgICAgICBkaXNwYXRjaCAxOTIuMTY4LjEuMTAwOjgwCisgICAgICAgIHNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMQorICAgICAgICBzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIKKyAgICAgICAgcmVkaXNwYXRjaCAjIHNlbmQgYmFjayB0byBkaXNwYXRjaCBpbiBjYXNlIG9mIGNvbm5lY3Rpb24gZmFpbHVyZQogCiBVcCB0bywgYW5kIGluY2x1ZGluZyB2ZXJzaW9uIDEuMS4xNiwgdGhpcyBwYXJhbWV0ZXIgb25seSBhcHBsaWVkIHRvIGNvbm5lY3Rpb24KIGZhaWx1cmVzLiBTaW5jZSB2ZXJzaW9uIDEuMS4xNywgaXQgYWxzbyBhcHBsaWVzIHRvIHNlcnZlcnMgd2hpY2ggaGF2ZSBiZWVuCkBAIC05NDAsMTMgKzk5MiwxMyBAQAogb3B0aW9uIDoKIAogICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKLQltb2RlIGh0dHAKLQlvcHRpb24gcGVyc2lzdAotCWNvb2tpZSBTRVJWRVJJRAotCWRpc3BhdGNoIDE5Mi4xNjguMS4xMDA6ODAKLQlzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEKLQlzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIKLQlyZWRpc3BhdGNoICMgc2VuZCBiYWNrIHRvIGRpc3BhdGNoIGluIGNhc2Ugb2YgY29ubmVjdGlvbiBmYWlsdXJlCisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBvcHRpb24gcGVyc2lzdAorICAgICAgICBjb29raWUgU0VSVkVSSUQKKyAgICAgICAgZGlzcGF0Y2ggMTkyLjE2OC4xLjEwMDo4MAorICAgICAgICBzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEKKyAgICAgICAgc2VydmVyIHdlYjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyCisgICAgICAgIHJlZGlzcGF0Y2ggIyBzZW5kIGJhY2sgdG8gZGlzcGF0Y2ggaW4gY2FzZSBvZiBjb25uZWN0aW9uIGZhaWx1cmUKIAogCiA0KSBBZGRpdGlvbm5hbCBmZWF0dXJlcwpAQCAtOTU1LDYgKzEwMDcsNyBAQAogT3RoZXIgZmVhdHVyZXMgYXJlIGF2YWlsYWJsZS4gVGhleSBhcmUgdHJhbnNwYXJlbnQgbW9kZSwgZXZlbnQgbG9nZ2luZyBhbmQKIGhlYWRlciByZXdyaXRpbmcvZmlsdGVyaW5nLgogCisKIDQuMSkgTmV0d29yayBmZWF0dXJlcwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA0LjEuMSkgVHJhbnNwYXJlbnQgbW9kZQpAQCAtOTY4LDExICsxMDIxLDExIEBACiBFeGFtcGxlIDoKIC0tLS0tLS0tLQogICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6NjUwMDAKLQltb2RlIGh0dHAKLQl0cmFuc3BhcmVudAotCWNvb2tpZSBTRVJWRVJJRAotCXNlcnZlciBzZXJ2ZXIwMSAxOTIuMTY4LjEuMTo4MAotCXNlcnZlciBzZXJ2ZXIwMiAxOTIuMTY4LjEuMjo4MAorICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgdHJhbnNwYXJlbnQKKyAgICAgICAgY29va2llIFNFUlZFUklECisgICAgICAgIHNlcnZlciBzZXJ2ZXIwMSAxOTIuMTY4LjEuMTo4MAorICAgICAgICBzZXJ2ZXIgc2VydmVyMDIgMTkyLjE2OC4xLjI6ODAKIAogICAgICMgaXB0YWJsZXMgLXQgbmF0IC1BIFBSRVJPVVRJTkcgLWkgZXRoMCAtcCB0Y3AgLWQgMTkyLjE2OC4xLjEwMCBcCiAgICAgICAtLWRwb3J0IDgwIC1qIFJFRElSRUNUIC0tdG8tcG9ydHMgNjUwMDAKQEAgLTk4OSw5ICsxMDQyLDkgQEAKICAgICAjIHJlZGlyZWN0IGFsbCBwb3J0cyB0byBsb2NhbCBwb3J0IDY1MDAwLCB0aGVuIGZvcndhcmQgdG8gdGhlIHNlcnZlciBvbiB0aGUKICAgICAjIG9yaWdpbmFsIHBvcnQuCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo2NTAwMAotCW1vZGUgdGNwCi0Jc2VydmVyIHNlcnZlcjAxIDE5Mi4xNjguMS4xIGNoZWNrIHBvcnQgNjAwMDAKLQlzZXJ2ZXIgc2VydmVyMDIgMTkyLjE2OC4xLjIgY2hlY2sgcG9ydCA2MDAwMAorICAgICAgICBtb2RlIHRjcAorICAgICAgICBzZXJ2ZXIgc2VydmVyMDEgMTkyLjE2OC4xLjEgY2hlY2sgcG9ydCA2MDAwMAorICAgICAgICBzZXJ2ZXIgc2VydmVyMDIgMTkyLjE2OC4xLjIgY2hlY2sgcG9ydCA2MDAwMAogCiAgICAgIyBpcHRhYmxlcyAtdCBuYXQgLUEgUFJFUk9VVElORyAtaSBldGgwIC1wIHRjcCAtZCAxOTIuMTY4LjEuMTAwIFwKICAgICAgIC1qIFJFRElSRUNUIC0tdG8tcG9ydHMgNjUwMDAKQEAgLTEwMDgsNDEgKzEwNjEsNjcgQEAKIC0tLS0tLS0tLQogICAgICMgdXNlIGEgcGFydGljdWxhciBzb3VyY2UgdG8gcmVhY2ggYm90aCBzZXJ2ZXJzCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo2NTAwMAotCW1vZGUgaHR0cAotCWJhbGFuY2Ugcm91bmRyb2JpbgotCXNlcnZlciBzZXJ2ZXIwMSAxOTIuMTY4LjEuMTo4MCBzb3VyY2UgMTkyLjE2OC4yLjEzCi0Jc2VydmVyIHNlcnZlcjAyIDE5Mi4xNjguMS4yOjgwIHNvdXJjZSAxOTIuMTY4LjIuMTMKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGJhbGFuY2Ugcm91bmRyb2JpbgorICAgICAgICBzZXJ2ZXIgc2VydmVyMDEgMTkyLjE2OC4xLjE6ODAgc291cmNlIDE5Mi4xNjguMi4xMworICAgICAgICBzZXJ2ZXIgc2VydmVyMDIgMTkyLjE2OC4xLjI6ODAgc291cmNlIDE5Mi4xNjguMi4xMwogCiBFeGFtcGxlIDoKIC0tLS0tLS0tLQogICAgICMgdXNlIGEgcGFydGljdWxhciBzb3VyY2UgdG8gcmVhY2ggZWFjaCBzZXJ2ZXJzCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo2NTAwMAotCW1vZGUgaHR0cAotCWJhbGFuY2Ugcm91bmRyb2JpbgotCXNlcnZlciBzZXJ2ZXIwMSAxOTIuMTY4LjEuMTo4MCBzb3VyY2UgMTkyLjE2OC4xLjEKLQlzZXJ2ZXIgc2VydmVyMDIgMTkyLjE2OC4yLjE6ODAgc291cmNlIDE5Mi4xNjguMi4xCisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgc2VydmVyIHNlcnZlcjAxIDE5Mi4xNjguMS4xOjgwIHNvdXJjZSAxOTIuMTY4LjEuMQorICAgICAgICBzZXJ2ZXIgc2VydmVyMDIgMTkyLjE2OC4yLjE6ODAgc291cmNlIDE5Mi4xNjguMi4xCiAKIEV4YW1wbGUgOgogLS0tLS0tLS0tCiAgICAgIyBwcm92aWRlIHNvdXJjZSBsb2FkLWJhbGFuY2luZyB0byByZWFjaCB0aGUgc2FtZSBwcm94eSB0aHJvdWdoIDIgV0FOIGxpbmtzCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo2NTAwMAotCW1vZGUgaHR0cAotCWJhbGFuY2Ugcm91bmRyb2JpbgotCXNlcnZlciByZW1vdGUtcHJveHktd2F5MSAxOTIuMTY4LjEuMTozMTI4IHNvdXJjZSAxOTIuMTY4LjIuMQotCXNlcnZlciByZW1vdGUtcHJveHktd2F5MiAxOTIuMTY4LjEuMTozMTI4IHNvdXJjZSAxOTIuMTY4LjMuMQorICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgYmFsYW5jZSByb3VuZHJvYmluCisgICAgICAgIHNlcnZlciByZW1vdGUtcHJveHktd2F5MSAxOTIuMTY4LjEuMTozMTI4IHNvdXJjZSAxOTIuMTY4LjIuMQorICAgICAgICBzZXJ2ZXIgcmVtb3RlLXByb3h5LXdheTIgMTkyLjE2OC4xLjE6MzEyOCBzb3VyY2UgMTkyLjE2OC4zLjEKIAogRXhhbXBsZSA6CiAtLS0tLS0tLS0KICAgICAjIGZvcmNlIGEgVENQIGNvbm5lY3Rpb24gdG8gYmluZCB0byBhIHNwZWNpZmljIHBvcnQKICAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjIwMDAKLQltb2RlIHRjcAotCWJhbGFuY2Ugcm91bmRyb2JpbgotCXNlcnZlciBzcnYxIDE5Mi4xNjguMS4xOjgwIHNvdXJjZSAxOTIuMTY4LjIuMToyMAotCXNlcnZlciBzcnYyIDE5Mi4xNjguMS4yOjgwIHNvdXJjZSAxOTIuMTY4LjIuMToyMAorICAgICAgICBtb2RlIHRjcAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgc2VydmVyIHNydjEgMTkyLjE2OC4xLjE6ODAgc291cmNlIDE5Mi4xNjguMi4xOjIwCisgICAgICAgIHNlcnZlciBzcnYyIDE5Mi4xNjguMS4yOjgwIHNvdXJjZSAxOTIuMTY4LjIuMToyMAogCiAKIDQuMikgRXZlbnQgbG9nZ2luZwogLS0tLS0tLS0tLS0tLS0tLS0tCisKK0hBUHJveHkncyBzdHJlbmd0aCBjZXJ0YWlubHkgbGllcyBpbiBpdHMgcHJlY2lzZSBsb2dzLiBJdCBwcm9iYWJseSBwcm92aWRlcyB0aGUKK2ZpbmVzdCBsZXZlbCBvZiBpbmZvcm1hdGlvbiBhdmFpbGFibGUgZm9yIHN1Y2ggYSBwcm9kdWN0LCB3aGljaCBpcyB2ZXJ5CitpbXBvcnRhbnQgZm9yIHRyb3VibGVzaG9vdGluZyBjb21wbGV4IGVudmlyb25tZW50cy4gU3RhbmRhcmQgbG9nIGluZm9ybWF0aW9uCitpbmNsdWRlIGNsaWVudCBwb3J0cywgVENQL0hUVFAgc3RhdGUgdGltZXJzLCBwcmVjaXNlIHNlc3Npb24gc3RhdGUgYXQKK3Rlcm1pbmF0aW9uIGFuZCBwcmVjaXNlIHRlcm1pbmF0aW9uIGNhdXNlLCBpbmZvcm1hdGlvbiBhYm91dCBkZWNpc2lvbnMgdG8KK2RpcmVjdCB0cmFmaWMgdG8gYSBzZXJ2ZXIsIGFuZCBvZiBjb3Vyc2UgdGhlIGFiaWxpdHkgdG8gY2FwdHVyZSBhcmJpdHJhcnkKK2hlYWRlcnMuCisKK0luIG9yZGVyIHRvIGltcHJvdmUgYWRtaW5pc3RyYXRvcnMgcmVhY3Rpdml0eSwgaXQgb2ZmZXJzIGEgZ3JlYXQgdHJhbnNwYXJlbmN5CithYm91dCBlbmNvdW50ZXJlZCBwcm9ibGVtcywgYm90aCBpbnRlcm5hbCBhbmQgZXh0ZXJuYWwsIGFuZCBpdCBpcyBwb3NzaWJsZSB0bworc2VuZCBsb2dzIHRvIGRpZmZlcmVudCBzb3VyY2VzIGF0IHRoZSBzYW1lIHRpbWUgd2l0aCBkaWZmZXJlbnQgbGV2ZWwgZmlsdGVycyA6CisKKyAgLSBnbG9iYWwgcHJvY2Vzcy1sZXZlbCBsb2dzIChzeXN0ZW0gZXJyb3JzLCBzdGFydC9zdG9wLCBldGMuLikKKyAgLSBwZXItbGlzdGVuZXIgc3lzdGVtIGFuZCBpbnRlcm5hbCBlcnJvcnMgKGxhY2sgb2YgcmVzb3VyY2UsIGJ1Z3MsIC4uLikKKyAgLSBwZXItbGlzdGVuZXIgZXh0ZXJuYWwgdHJvdWJsZXMgKHNlcnZlcnMgdXAvZG93biwgbWF4IGNvbm5lY3Rpb25zKQorICAtIHBlci1saXN0ZW5lciBhY3Rpdml0eSAoY2xpZW50IGNvbm5lY3Rpb25zKSwgZWl0aGVyIGF0IHRoZSBlc3RhYmxpc2htZW50IG9yCisgICAgYXQgdGhlIHRlcm1pbmF0aW9uLgorCitUaGUgYWJpbGl0eSB0byBkaXN0cmlidXRlIGRpZmZlcmVudCBsZXZlbHMgb2YgbG9ncyB0byBkaWZmZXJlbnQgbG9nIHNlcnZlcnMKK2FsbG93IHNldmVyYWwgcHJvZHVjdGlvbiB0ZWFtcyB0byBpbnRlcmFjdCBhbmQgdG8gZml4IHRoZWlyIHByb2JsZW1zIGFzIHNvb24KK2FzIHBvc3NpYmxlLiBGb3IgZXhhbXBsZSwgdGhlIHN5c3RlbSB0ZWFtIG1pZ2h0IG1vbml0b3Igc3lzdGVtLXdpZGUgZXJyb3JzLAord2hpbGUgdGhlIGFwcGxpY2F0aW9uIHRlYW0gbWlnaHQgYmUgbW9uaXRvcmluZyB0aGUgdXAvZG93biBmb3IgdGhlaXIgc2VydmVycyBpbgorcmVhbCB0aW1lLCBhbmQgdGhlIHNlY3VyaXR5IHRlYW0gbWlnaHQgYW5hbHl6ZSB0aGUgYWN0aXZpdHkgbG9ncyB3aXRoIG9uZSBob3VyCitkZWxheS4KKwogNC4yLjEpIExvZyBsZXZlbHMKIC0tLS0tLS0tLS0tLS0tLS0tCiBUQ1AgYW5kIEhUVFAgY29ubmVjdGlvbnMgY2FuIGJlIGxvZ2dlZCB3aXRoIGluZm9ybWF0aW9ucyBzdWNoIGFzIGRhdGUsIHRpbWUsCkBAIC0xMDY2LDkgKzExNDUsOSBAQAogRXhhbXBsZSA6CiAtLS0tLS0tLS0KICAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0JbG9nIDE5Mi4xNjguMi4yMDAgbG9jYWwzCi0JbG9nIDE5Mi4xNjguMi4yMDEgbG9jYWw0CisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBsb2cgMTkyLjE2OC4yLjIwMCBsb2NhbDMKKyAgICAgICAgbG9nIDE5Mi4xNjguMi4yMDEgbG9jYWw0CiAKIDQuMi4yKSBMb2cgZm9ybWF0CiAtLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTA3OCwxNCArMTE1NywyNyBAQAogY29udGFpbmluZyBtb3JlIGluZm9ybWF0aW9uIHN1Y2ggYXMgc2Vzc2lvbiBkdXJhdGlvbiBhbmQgaXRzIHN0YXRlIGR1cmluZyB0aGUKIGRpc2Nvbm5lY3Rpb24uCiAKLUV4YW1wbGUgOgotLS0tLS0tLS0tCitFeGFtcGxlIG9mIFRDUCBsb2dnaW5nIDoKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIGxpc3RlbiByZWxhaXMtdGNwIDAuMC4wLjA6ODAwMAotCW1vZGUgdGNwCi0Jb3B0aW9uIHRjcGxvZwotCWxvZyAxOTIuMTY4LjIuMjAwIGxvY2FsMworICAgICAgICBtb2RlIHRjcAorICAgICAgICBvcHRpb24gdGNwbG9nCisgICAgICAgIGxvZyAxOTIuMTY4LjIuMjAwIGxvY2FsMwogCi0+Pj4gaGFwcm94eVsxODk4OV06IDEyNy4wLjAuMTozNDU1MCBbMTUvT2N0LzIwMDM6MTU6MjQ6MjhdIHJlbGFpcy10Y3AgU3J2MSAwLzUwMDcgMCAtLQorPj4+IGhhcHJveHlbMTg5ODldOiAxMjcuMC4wLjE6MzQ1NTAgWzE1L09jdC8yMDAzOjE1OjI0OjI4XSByZWxhaXMtdGNwIFNydjEgMC81MDA3IDAgLS0gMS8xCisgIAorICAgIEZpZWxkICBGb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4YW1wbGUKKyAgICAgIAorICAgICAgICAxICBwcm9jZXNzX25hbWUgJ1snIHBpZCAnXTonICAgICAgICAgICAgIGhhcHJveHlbMTg5ODldOgorICAgICAgICAyICBjbGllbnRfaXAgJzonIGNsaWVudF9wb3J0ICAgICAgICAgICAgIDEyNy4wLjAuMTozNDU1MAorICAgICAgICAzICAnWycgZGF0ZSAnXScgICAgICAgICAgICAgICAgICAgICAgICAgIFsxNS9PY3QvMjAwMzoxNToyNDoyOF0KKyAgICAgICAgNCAgbGlzdGVuZXJfbmFtZSAgICAgICAgICAgICAgICAgICAgICAgICByZWxhaXMtdGNwCisgICAgICAgIDUgIHNlcnZlcl9uYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgU3J2MQorICAgICAgICA2ICBjb25uZWN0X3RpbWUgJy8nIHRvdGFsX3RpbWUgICAgICAgICAgIDAvNTAwNworICAgICAgICA3ICBieXRlc19yZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyAgICAgICAgOCAgdGVybWluYXRpb25fc3RhdGUgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICA5ICBsaXN0ZW5lcl9jb25ucyAnLycgcHJvY2Vzc19jb25ucyAgICAgIDEvMQorCiAKIEFub3RoZXIgb3B0aW9uLCAnaHR0cGxvZycsIHByb3ZpZGVzIG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgSFRUUAogY29udGVudHMsIHN1Y2ggYXMgdGhlIHJlcXVlc3QgYW5kIHNvbWUgY29va2llcy4gSW4gdGhlIGV2ZW50IHdoZXJlIGFuIGV4dGVybmFsCkBAIC0xMDk0LDE1ICsxMTg2LDM5IEBACiB0cmFuc2ZlciBhbnkgZGF0YSwgYnkgdGhlIHNldHRpbmcgb2YgdGhlICdkb250bG9nbnVsbCcgb3B0aW9uLiBUaGlzIG9ubHkgaGFzCiBlZmZlY3Qgb24gc2Vzc2lvbnMgd2hpY2ggYXJlIGVzdGFibGlzaGVkIHRoZW4gY2xvc2VkLgogCi1FeGFtcGxlIDoKLS0tLS0tLS0tLQorRXhhbXBsZSBvZiBIVFRQIGxvZ2dpbmcgOgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKLQltb2RlIGh0dHAKLQlvcHRpb24gaHR0cGxvZwotCW9wdGlvbiBkb250bG9nbnVsbAotCWxvZyAxOTIuMTY4LjIuMjAwIGxvY2FsMworICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgb3B0aW9uIGh0dHBsb2cKKyAgICAgICAgb3B0aW9uIGRvbnRsb2dudWxsCisgICAgICAgIGxvZyAxOTIuMTY4LjIuMjAwIGxvY2FsMworCis+Pj4gaGFwcm94eVs2NzRdOiAxMjcuMC4wLjE6MzMzMTkgWzE1L09jdC8yMDAzOjA4OjMxOjU3XSByZWxhaXMtaHR0cCBTcnYxIDkvNy8xNDcvNzIzIDIwMCAyNDMgLSAtIC0tLS0gMy8zICJIRUFEIC8gSFRUUC8xLjAiCiAKLT4+PiBoYXByb3h5WzY3NF06IDEyNy4wLjAuMTozMzMxOSBbMTUvT2N0LzIwMDM6MDg6MzE6NTddIHJlbGFpcy1odHRwIFNydjEgOS83LzE0Ny83MjMgMjAwIDI0MyAtIC0gLS0tLSAiSEVBRCAvIEhUVFAvMS4wIgorTW9yZSBjb21wbGV0ZSBleGFtcGxlCisgICAgaGFwcm94eVsxODk4OV06IDEwLjAuMC4xOjM0NTUyIFsxNS9PY3QvMjAwMzoxNToyNjozMV0gcmVsYWlzLWh0dHAgU3J2MSAzMTgzLy0xLy0xLzExMjE1IDUwMyAwIC0gLSBTQy0tIDIwMi8yMDUge3cub2RzLm9yZ3xNb3ppbGxhfSB7fSAiSEVBRCAvIEhUVFAvMS4wIiAKKworICAgIEZpZWxkICBGb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4YW1wbGUKKyAgCisgICAgICAgIDEgIHByb2Nlc3NfbmFtZSAgJ1snIHBpZCAnXTonICAgICAgICAgICAgaGFwcm94eVsxODk4OV06CisgICAgICAgIDIgIGNsaWVudF9pcCAnOicgY2xpZW50X3BvcnQgICAgICAgICAgICAgMTAuMC4wLjE6MzQ1NTIKKyAgICAgICAgMyAgJ1snIGRhdGUgJ10nICAgICAgICAgICAgICAgICAgICAgICAgICBbMTUvT2N0LzIwMDM6MTU6MjY6MzFdCisgICAgICAgIDQgIGxpc3RlbmVyX25hbWUgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYWlzLWh0dHAKKyAgICAgICAgNSAgc2VydmVyX25hbWUgICAgICAgICAgICAgICAgICAgICAgICAgICBTcnYxCisgICAgICAgIDYgIFRxICcvJyBUYyAnLycgVHIgJy8nIFR0ICAgICAgICAgICAgICAgMzE4My8tMS8tMS8xMTIxNQorICAgICAgICA3ICBIVFRQX3JldHVybl9jb2RlICAgICAgICAgICAgICAgICAgICAgIDUwMworICAgICAgICA4ICBieXRlc19yZWFkICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyAgICAgICAgOSAgY2FwdHVyZWRfcmVxdWVzdF9jb29raWUgICAgICAgICAgICAgICAtCisgICAgICAgMTAgIGNhcHR1cmVkX3Jlc3BvbnNlX2Nvb2tpZSAgICAgICAgICAgICAgLQorICAgICAgIDExICB0ZXJtaW5hdGlvbl9zdGF0ZSAgICAgICAgICAgICAgICAgICAgIFNDLS0KKyAgICAgICAxMiAgbGlzdGVuZXJfY29ubnMgJy8nIHByb2Nlc3NfY29ubnMgICAgICAyMDIvMjA1CisgICAgICAgMTMgICd7JyBjYXB0dXJlZF9yZXF1ZXN0X2hlYWRlcnMgJ30nICAgICAge3cub2RzLm9yZ3xNb3ppbGxhfQorICAgICAgIDE0ICAneycgY2FwdHVyZWRfcmVzcG9uc2VfaGVhZGVycyAnfScgICAgIHt9CisgICAgICAgMTUgICciJyBIVFRQX3JlcXVlc3QgJyInICAgICAgICAgICAgICAgICAgIkhFQUQgLyBIVFRQLzEuMCIKKyAgCitOb3RlIGZvciBsb2cgcGFyc2VyczogdGhlIFVSSSBpcyBBTFdBWVMgdGhlIGVuZCBvZiB0aGUgbGluZSBzdGFydGluZyB3aXRoIHRoZQorICAgICAgICAgICAgICAgICAgICAgIGZpcnN0IGRvdWJsZSBxdW90ZSAnIicuCiAKIFRoZSBwcm9ibGVtIHdoZW4gbG9nZ2luZyBhdCBlbmQgb2YgY29ubmVjdGlvbiBpcyB0aGF0IHlvdSBoYXZlIG5vIGNsdWUgYWJvdXQKIHdoYXQgaXMgaGFwcGVuaW5nIGR1cmluZyB2ZXJ5IGxvbmcgc2Vzc2lvbnMuIFRvIHdvcmthcm91bmQgdGhpcyBwcm9ibGVtLCBhCkBAIC0xMTIxLDE0ICsxMjM3LDEzIEBACiAtLS0tLS0tLS0KIAogICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKLQltb2RlIGh0dHAKLQlvcHRpb24gaHR0cGxvZwotCW9wdGlvbiBkb250bG9nbnVsbAotCW9wdGlvbiBsb2dhc2FwCi0JbG9nIDE5Mi4xNjguMi4yMDAgbG9jYWwzCisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBvcHRpb24gaHR0cGxvZworICAgICAgICBvcHRpb24gZG9udGxvZ251bGwKKyAgICAgICAgb3B0aW9uIGxvZ2FzYXAKKyAgICAgICAgbG9nIDE5Mi4xNjguMi4yMDAgbG9jYWwzCiAKLT4+PiBoYXByb3h5WzY3NF06IDEyNy4wLjAuMTozMzMyMCBbMTUvT2N0LzIwMDM6MDg6MzI6MTddIHJlbGFpcy1odHRwIFNydjEgOS83LzE0LyszMCAyMDAgKzI0MyAtIC0gLS0tLSAiR0VUIC9pbWFnZS5pc28gSFRUUC8xLjAiCi0KKz4+PiBoYXByb3h5WzY3NF06IDEyNy4wLjAuMTozMzMyMCBbMTUvT2N0LzIwMDM6MDg6MzI6MTddIHJlbGFpcy1odHRwIFNydjEgOS83LzE0LyszMCAyMDAgKzI0MyAtIC0gLS0tLSAzLzMgIkdFVCAvaW1hZ2UuaXNvIEhUVFAvMS4wIgogCiA0LjIuMykgVGltaW5nIGV2ZW50cwogLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTExODgsMTI1ICsxMzAzLDE2NSBAQAogCiBPdGhlciBjYXNlcyAoJ3h4JyBtZWFucyBhbnkgdmFsdWUgdG8gYmUgaWdub3JlZCkgOgogICAtMS94eC94eC9UdCA6IHRoZSBjbGllbnQgd2FzIG5vdCBhYmxlIHRvIHNlbmQgaXRzIGNvbXBsZXRlIHJlcXVlc3QgaW4gdGltZSwKLQkgICAgICAgIG9yIHRoYXQgaXQgYWJvcnRlZCBpdCB0b28gZWFybHkuCisgICAgICAgICAgICAgICAgb3IgdGhhdCBpdCBhYm9ydGVkIGl0IHRvbyBlYXJseS4KICAgVHEvLTEveHgvVHQgOiB0aGUgY29ubmVjdGlvbiBjb3VsZCBub3QgZXN0YWJsaXNoIG9uIHRoZSBzZXJ2ZXIuIEVpdGhlciBpdAotCQlyZWZ1c2VkIGl0IG9yIGl0IHRpbWVkIG91dCBhZnRlciBUdC1UcSBtcy4KKyAgICAgICAgICAgICAgICByZWZ1c2VkIGl0IG9yIGl0IHRpbWVkIG91dCBhZnRlciBUdC1UcSBtcy4KICAgVHEvVGMvLTEvVHQgOiB0aGUgc2VydmVyIGhhcyBhY2NlcHRlZCB0aGUgY29ubmVjdGlvbiBidXQgZGlkIG5vdCByZXR1cm4gYQotCQljb21wbGV0ZSByZXNwb25zZSBpbiB0aW1lLCBvciBpdCBjbG9zZWQgaXRzIGNvbm5leGlvbgotCQl1bmV4cGVjdGVkbHksIGFmdGVyIFR0LShUcStUYykgbXMuCisgICAgICAgICAgICAgICAgY29tcGxldGUgcmVzcG9uc2UgaW4gdGltZSwgb3IgaXQgY2xvc2VkIGl0cyBjb25uZXhpb24KKyAgICAgICAgICAgICAgICB1bmV4cGVjdGVkbHksIGFmdGVyIFR0LShUcStUYykgbXMuCiAKIDQuMi40KSBTZXNzaW9uIHN0YXRlIGF0IGRpc2Nvbm5lY3Rpb24KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVRDUCBhbmQgSFRUUCBsb2dzIHByb3ZpZGUgYSBzZXNzaW9uIGNvbXBsZXRpb24gaW5kaWNhdG9yLiBJdCdzIGEgNC1jaGFyYWN0ZXJzCi0oMiBpbiBUQ1ApIGZpZWxkIHByZWNlZWRpbmcgdGhlIEhUVFAgcmVxdWVzdCwgYW5kIGluZGljYXRpbmcgOgorVENQIGFuZCBIVFRQIGxvZ3MgcHJvdmlkZSBhIHNlc3Npb24gY29tcGxldGlvbiBpbmRpY2F0b3IgaW4gdGhlCis8dGVybWluYXRpb25fc3RhdGU+IGZpZWxkLCBqdXN0IGJlZm9yZSB0aGUgbnVtYmVyIG9mIGFjdGl2ZQorY29ubmVjdGlvbnMuIEl0IGlzIDItY2hhcmFjdGVycyBsb25nIGluIFRDUCwgYW5kIDQtY2hhcmFjdGVycyBsb25nIGluCitIVFRQLCBlYWNoIG9mIHdoaWNoIGhhcyBhIHNwZWNpYWwgbWVhbmluZyA6CisKICAgLSBPbiB0aGUgZmlyc3QgY2hhcmFjdGVyLCBhIGNvZGUgcmVwb3J0aW5nIHRoZSBmaXJzdCBldmVudCB3aGljaCBjYXVzZWQgdGhlCiAgICAgc2Vzc2lvbiB0byB0ZXJtaW5hdGUgOgogCisgICAgICAgIEMgOiB0aGUgVENQIHNlc3Npb24gd2FzIHVuZXhwZWN0ZWRseSBhYm9ydGVkIGJ5IHRoZSBjbGllbnQuCisKKyAgICAgICAgUyA6IHRoZSBUQ1Agc2Vzc2lvbiB3YXMgdW5leHBlY3RlZGx5IGFib3J0ZWQgYnkgdGhlIHNlcnZlciwgb3IgdGhlCisgICAgICAgICAgICBzZXJ2ZXIgZXhwbGljaXRseSByZWZ1c2VkIGl0LgorCisgICAgICAgIFAgOiB0aGUgc2Vzc2lvbiB3YXMgcHJlbWF0dXJlbHkgYWJvcnRlZCBieSB0aGUgcHJveHksIGJlY2F1c2Ugb2YgYQorICAgICAgICAgICAgY29ubmVjdGlvbiBsaW1pdCBlbmZvcmNlbWVudCwgYmVjYXVzZSBhIERFTlkgZmlsdGVyIHdhcyBtYXRjaGVkLAorICAgICAgICAgICAgb3IgYmVjYXVzZSBvZiBhIHNlY3VyaXR5IGNoZWNrIHdoaWNoIGRldGVjdGVkIGFuZCBibG9ja2VkIGEKKyAgICAgICAgICAgIGRhbmdlcm91cyBlcnJvciBpbiBzZXJ2ZXIgcmVzcG9uc2Ugd2hpY2ggbWlnaHQgaGF2ZSBjYXVzZWQKKyAgICAgICAgICAgIGluZm9ybWF0aW9uIGxlYWsgKGVnOiBjYWNoZWFibGUgY29va2llKS4KKwotICAgICAgICBDIDogdGhlIFRDUCBzZXNzaW9uIHdhcyBhYm9ydGVkIGJ5IHRoZSBjbGllbnQuCi0JUyA6IHRoZSBUQ1Agc2Vzc2lvbiB3YXMgYWJvcnRlZCBieSB0aGUgc2VydmVyLCBvciB0aGUgc2VydmVyIHJlZnVzZWQgaXQuCi0JUCA6IHRoZSBzZXNzaW9uIHdhcyBhYm9yZHRlZCBwcmVtYXR1cmVseSBieSB0aGUgcHJveHksIGVpdGhlciBiZWNhdXNlIG9mCi0JICAgIGFuIGludGVybmFsIGVycm9yLCBiZWNhdXNlIGEgREVOWSBmaWx0ZXIgd2FzIG1hdGNoZWQsIG9yIGJlY2F1c2Ugb2YKLQkgICAgYSBzZWN1cml0eSBjaGVjayB3aGljaCBkZXRlY3RlZCBhIGRhbmdlcm91cyBlcnJvciBpbiBzZXJ2ZXIKLQkgICAgcmVzcG9uc2UuCi0JYyA6IHRoZSBjbGllbnQgdGltZS1vdXQgZXhwaXJlZCBmaXJzdC4KLQlzIDogdGhlIHNlcnZlciB0aW1lLW91dCBleHBpcmVkIGZpcnN0LgotCS0gOiBub3JtYWwgc2Vzc2lvbiBjb21wbGV0aW9uLgorICAgICAgICBSIDogYSByZXNvdXJjZSBvbiB0aGUgcHJveHkgaGFzIGJlZW4gZXhoYXVzdGVkIChtZW1vcnksIHNvY2tldHMsIHNvdXJjZQorICAgICAgICAgICAgcG9ydHMsIC4uLikuIFVzdWFsbHksIHRoaXMgYXBwZWFycyBkdXJpbmcgdGhlIGNvbm5lY3Rpb24gcGhhc2UsIGFuZAorICAgICAgICAgICAgc3lzdGVtIGxvZ3Mgc2hvdWxkIGNvbnRhaW4gYSBjb3B5IG9mIHRoZSBwcmVjaXNlIGVycm9yLgogCi0gIC0gb24gdGhlIHNlY29uZCBjaGFyYWN0ZXIsIHRoZSBIVFRQIHNlc3Npb24gc3RhdGUgd2hlbiBpdCB3YXMgY2xvc2VkIDoKKyAgICAgICAgSSA6IGFuIGludGVybmFsIGVycm9yIHdhcyBpZGVudGlmaWVkIGJ5IHRoZSBwcm94eSBkdXJpbmcgYSBzZWxmLWNoZWNrLgorICAgICAgICAgICAgVGhpcyBzaG91bGQgTkVWRVIgaGFwcGVuLCBhbmQgeW91IGFyZSBlbmNvdXJhZ2VkIHRvIHJlcG9ydCBhbnkgbG9nCisgICAgICAgICAgICBjb250YWluaW5nIHRoaXMsIGJlY2F1c2UgdGhpcyBpcyBhIGJ1Zy4KIAotICAgICAgICBSIDogd2FpdGluZyBmb3IgY29tcGxldGUgUkVRVUVTVCBmcm9tIHRoZSBjbGllbnQKLQlDIDogd2FpdGluZyBmb3IgQ09OTkVDVElPTiB0byBlc3RhYmxpc2ggb24gdGhlIHNlcnZlcgotCUggOiBwcm9jZXNzaW5nIHNlcnZlciBIRUFERVJTCi0JRCA6IHRoZSBzZXNzaW9uIHdhcyBpbiB0aGUgREFUQSBwaGFzZQotCUwgOiB0aGUgcHJveHkgd2FzIHN0aWxsIHRyYW5zbWl0dGluZyBMQVNUIGRhdGEgdG8gdGhlIGNsaWVudCB3aGlsZSB0aGUKLQkgICAgc2VydmVyIGhhZCBhbHJlYWR5IGZpbmlzaGVkLgotCS0gOiBub3JtYWwgc2Vzc2lvbiBjb21wbGV0aW9uIGFmdGVyIGVuZCBvZiBkYXRhIHRyYW5zZmVyLgorICAgICAgICBjIDogdGhlIGNsaWVudC1zaWRlIHRpbWUtb3V0IGV4cGlyZWQgZmlyc3QuCisKKyAgICAgICAgcyA6IHRoZSBzZXJ2ZXItc2lkZSB0aW1lLW91dCBleHBpcmVkIGZpcnN0LgorCisgICAgICAgIC0gOiBub3JtYWwgc2Vzc2lvbiBjb21wbGV0aW9uLgorCisgIC0gb24gdGhlIHNlY29uZCBjaGFyYWN0ZXIsIHRoZSBUQ1AvSFRUUCBzZXNzaW9uIHN0YXRlIHdoZW4gaXQgd2FzIGNsb3NlZCA6CisKKyAgICAgICAgUiA6IHdhaXRpbmcgZm9yIGNvbXBsZXRlIFJFUVVFU1QgZnJvbSB0aGUgY2xpZW50IChIVFRQIG9ubHkpLiBOb3RoaW5nCisgICAgICAgICAgICB3YXMgc2VudCB0byBhbnkgc2VydmVyLgorCisgICAgICAgIEMgOiB3YWl0aW5nIGZvciBDT05ORUNUSU9OIHRvIGVzdGFibGlzaCBvbiB0aGUgc2VydmVyLiBUaGUgc2VydmVyIG1pZ2h0CisgICAgICAgICAgICBhdCBtb3N0IGhhdmUgbm90aWNlZCBhIGNvbm5lY3Rpb24gYXR0ZW1wdC4KKworICAgICAgICBIIDogd2FpdGluZyBmb3IsIHJlY2VpdmluZyBhbmQgcHJvY2Vzc2luZyBzZXJ2ZXIgSEVBREVSUyAoSFRUUCBvbmx5KS4KKworICAgICAgICBEIDogdGhlIHNlc3Npb24gd2FzIGluIHRoZSBEQVRBIHBoYXNlLgorCisgICAgICAgIEwgOiB0aGUgcHJveHkgd2FzIHN0aWxsIHRyYW5zbWl0dGluZyBMQVNUIGRhdGEgdG8gdGhlIGNsaWVudCB3aGlsZSB0aGUKKyAgICAgICAgICAgIHNlcnZlciBoYWQgYWxyZWFkeSBmaW5pc2hlZC4KKworICAgICAgICAtIDogbm9ybWFsIHNlc3Npb24gY29tcGxldGlvbiBhZnRlciBlbmQgb2YgZGF0YSB0cmFuc2Zlci4KIAogICAtIHRoZSB0aGlyZCBjaGFyYWN0ZXIgdGVsbHMgd2hldGhlciB0aGUgcGVyc2lzdGVuY2UgY29va2llIHdhcyBwcm92aWRlZCBieQogICAgIHRoZSBjbGllbnQgKG9ubHkgaW4gSFRUUCBtb2RlKSA6CiAKKyAgICAgICAgTiA6IHRoZSBjbGllbnQgcHJvdmlkZWQgTk8gY29va2llLiBUaGlzIGlzIHVzdWFsbHkgdGhlIGNhc2Ugb24gbmV3CisgICAgICAgICAgICBjb25uZWN0aW9ucy4KKwotICAgICAgICBOIDogdGhlIGNsaWVudCBwcm92aWRlZCBOTyBjb29raWUuCi0JSSA6IHRoZSBjbGllbnQgcHJvdmlkZWQgYW4gSU5WQUxJRCBjb29raWUgbWF0Y2hpbmcgbm8ga25vd24gc2VydmVyLgotCUQgOiB0aGUgY2xpZW50IHByb3ZpZGVkIGEgY29va2llIGRlc2lnbmF0aW5nIGEgc2VydmVyIHdoaWNoIHdhcyBET1dOLAotCSAgICBzbyBlaXRoZXIgdGhlICdwZXJzaXN0JyBvcHRpb24gd2FzIHVzZWQgYW5kIHRoZSBjbGllbnQgd2FzIHNlbnQgdG8KLQkgICAgdGhpcyBzZXJ2ZXIsIG9yIGl0IHdhcyBub3Qgc2V0IGFuZCB0aGUgY2xpZW50IHdhcyByZWRpc3BhdGNoZWQgdG8KLQkgICAgYW5vdGhlciBzZXJ2ZXIuCi0JViA6IHRoZSBjbGllbnQgcHJvdmlkZWQgYSB2YWxpZCBjb29raWUsIGFuZCB3YXMgc2VudCB0byB0aGUgYXNzb2NpYXRlZAotCSAgICBzZXJ2ZXIuCi0JLSA6IGRvZXMgbm90IGFwcGx5IChubyBjb29raWUgc2V0IGluIGNvbmZpZ3VyYXRpb24pLgorICAgICAgICBJIDogdGhlIGNsaWVudCBwcm92aWRlZCBhbiBJTlZBTElEIGNvb2tpZSBtYXRjaGluZyBubyBrbm93bgorICAgICAgICAgICAgc2VydmVyLiBUaGlzIG1pZ2h0IGJlIGNhdXNlZCBieSBhIHJlY2VudCBjb25maWd1cmF0aW9uIGNoYW5nZSwKKyAgICAgICAgICAgIG1peGVkIGNvb2tpZXMgYmV0d2VlbiBIVFRQL0hUVFBTIHNpdGVzLCBvciBhbiBhdHRhY2suCisKKyAgICAgICAgRCA6IHRoZSBjbGllbnQgcHJvdmlkZWQgYSBjb29raWUgZGVzaWduYXRpbmcgYSBzZXJ2ZXIgd2hpY2ggd2FzIERPV04sCisgICAgICAgICAgICBzbyBlaXRoZXIgdGhlICdwZXJzaXN0JyBvcHRpb24gd2FzIHVzZWQgYW5kIHRoZSBjbGllbnQgd2FzIHNlbnQgdG8KKyAgICAgICAgICAgIHRoaXMgc2VydmVyLCBvciBpdCB3YXMgbm90IHNldCBhbmQgdGhlIGNsaWVudCB3YXMgcmVkaXNwYXRjaGVkIHRvCisgICAgICAgICAgICBhbm90aGVyIHNlcnZlci4KKworICAgICAgICBWIDogdGhlIGNsaWVudCBwcm92aWRlZCBhIHZhbGlkIGNvb2tpZSwgYW5kIHdhcyBzZW50IHRvIHRoZSBhc3NvY2lhdGVkCisgICAgICAgICAgICBzZXJ2ZXIuCisKKyAgICAgICAgLSA6IGRvZXMgbm90IGFwcGx5IChubyBjb29raWUgc2V0IGluIGNvbmZpZ3VyYXRpb24pLgogCiAgIC0gdGhlIGxhc3QgY2hhcmFjdGVyIHJlcG9ydHMgd2hhdCBvcGVyYXRpb25zIHdlcmUgcGVyZm9ybWVkIG9uIHRoZSBwZXJzaXN0ZW5jZQogICAgIGNvb2tpZSByZXR1cm5lZCBieSB0aGUgc2VydmVyIChvbmx5IGluIEhUVFAgbW9kZSkgOgogCi0gICAgICAgIE4gOiBOTyBjb29raWUgd2FzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIuCisgICAgICAgIE4gOiBOTyBjb29raWUgd2FzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIsIGFuZCBub25lIHdhcyBpbnNlcnRlZCBlaXRoZXIuCisKKyAgICAgICAgSSA6IG5vIGNvb2tpZSB3YXMgcHJvdmlkZWQgYnkgdGhlIHNlcnZlciwgYW5kIHRoZSBwcm94eSBJTlNFUlRFRCBvbmUuCisKICAgICAgICAgUCA6IGEgY29va2llIHdhcyBQUk9WSURFRCBieSB0aGUgc2VydmVyIGFuZCB0cmFuc21pdHRlZCBhcy1pcy4KLQlJIDogbm8gY29va2llIHdhcyBwcm92aWRlZCBieSB0aGUgc2VydmVyLCBhbmQgb25lIHdhcyBJTlNFUlRFRCBieSB0aGUKLQkgICAgcHJveHkuCi0JRCA6IHRoZSBjb29raWUgcHJvdmlkZWQgYnkgdGhlIHNlcnZlciB3YXMgREVMRVRFRCBieSB0aGUgcHJveHkuCi0JUiA6IHRoZSBjb29raWUgcHJvdmlkZWQgYnkgdGhlIHNlcnZlciB3YXMgUkVXUklUVEVOIGJ5IHRoZSBwcm94eS4KLQktIDogZG9lcyBub3QgYXBwbHkgKG5vIGNvb2tpZSBzZXQgaW4gY29uZmlndXJhdGlvbikuCiAKLVRoZSAnY2FwdHVyZScga2V5d29yZCBhbGxvd3MgdG8gY2FwdHVyZSBhbmQgbG9nIGluZm9ybWF0aW9ucyBleGNoYW5nZWQgYmV0d2VlbgotY2xpZW50cyBhbmQgc2VydmVycy4gQXMgb2YgdmVyc2lvbiAxLjEuMjMsIG9ubHkgY29va2llcyBjYW4gYmUgY2FwdHVyZWQsIHdoaWNoCi1tYWtlcyBpdCBlYXN5IHRvIHRyYWNrIGEgY29tcGxldGUgdXNlciBzZXNzaW9uLiBUaGUgc3ludGF4IGlzIDoKKyAgICAgICAgUiA6IHRoZSBjb29raWUgcHJvdmlkZWQgYnkgdGhlIHNlcnZlciB3YXMgUkVXUklUVEVOIGJ5IHRoZSBwcm94eS4KIAotICAgIGNhcHR1cmUgY29va2llIDxjb29raWVfcHJlZml4PiBsZW4gPGNhcHR1cmVfbGVuZ3RoPgorICAgICAgICBEIDogdGhlIGNvb2tpZSBwcm92aWRlZCBieSB0aGUgc2VydmVyIHdhcyBERUxFVEVEIGJ5IHRoZSBwcm94eS4KIAotVGhlIEZJUlNUIGNvb2tpZSB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoIDxjb29raWVfcHJlZml4PiB3aWxsIGJlIGNhcHR1cmVkLCBhbmQKLWxvZ2dlZCBhcyAnTkFNRT12YWx1ZScsIHdpdGhvdXQgZXhjZWVkaW5nIDxjYXB0dXJlX2xlbmd0aD4gY2hhcmFjdGVycyAoNjQgbWF4KS4KLVdoZW4gdGhlIGNvb2tpZSBuYW1lIGlzIGZpeGVkIGFuZCBrbm93biwgaXQncyBwcmVmZXJhYmxlIHRvIHN1ZmZpeCAnPScgdG8gaXQgdG8KLWVuc3VyZSB0aGF0IG5vIG90aGVyIGNvb2tpZSB3aWxsIGJlIGxvZ2dlZC4KKyAgICAgICAgLSA6IGRvZXMgbm90IGFwcGx5IChubyBjb29raWUgc2V0IGluIGNvbmZpZ3VyYXRpb24pLgogCi1FeGFtcGxlcyA6Ci0tLS0tLS0tLS0tCi0gICAgIyBjYXB0dXJlIHRoZSBmaXJzdCBjb29raWUgd2hvc2UgbmFtZSBzdGFydHMgd2l0aCAiQVNQU0VTU0lPTiIKLSAgICBjYXB0dXJlIGNvb2tpZSBBU1BTRVNTSU9OIGxlbiAzMgorVGhlIGNvbWJpbmF0aW9uIG9mIHRoZSB0d28gZmlyc3QgZmxhZ3MgZ2l2ZSBhIGxvdCBvZiBpbmZvcm1hdGlvbiBhYm91dCB3aGF0IHdhcworaGFwcGVuaW5nIHdoZW4gdGhlIHNlc3Npb24gdGVybWluYXRlZC4gSXQgY2FuIGJlIGhlbHBmdWwgdG8gZGV0ZWN0IHNlcnZlcgorc2F0dXJhdGlvbiwgbmV0d29yayB0cm91YmxlcywgbG9jYWwgc3lzdGVtIHJlc291cmNlIHN0YXJ2YXRpb24sIGF0dGFja3MsIGV0Yy4uLgogCi0gICAgIyBjYXB0dXJlIHRoZSBmaXJzdCBjb29raWUgd2hvc2UgbmFtZSBpcyBleGFjdGx5ICJ2Z252aXNpdG9yIgotICAgIGNhcHR1cmUgY29va2llIHZnbnZpc2l0b3I9IGxlbiAzMgorVGhlIG1vc3QgY29tbW9uIHRlcm1pbmF0aW9uIGZsYWdzIGNvbWJpbmF0aW9ucyBhcmUgaW5kaWNhdGVkIGhlcmUuCiAKLUluIHRoZSBsb2dzLCB0aGUgZmllbGQgcHJlY2VlZGluZyB0aGUgY29tcGxldGlvbiBpbmRpY2F0b3IgY29udGFpbnMgdGhlIGNvb2tpZQotdmFsdWUgYXMgc2VudCBieSB0aGUgc2VydmVyLCBwcmVjZWVkZWQgYnkgdGhlIGNvb2tpZSB2YWx1ZSBhcyBzZW50IGJ5IHRoZQotY2xpZW50LiBFYWNoIG9mIHRoZXNlIGZpZWxkIGlzIHJlcGxhY2VkIHdpdGggJy0nIHdoZW4gbm8gY29va2llIHdhcyBzZWVuLgorICAgRmxhZ3MgIFJlYXNvbgorICAgICAgQ1IgIFRoZSBjbGllbnQgYWJvcnRlZCBiZWZvcmUgc2VuZGluZyBhIGZ1bGwgcmVxdWVzdC4gTW9zdCBwcm9iYWJseSB0aGUKKyAgICAgICAgICByZXF1ZXN0IHdhcyBkb25lIGJ5IGhhbmQgdXNpbmcgYSB0ZWxuZXQgY2xpZW50LCBhbmQgYWJvcnRlZCBlYXJseS4KIAotNC4yLjUpIEV4YW1wbGVzIG9mIGxvZ3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzE5IFsxNS9PY3QvMjAwMzowODozMTo1N10gcmVsYWlzLWh0dHAgU3J2MSA2NTU5LzcvMTQ3LzY3MjMgMjAwIDI0MyAtIC0gLS0tLSAiSEVBRCAvIEhUVFAvMS4wIgotICA9PiBsb25nIHJlcXVlc3QgKDYuNXMpIGVudGVyZWQgYnkgaGFuZCB0aHJvdWdoICd0ZWxuZXQnLiBUaGUgc2VydmVyIHJlcGxpZWQKLSAgICAgaW4gMTQ3IG1zLCBhbmQgdGhlIHNlc3Npb24gZW5kZWQgbm9ybWFsbHkgKCctLS0tJykKKyAgICAgIGNSICBUaGUgY2xpZW50IHRpbWVkIG91dCBiZWZvcmUgc2VuZGluZyBhIGZ1bGwgcmVxdWVzdC4gVGhpcyBpcyBzb21ldGltZXMKKyAgICAgICAgICBjYXVzZWQgYnkgdG9vIGxhcmdlIFRDUCBNU1MgdmFsdWVzIG9uIHRoZSBjbGllbnQgc2lkZSBmb3IgUFBQb0UKKyAgICAgICAgICBuZXR3b3JrcyB3aGljaCBjYW5ub3QgdHJhbnNwb3J0IGZ1bGwtc2l6ZWQgcGFja2V0cywgb3IgYnkgY2xpZW50cworICAgICAgICAgIHNlbmRpbmcgcmVxdWVzdHMgYnkgaGFuZCBhbmQgbm90IHR5cGluZyBmYXN0IGVub3VnaC4KIAotLSBoYXByb3h5WzY3NF06IDEyNy4wLjAuMTozMzMyMCBbMTUvT2N0LzIwMDM6MDg6MzI6MTddIHJlbGFpcy1odHRwIFNydjEgOS83LzE0LyszMCAyMDAgKzI0MyAtIC0gLS0tLSAiR0VUIC9pbWFnZS5pc28gSFRUUC8xLjAiCi0gID0+IHJlcXVlc3QgZm9yIGEgbG9uZyBkYXRhIHRyYW5zZmVyLiBUaGUgJ2xvZ2FzYXAnIG9wdGlvbiB3YXMgc3BlY2lmaWVkLCBzbwotICAgICB0aGUgbG9nIHdhcyBwcm9kdWNlZCBqdXN0IGJlZm9yZSB0cmFuc2ZlcmluZyBkYXRhLiBUaGUgc2VydmVyIHJlcGxpZWQgaW4KLSAgICAgMTQgbXMsIDI0MyBieXRlcyBvZiBoZWFkZXJzIHdlcmUgc2VudCB0byB0aGUgY2xpZW50LCBhbmQgdG90YWwgdGltZSBmcm9tCi0gICAgIGFjY2VwdCB0byBmaXJzdCBkYXRhIGJ5dGUgaXMgMzAgbXMuCisgICAgICBTQyAgVGhlIHNlcnZlciBleHBsaWNpdGx5IHJlZnVzZWQgdGhlIGNvbm5lY3Rpb24gKHRoZSBwcm94eSByZWNlaXZlZCBhCisgICAgICAgICAgVENQIFJTVCBvciBhbiBJQ01QIGluIHJldHVybikuIFVuZGVyIHNvbWUgY2lyY3Vtc3RhbmNlcywgaXQgY2FuCisgICAgICAgICAgYWxzbyBiZSB0aGUgbmV0d29yayBzdGFjayB0ZWxsaW5nIHRoZSBwcm94eSB0aGF0IHRoZSBzZXJ2ZXIgaXMKKyAgICAgICAgICB1bnJlYWNoYWJsZSAoZWc6IG5vIHJvdXRlLCBvciBubyBBUlAgcmVzcG9uc2Ugb24gbG9jYWwgbmV0d29yaykuCiAKLS0gaGFwcm94eVs2NzRdOiAxMjcuMC4wLjE6MzMzMjAgWzE1L09jdC8yMDAzOjA4OjMyOjE3XSByZWxhaXMtaHR0cCBTcnYxIDkvNy8xNC8zMCA1MDIgMjQzIC0gLSBQSC0tICJHRVQgL2NnaS1iaW4vYnVnLmNnaT8gSFRUUC8xLjAiCi0gID0+IHRoZSBwcm94eSBibG9ja2VkIGEgc2VydmVyIHJlc3BvbnNlIGVpdGhlciBiZWNhdXNlIG9mIGFuICdyc3BkZW55JyBvcgotICAgICAncnNwaWRlbnknIGZpbHRlciwgb3IgYmVjYXVzZSBpdCBibG9ja2VkIHNlbnNpYmxlIGluZm9ybWF0aW9uIHdoaWNoIHJpc2tlZAotICAgICBiZWluZyBjYWNoZWQuIEluIHRoaXMgY2FzZSwgdGhlIHJlc3BvbnNlIGlzIHJlcGxhY2VkIHdpdGggYSAnNTAyIGJhZAotICAgICBnYXRld2F5Jy4KKyAgICAgIHNDICBUaGUgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGRpZCBub3QgY29tcGxldGUgZHVyaW5nIGNvbnRpbWVvdXQuCiAKLS0gaGFwcm94eVsxODExM106IDEyNy4wLjAuMTozNDU0OCBbMTUvT2N0LzIwMDM6MTU6MTg6NTVdIHJlbGFpcy1odHRwIDxOT1NSVj4gLTEvLTEvLTEvODQ5MCAtMSAwIC0gLSBDUi0tICIiIAotICA9PiB0aGUgY2xpZW50IG5ldmVyIGNvbXBsZXRlZCBpdHMgcmVxdWVzdCBhbmQgYWJvcnRlZCBpdHNlbGYgKCdDLS0tJykgYWZ0ZXIKLSAgICAgOC41cywgd2hpbGUgdGhlIHByb3h5IHdhcyB3YWl0aW5nIGZvciB0aGUgcmVxdWVzdCBoZWFkZXJzICgnLVItLScpLgotICAgICBOb3RoaW5nIHdhcyBzZW50IHRvIHRoZSBzZXJ2ZXIuCisgICAgICBQQyAgVGhlIHByb3h5IHJlZnVzZWQgdG8gZXN0YWJsaXNoIGEgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGJlY2F1c2UgdGhlCisgICAgICAgICAgbWF4Y29ubiBsaW1pdCBoYXMgYmVlbiByZWFjaGVkLiBUaGUgbGlzdGVuZXIncyBtYXhjb25uIHBhcmFtZXRlciBtYXkKKyAgICAgICAgICBiZSBpbmNyZWFzZWQgaW4gdGhlIHByb3h5IGNvbmZpZ3VyYXRpb24sIGFzIHdlbGwgYXMgdGhlIGdsb2JhbAorICAgICAgICAgIG1heGNvbm4gcGFyYW1ldGVyLgogCi0tIGhhcHJveHlbMTgxMTNdOiAxMjcuMC4wLjE6MzQ1NDkgWzE1L09jdC8yMDAzOjE1OjE5OjA2XSByZWxhaXMtaHR0cCA8Tk9TUlY+IC0xLy0xLy0xLzUwMDAxIDQwOCAwIC0gLSBjUi0tICIiIAotICA9PiBUaGUgY2xpZW50IG5ldmVyIGNvbXBsZXRlZCBpdHMgcmVxdWVzdCwgd2hpY2ggd2FzIGFib3J0ZWQgYnkgdGhlIHRpbWUtb3V0Ci0gICAgICgnYy0tLScpIGFmdGVyIDUwcywgd2hpbGUgdGhlIHByb3h5IHdhcyB3YWl0aW5nIGZvciB0aGUgcmVxdWVzdCBoZWFkZXJzICgnLVItLScpLgotICAgICBOb3RoaW5nIHdhcyBzZW50IHRvIHRoZSBzZXJ2ZXIsIGJ1dCB0aGUgcHJveHkgY291bGQgc2VuZCBhIDQwOCByZXR1cm4gY29kZQotICAgICB0byB0aGUgY2xpZW50LgorICAgICAgUkMgIEEgbG9jYWwgcmVzb3VyY2UgaGFzIGJlZW4gZXhoYXVzdGVkIChtZW1vcnksIHNvY2tldHMsIHNvdXJjZSBwb3J0cykKKyAgICAgICAgICBwcmV2ZW50aW5nIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgZnJvbSBlc3RhYmxpc2hpbmcuIFRoZSBlcnJvcgorICAgICAgICAgIGxvZ3Mgd2lsbCB0ZWxsIHByZWNpc2VseSB3aGF0IHdhcyBtaXNzaW5nLiBBbnl3YXksIHRoaXMgY2FuIG9ubHkgYmUKKyAgICAgICAgICBzb2x2ZWQgYnkgc3lzdGVtIHR1bmluZy4KIAotLSBoYXByb3h5WzE4OTg5XTogMTI3LjAuMC4xOjM0NTUwIFsxNS9PY3QvMjAwMzoxNToyNDoyOF0gcmVsYWlzLXRjcCBTcnYxIDAvNTAwNyAwIGNEIAotICA9PiBUaGlzIGlzIGEgJ3RjcGxvZycgZW50cnkuIENsaWVudC1zaWRlIHRpbWUtb3V0ICgnYy0tLS0nKSBvY2N1cmVkIGFmdGVyIDVzLgorICAgICAgY0ggIFRoZSBjbGllbnQgdGltZWQgb3V0IGR1cmluZyBhIFBPU1QgcmVxdWVzdC4gVGhpcyBpcyBzb21ldGltZXMgY2F1c2VkCisgICAgICAgICAgYnkgdG9vIGxhcmdlIFRDUCBNU1MgdmFsdWVzIGZvciBQUFBvRSBuZXR3b3JrcyB3aGljaCBjYW5ub3QgdHJhbnNwb3J0CisgICAgICAgICAgZnVsbC1zaXplZCBwYWNrZXRzLgogCi0tIGhhcHJveHlbMTg5ODldOiAxMC4wLjAuMTozNDU1MiBbMTUvT2N0LzIwMDM6MTU6MjY6MzFdIHJlbGFpcy1odHRwIFNydjEgMzE4My8tMS8tMS8xMTIxNSA1MDMgMCAtIC0gU0MtLSAiSEVBRCAvIEhUVFAvMS4wIiAKLSAgPT4gVGhlIHJlcXVlc3QgdG9vayAzcyB0byBjb21wbGV0ZSAocHJvYmFibHkgYSBuZXR3b3JrIHByb2JsZW0pLCBhbmQgdGhlCi0gICAgIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBmYWlsZWQgKCdTQy0tJykgYWZ0ZXIgNCBhdHRlbXBzIG9mIDIgc2Vjb25kcwotICAgICAoY29uZmlnIHNheXMgJ3JldHJpZXMgMycpLCB0aGVuIGEgNTAzIGVycm9yIGNvZGUgd2FzIHNlbnQgdG8gdGhlIGNsaWVudC4KKyAgICAgIFNIICBUaGUgc2VydmVyIGFib3J0ZWQgYmVmb3JlIHNlbmRpbmcgaXRzIGZ1bGwgaGVhZGVycywgb3IgaXQgY3Jhc2hlZC4KIAotNC4yLjYpIE5vbi1wcmludGFibGUgY2hhcmFjdGVycworICAgICAgc0ggIFRoZSBzZXJ2ZXIgZmFpbGVkIHRvIHJlcGx5IGR1cmluZyB0aGUgc3J2dGltZW91dCBkZWxheSwgd2hpY2gKKyAgICAgICAgICBpbmRpY2F0ZXMgdG9vIGxvbmcgdHJhbnNhY3Rpb25zLCBwcm9iYWJseSBjYXVzZWQgYnkgYmFjay1lbmQKKyAgICAgICAgICBzYXR1cmF0aW9uLiBUaGUgb25seSBzb2x1dGlvbnMgYXJlIHRvIGZpeCB0aGUgcHJvYmxlbSBvbiB0aGUKKyAgICAgICAgICBhcHBsaWNhdGlvbiBvciB0byBpbmNyZWFzZSB0aGUgJ3NydnRpbWVvdXQnIHBhcmFtZXRlciB0byBzdXBwb3J0CisgICAgICAgICAgbG9uZ2VyIGRlbGF5cyAoYXQgdGhlIHJpc2sgb2YgdGhlIGNsaWVudCBnaXZpbmcgdXAgYW55d2F5KS4KKyAgICAgIAorICAgICAgUFIgIFRoZSBwcm94eSBibG9ja2VkIHRoZSBjbGllbnQncyByZXF1ZXN0LCBlaXRoZXIgYmVjYXVzZSBvZiBhbiBpbnZhbGlkCisgICAgICAgICAgSFRUUCBzeW50YXgsIGluIHdoaWNoIGNhc2UgaXQgcmV0dXJuZWQgYW4gSFRUUCA0MDAgZXJyb3IgdG8gdGhlCisgICAgICAgICAgY2xpZW50LCBvciBiZWNhdXNlIGEgZGVueSBmaWx0ZXIgbWF0Y2hlZCwgaW4gd2hpY2ggY2FzZSBpdCByZXR1cm5lZAorICAgICAgICAgIGFuIEhUVFAgNDAzIGVycm9yLgorCisgICAgICBQSCAgVGhlIHByb3h5IGJsb2NrZWQgdGhlIHNlcnZlcidzIHJlc3BvbnNlLCBiZWNhdXNlIGl0IHdhcyBpbnZhbGlkLAorICAgICAgICAgIGluY29tcGxldGUsIGRhbmdlcm91cyAoY2FjaGUgY29udHJvbCksIG9yIG1hdGNoZWQgYSBzZWN1cml0eSBmaWx0ZXIuCisgICAgICAgICAgSW4gYW55IGNhc2UsIGFuIEhUVFAgNTAyIGVycm9yIGlzIHNlbnQgdG8gdGhlIGNsaWVudC4KKworICAgICAgY0QgIFRoZSBjbGllbnQgZGlkIG5vdCByZWFkIGFueSBkYXRhIGZvciBhcyBsb25nIGFzIHRoZSBjbGl0aW1lb3V0IGRlbGF5LgorICAgICAgICAgIFRoaXMgaXMgb2Z0ZW4gY2F1c2VkIGJ5IG5ldHdvcmsgZmFpbHVyZXMgb24gdGhlIGNsaWVudCBzaWRlLgorCisgICAgICBDRCAgVGhlIGNsaWVudCB1bmV4cGVjdGVkbHkgYWJvcnRlZCBkdXJpbmcgZGF0YSB0cmFuc2Zlci4gVGhpcyBpcyBlaXRoZXIKKyAgICAgICAgICBjYXVzZWQgYnkgYSBicm93c2VyIGNyYXNoLCBvciBieSBhIGtlZXAtYWxpdmUgc2Vzc2lvbiBiZXR3ZWVuIHRoZQorICAgICAgICAgIHNlcnZlciBhbmQgdGhlIGNsaWVudCB0ZXJtaW5hdGVkIGZpcnN0IGJ5IHRoZSBjbGllbnQuCisKKyAgICAgIHNEICBUaGUgc2VydmVyIGRpZCBub3RoaW5nIGR1cmluZyB0aGUgc3J2dGltZW91dCBkZWxheS4gVGhpcyBpcyBvZnRlbgorICAgICAgICAgIGNhdXNlZCBieSB0b28gc2hvcnQgdGltZW91dHMgb24gTDQgZXF1aXBlbWVudHMgYmVmb3JlIHRoZSBzZXJ2ZXIKKyAgICAgICAgICAoZmlyZXdhbGxzLCBsb2FkLWJhbGFuY2VycywgLi4uKS4KKworNC4yLjUpIE5vbi1wcmludGFibGUgY2hhcmFjdGVycwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogQXMgb2YgdmVyc2lvbiAxLjEuMjksIG5vbi1wcmludGFibGUgY2hhcmFjdGVycyBhcmUgbm90IHNlbnQgYXMtaXMgaW50byBsb2cKIGZpbGVzLCBidXQgYXJlIGNvbnZlcnRlZCB0byB0aGVpciB0d28tZGlnaXRzIGhleGFkZWNpbWFsIHJlcHJlc2VudGF0aW9uLApAQCAtMTMxNSwxNSArMTQ3MCw0NCBAQAogZXNjYXBlIGNoYXJhY3RlciAnIycgaXMgYWxzbyBlbmNvZGVkIHRvIGF2b2lkIGFueSBhbWJpZ3VpdHkuIEl0IGlzIHRoZSBzYW1lIGZvcgogdGhlIGNoYXJhY3RlciAnIicsIGFzIHdlbGwgYXMgJ3snLCAnfCcgYW5kICd9JyB3aGVuIGxvZ2dpbmcgaGVhZGVycy4KIAotNC4yLjcpIExvZ2dpbmcgSFRUUCBoZWFkZXJzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUFzIG9mIHZlcnNpb24gMS4xLjI5LCBpdCBpcyBub3cgcG9zc2libGUgdG8gbG9nIEhUVFAgaGVhZGVycyBleHRyYWN0cy4gSXQgaXMKLWJvdGggcG9zc2libGUgdG8gaW5jbHVkZSByZXF1ZXN0IGhlYWRlcnMgYW5kIHJlc3BvbnNlIGhlYWRlcnMuIEl0IGlzCi1wYXJ0aWN1bGFybHkgdXNlZnVsIHRvIGtub3cgd2hhdCB2aXJ0dWFsIHNlcnZlciB0aGUgY2xpZW50IHJlcXVlc3RlZCwgdG8ga25vdwotdGhlIGNvbnRlbnQgbGVuZ3RoIGR1cmluZyBhIFBPU1QgcmVxdWVzdCwgb3IgYSB1bmlxdWUgcmVxdWVzdCBJRCBzZXQgb24gYQotcHJldmlvdXMgcHJveHkuIEluIHRoZSByZXNwb25zZSwgb25lIGNhbiBzZWFyY2ggZm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZQotcmVzcG9uc2UgbGVuZ3RoLCBob3cgdGhlIHNlcnZlciBhc2tlZCB0aGUgY2FjaGUgdG8gYmVoYXZlLCBvciBhbiBvYmplY3QgbG9jYXRpb24KLWR1cmluZyBhIHJlZGlyZWN0aW9uLiBUaGUgc3ludGF4IGlzIDoKKzQuMi42KSBDYXB0dXJpbmcgSFRUUCBoZWFkZXJzIGFuZCBjb29raWVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorVmVyc2lvbiAxLjEuMjMgYnJvdWdodCBjb29raWUgY2FwdHVyZSwgYW5kIDEuMS4yOSB0aGUgaGVhZGVyIGNhcHR1cmUuIEFsbCB0aGlzCitpcyBwZXJmb3JtZWQgdXNpbmcgdGhlICdjYXB0dXJlJyBrZXl3b3JkLgorCitDb29raWUgY2FwdHVyZSBtYWtlcyBpdCBlYXN5IHRvIHRyYWNrIGEgY29tcGxldGUgdXNlciBzZXNzaW9uLiBUaGUgc3ludGF4IGlzIDoKKworICAgIGNhcHR1cmUgY29va2llIDxjb29raWVfcHJlZml4PiBsZW4gPGNhcHR1cmVfbGVuZ3RoPgorCitUaGlzIHdpbGwgZW5hYmxlIGNvb2tpZSBjYXB0dXJlIGZyb20gYm90aCByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzLiBUaGlzIHdheSwKK2l0J3MgZWFzeSB0byBkZXRlY3Qgd2hlbiBhIHVzZXIgc3dpdGNoZXMgdG8gYSBuZXcgc2Vzc2lvbiBmb3IgZXhhbXBsZSwgYmVjYXVzZQordGhlIHNlcnZlciB3aWxsIHJlYXNzaWduIGl0IGEgbmV3IGNvb2tpZS4KKworVGhlIEZJUlNUIGNvb2tpZSB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoIDxjb29raWVfcHJlZml4PiB3aWxsIGJlIGNhcHR1cmVkLCBhbmQKK2xvZ2dlZCBhcyAnTkFNRT12YWx1ZScsIHdpdGhvdXQgZXhjZWVkaW5nIDxjYXB0dXJlX2xlbmd0aD4gY2hhcmFjdGVycyAoNjQgbWF4KS4KK1doZW4gdGhlIGNvb2tpZSBuYW1lIGlzIGZpeGVkIGFuZCBrbm93biwgaXQncyBwcmVmZXJhYmxlIHRvIHN1ZmZpeCAnPScgdG8gaXQgdG8KK2Vuc3VyZSB0aGF0IG5vIG90aGVyIGNvb2tpZSB3aWxsIGJlIGxvZ2dlZC4KKworRXhhbXBsZXMgOgorLS0tLS0tLS0tLQorICAgICMgY2FwdHVyZSB0aGUgZmlyc3QgY29va2llIHdob3NlIG5hbWUgc3RhcnRzIHdpdGggIkFTUFNFU1NJT04iCisgICAgY2FwdHVyZSBjb29raWUgQVNQU0VTU0lPTiBsZW4gMzIKKworICAgICMgY2FwdHVyZSB0aGUgZmlyc3QgY29va2llIHdob3NlIG5hbWUgaXMgZXhhY3RseSAidmdudmlzaXRvciIKKyAgICBjYXB0dXJlIGNvb2tpZSB2Z252aXNpdG9yPSBsZW4gMzIKKworSW4gdGhlIGxvZ3MsIHRoZSBmaWVsZCBwcmVjZWVkaW5nIHRoZSBjb21wbGV0aW9uIGluZGljYXRvciBjb250YWlucyB0aGUgY29va2llCit2YWx1ZSBhcyBzZW50IGJ5IHRoZSBzZXJ2ZXIsIHByZWNlZWRlZCBieSB0aGUgY29va2llIHZhbHVlIGFzIHNlbnQgYnkgdGhlCitjbGllbnQuIEVhY2ggb2YgdGhlc2UgZmllbGQgaXMgcmVwbGFjZWQgd2l0aCAnLScgd2hlbiBubyBjb29raWUgd2FzIHNlZW4gb3IKK3doZW4gdGhlIG9wdGlvbiBpcyBkaXNhYmxlZC4KKworSGVhZGVyIGNhcHR1cmVzIGhhdmUgYSBkaWZmZXJlbnQgZ29hbC4gVGhleSBhcmUgdXNlZnVsIHRvIHRyYWNrIHVuaXF1ZSByZXF1ZXN0CitpZGVudGlmaWVycyBzZXQgYnkgYSBwcmV2aW91cyBwcm94eSwgdmlydHVhbCBob3N0IG5hbWVzLCB1c2VyLWFnZW50cywgUE9TVAorY29udGVudC1sZW5ndGgsIHJlZmVycmVycywgZXRjLiBJbiB0aGUgcmVzcG9uc2UsIG9uZSBjYW4gc2VhcmNoIGZvciBpbmZvcm1hdGlvbgorYWJvdXQgdGhlIHJlc3BvbnNlIGxlbmd0aCwgaG93IHRoZSBzZXJ2ZXIgYXNrZWQgdGhlIGNhY2hlIHRvIGJlaGF2ZSwgb3IgYW4KK29iamVjdCBsb2NhdGlvbiBkdXJpbmcgYSByZWRpcmVjdGlvbi4gQXMgZm9yIGNvb2tpZSBjYXB0dXJlcywgaXQgaXMgYm90aAorcG9zc2libGUgdG8gaW5jbHVkZSByZXF1ZXN0IGhlYWRlcnMgYW5kIHJlc3BvbnNlIGhlYWRlcnMgYXQgdGhlIHNhbWUgdGltZS4gVGhlCitzeW50YXggaXMgOgogCiAgICAgY2FwdHVyZSByZXF1ZXN0ICBoZWFkZXIgPG5hbWU+IGxlbiA8bWF4IGxlbmd0aD4KICAgICBjYXB0dXJlIHJlc3BvbnNlIGhlYWRlciA8bmFtZT4gbGVuIDxtYXggbGVuZ3RoPgpAQCAtMTM0OCwyNCArMTUzMiw2NyBAQAogd2l0aCBhIHZlcnRpY2FsIGJhciAnfCcgd2l0aG91dCBhbnkgc3BhY2UuIFJlc3BvbnNlIGhlYWRlcnMgZm9sbG93IHRoZSBzYW1lCiByZXByZXNlbnRhdGlvbiwgYnV0IGFyZSBkaXNwbGF5ZWQgYWZ0ZXIgYSBzcGFjZSBmb2xsb3dpbmcgdGhlIHJlcXVlc3QgaGVhZGVycwogYmxvY2suIFRoZXNlIGJsb2NrcyBhcmUgZGlzcGxheWVkIGp1c3QgYmVmb3JlIHRoZSBIVFRQIHJlcXVlc3QgaW4gdGhlIGxvZ3MuCisKIEV4YW1wbGUgOgogCisgIENvbmZpZzoKKworICAgIGNhcHR1cmUgcmVxdWVzdCAgaGVhZGVyIEhvc3QgbGVuIDIwCisgICAgY2FwdHVyZSByZXF1ZXN0ICBoZWFkZXIgQ29udGVudC1MZW5ndGggbGVuIDEwCisgICAgY2FwdHVyZSByZXF1ZXN0ICBoZWFkZXIgUmVmZXJlciBsZW4gMjAKKyAgICBjYXB0dXJlIHJlc3BvbnNlIGhlYWRlciBTZXJ2ZXIgbGVuIDIwCisgICAgY2FwdHVyZSByZXNwb25zZSBoZWFkZXIgQ29udGVudC1MZW5ndGggbGVuIDEwCisgICAgY2FwdHVyZSByZXNwb25zZSBoZWFkZXIgQ2FjaGUtQ29udHJvbCBsZW4gOAorICAgIGNhcHR1cmUgcmVzcG9uc2UgaGVhZGVyIFZpYSBsZW4gMjAKKyAgICBjYXB0dXJlIHJlc3BvbnNlIGhlYWRlciBMb2NhdGlvbiBsZW4gMjAKKworICBMb2cgOgorCisgICAgQXVnICA5IDIwOjI2OjA5IGxvY2FsaG9zdCBoYXByb3h5WzIwMjJdOiAxMjcuMC4wLjE6MzQwMTQgWzA5L0F1Zy8yMDA0OjIwOjI2OjA5XSByZWxhaXMtaHR0cCBuZXRjYWNoZSAwLzAvMTYyLysxNjIgMjAwICszNTAgLSAtIC0tLS0ge2ZyLmFkc2VydmVyLnlhaG9vLmNvfHxodHRwOi8vZnIuZjQxNi5tYWlsLn0ge3w4NjR8cHJpdmF0ZXx8fSAiR0VUIGh0dHA6Ly9mci5hZHNlcnZlci55YWhvby5jb20vIgorICAgIEF1ZyAgOSAyMDozMDo0NiBsb2NhbGhvc3QgaGFwcm94eVsyMDIyXTogMTI3LjAuMC4xOjM0MDIwIFswOS9BdWcvMjAwNDoyMDozMDo0Nl0gcmVsYWlzLWh0dHAgbmV0Y2FjaGUgMC8wLzE4Mi8rMTgyIDIwMCArMjc5IC0gLSAtLS0tIHt3Lm9kcy5vcmd8fH0ge0Zvcm1pbHV4LzAuMS44fDM0OTV8fHx9ICJHRVQgaHR0cDovL3cub2RzLm9yZy9zeXRhZGluLmh0bWwgSFRUUC8xLjEiIAorICAgIEF1ZyAgOSAyMDozMDo0NiBsb2NhbGhvc3QgaGFwcm94eVsyMDIyXTogMTI3LjAuMC4xOjM0MDI4IFswOS9BdWcvMjAwNDoyMDozMDo0Nl0gcmVsYWlzLWh0dHAgbmV0Y2FjaGUgMC8yLzEyNi8rMTI4IDIwMCArMjIzIC0gLSAtLS0tIHt3d3cuaW5mb3RyYWZpYy5jb218fGh0dHA6Ly93Lm9kcy5vcmcvc3l0fSB7QXBhY2hlLzIuMC40MCAoUmVkIEh8OTA2OHx8fH0gIkdFVCBodHRwOi8vd3d3LmluZm90cmFmaWMuY29tL2ltYWdlcy9saXZlL2NhcnRlc2lkZi9ncmFuZGVzL2lkZl9uZS5wbmcgSFRUUC8xLjEiIAorCisKKzQuMi43KSBFeGFtcGxlcyBvZiBsb2dzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLSBoYXByb3h5WzY3NF06IDEyNy4wLjAuMTozMzMxOSBbMTUvT2N0LzIwMDM6MDg6MzE6NTddIHJlbGFpcy1odHRwIFNydjEgNjU1OS83LzE0Ny82NzIzIDIwMCAyNDMgLSAtIC0tLS0gMy81ICJIRUFEIC8gSFRUUC8xLjAiCisgID0+IGxvbmcgcmVxdWVzdCAoNi41cykgZW50ZXJlZCBieSBoYW5kIHRocm91Z2ggJ3RlbG5ldCcuIFRoZSBzZXJ2ZXIgcmVwbGllZAorICAgICBpbiAxNDcgbXMsIGFuZCB0aGUgc2Vzc2lvbiBlbmRlZCBub3JtYWxseSAoJy0tLS0nKQorCistIGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzIwIFsxNS9PY3QvMjAwMzowODozMjoxN10gcmVsYWlzLWh0dHAgU3J2MSA5LzcvMTQvKzMwIDIwMCArMjQzIC0gLSAtLS0tIDMvMyAiR0VUIC9pbWFnZS5pc28gSFRUUC8xLjAiCisgID0+IHJlcXVlc3QgZm9yIGEgbG9uZyBkYXRhIHRyYW5zZmVyLiBUaGUgJ2xvZ2FzYXAnIG9wdGlvbiB3YXMgc3BlY2lmaWVkLCBzbworICAgICB0aGUgbG9nIHdhcyBwcm9kdWNlZCBqdXN0IGJlZm9yZSB0cmFuc2ZlcmluZyBkYXRhLiBUaGUgc2VydmVyIHJlcGxpZWQgaW4KKyAgICAgMTQgbXMsIDI0MyBieXRlcyBvZiBoZWFkZXJzIHdlcmUgc2VudCB0byB0aGUgY2xpZW50LCBhbmQgdG90YWwgdGltZSBmcm9tCisgICAgIGFjY2VwdCB0byBmaXJzdCBkYXRhIGJ5dGUgaXMgMzAgbXMuCisKLUNvbmZpZzoKKy0gaGFwcm94eVs2NzRdOiAxMjcuMC4wLjE6MzMzMjAgWzE1L09jdC8yMDAzOjA4OjMyOjE3XSByZWxhaXMtaHR0cCBTcnYxIDkvNy8xNC8zMCA1MDIgMjQzIC0gLSBQSC0tIDIvMyAiR0VUIC9jZ2ktYmluL2J1Zy5jZ2k/IEhUVFAvMS4wIgorICA9PiB0aGUgcHJveHkgYmxvY2tlZCBhIHNlcnZlciByZXNwb25zZSBlaXRoZXIgYmVjYXVzZSBvZiBhbiAncnNwZGVueScgb3IKKyAgICAgJ3JzcGlkZW55JyBmaWx0ZXIsIG9yIGJlY2F1c2UgaXQgYmxvY2tlZCBzZW5zaWJsZSBpbmZvcm1hdGlvbiB3aGljaCByaXNrZWQKKyAgICAgYmVpbmcgY2FjaGVkLiBJbiB0aGlzIGNhc2UsIHRoZSByZXNwb25zZSBpcyByZXBsYWNlZCB3aXRoIGEgJzUwMiBiYWQKKyAgICAgZ2F0ZXdheScuCisKKy0gaGFwcm94eVsxODExM106IDEyNy4wLjAuMTozNDU0OCBbMTUvT2N0LzIwMDM6MTU6MTg6NTVdIHJlbGFpcy1odHRwIDxOT1NSVj4gLTEvLTEvLTEvODQ5MCAtMSAwIC0gLSBDUi0tIDIvMiAiIiAKKyAgPT4gdGhlIGNsaWVudCBuZXZlciBjb21wbGV0ZWQgaXRzIHJlcXVlc3QgYW5kIGFib3J0ZWQgaXRzZWxmICgnQy0tLScpIGFmdGVyCisgICAgIDguNXMsIHdoaWxlIHRoZSBwcm94eSB3YXMgd2FpdGluZyBmb3IgdGhlIHJlcXVlc3QgaGVhZGVycyAoJy1SLS0nKS4KKyAgICAgTm90aGluZyB3YXMgc2VudCB0byB0aGUgc2VydmVyLgorCistIGhhcHJveHlbMTgxMTNdOiAxMjcuMC4wLjE6MzQ1NDkgWzE1L09jdC8yMDAzOjE1OjE5OjA2XSByZWxhaXMtaHR0cCA8Tk9TUlY+IC0xLy0xLy0xLzUwMDAxIDQwOCAwIC0gLSBjUi0tIDIvMiAiIiAKKyAgPT4gVGhlIGNsaWVudCBuZXZlciBjb21wbGV0ZWQgaXRzIHJlcXVlc3QsIHdoaWNoIHdhcyBhYm9ydGVkIGJ5IHRoZSB0aW1lLW91dAorICAgICAoJ2MtLS0nKSBhZnRlciA1MHMsIHdoaWxlIHRoZSBwcm94eSB3YXMgd2FpdGluZyBmb3IgdGhlIHJlcXVlc3QgaGVhZGVycyAoJy1SLS0nKS4KKyAgICAgTm90aGluZyB3YXMgc2VudCB0byB0aGUgc2VydmVyLCBidXQgdGhlIHByb3h5IGNvdWxkIHNlbmQgYSA0MDggcmV0dXJuIGNvZGUKKyAgICAgdG8gdGhlIGNsaWVudC4KIAotICAgICBjYXB0dXJlIHJlcXVlc3QgIGhlYWRlciBIb3N0IGxlbiAyMAotICAgICBjYXB0dXJlIHJlcXVlc3QgIGhlYWRlciBDb250ZW50LUxlbmd0aCBsZW4gMTAKLSAgICAgY2FwdHVyZSByZXF1ZXN0ICBoZWFkZXIgUmVmZXJlciBsZW4gMjAKLSAgICAgY2FwdHVyZSByZXNwb25zZSBoZWFkZXIgU2VydmVyIGxlbiAyMAotICAgICBjYXB0dXJlIHJlc3BvbnNlIGhlYWRlciBDb250ZW50LUxlbmd0aCBsZW4gMTAKLSAgICAgY2FwdHVyZSByZXNwb25zZSBoZWFkZXIgQ2FjaGUtQ29udHJvbCBsZW4gOAotICAgICBjYXB0dXJlIHJlc3BvbnNlIGhlYWRlciBWaWEgbGVuIDIwCi0gICAgIGNhcHR1cmUgcmVzcG9uc2UgaGVhZGVyIExvY2F0aW9uIGxlbiAyMAorLSBoYXByb3h5WzE4OTg5XTogMTI3LjAuMC4xOjM0NTUwIFsxNS9PY3QvMjAwMzoxNToyNDoyOF0gcmVsYWlzLXRjcCBTcnYxIDAvNTAwNyAwIGNEIAorICA9PiBUaGlzIGlzIGEgJ3RjcGxvZycgZW50cnkuIENsaWVudC1zaWRlIHRpbWUtb3V0ICgnYy0tLS0nKSBvY2N1cmVkIGFmdGVyIDVzLgogCi1Mb2cgOgorLSBoYXByb3h5WzE4OTg5XTogMTAuMC4wLjE6MzQ1NTIgWzE1L09jdC8yMDAzOjE1OjI2OjMxXSByZWxhaXMtaHR0cCBTcnYxIDMxODMvLTEvLTEvMTEyMTUgNTAzIDAgLSAtIFNDLS0gMjAyLzIwNSAiSEVBRCAvIEhUVFAvMS4wIiAKKyAgPT4gVGhlIHJlcXVlc3QgdG9vayAzcyB0byBjb21wbGV0ZSAocHJvYmFibHkgYSBuZXR3b3JrIHByb2JsZW0pLCBhbmQgdGhlCisgICAgIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBmYWlsZWQgKCdTQy0tJykgYWZ0ZXIgNCBhdHRlbXBzIG9mIDIgc2Vjb25kcworICAgICAoY29uZmlnIHNheXMgJ3JldHJpZXMgMycpLCB0aGVuIGEgNTAzIGVycm9yIGNvZGUgd2FzIHNlbnQgdG8gdGhlIGNsaWVudC4KKyAgICAgVGhlcmUgd2VyZSAyMDIgY29ubmVjdGlvbnMgb24gdGhpcyBwcm94eSwgYW5kIDIwNSBvbiB0aGUgZ2xvYmFsIHByb2Nlc3MuCisgICAgIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIHNlcnZlciByZWZ1c2VkIHRoZSBjb25uZWN0aW9uIGJlY2F1c2Ugb2YgdG9vIG1hbnkKKyAgICAgYWxyZWFkeSBlc3RhYmxpc2hlZC4KIAotQXVnICA5IDIwOjI2OjA5IGxvY2FsaG9zdCBoYXByb3h5WzIwMjJdOiAxMjcuMC4wLjE6MzQwMTQgWzA5L0F1Zy8yMDA0OjIwOjI2OjA5XSByZWxhaXMtaHR0cCBuZXRjYWNoZSAwLzAvMTYyLysxNjIgMjAwICszNTAgLSAtIC0tLS0ge2ZyLmFkc2VydmVyLnlhaG9vLmNvfHxodHRwOi8vZnIuZjQxNi5tYWlsLn0ge3w4NjR8cHJpdmF0ZXx8fSAiR0VUIGh0dHA6Ly9mci5hZHNlcnZlci55YWhvby5jb20vIgotQXVnICA5IDIwOjMwOjQ2IGxvY2FsaG9zdCBoYXByb3h5WzIwMjJdOiAxMjcuMC4wLjE6MzQwMjAgWzA5L0F1Zy8yMDA0OjIwOjMwOjQ2XSByZWxhaXMtaHR0cCBuZXRjYWNoZSAwLzAvMTgyLysxODIgMjAwICsyNzkgLSAtIC0tLS0ge3cub2RzLm9yZ3x8fSB7Rm9ybWlsdXgvMC4xLjh8MzQ5NXx8fH0gIkdFVCBodHRwOi8vdy5vZHMub3JnL3N5dGFkaW4uaHRtbCBIVFRQLzEuMSIgCi1BdWcgIDkgMjA6MzA6NDYgbG9jYWxob3N0IGhhcHJveHlbMjAyMl06IDEyNy4wLjAuMTozNDAyOCBbMDkvQXVnLzIwMDQ6MjA6MzA6NDZdIHJlbGFpcy1odHRwIG5ldGNhY2hlIDAvMi8xMjYvKzEyOCAyMDAgKzIyMyAtIC0gLS0tLSB7d3d3LmluZm90cmFmaWMuY29tfHxodHRwOi8vdy5vZHMub3JnL3N5dH0ge0FwYWNoZS8yLjAuNDAgKFJlZCBIfDkwNjh8fHx9ICJHRVQgaHR0cDovL3d3dy5pbmZvdHJhZmljLmNvbS9pbWFnZXMvbGl2ZS9jYXJ0ZXNpZGYvZ3JhbmRlcy9pZGZfbmUucG5nIEhUVFAvMS4xIiAKIAogNC4zKSBIVFRQIGhlYWRlciBtYW5pcHVsYXRpb24KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNDQzLDQzICsxNjcwLDQzIEBACiAKIEV4YW1wbGVzIDoKIC0tLS0tLS0tLS0KLQkjIyMjIyMgYSBmZXcgZXhhbXBsZXMgIyMjIyMjCisgICAgICAgICMjIyMjIyBhIGZldyBleGFtcGxlcyAjIyMjIyMKIAotCSMgcmV3cml0ZSAnb25saW5lLmZyJyBpbnN0ZWFkIG9mICdmcmVlLmZyJyBmb3IgR0VUIGFuZCBQT1NUIHJlcXVlc3RzCi0JcmVxcmVwCV4oR0VUXCAuKikoLmZyZWUuZnIpKC4qKSBcMS5vbmxpbmUuZnJcMwotCXJlcXJlcAleKFBPU1RcIC4qKSguZnJlZS5mcikoLiopIFwxLm9ubGluZS5mclwzCisgICAgICAgICMgcmV3cml0ZSAnb25saW5lLmZyJyBpbnN0ZWFkIG9mICdmcmVlLmZyJyBmb3IgR0VUIGFuZCBQT1NUIHJlcXVlc3RzCisgICAgICAgIHJlcXJlcCAgICAgICAgXihHRVRcIC4qKSguZnJlZS5mcikoLiopIFwxLm9ubGluZS5mclwzCisgICAgICAgIHJlcXJlcCAgICAgICAgXihQT1NUXCAuKikoLmZyZWUuZnIpKC4qKSBcMS5vbmxpbmUuZnJcMwogCi0JIyBmb3JjZSBwcm94eSBjb25uZWN0aW9ucyB0byBjbG9zZQotCXJlcWlyZXAJXlByb3h5LUNvbm5lY3Rpb246LioJUHJveHktQ29ubmVjdGlvbjpcIGNsb3NlCi0JIyByZXdyaXRlIGxvY2F0aW9ucwotCXJzcGlyZXAJXihMb2NhdGlvbjpcICkoW146XSo6Ly9bXi9dKikoLiopIFwxXDMKKyAgICAgICAgIyBmb3JjZSBwcm94eSBjb25uZWN0aW9ucyB0byBjbG9zZQorICAgICAgICByZXFpcmVwICAgICAgIF5Qcm94eS1Db25uZWN0aW9uOi4qICAgUHJveHktQ29ubmVjdGlvbjpcIGNsb3NlCisgICAgICAgICMgcmV3cml0ZSBsb2NhdGlvbnMKKyAgICAgICAgcnNwaXJlcCAgICAgICBeKExvY2F0aW9uOlwgKShbXjpdKjovL1teL10qKSguKikgXDFcMwogCi0JIyMjIyMjIEEgZnVsbCBjb25maWd1cmF0aW9uIGJlaW5nIHVzZWQgb24gcHJvZHVjdGlvbiAjIyMjIyMKKyAgICAgICAgIyMjIyMjIEEgZnVsbCBjb25maWd1cmF0aW9uIGJlaW5nIHVzZWQgb24gcHJvZHVjdGlvbiAjIyMjIyMKIAogICAgICAgICAjIEV2ZXJ5IGhlYWRlciBzaG91bGQgZW5kIHdpdGggYSBjb2xvbiBmb2xsb3dlZCBieSBvbmUgc3BhY2UuCi0gICAgICAgIHJlcWlkZW55ICAgICAgICBeW146XCBdKltcIF0qJAorICAgICAgICByZXFpZGVueSAgICAgIF5bXjpcIF0qW1wgXSokCiAKICAgICAgICAgIyBibG9jayBBcGFjaGUgY2h1bmsgZXhwbG9pdAotICAgICAgICByZXFpZGVueSAgICAgICAgXlRyYW5zZmVyLUVuY29kaW5nOltcIF0qY2h1bmtlZAotICAgICAgICByZXFpZGVueSAgICAgICAgXkhvc3Q6XCBhcGFjaGUtCisgICAgICAgIHJlcWlkZW55ICAgICAgXlRyYW5zZmVyLUVuY29kaW5nOltcIF0qY2h1bmtlZAorICAgICAgICByZXFpZGVueSAgICAgIF5Ib3N0OlwgYXBhY2hlLQogCiAgICAgICAgICMgYmxvY2sgYW5ub3lpbmcgd29ybXMgdGhhdCBmaWxsIHRoZSBsb2dzLi4uCi0gICAgICAgIHJlcWlkZW55ICAgICAgICBeW146XCBdKlwgLiooXC58JTJlKShcLnwlMmUpKCUyZnwlNWN8L3xcXFxcKQotICAgICAgICByZXFpZGVueSAgICAgICAgXlteOlwgXSpcIChbXlwgXSpcIFteXCBdKlwgfC4qJTAwKQotICAgICAgICByZXFpZGVueSAgICAgICAgXlteOlwgXSpcIC4qPHNjcmlwdAotICAgICAgICByZXFpZGVueSAgICAgICAgXlteOlwgXSpcIC4qLyhyb290XC5leGVcP3xjbWRcLmV4ZVw/fGRlZmF1bHRcLmlkYVw/KQorICAgICAgICByZXFpZGVueSAgICAgIF5bXjpcIF0qXCAuKihcLnwlMmUpKFwufCUyZSkoJTJmfCU1Y3wvfFxcXFwpCisgICAgICAgIHJlcWlkZW55ICAgICAgXlteOlwgXSpcIChbXlwgXSpcIFteXCBdKlwgfC4qJTAwKQorICAgICAgICByZXFpZGVueSAgICAgIF5bXjpcIF0qXCAuKjxzY3JpcHQKKyAgICAgICAgcmVxaWRlbnkgICAgICBeW146XCBdKlwgLiovKHJvb3RcLmV4ZVw/fGNtZFwuZXhlXD98ZGVmYXVsdFwuaWRhXD8pCiAKICAgICAgICAgIyBhbGxvdyBvdGhlciBzeW50YWN0aWNhbGx5IHZhbGlkIHJlcXVlc3RzLCBhbmQgYmxvY2sgYW55IG90aGVyIG1ldGhvZAotICAgICAgICByZXFpcGFzcyAgICAgICAgXihHRVR8UE9TVHxIRUFEfE9QVElPTlMpXCAvLipcIEhUVFAvMVwuWzAxXSQKLSAgICAgICAgcmVxaXBhc3MgICAgICAgIF5PUFRJT05TXCBcXCpcIEhUVFAvMVwuWzAxXSQKLSAgICAgICAgcmVxaWRlbnkgICAgICAgIF5bXjpcIF0qXCAKKyAgICAgICAgcmVxaXBhc3MgICAgICBeKEdFVHxQT1NUfEhFQUR8T1BUSU9OUylcIC8uKlwgSFRUUC8xXC5bMDFdJAorICAgICAgICByZXFpcGFzcyAgICAgIF5PUFRJT05TXCBcXCpcIEhUVFAvMVwuWzAxXSQKKyAgICAgICAgcmVxaWRlbnkgICAgICBeW146XCBdKlwgCiAKICAgICAgICAgIyBmb3JjZSBjb25uZWN0aW9uOmNsb3NlLCB0aHVzIGRpc2FibGluZyBIVFRQIGtlZXAtYWxpdmUKLQlvcHRpb24JCWh0dHBjbG9zZQorICAgICAgICBvcHRpb24gICAgICAgIGh0dHBjbG9zZQogCi0JIyBjaGFuZ2UgdGhlIHNlcnZlciBuYW1lCi0gICAgICAgIHJzcGlkZWwgICAgICAgICBeU2VydmVyOlwgCi0gICAgICAgIHJzcGFkZCAgICAgICAgICBTZXJ2ZXI6XCBGb3JtaWx1eC8wLjEuOAorICAgICAgICAjIGNoYW5nZSB0aGUgc2VydmVyIG5hbWUKKyAgICAgICAgcnNwaWRlbCAgICAgICBeU2VydmVyOlwgCisgICAgICAgIHJzcGFkZCAgICAgICAgU2VydmVyOlwgRm9ybWlsdXgvMC4xLjgKIAogCiBBbHNvLCB0aGUgJ2ZvcndhcmRmb3InIG9wdGlvbiBjcmVhdGVzIGFuIEhUVFAgJ1gtRm9yd2FyZGVkLUZvcicgaGVhZGVyIHdoaWNoCkBAIC0xNDkzLDEyICsxNzIwLDEzIEBACiBFeGFtcGxlIDoKIC0tLS0tLS0tLQogICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKLQltb2RlIGh0dHAKLQlsb2cgIGdsb2JhbAotCW9wdGlvbiBodHRwbG9nCi0Jb3B0aW9uIGRvbnRsb2dudWxsCi0Jb3B0aW9uIGZvcndhcmRmb3IKLQlvcHRpb24gaHR0cGNsb3NlCisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBsb2cgIGdsb2JhbAorICAgICAgICBvcHRpb24gaHR0cGxvZworICAgICAgICBvcHRpb24gZG9udGxvZ251bGwKKyAgICAgICAgb3B0aW9uIGZvcndhcmRmb3IKKyAgICAgICAgb3B0aW9uIGh0dHBjbG9zZQorCiAKIDQuNCkgTG9hZCBiYWxhbmNpbmcgd2l0aCBwZXJzaXN0ZW5jZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNTE0LDExICsxNzQyLDExIEBACiBFeGFtcGxlIDoKIC0tLS0tLS0tLQogICAgIGxpc3RlbiBhcHBsaWNhdGlvbiAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0JY29va2llIFNFUlZFUklEIGluc2VydCBub2NhY2hlIGluZGlyZWN0Ci0JYmFsYW5jZSByb3VuZHJvYmluCi0Jc2VydmVyIHNydjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxIGNoZWNrCi0Jc2VydmVyIHNydjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyIGNoZWNrCisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBjb29raWUgU0VSVkVSSUQgaW5zZXJ0IG5vY2FjaGUgaW5kaXJlY3QKKyAgICAgICAgYmFsYW5jZSByb3VuZHJvYmluCisgICAgICAgIHNlcnZlciBzcnYxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMSBjaGVjaworICAgICAgICBzZXJ2ZXIgc3J2MiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sKIAogVGhlIG90aGVyIHNvbHV0aW9uIGJyb3VnaHQgYnkgdmVyc2lvbnMgMS4xLjMwIGFuZCAxLjIuMyBpcyB0byByZXVzZSBhIGNvb2tpZQogZnJvbSB0aGUgc2VydmVyLCBhbmQgcHJlZml4IHRoZSBzZXJ2ZXIncyBuYW1lIHRvIGl0LiBJbiB0aGlzIGNhc2UsIGRvbid0IGZvcmdldApAQCAtMTUyNiwxMiArMTc1NCwxMiBAQAogcmVxdWVzdCB3aWxsIGhhdmUgaXRzIGNvb2tpZSBmaXhlZC4KIAogICAgIGxpc3RlbiBhcHBsaWNhdGlvbiAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0JY29va2llIEpTRVNTSU9OSUQgcHJlZml4Ci0JYmFsYW5jZSByb3VuZHJvYmluCi0Jc2VydmVyIHNydjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNydjEgY2hlY2sKLQlzZXJ2ZXIgc3J2MiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc3J2MiBjaGVjawotCW9wdGlvbiBodHRwY2xvc2UKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBKU0VTU0lPTklEIHByZWZpeAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgc2VydmVyIHNydjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNydjEgY2hlY2sKKyAgICAgICAgc2VydmVyIHNydjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNydjIgY2hlY2sKKyAgICAgICAgb3B0aW9uIGh0dHBjbG9zZQogCiAKIDQuNSkgUHJvdGVjdGlvbiBhZ2FpbnN0IGluZm9ybWF0aW9uIGxlYWsgZnJvbSB0aGUgc2VydmVycwpAQCAtMTU2MSw2ICsxNzg5LDcgQEAKIGhlYWRlcnMgcHJvY2Vzc2luZy4gQWRkaXRpb25uYWx5LCBhbiBhbGVydCB3aWxsIGJlIHNlbnQgaW4gdGhlIGxvZ3Mgc28gdGhhdAogYWRtaW5zIGFyZSB0b2xkIHRoYXQgdGhlcmUncyBzb21ldGhpbmcgdG8gYmUgZG9uZS4KIAorCiA0LjYpIEN1c3RvbWl6aW5nIGVycm9ycwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFNvbWUgc2l0dWF0aW9ucyBjYW4gbWFrZSBoYXByb3h5IHJldHVybiBhbiBIVFRQIGVycm9yIGNvZGUgdG8gdGhlIGNsaWVudCA6CkBAIC0xNTkxLDcgKzE4MjAsNyBAQAogICAgICAgICBlcnJvcmxvYyA0MDAgL2JhZHJlcXVlc3QuaHRtbAogICAgICAgICBlcnJvcmxvYyA0MDMgL2ZvcmJpZGRlbi5odG1sCiAgICAgICAgIGVycm9ybG9jIDQwOCAvdG9vbG9uZy5odG1sCi0JZXJyb3Jsb2MgNTAwIGh0dHA6Ly9oYXByb3h5LmRvbWFpbi5uZXQvYnVncmVwb3J0Lmh0bWwKKyAgICAgICAgZXJyb3Jsb2MgNTAwIGh0dHA6Ly9oYXByb3h5LmRvbWFpbi5uZXQvYnVncmVwb3J0Lmh0bWwKICAgICAgICAgZXJyb3Jsb2MgNTAyIGh0dHA6Ly8xOTIuMTY4LjExNC41OC9lcnJvcjUweC5odG1sCiAgICAgICAgIGVycm9ybG9jIDUwMyBodHRwOi8vMTkyLjE2OC4xMTQuNTgvZXJyb3I1MHguaHRtbAogICAgICAgICBlcnJvcmxvYyA1MDQgaHR0cDovLzE5Mi4xNjguMTE0LjU4L2Vycm9yNTB4Lmh0bWwKQEAgLTE2MDEsOCArMTgzMCw4IEBACiBUaGUgcmV0dXJuIGNvZGUgMzAzIHdhcyBkZXNpZ25lZCBleHBsaWNpdGx5IHRvIGZvcmNlIHRoZSBjbGllbnQgdG8gZmV0Y2ggdGhlCiBMb2NhdGlvbiBVUkwgd2l0aCB0aGUgR0VUIG1ldGhvZCwgYnV0IHRoZXJlIGFyZSBzb21lIGJyb3dzZXJzIHByZS1kYXRpbmcKIEhUVFAvMS4xIHdoaWNoIGRvbid0IHN1cHBvcnQgaXQuIEFueXdheSwgbW9zdCBicm93c2VycyBzdGlsbCBiZWhhdmUgd2l0aCAzMDIgYXMKLWlmIGl0IHdhcyBhIDMwMy4gSW4gb3JkZXIgdG8gYWxsb3cgdGhlIHVzZXIgdG8gY2hvc2UsIHZlcnNpb24gMS4yLjUgYnJpbmdzIHR3bwotbmV3IGtleXdvcmRzIHRvIHJlcGxhY2UgJ2Vycm9ybG9jJyA6ICdlcnJvcmxvYzMwMicgYW5kICdlcnJvcmxvYzMwMycuCitpZiBpdCB3YXMgYSAzMDMuIEluIG9yZGVyIHRvIGFsbG93IHRoZSB1c2VyIHRvIGNob3NlLCB2ZXJzaW9ucyAxLjEuMzEgYW5kIDEuMi41CiticmluZyB0d28gbmV3IGtleXdvcmRzIHRvIHJlcGxhY2UgJ2Vycm9ybG9jJyA6ICdlcnJvcmxvYzMwMicgYW5kICdlcnJvcmxvYzMwMycuCiAKIFRoZXkgYXJlIHByZWZmZXJlZCBvdmVyIGVycm9ybG9jICh3aGljaCBzdGlsbCBkb2VzIDMwMikuIENvbnNpZGVyIHVzaW5nCiBlcnJvcmxvYzMwMyBldmVyeXRpbWUgeW91IGtub3cgdGhhdCB5b3VyIGNsaWVudHMgc3VwcG9ydCBIVFRQIDMwMyByZXNwb25zZXMuLgpAQCAtMTY0OCw0MyArMTg3Nyw0MyBAQAogRXhhbXBsZXMgOgogLS0tLS0tLS0tLQogICAgIGRlZmF1bHRzIGFwcGxpY2F0aW9ucyBUQ1AKLQlsb2cgZ2xvYmFsCi0JbW9kZSB0Y3AKLQliYWxhbmNlIHJvdW5kcm9iaW4KLQljbGl0aW1lb3V0IDE4MDAwMAotCXNydnRpbWVvdXQgMTgwMDAwCi0JY29udGltZW91dCA0MDAwCi0JcmV0cmllcyAzCi0JcmVkaXNwYXRjaAorICAgICAgICBsb2cgZ2xvYmFsCisgICAgICAgIG1vZGUgdGNwCisgICAgICAgIGJhbGFuY2Ugcm91bmRyb2JpbgorICAgICAgICBjbGl0aW1lb3V0IDE4MDAwMAorICAgICAgICBzcnZ0aW1lb3V0IDE4MDAwMAorICAgICAgICBjb250aW1lb3V0IDQwMDAKKyAgICAgICAgcmV0cmllcyAzCisgICAgICAgIHJlZGlzcGF0Y2gKIAogICAgIGxpc3RlbiBhcHBfdGNwMSAxMC4wLjAuMTo2MDAwLTYwNjMKLQlzZXJ2ZXIgc3J2MSAxOTIuMTY4LjEuMSBjaGVjayBwb3J0IDYwMDAgaW50ZXIgMTAwMDAKLQlzZXJ2ZXIgc3J2MiAxOTIuMTY4LjEuMiBiYWNrdXAKKyAgICAgICAgc2VydmVyIHNydjEgMTkyLjE2OC4xLjEgY2hlY2sgcG9ydCA2MDAwIGludGVyIDEwMDAwCisgICAgICAgIHNlcnZlciBzcnYyIDE5Mi4xNjguMS4yIGJhY2t1cAogCiAgICAgbGlzdGVuIGFwcF90Y3AyIDEwLjAuMC4yOjYwMDAtNjA2MwotCXNlcnZlciBzcnYxIDE5Mi4xNjguMi4xIGNoZWNrIHBvcnQgNjAwMCBpbnRlciAxMDAwMAotCXNlcnZlciBzcnYyIDE5Mi4xNjguMi4yIGJhY2t1cAorICAgICAgICBzZXJ2ZXIgc3J2MSAxOTIuMTY4LjIuMSBjaGVjayBwb3J0IDYwMDAgaW50ZXIgMTAwMDAKKyAgICAgICAgc2VydmVyIHNydjIgMTkyLjE2OC4yLjIgYmFja3VwCiAgICAgCiAgICAgZGVmYXVsdHMgYXBwbGljYXRpb25zIEhUVFAKLQlsb2cgZ2xvYmFsCi0JbW9kZSBodHRwCi0Jb3B0aW9uIGh0dHBsb2cKLQlvcHRpb24gZm9yd2FyZGZvcgotCW9wdGlvbiBkb250bG9nbnVsbAotCWJhbGFuY2Ugcm91bmRyb2JpbgotCWNsaXRpbWVvdXQgMjAwMDAKLQlzcnZ0aW1lb3V0IDIwMDAwCi0JY29udGltZW91dCA0MDAwCi0JcmV0cmllcyAzCisgICAgICAgIGxvZyBnbG9iYWwKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIG9wdGlvbiBodHRwbG9nCisgICAgICAgIG9wdGlvbiBmb3J3YXJkZm9yCisgICAgICAgIG9wdGlvbiBkb250bG9nbnVsbAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgY2xpdGltZW91dCAyMDAwMAorICAgICAgICBzcnZ0aW1lb3V0IDIwMDAwCisgICAgICAgIGNvbnRpbWVvdXQgNDAwMAorICAgICAgICByZXRyaWVzIDMKIAogICAgIGxpc3RlbiBhcHBfaHR0cDEgMTAuMC4wLjE6ODAtODEKLQljb29raWUgU0VSVkVSSUQgcG9zdG9ubHkgaW5zZXJ0IGluZGlyZWN0Ci0JY2FwdHVyZSBjb29raWUgdXNlcmlkPSBsZW4gMTAKLQlzZXJ2ZXIgc3J2MSAxOTIuMTY4LjEuMTorODAwMCBjb29raWUgc3J2MSBjaGVjayBwb3J0IDgwODAgaW50ZXIgMTAwMAotCXNlcnZlciBzcnYxIDE5Mi4xNjguMS4yOis4MDAwIGNvb2tpZSBzcnYyIGNoZWNrIHBvcnQgODA4MCBpbnRlciAxMDAwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRCBwb3N0b25seSBpbnNlcnQgaW5kaXJlY3QKKyAgICAgICAgY2FwdHVyZSBjb29raWUgdXNlcmlkPSBsZW4gMTAKKyAgICAgICAgc2VydmVyIHNydjEgMTkyLjE2OC4xLjE6KzgwMDAgY29va2llIHNydjEgY2hlY2sgcG9ydCA4MDgwIGludGVyIDEwMDAKKyAgICAgICAgc2VydmVyIHNydjEgMTkyLjE2OC4xLjI6KzgwMDAgY29va2llIHNydjIgY2hlY2sgcG9ydCA4MDgwIGludGVyIDEwMDAKIAogICAgIGRlZmF1bHRzCi0JIyB0aGlzIGVtcHR5IHNlY3Rpb24gdm9pZHMgYWxsIGRlZmF1bHQgcGFyYW1ldGVycworICAgICAgICAjIHRoaXMgZW1wdHkgc2VjdGlvbiB2b2lkcyBhbGwgZGVmYXVsdCBwYXJhbWV0ZXJzCiAKID09PT09PT09PT09PT09PT09PT09PT09PT0KIHwgU3lzdGVtLXNwZWNpZmljIHNldHVwIHwKQEAgLTE3MDEsMTUgKzE5MzAsMTUgQEAKIHVsaW1pdCAtbiAkTUFYRklMRVMKIAogaWYgWyAtZSAvcHJvYy9zeXMvbmV0L2lwdjQvaXBfY29ubnRyYWNrX21heCBdOyB0aGVuCi0JZWNobyA2NTUzNiA+IC9wcm9jL3N5cy9uZXQvaXB2NC9pcF9jb25udHJhY2tfbWF4CisgICAgICAgIGVjaG8gNjU1MzYgPiAvcHJvYy9zeXMvbmV0L2lwdjQvaXBfY29ubnRyYWNrX21heAogZmkKIAogaWYgWyAtZSAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF90aW1lb3V0X2Zpbl93YWl0IF07IHRoZW4KLQkjIDMwIHNlY29uZHMgZm9yIGZpbiwgMTUgZm9yIHRpbWUgd2FpdAotCWVjaG8gMzAwMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC9uZXRmaWx0ZXIvaXBfY3RfdGNwX3RpbWVvdXRfZmluX3dhaXQKLQllY2hvIDE1MDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF90aW1lb3V0X3RpbWVfd2FpdAotCWVjaG8gMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC9uZXRmaWx0ZXIvaXBfY3RfdGNwX2xvZ19pbnZhbGlkX3NjYWxlCi0JZWNobyAwID4gL3Byb2Mvc3lzL25ldC9pcHY0L25ldGZpbHRlci9pcF9jdF90Y3BfbG9nX291dF9vZl93aW5kb3cKKyAgICAgICAgIyAzMCBzZWNvbmRzIGZvciBmaW4sIDE1IGZvciB0aW1lIHdhaXQKKyAgICAgICAgZWNobyAzMDAwID4gL3Byb2Mvc3lzL25ldC9pcHY0L25ldGZpbHRlci9pcF9jdF90Y3BfdGltZW91dF9maW5fd2FpdAorICAgICAgICBlY2hvIDE1MDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF90aW1lb3V0X3RpbWVfd2FpdAorICAgICAgICBlY2hvIDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF9sb2dfaW52YWxpZF9zY2FsZQorICAgICAgICBlY2hvIDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF9sb2dfb3V0X29mX3dpbmRvdwogZmkKIAogZWNobyAxMDI0IDYwOTk5ID4gL3Byb2Mvc3lzL25ldC9pcHY0L2lwX2xvY2FsX3BvcnRfcmFuZ2UKQEAgLTE3MjEsNyArMTk1MCw3IEBACiBlY2hvIDEgPiAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX3R3X3JlY3ljbGUKIGVjaG8gMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3BfdGltZXN0YW1wcwogZWNobyAwID4gL3Byb2Mvc3lzL25ldC9pcHY0L3RjcF9lY24KLWVjaG8gMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3Bfc2FjaworZWNobyAxID4gL3Byb2Mvc3lzL25ldC9pcHY0L3RjcF9zYWNrCiBlY2hvIDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX2RzYWNrCiAKICMgYXV0by10dW5lZCBvbiAyLjQKZGlmZiAtLWdpdCBhL2RvYy9oYXByb3h5LWZyLnR4dCBiL2RvYy9oYXByb3h5LWZyLnR4dAppbmRleCA5N2YwZjZmLi5iZDc1ZDc3IDEwMDY0NAotLS0gYS9kb2MvaGFwcm94eS1mci50eHQKKysrIGIvZG9jL2hhcHJveHktZnIudHh0CkBAIC0yLDkgKzIsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIIEEgLSBQIHIgbyB4IHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hbnVlbCBkZSBy6WbpcmVuY2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgIAkJICAgICAgdmVyc2lvbiAxLjIuNQotCQkJICAgICAgd2lsbHkgdGFycmVhdQotCQkJICAgICAgICAyMDA1LzA0LzMwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAxLjIuNgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbHkgdGFycmVhdQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMDA1LzA4LzA3CiAKID09PT09PT09PT09PT09PT0KIHwgSW50cm9kdWN0aW9uIHwKQEAgLTE3LDcgKzE3LDcgQEAKICAgICBsYSBwZXJzaXN0ZW5jZSBkZSBzZXNzaW9uIDsgCiAgIC0gZm91cm5pciB1bmUgdmlzaWJpbGl06SBleHRlcm5lIGRlIHNvbiDpdGF0IGRlIHNhbnTpIDsKICAgLSBzJ2Fycup0ZXIgZW4gZG91Y2V1ciBzYW5zIHBlcnRlIGJydXRhbGUgZGUgc2VydmljZSA7Ci0gIC0gbW9kaWZpZXIvYWpvdXRlci9zdXBwcmltZXIgZGVzIGVudOp0ZXMgZGFucyBsYSByZXF16nRlIGV0IGxhIHLpcG9uc2UgOworICAtIG1vZGlmaWVyL2Fqb3V0ZXIvc3VwcHJpbWVyIGRlcyBlbi106nRlcyBkYW5zIGxhIHJlcXXqdGUgZXQgbGEgculwb25zZSA7CiAgIC0gaW50ZXJkaXJlIGRlcyByZXF16nRlcyBxdWkgdulyaWZpZW50IGNlcnRhaW5lcyBjb25kaXRpb25zIDsKICAgLSB1dGlsaXNlciBkZXMgc2VydmV1cnMgZGUgc2Vjb3VycyBsb3JzcXVlIGxlcyBzZXJ2ZXVycyBwcmluY2lwYXV4IHNvbnQgaG9ycwogICAgIGQndXNhZ2UuCkBAIC02MSw3ICs2MSw3IEBACiBjb25mb25kdXMuIENlIHBhcmFt6HRyZSByZW1wbGFjZSBsZSBwYXJhbeh0cmUgJ21heGNvbm4nIGRlIGxhIHNlY3Rpb24gJ2dsb2JhbCcuCiAKIExlIG1vZGUgZGVidWcgY29ycmVzcG9uZCDgIGwnb3B0aW9uICdkZWJ1ZycgZGUgbGEgc2VjdGlvbiAnZ2xvYmFsJy4gRGFucyBjZQotbW9kZSwgdG91dGVzIGxlcyBjb25uZXhpb25zLCBk6WNvbm5leGlvbnMsIGV0IHRvdXMgbGVzIOljaGFuZ2VzIGQnZW506nRlcyBIVFRQCittb2RlLCB0b3V0ZXMgbGVzIGNvbm5leGlvbnMsIGTpY29ubmV4aW9ucywgZXQgdG91cyBsZXMg6WNoYW5nZXMgZCdlbi106nRlcyBIVFRQCiBzb250IGFmZmljaOlzLgogCiBMZXMgc3RhdGlzdGlxdWVzIG5lIHNvbnQgZGlzcG9uaWJsZXMgcXVlIHNpIGxlIHByb2dyYW1tZSBhIOl06SBjb21waWzpIGF2ZWMKQEAgLTExMCw2ICsxMTAsOCBAQAogICAtIG5vcG9sbAogICAtIHF1aWV0CiAgIC0gcGlkZmlsZSA8ZmljaGllcj4KKyAgLSB1bGltaXQtbiA8bm9tYnJlPgorCiAKIDEuMSkgSm91cm5hbGlzYXRpb24gZGVzIOl26W5lbWVudHMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE0MCwxNyArMTQyLDE5IEBACiBFeGVtcGxlIDoKIC0tLS0tLS0tLQogICAgIGdsb2JhbAotCWxvZyAxOTIuMTY4LjIuMjAwIGxvY2FsMwotCWxvZyAxMjcuMC4wLjEgICAgIGxvY2FsNCBub3RpY2UKKyAgICAgICAgbG9nIDE5Mi4xNjguMi4yMDAgbG9jYWwzCisgICAgICAgIGxvZyAxMjcuMC4wLjEgICAgIGxvY2FsNCBub3RpY2UKIAogMS4yKSBsaW1pdGF0aW9uIGR1IG5vbWJyZSBkZSBjb25uZXhpb25zCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIElsIGVzdCBwb3NzaWJsZSBldCBjb25zZWlsbOkgZGUgbGltaXRlciBsZSBub21icmUgZ2xvYmFsIGRlIGNvbm5leGlvbnMgcGFyCi1wcm9jZXNzdXMuIExlcyBjb25uZXhpb25zIHNvbnQgY29tcHJpc2VzIGF1IHNlbnMgJ2FjY2VwdGF0aW9uIGRlIGNvbm5leGlvbicsCi1kb25jIGlsIGZhdXQgcydhdHRlbmRyZSBlbiBy6GdsZSBn6W7pcmFsIOAgYXZvaXIgdW4gcGV1IHBsdXMgZHUgZG91YmxlIGRlCi1zZXNzaW9ucyBUQ1AgcXVlIGxlIG1heGltdW0gZGUgY29ubmV4aW9ucyBmaXjpLiBDJ2VzdCBpbXBvcnRhbnQgcG91ciBmaXhlciBsZQotcGFyYW3odHJlICd1bGltaXQgLW4nIGF2YW50IGRlIGxhbmNlciBsZSBwcm94eS4gUG91ciBjb21wdGFiaWxpc2VyIGxlIG5vbWJyZQotZGUgc29ja2V0cyBu6WNlc3NhaXJlcywgaWwgZmF1dCBwcmVuZHJlIGVuIGNvbXB0ZSBjZXMgcGFyYW3odHJlcyA6Citwcm9jZXNzdXMg4CBsJ2FpZGUgZHUgbW90IGNs6SBnbG9iYWwgJ21heGNvbm4nLiBMZXMgY29ubmV4aW9ucyBzb250IGNvbXByaXNlcworYXUgc2VucyAnYWNjZXB0YXRpb24gZGUgY29ubmV4aW9uJywgZG9uYyBpbCBmYXV0IHMnYXR0ZW5kcmUgZW4gcuhnbGUgZ+lu6XJhbCDgCithdm9pciB1biBwZXUgcGx1cyBkdSBkb3VibGUgZGUgc2Vzc2lvbnMgVENQIHF1ZSBsZSBtYXhpbXVtIGRlIGNvbm5leGlvbnMgZml46S4KK0MnZXN0IGltcG9ydGFudCBwb3VyIGZpeGVyIGxlIHBhcmFt6HRyZSAndWxpbWl0IC1uJyBhdmFudCBkZSBsYW5jZXIgbGUgcHJveHkuCitQb3VyIGNvbXB0YWJpbGlzZXIgbGUgbm9tYnJlIGRlIHNvY2tldHMgbuljZXNzYWlyZXMsIGlsIGZhdXQgcHJlbmRyZSBlbiBjb21wdGUKK2NlcyBwYXJhbeh0cmVzIDoKKwogICAtIDEgc29ja2V0IHBhciBjb25uZXhpb24gZW50cmFudGUKICAgLSAxIHNvY2tldCBwYXIgY29ubmV4aW9uIHNvcnRhbnRlCiAgIC0gMSBzb2NrZXQgcGFyIGNvdXBsZSBhZHJlc3NlL3BvcnQgZCfpY291dGUgcGFyIHByb3h5CkBAIC0xNTgsOSArMTYyLDIyIEBACiAgIC0gMSBzb2NrZXQgcG91ciBsZXMgbG9ncyAodG91cyBzZXJ2ZXVycyBjb25mb25kdXMpCiAKIERhbnMgbGUgY2FzIG/5IGNoYXF1ZSBwcm94eSBuJ+ljb3V0ZSBxdWUgc3VyIHVuIGNvdXBsZSBhZHJlc3NlL3BvcnQsCi1wb3NpdGlvbm5lciBsYSBsaW1pdGUgZHUgbm9tYnJlIGRlIGRlc2NyaXB0ZXVycyBkZSBmaWNoaWVycyAodWxpbWl0IC1uKSDgCi0oMiAqIG1heGNvbm4gKyBuYnByb3h5ICsgbmJzZXJ2ZXVycyArIDEpLiBEYW5zIHVuZSBmdXR1cmUgdmVyc2lvbiwgaGFwcm94eSBzZXJhCi1jYXBhYmxlIGRlIHBvc2l0aW9ubmVyIGx1aS1t6m1lIGNldHRlIGxpbWl0ZS4KK3Bvc2l0aW9ubmVyIGxhIGxpbWl0ZSBkdSBub21icmUgZGUgZGVzY3JpcHRldXJzIGRlIGZpY2hpZXJzICh1bGltaXQgLW4pIOAgCisoMiAqIG1heGNvbm4gKyBuYnByb3h5ICsgbmJzZXJ2ZXVycyArIDEpLiBBIHBhcnRpciBkZXMgdmVyc2lvbnMgMS4xLjMyLzEuMi42LAoraWwgZXN0IHBvc3NpYmxlIGRlIHNw6WNpZmllciBjZXR0ZSBsaW1pdGUgZGFucyBsYSBjb25maWd1cmF0aW9uIOAgbCdhaWRlIGR1Cittb3QtY2zpIGdsb2JhbCAndWxpbWl0LW4nLCDgIGNvbmRpdGlvbiBiaWVuIGVudGVuZHUgcXVlIGxlIHByb3h5IGFpdCDpdOkKK2TpbWFycukgc291cyBsZSBjb21wdGUgcm9vdCAob3UgYXZlYyBkZXMgZHJvaXRzIHN1ZmZpc2FudHMgcG91ciDpbGV2ZXIgbGUKK25vbWJyZSBkZSBkZXNjcmlwdGV1cnMgZGUgZmljaGllcnMpLiBDZXR0ZSBzb2x1dGlvbiBtZXQgdW4gdGVybWUgYXUgcHJvYmzobWUKK3LpY3VycmVudCBkJ2luY2VydGl0dWRlIGRlIGwnYWTpcXVhdGlvbiBlbnRyZSBsZXMgbGltaXRlcyBzeXN06G1lcyBsb3JzIGRlIGxhCitkZXJuaehyZSByZWxhbmNlIGR1IHByb3hlc3N1cyBldCBsZXMgbGltaXRlcyBlbiBub21icmUgZGUgY29ubmV4aW9ucy4gTm90ZXIgcXVlCitjZXR0ZSBsaW1pdGUgcydhcHBsaXF1ZSBwYXIgcHJvY2Vzc3VzLgorCitFeGVtcGxlIDoKKy0tLS0tLS0tLQorICAgIGdsb2JhbAorICAgICAgICBtYXhjb25uIDMyMDAwCisgICAgICAgIHVsaW1pdC1uIDY1NTM2CisKIAogMS4zKSBEaW1pbnV0aW9uIGRlcyBwcml2aWzoZ2VzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIxMyw5ICsyMzAsOSBAQAogLS0tLS0tLS0tCiAKICAgICBnbG9iYWwKLQl1aWQJMzAwMDAKLQlnaWQJMzAwMDAKLQljaHJvb3QgIC92YXIvY2hyb290L2hhcHJveHkKKyAgICAgICAgdWlkICAgICAgICAzMDAwMAorICAgICAgICBnaWQgICAgICAgIDMwMDAwCisgICAgICAgIGNocm9vdCAgL3Zhci9jaHJvb3QvaGFwcm94eQogCiAxLjQpIE1vZGVzIGRlIGZvbmN0aW9ubmVtZW50CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNTcsOSArMjc0LDkgQEAKIC0tLS0tLS0tLQogCiAgICAgZ2xvYmFsCi0JZGFlbW9uCi0JcXVpZXQKLQluYnByb2MJMgorICAgICAgICBkYWVtb24KKyAgICAgICAgcXVpZXQKKyAgICAgICAgbmJwcm9jICAgICAgICAyCiAKIDEuNikgU2ltcGxpZmljYXRpb24gZGUgbGEgZ2VzdGlvbiBkZXMgcHJvY2Vzc3VzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzc1LDcgKzM5Miw3IEBACiAtLS0tLS0tLS0tCiAgICAgbGlzdGVuIGh0dHBfcHJveHkKICAgICAgICAgYmluZCA6ODAsOjQ0MwotCWJpbmQgMTAuMC4wLjE6MTAwODAsMTAuMC4wLjE6MTA0NDMKKyAgICAgICAgYmluZCAxMC4wLjAuMToxMDA4MCwxMC4wLjAuMToxMDQ0MwogCiAyLjEpIEluaGliaXRpb24gZCd1biBzZXJ2aWNlCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zODQsMTEgKzQwMSwxMSBAQAogImRpc2FibGVkIiBkYW5zIHNhIHNlY3Rpb24gOgogCiAgICAgbGlzdGVuIHNtdHBfcHJveHkgMC4wLjAuMDoyNQotCWRpc2FibGVkCisgICAgICAgIGRpc2FibGVkCiAKIFJlbWFycXVlOiBsZSBtb3QgY2zpICdlbmFibGVkJyBwZXJtZXQgZGUgculhY3RpdmVyIHVuIHNlcnZpY2UgcHLpYWxhYmxlbWVudAotCSAgZOlzYWN0aXbpIHBhciBsZSBtb3QgY2zpICdkaXNhYmxlZCcsIHBhciBleGVtcGxlIOAgY2F1c2UgZCd1bmUKLQkgIGNvbmZpZ3VyYXRpb24gcGFyIGTpZmF1dC4KKyAgICAgICAgICBk6XNhY3RpdukgcGFyIGxlIG1vdCBjbOkgJ2Rpc2FibGVkJywgcGFyIGV4ZW1wbGUg4CBjYXVzZSBkJ3VuZQorICAgICAgICAgIGNvbmZpZ3VyYXRpb24gcGFyIGTpZmF1dC4KIAogMi4yKSBNb2RlIGRlIGZvbmN0aW9ubmVtZW50CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQwOCwxMyArNDI1LDEzIEBACiBFeGVtcGxlIDoKIC0tLS0tLS0tLQogICAgIGxpc3RlbiBzbXRwX3Byb3h5IDAuMC4wLjA6MjUKLQltb2RlIHRjcAorICAgICAgICBtb2RlIHRjcAogCiBNb2RlIEhUVFAKIC0tLS0tLS0tLQogRGFucyBjZSBtb2RlLCBsZSBzZXJ2aWNlIHJlbGF5ZSBsZXMgY29ubmV4aW9ucyBUQ1AgdmVycyB1biBvdSBwbHVzaWV1cnMKIHNlcnZldXJzLCB1bmUgZm9pcyBxdSdpbCBkaXNwb3NlIGQnYXNzZXogZCdpbmZvcm1hdGlvbnMgcG91ciBlbiBwcmVuZHJlIGxhCi1k6WNpc2lvbi4gTGVzIGVudOp0ZXMgSFRUUCBzb250IGFuYWx5c+lzIHBvdXIgeSB0cm91dmVyIHVuIOl2ZW50dWVsIGNvb2tpZSwgZXQKK2TpY2lzaW9uLiBMZXMgZW4tdOp0ZXMgSFRUUCBzb250IGFuYWx5c+lzIHBvdXIgeSB0cm91dmVyIHVuIOl2ZW50dWVsIGNvb2tpZSwgZXQKIGNlcnRhaW5zIGQnZW50cmUtZXV4IHBldXZlbnQg6nRyZSBtb2RpZmnpcyBwYXIgbGUgYmlhaXMgZCdleHByZXNzaW9ucwogculndWxp6HJlcy4gUG91ciBhY3RpdmVyIGNlIG1vZGUsIHBy6WNpc2VyIGxlIG1vZGUgSFRUUCBzb3VzIGxhIGTpY2xhcmF0aW9uIGR1CiByZWxhaXMuCkBAIC00MjIsNyArNDM5LDcgQEAKIEV4ZW1wbGUgOgogLS0tLS0tLS0tCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAotCW1vZGUgaHR0cAorICAgICAgICBtb2RlIGh0dHAKIAogTW9kZSBzdXBlcnZpc2lvbgogLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDM4LDE0ICs0NTUsNDYgQEAKIC0tLS0tLS0tLQogICAgICMgculwb25zZSBzaW1wbGUgOiAnT0snCiAgICAgbGlzdGVuIGhlYWx0aF9jaGVjayAwLjAuMC4wOjYwMDAwCi0JbW9kZSBoZWFsdGgKKyAgICAgICAgbW9kZSBoZWFsdGgKIAogICAgICMgculwb25zZSBIVFRQIDogJ0hUVFAvMS4wIDIwMCBPSycKICAgICBsaXN0ZW4gaHR0cF9oZWFsdGhfY2hlY2sgMC4wLjAuMDo2MDAwMQotCW1vZGUgaGVhbHRoCi0Jb3B0aW9uIGh0dHBjaGsKKyAgICAgICAgbW9kZSBoZWFsdGgKKyAgICAgICAgb3B0aW9uIGh0dHBjaGsKIAogCitMZXMgdmVyc2lvbnMgMS4xLjMyIGV0IDEuMi42IGFwcG9ydGVudCB1bmUgbm91dmVsbGUgc29sdXRpb24gcG91ciB2YWxpZGVyIGxlCitib24gZm9uY3Rpb25uZW1lbnQgZHUgcHJveHkgc2FucyBwZXJ0dXJiZXIgbGUgc2VydmljZS4gTGUgbW90LWNs6SAnbW9uaXRvci1uZXQnCithIOl06SBjcunpIGRhbnMgbGUgYnV0ZCBkZSBzcOljaWZpZXIgdW4gculzZWF1IGQn6XF1aXBlbWVudHMgcXVpIG5lIFBFVVZFTlQgUEFTCit1dGlsaXNlciBsZSBzZXJ2aWNlIHBvdXIgYXV0cmUgY2hvc2UgcXVlIGRlcyB0ZXN0cyBkZSBmb25jdGlvbm5lbWVudC4gQydlc3QKK3BhcnRpY3VsaehyZW1lbnQgYWRhcHTpIGF1eCBwcm94aWVzIFRDUCwgY2FyIGNlbGEgZW1w6mNoZSBsZSBwcm94eSBkZSByZWxheWVyCitkZXMg6XRhYmxpc3NlbWVudHMgZGUgY29ubmV4aW9uIOltaXMgcGFyIHVuIG91dGlsIGRlIHN1cnZlaWxsYW5jZS4KKworTG9yc3F1ZSBjJ2VzdCB1dGlsaXPpIHN1ciB1biBwcm94eSBUQ1AsIGxhIGNvbm5leGlvbiBlc3QgYWNjZXB06WUgcHVpcyByZWZlcm3pZQorZXQgcmllbiBuJ2VzdCBsb2d16S4gQydlc3Qgc3VmZmlzYW50IHBvdXIgcXUndW4gculwYXJ0aXRldXIgZGUgY2hhcmdlIGVuIGFtb250Citk6XRlY3RlIHF1ZSBsZSBzZXJ2aWNlIGVzdCBkaXNwb25pYmxlLgorCitMb3JzcXVlIGMnZXN0IHV0aWxpc+kgc3VyIHVuIHByb3h5IEhUVFAsIGxhIGNvbm5leGlvbiBlc3QgYWNjZXB06WUsIHJpZW4gbidlc3QKK2xvZ3XpLCBwdWlzIGxhIHLpcG9uc2Ugc3VpdmFudGUgZXN0IGVudm956WUgZXQgbGEgc2Vzc2lvbiByZWZlcm3pZSA6CisiSFRUUC8xLjAgMjAwIE9LIi4gQydlc3Qgbm9ybWFsZW1lbnQgc3VmZmlzYW50IHBvdXIgcXUndW4gculwYXJ0aXRldXIgZGUgY2hhcmdlCitIVFRQIGVuIGFtb250IGTpdGVjdGUgbGUgc2VydmljZSBjb21tZSBvcOlyYXRpb25uZWwsIGF1c3NpIGJpZW4g4CB0cmF2ZXJzIGRlcwordGVzdHMgVENQIHF1ZSBIVFRQLgorCitMZXMgcHJveGllcyB1dGlsaXNhbnQgbGUgbW90LWNs6SAnbW9uaXRvci1uZXQnIHBldXZlbnQgYWNjZXNzb2lyZW1lbnQgc2UgcGFzc2VyCitkZSBsJ29wdGlvbiAnZG9udGxvZ251bGwnLCBjZSBxdWkgcGVybWV0dHJhIGRlIGxvZ3VlciBsZXMgY29ubmV4aW9ucyB2aWRlcwor6W1pc2VzIGRlcHVpcyBkJ2F1dHJlcyBhZHJlc3NlcyBxdWUgY2VsbGVzIGR1IHLpc2VhdSBkZSB0ZXN0cy4KKworRXhlbXBsZSA6CistLS0tLS0tLS0KKworICAgIGxpc3RlbiB0c2UtcHJveHkKKyAgICAgICBiaW5kIDozMzg5LDoxNDk0LDo1OTAwICAjIFRTRSwgSUNBIGFuZCBWTkMgYXQgb25jZS4KKyAgICAgICBtb2RlIHRjcAorICAgICAgIGJhbGFuY2Ugcm91bmRyb2JpbgorICAgICAgIHNlcnZlciB0c2UtZmFybSAxOTIuMTY4LjEuMTAKKyAgICAgICBtb25pdG9yLW5ldCAxOTIuMTY4LjEuMjUyLzMxICAgIyBMNCBsb2FkLWJhbGFuY2VycyBvbiAuMjUyIGFuZCAuMjUzCisKKwogMi4zKSBMaW1pdGF0aW9uIGR1IG5vbWJyZSBkZSBjb25uZXhpb25zIHNpbXVsdGFu6WVzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExlIHBhcmFt6HRyZSAibWF4Y29ubiIgcGVybWV0IGRlIGZpeGVyIGxhIGxpbWl0ZSBhY2NlcHRhYmxlIGVuIG5vbWJyZSBkZQpAQCAtNDgwLDEzICs1MjksMTMgQEAKICAgICAjIGFycup0ZXIgZW4gZG91Y2V1ciBwYXIgJ2tpbGxhbGwgLVVTUjEgaGFwcm94eScKICAgICAjIGxlIHNlcnZpY2UgdG91cm5lcmEgZW5jb3JlIDEwIHNlY29uZGVzIGFwcuhzIGxhIGRlbWFuZGUgZCdhcnLqdAogICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKLQltb2RlIGh0dHAKLQlncmFjZSAxMDAwMAorICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgZ3JhY2UgMTAwMDAKIAogICAgICMgY2UgcG9ydCBuJ2VzdCB0ZXN06SBxdWUgcGFyIHVuIHLpcGFydGl0ZXVyIGRlIGNoYXJnZS4KICAgICBsaXN0ZW4gaGVhbHRoX2NoZWNrIDAuMC4wLjA6NjAwMDAKLQltb2RlIGhlYWx0aAotCWdyYWNlIDAKKyAgICAgICAgbW9kZSBoZWFsdGgKKyAgICAgICAgZ3JhY2UgMAogCiAKIDIuNSkgVGVtcHMgZCdleHBpcmF0aW9uIGRlcyBjb25uZXhpb25zCkBAIC00OTksMjAgKzU0OCwyMCBAQAogICAtIHRlbXBzIGQnYXR0ZW50ZSBkJ3VuZSBkb25u6WUgZGUgbGEgcGFydCBkdSBjbGllbnQsIG91IGRlIGxhCiAgICAgcG9zc2liaWxpdOkgZGUgbHVpIGVudm95ZXIgZGVzIGRvbm7pZXMgOiAiY2xpdGltZW91dCIgOgogCi0JIyB0aW1lLW91dCBjbGllbnQg4CAybW4zMC4KLQljbGl0aW1lb3V0CTE1MDAwMAorICAgICAgICAjIHRpbWUtb3V0IGNsaWVudCDgIDJtbjMwLgorICAgICAgICBjbGl0aW1lb3V0ICAgICAgICAxNTAwMDAKIAogICAtIHRlbXBzIGQnYXR0ZW50ZSBkJ3VuZSBkb25u6WUgZGUgbGEgcGFydCBkdSBzZXJ2ZXVyLCBvdSBkZSBsYQogICAgIHBvc3NpYmlsaXTpIGRlIGx1aSBlbnZveWVyIGRlcyBkb25u6WVzIDogInNydnRpbWVvdXQiIDoKIAotCSMgdGltZS1vdXQgc2VydmV1ciDgIDMwcy4KLQlzcnZ0aW1lb3V0CTMwMDAwCisgICAgICAgICMgdGltZS1vdXQgc2VydmV1ciDgIDMwcy4KKyAgICAgICAgc3J2dGltZW91dCAgICAgICAgMzAwMDAKIAogICAtIHRlbXBzIGQnYXR0ZW50ZSBkZSBsJ+l0YWJsaXNzZW1lbnQgZCd1bmUgY29ubmV4aW9uIHZlcnMgdW4gc2VydmV1cgogICAgICJjb250aW1lb3V0IiA6CiAKICAgICAgICAgIyBvbiBhYmFuZG9ubmUgc2kgbGEgY29ubmV4aW9uIG4nZXN0IHBhcyDpdGFibGllIGFwcuhzIDQgc2Vjb25kZXMKLQljb250aW1lb3V0CTQwMDAKKyAgICAgICAgY29udGltZW91dCAgICAgICAgNDAwMAogCiBSZW1hcnF1ZXMgOgogLS0tLS0tLS0tLS0KQEAgLTUzNSw4ICs1ODQsOCBAQAogCiBFeGVtcGxlIDoKIC0tLS0tLS0tLQotCSMgb24gZXNzYWllIGVuY29yZSB0cm9pcyBmb2lzIG1heGkKLQlyZXRyaWVzIDMKKyAgICAgICAgIyBvbiBlc3NhaWUgZW5jb3JlIHRyb2lzIGZvaXMgbWF4aQorICAgICAgICByZXRyaWVzIDMKIAogCiAyLjcpIEFkcmVzc2UgZHUgc2VydmV1cgpAQCAtNTUxLDggKzYwMCw4IEBACiAKIEV4ZW1wbGUgOgogLS0tLS0tLS0tCi0gICAJIyBvbiBlbnZvaWUgdG91dGVzIGxlcyBub3V2ZWxsZXMgY29ubmV4aW9ucyBpY2kKLQlkaXNwYXRjaCAxOTIuMTY4LjEuMjo4MAorICAgICAgICAgICAjIG9uIGVudm9pZSB0b3V0ZXMgbGVzIG5vdXZlbGxlcyBjb25uZXhpb25zIGljaQorICAgICAgICBkaXNwYXRjaCAxOTIuMTY4LjEuMjo4MAogCiBSZW1hcnF1ZSA6CiAtLS0tLS0tLS0tCkBAIC01NzYsMTIgKzYyNSwxMiBAQAogRXhlbXBsZXMgOgogLS0tLS0tLS0tLQogICAgIGxpc3RlbiBodHRwX3Byb3h5ICo6ODAKLSAgIAkjIHRvdXRlcyBsZXMgY29ubmV4aW9ucyBwcmVubmVudCBsJ2FkcmVzc2UgMTkyLjE2OC4xLjIwMAotCXNvdXJjZSAxOTIuMTY4LjEuMjAwOjAKKyAgICAgICAgICAgIyB0b3V0ZXMgbGVzIGNvbm5leGlvbnMgcHJlbm5lbnQgbCdhZHJlc3NlIDE5Mi4xNjguMS4yMDAKKyAgICAgICAgc291cmNlIDE5Mi4xNjguMS4yMDA6MAogCiAgICAgbGlzdGVuIHJsb2dpbl9wcm94eSAqOjUxMwotICAgCSMgdXRpbGlzZXIgbCdhZHJlc3NlIDE5Mi4xNjguMS4yMDAgZXQgbGUgcG9ydCBy6XNlcnbpIDkwMAotCXNvdXJjZSAxOTIuMTY4LjEuMjAwOjkwMAorICAgICAgICAgICAjIHV0aWxpc2VyIGwnYWRyZXNzZSAxOTIuMTY4LjEuMjAwIGV0IGxlIHBvcnQgculzZXJ26SA5MDAKKyAgICAgICAgc291cmNlIDE5Mi4xNjguMS4yMDA6OTAwCiAKIAogMi45KSBE6WZpbml0aW9uIGR1IG5vbSBkdSBjb29raWUKQEAgLTU5Myw4ICs2NDIsOCBAQAogRXhlbXBsZSA6CiAtLS0tLS0tLS0KICAgICBsaXN0ZW4gaHR0cF9wcm94eSA6ODAKLQltb2RlIGh0dHAKLQljb29raWUgU0VSVkVSSUQKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRAogCiBPbiBwZXV0IG1vZGlmaWVyIGwndXRpbGlzYXRpb24gZHUgY29va2llIHBvdXIgbGEgcmVuZHJlIHBsdXMgaW50ZWxsaWdlbnRlCiB2aXMt4C12aXMgZGVzIGFwcGxpY2F0aW9ucyByZWxheellcy4gSWwgZXN0IHBvc3NpYmxlLCBub3RhbW1lbnQgZGUgc3VwcHJpbWVyIG91CkBAIC02MTAsMTkgKzY1OSwxOSBAQAogZGlzcGF0Y2hldXIsIGV0IHN1cHByaW1lciB0b3V0ZXMgc2VzIOl2ZW50dWVsbGVzIG9jY3VyZW5jZXMgbG9ycyBkZXMgYWNj6HMKIGRpcmVjdHMgOgogCi0JY29va2llIFNFUlZFUklEIGluZGlyZWN0CisgICAgICAgIGNvb2tpZSBTRVJWRVJJRCBpbmRpcmVjdAogCiBQb3VyIHJlbXBsYWNlciBsYSB2YWxldXIgZCd1biBjb29raWUgZXhpc3RhbnQgcGFyIGNlbGxlIGF0dHJpYnXpZSDgIHVuIHNlcnZldXIsCiBsb3JzIGQndW4gYWNj6HMgZGlyZWN0IDoKIAotCWNvb2tpZSBTRVJWRVJJRCByZXdyaXRlCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRCByZXdyaXRlCiAKIFBvdXIgY3LpZXIgdW4gY29va2llIGNvbXBvcnRhbnQgbGEgdmFsZXVyIGF0dHJpYnXpZSDgIHVuIHNlcnZldXIgbG9ycyBkJ3VuCiBhY2PocyBlbiBy6XBhcnRpdGlvbiBkZSBjaGFyZ2UgaW50ZXJuZS4gRGFucyBjZSBjYXMsIGlsIGVzdCBzb3VoYWl0YWJsZSBxdWUKIHRvdXMgbGVzIHNlcnZldXJzIGFpZW50IHVuIGNvb2tpZSByZW5zZWlnbukuIFVuIHNlcnZldXIgbm9uIGFzc2lnbukgZCd1biBjb29raWUKIHJldG91cm5lcmEgdW4gY29va2llIHZpZGUgKGNvb2tpZSBkZSBzdXBwcmVzc2lvbikgOgogCi0JY29va2llIFNFUlZFUklEIGluc2VydAorICAgICAgICBjb29raWUgU0VSVkVSSUQgaW5zZXJ0CiAKIFBvdXIgcul1dGlsaXNlciB1biBjb29raWUgYXBwbGljYXRpZiBldCBsdWkgcHLpZml4ZXIgbCdpZGVudGlmaWFudCBkdSBzZXJ2ZXVyLAogcHVpcyBsZSBzdXBwcmltZXIgZGFucyBsZXMgcmVxdep0ZXMgc3VpdmFudGVzLCB1dGlsaXNlciBsJ29wdGlvbiAncHJlZml4Jy4gRWxsZQpAQCAtNjM1LDEyICs2ODQsMTIgQEAKIFBvdXIgaW5z6XJlciB1biBjb29raWUsIGVuIHMnYXNzdXJhbnQgcXUndW4gY2FjaGUgZW4gYW1vbnQgbmUgbGUgc3RvY2tlcmEgcGFzLAogYWpvdXRlciBsZSBtb3QgY2zpICdub2NhY2hlJyBhcHLocyAnaW5zZXJ0JyA6CiAKLQljb29raWUgU0VSVkVSSUQgaW5zZXJ0IG5vY2FjaGUKKyAgICAgICAgY29va2llIFNFUlZFUklEIGluc2VydCBub2NhY2hlCiAKIFBvdXIgaW5z6XJlciB1biBjb29raWUgc2V1bGVtZW50IHN1aXRlIGF1eCByZXF16nRlcyBkZSB0eXBlIFBPU1QsIGFqb3V0ZXIgbGUKIG1vdCBjbOkgJ3Bvc3Rvbmx5JyBhcHLocyAnaW5zZXJ0JyA6CiAKLQljb29raWUgU0VSVkVSSUQgaW5zZXJ0IHBvc3Rvbmx5CisgICAgICAgIGNvb2tpZSBTRVJWRVJJRCBpbnNlcnQgcG9zdG9ubHkKIAogCiBSZW1hcnF1ZXMgOgpAQCAtNjg4LDExICs3MzcsMTEgQEAKIEV4ZW1wbGUgOiBsZSBjb29raWUgU0VSVkVSSUQgcGV1dCBjb250ZW5pciBzZXJ2ZXIwMSBvdSBzZXJ2ZXIwMgogLS0tLS0tLS0tCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgOjgwCi0JbW9kZSBodHRwCi0JY29va2llIFNFUlZFUklECi0JZGlzcGF0Y2ggMTkyLjE2OC4xLjEwMDo4MAotCXNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMQotCXNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMgorICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgY29va2llIFNFUlZFUklECisgICAgICAgIGRpc3BhdGNoIDE5Mi4xNjguMS4xMDA6ODAKKyAgICAgICAgc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxCisgICAgICAgIHNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMgogCiBBdHRlbnRpb24gOiBsYSBzeW50YXhlIGEgY2hhbmfpIGRlcHVpcyBsYSB2ZXJzaW9uIDEuMC4KIC0tLS0tLS0tLS0tCkBAIC03MTIsMTEgKzc2MSwxMSBAQAogLS0tLS0tLS0tCiAKICAgICBsaXN0ZW4gaHR0cF9wcm94eSA6ODAKLQltb2RlIGh0dHAKLQljb29raWUgU0VSVkVSSUQKLQliYWxhbmNlIHJvdW5kcm9iaW4KLQlzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEKLQlzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxCisgICAgICAgIHNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMgogCiBEZXB1aXMgbGEgdmVyc2lvbiAxLjEuMjIsIGlsIGVzdCBwb3NzaWJsZSBkZSBk6XRlcm1pbmVyIGF1dG9tYXRpcXVlbWVudCBsZSBwb3J0CiBkdSBzZXJ2ZXVyIHZlcnMgbGVxdWVsIHNlcmEgZW52b3npZSBsYSBjb25uZXhpb24sIGVuIGZvbmN0aW9uIGR1IHBvcnQgZCfpY291dGUKQEAgLTc0NSwyOCArNzk0LDI4IEBACiAjIG3qbWUgcXVlIHBy6WPpZGVtbWVudAogCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgOjgwCi0JbW9kZSBodHRwCi0JY29va2llIFNFUlZFUklECi0JYmFsYW5jZSByb3VuZHJvYmluCi0Jc2VydmVyIHdlYjEgMTkyLjE2OC4xLjEgY29va2llIHNlcnZlcjAxCi0Jc2VydmVyIHdlYjIgMTkyLjE2OC4xLjIgY29va2llIHNlcnZlcjAyCisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBjb29raWUgU0VSVkVSSUQKKyAgICAgICAgYmFsYW5jZSByb3VuZHJvYmluCisgICAgICAgIHNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xIGNvb2tpZSBzZXJ2ZXIwMQorICAgICAgICBzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMiBjb29raWUgc2VydmVyMDIKIAogIyByZWxheWFnZSBzaW11bHRhbukgZGVzIHBvcnRzIDgwIGV0IDgxIGV0IDgwODAtODA4OQogCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgOjgwLDo4MSw6ODA4MC04MDg5Ci0JbW9kZSBodHRwCi0JY29va2llIFNFUlZFUklECi0JYmFsYW5jZSByb3VuZHJvYmluCi0Jc2VydmVyIHdlYjEgMTkyLjE2OC4xLjEgY29va2llIHNlcnZlcjAxCi0Jc2VydmVyIHdlYjIgMTkyLjE2OC4xLjIgY29va2llIHNlcnZlcjAyCisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBjb29raWUgU0VSVkVSSUQKKyAgICAgICAgYmFsYW5jZSByb3VuZHJvYmluCisgICAgICAgIHNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xIGNvb2tpZSBzZXJ2ZXIwMQorICAgICAgICBzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMiBjb29raWUgc2VydmVyMDIKIAogIyByZWxheWFnZSBUQ1AgZGVzIHBvcnRzIDI1LCAzODkgZXQgNjYzIHZlcnMgbGVzIHBvcnRzIDEwMjUsIDEzODkgZXQgMTY2MwogCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgOjI1LDozODksOjY2MwotCW1vZGUgdGNwCi0JYmFsYW5jZSByb3VuZHJvYmluCi0Jc2VydmVyIHNydjEgMTkyLjE2OC4xLjE6KzEwMDAKLQlzZXJ2ZXIgc3J2MiAxOTIuMTY4LjEuMjorMTAwMAorICAgICAgICBtb2RlIHRjcAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgc2VydmVyIHNydjEgMTkyLjE2OC4xLjE6KzEwMDAKKyAgICAgICAgc2VydmVyIHNydjIgMTkyLjE2OC4xLjI6KzEwMDAKIAogCiAzLjEpIFN1cnZlaWxsYW5jZSBkZXMgc2VydmV1cnMKQEAgLTgwNSw3ICs4NTQsNyBAQAogICAtIG9wdGlvbiBodHRwY2hrIFVSSSAgICAgICAgICAgLT4gT1BUSU9OUyA8VVJJPiBIVFRQLzEuMAogICAtIG9wdGlvbiBodHRwY2hrIE1FVEggVVJJICAgICAgLT4gPE1FVEg+IDxVUkk+IEhUVFAvMS4wCiAgIC0gb3B0aW9uIGh0dHBjaGsgTUVUSCBVUkkgVkVSICAtPiA8TUVUSD4gPFVSST4gPFZFUj4KLVZvaXIgbGVzIGV4ZW1wbGVzIGNpLWFwcuhzLgkKK1ZvaXIgbGVzIGV4ZW1wbGVzIGNpLWFwcuhzLiAgICAgICAgCiAKIERlcHVpcyBsYSB2ZXJzaW9uIDEuMS4xNywgaWwgZXN0IHBvc3NpYmxlIGRlIGTpZmluaXIgZGVzIHNlcnZldXJzIGRlIHNlY291cnMsCiB1dGlsaXPpcyB1bmlxdWVtZW50IGxvcnNxdSdhdWN1biBkZXMgYXV0cmVzIHNlcnZldXJzIG5lIGZvbmN0aW9ubmUuIFBvdXIgY2VsYSwKQEAgLTg1MSwzOCArOTAwLDM4IEBACiAtLS0tLS0tLS0tCiAjIGNvbmYgZHUgcGFyYWdyYXBoZSAzKSBhdmVjIHN1cnZlaWxsYW5jZSBUQ1AKICAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0JY29va2llIFNFUlZFUklECi0JYmFsYW5jZSByb3VuZHJvYmluCi0Jc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxIGNoZWNrCi0Jc2VydmVyIHdlYjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyIGNoZWNrIGludGVyIDUwMCByaXNlIDEgZmFsbCAyCisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBjb29raWUgU0VSVkVSSUQKKyAgICAgICAgYmFsYW5jZSByb3VuZHJvYmluCisgICAgICAgIHNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMSBjaGVjaworICAgICAgICBzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sgaW50ZXIgNTAwIHJpc2UgMSBmYWxsIDIKIAogIyBt6m1lIHF1ZSBwculj6WRlbW1lbnQgYXZlYyBzdXJ2ZWlsbGFuY2UgSFRUUCBwYXIgJ09QVElPTlMgLyBIVFRQLzEuMCcKICAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0JY29va2llIFNFUlZFUklECi0JYmFsYW5jZSByb3VuZHJvYmluCi0Jb3B0aW9uIGh0dHBjaGsKLQlzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEgY2hlY2sKLQlzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sgaW50ZXIgNTAwIHJpc2UgMSBmYWxsIDIKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgb3B0aW9uIGh0dHBjaGsKKyAgICAgICAgc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxIGNoZWNrCisgICAgICAgIHNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMiBjaGVjayBpbnRlciA1MDAgcmlzZSAxIGZhbGwgMgogCiAjIG3qbWUgcXVlIHBy6WPpZGVtbWVudCBhdmVjIHN1cnZlaWxsYW5jZSBIVFRQIHBhciAnT1BUSU9OUyAvaW5kZXguaHRtbCBIVFRQLzEuMCcKICAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0JY29va2llIFNFUlZFUklECi0JYmFsYW5jZSByb3VuZHJvYmluCi0Jb3B0aW9uIGh0dHBjaGsgL2luZGV4Lmh0bWwKLQlzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEgY2hlY2sKLQlzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sgaW50ZXIgNTAwIHJpc2UgMSBmYWxsIDIKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgb3B0aW9uIGh0dHBjaGsgL2luZGV4Lmh0bWwKKyAgICAgICAgc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxIGNoZWNrCisgICAgICAgIHNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMiBjaGVjayBpbnRlciA1MDAgcmlzZSAxIGZhbGwgMgogCiAjIGlkZW0gYXZlYyBzdXJ2ZWlsbGFuY2UgSFRUUCBwYXIgJ0hFQUQgL2luZGV4LmpzcD8gSFRUUC8xLjFcclxuSG9zdDogd3d3JwogICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKLQltb2RlIGh0dHAKLQljb29raWUgU0VSVkVSSUQKLQliYWxhbmNlIHJvdW5kcm9iaW4KLQlvcHRpb24gaHR0cGNoayBIRUFEIC9pbmRleC5qc3A/IEhUVFAvMS4xXHJcbkhvc3Q6XCB3d3cKLQlzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEgY2hlY2sKLQlzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sgaW50ZXIgNTAwIHJpc2UgMSBmYWxsIDIKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGNvb2tpZSBTRVJWRVJJRAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgb3B0aW9uIGh0dHBjaGsgSEVBRCAvaW5kZXguanNwPyBIVFRQLzEuMVxyXG5Ib3N0Olwgd3d3CisgICAgICAgIHNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMSBjaGVjaworICAgICAgICBzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sgaW50ZXIgNTAwIHJpc2UgMSBmYWxsIDIKIAogIyBy6XBhcnRpdGlvbiBhdmVjIHBlcnNpc3RlbmNlIGJhc+llIHN1ciBsZSBwculmaXhlIGRlIGNvb2tpZSwgZXQgYXJy6nQgZW4KICMgZG91Y2V1ciB1dGlsaXNhbnQgdW4gc2Vjb25kIHBvcnQgKDgxKSBqdXN0ZSBwb3VyIGxlcyBoZWFsdGgtY2hlY2tzLgpAQCAtOTAwLDI5ICs5NDksMjkgQEAKICMgYXV0b21hdGlxdWUgZGFucyBsYSByZXF16nRlLCB0b3V0IGVuIGluZGlxdWFudCBhdXggY2FjaGVzIGRlIG5lIHBhcyBnYXJkZXIKICMgY2UgY29va2llLgogICAgIGxpc3RlbiB3ZWJfYXBwbCAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0JY29va2llIFNFUlZFUklEIGluc2VydCBub2NhY2hlIGluZGlyZWN0Ci0JYmFsYW5jZSByb3VuZHJvYmluCi0Jc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxIGNoZWNrCi0Jc2VydmVyIHdlYjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyIGNoZWNrCisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBjb29raWUgU0VSVkVSSUQgaW5zZXJ0IG5vY2FjaGUgaW5kaXJlY3QKKyAgICAgICAgYmFsYW5jZSByb3VuZHJvYmluCisgICAgICAgIHNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMSBjaGVjaworICAgICAgICBzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sKIAogIyBpZGVtIGF2ZWMgc2VydmV1ciBhcHBsaWNhdGlmIGRlIHNlY291cnMgc3VyIGF1dHJlIHNpdGUsIGV0IHNlcnZldXIgZGUgcGFnZXMgZCdlcnJldXJzCiAgICAgbGlzdGVuIHdlYl9hcHBsIDAuMC4wLjA6ODAKLQltb2RlIGh0dHAKLQljb29raWUgU0VSVkVSSUQgaW5zZXJ0IG5vY2FjaGUgaW5kaXJlY3QKLQliYWxhbmNlIHJvdW5kcm9iaW4KLQlzZXJ2ZXIgd2ViMSAxOTIuMTY4LjEuMTo4MCBjb29raWUgc2VydmVyMDEgY2hlY2sKLQlzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sKLQlzZXJ2ZXIgd2ViLWJhY2t1cCAxOTIuMTY4LjIuMTo4MCBjb29raWUgc2VydmVyMDMgY2hlY2sgYmFja3VwCi0Jc2VydmVyIHdlYi1leGN1c2UgMTkyLjE2OC4zLjE6ODAgY2hlY2sgYmFja3VwCisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBjb29raWUgU0VSVkVSSUQgaW5zZXJ0IG5vY2FjaGUgaW5kaXJlY3QKKyAgICAgICAgYmFsYW5jZSByb3VuZHJvYmluCisgICAgICAgIHNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMSBjaGVjaworICAgICAgICBzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sKKyAgICAgICAgc2VydmVyIHdlYi1iYWNrdXAgMTkyLjE2OC4yLjE6ODAgY29va2llIHNlcnZlcjAzIGNoZWNrIGJhY2t1cAorICAgICAgICBzZXJ2ZXIgd2ViLWV4Y3VzZSAxOTIuMTY4LjMuMTo4MCBjaGVjayBiYWNrdXAKIAogIyByZWxheWFnZSBTTVRQK1RMUyBhdmVjIHRlc3QgZHUgc2VydmV1ciBldCBzZXJ2ZXVyIGRlIGJhY2t1cAogCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgOjI1LDo1ODcKLQltb2RlIHRjcAotCWJhbGFuY2Ugcm91bmRyb2JpbgotCXNlcnZlciBzcnYxIDE5Mi4xNjguMS4xIGNoZWNrIHBvcnQgMjUgaW50ZXIgMzAwMDAgcmlzZSAxIGZhbGwgMgotCXNlcnZlciBzcnYyIDE5Mi4xNjguMS4yIGJhY2t1cAorICAgICAgICBtb2RlIHRjcAorICAgICAgICBiYWxhbmNlIHJvdW5kcm9iaW4KKyAgICAgICAgc2VydmVyIHNydjEgMTkyLjE2OC4xLjEgY2hlY2sgcG9ydCAyNSBpbnRlciAzMDAwMCByaXNlIDEgZmFsbCAyCisgICAgICAgIHNlcnZlciBzcnYyIDE5Mi4xNjguMS4yIGJhY2t1cAogCiAKIDMuMikgUmVjb25uZXhpb24gdmVycyB1biBy6XBhcnRpdGV1ciBlbiBjYXMgZCfpY2hlYyBkaXJlY3QKQEAgLTkzNiwxMiArOTg1LDEyIEBACiBFeGVtcGxlIDoKIC0tLS0tLS0tLQogICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6ODAKLQltb2RlIGh0dHAKLQljb29raWUgU0VSVkVSSUQKLQlkaXNwYXRjaCAxOTIuMTY4LjEuMTAwOjgwCi0Jc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxCi0Jc2VydmVyIHdlYjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyCi0JcmVkaXNwYXRjaCAjIHJlbnZveWVyIHZlcnMgZGlzcGF0Y2ggc2kgcmVmdXMgZGUgY29ubmV4aW9uLgorICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgY29va2llIFNFUlZFUklECisgICAgICAgIGRpc3BhdGNoIDE5Mi4xNjguMS4xMDA6ODAKKyAgICAgICAgc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxCisgICAgICAgIHNlcnZlciB3ZWIyIDE5Mi4xNjguMS4yOjgwIGNvb2tpZSBzZXJ2ZXIwMgorICAgICAgICByZWRpc3BhdGNoICMgcmVudm95ZXIgdmVycyBkaXNwYXRjaCBzaSByZWZ1cyBkZSBjb25uZXhpb24uCiAKIFBhciBk6WZhdXQgKGV0IGRhbnMgbGVzIHZlcnNpb25zIDEuMS4xNiBldCBhbnTpcmlldXJlcyksIGxlIHBhcmFt6HRyZQogcmVkaXNwYXRjaCBuZSBzJ2FwcGxpcXVlIHF1J2F1eCDpY2hlY3MgZGUgY29ubmV4aW9uIGF1IHNlcnZldXIuIERlcHVpcyBsYQpAQCAtOTUxLDEzICsxMDAwLDEzIEBACiB0ZW50ZSBkZSBzJ3kgY29ubmVjdGVyLCBpbCBmYXV0IHBy6WNpc2VyIGwnb3B0aW9uICJwZXJzaXN0IiA6CiAKICAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0Jb3B0aW9uIHBlcnNpc3QKLQljb29raWUgU0VSVkVSSUQKLQlkaXNwYXRjaCAxOTIuMTY4LjEuMTAwOjgwCi0Jc2VydmVyIHdlYjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxCi0Jc2VydmVyIHdlYjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyCi0JcmVkaXNwYXRjaCAjIHJlbnZveWVyIHZlcnMgZGlzcGF0Y2ggc2kgc2VydmV1ciBIUy4KKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIG9wdGlvbiBwZXJzaXN0CisgICAgICAgIGNvb2tpZSBTRVJWRVJJRAorICAgICAgICBkaXNwYXRjaCAxOTIuMTY4LjEuMTAwOjgwCisgICAgICAgIHNlcnZlciB3ZWIxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMQorICAgICAgICBzZXJ2ZXIgd2ViMiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIKKyAgICAgICAgcmVkaXNwYXRjaCAjIHJlbnZveWVyIHZlcnMgZGlzcGF0Y2ggc2kgc2VydmV1ciBIUy4KIAogCiA0KSBGb25jdGlvbm5hbGl06XMgYWRkaXRpb25uZWxsZXMKQEAgLTk2NSw3ICsxMDE0LDcgQEAKIAogRCdhdXRyZXMgZm9uY3Rpb25uYWxpdOlzIGQndXNhZ2UgbW9pbnMgY291cmFudCBzb250IGRpc3BvbmlibGVzLiBJbCBzJ2FnaXQKIHByaW5jaXBhbGVtZW50IGR1IG1vZGUgdHJhbnNwYXJlbnQsIGRlIGxhIGpvdXJuYWxpc2F0aW9uIGRlcyBjb25uZXhpb25zLCBldCBkZQotbGEgcunpY3JpdHVyZSBkZXMgZW506nRlcy4KK2xhIHLp6WNyaXR1cmUgZGVzIGVuLXTqdGVzLgogCiA0LjEpIEZvbmN0aW9ubmFsaXTpcyBy6XNlYXUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTgwLDExICsxMDI5LDExIEBACiBFeGVtcGxlIDoKIC0tLS0tLS0tLQogICAgIGxpc3RlbiBodHRwX3Byb3h5IDAuMC4wLjA6NjUwMDAKLQltb2RlIGh0dHAKLQl0cmFuc3BhcmVudAotCWNvb2tpZSBTRVJWRVJJRAotCXNlcnZlciBzZXJ2ZXIwMSAxOTIuMTY4LjEuMTo4MAotCXNlcnZlciBzZXJ2ZXIwMiAxOTIuMTY4LjEuMjo4MAorICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgdHJhbnNwYXJlbnQKKyAgICAgICAgY29va2llIFNFUlZFUklECisgICAgICAgIHNlcnZlciBzZXJ2ZXIwMSAxOTIuMTY4LjEuMTo4MAorICAgICAgICBzZXJ2ZXIgc2VydmVyMDIgMTkyLjE2OC4xLjI6ODAKIAogICAgICMgaXB0YWJsZXMgLXQgbmF0IC1BIFBSRVJPVVRJTkcgLWkgZXRoMCAtcCB0Y3AgLWQgMTkyLjE2OC4xLjEwMCBcCiAgICAgICAtLWRwb3J0IDgwIC1qIFJFRElSRUNUIC0tdG8tcG9ydHMgNjUwMDAKQEAgLTk5OSw5ICsxMDQ4LDkgQEAKIEV4ZW1wbGUgOgogLS0tLS0tLS0tCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo2NTAwMAotCW1vZGUgdGNwCi0Jc2VydmVyIHNlcnZlcjAxIDE5Mi4xNjguMS4xIGNoZWNrIHBvcnQgNjAwMDAKLQlzZXJ2ZXIgc2VydmVyMDIgMTkyLjE2OC4xLjIgY2hlY2sgcG9ydCA2MDAwMAorICAgICAgICBtb2RlIHRjcAorICAgICAgICBzZXJ2ZXIgc2VydmVyMDEgMTkyLjE2OC4xLjEgY2hlY2sgcG9ydCA2MDAwMAorICAgICAgICBzZXJ2ZXIgc2VydmVyMDIgMTkyLjE2OC4xLjIgY2hlY2sgcG9ydCA2MDAwMAogCiAgICAgIyBpcHRhYmxlcyAtdCBuYXQgLUEgUFJFUk9VVElORyAtaSBldGgwIC1wIHRjcCAtZCAxOTIuMTY4LjEuMTAwIFwKICAgICAgIC1qIFJFRElSRUNUIC0tdG8tcG9ydHMgNjUwMDAKQEAgLTEwNTYsNiArMTEwNSwzNSBAQAogCiA0LjIpIEpvdXJuYWxpc2F0aW9uIGRlcyBjb25uZXhpb25zCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0wndW4gZGVzIHBvaW50cyBmb3J0cyBkZSBIQVByb3h5IGVzdCBpbmTpbmlhYmxlbWVudCBsYSBwculjaXNpb24gZGUgc2VzIGxvZ3MuCitJbCBmb3Vybml0IHByb2JhYmxlbWVudCBsZSBwbHVzIGZpbiBuaXZlYXUgZCdpbmZvcm1hdGlvbiBkaXNwb25pYmxlIHBvdXIgdW4KK3RlbCBvdXRpbCwgY2UgcXVpIGVzdCB0cuhzIGltcG9ydGFudCBwb3VyIGxlcyBkaWFnbm9zdGljcyBlbiBlbnZpcm9ubmVtZW50cworY29tcGxleGVzLiBFbiBzdGFuZGFyZCwgbGVzIGluZm9ybWF0aW9ucyBqb3VybmFsaXPpZXMgaW5jbHVlbnQgbGUgcG9ydCBjbGllbnQsCitsZXMgY2hyb25vbel0cmFnZXMgZGVzIOl0YXRzIFRDUC9IVFRQLCBkZXMg6XRhdHMgZGUgc2Vzc2lvbiBwculjaXMgYXUgbW9tZW50IGRlCitsYSB0ZXJtaW5haXNvbiBldCBzYSBjYXVzZSwgZGVzIGluZm9ybWF0aW9ucyBzdXIgbGVzIGTpY2lzaW9ucyBkJ2FpZ3VpbGxhZ2UgZHUKK3RyYWZpYyB2ZXJzIHVuIHNlcnZldXIsIGV0IGJpZW4gc/tyIGxhIHBvc3NpYmlsaXTpIGRlIGNhcHR1cmVyIGRlcyBlbi106nRlcworYXJiaXRyYWlyZXMuCisKK0RhbnMgbGUgYnV0IGQnYW3pbGlvcmVyIGxhIHLpYWN0aXZpdOkgZGVzIGFkbWluaXN0cmF0ZXVycywgaWwgb2ZmcmUgdW5lIGdyYW5kZQordHJhbnNwYXJlbmNlIHN1ciBsZXMgcHJvYmzobWVzIHJlbmNvbnRy6XMsIOAgbGEgZm9pcyBpbnRlcm5lcyBldCBleHRlcm5lcywgZXQKK2lsIGVzdCBwb3NzaWJsZSBkJ2Vudm95ZXIgbGVzIGxvZ3MgdmVycyBkZXMgc2VydmV1cnMgZGlmZulyZW50cyBlbiBt6m1lIHRlbXBzCithdmVjIGRlcyBuaXZlYXV4IGRlIGZpbHRyYWdlIGRpZmbpcmVudHMgOgorCisgIC0gbG9ncyBnbG9iYXV4IGF1IG5pdmVhdSBwcm9jZXNzdXMgKGVycmV1cnMgc3lzdOhtZSwgYXJy6nRzL2TpbWFycmFnZXMsIC4uLikKKyAgLSBlcnJldXJzIHN5c3TobWUgZXQgaW50ZXJuZXMgcGFyIGluc3RhbmNlIChtYW5xdWUgZGUgcmVzc291cmNlcywgYnVncywgLi4uKQorICAtIHByb2Js6G1lcyBleHRlcm5lcyBwYXIgaW5zdGFuY2UgKGFycup0cy9yZWxhbmNlIHNlcnZldXJzLCBsaW1pdGVzLCAuLi4pCisgIC0gYWN0aXZpdOkgcGFyIGluc3RhbmNlIChjb25uZXhpb25zIGNsaWVudHMpLCBhdXNzaSBiaWVuIGxvcnMgZGUgbGV1cgorICAgIOl0YWJsaXNzZW1lbnQgcXUn4CBsZXVyIHRlcm1pbmFpc29uLgorCitMYSBwb3NzaWJpbGl06SBkZSBkaXN0cmlidWVyIGRpZmbpcmVudHMgbml2ZWF1eCBkZSBsb2dzIOAgZGlmZulyZW50cyBzZXJ2ZXVycworcGVybWV0IOAgcGx1c2lldXJzIOlxdWlwZXMgZGUgcHJvZHVjdGlvbiBkJ2ludOlyYWdpciBldCBkZSBjb3JyaWdlciBsZXVycworcHJvYmzobWVzIGxlIHBsdXMgdPR0IHBvc3NpYmxlLiBQYXIgZXhlbXBsZSwgbCfpcXVpcGUgc3lzdOhtZSBwZXV0IHN1cnZlaWxsZXIKK29jY2FzaW9ubmVsbGVtZW50IGxlcyBlcnJldXJzIHN5c3TobWUsIHBlbmRhbnQgcXVlIGwn6XF1aXBlIGFwcGxpY2F0aW9uCitzdXJ2ZWlsbGUgbGVzIGFsZXJ0ZXMgZCdhcnLqdHMvZOltYXJyYWdlcyBkZSBzZXMgc2VydmV1cnMgZW4gdGVtcHMgcullbCwgZXQKK3F1ZSBsJ+lxdWlwZSBz6WN1cml06SBhbmFseXNlIGwnYWN0aXZpdOkgZW4gZGlmZuly6SBkJ3VuZSBoZXVyZS4KKworCiA0LjIuMSkgTml2ZWF1eCBkZSBsb2cKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGVzIGNvbm5leGlvbnMgVENQIGV0IEhUVFAgcGV1dmVudCBkb25uZXIgbGlldSDgIHVuZSBqb3VybmFsaXNhdGlvbiBzb21tYWlyZSBvdQpAQCAtMTA4MCw5ICsxMTU4LDkgQEAKIEV4ZW1wbGUgOgogLS0tLS0tLS0tCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAotCW1vZGUgaHR0cAotCWxvZyAxOTIuMTY4LjIuMjAwIGxvY2FsMwotCWxvZyAxOTIuMTY4LjIuMjAxIGxvY2FsNAorICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgbG9nIDE5Mi4xNjguMi4yMDAgbG9jYWwzCisgICAgICAgIGxvZyAxOTIuMTY4LjIuMjAxIGxvY2FsNAogCiA0LjIuMikgRm9ybWF0IGRlcyBsb2dzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMDkyLDE0ICsxMTcwLDI2IEBACiBzdXIgc29uIOl0YXQgbG9ycyBkZSBsYSBk6WNvbm5leGlvbiwgYWluc2kgcXVlIGxlIHRlbXBzIGRlIGNvbm5leGlvbiBldCBsYQogZHVy6WUgdG90YWxlIGRlIGxhIHNlc3Npb24uCiAKLUV4ZW1wbGUgOgotLS0tLS0tLS0tCitFeGVtcGxlIGRlIGpvdXJuYWxpc2F0aW9uIFRDUCA6CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgbGlzdGVuIHJlbGFpcy10Y3AgMC4wLjAuMDo4MDAwCi0JbW9kZSB0Y3AKLQlvcHRpb24gdGNwbG9nCi0JbG9nIDE5Mi4xNjguMi4yMDAgbG9jYWwzCisgICAgICAgIG1vZGUgdGNwCisgICAgICAgIG9wdGlvbiB0Y3Bsb2cKKyAgICAgICAgbG9nIDE5Mi4xNjguMi4yMDAgbG9jYWwzCiAKLT4+PiBoYXByb3h5WzE4OTg5XTogMTI3LjAuMC4xOjM0NTUwIFsxNS9PY3QvMjAwMzoxNToyNDoyOF0gcmVsYWlzLXRjcCBTcnYxIDAvNTAwNyAwIC0tCis+Pj4gaGFwcm94eVsxODk4OV06IDEyNy4wLjAuMTozNDU1MCBbMTUvT2N0LzIwMDM6MTU6MjQ6MjhdIHJlbGFpcy10Y3AgU3J2MSAwLzUwMDcgMCAtLSAxLzEKKyAgCisgICAgQ2hhbXAgIEZvcm1hdCAvIERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgRXhlbXBsZQorICAgICAgCisgICAgICAgIDEgIG5vbV9wcm9jZXNzdXMgJ1snIHBpZCAnXTonICAgICAgICAgICAgaGFwcm94eVsxODk4OV06CisgICAgICAgIDIgIGlwX2NsaWVudCAnOicgcG9ydF9jbGllbnQgICAgICAgICAgICAgMTI3LjAuMC4xOjM0NTUwCisgICAgICAgIDMgICdbJyBkYXRlICddJyAgICAgICAgICAgICAgICAgICAgICAgICAgWzE1L09jdC8yMDAzOjE1OjI0OjI4XQorICAgICAgICA0ICBub21faW5zdGFuY2UgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGFpcy10Y3AKKyAgICAgICAgNSAgbm9tX3NlcnZldXIgICAgICAgICAgICAgICAgICAgICAgICAgICBTcnYxCisgICAgICAgIDYgIHRlbXBzX2Nvbm5lY3QgJy8nIHRlbXBzX3RvdGFsICAgICAgICAgMC81MDA3CisgICAgICAgIDcgIG9jdGV0cyBsdXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorICAgICAgICA4ICBldGF0X3Rlcm1pbmFpc29uICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgIDkgIGNvbm5zX2luc3RhbmNlICcvJyBjb25uc19wcm9jZXNzdXMgICAgMS8xCiAKIFVuZSBhdXRyZSBvcHRpb24sICdodHRwbG9nJywgZm91cm5pdCBwbHVzIGRlIGTpdGFpbHMgc3VyIGxlIHByb3RvY29sZSBIVFRQLAogbm90YW1tZW50IGxhIHJlcXXqdGUgZXQgbCfpdGF0IGRlcyBjb29raWVzLiBEYW5zIGxlcyBjYXMgb/kgdW4gbeljYW5pc21lIGRlCkBAIC0xMTA4LDE1ICsxMTk4LDQwIEBACiBsaWduZSBkZSBsb2cgcG91ciBsZXMgc2Vzc2lvbnMgbidheWFudCBwYXMgZG9ubukgbGlldSDgIHVuIOljaGFuZ2UgZGUgZG9ubullcwogKHJlcXXqdGUgb3Ugculwb25zZSkuCiAKLUV4ZW1wbGUgOgotLS0tLS0tLS0tCitFeGVtcGxlIGRlIGpvdXJuYWxpc2F0aW9uIEhUVFAgOgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBsaXN0ZW4gaHR0cF9wcm94eSAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0Jb3B0aW9uIGh0dHBsb2cKLQlvcHRpb24gZG9udGxvZ251bGwKLQlsb2cgMTkyLjE2OC4yLjIwMCBsb2NhbDMKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIG9wdGlvbiBodHRwbG9nCisgICAgICAgIG9wdGlvbiBkb250bG9nbnVsbAorICAgICAgICBsb2cgMTkyLjE2OC4yLjIwMCBsb2NhbDMKKworPj4+IGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzE5IFsxNS9PY3QvMjAwMzowODozMTo1N10gcmVsYWlzLWh0dHAgU3J2MSA5LzcvMTQ3LzcyMyAyMDAgMjQzIC0gLSAtLS0tIDMvMyAiSEVBRCAvIEhUVFAvMS4wIgorCitFeGVtcGxlIHBsdXMgY29tcGxldCA6CiAKLT4+PiBoYXByb3h5WzY3NF06IDEyNy4wLjAuMTozMzMxOSBbMTUvT2N0LzIwMDM6MDg6MzE6NTddIHJlbGFpcy1odHRwIFNydjEgOS83LzE0Ny83MjMgMjAwIDI0MyAtIC0gLS0tLSAiSEVBRCAvIEhUVFAvMS4wIgorICAgIGhhcHJveHlbMTg5ODldOiAxMC4wLjAuMTozNDU1MiBbMTUvT2N0LzIwMDM6MTU6MjY6MzFdIHJlbGFpcy1odHRwIFNydjEgMzE4My8tMS8tMS8xMTIxNSA1MDMgMCAtIC0gU0MtLSAyMDIvMjA1IHt3Lm9kcy5vcmd8TW96aWxsYX0ge30gIkhFQUQgLyBIVFRQLzEuMCIgCisKKyAgICBDaGFtcCAgRm9ybWF0IC8gRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICBFeGVtcGxlCisgICAgICAKKyAgICAgICAgMSAgbm9tX3Byb2Nlc3N1cyAnWycgcGlkICddOicgICAgICAgICAgICBoYXByb3h5WzE4OTg5XToKKyAgICAgICAgMiAgaXBfY2xpZW50ICc6JyBwb3J0X2NsaWVudCAgICAgICAgICAgICAxMC4wLjAuMTozNDU1MgorICAgICAgICAzICAnWycgZGF0ZSAnXScgICAgICAgICAgICAgICAgICAgICAgICAgIFsxNS9PY3QvMjAwMzoxNToyNjozMV0KKyAgICAgICAgNCAgbm9tX2luc3RhbmNlICAgICAgICAgICAgICAgICAgICAgICAgICByZWxhaXMtaHR0cAorICAgICAgICA1ICBub21fc2VydmV1ciAgICAgICAgICAgICAgICAgICAgICAgICAgIFNydjEKKyAgICAgICAgNiAgVHEgJy8nIFRjICcvJyBUciAnLycgVHQgICAgICAgICAgICAgICAzMTgzLy0xLy0xLzExMjE1CisgICAgICAgIDcgIENvZGVfcmV0b3VyX0hUVFAgICAgICAgICAgICAgICAgICAgICAgNTAzCisgICAgICAgIDggIG9jdGV0cyBsdXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAorICAgICAgICA5ICBjb29raWVzX3JlcXXqdGVfY2FwdHVy6XMgICAgICAgICAgICAgIC0KKyAgICAgICAxMCAgY29va2llc19yZXBvbnNlX2NhcHR1culzICAgICAgICAgICAgICAtCisgICAgICAgMTEgIGV0YXRfdGVybWluYWlzb24gICAgICAgICAgICAgICAgICAgICAgU0MtLQorICAgICAgIDEyICBjb25uc19pbnN0YW5jZSAnLycgY29ubnNfcHJvY2Vzc3VzICAgIDIwMi8yMDUKKyAgICAgICAxMyAgJ3snIGVudGV0ZXNfcmVxdep0ZV9jYXB0dXLpcyAnfScgICAgICB7dy5vZHMub3JnfE1vemlsbGF9CisgICAgICAgMTQgICd7JyBlbnRldGVzX3JlcG9uc2VfY2FwdHVy6XMgJ30nICAgICAge30KKyAgICAgICAxNSAgJyInIHJlcXXqdGVfSFRUUCAnIicgICAgICAgICAgICAgICAgICAiSEVBRCAvIEhUVFAvMS4wIgorICAKK05vdGUgcG91ciBsZXMgYW5hbHlzZXVycyBkZSBsb2dzIDogbCdVUkkgZXN0IFRPVUpPVVJTIGxlIGRlcm5pZXIgY2hhbXAgZGUgbGEgbGlnbmUsIGV0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbmNlIHBhciB1biBndWlsbGVtZXQgJyInLgogCiBMZSBwcm9ibOhtZSBkZSBsb2d1ZXIgdW5pcXVlbWVudCBlbiBmaW4gZGUgc2Vzc2lvbiwgYydlc3QgcXUnaWwgZXN0IGltcG9zc2libGUKIGRlIHNhdm9pciBjZSBxdWkgc2UgcGFzc2UgZHVyYW50IGRlIGdyb3MgdHJhbnNmZXJ0cyBvdSBkZXMgc2Vzc2lvbnMgbG9uZ3Vlcy4KQEAgLTExMjUsMjQgKzEyNDAsMjQgQEAKIHT0dCBwb3NzaWJsZSwgYydlc3Qg4CBkaXJlIGp1c3RlIGF2YW50IHF1ZSBuZSBk6WJ1dGVudCBsZXMgdHJhbnNmZXJ0cyBkZQogZG9ubullcy4gQ2VsYSBzaWduaWZpZSwgZGFucyBsZSBjYXMgZHUgVENQLCBxdSdpbCBsb2d1ZXJhIHRvdWpvdXJzIGxlIHLpc3VsdGF0CiBkZSBsYSBjb25uZXhpb24gdmVycyBsZSBzZXJ2ZXVyLCBldCBkYW5zIGxlIGNhcyBIVFRQLCBxdSdpbCBsb2d1ZXJhIGVuIGZpbiBkZQotdHJhaXRlbWVudCBkZXMgZW506nRlcyBkZSBsYSBy6XBvbnNlIGR1IHNlcnZldXIsIGF1cXVlbCBjYXMgbGUgbm9tYnJlIGQnb2N0ZXRzCi1yZXBy6XNlbnRlcmEgbGEgdGFpbGxlIGRlcyBlbnTqdGVzIHJldG91cm7pcyBhdSBjbGllbnQuCit0cmFpdGVtZW50IGRlcyBlbi106nRlcyBkZSBsYSBy6XBvbnNlIGR1IHNlcnZldXIsIGF1cXVlbCBjYXMgbGUgbm9tYnJlIGQnb2N0ZXRzCityZXBy6XNlbnRlcmEgbGEgdGFpbGxlIGRlcyBlbi106nRlcyByZXRvdXJu6XMgYXUgY2xpZW50LgogCiBBZmluIGQn6XZpdGVyIHRvdXRlIGNvbmZ1c2lvbiBhdmVjIGxlcyBsb2dzIG5vcm1hdXgsIGxlIHRlbXBzIHRvdGFsIGRlCiB0cmFuc2ZlcnQgZXQgbGUgbm9tYnJlIGQnb2N0ZXRzIHRyYW5zZuly6XMgc29udCBwculmaXjpcyBkJ3VuIHNpZ25lICcrJwotcmFwcGVsZWFudCBxdWUgbGVzIHZhbGV1cnMgcullbGxlcyBzb250IGNlcnRhaW5lbWVudCBwbHVzIOlsZXbpZXMuCityYXBwZWxhbnQgcXVlIGxlcyB2YWxldXJzIHLpZWxsZXMgc29udCBjZXJ0YWluZW1lbnQgcGx1cyDpbGV26WVzLgogCiBFeGVtcGxlIDoKIC0tLS0tLS0tLQogCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAotCW1vZGUgaHR0cAotCW9wdGlvbiBodHRwbG9nCi0Jb3B0aW9uIGRvbnRsb2dudWxsCi0Jb3B0aW9uIGxvZ2FzYXAKLQlsb2cgMTkyLjE2OC4yLjIwMCBsb2NhbDMKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIG9wdGlvbiBodHRwbG9nCisgICAgICAgIG9wdGlvbiBkb250bG9nbnVsbAorICAgICAgICBvcHRpb24gbG9nYXNhcAorICAgICAgICBsb2cgMTkyLjE2OC4yLjIwMCBsb2NhbDMKIAotPj4+IGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzIwIFsxNS9PY3QvMjAwMzowODozMjoxN10gcmVsYWlzLWh0dHAgU3J2MSA5LzcvMTQvKzMwIDIwMCArMjQzIC0gLSAtLS0tICJHRVQgL2ltYWdlLmlzbyBIVFRQLzEuMCIKKz4+PiBoYXByb3h5WzY3NF06IDEyNy4wLjAuMTozMzMyMCBbMTUvT2N0LzIwMDM6MDg6MzI6MTddIHJlbGFpcy1odHRwIFNydjEgOS83LzE0LyszMCAyMDAgKzI0MyAtIC0gLS0tLSAzLzMgIkdFVCAvaW1hZ2UuaXNvIEhUVFAvMS4wIgogCiAKIDQuMi4zKSBDaHJvbm9t6XRyYWdlIGRlcyDpduluZW1lbnRzCkBAIC0xMTY2LDEwICsxMjgxLDEwIEBACiAgICAgdmVycyBsZSBzZXJ2ZXVyLgogCiAgIC0gVHI6IHRlbXBzIGRlIHLpcG9uc2UgZHUgc2VydmV1ci4gQydlc3QgbGUgdGVtcHMgcXVlIGxlIHNlcnZldXIgYSBtaXMgcG91cgotICAgIHJlbnZveWVyIGxhIHRvdGFsaXTpIGRlcyBlbnTqdGVzIEhUVFAg4CBwYXJ0aXIgZHUgbW9tZW50IG/5IGlsIGEgYWNxdWl0dOkKKyAgICByZW52b3llciBsYSB0b3RhbGl06SBkZXMgZW4tdOp0ZXMgSFRUUCDgIHBhcnRpciBkdSBtb21lbnQgb/kgaWwgYSBhY3F1aXR06QogICAgIGxhIGNvbm5leGlvbi4gQ2EgcmVwculzZW50ZSBleGFjdGVtZW50IGxlIHRlbXBzIGRlIHRyYWl0ZW1lbnQgZGUgbGEKICAgICB0cmFuc2FjdGlvbiBzYW5zIGxlIHRyYW5zZmVydCBkZXMgZG9ubullcyBhc3NvY2npZXMuIFVuZSB2YWxldXIgJy0xJwotICAgIGluZGlxdWUgcXVlIGxlIHNlcnZldXIgbidhIHBhcyBlbnZveekgbGEgdG90YWxpdOkgZGUgbCdlbnTqdGUgSFRUUC4KKyAgICBpbmRpcXVlIHF1ZSBsZSBzZXJ2ZXVyIG4nYSBwYXMgZW52b3npIGxhIHRvdGFsaXTpIGRlIGwnZW4tdOp0ZSBIVFRQLgogCiAgIC0gVHQ6IGR1cullIGRlIHZpZSB0b3RhbGUgZGUgbGEgc2Vzc2lvbiwgZW50cmUgbGUgbW9tZW50IG/5IGxhIGRlbWFuZGUgZGUKICAgICBjb25uZXhpb24gZHUgY2xpZW50IGEg6XTpIGFjcXVpdHTpZSBldCBsZSBtb21lbnQgb/kgbGEgY29ubmV4aW9uIGEg6XTpCkBAIC0xMjExLDc1ICsxMzI2LDIwOCBAQAogCiBBdXRyZXMgY2FzICgneHgnIHJlcHLpc2VudGFudCB1bmUgdmFsZXVyIHF1ZWxjb25xdWUg4CBpZ25vcmVyKSA6CiAgICAgLTEveHgveHgvVHQgOiBsZSBjbGllbnQgbidhIHBhcyBlbnZveekgc2EgcmVxdep0ZSBkYW5zIGxlIHRlbXBzIGltcGFydGkgb3UKLQkJICBhIHJlZmVybekgc2EgY29ubmV4aW9uIHNhbnMgY29tcGzpdGVyIGxhIHJlcXXqdGUuCisgICAgICAgICAgICAgICAgICBhIHJlZmVybekgc2EgY29ubmV4aW9uIHNhbnMgY29tcGzpdGVyIGxhIHJlcXXqdGUuCiAgICAgVHEvLTEveHgvVHQgOiBsYSBjb25uZXhpb24gbidhIHBhcyBwdSBzJ+l0YWJsaXIgdmVycyBsZSBzZXJ2ZXVyIChyZWZ1cyBvdQogICAgICAgICAgICAgICAgICAgdGltZS1vdXQgYXUgYm91dCBkZSBUdC1UcSBtcykuCiAgICAgVHEvVGMvLTEvVHQgOiBsZSBzZXJ2ZXVyIGEgYWNjZXB06SBsYSBjb25uZXhpb24gbWFpcyBuJ2EgcGFzIHLpcG9uZHUgZGFucwotCQkgIGxlcyB0ZW1wcyBvdSBiaWVuIGEgcmVmZXJt6SBzYSBjb25uZXhpb24gdHJvcCB09HQsIGF1IGJvdXQKLQkJICBkZSBUdC0oVHErVGMpIG1zLgorICAgICAgICAgICAgICAgICAgbGVzIHRlbXBzIG91IGJpZW4gYSByZWZlcm3pIHNhIGNvbm5leGlvbiB0cm9wIHT0dCwgYXUgYm91dAorICAgICAgICAgICAgICAgICAgZGUgVHQtKFRxK1RjKSBtcy4KICAgICAgCiA0LjIuNCkgQ29uZGl0aW9ucyBkZSBk6WNvbm5leGlvbgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxlcyBsb2dzIFRDUCBldCBIVFRQIGZvdXJuaXNzZW50IHVuIGluZGljYXRldXIgZGUgY29tcGzpdHVkZSBkZSBsYSBzZXNzaW9uLgotQydlc3QgdW4gY2hhbXAgZGUgNCBjYXJhY3TocmVzICgyIGVuIFRDUCkgcHLpY+lkYW50IGxhIHJlcXXqdGUgSFRUUCwgaW5kaXF1YW50OgotICAtIHN1ciBsZSBwcmVtaWVyIGNhcmFjdOhyZSwgdW4gY29kZSBwculjaXNhbnQgbGUgcHJlbWllciDpduluZW1lbnQgcXVpIGEKLSAgICBjYXVz6SBsYSB0ZXJtaW5haXNvbiBkZSBsYSBzZXNzaW9uIDoKK0xlcyBsb2dzIFRDUCBldCBIVFRQIGZvdXJuaXNzZW50IHVuIGluZGljYXRldXIgZGUgY29tcGzpdHVkZSBkZSBsYSBzZXNzaW9uIGRhbnMKK2xlIGNoYW1wICdldGF0X3Rlcm1pbmFpc29uJywganVzdGUgYXZhbnQgbGUgbm9tYnJlIGRlIGNvbm5leGlvbnMgYWN0aXZlcy4gQydlc3QKK3VuIGNoYW1wIGxvbmcgZGUgMiBjYXJhY3TocmVzIGVuIFRDUCBldCBkZSA0IGNhcmFjdOhyZXMgZW4gSFRUUCwgY2hhY3VuIGF5YW50Cit1bmUgc2lnbmlmaWNhdGlvbiBwculjaXNlIDoKKworICAtIHN1ciBsZSBwcmVtaWVyIGNhcmFjdOhyZSwgdW4gY29kZSBwculjaXNhbnQgbGUgcHJlbWllciDpduluZW1lbnQgcXVpIGEgY2F1c+kKKyAgICBsYSB0ZXJtaW5haXNvbiBkZSBsYSBzZXNzaW9uIDoKKworICAgICAgICBDIDogZmVybWV0dXJlIGluYXR0ZW5kdWUgZGUgbGEgc2Vzc2lvbiBUQ1AgZGUgbGEgcGFydCBkdSBjbGllbnQuCisKKyAgICAgICAgUyA6IGZlcm1ldHVyZSBpbmF0dGVuZHVlIGRlIGxhIHNlc3Npb24gVENQIGRlIGxhIHBhcnQgZHUgc2VydmV1ciwgb3UKKyAgICAgICAgICAgIHJlZnVzIGV4cGxpY2l0ZSBkZSBjb25uZXhpb24gZGUgbGEgcGFydCBkZSBjZSBkZXJuaWVyLgorCisgICAgICAgIFAgOiB0ZXJtaW5haXNvbiBwcultYXR1cullIGRlcyBzZXNzaW9ucyBwYXIgbGUgcHJveHksIHBvdXIgY2F1c2UKKyAgICAgICAgICAgIGQnaW1wb3NpdGlvbiBkJ3VuZSBsaW1pdGUgc3VyIGxlIG5vbWJyZSBkZSBjb25uZXhpb25zLCBwb3VyIGNhdXNlCisgICAgICAgICAgICBkZSBjb25maWd1cmF0aW9uIChleDogZmlsdHJlIGQnVVJMKSwgb3UgcGFyY2UgcXUndW4gY29udHL0bGUgZGUKKyAgICAgICAgICAgIHPpY3VyaXTpIGEgZOl0ZWN06SBldCBibG9xdekgdW5lIGFub21hbGllIGRhbnMgbGEgculwb25zZSBkdQorICAgICAgICAgICAgc2VydmV1ciBxdWkgYXVyYWl0IHB1IGNhdXNlciB1bmUgZnVpdGUgZCdpbmZvcm1hdGlvbnMgKHBhciBleGVtcGxlLAorICAgICAgICAgICAgdW4gY29va2llIGNhY2hhYmxlKS4KIAotICAgICAgICBDIDogZmVybWV0dXJlIGRlIGxhIHNlc3Npb24gVENQIGRlIGxhIHBhcnQgZHUgY2xpZW50Ci0JUyA6IGZlcm1ldHVyZSBkZSBsYSBzZXNzaW9uIFRDUCBkZSBsYSBwYXJ0IGR1IHNlcnZldXIsIG91IHJlZnVzIGRlIGNvbm5leGlvbgotCVAgOiB0ZXJtaW5haXNvbiBwcultYXR1cullIGRlcyBzZXNzaW9ucyBwYXIgbGUgcHJveHksIHBvdXIgY2FzIGQnZXJyZXVyCi0JICAgIGludGVybmUsIGRlIGNvbmZpZ3VyYXRpb24gKGV4OiBmaWx0cmUgZCdVUkwpLCBvdSBwYXJjZSBxdSd1bgotCSAgICBjb250cvRsZSBkZSBz6WN1cml06SBhIGTpdGVjdOkgdW5lIGFub21hbGllIGRhbnMgbGEgculwb25zZSBkdQotCSAgICBzZXJ2ZXVyLgotCWMgOiBleHBpcmF0aW9uIGR1IGTpbGFpIGQnYXR0ZW50ZSBj9HTpIGNsaWVudCA6IGNsaXRpbWVvdXQKLQlzIDogZXhwaXJhdGlvbiBkdSBk6WxhaSBkJ2F0dGVudGUgY/R06SBzZXJ2ZXVyOiBzcnZ0aW1lb3V0IGV0IGNvbnRpbWVvdXQKLQktIDogdGVybWluYWlzb24gbm9ybWFsZS4KKyAgICAgICAgUiA6IHVuZSByZXNzb3VyY2Ugc3VyIGxlIHByb3h5IGEg6XTpIOlwdWlz6WUgKG3pbW9pcmUsIHNvY2tldHMsIHBvcnRzCisgICAgICAgICAgICBzb3VyY2UsIC4uLikuIEfpbulyYWxlbWVudCwgY2VsYSBhcnJpdmUgYXUgY291cnMgZGUgbCfpdGFibGlzc2VtZW50CisgICAgICAgICAgICBkJ3VuZSBjb25uZXhpb24sIGV0IGxlcyBsb2dzIHN5c3TobWUgZG9pdmVudCBjb250ZW5pciB1bmUgY29waWUgZGUKKyAgICAgICAgICAgIGwn6XJyZXVyIHBy6WNpc2UuCiAKLSAgLSBzdXIgbGUgc2Vjb25kIGNhcmFjdOhyZSwgbCfpdGF0IGQnYXZhbmNlbWVudCBkZSBsYSBzZXNzaW9uIEhUVFAgbG9ycyBkZSBsYQotICAgIGZlcm1ldHVyZSA6CisgICAgICAgIEkgOiB1bmUgZXJyZXVyIGludGVybmUgYSDpdOkgaWRlbnRpZmnpZSBwYXIgbGUgcHJveHkg4CBsYSBzdWl0ZSBkJ3VuCisgICAgICAgICAgICBhdXRvLWNvbnRy9GxlLiBDZWNpIG5lIGRvaXQgSkFNQUlTIGFycml2ZXIsIGV0IHZvdXMg6nRlcyBlbmNvdXJhZ+lzCisgICAgICAgICAgICDgIHJlbW9udGVyIG4naW1wb3J0ZSBxdWVsIGxvZyBjb250ZW5hbnQgY2VjaSBjYXIgaWwgcydhZ2lyYSB1biBidWcuCiAKLSAgICAgICAgUiA6IHRlcm1pbmFpc29uIGVuIGF0dGVuZGFudCBsYSBy6WNlcHRpb24gdG90YWxlIGRlIGxhIHJlcXXqdGUgZHUgY2xpZW50Ci0JQyA6IHRlcm1pbmFpc29uIGVuIGF0dGVuZGFudCBsYSBjb25uZXhpb24gdmVycyBsZSBzZXJ2ZXVyCi0JSCA6IHRlcm1pbmFpc29uIGVuIHRyYWl0YW50IGxlcyBlbnTqdGVzIGR1IHNlcnZldXIKLQlEIDogdGVybWluYWlzb24gZHVyYW50IGxlIHRyYW5zZmVydCBkZXMgZG9ubullcyBkdSBzZXJ2ZXVyIHZlcnMgbGUgY2xpZW50Ci0JTCA6IHRlcm1pbmFpc29uIGR1cmFudCBsZSB0cmFuc2ZlcnQgZGVzIGRlcm5p6HJlcyBkb25u6WVzIGR1IHByb3h5IHZlcnMKLQkgICAgbGUgY2xpZW50LCBhbG9ycyBxdWUgbGUgc2VydmV1ciBhIGTpauAgZmluaS4KLQktIDogdGVybWluYWlzb24gbm9ybWFsZSwgYXBy6HMgZmluIGRlIHRyYW5zZmVydCBkZXMgZG9ubullcworICAgICAgICBjIDogbGUgZOlsYWkgbWF4aW1hbCBkJ2F0dGVudGUgZHUgY2xpZW50IGEgZXhwaXLpIChjbGl0aW1lb3V0KS4KKworICAgICAgICBzIDogbGUgZOlsYWkgbWF4aW1hbCBkJ2F0dGVudGUgZHUgc2VydmV1ciBhIGV4cGly6SAoc3J2dGltZW91dCBldCBjb250aW1lb3V0KQorCisgICAgICAgIC0gOiB0ZXJtaW5haXNvbiBub3JtYWxlIGRlIHNlc3Npb24uCisKKyAgLSBzdXIgbGUgc2Vjb25kIGNhcmFjdOhyZSwgbCfpdGF0IGQnYXZhbmNlbWVudCBkZSBsYSBzZXNzaW9uIFRDUC9IVFRQIGxvcnMgZGUKKyAgICBsYSBmZXJtZXR1cmUgOgorCisgICAgICAgIFIgOiBhdHRlbnRlIGQndW5lIFJFUVVFVEUgSFRUUCBjb21wbOh0ZSBkZSBsYSBwYXJ0IGR1IGNsaWVudC4gUmllbiBuJ2EKKyAgICAgICAgICAgIOl06SB0cmFuc21pcyBhdSBzZXJ2ZXVyLgorCisgICAgICAgIEMgOiBhdHRlbnRlIGRlIGwn6XRhYmxpc3NlbWVudCBkJ3VuZSBDT05ORVhJT04gdmVycyBsZSBzZXJ2ZXVyLiBMZQorICAgICAgICAgICAgc2VydmV1ciBwZXV0IGF1IHBsdXMgYXZvaXIgdnUgbGEgdGVudGF0aXZlIGRlIGNvbm5leGlvbiwgbWFpcworICAgICAgICAgICAgYXVjdW5lIGRvbm7pZSBuJ2Eg6XTpIOljaGFuZ+llLgorCisgICAgICAgIEggOiBhdHRlbnRlLCBy6WNlcHRpb24gb3UgdHJhaXRlbWVudCBkZXMgZW4tdOp0ZXMgSFRUUCAoIkhFQURFUlMiKS4KKworICAgICAgICBEIDogdHJhbnNmZXJ0IGRlcyBET05ORUVTIGR1IHNlcnZldXIgdmVycyBsZSBjbGllbnQuCisKKyAgICAgICAgTCA6IHRyYW5zZmVydCBkZXMgZGVybmnocmVzICgiTEFTVCIpIGRvbm7pZXMgZHUgcHJveHkgdmVycyBsZSBjbGllbnQsCisgICAgICAgICAgICBhbG9ycyBxdWUgbGUgc2VydmV1ciBhIGTpauAgZmluaS4KKworICAgICAgICAtIDogdGVybWluYWlzb24gbm9ybWFsZSwgYXBy6HMgZmluIGRlIHRyYW5zZmVydCBkZXMgZG9ubullcy4KIAogICAtIGxlIHRyb2lzaehtZSBjYXJhY3TocmUgaW5kaXF1ZSBsJ+l2ZW50dWVsbGUgaWRlbnRpZmljYXRpb24gZCd1biBjb29raWUgZGUKICAgICBwZXJzaXN0ZW5jZSAodW5pcXVlbWVudCBlbiBtb2RlIEhUVFApIDoKIAorICAgICAgICBOIDogYXVjdW4gY29va2llIGRlIHBlcnNpc3RlbmNlIG4nYSDpdOkgcHLpc2VudOkuIEMnZXN0IGfpbulyYWxlbWVudCBsZQorICAgICAgICAgICAgY2FzIHN1ciBsZXMgTk9VVkVMTEVTIGNvbm5leGlvbnMgY2xpZW50cy4KKwotICAgICAgICBOIDogYXVjdW4gY29va2llIGRlIHBlcnNpc3RlbmNlIG4nYSDpdOkgcHLpc2VudOkuCi0JSSA6IGxlIGNsaWVudCBhIHBy6XNlbnTpIHVuIGNvb2tpZSBuZSBjb3JyZXNwb25kYW50IOAgYXVjdW4gc2VydmV1cgotCSAgICBjb25udS4KLQlEIDogbGUgY2xpZW50IGEgcHLpc2VudOkgdW4gY29va2llIGNvcnJlc3BvbmRhbnQg4CB1biBzZXJ2ZXVyIGhvcnMKLQkgICAgZCd1c2FnZS4gU3VpdmFudCBsJ29wdGlvbiAncGVyc2lzdCcsIGlsIGEg6XTpIHJlbnZveekgdmVycyB1bgotCSAgICBhdXRyZSBzZXJ2ZXVyIG91IGEgdG91dCBkZSBt6m1lIHRlbnTpIGRlIHNlIGNvbm5lY3RlciBzdXIgY2VsdWkKLQkgICAgY29ycmVzcG9uZGFudCBhdSBjb29raWUuCi0JViA6IGxlIGNsaWVudCBhIHBy6XNlbnTpIHVuIGNvb2tpZSB2YWxpZGUgZXQgYSBwdSBzZSBjb25uZWN0ZXIgYXUKLQkgICAgc2VydmV1ciBjb3JyZXNwb25kYW50LgotCS0gOiBub24gYXBwbGlxdWFibGUKKyAgICAgICAgSSA6IGxlIGNsaWVudCBhIHBy6XNlbnTpIHVuIGNvb2tpZSBJTlZBTElERSBuZSBjb3JyZXNwb25kYW50IOAgYXVjdW4KKyAgICAgICAgICAgIHNlcnZldXIgY29ubnUuIENlY2kgcGV1dCDqdHJlIGT7IOAgdW4gY2hhbmdlbWVudCBkZSBjb25maWd1cmF0aW9uCisgICAgICAgICAgICBy6WNlbnQsIOAgZGVzIG3pbGFuZ2VzIGRlIG5vbXMgZGUgY29va2llcyBlbnRyZSBzaXRlcyBIVFRQL0hUVFBTLAorICAgICAgICAgICAgb3Ug4CB1bmUgYXR0YXF1ZS4KIAotICAtIGxlIGRlcm5pZXIgY2FyYWN06HJlIGluZGlxdWUgbCfpdmVudHVlbCB0cmFpdGVtZW50IGVmZmVjdHXpIHN1ciB1biBjb29raWUKLSAgICBkZSBwZXJzaXN0ZW5jZSByZXRyb3VybukgcGFyIGxlIHNlcnZldXIgKHVuaXF1ZW1lbnQgZW4gbW9kZSBIVFRQKSA6CisgICAgICAgIEQgOiBsZSBjbGllbnQgYSBwculzZW506SB1biBjb29raWUgY29ycmVzcG9uZGFudCDgIHVuIHNlcnZldXIgaG9ycworICAgICAgICAgICAgZCd1c2FnZSAoIkRPV04iKS4gU3VpdmFudCBsJ29wdGlvbiAncGVyc2lzdCcsIGlsIGEg6XTpIHJlbnZveekgdmVycworICAgICAgICAgICAgdW4gYXV0cmUgc2VydmV1ciBvdSBhIHRvdXQgZGUgbeptZSB0ZW506SBkZSBzZSBjb25uZWN0ZXIgc3VyIGNlbHVpCisgICAgICAgICAgICBjb3JyZXNwb25kYW50IGF1IGNvb2tpZS4KIAotICAgICAgICBOIDogYXVjdW4gY29va2llIGRlIHBlcnNpc3RlbmNlIG4nYSDpdOkgZm91cm5pIHBhciBsZSBzZXJ2ZXVyLgorICAgICAgICBWIDogbGUgY2xpZW50IGEgcHLpc2VudOkgdW4gY29va2llIFZBTElERSBldCBhIHB1IHNlIGNvbm5lY3RlciBhdQorICAgICAgICAgICAgc2VydmV1ciBjb3JyZXNwb25kYW50LgorCisgICAgICAgIC0gOiBub24gYXBwbGlxdWFibGUgKHBhcyBkZSBjb29raWUgcG9zaXRpb25u6SBkYW5zIGxhIGNvbmZpZ3VyYXRpb24pLgorCisgIC0gbGUgZGVybmllciBjYXJhY3TocmUgaW5kaXF1ZSBsJ+l2ZW50dWVsIHRyYWl0ZW1lbnQgZWZmZWN0dekgc3VyIHVuIGNvb2tpZSBkZQorICAgIHBlcnNpc3RlbmNlIHJldHJvdXJu6SBwYXIgbGUgc2VydmV1ciAodW5pcXVlbWVudCBlbiBtb2RlIEhUVFApIDoKKworICAgICAgICBOIDogYXVjdW4gY29va2llIGRlIHBlcnNpc3RhbmNlIG4nYSDpdOkgZm91cm5pIHBhciBsZSBzZXJ2ZXVyLCBldCBhdWN1bgorICAgICAgICAgICAgbidhIOl06SBpbnPpcukuCisKKyAgICAgICAgSSA6IGF1Y3VuIGNvb2tpZSBkZSBwZXJzaXN0YW5jZSBuJ2Eg6XTpIGZvdXJuaSBwYXIgbGUgc2VydmV1ciwgZXQgbGUKKyAgICAgICAgICAgIHByb3h5IGVuIGEgSU5TRVJFIHVuLgorCiAgICAgICAgIFAgOiB1biBjb29raWUgZGUgcGVyc2lzdGVuY2UgYSDpdOkgZm91cm5pIHBhciBsZSBzZXJ2ZXVyIGV0IHRyYW5zbWlzCi0JICAgIHRlbCBxdWVsLgotCUkgOiBhdWN1biBjb29raWUgbidhIOl06SBmb3VybmkgcGFyIGxlIHNlcnZldXIsIGlsIGEg6XTpIGluc+ly6SBwYXIgbGUKLQkgICAgcHJveHkuCi0JRCA6IGxlIGNvb2tpZSBwculzZW506SBwYXIgbGUgc2VydmV1ciBhIOl06SBzdXBwcmlt6SBwYXIgbGUgcHJveHkgcG91cgotCSAgICBuZSBwYXMg6nRyZSByZXRvdXJu6SBhdSBjbGllbnQuCi0JUiA6IGxlIGNvb2tpZSByZXRvdXJu6SBwYXIgbGUgc2VydmV1ciBhIOl06SBtb2RpZmnpIHBhciBsZSBwcm94eS4KLQktIDogbm9uIGFwcGxpcXVhYmxlCisgICAgICAgICAgICB0ZWwgcXVlbCAoIlBBU1NJRiIpLgorCisgICAgICAgIFIgOiBsZSBjb29raWUgcmV0b3VybukgcGFyIGxlIHNlcnZldXIgYSDpdOkgUkVFQ1JJVCBwYXIgbGUgcHJveHkuCisKKyAgICAgICAgRCA6IGxlIGNvb2tpZSBwculzZW506SBwYXIgbGUgc2VydmV1ciBhIOl06SBERVRSVUlUIHBhciBsZSBwcm94eSBwb3VyCisgICAgICAgICAgICBuZSBwYXMg6nRyZSByZXRvdXJu6SBhdSBjbGllbnQuCisKKyAgICAgICAgLSA6IG5vbiBhcHBsaXF1YWJsZQorCisKK0xhIGNvbWJpbmFpc29uIGRlcyBkZXV4IHByZW1pZXJzIGluZGljYXRldXJzIGZvdXJuaXQgdW5lIGdyYW5kZSBxdWFudGl0aekKK2QnaW5mb3JtYXRpb25zIHN1ciBjZSBxdWkgc2UgcGFzc2FpdCBsb3JzcXVlIGxhIHNlc3Npb24gcydlc3QgdGVybWlu6WUuIENlbGEKK3BldXQgbm90YW1tZW50IGFpZGVyIOAgZOl0ZWN0ZXIgdW5lIHNhdHVyYXRpb24gZGUgc2VydmV1ciwgZGVzIHRyb3VibGVzIHLpc2VhdSwKK2RlcyDpcHVpc2VtZW50cyBkZSByZXNzb3VyY2VzIHN5c3TobWUgbG9jYWxlcywgZGVzIGF0dGFxdWVzLCBldGMuLi4KIAotTGUgbW90IGNs6SAiY2FwdHVyZSIgcGVybWV0IGQnYWpvdXRlciBkYW5zIGRlcyBsb2dzIEhUVFAgZGVzIGluZm9ybWF0aW9ucwotY2FwdHVy6WVzIGRhbnMgbGVzIOljaGFuZ2VzLiBMYSB2ZXJzaW9uIDEuMS4xNyBzdXBwb3J0ZSB1bmlxdWVtZW50IHVuZSBjYXB0dXJlCi1kZSBjb29raWVzIGNsaWVudCBldCBzZXJ2ZXVyLCBjZSBxdWkgcGVybWV0IGRhbnMgYmllbiBkZXMgY2FzLCBkZSByZWNvbnN0aXR1ZXIKLWxhIHNlc3Npb24gZCd1biB1dGlsaXNhdGV1ci4gTGEgc3ludGF4ZSBlc3QgbGEgc3VpdmFudGUgOgorTGVzIGNvbWJpbmFpc29ucyBkJ2luZGljYXRldXJzIGxlcyBwbHVzIGZy6XF1ZW50ZXMgc29udCDpbnVt6XLpZXMgaWNpLgorCisgICBJbmRpYyAgUmFpc29uCisgICAgICBDUiAgTGUgY2xpZW50IGEgYWJhbmRvbm7pIGF2YW50IGQn6W1ldHRyZSB1bmUgcmVxdep0ZSBjb21wbOh0ZS4gSWwgZXN0CisgICAgICAgICAgdHLocyBwcm9iYWJsZSBxdWUgbGEgcmVxdep0ZSBhaXQg6XTpIHRhcOllIOAgbGEgbWFpbiBkYW5zIHVuIGNsaWVudAorICAgICAgICAgIHRlbG5ldCBldCBhYm9ydOllIHRyb3AgdPR0LgorCisgICAgICBjUiAgTGUgdGVtcHMgaW1wYXJ0aSBhdSBjbGllbnQgYSBleHBpcukgYXZhbnQgculjZXB0aW9uIGQndW5lIHJlcXXqdGUKKyAgICAgICAgICBjb21wbOh0ZS4gQ2VjaSBlc3QgcGFyZm9pcyBjYXVz6SBwYXIgdW4gcGFyYW3odHJlIFRDUCBNU1MgdHJvcCDpbGV26QorICAgICAgICAgIHN1ciBsZSBjbGllbnQgcG91ciBkZXMgculzZWF1eCBQUFBvRSBzdXIgQURTTCBxdWkgbmUgcGV1dmVudCBwYXMKKyAgICAgICAgICB0cmFuc3BvcnRlciBkZXMgcGFxdWV0cyBlbnRpZXJzLCBvdSBwYXIgZGVzIGNsaWVudHMgcXVpIOludm9pZW50IGRlcworICAgICAgICAgIHJlcXXqdGVzIOAgbGEgbWFpbiBldCBuZSB0YXBlbnQgcGFzIGFzc2V6IHZpdGUuCisKKyAgICAgIFNDICBMZSBzZXJ2ZXVyIGEgZXhwbGljaXRlbWVudCByZWZ1c+kgbGEgY29ubmV4aW9uIChsZSBwcm94eSBhIHJl53UgdW4KKyAgICAgICAgICBSU1QgVENQIG91IHVuIG1lc3NhZ2UgSUNNUCBlbiByZXRvdXIpLiBEYW5zIGNlcnRhaW5zIGNhcywgY2VsYSBwZXV0CisgICAgICAgICAg6nRyZSBsYSBjb3VjaGUgculzZWF1IHF1aSBpbmRpcXVlIGF1IHByb3h5IHF1ZSBsZSBzZXJ2ZXVyIG4nZXN0IHBhcworICAgICAgICAgIGpvaWduYWJsZSAocC5leDogcGFzIGRlIHJvdXRlLCBwYXMgZGUgculwb25zZSBBUlAgZW4gbG9jYWwsIGV0Yy4uLikKKworICAgICAgc0MgIExhIGNvbm5leGlvbiBhdSBzZXJ2ZXVyIG4nYSBwYXMgcHUgcyfpdGFibGlyIGRhbnMgbGUgdGVtcHMgaW1wYXJ0aS4KKworICAgICAgUEMgIExlIHByb3h5IGEgcmVmdXPpIGQn6XRhYmxpciB1bmUgY29ubmV4aW9uIGF1IHNlcnZldXIgcGFyY2UgcXVlIGxlCisgICAgICAgICAgbm9tYnJlIGRlIGNvbm5leGlvbnMgYSBhdHRlaW50IGxhIGxpbWl0ZSAnbWF4Y29ubicgKGdsb2JhbCBvdSBkZQorICAgICAgICAgIGwnaW5zdGFuY2UpLiBMZSBwYXJhbeh0cmUgJ21heGNvbm4nIGRlIGwnaW5zdGFuY2UgcG91cnJhaXQg6nRyZQorICAgICAgICAgIGF1Z21lbnTpLCB0b3V0IGNvbW1lIGxlIHBhcmFt6HRyZSAnbWF4Y29ubicgZ2xvYmFsLgorCisgICAgICBSQyAgVW5lIHJlc3NvdXJjZSBsb2NhbGUgYSDpdOkg6XB1aXPpZSAobeltb2lyZSwgc29ja2V0cywgcG9ydHMgc291cmNlKSwKKyAgICAgICAgICBlbXDqY2hhbnQgbGEgY29ubmV4aW9uIGF1IHNlcnZldXIgZGUgcyfpdGFibGlyLiBMZXMgbG9ncyBkJ2VycmV1cnMKKyAgICAgICAgICBkaXJvbnQgcHLpY2lz6W1lbnQgY2UgcXVpIG1hbnF1YWl0LiBEYW5zIHRvdXMgbGVzIGNhcywgbGUgc2V1bCByZW3oZGUKKyAgICAgICAgICBjb25zaXN0ZSDgIGFmZmluZXIgbGUgcGFyYW3pdHJhZ2Ugc3lzdOhtZS4KKworICAgICAgY0ggIExlIHRlbXBzIGltcGFydGkgYXUgY2xpZW50IGEgZXhwaXLpIGF1IGNvdXJzIGQndW5lIHJlcXXqdGUgUE9TVC4gQ2VjaQorICAgICAgICAgIGVzdCBwYXJmb2lzIGNhdXPpIHBhciB1biBwYXJhbeh0cmUgVENQIE1TUyB0cm9wIOlsZXbpIHN1ciBsZSBjbGllbnQKKyAgICAgICAgICBwb3VyIGRlcyBy6XNlYXV4IFBQUG9FIHN1ciBBRFNMIHF1aSBuZSBwZXV2ZW50IHBhcyB0cmFuc3BvcnRlciBkZXMKKyAgICAgICAgICBwYXF1ZXRzIGVudGllcnMuCisKKyAgICAgIFNIICBMZSBzZXJ2ZXVyIGEgYWJvcnTpIGJydXRhbGVtZW50IGFsb3JzIHF1J2lsIGRldmFpdCBlbnZveWVyIHNlcworICAgICAgICAgIGVuLXTqdGVzLiBFbiBn6W7pcmFsLCBjZWxhIGluZGlxdWUgcXUnaWwgYSBjcmFzaOkuCisKKyAgICAgIHNIICBMZSBzZXJ2ZXVyIG4nYSBwYXMgcHUgculwb25kcmUgZHVyYW50IGxlIHRlbXBzIGltcGFydGksIGNlIHF1aSBtb250cmUKKyAgICAgICAgICBkZXMgdHJhbnNhY3Rpb25zIHRyb3AgbG9uZ3VlcywgcHJvYmFibGVtZW50IGNhdXPpZXMgcGFyIHVuIGJhY2stZW5kCisgICAgICAgICAgc2F0dXLpLiBMZXMgc2V1bGVzIHNvbHV0aW9ucyBzb250IGRlIGNvcnJpZ2VyIGxlIHByb2Js6G1lIHN1cgorICAgICAgICAgIGwnYXBwbGljYXRpb24sIGQnYWNjcm/udHJlIGxlIHBhcmFt6HRyZSAnc3J2dGltZW91dCcgcG91ciBzdXBwb3J0ZXIKKyAgICAgICAgICBkZXMgYXR0ZW50ZXMgcGx1cyBsb25ndWVzIGF1IHJpc3F1ZSBxdWUgbGVzIGNsaWVudHMgYWJhbmRvbm5lbnQg4AorICAgICAgICAgIGxldXIgdG91ciwgb3UgYmllbiBkJ2Fqb3V0ZXIgZGVzIHNlcnZldXJzLgorICAgICAgCisgICAgICBQUiAgTGUgcHJveHkgYSBibG9xdekgdW5lIHJlcXXqdGUgZHUgY2xpZW50LCBzb2l0IOAgY2F1c2UgZCd1bmUgc3ludGF4ZQorICAgICAgICAgIEhUVFAgaW52YWxpZGUsIGF1cXVlbCBjYXMgaWwgYSByZW52b3npIHVuZSBlcnJldXIgSFRUUCA0MDAgYXUgY2xpZW50LAorICAgICAgICAgIHNvaXQg4CBjYXVzZSBkJ3VuZSByZXF16nRlIHZhbGlkYW50IHVuIGZpbHRyZSBkJ2ludGVyZGljdGlvbiwgYXVxdWVsCisgICAgICAgICAgY2FzIGxlIHByb3h5IGEgcmVudm956SB1bmUgZXJyZXVyIEhUVFAgNDAzLgorCisgICAgICBQSCAgTGUgcHJveHkgYSBibG9xdekgbGEgculwb25zZSBkdSBzZXJ2ZXVyIHBhcmNlIHF1J2VsbGUg6XRhaXQgaW52YWxpZGUsCisgICAgICAgICAgaW5jb21wbOh0ZSwgZGFuZ2VyZXVzZSAoJ2NhY2hlIGNvbnRyb2wnKSwgb3UgcGFyY2UgcXUnZWxsZSB2YWxpZGFpdAorICAgICAgICAgIHVuIGZpbHRyZSBkZSBz6WN1cml06S4gRGFucyB0b3VzIGxlcyBjYXMsIHVuZSBlcnJldXIgSFRUUCA1MDIgZXN0CisgICAgICAgICAgcmVudm956WUgYXUgY2xpZW50LgorCisgICAgICBjRCAgTGUgY2xpZW50IG4nYSBwYXMgbHUgZGUgZG9ubullcyBwZW5kYW50IGxlIHRlbXBzIHF1aSBsdWkg6XRhaXQKKyAgICAgICAgICBpbXBhcnRpLiBDZWNpIGVzdCBzb3V2ZW50IGNhdXPpIHBhciBkZXMgcHJvYmzobWVzIHLpc2VhdSBj9HTpIGNsaWVudC4KKworICAgICAgQ0QgIExlIGNsaWVudCBhIGFib3J06SBzYSBjb25uZWN0aW9uIGRlIG1hbmnocmUgaW5hdHRlbmR1ZSBwZW5kYW50IGxlCisgICAgICAgICAgdHJhbnNmZXJ0IGRlcyBkb25u6WVzLiBDZWNpIGVzdCBwcm92b3F16SBzb2l0IHBhciBsZSBjcmFzaCBkJ3VuCisgICAgICAgICAgbmF2aWdhdGV1ciwgb3UgcGFyIHVuZSBzZXNzaW9uIGVuIEhUVFAga2VlcC1hbGl2ZSBlbnRyZSBsZSBzZXJ2ZXVyCisgICAgICAgICAgZXQgbGUgY2xpZW50IHRlcm1pbullIGVuIHByZW1pZXIgcGFyIGxlIGNsaWVudC4KKworICAgICAgc0QgIExlIHNlcnZldXIgbidhIHJpZW4gZmFpdCBkdXJhbnQgbGUgdGVtcHMgaW1wYXJ0aSBwYXIgbGUgcGFyYW3odHJlCisgICAgICAgICAgJ3NydnRpbWVvdXQnLiBDZWNpIGVzdCBzb3V2ZW50IGNhdXPpIHBhciBkZXMgdGltZW91dHMgdHJvcCBjb3VydHMKKyAgICAgICAgICBzdXIgZGVzIOlxdWlwZW1lbnRzIGRlIG5pdmVhdSA0IChmaXJld2FsbHMsIHLpcGFydGl0ZXVycyBkZSBjaGFyZ2UpCisgICAgICAgICAgc2l0delzIGVudHJlIGxlIHByb3h5IGV0IGxlIHNlcnZldXIuCisKKzQuMi41KSBDYXJhY3TocmVzIG5vbi1pbXByaW1hYmxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitEZXB1aXMgbGEgdmVyc2lvbiAxLjEuMjksIGxlcyBjYXJhY3TocmVzIG5vbi1pbXByaW1hYmxlcyBuZSBzb250IHBsdXMgZW52b3npcwordGVscyBxdWVscyBkYW5zIGxlcyBsaWduZXMgZGUgbG9ncywgbWFpcyBpbnNjcml0cyBzb3VzIGxhIGZvcm1lIGRlIGRldXggY2hpZmZyZXMKK2hleGFk6WNpbWF1eCwgcHLpZml46XMgZHUgY2FyYWN06HJlIGQn6WNoYXBwZW1lbnQgJyMnLiBMZXMgc2V1bHMgY2FyYWN06HJlcworZG9y6W5hdmFudCBsb2d16XMgdGVscyBxdWVscyBzb250IGNvbXByaXMgZW50cmUgMzIgZXQgMTI2LiBCaWVuIOl2aWRlbW1lbnQsIGxlCitjYXJhY3TocmUgZCfpY2hhcHBlbWVudCAnIycgZXN0IGx1aS1t6m1lIGVuY29k6SBhZmluIGRlIGxldmVyIGwnYW1iaWd1aXTpLiBJbCBlbgorZXN0IGRlIG3qbWUgcG91ciBsZSBjYXJhY3TocmUgJyInLCBhaW5zaSBxdWUgbGVzIGNhcmFjdOhyZXMgJ3snLCAnfCcgZXQgJ30nIHBvdXIKK2xlcyBlbi106nRlcy4KKworNC4yLjYpIENhcHR1cmUgZCdlbi106nRlcyBIVFRQIGV0IGRlIGNvb2tpZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMYSB2ZXJzaW9uIDEuMS4yMyBhIGFwcG9ydOkgbGEgY2FwdHVyZSBkZXMgY29va2llcywgZXQgbGEgdmVyc2lvbiAxLjEuMjkgbGEKK2NhcHR1cmUgZCdlbi106nRlcy4gVG91dCBjZWNpIGVzdCBlZmZlY3R16SBlbiB1dGlsaXNhbnQgbGUgbW90LWNs6SAnY2FwdHVyZScuCisKK0xlcyBjYXB0dXJlcyBkZSBjb29raWVzIGZhY2lsaXRlbnQgbGUgc3VpdmkgZXQgbGEgcmVjb25zdGl0dXRpb24gZCd1bmUgc2Vzc2lvbgordXRpbGlzYXRldXIuIExhIHN5bnRheGUgZXN0IGxhIHN1aXZhbnRlIDoKIAogICAgIGNhcHR1cmUgY29va2llIDxwculmaXhlX2Nvb2tpZT4gbGVuIDxsb25ndWV1cl9jYXB0dXJlPgogCitDZWNpIGFjdGl2ZXJhIGxhIGNhcHR1cmUgZGUgY29va2llcyDgIGxhIGZvaXMgZGFucyBsZXMgcmVxdep0ZXMgZXQgZGFucyBsZXMKK3LpcG9uc2VzLiBEZSBjZXR0ZSBtYW5p6HJlLCBpbCBkZXZpZW50IGZhY2lsZSBkZSBk6XRlY3RlciBsb3JzcXUndW4gdXRpbGlzYXRldXIKK2Jhc2N1bGUgc3VyIHVuZSBub3V2ZWxsZSBzZXNzaW9uIHBhciBleGVtcGxlLCBjYXIgbGUgc2VydmV1ciBsdWkgculhc3NpZ25lcmEgdW4KK25vdXZlYXUgY29va2llLgorCiBMZSBwcmVtaWVyIGNvb2tpZSBkb250IGxlIG5vbSBjb21tZW5jZXJhIHBhciA8cHLpZml4ZV9jb29raWU+IHNlcmEgY2FwdHVy6SwgZXQKIHRyYW5zbWlzIHNvdXMgbGEgZm9ybWUgIk5PTT12YWxldXIiLCBzYW5zIHRvdXRlZm9pcywgZXhj6WRlciA8bG9uZ3VldXJfY2FwdHVyZT4KIGNhcmFjdOhyZXMgKDY0IGF1IG1heGltdW0pLiBMb3JzcXVlIGxlIG5vbSBkdSBjb29raWUgZXN0IGZpeGUgZXQgY29ubnUsIG9uIHBldXQKQEAgLTEyOTcsMTEyICsxNTQ1LDEwMiBAQAogRGFucyBsZXMgbG9ncywgbGUgY2hhbXAgcHLpY+lkYW50IGwnaW5kaWNhdGV1ciBkZSBjb21wbOl0dWRlIGNvbnRpZW50IGxlIGNvb2tpZQogcG9zaXRpb25u6SBwYXIgbGUgc2VydmV1ciwgcHLpY+lk6SBkdSBjb29raWUgcG9zaXRpb25u6SBwYXIgbGUgY2xpZW50LiBDaGFjdW4KIGRlIGNlcyBjaGFtcHMgZXN0IHJlbXBsYWPpIHBhciBsZSBzaWduZSAiLSIgbG9yc3F1J2F1Y3VuIGNvb2tpZSBuJ2VzdCBmb3VybmkKLXBhciBsZSBjbGllbnQgb3UgbGUgc2VydmV1ci4KK3BhciBsZSBjbGllbnQgb3UgbGUgc2VydmV1ciwgb3UgbG9yc3F1ZSBsJ29wdGlvbiBlc3QgZOlzYWN0aXbpZS4uCisKK0xlcyBjYXB0dXJlcyBkJ2VuLXTqdGVzIG9udCB1biBy9GxlIGNvbXBs6HRlbWVudCBkaWZm6XJlbnQuIEVsbGVzIHNvbnQgdXRpbGVzCitwb3VyIHN1aXZyZSB1biBpZGVudGlmaWFudCBkZSByZXF16nRlIGdsb2JhbGVtZW50IHVuaXF1ZSBwb3NpdGlvbm7pIHBhciB1bgorYXV0cmUgcHJveHkgZW4gYW1vbnQsIHBvdXIgam91cm5hbGlzZXIgbGVzIG5vbXMgZGUgc2VydmV1cnMgdmlydHVlbHMsIGxlcyB0eXBlcworZGUgY2xpZW50cyB3ZWIsIGxhIGxvbmd1ZXVyIGRlcyBQT1NULCBsZXMgJ3JlZmVycmVycycsIGV0Yy4gRGFucyBsYSBy6XBvbnNlLCBvbgorcGV1dCBjaGVyY2hlciBkZXMgaW5mb3JtYXRpb25zIHJlbGF0aXZlcyDgIGxhIGxvbmd1ZXVyIGFubm9uY+llIGRlIGxhIHLpcG9uc2UsCitsZSBmb25jdGlvbm5lbWVudCBhdHRlbmR1IGR1IGNhY2hlLCBvdSBlbmNvcmUgbGEgbG9jYWxpc2F0aW9uIGQndW4gb2JqZXQgZW4gY2FzCitkZSByZWRpcmVjdGlvbi4gVG91dCBjb21tZSBwb3VyIGxlcyBjYXB0dXJlcyBkZSBjb29raWVzLCBpbCBlc3QgcG9zc2libGUKK2QnaW5jbHVyZSBsZXMgZW4tdOp0ZXMgZGUgcmVxdep0ZXMgZXQgZGUgculwb25zZSBzaW11bHRhbultZW50LiBMYSBzeW50YXhlIGVzdAorbGEgc3VpdmFudGUgOgorCisgICAgY2FwdHVyZSByZXF1ZXN0ICBoZWFkZXIgPG5vbT4gbGVuIDxsb25ndWV1ciBtYXg+CisgICAgY2FwdHVyZSByZXNwb25zZSBoZWFkZXIgPG5vbT4gbGVuIDxsb25ndWV1ciBtYXg+CisKK05vdGU6IExlcyBub21zIGQnZW4tdOp0ZXMgbmUgc29udCBwYXMgc2Vuc2libGVzIOAgbGEgY2Fzc2UuCiAKLTQuMi41KSBFeGVtcGxlcyBkZSBsb2dzCitFeGVtcGxlczoKKy0tLS0tLS0tLQorICAgICMgY29uc2VydmVyIGxlIG5vbSBkdSBzZXJ2ZXVyIHZpcnR1ZWwgYWNj6WTpIHBhciBsZSBjbGllbnQKKyAgICBjYXB0dXJlIHJlcXVlc3QgIGhlYWRlciBIb3N0IGxlbiAyMAorICAgICMgbm90ZXIgbGEgbG9uZ3VldXIgZGVzIGRvbm7pZXMgZW52b3npZXMgZGFucyB1biBQT1NUCisgICAgY2FwdHVyZSByZXF1ZXN0ICBoZWFkZXIgQ29udGVudC1MZW5ndGggbGVuIDEwCisKKyAgICAjIG5vdGVyIGxlIGZvbmN0aW9ubmVtZW50IGF0dGVuZHUgZHUgY2FjaGUgcGFyIGxlIHNlcnZldXIKKyAgICBjYXB0dXJlIHJlc3BvbnNlIGhlYWRlciBDYWNoZS1Db250cm9sIGxlbiA4CisgICAgIyBub3RlciBsJ1VSTCBkZSByZWRpcmVjdGlvbgorICAgIGNhcHR1cmUgcmVzcG9uc2UgaGVhZGVyIExvY2F0aW9uIGxlbiAyMAorCitMZXMgZW4tdOp0ZXMgbm9uIHRyb3V26XMgc29udCBsb2d16XMg4CB2aWRlLCBldCBzaSB1biBlbi106nRlIGFwcGFyYWl0IHBsdXNpZXVycworZm9pcywgc2V1bGUgbGEgZGVybmnocmUgb2NjdXJlbmNlIHNlcmEgY29uc2VydullLiBMZXMgZW4tdOp0ZXMgZGUgcmVxdep0ZSBzb250CityZWdyb3Vw6XMgZW50cmUgZGV1eCBhY2NvbGFkZXMgJ3snIGV0ICd9JyBkYW5zIGwnb3JkcmUgZGUgbGV1ciBk6WNsYXJhdGlvbiwgZXQKK2NoYWN1biBz6XBhculzIHBhciB1bmUgYmFycmUgdmVydGljYWxlICd8Jywgc2FucyBhdWN1biBlc3BhY2UuIExlcyBlbi106nRlcyBkZQorculwb25zZSBzb250IHBy6XNlbnTpcyBkZSBsYSBt6m1lIG1hbmnocmUsIG1haXMgYXBy6HMgdW4gZXNwYWNlIHN1aXZhbnQgbGUgYmxvYworZCdlbi106nRlIGRlIHJlcXXqdGUuIExlIHRvdXQgcHLpY+hkZSBsYSByZXF16nRlIEhUVFAuIEV4ZW1wbGUgOgorCisgIENvbmZpZzoKKworICAgIGNhcHR1cmUgcmVxdWVzdCAgaGVhZGVyIEhvc3QgbGVuIDIwCisgICAgY2FwdHVyZSByZXF1ZXN0ICBoZWFkZXIgQ29udGVudC1MZW5ndGggbGVuIDEwCisgICAgY2FwdHVyZSByZXF1ZXN0ICBoZWFkZXIgUmVmZXJlciBsZW4gMjAKKyAgICBjYXB0dXJlIHJlc3BvbnNlIGhlYWRlciBTZXJ2ZXIgbGVuIDIwCisgICAgY2FwdHVyZSByZXNwb25zZSBoZWFkZXIgQ29udGVudC1MZW5ndGggbGVuIDEwCisgICAgY2FwdHVyZSByZXNwb25zZSBoZWFkZXIgQ2FjaGUtQ29udHJvbCBsZW4gOAorICAgIGNhcHR1cmUgcmVzcG9uc2UgaGVhZGVyIFZpYSBsZW4gMjAKKyAgICBjYXB0dXJlIHJlc3BvbnNlIGhlYWRlciBMb2NhdGlvbiBsZW4gMjAKKworICBMb2cgOgorCisgICAgQXVnICA5IDIwOjI2OjA5IGxvY2FsaG9zdCBoYXByb3h5WzIwMjJdOiAxMjcuMC4wLjE6MzQwMTQgWzA5L0F1Zy8yMDA0OjIwOjI2OjA5XSByZWxhaXMtaHR0cCBuZXRjYWNoZSAwLzAvMTYyLysxNjIgMjAwICszNTAgLSAtIC0tLS0ge2ZyLmFkc2VydmVyLnlhaG9vLmNvfHxodHRwOi8vZnIuZjQxNi5tYWlsLn0ge3w4NjR8cHJpdmF0ZXx8fSAiR0VUIGh0dHA6Ly9mci5hZHNlcnZlci55YWhvby5jb20vIgorICAgIEF1ZyAgOSAyMDozMDo0NiBsb2NhbGhvc3QgaGFwcm94eVsyMDIyXTogMTI3LjAuMC4xOjM0MDIwIFswOS9BdWcvMjAwNDoyMDozMDo0Nl0gcmVsYWlzLWh0dHAgbmV0Y2FjaGUgMC8wLzE4Mi8rMTgyIDIwMCArMjc5IC0gLSAtLS0tIHt3Lm9kcy5vcmd8fH0ge0Zvcm1pbHV4LzAuMS44fDM0OTV8fHx9ICJHRVQgaHR0cDovL3cub2RzLm9yZy9zeXRhZGluLmh0bWwgSFRUUC8xLjEiIAorICAgIEF1ZyAgOSAyMDozMDo0NiBsb2NhbGhvc3QgaGFwcm94eVsyMDIyXTogMTI3LjAuMC4xOjM0MDI4IFswOS9BdWcvMjAwNDoyMDozMDo0Nl0gcmVsYWlzLWh0dHAgbmV0Y2FjaGUgMC8yLzEyNi8rMTI4IDIwMCArMjIzIC0gLSAtLS0tIHt3d3cuaW5mb3RyYWZpYy5jb218fGh0dHA6Ly93Lm9kcy5vcmcvc3l0fSB7QXBhY2hlLzIuMC40MCAoUmVkIEh8OTA2OHx8fH0gIkdFVCBodHRwOi8vd3d3LmluZm90cmFmaWMuY29tL2ltYWdlcy9saXZlL2NhcnRlc2lkZi9ncmFuZGVzL2lkZl9uZS5wbmcgSFRUUC8xLjEiIAorCis0LjIuNykgRXhlbXBsZXMgZGUgbG9ncwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaGFwcm94eVs2NzRdOiAxMjcuMC4wLjE6MzMzMTkgWzE1L09jdC8yMDAzOjA4OjMxOjU3XSByZWxhaXMtaHR0cCBTcnYxIDY1NTkvNy8xNDcvNjcyMyAyMDAgMjQzIC0gLSAtLS0tICJIRUFEIC8gSFRUUC8xLjAiCistIGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzE5IFsxNS9PY3QvMjAwMzowODozMTo1N10gcmVsYWlzLWh0dHAgU3J2MSA2NTU5LzcvMTQ3LzY3MjMgMjAwIDI0MyAtIC0gLS0tLSAzLzUgIkhFQUQgLyBIVFRQLzEuMCIKICAgPT4gcmVxdep0ZSBsb25ndWUgKDYuNXMpIHNhaXNpZSDgIGxhIG1haW4gYXZlYyB1biBjbGllbnQgdGVsbmV0LiBMZSBzZXJ2ZXVyIGEKICAgICAgculwb25kdSBlbiAxNDcgbXMgZXQgbGEgc2Vzc2lvbiBzJ2VzdCB0ZXJtaW7pZSBub3JtYWxlbWVudCAoJy0tLS0nKQogCi0tIGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzIwIFsxNS9PY3QvMjAwMzowODozMjoxN10gcmVsYWlzLWh0dHAgU3J2MSA5LzcvMTQvKzMwIDIwMCArMjQzIC0gLSAtLS0tICJHRVQgL2ltYWdlLmlzbyBIVFRQLzEuMCIKKy0gaGFwcm94eVs2NzRdOiAxMjcuMC4wLjE6MzMzMjAgWzE1L09jdC8yMDAzOjA4OjMyOjE3XSByZWxhaXMtaHR0cCBTcnYxIDkvNy8xNC8rMzAgMjAwICsyNDMgLSAtIC0tLS0gMy8zICJHRVQgL2ltYWdlLmlzbyBIVFRQLzEuMCIKICAgPT4gcmVxdep0ZSBwb3VyIHVuIGxvbmcgdHJhbnNmZXJ0LiBMJ29wdGlvbiAnbG9nYXNhcCcg6XRhaXQgc3DpY2lmaellIGRvbmMgbGUKICAgICAgbG9nIGEg6XTpIGfpbuly6SBqdXN0ZSBhdmFudCBsZSB0cmFuc2ZlcnQgZGUgZG9ubullcy4gTGUgc2VydmV1ciBhIHLpcG9uZHUKLSAgICAgZW4gMTQgbXMsIDI0MyBvY3RldHMgZCdlbnTqdGVzIG9udCDpdOkgdHJhbnNm6XLpcyBhdSBjbGllbnQsIGV0IGxlIHRlbXBzCisgICAgIGVuIDE0IG1zLCAyNDMgb2N0ZXRzIGQnZW4tdOp0ZXMgb250IOl06SB0cmFuc2bpculzIGF1IGNsaWVudCwgZXQgbGUgdGVtcHMKICAgICAgdG90YWwgZW50cmUgbCdhY2NlcHQoKSBldCBsZSBwcmVtaWVyIG9jdGV0IGRlIGRvbm7pZSBlc3QgZGUgMzAgbXMuCiAKLS0gaGFwcm94eVs2NzRdOiAxMjcuMC4wLjE6MzMzMjAgWzE1L09jdC8yMDAzOjA4OjMyOjE3XSByZWxhaXMtaHR0cCBTcnYxIDkvNy8xNC8zMCA1MDIgMjQzIC0gLSBQSC0tICJHRVQgL2NnaS1iaW4vYnVnLmNnaT8gSFRUUC8xLjAiCistIGhhcHJveHlbNjc0XTogMTI3LjAuMC4xOjMzMzIwIFsxNS9PY3QvMjAwMzowODozMjoxN10gcmVsYWlzLWh0dHAgU3J2MSA5LzcvMTQvMzAgNTAyIDI0MyAtIC0gUEgtLSAyLzMgIkdFVCAvY2dpLWJpbi9idWcuY2dpPyBIVFRQLzEuMCIKICAgPT4gbGUgcHJveHkgYSBibG9xdekgdW5lIHLpcG9uc2UgZHUgc2VydmV1ciBzb2l0IOAgY2F1c2UgZCd1biBmaWx0cmUgJ3JzcGRlbnknCiAgICAgIG91ICdyc3BpZGVueScsIHNvaXQgcGFyY2UgcXUnaWwgYSBk6XRlY3TpIHVuIHJpc3F1ZSBkZSBmdWl0ZSBzZW5zaWJsZQogICAgICBkJ2luZm9ybWF0aW9ucyByaXNxdWFudCBkJ+p0cmUgY2FjaOllcy4gRGFucyBjZSBjYXMsIGxhIHLpcG9uc2UgZXN0CiAgICAgIHJlbXBsYWPpZSBwYXIgJzUwMiBiYWQgZ2F0ZXdheScuCiAKLS0gaGFwcm94eVsxODExM106IDEyNy4wLjAuMTozNDU0OCBbMTUvT2N0LzIwMDM6MTU6MTg6NTVdIHJlbGFpcy1odHRwIDxOT1NSVj4gLTEvLTEvLTEvODQ5MCAtMSAwIC0gLSBDUi0tICIiIAorLSBoYXByb3h5WzE4MTEzXTogMTI3LjAuMC4xOjM0NTQ4IFsxNS9PY3QvMjAwMzoxNToxODo1NV0gcmVsYWlzLWh0dHAgPE5PU1JWPiAtMS8tMS8tMS84NDkwIC0xIDAgLSAtIENSLS0gMi8yICIiIAogICA9PiBMZSBjbGllbnQgbidhIHBhcyBlbnZveekgc2EgcmVxdep0ZSBldCBhIHJlZmVybekgbGEgY29ubmV4aW9uIGx1aS1t6m1lCi0gICAgICgnQy0tLScpIGF1IGJvdXQgZGUgOC41cywgYWxvcnMgcXVlIGxlIHJlbGFpcyBhdHRlbmRhaXQgbCdlbnTqdGUgKCctUi0tJykuCisgICAgICgnQy0tLScpIGF1IGJvdXQgZGUgOC41cywgYWxvcnMgcXVlIGxlIHJlbGFpcyBhdHRlbmRhaXQgbCdlbi106nRlICgnLVItLScpLgogICAgICBBdWN1bmUgY29ubmV4aW9uIG4nYSDpdOkgZW52b3npZSB2ZXJzIGxlIHNlcnZldXIuCiAKLS0gaGFwcm94eVsxODExM106IDEyNy4wLjAuMTozNDU0OSBbMTUvT2N0LzIwMDM6MTU6MTk6MDZdIHJlbGFpcy1odHRwIDxOT1NSVj4gLTEvLTEvLTEvNTAwMDEgNDA4IDAgLSAtIGNSLS0gIiIgCistIGhhcHJveHlbMTgxMTNdOiAxMjcuMC4wLjE6MzQ1NDkgWzE1L09jdC8yMDAzOjE1OjE5OjA2XSByZWxhaXMtaHR0cCA8Tk9TUlY+IC0xLy0xLy0xLzUwMDAxIDQwOCAwIC0gLSBjUi0tIDIvMiAiIiAKICAgPT4gTGUgY2xpZW50IG4nYSBwYXMgZW52b3npIHNhIHJlcXXqdGUgZXQgc29uIHRpbWUtb3V0IGEgZXhwaXLpICgnYy0tLScpIGF1Ci0gICAgIGJvdXQgZGUgNTBzLCBhbG9ycyBxdWUgbGUgcmVsYWlzIGF0dGVuZGFpdCBsJ2VudOp0ZSAoJy1SLS0nKS4gQXVjdW5lCisgICAgIGJvdXQgZGUgNTBzLCBhbG9ycyBxdWUgbGUgcmVsYWlzIGF0dGVuZGFpdCBsJ2VuLXTqdGUgKCctUi0tJykuIEF1Y3VuZQogICAgICBjb25uZXhpb24gbidhIOl06SBlbnZveellIHZlcnMgbGUgc2VydmV1ciwgbWFpcyBsZSByZWxhaXMgYSB0b3V0IGRlIG3qbWUKICAgICAgcHUgcmVudm95ZXIgdW4gbWVzc2FnZSA0MDggYXUgY2xpZW50LgogCi0tIGhhcHJveHlbMTg5ODldOiAxMjcuMC4wLjE6MzQ1NTAgWzE1L09jdC8yMDAzOjE1OjI0OjI4XSByZWxhaXMtdGNwIFNydjEgMC81MDA3IDAgY0QgCi0gID0+IGxvZyBlbiBtb2RlICd0Y3Bsb2cnLiBFeHBpcmF0aW9uIGR1IHRpbWUtb3V0IGP0dOkgY2xpZW50ICgnYy0tLS0nKSBhdSBib3V0Ci0gICAgIGRlIDVzLgorLSBoYXByb3h5WzE4OTg5XTogMTI3LjAuMC4xOjM0NTUwIFsxNS9PY3QvMjAwMzoxNToyNDoyOF0gcmVsYWlzLXRjcCBTcnYxIDAvNTAwNyAwIGNECisgID0+IGxvZyBlbiBtb2RlICd0Y3Bsb2cnLiBFeHBpcmF0aW9uIGR1IHRpbWUtb3V0IGP0dOkgY2xpZW50ICgnY0QnKSBhdSBib3V0IGRlCisgICAgIDVzLgogCi0tIGhhcHJveHlbMTg5ODldOiAxMC4wLjAuMTozNDU1MiBbMTUvT2N0LzIwMDM6MTU6MjY6MzFdIHJlbGFpcy1odHRwIFNydjEgMzE4My8tMS8tMS8xMTIxNSA1MDMgMCAtIC0gU0MtLSAiSEVBRCAvIEhUVFAvMS4wIiAKKy0gaGFwcm94eVsxODk4OV06IDEwLjAuMC4xOjM0NTUyIFsxNS9PY3QvMjAwMzoxNToyNjozMV0gcmVsYWlzLWh0dHAgU3J2MSAzMTgzLy0xLy0xLzExMjE1IDUwMyAwIC0gLSBTQy0tIDIwMi8yMDUgIkhFQUQgLyBIVFRQLzEuMCIgCiAgID0+IExhIHJlcXXqdGUgY2xpZW50IG1ldCAzcyDgIGVudHJlciAocGV1dC3qdHJlIHVuIHByb2Js6G1lIHLpc2VhdSksIGV0IGxhCiAgICAgIGNvbm5leGlvbiAoJ1NDLS0nKSB2ZXJzIGxlIHNlcnZldXIg6WNob3VlIGF1IGJvdXQgZGUgNCB0ZW50YXRpdmVzIGRlIDIKLSAgICAgc2Vjb25kZXMgKHJldHJpZXMgMyBkYW5zIGxhIGNvbmYpLCBwdWlzIHVuIGNvZGUgNTAzIGVzdCByZXRvdXJu6SBhdQotICAgICBjbGllbnQuCi0KLTQuMi42KSBDYXJhY3TocmVzIG5vbi1pbXByaW1hYmxlcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EZXB1aXMgbGEgdmVyc2lvbiAxLjEuMjksIGxlcyBjYXJhY3TocmVzIG5vbi1pbXByaW1hYmxlcyBuZSBzb250IHBsdXMgZW52b3npcwotdGVscyBxdWVscyBkYW5zIGxlcyBsaWduZXMgZGUgbG9ncywgbWFpcyBpbnNjcml0cyBzb3VzIGxhIGZvcm1lIGRlIGRldXgKLWNoaWZmcmVzIGhleGFk6WNpbWF1eCwgcHLpZml46XMgZHUgY2FyYWN06HJlIGQn6WNoYXBwZW1lbnQgJyMnLiBMZXMgc2V1bHMKLWNhcmFjdOhyZXMgZG9y6W5hdmFudCBsb2d16XMgdGVscyBxdWVscyBzb250IGNvbXByaXMgZW50cmUgMzIgZXQgMTI2LiBCaWVuCi3pdmlkZW1tZW50LCBsZSBjYXJhY3TocmUgZCfpY2hhcHBlbWVudCAnIycgZXN0IGx1aS1t6m1lIGVuY29k6SBhZmluIGRlIGxldmVyCi1sJ2FtYmlndWl06S4gSWwgZW4gZXN0IGRlIG3qbWUgcG91ciBsZSBjYXJhY3TocmUgJyInLCBhaW5zaSBxdWUgbGVzIGNhcmFjdOhyZXMKLSd7JywgJ3wnIGV0ICd9JyBwb3VyIGxlcyBlbi106nRlcy4KLQotNC4yLjcpIEpvdXJuYWxpc2F0aW9uIGQnZW4tdOp0ZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1EZXB1aXMgbGEgdmVyc2lvbiAxLjEuMjksIGlsIGVzdCBk6XNvcm1haXMgcG9zc2libGUgZGUgY29uc2VydmVyIGRlcyBleHRyYWl0cwotZCdlbi106nRlcyBIVFRQIGRhbnMgbGVzIGxvZ3MuIE9uIHBldXQgYXVzc2kgYmllbiBleHRyYWlyZSBkZXMgZW4tdOp0ZXMgZGUgbGEKLXJlcXXqdGUgcXVlIGRlIGxhIHLpcG9uc2UuIEMnZXN0IHBhcnRpY3VsaehyZW1lbnQgcHJhdGlxdWUgcG91ciBzYXZvaXIg4CBxdWVsCi1zZXJ2ZXVyIHZpcnR1ZWwgdW5lIHJlcXXqdGUgcydhZHJlc3NhaXQsIHBvdXIgY29ubmFpdHJlIGxhIGxvbmd1ZXVyIGRlcyBkb25u6WVzCi3pbWlzZXMgbG9ycyBkJ3VuIFBPU1QsIG91IGVuY29yZSBsb2d1ZXIgdW4gaWRlbnRpZmlhbnQgdW5pcXVlIGRlIHJlcXXqdGUKLXBvc2l0aW9ubukgZW4gYW1vbnQuIERhbnMgbGEgculwb25zZSwgb24gcGV1dCBjaGVyY2hlciDpZ2FsZW1lbnQg4CBjb25zZXJ2ZXIKLWRlcyBpbmZvcm1hdGlvbnMgcmVsYXRpdmVzIOAgbGEgdGFpbGxlIGFubm9uY+llIGRlIGxhIHLpcG9uc2UsIGxlCi1mb25jdGlvbm5lbWVudCBhdHRlbmR1IGR1IGNhY2hlLCBvdSBlbmNvcmUgbGEgbG9jYWxpc2F0aW9uIGQndW4gb2JqZXQgZW4gY2FzCi1kZSByZWRpcmVjdGlvbi4gTGEgc3ludGF4ZSBlc3QgbGEgc3VpdmFudGUgOgotCi0gICAgY2FwdHVyZSByZXF1ZXN0ICBoZWFkZXIgPG5vbT4gbGVuIDxsb25ndWV1ciBtYXg+Ci0gICAgY2FwdHVyZSByZXNwb25zZSBoZWFkZXIgPG5vbT4gbGVuIDxsb25ndWV1ciBtYXg+Ci0KLU5vdGU6IExlcyBub21zIGQnZW4tdOp0ZXMgbmUgc29udCBwYXMgc2Vuc2libGVzIOAgbGEgY2Fzc2UuCi0KLUV4ZW1wbGVzOgotLS0tLS0tLS0tCi0gICAgIyBjb25zZXJ2ZXIgbGUgbm9tIGR1IHNlcnZldXIgdmlydHVlbCBhY2PpZOkgcGFyIGxlIGNsaWVudAotICAgIGNhcHR1cmUgcmVxdWVzdCAgaGVhZGVyIEhvc3QgbGVuIDIwCi0gICAgIyBub3RlciBsYSBsb25ndWV1ciBkZXMgZG9ubullcyBlbnZveellcyBkYW5zIHVuIFBPU1QKLSAgICBjYXB0dXJlIHJlcXVlc3QgIGhlYWRlciBDb250ZW50LUxlbmd0aCBsZW4gMTAKLQotICAgICMgbm90ZXIgbGUgZm9uY3Rpb25uZW1lbnQgYXR0ZW5kdSBkdSBjYWNoZSBwYXIgbGUgc2VydmV1cgotICAgIGNhcHR1cmUgcmVzcG9uc2UgaGVhZGVyIENhY2hlLUNvbnRyb2wgbGVuIDgKLSAgICAjIG5vdGVyIGwnVVJMIGRlIHJlZGlyZWN0aW9uCi0gICAgY2FwdHVyZSByZXNwb25zZSBoZWFkZXIgTG9jYXRpb24gbGVuIDIwCi0KLUxlcyBlbi106nRlcyBub24gdHJvdXbpcyBzb250IGxvZ3XpcyDgIHZpZGUsIGV0IHNpIHVuIGVuLXTqdGUgYXBwYXJhaXQKLXBsdXNpZXVycyBmb2lzLCBzZXVsZSBsYSBkZXJuaehyZSBvY2N1cmVuY2Ugc2VyYSBjb25zZXJ26WUuIExlcyBlbi106nRlcyBkZQotcmVxdep0ZSBzb250IHJlZ3JvdXDpcyBlbnRyZSBkZXV4IGFjY29sYWRlcyAneycgZXQgJ30nIGRhbnMgbCdvcmRyZSBkZSBsZXVyCi1k6WNsYXJhdGlvbiwgZXQgY2hhY3VuIHPpcGFy6XMgcGFyIHVuZSBiYXJyZSB2ZXJ0aWNhbGUgJ3wnLCBzYW5zIGF1Y3VuIGVzcGFjZS4KLUxlcyBlbi106nRlcyBkZSBy6XBvbnNlIHNvbnQgcHLpc2VudOlzIGRlIGxhIG3qbWUgbWFuaehyZSwgbWFpcyBhcHLocyB1bgotZXNwYWNlIHN1aXZhbnQgbGUgYmxvYyBkJ2VuLXTqdGUgZGUgcmVxdep0ZS4gTGUgdG91dCBwculj6GRlIGxhIHJlcXXqdGUgSFRUUC4KLUV4ZW1wbGUgOgotCi1Db25maWc6Ci0KLSAgICAgY2FwdHVyZSByZXF1ZXN0ICBoZWFkZXIgSG9zdCBsZW4gMjAKLSAgICAgY2FwdHVyZSByZXF1ZXN0ICBoZWFkZXIgQ29udGVudC1MZW5ndGggbGVuIDEwCi0gICAgIGNhcHR1cmUgcmVxdWVzdCAgaGVhZGVyIFJlZmVyZXIgbGVuIDIwCi0gICAgIGNhcHR1cmUgcmVzcG9uc2UgaGVhZGVyIFNlcnZlciBsZW4gMjAKLSAgICAgY2FwdHVyZSByZXNwb25zZSBoZWFkZXIgQ29udGVudC1MZW5ndGggbGVuIDEwCi0gICAgIGNhcHR1cmUgcmVzcG9uc2UgaGVhZGVyIENhY2hlLUNvbnRyb2wgbGVuIDgKLSAgICAgY2FwdHVyZSByZXNwb25zZSBoZWFkZXIgVmlhIGxlbiAyMAotICAgICBjYXB0dXJlIHJlc3BvbnNlIGhlYWRlciBMb2NhdGlvbiBsZW4gMjAKLQotTG9nIDoKKyAgICAgc2Vjb25kZXMgKHJldHJpZXMgMyBkYW5zIGxhIGNvbmYpLCBwdWlzIHVuIGNvZGUgNTAzIGVzdCByZXRvdXJu6SBhdSBjbGllbnQuCisgICAgIElsIHkgYXZhaXQgMjAyIGNvbm5leGlvbnMgc3VyIGNldHRlIGluc3RhbmNlLCBldCAyMDUgc3VyIGwnZW5zZW1ibGUgZGVzCisgICAgIGluc3RhbmNlcyBwb3VyIGNlIHByb2Nlc3N1cy4gSWwgZXN0IHBvc3NpYmxlIHF1ZSBsZSBzZXJ2ZXVyIGFpdCByZWZ1c+kgbGEKKyAgICAgY29ubmV4aW9uIHBhcmNlIHF1J2lsIHkgZW4gYXZhaXQgZOlq4CB0cm9wIGQn6XRhYmxpZXMuCiAKLUF1ZyAgOSAyMDoyNjowOSBsb2NhbGhvc3QgaGFwcm94eVsyMDIyXTogMTI3LjAuMC4xOjM0MDE0IFswOS9BdWcvMjAwNDoyMDoyNjowOV0gcmVsYWlzLWh0dHAgbmV0Y2FjaGUgMC8wLzE2Mi8rMTYyIDIwMCArMzUwIC0gLSAtLS0tIHtmci5hZHNlcnZlci55YWhvby5jb3x8aHR0cDovL2ZyLmY0MTYubWFpbC59IHt8ODY0fHByaXZhdGV8fH0gIkdFVCBodHRwOi8vZnIuYWRzZXJ2ZXIueWFob28uY29tLyIKLUF1ZyAgOSAyMDozMDo0NiBsb2NhbGhvc3QgaGFwcm94eVsyMDIyXTogMTI3LjAuMC4xOjM0MDIwIFswOS9BdWcvMjAwNDoyMDozMDo0Nl0gcmVsYWlzLWh0dHAgbmV0Y2FjaGUgMC8wLzE4Mi8rMTgyIDIwMCArMjc5IC0gLSAtLS0tIHt3Lm9kcy5vcmd8fH0ge0Zvcm1pbHV4LzAuMS44fDM0OTV8fHx9ICJHRVQgaHR0cDovL3cub2RzLm9yZy9zeXRhZGluLmh0bWwgSFRUUC8xLjEiIAotQXVnICA5IDIwOjMwOjQ2IGxvY2FsaG9zdCBoYXByb3h5WzIwMjJdOiAxMjcuMC4wLjE6MzQwMjggWzA5L0F1Zy8yMDA0OjIwOjMwOjQ2XSByZWxhaXMtaHR0cCBuZXRjYWNoZSAwLzIvMTI2LysxMjggMjAwICsyMjMgLSAtIC0tLS0ge3d3dy5pbmZvdHJhZmljLmNvbXx8aHR0cDovL3cub2RzLm9yZy9zeXR9IHtBcGFjaGUvMi4wLjQwIChSZWQgSHw5MDY4fHx8fSAiR0VUIGh0dHA6Ly93d3cuaW5mb3RyYWZpYy5jb20vaW1hZ2VzL2xpdmUvY2FydGVzaWRmL2dyYW5kZXMvaWRmX25lLnBuZyBIVFRQLzEuMSIgCiAKLTQuMykgTW9kaWZpY2F0aW9uIGRlcyBlbnTqdGVzIEhUVFAKKzQuMykgTW9kaWZpY2F0aW9uIGRlcyBlbi106nRlcyBIVFRQCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBFbiBtb2RlIEhUVFAgdW5pcXVlbWVudCwgaWwgZXN0IHBvc3NpYmxlIGRlIHJlbXBsYWNlciBjZXJ0YWlucyBlbi106nRlcyBkYW5zIGxhCiByZXF16nRlIGV0L291IGxhIHLpcG9uc2Ug4CBwYXJ0aXIgZCdleHByZXNzaW9ucyBy6Wd1bGnocmVzLiBJbCBlc3Qg6WdhbGVtZW50CkBAIC0xNDE4LDExICsxNjU2LDExIEBACiAgICByZXFpcmVwICAgPHNlYXJjaD4gPHJlcGxhY2U+ICAgaWRlbSBzYW5zIGRpc3RpbmN0aW9uIG1hanVzY3VsZXMvbWludXNjdWxlcwogICAgcmVxZGVsICAgIDxzZWFyY2g+ICAgICAgICAgICAgIHBvdXIgc3VwcHJpbWVyIHVuIGVuLXTqdGUgZGFucyBsYSByZXF16nRlCiAgICByZXFpZGVsICAgPHNlYXJjaD4gICAgICAgICAgICAgaWRlbSBzYW5zIGRpc3RpbmN0aW9uIG1hanVzY3VsZXMvbWludXNjdWxlcwotICAgcmVxYWxsb3cgIDxzZWFyY2g+ICAgICAgICAgICAgIGF1dG9yaXNlciBsYSByZXF16nRlIHNpIHVuIGVudOp0ZSB2YWxpZGUgPHNlYXJjaD4KKyAgIHJlcWFsbG93ICA8c2VhcmNoPiAgICAgICAgICAgICBhdXRvcmlzZXIgbGEgcmVxdep0ZSBzaSB1biBlbi106nRlIHZhbGlkZSA8c2VhcmNoPgogICAgcmVxaWFsbG93IDxzZWFyY2g+ICAgICAgICAgICAgIGlkZW0gc2FucyBkaXN0aW5jdGlvbiBtYWp1c2N1bGVzL21pbnVzY3VsZXMKLSAgIHJlcWRlbnkgICA8c2VhcmNoPiAgICAgICAgICAgICBpbnRlcmRpcmUgbGEgcmVxdep0ZSBzaSB1biBlbnTqdGUgdmFsaWRlIDxzZWFyY2g+CisgICByZXFkZW55ICAgPHNlYXJjaD4gICAgICAgICAgICAgaW50ZXJkaXJlIGxhIHJlcXXqdGUgc2kgdW4gZW4tdOp0ZSB2YWxpZGUgPHNlYXJjaD4KICAgIHJlcWlkZW55ICA8c2VhcmNoPiAgICAgICAgICAgICBpZGVtIHNhbnMgZGlzdGluY3Rpb24gbWFqdXNjdWxlcy9taW51c2N1bGVzCi0gICByZXFwYXNzICAgPHNlYXJjaD4gICAgICAgICAgICAgaW5oaWJlIGNlcyBhY3Rpb25zIHN1ciBsZXMgZW506nRlcyB2YWxpZGFudCA8c2VhcmNoPgorICAgcmVxcGFzcyAgIDxzZWFyY2g+ICAgICAgICAgICAgIGluaGliZSBjZXMgYWN0aW9ucyBzdXIgbGVzIGVuLXTqdGVzIHZhbGlkYW50IDxzZWFyY2g+CiAgICByZXFpcGFzcyAgPHNlYXJjaD4gICAgICAgICAgICAgaWRlbSBzYW5zIGRpc3RpbmN0aW9uIG1hanVzY3VsZXMvbWludXNjdWxlcwogCiAgICByc3BhZGQgICA8c3RyaW5nPiAgICAgICAgICAgICAgcG91ciBham91dGVyIHVuIGVuLXTqdGUgZGFucyBsYSBy6XBvbnNlCkBAIC0xNDMxLDcgKzE2NjksNyBAQAogICAgcnNwZGVsICAgPHNlYXJjaD4gICAgICAgICAgICAgIHBvdXIgc3VwcHJpbWVyIHVuIGVuLXTqdGUgZGFucyBsYSBy6XBvbnNlCiAgICByc3BpZGVsICA8c2VhcmNoPiAgICAgICAgICAgICAgaWRlbSBzYW5zIGRpc3RpbmN0aW9uIG1hanVzY3VsZXMvbWludXNjdWxlcwogICAgcnNwZGVueSAgPHNlYXJjaD4gICAgICAgICAgICAgIHJlbXBsYWNlIGxhIHLpcG9uc2UgcGFyIHVuIEhUVFAgNTAyIHNpIHVuCi0JCQkJICBlbnTqdGUgdmFsaWRlIDxzZWFyY2g+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW4tdOp0ZSB2YWxpZGUgPHNlYXJjaD4KICAgIHJzcGlkZW55IDxzZWFyY2g+ICAgICAgICAgICAgICBpZGVtIHNhbnMgZGlzdGluY3Rpb24gbWFqdXNjdWxlcy9taW51c2N1bGVzCiAKIApAQCAtMTQ3MiwyNCArMTcxMCwyNCBAQAogICAgIHVuZSByZXF16nRlIG91IHVuZSBy6XBvbnNlIGVzdCBsaW1pdOkg4CA0MDk2IGRlcHVpcyBsYSB2ZXJzaW9uIDEuMS41IChjZXR0ZQogICAgIGxpbWl0ZSDpdGFpdCDgIDI1NiBhdXBhcmF2YW50KS4gQ2V0dGUgdmFsZXVyIGVzdCBtb2RpZmlhYmxlIGRhbnMgbGUgY29kZS4KICAgICBQb3VyIHVuIHVzYWdlIHRlbXBvcmFpcmUsIG9uIHBldXQgZ2FnbmVyIGRlIGxhIHBsYWNlIGVuIHN1cHByaW1hbnQgcXVlbHF1ZXMKLSAgICBlbnTqdGVzIGludXRpbGVzIGF2YW50IGxlcyBham91dHMuCisgICAgZW4tdOp0ZXMgaW51dGlsZXMgYXZhbnQgbGVzIGFqb3V0cy4KICAgLSB1bmUgcmVxdep0ZSBibG9xdellIHByb2R1aXJhIHVuZSBy6XBvbnNlICJIVFRQIDQwMyBmb3JiaWRkZW4iIHRhbmRpcyBxdSd1bmUKICAgICBy6XBvbnNlIGJsb3F16WUgcHJvZHVpcmEgdW5lIHLpcG9uc2UgIkhUVFAgNTAyIEJhZCBnYXRld2F5Ii4KIAogRXhlbXBsZXMgOgogLS0tLS0tLS0tLQotCSMjIyMjIyBhIGZldyBleGFtcGxlcyAjIyMjIyMKKyAgICAgICAgIyMjIyMjIGEgZmV3IGV4YW1wbGVzICMjIyMjIwogCi0JIyByZXdyaXRlICdvbmxpbmUuZnInIGluc3RlYWQgb2YgJ2ZyZWUuZnInIGZvciBHRVQgYW5kIFBPU1QgcmVxdWVzdHMKLQlyZXFyZXAJXihHRVRcIC4qKSguZnJlZS5mcikoLiopIFwxLm9ubGluZS5mclwzCi0JcmVxcmVwCV4oUE9TVFwgLiopKC5mcmVlLmZyKSguKikgXDEub25saW5lLmZyXDMKKyAgICAgICAgIyByZXdyaXRlICdvbmxpbmUuZnInIGluc3RlYWQgb2YgJ2ZyZWUuZnInIGZvciBHRVQgYW5kIFBPU1QgcmVxdWVzdHMKKyAgICAgICAgcmVxcmVwICAgICAgICBeKEdFVFwgLiopKC5mcmVlLmZyKSguKikgXDEub25saW5lLmZyXDMKKyAgICAgICAgcmVxcmVwICAgICAgICBeKFBPU1RcIC4qKSguZnJlZS5mcikoLiopIFwxLm9ubGluZS5mclwzCiAKLQkjIGZvcmNlIHByb3h5IGNvbm5lY3Rpb25zIHRvIGNsb3NlCi0JcmVxaXJlcAleUHJveHktQ29ubmVjdGlvbjouKglQcm94eS1Db25uZWN0aW9uOlwgY2xvc2UKLQkjIHJld3JpdGUgbG9jYXRpb25zCi0JcnNwaXJlcAleKExvY2F0aW9uOlwgKShbXjpdKjovL1teL10qKSguKikgXDFcMworICAgICAgICAjIGZvcmNlIHByb3h5IGNvbm5lY3Rpb25zIHRvIGNsb3NlCisgICAgICAgIHJlcWlyZXAgICAgICAgIF5Qcm94eS1Db25uZWN0aW9uOi4qICAgICAgICBQcm94eS1Db25uZWN0aW9uOlwgY2xvc2UKKyAgICAgICAgIyByZXdyaXRlIGxvY2F0aW9ucworICAgICAgICByc3BpcmVwICAgICAgICBeKExvY2F0aW9uOlwgKShbXjpdKjovL1teL10qKSguKikgXDFcMwogCi0JIyMjIyMjIEEgZnVsbCBjb25maWd1cmF0aW9uIGJlaW5nIHVzZWQgb24gcHJvZHVjdGlvbiAjIyMjIyMKKyAgICAgICAgIyMjIyMjIEEgZnVsbCBjb25maWd1cmF0aW9uIGJlaW5nIHVzZWQgb24gcHJvZHVjdGlvbiAjIyMjIyMKIAogICAgICAgICAjIEV2ZXJ5IGhlYWRlciBzaG91bGQgZW5kIHdpdGggYSBjb2xvbiBmb2xsb3dlZCBieSBvbmUgc3BhY2UuCiAgICAgICAgIHJlcWlkZW55ICAgICAgICBeW146XCBdKltcIF0qJApAQCAtMTUxMCw5ICsxNzQ4LDkgQEAKICAgICAgICAgcmVxaWRlbnkgICAgICAgIF5bXjpcIF0qXCAKIAogICAgICAgICAjIGZvcmNlIGNvbm5lY3Rpb246Y2xvc2UsIHRodXMgZGlzYWJsaW5nIEhUVFAga2VlcC1hbGl2ZQotCW9wdGlvbgkJaHR0cGNsb3MKKyAgICAgICAgb3B0aW9uICAgICAgICAgICAgICAgIGh0dHBjbG9zCiAKLQkjIGNoYW5nZSB0aGUgc2VydmVyIG5hbWUKKyAgICAgICAgIyBjaGFuZ2UgdGhlIHNlcnZlciBuYW1lCiAgICAgICAgIHJzcGlkZWwgICAgICAgICBeU2VydmVyOlwgCiAgICAgICAgIHJzcGFkZCAgICAgICAgICBTZXJ2ZXI6XCBGb3JtaWx1eC8wLjEuOAogCkBAIC0xNTIyLDE5ICsxNzYwLDE5IEBACiBjb25uYe50cmUgbCdhZHJlc3NlIElQIGR1IGNsaWVudCBpbml0aWFsLgogCiBFbmZpbiwgbCdvcHRpb24gJ2h0dHBjbG9zZScgYXBwYXJ1ZSBkYW5zIGxhIHZlcnNpb24gMS4xLjI4LzEuMi4xIHN1cHByaW1lIHRvdXQKLWVudOp0ZSBkZSB0eXBlICdDb25uZWN0aW9uOicgZXQgYWpvdXRlICdDb25uZWN0aW9uOiBjbG9zZScgZGFucyBsZXMgZGV1eCBzZW5zLgorZW4tdOp0ZSBkZSB0eXBlICdDb25uZWN0aW9uOicgZXQgYWpvdXRlICdDb25uZWN0aW9uOiBjbG9zZScgZGFucyBsZXMgZGV1eCBzZW5zLgogQ2VjaSBzaW1wbGlmaWUgbGEgZOlzYWN0aXZhdGlvbiBkdSBrZWVwLWFsaXZlIEhUVFAgcGFyIHJhcHBvcnQg4CBsJ2FuY2llbm5lCiBt6XRob2RlIGltcGxpcXVhbnQgNCBy6GdsZXMuCiAKIEV4ZW1wbGUgOgogLS0tLS0tLS0tCiAgICAgbGlzdGVuIGh0dHBfcHJveHkgMC4wLjAuMDo4MAotCW1vZGUgaHR0cAotCWxvZyAgZ2xvYmFsCi0Jb3B0aW9uIGh0dHBsb2cKLQlvcHRpb24gZG9udGxvZ251bGwKLQlvcHRpb24gZm9yd2FyZGZvcgotCW9wdGlvbiBodHRwY2xvc2UKKyAgICAgICAgbW9kZSBodHRwCisgICAgICAgIGxvZyAgZ2xvYmFsCisgICAgICAgIG9wdGlvbiBodHRwbG9nCisgICAgICAgIG9wdGlvbiBkb250bG9nbnVsbAorICAgICAgICBvcHRpb24gZm9yd2FyZGZvcgorICAgICAgICBvcHRpb24gaHR0cGNsb3NlCiAKIDQuNCkgUulwYXJ0aXRpb24gYXZlYyBwZXJzaXN0ZW5jZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNTUwLDExICsxNzg4LDExIEBACiBFeGVtcGxlIDoKIC0tLS0tLS0tLQogICAgIGxpc3RlbiBhcHBsaWNhdGlvbiAwLjAuMC4wOjgwCi0JbW9kZSBodHRwCi0JY29va2llIFNFUlZFUklEIGluc2VydCBub2NhY2hlIGluZGlyZWN0Ci0JYmFsYW5jZSByb3VuZHJvYmluCi0Jc2VydmVyIHNydjEgMTkyLjE2OC4xLjE6ODAgY29va2llIHNlcnZlcjAxIGNoZWNrCi0Jc2VydmVyIHNydjIgMTkyLjE2OC4xLjI6ODAgY29va2llIHNlcnZlcjAyIGNoZWNrCisgICAgICAgIG1vZGUgaHR0cAorICAgICAgICBjb29raWUgU0VSVkVSSUQgaW5zZXJ0IG5vY2FjaGUgaW5kaXJlY3QKKyAgICAgICAgYmFsYW5jZSByb3VuZHJvYmluCisgICAgICAgIHNlcnZlciBzcnYxIDE5Mi4xNjguMS4xOjgwIGNvb2tpZSBzZXJ2ZXIwMSBjaGVjaworICAgICAgICBzZXJ2ZXIgc3J2MiAxOTIuMTY4LjEuMjo4MCBjb29raWUgc2VydmVyMDIgY2hlY2sKIAogTCdhdXRyZSBzb2x1dGlvbiBhcHBvcnTpZSBwYXIgbGVzIHZlcnNpb25zIDEuMS4zMCBldCAxLjIuMyBlc3QgZGUgcul1dGlsaXNlciB1bgogY29va2llIGVuIHByb3ZlbmFuY2UgZHUgc2VydmV1ciBldCBkZSBsdWkgcHLpZml4ZXIgbCdpZGVudGlmaWFudCBkdSBzZXJ2ZXVyLgpAQCAtMTU3NCwzMCArMTgxMiwzMCBAQAogNC41KSBQcm90ZWN0aW9uIGNvbnRyZSBsZXMgZnVpdGVzIGQnaW5mb3JtYXRpb25zIGR1IHNlcnZldXIKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBEYW5zIGxlcyB2ZXJzaW9ucyAxLjEuMjggZXQgMS4yLjEsIHVuZSBub3V2ZWxsZSBvcHRpb24gJ2NoZWNrY2FjaGUnIGEg6XTpCi1jcunpZS4gRWxsZSBzZXJ0IOAgaW5zcGVjdGVyIG1pbnV0aWV1c2VtZW50IGxlcyBlbnTqdGVzICdDYWNoZS1jb250cm9sJywKK2Ny6ellLiBFbGxlIHNlcnQg4CBpbnNwZWN0ZXIgbWludXRpZXVzZW1lbnQgbGVzIGVuLXTqdGVzICdDYWNoZS1jb250cm9sJywKICdQcmFnbWEnLCBldCAnU2V0LWNvb2tpZScgZGFucyBsZXMgculwb25zZXMgc2VydmV1ciBwb3VyIGTpdGVybWluZXIgcydpbCB5IGEKIHVuIHJpc3F1ZSBkZSBjYWNoZXIgdW4gY29va2llIHN1ciB1biBwcm94eSBj9HTpIGNsaWVudC4gUXVhbmQgY2V0dGUgb3B0aW9uIGVzdAogYWN0aXbpZSwgbGVzIHNldWxlcyBy6XBvbnNlcyBxdWkgcGV1dmVudCDqdHJlIHJldG91cm7pZXMgYXUgY2xpZW50IHNvbnQgOgotICAtIHRvdXRlcyBjZWxsZXMgcXVpIG4nb250IHBhcyBkJ2VudOp0ZSAnU2V0LWNvb2tpZScgOworICAtIHRvdXRlcyBjZWxsZXMgcXVpIG4nb250IHBhcyBkJ2VuLXTqdGUgJ1NldC1jb29raWUnIDsKICAgLSB0b3V0ZXMgY2VsbGVzIHF1aSBvbnQgdW4gY29kZSBkZSByZXRvdXIgYXV0cmUgcXVlIDIwMCwgMjAzLCAyMDYsIDMwMCwgMzAxLCAKLSAgICA0MTAsIHNhdWYgc2kgbGUgc2VydmV1ciBhIHBvc2l0aW9ubukgdW4gZW506nRlICdDYWNoZS1jb250cm9sOiBwdWJsaWMnIDsKKyAgICA0MTAsIHNhdWYgc2kgbGUgc2VydmV1ciBhIHBvc2l0aW9ubukgdW4gZW4tdOp0ZSAnQ2FjaGUtY29udHJvbDogcHVibGljJyA7CiAgIC0gY2VsbGVzIHF1aSBmb250IHN1aXRlIOAgdW5lIHJlcXXqdGUgUE9TVCwgc2F1ZiBzaSBsZSBzZXJ2ZXVyIGEgcG9zaXRpb25u6QotICAgIHVuIGVudOp0ZSAnQ2FjaGUtY29udHJvbDogcHVibGljJyA7Ci0gIC0gY2VsbGVzIHF1aSBvbnQgdW4gZW506nRlICdQcmFnbWE6IG5vLWNhY2hlJyA7Ci0gIC0gY2VsbGVzIHF1aSBvbnQgdW4gZW506nRlICdDYWNoZS1jb250cm9sOiBwcml2YXRlJyA7IAotICAtIGNlbGxlcyBxdWkgb250IHVuIGVudOp0ZSAnQ2FjaGUtY29udHJvbDogbm8tc3RvcmUnIDsgCi0gIC0gY2VsbGVzIHF1aSBvbnQgdW4gZW506nRlICdDYWNoZS1jb250cm9sOiBtYXgtYWdlPTAnIDsKLSAgLSBjZWxsZXMgcXVpIG9udCB1biBlbnTqdGUgJ0NhY2hlLWNvbnRyb2w6IHMtbWF4YWdlPTAnIDsKLSAgLSBjZWxsZXMgcXVpIG9udCB1biBlbnTqdGUgJ0NhY2hlLWNvbnRyb2w6IG5vLWNhY2hlJyA7Ci0gIC0gY2VsbGVzIHF1aSBvbnQgdW4gZW506nRlICdDYWNoZS1jb250cm9sOiBuby1jYWNoZT0ic2V0LWNvb2tpZSInIDsKLSAgLSBjZWxsZXMgcXVpIG9udCB1biBlbnTqdGUgJ0NhY2hlLWNvbnRyb2w6IG5vLWNhY2hlPSJzZXQtY29va2llLCcKKyAgICB1biBlbi106nRlICdDYWNoZS1jb250cm9sOiBwdWJsaWMnIDsKKyAgLSBjZWxsZXMgcXVpIG9udCB1biBlbi106nRlICdQcmFnbWE6IG5vLWNhY2hlJyA7CisgIC0gY2VsbGVzIHF1aSBvbnQgdW4gZW4tdOp0ZSAnQ2FjaGUtY29udHJvbDogcHJpdmF0ZScgOyAKKyAgLSBjZWxsZXMgcXVpIG9udCB1biBlbi106nRlICdDYWNoZS1jb250cm9sOiBuby1zdG9yZScgOyAKKyAgLSBjZWxsZXMgcXVpIG9udCB1biBlbi106nRlICdDYWNoZS1jb250cm9sOiBtYXgtYWdlPTAnIDsKKyAgLSBjZWxsZXMgcXVpIG9udCB1biBlbi106nRlICdDYWNoZS1jb250cm9sOiBzLW1heGFnZT0wJyA7CisgIC0gY2VsbGVzIHF1aSBvbnQgdW4gZW4tdOp0ZSAnQ2FjaGUtY29udHJvbDogbm8tY2FjaGUnIDsKKyAgLSBjZWxsZXMgcXVpIG9udCB1biBlbi106nRlICdDYWNoZS1jb250cm9sOiBuby1jYWNoZT0ic2V0LWNvb2tpZSInIDsKKyAgLSBjZWxsZXMgcXVpIG9udCB1biBlbi106nRlICdDYWNoZS1jb250cm9sOiBuby1jYWNoZT0ic2V0LWNvb2tpZSwnCiAgICAgKGF1dG9yaXNhbnQgZCdhdXRyZXMgY2hhbXBzIGFwcuhzIHNldC1jb29raWUpLgogCiBTaSB1bmUgculwb25zZSBuZSByZXNwZWN0ZSBwYXMgY2VzIHBy6S1yZXF1aXMsIGFsb3JzIGVsbGUgc2VyYSBibG9xdellIGRlIGxhCiBt6m1lIG1hbmnocmUgcXVlIHMnaWwgcydhZ2lzc2FpdCBkJ3VuIGZpbHRyZSAncnNwZGVueScsIGF2ZWMgZW4gcmV0b3VyIHVuCiBtZXNzYWdlICJIVFRQIDUwMiBiYWQgZ2F0ZXdheSIuIEwn6XRhdCBkZSBzZXNzaW9uIG1vbnRyZSAiUEgtLSIgY2UgcXVpIHZldXQKIGRpcmUgcXVlIGMnZXN0IGxlIHByb3h5IHF1aSBhIGJsb3F16SBsYSBy6XBvbnNlIGR1cmFudCBsZSB0cmFpdGVtZW50IGRlcwotZW506nRlcy4gRGUgcGx1cywgdW4gbWVzc2FnZSBkJ2FsZXJ0ZSBzZXJhIGVudm956SBkYW5zIGxlcyBsb2dzIGRlIHNvcnRlIHF1ZQorZW4tdOp0ZXMuIERlIHBsdXMsIHVuIG1lc3NhZ2UgZCdhbGVydGUgc2VyYSBlbnZveekgZGFucyBsZXMgbG9ncyBkZSBzb3J0ZSBxdWUKIGwnYWRtaW5pc3RyYXRldXIgc2FjaGUgcXUnaWwgeSBhIHVuZSBhY3Rpb24gY29ycmVjdHJpY2Ug4CBlbnRyZXByZW5kcmUuCiAKIDQuNikgUGVyc29uYWxpc2F0aW9uIGRlcyBlcnJldXJzCkBAIC0xNjI5LDcgKzE4NjcsNyBAQAogICAgICAgICBlcnJvcmxvYyA0MDAgL2JhZHJlcXVlc3QuaHRtbAogICAgICAgICBlcnJvcmxvYyA0MDMgL2ZvcmJpZGRlbi5odG1sCiAgICAgICAgIGVycm9ybG9jIDQwOCAvdG9vbG9uZy5odG1sCi0JZXJyb3Jsb2MgNTAwIGh0dHA6Ly9oYXByb3h5LmRvbWFpbi5uZXQvYnVncmVwb3J0Lmh0bWwKKyAgICAgICAgZXJyb3Jsb2MgNTAwIGh0dHA6Ly9oYXByb3h5LmRvbWFpbi5uZXQvYnVncmVwb3J0Lmh0bWwKICAgICAgICAgZXJyb3Jsb2MgNTAyIGh0dHA6Ly8xOTIuMTY4LjExNC41OC9lcnJvcjUweC5odG1sCiAgICAgICAgIGVycm9ybG9jIDUwMyBodHRwOi8vMTkyLjE2OC4xMTQuNTgvZXJyb3I1MHguaHRtbAogICAgICAgICBlcnJvcmxvYyA1MDQgaHR0cDovLzE5Mi4xNjguMTE0LjU4L2Vycm9yNTB4Lmh0bWwKQEAgLTE2NDIsOCArMTg4MCw4IEBACiBuYXZpZ2F0ZXVycyBhbnTpcmlldXJzIOAgSFRUUC8xLjEgbmUgY29ubmFpc3NlbnQgcGFzIGNlIGNvZGUgZGUgcmV0b3VyLiBEZQogcGx1cywgbGEgcGx1cGFydCBkZXMgbmF2aWdhdGV1cnMgc2UgY29tcG9ydGVudCBk6WrgIGF2ZWMgbGUgY29kZSAzMDIgY29tbWUgaWxzCiBkZXZyYWllbnQgbGUgZmFpcmUgYXZlYyBsZSAzMDMuIERvbmMsIGRhbnMgbGUgYnV0IGRlIGxhaXNzZXIgbGUgY2hvaXgg4AotbCd1dGlsaXNhdGV1ciwgbGEgdmVyc2lvbiAxLjIuNSBhcHBvcnRlIGRldXggbm91dmVsbGVzIGNvbW1hbmRlcyB2aXNhbnQg4AotcmVtcGxhY2VyICdlcnJvcmxvYycgOiAnZXJyb3Jsb2MzMDInIGV0ICdlcnJvcmxvYzMwMycuCitsJ3V0aWxpc2F0ZXVyLCBsZXMgdmVyc2lvbnMgMS4xLjMxIGV0IDEuMi41IGFwcG9ydGVudCBkZXV4IG5vdXZlbGxlcyBjb21tYW5kZXMKK3Zpc2FudCDgIHJlbXBsYWNlciAnZXJyb3Jsb2MnIDogJ2Vycm9ybG9jMzAyJyBldCAnZXJyb3Jsb2MzMDMnLgogCiBMZXVyIHVzYWdlIG5vbiBhbWJpZ/wgZXN0IHJlY29tbWFuZOkg4CBsYSBwbGFjZSBkZSBsYSBjb21tYW5kZSAnZXJyb3Jsb2MnIChxdWkKIHV0aWxpc2UgdG91am91cnMgMzAyKS4gRGFucyBsZSBkb3V0ZSwgcHLpZulyZXogbCd1dGlsaXNhdGlvbiBkZSAnZXJyb3Jsb2MzMDMnCkBAIC0xNjkzLDQzICsxOTMxLDQzIEBACiBFeGVtcGxlcyA6CiAtLS0tLS0tLS0tCiAgICAgZGVmYXVsdHMgYXBwbGljYXRpb25zIFRDUAotCWxvZyBnbG9iYWwKLQltb2RlIHRjcAotCWJhbGFuY2Ugcm91bmRyb2JpbgotCWNsaXRpbWVvdXQgMTgwMDAwCi0Jc3J2dGltZW91dCAxODAwMDAKLQljb250aW1lb3V0IDQwMDAKLQlyZXRyaWVzIDMKLQlyZWRpc3BhdGNoCisgICAgICAgIGxvZyBnbG9iYWwKKyAgICAgICAgbW9kZSB0Y3AKKyAgICAgICAgYmFsYW5jZSByb3VuZHJvYmluCisgICAgICAgIGNsaXRpbWVvdXQgMTgwMDAwCisgICAgICAgIHNydnRpbWVvdXQgMTgwMDAwCisgICAgICAgIGNvbnRpbWVvdXQgNDAwMAorICAgICAgICByZXRyaWVzIDMKKyAgICAgICAgcmVkaXNwYXRjaAogCiAgICAgbGlzdGVuIGFwcF90Y3AxIDEwLjAuMC4xOjYwMDAtNjA2MwotCXNlcnZlciBzcnYxIDE5Mi4xNjguMS4xIGNoZWNrIHBvcnQgNjAwMCBpbnRlciAxMDAwMAotCXNlcnZlciBzcnYyIDE5Mi4xNjguMS4yIGJhY2t1cAorICAgICAgICBzZXJ2ZXIgc3J2MSAxOTIuMTY4LjEuMSBjaGVjayBwb3J0IDYwMDAgaW50ZXIgMTAwMDAKKyAgICAgICAgc2VydmVyIHNydjIgMTkyLjE2OC4xLjIgYmFja3VwCiAKICAgICBsaXN0ZW4gYXBwX3RjcDIgMTAuMC4wLjI6NjAwMC02MDYzCi0Jc2VydmVyIHNydjEgMTkyLjE2OC4yLjEgY2hlY2sgcG9ydCA2MDAwIGludGVyIDEwMDAwCi0Jc2VydmVyIHNydjIgMTkyLjE2OC4yLjIgYmFja3VwCisgICAgICAgIHNlcnZlciBzcnYxIDE5Mi4xNjguMi4xIGNoZWNrIHBvcnQgNjAwMCBpbnRlciAxMDAwMAorICAgICAgICBzZXJ2ZXIgc3J2MiAxOTIuMTY4LjIuMiBiYWNrdXAKICAgICAKICAgICBkZWZhdWx0cyBhcHBsaWNhdGlvbnMgSFRUUAotCWxvZyBnbG9iYWwKLQltb2RlIGh0dHAKLQlvcHRpb24gaHR0cGxvZwotCW9wdGlvbiBmb3J3YXJkZm9yCi0Jb3B0aW9uIGRvbnRsb2dudWxsCi0JYmFsYW5jZSByb3VuZHJvYmluCi0JY2xpdGltZW91dCAyMDAwMAotCXNydnRpbWVvdXQgMjAwMDAKLQljb250aW1lb3V0IDQwMDAKLQlyZXRyaWVzIDMKKyAgICAgICAgbG9nIGdsb2JhbAorICAgICAgICBtb2RlIGh0dHAKKyAgICAgICAgb3B0aW9uIGh0dHBsb2cKKyAgICAgICAgb3B0aW9uIGZvcndhcmRmb3IKKyAgICAgICAgb3B0aW9uIGRvbnRsb2dudWxsCisgICAgICAgIGJhbGFuY2Ugcm91bmRyb2JpbgorICAgICAgICBjbGl0aW1lb3V0IDIwMDAwCisgICAgICAgIHNydnRpbWVvdXQgMjAwMDAKKyAgICAgICAgY29udGltZW91dCA0MDAwCisgICAgICAgIHJldHJpZXMgMwogCiAgICAgbGlzdGVuIGFwcF9odHRwMSAxMC4wLjAuMTo4MC04MQotCWNvb2tpZSBTRVJWRVJJRCBwb3N0b25seSBpbnNlcnQgaW5kaXJlY3QKLQljYXB0dXJlIGNvb2tpZSB1c2VyaWQ9IGxlbiAxMAotCXNlcnZlciBzcnYxIDE5Mi4xNjguMS4xOis4MDAwIGNvb2tpZSBzcnYxIGNoZWNrIHBvcnQgODA4MCBpbnRlciAxMDAwCi0Jc2VydmVyIHNydjEgMTkyLjE2OC4xLjI6KzgwMDAgY29va2llIHNydjIgY2hlY2sgcG9ydCA4MDgwIGludGVyIDEwMDAKKyAgICAgICAgY29va2llIFNFUlZFUklEIHBvc3Rvbmx5IGluc2VydCBpbmRpcmVjdAorICAgICAgICBjYXB0dXJlIGNvb2tpZSB1c2VyaWQ9IGxlbiAxMAorICAgICAgICBzZXJ2ZXIgc3J2MSAxOTIuMTY4LjEuMTorODAwMCBjb29raWUgc3J2MSBjaGVjayBwb3J0IDgwODAgaW50ZXIgMTAwMAorICAgICAgICBzZXJ2ZXIgc3J2MSAxOTIuMTY4LjEuMjorODAwMCBjb29raWUgc3J2MiBjaGVjayBwb3J0IDgwODAgaW50ZXIgMTAwMAogCiAgICAgZGVmYXVsdHMKLQkjIHNlY3Rpb24gdmlkZSBxdWkgYW5udWxlIHRvdXMgbGVzIHBhcmFt6HRlcyBwYXIgZOlmYXV0LgorICAgICAgICAjIHNlY3Rpb24gdmlkZSBxdWkgYW5udWxlIHRvdXMgbGVzIHBhcmFt6HRlcyBwYXIgZOlmYXV0LgogCiA9PT09PT09PT09PT09PT09PT09PT09PQogfCBQYXJhbel0cmFnZSBzeXN06G1lIHwKQEAgLTE3NDYsMTUgKzE5ODQsMTUgQEAKIHVsaW1pdCAtbiAkTUFYRklMRVMKIAogaWYgWyAtZSAvcHJvYy9zeXMvbmV0L2lwdjQvaXBfY29ubnRyYWNrX21heCBdOyB0aGVuCi0JZWNobyA2NTUzNiA+IC9wcm9jL3N5cy9uZXQvaXB2NC9pcF9jb25udHJhY2tfbWF4CisgICAgICAgIGVjaG8gNjU1MzYgPiAvcHJvYy9zeXMvbmV0L2lwdjQvaXBfY29ubnRyYWNrX21heAogZmkKIAogaWYgWyAtZSAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF90aW1lb3V0X2Zpbl93YWl0IF07IHRoZW4KLQkjIDMwIHNlY29uZHMgZm9yIGZpbiwgMTUgZm9yIHRpbWUgd2FpdAotCWVjaG8gMzAwMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC9uZXRmaWx0ZXIvaXBfY3RfdGNwX3RpbWVvdXRfZmluX3dhaXQKLQllY2hvIDE1MDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF90aW1lb3V0X3RpbWVfd2FpdAotCWVjaG8gMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC9uZXRmaWx0ZXIvaXBfY3RfdGNwX2xvZ19pbnZhbGlkX3NjYWxlCi0JZWNobyAwID4gL3Byb2Mvc3lzL25ldC9pcHY0L25ldGZpbHRlci9pcF9jdF90Y3BfbG9nX291dF9vZl93aW5kb3cKKyAgICAgICAgIyAzMCBzZWNvbmRzIGZvciBmaW4sIDE1IGZvciB0aW1lIHdhaXQKKyAgICAgICAgZWNobyAzMDAwID4gL3Byb2Mvc3lzL25ldC9pcHY0L25ldGZpbHRlci9pcF9jdF90Y3BfdGltZW91dF9maW5fd2FpdAorICAgICAgICBlY2hvIDE1MDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF90aW1lb3V0X3RpbWVfd2FpdAorICAgICAgICBlY2hvIDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF9sb2dfaW52YWxpZF9zY2FsZQorICAgICAgICBlY2hvIDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwX2N0X3RjcF9sb2dfb3V0X29mX3dpbmRvdwogZmkKIAogZWNobyAxMDI0IDYwOTk5ID4gL3Byb2Mvc3lzL25ldC9pcHY0L2lwX2xvY2FsX3BvcnRfcmFuZ2UKQEAgLTE3NjYsNyArMjAwNCw3IEBACiBlY2hvIDEgPiAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX3R3X3JlY3ljbGUKIGVjaG8gMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3BfdGltZXN0YW1wcwogZWNobyAwID4gL3Byb2Mvc3lzL25ldC9pcHY0L3RjcF9lY24KLWVjaG8gMCA+IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3Bfc2FjaworZWNobyAxID4gL3Byb2Mvc3lzL25ldC9pcHY0L3RjcF9zYWNrCiBlY2hvIDAgPiAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX2RzYWNrCiAKICMgYXV0by10dW5lZCBvbiAyLjQKZGlmZiAtLWdpdCBhL2hhcHJveHkuYyBiL2hhcHJveHkuYwppbmRleCA4OTk0MTc3Li4zNGQ5YjQwIDEwMDY0NAotLS0gYS9oYXByb3h5LmMKKysrIGIvaGFwcm94eS5jCkBAIC03Nyw3ICs3Nyw3IEBACiAjaW5jbHVkZSAiaW5jbHVkZS9hcHBzZXNzaW9uLmgiCiAKICNkZWZpbmUgSEFQUk9YWV9WRVJTSU9OICIxLjIuNiIKLSNkZWZpbmUgSEFQUk9YWV9EQVRFCSIyMDA1LzA3LzA2IgorI2RlZmluZSBIQVBST1hZX0RBVEUJIjIwMDUvMDgvMDciCiAKIC8qIHRoaXMgaXMgZm9yIGxpYmM1IGZvciBleGFtcGxlICovCiAjaWZuZGVmIFRDUF9OT0RFTEFZCkBAIC0xNjUxLDcgKzE2NTEsNyBAQAogLyogdGhpcyBlaXRoZXIgcmV0dXJucyB0aGUgc29ja25hbWUgb3IgdGhlIG9yaWdpbmFsIGRlc3RpbmF0aW9uIGFkZHJlc3MuIENvZGUKICAqIGluc3BpcmVkIGZyb20gUGF0cmljayBTY2hhYWYncyBleGFtcGxlIG9mIG5mX2dldHNvY2tuYW1lKCkgaW1wbGVtZW50YXRpb24uCiAgKi8KLXN0YXRpYyBpbnQgZ2V0X29yaWdpbmFsX2RzdChpbnQgZmQsIHN0cnVjdCBzb2NrYWRkcl9pbiAqc2EsIGludCAqc2FsZW4pIHsKK3N0YXRpYyBpbnQgZ2V0X29yaWdpbmFsX2RzdChpbnQgZmQsIHN0cnVjdCBzb2NrYWRkcl9pbiAqc2EsIHNvY2tsZW5fdCAqc2FsZW4pIHsKICNpZiBkZWZpbmVkKFRQUk9YWSkgJiYgZGVmaW5lZChTT19PUklHSU5BTF9EU1QpCiAgICAgcmV0dXJuIGdldHNvY2tvcHQoZmQsIFNPTF9JUCwgU09fT1JJR0lOQUxfRFNULCAodm9pZCAqKXNhLCBzYWxlbik7CiAjZWxzZQpAQCAtMTc2Nyw3ICsxNzY3LDcgQEAKICAgICB9CiAgICAgZWxzZSBpZiAocy0+cHJveHktPm9wdGlvbnMgJiBQUl9PX1RSQU5TUCkgewogCS8qIGluIHRyYW5zcGFyZW50IG1vZGUsIHVzZSB0aGUgb3JpZ2luYWwgZGVzdCBhZGRyIGlmIG5vIGRpc3BhdGNoIHNwZWNpZmllZCAqLwotCWludCBzYWxlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pOworCXNvY2tsZW5fdCBzYWxlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pOwogCWlmIChnZXRfb3JpZ2luYWxfZHN0KHMtPmNsaV9mZCwgJnMtPnNydl9hZGRyLCAmc2FsZW4pID09IC0xKSB7CiAJICAgIHFmcHJpbnRmKHN0ZGVyciwgIkNhbm5vdCBnZXQgb3JpZ2luYWwgc2VydmVyIGFkZHJlc3MuXG4iKTsKIAkgICAgcmV0dXJuIFNOX0VSUl9JTlRFUk5BTDsKQEAgLTE3NzgsNyArMTc3OCw3IEBACiAgICAgICogdGhlIHBvcnQgdGhlIGNsaWVudCBjb25uZWN0ZWQgdG8gd2l0aCBhbiBvZmZzZXQuICovCiAgICAgaWYgKHMtPnNydiAhPSBOVUxMICYmIHMtPnNydi0+c3RhdGUgJiBTUlZfTUFQUE9SVFMpIHsKIAlzdHJ1Y3Qgc29ja2FkZHJfaW4gc29ja25hbWU7Ci0JaW50IG5hbWVsZW47CisJc29ja2xlbl90IG5hbWVsZW47CiAKIAluYW1lbGVuID0gc2l6ZW9mKHNvY2tuYW1lKTsKIAlpZiAoZ2V0X29yaWdpbmFsX2RzdChzLT5jbGlfZmQsIChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikmc29ja25hbWUsICZuYW1lbGVuKSA9PSAtMSkKQEAgLTI0NDEsNyArMjQ0MSw3IEBACiAKICAgICB3aGlsZSAocC0+bmJjb25uIDwgcC0+bWF4Y29ubikgewogCXN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGFkZHI7Ci0JaW50IGxhZGRyID0gc2l6ZW9mKGFkZHIpOworCXNvY2tsZW5fdCBsYWRkciA9IHNpemVvZihhZGRyKTsKIAlpZiAoKGNmZCA9IGFjY2VwdChmZCwgKHN0cnVjdCBzb2NrYWRkciAqKSZhZGRyLCAmbGFkZHIpKSA9PSAtMSkgewogCSAgICBzd2l0Y2ggKGVycm5vKSB7CiAJICAgIGNhc2UgRUFHQUlOOgpAQCAtMjU4OSw3ICsyNTg5LDcgQEAKIAlpZiAoKHAtPm1vZGUgPT0gUFJfTU9ERV9UQ1AgfHwgcC0+bW9kZSA9PSBQUl9NT0RFX0hUVFApCiAJICAgICYmIChwLT5sb2dmYWMxID49IDAgfHwgcC0+bG9nZmFjMiA+PSAwKSkgewogCSAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBzb2NrbmFtZTsKLQkgICAgaW50IG5hbWVsZW47CisJICAgIHNvY2tsZW5fdCBuYW1lbGVuOwogCiAJICAgIG5hbWVsZW4gPSBzaXplb2Yoc29ja25hbWUpOwogCSAgICBpZiAoYWRkci5zc19mYW1pbHkgIT0gQUZfSU5FVCB8fApAQCAtMjYzMCw3ICsyNjMwLDcgQEAKIAogCWlmICgoZ2xvYmFsLm1vZGUgJiBNT0RFX0RFQlVHKSAmJiAoIShnbG9iYWwubW9kZSAmIE1PREVfUVVJRVQpIHx8IChnbG9iYWwubW9kZSAmIE1PREVfVkVSQk9TRSkpKSB7CiAJICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBzb2NrbmFtZTsKLQkgICAgaW50IG5hbWVsZW47CisJICAgIHNvY2tsZW5fdCBuYW1lbGVuOwogCSAgICBpbnQgbGVuOwogCSAgICBuYW1lbGVuID0gc2l6ZW9mKHNvY2tuYW1lKTsKIAkgICAgaWYgKGFkZHIuc3NfZmFtaWx5ICE9IEFGX0lORVQgfHwKQEAgLTI3NTQsNyArMjc1NCw4IEBACiAgICAgc3RydWN0IHRhc2sgKnQgPSBmZHRhYltmZF0ub3duZXI7CiAgICAgc3RydWN0IHNlcnZlciAqcyA9IHQtPmNvbnRleHQ7CiAKLSAgICBpbnQgc2tlcnIsIGxza2VycjsKKyAgICBpbnQgc2tlcnI7CisgICAgc29ja2xlbl90IGxza2VycjsKICAgICBsc2tlcnIgPSBzaXplb2Yoc2tlcnIpOwogICAgIGdldHNvY2tvcHQoZmQsIFNPTF9TT0NLRVQsIFNPX0VSUk9SLCAmc2tlcnIsICZsc2tlcnIpOwogICAgIC8qIGluIGNhc2Ugb2YgVENQIG9ubHksIHRoaXMgdGVsbHMgdXMgaWYgdGhlIGNvbm5lY3Rpb24gc3VjY2VlZGVkICovCg==