From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Orphaned Packages Process To: git-commits@fedoraproject.org Subject: [rpms/pads] rawhide: Orphaned for 6+ weeks Date: Wed, 22 Jul 2026 05:23:28 GMT Message-ID: <178469780826.1.10852557131615079775.rpms-pads-ddfaf23f7505@fedoraproject.org> List-ID: X-Git-Repo: rpms/pads X-Git-Branch: rawhide X-Git-Rev: ddfaf23f7505ecef48df144bc248c65682aaecf0 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcGFkcwpCcmFuY2gg OiByYXdoaWRlCkNvbW1pdCA6IGRkZmFmMjNmNzUwNWVjZWY0OGRmMTQ0YmMyNDhjNjU2ODJhYWVj ZjAKQXV0aG9yIDogT3JwaGFuZWQgUGFja2FnZXMgUHJvY2VzcyA8cGFja2FnaW5nLXJlcG9ydHNA ZmVkb3JhcHJvamVjdC5vcmc+CkRhdGUgICA6IDIwMjYtMDctMjJUMDA6MjM6MjItMDU6MDAKU3Rh dHMgIDogKzEvLTE3NTQwIGluIDI3IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3Jh cHJvamVjdC5vcmcvcnBtcy9wYWRzL2MvZGRmYWYyM2Y3NTA1ZWNlZjQ4ZGYxNDRiYzI0OGM2NTY4 MmFhZWNmMD9icmFuY2g9cmF3aGlkZQoKTG9nOgpPcnBoYW5lZCBmb3IgNisgd2Vla3MKCi0tLQpk aWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDNkNTA3Y2IuLjAwMDAwMDAKLS0tIGEvLmdpdGlnbm9yZQorKysgL2Rldi9udWxs CkBAIC0xICswLDAgQEAKLXBhZHMtMS4yLnRhci5negoKZGlmZiAtLWdpdCBhL2RlYWQucGFja2Fn ZSBiL2RlYWQucGFja2FnZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjA0 YTg0Ci0tLSAvZGV2L251bGwKKysrIGIvZGVhZC5wYWNrYWdlCkBAIC0wLDAgKzEgQEAKK09ycGhh bmVkIGZvciA2KyB3ZWVrcwoKZGlmZiAtLWdpdCBhL3BhZHMrdmxhbi5wYXRjaCBiL3BhZHMrdmxh bi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWI2Yjc1NS4uMDAwMDAwMAot LS0gYS9wYWRzK3ZsYW4ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNTMgKzAsMCBAQAotZGlm ZiAtciAtYyAuL3NyYy9wYWNrZXQuYyAuLi9wYWRzLTEuMit2bGFuL3NyYy9wYWNrZXQuYwotKioq IC4vc3JjL3BhY2tldC5jCTIwMDUtMDItMTUgMjA6NDc6MzUuMDAwMDAwMDAwIC0wNTAwCi0tLS0g Li4vcGFkcy0xLjIrdmxhbi9zcmMvcGFja2V0LmMJMjAwNy0wOC0yNCAxMDoxMTo1OS4wMDAwMDAw MDAgLTA0MDAKLSoqKioqKioqKioqKioqKgotKioqIDM1LDU5ICoqKioKLSAgICoJCTogMSAtIFBh Y2tldAotICAgKiBSRVRVUk4JOiBOb25lIQotICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0gIHZvaWQgcHJvY2Vzc19ldGgg KGNvbnN0IHN0cnVjdCBwY2FwX3BrdGhkciogcGt0aGRyLCBjb25zdCB1X2NoYXIqIHBhY2tldCkK LSAgewotICAgICAgc3RydWN0IGV0aGVyX2hlYWRlciAqZXRoaDsJCS8qIG5ldC9ldGhlcm5ldC5o ICovCi0gIAotISAgICAgLyogRXh0cmFjdCB0aGUgZXRoZXJuZXQgaGVhZGVyIGZyb20gdGhlIHBh Y2tldC4gKi8KLSEgICAgIGV0aGggPSAoc3RydWN0IGV0aGVyX2hlYWRlciopIHBhY2tldDsKLSAg Ci0gICAgICAvKiBEZXRlcm1pbmUgd2hhdCB0eXBlIG9mIGV0aGVybmV0IHBhY2tldCB0aGlzIGlz LiAqLwotICAgICAgc3dpdGNoIChudG9ocyhldGhoLT5ldGhlcl90eXBlKSkgewotICAJLyogSVAg Ki8KLSAgCWNhc2UgRVRIRVJUWVBFX0lQOgotISAJICAgIHByb2Nlc3NfaXAgKHBrdGhkciwgcGFj a2V0LCBzaXplb2Yoc3RydWN0IGV0aGVyX2hlYWRlcikpOwotISAJICAgIGJyZWFrOwotICAKLSAg CS8qIEFSUCAqLwotICAJY2FzZSBFVEhFUlRZUEVfQVJQOgotISAJICAgIHByb2Nlc3NfYXJwIChw a3RoZHIsIHBhY2tldCwgc2l6ZW9mKHN0cnVjdCBldGhlcl9oZWFkZXIpKTsKLSAgCSAgICBicmVh azsKLSEgCi0gIAkvKiBVbmtub3duIFR5cGUgKi8KLSAgCWRlZmF1bHQ6Ci0gIAkgICAgcmV0dXJu OwotLS0tIDM1LDcyIC0tLS0KLSAgICoJCTogMSAtIFBhY2tldAotICAgKiBSRVRVUk4JOiBOb25l IQotICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICovCi0rIAotKyAvKiBVcGRhdGUgLSBkYXZpZEB2b3JhbnQuY29tICAxOCBKdW5l IDIwMDcKLSsgICogVHJ5IHRvIGRldGVjdCB3aGV0aGVyIHRoZSBwYWNrZXQgaGFzIGFuIDgwMi4x USBWTEFOIHRhZyBvbiBpdC4gIElmIHNvLAotKyAgKiB0cnkgdG8gYXV0b21hdGljYWxseSBza2lw IHRoZSB0YWcgYW5kIHRyZWF0IGl0IGFzIHJlZ3VsYXIgVENQL0lQIHRyYWZmaWMuCi0rICAqIE90 aGVyd2lzZSB0aGUgaGFuZGxlciB3b24ndCBwcm9jZXNzIHRoZSBwYWNrZXQuICBUaGlzIGlzIHVz ZWZ1bCB3aGVuLAotKyAgKiBmb3IgZXhhbXBsZSwgeW91IGFyZSBtb25pdG9yaW5nIGEgVkxBTiB0 cnVuayBsaW5lLgotKyAgKi8KLSAgdm9pZCBwcm9jZXNzX2V0aCAoY29uc3Qgc3RydWN0IHBjYXBf cGt0aGRyKiBwa3RoZHIsIGNvbnN0IHVfY2hhciogcGFja2V0KQotICB7Ci0gICAgICBzdHJ1Y3Qg ZXRoZXJfaGVhZGVyICpldGhoOwkJLyogbmV0L2V0aGVybmV0LmggKi8KLSsgICAgIHVfY2hhciAq IG15X3BhY2tldDsKLSAgCi0hICAgICBteV9wYWNrZXQgPSAodV9jaGFyICopcGFja2V0OwotICAK LSsgICAgIC8qIEV4dHJhY3QgdGhlIGV0aGVybmV0IGhlYWRlciBmcm9tIHRoZSBwYWNrZXQuICov Ci0rICAgICBldGhoID0gKHN0cnVjdCBldGhlcl9oZWFkZXIqKSBteV9wYWNrZXQ7Ci0rICAgICBp ZihudG9ocyhldGhoLT5ldGhlcl90eXBlKSA9PSBWTEFOX0VUSEVSVFlQRSkgeyAvKiBzdHJpcCB0 aGUgdmxhbiB0YWdzICovCi0rICAgICAgIGV0aGggPSAoc3RydWN0IGV0aGVyX2hlYWRlciopIChw YWNrZXQgKyBWTEFOX0hEUkxFTik7Ci0rICAgICAgIG15X3BhY2tldCArPSBWTEFOX0hEUkxFTjsK LSsgICAgIH0KLSAgICAgIC8qIERldGVybWluZSB3aGF0IHR5cGUgb2YgZXRoZXJuZXQgcGFja2V0 IHRoaXMgaXMuICovCi0gICAgICBzd2l0Y2ggKG50b2hzKGV0aGgtPmV0aGVyX3R5cGUpKSB7Ci0g IAkvKiBJUCAqLwotICAJY2FzZSBFVEhFUlRZUEVfSVA6Ci0hIAkgIHByb2Nlc3NfaXAgKHBrdGhk ciwgbXlfcGFja2V0LCBzaXplb2Yoc3RydWN0IGV0aGVyX2hlYWRlcikpOwotISAJICBicmVhazsK LSAgCi0gIAkvKiBBUlAgKi8KLSAgCWNhc2UgRVRIRVJUWVBFX0FSUDoKLSEgCSAgICBwcm9jZXNz X2FycCAocGt0aGRyLCBteV9wYWNrZXQsIHNpemVvZihzdHJ1Y3QgZXRoZXJfaGVhZGVyKSk7Ci0g IAkgICAgYnJlYWs7Ci0hICAKLSAgCS8qIFVua25vd24gVHlwZSAqLwotICAJZGVmYXVsdDoKLSAg CSAgICByZXR1cm47Ci0qKioqKioqKioqKioqKioKLSoqKiAxMTMsMTIwICoqKioKLSAgICAgIHN0 cnVjdCBpcCAqaXBoOwkJCS8qIG5ldGluZXQvaXAuaCAqLwotICAKLSAgICAgIC8qIEV4dHJhY3Qg dGhlIElQIGhlYWRlciBmcm9tIHRoaXMgcGFja2V0LiAqLwotISAgICAgaXBoID0gKHN0cnVjdCBp cCopKHBhY2tldCArIGxlbik7Ci0hIAotICAgICAgLyogRGV0ZXJtaW5lIHdoYXQgdHlwZSBvZiBJ UCBwYWNrZXQgdGhpcyBpcy4gKi8KLSAgICAgIHN3aXRjaCAoaXBoLT5pcF9wKSB7Ci0gIAljYXNl IElQUFJPVE9fVENQOgotLS0tIDEyNiwxMzIgLS0tLQotICAgICAgc3RydWN0IGlwICppcGg7CQkJ LyogbmV0aW5ldC9pcC5oICovCi0gIAotICAgICAgLyogRXh0cmFjdCB0aGUgSVAgaGVhZGVyIGZy b20gdGhpcyBwYWNrZXQuICovCi0hICAgICAgIGlwaCA9IChzdHJ1Y3QgaXAqKShwYWNrZXQgKyBs ZW4pOwotICAgICAgLyogRGV0ZXJtaW5lIHdoYXQgdHlwZSBvZiBJUCBwYWNrZXQgdGhpcyBpcy4g Ki8KLSAgICAgIHN3aXRjaCAoaXBoLT5pcF9wKSB7Ci0gIAljYXNlIElQUFJPVE9fVENQOgotZGlm ZiAtciAtYyAuL3NyYy9wYWNrZXQuaCAuLi9wYWRzLTEuMit2bGFuL3NyYy9wYWNrZXQuaAotKioq IC4vc3JjL3BhY2tldC5oCTIwMDUtMDItMTAgMDE6MDU6MDUuMDAwMDAwMDAwIC0wNTAwCi0tLS0g Li4vcGFkcy0xLjIrdmxhbi9zcmMvcGFja2V0LmgJMjAwNy0wOC0yNCAxMDoxMTowMi4wMDAwMDAw MDAgLTA0MDAKLSoqKioqKioqKioqKioqKgotKioqIDQwLDQ1ICoqKioKLS0tLSA0MCw1MSAtLS0t Ci0gICNlbmRpZiAvKiBpZmRlZiBMSU5VWCAqLwotICAKLSAgCi0rIC8qIDgwMi4xUSBWTEFOIHRh Z3MgYXJlIDQgYnl0ZXMgbG9uZy4gKi8KLSsgI2RlZmluZSBWTEFOX0hEUkxFTiA0Ci0rIAotKyAv KiBUaGlzIGlzIHRoZSBkZWNpbWFsIGVxdWl2YWxlbnQgb2YgdGhlIFZMQU4gdGFnJ3MgZXRoZXIg ZnJhbWUgdHlwZSAqLwotKyAjZGVmaW5lIFZMQU5fRVRIRVJUWVBFIDMzMDI0Ci0rIAotICAvKiBJ TkNMVURFUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0gICNp bmNsdWRlICJnbG9iYWwuaCIKLSAgCi0qKioqKioqKioqKioqKioKLSoqKiA0Nyw1MyAqKioqCi0g ICNpbmNsdWRlIDxuZXRpbmV0L3RjcC5oPgotICAjaW5jbHVkZSA8bmV0aW5ldC9pcF9pY21wLmg+ Ci0gIAotLSAKLSAgLyogREFUQSBTVFJVQ1RVUkVTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSAqLwotICAKLSAgLyoKLS0tLSA1Myw1OCAtLS0tCi1kaWZmIC1yIC1jIC4vc3JjL3Bh ZHMuYyAuLi9wYWRzLTEuMit2bGFuL3NyYy9wYWRzLmMKLSoqKiAuL3NyYy9wYWRzLmMJMjAwNS0w Ni0xNSAxODowMDo0MC4wMDAwMDAwMDAgLTA0MDAKLS0tLSAuLi9wYWRzLTEuMit2bGFuL3NyYy9w YWRzLmMJMjAwNy0wNi0xOCAxNToyOToxNy4wMDAwMDAwMDAgLTA0MDAKLSoqKioqKioqKioqKioq KgotKioqIDIwNCwyMDkgKioqKgotLS0tIDIwNCwyMTAgLS0tLQotICB2b2lkCi0gIG1haW5fcGFk cyAodm9pZCkKLSAgewotKyAgICAgY2hhciBwY2FwX2ZpbHRlclsxMDQ0XTsKLSAgICAgIC8qIElu aXRpYWxpemUgKi8KLSAgICAgIGluaXRfcGFkcygpOwotICAKLSoqKioqKioqKioqKioqKgotKioq IDI1NSwyNjIgKioqKgotICAKLSAgICAgIC8qIENvbXBpbGUgbGlicGNhcCBmaWx0ZXIgKi8KLSAg ICAgIGlmIChwcm9nX2FyZ2MgPiAwKSB7Ci0hICAgICAgICAgbG9nX21lc3NhZ2UoIkZpbHRlcjog ICVzXG4iLCBnYy5wY2FwX2ZpbHRlcik7Ci0hICAgICAgICAgaWYgKHBjYXBfY29tcGlsZShnYy5o YW5kbGUsICZnYy5maWx0ZXIsIGdjLnBjYXBfZmlsdGVyLCAwLCBnYy5uZXQpID09IC0xKSB7Ci0g ICAgICAgICAgICAgIGVycl9tZXNzYWdlKCJVbmFibGUgdG8gY29tcGlsZSBwY2FwIGZpbHRlciEg ICVzIiwgcGNhcF9nZXRlcnIoZ2MuaGFuZGxlKSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIGlm IChwY2FwX3NldGZpbHRlcihnYy5oYW5kbGUsICZnYy5maWx0ZXIpKSB7Ci0tLS0gMjU2LDI2OSAt LS0tCi0gIAotICAgICAgLyogQ29tcGlsZSBsaWJwY2FwIGZpbHRlciAqLwotICAgICAgaWYgKHBy b2dfYXJnYyA+IDApIHsKLSEgICAgICAgaWYoZ2MucGNhcF9maWx0ZXIpIHsKLSEgCXN0cmNweShw Y2FwX2ZpbHRlciwgIihpcCBvciB2bGFuKSBhbmQgIik7Ci0hIAlzdHJuY2F0KHBjYXBfZmlsdGVy LCBnYy5wY2FwX2ZpbHRlciwgMTAyNCk7Ci0hICAgICAgIH0gZWxzZSB7Ci0hIAlzdHJjcHkocGNh cF9maWx0ZXIsICIoaXAgb3IgdmxhbikiKTsKLSEgICAgICAgfQotISAgICAgICAgIGxvZ19tZXNz YWdlKCJGaWx0ZXI6ICAlc1xuIiwgcGNhcF9maWx0ZXIpOwotISAgICAgICAgIGlmIChwY2FwX2Nv bXBpbGUoZ2MuaGFuZGxlLCAmZ2MuZmlsdGVyLCBwY2FwX2ZpbHRlciwgMCwgZ2MubmV0KSA9PSAt MSkgewotICAgICAgICAgICAgICBlcnJfbWVzc2FnZSgiVW5hYmxlIHRvIGNvbXBpbGUgcGNhcCBm aWx0ZXIhICAlcyIsIHBjYXBfZ2V0ZXJyKGdjLmhhbmRsZSkpOwotICAgICAgICAgIH0KLSAgICAg ICAgICBpZiAocGNhcF9zZXRmaWx0ZXIoZ2MuaGFuZGxlLCAmZ2MuZmlsdGVyKSkgewoKZGlmZiAt LWdpdCBhL3BhZHMtMS4yLWFycC5wYXRjaCBiL3BhZHMtMS4yLWFycC5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggYjQ3ZTBjMi4uMDAwMDAwMAotLS0gYS9wYWRzLTEuMi1hcnAu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNzMgKzAsMCBAQAotZGlmZiAtdXJwIHBhZHMtMS4y Lm9yaWcvc3JjL21hYy1yZXNvbHV0aW9uLmMgcGFkcy0xLjIvc3JjL21hYy1yZXNvbHV0aW9uLmMK LS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9tYWMtcmVzb2x1dGlvbi5jCTIwMDgtMDYtMzAgMTM6NTY6 NTIuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL21hYy1yZXNvbHV0aW9uLmMJMjAw OC0wNy0wNyAxMjowNzozNi4wMDAwMDAwMDAgLTA0MDAKLUBAIC0xNjAsNyArMTYwLDcgQEAgaW50 IGFkZF92ZW5kb3IgKGNoYXIgKm1hYywgY2hhciAqdmVuZG9yKQotICAqIElOUFVUICAgICAgICA6 IDAgLSBNQUMgQWRkcmVzcwotICAqIFJFVFVSTiAgICAgICA6IFZlbmRvciBOYW1lCi0gICogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq LwotLWJzdHJpbmcgZ2V0X3ZlbmRvciAoY2hhciAqbSkKLStic3RyaW5nIGdldF92ZW5kb3IgKGNv bnN0IGNoYXIgKm0pCi0gewotICAgICBWZW5kb3IgKmxpc3Q7Ci0gICAgIGNoYXIgbWFjWzRdOwot ZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3JjL21hYy1yZXNvbHV0aW9uLmggcGFkcy0xLjIvc3Jj L21hYy1yZXNvbHV0aW9uLmgKLS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9tYWMtcmVzb2x1dGlvbi5o CTIwMDgtMDYtMjkgMjA6MTY6MzAuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL21h Yy1yZXNvbHV0aW9uLmgJMjAwOC0wNy0wNyAxMjowNzozNi4wMDAwMDAwMDAgLTA0MDAKLUBAIC00 MSw3ICs0MSw3IEBACi0gaW50IGluaXRfbWFjX3Jlc29sdXRpb24gKHZvaWQpOwotIGludCBwYXJz ZV9yYXdfbWFjIChic3RyaW5nIGxpbmUpOwotIGludCBhZGRfdmVuZG9yIChjaGFyICptYWMsIGNo YXIgKnZlbmRvcik7Ci0tYnN0cmluZyBnZXRfdmVuZG9yIChjaGFyICptKTsKLStic3RyaW5nIGdl dF92ZW5kb3IgKGNvbnN0IGNoYXIgKm0pOwotIHZvaWQgZW5kX21hY19yZXNvbHV0aW9uICh2b2lk KTsKLSAKLSAjaWZkZWYgREVCVUcKLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy9vdXRwdXQv b3V0cHV0LWNzdi5jIHBhZHMtMS4yL3NyYy9vdXRwdXQvb3V0cHV0LWNzdi5jCi0tLS0gcGFkcy0x LjIub3JpZy9zcmMvb3V0cHV0L291dHB1dC1jc3YuYwkyMDA4LTA3LTAyIDA5OjI0OjE5LjAwMDAw MDAwMCAtMDQwMAotKysrIHBhZHMtMS4yL3NyYy9vdXRwdXQvb3V0cHV0LWNzdi5jCTIwMDgtMDct MDcgMTI6MDc6MzYuMDAwMDAwMDAwIC0wNDAwCi1AQCAtOTEsNiArOTEsNyBAQCBpbml0X291dHB1 dF9jc3YgKGJzdHJpbmcgZmlsZW5hbWUpCi0gCS8qIEZpbGUgZG9lcyBub3QgZXhpc3QsIGNyZWF0 ZSBuZXcuLiAqLwotIAlpZiAoKG91dHB1dF9jc3ZfY29uZi5maWxlID0gZm9wZW4oKGNoYXIgKili ZGF0YShvdXRwdXRfY3N2X2NvbmYuZmlsZW5hbWUpLCAidyIpKSAhPSBOVUxMKSB7Ci0gCSAgICBm cHJpbnRmKG91dHB1dF9jc3ZfY29uZi5maWxlLCAiYXNzZXQscG9ydCxwcm90byxzZXJ2aWNlLGFw cGxpY2F0aW9uLGRpc2NvdmVyZWRcbiIpOwotKwkgICAgZmZsdXNoKG91dHB1dF9jc3ZfY29uZi5m aWxlKTsKLSAKLSAJfSBlbHNlIHsKLSAJICAgIGVycl9tZXNzYWdlKCJDYW5ub3Qgb3BlbiBmaWxl ICVzISIsIGJkYXRhKG91dHB1dF9jc3ZfY29uZi5maWxlbmFtZSkpOwotQEAgLTIxNiw4ICsyMTcs MTEgQEAgcGFyc2VfcmF3X3JlcG9ydCAoYnN0cmluZyBsaW5lKQotICAgICAvKiBBZGQgQXNzZXQg dG8gRGF0YSBTdHJ1Y3R1cmUgKi8KLSAgICAgaWYgKHByb3RvID09IDAgJiYgcmV0ICE9IC0xKSB7 Ci0gCS8qIEFSUCAqLwotLQltYWMyaGV4KChjaGFyICopYmRhdGEoYXBwbGljYXRpb24pLCBtYWNf YWRkciwgTUFDX0xFTik7Ci0tCWFkZF9hcnBfYXNzZXQoaXBfYWRkciwgbWFjX2FkZHIsIGRpc2Nv dmVyZWQpOwotKwlpZiAobWFjMmhleCgoY2hhciAqKWJkYXRhKGFwcGxpY2F0aW9uKSwgbWFjX2Fk ZHIsIE1BQ19MRU4pID09IDApCi0rCQlhZGRfYXJwX2Fzc2V0KGlwX2FkZHIsIG1hY19hZGRyLCBk aXNjb3ZlcmVkKTsKLSsJZWxzZQotKwkJbG9nX21lc3NhZ2UoIkVycm9yIHBhcnNpbmcgSFdhZGRy ICVzIC0gc2tpcHBpbmciLCAKLSsJCQkoY2hhciAqKWJkYXRhKGFwcGxpY2F0aW9uKSk7Ci0gICAg IH0gZWxzZSB7Ci0gCS8qIEV2ZXJ5dGhpbmcgRWxzZSAqLwotIAlhZGRfYXNzZXQoaXBfYWRkciwg cG9ydCwgcHJvdG8sIHNlcnZpY2UsIGFwcGxpY2F0aW9uLCBkaXNjb3ZlcmVkKTsKLWRpZmYgLXVy cCBwYWRzLTEuMi5vcmlnL3NyYy9zdG9yYWdlLmMgcGFkcy0xLjIvc3JjL3N0b3JhZ2UuYwotLS0t IHBhZHMtMS4yLm9yaWcvc3JjL3N0b3JhZ2UuYwkyMDA4LTA2LTMwIDE3OjU0OjMzLjAwMDAwMDAw MCAtMDQwMAotKysrIHBhZHMtMS4yL3NyYy9zdG9yYWdlLmMJMjAwOC0wNy0wNyAxMjowNzozNi4w MDAwMDAwMDAgLTA0MDAKLUBAIC0xMDgsNyArMTA4LDcgQEAgaW50IGNoZWNrX2FycF9hc3NldCAo c3RydWN0IGluX2FkZHIgaXBfYQotICAgICByZWMgPSBhcnBfYXNzZXRfbGlzdDsKLSAgICAgd2hp bGUgKHJlYyAhPSBOVUxMKSB7Ci0gCWlmIChyZWMtPmlwX2FkZHIuc19hZGRyID09IGlwX2FkZHIu c19hZGRyCi0tCQkmJiAoc3RyY21wKHJlYy0+bWFjX2FkZHIsIG1hY19hZGRyKSA9PSAwKSkgewot KwkJJiYgKG1lbWNtcChyZWMtPm1hY19hZGRyLCBtYWNfYWRkciwgTUFDX0xFTikgPT0gMCkpIHsK LSAJICAgIHJldHVybiAwOwotIAotIAl9IGVsc2UgewotQEAgLTIwMCw3ICsyMDAsNyBAQCB2b2lk IGFkZF9hc3NldCAoc3RydWN0IGluX2FkZHIgaXBfYWRkciwKLSAgKgkJOiAyIC0gRGlzY292ZXJl ZAotICAqIFJFVFVSTgk6IE5vbmUhCi0gICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotLXZvaWQgYWRkX2FycF9hc3NldCAoc3Ry dWN0IGluX2FkZHIgaXBfYWRkciwgY2hhciBtYWNfYWRkcltNQUNfTEVOXSwKLSt2b2lkIGFkZF9h cnBfYXNzZXQgKHN0cnVjdCBpbl9hZGRyIGlwX2FkZHIsIGNvbnN0IGNoYXIgKm1hY19hZGRyLAot IAkJICAgIHRpbWVfdCBkaXNjb3ZlcmVkKQotIHsKLSAgICAgQXJwQXNzZXQgKmxpc3Q7Ci1kaWZm IC11cnAgcGFkcy0xLjIub3JpZy9zcmMvc3RvcmFnZS5oIHBhZHMtMS4yL3NyYy9zdG9yYWdlLmgK LS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9zdG9yYWdlLmgJMjAwOC0wNi0yOSAyMDoxNjozMC4wMDAw MDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvc3RvcmFnZS5oCTIwMDgtMDctMDcgMTI6MDc6 MzYuMDAwMDAwMDAwIC0wNDAwCi1AQCAtNTIsNyArNTIsNyBAQCBpbnQgY2hlY2tfdGNwX2Fzc2V0 IChzdHJ1Y3QgaW5fYWRkciBpcF9hCi0gaW50IGNoZWNrX2ljbXBfYXNzZXQgKHN0cnVjdCBpbl9h ZGRyIGlwX2FkZHIpOwotIGludCBjaGVja19hcnBfYXNzZXQgKHN0cnVjdCBpbl9hZGRyIGlwX2Fk ZHIsIGNoYXIgbWFjX2FkZHJbTUFDX0xFTl0pOwotIHZvaWQgYWRkX2Fzc2V0IChzdHJ1Y3QgaW5f YWRkciBpcF9hZGRyLCB1X2ludDE2X3QgcG9ydCwgdW5zaWduZWQgc2hvcnQgcHJvdG8sIGJzdHJp bmcgc2VydmljZSwgYnN0cmluZyBhcHBsaWNhdGlvbiwgdGltZV90IGRpc2NvdmVyZWQpOwotLXZv aWQgYWRkX2FycF9hc3NldCAoc3RydWN0IGluX2FkZHIgaXBfYWRkciwgY2hhciBtYWNfYWRkcltN QUNfTEVOXSwgdGltZV90IGRpc2NvdmVyZWQpOwotK3ZvaWQgYWRkX2FycF9hc3NldCAoc3RydWN0 IGluX2FkZHIgaXBfYWRkciwgY29uc3QgY2hhciAqbWFjX2FkZHIsIHRpbWVfdCBkaXNjb3ZlcmVk KTsKLSB1bnNpZ25lZCBzaG9ydCBnZXRfaV9hdHRlbXB0cyAoc3RydWN0IGluX2FkZHIgaXBfYWRk ciwgdV9pbnQxNl90IHBvcnQsIHVuc2lnbmVkIHNob3J0IHByb3RvKTsKLSBzaG9ydCB1cGRhdGVf aV9hdHRlbXB0cyAoc3RydWN0IGluX2FkZHIgaXBfYWRkciwgdV9pbnQxNl90IHBvcnQsIHVuc2ln bmVkIHNob3J0IHByb3RvLCB1bnNpZ25lZCBzaG9ydCBpX2F0dGVtcHRzKTsKLSBzaG9ydCB1cGRh dGVfYXNzZXQgKHN0cnVjdCBpbl9hZGRyIGlwX2FkZHIsIHVfaW50MTZfdCBwb3J0LCB1bnNpZ25l ZCBzaG9ydCBwcm90bywgYnN0cmluZyBzZXJ2aWNlLCBic3RyaW5nIGFwcGxpY2F0aW9uKTsKLWRp ZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy91dGlsLmMgcGFkcy0xLjIvc3JjL3V0aWwuYwotLS0t IHBhZHMtMS4yLm9yaWcvc3JjL3V0aWwuYwkyMDA4LTA3LTAyIDA5OjI0OjE5LjAwMDAwMDAwMCAt MDQwMAotKysrIHBhZHMtMS4yL3NyYy91dGlsLmMJMjAwOC0wNy0wNyAxMjowODowMC4wMDAwMDAw MDAgLTA0MDAKLUBAIC0yNyw2ICsyNyw3IEBACi0gICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotICNpbmNs dWRlIDx1bmlzdGQuaD4KLSAjaW5jbHVkZSA8Y3R5cGUuaD4KLSsjaW5jbHVkZSA8ZXJybm8uaD4K LSAjaW5jbHVkZSAidXRpbC5oIgotICNpbmNsdWRlICJwYWRzLmgiCi0gCi1AQCAtNDI2LDMxICs0 MjcsMzkgQEAgZHJvcF9wcml2cyAoYnN0cmluZyBuZXd1c2VyLCBic3RyaW5nIG5ldwotICAqIElO UFVUICAgICAgICA6IDAgLSBNQUMgQWRkcmVzcwotICAqICAgICAgICAgICAgICA6IDEgLSBDb252 ZXJ0ZWQKLSAgKiAgICAgICAgICAgICAgOiAwIC0gU2l6ZSBvZiAxCi0tICogUkVUVVJOICAgICAg IDogTm9uZQotKyAqIFJFVFVSTiAgICAgICA6IDAgLSBzdWNjZXNzLCAtMSBmYWlsdXJlCi0gICog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSAqLwotLXZvaWQKLStpbnQKLSBtYWMyaGV4KGNvbnN0IGNoYXIgKm1hYywgY2hhciAqZHN0LCBp bnQgbGVuKQotIHsKLSAgICAgaW50IGk7Ci0tICAgIGxvbmcgbDsKLS0gICAgY2hhciAqcHA7Ci0r ICAgIHVuc2lnbmVkIGxvbmcgbDsKLSAKLSAgICAgaWYgKGxlbiA8IDYpCi0tICAgICAgICByZXR1 cm47Ci0rICAgICAgICByZXR1cm4gLTE7Ci0gCi0gICAgIHdoaWxlIChpc3NwYWNlKCptYWMpKQot ICAgICAgICAgbWFjKys7Ci0gCi0gICAgIC8qIGV4cGVjdCA2IGhleCBvY3RldHMgc2VwYXJhdGVk IGJ5ICc6JyBvciBzcGFjZS9OVUwgaWYgbGFzdCBvY3RldCAqLwotLSAgICBmb3IgKGkgPSAwOyBp IDwgNjsgaSsrKSB7Ci0tICAgICAgICBsID0gc3RydG9sKG1hYywgJnBwLCAxNik7Ci0tICAgICAg ICBpZiAocHAgPT0gbWFjIHx8IGwgPiAweEZGIHx8IGwgPCAwKQotLSAgICAgICAgICAgIHJldHVy bjsKLS0gICAgICAgIGlmICghKCpwcCA9PSAnOicgfHwgKGkgPT0gNSAmJiAoaXNzcGFjZSgqcHAp IHx8ICpwcCA9PSAnXDAnKSkpKQotLSAgICAgICAgICAgIHJldHVybjsKLS0gICAgICAgIGRzdFtp XSA9ICh1X2NoYXIpIGw7Ci0tICAgICAgICBtYWMgPSBwcCArIDE7Ci0rICAgIGZvciAoaSA9IDA7 IGkgPCBNQUNfTEVOOyBpKyspIHsKLSsgICAgICAgIGNoYXIgdG1wWzNdOwotKwotKyAgICAgICAg d2hpbGUgKCptYWMgPT0gJzonIHx8ICptYWMgPT0gJyAnKQotKyAgICAgICAgICAgIG1hYysrOwot KyAgICAgICAgaWYgKG1hY1swXSA9PSAwIHx8IG1hY1sxXSA9PSAwKQotKyAgICAgICAgICAgIHJl dHVybiAtMTsKLSsgICAgICAgIHRtcFswXSA9IG1hY1swXTsKLSsgICAgICAgIHRtcFsxXSA9IG1h Y1sxXTsKLSsgICAgICAgIHRtcFsyXSA9IDA7Ci0rICAgICAgICBlcnJubyA9IDA7Ci0rICAgICAg ICBsID0gc3RydG91bCh0bXAsIE5VTEwsIDE2KTsKLSsgICAgICAgIGlmIChlcnJubykKLSsgICAg ICAgICAgICByZXR1cm4gLTE7Ci0rICAgICAgICBkc3RbaV0gPSAodV9jaGFyKShsICYgMHhGRik7 Ci0rICAgICAgICBtYWMrPTI7Ci0gICAgIH0KLSsgICAgcmV0dXJuIDA7Ci0gfQotIAotIC8qIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LUBAIC00NjQsMTEgKzQ3MywxMSBAQCBtYWMyaGV4KGNvbnN0IGNoYXIgKm1hYywgY2hhciAqZHN0 LCBpbnQgCi0gY2hhciAqCi0gaGV4Mm1hYyhjb25zdCBjaGFyICptYWMpCi0gewotLSAgICBzdGF0 aWMgY2hhciBidWZbMThdOwotKyAgICBzdGF0aWMgY2hhciBidWZbMzJdOwotIAotICAgICBzbnBy aW50ZihidWYsIHNpemVvZihidWYpLCAiJTAyWDolMDJYOiUwMlg6JTAyWDolMDJYOiUwMlgiLAot LSAgICAgICAgbWFjWzBdLCBtYWNbMV0sIG1hY1syXSwKLS0gICAgICAgIG1hY1szXSwgbWFjWzRd LCBtYWNbNV0pOwotKyAgICAgICAgKG1hY1swXSAmIDB4RkYpICwgKG1hY1sxXSAmIDB4RkYpLCAo bWFjWzJdICYgMHhGRiksCi0rICAgICAgICAobWFjWzNdICYgMHhGRiksIChtYWNbNF0gJiAweEZG KSwgKG1hY1s1XSAmIDB4RkYpKTsKLSAKLSAgICAgcmV0dXJuIGJ1ZjsKLSB9Ci1kaWZmIC11cnAg cGFkcy0xLjIub3JpZy9zcmMvdXRpbC5oIHBhZHMtMS4yL3NyYy91dGlsLmgKLS0tLSBwYWRzLTEu Mi5vcmlnL3NyYy91dGlsLmgJMjAwOC0wNi0zMCAxMzo1Njo1Mi4wMDAwMDAwMDAgLTA0MDAKLSsr KyBwYWRzLTEuMi9zcmMvdXRpbC5oCTIwMDgtMDctMDcgMTI6MDc6MzYuMDAwMDAwMDAwIC0wNDAw Ci1AQCAtNTIsNyArNTIsNyBAQCBzaXplX3Qgc3RybGNweShjaGFyICpkc3QsIGNvbnN0IGNoYXIg KnNyCi0gc2l6ZV90IHN0cmxjYXQoY2hhciAqZHN0LCBjb25zdCBjaGFyICpzcmMsIHNpemVfdCBs ZW4pOwotICNlbmRpZgotIHZvaWQgZHJvcF9wcml2cyAoYnN0cmluZyBuZXd1c2VyLCBic3RyaW5n IG5ld2dyb3VwKTsKLS12b2lkIG1hYzJoZXgoY29uc3QgY2hhciAqbWFjLCBjaGFyICpkc3QsIGlu dCBsZW4pOwotK2ludCBtYWMyaGV4KGNvbnN0IGNoYXIgKm1hYywgY2hhciAqZHN0LCBpbnQgbGVu KTsKLSBjaGFyICpoZXgybWFjKGNvbnN0IGNoYXIgKm1hYyk7Ci0gCi0gLyogR0xPQkFMUyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKZGlmZiAtLWdpdCBhL3Bh ZHMtMS4yLWJzdHJpbmcucGF0Y2ggYi9wYWRzLTEuMi1ic3RyaW5nLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA3ZTc4ZTZkLi4wMDAwMDAwCi0tLSBhL3BhZHMtMS4yLWJzdHJp bmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NjcxICswLDAgQEAKLWRpZmYgLXVycCBwYWRz LTEuMi5vcmlnL2xpYi9ic3RyaW5nL2JzdHJhdXguYyBwYWRzLTEuMi9saWIvYnN0cmluZy9ic3Ry YXV4LmMKLS0tLSBwYWRzLTEuMi5vcmlnL2xpYi9ic3RyaW5nL2JzdHJhdXguYwkyMDA4LTA3LTA4 IDE0OjI4OjI5LjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMtMS4yL2xpYi9ic3RyaW5nL2JzdHJh dXguYwkyMDA4LTA3LTEwIDE4OjA5OjIxLjAwMDAwMDAwMCAtMDQwMAotQEAgLTEsOCArMSw4IEBA Ci0gLyoNCi0gICogVGhpcyBzb3VyY2UgZmlsZSBpcyBwYXJ0IG9mIHRoZSBic3RyaW5nIHN0cmlu ZyBsaWJyYXJ5LiAgVGhpcyBjb2RlIHdhcw0KLS0gKiB3cml0dGVuIGJ5IFBhdWwgSHNpZWggaW4g MjAwMi0yMDA0LCBhbmQgaXMgY292ZXJlZCBieSB0aGUgQlNEIG9wZW4gc291cmNlIA0KLS0gKiBs aWNlbnNlLiBSZWZlciB0byB0aGUgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24gZm9yIGRldGFp bHMgb24gdXNhZ2UgYW5kIA0KLS0gKiBsaWNlbnNlLg0KLSsgKiB3cml0dGVuIGJ5IFBhdWwgSHNp ZWggaW4gMjAwMi0yMDA4LCBhbmQgaXMgY292ZXJlZCBieSB0aGUgQlNEIG9wZW4gc291cmNlIA0K LSsgKiBsaWNlbnNlIGFuZCB0aGUgR1BMLiBSZWZlciB0byB0aGUgYWNjb21wYW55aW5nIGRvY3Vt ZW50YXRpb24gZm9yIGRldGFpbHMgDQotKyAqIG9uIHVzYWdlIGFuZCBsaWNlbnNlLg0KLSAgKi8N Ci0gDQotIC8qDQotQEAgLTE3LDI4ICsxNywxNiBAQAotICNpbmNsdWRlIDxzdGRsaWIuaD4NCi0g I2luY2x1ZGUgPHN0cmluZy5oPg0KLSAjaW5jbHVkZSA8bGltaXRzLmg+DQotKyNpbmNsdWRlIDxj dHlwZS5oPg0KLSAjaW5jbHVkZSAiYnN0cmxpYi5oIg0KLSAjaW5jbHVkZSAiYnN0cmF1eC5oIg0K LSANCi0tLyogIGludCBiVHJ1bmMgKGJzdHJpbmcgYiwgaW50IG4pDQotLSAqDQotLSAqICBUcnVu Y2F0ZSB0aGUgYnN0cmluZyB0byBhdCBtb3N0IG4gY2hhcmFjdGVycy4NCi0tICovDQotLWludCBi VHJ1bmMgKGJzdHJpbmcgYiwgaW50IG4pIHsNCi0tCWlmIChiID09IE5VTEwgfHwgbiA8IDAgfHwg Yi0+bWxlbiA8IGItPnNsZW4pIHJldHVybiAtX19MSU5FX187DQotLQlpZiAoYi0+c2xlbiA+IG4p IHsNCi0tCQliLT5zbGVuID0gbjsNCi0tCQliLT5kYXRhW25dID0gJ1wwJzsJLyogUmVxdWlyZWQg Zm9yIENsaWIgaW50ZXJvcGVyYWJpbGl0eSAqLw0KLS0JfQ0KLS0JcmV0dXJuIDA7DQotLX0NCi0t DQotIC8qICBic3RyaW5nIGJUYWlsIChic3RyaW5nIGIsIGludCBuKQ0KLSAgKg0KLSAgKiAgUmV0 dXJuIHdpdGggYSBzdHJpbmcgb2YgdGhlIGxhc3QgbiBjaGFyYWN0ZXJzIG9mIGIuDQotICAqLw0K LSBic3RyaW5nIGJUYWlsIChic3RyaW5nIGIsIGludCBuKSB7DQotLQlpZiAoYiA9PSBOVUxMIHx8 IG4gPCAwIHx8IGItPm1sZW4gPCBiLT5zbGVuKSByZXR1cm4gTlVMTDsNCi0rCWlmIChiID09IE5V TEwgfHwgbiA8IDAgfHwgKGItPm1sZW4gPCBiLT5zbGVuICYmIGItPm1sZW4gPiAwKSkgcmV0dXJu IE5VTEw7DQotIAlpZiAobiA+PSBiLT5zbGVuKSByZXR1cm4gYnN0cmNweSAoYik7DQotIAlyZXR1 cm4gYm1pZHN0ciAoYiwgYi0+c2xlbiAtIG4sIG4pOw0KLSB9DQotQEAgLTQ4LDcgKzM2LDcgQEAg YnN0cmluZyBiVGFpbCAoYnN0cmluZyBiLCBpbnQgbikgew0KLSAgKiAgUmV0dXJuIHdpdGggYSBz dHJpbmcgb2YgdGhlIGZpcnN0IG4gY2hhcmFjdGVycyBvZiBiLg0KLSAgKi8NCi0gYnN0cmluZyBi SGVhZCAoYnN0cmluZyBiLCBpbnQgbikgew0KLS0JaWYgKGIgPT0gTlVMTCB8fCBuIDwgMCB8fCBi LT5tbGVuIDwgYi0+c2xlbikgcmV0dXJuIE5VTEw7DQotKwlpZiAoYiA9PSBOVUxMIHx8IG4gPCAw IHx8IChiLT5tbGVuIDwgYi0+c2xlbiAmJiBiLT5tbGVuID4gMCkpIHJldHVybiBOVUxMOw0KLSAJ aWYgKG4gPj0gYi0+c2xlbikgcmV0dXJuIGJzdHJjcHkgKGIpOw0KLSAJcmV0dXJuIGJtaWRzdHIg KGIsIDAsIG4pOw0KLSB9DQotQEAgLTU3LDEwICs0NSwxMCBAQCBic3RyaW5nIGJIZWFkIChic3Ry aW5nIGIsIGludCBuKSB7DQotICAqDQotICAqICBGaWxsIGEgZ2l2ZW4gYnN0cmluZyB3aXRoIHRo ZSBjaGFyYWN0ZXIgaW4gcGFyYW1ldGVyIGMsIGZvciBhIGxlbmd0aCBuLg0KLSAgKi8NCi0taW50 IGJGaWxsIChic3RyaW5nIGEsIGNoYXIgYywgaW50IGxlbikgew0KLS0JaWYgKGEgPT0gTlVMTCB8 fCBsZW4gPCAwIHx8IGEtPm1sZW4gPCBhLT5zbGVuKSByZXR1cm4gLV9fTElORV9fOw0KLS0JYS0+ c2xlbiA9IDA7DQotLQlyZXR1cm4gYnNldHN0ciAoYSwgbGVuLCBOVUxMLCBjKTsNCi0raW50IGJG aWxsIChic3RyaW5nIGIsIGNoYXIgYywgaW50IGxlbikgew0KLSsJaWYgKGIgPT0gTlVMTCB8fCBs ZW4gPCAwIHx8IChiLT5tbGVuIDwgYi0+c2xlbiAmJiBiLT5tbGVuID4gMCkpIHJldHVybiAtX19M SU5FX187DQotKwliLT5zbGVuID0gMDsNCi0rCXJldHVybiBic2V0c3RyIChiLCBsZW4sIE5VTEws IGMpOw0KLSB9DQotIA0KLSAvKiAgaW50IGJSZXBsaWNhdGUgKGJzdHJpbmcgYiwgaW50IG4pDQot QEAgLTc5LDE0ICs2NywxNiBAQCBpbnQgYlJldmVyc2UgKGJzdHJpbmcgYikgew0KLSBpbnQgaSwg biwgbTsNCi0gdW5zaWduZWQgY2hhciB0Ow0KLSANCi0tCWlmIChiID09IE5VTEwgfHwgYi0+c2xl biA8IDIgfHwgYi0+bWxlbiA8IGItPnNsZW4pIHJldHVybiAtX19MSU5FX187DQotKwlpZiAoYiA9 PSBOVUxMIHx8IGItPnNsZW4gPCAwIHx8IGItPm1sZW4gPCBiLT5zbGVuKSByZXR1cm4gLV9fTElO RV9fOw0KLSAJbiA9IGItPnNsZW47DQotLQltID0gKCh1bnNpZ25lZCluKSA+PiAxOw0KLS0Jbi0t Ow0KLS0JZm9yIChpPTA7IGkgPCBtOyBpKyspIHsNCi0tCQl0ID0gYi0+ZGF0YVtuIC0gaV07DQot LQkJYi0+ZGF0YVtuIC0gaV0gPSBiLT5kYXRhW2ldOw0KLS0JCWItPmRhdGFbaV0gPSB0Ow0KLSsJ aWYgKDIgPD0gbikgew0KLSsJCW0gPSAoKHVuc2lnbmVkKW4pID4+IDE7DQotKwkJbi0tOw0KLSsJ CWZvciAoaT0wOyBpIDwgbTsgaSsrKSB7DQotKwkJCXQgPSBiLT5kYXRhW24gLSBpXTsNCi0rCQkJ Yi0+ZGF0YVtuIC0gaV0gPSBiLT5kYXRhW2ldOw0KLSsJCQliLT5kYXRhW2ldID0gdDsNCi0rCQl9 DQotIAl9DQotIAlyZXR1cm4gMDsNCi0gfQ0KLUBAIC0xMDYsNyArOTYsNyBAQCBpbnQgYkluc2Vy dENocnMgKGJzdHJpbmcgYiwgaW50IHBvcywgaW50Ci0gCWlmIChwb3MgPCBiLT5zbGVuKSBtZW1t b3ZlIChiLT5kYXRhICsgcG9zICsgbGVuLCBiLT5kYXRhICsgcG9zLCBiLT5zbGVuIC0gcG9zKTsN Ci0gCW1lbXNldCAoYi0+ZGF0YSArIHBvcywgYywgbGVuKTsNCi0gCWItPnNsZW4gKz0gbGVuOw0K LS0JYi0+ZGF0YVtiLT5zbGVuXSA9ICdcMCc7DQotKwliLT5kYXRhW2ItPnNsZW5dID0gKHVuc2ln bmVkIGNoYXIpICdcMCc7DQotIAlyZXR1cm4gQlNUUl9PSzsNCi0gfQ0KLSANCi1AQCAtMTI4LDcg KzExOCw3IEBAIHVuc2lnbmVkIGNoYXIgYyA9ICh1bnNpZ25lZCBjaGFyKSBzcGFjZTsKLSAJfQ0K LSAJaWYgKGogPiAwICYmIGItPmRhdGFbai0xXSA9PSBjKSBqLS07DQotIA0KLS0JYi0+ZGF0YVtq XSA9ICdcMCc7DQotKwliLT5kYXRhW2pdID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotIAliLT5z bGVuID0gajsNCi0gCXJldHVybiBCU1RSX09LOw0KLSB9DQotQEAgLTE3MCw2ICsxNjAsNyBAQCBp bnQgYkp1c3RpZnlNYXJnaW4gKGJzdHJpbmcgYiwgaW50IHdpZHRoCi0gc3RydWN0IGJzdHJMaXN0 ICogc2w7DQotIGludCBpLCBsLCBjOw0KLSANCi0rCWlmIChiID09IE5VTEwgfHwgYi0+c2xlbiA8 IDAgfHwgYi0+bWxlbiA9PSAwIHx8IGItPm1sZW4gPCBiLT5zbGVuKSByZXR1cm4gLV9fTElORV9f Ow0KLSAJaWYgKE5VTEwgPT0gKHNsID0gYnNwbGl0IChiLCAodW5zaWduZWQgY2hhcikgc3BhY2Up KSkgcmV0dXJuIC1fX0xJTkVfXzsNCi0gCWZvciAobD1jPWk9MDsgaSA8IHNsLT5xdHk7IGkrKykg ew0KLSAJCWlmIChzbC0+ZW50cnlbaV0tPnNsZW4gPiAwKSB7DQotQEAgLTIwMSwyOCArMTkyLDc0 IEBAIGludCBpLCBsLCBjOw0KLSAJcmV0dXJuIEJTVFJfT0s7DQotIH0NCi0gDQotLS8qICBjaGFy ICogYlN0cjJOZXRTdHIgKGNvbnN0IGJzdHJpbmcgYikNCi0rc3RhdGljIHNpemVfdCByZWFkTm90 aGluZyAodm9pZCAqYnVmZiwgc2l6ZV90IGVsc2l6ZSwgc2l6ZV90IG5lbGVtLCB2b2lkICpwYXJt KSB7DQotKwlidWZmID0gYnVmZjsNCi0rCWVsc2l6ZSA9IGVsc2l6ZTsNCi0rCW5lbGVtID0gbmVs ZW07DQotKwlwYXJtID0gcGFybTsNCi0rCXJldHVybiAwOyAvKiBJbW1lZGlhdGVseSBpbmRpY2F0 ZSBFT0YuICovDQotK30NCi0rDQotKy8qICBzdHJ1Y3QgYlN0cmVhbSAqIGJzRnJvbUJzdHIgKGNv bnN0X2JzdHJpbmcgYik7DQotKyAqDQotKyAqICBDcmVhdGUgYSBiU3RyZWFtIHdob3NlIGNvbnRl bnRzIGFyZSBhIGNvcHkgb2YgdGhlIGJzdHJpbmcgcGFzc2VkIGluLg0KLSsgKiAgVGhpcyBhbGxv d3MgdGhlIHVzZSBvZiBhbGwgdGhlIGJTdHJlYW0gQVBJcyB3aXRoIGJzdHJpbmdzLg0KLSsgKi8N Ci0rc3RydWN0IGJTdHJlYW0gKiBic0Zyb21Cc3RyIChjb25zdF9ic3RyaW5nIGIpIHsNCi0rc3Ry dWN0IGJTdHJlYW0gKiBzID0gYnNvcGVuICgoYk5yZWFkKSByZWFkTm90aGluZywgTlVMTCk7DQot Kwlic3VucmVhZCAocywgYik7IC8qIFB1c2ggdGhlIGJzdHJpbmcgZGF0YSBpbnRvIHRoZSBlbXB0 eSBiU3RyZWFtLiAqLw0KLSsJcmV0dXJuIHM7DQotK30NCi0rDQotK3N0YXRpYyBzaXplX3QgcmVh ZFJlZiAodm9pZCAqYnVmZiwgc2l6ZV90IGVsc2l6ZSwgc2l6ZV90IG5lbGVtLCB2b2lkICpwYXJt KSB7Ci0rc3RydWN0IHRhZ2JzdHJpbmcgKiB0ID0gKHN0cnVjdCB0YWdic3RyaW5nICopIHBhcm07 Ci0rc2l6ZV90IHRzeiA9IGVsc2l6ZSAqIG5lbGVtOwotKwotKwlpZiAodHN6ID4gKHNpemVfdCkg dC0+c2xlbikgdHN6ID0gKHNpemVfdCkgdC0+c2xlbjsKLSsJaWYgKHRzeiA+IDApIHsKLSsJCW1l bWNweSAoYnVmZiwgdC0+ZGF0YSwgdHN6KTsKLSsJCXQtPnNsZW4gLT0gKGludCkgdHN6OwotKwkJ dC0+ZGF0YSArPSB0c3o7Ci0rCQlyZXR1cm4gdHN6IC8gZWxzaXplOwotKwl9Ci0rCXJldHVybiAw OwotK30KLSsKLSsvKiAgVGhlICJieSByZWZlcmVuY2UiIHZlcnNpb24gb2YgdGhlIGFib3ZlIGZ1 bmN0aW9uLiAgVGhpcyBmdW5jdGlvbiBwdXRzCi0rICogIGEgbnVtYmVyIG9mIHJlc3RyaWN0aW9u cyBvbiB0aGUgY2FsbCBzaXRlICh0aGUgcGFzc2VkIGluIHN0cnVjdCAKLSsgKiAgdGFnYnN0cmlu ZyAqd2lsbCogYmUgbW9kaWZpZWQgYnkgdGhpcyBmdW5jdGlvbiwgYW5kIHRoZSBzb3VyY2UgZGF0 YQotKyAqICBtdXN0IHJlbWFpbiBhbGl2ZSBhbmQgY29uc3RhbnQgZm9yIHRoZSBsaWZldGltZSBv ZiB0aGUgYlN0cmVhbSkuICAKLSsgKiAgSGVuY2UgaXQgaXMgbm90IHByZXNlbnRlZCBhcyBhbiBl eHRlcm4uCi0rICovCi0rc3RhdGljIHN0cnVjdCBiU3RyZWFtICogYnNGcm9tQnN0clJlZiAoc3Ry dWN0IHRhZ2JzdHJpbmcgKiB0KSB7Ci0rCWlmICghdCkgcmV0dXJuIE5VTEw7Ci0rCXJldHVybiBi c29wZW4gKChiTnJlYWQpIHJlYWRSZWYsIHQpOwotK30KLSsNCi0rLyogIGNoYXIgKiBiU3RyMk5l dFN0ciAoY29uc3RfYnN0cmluZyBiKQ0KLSAgKg0KLSAgKiAgQ29udmVydCBhIGJzdHJpbmcgdG8g YSBuZXRzdHJpbmcuICBTZWUgDQotICAqICBodHRwOi8vY3IueXAudG8vcHJvdG8vbmV0c3RyaW5n cy50eHQgZm9yIGEgZGVzY3JpcHRpb24gb2YgbmV0c3RyaW5ncy4NCi0tICogIE5vdGU6IDEpIFRo ZSB2YWx1ZSByZXR1cm5lZCBzaG91bGQgYmUgZnJlZWQgd2l0aCBhIGNhbGwgdG8gZnJlZSgpIGF0 IHRoZQ0KLS0gKiAgICAgICAgICAgcG9pbnQgd2hlbiBpdCB3aWxsIG5vIGxvbmdlciBiZSByZWZl cmVuY2VkIHRvIGF2b2lkIGEgbWVtb3J5IA0KLSsgKiAgTm90ZTogMSkgVGhlIHZhbHVlIHJldHVy bmVkIHNob3VsZCBiZSBmcmVlZCB3aXRoIGEgY2FsbCB0byBiY3N0cmZyZWUoKSBhdCANCi0rICog ICAgICAgICAgIHRoZSBwb2ludCB3aGVuIGl0IHdpbGwgbm8gbG9uZ2VyIGJlIHJlZmVyZW5jZWQg dG8gYXZvaWQgYSBtZW1vcnkgDQotICAqICAgICAgICAgICBsZWFrLg0KLSAgKiAgICAgICAgMikg SWYgdGhlIHJldHVybmVkIHZhbHVlIGlzIG5vbi1OVUxMLCB0aGVuIGl0IGFsc28gJ1wwJyB0ZXJt aW5hdGVkDQotICAqICAgICAgICAgICBpbiB0aGUgY2hhcmFjdGVyIHBvc2l0aW9uIG9uZSBwYXN0 IHRoZSAiLCIgdGVybWluYXRvci4NCi0gICovDQotLWNoYXIgKiBiU3RyMk5ldFN0ciAoY29uc3Qg YnN0cmluZyBiKSB7DQotK2NoYXIgKiBiU3RyMk5ldFN0ciAoY29uc3RfYnN0cmluZyBiKSB7DQot K2NoYXIgc3RybnVtW3NpemVvZiAoYi0+c2xlbikgKiAzICsgMV07DQotIGJzdHJpbmcgczsNCi0g dW5zaWduZWQgY2hhciAqIGJ1ZmY7DQotIA0KLSAJaWYgKGIgPT0gTlVMTCB8fCBiLT5kYXRhID09 IE5VTEwgfHwgYi0+c2xlbiA8IDApIHJldHVybiBOVUxMOw0KLS0JaWYgKE5VTEwgPT0gKHMgPSBi Zm9ybWF0ICgiJWQ6IiwgYi0+c2xlbikpDQotLQkgfHwgYmNvbmNhdCAocywgYikgPT0gQlNUUl9F UlIgfHwgYmNvbmNoYXIgKHMsICcsJykgPT0gQlNUUl9FUlIpIHsNCi0rCXNwcmludGYgKHN0cm51 bSwgIiVkOiIsIGItPnNsZW4pOw0KLSsJaWYgKE5VTEwgPT0gKHMgPSBiZnJvbWNzdHIgKHN0cm51 bSkpDQotKwkgfHwgYmNvbmNhdCAocywgYikgPT0gQlNUUl9FUlIgfHwgYmNvbmNoYXIgKHMsIChj aGFyKSAnLCcpID09IEJTVFJfRVJSKSB7DQotIAkJYmRlc3Ryb3kgKHMpOw0KLSAJCXJldHVybiBO VUxMOw0KLSAJfQ0KLSAJYnVmZiA9IHMtPmRhdGE7DQotLQlmcmVlIChzKTsNCi0rCWJjc3RyZnJl ZSAoKGNoYXIgKikgcyk7DQotIAlyZXR1cm4gKGNoYXIgKikgYnVmZjsNCi0gfQ0KLSANCi1AQCAt MjUzLDE4ICsyOTAsMTggQEAgYnN0cmluZyBiOw0KLSAJCXJldHVybiBOVUxMOw0KLSAJfQ0KLSAJ bWVtY3B5IChiLT5kYXRhLCBidWZmICsgaSArIDEsIHgpOw0KLS0JYi0+ZGF0YVt4XSA9ICdcMCc7 DQotKwliLT5kYXRhW3hdID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotIAliLT5zbGVuID0geDsN Ci0gCXJldHVybiBiOw0KLSB9DQotIA0KLS1zdGF0aWMgdW5zaWduZWQgY2hhciBiNjRFVGFibGVb XSA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6 MDEyMzQ1Njc4OSsvIjsNCi0rc3RhdGljIGNoYXIgYjY0RVRhYmxlW10gPSAiQUJDREVGR0hJSktM TU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7DQot IA0KLS0vKiAgYnN0cmluZyBiQmFzZTY0RW5jb2RlIChjb25zdCBic3RyaW5nIGIpDQotKy8qICBi c3RyaW5nIGJCYXNlNjRFbmNvZGUgKGNvbnN0X2JzdHJpbmcgYikNCi0gICoNCi0tICogIEdlbmVy YXRlIGEgYmFzZTY0IGVuY29kaW5nLg0KLSsgKiAgR2VuZXJhdGUgYSBiYXNlNjQgZW5jb2Rpbmcu ICBTZWU6IFJGQzEzNDENCi0gICovDQotLWJzdHJpbmcgYkJhc2U2NEVuY29kZSAoY29uc3QgYnN0 cmluZyBiKSB7DQotK2JzdHJpbmcgYkJhc2U2NEVuY29kZSAoY29uc3RfYnN0cmluZyBiKSB7DQot IGludCBpLCBjMCwgYzEsIGMyLCBjMzsNCi0gYnN0cmluZyBvdXQ7DQotIA0KLUBAIC0yNzMsMTYg KzMxMCwxNiBAQCBic3RyaW5nIG91dDsNCi0gCW91dCA9IGJmcm9tY3N0ciAoIiIpOw0KLSAJZm9y IChpPTA7IGkgKyAyIDwgYi0+c2xlbjsgaSArPSAzKSB7DQotIAkJaWYgKGkgJiYgKChpICUgNTcp ID09IDApKSB7DQotLQkJCWlmIChiY29uY2hhciAob3V0LCAnXDAxNScpIDwgMCB8fCBiY29uY2hh ciAob3V0LCAnXDAxMicpIDwgMCkgew0KLSsJCQlpZiAoYmNvbmNoYXIgKG91dCwgKGNoYXIpICdc MDE1JykgPCAwIHx8IGJjb25jaGFyIChvdXQsIChjaGFyKSAnXDAxMicpIDwgMCkgew0KLSAJCQkJ YmRlc3Ryb3kgKG91dCk7DQotIAkJCQlyZXR1cm4gTlVMTDsNCi0gCQkJfQ0KLSAJCX0NCi0gCQlj MCA9IGItPmRhdGFbaV0gPj4gMjsNCi0gCQljMSA9ICgoYi0+ZGF0YVtpXSA8PCA0KSB8DQotLQkJ CSAgKGItPmRhdGFbaSsxXSA+PiA0KSkgJiAweDNGOw0KLSsJCSAgICAgIChiLT5kYXRhW2krMV0g Pj4gNCkpICYgMHgzRjsNCi0gCQljMiA9ICgoYi0+ZGF0YVtpKzFdIDw8IDIpIHwNCi0tCQkJICAo Yi0+ZGF0YVtpKzJdID4+IDYpKSAmIDB4M0Y7DQotKwkJICAgICAgKGItPmRhdGFbaSsyXSA+PiA2 KSkgJiAweDNGOw0KLSAJCWMzID0gYi0+ZGF0YVtpKzJdICYgMHgzRjsNCi0gCQlpZiAoYmNvbmNo YXIgKG91dCwgYjY0RVRhYmxlW2MwXSkgPCAwIHx8DQotIAkJCWJjb25jaGFyIChvdXQsIGI2NEVU YWJsZVtjMV0pIDwgMCB8fA0KLUBAIC0yOTQsNyArMzMxLDcgQEAgYnN0cmluZyBvdXQ7DQotIAl9 DQotIA0KLSAJaWYgKGkgJiYgKChpICUgNTcpID09IDApKSB7DQotLQkJaWYgKGJjb25jaGFyIChv dXQsICdcMDE1JykgPCAwIHx8IGJjb25jaGFyIChvdXQsICdcMDEyJykgPCAwKSB7DQotKwkJaWYg KGJjb25jaGFyIChvdXQsIChjaGFyKSAnXDAxNScpIDwgMCB8fCBiY29uY2hhciAob3V0LCAoY2hh cikgJ1wwMTInKSA8IDApIHsNCi0gCQkJYmRlc3Ryb3kgKG91dCk7DQotIAkJCXJldHVybiBOVUxM Ow0KLSAJCX0NCi1AQCAtMzA4LDcgKzM0NSw3IEBAIGJzdHJpbmcgb3V0Ow0KLSAJCQlpZiAoYmNv bmNoYXIgKG91dCwgYjY0RVRhYmxlW2MwXSkgPCAwIHx8DQotIAkJCQliY29uY2hhciAob3V0LCBi NjRFVGFibGVbYzFdKSA8IDAgfHwNCi0gCQkJCWJjb25jaGFyIChvdXQsIGI2NEVUYWJsZVtjMl0p IDwgMCB8fA0KLS0JCQkJYmNvbmNoYXIgKG91dCwgJz0nKSA8IDApIHsNCi0rCQkJCWJjb25jaGFy IChvdXQsIChjaGFyKSAnPScpIDwgMCkgew0KLSAJCQkJYmRlc3Ryb3kgKG91dCk7DQotIAkJCQly ZXR1cm4gTlVMTDsNCi0gCQkJfQ0KLUBAIC0zMTcsOCArMzU0LDggQEAgYnN0cmluZyBvdXQ7DQot IAkJCQljMSA9IChiLT5kYXRhW2ldIDw8IDQpICYgMHgzRjsNCi0gCQkJaWYgKGJjb25jaGFyIChv dXQsIGI2NEVUYWJsZVtjMF0pIDwgMCB8fA0KLSAJCQkJYmNvbmNoYXIgKG91dCwgYjY0RVRhYmxl W2MxXSkgPCAwIHx8DQotLQkJCQliY29uY2hhciAob3V0LCAnPScpIDwgMCB8fA0KLS0JCQkJYmNv bmNoYXIgKG91dCwgJz0nKSA8IDApIHsNCi0rCQkJCWJjb25jaGFyIChvdXQsIChjaGFyKSAnPScp IDwgMCB8fA0KLSsJCQkJYmNvbmNoYXIgKG91dCwgKGNoYXIpICc9JykgPCAwKSB7DQotIAkJCQli ZGVzdHJveSAob3V0KTsNCi0gCQkJCXJldHVybiBOVUxMOw0KLSAJCQl9DQotQEAgLTM0NCwyMyAr MzgxLDI4IEBAIHN0YXRpYyBpbnQgYmFzZTY0RGVjb2RlU3ltYm9sICh1bnNpZ25lZCAKLSAgICBl bHNlICAgICAgICAgICAgICAgICAgIHJldHVybiBCNjRfRVJSOw0KLSB9DQotIA0KLS0vKiAgYnN0 cmluZyBiQmFzZTY0RGVjb2RlIChjb25zdCBic3RyaW5nIGIpDQotKy8qICBic3RyaW5nIGJCYXNl NjREZWNvZGVFeCAoY29uc3RfYnN0cmluZyBiLCBpbnQgKiBib29sVHJ1bmNFcnJvcikNCi0gICoN Ci0gICogIERlY29kZSBhIGJhc2U2NCBibG9jayBvZiBkYXRhLiAgQWxsIE1JTUUgaGVhZGVycyBh cmUgYXNzdW1lZCB0byBoYXZlIGJlZW4NCi0tICogIHJlbW92ZWQuDQotKyAqICByZW1vdmVkLiAg U2VlOiBSRkMxMzQxDQotICAqLw0KLS1ic3RyaW5nIGJCYXNlNjREZWNvZGUgKGNvbnN0IGJzdHJp bmcgYikgew0KLStic3RyaW5nIGJCYXNlNjREZWNvZGVFeCAoY29uc3RfYnN0cmluZyBiLCBpbnQg KiBib29sVHJ1bmNFcnJvcikgew0KLSBpbnQgaSwgdjsNCi0gdW5zaWduZWQgY2hhciBjMCwgYzEs IGMyOw0KLSBic3RyaW5nIG91dDsNCi0gDQotIAlpZiAoYiA9PSBOVUxMIHx8IGItPnNsZW4gPCAw IHx8IGItPmRhdGEgPT0gTlVMTCkgcmV0dXJuIE5VTEw7DQotKwlpZiAoYm9vbFRydW5jRXJyb3Ip ICpib29sVHJ1bmNFcnJvciA9IDA7DQotIAlvdXQgPSBiZnJvbWNzdHIgKCIiKTsNCi0gCWkgPSAw Ow0KLSAJZm9yICg7Oykgew0KLSAJCWRvIHsNCi0gCQkJaWYgKGkgPj0gYi0+c2xlbikgcmV0dXJu IG91dDsNCi0tCQkJaWYgKGItPmRhdGFbaV0gPT0gJz0nKSB7DQotKwkJCWlmIChiLT5kYXRhW2ld ID09ICc9JykgewkvKiBCYWQgInRvbyBlYXJseSIgdHJ1bmNhdGlvbiAqLw0KLSsJCQkJaWYgKGJv b2xUcnVuY0Vycm9yKSB7DQotKwkJCQkJKmJvb2xUcnVuY0Vycm9yID0gMTsNCi0rCQkJCQlyZXR1 cm4gb3V0Ow0KLSsJCQkJfQ0KLSAJCQkJYmRlc3Ryb3kgKG91dCk7DQotIAkJCQlyZXR1cm4gTlVM TDsNCi0gCQkJfQ0KLUBAIC0zNjksNyArNDExLDExIEBAIGJzdHJpbmcgb3V0Ow0KLSAJCX0gd2hp bGUgKHYgPCAwKTsNCi0gCQljMCA9ICh1bnNpZ25lZCBjaGFyKSAodiA8PCAyKTsNCi0gCQlkbyB7 DQotLQkJCWlmIChpID49IGItPnNsZW4gfHwgYi0+ZGF0YVtpXSA9PSAnPScpIHsNCi0rCQkJaWYg KGkgPj0gYi0+c2xlbiB8fCBiLT5kYXRhW2ldID09ICc9JykgewkvKiBCYWQgInRvbyBlYXJseSIg dHJ1bmNhdGlvbiAqLw0KLSsJCQkJaWYgKGJvb2xUcnVuY0Vycm9yKSB7DQotKwkJCQkJKmJvb2xU cnVuY0Vycm9yID0gMTsNCi0rCQkJCQlyZXR1cm4gb3V0Ow0KLSsJCQkJfQ0KLSAJCQkJYmRlc3Ry b3kgKG91dCk7DQotIAkJCQlyZXR1cm4gTlVMTDsNCi0gCQkJfQ0KLUBAIC0zODAsMTMgKzQyNiwy MSBAQCBic3RyaW5nIG91dDsNCi0gCQljMSAgPSAodW5zaWduZWQgY2hhcikgKHYgPDwgNCk7DQot IAkJZG8gew0KLSAJCQlpZiAoaSA+PSBiLT5zbGVuKSB7DQotKwkJCQlpZiAoYm9vbFRydW5jRXJy b3IpIHsNCi0rCQkJCQkqYm9vbFRydW5jRXJyb3IgPSAxOw0KLSsJCQkJCXJldHVybiBvdXQ7DQot KwkJCQl9DQotIAkJCQliZGVzdHJveSAob3V0KTsNCi0gCQkJCXJldHVybiBOVUxMOw0KLSAJCQl9 DQotIAkJCWlmIChiLT5kYXRhW2ldID09ICc9Jykgew0KLSAJCQkJaSsrOw0KLSAJCQkJaWYgKGkg Pj0gYi0+c2xlbiB8fCBiLT5kYXRhW2ldICE9ICc9JyB8fCBiY29uY2hhciAob3V0LCBjMCkgPCAw KSB7DQotLQkJCQkJYmRlc3Ryb3kgKG91dCk7DQotKwkJCQkJaWYgKGJvb2xUcnVuY0Vycm9yKSB7 DQotKwkJCQkJCSpib29sVHJ1bmNFcnJvciA9IDE7DQotKwkJCQkJCXJldHVybiBvdXQ7DQotKwkJ CQkJfQ0KLSsJCQkJCWJkZXN0cm95IChvdXQpOyAvKiBNaXNzaW5nICI9IiBhdCB0aGUgZW5kLiAq Lw0KLSAJCQkJCXJldHVybiBOVUxMOw0KLSAJCQkJfQ0KLSAJCQkJcmV0dXJuIG91dDsNCi1AQCAt Mzk4LDE0ICs0NTIsMjMgQEAgYnN0cmluZyBvdXQ7DQotIAkJYzIgID0gKHVuc2lnbmVkIGNoYXIp ICh2IDw8IDYpOw0KLSAJCWRvIHsNCi0gCQkJaWYgKGkgPj0gYi0+c2xlbikgew0KLSsJCQkJaWYg KGJvb2xUcnVuY0Vycm9yKSB7DQotKwkJCQkJKmJvb2xUcnVuY0Vycm9yID0gMTsNCi0rCQkJCQly ZXR1cm4gb3V0Ow0KLSsJCQkJfQ0KLSAJCQkJYmRlc3Ryb3kgKG91dCk7DQotIAkJCQlyZXR1cm4g TlVMTDsNCi0gCQkJfQ0KLSAJCQlpZiAoYi0+ZGF0YVtpXSA9PSAnPScpIHsNCi0gCQkJCWlmIChi Y29uY2hhciAob3V0LCBjMCkgPCAwIHx8IGJjb25jaGFyIChvdXQsIGMxKSA8IDApIHsNCi0tCQkJ CQliY29uY2hhciAob3V0LCBjMCk7DQotKwkJCQkJaWYgKGJvb2xUcnVuY0Vycm9yKSB7DQotKwkJ CQkJCSpib29sVHJ1bmNFcnJvciA9IDE7DQotKwkJCQkJCXJldHVybiBvdXQ7DQotKwkJCQkJfQ0K LSsJCQkJCWJkZXN0cm95IChvdXQpOw0KLSAJCQkJCXJldHVybiBOVUxMOw0KLSAJCQkJfQ0KLSsJ CQkJaWYgKGJvb2xUcnVuY0Vycm9yKSAqYm9vbFRydW5jRXJyb3IgPSAwOw0KLSAJCQkJcmV0dXJu IG91dDsNCi0gCQkJfQ0KLSAJCQl2ID0gYmFzZTY0RGVjb2RlU3ltYm9sIChiLT5kYXRhW2ldKTsN Ci1AQCAtNDE1LDcgKzQ3OCwxMSBAQCBic3RyaW5nIG91dDsNCi0gCQlpZiAoYmNvbmNoYXIgKG91 dCwgYzApIDwgMCB8fA0KLSAJCQliY29uY2hhciAob3V0LCBjMSkgPCAwIHx8DQotIAkJCWJjb25j aGFyIChvdXQsIGMyKSA8IDApIHsNCi0tCQkJYmNvbmNoYXIgKG91dCwgYzApOw0KLSsJCQlpZiAo Ym9vbFRydW5jRXJyb3IpIHsNCi0rCQkJCSpib29sVHJ1bmNFcnJvciA9IC0xOw0KLSsJCQkJcmV0 dXJuIG91dDsNCi0rCQkJfQ0KLSsJCQliZGVzdHJveSAob3V0KTsNCi0gCQkJcmV0dXJuIE5VTEw7 DQotIAkJfQ0KLSAJfQ0KLUBAIC00MjUsNjkgKzQ5MiwyMzAgQEAgYnN0cmluZyBvdXQ7DQotIA0K LSBzdHJ1Y3QgYlV1SW5PdXQgew0KLSAJYnN0cmluZyBzcmMsIGRzdDsNCi0rCWludCAqIGJhZGxp bmVzOw0KLSB9Ow0KLSANCi0rI2RlZmluZSBVVV9NQVhfTElORUxFTiA0NQ0KLSsNCi0gc3RhdGlj IGludCBiVXVEZWNMaW5lICh2b2lkICogcGFybSwgaW50IG9mcywgaW50IGxlbikgew0KLSBzdHJ1 Y3QgYlV1SW5PdXQgKiBpbyA9IChzdHJ1Y3QgYlV1SW5PdXQgKikgcGFybTsNCi0gYnN0cmluZyBz ID0gaW8tPnNyYzsNCi0gYnN0cmluZyB0ID0gaW8tPmRzdDsNCi0taW50IGksIGxsZW47DQotK2lu dCBpLCBsbGVuLCBvdGxlbiwgcmV0LCBjMCwgYzEsIGMyLCBjMywgZDAsIGQxLCBkMiwgZDM7DQot IA0KLSAJaWYgKGxlbiA9PSAwKSByZXR1cm4gMDsNCi0gCWxsZW4gPSBVVV9ERUNPREVfQllURSAo cy0+ZGF0YVtvZnNdKTsNCi0rCXJldCA9IDA7DQotIA0KLS0JaWYgKCgodW5zaWduZWQpIGxsZW4p ID4gNDUpIHJldHVybiAtX19MSU5FX187DQotLQlpZiAobGVuID4gKGkgPSAoaW50KSAoKDQvMy4w KSpsbGVuICsgMS41KSkpIGxlbiA9IGk7DQotKwlvdGxlbiA9IHQtPnNsZW47DQotIA0KLS0JZm9y IChpPTE7IGkgPCBsZW47IGkgKz0gNCkgew0KLS0JCWludCBjMCwgYzEsIGMyLCBjMzsNCi0rCWlm ICgoKHVuc2lnbmVkKSBsbGVuKSA+IFVVX01BWF9MSU5FTEVOKSB7IHJldCA9IC1fX0xJTkVfXzsg DQotKwkJZ290byBibDsNCi0rCX0NCi0rDQotKwlsbGVuICs9IHQtPnNsZW47DQotIA0KLS0JCWMw ID0gICAgICAgICAgICAgICAgIFVVX0RFQ09ERV9CWVRFIChzLT5kYXRhW29mcyArIGkgKyAwXSk7 DQotLQkJYzEgPSAoaSArIDEgPCBsZW4pID8gVVVfREVDT0RFX0JZVEUgKHMtPmRhdGFbb2ZzICsg aSArIDFdKSA6IC0xOw0KLS0JCWMyID0gKGkgKyAyIDwgbGVuKSA/IFVVX0RFQ09ERV9CWVRFIChz LT5kYXRhW29mcyArIGkgKyAyXSkgOiAtMTsNCi0tCQljMyA9IChpICsgMyA8IGxlbikgPyBVVV9E RUNPREVfQllURSAocy0+ZGF0YVtvZnMgKyBpICsgM10pIDogLTE7DQotLQ0KLS0JCWlmICgoKHVu c2lnbmVkKSAoYzB8YzEpID49IDB4NDApIHx8IGMyID49IDB4NDAgfHwgYzMgPj0gMHg0MCkgcmV0 dXJuIC1fX0xJTkVfXzsNCi0tDQotLQkJaWYgKGJjb25jaGFyICh0LCAoY2hhcikoKGMwIDw8IDIp IHwgKChjMSA+PiA0KSAmIDB4MDMpKSkgPCAwKSByZXR1cm4gLV9fTElORV9fOw0KLS0JCWlmICgo dW5zaWduZWQpIGMyIDwgMHg0MCkgew0KLS0JCQlpZiAoYmNvbmNoYXIgKHQsIChjaGFyKSgoYzEg PDwgNCkgfCAoKGMyID4+IDIpICYgMHgwRikpKSA8IDApIHJldHVybiAtX19MSU5FX187DQotLQkJ CWlmICgodW5zaWduZWQpIGMzIDwgMHg0MCkgaWYgKGJjb25jaGFyICh0LCAoY2hhcikoKGMyIDw8 IDYpIHwgKGMzICYgMHgzRikpKSA8IDApIHJldHVybiAtX19MSU5FX187DQotKwlmb3IgKGk9MTsg aSA8IHMtPnNsZW4gJiYgdC0+c2xlbiA8IGxsZW47aSArPSA0KSB7DQotKwkJdW5zaWduZWQgY2hh ciBvdXRvY3RldFszXTsNCi0rCQljMCA9IFVVX0RFQ09ERV9CWVRFIChkMCA9IChpbnQpIGJjaGFy ZSAocywgaStvZnMrMCwgJyAnIC0gMSkpOw0KLSsJCWMxID0gVVVfREVDT0RFX0JZVEUgKGQxID0g KGludCkgYmNoYXJlIChzLCBpK29mcysxLCAnICcgLSAxKSk7DQotKwkJYzIgPSBVVV9ERUNPREVf QllURSAoZDIgPSAoaW50KSBiY2hhcmUgKHMsIGkrb2ZzKzIsICcgJyAtIDEpKTsNCi0rCQljMyA9 IFVVX0RFQ09ERV9CWVRFIChkMyA9IChpbnQpIGJjaGFyZSAocywgaStvZnMrMywgJyAnIC0gMSkp Ow0KLSsNCi0rCQlpZiAoKCh1bnNpZ25lZCkgKGMwfGMxKSA+PSAweDQwKSkgeyBpZiAoIXJldCkg cmV0ID0gLV9fTElORV9fOw0KLSsJCQlpZiAoZDAgPiAweDYwIHx8IChkMCA8ICgnICcgLSAxKSAm JiAhaXNzcGFjZSAoZDApKSB8fA0KLSsJCQkgICAgZDEgPiAweDYwIHx8IChkMSA8ICgnICcgLSAx KSAmJiAhaXNzcGFjZSAoZDEpKSkgew0KLSsJCQkJdC0+c2xlbiA9IG90bGVuOw0KLSsJCQkJZ290 byBibDsNCi0rCQkJfQ0KLSsJCQljMCA9IGMxID0gMDsNCi0rCQl9DQotKwkJb3V0b2N0ZXRbMF0g PSAodW5zaWduZWQgY2hhcikgKChjMCA8PCAyKSB8ICgodW5zaWduZWQpIGMxID4+IDQpKTsNCi0r CQlpZiAodC0+c2xlbisxID49IGxsZW4pIHsNCi0rCQkJaWYgKDAgPiBiY29uY2hhciAodCwgKGNo YXIpIG91dG9jdGV0WzBdKSkgcmV0dXJuIC1fX0xJTkVfXzsNCi0rCQkJYnJlYWs7DQotKwkJfQ0K LSsJCWlmICgodW5zaWduZWQpIGMyID49IDB4NDApIHsgaWYgKCFyZXQpIHJldCA9IC1fX0xJTkVf XzsNCi0rCQkJaWYgKGQyID4gMHg2MCB8fCAoZDIgPCAoJyAnIC0gMSkgJiYgIWlzc3BhY2UgKGQy KSkpIHsNCi0rCQkJCXQtPnNsZW4gPSBvdGxlbjsNCi0rCQkJCWdvdG8gYmw7DQotKwkJCX0NCi0r CQkJYzIgPSAwOw0KLSsJCX0NCi0rCQlvdXRvY3RldFsxXSA9ICh1bnNpZ25lZCBjaGFyKSAoKGMx IDw8IDQpIHwgKCh1bnNpZ25lZCkgYzIgPj4gMikpOw0KLSsJCWlmICh0LT5zbGVuKzIgPj0gbGxl bikgew0KLSsJCQlpZiAoMCA+IGJjYXRibGsgKHQsIG91dG9jdGV0LCAyKSkgcmV0dXJuIC1fX0xJ TkVfXzsNCi0rCQkJYnJlYWs7DQotIAkJfQ0KLSsJCWlmICgodW5zaWduZWQpIGMzID49IDB4NDAp IHsgaWYgKCFyZXQpIHJldCA9IC1fX0xJTkVfXzsNCi0rCQkJaWYgKGQzID4gMHg2MCB8fCAoZDMg PCAoJyAnIC0gMSkgJiYgIWlzc3BhY2UgKGQzKSkpIHsNCi0rCQkJCXQtPnNsZW4gPSBvdGxlbjsN Ci0rCQkJCWdvdG8gYmw7DQotKwkJCX0NCi0rCQkJYzMgPSAwOw0KLSsJCX0NCi0rCQlvdXRvY3Rl dFsyXSA9ICh1bnNpZ25lZCBjaGFyKSAoKGMyIDw8IDYpIHwgKCh1bnNpZ25lZCkgYzMpKTsNCi0r CQlpZiAoMCA+IGJjYXRibGsgKHQsIG91dG9jdGV0LCAzKSkgcmV0dXJuIC1fX0xJTkVfXzsNCi0g CX0NCi0tCXJldHVybiAwOw0KLSsJaWYgKHQtPnNsZW4gPCBsbGVuKSB7IGlmICgwID09IHJldCkg cmV0ID0gLV9fTElORV9fOw0KLSsJCXQtPnNsZW4gPSBvdGxlbjsNCi0rCX0NCi0rCWJsOjsNCi0r CWlmIChyZXQgJiYgaW8tPmJhZGxpbmVzKSB7DQotKwkJKCppby0+YmFkbGluZXMpKys7DQotKwkJ cmV0dXJuIDA7DQotKwl9DQotKwlyZXR1cm4gcmV0Ow0KLSB9DQotIA0KLS0vKiAgYnN0cmluZyBi VXVEZWNvZGUgKGNvbnN0IGJzdHJpbmcgc3JjKQ0KLSsvKiAgYnN0cmluZyBiVXVEZWNvZGVFeCAo Y29uc3RfYnN0cmluZyBzcmMsIGludCAqIGJhZGxpbmVzKQ0KLSAgKg0KLS0gKiAgUGVyZm9ybXMg YSBVVURlY29kZSBvZiBhIGJsb2NrIG9mIGRhdGEuICBJdCBpcyBhc3N1bWVkIHRoYXQgdGhlICJi ZWdpbiINCi0tICogIGFuZCAiZW5kIiBsaW5lcyBoYXZlIGFscmVhZHkgYmVlbiBzdHJpcHBlZCBv ZmYuICBUaGUgcG90ZW50aWFsIHNlY3VyaXR5DQotLSAqICBwcm9ibGVtIG9mIHdyaXRpbmcgdGhl IGZpbGVuYW1lIGluIHRoZSBiZWdpbiBsaW5lIGlzIHNvbWV0aGluZyB0aGF0IGlzDQotLSAqICBi ZXlvbmQgdGhlIHNjb3BlIG9mIGEgcG9ydGFibGUgbGlicmFyeS4NCi0rICogIFBlcmZvcm1zIGEg VVVEZWNvZGUgb2YgYSBibG9jayBvZiBkYXRhLiAgSWYgdGhlcmUgYXJlIGVycm9ycyBpbiB0aGUN Ci0rICogIGRlY29kaW5nLCB0aGV5IGFyZSBjb3VudGVkIHVwIGFuZCByZXR1cm5lZCBpbiAiYmFk bGluZXMiLCBpZiBiYWRsaW5lcyBpcw0KLSsgKiAgbm90IE5VTEwuIEl0IGlzIGFzc3VtZWQgdGhh dCB0aGUgImJlZ2luIiBhbmQgImVuZCIgbGluZXMgaGF2ZSBhbHJlYWR5IA0KLSsgKiAgYmVlbiBz dHJpcHBlZCBvZmYuICBUaGUgcG90ZW50aWFsIHNlY3VyaXR5IHByb2JsZW0gb2Ygd3JpdGluZyB0 aGUgDQotKyAqICBmaWxlbmFtZSBpbiB0aGUgYmVnaW4gbGluZSBpcyBzb21ldGhpbmcgdGhhdCBp cyBiZXlvbmQgdGhlIHNjb3BlIG9mIGEgDQotKyAqICBwb3J0YWJsZSBsaWJyYXJ5Lg0KLSAgKi8N Ci0rDQotICNpZmRlZiBfTVNDX1ZFUg0KLSAjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTo0MjA0KQ0K LSAjZW5kaWYNCi0tYnN0cmluZyBiVXVEZWNvZGUgKGNvbnN0IGJzdHJpbmcgc3JjKSB7DQotLXN0 cnVjdCB0YWdic3RyaW5nIHdzID0gYnNTdGF0aWMgKCJcclxuIik7DQotLXN0cnVjdCBiVXVJbk91 dCBpbzsNCi0gDQotLQlpZiAoc3JjID09IE5VTEwgfHwgc3JjLT5zbGVuIDwgMCB8fCBzcmMtPmRh dGEgPT0gTlVMTCkgcmV0dXJuIE5VTEw7DQotLQlpby5zcmMgPSBzcmM7DQotLQlpby5kc3QgPSBi ZnJvbWNzdHIgKCIiKTsNCi0tCWlmIChic3BsaXRzY2IgKHNyYywgJndzLCAwLCBiVXVEZWNMaW5l LCAmaW8pIDwgMCkgYnN0ckZyZWUgKGlvLmRzdCk7DQotLQlyZXR1cm4gaW8uZHN0Ow0KLStic3Ry aW5nIGJVdURlY29kZUV4IChjb25zdF9ic3RyaW5nIHNyYywgaW50ICogYmFkbGluZXMpIHsNCi0r c3RydWN0IHRhZ2JzdHJpbmcgdDsKLStzdHJ1Y3QgYlN0cmVhbSAqIHM7DQotK3N0cnVjdCBiU3Ry ZWFtICogZDsNCi0rYnN0cmluZyBiOw0KLSsNCi0rCWlmICghc3JjKSByZXR1cm4gTlVMTDsKLSsJ dCA9ICpzcmM7IC8qIFNob3J0IGxpZmV0aW1lIGFsaWFzIHRvIGhlYWRlciBvZiBzcmMgKi8KLSsJ cyA9IGJzRnJvbUJzdHJSZWYgKCZ0KTsgLyogdCBpcyB1bmRlZmluZWQgYWZ0ZXIgdGhpcyAqLwot KwlpZiAoIXMpIHJldHVybiBOVUxMOw0KLSsJZCA9IGJzVXVEZWNvZGUgKHMsIGJhZGxpbmVzKTsN Ci0rCWIgPSBiZnJvbWNzdHJhbGxvYyAoMjU2LCAiIik7DQotKwlpZiAoTlVMTCA9PSBiIHx8IDAg PiBic3JlYWQgKGIsIGQsIElOVF9NQVgpKSB7DQotKwkJYmRlc3Ryb3kgKGIpOw0KLSsJCWJzY2xv c2UgKGQpOw0KLSsJCWJzY2xvc2UgKHMpOw0KLSsJCXJldHVybiBOVUxMOw0KLSsJfQ0KLSsJcmV0 dXJuIGI7DQotK30NCi0rDQotK3N0cnVjdCBic1V1Q3R4IHsNCi0rCXN0cnVjdCBiVXVJbk91dCBp bzsNCi0rCXN0cnVjdCBiU3RyZWFtICogc0lucDsNCi0rfTsNCi0rDQotK3N0YXRpYyBzaXplX3Qg YnNVdURlY29kZVBhcnQgKHZvaWQgKmJ1ZmYsIHNpemVfdCBlbHNpemUsIHNpemVfdCBuZWxlbSwg dm9pZCAqcGFybSkgew0KLStzdGF0aWMgc3RydWN0IHRhZ2JzdHJpbmcgZW9sID0gYnNTdGF0aWMg KCJcclxuIik7DQotK3N0cnVjdCBic1V1Q3R4ICogbHV1Q3R4ID0gKHN0cnVjdCBic1V1Q3R4ICop IHBhcm07DQotK3NpemVfdCB0c3o7DQotK2ludCBsLCBscmV0Ow0KLSsNCi0rCWlmIChOVUxMID09 IGJ1ZmYgfHwgTlVMTCA9PSBwYXJtKSByZXR1cm4gMDsNCi0rCXRzeiA9IGVsc2l6ZSAqIG5lbGVt Ow0KLSsNCi0rCUNoZWNrSW50ZXJuYWxCdWZmZXI6Ow0KLSsJLyogSWYgaW50ZXJuYWwgYnVmZmVy IGhhcyBzdWZmaWNpZW50IGRhdGEsIGp1c3Qgb3V0cHV0IGl0ICovDQotKwlpZiAoKChzaXplX3Qp IGx1dUN0eC0+aW8uZHN0LT5zbGVuKSA+IHRzeikgew0KLSsJCW1lbWNweSAoYnVmZiwgbHV1Q3R4 LT5pby5kc3QtPmRhdGEsIHRzeik7DQotKwkJYmRlbGV0ZSAobHV1Q3R4LT5pby5kc3QsIDAsIChp bnQpIHRzeik7DQotKwkJcmV0dXJuIG5lbGVtOw0KLSsJfQ0KLSsNCi0rCURlY29kZU1vcmU6Ow0K LSsJaWYgKDAgPD0gKGwgPSBiaW5jaHIgKGx1dUN0eC0+aW8uc3JjLCAwLCAmZW9sKSkpIHsNCi0r CQlpbnQgb2wgPSAwOw0KLSsJCXN0cnVjdCB0YWdic3RyaW5nIHQ7DQotKwkJYnN0cmluZyBzID0g bHV1Q3R4LT5pby5zcmM7DQotKwkJbHV1Q3R4LT5pby5zcmMgPSAmdDsNCi0rDQotKwkJZG8gew0K LSsJCQlpZiAobCA+IG9sKSB7DQotKwkJCQlibWlkMnRic3RyICh0LCBzLCBvbCwgbCAtIG9sKTsN Ci0rCQkJCWxyZXQgPSBiVXVEZWNMaW5lICgmbHV1Q3R4LT5pbywgMCwgdC5zbGVuKTsNCi0rCQkJ CWlmICgwID4gbHJldCkgew0KLSsJCQkJCWx1dUN0eC0+aW8uc3JjID0gczsNCi0rCQkJCQlnb3Rv IERvbmU7DQotKwkJCQl9DQotKwkJCX0NCi0rCQkJb2wgPSBsICsgMTsNCi0rCQkJaWYgKCgoc2l6 ZV90KSBsdXVDdHgtPmlvLmRzdC0+c2xlbikgPiB0c3opIGJyZWFrOw0KLSsJCQlsID0gYmluY2hy IChzLCBvbCwgJmVvbCk7DQotKwkJfSB3aGlsZSAoQlNUUl9FUlIgIT0gbCk7DQotKwkJYmRlbGV0 ZSAocywgMCwgb2wpOw0KLSsJCWx1dUN0eC0+aW8uc3JjID0gczsNCi0rCQlnb3RvIENoZWNrSW50 ZXJuYWxCdWZmZXI7DQotKwl9DQotKw0KLSsJaWYgKEJTVFJfRVJSICE9IGJzcmVhZGEgKGx1dUN0 eC0+aW8uc3JjLCBsdXVDdHgtPnNJbnAsIGJzYnVmZmxlbmd0aCAobHV1Q3R4LT5zSW5wLCBCU1RS X0JTX0JVRkZfTEVOR1RIX0dFVCkpKSB7DQotKwkJZ290byBEZWNvZGVNb3JlOw0KLSsJfQ0KLSsN Ci0rCWJVdURlY0xpbmUgKCZsdXVDdHgtPmlvLCAwLCBsdXVDdHgtPmlvLnNyYy0+c2xlbik7DQot Kw0KLSsJRG9uZTo7DQotKwkvKiBPdXRwdXQgYW55IGxpbmdlcmluZyBkYXRhIHRoYXQgaGFzIGJl ZW4gdHJhbnNsYXRlZCAqLw0KLSsJaWYgKCgoc2l6ZV90KSBsdXVDdHgtPmlvLmRzdC0+c2xlbikg PiAwKSB7DQotKwkJaWYgKCgoc2l6ZV90KSBsdXVDdHgtPmlvLmRzdC0+c2xlbikgPiB0c3opIGdv dG8gQ2hlY2tJbnRlcm5hbEJ1ZmZlcjsNCi0rCQltZW1jcHkgKGJ1ZmYsIGx1dUN0eC0+aW8uZHN0 LT5kYXRhLCBsdXVDdHgtPmlvLmRzdC0+c2xlbik7DQotKwkJdHN6ID0gbHV1Q3R4LT5pby5kc3Qt PnNsZW4gLyBlbHNpemU7DQotKwkJbHV1Q3R4LT5pby5kc3QtPnNsZW4gPSAwOw0KLSsJCWlmICh0 c3ogPiAwKSByZXR1cm4gdHN6Ow0KLSsJfQ0KLSsNCi0rCS8qIERlYWxsb2NhdGUgb25jZSBFT0Yg YmVjb21lcyB0cmlnZ2VyZWQgKi8NCi0rCWJkZXN0cm95IChsdXVDdHgtPmlvLmRzdCk7DQotKwli ZGVzdHJveSAobHV1Q3R4LT5pby5zcmMpOw0KLSsJZnJlZSAobHV1Q3R4KTsNCi0rCXJldHVybiAw Ow0KLSt9DQotKw0KLSsvKiAgYlN0cmVhbSAqIGJzVXVEZWNvZGUgKHN0cnVjdCBiU3RyZWFtICog c0lucCwgaW50ICogYmFkbGluZXMpDQotKyAqDQotKyAqICBDcmVhdGVzIGEgYlN0cmVhbSB3aGlj aCBwZXJmb3JtcyB0aGUgVVVEZWNvZGUgb2YgYW4gYW4gaW5wdXQgc3RyZWFtLiAgSWYNCi0rICog IHRoZXJlIGFyZSBlcnJvcnMgaW4gdGhlIGRlY29kaW5nLCB0aGV5IGFyZSBjb3VudGVkIHVwIGFu ZCByZXR1cm5lZCBpbiANCi0rICogICJiYWRsaW5lcyIsIGlmIGJhZGxpbmVzIGlzIG5vdCBOVUxM LiBJdCBpcyBhc3N1bWVkIHRoYXQgdGhlICJiZWdpbiIgYW5kIA0KLSsgKiAgImVuZCIgbGluZXMg aGF2ZSBhbHJlYWR5IGJlZW4gc3RyaXBwZWQgb2ZmLiAgVGhlIHBvdGVudGlhbCBzZWN1cml0eSAN Ci0rICogIHByb2JsZW0gb2Ygd3JpdGluZyB0aGUgZmlsZW5hbWUgaW4gdGhlIGJlZ2luIGxpbmUg aXMgc29tZXRoaW5nIHRoYXQgaXMgDQotKyAqICBiZXlvbmQgdGhlIHNjb3BlIG9mIGEgcG9ydGFi bGUgbGlicmFyeS4NCi0rICovDQotKw0KLStzdHJ1Y3QgYlN0cmVhbSAqIGJzVXVEZWNvZGUgKHN0 cnVjdCBiU3RyZWFtICogc0lucCwgaW50ICogYmFkbGluZXMpIHsNCi0rc3RydWN0IGJzVXVDdHgg KiBsdXVDdHggPSAoc3RydWN0IGJzVXVDdHggKikgbWFsbG9jIChzaXplb2YgKHN0cnVjdCBic1V1 Q3R4KSk7DQotK3N0cnVjdCBiU3RyZWFtICogc091dDsNCi0rDQotKwlpZiAoTlVMTCA9PSBsdXVD dHgpIHJldHVybiBOVUxMOw0KLSsNCi0rCWx1dUN0eC0+aW8uc3JjID0gYmZyb21jc3RyICgiIik7 DQotKwlsdXVDdHgtPmlvLmRzdCA9IGJmcm9tY3N0ciAoIiIpOw0KLSsJaWYgKE5VTEwgPT0gbHV1 Q3R4LT5pby5kc3QgfHwgTlVMTCA9PSBsdXVDdHgtPmlvLnNyYykgew0KLSsJCUNsZWFuVXBGYWls dXJlVG9BbGxvY2F0ZTo7DQotKwkJYmRlc3Ryb3kgKGx1dUN0eC0+aW8uZHN0KTsNCi0rCQliZGVz dHJveSAobHV1Q3R4LT5pby5zcmMpOw0KLSsJCWZyZWUgKGx1dUN0eCk7DQotKwkJcmV0dXJuIE5V TEw7DQotKwl9DQotKwlsdXVDdHgtPmlvLmJhZGxpbmVzID0gYmFkbGluZXM7DQotKwlpZiAoYmFk bGluZXMpICpiYWRsaW5lcyA9IDA7DQotKw0KLSsJbHV1Q3R4LT5zSW5wID0gc0lucDsNCi0rDQot KwlzT3V0ID0gYnNvcGVuICgoYk5yZWFkKSBic1V1RGVjb2RlUGFydCwgbHV1Q3R4KTsNCi0rCWlm IChOVUxMID09IHNPdXQpIGdvdG8gQ2xlYW5VcEZhaWx1cmVUb0FsbG9jYXRlOw0KLSsJcmV0dXJu IHNPdXQ7DQotIH0NCi0gDQotLSNkZWZpbmUgVVVfTUFYX0xJTkVMRU4gNDUNCi0gI2RlZmluZSBV VV9FTkNPREVfQllURShiKSAoY2hhcikgKCgoYikgPT0gMCkgPyAnYCcgOiAoKGIpICsgJyAnKSkN Ci0gDQotLS8qICBic3RyaW5nIGJVdUVuY29kZSAoY29uc3QgYnN0cmluZyBzcmMpDQotKy8qICBi c3RyaW5nIGJVdUVuY29kZSAoY29uc3RfYnN0cmluZyBzcmMpDQotICAqDQotICAqICBQZXJmb3Jt cyBhIFVVRW5jb2RlIG9mIGEgYmxvY2sgb2YgZGF0YS4gIFRoZSAiYmVnaW4iIGFuZCAiZW5kIiBs aW5lcyBhcmUgDQotICAqICBub3QgYXBwZW5kZWQuDQotICAqLw0KLS1ic3RyaW5nIGJVdUVuY29k ZSAoY29uc3QgYnN0cmluZyBzcmMpIHsNCi0rYnN0cmluZyBiVXVFbmNvZGUgKGNvbnN0X2JzdHJp bmcgc3JjKSB7DQotIGJzdHJpbmcgb3V0Ow0KLSBpbnQgaSwgaiwgam07DQotIHVuc2lnbmVkIGlu dCBjMCwgYzEsIGMyOw0KLUBAIC01MDAsMTggKzcyOCwxOCBAQCB1bnNpZ25lZCBpbnQgYzAsIGMx LCBjMjsNCi0gCQkJYnJlYWs7DQotIAkJfQ0KLSAJCWZvciAoaiA9IGk7IGogPCBqbTsgaiArPSAz KSB7DQotLQkJCWMwID0gYmNoYXIgKHNyYywgaiAgICApOw0KLS0JCQljMSA9IGJjaGFyIChzcmMs IGogKyAxKTsNCi0tCQkJYzIgPSBiY2hhciAoc3JjLCBqICsgMik7DQotKwkJCWMwID0gKHVuc2ln bmVkIGludCkgYmNoYXIgKHNyYywgaiAgICApOw0KLSsJCQljMSA9ICh1bnNpZ25lZCBpbnQpIGJj aGFyIChzcmMsIGogKyAxKTsNCi0rCQkJYzIgPSAodW5zaWduZWQgaW50KSBiY2hhciAoc3JjLCBq ICsgMik7DQotIAkJCWlmIChiY29uY2hhciAob3V0LCBVVV9FTkNPREVfQllURSAoIChjMCAmIDB4 RkMpID4+IDIpKSA8IDAgfHwNCi0tCQkJCWJjb25jaGFyIChvdXQsIFVVX0VOQ09ERV9CWVRFICgo KGMwICYgMHgwMykgPDwgNCkgfCAoKGMxICYgMHhGMCkgPj4gNCkpKSA8IDAgfHwNCi0tCQkJCWJj b25jaGFyIChvdXQsIFVVX0VOQ09ERV9CWVRFICgoKGMxICYgMHgwRikgPDwgMikgfCAoKGMyICYg MHhDMCkgPj4gNikpKSA8IDAgfHwNCi0tCQkJCWJjb25jaGFyIChvdXQsIFVVX0VOQ09ERV9CWVRF ICggKGMyICYgMHgzRikpKSA8IDApIHsNCi0tCQkJCQlic3RyRnJlZSAob3V0KTsNCi0tCQkJCQln b3RvIEVuZDsNCi0tCQkJCX0NCi0rCQkJICAgIGJjb25jaGFyIChvdXQsIFVVX0VOQ09ERV9CWVRF ICgoKGMwICYgMHgwMykgPDwgNCkgfCAoKGMxICYgMHhGMCkgPj4gNCkpKSA8IDAgfHwNCi0rCQkJ ICAgIGJjb25jaGFyIChvdXQsIFVVX0VOQ09ERV9CWVRFICgoKGMxICYgMHgwRikgPDwgMikgfCAo KGMyICYgMHhDMCkgPj4gNikpKSA8IDAgfHwNCi0rCQkJICAgIGJjb25jaGFyIChvdXQsIFVVX0VO Q09ERV9CWVRFICggKGMyICYgMHgzRikpKSA8IDApIHsNCi0rCQkJCWJzdHJGcmVlIChvdXQpOw0K LSsJCQkJZ290byBFbmQ7DQotKwkJCX0NCi0gCQl9DQotLQkJaWYgKGJjb25jaGFyIChvdXQsICdc cicpIDwgMCB8fCBiY29uY2hhciAob3V0LCAnXG4nKSA8IDApIHsNCi0rCQlpZiAoYmNvbmNoYXIg KG91dCwgKGNoYXIpICdccicpIDwgMCB8fCBiY29uY2hhciAob3V0LCAoY2hhcikgJ1xuJykgPCAw KSB7DQotIAkJCWJzdHJGcmVlIChvdXQpOw0KLSAJCQlicmVhazsNCi0gCQl9DQotQEAgLTUyMCwx MyArNzQ4LDEzIEBAIHVuc2lnbmVkIGludCBjMCwgYzEsIGMyOw0KLSAJcmV0dXJuIG91dDsNCi0g fQ0KLSANCi0tLyogIGJzdHJpbmcgYllFbmNvZGUgKGNvbnN0IGJzdHJpbmcgc3JjKQ0KLSsvKiAg YnN0cmluZyBiWUVuY29kZSAoY29uc3RfYnN0cmluZyBzcmMpDQotICAqDQotICAqICBQZXJmb3Jt cyBhIFlFbmNvZGUgb2YgYSBibG9jayBvZiBkYXRhLiAgTm8gaGVhZGVyIG9yIHRhaWwgaW5mbyBp cyANCi0gICogIGFwcGVuZGVkLiAgU2VlOiBodHRwOi8vd3d3LnllbmMub3JnL3doYXRpcy5odG0g YW5kIA0KLSAgKiAgaHR0cDovL3d3dy55ZW5jLm9yZy95ZW5jLWRyYWZ0LjEuMy50eHQNCi0gICov DQotLWJzdHJpbmcgYllFbmNvZGUgKGNvbnN0IGJzdHJpbmcgc3JjKSB7DQotK2JzdHJpbmcgYllF bmNvZGUgKGNvbnN0X2JzdHJpbmcgc3JjKSB7DQotIGludCBpOw0KLSBic3RyaW5nIG91dDsNCi0g dW5zaWduZWQgY2hhciBjOw0KLUBAIC01MzYsNyArNzY0LDcgQEAgdW5zaWduZWQgY2hhciBjOw0K LSAJZm9yIChpPTA7IGkgPCBzcmMtPnNsZW47IGkrKykgew0KLSAJCWMgPSAodW5zaWduZWQgY2hh cikoc3JjLT5kYXRhW2ldICsgNDIpOw0KLSAJCWlmIChjID09ICc9JyB8fCBjID09ICdcMCcgfHwg YyA9PSAnXHInIHx8IGMgPT0gJ1xuJykgew0KLS0JCQlpZiAoMCA+IGJjb25jaGFyIChvdXQsICc9 JykpIHsNCi0rCQkJaWYgKDAgPiBiY29uY2hhciAob3V0LCAoY2hhcikgJz0nKSkgew0KLSAJCQkJ YmRlc3Ryb3kgKG91dCk7DQotIAkJCQlyZXR1cm4gTlVMTDsNCi0gCQkJfQ0KLUBAIC01NTAsMjEg Kzc3OCwyNyBAQCB1bnNpZ25lZCBjaGFyIGM7DQotIAlyZXR1cm4gb3V0Ow0KLSB9DQotIA0KLS0v KiAgYnN0cmluZyBiWURlY29kZSAoY29uc3QgYnN0cmluZyBzcmMpDQotKy8qICBic3RyaW5nIGJZ RGVjb2RlIChjb25zdF9ic3RyaW5nIHNyYykNCi0gICoNCi0gICogIFBlcmZvcm1zIGEgWURlY29k ZSBvZiBhIGJsb2NrIG9mIGRhdGEuICBTZWU6IA0KLSAgKiAgaHR0cDovL3d3dy55ZW5jLm9yZy93 aGF0aXMuaHRtIGFuZCBodHRwOi8vd3d3LnllbmMub3JnL3llbmMtZHJhZnQuMS4zLnR4dA0KLSAg Ki8NCi0tYnN0cmluZyBiWURlY29kZSAoY29uc3QgYnN0cmluZyBzcmMpIHsNCi0rI2RlZmluZSBN QVhfT0JfTEVOICg2NCkNCi0rDQotK2JzdHJpbmcgYllEZWNvZGUgKGNvbnN0X2JzdHJpbmcgc3Jj KSB7DQotIGludCBpOw0KLSBic3RyaW5nIG91dDsNCi0gdW5zaWduZWQgY2hhciBjOw0KLSt1bnNp Z25lZCBjaGFyIG9jdGV0YnVmZltNQVhfT0JfTEVOXTsNCi0raW50IG9ibDsNCi0gDQotIAlpZiAo c3JjID09IE5VTEwgfHwgc3JjLT5zbGVuIDwgMCB8fCBzcmMtPmRhdGEgPT0gTlVMTCkgcmV0dXJu IE5VTEw7DQotIAlpZiAoKG91dCA9IGJmcm9tY3N0ciAoIiIpKSA9PSBOVUxMKSByZXR1cm4gTlVM TDsNCi0rDQotKwlvYmwgPSAwOw0KLSsNCi0gCWZvciAoaT0wOyBpIDwgc3JjLT5zbGVuOyBpKysp IHsNCi0tCQljID0gc3JjLT5kYXRhW2ldOw0KLS0JCWlmIChjID09ICc9Jykgew0KLSsJCWlmICgn PScgPT0gKGMgPSBzcmMtPmRhdGFbaV0pKSB7IC8qIFRoZSA9IGVzY2FwZSBtb2RlICovDQotIAkJ CWkrKzsNCi0gCQkJaWYgKGkgPj0gc3JjLT5zbGVuKSB7DQotIAkJCQliZGVzdHJveSAob3V0KTsN Ci1AQCAtNTcyLDcgKzgwNiw3IEBAIHVuc2lnbmVkIGNoYXIgYzsNCi0gCQkJfQ0KLSAJCQljID0g KHVuc2lnbmVkIGNoYXIpIChzcmMtPmRhdGFbaV0gLSA2NCk7DQotIAkJfSBlbHNlIHsNCi0tCQkJ aWYgKGMgPT0gJ1wwJykgew0KLSsJCQlpZiAoJ1wwJyA9PSBjKSB7DQotIAkJCQliZGVzdHJveSAo b3V0KTsNCi0gCQkJCXJldHVybiBOVUxMOw0KLSAJCQl9DQotQEAgLTU4MCwxMSArODE0LDMyMCBA QCB1bnNpZ25lZCBjaGFyIGM7DQotIAkJCS8qIEV4dHJhbmVvdXMgQ1IvTEZzIGFyZSB0byBiZSBp Z25vcmVkLiAqLw0KLSAJCQlpZiAoYyA9PSAnXHInIHx8IGMgPT0gJ1xuJykgY29udGludWU7DQot IAkJfQ0KLS0JCWlmICgwID4gYmNvbmNoYXIgKG91dCwgKGNoYXIpKGMgLSAodW5zaWduZWQgY2hh cikgNDIpKSkgew0KLS0JCQliZGVzdHJveSAob3V0KTsNCi0tCQkJcmV0dXJuIE5VTEw7DQotKw0K LSsJCW9jdGV0YnVmZltvYmxdID0gKHVuc2lnbmVkIGNoYXIpICgoaW50KSBjIC0gNDIpOw0KLSsJ CW9ibCsrOw0KLSsNCi0rCQlpZiAob2JsID49IE1BWF9PQl9MRU4pIHsNCi0rCQkJaWYgKDAgPiBi Y2F0YmxrIChvdXQsIG9jdGV0YnVmZiwgb2JsKSkgew0KLSsJCQkJYmRlc3Ryb3kgKG91dCk7DQot KwkJCQlyZXR1cm4gTlVMTDsNCi0rCQkJfQ0KLSsJCQlvYmwgPSAwOw0KLSAJCX0NCi0gCX0NCi0r DQotKwlpZiAoMCA+IGJjYXRibGsgKG91dCwgb2N0ZXRidWZmLCBvYmwpKSB7DQotKwkJYmRlc3Ry b3kgKG91dCk7DQotKwkJb3V0ID0gTlVMTDsNCi0rCX0NCi0gCXJldHVybiBvdXQ7DQotIH0NCi0g DQotKy8qICBic3RyaW5nIGJTdHJmVGltZSAoY29uc3QgY2hhciAqIGZtdCwgY29uc3Qgc3RydWN0 IHRtICogdGltZXB0cikNCi0rICoNCi0rICogIFRha2VzIGEgZm9ybWF0IHN0cmluZyB0aGF0IGlz IGNvbXBhdGlibGUgd2l0aCBzdHJmdGltZSBhbmQgYSBzdHJ1Y3QgdG0NCi0rICogIHBvaW50ZXIs IGZvcm1hdHMgdGhlIHRpbWUgYWNjb3JkaW5nIHRvIHRoZSBmb3JtYXQgc3RyaW5nIGFuZCBvdXRw dXRzDQotKyAqICB0aGUgYnN0cmluZyBhcyBhIHJlc3VsdC4gTm90ZSB0aGF0IGlmIHRoZXJlIGlz IGFuIGVhcmx5IGdlbmVyYXRpb24gb2YgYSANCi0rICogICdcMCcgY2hhcmFjdGVyLCB0aGUgYnN0 cmluZyB3aWxsIGJlIHRydW5jYXRlZCB0byB0aGlzIGVuZCBwb2ludC4NCi0rICovDQotK2JzdHJp bmcgYlN0cmZUaW1lIChjb25zdCBjaGFyICogZm10LCBjb25zdCBzdHJ1Y3QgdG0gKiB0aW1lcHRy KSB7DQotKyNpZiBkZWZpbmVkIChfX1RVUkJPQ19fKSAmJiAhZGVmaW5lZCAoX19CT1JMQU5EQ19f KQ0KLStzdGF0aWMgc3RydWN0IHRhZ2JzdHJpbmcgbnMgPSBic1N0YXRpYyAoImJTdHJmVGltZSBO b3Qgc3VwcG9ydGVkIik7DQotKwlmbXQgPSBmbXQ7DQotKwl0aW1lcHRyID0gdGltZXB0cjsNCi0r CXJldHVybiAmbnM7DQotKyNlbHNlDQotK2JzdHJpbmcgYnVmZjsNCi0raW50IG47DQotK3NpemVf dCByOw0KLSsNCi0rCWlmIChmbXQgPT0gTlVMTCkgcmV0dXJuIE5VTEw7DQotKw0KLSsJLyogU2lu Y2UgdGhlIGxlbmd0aCBpcyBub3QgZGV0ZXJtaW5hYmxlIGJlZm9yZWhhbmQsIGEgc2VhcmNoIGlz DQotKwkgICBwZXJmb3JtZWQgdXNpbmcgdGhlIHRydW5jYXRpbmcgInN0cmZ0aW1lIiBjYWxsIG9u IGluY3JlYXNpbmcgDQotKwkgICBwb3RlbnRpYWwgc2l6ZXMgZm9yIHRoZSBvdXRwdXQgcmVzdWx0 LiAqLw0KLSsNCi0rCWlmICgobiA9IChpbnQpICgyKnN0cmxlbiAoZm10KSkpIDwgMTYpIG4gPSAx NjsNCi0rCWJ1ZmYgPSBiZnJvbWNzdHJhbGxvYyAobisyLCAiIik7DQotKw0KLSsJZm9yICg7Oykg ew0KLSsJCWlmIChCU1RSX09LICE9IGJhbGxvYyAoYnVmZiwgbiArIDIpKSB7DQotKwkJCWJkZXN0 cm95IChidWZmKTsNCi0rCQkJcmV0dXJuIE5VTEw7DQotKwkJfQ0KLSsNCi0rCQlyID0gc3RyZnRp bWUgKChjaGFyICopIGJ1ZmYtPmRhdGEsIG4gKyAxLCBmbXQsIHRpbWVwdHIpOw0KLSsNCi0rCQlp ZiAociA+IDApIHsNCi0rCQkJYnVmZi0+c2xlbiA9IChpbnQpIHI7DQotKwkJCWJyZWFrOw0KLSsJ CX0NCi0rDQotKwkJbiArPSBuOw0KLSsJfQ0KLSsNCi0rCXJldHVybiBidWZmOw0KLSsjZW5kaWYN Ci0rfQ0KLSsNCi0rLyogIGludCBiU2V0Q3N0ckNoYXIgKGJzdHJpbmcgYSwgaW50IHBvcywgY2hh ciBjKQ0KLSsgKg0KLSsgKiAgU2V0cyB0aGUgY2hhcmFjdGVyIGF0IHBvc2l0aW9uIHBvcyB0byB0 aGUgY2hhcmFjdGVyIGMgaW4gdGhlIGJzdHJpbmcgYS4NCi0rICogIElmIHRoZSBjaGFyYWN0ZXIg YyBpcyBOVUwgKCdcMCcpIHRoZW4gdGhlIHN0cmluZyBpcyB0cnVuY2F0ZWQgYXQgdGhpcw0KLSsg KiAgcG9pbnQuICBOb3RlOiB0aGlzIGRvZXMgbm90IGVuYWJsZSBhbnkgb3RoZXIgJ1wwJyBjaGFy YWN0ZXIgaW4gdGhlIGJzdHJpbmcNCi0rICogIGFzIHRlcm1pbmF0b3IgaW5kaWNhdG9yIGZvciB0 aGUgc3RyaW5nLiAgcG9zIG11c3QgYmUgaW4gdGhlIHBvc2l0aW9uIA0KLSsgKiAgYmV0d2VlbiAw IGFuZCBiLT5zbGVuIGluY2x1c2l2ZSwgb3RoZXJ3aXNlIEJTVFJfRVJSIHdpbGwgYmUgcmV0dXJu ZWQuDQotKyAqLw0KLStpbnQgYlNldENzdHJDaGFyIChic3RyaW5nIGIsIGludCBwb3MsIGNoYXIg Yykgew0KLSsJaWYgKE5VTEwgPT0gYiB8fCBiLT5tbGVuIDw9IDAgfHwgYi0+c2xlbiA8IDAgfHwg Yi0+bWxlbiA8IGItPnNsZW4pDQotKwkJcmV0dXJuIEJTVFJfRVJSOw0KLSsJaWYgKHBvcyA8IDAg fHwgcG9zID4gYi0+c2xlbikgcmV0dXJuIEJTVFJfRVJSOw0KLSsNCi0rCWlmIChwb3MgPT0gYi0+ c2xlbikgew0KLSsJCWlmICgnXDAnICE9IGMpIHJldHVybiBiY29uY2hhciAoYiwgYyk7DQotKwkJ cmV0dXJuIDA7DQotKwl9DQotKw0KLSsJYi0+ZGF0YVtwb3NdID0gKHVuc2lnbmVkIGNoYXIpIGM7 DQotKwlpZiAoJ1wwJyA9PSBjKSBiLT5zbGVuID0gcG9zOw0KLSsNCi0rCXJldHVybiAwOw0KLSt9 DQotKw0KLSsvKiAgaW50IGJTZXRDaGFyIChic3RyaW5nIGIsIGludCBwb3MsIGNoYXIgYykNCi0r ICoNCi0rICogIFNldHMgdGhlIGNoYXJhY3RlciBhdCBwb3NpdGlvbiBwb3MgdG8gdGhlIGNoYXJh Y3RlciBjIGluIHRoZSBic3RyaW5nIGEuDQotKyAqICBUaGUgc3RyaW5nIGlzIG5vdCB0cnVuY2F0 ZWQgaWYgdGhlIGNoYXJhY3RlciBjIGlzIE5VTCAoJ1wwJykuICBwb3MgbXVzdA0KLSsgKiAgYmUg aW4gdGhlIHBvc2l0aW9uIGJldHdlZW4gMCBhbmQgYi0+c2xlbiBpbmNsdXNpdmUsIG90aGVyd2lz ZSBCU1RSX0VSUg0KLSsgKiAgd2lsbCBiZSByZXR1cm5lZC4NCi0rICovDQotK2ludCBiU2V0Q2hh ciAoYnN0cmluZyBiLCBpbnQgcG9zLCBjaGFyIGMpIHsNCi0rCWlmIChOVUxMID09IGIgfHwgYi0+ bWxlbiA8PSAwIHx8IGItPnNsZW4gPCAwIHx8IGItPm1sZW4gPCBiLT5zbGVuKQ0KLSsJCXJldHVy biBCU1RSX0VSUjsNCi0rCWlmIChwb3MgPCAwIHx8IHBvcyA+IGItPnNsZW4pIHJldHVybiBCU1RS X0VSUjsNCi0rDQotKwlpZiAocG9zID09IGItPnNsZW4pIHsNCi0rCQlyZXR1cm4gYmNvbmNoYXIg KGIsIGMpOw0KLSsJfQ0KLSsNCi0rCWItPmRhdGFbcG9zXSA9ICh1bnNpZ25lZCBjaGFyKSBjOw0K LSsJcmV0dXJuIDA7DQotK30NCi0rDQotKyNkZWZpbmUgSU5JVF9TRUNVUkVfSU5QVVRfTEVOR1RI ICgyNTYpDQotKw0KLSsvKiAgYnN0cmluZyBiU2VjdXJlSW5wdXQgKGludCBtYXhsZW4sIGludCB0 ZXJtY2hhciwgDQotKyAqICAgICAgICAgICAgICAgICAgICAgICAgYk5nZXRjIHZnZXRjaGFyLCB2 b2lkICogdmdjQ3R4KQ0KLSsgKg0KLSsgKiAgUmVhZCBpbnB1dCBmcm9tIGFuIGFic3RyYWN0ZWQg aW5wdXQgaW50ZXJmYWNlLCBmb3IgYSBsZW5ndGggb2YgYXQgbW9zdA0KLSsgKiAgbWF4bGVuIGNo YXJhY3RlcnMuICBJZiBtYXhsZW4gPD0gMCwgdGhlbiB0aGVyZSBpcyBubyBsZW5ndGggbGltaXQg cHV0DQotKyAqICBvbiB0aGUgaW5wdXQuICBUaGUgcmVzdWx0IGlzIHRlcm1pbmF0ZWQgZWFybHkg aWYgdmdldGNoYXIoKSByZXR1cm4gRU9GDQotKyAqICBvciB0aGUgdXNlciBzcGVjaWZpZWQgdmFs dWUgdGVybWNoYXIuDQotKyAqDQotKyAqLw0KLStic3RyaW5nIGJTZWN1cmVJbnB1dCAoaW50IG1h eGxlbiwgaW50IHRlcm1jaGFyLCBiTmdldGMgdmdldGNoYXIsIHZvaWQgKiB2Z2NDdHgpIHsNCi0r aW50IGksIG0sIGM7DQotK2JzdHJpbmcgYiwgdDsNCi0rDQotKwlpZiAoIXZnZXRjaGFyKSByZXR1 cm4gTlVMTDsNCi0rDQotKwliID0gYmZyb21jc3RyYWxsb2MgKElOSVRfU0VDVVJFX0lOUFVUX0xF TkdUSCwgIiIpOw0KLSsJaWYgKChjID0gVUNIQVJfTUFYICsgMSkgPT0gdGVybWNoYXIpIGMrKzsN Ci0rDQotKwlmb3IgKGk9MDsgOyBpKyspIHsNCi0rCQlpZiAodGVybWNoYXIgPT0gYyB8fCAobWF4 bGVuID4gMCAmJiBpID49IG1heGxlbikpIGMgPSBFT0Y7DQotKwkJZWxzZSBjID0gdmdldGNoYXIg KHZnY0N0eCk7DQotKw0KLSsJCWlmIChFT0YgPT0gYykgYnJlYWs7DQotKw0KLSsJCWlmIChpKzEg Pj0gYi0+bWxlbikgew0KLSsNCi0rCQkJLyogRG91YmxlIHNpemUsIGJ1dCBkZWFsIHdpdGggdW51 c3VhbCBjYXNlIG9mIG51bWVyaWMNCi0rCQkJICAgb3ZlcmZsb3dzICovDQotKw0KLSsJCQlpZiAo KG0gPSBiLT5tbGVuIDw8IDEpICAgPD0gYi0+bWxlbiAmJg0KLSsJCQkgICAgKG0gPSBiLT5tbGVu ICsgMTAyNCkgPD0gYi0+bWxlbiAmJg0KLSsJCQkgICAgKG0gPSBiLT5tbGVuICsgMTYpICAgPD0g Yi0+bWxlbiAmJg0KLSsJCQkgICAgKG0gPSBiLT5tbGVuICsgMSkgICAgPD0gYi0+bWxlbikgdCA9 IE5VTEw7DQotKwkJCWVsc2UgdCA9IGJmcm9tY3N0cmFsbG9jIChtLCAiIik7DQotKw0KLSsJCQlp ZiAodCkgbWVtY3B5ICh0LT5kYXRhLCBiLT5kYXRhLCBpKTsNCi0rCQkJYlNlY3VyZURlc3Ryb3kg KGIpOyAvKiBDbGVhbnNlIHByZXZpb3VzIGJ1ZmZlciAqLw0KLSsJCQliID0gdDsNCi0rCQkJaWYg KCFiKSByZXR1cm4gYjsNCi0rCQl9DQotKw0KLSsJCWItPmRhdGFbaV0gPSAodW5zaWduZWQgY2hh cikgYzsNCi0rCX0NCi0rDQotKwliLT5zbGVuID0gaTsNCi0rCWItPmRhdGFbaV0gPSAodW5zaWdu ZWQgY2hhcikgJ1wwJzsNCi0rCXJldHVybiBiOw0KLSt9DQotKw0KLSsjZGVmaW5lIEJXU19CVUZG X1NaICgxMDI0KQ0KLSsNCi0rc3RydWN0IGJ3cml0ZVN0cmVhbSB7DQotKyAgICBic3RyaW5nIGJ1 ZmY7ICAgIC8qIEJ1ZmZlciBmb3IgdW5kZXJ3cml0ZXMgICAgICAgICAgICAgICAgICAgKi8NCi0r ICAgIHZvaWQgKiBwYXJtOyAgICAgLyogVGhlIHN0cmVhbSBoYW5kbGUgZm9yIGNvcmUgc3RyZWFt ICAgICAgICAqLw0KLSsgICAgYk53cml0ZSB3cml0ZUZuOyAvKiBmd3JpdGUgd29yay1hLWxpa2Ug Zm5wdHIgZm9yIGNvcmUgc3RyZWFtICovDQotKyAgICBpbnQgaXNFT0Y7ICAgICAgIC8qIHRyYWNr IHN0cmVhbSdzIEVPRiBzdGF0ZSAgICAgICAgICAgICAgICAgKi8NCi0rICAgIGludCBtaW5CdWZm U3o7DQotK307DQotKw0KLSsvKiAgc3RydWN0IGJ3cml0ZVN0cmVhbSAqIGJ3c09wZW4gKGJOd3Jp dGUgd3JpdGVGbiwgdm9pZCAqIHBhcm0pDQotKyAqDQotKyAqICBXcmFwIGEgZ2l2ZW4gb3BlbiBz dHJlYW0gKGRlc2NyaWJlZCBieSBhIGZ3cml0ZSB3b3JrLWEtbGlrZSBmdW5jdGlvbiANCi0rICog IHBvaW50ZXIgYW5kIHN0cmVhbSBoYW5kbGUpIGludG8gYW4gb3BlbiBid3JpdGVTdHJlYW0gc3Vp dGFibGUgZm9yIHdyaXRlDQotKyAqICBzdHJlYW1pbmcgZnVuY3Rpb25zLg0KLSsgKi8NCi0rc3Ry dWN0IGJ3cml0ZVN0cmVhbSAqIGJ3c09wZW4gKGJOd3JpdGUgd3JpdGVGbiwgdm9pZCAqIHBhcm0p IHsNCi0rc3RydWN0IGJ3cml0ZVN0cmVhbSAqIHdzOw0KLSsNCi0rCWlmIChOVUxMID09IHdyaXRl Rm4pIHJldHVybiBOVUxMOw0KLSsJd3MgPSAoc3RydWN0IGJ3cml0ZVN0cmVhbSAqKSBtYWxsb2Mg KHNpemVvZiAoc3RydWN0IGJ3cml0ZVN0cmVhbSkpOw0KLSsJaWYgKHdzKSB7DQotKwkJaWYgKE5V TEwgPT0gKHdzLT5idWZmID0gYmZyb21jc3RyICgiIikpKSB7DQotKwkJCWZyZWUgKHdzKTsNCi0r CQkJd3MgPSBOVUxMOw0KLSsJCX0gZWxzZSB7DQotKwkJCXdzLT5wYXJtID0gcGFybTsNCi0rCQkJ d3MtPndyaXRlRm4gPSB3cml0ZUZuOw0KLSsJCQl3cy0+aXNFT0YgPSAwOw0KLSsJCQl3cy0+bWlu QnVmZlN6ID0gQldTX0JVRkZfU1o7DQotKwkJfQ0KLSsJfQ0KLSsJcmV0dXJuIHdzOw0KLSt9DQot Kw0KLSsjZGVmaW5lIGludGVybmFsX2J3c3dyaXRlb3V0KHdzLGIpIHsgXA0KLSsJaWYgKChiKS0+ c2xlbiA+IDApIHsgXA0KLSsJCWlmICgxICE9ICh3cy0+d3JpdGVGbiAoKGIpLT5kYXRhLCAoYikt PnNsZW4sIDEsIHdzLT5wYXJtKSkpIHsgXA0KLSsJCQl3cy0+aXNFT0YgPSAxOyBcDQotKwkJCXJl dHVybiBCU1RSX0VSUjsgXA0KLSsJCX0gXA0KLSsJfSBcDQotK30NCi0rDQotKy8qICBpbnQgYndz V3JpdGVGbHVzaCAoc3RydWN0IGJ3cml0ZVN0cmVhbSAqIHdzKQ0KLSsgKg0KLSsgKiAgRm9yY2Ug YW55IHBlbmRpbmcgZGF0YSB0byBiZSB3cml0dGVuIHRvIHRoZSBjb3JlIHN0cmVhbS4NCi0rICov DQotK2ludCBid3NXcml0ZUZsdXNoIChzdHJ1Y3QgYndyaXRlU3RyZWFtICogd3MpIHsNCi0rCWlm IChOVUxMID09IHdzIHx8IHdzLT5pc0VPRiB8fCAwID49IHdzLT5taW5CdWZmU3ogfHwgDQotKwkg ICAgTlVMTCA9PSB3cy0+d3JpdGVGbiB8fCBOVUxMID09IHdzLT5idWZmKSByZXR1cm4gQlNUUl9F UlI7DQotKwlpbnRlcm5hbF9id3N3cml0ZW91dCAod3MsIHdzLT5idWZmKTsNCi0rCXdzLT5idWZm LT5zbGVuID0gMDsNCi0rCXJldHVybiAwOw0KLSt9DQotKw0KLSsvKiAgaW50IGJ3c1dyaXRlQnN0 ciAoc3RydWN0IGJ3cml0ZVN0cmVhbSAqIHdzLCBjb25zdF9ic3RyaW5nIGIpDQotKyAqDQotKyAq ICBTZW5kIGEgYnN0cmluZyB0byBhIGJ3cml0ZVN0cmVhbS4gIElmIHRoZSBzdHJlYW0gaXMgYXQg RU9GIEJTVFJfRVJSIGlzDQotKyAqICByZXR1cm5lZC4gIE5vdGUgdGhhdCB0aGVyZSBpcyBubyBk ZXRlcm1pbmlzdGljIHdheSB0byBkZXRlcm1pbmUgdGhlIGV4YWN0DQotKyAqICBjdXQgb2ZmIHBv aW50IHdoZXJlIHRoZSBjb3JlIHN0cmVhbSBzdG9wcGVkIGFjY2VwdGluZyBkYXRhLg0KLSsgKi8N Ci0raW50IGJ3c1dyaXRlQnN0ciAoc3RydWN0IGJ3cml0ZVN0cmVhbSAqIHdzLCBjb25zdF9ic3Ry aW5nIGIpIHsNCi0rc3RydWN0IHRhZ2JzdHJpbmcgdDsNCi0raW50IGw7DQotKw0KLSsJaWYgKE5V TEwgPT0gd3MgfHwgTlVMTCA9PSBiIHx8IE5VTEwgPT0gd3MtPmJ1ZmYgfHwNCi0rCSAgICB3cy0+ aXNFT0YgfHwgMCA+PSB3cy0+bWluQnVmZlN6IHx8IE5VTEwgPT0gd3MtPndyaXRlRm4pDQotKwkJ cmV0dXJuIEJTVFJfRVJSOw0KLSsNCi0rCS8qIEJ1ZmZlciBwcmVwYWNraW5nIG9wdGltaXphdGlv biAqLw0KLSsJaWYgKGItPnNsZW4gPiAwICYmIHdzLT5idWZmLT5tbGVuIC0gd3MtPmJ1ZmYtPnNs ZW4gPiBiLT5zbGVuKSB7DQotKwkJc3RhdGljIHN0cnVjdCB0YWdic3RyaW5nIGVtcHR5ID0gYnNT dGF0aWMgKCIiKTsNCi0rCQlpZiAoMCA+IGJjb25jYXQgKHdzLT5idWZmLCBiKSkgcmV0dXJuIEJT VFJfRVJSOw0KLSsJCXJldHVybiBid3NXcml0ZUJzdHIgKHdzLCAmZW1wdHkpOw0KLSsJfQ0KLSsN Ci0rCWlmICgwID4gKGwgPSB3cy0+bWluQnVmZlN6IC0gd3MtPmJ1ZmYtPnNsZW4pKSB7DQotKwkJ aW50ZXJuYWxfYndzd3JpdGVvdXQgKHdzLCB3cy0+YnVmZik7DQotKwkJd3MtPmJ1ZmYtPnNsZW4g PSAwOw0KLSsJCWwgPSB3cy0+bWluQnVmZlN6Ow0KLSsJfQ0KLSsNCi0rCWlmIChiLT5zbGVuIDwg bCkgcmV0dXJuIGJjb25jYXQgKHdzLT5idWZmLCBiKTsNCi0rDQotKwlpZiAoMCA+IGJjYXRibGsg KHdzLT5idWZmLCBiLT5kYXRhLCBsKSkgcmV0dXJuIEJTVFJfRVJSOw0KLSsJaW50ZXJuYWxfYndz d3JpdGVvdXQgKHdzLCB3cy0+YnVmZik7DQotKwl3cy0+YnVmZi0+c2xlbiA9IDA7DQotKw0KLSsJ Ym1pZDJ0YnN0ciAodCwgKGJzdHJpbmcpIGIsIGwsIGItPnNsZW4pOw0KLSsNCi0rCWlmICh0LnNs ZW4gPj0gd3MtPm1pbkJ1ZmZTeikgew0KLSsJCWludGVybmFsX2J3c3dyaXRlb3V0ICh3cywgJnQp Ow0KLSsJCXJldHVybiAwOw0KLSsJfQ0KLSsNCi0rCXJldHVybiBiYXNzaWduICh3cy0+YnVmZiwg JnQpOw0KLSt9DQotKw0KLSsvKiAgaW50IGJ3c1dyaXRlQmxrIChzdHJ1Y3QgYndyaXRlU3RyZWFt ICogd3MsIHZvaWQgKiBibGssIGludCBsZW4pDQotKyAqDQotKyAqICBTZW5kIGEgYmxvY2sgb2Yg ZGF0YSBhIGJ3cml0ZVN0cmVhbS4gIElmIHRoZSBzdHJlYW0gaXMgYXQgRU9GIEJTVFJfRVJSIGlz IA0KLSsgKiAgcmV0dXJuZWQuDQotKyAqLw0KLStpbnQgYndzV3JpdGVCbGsgKHN0cnVjdCBid3Jp dGVTdHJlYW0gKiB3cywgdm9pZCAqIGJsaywgaW50IGxlbikgew0KLStzdHJ1Y3QgdGFnYnN0cmlu ZyB0Ow0KLSsJaWYgKE5VTEwgPT0gYmxrIHx8IGxlbiA8IDApIHJldHVybiBCU1RSX0VSUjsNCi0r CWJsazJ0YnN0ciAodCwgYmxrLCBsZW4pOw0KLSsJcmV0dXJuIGJ3c1dyaXRlQnN0ciAod3MsICZ0 KTsNCi0rfQ0KLSsNCi0rLyogIGludCBid3NJc0VPRiAoY29uc3Qgc3RydWN0IGJ3cml0ZVN0cmVh bSAqIHdzKQ0KLSsgKg0KLSsgKiAgUmV0dXJucyAwIGlmIHRoZSBzdHJlYW0gaXMgY3VycmVudGx5 IHdyaXRhYmxlLCAxIGlmIHRoZSBjb3JlIHN0cmVhbSBoYXMgDQotKyAqICByZXNwb25kZWQgYnkg bm90IGFjY2VwdGluZyB0aGUgcHJldmlvdXMgYXR0ZW1wdGVkIHdyaXRlLg0KLSsgKi8NCi0raW50 IGJ3c0lzRU9GIChjb25zdCBzdHJ1Y3QgYndyaXRlU3RyZWFtICogd3MpIHsNCi0rCWlmIChOVUxM ID09IHdzIHx8IE5VTEwgPT0gd3MtPmJ1ZmYgfHwgMCA+IHdzLT5taW5CdWZmU3ogfHwgDQotKwkg ICAgTlVMTCA9PSB3cy0+d3JpdGVGbikgcmV0dXJuIEJTVFJfRVJSOw0KLSsJcmV0dXJuIHdzLT5p c0VPRjsNCi0rfQ0KLSsNCi0rLyogIGludCBid3NCdWZmTGVuZ3RoIChzdHJ1Y3QgYndyaXRlU3Ry ZWFtICogd3MsIGludCBzeikNCi0rICoNCi0rICogIFNldCB0aGUgbGVuZ3RoIG9mIHRoZSBidWZm ZXIgdXNlZCBieSB0aGUgYndzU3RyZWFtLiAgSWYgc3ogaXMgemVybywgdGhlIA0KLSsgKiAgbGVu Z3RoIGlzIG5vdCBzZXQuICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgd2l0aCB0aGUgcHJldmlvdXMg bGVuZ3RoLg0KLSsgKi8NCi0raW50IGJ3c0J1ZmZMZW5ndGggKHN0cnVjdCBid3JpdGVTdHJlYW0g KiB3cywgaW50IHN6KSB7DQotK2ludCBvbGRTejsNCi0rCWlmICh3cyA9PSBOVUxMIHx8IHN6IDwg MCkgcmV0dXJuIEJTVFJfRVJSOw0KLSsJb2xkU3ogPSB3cy0+bWluQnVmZlN6Ow0KLSsJaWYgKHN6 ID4gMCkgd3MtPm1pbkJ1ZmZTeiA9IHN6Ow0KLSsJcmV0dXJuIG9sZFN6Ow0KLSt9DQotKw0KLSsv KiAgdm9pZCAqIGJ3c0Nsb3NlIChzdHJ1Y3QgYndyaXRlU3RyZWFtICogcykNCi0rICoNCi0rICog IENsb3NlIHRoZSBid3JpdGVTdHJlYW0sIGFuZCByZXR1cm4gdGhlIGhhbmRsZSB0byB0aGUgc3Ry ZWFtIHRoYXQgd2FzIA0KLSsgKiAgb3JpZ2luYWxseSB1c2VkIHRvIG9wZW4gdGhlIGdpdmVuIHN0 cmVhbS4gIE5vdGUgdGhhdCBldmVuIGlmIHRoZSBzdHJlYW0NCi0rICogIGlzIGF0IEVPRiBpdCBz dGlsbCBuZWVkcyB0byBiZSBjbG9zZWQgd2l0aCBhIGNhbGwgdG8gYndzQ2xvc2UuDQotKyAqLw0K LSt2b2lkICogYndzQ2xvc2UgKHN0cnVjdCBid3JpdGVTdHJlYW0gKiB3cykgew0KLSt2b2lkICog cGFybTsNCi0rCWlmIChOVUxMID09IHdzIHx8IE5VTEwgPT0gd3MtPmJ1ZmYgfHwgMCA+PSB3cy0+ bWluQnVmZlN6IHx8IA0KLSsJICAgIE5VTEwgPT0gd3MtPndyaXRlRm4pIHJldHVybiBOVUxMOw0K LSsJYndzV3JpdGVGbHVzaCAod3MpOw0KLSsJcGFybSA9IHdzLT5wYXJtOw0KLSsJd3MtPnBhcm0g PSBOVUxMOw0KLSsJd3MtPm1pbkJ1ZmZTeiA9IC0xOw0KLSsJd3MtPndyaXRlRm4gPSBOVUxMOw0K LSsJYnN0ckZyZWUgKHdzLT5idWZmKTsNCi0rCWZyZWUgKHdzKTsNCi0rCXJldHVybiBwYXJtOw0K LSt9DQotKw0KLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL2xpYi9ic3RyaW5nL2JzdHJhdXguaCBw YWRzLTEuMi9saWIvYnN0cmluZy9ic3RyYXV4LmgKLS0tLSBwYWRzLTEuMi5vcmlnL2xpYi9ic3Ry aW5nL2JzdHJhdXguaAkyMDA4LTA3LTA4IDE0OjI4OjI5LjAwMDAwMDAwMCAtMDQwMAotKysrIHBh ZHMtMS4yL2xpYi9ic3RyaW5nL2JzdHJhdXguaAkyMDA4LTA3LTEwIDE4OjA5OjIxLjAwMDAwMDAw MCAtMDQwMAotQEAgLTEsMTQgKzEsMTQgQEAKLSAvKg0KLSAgKiBUaGlzIHNvdXJjZSBmaWxlIGlz IHBhcnQgb2YgdGhlIGJzdHJpbmcgc3RyaW5nIGxpYnJhcnkuICBUaGlzIGNvZGUgd2FzDQotLSAq IHdyaXR0ZW4gYnkgUGF1bCBIc2llaCBpbiAyMDAyLTIwMDQsIGFuZCBpcyBjb3ZlcmVkIGJ5IHRo ZSBCU0Qgb3BlbiBzb3VyY2UgDQotLSAqIGxpY2Vuc2UuIFJlZmVyIHRvIHRoZSBhY2NvbXBhbnlp bmcgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscyBvbiB1c2FnZSBhbmQgDQotLSAqIGxpY2Vuc2Uu DQotKyAqIHdyaXR0ZW4gYnkgUGF1bCBIc2llaCBpbiAyMDAyLTIwMDgsIGFuZCBpcyBjb3ZlcmVk IGJ5IHRoZSBCU0Qgb3BlbiBzb3VyY2UgDQotKyAqIGxpY2Vuc2UgYW5kIHRoZSBHUEwuIFJlZmVy IHRvIHRoZSBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscyANCi0rICogb24g dXNhZ2UgYW5kIGxpY2Vuc2UuDQotICAqLw0KLSANCi0gLyoNCi0gICogYnN0cmF1eC5oDQotICAq DQotLSAqIFRoaXMgZmlsZSBpcyBub3QgbmVjZXNzYXJpbHkgcGFydCBvZiB0aGUgY29yZSBic3Ry aW5nIGxpYnJhcnkgaXRzZWxmLCBidXQNCi0rICogVGhpcyBmaWxlIGlzIG5vdCBhIG5lY2Vzc2Fy eSBwYXJ0IG9mIHRoZSBjb3JlIGJzdHJpbmcgbGlicmFyeSBpdHNlbGYsIGJ1dA0KLSAgKiBpcyBq dXN0IGFuIGF1eGlsbGlhcnkgbW9kdWxlIHdoaWNoIGluY2x1ZGVzIG1pc2NlbGxhbmVvdXMgb3Ig dHJpdmlhbCANCi0gICogZnVuY3Rpb25zLg0KLSAgKi8NCi1AQCAtMTYsMzcgKzE2LDQ3IEBACi0g I2lmbmRlZiBCU1RSQVVYX0lOQ0xVREUNCi0gI2RlZmluZSBCU1RSQVVYX0lOQ0xVREUNCi0gDQot KyNpbmNsdWRlIDx0aW1lLmg+DQotICNpbmNsdWRlICJic3RybGliLmgiDQotIA0KLSAjaWZkZWYg X19jcGx1c3BsdXMNCi0gZXh0ZXJuICJDIiB7DQotICNlbmRpZg0KLSANCi0rLyogU2FmZXR5IG1l Y2hhbmlzbXMgKi8NCi0gI2RlZmluZSBic3RyRGVjbGFyZShiKSAgICAgICAgICAgICAgIGJzdHJp bmcgKGIpID0gTlVMTDsgDQotICNkZWZpbmUgYnN0ckZyZWUoYikgICAgICAgICAgICAgICAgICB7 aWYgKChiKSAhPSBOVUxMICYmIChiKS0+c2xlbiA+PSAwICYmIChiKS0+bWxlbiA+PSAoYiktPnNs ZW4pIHsgYmRlc3Ryb3kgKGIpOyAoYikgPSBOVUxMOyB9fQ0KLSANCi0tLyogQmFja3dhcmQgY29t cGF0aWJpbHR5IHdpdGggcHJldmlvdXMgdmVyc2lvbiBvZiBCc3RybGliICovDQotKy8qIEJhY2t3 YXJkIGNvbXBhdGliaWx0eSB3aXRoIHByZXZpb3VzIHZlcnNpb25zIG9mIEJzdHJsaWIgKi8NCi0g I2RlZmluZSBiQXNzaWduKGEsYikgICAgICAgICAgICAgICAgICgoYmFzc2lnbikoKGEpLCAoYikp KQ0KLSAjZGVmaW5lIGJTdWJzKGIscG9zLGxlbixhLGMpICAgICAgICAgKChicmVwbGFjZSkoKGIp LChwb3MpLChsZW4pLChhKSwodW5zaWduZWQgY2hhcikoYykpKQ0KLS0jZGVmaW5lIGJTdHJjaHIo YixjKSAgICAgICAgICAgICAgICAgKChic3RyY2hyKSgoYiksKGMpKSkNCi0tI2RlZmluZSBiU3Ry Y2hyRmFzdChiLGMpICAgICAgICAgICAgICgoYnN0cmNocikoKGIpLChjKSkpDQotKyNkZWZpbmUg YlN0cmNocihiLGMpICAgICAgICAgICAgICAgICAoKGJzdHJjaHIpKChiKSwgKGMpKSkNCi0rI2Rl ZmluZSBiU3RyY2hyRmFzdChiLGMpICAgICAgICAgICAgICgoYnN0cmNocikoKGIpLCAoYykpKQ0K LSAjZGVmaW5lIGJDYXRDc3RyKGIscykgICAgICAgICAgICAgICAgKChiY2F0Y3N0cikoKGIpLCAo cykpKQ0KLSAjZGVmaW5lIGJDYXRCbGsoYixzLGxlbikgICAgICAgICAgICAgKChiY2F0YmxrKSgo YiksKHMpLChsZW4pKSkNCi0tI2RlZmluZSBiQ2F0U3RhdGljKGIscykgICAgICAgICAgICAgIGJD YXRCbGsgKChiKSwgKHMpLCBzaXplb2YgKHMpIC0gMSkNCi0rI2RlZmluZSBiQ2F0U3RhdGljKGIs cykgICAgICAgICAgICAgIGJDYXRCbGsgKChiKSwgKCIiIHMgIiIpLCBzaXplb2YgKHMpIC0gMSkN Ci0rI2RlZmluZSBiVHJ1bmMoYixuKSAgICAgICAgICAgICAgICAgICgoYnRydW5jKSgoYiksIChu KSkpDQotICNkZWZpbmUgYlJlcGxhY2VBbGwoYixmaW5kLHJlcGwscG9zKSAoKGJmaW5kcmVwbGFj ZSkoKGIpLChmaW5kKSwocmVwbCksKHBvcykpKQ0KLSAjZGVmaW5lIGJVcHBlcmNhc2UoYikgICAg ICAgICAgICAgICAgKChidG91cHBlcikoYikpDQotICNkZWZpbmUgYkxvd2VyY2FzZShiKSAgICAg ICAgICAgICAgICAoKGJ0b2xvd2VyKShiKSkNCi0tI2RlZmluZSBiQ2FzZWxlc3NDbXAoYSxiKSAg ICAgICAgICAgICgoYnN0cmljbXApKGEsYikpDQotLSNkZWZpbmUgYkNhc2VsZXNzTkNtcChhLGIs bikgICAgICAgICAoKGJzdHJuaWNtcCkoYSxiLG4pKQ0KLSsjZGVmaW5lIGJDYXNlbGVzc0NtcChh LGIpICAgICAgICAgICAgKChic3RyaWNtcCkoKGEpLCAoYikpKQ0KLSsjZGVmaW5lIGJDYXNlbGVz c05DbXAoYSxiLG4pICAgICAgICAgKChic3RybmljbXApKChhKSwgKGIpLCAobikpKQ0KLSsjZGVm aW5lIGJCYXNlNjREZWNvZGUoYikgICAgICAgICAgICAgKGJCYXNlNjREZWNvZGVFeCAoKGIpLCBO VUxMKSkNCi0rI2RlZmluZSBiVXVEZWNvZGUoYikgICAgICAgICAgICAgICAgIChiVXVEZWNvZGVF eCAoKGIpLCBOVUxMKSkNCi0gDQotIC8qIFVudXN1YWwgZnVuY3Rpb25zICovDQotLWV4dGVybiBp bnQgYlRydW5jIChic3RyaW5nIGIsIGludCBuKTsNCi0rZXh0ZXJuIHN0cnVjdCBiU3RyZWFtICog YnNGcm9tQnN0ciAoY29uc3RfYnN0cmluZyBiKTsNCi0gZXh0ZXJuIGJzdHJpbmcgYlRhaWwgKGJz dHJpbmcgYiwgaW50IG4pOw0KLSBleHRlcm4gYnN0cmluZyBiSGVhZCAoYnN0cmluZyBiLCBpbnQg bik7DQotK2V4dGVybiBpbnQgYlNldENzdHJDaGFyIChic3RyaW5nIGEsIGludCBwb3MsIGNoYXIg Yyk7DQotK2V4dGVybiBpbnQgYlNldENoYXIgKGJzdHJpbmcgYiwgaW50IHBvcywgY2hhciBjKTsN Ci0gZXh0ZXJuIGludCBiRmlsbCAoYnN0cmluZyBhLCBjaGFyIGMsIGludCBsZW4pOw0KLSBleHRl cm4gaW50IGJSZXBsaWNhdGUgKGJzdHJpbmcgYiwgaW50IG4pOw0KLSBleHRlcm4gaW50IGJSZXZl cnNlIChic3RyaW5nIGIpOw0KLSBleHRlcm4gaW50IGJJbnNlcnRDaHJzIChic3RyaW5nIGIsIGlu dCBwb3MsIGludCBsZW4sIHVuc2lnbmVkIGNoYXIgYywgdW5zaWduZWQgY2hhciBmaWxsKTsNCi0r ZXh0ZXJuIGJzdHJpbmcgYlN0cmZUaW1lIChjb25zdCBjaGFyICogZm10LCBjb25zdCBzdHJ1Y3Qg dG0gKiB0aW1lcHRyKTsNCi0rI2RlZmluZSBiQXNjVGltZSh0KSAoYlN0cmZUaW1lICgiJWNcbiIs ICh0KSkpDQotKyNkZWZpbmUgYkNUaW1lKHQpICAgKCh0KSA/IGJBc2NUaW1lIChsb2NhbHRpbWUg KHQpKSA6IE5VTEwpDQotIA0KLSAvKiBTcGFjaW5nIGZvcm1hdHRpbmcgKi8NCi0gZXh0ZXJuIGlu dCBiSnVzdGlmeUxlZnQgKGJzdHJpbmcgYiwgaW50IHNwYWNlKTsNCi1AQCAtNTUsMTQgKzY1LDQ1 IEBAIGV4dGVybiBpbnQgYkp1c3RpZnlNYXJnaW4gKGJzdHJpbmcgYiwgaW4KLSBleHRlcm4gaW50 IGJKdXN0aWZ5Q2VudGVyIChic3RyaW5nIGIsIGludCB3aWR0aCwgaW50IHNwYWNlKTsNCi0gDQot IC8qIEVzb3RlcmljIHN0YW5kYXJkcyBzcGVjaWZpYyBmdW5jdGlvbnMgKi8NCi0tZXh0ZXJuIGNo YXIgKiBiU3RyMk5ldFN0ciAoY29uc3QgYnN0cmluZyBiKTsNCi0rZXh0ZXJuIGNoYXIgKiBiU3Ry Mk5ldFN0ciAoY29uc3RfYnN0cmluZyBiKTsNCi0gZXh0ZXJuIGJzdHJpbmcgYk5ldFN0cjJCc3Ry IChjb25zdCBjaGFyICogYnVmKTsNCi0tZXh0ZXJuIGJzdHJpbmcgYkJhc2U2NEVuY29kZSAoY29u c3QgYnN0cmluZyBiKTsNCi0tZXh0ZXJuIGJzdHJpbmcgYkJhc2U2NERlY29kZSAoY29uc3QgYnN0 cmluZyBiKTsNCi0tZXh0ZXJuIGJzdHJpbmcgYlV1RGVjb2RlIChjb25zdCBic3RyaW5nIHNyYyk7 DQotLWV4dGVybiBic3RyaW5nIGJVdUVuY29kZSAoY29uc3QgYnN0cmluZyBzcmMpOw0KLS1leHRl cm4gYnN0cmluZyBiWUVuY29kZSAoY29uc3QgYnN0cmluZyBzcmMpOw0KLS1leHRlcm4gYnN0cmlu ZyBiWURlY29kZSAoY29uc3QgYnN0cmluZyBzcmMpOw0KLStleHRlcm4gYnN0cmluZyBiQmFzZTY0 RW5jb2RlIChjb25zdF9ic3RyaW5nIGIpOw0KLStleHRlcm4gYnN0cmluZyBiQmFzZTY0RGVjb2Rl RXggKGNvbnN0X2JzdHJpbmcgYiwgaW50ICogYm9vbFRydW5jRXJyb3IpOw0KLStleHRlcm4gc3Ry dWN0IGJTdHJlYW0gKiBic1V1RGVjb2RlIChzdHJ1Y3QgYlN0cmVhbSAqIHNJbnAsIGludCAqIGJh ZGxpbmVzKTsNCi0rZXh0ZXJuIGJzdHJpbmcgYlV1RGVjb2RlRXggKGNvbnN0X2JzdHJpbmcgc3Jj LCBpbnQgKiBiYWRsaW5lcyk7DQotK2V4dGVybiBic3RyaW5nIGJVdUVuY29kZSAoY29uc3RfYnN0 cmluZyBzcmMpOw0KLStleHRlcm4gYnN0cmluZyBiWUVuY29kZSAoY29uc3RfYnN0cmluZyBzcmMp Ow0KLStleHRlcm4gYnN0cmluZyBiWURlY29kZSAoY29uc3RfYnN0cmluZyBzcmMpOw0KLSsNCi0r LyogV3JpdGFibGUgc3RyZWFtICovDQotK3R5cGVkZWYgaW50ICgqIGJOd3JpdGUpIChjb25zdCB2 b2lkICogYnVmLCBzaXplX3QgZWxzaXplLCBzaXplX3QgbmVsZW0sIHZvaWQgKiBwYXJtKTsNCi0r DQotK3N0cnVjdCBid3JpdGVTdHJlYW0gKiBid3NPcGVuIChiTndyaXRlIHdyaXRlRm4sIHZvaWQg KiBwYXJtKTsNCi0raW50IGJ3c1dyaXRlQnN0ciAoc3RydWN0IGJ3cml0ZVN0cmVhbSAqIHN0cmVh bSwgY29uc3RfYnN0cmluZyBiKTsNCi0raW50IGJ3c1dyaXRlQmxrIChzdHJ1Y3QgYndyaXRlU3Ry ZWFtICogc3RyZWFtLCB2b2lkICogYmxrLCBpbnQgbGVuKTsNCi0raW50IGJ3c1dyaXRlRmx1c2gg KHN0cnVjdCBid3JpdGVTdHJlYW0gKiBzdHJlYW0pOw0KLStpbnQgYndzSXNFT0YgKGNvbnN0IHN0 cnVjdCBid3JpdGVTdHJlYW0gKiBzdHJlYW0pOw0KLStpbnQgYndzQnVmZkxlbmd0aCAoc3RydWN0 IGJ3cml0ZVN0cmVhbSAqIHN0cmVhbSwgaW50IHN6KTsNCi0rdm9pZCAqIGJ3c0Nsb3NlIChzdHJ1 Y3QgYndyaXRlU3RyZWFtICogc3RyZWFtKTsNCi0rDQotKy8qIFNlY3VyaXR5IGZ1bmN0aW9ucyAq Lw0KLSsjZGVmaW5lIGJTZWN1cmVEZXN0cm95KGIpIHsJICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQotK2JzdHJpbmcgYnN0cl9fdG1wID0gKGIpOwkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rCWlmIChic3RyX190bXAg JiYgYnN0cl9fdG1wLT5tbGVuID4gMCAmJiBic3RyX190bXAtPmRhdGEpIHsgICAgICAgICAgXA0K LSsJICAgICh2b2lkKSBtZW1zZXQgKGJzdHJfX3RtcC0+ZGF0YSwgMCwgKHNpemVfdCkgYnN0cl9f dG1wLT5tbGVuKTsgICBcDQotKwkgICAgYmRlc3Ryb3kgKGJzdHJfX3RtcCk7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rCX0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KLSt9DQot KyNkZWZpbmUgYlNlY3VyZVdyaXRlUHJvdGVjdCh0KSB7CSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQotKwlpZiAoKHQpLm1sZW4gPj0gMCkgeyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotKwkg ICAgaWYgKCh0KS5tbGVuID4gKHQpLnNsZW4pKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQotKwkgICAgICAgICh2b2lkKSBtZW1zZXQgKCh0KS5kYXRh ICsgKHQpLnNsZW4sIDAsIChzaXplX3QpICh0KS5tbGVuIC0gKHQpLnNsZW4pOyBcDQotKwkgICAg fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQotKwkgICAgKHQpLm1sZW4gPSAtMTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotKwl9ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQotK30NCi0rZXh0ZXJuIGJzdHJpbmcgYlNlY3VyZUlucHV0IChpbnQg bWF4bGVuLCBpbnQgdGVybWNoYXIsIA0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJO Z2V0YyB2Z2V0Y2hhciwgdm9pZCAqIHZnY0N0eCk7DQotIA0KLSAjaWZkZWYgX19jcGx1c3BsdXMN Ci0gfQ0KLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL2xpYi9ic3RyaW5nL2JzdHJsaWIuYyBwYWRz LTEuMi9saWIvYnN0cmluZy9ic3RybGliLmMKLS0tLSBwYWRzLTEuMi5vcmlnL2xpYi9ic3RyaW5n L2JzdHJsaWIuYwkyMDA4LTA3LTA4IDE0OjI4OjI5LjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMt MS4yL2xpYi9ic3RyaW5nL2JzdHJsaWIuYwkyMDA4LTA3LTEwIDE4OjA5OjA2LjAwMDAwMDAwMCAt MDQwMAotQEAgLTEsOCArMSw4IEBACi0gLyoNCi0gICogVGhpcyBzb3VyY2UgZmlsZSBpcyBwYXJ0 IG9mIHRoZSBic3RyaW5nIHN0cmluZyBsaWJyYXJ5LiAgVGhpcyBjb2RlIHdhcw0KLS0gKiB3cml0 dGVuIGJ5IFBhdWwgSHNpZWggaW4gMjAwMi0yMDA0LCBhbmQgaXMgY292ZXJlZCBieSB0aGUgQlNE IG9wZW4gc291cmNlIA0KLS0gKiBsaWNlbnNlLiBSZWZlciB0byB0aGUgYWNjb21wYW55aW5nIGRv Y3VtZW50YXRpb24gZm9yIGRldGFpbHMgb24gdXNhZ2UgYW5kIA0KLS0gKiBsaWNlbnNlLg0KLSsg KiB3cml0dGVuIGJ5IFBhdWwgSHNpZWggaW4gMjAwMi0yMDA4LCBhbmQgaXMgY292ZXJlZCBieSB0 aGUgQlNEIG9wZW4gc291cmNlIA0KLSsgKiBsaWNlbnNlIGFuZCB0aGUgR1BMLiBSZWZlciB0byB0 aGUgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMgDQotKyAqIG9uIHVzYWdl IGFuZCBsaWNlbnNlLg0KLSAgKi8NCi0gDQotIC8qDQotQEAgLTEyLDYgKzEyLDcgQEAKLSAgKi8N Ci0gDQotICNpbmNsdWRlIDxzdGRpby5oPg0KLSsjaW5jbHVkZSA8c3RkZGVmLmg+DQotICNpbmNs dWRlIDxzdGRhcmcuaD4NCi0gI2luY2x1ZGUgPHN0ZGxpYi5oPg0KLSAjaW5jbHVkZSA8c3RyaW5n Lmg+DQotQEAgLTI0LDkgKzI1LDQxIEBACi0gI2luY2x1ZGUgIm1lbWRiZy5oIg0KLSAjZW5kaWYN Ci0gDQotKyNpZm5kZWYgYnN0cl9fYWxsb2MNCi0rI2RlZmluZSBic3RyX19hbGxvYyh4KSBtYWxs b2MgKHgpDQotKyNlbmRpZg0KLSsNCi0rI2lmbmRlZiBic3RyX19mcmVlDQotKyNkZWZpbmUgYnN0 cl9fZnJlZShwKSBmcmVlIChwKQ0KLSsjZW5kaWYNCi0rDQotKyNpZm5kZWYgYnN0cl9fcmVhbGxv Yw0KLSsjZGVmaW5lIGJzdHJfX3JlYWxsb2MocCx4KSByZWFsbG9jICgocCksICh4KSkNCi0rI2Vu ZGlmDQotKw0KLSsjaWZuZGVmIGJzdHJfX21lbWNweQ0KLSsjZGVmaW5lIGJzdHJfX21lbWNweShk LHMsbCkgbWVtY3B5ICgoZCksIChzKSwgKGwpKQ0KLSsjZW5kaWYNCi0rDQotKyNpZm5kZWYgYnN0 cl9fbWVtbW92ZQ0KLSsjZGVmaW5lIGJzdHJfX21lbW1vdmUoZCxzLGwpIG1lbW1vdmUgKChkKSwg KHMpLCAobCkpDQotKyNlbmRpZg0KLSsNCi0rI2lmbmRlZiBic3RyX19tZW1zZXQNCi0rI2RlZmlu ZSBic3RyX19tZW1zZXQoZCxjLGwpIG1lbXNldCAoKGQpLCAoYyksIChsKSkNCi0rI2VuZGlmDQot Kw0KLSsjaWZuZGVmIGJzdHJfX21lbWNtcA0KLSsjZGVmaW5lIGJzdHJfX21lbWNtcChkLGMsbCkg bWVtY21wICgoZCksIChjKSwgKGwpKQ0KLSsjZW5kaWYNCi0rDQotKyNpZm5kZWYgYnN0cl9fbWVt Y2hyDQotKyNkZWZpbmUgYnN0cl9fbWVtY2hyKHMsYyxsKSBtZW1jaHIgKChzKSwgKGMpLCAobCkp DQotKyNlbmRpZg0KLSsNCi0gLyogSnVzdCBhIGxlbmd0aCBzYWZlIHdyYXBwZXIgZm9yIG1lbW1v dmUuICovDQotIA0KLS0jZGVmaW5lIGJCbG9ja0NvcHkoRCxTLEwpIHsgaWYgKChMKSA+IDApIG1l bW1vdmUgKChEKSwoUyksKEwpKTsgfQ0KLSsjZGVmaW5lIGJCbG9ja0NvcHkoRCxTLEwpIHsgaWYg KChMKSA+IDApIGJzdHJfX21lbW1vdmUgKChEKSwoUyksKEwpKTsgfQ0KLSANCi0gLyogQ29tcHV0 ZSB0aGUgc25hcHBlZCBzaXplIGZvciBhIGdpdmVuIHJlcXVlc3RlZCBzaXplLiAgQnkgc25hcHBp bmcgdG8gcG93ZXJzDQotICAgIG9mIDIgbGlrZSB0aGlzLCByZXBlYXRlZCByZWFsbG9jYXRpb25z IGFyZSBhdm9pZGVkLiAqLw0KLUBAIC0zNSwxNiArNjgsMjEgQEAgc3RhdGljIGludCBzbmFwVXBT aXplIChpbnQgaSkgew0KLSAJCWkgPSA4Ow0KLSAJfSBlbHNlIHsNCi0gCQl1bnNpZ25lZCBpbnQg ajsNCi0tCQlqID0gaTsNCi0rCQlqID0gKHVuc2lnbmVkIGludCkgaTsNCi0gDQotLQkJLyogQXNz dW1lcyB5b3VyIHN5c3RlbSBpcyBhdCBsZWFzdCAzMiBiaXRzLCBhbmQgeW91ciBzdHJpbmcgaXMN Ci0tCQkgICBhdCBtb3N0IDRHQiBpcyBzaXplLiAqLw0KLSAJCWogfD0gKGogPj4gIDEpOw0KLSAJ CWogfD0gKGogPj4gIDIpOw0KLSAJCWogfD0gKGogPj4gIDQpOw0KLS0JCWogfD0gKGogPj4gIDgp Ow0KLS0JCWogfD0gKGogPj4gMTYpOw0KLS0JCWkgPSBqICsgMTsJCS8qIExlYXN0IHBvd2VyIG9m IHR3byBncmVhdGVyIHRoYW4gaSAqLw0KLSsJCWogfD0gKGogPj4gIDgpOwkJLyogT2ssIHNpbmNl IGludCA+PSAxNiBiaXRzICovDQotKyNpZiAoVUlOVF9NQVggIT0gMHhmZmZmKQ0KLSsJCWogfD0g KGogPj4gMTYpOwkJLyogRm9yIDMyIGJpdCBpbnQgc3lzdGVtcyAqLw0KLSsjaWYgKFVJTlRfTUFY ID4gMHhmZmZmZmZmZlVMKQ0KLSsJCWogfD0gKGogPj4gMzIpOwkJLyogRm9yIDY0IGJpdCBpbnQg c3lzdGVtcyAqLw0KLSsjZW5kaWYNCi0rI2VuZGlmDQotKwkJLyogTGVhc3QgcG93ZXIgb2YgdHdv IGdyZWF0ZXIgdGhhbiBpICovDQotKwkJaisrOw0KLSsJCWlmICgoaW50KSBqID49IGkpIGkgPSAo aW50KSBqOw0KLSAJfQ0KLSAJcmV0dXJuIGk7DQotIH0NCi1AQCAtNTMsMTYgKzkxLDE3IEBAIHN0 YXRpYyBpbnQgc25hcFVwU2l6ZSAoaW50IGkpIHsNCi0gICoNCi0gICogIEluY3JlYXNlIHRoZSBz aXplIG9mIHRoZSBtZW1vcnkgYmFja2luZyB0aGUgYnN0cmluZyBiIHRvIGF0IGxlYXN0IGxlbi4N Ci0gICovDQotLWludCBiYWxsb2MgKGJzdHJpbmcgYiwgaW50IGxlbikgew0KLS0JaWYgKGIgPT0g TlVMTCB8fCBiLT5kYXRhID09IE5VTEwgfHwgYi0+c2xlbiA8IDAgfHwgYi0+bWxlbiA8IDAgfHwg DQotLQkgICAgYi0+bWxlbiA8IGItPnNsZW4gfHwgbGVuIDw9IDApIHsNCi0raW50IGJhbGxvYyAo YnN0cmluZyBiLCBpbnQgb2xlbikgew0KLSsJaW50IGxlbjsNCi0rCWlmIChiID09IE5VTEwgfHwg Yi0+ZGF0YSA9PSBOVUxMIHx8IGItPnNsZW4gPCAwIHx8IGItPm1sZW4gPD0gMCB8fCANCi0rCSAg ICBiLT5tbGVuIDwgYi0+c2xlbiB8fCBvbGVuIDw9IDApIHsNCi0gCQlyZXR1cm4gQlNUUl9FUlI7 DQotIAl9DQotIA0KLS0JaWYgKGxlbiA+PSBiLT5tbGVuKSB7DQotKwlpZiAob2xlbiA+PSBiLT5t bGVuKSB7DQotIAkJdW5zaWduZWQgY2hhciAqIHg7DQotIA0KLS0JCWxlbiA9IHNuYXBVcFNpemUg KGxlbik7DQotKwkJaWYgKChsZW4gPSBzbmFwVXBTaXplIChvbGVuKSkgPD0gYi0+bWxlbikgcmV0 dXJuIEJTVFJfT0s7DQotIA0KLSAJCS8qIEFzc3VtZSBwcm9iYWJpbGl0eSBvZiBhIG5vbi1tb3Zp bmcgcmVhbGxvYyBpcyAwLjEyNSAqLw0KLSAJCWlmICg3ICogYi0+bWxlbiA8IDggKiBiLT5zbGVu KSB7DQotQEAgLTcwLDI2ICsxMDksNjYgQEAgaW50IGJhbGxvYyAoYnN0cmluZyBiLCBpbnQgbGVu KSB7DQotIAkJCS8qIElmIHNsZW4gaXMgY2xvc2UgdG8gbWxlbiBpbiBzaXplIHRoZW4gdXNlIHJl YWxsb2MgdG8gcmVkdWNlDQotIAkJCSAgIHRoZSBtZW1vcnkgZGVmcmFnbWVudGF0aW9uICovDQot IA0KLS0JCQl4ID0gKHVuc2lnbmVkIGNoYXIgKikgcmVhbGxvYyAoYi0+ZGF0YSwgbGVuKTsNCi0t CQkJaWYgKHggPT0gTlVMTCkgcmV0dXJuIEJTVFJfRVJSOw0KLSsJCQlyZWFsbG9jU3RyYXRlZ3k6 Ow0KLSsNCi0rCQkJeCA9ICh1bnNpZ25lZCBjaGFyICopIGJzdHJfX3JlYWxsb2MgKGItPmRhdGEs IChzaXplX3QpIGxlbik7DQotKwkJCWlmICh4ID09IE5VTEwpIHsNCi0rDQotKwkJCQkvKiBTaW5j ZSB3ZSBmYWlsZWQsIHRyeSBhbGxvY2F0aW5nIHRoZSB0aWdoZXN0IHBvc3NpYmxlIA0KLSsJCQkJ ICAgYWxsb2NhdGlvbiAqLw0KLSsNCi0rCQkJCWlmIChOVUxMID09ICh4ID0gKHVuc2lnbmVkIGNo YXIgKikgYnN0cl9fcmVhbGxvYyAoYi0+ZGF0YSwgKHNpemVfdCkgKGxlbiA9IG9sZW4pKSkpIHsN Ci0rCQkJCQlyZXR1cm4gQlNUUl9FUlI7DQotKwkJCQl9DQotKwkJCX0NCi0gCQl9IGVsc2Ugew0K LSANCi0gCQkJLyogSWYgc2xlbiBpcyBub3QgY2xvc2UgdG8gbWxlbiB0aGVuIGF2b2lkIHRoZSBw ZW5hbHR5IG9mIGNvcHlpbmcNCi0gCQkJICAgdGhlIGV4dHJhIGJ5dGVzIHRoYXQgYXJlIGFsbG9j YXRlZCwgYnV0IG5vdCBjb25zaWRlcmVkIHBhcnQgb2YNCi0gCQkJICAgdGhlIHN0cmluZyAqLw0K LSANCi0tCQkJeCA9ICh1bnNpZ25lZCBjaGFyICopIG1hbGxvYyAobGVuKTsNCi0tCQkJaWYgKHgg PT0gTlVMTCkgew0KLS0JCQkJeCA9ICh1bnNpZ25lZCBjaGFyICopIHJlYWxsb2MgKGItPmRhdGEs IGxlbik7DQotLQkJCQlpZiAoeCA9PSBOVUxMKSByZXR1cm4gQlNUUl9FUlI7DQotKwkJCWlmIChO VUxMID09ICh4ID0gKHVuc2lnbmVkIGNoYXIgKikgYnN0cl9fYWxsb2MgKChzaXplX3QpIGxlbikp KSB7DQotKw0KLSsJCQkJLyogUGVyaGFwcyB0aGVyZSBpcyBubyBhdmFpbGFibGUgbWVtb3J5IGZv ciB0aGUgdHdvIA0KLSsJCQkJICAgYWxsb2NhdGlvbnMgdG8gYmUgaW4gbWVtb3J5IGF0IG9uY2Ug Ki8NCi0rDQotKwkJCQlnb3RvIHJlYWxsb2NTdHJhdGVneTsNCi0rDQotIAkJCX0gZWxzZSB7DQot LQkJCQlpZiAoYi0+c2xlbikgbWVtY3B5ICgoY2hhciAqKSB4LCAoY2hhciAqKSBiLT5kYXRhLCBi LT5zbGVuKTsNCi0tCQkJCWZyZWUgKGItPmRhdGEpOw0KLSsJCQkJaWYgKGItPnNsZW4pIGJzdHJf X21lbWNweSAoKGNoYXIgKikgeCwgKGNoYXIgKikgYi0+ZGF0YSwgKHNpemVfdCkgYi0+c2xlbik7 DQotKwkJCQlic3RyX19mcmVlIChiLT5kYXRhKTsNCi0gCQkJfQ0KLSAJCX0NCi0gCQliLT5kYXRh ID0geDsNCi0gCQliLT5tbGVuID0gbGVuOw0KLS0JCWItPmRhdGFbYi0+c2xlbl0gPSAnXDAnOw0K LSsJCWItPmRhdGFbYi0+c2xlbl0gPSAodW5zaWduZWQgY2hhcikgJ1wwJzsNCi0rCX0NCi0rDQot KwlyZXR1cm4gQlNUUl9PSzsNCi0rfQ0KLSsNCi0rLyogIGludCBiYWxsb2NtaW4gKGJzdHJpbmcg YiwgaW50IGxlbikNCi0rICoNCi0rICogIFNldCB0aGUgc2l6ZSBvZiB0aGUgbWVtb3J5IGJhY2tp bmcgdGhlIGJzdHJpbmcgYiB0byBsZW4gb3IgYi0+c2xlbisxLA0KLSsgKiAgd2hpY2hldmVyIGlz IGxhcmdlci4gIE5vdGUgdGhhdCByZXBlYXRlZCB1c2Ugb2YgdGhpcyBmdW5jdGlvbiBjYW4gZGVn cmFkZQ0KLSsgKiAgcGVyZm9ybWFuY2UuDQotKyAqLw0KLStpbnQgYmFsbG9jbWluIChic3RyaW5n IGIsIGludCBsZW4pIHsNCi0rCXVuc2lnbmVkIGNoYXIgKiBzOw0KLSsNCi0rCWlmIChiID09IE5V TEwgfHwgYi0+ZGF0YSA9PSBOVUxMIHx8IChiLT5zbGVuKzEpIDwgMCB8fCBiLT5tbGVuIDw9IDAg fHwgDQotKwkgICAgYi0+bWxlbiA8IGItPnNsZW4gfHwgbGVuIDw9IDApIHsNCi0rCQlyZXR1cm4g QlNUUl9FUlI7DQotKwl9DQotKw0KLSsJaWYgKGxlbiA8IGItPnNsZW4gKyAxKSBsZW4gPSBiLT5z bGVuICsgMTsNCi0rDQotKwlpZiAobGVuICE9IGItPm1sZW4pIHsNCi0rCQlzID0gKHVuc2lnbmVk IGNoYXIgKikgYnN0cl9fcmVhbGxvYyAoYi0+ZGF0YSwgKHNpemVfdCkgbGVuKTsNCi0rCQlpZiAo TlVMTCA9PSBzKSByZXR1cm4gQlNUUl9FUlI7DQotKwkJc1tiLT5zbGVuXSA9ICh1bnNpZ25lZCBj aGFyKSAnXDAnOw0KLSsJCWItPmRhdGEgPSBzOw0KLSsJCWItPm1sZW4gPSBsZW47DQotIAl9DQot IA0KLSAJcmV0dXJuIEJTVFJfT0s7DQotQEAgLTk3LDMxICsxNzYsNTggQEAgaW50IGJhbGxvYyAo YnN0cmluZyBiLCBpbnQgbGVuKSB7DQotIA0KLSAvKiAgYnN0cmluZyBiZnJvbWNzdHIgKGNvbnN0 IGNoYXIgKiBzdHIpDQotICAqDQotLSAqICBDcmVhdGUgYSBic3RyaW5nIHdoaWNoIGNvbnRhaW5z IHRoZSBjb250ZW50IG9mIHRoZSAnXDAnIHRlcm1pbmF0ZWQgY2hhciAqDQotKyAqICBDcmVhdGUg YSBic3RyaW5nIHdoaWNoIGNvbnRhaW5zIHRoZSBjb250ZW50cyBvZiB0aGUgJ1wwJyB0ZXJtaW5h dGVkIGNoYXIgKg0KLSAgKiAgYnVmZmVyIHN0ci4NCi0gICovDQotIGJzdHJpbmcgYmZyb21jc3Ry IChjb25zdCBjaGFyICogc3RyKSB7DQotIGJzdHJpbmcgYjsNCi0taW50IGksajsNCi0raW50IGk7 DQotK3NpemVfdCBqOw0KLSANCi0gCWlmIChzdHIgPT0gTlVMTCkgcmV0dXJuIE5VTEw7DQotLQli ID0gKGJzdHJpbmcpIG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgdGFnYnN0cmluZykpOw0KLS0JaWYg KGIgPT0gTlVMTCkgcmV0dXJuIE5VTEw7DQotLQlqID0gKGludCkgKHN0cmxlbikgKHN0cik7IA0K LS0JYi0+c2xlbiA9IGo7DQotKwlqID0gKHN0cmxlbikgKHN0cik7DQotKwlpID0gc25hcFVwU2l6 ZSAoKGludCkgKGogKyAoMiAtIChqICE9IDApKSkpOw0KLSsJaWYgKGkgPD0gKGludCkgaikgcmV0 dXJuIE5VTEw7DQotKw0KLSsJYiA9IChic3RyaW5nKSBic3RyX19hbGxvYyAoc2l6ZW9mIChzdHJ1 Y3QgdGFnYnN0cmluZykpOw0KLSsJaWYgKE5VTEwgPT0gYikgcmV0dXJuIE5VTEw7DQotKwliLT5z bGVuID0gKGludCkgajsNCi0rCWlmIChOVUxMID09IChiLT5kYXRhID0gKHVuc2lnbmVkIGNoYXIg KikgYnN0cl9fYWxsb2MgKGItPm1sZW4gPSBpKSkpIHsNCi0rCQlic3RyX19mcmVlIChiKTsNCi0r CQlyZXR1cm4gTlVMTDsNCi0rCX0NCi0gDQotLQlpID0gaiArICgyIC0gKGogIT0gMCkpOw0KLS0J aSA9IHNuYXBVcFNpemUgKGkpOw0KLSsJYnN0cl9fbWVtY3B5IChiLT5kYXRhLCBzdHIsIGorMSk7 DQotKwlyZXR1cm4gYjsNCi0rfQ0KLSANCi0tCWItPm1sZW4gPSBpOw0KLSsvKiAgYnN0cmluZyBi ZnJvbWNzdHJhbGxvYyAoaW50IG1sZW4sIGNvbnN0IGNoYXIgKiBzdHIpDQotKyAqDQotKyAqICBD cmVhdGUgYSBic3RyaW5nIHdoaWNoIGNvbnRhaW5zIHRoZSBjb250ZW50cyBvZiB0aGUgJ1wwJyB0 ZXJtaW5hdGVkIGNoYXIgKg0KLSsgKiAgYnVmZmVyIHN0ci4gIFRoZSBtZW1vcnkgYnVmZmVyIGJh Y2tpbmcgdGhlIHN0cmluZyBpcyBhdCBsZWFzdCBsZW4gDQotKyAqICBjaGFyYWN0ZXJzIGluIGxl bmd0aC4NCi0rICovDQotK2JzdHJpbmcgYmZyb21jc3RyYWxsb2MgKGludCBtbGVuLCBjb25zdCBj aGFyICogc3RyKSB7DQotK2JzdHJpbmcgYjsNCi0raW50IGk7DQotK3NpemVfdCBqOw0KLSANCi0t CWItPmRhdGEgPSAodW5zaWduZWQgY2hhciAqKSBtYWxsb2MgKGItPm1sZW4pOw0KLS0JaWYgKGIt PmRhdGEgPT0gTlVMTCkgew0KLS0JCWZyZWUgKGIpOw0KLSsJaWYgKHN0ciA9PSBOVUxMKSByZXR1 cm4gTlVMTDsNCi0rCWogPSAoc3RybGVuKSAoc3RyKTsNCi0rCWkgPSBzbmFwVXBTaXplICgoaW50 KSAoaiArICgyIC0gKGogIT0gMCkpKSk7DQotKwlpZiAoaSA8PSAoaW50KSBqKSByZXR1cm4gTlVM TDsNCi0rDQotKwliID0gKGJzdHJpbmcpIGJzdHJfX2FsbG9jIChzaXplb2YgKHN0cnVjdCB0YWdi c3RyaW5nKSk7DQotKwlpZiAoYiA9PSBOVUxMKSByZXR1cm4gTlVMTDsNCi0rCWItPnNsZW4gPSAo aW50KSBqOw0KLSsJaWYgKGkgPCBtbGVuKSBpID0gbWxlbjsNCi0rDQotKwlpZiAoTlVMTCA9PSAo Yi0+ZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopIGJzdHJfX2FsbG9jIChiLT5tbGVuID0gaSkpKSB7 DQotKwkJYnN0cl9fZnJlZSAoYik7DQotIAkJcmV0dXJuIE5VTEw7DQotIAl9DQotIA0KLS0JbWVt Y3B5IChiLT5kYXRhLCBzdHIsIGorMSk7DQotKwlic3RyX19tZW1jcHkgKGItPmRhdGEsIHN0ciwg aisxKTsNCi0gCXJldHVybiBiOw0KLSB9DQotIA0KLUBAIC0xMzUsNyArMjQxLDcgQEAgYnN0cmlu ZyBiOw0KLSBpbnQgaTsNCi0gDQotIAlpZiAoYmxrID09IE5VTEwgfHwgbGVuIDwgMCkgcmV0dXJu IE5VTEw7DQotLQliID0gKGJzdHJpbmcpIG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgdGFnYnN0cmlu ZykpOw0KLSsJYiA9IChic3RyaW5nKSBic3RyX19hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgdGFnYnN0 cmluZykpOw0KLSAJaWYgKGIgPT0gTlVMTCkgcmV0dXJuIE5VTEw7DQotIAliLT5zbGVuID0gbGVu Ow0KLSANCi1AQCAtMTQ0LDgxICsyNTAsOTYgQEAgaW50IGk7DQotIA0KLSAJYi0+bWxlbiA9IGk7 DQotIA0KLS0JYi0+ZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopIG1hbGxvYyAoYi0+bWxlbikgOw0K LSsJYi0+ZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopIGJzdHJfX2FsbG9jICgoc2l6ZV90KSBiLT5t bGVuKTsNCi0gCWlmIChiLT5kYXRhID09IE5VTEwpIHsNCi0tCQlmcmVlIChiKTsNCi0rCQlic3Ry X19mcmVlIChiKTsNCi0gCQlyZXR1cm4gTlVMTDsNCi0gCX0NCi0gDQotLQlpZiAobGVuID4gMCkg bWVtY3B5IChiLT5kYXRhLCBibGssIGxlbik7DQotLQliLT5kYXRhW2xlbl0gPSAnXDAnOw0KLSsJ aWYgKGxlbiA+IDApIGJzdHJfX21lbWNweSAoYi0+ZGF0YSwgYmxrLCAoc2l6ZV90KSBsZW4pOw0K LSsJYi0+ZGF0YVtsZW5dID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotIA0KLSAJcmV0dXJuIGI7 DQotIH0NCi0gDQotLS8qICBjaGFyICogYnN0cjJjc3RyIChjb25zdCBic3RyaW5nIHMsIGNoYXIg eikNCi0rLyogIGNoYXIgKiBic3RyMmNzdHIgKGNvbnN0X2JzdHJpbmcgcywgY2hhciB6KQ0KLSAg Kg0KLSAgKiAgQ3JlYXRlIGEgJ1wwJyB0ZXJtaW5hdGVkIGNoYXIgKiBidWZmZXIgd2hpY2ggaXMg ZXF1YWwgdG8gdGhlIGNvbnRlbnRzIG9mIA0KLS0gKiAgdGhlIGJzdHJpbmcgcywgZXhjZXB0IHRo YXQgYW55IGNvbnRhaW5lZCAnXDAnIGNoYXJhY3RlcnMgYXJlIGNvbnZlcnRlZCB0byANCi0tICog IHRoZSBjaGFyYWN0ZXIgaW4gei4gVGhpcyByZXR1cm5lZCB2YWx1ZSBzaG91bGQgYmUgZnJlZWQg d2l0aCBhIGZyZWUoKSANCi0tICogIGNhbGwsIGJ5IHRoZSBjYWxsaW5nIGFwcGxpY2F0aW9uLg0K LSsgKiAgdGhlIGJzdHJpbmcgcywgZXhjZXB0IHRoYXQgYW55IGNvbnRhaW5lZCAnXDAnIGNoYXJh Y3RlcnMgYXJlIGNvbnZlcnRlZCANCi0rICogIHRvIHRoZSBjaGFyYWN0ZXIgaW4gei4gVGhpcyBy ZXR1cm5lZCB2YWx1ZSBzaG91bGQgYmUgZnJlZWQgd2l0aCBhIA0KLSsgKiAgYmNzdHJmcmVlICgp IGNhbGwsIGJ5IHRoZSBjYWxsaW5nIGFwcGxpY2F0aW9uLg0KLSAgKi8NCi0tY2hhciAqIGJzdHIy Y3N0ciAoY29uc3QgYnN0cmluZyBiLCBjaGFyIHopIHsNCi0taW50IGksbDsNCi0rY2hhciAqIGJz dHIyY3N0ciAoY29uc3RfYnN0cmluZyBiLCBjaGFyIHopIHsNCi0raW50IGksIGw7DQotIGNoYXIg KiByOw0KLSANCi0gCWlmIChiID09IE5VTEwgfHwgYi0+c2xlbiA8IDAgfHwgYi0+ZGF0YSA9PSBO VUxMKSByZXR1cm4gTlVMTDsNCi0gCWwgPSBiLT5zbGVuOw0KLS0JciA9IChjaGFyICopIG1hbGxv YyAobCArIDEpOw0KLSsJciA9IChjaGFyICopIGJzdHJfX2FsbG9jICgoc2l6ZV90KSAobCArIDEp KTsNCi0gCWlmIChyID09IE5VTEwpIHJldHVybiByOw0KLSANCi0gCWZvciAoaT0wOyBpIDwgbDsg aSArKykgew0KLSAJCXJbaV0gPSAoY2hhcikgKChiLT5kYXRhW2ldID09ICdcMCcpID8geiA6IChj aGFyKSAoYi0+ZGF0YVtpXSkpOw0KLSAJfQ0KLSANCi0tCXJbbF0gPSAnXDAnOw0KLSsJcltsXSA9 ICh1bnNpZ25lZCBjaGFyKSAnXDAnOw0KLSANCi0gCXJldHVybiByOw0KLSB9DQotIA0KLS0vKiAg aW50IGJjc3RyZnJlZSAoY29uc3QgY2hhciAqIHMpDQotKy8qICBpbnQgYmNzdHJmcmVlIChjaGFy ICogcykNCi0gICoNCi0gICogIEZyZWVzIGEgQy1zdHJpbmcgZ2VuZXJhdGVkIGJ5IGJzdHIyY3N0 ciAoKS4gIFRoaXMgaXMgbm9ybWFsbHkgdW5uZWNlc3NhcnkNCi0tICogIHNpbmNlIGl0IGp1c3Qg d3JhcHMgYSBjYWxsIHRvIGZyZWUgKCksIGhvd2V2ZXIsIGlmIG1hbGxvYyAoKSBhbmQgZnJlZSAo KSANCi0tICogIGhhdmUgYmVlbiByZWRlZmluZWQgYXMgYSBtYWNyb3Mgd2l0aGluIHRoZSBic3Ry bGliIG1vZHVsZSAodmlhIGRlZmluaW5nIA0KLS0gKiAgdGhlbSBpbiBtZW1kYmcuaCBhZnRlciBk ZWZpbmluZyBCU1RSTElCX01FTU9SWV9ERUJVRykgd2l0aCBzb21lIA0KLS0gKiAgZGlmZmVyZW5j ZSBpbiBiZWhhdmlvdXIgZnJvbSB0aGUgc3RkIGxpYnJhcnkgZnVuY3Rpb25zLCB0aGVuIHRoaXMg YWxsb3dzIA0KLS0gKiAgYSBjb3JyZWN0IHdheSBvZiBmcmVlaW5nIHRoZSBtZW1vcnkgdGhhdCBh bGxvd3MgaGlnaGVyIGxldmVsIGNvZGUgdG8gYmUgDQotLSAqICBpbmRlcGVuZGVudCBmcm9tIHRo ZXNlIG1hY3JvIHJlZGVmaW5pdGlvbnMuDQotKyAqICBzaW5jZSBpdCBqdXN0IHdyYXBzIGEgY2Fs bCB0byBic3RyX19mcmVlICgpLCBob3dldmVyLCBpZiBic3RyX19hbGxvYyAoKSANCi0rICogIGFu ZCBic3RyX19mcmVlICgpIGhhdmUgYmVlbiByZWRlZmluZWQgYXMgYSBtYWNyb3Mgd2l0aGluIHRo ZSBic3RybGliIA0KLSsgKiAgbW9kdWxlICh2aWEgZGVmaW5pbmcgdGhlbSBpbiBtZW1kYmcuaCBh ZnRlciBkZWZpbmluZyANCi0rICogIEJTVFJMSUJfTUVNT1JZX0RFQlVHKSB3aXRoIHNvbWUgZGlm ZmVyZW5jZSBpbiBiZWhhdmlvdXIgZnJvbSB0aGUgc3RkIA0KLSsgKiAgbGlicmFyeSBmdW5jdGlv bnMsIHRoZW4gdGhpcyBhbGxvd3MgYSBjb3JyZWN0IHdheSBvZiBmcmVlaW5nIHRoZSBtZW1vcnkg DQotKyAqICB0aGF0IGFsbG93cyBoaWdoZXIgbGV2ZWwgY29kZSB0byBiZSBpbmRlcGVuZGVudCBm cm9tIHRoZXNlIG1hY3JvIA0KLSsgKiAgcmVkZWZpbml0aW9ucy4NCi0gICovDQotIGludCBiY3N0 cmZyZWUgKGNoYXIgKiBzKSB7DQotIAlpZiAocykgew0KLS0JCWZyZWUgKHMpOw0KLSsJCWJzdHJf X2ZyZWUgKHMpOw0KLSAJCXJldHVybiBCU1RSX09LOw0KLSAJfQ0KLSAJcmV0dXJuIEJTVFJfRVJS Ow0KLSB9DQotIA0KLS0vKiAgaW50IGJjb25jYXQgKGJzdHJpbmcgYjAsIGNvbnN0IGJzdHJpbmcg YjEpDQotKy8qICBpbnQgYmNvbmNhdCAoYnN0cmluZyBiMCwgY29uc3RfYnN0cmluZyBiMSkNCi0g ICoNCi0gICogIENvbmNhdGVuYXRlIHRoZSBic3RyaW5nIGIxIHRvIHRoZSBic3RyaW5nIGIwLg0K LSAgKi8NCi0taW50IGJjb25jYXQgKGJzdHJpbmcgYjAsIGNvbnN0IGJzdHJpbmcgYjEpIHsNCi0r aW50IGJjb25jYXQgKGJzdHJpbmcgYjAsIGNvbnN0X2JzdHJpbmcgYjEpIHsNCi0gaW50IGxlbiwg ZDsNCi0rYnN0cmluZyBhdXggPSAoYnN0cmluZykgYjE7DQotKw0KLSsJaWYgKGIwID09IE5VTEwg fHwgYjEgPT0gTlVMTCB8fCBiMC0+ZGF0YSA9PSBOVUxMIHx8IGIxLT5kYXRhID09IE5VTEwpIHJl dHVybiBCU1RSX0VSUjsNCi0gDQotLQlpZiAoYjAgPT0gTlVMTCB8fCBiMSA9PSBOVUxMKSByZXR1 cm4gQlNUUl9FUlI7DQotIAlkID0gYjAtPnNsZW47DQotIAlsZW4gPSBiMS0+c2xlbjsNCi0tCWlm ICgoZCB8IChiMC0+bWxlbiAtIGQpIHwgbGVuKSA8IDApIHJldHVybiBCU1RSX0VSUjsNCi0tCWlm IChiYWxsb2MgKGIwLCBkICsgbGVuICsgMSkgIT0gQlNUUl9PSykgcmV0dXJuIEJTVFJfRVJSOw0K LS0JYkJsb2NrQ29weSAoJmIwLT5kYXRhW2RdLCAmYjEtPmRhdGFbMF0sIGxlbik7DQotLQliMC0+ ZGF0YVtkICsgbGVuXSA9ICdcMCc7DQotLQliMC0+c2xlbiArPSBsZW47DQotLQlyZXR1cm4gMDsN Ci0rCWlmICgoZCB8IChiMC0+bWxlbiAtIGQpIHwgbGVuIHwgKGQgKyBsZW4pKSA8IDApIHJldHVy biBCU1RSX0VSUjsNCi0rDQotKwlpZiAoYjAtPm1sZW4gPD0gZCArIGxlbiArIDEpIHsNCi0rCQlw dHJkaWZmX3QgcGQgPSBiMS0+ZGF0YSAtIGIwLT5kYXRhOw0KLSsJCWlmICgwIDw9IHBkICYmIHBk IDwgYjAtPm1sZW4pIHsNCi0rCQkJaWYgKE5VTEwgPT0gKGF1eCA9IGJzdHJjcHkgKGIxKSkpIHJl dHVybiBCU1RSX0VSUjsNCi0rCQl9DQotKwkJaWYgKGJhbGxvYyAoYjAsIGQgKyBsZW4gKyAxKSAh PSBCU1RSX09LKSB7DQotKwkJCWlmIChhdXggIT0gYjEpIGJkZXN0cm95IChhdXgpOw0KLSsJCQly ZXR1cm4gQlNUUl9FUlI7DQotKwkJfQ0KLSsJfQ0KLSsNCi0rCWJCbG9ja0NvcHkgKCZiMC0+ZGF0 YVtkXSwgJmF1eC0+ZGF0YVswXSwgKHNpemVfdCkgbGVuKTsNCi0rCWIwLT5kYXRhW2QgKyBsZW5d ID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotKwliMC0+c2xlbiA9IGQgKyBsZW47DQotKwlpZiAo YXV4ICE9IGIxKSBiZGVzdHJveSAoYXV4KTsNCi0rCXJldHVybiBCU1RSX09LOw0KLSB9DQotIA0K LSAvKiAgaW50IGJjb25jaGFyIChic3RyaW5nIGIsIGNoYXIgYykNCi0tICoNCi0rLyAqDQotICAq ICBDb25jYXRlbmF0ZSB0aGUgc2luZ2xlIGNoYXJhY3RlciBjIHRvIHRoZSBic3RyaW5nIGIuDQot ICAqLw0KLSBpbnQgYmNvbmNoYXIgKGJzdHJpbmcgYiwgY2hhciBjKSB7DQotQEAgLTIyOCw5ICsz NDksOSBAQCBpbnQgZDsNCi0gCWQgPSBiLT5zbGVuOw0KLSAJaWYgKChkIHwgKGItPm1sZW4gLSBk KSkgPCAwIHx8IGJhbGxvYyAoYiwgZCArIDIpICE9IEJTVFJfT0spIHJldHVybiBCU1RSX0VSUjsN Ci0gCWItPmRhdGFbZF0gPSAodW5zaWduZWQgY2hhcikgYzsNCi0tCWItPmRhdGFbZCArIDFdID0g J1wwJzsNCi0rCWItPmRhdGFbZCArIDFdID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotIAliLT5z bGVuKys7DQotLQlyZXR1cm4gMDsNCi0rCXJldHVybiBCU1RSX09LOw0KLSB9DQotIA0KLSAvKiAg aW50IGJjYXRjc3RyIChic3RyaW5nIGIsIGNvbnN0IGNoYXIgKiBzKQ0KLUBAIC0yMzgsMTEgKzM1 OSwxMSBAQCBpbnQgZDsNCi0gICogIENvbmNhdGVuYXRlIGEgY2hhciAqIHN0cmluZyB0byBhIGJz dHJpbmcuDQotICAqLw0KLSBpbnQgYmNhdGNzdHIgKGJzdHJpbmcgYiwgY29uc3QgY2hhciAqIHMp IHsNCi0tc3RydWN0IHRhZ2JzdHJpbmcgdDsNCi0gY2hhciAqIGQ7DQotIGludCBpLCBsOw0KLSAN Ci0tCWlmIChiID09IE5VTEwgfHwgYi0+ZGF0YSA9PSBOVUxMIHx8IGItPnNsZW4gPCAwIHx8IHMg PT0gTlVMTCkgcmV0dXJuIEJTVFJfRVJSOw0KLSsJaWYgKGIgPT0gTlVMTCB8fCBiLT5kYXRhID09 IE5VTEwgfHwgYi0+c2xlbiA8IDAgfHwgYi0+bWxlbiA8IGItPnNsZW4NCi0rCSB8fCBiLT5tbGVu IDw9IDAgfHwgcyA9PSBOVUxMKSByZXR1cm4gQlNUUl9FUlI7DQotIA0KLSAJLyogT3B0aW1pc3Rp Y2FsbHkgY29uY2F0ZW5hdGUgZGlyZWN0bHkgKi8NCi0gCWwgPSBiLT5tbGVuIC0gYi0+c2xlbjsN Ci1AQCAtMjU2LDM0ICszNzcsNDAgQEAgaW50IGksIGw7DQotIAliLT5zbGVuICs9IGk7DQotIA0K LSAJLyogTmVlZCB0byBleHBsaWNpdGVseSByZXNpemUgYW5kIGNvbmNhdGVuYXRlIHRhaWwgKi8N Ci0tCWNzdHIydGJzdHIgKHQsIHMpOw0KLS0JcmV0dXJuIGJjb25jYXQgKGIsICZ0KTsNCi0rCXJl dHVybiBiY2F0YmxrIChiLCAoY29uc3Qgdm9pZCAqKSBzLCAoaW50KSBzdHJsZW4gKHMpKTsNCi0g fQ0KLSANCi0tLyogIGludCBiY2F0YmxrIChic3RyaW5nIGIsIHVuc2lnbmVkIGNoYXIgKiBzLCBp bnQgbGVuKQ0KLSsvKiAgaW50IGJjYXRibGsgKGJzdHJpbmcgYiwgY29uc3Qgdm9pZCAqIHMsIGlu dCBsZW4pDQotICAqDQotICAqICBDb25jYXRlbmF0ZSBhIGZpeGVkIGxlbmd0aCBidWZmZXIgdG8g YSBic3RyaW5nLg0KLSAgKi8NCi0taW50IGJjYXRibGsgKGJzdHJpbmcgYiwgY29uc3QgdW5zaWdu ZWQgY2hhciAqIHMsIGludCBsZW4pIHsNCi0tc3RydWN0IHRhZ2JzdHJpbmcgdDsNCi0raW50IGJj YXRibGsgKGJzdHJpbmcgYiwgY29uc3Qgdm9pZCAqIHMsIGludCBsZW4pIHsNCi0raW50IG5sOw0K LSsNCi0rCWlmIChiID09IE5VTEwgfHwgYi0+ZGF0YSA9PSBOVUxMIHx8IGItPnNsZW4gPCAwIHx8 IGItPm1sZW4gPCBiLT5zbGVuDQotKwkgfHwgYi0+bWxlbiA8PSAwIHx8IHMgPT0gTlVMTCB8fCBs ZW4gPCAwKSByZXR1cm4gQlNUUl9FUlI7DQotKw0KLSsJaWYgKDAgPiAobmwgPSBiLT5zbGVuICsg bGVuKSkgcmV0dXJuIEJTVFJfRVJSOyAvKiBPdmVyZmxvdz8gKi8NCi0rCWlmIChiLT5tbGVuIDw9 IG5sICYmIDAgPiBiYWxsb2MgKGIsIG5sICsgMSkpIHJldHVybiBCU1RSX0VSUjsNCi0gDQotLQlp ZiAocyA9PSBOVUxMIHx8IGxlbiA8IDApIHJldHVybiBCU1RSX0VSUjsNCi0tCWJsazJ0YnN0ciAo dCwgcywgbGVuKTsNCi0tCXJldHVybiBiY29uY2F0IChiLCAmdCk7DQotKwliQmxvY2tDb3B5ICgm Yi0+ZGF0YVtiLT5zbGVuXSwgcywgKHNpemVfdCkgbGVuKTsNCi0rCWItPnNsZW4gPSBubDsNCi0r CWItPmRhdGFbbmxdID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotKwlyZXR1cm4gQlNUUl9PSzsN Ci0gfQ0KLSANCi0tLyogIGJzdHJpbmcgYnN0cmNweSAoY29uc3QgYnN0cmluZyBiKQ0KLSsvKiAg YnN0cmluZyBic3RyY3B5IChjb25zdF9ic3RyaW5nIGIpDQotICAqDQotICAqICBDcmVhdGUgYSBj b3B5IG9mIHRoZSBic3RyaW5nIGIuDQotICAqLw0KLS1ic3RyaW5nIGJzdHJjcHkgKGNvbnN0IGJz dHJpbmcgYikgew0KLStic3RyaW5nIGJzdHJjcHkgKGNvbnN0X2JzdHJpbmcgYikgew0KLSBic3Ry aW5nIGIwOw0KLSBpbnQgaSxqOw0KLSANCi0gCS8qIEF0dGVtcHRlZCB0byBjb3B5IGFuIGludmFs aWQgc3RyaW5nPyAqLw0KLSAJaWYgKGIgPT0gTlVMTCB8fCBiLT5zbGVuIDwgMCB8fCBiLT5kYXRh ID09IE5VTEwpIHJldHVybiBOVUxMOw0KLSANCi0tCWIwID0gKGJzdHJpbmcpIG1hbGxvYyAoc2l6 ZW9mIChzdHJ1Y3QgdGFnYnN0cmluZykpOw0KLSsJYjAgPSAoYnN0cmluZykgYnN0cl9fYWxsb2Mg KHNpemVvZiAoc3RydWN0IHRhZ2JzdHJpbmcpKTsNCi0gCWlmIChiMCA9PSBOVUxMKSB7DQotIAkJ LyogVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3Igc3RyaW5nIGhlYWRlciAqLw0KLSAJCXJl dHVybiBOVUxMOw0KLUBAIC0yOTIsMTMgKzQxOSwxMyBAQCBpbnQgaSxqOw0KLSAJaSA9IGItPnNs ZW47DQotIAlqID0gc25hcFVwU2l6ZSAoaSArIDEpOw0KLSANCi0tCWIwLT5kYXRhID0gKHVuc2ln bmVkIGNoYXIgKikgbWFsbG9jIChqKTsNCi0rCWIwLT5kYXRhID0gKHVuc2lnbmVkIGNoYXIgKikg YnN0cl9fYWxsb2MgKGopOw0KLSAJaWYgKGIwLT5kYXRhID09IE5VTEwpIHsNCi0gCQlqID0gaSAr IDE7DQotLQkJYjAtPmRhdGEgPSAodW5zaWduZWQgY2hhciAqKSBtYWxsb2MgKGopOw0KLSsJCWIw LT5kYXRhID0gKHVuc2lnbmVkIGNoYXIgKikgYnN0cl9fYWxsb2MgKGopOw0KLSAJCWlmIChiMC0+ ZGF0YSA9PSBOVUxMKSB7DQotIAkJCS8qIFVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkgZm9yIHN0 cmluZyBkYXRhICovDQotLQkJCWZyZWUgKGIwKTsNCi0rCQkJYnN0cl9fZnJlZSAoYjApOw0KLSAJ CQlyZXR1cm4gTlVMTDsNCi0gCQl9DQotIAl9DQotQEAgLTMwNiwzNSArNDMzLDEyNyBAQCBpbnQg aSxqOw0KLSAJYjAtPm1sZW4gPSBqOw0KLSAJYjAtPnNsZW4gPSBpOw0KLSANCi0tCWlmIChpKSBt ZW1jcHkgKChjaGFyICopIGIwLT5kYXRhLCAoY2hhciAqKSBiLT5kYXRhLCBpKTsNCi0tCWIwLT5k YXRhW2IwLT5zbGVuXSA9ICdcMCc7DQotKwlpZiAoaSkgYnN0cl9fbWVtY3B5ICgoY2hhciAqKSBi MC0+ZGF0YSwgKGNoYXIgKikgYi0+ZGF0YSwgaSk7DQotKwliMC0+ZGF0YVtiMC0+c2xlbl0gPSAo dW5zaWduZWQgY2hhcikgJ1wwJzsNCi0gDQotIAlyZXR1cm4gYjA7DQotIH0NCi0gDQotLS8qICBp bnQgYmFzc2lnbiAoYnN0cmluZyBhLCBjb25zdCBic3RyaW5nIGIpDQotKy8qICBpbnQgYmFzc2ln biAoYnN0cmluZyBhLCBjb25zdF9ic3RyaW5nIGIpDQotICAqDQotICAqICBPdmVyd3JpdGUgdGhl IHN0cmluZyBhIHdpdGggdGhlIGNvbnRlbnRzIG9mIHN0cmluZyBiLg0KLSAgKi8NCi0taW50IGJh c3NpZ24gKGJzdHJpbmcgYSwgY29uc3QgYnN0cmluZyBiKSB7DQotLQlpZiAoYiA9PSBOVUxMIHx8 IGItPmRhdGEgPT0gTlVMTCB8fCBiLT5zbGVuIDwgMCApIA0KLStpbnQgYmFzc2lnbiAoYnN0cmlu ZyBhLCBjb25zdF9ic3RyaW5nIGIpIHsNCi0rCWlmIChiID09IE5VTEwgfHwgYi0+ZGF0YSA9PSBO VUxMIHx8IGItPnNsZW4gPCAwKQ0KLSAJCXJldHVybiBCU1RSX0VSUjsNCi0gCWlmIChiLT5zbGVu ICE9IDApIHsNCi0gCQlpZiAoYmFsbG9jIChhLCBiLT5zbGVuKSAhPSBCU1RSX09LKSByZXR1cm4g QlNUUl9FUlI7DQotLQkJbWVtbW92ZSAoYS0+ZGF0YSwgYi0+ZGF0YSwgYi0+c2xlbik7DQotKwkJ YnN0cl9fbWVtbW92ZSAoYS0+ZGF0YSwgYi0+ZGF0YSwgYi0+c2xlbik7DQotIAl9IGVsc2Ugew0K LSAJCWlmIChhID09IE5VTEwgfHwgYS0+ZGF0YSA9PSBOVUxMIHx8IGEtPm1sZW4gPCBhLT5zbGVu IHx8IA0KLSAJCSAgICBhLT5zbGVuIDwgMCB8fCBhLT5tbGVuID09IDApIA0KLSAJCQlyZXR1cm4g QlNUUl9FUlI7DQotIAl9DQotLQlhLT5kYXRhW2ItPnNsZW5dID0gJ1wwJzsNCi0rCWEtPmRhdGFb Yi0+c2xlbl0gPSAodW5zaWduZWQgY2hhcikgJ1wwJzsNCi0gCWEtPnNsZW4gPSBiLT5zbGVuOw0K LSAJcmV0dXJuIEJTVFJfT0s7DQotIH0NCi0gDQotLSNkZWZpbmUgICAgYXNjaWkoYykgKCh1bnNp Z25lZCBjaGFyKShjKSA8IDEyOCkNCi0tI2RlZmluZSAgIHVwY2FzZShjKSAoKGMpICsgKCgoYXNj aWkoYykgJiYgaXNsb3dlcihjKSkgPyAoJ0EnLSdhJykgOiAwKSkpDQotLSNkZWZpbmUgZG93bmNh c2UoYykgKChjKSArICgoKGFzY2lpKGMpICYmIGlzdXBwZXIoYykpID8gKCdhJy0nQScpIDogMCkp KQ0KLSsvKiAgaW50IGJhc3NpZ25taWRzdHIgKGJzdHJpbmcgYSwgY29uc3RfYnN0cmluZyBiLCBp bnQgbGVmdCwgaW50IGxlbikNCi0rICoNCi0rICogIE92ZXJ3cml0ZSB0aGUgc3RyaW5nIGEgd2l0 aCB0aGUgbWlkZGxlIG9mIGNvbnRlbnRzIG9mIHN0cmluZyBiIA0KLSsgKiAgc3RhcnRpbmcgZnJv bSBwb3NpdGlvbiBsZWZ0IGFuZCBydW5uaW5nIGZvciBhIGxlbmd0aCBsZW4uICBsZWZ0IGFuZCAN Ci0rICogIGxlbiBhcmUgY2xhbXBlZCB0byB0aGUgZW5kcyBvZiBiIGFzIHdpdGggdGhlIGZ1bmN0 aW9uIGJtaWRzdHIuDQotKyAqLw0KLStpbnQgYmFzc2lnbm1pZHN0ciAoYnN0cmluZyBhLCBjb25z dF9ic3RyaW5nIGIsIGludCBsZWZ0LCBpbnQgbGVuKSB7DQotKwlpZiAoYiA9PSBOVUxMIHx8IGIt PmRhdGEgPT0gTlVMTCB8fCBiLT5zbGVuIDwgMCkNCi0rCQlyZXR1cm4gQlNUUl9FUlI7DQotKw0K LSsJaWYgKGxlZnQgPCAwKSB7DQotKwkJbGVuICs9IGxlZnQ7DQotKwkJbGVmdCA9IDA7DQotKwl9 DQotKw0KLSsJaWYgKGxlbiA+IGItPnNsZW4gLSBsZWZ0KSBsZW4gPSBiLT5zbGVuIC0gbGVmdDsN Ci0rDQotKwlpZiAoYSA9PSBOVUxMIHx8IGEtPmRhdGEgPT0gTlVMTCB8fCBhLT5tbGVuIDwgYS0+ c2xlbiB8fA0KLSsJICAgIGEtPnNsZW4gPCAwIHx8IGEtPm1sZW4gPT0gMCkNCi0rCQlyZXR1cm4g QlNUUl9FUlI7DQotKw0KLSsJaWYgKGxlbiA+IDApIHsNCi0rCQlpZiAoYmFsbG9jIChhLCBsZW4p ICE9IEJTVFJfT0spIHJldHVybiBCU1RSX0VSUjsNCi0rCQlic3RyX19tZW1tb3ZlIChhLT5kYXRh LCBiLT5kYXRhICsgbGVmdCwgbGVuKTsNCi0rCQlhLT5zbGVuID0gbGVuOw0KLSsJfSBlbHNlIHsN Ci0rCQlhLT5zbGVuID0gMDsNCi0rCX0NCi0rCWEtPmRhdGFbYS0+c2xlbl0gPSAodW5zaWduZWQg Y2hhcikgJ1wwJzsNCi0rCXJldHVybiBCU1RSX09LOw0KLSt9DQotKw0KLSsvKiAgaW50IGJhc3Np Z25jc3RyIChic3RyaW5nIGEsIGNvbnN0IGNoYXIgKiBzdHIpDQotKyAqDQotKyAqICBPdmVyd3Jp dGUgdGhlIHN0cmluZyBhIHdpdGggdGhlIGNvbnRlbnRzIG9mIGNoYXIgKiBzdHJpbmcgc3RyLiAg Tm90ZSB0aGF0IA0KLSsgKiAgdGhlIGJzdHJpbmcgYSBtdXN0IGJlIGEgd2VsbCBkZWZpbmVkIGFu ZCB3cml0YWJsZSBic3RyaW5nLiAgSWYgYW4gZXJyb3IgDQotKyAqICBvY2N1cnMgQlNUUl9FUlIg aXMgcmV0dXJuZWQgaG93ZXZlciBhIG1heSBiZSBwYXJ0aWFsbHkgb3ZlcndyaXR0ZW4uDQotKyAq Lw0KLStpbnQgYmFzc2lnbmNzdHIgKGJzdHJpbmcgYSwgY29uc3QgY2hhciAqIHN0cikgew0KLStp bnQgaTsNCi0rc2l6ZV90IGxlbjsNCi0rCWlmIChhID09IE5VTEwgfHwgYS0+ZGF0YSA9PSBOVUxM IHx8IGEtPm1sZW4gPCBhLT5zbGVuIHx8DQotKwkgICAgYS0+c2xlbiA8IDAgfHwgYS0+bWxlbiA9 PSAwIHx8IE5VTEwgPT0gc3RyKSANCi0rCQlyZXR1cm4gQlNUUl9FUlI7DQotKw0KLSsJZm9yIChp PTA7IGkgPCBhLT5tbGVuOyBpKyspIHsNCi0rCQlpZiAoJ1wwJyA9PSAoYS0+ZGF0YVtpXSA9IHN0 cltpXSkpIHsNCi0rCQkJYS0+c2xlbiA9IGk7DQotKwkJCXJldHVybiBCU1RSX09LOw0KLSsJCX0N Ci0rCX0NCi0rDQotKwlhLT5zbGVuID0gaTsNCi0rCWxlbiA9IHN0cmxlbiAoc3RyICsgaSk7DQot KwlpZiAobGVuID4gSU5UX01BWCB8fCBpICsgbGVuICsgMSA+IElOVF9NQVggfHwNCi0rCSAgICAw ID4gYmFsbG9jIChhLCAoaW50KSAoaSArIGxlbiArIDEpKSkgcmV0dXJuIEJTVFJfRVJSOw0KLSsJ YkJsb2NrQ29weSAoYS0+ZGF0YSArIGksIHN0ciArIGksIChzaXplX3QpIGxlbiArIDEpOw0KLSsJ YS0+c2xlbiArPSAoaW50KSBsZW47DQotKwlyZXR1cm4gQlNUUl9PSzsNCi0rfQ0KLSsNCi0rLyog IGludCBiYXNzaWduYmxrIChic3RyaW5nIGEsIGNvbnN0IHZvaWQgKiBzLCBpbnQgbGVuKQ0KLSsg Kg0KLSsgKiAgT3ZlcndyaXRlIHRoZSBzdHJpbmcgYSB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUg YmxvY2sgKHMsIGxlbikuICBOb3RlIHRoYXQgDQotKyAqICB0aGUgYnN0cmluZyBhIG11c3QgYmUg YSB3ZWxsIGRlZmluZWQgYW5kIHdyaXRhYmxlIGJzdHJpbmcuICBJZiBhbiBlcnJvciANCi0rICog IG9jY3VycyBCU1RSX0VSUiBpcyByZXR1cm5lZCBhbmQgYSBpcyBub3Qgb3ZlcndyaXR0ZW4uDQot KyAqLw0KLStpbnQgYmFzc2lnbmJsayAoYnN0cmluZyBhLCBjb25zdCB2b2lkICogcywgaW50IGxl bikgew0KLSsJaWYgKGEgPT0gTlVMTCB8fCBhLT5kYXRhID09IE5VTEwgfHwgYS0+bWxlbiA8IGEt PnNsZW4gfHwNCi0rCSAgICBhLT5zbGVuIDwgMCB8fCBhLT5tbGVuID09IDAgfHwgTlVMTCA9PSBz IHx8IGxlbiArIDEgPCAxKSANCi0rCQlyZXR1cm4gQlNUUl9FUlI7DQotKwlpZiAobGVuICsgMSA+ IGEtPm1sZW4gJiYgMCA+IGJhbGxvYyAoYSwgbGVuICsgMSkpIHJldHVybiBCU1RSX0VSUjsNCi0r CWJCbG9ja0NvcHkgKGEtPmRhdGEsIHMsIChzaXplX3QpIGxlbik7DQotKwlhLT5kYXRhW2xlbl0g PSAodW5zaWduZWQgY2hhcikgJ1wwJzsNCi0rCWEtPnNsZW4gPSBsZW47DQotKwlyZXR1cm4gQlNU Ul9PSzsNCi0rfQ0KLSsNCi0rLyogIGludCBidHJ1bmMgKGJzdHJpbmcgYiwgaW50IG4pDQotKyAq DQotKyAqICBUcnVuY2F0ZSB0aGUgYnN0cmluZyB0byBhdCBtb3N0IG4gY2hhcmFjdGVycy4NCi0r ICovDQotK2ludCBidHJ1bmMgKGJzdHJpbmcgYiwgaW50IG4pIHsNCi0rCWlmIChuIDwgMCB8fCBi ID09IE5VTEwgfHwgYi0+ZGF0YSA9PSBOVUxMIHx8IGItPm1sZW4gPCBiLT5zbGVuIHx8DQotKwkg ICAgYi0+c2xlbiA8IDAgfHwgYi0+bWxlbiA8PSAwKSByZXR1cm4gQlNUUl9FUlI7DQotKwlpZiAo Yi0+c2xlbiA+IG4pIHsNCi0rCQliLT5zbGVuID0gbjsNCi0rCQliLT5kYXRhW25dID0gKHVuc2ln bmVkIGNoYXIpICdcMCc7DQotKwl9DQotKwlyZXR1cm4gQlNUUl9PSzsNCi0rfQ0KLSsNCi0rI2Rl ZmluZSAgIHVwY2FzZShjKSAodG91cHBlciAoKHVuc2lnbmVkIGNoYXIpIGMpKQ0KLSsjZGVmaW5l IGRvd25jYXNlKGMpICh0b2xvd2VyICgodW5zaWduZWQgY2hhcikgYykpDQotKyNkZWZpbmUgICB3 c3BhY2UoYykgKGlzc3BhY2UgKCh1bnNpZ25lZCBjaGFyKSBjKSkNCi0gDQotIC8qICBpbnQgYnRv dXBwZXIgKGJzdHJpbmcgYikNCi0gICoNCi1AQCAtMzQzLDcgKzU2Miw3IEBAIGludCBiYXNzaWdu IChic3RyaW5nIGEsIGNvbnN0IGJzdHJpbmcgYikKLSBpbnQgYnRvdXBwZXIgKGJzdHJpbmcgYikg ew0KLSBpbnQgaSwgbGVuOw0KLSAJaWYgKGIgPT0gTlVMTCB8fCBiLT5kYXRhID09IE5VTEwgfHwg Yi0+bWxlbiA8IGItPnNsZW4gfHwNCi0tCSAgICBiLT5zbGVuIDwgMCkgcmV0dXJuIEJTVFJfRVJS Ow0KLSsJICAgIGItPnNsZW4gPCAwIHx8IGItPm1sZW4gPD0gMCkgcmV0dXJuIEJTVFJfRVJSOw0K LSAJZm9yIChpPTAsIGxlbiA9IGItPnNsZW47IGkgPCBsZW47IGkrKykgew0KLSAJCWItPmRhdGFb aV0gPSAodW5zaWduZWQgY2hhcikgdXBjYXNlIChiLT5kYXRhW2ldKTsNCi0gCX0NCi1AQCAtMzU3 LDUwICs1NzYsNjAgQEAgaW50IGksIGxlbjsNCi0gaW50IGJ0b2xvd2VyIChic3RyaW5nIGIpIHsN Ci0gaW50IGksIGxlbjsNCi0gCWlmIChiID09IE5VTEwgfHwgYi0+ZGF0YSA9PSBOVUxMIHx8IGIt Pm1sZW4gPCBiLT5zbGVuIHx8DQotLQkgICAgYi0+c2xlbiA8IDApIHJldHVybiBCU1RSX0VSUjsN Ci0rCSAgICBiLT5zbGVuIDwgMCB8fCBiLT5tbGVuIDw9IDApIHJldHVybiBCU1RSX0VSUjsNCi0g CWZvciAoaT0wLCBsZW4gPSBiLT5zbGVuOyBpIDwgbGVuOyBpKyspIHsNCi0gCQliLT5kYXRhW2ld ID0gKHVuc2lnbmVkIGNoYXIpIGRvd25jYXNlIChiLT5kYXRhW2ldKTsNCi0gCX0NCi0tCXJldHVy biAwOw0KLSsJcmV0dXJuIEJTVFJfT0s7DQotIH0NCi0gDQotLS8qICBpbnQgYnN0cmljbXAgKGNv bnN0IGJzdHJpbmcgYjAsIGNvbnN0IGJzdHJpbmcgYjEpDQotKy8qICBpbnQgYnN0cmljbXAgKGNv bnN0X2JzdHJpbmcgYjAsIGNvbnN0X2JzdHJpbmcgYjEpDQotICAqDQotICAqICBDb21wYXJlIHR3 byBzdHJpbmdzIHdpdGhvdXQgZGlmZmVyZW50aWF0aW5nIGJldHdlZW4gY2FzZS4gIFRoZSByZXR1 cm4gDQotICAqICB2YWx1ZSBpcyB0aGUgZGlmZmVyZW5jZSBvZiB0aGUgdmFsdWVzIG9mIHRoZSBj aGFyYWN0ZXJzIHdoZXJlIHRoZSB0d28gDQotLSAqICBzdHJpbmdzIGZpcnN0IGRpZmZlciwgKHRh a2luZyBhICdcMCcgdG8gYmUgdGhlIGNoYXJhY3RlciBhdCB0aGUgZW5kIG9mIA0KLS0gKiAgYW55 IGJzdHJpbmcpIG90aGVyd2lzZSAwIGlzIHJldHVybmVkIGluZGljYXRpbmcgdGhhdCB0aGUgc3Ry aW5ncyBhcmUNCi0tICogIGVxdWFsLg0KLSsgKiAgc3RyaW5ncyBmaXJzdCBkaWZmZXIgYWZ0ZXIg bG93ZXIgY2FzZSB0cmFuc2Zvcm1hdGlvbiwgb3RoZXJ3aXNlIDAgaXMgDQotKyAqICByZXR1cm5l ZCBpbmRpY2F0aW5nIHRoYXQgdGhlIHN0cmluZ3MgYXJlIGVxdWFsLiAgSWYgdGhlIGxlbmd0aHMg YXJlIA0KLSsgKiAgZGlmZmVyZW50LCB0aGVuIGEgZGlmZmVyZW5jZSBmcm9tIDAgaXMgZ2l2ZW4s IGJ1dCBpZiB0aGUgZmlyc3QgZXh0cmEgDQotKyAqICBjaGFyYWN0ZXIgaXMgJ1wwJywgdGhlbiBp dCBpcyB0YWtlbiB0byBiZSB0aGUgdmFsdWUgVUNIQVJfTUFYKzEuDQotICAqLw0KLS1pbnQgYnN0 cmljbXAgKGNvbnN0IGJzdHJpbmcgYjAsIGNvbnN0IGJzdHJpbmcgYjEpIHsNCi0raW50IGJzdHJp Y21wIChjb25zdF9ic3RyaW5nIGIwLCBjb25zdF9ic3RyaW5nIGIxKSB7DQotIGludCBpLCB2LCBu Ow0KLSANCi0gCWlmIChiZGF0YSAoYjApID09IE5VTEwgfHwgYjAtPnNsZW4gPCAwIHx8IA0KLSAJ ICAgIGJkYXRhIChiMSkgPT0gTlVMTCB8fCBiMS0+c2xlbiA8IDApIHJldHVybiBTSFJUX01JTjsN Ci0tCW4gPSBiMC0+c2xlbjsgaWYgKG4gPiBiMS0+c2xlbikgbiA9IGIxLT5zbGVuOw0KLS0JaWYg KGIwLT5zbGVuID09IGIxLT5zbGVuICYmIGIwLT5kYXRhID09IGIxLT5kYXRhKSByZXR1cm4gMDsN Ci0rCWlmICgobiA9IGIwLT5zbGVuKSA+IGIxLT5zbGVuKSBuID0gYjEtPnNsZW47DQotKwllbHNl IGlmIChiMC0+c2xlbiA9PSBiMS0+c2xlbiAmJiBiMC0+ZGF0YSA9PSBiMS0+ZGF0YSkgcmV0dXJu IEJTVFJfT0s7DQotIA0KLSAJZm9yIChpID0gMDsgaSA8IG47IGkgKyspIHsNCi0tCQl2ICA9ICgo Y2hhcikgZG93bmNhc2UgKGIwLT5kYXRhW2ldKSk7DQotLQkJdiAtPSAoKGNoYXIpIGRvd25jYXNl IChiMS0+ZGF0YVtpXSkpOw0KLS0JCWlmICh2ICE9IDApIHJldHVybiB2Ow0KLS0JCWlmIChiMC0+ ZGF0YVtpXSA9PSAnXDAnKSByZXR1cm4gMDsNCi0rCQl2ICA9IChjaGFyKSBkb3duY2FzZSAoYjAt PmRhdGFbaV0pDQotKwkJICAgLSAoY2hhcikgZG93bmNhc2UgKGIxLT5kYXRhW2ldKTsNCi0rCQlp ZiAoMCAhPSB2KSByZXR1cm4gdjsNCi0gCX0NCi0gDQotLQlpZiAoYjAtPnNsZW4gPiBuKSByZXR1 cm4gICAoKGNoYXIpIGRvd25jYXNlIChiMC0+ZGF0YVtuXSkpOw0KLS0JaWYgKGIxLT5zbGVuID4g bikgcmV0dXJuIC0gKChjaGFyKSBkb3duY2FzZSAoYjEtPmRhdGFbbl0pKTsNCi0tCXJldHVybiAw Ow0KLSsJaWYgKGIwLT5zbGVuID4gbikgew0KLSsJCXYgPSAoY2hhcikgZG93bmNhc2UgKGIwLT5k YXRhW25dKTsNCi0rCQlpZiAodikgcmV0dXJuIHY7DQotKwkJcmV0dXJuIFVDSEFSX01BWCArIDE7 DQotKwl9DQotKwlpZiAoYjEtPnNsZW4gPiBuKSB7DQotKwkJdiA9IC0gKGNoYXIpIGRvd25jYXNl IChiMS0+ZGF0YVtuXSk7DQotKwkJaWYgKHYpIHJldHVybiB2Ow0KLSsJCXJldHVybiAtIChpbnQp IChVQ0hBUl9NQVggKyAxKTsNCi0rCX0NCi0rCXJldHVybiBCU1RSX09LOw0KLSB9DQotIA0KLS0v KiAgaW50IGJzdHJuaWNtcCAoY29uc3QgYnN0cmluZyBiMCwgY29uc3QgYnN0cmluZyBiMSwgaW50 IG4pDQotKy8qICBpbnQgYnN0cm5pY21wIChjb25zdF9ic3RyaW5nIGIwLCBjb25zdF9ic3RyaW5n IGIxLCBpbnQgbikNCi0gICoNCi0gICogIENvbXBhcmUgdHdvIHN0cmluZ3Mgd2l0aG91dCBkaWZm ZXJlbnRpYXRpbmcgYmV0d2VlbiBjYXNlIGZvciBhdCBtb3N0IG4NCi0gICogIGNoYXJhY3RlcnMu ICBJZiB0aGUgcG9zaXRpb24gd2hlcmUgdGhlIHR3byBzdHJpbmdzIGZpcnN0IGRpZmZlciBpcw0K LSAgKiAgYmVmb3JlIHRoZSBudGggcG9zaXRpb24sIHRoZSByZXR1cm4gdmFsdWUgaXMgdGhlIGRp ZmZlcmVuY2Ugb2YgdGhlIHZhbHVlcw0KLS0gKiAgb2YgdGhlIGNoYXJhY3RlcnMsICh0YWtpbmcg YSAnXDAnIHRvIGJlIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIGVuZCBvZiBhbnkNCi0tICogIGJzdHJp bmcpIG90aGVyd2lzZSAwIGlzIHJldHVybmVkLg0KLSsgKiAgb2YgdGhlIGNoYXJhY3RlcnMsIG90 aGVyd2lzZSAwIGlzIHJldHVybmVkLiAgSWYgdGhlIGxlbmd0aHMgYXJlIGRpZmZlcmVudA0KLSsg KiAgYW5kIGxlc3MgdGhhbiBuIGNoYXJhY3RlcnMsIHRoZW4gYSBkaWZmZXJlbmNlIGZyb20gMCBp cyBnaXZlbiwgYnV0IGlmIHRoZSANCi0rICogIGZpcnN0IGV4dHJhIGNoYXJhY3RlciBpcyAnXDAn LCB0aGVuIGl0IGlzIHRha2VuIHRvIGJlIHRoZSB2YWx1ZSANCi0rICogIFVDSEFSX01BWCsxLg0K LSAgKi8NCi0taW50IGJzdHJuaWNtcCAoY29uc3QgYnN0cmluZyBiMCwgY29uc3QgYnN0cmluZyBi MSwgaW50IG4pIHsNCi0raW50IGJzdHJuaWNtcCAoY29uc3RfYnN0cmluZyBiMCwgY29uc3RfYnN0 cmluZyBiMSwgaW50IG4pIHsNCi0gaW50IGksIHYsIG07DQotIA0KLSAJaWYgKGJkYXRhIChiMCkg PT0gTlVMTCB8fCBiMC0+c2xlbiA8IDAgfHwgDQotQEAgLTQxMSwyMCArNjQwLDI2IEBAIGludCBp LCB2LCBtOw0KLSANCi0gCWlmIChiMC0+ZGF0YSAhPSBiMS0+ZGF0YSkgew0KLSAJCWZvciAoaSA9 IDA7IGkgPCBtOyBpICsrKSB7DQotLQkJCXYgPSAgKChjaGFyKSBkb3duY2FzZSAoYjAtPmRhdGFb aV0pKTsNCi0tCQkJdiAtPSAoKGNoYXIpIGRvd25jYXNlIChiMS0+ZGF0YVtpXSkpOw0KLS0JCQlp ZiAodiAhPSAwKSByZXR1cm4gdjsNCi0tCQkJaWYgKGIwLT5kYXRhW2ldID09ICdcMCcpIHJldHVy biAwOw0KLSsJCQl2ICA9IChjaGFyKSBkb3duY2FzZSAoYjAtPmRhdGFbaV0pOw0KLSsJCQl2IC09 IChjaGFyKSBkb3duY2FzZSAoYjEtPmRhdGFbaV0pOw0KLSsJCQlpZiAodiAhPSAwKSByZXR1cm4g YjAtPmRhdGFbaV0gLSBiMS0+ZGF0YVtpXTsNCi0gCQl9DQotIAl9DQotIA0KLS0JaWYgKG4gPT0g bSB8fCBiMC0+c2xlbiA9PSBiMS0+c2xlbikgcmV0dXJuIDA7DQotKwlpZiAobiA9PSBtIHx8IGIw LT5zbGVuID09IGIxLT5zbGVuKSByZXR1cm4gQlNUUl9PSzsNCi0gDQotLQlpZiAoYjAtPnNsZW4g PiBtKSByZXR1cm4gKGNoYXIpIGRvd25jYXNlIChiMC0+ZGF0YVttXSk7DQotLQlyZXR1cm4gICAg ICAgICAgICAgICAgIC0gKGNoYXIpIGRvd25jYXNlIChiMS0+ZGF0YVttXSk7DQotKwlpZiAoYjAt PnNsZW4gPiBtKSB7DQotKwkJdiA9IChjaGFyKSBkb3duY2FzZSAoYjAtPmRhdGFbbV0pOw0KLSsJ CWlmICh2KSByZXR1cm4gdjsNCi0rCQlyZXR1cm4gVUNIQVJfTUFYICsgMTsNCi0rCX0NCi0rDQot Kwl2ID0gLSAoY2hhcikgZG93bmNhc2UgKGIxLT5kYXRhW21dKTsNCi0rCWlmICh2KSByZXR1cm4g djsNCi0rCXJldHVybiAtIChpbnQpIChVQ0hBUl9NQVggKyAxKTsNCi0gfQ0KLSANCi0tLyogIGlu dCBiaXNlcWNhc2VsZXNzIChjb25zdCBic3RyaW5nIGIwLCBjb25zdCBic3RyaW5nIGIxKQ0KLSsv KiAgaW50IGJpc2VxY2FzZWxlc3MgKGNvbnN0X2JzdHJpbmcgYjAsIGNvbnN0X2JzdHJpbmcgYjEp DQotICAqDQotICAqICBDb21wYXJlIHR3byBzdHJpbmdzIGZvciBlcXVhbGl0eSB3aXRob3V0IGRp ZmZlcmVudGlhdGluZyBiZXR3ZWVuIGNhc2UuICANCi0gICogIElmIHRoZSBzdHJpbmdzIGRpZmZl ciBvdGhlciB0aGFuIGluIGNhc2UsIDAgaXMgcmV0dXJuZWQsIGlmIHRoZSBzdHJpbmdzIA0KLUBA IC00MzIsMTIgKzY2NywxMiBAQCBpbnQgaSwgdiwgbTsNCi0gICogIHRoZSBsZW5ndGggb2YgdGhl IHN0cmluZ3MgYXJlIGRpZmZlcmVudCwgdGhpcyBmdW5jdGlvbiBpcyBPKDEpLiAgJ1wwJyANCi0g ICogIHRlcm1pbmF0aW9uIGNoYXJhY3RlcnMgYXJlIG5vdCB0cmVhdGVkIGluIGFueSBzcGVjaWFs IHdheS4NCi0gICovDQotLWludCBiaXNlcWNhc2VsZXNzIChjb25zdCBic3RyaW5nIGIwLCBjb25z dCBic3RyaW5nIGIxKSB7DQotK2ludCBiaXNlcWNhc2VsZXNzIChjb25zdF9ic3RyaW5nIGIwLCBj b25zdF9ic3RyaW5nIGIxKSB7DQotIGludCBpLCBuOw0KLSANCi0gCWlmIChiZGF0YSAoYjApID09 IE5VTEwgfHwgYjAtPnNsZW4gPCAwIHx8IA0KLSAJICAgIGJkYXRhIChiMSkgPT0gTlVMTCB8fCBi MS0+c2xlbiA8IDApIHJldHVybiBCU1RSX0VSUjsNCi0tCWlmIChiMC0+c2xlbiAhPSBiMS0+c2xl bikgcmV0dXJuIDA7DQotKwlpZiAoYjAtPnNsZW4gIT0gYjEtPnNsZW4pIHJldHVybiBCU1RSX09L Ow0KLSAJaWYgKGIwLT5kYXRhID09IGIxLT5kYXRhIHx8IGIwLT5zbGVuID09IDApIHJldHVybiAx Ow0KLSAJZm9yIChpPTAsIG49YjAtPnNsZW47IGkgPCBuOyBpKyspIHsNCi0gCQlpZiAoYjAtPmRh dGFbaV0gIT0gYjEtPmRhdGFbaV0pIHsNCi1AQCAtNDQ4LDIyICs2ODMsMTQxIEBAIGludCBpLCBu Ow0KLSAJcmV0dXJuIDE7DQotIH0NCi0gDQotLS8qICBpbnQgYmlzZXEgKGNvbnN0IGJzdHJpbmcg YjAsIGNvbnN0IGJzdHJpbmcgYjEpDQotKy8qICBpbnQgYmlzc3RlbWVxY2FzZWxlc3NibGsgKGNv bnN0X2JzdHJpbmcgYjAsIGNvbnN0IHZvaWQgKiBibGssIGludCBsZW4pDQotKyAqDQotKyAqICBD b21wYXJlIGJlZ2lubmluZyBvZiBzdHJpbmcgYjAgd2l0aCBhIGJsb2NrIG9mIG1lbW9yeSBvZiBs ZW5ndGggbGVuIA0KLSsgKiAgd2l0aG91dCBkaWZmZXJlbnRpYXRpbmcgYmV0d2VlbiBjYXNlIGZv ciBlcXVhbGl0eS4gIElmIHRoZSBiZWdpbm5pbmcgb2YgYjANCi0rICogIGRpZmZlcnMgZnJvbSB0 aGUgbWVtb3J5IGJsb2NrIG90aGVyIHRoYW4gaW4gY2FzZSAob3IgaWYgYjAgaXMgdG9vIHNob3J0 KSwgDQotKyAqICAwIGlzIHJldHVybmVkLCBpZiB0aGUgc3RyaW5ncyBhcmUgdGhlIHNhbWUsIDEg aXMgcmV0dXJuZWQsIGlmIHRoZXJlIGlzIGFuIA0KLSsgKiAgZXJyb3IsIC0xIGlzIHJldHVybmVk LiAgJ1wwJyBjaGFyYWN0ZXJzIGFyZSBub3QgdHJlYXRlZCBpbiBhbnkgc3BlY2lhbCANCi0rICog IHdheS4NCi0rICovDQotK2ludCBiaXNzdGVtZXFjYXNlbGVzc2JsayAoY29uc3RfYnN0cmluZyBi MCwgY29uc3Qgdm9pZCAqIGJsaywgaW50IGxlbikgew0KLStpbnQgaTsNCi0rDQotKwlpZiAoYmRh dGEgKGIwKSA9PSBOVUxMIHx8IGIwLT5zbGVuIDwgMCB8fCBOVUxMID09IGJsayB8fCBsZW4gPCAw KQ0KLSsJCXJldHVybiBCU1RSX0VSUjsNCi0rCWlmIChiMC0+c2xlbiA8IGxlbikgcmV0dXJuIEJT VFJfT0s7DQotKwlpZiAoYjAtPmRhdGEgPT0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgYmxrIHx8 IGxlbiA9PSAwKSByZXR1cm4gMTsNCi0rDQotKwlmb3IgKGkgPSAwOyBpIDwgbGVuOyBpICsrKSB7 DQotKwkJaWYgKGIwLT5kYXRhW2ldICE9ICgoY29uc3QgdW5zaWduZWQgY2hhciAqKSBibGspW2ld KSB7DQotKwkJCWlmIChkb3duY2FzZSAoYjAtPmRhdGFbaV0pICE9IA0KLSsJCQkgICAgZG93bmNh c2UgKCgoY29uc3QgdW5zaWduZWQgY2hhciAqKSBibGspW2ldKSkgcmV0dXJuIDA7DQotKwkJfQ0K LSsJfQ0KLSsJcmV0dXJuIDE7DQotK30NCi0rDQotKy8qDQotKyAqIGludCBibHRyaW13cyAoYnN0 cmluZyBiKQ0KLSsgKg0KLSsgKiBEZWxldGUgd2hpdGVzcGFjZSBjb250aWd1b3VzIGZyb20gdGhl IGxlZnQgZW5kIG9mIHRoZSBzdHJpbmcuDQotKyAqLw0KLStpbnQgYmx0cmltd3MgKGJzdHJpbmcg Yikgew0KLStpbnQgaSwgbGVuOw0KLSsNCi0rCWlmIChiID09IE5VTEwgfHwgYi0+ZGF0YSA9PSBO VUxMIHx8IGItPm1sZW4gPCBiLT5zbGVuIHx8DQotKwkgICAgYi0+c2xlbiA8IDAgfHwgYi0+bWxl biA8PSAwKSByZXR1cm4gQlNUUl9FUlI7DQotKw0KLSsJZm9yIChsZW4gPSBiLT5zbGVuLCBpID0g MDsgaSA8IGxlbjsgaSsrKSB7DQotKwkJaWYgKCF3c3BhY2UgKGItPmRhdGFbaV0pKSB7DQotKwkJ CXJldHVybiBiZGVsZXRlIChiLCAwLCBpKTsNCi0rCQl9DQotKwl9DQotKw0KLSsJYi0+ZGF0YVsw XSA9ICh1bnNpZ25lZCBjaGFyKSAnXDAnOw0KLSsJYi0+c2xlbiA9IDA7DQotKwlyZXR1cm4gQlNU Ul9PSzsNCi0rfQ0KLSsNCi0rLyoNCi0rICogaW50IGJydHJpbXdzIChic3RyaW5nIGIpDQotKyAq DQotKyAqIERlbGV0ZSB3aGl0ZXNwYWNlIGNvbnRpZ3VvdXMgZnJvbSB0aGUgcmlnaHQgZW5kIG9m IHRoZSBzdHJpbmcuDQotKyAqLw0KLStpbnQgYnJ0cmltd3MgKGJzdHJpbmcgYikgew0KLStpbnQg aTsNCi0rDQotKwlpZiAoYiA9PSBOVUxMIHx8IGItPmRhdGEgPT0gTlVMTCB8fCBiLT5tbGVuIDwg Yi0+c2xlbiB8fA0KLSsJICAgIGItPnNsZW4gPCAwIHx8IGItPm1sZW4gPD0gMCkgcmV0dXJuIEJT VFJfRVJSOw0KLSsNCi0rCWZvciAoaSA9IGItPnNsZW4gLSAxOyBpID49IDA7IGktLSkgew0KLSsJ CWlmICghd3NwYWNlIChiLT5kYXRhW2ldKSkgew0KLSsJCQlpZiAoYi0+bWxlbiA+IGkpIGItPmRh dGFbaSsxXSA9ICh1bnNpZ25lZCBjaGFyKSAnXDAnOw0KLSsJCQliLT5zbGVuID0gaSArIDE7DQot KwkJCXJldHVybiBCU1RSX09LOw0KLSsJCX0NCi0rCX0NCi0rDQotKwliLT5kYXRhWzBdID0gKHVu c2lnbmVkIGNoYXIpICdcMCc7DQotKwliLT5zbGVuID0gMDsNCi0rCXJldHVybiBCU1RSX09LOw0K LSt9DQotKw0KLSsvKg0KLSsgKiBpbnQgYnRyaW13cyAoYnN0cmluZyBiKQ0KLSsgKg0KLSsgKiBE ZWxldGUgd2hpdGVzcGFjZSBjb250aWd1b3VzIGZyb20gYm90aCBlbmRzIG9mIHRoZSBzdHJpbmcu DQotKyAqLw0KLStpbnQgYnRyaW13cyAoYnN0cmluZyBiKSB7DQotK2ludCBpLCBqOw0KLSsNCi0r CWlmIChiID09IE5VTEwgfHwgYi0+ZGF0YSA9PSBOVUxMIHx8IGItPm1sZW4gPCBiLT5zbGVuIHx8 DQotKwkgICAgYi0+c2xlbiA8IDAgfHwgYi0+bWxlbiA8PSAwKSByZXR1cm4gQlNUUl9FUlI7DQot Kw0KLSsJZm9yIChpID0gYi0+c2xlbiAtIDE7IGkgPj0gMDsgaS0tKSB7DQotKwkJaWYgKCF3c3Bh Y2UgKGItPmRhdGFbaV0pKSB7DQotKwkJCWlmIChiLT5tbGVuID4gaSkgYi0+ZGF0YVtpKzFdID0g KHVuc2lnbmVkIGNoYXIpICdcMCc7DQotKwkJCWItPnNsZW4gPSBpICsgMTsNCi0rCQkJZm9yIChq ID0gMDsgd3NwYWNlIChiLT5kYXRhW2pdKTsgaisrKSB7fQ0KLSsJCQlyZXR1cm4gYmRlbGV0ZSAo YiwgMCwgaik7DQotKwkJfQ0KLSsJfQ0KLSsNCi0rCWItPmRhdGFbMF0gPSAodW5zaWduZWQgY2hh cikgJ1wwJzsNCi0rCWItPnNsZW4gPSAwOw0KLSsJcmV0dXJuIEJTVFJfT0s7DQotK30NCi0rDQot Ky8qICBpbnQgYmlzZXEgKGNvbnN0X2JzdHJpbmcgYjAsIGNvbnN0X2JzdHJpbmcgYjEpDQotICAq DQotICAqICBDb21wYXJlIHRoZSBzdHJpbmcgYjAgYW5kIGIxLiAgSWYgdGhlIHN0cmluZ3MgZGlm ZmVyLCAwIGlzIHJldHVybmVkLCBpZiANCi0gICogIHRoZSBzdHJpbmdzIGFyZSB0aGUgc2FtZSwg MSBpcyByZXR1cm5lZCwgaWYgdGhlcmUgaXMgYW4gZXJyb3IsIC0xIGlzIA0KLSAgKiAgcmV0dXJu ZWQuICBJZiB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmdzIGFyZSBkaWZmZXJlbnQsIHRoaXMgZnVu Y3Rpb24gaXMNCi0gICogIE8oMSkuICAnXDAnIHRlcm1pbmF0aW9uIGNoYXJhY3RlcnMgYXJlIG5v dCB0cmVhdGVkIGluIGFueSBzcGVjaWFsIHdheS4NCi0gICovDQotLWludCBiaXNlcSAoY29uc3Qg YnN0cmluZyBiMCwgY29uc3QgYnN0cmluZyBiMSkgew0KLStpbnQgYmlzZXEgKGNvbnN0X2JzdHJp bmcgYjAsIGNvbnN0X2JzdHJpbmcgYjEpIHsNCi0gCWlmIChiMCA9PSBOVUxMIHx8IGIxID09IE5V TEwgfHwgYjAtPmRhdGEgPT0gTlVMTCB8fCBiMS0+ZGF0YSA9PSBOVUxMIHx8DQotIAkJYjAtPnNs ZW4gPCAwIHx8IGIxLT5zbGVuIDwgMCkgcmV0dXJuIEJTVFJfRVJSOw0KLS0JaWYgKGIwLT5zbGVu ICE9IGIxLT5zbGVuKSByZXR1cm4gMDsNCi0rCWlmIChiMC0+c2xlbiAhPSBiMS0+c2xlbikgcmV0 dXJuIEJTVFJfT0s7DQotIAlpZiAoYjAtPmRhdGEgPT0gYjEtPmRhdGEgfHwgYjAtPnNsZW4gPT0g MCkgcmV0dXJuIDE7DQotLQlyZXR1cm4gIW1lbWNtcCAoYjAtPmRhdGEsIGIxLT5kYXRhLCBiMC0+ c2xlbik7DQotKwlyZXR1cm4gIWJzdHJfX21lbWNtcCAoYjAtPmRhdGEsIGIxLT5kYXRhLCBiMC0+ c2xlbik7DQotK30NCi0rDQotKy8qICBpbnQgYmlzc3RlbWVxYmxrIChjb25zdF9ic3RyaW5nIGIw LCBjb25zdCB2b2lkICogYmxrLCBpbnQgbGVuKQ0KLSsgKg0KLSsgKiAgQ29tcGFyZSBiZWdpbm5p bmcgb2Ygc3RyaW5nIGIwIHdpdGggYSBibG9jayBvZiBtZW1vcnkgb2YgbGVuZ3RoIGxlbiBmb3Ig DQotKyAqICBlcXVhbGl0eS4gIElmIHRoZSBiZWdpbm5pbmcgb2YgYjAgZGlmZmVycyBmcm9tIHRo ZSBtZW1vcnkgYmxvY2sgKG9yIGlmIGIwIA0KLSsgKiAgaXMgdG9vIHNob3J0KSwgMCBpcyByZXR1 cm5lZCwgaWYgdGhlIHN0cmluZ3MgYXJlIHRoZSBzYW1lLCAxIGlzIHJldHVybmVkLCANCi0rICog IGlmIHRoZXJlIGlzIGFuIGVycm9yLCAtMSBpcyByZXR1cm5lZC4gICdcMCcgY2hhcmFjdGVycyBh cmUgbm90IHRyZWF0ZWQgaW4gDQotKyAqICBhbnkgc3BlY2lhbCB3YXkuDQotKyAqLw0KLStpbnQg Ymlzc3RlbWVxYmxrIChjb25zdF9ic3RyaW5nIGIwLCBjb25zdCB2b2lkICogYmxrLCBpbnQgbGVu KSB7DQotK2ludCBpOw0KLSsNCi0rCWlmIChiZGF0YSAoYjApID09IE5VTEwgfHwgYjAtPnNsZW4g PCAwIHx8IE5VTEwgPT0gYmxrIHx8IGxlbiA8IDApDQotKwkJcmV0dXJuIEJTVFJfRVJSOw0KLSsJ aWYgKGIwLT5zbGVuIDwgbGVuKSByZXR1cm4gQlNUUl9PSzsNCi0rCWlmIChiMC0+ZGF0YSA9PSAo Y29uc3QgdW5zaWduZWQgY2hhciAqKSBibGsgfHwgbGVuID09IDApIHJldHVybiAxOw0KLSsNCi0r CWZvciAoaSA9IDA7IGkgPCBsZW47IGkgKyspIHsNCi0rCQlpZiAoYjAtPmRhdGFbaV0gIT0gKChj b25zdCB1bnNpZ25lZCBjaGFyICopIGJsaylbaV0pIHJldHVybiBCU1RSX09LOw0KLSsJfQ0KLSsJ cmV0dXJuIDE7DQotIH0NCi0gDQotLS8qICBpbnQgYmlzZXFjc3RyIChjb25zdCBic3RyaW5nIGIs IGNvbnN0IGNoYXIgKnMpDQotKy8qICBpbnQgYmlzZXFjc3RyIChjb25zdF9ic3RyaW5nIGIsIGNv bnN0IGNoYXIgKnMpDQotICAqDQotICAqICBDb21wYXJlIHRoZSBic3RyaW5nIGIgYW5kIGNoYXIg KiBzdHJpbmcgcy4gIFRoZSBDIHN0cmluZyBzIG11c3QgYmUgJ1wwJyANCi0gICogIHRlcm1pbmF0 ZWQgYXQgZXhhY3RseSB0aGUgbGVuZ3RoIG9mIHRoZSBic3RyaW5nIGIsIGFuZCB0aGUgY29udGVu dHMgDQotQEAgLTQ3NCwxNiArODI4LDQwIEBAIGludCBiaXNlcSAoY29uc3QgYnN0cmluZyBiMCwg Y29uc3QgYnN0cmkKLSAgKiAgb3RoZXIuICBJZiB0aGUgc3RyaW5ncyBhcmUgZXF1YWwgMSBpcyBy ZXR1cm5lZCwgaWYgdGhleSBhcmUgdW5lcXVhbCAwIGlzIA0KLSAgKiAgcmV0dXJuZWQgYW5kIGlm IHRoZXJlIGlzIGEgZGV0ZWN0YWJsZSBlcnJvciBCU1RSX0VSUiBpcyByZXR1cm5lZC4NCi0gICov DQotLWludCBiaXNlcWNzdHIgKGNvbnN0IGJzdHJpbmcgYiwgY29uc3QgY2hhciAqIHMpIHsNCi0r aW50IGJpc2VxY3N0ciAoY29uc3RfYnN0cmluZyBiLCBjb25zdCBjaGFyICogcykgew0KLStpbnQg aTsNCi0rCWlmIChiID09IE5VTEwgfHwgcyA9PSBOVUxMIHx8IGItPmRhdGEgPT0gTlVMTCB8fCBi LT5zbGVuIDwgMCkgcmV0dXJuIEJTVFJfRVJSOw0KLSsJZm9yIChpPTA7IGkgPCBiLT5zbGVuOyBp KyspIHsNCi0rCQlpZiAoc1tpXSA9PSAnXDAnIHx8IGItPmRhdGFbaV0gIT0gKHVuc2lnbmVkIGNo YXIpIHNbaV0pIHJldHVybiBCU1RSX09LOw0KLSsJfQ0KLSsJcmV0dXJuIHNbaV0gPT0gJ1wwJzsN Ci0rfQ0KLSsNCi0rLyogIGludCBiaXNlcWNzdHJjYXNlbGVzcyAoY29uc3RfYnN0cmluZyBiLCBj b25zdCBjaGFyICpzKQ0KLSsgKg0KLSsgKiAgQ29tcGFyZSB0aGUgYnN0cmluZyBiIGFuZCBjaGFy ICogc3RyaW5nIHMuICBUaGUgQyBzdHJpbmcgcyBtdXN0IGJlICdcMCcgDQotKyAqICB0ZXJtaW5h dGVkIGF0IGV4YWN0bHkgdGhlIGxlbmd0aCBvZiB0aGUgYnN0cmluZyBiLCBhbmQgdGhlIGNvbnRl bnRzIA0KLSsgKiAgYmV0d2VlbiB0aGUgdHdvIG11c3QgYmUgaWRlbnRpY2FsIGV4Y2VwdCBmb3Ig Y2FzZSB3aXRoIHRoZSBic3RyaW5nIGIgd2l0aCANCi0rICogIG5vICdcMCcgY2hhcmFjdGVycyBm b3IgdGhlIHR3byBjb250ZW50cyB0byBiZSBjb25zaWRlcmVkIGVxdWFsLiAgVGhpcyBpcyANCi0r ICogIGVxdWl2YWxlbnQgdG8gdGhlIGNvbmRpdGlvbiB0aGF0IHRoZWlyIGN1cnJlbnQgY29udGVu dHMgd2lsbCBiZSBhbHdheXMgYmUgDQotKyAqICBlcXVhbCBpZ25vcmluZyBjYXNlIHdoZW4gY29t cGFyaW5nIHRoZW0gaW4gdGhlIHNhbWUgZm9ybWF0IGFmdGVyIA0KLSsgKiAgY29udmVydGluZyBv bmUgb3IgdGhlIG90aGVyLiAgSWYgdGhlIHN0cmluZ3MgYXJlIGVxdWFsLCBleGNlcHQgZm9yIGNh c2UsIA0KLSsgKiAgMSBpcyByZXR1cm5lZCwgaWYgdGhleSBhcmUgdW5lcXVhbCByZWdhcmRsZXNz IG9mIGNhc2UgMCBpcyByZXR1cm5lZCBhbmQgDQotKyAqICBpZiB0aGVyZSBpcyBhIGRldGVjdGFi bGUgZXJyb3IgQlNUUl9FUlIgaXMgcmV0dXJuZWQuDQotKyAqLw0KLStpbnQgYmlzZXFjc3RyY2Fz ZWxlc3MgKGNvbnN0X2JzdHJpbmcgYiwgY29uc3QgY2hhciAqIHMpIHsNCi0gaW50IGk7DQotIAlp ZiAoYiA9PSBOVUxMIHx8IHMgPT0gTlVMTCB8fCBiLT5kYXRhID09IE5VTEwgfHwgYi0+c2xlbiA8 IDApIHJldHVybiBCU1RSX0VSUjsNCi0gCWZvciAoaT0wOyBpIDwgYi0+c2xlbjsgaSsrKSB7DQot LQkJaWYgKHNbaV0gPT0gJ1wwJyB8fCBiLT5kYXRhW2ldICE9IHNbaV0pIHJldHVybiAwOw0KLSsJ CWlmIChzW2ldID09ICdcMCcgfHwgDQotKwkJICAgIChiLT5kYXRhW2ldICE9ICh1bnNpZ25lZCBj aGFyKSBzW2ldICYmIA0KLSsJCSAgICAgZG93bmNhc2UgKGItPmRhdGFbaV0pICE9ICh1bnNpZ25l ZCBjaGFyKSBkb3duY2FzZSAoc1tpXSkpKQ0KLSsJCQlyZXR1cm4gQlNUUl9PSzsNCi0gCX0NCi0g CXJldHVybiBzW2ldID09ICdcMCc7DQotIH0NCi0gDQotLS8qICBpbnQgYnN0cmNtcCAoY29uc3Qg YnN0cmluZyBiMCwgY29uc3QgYnN0cmluZyBiMSkNCi0rLyogIGludCBic3RyY21wIChjb25zdF9i c3RyaW5nIGIwLCBjb25zdF9ic3RyaW5nIGIxKQ0KLSAgKg0KLSAgKiAgQ29tcGFyZSB0aGUgc3Ry aW5nIGIwIGFuZCBiMS4gIElmIHRoZXJlIGlzIGFuIGVycm9yLCBTSFJUX01JTiBpcyByZXR1cm5l ZCwgDQotICAqICBvdGhlcndpc2UgYSB2YWx1ZSBsZXNzIHRoYW4gb3IgZ3JlYXRlciB0aGFuIHpl cm8sIGluZGljYXRpbmcgdGhhdCB0aGUgDQotQEAgLTQ5NywyNyArODc1LDI3IEBAIGludCBpOw0K LSAgKiAgc3RhbmRhcmQgQyBsaWJyYXJ5IGNvdW50ZXIgcGFydCBzdHJjbXAsIHRoZSBjb21wYXJp c29uIGRvZXMgbm90IHByb2NlZWQgDQotICAqICBwYXN0IGFueSAnXDAnIHRlcm1pbmF0aW9uIGNo YXJhY3RlcnMgZW5jb3VudGVyZWQuDQotICAqLw0KLS1pbnQgYnN0cmNtcCAoY29uc3QgYnN0cmlu ZyBiMCwgY29uc3QgYnN0cmluZyBiMSkgew0KLStpbnQgYnN0cmNtcCAoY29uc3RfYnN0cmluZyBi MCwgY29uc3RfYnN0cmluZyBiMSkgew0KLSBpbnQgaSwgdiwgbjsNCi0gDQotIAlpZiAoYjAgPT0g TlVMTCB8fCBiMSA9PSBOVUxMIHx8IGIwLT5kYXRhID09IE5VTEwgfHwgYjEtPmRhdGEgPT0gTlVM TCB8fA0KLSAJCWIwLT5zbGVuIDwgMCB8fCBiMS0+c2xlbiA8IDApIHJldHVybiBTSFJUX01JTjsN Ci0gCW4gPSBiMC0+c2xlbjsgaWYgKG4gPiBiMS0+c2xlbikgbiA9IGIxLT5zbGVuOw0KLSAJaWYg KGIwLT5zbGVuID09IGIxLT5zbGVuICYmIChiMC0+ZGF0YSA9PSBiMS0+ZGF0YSB8fCBiMC0+c2xl biA9PSAwKSkNCi0tCQlyZXR1cm4gMDsNCi0rCQlyZXR1cm4gQlNUUl9PSzsNCi0gDQotIAlmb3Ig KGkgPSAwOyBpIDwgbjsgaSArKykgew0KLSAJCXYgPSAoKGNoYXIpIGIwLT5kYXRhW2ldKSAtICgo Y2hhcikgYjEtPmRhdGFbaV0pOw0KLSAJCWlmICh2ICE9IDApIHJldHVybiB2Ow0KLS0JCWlmIChi MC0+ZGF0YVtpXSA9PSAnXDAnKSByZXR1cm4gMDsNCi0rCQlpZiAoYjAtPmRhdGFbaV0gPT0gKHVu c2lnbmVkIGNoYXIpICdcMCcpIHJldHVybiBCU1RSX09LOw0KLSAJfQ0KLSANCi0gCWlmIChiMC0+ c2xlbiA+IG4pIHJldHVybiAxOw0KLSAJaWYgKGIxLT5zbGVuID4gbikgcmV0dXJuIC0xOw0KLS0J cmV0dXJuIDA7DQotKwlyZXR1cm4gQlNUUl9PSzsNCi0gfQ0KLSANCi0tLyogIGludCBic3RybmNt cCAoY29uc3QgYnN0cmluZyBiMCwgY29uc3QgYnN0cmluZyBiMSwgaW50IG4pDQotKy8qICBpbnQg YnN0cm5jbXAgKGNvbnN0X2JzdHJpbmcgYjAsIGNvbnN0X2JzdHJpbmcgYjEsIGludCBuKQ0KLSAg Kg0KLSAgKiAgQ29tcGFyZSB0aGUgc3RyaW5nIGIwIGFuZCBiMSBmb3IgYXQgbW9zdCBuIGNoYXJh Y3RlcnMuICBJZiB0aGVyZSBpcyBhbiANCi0gICogIGVycm9yLCBTSFJUX01JTiBpcyByZXR1cm5l ZCwgb3RoZXJ3aXNlIGEgdmFsdWUgaXMgcmV0dXJuZWQgYXMgaWYgYjAgYW5kIA0KLUBAIC01Mjcs NyArOTA1LDcgQEAgaW50IGksIHYsIG47DQotICAqICBwYXJ0IHN0cmNtcCwgdGhlIGNvbXBhcmlz b24gZG9lcyBub3QgcHJvY2VlZCBwYXN0IGFueSAnXDAnIHRlcm1pbmF0aW9uIA0KLSAgKiAgY2hh cmFjdGVycyBlbmNvdW50ZXJlZC4NCi0gICovDQotLWludCBic3RybmNtcCAoY29uc3QgYnN0cmlu ZyBiMCwgY29uc3QgYnN0cmluZyBiMSwgaW50IG4pIHsNCi0raW50IGJzdHJuY21wIChjb25zdF9i c3RyaW5nIGIwLCBjb25zdF9ic3RyaW5nIGIxLCBpbnQgbikgew0KLSBpbnQgaSwgdiwgbTsNCi0g DQotIAlpZiAoYjAgPT0gTlVMTCB8fCBiMSA9PSBOVUxMIHx8IGIwLT5kYXRhID09IE5VTEwgfHwg YjEtPmRhdGEgPT0gTlVMTCB8fA0KLUBAIC01NDAsMjQgKzkxOCwyNCBAQCBpbnQgaSwgdiwgbTsN Ci0gCQlmb3IgKGkgPSAwOyBpIDwgbTsgaSArKykgew0KLSAJCQl2ID0gKChjaGFyKSBiMC0+ZGF0 YVtpXSkgLSAoKGNoYXIpIGIxLT5kYXRhW2ldKTsNCi0gCQkJaWYgKHYgIT0gMCkgcmV0dXJuIHY7 DQotLQkJCWlmIChiMC0+ZGF0YVtpXSA9PSAnXDAnKSByZXR1cm4gMDsNCi0rCQkJaWYgKGIwLT5k YXRhW2ldID09ICh1bnNpZ25lZCBjaGFyKSAnXDAnKSByZXR1cm4gQlNUUl9PSzsNCi0gCQl9DQot IAl9DQotIA0KLS0JaWYgKG4gPT0gbSB8fCBiMC0+c2xlbiA9PSBiMS0+c2xlbikgcmV0dXJuIDA7 DQotKwlpZiAobiA9PSBtIHx8IGIwLT5zbGVuID09IGIxLT5zbGVuKSByZXR1cm4gQlNUUl9PSzsN Ci0gDQotIAlpZiAoYjAtPnNsZW4gPiBtKSByZXR1cm4gMTsNCi0gCXJldHVybiAtMTsNCi0gfQ0K LSANCi0tLyogIGJzdHJpbmcgYm1pZHN0ciAoY29uc3QgYnN0cmluZyBiLCBpbnQgbGVmdCwgaW50 IGxlbikNCi0rLyogIGJzdHJpbmcgYm1pZHN0ciAoY29uc3RfYnN0cmluZyBiLCBpbnQgbGVmdCwg aW50IGxlbikNCi0gICoNCi0gICogIENyZWF0ZSBhIGJzdHJpbmcgd2hpY2ggaXMgdGhlIHN1YnN0 cmluZyBvZiBiIHN0YXJ0aW5nIGZyb20gcG9zaXRpb24gbGVmdA0KLSAgKiAgYW5kIHJ1bm5pbmcg Zm9yIGEgbGVuZ3RoIGxlbiAoY2xhbXBlZCBieSB0aGUgZW5kIG9mIHRoZSBic3RyaW5nIGIuKSAg SWYNCi0gICogIGIgaXMgZGV0ZWN0YWJseSBpbnZhbGlkLCB0aGVuIE5VTEwgaXMgcmV0dXJuZWQu ICBUaGUgc2VjdGlvbiBkZXNjcmliZWQgDQotICAqICBieSAobGVmdCwgbGVuKSBpcyBjbGFtcGVk IHRvIHRoZSBib3VuZGFyaWVzIG9mIGIuDQotICAqLw0KLS1ic3RyaW5nIGJtaWRzdHIgKGNvbnN0 IGJzdHJpbmcgYiwgaW50IGxlZnQsIGludCBsZW4pIHsNCi0rYnN0cmluZyBibWlkc3RyIChjb25z dF9ic3RyaW5nIGIsIGludCBsZWZ0LCBpbnQgbGVuKSB7DQotIA0KLSAJaWYgKGIgPT0gTlVMTCB8 fCBiLT5zbGVuIDwgMCB8fCBiLT5kYXRhID09IE5VTEwpIHJldHVybiBOVUxMOw0KLSANCi1AQCAt NTg2LDcgKzk2NCw4IEBAIGludCBiZGVsZXRlIChic3RyaW5nIGIsIGludCBwb3MsIGludCBsZW4K LSAJCXBvcyA9IDA7DQotIAl9DQotIA0KLS0JaWYgKGxlbiA8IDAgfHwgYiA9PSBOVUxMIHx8IGIt PmRhdGEgPT0gTlVMTCB8fCBiLT5zbGVuIDwgMCB8fCBiLT5tbGVuIDwgYi0+c2xlbikgDQotKwlp ZiAobGVuIDwgMCB8fCBiID09IE5VTEwgfHwgYi0+ZGF0YSA9PSBOVUxMIHx8IGItPnNsZW4gPCAw IHx8IA0KLSsJICAgIGItPm1sZW4gPCBiLT5zbGVuIHx8IGItPm1sZW4gPD0gMCkgDQotIAkJcmV0 dXJuIEJTVFJfRVJSOw0KLSAJaWYgKGxlbiA+IDAgJiYgcG9zIDwgYi0+c2xlbikgew0KLSAJCWlm IChwb3MgKyBsZW4gPj0gYi0+c2xlbikgew0KLUBAIC01OTcsMjMgKzk3NiwyNCBAQCBpbnQgYmRl bGV0ZSAoYnN0cmluZyBiLCBpbnQgcG9zLCBpbnQgbGVuCi0gCQkJICAgICAgICAgICAgYi0+c2xl biAtIChwb3MrbGVuKSk7DQotIAkJCWItPnNsZW4gLT0gbGVuOw0KLSAJCX0NCi0tCQliLT5kYXRh W2ItPnNsZW5dID0gJ1wwJzsNCi0rCQliLT5kYXRhW2ItPnNsZW5dID0gKHVuc2lnbmVkIGNoYXIp ICdcMCc7DQotIAl9DQotIAlyZXR1cm4gQlNUUl9PSzsNCi0gfQ0KLSANCi0gLyogIGludCBiZGVz dHJveSAoYnN0cmluZyBiKQ0KLSAgKg0KLS0gKiAgZnJlZSB1cCB0aGUgYnN0cmluZy4gIE5vdGUg dGhhdCBpZiBiIGlzIGRldGVjdGFibHkgaW52YWxpZCBvciBub3Qgd3JpdGFibGUNCi0rICogIEZy ZWUgdXAgdGhlIGJzdHJpbmcuICBOb3RlIHRoYXQgaWYgYiBpcyBkZXRlY3RhYmx5IGludmFsaWQg b3Igbm90IHdyaXRhYmxlDQotICAqICB0aGVuIG5vIGFjdGlvbiBpcyBwZXJmb3JtZWQgYW5kIEJT VFJfRVJSIGlzIHJldHVybmVkLiAgTGlrZSBhIGZyZWVkIG1lbW9yeQ0KLSAgKiAgYWxsb2NhdGlv biwgZGVyZWZlcmVuY2VzLCB3cml0ZXMgb3IgYW55IG90aGVyIGFjdGlvbiBvbiBiIGFmdGVyIGl0 IGhhcyANCi0gICogIGJlZW4gYmRlc3Ryb3llZCBpcyB1bmRlZmluZWQuDQotICAqLw0KLSBpbnQg YmRlc3Ryb3kgKGJzdHJpbmcgYikgew0KLS0JaWYgKGIgPT0gTlVMTCB8fCBiLT5zbGVuIDwgMCB8 fCBiLT5tbGVuIDw9IDAgfHwgYi0+ZGF0YSA9PSBOVUxMKQ0KLSsJaWYgKGIgPT0gTlVMTCB8fCBi LT5zbGVuIDwgMCB8fCBiLT5tbGVuIDw9IDAgfHwgYi0+bWxlbiA8IGItPnNsZW4gfHwNCi0rCSAg ICBiLT5kYXRhID09IE5VTEwpDQotIAkJcmV0dXJuIEJTVFJfRVJSOw0KLSANCi0tCWZyZWUgKGIt PmRhdGEpOw0KLSsJYnN0cl9fZnJlZSAoYi0+ZGF0YSk7DQotIA0KLSAJLyogSW4gY2FzZSB0aGVy ZSBpcyBhbnkgc3RhbGUgdXNhZ2UsIHRoZXJlIGlzIG9uZSBtb3JlIGNoYW5jZSB0byANCi0gCSAg IG5vdGljZSB0aGlzIGVycm9yLiAqLw0KLUBAIC02MjIsMTEgKzEwMDIsMTEgQEAgaW50IGJkZXN0 cm95IChic3RyaW5nIGIpIHsNCi0gCWItPm1sZW4gPSAtX19MSU5FX187DQotIAliLT5kYXRhID0g TlVMTDsNCi0gDQotLQlmcmVlIChiKTsNCi0tCXJldHVybiAwOw0KLSsJYnN0cl9fZnJlZSAoYik7 DQotKwlyZXR1cm4gQlNUUl9PSzsNCi0gfQ0KLSANCi0tLyogIGludCBiaW5zdHIgKGNvbnN0IGJz dHJpbmcgYjEsIGludCBwb3MsIGNvbnN0IGJzdHJpbmcgYjIpDQotKy8qICBpbnQgYmluc3RyIChj b25zdF9ic3RyaW5nIGIxLCBpbnQgcG9zLCBjb25zdF9ic3RyaW5nIGIyKQ0KLSAgKg0KLSAgKiAg U2VhcmNoIGZvciB0aGUgYnN0cmluZyBiMiBpbiBiMSBzdGFydGluZyBmcm9tIHBvc2l0aW9uIHBv cywgYW5kIHNlYXJjaGluZyANCi0gICogIGZvcndhcmQuICBJZiBpdCBpcyBmb3VuZCB0aGVuIHJl dHVybiB3aXRoIHRoZSBmaXJzdCBwb3NpdGlvbiB3aGVyZSBpdCBpcyANCi1AQCAtNjM1LDcgKzEw MTUsMTQxIEBAIGludCBiZGVzdHJveSAoYnN0cmluZyBiKSB7DQotICAqICBzZWFyY2ggYWxnb3Jp dGhtLiAgQmVjYXVzZSBvZiB0aGlzIHRoZXJlIGFyZSBtYW55IGRlZ2VuZXJhdGUgY2FzZXMgd2hl cmUgDQotICAqICB0aGlzIGNhbiB0YWtlIG11Y2ggbG9uZ2VyIHRoYW4gaXQgbmVlZHMgdG8uDQot ICAqLw0KLS1pbnQgYmluc3RyIChjb25zdCBic3RyaW5nIGIxLCBpbnQgcG9zLCBjb25zdCBic3Ry aW5nIGIyKSB7DQotK2ludCBiaW5zdHIgKGNvbnN0X2JzdHJpbmcgYjEsIGludCBwb3MsIGNvbnN0 X2JzdHJpbmcgYjIpIHsNCi0raW50IGosIGlpLCBsbCwgbGY7DQotK3Vuc2lnbmVkIGNoYXIgKiBk MDsNCi0rdW5zaWduZWQgY2hhciBjMDsNCi0rcmVnaXN0ZXIgdW5zaWduZWQgY2hhciAqIGQxOw0K LStyZWdpc3RlciB1bnNpZ25lZCBjaGFyIGMxOw0KLStyZWdpc3RlciBpbnQgaTsNCi0rDQotKwlp ZiAoYjEgPT0gTlVMTCB8fCBiMS0+ZGF0YSA9PSBOVUxMIHx8IGIxLT5zbGVuIDwgMCB8fA0KLSsJ ICAgIGIyID09IE5VTEwgfHwgYjItPmRhdGEgPT0gTlVMTCB8fCBiMi0+c2xlbiA8IDApIHJldHVy biBCU1RSX0VSUjsNCi0rCWlmIChiMS0+c2xlbiA9PSBwb3MpIHJldHVybiAoYjItPnNsZW4gPT0g MCk/cG9zOkJTVFJfRVJSOw0KLSsJaWYgKGIxLT5zbGVuIDwgcG9zIHx8IHBvcyA8IDApIHJldHVy biBCU1RSX0VSUjsNCi0rCWlmIChiMi0+c2xlbiA9PSAwKSByZXR1cm4gcG9zOw0KLSsNCi0rCS8q IE5vIHNwYWNlIHRvIGZpbmQgc3VjaCBhIHN0cmluZz8gKi8NCi0rCWlmICgobGYgPSBiMS0+c2xl biAtIGIyLT5zbGVuICsgMSkgPD0gcG9zKSByZXR1cm4gQlNUUl9FUlI7DQotKw0KLSsJLyogQW4g b2J2aW91cyBhbGlhcyBjYXNlICovDQotKwlpZiAoYjEtPmRhdGEgPT0gYjItPmRhdGEgJiYgcG9z ID09IDApIHJldHVybiAwOw0KLSsNCi0rCWkgPSBwb3M7DQotKw0KLSsJZDAgPSBiMi0+ZGF0YTsN Ci0rCWQxID0gYjEtPmRhdGE7DQotKwlsbCA9IGIyLT5zbGVuOw0KLSsNCi0rCS8qIFBlZWwgb2Zm IHRoZSBiMi0+c2xlbiA9PSAxIGNhc2UgKi8NCi0rCWMwID0gZDBbMF07DQotKwlpZiAoMSA9PSBs bCkgew0KLSsJCWZvciAoO2kgPCBsZjsgaSsrKSBpZiAoYzAgPT0gZDFbaV0pIHJldHVybiBpOw0K LSsJCXJldHVybiBCU1RSX0VSUjsNCi0rCX0NCi0rDQotKwljMSA9IGMwOw0KLSsJaiA9IDA7DQot KwlsZiA9IGIxLT5zbGVuIC0gMTsNCi0rDQotKwlpaSA9IC0xOw0KLSsJaWYgKGkgPCBsZikgZG8g ew0KLSsJCS8qIFVucm9sbGVkIGN1cnJlbnQgY2hhcmFjdGVyIHRlc3QgKi8NCi0rCQlpZiAoYzEg IT0gZDFbaV0pIHsNCi0rCQkJaWYgKGMxICE9IGQxWzEraV0pIHsNCi0rCQkJCWkgKz0gMjsNCi0r CQkJCWNvbnRpbnVlOw0KLSsJCQl9DQotKwkJCWkrKzsNCi0rCQl9DQotKw0KLSsJCS8qIFRha2Ug bm90ZSBpZiB0aGlzIGlzIHRoZSBzdGFydCBvZiBhIHBvdGVudGlhbCBtYXRjaCAqLw0KLSsJCWlm ICgwID09IGopIGlpID0gaTsNCi0rDQotKwkJLyogU2hpZnQgdGhlIHRlc3QgY2hhcmFjdGVyIGRv d24gYnkgb25lICovDQotKwkJaisrOw0KLSsJCWkrKzsNCi0rDQotKwkJLyogSWYgdGhpcyBpc24n dCBwYXN0IHRoZSBsYXN0IGNoYXJhY3RlciBjb250aW51ZSAqLw0KLSsJCWlmIChqIDwgbGwpIHsN Ci0rCQkJYzEgPSBkMFtqXTsNCi0rCQkJY29udGludWU7DQotKwkJfQ0KLSsNCi0rCQlOMDo7DQot Kw0KLSsJCS8qIElmIG5vIGNoYXJhY3RlcnMgbWlzbWF0Y2hlZCwgdGhlbiB3ZSBtYXRjaGVkICov DQotKwkJaWYgKGkgPT0gaWkraikgcmV0dXJuIGlpOw0KLSsNCi0rCQkvKiBTaGlmdCBiYWNrIHRv IHRoZSBiZWdpbm5pbmcgKi8NCi0rCQlpIC09IGo7DQotKwkJaiAgPSAwOw0KLSsJCWMxID0gYzA7 DQotKwl9IHdoaWxlIChpIDwgbGYpOw0KLSsNCi0rCS8qIERlYWwgd2l0aCBsYXN0IGNhc2UgaWYg dW5yb2xsaW5nIGNhdXNlZCBhIG1pc2FsaWdubWVudCAqLw0KLSsJaWYgKGkgPT0gbGYgJiYgbGwg PT0gaisxICYmIGMxID09IGQxW2ldKSBnb3RvIE4wOw0KLSsNCi0rCXJldHVybiBCU1RSX0VSUjsN Ci0rfQ0KLSsNCi0rLyogIGludCBiaW5zdHJyIChjb25zdF9ic3RyaW5nIGIxLCBpbnQgcG9zLCBj b25zdF9ic3RyaW5nIGIyKQ0KLSsgKg0KLSsgKiAgU2VhcmNoIGZvciB0aGUgYnN0cmluZyBiMiBp biBiMSBzdGFydGluZyBmcm9tIHBvc2l0aW9uIHBvcywgYW5kIHNlYXJjaGluZyANCi0rICogIGJh Y2t3YXJkLiAgSWYgaXQgaXMgZm91bmQgdGhlbiByZXR1cm4gd2l0aCB0aGUgZmlyc3QgcG9zaXRp b24gd2hlcmUgaXQgaXMgDQotKyAqICBmb3VuZCwgb3RoZXJ3aXNlIHJldHVybiBCU1RSX0VSUi4g IE5vdGUgdGhhdCB0aGlzIGlzIGp1c3QgYSBicnV0ZSBmb3JjZSANCi0rICogIHN0cmluZyBzZWFy Y2hlciB0aGF0IGRvZXMgbm90IGF0dGVtcHQgY2xldmVyIHRoaW5ncyBsaWtlIHRoZSBCb3llci1N b29yZSANCi0rICogIHNlYXJjaCBhbGdvcml0aG0uICBCZWNhdXNlIG9mIHRoaXMgdGhlcmUgYXJl IG1hbnkgZGVnZW5lcmF0ZSBjYXNlcyB3aGVyZSANCi0rICogIHRoaXMgY2FuIHRha2UgbXVjaCBs b25nZXIgdGhhbiBpdCBuZWVkcyB0by4NCi0rICovDQotK2ludCBiaW5zdHJyIChjb25zdF9ic3Ry aW5nIGIxLCBpbnQgcG9zLCBjb25zdF9ic3RyaW5nIGIyKSB7DQotK2ludCBqLCBpLCBsOw0KLSt1 bnNpZ25lZCBjaGFyICogZDAsICogZDE7DQotKw0KLSsJaWYgKGIxID09IE5VTEwgfHwgYjEtPmRh dGEgPT0gTlVMTCB8fCBiMS0+c2xlbiA8IDAgfHwNCi0rCSAgICBiMiA9PSBOVUxMIHx8IGIyLT5k YXRhID09IE5VTEwgfHwgYjItPnNsZW4gPCAwKSByZXR1cm4gQlNUUl9FUlI7DQotKwlpZiAoYjEt PnNsZW4gPT0gcG9zICYmIGIyLT5zbGVuID09IDApIHJldHVybiBwb3M7DQotKwlpZiAoYjEtPnNs ZW4gPCBwb3MgfHwgcG9zIDwgMCkgcmV0dXJuIEJTVFJfRVJSOw0KLSsJaWYgKGIyLT5zbGVuID09 IDApIHJldHVybiBwb3M7DQotKw0KLSsJLyogT2J2aW91cyBhbGlhcyBjYXNlICovDQotKwlpZiAo YjEtPmRhdGEgPT0gYjItPmRhdGEgJiYgcG9zID09IDAgJiYgYjItPnNsZW4gPD0gYjEtPnNsZW4p IHJldHVybiAwOw0KLSsNCi0rCWkgPSBwb3M7DQotKwlpZiAoKGwgPSBiMS0+c2xlbiAtIGIyLT5z bGVuKSA8IDApIHJldHVybiBCU1RSX0VSUjsNCi0rDQotKwkvKiBJZiBubyBzcGFjZSB0byBmaW5k IHN1Y2ggYSBzdHJpbmcgdGhlbiBzbmFwIGJhY2sgKi8NCi0rCWlmIChsICsgMSA8PSBpKSBpID0g bDsNCi0rCWogPSAwOw0KLSsNCi0rCWQwID0gYjItPmRhdGE7DQotKwlkMSA9IGIxLT5kYXRhOw0K LSsJbCAgPSBiMi0+c2xlbjsNCi0rDQotKwlmb3IgKDs7KSB7DQotKwkJaWYgKGQwW2pdID09IGQx W2kgKyBqXSkgew0KLSsJCQlqICsrOw0KLSsJCQlpZiAoaiA+PSBsKSByZXR1cm4gaTsNCi0rCQl9 IGVsc2Ugew0KLSsJCQlpIC0tOw0KLSsJCQlpZiAoaSA8IDApIGJyZWFrOw0KLSsJCQlqPTA7DQot KwkJfQ0KLSsJfQ0KLSsNCi0rCXJldHVybiBCU1RSX0VSUjsNCi0rfQ0KLSsNCi0rLyogIGludCBi aW5zdHJjYXNlbGVzcyAoY29uc3RfYnN0cmluZyBiMSwgaW50IHBvcywgY29uc3RfYnN0cmluZyBi MikNCi0rICoNCi0rICogIFNlYXJjaCBmb3IgdGhlIGJzdHJpbmcgYjIgaW4gYjEgc3RhcnRpbmcg ZnJvbSBwb3NpdGlvbiBwb3MsIGFuZCBzZWFyY2hpbmcgDQotKyAqICBmb3J3YXJkIGJ1dCB3aXRo b3V0IHJlZ2FyZCB0byBjYXNlLiAgSWYgaXQgaXMgZm91bmQgdGhlbiByZXR1cm4gd2l0aCB0aGUg DQotKyAqICBmaXJzdCBwb3NpdGlvbiB3aGVyZSBpdCBpcyBmb3VuZCwgb3RoZXJ3aXNlIHJldHVy biBCU1RSX0VSUi4gIE5vdGUgdGhhdCANCi0rICogIHRoaXMgaXMganVzdCBhIGJydXRlIGZvcmNl IHN0cmluZyBzZWFyY2hlciB0aGF0IGRvZXMgbm90IGF0dGVtcHQgY2xldmVyIA0KLSsgKiAgdGhp bmdzIGxpa2UgdGhlIEJveWVyLU1vb3JlIHNlYXJjaCBhbGdvcml0aG0uICBCZWNhdXNlIG9mIHRo aXMgdGhlcmUgYXJlIA0KLSsgKiAgbWFueSBkZWdlbmVyYXRlIGNhc2VzIHdoZXJlIHRoaXMgY2Fu IHRha2UgbXVjaCBsb25nZXIgdGhhbiBpdCBuZWVkcyB0by4NCi0rICovDQotK2ludCBiaW5zdHJj YXNlbGVzcyAoY29uc3RfYnN0cmluZyBiMSwgaW50IHBvcywgY29uc3RfYnN0cmluZyBiMikgew0K LSBpbnQgaiwgaSwgbCwgbGw7DQotIHVuc2lnbmVkIGNoYXIgKiBkMCwgKiBkMTsNCi0gDQotQEAg LTY1MSw3ICsxMTY1LDcgQEAgdW5zaWduZWQgY2hhciAqIGQwLCAqIGQxOw0KLSAJaWYgKGwgPD0g cG9zKSByZXR1cm4gQlNUUl9FUlI7DQotIA0KLSAJLyogQW4gb2J2aW91cyBhbGlhcyBjYXNlICov DQotLQlpZiAoYjEtPmRhdGEgPT0gYjItPmRhdGEgJiYgcG9zID09IDApIHJldHVybiAwOw0KLSsJ aWYgKGIxLT5kYXRhID09IGIyLT5kYXRhICYmIHBvcyA9PSAwKSByZXR1cm4gQlNUUl9PSzsNCi0g DQotIAlpID0gcG9zOw0KLSAJaiA9IDA7DQotQEAgLTY2MSw3ICsxMTc1LDcgQEAgdW5zaWduZWQg Y2hhciAqIGQwLCAqIGQxOw0KLSAJbGwgPSBiMi0+c2xlbjsNCi0gDQotIAlmb3IgKDs7KSB7DQot LQkJaWYgKGQwW2pdID09IGQxW2kgKyBqXSkgew0KLSsJCWlmIChkMFtqXSA9PSBkMVtpICsgal0g fHwgZG93bmNhc2UgKGQwW2pdKSA9PSBkb3duY2FzZSAoZDFbaSArIGpdKSkgew0KLSAJCQlqICsr Ow0KLSAJCQlpZiAoaiA+PSBsbCkgcmV0dXJuIGk7DQotIAkJfSBlbHNlIHsNCi1AQCAtNjc0LDE2 ICsxMTg4LDE2IEBAIHVuc2lnbmVkIGNoYXIgKiBkMCwgKiBkMTsNCi0gCXJldHVybiBCU1RSX0VS UjsNCi0gfQ0KLSANCi0tLyogIGludCBiaW5zdHJyIChjb25zdCBic3RyaW5nIGIxLCBpbnQgcG9z LCBjb25zdCBic3RyaW5nIGIyKQ0KLSsvKiAgaW50IGJpbnN0cnJjYXNlbGVzcyAoY29uc3RfYnN0 cmluZyBiMSwgaW50IHBvcywgY29uc3RfYnN0cmluZyBiMikNCi0gICoNCi0gICogIFNlYXJjaCBm b3IgdGhlIGJzdHJpbmcgYjIgaW4gYjEgc3RhcnRpbmcgZnJvbSBwb3NpdGlvbiBwb3MsIGFuZCBz ZWFyY2hpbmcgDQotLSAqICBiYWNrd2FyZC4gIElmIGl0IGlzIGZvdW5kIHRoZW4gcmV0dXJuIHdp dGggdGhlIGZpcnN0IHBvc2l0aW9uIHdoZXJlIGl0IGlzIA0KLS0gKiAgZm91bmQsIG90aGVyd2lz ZSByZXR1cm4gQlNUUl9FUlIuICBOb3RlIHRoYXQgdGhpcyBpcyBqdXN0IGEgYnJ1dGUgZm9yY2Ug DQotLSAqICBzdHJpbmcgc2VhcmNoZXIgdGhhdCBkb2VzIG5vdCBhdHRlbXB0IGNsZXZlciB0aGlu Z3MgbGlrZSB0aGUgQm95ZXItTW9vcmUgDQotLSAqICBzZWFyY2ggYWxnb3JpdGhtLiAgQmVjYXVz ZSBvZiB0aGlzIHRoZXJlIGFyZSBtYW55IGRlZ2VuZXJhdGUgY2FzZXMgd2hlcmUgDQotLSAqICB0 aGlzIGNhbiB0YWtlIG11Y2ggbG9uZ2VyIHRoYW4gaXQgbmVlZHMgdG8uDQotKyAqICBiYWNrd2Fy ZCBidXQgd2l0aG91dCByZWdhcmQgdG8gY2FzZS4gIElmIGl0IGlzIGZvdW5kIHRoZW4gcmV0dXJu IHdpdGggdGhlIA0KLSsgKiAgZmlyc3QgcG9zaXRpb24gd2hlcmUgaXQgaXMgZm91bmQsIG90aGVy d2lzZSByZXR1cm4gQlNUUl9FUlIuICBOb3RlIHRoYXQgDQotKyAqICB0aGlzIGlzIGp1c3QgYSBi cnV0ZSBmb3JjZSBzdHJpbmcgc2VhcmNoZXIgdGhhdCBkb2VzIG5vdCBhdHRlbXB0IGNsZXZlciAN Ci0rICogIHRoaW5ncyBsaWtlIHRoZSBCb3llci1Nb29yZSBzZWFyY2ggYWxnb3JpdGhtLiAgQmVj YXVzZSBvZiB0aGlzIHRoZXJlIGFyZSANCi0rICogIG1hbnkgZGVnZW5lcmF0ZSBjYXNlcyB3aGVy ZSB0aGlzIGNhbiB0YWtlIG11Y2ggbG9uZ2VyIHRoYW4gaXQgbmVlZHMgdG8uDQotICAqLw0KLS1p bnQgYmluc3RyciAoY29uc3QgYnN0cmluZyBiMSwgaW50IHBvcywgY29uc3QgYnN0cmluZyBiMikg ew0KLStpbnQgYmluc3RycmNhc2VsZXNzIChjb25zdF9ic3RyaW5nIGIxLCBpbnQgcG9zLCBjb25z dF9ic3RyaW5nIGIyKSB7DQotIGludCBqLCBpLCBsOw0KLSB1bnNpZ25lZCBjaGFyICogZDAsICog ZDE7DQotIA0KLUBAIC02OTQsNyArMTIwOCw3IEBAIHVuc2lnbmVkIGNoYXIgKiBkMCwgKiBkMTsN Ci0gCWlmIChiMi0+c2xlbiA9PSAwKSByZXR1cm4gcG9zOw0KLSANCi0gCS8qIE9idmlvdXMgYWxp YXMgY2FzZSAqLw0KLS0JaWYgKGIxLT5kYXRhID09IGIyLT5kYXRhICYmIHBvcyA9PSAwICYmIGIy LT5zbGVuIDw9IGIxLT5zbGVuKSByZXR1cm4gMDsNCi0rCWlmIChiMS0+ZGF0YSA9PSBiMi0+ZGF0 YSAmJiBwb3MgPT0gMCAmJiBiMi0+c2xlbiA8PSBiMS0+c2xlbikgcmV0dXJuIEJTVFJfT0s7DQot IA0KLSAJaSA9IHBvczsNCi0gCWlmICgobCA9IGIxLT5zbGVuIC0gYjItPnNsZW4pIDwgMCkgcmV0 dXJuIEJTVFJfRVJSOw0KLUBAIC03MDgsNyArMTIyMiw3IEBAIHVuc2lnbmVkIGNoYXIgKiBkMCwg KiBkMTsNCi0gCWwgID0gYjItPnNsZW47DQotIA0KLSAJZm9yICg7Oykgew0KLS0JCWlmIChkMFtq XSA9PSBkMVtpICsgal0pIHsNCi0rCQlpZiAoZDBbal0gPT0gZDFbaSArIGpdIHx8IGRvd25jYXNl IChkMFtqXSkgPT0gZG93bmNhc2UgKGQxW2kgKyBqXSkpIHsNCi0gCQkJaiArKzsNCi0gCQkJaWYg KGogPj0gbCkgcmV0dXJuIGk7DQotIAkJfSBlbHNlIHsNCi1AQCAtNzIxLDc4ICsxMjM1LDk2IEBA IHVuc2lnbmVkIGNoYXIgKiBkMCwgKiBkMTsNCi0gCXJldHVybiBCU1RSX0VSUjsNCi0gfQ0KLSAN Ci0tLyogIGludCBic3RyY2hyIChjb25zdCBic3RyaW5nIGIsIGludCBjKQ0KLSsNCi0rLyogIGlu dCBic3RyY2hycCAoY29uc3RfYnN0cmluZyBiLCBpbnQgYywgaW50IHBvcykNCi0gICoNCi0tICog IFNlYXJjaCBmb3IgdGhlIGNoYXJhY3RlciBjIGluIGIgZm9yd2FyZHMgZnJvbSB0aGUgc3RhcnQg b2YgdGhlIHN0cmluZy4NCi0rICogIFNlYXJjaCBmb3IgdGhlIGNoYXJhY3RlciBjIGluIGIgZm9y d2FyZHMgZnJvbSB0aGUgcG9zaXRpb24gcG9zIA0KLSsgKiAgKGluY2x1c2l2ZSkuDQotICAqLw0K LS1pbnQgYnN0cmNociAoY29uc3QgYnN0cmluZyBiLCBpbnQgYykgew0KLStpbnQgYnN0cmNocnAg KGNvbnN0X2JzdHJpbmcgYiwgaW50IGMsIGludCBwb3MpIHsNCi0gdW5zaWduZWQgY2hhciAqIHA7 DQotIA0KLS0JaWYgKGIgPT0gTlVMTCB8fCBiLT5kYXRhID09IE5VTEwgfHwgYi0+c2xlbiA8PSAw KSByZXR1cm4gQlNUUl9FUlI7DQotLQlwID0gbWVtY2hyIChiLT5kYXRhLCAodW5zaWduZWQgY2hh cikgYywgYi0+c2xlbik7DQotKwlpZiAoYiA9PSBOVUxMIHx8IGItPmRhdGEgPT0gTlVMTCB8fCBi LT5zbGVuIDw9IHBvcyB8fCBwb3MgPCAwKSByZXR1cm4gQlNUUl9FUlI7DQotKwlwID0gKHVuc2ln bmVkIGNoYXIgKikgYnN0cl9fbWVtY2hyICgoYi0+ZGF0YSArIHBvcyksICh1bnNpZ25lZCBjaGFy KSBjLCAoYi0+c2xlbiAtIHBvcykpOw0KLSAJaWYgKHApIHJldHVybiAoaW50KSAocCAtIGItPmRh dGEpOw0KLSAJcmV0dXJuIEJTVFJfRVJSOw0KLSB9DQotIA0KLS0vKiAgaW50IGJzdHJyY2hyIChj b25zdCBic3RyaW5nIGIsIGludCBjKQ0KLSsvKiAgaW50IGJzdHJyY2hycCAoY29uc3RfYnN0cmlu ZyBiLCBpbnQgYywgaW50IHBvcykNCi0gICoNCi0tICogIFNlYXJjaCBmb3IgdGhlIGNoYXJhY3Rl ciBjIGluIGIgYmFja3dhcmRzIGZyb20gdGhlIGVuZCBvZiB0aGUgc3RyaW5nLg0KLSsgKiAgU2Vh cmNoIGZvciB0aGUgY2hhcmFjdGVyIGMgaW4gYiBiYWNrd2FyZHMgZnJvbSB0aGUgcG9zaXRpb24g cG9zIGluIHN0cmluZyANCi0rICogIChpbmNsdXNpdmUpLg0KLSAgKi8NCi0taW50IGJzdHJyY2hy IChjb25zdCBic3RyaW5nIGIsIGludCBjKSB7DQotK2ludCBic3RycmNocnAgKGNvbnN0X2JzdHJp bmcgYiwgaW50IGMsIGludCBwb3MpIHsNCi0gaW50IGk7DQotLQ0KLS0JaWYgKGIgPT0gTlVMTCB8 fCBiLT5kYXRhID09IE5VTEwgfHwgYi0+c2xlbiA8PSAwKSByZXR1cm4gQlNUUl9FUlI7DQotLQlm b3IgKGk9Yi0+c2xlbi0xOyBpID49IDA7IGktLSkgew0KLSsgDQotKwlpZiAoYiA9PSBOVUxMIHx8 IGItPmRhdGEgPT0gTlVMTCB8fCBiLT5zbGVuIDw9IHBvcyB8fCBwb3MgPCAwKSByZXR1cm4gQlNU Ul9FUlI7DQotKwlmb3IgKGk9cG9zOyBpID49IDA7IGktLSkgew0KLSAJCWlmIChiLT5kYXRhW2ld ID09ICh1bnNpZ25lZCBjaGFyKSBjKSByZXR1cm4gaTsNCi0gCX0NCi0gCXJldHVybiBCU1RSX0VS UjsNCi0gfQ0KLSANCi0tI2RlZmluZSBMT05HX0xPR19CSVRTX1FUWSAoNSkNCi0rI2lmICFkZWZp bmVkIChCU1RSTElCX0FHR1JFU1NJVkVfTUVNT1JZX0ZPUl9TUEVFRF9UUkFERU9GRikNCi0rI2Rl ZmluZSBMT05HX0xPR19CSVRTX1FUWSAoMykNCi0gI2RlZmluZSBMT05HX0JJVFNfUVRZICgxIDw8 IExPTkdfTE9HX0JJVFNfUVRZKQ0KLS0jZGVmaW5lIExPTkdfVFlQRSB1bnNpZ25lZCBsb25nDQot KyNkZWZpbmUgTE9OR19UWVBFIHVuc2lnbmVkIGNoYXINCi0gDQotLXN0cnVjdCBjaGFyRmllbGQg eyBMT05HX1RZUEUgY29udGVudFsoMSA8PCBDSEFSX0JJVCkgLyBMT05HX0JJVFNfUVRZXTsgfTsN Ci0rI2RlZmluZSBDRkNMRU4gKCgxIDw8IENIQVJfQklUKSAvIExPTkdfQklUU19RVFkpDQotK3N0 cnVjdCBjaGFyRmllbGQgeyBMT05HX1RZUEUgY29udGVudFtDRkNMRU5dOyB9Ow0KLSAjZGVmaW5l IHRlc3RJbkNoYXJGaWVsZChjZixjKSAoKGNmKS0+Y29udGVudFsoYykgPj4gTE9OR19MT0dfQklU U19RVFldICYgKCgobG9uZykxKSA8PCAoKGMpICYgKExPTkdfQklUU19RVFktMSkpKSkNCi0rI2Rl ZmluZSBzZXRJbkNoYXJGaWVsZChjZixpZHgpIHsgXA0KLSsJdW5zaWduZWQgaW50IGMgPSAodW5z aWduZWQgaW50KSAoaWR4KTsgXA0KLSsJKGNmKS0+Y29udGVudFtjID4+IExPTkdfTE9HX0JJVFNf UVRZXSB8PSAoTE9OR19UWVBFKSAoMXVsIDw8IChjICYgKExPTkdfQklUU19RVFktMSkpKTsgXA0K LSt9DQotKw0KLSsjZWxzZQ0KLSsNCi0rI2RlZmluZSBDRkNMRU4gKDEgPDwgQ0hBUl9CSVQpDQot K3N0cnVjdCBjaGFyRmllbGQgeyB1bnNpZ25lZCBjaGFyIGNvbnRlbnRbQ0ZDTEVOXTsgfTsNCi0r I2RlZmluZSB0ZXN0SW5DaGFyRmllbGQoY2YsYykgKChjZiktPmNvbnRlbnRbKHVuc2lnbmVkIGNo YXIpIChjKV0pDQotKyNkZWZpbmUgc2V0SW5DaGFyRmllbGQoY2YsaWR4KSAoY2YpLT5jb250ZW50 Wyh1bnNpZ25lZCBpbnQpIChpZHgpXSA9IH4wDQotKw0KLSsjZW5kaWYNCi0gDQotIC8qIENvbnZl cnQgYSBic3RyaW5nIHRvIGNoYXJGaWVsZCAqLw0KLS1zdGF0aWMgaW50IGJ1aWxkQ2hhckZpZWxk IChzdHJ1Y3QgY2hhckZpZWxkICogY2YsIGNvbnN0IGJzdHJpbmcgYjEpIHsNCi0rc3RhdGljIGlu dCBidWlsZENoYXJGaWVsZCAoc3RydWN0IGNoYXJGaWVsZCAqIGNmLCBjb25zdF9ic3RyaW5nIGIp IHsNCi0gaW50IGk7DQotLQlpZiAoYjEgPT0gTlVMTCB8fCBiMS0+ZGF0YSA9PSBOVUxMIHx8IGIx LT5zbGVuIDw9IDApIHJldHVybiBCU1RSX0VSUjsNCi0tCW1lbXNldCAoKHZvaWQgKikgJmNmLT5j b250ZW50LCAwLCBzaXplb2YgKHN0cnVjdCBjaGFyRmllbGQpKTsNCi0tCWZvciAoaT0wOyBpIDwg YjEtPnNsZW47IGkrKykgew0KLS0JCXVuc2lnbmVkIGludCBjID0gKHVuc2lnbmVkIGludCkgYjEt PmRhdGFbaV07DQotLQkJY2YtPmNvbnRlbnRbYyA+PiBMT05HX0xPR19CSVRTX1FUWV0gfD0gKChM T05HX1RZUEUpIDEpIDw8IChjICYgKExPTkdfQklUU19RVFktMSkpOw0KLSsJaWYgKGIgPT0gTlVM TCB8fCBiLT5kYXRhID09IE5VTEwgfHwgYi0+c2xlbiA8PSAwKSByZXR1cm4gQlNUUl9FUlI7DQot KwltZW1zZXQgKCh2b2lkICopIGNmLT5jb250ZW50LCAwLCBzaXplb2YgKHN0cnVjdCBjaGFyRmll bGQpKTsNCi0rCWZvciAoaT0wOyBpIDwgYi0+c2xlbjsgaSsrKSB7DQotKwkJc2V0SW5DaGFyRmll bGQgKGNmLCBiLT5kYXRhW2ldKTsNCi0gCX0NCi0tCXJldHVybiAwOw0KLSsJcmV0dXJuIEJTVFJf T0s7DQotIH0NCi0gDQotIHN0YXRpYyB2b2lkIGludmVydENoYXJGaWVsZCAoc3RydWN0IGNoYXJG aWVsZCAqIGNmKSB7DQotIGludCBpOw0KLS0JZm9yIChpPTA7IGkgPCAoKDEgPDwgQ0hBUl9CSVQp IC8gTE9OR19CSVRTX1FUWSk7IGkrKykgY2YtPmNvbnRlbnRbaV0gPSB+Y2YtPmNvbnRlbnRbaV07 DQotKwlmb3IgKGk9MDsgaSA8IENGQ0xFTjsgaSsrKSBjZi0+Y29udGVudFtpXSA9IH5jZi0+Y29u dGVudFtpXTsNCi0gfQ0KLSANCi0gLyogSW5uZXIgZW5naW5lIGZvciBiaW5jaHIgKi8NCi0gc3Rh dGljIGludCBiaW5jaHJDRiAoY29uc3QgdW5zaWduZWQgY2hhciAqIGRhdGEsIGludCBsZW4sIGlu dCBwb3MsIGNvbnN0IHN0cnVjdCBjaGFyRmllbGQgKiBjZikgew0KLSBpbnQgaTsNCi0gCWZvciAo aT1wb3M7IGkgPCBsZW47IGkrKykgew0KLS0JCXVuc2lnbmVkIGludCBjID0gKHVuc2lnbmVkIGlu dCkgZGF0YVtpXTsNCi0rCQl1bnNpZ25lZCBjaGFyIGMgPSAodW5zaWduZWQgY2hhcikgZGF0YVtp XTsNCi0gCQlpZiAodGVzdEluQ2hhckZpZWxkIChjZiwgYykpIHJldHVybiBpOw0KLSAJfQ0KLSAJ cmV0dXJuIEJTVFJfRVJSOw0KLSB9DQotIA0KLS0vKiAgaW50IGJpbmNociAoY29uc3QgYnN0cmlu ZyBiMCwgaW50IHBvcywgY29uc3QgYnN0cmluZyBiMSk7DQotKy8qICBpbnQgYmluY2hyIChjb25z dF9ic3RyaW5nIGIwLCBpbnQgcG9zLCBjb25zdF9ic3RyaW5nIGIxKTsNCi0gICoNCi0gICogIFNl YXJjaCBmb3IgdGhlIGZpcnN0IHBvc2l0aW9uIGluIGIwIHN0YXJ0aW5nIGZyb20gcG9zIG9yIGFm dGVyLCBpbiB3aGljaCANCi0gICogIG9uZSBvZiB0aGUgY2hhcmFjdGVycyBpbiBiMSBpcyBmb3Vu ZCBhbmQgcmV0dXJuIGl0LiAgSWYgc3VjaCBhIHBvc2l0aW9uIA0KLSAgKiAgZG9lcyBub3QgZXhp c3QgaW4gYjAsIHRoZW4gQlNUUl9FUlIgaXMgcmV0dXJuZWQuDQotICAqLw0KLS1pbnQgYmluY2hy IChjb25zdCBic3RyaW5nIGIwLCBpbnQgcG9zLCBjb25zdCBic3RyaW5nIGIxKSB7DQotK2ludCBi aW5jaHIgKGNvbnN0X2JzdHJpbmcgYjAsIGludCBwb3MsIGNvbnN0X2JzdHJpbmcgYjEpIHsNCi0g c3RydWN0IGNoYXJGaWVsZCBjaHJzOw0KLSAJaWYgKHBvcyA8IDAgfHwgYjAgPT0gTlVMTCB8fCBi MC0+ZGF0YSA9PSBOVUxMIHx8DQotIAkgICAgYjAtPnNsZW4gPD0gcG9zKSByZXR1cm4gQlNUUl9F UlI7DQotLQlpZiAoYnVpbGRDaGFyRmllbGQgKCZjaHJzLCBiMSkgPCAwKSByZXR1cm4gQlNUUl9F UlI7DQotKwlpZiAoMSA9PSBiMS0+c2xlbikgcmV0dXJuIGJzdHJjaHJwIChiMCwgYjEtPmRhdGFb MF0sIHBvcyk7DQotKwlpZiAoMCA+IGJ1aWxkQ2hhckZpZWxkICgmY2hycywgYjEpKSByZXR1cm4g QlNUUl9FUlI7DQotIAlyZXR1cm4gYmluY2hyQ0YgKGIwLT5kYXRhLCBiMC0+c2xlbiwgcG9zLCAm Y2hycyk7DQotIH0NCi0gDQotQEAgLTgwNiwyOCArMTMzOCwyOSBAQCBpbnQgaTsNCi0gCXJldHVy biBCU1RSX0VSUjsNCi0gfQ0KLSANCi0tLyogIGludCBiaW5jaHJyIChjb25zdCBic3RyaW5nIGIw LCBpbnQgcG9zLCBjb25zdCBic3RyaW5nIGIxKTsNCi0rLyogIGludCBiaW5jaHJyIChjb25zdF9i c3RyaW5nIGIwLCBpbnQgcG9zLCBjb25zdF9ic3RyaW5nIGIxKTsNCi0gICoNCi0gICogIFNlYXJj aCBmb3IgdGhlIGxhc3QgcG9zaXRpb24gaW4gYjAgbm8gZ3JlYXRlciB0aGFuIHBvcywgaW4gd2hp Y2ggb25lIG9mIA0KLSAgKiAgdGhlIGNoYXJhY3RlcnMgaW4gYjEgaXMgZm91bmQgYW5kIHJldHVy biBpdC4gIElmIHN1Y2ggYSBwb3NpdGlvbiBkb2VzIG5vdCANCi0gICogIGV4aXN0IGluIGIwLCB0 aGVuIEJTVFJfRVJSIGlzIHJldHVybmVkLg0KLSAgKi8NCi0taW50IGJpbmNocnIgKGNvbnN0IGJz dHJpbmcgYjAsIGludCBwb3MsIGNvbnN0IGJzdHJpbmcgYjEpIHsNCi0raW50IGJpbmNocnIgKGNv bnN0X2JzdHJpbmcgYjAsIGludCBwb3MsIGNvbnN0X2JzdHJpbmcgYjEpIHsNCi0gc3RydWN0IGNo YXJGaWVsZCBjaHJzOw0KLS0JaWYgKHBvcyA8IDAgfHwgYjAgPT0gTlVMTCB8fCBiMC0+ZGF0YSA9 PSBOVUxMIHx8DQotKwlpZiAocG9zIDwgMCB8fCBiMCA9PSBOVUxMIHx8IGIwLT5kYXRhID09IE5V TEwgfHwgYjEgPT0gTlVMTCB8fA0KLSAJICAgIGIwLT5zbGVuIDwgcG9zKSByZXR1cm4gQlNUUl9F UlI7DQotIAlpZiAocG9zID09IGIwLT5zbGVuKSBwb3MtLTsNCi0tCWlmIChidWlsZENoYXJGaWVs ZCAoJmNocnMsIGIxKSA8IDApIHJldHVybiBCU1RSX0VSUjsNCi0rCWlmICgxID09IGIxLT5zbGVu KSByZXR1cm4gYnN0cnJjaHJwIChiMCwgYjEtPmRhdGFbMF0sIHBvcyk7DQotKwlpZiAoMCA+IGJ1 aWxkQ2hhckZpZWxkICgmY2hycywgYjEpKSByZXR1cm4gQlNUUl9FUlI7DQotIAlyZXR1cm4gYmlu Y2hyckNGIChiMC0+ZGF0YSwgcG9zLCAmY2hycyk7DQotIH0NCi0gDQotLS8qICBpbnQgYm5pbmNo ciAoY29uc3QgYnN0cmluZyBiMCwgaW50IHBvcywgY29uc3QgYnN0cmluZyBiMSk7DQotKy8qICBp bnQgYm5pbmNociAoY29uc3RfYnN0cmluZyBiMCwgaW50IHBvcywgY29uc3RfYnN0cmluZyBiMSk7 DQotICAqDQotICAqICBTZWFyY2ggZm9yIHRoZSBmaXJzdCBwb3NpdGlvbiBpbiBiMCBzdGFydGlu ZyBmcm9tIHBvcyBvciBhZnRlciwgaW4gd2hpY2ggDQotICAqICBub25lIG9mIHRoZSBjaGFyYWN0 ZXJzIGluIGIxIGlzIGZvdW5kIGFuZCByZXR1cm4gaXQuICBJZiBzdWNoIGEgcG9zaXRpb24gDQot ICAqICBkb2VzIG5vdCBleGlzdCBpbiBiMCwgdGhlbiBCU1RSX0VSUiBpcyByZXR1cm5lZC4NCi0g ICovDQotLWludCBibmluY2hyIChjb25zdCBic3RyaW5nIGIwLCBpbnQgcG9zLCBjb25zdCBic3Ry aW5nIGIxKSB7DQotK2ludCBibmluY2hyIChjb25zdF9ic3RyaW5nIGIwLCBpbnQgcG9zLCBjb25z dF9ic3RyaW5nIGIxKSB7DQotIHN0cnVjdCBjaGFyRmllbGQgY2hyczsNCi0gCWlmIChwb3MgPCAw IHx8IGIwID09IE5VTEwgfHwgYjAtPmRhdGEgPT0gTlVMTCB8fCANCi0gCSAgICBiMC0+c2xlbiA8 PSBwb3MpIHJldHVybiBCU1RSX0VSUjsNCi1AQCAtODM2LDEzICsxMzY5LDEzIEBAIHN0cnVjdCBj aGFyRmllbGQgY2hyczsNCi0gCXJldHVybiBiaW5jaHJDRiAoYjAtPmRhdGEsIGIwLT5zbGVuLCBw b3MsICZjaHJzKTsNCi0gfQ0KLSANCi0tLyogIGludCBibmluY2hyciAoY29uc3QgYnN0cmluZyBi MCwgaW50IHBvcywgY29uc3QgYnN0cmluZyBiMSk7DQotKy8qICBpbnQgYm5pbmNocnIgKGNvbnN0 X2JzdHJpbmcgYjAsIGludCBwb3MsIGNvbnN0X2JzdHJpbmcgYjEpOw0KLSAgKg0KLSAgKiAgU2Vh cmNoIGZvciB0aGUgbGFzdCBwb3NpdGlvbiBpbiBiMCBubyBncmVhdGVyIHRoYW4gcG9zLCBpbiB3 aGljaCBub25lIG9mIA0KLSAgKiAgdGhlIGNoYXJhY3RlcnMgaW4gYjEgaXMgZm91bmQgYW5kIHJl dHVybiBpdC4gIElmIHN1Y2ggYSBwb3NpdGlvbiBkb2VzIG5vdCANCi0gICogIGV4aXN0IGluIGIw LCB0aGVuIEJTVFJfRVJSIGlzIHJldHVybmVkLg0KLSAgKi8NCi0taW50IGJuaW5jaHJyIChjb25z dCBic3RyaW5nIGIwLCBpbnQgcG9zLCBjb25zdCBic3RyaW5nIGIxKSB7DQotK2ludCBibmluY2hy ciAoY29uc3RfYnN0cmluZyBiMCwgaW50IHBvcywgY29uc3RfYnN0cmluZyBiMSkgew0KLSBzdHJ1 Y3QgY2hhckZpZWxkIGNocnM7DQotIAlpZiAocG9zIDwgMCB8fCBiMCA9PSBOVUxMIHx8IGIwLT5k YXRhID09IE5VTEwgfHwgDQotIAkgICAgYjAtPnNsZW4gPCBwb3MpIHJldHVybiBCU1RSX0VSUjsN Ci1AQCAtODU5LDQ0ICsxMzkyLDUwIEBAIHN0cnVjdCBjaGFyRmllbGQgY2hyczsNCi0gICogIGFw cGVuZGVkIGFzIG5lY2Vzc2FyeSB0byBtYWtlIHVwIHRoZSBnYXAgYmV0d2VlbiB0aGUgZW5kIG9m IGIwIGFuZCBwb3MuDQotICAqICBJZiBiMSBpcyBOVUxMLCBpdCBiZWhhdmVzIGFzIGlmIGl0IHdl cmUgYSAwLWxlbmd0aCBzdHJpbmcuDQotICAqLw0KLS1pbnQgYnNldHN0ciAoYnN0cmluZyBiMCwg aW50IHBvcywgY29uc3QgYnN0cmluZyBiMSwgdW5zaWduZWQgY2hhciBmaWxsKSB7DQotLWludCBk Ow0KLS1pbnQgbmV3bGVuOw0KLS0JaWYgKHBvcyA8IDAgfHwgYjAgPT0gTlVMTCB8fCBiMC0+c2xl biA8IDAgfHwgYjAtPm1sZW4gPCBiMC0+c2xlbikgcmV0dXJuIEJTVFJfRVJSOw0KLStpbnQgYnNl dHN0ciAoYnN0cmluZyBiMCwgaW50IHBvcywgY29uc3RfYnN0cmluZyBiMSwgdW5zaWduZWQgY2hh ciBmaWxsKSB7DQotK2ludCBkLCBuZXdsZW47DQotK3B0cmRpZmZfdCBwZDsNCi0rYnN0cmluZyBh dXggPSAoYnN0cmluZykgYjE7DQotKw0KLSsJaWYgKHBvcyA8IDAgfHwgYjAgPT0gTlVMTCB8fCBi MC0+c2xlbiA8IDAgfHwgTlVMTCA9PSBiMC0+ZGF0YSB8fCANCi0rCSAgICBiMC0+bWxlbiA8IGIw LT5zbGVuIHx8IGIwLT5tbGVuIDw9IDApIHJldHVybiBCU1RSX0VSUjsNCi0gCWlmIChiMSAhPSBO VUxMICYmIChiMS0+c2xlbiA8IDAgfHwgYjEtPmRhdGEgPT0gTlVMTCkpIHJldHVybiBCU1RSX0VS UjsNCi0gDQotKwlkID0gcG9zOw0KLSsNCi0gCS8qIEFsaWFzaW5nIGNhc2UgKi8NCi0tCWlmICgo YjEgIT0gTlVMTCkgJiYgKGIwLT5kYXRhID09IGIxLT5kYXRhKSAmJiAocG9zIDwgYjAtPnNsZW4p KSB7DQotLQkJYnN0cmluZyB0bXAgPSBic3RyY3B5IChiMSk7DQotLQkJaWYgKHRtcCA9PSBOVUxM KSByZXR1cm4gQlNUUl9FUlI7DQotLQkJZCA9IGJzZXRzdHIgKGIwLCBwb3MsIHRtcCwgZmlsbCk7 DQotLQkJYmRlc3Ryb3kgKHRtcCk7DQotLQkJcmV0dXJuIGQ7DQotKwlpZiAoTlVMTCAhPSBhdXgp IHsNCi0rCQlpZiAoKHBkID0gKHB0cmRpZmZfdCkgKGIxLT5kYXRhIC0gYjAtPmRhdGEpKSA+PSAw ICYmIHBkIDwgKHB0cmRpZmZfdCkgYjAtPm1sZW4pIHsNCi0rCQkJaWYgKE5VTEwgPT0gKGF1eCA9 IGJzdHJjcHkgKGIxKSkpIHJldHVybiBCU1RSX0VSUjsNCi0rCQl9DQotKwkJZCArPSBhdXgtPnNs ZW47DQotIAl9DQotIA0KLSAJLyogSW5jcmVhc2UgbWVtb3J5IHNpemUgaWYgbmVjZXNzYXJ5ICov DQotLQlkID0gcG9zICsgYmxlbmd0aCAoYjEpOw0KLS0JaWYgKGJhbGxvYyAoYjAsIGQgKyAxKSAh PSBCU1RSX09LKSByZXR1cm4gQlNUUl9FUlI7DQotKwlpZiAoYmFsbG9jIChiMCwgZCArIDEpICE9 IEJTVFJfT0spIHsNCi0rCQlpZiAoYXV4ICE9IGIxKSBiZGVzdHJveSAoYXV4KTsNCi0rCQlyZXR1 cm4gQlNUUl9FUlI7DQotKwl9DQotIA0KLSAJbmV3bGVuID0gYjAtPnNsZW47DQotIA0KLSAJLyog RmlsbCBpbiAiZmlsbCIgY2hhcmFjdGVyIGFzIG5lY2Vzc2FyeSAqLw0KLSAJaWYgKHBvcyA+IG5l d2xlbikgew0KLS0JCWludCBpOw0KLS0JCWZvciAoaSA9IGIwLT5zbGVuOyBpIDwgcG9zOyBpICsr KSBiMC0+ZGF0YVtpXSA9IGZpbGw7DQotKwkJYnN0cl9fbWVtc2V0IChiMC0+ZGF0YSArIGIwLT5z bGVuLCAoaW50KSBmaWxsLCAoc2l6ZV90KSAocG9zIC0gYjAtPnNsZW4pKTsNCi0gCQluZXdsZW4g PSBwb3M7DQotIAl9DQotIA0KLSAJLyogQ29weSBiMSB0byBwb3NpdGlvbiBwb3MgaW4gYjAuICov DQotLQlpZiAoYjEgIT0gTlVMTCkgew0KLS0JCWJCbG9ja0NvcHkgKChjaGFyICopIChiMC0+ZGF0 YSArIHBvcyksIChjaGFyICopIGIxLT5kYXRhLCBiMS0+c2xlbik7DQotKwlpZiAoYXV4ICE9IE5V TEwpIHsNCi0rCQliQmxvY2tDb3B5ICgoY2hhciAqKSAoYjAtPmRhdGEgKyBwb3MpLCAoY2hhciAq KSBhdXgtPmRhdGEsIGF1eC0+c2xlbik7DQotKwkJaWYgKGF1eCAhPSBiMSkgYmRlc3Ryb3kgKGF1 eCk7DQotIAl9DQotIA0KLSAJLyogSW5kaWNhdGUgdGhlIHBvdGVudGlhbGx5IGluY3JlYXNlZCBz aXplIG9mIGIwICovDQotIAlpZiAoZCA+IG5ld2xlbikgbmV3bGVuID0gZDsNCi0gDQotIAliMC0+ c2xlbiA9IG5ld2xlbjsNCi0tCWIwLT5kYXRhW25ld2xlbl0gPSAnXDAnOw0KLSsJYjAtPmRhdGFb bmV3bGVuXSA9ICh1bnNpZ25lZCBjaGFyKSAnXDAnOw0KLSANCi0gCXJldHVybiBCU1RSX09LOw0K LSB9DQotQEAgLTkwOCw0MCArMTQ0Nyw0NSBAQCBpbnQgbmV3bGVuOw0KLSAgKiAgbWFrZSB1cCB0 aGUgZ2FwIGJldHdlZW4gdGhlIGVuZCBvZiBiMSBhbmQgcG9zLiAgVW5saWtlIGJzZXRzdHIsIGJp bnNlcnQNCi0gICogIGRvZXMgbm90IGFsbG93IGIyIHRvIGJlIE5VTEwuDQotICAqLw0KLS1pbnQg Ymluc2VydCAoYnN0cmluZyBiMSwgaW50IHBvcywgY29uc3QgYnN0cmluZyBiMiwgdW5zaWduZWQg Y2hhciBmaWxsKSB7DQotK2ludCBiaW5zZXJ0IChic3RyaW5nIGIxLCBpbnQgcG9zLCBjb25zdF9i c3RyaW5nIGIyLCB1bnNpZ25lZCBjaGFyIGZpbGwpIHsNCi0gaW50IGQsIGw7DQotK3B0cmRpZmZf dCBwZDsNCi0rYnN0cmluZyBhdXggPSAoYnN0cmluZykgYjI7DQotIA0KLSAJaWYgKHBvcyA8IDAg fHwgYjEgPT0gTlVMTCB8fCBiMiA9PSBOVUxMIHx8IGIxLT5zbGVuIDwgMCB8fCANCi0tCSAgICBi Mi0+c2xlbiA8IDAgfHwgYjEtPm1sZW4gPCBiMS0+c2xlbikgcmV0dXJuIEJTVFJfRVJSOw0KLSsJ ICAgIGIyLT5zbGVuIDwgMCB8fCBiMS0+bWxlbiA8IGIxLT5zbGVuIHx8IGIxLT5tbGVuIDw9IDAp IHJldHVybiBCU1RSX0VSUjsNCi0gDQotIAkvKiBBbGlhc2luZyBjYXNlICovDQotLQlpZiAoKHVu c2lnbmVkIGludCkoYjItPmRhdGEgLSBiMS0+ZGF0YSkgPCAodW5zaWduZWQgaW50KWIxLT5zbGVu KSB7DQotLQkJYnN0cmluZyB0bXA7DQotLQkJZCA9IGJpbnNlcnQgKGIxLCBwb3MsIHRtcCA9IGJz dHJjcHkgKGIyKSwgZmlsbCk7DQotLQkJYmRlc3Ryb3kgKHRtcCk7DQotLQkJcmV0dXJuIGQ7DQot KwlpZiAoKHBkID0gKHB0cmRpZmZfdCkgKGIyLT5kYXRhIC0gYjEtPmRhdGEpKSA+PSAwICYmIHBk IDwgKHB0cmRpZmZfdCkgYjEtPm1sZW4pIHsNCi0rCQlpZiAoTlVMTCA9PSAoYXV4ID0gYnN0cmNw eSAoYjIpKSkgcmV0dXJuIEJTVFJfRVJSOw0KLSAJfQ0KLSANCi0gCS8qIENvbXB1dGUgdGhlIHR3 byBwb3NzaWJsZSBlbmQgcG9pbnRlcnMgKi8NCi0tCWQgPSBiMS0+c2xlbiArIGIyLT5zbGVuOw0K LS0JbCA9IHBvcyArIGIyLT5zbGVuOw0KLSsJZCA9IGIxLT5zbGVuICsgYXV4LT5zbGVuOw0KLSsJ bCA9IHBvcyArIGF1eC0+c2xlbjsNCi0rCWlmICgoZHxsKSA8IDApIHJldHVybiBCU1RSX0VSUjsN Ci0gDQotIAlpZiAobCA+IGQpIHsNCi0gCQkvKiBJbnNlcnRpbmcgcGFzdCB0aGUgZW5kIG9mIHRo ZSBzdHJpbmcgKi8NCi0tCQlpZiAoYmFsbG9jIChiMSwgbCArIDEpICE9IEJTVFJfT0spIHJldHVy biBCU1RSX0VSUjsNCi0tCQlmb3IgKGQgPSBiMS0+c2xlbjsgZCA8IHBvczsgZCsrKSBiMS0+ZGF0 YVtkXSA9IGZpbGw7DQotKwkJaWYgKGJhbGxvYyAoYjEsIGwgKyAxKSAhPSBCU1RSX09LKSB7DQot KwkJCWlmIChhdXggIT0gYjIpIGJkZXN0cm95IChhdXgpOw0KLSsJCQlyZXR1cm4gQlNUUl9FUlI7 DQotKwkJfQ0KLSsJCWJzdHJfX21lbXNldCAoYjEtPmRhdGEgKyBiMS0+c2xlbiwgKGludCkgZmls bCwgKHNpemVfdCkgKHBvcyAtIGIxLT5zbGVuKSk7DQotIAkJYjEtPnNsZW4gPSBsOw0KLSAJfSBl bHNlIHsNCi0gCQkvKiBJbnNlcnRpbmcgaW4gdGhlIG1pZGRsZSBvZiB0aGUgc3RyaW5nICovDQot LQkJaWYgKGJhbGxvYyAoYjEsIGQgKyAxKSAhPSBCU1RSX09LKSByZXR1cm4gQlNUUl9FUlI7DQot LQkJZm9yIChsID0gZCAtIDE7IGwgPj0gcG9zICsgYjItPnNsZW47IGwtLSkgew0KLS0JCQliMS0+ ZGF0YVtsXSA9IGIxLT5kYXRhW2wgLSBiMi0+c2xlbl07DQotKwkJaWYgKGJhbGxvYyAoYjEsIGQg KyAxKSAhPSBCU1RSX09LKSB7DQotKwkJCWlmIChhdXggIT0gYjIpIGJkZXN0cm95IChhdXgpOw0K LSsJCQlyZXR1cm4gQlNUUl9FUlI7DQotIAkJfQ0KLSsJCWJCbG9ja0NvcHkgKGIxLT5kYXRhICsg bCwgYjEtPmRhdGEgKyBwb3MsIGQgLSBsKTsNCi0gCQliMS0+c2xlbiA9IGQ7DQotIAl9DQotLQli QmxvY2tDb3B5IChiMS0+ZGF0YSArIHBvcywgYjItPmRhdGEsIGIyLT5zbGVuKTsNCi0tCWIxLT5k YXRhW2IxLT5zbGVuXSA9ICdcMCc7DQotLQlyZXR1cm4gMDsNCi0rCWJCbG9ja0NvcHkgKGIxLT5k YXRhICsgcG9zLCBhdXgtPmRhdGEsIGF1eC0+c2xlbik7DQotKwliMS0+ZGF0YVtiMS0+c2xlbl0g PSAodW5zaWduZWQgY2hhcikgJ1wwJzsNCi0rCWlmIChhdXggIT0gYjIpIGJkZXN0cm95IChhdXgp Ow0KLSsJcmV0dXJuIEJTVFJfT0s7DQotIH0NCi0gDQotIC8qICBpbnQgYnJlcGxhY2UgKGJzdHJp bmcgYjEsIGludCBwb3MsIGludCBsZW4sIGJzdHJpbmcgYjIsIA0KLUBAIC05NTAsMTY3ICsxNDk0 LDIwMyBAQCBpbnQgZCwgbDsNCi0gICogIFJlcGxhY2UgYSBzZWN0aW9uIG9mIGEgc3RyaW5nIGZy b20gcG9zIGZvciBhIGxlbmd0aCBsZW4gd2l0aCB0aGUgc3RyaW5nIGIyLg0KLSAgKiAgZmlsbCBp cyB1c2VkIGlzIHBvcyA+IGIxLT5zbGVuLg0KLSAgKi8NCi0taW50IGJyZXBsYWNlIChic3RyaW5n IGIxLCBpbnQgcG9zLCBpbnQgbGVuLCBjb25zdCBic3RyaW5nIGIyLCANCi0raW50IGJyZXBsYWNl IChic3RyaW5nIGIxLCBpbnQgcG9zLCBpbnQgbGVuLCBjb25zdF9ic3RyaW5nIGIyLCANCi0gCQkJ ICB1bnNpZ25lZCBjaGFyIGZpbGwpIHsNCi0taW50IHJldDsNCi0tDQotLQlpZiAocG9zIDwgMCB8 fCBsZW4gPCAwIHx8IGIxID09IE5VTEwgfHwgYjIgPT0gTlVMTCB8fCANCi0tCSAgICBiMS0+ZGF0 YSA9PSBOVUxMIHx8IGIyLT5kYXRhID09IE5VTEwgfHwgYjEtPnNsZW4gPCAwIHx8DQotLQkgICAg YjItPnNsZW4gPCAwIHx8IGIxLT5tbGVuIDwgYjEtPnNsZW4pIHJldHVybiBCU1RSX0VSUjsNCi0r aW50IHBsLCByZXQ7DQotK3B0cmRpZmZfdCBwZDsNCi0rYnN0cmluZyBhdXggPSAoYnN0cmluZykg YjI7DQotKw0KLSsJaWYgKHBvcyA8IDAgfHwgbGVuIDwgMCB8fCAocGwgPSBwb3MgKyBsZW4pIDwg MCB8fCBiMSA9PSBOVUxMIHx8IA0KLSsJICAgIGIyID09IE5VTEwgfHwgYjEtPmRhdGEgPT0gTlVM TCB8fCBiMi0+ZGF0YSA9PSBOVUxMIHx8IA0KLSsJICAgIGIxLT5zbGVuIDwgMCB8fCBiMi0+c2xl biA8IDAgfHwgYjEtPm1sZW4gPCBiMS0+c2xlbiB8fA0KLSsJICAgIGIxLT5tbGVuIDw9IDApIHJl dHVybiBCU1RSX0VSUjsNCi0gDQotIAkvKiBTdHJhZGRsZXMgdGhlIGVuZD8gKi8NCi0tCWlmIChw b3MgKyBsZW4gPj0gYjEtPnNsZW4pIHsNCi0rCWlmIChwbCA+PSBiMS0+c2xlbikgew0KLSAJCWlm ICgocmV0ID0gYnNldHN0ciAoYjEsIHBvcywgYjIsIGZpbGwpKSA8IDApIHJldHVybiByZXQ7DQot IAkJaWYgKHBvcyArIGIyLT5zbGVuIDwgYjEtPnNsZW4pIHsNCi0gCQkJYjEtPnNsZW4gPSBwb3Mg KyBiMi0+c2xlbjsNCi0tCQkJYjEtPmRhdGFbYjEtPnNsZW5dID0gJ1wwJzsNCi0rCQkJYjEtPmRh dGFbYjEtPnNsZW5dID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotIAkJfQ0KLSAJCXJldHVybiBy ZXQ7DQotIAl9DQotIA0KLSAJLyogQWxpYXNpbmcgY2FzZSAqLw0KLS0JaWYgKCh1bnNpZ25lZCBp bnQpKGIyLT5kYXRhIC0gYjEtPmRhdGEpIDwgKHVuc2lnbmVkIGludCliMS0+c2xlbikgew0KLS0J CWJzdHJpbmcgdG1wOw0KLS0JCXJldCA9IGJyZXBsYWNlIChiMSwgcG9zLCBsZW4sIHRtcCA9IGJz dHJjcHkgKGIyKSwgZmlsbCk7DQotLQkJYmRlc3Ryb3kgKHRtcCk7DQotLQkJcmV0dXJuIHJldDsN Ci0rCWlmICgocGQgPSAocHRyZGlmZl90KSAoYjItPmRhdGEgLSBiMS0+ZGF0YSkpID49IDAgJiYg cGQgPCAocHRyZGlmZl90KSBiMS0+c2xlbikgew0KLSsJCWlmIChOVUxMID09IChhdXggPSBic3Ry Y3B5IChiMikpKSByZXR1cm4gQlNUUl9FUlI7DQotIAl9DQotIA0KLS0JaWYgKGIyLT5zbGVuID4g bGVuKSB7DQotLQkJaWYgKGJhbGxvYyAoYjEsIGIxLT5zbGVuICsgYjItPnNsZW4gLSBsZW4pICE9 IEJTVFJfT0spIHJldHVybiBCU1RSX0VSUjsNCi0rCWlmIChhdXgtPnNsZW4gPiBsZW4pIHsNCi0r CQlpZiAoYmFsbG9jIChiMSwgYjEtPnNsZW4gKyBhdXgtPnNsZW4gLSBsZW4pICE9IEJTVFJfT0sp IHsNCi0rCQkJaWYgKGF1eCAhPSBiMikgYmRlc3Ryb3kgKGF1eCk7DQotKwkJCXJldHVybiBCU1RS X0VSUjsNCi0rCQl9DQotIAl9DQotIA0KLS0JaWYgKGIyLT5zbGVuICE9IGxlbikgbWVtbW92ZSAo YjEtPmRhdGEgKyBwb3MgKyBiMi0+c2xlbiwgYjEtPmRhdGEgKyBwb3MgKyBsZW4sIGIxLT5zbGVu IC0gKHBvcyArIGxlbikpOw0KLS0JbWVtY3B5IChiMS0+ZGF0YSArIHBvcywgYjItPmRhdGEsIGIy LT5zbGVuKTsNCi0tCWIxLT5zbGVuICs9IGIyLT5zbGVuIC0gbGVuOw0KLS0JYjEtPmRhdGFbYjEt PnNsZW5dID0gJ1wwJzsNCi0rCWlmIChhdXgtPnNsZW4gIT0gbGVuKSBic3RyX19tZW1tb3ZlIChi MS0+ZGF0YSArIHBvcyArIGF1eC0+c2xlbiwgYjEtPmRhdGEgKyBwb3MgKyBsZW4sIGIxLT5zbGVu IC0gKHBvcyArIGxlbikpOw0KLSsJYnN0cl9fbWVtY3B5IChiMS0+ZGF0YSArIHBvcywgYXV4LT5k YXRhLCBhdXgtPnNsZW4pOw0KLSsJYjEtPnNsZW4gKz0gYXV4LT5zbGVuIC0gbGVuOw0KLSsJYjEt PmRhdGFbYjEtPnNsZW5dID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotKwlpZiAoYXV4ICE9IGIy KSBiZGVzdHJveSAoYXV4KTsNCi0gCXJldHVybiBCU1RSX09LOw0KLSB9DQotIA0KLS0vKiAgaW50 IGJmaW5kcmVwbGFjZSAoYnN0cmluZyBiLCBjb25zdCBic3RyaW5nIGZpbmQsIGNvbnN0IGJzdHJp bmcgcmVwbCwgDQotKy8qICBpbnQgYmZpbmRyZXBsYWNlIChic3RyaW5nIGIsIGNvbnN0X2JzdHJp bmcgZmluZCwgY29uc3RfYnN0cmluZyByZXBsLCANCi0gICogICAgICAgICAgICAgICAgICAgIGlu dCBwb3MpDQotICAqDQotICAqICBSZXBsYWNlIGFsbCBvY2N1cnJlbmNlcyBvZiBhIGZpbmQgc3Ry aW5nIHdpdGggYSByZXBsYWNlIHN0cmluZyBhZnRlciBhDQotICAqICBnaXZlbiBwb2ludCBpbiBh IGJzdHJpbmcuDQotICAqLw0KLS1pbnQgYmZpbmRyZXBsYWNlIChic3RyaW5nIGIsIGNvbnN0IGJz dHJpbmcgZmluZCwgY29uc3QgYnN0cmluZyByZXBsLCBpbnQgcG9zKSB7DQotKw0KLSt0eXBlZGVm IGludCAoKmluc3RyX2ZucHRyKSAoY29uc3RfYnN0cmluZyBzMSwgaW50IHBvcywgY29uc3RfYnN0 cmluZyBzMik7DQotKw0KLStzdGF0aWMgaW50IGZpbmRyZXBsYWNlZW5naW5lIChic3RyaW5nIGIs IGNvbnN0X2JzdHJpbmcgZmluZCwgY29uc3RfYnN0cmluZyByZXBsLCBpbnQgcG9zLCBpbnN0cl9m bnB0ciBpbnN0cikgew0KLSBpbnQgaSwgcmV0LCBzbGVuLCBtbGVuLCBkZWx0YSwgYWNjOw0KLSBp bnQgKiBkOw0KLStpbnQgc3RhdGljX2RbMzJdOw0KLStwdHJkaWZmX3QgcGQ7DQotK2JzdHJpbmcg YXV4ZiA9IChic3RyaW5nKSBmaW5kOw0KLStic3RyaW5nIGF1eHIgPSAoYnN0cmluZykgcmVwbDsN Ci0gDQotIAlpZiAoYiA9PSBOVUxMIHx8IGItPmRhdGEgPT0gTlVMTCB8fCBmaW5kID09IE5VTEwg fHwNCi0gCSAgICBmaW5kLT5kYXRhID09IE5VTEwgfHwgcmVwbCA9PSBOVUxMIHx8IHJlcGwtPmRh dGEgPT0gTlVMTCB8fCANCi0gCSAgICBwb3MgPCAwIHx8IGZpbmQtPnNsZW4gPD0gMCB8fCBiLT5t bGVuIDwgMCB8fCBiLT5zbGVuID4gYi0+bWxlbiB8fCANCi0tCSAgICBiLT5zbGVuIDwgMCB8fCBy ZXBsLT5zbGVuIDwgMCkgcmV0dXJuIEJTVFJfRVJSOw0KLS0JaWYgKHBvcyA+IGItPnNsZW4gLSBm aW5kLT5zbGVuKSByZXR1cm4gMDsNCi0rCSAgICBiLT5tbGVuIDw9IDAgfHwgYi0+c2xlbiA8IDAg fHwgcmVwbC0+c2xlbiA8IDApIHJldHVybiBCU1RSX0VSUjsNCi0rCWlmIChwb3MgPiBiLT5zbGVu IC0gZmluZC0+c2xlbikgcmV0dXJuIEJTVFJfT0s7DQotIA0KLSAJLyogQWxpYXMgd2l0aCBmaW5k IHN0cmluZyAqLw0KLS0JaSA9IGZpbmQtPmRhdGEgLSBiLT5kYXRhOw0KLS0JaWYgKHBvcyAtIGZp bmQtPnNsZW4gPCBpICYmIGkgPCBiLT5zbGVuKSB7DQotLQkJYnN0cmluZyB0Ow0KLS0JCWkgPSBi ZmluZHJlcGxhY2UgKGIsIHQgPSBic3RyY3B5IChmaW5kKSwgcmVwbCwgcG9zKTsNCi0tCQliZGVz dHJveSAodCk7DQotLQkJcmV0dXJuIGk7DQotKwlwZCA9IChwdHJkaWZmX3QpIChmaW5kLT5kYXRh IC0gYi0+ZGF0YSk7DQotKwlpZiAoKHB0cmRpZmZfdCkgKHBvcyAtIGZpbmQtPnNsZW4pIDwgcGQg JiYgcGQgPCAocHRyZGlmZl90KSBiLT5zbGVuKSB7DQotKwkJaWYgKE5VTEwgPT0gKGF1eGYgPSBi c3RyY3B5IChmaW5kKSkpIHJldHVybiBCU1RSX0VSUjsNCi0gCX0NCi0gDQotIAkvKiBBbGlhcyB3 aXRoIHJlcGwgc3RyaW5nICovDQotLQlpID0gcmVwbC0+ZGF0YSAtIGItPmRhdGE7DQotLQlpZiAo cG9zIC0gcmVwbC0+c2xlbiA8IGkgJiYgaSA8IGItPnNsZW4pIHsNCi0tCQlic3RyaW5nIHQ7DQot LQkJaSA9IGJmaW5kcmVwbGFjZSAoYiwgZmluZCwgdCA9IGJzdHJjcHkgKHJlcGwpLCBwb3MpOw0K LS0JCWJkZXN0cm95ICh0KTsNCi0tCQlyZXR1cm4gaTsNCi0rCXBkID0gKHB0cmRpZmZfdCkgKHJl cGwtPmRhdGEgLSBiLT5kYXRhKTsNCi0rCWlmICgocHRyZGlmZl90KSAocG9zIC0gcmVwbC0+c2xl bikgPCBwZCAmJiBwZCA8IChwdHJkaWZmX3QpIGItPnNsZW4pIHsNCi0rCQlpZiAoTlVMTCA9PSAo YXV4ciA9IGJzdHJjcHkgKHJlcGwpKSkgew0KLSsJCQlpZiAoYXV4ZiAhPSBmaW5kKSBiZGVzdHJv eSAoYXV4Zik7DQotKwkJCXJldHVybiBCU1RSX0VSUjsNCi0rCQl9DQotIAl9DQotIA0KLS0JZGVs dGEgPSBmaW5kLT5zbGVuIC0gcmVwbC0+c2xlbjsNCi0rCWRlbHRhID0gYXV4Zi0+c2xlbiAtIGF1 eHItPnNsZW47DQotIA0KLSAJLyogaW4tcGxhY2UgcmVwbGFjZW1lbnQgc2luY2UgZmluZCBhbmQg cmVwbGFjZSBzdHJpbmdzIGFyZSBvZiBlcXVhbCANCi0gCSAgIGxlbmd0aCAqLw0KLSAJaWYgKGRl bHRhID09IDApIHsNCi0tCQl3aGlsZSAoKHBvcyA9IGJpbnN0ciAoYiwgcG9zLCBmaW5kKSkgPj0g MCkgew0KLS0JCQltZW1jcHkgKGItPmRhdGEgKyBwb3MsIHJlcGwtPmRhdGEsIHJlcGwtPnNsZW4p Ow0KLS0JCQlwb3MgKz0gZmluZC0+c2xlbjsNCi0rCQl3aGlsZSAoKHBvcyA9IGluc3RyIChiLCBw b3MsIGF1eGYpKSA+PSAwKSB7DQotKwkJCWJzdHJfX21lbWNweSAoYi0+ZGF0YSArIHBvcywgYXV4 ci0+ZGF0YSwgYXV4ci0+c2xlbik7DQotKwkJCXBvcyArPSBhdXhmLT5zbGVuOw0KLSAJCX0NCi0t CQlyZXR1cm4gMDsNCi0rCQlpZiAoYXV4ZiAhPSBmaW5kKSBiZGVzdHJveSAoYXV4Zik7DQotKwkJ aWYgKGF1eHIgIT0gcmVwbCkgYmRlc3Ryb3kgKGF1eHIpOw0KLSsJCXJldHVybiBCU1RSX09LOw0K LSAJfQ0KLSANCi0tCS8qIHNocmlua2luZyByZXBsYWNlbWVudCBzaW5jZSBmaW5kLT5zbGVuID4g cmVwbC0+c2xlbiAqLw0KLSsJLyogc2hyaW5raW5nIHJlcGxhY2VtZW50IHNpbmNlIGF1eGYtPnNs ZW4gPiBhdXhyLT5zbGVuICovDQotIAlpZiAoZGVsdGEgPiAwKSB7DQotIAkJYWNjID0gMDsNCi0g DQotLQkJd2hpbGUgKChpID0gYmluc3RyIChiLCBwb3MsIGZpbmQpKSA+PSAwKSB7DQotLQkJCWlm IChhY2MgJiYgaSA+IHBvcykgew0KLS0JCQkJbWVtbW92ZSAoYi0+ZGF0YSArIHBvcyAtIGFjYywg Yi0+ZGF0YSArIHBvcywgDQotLQkJCQkgICAgICAgICBpIC0gcG9zKTsNCi0tCQkJfQ0KLS0JCQlp ZiAocmVwbC0+c2xlbikgew0KLS0JCQkJbWVtbW92ZSAoYi0+ZGF0YSArIGkgLSBhY2MsIHJlcGwt PmRhdGEsIA0KLS0JCQkJICAgICAgICAgcmVwbC0+c2xlbik7DQotLQkJCX0NCi0rCQl3aGlsZSAo KGkgPSBpbnN0ciAoYiwgcG9zLCBhdXhmKSkgPj0gMCkgew0KLSsJCQlpZiAoYWNjICYmIGkgPiBw b3MpDQotKwkJCQlic3RyX19tZW1tb3ZlIChiLT5kYXRhICsgcG9zIC0gYWNjLCBiLT5kYXRhICsg cG9zLCBpIC0gcG9zKTsNCi0rCQkJaWYgKGF1eHItPnNsZW4pDQotKwkJCQlic3RyX19tZW1jcHkg KGItPmRhdGEgKyBpIC0gYWNjLCBhdXhyLT5kYXRhLCBhdXhyLT5zbGVuKTsNCi0gCQkJYWNjICs9 IGRlbHRhOw0KLS0JCQlwb3MgPSBpICsgZmluZC0+c2xlbjsNCi0rCQkJcG9zID0gaSArIGF1eGYt PnNsZW47DQotIAkJfQ0KLSANCi0gCQlpZiAoYWNjKSB7DQotIAkJCWkgPSBiLT5zbGVuOw0KLS0J CQlpZiAoaSA+IHBvcykgew0KLS0JCQkJbWVtbW92ZSAoYi0+ZGF0YSArIHBvcyAtIGFjYywgYi0+ ZGF0YSArIHBvcywgDQotLQkJCQkgICAgICAgICBpIC0gcG9zKTsNCi0tCQkJfQ0KLSsJCQlpZiAo aSA+IHBvcykNCi0rCQkJCWJzdHJfX21lbW1vdmUgKGItPmRhdGEgKyBwb3MgLSBhY2MsIGItPmRh dGEgKyBwb3MsIGkgLSBwb3MpOw0KLSAJCQliLT5zbGVuIC09IGFjYzsNCi0tCQkJYi0+ZGF0YVti LT5zbGVuXSA9ICdcMCc7DQotKwkJCWItPmRhdGFbYi0+c2xlbl0gPSAodW5zaWduZWQgY2hhcikg J1wwJzsNCi0gCQl9DQotIA0KLS0JCXJldHVybiAwOw0KLSsJCWlmIChhdXhmICE9IGZpbmQpIGJk ZXN0cm95IChhdXhmKTsNCi0rCQlpZiAoYXV4ciAhPSByZXBsKSBiZGVzdHJveSAoYXV4cik7DQot KwkJcmV0dXJuIEJTVFJfT0s7DQotIAl9DQotIA0KLSAJLyogZXhwYW5kaW5nIHJlcGxhY2VtZW50 IHNpbmNlIGZpbmQtPnNsZW4gPCByZXBsLT5zbGVuLiAgSXRzIGEgbG90IA0KLSAJICAgbW9yZSBj b21wbGljYXRlZC4gKi8NCi0gDQotLQltbGVuID0gODsNCi0tCWQgPSAoaW50ICopIG1hbGxvYyAo c2l6ZW9mIChpbnQgKikgKiBtbGVuKTsNCi0tCWlmIChkID09IE5VTEwpIHJldHVybiBCU1RSX0VS UjsNCi0tCXNsZW4gPSAwOw0KLSsJbWxlbiA9IDMyOw0KLSsJZCA9IChpbnQgKikgc3RhdGljX2Q7 IC8qIEF2b2lkIG1hbGxvYyBmb3IgdHJpdmlhbCBjYXNlcyAqLw0KLSsJYWNjID0gc2xlbiA9IDA7 DQotIA0KLS0Jd2hpbGUgKChwb3MgPSBiaW5zdHIgKGIsIHBvcywgZmluZCkpID49IDApIHsNCi0t CQlpbnQgKiB0Ow0KLSsJd2hpbGUgKChwb3MgPSBpbnN0ciAoYiwgcG9zLCBhdXhmKSkgPj0gMCkg ew0KLSAJCWlmIChzbGVuICsgMSA+PSBtbGVuKSB7DQotKwkJCWludCBzbDsNCi0rCQkJaW50ICog dDsNCi0gCQkJbWxlbiArPSBtbGVuOw0KLS0JCQl0ID0gKGludCAqKSByZWFsbG9jIChkLCBzaXpl b2YgKGludCAqKSAqIG1sZW4pOw0KLS0JCQlpZiAodCA9PSBOVUxMKSB7DQotLQkJCQlmcmVlIChk KTsNCi0tCQkJCXJldHVybiBCU1RSX0VSUjsNCi0rCQkJc2wgPSBzaXplb2YgKGludCAqKSAqIG1s ZW47DQotKwkJCWlmIChzdGF0aWNfZCA9PSBkKSBkID0gTlVMTDsNCi0rCQkJaWYgKHNsIDwgbWxl biB8fCBOVUxMID09ICh0ID0gKGludCAqKSBic3RyX19yZWFsbG9jIChkLCBzbCkpKSB7DQotKwkJ CQlyZXQgPSBCU1RSX0VSUjsNCi0rCQkJCWdvdG8gZG9uZTsNCi0gCQkJfQ0KLSsJCQlpZiAoTlVM TCA9PSBkKSBic3RyX19tZW1jcHkgKHQsIHN0YXRpY19kLCBzaXplb2YgKHN0YXRpY19kKSk7DQot IAkJCWQgPSB0Ow0KLSAJCX0NCi0gCQlkW3NsZW5dID0gcG9zOw0KLSAJCXNsZW4rKzsNCi0tCQlw b3MgKz0gZmluZC0+c2xlbjsNCi0rCQlhY2MgLT0gZGVsdGE7DQotKwkJcG9zICs9IGF1eGYtPnNs ZW47DQotKwkJaWYgKHBvcyA8IDAgfHwgYWNjIDwgMCkgew0KLSsJCQlyZXQgPSBCU1RSX0VSUjsN Ci0rCQkJZ290byBkb25lOw0KLSsJCX0NCi0gCX0NCi0gCWRbc2xlbl0gPSBiLT5zbGVuOw0KLSAN Ci0tCWFjYyA9IHNsZW4gKiAoLWRlbHRhKTsNCi0gCWlmIChCU1RSX09LID09IChyZXQgPSBiYWxs b2MgKGIsIGItPnNsZW4gKyBhY2MgKyAxKSkpIHsNCi0gCQliLT5zbGVuICs9IGFjYzsNCi0gCQlm b3IgKGkgPSBzbGVuLTE7IGkgPj0gMDsgaS0tKSB7DQotIAkJCWludCBzLCBsOw0KLS0JCQlzID0g ZFtpXSArIGZpbmQtPnNsZW47DQotKwkJCXMgPSBkW2ldICsgYXV4Zi0+c2xlbjsNCi0gCQkJbCA9 IGRbaSsxXSAtIHM7DQotIAkJCWlmIChsKSB7DQotLQkJCQltZW1tb3ZlIChiLT5kYXRhICsgcyAr IGFjYywgYi0+ZGF0YSArIHMsIGwpOw0KLSsJCQkJYnN0cl9fbWVtbW92ZSAoYi0+ZGF0YSArIHMg KyBhY2MsIGItPmRhdGEgKyBzLCBsKTsNCi0gCQkJfQ0KLS0JCQlpZiAocmVwbC0+c2xlbikgew0K LS0JCQkJbWVtbW92ZSAoYi0+ZGF0YSArIHMgKyBhY2MgLSByZXBsLT5zbGVuLCANCi0tCQkJCSAg ICAgICAgIHJlcGwtPmRhdGEsIHJlcGwtPnNsZW4pOw0KLSsJCQlpZiAoYXV4ci0+c2xlbikgew0K LSsJCQkJYnN0cl9fbWVtbW92ZSAoYi0+ZGF0YSArIHMgKyBhY2MgLSBhdXhyLT5zbGVuLCANCi0r CQkJCSAgICAgICAgIGF1eHItPmRhdGEsIGF1eHItPnNsZW4pOw0KLSAJCQl9DQotIAkJCWFjYyAr PSBkZWx0YTsJCQ0KLSAJCX0NCi0tCQliLT5kYXRhW2ItPnNsZW5dID0gJ1wwJzsNCi0rCQliLT5k YXRhW2ItPnNsZW5dID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotIAl9DQotIA0KLS0JZnJlZSAo ZCk7DQotKwlkb25lOjsNCi0rCWlmIChzdGF0aWNfZCA9PSBkKSBkID0gTlVMTDsNCi0rCWJzdHJf X2ZyZWUgKGQpOw0KLSsJaWYgKGF1eGYgIT0gZmluZCkgYmRlc3Ryb3kgKGF1eGYpOw0KLSsJaWYg KGF1eHIgIT0gcmVwbCkgYmRlc3Ryb3kgKGF1eHIpOw0KLSAJcmV0dXJuIHJldDsNCi0gfQ0KLSAN Ci0rLyogIGludCBiZmluZHJlcGxhY2UgKGJzdHJpbmcgYiwgY29uc3RfYnN0cmluZyBmaW5kLCBj b25zdF9ic3RyaW5nIHJlcGwsIA0KLSsgKiAgICAgICAgICAgICAgICAgICAgaW50IHBvcykNCi0r ICoNCi0rICogIFJlcGxhY2UgYWxsIG9jY3VycmVuY2VzIG9mIGEgZmluZCBzdHJpbmcgd2l0aCBh IHJlcGxhY2Ugc3RyaW5nIGFmdGVyIGENCi0rICogIGdpdmVuIHBvaW50IGluIGEgYnN0cmluZy4N Ci0rICovDQotK2ludCBiZmluZHJlcGxhY2UgKGJzdHJpbmcgYiwgY29uc3RfYnN0cmluZyBmaW5k LCBjb25zdF9ic3RyaW5nIHJlcGwsIGludCBwb3MpIHsNCi0rCXJldHVybiBmaW5kcmVwbGFjZWVu Z2luZSAoYiwgZmluZCwgcmVwbCwgcG9zLCBiaW5zdHIpOw0KLSt9DQotKw0KLSsvKiAgaW50IGJm aW5kcmVwbGFjZWNhc2VsZXNzIChic3RyaW5nIGIsIGNvbnN0X2JzdHJpbmcgZmluZCwgY29uc3Rf YnN0cmluZyByZXBsLCANCi0rICogICAgICAgICAgICAgICAgICAgIGludCBwb3MpDQotKyAqDQot KyAqICBSZXBsYWNlIGFsbCBvY2N1cnJlbmNlcyBvZiBhIGZpbmQgc3RyaW5nLCBpZ25vcmluZyBj YXNlLCB3aXRoIGEgcmVwbGFjZSANCi0rICogIHN0cmluZyBhZnRlciBhIGdpdmVuIHBvaW50IGlu IGEgYnN0cmluZy4NCi0rICovDQotK2ludCBiZmluZHJlcGxhY2VjYXNlbGVzcyAoYnN0cmluZyBi LCBjb25zdF9ic3RyaW5nIGZpbmQsIGNvbnN0X2JzdHJpbmcgcmVwbCwgaW50IHBvcykgew0KLSsJ cmV0dXJuIGZpbmRyZXBsYWNlZW5naW5lIChiLCBmaW5kLCByZXBsLCBwb3MsIGJpbnN0cmNhc2Vs ZXNzKTsNCi0rfQ0KLSsNCi0gLyogIGludCBiaW5zZXJ0Y2ggKGJzdHJpbmcgYiwgaW50IHBvcywg aW50IGxlbiwgdW5zaWduZWQgY2hhciBmaWxsKQ0KLSAgKg0KLSAgKiAgSW5zZXJ0cyB0aGUgY2hh cmFjdGVyIGZpbGwgcmVwZWF0ZWRseSBpbnRvIGIgYXQgcG9zaXRpb24gcG9zIGZvciBhIA0KLUBA IC0xMTE5LDQyICsxNjk5LDQxIEBAIGludCAqIGQ7DQotICAqICBlbmQgb2YgYiBhbmQgdGhlIHBv c2l0aW9uIHBvcyArIGxlbi4NCi0gICovDQotIGludCBiaW5zZXJ0Y2ggKGJzdHJpbmcgYiwgaW50 IHBvcywgaW50IGxlbiwgdW5zaWduZWQgY2hhciBmaWxsKSB7DQotLWludCBkLCBsOw0KLStpbnQg ZCwgbCwgaTsNCi0gDQotIAlpZiAocG9zIDwgMCB8fCBiID09IE5VTEwgfHwgYi0+c2xlbiA8IDAg fHwgYi0+bWxlbiA8IGItPnNsZW4gfHwNCi0tCSAgICBsZW4gPCAwKSByZXR1cm4gQlNUUl9FUlI7 DQotKwkgICAgYi0+bWxlbiA8PSAwIHx8IGxlbiA8IDApIHJldHVybiBCU1RSX0VSUjsNCi0gDQot IAkvKiBDb21wdXRlIHRoZSB0d28gcG9zc2libGUgZW5kIHBvaW50ZXJzICovDQotIAlkID0gYi0+ c2xlbiArIGxlbjsNCi0gCWwgPSBwb3MgKyBsZW47DQotKwlpZiAoKGR8bCkgPCAwKSByZXR1cm4g QlNUUl9FUlI7DQotIA0KLSAJaWYgKGwgPiBkKSB7DQotIAkJLyogSW5zZXJ0aW5nIHBhc3QgdGhl IGVuZCBvZiB0aGUgc3RyaW5nICovDQotIAkJaWYgKGJhbGxvYyAoYiwgbCArIDEpICE9IEJTVFJf T0spIHJldHVybiBCU1RSX0VSUjsNCi0tCQlsZW4gKz0gcG9zIC0gYi0+c2xlbjsNCi0gCQlwb3Mg PSBiLT5zbGVuOw0KLSAJCWItPnNsZW4gPSBsOw0KLSAJfSBlbHNlIHsNCi0gCQkvKiBJbnNlcnRp bmcgaW4gdGhlIG1pZGRsZSBvZiB0aGUgc3RyaW5nICovDQotIAkJaWYgKGJhbGxvYyAoYiwgZCAr IDEpICE9IEJTVFJfT0spIHJldHVybiBCU1RSX0VSUjsNCi0tCQlmb3IgKGwgPSBkIC0gMTsgbCA+ PSBwb3MgKyBsZW47IGwtLSkgew0KLS0JCQliLT5kYXRhW2xdID0gYi0+ZGF0YVtsIC0gbGVuXTsN Ci0rCQlmb3IgKGkgPSBkIC0gMTsgaSA+PSBsOyBpLS0pIHsNCi0rCQkJYi0+ZGF0YVtpXSA9IGIt PmRhdGFbaSAtIGxlbl07DQotIAkJfQ0KLSAJCWItPnNsZW4gPSBkOw0KLSAJfQ0KLSANCi0tCWQg PSBwb3MgKyBsZW47DQotLQlmb3IgKGw9cG9zOyBsIDwgZDsgbCsrKSBiLT5kYXRhW2xdID0gZmls bDsNCi0tCWItPmRhdGFbYi0+c2xlbl0gPSAnXDAnOw0KLS0JcmV0dXJuIDA7DQotKwlmb3IgKGk9 cG9zOyBpIDwgbDsgaSsrKSBiLT5kYXRhW2ldID0gZmlsbDsNCi0rCWItPmRhdGFbYi0+c2xlbl0g PSAodW5zaWduZWQgY2hhcikgJ1wwJzsNCi0rCXJldHVybiBCU1RSX09LOw0KLSB9DQotIA0KLSAv KiAgaW50IGJwYXR0ZXJuIChic3RyaW5nIGIsIGludCBsZW4pDQotICAqDQotLSAqICBSZXBsaWNh dGUgdGhlIHN0YXJ0aW5nIGJzdHJpbmcsIGIsIGVuZCB0byBlbmQgcmVwZWF0ZWRseSB1bnRpbCBp dCBzdXJwYXNzZXMNCi0tICogIGxlbiBjaGFyYWN0ZXJzLCB0aGVuIGNob3AgdGhlIHJlc3VsdCB0 byBleGFjdGx5IGxlbiBjaGFyYWN0ZXJzLiAgVGhpcyANCi0tICogIGZ1bmN0aW9uIG9wZXJhdGVz IGluLXBsYWNlLiAgVGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHdpdGggQlNUUl9FUlIgaWYgYiAN Ci0tICogIGlzIE5VTEwgb3Igb2YgbGVuZ3RoIDAsIG90aGVyd2lzZSBCU1RSX09LIGlzIHJldHVy bmVkLg0KLSsgKiAgUmVwbGljYXRlIHRoZSBic3RyaW5nLCBiIGluIHBsYWNlLCBlbmQgdG8gZW5k IHJlcGVhdGVkbHkgdW50aWwgaXQgDQotKyAqICBzdXJwYXNzZXMgbGVuIGNoYXJhY3RlcnMsIHRo ZW4gY2hvcCB0aGUgcmVzdWx0IHRvIGV4YWN0bHkgbGVuIGNoYXJhY3RlcnMuIA0KLSsgKiAgVGhp cyBmdW5jdGlvbiBvcGVyYXRlcyBpbi1wbGFjZS4gIFRoZSBmdW5jdGlvbiB3aWxsIHJldHVybiB3 aXRoIEJTVFJfRVJSIA0KLSsgKiAgaWYgYiBpcyBOVUxMIG9yIG9mIGxlbmd0aCAwLCBvdGhlcndp c2UgQlNUUl9PSyBpcyByZXR1cm5lZC4NCi0gICovDQotIGludCBicGF0dGVybiAoYnN0cmluZyBi LCBpbnQgbGVuKSB7DQotIGludCBpLCBkOw0KLUBAIC0xMTY1LDg0ICsxNzQ0LDE0OCBAQCBpbnQg aSwgZDsNCi0gCQlpZiAoZCA9PSAxKSByZXR1cm4gYnNldHN0ciAoYiwgbGVuLCBOVUxMLCBiLT5k YXRhWzBdKTsNCi0gCQlmb3IgKGkgPSBkOyBpIDwgbGVuOyBpKyspIGItPmRhdGFbaV0gPSBiLT5k YXRhW2kgLSBkXTsNCi0gCX0NCi0tCWItPmRhdGFbbGVuXSA9ICdcMCc7DQotKwliLT5kYXRhW2xl bl0gPSAodW5zaWduZWQgY2hhcikgJ1wwJzsNCi0gCWItPnNsZW4gPSBsZW47DQotLQlyZXR1cm4g MDsNCi0rCXJldHVybiBCU1RSX09LOw0KLSB9DQotIA0KLS0vKiAgYnN0cmluZyBiZ2V0cyAoYk5n ZXRjIGdldGNQdHIsIHZvaWQgKiBwYXJtLCBjaGFyIHRlcm1pbmF0b3IpDQotKyNkZWZpbmUgQlNf QlVGRl9TWiAoMTAyNCkNCi0rDQotKy8qICBpbnQgYnJlYWRhIChic3RyaW5nIGIsIGJOcmVhZCBy ZWFkUHRyLCB2b2lkICogcGFybSkNCi0rICoNCi0rICogIFVzZSBhIGZpbml0ZSBidWZmZXIgZnJl YWQtbGlrZSBmdW5jdGlvbiByZWFkUHRyIHRvIGNvbmNhdGVuYXRlIHRvIHRoZSANCi0rICogIGJz dHJpbmcgYiB0aGUgZW50aXJlIGNvbnRlbnRzIG9mIGZpbGUtbGlrZSBzb3VyY2UgZGF0YSBpbiBh IHJvdWdobHkgDQotKyAqICBlZmZpY2llbnQgd2F5Lg0KLSsgKi8NCi0raW50IGJyZWFkYSAoYnN0 cmluZyBiLCBiTnJlYWQgcmVhZFB0ciwgdm9pZCAqIHBhcm0pIHsNCi0raW50IGksIGwsIG47DQot Kw0KLSsJaWYgKGIgPT0gTlVMTCB8fCBiLT5tbGVuIDw9IDAgfHwgYi0+c2xlbiA8IDAgfHwgYi0+ bWxlbiA8IGItPnNsZW4gfHwNCi0rCSAgICBiLT5tbGVuIDw9IDAgfHwgcmVhZFB0ciA9PSBOVUxM KSByZXR1cm4gQlNUUl9FUlI7DQotKw0KLSsJaSA9IGItPnNsZW47DQotKwlmb3IgKG49aSsxNjsg OyBuICs9ICgobiA8IEJTX0JVRkZfU1opID8gbiA6IEJTX0JVRkZfU1opKSB7DQotKwkJaWYgKEJT VFJfT0sgIT0gYmFsbG9jIChiLCBuICsgMSkpIHJldHVybiBCU1RSX0VSUjsNCi0rCQlsID0gKGlu dCkgcmVhZFB0ciAoKHZvaWQgKikgKGItPmRhdGEgKyBpKSwgMSwgbiAtIGksIHBhcm0pOw0KLSsJ CWkgKz0gbDsNCi0rCQliLT5zbGVuID0gaTsNCi0rCQlpZiAoaSA8IG4pIGJyZWFrOw0KLSsJfQ0K LSsNCi0rCWItPmRhdGFbaV0gPSAodW5zaWduZWQgY2hhcikgJ1wwJzsNCi0rCXJldHVybiBCU1RS X09LOw0KLSt9DQotKw0KLSsvKiAgYnN0cmluZyBicmVhZCAoYk5yZWFkIHJlYWRQdHIsIHZvaWQg KiBwYXJtKQ0KLSsgKg0KLSsgKiAgVXNlIGEgZmluaXRlIGJ1ZmZlciBmcmVhZC1saWtlIGZ1bmN0 aW9uIHJlYWRQdHIgdG8gY3JlYXRlIGEgYnN0cmluZyANCi0rICogIGZpbGxlZCB3aXRoIHRoZSBl bnRpcmUgY29udGVudHMgb2YgZmlsZS1saWtlIHNvdXJjZSBkYXRhIGluIGEgcm91Z2hseSANCi0r ICogIGVmZmljaWVudCB3YXkuDQotKyAqLw0KLStic3RyaW5nIGJyZWFkIChiTnJlYWQgcmVhZFB0 ciwgdm9pZCAqIHBhcm0pIHsNCi0rYnN0cmluZyBidWZmOw0KLSsNCi0rCWlmICgwID4gYnJlYWRh IChidWZmID0gYmZyb21jc3RyICgiIiksIHJlYWRQdHIsIHBhcm0pKSB7DQotKwkJYmRlc3Ryb3kg KGJ1ZmYpOw0KLSsJCXJldHVybiBOVUxMOw0KLSsJfQ0KLSsJcmV0dXJuIGJ1ZmY7DQotK30NCi0r DQotKy8qICBpbnQgYmFzc2lnbmdldHMgKGJzdHJpbmcgYiwgYk5nZXRjIGdldGNQdHIsIHZvaWQg KiBwYXJtLCBjaGFyIHRlcm1pbmF0b3IpDQotICAqDQotICAqICBVc2UgYW4gZmdldGMtbGlrZSBz aW5nbGUgY2hhcmFjdGVyIHN0cmVhbSByZWFkaW5nIGZ1bmN0aW9uIChnZXRjUHRyKSB0byANCi0t ICogIG9idGFpbiBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgd2hpY2ggYXJlIGNvbmNhdGVuYXRl ZCBpbnRvIGEgYnN0cmluZy4gIA0KLS0gKiAgVGhlIHN0cmVhbSByZWFkIGlzIHRlcm1pbmF0ZWQg YnkgdGhlIHBhc3NlZCBpbiB0ZXJtaW5hdG9yIGZ1bmN0aW9uLg0KLSsgKiAgb2J0YWluIGEgc2Vx dWVuY2Ugb2YgY2hhcmFjdGVycyB3aGljaCBhcmUgY29uY2F0ZW5hdGVkIHRvIHRoZSBlbmQgb2Yg dGhlDQotKyAqICBic3RyaW5nIGIuICBUaGUgc3RyZWFtIHJlYWQgaXMgdGVybWluYXRlZCBieSB0 aGUgcGFzc2VkIGluIHRlcm1pbmF0b3IgDQotKyAqICBwYXJhbWV0ZXIuDQotICAqDQotICAqICBJ ZiBnZXRjUHRyIHJldHVybnMgd2l0aCBhIG5lZ2F0aXZlIG51bWJlciwgb3IgdGhlIHRlcm1pbmF0 b3IgY2hhcmFjdGVyIA0KLS0gKiAgKHdoaWNoIGlzIGFwcGVuZGVkKSBpcyByZWFkLCB0aGVuIHRo ZSBzdHJlYW0gcmVhZGluZyBpcyBoYWx0ZWQgYXMgdGhlIA0KLS0gKiAgcmVzdWx0IG9idGFpbmVk IHRodXMgZmFyIGlzIHJldHVybmVkLiAgSWYgbm8gY2hhcmFjdGVycyBhcmUgcmVhZCwgb3IgDQot LSAqICB0aGVyZSBpcyBzb21lIG90aGVyIGRldGVjdGFibGUgZXJyb3IsIE5VTEwgaXMgcmV0dXJu ZWQuDQotKyAqICAod2hpY2ggaXMgYXBwZW5kZWQpIGlzIHJlYWQsIHRoZW4gdGhlIHN0cmVhbSBy ZWFkaW5nIGlzIGhhbHRlZCBhbmQgdGhlIA0KLSsgKiAgZnVuY3Rpb24gcmV0dXJucyB3aXRoIGEg cGFydGlhbCByZXN1bHQgaW4gYi4gIElmIHRoZXJlIGlzIGFuIGVtcHR5IHBhcnRpYWwNCi0rICog IHJlc3VsdCwgMSBpcyByZXR1cm5lZC4gIElmIG5vIGNoYXJhY3RlcnMgYXJlIHJlYWQsIG9yIHRo ZXJlIGlzIHNvbWUgb3RoZXIgDQotKyAqICBkZXRlY3RhYmxlIGVycm9yLCBCU1RSX0VSUiBpcyBy ZXR1cm5lZC4NCi0gICovDQotLWJzdHJpbmcgYmdldHMgKGJOZ2V0YyBnZXRjUHRyLCB2b2lkICog cGFybSwgY2hhciB0ZXJtaW5hdG9yKSB7DQotK2ludCBiYXNzaWduZ2V0cyAoYnN0cmluZyBiLCBi TmdldGMgZ2V0Y1B0ciwgdm9pZCAqIHBhcm0sIGNoYXIgdGVybWluYXRvcikgew0KLSBpbnQgYywg ZCwgZTsNCi0tYnN0cmluZyBidWZmOw0KLSANCi0tCWlmIChnZXRjUHRyID09IE5VTEwpIHJldHVy biBOVUxMOw0KLS0JYnVmZiA9IGJmcm9tY3N0ciAoIiIpOw0KLS0JaWYgKGJ1ZmYgPT0gTlVMTCkg cmV0dXJuIE5VTEw7DQotKwlpZiAoYiA9PSBOVUxMIHx8IGItPm1sZW4gPD0gMCB8fCBiLT5zbGVu IDwgMCB8fCBiLT5tbGVuIDwgYi0+c2xlbiB8fA0KLSsJICAgIGItPm1sZW4gPD0gMCB8fCBnZXRj UHRyID09IE5VTEwpIHJldHVybiBCU1RSX0VSUjsNCi0gCWQgPSAwOw0KLS0JZSA9IGJ1ZmYtPm1s ZW4gLSAyOw0KLSsJZSA9IGItPm1sZW4gLSAyOw0KLSANCi0gCXdoaWxlICgoYyA9IGdldGNQdHIg KHBhcm0pKSA+PSAwKSB7DQotIAkJaWYgKGQgPiBlKSB7DQotLQkJCWJ1ZmYtPnNsZW4gPSBkOw0K LS0JCQlpZiAoYmFsbG9jIChidWZmLCBkICsgMikgIT0gQlNUUl9PSykgew0KLS0JCQkJYmRlc3Ry b3kgKGJ1ZmYpOw0KLS0JCQkJcmV0dXJuIE5VTEw7DQotLQkJCX0NCi0tCQkJZSA9IGJ1ZmYtPm1s ZW4gLSAyOw0KLSsJCQliLT5zbGVuID0gZDsNCi0rCQkJaWYgKGJhbGxvYyAoYiwgZCArIDIpICE9 IEJTVFJfT0spIHJldHVybiBCU1RSX0VSUjsNCi0rCQkJZSA9IGItPm1sZW4gLSAyOw0KLSAJCX0N Ci0tCQlidWZmLT5kYXRhW2RdID0gKHVuc2lnbmVkIGNoYXIpIGM7DQotKwkJYi0+ZGF0YVtkXSA9 ICh1bnNpZ25lZCBjaGFyKSBjOw0KLSAJCWQrKzsNCi0gCQlpZiAoYyA9PSB0ZXJtaW5hdG9yKSBi cmVhazsNCi0gCX0NCi0gDQotLQlidWZmLT5kYXRhW2RdID0gJ1wwJzsNCi0tCWJ1ZmYtPnNsZW4g PSBkOw0KLSsJYi0+ZGF0YVtkXSA9ICh1bnNpZ25lZCBjaGFyKSAnXDAnOw0KLSsJYi0+c2xlbiA9 IGQ7DQotIA0KLS0JaWYgKGQgPT0gMCkgew0KLS0JCWJkZXN0cm95IChidWZmKTsNCi0tCQlidWZm ID0gTlVMTDsNCi0rCXJldHVybiBkID09IDAgJiYgYyA8IDA7DQotK30NCi0rDQotKy8qICBpbnQg YmdldHNhIChic3RyaW5nIGIsIGJOZ2V0YyBnZXRjUHRyLCB2b2lkICogcGFybSwgY2hhciB0ZXJt aW5hdG9yKQ0KLSsgKg0KLSsgKiAgVXNlIGFuIGZnZXRjLWxpa2Ugc2luZ2xlIGNoYXJhY3RlciBz dHJlYW0gcmVhZGluZyBmdW5jdGlvbiAoZ2V0Y1B0cikgdG8gDQotKyAqICBvYnRhaW4gYSBzZXF1 ZW5jZSBvZiBjaGFyYWN0ZXJzIHdoaWNoIGFyZSBjb25jYXRlbmF0ZWQgdG8gdGhlIGVuZCBvZiB0 aGUNCi0rICogIGJzdHJpbmcgYi4gIFRoZSBzdHJlYW0gcmVhZCBpcyB0ZXJtaW5hdGVkIGJ5IHRo ZSBwYXNzZWQgaW4gdGVybWluYXRvciANCi0rICogIHBhcmFtZXRlci4NCi0rICoNCi0rICogIElm IGdldGNQdHIgcmV0dXJucyB3aXRoIGEgbmVnYXRpdmUgbnVtYmVyLCBvciB0aGUgdGVybWluYXRv ciBjaGFyYWN0ZXIgDQotKyAqICAod2hpY2ggaXMgYXBwZW5kZWQpIGlzIHJlYWQsIHRoZW4gdGhl IHN0cmVhbSByZWFkaW5nIGlzIGhhbHRlZCBhbmQgdGhlIA0KLSsgKiAgZnVuY3Rpb24gcmV0dXJu cyB3aXRoIGEgcGFydGlhbCByZXN1bHQgY29uY2F0ZW50YXRlZCB0byBiLiAgSWYgdGhlcmUgaXMg DQotKyAqICBhbiBlbXB0eSBwYXJ0aWFsIHJlc3VsdCwgMSBpcyByZXR1cm5lZC4gIElmIG5vIGNo YXJhY3RlcnMgYXJlIHJlYWQsIG9yIA0KLSsgKiAgdGhlcmUgaXMgc29tZSBvdGhlciBkZXRlY3Rh YmxlIGVycm9yLCBCU1RSX0VSUiBpcyByZXR1cm5lZC4NCi0rICovDQotK2ludCBiZ2V0c2EgKGJz dHJpbmcgYiwgYk5nZXRjIGdldGNQdHIsIHZvaWQgKiBwYXJtLCBjaGFyIHRlcm1pbmF0b3IpIHsN Ci0raW50IGMsIGQsIGU7DQotKw0KLSsJaWYgKGIgPT0gTlVMTCB8fCBiLT5tbGVuIDw9IDAgfHwg Yi0+c2xlbiA8IDAgfHwgYi0+bWxlbiA8IGItPnNsZW4gfHwNCi0rCSAgICBiLT5tbGVuIDw9IDAg fHwgZ2V0Y1B0ciA9PSBOVUxMKSByZXR1cm4gQlNUUl9FUlI7DQotKwlkID0gYi0+c2xlbjsNCi0r CWUgPSBiLT5tbGVuIC0gMjsNCi0rDQotKwl3aGlsZSAoKGMgPSBnZXRjUHRyIChwYXJtKSkgPj0g MCkgew0KLSsJCWlmIChkID4gZSkgew0KLSsJCQliLT5zbGVuID0gZDsNCi0rCQkJaWYgKGJhbGxv YyAoYiwgZCArIDIpICE9IEJTVFJfT0spIHJldHVybiBCU1RSX0VSUjsNCi0rCQkJZSA9IGItPm1s ZW4gLSAyOw0KLSsJCX0NCi0rCQliLT5kYXRhW2RdID0gKHVuc2lnbmVkIGNoYXIpIGM7DQotKwkJ ZCsrOw0KLSsJCWlmIChjID09IHRlcm1pbmF0b3IpIGJyZWFrOw0KLSAJfQ0KLSANCi0tCXJldHVy biBidWZmOw0KLS19DQotKwliLT5kYXRhW2RdID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotKwli LT5zbGVuID0gZDsNCi0gDQotLSNkZWZpbmUgQlNfQlVGRl9TWiAoMTAyNCkNCi0rCXJldHVybiBk ID09IDAgJiYgYyA8IDA7DQotK30NCi0gDQotLS8qICBic3RyaW5nIGJyZWFkIChiTnJlYWQgcmVh ZFB0ciwgdm9pZCAqIHBhcm0pDQotKy8qICBic3RyaW5nIGJnZXRzIChiTmdldGMgZ2V0Y1B0ciwg dm9pZCAqIHBhcm0sIGNoYXIgdGVybWluYXRvcikNCi0gICoNCi0tICogIFRyYW5zbGF0ZSBhIGZp bml0ZSBidWZmZXIgZnJlYWQtbGlrZSBmdW5jdGlvbiBpbnRvIHNvbWV0aGluZyB3aGljaCBjYW4N Ci0tICogIGZpbGwgaW4gYSBic3RyaW5nIGluIGEgcm91Z2hseSBlZmZpY2llbnQgd2F5Lg0KLSsg KiAgVXNlIGFuIGZnZXRjLWxpa2Ugc2luZ2xlIGNoYXJhY3RlciBzdHJlYW0gcmVhZGluZyBmdW5j dGlvbiAoZ2V0Y1B0cikgdG8gDQotKyAqICBvYnRhaW4gYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJz IHdoaWNoIGFyZSBjb25jYXRlbmF0ZWQgaW50byBhIGJzdHJpbmcuICANCi0rICogIFRoZSBzdHJl YW0gcmVhZCBpcyB0ZXJtaW5hdGVkIGJ5IHRoZSBwYXNzZWQgaW4gdGVybWluYXRvciBmdW5jdGlv bi4NCi0rICoNCi0rICogIElmIGdldGNQdHIgcmV0dXJucyB3aXRoIGEgbmVnYXRpdmUgbnVtYmVy LCBvciB0aGUgdGVybWluYXRvciBjaGFyYWN0ZXIgDQotKyAqICAod2hpY2ggaXMgYXBwZW5kZWQp IGlzIHJlYWQsIHRoZW4gdGhlIHN0cmVhbSByZWFkaW5nIGlzIGhhbHRlZCBhbmQgdGhlIA0KLSsg KiAgcmVzdWx0IG9idGFpbmVkIHRodXMgZmFyIGlzIHJldHVybmVkLiAgSWYgbm8gY2hhcmFjdGVy cyBhcmUgcmVhZCwgb3IgDQotKyAqICB0aGVyZSBpcyBzb21lIG90aGVyIGRldGVjdGFibGUgZXJy b3IsIE5VTEwgaXMgcmV0dXJuZWQuDQotICAqLw0KLS1ic3RyaW5nIGJyZWFkIChiTnJlYWQgcmVh ZFB0ciwgdm9pZCAqIHBhcm0pIHsNCi0taW50IGksIGwsIG47DQotK2JzdHJpbmcgYmdldHMgKGJO Z2V0YyBnZXRjUHRyLCB2b2lkICogcGFybSwgY2hhciB0ZXJtaW5hdG9yKSB7DQotIGJzdHJpbmcg YnVmZjsNCi0gDQotLQlpZiAocmVhZFB0ciA9PSBOVUxMKSByZXR1cm4gTlVMTDsNCi0tCWJ1ZmYg PSBiZnJvbWNzdHIgKCIiKTsNCi0tCWlmIChidWZmID09IE5VTEwpIHJldHVybiBOVUxMOw0KLS0N Ci0tCWZvciAoaT0wLCBuPTE2OyA7IG4gKz0gKChuIDwgQlNfQlVGRl9TWikgPyBuIDogQlNfQlVG Rl9TWikpIHsNCi0tCQlpZiAoQlNUUl9PSyAhPSBiYWxsb2MgKGJ1ZmYsIG4gKyAxKSkgew0KLS0J CQliZGVzdHJveSAoYnVmZik7DQotLQkJCXJldHVybiBOVUxMOw0KLS0JCX0NCi0tCQlsID0gKGlu dCkgcmVhZFB0ciAoKHZvaWQgKikgKGJ1ZmYtPmRhdGEgKyBpKSwgMSwgbiAtIGksIHBhcm0pOw0K LS0JCWkgKz0gbDsNCi0tCQlidWZmLT5zbGVuID0gaTsNCi0tCQlpZiAoaSA8IG4pIGJyZWFrOw0K LSsJaWYgKDAgPiBiZ2V0c2EgKGJ1ZmYgPSBiZnJvbWNzdHIgKCIiKSwgZ2V0Y1B0ciwgcGFybSwg dGVybWluYXRvcikgfHwgMCA+PSBidWZmLT5zbGVuKSB7DQotKwkJYmRlc3Ryb3kgKGJ1ZmYpOw0K LSsJCWJ1ZmYgPSBOVUxMOw0KLSAJfQ0KLS0NCi0tCWJ1ZmYtPmRhdGFbaV0gPSAnXDAnOw0KLSAJ cmV0dXJuIGJ1ZmY7DQotIH0NCi0gDQotQEAgLTEyNjQsNyArMTkwNyw3IEBAIHN0cnVjdCBiU3Ry ZWFtICogYnNvcGVuIChiTnJlYWQgcmVhZFB0ciwKLSBzdHJ1Y3QgYlN0cmVhbSAqIHM7DQotIA0K LSAJaWYgKHJlYWRQdHIgPT0gTlVMTCkgcmV0dXJuIE5VTEw7DQotLQlzID0gKHN0cnVjdCBiU3Ry ZWFtICopIG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgYlN0cmVhbSkpOw0KLSsJcyA9IChzdHJ1Y3Qg YlN0cmVhbSAqKSBic3RyX19hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgYlN0cmVhbSkpOw0KLSAJaWYg KHMgPT0gTlVMTCkgcmV0dXJuIE5VTEw7DQotIAlzLT5wYXJtID0gcGFybTsNCi0gCXMtPmJ1ZmYg PSBiZnJvbWNzdHIgKCIiKTsNCi1AQCAtMTI3Niw3ICsxOTE5LDcgQEAgc3RydWN0IGJTdHJlYW0g KiBzOw0KLSANCi0gLyogIGludCBic2J1ZmZsZW5ndGggKHN0cnVjdCBiU3RyZWFtICogcywgaW50 IHN6KQ0KLSAgKg0KLS0gKiAgU2V0IHRoZSBsZW5ndGggb2YgdGhlIGJ1ZmZlciB1c2VkIGJ5IHRo ZSBic1N0cmVhbS4gIElmIHN6IGlzIHplcm8sIHRoZSANCi0rICogIFNldCB0aGUgbGVuZ3RoIG9m IHRoZSBidWZmZXIgdXNlZCBieSB0aGUgYlN0cmVhbS4gIElmIHN6IGlzIHplcm8sIHRoZSANCi0g ICogIGxlbmd0aCBpcyBub3Qgc2V0LiAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHdpdGggdGhlIHBy ZXZpb3VzIGxlbmd0aC4NCi0gICovDQotIGludCBic2J1ZmZsZW5ndGggKHN0cnVjdCBiU3RyZWFt ICogcywgaW50IHN6KSB7DQotQEAgLTEzMDYsNyArMTk0OSw3IEBAIHZvaWQgKiBwYXJtOw0KLSAJ cGFybSA9IHMtPnBhcm07DQotIAlzLT5wYXJtID0gTlVMTDsNCi0gCXMtPmlzRU9GID0gMTsNCi0t CWZyZWUgKHMpOw0KLSsJYnN0cl9fZnJlZSAocyk7DQotIAlyZXR1cm4gcGFybTsNCi0gfQ0KLSAN Ci1AQCAtMTMxOCwyOSArMTk2MSwzMCBAQCB2b2lkICogcGFybTsNCi0gICogIHJldHVybmVkLCBi dXQgd2lsbCBiZSByZXRhaW5lZCBmb3Igc3Vic2VxdWVudCByZWFkIG9wZXJhdGlvbnMuDQotICAq Lw0KLSBpbnQgYnNyZWFkbG5hIChic3RyaW5nIHIsIHN0cnVjdCBiU3RyZWFtICogcywgY2hhciB0 ZXJtaW5hdG9yKSB7DQotLWludCBpLCBsOw0KLStpbnQgaSwgbCwgcmV0LCBybG87DQotIGNoYXIg KiBiOw0KLSBzdHJ1Y3QgdGFnYnN0cmluZyB4Ow0KLSANCi0tCWlmIChzID09IE5VTEwgfHwgcy0+ YnVmZiA9PSBOVUxMIHx8IHIgPT0gTlVMTCB8fCByLT5tbGVuIDw9IDApDQotLQkJcmV0dXJuIEJT VFJfRVJSOw0KLSsJaWYgKHMgPT0gTlVMTCB8fCBzLT5idWZmID09IE5VTEwgfHwgciA9PSBOVUxM IHx8IHItPm1sZW4gPD0gMCB8fA0KLSsJICAgIHItPnNsZW4gPCAwIHx8IHItPm1sZW4gPCByLT5z bGVuKSByZXR1cm4gQlNUUl9FUlI7DQotIAlsID0gcy0+YnVmZi0+c2xlbjsNCi0gCWlmIChCU1RS X09LICE9IGJhbGxvYyAocy0+YnVmZiwgcy0+bWF4QnVmZlN6ICsgMSkpIHJldHVybiBCU1RSX0VS UjsNCi0gCWIgPSAoY2hhciAqKSBzLT5idWZmLT5kYXRhOw0KLSAJeC5kYXRhID0gKHVuc2lnbmVk IGNoYXIgKikgYjsNCi0gDQotIAkvKiBGaXJzdCBjaGVjayBpZiB0aGUgY3VycmVudCBidWZmZXIg aG9sZHMgdGhlIHRlcm1pbmF0b3IgKi8NCi0tCWJbbF0gPSB0ZXJtaW5hdG9yOw0KLSsJYltsXSA9 IHRlcm1pbmF0b3I7IC8qIFNldCBzZW50aW5lbCAqLw0KLSAJZm9yIChpPTA7IGJbaV0gIT0gdGVy bWluYXRvcjsgaSsrKSA7DQotIAlpZiAoaSA8IGwpIHsNCi0tCQlpbnQgcmV0Ow0KLSAJCXguc2xl biA9IGkgKyAxOw0KLSAJCXJldCA9IGJjb25jYXQgKHIsICZ4KTsNCi0gCQlzLT5idWZmLT5zbGVu ID0gbDsNCi0gCQlpZiAoQlNUUl9PSyA9PSByZXQpIGJkZWxldGUgKHMtPmJ1ZmYsIDAsIGkgKyAx KTsNCi0tCQlyZXR1cm4gQlNUUl9FUlIgJiAtKHItPnNsZW4gPT0gMCk7DQotKwkJcmV0dXJuIEJT VFJfT0s7DQotIAl9DQotIA0KLSsJcmxvID0gci0+c2xlbjsNCi0rDQotIAkvKiBJZiBub3QgdGhl biBqdXN0IGNvbmNhdGVuYXRlIHRoZSBlbnRpcmUgYnVmZmVyIHRvIHRoZSBvdXRwdXQgKi8NCi0g CXguc2xlbiA9IGw7DQotIAlpZiAoQlNUUl9PSyAhPSBiY29uY2F0IChyLCAmeCkpIHJldHVybiBC U1RSX0VSUjsNCi1AQCAtMTM0OCwzMCArMTk5MiwyOSBAQCBzdHJ1Y3QgdGFnYnN0cmluZyB4Ow0K LSAJLyogUGVyZm9ybSBkaXJlY3QgaW4tcGxhY2UgcmVhZHMgaW50byB0aGUgZGVzdGluYXRpb24g dG8gYWxsb3cgZm9yDQotIAkgICB0aGUgbWluaW11bSBvZiBkYXRhLWNvcGllcyAqLw0KLSAJZm9y ICg7Oykgew0KLS0JCWJhbGxvYyAociwgci0+c2xlbiArIHMtPm1heEJ1ZmZTeiArIDEpOw0KLSsJ CWlmIChCU1RSX09LICE9IGJhbGxvYyAociwgci0+c2xlbiArIHMtPm1heEJ1ZmZTeiArIDEpKSBy ZXR1cm4gQlNUUl9FUlI7DQotIAkJYiA9IChjaGFyICopIChyLT5kYXRhICsgci0+c2xlbik7DQot IAkJbCA9IChpbnQpIHMtPnJlYWRGblB0ciAoYiwgMSwgcy0+bWF4QnVmZlN6LCBzLT5wYXJtKTsN Ci0gCQlpZiAobCA8PSAwKSB7DQotLQkJCXItPmRhdGFbci0+c2xlbl0gPSAnXDAnOw0KLSsJCQly LT5kYXRhW3ItPnNsZW5dID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotIAkJCXMtPmJ1ZmYtPnNs ZW4gPSAwOw0KLSAJCQlzLT5pc0VPRiA9IDE7DQotIAkJCS8qIElmIG5vdGhpbmcgd2FzIHJlYWQg cmV0dXJuIHdpdGggYW4gZXJyb3IgbWVzc2FnZSAqLw0KLS0JCQlyZXR1cm4gQlNUUl9FUlIgJiAt KHItPnNsZW4gPT0gMCk7DQotKwkJCXJldHVybiBCU1RSX0VSUiAmIC0oci0+c2xlbiA9PSBybG8p Ow0KLSAJCX0NCi0tCQliW2xdID0gdGVybWluYXRvcjsNCi0rCQliW2xdID0gdGVybWluYXRvcjsg LyogU2V0IHNlbnRpbmVsICovDQotIAkJZm9yIChpPTA7IGJbaV0gIT0gdGVybWluYXRvcjsgaSsr KSA7DQotLQkJaWYgKGkgPCBsKSB7DQotLQ0KLS0JCQkvKiBUZXJtaW5hdG9yIGZvdW5kLCBwdXNo IG92ZXItcmVhZCBiYWNrIHRvIGJ1ZmZlciAqLw0KLS0JCQlpKys7DQotLQkJCXItPnNsZW4gKz0g aTsNCi0tCQkJcy0+YnVmZi0+c2xlbiA9IGwgLSBpOw0KLS0JCQltZW1jcHkgKHMtPmJ1ZmYtPmRh dGEsIGIgKyBpLCBsIC0gaSk7DQotLQkJCXItPmRhdGFbci0+c2xlbl0gPSAnXDAnOw0KLS0JCQly ZXR1cm4gQlNUUl9PSzsNCi0tCQl9DQotKwkJaWYgKGkgPCBsKSBicmVhazsNCi0gCQlyLT5zbGVu ICs9IGw7DQotIAl9DQotKw0KLSsJLyogVGVybWluYXRvciBmb3VuZCwgcHVzaCBvdmVyLXJlYWQg YmFjayB0byBidWZmZXIgKi8NCi0rCWkrKzsNCi0rCXItPnNsZW4gKz0gaTsNCi0rCXMtPmJ1ZmYt PnNsZW4gPSBsIC0gaTsNCi0rCWJzdHJfX21lbWNweSAocy0+YnVmZi0+ZGF0YSwgYiArIGksIGwg LSBpKTsNCi0rCXItPmRhdGFbci0+c2xlbl0gPSAodW5zaWduZWQgY2hhcikgJ1wwJzsNCi0rCXJl dHVybiBCU1RSX09LOw0KLSB9DQotIA0KLSAvKiAgaW50IGJzcmVhZGxuc2EgKGJzdHJpbmcgciwg c3RydWN0IGJTdHJlYW0gKiBzLCBic3RyaW5nIHRlcm0pDQotQEAgLTEzODEsMTQgKzIwMjQsMTUg QEAgc3RydWN0IHRhZ2JzdHJpbmcgeDsNCi0gICogIFRoaXMgZnVuY3Rpb24gbWF5IHJlYWQgYWRk aXRpb25hbCBjaGFyYWN0ZXJzIGZyb20gdGhlIGNvcmUgc3RyZWFtIHRoYXQgDQotICAqICBhcmUg bm90IHJldHVybmVkLCBidXQgd2lsbCBiZSByZXRhaW5lZCBmb3Igc3Vic2VxdWVudCByZWFkIG9w ZXJhdGlvbnMuDQotICAqLw0KLS1pbnQgYnNyZWFkbG5zYSAoYnN0cmluZyByLCBzdHJ1Y3QgYlN0 cmVhbSAqIHMsIGNvbnN0IGJzdHJpbmcgdGVybSkgew0KLS1pbnQgaSwgbDsNCi0raW50IGJzcmVh ZGxuc2EgKGJzdHJpbmcgciwgc3RydWN0IGJTdHJlYW0gKiBzLCBjb25zdF9ic3RyaW5nIHRlcm0p IHsNCi0raW50IGksIGwsIHJldCwgcmxvOw0KLSB1bnNpZ25lZCBjaGFyICogYjsNCi0gc3RydWN0 IHRhZ2JzdHJpbmcgeDsNCi0gc3RydWN0IGNoYXJGaWVsZCBjZjsNCi0gDQotLQlpZiAocyA9PSBO VUxMIHx8IHMtPmJ1ZmYgPT0gTlVMTCB8fCByID09IE5VTEwgfHwgdGVybSA9PSBOVUxMIA0KLS0J IHx8IHRlcm0tPmRhdGEgPT0gTlVMTCB8fCByLT5tbGVuIDw9IDApIHJldHVybiBCU1RSX0VSUjsN Ci0rCWlmIChzID09IE5VTEwgfHwgcy0+YnVmZiA9PSBOVUxMIHx8IHIgPT0gTlVMTCB8fCB0ZXJt ID09IE5VTEwgfHwNCi0rCSAgICB0ZXJtLT5kYXRhID09IE5VTEwgfHwgci0+bWxlbiA8PSAwIHx8 IHItPnNsZW4gPCAwIHx8DQotKwkgICAgci0+bWxlbiA8IHItPnNsZW4pIHJldHVybiBCU1RSX0VS UjsNCi0gCWlmICh0ZXJtLT5zbGVuID09IDEpIHJldHVybiBic3JlYWRsbmEgKHIsIHMsIHRlcm0t PmRhdGFbMF0pOw0KLSAJaWYgKHRlcm0tPnNsZW4gPCAxIHx8IGJ1aWxkQ2hhckZpZWxkICgmY2Ys IHRlcm0pKSByZXR1cm4gQlNUUl9FUlI7DQotIA0KLUBAIC0xMzk4LDE3ICsyMDQyLDE4IEBAIHN0 cnVjdCBjaGFyRmllbGQgY2Y7DQotIAl4LmRhdGEgPSBiOw0KLSANCi0gCS8qIEZpcnN0IGNoZWNr IGlmIHRoZSBjdXJyZW50IGJ1ZmZlciBob2xkcyB0aGUgdGVybWluYXRvciAqLw0KLS0JYltsXSA9 IHRlcm0tPmRhdGFbMF07DQotKwliW2xdID0gdGVybS0+ZGF0YVswXTsgLyogU2V0IHNlbnRpbmVs ICovDQotIAlmb3IgKGk9MDsgIXRlc3RJbkNoYXJGaWVsZCAoJmNmLCBiW2ldKTsgaSsrKSA7DQot IAlpZiAoaSA8IGwpIHsNCi0tCQlpbnQgcmV0Ow0KLSAJCXguc2xlbiA9IGkgKyAxOw0KLSAJCXJl dCA9IGJjb25jYXQgKHIsICZ4KTsNCi0gCQlzLT5idWZmLT5zbGVuID0gbDsNCi0gCQlpZiAoQlNU Ul9PSyA9PSByZXQpIGJkZWxldGUgKHMtPmJ1ZmYsIDAsIGkgKyAxKTsNCi0tCQlyZXR1cm4gQlNU Ul9FUlIgJiAtKHItPnNsZW4gPT0gMCk7DQotKwkJcmV0dXJuIEJTVFJfT0s7DQotIAl9DQotIA0K LSsJcmxvID0gci0+c2xlbjsNCi0rDQotIAkvKiBJZiBub3QgdGhlbiBqdXN0IGNvbmNhdGVuYXRl IHRoZSBlbnRpcmUgYnVmZmVyIHRvIHRoZSBvdXRwdXQgKi8NCi0gCXguc2xlbiA9IGw7DQotIAlp ZiAoQlNUUl9PSyAhPSBiY29uY2F0IChyLCAmeCkpIHJldHVybiBCU1RSX0VSUjsNCi1AQCAtMTQx NiwzMCArMjA2MSwzMCBAQCBzdHJ1Y3QgY2hhckZpZWxkIGNmOw0KLSAJLyogUGVyZm9ybSBkaXJl Y3QgaW4tcGxhY2UgcmVhZHMgaW50byB0aGUgZGVzdGluYXRpb24gdG8gYWxsb3cgZm9yDQotIAkg ICB0aGUgbWluaW11bSBvZiBkYXRhLWNvcGllcyAqLw0KLSAJZm9yICg7Oykgew0KLS0JCWJhbGxv YyAociwgci0+c2xlbiArIHMtPm1heEJ1ZmZTeiArIDEpOw0KLSsJCWlmIChCU1RSX09LICE9IGJh bGxvYyAociwgci0+c2xlbiArIHMtPm1heEJ1ZmZTeiArIDEpKSByZXR1cm4gQlNUUl9FUlI7DQot IAkJYiA9ICh1bnNpZ25lZCBjaGFyICopIChyLT5kYXRhICsgci0+c2xlbik7DQotIAkJbCA9IChp bnQpIHMtPnJlYWRGblB0ciAoYiwgMSwgcy0+bWF4QnVmZlN6LCBzLT5wYXJtKTsNCi0gCQlpZiAo bCA8PSAwKSB7DQotLQkJCXItPmRhdGFbci0+c2xlbl0gPSAnXDAnOw0KLSsJCQlyLT5kYXRhW3It PnNsZW5dID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotIAkJCXMtPmJ1ZmYtPnNsZW4gPSAwOw0K LSAJCQlzLT5pc0VPRiA9IDE7DQotIAkJCS8qIElmIG5vdGhpbmcgd2FzIHJlYWQgcmV0dXJuIHdp dGggYW4gZXJyb3IgbWVzc2FnZSAqLw0KLS0JCQlyZXR1cm4gQlNUUl9FUlIgJiAtKHItPnNsZW4g PT0gMCk7DQotKwkJCXJldHVybiBCU1RSX0VSUiAmIC0oci0+c2xlbiA9PSBybG8pOw0KLSAJCX0N Ci0gDQotLQkJYltsXSA9IHRlcm0tPmRhdGFbMF07DQotKwkJYltsXSA9IHRlcm0tPmRhdGFbMF07 IC8qIFNldCBzZW50aW5lbCAqLw0KLSAJCWZvciAoaT0wOyAhdGVzdEluQ2hhckZpZWxkICgmY2Ys IGJbaV0pOyBpKyspIDsNCi0tCQlpZiAoaSA8IGwpIHsNCi0tCQkJLyogVGVybWluYXRvciBmb3Vu ZCwgcHVzaCBvdmVyLXJlYWQgYmFjayB0byBidWZmZXIgKi8NCi0tCQkJaSsrOw0KLS0JCQlyLT5z bGVuICs9IGk7DQotLQkJCXMtPmJ1ZmYtPnNsZW4gPSBsIC0gaTsNCi0tCQkJbWVtY3B5IChzLT5i dWZmLT5kYXRhLCBiICsgaSwgbCAtIGkpOw0KLS0JCQlyLT5kYXRhW3ItPnNsZW5dID0gJ1wwJzsN Ci0tCQkJcmV0dXJuIEJTVFJfT0s7DQotLQkJfQ0KLSsJCWlmIChpIDwgbCkgYnJlYWs7DQotIAkJ ci0+c2xlbiArPSBsOw0KLSAJfQ0KLSsNCi0rCS8qIFRlcm1pbmF0b3IgZm91bmQsIHB1c2ggb3Zl ci1yZWFkIGJhY2sgdG8gYnVmZmVyICovDQotKwlpKys7DQotKwlyLT5zbGVuICs9IGk7DQotKwlz LT5idWZmLT5zbGVuID0gbCAtIGk7DQotKwlic3RyX19tZW1jcHkgKHMtPmJ1ZmYtPmRhdGEsIGIg KyBpLCBsIC0gaSk7DQotKwlyLT5kYXRhW3ItPnNsZW5dID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7 DQotKwlyZXR1cm4gQlNUUl9PSzsNCi0gfQ0KLSANCi0gLyogIGludCBic3JlYWRhIChic3RyaW5n IHIsIHN0cnVjdCBiU3RyZWFtICogcywgaW50IG4pDQotQEAgLTE0NTEsMjkgKzIwOTYsNDUgQEAg c3RydWN0IGNoYXJGaWVsZCBjZjsNCi0gICogIGFkZGl0aW9uYWwgY2hhcmFjdGVycyBmcm9tIHRo ZSBjb3JlIHN0cmVhbSBiZXlvbmQgdmlydHVhbCBzdHJlYW0gcG9pbnRlci4NCi0gICovDQotIGlu dCBic3JlYWRhIChic3RyaW5nIHIsIHN0cnVjdCBiU3RyZWFtICogcywgaW50IG4pIHsNCi0taW50 IGw7DQotK2ludCBsLCByZXQsIG9yc2xlbjsNCi0gY2hhciAqIGI7DQotIHN0cnVjdCB0YWdic3Ry aW5nIHg7DQotIA0KLSAJaWYgKHMgPT0gTlVMTCB8fCBzLT5idWZmID09IE5VTEwgfHwgciA9PSBO VUxMIHx8IHItPm1sZW4gPD0gMA0KLS0JIHx8IHItPnNsZW4gPCAwIHx8IG4gPD0gMCkgcmV0dXJu IEJTVFJfRVJSOw0KLSsJIHx8IHItPnNsZW4gPCAwIHx8IHItPm1sZW4gPCByLT5zbGVuIHx8IG4g PD0gMCkgcmV0dXJuIEJTVFJfRVJSOw0KLSANCi0gCW4gKz0gci0+c2xlbjsNCi0gCWlmIChuIDw9 IDApIHJldHVybiBCU1RSX0VSUjsNCi0gDQotIAlsID0gcy0+YnVmZi0+c2xlbjsNCi0rDQotKwlv cnNsZW4gPSByLT5zbGVuOw0KLSsNCi0rCWlmICgwID09IGwpIHsNCi0rCQlpZiAocy0+aXNFT0Yp IHJldHVybiBCU1RSX0VSUjsNCi0rCQlpZiAoci0+bWxlbiA+IG4pIHsNCi0rCQkJbCA9IChpbnQp IHMtPnJlYWRGblB0ciAoci0+ZGF0YSArIHItPnNsZW4sIDEsIG4gLSByLT5zbGVuLCBzLT5wYXJt KTsNCi0rCQkJaWYgKDAgPj0gbCB8fCBsID4gbiAtIHItPnNsZW4pIHsNCi0rCQkJCXMtPmlzRU9G ID0gMTsNCi0rCQkJCXJldHVybiBCU1RSX0VSUjsNCi0rCQkJfQ0KLSsJCQlyLT5zbGVuICs9IGw7 DQotKwkJCXItPmRhdGFbci0+c2xlbl0gPSAodW5zaWduZWQgY2hhcikgJ1wwJzsNCi0rCQkJcmV0 dXJuIDA7DQotKwkJfQ0KLSsJfQ0KLSsNCi0gCWlmIChCU1RSX09LICE9IGJhbGxvYyAocy0+YnVm Ziwgcy0+bWF4QnVmZlN6ICsgMSkpIHJldHVybiBCU1RSX0VSUjsNCi0gCWIgPSAoY2hhciAqKSBz LT5idWZmLT5kYXRhOw0KLSAJeC5kYXRhID0gKHVuc2lnbmVkIGNoYXIgKikgYjsNCi0gDQotIAlk byB7DQotIAkJaWYgKGwgKyByLT5zbGVuID49IG4pIHsNCi0tCQkJaW50IHJldDsNCi0gCQkJeC5z bGVuID0gbiAtIHItPnNsZW47DQotIAkJCXJldCA9IGJjb25jYXQgKHIsICZ4KTsNCi0gCQkJcy0+ YnVmZi0+c2xlbiA9IGw7DQotIAkJCWlmIChCU1RSX09LID09IHJldCkgYmRlbGV0ZSAocy0+YnVm ZiwgMCwgeC5zbGVuKTsNCi0tCQkJcmV0dXJuIEJTVFJfRVJSICYgLShyLT5zbGVuID09IDApOw0K LSsJCQlyZXR1cm4gQlNUUl9FUlIgJiAtKHItPnNsZW4gPT0gb3JzbGVuKTsNCi0gCQl9DQotIA0K LSAJCXguc2xlbiA9IGw7DQotQEAgLTE0ODgsNyArMjE0OSw3IEBAIHN0cnVjdCB0YWdic3RyaW5n IHg7DQotIAlpZiAobCA8IDApIGwgPSAwOw0KLSAJaWYgKGwgPT0gMCkgcy0+aXNFT0YgPSAxOw0K LSAJcy0+YnVmZi0+c2xlbiA9IGw7DQotLQlyZXR1cm4gQlNUUl9FUlIgJiAtKHItPnNsZW4gPT0g MCk7DQotKwlyZXR1cm4gQlNUUl9FUlIgJiAtKHItPnNsZW4gPT0gb3JzbGVuKTsNCi0gfQ0KLSAN Ci0gLyogIGludCBic3JlYWRsbiAoYnN0cmluZyByLCBzdHJ1Y3QgYlN0cmVhbSAqIHMsIGNoYXIg dGVybWluYXRvcikNCi1AQCAtMTUxMyw3ICsyMTc0LDcgQEAgaW50IGJzcmVhZGxuIChic3RyaW5n IHIsIHN0cnVjdCBiU3RyZWFtIAotICAqICBUaGlzIGZ1bmN0aW9uIG1heSByZWFkIGFkZGl0aW9u YWwgY2hhcmFjdGVycyBmcm9tIHRoZSBjb3JlIHN0cmVhbSB0aGF0IA0KLSAgKiAgYXJlIG5vdCBy ZXR1cm5lZCwgYnV0IHdpbGwgYmUgcmV0YWluZWQgZm9yIHN1YnNlcXVlbnQgcmVhZCBvcGVyYXRp b25zLg0KLSAgKi8NCi0taW50IGJzcmVhZGxucyAoYnN0cmluZyByLCBzdHJ1Y3QgYlN0cmVhbSAq IHMsIGNvbnN0IGJzdHJpbmcgdGVybSkgew0KLStpbnQgYnNyZWFkbG5zIChic3RyaW5nIHIsIHN0 cnVjdCBiU3RyZWFtICogcywgY29uc3RfYnN0cmluZyB0ZXJtKSB7DQotIAlpZiAocyA9PSBOVUxM IHx8IHMtPmJ1ZmYgPT0gTlVMTCB8fCByID09IE5VTEwgfHwgdGVybSA9PSBOVUxMIA0KLSAJIHx8 IHRlcm0tPmRhdGEgPT0gTlVMTCB8fCByLT5tbGVuIDw9IDApIHJldHVybiBCU1RSX0VSUjsNCi0g CWlmICh0ZXJtLT5zbGVuID09IDEpIHJldHVybiBic3JlYWRsbiAociwgcywgdGVybS0+ZGF0YVsw XSk7DQotQEAgLTE1MzksMTUgKzIyMDAsMTUgQEAgaW50IGJzcmVhZCAoYnN0cmluZyByLCBzdHJ1 Y3QgYlN0cmVhbSAqIAotIAlyZXR1cm4gYnNyZWFkYSAociwgcywgbik7DQotIH0NCi0gDQotLS8q ICBpbnQgYnN1bnJlYWQgKHN0cnVjdCBiU3RyZWFtICogcywgY29uc3QgYnN0cmluZyBiKQ0KLSsv KiAgaW50IGJzdW5yZWFkIChzdHJ1Y3QgYlN0cmVhbSAqIHMsIGNvbnN0X2JzdHJpbmcgYikNCi0g ICoNCi0gICogIEluc2VydCBhIGJzdHJpbmcgaW50byB0aGUgYlN0cmVhbSBhdCB0aGUgY3VycmVu dCBwb3NpdGlvbi4gIFRoZXNlIA0KLSAgKiAgY2hhcmFjdGVycyB3aWxsIGJlIHJlYWQgcHJpb3Ig dG8gdGhvc2UgdGhhdCBhY3R1YWxseSBjb21lIGZyb20gdGhlIGNvcmUgDQotICAqICBzdHJlYW0u DQotICAqLw0KLS1pbnQgYnN1bnJlYWQgKHN0cnVjdCBiU3RyZWFtICogcywgY29uc3QgYnN0cmlu ZyBiKSB7DQotK2ludCBic3VucmVhZCAoc3RydWN0IGJTdHJlYW0gKiBzLCBjb25zdF9ic3RyaW5n IGIpIHsNCi0gCWlmIChzID09IE5VTEwgfHwgcy0+YnVmZiA9PSBOVUxMKSByZXR1cm4gQlNUUl9F UlI7DQotLQlyZXR1cm4gYmluc2VydCAocy0+YnVmZiwgMCwgYiwgJz8nKTsNCi0rCXJldHVybiBi aW5zZXJ0IChzLT5idWZmLCAwLCBiLCAodW5zaWduZWQgY2hhcikgJz8nKTsNCi0gfQ0KLSANCi0g LyogIGludCBic3BlZWsgKGJzdHJpbmcgciwgY29uc3Qgc3RydWN0IGJTdHJlYW0gKiBzKQ0KLUBA IC0xNTU2LDI3ICsyMjE3LDIzIEBAIGludCBic3VucmVhZCAoc3RydWN0IGJTdHJlYW0gKiBzLCBj b25zdCAKLSAgKiAgcmVhZCBwcmlvciB0byByZWFkcyBmcm9tIHRoZSBjb3JlIHN0cmVhbS4NCi0g ICovDQotIGludCBic3BlZWsgKGJzdHJpbmcgciwgY29uc3Qgc3RydWN0IGJTdHJlYW0gKiBzKSB7 DQotLQlpZiAocyA9PSBOVUxMIHx8IHMtPmJ1ZmYgPT0gTlVMTCB8fCByID09IE5VTEwgfHwgci0+ c2xlbiA+IHItPm1sZW4gfHwgci0+c2xlbiA8IDApIHJldHVybiBCU1RSX0VSUjsNCi0tCXItPnNs ZW4gPSAwOw0KLS0JcmV0dXJuIGJjb25jYXQgKHIsIHMtPmJ1ZmYpOw0KLSsJaWYgKHMgPT0gTlVM TCB8fCBzLT5idWZmID09IE5VTEwpIHJldHVybiBCU1RSX0VSUjsNCi0rCXJldHVybiBiYXNzaWdu IChyLCBzLT5idWZmKTsNCi0gfQ0KLSANCi0tLyogIGJzdHJpbmcgYmpvaW4gKGNvbnN0IHN0cnVj dCBic3RyTGlzdCAqIGJsLCBjb25zdCBic3RyaW5nIHNlcCk7DQotKy8qICBic3RyaW5nIGJqb2lu IChjb25zdCBzdHJ1Y3QgYnN0ckxpc3QgKiBibCwgY29uc3RfYnN0cmluZyBzZXApOw0KLSAgKg0K LSAgKiAgSm9pbiB0aGUgZW50cmllcyBvZiBhIGJzdHJMaXN0IGludG8gb25lIGJzdHJpbmcgYnkg c2VxdWVudGlhbGx5IA0KLSAgKiAgY29uY2F0ZW5hdGluZyB0aGVtIHdpdGggdGhlIHNlcCBzdHJp bmcgaW4gYmV0d2Vlbi4gIElmIHRoZXJlIGlzIGFuIGVycm9yIA0KLSAgKiAgTlVMTCBpcyByZXR1 cm5lZCwgb3RoZXJ3aXNlIGEgYnN0cmluZyB3aXRoIHRoZSBjb3JyZWN0IHJlc3VsdCBpcyByZXR1 cm5lZC4NCi0gICovDQotLWJzdHJpbmcgYmpvaW4gKGNvbnN0IHN0cnVjdCBic3RyTGlzdCAqIGJs LCBjb25zdCBic3RyaW5nIHNlcCkgew0KLStic3RyaW5nIGJqb2luIChjb25zdCBzdHJ1Y3QgYnN0 ckxpc3QgKiBibCwgY29uc3RfYnN0cmluZyBzZXApIHsNCi0gYnN0cmluZyBiOw0KLSBpbnQgaSwg YywgdjsNCi0gDQotIAlpZiAoYmwgPT0gTlVMTCB8fCBibC0+cXR5IDwgMCkgcmV0dXJuIE5VTEw7 DQotIAlpZiAoc2VwICE9IE5VTEwgJiYgKHNlcC0+c2xlbiA8IDAgfHwgc2VwLT5kYXRhID09IE5V TEwpKSByZXR1cm4gTlVMTDsNCi0gDQotLQliID0gKGJzdHJpbmcpIG1hbGxvYyAoc2l6ZW9mIChz dHJ1Y3QgdGFnYnN0cmluZykpOw0KLS0JaWYgKGIgPT0gTlVMTCkgcmV0dXJuIE5VTEw7IC8qIE91 dCBvZiBtZW1vcnkgKi8NCi0tDQotIAlmb3IgKGkgPSAwLCBjID0gMTsgaSA8IGJsLT5xdHk7IGkr Kykgew0KLSAJCXYgPSBibC0+ZW50cnlbaV0tPnNsZW47DQotIAkJaWYgKHYgPCAwKSByZXR1cm4g TlVMTDsJLyogSW52YWxpZCBpbnB1dCAqLw0KLUBAIC0xNTg1LDMwICsyMjQyLDM1IEBAIGludCBp LCBjLCB2Ow0KLSAJfQ0KLSANCi0gCWlmIChzZXAgIT0gTlVMTCkgYyArPSAoYmwtPnF0eSAtIDEp ICogc2VwLT5zbGVuOw0KLS0JYi0+ZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopIG1hbGxvYyAoYyk7 DQotLQlpZiAoYi0+ZGF0YSA9PSBOVUxMKSByZXR1cm4gTlVMTDsNCi0rDQotKwliID0gKGJzdHJp bmcpIGJzdHJfX2FsbG9jIChzaXplb2YgKHN0cnVjdCB0YWdic3RyaW5nKSk7DQotKwlpZiAoTlVM TCA9PSBiKSByZXR1cm4gTlVMTDsgLyogT3V0IG9mIG1lbW9yeSAqLw0KLSsJYi0+ZGF0YSA9ICh1 bnNpZ25lZCBjaGFyICopIGJzdHJfX2FsbG9jIChjKTsNCi0rCWlmIChiLT5kYXRhID09IE5VTEwp IHsNCi0rCQlic3RyX19mcmVlIChiKTsNCi0rCQlyZXR1cm4gTlVMTDsNCi0rCX0NCi0gDQotIAli LT5tbGVuID0gYzsNCi0gCWItPnNsZW4gPSBjLTE7DQotIA0KLSAJZm9yIChpID0gMCwgYyA9IDA7 IGkgPCBibC0+cXR5OyBpKyspIHsNCi0gCQlpZiAoaSA+IDAgJiYgc2VwICE9IE5VTEwpIHsNCi0t CQkJbWVtY3B5IChiLT5kYXRhICsgYywgc2VwLT5kYXRhLCBzZXAtPnNsZW4pOw0KLSsJCQlic3Ry X19tZW1jcHkgKGItPmRhdGEgKyBjLCBzZXAtPmRhdGEsIHNlcC0+c2xlbik7DQotIAkJCWMgKz0g c2VwLT5zbGVuOw0KLSAJCX0NCi0gCQl2ID0gYmwtPmVudHJ5W2ldLT5zbGVuOw0KLS0JCW1lbWNw eSAoYi0+ZGF0YSArIGMsIGJsLT5lbnRyeVtpXS0+ZGF0YSwgdik7DQotKwkJYnN0cl9fbWVtY3B5 IChiLT5kYXRhICsgYywgYmwtPmVudHJ5W2ldLT5kYXRhLCB2KTsNCi0gCQljICs9IHY7DQotLQ0K LSAJfQ0KLS0JYi0+ZGF0YVtjXSA9ICdcMCc7DQotKwliLT5kYXRhW2NdID0gKHVuc2lnbmVkIGNo YXIpICdcMCc7DQotIAlyZXR1cm4gYjsNCi0gfQ0KLSANCi0gI2RlZmluZSBCU1NTQ19CVUZGX0xF TiAoMjU2KQ0KLSANCi0tLyogIGludCBic3NwbGl0c2NiIChzdHJ1Y3QgYlN0cmVhbSAqIHMsIGNv bnN0IGJzdHJpbmcgc3BsaXRTdHIsIA0KLS0gKglpbnQgKCogY2IpICh2b2lkICogcGFybSwgaW50 IG9mcywgY29uc3QgYnN0cmluZyBlbnRyeSksIHZvaWQgKiBwYXJtKQ0KLSsvKiAgaW50IGJzc3Bs aXRzY2IgKHN0cnVjdCBiU3RyZWFtICogcywgY29uc3RfYnN0cmluZyBzcGxpdFN0ciwgDQotKyAq CWludCAoKiBjYikgKHZvaWQgKiBwYXJtLCBpbnQgb2ZzLCBjb25zdF9ic3RyaW5nIGVudHJ5KSwg dm9pZCAqIHBhcm0pDQotICAqDQotICAqICBJdGVyYXRlIHRoZSBzZXQgb2YgZGlzam9pbnQgc2Vx dWVudGlhbCBzdWJzdHJpbmdzIHJlYWQgZnJvbSBhIHN0cmVhbSANCi0gICogIGRpdmlkZWQgYnkg YW55IG9mIHRoZSBjaGFyYWN0ZXJzIGluIHNwbGl0U3RyLiAgQW4gZW1wdHkgc3BsaXRTdHIgY2F1 c2VzIA0KLUBAIC0xNjI0LDggKzIyODYsOCBAQCBpbnQgaSwgYywgdjsNCi0gICogIHJldHVybiB3 aXRoIGEgbmVnYXRpdmUgdmFsdWUsIG90aGVyd2lzZSBic3NwbGl0c2NiIHdpbGwgY29udGludWUg aW4gYW4gDQotICAqICB1bmRlZmluZWQgbWFubmVyLg0KLSAgKi8NCi0taW50IGJzc3BsaXRzY2Ig KHN0cnVjdCBiU3RyZWFtICogcywgY29uc3QgYnN0cmluZyBzcGxpdFN0ciwgDQotLQlpbnQgKCog Y2IpICh2b2lkICogcGFybSwgaW50IG9mcywgY29uc3QgYnN0cmluZyBlbnRyeSksIHZvaWQgKiBw YXJtKSB7DQotK2ludCBic3NwbGl0c2NiIChzdHJ1Y3QgYlN0cmVhbSAqIHMsIGNvbnN0X2JzdHJp bmcgc3BsaXRTdHIsIA0KLSsJaW50ICgqIGNiKSAodm9pZCAqIHBhcm0sIGludCBvZnMsIGNvbnN0 X2JzdHJpbmcgZW50cnkpLCB2b2lkICogcGFybSkgew0KLSBzdHJ1Y3QgY2hhckZpZWxkIGNocnM7 DQotIGJzdHJpbmcgYnVmZjsNCi0gaW50IGksIHAsIHJldDsNCi1AQCAtMTY0NiwxNiArMjMwOCwy MSBAQCBpbnQgaSwgcCwgcmV0Ow0KLSAJCQlpZiAoaSA+PSBidWZmLT5zbGVuKSB7DQotIAkJCQli c3JlYWRhIChidWZmLCBzLCBCU1NTQ19CVUZGX0xFTik7DQotIAkJCQlpZiAoaSA+PSBidWZmLT5z bGVuKSB7DQotLQkJCQkJaWYgKChyZXQgPSBjYiAocGFybSwgcCwgYnVmZikpID4gMCkgcmV0ID0g MDsNCi0rCQkJCQlpZiAoMCA8IChyZXQgPSBjYiAocGFybSwgcCwgYnVmZikpKSByZXQgPSAwOw0K LSAJCQkJCWJyZWFrOw0KLSAJCQkJfQ0KLSAJCQl9DQotIAkJCWlmICh0ZXN0SW5DaGFyRmllbGQg KCZjaHJzLCBidWZmLT5kYXRhW2ldKSkgew0KLSAJCQkJc3RydWN0IHRhZ2JzdHJpbmcgdDsNCi0r CQkJCXVuc2lnbmVkIGNoYXIgYzsNCi0rDQotIAkJCQlibGsydGJzdHIgKHQsIGJ1ZmYtPmRhdGEg KyBpICsgMSwgYnVmZi0+c2xlbiAtIChpICsgMSkpOw0KLSAJCQkJaWYgKChyZXQgPSBic3VucmVh ZCAocywgJnQpKSA8IDApIGJyZWFrOw0KLSAJCQkJYnVmZi0+c2xlbiA9IGk7DQotKwkJCQljID0g YnVmZi0+ZGF0YVtpXTsNCi0rCQkJCWJ1ZmYtPmRhdGFbaV0gPSAodW5zaWduZWQgY2hhcikgJ1ww JzsNCi0gCQkJCWlmICgocmV0ID0gY2IgKHBhcm0sIHAsIGJ1ZmYpKSA8IDApIGJyZWFrOw0KLSsJ CQkJYnVmZi0+ZGF0YVtpXSA9IGM7DQotIAkJCQlidWZmLT5zbGVuID0gMDsNCi0gCQkJCXAgKz0g aSArIDE7DQotIAkJCQlpID0gLTE7DQotQEAgLTE2NjgsMjUgKzIzMzUsMTU1IEBAIGludCBpLCBw LCByZXQ7DQotIAlyZXR1cm4gcmV0Ow0KLSB9DQotIA0KLSsvKiAgaW50IGJzc3BsaXRzdHJjYiAo c3RydWN0IGJTdHJlYW0gKiBzLCBjb25zdF9ic3RyaW5nIHNwbGl0U3RyLCANCi0rICoJaW50ICgq IGNiKSAodm9pZCAqIHBhcm0sIGludCBvZnMsIGNvbnN0X2JzdHJpbmcgZW50cnkpLCB2b2lkICog cGFybSkNCi0rICoNCi0rICogIEl0ZXJhdGUgdGhlIHNldCBvZiBkaXNqb2ludCBzZXF1ZW50aWFs IHN1YnN0cmluZ3MgcmVhZCBmcm9tIGEgc3RyZWFtIA0KLSsgKiAgZGl2aWRlZCBieSB0aGUgZW50 aXJlIHN1YnN0cmluZyBzcGxpdFN0ci4gIEFuIGVtcHR5IHNwbGl0U3RyIGNhdXNlcyANCi0rICog IGVhY2ggY2hhcmFjdGVyIG9mIHRoZSBzdHJlYW0gdG8gYmUgaXRlcmF0ZWQuDQotKyAqDQotKyAq ICBOb3RlOiBBdCB0aGUgcG9pbnQgb2YgY2FsbGluZyB0aGUgY2IgZnVuY3Rpb24sIHRoZSBiU3Ry ZWFtIHBvaW50ZXIgaXMgDQotKyAqICBwb2ludGVkIGV4YWN0bHkgYXQgdGhlIHBvc2l0aW9uIHJp Z2h0IGFmdGVyIGhhdmluZyByZWFkIHRoZSBzcGxpdCANCi0rICogIGNoYXJhY3Rlci4gIFRoZSBj YiBmdW5jdGlvbiBjYW4gYWN0IG9uIHRoZSBzdHJlYW0gYnkgY2F1c2luZyB0aGUgYlN0cmVhbQ0K LSsgKiAgcG9pbnRlciB0byBtb3ZlLCBhbmQgYnNzcGxpdHNjYiB3aWxsIGNvbnRpbnVlIGJ5IHN0 YXJ0aW5nIHRoZSBuZXh0IHNwbGl0DQotKyAqICBhdCB0aGUgcG9zaXRpb24gb2YgdGhlIHBvaW50 ZXIgYWZ0ZXIgdGhlIHJldHVybiBmcm9tIGNiLg0KLSsgKg0KLSsgKiAgSG93ZXZlciwgaWYgdGhl IGNiIGNhdXNlcyB0aGUgYlN0cmVhbSBzIHRvIGJlIGRlc3Ryb3llZCB0aGVuIHRoZSBjYiBtdXN0 DQotKyAqICByZXR1cm4gd2l0aCBhIG5lZ2F0aXZlIHZhbHVlLCBvdGhlcndpc2UgYnNzcGxpdHNj YiB3aWxsIGNvbnRpbnVlIGluIGFuIA0KLSsgKiAgdW5kZWZpbmVkIG1hbm5lci4NCi0rICovDQot K2ludCBic3NwbGl0c3RyY2IgKHN0cnVjdCBiU3RyZWFtICogcywgY29uc3RfYnN0cmluZyBzcGxp dFN0ciwgDQotKwlpbnQgKCogY2IpICh2b2lkICogcGFybSwgaW50IG9mcywgY29uc3RfYnN0cmlu ZyBlbnRyeSksIHZvaWQgKiBwYXJtKSB7DQotK2JzdHJpbmcgYnVmZjsNCi0raW50IGksIHAsIHJl dDsNCi0rDQotKwlpZiAoY2IgPT0gTlVMTCB8fCBzID09IE5VTEwgfHwgcy0+cmVhZEZuUHRyID09 IE5VTEwgDQotKwkgfHwgc3BsaXRTdHIgPT0gTlVMTCB8fCBzcGxpdFN0ci0+c2xlbiA8IDApIHJl dHVybiBCU1RSX0VSUjsNCi0rDQotKwlpZiAoc3BsaXRTdHItPnNsZW4gPT0gMSkgcmV0dXJuIGJz c3BsaXRzY2IgKHMsIHNwbGl0U3RyLCBjYiwgcGFybSk7DQotKw0KLSsJaWYgKE5VTEwgPT0gKGJ1 ZmYgPSBiZnJvbWNzdHIgKCIiKSkpIHJldHVybiBCU1RSX0VSUjsNCi0rDQotKwlpZiAoc3BsaXRT dHItPnNsZW4gPT0gMCkgew0KLSsJCWZvciAoaT0wOyBic3JlYWRhIChidWZmLCBzLCBCU1NTQ19C VUZGX0xFTikgPj0gMDsgaSsrKSB7DQotKwkJCWlmICgocmV0ID0gY2IgKHBhcm0sIDAsIGJ1ZmYp KSA8IDApIHsNCi0rCQkJCWJkZXN0cm95IChidWZmKTsNCi0rCQkJCXJldHVybiByZXQ7DQotKwkJ CX0NCi0rCQkJYnVmZi0+c2xlbiA9IDA7DQotKwkJfQ0KLSsJCXJldHVybiBCU1RSX09LOw0KLSsJ fSBlbHNlIHsNCi0rCQlyZXQgPSBwID0gaSA9IDA7DQotKwkJZm9yIChpPXA9MDs7KSB7DQotKwkJ CWlmICgocmV0ID0gYmluc3RyIChidWZmLCAwLCBzcGxpdFN0cikpID49IDApIHsNCi0rCQkJCXN0 cnVjdCB0YWdic3RyaW5nIHQ7DQotKwkJCQlibGsydGJzdHIgKHQsIGJ1ZmYtPmRhdGEsIHJldCk7 DQotKwkJCQlpID0gcmV0ICsgc3BsaXRTdHItPnNsZW47DQotKwkJCQlpZiAoKHJldCA9IGNiIChw YXJtLCBwLCAmdCkpIDwgMCkgYnJlYWs7DQotKwkJCQlwICs9IGk7DQotKwkJCQliZGVsZXRlIChi dWZmLCAwLCBpKTsNCi0rCQkJfSBlbHNlIHsNCi0rCQkJCWJzcmVhZGEgKGJ1ZmYsIHMsIEJTU1ND X0JVRkZfTEVOKTsNCi0rCQkJCWlmIChic2VvZiAocykpIHsNCi0rCQkJCQlpZiAoKHJldCA9IGNi IChwYXJtLCBwLCBidWZmKSkgPiAwKSByZXQgPSAwOw0KLSsJCQkJCWJyZWFrOw0KLSsJCQkJfQ0K LSsJCQl9DQotKwkJfQ0KLSsJfQ0KLSsNCi0rCWJkZXN0cm95IChidWZmKTsNCi0rCXJldHVybiBy ZXQ7DQotK30NCi0rDQotKy8qICBpbnQgYnN0ckxpc3RDcmVhdGUgKHZvaWQpDQotKyAqDQotKyAq ICBDcmVhdGUgYSBic3RyTGlzdC4NCi0rICovDQotK3N0cnVjdCBic3RyTGlzdCAqIGJzdHJMaXN0 Q3JlYXRlICh2b2lkKSB7DQotK3N0cnVjdCBic3RyTGlzdCAqIHNsID0gKHN0cnVjdCBic3RyTGlz dCAqKSBic3RyX19hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgYnN0ckxpc3QpKTsNCi0rCWlmIChzbCkg ew0KLSsJCXNsLT5lbnRyeSA9IChic3RyaW5nICopIGJzdHJfX2FsbG9jICgxKnNpemVvZiAoYnN0 cmluZykpOw0KLSsJCWlmICghc2wtPmVudHJ5KSB7DQotKwkJCWJzdHJfX2ZyZWUgKHNsKTsNCi0r CQkJc2wgPSBOVUxMOw0KLSsJCX0gZWxzZSB7DQotKwkJCXNsLT5xdHkgPSAwOw0KLSsJCQlzbC0+ bWxlbiA9IDE7DQotKwkJfQ0KLSsJfQ0KLSsJcmV0dXJuIHNsOw0KLSt9DQotKw0KLSAvKiAgaW50 IGJzdHJMaXN0RGVzdHJveSAoc3RydWN0IGJzdHJMaXN0ICogc2wpDQotICAqDQotLSAqICBEZXN0 cm95IGEgYnN0ckxpc3QgdGhhdCBoYXMgYmVlbiBjcmVhdGVkIGJ5IGJzcGxpdCBvciBic3BsaXRz Lg0KLSsgKiAgRGVzdHJveSBhIGJzdHJMaXN0IHRoYXQgaGFzIGJlZW4gY3JlYXRlZCBieSBic3Bs aXQsIGJzcGxpdHMgb3IgYnN0ckxpc3RDcmVhdGUuDQotICAqLw0KLSBpbnQgYnN0ckxpc3REZXN0 cm95IChzdHJ1Y3QgYnN0ckxpc3QgKiBzbCkgew0KLSBpbnQgaTsNCi0tCWlmIChzbCA9PSBOVUxM KSByZXR1cm4gQlNUUl9FUlI7DQotKwlpZiAoc2wgPT0gTlVMTCB8fCBzbC0+cXR5IDwgMCkgcmV0 dXJuIEJTVFJfRVJSOw0KLSAJZm9yIChpPTA7IGkgPCBzbC0+cXR5OyBpKyspIHsNCi0gCQlpZiAo c2wtPmVudHJ5W2ldKSB7DQotIAkJCWJkZXN0cm95IChzbC0+ZW50cnlbaV0pOw0KLSAJCQlzbC0+ ZW50cnlbaV0gPSBOVUxMOw0KLSAJCX0NCi0gCX0NCi0tCXNsLT5xdHkgPSAtMTsNCi0tCWZyZWUg KHNsKTsNCi0rCXNsLT5xdHkgID0gLTE7DQotKwlzbC0+bWxlbiA9IC0xOw0KLSsJYnN0cl9fZnJl ZSAoc2wtPmVudHJ5KTsNCi0rCXNsLT5lbnRyeSA9IE5VTEw7DQotKwlic3RyX19mcmVlIChzbCk7 DQotKwlyZXR1cm4gQlNUUl9PSzsNCi0rfQ0KLSsNCi0rLyogIGludCBic3RyTGlzdEFsbG9jIChz dHJ1Y3QgYnN0ckxpc3QgKiBzbCwgaW50IG1zeikNCi0rICoNCi0rICogIEVuc3VyZSB0aGF0IHRo ZXJlIGlzIG1lbW9yeSBmb3IgYXQgbGVhc3QgbXN6IG51bWJlciBvZiBlbnRyaWVzIGZvciB0aGUN Ci0rICogIGxpc3QuDQotKyAqLw0KLStpbnQgYnN0ckxpc3RBbGxvYyAoc3RydWN0IGJzdHJMaXN0 ICogc2wsIGludCBtc3opIHsNCi0rYnN0cmluZyAqIGw7DQotK2ludCBzbXN6Ow0KLStzaXplX3Qg bnN6Ow0KLSsJaWYgKCFzbCB8fCBtc3ogPD0gMCB8fCAhc2wtPmVudHJ5IHx8IHNsLT5xdHkgPCAw IHx8IHNsLT5tbGVuIDw9IDAgfHwgc2wtPnF0eSA+IHNsLT5tbGVuKSByZXR1cm4gQlNUUl9FUlI7 DQotKwlpZiAoc2wtPm1sZW4gPj0gbXN6KSByZXR1cm4gQlNUUl9PSzsNCi0rCXNtc3ogPSBzbmFw VXBTaXplIChtc3opOw0KLSsJbnN6ID0gKChzaXplX3QpIHNtc3opICogc2l6ZW9mIChic3RyaW5n KTsNCi0rCWlmIChuc3ogPCAoc2l6ZV90KSBzbXN6KSByZXR1cm4gQlNUUl9FUlI7DQotKwlsID0g KGJzdHJpbmcgKikgYnN0cl9fcmVhbGxvYyAoc2wtPmVudHJ5LCBuc3opOw0KLSsJaWYgKCFsKSB7 DQotKwkJc21zeiA9IG1zejsNCi0rCQluc3ogPSAoKHNpemVfdCkgc21zeikgKiBzaXplb2YgKGJz dHJpbmcpOw0KLSsJCWwgPSAoYnN0cmluZyAqKSBic3RyX19yZWFsbG9jIChzbC0+ZW50cnksIG5z eik7DQotKwkJaWYgKCFsKSByZXR1cm4gQlNUUl9FUlI7DQotKwl9DQotKwlzbC0+bWxlbiA9IHNt c3o7DQotKwlzbC0+ZW50cnkgPSBsOw0KLSsJcmV0dXJuIEJTVFJfT0s7DQotK30NCi0rDQotKy8q ICBpbnQgYnN0ckxpc3RBbGxvY01pbiAoc3RydWN0IGJzdHJMaXN0ICogc2wsIGludCBtc3opDQot KyAqDQotKyAqICBUcnkgdG8gYWxsb2NhdGUgdGhlIG1pbmltdW0gYW1vdW50IG9mIG1lbW9yeSBm b3IgdGhlIGxpc3QgdG8gaW5jbHVkZSBhdA0KLSsgKiAgbGVhc3QgbXN6IGVudHJpZXMgb3Igc2wt PnF0eSB3aGljaGV2ZXIgaXMgZ3JlYXRlci4NCi0rICovDQotK2ludCBic3RyTGlzdEFsbG9jTWlu IChzdHJ1Y3QgYnN0ckxpc3QgKiBzbCwgaW50IG1zeikgew0KLStic3RyaW5nICogbDsNCi0rc2l6 ZV90IG5zejsNCi0rCWlmICghc2wgfHwgbXN6IDw9IDAgfHwgIXNsLT5lbnRyeSB8fCBzbC0+cXR5 IDwgMCB8fCBzbC0+bWxlbiA8PSAwIHx8IHNsLT5xdHkgPiBzbC0+bWxlbikgcmV0dXJuIEJTVFJf RVJSOw0KLSsJaWYgKG1zeiA8IHNsLT5xdHkpIG1zeiA9IHNsLT5xdHk7DQotKwlpZiAoc2wtPm1s ZW4gPT0gbXN6KSByZXR1cm4gQlNUUl9PSzsNCi0rCW5zeiA9ICgoc2l6ZV90KSBtc3opICogc2l6 ZW9mIChic3RyaW5nKTsNCi0rCWlmIChuc3ogPCAoc2l6ZV90KSBtc3opIHJldHVybiBCU1RSX0VS UjsNCi0rCWwgPSAoYnN0cmluZyAqKSBic3RyX19yZWFsbG9jIChzbC0+ZW50cnksIG5zeik7DQot KwlpZiAoIWwpIHJldHVybiBCU1RSX0VSUjsNCi0rCXNsLT5tbGVuID0gbXN6Ow0KLSsJc2wtPmVu dHJ5ID0gbDsNCi0gCXJldHVybiBCU1RSX09LOw0KLSB9DQotIA0KLS0vKiAgaW50IGJzcGxpdGNi IChjb25zdCBic3RyaW5nIHN0ciwgdW5zaWduZWQgY2hhciBzcGxpdENoYXIsIGludCBwb3MsDQot Ky8qICBpbnQgYnNwbGl0Y2IgKGNvbnN0X2JzdHJpbmcgc3RyLCB1bnNpZ25lZCBjaGFyIHNwbGl0 Q2hhciwgaW50IHBvcywNCi0gICoJaW50ICgqIGNiKSAodm9pZCAqIHBhcm0sIGludCBvZnMsIGlu dCBsZW4pLCB2b2lkICogcGFybSkNCi0gICoNCi0gICogIEl0ZXJhdGUgdGhlIHNldCBvZiBkaXNq b2ludCBzZXF1ZW50aWFsIHN1YnN0cmluZ3Mgb3ZlciBzdHIgZGl2aWRlZCBieSB0aGUNCi1AQCAt MTcwMSw3ICsyNDk4LDcgQEAgaW50IGk7DQotICAqICBjYiBmdW5jdGlvbiBkZXN0cm95cyBzdHIs IHRoZW4gaXQgKm11c3QqIHJldHVybiB3aXRoIGEgbmVnYXRpdmUgdmFsdWUsIA0KLSAgKiAgb3Ro ZXJ3aXNlIGJzcGxpdGNiIHdpbGwgY29udGludWUgaW4gYW4gdW5kZWZpbmVkIG1hbm5lci4NCi0g ICovDQotLWludCBic3BsaXRjYiAoY29uc3QgYnN0cmluZyBzdHIsIHVuc2lnbmVkIGNoYXIgc3Bs aXRDaGFyLCBpbnQgcG9zLA0KLStpbnQgYnNwbGl0Y2IgKGNvbnN0X2JzdHJpbmcgc3RyLCB1bnNp Z25lZCBjaGFyIHNwbGl0Q2hhciwgaW50IHBvcywNCi0gCWludCAoKiBjYikgKHZvaWQgKiBwYXJt LCBpbnQgb2ZzLCBpbnQgbGVuKSwgdm9pZCAqIHBhcm0pIHsNCi0gaW50IGksIHAsIHJldDsNCi0g DQotQEAgLTE3MTUsMTEgKzI1MTIsMTEgQEAgaW50IGksIHAsIHJldDsNCi0gCQl9DQotIAkJaWYg KChyZXQgPSBjYiAocGFybSwgcCwgaSAtIHApKSA8IDApIHJldHVybiByZXQ7DQotIAkJcCA9IGkg KyAxOw0KLS0JfSB3aGlsZSAocCA8IHN0ci0+c2xlbik7DQotLQlyZXR1cm4gMDsNCi0rCX0gd2hp bGUgKHAgPD0gc3RyLT5zbGVuKTsNCi0rCXJldHVybiBCU1RSX09LOw0KLSB9DQotIA0KLS0vKiAg aW50IGJzcGxpdHNjYiAoY29uc3QgYnN0cmluZyBzdHIsIGNvbnN0IGJzdHJpbmcgc3BsaXRTdHIs IGludCBwb3MsDQotKy8qICBpbnQgYnNwbGl0c2NiIChjb25zdF9ic3RyaW5nIHN0ciwgY29uc3Rf YnN0cmluZyBzcGxpdFN0ciwgaW50IHBvcywNCi0gICoJaW50ICgqIGNiKSAodm9pZCAqIHBhcm0s IGludCBvZnMsIGludCBsZW4pLCB2b2lkICogcGFybSkNCi0gICoNCi0gICogIEl0ZXJhdGUgdGhl IHNldCBvZiBkaXNqb2ludCBzZXF1ZW50aWFsIHN1YnN0cmluZ3Mgb3ZlciBzdHIgZGl2aWRlZCBi eSBhbnkgDQotQEAgLTE3MzUsNyArMjUzMiw3IEBAIGludCBpLCBwLCByZXQ7DQotICAqICBjYiBm dW5jdGlvbiBkZXN0cm95cyBzdHIsIHRoZW4gaXQgKm11c3QqIHJldHVybiB3aXRoIGEgbmVnYXRp dmUgdmFsdWUsIA0KLSAgKiAgb3RoZXJ3aXNlIGJzcGxpdHNjYiB3aWxsIGNvbnRpbnVlIGluIGFu IHVuZGVmaW5lZCBtYW5uZXIuDQotICAqLw0KLS1pbnQgYnNwbGl0c2NiIChjb25zdCBic3RyaW5n IHN0ciwgY29uc3QgYnN0cmluZyBzcGxpdFN0ciwgaW50IHBvcywNCi0raW50IGJzcGxpdHNjYiAo Y29uc3RfYnN0cmluZyBzdHIsIGNvbnN0X2JzdHJpbmcgc3BsaXRTdHIsIGludCBwb3MsDQotIAlp bnQgKCogY2IpICh2b2lkICogcGFybSwgaW50IG9mcywgaW50IGxlbiksIHZvaWQgKiBwYXJtKSB7 DQotIHN0cnVjdCBjaGFyRmllbGQgY2hyczsNCi0gaW50IGksIHAsIHJldDsNCi1AQCAtMTc1OSw1 NiArMjU1NiwxMDIgQEAgaW50IGksIHAsIHJldDsNCi0gCQl9DQotIAkJaWYgKChyZXQgPSBjYiAo cGFybSwgcCwgaSAtIHApKSA8IDApIHJldHVybiByZXQ7DQotIAkJcCA9IGkgKyAxOw0KLS0JfSB3 aGlsZSAocCA8IHN0ci0+c2xlbik7DQotLQlyZXR1cm4gMDsNCi0rCX0gd2hpbGUgKHAgPD0gc3Ry LT5zbGVuKTsNCi0rCXJldHVybiBCU1RSX09LOw0KLSB9DQotIA0KLS0jaW5jbHVkZSA8c3RkZGVm Lmg+DQotKy8qICBpbnQgYnNwbGl0c3RyY2IgKGNvbnN0X2JzdHJpbmcgc3RyLCBjb25zdF9ic3Ry aW5nIHNwbGl0U3RyLCBpbnQgcG9zLA0KLSsgKglpbnQgKCogY2IpICh2b2lkICogcGFybSwgaW50 IG9mcywgaW50IGxlbiksIHZvaWQgKiBwYXJtKQ0KLSsgKg0KLSsgKiAgSXRlcmF0ZSB0aGUgc2V0 IG9mIGRpc2pvaW50IHNlcXVlbnRpYWwgc3Vic3RyaW5ncyBvdmVyIHN0ciBkaXZpZGVkIGJ5IHRo ZSANCi0rICogIHN1YnN0cmluZyBzcGxpdFN0ci4gIEFuIGVtcHR5IHNwbGl0U3RyIGNhdXNlcyB0 aGUgd2hvbGUgc3RyIHRvIGJlIA0KLSsgKiAgaXRlcmF0ZWQgb25jZS4NCi0rICoNCi0rICogIE5v dGU6IE5vbi1kZXN0cnVjdGl2ZSBtb2RpZmljYXRpb24gb2Ygc3RyIGZyb20gd2l0aGluIHRoZSBj YiBmdW5jdGlvbiANCi0rICogIHdoaWxlIHBlcmZvcm1pbmcgdGhpcyBzcGxpdCBpcyBub3QgdW5k ZWZpbmVkLiAgYnNwbGl0c3RyY2IgYmVoYXZlcyBpbiANCi0rICogIHNlcXVlbnRpYWwgbG9jayBz dGVwIHdpdGggY2FsbHMgdG8gY2IuICBJLmUuLCBhZnRlciByZXR1cm5pbmcgZnJvbSBhIGNiIA0K LSsgKiAgdGhhdCByZXR1cm4gYSBub24tbmVnYXRpdmUgaW50ZWdlciwgYnNwbGl0c2NiIGNvbnRp bnVlcyBmcm9tIHRoZSBwb3NpdGlvbiANCi0rICogIDEgY2hhcmFjdGVyIGFmdGVyIHRoZSBsYXN0 IGRldGVjdGVkIHNwbGl0IGNoYXJhY3RlciBhbmQgaXQgd2lsbCBoYWx0IA0KLSsgKiAgaW1tZWRp YXRlbHkgaWYgdGhlIGxlbmd0aCBvZiBzdHIgZmFsbHMgYmVsb3cgdGhpcyBwb2ludC4gIEhvd2V2 ZXIsIGlmIHRoZSANCi0rICogIGNiIGZ1bmN0aW9uIGRlc3Ryb3lzIHN0ciwgdGhlbiBpdCAqbXVz dCogcmV0dXJuIHdpdGggYSBuZWdhdGl2ZSB2YWx1ZSwgDQotKyAqICBvdGhlcndpc2UgYnNwbGl0 c2NiIHdpbGwgY29udGludWUgaW4gYW4gdW5kZWZpbmVkIG1hbm5lci4NCi0rICovDQotK2ludCBi c3BsaXRzdHJjYiAoY29uc3RfYnN0cmluZyBzdHIsIGNvbnN0X2JzdHJpbmcgc3BsaXRTdHIsIGlu dCBwb3MsDQotKwlpbnQgKCogY2IpICh2b2lkICogcGFybSwgaW50IG9mcywgaW50IGxlbiksIHZv aWQgKiBwYXJtKSB7DQotK2ludCBpLCBwLCByZXQ7DQotIA0KLS0jaWZkZWYgb2Zmc2V0b2YNCi0t I2RlZmluZSBCTEVfU1ogKG9mZnNldG9mIChzdHJ1Y3QgYnN0ckxpc3QsIGVudHJ5KSkNCi0tI2Vs c2UNCi0tI2RlZmluZSBCTEVfU1ogKHNpemVvZiAoc3RydWN0IGJzdHJMaXN0KSkNCi0tI2VuZGlm DQotKwlpZiAoY2IgPT0gTlVMTCB8fCBzdHIgPT0gTlVMTCB8fCBwb3MgPCAwIHx8IHBvcyA+IHN0 ci0+c2xlbiANCi0rCSB8fCBzcGxpdFN0ciA9PSBOVUxMIHx8IHNwbGl0U3RyLT5zbGVuIDwgMCkg cmV0dXJuIEJTVFJfRVJSOw0KLSsNCi0rCWlmICgwID09IHNwbGl0U3RyLT5zbGVuKSB7DQotKwkJ Zm9yIChpPXBvczsgaSA8IHN0ci0+c2xlbjsgaSsrKSB7DQotKwkJCWlmICgocmV0ID0gY2IgKHBh cm0sIGksIDEpKSA8IDApIHJldHVybiByZXQ7DQotKwkJfQ0KLSsJCXJldHVybiBCU1RSX09LOw0K LSsJfQ0KLSsNCi0rCWlmIChzcGxpdFN0ci0+c2xlbiA9PSAxKSANCi0rCQlyZXR1cm4gYnNwbGl0 Y2IgKHN0ciwgc3BsaXRTdHItPmRhdGFbMF0sIHBvcywgY2IsIHBhcm0pOw0KLSsNCi0rCWZvciAo aT1wPXBvczsgaSA8PSBzdHItPnNsZW4gLSBzcGxpdFN0ci0+c2xlbjsgaSsrKSB7DQotKwkJaWYg KDAgPT0gYnN0cl9fbWVtY21wIChzcGxpdFN0ci0+ZGF0YSwgc3RyLT5kYXRhICsgaSwgc3BsaXRT dHItPnNsZW4pKSB7DQotKwkJCWlmICgocmV0ID0gY2IgKHBhcm0sIHAsIGkgLSBwKSkgPCAwKSBy ZXR1cm4gcmV0Ow0KLSsJCQlpICs9IHNwbGl0U3RyLT5zbGVuOw0KLSsJCQlwID0gaTsNCi0rCQl9 DQotKwl9DQotKwlpZiAoKHJldCA9IGNiIChwYXJtLCBwLCBzdHItPnNsZW4gLSBwKSkgPCAwKSBy ZXR1cm4gcmV0Ow0KLSsJcmV0dXJuIEJTVFJfT0s7DQotK30NCi0gDQotIHN0cnVjdCBnZW5Cc3Ry TGlzdCB7DQotIAlic3RyaW5nIGI7DQotIAlzdHJ1Y3QgYnN0ckxpc3QgKiBibDsNCi0tCWludCBt bGVuOw0KLSB9Ow0KLSANCi0gc3RhdGljIGludCBic2NiICh2b2lkICogcGFybSwgaW50IG9mcywg aW50IGxlbikgew0KLS1zdHJ1Y3QgZ2VuQnN0ckxpc3QgKiBnID0gKHN0cnVjdCBnZW5Cc3RyTGlz dCAqKXBhcm07DQotLQlpZiAoZy0+YmwtPnF0eSA+PSBnLT5tbGVuKSB7DQotLQkJaW50IG1sZW4g PSBnLT5tbGVuICogMjsNCi0tCQlzdHJ1Y3QgYnN0ckxpc3QgKiB0Ymw7DQotK3N0cnVjdCBnZW5C c3RyTGlzdCAqIGcgPSAoc3RydWN0IGdlbkJzdHJMaXN0ICopIHBhcm07DQotKwlpZiAoZy0+Ymwt PnF0eSA+PSBnLT5ibC0+bWxlbikgew0KLSsJCWludCBtbGVuID0gZy0+YmwtPm1sZW4gKiAyOw0K LSsJCWJzdHJpbmcgKiB0Ymw7DQotKw0KLSsJCXdoaWxlIChnLT5ibC0+cXR5ID49IG1sZW4pIHsN Ci0rCQkJaWYgKG1sZW4gPCBnLT5ibC0+bWxlbikgcmV0dXJuIEJTVFJfRVJSOw0KLSsJCQltbGVu ICs9IG1sZW47DQotKwkJfQ0KLSANCi0tCQl3aGlsZSAoZy0+YmwtPnF0eSA+PSBtbGVuKSBtbGVu ICs9IG1sZW47DQotLQkJdGJsID0gKHN0cnVjdCBic3RyTGlzdCAqKSByZWFsbG9jIChnLT5ibCwg QkxFX1NaICsgc2l6ZW9mIChic3RyaW5nKSAqIChtbGVuKSk7DQotKwkJdGJsID0gKGJzdHJpbmcg KikgYnN0cl9fcmVhbGxvYyAoZy0+YmwtPmVudHJ5LCBzaXplb2YgKGJzdHJpbmcpICogbWxlbik7 DQotIAkJaWYgKHRibCA9PSBOVUxMKSByZXR1cm4gQlNUUl9FUlI7DQotLQkJZy0+YmwgPSB0Ymw7 DQotLQkJZy0+bWxlbiA9IG1sZW47DQotKw0KLSsJCWctPmJsLT5lbnRyeSA9IHRibDsNCi0rCQln LT5ibC0+bWxlbiA9IG1sZW47DQotIAl9DQotIA0KLSAJZy0+YmwtPmVudHJ5W2ctPmJsLT5xdHld ID0gYm1pZHN0ciAoZy0+Yiwgb2ZzLCBsZW4pOw0KLSAJZy0+YmwtPnF0eSsrOw0KLS0JcmV0dXJu IDA7DQotKwlyZXR1cm4gQlNUUl9PSzsNCi0gfQ0KLSANCi0tLyogIHN0cnVjdCBic3RyTGlzdCAq IGJzcGxpdCAoY29uc3QgYnN0cmluZyBzdHIsIHVuc2lnbmVkIGNoYXIgc3BsaXRDaGFyKQ0KLSsv KiAgc3RydWN0IGJzdHJMaXN0ICogYnNwbGl0IChjb25zdF9ic3RyaW5nIHN0ciwgdW5zaWduZWQg Y2hhciBzcGxpdENoYXIpDQotICAqDQotICAqICBDcmVhdGUgYW4gYXJyYXkgb2Ygc2VxdWVudGlh bCBzdWJzdHJpbmdzIGZyb20gc3RyIGRpdmlkZWQgYnkgdGhlIGNoYXJhY3Rlcg0KLSAgKiAgc3Bs aXRDaGFyLiAgDQotICAqLw0KLS1zdHJ1Y3QgYnN0ckxpc3QgKiBic3BsaXQgKGNvbnN0IGJzdHJp bmcgc3RyLCB1bnNpZ25lZCBjaGFyIHNwbGl0Q2hhcikgew0KLStzdHJ1Y3QgYnN0ckxpc3QgKiBi c3BsaXQgKGNvbnN0X2JzdHJpbmcgc3RyLCB1bnNpZ25lZCBjaGFyIHNwbGl0Q2hhcikgew0KLSBz dHJ1Y3QgZ2VuQnN0ckxpc3QgZzsNCi0gDQotIAlpZiAoc3RyID09IE5VTEwgfHwgc3RyLT5kYXRh ID09IE5VTEwgfHwgc3RyLT5zbGVuIDwgMCkgcmV0dXJuIE5VTEw7DQotIA0KLS0JZy5iID0gc3Ry Ow0KLS0JZy5tbGVuID0gNDsNCi0tCWcuYmwgPSAoc3RydWN0IGJzdHJMaXN0ICopIG1hbGxvYyAo QkxFX1NaICsgc2l6ZW9mIChic3RyaW5nKSAqIGcubWxlbik7DQotKwlnLmJsID0gKHN0cnVjdCBi c3RyTGlzdCAqKSBic3RyX19hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgYnN0ckxpc3QpKTsNCi0gCWlm IChnLmJsID09IE5VTEwpIHJldHVybiBOVUxMOw0KLSsJZy5ibC0+bWxlbiA9IDQ7DQotKwlnLmJs LT5lbnRyeSA9IChic3RyaW5nICopIGJzdHJfX2FsbG9jIChnLmJsLT5tbGVuICogc2l6ZW9mIChi c3RyaW5nKSk7DQotKwlpZiAoTlVMTCA9PSBnLmJsLT5lbnRyeSkgew0KLSsJCWJzdHJfX2ZyZWUg KGcuYmwpOw0KLSsJCXJldHVybiBOVUxMOw0KLSsJfQ0KLSsNCi0rCWcuYiA9IChic3RyaW5nKSBz dHI7DQotIAlnLmJsLT5xdHkgPSAwOw0KLSAJaWYgKGJzcGxpdGNiIChzdHIsIHNwbGl0Q2hhciwg MCwgYnNjYiwgJmcpIDwgMCkgew0KLSAJCWJzdHJMaXN0RGVzdHJveSAoZy5ibCk7DQotQEAgLTE4 MTcsMjQgKzI2NjAsNTggQEAgc3RydWN0IGdlbkJzdHJMaXN0IGc7DQotIAlyZXR1cm4gZy5ibDsN Ci0gfQ0KLSANCi0tLyogIHN0cnVjdCBic3RyTGlzdCAqIGJzcGxpdHMgKGNvbnN0IGJzdHJpbmcg c3RyLCBic3RyaW5nIHNwbGl0U3RyKQ0KLSsvKiAgc3RydWN0IGJzdHJMaXN0ICogYnNwbGl0c3Ry IChjb25zdF9ic3RyaW5nIHN0ciwgY29uc3RfYnN0cmluZyBzcGxpdFN0cikNCi0rICoNCi0rICog IENyZWF0ZSBhbiBhcnJheSBvZiBzZXF1ZW50aWFsIHN1YnN0cmluZ3MgZnJvbSBzdHIgZGl2aWRl ZCBieSB0aGUgZW50aXJlDQotKyAqICBzdWJzdHJpbmcgc3BsaXRTdHIuDQotKyAqLw0KLStzdHJ1 Y3QgYnN0ckxpc3QgKiBic3BsaXRzdHIgKGNvbnN0X2JzdHJpbmcgc3RyLCBjb25zdF9ic3RyaW5n IHNwbGl0U3RyKSB7DQotK3N0cnVjdCBnZW5Cc3RyTGlzdCBnOw0KLSsNCi0rCWlmIChzdHIgPT0g TlVMTCB8fCBzdHItPmRhdGEgPT0gTlVMTCB8fCBzdHItPnNsZW4gPCAwKSByZXR1cm4gTlVMTDsN Ci0rDQotKwlnLmJsID0gKHN0cnVjdCBic3RyTGlzdCAqKSBic3RyX19hbGxvYyAoc2l6ZW9mIChz dHJ1Y3QgYnN0ckxpc3QpKTsNCi0rCWlmIChnLmJsID09IE5VTEwpIHJldHVybiBOVUxMOw0KLSsJ Zy5ibC0+bWxlbiA9IDQ7DQotKwlnLmJsLT5lbnRyeSA9IChic3RyaW5nICopIGJzdHJfX2FsbG9j IChnLmJsLT5tbGVuICogc2l6ZW9mIChic3RyaW5nKSk7DQotKwlpZiAoTlVMTCA9PSBnLmJsLT5l bnRyeSkgew0KLSsJCWJzdHJfX2ZyZWUgKGcuYmwpOw0KLSsJCXJldHVybiBOVUxMOw0KLSsJfQ0K LSsNCi0rCWcuYiA9IChic3RyaW5nKSBzdHI7DQotKwlnLmJsLT5xdHkgPSAwOw0KLSsJaWYgKGJz cGxpdHN0cmNiIChzdHIsIHNwbGl0U3RyLCAwLCBic2NiLCAmZykgPCAwKSB7DQotKwkJYnN0ckxp c3REZXN0cm95IChnLmJsKTsNCi0rCQlyZXR1cm4gTlVMTDsNCi0rCX0NCi0rCXJldHVybiBnLmJs Ow0KLSt9DQotKw0KLSsvKiAgc3RydWN0IGJzdHJMaXN0ICogYnNwbGl0cyAoY29uc3RfYnN0cmlu ZyBzdHIsIGJzdHJpbmcgc3BsaXRTdHIpDQotICAqDQotICAqICBDcmVhdGUgYW4gYXJyYXkgb2Yg c2VxdWVudGlhbCBzdWJzdHJpbmdzIGZyb20gc3RyIGRpdmlkZWQgYnkgYW55IG9mIHRoZSANCi0g ICogIGNoYXJhY3RlcnMgaW4gc3BsaXRTdHIuICBBbiBlbXB0eSBzcGxpdFN0ciBjYXVzZXMgYSBz aW5nbGUgZW50cnkgYnN0ckxpc3QNCi0gICogIGNvbnRhaW5pbmcgYSBjb3B5IG9mIHN0ciB0byBi ZSByZXR1cm5lZC4NCi0gICovDQotLXN0cnVjdCBic3RyTGlzdCAqIGJzcGxpdHMgKGNvbnN0IGJz dHJpbmcgc3RyLCBjb25zdCBic3RyaW5nIHNwbGl0U3RyKSB7DQotK3N0cnVjdCBic3RyTGlzdCAq IGJzcGxpdHMgKGNvbnN0X2JzdHJpbmcgc3RyLCBjb25zdF9ic3RyaW5nIHNwbGl0U3RyKSB7DQot IHN0cnVjdCBnZW5Cc3RyTGlzdCBnOw0KLSANCi0gCWlmICggICAgIHN0ciA9PSBOVUxMIHx8ICAg ICAgc3RyLT5zbGVuIDwgMCB8fCAgICAgIHN0ci0+ZGF0YSA9PSBOVUxMIHx8DQotIAkgICAgc3Bs aXRTdHIgPT0gTlVMTCB8fCBzcGxpdFN0ci0+c2xlbiA8IDAgfHwgc3BsaXRTdHItPmRhdGEgPT0g TlVMTCkNCi0gCQlyZXR1cm4gTlVMTDsNCi0gDQotLQlnLmIgPSBzdHI7DQotLQlnLm1sZW4gPSA0 Ow0KLS0JZy5ibCA9IChzdHJ1Y3QgYnN0ckxpc3QgKikgbWFsbG9jIChCTEVfU1ogKyBzaXplb2Yg KGJzdHJpbmcpICogZy5tbGVuKTsNCi0rCWcuYmwgPSAoc3RydWN0IGJzdHJMaXN0ICopIGJzdHJf X2FsbG9jIChzaXplb2YgKHN0cnVjdCBic3RyTGlzdCkpOw0KLSAJaWYgKGcuYmwgPT0gTlVMTCkg cmV0dXJuIE5VTEw7DQotKwlnLmJsLT5tbGVuID0gNDsNCi0rCWcuYmwtPmVudHJ5ID0gKGJzdHJp bmcgKikgYnN0cl9fYWxsb2MgKGcuYmwtPm1sZW4gKiBzaXplb2YgKGJzdHJpbmcpKTsNCi0rCWlm IChOVUxMID09IGcuYmwtPmVudHJ5KSB7DQotKwkJYnN0cl9fZnJlZSAoZy5ibCk7DQotKwkJcmV0 dXJuIE5VTEw7DQotKwl9DQotKwlnLmIgPSAoYnN0cmluZykgc3RyOw0KLSAJZy5ibC0+cXR5ID0g MDsNCi0rDQotIAlpZiAoYnNwbGl0c2NiIChzdHIsIHNwbGl0U3RyLCAwLCBic2NiLCAmZykgPCAw KSB7DQotIAkJYnN0ckxpc3REZXN0cm95IChnLmJsKTsNCi0gCQlyZXR1cm4gTlVMTDsNCi1AQCAt MTg0Miw3ICsyNzE5LDcgQEAgc3RydWN0IGdlbkJzdHJMaXN0IGc7DQotIAlyZXR1cm4gZy5ibDsN Ci0gfQ0KLSANCi0tI2lmIGRlZmluZWQoX19UVVJCT0NfXykNCi0rI2lmIGRlZmluZWQgKF9fVFVS Qk9DX18pICYmICFkZWZpbmVkIChfX0JPUkxBTkRDX18pDQotICMgaWZuZGVmIEJTVFJMSUJfTk9W U05QDQotICMgIGRlZmluZSBCU1RSTElCX05PVlNOUA0KLSAjIGVuZGlmDQotQEAgLTE4NjksNiAr Mjc0Niw4IEBAIGV4dGVybiBpbnQgdnNucHJpbnRmIChjaGFyICpidWYsIHNpemVfdCAKLSAjZW5k aWYNCi0gI2VuZGlmDQotIA0KLSsjaWYgIWRlZmluZWQgKEJTVFJMSUJfTk9WU05QKQ0KLSsNCi0g I2lmbmRlZiBTVEFSVF9WU05CVUZGDQotICNkZWZpbmUgU1RBUlRfVlNOQlVGRiAoMTYpDQotICNl bmRpZg0KLUBAIC0xODgwLDE2ICsyNzU5LDE4IEBAIGV4dGVybiBpbnQgdnNucHJpbnRmIChjaGFy ICpidWYsIHNpemVfdCAKLSAgICB0aGFuIG4sIHRoZW4gY2hhbmdpbmcgbiB0byB0aGUgcmV0dXJu IHZhbHVlIHdpbGwgcmVkdWNlIHRoZSBudW1iZXIgb2YNCi0gICAgaXRlcmF0aW9ucyByZXF1aXJl ZC4gKi8NCi0gDQotLS8qICBic3RyaW5nIGJmb3JtYXRhIChic3RyaW5nIGIsIGNvbnN0IGNoYXIg KiBmbXQsIC4uLikNCi0rLyogIGludCBiZm9ybWF0YSAoYnN0cmluZyBiLCBjb25zdCBjaGFyICog Zm10LCAuLi4pDQotICAqDQotLSAqICBUYWtlcyB0aGUgc2FtZSBwYXJhbWV0ZXJzIGFzIHByaW50 ZiAoKSwgYnV0IHJhdGhlciB0aGFuIG91dHB1dHRpbmcgcmVzdWx0cw0KLS0gKiAgdG8gc3RkaW8s IGl0IGZvcm1zIGFwcGVuZHMgdGhlIHJlc3VsdHMgdG8gYSBic3RyaW5nIHdoaWNoIGNvbnRhaW5z IHdoYXQgDQotLSAqICB3b3VsZCBoYXZlIGJlZW4gb3V0cHV0LiBOb3RlIHRoYXQgaWYgdGhlcmUg aXMgYW4gZWFybHkgZ2VuZXJhdGlvbiBvZiBhIA0KLS0gKiAgJ1wwJyBjaGFyYWN0ZXIsIHRoZSBi c3RyaW5nIHdpbGwgYmUgdHJ1bmNhdGVkIHRvIHRoaXMgZW5kIHBvaW50Lg0KLSsgKiAgQWZ0ZXIg dGhlIGZpcnN0IHBhcmFtZXRlciwgaXQgdGFrZXMgdGhlIHNhbWUgcGFyYW1ldGVycyBhcyBwcmlu dGYgKCksIGJ1dCANCi0rICogIHJhdGhlciB0aGFuIG91dHB1dHRpbmcgcmVzdWx0cyB0byBzdGRp bywgaXQgYXBwZW5kcyB0aGUgcmVzdWx0cyB0byANCi0rICogIGEgYnN0cmluZyB3aGljaCBjb250 YWlucyB3aGF0IHdvdWxkIGhhdmUgYmVlbiBvdXRwdXQuIE5vdGUgdGhhdCBpZiB0aGVyZSANCi0r ICogIGlzIGFuIGVhcmx5IGdlbmVyYXRpb24gb2YgYSAnXDAnIGNoYXJhY3RlciwgdGhlIGJzdHJp bmcgd2lsbCBiZSB0cnVuY2F0ZWQgDQotKyAqICB0byB0aGlzIGVuZCBwb2ludC4NCi0gICovDQot IGludCBiZm9ybWF0YSAoYnN0cmluZyBiLCBjb25zdCBjaGFyICogZm10LCAuLi4pIHsNCi0gdmFf bGlzdCBhcmdsaXN0Ow0KLS1pbnQgbiwgc2xlbiwgcjsNCi0rYnN0cmluZyBidWZmOw0KLStpbnQg biwgcjsNCi0gDQotIAlpZiAoYiA9PSBOVUxMIHx8IGZtdCA9PSBOVUxMIHx8IGItPmRhdGEgPT0g TlVMTCB8fCBiLT5tbGVuIDw9IDAgDQotIAkgfHwgYi0+c2xlbiA8IDAgfHwgYi0+c2xlbiA+IGIt Pm1sZW4pIHJldHVybiBCU1RSX0VSUjsNCi1AQCAtMTg5OCwyNSArMjc3OSw4MSBAQCBpbnQgbiwg c2xlbiwgcjsNCi0gCSAgIHBlcmZvcm1lZCB1c2luZyB0aGUgdHJ1bmNhdGluZyAidnNucHJpbnRm IiBjYWxsICh0byBhdm9pZCBidWZmZXINCi0gCSAgIG92ZXJmbG93cykgb24gaW5jcmVhc2luZyBw b3RlbnRpYWwgc2l6ZXMgZm9yIHRoZSBvdXRwdXQgcmVzdWx0LiAqLw0KLSANCi0tCXNsZW4gPSBi LT5zbGVuOw0KLS0JaWYgKChuID0gMipzdHJsZW4gKGZtdCkpIDwgU1RBUlRfVlNOQlVGRikgbiA9 IFNUQVJUX1ZTTkJVRkY7DQotKwlpZiAoKG4gPSAoaW50KSAoMipzdHJsZW4gKGZtdCkpKSA8IFNU QVJUX1ZTTkJVRkYpIG4gPSBTVEFSVF9WU05CVUZGOw0KLSsJaWYgKE5VTEwgPT0gKGJ1ZmYgPSBi ZnJvbWNzdHJhbGxvYyAobiArIDIsICIiKSkpIHsNCi0rCQluID0gMTsNCi0rCQlpZiAoTlVMTCA9 PSAoYnVmZiA9IGJmcm9tY3N0cmFsbG9jIChuICsgMiwgIiIpKSkgcmV0dXJuIEJTVFJfRVJSOw0K LSsJfQ0KLSANCi0gCWZvciAoOzspIHsNCi0tCQlpZiAoQlNUUl9PSyAhPSBiYWxsb2MgKGIsIG4g KyAyICsgc2xlbikpIHJldHVybiBCU1RSX0VSUjsNCi0rCQl2YV9zdGFydCAoYXJnbGlzdCwgZm10 KTsNCi0rCQlleHZzbnByaW50ZiAociwgKGNoYXIgKikgYnVmZi0+ZGF0YSwgbiArIDEsIGZtdCwg YXJnbGlzdCk7DQotKwkJdmFfZW5kIChhcmdsaXN0KTsNCi0rDQotKwkJYnVmZi0+ZGF0YVtuXSA9 ICh1bnNpZ25lZCBjaGFyKSAnXDAnOw0KLSsJCWJ1ZmYtPnNsZW4gPSAoaW50KSAoc3RybGVuKSAo KGNoYXIgKikgYnVmZi0+ZGF0YSk7DQotKw0KLSsJCWlmIChidWZmLT5zbGVuIDwgbikgYnJlYWs7 DQotIA0KLSsJCWlmIChyID4gbikgbiA9IHI7IGVsc2UgbiArPSBuOw0KLSsNCi0rCQlpZiAoQlNU Ul9PSyAhPSBiYWxsb2MgKGJ1ZmYsIG4gKyAyKSkgew0KLSsJCQliZGVzdHJveSAoYnVmZik7DQot KwkJCXJldHVybiBCU1RSX0VSUjsNCi0rCQl9DQotKwl9DQotKw0KLSsJciA9IGJjb25jYXQgKGIs IGJ1ZmYpOw0KLSsJYmRlc3Ryb3kgKGJ1ZmYpOw0KLSsJcmV0dXJuIHI7DQotK30NCi0rDQotKy8q ICBpbnQgYmFzc2lnbmZvcm1hdCAoYnN0cmluZyBiLCBjb25zdCBjaGFyICogZm10LCAuLi4pDQot KyAqDQotKyAqICBBZnRlciB0aGUgZmlyc3QgcGFyYW1ldGVyLCBpdCB0YWtlcyB0aGUgc2FtZSBw YXJhbWV0ZXJzIGFzIHByaW50ZiAoKSwgYnV0IA0KLSsgKiAgcmF0aGVyIHRoYW4gb3V0cHV0dGlu ZyByZXN1bHRzIHRvIHN0ZGlvLCBpdCBvdXRwdXRzIHRoZSByZXN1bHRzIHRvIA0KLSsgKiAgdGhl IGJzdHJpbmcgcGFyYW1ldGVyIGIuIE5vdGUgdGhhdCBpZiB0aGVyZSBpcyBhbiBlYXJseSBnZW5l cmF0aW9uIG9mIGEgDQotKyAqICAnXDAnIGNoYXJhY3RlciwgdGhlIGJzdHJpbmcgd2lsbCBiZSB0 cnVuY2F0ZWQgdG8gdGhpcyBlbmQgcG9pbnQuDQotKyAqLw0KLStpbnQgYmFzc2lnbmZvcm1hdCAo YnN0cmluZyBiLCBjb25zdCBjaGFyICogZm10LCAuLi4pIHsNCi0rdmFfbGlzdCBhcmdsaXN0Ow0K LStic3RyaW5nIGJ1ZmY7DQotK2ludCBuLCByOw0KLSsNCi0rCWlmIChiID09IE5VTEwgfHwgZm10 ID09IE5VTEwgfHwgYi0+ZGF0YSA9PSBOVUxMIHx8IGItPm1sZW4gPD0gMCANCi0rCSB8fCBiLT5z bGVuIDwgMCB8fCBiLT5zbGVuID4gYi0+bWxlbikgcmV0dXJuIEJTVFJfRVJSOw0KLSsNCi0rCS8q IFNpbmNlIHRoZSBsZW5ndGggaXMgbm90IGRldGVybWluYWJsZSBiZWZvcmVoYW5kLCBhIHNlYXJj aCBpcw0KLSsJICAgcGVyZm9ybWVkIHVzaW5nIHRoZSB0cnVuY2F0aW5nICJ2c25wcmludGYiIGNh bGwgKHRvIGF2b2lkIGJ1ZmZlcg0KLSsJICAgb3ZlcmZsb3dzKSBvbiBpbmNyZWFzaW5nIHBvdGVu dGlhbCBzaXplcyBmb3IgdGhlIG91dHB1dCByZXN1bHQuICovDQotKw0KLSsJaWYgKChuID0gKGlu dCkgKDIqc3RybGVuIChmbXQpKSkgPCBTVEFSVF9WU05CVUZGKSBuID0gU1RBUlRfVlNOQlVGRjsN Ci0rCWlmIChOVUxMID09IChidWZmID0gYmZyb21jc3RyYWxsb2MgKG4gKyAyLCAiIikpKSB7DQot KwkJbiA9IDE7DQotKwkJaWYgKE5VTEwgPT0gKGJ1ZmYgPSBiZnJvbWNzdHJhbGxvYyAobiArIDIs ICIiKSkpIHJldHVybiBCU1RSX0VSUjsNCi0rCX0NCi0rDQotKwlmb3IgKDs7KSB7DQotIAkJdmFf c3RhcnQgKGFyZ2xpc3QsIGZtdCk7DQotLQkJZXh2c25wcmludGYgKHIsIChjaGFyICopIGItPmRh dGEgKyBzbGVuLCBuICsgMSwgZm10LCBhcmdsaXN0KTsNCi0rCQlleHZzbnByaW50ZiAociwgKGNo YXIgKikgYnVmZi0+ZGF0YSwgbiArIDEsIGZtdCwgYXJnbGlzdCk7DQotIAkJdmFfZW5kIChhcmds aXN0KTsNCi0gDQotLQkJYi0+ZGF0YVtuICsgc2xlbl0gPSAnXDAnOw0KLS0JCWItPnNsZW4gPSBz bGVuICsgKGludCkgKHN0cmxlbikgKChjaGFyICopIGItPmRhdGEgKyBzbGVuKTsNCi0rCQlidWZm LT5kYXRhW25dID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotKwkJYnVmZi0+c2xlbiA9IChpbnQp IChzdHJsZW4pICgoY2hhciAqKSBidWZmLT5kYXRhKTsNCi0gDQotLQkJaWYgKGItPnNsZW4gLSBz bGVuIDwgbikgYnJlYWs7DQotKwkJaWYgKGJ1ZmYtPnNsZW4gPCBuKSBicmVhazsNCi0gDQotIAkJ aWYgKHIgPiBuKSBuID0gcjsgZWxzZSBuICs9IG47DQotKw0KLSsJCWlmIChCU1RSX09LICE9IGJh bGxvYyAoYnVmZiwgbiArIDIpKSB7DQotKwkJCWJkZXN0cm95IChidWZmKTsNCi0rCQkJcmV0dXJu IEJTVFJfRVJSOw0KLSsJCX0NCi0gCX0NCi0gDQotLQlyZXR1cm4gMDsNCi0rCXIgPSBiYXNzaWdu IChiLCBidWZmKTsNCi0rCWJkZXN0cm95IChidWZmKTsNCi0rCXJldHVybiByOw0KLSB9DQotIA0K LSAvKiAgYnN0cmluZyBiZm9ybWF0IChjb25zdCBjaGFyICogZm10LCAuLi4pDQotQEAgLTE5Mzcs MjcgKzI4NzQsODIgQEAgaW50IG4sIHI7DQotIAkgICBwZXJmb3JtZWQgdXNpbmcgdGhlIHRydW5j YXRpbmcgInZzbnByaW50ZiIgY2FsbCAodG8gYXZvaWQgYnVmZmVyDQotIAkgICBvdmVyZmxvd3Mp IG9uIGluY3JlYXNpbmcgcG90ZW50aWFsIHNpemVzIGZvciB0aGUgb3V0cHV0IHJlc3VsdC4gKi8N Ci0gDQotLQlpZiAoKG4gPSAyKnN0cmxlbiAoZm10KSkgPCBTVEFSVF9WU05CVUZGKSBuID0gU1RB UlRfVlNOQlVGRjsNCi0tCWJ1ZmYgPSBiZnJvbWNzdHIgKCIiKTsNCi0rCWlmICgobiA9IChpbnQp ICgyKnN0cmxlbiAoZm10KSkpIDwgU1RBUlRfVlNOQlVGRikgbiA9IFNUQVJUX1ZTTkJVRkY7DQot KwlpZiAoTlVMTCA9PSAoYnVmZiA9IGJmcm9tY3N0cmFsbG9jIChuICsgMiwgIiIpKSkgew0KLSsJ CW4gPSAxOw0KLSsJCWlmIChOVUxMID09IChidWZmID0gYmZyb21jc3RyYWxsb2MgKG4gKyAyLCAi IikpKSByZXR1cm4gTlVMTDsNCi0rCX0NCi0gDQotIAlmb3IgKDs7KSB7DQotLQkJaWYgKEJTVFJf T0sgIT0gYmFsbG9jIChidWZmLCBuICsgMikpIHsNCi0tCQkJYmRlc3Ryb3kgKGJ1ZmYpOw0KLS0J CQlyZXR1cm4gTlVMTDsNCi0tCQl9DQotLQ0KLSAJCXZhX3N0YXJ0IChhcmdsaXN0LCBmbXQpOw0K LSAJCWV4dnNucHJpbnRmIChyLCAoY2hhciAqKSBidWZmLT5kYXRhLCBuICsgMSwgZm10LCBhcmds aXN0KTsNCi0gCQl2YV9lbmQgKGFyZ2xpc3QpOw0KLSANCi0tCQlidWZmLT5kYXRhW25dID0gJ1ww JzsNCi0rCQlidWZmLT5kYXRhW25dID0gKHVuc2lnbmVkIGNoYXIpICdcMCc7DQotIAkJYnVmZi0+ c2xlbiA9IChpbnQpIChzdHJsZW4pICgoY2hhciAqKSBidWZmLT5kYXRhKTsNCi0gDQotIAkJaWYg KGJ1ZmYtPnNsZW4gPCBuKSBicmVhazsNCi0gDQotIAkJaWYgKHIgPiBuKSBuID0gcjsgZWxzZSBu ICs9IG47DQotKw0KLSsJCWlmIChCU1RSX09LICE9IGJhbGxvYyAoYnVmZiwgbiArIDIpKSB7DQot KwkJCWJkZXN0cm95IChidWZmKTsNCi0rCQkJcmV0dXJuIE5VTEw7DQotKwkJfQ0KLSAJfQ0KLSAN Ci0gCXJldHVybiBidWZmOw0KLSB9DQotIA0KLSsvKiAgaW50IGJ2Y2Zvcm1hdGEgKGJzdHJpbmcg YiwgaW50IGNvdW50LCBjb25zdCBjaGFyICogZm10LCB2YV9saXN0IGFyZ2xpc3QpDQotKyAqDQot KyAqICBUaGUgYnZjZm9ybWF0YSBmdW5jdGlvbiBmb3JtYXRzIGRhdGEgdW5kZXIgY29udHJvbCBv ZiB0aGUgZm9ybWF0IGNvbnRyb2wgDQotKyAqICBzdHJpbmcgZm10IGFuZCBhdHRlbXB0cyB0byBh cHBlbmQgdGhlIHJlc3VsdCB0byBiLiAgVGhlIGZtdCBwYXJhbWV0ZXIgaXMgDQotKyAqICB0aGUg c2FtZSBhcyB0aGF0IG9mIHRoZSBwcmludGYgZnVuY3Rpb24uICBUaGUgdmFyaWFibGUgYXJndW1l bnQgbGlzdCBpcyANCi0rICogIHJlcGxhY2VkIHdpdGggYXJnbGlzdCwgd2hpY2ggaGFzIGJlZW4g aW5pdGlhbGl6ZWQgYnkgdGhlIHZhX3N0YXJ0IG1hY3JvLg0KLSsgKiAgVGhlIHNpemUgb2YgdGhl IG91dHB1dCBpcyB1cHBlciBib3VuZGVkIGJ5IGNvdW50LiAgSWYgdGhlIHJlcXVpcmVkIG91dHB1 dA0KLSsgKiAgZXhjZWVkcyBjb3VudCwgdGhlIHN0cmluZyBiIGlzIG5vdCBhdWdtZW50ZWQgd2l0 aCBhbnkgY29udGVudHMgYW5kIGEgdmFsdWUNCi0rICogIGJlbG93IEJTVFJfRVJSIGlzIHJldHVy bmVkLiAgSWYgYSB2YWx1ZSBiZWxvdyAtY291bnQgaXMgcmV0dXJuZWQgdGhlbiBpdA0KLSsgKiAg aXMgcmVjb21tZW5kZWQgdGhhdCB0aGUgbmVnYXRpdmUgb2YgdGhpcyB2YWx1ZSBiZSB1c2VkIGFz IGFuIHVwZGF0ZSB0byB0aGUNCi0rICogIGNvdW50IGluIGEgc3Vic2VxdWVudCBwYXNzLiAgT24g b3RoZXIgZXJyb3JzLCBzdWNoIGFzIHJ1bm5pbmcgb3V0IG9mIA0KLSsgKiAgbWVtb3J5LCBwYXJh bWV0ZXIgZXJyb3JzIG9yIG51bWVyaWMgd3JhcCBhcm91bmQgQlNUUl9FUlIgaXMgcmV0dXJuZWQu ICANCi0rICogIEJTVFJfT0sgaXMgcmV0dXJuZWQgd2hlbiB0aGUgb3V0cHV0IGlzIHN1Y2Nlc3Nm dWxseSBnZW5lcmF0ZWQgYW5kIA0KLSsgKiAgYXBwZW5kZWQgdG8gYi4NCi0rICoNCi0rICogIE5v dGU6IFRoZXJlIGlzIG5vIHNhbml0eSBjaGVja2luZyBvZiBhcmdsaXN0LCBhbmQgdGhpcyBmdW5j dGlvbiBpcw0KLSsgKiAgZGVzdHJ1Y3RpdmUgb2YgdGhlIGNvbnRlbnRzIG9mIGIgZnJvbSB0aGUg Yi0+c2xlbiBwb2ludCBvbndhcmQuICBJZiB0aGVyZSANCi0rICogIGlzIGFuIGVhcmx5IGdlbmVy YXRpb24gb2YgYSAnXDAnIGNoYXJhY3RlciwgdGhlIGJzdHJpbmcgd2lsbCBiZSB0cnVuY2F0ZWQg DQotKyAqICB0byB0aGlzIGVuZCBwb2ludC4NCi0rICovDQotK2ludCBidmNmb3JtYXRhIChic3Ry aW5nIGIsIGludCBjb3VudCwgY29uc3QgY2hhciAqIGZtdCwgdmFfbGlzdCBhcmcpIHsNCi0raW50 IG4sIHIsIGw7DQotKw0KLSsJaWYgKGIgPT0gTlVMTCB8fCBmbXQgPT0gTlVMTCB8fCBjb3VudCA8 PSAwIHx8IGItPmRhdGEgPT0gTlVMTA0KLSsJIHx8IGItPm1sZW4gPD0gMCB8fCBiLT5zbGVuIDwg MCB8fCBiLT5zbGVuID4gYi0+bWxlbikgcmV0dXJuIEJTVFJfRVJSOw0KLSsNCi0rCWlmIChjb3Vu dCA+IChuID0gYi0+c2xlbiArIGNvdW50KSArIDIpIHJldHVybiBCU1RSX0VSUjsNCi0rCWlmIChC U1RSX09LICE9IGJhbGxvYyAoYiwgbiArIDIpKSByZXR1cm4gQlNUUl9FUlI7DQotKw0KLSsJZXh2 c25wcmludGYgKHIsIChjaGFyICopIGItPmRhdGEgKyBiLT5zbGVuLCBjb3VudCArIDIsIGZtdCwg YXJnKTsNCi0rDQotKwkvKiBEaWQgdGhlIG9wZXJhdGlvbiBjb21wbGV0ZSBzdWNjZXNzZnVsbHkg d2l0aGluIGJvdW5kcz8gKi8NCi0rDQotKwlpZiAobiA+PSAobCA9IGItPnNsZW4gKyAoaW50KSAo c3RybGVuKSAoKGNvbnN0IGNoYXIgKikgYi0+ZGF0YSArIGItPnNsZW4pKSkgew0KLSsJCWItPnNs ZW4gPSBsOw0KLSsJCXJldHVybiBCU1RSX09LOw0KLSsJfQ0KLSsNCi0rCS8qIEFib3J0LCBzaW5j ZSB0aGUgYnVmZmVyIHdhcyBub3QgbGFyZ2UgZW5vdWdoLiAgVGhlIHJldHVybiB2YWx1ZSANCi0r CSAgIHRyaWVzIHRvIGhlbHAgc2V0IHdoYXQgdGhlIHJldHJ5IGxlbmd0aCBzaG91bGQgYmUuICov DQotKw0KLSsJYi0+ZGF0YVtiLT5zbGVuXSA9ICdcMCc7DQotKwlpZiAociA+IGNvdW50KzEpIGwg PSByOyBlbHNlIHsNCi0rCQlsID0gY291bnQrY291bnQ7DQotKwkJaWYgKGNvdW50ID4gbCkgbCA9 IElOVF9NQVg7DQotKwl9DQotKwluID0gLWw7DQotKwlpZiAobiA+IEJTVFJfRVJSLTEpIG4gPSBC U1RSX0VSUi0xOw0KLSsJcmV0dXJuIG47DQotK30NCi0rDQotKyNlbmRpZg0KLWRpZmYgLXVycCBw YWRzLTEuMi5vcmlnL2xpYi9ic3RyaW5nL2JzdHJsaWIuaCBwYWRzLTEuMi9saWIvYnN0cmluZy9i c3RybGliLmgKLS0tLSBwYWRzLTEuMi5vcmlnL2xpYi9ic3RyaW5nL2JzdHJsaWIuaAkyMDA4LTA3 LTA4IDE0OjI4OjI5LjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMtMS4yL2xpYi9ic3RyaW5nL2Jz dHJsaWIuaAkyMDA4LTA3LTEwIDE4OjA5OjA2LjAwMDAwMDAwMCAtMDQwMAotQEAgLTEsOCArMSw4 IEBACi0gLyoNCi0gICogVGhpcyBzb3VyY2UgZmlsZSBpcyBwYXJ0IG9mIHRoZSBic3RyaW5nIHN0 cmluZyBsaWJyYXJ5LiAgVGhpcyBjb2RlIHdhcw0KLS0gKiB3cml0dGVuIGJ5IFBhdWwgSHNpZWgg aW4gMjAwMi0yMDA0LCBhbmQgaXMgY292ZXJlZCBieSB0aGUgQlNEIG9wZW4gc291cmNlIA0KLS0g KiBsaWNlbnNlLiBSZWZlciB0byB0aGUgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24gZm9yIGRl dGFpbHMgb24gdXNhZ2UgYW5kIA0KLS0gKiBsaWNlbnNlLg0KLSsgKiB3cml0dGVuIGJ5IFBhdWwg SHNpZWggaW4gMjAwMi0yMDA4LCBhbmQgaXMgY292ZXJlZCBieSB0aGUgQlNEIG9wZW4gc291cmNl IA0KLSsgKiBsaWNlbnNlIGFuZCB0aGUgR1BMLiBSZWZlciB0byB0aGUgYWNjb21wYW55aW5nIGRv Y3VtZW50YXRpb24gZm9yIGRldGFpbHMgDQotKyAqIG9uIHVzYWdlIGFuZCBsaWNlbnNlLg0KLSAg Ki8NCi0gDQotIC8qDQotQEAgLTIxLDgwICsyMSwxNDAgQEAgZXh0ZXJuICJDIiB7DQotICNpbmNs dWRlIDxzdGRhcmcuaD4NCi0gI2luY2x1ZGUgPHN0cmluZy5oPg0KLSAjaW5jbHVkZSA8bGltaXRz Lmg+DQotKyNpbmNsdWRlIDxjdHlwZS5oPg0KLSsNCi0rI2lmICFkZWZpbmVkIChCU1RSTElCX1ZT TlBfT0spICYmICFkZWZpbmVkIChCU1RSTElCX05PVlNOUCkNCi0rIyBpZiBkZWZpbmVkIChfX1RV UkJPQ19fKSAmJiAhZGVmaW5lZCAoX19CT1JMQU5EQ19fKQ0KLSsjICBkZWZpbmUgQlNUUkxJQl9O T1ZTTlANCi0rIyBlbmRpZg0KLSsjZW5kaWYNCi0gDQotICNkZWZpbmUgQlNUUl9FUlIgKC0xKQ0K LSAjZGVmaW5lIEJTVFJfT0sgKDApDQotKyNkZWZpbmUgQlNUUl9CU19CVUZGX0xFTkdUSF9HRVQg KDApDQotIA0KLSB0eXBlZGVmIHN0cnVjdCB0YWdic3RyaW5nICogYnN0cmluZzsNCi0rdHlwZWRl ZiBjb25zdCBzdHJ1Y3QgdGFnYnN0cmluZyAqIGNvbnN0X2JzdHJpbmc7DQotIA0KLSAvKiBDb3B5 IGZ1bmN0aW9ucyAqLw0KLSAjZGVmaW5lIGNzdHIyYnN0ciBiZnJvbWNzdHINCi0gZXh0ZXJuIGJz dHJpbmcgYmZyb21jc3RyIChjb25zdCBjaGFyICogc3RyKTsNCi0rZXh0ZXJuIGJzdHJpbmcgYmZy b21jc3RyYWxsb2MgKGludCBtbGVuLCBjb25zdCBjaGFyICogc3RyKTsNCi0gZXh0ZXJuIGJzdHJp bmcgYmxrMmJzdHIgKGNvbnN0IHZvaWQgKiBibGssIGludCBsZW4pOw0KLS1leHRlcm4gY2hhciAq IGJzdHIyY3N0ciAoY29uc3QgYnN0cmluZyBzLCBjaGFyIHopOw0KLStleHRlcm4gY2hhciAqIGJz dHIyY3N0ciAoY29uc3RfYnN0cmluZyBzLCBjaGFyIHopOw0KLSBleHRlcm4gaW50IGJjc3RyZnJl ZSAoY2hhciAqIHMpOw0KLS1leHRlcm4gYnN0cmluZyBic3RyY3B5IChjb25zdCBic3RyaW5nIGIx KTsNCi0tZXh0ZXJuIGludCBiYXNzaWduIChic3RyaW5nIGEsIGNvbnN0IGJzdHJpbmcgYik7DQot K2V4dGVybiBic3RyaW5nIGJzdHJjcHkgKGNvbnN0X2JzdHJpbmcgYjEpOw0KLStleHRlcm4gaW50 IGJhc3NpZ24gKGJzdHJpbmcgYSwgY29uc3RfYnN0cmluZyBiKTsNCi0rZXh0ZXJuIGludCBiYXNz aWdubWlkc3RyIChic3RyaW5nIGEsIGNvbnN0X2JzdHJpbmcgYiwgaW50IGxlZnQsIGludCBsZW4p Ow0KLStleHRlcm4gaW50IGJhc3NpZ25jc3RyIChic3RyaW5nIGEsIGNvbnN0IGNoYXIgKiBzdHIp Ow0KLStleHRlcm4gaW50IGJhc3NpZ25ibGsgKGJzdHJpbmcgYSwgY29uc3Qgdm9pZCAqIHMsIGlu dCBsZW4pOw0KLSANCi0gLyogRGVzdHJveSBmdW5jdGlvbiAqLw0KLSBleHRlcm4gaW50IGJkZXN0 cm95IChic3RyaW5nIGIpOw0KLSANCi0tLyogU3BhY2UgYWxsb2NhdGlvbiBoaW50aW5nIGZ1bmN0 aW9uICovDQotKy8qIFNwYWNlIGFsbG9jYXRpb24gaGludGluZyBmdW5jdGlvbnMgKi8NCi0gZXh0 ZXJuIGludCBiYWxsb2MgKGJzdHJpbmcgcywgaW50IGxlbik7DQotK2V4dGVybiBpbnQgYmFsbG9j bWluIChic3RyaW5nIGIsIGludCBsZW4pOw0KLSANCi0gLyogU3Vic3RyaW5nIGV4dHJhY3Rpb24g Ki8NCi0tZXh0ZXJuIGJzdHJpbmcgYm1pZHN0ciAoY29uc3QgYnN0cmluZyBiLCBpbnQgbGVmdCwg aW50IGxlbik7DQotK2V4dGVybiBic3RyaW5nIGJtaWRzdHIgKGNvbnN0X2JzdHJpbmcgYiwgaW50 IGxlZnQsIGludCBsZW4pOw0KLSANCi0gLyogVmFyaW91cyBzdGFuZGFyZCBtYW5pcHVsYXRpb25z ICovDQotLWV4dGVybiBpbnQgYmNvbmNhdCAoYnN0cmluZyBiMCwgY29uc3QgYnN0cmluZyBiMSk7 DQotK2V4dGVybiBpbnQgYmNvbmNhdCAoYnN0cmluZyBiMCwgY29uc3RfYnN0cmluZyBiMSk7DQot IGV4dGVybiBpbnQgYmNvbmNoYXIgKGJzdHJpbmcgYjAsIGNoYXIgYyk7DQotIGV4dGVybiBpbnQg YmNhdGNzdHIgKGJzdHJpbmcgYiwgY29uc3QgY2hhciAqIHMpOw0KLS1leHRlcm4gaW50IGJjYXRi bGsgKGJzdHJpbmcgYiwgY29uc3QgdW5zaWduZWQgY2hhciAqIHMsIGludCBsZW4pOw0KLS1leHRl cm4gaW50IGJpbnNlcnQgKGJzdHJpbmcgczEsIGludCBwb3MsIGNvbnN0IGJzdHJpbmcgczIsIHVu c2lnbmVkIGNoYXIgZmlsbCk7DQotK2V4dGVybiBpbnQgYmNhdGJsayAoYnN0cmluZyBiLCBjb25z dCB2b2lkICogcywgaW50IGxlbik7DQotK2V4dGVybiBpbnQgYmluc2VydCAoYnN0cmluZyBzMSwg aW50IHBvcywgY29uc3RfYnN0cmluZyBzMiwgdW5zaWduZWQgY2hhciBmaWxsKTsNCi0gZXh0ZXJu IGludCBiaW5zZXJ0Y2ggKGJzdHJpbmcgczEsIGludCBwb3MsIGludCBsZW4sIHVuc2lnbmVkIGNo YXIgZmlsbCk7DQotLWV4dGVybiBpbnQgYnJlcGxhY2UgKGJzdHJpbmcgYjEsIGludCBwb3MsIGlu dCBsZW4sIGNvbnN0IGJzdHJpbmcgYjIsIHVuc2lnbmVkIGNoYXIgZmlsbCk7DQotK2V4dGVybiBp bnQgYnJlcGxhY2UgKGJzdHJpbmcgYjEsIGludCBwb3MsIGludCBsZW4sIGNvbnN0X2JzdHJpbmcg YjIsIHVuc2lnbmVkIGNoYXIgZmlsbCk7DQotIGV4dGVybiBpbnQgYmRlbGV0ZSAoYnN0cmluZyBz MSwgaW50IHBvcywgaW50IGxlbik7DQotLWV4dGVybiBpbnQgYnNldHN0ciAoYnN0cmluZyBiMCwg aW50IHBvcywgY29uc3QgYnN0cmluZyBiMSwgdW5zaWduZWQgY2hhciBmaWxsKTsNCi0rZXh0ZXJu IGludCBic2V0c3RyIChic3RyaW5nIGIwLCBpbnQgcG9zLCBjb25zdF9ic3RyaW5nIGIxLCB1bnNp Z25lZCBjaGFyIGZpbGwpOw0KLStleHRlcm4gaW50IGJ0cnVuYyAoYnN0cmluZyBiLCBpbnQgbik7 DQotIA0KLSAvKiBTY2FuL3NlYXJjaCBmdW5jdGlvbnMgKi8NCi0tZXh0ZXJuIGludCBic3RyaWNt cCAoY29uc3QgYnN0cmluZyBiMCwgY29uc3QgYnN0cmluZyBiMSk7DQotLWV4dGVybiBpbnQgYnN0 cm5pY21wIChjb25zdCBic3RyaW5nIGIwLCBjb25zdCBic3RyaW5nIGIxLCBpbnQgbik7DQotLWV4 dGVybiBpbnQgYmlzZXFjYXNlbGVzcyAoY29uc3QgYnN0cmluZyBiMCwgY29uc3QgYnN0cmluZyBi MSk7DQotLWV4dGVybiBpbnQgYmlzZXEgKGNvbnN0IGJzdHJpbmcgYjAsIGNvbnN0IGJzdHJpbmcg YjEpOw0KLS1leHRlcm4gaW50IGJpc2VxY3N0ciAoY29uc3QgYnN0cmluZyBiLCBjb25zdCBjaGFy ICogcyk7DQotLWV4dGVybiBpbnQgYnN0cmNtcCAoY29uc3QgYnN0cmluZyBiMCwgY29uc3QgYnN0 cmluZyBiMSk7DQotLWV4dGVybiBpbnQgYnN0cm5jbXAgKGNvbnN0IGJzdHJpbmcgYjAsIGNvbnN0 IGJzdHJpbmcgYjEsIGludCBuKTsNCi0tZXh0ZXJuIGludCBiaW5zdHIgKGNvbnN0IGJzdHJpbmcg czEsIGludCBwb3MsIGNvbnN0IGJzdHJpbmcgczIpOw0KLS1leHRlcm4gaW50IGJpbnN0cnIgKGNv bnN0IGJzdHJpbmcgczEsIGludCBwb3MsIGNvbnN0IGJzdHJpbmcgczIpOw0KLS1leHRlcm4gaW50 IGJzdHJjaHIgKGNvbnN0IGJzdHJpbmcgYiwgaW50IGMpOw0KLS1leHRlcm4gaW50IGJzdHJyY2hy IChjb25zdCBic3RyaW5nIGIsIGludCBjKTsNCi0tZXh0ZXJuIGludCBiaW5jaHIgKGNvbnN0IGJz dHJpbmcgYjAsIGludCBwb3MsIGNvbnN0IGJzdHJpbmcgYjEpOw0KLS1leHRlcm4gaW50IGJpbmNo cnIgKGNvbnN0IGJzdHJpbmcgYjAsIGludCBwb3MsIGNvbnN0IGJzdHJpbmcgYjEpOw0KLS1leHRl cm4gaW50IGJuaW5jaHIgKGNvbnN0IGJzdHJpbmcgYjAsIGludCBwb3MsIGNvbnN0IGJzdHJpbmcg YjEpOw0KLS1leHRlcm4gaW50IGJuaW5jaHJyIChjb25zdCBic3RyaW5nIGIwLCBpbnQgcG9zLCBj b25zdCBic3RyaW5nIGIxKTsNCi0tZXh0ZXJuIGludCBiZmluZHJlcGxhY2UgKGJzdHJpbmcgYiwg Y29uc3QgYnN0cmluZyBmaW5kLCBjb25zdCBic3RyaW5nIHJlcGwsIGludCBwb3MpOw0KLStleHRl cm4gaW50IGJzdHJpY21wIChjb25zdF9ic3RyaW5nIGIwLCBjb25zdF9ic3RyaW5nIGIxKTsNCi0r ZXh0ZXJuIGludCBic3RybmljbXAgKGNvbnN0X2JzdHJpbmcgYjAsIGNvbnN0X2JzdHJpbmcgYjEs IGludCBuKTsNCi0rZXh0ZXJuIGludCBiaXNlcWNhc2VsZXNzIChjb25zdF9ic3RyaW5nIGIwLCBj b25zdF9ic3RyaW5nIGIxKTsNCi0rZXh0ZXJuIGludCBiaXNzdGVtZXFjYXNlbGVzc2JsayAoY29u c3RfYnN0cmluZyBiMCwgY29uc3Qgdm9pZCAqIGJsaywgaW50IGxlbik7DQotK2V4dGVybiBpbnQg YmlzZXEgKGNvbnN0X2JzdHJpbmcgYjAsIGNvbnN0X2JzdHJpbmcgYjEpOw0KLStleHRlcm4gaW50 IGJpc3N0ZW1lcWJsayAoY29uc3RfYnN0cmluZyBiMCwgY29uc3Qgdm9pZCAqIGJsaywgaW50IGxl bik7DQotK2V4dGVybiBpbnQgYmlzZXFjc3RyIChjb25zdF9ic3RyaW5nIGIsIGNvbnN0IGNoYXIg KiBzKTsNCi0rZXh0ZXJuIGludCBiaXNlcWNzdHJjYXNlbGVzcyAoY29uc3RfYnN0cmluZyBiLCBj b25zdCBjaGFyICogcyk7DQotK2V4dGVybiBpbnQgYnN0cmNtcCAoY29uc3RfYnN0cmluZyBiMCwg Y29uc3RfYnN0cmluZyBiMSk7DQotK2V4dGVybiBpbnQgYnN0cm5jbXAgKGNvbnN0X2JzdHJpbmcg YjAsIGNvbnN0X2JzdHJpbmcgYjEsIGludCBuKTsNCi0rZXh0ZXJuIGludCBiaW5zdHIgKGNvbnN0 X2JzdHJpbmcgczEsIGludCBwb3MsIGNvbnN0X2JzdHJpbmcgczIpOw0KLStleHRlcm4gaW50IGJp bnN0cnIgKGNvbnN0X2JzdHJpbmcgczEsIGludCBwb3MsIGNvbnN0X2JzdHJpbmcgczIpOw0KLStl eHRlcm4gaW50IGJpbnN0cmNhc2VsZXNzIChjb25zdF9ic3RyaW5nIHMxLCBpbnQgcG9zLCBjb25z dF9ic3RyaW5nIHMyKTsNCi0rZXh0ZXJuIGludCBiaW5zdHJyY2FzZWxlc3MgKGNvbnN0X2JzdHJp bmcgczEsIGludCBwb3MsIGNvbnN0X2JzdHJpbmcgczIpOw0KLStleHRlcm4gaW50IGJzdHJjaHJw IChjb25zdF9ic3RyaW5nIGIsIGludCBjLCBpbnQgcG9zKTsNCi0rZXh0ZXJuIGludCBic3RycmNo cnAgKGNvbnN0X2JzdHJpbmcgYiwgaW50IGMsIGludCBwb3MpOw0KLSsjZGVmaW5lIGJzdHJjaHIo YixjKSBic3RyY2hycCAoKGIpLCAoYyksIDApDQotKyNkZWZpbmUgYnN0cnJjaHIoYixjKSBic3Ry cmNocnAgKChiKSwgKGMpLCBibGVuZ3RoKGIpLTEpDQotK2V4dGVybiBpbnQgYmluY2hyIChjb25z dF9ic3RyaW5nIGIwLCBpbnQgcG9zLCBjb25zdF9ic3RyaW5nIGIxKTsNCi0rZXh0ZXJuIGludCBi aW5jaHJyIChjb25zdF9ic3RyaW5nIGIwLCBpbnQgcG9zLCBjb25zdF9ic3RyaW5nIGIxKTsNCi0r ZXh0ZXJuIGludCBibmluY2hyIChjb25zdF9ic3RyaW5nIGIwLCBpbnQgcG9zLCBjb25zdF9ic3Ry aW5nIGIxKTsNCi0rZXh0ZXJuIGludCBibmluY2hyciAoY29uc3RfYnN0cmluZyBiMCwgaW50IHBv cywgY29uc3RfYnN0cmluZyBiMSk7DQotK2V4dGVybiBpbnQgYmZpbmRyZXBsYWNlIChic3RyaW5n IGIsIGNvbnN0X2JzdHJpbmcgZmluZCwgY29uc3RfYnN0cmluZyByZXBsLCBpbnQgcG9zKTsNCi0r ZXh0ZXJuIGludCBiZmluZHJlcGxhY2VjYXNlbGVzcyAoYnN0cmluZyBiLCBjb25zdF9ic3RyaW5n IGZpbmQsIGNvbnN0X2JzdHJpbmcgcmVwbCwgaW50IHBvcyk7DQotIA0KLSsvKiBMaXN0IG9mIHN0 cmluZyBjb250YWluZXIgZnVuY3Rpb25zICovDQotIHN0cnVjdCBic3RyTGlzdCB7DQotLSAgICBp bnQgcXR5Ow0KLS0gICAgYnN0cmluZyBlbnRyeVsxXTsNCi0rICAgIGludCBxdHksIG1sZW47DQot KyAgICBic3RyaW5nICogZW50cnk7DQotIH07DQotK2V4dGVybiBzdHJ1Y3QgYnN0ckxpc3QgKiBi c3RyTGlzdENyZWF0ZSAodm9pZCk7DQotK2V4dGVybiBpbnQgYnN0ckxpc3REZXN0cm95IChzdHJ1 Y3QgYnN0ckxpc3QgKiBzbCk7DQotK2V4dGVybiBpbnQgYnN0ckxpc3RBbGxvYyAoc3RydWN0IGJz dHJMaXN0ICogc2wsIGludCBtc3opOw0KLStleHRlcm4gaW50IGJzdHJMaXN0QWxsb2NNaW4gKHN0 cnVjdCBic3RyTGlzdCAqIHNsLCBpbnQgbXN6KTsNCi0gDQotIC8qIFN0cmluZyBzcGxpdCBhbmQg am9pbiBmdW5jdGlvbnMgKi8NCi0tZXh0ZXJuIHN0cnVjdCBic3RyTGlzdCAqIGJzcGxpdCAoY29u c3QgYnN0cmluZyBzdHIsIHVuc2lnbmVkIGNoYXIgc3BsaXRDaGFyKTsNCi0tZXh0ZXJuIHN0cnVj dCBic3RyTGlzdCAqIGJzcGxpdHMgKGNvbnN0IGJzdHJpbmcgc3RyLCBjb25zdCBic3RyaW5nIHNw bGl0U3RyKTsNCi0tZXh0ZXJuIGJzdHJpbmcgYmpvaW4gKGNvbnN0IHN0cnVjdCBic3RyTGlzdCAq IGJsLCBjb25zdCBic3RyaW5nIHNlcCk7DQotLWV4dGVybiBpbnQgYnN0ckxpc3REZXN0cm95IChz dHJ1Y3QgYnN0ckxpc3QgKiBzbCk7DQotLWV4dGVybiBpbnQgYnNwbGl0Y2IgKGNvbnN0IGJzdHJp bmcgc3RyLCB1bnNpZ25lZCBjaGFyIHNwbGl0Q2hhciwgaW50IHBvcywNCi0rZXh0ZXJuIHN0cnVj dCBic3RyTGlzdCAqIGJzcGxpdCAoY29uc3RfYnN0cmluZyBzdHIsIHVuc2lnbmVkIGNoYXIgc3Bs aXRDaGFyKTsNCi0rZXh0ZXJuIHN0cnVjdCBic3RyTGlzdCAqIGJzcGxpdHMgKGNvbnN0X2JzdHJp bmcgc3RyLCBjb25zdF9ic3RyaW5nIHNwbGl0U3RyKTsNCi0rZXh0ZXJuIHN0cnVjdCBic3RyTGlz dCAqIGJzcGxpdHN0ciAoY29uc3RfYnN0cmluZyBzdHIsIGNvbnN0X2JzdHJpbmcgc3BsaXRTdHIp Ow0KLStleHRlcm4gYnN0cmluZyBiam9pbiAoY29uc3Qgc3RydWN0IGJzdHJMaXN0ICogYmwsIGNv bnN0X2JzdHJpbmcgc2VwKTsNCi0rZXh0ZXJuIGludCBic3BsaXRjYiAoY29uc3RfYnN0cmluZyBz dHIsIHVuc2lnbmVkIGNoYXIgc3BsaXRDaGFyLCBpbnQgcG9zLA0KLSsJaW50ICgqIGNiKSAodm9p ZCAqIHBhcm0sIGludCBvZnMsIGludCBsZW4pLCB2b2lkICogcGFybSk7DQotK2V4dGVybiBpbnQg YnNwbGl0c2NiIChjb25zdF9ic3RyaW5nIHN0ciwgY29uc3RfYnN0cmluZyBzcGxpdFN0ciwgaW50 IHBvcywNCi0gCWludCAoKiBjYikgKHZvaWQgKiBwYXJtLCBpbnQgb2ZzLCBpbnQgbGVuKSwgdm9p ZCAqIHBhcm0pOw0KLS1leHRlcm4gaW50IGJzcGxpdHNjYiAoY29uc3QgYnN0cmluZyBzdHIsIGNv bnN0IGJzdHJpbmcgc3BsaXRTdHIsIGludCBwb3MsDQotK2V4dGVybiBpbnQgYnNwbGl0c3RyY2Ig KGNvbnN0X2JzdHJpbmcgc3RyLCBjb25zdF9ic3RyaW5nIHNwbGl0U3RyLCBpbnQgcG9zLA0KLSAJ aW50ICgqIGNiKSAodm9pZCAqIHBhcm0sIGludCBvZnMsIGludCBsZW4pLCB2b2lkICogcGFybSk7 DQotIA0KLSAvKiBNaXNjZWxsYW5lb3VzIGZ1bmN0aW9ucyAqLw0KLSBleHRlcm4gaW50IGJwYXR0 ZXJuIChic3RyaW5nIGIsIGludCBsZW4pOw0KLSBleHRlcm4gaW50IGJ0b3VwcGVyIChic3RyaW5n IGIpOw0KLSBleHRlcm4gaW50IGJ0b2xvd2VyIChic3RyaW5nIGIpOw0KLStleHRlcm4gaW50IGJs dHJpbXdzIChic3RyaW5nIGIpOw0KLStleHRlcm4gaW50IGJydHJpbXdzIChic3RyaW5nIGIpOw0K LStleHRlcm4gaW50IGJ0cmltd3MgKGJzdHJpbmcgYik7DQotKw0KLSsjaWYgIWRlZmluZWQgKEJT VFJMSUJfTk9WU05QKQ0KLSBleHRlcm4gYnN0cmluZyBiZm9ybWF0IChjb25zdCBjaGFyICogZm10 LCAuLi4pOw0KLSBleHRlcm4gaW50IGJmb3JtYXRhIChic3RyaW5nIGIsIGNvbnN0IGNoYXIgKiBm bXQsIC4uLik7DQotK2V4dGVybiBpbnQgYmFzc2lnbmZvcm1hdCAoYnN0cmluZyBiLCBjb25zdCBj aGFyICogZm10LCAuLi4pOw0KLStleHRlcm4gaW50IGJ2Y2Zvcm1hdGEgKGJzdHJpbmcgYiwgaW50 IGNvdW50LCBjb25zdCBjaGFyICogZm10LCB2YV9saXN0IGFyZ2xpc3QpOw0KLSsNCi0rI2RlZmlu ZSBidmZvcm1hdGEocmV0LCBiLCBmbXQsIGxhc3RhcmcpIHsgXA0KLStic3RyaW5nIGJzdHJ0bXBf YiA9IChiKTsgXA0KLStjb25zdCBjaGFyICogYnN0cnRtcF9mbXQgPSAoZm10KTsgXA0KLStpbnQg YnN0cnRtcF9yID0gQlNUUl9FUlIsIGJzdHJ0bXBfc3ogPSAxNjsgXA0KLSsJZm9yICg7OykgeyBc DQotKwkJdmFfbGlzdCBic3RydG1wX2FyZ2xpc3Q7IFwNCi0rCQl2YV9zdGFydCAoYnN0cnRtcF9h cmdsaXN0LCBsYXN0YXJnKTsgXA0KLSsJCWJzdHJ0bXBfciA9IGJ2Y2Zvcm1hdGEgKGJzdHJ0bXBf YiwgYnN0cnRtcF9zeiwgYnN0cnRtcF9mbXQsIGJzdHJ0bXBfYXJnbGlzdCk7IFwNCi0rCQl2YV9l bmQgKGJzdHJ0bXBfYXJnbGlzdCk7IFwNCi0rCQlpZiAoYnN0cnRtcF9yID49IDApIHsgLyogRXZl cnl0aGluZyB3ZW50IG9rICovIFwNCi0rCQkJYnN0cnRtcF9yID0gQlNUUl9PSzsgXA0KLSsJCQli cmVhazsgXA0KLSsJCX0gZWxzZSBpZiAoLWJzdHJ0bXBfciA8PSBic3RydG1wX3N6KSB7IC8qIEEg cmVhbCBlcnJvcj8gKi8gXA0KLSsJCQlic3RydG1wX3IgPSBCU1RSX0VSUjsgXA0KLSsJCQlicmVh azsgXA0KLSsJCX0gXA0KLSsJCWJzdHJ0bXBfc3ogPSAtYnN0cnRtcF9yOyAvKiBEb3VibGVkIG9y IHRhcmdldCBzaXplICovIFwNCi0rCX0gXA0KLSsJcmV0ID0gYnN0cnRtcF9yOyBcDQotK30NCi0r DQotKyNlbmRpZg0KLSANCi0gdHlwZWRlZiBpbnQgKCpiTmdldGMpICh2b2lkICpwYXJtKTsNCi0g dHlwZWRlZiBzaXplX3QgKCogYk5yZWFkKSAodm9pZCAqYnVmZiwgc2l6ZV90IGVsc2l6ZSwgc2l6 ZV90IG5lbGVtLCB2b2lkICpwYXJtKTsNCi1AQCAtMTAyLDIxICsxNjIsMjYgQEAgdHlwZWRlZiBz aXplX3QgKCogYk5yZWFkKSAodm9pZCAqYnVmZiwgcwotIC8qIElucHV0IGZ1bmN0aW9ucyAqLw0K LSBleHRlcm4gYnN0cmluZyBiZ2V0cyAoYk5nZXRjIGdldGNQdHIsIHZvaWQgKiBwYXJtLCBjaGFy IHRlcm1pbmF0b3IpOw0KLSBleHRlcm4gYnN0cmluZyBicmVhZCAoYk5yZWFkIHJlYWRQdHIsIHZv aWQgKiBwYXJtKTsNCi0rZXh0ZXJuIGludCBiZ2V0c2EgKGJzdHJpbmcgYiwgYk5nZXRjIGdldGNQ dHIsIHZvaWQgKiBwYXJtLCBjaGFyIHRlcm1pbmF0b3IpOw0KLStleHRlcm4gaW50IGJhc3NpZ25n ZXRzIChic3RyaW5nIGIsIGJOZ2V0YyBnZXRjUHRyLCB2b2lkICogcGFybSwgY2hhciB0ZXJtaW5h dG9yKTsNCi0rZXh0ZXJuIGludCBicmVhZGEgKGJzdHJpbmcgYiwgYk5yZWFkIHJlYWRQdHIsIHZv aWQgKiBwYXJtKTsNCi0gDQotIC8qIFN0cmVhbSBmdW5jdGlvbnMgKi8NCi0gZXh0ZXJuIHN0cnVj dCBiU3RyZWFtICogYnNvcGVuIChiTnJlYWQgcmVhZFB0ciwgdm9pZCAqIHBhcm0pOw0KLSBleHRl cm4gdm9pZCAqIGJzY2xvc2UgKHN0cnVjdCBiU3RyZWFtICogcyk7DQotIGV4dGVybiBpbnQgYnNi dWZmbGVuZ3RoIChzdHJ1Y3QgYlN0cmVhbSAqIHMsIGludCBzeik7DQotIGV4dGVybiBpbnQgYnNy ZWFkbG4gKGJzdHJpbmcgYiwgc3RydWN0IGJTdHJlYW0gKiBzLCBjaGFyIHRlcm1pbmF0b3IpOw0K LS1leHRlcm4gaW50IGJzcmVhZGxucyAoYnN0cmluZyByLCBzdHJ1Y3QgYlN0cmVhbSAqIHMsIGNv bnN0IGJzdHJpbmcgdGVybSk7DQotK2V4dGVybiBpbnQgYnNyZWFkbG5zIChic3RyaW5nIHIsIHN0 cnVjdCBiU3RyZWFtICogcywgY29uc3RfYnN0cmluZyB0ZXJtKTsNCi0gZXh0ZXJuIGludCBic3Jl YWQgKGJzdHJpbmcgYiwgc3RydWN0IGJTdHJlYW0gKiBzLCBpbnQgbik7DQotIGV4dGVybiBpbnQg YnNyZWFkbG5hIChic3RyaW5nIGIsIHN0cnVjdCBiU3RyZWFtICogcywgY2hhciB0ZXJtaW5hdG9y KTsNCi0tZXh0ZXJuIGludCBic3JlYWRsbnNhIChic3RyaW5nIHIsIHN0cnVjdCBiU3RyZWFtICog cywgY29uc3QgYnN0cmluZyB0ZXJtKTsNCi0rZXh0ZXJuIGludCBic3JlYWRsbnNhIChic3RyaW5n IHIsIHN0cnVjdCBiU3RyZWFtICogcywgY29uc3RfYnN0cmluZyB0ZXJtKTsNCi0gZXh0ZXJuIGlu dCBic3JlYWRhIChic3RyaW5nIGIsIHN0cnVjdCBiU3RyZWFtICogcywgaW50IG4pOw0KLS1leHRl cm4gaW50IGJzdW5yZWFkIChzdHJ1Y3QgYlN0cmVhbSAqIHMsIGNvbnN0IGJzdHJpbmcgYik7DQot K2V4dGVybiBpbnQgYnN1bnJlYWQgKHN0cnVjdCBiU3RyZWFtICogcywgY29uc3RfYnN0cmluZyBi KTsNCi0gZXh0ZXJuIGludCBic3BlZWsgKGJzdHJpbmcgciwgY29uc3Qgc3RydWN0IGJTdHJlYW0g KiBzKTsNCi0tZXh0ZXJuIGludCBic3NwbGl0c2NiIChzdHJ1Y3QgYlN0cmVhbSAqIHMsIGNvbnN0 IGJzdHJpbmcgc3BsaXRTdHIsIA0KLS0JaW50ICgqIGNiKSAodm9pZCAqIHBhcm0sIGludCBvZnMs IGNvbnN0IGJzdHJpbmcgZW50cnkpLCB2b2lkICogcGFybSk7DQotK2V4dGVybiBpbnQgYnNzcGxp dHNjYiAoc3RydWN0IGJTdHJlYW0gKiBzLCBjb25zdF9ic3RyaW5nIHNwbGl0U3RyLCANCi0rCWlu dCAoKiBjYikgKHZvaWQgKiBwYXJtLCBpbnQgb2ZzLCBjb25zdF9ic3RyaW5nIGVudHJ5KSwgdm9p ZCAqIHBhcm0pOw0KLStleHRlcm4gaW50IGJzc3BsaXRzdHJjYiAoc3RydWN0IGJTdHJlYW0gKiBz LCBjb25zdF9ic3RyaW5nIHNwbGl0U3RyLCANCi0rCWludCAoKiBjYikgKHZvaWQgKiBwYXJtLCBp bnQgb2ZzLCBjb25zdF9ic3RyaW5nIGVudHJ5KSwgdm9pZCAqIHBhcm0pOw0KLSBleHRlcm4gaW50 IGJzZW9mIChjb25zdCBzdHJ1Y3QgYlN0cmVhbSAqIHMpOw0KLSANCi0gc3RydWN0IHRhZ2JzdHJp bmcgew0KLUBAIC0xMjYsOSArMTkxLDkgQEAgc3RydWN0IHRhZ2JzdHJpbmcgew0KLSB9Ow0KLSAN Ci0gLyogQWNjZXNzb3IgbWFjcm9zICovDQotLSNkZWZpbmUgYmxlbmd0aGUoYiwgZSkgICAgICAo KChiKSA9PSAodm9pZCAqKTAgfHwgKGIpLT5zbGVuIDwgMCkgPyAodW5zaWduZWQgaW50KShlKSA6 ICgoYiktPnNsZW4pKQ0KLSsjZGVmaW5lIGJsZW5ndGhlKGIsIGUpICAgICAgKCgoYikgPT0gKHZv aWQgKikwIHx8IChiKS0+c2xlbiA8IDApID8gKGludCkoZSkgOiAoKGIpLT5zbGVuKSkNCi0gI2Rl ZmluZSBibGVuZ3RoKGIpICAgICAgICAgIChibGVuZ3RoZSAoKGIpLCAwKSkNCi0tI2RlZmluZSBi ZGF0YW9mc2UoYiwgbywgZSkgICgoKGIpID09ICh2b2lkICopMCB8fCAoYiktPmRhdGEgPT0gKHZv aWQqKTApID8gKHVuc2lnbmVkIGNoYXIgKikoZSkgOiAoKGIpLT5kYXRhKSArIChvKSkNCi0rI2Rl ZmluZSBiZGF0YW9mc2UoYiwgbywgZSkgICgoKGIpID09ICh2b2lkICopMCB8fCAoYiktPmRhdGEg PT0gKHZvaWQqKTApID8gKGNoYXIgKikoZSkgOiAoKGNoYXIgKikoYiktPmRhdGEpICsgKG8pKQ0K LSAjZGVmaW5lIGJkYXRhb2ZzKGIsIG8pICAgICAgKGJkYXRhb2ZzZSAoKGIpLCAobyksICh2b2lk ICopMCkpDQotICNkZWZpbmUgYmRhdGFlKGIsIGUpICAgICAgICAoYmRhdGFvZnNlIChiLCAwLCBl KSkNCi0gI2RlZmluZSBiZGF0YShiKSAgICAgICAgICAgIChiZGF0YW9mcyAoYiwgMCkpDQotQEAg LTEzNiwyOCArMjAxLDEwMSBAQCBzdHJ1Y3QgdGFnYnN0cmluZyB7DQotICNkZWZpbmUgYmNoYXIo YiwgcCkgICAgICAgICBiY2hhcmUgKChiKSwgKHApLCAnXDAnKQ0KLSANCi0gLyogU3RhdGljIGNv bnN0YW50IHN0cmluZyBpbml0aWFsaXphdGlvbiBtYWNybyAqLw0KLS0jZGVmaW5lIGJzU3RhdGlj KHEpICAgICAgICAgey1fX0xJTkVfXywgc2l6ZW9mKHEpLTEsICh1bnNpZ25lZCBjaGFyICopKHEp fQ0KLSsjZGVmaW5lIGJzU3RhdGljTWxlbihxLG0pICAgeyhtKSwgKGludCkgc2l6ZW9mKHEpLTEs ICh1bnNpZ25lZCBjaGFyICopICgiIiBxICIiKX0NCi0rI2lmIGRlZmluZWQoX01TQ19WRVIpDQot KyMgZGVmaW5lIGJzU3RhdGljKHEpICAgICAgICBic1N0YXRpY01sZW4ocSwtMzIpDQotKyNlbmRp Zg0KLSsjaWZuZGVmIGJzU3RhdGljDQotKyMgZGVmaW5lIGJzU3RhdGljKHEpICAgICAgICBic1N0 YXRpY01sZW4ocSwtX19MSU5FX18pDQotKyNlbmRpZg0KLSsNCi0rLyogU3RhdGljIGNvbnN0YW50 IGJsb2NrIHBhcmFtZXRlciBwYWlyICovDQotKyNkZWZpbmUgYnNTdGF0aWNCbGtQYXJtcyhxKSAo KHZvaWQgKikoIiIgcSAiIikpLCAoKGludCkgc2l6ZW9mKHEpLTEpDQotIA0KLSAvKiBSZWZlcmVu Y2UgYnVpbGRpbmcgbWFjcm9zICovDQotICNkZWZpbmUgY3N0cjJ0YnN0ciBidGZyb21jc3RyDQot LSNkZWZpbmUgYnRmcm9tY3N0cih0LHMpIHsgICAgICAgICAgICAgICAgICAgICAgICAgXA0KLS0g ICAgKHQpLmRhdGEgPSAodW5zaWduZWQgY2hhciAqKSAocyk7ICAgICAgICAgICAgIFwNCi0tICAg ICh0KS5zbGVuID0gKGludCkgKHN0cmxlbikgKChjaGFyICopKHQpLmRhdGEpOyBcDQotLSAgICAo dCkubWxlbiA9IC0xOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KLSsjZGVmaW5l IGJ0ZnJvbWNzdHIodCxzKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQotKyAgICAodCkuZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopIChzKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICh0KS5zbGVuID0gKCh0KS5kYXRhKSA/ICgo aW50KSAoc3RybGVuKSAoKGNoYXIgKikodCkuZGF0YSkpIDogMDsgXA0KLSsgICAgKHQpLm1sZW4g PSAtMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQotIH0NCi0gI2RlZmluZSBibGsydGJzdHIodCxzLGwpIHsgICAgICAgICAgICBcDQotKyAgICAo dCkuZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopIChzKTsgXA0KLSAgICAgKHQpLnNsZW4gPSBsOyAg ICAgICAgICAgICAgICAgICAgIFwNCi0gICAgICh0KS5tbGVuID0gLTE7ICAgICAgICAgICAgICAg ICAgICBcDQotLSAgICAodCkuZGF0YSA9ICh1bnNpZ25lZCBjaGFyICopIChzKTsgXA0KLSt9DQot KyNkZWZpbmUgYnRmcm9tYmxrKHQscyxsKSBibGsydGJzdHIodCxzLGwpDQotKyNkZWZpbmUgYm1p ZDJ0YnN0cih0LGIscCxsKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KLSsgICAgY29uc3RfYnN0cmluZyBic3RydG1wX3MgPSAoYik7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgIGlmIChic3RydG1wX3Mg JiYgYnN0cnRtcF9zLT5kYXRhICYmIGJzdHJ0bXBfcy0+c2xlbiA+PSAwKSB7ICAgICAgICAgICAg ICBcDQotKyAgICAgICAgaW50IGJzdHJ0bXBfbGVmdCA9IChwKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KLSsgICAgICAgIGludCBic3RydG1wX2xlbiAg PSAobCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0r ICAgICAgICBpZiAoYnN0cnRtcF9sZWZ0IDwgMCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQotKyAgICAgICAgICAgIGJzdHJ0bXBfbGVuICs9IGJzdHJ0 bXBfbGVmdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KLSsgICAgICAg ICAgICBic3RydG1wX2xlZnQgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCi0rICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotKyAgICAgICAgaWYgKGJz dHJ0bXBfbGVuID4gYnN0cnRtcF9zLT5zbGVuIC0gYnN0cnRtcF9sZWZ0KSAgICAgICAgICAgICAg ICAgICAgXA0KLSsgICAgICAgICAgICBic3RydG1wX2xlbiA9IGJzdHJ0bXBfcy0+c2xlbiAtIGJz dHJ0bXBfbGVmdDsgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICAgICBpZiAoYnN0cnRtcF9s ZW4gPD0gMCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQotKyAgICAgICAgICAgICh0KS5kYXRhID0gKHVuc2lnbmVkIGNoYXIgKikiIjsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KLSsgICAgICAgICAgICAodCkuc2xlbiA9IDA7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAg ICAgICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQotKyAgICAgICAgICAgICh0KS5kYXRhID0gYnN0cnRtcF9zLT5k YXRhICsgYnN0cnRtcF9sZWZ0OyAgICAgICAgICAgICAgICAgICAgICAgXA0KLSsgICAgICAgICAg ICAodCkuc2xlbiA9IGJzdHJ0bXBfbGVuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCi0rICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotKyAgICB9IGVsc2UgeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KLSsgICAgICAgICh0KS5kYXRhID0gKHVuc2lnbmVkIGNoYXIgKikiIjsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICAgICAodCkuc2xlbiA9IDA7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQot KyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KLSsgICAgKHQpLm1sZW4gPSAtX19MSU5FX187ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rfQ0KLSsj ZGVmaW5lIGJ0ZnJvbWJsa2x0cmltd3ModCxzLGwpIHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCi0rICAgIGludCBic3RydG1wX2lkeCA9IDAsIGJzdHJ0bXBf bGVuID0gKGwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotKyAgICB1bnNp Z25lZCBjaGFyICogYnN0cnRtcF9zID0gKHMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KLSsgICAgaWYgKGJzdHJ0bXBfcyAmJiBic3RydG1wX2xlbiA+PSAwKSB7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICAgICBmb3IgKDsg YnN0cnRtcF9pZHggPCBic3RydG1wX2xlbjsgYnN0cnRtcF9pZHgrKykgeyAgICAgICAgICAgICAg ICAgICBcDQotKyAgICAgICAgICAgIGlmICghaXNzcGFjZSAoYnN0cnRtcF9zW2JzdHJ0bXBfaWR4 XSkpIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgXA0KLSsgICAgICAgIH0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN Ci0rICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQotKyAgICAodCkuZGF0YSA9IGJzdHJ0bXBfcyArIGJz dHJ0bXBfaWR4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KLSsgICAg KHQpLnNsZW4gPSBic3RydG1wX2xlbiAtIGJzdHJ0bXBfaWR4OyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCi0rICAgICh0KS5tbGVuID0gLV9fTElORV9fOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotK30NCi0rI2RlZmlu ZSBidGZyb21ibGtydHJpbXdzKHQscyxsKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQotKyAgICBpbnQgYnN0cnRtcF9sZW4gPSAobCkgLSAxOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KLSsgICAgdW5zaWduZWQg Y2hhciAqIGJzdHJ0bXBfcyA9IChzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCi0rICAgIGlmIChic3RydG1wX3MgJiYgYnN0cnRtcF9sZW4gPj0gMCkgeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotKyAgICAgICAgZm9yICg7IGJzdHJ0 bXBfbGVuID49IDA7IGJzdHJ0bXBfbGVuLS0pIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KLSsgICAgICAgICAgICBpZiAoIWlzc3BhY2UgKGJzdHJ0bXBfc1tic3RydG1wX2xlbl0pKSBi cmVhazsgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICAgICB9ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotKyAg ICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KLSsgICAgKHQpLmRhdGEgPSBic3RydG1wX3M7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICh0KS5z bGVuID0gYnN0cnRtcF9sZW4gKyAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQotKyAgICAodCkubWxlbiA9IC1fX0xJTkVfXzsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KLSt9DQotKyNkZWZpbmUgYnRm cm9tYmxrdHJpbXdzKHQscyxsKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KLSsgICAgaW50IGJzdHJ0bXBfaWR4ID0gMCwgYnN0cnRtcF9sZW4gPSAobCkg LSAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgIHVuc2lnbmVkIGNoYXIg KiBic3RydG1wX3MgPSAocyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQotKyAgICBpZiAoYnN0cnRtcF9zICYmIGJzdHJ0bXBfbGVuID49IDApIHsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KLSsgICAgICAgIGZvciAoOyBic3RydG1wX2lk eCA8PSBic3RydG1wX2xlbjsgYnN0cnRtcF9pZHgrKykgeyAgICAgICAgICAgICAgICAgIFwNCi0r ICAgICAgICAgICAgaWYgKCFpc3NwYWNlIChic3RydG1wX3NbYnN0cnRtcF9pZHhdKSkgYnJlYWs7 ICAgICAgICAgICAgICAgICAgICBcDQotKyAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KLSsgICAgICAg IGZvciAoOyBic3RydG1wX2xlbiA+PSBic3RydG1wX2lkeDsgYnN0cnRtcF9sZW4tLSkgeyAgICAg ICAgICAgICAgICAgIFwNCi0rICAgICAgICAgICAgaWYgKCFpc3NwYWNlIChic3RydG1wX3NbYnN0 cnRtcF9sZW5dKSkgYnJlYWs7ICAgICAgICAgICAgICAgICAgICBcDQotKyAgICAgICAgfSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KLSsgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICh0KS5kYXRhID0gYnN0cnRt cF9zICsgYnN0cnRtcF9pZHg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQotKyAgICAodCkuc2xlbiA9IGJzdHJ0bXBfbGVuICsgMSAtIGJzdHJ0bXBfaWR4OyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KLSsgICAgKHQpLm1sZW4gPSAtX19MSU5FX187ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0gfQ0K LSANCi0gLyogV3JpdGUgcHJvdGVjdGlvbiBtYWNyb3MgKi8NCi0tI2RlZmluZSBid3JpdGVwcm90 ZWN0KHQpIHsgaWYgKCh0KS5tbGVuID49ICAwKSAodCkubWxlbiA9IC0xOyB9DQotLSNkZWZpbmUg YndyaXRlYWxsb3codCkgICB7IGlmICgodCkubWxlbiA9PSAtMSkgKHQpLm1sZW4gPSAodCkuc2xl biArICgodCkuc2xlbiA9PSAwKTsgfQ0KLSsjZGVmaW5lIGJ3cml0ZXByb3RlY3QodCkgICAgIHsg aWYgKCh0KS5tbGVuID49ICAwKSAodCkubWxlbiA9IC0xOyB9DQotKyNkZWZpbmUgYndyaXRlYWxs b3codCkgICAgICAgeyBpZiAoKHQpLm1sZW4gPT0gLTEpICh0KS5tbGVuID0gKHQpLnNsZW4gKyAo KHQpLnNsZW4gPT0gMCk7IH0NCi0rI2RlZmluZSBiaXN3cml0ZXByb3RlY3RlZCh0KSAoKHQpLm1s ZW4gPD0gMCkNCi0gDQotICNpZmRlZiBfX2NwbHVzcGx1cw0KLSB9DQotICNlbmRpZg0KLSANCi0t DQotICNlbmRpZg0KCmRpZmYgLS1naXQgYS9wYWRzLTEuMi1jbGVhbnVwLnBhdGNoIGIvcGFkcy0x LjItY2xlYW51cC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWI2M2YwYy4u MDAwMDAwMAotLS0gYS9wYWRzLTEuMi1jbGVhbnVwLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs OTMxICswLDAgQEAKLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy9jb25maWd1cmF0aW9uLmMg cGFkcy0xLjIvc3JjL2NvbmZpZ3VyYXRpb24uYwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL2NvbmZp Z3VyYXRpb24uYwkyMDA4LTA2LTI5IDIwOjE2OjMwLjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMt MS4yL3NyYy9jb25maWd1cmF0aW9uLmMJMjAwOC0wNi0zMCAxMzoyODoyOC4wMDAwMDAwMDAgLTA0 MDAKLUBAIC0yNiw2ICsyNiw5IEBACi0gICoKLSAgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gI2luY2x1 ZGUgImNvbmZpZ3VyYXRpb24uaCIKLSsjaW5jbHVkZSAidXRpbC5oIgotKyNpbmNsdWRlICJic3Ry aW5nL3V0aWwuaCIKLSsjaW5jbHVkZSAibW9ubmV0LmgiCi0gCi0gLyogVmFyaWFibGUgRGVjbGFy YXRpb25zICovCi0gCi1AQCAtNDQsNyArNDcsNyBAQCB2b2lkIGluaXRfY29uZmlndXJhdGlvbiAo YnN0cmluZyBmaWxlbmFtCi0gCi0gICAgIHZlcmJvc2VfbWVzc2FnZSgiY29uZmlnIC0gUHJvY2Vz c2luZyAnJXMnLiIsIGJkYXRhKGZpbGVuYW1lKSk7Ci0gCi0tICAgIGlmICgoZnAgPSBmb3Blbihi ZGF0YShmaWxlbmFtZSksICJyIikpID09IE5VTEwpIHsKLSsgICAgaWYgKChmcCA9IGZvcGVuKChj aGFyICopYmRhdGEoZmlsZW5hbWUpLCAiciIpKSA9PSBOVUxMKSB7Ci0gICAgICAgICBlcnJfbWVz c2FnZSgiVW5hYmxlIHRvIG9wZW4gY29uZmlndXJhdGlvbiBmaWxlIC0gJXMiLCBiZGF0YShmaWxl bmFtZSkpOwotICAgICB9Ci0gCi1AQCAtNTksNyArNjIsNyBAQCB2b2lkIGluaXRfY29uZmlndXJh dGlvbiAoYnN0cmluZyBmaWxlbmFtCi0gICAgIC8qIENsZWFuIFVwICovCi0gICAgIGJkZXN0cm95 KGZpbGVkYXRhKTsKLSAgICAgYnN0ckxpc3REZXN0cm95KGxpbmVzKTsKLS0gICAgY2xvc2UoZnAp OwotKyAgICBmY2xvc2UoZnApOwotIH0KLSAKLSAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1AQCAtMTQ3LDcgKzE1MCw3IEBAIHZv aWQgcGFyc2VfbGluZSAoYnN0cmluZyBsaW5lKQotIAotICAgICB9IGVsc2UgaWYgKChiaXNlcWNz dHIocGFyYW0sICJuZXR3b3JrIikpID09IDEpIHsKLSAgICAgICAgIC8qIE5FVFdPUksgKi8KLS0g ICAgICAgIHBhcnNlX25ldHdvcmtzKGJkYXRhKHZhbHVlKSk7Ci0rICAgICAgICBwYXJzZV9uZXR3 b3JrcygoY2hhciAqKWJkYXRhKHZhbHVlKSk7Ci0gCi0gICAgIH0KLSAKLWRpZmYgLXVycCBwYWRz LTEuMi5vcmlnL3NyYy9nbG9iYWwuaCBwYWRzLTEuMi9zcmMvZ2xvYmFsLmgKLS0tLSBwYWRzLTEu Mi5vcmlnL3NyYy9nbG9iYWwuaAkyMDA4LTA2LTI5IDIwOjE2OjMwLjAwMDAwMDAwMCAtMDQwMAot KysrIHBhZHMtMS4yL3NyYy9nbG9iYWwuaAkyMDA4LTA2LTMwIDEzOjI4OjI4LjAwMDAwMDAwMCAt MDQwMAotQEAgLTI1LDYgKzI1LDkgQEAKLSAgKiAkSWQ6IHBhZHMtMS4yLWNsZWFudXAucGF0Y2gs diAxLjEgMjAwOC8wOC8xMyAxNzozNToxMSBzZ3J1YmIgRXhwICQKLSAgKgotICAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KLSsjaWZuZGVmIEdMT0JBTF9IRUFERVIKLSsjZGVmaW5lIEdMT0JBTF9IRUFERVIK LSsKLSAjaWZkZWYgSEFWRV9DT05GSUdfSAotICNpbmNsdWRlICJjb25maWcuaCIKLSAjZW5kaWYK LUBAIC02OCw2ICs3MSw3IEBACi0gI2luY2x1ZGUgPG5ldGluZXQvaWZfZXRoZXIuaD4KLSAjaW5j bHVkZSA8cGNhcC5oPgotICNpbmNsdWRlIDxwY3JlLmg+Ci0rI2luY2x1ZGUgPHRpbWUuaD4KLSAK LSAjaW5jbHVkZSAiYnN0cmluZy9ic3RybGliLmgiCi0gCi1AQCAtMTYwLDMgKzE2NCw2IEBAIGV4 dGVybiBHQyBnYzsKLSAKLSAvKiB2aW06ZXhwYW5kdGFiOmNpbmRlbnQ6c21hcnRpbmRlbnQ6dHM9 NDp0dz0wOnN3PTQ6Ci0gICovCi0rCi0rI2VuZGlmCi0rCi1kaWZmIC11cnAgcGFkcy0xLjIub3Jp Zy9zcmMvaWRlbnRpZmljYXRpb24uYyBwYWRzLTEuMi9zcmMvaWRlbnRpZmljYXRpb24uYwotLS0t IHBhZHMtMS4yLm9yaWcvc3JjL2lkZW50aWZpY2F0aW9uLmMJMjAwOC0wNi0yOSAyMDoxNjozMC4w MDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvaWRlbnRpZmljYXRpb24uYwkyMDA4LTA2 LTMwIDEzOjI4OjI4LjAwMDAwMDAwMCAtMDQwMAotQEAgLTI2LDYgKzI2LDkgQEAKLSAgKgotICAq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KLSAjaW5jbHVkZSAiaWRlbnRpZmljYXRpb24uaCIKLSsjaW5jbHVk ZSAidXRpbC5oIgotKyNpbmNsdWRlICJzdG9yYWdlLmgiCi0rI2luY2x1ZGUgIm91dHB1dC9vdXRw dXQuaCIKLSAKLSBTaWduYXR1cmUgKnNpZ25hdHVyZV9saXN0OwotIAotQEAgLTU3LDcgKzYwLDcg QEAgaW50IGluaXRfaWRlbnRpZmljYXRpb24oKQotICAgICB9Ci0gCi0gICAgIC8qIE9wZW4gU2ln bmF0dXJlIEZpbGUgKi8KLS0gICAgaWYgKChmcCA9IGZvcGVuKGJkYXRhKGZpbGVuYW1lKSwgInIi KSkgPT0gTlVMTCkgewotKyAgICBpZiAoKGZwID0gZm9wZW4oKGNoYXIgKiliZGF0YShmaWxlbmFt ZSksICJyIikpID09IE5VTEwpIHsKLSAgICAgICAgIGVycl9tZXNzYWdlKCJVbmFibGUgdG8gb3Bl biBzaWduYXR1cmUgZmlsZSAtICVzIiwgYmRhdGEoZmlsZW5hbWUpKTsKLSAgICAgfQotIAotQEAg LTczLDcgKzc2LDcgQEAgaW50IGluaXRfaWRlbnRpZmljYXRpb24oKQotICAgICBiZGVzdHJveShm aWxlbmFtZSk7Ci0gICAgIGJkZXN0cm95KGZpbGVkYXRhKTsKLSAgICAgYnN0ckxpc3REZXN0cm95 KGxpbmVzKTsKLS0gICAgY2xvc2UoZnApOwotKyAgICBmY2xvc2UoZnApOwotIAotICAgICByZXR1 cm4gMDsKLSB9Ci1AQCAtOTEsNyArOTQsNyBAQCBpbnQgaW5pdF9pZGVudGlmaWNhdGlvbigpCi0g aW50IHBhcnNlX3Jhd19zaWduYXR1cmUgKGJzdHJpbmcgbGluZSwgaW50IGxpbmVubykKLSB7Ci0g ICAgIHN0cnVjdCBic3RyTGlzdCAqcmF3X3NpZzsKLS0gICAgc3RydWN0IGJzdHJMaXN0ICp0aXRs ZTsKLSsgICAgc3RydWN0IGJzdHJMaXN0ICp0aXRsZSA9IE5VTEw7Ci0gICAgIFNpZ25hdHVyZSAq c2lnOwotICAgICBic3RyaW5nIHBjcmVfc3RyaW5nOwotICAgICBjb25zdCBjaGFyICplcnI7ICAg ICAgICAgICAgLyogUENSRSAqLwotQEAgLTEwMSw3ICsxMDQsNyBAQCBpbnQgcGFyc2VfcmF3X3Np Z25hdHVyZSAoYnN0cmluZyBsaW5lLCBpCi0gCi0gICAgIC8qIENoZWNrIHRvIHNlZSBpZiB0aGlz IGxpbmUgaGFzIHNvbWV0aGluZyB0byByZWFkLiAqLwotICAgICBpZiAobGluZS0+ZGF0YVswXSA9 PSAnXDAnIHx8IGxpbmUtPmRhdGFbMF0gPT0gJyMnKQotLSAgICAgICAgcmV0dXJuOwotKyAgICAg ICAgcmV0dXJuIC0xOwotIAotICAgICAvKiBTcGxpdCBMaW5lICovCi0gICAgIGlmICgocmF3X3Np ZyA9IGJzcGxpdChsaW5lLCAnLCcpKSA9PSBOVUxMKQotQEAgLTEyNSw4ICsxMjgsMTAgQEAgaW50 IHBhcnNlX3Jhd19zaWduYXR1cmUgKGJzdHJpbmcgbGluZSwgaQotIAotICAgICAvKiBTcGxpdCBU aXRsZSAqLwotICAgICBpZiAocmF3X3NpZy0+ZW50cnlbMV0gIT0gTlVMTCAmJiByZXQgIT0gLTEp Ci0tICAgICAgICBpZiAoKHRpdGxlID0gYnNwbGl0KHJhd19zaWctPmVudHJ5WzFdLCAnLycpKSA9 PSBOVUxMKQotLSAgICAgICAgICAgIHJldCA9IC0xOwotKyAgICAgICAgdGl0bGUgPSBic3BsaXQo cmF3X3NpZy0+ZW50cnlbMV0sICcvJyk7Ci0rICAgIGlmICh0aXRsZSA9PSBOVUxMKQotKyAgICAg ICAgICAgIHJldHVybiAtMTsKLSsKLSAgICAgaWYgKHRpdGxlLT5xdHkgPCAzKQotICAgICAgICAg cmV0ID0gLTE7Ci0gCi1AQCAtMTQ1LDcgKzE1MCw3IEBAIGludCBwYXJzZV9yYXdfc2lnbmF0dXJl IChic3RyaW5nIGxpbmUsIGkKLSAKLSAgICAgICAgIC8qIFBDUkUgKi8KLSAgICAgICAgIGlmIChw Y3JlX3N0cmluZyAhPSBOVUxMKSB7Ci0tICAgICAgICAgICAgaWYgKChzaWctPnJlZ2V4ID0gcGNy ZV9jb21waWxlIChiZGF0YShwY3JlX3N0cmluZyksIDAsICZlcnIsICZlcnJvZmZzZXQsIE5VTEwp KSA9PSBOVUxMKSB7Ci0rICAgICAgICAgICAgaWYgKChzaWctPnJlZ2V4ID0gcGNyZV9jb21waWxl ICgoY2hhciAqKWJkYXRhKHBjcmVfc3RyaW5nKSwgMCwgJmVyciwgJmVycm9mZnNldCwgTlVMTCkp ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgZXJyX21lc3NhZ2UoIlVuYWJsZSB0byBjb21w aWxlIHNpZ25hdHVyZTogICVzIGF0IGxpbmUgJWQgKCVzKSIsCi0gICAgICAgICAgICAgICAgIGVy ciwgbGluZW5vLCBiZGF0YShsaW5lKSk7Ci0gICAgICAgICAgICAgcmV0ID0gLTE7Ci1AQCAtMjY1 LDcgKzI3MCw2IEBAIGludCBwY3JlX2lkZW50aWZ5IChzdHJ1Y3QgaW5fYWRkciBpcF9hZGQKLSAg ICAgU2lnbmF0dXJlICpsaXN0ID0gc2lnbmF0dXJlX2xpc3Q7Ci0gICAgIGludCByYzsKLSAgICAg aW50IG92ZWN0b3JbMTVdOwotLSAgICBpbnQgaTsKLSAgICAgYnN0cmluZyBhcHA7Ci0gCi0gICAg IHdoaWxlIChsaXN0ICE9IE5VTEwpIHsKLUBAIC0zMTIsMTggKzMxNiwxOCBAQCBic3RyaW5nIGdl dF9hcHBfbmFtZSAoU2lnbmF0dXJlICpzaWcsCi0gCi0gICAgIC8qIENyZWF0ZSBBcHBsaWNhdGlv biBzdHJpbmcgdXNpbmcgdGhlIHZhbHVlcyBpbiBzaWduYXR1cmVbaV0udGl0bGUuICAqLwotICAg ICBpZiAoc2lnLT50aXRsZS5hcHAgIT0gTlVMTCkgewotLSAgICAgICAgc3RybGNweShhcHAsIGJk YXRhKHNpZy0+dGl0bGUuYXBwKSwgTUFYX0FQUCk7Ci0rICAgICAgICBzdHJsY3B5KGFwcCwgKGNo YXIgKiliZGF0YShzaWctPnRpdGxlLmFwcCksIE1BWF9BUFApOwotICAgICB9Ci0gICAgIGlmIChz aWctPnRpdGxlLnZlciAhPSBOVUxMKSB7Ci0gICAgICAgICBpZiAoc2lnLT50aXRsZS52ZXItPnNs ZW4gPiAwKSB7Ci0gICAgICAgICAgICAgc3RyY2F0KGFwcCwgIiAiKTsKLS0gICAgICAgICAgICBz dHJsY2F0KGFwcCwgYmRhdGEoc2lnLT50aXRsZS52ZXIpLCBNQVhfVkVSKTsKLSsgICAgICAgICAg ICBzdHJsY2F0KGFwcCwgKGNoYXIgKiliZGF0YShzaWctPnRpdGxlLnZlciksIE1BWF9WRVIpOwot ICAgICAgICAgfQotICAgICB9Ci0gICAgIGlmIChzaWctPnRpdGxlLm1pc2MgIT0gTlVMTCkgewot ICAgICAgICAgaWYgKHNpZy0+dGl0bGUubWlzYy0+c2xlbiA+IDApIHsKLSAgICAgICAgICAgICBz dHJjYXQoYXBwLCAiICgiKTsKLS0gICAgICAgICAgICBzdHJsY2F0KGFwcCwgYmRhdGEoc2lnLT50 aXRsZS5taXNjKSwgTUFYX01JU0MpOwotKyAgICAgICAgICAgIHN0cmxjYXQoYXBwLCAoY2hhciAq KWJkYXRhKHNpZy0+dGl0bGUubWlzYyksIE1BWF9NSVNDKTsKLSAgICAgICAgICAgICBzdHJjYXQo YXBwLCAiKSIpOwotICAgICAgICAgfQotICAgICB9Ci1AQCAtNDE2LDcgKzQyMCw4IEBAIHZvaWQg cHJpbnRfc2lnbmF0dXJlKCkKLSAgICAgICAgIHByaW50ZigiMmE6ICVzXG4iLCBiZGF0YShsaXN0 LT50aXRsZS5hcHApKTsKLSAgICAgICAgIHByaW50ZigiMmI6ICVzXG4iLCBiZGF0YShsaXN0LT50 aXRsZS52ZXIpKTsKLSAgICAgICAgIHByaW50ZigiMmM6ICVzXG4iLCBiZGF0YShsaXN0LT50aXRs ZS5taXNjKSk7Ci0tICAgICAgICBwcmludGYoIjM6ICAlc1xuIiwgbGlzdC0+cmVnZXgpOwotKyAg ICAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSBjb21waWxlZCBleHByZXNzaW9uCi0rICAgICAgICAv LyBwcmludGYoIjM6ICAlc1xuIiwgbGlzdC0+cmVnZXgpOwotICAgICAgICAgcHJpbnRmKCJcbiIp OwotIAotICAgICAgICAgaSsrOwotZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3JjL21hYy1yZXNv bHV0aW9uLmMgcGFkcy0xLjIvc3JjL21hYy1yZXNvbHV0aW9uLmMKLS0tLSBwYWRzLTEuMi5vcmln L3NyYy9tYWMtcmVzb2x1dGlvbi5jCTIwMDgtMDYtMjkgMjA6MTY6MzAuMDAwMDAwMDAwIC0wNDAw Ci0rKysgcGFkcy0xLjIvc3JjL21hYy1yZXNvbHV0aW9uLmMJMjAwOC0wNi0zMCAxMzoyODoyOC4w MDAwMDAwMDAgLTA0MDAKLUBAIC0zMiw2ICszMiw3IEBACi0gI2lmbmRlZiBESVNBQkxFX1ZFTkRP UgotIAotICNpbmNsdWRlICJtYWMtcmVzb2x1dGlvbi5oIgotKyNpbmNsdWRlICJ1dGlsLmgiCi0g Ci0gVmVuZG9yICp2ZW5kb3JfbGlzdCA9IE5VTEw7Ci0gCi1AQCAtNjAsNyArNjEsNyBAQCBpbnQg aW5pdF9tYWNfcmVzb2x1dGlvbiAodm9pZCkgewotICAgICB9Ci0gCi0gICAgIC8qIE9wZW4gU2ln bmF0dXJlIEZpbGUgKi8KLS0gICAgaWYgKChmcCA9IGZvcGVuKGJkYXRhKGZpbGVuYW1lKSwgInIi KSkgPT0gTlVMTCkgewotKyAgICBpZiAoKGZwID0gZm9wZW4oKGNoYXIgKiliZGF0YShmaWxlbmFt ZSksICJyIikpID09IE5VTEwpIHsKLSAgICAgICAgIGVycl9tZXNzYWdlKCJVbmFibGUgdG8gb3Bl biBNQUMgcmVzb2x1dGlvbiBmaWxlIC0gJXMiLCBiZGF0YShmaWxlbmFtZSkpOwotICAgICB9Ci0g Ci1AQCAtNzksNyArODAsNyBAQCBpbnQgaW5pdF9tYWNfcmVzb2x1dGlvbiAodm9pZCkgewotICAg ICAgICAgYmRlc3Ryb3koZmlsZWRhdGEpOwotICAgICBpZiAobGluZXMgIT0gTlVMTCkKLSAgICAg ICAgIGJzdHJMaXN0RGVzdHJveShsaW5lcyk7Ci0tICAgIGNsb3NlKGZwKTsKLSsgICAgZmNsb3Nl KGZwKTsKLSAKLSAgICAgcmV0dXJuIDA7Ci0gfQotQEAgLTk5LDEwICsxMDAsOCBAQCBpbnQgcGFy c2VfcmF3X21hYyAoYnN0cmluZyBsaW5lKQotICAgICBjaGFyIHZlbmRvcls4MF07Ci0gICAgIGlu dCBtMSwgbTIsIG0zOwotIAotLSAgICBpbnQgcG9zOwotLQotICAgICAvKiBQYXJzZSBvdXQgdGhl IGNvbnRlbnRzIG9mIHRoZSBsaW5lLiAqLwotLSAgICBpZiAoc3NjYW5mKGJkYXRhKGxpbmUpLCAi JTAyWDolMDJYOiUwMlggJTgwW14sXG5dLFxuIiwgJm0xLCAmbTIsICZtMywgdmVuZG9yKSAhPSA0 KQotKyAgICBpZiAoc3NjYW5mKChjaGFyICopYmRhdGEobGluZSksICIlMDJYOiUwMlg6JTAyWCAl ODBbXixcbl0sXG4iLCAmbTEsICZtMiwgJm0zLCB2ZW5kb3IpICE9IDQpCi0gICAgICAgICByZXR1 cm4gLTE7Ci0gCi0gICAgIG1hY1swXSA9IChjaGFyKSAobTEpOwotQEAgLTIxNSw3ICsyMTQsNyBA QCB2b2lkIHNob3dfdmVuZG9yICh2b2lkKXsKLSAgICAgbGlzdCA9IHZlbmRvcl9saXN0OwotIAot ICAgICB3aGlsZShsaXN0ICE9IE5VTEwpIHsKLS0gICAgICAgIHByaW50ZigiTWFjOiAlc1xuVmVu ZG9yOiAlc1xuXG4iLCBsaXN0LT5tYWMsIGJkYXRhKGxpc3QtPnZlbmRvcikpOwotKyAgICAgICAg cHJpbnRmKCJNYWM6ICV1XG5WZW5kb3I6ICVzXG5cbiIsIGxpc3QtPm1hYywgYmRhdGEobGlzdC0+ dmVuZG9yKSk7Ci0gICAgICAgICBsaXN0ID0gbGlzdC0+bmV4dDsKLSAgICAgfQotIH0KLWRpZmYg LXVycCBwYWRzLTEuMi5vcmlnL3NyYy9tb25uZXQuYyBwYWRzLTEuMi9zcmMvbW9ubmV0LmMKLS0t LSBwYWRzLTEuMi5vcmlnL3NyYy9tb25uZXQuYwkyMDA4LTA2LTI5IDIwOjE2OjMwLjAwMDAwMDAw MCAtMDQwMAotKysrIHBhZHMtMS4yL3NyYy9tb25uZXQuYwkyMDA4LTA2LTMwIDEzOjI4OjI4LjAw MDAwMDAwMCAtMDQwMAotQEAgLTI3LDcgKzI3LDEwIEBACi0gICogJElkOiBwYWRzLTEuMi1jbGVh bnVwLnBhdGNoLHYgMS4xIDIwMDgvMDgvMTMgMTc6MzU6MTEgc2dydWJiIEV4cCAkCi0gICoKLSAg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCi0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRlIDxhcnBh L2luZXQuaD4KLSAjaW5jbHVkZSAibW9ubmV0LmgiCi0rI2luY2x1ZGUgInV0aWwuaCIKLSAKLSBz dHJ1Y3QgbW9uX25ldCAqbW47Ci0gCi1AQCAtNDUsNyArNDgsNiBAQCB2b2lkIHBhcnNlX25ldHdv cmtzIChjaGFyICpjbWRsaW5lKQotIHsKLSAgICAgaW50IGkgPSAwOwotICAgICBjaGFyIG5ldHdv cmtbMTZdLCBuZXRtYXNrWzNdLCB0bXBbMTZdOwotLSAgICBzdHJ1Y3QgaW5fYWRkciBpbl9uZXQ7 Ci0gCi0gICAgIC8qIE1ha2Ugc3VyZSBzb21ldGhpbmcgd2FzIGRlZmluZWQuICovCi0gICAgIGlm IChjbWRsaW5lID09IE5VTEwpCi1AQCAtODEsNyArODMsNyBAQCB2b2lkIHBhcnNlX25ldHdvcmtz IChjaGFyICpjbWRsaW5lKQotIAkgICAgaSsrOwotIAl9Ci0gCi0tCSpjbWRsaW5lKys7Ci0rCWNt ZGxpbmUrKzsKLSAgICAgfQotIH0KLSAKLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy9vdXRw dXQvb3V0cHV0LmMgcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQuYwotLS0tIHBhZHMtMS4yLm9y aWcvc3JjL291dHB1dC9vdXRwdXQuYwkyMDA4LTA2LTI5IDIwOjE2OjMwLjAwMDAwMDAwMCAtMDQw MAotKysrIHBhZHMtMS4yL3NyYy9vdXRwdXQvb3V0cHV0LmMJMjAwOC0wNi0zMCAxMzoyODoyOC4w MDAwMDAwMDAgLTA0MDAKLUBAIC0yNiw2ICsyNiwxMCBAQAotICAqCi0gICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLwotICNpbmNsdWRlICJvdXRwdXQuaCIKLSsjaW5jbHVkZSAib3V0cHV0LXNjcmVlbi5oIgot KyNpbmNsdWRlICJvdXRwdXQtY3N2LmgiCi0rI2luY2x1ZGUgIm91dHB1dC1maWZvLmgiCi0rI2lu Y2x1ZGUgInN0b3JhZ2UuaCIKLSAKLSAvKiBHbG9iYWwgVmFyaWFibGVzICovCi0gT3V0cHV0UGx1 Z2luTGlzdCAqb3V0cHV0X3BsdWdpbl9saXN0OwotQEAgLTE0OSw3ICsxNTMsNyBAQCBpbnQgcHJp bnRfYXNzZXQgKHN0cnVjdCBpbl9hZGRyIGlwX2FkZHIsCi0gCi0gICAgIC8qIE1ha2Ugc3VyZSB0 aGF0IGEgcmVjb3JkIHdhcyBmb3VuZC4gKi8KLSAgICAgaWYgKHJlYyA9PSBOVUxMKQotLQlyZXR1 cm47Ci0rCXJldHVybiAtMTsKLSAKLSAgICAgLyogQ3ljbGUgdGhyb3VnaCBvdXRwdXQgcGx1Z2lu cyBhbmQgcHJpbnQgdG8gdGhvc2UgdGhhdCBhcmUgYWN0aXZlLiAqLwotICAgICBoZWFkID0gb3V0 cHV0X3BsdWdpbl9saXN0OwotQEAgLTE4Miw3ICsxODYsNyBAQCBpbnQgcHJpbnRfYXJwX2Fzc2V0 IChzdHJ1Y3QgaW5fYWRkciBpcF9hCi0gCi0gICAgIC8qIEZpbmQgQXNzZXQgKi8KLSAgICAgQXJw QXNzZXQgKmxpc3Q7Ci0tICAgIEFycEFzc2V0ICpyZWM7Ci0rICAgIEFycEFzc2V0ICpyZWMgPSBO VUxMOwotIAotICAgICBsaXN0ID0gKEFycEFzc2V0ICopZ2V0X2FycF9wb2ludGVyKCk7Ci0gICAg IHdoaWxlIChsaXN0ICE9IE5VTEwpIHsKLUBAIC0xOTksNyArMjAzLDcgQEAgaW50IHByaW50X2Fy cF9hc3NldCAoc3RydWN0IGluX2FkZHIgaXBfYQotIAotICAgICAvKiBNYWtlIHN1cmUgdGhhdCBh IHJlY29yZCB3YXMgZm91bmQuICovCi0gICAgIGlmIChyZWMgPT0gTlVMTCkKLS0JcmV0dXJuOwot KwlyZXR1cm4gLTE7Ci0gCi0gICAgIC8qIEN5Y2xlIHRocm91Z2ggb3V0cHV0IHBsdWdpbnMgYW5k IHByaW50IHRvIHRob3NlIHRoYXQgYXJlIGFjdGl2ZS4gKi8KLSAgICAgaGVhZCA9IG91dHB1dF9w bHVnaW5fbGlzdDsKLUBAIC0yOTgsOCArMzAyLDggQEAgdm9pZCBlbmRfb3V0cHV0ICh2b2lkKQot ICNpZmRlZiBERUJVRwotIGludCBkZWJ1Z19vdXRwdXRfbGlzdCAodm9pZCkKLSB7Ci0tICAgIE91 dHB1dFBsdWdpbkxpc3QgKmhlYWQsICpoZWFkMjsKLS0gICAgT3V0cHV0UGx1Z2luICp0bXAsICp0 bXAyOwotKyAgICBPdXRwdXRQbHVnaW5MaXN0ICpoZWFkOwotKyAgICBPdXRwdXRQbHVnaW4gKnRt cDsKLSAgICAgaW50IGkgPSAxOwotIAotICAgICBwcmludGYoIm91dHB1dF9wbHVnaW5fbGlzdDpc biIpOwotZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9vdXRwdXQtY3N2LmMgcGFk cy0xLjIvc3JjL291dHB1dC9vdXRwdXQtY3N2LmMKLS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9vdXRw dXQvb3V0cHV0LWNzdi5jCTIwMDgtMDYtMjkgMjA6MTY6MzAuMDAwMDAwMDAwIC0wNDAwCi0rKysg cGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQtY3N2LmMJMjAwOC0wNi0zMCAxMzoyODoyOC4wMDAw MDAwMDAgLTA0MDAKLUBAIC0yNCw3ICsyNCwxMCBAQAotICAqICRJZDogcGFkcy0xLjItY2xlYW51 cC5wYXRjaCx2IDEuMSAyMDA4LzA4LzEzIDE3OjM1OjExIHNncnViYiBFeHAgJAotICAqCi0gICoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLwotKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4KLSAjaW5jbHVkZSAib3V0 cHV0LWNzdi5oIgotKyNpbmNsdWRlICJ1dGlsLmgiCi0rI2luY2x1ZGUgInN0b3JhZ2UuaCIKLSAK LSBPdXRwdXRDU1ZDb25mIG91dHB1dF9jc3ZfY29uZjsKLSAKLUBAIC00MCw3ICs0Myw2IEBAIGlu dAotIHNldHVwX291dHB1dF9jc3YgKHZvaWQpCi0gewotICAgICBPdXRwdXRQbHVnaW4gKnBsdWdp bjsKLS0gICAgYnN0cmluZyBuYW1lOwotIAotICAgICAvKiBBbGxvY2F0ZSBhbmQgc2V0dXAgcGx1 Z2luIGRhdGEgcmVjb3JkLiAqLwotICAgICBwbHVnaW4gPSAoT3V0cHV0UGx1Z2luKiltYWxsb2Mo c2l6ZW9mKE91dHB1dFBsdWdpbikpOwotQEAgLTY4LDcgKzcwLDcgQEAgc2V0dXBfb3V0cHV0X2Nz diAodm9pZCkKLSAgKgkJOiB3aWxsIHJlYWQgaW4gdGhlIGZpbGUgYW5kIGFkZCBlYWNoIGFzc2V0 Ci0gICoJCTogdG8gdGhlIGFzc2V0IGRhdGEgc3RydWN0dXJlLgotICAqIElOUFVUCTogMCAtIENT ViBmaWxlbmFtZQotLSAqIFJFVFVSTgk6IE5vbmUhCi0rICogUkVUVVJOCTogMCBzdWNjZXNzLCAt MSBmYWlsCi0gICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tICovCi0gaW50Ci0gaW5pdF9vdXRwdXRfY3N2IChic3RyaW5nIGZpbGVuYW1l KQotQEAgLTg0LDE0ICs4NiwxNSBAQCBpbml0X291dHB1dF9jc3YgKGJzdHJpbmcgZmlsZW5hbWUp Ci0gCW91dHB1dF9jc3ZfY29uZi5maWxlbmFtZSA9IGJzdHJjcHkoYmZyb21jc3RyKCJhc3NldHMu Y3N2IikpOwotIAotICAgICAvKiBDaGVjayB0byBzZWUgaWYgKmZpbGVuYW1lIGV4aXN0cy4gKi8K LS0gICAgaWYgKChmcCA9IGZvcGVuKGJkYXRhKG91dHB1dF9jc3ZfY29uZi5maWxlbmFtZSksICJy IikpID09IE5VTEwpIHsKLSsgICAgaWYgKChmcCA9IGZvcGVuKChjaGFyICopYmRhdGEob3V0cHV0 X2Nzdl9jb25mLmZpbGVuYW1lKSwgInIiKSkgPT0gTlVMTCkgewotIAotIAkvKiBGaWxlIGRvZXMg bm90IGV4aXN0LCBjcmVhdGUgbmV3Li4gKi8KLS0JaWYgKChvdXRwdXRfY3N2X2NvbmYuZmlsZSA9 IGZvcGVuKGJkYXRhKG91dHB1dF9jc3ZfY29uZi5maWxlbmFtZSksICJ3IikpICE9IE5VTEwpIHsK LSsJaWYgKChvdXRwdXRfY3N2X2NvbmYuZmlsZSA9IGZvcGVuKChjaGFyICopYmRhdGEob3V0cHV0 X2Nzdl9jb25mLmZpbGVuYW1lKSwgInciKSkgIT0gTlVMTCkgewotIAkgICAgZnByaW50ZihvdXRw dXRfY3N2X2NvbmYuZmlsZSwgImFzc2V0LHBvcnQscHJvdG8sc2VydmljZSxhcHBsaWNhdGlvbixk aXNjb3ZlcmVkXG4iKTsKLSAKLSAJfSBlbHNlIHsKLSAJICAgIGVycl9tZXNzYWdlKCJDYW5ub3Qg b3BlbiBmaWxlICVzISIsIGJkYXRhKG91dHB1dF9jc3ZfY29uZi5maWxlbmFtZSkpOwotKwkgICAg cmV0dXJuIC0xOwotIAl9Ci0gCi0gICAgIH0gZWxzZSB7Ci1AQCAtMTAxLDEyICsxMDQsMTMgQEAg aW5pdF9vdXRwdXRfY3N2IChic3RyaW5nIGZpbGVuYW1lKQotIAlyZWFkX3JlcG9ydF9maWxlKCk7 Ci0gCi0gCS8qIE9wZW4gZmlsZSBhbmQgYXNzaWduIGl0IHRvIHRoZSBnbG9iYWwgRklMRSBwb2lu dGVyLiAgKi8KLS0JaWYgKChvdXRwdXRfY3N2X2NvbmYuZmlsZSA9IGZvcGVuKGJkYXRhKG91dHB1 dF9jc3ZfY29uZi5maWxlbmFtZSksICJhIikpID09IE5VTEwpIHsKLSsJaWYgKChvdXRwdXRfY3N2 X2NvbmYuZmlsZSA9IGZvcGVuKChjaGFyICopYmRhdGEob3V0cHV0X2Nzdl9jb25mLmZpbGVuYW1l KSwgImEiKSkgPT0gTlVMTCkgewotIAkgICAgZXJyX21lc3NhZ2UoIkNhbm5vdCBvcGVuIGZpbGUg JXMhIiwgYmRhdGEob3V0cHV0X2Nzdl9jb25mLmZpbGVuYW1lKSk7Ci0rCSAgICByZXR1cm4gLTE7 Ci0gCX0KLSAgICAgfQotIAotLSAgICByZXR1cm47Ci0rICAgIHJldHVybiAwOwotIH0KLSAKLSAv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi1AQCAtMTI5LDcgKzEzMyw3IEBAIHJlYWRfcmVwb3J0X2ZpbGUgKHZvaWQpCi0gICAgIHBy aW50ZigiWy1dIFByb2Nlc3NpbmcgRXhpc3RpbmcgJXNcbiIsIGJkYXRhKG91dHB1dF9jc3ZfY29u Zi5maWxlbmFtZSkpOwotIAotICAgICAvKiBPcGVuIFNpZ25hdHVyZSBGaWxlICovCi0tICAgIGlm ICgoZnAgPSBmb3BlbihiZGF0YShvdXRwdXRfY3N2X2NvbmYuZmlsZW5hbWUpLCAiciIpKSA9PSBO VUxMKSB7Ci0rICAgIGlmICgoZnAgPSBmb3BlbigoY2hhciAqKWJkYXRhKG91dHB1dF9jc3ZfY29u Zi5maWxlbmFtZSksICJyIikpID09IE5VTEwpIHsKLSAJZXJyX21lc3NhZ2UoIlVuYWJsZSB0byBv cGVuIENTViBmaWxlIC0gJXMiLCBiZGF0YShvdXRwdXRfY3N2X2NvbmYuZmlsZW5hbWUpKTsKLSAg ICAgfQotIAotQEAgLTE0NCw3ICsxNDgsNyBAQCByZWFkX3JlcG9ydF9maWxlICh2b2lkKQotICAg ICAvKiBDbGVhbiBVcCAqLwotICAgICBiZGVzdHJveShmaWxlZGF0YSk7Ci0gICAgIGJzdHJMaXN0 RGVzdHJveShsaW5lcyk7Ci0tICAgIGNsb3NlKGZwKTsKLSsgICAgZmNsb3NlKGZwKTsKLSB9Ci0g Ci0gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotQEAgLTE3Miw3ICsxNzYsNyBAQCBwYXJzZV9yYXdfcmVwb3J0IChic3RyaW5nIGxp bmUpCi0gCi0gICAgIC8qIENoZWNrIHRvIHNlZSBpZiB0aGlzIGxpbmUgaGFzIHNvbWV0aGluZyB0 byByZWFkLiAqLwotICAgICBpZiAobGluZS0+ZGF0YVswXSA9PSAnXDAnIHx8IGxpbmUtPmRhdGFb MF0gPT0gJyMnKQotLQlyZXR1cm47Ci0rCXJldHVybiAtMTsKLSAKLSAgICAgLyogQnJlYWsgbGlu ZSBhcGFydC4gKi8KLSAgICAgaWYgKChsaXN0ID0gYnNwbGl0KGxpbmUsICcsJykpID09IE5VTEwp Ci1AQCAtMTg2LDEzICsxOTAsMTMgQEAgcGFyc2VfcmF3X3JlcG9ydCAoYnN0cmluZyBsaW5lKQot ICAgICB9Ci0gCi0gICAgIC8qIFBsYWNlIGRhdGEgZnJvbSAnbGlzdCcgaW50byB0ZW1wb3Jhcnkg ZGF0YSBzdG9yYWdlLiAqLwotLSAgICBpZiAoKGluZXRfYXRvbihiZGF0YShsaXN0LT5lbnRyeVsw XSksICZpcF9hZGRyKSkgPT0gLTEpCi0rICAgIGlmICgoaW5ldF9hdG9uKChjaGFyICopYmRhdGEo bGlzdC0+ZW50cnlbMF0pLCAmaXBfYWRkcikpID09IC0xKQotIAlyZXQgPSAtMTsKLSAKLS0gICAg aWYgKChwb3J0ID0gaHRvbnMoYXRvaShiZGF0YShsaXN0LT5lbnRyeVsxXSkpKSkgPT0gLTEpCi0r ICAgIGlmICgocG9ydCA9IGh0b25zKGF0b2koKGNoYXIgKiliZGF0YShsaXN0LT5lbnRyeVsxXSkp KSkgPT0gLTEpCi0gCXJldCA9IC0xOwotIAotLSAgICBpZiAoKHByb3RvID0gYXRvaShiZGF0YShs aXN0LT5lbnRyeVsyXSkpKSA9PSAtMSkKLSsgICAgaWYgKChwcm90byA9IGF0b2koKGNoYXIgKili ZGF0YShsaXN0LT5lbnRyeVsyXSkpKSA9PSAtMSkKLSAJcmV0ID0gLTE7Ci0gCi0gICAgIGlmICgo c2VydmljZSA9IGJzdHJjcHkobGlzdC0+ZW50cnlbM10pKSA9PSBOVUxMKQotQEAgLTIwMSw3ICsy MDUsNyBAQCBwYXJzZV9yYXdfcmVwb3J0IChic3RyaW5nIGxpbmUpCi0gICAgIGlmICgoYXBwbGlj YXRpb24gPSBic3RyY3B5KGxpc3QtPmVudHJ5WzRdKSkgPT0gTlVMTCkKLSAgICAgICAgIHJldCA9 IC0xOwotIAotLSAgICBpZiAoKGRpc2NvdmVyZWQgPSBhdG9sKGJkYXRhKGxpc3QtPmVudHJ5WzVd KSkpID09IC0xKQotKyAgICBpZiAoKGRpc2NvdmVyZWQgPSBhdG9sKChjaGFyICopYmRhdGEobGlz dC0+ZW50cnlbNV0pKSkgPT0gLTEpCi0gCXJldCA9IC0xOwotIAotICAgICAvKiBNYWtlIHN1cmUg dGhhdCB0aGlzIGxpbmUgY29udGFpbnMgJ2dvb2QnIGRhdGEuICovCi1AQCAtMjExLDcgKzIxNSw3 IEBAIHBhcnNlX3Jhd19yZXBvcnQgKGJzdHJpbmcgbGluZSkKLSAgICAgLyogQWRkIEFzc2V0IHRv IERhdGEgU3RydWN0dXJlICovCi0gICAgIGlmIChwcm90byA9PSAwICYmIHJldCAhPSAtMSkgewot IAkvKiBBUlAgKi8KLS0JbWFjMmhleChiZGF0YShhcHBsaWNhdGlvbiksIG1hY19hZGRyLCBNQUNf TEVOKTsKLSsJbWFjMmhleCgoY2hhciAqKWJkYXRhKGFwcGxpY2F0aW9uKSwgbWFjX2FkZHIsIE1B Q19MRU4pOwotIAlhZGRfYXJwX2Fzc2V0KGlwX2FkZHIsIG1hY19hZGRyLCBkaXNjb3ZlcmVkKTsK LSAgICAgfSBlbHNlIHsKLSAJLyogRXZlcnl0aGluZyBFbHNlICovCi1AQCAtMjQ5LDggKzI1Myw5 IEBAIHByaW50X2Fzc2V0X2NzdiAoQXNzZXQgKnJlYykKLSAJaWYgKGdjLmhpZGVfdW5rbm93bnMg PT0gMCB8fCAoKGJpc2VxY3N0cihyZWMtPnNlcnZpY2UsICJ1bmtub3duIikgIT0gMCkgJiYKLSAJ CSAgICAoYmlzZXFjc3RyKHJlYy0+YXBwbGljYXRpb24sICJ1bmtub3duIikgIT0gMCkpKSB7Ci0g CSAgICBmcHJpbnRmKG91dHB1dF9jc3ZfY29uZi5maWxlLCAiJXMsJWQsJWQsJXMsJXMsJWRcbiIs Ci0tCQkgICAgaW5ldF9udG9hKHJlYy0+aXBfYWRkciksIG50b2hzKHJlYy0+cG9ydCksIHJlYy0+ cHJvdG8sIGJkYXRhKHJlYy0+c2VydmljZSksCi0tCQkgICAgYmRhdGEocmVjLT5hcHBsaWNhdGlv biksIHJlYy0+ZGlzY292ZXJlZCk7Ci0rCQkgICAgaW5ldF9udG9hKHJlYy0+aXBfYWRkciksIG50 b2hzKHJlYy0+cG9ydCksIHJlYy0+cHJvdG8sCi0rCQkgICAgIGJkYXRhKHJlYy0+c2VydmljZSks IGJkYXRhKHJlYy0+YXBwbGljYXRpb24pLAotKwkJICAgICAoaW50KXJlYy0+ZGlzY292ZXJlZCk7 Ci0gCSAgICBmZmx1c2gob3V0cHV0X2Nzdl9jb25mLmZpbGUpOwotIAl9Ci0gICAgIH0gZWxzZSB7 Ci1AQCAtMjc3LDExICsyODIsMTMgQEAgcHJpbnRfYXJwX2Fzc2V0X2NzdiAoQXJwQXNzZXQgKnJl YykKLSAgICAgLyogUHJpbnQgdG8gRmlsZSAqLwotICAgICBpZiAob3V0cHV0X2Nzdl9jb25mLmZp bGUgIT0gTlVMTCkgewotIAlpZiAocmVjLT5tYWNfcmVzb2x2ZWQgIT0gTlVMTCkgewotLQkgICAg ZnByaW50ZihvdXRwdXRfY3N2X2NvbmYuZmlsZSwgIiVzLDAsMCxBUlAgKCVzKSwlcywlZFxuIiwg aW5ldF9udG9hKHJlYy0+aXBfYWRkciksCi0tCQkgICAgYmRhdGEocmVjLT5tYWNfcmVzb2x2ZWQp LCBoZXgybWFjKHJlYy0+bWFjX2FkZHIpLCByZWMtPmRpc2NvdmVyZWQpOwotKwkgICAgZnByaW50 ZihvdXRwdXRfY3N2X2NvbmYuZmlsZSwgIiVzLDAsMCxBUlAgKCVzKSwlcywlZFxuIiwKLSsJCWlu ZXRfbnRvYShyZWMtPmlwX2FkZHIpLCBiZGF0YShyZWMtPm1hY19yZXNvbHZlZCksCi0rCQloZXgy bWFjKHJlYy0+bWFjX2FkZHIpLCAoaW50KXJlYy0+ZGlzY292ZXJlZCk7Ci0gCX0gZWxzZSB7Ci0t CSAgICBmcHJpbnRmKG91dHB1dF9jc3ZfY29uZi5maWxlLCAiJXMsMCwwLEFSUCwlcywlZFxuIiwg aW5ldF9udG9hKHJlYy0+aXBfYWRkciksCi0tCQkgICAgaGV4Mm1hYyhyZWMtPm1hY19hZGRyKSwg cmVjLT5kaXNjb3ZlcmVkKTsKLSsJICAgIGZwcmludGYob3V0cHV0X2Nzdl9jb25mLmZpbGUsICIl cywwLDAsQVJQLCVzLCVkXG4iLAotKwkJCWluZXRfbnRvYShyZWMtPmlwX2FkZHIpLCBoZXgybWFj KHJlYy0+bWFjX2FkZHIpLAotKwkJCShpbnQpcmVjLT5kaXNjb3ZlcmVkKTsKLSAJfQotIAotIAlm Zmx1c2gob3V0cHV0X2Nzdl9jb25mLmZpbGUpOwotQEAgLTMxMSw1ICszMTgsNyBAQCBlbmRfb3V0 cHV0X2NzdiAoKQotIAotICAgICBpZiAob3V0cHV0X2Nzdl9jb25mLmZpbGVuYW1lICE9IE5VTEwp Ci0gCWJkZXN0cm95KG91dHB1dF9jc3ZfY29uZi5maWxlbmFtZSk7Ci0rCi0rICAgIHJldHVybiAw OwotIH0KLSAKLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy9vdXRwdXQvb3V0cHV0LWNzdi5o IHBhZHMtMS4yL3NyYy9vdXRwdXQvb3V0cHV0LWNzdi5oCi0tLS0gcGFkcy0xLjIub3JpZy9zcmMv b3V0cHV0L291dHB1dC1jc3YuaAkyMDA4LTA2LTI5IDIwOjE2OjMwLjAwMDAwMDAwMCAtMDQwMAot KysrIHBhZHMtMS4yL3NyYy9vdXRwdXQvb3V0cHV0LWNzdi5oCTIwMDgtMDYtMzAgMTM6Mjg6Mjgu MDAwMDAwMDAwIC0wNDAwCi1AQCAtMjUsNiArMjUsOCBAQAotICAqICRJZDogcGFkcy0xLjItY2xl YW51cC5wYXRjaCx2IDEuMSAyMDA4LzA4LzEzIDE3OjM1OjExIHNncnViYiBFeHAgJAotICAqCi0g ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLwotKyNpZm5kZWYgT1VUUFVUX0NTVl9IRUFERVIKLSsjZGVmaW5l IE9VVFBVVF9DU1ZfSEVBREVSCi0gCi0gLyogREVGSU5FUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotICNpZmRlZiBMSU5VWAotQEAgLTY0LDMgKzY2LDUgQEAg aW50IHByaW50X2Fzc2V0X2NzdiAoQXNzZXQgKnJlYyk7Ci0gaW50IHByaW50X2FycF9hc3NldF9j c3YgKEFycEFzc2V0ICpyZWMpOwotIGludCBlbmRfb3V0cHV0X2NzdiAodm9pZCk7Ci0gCi0rI2Vu ZGlmCi0rCi1kaWZmIC11cnAgcGFkcy0xLjIub3JpZy9zcmMvb3V0cHV0L291dHB1dC1maWZvLmMg cGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQtZmlmby5jCi0tLS0gcGFkcy0xLjIub3JpZy9zcmMv b3V0cHV0L291dHB1dC1maWZvLmMJMjAwOC0wNi0yOSAyMDoxNjozMC4wMDAwMDAwMDAgLTA0MDAK LSsrKyBwYWRzLTEuMi9zcmMvb3V0cHV0L291dHB1dC1maWZvLmMJMjAwOC0wNi0zMCAxMzoyODo0 NS4wMDAwMDAwMDAgLTA0MDAKLUBAIC0yNSw3ICsyNSw5IEBACi0gICogJElkOiBwYWRzLTEuMi1j bGVhbnVwLnBhdGNoLHYgMS4xIDIwMDgvMDgvMTMgMTc6MzU6MTEgc2dydWJiIEV4cCAkCi0gICoK LSAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCi0rI2luY2x1ZGUgPGFycGEvaW5ldC5oPgotICNpbmNsdWRl ICJvdXRwdXQtZmlmby5oIgotKyNpbmNsdWRlICJ1dGlsLmgiCi0gCi0gLyoKLSAgKiBNT0RVTEUg Tk9URVMKLUBAIC02Niw3ICs2OCw2IEBAIGludAotIHNldHVwX291dHB1dF9maWZvICh2b2lkKQot IHsKLSAgICAgT3V0cHV0UGx1Z2luICpwbHVnaW47Ci0tICAgIGJzdHJpbmcgbmFtZTsKLSAKLSAg ICAgLyogQWxsb2NhdGUgYW5kIHNldHVwIHBsdWdpbiBkYXRhIHJlY29yZC4gKi8KLSAgICAgcGx1 Z2luID0gKE91dHB1dFBsdWdpbiopbWFsbG9jKHNpemVvZihPdXRwdXRQbHVnaW4pKTsKLUBAIC05 MiwxNSArOTMsMTEgQEAgc2V0dXBfb3V0cHV0X2ZpZm8gKHZvaWQpCi0gICogREVTQ1JJUFRJT04J OiBUaGlzIGZ1bmN0aW9uIHdpbGwgaW5pdGlhbGl6ZSB0aGUgRklGTwotICAqCQk6IGZpbGUuCi0g ICogSU5QVVQJOiAwIC0gRklGTyBmaWxlbmFtZQotLSAqIFJFVFVSTgk6IE5vbmUhCi0rICogUkVU VVJOCTogMCBzdWNjZXNzLCAtMSBmYWlsdXJlCi0gICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0gaW50Ci0gaW5pdF9vdXRwdXRf ZmlmbyAoYnN0cmluZyBmaWZvX2ZpbGUpCi0gewotLSAgICBGSUxFICpmcDsKLS0gICAgcmVnaXN0 ZXIgdV9pbnQgbGVuID0gMDsKLS0gICAgY2hhciAqZmlsZW5hbWU7Ci0tCi0gICAgIHZlcmJvc2Vf bWVzc2FnZSgiSW5pdGlhbGl6aW5nIEZJRk8gb3V0cHV0IHBsdWdpbi4iKTsKLSAKLSAgICAgLyog TWFrZSBzdXJlIHJlcG9ydF9maWxlIGlzbid0IE5VTEwuICovCi1AQCAtMTA5LDEzICsxMDYsMTMg QEAgaW5pdF9vdXRwdXRfZmlmbyAoYnN0cmluZyBmaWZvX2ZpbGUpCi0gCi0gICAgIG91dHB1dF9m aWZvX2NvbmYuZmlsZW5hbWUgPSBic3RyY3B5KGZpZm9fZmlsZSk7Ci0gCi0tICAgIG1rZmlmbyAo YmRhdGEoZmlmb19maWxlKSwgU19JRklGTyB8IDA3NTUpOwotKyAgICBta2ZpZm8gKChjaGFyICop YmRhdGEoZmlmb19maWxlKSwgMDc1NSk7Ci0gCi0gICAgIHZlcmJvc2VfbWVzc2FnZSgiT3BlbiBG SUZPIEZpbGVcbiIpOwotLSAgICBpZiAoKG91dHB1dF9maWZvX2NvbmYuZmlsZSA9IGZvcGVuKGJk YXRhKGZpZm9fZmlsZSksICJ3KyIpKSA9PSBOVUxMKQotKyAgICBpZiAoKG91dHB1dF9maWZvX2Nv bmYuZmlsZSA9IGZvcGVuKChjaGFyKiliZGF0YShmaWZvX2ZpbGUpLCAidysiKSkgPT0gTlVMTCkK LSAJZXJyX21lc3NhZ2UoIlVuYWJsZSB0byBvcGVuIEZJRk8gZmlsZSAoJXMpIVxuIiwgYmRhdGEo Zmlmb19maWxlKSk7Ci0gCi0tICAgIHJldHVybjsKLSsgICAgcmV0dXJuIDA7Ci0gfQotIAotIC8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLUBAIC0xMzgsOCArMTM1LDkgQEAgcHJpbnRfYXNzZXRfZmlmbyAoQXNzZXQgKnJlYykKLSAJ aWYgKGdjLmhpZGVfdW5rbm93bnMgPT0gMCB8fCAoKGJpc2VxKHJlYy0+c2VydmljZSwgYmZyb21j c3RyKCJ1bmtub3duIikpICE9IDApICYmCi0gCQkgICAgKGJpc2VxKHJlYy0+YXBwbGljYXRpb24s IGJmcm9tY3N0cigidW5rbm93biIpKSAhPSAwKSkpIHsKLSAJICAgIGZwcmludGYob3V0cHV0X2Zp Zm9fY29uZi5maWxlLCAiMDEsJXMsJWQsJWQsJXMsJXMsJWRcbiIsCi0tCQkgICAgaW5ldF9udG9h KHJlYy0+aXBfYWRkciksIG50b2hzKHJlYy0+cG9ydCksIHJlYy0+cHJvdG8sIGJkYXRhKHJlYy0+ c2VydmljZSksCi0tCQkgICAgYmRhdGEocmVjLT5hcHBsaWNhdGlvbiksIHJlYy0+ZGlzY292ZXJl ZCk7Ci0rCQkJaW5ldF9udG9hKHJlYy0+aXBfYWRkciksIG50b2hzKHJlYy0+cG9ydCksIHJlYy0+ cHJvdG8sCi0rCQkJYmRhdGEocmVjLT5zZXJ2aWNlKSwgYmRhdGEocmVjLT5hcHBsaWNhdGlvbiks Ci0rCQkJKGludClyZWMtPmRpc2NvdmVyZWQpOwotIAkgICAgZmZsdXNoKG91dHB1dF9maWZvX2Nv bmYuZmlsZSk7Ci0gCX0KLSAgICAgfSBlbHNlIHsKLUBAIC0xNjUsMTEgKzE2MywxMyBAQCBwcmlu dF9hcnBfYXNzZXRfZmlmbyAoQXJwQXNzZXQgKnJlYykKLSAgICAgLyogUHJpbnQgdG8gRmlsZSAq LwotICAgICBpZiAob3V0cHV0X2ZpZm9fY29uZi5maWxlICE9IE5VTEwpIHsKLSAJaWYgKHJlYy0+ bWFjX3Jlc29sdmVkICE9IE5VTEwpIHsKLS0JICAgIGZwcmludGYob3V0cHV0X2ZpZm9fY29uZi5m aWxlLCAiMDIsJXMsJXMsJXMsJWRcbiIsIGluZXRfbnRvYShyZWMtPmlwX2FkZHIpLAotLQkJICAg IHJlYy0+bWFjX3Jlc29sdmVkLCBoZXgybWFjKCZyZWMtPm1hY19hZGRyKSwgcmVjLT5kaXNjb3Zl cmVkKTsKLSsJICAgIGZwcmludGYob3V0cHV0X2ZpZm9fY29uZi5maWxlLCAiMDIsJXMsJXMsJXMs JWRcbiIsCi0rCQlpbmV0X250b2EocmVjLT5pcF9hZGRyKSwgYmRhdGEocmVjLT5tYWNfcmVzb2x2 ZWQpLAotKwkJIGhleDJtYWMocmVjLT5tYWNfYWRkciksIChpbnQpcmVjLT5kaXNjb3ZlcmVkKTsK LSAJfSBlbHNlIHsKLS0JICAgIGZwcmludGYob3V0cHV0X2ZpZm9fY29uZi5maWxlLCAiMDIsJXMs dW5rbm93biwlcywlZFxuIiwgaW5ldF9udG9hKHJlYy0+aXBfYWRkciksCi0tCQkgICAgaGV4Mm1h YygmcmVjLT5tYWNfYWRkciksIHJlYy0+ZGlzY292ZXJlZCk7Ci0rCSAgICBmcHJpbnRmKG91dHB1 dF9maWZvX2NvbmYuZmlsZSwgIjAyLCVzLHVua25vd24sJXMsJWRcbiIsCi0rCQkJaW5ldF9udG9h KHJlYy0+aXBfYWRkciksIGhleDJtYWMocmVjLT5tYWNfYWRkciksCi0rCQkJKGludClyZWMtPmRp c2NvdmVyZWQpOwotIAl9Ci0gCi0gCWZmbHVzaChvdXRwdXRfZmlmb19jb25mLmZpbGUpOwotQEAg LTE5Niw3ICsxOTYsOCBAQCBwcmludF9zdGF0X2ZpZm8gKEFzc2V0ICpyZWMpCi0gewotICAgICBp ZiAob3V0cHV0X2ZpZm9fY29uZi5maWxlICE9IE5VTEwpIHsKLSAJZnByaW50ZihvdXRwdXRfZmlm b19jb25mLmZpbGUsICIwMywlcywlZCwlZCwlZFxuIiwKLS0JCWluZXRfbnRvYShyZWMtPmlwX2Fk ZHIpLCBudG9ocyhyZWMtPnBvcnQpLCByZWMtPnByb3RvLCB0aW1lKE5VTEwpKTsKLSsJCWluZXRf bnRvYShyZWMtPmlwX2FkZHIpLCBudG9ocyhyZWMtPnBvcnQpLCByZWMtPnByb3RvLAotKwkJKGlu dCl0aW1lKE5VTEwpKTsKLSAJZmZsdXNoKG91dHB1dF9maWZvX2NvbmYuZmlsZSk7Ci0gCi0gICAg IH0gZWxzZSB7Ci1kaWZmIC11cnAgcGFkcy0xLjIub3JpZy9zcmMvb3V0cHV0L291dHB1dC1maWZv LmggcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQtZmlmby5oCi0tLS0gcGFkcy0xLjIub3JpZy9z cmMvb3V0cHV0L291dHB1dC1maWZvLmgJMjAwOC0wNi0yOSAyMDoxNjozMC4wMDAwMDAwMDAgLTA0 MDAKLSsrKyBwYWRzLTEuMi9zcmMvb3V0cHV0L291dHB1dC1maWZvLmgJMjAwOC0wNi0zMCAxMzoy ODoyOC4wMDAwMDAwMDAgLTA0MDAKLUBAIC0yNSw2ICsyNSw4IEBACi0gICogJElkOiBwYWRzLTEu Mi1jbGVhbnVwLnBhdGNoLHYgMS4xIDIwMDgvMDgvMTMgMTc6MzU6MTEgc2dydWJiIEV4cCAkCi0g ICoKLSAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCi0rI2lmbmRlZiBPVVRQVVRfRklGT19IRUFERVIKLSsj ZGVmaW5lIE9VVFBVVF9GSUZPX0hFQURFUgotIAotIC8qIERFRklORVMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSAjaWZkZWYgTElOVVgKLUBAIC01Niw5ICs1 OCwxMSBAQCB0eXBlZGVmIHN0cnVjdCBfT3V0cHV0RklGT0NvbmYKLSAKLSAKLSAvKiBQUk9UT1RZ UEVTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0raW50IHNldHVw X291dHB1dF9maWZvICh2b2lkKTsKLSBpbnQgaW5pdF9vdXRwdXRfZmlmbyAoYnN0cmluZyBmaWZv X2ZpbGUpOwotIGludCBwcmludF9hc3NldF9maWZvIChBc3NldCAqcmVjKTsKLSBpbnQgcHJpbnRf YXJwX2Fzc2V0X2ZpZm8gKEFycEFzc2V0ICpyZWMpOwotIGludCBwcmludF9zdGF0X2ZpZm8gKEFz c2V0ICpyZWMpOwotIGludCBlbmRfb3V0cHV0X2ZpZm8gKHZvaWQpOwotIAotKyNlbmRpZgotZGlm ZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9vdXRwdXQuaCBwYWRzLTEuMi9zcmMvb3V0 cHV0L291dHB1dC5oCi0tLS0gcGFkcy0xLjIub3JpZy9zcmMvb3V0cHV0L291dHB1dC5oCTIwMDgt MDYtMjkgMjA6MTY6MzAuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL291dHB1dC9v dXRwdXQuaAkyMDA4LTA2LTMwIDEzOjI4OjI4LjAwMDAwMDAwMCAtMDQwMAotQEAgLTI1LDYgKzI1 LDggQEAKLSAgKiAkSWQ6IHBhZHMtMS4yLWNsZWFudXAucGF0Y2gsdiAxLjEgMjAwOC8wOC8xMyAx NzozNToxMSBzZ3J1YmIgRXhwICQKLSAgKgotICAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSsjaWZuZGVm IE9VVFBVVF9IRUFERVIKLSsjZGVmaW5lIE9VVFBVVF9IRUFERVIKLSAKLSAvKiBERUZJTkVTIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0gI2lmZGVmIExJTlVY Ci1AQCAtNzcsMyArNzksNCBAQCBpbnQgcHJpbnRfYXJwX2Fzc2V0IChzdHJ1Y3QgaW5fYWRkciBp cF9hCi0gaW50IHByaW50X3N0YXQoc3RydWN0IGluX2FkZHIgaXBfYWRkciwgdV9pbnQxNl90IHBv cnQsIHVuc2lnbmVkIHNob3J0IHByb3RvKTsKLSB2b2lkIGVuZF9vdXRwdXQgKHZvaWQpOwotIAot KyNlbmRpZgotZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9vdXRwdXQtc2NyZWVu LmMgcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQtc2NyZWVuLmMKLS0tLSBwYWRzLTEuMi5vcmln L3NyYy9vdXRwdXQvb3V0cHV0LXNjcmVlbi5jCTIwMDgtMDYtMjkgMjA6MTY6MzAuMDAwMDAwMDAw IC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQtc2NyZWVuLmMJMjAwOC0wNi0z MCAxMzoyODoyOC4wMDAwMDAwMDAgLTA0MDAKLUBAIC0yNCw3ICsyNCw5IEBACi0gICogJElkOiBw YWRzLTEuMi1jbGVhbnVwLnBhdGNoLHYgMS4xIDIwMDgvMDgvMTMgMTc6MzU6MTEgc2dydWJiIEV4 cCAkCi0gICoKLSAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0rI2luY2x1ZGUgPGFycGEvaW5ldC5oPgot ICNpbmNsdWRlICJvdXRwdXQtc2NyZWVuLmgiCi0rI2luY2x1ZGUgInV0aWwuaCIKLSAKLSAvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0gICogRlVOQ1RJT04JOiBzZXR1cF9vdXRwdXRfc2NyZWVuCi1AQCAtMzgsNyArNDAsNiBAQCBp bnQKLSBzZXR1cF9vdXRwdXRfc2NyZWVuICh2b2lkKQotIHsKLSAgICAgT3V0cHV0UGx1Z2luICpw bHVnaW47Ci0tICAgIGJzdHJpbmcgbmFtZTsKLSAKLSAgICAgLyogQWxsb2NhdGUgYW5kIHNldHVw IHBsdWdpbiBkYXRhIHJlY29yZC4gKi8KLSAgICAgcGx1Z2luID0gKE91dHB1dFBsdWdpbiopbWFs bG9jKHNpemVvZihPdXRwdXRQbHVnaW4pKTsKLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy9v dXRwdXQvb3V0cHV0LXNjcmVlbi5oIHBhZHMtMS4yL3NyYy9vdXRwdXQvb3V0cHV0LXNjcmVlbi5o Ci0tLS0gcGFkcy0xLjIub3JpZy9zcmMvb3V0cHV0L291dHB1dC1zY3JlZW4uaAkyMDA4LTA2LTI5 IDIwOjE2OjMwLjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMtMS4yL3NyYy9vdXRwdXQvb3V0cHV0 LXNjcmVlbi5oCTIwMDgtMDYtMzAgMTM6Mjg6MjguMDAwMDAwMDAwIC0wNDAwCi1AQCAtMjUsNiAr MjUsOCBAQAotICAqICRJZDogcGFkcy0xLjItY2xlYW51cC5wYXRjaCx2IDEuMSAyMDA4LzA4LzEz IDE3OjM1OjExIHNncnViYiBFeHAgJAotICAqCi0gICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotKyNpZm5k ZWYgT1VUUFVUX1NDUkVFTl9IRUFERVIKLSsjZGVmaW5lIE9VVFBVVF9TQ1JFRU5fSEVBREVSCi0g Ci0gLyogREVGSU5FUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq LwotICNpZmRlZiBMSU5VWAotQEAgLTQzLDE2ICs0NSwxMiBAQAotICNpbmNsdWRlICJvdXRwdXQu aCIKLSAKLSAKLS0vKiBUWVBFREVGUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICovCi0tdHlwZWRlZiBzdHJ1Y3QgX091dHB1dENTVkNvbmYKLS17Ci0tICAgIEZJTEUg KmZpbGU7Ci0tfSBPdXRwdXRDU1ZDb25mOwotLQotLQotIC8qIFBST1RPVFlQRVMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSBpbnQgc2V0dXBfb3V0cHV0X3NjcmVl biAodm9pZCk7Ci0gaW50IGluaXRfb3V0cHV0X3NjcmVlbiAoYnN0cmluZyBhcmdzKTsKLSBpbnQg cHJpbnRfYXNzZXRfc2NyZWVuIChBc3NldCAqcmVjKTsKLSBpbnQgcHJpbnRfYXJwX2Fzc2V0X3Nj cmVlbiAoQXJwQXNzZXQgKnJlYyk7Ci0gaW50IGVuZF9vdXRwdXRfc2NyZWVuICh2b2lkKTsKLSsK LSsjZW5kaWYKLSsKLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy9wYWNrZXQuYyBwYWRzLTEu Mi9zcmMvcGFja2V0LmMKLS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9wYWNrZXQuYwkyMDA4LTA2LTI5 IDIwOjE2OjMwLjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMtMS4yL3NyYy9wYWNrZXQuYwkyMDA4 LTA2LTMwIDEzOjI4OjI4LjAwMDAwMDAwMCAtMDQwMAotQEAgLTI2LDYgKzI2LDEwIEBACi0gICoK LSAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCi0gI2luY2x1ZGUgInBhY2tldC5oIgotKyNpbmNsdWRlICJv dXRwdXQvb3V0cHV0LmgiCi0rI2luY2x1ZGUgInN0b3JhZ2UuaCIKLSsjaW5jbHVkZSAibW9ubmV0 LmgiCi0rI2luY2x1ZGUgImlkZW50aWZpY2F0aW9uLmgiCi0gCi0gLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAqIEZVTkNUSU9O CTogcHJvY2Vzc19ldGgKLUBAIC0xNTcsOSArMTYxLDkgQEAgdm9pZCBwcm9jZXNzX2FycCAoY29u c3Qgc3RydWN0IHBjYXBfcGt0aAotIAljYXNlIEFSUE9QX1JFUExZOgotIAkgICAgbWVtY3B5KCZp cF9hZGRyLnNfYWRkciwgYXJwaC0+YXJwX3NwYSwgc2l6ZW9mKHVfaW50OF90KSAqIDQpOwotIAot LQkgICAgaWYgKGNoZWNrX2FycF9hc3NldChpcF9hZGRyLCBhcnBoLT5hcnBfc2hhKSA9PSAxKSB7 Ci0tCQlhZGRfYXJwX2Fzc2V0KGlwX2FkZHIsIGFycGgtPmFycF9zaGEsIDApOwotLQkJcHJpbnRf YXJwX2Fzc2V0IChpcF9hZGRyLCBhcnBoLT5hcnBfc2hhKTsKLSsJICAgIGlmIChjaGVja19hcnBf YXNzZXQoaXBfYWRkciwgKGNoYXIgKilhcnBoLT5hcnBfc2hhKSA9PSAxKSB7Ci0rCQlhZGRfYXJw X2Fzc2V0KGlwX2FkZHIsIChjaGFyICopYXJwaC0+YXJwX3NoYSwgMCk7Ci0rCQlwcmludF9hcnBf YXNzZXQgKGlwX2FkZHIsIChjaGFyICopYXJwaC0+YXJwX3NoYSk7Ci0gCSAgICB9Ci0gCi0gCSAg ICBicmVhazsKLUBAIC0yMjIsNyArMjI2LDcgQEAgdm9pZCBwcm9jZXNzX3RjcCAoY29uc3Qgc3Ry dWN0IHBjYXBfcGt0aAotIAkJICogQ2hlY2sgdG8gc2VlIGlmIHRoaXMgQUNLIHBhY2tldCBuZWVk cyB0byBiZQotIAkJICogaWRlbnRpZmllZC4KLSAJCSAqLwotLQkJcGF5bG9hZCA9ICh1X2NoYXIg KikocGFja2V0ICsgc2l6ZW9mKHN0cnVjdCB0Y3BoZHIpICsgbGVuKTsKLSsJCXBheWxvYWQgPSAo Y2hhciAqKShwYWNrZXQgKyBzaXplb2Yoc3RydWN0IHRjcGhkcikgKyBsZW4pOwotIAotIAkJLyog QXR0ZW1wdCB0byBpZGVudGlmeSB0aGlzIGFzc2V0LiAgKi8KLSAJCWlmKHRjcF9pZGVudGlmeShp cF9zcmMsIHRjcGgtPnRoX3Nwb3J0LCBwYXlsb2FkLAotZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcv c3JjL3BhZHMuYyBwYWRzLTEuMi9zcmMvcGFkcy5jCi0tLS0gcGFkcy0xLjIub3JpZy9zcmMvcGFk cy5jCTIwMDgtMDYtMjkgMjA6MTY6MzAuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3Jj L3BhZHMuYwkyMDA4LTA2LTMwIDEzOjI4OjI4LjAwMDAwMDAwMCAtMDQwMAotQEAgLTI2LDYgKzI2 LDEzIEBACi0gICoKLSAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gI2luY2x1ZGUgInBhZHMuaCIKLSsj aW5jbHVkZSAidXRpbC5oIgotKyNpbmNsdWRlICJzdG9yYWdlLmgiCi0rI2luY2x1ZGUgIm91dHB1 dC9vdXRwdXQuaCIKLSsjaW5jbHVkZSAiaWRlbnRpZmljYXRpb24uaCIKLSsjaW5jbHVkZSAibWFj LXJlc29sdXRpb24uaCIKLSsjaW5jbHVkZSAibW9ubmV0LmgiCi0rI2luY2x1ZGUgImNvbmZpZ3Vy YXRpb24uaCIKLSAKLSAvKiBWYXJpYWJsZSBEZWNsYXJhdGlvbnMgKi8KLSBHQyBnYzsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogR2xvYmFsIENvbmZpZ3VyYXRpb24gKi8KLUBA IC0zNCw2ICs0MSw5IEBAIHByb2NfdCBwcm9jZXNzb3I7Ci0gY2hhciAqKnByb2dfYXJndjsKLSBp bnQgcHJvZ19hcmdjOwotIAotKy8qIEZ1bmN0aW9uIERlY2xhcmF0aW9ucyAqLwotK3N0YXRpYyBp bnQgcHJvY2Vzc19jbWRsaW5lIChpbnQgYXJnYywgY2hhciAqYXJndltdKTsKLSsKLSAvKiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0g ICogRlVOQ1RJT04gICAgIDogcHJvY2Vzc19wa3QKLSAgKiBERVNDUklQVElPTiAgOiBUaGlzIGZ1 bmN0aW9uIHRha2VzIGRhdGEgZnJvbSBsaWJwY2FwIGFuZAotQEAgLTIxMCw3ICsyMjAsNyBAQCBt YWluX3BhZHMgKHZvaWQpCi0gICAgIGlmIChnYy5wY2FwX2ZpbGUpIHsKLSAgICAgICAgIC8qIFJl YWQgZnJvbSBQQ0FQIGZpbGUgc3BlY2lmaWVkIGJ5ICctcicgc3dpdGNoLiAqLwotICAgICAgICAg bG9nX21lc3NhZ2UoIlJlYWRpbmcgZnJvbSBmaWxlICVzXG4iLCBiZGF0YShnYy5wY2FwX2ZpbGUp KTsKLS0gICAgICAgIGlmICghKGdjLmhhbmRsZSA9IHBjYXBfb3Blbl9vZmZsaW5lKGJkYXRhKGdj LnBjYXBfZmlsZSksIGVycmJ1ZikpKSB7Ci0rICAgICAgICBpZiAoIShnYy5oYW5kbGUgPSBwY2Fw X29wZW5fb2ZmbGluZSgoY2hhciAqKWJkYXRhKGdjLnBjYXBfZmlsZSksIGVycmJ1ZikpKSB7Ci0g ICAgICAgICAgICAgZXJyX21lc3NhZ2UoIlVuYWJsZSB0byBvcGVuICVzLiAgKCVzKSIsIGJkYXRh KGdjLnBjYXBfZmlsZSksIGVycmJ1Zik7Ci0gICAgICAgICB9Ci0gCi1AQCAtMjY4LDcgKzI3OCw3 IEBAIG1haW5fcGFkcyAodm9pZCkKLSAgICAgLyogT3BlbiBiYW5uZXIgZHVtcCBmaWxlIGlmIHNw ZWNpZmllZCAoLWQpLiAqLwotICAgICBpZiAoZ2MuZHVtcF9maWxlKSB7Ci0gICAgICAgICB2ZXJi b3NlX21lc3NhZ2UoIk9wZW5pbmcgQmFubmVyIER1bXAgRmlsZSIpOwotLSAgICAgICAgaWYgKCEo Z2MuZHVtcGVyID0gcGNhcF9kdW1wX29wZW4oZ2MuaGFuZGxlLCBiZGF0YShnYy5kdW1wX2ZpbGUp KSkpCi0rICAgICAgICBpZiAoIShnYy5kdW1wZXIgPSBwY2FwX2R1bXBfb3BlbihnYy5oYW5kbGUs IChjaGFyICopYmRhdGEoZ2MuZHVtcF9maWxlKSkpKQotICAgICAgICAgICAgIGVycl9tZXNzYWdl KCJDYW5ub3Qgb3BlbiBkdW1wIGZpbGUgLSAlc1xuIiwgcGNhcF9nZXRlcnIoZ2MuaGFuZGxlKSk7 Ci0gICAgIH0KLSAKLUBAIC0zMjMsNyArMzMzLDcgQEAgZW5kX3BhZHModm9pZCkKLSAKLSAgICAg LyogUmVtb3ZlIFBJRCBGaWxlICovCi0gICAgIGlmIChnYy5kYWVtb25fbW9kZSA9PSAxKQotLSAg ICAgICAgaWYgKCh1bmxpbmsoYmRhdGEoZ2MucGlkX2ZpbGUpKSkgIT0gMCkKLSsgICAgICAgIGlm ICgodW5saW5rKChjaGFyICopYmRhdGEoZ2MucGlkX2ZpbGUpKSkgIT0gMCkKLSAgICAgICAgICAg ICBsb2dfbWVzc2FnZSgiV0FSTklORzogIFVuYWJsZSB0byByZW1vdmUgUElEIGZpbGUgLSAlc1xu IiwgYmRhdGEoZ2MucGlkX2ZpbGUpKTsKLSAKLSAgICAgLyogRW5kIE1vZHVsZXMgKi8KLUBAIC0z NzAsNyArMzgwLDcgQEAgZW5kX3BhZHModm9pZCkKLSAgKiBSRVRVUk4gICAgICAgOiAwIC0gU3Vj Y2VzcwotICAqICAgICAgICAgICAgICA6IC0xIC0gRXJyb3IKLSAgKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0taW50Ci0rc3Rh dGljIGludAotIHByb2Nlc3NfY21kbGluZSAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSB7Ci0g ICAgIGludCBjaDsKLUBAIC00NzcsMTEgKzQ4Nyw2IEBAIHNpZ19odXBfaGFuZGxlcihpbnQgc2ln bmFsKQotIGludAotIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSB7Ci0tICAgIC8qIFZh cmlhYmxlcyAqLwotLSAgICBpbnQgaTsKLS0gICAgc3RydWN0IHBjYXBfcGt0aGRyIGhlYWRlcjsg ICAgICAvKiBUaGUgaGVhZGVyIHRoYXQgcGNhcCBnaXZlcyB1cyAqLwotLSAgICBjb25zdCB1X2No YXIgKnBhY2tldDsgICAgICAgICAgIC8qIFRoZSBhY3R1YWwgcGFja2V0ICovCi0tCi0gICAgIC8q IENvcHkgQ29tbWFuZCBMaW5lIEFyZ3MgKi8KLSAgICAgcHJvZ19hcmdjID0gYXJnYzsKLSAgICAg cHJvZ19hcmd2ID0gYXJndjsKLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy9zdG9yYWdlLmMg cGFkcy0xLjIvc3JjL3N0b3JhZ2UuYwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL3N0b3JhZ2UuYwky MDA4LTA2LTI5IDIwOjE2OjMwLjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMtMS4yL3NyYy9zdG9y YWdlLmMJMjAwOC0wNi0zMCAxMzoyODoyOC4wMDAwMDAwMDAgLTA0MDAKLUBAIC0yNCw3ICsyNCwx MCBAQAotICAqICRJZDogcGFkcy0xLjItY2xlYW51cC5wYXRjaCx2IDEuMSAyMDA4LzA4LzEzIDE3 OjM1OjExIHNncnViYiBFeHAgJAotICAqCi0gICoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotKyNpbmNsdWRl IDxhcnBhL2luZXQuaD4KLSsjaW5jbHVkZSA8bmV0aW5ldC9ldGhlci5oPgotICNpbmNsdWRlICJz dG9yYWdlLmgiCi0rI2luY2x1ZGUgIm1hYy1yZXNvbHV0aW9uLmgiCi0gCi0gQXNzZXQgKmFzc2V0 X2xpc3Q7Ci0gQXJwQXNzZXQgKmFycF9hc3NldF9saXN0OwotQEAgLTQwMCw3ICs0MDMsNyBAQCBp bmxpbmUgQXNzZXQgKgotIGZpbmRfYXNzZXQgKHN0cnVjdCBpbl9hZGRyIGlwX2FkZHIsIHVfaW50 MTZfdCBwb3J0LCB1bnNpZ25lZCBzaG9ydCBwcm90bykKLSB7Ci0gICAgIEFzc2V0ICpsaXN0Owot LSAgICBBc3NldCAqcmVjOwotKyAgICBBc3NldCAqcmVjID0gTlVMTDsKLSAKLSAgICAgbGlzdCA9 IGFzc2V0X2xpc3Q7Ci0gCi1AQCAtNDY5LDcgKzQ3Miw3IEBAIHZvaWQgcHJpbnRfZGF0YWJhc2Ug KCkKLSAgICAgd2hpbGUgKHJlYyAhPSBOVUxMKSB7Ci0gCXByaW50ZigiJWQ6ICAlcywlZCwlZCwl ZCwlcywlcywlZFxuIiwKLSAJCWlkLCBpbmV0X250b2EocmVjLT5pcF9hZGRyKSwgbnRvaHMocmVj LT5wb3J0KSwKLS0JCXJlYy0+cHJvdG8sIHJlYy0+ZGlzY292ZXJlZCwKLSsJCXJlYy0+cHJvdG8s IChpbnQpcmVjLT5kaXNjb3ZlcmVkLAotIAkJYmRhdGEocmVjLT5zZXJ2aWNlKSwgYmRhdGEocmVj LT5hcHBsaWNhdGlvbiksCi0gCQlyZWMtPmlfYXR0ZW1wdHMpOwotIAlyZWMgPSByZWMtPm5leHQ7 Ci1AQCAtNDgyLDcgKzQ4NSw3IEBAIHZvaWQgcHJpbnRfZGF0YWJhc2UgKCkKLSAgICAgYXJwID0g YXJwX2Fzc2V0X2xpc3Q7Ci0gICAgIHdoaWxlIChhcnAgIT0gTlVMTCkgewotIAlwcmludGYoIiVk OiAgJXMsJXMsJWRcbiIsIGlkLCBpbmV0X250b2EoYXJwLT5pcF9hZGRyKSwKLS0JCWV0aGVyX250 b2EoJmFycC0+bWFjX2FkZHIpLCBhcnAtPmRpc2NvdmVyZWQpOwotKwkJZXRoZXJfbnRvYSgoc3Ry dWN0IGV0aGVyX2FkZHIgKilhcnAtPm1hY19hZGRyKSwgKGludClhcnAtPmRpc2NvdmVyZWQpOwot IAlhcnAgPSBhcnAtPm5leHQ7Ci0gCWlkKys7Ci0gICAgIH0KLWRpZmYgLXVycCBwYWRzLTEuMi5v cmlnL3NyYy91dGlsLmMgcGFkcy0xLjIvc3JjL3V0aWwuYwotLS0tIHBhZHMtMS4yLm9yaWcvc3Jj L3V0aWwuYwkyMDA4LTA2LTI5IDIwOjE2OjMwLjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMtMS4y L3NyYy91dGlsLmMJMjAwOC0wNi0zMCAxMzoyODoyOC4wMDAwMDAwMDAgLTA0MDAKLUBAIC0yNSw4 ICsyNSwxMCBAQAotICAqICRJZDogcGFkcy0xLjItY2xlYW51cC5wYXRjaCx2IDEuMSAyMDA4LzA4 LzEzIDE3OjM1OjExIHNncnViYiBFeHAgJAotICAqCi0gICoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotKyNp bmNsdWRlIDx1bmlzdGQuaD4KLSsjaW5jbHVkZSA8Y3R5cGUuaD4KLSAjaW5jbHVkZSAidXRpbC5o IgotLQotKyNpbmNsdWRlICJwYWRzLmgiCi0gCi0gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAqIEZVTkNUSU9OICAgICA6IHN0 cmlwX2NvbW1lbnQKLUBAIC02MCwxMSArNjIsMTIgQEAgc3RyaXBfY29tbWVudCAoY2hhciAqc3Ry aW5nKQotIGludAotIGNob21wIChjaGFyICpzdHJpbmcsIGludCBzaXplKQotIHsKLS0gICAgZm9y IChzaXplOyBzaXplID49IDA7IHNpemUtLSkgewotKyAgICB3aGlsZSAoc2l6ZSA+PSAwKSB7Ci0g ICAgICAgICBpZiAoc3RyaW5nW3NpemVdID09ICdcbicpIHsKLSAgICAgICAgICAgICBzdHJpbmdb c2l6ZV0gPSAnXDAnOwotICAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICAgfQotKyAgICAg ICAgc2l6ZS0tOwotICAgICB9Ci0gCi0gICAgIHJldHVybiAwOwotQEAgLTEyMSw3ICsxMjQsNyBA QCBpbml0X3BpZF9maWxlIChic3RyaW5nIHBpZF9maWxlLCBic3RyaW5nCi0gICAgICAgICBnYy5w aWRfZmlsZSA9IGJmcm9tY3N0cigiL3Zhci9ydW4vcGFkcy5waWQiKTsKLSAKLSAgICAgLyogQ3Jl YXRlIFBJRCBGaWxlICovCi0tICAgIGlmICgoZnAgPSBmb3BlbihiZGF0YShnYy5waWRfZmlsZSks ICJ3IikpICE9IE5VTEwpIHsKLSsgICAgaWYgKChmcCA9IGZvcGVuKChjaGFyICopYmRhdGEoZ2Mu cGlkX2ZpbGUpLCAidyIpKSAhPSBOVUxMKSB7Ci0gICAgICAgICBwaWQgPSAoaW50KSBnZXRwaWQo KTsKLSAgICAgICAgIGZwcmludGYoZnAsICIlZFxuIiwgcGlkKTsKLSAgICAgICAgIGZjbG9zZShm cCk7Ci1AQCAtMTMzLDExICsxMzYsMTEgQEAgaW5pdF9waWRfZmlsZSAoYnN0cmluZyBwaWRfZmls ZSwgYnN0cmluZwotICAgICBpZiAodXNlciA9PSBOVUxMIHx8IGdyb3VwID09IE5VTEwpCi0gICAg ICAgICByZXR1cm47Ci0gCi0tICAgIGlmICgodGhpc19ncm91cCA9IGdldGdybmFtKGJkYXRhKGdy b3VwKSkpID09IE5VTEwpCi0rICAgIGlmICgodGhpc19ncm91cCA9IGdldGdybmFtKChjaGFyICop YmRhdGEoZ3JvdXApKSkgPT0gTlVMTCkKLSAgICAgICAgIGVycl9tZXNzYWdlKCInJXMnIGdyb3Vw IGRvZXMgbm90IGFwcGVhciB0byBleGlzdC4iLCBiZGF0YShncm91cCkpOwotLSAgICBpZiAoKHRo aXNfdXNlciA9IGdldHB3bmFtKGJkYXRhKHVzZXIpKSkgPT0gTlVMTCkKLSsgICAgaWYgKCh0aGlz X3VzZXIgPSBnZXRwd25hbSgoY2hhciAqKWJkYXRhKHVzZXIpKSkgPT0gTlVMTCkKLSAgICAgICAg IGVycl9tZXNzYWdlKCInJXMnIHVzZXIgZG9lcyBub3QgYXBwZWFyIHRvIGV4aXN0LiIsIGJkYXRh KHVzZXIpKTsKLS0gICAgaWYgKChjaG93bihwaWRfZmlsZSwgdGhpc191c2VyLT5wd191aWQsIHRo aXNfZ3JvdXAtPmdyX2dpZCkpICE9IDApCi0rICAgIGlmICgoY2hvd24oKGNoYXIgKiliZGF0YShw aWRfZmlsZSksIHRoaXNfdXNlci0+cHdfdWlkLCB0aGlzX2dyb3VwLT5ncl9naWQpKSAhPSAwKQot ICAgICAgICAgZXJyX21lc3NhZ2UoIlVuYWJsZSB0byBjaGFuZ2UgUElEIGZpbGUncyBvd25lcnNo aXAuIik7Ci0gCi0gfQotQEAgLTM0Myw3ICszNDYsNyBAQCBzdHJsY3B5KGNoYXIgKmRzdCwgY29u c3QgY2hhciAqc3JjLCBzaXplCi0gc2l6ZV90Ci0gc3RybGNhdChjaGFyICpkc3QsIGNvbnN0IGNo YXIgKnNyYywgc2l6ZV90IGxlbikgewotICAgY2hhciAgICAgICAqZHN0cHRyID0gZHN0OwotLSAg c2l6ZV90ICAgICBkc3RsZW4sIHRvY29weTsKLSsgIHNpemVfdCAgICAgZHN0bGVuLCB0b2NvcHkg PSBsZW47Ci0gICBjb25zdCBjaGFyICpzcmNwdHIgPSBzcmM7Ci0gCi0gICB3aGlsZSAodG9jb3B5 LS0gJiYgKmRzdHB0cikgZHN0cHRyKys7Ci1AQCAtMzg0LDEwICszODcsMTAgQEAgZHJvcF9wcml2 cyAoYnN0cmluZyBuZXd1c2VyLCBic3RyaW5nIG5ldwotICAgICBpZiAobmV3dXNlciA9PSBOVUxM IHx8IG5ld2dyb3VwID09IE5VTEwpCi0gICAgICAgICByZXR1cm47Ci0gCi0tICAgIGlmICgodGhp c19ncm91cCA9IGdldGdybmFtKGJkYXRhKG5ld2dyb3VwKSkpID09IE5VTEwpCi0rICAgIGlmICgo dGhpc19ncm91cCA9IGdldGdybmFtKChjaGFyICopYmRhdGEobmV3Z3JvdXApKSkgPT0gTlVMTCkK LSAgICAgICAgIGVycl9tZXNzYWdlKCInJXMnIGdyb3VwIGRvZXMgbm90IGFwcGVhciB0byBleGlz dC4iLCBiZGF0YShuZXdncm91cCkpOwotIAotLSAgICBpZiAoKHRoaXNfdXNlciA9IGdldHB3bmFt KGJkYXRhKG5ld3VzZXIpKSkgPT0gTlVMTCkKLSsgICAgaWYgKCh0aGlzX3VzZXIgPSBnZXRwd25h bSgoY2hhciAqKWJkYXRhKG5ld3VzZXIpKSkgPT0gTlVMTCkKLSAgICAgICAgIGVycl9tZXNzYWdl KCInJXMnIHVzZXIgZG9lcyBub3QgYXBwZWFyIHRvIGV4aXN0LiIsIGJkYXRhKG5ld3VzZXIpKTsK LSAKLSAgICAgLyogU2V0IEdyb3VwICovCi1AQCAtNDU4LDcgKzQ2MSw3IEBAIG1hYzJoZXgoY29u c3QgY2hhciAqbWFjLCBjaGFyICpkc3QsIGludCAKLSAgKiBSRVRVUk4gICAgICAgOiAwIC0gTUFD IEFkZHJlc3MgU3RyaW5nCi0gICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotIGNoYXIgKgotLWhleDJtYWModW5zaWduZWQgY29u c3QgY2hhciAqbWFjKQotK2hleDJtYWMoY29uc3QgY2hhciAqbWFjKQotIHsKLSAgICAgc3RhdGlj IGNoYXIgYnVmWzE4XTsKLSAKLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy91dGlsLmggcGFk cy0xLjIvc3JjL3V0aWwuaAotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL3V0aWwuaAkyMDA4LTA2LTI5 IDIwOjE2OjMwLjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMtMS4yL3NyYy91dGlsLmgJMjAwOC0w Ni0zMCAxMzoyODoyOC4wMDAwMDAwMDAgLTA0MDAKLUBAIC01Myw2ICs1Myw2IEBAIHNpemVfdCBz dHJsY2F0KGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3IKLSAjZW5kaWYKLSB2b2lkIGRyb3BfcHJp dnMgKGJzdHJpbmcgbmV3dXNlciwgYnN0cmluZyBuZXdncm91cCk7Ci0gdm9pZCBtYWMyaGV4KGNv bnN0IGNoYXIgKm1hYywgY2hhciAqZHN0LCBpbnQgbGVuKTsKLS1jaGFyICpoZXgybWFjKHVuc2ln bmVkIGNvbnN0IGNoYXIgKm1hYyk7Ci0rY2hhciAqaGV4Mm1hYyhjb25zdCBjaGFyICptYWMpOwot IAotIC8qIEdMT0JBTFMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g Ki8KCmRpZmYgLS1naXQgYS9wYWRzLTEuMi1kYWVtb24ucGF0Y2ggYi9wYWRzLTEuMi1kYWVtb24u cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlYTU1YzQuLjAwMDAwMDAKLS0t IGEvcGFkcy0xLjItZGFlbW9uLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAK LWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy9jb25maWd1cmF0aW9uLmMgcGFkcy0xLjIvc3Jj L2NvbmZpZ3VyYXRpb24uYwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL2NvbmZpZ3VyYXRpb24uYwky MDA4LTA3LTA4IDE0OjI4OjI5LjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMtMS4yL3NyYy9jb25m aWd1cmF0aW9uLmMJMjAwOC0wNy0xNSAxNTo1OTo0OS4wMDAwMDAwMDAgLTA0MDAKLUBAIC0xMTUs NyArMTE1LDcgQEAgdm9pZCBwYXJzZV9saW5lIChic3RyaW5nIGxpbmUpCi0gICAgICAgICAgICAg ZWxzZQotICAgICAgICAgICAgICAgICBnYy5kYWVtb25fbW9kZSA9IDA7Ci0gICAgICAgICB9Ci0t Ci0rICAgICAgICBiZWNvbWVfZGFlbW9uKCk7Ci0gICAgIH0gZWxzZSBpZiAoKGJpc2VxY3N0cihw YXJhbSwgInBpZF9maWxlIikpID09IDEpIHsKLSAgICAgICAgICAgICAvKiBQSUQgRklMRSAqLwot ICAgICAgICAgZ2MucGlkX2ZpbGUgPSBic3RyY3B5KHZhbHVlKTsKLWRpZmYgLXVycCBwYWRzLTEu Mi5vcmlnL3NyYy9wYWRzLmMgcGFkcy0xLjIvc3JjL3BhZHMuYwotLS0tIHBhZHMtMS4yLm9yaWcv c3JjL3BhZHMuYwkyMDA4LTA3LTEyIDA4OjM2OjEwLjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMt MS4yL3NyYy9wYWRzLmMJMjAwOC0wNy0xNSAxNjowMjoyNS4wMDAwMDAwMDAgLTA0MDAKLUBAIC0y MzYsMjEgKzIzNiwxMyBAQCBpbml0X3BhZHMgKHZvaWQpCi0gICAgICAgICBpZiAoKGFjdGl2YXRl X291dHB1dF9wbHVnaW4obmFtZSwgZ2MucmVwb3J0X2ZpbGUpKSA9PSAtMSkKLSAgICAgICAgICAg ICBlcnJfbWVzc2FnZSgiRXJyb3I6ICAnYWN0aXZhdGVfb3V0cHV0X3BsdWdpbicgaW4gZnVuY3Rp b24gJ2luaXRfcGFkcycgZmFpbGVkLiIpOwotICAgICAgICAgYmRlc3Ryb3kobmFtZSk7Ci0rICAg ICAgICBiZWNvbWVfZGFlbW9uKCk7Ci0gICAgIH0KLSAKLSAgICAgLyogSW5pdGlhbGl6ZSBNb2R1 bGVzICovCi0gICAgIGluaXRfaWRlbnRpZmljYXRpb24oKTsKLSAgICAgaW5pdF9tYWNfcmVzb2x1 dGlvbigpOwotIAotLSAgICAvKiBEYWVtb24gTW9kZTogIGZvcmsgY2hpbGQgcHJvY2VzcyAqLwot LSAgICBpZiAoZ2MuZGFlbW9uX21vZGUpIHsKLS0gICAgICAgIHZlcmJvc2VfbWVzc2FnZSgiWy1d IERhZW1vbml6aW5nLi4uXG4iKTsKLS0gICAgICAgIGlmIChkYWVtb24oMCwgMCkgPCAwKSB7Ci0t ICAgICAgICAgICAgZXJyX21lc3NhZ2UoIkRhZW1vbml6ZSBmYWlsZWQiKTsKLS0gICAgICAgIH0K LS0gICAgICAgIGluaXRfcGlkX2ZpbGUoZ2MucGlkX2ZpbGUsIGdjLnByaXZfdXNlciwgZ2MucHJp dl9ncm91cCk7Ci0tICAgIH0KLS0KLSAgICAgLyogU2lnbmFsIFRyYXBwaW5nICovCi0gICAgICh2 b2lkKSBzaWduYWwoU0lHVEVSTSwgc2lnX3Rlcm1faGFuZGxlcik7Ci0gICAgICh2b2lkKSBzaWdu YWwoU0lHSU5ULCBzaWdfaW50X2hhbmRsZXIpOwotQEAgLTI5MSw5ICsyODMsMTMgQEAgbWFpbl9w YWRzICh2b2lkKQotIAotICAgICAgICAgLyogRGV0ZXJtaW5lIFNuaWZmaW5nIEludGVyZmFjZSAq LwotICAgICAgICAgaWYgKCFnYy5kZXYpIHsKLSsgICAgICAgICAgICBjaGFyICpkZXY7Ci0gICAg ICAgICAgICAgdmVyYm9zZV9tZXNzYWdlKCJMb29raW5nIGZvciBzbmlmZmluZyBpbnRlcmZhY2Ui KTsKLS0gICAgICAgICAgICBpZiAoIShnYy5kZXYgPSBwY2FwX2xvb2t1cGRldihlcnJidWYpKSkK LS0gICAgICAgICAgICAgICAgZXJyX21lc3NhZ2UoIlVuYWJsZSB0byBmaW5kIGEgc25pZmZpbmcg aW50ZXJmYWNlISAgKCVzKSIsIGVycmJ1Zik7Ci0rICAgICAgICAgICAgZGV2ID0gcGNhcF9sb29r dXBkZXYoZXJyYnVmKTsKLSsgICAgICAgICAgICBpZiAoIWRldikKLSsgICAgICAgICAgICAgICAg ZXJyX21lc3NhZ2UoIlVuYWJsZSB0byBmaW5kIGEgc25pZmZpbmcgaW50ZXJmYWNlISAgKCVzKSIs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgZXJyYnVmKTsKLSsgICAgICAgICAgICBnYy5kZXYg PSBzdHJkdXAoZGV2KTsKLSAgICAgICAgIH0KLSAKLSAgICAgICAgIC8qIFNldCB1cCBsaWJwY2Fw IGNvbm5lY3Rpb24uICovCi1kaWZmIC11cnAgcGFkcy0xLjIub3JpZy9zcmMvdXRpbC5jIHBhZHMt MS4yL3NyYy91dGlsLmMKLS0tLSBwYWRzLTEuMi5vcmlnL3NyYy91dGlsLmMJMjAwOC0wNy0wOCAx NDoyODoyOS4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvdXRpbC5jCTIwMDgtMDct MTUgMTY6MDI6MzguMDAwMDAwMDAwIC0wNDAwCi1AQCAtODEsNyArODEsNyBAQCBjaG9tcCAoY2hh ciAqc3RyaW5nLCBpbnQgc2l6ZSkKLSAgKiBJTlBVVCAgICAgICAgOiAwIC0gUElEIGZpbGVuYW1l Ci0gICogUkVUVVJOICAgICAgIDogTm9uZSEKLSAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0tdm9pZAotK3N0YXRpYyB2b2lk Ci0gaW5pdF9waWRfZmlsZSAoYnN0cmluZyBwaWRfZmlsZSwgYnN0cmluZyB1c2VyLCBic3RyaW5n IGdyb3VwKQotIHsKLSAgICAgaW50IHBpZDsKLUBAIC0xMTYsNiArMTE2LDIzIEBAIGluaXRfcGlk X2ZpbGUgKGJzdHJpbmcgcGlkX2ZpbGUsIGJzdHJpbmcKLSB9Ci0gCi0gLyogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyAqICAqIEZV TkNUSU9OICAgICA6IGJlY29tZV9kYWVtb24KLSsgKiAgICogREVTQ1JJUFRJT04gIDogVGhpcyBm dW5jdGlvbiBtYWtlcyBwYWRzIGludG8gYSBkYWVtb24KLSsgKiAgICAqIFJFVFVSTiAgICAgICA6 IG5vbmUKLSsgKiAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tICovCi0rdm9pZCBiZWNvbWVfZGFlbW9uKHZvaWQpCi0rewotKyAg ICBpZiAoZ2MuZGFlbW9uX21vZGUpIHsKLSsgICAgICAgIC8qIERhZW1vbiBNb2RlOiAgZm9yayBj aGlsZCBwcm9jZXNzICovCi0rICAgICAgICB2ZXJib3NlX21lc3NhZ2UoIlstXSBEYWVtb25pemlu Zy4uLlxuIik7Ci0rICAgICAgICBpZiAoZGFlbW9uKDAsIDApIDwgMCkgewotKyAgICAgICAgICAg IGVycl9tZXNzYWdlKCJEYWVtb25pemUgZmFpbGVkIik7Ci0rICAgICAgICB9Ci0rICAgICAgICBp bml0X3BpZF9maWxlKGdjLnBpZF9maWxlLCBnYy5wcml2X3VzZXIsIGdjLnByaXZfZ3JvdXApOwot KyAgICB9Ci0rfQotKwotKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgKiBGVU5DVElPTiAgICAgOiBjb3B5X2FyZ3YKLSAgKiBE RVNDUklQVElPTiAgOiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmxhdHRlbiBhcmd2IGludG8gYQotICAq ICAgICAgICAgICAgICA6IHNpbmdsZSBzdHJpbmcuICBUaGlzIGZ1bmN0aW9uIHdhcyB0YWtlbgot ZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3JjL3V0aWwuaCBwYWRzLTEuMi9zcmMvdXRpbC5oCi0t LS0gcGFkcy0xLjIub3JpZy9zcmMvdXRpbC5oCTIwMDgtMDctMDggMTQ6Mjg6MjkuMDAwMDAwMDAw IC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL3V0aWwuaAkyMDA4LTA3LTE1IDE2OjAzOjA0LjAwMDAw MDAwMCAtMDQwMAotQEAgLTM5LDcgKzM5LDcgQEAKLSAvKiBQUk9UT1RZUEVTIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0gdm9pZCBzdHJpcF9jb21tZW50IChjaGFy ICpzdHJpbmcpOwotIGludCBjaG9tcCAoY2hhciAqc3RyaW5nLCBpbnQgc2l6ZSk7Ci0tdm9pZCBp bml0X3BpZF9maWxlIChic3RyaW5nIHBpZF9maWxlLCBic3RyaW5nIHVzZXIsIGJzdHJpbmcgZ3Jv dXApOwotK3ZvaWQgYmVjb21lX2RhZW1vbih2b2lkKTsKLSBjaGFyICpjb3B5X2FyZ3YocmVnaXN0 ZXIgY2hhciAqKmFyZ3YpOwotIHZvaWQgbG9nX21lc3NhZ2UgKGNvbnN0IGNoYXIgKm1zZywgLi4u KQotICNpZmRlZiBfX0dOVUNfXwoKZGlmZiAtLWdpdCBhL3BhZHMtMS4yLWRhZW1vbml6ZS5wYXRj aCBiL3BhZHMtMS4yLWRhZW1vbml6ZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMWUwZDgwMS4uMDAwMDAwMAotLS0gYS9wYWRzLTEuMi1kYWVtb25pemUucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi1kaWZmIC11cnAgcGFkcy0xLjIub3JpZy9ldGMvcGFk cy5jb25mIHBhZHMtMS4yL2V0Yy9wYWRzLmNvbmYKLS0tLSBwYWRzLTEuMi5vcmlnL2V0Yy9wYWRz LmNvbmYJMjAwOC0wNi0yOSAyMDoxNjozMC4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9l dGMvcGFkcy5jb25mCTIwMDgtMDctMDEgMTU6NTQ6MDEuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMTUs NyArMTUsNyBAQAotICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICMgVGhpcyBwYXJhbWV0 ZXIgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBhcHBsaWNhdGlvbiB3aWxsIGdvIGludG8gdGhlIGJh Y2tncm91bmQuCi0gIyAwID0gRGlzYWJsZSwgMSA9IEVuYWJsZQotLWRhZW1vbiAwCi0rZGFlbW9u IDEKLSAKLSAjIHBpZF9maWxlCi0gIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1AQCAtNjIs MTMgKzYyLDEzIEBAIHBpZF9maWxlIC92YXIvcnVuL3BhZHMucGlkCi0gIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gIyBUaGlzIG91dHB1dCBwbHVnaW4gZGlzcGxheXMgUEFEUyBkYXRhIHRv IHRoZSBzY3JlZW4uICBJdCBpcyBtYWlubHkgdXNlZCBmb3IKLSAjIGRlYnVnZ2luZyBwdXJwb3Nl cy4KLS1vdXRwdXQgc2NyZWVuCi0rI291dHB1dCBzY3JlZW4KLSAKLSAjIG91dHB1dDogIGNzdgot ICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICMgVGhpcyBvdXRwdXQgcGx1Z2luIHdyaXRl cyBQQURTIGRhdGEgdG8gYSBDU1YgZmlsZS4gIE9wdGlvbmFsbHksIGEgQ1NWIGZpbGVuYW1lCi0g IyBjYW4gYmUgc3BlY2lmaWVkIGFzIGFuIGFyZ3VtZW50LgotLW91dHB1dCBjc3Y6IGFzc2V0cy5j c3YKLStvdXRwdXQgY3N2OiAvZXRjL3BhZHMtYXNzZXRzLmNzdgotIAotICMgb3V0cHV0OiAgZmlm bwotICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcv c3JjL291dHB1dC9vdXRwdXQtY3N2LmMgcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQtY3N2LmMK LS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9vdXRwdXQvb3V0cHV0LWNzdi5jCTIwMDgtMDYtMzAgMTc6 NTQ6MzMuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQtY3N2 LmMJMjAwOC0wNy0wMSAxNTo1MzozMC4wMDAwMDAwMDAgLTA0MDAKLUBAIC0xMzAsNyArMTMwLDgg QEAgcmVhZF9yZXBvcnRfZmlsZSAodm9pZCkKLSAgICAgc3RydWN0IGJzdHJMaXN0ICpsaW5lczsK LSAgICAgaW50IGk7Ci0gCi0tICAgIHByaW50ZigiWy1dIFByb2Nlc3NpbmcgRXhpc3RpbmcgJXNc biIsIGJkYXRhKG91dHB1dF9jc3ZfY29uZi5maWxlbmFtZSkpOwotKwotKyAgICBsb2dfbWVzc2Fn ZSgiWy1dIFByb2Nlc3NpbmcgRXhpc3RpbmcgJXNcbiIsIGJkYXRhKG91dHB1dF9jc3ZfY29uZi5m aWxlbmFtZSkpOwotIAotICAgICAvKiBPcGVuIFNpZ25hdHVyZSBGaWxlICovCi0gICAgIGlmICgo ZnAgPSBmb3BlbigoY2hhciAqKWJkYXRhKG91dHB1dF9jc3ZfY29uZi5maWxlbmFtZSksICJyIikp ID09IE5VTEwpIHsKLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy9wYWRzLmMgcGFkcy0xLjIv c3JjL3BhZHMuYwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL3BhZHMuYwkyMDA4LTA2LTMwIDE3OjU0 OjMzLjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMtMS4yL3NyYy9wYWRzLmMJMjAwOC0wNy0wMSAx NTo1MzozMC4wMDAwMDAwMDAgLTA0MDAKLUBAIC0xOTUsNiArMTk1LDkgQEAgaW5pdF9wYWRzICh2 b2lkKQotICAgICAvKiBQcm9jZXNzIHRoZSBjb21tYW5kIGxpbmUgcGFyYW1ldGVycy4gKi8KLSAg ICAgcHJvY2Vzc19jbWRsaW5lKHByb2dfYXJnYywgcHJvZ19hcmd2KTsKLSAKLSsgICAgaWYgKCFn Yy5kYWVtb25fbW9kZSkKLSsgICAgICAgIHByaW50X2hlYWRlcigpOwotKwotICAgICAvKiBJbml0 aWFsaXplIE91dHB1dCBNb2R1bGUgKi8KLSAgICAgaW5pdF9vdXRwdXQoKTsKLSAKLUBAIC01MjMs NyArNTI2LDYgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQotICAgICBwcm9nX2FyZ3Yg PSBhcmd2OwotIAotICAgICAvKiBNYWluIFByb2dyYW0gKi8KLS0gICAgcHJpbnRfaGVhZGVyKCk7 Ci0gICAgIG1haW5fcGFkcygpOwotIAotICAgICByZXR1cm4oMCk7Ci1kaWZmIC11cnAgcGFkcy0x LjIub3JpZy9zcmMvdXRpbC5jIHBhZHMtMS4yL3NyYy91dGlsLmMKLS0tLSBwYWRzLTEuMi5vcmln L3NyYy91dGlsLmMJMjAwOC0wNy0wMSAxMjo0NjoxNS4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRz LTEuMi9zcmMvdXRpbC5jCTIwMDgtMDctMDEgMTU6NTM6MzAuMDAwMDAwMDAwIC0wNDAwCi1AQCAt ODUsNyArODUsOCBAQCBkYWVtb25pemUgKCkKLSB7Ci0gICAgIHBpZF90IHBpZDsKLSAKLS0gICAg cHJpbnRmKCJbLV0gRGFlbW9uaXppbmcuLi5cbiIpOwotKyAgICBpZiAoIWdjLmRhZW1vbl9tb2Rl KQotKyAgICAgICAgcHJpbnRmKCJbLV0gRGFlbW9uaXppbmcuLi5cbiIpOwotIAotICAgICBwaWQg PSBmb3JrKCk7Ci0gICAgIGlmIChwaWQgPiAwKSB7CgpkaWZmIC0tZ2l0IGEvcGFkcy0xLjItZGlz YWJsZS1kZWJ1Zy5wYXRjaCBiL3BhZHMtMS4yLWRpc2FibGUtZGVidWcucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmZDg2NjUuLjAwMDAwMDAKLS0tIGEvcGFkcy0xLjItZGlz YWJsZS1kZWJ1Zy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLWRpZmYgLXVy IHBhZHMtMS4yLm9yaWcvc3JjL2dsb2JhbC5oIHBhZHMtMS4yL3NyYy9nbG9iYWwuaAotLS0tIHBh ZHMtMS4yLm9yaWcvc3JjL2dsb2JhbC5oCTIwMDgtMDYtMzAgMTM6NTY6NTIuMDAwMDAwMDAwIC0w NDAwCi0rKysgcGFkcy0xLjIvc3JjL2dsb2JhbC5oCTIwMDgtMDctMDEgMTM6NTc6NTkuMDAwMDAw MDAwIC0wNDAwCi1AQCAtNDUsNyArNDUsNyBAQAotIAotICNkZWZpbmUgSV9BVFRFTVBUUyA0Ci0g Ci0tI2RlZmluZSBERUJVRwotKy8vI2RlZmluZSBERUJVRwotIAotICNkZWZpbmUgUEFEU19TSUdO QVRVUkVfTElTVCAicGFkcy1zaWduYXR1cmUtbGlzdCIKLSAjZGVmaW5lIFBBRFNfRVRIRVJfQ09E RVMgInBhZHMtZXRoZXItY29kZXMiCgpkaWZmIC0tZ2l0IGEvcGFkcy0xLjItZXRoZXItY29kZXMt dXBkYXRlLnBhdGNoIGIvcGFkcy0xLjItZXRoZXItY29kZXMtdXBkYXRlLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZDQ0OGRmLi4wMDAwMDAwCi0tLSBhL3BhZHMtMS4yLWV0 aGVyLWNvZGVzLXVwZGF0ZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYyMjMgKzAsMCBAQAot LS0tIHBhZHMtMS4yLm9yaWcvZXRjL3BhZHMtZXRoZXItY29kZXMJMjAwNS0wMi0xMCAwMTowNTow MS4wMDAwMDAwMDAgLTA1MDAKLSsrKyBwYWRzLTEuMi9ldGMvcGFkcy1ldGhlci1jb2RlcwkyMDA0 LTA3LTIwIDEwOjMzOjQyLjAwMDAwMDAwMCAtMDQwMAotQEAgLTMyLDcgKzQwLDcgQEAKLSAwMDow MDoxNCAgTmV0cm9uaXgKLSAwMDowMDoxNSAgRGF0YXBvaW50IENvcnBvcmF0aW9uCi0gMDA6MDA6 MTYgIER1IFBvbnQgUGl4ZWwgU3lzdGVtcyAgICAgLgotLTAwOjAwOjE3ICBQcml2YXRlCi0rMDA6 MDA6MTcgIFRla2VsZWMKLSAwMDowMDoxOCAgV2Vic3RlciBDb21wdXRlciBDb3Jwb3JhdGlvbgot IDAwOjAwOjE5ICBBcHBsaWVkIER5bmFtaWNzIEludGVybmF0aW9uYWwKLSAwMDowMDoxQSAgQWR2 YW5jZWQgTWljcm8gRGV2aWNlcwotQEAgLTQ3LDExICs1NSwxMSBAQAotIDAwOjAwOjIzICBBYmIg SW5kdXN0cmlhbCBTeXN0ZW1zIEFiCi0gMDA6MDA6MjQgIENvbm5lY3QgQXMKLSAwMDowMDoyNSAg UmFtdGVrIENvcnAuCi0tMDA6MDA6MjYgIFNoYS1rZW4gQ28uLCBMdGQuCi0rMDA6MDA6MjYgIFNo YS1LZW4gQ28uLCBMdGQuCi0gMDA6MDA6MjcgIEphcGFuIFJhZGlvIENvbXBhbnkKLSAwMDowMDoy OCAgUHJvZGlneSBTeXN0ZW1zIENvcnBvcmF0aW9uCi0gMDA6MDA6MjkgIEltYyBOZXR3b3JrcyBD b3JwLgotLTAwOjAwOjJBICBUcncgLSBTZWRkL2lucAotKzAwOjAwOjJBICBUcncgLSBTZWRkL0lu cAotIDAwOjAwOjJCICBDcmlzcCBBdXRvbWF0aW9uLCBJbmMKLSAwMDowMDoyQyAgQXV0b3RvdGUg TGltaXRlZAotIDAwOjAwOjJEICBDaHJvbWF0aWNzIEluYwotQEAgLTkxLDEwICs5OSwxMCBAQAot IDAwOjAwOjRGICBMb2dpY3JhZnQsIEluYy4KLSAwMDowMDo1MCAgUmFkaXN5cyBDb3Jwb3JhdGlv bgotIDAwOjAwOjUxICBIb2IgRWxlY3Ryb25pYyBHbWJoICYgQ28uIEtnCi0tMDA6MDA6NTIgIElu dHJ1c2lvbi5jb20sIEluYy4KLSswMDowMDo1MiAgSW50cnVzaW9uLkNvbSwgSW5jLgotIDAwOjAw OjUzICBDb21wdWNvcnAKLSAwMDowMDo1NCAgTW9kaWNvbiwgSW5jLgotLTAwOjAwOjU1ICBDb21t aXNzYXJpYXQgQSBMYGVuZXJnaWUgQXRvbS4KLSswMDowMDo1NSAgQ29tbWlzc2FyaWF0IEEgTGBF bmVyZ2llIEF0b20uCi0gMDA6MDA6NTYgIERyLiBCLiBTdHJ1Y2sKLSAwMDowMDo1NyAgU2NpdGV4 IENvcnBvcmF0aW9uIEx0ZC4KLSAwMDowMDo1OCAgUmFjb3JlIENvbXB1dGVyIFByb2R1Y3RzIElu Yy4KLUBAIC0xMDgsNyArMTE2LDcgQEAKLSAwMDowMDo2MCAgS29udHJvbiBFbGVrdHJvbmlrIEdt YmgKLSAwMDowMDo2MSAgR2F0ZXdheSBDb21tdW5pY2F0aW9ucwotIDAwOjAwOjYyICBCdWxsIEhu IEluZm9ybWF0aW9uIFN5c3RlbXMKLS0wMDowMDo2MyAgRHIuaW5nLnNldWZlcnQgR21iaAotKzAw OjAwOjYzICBEci5JbmcuU2V1ZmVydCBHbWJoCi0gMDA6MDA6NjQgIFlva29nYXdhIERpZ2l0YWwg Q29tcHV0ZXIgQ29ycAotIDAwOjAwOjY1ICBOZXR3b3JrIEFzc29jaWF0ZXMsIEluYy4KLSAwMDow MDo2NiAgVGFsYXJpcyBTeXN0ZW1zLCBJbmMuCi1AQCAtMTE2LDExICsxMjQsMTEgQEAKLSAwMDow MDo2OCAgUm9zZW1vdW50IENvbnRyb2xzCi0gMDA6MDA6NjkgIENvbmNvcmQgQ29tbXVuaWNhdGlv bnMgSW5jCi0gMDA6MDA6NkEgIENvbXB1dGVyIENvbnNvbGVzIEluYy4KLS0wMDowMDo2QiAgU2ls aWNvbiBHcmFwaGljcyBJbmMuL21pcHMKLSswMDowMDo2QiAgU2lsaWNvbiBHcmFwaGljcyBJbmMu L01pcHMKLSAwMDowMDo2QyAgUHJpdmF0ZQotIDAwOjAwOjZEICBDcmF5IENvbW11bmljYXRpb25z LCBMdGQuCi0gMDA6MDA6NkUgIEFydGlzb2Z0LCBJbmMuCi0tMDA6MDA6NkYgIE1hZGdlIE5ldHdv cmtzIEx0ZC4KLSswMDowMDo2RiAgTWFkZ2UgTHRkLgotIDAwOjAwOjcwICBIY2wgTGltaXRlZAot IDAwOjAwOjcxICBBZHJhIFN5c3RlbXMgSW5jLgotIDAwOjAwOjcyICBNaW5pd2FyZSBUZWNobm9s b2d5Ci1AQCAtMTM2LDggKzE0NCw4IEBACi0gMDA6MDA6N0MgIEFtcGVyZSBJbmNvcnBvcmF0ZWQK LSAwMDowMDo3RCAgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLgotIDAwOjAwOjdFICBDbHVzdHJpeCBD b3Jwb3JhdGlvbgotLTAwOjAwOjdGICBMaW5vdHlwZS1oZWxsIEFnCi0tMDA6MDA6ODAgIENyYXkg Q29tbXVuaWNhdGlvbnMgQS9zCi0rMDA6MDA6N0YgIExpbm90eXBlLUhlbGwgQWcKLSswMDowMDo4 MCAgQ3JheSBDb21tdW5pY2F0aW9ucyBBL1MKLSAwMDowMDo4MSAgQmF5IE5ldHdvcmtzCi0gMDA6 MDA6ODIgIExlY3RyYSBTeXN0ZW1lcyBTYQotIDAwOjAwOjgzICBUYWRwb2xlIFRlY2hub2xvZ3kg UGxjCi1AQCAtMTQ5LDcgKzE1Nyw3IEBACi0gMDA6MDA6ODkgIENheW1hbiBTeXN0ZW1zIEluYy4K LSAwMDowMDo4QSAgRGF0YWhvdXNlIEluZm9ybWF0aW9uIFN5c3RlbXMKLSAwMDowMDo4QiAgSW5m b3Ryb24KLS0wMDowMDo4QyAgQWxsb3kgQ29tcHV0ZXIgUHJvZHVjdHMgKGF1c3RyYWxpYSkgUHR5 IEx0ZAotKzAwOjAwOjhDICBBbGxveSBDb21wdXRlciBQcm9kdWN0cyAoQXVzdHJhbGlhKSBQdHkg THRkCi0gMDA6MDA6OEQgIFZlcmRpeCBDb3Jwb3JhdGlvbgotIDAwOjAwOjhFICBTb2xib3VybmUg Q29tcHV0ZXIsIEluYy4KLSAwMDowMDo4RiAgUmF5dGhlb24gQ29tcGFueQotQEAgLTE2MywxMSAr MTcxLDExIEBACi0gMDA6MDA6OTcgIEVwb2NoIFN5c3RlbXMKLSAwMDowMDo5OCAgQ3Jvc3Njb21t IENvcnBvcmF0aW9uCi0gMDA6MDA6OTkgIE10eCwgSW5jLgotLTAwOjAwOjlBICBSYyBDb21wdXRl ciBBL3MKLSswMDowMDo5QSAgUmMgQ29tcHV0ZXIgQS9TCi0gMDA6MDA6OUIgIEluZm9ybWF0aW9u IEludGVybmF0aW9uYWwsIEluYwotLTAwOjAwOjlDICBSb2xtIE1pbC1zcGVjIENvbXB1dGVycwot KzAwOjAwOjlDICBSb2xtIE1pbC1TcGVjIENvbXB1dGVycwotIDAwOjAwOjlEICBMb2N1cyBDb21w dXRpbmcgQ29ycG9yYXRpb24KLS0wMDowMDo5RSAgTWFybGkgUy5hLgotKzAwOjAwOjlFICBNYXJs aSBTLkEuCi0gMDA6MDA6OUYgIEFtZXJpc3RhciBUZWNobm9sb2dpZXMgSW5jLgotIDAwOjAwOkEw ICBUb2t5byBTYW55byBFbGVjdHJpYyBDby4gTHRkLgotIDAwOjAwOkExICBNYXJxdWV0dGUgRWxl Y3RyaWMgQ28uCi1AQCAtMTg1LDM0ICsxOTMsMzQgQEAKLSAwMDowMDpBRCAgQnJ1a2VyIEluc3Ry dW1lbnRzIEluYy4KLSAwMDowMDpBRSAgRGFzc2F1bHQgRWxlY3Ryb25pcXVlCi0gMDA6MDA6QUYg IE51Y2xlYXIgRGF0YSBJbnN0cnVtZW50YXRpb24KLS0wMDowMDpCMCAgUm5kLXJhZCBOZXR3b3Jr IERldmljZXMKLSswMDowMDpCMCAgUm5kLVJhZCBOZXR3b3JrIERldmljZXMKLSAwMDowMDpCMSAg QWxwaGEgTWljcm9zeXN0ZW1zIEluYy4KLSAwMDowMDpCMiAgVGVsZXZpZGVvIFN5c3RlbXMsIElu Yy4KLSAwMDowMDpCMyAgQ2ltbGluYyBJbmNvcnBvcmF0ZWQKLSAwMDowMDpCNCAgRWRpbWF4IENv bXB1dGVyIENvbXBhbnkKLSAwMDowMDpCNSAgRGF0YWJpbGl0eSBTb2Z0d2FyZSBTeXMuIEluYy4K LS0wMDowMDpCNiAgTWljcm8tbWF0aWMgUmVzZWFyY2gKLSswMDowMDpCNiAgTWljcm8tTWF0aWMg UmVzZWFyY2gKLSAwMDowMDpCNyAgRG92ZSBDb21wdXRlciBDb3Jwb3JhdGlvbgotIDAwOjAwOkI4 ICBTZWlrb3NoYSBDby4sIEx0ZC4KLSAwMDowMDpCOSAgTWNkb25uZWxsIERvdWdsYXMgQ29tcHV0 ZXIgU3lzCi0gMDA6MDA6QkEgIFNpaWcsIEluYy4KLS0wMDowMDpCQiAgVHJpLWRhdGEKLS0wMDow MDpCQyAgQWxsZW4tYnJhZGxleSBDby4gSW5jLgotKzAwOjAwOkJCICBUcmktRGF0YQotKzAwOjAw OkJDICBBbGxlbi1CcmFkbGV5IENvLiBJbmMuCi0gMDA6MDA6QkQgIE1pdHN1YmlzaGkgQ2FibGUg Q29tcGFueQotIDAwOjAwOkJFICBUaGUgTnRpIEdyb3VwCi0gMDA6MDA6QkYgIFN5bW1ldHJpYyBD b21wdXRlciBTeXN0ZW1zCi0gMDA6MDA6QzAgIFdlc3Rlcm4gRGlnaXRhbCBDb3Jwb3JhdGlvbgot LTAwOjAwOkMxICBNYWRnZSBOZXR3b3JrcyBMdGQuCi0rMDA6MDA6QzEgIE1hZGdlIEx0ZC4KLSAw MDowMDpDMiAgSW5mb3JtYXRpb24gUHJlc2VudGF0aW9uIFRlY2guCi0gMDA6MDA6QzMgIEhhcnJp cyBDb3JwIENvbXB1dGVyIFN5cyBEaXYKLSAwMDowMDpDNCAgV2F0ZXJzIERpdi4gT2YgTWlsbGlw b3JlCi0tMDA6MDA6QzUgIEZhcmFsbG9uIENvbXB1dGluZy9uZXRvcGlhCi0rMDA6MDA6QzUgIEZh cmFsbG9uIENvbXB1dGluZy9OZXRvcGlhCi0gMDA6MDA6QzYgIEVvbiBTeXN0ZW1zCi0gMDA6MDA6 QzcgIEFyaXggQ29ycG9yYXRpb24KLSAwMDowMDpDOCAgQWx0b3MgQ29tcHV0ZXIgU3lzdGVtcwot IDAwOjAwOkM5ICBFbXVsZXggQ29ycG9yYXRpb24KLSAwMDowMDpDQSAgQXBwbGl0ZWsKLS0wMDow MDpDQiAgQ29tcHUtc2hhY2sgRWxlY3Ryb25pYyBHbWJoCi0rMDA6MDA6Q0IgIENvbXB1LVNoYWNr IEVsZWN0cm9uaWMgR21iaAotIDAwOjAwOkNDICBEZW5zYW4gQ28uLCBMdGQuCi0gMDA6MDA6Q0Qg IEFsbGllZCBUZWxlc3luIFJlc2VhcmNoIEx0ZC4KLSAwMDowMDpDRSAgTWVnYWRhdGEgQ29ycC4K LUBAIC0yNjcsOCArMjc1LDggQEAKLSAwMDowMDpGRiAgQ2FtdGVjIEVsZWN0cm9uaWNzIEx0ZC4K LSAwMDowMTowMCAgRXF1aXAndHJhbnMKLSAwMDowMTowMSAgUHJpdmF0ZQotLTAwOjAxOjAyICAz Y29tIENvcnBvcmF0aW9uCi0tMDA6MDE6MDMgIDNDb20gM0NSV0U2MjA5MkEKLSswMDowMTowMiAg M0NvbSBDb3Jwb3JhdGlvbgotKzAwOjAxOjAzICAzQ29tIENvcnBvcmF0aW9uCi0gMDA6MDE6MDQg IER2aWNvIENvLiwgTHRkLgotIDAwOjAxOjA1ICBCZWNraG9mZiBHbWJoCi0gMDA6MDE6MDYgIFRl d3MgRGF0ZW50ZWNobmlrIEdtYmgKLUBAIC0yNzksMTIgKzI4NywxMiBAQAotIDAwOjAxOjBCICBT cGFjZSBDeWJlcmxpbmssIEluYy4KLSAwMDowMTowQyAgU3lzdGVtIFRhbGtzIEluYy4KLSAwMDow MTowRCAgQ29yZWNvLCBJbmMuCi0tMDA6MDE6MEUgIEJyaS1saW5rIFRlY2hub2xvZ2llcyBDby4s IEx0ZAotKzAwOjAxOjBFICBCcmktTGluayBUZWNobm9sb2dpZXMgQ28uLCBMdGQKLSAwMDowMTow RiAgTmlzaGFuIFN5c3RlbXMsIEluYy4KLSAwMDowMToxMCAgR290aGFtIE5ldHdvcmtzCi0gMDA6 MDE6MTEgIElkaWdtIEluYy4KLSAwMDowMToxMiAgU2hhcmsgTXVsdGltZWRpYSBJbmMuCi0tMDA6 MDE6MTMgIE9seW1wdXMgT3B0aWNhbCBDby4sIEx0ZC4KLSswMDowMToxMyAgT2x5bXB1cyBDb3Jw b3JhdGlvbgotIDAwOjAxOjE0ICBLYW5kYSBUc3VzaGluIEtvZ3lvIENvLiwgTHRkLgotIDAwOjAx OjE1ICBFeHRyYXRlY2ggQ29ycG9yYXRpb24KLSAwMDowMToxNiAgTmV0c3BlY3QgVGVjaG5vbG9n aWVzLCBJbmMuCi1AQCAtMjk3LDggKzMwNSw4IEBACi0gMDA6MDE6MUQgIENlbnRpbGxpdW0gQ29t bXVuaWNhdGlvbnMKLSAwMDowMToxRSAgUHJlY2lkaWEgVGVjaG5vbG9naWVzLCBJbmMuCi0gMDA6 MDE6MUYgIFJjIE5ldHdvcmtzLCBJbmMuCi0tMDA6MDE6MjAgIE9zY2lsbG9xdWFydHogUy5hLgot LTAwOjAxOjIxICBSYXBpZHN0cmVhbSBJbmMuCi0rMDA6MDE6MjAgIE9zY2lsbG9xdWFydHogUy5B LgotKzAwOjAxOjIxICBXYXRjaGd1YXJkIFRlY2hub2xvZ2llcywgSW5jLgotIDAwOjAxOjIyICBU cmVuZCBDb21tdW5pY2F0aW9ucywgTHRkLgotIDAwOjAxOjIzICBEaWdpdGFsIEVsZWN0cm9uaWNz IENvcnAuCi0gMDA6MDE6MjQgIEFjZXIgSW5jb3Jwb3JhdGVkCi1AQCAtMzM3LDkgKzM0NSw5IEBA Ci0gMDA6MDE6NDUgIFdpbnN5c3RlbXMsIEluYy4KLSAwMDowMTo0NiAgVGVzY28gQ29udHJvbHMs IEluYy4KLSAwMDowMTo0NyAgWmhvbmUgVGVjaG5vbG9naWVzCi0tMDA6MDE6NDggIFgtdHJhd2Vi IEluYy4KLS0wMDowMTo0OSAgVC5kLnQuIFRyYW5zZmVyIERhdGEgVGVzdCBHbWJoCi0tMDA6MDE6 NEEgIFNvbnkgQ29tcHV0ZXIgU2NpZW5jZSBMYWJzLiwgSQotKzAwOjAxOjQ4ICBYLVRyYXdlYiBJ bmMuCi0rMDA6MDE6NDkgIFQuRC5ULiBUcmFuc2ZlciBEYXRhIFRlc3QgR21iaAotKzAwOjAxOjRB ICBTb255IENvcnBvcmF0aW9uCi0gMDA6MDE6NEIgIEVubm92YXRlIE5ldHdvcmtzLCBJbmMuCi0g MDA6MDE6NEMgIEJlcmtlbGV5IFByb2Nlc3MgQ29udHJvbAotIDAwOjAxOjREICBTaGluIEtpbiBF bnRlcnByaXNlcyBDby4sIEx0ZAotQEAgLTM0OSwxNiArMzU3LDE2IEBACi0gMDA6MDE6NTEgIEVu c2VtYmxlIENvbW11bmljYXRpb25zCi0gMDA6MDE6NTIgIENocm9tYXRlayBJbmMuCi0gMDA6MDE6 NTMgIEFyY2h0ZWsgVGVsZWNvbSBDb3Jwb3JhdGlvbgotLTAwOjAxOjU0ICBHM20gQ29ycG9yYXRp b24KLSswMDowMTo1NCAgRzNNIENvcnBvcmF0aW9uCi0gMDA6MDE6NTUgIFByb21pc2UgVGVjaG5v bG9neSwgSW5jLgotLTAwOjAxOjU2ICBGaXJld2lyZWRpcmVjdC5jb20sIEluYy4KLSswMDowMTo1 NiAgRmlyZXdpcmVkaXJlY3QuQ29tLCBJbmMuCi0gMDA6MDE6NTcgIFN5c3dhdmUgQ28uLCBMdGQK LS0wMDowMTo1OCAgRWxlY3RybyBJbmR1c3RyaWVzL2dhdWdlIFRlY2gKLSswMDowMTo1OCAgRWxl Y3RybyBJbmR1c3RyaWVzL0dhdWdlIFRlY2gKLSAwMDowMTo1OSAgUzEgQ29ycG9yYXRpb24KLSAw MDowMTo1QSAgRGlnaXRhbCBWaWRlbyBCcm9hZGNhc3RpbmcKLS0wMDowMTo1QiAgSXRhbHRlbCBT LnAuYS9yZi11cC1pCi0rMDA6MDE6NUIgIEl0YWx0ZWwgUy5QLkEvUmYtVXAtSQotIDAwOjAxOjVD ICBDYWRhbnQgSW5jLgotLTAwOjAxOjVEICBQaXJ1cyBOZXR3b3JrcwotKzAwOjAxOjVEICBTdW4g TWljcm9zeXN0ZW1zLCBJbmMKLSAwMDowMTo1RSAgQmVzdCBUZWNobm9sb2d5IENvLiwgTHRkLgot IDAwOjAxOjVGICBEaWdpdGFsIERlc2lnbiBHbWJoCi0gMDA6MDE6NjAgIEVsbWV4IENvLiwgTHRk LgotQEAgLTM2NywxNCArMzc1LDE0IEBACi0gMDA6MDE6NjMgIENpc2NvIFN5c3RlbXMsIEluYy4K LSAwMDowMTo2NCAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAwOjAxOjY1ICBBaXJzd2l0Y2ggQ29y cG9yYXRpb24KLS0wMDowMTo2NiAgVGMgR3JvdXAgQS9zCi0tMDA6MDE6NjcgIEhpb2tpIEUuZS4g Q29ycG9yYXRpb24KLSswMDowMTo2NiAgVGMgR3JvdXAgQS9TCi0rMDA6MDE6NjcgIEhpb2tpIEUu RS4gQ29ycG9yYXRpb24KLSAwMDowMTo2OCAgVml0YW5hIENvcnBvcmF0aW9uCi0gMDA6MDE6Njkg IENlbGVzdGl4IE5ldHdvcmtzIFB0ZSBMdGQuCi0gMDA6MDE6NkEgIEFsaXRlYwotIDAwOjAxOjZC ICBMaWdodGNoaXAsIEluYy4KLSAwMDowMTo2QyAgRm94Y29ubgotLTAwOjAxOjZEICBUcml0b24g TmV0d29yayBTeXN0ZW1zCi0rMDA6MDE6NkQgIENhcnJpZXJjb21tIEluYy4KLSAwMDowMTo2RSAg Q29ua2xpbiBDb3Jwb3JhdGlvbgotIDAwOjAxOjZGICBIYWl0YWkgRWxlY3Ryb25pY3MgQ28uLCBM dGQuCi0gMDA6MDE6NzAgIEVzZSBFbWJlZGRlZCBTeXN0ZW0gRW5naW5lZXInZwotQEAgLTM4OSw3 ICszOTcsNyBAQAotIDAwOjAxOjc5ICBXaXJlbGVzcyBUZWNobm9sb2d5LCBJbmMuCi0gMDA6MDE6 N0EgIENoZW5nZHUgTWFpcHUgRWxlY3RyaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KLSAwMDowMTo3 QiAgSGVpZGVsYmVyZ2VyIERydWNrbWFzY2hpbmVuIEFnCi0tMDA6MDE6N0MgIEFnLWUgR21iaAot KzAwOjAxOjdDICBBZy1FIEdtYmgKLSAwMDowMTo3RCAgVGhlcm1vcXVlc3QKLSAwMDowMTo3RSAg QWR0ZWsgU3lzdGVtIFNjaWVuY2UgQ28uLCBMdGQuCi0gMDA6MDE6N0YgIEV4cGVyaWVuY2UgTXVz aWMgUHJvamVjdAotQEAgLTQwMCw3ICs0MDgsNyBAQAotIDAwOjAxOjg0ICBTaWViICYgTWV5ZXIg QWcKLSAwMDowMTo4NSAgQWxva2EgQ28uLCBMdGQuCi0gMDA6MDE6ODYgIERpc2NoIEdtYmgKLS0w MDowMTo4NyAgSTJzZSBHbWJoCi0rMDA6MDE6ODcgIEkyU2UgR21iaAotIDAwOjAxOjg4ICBMeGNv IFRlY2hub2xvZ2llcyBBZwotIDAwOjAxOjg5ICBSZWZyYWN0aW9uIFRlY2hub2xvZ3ksIEluYy4K LSAwMDowMTo4QSAgUm9pIENvbXB1dGVyIEFnCi1AQCAtNDA5LDcgKzQxNyw3IEBACi0gMDA6MDE6 OEQgIEF1ZGVzaSBUZWNobm9sb2dpZXMKLSAwMDowMTo4RSAgTG9naXRlYyBDb3Jwb3JhdGlvbgot IDAwOjAxOjhGICBLZW5ldGVjLCBJbmMuCi0tMDA6MDE6OTAgIFNtay1tCi0rMDA6MDE6OTAgIFNt ay1NCi0gMDA6MDE6OTEgIFN5cmVkIERhdGEgU3lzdGVtcwotIDAwOjAxOjkyICBUZXhhcyBEaWdp dGFsIFN5c3RlbXMKLSAwMDowMTo5MyAgSGFuYnl1bCBUZWxlY29tIENvLiwgTHRkLgotQEAgLTQy MiwyMyArNDMwLDIzIEBACi0gMDA6MDE6OUEgIExldW5pZyBHbWJoCi0gMDA6MDE6OUIgIEt5b3Rv IE1pY3JvY29tcHV0ZXIgQ28uLCBMdGQuCi0gMDA6MDE6OUMgIEpkcyBVbmlwaGFzZSBJbmMuCi0t MDA6MDE6OUQgIEUtY29udHJvbCBTeXN0ZW1zLCBJbmMuCi0rMDA6MDE6OUQgIEUtQ29udHJvbCBT eXN0ZW1zLCBJbmMuCi0gMDA6MDE6OUUgIEVzcyBUZWNobm9sb2d5LCBJbmMuCi0gMDA6MDE6OUYg IFBob25leCBCcm9hZGJhbmQKLSAwMDowMTpBMCAgSW5maW5pbGluayBDb3Jwb3JhdGlvbgotLTAw OjAxOkExICBNYWctdGVrLCBJbmMuCi0rMDA6MDE6QTEgIE1hZy1UZWssIEluYy4KLSAwMDowMTpB MiAgTG9naWNhbCBDby4sIEx0ZC4KLSAwMDowMTpBMyAgR2VuZXN5cyBMb2dpYywgSW5jLgotIDAw OjAxOkE0ICBNaWNyb2xpbmsgQ29ycG9yYXRpb24KLSAwMDowMTpBNSAgTmV4dGNvbW0sIEluYy4K LS0wMDowMTpBNiAgU2NpZW50aWZpYy1hdGxhbnRhIEFyY29kYW4gQS9zCi0rMDA6MDE6QTYgIFNj aWVudGlmaWMtQXRsYW50YSBBcmNvZGFuIEEvUwotIDAwOjAxOkE3ICBVbmV4IFRlY2hub2xvZ3kg Q29ycG9yYXRpb24KLSAwMDowMTpBOCAgV2VsbHRlY2ggQ29tcHV0ZXIgQ28uLCBMdGQuCi0gMDA6 MDE6QTkgIEJtdyBBZwotIDAwOjAxOkFBICBBaXJzcGFuIENvbW11bmljYXRpb25zLCBMdGQuCi0g MDA6MDE6QUIgIE1haW4gU3RyZWV0IE5ldHdvcmtzCi0gMDA6MDE6QUMgIFNpdGFyYSBOZXR3b3Jr cywgSW5jLgotLTAwOjAxOkFEICBDb2FjaCBNYXN0ZXIgSW50ZXJuYXRpb25hbCAgRC5iLmEuIENt aSBXb3JsZHdpZGUsIEluYy4KLSswMDowMTpBRCAgQ29hY2ggTWFzdGVyIEludGVybmF0aW9uYWwg IEQuQi5BLiBDbWkgV29ybGR3aWRlLCBJbmMuCi0gMDA6MDE6QUUgIFRyZXggRW50ZXJwcmlzZXMK LSAwMDowMTpBRiAgTW90b3JvbGEgQ29tcHV0ZXIgR3JvdXAKLSAwMDowMTpCMCAgRnVsbHRlayBU ZWNobm9sb2d5IENvLiwgTHRkLgotQEAgLTQ0NywyOCArNDU1LDI5IEBACi0gMDA6MDE6QjMgIFBy ZWNpc2lvbiBFbGVjdHJvbmljIE1hbnVmYWN0dXJpbmcKLSAwMDowMTpCNCAgV2F5cG9ydCwgSW5j LgotIDAwOjAxOkI1ICBUdXJpbiBOZXR3b3JrcywgSW5jLgotLTAwOjAxOkI2ICBTYWVqaW4gVCZt IENvLiwgTHRkLgotKzAwOjAxOkI2ICBTYWVqaW4gVCZNIENvLiwgTHRkLgotIDAwOjAxOkI3ICBD ZW50b3MsIEluYy4KLSAwMDowMTpCOCAgTmV0c2Vuc2l0eSwgSW5jLgotIDAwOjAxOkI5ICBTa2Yg Q29uZGl0aW9uIE1vbml0b3JpbmcKLS0wMDowMTpCQSAgSWMtbmV0LCBJbmMuCi0rMDA6MDE6QkEg IEljLU5ldCwgSW5jLgotIDAwOjAxOkJCICBGcmVxdWVudGlzCi0gMDA6MDE6QkMgIEJyYWlucyBD b3Jwb3JhdGlvbgotLTAwOjAxOkJEICBQZXRlcnNvbiBFbGVjdHJvLW11c2ljYWwgUHJvZHVjdHMs IEluYy4KLSswMDowMTpCRCAgUGV0ZXJzb24gRWxlY3Ryby1NdXNpY2FsIFByb2R1Y3RzLCBJbmMu Ci0gMDA6MDE6QkUgIEdpZ2FsaW5rIENvLiwgTHRkLgotIDAwOjAxOkJGICBUZWxlZm9yY2UgQ28u LCBMdGQuCi0gMDA6MDE6QzAgIENvbXB1bGFiLCBMdGQuCi0tMDA6MDE6QzEgIEV4Yml0IFRlY2hu b2xvZ3kKLSswMDowMTpDMSAgVml0ZXNzZSBTZW1pY29uZHVjdG9yIENvcnBvcmF0aW9uCi0gMDA6 MDE6QzIgIEFyayBSZXNlYXJjaCBDb3JwLgotIDAwOjAxOkMzICBBY3JvbWFnLCBJbmMuCi0gMDA6 MDE6QzQgIE5lb3dhdmUsIEluYy4KLSAwMDowMTpDNSAgU2ltcGxlciBOZXR3b3JrcwotIDAwOjAx OkM2ICBRdWFycnkgVGVjaG5vbG9naWVzCi0gMDA6MDE6QzcgIENpc2NvIFN5c3RlbXMsIEluYy4K LSswMDowMTpDOCAgVGhvbWFzIENvbnJhZCBDb3JwLgotIDAwOjAxOkM4ICBDb25yYWQgQ29ycC4K LSAwMDowMTpDOSAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAwOjAxOkNBICBHZW9jYXN0IE5ldHdv cmsgU3lzdGVtcywgSW5jLgotLTAwOjAxOkNCICBOZXRnYW1lLCBMdGQuCi0rMDA6MDE6Q0IgIEV2 cgotIDAwOjAxOkNDICBKYXBhbiBUb3RhbCBEZXNpZ24gQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4K LSAwMDowMTpDRCAgQXJ0ZW0KLSAwMDowMTpDRSAgQ3VzdG9tIE1pY3JvIFByb2R1Y3RzLCBMdGQu Ci1AQCAtNDk1LDEyICs1MDQsMTIgQEAKLSAwMDowMTpFMyAgU2llbWVucyBBZwotIDAwOjAxOkU0 ICBTaXRlcmEsIEluYy4KLSAwMDowMTpFNSAgU3VwZXJuZXQsIEluYy4KLS0wMDowMTpFNiAgSGV3 bGV0dC1wYWNrYXJkIENvbXBhbnkKLS0wMDowMTpFNyAgSGV3bGV0dC1wYWNrYXJkIENvbXBhbnkK LSswMDowMTpFNiAgSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKLSswMDowMTpFNyAgSGV3bGV0dC1Q YWNrYXJkIENvbXBhbnkKLSAwMDowMTpFOCAgRm9yY2UxMCBOZXR3b3JrcywgSW5jLgotLTAwOjAx OkU5ICBMaXR0b24gTWFyaW5lIFN5c3RlbXMgQi52LgotKzAwOjAxOkU5ICBMaXR0b24gTWFyaW5l IFN5c3RlbXMgQi5WLgotIDAwOjAxOkVBICBDaXJpbGl1bSBDb3JwLgotLTAwOjAxOkVCICBDLWNv bSBDb3Jwb3JhdGlvbgotKzAwOjAxOkVCICBDLUNvbSBDb3Jwb3JhdGlvbgotIDAwOjAxOkVDICBF cmljc3NvbiBHcm91cAotIDAwOjAxOkVEICBTZXRhIENvcnAuCi0gMDA6MDE6RUUgIENvbXRyb2wg RXVyb3BlLCBMdGQuCi1AQCAtNTEwLDcgKzUxOSw3IEBACi0gMDA6MDE6RjIgIE1hcmsgT2YgVGhl IFVuaWNvcm4sIEluYy4KLSAwMDowMTpGMyAgUXBzLCBJbmMuCi0gMDA6MDE6RjQgIEVudGVyYXN5 cyBOZXR3b3JrcwotLTAwOjAxOkY1ICBFcmltIFMuYS4KLSswMDowMTpGNSAgRXJpbSBTLkEuCi0g MDA6MDE6RjYgIEFzc29jaWF0aW9uIE9mIE11c2ljYWwgRWxlY3Ryb25pY3MgSW5kdXN0cnkKLSAw MDowMTpGNyAgSW1hZ2UgRGlzcGxheSBTeXN0ZW1zLCBJbmMuCi0gMDA6MDE6RjggIEFkaGVyZW50 IFN5c3RlbXMsIEx0ZC4KLUBAIC01MjcsMzEgKzUzNiwzMSBAQAotIDAwOjAyOjAzICBXb29uc2Fu ZyBUZWxlY29tLCBJbmMuCi0gMDA6MDI6MDQgIEJvZG1hbm4gSW5kdXN0cmllcyBFbGVrdHJvbmlr IEdtYmgKLSAwMDowMjowNSAgSGl0YWNoaSBEZW5zaGksIEx0ZC4KLS0wMDowMjowNiAgVGVsaXRh bCBSJmQgRGVubWFyayBBL3MKLS0wMDowMjowNyAgUHJpdmF0ZQotKzAwOjAyOjA2ICBUZWxpdGFs IFImRCBEZW5tYXJrIEEvUwotKzAwOjAyOjA3ICBWaXNpb25nbG9iYWwgTmV0d29yayBDb3JwLgot IDAwOjAyOjA4ICBVbmlmeSBOZXR3b3JrcywgSW5jLgotIDAwOjAyOjA5ICBTaGVuemhlbiBTZWQg SW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KLSAwMDowMjowQSAgR2VmcmFuIFNwYQot IDAwOjAyOjBCICBOYXRpdmUgTmV0d29ya3MsIEluYy4KLS0wMDowMjowQyAgTWV0cm8tb3B0aXgK LS0wMDowMjowRCAgTWljcm9ucGMuY29tCi0rMDA6MDI6MEMgIE1ldHJvLU9wdGl4Ci0rMDA6MDI6 MEQgIE1pY3JvbnBjLkNvbQotIDAwOjAyOjBFICBMYXVyZWwgTmV0d29ya3MsIEluYy4KLSAwMDow MjowRiAgQWF0cgotIDAwOjAyOjEwICBGZW5lY29tCi0gMDA6MDI6MTEgIE5hdHVyZSBXb3JsZHdp ZGUgVGVjaG5vbG9neSBDb3JwLgotIDAwOjAyOjEyICBTaWVycmFjb20KLS0wMDowMjoxMyAgUy5k LmUubC4KLSswMDowMjoxMyAgUy5ELkUuTC4KLSAwMDowMjoxNCAgRHR2cm8KLS0wMDowMjoxNSAg Q290YXMgQ29tcHV0ZXIgVGVjaG5vbG9neSBBL2IKLSswMDowMjoxNSAgQ290YXMgQ29tcHV0ZXIg VGVjaG5vbG9neSBBL0IKLSAwMDowMjoxNiAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAwOjAyOjE3 ICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi0gMDA6MDI6MTggIEFkdmFuY2VkIFNjaWVudGlmaWMgQ29y cAotIDAwOjAyOjE5ICBQYXJhbG9uIFRlY2hub2xvZ2llcwotIDAwOjAyOjFBICBadW1hIE5ldHdv cmtzCi0tMDA6MDI6MUIgIEtvbGxtb3JnZW4tc2Vydm90cm9uaXgKLSswMDowMjoxQiAgS29sbG1v cmdlbi1TZXJ2b3Ryb25peAotIDAwOjAyOjFDICBOZXR3b3JrIEVsZW1lbnRzLCBJbmMuCi0gMDA6 MDI6MUQgIERhdGEgR2VuZXJhbCBDb21tdW5pY2F0aW9uIEx0ZC4KLS0wMDowMjoxRSAgU2ltdGVs IFMuci5sLgotKzAwOjAyOjFFICBTaW10ZWwgUy5SLkwuCi0gMDA6MDI6MUYgIEFjdWxhYiBQbGMK LSAwMDowMjoyMCAgQ2Fub24gQXB0ZXgsIEluYy4KLSAwMDowMjoyMSAgRHNwIEFwcGxpY2F0aW9u LCBMdGQuCi1AQCAtNTY4LDkgKzU3Nyw5IEBACi0gMDA6MDI6MkMgIEFiYiBCb21lbSwgSW5jLgot IDAwOjAyOjJEICBBZ2VyZSBTeXN0ZW1zCi0gMDA6MDI6MkUgIFRlYWMgQ29ycC4gUiYgRAotLTAw OjAyOjJGICBQLWN1YmUsIEx0ZC4KLSswMDowMjoyRiAgUC1DdWJlLCBMdGQuCi0gMDA6MDI6MzAg IEludGVyc29mdCBFbGVjdHJvbmljcwotLTAwOjAyOjMxICBJbmdlcnNvbGwtcmFuZAotKzAwOjAy OjMxICBJbmdlcnNvbGwtUmFuZAotIDAwOjAyOjMyICBBdmlzaW9uLCBJbmMuCi0gMDA6MDI6MzMg IE1hbnRyYSBDb21tdW5pY2F0aW9ucywgSW5jLgotIDAwOjAyOjM0ICBJbXBlcmlhbCBUZWNobm9s b2d5LCBJbmMuCi1AQCAtNTgzLDE2ICs1OTIsMTYgQEAKLSAwMDowMjozQiAgUmVkYmFjayBOZXR3 b3JrcwotIDAwOjAyOjNDICBDcmVhdGl2ZSBUZWNobm9sb2d5LCBMdGQuCi0gMDA6MDI6M0QgIE51 c3BlZWQsIEluYy4KLS0wMDowMjozRSAgU2VsdGEgVGVsZW1hdGljYSBTLnAuYQotKzAwOjAyOjNF ICBTZWx0YSBUZWxlbWF0aWNhIFMuUC5BCi0gMDA6MDI6M0YgIENvbXBhbCBFbGVjdHJvbmljcywg SW5jLgotIDAwOjAyOjQwICBTZWVkZWsgQ28uLCBMdGQuCi0tMDA6MDI6NDEgIEFtZXIuY29tCi0r MDA6MDI6NDEgIEFtZXIuQ29tCi0gMDA6MDI6NDIgIFZpZGVvZnJhbWUgU3lzdGVtcwotIDAwOjAy OjQzICBSYXlzaXMgQ28uLCBMdGQuCi0gMDA6MDI6NDQgIFN1cmVjb20gVGVjaG5vbG9neSBDby4K LSAwMDowMjo0NSAgTGFtcHVzIENvLCBMdGQuCi0tMDA6MDI6NDYgIEFsbC13aW4gVGVjaCBDby4s IEx0ZC4KLS0wMDowMjo0NyAgR3JlYXQgRHJhZ29uIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKGdy b3VwKSBDby4sIEx0ZC4KLSswMDowMjo0NiAgQWxsLVdpbiBUZWNoIENvLiwgTHRkLgotKzAwOjAy OjQ3ICBHcmVhdCBEcmFnb24gSW5mb3JtYXRpb24gVGVjaG5vbG9neSAoR3JvdXApIENvLiwgTHRk LgotIDAwOjAyOjQ4ICBQaWx6IEdtYmggJiBDby4KLSAwMDowMjo0OSAgQXZpdiBJbmZvY29tIENv LCBMdGQuCi0gMDA6MDI6NEEgIENpc2NvIFN5c3RlbXMsIEluYy4KLUBAIC02MDAsNyArNjA5LDcg QEAKLSAwMDowMjo0QyAgU2lieXRlLCBJbmMuCi0gMDA6MDI6NEQgIE1hbm5lc21hbiBEZW1hdGlj IENvbGJ5IFB0eS4gTHRkLgotIDAwOjAyOjRFICBEYXRhY2FyZCBHcm91cAotLTAwOjAyOjRGICBJ cG0gRGF0YWNvbSBTLnIubC4KLSswMDowMjo0RiAgSXBtIERhdGFjb20gUy5SLkwuCi0gMDA6MDI6 NTAgIEdleXNlciBOZXR3b3JrcywgSW5jLgotIDAwOjAyOjUxICBTb21hIE5ldHdvcmtzCi0gMDA6 MDI6NTIgIENhcnJpZXIgQ29ycG9yYXRpb24KLUBAIC02MTAsMTAgKzYxOSwxMCBAQAotIDAwOjAy OjU2ICBBbHBoYSBQcm9jZXNzb3IsIEluYy4KLSAwMDowMjo1NyAgTWljcm9jb20gQ29ycC4KLSAw MDowMjo1OCAgRmx5aW5nIFBhY2tldHMgQ29tbXVuaWNhdGlvbnMKLS0wMDowMjo1OSAgVHNhbm4g S3VlbiBDaGluYSAoc2hhbmdoYWkpZW50ZXJwcmlzZSBDby4sIEx0ZC4gSXQgR3JvdXAKLSswMDow Mjo1OSAgVHNhbm4gS3VlbiBDaGluYSAoU2hhbmdoYWkpRW50ZXJwcmlzZSBDby4sIEx0ZC4gSXQg R3JvdXAKLSAwMDowMjo1QSAgQ2F0ZW5hIE5ldHdvcmtzCi0gMDA6MDI6NUIgIENhbWJyaWRnZSBT aWxpY29uIFJhZGlvCi0tMDA6MDI6NUMgIFNjaSBTeXN0ZW1zIChrdW5zaGFuKSBDby4sIEx0ZC4K LSswMDowMjo1QyAgU2NpIFN5c3RlbXMgKEt1bnNoYW4pIENvLiwgTHRkLgotIDAwOjAyOjVEICBD YWxpeCBOZXR3b3JrcwotIDAwOjAyOjVFICBIaWdoIFRlY2hub2xvZ3kgTHRkCi0gMDA6MDI6NUYg IE5vcnRlbCBOZXR3b3JrcwotQEAgLTYyMSw3ICs2MzAsNyBAQAotIDAwOjAyOjYxICBJMyBNaWNy byBUZWNobm9sb2d5IEFiCi0gMDA6MDI6NjIgIFNveW8gR3JvdXAgU295byBDb20gVGVjaCBDby4s IEx0ZAotIDAwOjAyOjYzICBVcHMgTWFudWZhY3R1cmluZyBTcmwKLS0wMDowMjo2NCAgQXVkaW9y YW1wLmNvbQotKzAwOjAyOjY0ICBBdWRpb3JhbXAuQ29tCi0gMDA6MDI6NjUgIFZpcmRpdGVjaCBD by4gTHRkLgotIDAwOjAyOjY2ICBUaGVybWFsb2dpYyBDb3Jwb3JhdGlvbgotIDAwOjAyOjY3ICBO b2RlIFJ1bm5lciwgSW5jLgotQEAgLTYzNSwyNSArNjQ0LDI1IEBACi0gMDA6MDI6NkYgIFNlbmFv IEludGVybmF0aW9uYWwgQ28uLCBMdGQuCi0gMDA6MDI6NzAgIENyZXdhdmUgQ28uLCBMdGQuCi0g MDA6MDI6NzEgIFZwYWNrZXQgQ29tbXVuaWNhdGlvbnMKLS0wMDowMjo3MiAgQ2MmYyBUZWNobm9s b2dpZXMsIEluYy4KLSswMDowMjo3MiAgQ2MmQyBUZWNobm9sb2dpZXMsIEluYy4KLSAwMDowMjo3 MyAgQ29yaW9saXMgTmV0d29ya3MKLSAwMDowMjo3NCAgVG9tbXkgVGVjaG5vbG9naWVzIENvcnAu Ci0gMDA6MDI6NzUgIFNtYXJ0IFRlY2hub2xvZ2llcywgSW5jLgotIDAwOjAyOjc2ICBQcmltYXgg RWxlY3Ryb25pY3MgTHRkLgotIDAwOjAyOjc3ICBDYXNoIFN5c3RlbWVzIEluZHVzdHJpZQotLTAw OjAyOjc4ICBTYW1zdW5nIEVsZWN0cm8tbWVjaGFuaWNzIENvLiwgTHRkLgotKzAwOjAyOjc4ICBT YW1zdW5nIEVsZWN0cm8tTWVjaGFuaWNzIENvLiwgTHRkLgotIDAwOjAyOjc5ICBDb250cm9sIEFw cGxpY2F0aW9ucywgTHRkLgotIDAwOjAyOjdBICBJb2kgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgot IDAwOjAyOjdCICBBbXBsaWZ5IE5ldCwgSW5jLgotIDAwOjAyOjdDICBUcmlsaXRoaWMsIEluYy4K LSAwMDowMjo3RCAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAwOjAyOjdFICBDaXNjbyBTeXN0ZW1z LCBJbmMuCi0tMDA6MDI6N0YgIEFzay10ZWNobm9sb2dpZXMuY29tCi0rMDA6MDI6N0YgIEFzay1U ZWNobm9sb2dpZXMuQ29tCi0gMDA6MDI6ODAgIE11IE5ldCwgSW5jLgotLTAwOjAyOjgxICBNYWRn ZSBOZXR3b3JrcyBMaW1pdGVkCi0rMDA6MDI6ODEgIE1hZGdlIEx0ZC4KLSAwMDowMjo4MiAgVmlh Y2xpeCwgSW5jLgotIDAwOjAyOjgzICBTcGVjdHJ1bSBDb250cm9scywgSW5jLgotLTAwOjAyOjg0 ICBBbHN0b20gVCZkIFAmYwotKzAwOjAyOjg0ICBBbHN0b20gVCZEIFAmQwotIDAwOjAyOjg1ICBS aXZlcnN0b25lIE5ldHdvcmtzCi0gMDA6MDI6ODYgIE9jY2FtIE5ldHdvcmtzCi0gMDA6MDI6ODcg IEFkYXBjb20KLUBAIC02NjEsNyArNjcwLDcgQEAKLSAwMDowMjo4OSAgRG5lIFRlY2hub2xvZ2ll cwotIDAwOjAyOjhBICBBbWJpdCBNaWNyb3N5c3RlbXMgQ29ycG9yYXRpb24KLSAwMDowMjo4QiAg VmRzbCBTeXN0ZW1zIE95Ci0tMDA6MDI6OEMgIE1pY3JlbC1zeW5lcmd5IFNlbWljb25kdWN0b3IK LSswMDowMjo4QyAgTWljcmVsLVN5bmVyZ3kgU2VtaWNvbmR1Y3RvcgotIDAwOjAyOjhEICBNb3Zp dGEgVGVjaG5vbG9naWVzLCBJbmMuCi0gMDA6MDI6OEUgIFJhcGlkIDUgTmV0d29ya3MsIEluYy4K LSAwMDowMjo4RiAgR2xvYmV0ZWssIEluYy4KLUBAIC02NzAsMTQgKzY3OSwxNCBAQAotIDAwOjAy OjkyICBMb2dpYyBJbm5vdmF0aW9ucywgSW5jLgotIDAwOjAyOjkzICBTb2xpZCBEYXRhIFN5c3Rl bXMKLSAwMDowMjo5NCAgVG9reW8gU29rdXNoaW4gQ28uLCBMdGQuCi0tMDA6MDI6OTUgIElwLmFj Y2VzcyBMaW1pdGVkCi0rMDA6MDI6OTUgIElwLkFjY2VzcyBMaW1pdGVkCi0gMDA6MDI6OTYgIExl Y3Ryb24gQ28sLiBMdGQuCi0tMDA6MDI6OTcgIEMtY29yLm5ldAotKzAwOjAyOjk3ICBDLUNvci5O ZXQKLSAwMDowMjo5OCAgQnJvYWRmcmFtZSBDb3Jwb3JhdGlvbgotIDAwOjAyOjk5ICBBcGV4LCBJ bmMuCi0gMDA6MDI6OUEgIFN0b3JhZ2UgQXBwcwotIDAwOjAyOjlCICBLcmVhdGVsIENvbW11bmlj YXRpb25zIEFiCi0tMDA6MDI6OUMgIDNjb20KLSswMDowMjo5QyAgM0NvbQotIDAwOjAyOjlEICBN ZXJpeCBDb3JwLgotIDAwOjAyOjlFICBJbmZvcm1hdGlvbiBFcXVpcG1lbnQgQ28uLCBMdGQuCi0g MDA6MDI6OUYgIEwtMyBDb21tdW5pY2F0aW9uIEF2aWF0aW9uIFJlY29yZGVycwotQEAgLTY5MCwx MSArNjk5LDExIEBACi0gMDA6MDI6QTYgIEVmZmluZXQgU3lzdGVtcyBDby4sIEx0ZC4KLSAwMDow MjpBNyAgVml2YWNlIE5ldHdvcmtzCi0gMDA6MDI6QTggIEFpciBMaW5rIFRlY2hub2xvZ3kKLS0w MDowMjpBOSAgUmFjb20sIFMuci5vLgotKzAwOjAyOkE5ICBSYWNvbSwgUy5SLk8uCi0gMDA6MDI6 QUEgIFBsY29tIENvLiwgTHRkLgotIDAwOjAyOkFCICBDdGMgVW5pb24gVGVjaG5vbG9naWVzIENv LiwgTHRkLgotLTAwOjAyOkFDICAzcGFyIERhdGEKLS0wMDowMjpBRCAgQXNhaGkgT3B0aWNhbCBD by4sIEx0ZC4KLSswMDowMjpBQyAgM1BhciBEYXRhCi0rMDA6MDI6QUQgIFBlbnRheCBDb3Jwb3Rh dGlvbgotIDAwOjAyOkFFICBTY2FubmV4IEVsZWN0cm9uaWNzIEx0ZC4KLSAwMDowMjpBRiAgVGVs ZWNydXogVGVjaG5vbG9neSwgSW5jLgotIDAwOjAyOkIwICBIb2t1YnUgQ29tbXVuaWNhdGlvbiAm IEluZHVzdHJpYWwgQ28uLCBMdGQuCi1AQCAtNzIxLDExICs3MzAsMTEgQEAKLSAwMDowMjpDNSAg RXZlcnR6IE1pY3Jvc3lzdGVtcyBMdGQuCi0gMDA6MDI6QzYgIERhdGEgVHJhY2sgVGVjaG5vbG9n eSBQbGMKLSAwMDowMjpDNyAgQWxwcyBFbGVjdHJpYyBDby4sIEx0ZC4KLS0wMDowMjpDOCAgVGVj aG5vY29tIENvbW11bmljYXRpb25zIFRlY2hub2xvZ3kgKHB0ZSkgTHRkCi0rMDA6MDI6QzggIFRl Y2hub2NvbSBDb21tdW5pY2F0aW9ucyBUZWNobm9sb2d5IChQdGUpIEx0ZAotIDAwOjAyOkM5ICBN ZWxsYW5veCBUZWNobm9sb2dpZXMKLSAwMDowMjpDQSAgRW5kcG9pbnRzLCBJbmMuCi0gMDA6MDI6 Q0IgIFRyaXN0YXRlIEx0ZC4KLS0wMDowMjpDQyAgTS5jLmMuaQotKzAwOjAyOkNDICBNLkMuQy5J Ci0gMDA6MDI6Q0QgIFRlbGVkcmVhbSwgSW5jLgotIDAwOjAyOkNFICBGb3hqZXQsIEluYy4KLSAw MDowMjpDRiAgWnlnYXRlIENvbW11bmljYXRpb25zLCBJbmMuCi1AQCAtNzQ4LDE4ICs3NTcsMTgg QEAKLSAwMDowMjpFMCAgRXRhcyBHbWJoCi0gMDA6MDI6RTEgIEludGVncmF0ZWQgTmV0d29yayBD b3Jwb3JhdGlvbgotIDAwOjAyOkUyICBOZGMgSW5mYXJlZCBFbmdpbmVlcmluZwotLTAwOjAyOkUz ICBMaXRlLW9uIENvbW11bmljYXRpb25zLCBJbmMuCi0rMDA6MDI6RTMgIExpdGUtT24gQ29tbXVu aWNhdGlvbnMsIEluYy4KLSAwMDowMjpFNCAgSmMgSHl1biBTeXN0ZW1zLCBJbmMuCi0gMDA6MDI6 RTUgIFRpbWV3YXJlIEx0ZC4KLSAwMDowMjpFNiAgR291bGQgSW5zdHJ1bWVudCBTeXN0ZW1zLCBJ bmMuCi0gMDA6MDI6RTcgIENhYiBHbWJoICYgQ28gS2cKLS0wMDowMjpFOCAgRS5kLiZhLgotLTAw OjAyOkU5ICBDcyBTeXN0ZW1lcyBEZSBTZWN1cml0ZSAtIEMzcwotLTAwOjAyOkVBICBWaWRlb25p Y3MsIEluYy4KLSswMDowMjpFOCAgRS5ELiZBLgotKzAwOjAyOkU5ICBDcyBTeXN0ZW1lcyBEZSBT ZWN1cml0ZSAtIEMzUwotKzAwOjAyOkVBICBGb2N1cyBFbmhhbmNlbWVudHMKLSAwMDowMjpFQiAg UGljbyBDb21tdW5pY2F0aW9ucwotIDAwOjAyOkVDICBNYXNjaG9mZiBEZXNpZ24gRW5naW5lZXJp bmcKLSAwMDowMjpFRCAgRHhvIFRlbGVjb20gQ28uLCBMdGQuCi0tMDA6MDI6RUUgIE5va2lhIERh bm1hcmsgQS9zCi0rMDA6MDI6RUUgIE5va2lhIERhbm1hcmsgQS9TCi0gMDA6MDI6RUYgIENjYyBO ZXR3b3JrIFN5c3RlbXMgR3JvdXAgTHRkLgotIDAwOjAyOkYwICBBbWUgT3B0aW1lZGlhIFRlY2hu b2xvZ3kgQ28uLCBMdGQuCi0gMDA6MDI6RjEgIFBpbmV0cm9uIENvLiwgTHRkLgotQEAgLTc3Miwx NCArNzgxLDE0IEBACi0gMDA6MDI6RjggIFNlYWtyIEVuZ2luZWVyaW5nLCBJbmMuCi0gMDA6MDI6 RjkgIE1pbW9zIFNlbWljb25kdWN0b3IgU2RuIEJoZAotIDAwOjAyOkZBICBEeCBBbnRlbm5hIENv LiwgTHRkLgotLTAwOjAyOkZCICBCYXVtdWxsZXIgQXVsdWdlbi1zeXN0ZW10ZWNobmlrIEdtYmgK LSswMDowMjpGQiAgQmF1bXVsbGVyIEF1bHVnZW4tU3lzdGVtdGVjaG5payBHbWJoCi0gMDA6MDI6 RkMgIENpc2NvIFN5c3RlbXMsIEluYy4KLSAwMDowMjpGRCAgQ2lzY28gU3lzdGVtcywgSW5jLgot IDAwOjAyOkZFICBWaWRpdGVjLCBJbmMuCi0tMDA6MDI6RkYgIEhhbmRhbiBCcm9hZCBJbmZvY29t Ci0rMDA6MDI6RkYgIEhhbmRhbiBCcm9hZGluZm9jb20KLSAwMDowMzowMCAgTmV0Y29udGludXVt LCBJbmMuCi0gMDA6MDM6MDEgIEF2YW50YXMgTmV0d29ya3MgQ29ycG9yYXRpb24KLS0wMDowMzow MiAgT2FzeXMgVGVsZWNvbSwgSW5jLgotKzAwOjAzOjAyICBDaGFybGVzIEluZHVzdHJpZXMsIEx0 ZC4KLSAwMDowMzowMyAgSmFtYSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KLSAwMDowMzowNCAgUGFj aWZpYyBCcm9hZGJhbmQgQ29tbXVuaWNhdGlvbnMKLSAwMDowMzowNSAgU21hcnQgTmV0d29yayBE ZXZpY2VzIEdtYmgKLUBAIC03OTIsMTAgKzgwMSwxMCBAQAotIDAwOjAzOjBDICBUZWxlc29mdCBU ZWNobm9sb2dpZXMgTHRkLgotIDAwOjAzOjBEICBVbml3aWxsIENvbXB1dGVyIENvcnAuCi0gMDA6 MDM6MEUgIENvcmUgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCi0tMDA6MDM6MEYgIERpZ2l0YWwg Q2hpbmEgKHNoYW5naGFpKSBOZXR3b3JrcyBMdGQuCi0rMDA6MDM6MEYgIERpZ2l0YWwgQ2hpbmEg KFNoYW5naGFpKSBOZXR3b3JrcyBMdGQuCi0gMDA6MDM6MTAgIExpbmsgRXZvbHV0aW9uIENvcnAu Ci0gMDA6MDM6MTEgIE1pY3JvIFRlY2hub2xvZ3kgQ28uLCBMdGQuCi0tMDA6MDM6MTIgIFRyLXN5 c3RlbXRlY2huaWsgR21iaAotKzAwOjAzOjEyICBUci1TeXN0ZW10ZWNobmlrIEdtYmgKLSAwMDow MzoxMyAgQWNjZXNzIE1lZGlhIFNwYQotIDAwOjAzOjE0ICBUZWxld2FyZSBOZXR3b3JrIFN5c3Rl bXMKLSAwMDowMzoxNSAgQ2lkY28gSW5jb3Jwb3JhdGVkCi1AQCAtODEzLDExICs4MjIsMTEgQEAK LSAwMDowMzoyMSAgUmVjbyBSZXNlYXJjaCBDby4sIEx0ZC4KLSAwMDowMzoyMiAgSWRpcyBDby4s IEx0ZC4KLSAwMDowMzoyMyAgQ29ybmV0IFRlY2hub2xvZ3ksIEluYy4KLS0wMDowMzoyNCAgVG90 dG9yaSBTYW55byBFbGVjdHJpYyBDby4sIEx0ZC4KLSswMDowMzoyNCAgU2FueW8gTXVsdGltZWRp YSBUb3R0b3JpIENvLiwgTHRkLgotIDAwOjAzOjI1ICBBcmltYSBDb21wdXRlciBDb3JwLgotIDAw OjAzOjI2ICBJd2FzYWtpIEluZm9ybWF0aW9uIFN5c3RlbXMgQ28uLCBMdGQuCi0gMDA6MDM6Mjcg IEFjdCdsCi0tMDA6MDM6MjggIFByaXZhdGUKLSswMDowMzoyOCAgTWFjZSBHcm91cCwgSW5jLgot IDAwOjAzOjI5ICBGMywgSW5jLgotIDAwOjAzOjJBICBVbmlkYXRhIENvbW11bmljYXRpb24gU3lz dGVtcywgSW5jLgotIDAwOjAzOjJCICBHYWkgRGF0ZW5mdW5rc3lzdGVtZSBHbWJoCi1AQCAtODQ0 LDE5ICs4NTMsMTkgQEAKLSAwMDowMzo0MCAgRmxvd2FyZSBXaXJlbGVzcyBTeXN0ZW1zLCBMdGQu Ci0gMDA6MDM6NDEgIEF4b24gRGlnaXRhbCBEZXNpZ24KLSAwMDowMzo0MiAgTm9ydGVsIE5ldHdv cmtzCi0tMDA6MDM6NDMgIE1hcnRpbiBQcm9mZXNzaW9uYWwgQS9zCi0tMDA6MDM6NDQgIFRpZXRl Y2guY28uLCBMdGQuCi0rMDA6MDM6NDMgIE1hcnRpbiBQcm9mZXNzaW9uYWwgQS9TCi0rMDA6MDM6 NDQgIFRpZXRlY2guQ28uLCBMdGQuCi0gMDA6MDM6NDUgIFJvdXRyZWsgTmV0d29ya3MgQ29ycG9y YXRpb24KLSAwMDowMzo0NiAgSGl0YWNoaSBLb2t1c2FpIEVsZWN0cmljLCBJbmMuCi0gMDA6MDM6 NDcgIEludGVsIENvcnBvcmF0aW9uCi0gMDA6MDM6NDggIE5vcnNjYW4gSW5zdHJ1bWVudHMsIEx0 ZC4KLS0wMDowMzo0OSAgVmlkaWNvZGUgRGF0YWNvbW11bmljYXRpZSBCLnYuCi0rMDA6MDM6NDkg IFZpZGljb2RlIERhdGFjb21tdW5pY2F0aWUgQi5WLgotIDAwOjAzOjRBICBSaWFzIENvcnBvcmF0 aW9uCi0gMDA6MDM6NEIgIE5vcnRlbCBOZXR3b3JrcwotIDAwOjAzOjRDICBTaGFuZ2hhaSBEaWdp dmlzaW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCi0gMDA6MDM6NEQgIENoaWFybyBOZXR3b3Jrcywg THRkLgotIDAwOjAzOjRFICBQb3MgRGF0YSBDb21wYW55LCBMdGQuCi0tMDA6MDM6NEYgIFN1ci1n YXJkIFNlY3VyaXR5Ci0rMDA6MDM6NEYgIFN1ci1HYXJkIFNlY3VyaXR5Ci0gMDA6MDM6NTAgIEJ0 aWNpbm8gU3BhCi0gMDA6MDM6NTEgIERpZWJvbGQsIEluYy4KLSAwMDowMzo1MiAgQ29sdWJyaXMg TmV0d29ya3MKLUBAIC04NjQsMTMgKzg3MywxMyBAQAotIDAwOjAzOjU0ICBGaWJlciBMb2dpYyBD b21tdW5pY2F0aW9ucwotIDAwOjAzOjU1ICBUZXJhYmVhbSBJbnRlcm5ldCBTeXN0ZW1zCi0gMDA6 MDM6NTYgIFdpbmNvciBOaXhkb3JmIEdtYmggJiBDbyBLZwotLTAwOjAzOjU3ICBJbnRlcnZvaWNl LWJyaXRlLCBJbmMuCi0rMDA6MDM6NTcgIEludGVydm9pY2UtQnJpdGUsIEluYy4KLSAwMDowMzo1 OCAgSWNhYmxlIFN5c3RlbSBDby4sIEx0ZC4KLSAwMDowMzo1OSAgRGlnaXRhbHNpcwotIDAwOjAz OjVBICBQaG90cm9uIExpbWl0ZWQKLSAwMDowMzo1QiAgQnJpZGdld2F2ZSBDb21tdW5pY2F0aW9u cwotIDAwOjAzOjVDICBTYWludCBTb25nIENvcnAuCi0tMDA6MDM6NUQgIEJvc3VuZyBIaS1uZXQg Q28uLCBMdGQuCi0rMDA6MDM6NUQgIEJvc3VuZyBIaS1OZXQgQ28uLCBMdGQuCi0gMDA6MDM6NUUg IE1ldHJvcG9saXRhbiBBcmVhIE5ldHdvcmtzLCBJbmMuCi0gMDA6MDM6NUYgIFBydWVmdGVjaG5p ayBDb25kaXRpb24gTW9uaXRvcmluZyBHbWJoICYgQ28uIEtnCi0gMDA6MDM6NjAgIFBhYyBJbnRl cmFjdGl2ZSBUZWNobm9sb2d5LCBJbmMuCi1AQCAtODg3LDEyICs4OTYsMTIgQEAKLSAwMDowMzo2 QiAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAwOjAzOjZDICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi0g MDA6MDM6NkQgIFJ1bnRvcCwgSW5jLgotLTAwOjAzOjZFICBOaWNvbiBTeXN0ZW1zIChwdHkpIExp bWl0ZWQKLSswMDowMzo2RSAgTmljb24gU3lzdGVtcyAoUHR5KSBMaW1pdGVkCi0gMDA6MDM6NkYg IFRlbHNleSBTcGEKLSAwMDowMzo3MCAgTnh0diwgSW5jLgotIDAwOjAzOjcxICBBY29teiBOZXR3 b3JrcyBDb3JwLgotIDAwOjAzOjcyICBVbGFuCi0tMDA6MDM6NzMgIEFzZWxzYW4gQS5zCi0rMDA6 MDM6NzMgIEFzZWxzYW4gQS5TCi0gMDA6MDM6NzQgIEh1bnRlciBXYXRlcnRlY2gKLSAwMDowMzo3 NSAgTmV0bWVkaWEsIEluYy4KLSAwMDowMzo3NiAgR3JhcGh0ZWMgVGVjaG5vbG9neSwgSW5jLgot QEAgLTkwNyw3ICs5MTYsNyBAQAotIDAwOjAzOjdGICBBdGhlcm9zIENvbW11bmljYXRpb25zLCBJ bmMuCi0gMDA6MDM6ODAgIFNzaCBDb21tdW5pY2F0aW9ucyBTZWN1cml0eSBDb3JwLgotIDAwOjAz OjgxICBJbmdlbmljbyBJbnRlcm5hdGlvbmFsCi0tMDA6MDM6ODIgIEEtb25lIENvLiwgTHRkLgot KzAwOjAzOjgyICBBLU9uZSBDby4sIEx0ZC4KLSAwMDowMzo4MyAgTWV0ZXJhIE5ldHdvcmtzLCBJ bmMuCi0gMDA6MDM6ODQgIEFldGEKLSAwMDowMzo4NSAgQWN0ZWxpcyBOZXR3b3JrcywgSW5jLgot QEAgLTkxNiwxMyArOTI1LDEzIEBACi0gMDA6MDM6ODggIEZhc3RmYW1lIFRlY2hub2xvZ3kgQ28u LCBMdGQuCi0gMDA6MDM6ODkgIFBsYW50cm9uaWNzCi0gMDA6MDM6OEEgIEFtZXJpY2EgT25saW5l LCBJbmMuCi0tMDA6MDM6OEIgIFBsdXMtb25lIEkmdCwgSW5jLgotKzAwOjAzOjhCICBQbHVzLU9u ZSBJJlQsIEluYy4KLSAwMDowMzo4QyAgVG90YWwgSW1wYWN0Ci0gMDA6MDM6OEQgIFBjcyBSZXZl bnVlIENvbnRyb2wgU3lzdGVtcywgSW5jLgotIDAwOjAzOjhFICBBdG9nYSBTeXN0ZW1zLCBJbmMu Ci0gMDA6MDM6OEYgIFdlaW5zY2hlbCBDb3Jwb3JhdGlvbgotIDAwOjAzOjkwICBEaWdpdGFsIFZp ZGVvIENvbW11bmljYXRpb25zLCBJbmMuCi0tMDA6MDM6OTEgIFByaXZhdGUKLSswMDowMzo5MSAg QWR2YW5jZWQgRGlnaXRhbCBCcm9hZGNhc3QsIEx0ZC4KLSAwMDowMzo5MiAgSHl1bmRhaSBUZWxl dGVrIENvLiwgTHRkLgotIDAwOjAzOjkzICBBcHBsZSBDb21wdXRlciwgSW5jLgotIDAwOjAzOjk0 ICBDb25uZWN0IE9uZQotQEAgLTk0Myw3ICs5NTIsNyBAQAotIDAwOjAzOkEzICBNYXZpeCwgTHRk LgotIDAwOjAzOkE0ICBEYXRhIFN0b3JhZ2UgQW5kIEluZm9ybWF0aW9uIE1hbmFnZW1lbnQKLSAw MDowMzpBNSAgTWVkZWEgQ29ycG9yYXRpb24KLS0wMDowMzpBNiAgUHJpdmF0ZQotKzAwOjAzOkE2 ICBUcmF4aXQgVGVjaG5vbG9neSwgSW5jLgotIDAwOjAzOkE3ICBVbml4dGFyIFRlY2hub2xvZ3ks IEluYy4KLSAwMDowMzpBOCAgSWRvdCBDb21wdXRlcnMsIEluYy4KLSAwMDowMzpBOSAgQXhjZW50 IE1lZGlhIEFnCi1AQCAtOTcxLDcgKzk4MCw3IEBACi0gMDA6MDM6QkYgIENlbnRlcnBvaW50IEJy b2FkYmFuZCBUZWNobm9sb2dpZXMsIEluYy4KLSAwMDowMzpDMCAgUmZ0bmMgQ28uLCBMdGQuCi0g MDA6MDM6QzEgIFBhY2tldCBEeW5hbWljcyBMdGQKLS0wMDowMzpDMiAgU29scGhvbmUgSy5rLgot KzAwOjAzOkMyICBTb2xwaG9uZSBLLksuCi0gMDA6MDM6QzMgIE1pY3JvbmlrIE11bHRpbWVkaWEK LSAwMDowMzpDNCAgVG9tcmEgU3lzdGVtcyBBc2EKLSAwMDowMzpDNSAgTW9ib3RpeCBBZwotQEAg LTEwMjIsOSArMTAzMSw5IEBACi0gMDA6MDM6RjIgIFNlbmVjYSBOZXR3b3JrcwotIDAwOjAzOkYz ICBEYXp6bGUgTXVsdGltZWRpYSwgSW5jLgotIDAwOjAzOkY0ICBOZXRidXJuZXIKLS0wMDowMzpG NSAgQ2hpcDJjaGlwCi0rMDA6MDM6RjUgIENoaXAyQ2hpcAotIDAwOjAzOkY2ICBBbGxlZ3JvIE5l dHdvcmtzLCBJbmMuCi0tMDA6MDM6RjcgIFBsYXN0LWNvbnRyb2wgR21iaAotKzAwOjAzOkY3ICBQ bGFzdC1Db250cm9sIEdtYmgKLSAwMDowMzpGOCAgU2FuY2FzdGxlIFRlY2hub2xvZ2llcywgSW5j LgotIDAwOjAzOkY5ICBQbGVpYWRlcyBDb21tdW5pY2F0aW9ucywgSW5jLgotIDAwOjAzOkZBICBU aW1ldHJhIE5ldHdvcmtzCi1AQCAtMTAzMiw3ICsxMDQxLDcgQEAKLSAwMDowMzpGQyAgSW50ZXJ0 ZXggRGF0YSBBYgotIDAwOjAzOkZEICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi0gMDA6MDM6RkUgIENp c2NvIFN5c3RlbXMsIEluYy4KLS0wMDowMzpGRiAgQ29ubmVjdGl4Ci0rMDA6MDM6RkYgIE1pY3Jv c29mdCBDb3Jwb3JhdGlvbgotIDAwOjA0OjAwICBMZXhtYXJrIEludGVybmF0aW9uYWwsIEluYy4K LSAwMDowNDowMSAgT3Nha2kgRWxlY3RyaWMgQ28uLCBMdGQuCi0gMDA6MDQ6MDIgIE5leHNhbiBU ZWNobm9sb2dpZXMsIEx0ZC4KLUBAIC0xMDQ0LDcgKzEwNTMsNyBAQAotIDAwOjA0OjA4ICBTYW5r byBFbGVjdHJvbmljcyBDby4sIEx0ZC4KLSAwMDowNDowOSAgQ3JhdG9zIE5ldHdvcmtzCi0gMDA6 MDQ6MEEgIFNhZ2UgU3lzdGVtcwotLTAwOjA0OjBCICAzY29tIEV1cm9wZSBMdGQuCi0rMDA6MDQ6 MEIgIDNDb20gRXVyb3BlIEx0ZC4KLSAwMDowNDowQyAgS2Fubm8gV29yaydzIEx0ZC4KLSAwMDow NDowRCAgQXZheWEsIEluYy4KLSAwMDowNDowRSAgQXZtIEdtYmgKLUBAIC0xMDU1LDkgKzEwNjQs OSBAQAotIDAwOjA0OjEzICBTbm9tIFRlY2hub2xvZ3kgQWcKLSAwMDowNDoxNCAgVW1lemF3YSBN dXNlbiBEZW5raSBDby4sIEx0ZC4KLSAwMDowNDoxNSAgUmFzdGVtZSBTeXN0ZW1zIENvLiwgTHRk LgotLTAwOjA0OjE2ICBQYXJrcyBTL2EgQ29tdW5pY2Fjb2VzIERpZ2l0YWlzCi0rMDA6MDQ6MTYg IFBhcmtzIFMvQSBDb211bmljYWNvZXMgRGlnaXRhaXMKLSAwMDowNDoxNyAgRWxhdSBBZwotLTAw OjA0OjE4ICBUZWx0cm9uaWMgUy5hLnUuCi0rMDA6MDQ6MTggIFRlbHRyb25pYyBTLkEuVS4KLSAw MDowNDoxOSAgRmliZXJjeWNsZSBOZXR3b3JrcywgSW5jLgotIDAwOjA0OjFBICBJbmVzIEdtYmgK LSAwMDowNDoxQiAgRGlnaXRhbCBJbnRlcmZhY2VzIEx0ZC4KLUBAIC0xMDY5LDcgKzEwNzgsNyBA QAotIDAwOjA0OjIxICBPY3VsYXIgTmV0d29ya3MKLSAwMDowNDoyMiAgR29yZG9uIEthcGVzLCBJ bmMuCi0gMDA6MDQ6MjMgIEludGVsIENvcnBvcmF0aW9uCi0tMDA6MDQ6MjQgIFRtYyBTLnIubC4K LSswMDowNDoyNCAgVG1jIFMuUi5MLgotIDAwOjA0OjI1ICBBdG1lbCBDb3Jwb3JhdGlvbgotIDAw OjA0OjI2ICBBdXRvc3lzCi0gMDA6MDQ6MjcgIENpc2NvIFN5c3RlbXMsIEluYy4KLUBAIC0xMDg0 LDcgKzEwOTMsNyBAQAotIDAwOjA0OjMwICBOZXRnZW0KLSAwMDowNDozMSAgR2xvYmFsc3RyZWFt cywgSW5jLgotIDAwOjA0OjMyICBWb3lldHJhIFR1cnRsZSBCZWFjaCwgSW5jLgotLTAwOjA0OjMz ICBDeWJlcmJvYXJkIEEvcwotKzAwOjA0OjMzICBDeWJlcmJvYXJkIEEvUwotIDAwOjA0OjM0ICBB Y2NlbGVudCBTeXN0ZW1zLCBJbmMuCi0gMDA6MDQ6MzUgIENvbXB0ZWsgSW50ZXJuYXRpb25hbCwg SW5jLgotIDAwOjA0OjM2ICBFbGFuc2F0IFRlY2hub2xvZ2llcywgSW5jLgotQEAgLTExMTgsMTIg KzExMjcsMTIgQEAKLSAwMDowNDo1MiAgUm9ja2V0bG9naXgsIEluYy4KLSAwMDowNDo1MyAgWW90 dGF5b3R0YSwgSW5jLgotIDAwOjA0OjU0ICBRdWFkcmlnYSBVawotLTAwOjA0OjU1ICBBbnRhcmEu bmV0Ci0rMDA6MDQ6NTUgIEFudGFyYS5OZXQKLSAwMDowNDo1NiAgUGlwaW5naG90IE5ldHdvcmtz Ci0gMDA6MDQ6NTcgIFVuaXZlcnNhbCBBY2Nlc3MgVGVjaG5vbG9neSwgSW5jLgotIDAwOjA0OjU4 ICBGdXNpb24gWCBDby4sIEx0ZC4KLSAwMDowNDo1OSAgVmVyaXN0YXIgQ29ycG9yYXRpb24KLS0w MDowNDo1QSAgTGlua3N5cyBXUEMxMSwgV1VTQjExCi0rMDA6MDQ6NUEgIFRoZSBMaW5rc3lzIEdy b3VwLCBJbmMuCi0gMDA6MDQ6NUIgIFRlY2hzYW4gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCi0gMDA6 MDQ6NUMgIE1vYml3YXZlIFB0ZSBMdGQKLSAwMDowNDo1RCAgQmVrYSBFbGVrdHJvbmlrCi1AQCAt MTEzMiw5ICsxMTQxLDkgQEAKLSAwMDowNDo2MCAgS25pbGluayBUZWNobm9sb2d5LCBJbmMuCi0g MDA6MDQ6NjEgIEVwb3ggQ29tcHV0ZXIgQ28uLCBMdGQuCi0gMDA6MDQ6NjIgIERha29zIERhdGEg JiBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgotLTAwOjA0OjYzICBQaGlsaXBzIENvbW11bmljYXRp b24gU2VjdXJpdHkgJiBJbWFnaW5nCi0rMDA6MDQ6NjMgIEJvc2NoIFNlY3VyaXR5IFN5c3RlbXMK LSAwMDowNDo2NCAgRmFudGFzbWEgTmV0d29ya3MsIEluYy4KLS0wMDowNDo2NSAgSS5zLnQgSXNk bi1zdXBwb3J0IFRlY2huaWsgR21iaAotKzAwOjA0OjY1ICBJLlMuVCBJc2RuLVN1cHBvcnQgVGVj aG5payBHbWJoCi0gMDA6MDQ6NjYgIEFybWl0ZWwgQ28uCi0gMDA6MDQ6NjcgIFd1aGFuIFJlc2Vh cmNoIEluc3RpdHV0ZSBPZiBNaWkKLSAwMDowNDo2OCAgVml2aXR5LCBJbmMuCi1AQCAtMTE0NCwx NCArMTE1MywxNCBAQAotIDAwOjA0OjZDICBDeWJlciBUZWNobm9sb2d5IENvLiwgTHRkLgotIDAw OjA0OjZEICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi0gMDA6MDQ6NkUgIENpc2NvIFN5c3RlbXMsIElu Yy4KLS0wMDowNDo2RiAgRGlnaXRlbCBTL2EgSW5kdXN0cmlhIEVsZXRyb25pY2EKLSswMDowNDo2 RiAgRGlnaXRlbCBTL0EgSW5kdXN0cmlhIEVsZXRyb25pY2EKLSAwMDowNDo3MCAgSXB1bnBsdWdn ZWQgQWIKLSAwMDowNDo3MSAgSXByYWQKLSAwMDowNDo3MiAgVGVsZWx5bngsIEluYy4KLSAwMDow NDo3MyAgUGhvdG9uZXggQ29ycG9yYXRpb24KLSAwMDowNDo3NCAgTGVncmFuZAotLTAwOjA0Ojc1 ICAzQ29tIENvcnBvcmF0aW9uCi0tMDA6MDQ6NzYgIDNDb20gQ29ycG9yYXRpb24KLSswMDowNDo3 NSAgMyBDb20gQ29ycG9yYXRpb24KLSswMDowNDo3NiAgMyBDb20gQ29ycG9yYXRpb24KLSAwMDow NDo3NyAgU2NhbGFudCBTeXN0ZW1zLCBJbmMuCi0gMDA6MDQ6NzggIEcuIFN0YXIgVGVjaG5vbG9n eSBDb3Jwb3JhdGlvbgotIDAwOjA0Ojc5ICBSYWRpdXMgQ28uLCBMdGQuCi1AQCAtMTE2OSw3ICsx MTc4LDcgQEAKLSAwMDowNDo4NSAgUGljb2xpZ2h0Ci0gMDA6MDQ6ODYgIEl0dGMsIFVuaXZlcnNp dHkgT2YgS2Fuc2FzCi0gMDA6MDQ6ODcgIENvZ2VuY3kgU2VtaWNvbmR1Y3RvciwgSW5jLgotLTAw OjA0Ojg4ICBFdXJvdGhlcm0gQWN0aW9uIEluY29ycG9yYXRlZC4KLSswMDowNDo4OCAgRXVyb3Ro ZXJtIENvbnRyb2xzCi0gMDA6MDQ6ODkgIFlhZm8gTmV0d29ya3MsIEluYy4KLSAwMDowNDo4QSAg VGVtaWEgVmVydHJpZWJzIEdtYmgKLSAwMDowNDo4QiAgUG9zY29uIENvcnBvcmF0aW9uCi1AQCAt MTE5NSw3ICsxMjA0LDcgQEAKLSAwMDowNDo5RiAgTWV0cm93ZXJrcwotIDAwOjA0OkEwICBWZXJp dHkgSW5zdHJ1bWVudHMsIEluYy4KLSAwMDowNDpBMSAgUGF0aHdheSBDb25uZWN0aXZpdHkKLS0w MDowNDpBMiAgTC5zLmkuIEphcGFuIENvLiwgTHRkLgotKzAwOjA0OkEyICBMLlMuSS4gSmFwYW4g Q28uLCBMdGQuCi0gMDA6MDQ6QTMgIE1pY3JvY2hpcCBUZWNobm9sb2d5LCBJbmMuCi0gMDA6MDQ6 QTQgIE5ldGVuYWJsZWQsIEluYy4KLSAwMDowNDpBNSAgQmFyY28gUHJvamVjdGlvbiBTeXN0ZW1z IE52Ci1AQCAtMTIxNSwxMCArMTIyNCwxMCBAQAotIDAwOjA0OkIzICBWaWRlb3RlaywgSW5jLgot IDAwOjA0OkI0ICBDaWFjCi0gMDA6MDQ6QjUgIEVxdWl0cmFjIENvcnBvcmF0aW9uCi0tMDA6MDQ6 QjYgIFRlbGx1bWF0IChwdHkpIEx0ZC4KLS0wMDowNDpCNyAgQW1iIEkudC4gSG9sZGluZwotKzAw OjA0OkI2ICBTdHJhdGV4IE5ldHdvcmtzLCBJbmMuCi0rMDA6MDQ6QjcgIEFtYiBJLlQuIEhvbGRp bmcKLSAwMDowNDpCOCAgS3VtYWhpcmEgQ28uLCBMdGQuCi0tMDA6MDQ6QjkgIFMuaS4gU291Ym91 LCBJbmMuCi0rMDA6MDQ6QjkgIFMuSS4gU291Ym91LCBJbmMuCi0gMDA6MDQ6QkEgIEtkZCBNZWRp YSBXaWxsIENvcnBvcmF0aW9uCi0gMDA6MDQ6QkIgIEJhcmRhYyBDb3Jwb3JhdGlvbgotIDAwOjA0 OkJDICBHaWFudGVjLCBJbmMuCi1AQCAtMTIyOSw3ICsxMjM4LDcgQEAKLSAwMDowNDpDMSAgQ2lz Y28gU3lzdGVtcywgSW5jLgotIDAwOjA0OkMyICBNYWduaXBpeCwgSW5jLgotIDAwOjA0OkMzICBD YXN0b3IgSW5mb3JtYXRpcXVlCi0tMDA6MDQ6QzQgIEFsbGVuICYgSGVhbHRoIExpbWl0ZWQKLSsw MDowNDpDNCAgQWxsZW4gJiBIZWF0aCBMaW1pdGVkCi0gMDA6MDQ6QzUgIEFzZSBUZWNobm9sb2dp ZXMsIFVzYQotIDAwOjA0OkM2ICBZYW1haGEgTW90b3IgQ28uLCBMdGQuCi0gMDA6MDQ6QzcgIE5l dG1vdW50Ci1AQCAtMTIzNywxMSArMTI0NiwxMSBAQAotIDAwOjA0OkM5ICBNaWNybyBFbGVjdHJv biBDby4sIEx0ZC4KLSAwMDowNDpDQSAgRnJlZW1zIENvcnAuCi0gMDA6MDQ6Q0IgIFRkc29mdCBD b21tdW5pY2F0aW9uLCBMdGQuCi0tMDA6MDQ6Q0MgIFBlZWsgVHJhZmZpYyBCLnYuCi0rMDA6MDQ6 Q0MgIFBlZWsgVHJhZmZpYyBCLlYuCi0gMDA6MDQ6Q0QgIEluZm9ybWVkaWEgUmVzZWFyY2ggR3Jv dXAKLSAwMDowNDpDRSAgUGF0cmlhIEFpbG9uCi0gMDA6MDQ6Q0YgIFNlYWdhdGUgVGVjaG5vbG9n eQotLTAwOjA0OkQwICBTb2Z0bGluayBTLnIuby4KLSswMDowNDpEMCAgU29mdGxpbmsgUy5SLk8u Ci0gMDA6MDQ6RDEgIERyZXcgVGVjaG5vbG9naWVzLCBJbmMuCi0gMDA6MDQ6RDIgIEFkY29uIFRl bGVtZXRyeSBBZwotIDAwOjA0OkQzICBUb3lva2Vpa2kgQ28uLCBMdGQuCi1AQCAtMTI1OSw3ICsx MjY4LDcgQEAKLSAwMDowNDpERiAgVGVyYWNvbSBUZWxlbWF0aWNhIEx0ZGEuCi0gMDA6MDQ6RTAg IFByb2NrZXQgTmV0d29ya3MKLSAwMDowNDpFMSAgSW5maW5pb3IgTWljcm9zeXN0ZW1zCi0tMDA6 MDQ6RTIgIFNNQyBTTUMyNjMyVwotKzAwOjA0OkUyICBTbWMgTmV0d29ya3MsIEluYy4KLSAwMDow NDpFMyAgQWNjdG9uIFRlY2hub2xvZ3kgQ29ycC4KLSAwMDowNDpFNCAgRGFlcnl1bmcgSW5kLiwg SW5jLgotIDAwOjA0OkU1ICBHbG9uZXQgU3lzdGVtcywgSW5jLgotQEAgLTEyNjcsNyArMTI3Niw3 IEBACi0gMDA6MDQ6RTcgIExpZ2h0cG9pbnRlIENvbW11bmljYXRpb25zLCBJbmMKLSAwMDowNDpF OCAgSWVyLCBJbmMuCi0gMDA6MDQ6RTkgIEluZmluaXN3aXRjaCBDb3Jwb3JhdGlvbgotLTAwOjA0 OkVBICBIZXdsZXR0LXBhY2thcmQgQ29tcGFueQotKzAwOjA0OkVBICBIZXdsZXR0LVBhY2thcmQg Q29tcGFueQotIDAwOjA0OkVCICBQYXhvbmV0IENvbW11bmljYXRpb25zLCBJbmMuCi0gMDA6MDQ6 RUMgIE1lbW9ib3ggU2EKLSAwMDowNDpFRCAgQmlsbGlvbiBFbGVjdHJpYyBDby4sIEx0ZC4KLUBA IC0xMjc2LDcgKzEyODUsNyBAQAotIDAwOjA0OkYwICBJbnRlcm5hdGlvbmFsIENvbXB1dGVycywg THRkCi0gMDA6MDQ6RjEgIFdoZXJlbmV0Ci0gMDA6MDQ6RjIgIENpcmNhIENvbW11bmljYXRpb25z LCBMdGQuCi0tMDA6MDQ6RjMgIEZzIEZvcnRoLXN5c3RlbWUgR21iaAotKzAwOjA0OkYzICBGcyBG b3J0aC1TeXN0ZW1lIEdtYmgKLSAwMDowNDpGNCAgSW5maW5pdGUgRWxlY3Ryb25pY3MgSW5jLgot IDAwOjA0OkY1ICBTbm93c2hvcmUgTmV0d29ya3MsIEluYy4KLSAwMDowNDpGNiAgQW1waHVzCi1A QCAtMTI4NSw3ICsxMjk0LDcgQEAKLSAwMDowNDpGOSAgWHRlcmEgQ29tbXVuaWNhdGlvbnMsIElu Yy4KLSAwMDowNDpGQSAgTWlzdCBJbmMuCi0gMDA6MDQ6RkIgIENvbW10ZWNoLCBJbmMuCi0tMDA6 MDQ6RkMgIFN0cmF0dXMgQ29tcHV0ZXIgKGRlKSwgSW5jLgotKzAwOjA0OkZDICBTdHJhdHVzIENv bXB1dGVyIChEZSksIEluYy4KLSAwMDowNDpGRCAgSmFwYW4gQ29udHJvbCBFbmdpbmVlcmluZyBD by4sIEx0ZC4KLSAwMDowNDpGRSAgUGVsYWdvIE5ldHdvcmtzCi0gMDA6MDQ6RkYgIEFjcm9uZXQg Q28uLCBMdGQuCi1AQCAtMTMwMyw4ICsxMzEyLDggQEAKLSAwMDowNTowQiAgU2ljb20gU3lzdGVt cywgSW5jLgotIDAwOjA1OjBDICBOZXR3b3JrIFBob3RvbmljcywgSW5jLgotIDAwOjA1OjBEICBN aWRzdHJlYW0gVGVjaG5vbG9naWVzLCBJbmMuCi0tMDA6MDU6MEUgIDN3YXJlLCBJbmMuCi0tMDA6 MDU6MEYgIFRhbmFrYSBTL3MgTHRkLgotKzAwOjA1OjBFICAzV2FyZSwgSW5jLgotKzAwOjA1OjBG ICBUYW5ha2EgUy9TIEx0ZC4KLSAwMDowNToxMCAgSW5maW5pdGUgU2hhbmdoYWkgQ29tbXVuaWNh dGlvbiBUZXJtaW5hbHMgTHRkLgotIDAwOjA1OjExICBDb21wbGVtZW50YXJ5IFRlY2hub2xvZ2ll cyBMdGQKLSAwMDowNToxMiAgTWVzaG5ldHdvcmtzLCBJbmMuCi1AQCAtMTMxNSwxNyArMTMyNCwx NyBAQAotIDAwOjA1OjE3ICBTaGVsbGNvbW0sIEluYy4KLSAwMDowNToxOCAgSnVwaXRlcnMgVGVj aG5vbG9neQotIDAwOjA1OjE5ICBTaWVtZW5zIEJ1aWxkaW5nIFRlY2hub2xvZ2llcyBBZywKLS0w MDowNToxQSAgM2NvbSBFdXJvcGUgTHRkLgotKzAwOjA1OjFBICAzQ29tIEV1cm9wZSBMdGQuCi0g MDA6MDU6MUIgIE1hZ2ljIENvbnRyb2wgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgotIDAwOjA1OjFD ICBYbmV0IFRlY2hub2xvZ3kgQ29ycC4KLSAwMDowNToxRCAgQWlyb2NvbiwgSW5jLgotLTAwOjA1 OjFFICBSaGFwc29keSBOZXR3b3JrcwotKzAwOjA1OjFFICBCcm9jYWRlIENvbW11bmljYXRpb25z IFN5c3RlbXMsIEluYy4KLSAwMDowNToxRiAgVGFpamluIE1lZGlhIENvLiwgTHRkLgotIDAwOjA1 OjIwICBTbWFydHJvbml4LCBJbmMuCi0gMDA6MDU6MjEgIENvbnRyb2wgTWljcm9zeXN0ZW1zCi0t MDA6MDU6MjIgIExlYSpkIENvcnBvcmF0aW9uLCBJbmMuCi0rMDA6MDU6MjIgIExlYSpEIENvcnBv cmF0aW9uLCBJbmMuCi0gMDA6MDU6MjMgIEF2bCBMaXN0IEdtYmgKLS0wMDowNToyNCAgQnRsIFN5 c3RlbSAoaGspIExpbWl0ZWQKLSswMDowNToyNCAgQnRsIFN5c3RlbSAoSGspIExpbWl0ZWQKLSAw MDowNToyNSAgUHVyZXRlayBJbmR1c3RyaWFsIENvLiwgTHRkLgotIDAwOjA1OjI2ICBJcGFzIEdt YmgKLSAwMDowNToyNyAgU2ogVGVrIENvLiBMdGQKLUBAIC0xMzU5LDcgKzEzNjgsNyBAQAotIDAw OjA1OjQzICBJcSBXaXJlbGVzcyBHbWJoCi0gMDA6MDU6NDQgIFZhbGxleSBUZWNobm9sb2dpZXMs IEluYy4KLSAwMDowNTo0NSAgSW50ZXJuZXQgUGhvdG9uaWNzCi0tMDA6MDU6NDYgIEstc29sdXRp b25zIEluYy4KLSswMDowNTo0NiAgSy1Tb2x1dGlvbnMgSW5jLgotIDAwOjA1OjQ3ICBTdGFyZW50 IE5ldHdvcmtzCi0gMDA6MDU6NDggIERpc2NvIENvcnBvcmF0aW9uCi0gMDA6MDU6NDkgIFNhbGly YSBPcHRpY2FsIE5ldHdvcmsgU3lzdGVtcwotQEAgLTEzNjksNyArMTM3OCw3IEBACi0gMDA6MDU6 NEQgIEJyYW5zIFRlY2hub2xvZ2llcywgSW5jLgotIDAwOjA1OjRFICBQaGlsaXBzIENvbXBvbmVu dHMKLSAwMDowNTo0RiAgUHJpdmF0ZQotLTAwOjA1OjUwICBEaWdpLXRlY2ggQ29tbXVuaWNhdGlv bnMgTGltaXRlZAotKzAwOjA1OjUwICBEaWdpLVRlY2ggQ29tbXVuaWNhdGlvbnMgTGltaXRlZAot IDAwOjA1OjUxICBGICYgUyBFbGVrdHJvbmlrIFN5c3RlbWUgR21iaAotIDAwOjA1OjUyICBYeWNv dGVjIENvbXB1dGVyIEdtYmgKLSAwMDowNTo1MyAgRHZjIENvbXBhbnksIEluYy4KLUBAIC0xMzc4 LDI1ICsxMzg3LDI1IEBACi0gMDA6MDU6NTYgIDM2MCBTeXN0ZW1zCi0gMDA6MDU6NTcgIEFnaWxl IFR2IENvcnBvcmF0aW9uCi0gMDA6MDU6NTggIFN5bmNocm9ub3VzLCBJbmMuCi0tMDA6MDU6NTkg IEludHJhY29tIFMuYS4KLSswMDowNTo1OSAgSW50cmFjb20gUy5BLgotIDAwOjA1OjVBICBQb3dl ciBEc2luZSBMdGQuCi0gMDA6MDU6NUIgIENoYXJsZXMgSW5kdXN0cmllcywgTHRkLgotIDAwOjA1 OjVDICBLb3dhIENvbXBhbnksIEx0ZC4KLS0wMDowNTo1RCAgRC1MaW5rIERXTC02NTAsIERXTC02 NTBICi0rMDA6MDU6NUQgIEQtTGluayBTeXN0ZW1zLCBJbmMuCi0gMDA6MDU6NUUgIENpc2NvIFN5 c3RlbXMsIEluYy4KLSAwMDowNTo1RiAgQ2lzY28gU3lzdGVtcywgSW5jLgotLTAwOjA1OjYwICBM ZWFkZXIgQ29tbS5jby4sIEx0ZAotKzAwOjA1OjYwICBMZWFkZXIgQ29tbS5Dby4sIEx0ZAotIDAw OjA1OjYxICBOYWMgSW1hZ2UgVGVjaG5vbG9neSwgSW5jLgotIDAwOjA1OjYyICBEaWdpdGFsIFZp ZXcgTGltaXRlZAotLTAwOjA1OjYzICBKLXdvcmtzLCBJbmMuCi0rMDA6MDU6NjMgIEotV29ya3Ms IEluYy4KLSAwMDowNTo2NCAgVHNpbmdodWEgQml0d2F5IENvLiwgTHRkLgotIDAwOjA1OjY1ICBU YWlseW4gQ29tbXVuaWNhdGlvbiBDb21wYW55IEx0ZC4KLS0wMDowNTo2NiAgU2VjdWkuY29tIENv cnBvcmF0aW9uCi0rMDA6MDU6NjYgIFNlY3VpLkNvbSBDb3Jwb3JhdGlvbgotIDAwOjA1OjY3ICBF dHltb25pYyBEZXNpZ24sIEluYy4KLSAwMDowNTo2OCAgUGlsdG9maXNoIE5ldHdvcmtzIEFiCi0g MDA6MDU6NjkgIFZtd2FyZSwgSW5jLgotLTAwOjA1OjZBICBQcml2YXRlCi0tMDA6MDU6NkIgIEMu cC4gVGVjaG5vbG9neSBDby4sIEx0ZC4KLSswMDowNTo2QSAgSGV1ZnQgU3lzdGVtdGVjaG5payBH bWJoCi0rMDA6MDU6NkIgIEMuUC4gVGVjaG5vbG9neSBDby4sIEx0ZC4KLSAwMDowNTo2QyAgSHVu ZyBDaGFuZyBDby4sIEx0ZC4KLSAwMDowNTo2RCAgUGFjaWZpYyBDb3Jwb3JhdGlvbgotIDAwOjA1 OjZFICBOYXRpb25hbCBFbmhhbmNlIFRlY2hub2xvZ3ksIEluYy4KLUBAIC0xNDA2LDcgKzE0MTUs NyBAQAotIDAwOjA1OjcyICBEZW9uZXQgQ28uLCBMdGQuCi0gMDA6MDU6NzMgIENpc2NvIFN5c3Rl bXMsIEluYy4KLSAwMDowNTo3NCAgQ2lzY28gU3lzdGVtcywgSW5jLgotLTAwOjA1Ojc1ICBDZHMt ZWxlY3Ryb25pY3MgQnYKLSswMDowNTo3NSAgQ2RzLUVsZWN0cm9uaWNzIEJ2Ci0gMDA6MDU6NzYg IE5zbSBUZWNobm9sb2d5IEx0ZC4KLSAwMDowNTo3NyAgU20gSW5mb3JtYXRpb24gJiBDb21tdW5p Y2F0aW9uCi0gMDA6MDU6NzggIFByaXZhdGUKLUBAIC0xNDMxLDcgKzE0NDAsNyBAQAotIDAwOjA1 OjhCICBJcG1lbnRhbCwgSW5jLgotIDAwOjA1OjhDICBPcGVudGVjaCBJbmMuCi0gMDA6MDU6OEQg IEx5bnggUGhvdG9uaWMgTmV0d29ya3MsIEluYy4KLS0wMDowNTo4RSAgQWhlYWQgQ29tbXVuaWNh dGlvbnMgU3lzdGVtIEdtYmgKLSswMDowNTo4RSAgRmxleHRyb25pY3MgSW50ZXJuYXRpb25hbCBH bWJoICYgQ28uIE5mZy4gS2cKLSAwMDowNTo4RiAgQ2xjc29mdCBDby4KLSAwMDowNTo5MCAgU3dp c3N2b2ljZSBMdGQuCi0gMDA6MDU6OTEgIEFjdGl2ZSBTaWxpY29uIEx0ZC4KLUBAIC0xNDQxLDgg KzE0NTAsOCBAQAotIDAwOjA1Ojk1ICBBbGVzaXMgQ29ycG9yYXRpb24KLSAwMDowNTo5NiAgR2Vu b3RlY2ggQ28uLCBMdGQuCi0gMDA6MDU6OTcgIEVhZ2xlIFRyYWZmaWMgQ29udHJvbCBTeXN0ZW1z Ci0tMDA6MDU6OTggIENyb25vcyBTLnIubC4KLS0wMDowNTo5OSAgUGVpIEVsZWN0cm9uaWNzLCBJ bmMuCi0rMDA6MDU6OTggIENyb25vcyBTLlIuTC4KLSswMDowNTo5OSAgRHJzIFRlc3QgQW5kIEVu ZXJneSBNYW5hZ2VtZW50IE9yIERycy1UZW0KLSAwMDowNTo5QSAgQ2lzY28gU3lzdGVtcywgSW5j LgotIDAwOjA1OjlCICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi0gMDA6MDU6OUMgIEtsZWlua25lY2h0 IEdtYmgsIEluZy4gQnVlcm8KLUBAIC0xNDY0LDExICsxNDczLDExIEBACi0gMDA6MDU6QUMgIE5v cnRoZXJuIERpZ2l0YWwsIEluYy4KLSAwMDowNTpBRCAgVG9wc3BpbiBDb21tdW5pY2F0aW9ucywg SW5jLgotIDAwOjA1OkFFICBNZWRpYXBvcnQgVXNhCi0tMDA6MDU6QUYgIElubm9zY2FuIENvbXB1 dGluZyBBL3MKLSswMDowNTpBRiAgSW5ub3NjYW4gQ29tcHV0aW5nIEEvUwotIDAwOjA1OkIwICBL b3JlYSBDb21wdXRlciBUZWNobm9sb2d5IENvLiwgTHRkLgotIDAwOjA1OkIxICBBc2IgVGVjaG5v bG9neSBCdgotIDAwOjA1OkIyICBNZWRpc29uIENvLiwgTHRkLgotLTAwOjA1OkIzICBBc2FoaS1l bmdpbmVlcmluZyBDby4sIEx0ZC4KLSswMDowNTpCMyAgQXNhaGktRW5naW5lZXJpbmcgQ28uLCBM dGQuCi0gMDA6MDU6QjQgIEFjZWV4IENvcnBvcmF0aW9uCi0gMDA6MDU6QjUgIEJyb2FkY29tIFRl Y2hub2xvZ2llcwotIDAwOjA1OkI2ICBJbnN5cyBNaWNyb2VsZWN0cm9uaWNzIEdtYmgKLUBAIC0x NDgyLDEzICsxNDkxLDEzIEBACi0gMDA6MDU6QkUgIEtvbmdzYmVyZyBTZWF0ZXggQXMKLSAwMDow NTpCRiAgSnVzdGV6eSBUZWNobm9sb2d5LCBJbmMuCi0gMDA6MDU6QzAgIERpZ2l0YWwgTmV0d29y ayBBbGFjYXJ0ZSBDby4sIEx0ZC4KLS0wMDowNTpDMSAgQS1reXVuZyBNb3Rpb24sIEluYy4KLS0w MDowNTpDMiAgRGlnaXRhbCBBcmNod2F5LCBJbmMuCi0rMDA6MDU6QzEgIEEtS3l1bmcgTW90aW9u LCBJbmMuCi0rMDA6MDU6QzIgIFNvcm9udGksIEluYy4KLSAwMDowNTpDMyAgUGFjaWZpYyBJbnN0 cnVtZW50cywgSW5jLgotIDAwOjA1OkM0ICBUZWxlY3QsIEluYy4KLSAwMDowNTpDNSAgRmxhZ2Eg SGYKLSAwMDowNTpDNiAgVHJpeiBDb21tdW5pY2F0aW9ucwotLTAwOjA1OkM3ICBJL2YtY29tIEEv cwotKzAwOjA1OkM3ICBJL0YtQ29tIEEvUwotIDAwOjA1OkM4ICBWZXJ5dGVjaAotIDAwOjA1OkM5 ICBMZyBJbm5vdGVrCi0gMDA6MDU6Q0EgIEhpdHJvbiBUZWNobm9sb2d5LCBJbmMuCi1AQCAtMTUx Nyw3ICsxNTI2LDcgQEAKLSAwMDowNTpFMSAgVHJlbGxpcyBQaG90b25pY3MsIEx0ZC4KLSAwMDow NTpFMiAgQ3JlYXRpdiBOZXR3b3JrIFRlY2hub2xvZ2llcwotIDAwOjA1OkUzICBMaWdodHNhbmQg Q29tbXVuaWNhdGlvbnMsIEluYy4KLS0wMDowNTpFNCAgUmVkIExpb24gQ29udHJvbHMgTC5wLgot KzAwOjA1OkU0ICBSZWQgTGlvbiBDb250cm9scyBMLlAuCi0gMDA6MDU6RTUgIFJlbmlzaGF3IFBs YwotIDAwOjA1OkU2ICBFZ2VuZXJhLCBJbmMuCi0gMDA6MDU6RTcgIE5ldHJha2UgQ29ycC4KLUBA IC0xNTQzLDE5ICsxNTUyLDE5IEBACi0gMDA6MDU6RkIgIFNoYXJlZ2F0ZSwgSW5jLgotIDAwOjA1 OkZDICBTY2hlbmNrIFBlZ2FzdXMgQ29ycC4KLSAwMDowNTpGRCAgUGFja2V0bGlnaHQgTmV0d29y a3MgTHRkLgotLTAwOjA1OkZFICBUcmFmaWNvbiBOLnYuCi0rMDA6MDU6RkUgIFRyYWZpY29uIE4u Vi4KLSAwMDowNTpGRiAgU25zIFNvbHV0aW9ucywgSW5jLgotIDAwOjA2OjAwICBUb2t5byBFbGVj dHJvbmljIEluZHVzdHJ5IENvLiwgTHRkLgotIDAwOjA2OjAxICBPdGFuaWtlaWtpIENvLiwgTHRk LgotIDAwOjA2OjAyICBDaXJraXRlY2ggRWxlY3Ryb25pY3MgQ28uCi0gMDA6MDY6MDMgIEJha2Vy IEh1Z2hlcyBJbmMuCi0tMDA6MDY6MDQgIEB0cmFjayBDb21tdW5pY2F0aW9ucywgSW5jLgotKzAw OjA2OjA0ICBAVHJhY2sgQ29tbXVuaWNhdGlvbnMsIEluYy4KLSAwMDowNjowNSAgSW5uY29tIElu dGVybmF0aW9uYWwsIEluYy4KLSAwMDowNjowNiAgUmFwaWR3YW4sIEluYy4KLSAwMDowNjowNyAg T21uaSBEaXJlY3Rpb25hbCBDb250cm9sIFRlY2hub2xvZ3kgSW5jLgotLTAwOjA2OjA4ICBBdC1z a3kgU2FzCi0rMDA6MDY6MDggIEF0LVNreSBTYXMKLSAwMDowNjowOSAgQ3Jvc3Nwb3J0IFN5c3Rl bXMKLS0wMDowNjowQSAgQmx1ZTJzcGFjZQotKzAwOjA2OjBBICBCbHVlMlNwYWNlCi0gMDA6MDY6 MEIgIFBhY2VsaW5lIFN5c3RlbXMgQ29ycG9yYXRpb24KLSAwMDowNjowQyAgTWVsY28gSW5kdXN0 cmllcywgSW5jLgotIDAwOjA2OjBEICBXYXZlNyBPcHRpY3MKLUBAIC0xNTgyLDcgKzE1OTEsNyBA QAotIDAwOjA2OjIyICBDaHVuZyBGdSBDaGVuIFllaCBFbnRlcnByaXNlIENvcnAuCi0gMDA6MDY6 MjMgIE1nZSBVcHMgU3lzdGVtcyBGcmFuY2UKLSAwMDowNjoyNCAgR2VudG5lciBDb21tdW5pY2F0 aW9ucyBDb3JwLgotLTAwOjA2OjI1ICBMaW5rc3lzIFdQQzExIHYyLjUsIEQtTGluayBEQ0YtNjUw VywgTGlua3N5cyBXUEMxMSB2MwotKzAwOjA2OjI1ICBUaGUgTGlua3N5cyBHcm91cCwgSW5jLgot IDAwOjA2OjI2ICBNd2UgR21iaAotIDAwOjA2OjI3ICBVbml3aWRlIFRlY2hub2xvZ2llcywgSW5j LgotIDAwOjA2OjI4ICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi1AQCAtMTU5MCw3ICsxNTk5LDcgQEAK LSAwMDowNjoyQSAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAwOjA2OjJCICBJbnRyYXNlcnZlciBU ZWNobm9sb2d5Ci0gMDA6MDY6MkMgIE5ldHdvcmsgUm9ib3RzLCBJbmMuCi0tMDA6MDY6MkQgIFRv dWNoc3RhciBUZWNobm9sb2dpZXMsIEwubC5jLgotKzAwOjA2OjJEICBUb3VjaHN0YXIgVGVjaG5v bG9naWVzLCBMLkwuQy4KLSAwMDowNjoyRSAgQXJpc3RvcyBMb2dpYyBDb3JwLgotIDAwOjA2OjJG ICBQaXZvdGVjaCBTeXN0ZW1zIEluYy4KLSAwMDowNjozMCAgQWR0cmFueiBTd2VkZW4KLUBAIC0x NjAwLDggKzE2MDksOCBAQAotIDAwOjA2OjM0ICBHdGUgQWlyZm9uZSBJbmMuCi0gMDA6MDY6MzUg IFBhY2tldGFpciBOZXR3b3JrcywgSW5jLgotIDAwOjA2OjM2ICBKZWRhaSBCcm9hZGJhbmQgTmV0 d29ya3MKLS0wMDowNjozNyAgVG9wdHJlbmQtbWV0YSBJbmZvcm1hdGlvbiAoc2hlbnpoZW4pIElu Yy4KLS0wMDowNjozOCAgU3VuZ2ppbiBDJmMgQ28uLCBMdGQuCi0rMDA6MDY6MzcgIFRvcHRyZW5k LU1ldGEgSW5mb3JtYXRpb24gKFNoZW56aGVuKSBJbmMuCi0rMDA6MDY6MzggIFN1bmdqaW4gQyZD IENvLiwgTHRkLgotIDAwOjA2OjM5ICBOZXd0ZWMKLSAwMDowNjozQSAgRHVyYSBNaWNybywgSW5j LgotIDAwOjA2OjNCICBBcmN0dXJ1cyBOZXR3b3JrcywgSW5jLgotQEAgLTE2MTYsMTUgKzE2MjUs MTUgQEAKLSAwMDowNjo0NCAgTmVpeCBJbmMuCi0gMDA6MDY6NDUgIE1laXNlaSBFbGVjdHJpYyBD by4gTHRkLgotIDAwOjA2OjQ2ICBTaGVuemhlbiBYdW5iYW8gTmV0d29yayBUZWNobm9sb2d5IENv IEx0ZAotLTAwOjA2OjQ3ICBFdHJhbGkgUy5hLgotKzAwOjA2OjQ3ICBFdHJhbGkgUy5BLgotIDAw OjA2OjQ4ICBTZWVkc3dhcmUsIEluYy4KLSAwMDowNjo0OSAgUXVhbnRlCi0tMDA6MDY6NEEgIEhv bmV5d2VsbCBDby4sIEx0ZC4gKGtvcmVhKQotKzAwOjA2OjRBICBIb25leXdlbGwgQ28uLCBMdGQu IChLb3JlYSkKLSAwMDowNjo0QiAgQWxleG9uIENvLiwgTHRkLgotIDAwOjA2OjRDICBJbnZpY3Rh IE5ldHdvcmtzLCBJbmMuCi0gMDA6MDY6NEQgIFNlbmNvcmUKLSAwMDowNjo0RSAgQnJvYWQgTmV0 IFRlY2hub2xvZ3kgSW5jLgotLTAwOjA2OjRGICBQcm8tbmV0cyBUZWNobm9sb2d5IENvcnBvcmF0 aW9uCi0rMDA6MDY6NEYgIFByby1OZXRzIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KLSAwMDowNjo1 MCAgVGlidXJvbiBOZXR3b3JrcywgSW5jLgotIDAwOjA2OjUxICBBc3BlbiBOZXR3b3JrcyBJbmMu Ci0gMDA6MDY6NTIgIENpc2NvIFN5c3RlbXMsIEluYy4KLUBAIC0xNjM0LDcgKzE2NDMsNyBAQAot IDAwOjA2OjU2ICBUYWN0ZWwgQWIKLSAwMDowNjo1NyAgTWFya2V0IENlbnRyYWwsIEluYy4KLSAw MDowNjo1OCAgSGVsbXV0IEZpc2NoZXIgR21iaCAmIENvLiBLZwotLTAwOjA2OjU5ICBFYWwgKGFw ZWxkb29ybikgQi52LgotKzAwOjA2OjU5ICBFYWwgKEFwZWxkb29ybikgQi5WLgotIDAwOjA2OjVB ICBTdHJpeCBTeXN0ZW1zCi0gMDA6MDY6NUIgIERlbGwgQ29tcHV0ZXIgQ29ycC4KLSAwMDowNjo1 QyAgTWFsYWNoaXRlIFRlY2hub2xvZ2llcywgSW5jLgotQEAgLTE2NTQsNyArMTY2Myw3IEBACi0g MDA6MDY6NkEgIEluZmluaWNvbiBTeXN0ZW1zLCBJbmMuCi0gMDA6MDY6NkIgIFN5c21leCBDb3Jw b3JhdGlvbgotIDAwOjA2OjZDICBSb2JpbnNvbiBDb3Jwb3JhdGlvbgotLTAwOjA2OjZEICBDb21w dXByaW50IFMucC5hLgotKzAwOjA2OjZEICBDb21wdXByaW50IFMuUC5BLgotIDAwOjA2OjZFICBE ZWx0YSBFbGVjdHJvbmljcywgSW5jLgotIDAwOjA2OjZGICBLb3JlYSBEYXRhIFN5c3RlbXMKLSAw MDowNjo3MCAgVXBwb25ldHRpIE95Ci1AQCAtMTY2OCw3ICsxNjc3LDcgQEAKLSAwMDowNjo3OCAg TWFyYW50eiBKYXBhbiwgSW5jLgotIDAwOjA2Ojc5ICBLb25hbWkgQ29ycG9yYXRpb24KLSAwMDow Njo3QSAgSm1wIFN5c3RlbXMKLS0wMDowNjo3QiAgVG9wbGluayBDJmMgQ29ycG9yYXRpb24KLSsw MDowNjo3QiAgVG9wbGluayBDJkMgQ29ycG9yYXRpb24KLSAwMDowNjo3QyAgQ2lzY28gU3lzdGVt cywgSW5jLgotIDAwOjA2OjdEICBUYWthc2FnbyBMdGQuCi0gMDA6MDY6N0UgIFdpbmNvbSBTeXN0 ZW1zLCBJbmMuCi1AQCAtMTY4Myw5ICsxNjkyLDkgQEAKLSAwMDowNjo4NyAgT21uaXRyb24gU3lz dGVtcyBUZWNobm9sb2d5LCBJbmMuCi0gMDA6MDY6ODggIFRlbHdheXMgQ29tbXVuaWNhdGlvbiBD by4sIEx0ZC4KLSAwMDowNjo4OSAgWWxleiBUZWNobm9sb2dpZXMgUHRlIEx0ZAotLTAwOjA2OjhB ICBOZXVyb25uZXQgQ28uIEx0ZC4gUiZkIENlbnRlcgotKzAwOjA2OjhBICBOZXVyb25uZXQgQ28u IEx0ZC4gUiZEIENlbnRlcgotIDAwOjA2OjhCICBBaXJydW5uZXIgVGVjaG5vbG9naWVzLCBJbmMu Ci0tMDA6MDY6OEMgIDNjb20gQ29ycG9yYXRpb24KLSswMDowNjo4QyAgM0NvbSBDb3Jwb3JhdGlv bgotIDAwOjA2OjhEICBTYW5nYXRlIFN5c3RlbXMKLSAwMDowNjo4RSAgSGlkIENvcnBvcmF0aW9u Ci0gMDA6MDY6OEYgIFRlbGVtb25pdG9yLCBJbmMuCi1AQCAtMTcxMSwxMiArMTcyMCwxMiBAQAot IDAwOjA2OkEzICBCaXRyYW4gQ29ycG9yYXRpb24KLSAwMDowNjpBNCAgSW5ub3dlbGwgQ29ycC4K LSAwMDowNjpBNSAgUGlub24gQ29ycC4KLS0wMDowNjpBNiAgQXJ0aXN0aWMgTGljZW5jZSAodWsp IEx0ZAotKzAwOjA2OkE2ICBBcnRpc3RpYyBMaWNlbmNlIChVaykgTHRkCi0gMDA6MDY6QTcgIFBy aW1hcmlvbgotIDAwOjA2OkE4ICBLYyBUZWNobm9sb2d5LCBJbmMuCi0gMDA6MDY6QTkgIFVuaXZl cnNhbCBJbnN0cnVtZW50cyBDb3JwLgotIDAwOjA2OkFBICBNaWx0b3BlIENvcnBvcmF0aW9uCi0t MDA6MDY6QUIgIFctbGluayBTeXN0ZW1zLCBJbmMuCi0rMDA6MDY6QUIgIFctTGluayBTeXN0ZW1z LCBJbmMuCi0gMDA6MDY6QUMgIEludGVyc29mdCBDby4KLSAwMDowNjpBRCAgS2IgRWxlY3Ryb25p Y3MgTHRkLgotIDAwOjA2OkFFICBIaW1hY2hhbCBGdXR1cmlzdGljIENvbW11bmljYXRpb25zIEx0 ZAotQEAgLTE3MjcsMTAgKzE3MzYsMTAgQEAKLSAwMDowNjpCMyAgRGlhZ3JhcGggQ29ycG9yYXRp b24KLSAwMDowNjpCNCAgVm9ybmUgSW5kdXN0cmllcywgSW5jLgotIDAwOjA2OkI1ICBMdW1pbmVu dCwgSW5jLgotLTAwOjA2OkI2ICBOaXItb3IgSXNyYWVsIEx0ZC4KLSswMDowNjpCNiAgTmlyLU9y IElzcmFlbCBMdGQuCi0gMDA6MDY6QjcgIFRlbGVtIEdtYmgKLSAwMDowNjpCOCAgQmFuZHNwZWVk IFB0eSBMdGQKLS0wMDowNjpCOSAgQTV0ZWsgQ29ycC4KLSswMDowNjpCOSAgQTVUZWsgQ29ycC4K LSAwMDowNjpCQSAgV2VzdHdhdmUgQ29tbXVuaWNhdGlvbnMKLSAwMDowNjpCQiAgQXRpIFRlY2hu b2xvZ2llcyBJbmMuCi0gMDA6MDY6QkMgIE1hY3JvbGluaywgSW5jLgotQEAgLTE3NDQsMzMgKzE3 NTMsMzMgQEAKLSAwMDowNjpDNCAgUGlvbGluayBJbmMuCi0gMDA6MDY6QzUgIElubm92aSBUZWNo bm9sb2dpZXMgTGltaXRlZAotIDAwOjA2OkM2ICBMZXNzd2lyZSBBZwotLTAwOjA2OkM3ICBSZm5l dCBUZWNobm9sb2dpZXMgUHRlIEx0ZCAocykKLSswMDowNjpDNyAgUmZuZXQgVGVjaG5vbG9naWVz IFB0ZSBMdGQgKFMpCi0gMDA6MDY6QzggIFN1bWl0b21vIE1ldGFsIE1pY3JvIERldmljZXMsIElu Yy4KLSAwMDowNjpDOSAgVGVjaG5pY2FsIE1hcmtldGluZyBSZXNlYXJjaCwgSW5jLgotLTAwOjA2 OkNBICBBbWVyaWNhbiBDb21wdXRlciAmIERpZ2l0YWwgQ29tcG9uZW50cywgSW5jLiAoYWNkYykK LS0wMDowNjpDQiAgSm90cm9uIEVsZWN0cm9uaWNzIEEvcwotKzAwOjA2OkNBICBBbWVyaWNhbiBD b21wdXRlciAmIERpZ2l0YWwgQ29tcG9uZW50cywgSW5jLiAoQWNkYykKLSswMDowNjpDQiAgSm90 cm9uIEVsZWN0cm9uaWNzIEEvUwotIDAwOjA2OkNDICBKbWkgRWxlY3Ryb25pY3MgQ28uLCBMdGQu Ci0gMDA6MDY6Q0QgIENyZW9zY2l0ZXggQ29ycG9yYXRpb24gTHRkLgotIDAwOjA2OkNFICBEYXRl bm8KLS0wMDowNjpDRiAgVGhhbGVzIEF2aW9uaWNzIEluLWZsaWdodCBTeXN0ZW1zLCBMbGMKLSsw MDowNjpDRiAgVGhhbGVzIEF2aW9uaWNzIEluLUZsaWdodCBTeXN0ZW1zLCBMbGMKLSAwMDowNjpE MCAgRWxnYXIgRWxlY3Ryb25pY3MgQ29ycC4KLSAwMDowNjpEMSAgVGFob2UgTmV0d29ya3MsIElu Yy4KLSAwMDowNjpEMiAgVHVuZHJhIFNlbWljb25kdWN0b3IgQ29ycC4KLS0wMDowNjpEMyAgQWxw aGEgVGVsZWNvbSwgSW5jLiBVLnMuYS4KLSswMDowNjpEMyAgQWxwaGEgVGVsZWNvbSwgSW5jLiBV LlMuQS4KLSAwMDowNjpENCAgSW50ZXJhY3RpdmUgT2JqZWN0cywgSW5jLgotIDAwOjA2OkQ1ICBE aWFtb25kIFN5c3RlbXMgQ29ycC4KLSAwMDowNjpENiAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAw OjA2OkQ3ICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi0gMDA6MDY6RDggIE1hcGxlIE9wdGljYWwgU3lz dGVtcwotLTAwOjA2OkQ5ICBJcG0tbmV0IFMucC5hLgotKzAwOjA2OkQ5ICBJcG0tTmV0IFMuUC5B LgotIDAwOjA2OkRBICBJdHJhbiBDb21tdW5pY2F0aW9ucyBMdGQuCi0gMDA6MDY6REIgIEljaGlw cyBDby4sIEx0ZC4KLS0wMDowNjpEQyAgU3lhYmFzIFRlY2hub2xvZ3kgKGFtcXVlc3QpCi0rMDA6 MDY6REMgIFN5YWJhcyBUZWNobm9sb2d5IChBbXF1ZXN0KQotIDAwOjA2OkREICBBdCAmIFQgTGFi b3JhdG9yaWVzIC0gQ2FtYnJpZGdlIEx0ZAotIDAwOjA2OkRFICBGbGFzaCBUZWNobm9sb2d5Ci0g MDA6MDY6REYgIEFpZG9uaWMgQ29ycG9yYXRpb24KLSAwMDowNjpFMCAgTWF0IENvLiwgTHRkLgot LTAwOjA2OkUxICBUZWNobm8gVHJhZGUgUy5hCi0rMDA6MDY6RTEgIFRlY2hubyBUcmFkZSBTLkEK LSAwMDowNjpFMiAgQ2VlbWF4IFRlY2hub2xvZ3kgQ28uLCBMdGQuCi0gMDA6MDY6RTMgIFF1YW50 aXRhdGl2ZSBJbWFnaW5nIENvcnBvcmF0aW9uCi0gMDA6MDY6RTQgIENpdGVsIFRlY2hub2xvZ2ll cyBMdGQuCi1AQCAtMTc3OSwxMSArMTc4OCwxMSBAQAotIDAwOjA2OkU3ICBCaXQgQmxpdHogQ29t bXVuaWNhdGlvbnMgSW5jLgotIDAwOjA2OkU4ICBPcHRpY2FsIE5ldHdvcmsgVGVzdGluZywgSW5j LgotIDAwOjA2OkU5ICBJbnRpbWUgQ29ycC4KLS0wMDowNjpFQSAgRWx6ZXQ4MCBNaWtyb2NvbXB1 dGVyIEdtYmgmY28uIEtnCi0rMDA6MDY6RUEgIEVsemV0ODAgTWlrcm9jb21wdXRlciBHbWJoJkNv LiBLZwotIDAwOjA2OkVCICBHbG9iYWwgRGF0YQotLTAwOjA2OkVDICBNL2EgQ29tIFByaXZhdGUg UmFkaW8gU3lzdGVtIEluYy4KLSswMDowNjpFQyAgTS9BIENvbSBQcml2YXRlIFJhZGlvIFN5c3Rl bSBJbmMuCi0gMDA6MDY6RUQgIEluYXJhIE5ldHdvcmtzCi0tMDA6MDY6RUUgIFNoZW55YW5nIE5l dS1lcmEgSW5mb3JtYXRpb24gJiBUZWNobm9sb2d5IFN0b2NrIENvLiwgTHRkCi0rMDA6MDY6RUUg IFNoZW55YW5nIE5ldS1FcmEgSW5mb3JtYXRpb24gJiBUZWNobm9sb2d5IFN0b2NrIENvLiwgTHRk Ci0gMDA6MDY6RUYgIE1heHhhbiBTeXN0ZW1zLCBJbmMuCi0gMDA6MDY6RjAgIERpZ2VvLCBJbmMu Ci0gMDA6MDY6RjEgIE9wdGlsbGlvbgotQEAgLTE3OTMsMTMgKzE4MDIsMTMgQEAKLSAwMDowNjpG OCAgUHJpdmF0ZQotIDAwOjA2OkY5ICBNaXRzdWkgWm9zZW4gU3lzdGVtcyBSZXNlYXJjaCBJbmMu Ci0gMDA6MDY6RkEgIElwIFNxdWFyZSBDbywgTHRkLgotLTAwOjA2OkZCICBIaXRhY2hpIEtva2kg Q28uLCBMdGQuCi0rMDA6MDY6RkIgIEhpdGFjaGkgUHJpbnRpbmcgU29sdXRpb25zLCBMdGQuCi0g MDA6MDY6RkMgIEZuZXQgQ28uLCBMdGQuCi0gMDA6MDY6RkQgIENvbWpldCBJbmZvcm1hdGlvbiBT eXN0ZW1zIENvcnAuCi0gMDA6MDY6RkUgIENlbGlvbiBOZXR3b3JrcywgSW5jLgotIDAwOjA2OkZG ICBTaGViYSBTeXN0ZW1zIENvLiwgTHRkLgotIDAwOjA3OjAwICBaZXR0YW1lZGlhIEtvcmVhCi0t MDA6MDc6MDEgIFJhY2FsLWRhdGFjb20KLSswMDowNzowMSAgUmFjYWwtRGF0YWNvbQotIDAwOjA3 OjAyICBWYXJpYW4gTWVkaWNhbCBTeXN0ZW1zCi0gMDA6MDc6MDMgIENzZWUgVHJhbnNwb3J0Ci0g MDA6MDc6MDUgIEVuZHJlc3MgJiBIYXVzZXIgR21iaCAmIENvCi1AQCAtMTgwOSw5ICsxODE4LDkg QEAKLSAwMDowNzowOSAgV2VzdGVyc3RyYW5kIFVyZmFicmlrIEFiCi0gMDA6MDc6MEEgIFVuaWNv bSBBdXRvbWF0aW9uIENvLiwgTHRkLgotIDAwOjA3OjBCICBPY3RhbCwgU2EKLS0wMDowNzowQyAg U3ZhLWludHJ1c2lvbi5jb20gQ28uIEx0ZC4KLSswMDowNzowQyAgU3ZhLUludHJ1c2lvbi5Db20g Q28uIEx0ZC4KLSAwMDowNzowRCAgQ2lzY28gU3lzdGVtcyBJbmMuCi0tMDA6MDc6MEUgIENpc2Nv IEFJUi1QQ00zNTIKLSswMDowNzowRSAgQ2lzY28gU3lzdGVtcyBJbmMuCi0gMDA6MDc6MEYgIEZ1 amFudCwgSW5jLgotIDAwOjA3OjEwICBBZGF4LCBJbmMuCi0gMDA6MDc6MTEgIEFjdGVybmEKLUBA IC0xODI1LDkgKzE4MzQsOSBAQAotIDAwOjA3OjE5ICBNb2JpaXMgQ28uLCBMdGQuCi0gMDA6MDc6 MUEgIEZpbmVkaWdpdGFsIEluYy4KLSAwMDowNzoxQiAgUG9zaXRpb24gVGVjaG5vbG9neSBJbmMu Ci0tMDA6MDc6MUMgIEF0JnQgRml4ZWQgV2lyZWxlc3MgU2VydmljZXMKLS0wMDowNzoxRCAgU2F0 ZWxzYSBTaXN0ZW1hcyBZIEFwbGljYWNpb25lcyBEZSBUZWxlY29tdW5pY2FjaW9uZXMsIFMuYS4K LS0wMDowNzoxRSAgVHJpLW0gRW5naW5lZXJpbmcgLyBOdXBhayBEZXYuIENvcnAuCi0rMDA6MDc6 MUMgIEF0JlQgRml4ZWQgV2lyZWxlc3MgU2VydmljZXMKLSswMDowNzoxRCAgU2F0ZWxzYSBTaXN0 ZW1hcyBZIEFwbGljYWNpb25lcyBEZSBUZWxlY29tdW5pY2FjaW9uZXMsIFMuQS4KLSswMDowNzox RSAgVHJpLU0gRW5naW5lZXJpbmcgLyBOdXBhayBEZXYuIENvcnAuCi0gMDA6MDc6MUYgIEV1cm9w ZWFuIFN5c3RlbXMgSW50ZWdyYXRpb24KLSAwMDowNzoyMCAgVHJ1dHpzY2hsZXIgR21iaCAmIENv LiBLZwotIDAwOjA3OjIxICBGb3JtYWMgRWxla3Ryb25payBHbWJoCi1AQCAtMTgzNSw3ICsxODQ0 LDcgQEAKLSAwMDowNzoyMyAgRWxjb24gU3lzdGVtdGVjaG5payBHbWJoCi0gMDA6MDc6MjQgIFRl bGVtYXggQ28uLCBMdGQuCi0gMDA6MDc6MjUgIEJlbWF0ZWNoIEludGVybmF0aW9uYWwgQ29ycC4K LS0wMDowNzoyNyAgWmkgQ29ycG9yYXRpb24gKGhrKSBMdGQuCi0rMDA6MDc6MjcgIFppIENvcnBv cmF0aW9uIChIaykgTHRkLgotIDAwOjA3OjI4ICBOZW8gVGVsZWNvbQotIDAwOjA3OjI5ICBLaXN0 bGVyIEluc3RydW1lbnRlIEFnCi0gMDA6MDc6MkEgIElubm92YW5jZSBOZXR3b3JrcwotQEAgLTE4 NDgsNyArMTg1Nyw3IEBACi0gMDA6MDc6MzEgIFNwaXJpY29uLCBJbmMuCi0gMDA6MDc6MzIgIEFh ZW9uIFRlY2hub2xvZ3kgSW5jLgotIDAwOjA3OjMzICBEYW5jb250cm9sIEVuZ2luZWVyaW5nCi0t MDA6MDc6MzQgIEFnaWxlIFN0b3JhZ2UsIEluYy4KLSswMDowNzozNCAgT25zdG9yLCBJbmMuCi0g MDA6MDc6MzUgIEZsYXJpb24gVGVjaG5vbG9naWVzLCBJbmMuCi0gMDA6MDc6MzYgIERhdGEgVmlk ZW8gVGVjaG5vbG9naWVzIENvLiwgTHRkLgotIDAwOjA3OjM3ICBTb3JpeWEgQ28uIEx0ZC4KLUBA IC0xODU4LDcgKzE4NjcsNyBAQAotIDAwOjA3OjNCICBUZW5vdmlzIEdtYmggJiBDbyBLZwotIDAw OjA3OjNDICBUZWxlY29tIERlc2lnbgotIDAwOjA3OjNEICBOYW5qaW5nIFBvc3RlbCBUZWxlY29t bXVuaWNhdGlvbnMgQ28uLCBMdGQuCi0tMDA6MDc6M0UgIENoaW5hIEdyZWF0LXdhbGwgQ29tcHV0 ZXIgU2hlbnpoZW4gQ28uLCBMdGQuCi0rMDA6MDc6M0UgIENoaW5hIEdyZWF0LVdhbGwgQ29tcHV0 ZXIgU2hlbnpoZW4gQ28uLCBMdGQuCi0gMDA6MDc6M0YgIFdvb2p5dW4gU3lzdGVjIENvLiwgTHRk LgotIDAwOjA3OjQwICBNZWxjbyBJbmMuCi0gMDA6MDc6NDEgIFNpZXJyYSBBdXRvbWF0ZWQgU3lz dGVtcwotQEAgLTE4NzYsOCArMTg4NSw4IEBACi0gMDA6MDc6NEQgIFplYnJhIFRlY2hub2xvZ2ll cyBDb3JwLgotIDAwOjA3OjRFICBOYXVnaHR5IEJveSBDby4sIEx0ZC4KLSAwMDowNzo0RiAgQ2lz Y28gU3lzdGVtcywgSW5jLgotLTAwOjA3OjUwICBDaXNjbyBBSVItTE1DMzUyCi0tMDA6MDc6NTEg IE0udS50LiAtIEdtYmgKLSswMDowNzo1MCAgQ2lzY28gU3lzdGVtcywgSW5jLgotKzAwOjA3OjUx ICBNLlUuVC4gLSBHbWJoCi0gMDA6MDc6NTIgIFJoeXRobSBXYXRjaCBDby4sIEx0ZC4KLSAwMDow Nzo1MyAgQmVpamluZyBReGNvbW0gVGVjaG5vbG9neSBDby4sIEx0ZC4KLSAwMDowNzo1NCAgWHl0 ZXJyYSBDb21wdXRpbmcsIEluYy4KLUBAIC0xOTAwLDcgKzE5MDksNyBAQAotIDAwOjA3OjY1ICBK YWRlIFF1YW50dW0gVGVjaG5vbG9naWVzLCBJbmMuCi0gMDA6MDc6NjYgIENob3UgQ2hpbiBJbmR1 c3RyaWFsIENvLiwgTHRkLgotIDAwOjA3OjY3ICBZdXhpbmcgRWxlY3Ryb25pY3MgQ29tcGFueSBM aW1pdGVkCi0tMDA6MDc6NjggIERhbmZvc3MgQS9zCi0rMDA6MDc6NjggIERhbmZvc3MgQS9TCi0g MDA6MDc6NjkgIEl0YWxpYW5hIE1hY2NoaSBTcGEKLSAwMDowNzo2QSAgTmV4dGV5ZSBDby4sIEx0 ZC4KLSAwMDowNzo2QiAgU3RyYWxmb3JzIEFiCi1AQCAtMTkxMCw3ICsxOTE5LDcgQEAKLSAwMDow Nzo2RiAgU3lub3B0aWNzIExpbWl0ZWQKLSAwMDowNzo3MCAgTG9jdXNuZXR3b3JrcyBDb3Jwb3Jh dGlvbgotIDAwOjA3OjcxICBFbWJlZGRlZCBTeXN0ZW0gQ29ycG9yYXRpb24KLS0wMDowNzo3MiAg U2hhbmdoYWkgQmVsbCBDb21wYW55IExpbWl0ZWQKLSswMDowNzo3MiAgQWxjYXRlbCBTaGFuZ2hh aSBCZWxsIENvLiwgTHRkLgotIDAwOjA3OjczICBBc2NvbSBQb3dlcmxpbmUgQ29tbXVuaWNhdGlv bnMgTHRkLgotIDAwOjA3Ojc0ICBHdWFuZ3pob3UgVGhpbmtlciBUZWNobm9sb2d5IENvLiBMdGQu Ci0gMDA6MDc6NzUgIFZhbGVuY2UgU2VtaWNvbmR1Y3RvciwgSW5jLgotQEAgLTE5MzksMTIgKzE5 NDgsMTIgQEAKLSAwMDowNzo4RCAgTmV0ZW5naW5lcyBMdGQuCi0gMDA6MDc6OEUgIEdhcnogJiBG cmljaGUgR21iaAotIDAwOjA3OjhGICBFbWtheSBJbm5vdmF0aXZlIFByb2R1Y3RzCi0tMDA6MDc6 OTAgIFRyaS1tIFRlY2hub2xvZ2llcyAocykgTGltaXRlZAotKzAwOjA3OjkwICBUcmktTSBUZWNo bm9sb2dpZXMgKFMpIExpbWl0ZWQKLSAwMDowNzo5MSAgSW50ZXJuYXRpb25hbCBEYXRhIENvbW11 bmljYXRpb25zLCBJbmMuCi0gMDA6MDc6OTIgIFN1ZXRyb24gRWxlY3Ryb25pYyBHbWJoCi0tMDA6 MDc6OTMgIFByaXZhdGUKLSswMDowNzo5MyAgU2hpbiBTYXRlbGxpdGUgUHVibGljIENvbXBhbnkg TGltaXRlZAotIDAwOjA3Ojk0ICBTaW1wbGUgRGV2aWNlcywgSW5jLgotLTAwOjA3Ojk1ICBFbGl0 ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4gKGVjcykKLSswMDowNzo5NSAgRWxpdGVncm91cCBD b21wdXRlciBTeXN0ZW0gQ28uIChFY3MpCi0gMDA6MDc6OTYgIExzaSBTeXN0ZW1zLCBJbmMuCi0g MDA6MDc6OTcgIE5ldHBvd2VyIENvLiwgTHRkLgotIDAwOjA3Ojk4ICBTZWxlYSBTcmwKLUBAIC0x OTU1LDI0ICsxOTY0LDI0IEBACi0gMDA6MDc6OUQgIE11c2FzaGkgQ28uLCBMdGQuCi0gMDA6MDc6 OUUgIElsaW54IENvLiwgTHRkLgotIDAwOjA3OjlGICBBY3Rpb24gRGlnaXRhbCBJbmMuCi0tMDA6 MDc6QTAgIEUtd2F0Y2ggSW5jLgotLTAwOjA3OkExICBWaWFzeXMgQ3JpdGljYWwgQ2FyZQotKzAw OjA3OkEwICBFLVdhdGNoIEluYy4KLSswMDowNzpBMSAgVmlhc3lzIEhlYWx0aGNhcmUgR21iaAot IDAwOjA3OkEyICBPcHRlb24gQ29ycG9yYXRpb24KLSAwMDowNzpBMyAgT3NpdGlzIFNvZnR3YXJl LCBJbmMuCi0gMDA6MDc6QTQgIEduIE5ldGNvbSBMdGQuCi0tMDA6MDc6QTUgIFkuZC5rIENvLiBM dGQuCi0rMDA6MDc6QTUgIFkuRC5LIENvLiBMdGQuCi0gMDA6MDc6QTYgIEhvbWUgQXV0b21hdGlv biwgSW5jLgotLTAwOjA3OkE3ICBBLXogSW5jLgotKzAwOjA3OkE3ICBBLVogSW5jLgotIDAwOjA3 OkE4ICBIYWllciBHcm91cCBUZWNobm9sb2dpZXMgTHRkLgotIDAwOjA3OkE5ICBOb3Zhc29uaWNz Ci0gMDA6MDc6QUEgIFF1YW50dW0gRGF0YSBJbmMuCi0gMDA6MDc6QUMgIEVvbHJpbmcKLS0wMDow NzpBRCAgUGVudGFjb24gR21iaCBGb3RvLXVuZCBGZWlud2Vya3RlY2huaWsKLSswMDowNzpBRCAg UGVudGFjb24gR21iaCBGb3RvLVVuZCBGZWlud2Vya3RlY2huaWsKLSAwMDowNzpBRSAgTGF5ZXIg TiBOZXR3b3JrcwotLTAwOjA3OkFGICBOLXRyb24gQ29ycC4KLSswMDowNzpBRiAgTi1Ucm9uIENv cnAuCi0gMDA6MDc6QjAgIE9mZmljZSBEZXRhaWxzLCBJbmMuCi0gMDA6MDc6QjEgIEVxdWF0b3Ig VGVjaG5vbG9naWVzCi0tMDA6MDc6QjIgIFRyYW5zYWNjZXNzIFMuYS4KLSswMDowNzpCMiAgVHJh bnNhY2Nlc3MgUy5BLgotIDAwOjA3OkIzICBDaXNjbyBTeXN0ZW1zIEluYy4KLSAwMDowNzpCNCAg Q2lzY28gU3lzdGVtcyBJbmMuCi0gMDA6MDc6QjUgIEFueSBPbmUgV2lyZWxlc3MgTHRkLgotQEAg LTE5ODEsNyArMTk5MCw3IEBACi0gMDA6MDc6QjggIEFtZXJpY2FuIFByZWRhdG9yIENvcnAuCi0g MDA6MDc6QjkgIEdpbmdhbmV0IENvcnBvcmF0aW9uCi0gMDA6MDc6QkEgIFhlYmVvIENvbW11bmlj YXRpb25zLCBJbmMuCi0tMDA6MDc6QkIgIENvbmZsdWVuY2UgTmV0d29ya3MKLSswMDowNzpCQiAg Q2FuZGVyYSBJbmMuCi0gMDA6MDc6QkMgIElkZW50aXggSW5jLgotIDAwOjA3OkJEICBSYWRpb25l dCBMdGQuCi0gMDA6MDc6QkUgIERhdGFsb2dpYyBTcGEKLUBAIC0yMDA1LDkgKzIwMTQsOSBAQAot IDAwOjA3OkQwICBBdXRvbWF0IEVuZ2VuaGFyaWEgRGUgQXV0b21hb2EgTHRkYS4KLSAwMDowNzpE MSAgU3BlY3RydW0gU2lnbmFsIFByb2Nlc3NpbmcgSW5jLgotIDAwOjA3OkQyICBMb2dvcGFrIFN5 c3RlbWUKLS0wMDowNzpEMyAgU3RvcmsgRGlnaXRhbCBJbWFnaW5nIEIudi4KLSswMDowNzpEMyAg U3RvcmsgRGlnaXRhbCBJbWFnaW5nIEIuVi4KLSAwMDowNzpENCAgWmhlamlhbmcgWXV0b25nIE5l dHdvcmsgQ29tbXVuaWNhdGlvbiBDbyBMdGQuCi0tMDA6MDc6RDUgIDNlIFRlY2hub2xvZ2llcyBJ bnQ7LiwgSW5jLgotKzAwOjA3OkQ1ICAzRSBUZWNobm9sb2dpZXMgSW50Oy4sIEluYy4KLSAwMDow NzpENiAgQ29tbWlsIEx0ZC4KLSAwMDowNzpENyAgQ2Fwb3JpcyBOZXR3b3JrcyBBZwotIDAwOjA3 OkQ4ICBIaXRyb24gU3lzdGVtcyBJbmMuCi1AQCAtMjA1NSwxMiArMjA2NCwxMiBAQAotIDAwOjA4 OjAyICBDb21wYXEgQ29tcHV0ZXIgQ29ycG9yYXRpb24KLSAwMDowODowMyAgQ29zIFRyb24KLSAw MDowODowNCAgSWNhIEluYy4KLS0wMDowODowNSAgVGVjaG5vLWhvbG9uIENvcnBvcmF0aW9uCi0r MDA6MDg6MDUgIFRlY2huby1Ib2xvbiBDb3Jwb3JhdGlvbgotIDAwOjA4OjA2ICBSYW9uZXQgU3lz dGVtcywgSW5jLgotIDAwOjA4OjA3ICBBY2Nlc3MgRGV2aWNlcyBMaW1pdGVkCi0gMDA6MDg6MDgg IFBwdCBWaXNpb24sIEluYy4KLSAwMDowODowOSAgU3lzdGVtb25pYyBBZwotLTAwOjA4OjBBICBF c3BlcmEtd2Vya2UgR21iaAotKzAwOjA4OjBBICBFc3BlcmEtV2Vya2UgR21iaAotIDAwOjA4OjBC ICBCaXJrYSBCcGEgSW5mb3JtYXRpb25zc3lzdGVtIEFiCi0gMDA6MDg6MEMgIFZkYSBFbGV0dHJv bmljYSBTcmwKLSAwMDowODowRCAgVG9zaGliYQotQEAgLTIwNzIsMTggKzIwODEsMTggQEAKLSAw MDowODoxMyAgRGlza2JhbmssIEluYy4KLSAwMDowODoxNCAgVGlsIFRlY2hub2xvZ2llcwotIDAw OjA4OjE1ICBDYXRzIENvLiwgTHRkLgotLTAwOjA4OjE2ICBCbHVldGFncyBBL3MKLSswMDowODox NiAgQmx1ZXRhZ3MgQS9TCi0gMDA6MDg6MTcgIEVtZXJnZWNvcmUgTmV0d29ya3MgTGxjCi0gMDA6 MDg6MTggIFBpeGVsd29ya3MsIEluYy4KLSAwMDowODoxOSAgQmFua3N5cwotIDAwOjA4OjFBICBT YW5yYWQgSW50ZWxsaWdlbmNlIFN0b3JhZ2UgQ29tbXVuaWNhdGlvbnMgKDIwMDApIEx0ZC4KLSAw MDowODoxQiAgV2luZGlnbyBTeXN0ZW1zCi0tMDA6MDg6MUMgIEBwb3MuY29tCi0rMDA6MDg6MUMg IEBQb3MuQ29tCi0gMDA6MDg6MUQgIElwc2lsLCBJbmNvcnBvcmF0ZWQKLSAwMDowODoxRSAgUmVw ZWF0aXQgQWIKLSAwMDowODoxRiAgUG91IFl1ZW4gVGVjaCBDb3JwLiBMdGQuCi0gMDA6MDg6MjAg IENpc2NvIFN5c3RlbXMgSW5jLgotLTAwOjA4OjIxICBDaXNjbwlBSVItUENNMzUyCi0rMDA6MDg6 MjEgIENpc2NvIFN5c3RlbXMgSW5jLgotIDAwOjA4OjIyICBJbnBybyBDb21tCi0gMDA6MDg6MjMg IFRleGEgQ29ycC4KLSAwMDowODoyNCAgUHJvbWF0ZWsgSW5kdXN0cmllcyBMdGQuCi1AQCAtMjEw NCw3ICsyMTEzLDcgQEAKLSAwMDowODo1MiAgRGF2b2xpbmsgQ28uIEluYy4KLSAwMDowODo1MyAg U2NobGVpY2hlciBHbWJoICYgQ28uIFJlbGFpc3dlcmtlIEtnCi0gMDA6MDg6NTQgIE5ldHJvbml4 LCBJbmMuCi0tMDA6MDg6NTUgIE5hc2EtZ29kZGFyZCBTcGFjZSBGbGlnaHQgQ2VudGVyCi0rMDA6 MDg6NTUgIE5hc2EtR29kZGFyZCBTcGFjZSBGbGlnaHQgQ2VudGVyCi0gMDA6MDg6NTYgIEdhbWF0 cm9uaWMgRWxlY3Ryb25pYyBJbmR1c3RyaWVzIEx0ZC4KLSAwMDowODo1NyAgUG9sYXJpcyBOZXR3 b3JrcywgSW5jLgotIDAwOjA4OjU4ICBOb3ZhdGVjaG5vbG9neSBJbmMuCi1AQCAtMjExMywxOCAr MjEyMiwxOCBAQAotIDAwOjA4OjVCICBIYW5iaXQgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCi0gMDA6 MDg6NUMgIFNoYW5naGFpIERhcmUgVGVjaG5vbG9naWVzIENvLiBMdGQuCi0gMDA6MDg6NUQgIEFh c3RyYQotLTAwOjA4OjVFICBQY28gQ29tcHV0ZXIgT3B0aWNzIEdtYmgKLS0wMDowODo1RiAgUGlj YW5vbCBOLnYuCi0rMDA6MDg6NUUgIFBjbyBBZwotKzAwOjA4OjVGICBQaWNhbm9sIE4uVi4KLSAw MDowODo2MCAgTG9kZ2VuZXQgRW50ZXJ0YWlubWVudCBDb3JwLgotIDAwOjA4OjYxICBTb2Z0ZW5l cmd5IENvLiwgTHRkLgotIDAwOjA4OjYyICBOZWMgRWx1bWluYW50IFRlY2hub2xvZ2llcywgSW5j LgotIDAwOjA4OjYzICBFbnRyaXNwaGVyZSBJbmMuCi0tMDA6MDg6NjQgIEZhc3kgUy5wLmEuCi0r MDA6MDg6NjQgIEZhc3kgUy5QLkEuCi0gMDA6MDg6NjUgIEphc2NvbSBDby4sIEx0ZAotIDAwOjA4 OjY2ICBEc3ggQWNjZXNzIFN5c3RlbXMsIEluYy4KLSAwMDowODo2NyAgVXB0aW1lIERldmljZXMK LSAwMDowODo2OCAgUHVyb3B0aXgKLS0wMDowODo2OSAgQ29tbWFuZC1lIFRlY2hub2xvZ3kgQ28u LGx0ZC4KLSswMDowODo2OSAgQ29tbWFuZC1FIFRlY2hub2xvZ3kgQ28uLEx0ZC4KLSAwMDowODo2 QSAgSW5kdXN0cmllIFRlY2huaWsgSXBzIEdtYmgKLSAwMDowODo2QiAgTWlwc3lzCi0gMDA6MDg6 NkMgIFBsYXNtb24gTG1zCi1AQCAtMjEzNCwzMyArMjE0MywzMyBAQAotIDAwOjA4OjcwICBSYXN2 aWEgU3lzdGVtcywgSW5jLgotIDAwOjA4OjcxICBOb3J0aGRhdGEgQ28uLCBMdGQuCi0gMDA6MDg6 NzIgIFNvcmVuc29uIFRlY2hub2xvZ2llcywgSW5jLgotLTAwOjA4OjczICBEYXAgRGVzaWduIEIu di4KLSswMDowODo3MyAgRGFwIERlc2lnbiBCLlYuCi0gMDA6MDg6NzQgIERlbGwgQ29tcHV0ZXIg Q29ycC4KLSAwMDowODo3NSAgQWNvcnAgRWxlY3Ryb25pY3MgQ29ycC4KLSAwMDowODo3NiAgU2Rz eXN0ZW0KLS0wMDowODo3NyAgTGllYmVydCBIaXJvc3MgUy5wLmEuCi0rMDA6MDg6NzcgIExpZWJl cnQgSGlyb3NzIFMuUC5BLgotIDAwOjA4Ojc4ICBCZW5jaG1hcmsgU3RvcmFnZSBJbm5vdmF0aW9u cwotIDAwOjA4Ojc5ICBDZW0gQ29ycG9yYXRpb24KLSAwMDowODo3QSAgV2lwb3RlYyBHbWJoCi0t MDA6MDg6N0IgIFJ0eCBUZWxlY29tIEEvcwotKzAwOjA4OjdCICBSdHggVGVsZWNvbSBBL1MKLSAw MDowODo3QyAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAwOjA4OjdEICBDaXNjbyBTeXN0ZW1zIElu Yy4KLS0wMDowODo3RSAgQm9uIEVsZWN0cm8tdGVsZWNvbSBJbmMuCi0rMDA6MDg6N0UgIEJvbiBF bGVjdHJvLVRlbGVjb20gSW5jLgotIDAwOjA4OjdGICBTcGF1biBFbGVjdHJvbmljIEdtYmggJiBD by4gS2cKLSAwMDowODo4MCAgQnJvYWR0ZWwgQ2FuYWRhIENvbW11bmljYXRpb25zIEluYy4KLS0w MDowODo4MSAgRGlnaXRhbCBIYW5kcyBDby4sbHRkLgotKzAwOjA4OjgxICBEaWdpdGFsIEhhbmRz IENvLixMdGQuCi0gMDA6MDg6ODIgIFNpZ21hIENvcnBvcmF0aW9uCi0tMDA6MDg6ODMgIEhld2xl dHQtcGFja2FyZCBDb21wYW55Ci0rMDA6MDg6ODMgIEhld2xldHQtUGFja2FyZCBDb21wYW55Ci0g MDA6MDg6ODQgIEluZGV4IEJyYWlsbGUgQWIKLSAwMDowODo4NSAgRW1zIERyLiBUaG9tYXMgV3Vl bnNjaGUKLSAwMDowODo4NiAgSGFuc3VuZyBUZWxpYW5uLCBJbmMuCi0tMDA6MDg6ODcgIFByaXZh dGUKLSswMDowODo4NyAgTWFzY2hpbmVuZmFicmlrIFJlaW5oYXVzZW4gR21iaAotIDAwOjA4Ojg4 ICBPdWxsaW0gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBJbmMsLgotIDAwOjA4Ojg5ICBFY2hvc3Rh ciBUZWNobm9sb2dpZXMgQ29ycAotLTAwOjA4OjhBICBNaW5kc0B3b3JrCi0rMDA6MDg6OEEgIE1p bmRzQFdvcmsKLSAwMDowODo4QiAgVHJvcGljIE5ldHdvcmtzIEluYy4KLSAwMDowODo4QyAgUXVh bnRhIE5ldHdvcmsgU3lzdGVtcyBJbmMuCi0tMDA6MDg6OEQgIFNpZ21hLWxpbmtzIEluYy4KLSsw MDowODo4RCAgU2lnbWEtTGlua3MgSW5jLgotIDAwOjA4OjhFICBOaWhvbiBDb21wdXRlciBDby4s IEx0ZC4KLSAwMDowODo4RiAgQWR2YW5jZWQgRGlnaXRhbCBUZWNobm9sb2d5Ci0gMDA6MDg6OTAg IEF2aWxpbmtzIFNhCi1AQCAtMjE2OCw3ICsyMTc3LDcgQEAKLSAwMDowODo5MiAgRW0gU29sdXRp b25zCi0gMDA6MDg6OTMgIFByaXZhdGUKLSAwMDowODo5NCAgSW5ub3Zpc2lvbiBNdWx0aW1lZGlh IEx0ZC4KLS0wMDowODo5NSAgUHJpdmF0ZQotKzAwOjA4Ojk1ICBEaXJjIFRlY2hub2xvZ2llIEdt YmggJiBDby5LZwotIDAwOjA4Ojk2ICBQcmludHJvbml4LCBJbmMuCi0gMDA6MDg6OTcgIFF1YWtl IFRlY2hub2xvZ2llcwotIDAwOjA4Ojk4ICBHaWdhYml0IE9wdGljcyBDb3Jwb3JhdGlvbgotQEAg LTIxNzYsOCArMjE4NSw4IEBACi0gMDA6MDg6OUEgIEFsY2F0ZWwgTWljcm9lbGVjdHJvbmljcwot IDAwOjA4OjlCICBJY3AgRWxlY3Ryb25pY3MgSW5jLgotIDAwOjA4OjlDICBFbGVjcyBJbmR1c3Ry eSBDby4sIEx0ZC4KLS0wMDowODo5RCAgVWhkLWVsZWt0cm9uaWsKLS0wMDowODo5RSAgQmVpamlu ZyBFbnRlci1uZXQgQ28ubHRkCi0rMDA6MDg6OUQgIFVoZC1FbGVrdHJvbmlrCi0rMDA6MDg6OUUg IEJlaWppbmcgRW50ZXItTmV0IENvLkx0ZAotIDAwOjA4OjlGICBFZm0gTmV0d29ya3MKLSAwMDow ODpBMCAgU3RvdHogRmVpbm1lc3N0ZWNobmlrIEdtYmgKLSAwMDowODpBMSAgQ25ldCBUZWNobm9s b2d5IEluYy4KLUBAIC0yMTkwLDU4ICsyMTk5LDU4IEBACi0gMDA6MDg6QTggIFN5c3RlYyBDby4s IEx0ZC4KLSAwMDowODpBOSAgU2FuZ3NhbmcgVGVjaG5vbG9neSwgSW5jLgotIDAwOjA4OkFBICBL YXJhbQotLTAwOjA4OkFCICBFbmVybGlueC5jb20sIEluYy4KLSswMDowODpBQiAgRW5lcmxpbngu Q29tLCBJbmMuCi0gMDA6MDg6QUMgIFByaXZhdGUKLS0wMDowODpBRCAgVG95by1saW54IENvLiwg THRkLgotKzAwOjA4OkFEICBUb3lvLUxpbnggQ28uLCBMdGQuCi0gMDA6MDg6QUUgIFBhY2tldGZy b250Ci0gMDA6MDg6QUYgIE5vdmF0ZWMgQ29ycG9yYXRpb24KLSAwMDowODpCMCAgQmt0ZWwgQ29t bXVuaWNhdGlvbnMgR21iaAotIDAwOjA4OkIxICBQcm9xdWVudCBTeXN0ZW1zCi0tMDA6MDg6QjIg IFNoZW56aGVuIENvbXBhc3MgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby4sbHRkCi0rMDA6MDg6 QjIgIFNoZW56aGVuIENvbXBhc3MgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby4sTHRkCi0gMDA6 MDg6QjMgIEZhc3R3ZWwKLSAwMDowODpCNCAgU3lzcG9sCi0gMDA6MDg6QjUgIFRhaSBHdWVuIEVu dGVycHJpc2UgQ28uLCBMdGQKLSAwMDowODpCNiAgUm91dGVmcmVlLCBJbmMuCi0gMDA6MDg6Qjcg IEhpdCBJbmNvcnBvcmF0ZWQKLS0wMDowODpCOCAgRS5mLiBKb2huc29uCi0rMDA6MDg6QjggIEUu Ri4gSm9obnNvbgotIDAwOjA4OkI5ICBLYW9uIE1lZGlhIENvLiwgTHRkLgotIDAwOjA4OkJBICBF cnNraW5lIFN5c3RlbXMgTHRkCi0gMDA6MDg6QkIgIE5ldGV4Y2VsbAotIDAwOjA4OkJDICBJbGV2 byBBYgotLTAwOjA4OkJEICBUZXBnLXVzCi0rMDA6MDg6QkQgIFRlcGctVXMKLSAwMDowODpCRSAg WGVucGFrIE1zYSBHcm91cAotIDAwOjA4OkJGICBBcHR1cyBFbGVrdHJvbmlrIEFiCi0gMDA6MDg6 QzAgIEFzYSBTeXN0ZW1zCi0gMDA6MDg6QzEgIEF2aXN0YXIgQ29tbXVuaWNhdGlvbnMgQ29ycG9y YXRpb24KLSAwMDowODpDMiAgQ2lzY28gU3lzdGVtcwotLTAwOjA4OkMzICBDb250ZXggQS9zCi0t MDA6MDg6QzQgIFByaXZhdGUKLSswMDowODpDMyAgQ29udGV4IEEvUwotKzAwOjA4OkM0ICBIaWth cmkgQ28uLEx0ZC4KLSAwMDowODpDNSAgTGlvbnRlY2ggQ28uLCBMdGQuCi0gMDA6MDg6QzYgIFBo aWxpcHMgQ29uc3VtZXIgQ29tbXVuaWNhdGlvbnMKLSAwMDowODpDNyAgQ29tcGFxIENvbXB1dGVy IENvcnBvcmF0aW9uCi0gMDA6MDg6QzggIFNvbmV0aWNvbSwgSW5jLgotIDAwOjA4OkM5ICBUZWNo bmlzYXQgRGlnaXRhbCBHbWJoCi0tMDA6MDg6Q0EgIFR3aW5oYW4gVGVjaG5vbG9neSBDby4sbHRk Ci0rMDA6MDg6Q0EgIFR3aW5oYW4gVGVjaG5vbG9neSBDby4sTHRkCi0gMDA6MDg6Q0IgIFpldGEg QnJvYWRiYW5kIEluYy4KLSAwMDowODpDQyAgUmVtb3RlYywgSW5jLgotLTAwOjA4OkNEICBXaXRo LW5ldCBJbmMKLSswMDowODpDRCAgV2l0aC1OZXQgSW5jCi0gMDA6MDg6Q0UgIFByaXZhdGUKLSAw MDowODpDRiAgTmlwcG9uIEtvZWkgUG93ZXIgU3lzdGVtcyBDby4sIEx0ZC4KLSAwMDowODpEMCAg TXVzYXNoaSBFbmdpbmVlcmluZyBDby4sIEx0ZC4KLSAwMDowODpEMSAgS2FyZWwgSW5jLgotIDAw OjA4OkQyICBab29tIE5ldHdvcmtzIEluYy4KLS0wMDowODpEMyAgSGVyY3VsZXMgVGVjaG5vbG9n aWVzIFMuYS4KLSswMDowODpEMyAgSGVyY3VsZXMgVGVjaG5vbG9naWVzIFMuQS4KLSAwMDowODpE NCAgSW5lb3F1ZXN0IFRlY2hub2xvZ2llcywgSW5jCi0gMDA6MDg6RDUgIFZhbmd1YXJkIE1hbmFn ZWQgU29sdXRpb25zCi0gMDA6MDg6RDYgIEhhc3NuZXQgSW5jLgotIDAwOjA4OkQ3ICBIb3cgQ29y cG9yYXRpb24KLSAwMDowODpEOCAgRG93a2V5IE1pY3Jvd2F2ZQotLTAwOjA4OkQ5ICBNaXRhZGVu c2hpIENvLixsdGQKLSswMDowODpEOSAgTWl0YWRlbnNoaSBDby4sTHRkCi0gMDA6MDg6REEgIFNv ZmF3YXJlIFRlY2hub2xvZ2llcyBMdGQuCi0gMDA6MDg6REIgIENvcnJpZ2VudCBTeXN0ZW1zCi0g MDA6MDg6REMgIFdpem5ldAotIDAwOjA4OkREICBUZWxlbmEgQ29tbXVuaWNhdGlvbnMsIEluYy4K LS0wMDowODpERSAgM3VwIFN5c3RlbXMKLSswMDowODpERSAgM1VwIFN5c3RlbXMKLSAwMDowODpE RiAgQWxpc3RlbCBJbmMuCi0gMDA6MDg6RTAgIEF0byBUZWNobm9sb2d5IEx0ZC4KLSAwMDowODpF MSAgQmFyaXggQWcKLUBAIC0yMjUwLDMxICsyMjU5LDMxIEBACi0gMDA6MDg6RTQgIEVudmVuZXJn eSBJbmMKLSAwMDowODpFNSAgSWRrIENvcnBvcmF0aW9uCi0gMDA6MDg6RTYgIExpdHRsZWZlZXQK LS0wMDowODpFNyAgU2hpIENvbnRyb2xzeXN0ZW1zLGx0ZC4KLSswMDowODpFNyAgU2hpIENvbnRy b2xzeXN0ZW1zLEx0ZC4KLSAwMDowODpFOCAgRXhjZWwgTWFzdGVyIEx0ZC4KLSAwMDowODpFOSAg TmV4dGdpZwotIDAwOjA4OkVBICBNb3Rpb24gQ29udHJvbCBFbmdpbmVlcmluZywgSW5jCi0tMDA6 MDg6RUIgIFJvbXdpbiBDby4sbHRkLgotKzAwOjA4OkVCICBSb213aW4gQ28uLEx0ZC4KLSAwMDow ODpFQyAgWm9udSwgSW5jLgotLTAwOjA4OkVEICBTdCZ0IEluc3RydW1lbnQgQ29ycC4KLSswMDow ODpFRCAgU3QmVCBJbnN0cnVtZW50IENvcnAuCi0gMDA6MDg6RUUgIExvZ2ljIFByb2R1Y3QgRGV2 ZWxvcG1lbnQKLS0wMDowODpFRiAgRGliYWwscy5hLgotKzAwOjA4OkVGICBEaWJhbCxTLkEuCi0g MDA6MDg6RjAgIE5leHQgR2VuZXJhdGlvbiBTeXN0ZW1zLCBJbmMuCi0gMDA6MDg6RjEgIFZvbHRh aXJlCi0tMDA6MDg6RjIgIFByaXZhdGUKLSswMDowODpGMiAgQyZTIFRlY2hub2xvZ3kKLSAwMDow ODpGMyAgV2FueQotIDAwOjA4OkY0ICBCbHVldGFrZSBUZWNobm9sb2d5IENvLiwgTHRkLgotLTAw OjA4OkY1ICBZZXN0ZWNobm9sb2d5IENvLixsdGQuCi0tMDA6MDg6RjYgIFN1bWl0b21vIEVsZWN0 cmljIEhpZ2h0ZWNocy5jby4sbHRkLgotLTAwOjA4OkY3ICBIaXRhY2hpIEx0ZCwgU2VtaWNvbmR1 Y3RvciAmYW1wOyBJbnRlZ3JhdGVkIENpcmN1aXRzIEdyCi0rMDA6MDg6RjUgIFllc3RlY2hub2xv Z3kgQ28uLEx0ZC4KLSswMDowODpGNiAgU3VtaXRvbW8gRWxlY3RyaWMgSGlnaHRlY2hzLkNvLixM dGQuCi0rMDA6MDg6RjcgIEhpdGFjaGkgTHRkLCBTZW1pY29uZHVjdG9yICZBbXA7IEludGVncmF0 ZWQgQ2lyY3VpdHMgR3IKLSAwMDowODpGOCAgR3VhcmRhbGwgTHRkCi0gMDA6MDg6RjkgIFBhZGNv bSwgSW5jLgotLTAwOjA4OkZBICBLYXJsIEUuYnJpbmttYW5uIEdtYmgKLS0wMDowODpGQiAgUHJp dmF0ZQotKzAwOjA4OkZBICBLYXJsIEUuQnJpbmttYW5uIEdtYmgKLSswMDowODpGQiAgU29ub3Np dGUsIEluYy4KLSAwMDowODpGQyAgR2lnYXBob3RvbiBJbmMuCi0gMDA6MDg6RkQgIEJsdWVrb3Jl YSBDby4sIEx0ZC4KLS0wMDowODpGRSAgUHJpdmF0ZQotLTAwOjA4OkZGICBUcmlsb2d5IEJyb2Fk Y2FzdCAoaG9sZGluZ3MpIEx0ZAotKzAwOjA4OkZFICBVbmlrIEMmQyBDby4sTHRkLgotKzAwOjA4 OkZGICBUcmlsb2d5IEJyb2FkY2FzdCAoSG9sZGluZ3MpIEx0ZAotIDAwOjA5OjAwICBUbXQKLSAw MDowOTowMSAgU2hlbnpoZW4gU2hpeHVudG9uZyBJbmZvcm1hdGlvbiAmIFRlY2hub2xpZ3kgQ28K LSAwMDowOTowMiAgUmVkbGluZSBDb21tdW5pY2F0aW9ucyBJbmMuCi1AQCAtMjI4NCwxMyArMjI5 MywxMyBAQAotIDAwOjA5OjA2ICBFc3RlZW0gTmV0d29ya3MKLSAwMDowOTowNyAgQ2hyeXNhbGlz IERldmVsb3BtZW50Ci0gMDA6MDk6MDggIFZ0ZWNoIFRlY2hub2xvZ3kgQ29ycC4KLS0wMDowOTow OSAgVGVsZW5vciBDb25uZWN0IEEvcwotKzAwOjA5OjA5ICBUZWxlbm9yIENvbm5lY3QgQS9TCi0g MDA6MDk6MEEgIFNuZWRmYXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KLSAwMDowOTowQiAgTXRsICBJ bnN0cnVtZW50cyBQbGMKLSAwMDowOTowQyAgTWF5ZWthd2EgTWZnLiBDby4gTHRkLgotLTAwOjA5 OjBEICBQcml2YXRlCi0rMDA6MDk6MEQgIExlYWRlciBFbGVjdHJvbmljcyBDb3JwLgotIDAwOjA5 OjBFICBIZWxpeCBUZWNobm9sb2d5IEluYy4KLS0wMDowOTowRiAgUHJpdmF0ZQotKzAwOjA5OjBG ICBGb3J0aW5ldCBJbmMuCi0gMDA6MDk6MTAgIFNpbXBsZSBBY2Nlc3MgSW5jLgotIDAwOjA5OjEx ICBDaXNjbyBTeXN0ZW1zCi0gMDA6MDk6MTIgIENpc2NvIFN5c3RlbXMKLUBAIC0yMjk5LDUwICsy MzA4LDUwIEBACi0gMDA6MDk6MTUgIENhcyBDb3JwLgotIDAwOjA5OjE2ICBMaXN0bWFuIEhvbWUg VGVjaG5vbG9naWVzLCBJbmMuCi0gMDA6MDk6MTcgIFdlbSBUZWNobm9sb2d5IEluYwotLTAwOjA5 OjE4ICBTYW1zdW5nIFRlY2h3aW4gQ28uLGx0ZAotKzAwOjA5OjE4ICBTYW1zdW5nIFRlY2h3aW4g Q28uLEx0ZAotIDAwOjA5OjE5ICBNZHMgR2F0ZXdheXMKLSAwMDowOToxQSAgTWFjYXQgT3B0aWNz ICYgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCi0gMDA6MDk6MUIgIERpZ2l0YWwgR2VuZXJhdGlvbiBJ bmMuCi0gMDA6MDk6MUMgIENhY2hldmlzaW9uLCBJbmMKLSAwMDowOToxRCAgUHJvdGVhbSBDb21w dXRlciBDb3Jwb3JhdGlvbgotIDAwOjA5OjFFICBGaXJzdGVjaCBUZWNobm9sb2d5IENvcnAuCi0t MDA6MDk6MUYgIEEmYW1wO2QgQ28uLCBMdGQuCi0tMDA6MDk6MjAgIFByaXZhdGUKLSswMDowOTox RiAgQSZBbXA7RCBDby4sIEx0ZC4KLSswMDowOToyMCAgRXBveCBDb21wdXRlciBDby4sTHRkLgot IDAwOjA5OjIxICBQbGFubWVjYSBPeQotIDAwOjA5OjIyICBUb3VjaGxlc3MgU2Vuc29yIFRlY2hu b2xvZ3kgQWcKLSAwMDowOToyMyAgSGVhbWFuIFN5c3RlbSBDby4sIEx0ZAotIDAwOjA5OjI0ICBU ZWxlYmF1IEdtYmgKLSAwMDowOToyNSAgVnNuIFN5c3RlbWVuIEJ2Ci0gMDA6MDk6MjYgIFlvZGEg Q29tbXVuaWNhdGlvbnMsIEluYy4KLS0wMDowOToyNyAgVG95b2tlaWtpIENvLixsdGQuCi0rMDA6 MDk6MjcgIFRveW9rZWlraSBDby4sTHRkLgotIDAwOjA5OjI4ICBUZWxlY29yZSBJbmMKLS0wMDow OToyOSAgU2FueW8gSW5kdXN0cmllcyAodWspIExpbWl0ZWQKLS0wMDowOToyQSAgTXl0ZWNzIENv LixsdGQuCi0rMDA6MDk6MjkgIFNhbnlvIEluZHVzdHJpZXMgKFVrKSBMaW1pdGVkCi0rMDA6MDk6 MkEgIE15dGVjcyBDby4sTHRkLgotIDAwOjA5OjJCICBJcXN0b3IgTmV0d29ya3MsIEluYy4KLSAw MDowOToyQyAgSGl0cG9pbnQgSW5jLgotIDAwOjA5OjJEICBIaWdoIFRlY2ggQ29tcHV0ZXIsIENv cnAuCi0tMDA6MDk6MkUgIEImdGVjaCBTeXN0ZW0gSW5jLgotKzAwOjA5OjJFICBCJlRlY2ggU3lz dGVtIEluYy4KLSAwMDowOToyRiAgQWtvbSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCi0gMDA6MDk6 MzAgIEFlcm9jb25jaWVyZ2UgSW5jLgotIDAwOjA5OjMxICBGdXR1cmUgSW50ZXJuZXQsIEluYy4K LSAwMDowOTozMiAgT21uaWx1eAotIDAwOjA5OjMzICBPcHRvdmFsbGV5IENvLiBMdGQuCi0tMDA6 MDk6MzQgIERyZWFtLW11bHRpbWVkaWEtdHYgR21iaAotKzAwOjA5OjM0ICBEcmVhbS1NdWx0aW1l ZGlhLVR2IEdtYmgKLSAwMDowOTozNSAgU2FuZHZpbmUgSW5jb3Jwb3JhdGVkCi0tMDA6MDk6MzYg IElwZXRyb25payBHbWJoICYgQ28ua2cKLSswMDowOTozNiAgSXBldHJvbmlrIEdtYmggJiBDby5L ZwotIDAwOjA5OjM3ICBJbnZlbnRlYyBBcHBsaWFuY2UgQ29ycAotIDAwOjA5OjM4ICBBbGxvdCBD b21tdW5pY2F0aW9ucwotLTAwOjA5OjM5ICBTaGliYXNva3UgQ28uLGx0ZC4KLSswMDowOTozOSAg U2hpYmFzb2t1IENvLixMdGQuCi0gMDA6MDk6M0EgIE1vbGV4IEZpYmVyIE9wdGljcwotIDAwOjA5 OjNCICBIeXVuZGFpIE5ldHdvcmtzIEluYy4KLS0wMDowOTozQyAgSmFjcXVlcyBUZWNobm9sb2dp ZXMgUC9sCi0tMDA6MDk6M0QgIFByaXZhdGUKLS0wMDowOTozRSAgQyZpIFRlY2hub2xvZ2llcwot LTAwOjA5OjNGICBEb3VibGUtd2luIEVudGVycGlyc2UgQ28uLCBMdGQKLSswMDowOTozQyAgSmFj cXVlcyBUZWNobm9sb2dpZXMgUC9MCi0rMDA6MDk6M0QgIE5ld2lzeXMsSW5jLgotKzAwOjA5OjNF ICBDJkkgVGVjaG5vbG9naWVzCi0rMDA6MDk6M0YgIERvdWJsZS1XaW4gRW50ZXJwaXJzZSBDby4s IEx0ZAotIDAwOjA5OjQwICBBZ2ZlbyBHbWJoICYgQ28uIEtnCi0tMDA6MDk6NDEgIEFsbGllZCBU ZWxlc2lzIEsuay4KLSswMDowOTo0MSAgQWxsaWVkIFRlbGVzaXMgSy5LLgotIDAwOjA5OjQyICBD cmVzY28sIEx0ZC4KLS0wMDowOTo0MyAgQ2lzY28JQUlSLUxNQzM1MgotKzAwOjA5OjQzICBDaXNj byBTeXN0ZW1zCi0gMDA6MDk6NDQgIENpc2NvIFN5c3RlbXMKLSAwMDowOTo0NSAgUGFsbW1pY3Jv IENvbW11bmljYXRpb25zIEluYwotIDAwOjA5OjQ2ICBDbHVzdGVyIExhYnMgR21iaAotQEAgLTIz NTEsMzEgKzIzNjAsMzEgQEAKLSAwMDowOTo0OSAgR2x5cGggVGVjaG5vbG9naWVzIEluYy4KLSAw MDowOTo0QSAgSG9tZW5ldCBDb21tdW5pY2F0aW9ucwotIDAwOjA5OjRCICBGaWxsZmFjdG9yeSBO dgotLTAwOjA5OjRDICBDb21tdW5pY2F0aW9uIFdlYXZlciBDby4sbHRkLgotKzAwOjA5OjRDICBD b21tdW5pY2F0aW9uIFdlYXZlciBDby4sTHRkLgotIDAwOjA5OjREICBCcmFpbnRyZWUgQ29tbXVu aWNhdGlvbnMgUHR5IEx0ZAotIDAwOjA5OjRFICBCYXJ0ZWNoIFN5c3RlbXMgSW50ZXJuYXRpb25h bCwgSW5jCi0tMDA6MDk6NEYgIFByaXZhdGUKLSswMDowOTo0RiAgRWxtZWd0IEdtYmggJiBDby4g S2cKLSAwMDowOTo1MCAgSW5kZXBlbmRlbnQgU3RvcmFnZSBDb3Jwb3JhdGlvbgotLTAwOjA5OjUx ICBQcml2YXRlCi0rMDA6MDk6NTEgIEFwb2dlZSBJbnN0cnVtZW50cywgSW5jCi0gMDA6MDk6NTIg IEF1ZXJzd2FsZCBHbWJoICYgQ28uIEtnCi0tMDA6MDk6NTMgIExpbmthZ2UgU3lzdGVtIEludGVn cmF0aW9uIENvLmx0ZC4KLSswMDowOTo1MyAgTGlua2FnZSBTeXN0ZW0gSW50ZWdyYXRpb24gQ28u THRkLgotIDAwOjA5OjU0ICBBbWl0IFNwb2wuIFMuIFIuIE8uCi0gMDA6MDk6NTUgIFlvdW5nIEdl bmVyYXRpb24gSW50ZXJuYXRpb25hbCBDb3JwLgotLTAwOjA5OjU2ICBOZXR3b3JrIFN5c3RlbXMg R3JvdXAsIEx0ZC4gKG5zZykKLSswMDowOTo1NiAgTmV0d29yayBTeXN0ZW1zIEdyb3VwLCBMdGQu IChOc2cpCi0gMDA6MDk6NTcgIFN1cGVyY2FsbGVyLCBJbmMuCi0tMDA6MDk6NTggIEludGVsbmV0 IFMuYS4KLSswMDowOTo1OCAgSW50ZWxuZXQgUy5BLgotIDAwOjA5OjU5ICBTaXRlY3NvZnQKLSAw MDowOTo1QSAgUmFjZXdvb2QgVGVjaG5vbG9neQotLTAwOjA5OjVCICBOZXRnZWFyIE1BNzAxLCBN QTQwMVJBCi0tMDA6MDk6NUMgIFByaXZhdGUKLSswMDowOTo1QiAgTmV0Z2VhciwgSW5jLgotKzAw OjA5OjVDICBQaGlsaXBzIE1lZGljYWwgU3lzdGVtcyAtIENhcmRpYWMgQW5kIE1vbml0b3Jpbmcg U3lzdGVtcyAoQ20KLSAwMDowOTo1RCAgRGlhbG9ndWUgVGVjaG5vbG9neSBDb3JwLgotIDAwOjA5 OjVFICBNYXNzdGVjaCBHcm91cCBJbmMuCi0gMDA6MDk6NUYgIFRlbGVieXRlLCBJbmMuCi0gMDA6 MDk6NjAgIFlvemFuIEluYy4KLSAwMDowOTo2MSAgU3dpdGNoZ2VhciBBbmQgSW5zdHJ1bWVudGF0 aW9uIEx0ZAotIDAwOjA5OjYyICBGaWxldHJhYyBBcwotLTAwOjA5OjYzICBQcml2YXRlCi0tMDA6 MDk6NjQgIEhpLXRlY2huaXF1ZXMKLSswMDowOTo2MyAgRG9taW5pb24gTGFzZXJjb20gSW5jLgot KzAwOjA5OjY0ICBIaS1UZWNobmlxdWVzCi0gMDA6MDk6NjUgIFByaXZhdGUKLSAwMDowOTo2NiAg VGhhbGVzIE5hdmlnYXRpb24KLSAwMDowOTo2NyAgVGFjaHlvbiwgSW5jCi1AQCAtMjM4NiwyMyAr MjM5NSwyMyBAQAotIDAwOjA5OjZDICBJbWVkaWEgU2VtaWNvbmR1Y3RvciBDb3JwLgotIDAwOjA5 OjZEICBQb3dlcm5ldCBUZWNobm9sb2dpZXMgQ29ycC4KLSAwMDowOTo2RSAgR2lhbnQgRWxlY3Ry b25pY3MgTHRkLgotLTAwOjA5OjZGICBCZWlqaW5nIFpob25ncWluZyBFbGVnYW50IFRlY2guIENv cnAuLGxpbWl0ZWQKLSswMDowOTo2RiAgQmVpamluZyBaaG9uZ3FpbmcgRWxlZ2FudCBUZWNoLiBD b3JwLixMaW1pdGVkCi0gMDA6MDk6NzAgIFZpYnJhdGlvbiBSZXNlYXJjaCBDb3Jwb3JhdGlvbgot IDAwOjA5OjcxICBUaW1lIE1hbmFnZW1lbnQsIEluYy4KLS0wMDowOTo3MiAgU2VjdXJlYmFzZSxp bmMKLSswMDowOTo3MiAgU2VjdXJlYmFzZSxJbmMKLSAwMDowOTo3MyAgTGVudGVuIFRlY2hub2xv Z3kgQ28uLCBMdGQuCi0gMDA6MDk6NzQgIElubm9waWEgVGVjaG5vbG9naWVzLCBJbmMuCi0gMDA6 MDk6NzUgIEZzb25hIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCi0tMDA6MDk6NzYgIFByaXZh dGUKLSswMDowOTo3NiAgRGF0YXNvZnQgSXNkbiBTeXN0ZW1zIEdtYmgKLSAwMDowOTo3NyAgQnJ1 bm5lciBFbGVrdHJvbmlrIEFnCi0gMDA6MDk6NzggIEFpamkgU3lzdGVtIENvLiwgTHRkLgotIDAw OjA5Ojc5ICBBZHZhbmNlZCBUZWxldmlzaW9uIFN5c3RlbXMgQ29tbWl0dGVlLCBJbmMuCi0gMDA6 MDk6N0EgIExvdWlzIERlc2lnbiBMYWJzLgotIDAwOjA5OjdCICBDaXNjbyBTeXN0ZW1zCi0tMDA6 MDk6N0MgIENpc2NvCUFJUi1MTUMzNTIKLSswMDowOTo3QyAgQ2lzY28gU3lzdGVtcwotIDAwOjA5 OjdEICBTZWN3ZWxsIE5ldHdvcmtzIE95Ci0gMDA6MDk6N0UgIEltaSBUZWNobm9sb2d5IENvLiwg THRkCi0tMDA6MDk6N0YgIFByaXZhdGUKLSswMDowOTo3RiAgVnNlY3VyZSAyMDAwIEx0ZC4KLSAw MDowOTo4MCAgUG93ZXIgWmVuaXRoIEluYy4KLSAwMDowOTo4MSAgTmV3cG9ydCBOZXR3b3Jrcwot IDAwOjA5OjgyICBMb2V3ZSBPcHRhIEdtYmgKLUBAIC0yNDEwLDMxICsyNDE5LDMxIEBACi0gMDA6 MDk6ODQgIE15Y2FzYSBOZXR3b3JrIEluYy4KLSAwMDowOTo4NSAgQXV0byBUZWxlY29tIENvbXBh bnkKLSAwMDowOTo4NiAgTWV0YWxpbmsgTHRkLgotLTAwOjA5Ojg3ICBOaXNoaSBOaXBwb24gRWxl Y3RyaWMgV2lyZSAmIENhYmxlIENvLixsdGQuCi0rMDA6MDk6ODcgIE5pc2hpIE5pcHBvbiBFbGVj dHJpYyBXaXJlICYgQ2FibGUgQ28uLEx0ZC4KLSAwMDowOTo4OCAgTnVkaWFuIEVsZWN0cm9uIENv LiwgTHRkLgotIDAwOjA5Ojg5ICBWaXZpZGxvZ2ljIEluYy4KLSAwMDowOTo4QSAgRXF1YWxsb2dp YyBJbmMKLSAwMDowOTo4QiAgRW50cm9waWMgQ29tbXVuaWNhdGlvbnMsIEluYy4KLSAwMDowOTo4 QyAgUG9zc2lvIEFiCi0tMDA6MDk6OEQgIERjdCBMdGQgKGRpZ2l0YWwgQ29tbXVuaWNhdGlvbiBU ZWNobm9sb2dpZXMgTHRkKQotKzAwOjA5OjhEICBEY3QgTHRkIChEaWdpdGFsIENvbW11bmljYXRp b24gVGVjaG5vbG9naWVzIEx0ZCkKLSAwMDowOTo4RSAgSXBjYXMgR21iaAotIDAwOjA5OjhGICBD ZXRhY2VhbiBOZXR3b3JrcwotIDAwOjA5OjkwICBBY2tzeXMgQ29tbXVuaWNhdGlvbnMgJiBTeXN0 ZW1zCi0gMDA6MDk6OTEgIEdlIEZhbnVjIEF1dG9tYXRpb24gTWFudWZhY3R1cmluZywgSW5jLgot LTAwOjA5OjkyICBJbnRlcmVwb2NoIFRlY2hub2xvZ3ksaW5jLgotKzAwOjA5OjkyICBJbnRlcmVw b2NoIFRlY2hub2xvZ3ksSW5jLgotIDAwOjA5OjkzICBWaXN0ZW9uIENvcnBvcmF0aW9uCi0gMDA6 MDk6OTQgIENyb255eCBFbmdpbmVlcmluZwotIDAwOjA5Ojk1ICBDYXN0bGUgVGVjaG5vbG9neSBM dGQKLSAwMDowOTo5NiAgUmRpCi0gMDA6MDk6OTcgIE5vcnRlbCBOZXR3b3JrcwotLTAwOjA5Ojk4 ICBQcml2YXRlCi0rMDA6MDk6OTggIENhcGluZm8gQ29tcGFueSBMaW1pdGVkCi0gMDA6MDk6OTkg IENwIEdlb3JnZXMgUmVuYXVsdAotIDAwOjA5OjlBICBFbG1vIENvbXBhbnksIExpbWl0ZWQKLSAw MDowOTo5QiAgV2VzdGVybiBUZWxlbWF0aWMgSW5jLgotIDAwOjA5OjlDICBOYXZhbCBSZXNlYXJj aCBMYWJvcmF0b3J5Ci0gMDA6MDk6OUQgIEhhbGlwbGV4IENvbW11bmljYXRpb25zCi0gMDA6MDk6 OUUgIFRlc3RlY2gsIEluYy4KLS0wMDowOTo5RiAgUHJpdmF0ZQotKzAwOjA5OjlGICBWaWRleCBJ bmMuCi0gMDA6MDk6QTAgIE1pY3JvdGVjaG5vIENvcnBvcmF0aW9uCi0gMDA6MDk6QTEgIFRlbGV3 aXNlIENvbW11bmljYXRpb25zLCBJbmMuCi0gMDA6MDk6QTIgIEludGVyZmFjZSBDby4sIEx0ZC4K LUBAIC0yNDQyLDMzICsyNDUxLDMzIEBACi0gMDA6MDk6QTQgIEhhcnRlYyBDb3Jwb3JhdGlvbgot IDAwOjA5OkE1ICBIYW5zdW5nIEVsZXRyb25pYyBJbmR1c3RyaWVzIERldmVsb3BtZW50IENvLiwg THRkCi0gMDA6MDk6QTYgIElnbmlzIE9wdGljcywgSW5jLgotLTAwOjA5OkE3ICBCYW5nICYgT2x1 ZnNlbiBBL3MKLSswMDowOTpBNyAgQmFuZyAmIE9sdWZzZW4gQS9TCi0gMDA6MDk6QTggIEVhc3Rt b2RlIFB0ZSBMdGQKLSAwMDowOTpBOSAgSWthbm9zIENvbW11bmljYXRpb25zCi0gMDA6MDk6QUEg IERhdGEgQ29tbSBGb3IgQnVzaW5lc3MsIEluYy4KLSAwMDowOTpBQiAgTmV0Y29udHJvbCBPeQot IDAwOjA5OkFDICBMYW52b2ljZQotIDAwOjA5OkFEICBIeXVuZGFpIFN5c2NvbW0sIEluYy4KLS0w MDowOTpBRSAgT2thbm8gRWxlY3RyaWMgQ28uLGx0ZAotLTAwOjA5OkFGICBFLWdlbmVyaXMKLSsw MDowOTpBRSAgT2thbm8gRWxlY3RyaWMgQ28uLEx0ZAotKzAwOjA5OkFGICBFLUdlbmVyaXMKLSAw MDowOTpCMCAgT25reW8gQ29ycG9yYXRpb24KLSAwMDowOTpCMSAgS2FuZW1hdHN1IEVsZWN0cm9u aWNzLCBMdGQuCi0tMDA6MDk6QjIgIEwmZiBJbmMuCi0rMDA6MDk6QjIgIEwmRiBJbmMuCi0gMDA6 MDk6QjMgIE1jbSBTeXN0ZW1zIEx0ZAotIDAwOjA5OkI0ICBLaXNhbiBUZWxlY29tIENvLiwgTHRk LgotLTAwOjA5OkI1ICAzaiBUZWNoLiBDby4sIEx0ZC4KLSswMDowOTpCNSAgM0ogVGVjaC4gQ28u LCBMdGQuCi0gMDA6MDk6QjYgIENpc2NvIFN5c3RlbXMKLSAwMDowOTpCNyAgQ2lzY28gU3lzdGVt cwotIDAwOjA5OkI4ICBFbnRpc2UgU3lzdGVtcwotIDAwOjA5OkI5ICBBY3Rpb24gSW1hZ2luZyBT b2x1dGlvbnMKLSAwMDowOTpCQSAgTWFrdSBJbmZvcm1hdGlvbnN0ZWNoaWsgR21iaAotIDAwOjA5 OkJCICBNYXRoc3RhciwgSW5jLgotLTAwOjA5OkJDICBQcml2YXRlCi0rMDA6MDk6QkMgIERpZ2l0 YWwgU2FmZXR5IFRlY2hub2xvZ2llcyBJbmMuCi0gMDA6MDk6QkQgIEVweWdpIFRlY2hub2xvZ2ll cywgTHRkLgotLTAwOjA5OkJFICBNYW1peWEtb3AgQ28uLGx0ZC4KLS0wMDowOTpCRiAgTmludGVu ZG8gQ28uLGx0ZC4KLS0wMDowOTpDMCAgNndpbmQKLS0wMDowOTpDMSAgUHJvY2VzLWRhdGEgQS9z Ci0rMDA6MDk6QkUgIE1hbWl5YS1PcCBDby4sTHRkLgotKzAwOjA5OkJGICBOaW50ZW5kbyBDby4s THRkLgotKzAwOjA5OkMwICA2V2luZAotKzAwOjA5OkMxICBQcm9jZXMtRGF0YSBBL1MKLSAwMDow OTpDMiAgUHJpdmF0ZQotIDAwOjA5OkMzICBOZXRhcwotIDAwOjA5OkM0ICBNZWRpY29yZSBDby4s IEx0ZAotQEAgLTI0NzcsMTAgKzI0ODYsMTAgQEAKLSAwMDowOTpDNyAgTW92aXN0ZWMKLSAwMDow OTpDOCAgU2luYWdhd2EgVHN1c2hpbiBLZWlzb3UgU2VydmljZQotIDAwOjA5OkM5ICBCbHVld2lu YyBDby4sIEx0ZC4KLS0wMDowOTpDQSAgSW1heG5ldHdvcmtzKHNoZW56aGVuKWxpbWl0ZWQuCi0r MDA6MDk6Q0EgIEltYXhuZXR3b3JrcyhTaGVuemhlbilMaW1pdGVkLgotIDAwOjA5OkNCICBIYnJh aW4KLSAwMDowOTpDQyAgTW9vZyBHbWJoCi0tMDA6MDk6Q0QgIEh1ZHNvbiBTb2Z0IENvLixsdGQu Ci0rMDA6MDk6Q0QgIEh1ZHNvbiBTb2Z0IENvLixMdGQuCi0gMDA6MDk6Q0UgIFNwYWNlYnJpZGdl IFNlbWljb25kdWN0b3IgQ29ycC4KLSAwMDowOTpDRiAgSWFkIEdtYmgKLSAwMDowOTpEMCAgVmVy c2F0ZWwgTmV0d29ya3MKLUBAIC0yNDkyLDM1ICsyNTAxLDM1IEBACi0gMDA6MDk6RDYgIEtuYyBP bmUgR21iaAotIDAwOjA5OkQ3ICBEYyBTZWN1cml0eSBQcm9kdWN0cwotIDAwOjA5OkQ4ICBQcml2 YXRlCi0tMDA6MDk6RDkgIFByaXZhdGUKLSswMDowOTpEOSAgTmVvc2NhbGUgU3lzdGVtcywgSW5j Ci0gMDA6MDk6REEgIENvbnRyb2wgTW9kdWxlIEluYy4KLSAwMDowOTpEQiAgRXNwYWNlCi0gMDA6 MDk6REMgIEdhbGF4aXMgVGVjaG5vbG9neSBBZwotIDAwOjA5OkREICBNYXZpbiBUZWNobm9sb2d5 IEluYy4KLSAwMDowOTpERSAgU2FtamluIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbnMgQ28u LCBMdGQuCi0tMDA6MDk6REYgIFZlc3RlbCBLb211bmlrYXN5b24gU2FuYXlpIFZlIFRpY2FyZXQg QS5zLgotLTAwOjA5OkUwICBYZW1pY3MgUy5hLgotKzAwOjA5OkRGICBWZXN0ZWwgS29tdW5pa2Fz eW9uIFNhbmF5aSBWZSBUaWNhcmV0IEEuUy4KLSswMDowOTpFMCAgWGVtaWNzIFMuQS4KLSAwMDow OTpFMSAgR2VtdGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCi0gMDA6MDk6RTIgIFNpbmJvbiBFbGVj dHJvbmljcyBDby4sIEx0ZC4KLS0wMDowOTpFMyAgQW5nZWwgSWdsZXNpYXMgUy5hLgotKzAwOjA5 OkUzICBBbmdlbCBJZ2xlc2lhcyBTLkEuCi0gMDA6MDk6RTQgIEsgVGVjaCBJbmZvc3lzdGVtIElu Yy4KLSAwMDowOTpFNSAgSG90dGluZ2VyIEJhbGR3aW4gTWVzc3RlY2huaWsgR21iaAotIDAwOjA5 OkU2ICBDeWJlciBTd2l0Y2hpbmcgSW5jLgotIDAwOjA5OkU3ICBBZGMgVGVjaG9ub2xvZ3kKLS0w MDowOTpFOCAgQ2lzY28JQUlSLUxNQzM1MgotKzAwOjA5OkU4ICBDaXNjbyBTeXN0ZW1zCi0gMDA6 MDk6RTkgIENpc2NvIFN5c3RlbXMKLSAwMDowOTpFQSAgWWVtIEluYy4KLSAwMDowOTpFQiAgSHVt YW5kYXRhIEx0ZC4KLSAwMDowOTpFQyAgRGFrdHJvbmljcywgSW5jLgotIDAwOjA5OkVEICBDaXBo ZXJvcHRpY3MKLS0wMDowOTpFRSAgTWVpa3lvIEVsZWN0cmljIENvLixsdGQKLSswMDowOTpFRSAg TWVpa3lvIEVsZWN0cmljIENvLixMdGQKLSAwMDowOTpFRiAgVm9jZXJhIENvbW11bmljYXRpb25z Ci0gMDA6MDk6RjAgIFNoaW1penUgVGVjaG5vbG9neSBJbmMuCi0gMDA6MDk6RjEgIFlhbWFraSBF bGVjdHJpYyBDb3Jwb3JhdGlvbgotIDAwOjA5OkYyICBDb2h1LCBJbmMuLCBFbGVjdHJvbmljcyBE aXZpc2lvbgotIDAwOjA5OkYzICBXZWxsIENvbW11bmljYXRpb24gQ29ycC4KLSAwMDowOTpGNCAg QWxjb24gTGFib3JhdG9yaWVzLCBJbmMuCi0tMDA6MDk6RjUgIEVtZXJzb24gTmV0d29yayBQb3dl ciBDby4sbHRkCi0rMDA6MDk6RjUgIEVtZXJzb24gTmV0d29yayBQb3dlciBDby4sTHRkCi0gMDA6 MDk6RjYgIFNoZW56aGVuIEVhc3Rlcm4gRGlnaXRhbCBUZWNoIEx0ZC4KLSAwMDowOTpGNyAgU2Vk LCBBIERpdmlzaW9uIE9mIENhbGlhbgotIDAwOjA5OkY4ICBVbmltbyBUZWNobm9sb2d5IENvLiwg THRkLgotQEAgLTI1MjksMTcgKzI1MzgsMTcgQEAKLSAwMDowOTpGQyAgSXBmbGV4IEluYy4KLSAw MDowOTpGRCAgVWJpbmV0aWNzIExpbWl0ZWQKLSAwMDowOTpGRSAgRGFpc3kgVGVjaG5vbG9naWVz LCBJbmMuCi0tMDA6MDk6RkYgIFgubmV0IDIwMDAgR21iaAotKzAwOjA5OkZGICBYLk5ldCAyMDAw IEdtYmgKLSAwMDowQTowMCAgTWVkaWF0ZWsgQ29ycC4KLSAwMDowQTowMSAgU29ob3dhcmUsIElu Yy4KLSAwMDowQTowMiAgQW5uc28gQ28uLCBMdGQuCi0tMDA6MEE6MDMgIEVuZGVzYSBTZXJ2aWNp b3MsIFMubC4KLS0wMDowQTowNCAgM2NvbSBFdXJvcGUgTHRkCi0rMDA6MEE6MDMgIEVuZGVzYSBT ZXJ2aWNpb3MsIFMuTC4KLSswMDowQTowNCAgM0NvbSBFdXJvcGUgTHRkCi0gMDA6MEE6MDUgIFdp ZGF4IENvcnAuCi0gMDA6MEE6MDYgIFRlbGVkZXggTGxjCi0tMDA6MEE6MDcgIEJlaWppbmcgQ29t c3lzIFRlY2hub2xvZ2llcyBDby4sbHRkLgotKzAwOjBBOjA3ICBXZWJ3YXlvbmUgTHRkCi0gMDA6 MEE6MDggIEFscGluZSBFbGVjdHJvbmljcywgSW5jLgotLTAwOjBBOjA5ICBQcml2YXRlCi0rMDA6 MEE6MDkgIFRhcmFjb20gSW50ZWdyYXRlZCBQcm9kdWN0cywgSW5jLgotIDAwOjBBOjBBICBTdW5p eCBDby4sIEx0ZC4KLSAwMDowQTowQiAgU2VhbGV2ZWwgU3lzdGVtcywgSW5jLgotIDAwOjBBOjBD ICBTY2llbnRpZmljIFJlc2VhcmNoIENvcnBvcmF0aW9uCi1AQCAtMjU1MCw3ICsyNTU5LDcgQEAK LSAwMDowQToxMSAgRXhwZXQgVGVjaG5vbG9naWVzLCBJbmMKLSAwMDowQToxMiAgQXp5bGV4IFRl Y2hub2xvZ3ksIEluYwotIDAwOjBBOjEzICBTaWxlbnQgV2l0bmVzcwotLTAwOjBBOjE0ICBUZWNv IEEucy4KLSswMDowQToxNCAgVGVjbyBBLlMuCi0gMDA6MEE6MTUgIFNpbGljb24gRGF0YSwgSW5j Ci0gMDA6MEE6MTYgIExhc3NlbiBSZXNlYXJjaAotIDAwOjBBOjE3ICBOZXN0YXIgQ29tbXVuaWNh dGlvbnMsIEluYwotQEAgLTI1NjAsNyArMjU2OSw3IEBACi0gMDA6MEE6MUIgIFN0cmVhbSBMYWJz Ci0gMDA6MEE6MUMgIEJyaWRnZSBJbmZvcm1hdGlvbiBDby4sIEx0ZC4KLSAwMDowQToxRCAgT3B0 aWNhbCBDb21tdW5pY2F0aW9ucyBQcm9kdWN0cyBJbmMuCi0tMDA6MEE6MUUgIFJlZC1tIChjb21t dW5pY2F0aW9ucykgTGltaXRlZAotKzAwOjBBOjFFICBSZWQtTSAoQ29tbXVuaWNhdGlvbnMpIExp bWl0ZWQKLSAwMDowQToxRiAgQXJ0IFdhcmUgVGVsZWNvbW11bmljYXRpb24gQ28uLCBMdGQuCi0g MDA6MEE6MjAgIFN2YSBOZXR3b3JrcywgSW5jLgotIDAwOjBBOjIxICBJbnRlZ3JhIFRlbGVjb20g Q28uIEx0ZAotQEAgLTI1NjgsMTcgKzI1NzcsMTcgQEAKLSAwMDowQToyMyAgUGFyYW1hIE5ldHdv cmtzIEluYwotIDAwOjBBOjI0ICBPY3RhdmUgQ29tbXVuaWNhdGlvbnMKLSAwMDowQToyNSAgQ2Vy YWdvbiBOZXR3b3JrcwotLTAwOjBBOjI2ICBQcml2YXRlCi0rMDA6MEE6MjYgIENlaWEgUy5QLkEu Ci0gMDA6MEE6MjcgIEFwcGxlIENvbXB1dGVyLCBJbmMuCi0tMDA6MEE6MjggIE1vdG9yb2xhIFBl cnNvbmFsIENvbW11bmljYXRpb25zIFNlY3RvcgotKzAwOjBBOjI4ICBNb3Rvcm9sYQotIDAwOjBB OjI5ICBQYW4gRGFjb20gTmV0d29ya2luZyBBZwotIDAwOjBBOjJBICBRc2kgU3lzdGVtcyBJbmMu Ci0gMDA6MEE6MkIgIEV0aGVyc3R1ZmYKLSAwMDowQToyQyAgQWN0aXZlIFRjaG5vbG9neSBDb3Jw b3JhdGlvbgotIDAwOjBBOjJEICBQcml2YXRlCi0gMDA6MEE6MkUgIE1hcGxlIE5ldHdvcmtzIENv LiwgTHRkCi0tMDA6MEE6MkYgIFByaXZhdGUKLS0wMDowQTozMCAgSm9obnNvbiBDb250cm9scy1h c2cKLSswMDowQToyRiAgQXJ0bml4IEluYy4KLSswMDowQTozMCAgSm9obnNvbiBDb250cm9scy1B c2cKLSAwMDowQTozMSAgSGN2IFdpcmVsZXNzCi0gMDA6MEE6MzIgIFhzaWRvIENvcnBvcmF0aW9u Ci0gMDA6MEE6MzMgIFNpZXJyYSBMb2dpYywgSW5jLgotQEAgLTI1ODcsMTkgKzI1OTYsMTkgQEAK LSAwMDowQTozNiAgU3luZWxlYyBUZWxlY29tIE11bHRpbWVkaWEKLSAwMDowQTozNyAgUHJvY2Vy YSBOZXR3b3JrcywgSW5jLgotIDAwOjBBOjM4ICBOZXRsb2NrIFRlY2hub2xvZ2llcywgSW5jLgot LTAwOjBBOjM5ICBQcml2YXRlCi0tMDA6MEE6M0EgIEotdGhyZWUgSW50ZXJuYXRpb25hbCBIb2xk aW5nIENvLiwgTHRkLgotKzAwOjBBOjM5ICBMb3BhIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kKLSsw MDowQTozQSAgSi1UaHJlZSBJbnRlcm5hdGlvbmFsIEhvbGRpbmcgQ28uLCBMdGQuCi0gMDA6MEE6 M0IgIEdjdCBTZW1pY29uZHVjdG9yLCBJbmMKLSAwMDowQTozQyAgRW5lcnBvaW50IEx0ZC4KLS0w MDowQTozRCAgRWxvIFNpc3RlbWFzIEVsZXRyb25pY29zIFMuYS4KLSswMDowQTozRCAgRWxvIFNp c3RlbWFzIEVsZXRyb25pY29zIFMuQS4KLSAwMDowQTozRSAgRWFkcyBUZWxlY29tCi0gMDA6MEE6 M0YgIERhdGEgRWFzdCBDb3Jwb3JhdGlvbgotIDAwOjBBOjQwICBDcm93biBBdWRpbwotLTAwOjBB OjQxICBDaXNjbwlBSVItUENNMzUyCi0rMDA6MEE6NDEgIENpc2NvIFN5c3RlbXMKLSAwMDowQTo0 MiAgQ2lzY28gU3lzdGVtcwotIDAwOjBBOjQzICBDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLgot IDAwOjBBOjQ0ICBBdmVyeSBEZW5uaXNvbiBEZXV0c2NobGFuZCBHbWJoCi0tMDA6MEE6NDUgIEF1 ZGlvLXRlY2huaWNhIENvcnAuCi0rMDA6MEE6NDUgIEF1ZGlvLVRlY2huaWNhIENvcnAuCi0gMDA6 MEE6NDYgIEFybyBDb250cm9scyBTYXMKLSAwMDowQTo0NyAgQWxsaWVkIFZpc2lvbiBUZWNobm9s b2dpZXMKLSAwMDowQTo0OCAgQWxiYXRyb24gVGVjaG5vbG9neQotQEAgLTI2MTcsMjYgKzI2MjYs MjYgQEAKLSAwMDowQTo1NCAgTGFndW5hIEhpbGxzLCBJbmMuCi0gMDA6MEE6NTUgIE1hcmtlbSBD b3Jwb3JhdGlvbgotIDAwOjBBOjU2ICBIaXRhY2hpIE1heGVsbCBMdGQuCi0tMDA6MEE6NTcgIEhl d2xldHQtcGFja2FyZCBDb21wYW55IC0gU3RhbmRhcmRzCi0tMDA6MEE6NTggIEluZ2VuaWV1ci1i dWVybyBGcmV5ZXIgJiBTaWVnZWwKLSswMDowQTo1NyAgSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkg LSBTdGFuZGFyZHMKLSswMDowQTo1OCAgSW5nZW5pZXVyLUJ1ZXJvIEZyZXllciAmIFNpZWdlbAot IDAwOjBBOjU5ICBIdyBTZXJ2ZXIKLS0wMDowQTo1QSAgR3JlZW5uZXQgVGVjaG5vbG9naWVzIENv LixsdGQuCi0tMDA6MEE6NUIgIFBvd2VyLW9uZSBBcwotLTAwOjBBOjVDICBDYXJlbCBTLnAuYS4K LS0wMDowQTo1RCAgUHVjIEZvdW5kZXIgKG1zYykgQmVyaGFkCi0tMDA6MEE6NUUgIDNjb20gQ29y cG9yYXRpb24KLSswMDowQTo1QSAgR3JlZW5uZXQgVGVjaG5vbG9naWVzIENvLixMdGQuCi0rMDA6 MEE6NUIgIFBvd2VyLU9uZSBBcwotKzAwOjBBOjVDICBDYXJlbCBTLlAuQS4KLSswMDowQTo1RCAg UHVjIEZvdW5kZXIgKE1zYykgQmVyaGFkCi0rMDA6MEE6NUUgIDNDb20gQ29ycG9yYXRpb24KLSAw MDowQTo1RiAgQWxtZWRpbyBJbmMuCi0gMDA6MEE6NjAgIEF1dG9zdGFyIFRlY2hub2xvZ3kgUHRl IEx0ZAotIDAwOjBBOjYxICBDZWxsaW54IFN5c3RlbXMgSW5jLgotIDAwOjBBOjYyICBDcmluaXMg TmV0d29ya3MsIEluYy4KLSAwMDowQTo2MyAgRGhkIEdtYmgKLSAwMDowQTo2NCAgRXJhY29tIFRl Y2hub2xvZ2llcwotLTAwOjBBOjY1ICBHZW50ZWNobWVkaWEuY28uLGx0ZC4KLS0wMDowQTo2NiAg TWl0c3ViaXNoaSBFbGVjdHJpYyBTeXN0ZW0gJiBTZXJ2aWNlIENvLixsdGQuCi0rMDA6MEE6NjUg IEdlbnRlY2htZWRpYS5Dby4sTHRkLgotKzAwOjBBOjY2ICBNaXRzdWJpc2hpIEVsZWN0cmljIFN5 c3RlbSAmIFNlcnZpY2UgQ28uLEx0ZC4KLSAwMDowQTo2NyAgT25nY29ycAotIDAwOjBBOjY4ICBT b2xhcmZsYXJlIENvbW11bmljYXRpb25zLCBJbmMuCi0gMDA6MEE6NjkgIFN1bm55IEJlbGwgVGVj aG5vbG9neSBDby4sIEx0ZC4KLS0wMDowQTo2QSAgU3ZtIE1pY3Jvd2F2ZXMgUy5yLm8uCi0rMDA6 MEE6NkEgIFN2bSBNaWNyb3dhdmVzIFMuUi5PLgotIDAwOjBBOjZCICBUYWRpcmFuIFRlbGVjb20g QnVzaW5lc3MgU3lzdGVtcyBMdGQKLSAwMDowQTo2QyAgV2FsY2hlbSBDb3Jwb3JhdGlvbgotIDAw OjBBOjZEICBFa3MgRWxla3Ryb25pa3NlcnZpY2UgR21iaAotQEAgLTI2NDgsMjcgKzI2NTcsMjcg QEAKLSAwMDowQTo3MyAgU2NpZW50aWZpYyBBdGxhbnRhCi0gMDA6MEE6NzQgIE1hbnRpY29tIE5l dHdvcmtzIEluYy4KLSAwMDowQTo3NSAgQ2F0IEVsZWN0cm9uaWNzCi0tMDA6MEE6NzYgIEJlaWRh IEphZGUgQmlyZCBIdWFndWFuZyBUZWNobm9sb2d5IENvLixsdGQKLSswMDowQTo3NiAgQmVpZGEg SmFkZSBCaXJkIEh1YWd1YW5nIFRlY2hub2xvZ3kgQ28uLEx0ZAotIDAwOjBBOjc3ICBCbHVld2ly ZSBUZWNobm9sb2dpZXMgTGxjCi0gMDA6MEE6NzggIE9saXRlYwotLTAwOjBBOjc5ICBDb3JlZ2Eg Sy5rLgotKzAwOjBBOjc5ICBDb3JlZ2EgSy5LLgotIDAwOjBBOjdBICBLeW9yaXRzdSBFbGVjdHJp YyBDby4sIEx0ZC4KLS0wMDowQTo3QiAgUHJpdmF0ZQotKzAwOjBBOjdCICBDb3JuZWxpdXMgQ29u c3VsdAotIDAwOjBBOjdDICBUZWN0b24gTHRkCi0gMDA6MEE6N0QgIFZhbG8sIEluYy4KLSAwMDow QTo3RSAgVGhlIEFkdmFudGFnZSBHcm91cAotIDAwOjBBOjdGICBUZXJhZG9uIEluZHVzdHJpZXMs IEluYwotIDAwOjBBOjgwICBUZWxrb25ldCBJbmMuCi0tMDA6MEE6ODEgIFRlaW1hIEF1ZGlvdGV4 IFMubC4KLS0wMDowQTo4MiAgVGF0c3V0YSBTeXN0ZW0gRWxlY3Ryb25pY3MgQ28uLGx0ZC4KLS0w MDowQTo4MyAgU2FsdG8gU3lzdGVtcyBTLmwuCi0rMDA6MEE6ODEgIFRlaW1hIEF1ZGlvdGV4IFMu TC4KLSswMDowQTo4MiAgVGF0c3V0YSBTeXN0ZW0gRWxlY3Ryb25pY3MgQ28uLEx0ZC4KLSswMDow QTo4MyAgU2FsdG8gU3lzdGVtcyBTLkwuCi0gMDA6MEE6ODQgIFJhaW5zdW4gRW50ZXJwcmlzZSBD by4sIEx0ZC4KLS0wMDowQTo4NSAgUGxhdCdjMixpbmMKLSswMDowQTo4NSAgUGxhdCdjMixJbmMK LSAwMDowQTo4NiAgTGVuemUKLSAwMDowQTo4NyAgSW50ZWdyYXRlZCBNaWNyb21hY2hpbmVzIElu Yy4KLS0wMDowQTo4OCAgSW5jeXBoZXIgUy5hLgotKzAwOjBBOjg4ICBJbmN5cGhlciBTLkEuCi0g MDA6MEE6ODkgIENyZXZhbCBTeXN0ZW1zLCBJbmMuCi0tMDA6MEE6OEEgIENpc2NvCUFJUi1QQ00z NTIKLSswMDowQTo4QSAgQ2lzY28gU3lzdGVtcwotIDAwOjBBOjhCICBDaXNjbyBTeXN0ZW1zCi0g MDA6MEE6OEMgIEd1YXJkd2FyZSBTeXN0ZW1zIEx0ZC4KLSAwMDowQTo4RCAgRXVyb3RoZXJtIExp bWl0ZWQKLUBAIC0yNjgyLDE5ICsyNjkxLDE5IEBACi0gMDA6MEE6OTUgIEFwcGxlIENvbXB1dGVy LCBJbmMuCi0gMDA6MEE6OTYgIE1ld3RlbCBUZWNobm9sb2d5IEluYy4KLSAwMDowQTo5NyAgU29u aWNibHVlLCBJbmMuCi0tMDA6MEE6OTggIE0rZiBHd2lubmVyIEdtYmggJiBDbwotKzAwOjBBOjk4 ICBNK0YgR3dpbm5lciBHbWJoICYgQ28KLSAwMDowQTo5OSAgRGF0YXJhZGlvIEluYy4KLSAwMDow QTo5QSAgQWlwdGVrIEludGVybmF0aW9uYWwgSW5jCi0gMDA6MEE6OUIgIFRvd2EgTWVjY3MgQ29y cG9yYXRpb24KLSAwMDowQTo5QyAgU2VydmVyIFRlY2hub2xvZ3ksIEluYy4KLSAwMDowQTo5RCAg S2luZyBZb3VuZyBUZWNobm9sb2d5IENvLiBMdGQuCi0gMDA6MEE6OUUgIEJyb2Fkd2ViIENvcnBv cnRhdGlvbgotLTAwOjBBOjlGICBQcml2YXRlCi0rMDA6MEE6OUYgIFBhbm5hd2F5IFRlY2hub2xv Z2llcywgSW5jLgotIDAwOjBBOkEwICBDZWRhciBQb2ludCBDb21tdW5pY2F0aW9ucwotIDAwOjBB OkExICBWIFYgUyBMaW1pdGVkCi0gMDA6MEE6QTIgIFN5c3RlayBJbmMuCi0tMDA6MEE6QTMgIFNo aW1hZnVqaSBFbGVjdHJpYyBDby4sbHRkLgotLTAwOjBBOkE0ICBTaGFuZ2hhaSBTdXJ2ZWlsbGFu Y2UgVGVjaG5vbG9neSBDbyxsdGQKLSswMDowQTpBMyAgU2hpbWFmdWppIEVsZWN0cmljIENvLixM dGQuCi0rMDA6MEE6QTQgIFNoYW5naGFpIFN1cnZlaWxsYW5jZSBUZWNobm9sb2d5IENvLEx0ZAot IDAwOjBBOkE1ICBNYXhsaW5rIEluZHVzdHJpZXMgTGltaXRlZAotIDAwOjBBOkE2ICBIb2NoaWtp IENvcnBvcmF0aW9uCi0gMDA6MEE6QTcgIEZlaSBDb21wYW55Ci1AQCAtMjcwNSw3ICsyNzE0LDcg QEAKLSAwMDowQTpBQyAgVGVycmF0ZWMgRWxlY3Ryb25pYyBHbWJoCi0gMDA6MEE6QUQgIFN0YXJn YW1lcyBDb3Jwb3JhdGlvbgotIDAwOjBBOkFFICBSb3NlbW91bnQgUHJvY2VzcyBBbmFseXRpY2Fs Ci0tMDA6MEE6QUYgIFByaXZhdGUKLSswMDowQTpBRiAgUGlwYWwgU3lzdGVtcwotIDAwOjBBOkIw ICBMb3l0ZWMgRWxlY3Ryb25pY3MgR21iaAotIDAwOjBBOkIxICBHZW5ldGVjIENvcnBvcmF0aW9u Ci0gMDA6MEE6QjIgIEZyZXNuZWwgV2lyZWxlc3MgU3lzdGVtcwotQEAgLTI3MTksMjYgKzI3Mjgs MjYgQEAKLSAwMDowQTpCQSAgQXJjb24gVGVjaG5vbG9neSBMaW1pdGVkCi0gMDA6MEE6QkIgIFRh aXdhbiBTZWNvbSBDbywuIEx0ZAotIDAwOjBBOkJDICBTZWFicmlkZ2UgTHRkLgotLTAwOjBBOkJE ICBQcml2YXRlCi0rMDA6MEE6QkQgIFJ1cHByZWNodCAmIFBhdGFzaG5pY2sgQ28uCi0gMDA6MEE6 QkUgIE9wbmV0IFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KLSAwMDowQTpCRiAgSGlyb3RhIFNzCi0g MDA6MEE6QzAgIEZ1eW9oIFZpZGVvIEluZHVzdHJ5IENvLiwgTHRkLgotIDAwOjBBOkMxICBGdXR1 cmV0ZWwKLS0wMDowQTpDMiAgRmliZXJob21lIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2ll cyBDby4sbHRkCi0rMDA6MEE6QzIgIEZpYmVyaG9tZSBUZWxlY29tbXVuaWNhdGlvbiBUZWNobm9s b2dpZXMgQ28uLEx0ZAotIDAwOjBBOkMzICBFbSBUZWNobmljcyBDby4sIEx0ZC4KLSAwMDowQTpD NCAgRGFld29vIFRlbGV0ZWNoIENvLiwgTHRkCi0gMDA6MEE6QzUgIENvbG9yIEtpbmV0aWNzCi0g MDA6MEE6QzYgIFByaXZhdGUKLSAwMDowQTpDNyAgVW5pY2F0aW9uIEdyb3VwCi0tMDA6MEE6Qzgg IFpwc3lzIENvLixsdGQuIChwbGFubmluZyZtYW5hZ2VtZW50KQotKzAwOjBBOkM4ICBacHN5cyBD by4sTHRkLiAoUGxhbm5pbmcmTWFuYWdlbWVudCkKLSAwMDowQTpDOSAgWmFtYmVlbCBJbmMKLS0w MDowQTpDQSAgWW9rb3lhbWEgU2hva2FpIENvLixsdGQuCi0rMDA6MEE6Q0EgIFlva295YW1hIFNo b2thaSBDby4sTHRkLgotIDAwOjBBOkNCICBYcGFrIE1zYSBHcm91cAotIDAwOjBBOkNDICBXaW5u b3cgTmV0d29ya3MsIEluYy4KLSAwMDowQTpDRCAgU3VucmljaCBUZWNobm9sb2d5IExpbWl0ZWQK LSAwMDowQTpDRSAgUmFkaWFudGVjaCwgSW5jLgotIDAwOjBBOkNGICBQcm92aWRlbyBNdWx0aW1l ZGlhIENvLiBMdGQuCi0tMDA6MEE6RDAgIE5paWdhdGEgRGV2ZWxvbWVudCBDZW50ZXIsICBGLmku dC4gQ28uLCBMdGQuCi0rMDA6MEE6RDAgIE5paWdhdGEgRGV2ZWxvbWVudCBDZW50ZXIsICBGLkku VC4gQ28uLCBMdGQuCi0gMDA6MEE6RDEgIE13cwotIDAwOjBBOkQyICBKZXBpY28gQ29ycG9yYXRp b24KLSAwMDowQTpEMyAgSW5pdGVjaCBDby4sIEx0ZAotQEAgLTI3NjAsMTcgKzI3NjksMTcgQEAK LSAwMDowQTpFMyAgWWFuZyBNZWkgVGVjaG5vbG9neSBDby4sIEx0ZAotIDAwOjBBOkU0ICBXaXN0 cm9uIENvcnAuCi0gMDA6MEE6RTUgIFNjb3R0Y2FyZSBDb3Jwb3JhdGlvbgotLTAwOjBBOkU2ICBF bGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4gKGVjcykKLS0wMDowQTpFNyAgRWxpb3AgUy5h LgotKzAwOjBBOkU2ICBFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4gKEVjcykKLSswMDow QTpFNyAgRWxpb3AgUy5BLgotIDAwOjBBOkU4ICBDYXRoYXkgUm94dXMgSW5mb3JtYXRpb24gVGVj aG5vbG9neSBDby4gTHRkCi0gMDA6MEE6RTkgIEFpcnZhc3QgVGVjaG5vbG9neSBJbmMuCi0tMDA6 MEE6RUEgIEFkYW0gRWxla3Ryb25payBMdGQuc3RpLgotLTAwOjBBOkVCICBTaGVuemhlbiBUcC1s aW5rIFRlY2hub2xvZ3kgQ287IEx0ZC4KLSswMDowQTpFQSAgQWRhbSBFbGVrdHJvbmlrIEx0ZC5T dGkuCi0rMDA6MEE6RUIgIFNoZW56aGVuIFRwLUxpbmsgVGVjaG5vbG9neSBDbzsgTHRkLgotIDAw OjBBOkVDICBLb2F0c3UgR2FzIEtvZ3lvIENvLiwgTHRkLgotLTAwOjBBOkVEICBIYXJ0aW5nIFZl bmRpbmcgRy5tLmIuaC4gJiBDbyBLZwotKzAwOjBBOkVEICBIYXJ0aW5nIFZlbmRpbmcgRy5NLkIu SC4gJiBDbyBLZwotIDAwOjBBOkVFICBHY2QgSGFyZC0gJiBTb2Z0d2FyZSBHbWJoCi0gMDA6MEE6 RUYgIE90cnVtIEFzYQotLTAwOjBBOkYwICBTaGluLW9oIEVsZWN0cm9uaWNzIENvLiwgTHRkLiBS JmQKLSswMDowQTpGMCAgU2hpbi1PaCBFbGVjdHJvbmljcyBDby4sIEx0ZC4gUiZECi0gMDA6MEE6 RjEgIENsYXJpdHkgRGVzaWduLCBJbmMuCi0gMDA6MEE6RjIgIE5lb2F4aW9tIENvcnAuCi0gMDA6 MEE6RjMgIENpc2NvIFN5c3RlbXMKLUBAIC0yNzc5LDE0ICsyNzg4LDE0IEBACi0gMDA6MEE6RjYg IENvbXB1dGVyIFByb2Nlc3MgQ29udHJvbHMKLSAwMDowQTpGNyAgQnJvYWRjb20gQ29ycC4KLSAw MDowQTpGOCAgQW1lcmljYW4gVGVsZWNhcmUgSW5jLgotLTAwOjBBOkY5ICBQcml2YXRlCi0rMDA6 MEE6RjkgIEhpY29ubmVjdCwgSW5jLgotIDAwOjBBOkZBICBUcmF2ZXJzZSBUZWNobm9sb2dpZXMg QXVzdHJhbGlhCi0gMDA6MEE6RkIgIEFtYnJpIExpbWl0ZWQKLSAwMDowQTpGQyAgQ29yZSBUZWMg Q29tbXVuaWNhdGlvbnMsIExsYwotIDAwOjBBOkZEICBWaWtpbmcgRWxlY3Ryb25pYyBTZXJ2aWNl cwotIDAwOjBBOkZFICBOb3ZhcGFsIEx0ZAotIDAwOjBBOkZGICBLaWxjaGhlcnIgRWxla3Ryb25p ayBBZwotLTAwOjBCOjAwICBGdWppYW4gU3RhcnQgQ29tcHV0ZXIgRXF1aXBtZW50IENvLixsdGQK LSswMDowQjowMCAgRnVqaWFuIFN0YXJ0IENvbXB1dGVyIEVxdWlwbWVudCBDby4sTHRkCi0gMDA6 MEI6MDEgIERhaWljaGkgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCi0gMDA6MEI6MDIgIERhbGxtZWll ciBFbGVjdHJvbmljCi0gMDA6MEI6MDMgIFRhZWt3YW5nIEluZHVzdHJpYWwgQ28uLCBMdGQKLUBA IC0yNzk5LDEyICsyODA4LDEyIEBACi0gMDA6MEI6MEEgIERibSBPcHRpY3MKLSAwMDowQjowQiAg Q29ycmVudCBDb3Jwb3JhdGlvbgotIDAwOjBCOjBDICBBZ2lsZSBTeXN0ZW1zIEluYy4KLS0wMDow QjowRCAgQWlyMnUsIEluYy4KLSswMDowQjowRCAgQWlyMlUsIEluYy4KLSAwMDowQjowRSAgVHJh cGV6ZSBOZXR3b3JrcwotIDAwOjBCOjBGICBOeXF1aXN0IEluZHVzdHJpYWwgQ29udHJvbCBCdgot LTAwOjBCOjEwICAxMXdhdmUgVGVjaG5vbmxvZ3kgQ28uLGx0ZAotLTAwOjBCOjExICBIaW1lamkg QWJjIFRyYWRpbmcgQ28uLGx0ZC4KLS0wMDowQjoxMiAgUHJpdmF0ZQotKzAwOjBCOjEwICAxMVdh dmUgVGVjaG5vbmxvZ3kgQ28uLEx0ZAotKzAwOjBCOjExICBIaW1lamkgQWJjIFRyYWRpbmcgQ28u LEx0ZC4KLSswMDowQjoxMiAgTnVyaSBUZWxlY29tIENvLiwgTHRkLgotIDAwOjBCOjEzICBaZXRy b24gSW5jCi0gMDA6MEI6MTQgIFZpZXdzb25pYyBDb3Jwb3JhdGlvbgotIDAwOjBCOjE1ICBQbGF0 eXB1cyBUZWNobm9sb2d5Ci1AQCAtMjgxNiwxMCArMjgyNSwxMCBAQAotIDAwOjBCOjFCICBTeXN0 cm9uaXgsIEluYy4KLSAwMDowQjoxQyAgUHJpdmF0ZQotIDAwOjBCOjFEICBMYXllcnplcm8gUG93 ZXIgU3lzdGVtcywgSW5jLgotLTAwOjBCOjFFICBLYXBwYSBPcHRvLWVsZWN0cm9uaWNzIEdtYmgK LSswMDowQjoxRSAgS2FwcGEgT3B0by1FbGVjdHJvbmljcyBHbWJoCi0gMDA6MEI6MUYgIEkgQ29u IENvbXB1dGVyIENvLgotIDAwOjBCOjIwICBIaXJhdGEgQ29ycG9yYXRpb24KLS0wMDowQjoyMSAg Ry1zdGFyIENvbW11bmljYXRpb25zIEluYy4KLSswMDowQjoyMSAgRy1TdGFyIENvbW11bmljYXRp b25zIEluYy4KLSAwMDowQjoyMiAgRW52aXJvbm1lbnRhbCBTeXN0ZW1zIEFuZCBTZXJ2aWNlcwot IDAwOjBCOjIzICBFZmZpY2llbnQgTmV0d29ya3MsIEluYy4KLSAwMDowQjoyNCAgQWlybG9naWMK LUBAIC0yODI3LDIzICsyODM2LDIzIEBACi0gMDA6MEI6MjYgIFdldGVrIENvcnBvcmF0aW9uCi0g MDA6MEI6MjcgIFNjaW9uIENvcnBvcmF0aW9uCi0gMDA6MEI6MjggIFF1YXRlY2ggSW5jLgotLTAw OjBCOjI5ICBMZyBJbmR1c3RyaWFsIFN5c3RlbXMgQ28uLGx0ZC4KLSswMDowQjoyOSAgTGcgSW5k dXN0cmlhbCBTeXN0ZW1zIENvLixMdGQuCi0gMDA6MEI6MkEgIEhvd3RlbCBDby4sIEx0ZC4KLSAw MDowQjoyQiAgSG9zdG5ldCBDb3Jwb3JhdGlvbgotIDAwOjBCOjJDICBFaWtpIEluZHVzdHJpYWwg Q28uIEx0ZC4KLSAwMDowQjoyRCAgRGFuZm9zcyBJbmMuCi0tMDA6MEI6MkUgIENhbC1jb21wIEVs ZWN0cm9uaWNzICh0aGFpbGFuZCkgUHVibGljIENvbXBhbnkgTGltaXRlZCBUYWlwZQotKzAwOjBC OjJFICBDYWwtQ29tcCBFbGVjdHJvbmljcyAoVGhhaWxhbmQpIFB1YmxpYyBDb21wYW55IExpbWl0 ZWQgVGFpcGUKLSAwMDowQjoyRiAgQnBsYW4gR21iaAotLTAwOjBCOjMwICBCZWlqaW5nIEdvbmd5 ZSBTY2llbmNlICYgVGVjaG5vbG9neSBDby4sbHRkCi0rMDA6MEI6MzAgIEJlaWppbmcgR29uZ3ll IFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLixMdGQKLSAwMDowQjozMSAgWWFudGFpIFpoaXlhbmcg U2NpZW50aWZpYyBBbmQgVGVjaG5vbG9neSBJbmR1c3RyeSBDby4sIEx0ZAotIDAwOjBCOjMyICBW b3JtZXRyaWMsIEluYy4KLSAwMDowQjozMyAgVml2YXRvCi0tMDA6MEI6MzQgIFNoYW5naGFpIEJy b2FkYmFuZCBUZWNobm9sb2dpZXMgQ28ubHRkCi0rMDA6MEI6MzQgIFNoYW5naGFpIEJyb2FkYmFu ZCBUZWNobm9sb2dpZXMgQ28uTHRkCi0gMDA6MEI6MzUgIFF1YWQgQml0IFN5c3RlbSBDby4sIEx0 ZC4KLSAwMDowQjozNiAgUHJvZHVjdGl2aXR5IFN5c3RlbXMsIEluYy4KLSAwMDowQjozNyAgTWFu dWZhY3R1cmUgRGVzIE1vbnRyZXMgUm9sZXggU2EKLSAwMDowQjozOCAgS251ZXJyIEFnCi0tMDA6 MEI6MzkgIEtlaXNva3UgR2lrZW4gQ28uLGx0ZC4KLSswMDowQjozOSAgS2Vpc29rdSBHaWtlbiBD by4sTHRkLgotIDAwOjBCOjNBICBGb3J0ZWwgRHR2LCBJbmMuCi0gMDA6MEI6M0IgIERldm9sbyBB ZwotIDAwOjBCOjNDICBDeWduYWwgSW50ZWdyYXRlZCBQcm9kdWN0cywgSW5jLgotQEAgLTI4NTks MTAgKzI4NjgsMTAgQEAKLSAwMDowQjo0NiAgQ2lzY28KLSAwMDowQjo0NyAgQWR2YW5jZWQgRW5l cmd5Ci0gMDA6MEI6NDggIFNvZnJlbAotLTAwOjBCOjQ5ICBSZi1saW5rIFN5c3RlbSBJbmMuCi0t MDA6MEI6NEEgIFZpc2ltZXRyaWNzICh1aykgTHRkCi0rMDA6MEI6NDkgIFJmLUxpbmsgU3lzdGVt IEluYy4KLSswMDowQjo0QSAgVmlzaW1ldHJpY3MgKFVrKSBMdGQKLSAwMDowQjo0QiAgVmlzaW93 YXZlIFNhCi0tMDA6MEI6NEMgIENsYXJpb24gKG0pIFNkbiBCaGQKLSswMDowQjo0QyAgQ2xhcmlv biAoTSkgU2RuIEJoZAotIDAwOjBCOjREICBFbXV6ZWQKLSAwMDowQjo0RSAgVmVydGV4cnNpIEFu dGVubmEgUHJvZHVjdHMgRGl2aXNpb24KLSAwMDowQjo0RiAgVmVyaWZvbmUsIEluYy4KLUBAIC0y ODc0LDIwICsyODgzLDIwIEBACi0gMDA6MEI6NTUgIEFkaW5zdHJ1bWVudHMKLSAwMDowQjo1NiAg Q3liZXJuZXRpY3MKLSAwMDowQjo1NyAgU2lsaWNvbiBMYWJvcmF0b3JpZXMKLS0wMDowQjo1OCAg QXN0cm9uYXV0aWNzIEMuYSAgTHRkCi0rMDA6MEI6NTggIEFzdHJvbmF1dGljcyBDLkEgIEx0ZAot IDAwOjBCOjU5ICBTY3JpcHRwcm8sIExsYwotIDAwOjBCOjVBICBIeXBlcmVkZ2UKLSAwMDowQjo1 QiAgUmluY29uIFJlc2VhcmNoIENvcnBvcmF0aW9uCi0tMDA6MEI6NUMgIE5ld3RlY2ggQ28uLGx0 ZAotKzAwOjBCOjVDICBOZXd0ZWNoIENvLixMdGQKLSAwMDowQjo1RCAgRnVqaXRzdSBMaW1pdGVk Ci0gMDA6MEI6NUUgIEF0bWF2YSBMdGQKLSAwMDowQjo1RiAgQ2lzY28gU3lzdGVtcwotIDAwOjBC OjYwICBDaXNjbyBTeXN0ZW1zCi0tMDA6MEI6NjEgIEZyaWVkcmljaCBM77+9dHplIEdtYmggJmNv LgotKzAwOjBCOjYxICBGcmllZHJpY2ggTO+/vXR6ZSBHbWJoICZDby4KLSAwMDowQjo2MiAgSW5n ZW5pZXVyYu+/vXJvIEluZ28gTW9obmVuCi0tMDA6MEI6NjMgIFByaXZhdGUKLSswMDowQjo2MyAg S2FsZWlkZXNjYXBlCi0gMDA6MEI6NjQgIEtpZWJhY2sgJiBQZXRlciBHbWJoICYgQ28gS2cKLS0w MDowQjo2NSAgU3kuYS5jLiBTcmwKLSswMDowQjo2NSAgU3kuQS5DLiBTcmwKLSAwMDowQjo2NiAg VGVyYWxpbmsgQ29tbXVuaWNhdGlvbnMKLSAwMDowQjo2NyAgVG9wdmlldyBUZWNobm9sb2d5IENv cnBvcmF0aW9uCi0gMDA6MEI6NjggIEFkZHZhbHVlIENvbW11bmljYXRpb25zIFB0ZSBMdGQKLUBA IC0yOTA0LDEyICsyOTEzLDEyIEBACi0gMDA6MEI6NzMgIEtvZGVvcyBDb21tdW5pY2F0aW9ucwot IDAwOjBCOjc0ICBLaW5nd2F2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgotIDAwOjBCOjc1ICBJb3Nv ZnQgTHRkLgotLTAwOjBCOjc2ICBFdCZ0IENvLiBMdGQuCi0rMDA6MEI6NzYgIEV0JlQgQ28uIEx0 ZC4KLSAwMDowQjo3NyAgQ29nZW50IFN5c3RlbXMsIEluYy4KLSAwMDowQjo3OCAgVGFpZmF0ZWNo IEluYy4KLS0wMDowQjo3OSAgWC1jb20sIEluYy4KLS0wMDowQjo3QSAgUHJpdmF0ZQotLTAwOjBC OjdCICBUZXN0LXVtIEluYy4KLSswMDowQjo3OSAgWC1Db20sIEluYy4KLSswMDowQjo3QSAgV2F2 ZSBTY2llbmNlIEluYy4KLSswMDowQjo3QiAgVGVzdC1VbSBJbmMuCi0gMDA6MEI6N0MgIFRlbGV4 IENvbW11bmljYXRpb25zCi0gMDA6MEI6N0QgIFNvbG9tb24gRXh0cmVtZSBJbnRlcm5hdGlvbmFs IEx0ZC4KLSAwMDowQjo3RSAgU2FnaW5vbWl5YSBTZWlzYWt1c2hvIEluYy4KLUBAIC0yOTE3LDI3 ICsyOTI2LDI3IEBACi0gMDA6MEI6ODAgIFByaXZhdGUKLSAwMDowQjo4MSAgS2FwYXJlbCBDb3Jw b3JhdGlvbgotIDAwOjBCOjgyICBHcmFuZHN0cmVhbSBOZXR3b3JrcywgSW5jLgotLTAwOjBCOjgz ICBEYXRhd2F0dCBCLnYuCi0rMDA6MEI6ODMgIERhdGF3YXR0IEIuVi4KLSAwMDowQjo4NCAgQm9k ZXQKLS0wMDowQjo4NSAgQmxhY2sgU3Rvcm0gTmV0d29ya3MKLSswMDowQjo4NSAgQWlyZXNwYWNl LCBJbmMuCi0gMDA6MEI6ODYgIEFydWJhIE5ldHdvcmtzCi0gMDA6MEI6ODcgIEFtZXJpY2FuIFJl bGlhbmNlIEluYy4KLSAwMDowQjo4OCAgVmlkaXNjbyBMdGQuCi0gMDA6MEI6ODkgIFRvcCBHbG9i YWwgVGVjaG5vbG9neSwgTHRkLgotIDAwOjBCOjhBICBNaXRlcSBJbmMuCi0tMDA6MEI6OEIgIEtl cmFqZXQsIFMuYS4KLSswMDowQjo4QiAgS2VyYWpldCwgUy5BLgotIDAwOjBCOjhDICBGbGV4dHJv bmljcyBJc3JhZWwKLSAwMDowQjo4RCAgQXZ2aW8gTmV0d29ya3MKLSAwMDowQjo4RSAgQXNjZW50 IENvcnBvcmF0aW9uCi0tMDA6MEI6OEYgIEFraXRhIEVsZWN0cm9uaWNzIFN5c3RlbXMgQ28uLGx0 ZC4KLSswMDowQjo4RiAgQWtpdGEgRWxlY3Ryb25pY3MgU3lzdGVtcyBDby4sTHRkLgotIDAwOjBC OjkwICBDb3Zhcm8gTmV0d29ya3MsIEluYy4KLSAwMDowQjo5MSAgQWdsYWlhIEdlc2VsbHNjaGFm dCBG77+9ciBCaWxkdmVyYXJiZWl0dW5nIFVuZCBLb21tdW5pa2F0aW9uIE0KLS0wMDowQjo5MiAg QXNjb20gRGFubWFyayBBL3MKLSswMDowQjo5MiAgQXNjb20gRGFubWFyayBBL1MKLSAwMDowQjo5 MyAgQmFybWFnIEVsZWN0cm9uaWMKLSAwMDowQjo5NCAgRGlnaXRhbCBNb25pdG9yaW5nIFByb2R1 Y3RzLCBJbmMuCi0gMDA6MEI6OTUgIEViZXQgR2FtaW5nIFN5c3RlbXMgUHR5IEx0ZAotIDAwOjBC Ojk2ICBJbm5vdHJhYyBEaWFnbm9zdGljcyBPeQotLTAwOjBCOjk3ICBNYXRzdXNoaXRhIEVsZWN0 cmljIEluZHVzdHJpYWwgQ28uLGx0ZC4KLSswMDowQjo5NyAgTWF0c3VzaGl0YSBFbGVjdHJpYyBJ bmR1c3RyaWFsIENvLixMdGQuCi0gMDA6MEI6OTggIE5pY2V0ZWNodmlzaW9uCi0gMDA6MEI6OTkg IFNlbnNhYmxlIFRlY2hub2xvZ2llcywgSW5jLgotIDAwOjBCOjlBICBTaGFuZ2hhaSBVbGluayBU ZWxlY29tIEVxdWlwbWVudCBDby4gTHRkLgotQEAgLTI5NDYsMjIgKzI5NTUsMjIgQEAKLSAwMDow Qjo5RCAgVHdpbm1vcyBUZWNobm9sb2dpZXMgSW5jLgotIDAwOjBCOjlFICBZYXNpbmcgVGVjaG5v bG9neSBDb3JwLgotIDAwOjBCOjlGICBOZXVlIEVsc2EgR21iaAotLTAwOjBCOkEwICBUJmwgSW5m b3JtYXRpb24gSW5jLgotKzAwOjBCOkEwICBUJkwgSW5mb3JtYXRpb24gSW5jLgotIDAwOjBCOkEx ICBTeXNjb20gTHRkLgotIDAwOjBCOkEyICBTdW1pdG9tbyBFbGVjdHJpYyBOZXR3b3JrcywgSW5j Ci0tMDA6MEI6QTMgIFNpZW1lbnMgQWcsIEkmcwotKzAwOjBCOkEzICBTaWVtZW5zIEFnLCBJJlMK LSAwMDowQjpBNCAgU2hpcm9uIFNhdGVsbGl0ZSBDb21tdW5pY2F0aW9ucyBMdGQuICgxOTk2KQot IDAwOjBCOkE1ICBRdWFzYXIgQ2lwdGEgTWFuZGlyaSwgUHQKLSAwMDowQjpBNiAgTWl5YWthd2Eg RWxlY3RyaWMgV29ya3MgTHRkLgotIDAwOjBCOkE3ICBNYXJhbnRpIE5ldHdvcmtzCi0gMDA6MEI6 QTggIEhhbmJhY2sgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCi0tMDA6MEI6QTkgIFByaXZhdGUKLS0w MDowQjpBQSAgQWlwaG9uZSBDby4sbHRkCi0tMDA6MEI6QUIgIEFkdmFudGVjaCBUZWNobm9sb2d5 IChjaGluYSkgQ28uLCBMdGQuCi0tMDA6MEI6QUMgIDNjb20gRXVyb3BlIEx0ZC4KLS0wMDowQjpB RCAgUGMtcG9zIEluYy4KLSswMDowQjpBOSAgQ2xvdWRzaGllbGQgVGVjaG5vbG9naWVzLCBJbmMu Ci0rMDA6MEI6QUEgIEFpcGhvbmUgQ28uLEx0ZAotKzAwOjBCOkFCICBBZHZhbnRlY2ggVGVjaG5v bG9neSAoQ2hpbmEpIENvLiwgTHRkLgotKzAwOjBCOkFDICAzQ29tIEV1cm9wZSBMdGQuCi0rMDA6 MEI6QUQgIFBjLVBvcyBJbmMuCi0gMDA6MEI6QUUgIFZpdGFscyBTeXN0ZW0gSW5jLgotLTAwOjBC OkFGICBQcml2YXRlCi0rMDA6MEI6QUYgIFdvb2p1IENvbW11bmljYXRpb25zIENvLC5MdGQKLSAw MDowQjpCMCAgU3lzbmV0IFRlbGVtYXRpY2EgU3JsCi0gMDA6MEI6QjEgIFN1cGVyIFN0YXIgVGVj aG5vbG9neSBDby4sIEx0ZC4KLSAwMDowQjpCMiAgU21hbGxiaWcgVGVjaG5vbG9neQotQEAgLTI5 NjksNyArMjk3OCw3IEBACi0gMDA6MEI6QjQgIFJkYyBTZW1pY29uZHVjdG9yIEluYy4sCi0gMDA6 MEI6QjUgIE5zdG9yIFRlY2hub2xvZ2llcywgSW5jLgotIDAwOjBCOkI2ICBNb3RvdGVjaCBJbmMu Ci0tMDA6MEI6QjcgIE1pY3JvIFN5c3RlbXMgQ28uLGx0ZC4KLSswMDowQjpCNyAgTWljcm8gU3lz dGVtcyBDby4sTHRkLgotIDAwOjBCOkI4ICBLaWhva3UgRWxlY3Ryb25pYyBDby4KLSAwMDowQjpC OSAgSW1zeXMgQWIKLSAwMDowQjpCQSAgSGFybW9uaWMgQnJvYWRiYW5kIEFjY2VzcyBOZXR3b3Jr cwotQEAgLTI5ODUsMjcgKzI5OTQsMjcgQEAKLSAwMDowQjpDNCAgQmlvdHJvbmlrIEdtYmggJiBD bwotIDAwOjBCOkM1ICBTbWMgTmV0d29ya3MsIEluYy4KLSAwMDowQjpDNiAgSXNhYywgSW5jLgot LTAwOjBCOkM3ICBJY2V0IFMucC5hLgotKzAwOjBCOkM3ICBJY2V0IFMuUC5BLgotIDAwOjBCOkM4 ICBBaXJmbG93IE5ldHdvcmtzCi0gMDA6MEI6QzkgIEVsZWN0cm9saW5lIEVxdWlwbWVudAotIDAw OjBCOkNBICBEYXRhdmFuIEludGVybmF0aW9uYWwgQ29ycG9yYXRpb24KLSAwMDowQjpDQiAgRmFn b3IgQXV0b21hdGlvbiAsIFMuIENvb3AKLS0wMDowQjpDQyAgSnVzYW4sIFMuYS4KLS0wMDowQjpD RCAgQ29tcGFxIChocCkKLS0wMDowQjpDRSAgRnJlZTJtb3ZlIEFiCi0rMDA6MEI6Q0MgIEp1c2Fu LCBTLkEuCi0rMDA6MEI6Q0QgIENvbXBhcSAoSHApCi0rMDA6MEI6Q0UgIEZyZWUyTW92ZSBBYgot IDAwOjBCOkNGICBBZ2ZhIE5kdCBJbmMuCi0gMDA6MEI6RDAgIFhpbWV0YSBUZWNobm9sb2d5IEFt ZXJpY2FzIEluYy4KLSAwMDowQjpEMSAgQWVyb25peCwgSW5jLgotIDAwOjBCOkQyICBSZW1vcHJv IFRlY2hub2xvZ3kgSW5jLgotLTAwOjBCOkQzICBDZDNvCi0tMDA6MEI6RDQgIEJlaWppbmcgV2lz ZSBUZWNobm9sb2d5ICYgU2NpZW5jZSBEZXZlbG9wbWVudCBDby5sdGQKLSswMDowQjpEMyAgQ2Qz TwotKzAwOjBCOkQ0ICBCZWlqaW5nIFdpc2UgVGVjaG5vbG9neSAmIFNjaWVuY2UgRGV2ZWxvcG1l bnQgQ28uTHRkCi0gMDA6MEI6RDUgIE52ZXJnZW5jZSwgSW5jLgotIDAwOjBCOkQ2ICBQYXh0b24g QWNjZXNzIEx0ZAotIDAwOjBCOkQ3ICBNYmIgR2VsbWEgR21iaAotIDAwOjBCOkQ4ICBJbmR1c3Ry aWFsIFNjaWVudGlmaWMgQ29ycC4KLSAwMDowQjpEOSAgR2VuZXJhbCBIeWRyb2dlbgotLTAwOjBC OkRBICBFeWVjcm9zcyBDby4saW5jLgotLTAwOjBCOkRCICBFc2cgUGNiYSBUZXN0Ci0rMDA6MEI6 REEgIEV5ZWNyb3NzIENvLixJbmMuCi0rMDA6MEI6REIgIERlbGwgRXNnIFBjYmEgVGVzdAotIDAw OjBCOkRDICBBa2NwCi0gMDA6MEI6REQgIFRvaG9rdSBSaWNvaCBDby4sIEx0ZC4KLSAwMDowQjpE RSAgUHJpdmF0ZQotQEAgLTMwMjQsMTkgKzMwMzMsMTA1MyBAQAotIDAwOjBCOkVCICBTeXN0ZWdy YSBBZwotIDAwOjBCOkVDICBOaXBwb24gRWxlY3RyaWMgSW5zdHJ1bWVudCwgSW5jLgotIDAwOjBC OkVEICBFbG0gSW5jLgotLTAwOjBCOkVFICBJbmMuamV0LCBJbmNvcnBvcmF0ZWQKLSswMDowQjpF RSAgSW5jLkpldCwgSW5jb3Jwb3JhdGVkCi0gMDA6MEI6RUYgIENvZGUgQ29ycG9yYXRpb24KLSAw MDowQjpGMCAgTW90ZXggUHJvZHVjdHMgQ28uLCBMdGQuCi0gMDA6MEI6RjEgIExhcCBMYXNlciBB cHBsaWthdGlvbnMKLS0wMDowQjpGMiAgQ2hpaC1rYW4gVGVjaG5vbG9neSBDby4sIEx0ZC4KLSsw MDowQjpGMiAgQ2hpaC1LYW4gVGVjaG5vbG9neSBDby4sIEx0ZC4KLSAwMDowQjpGMyAgQmFlIFN5 c3RlbXMKLS0wMDowQzo2RSAgU2lsaWNvbiBJbnRlZ3JhdGVkIFN5cy4gQ29ycC4KLS0wMDowQzpG MSAgSW50ZWwgUHJvIFdpcmVsZXNzIChDZW50cmlubykKLS0wMDoxMDowMCAgQ2FibGUgVGVsZXZp c2lvbiBMYWJvcmF0aWVzLCBJbmMuCi0rMDA6MEI6RjQgIFByaXZhdGUKLSswMDowQjpGNSAgU2hh bmdoYWkgU2libyBUZWxlY29tIFRlY2hub2xvZ3kgQ28uLEx0ZAotKzAwOjBCOkY2ICBOaXRnZW4g Q28uLCBMdGQKLSswMDowQjpGNyAgTmlkZWsgQ28uLEx0ZAotKzAwOjBCOkY4ICBJbmZpbmVyYQot KzAwOjBCOkY5ICBHZW1zdG9uZSBDb21tdW5pY2F0aW9ucywgSW5jLgotKzAwOjBCOkZBICBQcml2 YXRlCi0rMDA6MEI6RkIgIEQtTmV0IEludGVybmF0aW9uYWwgQ29ycG9yYXRpb24KLSswMDowQjpG QyAgQ2lzY28gU3lzdGVtcwotKzAwOjBCOkZEICBDaXNjbyBTeXN0ZW1zCi0rMDA6MEI6RkUgIENh c3RlbCBCcm9hZGJhbmQgTGltaXRlZAotKzAwOjBCOkZGICBCZXJrZWxleSBDYW1lcmEgRW5naW5l ZXJpbmcKLSswMDowQzowMCAgQmViIEluZHVzdHJpZS1FbGVrdHJvbmlrIEFnCi0rMDA6MEM6MDEg IEFiYXRyb24gQWcKLSswMDowQzowMiAgQWJiIE95Ci0rMDA6MEM6MDMgIEhkbWkgTGljZW5zaW5n LCBMbGMKLSswMDowQzowNCAgVGVjbm92YQotKzAwOjBDOjA1ICBScGEgUmVzZXJjaCBDby4sIEx0 ZC4KLSswMDowQzowNiAgTml4dnVlIFN5c3RlbXMgIFB0ZSBMdGQKLSswMDowQzowNyAgSWZ0ZXN0 IEFnCi0rMDA6MEM6MDggIEh1bWV4IFRlY2hub2xvZ2llcyBDb3JwLgotKzAwOjBDOjA5ICBIaXRh Y2hpIEllIFN5c3RlbXMgQ28uLCBMdGQKLSswMDowQzowQSAgR3Vhbmdkb25nIFByb3ZpbmNlIEVs ZWN0cm9uaWMgVGVjaG5vbG9neSBSZXNlYXJjaCBJbnN0aXR1dGUKLSswMDowQzowQiAgQnJvYWRi dXMgVGVjaG5vbG9naWVzCi0rMDA6MEM6MEMgIEFwcHJvIFRlY2hub2xvZ3kgSW5jLgotKzAwOjBD OjBEICBDb21tdW5pY2F0aW9ucyAmIFBvd2VyIEluZHVzdHJpZXMgLyBTYXRjb20gRGl2aXNpb24K LSswMDowQzowRSAgWHRyZW1lc3BlY3RydW0sIEluYy4KLSswMDowQzowRiAgVGVjaG5vLU9uZSBD by4sIEx0ZAotKzAwOjBDOjEwICBQbmkgQ29ycG9yYXRpb24KLSswMDowQzoxMSAgTmlwcG9uIERl bXBhIENvLixMdGQuCi0rMDA6MEM6MTIgIE1pY3JvLU9wdHJvbmljLU1lc3N0ZWNobmlrIEdtYmgK LSswMDowQzoxMyAgTWVkaWFxCi0rMDA6MEM6MTQgIERpYWdub3N0aWMgSW5zdHJ1bWVudHMsIElu Yy4KLSswMDowQzoxNSAgQ3liZXJwb3dlciBTeXN0ZW1zLCBJbmMuCi0rMDA6MEM6MTYgIENvbmNv cmRlIE1pY3Jvc3lzdGVtcyBJbmMuCi0rMDA6MEM6MTcgIEFqYSBWaWRlbyBTeXN0ZW1zIEluYwot KzAwOjBDOjE4ICBaZW5pc3UgS2Vpc29rdSBJbmMuCi0rMDA6MEM6MTkgIFRlbGlvIENvbW11bmlj YXRpb25zIEdtYmgKLSswMDowQzoxQSAgUXVlc3QgVGVjaG5pY2FsIFNvbHV0aW9ucyBJbmMuCi0r MDA6MEM6MUIgIE9yYWNvbSBDbywgTHRkLgotKzAwOjBDOjFDICBNaWNyb3dlYiBDby4sIEx0ZC4K LSswMDowQzoxRCAgTWV0dGxlciAmIEZ1Y2hzIEFnCi0rMDA6MEM6MUUgIEdsb2JhbCBDYWNoZQot KzAwOjBDOjFGICBHbGltbWVyZ2xhc3MgTmV0d29ya3MKLSswMDowQzoyMCAgRmkgV2luLCBJbmMu Ci0rMDA6MEM6MjEgIEZhY3VsdHkgT2YgU2NpZW5jZSBBbmQgVGVjaG5vbG9neSwgS2VpbyBVbml2 ZXJzaXR5Ci0rMDA6MEM6MjIgIERvdWJsZSBEIEVsZWN0cm9uaWNzIEx0ZAotKzAwOjBDOjIzICBC ZWlqaW5nIExhbmNodWFuIFRlY2guIENvLiwgTHRkLgotKzAwOjBDOjI0ICBQcml2YXRlCi0rMDA6 MEM6MjUgIEFsbGllZCBUZWxlc3luIE5ldHdvcmtzCi0rMDA6MEM6MjYgIFdlaW50ZWsgTGFicy4g SW5jLgotKzAwOjBDOjI3ICBTYW1teSBDb3Jwb3JhdGlvbgotKzAwOjBDOjI4ICBSaWZhdHJvbgot KzAwOjBDOjI5ICBWbXdhcmUsIEluYy4KLSswMDowQzoyQSAgT2N0dGVsIENvbW11bmljYXRpb24g Q28uLCBMdGQuCi0rMDA6MEM6MkIgIEVsaWFzIFRlY2hub2xvZ3ksIEluYy4KLSswMDowQzoyQyAg RW53aXNlciBJbmMuCi0rMDA6MEM6MkQgIEZ1bGx3YXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCi0r MDA6MEM6MkUgIE9wZW5ldCBJbmZvcm1hdGlvbiBUZWNobm9sb2d5KFNoZW56aGVuKSBDby4sIEx0 ZC4KLSswMDowQzoyRiAgU2VvcmltdGVjaG5vbG9neSBDby4sTHRkLgotKzAwOjBDOjMwICBDaXNj bwotKzAwOjBDOjMxICBDaXNjbwotKzAwOjBDOjMyICBBdmlvbmljIERlc2lnbiBEZXZlbG9wbWVu dCBHbWJoCi0rMDA6MEM6MzMgIENvbXB1Y2FzZSBFbnRlcnByaXNlIENvLiBMdGQuCi0rMDA6MEM6 MzQgIFZpeGVuIENvLiwgTHRkLgotKzAwOjBDOjM1ICBLYXZvIERlbnRhbCBHbWJoICYgQ28uIEtn Ci0rMDA6MEM6MzYgIFNoYXJwIFRha2F5YSBFbGVjdHJvbmljcyBJbmR1c3RyeSBDby4sTHRkLgot KzAwOjBDOjM3ICBHZW9tYXRpb24sIEluYy4KLSswMDowQzozOCAgVGVsY29icmlkZ2VzIEluYy4K LSswMDowQzozOSAgU2VudGluZWwgV2lyZWxlc3MgSW5jLgotKzAwOjBDOjNBICBPeGFuY2UKLSsw MDowQzozQiAgT3Jpb24gRWxlY3RyaWMgQ28uLCBMdGQuCi0rMDA6MEM6M0MgIE1lZGlhY2hvcnVz LCBJbmMuCi0rMDA6MEM6M0QgIEdsc3lzdGVjaCBDby4sIEx0ZC4KLSswMDowQzozRSAgQ3Jlc3Qg QXVkaW8KLSswMDowQzozRiAgQ29nZW50IERlZmVuY2UgJiBTZWN1cml0eSBOZXR3b3JrcywKLSsw MDowQzo0MCAgQWx0ZWNoIENvbnRyb2xzCi0rMDA6MEM6NDEgIFRoZSBMaW5rc3lzIEdyb3VwLCBJ bmMuCi0rMDA6MEM6NDIgIFJvdXRlcmJvYXJkLkNvbQotKzAwOjBDOjQzICBSYWxpbmsgVGVjaG5v bG9neSwgQ29ycC4KLSswMDowQzo0NCAgQXV0b21hdGVkIEludGVyZmFjZXMsIEluYy4KLSswMDow Qzo0NSAgQW5pbWF0aW9uIFRlY2hub2xvZ2llcyBJbmMuCi0rMDA6MEM6NDYgIEFsbGllZCBUZWxl c3luIEluYy4KLSswMDowQzo0NyAgU2sgVGVsZXRlY2goUiZEIFBsYW5uaW5nIFRlYW0pCi0rMDA6 MEM6NDggIFFvc3RlayBDb3Jwb3JhdGlvbgotKzAwOjBDOjQ5ICBEYW5nYWFyZCBUZWxlY29tIFJ0 YyBEaXZpc2lvbiBBL1MKLSswMDowQzo0QSAgQ3lnbnVzIE1pY3Jvc3lzdGVtcyBQcml2YXRlIExp bWl0ZWQKLSswMDowQzo0QiAgQ2hlb3BzIEVsZWt0cm9uaWsKLSswMDowQzo0QyAgQXJjb3IgQWcm Q28uCi0rMDA6MEM6NEQgIEFjcmEgQ29udHJvbAotKzAwOjBDOjRFICBXaW5iZXN0IFRlY2hub2xv Z3kgQ28sTHQKLSswMDowQzo0RiAgVWR0ZWNoIEphcGFuIENvcnBvcmF0aW9uCi0rMDA6MEM6NTAg IFNlYWdhdGUgVGVjaG5vbG9neQotKzAwOjBDOjUxICBTY2llbnRpZmljIFRlY2hub2xvZ2llcyBJ bmMuCi0rMDA6MEM6NTIgIFJvbGwgU3lzdGVtcyBJbmMuCi0rMDA6MEM6NTMgIFByaXZhdGUKLSsw MDowQzo1NCAgUGVkZXN0YWwgTmV0d29ya3MsIEluYwotKzAwOjBDOjU1ICBNaWNyb2xpbmsgQ29t bXVuaWNhdGlvbnMgSW5jLgotKzAwOjBDOjU2ICBNZWdhdGVsIENvbXB1dGVyICgxOTg2KSBDb3Jw LgotKzAwOjBDOjU3ICBNYWNraWUgRW5naW5lZXJpbmcgU2VydmljZXMgQmVsZ2l1bSBCdmJhCi0r MDA6MEM6NTggIE0mUyBTeXN0ZW1zCi0rMDA6MEM6NTkgIEluZHltZSBFbGVjdHJvbmljcywgSW5j LgotKzAwOjBDOjVBICBJYnNtbSBJbmR1c3RyaWVlbGVrdHJvbmlrIE11bHRpbWVkaWEKLSswMDow Qzo1QiAgSGFud2FuZyBUZWNobm9sb2d5IENvLixMdGQKLSswMDowQzo1QyAgR3RuIFN5c3RlbXMg Qi5WLgotKzAwOjBDOjVEICBDaGljIFRlY2hub2xvZ3kgKENoaW5hKSBDb3JwLgotKzAwOjBDOjVF ICBQcml2YXRlCi0rMDA6MEM6NUYgIEF2dGVjLCBJbmMuCi0rMDA6MEM6NjAgIEFjbSBTeXN0ZW1z Ci0rMDA6MEM6NjEgIEFjIFRlY2ggQ29ycG9yYXRpb24gRGJhIEFkdmFuY2VkIERpZ2l0YWwKLSsw MDowQzo2MiAgQWJiIEF1dG9tYXRpb24gVGVjaG5vbG9neSBQcm9kdWN0cyBBYiwgQ29udHJvbAot KzAwOjBDOjYzICBaZW5pdGggRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KLSswMDowQzo2NCAgWDIg TXNhIEdyb3VwCi0rMDA6MEM6NjUgIFN1bmluIFRlbGVjb20KLSswMDowQzo2NiAgUHJvbnRvIE5l dHdvcmtzIEluYwotKzAwOjBDOjY3ICBPeW8gRWxlY3RyaWMgQ28uLEx0ZAotKzAwOjBDOjY4ICBP YXNpcyBTZW1pY29uZHVjdG9yLCBJbmMuCi0rMDA6MEM6NjkgIE5hdGlvbmFsIFJhZGlvIEFzdHJv bm9teSBPYnNlcnZhdG9yeQotKzAwOjBDOjZBICBNYmFyaQotKzAwOjBDOjZCICBLdXJ6IEluZHVz dHJpZS1FbGVrdHJvbmlrIEdtYmgKLSswMDowQzo2QyAgRWxnYXRvIFN5c3RlbXMgTGxjCi0rMDA6 MEM6NkQgIEJvYyBFZHdhcmRzCi0rMDA6MEM6NkUgIEFzdXN0ZWsgQ29tcHV0ZXIgSW5jLgotKzAw OjBDOjZGICBBbXRlayBTeXN0ZW0gQ28uLEx0ZC4KLSswMDowQzo3MCAgQWNjIEdtYmgKLSswMDow Qzo3MSAgV3licm9uLCBJbmMKLSswMDowQzo3MiAgVGVtcGVhcmwgSW5kdXN0cmlhbCBDby4sIEx0 ZC4KLSswMDowQzo3MyAgVGVsc29uIEVsZWN0cm9uaWNzIENvLiwgTHRkCi0rMDA6MEM6NzQgIFJp dmVydGVjIENvcnBvcmF0aW9uCi0rMDA6MEM6NzUgIE9yaWVudGFsIEludGVncmF0ZWQgRWxlY3Ry b25pY3MuIEx0ZAotKzAwOjBDOjc2ICBNaWNyby1TdGFyIEludGVybmF0aW9uYWwgQ28uLCBMdGQu Ci0rMDA6MEM6NzcgIExpZmUgUmFjaW5nIEx0ZAotKzAwOjBDOjc4ICBJbi1UZWNoIEVsZWN0cm9u aWNzIExpbWl0ZWQKLSswMDowQzo3OSAgRXh0ZWwgQ29tbXVuaWNhdGlvbnMgUC9MCi0rMDA6MEM6 N0EgIERhdGFyaXVzIFRlY2hub2xvZ2llcyBHbWJoCi0rMDA6MEM6N0IgIEFscGhhIFByb2plY3Qg Q28uLEx0ZC4KLSswMDowQzo3QyAgSW50ZXJuZXQgSW5mb3JtYXRpb24gSW1hZ2UgSW5jLgotKzAw OjBDOjdEICBUZWlrb2t1IEVsZWN0cmljIE1mZy4gQ28uLCBMdGQKLSswMDowQzo3RSAgVGVsbGl1 bSBJbmNvcnBvcmF0ZWQKLSswMDowQzo3RiAgU3luZXJ0cm9uaXh4IEdtYmgKLSswMDowQzo4MCAg T3BlbGNvbW0gSW5jLgotKzAwOjBDOjgxICBOdWxlYyBJbmR1c3RyaWVzIFB0eSBMdGQKLSswMDow Qzo4MiAgTmV0d29yayBUZWNobm9sb2dpZXMgSW5jCi0rMDA6MEM6ODMgIExvZ2ljYWwgU29sdXRp b25zCi0rMDA6MEM6ODQgIEVheml4LCBJbmMuCi0rMDA6MEM6ODUgIENpc2NvIFN5c3RlbXMKLSsw MDowQzo4NiAgQ2lzY28gU3lzdGVtcwotKzAwOjBDOjg3ICBBdGkKLSswMDowQzo4OCAgQXBhY2hl IE1pY3JvIFBlcmlwaGVyYWxzLCBJbmMuCi0rMDA6MEM6ODkgIEFjIEVsZWN0cmljIFZlaGljbGVz LCBMdGQuCi0rMDA6MEM6OEEgIEJvc2UgQ29ycG9yYXRpb24KLSswMDowQzo4QiAgQ29ubmVjdCBU ZWNoIEluYwotKzAwOjBDOjhDICBLb2RpY29tIENvLixMdGQuCi0rMDA6MEM6OEQgIE1hdHJpeCBW aXNpb24gR21iaAotKzAwOjBDOjhFICBNZW50b3IgRW5naW5lZXJpbmcgSW5jCi0rMDA6MEM6OEYg IE5lcmdhbCBTLlIuTC4KLSswMDowQzo5MCAgT2N0YXNpYyBJbmMuCi0rMDA6MEM6OTEgIFJpdmVy aGVhZCBOZXR3b3JrcyBJbmMuCi0rMDA6MEM6OTIgIFdvbGZ2aXNpb24gR21iaAotKzAwOjBDOjkz ICBYZWxpbmUgQ28uLCBMdGQuCi0rMDA6MEM6OTQgIFVuaXRlZCBFbGVjdHJvbmljIEluZHVzdHJp ZXMsIEluYy4KLSswMDowQzo5NSAgUHJpbWVuZXQKLSswMDowQzo5NiAgT3FvLCBJbmMuCi0rMDA6 MEM6OTcgIE52IEFkYiBUdHYgVGVjaG5vbG9naWVzIFNhCi0rMDA6MEM6OTggIExldGVrIENvbW11 bmljYXRpb25zIEluYy4KLSswMDowQzo5OSAgSGl0ZWwgTGluayBDby4sTHRkCi0rMDA6MEM6OUEg IEhpdGVjaCBFbGVjdHJvbmljcyBDb3JwLgotKzAwOjBDOjlCICBFZSBTb2x1dGlvbnMsIEluYwot KzAwOjBDOjlDICBDaG9uZ2hvIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbnMKLSswMDowQzo5 RCAgQWlyd2FsayBDb21tdW5pY2F0aW9ucywgSW5jLgotKzAwOjBDOjlFICBNZW1vcnlsaW5rIENv cnAuCi0rMDA6MEM6OUYgIE5rZSBDb3Jwb3JhdGlvbgotKzAwOjBDOkEwICBTdG9yY2FzZSBUZWNo bm9sb2d5LCBJbmMuCi0rMDA6MEM6QTEgIFNpZ21hY29tIENvLiwgTHRkLgotKzAwOjBDOkEyICBT Y29wdXMgTmV0d29yayBUZWNobm9sb2dpZXMgTHRkCi0rMDA6MEM6QTMgIFJhbmNobyBUZWNobm9s b2d5LCBJbmMuCi0rMDA6MEM6QTQgIFByb21wdHRlYyBQcm9kdWN0IE1hbmFnZW1lbnQgR21iaAot KzAwOjBDOkE1ICBOYW1hbiBOeiBMdGQKLSswMDowQzpBNiAgTWludGVyYSBDb3Jwb3JhdGlvbgot KzAwOjBDOkE3ICBNZXRybyAoU3V6aG91KSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCi0rMDA6MEM6 QTggIEdhcnVkYSBOZXR3b3JrcyBDb3Jwb3JhdGlvbgotKzAwOjBDOkE5ICBFYnRyb24gSW5jLgot KzAwOjBDOkFBICBDdWJpYyBUcmFuc3BvcnRhdGlvbiBTeXN0ZW1zIEluYwotKzAwOjBDOkFCICBD b21tZW5kIEludGVybmF0aW9uYWwKLSswMDowQzpBQyAgQ2l0aXplbiBXYXRjaCBDby4sIEx0ZC4K LSswMDowQzpBRCAgQnR1IEludGVybmF0aW9uYWwKLSswMDowQzpBRSAgQWlsb2NvbSBPeQotKzAw OjBDOkFGICBUcmkgVGVybSBDby4sTHRkLgotKzAwOjBDOkIwICBTdGFyIFNlbWljb25kdWN0b3Ig Q29ycG9yYXRpb24KLSswMDowQzpCMSAgU2FsbGFuZCBFbmdpbmVlcmluZyAoRXVyb3BlKSBCdgot KzAwOjBDOkIyICBTYWZlaSBDby4sIEx0ZC4KLSswMDowQzpCMyAgUm91bmQgQ28uLEx0ZC4KLSsw MDowQzpCNCAgUHJvcGFnYXRlIE5ldHdvcmtzLCBJbmMKLSswMDowQzpCNSAgUHJlbWllciBUZWNo bm9sZ2llcywgSW5jCi0rMDA6MEM6QjYgIE5hbmppbmcgU2V1IE1vYmlsZSAmIEludGVybmV0IFRl Y2hub2xvZ3kgQ28uLEx0ZAotKzAwOjBDOkI3ICBOYW5qaW5nIEh1YXpodW8gRWxlY3Ryb25pY3Mg Q28uLCBMdGQuCi0rMDA6MEM6QjggIE1lZGlvbiBBZwotKzAwOjBDOkI5ICBMZWEKLSswMDowQzpC QSAgSmFtZXgKLSswMDowQzpCQiAgSXNrcmFlbWVjbwotKzAwOjBDOkJDICBJc2N1dHVtCi0rMDA6 MEM6QkQgIEludGVyZmFjZSBNYXN0ZXJzLCBJbmMKLSswMDowQzpCRSAgUHJpdmF0ZQotKzAwOjBD OkJGICBIb2x5IFN0b25lIEVudC4gQ28uLCBMdGQuCi0rMDA6MEM6QzAgIEdlbmVyYSBPeQotKzAw OjBDOkMxICBDb29wZXIgSW5kdXN0cmllcyBJbmMuCi0rMDA6MEM6QzIgIFByaXZhdGUKLSswMDow QzpDMyAgQmV3YW4gU3lzdGVtcwotKzAwOjBDOkM0ICBUaXB0ZWwgQWcKLSswMDowQzpDNSAgTmV4 dGxpbmsgQ28uLCBMdGQuCi0rMDA6MEM6QzYgIEthLVJvIEVsZWN0cm9uaWNzIEdtYmgKLSswMDow QzpDNyAgSW50ZWxsaWdlbnQgQ29tcHV0ZXIgU29sdXRpb25zIEluYy4KLSswMDowQzpDOCAgSW50 ZWdyYXRlZCBEaWdpdGFsIFN5c3RlbXMsIEluYy4KLSswMDowQzpDOSAgSWx3b28gRGF0YSAmIFRl Y2hub2xvZ3kgQ28uLEx0ZAotKzAwOjBDOkNBICBIaXRhY2hpIEdsb2JhbCBTdG9yYWdlIFRlY2hu b2xvZ2llcwotKzAwOjBDOkNCICBEZXNpZ24gQ29tYnVzIEx0ZAotKzAwOjBDOkNDICBCbHVlc29m dCBMdGQuCi0rMDA6MEM6Q0QgIEllYyAtIFRjNTcKLSswMDowQzpDRSAgQ2lzY28gU3lzdGVtcwot KzAwOjBDOkNGICBDaXNjbyBTeXN0ZW1zCi0rMDA6MEM6RDAgIFN5bWV0cml4Ci0rMDA6MEM6RDEg IFNmb20gVGVjaG5vbG9neSBDb3JwLgotKzAwOjBDOkQyICBTY2hhZmZuZXIgRW12IEFnCi0rMDA6 MEM6RDMgIFByZXR0bCBFbGVrdHJvbmlrIFJhZGViZXJnIEdtYmgKLSswMDowQzpENCAgUG9zaXRy b24gUHVibGljIFNhZmV0eSBTeXN0ZW1zIEluYy4KLSswMDowQzpENSAgUGFzc2F2ZSBJbmMuCi0r MDA6MEM6RDYgIFBhcnRuZXIgVGVjaAotKzAwOjBDOkQ3ICBOYWxsYXRlY2ggTHRkCi0rMDA6MEM6 RDggIE0uIEsuIEp1Y2hoZWltIEdtYmggJiBDbwotKzAwOjBDOkQ5ICBJdGNhcmUgQ28uLCBMdGQK LSswMDowQzpEQSAgRnJlZWhhbmQgU3lzdGVtcywgSW5jLgotKzAwOjBDOkRCICBGb3VuZHJ5IE5l dHdvcmtzCi0rMDA6MEM6REMgIEJlY3MgVGVjaG5vbG9neSwgSW5jCi0rMDA6MEM6REQgIEFvcyBU ZWNobm9sb2dpZXMgQWcKLSswMDowQzpERSAgQWJiIFN0b3R6LUtvbnRha3QgR21iaAotKzAwOjBD OkRGICBQdWxuaXggQW1lcmljYSwgSW5jCi0rMDA6MEM6RTAgIFRyZWsgRGlhZ25vc3RpY3MgSW5j LgotKzAwOjBDOkUxICBUaGUgT3BlbiBHcm91cAotKzAwOjBDOkUyICBSb2xscy1Sb3ljZQotKzAw OjBDOkUzICBPcHRpb24gSW50ZXJuYXRpb25hbCBOLlYuCi0rMDA6MEM6RTQgIE5ldXJvY29tIElu dGVybmF0aW9uYWwsIEluYy4KLSswMDowQzpFNSAgTW90b3JvbGEgQmNzCi0rMDA6MEM6RTYgIE1l cnUgTmV0d29ya3MgSW5jCi0rMDA6MEM6RTcgIE1lZGlhdGVrIEluYy4KLSswMDowQzpFOCAgR3Vh bmd6aG91IEFuanViYW8gQ28uLCBMdGQKLSswMDowQzpFOSAgQmxvb21iZXJnIEwuUC4KLSswMDow QzpFQSAgQXBob25hIEtvbW11bmlrYXRpb25zc3lzdGVtZQotKzAwOjBDOkVCICBDbm1wIE5ldHdv cmtzLCBJbmMuCi0rMDA6MEM6RUMgIFNwZWN0cmFjb20gQ29ycC4KLSswMDowQzpFRCAgUmVhbCBE aWdpdGFsIE1lZGlhCi0rMDA6MEM6RUUgIFEtTmV0d29ya3MKLSswMDowQzpFRiAgT3BlbiBOZXR3 b3JrcyBFbmdpbmVlcmluZyBMdGQKLSswMDowQzpGMCAgTSAmIE4gR21iaAotKzAwOjBDOkYxICBJ bnRlbCBDb3Jwb3JhdGlvbgotKzAwOjBDOkYyICBHYW1lc2EgRe+/vWxpY2EKLSswMDowQzpGMyAg Q2FsbCBJbWFnZSBTYQotKzAwOjBDOkY0ICBBa2F0c3VraSBFbGVjdHJpYyBNZmcuQ28uLEx0ZC4K LSswMDowQzpGNSAgSW5mb2V4cHJlc3MKLSswMDowQzpGNiAgU2l0ZWNvbSBFdXJvcGUgQnYKLSsw MDowQzpGNyAgTm9ydGVsIE5ldHdvcmtzCi0rMDA6MEM6RjggIE5vcnRlbCBOZXR3b3JrcwotKzAw OjBDOkY5ICBJdHQgRmx5Z3QgQWIKLSswMDowQzpGQSAgRGlnaXRhbCBTeXN0ZW1zIENvcnAKLSsw MDowQzpGQiAgS29yZWEgTmV0d29yayBTeXN0ZW1zCi0rMDA6MEM6RkMgIFMySW8gVGVjaG5vbG9n aWVzIENvcnAKLSswMDowQzpGRCAgUHJpdmF0ZQotKzAwOjBDOkZFICBHcmFuZCBFbGVjdHJvbmlj IENvLiwgTHRkCi0rMDA6MEM6RkYgIE1yby1UZWsgTGltaXRlZAotKzAwOjBEOjAwICBTZWF3YXkg TmV0d29ya3MgSW5jLgotKzAwOjBEOjAxICBQJkUgTWljcm9jb21wdXRlciBTeXN0ZW1zLCBJbmMu Ci0rMDA6MEQ6MDIgIE5lYyBBY2Nlc3MgVGVjaG5pY2EsTHRkCi0rMDA6MEQ6MDMgIE1hdHJpY3Ms IEluYy4KLSswMDowRDowNCAgRm94Ym9ybyBFY2thcmR0IERldmVsb3BtZW50IEdtYmgKLSswMDow RDowNSAgQ3liZXJuZXQgTWFudWZhY3R1cmluZyBJbmMuCi0rMDA6MEQ6MDYgIENvbXB1bG9naWMg TGltaXRlZAotKzAwOjBEOjA3ICBDYWxyZWMgQXVkaW8gTHRkCi0rMDA6MEQ6MDggIEFib3ZlY2Fi bGUsIEluYy4KLSswMDowRDowOSAgWXVlaHVhKFpodWhhaSkgRWxlY3Ryb25pYyBDby4gTHRkCi0r MDA6MEQ6MEEgIFByb2plY3Rpb25kZXNpZ24gQXMKLSswMDowRDowQiAgTWVsY28gSW5jLgotKzAw OjBEOjBDICBNZGkgU2VjdXJpdHkgU3lzdGVtcwotKzAwOjBEOjBEICBJdHN1cHBvcnRlZCwgTGxj Ci0rMDA6MEQ6MEUgIElucW5ldCBTeXN0ZW1zLCBJbmMuCi0rMDA6MEQ6MEYgIEZpbmx1eCBMdGQK LSswMDowRDoxMCAgRW1iZWR0cm9uaWNzIE95Ci0rMDA6MEQ6MTEgIERlbnRzcGx5IC0gR2VuZGV4 Ci0rMDA6MEQ6MTIgIEF4ZWxsIENvcnBvcmF0aW9uCi0rMDA6MEQ6MTMgIFdpbGhlbG0gUnV0ZW5i ZWNrIEdtYmgmQ28uCi0rMDA6MEQ6MTQgIFZ0ZWNoIElubm92YXRpb24gTHAgRGJhIEFkdmFuY2Vk IEFtZXJpY2FuIFRlbGVwaG9uZXMKLSswMDowRDoxNSAgVm9pcGFjIFMuUi5PLgotKzAwOjBEOjE2 ICBVaHMgU3lzdGVtcyBQdHkgTHRkCi0rMDA6MEQ6MTcgIFR1cmJvIE5ldHdvcmtzIENvLkx0ZAot KzAwOjBEOjE4ICBTdW5pdGVjIEVudGVycHJpc2UgQ28uLCBMdGQuCi0rMDA6MEQ6MTkgIFJvYmUg U2hvdyBMaWdodGluZwotKzAwOjBEOjFBICBNdXN0ZWsgU3lzdGVtIEluYy4KLSswMDowRDoxQiAg S3lvdG8gRWxlY3Ryb25pY3MgTWFudWZhY3R1cmluZyBDby4sIEx0ZC4KLSswMDowRDoxQyAgSTJF IFRlbGVjb20KLSswMDowRDoxRCAgSGlnaC1UZWsgSGFybmVzcyBFbnQuIENvLiwgTHRkLgotKzAw OjBEOjFFICBDb250cm9sIFRlY2huaXF1ZXMKLSswMDowRDoxRiAgQXYgRGlnaXRhbAotKzAwOjBE OjIwICBBc2FoaWthc2VpIFRlY2hub3N5c3RlbSBDby4sTHRkLgotKzAwOjBEOjIxICBXaXNjb3Jl IEluYy4KLSswMDowRDoyMiAgVW5pdHJvbmljcwotKzAwOjBEOjIzICBTbWFydCBTb2x1dGlvbiwg SW5jCi0rMDA6MEQ6MjQgIFNlbnRlYyBFJkUgQ28uLCBMdGQuCi0rMDA6MEQ6MjUgIFNhbmRlbiBD b3Jwb3JhdGlvbgotKzAwOjBEOjI2ICBQcmltYWdyYXBoaWNzIExpbWl0ZWQKLSswMDowRDoyNyAg TWljcm9wbGV4IFByaW50d2FyZSBBZwotKzAwOjBEOjI4ICBDaXNjbwotKzAwOjBEOjI5ICBDaXNj bwotKzAwOjBEOjJBICBTY2FubWF0aWMgQXMKLSswMDowRDoyQiAgUmFjYWwgSW5zdHJ1bWVudHMK LSswMDowRDoyQyAgUGF0YXBzY28gRGVzaWducyBMdGQKLSswMDowRDoyRCAgTmN0IERldXRzY2hs YW5kIEdtYmgKLSswMDowRDoyRSAgTWF0c3VzaGl0YSBBdmlvbmljcyBTeXN0ZW1zIENvcnBvcmF0 aW9uCi0rMDA6MEQ6MkYgIEFpbiBDb21tLlRlY2guQ28uLCBMdGQKLSswMDowRDozMCAgSWNlZnly ZSBTZW1pY29uZHVjdG9yCi0rMDA6MEQ6MzEgIENvbXBlbGxlbnQgVGVjaG5vbG9naWVzLCBJbmMu Ci0rMDA6MEQ6MzIgIERpc3BlbnNlc291cmNlLCBJbmMuCi0rMDA6MEQ6MzMgIFByZWRpd2F2ZSBD b3JwLgotKzAwOjBEOjM0ICBTaGVsbCBJbnRlcm5hdGlvbmFsIEV4cGxvcmF0aW9uIEFuZCBQcm9k dWN0aW9uLCBJbmMuCi0rMDA6MEQ6MzUgIFBhYyBJbnRlcm5hdGlvbmFsIEx0ZAotKzAwOjBEOjM2 ICBXdSBIYW4gUm91dG9uIEVsZWN0cm9uaWMgQ28uLCBMdGQKLSswMDowRDozNyAgV2lwbHVnCi0r MDA6MEQ6MzggIE5pc3NpbiBJbmMuCi0rMDA6MEQ6MzkgIE5ldHdvcmsgRWxlY3Ryb25pY3MKLSsw MDowRDozQSAgTWljcm9zb2Z0IENvcnAuCi0rMDA6MEQ6M0IgIE1pY3JvZWxlY3Ryb25pY3MgVGVj aG5vbG9neSBJbmMuCi0rMDA6MEQ6M0MgIEkuVGVjaCBEeW5hbWljIEx0ZAotKzAwOjBEOjNEICBQ cml2YXRlCi0rMDA6MEQ6M0UgIEFwbHV4IENvbW11bmljYXRpb25zIEx0ZC4KLSswMDowRDozRiAg VnhpIFRlY2hub2xvZ3kKLSswMDowRDo0MCAgVmVyaW50IExvcm9uaXggVmlkZW8gU29sdXRpb25z Ci0rMDA6MEQ6NDEgIFNpZW1lbnMgQWcgSWNtIE1wIFVjIFJkIEl0IEtsZjEKLSswMDowRDo0MiAg TmV3YmVzdCBEZXZlbG9wbWVudCBMaW1pdGVkCi0rMDA6MEQ6NDMgIERycyBUYWN0aWNhbCBTeXN0 ZW1zIEluYy4KLSswMDowRDo0NCAgUHJpdmF0ZQotKzAwOjBEOjQ1ICBUb3R0b3JpIFNhbnlvIEVs ZWN0cmljIENvLiwgTHRkLgotKzAwOjBEOjQ2ICBFdXJvdGhlcm0gRHJpdmVzLCBMdGQuCi0rMDA6 MEQ6NDcgIENvbGxleAotKzAwOjBEOjQ4ICBBZXdpbiBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCi0r MDA6MEQ6NDkgIFRyaXRvbiBTeXN0ZW1zIE9mIERlbGF3YXJlLCBJbmMuCi0rMDA6MEQ6NEEgIFN0 ZWFnIEV0YS1PcHRpawotKzAwOjBEOjRCICBSb2t1LCBMbGMKLSswMDowRDo0QyAgT3V0bGluZSBF bGVjdHJvbmljcyBMdGQuCi0rMDA6MEQ6NEQgIE5pbmVsYW5lcwotKzAwOjBEOjRFICBOZHIgQ28u LEx0ZC4KLSswMDowRDo0RiAgS2Vud29vZCBDb3Jwb3JhdGlvbgotKzAwOjBEOjUwICBHYWxhemFy IE5ldHdvcmtzCi0rMDA6MEQ6NTEgIERpdnIgU3lzdGVtcywgSW5jLgotKzAwOjBEOjUyICBDb21h cnQgU3lzdGVtCi0rMDA6MEQ6NTMgIEJlaWppbmcgNVcgQ29tbXVuaWNhdGlvbiBDb3JwLgotKzAw OjBEOjU0ICAzQ29tIEV1cm9wZSBMdGQKLSswMDowRDo1NSAgU2FueWNvbSBUZWNobm9sb2d5IENv LixMdGQKLSswMDowRDo1NiAgRGVsbCBQY2JhIFRlc3QKLSswMDowRDo1NyAgRnVqaXRzdSBJLU5l dHdvcmsgU3lzdGVtcyBMaW1pdGVkLgotKzAwOjBEOjU4ICBQcml2YXRlCi0rMDA6MEQ6NTkgIEFt aXR5IFN5c3RlbXMsIEluYy4KLSswMDowRDo1QSAgVGllc3NlIFNwYQotKzAwOjBEOjVCICBTbWFy dCBFbXBpcmUgSW52ZXN0bWVudHMgTGltaXRlZAotKzAwOjBEOjVDICBSb2JlcnQgQm9zY2ggR21i aCwgVnQtQXRtbwotKzAwOjBEOjVEICBSYXJpdGFuIENvbXB1dGVyLCBJbmMKLSswMDowRDo1RSAg TmVjIEN1c3RvbXRlY2huaWNhLCBMdGQuCi0rMDA6MEQ6NUYgIE1pbmRzIEluYwotKzAwOjBEOjYw ICBJYm0gQ29ycG9yYXRpb24KLSswMDowRDo2MSAgR2lnYS1CeXRlIFRlY2hub2xvZ3kgQ28uLCBM dGQuCi0rMDA6MEQ6NjIgIEZ1bmt3ZXJrIERhYmVuZG9yZiBHbWJoCi0rMDA6MEQ6NjMgIERlbnQg SW5zdHJ1bWVudHMsIEluYy4KLSswMDowRDo2NCAgQ29tYWcgSGFuZGVscyBBZwotKzAwOjBEOjY1 ICBDaXNjbyBTeXN0ZW1zCi0rMDA6MEQ6NjYgIENpc2NvIFN5c3RlbXMKLSswMDowRDo2NyAgQmVs YWlyIE5ldHdvcmtzIEluYy4KLSswMDowRDo2OCAgVmluY2kgU3lzdGVtcywgSW5jLgotKzAwOjBE OjY5ICBUbXQmRCBDb3Jwb3JhdGlvbgotKzAwOjBEOjZBICBSZWR3b29kIFRlY2hub2xvZ2llcyBM dGQKLSswMDowRDo2QiAgTWl0YS1UZWtuaWsgQS9TCi0rMDA6MEQ6NkMgIE0tQXVkaW8KLSswMDow RDo2RCAgSy1UZWNoIERldmljZXMgQ29ycC4KLSswMDowRDo2RSAgSy1QYXRlbnRzIE95Ci0rMDA6 MEQ6NkYgIEVtYmVyIENvcnBvcmF0aW9uCi0rMDA6MEQ6NzAgIERhdGFtYXggQ29ycG9yYXRpb24K LSswMDowRDo3MSAgQm9jYSBTeXN0ZW1zCi0rMDA6MEQ6NzIgIDJXaXJlLCBJbmMKLSswMDowRDo3 MyAgVGVjaG5pY2FsIFN1cHBvcnQsIEluYy4KLSswMDowRDo3NCAgU2FuZCBOZXR3b3JrIFN5c3Rl bXMsIEluYy4KLSswMDowRDo3NSAgS29iaWFuIFB0ZSBMdGQgLSBUYWl3YW4gQnJhbmNoCi0rMDA6 MEQ6NzYgIEhva3V0byBEZW5zaGkgQ28sLiBMdGQuCi0rMDA6MEQ6NzcgIEZhbGNvbnN0b3IgU29m dHdhcmUKLSswMDowRDo3OCAgRW5naW5lZXJpbmcgJiBTZWN1cml0eQotKzAwOjBEOjc5ICBEeW5h bWljIFNvbHV0aW9ucyBDbywuTHRkLgotKzAwOjBEOjdBICBEaWdhdHRvIEFzaWEgUGFjaWZpYyBQ dGUgTHRkCi0rMDA6MEQ6N0IgIENvbnNlbnN5cyBDb21wdXRlcnMgSW5jLgotKzAwOjBEOjdDICBD b2RpYW4gTHRkCi0rMDA6MEQ6N0QgIEFmY28gU3lzdGVtcwotKzAwOjBEOjdFICBBeGlvd2F2ZSBO ZXR3b3JrcywgSW5jLgotKzAwOjBEOjdGICBNaWRhcyAgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dp ZXMgUHRlIEx0ZCAoIEZvcmVpZ24gQnJhbmNoKQotKzAwOjBEOjgwICBPbmxpbmUgRGV2ZWxvcG1l bnQgSW5jCi0rMDA6MEQ6ODEgIFBlcHBlcmwrRnVjaHMgR21iaAotKzAwOjBEOjgyICBQaHMgU3Js Ci0rMDA6MEQ6ODMgIFNhbm1pbmEtU2NpIEh1bmdhcnkgIEx0ZC4KLSswMDowRDo4NCAgU2VvZHUg SW5jaGlwLCBJbmMuCi0rMDA6MEQ6ODUgIFRhcHdhdmUsIEluYy4KLSswMDowRDo4NiAgSHViZXIg KyBTdWhuZXIgQWcKLSswMDowRDo4NyAgRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uIChF Y3MpCi0rMDA6MEQ6ODggIEQtTGluayBDb3Jwb3JhdGlvbgotKzAwOjBEOjg5ICBCaWxzIFRlY2hu b2xvZ3kgSW5jCi0rMDA6MEQ6OEEgIFdpbm5lcnMgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCi0rMDA6 MEQ6OEIgIFQmRCBDb3Jwb3JhdGlvbgotKzAwOjBEOjhDICBTaGFuZ2hhaSBXZWRvbmUgRGlnaXRh bCBMdGQuIENvLgotKzAwOjBEOjhEICBQcm9saW54IENvbW11bmljYXRpb24gR2F0ZXdheXMsIElu Yy4KLSswMDowRDo4RSAgS29kZW4gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCi0rMDA6MEQ6OEYgIEtp bmcgVHN1c2hpbiBLb2d5byBDby4sIEx0ZC4KLSswMDowRDo5MCAgRmFjdHVtIEVsZWN0cm9uaWNz IEFiCi0rMDA6MEQ6OTEgIEVjbGlwc2UgKEhxIEVzcGFuYSkgUy5MLgotKzAwOjBEOjkyICBBcmlt YSBDb21tdW5pY2F0aW9uIENvcnBvcmF0aW9uCi0rMDA6MEQ6OTMgIEFwcGxlIENvbXB1dGVyCi0r MDA6MEQ6OTQgIEFmYXIgQ29tbXVuaWNhdGlvbnMsSW5jCi0rMDA6MEQ6OTUgIE9wdGktQ2VsbCwg SW5jLgotKzAwOjBEOjk2ICBWdGVyYSBUZWNobm9sb2d5IEluYy4KLSswMDowRDo5NyAgVHJvcG9z IE5ldHdvcmtzLCBJbmMuCi0rMDA6MEQ6OTggIFMuVy5BLkMuIFNjaG1pdHQtV2FsdGVyIEF1dG9t YXRpb24gQ29uc3VsdCBHbWJoCi0rMDA6MEQ6OTkgIE9yYml0YWwgU2NpZW5jZXMgQ29ycC47IExh dW5jaCBTeXN0ZW1zIEdyb3VwCi0rMDA6MEQ6OUEgIEluZm90ZWMgTHRkCi0rMDA6MEQ6OUIgIFBy aXZhdGUKLSswMDowRDo5QyAgRWxhbiBHbWJoICYgQ28gS2cKLSswMDowRDo5RCAgSGV3bGV0dCBQ YWNrYXJkCi0rMDA6MEQ6OUUgIFRva3VkZW4gT2hpenVtaSBTZWlzYWt1c3lvIENvLixMdGQuCi0r MDA6MEQ6OUYgIFJmIE1pY3JvIERldmljZXMKLSswMDowRDpBMCAgTmVkYXAgTi5WLgotKzAwOjBE OkExICBNaXJhZSBJdHMgQ28uLEx0ZC4KLSswMDowRDpBMiAgSW5mcmFudCBUZWNobm9sb2dpZXMs IEluYy4KLSswMDowRDpBMyAgRW1lcmdpbmcgVGVjaG5vbG9naWVzIExpbWl0ZWQKLSswMDowRDpB NCAgRG9zY2ggJiBBbWFuZCBTeXN0ZW1zIEFnCi0rMDA6MEQ6QTUgIEZhYnJpYzcgU3lzdGVtcywg SW5jCi0rMDA6MEQ6QTYgIFVuaXZlcnNhbCBTd2l0Y2hpbmcgQ29ycG9yYXRpb24KLSswMDowRDpB NyAgUHJpdmF0ZQotKzAwOjBEOkE4ICBUZWxldHJvbmljcyBUZWNobm9sb2d5IENvcnBvcmF0aW9u Ci0rMDA6MEQ6QTkgIFQuRS5BLk0uIFMuTC4KLSswMDowRDpBQSAgUy5BLlRlaG5vbG9neSBDby4s THRkLgotKzAwOjBEOkFCICBQYXJrZXIgSGFubmlmaW4gR21iaCBFbGVjdHJvbWVjaGFuaWNhbCBE aXZpc2lvbiBFdXJvcGUKLSswMDowRDpBQyAgSmFwYW4gQ2JtIENvcnBvcmF0aW9uCi0rMDA6MEQ6 QUQgIERhdGFwcm9iZSBJbmMKLSswMDowRDpBRSAgU2Ftc3VuZyBIZWF2eSBJbmR1c3RyaWVzIENv LiwgTHRkLgotKzAwOjBEOkFGICBQbGV4dXMgQ29ycCAoVWspIEx0ZAotKzAwOjBEOkIwICBPbHlt LVRlY2ggQ28uLEx0ZC4KLSswMDowRDpCMSAgSmFwYW4gTmV0d29yayBTZXJ2aWNlIENvLiwgTHRk LgotKzAwOjBEOkIyICBBbW1hc3NvLCBJbmMuCi0rMDA6MEQ6QjMgIFNkbyBDb21tdW5pY2F0aW9u IENvcnBlcmF0aW9uCi0rMDA6MEQ6QjQgIE5ldGFzcQotKzAwOjBEOkI1ICBHbG9iYWxzYXQgVGVj aG5vbG9neSBDb3Jwb3JhdGlvbgotKzAwOjBEOkI2ICBUZWtub3Z1cywgSW5jLgotKzAwOjBEOkI3 ICBTYW5rbyBFbGVjdHJpYyBDbywuTHRkCi0rMDA6MEQ6QjggIFNjaGlsbGVyIEFnCi0rMDA6MEQ6 QjkgIFBjIEVuZ2luZXMgR21iaAotKzAwOjBEOkJBICBPY++/vSBEb2N1bWVudCBUZWNobm9sb2dp ZXMgR21iaAotKzAwOjBEOkJCICBOaXBwb24gRGVudHN1IENvLixMdGQuCi0rMDA6MEQ6QkMgIENp c2NvIFN5c3RlbXMKLSswMDowRDpCRCAgQ2lzY28gU3lzdGVtcwotKzAwOjBEOkJFICBCZWwgRnVz ZSBFdXJvcGUgTHRkLixVawotKzAwOjBEOkJGICBUZWt0b25lIFNvdW5kICYgU2lnbmFsIE1mZy4s IEluYy4KLSswMDowRDpDMCAgU3BhZ2F0IEFzCi0rMDA6MEQ6QzEgIFNhZmV3ZWIgSW5jCi0rMDA6 MEQ6QzIgIFByaXZhdGUKLSswMDowRDpDMyAgRmlyc3QgQ29tbXVuaWNhdGlvbiwgSW5jLgotKzAw OjBEOkM0ICBFbWNvcmUgQ29ycG9yYXRpb24KLSswMDowRDpDNSAgRWNob3N0YXIgSW50ZXJuYXRp b25hbCBDb3Jwb3JhdGlvbgotKzAwOjBEOkM2ICBEaWdpcm9zZSBUZWNobm9sb2d5IENvLiwgTHRk LgotKzAwOjBEOkM3ICBDb3NtaWMgRW5naW5lZXJpbmcgSW5jLgotKzAwOjBEOkM4ICBBaXJtYWdu ZXQsIEluYwotKzAwOjBEOkM5ICBUaGFsZXMgRWxla3Ryb25payBTeXN0ZW1lIEdtYmgKLSswMDow RDpDQSAgVGFpdCBFbGVjdHJvbmljcwotKzAwOjBEOkNCICBQZXRjb21rb3JlYSBDby4sIEx0ZC4K LSswMDowRDpDQyAgTmVvc21hcnQgQ29ycC4KLSswMDowRDpDRCAgR3JvdXBlIFR4Y29tCi0rMDA6 MEQ6Q0UgIER5bmF2YWMgVGVjaG5vbG9neSBQdGUgTHRkCi0rMDA6MEQ6Q0YgIENpZHJhIENvcnAu Ci0rMDA6MEQ6RDAgIFRldHJhdGVjIEluc3RydW1lbnRzIEdtYmgKLSswMDowRDpEMSAgU3RyeWtl ciBDb3Jwb3JhdGlvbgotKzAwOjBEOkQyICBTaW1yYWQgT3B0cm9uaWNzIEFzYQotKzAwOjBEOkQz ICBTYW13b28gVGVsZWNvbW11bmljYXRpb24gQ28uLEx0ZC4KLSswMDowRDpENCAgUmV2aXZpbyBJ bmMuCi0rMDA6MEQ6RDUgIE8ncml0ZSBUZWNobm9sb2d5IENvLixMdGQKLSswMDowRDpENiAgSXRp ICAgIEx0ZAotKzAwOjBEOkQ3ICBCcmlnaHQKLSswMDowRDpEOCAgQmJuCi0rMDA6MEQ6RDkgIEFu dG9uIFBhYXIgR21iaAotKzAwOjBEOkRBICBBbGxpZWQgVGVsZXNpcyBLLksuCi0rMDA6MEQ6REIg IEFpcndhdmUgVGVjaG5vbG9naWVzIEluYy4KLSswMDowRDpEQyAgVmFjCi0rMDA6MEQ6REQgIFBy b2bvv71sbyBUZWxyYSBFbGVrdHJvbu+/vWsgU2FuYXnvv70gVmUgVO+/vWNhcmV0IEEu77+9Lgot KzAwOjBEOkRFICBKb3l0ZWNrIENvLiwgTHRkLgotKzAwOjBEOkRGICBKYXBhbiBJbWFnZSAmIE5l dHdvcmsgSW5jLgotKzAwOjBEOkUwICBJY3BkYXMgQ28uLEx0ZAotKzAwOjBEOkUxICBDb250cm9s IFByb2R1Y3RzLCBJbmMuCi0rMDA6MEQ6RTIgIENteiBTaXN0ZW1pIEVsZXR0cm9uaWNpCi0rMDA6 MEQ6RTMgIEF0IFN3ZWRlbiBBYgotKzAwOjBEOkU0ICBEaWdpbmljcywgSW5jLgotKzAwOjBEOkU1 ICBTYW1zdW5nIFRoYWxlcwotKzAwOjBEOkU2ICBZb3VuZ2JvIEVuZ2luZWVyaW5nIENvLixMdGQK LSswMDowRDpFNyAgU25hcC1PbiBPZW0gR3JvdXAKLSswMDowRDpFOCAgTmFzYWNvIEVsZWN0cm9u aWNzIFB0ZS4gTHRkCi0rMDA6MEQ6RTkgIE5hcGF0ZWNoIEFwcwotKzAwOjBEOkVBICBLaW5ndGVs IFRlbGVjb21tdW5pY2F0aW9uIENvcnAuCi0rMDA6MEQ6RUIgIENvbXB4cyBMaW1pdGVkCi0rMDA6 MEQ6RUMgIENpc2NvIFN5c3RlbXMKLSswMDowRDpFRCAgQ2lzY28gU3lzdGVtcwotKzAwOjBEOkVF ICBQcml2YXRlCi0rMDA6MEQ6RUYgIFNvYy4gQ29vcC4gQmlsYW5jaWFpCi0rMDA6MEQ6RjAgIFFj b20gVGVjaG5vbG9neSBJbmMuCi0rMDA6MEQ6RjEgIElvbml4IEluYy4KLSswMDowRDpGMiAgUHJp dmF0ZQotKzAwOjBEOkYzICBBc21heCBTb2x1dGlvbnMKLSswMDowRDpGNCAgV2F0ZXJ0ZWsgQ28u Ci0rMDA6MEQ6RjUgIFRlbGV0cm9uaWNzIEludGVybmF0aW9uYWwgSW5jLgotKzAwOjBEOkY2ICBU ZWNobm9sb2d5IFRoZXNhdXJ1cyBDb3JwLgotKzAwOjBEOkY3ICBTcGFjZSBEeW5hbWljcyBMYWIK LSswMDowRDpGOCAgT3JnYSBLYXJ0ZW5zeXN0ZW1lIEdtYmgKLSswMDowRDpGOSAgTmRzIExpbWl0 ZWQKLSswMDowRDpGQSAgTWljcm8gQ29udHJvbCBTeXN0ZW1zIEx0ZC4KLSswMDowRDpGQiAgS29t YXggQWcKLSswMDowRDpGQyAgSXRmb3IgSW5jLiBSZXNhcmNoIEFuZCBEZXZlbG9wbWVudAotKzAw OjBEOkZEICBIdWdlcyBIaS1UZWNoIEluYy4sCi0rMDA6MEQ6RkUgIEhhdXBwYXVnZSBDb21wdXRl ciBXb3JrcywgSW5jLgotKzAwOjBEOkZGICBDaGVubWluZyBNb2xkIEluZHVzdHJ5IENvcnAuCi0r MDA6MEU6MDAgIFByaXZhdGUKLSswMDowRTowMSAgQXNpcCBUZWNobm9sb2dpZXMgSW5jLgotKzAw OjBFOjAyICBBZHZhbnRlY2ggQW10IEluYy4KLSswMDowRTowMyAgQWFyb2hpIENvbW11bmljYXRp b25zLCBJbmMuCi0rMDA6MEU6MDQgIFByaXZhdGUKLSswMDowRTowNSAgV2lyZWxlc3MgTWF0cml4 IENvcnAuCi0rMDA6MEU6MDYgIFRlYW0gU2ltb2NvIEx0ZAotKzAwOjBFOjA3ICBTb255IEVyaWNz c29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBYgotKzAwOjBFOjA4ICBTaXB1cmEgVGVjaG5vbG9n eSwgSW5jLgotKzAwOjBFOjA5ICBTaGVuemhlbiBDb3NoaXAgU29mdHdhcmUgQ28uLEx0ZC4KLSsw MDowRTowQSAgUHJpdmF0ZQotKzAwOjBFOjBCICBOZXRhYyBUZWNobm9sb2d5IENvLiwgTHRkLgot KzAwOjBFOjBDICBJbnRlbCBDb3Jwb3JhdGlvbgotKzAwOjBFOjBEICBIZXNjaCBTY2hy77+9ZGVy IEdtYmgKLSswMDowRTowRSAgRXNhIEVsZXR0cm9uaWNhIFMuUC5BLgotKzAwOjBFOjBGICBFcm1t ZQotKzAwOjBFOjEwICBQcml2YXRlCi0rMDA6MEU6MTEgIEJkdCBC77+9cm8tIFVuZCBEYXRlbnRl Y2huaWsgR21iaCAmIENvLiBLZwotKzAwOjBFOjEyICBBZGFwdGl2ZSBNaWNybyBTeXN0ZW1zIElu Yy4KLSswMDowRToxMyAgQWNjdS1Tb3J0IFN5c3RlbXMgSW5jLgotKzAwOjBFOjE0ICBWaXNpb25h cnkgU29sdXRpb25zLCBJbmMuCi0rMDA6MEU6MTUgIFRhZGx5cyBMdGQKLSswMDowRToxNiAgU291 dGh3aW5nCi0rMDA6MEU6MTcgIFByaXZhdGUKLSswMDowRToxOCAgTXlhIFRlY2hub2xvZ3kKLSsw MDowRToxOSAgTG9naWNhY21nIFB0eSBMdGQKLSswMDowRToxQSAgUHJpdmF0ZQotKzAwOjBFOjFC ICBJYXYgR21iaAotKzAwOjBFOjFDICBIYWNoIENvbXBhbnkKLSswMDowRToxRCAgUHJpdmF0ZQot KzAwOjBFOjFFICBQcml2YXRlCi0rMDA6MEU6MUYgIFRjbCBOZXR3b3JrcyBFcXVpcG1lbnQgQ28u LCBMdGQuCi0rMDA6MEU6MjAgIFBhbG1zb3VyY2UsIEluYy4KLSswMDowRToyMSAgTXR1IEZyaWVk cmljaHNoYWZlbiBHbWJoCi0rMDA6MEU6MjIgIFByaXZhdGUKLSswMDowRToyMyAgSW5jaXBpZW50 LCBJbmMuCi0rMDA6MEU6MjQgIFByaXZhdGUKLSswMDowRToyNSAgSGFubmFlIFRlY2hub2xvZ3kg Q28uLCBMdGQKLSswMDowRToyNiAgR2luY29tIFRlY2hub2xvZ3kgQ29ycC4KLSswMDowRToyNyAg Q3JlcmUgTmV0d29ya3MsIEluYy4KLSswMDowRToyOCAgRHluYW1pYyBSYXRpbmdzIFAvTAotKzAw OjBFOjI5ICBTaGVzdGVyIENvbW11bmljYXRpb25zIEluYwotKzAwOjBFOjJBICBQcml2YXRlCi0r MDA6MEU6MkIgIFNhZmFyaSBUZWNobm9sb2dpZXMKLSswMDowRToyQyAgTmV0Y29kZWMgQ28uCi0r MDA6MEU6MkQgIEh5dW5kYWkgRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQuCi0rMDA6MEU6MkUg IEVkaW1heCBUZWNobm9sb2d5IENvLiwgTHRkLgotKzAwOjBFOjJGICBEaXNldHJvbmljIE1lZGlj YWwgU3lzdGVtcyBBZwotKzAwOjBFOjMwICBBZXJhcyBOZXR3b3JrcywgSW5jLgotKzAwOjBFOjMx ICBPbHltcHVzIEJpb3N5c3RlbXMgR21iaAotKzAwOjBFOjMyICBLb250cm9uIE1lZGljYWwKLSsw MDowRTozMyAgU2h1a28gRWxlY3Ryb25pY3MgQ28uLEx0ZAotKzAwOjBFOjM0ICBOZXhnZW4gQ2l0 eSwgTHAKLSswMDowRTozNSAgSW50ZWwgQ29ycAotKzAwOjBFOjM2ICBIZWluZXN5cywgSW5jLgot KzAwOjBFOjM3ICBIYXJtcyAmIFdlbmRlIEdtYmggJiBDby5LZwotKzAwOjBFOjM4ICBDaXNjbyBT eXN0ZW1zCi0rMDA6MEU6MzkgIENpc2NvIFN5c3RlbXMKLSswMDowRTozQSAgQ2lycnVzIExvZ2lj Ci0rMDA6MEU6M0IgIEhhd2tpbmcgVGVjaG5vbG9naWVzLCBJbmMuCi0rMDA6MEU6M0MgIFRyYW5z YWN0IFRlY2hub2xvaWdlcyBJbmMuCi0rMDA6MEU6M0QgIFRlbGV2aWMgTi5WLgotKzAwOjBFOjNF ICBTdW4gT3B0cm9uaWNzIEluYwotKzAwOjBFOjNGICBTb3JvbnRpLCBJbmMuCi0rMDA6MEU6NDAg IE5vcnRlbCBOZXR3b3JrcwotKzAwOjBFOjQxICBOaWhvbiBNZWNoYXRyb25pY3MgQ28uLEx0ZC4K LSswMDowRTo0MiAgTW90aWMgSW5jb3BvcmF0aW9uIEx0ZC4KLSswMDowRTo0MyAgRy1UZWsgRWxl Y3Ryb25pY3MgU2RuLiBCaGQuCi0rMDA6MEU6NDQgIERpZ2l0YWwgNSwgSW5jLgotKzAwOjBFOjQ1 ICBCZWlqaW5nIE5ld3RyeSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgTHRkCi0rMDA6MEU6NDYgIE5p aWdhdGEgU2VpbWl0c3UgQ28uLEx0ZC4KLSswMDowRTo0NyAgTmNpIFN5c3RlbSBDby4sTHRkLgot KzAwOjBFOjQ4ICBMaXBtYW4gVHJhbnNhY3Rpb24gU29sdXRpb25zCi0rMDA6MEU6NDkgIEZvcnN3 YXkgU2NhbmRpbmF2aWEgQWIKLSswMDowRTo0QSAgQ2hhbmdjaHVuIEh1YXl1IFdlYnBhZCBDby4s THRkCi0rMDA6MEU6NEIgIEF0cml1bSBDIEFuZCBJCi0rMDA6MEU6NEMgIEJlcm1haSBJbmMuCi0r MDA6MEU6NEQgIE51bWVzYSBJbmMuCi0rMDA6MEU6NEUgIFdhdmVwbHVzIFRlY2hub2xvZ3kgQ28u LCBMdGQuCi0rMDA6MEU6NEYgIFRyYWpldCBHbWJoCi0rMDA6MEU6NTAgIFRob21zb24gTXVsdGkg TWVkaWEKLSswMDowRTo1MSAgVGVjbmEgRWxldHRyb25pY2EgU3JsCi0rMDA6MEU6NTIgIE9wdGl1 bSBDb3Jwb3JhdGlvbgotKzAwOjBFOjUzICBBdiBUZWNoIENvcnBvcmF0aW9uCi0rMDA6MEU6NTQg IEFscGhhY2VsbCBXaXJlbGVzcyBMdGQuCi0rMDA6MEU6NTUgIEF1dml0cmFuCi0rMDA6MEU6NTYg IDRHIFN5c3RlbXMgR21iaAotKzAwOjBFOjU3ICBJd29ybGQgTmV0d29ya2luZywgSW5jLgotKzAw OjBFOjU4ICBSaW5jb24gTmV0d29ya3MKLSswMDowRTo1OSAgUHJpdmF0ZQotKzAwOjBFOjVBICBU ZWxlZmllbGQgSW5jLgotKzAwOjBFOjVCICBQYXJrZXJ2aXNpb24gLSBEaXJlY3QyRGF0YQotKzAw OjBFOjVDICBNb3Rvcm9sYSBCY3MKLSswMDowRTo1RCAgQ29tLVggTmV0d29ya3MKLSswMDowRTo1 RSAgQmVpamluZyBSYWlzZWNvbSBTY2llbmNlICYgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby4s THRkCi0rMDA6MEU6NUYgIEFjdGl2LU5ldCBHbWJoICYgQ28uIEtnCi0rMDA6MEU6NjAgIDM2MFN1 biBEaWdpdGFsIEJyb2FkYmFuZCBDb3Jwb3JhdGlvbgotKzAwOjBFOjYxICBNaWNyb3Ryb2wgTGlt aXRlZAotKzAwOjBFOjYyICBOb3J0ZWwgTmV0d29ya3MKLSswMDowRTo2MyAgTGVta2UgRGlhZ25v c3RpY3MgR21iaAotKzAwOjBFOjY0ICBFbHBoZWwsIEluYwotKzAwOjBFOjY1ICBUcmFuc2NvcmUK LSswMDowRTo2NiAgSGl0YWNoaSBBZHZhbmNlZCBEaWdpdGFsLCBJbmMuCi0rMDA6MEU6NjcgIEVs dGlzIE1pY3JvZWxlY3Ryb25pY3MgTHRkLgotKzAwOjBFOjY4ICBFLVRvcCBOZXR3b3JrIFRlY2hu b2xvZ3kgSW5jLgotKzAwOjBFOjY5ICBDaGluYSBFbGVjdHJpYyBQb3dlciBSZXNlYXJjaCBJbnN0 aXR1dGUKLSswMDowRTo2QSAgM0NvbSBFdXJvcGUgTHRkCi0rMDA6MEU6NkIgIEphbml0emEgRWxl Y3Ryb25pY3MgR21iaAotKzAwOjBFOjZDICBEZXZpY2UgRHJpdmVycyBMaW1pdGVkCi0rMDA6MEU6 NkQgIE11cmF0YSBNYW51ZmFjdHVyaW5nIENvLiwgTHRkLgotKzAwOjBFOjZFICBNaWNyZWxlYyAg RWxlY3Ryb25pY3MgUy5BCi0rMDA6MEU6NkYgIElyaXMgQ29ycG9yYXRpb24gQmVyaGFkCi0rMDA6 MEU6NzAgIEluMiBOZXR3b3JrcwotKzAwOjBFOjcxICBHZW1zdGFyIFRlY2hub2xvZ3kgRGV2ZWxv cG1lbnQgTHRkLgotKzAwOjBFOjcyICBDdHMgRWxlY3Ryb25pY3MKLSswMDowRTo3MyAgVHBhY2sg QS9TCi0rMDA6MEU6NzQgIFNvbGFyIFRlbGVjb20uIFRlY2gKLSswMDowRTo3NSAgTmV3IFlvcmsg QWlyIEJyYWtlIENvcnAuCi0rMDA6MEU6NzYgIEdlbXNvYyBJbm5vdmlzaW9uIEluYy4KLSswMDow RTo3NyAgRGVjcnUsIEluYy4KLSswMDowRTo3OCAgQW10ZWxjbwotKzAwOjBFOjc5ICBBbXBsZSBD b21tdW5pY2F0aW9ucyBJbmMuCi0rMDA6MEU6N0EgIFByaXZhdGUKLSswMDowRTo3QiAgVG9zaGli YQotKzAwOjBFOjdDICBQcml2YXRlCi0rMDA6MEU6N0QgIEVsZWN0cm9uaWNzIExpbmUgMzAwMCBM dGQuCi0rMDA6MEU6N0UgIENvbXByb2cgT3kKLSswMDowRTo3RiAgSGV3bGV0dCBQYWNrYXJkCi0r MDA6MEU6ODAgIFByaXZhdGUKLSswMDowRTo4MSAgSW5zdGFudDgwMiBOZXR3b3JrcyBJbmMuCi0r MDA6MEU6ODIgIENvbW10ZWNoIFdpcmVsZXNzCi0rMDA6MEU6ODMgIENpc2NvIFN5c3RlbXMKLSsw MDowRTo4NCAgQ2lzY28gU3lzdGVtcwotKzAwOjBFOjg1ICBDYXRhbHlzdCBFbnRlcnByaXNlcywg SW5jLgotKzAwOjBFOjg2ICBBbGNhdGVsIE5vcnRoIEFtZXJpY2EKLSswMDowRTo4NyAgQWRwIEdh dXNlbG1hbm4gR21iaAotKzAwOjBFOjg4ICBWaWRlb3Ryb24gQ29ycC4KLSswMDowRTo4OSAgQ2xl bWF0aWMKLSswMDowRTo4QSAgQXZhcmEgVGVjaG5vbG9naWVzIFB0eS4gTHRkLgotKzAwOjBFOjhC ICBBc3RhcnRlIFRlY2hub2xvZ3kgQ28sIEx0ZC4KLSswMDowRTo4QyAgU2llbWVucyBBZyBBJkQg RXQKLSswMDowRTo4RCAgU3lzdGVtcyBJbiBQcm9ncmVzcyBIb2xkaW5nIEdtYmgKLSswMDowRTo4 RSAgU3BhcmtsYW4gQ29tbXVuaWNhdGlvbnMsIEluYy4KLSswMDowRTo4RiAgU2VyY29tbSBDb3Jw LgotKzAwOjBFOjkwICBQb25pY28gQ29ycC4KLSswMDowRTo5MSAgUHJpdmF0ZQotKzAwOjBFOjky ICBNaWxsaW5ldCBDby4sIEx0ZC4KLSswMDowRTo5MyAgTWls77+9bmlvIDMgU2lzdGVtYXMgRWxl Y3Ry77+9bmljb3MsIExkYS4KLSswMDowRTo5NCAgTWFhcyBJbnRlcm5hdGlvbmFsIEJ2Ci0rMDA6 MEU6OTUgIEZ1aml5YSBEZW5raSBTZWlzYWt1c2hvIENvLixMdGQuCi0rMDA6MEU6OTYgIEN1Ymlj IERlZmVuc2UgQXBwbGljYXRpb25zLCBJbmMuCi0rMDA6MEU6OTcgIFVsdHJhY2tlciBUZWNobm9s b2d5IENvLiwgSW5jCi0rMDA6MEU6OTggIFZpdGVjIENjLCBJbmMuCi0rMDA6MEU6OTkgIFNwZWN0 cnVtIERpZ2l0YWwsIEluYwotKzAwOjBFOjlBICBCb2UgVGVjaG5vbG9neSBHcm91cCBDby4sTHRk Ci0rMDA6MEU6OUIgIFByaXZhdGUKLSswMDowRTo5QyAgUGVtc3RhcgotKzAwOjBFOjlEICBWaWRl byBOZXR3b3JrcyBMdGQKLSswMDowRTo5RSAgVG9wZmllbGQgQ28uLCBMdGQKLSswMDowRTo5RiAg VGVtaWMgU2RzIEdtYmgKLSswMDowRTpBMCAgTmV0a2xhc3MgVGVjaG5vbG9neSBJbmMuCi0rMDA6 MEU6QTEgIEZvcm1vc2EgVGVsZXRlayBDb3Jwb3JhdGlvbgotKzAwOjBFOkEyICBDeWJlcmd1YXJk IENvcnBvcmF0aW9uCi0rMDA6MEU6QTMgIENuY3ItSXQgQ28uLEx0ZCxIYW5nemhvdSBQLlIuQ2hp bmEKLSswMDowRTpBNCAgQ2VydGFuY2UgSW5jLgotKzAwOjBFOkE1ICBCbGlwIFN5c3RlbXMKLSsw MDowRTpBNiAgQXN1c3RlayBDb21wdXRlciBJbmMuCi0rMDA6MEU6QTcgIEVuZGFjZSBJbmMgTHRk LgotKzAwOjBFOkE4ICBVbml0ZWQgVGVjaG5vbG9naXN0cyBFdXJvcGUgTGltaXRlZAotKzAwOjBF OkE5ICBTaGFuZ2hhaSBYdW4gU2hpIENvbW11bmljYXRpb25zIEVxdWlwbWVudCBMdGQuIENvLgot KzAwOjBFOkFBICBQcml2YXRlCi0rMDA6MEU6QUIgIFByaXZhdGUKLSswMDowRTpBQyAgTWludHJv biBFbnRlcnByaXNlIENvLiwgTHRkLgotKzAwOjBFOkFEICBNZXRhbm9pYSBUZWNobm9sb2dpZXMs IEluYy4KLSswMDowRTpBRSAgR2F3ZWxsIFRlY2hub2xvZ2llcyBDb3JwLgotKzAwOjBFOkFGICBD YXN0ZWwKLSswMDowRTpCMCAgU29sdXRpb25zIFJhZGlvIEJ2Ci0rMDA6MEU6QjEgIE5ld2NvdGVj aCxMdGQKLSswMDowRTpCMiAgTWljcm8tUmVzZWFyY2ggRmlubGFuZCBPeQotKzAwOjBFOkIzICBM ZWZ0aGFuZCBOZXR3b3JrcwotKzAwOjBFOkI0ICBHdWFuZ3pob3UgR2Fva2UgQ29tbXVuaWNhdGlv bnMgVGVjaG5vbG9neSBDby5MdGQuCi0rMDA6MEU6QjUgIEVjYXN0bGUgRWxlY3Ryb25pY3MgQ28u LCBMdGQuCi0rMDA6MEU6QjYgIFJpdmVyYmVkIFRlY2hub2xvZ3ksIEluYy4KLSswMDowRTpCNyAg S25vdmF0aXZlLCBJbmMuCi0rMDA6MEU6QjggIElpZ2EgQ28uLEx0ZAotKzAwOjBFOkI5ICBIYXNo aW1vdG8gRWxlY3Ryb25pY3MgSW5kdXN0cnkgQ28uLEx0ZC4KLSswMDowRTpCQSAgSGFubWkgU2Vt aWNvbmR1Y3RvciBDby4sIEx0ZC4KLSswMDowRTpCQiAgRXZlcmJlZSBOZXR3b3JrcwotKzAwOjBF OkJDICBDdWxsbWFubiBHbWJoCi0rMDA6MEU6QkQgIEJ1cmRpY2ssIEEgUXVpbnRvbiBDb21wbnkK LSswMDowRTpCRSAgQiZCIEVsZWN0cm9uaWNzIE1hbnVmYWN0dXJpbmcgQ28uCi0rMDA6MEU6QkYg IFByaXZhdGUKLSswMDowRTpDMCAgTm9ydGVsIE5ldHdvcmtzCi0rMDA6MEU6QzEgIE15bmFoIFRl Y2hub2xvZ2llcwotKzAwOjBFOkMyICBMb3dyYW5jZSBFbGVjdHJvbmljcywgSW5jLgotKzAwOjBF OkMzICBMb2dpYyBDb250cm9scywgSW5jLgotKzAwOjBFOkM0ICBJc2tyYSBUcmFuc21pc3Npb24g RC5ELgotKzAwOjBFOkM1ICBQcml2YXRlCi0rMDA6MEU6QzYgIEFzaXggRWxlY3Ryb25pY3MgQ29y cC4KLSswMDowRTpDNyAgQXBwZWFsIFRlbGVjb20gQ28uLEx0ZC4KLSswMDowRTpDOCAgWm9yYW4g Q29ycG9yYXRpb24KLSswMDowRTpDOSAgWW9rbyBUZWNobm9sb2d5IENvcnAuCi0rMDA6MEU6Q0Eg IFByaXZhdGUKLSswMDowRTpDQiAgVmluZXN5cyBUZWNobm9sb2d5Ci0rMDA6MEU6Q0MgIFRhYmxl YXUKLSswMDowRTpDRCAgU2tvdiBBL1MKLSswMDowRTpDRSAgUy5JLlQuVC5JLiBTLlAuQS4KLSsw MDowRTpDRiAgUHJvZmlidXMgTnV0emVyb3JnYW5pc2F0aW9uIEUuVi4KLSswMDowRTpEMCAgUHJp dmFyaXMsIEluYy4KLSswMDowRTpEMSAgT3Nha2EgTWljcm8gQ29tcHV0ZXIuCi0rMDA6MEU6RDIg IEZpbHRyb25pYyBQbGMKLSswMDowRTpEMyAgRXBpY2VudGVyLCBJbmMuCi0rMDA6MEU6RDQgIENy ZXNpdHQgSW5kdXN0cmllCi0rMDA6MEU6RDUgIENvcGFuIFN5c3RlbXMgSW5jLgotKzAwOjBFOkQ2 ICBDaXNjbyBTeXN0ZW1zCi0rMDA6MEU6RDcgIENpc2NvIFN5c3RlbXMKLSswMDowRTpEOCAgQWt0 aW5vLCBJbmMuCi0rMDA6MEU6RDkgIEFrc3lzLCBMdGQuCi0rMDA6MEU6REEgIEMtVGVjaCBVbml0 ZWQgQ29ycC4KLSswMDowRTpEQiAgWGluY29tIENvcnAuCi0rMDA6MEU6REMgIFRlbGxpb24gSW5j LgotKzAwOjBFOkREICBTaHVyZSBJbmNvcnBvcmF0ZWQKLSswMDowRTpERSAgUmVtZWMsIEluYy4K LSswMDowRTpERiAgUGx4IFRlY2hub2xvZ3kKLSswMDowRTpFMCAgTWNoYXJnZQotKzAwOjBFOkUx ICBFeHRyZW1lc3BlZWQgSW5jLgotKzAwOjBFOkUyICBDdXN0b20gRW5naW5lZXJpbmcgUy5QLkEu Ci0rMDA6MEU6RTMgIENoaXl1IFRlY2hub2xvZ3kgQ28uLEx0ZAotKzAwOjBFOkU0ICBQcml2YXRl Ci0rMDA6MEU6RTUgIEJpdHdhbGxldCwgSW5jLgotKzAwOjBFOkU2ICBBZGltb3MgU3lzdGVtcyBM dGQKLSswMDowRTpFNyAgQWFjIEVsZWN0cm9uaWNzIENvcnAuCi0rMDA6MEU6RTggIFppb25jb20K LSswMDowRTpFOSAgV2F5dGVjaCBEZXZlbG9wbWVudCwgSW5jLgotKzAwOjBFOkVBICBTaGFkb25n IEx1bmVuZyBKaWNoZW5nIEVsZWN0cm9uaWNzLENvLixMdGQKLSswMDowRTpFQiAgU2FuZG1hcnRp bihaaG9uZyBTaGFuKUVsZWN0cm9uaWNzIENvLixMdGQKLSswMDowRTpFQyAgT3JiYW4KLSswMDow RTpFRCAgTm9raWEgRGFubWFyayBBL1MKLSswMDowRTpFRSAgTXVjbyBJbmR1c3RyaWUgQnYKLSsw MDowRTpFRiAgUHJpdmF0ZQotKzAwOjBFOkYwICBGZXN0byBBZyAmIENvLiBLZwotKzAwOjBFOkYx ICBFenF1ZXN0IEluYy4KLSswMDowRTpGMiAgV29ybGQgQXhsZSBDb3Jwb3JhdGlvbgotKzAwOjBF OkYzICBTbWFydGhvbWUKLSswMDowRTpGNCAgU2hlbnpoZW4gS2FzZGEgRGlnaXRhbCBUZWNobm9s b2d5IENvLixMdGQKLSswMDowRTpGNSAgSXBhYyBUZWNobm9sb2d5IENvLiwgTHRkLgotKzAwOjBF OkY2ICBFLVRlbiBJbmZvcm1hdGlvbiBTeXN0ZW1zIENvLiwgTHRkLgotKzAwOjBFOkY3ICBWdWxj YW4gUG9ydGFscyBJbmMKLSswMDowRTpGOCAgU2JjIEFzaQotKzAwOjBFOkY5ICBSZWEgRWxla3Ry b25payBHbWJoCi0rMDA6MEU6RkEgIE9wdG93YXkgVGVjaG5vbG9neSBJbmNvcnBvcmF0aW9uCi0r MDA6MEU6RkIgIE1hY2V5IEVudGVycHJpc2VzCi0rMDA6MEU6RkMgIEp0YWcgVGVjaG5vbG9naWVz IEIuVi4KLSswMDowRTpGRCAgRnVqaSBQaG90byBPcHRpY2FsIENvLiwgTHRkLgotKzAwOjBFOkZF ICBFbmRydW4gVGVjaG5vbG9naWVzIExsYwotKzAwOjBFOkZGICBNZWdhc29sdXRpb24sSW5jLgot KzAwOjBGOjAwICBMZWdyYSBTeXN0ZW1zLCBJbmMuCi0rMDA6MEY6MDEgIERpZ2l0YWxrcyBJbmMK LSswMDowRjowMiAgRGlnaWN1YmUgVGVjaG5vbG9neSBDby4sIEx0ZAotKzAwOjBGOjAzICBDb20m QyBDby4sIEx0ZAotKzAwOjBGOjA0ICBDaW0tVXNhIEluYwotKzAwOjBGOjA1ICAzQiBTeXN0ZW0g SW5jLgotKzAwOjBGOjA2ICBOb3J0ZWwgTmV0d29ya3MKLSswMDowRjowNyAgTWFuZ3JvdmUgU3lz dGVtcywgSW5jLgotKzAwOjBGOjA4ICBJbmRhZ29uIE95Ci0rMDA6MEY6MDkgIFByaXZhdGUKLSsw MDowRjowQSAgUHJpdmF0ZQotKzAwOjBGOjBCICBLZW50aW1hIFRlY2hub2xvZ2llcyBBYgotKzAw OjBGOjBDICBTeW5jaHJvbmljIEVuZ2luZWVyaW5nCi0rMDA6MEY6MEQgIEh1bnQgRWxlY3Ryb25p YyBDby4sIEx0ZC4KLSswMDowRjowRSAgV2F2ZXNwbGl0dGVyIFRlY2hub2xvZ2llcywgSW5jLgot KzAwOjBGOjBGICBSZWFsIElkIFRlY2hub2xvZ3kgQ28uLCBMdGQuCi0rMDA6MEY6MTAgIFJkbSBD b3Jwb3JhdGlvbgotKzAwOjBGOjExICBQcm9kcml2ZSBCLlYuCi0rMDA6MEY6MTIgIFBhbmFzb25p YyBBdmMgTmV0d29ya3MgR2VybWFueSBHbWJoCi0rMDA6MEY6MTMgIE5pc2NhIENvcnBvcmF0aW9u Ci0rMDA6MEY6MTQgIE1pbmRyYXkgQ28uLCBMdGQuCi0rMDA6MEY6MTUgIEtqYWVydWxmZjEgQS9T Ci0rMDA6MEY6MTYgIEpheSBIb3cgVGVjaG5vbG9neSBDby4sCi0rMDA6MEY6MTcgIEluc3RhIEVs ZWt0cm8gR21iaAotKzAwOjBGOjE4ICBJbmR1c3RyaWFsIENvbnRyb2wgU3lzdGVtcwotKzAwOjBG OjE5ICBHdWlkYW50IENvcnBvcmF0aW9uCi0rMDA6MEY6MUEgIEdhbWluZyBTdXBwb3J0IEIuVi4K LSswMDowRjoxQiAgRWdvIFN5c3RlbXMgSW5jLgotKzAwOjBGOjFDICBEaWdpdGFsbCBXb3JsZCBD by4sIEx0ZAotKzAwOjBGOjFEICBDb3NtbyBUZWNocyBDby4sIEx0ZC4KLSswMDowRjoxRSAgQ2hl bmdkdSBLdCBFbGVjdHJpYyBDby5PZiBIaWdoICYgTmV3IFRlY2hub2xvZ3kKLSswMDowRjoxRiAg V3cgUGNiYSBUZXN0Ci0rMDA6MEY6MjAgIEhld2xldHQgUGFja2FyZAotKzAwOjBGOjIxICBTY2ll bnRpZmljIEF0bGFudGEsIEluYwotKzAwOjBGOjIyICBIZWxpdXMsIEluYy4KLSswMDowRjoyMyAg Q2lzY28gU3lzdGVtcwotKzAwOjBGOjI0ICBDaXNjbyBTeXN0ZW1zCi0rMDA6MEY6MjUgIEFpbXZh bGxleSBCLlYuCi0rMDA6MEY6MjYgIFdvcmxkYWNjeHggIExsYwotKzAwOjBGOjI3ICBUZWFsIEVs ZWN0cm9uaWNzLCBJbmMuCi0rMDA6MEY6MjggIEl0cm9uaXggQ29ycG9yYXRpb24KLSswMDowRjoy OSAgQXVnbWVudGl4IENvcnBvcmF0aW9uCi0rMDA6MEY6MkEgIENhYmxld2FyZSBFbGVjdHJvbmlj cwotKzAwOjBGOjJCICBHcmVlbmJlbGwgU3lzdGVtcwotKzAwOjBGOjJDICBVcGxvZ2l4LCBJbmMu Ci0rMDA6MEY6MkQgIENodW5nLUhzaW4gRWxlY3RyaWMgJiBNYWNoaW5lcnkgTWZnLkNvcnAuCi0r MDA6MEY6MkUgIE1lZ2Fwb3dlciBJbnRlcm5hdGlvbmFsIENvcnAuCi0rMDA6MEY6MkYgIFctTGlu eCBUZWNobm9sb2d5IENvLiwgTHRkLgotKzAwOjBGOjMwICBSYXphIE1pY3JvZWxlY3Ryb25pY3Mg SW5jCi0rMDA6MEY6MzEgIFByb3NpbGljYQotKzAwOjBGOjMyICBMdXRvbmcgRWxlY3Ryb25pYyBU ZWNobm9sb2d5IENvLixMdGQKLSswMDowRjozMyAgRHVhbGkgSW5jLgotKzAwOjBGOjM0ICBDaXNj byBTeXN0ZW1zCi0rMDA6MEY6MzUgIENpc2NvIFN5c3RlbXMKLSswMDowRjozNiAgQWNjdXJhdGUg VGVjaGhub2xvZ2llcywgSW5jLgotKzAwOjBGOjM3ICBYYW1iYWxhIEluY29ycG9yYXRlZAotKzAw OjBGOjM4ICBOZXRzdGFyCi0rMDA6MEY6MzkgIElyaXMgU2Vuc29ycwotKzAwOjBGOjNBICBIaXNo YXJwCi0rMDA6MEY6M0IgIEZ1amkgU3lzdGVtIE1hY2hpbmVzIENvLiwgTHRkLgotKzAwOjBGOjND ICBFbmRlbGVvIExpbWl0ZWQKLSswMDowRjozRCAgRC1MaW5rIENvcnBvcmF0aW9uCi0rMDA6MEY6 M0UgIENhcmRpb25ldCwgSW5jCi0rMDA6MEY6M0YgIEJpZyBCZWFyIE5ldHdvcmtzCi0rMDA6MEY6 NDAgIE9wdGljYWwgSW50ZXJuZXR3b3JraW5nIEZvcnVtCi0rMDA6MEY6NDEgIFppcGhlciBMdGQK LSswMDowRjo0MiAgWGFseW8gU3lzdGVtcwotKzAwOjBGOjQzICBXYXNhYmkgU3lzdGVtcyBJbmMu Ci0rMDA6MEY6NDQgIFRpdmVsbGEgSW5jLgotKzAwOjBGOjQ1ICBTdHJldGNoLCBJbmMuCi0rMDA6 MEY6NDYgIFNpbmFyIEFnCi0rMDA6MEY6NDcgIFJvYm94IFNwYQotKzAwOjBGOjQ4ICBQb2x5cGl4 IEluYy4KLSswMDowRjo0OSAgTm9ydGhvdmVyIFNvbHV0aW9ucyBMaW1pdGVkCi0rMDA6MEY6NEEg IEt5dXNodS1LeW9oYW4gQ28uLEx0ZAotKzAwOjBGOjRCICBLYXRhbmEgVGVjaG5vbG9neQotKzAw OjBGOjRDICBFbGV4dGVjaCBJbmMKLSswMDowRjo0RCAgQ2VudHJlcG9pbnQgVGVjaG5vbG9naWVz IEluYy4KLSswMDowRjo0RSAgQ2VsbGluawotKzAwOjBGOjRGICBDYWRtdXMgVGVjaG5vbG9neSBM dGQKLSswMDowRjo1MCAgQnJhZGRhaGVhZCBMaW1pdGVkCi0rMDA6MEY6NTEgIFByaXZhdGUKLSsw MDowRjo1MiAgWW9yayBSZWZyaWdlcmF0aW9uLCBNYXJpbmUgJiBDb250cm9scwotKzAwOjBGOjUz ICBMZXZlbCA1IE5ldHdvcmtzLCBJbmMuCi0rMDA6MEY6NTQgIEVudHJlbG9naWMgQ29ycG9yYXRp b24KLSswMDowRjo1NSAgRGF0YXdpcmUgQ29tbXVuaWNhdGlvbiBOZXR3b3JrcyBJbmMuCi0rMDA6 MEY6NTYgIENvbnRpbnV1bSBQaG90b25pY3MgSW5jCi0rMDA6MEY6NTcgIENhYmxlbG9naWMgQ28u LCBMdGQuCi0rMDA6MEY6NTggIEFkZGVyIFRlY2hub2xvZ3kgTGltaXRlZAotKzAwOjBGOjU5ICBQ aG9uYWsgQ29tbXVuaWNhdGlvbnMgQWcKLSswMDowRjo1QSAgUGVyaWJpdCBOZXR3b3JrcwotKzAw OjBGOjVCICBEZWx0YSBJbmZvcm1hdGlvbiBTeXN0ZW1zLCBJbmMuCi0rMDA6MEY6NUMgIERheSBP bmUgRGlnaXRhbCBNZWRpYSBMaW1pdGVkCi0rMDA6MEY6NUQgIDQyTmV0d29ya3MgQWIKLSswMDow Rjo1RSAgVmVvCi0rMDA6MEY6NUYgIE5pY2V0eSBUZWNobm9sb2dpZXMgSW5jLiAoTnRzKQotKzAw OjBGOjYwICBMaWZldHJvbiBDby4sTHRkCi0rMDA6MEY6NjEgIEtpd2kgTmV0d29ya3MKLSswMDow Rjo2MiAgQWxjYXRlbCBCZWxsIFNwYWNlIE4uVi4KLSswMDowRjo2MyAgT2J6ZXJ2IFRlY2hub2xv Z2llcwotKzAwOjBGOjY0ICBEJlIgRWxlY3Ryb25pY2EgV2Vlc3AgQnYKLSswMDowRjo2NSAgSWN1 YmUgQ29ycC4KLSswMDowRjo2NiAgQ2lzY28tTGlua3N5cwotKzAwOjBGOjY3ICBXZXN0IEluc3Ry dW1lbnRzCi0rMDA6MEY6NjggIFZhdmljIE5ldHdvcmsgVGVjaG5vbG9neSwgSW5jLgotKzAwOjBG OjY5ICBTZXcgRXVyb2RyaXZlIEdtYmggJiBDby4gS2cKLSswMDowRjo2QSAgTm9ydGVsIE5ldHdv cmtzCi0rMDA6MEY6NkIgIEdhdGV3YXJlIENvbW11bmljYXRpb25zIEdtYmgKLSswMDowRjo2QyAg QWRkaS1EYXRhIEdtYmgKLSswMDowRjo2RCAgTWlkYXMgRW5naW5lZXJpbmcKLSswMDowRjo2RSAg QmJveAotKzAwOjBGOjZGICBGdGEgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMKLSswMDowRjo3 MCAgV2ludGVjIEluZHVzdHJpZXMsIEluYy4KLSswMDowRjo3MSAgU2FubWVpIEVsZWN0cm9uaWNz IENvLixMdGQKLSswMDowRjo3MiAgU2FuZGJ1cnN0Ci0rMDA6MEY6NzMgIFJvY2t3ZWxsIFNhbXN1 bmcgQXV0b21hdGlvbgotKzAwOjBGOjc0ICBRYW1jb20gVGVjaG5vbG9neSBBYgotKzAwOjBGOjc1 ICBGaXJzdCBTaWxpY29uIFNvbHV0aW9ucwotKzAwOjBGOjc2ICBEaWdpdGFsIEtleXN0b25lLCBJ bmMuCi0rMDA6MEY6NzcgIERlbnR1bSBDby4sTHRkCi0rMDA6MEY6NzggIERhdGFjYXAgU3lzdGVt cyBJbmMKLSswMDowRjo3OSAgQmx1ZXRvb3RoIEludGVyZXN0IEdyb3VwIEluYy4KLSswMDowRjo3 QSAgQmVpamluZyBOdXF4IFRlY2hub2xvZ3kgQ28uLEx0ZAotKzAwOjBGOjdCICBBcmNlIFNpc3Rl bWFzLCBTLkEuCi0rMDA6MEY6N0MgIEFjdGkgQ29ycG9yYXRpb24KLSswMDowRjo3RCAgWGlycnVz Ci0rMDA6MEY6N0UgIFVpcyBBYmxlciBFbGVjdHJvbmljcyBDby4sTHRkLgotKzAwOjBGOjdGICBV YnN0b3JhZ2UgQ28uLEx0ZC4KLSswMDowRjo4MCAgVHJpbml0eSBTZWN1cml0eSBTeXN0ZW1zLElu Yy4KLSswMDowRjo4MSAgU2VjdXJlIEluZm8gSW1hZ2luZwotKzAwOjBGOjgyICBNb3J0YXJhIElu c3RydW1lbnQsIEluYy4KLSswMDowRjo4MyAgQnJhaW5pdW0gVGVjaG5vbG9naWVzIEluYy4KLSsw MDowRjo4NCAgQXN0dXRlIE5ldHdvcmtzLCBJbmMuCi0rMDA6MEY6ODUgIEFkZG8tSmFwYW4gQ29y cG9yYXRpb24KLSswMDowRjo4NiAgUHJpdmF0ZQotKzAwOjBGOjg3ICBNYXhjZXNzIEludGVybmF0 aW9uYWwKLSswMDowRjo4OCAgQW1ldGVrLCBJbmMuCi0rMDA6MEY6ODkgIFdpbm5lcnRlYyBTeXN0 ZW0gQ28uLCBMdGQuCi0rMDA6MEY6OEEgIFdpZGV2aWV3Ci0rMDA6MEY6OEIgIE9yaW9uIE11bHRp c3lzdGVtcyBJbmMKLSswMDowRjo4QyAgR2lnYXdhdmV0ZWNoIFB0ZSBMdGQKLSswMDowRjo4RCAg RmFzdCBUdi1TZXJ2ZXIgQWcKLSswMDowRjo4RSAgRG9uZ3lhbmcgVGVsZWNvbSBDby4sTHRkLgot KzAwOjBGOjhGICBDaXNjbyBTeXN0ZW1zCi0rMDA6MEY6OTAgIENpc2NvIFN5c3RlbXMKLSswMDow Rjo5MSAgQWVyb3RlbGVjb20gQ28uLEx0ZC4KLSswMDowRjo5MiAgTWljcm9oYXJkIFN5c3RlbXMg SW5jLgotKzAwOjBGOjkzICBMYW5kaXMrR3lyIEx0ZC4KLSswMDowRjo5NCAgR2VuZXhpcwotKzAw OjBGOjk1ICBFbGVjb20gQ28uLEx0ZCBMYW5lZWQgRGl2aXNpb24KLSswMDowRjo5NiAgQ3JpdGlj YWwgVGVsZWNvbSBDb3JwLgotKzAwOjBGOjk3ICBBdmFuZXggQ29ycG9yYXRpb24KLSswMDowRjo5 OCAgQXZhbWF4IENvLiBMdGQuCi0rMDA6MEY6OTkgIEFwYWMgT3B0byBFbGVjdHJvbmljcyBJbmMu Ci0rMDA6MEY6OUEgIFN5bmNocm9ueSwgSW5jLgotKzAwOjBGOjlCICBSb3NzIFZpZGVvIExpbWl0 ZWQKLSswMDowRjo5QyAgUGFuZHVpdCBDb3JwCi0rMDA6MEY6OUQgIE5ld25oYW0gUmVzZWFyY2gg THRkCi0rMDA6MEY6OUUgIE11cnJlbGVrdHJvbmlrIEdtYmgKLSswMDowRjo5RiAgTW90b3JvbGEg QmNzCi0rMDA6MEY6QTAgIExvdHRlIENhbm9uIENvLiwgTHRkLgotKzAwOjBGOkExICBHaWdhYml0 IFN5c3RlbXMgSW5jLgotKzAwOjBGOkEyICBEaWdpdGFsIFBhdGggTmV0d29ya3MKLSswMDowRjpB MyAgQWxwaGEgTmV0d29ya3MgSW5jLgotKzAwOjBGOkE0ICBTcHJlY2hlciBBdXRvbWF0aW9uIEdt YmgKLSswMDowRjpBNSAgU21wIC8gQndhIFRlY2hub2xvZ3kgR21iaAotKzAwOjBGOkE2ICBTMiBT ZWN1cml0eSBDb3Jwb3JhdGlvbgotKzAwOjBGOkE3ICBSYXB0b3IgTmV0d29ya3MgVGVjaG5vbG9n eQotKzAwOjBGOkE4ICBQaG90b21ldHJpY3MsIEluYy4KLSswMDowRjpBOSAgUGMgRmFicmlrCi0r MDA6MEY6QUEgIE5leHVzIFRlY2hub2xvZ2llcwotKzAwOjBGOkFCICBLeXVzaHUgRWxlY3Ryb25p Y3MgU3lzdGVtcyBJbmMuCi0rMDA6MEY6QUMgIEllZWUgODAyLjExCi0rMDA6MEY6QUQgIEZtbiBD b21tdW5pY2F0aW9ucyBHbWJoCi0rMDA6MEY6QUUgIEUyTyBDb21tdW5pY2F0aW9ucwotKzAwOjBG OkFGICBEaWFsb2cgSW5jLgotKzAwOjBGOkIwICBDb21wYWwgRWxlY3Ryb25pY3MsSW5jLgotKzAw OjBGOkIxICBDb2duaW8gSW5jLgotKzAwOjBGOkIyICBCcm9hZGJhbmQgUGFjZW5ldCAoSW5kaWEp IFB2dC4gTHRkLgotKzAwOjBGOkIzICBBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYwotKzAwOjBG OkI0ICBUaW1lc3BhY2UgVGVjaG5vbG9neQotKzAwOjBGOkI1ICBOZXRnZWFyIEluYwotKzAwOjBG OkI2ICBFdXJvcGxleCBUZWNobm9sb2dpZXMKLSswMDowRjpCNyAgQ2F2aXVtIE5ldHdvcmtzCi0r MDA6MEY6QjggIENhbGx1cmwgSW5jLgotKzAwOjBGOkI5ICBBZGFwdGl2ZSBJbnN0cnVtZW50cwot KzAwOjBGOkJBICBUZXZlYm94IEFiCi0rMDA6MEY6QkIgIFNpZW1lbnMgQWcsIEljbiBNJkwgVGRj IEVwCi0rMDA6MEY6QkMgIE9ua2V5IFRlY2hub2xvZ2llcywgSW5jLgotKzAwOjBGOkJEICBNcnYg Q29tbXVuaWNhdGlvbnMgKE5ldHdvcmtzKSBMdGQKLSswMDowRjpCRSAgRS1XL1lvdSBJbmMuCi0r MDA6MEY6QkYgIERndCBTcC4gWiBPLk8uCi0rMDA6MEY6QzAgIERlbGNvbXAKLSswMDowRjpDMSAg V2F2ZSBDb3Jwb3JhdGlvbgotKzAwOjBGOkMyICBVbml3ZWxsIENvcnBvcmF0aW9uCi0rMDA6MEY6 QzMgIFBhbG1wYWxtIFRlY2hub2xvZ3ksIEluYy4KLSswMDowRjpDNCAgTnN0IENvLixMdGQuCi0r MDA6MEY6QzUgIEtleW1lZCBMdGQKLSswMDowRjpDNiAgRXVyb2NvbSBJbmR1c3RyaWVzIEEvUwot KzAwOjBGOkM3ICBEaW9uaWNhIFImRCBMdGQuCi0rMDA6MEY6QzggIENoYW50cnkgTmV0d29ya3MK LSswMDowRjpDOSAgQWxsbmV0IEdtYmgKLSswMDowRjpDQSAgQS1KaW4gVGVjaGxpbmUgQ28sIEx0 ZAotKzAwOjBGOkNCICAzQ29tIEV1cm9wZSBMdGQKLSswMDowRjpDQyAgTmV0b3BpYSwgSW5jLgot KzAwOjBGOkNEICBOb3J0ZWwgTmV0d29ya3MKLSswMDowRjpDRSAgS2lrdXN1aSBFbGVjdHJvbmlj cyBDb3JwLgotKzAwOjBGOkNGICBEYXRhd2luZCBSZXNlYXJjaAotKzAwOjBGOkQwICBBc3RyaQot KzAwOjBGOkQxICBBcHBsaWVkIFdpcmVsZXNzIElkZW50aWZpY2F0aW9ucyBHcm91cCwgSW5jLgot KzAwOjBGOkQyICBFd2EgVGVjaG5vbG9naWVzLCBJbmMuCi0rMDA6MEY6RDMgIERpZ2l1bQotKzAw OjBGOkQ0ICBTb3VuZGNyYWZ0Ci0rMDA6MEY6RDUgIFNjaHdlY2hhdCAtIFJpc2UKLSswMDowRjpE NiAgU2Fyb3RlY2ggQ28uLCBMdGQKLSswMDowRjpENyAgSGFybWFuIE11c2ljIEdyb3VwCi0rMDA6 MEY6RDggIEZvcmNlLCBJbmMuCi0rMDA6MEY6RDkgIEZsZXhkc2wgVGVsZWNvbW11bmljYXRpb25z IEFnCi0rMDA6MEY6REEgIFlhemFraSBDb3Jwb3JhdGlvbgotKzAwOjBGOkRCICBXZXN0ZWxsIFRl Y2hub2xvZ2llcwotKzAwOjBGOkRDICBVZWRhIEphcGFuICBSYWRpbyBDby4sIEx0ZC4KLSswMDow RjpERCAgU29yZGluIEFiCi0rMDA6MEY6REUgIFNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmlj YXRpb25zIEFiCi0rMDA6MEY6REYgIFNvbG9tb24gVGVjaG5vbG9neSBDb3JwLgotKzAwOjBGOkUw ICBOY29tcHV0aW5nIENvLixMdGQuCi0rMDA6MEY6RTEgIElkIERpZ2l0YWwgQ29ycG9yYXRpb24K LSswMDowRjpFMiAgSGFuZ3pob3UgSHVhd2VpLTNDb20gVGVjaC4gQ28uLCBMdGQuCi0rMDA6MEY6 RTMgIERhbW0gQ2VsbHVsYXIgU3lzdGVtcyBBL1MKLSswMDowRjpFNCAgUGFudGVjaCBDby4sTHRk Ci0rMDA6MEY6RTUgIE1lcmN1cnkgU2VjdXJpdHkgQ29ycG9yYXRpb24KLSswMDowRjpFNiAgTWJ0 ZWNoIFN5c3RlbXMsIEluYy4KLSswMDowRjpFNyAgTHV0cm9uIEVsZWN0cm9uaWNzIENvLiwgSW5j LgotKzAwOjBGOkU4ICBMb2JvcywgSW5jLgotKzAwOjBGOkU5ICBHdyBUZWNobm9sb2dpZXMgQ28u LEx0ZC4KLSswMDowRjpFQSAgR2lnYS1CeXRlIFRlY2hub2xvZ3kgQ28uLEx0ZC4KLSswMDowRjpF QiAgQ3lsb24gQ29udHJvbHMKLSswMDowRjpFQyAgQXJrdXMgSW5jLgotKzAwOjBGOkVEICBBbmFt IEVsZWN0cm9uaWNzIENvLiwgTHRkCi0rMDA6MEY6RUUgIFh0ZWMsIEluY29ycG9yYXRlZAotKzAw OjBGOkVGICBUaGFsZXMgRS1UcmFuc2FjdGlvbnMgR21iaAotKzAwOjBGOkYwICBTdW5yYXkgRW50 ZXJwcmlzZQotKzAwOjBGOkYxICBOZXgtRyBTeXN0ZW1zIFB0ZS5MdGQKLSswMDowRjpGMiAgTG91 ZCBUZWNobm9sb2dpZXMgSW5jLgotKzAwOjBGOkYzICBKdW5nIE15b3VuZyBDb21tdW5pY2F0aW9u cyZUZWNobm9sb2d5Ci0rMDA6MEY6RjQgIEd1bnRlcm1hbm4gJiBEcnVuY2sgR21iaAotKzAwOjBG OkY1ICBHbiZTIENvbXBhbnkKLSswMDowRjpGNiAgRGFyZm9uIEVsZWN0cm9uaWNzIENvcnAuCi0r MDA6MEY6RjcgIENpc2NvIFN5c3RlbXMKLSswMDowRjpGOCAgQ2lzY28gIFN5c3RlbXMKLSswMDow RjpGOSAgVmFsY3JldGVjLCBJbmMuCi0rMDA6MEY6RkEgIE9wdGluZWwgU3lzdGVtcywgSW5jLgot KzAwOjBGOkZCICBOaXBwb24gRGVuc28gSW5kdXN0cnkgQ28uLCBMdGQuCi0rMDA6MEY6RkMgIE1l cml0IExpLUxpbiBFbnQuCi0rMDA6MEY6RkQgIEdsb3J5dGVrIE5ldHdvcmsgSW5jLgotKzAwOjBG OkZFICBHLVBybyBDb21wdXRlcgotKzAwOjBGOkZGICBDb250cm9sNAotKzAwOjEwOjAwICBDYWJs ZSBUZWxldmlzaW9uIExhYm9yYXRvcmllcywgSW5jLgotIDAwOjEwOjAxICBNY2sgQ29tbXVuaWNh dGlvbnMKLSAwMDoxMDowMiAgQWN0aWEKLSAwMDoxMDowMyAgSW1hdHJvbiwgSW5jLgotLTAwOjEw OjA0ICBUaGUgQnJhbnRsZXkgQ29pbGUgQ29tcGFueSxpbmMKLSswMDoxMDowNCAgVGhlIEJyYW50 bGV5IENvaWxlIENvbXBhbnksSW5jCi0gMDA6MTA6MDUgIFVlYyBDb21tZXJjaWFsCi0gMDA6MTA6 MDYgIFRoYWxlcyBDb250YWN0IFNvbHV0aW9ucyBMdGQuCi0gMDA6MTA6MDcgIENpc2NvIFN5c3Rl bXMsIEluYy4KLUBAIC0zMDUwLDExICs0MDkzLDExIEBACi0gMDA6MTA6MEYgIEluZHVzdHJpYWwg Q3B1IFN5c3RlbXMKLSAwMDoxMDoxMCAgSW5pdGlvIENvcnBvcmF0aW9uCi0gMDA6MTA6MTEgIENp c2NvIFN5c3RlbXMsIEluYy4KLS0wMDoxMDoxMiAgUHJvY2Vzc29yIFN5c3RlbXMgKGkpIFB2dCBM dGQKLSswMDoxMDoxMiAgUHJvY2Vzc29yIFN5c3RlbXMgKEkpIFB2dCBMdGQKLSAwMDoxMDoxMyAg SW5kdXN0cmlhbCBDb21wdXRlciBTb3VyY2UKLSAwMDoxMDoxNCAgQ2lzY28gU3lzdGVtcywgSW5j LgotIDAwOjEwOjE1ICBPb21vbiBJbmMuCi0tMDA6MTA6MTYgIFQuc3F3YXJlCi0rMDA6MTA6MTYg IFQuU3F3YXJlCi0gMDA6MTA6MTcgIE1pY29zIEdtYmgKLSAwMDoxMDoxOCAgQnJvYWRjb20gQ29y cG9yYXRpb24KLSAwMDoxMDoxOSAgU2lyb25hIERlbnRhbCBTeXN0ZW1zIEdtYmggJiBDby4gS2cK LUBAIC0zMDc2LDE3ICs0MTE5LDE3IEBACi0gMDA6MTA6MjkgIENpc2NvIFN5c3RlbXMsIEluYy4K LSAwMDoxMDoyQSAgWmYgTWljcm9zeXN0ZW1zLCBJbmMuCi0gMDA6MTA6MkIgIFVtYXggRGF0YSBT eXN0ZW1zLCBJbmMuCi0tMDA6MTA6MkMgIExhc2F0IE5ldHdvcmtzIEEvcwotKzAwOjEwOjJDICBM YXNhdCBOZXR3b3JrcyBBL1MKLSAwMDoxMDoyRCAgSGl0YWNoaSBTb2Z0d2FyZSBFbmdpbmVlcmlu ZwotIDAwOjEwOjJFICBOZXR3b3JrIFN5c3RlbXMgJiBUZWNobm9sb2dpZXMgUHZ0LiBMdGQuCi0g MDA6MTA6MkYgIENpc2NvIFN5c3RlbXMsIEluYy4KLS0wMDoxMDozMCAgV2ktbGFuLCBJbmMuCi0r MDA6MTA6MzAgIFdpLUxhbiwgSW5jLgotIDAwOjEwOjMxICBPYmplY3RpdmUgQ29tbXVuaWNhdGlv bnMsIEluYy4KLSAwMDoxMDozMiAgQWx0YSBUZWNobm9sb2d5Ci0gMDA6MTA6MzMgIEFjY2Vzc2xh biBDb21tdW5pY2F0aW9ucywgSW5jLgotIDAwOjEwOjM0ICBHbnAgQ29tcHV0ZXJzCi0gMDA6MTA6 MzUgIEVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtcyBDby4sIEx0ZAotLTAwOjEwOjM2ICBJbnRl ci10ZWwgSW50ZWdyYXRlZCBTeXN0ZW1zCi0rMDA6MTA6MzYgIEludGVyLVRlbCBJbnRlZ3JhdGVk IFN5c3RlbXMKLSAwMDoxMDozNyAgQ3lxJ3ZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCi0gMDA6MTA6 MzggIE1pY3JvIFJlc2VhcmNoIEluc3RpdHV0ZSwgSW5jLgotIDAwOjEwOjM5ICBWZWN0cm9uIFN5 c3RlbXMgQWcKLUBAIC0zMTA3LDMyICs0MTUwLDMyIEBACi0gMDA6MTA6NDggIEh0cmMgQXV0b21h dGlvbiwgSW5jLgotIDAwOjEwOjQ5ICBTaG9yZWxpbmUgVGVsZXdvcmtzLCBJbmMuCi0gMDA6MTA6 NEEgIFRoZSBQYXJ2dWMgQ29ycG9yYXRpb24KLS0wMDoxMDo0QiAgM2NvbSBDb3Jwb3JhdGlvbgot KzAwOjEwOjRCICAzQ29tIENvcnBvcmF0aW9uCi0gMDA6MTA6NEMgIENvbXB1dGVyIEFjY2VzcyBU ZWNobm9sb2d5Ci0gMDA6MTA6NEQgIFN1cnRlYyBJbmR1c3RyaWVzLCBJbmMuCi0gMDA6MTA6NEUg IENlb2xvZ2ljCi0gMDA6MTA6NEYgIFN0b3JhZ2UgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgotIDAw OjEwOjUwICBSaW9uIENvLiwgTHRkLgotIDAwOjEwOjUxICBDbWljcm8gQ29ycG9yYXRpb24KLS0w MDoxMDo1MiAgTWV0dGxlci10b2xlZG8gKGFsYnN0YWR0KSBHbWJoCi0rMDA6MTA6NTIgIE1ldHRs ZXItVG9sZWRvIChBbGJzdGFkdCkgR21iaAotIDAwOjEwOjUzICBDb21wdXRlciBUZWNobm9sb2d5 IENvcnAuCi0gMDA6MTA6NTQgIENpc2NvIFN5c3RlbXMsIEluYy4KLSAwMDoxMDo1NSAgRnVqaXRz dSBNaWNyb2VsZWN0cm9uaWNzLCBJbmMuCi0gMDA6MTA6NTYgIFNvZGljayBDby4sIEx0ZC4KLS0w MDoxMDo1NyAgUmViZWwuY29tLCBJbmMuCi0rMDA6MTA6NTcgIFJlYmVsLkNvbSwgSW5jLgotIDAw OjEwOjU4ICBBcnJvd3BvaW50IENvbW11bmljYXRpb25zCi0gMDA6MTA6NTkgIERpYWJsbyBSZXNl YXJjaCBDby4gTGxjCi0tMDA6MTA6NUEgIDNjb20gQ29ycG9yYXRpb24KLSswMDoxMDo1QSAgM0Nv bSBDb3Jwb3JhdGlvbgotIDAwOjEwOjVCICBOZXQgSW5zaWdodCBBYgotLTAwOjEwOjVDICBRdWFu dHVtIERlc2lnbnMgKGguay4pIEx0ZC4KLSswMDoxMDo1QyAgUXVhbnR1bSBEZXNpZ25zIChILksu KSBMdGQuCi0gMDA6MTA6NUQgIERyYWVnZXIgTWVkaWNhbAotIDAwOjEwOjVFICBIZWtpbWlhbiBM YWJvcmF0b3JpZXMsIEluYy4KLS0wMDoxMDo1RiAgSW4tc25lYwotKzAwOjEwOjVGICBJbi1TbmVj Ci0gMDA6MTA6NjAgIEJpbGxpb250b24gU3lzdGVtcywgSW5jLgotIDAwOjEwOjYxICBIb3N0bGlu ayBDb3JwLgotIDAwOjEwOjYyICBOeCBTZXJ2ZXIsIElsbmMuCi0gMDA6MTA6NjMgIFN0YXJndWlk ZSBEaWdpdGFsIE5ldHdvcmtzCi0tMDA6MTA6NjQgIERpZ2l0YWwgRXF1aXBtZW50IENvcnAuCi0r MDA6MTA6NjQgIERucGcsIExsYwotIDAwOjEwOjY1ICBSYWR5bmUgQ29ycG9yYXRpb24KLSAwMDox MDo2NiAgQWR2YW5jZWQgQ29udHJvbCBTeXN0ZW1zLCBJbmMuCi0gMDA6MTA6NjcgIFJlZGJhY2sg TmV0d29ya3MsIEluYy4KLUBAIC0zMTU2LDE1ICs0MTk5LDE1IEBACi0gMDA6MTA6NzkgIENpc2Nv IFN5c3RlbXMsIEluYy4KLSAwMDoxMDo3QSAgQW1iaWNvbSwgSW5jLgotIDAwOjEwOjdCICBDaXNj byBTeXN0ZW1zLCBJbmMuCi0tMDA6MTA6N0MgIFAtY29tLCBJbmMuCi0rMDA6MTA6N0MgIFAtQ29t LCBJbmMuCi0gMDA6MTA6N0QgIEF1cm9yYSBDb21tdW5pY2F0aW9ucywgTHRkLgotIDAwOjEwOjdF ICBCYWNobWFubiBFbGVjdHJvbmljIEdtYmgKLSAwMDoxMDo3RiAgQ3Jlc3Ryb24gRWxlY3Ryb25p Y3MsIEluYy4KLSAwMDoxMDo4MCAgTWV0YXdhdmUgQ29tbXVuaWNhdGlvbnMKLSAwMDoxMDo4MSAg RHBzLCBJbmMuCi0gMDA6MTA6ODIgIEpuYSBUZWxlY29tbXVuaWNhdGlvbnMgTGltaXRlZAotLTAw OjEwOjgzICBIZXdsZXR0LXBhY2thcmQgQ29tcGFueQotLTAwOjEwOjg0ICBLLWJvdCBDb21tdW5p Y2F0aW9ucwotKzAwOjEwOjgzICBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQotKzAwOjEwOjg0ICBL LUJvdCBDb21tdW5pY2F0aW9ucwotIDAwOjEwOjg1ICBQb2xhcmlzIENvbW11bmljYXRpb25zLCBJ bmMuCi0gMDA6MTA6ODYgIEF0dG8gVGVjaG5vbG9neSwgSW5jLgotIDAwOjEwOjg3ICBYc3RyZWFt aXMgUGxjCi1AQCAtMzE4MCwxNSArNDIyMywxNSBAQAotIDAwOjEwOjkxICBObyBXaXJlcyBOZWVk ZWQgQnYKLSAwMDoxMDo5MiAgTmV0Y29yZSBJbmMuCi0gMDA6MTA6OTMgIENtcyBDb21wdXRlcnMs IEx0ZC4KLS0wMDoxMDo5NCAgQWR0ZWNoLCBJbmMuCi0tMDA6MTA6OTUgIFRob21zb24gTXVsdGlt ZWRpYSwgSW5jLgotKzAwOjEwOjk0ICBQZXJmb3JtYW5jZSBBbmFseXNpcyBCcm9hZGJhbmQsIFNw aXJlbnQgUGxjCi0rMDA6MTA6OTUgIFRob21wc29uIEluYy4KLSAwMDoxMDo5NiAgVHJhY2V3ZWxs IFN5c3RlbXMsIEluYy4KLSAwMDoxMDo5NyAgV2lubmV0IE1ldHJvcG9saXRhbiBDb21tdW5pY2F0 aW9ucyBTeXN0ZW1zLCBJbmMuCi0gMDA6MTA6OTggIFN0YXJuZXQgVGVjaG5vbG9naWVzLCBJbmMu Ci0gMDA6MTA6OTkgIElubm9tZWRpYSwgSW5jLgotIDAwOjEwOjlBICBOZXRsaW5lCi0gMDA6MTA6 OUIgIFZpeGVsIENvcnBvcmF0aW9uCi0tMDA6MTA6OUMgIE0tc3lzdGVtIENvLiwgTHRkLgotKzAw OjEwOjlDICBNLVN5c3RlbSBDby4sIEx0ZC4KLSAwMDoxMDo5RCAgQ2xhcmluZXQgU3lzdGVtcywg SW5jLgotIDAwOjEwOjlFICBBd2FyZSwgSW5jLgotIDAwOjEwOjlGICBQYXZvLCBJbmMuCi1AQCAt MzIwOSw3ICs0MjUyLDcgQEAKLSAwMDoxMDpBRSAgU2hpbmtvIEVsZWN0cmljIEluZHVzdHJpZXMg Q28uCi0gMDA6MTA6QUYgIFRhYyBTeXN0ZW1zLCBJbmMuCi0gMDA6MTA6QjAgIE1lcmlkaWFuIFRl Y2hub2xvZ3kgQ29ycC4KLS0wMDoxMDpCMSAgRm9yLWEgQ28uLCBMdGQuCi0rMDA6MTA6QjEgIEZv ci1BIENvLiwgTHRkLgotIDAwOjEwOkIyICBDb2FjdGl2ZSBBZXN0aGV0aWNzCi0gMDA6MTA6QjMg IE5va2lhIE11bHRpbWVkaWEgVGVybWluYWxzCi0gMDA6MTA6QjQgIEF0bW9zcGhlcmUgTmV0d29y a3MKLUBAIC0zMjE4LDE2ICs0MjYxLDE2IEBACi0gMDA6MTA6QjcgIENveW90ZSBUZWNobm9sb2dp ZXMsIExsYwotIDAwOjEwOkI4ICBJc2hpZ2FraSBDb21wdXRlciBTeXN0ZW0gQ28uCi0gMDA6MTA6 QjkgIE1heHRvciBDb3JwLgotLTAwOjEwOkJBICBNYXJ0aW5oby1kYXZpcyBTeXN0ZW1zLCBJbmMu Ci0rMDA6MTA6QkEgIE1hcnRpbmhvLURhdmlzIFN5c3RlbXMsIEluYy4KLSAwMDoxMDpCQiAgRGF0 YSAmIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kKLS0wMDoxMDpCQyAgTm9ydGVsIE5ldHdvcmtzCi0r MDA6MTA6QkMgIEFhc3RyYSBUZWxlY29tCi0gMDA6MTA6QkQgIFRoZSBUZWxlY29tbXVuaWNhdGlv biBUZWNobm9sb2d5IENvbW1pdHRlZQotIDAwOjEwOkJFICBUZWxleGlzIENvcnAuCi0gMDA6MTA6 QkYgIEludGVyYWlyIFdpcmVsZXNzCi0gMDA6MTA6QzAgIEFybWEsIEluYy4KLSAwMDoxMDpDMSAg T2kgRWxlY3RyaWMgQ28uLCBMdGQuCi0gMDA6MTA6QzIgIFdpbGxuZXQsIEluYy4KLS0wMDoxMDpD MyAgQ3NpLWNvbnRyb2wgU3lzdGVtcwotKzAwOjEwOkMzICBDc2ktQ29udHJvbCBTeXN0ZW1zCi0g MDA6MTA6QzQgIE1lZGlhIExpbmtzIENvLiwgTHRkLgotIDAwOjEwOkM1ICBQcm90b2NvbCBUZWNo bm9sb2dpZXMsIEluYy4KLSAwMDoxMDpDNiAgVXNpCi1AQCAtMzIzNSw3ICs0Mjc4LDcgQEAKLSAw MDoxMDpDOCAgQ29tbXVuaWNhdGlvbnMgRWxlY3Ryb25pY3MgU2VjdXJpdHkgR3JvdXAKLSAwMDox MDpDOSAgTWl0c3ViaXNoaSBFbGVjdHJvbmljcyBMb2dpc3RpYyBTdXBwb3J0IENvLgotIDAwOjEw OkNBICBJbnRlZ3JhbCBBY2Nlc3MKLS0wMDoxMDpDQiAgRmFjaXQgSy5rLgotKzAwOjEwOkNCICBG YWNpdCBLLksuCi0gMDA6MTA6Q0MgIENscCBDb21wdXRlciBMb2dpc3RpayBQbGFudW5nIEdtYmgK LSAwMDoxMDpDRCAgSW50ZXJmYWNlIENvbmNlcHQKLSAwMDoxMDpDRSAgVm9sYW1wLCBMdGQuCi1A QCAtMzI0NSwxOSArNDI4OCwxOSBAQAotIDAwOjEwOkQyICBOaXR0byBUc3VzaGlua2kgQ28uLCBM dGQKLSAwMDoxMDpEMyAgR3JpcHMgRWxlY3Ryb25pYyBHbWJoCi0gMDA6MTA6RDQgIFN0b3JhZ2Ug Q29tcHV0ZXIgQ29ycG9yYXRpb24KLS0wMDoxMDpENSAgSW1hc2RlIENhbmFyaWFzLCBTLmEuCi0t MDA6MTA6RDYgIEl0dCAtIEEvY2QKLSswMDoxMDpENSAgSW1hc2RlIENhbmFyaWFzLCBTLkEuCi0r MDA6MTA6RDYgIEl0dCAtIEEvQ2QKLSAwMDoxMDpENyAgQXJnb3N5IFJlc2VhcmNoIEluYy4KLSAw MDoxMDpEOCAgQ2FsaXN0YQotLTAwOjEwOkQ5ICBJYm0gSmFwYW4sIEZ1amlzYXdhIE10K2QKLSsw MDoxMDpEOSAgSWJtIEphcGFuLCBGdWppc2F3YSBNdCtECi0gMDA6MTA6REEgIE1vdGlvbiBFbmdp bmVlcmluZywgSW5jLgotIDAwOjEwOkRCICBOZXRzY3JlZW4gVGVjaG5vbG9naWVzLCBJbmMuCi0t MDA6MTA6REMgIE1pY3JvLXN0YXIgSW50ZXJuYXRpb25hbCBDby4sIEx0ZC4KLSswMDoxMDpEQyAg TWljcm8tU3RhciBJbnRlcm5hdGlvbmFsIENvLiwgTHRkLgotIDAwOjEwOkREICBFbmFibGUgU2Vt aWNvbmR1Y3RvciwgSW5jLgotIDAwOjEwOkRFICBJbnRlcm5hdGlvbmFsIERhdGFjYXN0aW5nIENv cnBvcmF0aW9uCi0gMDA6MTA6REYgIFJpc2UgQ29tcHV0ZXIgSW5jLgotIDAwOjEwOkUwICBDb2Jh bHQgTWljcm9zZXJ2ZXIsIEluYy4KLS0wMDoxMDpFMSAgUy5pLiBUZWNoLCBJbmMuCi0rMDA6MTA6 RTEgIFMuSS4gVGVjaCwgSW5jLgotIDAwOjEwOkUyICBBcnJheWNvbW0sIEluYy4KLSAwMDoxMDpF MyAgQ29tcGFxIENvbXB1dGVyIENvcnBvcmF0aW9uCi0gMDA6MTA6RTQgIE5zaSBDb3Jwb3JhdGlv bgotQEAgLTMyNzIsNyArNDMxNSw3IEBACi0gMDA6MTA6RUQgIFN1bmRhbmNlIFRlY2hub2xvZ3ks IEluYy4KLSAwMDoxMDpFRSAgQ3RpIFByb2R1Y3RzLCBJbmMuCi0gMDA6MTA6RUYgIERidGVsIElu Y29ycG9yYXRlZAotLTAwOjEwOkYxICBJLW8gQ29ycG9yYXRpb24KLSswMDoxMDpGMSAgSS1PIENv cnBvcmF0aW9uCi0gMDA6MTA6RjIgIEFudGVjCi0gMDA6MTA6RjMgIE5leGNvbSBJbnRlcm5hdGlv bmFsIENvLiwgTHRkLgotIDAwOjEwOkY0ICBWZXJ0aWNhbCBOZXR3b3JrcywgSW5jLgotQEAgLTMy ODQsMjEgKzQzMjcsMjU4IEBACi0gMDA6MTA6RkEgIFpheWFudGUsIEluYy4KLSAwMDoxMDpGQiAg WmlkYSBUZWNobm9sb2dpZXMgTGltaXRlZAotIDAwOjEwOkZDICBCcm9hZGJhbmQgTmV0d29ya3Ms IEluYy4KLS0wMDoxMDpGRCAgQ29jb20gQS9zCi0rMDA6MTA6RkQgIENvY29tIEEvUwotIDAwOjEw OkZFICBEaWdpdGFsIEVxdWlwbWVudCBDb3Jwb3JhdGlvbgotIDAwOjEwOkZGICBDaXNjbyBTeXN0 ZW1zLCBJbmMuCi0rMDA6MTE6MDAgIFJhbSBJbmR1c3RyaWVzLCBMbGMKLSswMDoxMTowMSAgQ2V0 IFRlY2hub2xvZ2llcyBQdGUgTHRkCi0rMDA6MTE6MDIgIEF1cm9yYSBNdWx0aW1lZGlhIENvcnAu Ci0rMDA6MTE6MDMgIEthd2FtdXJhIEVsZWN0cmljIEluYy4KLSswMDoxMTowNCAgVGVsZXh5Ci0r MDA6MTE6MDUgIFN1bnBsdXMgVGVjaG5vbG9neSBDby4sIEx0ZC4KLSswMDoxMTowNiAgU2llbWVu cyBOdiAoQmVsZ2l1bSkKLSswMDoxMTowNyAgUmdiIE5ldHdvcmtzIEluYy4KLSswMDoxMTowOCAg T3JiaXRhbCBEYXRhIENvcnBvcmF0aW9uCi0rMDA6MTE6MDkgIE1pY3JvLVN0YXIgSW50ZXJuYXRp b25hbAotKzAwOjExOjBBICBIZXdsZXR0IFBhY2thcmQKLSswMDoxMTowQiAgRnJhbmtsaW4gVGVj aG5vbG9neSBTeXN0ZW1zCi0rMDA6MTE6MEMgIEF0bWFyayBUZWNobm8sIEluYy4KLSswMDoxMTow RCAgU2FuYmxhemUgVGVjaG5vbG9neSwgSW5jLgotKzAwOjExOjBFICBUc3VydXNha2kgU2VhbGFu ZCBUcmFuc3BvcnRhdGlvbiBDby4gTHRkLgotKzAwOjExOjBGICBOZXRwbGF0LEluYy4KLSswMDox MToxMCAgTWF4YW5uYSBUZWNobm9sb2d5IENvLiwgTHRkLgotKzAwOjExOjExICBJbnRlbCBDb3Jw b3JhdGlvbgotKzAwOjExOjEyICBIb25leXdlbGwgQ21zcwotKzAwOjExOjEzICBGcmF1bmhvZmVy IEZva3VzCi0rMDA6MTE6MTQgIEV2ZXJmb2N1cyBFbGVjdHJvbmljcyBDb3JwLgotKzAwOjExOjE1 ICBFcGluIFRlY2hub2xvZ2llcywgSW5jLgotKzAwOjExOjE2ICBDb3RlYXUgVmVydCBDby4sIEx0 ZC4KLSswMDoxMToxNyAgQ2VzbmV0Ci0rMDA6MTE6MTggIEJseCBJYyBEZXNpZ24gQ29ycC4sIEx0 ZC4KLSswMDoxMToxOSAgU29sdGVyYXMsIEluYy4KLSswMDoxMToxQSAgTW90b3JvbGEgQmNzCi0r MDA6MTE6MUIgIFRhcmdhIFN5c3RlbXMgRGl2IEwtMyBDb21tdW5pY2F0aW9ucyBDYW5hZGEKLSsw MDoxMToxQyAgUGxlb3JhIFRlY2hub2xvZ2llcyBJbmMuCi0rMDA6MTE6MUQgIEhlY3RyaXggTGlt aXRlZAotKzAwOjExOjFFICBFcHNnIChFdGhlcm5ldCBQb3dlcmxpbmsgU3RhbmRhcmRpemF0aW9u IEdyb3VwKQotKzAwOjExOjFGICBEb3JlbWkgTGFicywgSW5jLgotKzAwOjExOjIwICBDaXNjbyBT eXN0ZW1zCi0rMDA6MTE6MjEgIENpc2NvIFN5c3RlbXMKLSswMDoxMToyMiAgQ2ltc3lzIEluYwot KzAwOjExOjIzICBBcHBvaW50ZWNoLCBJbmMuCi0rMDA6MTE6MjQgIEFwcGxlIENvbXB1dGVyCi0r MDA6MTE6MjUgIElibSBDb3Jwb3JhdGlvbgotKzAwOjExOjI2ICBWZW5zdGFyIEluYy4KLSswMDox MToyNyAgVGFzaSwgSW5jCi0rMDA6MTE6MjggIFN0cmVhbWl0Ci0rMDA6MTE6MjkgIFBhcmFkaXNl IERhdGFjb20gTHRkLgotKzAwOjExOjJBICBOaWtvIE52Ci0rMDA6MTE6MkIgIE5ldG1vZHVsZQot KzAwOjExOjJDICBJenQgR21iaAotKzAwOjExOjJEICBHdXlzIFdpdGhvdXQgVGllcwotKzAwOjEx OjJFICBDZWljb20KLSswMDoxMToyRiAgQXN1c3RlayBDb21wdXRlciBJbmMuCi0rMDA6MTE6MzAg IEFsbGllZCBUZWxlc2lzIChIb25nIEtvbmcpIEx0ZC4KLSswMDoxMTozMSAgVW5hdGVjaC4gQ28u LEx0ZAotKzAwOjExOjMyICBTeW5vbG9neSBJbmNvcnBvcmF0ZWQKLSswMDoxMTozMyAgU2llbWVu cyBBdXN0cmlhIFNpbWVhCi0rMDA6MTE6MzQgIE1lZGlhY2VsbCwgSW5jLgotKzAwOjExOjM1ICBH cmFuZGV5ZSBMdGQKLSswMDoxMTozNiAgR29vZHJpY2ggU2Vuc29yIFN5c3RlbXMKLSswMDoxMToz NyAgQWljaGkgRWxlY3RyaWMgQ28uLCBMdGQuCi0rMDA6MTE6MzggIFRhaXNoaW4gQ28uLCBMdGQu Ci0rMDA6MTE6MzkgIFN0b2ViZXIgQW50cmllYnN0ZWNobmlrIEdtYmggKyBDby4gS2cuCi0rMDA6 MTE6M0EgIFNoaW5ib3JhbQotKzAwOjExOjNCICBNaWNyb25ldCBDb21tdW5pY2F0aW9ucyBJbmMu Ci0rMDA6MTE6M0MgIE1pY3JvbmFzIEdtYmgKLSswMDoxMTozRCAgS24gU29sdGVjIENvLixMdGQu Ci0rMDA6MTE6M0UgIEpsIENvcnBvcmF0aW9uCi0rMDA6MTE6M0YgIEFsY2F0ZWwgRGkKLSswMDox MTo0MCAgTmFub21ldHJpY3MgSW5jLgotKzAwOjExOjQxICBHb29kbWFuIENvcnBvcmF0aW9uCi0r MDA6MTE6NDIgIEUtU21hcnRjb20gIEluYy4KLSswMDoxMTo0MyAgRGVsbCBJbmMuICAgKFd3IFBj YmEgVGVzdCkKLSswMDoxMTo0NCAgQXNzdXJhbmNlIFRlY2hub2xvZ3kgQ29ycAotKzAwOjExOjQ1 ICBWYWx1ZXBvaW50IE5ldHdvcmtzCi0rMDA6MTE6NDYgIFByaXZhdGUKLSswMDoxMTo0NyAgU2Vj b20tSW5kdXN0cnkgQ28uTHRkLgotKzAwOjExOjQ4ICBQcm9sb24gQ29udHJvbCBTeXN0ZW1zCi0r MDA6MTE6NDkgIFByb2xpcGhpeCBMbGMKLSswMDoxMTo0QSAgS2F5YWJhIEluZHVzdHJ5IENvLC5M dGQuCi0rMDA6MTE6NEIgIEZyYW5jb3R5cC1Qb3N0YWxpYSBBZyAmIENvLiBLZwotKzAwOjExOjRD ICBDYWZmZWluYSBBcHBsaWVkIFJlc2VhcmNoIEx0ZC4KLSswMDoxMTo0RCAgQXRzdW1pIEVsZWN0 cmljIENvLixMdGQuCi0rMDA6MTE6NEUgIDY5MDg4NSBPbnRhcmlvIEluYy4KLSswMDoxMTo0RiAg VXMgRGlnaXRhbCBUZWxldmlzaW9uLCBJbmMKLSswMDoxMTo1MCAgQmVsa2luIENvcnBvcmF0aW9u Ci0rMDA6MTE6NTEgIE15a290cm9ueAotKzAwOjExOjUyICBFaWRzdm9sbCBFbGVjdHJvbmljcyBB cwotKzAwOjExOjUzICBUcmlkZW50IFRlaywgSW5jLgotKzAwOjExOjU0ICBXZWJwcm8gVGVjaG5v bG9naWVzIEluYy4KLSswMDoxMTo1NSAgU2V2aXMgU3lzdGVtcwotKzAwOjExOjU2ICBQaGFyb3Mg U3lzdGVtcyBOegotKzAwOjExOjU3ICBPZiBOZXR3b3JrcyBDby4sIEx0ZC4KLSswMDoxMTo1OCAg Tm9ydGVsIE5ldHdvcmtzCi0rMDA6MTE6NTkgIE1hdGlzc2UgTmV0d29ya3MgSW5jCi0rMDA6MTE6 NUEgIEl2b2NsYXIgVml2YWRlbnQgQWcKLSswMDoxMTo1QiAgRWxpdGVncm91cCBDb21wdXRlciBT eXN0ZW0gQ28uIChFY3MpCi0rMDA6MTE6NUMgIENpc2NvCi0rMDA6MTE6NUQgIENpc2NvCi0rMDA6 MTE6NUUgIFByb21pbmVudCBEb3NpZXJ0ZWNobmlrIEdtYmgKLSswMDoxMTo1RiAgSW50ZWxsaXgg Q28uLCBMdGQuCi0rMDA6MTE6NjAgIEFydGRpbyBDb21wYW55IENvLiwgTHRkCi0rMDA6MTE6NjEg IE5ldHN0cmVhbXMsIExsYwotKzAwOjExOjYyICBTdGFyIE1pY3JvbmljcyBDby4sTHRkLgotKzAw OjExOjYzICBTeXN0ZW0gU3BhIERlcHQuIEVsZWN0cm9uaWNzCi0rMDA6MTE6NjQgIEFjYXJkIFRl Y2hub2xvZ3kgQ29ycC4KLSswMDoxMTo2NSAgWm55eCBOZXR3b3JrcwotKzAwOjExOjY2ICBUYWVs aW0gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCi0rMDA6MTE6NjcgIEludGVncmF0ZWQgU3lzdGVtIFNv bHV0aW9uIENvcnAuCi0rMDA6MTE6NjggIEhvbWVsb2dpYyBMbGMKLSswMDoxMTo2OSAgRW1zIFNh dGNvbQotKzAwOjExOjZBICBEb21vIEx0ZAotKzAwOjExOjZCICBEaWdpdGFsIERhdGEgQ29tbXVu aWNhdGlvbnMgQXNpYSBDby4sTHRkCi0rMDA6MTE6NkMgIE5hbndhbmcgTXVsdGltZWRpYSBJbmMu LEx0ZAotKzAwOjExOjZEICBBbWVyaWNhbiBUaW1lIEFuZCBTaWduYWwKLSswMDoxMTo2RSAgUGVw bGluayBMdGQuCi0rMDA6MTE6NkYgIE5ldGZvcnlvdSBDby4sIEx0ZC4KLSswMDoxMTo3MCAgR3Nj IFNybAotKzAwOjExOjcxICBEZXh0ZXIgQ29tbXVuaWNhdGlvbnMsIEluYy4KLSswMDoxMTo3MiAg Q290cm9uIENvcnBvcmF0aW9uCi0rMDA6MTE6NzMgIEFkdHJvbiBDb3Jwb3JhdGlvbgotKzAwOjEx Ojc0ICBXaWJodSBUZWNobm9sb2dpZXMsIEluYy4KLSswMDoxMTo3NSAgUGF0aHNjYWxlLCBJbmMu Ci0rMDA6MTE6NzYgIEludGVsbGFtYmRhIFN5c3RlbXMsIEluYy4KLSswMDoxMTo3NyAgQ29heGlh bCBOZXR3b3JrcywgSW5jLgotKzAwOjExOjc4ICBDaGlyb24gVGVjaG5vbG9neSBMdGQKLSswMDox MTo3OSAgU2luZ3VsYXIgVGVjaG5vbG9neSBDby4gTHRkLgotKzAwOjExOjdBICBTaW5naW0gSW50 ZXJuYXRpb25hbCBDb3JwLgotKzAwOjExOjdCICBC77+9Y2hpIExhYm9ydGVjaG5payBBZwotKzAw OjExOjdDICBFLVp5Lk5ldAotKzAwOjExOjdEICBabWQgQW1lcmljYSwgSW5jLgotKzAwOjExOjdF ICBQcm9nZW55IEluYy4KLSswMDoxMTo3RiAgTmVvdHVuZSBJbmZvcm1hdGlvbiBUZWNobm9sb2d5 IENvcnBvcmF0aW9uLC5MdGQKLSswMDoxMTo4MCAgTW90b3JvbGEgQmNzCi0rMDA6MTE6ODEgIElu dGVyZW5lcmd5IENvLkx0ZCwKLSswMDoxMTo4MiAgSW1pIE5vcmdyZW4gTHRkCi0rMDA6MTE6ODMg IFBzYyBTY2FubmluZywgSW5jCi0rMDA6MTE6ODQgIEh1bW8gTGFib3JhdG9yeSxMdGQuCi0rMDA6 MTE6ODUgIEhld2xldHQgUGFja2FyZAotKzAwOjExOjg2ICBQcmltZSBTeXN0ZW1zLCBJbmMuCi0r MDA6MTE6ODcgIENhdGVnb3J5IFNvbHV0aW9ucywgSW5jCi0rMDA6MTE6ODggIEVudGVyYXN5cwot KzAwOjExOjg5ICBBZXJvdGVjaCBJbmMKLSswMDoxMTo4QSAgVmlld3RyYW4gVGVjaG5vbG9neSBM aW1pdGVkCi0rMDA6MTE6OEIgIE5ldGRldmljZXMgSW5jLgotKzAwOjExOjhDICBNaXNzb3VyaSBE ZXBhcnRtZW50IE9mIFRyYW5zcG9ydGF0aW9uCi0rMDA6MTE6OEQgIEhhbmNoYW5nIFN5c3RlbSBD b3JwLgotKzAwOjExOjhFICBIYWx5dGVjaCBNYWNlCi0rMDA6MTE6OEYgIEV1dGVjaCBJbnN0cnVt ZW50cyBQdGUuIEx0ZC4KLSswMDoxMTo5MCAgRGlnaXRhbCBEZXNpZ24gQ29ycG9yYXRpb24KLSsw MDoxMTo5MSAgQ3RzLUNsaW1hIFRlbXBlcmF0dXIgU3lzdGVtZSBHbWJoCi0rMDA6MTE6OTIgIENp c2NvIFN5c3RlbXMKLSswMDoxMTo5MyAgQ2lzY28gU3lzdGVtcwotKzAwOjExOjk0ICBDaGkgTWVp IENvbW11bmljYXRpb24gU3lzdGVtcywgSW5jLgotKzAwOjExOjk1ICBBbHBoYSBOZXR3b3JrcyBJ bmMuCi0rMDA6MTE6OTYgIEFjdHVhbGl0eSBTeXN0ZW1zLCBJbmMuCi0rMDA6MTE6OTcgIE1vbml0 b3JpbmcgVGVjaG5vbG9naWVzIExpbWl0ZWQKLSswMDoxMTo5OCAgUHJpc20gTWVkaWEgUHJvZHVj dHMgTGltaXRlZAotKzAwOjExOjk5ICAyV2NvbSBHbWJoCi0rMDA6MTE6OUEgIEFsa2VyaWEgU3Js Ci0rMDA6MTE6OUIgIFRlbGVzeW5lcmd5IFJlc2VhcmNoIEluYy4KLSswMDoxMTo5QyAgRXAmVCBF bmVyZ3kKLSswMDoxMTo5RCAgRGlnaW5mbyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCi0rMDA6MTE6 OUUgIFNvbGVjdHJvbiBCcmF6aWwKLSswMDoxMTo5RiAgTm9raWEgRGFubWFyayBBL1MKLSswMDox MTpBMCAgVnRlY2ggRW5naW5lZXJpbmcgQ2FuYWRhIEx0ZAotKzAwOjExOkExICBWaXNpb24gTmV0 d2FyZSBDby4sTHRkCi0rMDA6MTE6QTIgIE1hbnVmYWN0dXJpbmcgVGVjaG5vbG9neSBJbmMKLSsw MDoxMTpBMyAgTGFucmVhZHkgVGVjaG5vbG9naWVzIEluYy4KLSswMDoxMTpBNCAgSnN0cmVhbSBU ZWNobm9sb2dpZXMgSW5jLgotKzAwOjExOkE1ICBGb3J0dW5hIEVsZWN0cm9uaWMgQ29ycC4KLSsw MDoxMTpBNiAgU3lwaXh4IE5ldHdvcmtzCi0rMDA6MTE6QTcgIEluZmlsY28gRGVncmVtb250IElu Yy4KLSswMDoxMTpBOCAgUXVlc3QgVGVjaG5vbG9naWVzCi0rMDA6MTE6QTkgIE1vaW1zdG9uZSBD by4sIEx0ZAotKzAwOjExOkFBICBVbmljbGFzcyBUZWNobm9sb2d5LCBDby4sIEx0ZAotKzAwOjEx OkFCICBUcnVzdGFibGUgVGVjaG5vbG9neSBDby4sTHRkLgotKzAwOjExOkFDICBTaW10ZWMgRWxl Y3Ryb25pY3MKLSswMDoxMTpBRCAgU2hhbmdoYWkgUnVpamllIFRlY2hub2xvZ3kKLSswMDoxMTpB RSAgTW90b3JvbGEgQmNzCi0rMDA6MTE6QUYgIE1lZGlhbGluay1JLEluYwotKzAwOjExOkIwICBG b3J0ZWxpbmsgSW5jLgotKzAwOjExOkIxICBCbHVlZXhwZXJ0IFRlY2hub2xvZ3kgQ29ycC4KLSsw MDoxMTpCMiAgMjAwMSBUZWNobm9sb2d5IEluYy4KLSswMDoxMTpCMyAgWW9zaGltaXlhIENvLixM dGQuCi0rMDA6MTE6QjQgIFdlc3Rlcm1vIFRlbGVpbmR1c3RyaSBBYgotKzAwOjExOkI1ICBTaGVu emhlbiBQb3dlcmNvbSBDby4sTHRkCi0rMDA6MTE6QjYgIE9wZW4gU3lzdGVtcyBJbnRlcm5hdGlv bmFsCi0rMDA6MTE6QjcgIE1lbGV4aXMgTmVkZXJsYW5kIEIuVi4KLSswMDoxMTpCOCAgTGllYmhl cnIgLSBFbGVrdHJvbmlrIEdtYmgKLSswMDoxMTpCOSAgSW5uZXIgUmFuZ2UgUHR5LiBMdGQuCi0r MDA6MTE6QkEgIEVsZXhvbCBQdHkgTHRkCi0rMDA6MTE6QkIgIENpc2NvIFN5c3RlbXMKLSswMDox MTpCQyAgQ2lzY28gU3lzdGVtcwotKzAwOjExOkJEICBCb21iYXJkaWVyIFRyYW5zcG9ydGF0aW9u Ci0rMDA6MTE6QkUgIEFncCBUZWxlY29tIENvLiBMdGQKLSswMDoxMTpCRiAgQWVzeXMgUy5QLkEu Ci0rMDA6MTE6QzAgIEFkYXkgVGVjaG5vbG9neSBJbmMKLSswMDoxMTpDMSAgNFAgTW9iaWxlIERh dGEgUHJvY2Vzc2luZwotKzAwOjExOkMyICBVbml0ZWQgRmliZXIgT3B0aWMgQ29tbXVuaWNhdGlv bgotKzAwOjExOkMzICBUcmFuc2NlaXZpbmcgU3lzdGVtIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24K LSswMDoxMTpDNCAgVGVybWluYWxlcyBEZSBUZWxlY29tdW5pY2FjaW9uIFRlcnJlc3RyZSwgUy5M LgotKzAwOjExOkM1ICBUZW4gVGVjaG5vbG9neQotKzAwOjExOkM2ICBTZWFnYXRlIFRlY2hub2xv Z3kgTGxjCi0rMDA6MTE6QzcgIFJheW1hcmluZSBHcm91cCBMdGQuCi0rMDA6MTE6QzggIFBvd2Vy Y29tIENvLiwgTHRkLgotKzAwOjExOkM5ICBNdHQgQ29ycG9yYXRpb24KLSswMDoxMTpDQSAgTG9u ZyBSYW5nZSBTeXN0ZW1zLCBJbmMuCi0rMDA6MTE6Q0IgIEphY29ic29ucyBSa2ggQWIKLSswMDox MTpDQyAgR3Vhbmd6aG91IEppbnBlbmcgR3JvdXAgQ28uLEx0ZC4KLSswMDoxMTpDRCAgQXhzdW4g VGVjaG5vbG9naWVzCi0rMDA6MTE6Q0UgIFViaXNlbnNlIExpbWl0ZWQKLSswMDoxMTpDRiAgVGhy YW5lICYgVGhyYW5lIEEvUwotKzAwOjExOkQwICBUYW5kYmVyZyBEYXRhIEFzYQotKzAwOjExOkQx ICBTb2Z0IEltYWdpbmcgU3lzdGVtIEdtYmgKLSswMDoxMTpEMiAgUGVyY2VwdGlvbiBEaWdpdGFs IEx0ZAotKzAwOjExOkQzICBOZXh0Z2VudGVsIEhvbGRpbmcgQXNhCi0rMDA6MTE6RDQgIE5ldGVu cmljaCwgSW5jCi0rMDA6MTE6RDUgIEhhbmd6aG91IFN1bnlhcmQgU3lzdGVtIEVuZ2luZWVyaW5n IENvLixMdGQuCi0rMDA6MTE6RDYgIEhhbmRlcmEsIEluYy4KLSswMDoxMTpENyAgRXdlcmtzIElu YwotKzAwOjExOkQ4ICBBc3VzdGVrIENvbXB1dGVyIEluYy4KLSswMDoxMTpEOSAgVGl2bwotKzAw OjExOkRBICBWaXZhYXMgVGVjaG5vbG9neSBJbmMuCi0rMDA6MTE6REIgIExhbmQtQ2VsbHVsYXIg Q29ycG9yYXRpb24KLSswMDoxMTpEQyAgR2x1bnogJiBKZW5zZW4KLSswMDoxMTpERCAgRnJvbXVz IFRlYy4gQ28uLCBMdGQuCi0rMDA6MTE6REUgIEV1cmlsb2dpYwotKzAwOjExOkRGICBBcmVjb250 IFN5c3RlbXMKLSswMDoxMTpFMCAgVS1NZWRpYSBDb21tdW5pY2F0aW9ucywgSW5jLgotKzAwOjEx OkUxICBCZWtvIEVsZWN0cm9uaWNzIENvLgotKzAwOjExOkUyICBIdWEgSnVuZyBDb21wb25lbnRz IENvLiwgTHRkLgotKzAwOjExOkUzICBCcm9hZGJhbmQgQWNjZXNzIFByb2R1Y3RzCi0rMDA6MTE6 RTQgIERhbmVsZWMgRWxlY3Ryb25pY3MgQS9TCi0rMDA6MTE6RTUgIEtjb2RlcyBDb3Jwb3JhdGlv bgotKzAwOjExOkU2ICBTY2llbnRpZmljIEF0bGFudGEKLSswMDoxMTpFNyAgV29ybGRzYXQgLSBU ZXhhcyBEZSBGcmFuY2UKLSswMDoxMTpFOCAgVGl4aS5Db20KLSswMDoxMTpFOSAgU3Rhcm5leCBD by4sIEx0ZC4KLSswMDoxMTpFQSAgSXdpY3MgSW5jLgotKzAwOjExOkVCICBJbm5vdmF0aXZlIElu dGVncmF0aW9uCi0rMDA6MTE6RUMgIEF2aXggSW5jLgotIDAwOjFDOjdDICBQZXJxIFN5c3RlbXMg Q29ycG9yYXRpb24KLSAwMDoyMDowMCAgTGV4bWFyayBJbnRlcm5hdGlvbmFsLCBJbmMuCi0gMDA6 MjA6MDEgIERzcCBTb2x1dGlvbnMsIEluYy4KLSAwMDoyMDowMiAgU2VyaXRlY2ggRW50ZXJwcmlz ZSBDby4sIEx0ZC4KLSAwMDoyMDowMyAgUGl4ZWwgUG93ZXIgTHRkLgotLTAwOjIwOjA0ICBZYW1h dGFrZS1ob25leXdlbGwgQ28uLCBMdGQuCi0rMDA6MjA6MDQgIFlhbWF0YWtlLUhvbmV5d2VsbCBD by4sIEx0ZC4KLSAwMDoyMDowNSAgU2ltcGxlIFRlY2hub2xvZ3kKLSAwMDoyMDowNiAgR2FycmV0 dCBDb21tdW5pY2F0aW9ucywgSW5jLgotIDAwOjIwOjA3ICBTZmEsIEluYy4KLSAwMDoyMDowOCAg Q2FibGUgJiBDb21wdXRlciBUZWNobm9sb2d5Ci0gMDA6MjA6MDkgIFBhY2thcmQgQmVsbCBFbGVj LiwgSW5jLgotLTAwOjIwOjBBICBTb3VyY2UtY29tbSBDb3JwLgotKzAwOjIwOjBBICBTb3VyY2Ut Q29tbSBDb3JwLgotIDAwOjIwOjBCICBPY3RhZ29uIFN5c3RlbXMgQ29ycC4KLSAwMDoyMDowQyAg QWRhc3RyYSBTeXN0ZW1zIENvcnAuCi0gMDA6MjA6MEQgIENhcmwgWmVpc3MKLUBAIC0zMzE0LDgg KzQ1OTQsOCBAQAotIDAwOjIwOjE3ICBPcmJvdGVjaAotIDAwOjIwOjE4ICBDaXMgVGVjaG5vbG9n eSBJbmMuCi0gMDA6MjA6MTkgIE9obGVyIEdtYmgKLS0wMDoyMDoxQSAgTi1iYXNlIFN3aXRjaCBD b21tdW5pY2F0aW9ucwotLTAwOjIwOjFCICBOb3J0aGVybiBUZWxlY29tL25ldHdvcmsKLSswMDoy MDoxQSAgTXJ2IENvbW11bmljYXRpb25zLCBJbmMuCi0rMDA6MjA6MUIgIE5vcnRoZXJuIFRlbGVj b20vTmV0d29yawotIDAwOjIwOjFDICBFeGNlbCwgSW5jLgotIDAwOjIwOjFEICBLYXRhbmEgUHJv ZHVjdHMKLSAwMDoyMDoxRSAgTmV0cXVlc3QgQ29ycG9yYXRpb24KLUBAIC0zMzIzLDE0ICs0NjAz LDE0IEBACi0gMDA6MjA6MjAgIE1lZ2F0cm9uIENvbXB1dGVyIEluZHVzdHJpZXMgUHR5LCBMdGQu Ci0gMDA6MjA6MjEgIEFsZ29yaXRobXMgU29mdHdhcmUgUHZ0LiBMdGQuCi0gMDA6MjA6MjIgIFRl a25pcXVlLCBJbmMuCi0tMDA6MjA6MjMgIFQuYy4gVGVjaG5vbG9naWVzIFB0eS4gTHRkCi0rMDA6 MjA6MjMgIFQuQy4gVGVjaG5vbG9naWVzIFB0eS4gTHRkCi0gMDA6MjA6MjQgIFBhY2lmaWMgQ29t bXVuaWNhdGlvbiBTY2llbmNlcwotIDAwOjIwOjI1ICBDb250cm9sIFRlY2hub2xvZ3ksIEluYy4K LSAwMDoyMDoyNiAgQW1rbHkgU3lzdGVtcywgSW5jLgotIDAwOjIwOjI3ICBNaW5nIEZvcnR1bmUg SW5kdXN0cnkgQ28uLCBMdGQKLSAwMDoyMDoyOCAgV2VzdCBFZ2cgU3lzdGVtcywgSW5jLgotIDAw OjIwOjI5ICBUZWxlcHJvY2Vzc2luZyBQcm9kdWN0cywgSW5jLgotLTAwOjIwOjJBICBOLnYuIER6 aW5lCi0rMDA6MjA6MkEgIE4uVi4gRHppbmUKLSAwMDoyMDoyQiAgQWR2YW5jZWQgVGVsZWNvbW11 bmljYXRpb25zIE1vZHVsZXMsIEx0ZC4KLSAwMDoyMDoyQyAgV2VsbHRyb25peCBDby4sIEx0ZC4K LSAwMDoyMDoyRCAgVGFpeW8gQ29ycG9yYXRpb24KLUBAIC0zMzQ2LDcgKzQ2MjYsNyBAQAotIDAw OjIwOjM3ICBTZWFnYXRlIFRlY2hub2xvZ3kKLSAwMDoyMDozOCAgVm1lIE1pY3Jvc3lzdGVtcyBJ bnRlcm5hdGlvbmFsIENvcnBvcmF0aW9uCi0gMDA6MjA6MzkgIFNjaW5ldHMKLS0wMDoyMDozQSAg RGlnaXRhbCBCaTBtZXRyaWNzIEluYy4KLSswMDoyMDozQSAgRGlnaXRhbCBCaTBNZXRyaWNzIElu Yy4KLSAwMDoyMDozQiAgV2lzZG0gTHRkLgotIDAwOjIwOjNDICBFdXJvdGltZSBBYgotIDAwOjIw OjNEICBOb3ZhciBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgotQEAgLTMzNjksNyArNDY0OSw3IEBA Ci0gMDA6MjA6NEUgIE5ldHdvcmsgU2VjdXJpdHkgU3lzdGVtcywgSW5jLgotIDAwOjIwOjRGICBE ZXV0c2NoZSBBZXJvc3BhY2UgQWcKLSAwMDoyMDo1MCAgS29yZWEgQ29tcHV0ZXIgSW5jLgotLTAw OjIwOjUxICBQaG9lbml4IERhdGEgQ29tbXVudW5pY2F0aW9ucwotKzAwOjIwOjUxICBWZXJpbGlu ayBDb3Jwb3JhdGlvbgotIDAwOjIwOjUyICBSYWd1bGEgU3lzdGVtcwotIDAwOjIwOjUzICBIdW50 c3ZpbGxlIE1pY3Jvc3lzdGVtcywgSW5jLgotIDAwOjIwOjU0ICBFYXN0ZXJuIFJlc2VhcmNoLCBJ bmMuCi1AQCAtMzM3OSwxMiArNDY1OSwxMiBAQAotIDAwOjIwOjU4ICBBbGxpZWQgU2lnbmFsIElu Yy4KLSAwMDoyMDo1OSAgTWlybyBDb21wdXRlciBQcm9kdWN0cyBBZwotIDAwOjIwOjVBICBDb21w dXRlciBJZGVudGljcwotLTAwOjIwOjVCICBTa3lsaW5lIFRlY2hub2xvZ3kKLSswMDoyMDo1QiAg S2VudHJveCwgTGxjCi0gMDA6MjA6NUMgIEludGVybmV0IFN5c3RlbXMgT2YgRmxvcmlkYSwgSW5j LgotIDAwOjIwOjVEICBOYW5vbWF0aWMgT3kKLSAwMDoyMDo1RSAgQ2FzdGxlIFJvY2ssIEluYy4K LSAwMDoyMDo1RiAgR2FtbWFkYXRhIENvbXB1dGVyIEdtYmgKLS0wMDoyMDo2MCAgQWxjYXRlbCBJ dGFsaWEgUy5wLmEuCi0rMDA6MjA6NjAgIEFsY2F0ZWwgSXRhbGlhIFMuUC5BLgotIDAwOjIwOjYx ICBEeW5hdGVjaCBDb21tdW5pY2F0aW9ucywgSW5jLgotIDAwOjIwOjYyICBTY29ycGlvbiBMb2dp YywgTHRkLgotIDAwOjIwOjYzICBXaXBybyBJbmZvdGVjaCBMdGQuCi1AQCAtMzM5NSw3ICs0Njc1 LDcgQEAKLSAwMDoyMDo2OCAgSXNkeW5lCi0gMDA6MjA6NjkgIElzZG4gU3lzdGVtcyBDb3Jwb3Jh dGlvbgotIDAwOjIwOjZBICBPc2FrYSBDb21wdXRlciBDb3JwLgotLTAwOjIwOjZCICBNaW5vbHRh IENhbWVyYSBDby4sIEx0ZC4KLSswMDoyMDo2QiAgS29uaWNhIE1pbm9sdGEgSG9sZGluZ3MsIElu Yy4KLSAwMDoyMDo2QyAgRXZlcmdyZWVuIFRlY2hub2xvZ3kgQ29ycC4KLSAwMDoyMDo2RCAgRGF0 YSBSYWNlLCBJbmMuCi0gMDA6MjA6NkUgIFhhY3QsIEluYy4KLUBAIC0zNDE2LDcgKzQ2OTYsNyBA QAotIDAwOjIwOjdEICBBZHZhbmNlZCBDb21wdXRlciBBcHBsaWNhdGlvbnMKLSAwMDoyMDo3RSAg RmluZWNvbSBDby4sIEx0ZC4KLSAwMDoyMDo3RiAgS3lvZWkgU2FuZ3lvIENvLiwgTHRkLgotLTAw OjIwOjgwICBTeW5lcmd5ICh1aykgTHRkLgotKzAwOjIwOjgwICBTeW5lcmd5IChVaykgTHRkLgot IDAwOjIwOjgxICBUaXRhbiBFbGVjdHJvbmljcwotIDAwOjIwOjgyICBPbmVhYyBDb3Jwb3JhdGlv bgotIDAwOjIwOjgzICBQcmVzdGljb20gSW5jb3Jwb3JhdGVkCi1AQCAtMzQyNSw3ICs0NzA1LDcg QEAKLSAwMDoyMDo4NiAgTWljcm90ZWNoIEVsZWN0cm9uaWNzIExpbWl0ZWQKLSAwMDoyMDo4NyAg TWVtb3RlYyBDb21tdW5pY2F0aW9ucyBDb3JwLgotIDAwOjIwOjg4ICBHbG9iYWwgVmlsbGFnZSBD b21tdW5pY2F0aW9uCi0tMDA6MjA6ODkgIFQzcGx1cyBOZXR3b3JraW5nLCBJbmMuCi0rMDA6MjA6 ODkgIFQzUGx1cyBOZXR3b3JraW5nLCBJbmMuCi0gMDA6MjA6OEEgIFNvbml4IENvbW11bmljYXRp b25zLCBMdGQuCi0gMDA6MjA6OEIgIExhcGlzIFRlY2hub2xvZ2llcywgSW5jLgotIDAwOjIwOjhD ICBHYWxheHkgTmV0d29ya3MsIEluYy4KLUBAIC0zNDM0LDcgKzQ3MTQsNyBAQAotIDAwOjIwOjhG ICBFY2kgVGVsZWNvbSBMdGQuCi0gMDA6MjA6OTAgIEFkdmFuY2VkIENvbXByZXNzaW9uIFRlY2hu b2xvZ3ksIEluYy4KLSAwMDoyMDo5MSAgSjEyNSwgTmF0aW9uYWwgU2VjdXJpdHkgQWdlbmN5Ci0t MDA6MjA6OTIgIENoZXNzIEVuZ2luZWVyaW5nIEIudi4KLSswMDoyMDo5MiAgQ2hlc3MgRW5naW5l ZXJpbmcgQi5WLgotIDAwOjIwOjkzICBMYW5kaW5ncyBUZWNobm9sb2d5IENvcnAuCi0gMDA6MjA6 OTQgIEN1Yml4IENvcnBvcmF0aW9uCi0gMDA6MjA6OTUgIFJpdmEgRWxlY3Ryb25pY3MKLUBAIC0z NDQyLDcgKzQ3MjIsNyBAQAotIDAwOjIwOjk3ICBBcHBsaWVkIFNpZ25hbCBUZWNobm9sb2d5Ci0g MDA6MjA6OTggIEhlY3Ryb25pYyBBYgotIDAwOjIwOjk5ICBCb24gRWxlY3RyaWMgQ28uLCBMdGQu Ci0tMDA6MjA6OUEgIFRoZSAzZG8gQ29tcGFueQotKzAwOjIwOjlBICBUaGUgM0RvIENvbXBhbnkK LSAwMDoyMDo5QiAgRXJzYXQgRWxlY3Ryb25pYyBHbWJoCi0gMDA6MjA6OUMgIFByaW1hcnkgQWNj ZXNzIENvcnAuCi0gMDA6MjA6OUQgIExpcHBlcnQgQXV0b21hdGlvbnN0ZWNobmlrCi1AQCAtMzQ2 Myw3ICs0NzQzLDcgQEAKLSAwMDoyMDpBQyAgSW50ZXJmbGV4IERhdGVuc3lzdGVtZSBHbWJoCi0g MDA6MjA6QUQgIExpbnEgU3lzdGVtcwotIDAwOjIwOkFFICBPcm5ldCBEYXRhIENvbW11bmljYXRp b24gVGVjaC4KLS0wMDoyMDpBRiAgM2NvbSBDb3Jwb3JhdGlvbgotKzAwOjIwOkFGICAzQ29tIENv cnBvcmF0aW9uCi0gMDA6MjA6QjAgIEdhdGV3YXkgRGV2aWNlcywgSW5jLgotIDAwOjIwOkIxICBD b210ZWNoIFJlc2VhcmNoIEluYy4KLSAwMDoyMDpCMiAgR2tkIEdlc2VsbHNjaGFmdCBGdXIgS29t bXVuaWthdGlvbiBVbmQgRGF0ZW50ZWNobmlrCi1AQCAtMzQ3Niw3ICs0NzU2LDcgQEAKLSAwMDoy MDpCOSAgTWV0cmljb20sIEluYy4KLSAwMDoyMDpCQSAgQ2VudGVyIEZvciBIaWdoIFBlcmZvcm1h bmNlCi0gMDA6MjA6QkIgIFpheCBDb3Jwb3JhdGlvbgotLTAwOjIwOkJDICBKdGVjIFB0eSBMdGQu Ci0rMDA6MjA6QkMgIExvbmcgUmVhY2ggTmV0d29ya3MgUHR5IEx0ZAotIDAwOjIwOkJEICBOaW9i cmFyYSBSICYgRCBDb3Jwb3JhdGlvbgotIDAwOjIwOkJFICBMYW4gQWNjZXNzIENvcnAuCi0gMDA6 MjA6QkYgIEFlaHIgVGVzdCBTeXN0ZW1zCi1AQCAtMzQ4NCwxMCArNDc2NCwxMCBAQAotIDAwOjIw OkMxICBUYWlrbyBFbGVjdHJpYyBXb3JrcywgTHRkLgotIDAwOjIwOkMyICBUZXhhcyBNZW1vcnkg U3lzdGVtcywgSW5jLgotIDAwOjIwOkMzICBDb3VudGVyIFNvbHV0aW9ucyBMdGQuCi0tMDA6MjA6 QzQgIEluZXQsaW5jLgotKzAwOjIwOkM0ICBJbmV0LEluYy4KLSAwMDoyMDpDNSAgRWFnbGUgVGVj aG5vbG9neQotIDAwOjIwOkM2ICBOZWN0ZWMKLS0wMDoyMDpDNyAgQWthaSBQcm9mZXNzaW9uYWwg TS5pLiBDb3JwLgotKzAwOjIwOkM3ICBBa2FpIFByb2Zlc3Npb25hbCBNLkkuIENvcnAuCi0gMDA6 MjA6QzggIExhcnNjb20gSW5jb3Jwb3JhdGVkCi0gMDA6MjA6QzkgIFZpY3Ryb24gQnYKLSAwMDoy MDpDQSAgRGlnaXRhbCBPY2VhbgotQEAgLTM0OTcsMzUgKzQ3NzcsMzUgQEAKLSAwMDoyMDpDRSAg TG9naWNhbCBEZXNpZ24gR3JvdXAsIEluYy4KLSAwMDoyMDpDRiAgVGVzdCAmIE1lYXN1cmVtZW50 IFN5c3RlbXMgSW5jCi0gMDA6MjA6RDAgIFZlcnNhbHlueCBDb3Jwb3JhdGlvbgotLTAwOjIwOkQx ICBNaWNyb2NvbXB1dGVyIFN5c3RlbXMgKG0pIFNkbi4KLSswMDoyMDpEMSAgTWljcm9jb21wdXRl ciBTeXN0ZW1zIChNKSBTZG4uCi0gMDA6MjA6RDIgIFJhZCBEYXRhIENvbW11bmljYXRpb25zLCBM dGQuCi0tMDA6MjA6RDMgIE9zdCAob3Vlc3QgU3RhbmRhcmQgVGVsZW1hdGlxdQotKzAwOjIwOkQz ICBPc3QgKE91ZXN0IFN0YW5kYXJkIFRlbGVtYXRpcXUKLSAwMDoyMDpENCAgQ2FibGV0cm9uIC0g WmVpdHRuZXQgSW5jLgotIDAwOjIwOkQ1ICBWaXBhIEdtYmgKLSAwMDoyMDpENiAgQnJlZXplY29t Ci0gMDA6MjA6RDcgIEphcGFuIE1pbmljb21wdXRlciBTeXN0ZW1zIENvLiwgTHRkLgotIDAwOjIw OkQ4ICBOb3J0ZWwgTmV0d29ya3MKLS0wMDoyMDpEOSAgUGFuYXNvbmljIFRlY2hub2xvZ2llcywg SW5jLi9taWVjby11cwotKzAwOjIwOkQ5ICBQYW5hc29uaWMgVGVjaG5vbG9naWVzLCBJbmMuL01p ZWNvLVVzCi0gMDA6MjA6REEgIFh5bGFuIENvcnBvcmF0aW9uCi0gMDA6MjA6REIgIFhuZXQgVGVj aG5vbG9neSwgSW5jLgotIDAwOjIwOkRDICBEZW5zaXRyb24gVGFpd2FuIEx0ZC4KLS0wMDoyMDpE RCAgQXdhIEx0ZC4KLS0wMDoyMDpERSAgSmFwYW4gRGlnaXRhbCBMYWJvcmF0J3kgQ28ubHRkCi0r MDA6MjA6REQgIEN5YmVydGVjIFB0eSBMdGQKLSswMDoyMDpERSAgSmFwYW4gRGlnaXRhbCBMYWJv cmF0J3kgQ28uTHRkCi0gMDA6MjA6REYgIEt5b3NhbiBFbGVjdHJpYyBNZmcuIENvLiwgTHRkLgot LTAwOjIwOkUwICBQcmVtYXggRWxlY3Ryb25pY3MsIEluYy4KLSswMDoyMDpFMCAgQWN0aW9udGVj IEVsZWN0cm9uaWNzLCBJbmMuCi0gMDA6MjA6RTEgIEFsYW1hciBFbGVjdHJvbmljcwotIDAwOjIw OkUyICBJbmZvcm1hdGlvbiBSZXNvdXJjZSBFbmdpbmVlcmluZwotIDAwOjIwOkUzICBNY2QgS2Vu Y29tIENvcnBvcmF0aW9uCi0gMDA6MjA6RTQgIEhzaW5nIFRlY2ggRW50ZXJwcmlzZSBDby4sIEx0 ZAotIDAwOjIwOkU1ICBBcGV4IERhdGEsIEluYy4KLSAwMDoyMDpFNiAgTGlka29waW5nIE1hY2hp bmUgVG9vbHMgQWIKLS0wMDoyMDpFNyAgQiZ3IE51Y2xlYXIgU2VydmljZSBDb21wYW55Ci0rMDA6 MjA6RTcgIEImVyBOdWNsZWFyIFNlcnZpY2UgQ29tcGFueQotIDAwOjIwOkU4ICBEYXRhdHJlayBD b3Jwb3JhdGlvbgotIDAwOjIwOkU5ICBEYW50ZWwKLSAwMDoyMDpFQSAgRWZmaWNpZW50IE5ldHdv cmtzLCBJbmMuCi0gMDA6MjA6RUIgIENpbmNpbm5hdGkgTWljcm93YXZlLCBJbmMuCi0gMDA6MjA6 RUMgIFRlY2h3YXJlIFN5c3RlbXMgQ29ycC4KLS0wMDoyMDpFRCAgR2lnYS1ieXRlIFRlY2hub2xv Z3kgQ28uLCBMdGQuCi0rMDA6MjA6RUQgIEdpZ2EtQnl0ZSBUZWNobm9sb2d5IENvLiwgTHRkLgot IDAwOjIwOkVFICBHdGVjaCBDb3Jwb3JhdGlvbgotIDAwOjIwOkVGICBVc2MgQ29ycG9yYXRpb24K LSAwMDoyMDpGMCAgVW5pdmVyc2FsIE1pY3JvZWxlY3Ryb25pY3MgQ28uCi1AQCAtMzU0NCw2ICs0 ODI0LDcgQEAKLSAwMDoyMDpGRCAgSXR2IFRlY2hub2xvZ2llcywgSW5jLgotIDAwOjIwOkZFICBU b3B3YXJlIEluYy4gLyBHcmFuZCBDb21wdXRlcgotIDAwOjIwOkZGICBTeW1tZXRyaWNhbCBUZWNo bm9sb2dpZXMKLSswMDoyNjo1NCAgM0NvbSBDb3Jwb3JhdGlvbgotIDAwOjMwOjAwICBBbGx3ZWxs IFRlY2hub2xvZ3kgQ29ycC4KLSAwMDozMDowMSAgU21wCi0gMDA6MzA6MDIgIEV4cGFuZCBOZXR3 b3JrcwotQEAgLTM1NjcsMTcgKzQ4NDgsMTcgQEAKLSAwMDozMDoxNCAgRGl2aW8sIEluYy4KLSAw MDozMDoxNSAgQ3AgQ2xhcmUgQ29ycC4KLSAwMDozMDoxNiAgSXNoaWRhIENvLiwgTHRkLgotLTAw OjMwOjE3ICBUZXJhc3RhY2sgTHRkLgotKzAwOjMwOjE3ICBCbHVlYXJjIFVrIEx0ZAotIDAwOjMw OjE4ICBKZXR3YXkgSW5mb3JtYXRpb24gQ28uLCBMdGQuCi0gMDA6MzA6MTkgIENpc2NvIFN5c3Rl bXMsIEluYy4KLSAwMDozMDoxQSAgU21hcnRicmlkZ2VzIFB0ZS4gTHRkLgotIDAwOjMwOjFCICBT aHV0dGxlLCBJbmMuCi0gMDA6MzA6MUMgIEFsdHZhdGVyIEFpcmRhdGEgU3lzdGVtcwotIDAwOjMw OjFEICBTa3lzdHJlYW0sIEluYy4KLS0wMDozMDoxRSAgM2NvbSBFdXJvcGUgTHRkLgotKzAwOjMw OjFFICAzQ29tIEV1cm9wZSBMdGQuCi0gMDA6MzA6MUYgIE9wdGljYWwgTmV0d29ya3MsIEluYy4K LSAwMDozMDoyMCAgVHNpLCBJbmMuLgotLTAwOjMwOjIxICBIc2luZyBUZWNoLiBFbnRlcnByaXNl IENvLixsdGQKLSswMDozMDoyMSAgSHNpbmcgVGVjaC4gRW50ZXJwcmlzZSBDby4sTHRkCi0gMDA6 MzA6MjIgIEZvbmcgS2FpIEluZHVzdHJpYWwgQ28uLCBMdGQuCi0gMDA6MzA6MjMgIENvZ2VudCBD b21wdXRlciBTeXN0ZW1zLCBJbmMuCi0gMDA6MzA6MjQgIENpc2NvIFN5c3RlbXMsIEluYy4KLUBA IC0zNjEwLDEwICs0ODkxLDEwIEBACi0gMDA6MzA6M0YgIFR1cmJvY29tbSBUZWNoIEluYy4KLSAw MDozMDo0MCAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAwOjMwOjQxICBTYWVqaW4gVCAmIE0gQ28u LCBMdGQuCi0tMDA6MzA6NDIgIERldGV3ZS1kZXV0c2NoZSBUZWxlcGhvbndlcmtlCi0rMDA6MzA6 NDIgIERldGV3ZS1EZXV0c2NoZSBUZWxlcGhvbndlcmtlCi0gMDA6MzA6NDMgIElkcmVhbSBUZWNo bm9sb2dpZXMsIFB0ZS4gTHRkLgotIDAwOjMwOjQ0ICBQb3J0c21pdGggTGxjCi0tMDA6MzA6NDUg IFZpbGxhZ2UgTmV0d29ya3MsIEluYy4gKHZuaSkKLSswMDozMDo0NSAgVmlsbGFnZSBOZXR3b3Jr cywgSW5jLiAoVm5pKQotIDAwOjMwOjQ2ICBDb250cm9sbGVkIEVsZWN0cm9uaWMgTWFuYWdlbWUK LSAwMDozMDo0NyAgTmlzc2VpIEVsZWN0cmljIENvLiwgTHRkLgotIDAwOjMwOjQ4ICBTdXBlcm1p Y3JvIENvbXB1dGVyLCBJbmMuCi1AQCAtMzYzMSw5ICs0OTEyLDkgQEAKLSAwMDozMDo1NCAgQ2Fz dGxlbmV0IFRlY2hub2xvZ3ksIEluYy4KLSAwMDozMDo1NSAgSGl0YWNoaSBTZW1pY29uZHVjdG9y IEFtZXJpY2EsCi0gMDA6MzA6NTYgIEJlY2sgSXBjIEdtYmgKLS0wMDozMDo1NyAgRS10ZWwgQ29y cG9yYXRpb24KLSswMDozMDo1NyAgRS1UZWwgQ29ycG9yYXRpb24KLSAwMDozMDo1OCAgQXBpIE1v dGlvbgotLTAwOjMwOjU5ICBEaWdpdGFsLWxvZ2ljIEFnCi0rMDA6MzA6NTkgIERpZ2l0YWwtTG9n aWMgQWcKLSAwMDozMDo1QSAgVGVsZ2VuIENvcnBvcmF0aW9uCi0gMDA6MzA6NUIgIE1vZHVsZSBE ZXBhcnRtZW50Ci0gMDA6MzA6NUMgIFNtYXIgTGFib3JhdG9yaWVzIENvcnAuCi1AQCAtMzY0NSw3 ICs0OTI2LDcgQEAKLSAwMDozMDo2MiAgUGF0aCAxIE5ldHdvcmsgVGVjaG5vbCdzIEluYy4KLSAw MDozMDo2MyAgU2FudGVyYSBTeXN0ZW1zLCBJbmMuCi0gMDA6MzA6NjQgIEFkbGluayBUZWNobm9s b2d5LCBJbmMuCi0tMDA6MzA6NjUgIEFwcGxlCUFpcnBvcnQgQ2FyZCAyMDAyCi0rMDA6MzA6NjUg IEFwcGxlIENvbXB1dGVyLCBJbmMuCi0gMDA6MzA6NjYgIERpZ2l0YWwgV2lyZWxlc3MgQ29ycG9y YXRpb24KLSAwMDozMDo2NyAgQmlvc3RhciBNaWNyb3RlY2ggSW50J2wgQ29ycC4KLSAwMDozMDo2 OCAgQ3liZXJuZXRpY3MgVGVjaC4gQ28uLCBMdGQuCi1AQCAtMzY1Niw3ICs0OTM3LDcgQEAKLSAw MDozMDo2RCAgTHVjZW50IFRlY2hub2xvZ2llcwotIDAwOjMwOjZFICBIZXdsZXR0IFBhY2thcmQK LSAwMDozMDo2RiAgU2V5ZW9uIFRlY2guIENvLiwgTHRkLgotLTAwOjMwOjcwICAxbmV0IENvcnBv cmF0aW9uCi0rMDA6MzA6NzAgIDFOZXQgQ29ycG9yYXRpb24KLSAwMDozMDo3MSAgQ2lzY28gU3lz dGVtcywgSW5jLgotIDAwOjMwOjcyICBJbnRlbGxpYnl0ZSBJbmMuCi0gMDA6MzA6NzMgIEludGVy bmF0aW9uYWwgTWljcm9zeXN0ZW1zLCBJbgotQEAgLTM2NzMsNyArNDk1NCw3IEBACi0gMDA6MzA6 N0UgIFJlZGZsZXggQ29tbXVuaWNhdGlvbiBTeXN0ZW1zCi0gMDA6MzA6N0YgIElybGFuIEx0ZC4K LSAwMDozMDo4MCAgQ2lzY28gU3lzdGVtcywgSW5jLgotLTAwOjMwOjgxICBBbHRvcyBDJmMKLSsw MDozMDo4MSAgQWx0b3MgQyZDCi0gMDA6MzA6ODIgIFRhaWhhbiBFbGVjdHJpYyBXaXJlIENvLiwg THRkLgotIDAwOjMwOjgzICBJdnJvbiBTeXN0ZW1zCi0gMDA6MzA6ODQgIEFsbGllZCBUZWxlc3lu IEludGVybmFpb25hbAotQEAgLTM2ODIsNyArNDk2Myw3IEBACi0gMDA6MzA6ODcgIFZlZ2EgR3Jp ZXNoYWJlciBLZwotIDAwOjMwOjg4ICBTaWFyYSBTeXN0ZW1zLCBJbmMuCi0gMDA6MzA6ODkgIFNw ZWN0cmFwb2ludCBXaXJlbGVzcywgTGxjCi0tMDA6MzA6OEEgIE5pY290cmEgU2lzdGVtaSBTLnAu YQotKzAwOjMwOjhBICBOaWNvdHJhIFNpc3RlbWkgUy5QLkEKLSAwMDozMDo4QiAgQnJpeCBOZXR3 b3JrcwotIDAwOjMwOjhDICBBZHZhbmNlZCBEaWdpdGFsIEluZm9ybWF0aW9uCi0gMDA6MzA6OEQg IFBpbm5hY2xlIFN5c3RlbXMsIEluYy4KLUBAIC0zNzA1LDcgKzQ5ODYsNyBAQAotIDAwOjMwOjlF ICBXb3JrYml0IENvcnBvcmF0aW9uLgotIDAwOjMwOjlGICBBbWJlciBOZXR3b3JrcwotIDAwOjMw OkEwICBUeWNvIFN1Ym1hcmluZSBTeXN0ZW1zLCBMdGQuCi0tMDA6MzA6QTEgIE9wdGkgVGVjaCBD by4sIEx0ZC4KLSswMDozMDpBMSAgV2ViZ2F0ZSBJbmMuCi0gMDA6MzA6QTIgIExpZ2h0bmVyIEVu Z2luZWVyaW5nCi0gMDA6MzA6QTMgIENpc2NvIFN5c3RlbXMsIEluYy4KLSAwMDozMDpBNCAgV29v ZHdpbmQgQ29tbXVuaWNhdGlvbnMgU3lzdGVtCi1AQCAtMzcxOSw5ICs1MDAwLDkgQEAKLSAwMDoz MDpBQyAgU3lzdGVtZSBMYXVlciBHbWJoICYgQ28uLCBMdGQuCi0gMDA6MzA6QUQgIFNoYW5naGFp IENvbW11bmljYXRpb24KLSAwMDozMDpBRSAgVGltZXMgTiBTeXN0ZW0sIEluYy4KLS0wMDozMDpB RiAgSG9uZXl3ZWxsIFJlcWVsc3lzdGVtZSBHbWJoCi0rMDA6MzA6QUYgIEhvbmV5d2VsbCBHbWJo Ci0gMDA6MzA6QjAgIENvbnZlcmdlbmV0IFRlY2hub2xvZ2llcwotLTAwOjMwOkIxICBHb2MgR2Vz ZWxsc2NoYWZ0IEZ1ciBPcHRpc2NoZQotKzAwOjMwOkIxICBBeGVzcy1Qcm8gTmV0d29ya3MgR21i aAotIDAwOjMwOkIyICBXZXNjYW0gLSBIZWFsZHNidXJnCi0gMDA6MzA6QjMgIFNhbiBWYWxsZXkg U3lzdGVtcywgSW5jLgotIDAwOjMwOkI0ICBJbnRlcnNpbCBDb3JwLgotQEAgLTM3MzAsMTQgKzUw MTEsMTQgQEAKLSAwMDozMDpCNyAgVGVsZXRyb2wgU3lzdGVtcywgSW5jLgotIDAwOjMwOkI4ICBS aXZlcmRlbHRhIE5ldHdvcmtzCi0gMDA6MzA6QjkgIEVjdGVsCi0tMDA6MzA6QkEgIEFjJnQgU3lz dGVtIENvLiwgTHRkLgotKzAwOjMwOkJBICBBYyZUIFN5c3RlbSBDby4sIEx0ZC4KLSAwMDozMDpC QiAgQ2FjaGVmbG93LCBJbmMuCi0gMDA6MzA6QkMgIE9wdHJvbmljIEFnCi0gMDA6MzA6QkQgIEJl bGtpbiBDb21wb25lbnRzCi0tMDA6MzA6QkUgIENpdHktbmV0IFRlY2hub2xvZ3ksIEluYy4KLSsw MDozMDpCRSAgQ2l0eS1OZXQgVGVjaG5vbG9neSwgSW5jLgotIDAwOjMwOkJGICBNdWx0aWRhdGEg R21iaAotIDAwOjMwOkMwICBMYXJhIFRlY2hub2xvZ3ksIEluYy4KLS0wMDozMDpDMSAgSGV3bGV0 dC1wYWNrYXJkCi0rMDA6MzA6QzEgIEhld2xldHQtUGFja2FyZAotIDAwOjMwOkMyICBDb21vbmUK LSAwMDozMDpDMyAgRmx1ZWNraWdlciBFbGVrdHJvbmlrIEFnCi0gMDA6MzA6QzQgIE5paWdhdGEg Q2Fub3RlYyBDby4sIEluYy4KLUBAIC0zNzUyLDE0ICs1MDMzLDE0IEBACi0gMDA6MzA6Q0QgIENv bmV4YW50IFN5c3RlbXMsIEluYy4KLSAwMDozMDpDRSAgWmFmZmlyZQotIDAwOjMwOkNGICBUd28g VGVjaG5vbG9naWVzLCBJbmMuCi0tMDA6MzA6RDAgIFByaXZhdGUKLSswMDozMDpEMCAgVGVsbGFi cwotIDAwOjMwOkQxICBJbm92YSBDb3Jwb3JhdGlvbgotIDAwOjMwOkQyICBXaW4gVGVjaG5vbG9n aWVzLCBDby4sIEx0ZC4KLSAwMDozMDpEMyAgQWdpbGVudCBUZWNobm9sb2dpZXMKLSAwMDozMDpE NCAgQ29tdGllcgotIDAwOjMwOkQ1ICBEcmVzZWFyY2ggR21iaAotIDAwOjMwOkQ2ICBNc2MgVmVy dHJpZWJzIEdtYmgKLS0wMDozMDpENyAgSW5ub3ZhdGl2ZSBTeXN0ZW1zLCBMLmwuYy4KLSswMDoz MDpENyAgSW5ub3ZhdGl2ZSBTeXN0ZW1zLCBMLkwuQy4KLSAwMDozMDpEOCAgU2l0ZWsKLSAwMDoz MDpEOSAgRGF0YWNvcmUgU29mdHdhcmUgQ29ycC4KLSAwMDozMDpEQSAgQ29tdHJlbmQgQ28uCi1A QCAtMzc2NywxMyArNTA0OCwxMyBAQAotIDAwOjMwOkRDICBSaWdodGVjaCBDb3Jwb3JhdGlvbgot IDAwOjMwOkREICBJbmRpZ2l0YSBDb3Jwb3JhdGlvbgotIDAwOjMwOkRFICBXYWdvIEtvbnRha3R0 ZWNobmlrIEdtYmgKLS0wMDozMDpERiAgS2IvdGVsIFRlbGVjb211bmljYWNpb25lcwotKzAwOjMw OkRGICBLYi9UZWwgVGVsZWNvbXVuaWNhY2lvbmVzCi0gMDA6MzA6RTAgIE94Zm9yZCBTZW1pY29u ZHVjdG9yIEx0ZC4KLSAwMDozMDpFMSAgQWNyb3Ryb24gU3lzdGVtcywgSW5jLgotIDAwOjMwOkUy ICBHYXJuZXQgU3lzdGVtcyBDby4sIEx0ZC4KLSAwMDozMDpFMyAgU2Vkb25hIE5ldHdvcmtzIENv cnAuCi0gMDA6MzA6RTQgIENoaXlvZGEgU3lzdGVtIFJpa2VuCi0tMDA6MzA6RTUgIEFtcGVyIERh dG9zIFMuYS4KLSswMDozMDpFNSAgQW1wZXIgRGF0b3MgUy5BLgotIDAwOjMwOkU2ICBTaWVtZW5z IE1lZGljYWwgU3lzdGVtcwotIDAwOjMwOkU3ICBDbmYgTW9iaWxlIFNvbHV0aW9ucywgSW5jLgot IDAwOjMwOkU4ICBFbnNpbSBDb3JwLgotQEAgLTM4MTMsNyArNTA5NCw3IEBACi0gMDA6NDA6MEEg IFBpdm90YWwgVGVjaG5vbG9naWVzLCBJbmMuCi0gMDA6NDA6MEIgIENpc2NvIFN5c3RlbXMsIElu Yy4KLSAwMDo0MDowQyAgR2VuZXJhbCBNaWNybyBTeXN0ZW1zLCBJbmMuCi0tMDA6NDA6MEQgIExh bm5ldCBEYXRhIENvbW11bmljYXRpb25zLGx0ZAotKzAwOjQwOjBEICBMYW5uZXQgRGF0YSBDb21t dW5pY2F0aW9ucyxMdGQKLSAwMDo0MDowRSAgTWVtb3RlYyBDb21tdW5pY2F0aW9ucywgSW5jLgot IDAwOjQwOjBGICBEYXRhY29tIFRlY2hub2xvZ2llcwotIDAwOjQwOjEwICBTb25pYyBTeXN0ZW1z LCBJbmMuCi1AQCAtMzgyMyw3ICs1MTA0LDcgQEAKLSAwMDo0MDoxNCAgQ29tc29mdCBHbWJoCi0g MDA6NDA6MTUgIEFzY29tIEluZnJhc3lzIEFnCi0gMDA6NDA6MTYgIEhhZGF4IEVsZWN0cm9uaWNz LCBJbmMuCi0tMDA6NDA6MTcgIFhjZCBJbmMuCi0rMDA6NDA6MTcgIFRyb3kgR3JvdXAsIEluYy4K LSAwMDo0MDoxOCAgQWRvYmUgU3lzdGVtcywgSW5jLgotIDAwOjQwOjE5ICBBZW9uIFN5c3RlbXMs IEluYy4KLSAwMDo0MDoxQSAgRnVqaSBFbGVjdHJpYyBDby4sIEx0ZC4KLUBAIC0zODQyLDcgKzUx MjMsNyBAQAotIDAwOjQwOjI3ICBTbWMgTWFzc2FjaHVzZXR0cywgSW5jLgotIDAwOjQwOjI4ICBO ZXRjb21tIExpbWl0ZWQKLSAwMDo0MDoyOSAgQ29tcGV4Ci0tMDA6NDA6MkEgIENhbm9nYS1wZXJr aW5zCi0rMDA6NDA6MkEgIENhbm9nYS1QZXJraW5zCi0gMDA6NDA6MkIgIFRyaWdlbSBDb21wdXRl ciwgSW5jLgotIDAwOjQwOjJDICBJc2lzIERpc3RyaWJ1dGVkIFN5c3RlbXMsIEluYy4KLSAwMDo0 MDoyRCAgSGFycmlzIEFkYWNvbSBDb3Jwb3JhdGlvbgotQEAgLTM4NTUsNyArNTEzNiw3IEBACi0g MDA6NDA6MzQgIEJ1c3RlayBDb3Jwb3JhdGlvbgotIDAwOjQwOjM1ICBPcGNvbQotIDAwOjQwOjM2 ICBUcmliZSBDb21wdXRlciBXb3JrcywgSW5jLgotLTAwOjQwOjM3ICBTZWEtaWxhbiwgSW5jLgot KzAwOjQwOjM3ICBTZWEtSWxhbiwgSW5jLgotIDAwOjQwOjM4ICBUYWxlbnQgRWxlY3RyaWMgSW5j b3Jwb3JhdGVkCi0gMDA6NDA6MzkgIE9wdGVjIERhaWljaGkgRGVua28gQ28uLCBMdGQuCi0gMDA6 NDA6M0EgIEltcGFjdCBUZWNobm9sb2dpZXMKLUBAIC0zODY2LDEzICs1MTQ3LDEzIEBACi0gMDA6 NDA6M0YgIFNzYW5neW9uZyBDb21wdXRlciBTeXN0ZW1zCi0gMDA6NDA6NDAgIFJpbmcgQWNjZXNz LCBJbmMuCi0gMDA6NDA6NDEgIEZ1amlrdXJhIEx0ZC4KLS0wMDo0MDo0MiAgTi5hLnQuIEdtYmgK LSswMDo0MDo0MiAgTi5BLlQuIEdtYmgKLSAwMDo0MDo0MyAgTm9raWEgVGVsZWNvbW11bmljYXRp b25zCi0gMDA6NDA6NDQgIFFuaXggQ29tcHV0ZXIgQ28uLCBMdGQuCi0gMDA6NDA6NDUgIFR3aW5o ZWFkIENvcnBvcmF0aW9uCi0gMDA6NDA6NDYgIFVkYyBSZXNlYXJjaCBMaW1pdGVkCi0gMDA6NDA6 NDcgIFdpbmQgUml2ZXIgU3lzdGVtcwotLTAwOjQwOjQ4ICBTbWQgSW5mb3JtYXRpY2EgUy5hLgot KzAwOjQwOjQ4ICBTbWQgSW5mb3JtYXRpY2EgUy5BLgotIDAwOjQwOjQ5ICBUZWdpbWVudGEgQWcK LSAwMDo0MDo0QSAgV2VzdCBBdXN0cmFsaWFuIERlcGFydG1lbnQKLSAwMDo0MDo0QiAgTWFwbGUg Q29tcHV0ZXIgU3lzdGVtcwotQEAgLTM4OTMsMTIgKzUxNzQsMTIgQEAKLSAwMDo0MDo1QSAgR29s ZHN0YXIgSW5mb3JtYXRpb24gJiBDb21tLgotIDAwOjQwOjVCICBGdW5hc3NldCBMaW1pdGVkCi0g MDA6NDA6NUMgIEZ1dHVyZSBTeXN0ZW1zLCBJbmMuCi0tMDA6NDA6NUQgIFN0YXItdGVrLCBJbmMu Ci0rMDA6NDA6NUQgIFN0YXItVGVrLCBJbmMuCi0gMDA6NDA6NUUgIE5vcnRoIEhpbGxzIElzcmFl bAotIDAwOjQwOjVGICBBZmUgQ29tcHV0ZXJzIEx0ZC4KLSAwMDo0MDo2MCAgQ29tZW5kZWMgTHRk Ci0gMDA6NDA6NjEgIERhdGF0ZWNoIEVudGVycHJpc2VzIENvLiwgTHRkLgotLTAwOjQwOjYyICBF LXN5c3RlbXMsIEluYy4vZ2FybGFuZCBEaXYuCi0rMDA6NDA6NjIgIEUtU3lzdGVtcywgSW5jLi9H YXJsYW5kIERpdi4KLSAwMDo0MDo2MyAgVmlhIFRlY2hub2xvZ2llcywgSW5jLgotIDAwOjQwOjY0 ICBLbGEgSW5zdHJ1bWVudHMgQ29ycG9yYXRpb24KLSAwMDo0MDo2NSAgR3RlIFNwYWNlbmV0Ci1A QCAtMzkwNiw3ICs1MTg3LDcgQEAKLSAwMDo0MDo2NyAgT21uaWJ5dGUgQ29ycG9yYXRpb24KLSAw MDo0MDo2OCAgRXh0ZW5kZWQgU3lzdGVtcwotIDAwOjQwOjY5ICBMZW1jb20gU3lzdGVtcywgSW5j LgotLTAwOjQwOjZBICBLZW50ZWsgSW5mb3JtYXRpb24gU3lzdGVtcyxpbmMKLSswMDo0MDo2QSAg S2VudGVrIEluZm9ybWF0aW9uIFN5c3RlbXMsSW5jCi0gMDA6NDA6NkIgIFN5c2dlbgotIDAwOjQw OjZDICBDb3Blcm5pcXVlCi0gMDA6NDA6NkQgIExhbmNvLCBJbmMuCi1AQCAtMzkxNyw3ICs1MTk4 LDcgQEAKLSAwMDo0MDo3MiAgQXBwbGllZCBJbm5vdmF0aW9uIEluYy4KLSAwMDo0MDo3MyAgQmFz cyBBc3NvY2lhdGVzCi0gMDA6NDA6NzQgIENhYmxlIEFuZCBXaXJlbGVzcwotLTAwOjQwOjc1ICBN LXRyYWRlICh1aykgTHRkCi0rMDA6NDA6NzUgIE0tVHJhZGUgKFVrKSBMdGQKLSAwMDo0MDo3NiAg U3VuIENvbnZlcnNpb24gVGVjaG5vbG9naWVzCi0gMDA6NDA6NzcgIE1heHRvbiBUZWNobm9sb2d5 IENvcnBvcmF0aW9uCi0gMDA6NDA6NzggIFdlYXJuZXMgQXV0b21hdGlvbiBQdGUgTHRkCi1AQCAt Mzk0MywxMyArNTIyNCwxMyBAQAotIDAwOjQwOjhDICBBeGlzIENvbW11bmljYXRpb25zIEFiCi0g MDA6NDA6OEQgIFRoZSBHb29keWVhciBUaXJlICYgUnViYmVyIENvLgotIDAwOjQwOjhFICBEaWdp bG9nLCBJbmMuCi0tMDA6NDA6OEYgIFdtLWRhdGEgTWluZm8gQWIKLSswMDo0MDo4RiAgV20tRGF0 YSBNaW5mbyBBYgotIDAwOjQwOjkwICBBbnNlbCBDb21tdW5pY2F0aW9ucwotIDAwOjQwOjkxICBQ cm9jb21wIEluZHVzdHJpYSBFbGV0cm9uaWNhCi0gMDA6NDA6OTIgIEFzcCBDb21wdXRlciBQcm9k dWN0cywgSW5jLgotIDAwOjQwOjkzICBQYXhkYXRhIE5ldHdvcmtzIEx0ZC4KLSAwMDo0MDo5NCAg U2hvZ3JhcGhpY3MsIEluYy4KLS0wMDo0MDo5NSAgUi5wLnQuIEludGVyZ3JvdXBzIEludCdsIEx0 ZC4KLSswMDo0MDo5NSAgUi5QLlQuIEludGVyZ3JvdXBzIEludCdsIEx0ZC4KLSAwMDo0MDo5NiAg QWlyb25ldCBXaXJlbGVzcyBDb21tdW5pY2F0aW9uCi0gMDA6NDA6OTcgIERhdGV4IERpdmlzaW9u IE9mCi0gMDA6NDA6OTggIERyZXNzbGVyIEdtYmggJiBDby4KLUBAIC0zOTU5LDcgKzUyNDAsNyBA QAotIDAwOjQwOjlDICBUcmFuc3dhcmUKLSAwMDo0MDo5RCAgRGlnaWJvYXJkLCBJbmMuCi0gMDA6 NDA6OUUgIENvbmN1cnJlbnQgVGVjaG5vbG9naWVzICBMdGQuCi0tMDA6NDA6OUYgIExhbmNhc3Qv Y2FzYXQgVGVjaG5vbG9neSwgSW5jLgotKzAwOjQwOjlGICBMYW5jYXN0L0Nhc2F0IFRlY2hub2xv Z3ksIEluYy4KLSAwMDo0MDpBMCAgR29sZHN0YXIgQ28uLCBMdGQuCi0gMDA6NDA6QTEgIEVyZ28g Q29tcHV0aW5nCi0gMDA6NDA6QTIgIEtpbmdzdGFyIFRlY2hub2xvZ3kgSW5jLgotQEAgLTM5Njcs NyArNTI0OCw3IEBACi0gMDA6NDA6QTQgIFJvc2UgRWxlY3Ryb25pY3MKLSAwMDo0MDpBNSAgQ2xp bmljb21wIEludGwuCi0gMDA6NDA6QTYgIENyYXksIEluYy4KLS0wMDo0MDpBNyAgSXRhdXRlYyBQ aGlsY28gUy5hLgotKzAwOjQwOkE3ICBJdGF1dGVjIFBoaWxjbyBTLkEuCi0gMDA6NDA6QTggIElt ZiBJbnRlcm5hdGlvbmFsIEx0ZC4KLSAwMDo0MDpBOSAgRGF0YWNvbSBJbmMuCi0gMDA6NDA6QUEg IFZhbG1ldCBBdXRvbWF0aW9uIEluYy4KLUBAIC0zOTgwLDcgKzUyNjEsNyBAQAotIDAwOjQwOkIx ICBDb2RvbmljcyBJbmMuCi0gMDA6NDA6QjIgIFN5c3RlbWZvcnNjaHVuZwotIDAwOjQwOkIzICBQ YXIgTWljcm9zeXN0ZW1zIENvcnBvcmF0aW9uCi0tMDA6NDA6QjQgIE5leHRjb20gSy5rLgotKzAw OjQwOkI0ICBOZXh0Y29tIEsuSy4KLSAwMDo0MDpCNSAgVmlkZW8gVGVjaG5vbG9neSBDb21wdXRl cnMgTHRkCi0gMDA6NDA6QjYgIENvbXB1dGVybSAgQ29ycG9yYXRpb24KLSAwMDo0MDpCNyAgU3Rl YWx0aCBDb21wdXRlciBTeXN0ZW1zCi1AQCAtMzk5Myw3ICs1Mjc0LDcgQEAKLSAwMDo0MDpCRSAg Qm9laW5nIERlZmVuc2UgJiBTcGFjZQotIDAwOjQwOkJGICBDaGFubmVsIFN5c3RlbXMgSW50ZXJu J2wgSW5jLgotIDAwOjQwOkMwICBWaXN0YSBDb250cm9scyBDb3Jwb3JhdGlvbgotLTAwOjQwOkMx ICBCaXplcmJhLXdlcmtlIFdpbGhlaW0gS3JhdXQKLSswMDo0MDpDMSAgQml6ZXJiYS1XZXJrZSBX aWxoZWltIEtyYXV0Ci0gMDA6NDA6QzIgIEFwcGxpZWQgQ29tcHV0aW5nIERldmljZXMKLSAwMDo0 MDpDMyAgRmlzY2hlciBBbmQgUG9ydGVyIENvLgotIDAwOjQwOkM0ICBLaW5rZWkgU3lzdGVtIENv cnBvcmF0aW9uCi1AQCAtNDAwNiw3ICs1Mjg3LDcgQEAKLSAwMDo0MDpDQiAgTGFud2FuIFRlY2hu b2xvZ2llcwotIDAwOjQwOkNDICBTaWxjb20gTWFudWYnZyBUZWNobm9sb2d5IEluYy4KLSAwMDo0 MDpDRCAgVGVyYSBNaWNyb3N5c3RlbXMsIEluYy4KLS0wMDo0MDpDRSAgTmV0LXNvdXJjZSwgSW5j LgotKzAwOjQwOkNFICBOZXQtU291cmNlLCBJbmMuCi0gMDA6NDA6Q0YgIFN0cmF3YmVycnkgVHJl ZSwgSW5jLgotIDAwOjQwOkQwICBNaXRhYyBJbnRlcm5hdGlvbmFsIENvcnAuCi0gMDA6NDA6RDEg IEZ1a3VkYSBEZW5zaGkgQ28uLCBMdGQuCi1AQCAtNDAxNCw3ICs1Mjk1LDcgQEAKLSAwMDo0MDpE MyAgS2ltcHNpb24gSW50ZXJuYXRpb25hbCBDb3JwLgotIDAwOjQwOkQ0ICBHYWdlIFRhbGtlciBD b3JwLgotIDAwOjQwOkQ1ICBTYXJ0b3JpdXMgQWcKLS0wMDo0MDpENiAgTG9jYW1hdGlvbiBCLnYu Ci0rMDA6NDA6RDYgIExvY2FtYXRpb24gQi5WLgotIDAwOjQwOkQ3ICBTdHVkaW8gR2VuIEluYy4K LSAwMDo0MDpEOCAgT2NlYW4gT2ZmaWNlIEF1dG9tYXRpb24gTHRkLgotIDAwOjQwOkQ5ICBBbWVy aWNhbiBNZWdhdHJlbmRzIEluYy4KLUBAIC00MDI4LDExICs1MzA5LDExIEBACi0gMDA6NDA6RTEg IE1hcm5lciBJbnRlcm5hdGlvbmFsLCBJbmMuCi0gMDA6NDA6RTIgIE1lc2EgUmlkZ2UgVGVjaG5v bG9naWVzLCBJbmMuCi0gMDA6NDA6RTMgIFF1aW4gU3lzdGVtcyBMdGQKLS0wMDo0MDpFNCAgRS1t IFRlY2hub2xvZ3ksIEluYy4KLSswMDo0MDpFNCAgRS1NIFRlY2hub2xvZ3ksIEluYy4KLSAwMDo0 MDpFNSAgU3lidXMgQ29ycG9yYXRpb24KLS0wMDo0MDpFNiAgQy5hLmUubi4KLSswMDo0MDpFNiAg Qy5BLkUuTi4KLSAwMDo0MDpFNyAgQXJub3MgSW5zdHJ1bWVudHMgJiBDb21wdXRlcgotLTAwOjQw OkU4ICBDaGFybGVzIFJpdmVyIERhdGEgU3lzdGVtcyxpbmMKLSswMDo0MDpFOCAgQ2hhcmxlcyBS aXZlciBEYXRhIFN5c3RlbXMsSW5jCi0gMDA6NDA6RTkgIEFjY29yZCBTeXN0ZW1zLCBJbmMuCi0g MDA6NDA6RUEgIFBsYWluIFRyZWUgU3lzdGVtcyBJbmMKLSAwMDo0MDpFQiAgTWFydGluIE1hcmll dHRhIENvcnBvcmF0aW9uCi1AQCAtNDA2MSwxNCArNTM0MiwxNCBAQAotIDAwOjUwOjAxICBZYW1h c2hpdGEgU3lzdGVtcyBDb3JwLgotIDAwOjUwOjAyICBPbW5pc2VjIEFnCi0gMDA6NTA6MDMgIEdy ZXRhZyBNYWNiZXRoIEFnCi0tMDA6NTA6MDQgIDNjb20gQ29ycG9yYXRpb24KLSswMDo1MDowNCAg M0NvbSBDb3Jwb3JhdGlvbgotIDAwOjUwOjA2ICBUYWMgQWIKLSAwMDo1MDowNyAgU2llbWVucyBU ZWxlY29tbXVuaWNhdGlvbiBTeXN0ZW1zIExpbWl0ZWQKLS0wMDo1MDowOCAgQ29tcGFxIFdMMTAw Ci0rMDA6NTA6MDggIFRpdmEgTWljcm9jb21wdXRlciBDb3JwLiAoVG1jKQotIDAwOjUwOjA5ICBQ aGlsaXBzIEJyb2FkYmFuZCBOZXR3b3JrcwotIDAwOjUwOjBBICBJcmlzIFRlY2hub2xvZ2llcywg SW5jLgotIDAwOjUwOjBCICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi0tMDA6NTA6MEMgIEUtdGVrIExh YnMsIEluYy4KLSswMDo1MDowQyAgRS1UZWsgTGFicywgSW5jLgotIDAwOjUwOjBEICBTYXRvcmkg RWxlY3RvcmljIENvLiwgTHRkLgotIDAwOjUwOjBFICBDaHJvbWF0aXMgTmV0d29ya3MsIEluYy4K LSAwMDo1MDowRiAgQ2lzY28gU3lzdGVtcywgSW5jLgotQEAgLTQwNzcsOCArNTM1OCw4IEBACi0g MDA6NTA6MTMgIENoYXBhcnJhbCBOZXR3b3JrIFN0b3JhZ2UKLSAwMDo1MDoxNCAgQ2lzY28gU3lz dGVtcywgSW5jLgotIDAwOjUwOjE1ICBCcmlnaHQgU3RhciBFbmdpbmVlcmluZwotLTAwOjUwOjE2 ICBTc3Qvd29vZGhlYWQgSW5kdXN0cmllcwotLTAwOjUwOjE3ICBSc3IgUy5yLmwuCi0rMDA6NTA6 MTYgIFNzdC9Xb29kaGVhZCBJbmR1c3RyaWVzCi0rMDA6NTA6MTcgIFJzciBTLlIuTC4KLSAwMDo1 MDoxOCAgQWR2YW5jZWQgTXVsdGltZWRpYSBJbnRlcm5ldCBUZWNobm9sb2d5IEluYy4KLSAwMDo1 MDoxOSAgU3ByaW5nIFRpZGUgTmV0d29ya3MsIEluYy4KLSAwMDo1MDoxQSAgVWlzaXFuCi1AQCAt NDEyNCw4ICs1NDA1LDggQEAKLSAwMDo1MDo0NyAgUHJpdmF0ZQotIDAwOjUwOjQ4ICBJbmZvbGli cmlhCi0gMDA6NTA6NDkgIEVsbGFjb3lhIE5ldHdvcmtzLCBJbmMuCi0tMDA6NTA6NEEgIEVsdGVj byBBLnMuCi0tMDA6NTA6NEIgIEJhcmNvbmV0IE4udi4KLSswMDo1MDo0QSAgRWx0ZWNvIEEuUy4K LSswMDo1MDo0QiAgQmFyY29uZXQgTi5WLgotIDAwOjUwOjRDICBHYWxpbCBNb3Rpb24gQ29udHJv bCwgSW5jLgotIDAwOjUwOjREICBUb2t5byBFbGVjdHJvbiBEZXZpY2UgTHRkLgotIDAwOjUwOjRF ICBTaWVycmEgTW9uaXRvciBDb3JwLgotQEAgLTQxMzUsMzYgKzU0MTYsMzYgQEAKLSAwMDo1MDo1 MiAgVGlhcmEgTmV0d29ya3MsIEluYy4KLSAwMDo1MDo1MyAgQ2lzY28gU3lzdGVtcywgSW5jLgot IDAwOjUwOjU0ICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi0tMDA6NTA6NTUgIERvbXMgQS9zCi0rMDA6 NTA6NTUgIERvbXMgQS9TCi0gMDA6NTA6NTYgIFZtd2FyZSwgSW5jLgotIDAwOjUwOjU3ICBCcm9h ZGJhbmQgQWNjZXNzIFN5c3RlbXMKLS0wMDo1MDo1OCAgVmVnYXN0cmVhbSBMaW1pdGVkCi0rMDA6 NTA6NTggIFZlZ2FzdHJlYW0gTGltdGVkCi0gMDA6NTA6NTkgIFN1aXRlIFRlY2hub2xvZ3kgU3lz dGVtcyBOZXR3b3JrCi0gMDA6NTA6NUEgIE5ldHdvcmsgQWxjaGVteSwgSW5jLgotLTAwOjUwOjVC ICBLYXdhc2FraSBMc2kgVS5zLmEuLCBJbmMuCi0rMDA6NTA6NUIgIEthd2FzYWtpIExzaSBVLlMu QS4sIEluYy4KLSAwMDo1MDo1QyAgVHVuZG8gQ29ycG9yYXRpb24KLS0wMDo1MDo1RSAgRGlnaXRl ayBNaWNyb2xvZ2ljIFMuYS4KLSswMDo1MDo1RSAgRGlnaXRlayBNaWNyb2xvZ2ljIFMuQS4KLSAw MDo1MDo1RiAgQnJhbmQgSW5ub3ZhdG9ycwotIDAwOjUwOjYwICBUYW5kYmVyZyBUZWxlY29tIEFz Ci0gMDA6NTA6NjIgIEtvdXdlbGwgRWxlY3Ryb25pY3MgQ29ycC4gICoqCi0gMDA6NTA6NjMgIE95 IENvbXNlbCBTeXN0ZW0gQWIKLSAwMDo1MDo2NCAgQ2FlIEVsZWN0cm9uaWNzCi0tMDA6NTA6NjUg IERlbnNlaS1sYW1iYWQgQ28uLCBMdGQuCi0rMDA6NTA6NjUgIERlbnNlaS1MYW1iYWQgQ28uLCBM dGQuCi0gMDA6NTA6NjYgIEF0ZWNvbSBHbWJoIEFkdmFuY2VkIFRlbGVjb211bmljYXRpb24gTW9k dWxlcwotIDAwOjUwOjY3ICBBZXJvY29tbSwgSW5jLgotIDAwOjUwOjY4ICBFbGVjdHJvbmljIElu ZHVzdHJpZXMgQXNzb2NpYXRpb24KLSAwMDo1MDo2OSAgUGl4c3RyZWFtIEluY29ycG9yYXRlZAot IDAwOjUwOjZBICBFZGV2YSwgSW5jLgotLTAwOjUwOjZCICBTcHgtYXRlZwotKzAwOjUwOjZCICBT cHgtQXRlZwotIDAwOjUwOjZDICBHICYgTCBCZWlqZXIgRWxlY3Ryb25pY3MgQWIKLSAwMDo1MDo2 RCAgVmlkZW9qZXQgU3lzdGVtcwotIDAwOjUwOjZFICBDb3JkZXIgRW5naW5lZXJpbmcgQ29ycG9y YXRpb24KLS0wMDo1MDo2RiAgRy1jb25uZWN0Ci0rMDA6NTA6NkYgIEctQ29ubmVjdAotIDAwOjUw OjcwICBDaGFpbnRlY2ggQ29tcHV0ZXIgQ28uLCBMdGQuCi0gMDA6NTA6NzEgIEFpd2EgQ28uLCBM dGQuCi0gMDA6NTA6NzIgIENvcnZpcyBDb3Jwb3JhdGlvbgotIDAwOjUwOjczICBDaXNjbyBTeXN0 ZW1zLCBJbmMuCi0tMDA6NTA6NzQgIEFkdmFuY2VkIEhpLXRlY2ggQ29ycC4KLSswMDo1MDo3NCAg QWR2YW5jZWQgSGktVGVjaCBDb3JwLgotIDAwOjUwOjc1ICBLZXN0cmVsIFNvbHV0aW9ucwotIDAw OjUwOjc2ICBJYm0KLSAwMDo1MDo3NyAgUHJvbGlmaWMgVGVjaG5vbG9neSwgSW5jLgotQEAgLTQx OTcsMTMgKzU0NzgsMTMgQEAKLSAwMDo1MDo5NCAgUGFjZSBNaWNybyBUZWNobm9sb2d5IFBsYwot IDAwOjUwOjk1ICBQZXJhY29tIE5ldHdvcmtzCi0gMDA6NTA6OTYgIFNhbGl4IFRlY2hub2xvZ2ll cywgSW5jLgotLTAwOjUwOjk3ICBNbWMtZW1iZWRkZWQgQ29tcHV0ZXJ0ZWNobmlrIEdtYmgKLSsw MDo1MDo5NyAgTW1jLUVtYmVkZGVkIENvbXB1dGVydGVjaG5payBHbWJoCi0gMDA6NTA6OTggIEds b2JhbG9vcCwgTHRkLgotLTAwOjUwOjk5ICAzY29tIEV1cm9wZSwgTHRkLgotKzAwOjUwOjk5ICAz Q29tIEV1cm9wZSwgTHRkLgotIDAwOjUwOjlBICBUYWcgRWxlY3Ryb25pYyBTeXN0ZW1zCi0gMDA6 NTA6OUIgIFN3aXRjaGNvcmUgQWIKLSAwMDo1MDo5QyAgQmV0YSBSZXNlYXJjaAotLTAwOjUwOjlE ICBUaGUgSW5kdXN0cmVlIEIudi4KLSswMDo1MDo5RCAgVGhlIEluZHVzdHJlZSBCLlYuCi0gMDA6 NTA6OUUgIExlcyBUZWNobm9sb2dpZXMgU29mdGFjb3VzdGlrIEluYy4KLSAwMDo1MDo5RiAgSG9y aXpvbiBDb21wdXRlcgotIDAwOjUwOkEwICBEZWx0YSBDb21wdXRlciBTeXN0ZW1zLCBJbmMuCi1A QCAtNDIxNiw3ICs1NDk3LDcgQEAKLSAwMDo1MDpBNyAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAw OjUwOkE4ICBPcGVuY29uIFN5c3RlbXMsIEluYy4KLSAwMDo1MDpBOSAgTW9sZGF0IFdpcmVsZXNz IFRlY2hub2xnaWVzCi0tMDA6NTA6QUEgIEtvbmljYSBDb3Jwb3JhdGlvbgotKzAwOjUwOkFBICBL b25pY2EgTWlub2x0YSBIb2xkaW5ncywgSW5jLgotIDAwOjUwOkFCICBOYWx0ZWMsIEluYy4KLSAw MDo1MDpBQyAgTWFwbGUgQ29tcHV0ZXIgQ29ycG9yYXRpb24KLSAwMDo1MDpBRCAgQ29tbXVuaXF1 ZSBXaXJlbGVzcyBDb3JwLgotQEAgLTQyMjcsMTIgKzU1MDgsMTIgQEAKLSAwMDo1MDpCMiAgQnJv ZGVsIEF1dG9tYXRpb24KLSAwMDo1MDpCMyAgVm9pY2Vib2FyZCBDb3Jwb3JhdGlvbgotIDAwOjUw OkI0ICBTYXRjaHdlbGwgQ29udHJvbCBTeXN0ZW1zLCBMdGQKLS0wMDo1MDpCNSAgRmljaGV0LWJh dWNoZQotKzAwOjUwOkI1ICBGaWNoZXQtQmF1Y2hlCi0gMDA6NTA6QjYgIEdvb2QgV2F5IEluZC4g Q28uLCBMdGQuCi0gMDA6NTA6QjcgIEJvc2VyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCi0gMDA6NTA6 QjggIElub3ZhIENvbXB1dGVycyBHbWJoICYgQ28uIEtnCi0gMDA6NTA6QjkgIFhpdHJvbiBUZWNo bm9sb2dpZXMsIEluYy4KLS0wMDo1MDpCQSAgRC1saW5rCi0rMDA6NTA6QkEgIEQtTGluawotIDAw OjUwOkJCICBDbXMgVGVjaG5vbG9naWVzCi0gMDA6NTA6QkMgIEhhbW1lciBTdG9yYWdlIFNvbHV0 aW9ucwotIDAwOjUwOkJEICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi1AQCAtNDI0OSw3ICs1NTMwLDcg QEAKLSAwMDo1MDpDQSAgTmV0IFRvIE5ldCBUZWNobm9sb2dpZXMKLSAwMDo1MDpDQiAgSmV0dGVy Ci0gMDA6NTA6Q0MgIFh5cmF0ZXgKLS0wMDo1MDpDRCAgRGlnaWFuc3dlciBBL3MKLSswMDo1MDpD RCAgRGlnaWFuc3dlciBBL1MKLSAwMDo1MDpDRSAgTGcgSW50ZXJuYXRpb25hbCBDb3JwLgotIDAw OjUwOkNGICBWYW5saW5rIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBSZXNlYXJjaCBJbnN0aXR1 dGUKLSAwMDo1MDpEMCAgTWluZXJ2YSBTeXN0ZW1zCi1AQCAtNDI2MSwyMyArNTU0MiwyMyBAQAot IDAwOjUwOkQ2ICBBdGxhcyBDb3BjbyBUb29scyBBYgotIDAwOjUwOkQ3ICBUZWxzdHJhdAotIDAw OjUwOkQ4ICBVbmljb3JuIENvbXB1dGVyIENvcnAuCi0tMDA6NTA6RDkgIEVuZ2V0cm9uLWVuZ2Vu aGFyaWEgRWxldHJvbmljYSBJbmQuIEUgQ29tLiBMdGRhCi0tMDA6NTA6REEgIDNDb20gM0NSV0U3 Mzc5NkIKLSswMDo1MDpEOSAgRW5nZXRyb24tRW5nZW5oYXJpYSBFbGV0cm9uaWNhIEluZC4gRSBD b20uIEx0ZGEKLSswMDo1MDpEQSAgM0NvbSBDb3Jwb3JhdGlvbgotIDAwOjUwOkRCICBDb250ZW1w b3JhcnkgQ29udHJvbAotIDAwOjUwOkRDICBUYXMgVGVsZWZvbmJhdSBBLiBTY2h3YWJlIEdtYmgg JiBDby4gS2cKLS0wMDo1MDpERCAgU2VycmEgU29sZGFkdXJhLCBTLmEuCi0rMDA6NTA6REQgIFNl cnJhIFNvbGRhZHVyYSwgUy5BLgotIDAwOjUwOkRFICBTaWdudW0gU3lzdGVtcyBDb3JwLgotIDAw OjUwOkRGICBBaXJmaWJlciwgSW5jLgotIDAwOjUwOkUxICBOcyBUZWNoIEVsZWN0cm9uaWNzIFNk biBCaGQKLSAwMDo1MDpFMiAgQ2lzY28gU3lzdGVtcywgSW5jLgotLTAwOjUwOkUzICBUZWxlZ2F0 ZQotKzAwOjUwOkUzICBUZXJheW9uIENvbW11bmljYXRpb25zIFN5c3RlbXMKLSAwMDo1MDpFNCAg QXBwbGUgQ29tcHV0ZXIsIEluYy4KLSAwMDo1MDpFNiAgSGFrdXNhbiBDb3Jwb3JhdGlvbgotLTAw OjUwOkU3ICBQYXJhZGlzZSBJbm5vdmF0aW9ucyAoYXNpYSkKLSswMDo1MDpFNyAgUGFyYWRpc2Ug SW5ub3ZhdGlvbnMgKEFzaWEpCi0gMDA6NTA6RTggIE5vbWFkaXggSW5jLgotIDAwOjUwOkVBICBY ZWwgQ29tbXVuaWNhdGlvbnMsIEluYy4KLS0wMDo1MDpFQiAgQWxwaGEtdG9wIENvcnBvcmF0aW9u Ci0tMDA6NTA6RUMgIE9saWNvbSBBL3MKLSswMDo1MDpFQiAgQWxwaGEtVG9wIENvcnBvcmF0aW9u Ci0rMDA6NTA6RUMgIE9saWNvbSBBL1MKLSAwMDo1MDpFRCAgQW5kYSBOZXR3b3JrcwotIDAwOjUw OkVFICBUZWsgRGlnaXRlbCBDb3Jwb3JhdGlvbgotIDAwOjUwOkVGICBTcGUgU3lzdGVtaGF1cyBH bWJoCi1AQCAtNDI4Niw4ICs1NTY3LDggQEAKLSAwMDo1MDpGMiAgTWljcm9zb2Z0IENvcnAuCi0g MDA6NTA6RjMgIEdsb2JhbCBOZXQgSW5mb3JtYXRpb24gQ28uLCBMdGQuCi0gMDA6NTA6RjQgIFNp Z21hdGVrIEdtYmggJiBDby4gS2cKLS0wMDo1MDpGNiAgUGFuLWludGVybmF0aW9uYWwgSW5kdXN0 cmlhbCBDb3JwLgotLTAwOjUwOkY3ICBWZW50dXJlIE1hbnVmYWN0dXJpbmcgKHNpbmdhcG9yZSkg THRkLgotKzAwOjUwOkY2ICBQYW4tSW50ZXJuYXRpb25hbCBJbmR1c3RyaWFsIENvcnAuCi0rMDA6 NTA6RjcgIFZlbnR1cmUgTWFudWZhY3R1cmluZyAoU2luZ2Fwb3JlKSBMdGQuCi0gMDA6NTA6Rjgg IEVudHJlZ2EgVGVjaG5vbG9naWVzLCBJbmMuCi0gMDA6NTA6RjkgIFByaXZhdGUKLSAwMDo1MDpG QSAgT3h0ZWwsIEx0ZC4KLUBAIC00MzA0LDcgKzU1ODUsNyBAQAotIDAwOjYwOjA1ICBGZWVkYmFj ayBEYXRhIEx0ZC4KLSAwMDo2MDowNiAgU290ZWMgQ28uLCBMdGQKLSAwMDo2MDowNyAgQWNyZXMg R2FtaW5nLCBJbmMuCi0tMDA6NjA6MDggIDNjb20gQ29ycG9yYXRpb24KLSswMDo2MDowOCAgM0Nv bSBDb3Jwb3JhdGlvbgotIDAwOjYwOjA5ICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi0gMDA6NjA6MEEg IFNvcmQgQ29tcHV0ZXIgQ29ycG9yYXRpb24KLSAwMDo2MDowQiAgTG9nd2FyZSBHbWJoCi1AQCAt NDMxNyw3ICs1NTk4LDcgQEAKLSAwMDo2MDoxMiAgUG93ZXIgQ29tcHV0aW5nIENvcnBvcmF0aW9u Ci0gMDA6NjA6MTMgIE5ldHN0YWwgTWFzY2hpbmVuIEFnCi0gMDA6NjA6MTQgIEVkZWMgQ28uLCBM dGQuCi0tMDA6NjA6MTUgIE5ldDJuZXQgQ29ycG9yYXRpb24KLSswMDo2MDoxNSAgTmV0Mk5ldCBD b3Jwb3JhdGlvbgotIDAwOjYwOjE2ICBDbGFyaWlvbgotIDAwOjYwOjE3ICBUb2tpbWVjIEluYy4K LSAwMDo2MDoxOCAgU3RlbGxhciBPbmUgQ29ycG9yYXRpb24KLUBAIC00MzQ2LDcgKzU2MjcsNyBA QAotIDAwOjYwOjJGICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi0gMDA6NjA6MzAgIFZpbGxhZ2UgVHJv bmljIEVudHdpY2tsdW5nCi0gMDA6NjA6MzEgIEhyayBTeXN0ZW1zCi0tMDA6NjA6MzIgIEktY3Vi ZSwgSW5jLgotKzAwOjYwOjMyICBJLUN1YmUsIEluYy4KLSAwMDo2MDozMyAgQWN1aXR5IEltYWdp bmcsIEluYy4KLSAwMDo2MDozNCAgUm9iZXJ0IEJvc2NoIEdtYmgKLSAwMDo2MDozNSAgRGFsbGFz IFNlbWljb25kdWN0b3IsIEluYy4KLUBAIC00MzU2LDE1ICs1NjM3LDE1IEBACi0gMDA6NjA6Mzkg IFNhbmNvbSBUZWNobm9sb2d5LCBJbmMuCi0gMDA6NjA6M0EgIFF1aWNrIENvbnRyb2xzIEx0ZC4K LSAwMDo2MDozQiAgQW10ZWMgU3BhCi0tMDA6NjA6M0MgIEhhZ2l3YXJhIFN5cy1jb20gQ28uLCBM dGQuCi0tMDA6NjA6M0QgIDNjeAotKzAwOjYwOjNDICBIYWdpd2FyYSBTeXMtQ29tIENvLiwgTHRk LgotKzAwOjYwOjNEICAzQ3gKLSAwMDo2MDozRSAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAwOjYw OjNGICBQYXRhcHNjbyBEZXNpZ25zCi0gMDA6NjA6NDAgIE5ldHJvIENvcnAuCi0gMDA6NjA6NDEg IFlva29nYXdhIEVsZWN0cmljIENvcnBvcmF0aW9uCi0tMDA6NjA6NDIgIFRrcyAodXNhKSwgSW5j LgotKzAwOjYwOjQyICBUa3MgKFVzYSksIEluYy4KLSAwMDo2MDo0MyAgQ29tc29mdCBTeXN0ZW1z LCBJbmMuCi0tMDA6NjA6NDQgIExpdHRvbi9wb2x5LXNjaWVudGlmaWMKLSswMDo2MDo0NCAgTGl0 dG9uL1BvbHktU2NpZW50aWZpYwotIDAwOjYwOjQ1ICBQYXRobGlnaHQgVGVjaG5vbG9naWVzCi0g MDA6NjA6NDYgIFZtZXRybywgSW5jLgotIDAwOjYwOjQ3ICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi1A QCAtNDM3Miw3ICs1NjUzLDcgQEAKLSAwMDo2MDo0OSAgVmluYSBUZWNobm9sb2dpZXMKLSAwMDo2 MDo0QSAgU2FpYyBJZGVhcyBHcm91cAotIDAwOjYwOjRCICBCaW9kYXRhIEdtYmgKLS0wMDo2MDo0 QyAgU2F0Ci0rMDA6NjA6NEMgIFNhZ2VtIFNhCi0gMDA6NjA6NEQgIE1tYyBOZXR3b3JrcywgSW5j LgotIDAwOjYwOjRFICBDeWNsZSBDb21wdXRlciBDb3Jwb3JhdGlvbiwgSW5jLgotIDAwOjYwOjRG ICBTdXp1a2kgTWZnLiBDby4sIEx0ZC4KLUBAIC00Mzk3LDcgKzU2NzgsNyBAQAotIDAwOjYwOjYy ICBUZWxlc3luYywgSW5jLgotIDAwOjYwOjYzICBQc2lvbiBEYWNvbSBQbGMuCi0gMDA6NjA6NjQg IE5ldGNvbW0gTGltaXRlZAotLTAwOjYwOjY1ICBCZXJuZWNrZXIgJiBSYWluZXIgSW5kdXN0cmll LWVsZWt0cm9uaWMgR21iaAotKzAwOjYwOjY1ICBCZXJuZWNrZXIgJiBSYWluZXIgSW5kdXN0cmll LUVsZWt0cm9uaWMgR21iaAotIDAwOjYwOjY2ICBMYWNyb2l4IFRlY2hub2xnaWUKLSAwMDo2MDo2 NyAgQWNlciBOZXR4dXMgSW5jLgotIDAwOjYwOjY4ICBFaWNvbiBUZWNobm9sb2d5IENvcnBvcmF0 aW9uCi1AQCAtNDQwNSw3ICs1Njg2LDcgQEAKLSAwMDo2MDo2QSAgTWl0c3ViaXNoaSBXaXJlbGVz cyBDb21tdW5pY2F0aW9ucy4gSW5jLgotIDAwOjYwOjZCICBTeW5jbGF5ZXIgSW5jLgotIDAwOjYw OjZDICBBcmVzY29tCi0tMDA6NjA6NkQgIENhYmxldHJvbiBDU0lCQi1BQQotKzAwOjYwOjZEICBE aWdpdGFsIEVxdWlwbWVudCBDb3JwLgotIDAwOjYwOjZFICBEYXZpY29tIFNlbWljb25kdWN0b3Is IEluYy4KLSAwMDo2MDo2RiAgQ2xhcmlvbiBDb3Jwb3JhdGlvbiBPZiBBbWVyaWNhCi0gMDA6NjA6 NzAgIENpc2NvIFN5c3RlbXMsIEluYy4KLUBAIC00NDI1LDcgKzU3MDYsNyBAQAotIDAwOjYwOjdF ICBHaWdhbGFicywgSW5jLgotIDAwOjYwOjdGICBBdXJvcmEgVGVjaG5vbG9naWVzLCBJbmMuCi0g MDA6NjA6ODAgIE1pY3JvdHJvbml4IERhdGFjb20gTHRkLgotLTAwOjYwOjgxICBUdi9jb20gSW50 ZXJuYXRpb25hbAotKzAwOjYwOjgxICBUdi9Db20gSW50ZXJuYXRpb25hbAotIDAwOjYwOjgyICBO b3ZhbGluayBUZWNobm9sb2dpZXMsIEluYy4KLSAwMDo2MDo4MyAgQ2lzY28gU3lzdGVtcywgSW5j LgotIDAwOjYwOjg0ICBEaWdpdGFsIFZpZGVvCi1AQCAtNDQzNiwyMyArNTcxNywyMyBAQAotIDAw OjYwOjg5ICBYYXRhCi0gMDA6NjA6OEEgIENpdGFkZWwgQ29tcHV0ZXIKLSAwMDo2MDo4QiAgQ29u ZmVydGVjaCBJbnRlcm5hdGlvbmFsCi0tMDA6NjA6OEMgIDNjb20gQ29ycG9yYXRpb24KLSswMDo2 MDo4QyAgM0NvbSBDb3Jwb3JhdGlvbgotIDAwOjYwOjhEICBVbmlwdWxzZSBDb3JwLgotIDAwOjYw OjhFICBIZSBFbGVjdHJvbmljcywgVGVjaG5vbG9naWUgJiBTeXN0ZW10ZWNobmlrIEdtYmgKLSAw MDo2MDo4RiAgVGVrcmFtIFRlY2hub2xvZ3kgQ28uLCBMdGQuCi0gMDA6NjA6OTAgIEFibGUgQ29t bXVuaWNhdGlvbnMsIEluYy4KLSAwMDo2MDo5MSAgRmlyc3QgUGFjaWZpYyBOZXR3b3JrcywgSW5j LgotLTAwOjYwOjkyICBNaWNyby9zeXMsIEluYy4KLSswMDo2MDo5MiAgTWljcm8vU3lzLCBJbmMu Ci0gMDA6NjA6OTMgIFZhcmlhbgotIDAwOjYwOjk0ICBJYm0gQ29ycC4KLS0wMDo2MDo5NSAgQWNj dS10aW1lIFN5c3RlbXMsIEluYy4KLS0wMDo2MDo5NiAgVC5zLiBNaWNyb3RlY2ggSW5jLgotLTAw OjYwOjk3ICAzY29tIENvcnBvcmF0aW9uCi0rMDA6NjA6OTUgIEFjY3UtVGltZSBTeXN0ZW1zLCBJ bmMuCi0rMDA6NjA6OTYgIFQuUy4gTWljcm90ZWNoIEluYy4KLSswMDo2MDo5NyAgM0NvbSBDb3Jw b3JhdGlvbgotIDAwOjYwOjk4ICBIdCBDb21tdW5pY2F0aW9ucwotLTAwOjYwOjk5ICBMYW4gTWVk aWEgQ29ycG9yYXRpb24KLSswMDo2MDo5OSAgU2JlLCBJbmMuCi0gMDA6NjA6OUEgIE5qayBUZWNo bm8gQ28uCi0tMDA6NjA6OUIgIEFzdHJvLW1lZCwgSW5jLgotLTAwOjYwOjlDICBQZXJraW4tZWxt ZXIgSW5jb3Jwb3JhdGVkCi0rMDA6NjA6OUIgIEFzdHJvLU1lZCwgSW5jLgotKzAwOjYwOjlDICBQ ZXJraW4tRWxtZXIgSW5jb3Jwb3JhdGVkCi0gMDA6NjA6OUQgIFBtaSBGb29kIEVxdWlwbWVudCBH cm91cAotIDAwOjYwOjlFICBBc2MgWDMgLSBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IFN0YW5kYXJk cyBTZWNyZXRhcmlhdHMKLSAwMDo2MDo5RiAgUGhhc3QgQ29ycG9yYXRpb24KLUBAIC00NDY2LDE3 ICs1NzQ3LDE3IEBACi0gMDA6NjA6QTcgIE1pY3Jvc2VucyBHbWJoICYgQ28uIEtnCi0gMDA6NjA6 QTggIFRpZG9tYXQgQWIKLSAwMDo2MDpBOSAgR2VzeXRlYyBNYmgKLS0wMDo2MDpBQSAgSW50ZWxs aWdlbnQgRGV2aWNlcyBJbmMuIChpZGkpCi0rMDA6NjA6QUEgIEludGVsbGlnZW50IERldmljZXMg SW5jLiAoSWRpKQotIDAwOjYwOkFCICBMYXJzY29tIEluY29ycG9yYXRlZAotIDAwOjYwOkFDICBS ZXNpbGllbmNlIENvcnBvcmF0aW9uCi0gMDA6NjA6QUQgIE1lZ2FjaGlwcyBDb3Jwb3JhdGlvbgot IDAwOjYwOkFFICBUcmlvIEluZm9ybWF0aW9uIFN5c3RlbXMgQWIKLSAwMDo2MDpBRiAgUGFjaWZp YyBNaWNybyBEYXRhLCBJbmMuCi0tMDA6NjA6QjAgIEhld2xldHQtcGFja2FyZCBDby4KLS0wMDo2 MDpCMSAgSW5wdXQvb3V0cHV0LCBJbmMuCi0rMDA6NjA6QjAgIEhld2xldHQtUGFja2FyZCBDby4K LSswMDo2MDpCMSAgSW5wdXQvT3V0cHV0LCBJbmMuCi0gMDA6NjA6QjIgIFByb2Nlc3MgQ29udHJv bCBDb3JwLgotLTAwOjYwOkIzICBTTUMgU01DMjY0MlcKLS0wMDo2MDpCNCAgR2xlbmF5cmUgUiZk IEluYy4KLSswMDo2MDpCMyAgWi1Db20sIEluYy4KLSswMDo2MDpCNCAgR2xlbmF5cmUgUiZEIElu Yy4KLSAwMDo2MDpCNSAgS2ViYSBHbWJoCi0gMDA6NjA6QjYgIExhbmQgQ29tcHV0ZXIgQ28uLCBM dGQuCi0gMDA6NjA6QjcgIENoYW5uZWxtYXRpYywgSW5jLgotQEAgLTQ0ODUsMTQgKzU3NjYsMTQg QEAKLSAwMDo2MDpCQSAgU2FoYXJhIE5ldHdvcmtzLCBJbmMuCi0gMDA6NjA6QkIgIENhYmxldHJv biAtIE5ldGxpbmssIEluYy4KLSAwMDo2MDpCQyAgS2V1bnlvdW5nIEVsZWN0cm9uaWNzICYgQ29t bXVuaWNhdGlvbiBDby4sIEx0ZC4KLS0wMDo2MDpCRCAgSHViYmVsbC1wdWxzZWNvbQotKzAwOjYw OkJEICBIdWJiZWxsLVB1bHNlY29tCi0gMDA6NjA6QkUgIFdlYnRyb25pY3MKLSAwMDo2MDpCRiAg TWFjcmFpZ29yIFN5c3RlbXMsIEluYy4KLSAwMDo2MDpDMCAgTmVyYSBBcwotIDAwOjYwOkMxICBX YXZlc3BhbiBDb3Jwb3JhdGlvbgotIDAwOjYwOkMyICBNcGwgQWcKLSAwMDo2MDpDMyAgTmV0dmlz aW9uIENvcnBvcmF0aW9uCi0tMDA6NjA6QzQgIFNvbGl0b24gU3lzdGVtcyBLLmsuCi0rMDA6NjA6 QzQgIFNvbGl0b24gU3lzdGVtcyBLLksuCi0gMDA6NjA6QzUgIEFuY290IENvcnAuCi0gMDA6NjA6 QzYgIERjcyBBZwotIDAwOjYwOkM3ICBBbWF0aSBDb21tdW5pY2F0aW9ucyBDb3JwLgotQEAgLTQ1 MDcsMTkgKzU3ODgsMTkgQEAKLSAwMDo2MDpEMCAgU25tcCBSZXNlYXJjaCBJbmNvcnBvcmF0ZWQK LSAwMDo2MDpEMSAgQ2FzY2FkZSBDb21tdW5pY2F0aW9ucwotIDAwOjYwOkQyICBMdWNlbnQgVGVj aG5vbG9naWVzIFRhaXdhbiBUZWxlY29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCi0tMDA6NjA6RDMg IEF0JnQKLSswMDo2MDpEMyAgQXQmVAotIDAwOjYwOkQ0ICBFbGRhdCBDb21tdW5pY2F0aW9uIEx0 ZC4KLSAwMDo2MDpENSAgTWl5YWNoaSBUZWNobm9zIENvcnAuCi0gMDA6NjA6RDYgIE5vdmF0ZWwg V2lyZWxlc3MgVGVjaG5vbG9naWVzIEx0ZC4KLS0wMDo2MDpENyAgRWNvbGUgUG9seXRlY2huaXF1 ZSBGZWRlcmFsZSBEZSBMYXVzYW5uZSAoZXBmbCkKLSswMDo2MDpENyAgRWNvbGUgUG9seXRlY2hu aXF1ZSBGZWRlcmFsZSBEZSBMYXVzYW5uZSAoRXBmbCkKLSAwMDo2MDpEOCAgRWxtaWMgU3lzdGVt cywgSW5jLgotIDAwOjYwOkQ5ICBUcmFuc3lzIE5ldHdvcmtzIEluYy4KLSAwMDo2MDpEQSAgSmJt IEVsZWN0cm9uaWNzIENvLgotLTAwOjYwOkRCICBOdHAgRWxla3Ryb25payBBL3MKLSswMDo2MDpE QiAgTnRwIEVsZWt0cm9uaWsgQS9TCi0gMDA6NjA6REMgIFRveW8gQ29tbXVuaWNhdGlvbiBFcXVp cG1lbnQgQ28uLCBMdGQuCi0gMDA6NjA6REQgIE15cmljb20sIEluYy4KLS0wMDo2MDpERSAgS2F5 c2VyLXRocmVkZSBHbWJoCi0tMDA6NjA6REYgIElucmFuZ2UgVGVjaG5vbG9naWVzIENvcnAuCi0r MDA6NjA6REUgIEtheXNlci1UaHJlZGUgR21iaAotKzAwOjYwOkRGICBDbnQgQ29ycG9yYXRpb24K LSAwMDo2MDpFMCAgQXhpb20gVGVjaG5vbG9neSBDby4sIEx0ZC4KLSAwMDo2MDpFMSAgT3Jja2l0 IENvbW11bmljYXRpb25zIEx0ZC4KLSAwMDo2MDpFMiAgUXVlc3QgRW5naW5lZXJpbmcgJiBEZXZl bG9wbWVudAotQEAgLTQ1MjgsNyArNTgwOSw3IEBACi0gMDA6NjA6RTUgIEZ1amkgQXV0b21hdGlv biBDby4sIEx0ZC4KLSAwMDo2MDpFNiAgU2hvbWl0aSBTeXN0ZW1zIEluY29ycG9yYXRlZAotIDAw OjYwOkU3ICBSYW5kYXRhCi0tMDA6NjA6RTggIEhpdGFjaGkgQ29tcHV0ZXIgUHJvZHVjdHMgKGFt ZXJpY2EpLCBJbmMuCi0rMDA6NjA6RTggIEhpdGFjaGkgQ29tcHV0ZXIgUHJvZHVjdHMgKEFtZXJp Y2EpLCBJbmMuCi0gMDA6NjA6RTkgIEF0b3AgVGVjaG5vbG9naWVzLCBJbmMuCi0gMDA6NjA6RUEg IFN0cmVhbWxvZ2ljCi0gMDA6NjA6RUIgIEZvdXJ0aHRyYWNrIFN5c3RlbXMKLUBAIC00NTM5LDcg KzU4MjAsNyBAQAotIDAwOjYwOkYwICBKb2huc29uICYgSm9obnNvbiBNZWRpY2FsLCBJbmMKLSAw MDo2MDpGMSAgRXhwIENvbXB1dGVyLCBJbmMuCi0gMDA6NjA6RjIgIExhc2VyZ3JhcGhpY3MsIElu Yy4KLS0wMDo2MDpGMyAgTmV0Y29tIFN5c3RlbXMsIEluYy4KLSswMDo2MDpGMyAgUGVyZm9ybWFu Y2UgQW5hbHlzaXMgQnJvYWRiYW5kLCBTcGlyZW50IFBsYwotIDAwOjYwOkY0ICBBZHZhbmNlZCBD b21wdXRlciBTb2x1dGlvbnMsIEluYy4KLSAwMDo2MDpGNSAgSWNvbiBXZXN0LCBJbmMuCi0gMDA6 NjA6RjYgIE5leHRlc3QgQ29tbXVuaWNhdGlvbnMgUHJvZHVjdHMsIEluYy4KLUBAIC00NTUyLDI4 ICs1ODMzLDI4IEBACi0gMDA6NjA6RkQgIE5ldGljcywgSW5jLgotIDAwOjYwOkZFICBMeW54IFN5 c3RlbSBEZXZlbG9wZXJzLCBJbmMuCi0gMDA6NjA6RkYgIFF1dmlzLCBJbmMuCi0tMDA6NzA6QjAg IE0vYS1jb20gSW5jLiBDb21wYW5pZXMKLSswMDo3MDpCMCAgTS9BLUNvbSBJbmMuIENvbXBhbmll cwotIDAwOjcwOkIzICBEYXRhIFJlY2FsbCBMdGQuCi0gMDA6ODA6MDAgIE11bHRpdGVjaCBTeXN0 ZW1zLCBJbmMuCi0gMDA6ODA6MDEgIFBlcmlwaG9uaWNzIENvcnBvcmF0aW9uCi0tMDA6ODA6MDIg IFNhdGVsY29tICh1aykgTHRkCi0rMDA6ODA6MDIgIFNhdGVsY29tIChVaykgTHRkCi0gMDA6ODA6 MDMgIEh5dGVjIEVsZWN0cm9uaWNzIEx0ZC4KLSAwMDo4MDowNCAgQW50bG93IENvbW11bmljYXRp b25zLCBMdGQuCi0gMDA6ODA6MDUgIENhY3R1cyBDb21wdXRlciBJbmMuCi0gMDA6ODA6MDYgIENv bXB1YWRkIENvcnBvcmF0aW9uCi0tMDA6ODA6MDcgIERsb2cgTmMtc3lzdGVtZQotKzAwOjgwOjA3 ICBEbG9nIE5jLVN5c3RlbWUKLSAwMDo4MDowOCAgRHluYXRlY2ggQ29tcHV0ZXIgU3lzdGVtcwot IDAwOjgwOjA5ICBKdXBpdGVyIFN5c3RlbXMsIEluYy4KLSAwMDo4MDowQSAgSmFwYW4gQ29tcHV0 ZXIgQ29ycC4KLSAwMDo4MDowQiAgQ3NrIENvcnBvcmF0aW9uCi0gMDA6ODA6MEMgIFZpZGVjb20g TGltaXRlZAotLTAwOjgwOjBEICBWb3Nzd2lua2VsIEYudS4KLSswMDo4MDowRCAgVm9zc3dpbmtl bCBGLlUuCi0gMDA6ODA6MEUgIEF0bGFudGl4IENvcnBvcmF0aW9uCi0gMDA6ODA6MEYgIFN0YW5k YXJkIE1pY3Jvc3lzdGVtcwotIDAwOjgwOjEwICBDb21tb2RvcmUgSW50ZXJuYXRpb25hbAotIDAw OjgwOjExICBEaWdpdGFsIFN5c3RlbXMgSW50J2wuIEluYy4KLSAwMDo4MDoxMiAgSW50ZWdyYXRl ZCBNZWFzdXJlbWVudCBTeXN0ZW1zCi0tMDA6ODA6MTMgIFRob21hcy1jb25yYWQgQ29ycG9yYXRp b24KLSswMDo4MDoxMyAgVGhvbWFzLUNvbnJhZCBDb3Jwb3JhdGlvbgotIDAwOjgwOjE0ICBFc3By aXQgU3lzdGVtcwotIDAwOjgwOjE1ICBTZWlrbyBTeXN0ZW1zLCBJbmMuCi0gMDA6ODA6MTYgIFdh bmRlbCBBbmQgR29sdGVybWFubgotQEAgLTQ1ODcsMTQgKzU4NjgsMTQgQEAKLSAwMDo4MDoxRSAg WGluZXRyb24sIEluYy4KLSAwMDo4MDoxRiAgS3J1cHAgQXRsYXMgRWxlY3Ryb25payBHbWJoCi0g MDA6ODA6MjAgIE5ldHdvcmsgUHJvZHVjdHMKLS0wMDo4MDoyMSAgTmV3YnJpZGdlIFJlc2VhcmNo IENvcnAuCi0tMDA6ODA6MjIgIFNjYW4tb3B0aWNzCi0rMDA6ODA6MjEgIEFsY2F0ZWwgQ2FuYWRh IEluYy4KLSswMDo4MDoyMiAgU2Nhbi1PcHRpY3MKLSAwMDo4MDoyMyAgSW50ZWdyYXRlZCBCdXNp bmVzcyBOZXR3b3JrcwotIDAwOjgwOjI0ICBLYWxwYW5hLCBJbmMuCi0gMDA6ODA6MjUgIFN0b2xs bWFubiBHbWJoCi0gMDA6ODA6MjYgIE5ldHdvcmsgUHJvZHVjdHMgQ29ycG9yYXRpb24KLSAwMDo4 MDoyNyAgQWRhcHRpdmUgU3lzdGVtcywgSW5jLgotLTAwOjgwOjI4ICBUcmFkcG9zdCAoaGspIEx0 ZAotKzAwOjgwOjI4ICBUcmFkcG9zdCAoSGspIEx0ZAotIDAwOjgwOjI5ICBFYWdsZSBUZWNobm9s b2d5LCBJbmMuCi0gMDA6ODA6MkEgIFRlc3QgU3lzdGVtcyAmIFNpbXVsYXRpb25zIEluYwotIDAw OjgwOjJCICBJbnRlZ3JhdGVkIE1hcmtldGluZyBDbwotQEAgLTQ2MjUsMTEgKzU5MDYsMTEgQEAK LSAwMDo4MDo0NCAgU3lzdGVjaCBDb21wdXRlciBDb3JwLgotIDAwOjgwOjQ1ICBNYXRzdXNoaXRh IEVsZWN0cmljIEluZC4gQ28KLSAwMDo4MDo0NiAgVW5pdmVyc2l0eSBPZiBUb3JvbnRvCi0tMDA6 ODA6NDcgIEluLW5ldCBDb3JwLgotKzAwOjgwOjQ3ICBJbi1OZXQgQ29ycC4KLSAwMDo4MDo0OCAg Q29tcGV4IEluY29ycG9yYXRlZAotIDAwOjgwOjQ5ICBOaXNzaW4gRWxlY3RyaWMgQ28uLCBMdGQu Ci0tMDA6ODA6NEEgIFByby1sb2cKLS0wMDo4MDo0QiAgRWFnbGUgVGVjaG5vbG9naWVzIFB0eS5s dGQuCi0rMDA6ODA6NEEgIFByby1Mb2cKLSswMDo4MDo0QiAgRWFnbGUgVGVjaG5vbG9naWVzIFB0 eS5MdGQuCi0gMDA6ODA6NEMgIENvbnRlYyBDby4sIEx0ZC4KLSAwMDo4MDo0RCAgQ3ljbG9uZSBN aWNyb3N5c3RlbXMsIEluYy4KLSAwMDo4MDo0RSAgQXBleCBDb21wdXRlciBDb21wYW55Ci1AQCAt NDY0NCw3ICs1OTI1LDcgQEAKLSAwMDo4MDo1NyAgQWRzb2Z0LCBMdGQuCi0gMDA6ODA6NTggIFBy aW50ZXIgU3lzdGVtcyBDb3Jwb3JhdGlvbgotIDAwOjgwOjU5ICBTdGFubGV5IEVsZWN0cmljIENv LiwgTHRkCi0tMDA6ODA6NUEgIFR1bGlwIENvbXB1dGVycyBJbnRlcm5hdCdsIEIudgotKzAwOjgw OjVBICBUdWxpcCBDb21wdXRlcnMgSW50ZXJuYXQnbCBCLlYKLSAwMDo4MDo1QiAgQ29uZG9yIFN5 c3RlbXMsIEluYy4KLSAwMDo4MDo1QyAgQWdpbGlzIENvcnBvcmF0aW9uCi0gMDA6ODA6NUQgIENh bnN0YXIKLUBAIC00NjYwLDcgKzU5NDEsNyBAQAotIDAwOjgwOjY3ICBTcXVhcmUgRCBDb21wYW55 Ci0gMDA6ODA6NjggIFlhbWF0ZWNoIFNjaWVudGlmaWMgTHRkLgotIDAwOjgwOjY5ICBDb21wdXRv bmUgU3lzdGVtcwotLTAwOjgwOjZBICBFcmkgKGVtcGFjIFJlc2VhcmNoIEluYy4pCi0rMDA6ODA6 NkEgIEVyaSAoRW1wYWMgUmVzZWFyY2ggSW5jLikKLSAwMDo4MDo2QiAgU2NobWlkIFRlbGVjb21t dW5pY2F0aW9uCi0gMDA6ODA6NkMgIENlZ2VsZWMgUHJvamVjdHMgTHRkCi0gMDA6ODA6NkQgIENl bnR1cnkgU3lzdGVtcyBDb3JwLgotQEAgLTQ2ODcsMjMgKzU5NjgsMjMgQEAKLSAwMDo4MDo4MiAg UGVwIE1vZHVsYXIgQ29tcHV0ZXJzIEdtYmgKLSAwMDo4MDo4MyAgQW1kYWhsCi0gMDA6ODA6ODQg IFRoZSBDbG91ZCBJbmMuCi0tMDA6ODA6ODUgIEgtdGhyZWUgU3lzdGVtcyBDb3Jwb3JhdGlvbgot KzAwOjgwOjg1ICBILVRocmVlIFN5c3RlbXMgQ29ycG9yYXRpb24KLSAwMDo4MDo4NiAgQ29tcHV0 ZXIgR2VuZXJhdGlvbiBJbmMuCi0gMDA6ODA6ODcgIE9raSBFbGVjdHJpYyBJbmR1c3RyeSBDby4s IEx0ZAotIDAwOjgwOjg4ICBWaWN0b3IgQ29tcGFueSBPZiBKYXBhbiwgTHRkLgotLTAwOjgwOjg5 ICBUZWNuZXRpY3MgKHB0eSkgTHRkLgotKzAwOjgwOjg5ICBUZWNuZXRpY3MgKFB0eSkgTHRkLgot IDAwOjgwOjhBICBTdW1taXQgTWljcm9zeXN0ZW1zIENvcnAuCi0gMDA6ODA6OEIgIERhY29sbCBM aW1pdGVkCi0gMDA6ODA6OEMgIE5ldHNjb3V0IFN5c3RlbXMsIEluYy4KLS0wMDo4MDo4RCAgV2Vz dGNvYXN0IFRlY2hub2xvZ3kgQi52LgotKzAwOjgwOjhEICBXZXN0Y29hc3QgVGVjaG5vbG9neSBC LlYuCi0gMDA6ODA6OEUgIFJhZHN0b25lIFRlY2hub2xvZ3kKLSAwMDo4MDo4RiAgQy4gSXRvaCBF bGVjdHJvbmljcywgSW5jLgotIDAwOjgwOjkwICBNaWNyb3RlayBJbnRlcm5hdGlvbmFsLCBJbmMu Ci0tMDA6ODA6OTEgIFRva3lvIEVsZWN0cmljIENvLixsdGQKLSswMDo4MDo5MSAgVG9reW8gRWxl Y3RyaWMgQ28uLEx0ZAotIDAwOjgwOjkyICBKYXBhbiBDb21wdXRlciBJbmR1c3RyeSwgSW5jLgot IDAwOjgwOjkzICBYeXJvbiBDb3Jwb3JhdGlvbgotIDAwOjgwOjk0ICBBbGZhIExhdmFsIEF1dG9t YXRpb24gQWIKLS0wMDo4MDo5NSAgQmFzaWMgTWVydG9uIEhhbmRlbHNnZXMubS5iLmguCi0rMDA6 ODA6OTUgIEJhc2ljIE1lcnRvbiBIYW5kZWxzZ2VzLk0uQi5ILgotIDAwOjgwOjk2ICBIdW1hbiBE ZXNpZ25lZCBTeXN0ZW1zLCBJbmMuCi0gMDA6ODA6OTcgIENlbnRyYWxwIEF1dG9tYXRpc21lcwot IDAwOjgwOjk4ICBUZGsgQ29ycG9yYXRpb24KLUBAIC00NzE0LDcgKzU5OTUsNyBAQAotIDAwOjgw OjlEICBDb21tc2NyYWZ0IEx0ZC4KLSAwMDo4MDo5RSAgRGF0dXMgR21iaAotIDAwOjgwOjlGICBB bGNhdGVsIEJ1c2luZXNzIFN5c3RlbXMKLS0wMDo4MDpBMCAgRWRpc2EgSGV3bGV0dCBQYWNrYXJk IFMvYQotKzAwOjgwOkEwICBFZGlzYSBIZXdsZXR0IFBhY2thcmQgUy9BCi0gMDA6ODA6QTEgIE1p Y3JvdGVzdCwgSW5jLgotIDAwOjgwOkEyICBDcmVhdGl2ZSBFbGVjdHJvbmljIFN5c3RlbXMKLSAw MDo4MDpBMyAgTGFudHJvbml4Ci1AQCAtNDczMSw3ICs2MDEyLDcgQEAKLSAwMDo4MDpBRSAgSHVn aGVzIE5ldHdvcmsgU3lzdGVtcwotIDAwOjgwOkFGICBBbGx1bWVyIENvLiwgTHRkLgotIDAwOjgw OkIwICBBZHZhbmNlZCBJbmZvcm1hdGlvbgotLTAwOjgwOkIxICBTb2Z0Y29tIEEvcwotKzAwOjgw OkIxICBTb2Z0Y29tIEEvUwotIDAwOjgwOkIyICBOZXR3b3JrIEVxdWlwbWVudCBUZWNobm9sb2dp ZXMKLSAwMDo4MDpCMyAgQXZhbCBEYXRhIENvcnBvcmF0aW9uCi0gMDA6ODA6QjQgIFNvcGhpYSBT eXN0ZW1zCi1AQCAtNDc0MCw3ICs2MDIxLDcgQEAKLSAwMDo4MDpCNyAgU3RlbGxhciBDb21wdXRl cgotIDAwOjgwOkI4ICBCdWcsIEluY29ycG9yYXRlZAotIDAwOjgwOkI5ICBBcmNoZSBUZWNobm9s aWdpZXMgSW5jLgotLTAwOjgwOkJBICBTcGVjaWFsaXggKGFzaWEpIFB0ZSwgTHRkCi0rMDA6ODA6 QkEgIFNwZWNpYWxpeCAoQXNpYSkgUHRlLCBMdGQKLSAwMDo4MDpCQiAgSHVnaGVzIExhbiBTeXN0 ZW1zCi0gMDA6ODA6QkMgIEhpdGFjaGkgRW5naW5lZXJpbmcgQ28uLCBMdGQKLSAwMDo4MDpCRCAg VGhlIEZ1cnVrYXdhIEVsZWN0cmljIENvLiwgTHRkCi1AQCAtNDc0OCwxMyArNjAyOSwxMyBAQAot IDAwOjgwOkJGICBUYWthb2thIEVsZWN0cmljIE1mZy4gQ28uIEx0ZC4KLSAwMDo4MDpDMCAgUGVu cmlsIERhdGFjb21tCi0gMDA6ODA6QzEgIExhbmV4IENvcnBvcmF0aW9uCi0tMDA6ODA6QzIgIEll ZWUgODAyIENvbW1pdHRlZQotKzAwOjgwOkMyICBJZWVlIDgwMi4xIENvbW1pdHRlZQotIDAwOjgw OkMzICBCaWNjIEluZm9ybWF0aW9uIFN5c3RlbXMgJiBTdmMKLSAwMDo4MDpDNCAgRG9jdW1lbnQg VGVjaG5vbG9naWVzLCBJbmMuCi0gMDA6ODA6QzUgIE5vdmVsbGNvIERlIE1leGljbwotIDAwOjgw OkM2ICBOYXRpb25hbCBEYXRhY29tbSBDb3Jwb3JhdGlvbgotLTAwOjgwOkM3ICBOZXR3YXZlIChY aXJjb20gTmV0d2F2ZS9OZXR3YXZlIEFpcnN1cmZlcikKLS0wMDo4MDpDOCAgRC1saW5rIFN5c3Rl bXMsIEluYy4KLSswMDo4MDpDNyAgWGlyY29tCi0rMDA6ODA6QzggIEQtTGluayBTeXN0ZW1zLCBJ bmMuCi0gMDA6ODA6QzkgIEFsYmVydGEgTWljcm9lbGVjdHJvbmljIENlbnRyZQotIDAwOjgwOkNB ICBOZXRjb20gUmVzZWFyY2ggSW5jb3Jwb3JhdGVkCi0gMDA6ODA6Q0IgIEZhbGNvIERhdGEgUHJv ZHVjdHMKLUBAIC00Nzc1LDI2ICs2MDU2LDI2IEBACi0gMDA6ODA6REEgIEJydWVsICYgS2phZXIK LSAwMDo4MDpEQiAgR3JhcGhvbiBDb3Jwb3JhdGlvbgotIDAwOjgwOkRDICBQaWNrZXIgSW50ZXJu YXRpb25hbAotLTAwOjgwOkREICBHbXggSW5jL2dpbWl4Ci0tMDA6ODA6REUgIEdpcHNpIFMuYS4K LSswMDo4MDpERCAgR214IEluYy9HaW1peAotKzAwOjgwOkRFICBHaXBzaSBTLkEuCi0gMDA6ODA6 REYgIEFkYyBDb2Rlbm9sbCBUZWNobm9sb2d5IENvcnAuCi0gMDA6ODA6RTAgIFh0cCBTeXN0ZW1z LCBJbmMuCi0gMDA6ODA6RTEgIFN0bWljcm9lbGVjdHJvbmljcwotLTAwOjgwOkUyICBULmQuaS4g Q28uLCBMdGQuCi0rMDA6ODA6RTIgIFQuRC5JLiBDby4sIEx0ZC4KLSAwMDo4MDpFMyAgQ29yYWwg TmV0d29yayBDb3Jwb3JhdGlvbgotIDAwOjgwOkU0ICBOb3J0aHdlc3QgRGlnaXRhbCBTeXN0ZW1z LCBJbmMKLSAwMDo4MDpFNSAgTXlsZXggQ29ycG9yYXRpb24KLSAwMDo4MDpFNiAgUGVlciBOZXR3 b3JrcywgSW5jLgotIDAwOjgwOkU3ICBMeW53b29kIFNjaWVudGlmaWMgRGV2LiBMdGQuCi0gMDA6 ODA6RTggIEN1bXVsdXMgQ29ycG9yYXRpaW9uCi0tMDA6ODA6RTkgIE1hZGdlIE5ldHdvcmtzCi0r MDA6ODA6RTkgIE1hZGdlIEx0ZC4KLSAwMDo4MDpFQSAgQWR2YSBPcHRpY2FsIE5ldHdvcmtpbmcg THRkLgotLTAwOjgwOkVCICBDb21wY29udHJvbCBCLnYuCi0rMDA6ODA6RUIgIENvbXBjb250cm9s IEIuVi4KLSAwMDo4MDpFQyAgU3VwZXJjb21wdXRpbmcgU29sdXRpb25zLCBJbmMuCi0gMDA6ODA6 RUQgIElxIFRlY2hub2xvZ2llcywgSW5jLgotIDAwOjgwOkVFICBUaG9tc29uIENzZgotIDAwOjgw OkVGICBSYXRpb25hbAotLTAwOjgwOkYwICBLeXVzaHUgTWF0c3VzaGl0YSBFbGVjdHJpYyBDby4K LSswMDo4MDpGMCAgUGFuYXNvbmljIENvbW11bmljYXRpb25zIENvLiwgTHRkLgotIDAwOjgwOkYx ICBPcHVzIFN5c3RlbXMKLSAwMDo4MDpGMiAgUmF5Y29tIFN5c3RlbXMgSW5jCi0gMDA6ODA6RjMg IFN1biBFbGVjdHJvbmljcyBDb3JwLgotQEAgLTQ4MTQsOSArNjA5NSw5IEBACi0gMDA6OTA6MDEg IE5pc2hpbXUgRWxlY3Ryb25pY3MgSW5kdXN0cmllcyBDby4sIEx0ZC4KLSAwMDo5MDowMiAgQWxs Z29uIEFiCi0gMDA6OTA6MDMgIEFwbGlvCi0tMDA6OTA6MDQgIDNjb20gRXVyb3BlIEx0ZC4KLSsw MDo5MDowNCAgM0NvbSBFdXJvcGUgTHRkLgotIDAwOjkwOjA1ICBQcm90ZWNoIFN5c3RlbXMgQ28u LCBMdGQuCi0tMDA6OTA6MDYgIEhhbWFtYXRzdSBQaG90b25pY3MgSy5rLgotKzAwOjkwOjA2ICBI YW1hbWF0c3UgUGhvdG9uaWNzIEsuSy4KLSAwMDo5MDowNyAgRG9tZXggVGVjaG5vbG9neSBDb3Jw LgotIDAwOjkwOjA4ICBIYW5hIFN5c3RlbXMgSW5jLgotIDAwOjkwOjA5ICBJIENvbnRyb2xzLCBJ bmMuCi1AQCAtNDgzOSwxMCArNjEyMCwxMCBAQAotIDAwOjkwOjFBICBVbmlzcGhlcmUgU29sdXRp b25zCi0gMDA6OTA6MUIgIERpZ2l0YWwgQ29udHJvbHMKLSAwMDo5MDoxQyAgTXBzIFNvZnR3YXJl IEdtYmgKLS0wMDo5MDoxRCAgUGVjIChueikgTHRkLgotLTAwOjkwOjFFICBTZWxlc3RhIEluZ2Vn bmUgUmlhIFMucC5hLgotKzAwOjkwOjFEICBQZWMgKE56KSBMdGQuCi0rMDA6OTA6MUUgIFNlbGVz dGEgSW5nZWduZSBSaWEgUy5QLkEuCi0gMDA6OTA6MUYgIEFkdGVjIFByb2R1Y3Rpb25zLCBJbmMu Ci0tMDA6OTA6MjAgIFBoaWxpcHMgQW5hbHl0aWNhbCBYLXJheSBCLnYuCi0rMDA6OTA6MjAgIFBo aWxpcHMgQW5hbHl0aWNhbCBYLVJheSBCLlYuCi0gMDA6OTA6MjEgIENpc2NvIFN5c3RlbXMsIElu Yy4KLSAwMDo5MDoyMiAgSXZleAotIDAwOjkwOjIzICBaaWxvZyBJbmMuCi1AQCAtNDg1NSwxMCAr NjEzNiwxMCBAQAotIDAwOjkwOjJBICBDb21tdW5pY2F0aW9uIERldmljZXMsIEluYy4KLSAwMDo5 MDoyQiAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAwOjkwOjJDICBEYXRhICYgQ29udHJvbCBFcXVp cG1lbnQgTHRkLgotLTAwOjkwOjJEICBEYXRhIEVsZWN0cm9uaWNzIChhdXN0LikgUHR5LCBMdGQu Ci0rMDA6OTA6MkQgIERhdGEgRWxlY3Ryb25pY3MgKEF1c3QuKSBQdHksIEx0ZC4KLSAwMDo5MDoy RSAgTmFtY28gTGltaXRlZAotIDAwOjkwOjJGICBOZXRjb3JlIFN5c3RlbXMsIEluYy4KLS0wMDo5 MDozMCAgSG9uZXl3ZWxsLWRhdGluZwotKzAwOjkwOjMwICBIb25leXdlbGwtRGF0aW5nCi0gMDA6 OTA6MzEgIE15c3RpY29tLCBMdGQuCi0gMDA6OTA6MzIgIFBlbGNvbWJlIEdyb3VwIEx0ZC4KLSAw MDo5MDozMyAgSW5ub3ZhcGhvbmUgR21iaAotQEAgLTQ4NzIsNyArNjE1Myw3IEBACi0gMDA6OTA6 M0IgIFRyaWVtcyBSZXNlYXJjaCBMYWIsIEluYy4KLSAwMDo5MDozQyAgQXRsYW50aWMgTmV0d29y ayBTeXN0ZW1zCi0gMDA6OTA6M0QgIEJpb3BhYyBTeXN0ZW1zLCBJbmMuCi0tMDA6OTA6M0UgIE4u di4gUGhpbGlwcyBJbmR1c3RyaWFsIEFjdGl2aXRpZXMKLSswMDo5MDozRSAgTi5WLiBQaGlsaXBz IEluZHVzdHJpYWwgQWN0aXZpdGllcwotIDAwOjkwOjNGICBBenRlYyBSYWRpb21lZGlhCi0gMDA6 OTA6NDAgIFNpZW1lbnMgTmV0d29yayBDb252ZXJnZW5jZSBMbGMKLSAwMDo5MDo0MSAgQXBwbGll ZCBEaWdpdGFsIEFjY2VzcwotQEAgLTQ4ODcsMjQgKzYxNjgsMjQgQEAKLSAwMDo5MDo0QSAgQ29u Y3VyIFN5c3RlbSBUZWNobm9sb2dpZXMKLSAwMDo5MDo0QiAgR2VtdGVrIFRlY2hub2xvZ3kgQ28u LCBMdGQuCi0gMDA6OTA6NEMgIEVwaWdyYW0sIEluYy4KLS0wMDo5MDo0RCAgU3BlYyBTLmEuCi0r MDA6OTA6NEQgIFNwZWMgUy5BLgotIDAwOjkwOjRFICBEZWxlbSBCdgotLTAwOjkwOjRGICBBYmIg UG93ZXIgVCZkIENvbXBhbnksIEluYy4KLSswMDo5MDo0RiAgQWJiIFBvd2VyIFQmRCBDb21wYW55 LCBJbmMuCi0gMDA6OTA6NTAgIFRlbGVzdGUgT3kKLSAwMDo5MDo1MSAgVWx0aW1hdGUgVGVjaG5v bG9neSBDb3JwLgotLTAwOjkwOjUyICBTZWxjb20gRWxldHRyb25pY2EgUy5yLmwuCi0rMDA6OTA6 NTIgIFNlbGNvbSBFbGV0dHJvbmljYSBTLlIuTC4KLSAwMDo5MDo1MyAgRGFld29vIEVsZWN0cm9u aWNzIENvLiwgTHRkLgotIDAwOjkwOjU0ICBJbm5vdmF0aXZlIFNlbWljb25kdWN0b3JzLCBJbmMK LSAwMDo5MDo1NSAgUGFya2VyIEhhbm5pZmluIENvcnBvcmF0aW9uIENvbXB1bW90b3IgRGl2aXNp b24KLSAwMDo5MDo1NiAgVGVsZXN0cmVhbSwgSW5jLgotIDAwOjkwOjU3ICBBYW5ldGNvbSwgSW5j LgotIDAwOjkwOjU4ICBVbHRyYSBFbGVjdHJvbmljcyBMdGQuLCBDb21tYW5kIEFuZCBDb250cm9s IFN5c3RlbXMKLS0wMDo5MDo1OSAgVGVsZWNvbSBEZXZpY2UgSy5rLgotKzAwOjkwOjU5ICBUZWxl Y29tIERldmljZSBLLksuCi0gMDA6OTA6NUEgIERlYXJib3JuIEdyb3VwLCBJbmMuCi0gMDA6OTA6 NUIgIFJheW1vbmQgQW5kIExhZSBFbmdpbmVlcmluZwotIDAwOjkwOjVDICBFZG1pCi0gMDA6OTA6 NUQgIE5ldGNvbSBTaWNoZXJoZWl0c3RlY2huaWsgR21iaAotLTAwOjkwOjVFICBSYXVsYW5kLWJv cmcgQ29ycG9yYXRpb24KLSswMDo5MDo1RSAgUmF1bGFuZC1Cb3JnIENvcnBvcmF0aW9uCi0gMDA6 OTA6NUYgIENpc2NvIFN5c3RlbXMsIEluYy4KLSAwMDo5MDo2MCAgU3lzdGVtIENyZWF0ZSBDb3Jw LgotIDAwOjkwOjYxICBQYWNpZmljIFJlc2VhcmNoICYgRW5naW5lZXJpbmcgQ29ycG9yYXRpb24K LUBAIC00OTI3LDEzICs2MjA4LDEzIEBACi0gMDA6OTA6NzIgIFNpbXJhZCBBcwotIDAwOjkwOjcz ICBHYWlvIFRlY2hub2xvZ3kKLSAwMDo5MDo3NCAgQXJnb24gTmV0d29ya3MsIEluYy4KLS0wMDo5 MDo3NSAgTmVjIERvIEJyYXNpbCBTLmEuCi0rMDA6OTA6NzUgIE5lYyBEbyBCcmFzaWwgUy5BLgot IDAwOjkwOjc2ICBGbXQgQWlyY3JhZnQgR2F0ZSBTdXBwb3J0IFN5c3RlbXMgQWIKLSAwMDo5MDo3 NyAgQWR2YW5jZWQgRmlicmUgQ29tbXVuaWNhdGlvbnMKLSAwMDo5MDo3OCAgTWVyIFRlbGVtYW5h Z2VtZW50IFNvbHV0aW9ucywgTHRkLgotIDAwOjkwOjc5ICBDbGVhcm9uZSwgSW5jLgotIDAwOjkw OjdBICBTcGVjdHJhbGluayBDb3JwLgotLTAwOjkwOjdCICBFLXRlY2gsIEluYy4KLSswMDo5MDo3 QiAgRS1UZWNoLCBJbmMuCi0gMDA6OTA6N0MgIERpZ2l0YWxjYXN0LCBJbmMuCi0gMDA6OTA6N0Qg IExha2UgQ29tbXVuaWNhdGlvbnMKLSAwMDo5MDo3RSAgVmV0cm9uaXggQ29ycC4KLUBAIC00OTU0 LDcgKzYyMzUsNyBAQAotIDAwOjkwOjhEICBWaWNrZXJzIEVsZWN0cm9uaWNzIFN5c3RlbXMKLSAw MDo5MDo4RSAgTm9ydGVsIE5ldHdvcmtzIEJyb2FkYmFuZCBBY2Nlc3MKLSAwMDo5MDo4RiAgQXVk aW8gQ29kZXMgTHRkLgotLTAwOjkwOjkwICBJLWJ1cwotKzAwOjkwOjkwICBJLUJ1cwotIDAwOjkw OjkxICBEaWdpdGFsc2NhcGUsIEluYy4KLSAwMDo5MDo5MiAgQ2lzY28gU3lzdGVtcywgSW5jLgot IDAwOjkwOjkzICBOYW5hbyBDb3Jwb3JhdGlvbgotQEAgLTQ5NjMsMTQgKzYyNDQsMTQgQEAKLSAw MDo5MDo5NiAgQXNrZXkgQ29tcHV0ZXIgQ29ycC4KLSAwMDo5MDo5NyAgU3ljYW1vcmUgTmV0d29y a3MKLSAwMDo5MDo5OCAgU2JjIERlc2lnbnMsIEluYy4KLS0wMDo5MDo5OSAgQWxsaWVkIFRlbGVz aXMsIEsuay4KLSswMDo5MDo5OSAgQWxsaWVkIFRlbGVzaXMsIEsuSy4KLSAwMDo5MDo5QSAgT25l IFdvcmxkIFN5c3RlbXMsIEluYy4KLSAwMDo5MDo5QiAgTWFya3BvaW50IEFiCi0tMDA6OTA6OUMg IENvbWJveCwgTHRkLgotLTAwOjkwOjlEICBHc2UgU3lzdGVtcywgSW5jLgotKzAwOjkwOjlDICBU ZXJheW9uIENvbW11bmljYXRpb25zIFN5c3RlbXMKLSswMDo5MDo5RCAgTm92YXRlY2ggUHJvY2Vz cyBTb2x1dGlvbnMsIExsYwotIDAwOjkwOjlFICBDcml0aWNhbCBJbywgTGxjCi0tMDA6OTA6OUYg IERpZ2ktZGF0YSBDb3Jwb3JhdGlvbgotLTAwOjkwOkEwICA4eDggSW5jLgotKzAwOjkwOjlGICBE aWdpLURhdGEgQ29ycG9yYXRpb24KLSswMDo5MDpBMCAgOFg4IEluYy4KLSAwMDo5MDpBMSAgRmx5 aW5nIFBpZyBTeXN0ZW1zLCBMdGQuCi0gMDA6OTA6QTIgIEN5YmVydGFuIFRlY2hub2xvZ3ksIElu Yy4KLSAwMDo5MDpBMyAgQ29yZWNlc3MgSW5jLgotQEAgLTQ5ODQsNyArNjI2NSw3IEBACi0gMDA6 OTA6QUIgIENpc2NvIFN5c3RlbXMsIEluYy4KLSAwMDo5MDpBQyAgT3B0aXZpc2lvbiwgSW5jLgot IDAwOjkwOkFEICBBc3BlY3QgRWxlY3Ryb25pY3MsIEluYy4KLS0wMDo5MDpBRSAgSXRhbHRlbCBT LnAuYS4KLSswMDo5MDpBRSAgSXRhbHRlbCBTLlAuQS4KLSAwMDo5MDpBRiAgSi4gTW9yaXRhIE1m Zy4gQ29ycC4KLSAwMDo5MDpCMCAgVmFkZW0KLSAwMDo5MDpCMSAgQ2lzY28gU3lzdGVtcywgSW5j LgotQEAgLTUwMDAsOSArNjI4MSw5IEBACi0gMDA6OTA6QkIgIFRhaW5ldCBDb21tdW5pY2F0aW9u IFN5c3RlbSBDb3JwLgotIDAwOjkwOkJDICBUZWxlbWFubiBDby4sIEx0ZC4KLSAwMDo5MDpCRCAg T21uaWEgQ29tbXVuaWNhdGlvbnMsIEluYy4KLS0wMDo5MDpCRSAgSWJjL2ludGVncmF0ZWQgQnVz aW5lc3MgQ29tcHV0ZXJzCi0rMDA6OTA6QkUgIEliYy9JbnRlZ3JhdGVkIEJ1c2luZXNzIENvbXB1 dGVycwotIDAwOjkwOkJGICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi0tMDA6OTA6QzAgIEsuai4gTGF3 IEVuZ2luZWVycywgSW5jLgotKzAwOjkwOkMwICBLLkouIExhdyBFbmdpbmVlcnMsIEluYy4KLSAw MDo5MDpDMSAgUGVjbyBJaSwgSW5jLgotIDAwOjkwOkMyICBKayBNaWNyb3N5c3RlbXMsIEluYy4K LSAwMDo5MDpDMyAgVG9waWMgU2VtaWNvbmR1Y3RvciBDb3JwLgotQEAgLTUwMTAsMTYgKzYyOTEs MTYgQEAKLSAwMDo5MDpDNSAgSW50ZXJuZXQgTWFnaWMsIEluYy4KLSAwMDo5MDpDNiAgT3B0aW0g U3lzdGVtcywgSW5jLgotIDAwOjkwOkM3ICBJY29tIEluYy4KLS0wMDo5MDpDOCAgV2F2ZXJpZGVy IENvbW11bmljYXRpb25zIChjYW5hZGEpIEluYy4KLS0wMDo5MDpDOSAgUHJvZHVjdGl2aXR5IEVu aGFuY2VtZW50IFByb2R1Y3RzLiwgSW5jLgotKzAwOjkwOkM4ICBXYXZlcmlkZXIgQ29tbXVuaWNh dGlvbnMgKENhbmFkYSkgSW5jLgotKzAwOjkwOkM5ICBEcGFjIFRlY2hub2xvZ2llcwotIDAwOjkw OkNBICBBY2NvcmQgVmlkZW8gVGVsZWNvbW11bmljYXRpb25zLCBMdGQuCi0gMDA6OTA6Q0IgIFdp cmVsZXNzIE9ubGluZSwgSW5jLgotIDAwOjkwOkNDICBQbGFuZXQgQ29tbXVuaWNhdGlvbnMsIElu Yy4KLS0wMDo5MDpDRCAgRW50LWVtcHJlc2EgTmFjaW9uYWwgRGUgVGVsZWNvbW11bmljYWNvZXMs IFMuYS4KLSswMDo5MDpDRCAgRW50LUVtcHJlc2EgTmFjaW9uYWwgRGUgVGVsZWNvbW11bmljYWNv ZXMsIFMuQS4KLSAwMDo5MDpDRSAgVGV0cmEgR21iaAotIDAwOjkwOkNGICBOb3J0ZWwKLSAwMDo5 MDpEMCAgVGhvbXNvbiBCZWxnaXVtCi0tMDA6OTA6RDEgIExlQXJ0ZXJ5IFN5bmNCeUFpciBMTjEw MQotKzAwOjkwOkQxICBMZWljaHUgRW50ZXJwcmlzZSBDby4sIEx0ZC4KLSAwMDo5MDpEMiAgQXJ0 ZWwgVmlkZW8gU3lzdGVtcwotIDAwOjkwOkQzICBHaWVzZWNrZSAmIERldnJpZW50IEdtYmgKLSAw MDo5MDpENCAgQmluZHZpZXcgRGV2ZWxvcG1lbnQgQ29ycC4KLUBAIC01MDM1LDcgKzYzMTYsNyBA QAotIDAwOjkwOkRFICBDYXJka2V5IFN5c3RlbXMsIEluYy4KLSAwMDo5MDpERiAgTWl0c3ViaXNo aSBDaGVtaWNhbCBBbWVyaWNhLCBJbmMuCi0gMDA6OTA6RTAgIFN5c3RyYW4gQ29ycC4KLS0wMDo5 MDpFMSAgVGVsZW5hIFMucC5hLgotKzAwOjkwOkUxICBUZWxlbmEgUy5QLkEuCi0gMDA6OTA6RTIg IERpc3RyaWJ1dGVkIFByb2Nlc3NpbmcgVGVjaG5vbG9neQotIDAwOjkwOkUzICBBdmV4IEVsZWN0 cm9uaWNzIEluYy4KLSAwMDo5MDpFNCAgTmVjIEFtZXJpY2EsIEluYy4KLUBAIC01MDY0LDEyICs2 MzQ1LDEyIEBACi0gMDA6OTA6RkIgIFBvcnR3ZWxsLCBJbmMuCi0gMDA6OTA6RkMgIE5ldHdvcmsg Q29tcHV0aW5nIERldmljZXMKLSAwMDo5MDpGRCAgQ29wcGVyY29tLCBJbmMuCi0tMDA6OTA6RkUg IEVsZWNvbSBDby4sIEx0ZC4gIChsYW5lZWQgRGl2LikKLSswMDo5MDpGRSAgRWxlY29tIENvLiwg THRkLiAgKExhbmVlZCBEaXYuKQotIDAwOjkwOkZGICBUZWxsdXMgVGVjaG5vbG9neSBJbmMuCi0g MDA6OTE6RDYgIENyeXN0YWwgR3JvdXAsIEluYy4KLSAwMDo5RDo4RSAgQ2FyZGlhYyBSZWNvcmRl cnMsIEluYy4KLSAwMDpBMDowMCAgQ2VudGlsbGlvbiBOZXR3b3JrcywgSW5jLgotLTAwOkEwOjAx ICBXYXRraW5zLWpvaG5zb24gQ29tcGFueQotKzAwOkEwOjAxICBXYXRraW5zLUpvaG5zb24gQ29t cGFueQotIDAwOkEwOjAyICBMZWVkcyAmIE5vcnRocnVwIEF1c3RyYWxpYSBQdHkgTHRkCi0gMDA6 QTA6MDMgIFN0YWVmYSBDb250cm9sIFN5c3RlbQotIDAwOkEwOjA0ICBOZXRwb3dlciwgSW5jLgot QEAgLTUwNzgsNyArNjM1OSw3IEBACi0gMDA6QTA6MDcgIEFwZXh4IFRlY2hub2xvZ3ksIEluYy4K LSAwMDpBMDowOCAgTmV0Y29ycAotIDAwOkEwOjA5ICBXaGl0ZXRyZWUgTmV0d29yawotLTAwOkEw OjBBICBSLmQuYy4gQ29tbXVuaWNhdGlvbgotKzAwOkEwOjBBICBSLkQuQy4gQ29tbXVuaWNhdGlv bgotIDAwOkEwOjBCICBDb21wdXRleCBDby4sIEx0ZC4KLSAwMDpBMDowQyAgS2luZ21heCBUZWNo bm9sb2d5LCBJbmMuCi0gMDA6QTA6MEQgIFRoZSBQYW5kYSBQcm9qZWN0Ci1AQCAtNTA4Niw3ICs2 MzY3LDcgQEAKLSAwMDpBMDowRiAgQnJvYWRiYW5kIFRlY2hub2xvZ2llcwotIDAwOkEwOjEwICBT eXNsb2dpYyBEYXRlbnRlY2huaWsgQWcKLSAwMDpBMDoxMSAgTXV0b2ggSW5kdXN0cmllcyBMdGQu Ci0tMDA6QTA6MTIgIEIuYS50Lm0uIEFkdmFuY2VkIFRlY2hub2xvZ2llcwotKzAwOkEwOjEyICBC LkEuVC5NLiBBZHZhbmNlZCBUZWNobm9sb2dpZXMKLSAwMDpBMDoxMyAgVGVsdHJlbmQgTHRkLgot IDAwOkEwOjE0ICBDc2lyCi0gMDA6QTA6MTUgIFd5bGUKLUBAIC01MTAwLDEzICs2MzgxLDEzIEBA Ci0gMDA6QTA6MUQgIFNpeG5ldAotIDAwOkEwOjFFICBFc3QgQ29ycG9yYXRpb24KLSAwMDpBMDox RiAgVHJpY29yZCBTeXN0ZW1zLCBJbmMuCi0tMDA6QTA6MjAgIENpdGljb3JwL3R0aQotKzAwOkEw OjIwICBDaXRpY29ycC9UdGkKLSAwMDpBMDoyMSAgR2VuZXJhbCBEeW5hbWljcy0KLSAwMDpBMDoy MiAgQ2VudHJlIEZvciBEZXZlbG9wbWVudCBPZiBBZHZhbmNlZCBDb21wdXRpbmcKLSAwMDpBMDoy MyAgQXBwbGllZCBDcmVhdGl2ZSBUZWNobm9sb2d5LCBJbmMuCi0tMDA6QTA6MjQgIDNjb20gQ29y cG9yYXRpb24KLSswMDpBMDoyNCAgM0NvbSBDb3Jwb3JhdGlvbgotIDAwOkEwOjI1ICBSZWRjb20g TGFicyBJbmMuCi0tMDA6QTA6MjYgIFRlbGRhdCwgUy5hLgotKzAwOkEwOjI2ICBUZWxkYXQsIFMu QS4KLSAwMDpBMDoyNyAgRmlyZXBvd2VyIFN5c3RlbXMsIEluYy4KLSAwMDpBMDoyOCAgQ29ubmVy IFBlcmlwaGVyYWxzCi0gMDA6QTA6MjkgIENvdWx0ZXIgQ29ycG9yYXRpb24KLUBAIC01MTE2LDcg KzYzOTcsNyBAQAotIDAwOkEwOjJEICAxMzk0IFRyYWRlIEFzc29jaWF0aW9uCi0gMDA6QTA6MkUg IEJyYW5kIENvbW11bmljYXRpb25zLCBMdGQuCi0gMDA6QTA6MkYgIFBpcmVsbGkgQ2F2aQotLTAw OkEwOjMwICBDYXB0b3IgTnYvc2EKLSswMDpBMDozMCAgQ2FwdG9yIE52L1NhCi0gMDA6QTA6MzEg IEhhemVsdGluZSBDb3Jwb3JhdGlvbiwgTXMgMS0xNwotIDAwOkEwOjMyICBHZXMgU2luZ2Fwb3Jl IFB0ZS4gTHRkLgotIDAwOkEwOjMzICBJbWMgTWVic3lzdGVtZSBHbWJoCi1AQCAtNTEyOCwxNSAr NjQwOSwxNSBAQAotIDAwOkEwOjM5ICBSb3NzIFRlY2hub2xvZ3ksIEluYy4KLSAwMDpBMDozQSAg S3Vib3RlayBDb3Jwb3JhdGlvbgotIDAwOkEwOjNCICBUb3NoaW4gRWxlY3RyaWMgQ28uLCBMdGQu Ci0tMDA6QTA6M0MgIEVnJmcgTnVjbGVhciBJbnN0cnVtZW50cwotKzAwOkEwOjNDICBFZyZHIE51 Y2xlYXIgSW5zdHJ1bWVudHMKLSAwMDpBMDozRCAgT3B0by0yMgotIDAwOkEwOjNFICBBdG0gRm9y dW0KLSAwMDpBMDozRiAgQ29tcHV0ZXIgU29jaWV0eSBNaWNyb3Byb2Nlc3NvciAmIE1pY3JvcHJv Y2Vzc29yIFN0YW5kYXJkcyBDCi0gMDA6QTA6NDAgIEFwcGxlIENvbXB1dGVyCi0tMDA6QTA6NDEg IExleWJvbGQtaW5maWNvbgotKzAwOkEwOjQxICBMZXlib2xkLUluZmljb24KLSAwMDpBMDo0MiAg U3B1ciBQcm9kdWN0cyBDb3JwLgotIDAwOkEwOjQzICBBbWVyaWNhbiBUZWNobm9sb2d5IExhYnMs IEluYy4KLS0wMDpBMDo0NCAgTnR0IEludGVsbGlnZW50IFRlY2hub2xvZ3kKLSswMDpBMDo0NCAg TnR0IEl0IENvLiwgTHRkLgotIDAwOkEwOjQ1ICBQaG9lbml4IENvbnRhY3QgR21iaCAmIENvLgot IDAwOkEwOjQ2ICBTY2l0ZXggQ29ycC4gTHRkLgotIDAwOkEwOjQ3ICBJbnRlZ3JhdGVkIEZpdG5l c3MgQ29ycC4KLUBAIC01MTUzLDcgKzY0MzQsNyBAQAotIDAwOkEwOjUyICBTdGFuaWxpdGUgRWxl Y3Ryb25pY3MgUHR5LiBMdGQKLSAwMDpBMDo1MyAgQ29tcGFjdCBEZXZpY2VzLCBJbmMuCi0gMDA6 QTA6NTQgIFByaXZhdGUKLS0wMDpBMDo1NSAgTGlua3RlY2gsIEluYy4KLSswMDpBMDo1NSAgRGF0 YSBEZXZpY2UgQ29ycG9yYXRpb24KLSAwMDpBMDo1NiAgTWljcm9wcm9zcwotIDAwOkEwOjU3ICBM YW5jb20gU3lzdGVtcyBHbWJoCi0gMDA6QTA6NTggIEdsb3J5LCBMdGQuCi1AQCAtNTE2OCwyMCAr NjQ0OSwyMCBAQAotIDAwOkEwOjYxICBQdXJpdGFuIEJlbm5ldHQKLSAwMDpBMDo2MiAgQWVzIFBy b2RhdGEKLSAwMDpBMDo2MyAgSnJsIFN5c3RlbXMsIEluYy4KLS0wMDpBMDo2NCAgS3ZiL2FuYWxl Y3QKLS0wMDpBMDo2NSAgTmV4bGFuZCwgSW5jLgotKzAwOkEwOjY0ICBLdmIvQW5hbGVjdAotKzAw OkEwOjY1ICBTeW1hbnRlYyBDb3Jwb3JhdGlvbgotIDAwOkEwOjY2ICBJc2EgQ28uLCBMdGQuCi0g MDA6QTA6NjcgIE5ldHdvcmsgU2VydmljZXMgR3JvdXAKLSAwMDpBMDo2OCAgQmhwIExpbWl0ZWQK LS0wMDpBMDo2OSAgVHJ1ZXRpbWUKLS0wMDpBMDo2QSAgVmVyaWxpbmsgQ29ycC4KLSswMDpBMDo2 OSAgU3ltbWV0cmljb20sIEluYy4KLSswMDpBMDo2QSAgVmVyaWxpbmsgQ29ycG9yYXRpb24KLSAw MDpBMDo2QiAgRG1zIERvcnNjaCBNaWtyb3N5c3RlbSBHbWJoCi0gMDA6QTA6NkMgIFNoaW5kZW5n ZW4gRWxlY3RyaWMgTWZnLiBDby4sIEx0ZC4KLSAwMDpBMDo2RCAgTWFubmVzbWFubiBUYWxseSBD b3Jwb3JhdGlvbgotIDAwOkEwOjZFICBBdXN0cm9uLCBJbmMuCi0gMDA6QTA6NkYgIFRoZSBBcHBj b24gR3JvdXAsIEluYy4KLSAwMDpBMDo3MCAgQ29hc3Rjb20KLS0wMDpBMDo3MSAgVmlkZW8gTG90 dGVyeSBUZWNobm9sb2dpZXMsaW5jCi0rMDA6QTA6NzEgIFZpZGVvIExvdHRlcnkgVGVjaG5vbG9n aWVzLEluYwotIDAwOkEwOjcyICBPdmF0aW9uIFN5c3RlbXMgTHRkLgotIDAwOkEwOjczICBDb20y MSwgSW5jLgotIDAwOkEwOjc0ICBQZXJjZXB0aW9uIFRlY2hub2xvZ3kKLUBAIC01MTg5LDE2ICs2 NDcwLDE2IEBACi0gMDA6QTA6NzYgIENhcmR3YXJlIExhYiwgSW5jLgotIDAwOkEwOjc3ICBGdWpp dHN1IE5leGlvbiwgSW5jLgotIDAwOkEwOjc4ICBNYXJjb25pIENvbW11bmljYXRpb25zCi0tMDA6 QTA6NzkgIEFscHMgRWxlY3RyaWMgKHVzYSksIEluYy4KLSswMDpBMDo3OSAgQWxwcyBFbGVjdHJp YyAoVXNhKSwgSW5jLgotIDAwOkEwOjdBICBBZHZhbmNlZCBQZXJpcGhlcmFscyBUZWNobm9sb2dp ZXMsIEluYy4KLSAwMDpBMDo3QiAgRGF3biBDb21wdXRlciBJbmNvcnBvcmF0aW9uCi0gMDA6QTA6 N0MgIFRvbnlhbmcgTnlsb24gQ28uLCBMdGQuCi0gMDA6QTA6N0QgIFNlZXEgVGVjaG5vbG9neSwg SW5jLgotIDAwOkEwOjdFICBBdmlkIFRlY2hub2xvZ3ksIEluYy4KLS0wMDpBMDo3RiAgR3NtLXN5 bnRlbCwgTHRkLgotLTAwOkEwOjgwICBBbnRhcmVzIE1pY3Jvc3lzdGVtcwotKzAwOkEwOjdGICBH c20tU3ludGVsLCBMdGQuCi0rMDA6QTA6ODAgIFNiZSwgSW5jLgotIDAwOkEwOjgxICBBbGNhdGVs IERhdGEgTmV0d29ya3MKLS0wMDpBMDo4MiAgTmt0IEVsZWt0cm9uaWsgQS9zCi0rMDA6QTA6ODIg IE5rdCBFbGVrdHJvbmlrIEEvUwotIDAwOkEwOjgzICBBc2ltbXBob255IFR1cmtleQotIDAwOkEw Ojg0ICBEYXRhcGxleCBQdHkuIEx0ZC4KLSAwMDpBMDo4NSAgUHJpdmF0ZQotQEAgLTUyMTUsMTMg KzY0OTYsMTMgQEAKLSAwMDpBMDo5MCAgVGltZXN0ZXAgQ29ycG9yYXRpb24KLSAwMDpBMDo5MSAg QXBwbGljb20gSW50ZXJuYXRpb25hbAotIDAwOkEwOjkyICBILiBCb2xsbWFubiBNYW51ZmFjdHVy ZXJzLCBMdGQKLS0wMDpBMDo5MyAgQi9lIEFlcm9zcGFjZSwgSW5jLgotKzAwOkEwOjkzICBCL0Ug QWVyb3NwYWNlLCBJbmMuCi0gMDA6QTA6OTQgIENvbXNhdCBDb3Jwb3JhdGlvbgotIDAwOkEwOjk1 ICBBY2FjaWEgTmV0d29ya3MsIEluYy4KLSAwMDpBMDo5NiAgTWl0dW1pIEVsZWN0cmljIENvLiwg THRkLgotIDAwOkEwOjk3ICBKYyBJbmZvcm1hdGlvbiBTeXN0ZW1zCi0gMDA6QTA6OTggIE5ldHdv cmsgQXBwbGlhbmNlIENvcnAuCi0tMDA6QTA6OTkgIEstbmV0IEx0ZC4KLSswMDpBMDo5OSAgSy1O ZXQgTHRkLgotIDAwOkEwOjlBICBOaWhvbiBLb2hkZW4gQW1lcmljYQotIDAwOkEwOjlCICBRcHN4 IENvbW11bmljYXRpb25zLCBMdGQuCi0gMDA6QTA6OUMgIFh5cGxleCwgSW5jLgotQEAgLTUyMzAs MjYgKzY1MTEsMjYgQEAKLSAwMDpBMDo5RiAgQ29tbXZpc2lvbiBDb3JwLgotIDAwOkEwOkEwICBD b21wYWN0IERhdGEsIEx0ZC4KLSAwMDpBMDpBMSAgRXBpYyBEYXRhIEluYy4KLS0wMDpBMDpBMiAg RGlnaWNvbSBTLnAuYS4KLSswMDpBMDpBMiAgRGlnaWNvbSBTLlAuQS4KLSAwMDpBMDpBMyAgUmVs aWFibGUgUG93ZXIgTWV0ZXJzCi0gMDA6QTA6QTQgIE1pY3JvcyBTeXN0ZW1zLCBJbmMuCi0gMDA6 QTA6QTUgIFRla25vciBNaWNyb3N5c3RlbWUsIEluYy4KLS0wMDpBMDpBNiAgTS5pLiBTeXN0ZW1z LCBLLmsuCi0rMDA6QTA6QTYgIE0uSS4gU3lzdGVtcywgSy5LLgotIDAwOkEwOkE3ICBWb3JheCBD b3Jwb3JhdGlvbgotIDAwOkEwOkE4ICBSZW5leCBDb3Jwb3JhdGlvbgotLTAwOkEwOkE5ICBHbiBO ZXR0ZXN0IChjYW5hZGEpIE5hdnRlbCBEaXZpc2lvbgotKzAwOkEwOkE5ICBHbiBOZXR0ZXN0IChD YW5hZGEpIE5hdnRlbCBEaXZpc2lvbgotIDAwOkEwOkFBICBTcGFjZWxhYnMgTWVkaWNhbAotIDAw OkEwOkFCICBOZXRjcyBJbmZvcm1hdGlvbnN0ZWNobmlrIEdtYmgKLSAwMDpBMDpBQyAgR2lsYXQg U2F0ZWxsaXRlIE5ldHdvcmtzLCBMdGQuCi0gMDA6QTA6QUQgIE1hcmNvbmkgU3BhCi0gMDA6QTA6 QUUgIE51Y29tIFN5c3RlbXMsIEluYy4KLSAwMDpBMDpBRiAgV21zIEluZHVzdHJpZXMKLS0wMDpB MDpCMCAgSS1vIERhdGEgRGV2aWNlLCBJbmMuCi0rMDA6QTA6QjAgIEktTyBEYXRhIERldmljZSwg SW5jLgotIDAwOkEwOkIxICBGaXJzdCBWaXJ0dWFsIENvcnBvcmF0aW9uCi0gMDA6QTA6QjIgIFNo aW1hIFNlaWtpCi0gMDA6QTA6QjMgIFp5a3Jvbml4Ci0gMDA6QTA6QjQgIFRleGFzIE1pY3Jvc3lz dGVtcywgSW5jLgotLTAwOkEwOkI1ICAzaCBUZWNobm9sb2d5Ci0rMDA6QTA6QjUgIDNIIFRlY2hu b2xvZ3kKLSAwMDpBMDpCNiAgU2Fucml0eiBBdXRvbWF0aW9uIENvLiwgTHRkLgotIDAwOkEwOkI3 ICBDb3JkYW50LCBJbmMuCi0gMDA6QTA6QjggIFN5bWJpb3MgTG9naWMgSW5jLgotQEAgLTUyNTcs MTIgKzY1MzgsMTIgQEAKLSAwMDpBMDpCQSAgUGF0dG9uIEVsZWN0cm9uaWNzIENvLgotIDAwOkEw OkJCICBIaWxhbiBHbWJoCi0gMDA6QTA6QkMgIFZpYXNhdCwgSW5jb3Jwb3JhdGVkCi0tMDA6QTA6 QkQgIEktdGVjaCBDb3JwLgotKzAwOkEwOkJEICBJLVRlY2ggQ29ycC4KLSAwMDpBMDpCRSAgSW50 ZWdyYXRlZCBDaXJjdWl0IFN5c3RlbXMsIEluYy4gQ29tbXVuaWNhdGlvbnMgR3JvdXAKLSAwMDpB MDpCRiAgV2lyZWxlc3MgRGF0YSBHcm91cCBNb3Rvcm9sYQotIDAwOkEwOkMwICBEaWdpdGFsIExp bmsgQ29ycC4KLSAwMDpBMDpDMSAgT3J0aXZ1cyBNZWRpY2FsIEFiCi0tMDA6QTA6QzIgIFIuYS4g U3lzdGVtcyBDby4sIEx0ZC4KLSswMDpBMDpDMiAgUi5BLiBTeXN0ZW1zIENvLiwgTHRkLgotIDAw OkEwOkMzICBVbmljb21wdXRlciBHbWJoCi0gMDA6QTA6QzQgIENyaXN0aWUgRWxlY3Ryb25pY3Mg THRkLgotIDAwOkEwOkM1ICBaeXhlbCBDb21tdW5pY2F0aW9uCi1AQCAtNTI3Miw3ICs2NTUzLDcg QEAKLSAwMDpBMDpDOSAgSW50ZWwgQ29ycG9yYXRpb24gLSBIZjEtMDYKLSAwMDpBMDpDQSAgRnVq aXRzdSBEZW5zbyBMdGQuCi0gMDA6QTA6Q0IgIEFyayBUZWxlY29tbXVuaWNhdGlvbnMsIEluYy4K LS0wMDpBMDpDQyAgTGl0ZS1vbiBDb21tdW5pY2F0aW9ucywgSW5jLgotKzAwOkEwOkNDICBMaXRl LU9uIENvbW11bmljYXRpb25zLCBJbmMuCi0gMDA6QTA6Q0QgIERyLiBKb2hhbm5lcyBIZWlkZW5o YWluIEdtYmgKLSAwMDpBMDpDRSAgQXN0cm9jb20gQ29ycG9yYXRpb24KLSAwMDpBMDpDRiAgU290 YXMsIEluYy4KLUBAIC01Mjg4LDcgKzY1NjksNyBAQAotIDAwOkEwOkQ5ICBDb252ZXggQ29tcHV0 ZXIgQ29ycG9yYXRpb24KLSAwMDpBMDpEQSAgSW50ZWdyYXRlZCBTeXN0ZW1zIFRlY2hub2xvZ3ks IEluYy4KLSAwMDpBMDpEQiAgRmlzaGVyICYgUGF5a2VsIFByb2R1Y3Rpb24KLS0wMDpBMDpEQyAg Ty5uLiBFbGVjdHJvbmljIENvLiwgTHRkLgotKzAwOkEwOkRDICBPLk4uIEVsZWN0cm9uaWMgQ28u LCBMdGQuCi0gMDA6QTA6REQgIEF6b25peCBDb3Jwb3JhdGlvbgotIDAwOkEwOkRFICBZYW1haGEg Q29ycG9yYXRpb24KLSAwMDpBMDpERiAgU3RzIFRlY2hub2xvZ2llcywgSW5jLgotQEAgLTUzMDMs NyArNjU4NCw3IEBACi0gMDA6QTA6RTggIFJldXRlcnMgSG9sZGluZ3MgUGxjCi0gMDA6QTA6RTkg IEVsZWN0cm9uaWMgUmV0YWlsaW5nIFN5c3RlbXMgSW50ZXJuYXRpb25hbAotIDAwOkEwOkVBICBF dGhlcmNvbSBDb3JwLgotLTAwOkEwOkVCICBGYXN0Y29tbSBDb21tdW5pY2F0aW9ucyBDb3JwLgot KzAwOkEwOkVCICBFbmNvcmUgTmV0d29ya3MKLSAwMDpBMDpFQyAgVHJhbnNtaXR0b24gTHRkLgot IDAwOkEwOkVEICBQcmkgQXV0b21hdGlvbgotIDAwOkEwOkVFICBOYXNob2JhIE5ldHdvcmtzCi1A QCAtNTMxNSw4ICs2NTk2LDggQEAKLSAwMDpBMDpGNCAgR2UKLSAwMDpBMDpGNSAgUmFkZ3VhcmQg THRkLgotIDAwOkEwOkY2ICBBdXRvZ2FzIFN5c3RlbXMgSW5jLgotLTAwOkEwOkY3ICBWLmkgQ29t cHV0ZXIgQ29ycC4KLS0wMDpBMDpGOCAgU3ltYm9sIFNwZWN0cnVtMjQKLSswMDpBMDpGNyAgVi5J IENvbXB1dGVyIENvcnAuCi0rMDA6QTA6RjggIFN5bWJvbCBUZWNobm9sb2dpZXMsIEluYy4KLSAw MDpBMDpGOSAgQmludGVjIENvbW11bmljYXRpb25zIEdtYmgKLSAwMDpBMDpGQSAgTWFyY29uaSBD b21tdW5pY2F0aW9uIEdtYmgKLSAwMDpBMDpGQiAgVG9yYXkgRW5naW5lZXJpbmcgQ28uLCBMdGQu Ci1AQCAtNTMyNywxMCArNjYwOCwxMCBAQAotIDAwOkFBOjAwICBJbnRlbCBDb3Jwb3JhdGlvbgot IDAwOkFBOjAxICBJbnRlbCBDb3Jwb3JhdGlvbgotIDAwOkFBOjAyICBJbnRlbCBDb3Jwb3JhdGlv bgotLTAwOkFBOjNDICBPbGl2ZXR0aSBUZWxlY29tIFNwYSAob2x0ZWNvKQotKzAwOkFBOjNDICBP bGl2ZXR0aSBUZWxlY29tIFNwYSAoT2x0ZWNvKQotIDAwOkIwOjA5ICBHcmFzcyBWYWxsZXkgR3Jv dXAKLSAwMDpCMDoxNyAgSW5mb2dlYXIgVGVjaG5vbG9neSBDb3JwLgotLTAwOkIwOjE5ICBDYXNp LXJ1c2NvCi0rMDA6QjA6MTkgIENhc2ktUnVzY28KLSAwMDpCMDoxQyAgV2VzdHBvcnQgVGVjaG5v bG9naWVzCi0gMDA6QjA6MUUgIFJhbnRpYyBMYWJzLCBJbmMuCi0gMDA6QjA6MkEgIE9yc3lzIEdt YmgKLUBAIC01MzQyLDE0ICs2NjIzLDE0IEBACi0gMDA6QjA6NjQgIENpc2NvIFN5c3RlbXMsIElu Yy4KLSAwMDpCMDo2OSAgSG9uZXdlbGwgT3kKLSAwMDpCMDo2RCAgSm9uZXMgRnV0dXJleCBJbmMu Ci0tMDA6QjA6ODAgIE1hbm5lc21hbm4gSXB1bHN5cyBCLnYuCi0rMDA6QjA6ODAgIE1hbm5lc21h bm4gSXB1bHN5cyBCLlYuCi0gMDA6QjA6ODYgIExvY3NvZnQgTGltaXRlZAotIDAwOkIwOjhFICBD aXNjbyBTeXN0ZW1zLCBJbmMuCi0gMDA6QjA6OTEgIFRyYW5zbWV0YSBDb3JwLgotIDAwOkIwOjk0 ICBBbGFyaXMsIEluYy4KLSAwMDpCMDo5QSAgTW9ycm93IFRlY2hub2xvZ2llcyBDb3JwLgotIDAw OkIwOjlEICBQb2ludCBHcmV5IFJlc2VhcmNoIEluYy4KLS0wMDpCMDpBQyAgU2lhZS1taWNyb2Vs ZXR0cm9uaWNhIFMucC5hLgotKzAwOkIwOkFDICBTaWFlLU1pY3JvZWxldHRyb25pY2EgUy5QLkEu Ci0gMDA6QjA6QUUgIFN5bW1ldHJpY29tCi0gMDA6QjA6QjMgIFhzdHJlYW1pcyBQbGMKLSAwMDpC MDpDMiAgQ2lzY28gU3lzdGVtcywgSW5jLgotQEAgLTUzNjQsMTkgKzY2NDUsMTkgQEAKLSAwMDpC MDpGMCAgQ2FseSBOZXR3b3JrcwotIDAwOkIwOkY1ICBOZXR3b3J0aCBUZWNobm9sb2dpZXMsIElu Yy4KLSAwMDpCQjowMSAgT2N0b3Rob3JwZSBDb3JwLgotLTAwOkJCOkYwICBVbmdlcm1hbm4tYmFz cyBJbmMuCi0rMDA6QkI6RjAgIFVuZ2VybWFubi1CYXNzIEluYy4KLSAwMDpDMDowMCAgTGFub3B0 aWNzLCBMdGQuCi0gMDA6QzA6MDEgIERpYXRlayBQYXRpZW50IE1hbmFnbWVudAotIDAwOkMwOjAy ICBTZXJjb21tIENvcnBvcmF0aW9uCi0gMDA6QzA6MDMgIEdsb2JhbG5ldCBDb21tdW5pY2F0aW9u cwotLTAwOkMwOjA0ICBKYXBhbiBCdXNpbmVzcyBDb21wdXRlciBDby5sdGQKLSswMDpDMDowNCAg SmFwYW4gQnVzaW5lc3MgQ29tcHV0ZXIgQ28uTHRkCi0gMDA6QzA6MDUgIExpdmluZ3N0b24gRW50 ZXJwcmlzZXMsIEluYy4KLSAwMDpDMDowNiAgTmlwcG9uIEF2aW9uaWNzIENvLiwgTHRkLgotIDAw OkMwOjA3ICBQaW5uYWNsZSBEYXRhIFN5c3RlbXMsIEluYy4KLSAwMDpDMDowOCAgU2VjbyBTcmwK LS0wMDpDMDowOSAgS3QgVGVjaG5vbG9neSAocykgUHRlIEx0ZAotKzAwOkMwOjA5ICBLdCBUZWNo bm9sb2d5IChTKSBQdGUgTHRkCi0gMDA6QzA6MEEgIE1pY3JvIENyYWZ0Ci0tMDA6QzA6MEIgIE5v cmNvbnRyb2wgQS5zLgotKzAwOkMwOjBCICBOb3Jjb250cm9sIEEuUy4KLSAwMDpDMDowQyAgUmVs aWEgVGVjaG5vbGdpZXMKLSAwMDpDMDowRCAgQWR2YW5jZWQgTG9naWMgUmVzZWFyY2gsIEluYy4K LSAwMDpDMDowRSAgUHNpdGVjaCwgSW5jLgotQEAgLTUzODUsNyArNjY2Niw3IEBACi0gMDA6QzA6 MTEgIEludGVyYWN0aXZlIENvbXB1dGluZyBEZXZpY2VzCi0gMDA6QzA6MTIgIE5ldHNwYW4gQ29y cG9yYXRpb24KLSAwMDpDMDoxMyAgTmV0cml4Ci0tMDA6QzA6MTQgIFRlbGVtYXRpY3MgQ2FsYWJh c2FzIEludCdsLGluYwotKzAwOkMwOjE0ICBUZWxlbWF0aWNzIENhbGFiYXNhcyBJbnQnbCxJbmMK LSAwMDpDMDoxNSAgTmV3IE1lZGlhIENvcnBvcmF0aW9uCi0gMDA6QzA6MTYgIEVsZWN0cm9uaWMg VGhlYXRyZSBDb250cm9scwotIDAwOkMwOjE3ICBGb3J0ZSBOZXR3b3JrcwotQEAgLTUzOTYsNyAr NjY3Nyw3IEBACi0gMDA6QzA6MUMgIEludGVybGluayBDb21tdW5pY2F0aW9ucyBMdGQuCi0gMDA6 QzA6MUQgIEdyYW5kIEp1bmN0aW9uIE5ldHdvcmtzLCBJbmMuCi0gMDA6QzA6MUUgIExhIEZyYW5j YWlzZSBEZXMgSmV1eAotLTAwOkMwOjFGICBTLmUuci5jLmUubC4KLSswMDpDMDoxRiAgUy5FLlIu Qy5FLkwuCi0gMDA6QzA6MjAgIEFyY28gRWxlY3Ryb25pYywgQ29udHJvbCBMdGQuCi0gMDA6QzA6 MjEgIE5ldGV4cHJlc3MKLSAwMDpDMDoyMiAgTGFzZXJtYXN0ZXIgVGVjaG5vbG9naWVzLCBJbmMu Ci1AQCAtNTQxNSw3ICs2Njk2LDcgQEAKLSAwMDpDMDoyRiAgT2t1bWEgQ29ycG9yYXRpb24KLSAw MDpDMDozMCAgSW50ZWdyYXRlZCBFbmdpbmVlcmluZyBCLiBWLgotIDAwOkMwOjMxICBEZXNpZ24g UmVzZWFyY2ggU3lzdGVtcywgSW5jLgotLTAwOkMwOjMyICBJLWN1YmVkIExpbWl0ZWQKLSswMDpD MDozMiAgSS1DdWJlZCBMaW1pdGVkCi0gMDA6QzA6MzMgIFRlbGViaXQgQ29tbXVuaWNhdGlvbnMg QXBzCi0gMDA6QzA6MzQgIFRyYW5zYWN0aW9uIE5ldHdvcmsKLSAwMDpDMDozNSAgUXVpbnRhciBD b21wYW55Ci1AQCAtNTQyMyw5ICs2NzA0LDkgQEAKLSAwMDpDMDozNyAgRHluYXRlbQotIDAwOkMw OjM4ICBSYXN0ZXIgSW1hZ2UgUHJvY2Vzc2luZyBTeXN0ZW0KLSAwMDpDMDozOSAgVGRrIFNlbWlj b25kdWN0b3IgQ29ycG9yYXRpb24KLS0wMDpDMDozQSAgTWVuLW1pa3JvIEVsZWt0cm9uaWsgR21i aAotKzAwOkMwOjNBICBNZW4tTWlrcm8gRWxla3Ryb25payBHbWJoCi0gMDA6QzA6M0IgIE11bHRp YWNjZXNzIENvbXB1dGluZyBDb3JwLgotLTAwOkMwOjNDICBUb3dlciBUZWNoIFMuci5sLgotKzAw OkMwOjNDICBUb3dlciBUZWNoIFMuUi5MLgotIDAwOkMwOjNEICBXaWVzZW1hbm4gJiBUaGVpcyBH bWJoCi0gMDA6QzA6M0UgIEZhLiBHZWJyLiBIZWxsZXIgR21iaAotIDAwOkMwOjNGICBTdG9yZXMg QXV0b21hdGVkIFN5c3RlbXMsIEluYy4KLUBAIC01NDM4LDE2ICs2NzE5LDE2IEBACi0gMDA6QzA6 NDYgIEtlbWl0cm9uIEx0ZC4KLSAwMDpDMDo0NyAgVW5pbWljcm8gU3lzdGVtcywgSW5jLgotIDAw OkMwOjQ4ICBCYXkgVGVjaG5pY2FsIEFzc29jaWF0ZXMKLS0wMDpDMDo0OSAgVS5zLiBSb2JvdGlj cywgSW5jLgotKzAwOkMwOjQ5ICBVLlMuIFJvYm90aWNzLCBJbmMuCi0gMDA6QzA6NEEgIEdyb3Vw IDIwMDAgQWcKLSAwMDpDMDo0QiAgQ3JlYXRpdmUgTWljcm9zeXN0ZW1zCi0gMDA6QzA6NEMgIERl cGFydG1lbnQgT2YgRm9yZWlnbiBBZmZhaXJzCi0gMDA6QzA6NEQgIE1pdGVjLCBJbmMuCi0gMDA6 QzA6NEUgIENvbXRyb2wgQ29ycG9yYXRpb24KLSAwMDpDMDo0RiAgRGVsbCBDb21wdXRlciBDb3Jw b3JhdGlvbgotLTAwOkMwOjUwICBUb3lvIERlbmtpIFNlaXpvIEsuay4KLSswMDpDMDo1MCAgVG95 byBEZW5raSBTZWl6byBLLksuCi0gMDA6QzA6NTEgIEFkdmFuY2VkIEludGVncmF0aW9uIFJlc2Vh cmNoCi0tMDA6QzA6NTIgIEJ1cnItYnJvd24KLSswMDpDMDo1MiAgQnVyci1Ccm93bgotIDAwOkMw OjUzICBEYXZveCBDb3Jwb3JhdGlvbgotIDAwOkMwOjU0ICBOZXR3b3JrIFBlcmlwaGVyYWxzLCBM dGQuCi0gMDA6QzA6NTUgIE1vZHVsYXIgQ29tcHV0aW5nIFRlY2hub2xvZ2llcwotQEAgLTU0NTgs OSArNjczOSw5IEBACi0gMDA6QzA6NUEgIFNlbWFwaG9yZSBDb21tdW5pY2F0aW9ucyBDb3JwLgot IDAwOkMwOjVCICBOZXR3b3JrcyBOb3J0aHdlc3QsIEluYy4KLSAwMDpDMDo1QyAgRWxvbmV4IFBs YwotLTAwOkMwOjVEICBMJm4gVGVjaG5vbG9naWVzCi0tMDA6QzA6NUUgIFZhcmktbGl0ZSwgSW5j LgotLTAwOkMwOjVGICBGaW5lLXBhbCBDb21wYW55IExpbWl0ZWQKLSswMDpDMDo1RCAgTCZOIFRl Y2hub2xvZ2llcwotKzAwOkMwOjVFICBWYXJpLUxpdGUsIEluYy4KLSswMDpDMDo1RiAgRmluZS1Q YWwgQ29tcGFueSBMaW1pdGVkCi0gMDA6QzA6NjAgIElkIFNjYW5kaW5hdmlhIEFzCi0gMDA6QzA6 NjEgIFNvbGVjdGVrIENvcnBvcmF0aW9uCi0gMDA6QzA6NjIgIEltcHVsc2UgVGVjaG5vbG9neQot QEAgLTU0NzAsMjQgKzY3NTEsMjQgQEAKLSAwMDpDMDo2NiAgRG9jdXBvaW50LCBJbmMuCi0gMDA6 QzA6NjcgIFVuaXRlZCBCYXJjb2RlIEluZHVzdHJpZXMKLSAwMDpDMDo2OCAgUGhpbGlwIERyYWtl IEVsZWN0cm9uaWNzIEx0ZC4KLS0wMDpDMDo2OSAgQWRhcHRpdmUgQnJvYWRiYW5kIENvcnBvcmF0 aW9uCi0tMDA6QzA6NkEgIFphaG5lci1lbGVrdHJpayBHbWJoICYgQ28uIEtnCi0rMDA6QzA6Njkg IEF4eGNlbGVyYSBCcm9hZGJhbmQgV2lyZWxlc3MKLSswMDpDMDo2QSAgWmFobmVyLUVsZWt0cmlr IEdtYmggJiBDby4gS2cKLSAwMDpDMDo2QiAgT3NpIFBsdXMgQ29ycG9yYXRpb24KLSAwMDpDMDo2 QyAgU3ZlYyBDb21wdXRlciBDb3JwLgotIDAwOkMwOjZEICBCb2NhIFJlc2VhcmNoLCBJbmMuCi0g MDA6QzA6NkUgIEhhZnQgVGVjaG5vbG9neSwgSW5jLgotIDAwOkMwOjZGICBLb21hdHN1IEx0ZC4K LS0wMDpDMDo3MCAgU2VjdHJhIFNlY3VyZS10cmFuc21pc3Npb24gQWIKLSswMDpDMDo3MCAgU2Vj dHJhIFNlY3VyZS1UcmFuc21pc3Npb24gQWIKLSAwMDpDMDo3MSAgQXJlYW5leCBDb21tdW5pY2F0 aW9ucywgSW5jLgotIDAwOkMwOjcyICBLbnggTHRkLgotIDAwOkMwOjczICBYZWRpYSBDb3Jwb3Jh dGlvbgotIDAwOkMwOjc0ICBUb3lvZGEgQXV0b21hdGljIExvb20KLSAwMDpDMDo3NSAgWGFudGUg Q29ycG9yYXRpb24KLS0wMDpDMDo3NiAgSS1kYXRhIEludGVybmF0aW9uYWwgQS1zCi0rMDA6QzA6 NzYgIEktRGF0YSBJbnRlcm5hdGlvbmFsIEEtUwotIDAwOkMwOjc3ICBEYWV3b28gVGVsZWNvbSBM dGQuCi0gMDA6QzA6NzggIENvbXB1dGVyIFN5c3RlbXMgRW5naW5lZXJpbmcKLS0wMDpDMDo3OSAg Rm9uc3lzIENvLixsdGQuCi0tMDA6QzA6N0EgIFByaXZhIEIudi4KLSswMDpDMDo3OSAgRm9uc3lz IENvLixMdGQuCi0rMDA6QzA6N0EgIFByaXZhIEIuVi4KLSAwMDpDMDo3QiAgQXNjZW5kIENvbW11 bmljYXRpb25zLCBJbmMuCi0gMDA6QzA6N0MgIEhpZ2h0ZWNoIEluZm9ybWF0aW9uCi0gMDA6QzA6 N0QgIFJpc2MgRGV2ZWxvcG1lbnRzIEx0ZC4KLUBAIC01NTA5LDcgKzY3OTAsNyBAQAotIDAwOkMw OjhEICBUcm9uaXggUHJvZHVjdCBEZXZlbG9wbWVudAotIDAwOkMwOjhFICBOZXR3b3JrIEluZm9y bWF0aW9uIFRlY2hub2xvZ3kKLSAwMDpDMDo4RiAgTWF0c3VzaGl0YSBFbGVjdHJpYyBXb3Jrcywg THRkCi0tMDA6QzA6OTAgIFByYWltIFMuci5sLgotKzAwOkMwOjkwICBQcmFpbSBTLlIuTC4KLSAw MDpDMDo5MSAgSmFiaWwgQ2lyY3VpdCwgSW5jLgotIDAwOkMwOjkyICBNZW5uZW4gTWVkaWNhbCBJ bmMuCi0gMDA6QzA6OTMgIEFsdGEgUmVzZWFyY2ggQ29ycC4KLUBAIC01NTE4LDE2ICs2Nzk5LDE2 IEBACi0gMDA6QzA6OTYgIFRhbXVyYSBDb3Jwb3JhdGlvbgotIDAwOkMwOjk3ICBBcmNoaXBlbCBT YQotIDAwOkMwOjk4ICBDaHVudGV4IEVsZWN0cm9uaWMgQ28uLCBMdGQuCi0tMDA6QzA6OTkgIFlv c2hpa2kgSW5kdXN0cmlhbCBDby4sbHRkLgotKzAwOkMwOjk5ICBZb3NoaWtpIEluZHVzdHJpYWwg Q28uLEx0ZC4KLSAwMDpDMDo5QSAgUGhvdG9uaWNzIENvcnBvcmF0aW9uCi0tMDA6QzA6OUIgIFJl bGlhbmNlIENvbW0vdGVjLCBSLXRlYwotKzAwOkMwOjlCICBSZWxpYW5jZSBDb21tL1RlYywgUi1U ZWMKLSAwMDpDMDo5QyAgVG9hIEVsZWN0cm9uaWMgTHRkLgotIDAwOkMwOjlEICBEaXN0cmlidXRl ZCBTeXN0ZW1zIEludCdsLCBJbmMKLSAwMDpDMDo5RSAgQ2FjaGUgQ29tcHV0ZXJzLCBJbmMuCi0g MDA6QzA6OUYgIFF1YW50YSBDb21wdXRlciwgSW5jLgotIDAwOkMwOkEwICBBZHZhbmNlIE1pY3Jv IFJlc2VhcmNoLCBJbmMuCi0gMDA6QzA6QTEgIFRva3lvIERlbnNoaSBTZWtlaSBDby4KLS0wMDpD MDpBMiAgSW50ZXJtZWRpdW0gQS9zCi0rMDA6QzA6QTIgIEludGVybWVkaXVtIEEvUwotIDAwOkMw OkEzICBEdWFsIEVudGVycHJpc2VzIENvcnBvcmF0aW9uCi0gMDA6QzA6QTQgIFVuaWdyYWYgT3kK LSAwMDpDMDpBNSAgRGlja2VucyBEYXRhIFN5c3RlbXMKLUBAIC01NTQxLDI0ICs2ODIyLDI0IEBA Ci0gMDA6QzA6QUQgIE1hcmJlbiBDb21tdW5pY2F0aW9uIFN5c3RlbXMKLSAwMDpDMDpBRSAgVG93 ZXJjb20gQ28uIEluYy4gRGJhIFBjIEhvdXNlCi0gMDA6QzA6QUYgIFRla2xvZ2l4IEluYy4KLS0w MDpDMDpCMCAgR2NjIFRlY2hub2xvZ2llcyxpbmMuCi0rMDA6QzA6QjAgIEdjYyBUZWNobm9sb2dp ZXMsSW5jLgotIDAwOkMwOkIxICBHZW5pdXMgTmV0IENvLgotIDAwOkMwOkIyICBOb3JhbmQgQ29y cG9yYXRpb24KLSAwMDpDMDpCMyAgQ29tc3RhdCBEYXRhY29tbSBDb3Jwb3JhdGlvbgotIDAwOkMw OkI0ICBNeXNvbiBUZWNobm9sb2d5LCBJbmMuCi0tMDA6QzA6QjUgIENvcnBvcmF0ZSBOZXR3b3Jr IFN5c3RlbXMsaW5jLgotLTAwOkMwOkI2ICBTbmFwIEFwcGxpYW5jZXMsIEluYy4KLSswMDpDMDpC NSAgQ29ycG9yYXRlIE5ldHdvcmsgU3lzdGVtcyxJbmMuCi0rMDA6QzA6QjYgIFNuYXAgQXBwbGlh bmNlLCBJbmMuCi0gMDA6QzA6QjcgIEFtZXJpY2FuIFBvd2VyIENvbnZlcnNpb24gQ29ycAotIDAw OkMwOkI4ICBGcmFzZXIncyBIaWxsIEx0ZC4KLSAwMDpDMDpCOSAgRnVuayBTb2Z0d2FyZSwgSW5j LgotIDAwOkMwOkJBICBOZXR2YW50YWdlCi0gMDA6QzA6QkIgIEZvcnZhbCBDcmVhdGl2ZSwgSW5j LgotLTAwOkMwOkJDICBUZWxlY29tIEF1c3RyYWxpYS9jc3NjCi0rMDA6QzA6QkMgIFRlbGVjb20g QXVzdHJhbGlhL0Nzc2MKLSAwMDpDMDpCRCAgSW5leCBUZWNobm9sb2dpZXMsIEluYy4KLSAwMDpD MDpCRSAgQWxjYXRlbCAtIFNlbAotIDAwOkMwOkJGICBUZWNobm9sb2d5IENvbmNlcHRzLCBMdGQu Ci0gMDA6QzA6QzAgIFNob3JlIE1pY3Jvc3lzdGVtcywgSW5jLgotLTAwOkMwOkMxICBRdWFkL2dy YXBoaWNzLCBJbmMuCi0rMDA6QzA6QzEgIFF1YWQvR3JhcGhpY3MsIEluYy4KLSAwMDpDMDpDMiAg SW5maW5pdGUgTmV0d29ya3MgTHRkLgotIDAwOkMwOkMzICBBY3Vzb24gQ29tcHV0ZWQgU29ub2dy YXBoeQotIDAwOkMwOkM0ICBDb21wdXRlciBPcGVyYXRpb25hbAotQEAgLTU1NzAsNyArNjg1MSw3 IEBACi0gMDA6QzA6Q0EgIEFsZmEsIEluYy4KLSAwMDpDMDpDQiAgQ29udHJvbCBUZWNobm9sb2d5 IENvcnBvcmF0aW9uCi0gMDA6QzA6Q0MgIFRlbGVzY2llbmNlcyBDbyBTeXN0ZW1zLCBJbmMuCi0t MDA6QzA6Q0QgIENvbWVsdGEsIFMuYS4KLSswMDpDMDpDRCAgQ29tZWx0YSwgUy5BLgotIDAwOkMw OkNFICBDZWkgU3lzdGVtcyAmIEVuZ2luZWVyaW5nIFB0ZQotIDAwOkMwOkNGICBJbWF0cmFuIFZv aW1hIE95Ci0gMDA6QzA6RDAgIFJhdG9jIFN5c3RlbSBJbmMuCi1AQCAtNTU4NCw3ICs2ODY1LDcg QEAKLSAwMDpDMDpEOCAgVW5pdmVyc2FsIERhdGEgU3lzdGVtcwotIDAwOkMwOkQ5ICBRdWludGUg TmV0d29yayBDb25maWRlbnRpYWxpdHkKLSAwMDpDMDpEQSAgTmljZSBTeXN0ZW1zIEx0ZC4KLS0w MDpDMDpEQiAgSXBjIENvcnBvcmF0aW9uIChwdGUpIEx0ZC4KLSswMDpDMDpEQiAgSXBjIENvcnBv cmF0aW9uIChQdGUpIEx0ZC4KLSAwMDpDMDpEQyAgRW9zIFRlY2hub2xvZ2llcywgSW5jLgotIDAw OkMwOkREICBRbG9naWMgQ29ycG9yYXRpb24KLSAwMDpDMDpERSAgWmNvbW0sIEluYy4KLUBAIC01 NTk0LDcgKzY4NzUsNyBAQAotIDAwOkMwOkUyICBDYWxjb21wLCBJbmMuCi0gMDA6QzA6RTMgIE9z aXRlY2ggQ29tbXVuaWNhdGlvbnMsIEluYy4KLSAwMDpDMDpFNCAgU2llbWVucyBCdWlsZGluZwot LTAwOkMwOkU1ICBHZXNwYWMsIFMuYS4KLSswMDpDMDpFNSAgR2VzcGFjLCBTLkEuCi0gMDA6QzA6 RTYgIFZlcmlsaW5rIENvcnBvcmF0aW9uCi0gMDA6QzA6RTcgIEZpYmVyZGF0YSBBYgotIDAwOkMw OkU4ICBQbGV4Y29tLCBJbmMuCi1AQCAtNTYzMyw3ICs2OTE0LDcgQEAKLSAwMDpEMDowNyAgTWlj IEFzc29jaWF0ZXMsIEluYy4KLSAwMDpEMDowOCAgTWFjdGVsbCBDb3Jwb3JhdGlvbgotIDAwOkQw OjA5ICBIc2luZyBUZWNoLiBFbnRlcnByaXNlIENvLiBMdGQKLS0wMDpEMDowQSAgTGFuYWNjZXNz IFRlbGVjb20gUy5hLgotKzAwOkQwOjBBICBMYW5hY2Nlc3MgVGVsZWNvbSBTLkEuCi0gMDA6RDA6 MEIgIFJoayBUZWNobm9sb2d5LCBJbmMuCi0gMDA6RDA6MEMgIFNuaWpkZXIgTWljcm8gU3lzdGVt cwotIDAwOkQwOjBEICBNaWNyb21lcml0aWNzIEluc3RydW1lbnQKLUBAIC01NjQ5LDcgKzY5MzAs NyBAQAotIDAwOkQwOjE3ICBTeW50ZWNoIEluZm9ybWF0aW9uIENvLiwgTHRkLgotIDAwOkQwOjE4 ICBRd2VzLiBDb20sIEluYy4KLSAwMDpEMDoxOSAgRGFpbmlwcG9uIFNjcmVlbiBDb3Jwb3JhdGUK LS0wMDpEMDoxQSAgVXJtZXQgU3VkIFMucC5hLgotKzAwOkQwOjFBICBVcm1ldCBTdWQgUy5QLkEu Ci0gMDA6RDA6MUIgIE1pbWFraSBFbmdpbmVlcmluZyBDby4sIEx0ZC4KLSAwMDpEMDoxQyAgU2Jz IFRlY2hub2xvZ2llcywKLSAwMDpEMDoxRCAgRnVydW5vIEVsZWN0cmljIENvLiwgTHRkLgotQEAg LTU2NjUsNyArNjk0Niw3IEBACi0gMDA6RDA6MjcgIEFwcGxpZWQgQXV0b21hdGlvbiwgSW5jLgot IDAwOkQwOjI4ICBPbW5lb24gVmlkZW8gTmV0d29ya3MKLSAwMDpEMDoyOSAgV2FrZWZlcm4gRm9v ZCBDb3Jwb3JhdGlvbgotLTAwOkQwOjJBICBGbGV4aW9uIFN5c3RlbXMKLSswMDpEMDoyQSAgVm94 ZW50IFN5c3RlbXMgTHRkLgotIDAwOkQwOjJCICBKZXRjZWxsLCBJbmMuCi0gMDA6RDA6MkMgIENh bXBiZWxsIFNjaWVudGlmaWMsIEluYy4KLSAwMDpEMDoyRCAgQWRlbWNvCi1AQCAtNTY3OCwxMyAr Njk1OSwxMyBAQAotIDAwOkQwOjM0ICBPcm1lYyBTeXN0ZW1zIENvcnAuCi0gMDA6RDA6MzUgIEJl aGF2aW9yIFRlY2guIENvbXB1dGVyIENvcnAuCi0gMDA6RDA6MzYgIFRlY2hub2xvZ3kgQXRsYW50 YSBDb3JwLgotLTAwOkQwOjM3ICBQaGlsaXBzLWR2cy1sbyBCZHIKLSswMDpEMDozNyAgUGhpbGlw cy1EdnMtTG8gQmRyCi0gMDA6RDA6MzggIEZpdmVtZXJlLCBMdGQuCi0gMDA6RDA6MzkgIFV0aWxp Y29tLCBJbmMuCi0gMDA6RDA6M0EgIFpvbmV3b3J4LCBJbmMuCi0gMDA6RDA6M0IgIFZpc2lvbiBQ cm9kdWN0cyBQdHkuIEx0ZC4KLSAwMDpEMDozQyAgVmllbywgSW5jLgotLTAwOkQwOjNEICBQcml2 YXRlCi0rMDA6RDA6M0QgIEdhbGlsZW8gVGVjaG5vbG9neSwgTHRkLgotIDAwOkQwOjNFICBSb2Nr ZXRjaGlwcywgSW5jLgotIDAwOkQwOjNGICBBbWVyaWNhbiBDb21tdW5pY2F0aW9uCi0gMDA6RDA6 NDAgIFN5c21hdGUgQ28uLCBMdGQuCi1AQCAtNTY5OCw3ICs2OTc5LDcgQEAKLSAwMDpEMDo0OCAg RWN0b24sIEluYy4KLSAwMDpEMDo0OSAgSW1wcmVzc3RlayBDby4sIEx0ZC4KLSAwMDpEMDo0QSAg UHJlc2VuY2UgVGVjaG5vbG9neSBHbWJoCi0tMDA6RDA6NEIgIExhIENpZSBHcm91cCBTLmEuCi0r MDA6RDA6NEIgIExhIENpZSBHcm91cCBTLkEuCi0gMDA6RDA6NEMgIEV1cm90ZWwgVGVsZWNvbSBM dGQuCi0gMDA6RDA6NEQgIERpdiBPZiBSZXNlYXJjaCAmIFN0YXRpc3RpY3MKLSAwMDpEMDo0RSAg TG9naWJhZwotQEAgLTU3MDgsNyArNjk4OSw3IEBACi0gMDA6RDA6NTIgIEFzY2VuZCBDb21tdW5p Y2F0aW9ucywgSW5jLgotIDAwOkQwOjUzICBDb25uZWN0ZWQgU3lzdGVtcwotIDAwOkQwOjU0ICBT YXMgSW5zdGl0dXRlIEluYy4KLS0wMDpEMDo1NSAgS2F0aHJlaW4td2Vya2UgS2cKLSswMDpEMDo1 NSAgS2F0aHJlaW4tV2Vya2UgS2cKLSAwMDpEMDo1NiAgU29tYXQgQ29ycG9yYXRpb24KLSAwMDpE MDo1NyAgVWx0cmFrLCBJbmMuCi0gMDA6RDA6NTggIENpc2NvIFN5c3RlbXMsIEluYy4KLUBAIC01 NzQ3LDcgKzcwMjgsNyBAQAotIDAwOkQwOjc5ICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi0gMDA6RDA6 N0EgIEFtYXF1ZXN0IENvbXB1dGVyIENvcnAuCi0gMDA6RDA6N0IgIENvbWNhbSBJbnRlcm5hdGlv bmFsIEx0ZC4KLS0wMDpEMDo3QyAgS295byBFbGVjdHJvbmljcyBJbmMuIENvLixsdGQuCi0rMDA6 RDA6N0MgIEtveW8gRWxlY3Ryb25pY3MgSW5jLiBDby4sTHRkLgotIDAwOkQwOjdEICBDb3NpbmUg Q29tbXVuaWNhdGlvbnMKLSAwMDpEMDo3RSAgS2V5Y29ycCBMdGQuCi0gMDA6RDA6N0YgIFN0cmF0 ZWd5ICYgVGVjaG5vbG9neSwgTGltaXRlZAotQEAgLTU3NTksNyArNzA0MCw3IEBACi0gMDA6RDA6 ODUgIE90aXMgRWxldmF0b3IgQ29tcGFueQotIDAwOkQwOjg2ICBGb3Zlb24sIEluYy4KLSAwMDpE MDo4NyAgTWljcm9maXJzdCBJbmMuCi0tMDA6RDA6ODggIE1haW5zYWlsIE5ldHdvcmtzLCBJbmMu Ci0rMDA6RDA6ODggIFRlcmF5b24gQ29tbXVuaWNhdGlvbnMgU3lzdGVtcwotIDAwOkQwOjg5ICBE eW5hY29sb3IsIEluYy4KLSAwMDpEMDo4QSAgUGhvdHJvbiBVc2EKLSAwMDpEMDo4QiAgQWR2YSBM aW1pdGVkCi1AQCAtNTc3Myw3ICs3MDU0LDcgQEAKLSAwMDpEMDo5MyAgVHEgLSBDb21wb25lbnRz IEdtYmgKLSAwMDpEMDo5NCAgVGltZWxpbmUgVmlzdGEsIEluYy4KLSAwMDpEMDo5NSAgWHlsYW4g Q29ycG9yYXRpb24KLS0wMDpEMDo5NiAgM2NvbSBFdXJvcGUgTHRkLgotKzAwOkQwOjk2ICAzQ29t IEV1cm9wZSBMdGQuCi0gMDA6RDA6OTcgIENpc2NvIFN5c3RlbXMsIEluYy4KLSAwMDpEMDo5OCAg UGhvdG9uIER5bmFtaWNzIENhbmFkYSBJbmMuCi0gMDA6RDA6OTkgIEVsY2FyZCBPeQotQEAgLTU3 ODEsNyArNzA2Miw3IEBACi0gMDA6RDA6OUIgIFNwZWN0ZWwgTHRkLgotIDAwOkQwOjlDICBLYXBh ZGlhIENvbW11bmljYXRpb25zCi0gMDA6RDA6OUQgIFZlcmlzIEluZHVzdHJpZXMKLS0wMDpEMDo5 RSAgMndpcmUsIEluYy4KLSswMDpEMDo5RSAgMldpcmUsIEluYy4KLSAwMDpEMDo5RiAgTm92dGVr IFRlc3QgU3lzdGVtcwotIDAwOkQwOkEwICBNaXBzIERlbm1hcmsKLSAwMDpEMDpBMSAgT3NrYXIg VmllcmxpbmcgR21iaCArIENvLiBLZwotQEAgLTU3OTgsNyArNzA3OSw3IEBACi0gMDA6RDA6QUMg IEdyYXlzb24gV2lyZWxlc3MKLSAwMDpEMDpBRCAgVGwgSW5kdXN0cmllcwotIDAwOkQwOkFFICBP cmVzaXMgQ29tbXVuaWNhdGlvbnMsIEluYy4KLS0wMDpEMDpBRiAgQ3V0bGVyLWhhbW1lciwgSW5j LgotKzAwOkQwOkFGICBDdXRsZXItSGFtbWVyLCBJbmMuCi0gMDA6RDA6QjAgIEJpdHN3aXRjaCBM dGQuCi0gMDA6RDA6QjEgIE9tZWdhIEVsZWN0cm9uaWNzIFNhCi0gMDA6RDA6QjIgIFhpb3RlY2gg Q29ycG9yYXRpb24KLUBAIC01ODA3LDcgKzcwODgsNyBAQAotIDAwOkQwOkI1ICBJcHJpY290IEZv cm1lcmx5IERvdGNvbQotIDAwOkQwOkI2ICBDcmVzY2VudCBOZXR3b3JrcywgSW5jLgotIDAwOkQw OkI3ICBJbnRlbCBDb3Jwb3JhdGlvbgotLTAwOkQwOkI4ICBJb21lZ2EgQ29ycC4KLSswMDpEMDpC OCAgSW9tZWdhIENvcnBvcmF0aW9uCi0gMDA6RDA6QjkgIE1pY3JvdGVrIEludGVybmF0aW9uYWws IEluYy4KLSAwMDpEMDpCQSAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAwOkQwOkJCICBDaXNjbyBT eXN0ZW1zLCBJbmMuCi1AQCAtNTgyMyw3ICs3MTA0LDcgQEAKLSAwMDpEMDpDNSAgQ29tcHV0YXRp b25hbCBTeXN0ZW1zLCBJbmMuCi0gMDA6RDA6QzYgIFRob21hcyAmIEJldHRzIENvcnAuCi0gMDA6 RDA6QzcgIFBhdGh3YXksIEluYy4KLS0wMDpEMDpDOCAgSS9vIENvbnN1bHRpbmcgQS9zCi0rMDA6 RDA6QzggIEkvTyBDb25zdWx0aW5nIEEvUwotIDAwOkQwOkM5ICBBZHZhbnRlY2ggQ28uLCBMdGQu Ci0gMDA6RDA6Q0EgIEludHJpbnN5YyBTb2Z0d2FyZSBJbmMuCi0gMDA6RDA6Q0IgIERhc2FuIENv LiwgTHRkLgotQEAgLTU4MzUsMTEgKzcxMTYsMTEgQEAKLSAwMDpEMDpEMSAgU2lyb2NjbyBTeXN0 ZW1zLCBJbmMuCi0gMDA6RDA6RDIgIEVwaWxvZyBDb3Jwb3JhdGlvbgotIDAwOkQwOkQzICBDaXNj byBTeXN0ZW1zLCBJbmMuCi0tMDA6RDA6RDQgIFYtYml0cywgSW5jLgotKzAwOkQwOkQ0ICBWLUJp dHMsIEluYy4KLSAwMDpEMDpENSAgR3J1bmRpZyBBZwotIDAwOkQwOkQ2ICBBZXRocmEgVGVsZWNv bXVuaWNhemlvbmkKLS0wMDpEMDpENyAgQjJjMiwgSW5jLgotLTAwOkQwOkQ4ICAzY29tIENvcnBv cmF0aW9uCi0rMDA6RDA6RDcgIEIyQzIsIEluYy4KLSswMDpEMDpEOCAgM0NvbSBDb3Jwb3JhdGlv bgotIDAwOkQwOkQ5ICBEZWRpY2F0ZWQgTWljcm9jb21wdXRlcnMKLSAwMDpEMDpEQSAgVGFpY29t IERhdGEgU3lzdGVtcyBDby4sIEx0ZC4KLSAwMDpEMDpEQiAgTWNxdWF5IEludGVybmF0aW9uYWwK LUBAIC01ODUwLDcgKzcxMzEsNyBAQAotIDAwOkQwOkUwICBEb29pbiBFbGVjdHJvbmljcyBDby4K LSAwMDpEMDpFMSAgQXZpb25pdGVrIElzcmFlbCBJbmMuCi0gMDA6RDA6RTIgIE1ydCBNaWNybywg SW5jLgotLTAwOkQwOkUzICBFbGUtY2hlbSBFbmdpbmVlcmluZyBDby4sIEx0ZC4KLSswMDpEMDpF MyAgRWxlLUNoZW0gRW5naW5lZXJpbmcgQ28uLCBMdGQuCi0gMDA6RDA6RTQgIENpc2NvIFN5c3Rl bXMsIEluYy4KLSAwMDpEMDpFNSAgU29saWR1bSBTeXN0ZW1zIENvcnAuCi0gMDA6RDA6RTYgIEli b25kIEluYy4KLUBAIC01ODc2LDMwICs3MTU3LDMwIEBACi0gMDA6RDA6RkEgIFJhY2FsIEd1YXJk YXRhCi0gMDA6RDA6RkIgIFRlayBNaWNyb3N5c3RlbXMsIEluY29ycG9yYXRlZAotIDAwOkQwOkZD ICBHcmFuaXRlIE1pY3Jvc3lzdGVtcwotLTAwOkQwOkZEICBPcHRpbWEgVGVsZS5jb20sIEluYy4K LSswMDpEMDpGRCAgT3B0aW1hIFRlbGUuQ29tLCBJbmMuCi0gMDA6RDA6RkUgIEFzdHJhbCBQb2lu dAotIDAwOkQwOkZGICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi0tMDA6REQ6MDAgIFVuZ2VybWFubi1i YXNzIEluYy4KLS0wMDpERDowMSAgVW5nZXJtYW5uLWJhc3MgSW5jLgotLTAwOkREOjAyICBVbmdl cm1hbm4tYmFzcyBJbmMuCi0tMDA6REQ6MDMgIFVuZ2VybWFubi1iYXNzIEluYy4KLS0wMDpERDow NCAgVW5nZXJtYW5uLWJhc3MgSW5jLgotLTAwOkREOjA1ICBVbmdlcm1hbm4tYmFzcyBJbmMuCi0t MDA6REQ6MDYgIFVuZ2VybWFubi1iYXNzIEluYy4KLS0wMDpERDowNyAgVW5nZXJtYW5uLWJhc3Mg SW5jLgotLTAwOkREOjA4ICBVbmdlcm1hbm4tYmFzcyBJbmMuCi0tMDA6REQ6MDkgIFVuZ2VybWFu bi1iYXNzIEluYy4KLS0wMDpERDowQSAgVW5nZXJtYW5uLWJhc3MgSW5jLgotLTAwOkREOjBCICBV bmdlcm1hbm4tYmFzcyBJbmMuCi0tMDA6REQ6MEMgIFVuZ2VybWFubi1iYXNzIEluYy4KLS0wMDpE RDowRCAgVW5nZXJtYW5uLWJhc3MgSW5jLgotLTAwOkREOjBFICBVbmdlcm1hbm4tYmFzcyBJbmMu Ci0tMDA6REQ6MEYgIFVuZ2VybWFubi1iYXNzIEluYy4KLSswMDpERDowMCAgVW5nZXJtYW5uLUJh c3MgSW5jLgotKzAwOkREOjAxICBVbmdlcm1hbm4tQmFzcyBJbmMuCi0rMDA6REQ6MDIgIFVuZ2Vy bWFubi1CYXNzIEluYy4KLSswMDpERDowMyAgVW5nZXJtYW5uLUJhc3MgSW5jLgotKzAwOkREOjA0 ICBVbmdlcm1hbm4tQmFzcyBJbmMuCi0rMDA6REQ6MDUgIFVuZ2VybWFubi1CYXNzIEluYy4KLSsw MDpERDowNiAgVW5nZXJtYW5uLUJhc3MgSW5jLgotKzAwOkREOjA3ICBVbmdlcm1hbm4tQmFzcyBJ bmMuCi0rMDA6REQ6MDggIFVuZ2VybWFubi1CYXNzIEluYy4KLSswMDpERDowOSAgVW5nZXJtYW5u LUJhc3MgSW5jLgotKzAwOkREOjBBICBVbmdlcm1hbm4tQmFzcyBJbmMuCi0rMDA6REQ6MEIgIFVu Z2VybWFubi1CYXNzIEluYy4KLSswMDpERDowQyAgVW5nZXJtYW5uLUJhc3MgSW5jLgotKzAwOkRE OjBEICBVbmdlcm1hbm4tQmFzcyBJbmMuCi0rMDA6REQ6MEUgIFVuZ2VybWFubi1CYXNzIEluYy4K LSswMDpERDowRiAgVW5nZXJtYW5uLUJhc3MgSW5jLgotIDAwOkUwOjAwICBGdWppdHN1LCBMdGQK LSAwMDpFMDowMSAgU3RyYW5kIExpZ2h0aW5nIExpbWl0ZWQKLSAwMDpFMDowMiAgQ3Jvc3Nyb2Fk cyBTeXN0ZW1zLCBJbmMuCi0gMDA6RTA6MDMgIE5va2lhIFdpcmVsZXNzIEJ1c2luZXNzIENvbW11 bgotLTAwOkUwOjA0ICBQbWMtc2llcnJhLCBJbmMuCi0rMDA6RTA6MDQgIFBtYy1TaWVycmEsIElu Yy4KLSAwMDpFMDowNSAgVGVjaG5pY2FsIENvcnAuCi0gMDA6RTA6MDYgIFNpbGljb24gSW50ZWdy YXRlZCBTeXMuIENvcnAuCi0gMDA6RTA6MDcgIE5ldHdvcmsgQWxjaGVteSBMdGQuCi1AQCAtNTkx MSw4ICs3MTkyLDggQEAKLSAwMDpFMDowRCAgUmFkaWFudCBTeXN0ZW1zCi0gMDA6RTA6MEUgIEF2 YWxvbiBJbWFnaW5nIFN5c3RlbXMsIEluYy4KLSAwMDpFMDowRiAgU2hhbmdoYWkgQmF1ZCBEYXRh Ci0tMDA6RTA6MTAgIEhlc3MgU2ItYXV0b21hdGVuYmF1IEdtYmgKLS0wMDpFMDoxMSAgVW5pZGVu IFNhbiBEaWVnbyBSJmQgQ2VudGVyLCBJbmMuCi0rMDA6RTA6MTAgIEhlc3MgU2ItQXV0b21hdGVu YmF1IEdtYmgKLSswMDpFMDoxMSAgVW5pZGVuIFNhbiBEaWVnbyBSJkQgQ2VudGVyLCBJbmMuCi0g MDA6RTA6MTIgIFBsdXRvIFRlY2hub2xvZ2llcyBJbnRlcm5hdGlvbmFsIEluYy4KLSAwMDpFMDox MyAgRWFzdGVybiBFbGVjdHJvbmljIENvLiwgTHRkLgotIDAwOkUwOjE0ICBDaXNjbyBTeXN0ZW1z LCBJbmMuCi1AQCAtNTkyOSwyNCArNzIxMCwyNCBAQAotIDAwOkUwOjFGICBBdmlkaWEgU3lzdGVt cywgSW5jLgotIDAwOkUwOjIwICBUZWNub21lbiBPeQotIDAwOkUwOjIxICBGcmVlZ2F0ZSBDb3Jw LgotLTAwOkUwOjIyICBNZWRpYWxpZ2h0LCBJbmMuCi0rMDA6RTA6MjIgIEFuYWxvZyBEZXZpY2Vz IEluYy4KLSAwMDpFMDoyMyAgVGVscmFkCi0gMDA6RTA6MjQgIEdhZHpvb3ggTmV0d29ya3MKLSAw MDpFMDoyNSAgRGl0IENvLiwgTHRkLgotIDAwOkUwOjI2ICBFYXN0bWFuIEtvZGFrIENvLgotIDAw OkUwOjI3ICBEdXgsIEluYy4KLSAwMDpFMDoyOCAgQXB0aXggQ29ycG9yYXRpb24KLS0wMDpFMDoy OSAgT0VNIE9FTQotKzAwOkUwOjI5ICBTdGFuZGFyZCBNaWNyb3N5c3RlbXMgQ29ycC4KLSAwMDpF MDoyQSAgVGFuZGJlcmcgVGVsZXZpc2lvbiBBcwotIDAwOkUwOjJCICBFeHRyZW1lIE5ldHdvcmtz Ci0gMDA6RTA6MkMgIEFzdCBDb21wdXRlcgotIDAwOkUwOjJEICBJbm5vbWVkaWFsb2dpYywgSW5j LgotIDAwOkUwOjJFICBTcGMgRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KLS0wMDpFMDoyRiAgTWNu cyBIb2xkaW5ncywgTC5wLgotKzAwOkUwOjJGICBNY25zIEhvbGRpbmdzLCBMLlAuCi0gMDA6RTA6 MzAgIE1lbGl0YSBJbnRlcm5hdGlvbmFsIENvcnAuCi0gMDA6RTA6MzEgIEhhZ2l3YXJhIEVsZWN0 cmljIENvLiwgTHRkLgotIDAwOkUwOjMyICBNaXN5cyBGaW5hbmNpYWwgU3lzdGVtcywgTHRkLgot LTAwOkUwOjMzICBFLmUucC5kLiBHbWJoCi0rMDA6RTA6MzMgIEUuRS5QLkQuIEdtYmgKLSAwMDpF MDozNCAgQ2lzY28gU3lzdGVtcywgSW5jLgotIDAwOkUwOjM1ICBMb3VnaGJvcm91Z2ggU291bmQg SW1hZ2VzLCBQbGMKLSAwMDpFMDozNiAgUGlvbmVlciBDb3Jwb3JhdGlvbgotQEAgLTU5NTYsNyAr NzIzNyw3IEBACi0gMDA6RTA6M0EgIENhYmxldHJvbiBTeXN0ZW1zLCBJbmMuCi0gMDA6RTA6M0Ig IFByb21pbmV0IENvcnBvcmF0aW9uCi0gMDA6RTA6M0MgIEFkdmFuc3lzCi0tMDA6RTA6M0QgIEZv Y29uIEVsZWN0cm9uaWMgU3lzdGVtcyBBL3MKLSswMDpFMDozRCAgRm9jb24gRWxlY3Ryb25pYyBT eXN0ZW1zIEEvUwotIDAwOkUwOjNFICBBbGZhdGVjaCwgSW5jLgotIDAwOkUwOjNGICBKYXRvbiBD b3Jwb3JhdGlvbgotIDAwOkUwOjQwICBEZXNrc3RhdGlvbiBUZWNobm9sb2d5LCBJbmMuCi1AQCAt NTk4MCwxNyArNzI2MSwxNyBAQAotIDAwOkUwOjUyICBGb3VuZHJ5IE5ldHdvcmtzLCBJbmMuCi0g MDA6RTA6NTMgIENlbGxwb3J0IExhYnMsIEluYy4KLSAwMDpFMDo1NCAgS29kYWkgSGl0ZWMgQ28u LCBMdGQuCi0tMDA6RTA6NTUgIEluZ2VuaWVyaWEgRWxlY3Ryb25pY2EgQ29tZXJjaWFsIEluZWxj b20gUy5hLgotKzAwOkUwOjU1ICBJbmdlbmllcmlhIEVsZWN0cm9uaWNhIENvbWVyY2lhbCBJbmVs Y29tIFMuQS4KLSAwMDpFMDo1NiAgSG9sb250ZWNoIENvcnBvcmF0aW9uCi0gMDA6RTA6NTcgIEhh biBNaWNyb3RlbGVjb20uIENvLiwgTHRkLgotLTAwOkUwOjU4ICBQaGFzZSBPbmUgRGVubWFyayBB L3MKLSswMDpFMDo1OCAgUGhhc2UgT25lIERlbm1hcmsgQS9TCi0gMDA6RTA6NTkgIENvbnRyb2xs ZWQgRW52aXJvbm1lbnRzLCBMdGQuCi0gMDA6RTA6NUEgIEdhbGVhIE5ldHdvcmsgU2VjdXJpdHkK LSAwMDpFMDo1QiAgV2VzdCBFbmQgU3lzdGVtcyBDb3JwLgotIDAwOkUwOjVDICBNYXRzdXNoaXRh IEtvdG9idWtpIEVsZWN0cm9uaWNzIEluZHVzdHJpZXMsIEx0ZC4KLSAwMDpFMDo1RCAgVW5pdGVj IENvLiwgTHRkLgotIDAwOkUwOjVFICBKYXBhbiBBdmlhdGlvbiBFbGVjdHJvbmljcyBJbmR1c3Ry eSwgTHRkLgotLTAwOkUwOjVGICBFLW5ldCwgSW5jLgotKzAwOkUwOjVGICBFLU5ldCwgSW5jLgot IDAwOkUwOjYwICBTaGVyd29vZAotIDAwOkUwOjYxICBFZGdlcG9pbnQgTmV0d29ya3MsIEluYy4K LSAwMDpFMDo2MiAgSG9zdCBFbmdpbmVlcmluZwotQEAgLTU5OTgsMzYgKzcyNzksMzYgQEAKLSAw MDpFMDo2NCAgU2Ftc3VuZyBFbGVjdHJvbmljcwotIDAwOkUwOjY1ICBPcHRpY2FsIEFjY2VzcyBJ bnRlcm5hdGlvbmFsCi0gMDA6RTA6NjYgIFByb21heCBTeXN0ZW1zLCBJbmMuCi0tMDA6RTA6Njcg IEVhYyBBdXRvbWF0aW9uLWNvbnN1bHRpbmcgR21iaAotKzAwOkUwOjY3ICBFYWMgQXV0b21hdGlv bi1Db25zdWx0aW5nIEdtYmgKLSAwMDpFMDo2OCAgTWVycmltYWMgU3lzdGVtcyBJbmMuCi0gMDA6 RTA6NjkgIEpheWNvcgotIDAwOkUwOjZBICBLYXBzY2ggQWcKLS0wMDpFMDo2QiAgVyZnIFNwZWNp YWwgUHJvZHVjdHMKLSswMDpFMDo2QiAgVyZHIFNwZWNpYWwgUHJvZHVjdHMKLSAwMDpFMDo2QyAg QWVwIFN5c3RlbXMgSW50ZXJuYXRpb25hbCBMdGQKLSAwMDpFMDo2RCAgQ29tcHV3YXJlIENvcnBv cmF0aW9uCi0tMDA6RTA6NkUgIEZhciBTeXN0ZW1zIFMucC5hLgotLTAwOkUwOjZGICBUZXJheW9u IENvcnAuCi0rMDA6RTA6NkUgIEZhciBTeXN0ZW1zIFMuUC5BLgotKzAwOkUwOjZGICBUZXJheW9u IENvbW11bmljYXRpb25zIFN5c3RlbXMKLSAwMDpFMDo3MCAgRGggVGVjaG5vbG9neQotIDAwOkUw OjcxICBFcGlzIE1pY3JvY29tcHV0ZXIKLSAwMDpFMDo3MiAgTHluawotIDAwOkUwOjczICBOYXRp b25hbCBBbXVzZW1lbnQgTmV0d29yaywgSW5jLgotIDAwOkUwOjc0ICBUaWVybmFuIENvbW11bmlj YXRpb25zLCBJbmMuCi0tMDA6RTA6NzUgIEF0bGFzIENvbXB1dGVyIEVxdWlwbWVudCwgSW5jLgot KzAwOkUwOjc1ICBWZXJpbGluayBDb3Jwb3JhdGlvbgotIDAwOkUwOjc2ICBEZXZlbG9wbWVudCBD b25jZXB0cywgSW5jLgotIDAwOkUwOjc3ICBXZWJnZWFyLCBJbmMuCi0gMDA6RTA6NzggIEJlcmtl bGV5IE5ldHdvcmtzCi0tMDA6RTA6NzkgIEEudC5uLnIuCi0rMDA6RTA6NzkgIEEuVC5OLlIuCi0g MDA6RTA6N0EgIE1pa3JvZGlkYWt0IEFiCi0gMDA6RTA6N0IgIEJheSBOZXR3b3JrcwotLTAwOkUw OjdDICBNZXR0bGVyLXRvbGVkbywgSW5jLgotKzAwOkUwOjdDICBNZXR0bGVyLVRvbGVkbywgSW5j LgotIDAwOkUwOjdEICBOZXRyb25peCwgSW5jLgotIDAwOkUwOjdFICBXYWx0IERpc25leSBJbWFn aW5lZXJpbmcKLS0wMDpFMDo3RiAgTG9naXN0aXN0ZW0gUy5yLmwuCi0rMDA6RTA6N0YgIExvZ2lz dGlzdGVtIFMuUi5MLgotIDAwOkUwOjgwICBDb250cm9sIFJlc291cmNlcyBDb3Jwb3JhdGlvbgot IDAwOkUwOjgxICBUeWFuIENvbXB1dGVyIENvcnAuCi0gMDA6RTA6ODIgIEFuZXJtYQotIDAwOkUw OjgzICBKYXRvIFRlY2hub2xvZ2llcywgSW5jLgotLTAwOkUwOjg0ICBDb21wdWxpdGUgUiZkCi0r MDA6RTA6ODQgIENvbXB1bGl0ZSBSJkQKLSAwMDpFMDo4NSAgR2xvYmFsIE1haW50ZWNoLCBJbmMu Ci0gMDA6RTA6ODYgIEN5YmV4IENvbXB1dGVyIFByb2R1Y3RzCi0gMDA6RTA6ODcgIExlY3JveSAt IE5ldHdvcmtpbmcgUHJvZHVjdGlvbnMgRGl2aXNpb24KLUBAIC02MDQ0LDcgKzczMjUsNyBAQAot IDAwOkUwOjkyICBBZG10ZWsgSW5jb3Jwb3JhdGVkCi0gMDA6RTA6OTMgIEFja2ZpbiBOZXR3b3Jr cwotIDAwOkUwOjk0ICBPc2FpIFNybAotLTAwOkUwOjk1ICBBZHZhbmNlZC12aXNpb24gVGVjaG5v bGdpZXMgQ29ycC4KLSswMDpFMDo5NSAgQWR2YW5jZWQtVmlzaW9uIFRlY2hub2xnaWVzIENvcnAu Ci0gMDA6RTA6OTYgIFNoaW1hZHp1IENvcnBvcmF0aW9uCi0gMDA6RTA6OTcgIENhcnJpZXIgQWNj ZXNzIENvcnBvcmF0aW9uCi0gMDA6RTA6OTggIEFib2NvbSBTeXN0ZW1zLCBJbmMuCi1AQCAtNjA1 OSwxNCArNzM0MCwxNCBAQAotIDAwOkUwOkExICBIaW1hIFBhdWwgSGlsZGVicmFuZHQgR21iaCBD by4gS2cKLSAwMDpFMDpBMiAgTWljcm9zbGF0ZSBJbmMuCi0gMDA6RTA6QTMgIENpc2NvIFN5c3Rl bXMsIEluYy4KLS0wMDpFMDpBNCAgRXNhb3RlIFMucC5hLgotKzAwOkUwOkE0ICBFc2FvdGUgUy5Q LkEuCi0gMDA6RTA6QTUgIENvbWNvcmUgU2VtaWNvbmR1Y3RvciwgSW5jLgotIDAwOkUwOkE2ICBU ZWxvZ3kgTmV0d29ya3MsIEluYy4KLSAwMDpFMDpBNyAgSXBjIEluZm9ybWF0aW9uIFN5c3RlbXMs IEluYy4KLSAwMDpFMDpBOCAgU2F0IEdtYmggJiBDby4KLSAwMDpFMDpBOSAgRnVuYWkgRWxlY3Ry aWMgQ28uLCBMdGQuCi0gMDA6RTA6QUEgIEVsZWN0cm9zb25pYyBMdGQuCi0tMDA6RTA6QUIgIERp bWF0IFMuYS4KLSswMDpFMDpBQiAgRGltYXQgUy5BLgotIDAwOkUwOkFDICBNaWRzY28sIEluYy4K LSAwMDpFMDpBRCAgRWVzIFRlY2hub2xvZ3ksIEx0ZC4KLSAwMDpFMDpBRSAgWGFxdGkgQ29ycG9y YXRpb24KLUBAIC02MDg5LDExICs3MzcwLDExIEBACi0gMDA6RTA6QkYgIFRvcnJlbnQgTmV0d29y a2luZyBUZWNobm9sb2dpZXMgQ29ycC4KLSAwMDpFMDpDMCAgU2Vpd2EgRWxlY3RyaWMgTWZnLiBD by4sIEx0ZC4KLSAwMDpFMDpDMSAgTWVtb3JleCBUZWxleCBKYXBhbiwgTHRkLgotLTAwOkUwOkMy ICBOZWNzeSBTLnAuYS4KLSswMDpFMDpDMiAgTmVjc3kgUy5QLkEuCi0gMDA6RTA6QzMgIFNha2Fp IFN5c3RlbSBEZXZlbG9wbWVudCBDb3JwLgotIDAwOkUwOkM0ICBIb3JuZXIgRWxlY3RyaWMsIElu Yy4KLSAwMDpFMDpDNSAgQmNvbSBFbGVjdHJvbmljcyBJbmMuCi0tMDA6RTA6QzYgIExpbmsyaXQs IEwubC5jLgotKzAwOkUwOkM2ICBMaW5rMkl0LCBMLkwuQy4KLSAwMDpFMDpDNyAgRXVyb3RlY2gg U3JsCi0gMDA6RTA6QzggIFZpcnR1YWwgQWNjZXNzLCBMdGQuCi0gMDA6RTA6QzkgIEF1dG9tYXRl ZGxvZ2ljIENvcnBvcmF0aW9uCi1AQCAtNjExOCwxNSArNzM5OSwxNSBAQAotIDAwOkUwOkRDICBO ZXh3YXJlIENvcnAuCi0gMDA6RTA6REQgIFplbml0aCBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgot IDAwOkUwOkRFICBEYXRheCBOdgotLTAwOkUwOkRGICBLZSBLb21tdW5pa2F0aW9ucy1lbGVjdHJv bmlrCi0rMDA6RTA6REYgIEtlIEtvbW11bmlrYXRpb25zLUVsZWN0cm9uaWsKLSAwMDpFMDpFMCAg U2kgRWxlY3Ryb25pY3MsIEx0ZC4KLSAwMDpFMDpFMSAgRzIgTmV0d29ya3MsIEluYy4KLSAwMDpF MDpFMiAgSW5ub3ZhIENvcnAuCi0tMDA6RTA6RTMgIFNrLWVsZWt0cm9uaWsgR21iaAotKzAwOkUw OkUzICBTay1FbGVrdHJvbmlrIEdtYmgKLSAwMDpFMDpFNCAgRmFudWMgUm9ib3RpY3MgTm9ydGgg QW1lcmljYSwgSW5jLgotIDAwOkUwOkU1ICBDaW5jbyBOZXR3b3JrcywgSW5jLgotLTAwOkUwOkU2 ICBJbmNhYSBEYXRhY29tIEIudi4KLS0wMDpFMDpFNyAgUmF5dGhlb24gRS1zeXN0ZW1zLCBJbmMu Ci0rMDA6RTA6RTYgIEluY2FhIERhdGFjb20gQi5WLgotKzAwOkUwOkU3ICBSYXl0aGVvbiBFLVN5 c3RlbXMsIEluYy4KLSAwMDpFMDpFOCAgR3JldGFjb2RlciBEYXRhIFN5c3RlbXMgQWcKLSAwMDpF MDpFOSAgRGF0YSBMYWJzLCBJbmMuCi0gMDA6RTA6RUEgIElubm92YXQgQ29tbXVuaWNhdGlvbnMs IEluYy4KLUBAIC02MTM5LDcgKzc0MjAsNyBAQAotIDAwOkUwOkYxICBUaGF0IENvcnBvcmF0aW9u Ci0gMDA6RTA6RjIgIEFybG90dG8gQ29tbmV0LCBJbmMuCi0gMDA6RTA6RjMgIFdlYnNwcmludCBD b21tdW5pY2F0aW9ucywgSW5jLgotLTAwOkUwOkY0ICBJbnNpZGUgVGVjaG5vbG9neSBBL3MKLSsw MDpFMDpGNCAgSW5zaWRlIFRlY2hub2xvZ3kgQS9TCi0gMDA6RTA6RjUgIFRlbGVzIEFnCi0gMDA6 RTA6RjYgIERlY2lzaW9uIEV1cm9wZQotIDAwOkUwOkY3ICBDaXNjbyBTeXN0ZW1zLCBJbmMuCi1A QCAtNjE0OCwyNSArNzQyOSwyNSBAQAotIDAwOkUwOkZBICBUcmwgVGVjaG5vbG9neSwgTHRkLgot IDAwOkUwOkZCICBMZWlnaHRyb25peCwgSW5jLgotIDAwOkUwOkZDICBIdWF3ZWkgVGVjaG5vbG9n aWVzIENvLiwgTHRkLgotLTAwOkUwOkZEICBBLXRyZW5kIFRlY2hub2xvZ3kgQ28uLCBMdGQuCi0r MDA6RTA6RkQgIEEtVHJlbmQgVGVjaG5vbG9neSBDby4sIEx0ZC4KLSAwMDpFMDpGRSAgQ2lzY28g U3lzdGVtcywgSW5jLgotIDAwOkUwOkZGICBTZWN1cml0eSBEeW5hbWljcyBUZWNobm9sb2dpZXMs IEluYy4KLSAwMDpFNjpEMyAgTml4ZG9yZiBDb21wdXRlciBDb3JwLgotLTAyOjA3OjAxICBSYWNh bC1kYXRhY29tCi0rMDI6MDc6MDEgIFJhY2FsLURhdGFjb20KLSAwMjoxQzo3QyAgUGVycSBTeXN0 ZW1zIENvcnBvcmF0aW9uCi0gMDI6NjA6ODYgIExvZ2ljIFJlcGxhY2VtZW50IFRlY2guIEx0ZC4K LS0wMjo2MDo4QyAgM2NvbSBDb3Jwb3JhdGlvbgotLTAyOjcwOjAxICBSYWNhbC1kYXRhY29tCi0t MDI6NzA6QjAgIE0vYS1jb20gSW5jLiBDb21wYW5pZXMKLSswMjo2MDo4QyAgM0NvbSBDb3Jwb3Jh dGlvbgotKzAyOjcwOjAxICBSYWNhbC1EYXRhY29tCi0rMDI6NzA6QjAgIE0vQS1Db20gSW5jLiBD b21wYW5pZXMKLSAwMjo3MDpCMyAgRGF0YSBSZWNhbGwgTHRkCi0gMDI6OUQ6OEUgIENhcmRpYWMg UmVjb3JkZXJzIEluYy4KLS0wMjpBQTozQyAgT2xpdmV0dGkgVGVsZWNvbW0gU3BhIChvbHRlY28p Ci0rMDI6QUE6M0MgIE9saXZldHRpIFRlbGVjb21tIFNwYSAoT2x0ZWNvKQotIDAyOkJCOjAxICBP Y3RvdGhvcnBlIENvcnAuCi0tMDI6QzA6OEMgIDNjb20gQ29ycG9yYXRpb24KLSswMjpDMDo4QyAg M0NvbSBDb3Jwb3JhdGlvbgotIDAyOkNGOjFDICBDb21tdW5pY2F0aW9uIE1hY2hpbmVyeSBDb3Jw LgotIDAyOkU2OkQzICBOaXhkb3JmIENvbXB1dGVyIENvcnBvcmF0aW9uCi0gMDQ6MEE6RTAgIFht aXQgQWcgQ29tcHV0ZXIgTmV0d29ya3MKLS0wNDpFMDpDNCAgVHJpdW1waC1hZGxlciBBZwotKzA0 OkUwOkM0ICBUcml1bXBoLUFkbGVyIEFnCi0gMDg6MDA6MDEgIENvbXB1dGVydmlzaW9uIENvcnBv cmF0aW9uCi0gMDg6MDA6MDIgIEJyaWRnZSBDb21tdW5pY2F0aW9ucyBJbmMuCi0gMDg6MDA6MDMg IEFkdmFuY2VkIENvbXB1dGVyIENvbW0uCi1AQCAtNjE5MSwzNiArNzQ3MiwzOCBAQAotIDA4OjAw OjE3ICBOYXRpb25hbCBTZW1pY29uZHVjdG9yCi0gMDg6MDA6MTggIFBpcmVsbGkgRm9jb20gTmV0 d29ya3MKLSAwODowMDoxOSAgR2VuZXJhbCBFbGVjdHJpYyBDb3Jwb3JhdGlvbgotLTA4OjAwOjFB ICBUaWFyYS8gMTBuZXQKLSswODowMDoxQSAgVGlhcmEvIDEwTmV0Ci0gMDg6MDA6MUIgIERhdGEg R2VuZXJhbAotLTA4OjAwOjFDICBLZGQta29rdXNhaSBEZWJuc2luIERlbndhIENvLgotKzA4OjAw OjFDICBLZGQtS29rdXNhaSBEZWJuc2luIERlbndhIENvLgotIDA4OjAwOjFEICBBYmxlIENvbW11 bmljYXRpb25zIEluYy4KLSAwODowMDoxRSAgQXBvbGxvIENvbXB1dGVyIEluYy4KLSAwODowMDox RiAgU2hhcnAgQ29ycG9yYXRpb24KLSAwODowMDoyMCAgU3VuIE1pY3Jvc3lzdGVtcyBJbmMuCi0t MDg6MDA6MjEgIDNtIENvbXBhbnkKLSswODowMDoyMSAgM00gQ29tcGFueQotIDA4OjAwOjIyICBO YmkgSW5jLgotLTA4OjAwOjIzICBNYXRzdWhpdGEgR3JhcGhpYyBDb21tIFN5cyBJbmMKLS0wODow MDoyNCAgMTBuZXQgQ29tbXVuaWNhdGlvbnMvZGNhCi0rMDg6MDA6MjMgIFBhbmFzb25pYyBDb21t dW5pY2F0aW9ucyBDby4sIEx0ZC4KLSswODowMDoyNCAgMTBOZXQgQ29tbXVuaWNhdGlvbnMvRGNh Ci0gMDg6MDA6MjUgIENvbnRyb2wgRGF0YQotLTA4OjAwOjI2ICBOb3JzayBEYXRhIEEucy4KLSsw ODowMDoyNiAgTm9yc2sgRGF0YSBBLlMuCi0gMDg6MDA6MjcgIENhZG11cyBDb21wdXRlciBTeXN0 ZW1zCi0gMDg6MDA6MjggIFRleGFzIEluc3RydW1lbnRzCi0gMDg6MDA6MjkgIE1lZ2F0ZWsgQ29y cG9yYXRpb24KLSAwODowMDoyQSAgTW9zYWljIFRlY2hub2xvZ2llcyBJbmMuCi0gMDg6MDA6MkIg IERpZ2l0YWwgRXF1aXBtZW50IENvcnBvcmF0aW9uCi0gMDg6MDA6MkMgIEJyaXR0b24gTGVlIElu Yy4KLS0wODowMDoyRCAgTGFuLXRlYyBJbmMuCi0rMDg6MDA6MkQgIExhbi1UZWMgSW5jLgotIDA4 OjAwOjJFICBNZXRhcGhvciBDb21wdXRlciBTeXN0ZW1zCi0gMDg6MDA6MkYgIFByaW1lIENvbXB1 dGVyIEluYy4KLSswODowMDozMCAgTmV0d29yayBSZXNlYXJjaCBDb3Jwb3JhdGlvbgotIDA4OjAw OjMwICBDZXJuCi0rMDg6MDA6MzAgIFJveWFsIE1lbGJvdXJuZSBJbnN0IE9mIFRlY2gKLSAwODow MDozMSAgTGl0dGxlIE1hY2hpbmVzIEluYy4KLSAwODowMDozMiAgVGlnYW4gSW5jb3Jwb3JhdGVk Ci0gMDg6MDA6MzMgIEJhdXNjaCAmIExvbWIKLSAwODowMDozNCAgRmlsZW5ldCBDb3Jwb3JhdGlv bgotIDA4OjAwOjM1ICBNaWNyb2ZpdmUgQ29ycG9yYXRpb24KLSAwODowMDozNiAgSW50ZXJncmFw aCBDb3Jwb3JhdGlvbgotLTA4OjAwOjM3ICBGdWppLXhlcm94IENvLiBMdGQuCi0rMDg6MDA6Mzcg IEZ1amktWGVyb3ggQ28uIEx0ZC4KLSAwODowMDozOCAgQ2lpIEhvbmV5d2VsbCBCdWxsCi0gMDg6 MDA6MzkgIFNwaWRlciBTeXN0ZW1zIExpbWl0ZWQKLSAwODowMDozQSAgT3JjYXRlY2ggSW5jLgot QEAgLTYyMzAsNyArNzUxMyw3IEBACi0gMDg6MDA6M0UgIENvZGV4IENvcnBvcmF0aW9uCi0gMDg6 MDA6M0YgIEZyZWQgS29zY2hhcmEgRW50ZXJwcmlzZXMKLSAwODowMDo0MCAgRmVycmFudGkgQ29t cHV0ZXIgU3lzLiBMaW1pdGVkCi0tMDg6MDA6NDEgIFJhY2FsLW1pbGdvIEluZm9ybWF0aW9uIFN5 cy4uCi0rMDg6MDA6NDEgIFJhY2FsLU1pbGdvIEluZm9ybWF0aW9uIFN5cy4uCi0gMDg6MDA6NDIg IEphcGFuIE1hY25pY3MgQ29ycC4KLSAwODowMDo0MyAgUGl4ZWwgQ29tcHV0ZXIgSW5jLgotIDA4 OjAwOjQ0ICBEYXZpZCBTeXN0ZW1zIEluYy4KLUBAIC02MjQzLDcgKzc1MjYsNyBAQAotIDA4OjAw OjRCICBQbGFubmluZyBSZXNlYXJjaCBDb3JwLgotIDA4OjAwOjRDICBIeWRyYSBDb21wdXRlciBT eXN0ZW1zIEluYy4KLSAwODowMDo0RCAgQ29ydnVzIFN5c3RlbXMgSW5jLgotLTA4OjAwOjRFICAz Y29tIEV1cm9wZSBMdGQuCi0rMDg6MDA6NEUgIDNDb20gRXVyb3BlIEx0ZC4KLSAwODowMDo0RiAg Q3lnbmV0IFN5c3RlbXMKLSAwODowMDo1MCAgRGFpc3kgU3lzdGVtcyBDb3JwLgotIDA4OjAwOjUx ICBFeHBlcmRhdGEKLUBAIC02MjUzLDcgKzc1MzYsNyBAQAotIDA4OjAwOjU2ICBTdGFuZm9yZCBM aW5lYXIgQWNjZWwuIENlbnRlcgotIDA4OjAwOjU3ICBFdmFucyAmIFN1dGhlcmxhbmQKLSAwODow MDo1OCAgU3lzdGVtcyBDb25jZXB0cwotLTA4OjAwOjU5ICBBL3MgTXljcm9uCi0rMDg6MDA6NTkg IEEvUyBNeWNyb24KLSAwODowMDo1QSAgSWJtIENvcnBvcmF0aW9uCi0gMDg6MDA6NUIgIFZ0YSBU ZWNobm9sb2dpZXMgSW5jLgotIDA4OjAwOjVDICBGb3VyIFBoYXNlIFN5c3RlbXMKLUBAIC02Mjc1 LDkgKzc1NTgsOSBAQAotIDA4OjAwOjZDICBTdW50ZWsgVGVjaG5vbG9neSBJbnQnbAotIDA4OjAw OjZEICBXaGl0ZWNoYXBlbCBDb21wdXRlciBXb3JrcwotIDA4OjAwOjZFICBNYXNzY29tcAotLTA4 OjAwOjZGICBQaGlsaXBzIEFwZWxkb29ybiBCLnYuCi0rMDg6MDA6NkYgIFBoaWxpcHMgQXBlbGRv b3JuIEIuVi4KLSAwODowMDo3MCAgTWl0c3ViaXNoaSBFbGVjdHJpYyBDb3JwLgotLTA4OjAwOjcx ICBNYXRyYSAoZHNpZSkKLSswODowMDo3MSAgTWF0cmEgKERzaWUpCi0gMDg6MDA6NzIgIFhlcm94 IENvcnAgVW5pdiBHcmFudCBQcm9ncmFtCi0gMDg6MDA6NzMgIFRlY21hciBJbmMuCi0gMDg6MDA6 NzQgIENhc2lvIENvbXB1dGVyIENvLiBMdGQuCi1AQCAtNjI4OSwxNSArNzU3MiwxNSBAQAotIDA4 OjAwOjdBICBJbmRhdGEKLSAwODowMDo3QiAgU2FueW8gRWxlY3RyaWMgQ28uIEx0ZC4KLSAwODow MDo3QyAgVml0YWxpbmsgQ29tbXVuaWNhdGlvbnMgQ29ycC4KLS0wODowMDo3RSAgQW1hbGdhbWF0 ZWQgV2lyZWxlc3MoYXVzKSBMdGQKLS0wODowMDo3RiAgQ2FybmVnaWUtbWVsbG9uIFVuaXZlcnNp dHkKLSswODowMDo3RSAgQW1hbGdhbWF0ZWQgV2lyZWxlc3MoQXVzKSBMdGQKLSswODowMDo3RiAg Q2FybmVnaWUtTWVsbG9uIFVuaXZlcnNpdHkKLSAwODowMDo4MCAgQWVzIERhdGEgSW5jLgotLTA4 OjAwOjgxICBBc3RlY2ggSW5jLgotKzA4OjAwOjgxICAsQXN0ZWNoIEluYy4KLSAwODowMDo4MiAg VmVyaXRhcyBTb2Z0d2FyZQotLTA4OjAwOjgzICBTZWlrbyBJbnN0cnVtLiBBbmQgRWxlY3Ryb25p Y3MKLSswODowMDo4MyAgU2Vpa28gSW5zdHJ1bWVudHMgSW5jLgotIDA4OjAwOjg0ICBUb21lbiBF bGVjdHJvbmljcyBDb3JwLgotIDA4OjAwOjg1ICBFbHhzaQotLTA4OjAwOjg2ICBJbWFnZW4gQ29y cG9yYXRpb24KLSswODowMDo4NiAgS29uaWNhIE1pbm9sdGEgSG9sZGluZ3MsIEluYy4KLSAwODow MDo4NyAgWHlwbGV4Ci0gMDg6MDA6ODggIE1jZGF0YSBDb3Jwb3JhdGlvbgotIDA4OjAwOjg5ICBL aW5ldGljcwotQEAgLTYzMDgsOCArNzU5MSw4IEBACi0gMDg6MDA6OEUgIFRhbmRlbSBDb21wdXRl cnMKLSAwODowMDo4RiAgQ2hpcGNvbSBDb3Jwb3JhdGlvbgotIDA4OjAwOjkwICBTb25vbWEgU3lz dGVtcwotLTA4OjE0OjQzICBVbmlicmFpbiBTLmEuCi0tMDg6QkI6Q0MgIEFrLW5vcmQgRWR2IFZl cnRyaWVic2dlcy4gTWJoCi0rMDg6MTQ6NDMgIFVuaWJyYWluIFMuQS4KLSswODpCQjpDQyAgQWst Tm9yZCBFZHYgVmVydHJpZWJzZ2VzLiBNYmgKLSAxMDowMDowMCAgUHJpdmF0ZQotIDEwOjAwOjVB ICBJYm0gQ29ycG9yYXRpb24KLSAxMDowMDpFOCAgTmF0aW9uYWwgU2VtaWNvbmR1Y3RvcgotQEAg LTYzMjEsMyArNzYwNCw0IEBACi0gQUE6MDA6MDIgIERpZ2l0YWwgRXF1aXBtZW50IENvcnBvcmF0 aW9uCi0gQUE6MDA6MDMgIERpZ2l0YWwgRXF1aXBtZW50IENvcnBvcmF0aW9uCi0gQUE6MDA6MDQg IERpZ2l0YWwgRXF1aXBtZW50IENvcnBvcmF0aW9uCi0rQUM6REU6NDggIFByaXZhdGUKCmRpZmYg LS1naXQgYS9wYWRzLTEuMi1leHRyYS1saWJzLnBhdGNoIGIvcGFkcy0xLjItZXh0cmEtbGlicy5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODVjOGRhMC4uMDAwMDAwMAotLS0g YS9wYWRzLTEuMi1leHRyYS1saWJzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBA QAotZGlmZiAtdXIgcGFkcy0xLjIub3JpZy9zcmMvTWFrZWZpbGUuYW0gcGFkcy0xLjIvc3JjL01h a2VmaWxlLmFtCi0tLS0gcGFkcy0xLjIub3JpZy9zcmMvTWFrZWZpbGUuYW0JMjAxOS0wMi0xMSAx Njo0ODo0Ny41MTYzMDI3MjAgLTA1MDAKLSsrKyBwYWRzLTEuMi9zcmMvTWFrZWZpbGUuYW0JMjAx OS0wMi0xMSAxNzo0OTo1MS43NzI5MDk1MDcgLTA1MDAKLUBAIC0xMiw3ICsxMiw3IEBACi0gICAg ICAgICAgICAgICAgdXRpbC5jIHV0aWwuaCBcCi0gICAgICAgICAgICAgICAgZ2xvYmFsLmgKLSBw YWRzX0xERkxBR1MgPSAtcHRocmVhZAotLXBhZHNfTERBREQgPSAkKHRvcF9zcmNkaXIpL2xpYi9i c3RyaW5nL2xpYmJzdHJpbmcuYSBvdXRwdXQvbGlib3V0cHV0LmEKLStwYWRzX0xEQUREID0gJCh0 b3Bfc3JjZGlyKS9saWIvYnN0cmluZy9saWJic3RyaW5nLmEgb3V0cHV0L2xpYm91dHB1dC5hICQo RVhUUkFfTElCUykKLSBiaW5fU0NSSVBUUyA9IHBhZHMtcmVwb3J0Ci0gCi0gRVhUUkFfRElTVCA9 IHBhZHMtcmVwb3J0LnBsCgpkaWZmIC0tZ2l0IGEvcGFkcy0xLjItaW5saW5lLWNsZWFudXAucGF0 Y2ggYi9wYWRzLTEuMi1pbmxpbmUtY2xlYW51cC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggOWY3NjIxOS4uMDAwMDAwMAotLS0gYS9wYWRzLTEuMi1pbmxpbmUtY2xlYW51cC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLWRpZmYgLXVycCBwYWRzLTEuMi5v cmlnL3NyYy9zdG9yYWdlLmMgcGFkcy0xLjIvc3JjL3N0b3JhZ2UuYwotLS0tIHBhZHMtMS4yLm9y aWcvc3JjL3N0b3JhZ2UuYwkyMDE1LTA4LTE3IDEwOjE4OjUxLjMwNDI2NjI0OSAtMDQwMAotKysr IHBhZHMtMS4yL3NyYy9zdG9yYWdlLmMJMjAxNS0wOC0xNyAxMDoyMjo0MC41NTEyNjA1NDAgLTA0 MDAKLUBAIC0zNjksNyArMzY5LDcgQEAgdm9pZCBlbmRfc3RvcmFnZSAoKQotICAqCQk6IDIgLSBQ cm90b2NvbAotICAqIFJFVFVSTgk6IFBvaW50ZXIgdG8gQXNzZXQKLSAgKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0taW5saW5l IEFzc2V0ICoKLStBc3NldCAqCi0gZmluZF9hc3NldCAoc3RydWN0IGluX2FkZHIgaXBfYWRkciwg dV9pbnQxNl90IHBvcnQsIHVuc2lnbmVkIHNob3J0IHByb3RvKQotIHsKLSAgICAgQXNzZXQgKmxp c3Q7Ci1kaWZmIC11cnAgcGFkcy0xLjIub3JpZy9zcmMvc3RvcmFnZS5oIHBhZHMtMS4yL3NyYy9z dG9yYWdlLmgKLS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9zdG9yYWdlLmgJMjAxNS0wOC0xNyAxMDox ODo1MS4zMDQyNjYyNDkgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvc3RvcmFnZS5oCTIwMTUtMDgt MTcgMTA6MjE6MTAuNDEyMjYyNzg1IC0wNDAwCi1AQCAtNTYsNyArNTYsNyBAQCB2b2lkIGFkZF9h cnBfYXNzZXQgKHN0cnVjdCBpbl9hZGRyIGlwX2FkCi0gdW5zaWduZWQgc2hvcnQgZ2V0X2lfYXR0 ZW1wdHMgKHN0cnVjdCBpbl9hZGRyIGlwX2FkZHIsIHVfaW50MTZfdCBwb3J0LCB1bnNpZ25lZCBz aG9ydCBwcm90byk7Ci0gc2hvcnQgdXBkYXRlX2lfYXR0ZW1wdHMgKHVuc2lnbmVkIHNob3J0IGlf YXR0ZW1wdHMpOwotIHNob3J0IHVwZGF0ZV9hc3NldCAoc3RydWN0IGluX2FkZHIgaXBfYWRkciwg dV9pbnQxNl90IHBvcnQsIHVuc2lnbmVkIHNob3J0IHByb3RvLCBic3RyaW5nIHNlcnZpY2UsIGJz dHJpbmcgYXBwbGljYXRpb24pOwotLWlubGluZSBBc3NldCAqZmluZF9hc3NldCAoc3RydWN0IGlu X2FkZHIgaXBfYWRkciwgdV9pbnQxNl90IHBvcnQsIHVuc2lnbmVkIHNob3J0IHByb3RvKTsKLStB c3NldCAqZmluZF9hc3NldCAoc3RydWN0IGluX2FkZHIgaXBfYWRkciwgdV9pbnQxNl90IHBvcnQs IHVuc2lnbmVkIHNob3J0IHByb3RvKTsKLSBBc3NldCAqZ2V0X2Fzc2V0X3BvaW50ZXIgKHZvaWQp OwotIEFycEFzc2V0ICpnZXRfYXJwX3BvaW50ZXIgKHZvaWQpOwotIHZvaWQgZW5kX3N0b3JhZ2Ug KHZvaWQpOwoKZGlmZiAtLWdpdCBhL3BhZHMtMS4yLWxlYWsucGF0Y2ggYi9wYWRzLTEuMi1sZWFr LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYWNhOGQ5Li4wMDAwMDAwCi0t LSBhL3BhZHMtMS4yLWxlYWsucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMjEgKzAsMCBAQAot ZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3JjL21vbm5ldC5jIHBhZHMtMS4yL3NyYy9tb25uZXQu YwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL21vbm5ldC5jCTIwMDgtMDctMDggMTQ6Mjg6MjkuMDAw MDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL21vbm5ldC5jCTIwMDgtMDctMTEgMTQ6MDY6 MzYuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMjE0LDMgKzIxNCwyMyBAQCBzaG9ydCBjaGVja19tb25u ZXQgKGNvbnN0IHN0cnVjdCBpbl9hZGRyCi0gICAgIC8qIEFzc2V0IGRvZXMgbm90IGZhbGwgd2l0 aGluIGEgbW9uaXRvcmVkIG5ldHdvcmsuICovCi0gICAgIHJldHVybiAwOwotIH0KLSsKLSsvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0rICogRlVOQ1RJT04gICAgIDogZW5kX21vbm5ldAotKyAqIERFU0NSSVBUSU9OICA6IFRoaXMg ZnVuY3Rpb24gd2lsbCBmcmVlIGFsbCB0aGUgcmVjb3JkcwotKyAqICAgICAgICAgICAgICA6IHBs YWNlZCBpbiB0aGUgbW9ubmV0IGRhdGEgc3RydWN0dXJlLgotKyAqIElOUFVUICAgICAgICA6IE5v bmUhCi0rICogUkVUVVJOICAgICAgIDogTm9uZSEKLSsgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0rdm9pZCBlbmRfbW9ubmV0 ICh2b2lkKQotK3sKLSsgICAgc3RydWN0IG1vbl9uZXQgKm5leHQ7Ci0rCi0rICAgIC8qIEZyZWUg cmVjb3JkcyBpbiBtb25uZXQgbGlzdCAobW4pLiAqLwotKyAgICB3aGlsZSAobW4gIT0gTlVMTCkg ewotKyAgICAgICAgbmV4dCA9IG1uLT5uZXh0OwotKyAgICAgICAgZnJlZSAobW4pOwotKyAgICAg ICAgbW4gPSBuZXh0OwotKyAgICB9Ci0rfQotKwotZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3Jj L21vbm5ldC5oIHBhZHMtMS4yL3NyYy9tb25uZXQuaAotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL21v bm5ldC5oCTIwMDgtMDctMDggMTQ6Mjg6MjkuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIv c3JjL21vbm5ldC5oCTIwMDgtMDctMTEgMTQ6MDY6MzYuMDAwMDAwMDAwIC0wNDAwCi1AQCAtNDQs NiArNDQsNiBAQCB2b2lkIHBhcnNlX25ldHdvcmtzIChjaGFyICpjbWRsaW5lKTsKLSB2b2lkIGlu aXRfbmV0bWFza3MgKHVuc2lnbmVkIGludCBubVszM10pOwotIHZvaWQgYWRkX21vbm5ldChjaGFy ICpuZXR3b3JrLCBjaGFyICpuZXRtYXNrKTsKLSBzaG9ydCBjaGVja19tb25uZXQgKGNvbnN0IHN0 cnVjdCBpbl9hZGRyIGlwX2FkZHIpOwotLQotK3ZvaWQgZW5kX21vbm5ldCAodm9pZCk7Ci0gCi0g LyogR0xPQkFMUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwot ZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9vdXRwdXQtcHJlbHVkZS5jIHBhZHMt MS4yL3NyYy9vdXRwdXQvb3V0cHV0LXByZWx1ZGUuYwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL291 dHB1dC9vdXRwdXQtcHJlbHVkZS5jCTIwMDgtMDctMDggMTQ6Mjg6MjkuMDAwMDAwMDAwIC0wNDAw Ci0rKysgcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQtcHJlbHVkZS5jCTIwMDgtMDctMTEgMTQ6 MDY6NDkuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMTE3LDcgKzExNyw3IEBAIHN0YXRpYyBpbnQgaW5p dF9wcmVsdWRlKHZvaWQpCi0gc3RhdGljIGludCBuZXdfYWxlcnRfY29tbW9uKGlkbWVmX21lc3Nh Z2VfdCAqKmlkbWVmLCBpZG1lZl9hbGVydF90ICoqYWxlcnQpCi0gewotICAgICAgICAgaW50IHJl dDsKLS0gICAgICAgIGlkbWVmX3RpbWVfdCAqY3RpbWU7Ci0rICAgICAgICBpZG1lZl90aW1lX3Qg KmR0X3RpbWUsICpjcl90aW1lOwotIAotICAgICAgICAgcmV0ID0gaWRtZWZfbWVzc2FnZV9uZXco aWRtZWYpOwotICAgICAgICAgUFJFTFVERV9GQUlMX0NIRUNLOwotQEAgLTEzMCwxMCArMTMwLDEy IEBAIHN0YXRpYyBpbnQgbmV3X2FsZXJ0X2NvbW1vbihpZG1lZl9tZXNzYWcKLSAgICAgICAgICAg ICAgICAgICAgICAgICBJRE1FRl9MSVNUX1BSRVBFTkQpOwotIAotICAgICAgICAgLy8gU2V0IHRp bWUgdGhpcyB3YXMgY3JlYXRlZAotLSAgICAgICAgcmV0ID0gaWRtZWZfdGltZV9uZXdfZnJvbV9n ZXR0aW1lb2ZkYXkoJmN0aW1lKTsKLSsgICAgICAgIHJldCA9IGlkbWVmX3RpbWVfbmV3X2Zyb21f Z2V0dGltZW9mZGF5KCZkdF90aW1lKTsKLSAgICAgICAgIFBSRUxVREVfRkFJTF9DSEVDSzsKLS0g ICAgICAgIGlkbWVmX2FsZXJ0X3NldF9kZXRlY3RfdGltZSgqYWxlcnQsIGN0aW1lKTsKLS0gICAg ICAgIGlkbWVmX2FsZXJ0X3NldF9jcmVhdGVfdGltZSgqYWxlcnQsIGN0aW1lKTsKLSsgICAgICAg IHJldCA9IGlkbWVmX3RpbWVfY2xvbmUoZHRfdGltZSwgJmNyX3RpbWUpOwotKyAgICAgICAgUFJF TFVERV9GQUlMX0NIRUNLOwotKyAgICAgICAgaWRtZWZfYWxlcnRfc2V0X2RldGVjdF90aW1lKCph bGVydCwgZHRfdGltZSk7Ci0rICAgICAgICBpZG1lZl9hbGVydF9zZXRfY3JlYXRlX3RpbWUoKmFs ZXJ0LCBjcl90aW1lKTsKLSAKLSAgICAgICAgIHJldHVybiAwOwotICBlcnI6Ci1AQCAtMjg3LDYg KzI4OSw3IEBAIHN0YXRpYyBpbnQgYXNzZXRfYWxlcnQoQXNzZXQgKmEsIGlkbWVmX20KLSAJUFJF TFVERV9GQUlMX0NIRUNLOwotIAlyZXQgPSBwcmVsdWRlX3N0cmluZ19zZXRfZHVwKG5hbWUsIChj aGFyICopYmRhdGEoYS0+c2VydmljZSkpOwotIAlQUkVMVURFX0ZBSUxfQ0hFQ0s7Ci0rICAgICAg ICBpZG1lZl9zZXJ2aWNlX3NldF9uYW1lKHNlcnZpY2UsIG5hbWUpOwotIAlpZiAoYmRhdGEoYS0+ YXBwbGljYXRpb24pICE9IE5VTEwpIHsKLSAJCXJldCA9IGlkbWVmX2FsZXJ0X25ld19hZGRpdGlv bmFsX2RhdGEoYWxlcnQsICZkYXRhLAotIAkJCUlETUVGX0xJU1RfQVBQRU5EKTsKLUBAIC01MDgs NiArNTExLDcgQEAgZW5kX291dHB1dF9wcmVsdWRlICgpCi0gCi0gICAgIGlmIChjbGllbnQpCi0g ICAgICAgICBwcmVsdWRlX2NsaWVudF9kZXN0cm95KGNsaWVudCwgUFJFTFVERV9DTElFTlRfRVhJ VF9TVEFUVVNfU1VDQ0VTUyk7Ci0rICAgIHByZWx1ZGVfZGVpbml0KCk7Ci0gICAgIGZyZWUocHJv ZmlsZSk7Ci0gCi0gICAgIHJldHVybiAwOwotZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3JjL3Bh ZHMuYyBwYWRzLTEuMi9zcmMvcGFkcy5jCi0tLS0gcGFkcy0xLjIub3JpZy9zcmMvcGFkcy5jCTIw MDgtMDctMDggMTQ6Mjg6MjkuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL3BhZHMu YwkyMDA4LTA3LTExIDE0OjA2OjM2LjAwMDAwMDAwMCAtMDQwMAotQEAgLTM5Miw2ICszOTIsNyBA QCBlbmRfcGFkcyh2b2lkKQotICAgICBpZiAoZ2MuaGFuZGxlKSB7Ci0gICAgICAgICBsb2dfbWVz c2FnZSgiQ2xvc2luZyBQQ0FQIENvbm5lY3Rpb24iKTsKLSAgICAgICAgIHBjYXBfY2xvc2UoZ2Mu aGFuZGxlKTsKLSsgICAgICAgIHBjYXBfZnJlZWNvZGUoJmdjLmZpbHRlcik7Ci0gICAgIH0KLSAK LSAgICAgLyogUmVtb3ZlIFBJRCBGaWxlICovCi1AQCAtNDA3LDEwICs0MDgsMTMgQEAgZW5kX3Bh ZHModm9pZCkKLSAjaWZuZGVmIERJU0FCTEVfVkVORE9SCi0gICAgIGVuZF9tYWNfcmVzb2x1dGlv bigpOwotICNlbmRpZgotKyAgICBlbmRfbW9ubmV0KCk7Ci0gCi0gICAgIC8qIEdhcmJhZ2UgQ29s bGVjdCBHQyBWYXJpYWJsZSAqLwotICAgICBpZiAoZ2MuY29uZl9maWxlICE9IE5VTEwpCi0gICAg ICAgICBiZGVzdHJveShnYy5jb25mX2ZpbGUpOwotKyAgICBpZiAoZ2MuZGV2ICE9IE5VTEwpCi0r ICAgICAgICBmcmVlKGdjLmRldik7Ci0gICAgIGlmIChnYy5yZXBvcnRfZmlsZSAhPSBOVUxMKQot ICAgICAgICAgYmRlc3Ryb3koZ2MucmVwb3J0X2ZpbGUpOwotICAgICBpZiAoZ2MuZmlmb19maWxl ICE9IE5VTEwpCi1kaWZmIC11cnAgcGFkcy0xLjIub3JpZy9zcmMvcGFja2V0LmMgcGFkcy0xLjIv c3JjL3BhY2tldC5jCi0tLS0gcGFkcy0xLjIub3JpZy9zcmMvcGFja2V0LmMJMjAwOC0wNy0wOCAx NDoyODoyOS4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvcGFja2V0LmMJMjAwOC0w Ny0xMCAxMzowNDozOC4wMDAwMDAwMDAgLTA0MDAKLUBAIC05NSw2ICs5NSwxMCBAQCB2b2lkIHBy b2Nlc3Nfc2xsIChjb25zdCBzdHJ1Y3QgcGNhcF9wa3RoCi0gICAgIC8qIEV4dHJhY3QgdGhlIHNs bCBoZWFkZXIgZnJvbSB0aGUgcGFja2V0LiAqLwotICAgICBzbGxoID0gKHN0cnVjdCBzbGxfaGVh ZGVyKikgcGFja2V0OwotIAotKyAgICAvKiBBdm9pZCBib2d1cyBwYWNrZXRzICovCi0rICAgIGlm IChwa3RoZHItPmNhcGxlbiA8IEVUSF9ITEVOKQotKwlyZXR1cm47Ci0rCi0gICAgIC8qIERldGVy bWluZSB3aGF0IHR5cGUgb2Ygc2xsIHBhY2tldCB0aGlzIGlzLiAqLwotICAgICBzd2l0Y2gobnRv aHMoc2xsaC0+c2xsX3Byb3RvY29sKSkgewotIAkvKiBJUCAqLwoKZGlmZiAtLWdpdCBhL3BhZHMt MS4yLW1lbWxlYWsucGF0Y2ggYi9wYWRzLTEuMi1tZW1sZWFrLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMWY0ODZkLi4wMDAwMDAwCi0tLSBhL3BhZHMtMS4yLW1lbWxlYWsu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyODAgKzAsMCBAQAotZGlmZiAtdXJwIHBhZHMtMS4y Lm9yaWcvc3JjL2lkZW50aWZpY2F0aW9uLmMgcGFkcy0xLjIvc3JjL2lkZW50aWZpY2F0aW9uLmMK LS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9pZGVudGlmaWNhdGlvbi5jCTIwMDgtMDYtMzAgMTM6NTY6 NTIuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL2lkZW50aWZpY2F0aW9uLmMJMjAw OC0wNi0zMCAxNjoxMjoxMS4wMDAwMDAwMDAgLTA0MDAKLUBAIC05Niw3ICs5Niw3IEBAIGludCBw YXJzZV9yYXdfc2lnbmF0dXJlIChic3RyaW5nIGxpbmUsIGkKLSAgICAgc3RydWN0IGJzdHJMaXN0 ICpyYXdfc2lnOwotICAgICBzdHJ1Y3QgYnN0ckxpc3QgKnRpdGxlID0gTlVMTDsKLSAgICAgU2ln bmF0dXJlICpzaWc7Ci0tICAgIGJzdHJpbmcgcGNyZV9zdHJpbmc7Ci0rICAgIGJzdHJpbmcgcGNy ZV9zdHJpbmcgPSBOVUxMOwotICAgICBjb25zdCBjaGFyICplcnI7ICAgICAgICAgICAgLyogUENS RSAqLwotICAgICBpbnQgZXJyb2Zmc2V0OyAgICAgICAgICAgICAgLyogUENSRSAqLwotICAgICBp bnQgcmV0ID0gMDsKLUBAIC0xMTcsMTAgKzExNywxMiBAQCBpbnQgcGFyc2VfcmF3X3NpZ25hdHVy ZSAoYnN0cmluZyBsaW5lLCBpCi0gICAgIH0gZWxzZSBpZiAocmF3X3NpZy0+cXR5ID4gMykgewot ICAgICAgICAgcGNyZV9zdHJpbmcgPSBic3RyY3B5KHJhd19zaWctPmVudHJ5WzJdKTsKLSAgICAg ICAgIGZvciAoaSA9IDM7IGkgPCByYXdfc2lnLT5xdHk7IGkrKykgewotLSAgICAgICAgICAgIGlm ICgoYmNvbmNhdChwY3JlX3N0cmluZywgYmZyb21jc3RyKCIsIikpKSA9PSBCU1RSX0VSUikKLSsg ICAgICAgICAgICBic3RyaW5nIHRtcCA9IGJmcm9tY3N0cigiLCIpOwotKyAgICAgICAgICAgIGlm ICgoYmNvbmNhdChwY3JlX3N0cmluZywgdG1wKSkgPT0gQlNUUl9FUlIpCi0gICAgICAgICAgICAg ICAgIHJldCA9IC0xOwotICAgICAgICAgICAgIGlmICgoYmNvbmNhdChwY3JlX3N0cmluZywgcmF3 X3NpZy0+ZW50cnlbaV0pKSA9PSBCU1RSX0VSUikKLSAgICAgICAgICAgICAgICAgcmV0ID0gLTE7 Ci0rICAgICAgICAgICAgYmRlc3Ryb3kodG1wKTsKLSAgICAgICAgIH0KLSAgICAgfSBlbHNlIHsK LSAgICAgICAgIHBjcmVfc3RyaW5nID0gYnN0cmNweShyYXdfc2lnLT5lbnRyeVsyXSk7Ci1AQCAt MTI5LDggKzEzMSwxMCBAQCBpbnQgcGFyc2VfcmF3X3NpZ25hdHVyZSAoYnN0cmluZyBsaW5lLCBp Ci0gICAgIC8qIFNwbGl0IFRpdGxlICovCi0gICAgIGlmIChyYXdfc2lnLT5lbnRyeVsxXSAhPSBO VUxMICYmIHJldCAhPSAtMSkKLSAgICAgICAgIHRpdGxlID0gYnNwbGl0KHJhd19zaWctPmVudHJ5 WzFdLCAnLycpOwotLSAgICBpZiAodGl0bGUgPT0gTlVMTCkKLSsgICAgaWYgKHRpdGxlID09IE5V TEwpIHsKLSsgICAgICAgICAgICBiZGVzdHJveShwY3JlX3N0cmluZyk7Ci0gICAgICAgICAgICAg cmV0dXJuIC0xOwotKyAgICB9Ci0gCi0gICAgIGlmICh0aXRsZS0+cXR5IDwgMykKLSAgICAgICAg IHJldCA9IC0xOwotQEAgLTEzOSw2ICsxNDMsNyBAQCBpbnQgcGFyc2VfcmF3X3NpZ25hdHVyZSAo YnN0cmluZyBsaW5lLCBpCi0gICAgIGlmIChyZXQgIT0gLTEpIHsKLSAgICAgICAgIHNpZyA9IChT aWduYXR1cmUqKW1hbGxvYyhzaXplb2YoU2lnbmF0dXJlKSk7Ci0gICAgICAgICBzaWctPm5leHQg PSBOVUxMOwotKyAgICAgICAgc2lnLT5yZWdleCA9IE5VTEw7Ci0gICAgICAgICBpZiAocmF3X3Np Zy0+ZW50cnlbMF0gIT0gTlVMTCkKLSAgICAgICAgICAgICBzaWctPnNlcnZpY2UgPSBic3RyY3B5 KHJhd19zaWctPmVudHJ5WzBdKTsKLSAgICAgICAgIGlmICh0aXRsZS0+ZW50cnlbMV0gIT0gTlVM TCkKLUBAIC0yODAsNiArMjg1LDcgQEAgaW50IHBjcmVfaWRlbnRpZnkgKHN0cnVjdCBpbl9hZGRy IGlwX2FkZAotICAgICAgICAgaWYgKHJjICE9IC0xKSB7Ci0gICAgICAgICAgICAgYXBwID0gZ2V0 X2FwcF9uYW1lKGxpc3QsIHBheWxvYWQsIG92ZWN0b3IsIHJjKTsKLSAgICAgICAgICAgICB1cGRh dGVfYXNzZXQoaXBfYWRkciwgcG9ydCwgcHJvdG8sIGxpc3QtPnNlcnZpY2UsIGFwcCk7Ci0rICAg ICAgICAgICAgYmRlc3Ryb3koYXBwKTsKLSAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAg IH0KLSAKLUBAIC0zNTksNyArMzY1LDcgQEAgYnN0cmluZyBnZXRfYXBwX25hbWUgKFNpZ25hdHVy ZSAqc2lnLAotICAgICB9Ci0gICAgIHN1Ylt6XSA9ICdcMCc7Ci0gCi0tICAgIHJldHZhbCA9IGJz dHJjcHkoYmZyb21jc3RyKHN1YikpOwotKyAgICByZXR2YWwgPSBiZnJvbWNzdHIoc3ViKTsKLSAg ICAgcmV0dXJuIHJldHZhbDsKLSAKLSB9Ci1AQCAtMzg4LDYgKzM5NCw3IEBAIHZvaWQgZW5kX2lk ZW50aWZpY2F0aW9uKCkKLSAgICAgICAgICAgICBiZGVzdHJveShzaWduYXR1cmVfbGlzdC0+dGl0 bGUudmVyKTsKLSAgICAgICAgIGlmIChzaWduYXR1cmVfbGlzdC0+dGl0bGUubWlzYyAhPSBOVUxM KQotICAgICAgICAgICAgIGJkZXN0cm95KHNpZ25hdHVyZV9saXN0LT50aXRsZS5taXNjKTsKLSsg ICAgICAgIHBjcmVfZnJlZShzaWduYXR1cmVfbGlzdC0+cmVnZXgpOwotIAotICAgICAgICAgLyog RnJlZSBSZWNvcmQgKi8KLSAgICAgICAgIGlmIChzaWduYXR1cmVfbGlzdCAhPSBOVUxMKQotZGlm ZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9vdXRwdXQuYyBwYWRzLTEuMi9zcmMvb3V0 cHV0L291dHB1dC5jCi0tLS0gcGFkcy0xLjIub3JpZy9zcmMvb3V0cHV0L291dHB1dC5jCTIwMDgt MDYtMzAgMTM6NTY6NTIuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL291dHB1dC9v dXRwdXQuYwkyMDA4LTA2LTMwIDE2OjEyOjExLjAwMDAwMDAwMCAtMDQwMAotQEAgLTMxLDggKzMx LDggQEAKLSAjaW5jbHVkZSAib3V0cHV0LWZpZm8uaCIKLSAjaW5jbHVkZSAic3RvcmFnZS5oIgot IAotLS8qIEdsb2JhbCBWYXJpYWJsZXMgKi8KLS1PdXRwdXRQbHVnaW5MaXN0ICpvdXRwdXRfcGx1 Z2luX2xpc3Q7Ci0rLyogTG9jYWwgVmFyaWFibGVzICovCi0rc3RhdGljIE91dHB1dFBsdWdpbkxp c3QgKm91dHB1dF9wbHVnaW5fbGlzdCA9IE5VTEw7Ci0gCi0gLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAqIEZVTkNUSU9OCTog aW5pdF9vdXRwdXQoKQotQEAgLTc3LDYgKzc3LDcgQEAgaW50IHJlZ2lzdGVyX291dHB1dF9wbHVn aW4gKE91dHB1dFBsdWdpbgotICAgICBsaXN0ID0gKE91dHB1dFBsdWdpbkxpc3QqKW1hbGxvYyhz aXplb2YoT3V0cHV0UGx1Z2luTGlzdCkpOwotICAgICBsaXN0LT5wbHVnaW4gPSBwbHVnaW47Ci0g ICAgIGxpc3QtPmFjdGl2ZSA9IDA7Ci0rICAgIGxpc3QtPm5leHQgPSBOVUxMOwotIAotICAgICAv KiBQbGFjZSBwbHVnaW4gaW4gZGF0YSBzdHJ1Y3R1cmUuICovCi0gICAgIGlmIChvdXRwdXRfcGx1 Z2luX2xpc3QgPT0gTlVMTCkgewotZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9v dXRwdXQtY3N2LmMgcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQtY3N2LmMKLS0tLSBwYWRzLTEu Mi5vcmlnL3NyYy9vdXRwdXQvb3V0cHV0LWNzdi5jCTIwMDgtMDYtMzAgMTM6NTY6NTIuMDAwMDAw MDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQtY3N2LmMJMjAwOC0wNi0z MCAxNjoxMjoxMS4wMDAwMDAwMDAgLTA0MDAKLUBAIC00Niw3ICs0Niw3IEBAIHNldHVwX291dHB1 dF9jc3YgKHZvaWQpCi0gCi0gICAgIC8qIEFsbG9jYXRlIGFuZCBzZXR1cCBwbHVnaW4gZGF0YSBy ZWNvcmQuICovCi0gICAgIHBsdWdpbiA9IChPdXRwdXRQbHVnaW4qKW1hbGxvYyhzaXplb2YoT3V0 cHV0UGx1Z2luKSk7Ci0tICAgIHBsdWdpbi0+bmFtZSA9IGJzdHJjcHkoYmZyb21jc3RyKCJjc3Yi KSk7Ci0rICAgIHBsdWdpbi0+bmFtZSA9IGJmcm9tY3N0cigiY3N2Iik7Ci0gICAgIHBsdWdpbi0+ aW5pdCA9IGluaXRfb3V0cHV0X2NzdjsKLSAgICAgcGx1Z2luLT5wcmludF9hc3NldCA9IHByaW50 X2Fzc2V0X2NzdjsKLSAgICAgcGx1Z2luLT5wcmludF9hcnAgPSBwcmludF9hcnBfYXNzZXRfY3N2 OwotQEAgLTgzLDcgKzgzLDcgQEAgaW5pdF9vdXRwdXRfY3N2IChic3RyaW5nIGZpbGVuYW1lKQot ICAgICBpZiAoZmlsZW5hbWUgIT0gTlVMTCkKLSAJb3V0cHV0X2Nzdl9jb25mLmZpbGVuYW1lID0g YnN0cmNweShmaWxlbmFtZSk7Ci0gICAgIGVsc2UKLS0Jb3V0cHV0X2Nzdl9jb25mLmZpbGVuYW1l ID0gYnN0cmNweShiZnJvbWNzdHIoImFzc2V0cy5jc3YiKSk7Ci0rCW91dHB1dF9jc3ZfY29uZi5m aWxlbmFtZSA9IGJmcm9tY3N0cigiYXNzZXRzLmNzdiIpOwotIAotICAgICAvKiBDaGVjayB0byBz ZWUgaWYgKmZpbGVuYW1lIGV4aXN0cy4gKi8KLSAgICAgaWYgKChmcCA9IGZvcGVuKChjaGFyICop YmRhdGEob3V0cHV0X2Nzdl9jb25mLmZpbGVuYW1lKSwgInIiKSkgPT0gTlVMTCkgewotZGlmZiAt dXJwIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9vdXRwdXQtZmlmby5jIHBhZHMtMS4yL3NyYy9v dXRwdXQvb3V0cHV0LWZpZm8uYwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9vdXRwdXQt Zmlmby5jCTIwMDgtMDYtMzAgMTM6NTY6NTIuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIv c3JjL291dHB1dC9vdXRwdXQtZmlmby5jCTIwMDgtMDYtMzAgMTY6MTI6MTEuMDAwMDAwMDAwIC0w NDAwCi1AQCAtNzEsNyArNzEsNyBAQCBzZXR1cF9vdXRwdXRfZmlmbyAodm9pZCkKLSAKLSAgICAg LyogQWxsb2NhdGUgYW5kIHNldHVwIHBsdWdpbiBkYXRhIHJlY29yZC4gKi8KLSAgICAgcGx1Z2lu ID0gKE91dHB1dFBsdWdpbiopbWFsbG9jKHNpemVvZihPdXRwdXRQbHVnaW4pKTsKLS0gICAgcGx1 Z2luLT5uYW1lID0gYnN0cmNweShiZnJvbWNzdHIoImZpZm8iKSk7Ci0rICAgIHBsdWdpbi0+bmFt ZSA9IGJmcm9tY3N0cigiZmlmbyIpOwotICAgICBwbHVnaW4tPmluaXQgPSBpbml0X291dHB1dF9m aWZvOwotICAgICBwbHVnaW4tPnByaW50X2Fzc2V0ID0gcHJpbnRfYXNzZXRfZmlmbzsKLSAgICAg cGx1Z2luLT5wcmludF9hcnAgPSBwcmludF9hcnBfYXNzZXRfZmlmbzsKLUBAIC0xMDIsNyArMTAy LDcgQEAgaW5pdF9vdXRwdXRfZmlmbyAoYnN0cmluZyBmaWZvX2ZpbGUpCi0gCi0gICAgIC8qIE1h a2Ugc3VyZSByZXBvcnRfZmlsZSBpc24ndCBOVUxMLiAqLwotICAgICBpZiAoZmlmb19maWxlID09 IE5VTEwpCi0tCWZpZm9fZmlsZSA9IGJzdHJjcHkoYmZyb21jc3RyKCJwYWRzLmZpZm8iKSk7Ci0r CWZpZm9fZmlsZSA9IGJmcm9tY3N0cigicGFkcy5maWZvIik7Ci0gCi0gICAgIG91dHB1dF9maWZv X2NvbmYuZmlsZW5hbWUgPSBic3RyY3B5KGZpZm9fZmlsZSk7Ci0gCi1kaWZmIC11cnAgcGFkcy0x LjIub3JpZy9zcmMvb3V0cHV0L291dHB1dC1zY3JlZW4uYyBwYWRzLTEuMi9zcmMvb3V0cHV0L291 dHB1dC1zY3JlZW4uYwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9vdXRwdXQtc2NyZWVu LmMJMjAwOC0wNi0zMCAxMzo1Njo1Mi4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMv b3V0cHV0L291dHB1dC1zY3JlZW4uYwkyMDA4LTA2LTMwIDE2OjEyOjExLjAwMDAwMDAwMCAtMDQw MAotQEAgLTQzLDcgKzQzLDcgQEAgc2V0dXBfb3V0cHV0X3NjcmVlbiAodm9pZCkKLSAKLSAgICAg LyogQWxsb2NhdGUgYW5kIHNldHVwIHBsdWdpbiBkYXRhIHJlY29yZC4gKi8KLSAgICAgcGx1Z2lu ID0gKE91dHB1dFBsdWdpbiopbWFsbG9jKHNpemVvZihPdXRwdXRQbHVnaW4pKTsKLS0gICAgcGx1 Z2luLT5uYW1lID0gYnN0cmNweShiZnJvbWNzdHIoInNjcmVlbiIpKTsKLSsgICAgcGx1Z2luLT5u YW1lID0gYmZyb21jc3RyKCJzY3JlZW4iKTsKLSAgICAgcGx1Z2luLT5pbml0ID0gaW5pdF9vdXRw dXRfc2NyZWVuOwotICAgICBwbHVnaW4tPnByaW50X2Fzc2V0ID0gcHJpbnRfYXNzZXRfc2NyZWVu OwotICAgICBwbHVnaW4tPnByaW50X2FycCA9IHByaW50X2FycF9hc3NldF9zY3JlZW47Ci1kaWZm IC11cnAgcGFkcy0xLjIub3JpZy9zcmMvcGFja2V0LmMgcGFkcy0xLjIvc3JjL3BhY2tldC5jCi0t LS0gcGFkcy0xLjIub3JpZy9zcmMvcGFja2V0LmMJMjAwOC0wNi0zMCAxMzo1Njo1Mi4wMDAwMDAw MDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvcGFja2V0LmMJMjAwOC0wNi0zMCAxNjoxMjoxMS4w MDAwMDAwMDAgLTA0MDAKLUBAIC0yMTEsOCArMjExLDEzIEBAIHZvaWQgcHJvY2Vzc190Y3AgKGNv bnN0IHN0cnVjdCBwY2FwX3BrdGgKLSAKLSAJCS8qIENoZWNrIHRvIHNlZSBpZiB0aGlzIGlzIGEg a25vd24gYXNzZXQuICovCi0gCQlpZihjaGVja190Y3BfYXNzZXQoaXBfc3JjLCB0Y3BoLT50aF9z cG9ydCkpIHsKLSsJCSAgICBic3RyaW5nIHNlcnYsIGFwcDsKLSsJCSAgICBzZXJ2ID0gYmZyb21j c3RyKCJ1bmtub3duIik7Ci0rCQkgICAgYXBwID0gYmZyb21jc3RyKCJ1bmtub3duIik7Ci0gCQkg ICAgYWRkX2Fzc2V0KGlwX3NyYywgdGNwaC0+dGhfc3BvcnQsCi0tCQkJICAgIElQUFJPVE9fVENQ LCBiZnJvbWNzdHIoInVua25vd24iKSwgYmZyb21jc3RyKCJ1bmtub3duIiksIDApOwotKwkJCSAg ICBJUFBST1RPX1RDUCwgc2VydiwgYXBwLCAwKTsKLSsJCSAgICBiZGVzdHJveShzZXJ2KTsKLSsJ CSAgICBiZGVzdHJveShhcHApOwotIAkJfSBlbHNlIHsKLSAJCSAgICAvKiBSZWNvcmQgY29ubmVj dGlvbiBmb3Igc3RhdGlzdGljYWwgcHVycG9zZXMuICovCi0gCQkgICAgcHJpbnRfc3RhdChpcF9z cmMsIHRjcGgtPnRoX3Nwb3J0LCBJUFBST1RPX1RDUCk7Ci1AQCAtMjY5LDggKzI3NCwxMyBAQCB2 b2lkIHByb2Nlc3NfaWNtcCAoY29uc3Qgc3RydWN0IHBjYXBfcGt0Ci0gCi0gICAgIGlmIChpY21w LT5pY21wX3R5cGUgPT0gSUNNUF9FQ0hPUkVQTFkpIHsKLSAJaWYoY2hlY2tfaWNtcF9hc3NldChp cF9zcmMpKSB7Ci0tCSAgICBhZGRfYXNzZXQoaXBfc3JjLCAwLCBJUFBST1RPX0lDTVAsIGJmcm9t Y3N0cigiSUNNUCIpLCBiZnJvbWNzdHIoIklDTVAiKSwgMCk7Ci0rCSAgICBic3RyaW5nIHNlcnYs IGFwcDsKLSsJICAgIHNlcnYgPSBiZnJvbWNzdHIoIklDTVAiKTsKLSsJICAgIGFwcCA9IGJmcm9t Y3N0cigiSUNNUCIpOwotKwkgICAgYWRkX2Fzc2V0KGlwX3NyYywgMCwgSVBQUk9UT19JQ01QLCBz ZXJ2LCBhcHAsIDApOwotIAkgICAgcHJpbnRfYXNzZXQoaXBfc3JjLCAwLCBJUFBST1RPX0lDTVAp OwotKwkgICAgYmRlc3Ryb3koc2Vydik7Ci0rCSAgICBiZGVzdHJveShhcHApOwotIAl9Ci0gICAg IH0KLSAKLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy9wYWRzLmMgcGFkcy0xLjIvc3JjL3Bh ZHMuYwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL3BhZHMuYwkyMDA4LTA2LTMwIDEzOjU2OjUyLjAw MDAwMDAwMCAtMDQwMAotKysrIHBhZHMtMS4yL3NyYy9wYWRzLmMJMjAwOC0wNi0zMCAxNjoyMzoz MS4wMDAwMDAwMDAgLTA0MDAKLUBAIC0xNjUsOSArMTY1LDMzIEBAIHByaW50X3ZlcnNpb24gKHZv aWQpCi0gICogRlVOQ1RJT04gICAgIDogaW5pdF9wYWRzCi0gICogREVTQ1JJUFRJT04gIDogVGhp cyBmdW5jdGlvbiB3aWxsIGluaXRpYWxpemUgUEFEUy4KLSAgKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0rdm9pZCBpbml0X2dj KHZvaWQpCi0rewotKyAgICBnYy5oYW5kbGUgPSBOVUxMOwotKyAgICBnYy5kZXYgPSBOVUxMOwot KyAgICBnYy5wY2FwX2ZpbHRlciA9IE5VTEw7Ci0rICAgIGdjLmNvbmZfZmlsZSA9IE5VTEw7Ci0r ICAgIGdjLnJlcG9ydF9maWxlID0gTlVMTDsKLSsgICAgZ2MuZmlmb19maWxlID0gTlVMTDsKLSsg ICAgZ2MucGNhcF9maWxlID0gTlVMTDsKLSsgICAgZ2MuZHVtcF9maWxlID0gTlVMTDsKLSsgICAg Z2MucGlkX2ZpbGUgPSBOVUxMOwotKyAgICBnYy5zaWdfZmlsZSA9IE5VTEw7Ci0rICAgIGdjLm1h Y19maWxlID0gTlVMTDsKLSsgICAgZ2MucHJpdl91c2VyID0gTlVMTDsKLSsgICAgZ2MucHJpdl9n cm91cCA9IE5VTEw7Ci0rfQotKwotKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsgKiBGVU5DVElPTiAgICAgOiBpbml0X3BhZHMK LSsgKiBERVNDUklQVElPTiAgOiBUaGlzIGZ1bmN0aW9uIHdpbGwgaW5pdGlhbGl6ZSBQQURTLgot KyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gKi8KLSB2b2lkCi0gaW5pdF9wYWRzICh2b2lkKQotIHsKLSsgICAgLyogSW5pdCBnbG9i YWwgY29uZmlnIHRvIGtub3duIHN0YXRlICovCi0rICAgIGluaXRfZ2MoKTsKLSsKLSAgICAgLyog UHJvY2VzcyB0aGUgY29tbWFuZCBsaW5lIHBhcmFtZXRlcnMuICovCi0gICAgIHByb2Nlc3NfY21k bGluZShwcm9nX2FyZ2MsIHByb2dfYXJndik7Ci0gCi1AQCAtMTc5LDE1ICsyMDMsMjIgQEAgaW5p dF9wYWRzICh2b2lkKQotICAgICAgICAgaW5pdF9jb25maWd1cmF0aW9uKGdjLmNvbmZfZmlsZSk7 Ci0gCi0gICAgIH0gZWxzZSB7Ci0tICAgICAgICAvKiBEZWZhdWx0IE91dHB1dCBQbHVnaW5zOiAg VGhlc2UgcGx1Z2lucyBhcmUgYWN0aXZhdGVkIGlmIGEgY29uZmlndXJhdGlvbgotLSAgICAgICAg ICogZmlsZSBpcyBub3Qgc3BlY2lmaWVkLiAqLwotKyAgICAgICAgYnN0cmluZyBuYW1lLCBhcmdz OwotKyAgICAgICAgLyogRGVmYXVsdCBPdXRwdXQgUGx1Z2luczogIFRoZXNlIHBsdWdpbnMgYXJl IGFjdGl2YXRlZCBpZiBhCi0rICAgICAgICAgKiAgY29uZmlndXJhdGlvbiBmaWxlIGlzIG5vdCBz cGVjaWZpZWQuICovCi0gCi0gICAgICAgICAvKiBvdXRwdXQ6ICBzY3JlZW4gKi8KLS0gICAgICAg IGlmICgoYWN0aXZhdGVfb3V0cHV0X3BsdWdpbihiZnJvbWNzdHIoInNjcmVlbiIpLCBiZnJvbWNz dHIoIiIpKSkgPT0gLTEpCi0rICAgICAgICBuYW1lID0gYmZyb21jc3RyKCJzY3JlZW4iKTsKLSsg ICAgICAgIGFyZ3MgPSBiZnJvbWNzdHIoIiIpOwotKyAgICAgICAgaWYgKChhY3RpdmF0ZV9vdXRw dXRfcGx1Z2luKG5hbWUsIGFyZ3MpKSA9PSAtMSkKLSAgICAgICAgICAgICBsb2dfbWVzc2FnZSgi d2FybmluZzogICdhY3RpdmF0ZV9vdXRwdXRfcGx1Z2luJyBpbiBmdW5jdGlvbiAnaW5pdF9wYWRz JyBmYWlsZWQuIik7Ci0rICAgICAgICBiZGVzdHJveShuYW1lKTsKLSsgICAgICAgIGJkZXN0cm95 KGFyZ3MpOwotICAgICAgICAgLyogb3V0cHV0OiAgY3N2ICovCi0tICAgICAgICBpZiAoKGFjdGl2 YXRlX291dHB1dF9wbHVnaW4oYmZyb21jc3RyKCJjc3YiKSwgZ2MucmVwb3J0X2ZpbGUpKSA9PSAt MSkKLSsgICAgICAgIG5hbWUgPSBiZnJvbWNzdHIoImNzdiIpOwotKyAgICAgICAgaWYgKChhY3Rp dmF0ZV9vdXRwdXRfcGx1Z2luKG5hbWUsIGdjLnJlcG9ydF9maWxlKSkgPT0gLTEpCi0gICAgICAg ICAgICAgbG9nX21lc3NhZ2UoIndhcm5pbmc6ICAnYWN0aXZhdGVfb3V0cHV0X3BsdWdpbicgaW4g ZnVuY3Rpb24gJ2luaXRfcGFkcycgZmFpbGVkLiIpOwotKyAgICAgICAgYmRlc3Ryb3kobmFtZSk7 Ci0gICAgIH0KLSAKLSAgICAgLyogSW5pdGlhbGl6ZSBNb2R1bGVzICovCi1kaWZmIC11cnAgcGFk cy0xLjIub3JpZy9zcmMvc3RvcmFnZS5jIHBhZHMtMS4yL3NyYy9zdG9yYWdlLmMKLS0tLSBwYWRz LTEuMi5vcmlnL3NyYy9zdG9yYWdlLmMJMjAwOC0wNi0zMCAxMzo1Njo1Mi4wMDAwMDAwMDAgLTA0 MDAKLSsrKyBwYWRzLTEuMi9zcmMvc3RvcmFnZS5jCTIwMDgtMDYtMzAgMTY6MTI6MTEuMDAwMDAw MDAwIC0wNDAwCi1AQCAtMjksOCArMjksOCBAQAotICNpbmNsdWRlICJzdG9yYWdlLmgiCi0gI2lu Y2x1ZGUgIm1hYy1yZXNvbHV0aW9uLmgiCi0gCi0tQXNzZXQgKmFzc2V0X2xpc3Q7Ci0tQXJwQXNz ZXQgKmFycF9hc3NldF9saXN0OwotK3N0YXRpYyBBc3NldCAqYXNzZXRfbGlzdCA9IE5VTEw7Ci0r c3RhdGljIEFycEFzc2V0ICphcnBfYXNzZXRfbGlzdCA9IE5VTEw7Ci0gCi0gLyogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAqIEZV TkNUSU9OCTogY2hlY2tfdGNwX2Fzc2V0Ci1AQCAtMzQzLDcgKzM0Myw5IEBAIHNob3J0IHVwZGF0 ZV9hc3NldCAoc3RydWN0IGluX2FkZHIgaXBfYWQKLSAJCSYmIHBvcnQgPT0gbGlzdC0+cG9ydAot IAkJJiYgcHJvdG8gPT0gbGlzdC0+cHJvdG8pIHsKLSAJICAgIC8qIEZvdW5kISAqLwotKwkgICAg YmRlc3Ryb3kobGlzdC0+c2VydmljZSk7Ci0gCSAgICBsaXN0LT5zZXJ2aWNlID0gYnN0cmNweShz ZXJ2aWNlKTsKLSsJICAgIGJkZXN0cm95KGxpc3QtPmFwcGxpY2F0aW9uKTsKLSAJICAgIGxpc3Qt PmFwcGxpY2F0aW9uID0gYnN0cmNweShhcHBsaWNhdGlvbik7Ci0gCSAgICByZXR1cm4gMDsKLSAK LWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy91dGlsLmMgcGFkcy0xLjIvc3JjL3V0aWwuYwot LS0tIHBhZHMtMS4yLm9yaWcvc3JjL3V0aWwuYwkyMDA4LTA2LTMwIDEzOjU2OjUyLjAwMDAwMDAw MCAtMDQwMAotKysrIHBhZHMtMS4yL3NyYy91dGlsLmMJMjAwOC0wNi0zMCAxNjoyNjoyNC4wMDAw MDAwMDAgLTA0MDAKLUBAIC0xMjAsNyArMTIwLDcgQEAgaW5pdF9waWRfZmlsZSAoYnN0cmluZyBw aWRfZmlsZSwgYnN0cmluZwotICAgICBzdHJ1Y3QgcGFzc3dkICp0aGlzX3VzZXI7Ci0gCi0gICAg IC8qIERlZmF1bHQgUElEIEZpbGUgKi8KLS0gICAgaWYgKGdjLnBpZF9maWxlLT5zbGVuID49IDAp Ci0rICAgIGlmIChnYy5waWRfZmlsZSA9PSBOVUxMIHx8IGdjLnBpZF9maWxlLT5zbGVuID09IDAp Ci0gICAgICAgICBnYy5waWRfZmlsZSA9IGJmcm9tY3N0cigiL3Zhci9ydW4vcGFkcy5waWQiKTsK LSAKLSAgICAgLyogQ3JlYXRlIFBJRCBGaWxlICovCgpkaWZmIC0tZ2l0IGEvcGFkcy0xLjItbWlz Yy5wYXRjaCBiL3BhZHMtMS4yLW1pc2MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDU0NGMxNzguLjAwMDAwMDAKLS0tIGEvcGFkcy0xLjItbWlzYy5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDQ3ICswLDAgQEAKLWRpZmYgLXVyIHBhZHMtMS4yLm9yaWcvc3JjL2NvbmZpZ3Vy YXRpb24uYyBwYWRzLTEuMi9zcmMvY29uZmlndXJhdGlvbi5jCi0tLS0gcGFkcy0xLjIub3JpZy9z cmMvY29uZmlndXJhdGlvbi5jCTIwMDgtMDYtMzAgMTM6NTY6NTIuMDAwMDAwMDAwIC0wNDAwCi0r KysgcGFkcy0xLjIvc3JjL2NvbmZpZ3VyYXRpb24uYwkyMDA4LTA3LTAxIDIxOjExOjIyLjAwMDAw MDAwMCAtMDQwMAotQEAgLTE5MSw4ICsxOTEsMTAgQEAKLSAgICAgICAgICAgICAgICAgbG9nX21l c3NhZ2UoIndhcm5pbmc6ICAncHRyRnVuYycgaW4gZnVuY3Rpb24gJ2NvbmZfbW9kdWxlX3Byb2Nl c3NvcicgZmFpbGVkLiIpOwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAvKiBJbnB1 dCBwcm9jZXNzb3IgZG9lcyBub3QgY29udGFpbiBhbiBhcmd1bWVudC4gKi8KLS0gICAgICAgICAg ICBpZiAoKCgqcHRyRnVuYykobGlzdC0+ZW50cnlbMF0sIGJmcm9tY3N0cigiIikpKSA9PSAtMSkK LSsgICAgICAgICAgICBic3RyaW5nIGVtcHR5ID0gYmZyb21jc3RyKCIiKTsKLSsgICAgICAgICAg ICBpZiAoKCgqcHRyRnVuYykobGlzdC0+ZW50cnlbMF0sIGVtcHR5KSkgPT0gLTEpCi0gICAgICAg ICAgICAgICAgIGxvZ19tZXNzYWdlKCJ3YXJuaW5nOiAgJ3B0ckZ1bmMnIGluIGZ1bmN0aW9uICdj b25mX21vZHVsZV9wcm9jZXNzb3InIGZhaWxlZC4iKTsKLSsgICAgICAgICAgICBiZGVzdHJveShl bXB0eSk7Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiAobGlzdCAhPSBOVUxMKQotICAgICAgICAg ICAgIGJzdHJMaXN0RGVzdHJveShsaXN0KTsKLWRpZmYgLXVyIHBhZHMtMS4yLm9yaWcvc3JjL21v bm5ldC5jIHBhZHMtMS4yL3NyYy9tb25uZXQuYwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL21vbm5l dC5jCTIwMDgtMDYtMzAgMTM6NTY6NTIuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3Jj L21vbm5ldC5jCTIwMDgtMDctMDEgMjA6Mzc6NTAuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMzIsNyAr MzIsNyBAQAotICNpbmNsdWRlICJtb25uZXQuaCIKLSAjaW5jbHVkZSAidXRpbC5oIgotIAotLXN0 cnVjdCBtb25fbmV0ICptbjsKLStzdGF0aWMgc3RydWN0IG1vbl9uZXQgKm1uID0gTlVMTDsKLSAK LSAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0gICogRlVOQ1RJT04JOiBwYXJzZV9uZXR3b3JrcwotZGlmZiAtdXIgcGFkcy0xLjIu b3JpZy9zcmMvcGFkcy5jIHBhZHMtMS4yL3NyYy9wYWRzLmMKLS0tLSBwYWRzLTEuMi5vcmlnL3Ny Yy9wYWRzLmMJMjAwOC0wNi0zMCAxNzo1NDozMy4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEu Mi9zcmMvcGFkcy5jCTIwMDgtMDctMDEgMjE6MzU6NDUuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMzQz LDExICszNDMsMTEgQEAKLSAKLSAgICAgLyogRGlzcGxheSBQQ0FQIFN0YXRpc3RpY3MgKi8KLSAg ICAgaWYgKCFwY2FwX3N0YXRzKGdjLmhhbmRsZSwgJnBzdGF0KSkgewotLSAgICAgICAgbG9nX21l c3NhZ2UoIlxuIik7Ci0tICAgICAgICBsb2dfbWVzc2FnZSgiJWQgUGFja2V0cyBSZWNlaXZlZFxu IiwgcHN0YXQucHNfcmVjdik7Ci0tICAgICAgICBsb2dfbWVzc2FnZSgiJWQgUGFja2V0cyBEcm9w cGVkIGJ5IFNvZnR3YXJlXG4iLCBwc3RhdC5wc19kcm9wKTsKLS0gICAgICAgIGxvZ19tZXNzYWdl KCIlZCBQYWNrZXRzIERyb3BwZWQgYnkgSW50ZXJmYWNlXG4iLCBwc3RhdC5wc19pZmRyb3ApOwot LSAgICAgICAgbG9nX21lc3NhZ2UoIlxuIik7Ci0rICAgICAgICB2ZXJib3NlX21lc3NhZ2UoIlxu Iik7Ci0rICAgICAgICB2ZXJib3NlX21lc3NhZ2UoIiVkIFBhY2tldHMgUmVjZWl2ZWRcbiIsIHBz dGF0LnBzX3JlY3YpOwotKyAgICAgICAgdmVyYm9zZV9tZXNzYWdlKCIlZCBQYWNrZXRzIERyb3Bw ZWQgYnkgU29mdHdhcmVcbiIsIHBzdGF0LnBzX2Ryb3ApOwotKyAgICAgICAgdmVyYm9zZV9tZXNz YWdlKCIlZCBQYWNrZXRzIERyb3BwZWQgYnkgSW50ZXJmYWNlXG4iLCBwc3RhdC5wc19pZmRyb3Ap OwotKyAgICAgICAgdmVyYm9zZV9tZXNzYWdlKCJcbiIpOwotICAgICB9Ci0gCi0gICAgIC8qIENs b3NlIGJhbm5lciBkdW1wIGZpbGUgaWYgc3BlY2lmZWQgKC1kKS4gKi8KCmRpZmYgLS1naXQgYS9w YWRzLTEuMi1vdmVycnVuLnBhdGNoIGIvcGFkcy0xLjItb3ZlcnJ1bi5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggN2RmNGZjOS4uMDAwMDAwMAotLS0gYS9wYWRzLTEuMi1vdmVy cnVuLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotZGlmZiAtdXJwIHBhZHMt MS4yLm9yaWcvc3JjL3V0aWwuYyBwYWRzLTEuMi9zcmMvdXRpbC5jCi0tLS0gcGFkcy0xLjIub3Jp Zy9zcmMvdXRpbC5jCTIwMDgtMDYtMzAgMTc6NTQ6MzMuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFk cy0xLjIvc3JjL3V0aWwuYwkyMDA4LTA2LTMwIDE3OjI3OjQ0LjAwMDAwMDAwMCAtMDQwMAotQEAg LTQ2NSw3ICs0NjUsNyBAQCBoZXgybWFjKGNvbnN0IGNoYXIgKm1hYykKLSB7Ci0gICAgIHN0YXRp YyBjaGFyIGJ1ZlsxOF07Ci0gCi0tICAgIHNwcmludGYoYnVmLCAiJVg6JTAyWDolMDJYOiUwMlg6 JTAyWDolMDJYIiwKLSsgICAgc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiUwMlg6JTAyWDol MDJYOiUwMlg6JTAyWDolMDJYIiwKLSAgICAgICAgIG1hY1swXSwgbWFjWzFdLCBtYWNbMl0sCi0g ICAgICAgICBtYWNbM10sIG1hY1s0XSwgbWFjWzVdKTsKLSAKCmRpZmYgLS1naXQgYS9wYWRzLTEu Mi1wZXJmLnBhdGNoIGIvcGFkcy0xLjItcGVyZi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggYTRhNjY3Yi4uMDAwMDAwMAotLS0gYS9wYWRzLTEuMi1wZXJmLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsNDcyICswLDAgQEAKLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy9p ZGVudGlmaWNhdGlvbi5jIHBhZHMtMS4yL3NyYy9pZGVudGlmaWNhdGlvbi5jCi0tLS0gcGFkcy0x LjIub3JpZy9zcmMvaWRlbnRpZmljYXRpb24uYwkyMDA4LTA3LTA4IDE0OjI4OjI5LjAwMDAwMDAw MCAtMDQwMAotKysrIHBhZHMtMS4yL3NyYy9pZGVudGlmaWNhdGlvbi5jCTIwMDgtMDctMTIgMTA6 NTY6MDcuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMzAsNyArMzAsMTAgQEAKLSAjaW5jbHVkZSAic3Rv cmFnZS5oIgotICNpbmNsdWRlICJvdXRwdXQvb3V0cHV0LmgiCi0gCi0tU2lnbmF0dXJlICpzaWdu YXR1cmVfbGlzdDsKLStzdGF0aWMgU2lnbmF0dXJlICpzaWduYXR1cmVfbGlzdCA9IE5VTEwsICoq dGFpbCA9IE5VTEw7Ci0rCi0rLyogTG9jYWwgRnVuY3Rpb25zICovCi0rc3RhdGljIHZvaWQgYWRk X3NpZ25hdHVyZSAoU2lnbmF0dXJlICpzaWcpOwotIAotIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgKiBGVU5DVElPTiAgICAg OiBpbml0X2lkZW50aWZpY2F0aW9uCi1AQCAtNDAsNyArNDMsNyBAQCBTaWduYXR1cmUgKnNpZ25h dHVyZV9saXN0OwotICAqIFJFVFVSTiAgICAgICA6IC0xIC0gRXJyb3IKLSAgKiAgICAgICAgICAg ICAgOiAwIC0gTm9ybWFsIFJldHVybgotICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLS1pbnQgaW5pdF9pZGVudGlmaWNhdGlv bigpCi0raW50IGluaXRfaWRlbnRpZmljYXRpb24odm9pZCkKLSB7Ci0gICAgIEZJTEUgKmZwOwot ICAgICBic3RyaW5nIGZpbGVuYW1lOwotQEAgLTE5MSwyNSArMTk0LDEzIEBAIGludCBwYXJzZV9y YXdfc2lnbmF0dXJlIChic3RyaW5nIGxpbmUsIGkKLSAgKiBSRVRVUk4gICAgICAgOiAwIC0gU3Vj Y2VzcwotICAqICAgICAgICAgICAgICA6IC0xIC0gRXJyb3IKLSAgKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0taW50IGFkZF9z aWduYXR1cmUgKFNpZ25hdHVyZSAqc2lnKQotK3N0YXRpYyB2b2lkIGFkZF9zaWduYXR1cmUgKFNp Z25hdHVyZSAqc2lnKQotIHsKLS0gICAgU2lnbmF0dXJlICpsaXN0OwotLQotLSAgICBpZiAoc2ln bmF0dXJlX2xpc3QgPT0gTlVMTCkgewotKyAgICBpZiAodGFpbCA9PSBOVUxMKQotICAgICAgICAg c2lnbmF0dXJlX2xpc3QgPSBzaWc7Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICBsaXN0ID0gc2ln bmF0dXJlX2xpc3Q7Ci0tICAgICAgICB3aGlsZSAobGlzdCAhPSBOVUxMKSB7Ci0tICAgICAgICAg ICAgaWYgKGxpc3QtPm5leHQgPT0gTlVMTCkgewotLSAgICAgICAgICAgICAgICBsaXN0LT5uZXh0 ID0gc2lnOwotLSAgICAgICAgICAgICAgICBicmVhazsKLS0gICAgICAgICAgICB9IGVsc2Ugewot LSAgICAgICAgICAgICAgICBsaXN0ID0gbGlzdC0+bmV4dDsKLS0gICAgICAgICAgICB9Ci0tICAg ICAgICB9Ci0tICAgIH0KLS0KLS0gICAgcmV0dXJuIDA7Ci0rICAgIGVsc2UKLSsgICAgICAgICp0 YWlsID0gc2lnOwotKyAgICB0YWlsID0gJnNpZy0+bmV4dDsKLSB9Ci0gCi0gLyogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotQEAgLTIz NSwxMiArMjI2LDEyIEBAIGludCB0Y3BfaWRlbnRpZnkgKHN0cnVjdCBpbl9hZGRyIGlwX2FkZHIK LSAKLSAgICAgaWYgKGlfYXR0ZW1wdHMgPiAwKSB7Ci0gICAgICAgICBpX2F0dGVtcHRzLS07Ci0t ICAgICAgICB1cGRhdGVfaV9hdHRlbXB0cyhpcF9hZGRyLCBwb3J0LCBJUFBST1RPX1RDUCwgaV9h dHRlbXB0cyk7Ci0rICAgICAgICB1cGRhdGVfaV9hdHRlbXB0cyhpX2F0dGVtcHRzKTsKLSAKLSAg ICAgICAgIGlmIChwY3JlX2lkZW50aWZ5KGlwX2FkZHIsIHBvcnQsIElQUFJPVE9fVENQLCBwYXls b2FkLCBwbGVuKSA9PSAxKSB7Ci0gICAgICAgICAgICAgLyogTUFUQ0ghICovCi0gICAgICAgICAg ICAgaV9hdHRlbXB0cyA9IDA7Ci0tICAgICAgICAgICAgdXBkYXRlX2lfYXR0ZW1wdHMoaXBfYWRk ciwgcG9ydCwgSVBQUk9UT19UQ1AsIDApOwotKyAgICAgICAgICAgIHVwZGF0ZV9pX2F0dGVtcHRz KDApOwotICAgICAgICAgfQotIAotICAgICAgICAgLyogUHJpbnQgYXNzZXQgaWYgdGhpcyBpcyB0 aGUgbGFzdCB0aW1lIHRvIGlkZW50aWZ5IGl0LiAqLwotZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcv c3JjL2lkZW50aWZpY2F0aW9uLmggcGFkcy0xLjIvc3JjL2lkZW50aWZpY2F0aW9uLmgKLS0tLSBw YWRzLTEuMi5vcmlnL3NyYy9pZGVudGlmaWNhdGlvbi5oCTIwMDgtMDctMDggMTQ6Mjg6MjkuMDAw MDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL2lkZW50aWZpY2F0aW9uLmgJMjAwOC0wNy0x MiAxMDo1NjowNy4wMDAwMDAwMDAgLTA0MDAKLUBAIC0zOSw3ICszOSw2IEBACi0gLyogUFJPVE9U WVBFUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotIGludCBpbml0 X2lkZW50aWZpY2F0aW9uKHZvaWQpOwotIGludCBwYXJzZV9yYXdfc2lnbmF0dXJlIChic3RyaW5n IGxpbmUsIGludCBsaW5lbm8pOwotLWludCBhZGRfc2lnbmF0dXJlIChTaWduYXR1cmUgKnNpZyk7 Ci0gaW50IHRjcF9pZGVudGlmeSAoc3RydWN0IGluX2FkZHIgaXBfYWRkciwgdV9pbnQxNl90IHBv cnQsIGNoYXIgKnBheWxvYWQsIGludCBwbGVuKTsKLSBpbnQgcGNyZV9pZGVudGlmeSAoc3RydWN0 IGluX2FkZHIgaXBfYWRkciwgdV9pbnQxNl90IHBvcnQsIHVuc2lnbmVkIHNob3J0IHByb3RvLCBj b25zdCBjaGFyICpwYXlsb2FkLCBpbnQgcGxlbik7Ci0gYnN0cmluZyBnZXRfYXBwX25hbWUgKFNp Z25hdHVyZSAqc2lnLCBjb25zdCBjaGFyICpwYXlsb2FkLCBpbnQgKm92ZWN0b3IsIGludCByYyk7 Ci1kaWZmIC11cnAgcGFkcy0xLjIub3JpZy9zcmMvbWFjLXJlc29sdXRpb24uYyBwYWRzLTEuMi9z cmMvbWFjLXJlc29sdXRpb24uYwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL21hYy1yZXNvbHV0aW9u LmMJMjAwOC0wNy0wOCAxNDoyODoyOS4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMv bWFjLXJlc29sdXRpb24uYwkyMDA4LTA3LTEyIDEwOjU2OjA3LjAwMDAwMDAwMCAtMDQwMAotQEAg LTM0LDkgKzM0LDE0IEBACi0gI2luY2x1ZGUgIm1hYy1yZXNvbHV0aW9uLmgiCi0gI2luY2x1ZGUg InV0aWwuaCIKLSAKLS1WZW5kb3IgKnZlbmRvcl9saXN0ID0gTlVMTDsKLStzdGF0aWMgVmVuZG9y ICp2ZW5kb3JfbGlzdCA9IE5VTEw7Ci0rc3RhdGljIFZlbmRvciAqKnZ0YWlsID0gTlVMTDsKLSAK LS0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rLyogTG9jYWwgZnVuY3Rpb24gcHJvdG90eXBlICovCi0rc3RhdGljIGludCBwYXJz ZV9yYXdfbWFjIChic3RyaW5nIGxpbmUpOwotK3N0YXRpYyBpbnQgYWRkX3ZlbmRvciAoY29uc3Qg Y2hhciAqbWFjLCBjb25zdCBjaGFyICp2ZW5kb3IpOwotKwotKyAgICAvKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICogRlVOQ1RJ T04gICAgIDogaW5pdF9tYWNfcmVzb2x1dGlvbgotICAqIERFU0NSSVBUSU9OICA6IFRoaXMgZmls ZSByZWFkcyBpbiB0aGUgTUFDIGFkZHJlc3MgdGFibGUuCi0gICogSU5QVVQgICAgICAgIDogTm9u ZQotQEAgLTk0LDcgKzk5LDcgQEAgaW50IGluaXRfbWFjX3Jlc29sdXRpb24gKHZvaWQpIHsKLSAg KiBSRVRVUk4gICAgICAgOiAwIC0gU3VjY2VzcwotICAqICAgICAgICAgICAgICA6IC0xIC0gRXJy b3IKLSAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICovCi0taW50IHBhcnNlX3Jhd19tYWMgKGJzdHJpbmcgbGluZSkKLStzdGF0aWMg aW50IHBhcnNlX3Jhd19tYWMgKGJzdHJpbmcgbGluZSkKLSB7Ci0gICAgIGNoYXIgbWFjWzRdOwot ICAgICBjaGFyIHZlbmRvcls4MF07Ci1AQCAtMTI1LDggKzEzMCw4IEBAIGludCBwYXJzZV9yYXdf bWFjIChic3RyaW5nIGxpbmUpCi0gICogSU5QVVQgICAgICAgIDogMCAtIE1BQyBBZGRyZXNzIChi c3RyaW5nKQotICAqICAgICAgICAgICAgICA6IDEgLSBWZW5kb3IgKGJzdHJpbmcpCi0gICogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAq LwotLWludCBhZGRfdmVuZG9yIChjaGFyICptYWMsIGNoYXIgKnZlbmRvcil7Ci0tICAgIFZlbmRv ciAqbGlzdDsKLStzdGF0aWMgaW50IGFkZF92ZW5kb3IgKGNvbnN0IGNoYXIgKm1hYywgY29uc3Qg Y2hhciAqdmVuZG9yKQotK3sKLSAgICAgVmVuZG9yICpyZWM7Ci0gCi0gICAgIC8qIEFzc2lnbiBk YXRhIHRvIHRlbXBvcmFyeSBkYXRhIHN0cnVjdHVyZS4gKi8KLUBAIC0xMzYsMTkgKzE0MSwxMSBA QCBpbnQgYWRkX3ZlbmRvciAoY2hhciAqbWFjLCBjaGFyICp2ZW5kb3IpCi0gICAgIHJlYy0+bmV4 dCA9IE5VTEw7Ci0gCi0gICAgIC8qIFBsYWNlIGRhdGEgc3RydWN0dXJlIGluIE1BQyBhZGRyZXNz IGxpc3QuICovCi0tICAgIGlmKHZlbmRvcl9saXN0ID09IE5VTEwpIHsKLSsgICAgaWYodnRhaWwg PT0gTlVMTCkKLSAgICAgICAgIHZlbmRvcl9saXN0ID0gcmVjOwotLSAgICB9IGVsc2UgewotLSAg ICAgICAgbGlzdCA9IHZlbmRvcl9saXN0OwotLSAgICAgICAgd2hpbGUgKGxpc3QgIT0gTlVMTCkg ewotLSAgICAgICAgICAgIGlmIChsaXN0LT5uZXh0ID09IE5VTEwpIHsKLS0gICAgICAgICAgICAg ICAgbGlzdC0+bmV4dCA9IHJlYzsKLS0gICAgICAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICAg ICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgfQotLSAgICB9Ci0rICAgIGVsc2UKLSsgICAgICAgICp2dGFpbCA9 IHJlYzsKLSsgICAgdnRhaWwgPSAmcmVjLT5uZXh0OwotIAotICAgICByZXR1cm4gMDsKLSB9Ci1k aWZmIC11cnAgcGFkcy0xLjIub3JpZy9zcmMvbWFjLXJlc29sdXRpb24uaCBwYWRzLTEuMi9zcmMv bWFjLXJlc29sdXRpb24uaAotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL21hYy1yZXNvbHV0aW9uLmgJ MjAwOC0wNy0wOCAxNDoyODoyOS4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvbWFj LXJlc29sdXRpb24uaAkyMDA4LTA3LTEyIDEwOjU2OjA3LjAwMDAwMDAwMCAtMDQwMAotQEAgLTM5 LDggKzM5LDYgQEAKLSAKLSAvKiBQUk9UT1RZUEVTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tICovCi0gaW50IGluaXRfbWFjX3Jlc29sdXRpb24gKHZvaWQpOwotLWludCBw YXJzZV9yYXdfbWFjIChic3RyaW5nIGxpbmUpOwotLWludCBhZGRfdmVuZG9yIChjaGFyICptYWMs IGNoYXIgKnZlbmRvcik7Ci0gYnN0cmluZyBnZXRfdmVuZG9yIChjb25zdCBjaGFyICptKTsKLSB2 b2lkIGVuZF9tYWNfcmVzb2x1dGlvbiAodm9pZCk7Ci0gCi1kaWZmIC11cnAgcGFkcy0xLjIub3Jp Zy9zcmMvbW9ubmV0LmMgcGFkcy0xLjIvc3JjL21vbm5ldC5jCi0tLS0gcGFkcy0xLjIub3JpZy9z cmMvbW9ubmV0LmMJMjAwOC0wNy0xMiAwODozNjoxMC4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRz LTEuMi9zcmMvbW9ubmV0LmMJMjAwOC0wNy0xMiAxMDo1NjowNy4wMDAwMDAwMDAgLTA0MDAKLUBA IC04Nyw0OSArODcsNDEgQEAgdm9pZCBwYXJzZV9uZXR3b3JrcyAoY2hhciAqY21kbGluZSkKLSAg ICAgfQotIH0KLSAKLS0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0tICogRlVOQ1RJT04JOiBpbml0X25ldG1hc2tzCi0tICogREVT Q1JJUFRJT04JOiBUaGlzIGZ1bmN0aW9uIHdpbGwgbG9hZCBuZXRtYXNrcyBpbnRvIGFuCi0tICoJ CTogYXJyYXkuCi0tICogSU5QVVQJOiAwIC0gQXJyYXkKLS0gKiBSRVRVUk4JOiBOb25lIQotLSAq IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gKi8KLS12b2lkIGluaXRfbmV0bWFza3MgKHVuc2lnbmVkIGludCBubVszM10pCi0tewotLSAg ICBubVswXSA9IDB4MDsKLS0gICAgbm1bMV0gPSAweDgwMDAwMDAwOwotLSAgICBubVsyXSA9IDB4 QzAwMDAwMDA7Ci0tICAgIG5tWzNdID0gMHhFMDAwMDAwMDsKLS0gICAgbm1bNF0gPSAweEYwMDAw MDAwOwotLSAgICBubVs1XSA9IDB4RjgwMDAwMDA7Ci0tICAgIG5tWzZdID0gMHhGQzAwMDAwMDsK LS0gICAgbm1bN10gPSAweEZFMDAwMDAwOwotLSAgICBubVs4XSA9IDB4RkYwMDAwMDA7Ci0tICAg IG5tWzldID0gMHhGRjgwMDAwMDsKLS0gICAgbm1bMTBdID0gMHhGRkMwMDAwMDsKLS0gICAgbm1b MTFdID0gMHhGRkUwMDAwMDsKLS0gICAgbm1bMTJdID0gMHhGRkYwMDAwMDsKLS0gICAgbm1bMTNd ID0gMHhGRkY4MDAwMDsKLS0gICAgbm1bMTRdID0gMHhGRkZDMDAwMDsKLS0gICAgbm1bMTVdID0g MHhGRkZFMDAwMDsKLS0gICAgbm1bMTZdID0gMHhGRkZGMDAwMDsKLS0gICAgbm1bMTddID0gMHhG RkZGODAwMDsKLS0gICAgbm1bMThdID0gMHhGRkZGQzAwMDsKLS0gICAgbm1bMTldID0gMHhGRkZG RTAwMDsKLS0gICAgbm1bMjBdID0gMHhGRkZGRjAwMDsKLS0gICAgbm1bMjFdID0gMHhGRkZGRjgw MDsKLS0gICAgbm1bMjJdID0gMHhGRkZGRkMwMDsKLS0gICAgbm1bMjNdID0gMHhGRkZGRkUwMDsK LS0gICAgbm1bMjRdID0gMHhGRkZGRkYwMDsKLS0gICAgbm1bMjVdID0gMHhGRkZGRkY4MDsKLS0g ICAgbm1bMjZdID0gMHhGRkZGRkZDMDsKLS0gICAgbm1bMjddID0gMHhGRkZGRkZFMDsKLS0gICAg bm1bMjhdID0gMHhGRkZGRkZGMDsKLS0gICAgbm1bMjldID0gMHhGRkZGRkZGODsKLS0gICAgbm1b MzBdID0gMHhGRkZGRkZGQzsKLS0gICAgbm1bMzFdID0gMHhGRkZGRkZGRTsKLS0gICAgbm1bMzJd ID0gMHhGRkZGRkZGRjsKLS19Ci0rc3RhdGljIHVuc2lnbmVkIGludCBuZXRtYXNrc1szM10gPSB7 Ci0rICAgIDB4MCwKLSsgICAgMHg4MDAwMDAwMCwKLSsgICAgMHhDMDAwMDAwMCwKLSsgICAgMHhF MDAwMDAwMCwKLSsgICAgMHhGMDAwMDAwMCwKLSsgICAgMHhGODAwMDAwMCwKLSsgICAgMHhGQzAw MDAwMCwKLSsgICAgMHhGRTAwMDAwMCwKLSsgICAgMHhGRjAwMDAwMCwKLSsgICAgMHhGRjgwMDAw MCwKLSsgICAgMHhGRkMwMDAwMCwKLSsgICAgMHhGRkUwMDAwMCwKLSsgICAgMHhGRkYwMDAwMCwK LSsgICAgMHhGRkY4MDAwMCwKLSsgICAgMHhGRkZDMDAwMCwKLSsgICAgMHhGRkZFMDAwMCwKLSsg ICAgMHhGRkZGMDAwMCwKLSsgICAgMHhGRkZGODAwMCwKLSsgICAgMHhGRkZGQzAwMCwKLSsgICAg MHhGRkZGRTAwMCwKLSsgICAgMHhGRkZGRjAwMCwKLSsgICAgMHhGRkZGRjgwMCwKLSsgICAgMHhG RkZGRkMwMCwKLSsgICAgMHhGRkZGRkUwMCwKLSsgICAgMHhGRkZGRkYwMCwKLSsgICAgMHhGRkZG RkY4MCwKLSsgICAgMHhGRkZGRkZDMCwKLSsgICAgMHhGRkZGRkZFMCwKLSsgICAgMHhGRkZGRkZG MCwKLSsgICAgMHhGRkZGRkZGOCwKLSsgICAgMHhGRkZGRkZGQywKLSsgICAgMHhGRkZGRkZGRSwK LSsgICAgMHhGRkZGRkZGRiwKLSt9OwotIAotIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgKiBGVU5DVElPTgk6IGFkZF9tb25u ZXQKLUBAIC0xNDMsMTIgKzEzNSw4IEBAIHZvaWQgYWRkX21vbm5ldChjaGFyICpuZXR3b3JrLCBj aGFyICpuZXQKLSB7Ci0gICAgIHN0cnVjdCBtb25fbmV0ICpyZWMsICpkYXRhOwotICAgICBzdHJ1 Y3QgaW5fYWRkciBuZXRfYWRkcjsKLS0gICAgdW5zaWduZWQgaW50IG5ldG1hc2tzWzMzXTsKLSAg ICAgaW50IG5tYXNrOwotIAotLSAgICAvKiBGaWxsIG5ldG1hc2tzIHZhcmlhYmxlLiAgU2VlIGlu aXRfbmV0bWFza3MgaW4gdXRpbC5jLiAqLwotLSAgICBpbml0X25ldG1hc2tzKG5ldG1hc2tzKTsK LS0KLSAgICAgbm1hc2sgPSBhdG9pKG5ldG1hc2spOwotIAotICAgICAvKiBFbnN1cmUgdGhhdCB0 aGUgbmV0bWFzayBpcyBjb3JyZWN0LiAqLwotZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3JjL21v bm5ldC5oIHBhZHMtMS4yL3NyYy9tb25uZXQuaAotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL21vbm5l dC5oCTIwMDgtMDctMTIgMDg6MzY6MTAuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3Jj L21vbm5ldC5oCTIwMDgtMDctMTIgMTA6NTY6MDcuMDAwMDAwMDAwIC0wNDAwCi1AQCAtNDEsNyAr NDEsNiBAQCBzdHJ1Y3QgbW9uX25ldCB7Ci0gCi0gLyogUFJPVE9UWVBFUyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotIHZvaWQgcGFyc2VfbmV0d29ya3MgKGNoYXIg KmNtZGxpbmUpOwotLXZvaWQgaW5pdF9uZXRtYXNrcyAodW5zaWduZWQgaW50IG5tWzMzXSk7Ci0g dm9pZCBhZGRfbW9ubmV0KGNoYXIgKm5ldHdvcmssIGNoYXIgKm5ldG1hc2spOwotIHNob3J0IGNo ZWNrX21vbm5ldCAoY29uc3Qgc3RydWN0IGluX2FkZHIgaXBfYWRkcik7Ci0gdm9pZCBlbmRfbW9u bmV0ICh2b2lkKTsKLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy9vdXRwdXQvb3V0cHV0LWNz di5jIHBhZHMtMS4yL3NyYy9vdXRwdXQvb3V0cHV0LWNzdi5jCi0tLS0gcGFkcy0xLjIub3JpZy9z cmMvb3V0cHV0L291dHB1dC1jc3YuYwkyMDA4LTA3LTA4IDE0OjI4OjI5LjAwMDAwMDAwMCAtMDQw MAotKysrIHBhZHMtMS4yL3NyYy9vdXRwdXQvb3V0cHV0LWNzdi5jCTIwMDgtMDctMTIgMTA6NTk6 MzEuMDAwMDAwMDAwIC0wNDAwCi1AQCAtMjMxLDEwICsyMzEsNiBAQCBwYXJzZV9yYXdfcmVwb3J0 IChic3RyaW5nIGxpbmUpCi0gICAgIC8vIENsZWFuIFVwCi0gICAgIGlmIChsaXN0ICE9IE5VTEwp Ci0gCWJzdHJMaXN0RGVzdHJveShsaXN0KTsKLS0gICAgaWYgKHNlcnZpY2UgIT0gTlVMTCkKLS0J YmRlc3Ryb3koc2VydmljZSk7Ci0tICAgIGlmIChhcHBsaWNhdGlvbiAhPSBOVUxMKQotLQliZGVz dHJveShhcHBsaWNhdGlvbik7Ci0gCi0gICAgIHJldHVybiByZXQ7Ci0gfQotZGlmZiAtdXJwIHBh ZHMtMS4yLm9yaWcvc3JjL3BhY2tldC5jIHBhZHMtMS4yL3NyYy9wYWNrZXQuYwotLS0tIHBhZHMt MS4yLm9yaWcvc3JjL3BhY2tldC5jCTIwMDgtMDctMTIgMDg6MzY6MTAuMDAwMDAwMDAwIC0wNDAw Ci0rKysgcGFkcy0xLjIvc3JjL3BhY2tldC5jCTIwMDgtMDctMTIgMTA6NTY6MDcuMDAwMDAwMDAw IC0wNDAwCi1AQCAtMjMyLDggKzIzMiw2IEBAIHZvaWQgcHJvY2Vzc190Y3AgKGNvbnN0IHN0cnVj dCBwY2FwX3BrdGgKLSAJCSAgICBhcHAgPSBiZnJvbWNzdHIoInVua25vd24iKTsKLSAJCSAgICBh ZGRfYXNzZXQoaXBfc3JjLCB0Y3BoLT50aF9zcG9ydCwKLSAJCQkgICAgSVBQUk9UT19UQ1AsIHNl cnYsIGFwcCwgMCk7Ci0tCQkgICAgYmRlc3Ryb3koc2Vydik7Ci0tCQkgICAgYmRlc3Ryb3koYXBw KTsKLSAJCX0gZWxzZSB7Ci0gCQkgICAgLyogUmVjb3JkIGNvbm5lY3Rpb24gZm9yIHN0YXRpc3Rp Y2FsIHB1cnBvc2VzLiAqLwotIAkJICAgIHByaW50X3N0YXQoaXBfc3JjLCB0Y3BoLT50aF9zcG9y dCwgSVBQUk9UT19UQ1ApOwotQEAgLTI5NSw4ICsyOTMsNiBAQCB2b2lkIHByb2Nlc3NfaWNtcCAo Y29uc3Qgc3RydWN0IHBjYXBfcGt0Ci0gCSAgICBhcHAgPSBiZnJvbWNzdHIoIklDTVAiKTsKLSAJ ICAgIGFkZF9hc3NldChpcF9zcmMsIDAsIElQUFJPVE9fSUNNUCwgc2VydiwgYXBwLCAwKTsKLSAJ ICAgIHByaW50X2Fzc2V0KGlwX3NyYywgMCwgSVBQUk9UT19JQ01QKTsKLS0JICAgIGJkZXN0cm95 KHNlcnYpOwotLQkgICAgYmRlc3Ryb3koYXBwKTsKLSAJfQotICAgICB9Ci0gCi1kaWZmIC11cnAg cGFkcy0xLjIub3JpZy9zcmMvc3RvcmFnZS5jIHBhZHMtMS4yL3NyYy9zdG9yYWdlLmMKLS0tLSBw YWRzLTEuMi5vcmlnL3NyYy9zdG9yYWdlLmMJMjAwOC0wNy0wOCAxNDoyODoyOS4wMDAwMDAwMDAg LTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvc3RvcmFnZS5jCTIwMDgtMDctMTIgMTA6NTY6MDcuMDAw MDAwMDAwIC0wNDAwCi1AQCAtMjksOCArMjksOCBAQAotICNpbmNsdWRlICJzdG9yYWdlLmgiCi0g I2luY2x1ZGUgIm1hYy1yZXNvbHV0aW9uLmgiCi0gCi0tc3RhdGljIEFzc2V0ICphc3NldF9saXN0 ID0gTlVMTDsKLS1zdGF0aWMgQXJwQXNzZXQgKmFycF9hc3NldF9saXN0ID0gTlVMTDsKLStzdGF0 aWMgQXNzZXQgKmFzc2V0X2xpc3QgPSBOVUxMLCAqY3VycmVudCA9IE5VTEwsICoqdGFpbCA9IE5V TEw7Ci0rc3RhdGljIEFycEFzc2V0ICphcnBfYXNzZXRfbGlzdCA9IE5VTEwsICoqYXJwX3RhaWwg PSBOVUxMOwotIAotIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSAgKiBGVU5DVElPTgk6IGNoZWNrX3RjcF9hc3NldAotQEAgLTEy Nyw4ICsxMjcsOCBAQCBpbnQgY2hlY2tfYXJwX2Fzc2V0IChzdHJ1Y3QgaW5fYWRkciBpcF9hCi0g ICogSU5QVVQJOiAwIC0gSVAgQWRkcmVzcwotICAqCQk6IDEgLSBQb3J0Ci0gICoJCTogMiAtIFBy b3RvY29sCi0tICoJCTogMyAtIFNlcnZpY2UKLS0gKgkJOiA0IC0gQXBwbGljYXRpb24KLSsgKgkJ OiAzIC0gU2VydmljZSAtIHRha2VzIGN1c3RvZHkgb2YgdGhpcyBtZW1vcnkKLSsgKgkJOiA0IC0g QXBwbGljYXRpb24gLSB0YWtlcyBjdXN0b2R5IG9mIHRoaXMgbWVtb3J5Ci0gICoJCTogNSAtIERp c2NvdmVyZWQKLSAgKiBSRVRVUk4JOiBOb25lIQotICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLUBAIC0xNDAsMTUgKzE0MCwx NCBAQCB2b2lkIGFkZF9hc3NldCAoc3RydWN0IGluX2FkZHIgaXBfYWRkciwKLSAJCXRpbWVfdCBk aXNjb3ZlcmVkKQotIHsKLSAgICAgQXNzZXQgKnJlYzsKLS0gICAgQXNzZXQgKmxpc3Q7Ci0gCi0g ICAgIC8qIEFzc2lnbiBsaXN0IHRvIHRlbXAgc3RydWN0dXJlLiAgKi8KLSAgICAgcmVjID0gKEFz c2V0KiltYWxsb2Moc2l6ZW9mKEFzc2V0KSk7Ci0gICAgIHJlYy0+aXBfYWRkci5zX2FkZHIgPSBp cF9hZGRyLnNfYWRkcjsKLSAgICAgcmVjLT5wb3J0ID0gcG9ydDsKLSAgICAgcmVjLT5wcm90byA9 IHByb3RvOwotLSAgICByZWMtPnNlcnZpY2UgPSBic3RyY3B5KHNlcnZpY2UpOwotLSAgICByZWMt PmFwcGxpY2F0aW9uID0gYnN0cmNweShhcHBsaWNhdGlvbik7Ci0rICAgIHJlYy0+c2VydmljZSA9 IHNlcnZpY2U7Ci0rICAgIHJlYy0+YXBwbGljYXRpb24gPSBhcHBsaWNhdGlvbjsKLSAgICAgcmVj LT5uZXh0ID0gTlVMTDsKLSAKLSAgICAgLyoKLUBAIC0xNzQsMTkgKzE3MywxMSBAQCB2b2lkIGFk ZF9hc3NldCAoc3RydWN0IGluX2FkZHIgaXBfYWRkciwKLSAgICAgfQotIAotICAgICAvKiBGaW5k IHRoaXMgcmVjb3JkJ3MgbG9jYXRpb24gd2l0aGluIGxpbmtlZCBsaXN0LiAgKi8KLS0gICAgaWYg KGFzc2V0X2xpc3QgPT0gTlVMTCkgewotKyAgICBpZiAodGFpbCA9PSBOVUxMKSAKLSAJYXNzZXRf bGlzdCA9IHJlYzsKLS0gICAgfSBlbHNlIHsKLS0JbGlzdCA9IGFzc2V0X2xpc3Q7Ci0tCXdoaWxl IChsaXN0ICE9IE5VTEwpIHsKLS0JICAgIGlmIChsaXN0LT5uZXh0ID09IE5VTEwpIHsKLS0JCWxp c3QtPm5leHQgPSByZWM7Ci0tCQlicmVhazsKLS0JICAgIH0gZWxzZSB7Ci0tCQlsaXN0ID0gbGlz dC0+bmV4dDsKLS0JICAgIH0KLS0JfQotLSAgICB9Ci0rICAgIGVsc2UKLSsJKnRhaWwgPSByZWM7 Ci0rICAgIHRhaWwgPSAmcmVjLT5uZXh0OwotIAotICAgICByZXR1cm47Ci0gfQotQEAgLTIwMyw3 ICsxOTQsNiBAQCB2b2lkIGFkZF9hc3NldCAoc3RydWN0IGluX2FkZHIgaXBfYWRkciwKLSB2b2lk IGFkZF9hcnBfYXNzZXQgKHN0cnVjdCBpbl9hZGRyIGlwX2FkZHIsIGNvbnN0IGNoYXIgKm1hY19h ZGRyLAotIAkJICAgIHRpbWVfdCBkaXNjb3ZlcmVkKQotIHsKLS0gICAgQXJwQXNzZXQgKmxpc3Q7 Ci0gICAgIEFycEFzc2V0ICpyZWM7Ci0gICAgIGJzdHJpbmcgbWFjX3Jlc29sdmVkOwotIAotQEAg LTIzMywyMCArMjIzLDExIEBAIHZvaWQgYWRkX2FycF9hc3NldCAoc3RydWN0IGluX2FkZHIgaXBf YWQKLSAgICAgfQotIAotICAgICAvKiBGaW5kIHRoaXMgcmVjb3JkJ3MgbG9jYXRpb24gd2l0aGlu IGxpbmtlZCBsaXN0LiAgKi8KLS0gICAgaWYgKGFycF9hc3NldF9saXN0ID09IE5VTEwpIHsKLSsg ICAgaWYgKGFycF90YWlsID09IE5VTEwpIAotIAlhcnBfYXNzZXRfbGlzdCA9IHJlYzsKLS0gICAg fSBlbHNlIHsKLS0JbGlzdCA9IGFycF9hc3NldF9saXN0OwotLQotLQl3aGlsZSAobGlzdCAhPSBO VUxMKSB7Ci0tCSAgICBpZiAobGlzdC0+bmV4dCA9PSBOVUxMKSB7Ci0tCQlsaXN0LT5uZXh0ID0g cmVjOwotLQkJYnJlYWs7Ci0tCSAgICB9IGVsc2UgewotLQkJbGlzdCA9IGxpc3QtPm5leHQ7Ci0t CSAgICB9Ci0tCX0KLS0gICAgfQotKyAgICBlbHNlCi0rCSphcnBfdGFpbCA9IGFycF9hc3NldF9s aXN0OwotKyAgICBhcnBfdGFpbCA9ICZhcnBfYXNzZXRfbGlzdC0+bmV4dDsKLSB9Ci0gCi0gLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotQEAgLTI3MCw2ICsyNTEsNyBAQCB1bnNpZ25lZCBzaG9ydCBnZXRfaV9hdHRlbXB0cyAoc3Ry dWN0IGluCi0gCQkmJiBwb3J0ID09IHJlYy0+cG9ydAotIAkJJiYgcHJvdG8gPT0gcmVjLT5wcm90 bykgewotIAkgICAgLyogRm91bmQhICovCi0rICAgICAgICAgICAgY3VycmVudCA9IHJlYzsKLSAJ ICAgIHJldHVybiByZWMtPmlfYXR0ZW1wdHM7Ci0gCi0gCX0gZWxzZSB7Ci1AQCAtMjc3LDEzICsy NTksMTQgQEAgdW5zaWduZWQgc2hvcnQgZ2V0X2lfYXR0ZW1wdHMgKHN0cnVjdCBpbgotIAl9Ci0g ICAgIH0KLSAKLSsgICAgY3VycmVudCA9IE5VTEw7Ci0gICAgIHJldHVybiAwOwotIH0KLSAKLSAv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0gICogRlVOQ1RJT04JOiB1cGRhdGVfaV9hdHRlbXB0cwotLSAqIERFU0NSSVBUSU9OCTog VXBkYXRlcyB0aGUgaV9hdHRlbXB0cyBmaWVsZCBmb3IgYQotLSAqCQk6IHNwZWNpZmllZCBhc3Nl dC4KLSsgKiBERVNDUklQVElPTgk6IFVwZGF0ZXMgdGhlIGlfYXR0ZW1wdHMgZmllbGQgb2YgdGhl IGN1cnJlbnQKLSsgKgkJOiBhc3NldCBmcm9tIHByZXZpb3VzIGNhbGwgdG8gZ2V0X2lfYXR0ZW1w dHMuCi0gICogSU5QVVQJOiAwIC0gSVAgQWRkcmVzcwotICAqCQk6IDEgLSBQb3J0Ci0gICoJCTog MiAtIFByb3RvCi1AQCAtMjkxLDI2ICsyNzQsMTEgQEAgdW5zaWduZWQgc2hvcnQgZ2V0X2lfYXR0 ZW1wdHMgKHN0cnVjdCBpbgotICAqIFJFVFVSTgk6IDAgLSBTdWNjZXNzCi0gICoJCTogMSAtIEZh aWx1cmUKLSAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tICovCi0tc2hvcnQgdXBkYXRlX2lfYXR0ZW1wdHMgKHN0cnVjdCBpbl9hZGRy IGlwX2FkZHIsCi0tCQkJIHVfaW50MTZfdCBwb3J0LAotLQkJCSB1bnNpZ25lZCBzaG9ydCBwcm90 bywKLS0JCQkgdW5zaWduZWQgc2hvcnQgaV9hdHRlbXB0cykKLStzaG9ydCB1cGRhdGVfaV9hdHRl bXB0cyAodW5zaWduZWQgc2hvcnQgaV9hdHRlbXB0cykKLSB7Ci0tICAgIEFzc2V0ICpyZWM7Ci0t Ci0tICAgIC8qIEZpbmQgYXNzZXQgd2l0aGluIGxpbmtlZCBsaXN0LiAgKi8KLS0gICAgcmVjID0g YXNzZXRfbGlzdDsKLS0gICAgd2hpbGUgKHJlYyAhPSBOVUxMKSB7Ci0tCWlmIChpcF9hZGRyLnNf YWRkciA9PSByZWMtPmlwX2FkZHIuc19hZGRyCi0tCQkmJiBwb3J0ID09IHJlYy0+cG9ydAotLQkJ JiYgcHJvdG8gPT0gcmVjLT5wcm90bykgewotLQkgICAgLyogRm91bmQhICovCi0tCSAgICByZWMt PmlfYXR0ZW1wdHMgPSBpX2F0dGVtcHRzOwotLQkgICAgcmV0dXJuIDA7Ci0tCi0tCX0gZWxzZSB7 Ci0tCSAgICByZWMgPSByZWMtPm5leHQ7Ci0tCX0KLSsgICAgaWYgKGN1cnJlbnQpIHsKLSsgICAg ICAgIGN1cnJlbnQtPmlfYXR0ZW1wdHMgPSBpX2F0dGVtcHRzOwotKyAgICAgICAgcmV0dXJuIDA7 Ci0gICAgIH0KLSAKLSAgICAgcmV0dXJuIDE7Ci1kaWZmIC11cnAgcGFkcy0xLjIub3JpZy9zcmMv c3RvcmFnZS5oIHBhZHMtMS4yL3NyYy9zdG9yYWdlLmgKLS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9z dG9yYWdlLmgJMjAwOC0wNy0wOCAxNDoyODoyOS4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEu Mi9zcmMvc3RvcmFnZS5oCTIwMDgtMDctMTIgMTA6NTY6MDcuMDAwMDAwMDAwIC0wNDAwCi1AQCAt NTQsNyArNTQsNyBAQCBpbnQgY2hlY2tfYXJwX2Fzc2V0IChzdHJ1Y3QgaW5fYWRkciBpcF9hCi0g dm9pZCBhZGRfYXNzZXQgKHN0cnVjdCBpbl9hZGRyIGlwX2FkZHIsIHVfaW50MTZfdCBwb3J0LCB1 bnNpZ25lZCBzaG9ydCBwcm90bywgYnN0cmluZyBzZXJ2aWNlLCBic3RyaW5nIGFwcGxpY2F0aW9u LCB0aW1lX3QgZGlzY292ZXJlZCk7Ci0gdm9pZCBhZGRfYXJwX2Fzc2V0IChzdHJ1Y3QgaW5fYWRk ciBpcF9hZGRyLCBjb25zdCBjaGFyICptYWNfYWRkciwgdGltZV90IGRpc2NvdmVyZWQpOwotIHVu c2lnbmVkIHNob3J0IGdldF9pX2F0dGVtcHRzIChzdHJ1Y3QgaW5fYWRkciBpcF9hZGRyLCB1X2lu dDE2X3QgcG9ydCwgdW5zaWduZWQgc2hvcnQgcHJvdG8pOwotLXNob3J0IHVwZGF0ZV9pX2F0dGVt cHRzIChzdHJ1Y3QgaW5fYWRkciBpcF9hZGRyLCB1X2ludDE2X3QgcG9ydCwgdW5zaWduZWQgc2hv cnQgcHJvdG8sIHVuc2lnbmVkIHNob3J0IGlfYXR0ZW1wdHMpOwotK3Nob3J0IHVwZGF0ZV9pX2F0 dGVtcHRzICh1bnNpZ25lZCBzaG9ydCBpX2F0dGVtcHRzKTsKLSBzaG9ydCB1cGRhdGVfYXNzZXQg KHN0cnVjdCBpbl9hZGRyIGlwX2FkZHIsIHVfaW50MTZfdCBwb3J0LCB1bnNpZ25lZCBzaG9ydCBw cm90bywgYnN0cmluZyBzZXJ2aWNlLCBic3RyaW5nIGFwcGxpY2F0aW9uKTsKLSBpbmxpbmUgQXNz ZXQgKmZpbmRfYXNzZXQgKHN0cnVjdCBpbl9hZGRyIGlwX2FkZHIsIHVfaW50MTZfdCBwb3J0LCB1 bnNpZ25lZCBzaG9ydCBwcm90byk7Ci0gQXNzZXQgKmdldF9hc3NldF9wb2ludGVyICh2b2lkKTsK CmRpZmYgLS1naXQgYS9wYWRzLTEuMi1wcmVsdWRlLWNsZWFudXAucGF0Y2ggYi9wYWRzLTEuMi1w cmVsdWRlLWNsZWFudXAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhZGNh NGIuLjAwMDAwMDAKLS0tIGEvcGFkcy0xLjItcHJlbHVkZS1jbGVhbnVwLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMTA5ICswLDAgQEAKLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL3NyYy9vdXRw dXQvb3V0cHV0LmMgcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQuYwotLS0tIHBhZHMtMS4yLm9y aWcvc3JjL291dHB1dC9vdXRwdXQuYwkyMDA4LTA3LTA4IDEwOjUzOjE0LjAwMDAwMDAwMCAtMDQw MAotKysrIHBhZHMtMS4yL3NyYy9vdXRwdXQvb3V0cHV0LmMJMjAwOC0wNy0wOCAxMDo0MToxMy4w MDAwMDAwMDAgLTA0MDAKLUBAIC0xMjksNyArMTI5LDggQEAgaW50IGFjdGl2YXRlX291dHB1dF9w bHVnaW4gKGJzdHJpbmcgbmFtZQotIAkgICAgLyogTUFUQ0ghIFNldCByZWNvcmQgdG8gYWN0aXZl IGFuZCBydW4gJ2luaXQnIGZ1bmN0aW9uLiAqLwotIAkgICAgbGlzdC0+YWN0aXZlID0gMTsKLSAJ ICAgIGlmIChwbHVnaW4gIT0gTlVMTCAmJiBwbHVnaW4tPmluaXQgIT0gTlVMTCkKLS0JCSgqcGx1 Z2luLT5pbml0KShhcmdzKTsKLSsJCWlmICgoKnBsdWdpbi0+aW5pdCkoYXJncykgPCAwKQotKwkJ CXJldHVybiAtMTsKLSAJICAgIGJyZWFrOwotIAl9Ci0gCi1kaWZmIC11cnAgcGFkcy0xLjIub3Jp Zy9zcmMvb3V0cHV0L291dHB1dC1jc3YuYyBwYWRzLTEuMi9zcmMvb3V0cHV0L291dHB1dC1jc3Yu YwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9vdXRwdXQtY3N2LmMJMjAwOC0wNy0wNyAx Mzo1NjoxMC4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvb3V0cHV0L291dHB1dC1j c3YuYwkyMDA4LTA3LTA4IDEwOjQ0OjQ4LjAwMDAwMDAwMCAtMDQwMAotQEAgLTU4LDYgKzU4LDcg QEAgc2V0dXBfb3V0cHV0X2NzdiAodm9pZCkKLSAJaWYgKHBsdWdpbiAhPSBOVUxMKQotIAkgICAg ZnJlZShwbHVnaW4pOwotIAlsb2dfbWVzc2FnZSgid2FybmluZzogICdyZWdpc3Rlcl9vdXRwdXRf cGx1Z2luJyBpbiBmdW5jdGlvbiAnc2V0dXBfb3V0cHV0X2NzdicgZmFpbGVkLiIpOwotKwlyZXR1 cm4gLTE7Ci0gICAgIH0KLSAKLSAgICAgcmV0dXJuIDA7Ci1kaWZmIC11cnAgcGFkcy0xLjIub3Jp Zy9zcmMvb3V0cHV0L291dHB1dC1maWZvLmMgcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQtZmlm by5jCi0tLS0gcGFkcy0xLjIub3JpZy9zcmMvb3V0cHV0L291dHB1dC1maWZvLmMJMjAwOC0wNi0z MCAxNzo1NDozMy4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvb3V0cHV0L291dHB1 dC1maWZvLmMJMjAwOC0wNy0wOCAxMDo0NjozMi4wMDAwMDAwMDAgLTA0MDAKLUBAIC04Myw2ICs4 Myw3IEBAIHNldHVwX291dHB1dF9maWZvICh2b2lkKQotIAlpZiAocGx1Z2luICE9IE5VTEwpCi0g CSAgICBmcmVlKHBsdWdpbik7Ci0gCWxvZ19tZXNzYWdlKCJ3YXJuaW5nOiAgJ3JlZ2lzdGVyX291 dHB1dF9wbHVnaW4nIGluIGZ1bmN0aW9uICdzZXR1cF9vdXRwdXRfZmlmbycgZmFpbGVkLiIpOwot KwlyZXR1cm4gLTE7Ci0gICAgIH0KLSAKLSAgICAgcmV0dXJuIDA7Ci1AQCAtMTA5LDggKzExMCwx MCBAQCBpbml0X291dHB1dF9maWZvIChic3RyaW5nIGZpZm9fZmlsZSkKLSAgICAgbWtmaWZvICgo Y2hhciAqKWJkYXRhKGZpZm9fZmlsZSksIDA3NTUpOwotIAotICAgICB2ZXJib3NlX21lc3NhZ2Uo Ik9wZW4gRklGTyBGaWxlXG4iKTsKLS0gICAgaWYgKChvdXRwdXRfZmlmb19jb25mLmZpbGUgPSBm b3BlbigoY2hhciopYmRhdGEoZmlmb19maWxlKSwgIncrIikpID09IE5VTEwpCi0rICAgIGlmICgo b3V0cHV0X2ZpZm9fY29uZi5maWxlID0gZm9wZW4oKGNoYXIqKWJkYXRhKGZpZm9fZmlsZSksICJ3 KyIpKSA9PSBOVUxMKXsKLSAJZXJyX21lc3NhZ2UoIlVuYWJsZSB0byBvcGVuIEZJRk8gZmlsZSAo JXMpIVxuIiwgYmRhdGEoZmlmb19maWxlKSk7Ci0rICAgICAgICByZXR1cm4gLTE7Ci0rICAgIH0K LSAKLSAgICAgcmV0dXJuIDA7Ci0gfQotZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1 dC9vdXRwdXQtcHJlbHVkZS5jIHBhZHMtMS4yL3NyYy9vdXRwdXQvb3V0cHV0LXByZWx1ZGUuYwot LS0tIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9vdXRwdXQtcHJlbHVkZS5jCTIwMDgtMDctMDgg MTA6NTM6MTQuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQt cHJlbHVkZS5jCTIwMDgtMDctMDggMTA6NDQ6MjUuMDAwMDAwMDAwIC0wNDAwCi1AQCAtNDA3LDkg KzQwNyw2IEBAIHNldHVwX291dHB1dF9wcmVsdWRlICh2b2lkKQotICAgICBPdXRwdXRQbHVnaW4g KnBsdWdpbjsKLSAKLSAKLS0gICAgaWYgKGluaXRfcHJlbHVkZSgpIDwgMCkKLS0JcmV0dXJuIC0x OwotLQotICAgICAvKiBBbGxvY2F0ZSBhbmQgc2V0dXAgcGx1Z2luIGRhdGEgcmVjb3JkLiAqLwot ICAgICBwbHVnaW4gPSAoT3V0cHV0UGx1Z2luKiltYWxsb2Moc2l6ZW9mKE91dHB1dFBsdWdpbikp OwotICAgICBwbHVnaW4tPm5hbWUgPSBiZnJvbWNzdHIoInByZWx1ZGUiKTsKLUBAIC00MjQsNiAr NDIxLDcgQEAgc2V0dXBfb3V0cHV0X3ByZWx1ZGUgKHZvaWQpCi0gCWlmIChwbHVnaW4gIT0gTlVM TCkKLSAJICAgIGZyZWUocGx1Z2luKTsKLSAJbG9nX21lc3NhZ2UoIndhcm5pbmc6ICAncmVnaXN0 ZXJfb3V0cHV0X3BsdWdpbicgaW4gZnVuY3Rpb24gJ3NldHVwX291dHB1dF9wcmVsdWRlJyBmYWls ZWQuIik7Ci0rCXJldHVybiAtMTsKLSAgICAgfQotIAotICAgICByZXR1cm4gMDsKLUBAIC00NDIs NiArNDQwLDEwIEBAIGluaXRfb3V0cHV0X3ByZWx1ZGUgKGJzdHJpbmcgYXJncykKLSB7Ci0gICAg IHZlcmJvc2VfbWVzc2FnZSgiSW5pdGlhbGl6aW5nIFBSRUxVREUgb3V0cHV0IHByb2Nlc3Nvci4i KTsKLSAgICAgcHJvZmlsZSA9IHN0cmR1cCgoY2hhciAqKWJkYXRhKGFyZ3MpKTsKLSsKLSsgICAg aWYgKGluaXRfcHJlbHVkZSgpIDwgMCkKLSsJcmV0dXJuIC0xOwotKwotICAgICByZXR1cm4gMDsK LSB9Ci0gCi1kaWZmIC11cnAgcGFkcy0xLjIub3JpZy9zcmMvb3V0cHV0L291dHB1dC1zY3JlZW4u YyBwYWRzLTEuMi9zcmMvb3V0cHV0L291dHB1dC1zY3JlZW4uYwotLS0tIHBhZHMtMS4yLm9yaWcv c3JjL291dHB1dC9vdXRwdXQtc2NyZWVuLmMJMjAwOC0wNi0zMCAxNzo1NDozMy4wMDAwMDAwMDAg LTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvb3V0cHV0L291dHB1dC1zY3JlZW4uYwkyMDA4LTA3LTA4 IDEwOjQ1OjAzLjAwMDAwMDAwMCAtMDQwMAotQEAgLTU1LDYgKzU1LDcgQEAgc2V0dXBfb3V0cHV0 X3NjcmVlbiAodm9pZCkKLSAJaWYgKHBsdWdpbiAhPSBOVUxMKQotIAkgICAgZnJlZShwbHVnaW4p OwotIAlsb2dfbWVzc2FnZSgid2FybmluZzogICdyZWdpc3Rlcl9vdXRwdXRfcGx1Z2luJyBpbiBm dW5jdGlvbiAnc2V0dXBfb3V0cHV0X3NjcmVlbicgZmFpbGVkLiIpOwotKwlyZXR1cm4gLTE7Ci0g ICAgIH0KLSAKLSAgICAgcmV0dXJuIDA7Ci1kaWZmIC11cnAgcGFkcy0xLjIub3JpZy9zcmMvcGFk cy5jIHBhZHMtMS4yL3NyYy9wYWRzLmMKLS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9wYWRzLmMJMjAw OC0wNy0wOCAxMDo1MzoxNC4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvcGFkcy5j CTIwMDgtMDctMDggMTA6NDI6NTguMDAwMDAwMDAwIC0wNDAwCi1AQCAtMjI4LDEzICsyMjgsMTMg QEAgaW5pdF9wYWRzICh2b2lkKQotICAgICAgICAgbmFtZSA9IGJmcm9tY3N0cigic2NyZWVuIik7 Ci0gICAgICAgICBhcmdzID0gYmZyb21jc3RyKCIiKTsKLSAgICAgICAgIGlmICgoYWN0aXZhdGVf b3V0cHV0X3BsdWdpbihuYW1lLCBhcmdzKSkgPT0gLTEpCi0tICAgICAgICAgICAgbG9nX21lc3Nh Z2UoIndhcm5pbmc6ICAnYWN0aXZhdGVfb3V0cHV0X3BsdWdpbicgaW4gZnVuY3Rpb24gJ2luaXRf cGFkcycgZmFpbGVkLiIpOwotKyAgICAgICAgICAgIGVycl9tZXNzYWdlKCJFcnJvcjogICdhY3Rp dmF0ZV9vdXRwdXRfcGx1Z2luJyBpbiBmdW5jdGlvbiAnaW5pdF9wYWRzJyBmYWlsZWQuIik7Ci0g ICAgICAgICBiZGVzdHJveShuYW1lKTsKLSAgICAgICAgIGJkZXN0cm95KGFyZ3MpOwotICAgICAg ICAgLyogb3V0cHV0OiAgY3N2ICovCi0gICAgICAgICBuYW1lID0gYmZyb21jc3RyKCJjc3YiKTsK LSAgICAgICAgIGlmICgoYWN0aXZhdGVfb3V0cHV0X3BsdWdpbihuYW1lLCBnYy5yZXBvcnRfZmls ZSkpID09IC0xKQotLSAgICAgICAgICAgIGxvZ19tZXNzYWdlKCJ3YXJuaW5nOiAgJ2FjdGl2YXRl X291dHB1dF9wbHVnaW4nIGluIGZ1bmN0aW9uICdpbml0X3BhZHMnIGZhaWxlZC4iKTsKLSsgICAg ICAgICAgICBlcnJfbWVzc2FnZSgiRXJyb3I6ICAnYWN0aXZhdGVfb3V0cHV0X3BsdWdpbicgaW4g ZnVuY3Rpb24gJ2luaXRfcGFkcycgZmFpbGVkLiIpOwotICAgICAgICAgYmRlc3Ryb3kobmFtZSk7 Ci0gICAgIH0KLSAKCmRpZmYgLS1naXQgYS9wYWRzLTEuMi1wcmVsdWRlLnBhdGNoIGIvcGFkcy0x LjItcHJlbHVkZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGUyNWRiMi4u MDAwMDAwMAotLS0gYS9wYWRzLTEuMi1wcmVsdWRlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTAyNCArMCwwIEBACi1kaWZmIC11cnBOIHBhZHMtMS4yLm9yaWcvY29uZmlnLmguaW4gcGFkcy0x LjIvY29uZmlnLmguaW4KLS0tLSBwYWRzLTEuMi5vcmlnL2NvbmZpZy5oLmluCTIwMDgtMDYtMjkg MjA6MTY6MzAuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvY29uZmlnLmguaW4JMjAwOC0w Ny0wNyAxNTo0MTo1MC4wMDAwMDAwMDAgLTA0MDAKLUBAIC0yNCw2ICsyNCw5IEBACi0gLyogRGVm aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwY3JlLmg+IGhlYWRlciBmaWxlLiAqLwotICN1bmRl ZiBIQVZFX1BDUkVfSAotIAotKy8qIFBSRUxVREUgKi8KLSsjdW5kZWYgSEFWRV9QUkVMVURFCi0r Ci0gLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzaWduYWwuaD4gaGVhZGVyIGZpbGUu ICovCi0gI3VuZGVmIEhBVkVfU0lHTkFMX0gKLSAKLWRpZmYgLXVycE4gcGFkcy0xLjIub3JpZy9j b25maWd1cmUuaW4gcGFkcy0xLjIvY29uZmlndXJlLmluCi0tLS0gcGFkcy0xLjIub3JpZy9jb25m aWd1cmUuaW4JMjAwOC0wNi0yOSAyMDoxNjozMC4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEu Mi9jb25maWd1cmUuaW4JMjAwOC0wNy0wNyAxNTo0Mjo1NS4wMDAwMDAwMDAgLTA0MDAKLUBAIC05 Nyw2ICs5NywyNiBAQCBBQ19DSEVDS19MSUIocGNhcCwgcGNhcF9vcGVuX2xpdmUsCi0gICAgIEFD X01TR19FUlJPUihbQ2Fubm90IGZpbmQgUENBUCBsaWJyYXJpZXMhIV0pKQotIAotICMjCi0rIyBD b25maWd1cmUgcHJlbHVkZQotKyMjCi0rQUNfQVJHX1dJVEgocHJlbHVkZSwKLStBU19IRUxQX1NU UklORyhbLS13aXRoLXByZWx1ZGVdLFtlbmFibGUgcHJlbHVkZSBJRFMgc3VwcG9ydF0pLAotK3Vz ZV9wcmVsdWRlPSR3aXRodmFsLAotK3VzZV9wcmVsdWRlPW5vKQotK2lmIHRlc3QgeCR1c2VfcHJl bHVkZSA9IHhubyA7IHRoZW4KLSsgICAgaGF2ZV9wcmVsdWRlPW5vOwotK2Vsc2UKLSsgICAgQUNf Q0hFQ0tfTElCKHByZWx1ZGUsIHByZWx1ZGVfaW5pdCwgaGF2ZV9wcmVsdWRlPXllcywgaGF2ZV9w cmVsdWRlPW5vKQotKyAgICBpZiB0ZXN0IHgkaGF2ZV9wcmVsdWRlID0geG5vIDsgdGhlbgotKyAg ICAgICBBQ19NU0dfRVJST1IoW1ByZWx1ZGUgZXhwbGljaXRseSByZXF1aXJlZCBhbmQgcHJlbHVk ZSBsaWJyYXJ5IG5vdCBmb3VuZF0pCi0rICAgIGVsc2UKLSsgICAgICAgQUNfREVGSU5FKEhBVkVf UFJFTFVERSwxLFtIYXZlIFByZWx1ZGUgTGlicmFyaWVzXSkKLSsgICAgICAgTElCUz0iJExJQlMg LWxwcmVsdWRlIgotKyAgICBmaQotK2ZpCi0rQU1fQ09ORElUSU9OQUwoSEFWRV9QUkVMVURFLCB0 ZXN0IHgkaGF2ZV9wcmVsdWRlID0geHllcykKLSsKLSsjIwotICMgQ2hlY2tzIGZvciBoZWFkZXIg ZmlsZXMuCi0gIyMKLSBBQ19DSEVDS19IRUFERVJTKFtzdGRpby5oIHN0ZGFyZy5oIHNpZ25hbC5o IHRpbWUuaCB1bmlzdGQuaF0pCi1kaWZmIC11cnBOIHBhZHMtMS4yLm9yaWcvZG9jL3BhZHMuY29u Zi44IHBhZHMtMS4yL2RvYy9wYWRzLmNvbmYuOAotLS0tIHBhZHMtMS4yLm9yaWcvZG9jL3BhZHMu Y29uZi44CTIwMDgtMDYtMjkgMjA6MTY6MzAuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIv ZG9jL3BhZHMuY29uZi44CTIwMDgtMDctMDcgMTU6NDE6NTAuMDAwMDAwMDAwIC0wNDAwCi1AQCAt NzcsNiArNzcsOSBAQCBjYW4gYmUgc3BlY2lmaWVkIGFzIGFuIGFyZ3VtZW50LgotIFRoaXMgb3V0 cHV0IHBsdWdpbiB3cml0ZXMgUEFEUyBkYXRhIHRvIGEgRklGTyBmaWxlLiAgT3B0aW9uYWxseSwg YSBGSUZPCi0gZmlsZW5hbWUgY2FuIGJlIHNwZWNpZmllZCBhcyBhbiBhcmd1bWVudC4KLSAKLSsu SVAgIm91dHB1dCBwcmVsdWRlOiA8cHJvZmlsZW5hbWU+IgotK1RoaXMgb3V0cHV0IHBsdWdpbiB3 cml0ZXMgUEFEUyBkYXRhIGFzIElETUVGIGFsZXJ0cyB2aWEgcHJlbHVkZS4gT3B0aW9uYWxseSB5 b3UgY2FuIGFkZCBhIHByb2ZpbGUgbmFtZSBpZiB5b3Ugd2FudCBzb21ldGhpbmcgZGlmZmVyZW50 IHRoYW4gdGhlIGRlZmF1bHQgb2YgcGFkcy4KLSsKLSAuU0ggU0VFIEFMU08KLSBwYWRzKDgpCi0g Ci1kaWZmIC11cnBOIHBhZHMtMS4yLm9yaWcvZXRjL3BhZHMuY29uZiBwYWRzLTEuMi9ldGMvcGFk cy5jb25mCi0tLS0gcGFkcy0xLjIub3JpZy9ldGMvcGFkcy5jb25mCTIwMDgtMDctMDIgMDk6MjQ6 MTkuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvZXRjL3BhZHMuY29uZgkyMDA4LTA3LTA3 IDE1OjQxOjUwLjAwMDAwMDAwMCAtMDQwMAotQEAgLTc1LDMgKzc1LDExIEBAIG91dHB1dCBjc3Y6 IC9ldGMvcGFkcy1hc3NldHMuY3N2Ci0gIyBUaGlzIG91dHB1dCBwbHVnaW4gd3JpdGVzIFBBRFMg ZGF0YSB0byBhIEZJRk8gZmlsZS4gIE9wdGlvbmFsbHksIGEgRklGTwotICMgZmlsZW5hbWUgY2Fu IGJlIHNwZWNpZmllZCBhcyBhbiBhcmd1bWVudC4KLSAjb3V0cHV0IGZpZm86ICBwYWRzLmZpZm8K LSsKLSsjIG91dHB1dDogIHByZWx1ZGUKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsj IFRoaXMgb3V0cHV0IHBsdWdpbiB3cml0ZXMgUEFEUyBkYXRhIGFzIElETUVGIGFsZXJ0cyB2aWEg cHJlbHVkZS4gIE9wdGlvbmFsbHkKLSsjIHlvdSBjYW4gYWRkIGEgcHJvZmlsZSBuYW1lIGlmIHlv dSB3YW50IHNvbWV0aGluZyBkaWZmZXJlbnQgdGhhbiB0aGUgZGVmYXVsdAotKyMgb2YgcGFkcy4K LSsjCi0rI291dHB1dCBwcmVsdWRlOiBwYWRzCi1kaWZmIC11cnBOIHBhZHMtMS4yLm9yaWcvc3Jj L2NvbmZpZ3VyYXRpb24uaCBwYWRzLTEuMi9zcmMvY29uZmlndXJhdGlvbi5oCi0tLS0gcGFkcy0x LjIub3JpZy9zcmMvY29uZmlndXJhdGlvbi5oCTIwMDgtMDYtMjkgMjA6MTY6MzAuMDAwMDAwMDAw IC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL2NvbmZpZ3VyYXRpb24uaAkyMDA4LTA3LTA3IDE1OjQx OjUwLjAwMDAwMDAwMCAtMDQwMAotQEAgLTI2LDYgKzI2LDggQEAKLSAgKiAkSWQ6IHBhZHMtMS4y LXByZWx1ZGUucGF0Y2gsdiAxLjEgMjAwOC8wOC8xMyAxNzozNToxMSBzZ3J1YmIgRXhwICQKLSAg KgotICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8KLSsjaWZuZGVmIENPTkZJR1VSQVRJT05fSEVBREVSCi0r I2RlZmluZSBDT05GSUdVUkFUSU9OX0hFQURFUgotIAotIC8qIERFRklORVMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSAjaWZkZWYgTElOVVgKLUBAIC00MCw4 ICs0Miw3IEBACi0gCi0gLyogSU5DTFVERVMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSAqLwotICNpbmNsdWRlICJnbG9iYWwuaCIKLS0KLS0jaW5jbHVkZSA8c3RkaW8u aD4KLSsjaW5jbHVkZSAiY29uZmlndXJhdGlvbi5oIgotICNpbmNsdWRlICJic3RyaW5nL2JzdHJs aWIuaCIKLSAKLSAvKiBQUk9UT1RZUEVTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICovCi1AQCAtNTEsMyArNTIsNiBAQCBpbnQgY29uZl9tb2R1bGVfcGx1Z2luIChic3Ry aW5nIHZhbHVlLCBpCi0gCi0gLyogRXh0ZXJuYWwgUHJvdG90eXBlcyAqLwotIGludCBhY3RpdmF0 ZV9vdXRwdXRfcGx1Z2luIChic3RyaW5nIG5hbWUsIGJzdHJpbmcgYXJncyk7Ci0rCi0rI2VuZGlm Ci0rCi1kaWZmIC11cnBOIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9NYWtlZmlsZS5hbSBwYWRz LTEuMi9zcmMvb3V0cHV0L01ha2VmaWxlLmFtCi0tLS0gcGFkcy0xLjIub3JpZy9zcmMvb3V0cHV0 L01ha2VmaWxlLmFtCTIwMDgtMDYtMjkgMjA6MTY6MzAuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFk cy0xLjIvc3JjL291dHB1dC9NYWtlZmlsZS5hbQkyMDA4LTA3LTA3IDE1OjQxOjUwLjAwMDAwMDAw MCAtMDQwMAotQEAgLTYsNCArNiw4IEBAIGxpYm91dHB1dF9hX1NPVVJDRVMgPSBvdXRwdXQuYyBv dXRwdXQuaCAKLSAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LWNzdi5jIG91dHB1dC1jc3Yu aCBcCi0gICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC1maWZvLmMgb3V0cHV0LWZpZm8uaAot IAotK2lmIEhBVkVfUFJFTFVERSAKLStsaWJvdXRwdXRfYV9TT1VSQ0VTICs9ICBvdXRwdXQtcHJl bHVkZS5jIG91dHB1dC1wcmVsdWRlLmgKLStlbmRpZgotKwotIElOQ0xVREVTID0gLUkkKHRvcF9z cmNkaXIpIC1JJCh0b3Bfc3JjZGlyKS9zcmMgLUkkKHRvcF9zcmNkaXIpL2xpYgotZGlmZiAtdXJw TiBwYWRzLTEuMi5vcmlnL3NyYy9vdXRwdXQvb3V0cHV0LmMgcGFkcy0xLjIvc3JjL291dHB1dC9v dXRwdXQuYwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9vdXRwdXQuYwkyMDA4LTA2LTMw IDE3OjU0OjMzLjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMtMS4yL3NyYy9vdXRwdXQvb3V0cHV0 LmMJMjAwOC0wNy0wNyAxNTo0MTo1MC4wMDAwMDAwMDAgLTA0MDAKLUBAIC0yOSw2ICsyOSw3IEBA Ci0gI2luY2x1ZGUgIm91dHB1dC1zY3JlZW4uaCIKLSAjaW5jbHVkZSAib3V0cHV0LWNzdi5oIgot ICNpbmNsdWRlICJvdXRwdXQtZmlmby5oIgotKyNpbmNsdWRlICJvdXRwdXQtcHJlbHVkZS5oIgot ICNpbmNsdWRlICJzdG9yYWdlLmgiCi0gCi0gLyogTG9jYWwgVmFyaWFibGVzICovCi1AQCAtNDMs NyArNDQsNyBAQCBzdGF0aWMgT3V0cHV0UGx1Z2luTGlzdCAqb3V0cHV0X3BsdWdpbl9sCi0gICog SU5QVVQJOiBOb25lIQotICAqIFJFVFVSTgk6IE5vbmUhCi0gICogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotLXZvaWQgaW5pdF9v dXRwdXQoKQotK2ludCBpbml0X291dHB1dCh2b2lkKQotIHsKLSAKLSAgICAgLyogTG9hZCBTY3Jl ZW4gUGx1Zy1pbiAqLwotQEAgLTU1LDYgKzU2LDExIEBAIHZvaWQgaW5pdF9vdXRwdXQoKQotICAg ICAvKiBMb2FkIEZJRk8gUGx1Zy1pbiAqLwotICAgICBzZXR1cF9vdXRwdXRfZmlmbygpOwotIAot KyAgICAvKiBMb2FkIFByZWx1ZGUgUGx1Zy1pbiAqLwotKyAgICBpZiAoc2V0dXBfb3V0cHV0X3By ZWx1ZGUoKSA8IDApCi0rCXJldHVybiAtMTsKLSsKLSsgICAgcmV0dXJuIDA7Ci0gfQotIAotIC8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLWRpZmYgLXVycE4gcGFkcy0xLjIub3JpZy9zcmMvb3V0cHV0L291dHB1dC5oIHBhZHMtMS4y L3NyYy9vdXRwdXQvb3V0cHV0LmgKLS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9vdXRwdXQvb3V0cHV0 LmgJMjAwOC0wNi0zMCAxMzo1Njo1Mi4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMv b3V0cHV0L291dHB1dC5oCTIwMDgtMDctMDcgMTU6NDE6NTAuMDAwMDAwMDAwIC0wNDAwCi1AQCAt NzEsNyArNzEsNyBAQCB0eXBlZGVmIHN0cnVjdCBfT3V0cHV0UGx1Z2luTGlzdAotIH0gT3V0cHV0 UGx1Z2luTGlzdDsKLSAKLSAvKiBQUk9UT1RZUEVTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tICovCi0tdm9pZCBpbml0X291dHB1dCgpOwotK2ludCBpbml0X291dHB1dCh2 b2lkKTsKLSBpbnQgcmVnaXN0ZXJfb3V0cHV0X3BsdWdpbiAoT3V0cHV0UGx1Z2luICpwbHVnaW4p OwotIGludCBhY3RpdmF0ZV9vdXRwdXRfcGx1Z2luIChic3RyaW5nIG5hbWUsIGJzdHJpbmcgYXJn cyk7Ci0gaW50IHByaW50X2Fzc2V0IChzdHJ1Y3QgaW5fYWRkciBpcF9hZGRyLCB1X2ludDE2X3Qg cG9ydCwgdW5zaWduZWQgc2hvcnQgcHJvdG8pOwotZGlmZiAtdXJwTiBwYWRzLTEuMi5vcmlnL3Ny Yy9vdXRwdXQvb3V0cHV0LXByZWx1ZGUuYyBwYWRzLTEuMi9zcmMvb3V0cHV0L291dHB1dC1wcmVs dWRlLmMKLS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9vdXRwdXQvb3V0cHV0LXByZWx1ZGUuYwkxOTY5 LTEyLTMxIDE5OjAwOjAwLjAwMDAwMDAwMCAtMDUwMAotKysrIHBhZHMtMS4yL3NyYy9vdXRwdXQv b3V0cHV0LXByZWx1ZGUuYwkyMDA4LTA3LTA3IDE1OjQxOjUwLjAwMDAwMDAwMCAtMDQwMAotQEAg LTAsMCArMSw1MTMgQEAKLSsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKyAqIG91dHB1dC1wcmVsdWRlLmMK LSsgKgotKyAqIFRoaXMgbW9kdWxlIGNvbnRhaW5zIHRoZSBvdXRwdXQgbWVjaGFuaXNtIGZvciBQ QURTIHRvIHNlbmQgSURNRUYgYWxlcnRzCi0rICogdmlhIHRoZSBwcmVsdWRlIGxpYnJhcnkKLSsg KgotKyAqIENvcHlyaWdodCAoQykgMjAwOCBTdGV2ZSBHcnViYiA8c2dydWJiQHJlZGhhdC5jb20+ Ci0rICoKLSsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rICogdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSsg KiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyAqCi0rICogVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0r ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKLSsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCi0rICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KLSsgKgotKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICogYWxvbmcgd2l0aCB0aGlzIHByb2dy YW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSsgKiBGb3VuZGF0aW9uLCBJ bmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4KLSsgKgotKyAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KLSsjaW5jbHVkZSAib3V0cHV0LXByZWx1ZGUuaCIKLSsjaW5jbHVkZSAi dXRpbC5oIgotKyNpbmNsdWRlICJwYWRzLmgiCS8vIEZvciBhcmdjL3YgYW5kIGdjCi0rI2luY2x1 ZGUgPGFycGEvaW5ldC5oPgotKyNpbmNsdWRlIDxsaWJwcmVsdWRlL3ByZWx1ZGUuaD4KLSsKLSsj ZGVmaW5lIEFOQUxZWkVSX01PREVMICJwYWRzIgotKyNkZWZpbmUgQU5BTFlaRVJfQ0xBU1MgIlBW UyIKLSsjZGVmaW5lIEFOQUxZWkVSX01BTlVGQUNUVVJFUiAiaHR0cDovL3Bhc3NpdmUuc291cmNl Zm9yZ2UubmV0IgotKyNkZWZpbmUgUFJFTFVERV9GQUlMX0NIRUNLICBpZiAocmV0IDwgMCkgZ290 byBlcnI7Ci0rc3RhdGljIHByZWx1ZGVfY2xpZW50X3QgKmNsaWVudCA9IE5VTEw7Ci0rc3RhdGlj IGNoYXIgKnByb2ZpbGUgPSBOVUxMOwotKwotK3N0YXRpYyBpbnQgc2V0dXBfYW5hbHl6ZXIoaWRt ZWZfYW5hbHl6ZXJfdCAqYW5hbHl6ZXIpCi0rewotKyAgICAgICAgaW50IHJldDsKLSsgICAgICAg IHByZWx1ZGVfc3RyaW5nX3QgKnN0cmluZzsKLSsKLSsgICAgICAgIHJldCA9IGlkbWVmX2FuYWx5 emVyX25ld19tb2RlbChhbmFseXplciwgJnN0cmluZyk7Ci0rICAgICAgICBQUkVMVURFX0ZBSUxf Q0hFQ0s7Ci0rICAgICAgICBwcmVsdWRlX3N0cmluZ19zZXRfZHVwKHN0cmluZywgQU5BTFlaRVJf TU9ERUwpOwotKwotKyAgICAgICAgcmV0ID0gaWRtZWZfYW5hbHl6ZXJfbmV3X2NsYXNzKGFuYWx5 emVyLCAmc3RyaW5nKTsKLSsgICAgICAgIFBSRUxVREVfRkFJTF9DSEVDSzsKLSsgICAgICAgIHBy ZWx1ZGVfc3RyaW5nX3NldF9kdXAoc3RyaW5nLCBBTkFMWVpFUl9DTEFTUyk7Ci0rCi0rICAgICAg ICByZXQgPSBpZG1lZl9hbmFseXplcl9uZXdfbWFudWZhY3R1cmVyKGFuYWx5emVyLCAmc3RyaW5n KTsKLSsgICAgICAgIFBSRUxVREVfRkFJTF9DSEVDSzsKLSsgICAgICAgIHByZWx1ZGVfc3RyaW5n X3NldF9kdXAoc3RyaW5nLCBBTkFMWVpFUl9NQU5VRkFDVFVSRVIpOwotKwotKyAgICAgICAgcmV0 ID0gaWRtZWZfYW5hbHl6ZXJfbmV3X3ZlcnNpb24oYW5hbHl6ZXIsICZzdHJpbmcpOwotKyAgICAg ICAgUFJFTFVERV9GQUlMX0NIRUNLOwotKyAgICAgICAgcHJlbHVkZV9zdHJpbmdfc2V0X2R1cChz dHJpbmcsIFBBQ0tBR0VfVkVSU0lPTik7Ci0rCi0rICAgICAgICByZXR1cm4gMDsKLSsKLSsgZXJy OgotKyAgICAgICAgbG9nX21lc3NhZ2UoIiVzOiBJRE1FRiBlcnJvcjogJXMuXG4iLAotKyAgICAg ICAgICAgICAgICBwcmVsdWRlX3N0cnNvdXJjZShyZXQpLCBwcmVsdWRlX3N0cmVycm9yKHJldCkp OwotKwotKyAgICAgICAgcmV0dXJuIC0xOwotK30KLSsKLStzdGF0aWMgaW50IGluaXRfcHJlbHVk ZSh2b2lkKQotK3sKLSsgICAgICAgIGludCByZXQ7Ci0rICAgICAgICBwcmVsdWRlX2NsaWVudF9m bGFnc190IGZsYWdzOwotKwotKyAgICAgICAgcmV0ID0gcHJlbHVkZV90aHJlYWRfaW5pdChOVUxM KTsKLSsgICAgICAgIHJldCA9IHByZWx1ZGVfaW5pdCgmcHJvZ19hcmdjLCBwcm9nX2FyZ3YpOwot KyAgICAgICAgaWYgKHJldCA8IDApIHsKLSsgICAgICAgICAgICAgICAgbG9nX21lc3NhZ2UoIlVu YWJsZSB0byBpbml0aWFsaXplIHRoZSBQcmVsdWRlIGxpYnJhcnk6ICVzLlxuIiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICBwcmVsdWRlX3N0cmVycm9yKHJldCkpOwotKyAgICAgICAgICAgICAg ICByZXR1cm4gLTE7Ci0rICAgICAgICB9Ci0rICAgICAgICByZXQgPSBwcmVsdWRlX2NsaWVudF9u ZXcoJmNsaWVudCwgcHJvZmlsZSA/IHByb2ZpbGUgOiBBTkFMWVpFUl9NT0RFTCk7Ci0rICAgICAg ICBpZiAoIWNsaWVudCkgewotKyAgICAgICAgICAgICAgICBsb2dfbWVzc2FnZSgiVW5hYmxlIHRv IGNyZWF0ZSBhIHByZWx1ZGUgY2xpZW50IG9iamVjdDogJXMuXG4iLAotKyAgICAgICAgICAgICAg ICAgICAgICAgIHByZWx1ZGVfc3RyZXJyb3IocmV0KSk7Ci0rICAgICAgICAgICAgICAgIHJldHVy biAtMTsKLSsgICAgICAgIH0KLSsgICAgICAgIHJldCA9IHNldHVwX2FuYWx5emVyKHByZWx1ZGVf Y2xpZW50X2dldF9hbmFseXplcihjbGllbnQpKTsKLSsgICAgICAgIGlmIChyZXQgPCAwKSB7Ci0r ICAgICAgICAgICAgICAgIGxvZ19tZXNzYWdlKCJVbmFibGUgdG8gc2V0dXAgYW5hbHl6ZXI6ICVz XG4iLAotKyAgICAgICAgICAgICAgICAgICAgICAgIHByZWx1ZGVfc3RyZXJyb3IocmV0KSk7Ci0r Ci0rICAgICAgICAgICAgICAgIHByZWx1ZGVfY2xpZW50X2Rlc3Ryb3koY2xpZW50LAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUkVMVURFX0NMSUVOVF9FWElUX1NU QVRVU19GQUlMVVJFKTsKLSsgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotKyAgICAgICAgfQot KyAgICAgICAgZmxhZ3MgPSBwcmVsdWRlX2NsaWVudF9nZXRfZmxhZ3MoY2xpZW50KTsKLSsgICAg ICAgIGZsYWdzIHw9IFBSRUxVREVfQ0xJRU5UX0ZMQUdTX0FTWU5DX1RJTUVSOwotKyAgICAgICAg cmV0ID0gcHJlbHVkZV9jbGllbnRfc2V0X2ZsYWdzKGNsaWVudCwgZmxhZ3MpOwotKyAgICAgICAg aWYgKHJldCA8IDApIHsKLSsgICAgICAgICAgICAgICAgbG9nX21lc3NhZ2UoIlVuYWJsZSB0byBz ZXQgcHJlbHVkZSBjbGllbnQgZmxhZ3M6ICVzXG4iLAotKyAgICAgICAgICAgICAgICAgICAgICAg IHByZWx1ZGVfc3RyZXJyb3IocmV0KSk7Ci0rCi0rICAgICAgICAgICAgICAgIHByZWx1ZGVfY2xp ZW50X2Rlc3Ryb3koY2xpZW50LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQUkVMVURFX0NMSUVOVF9FWElUX1NUQVRVU19GQUlMVVJFKTsKLSsgICAgICAgICAgICAg ICAgcmV0dXJuIC0xOwotKyAgICAgICAgfQotKyAgICAgICAgcmV0ID0gcHJlbHVkZV9jbGllbnRf c3RhcnQoY2xpZW50KTsKLSsgICAgICAgIGlmIChyZXQgPCAwKSB7Ci0rICAgICAgICAgICAgICAg IGxvZ19tZXNzYWdlKCJVbmFibGUgdG8gc3RhcnQgcHJlbHVkZSBjbGllbnQ6ICVzXG4iLAotKyAg ICAgICAgICAgICAgICAgICAgICAgIHByZWx1ZGVfc3RyZXJyb3IocmV0KSk7Ci0rCi0rICAgICAg ICAgICAgICAgIHByZWx1ZGVfY2xpZW50X2Rlc3Ryb3koY2xpZW50LAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQUkVMVURFX0NMSUVOVF9FWElUX1NUQVRVU19GQUlM VVJFKTsKLSsgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotKyAgICAgICAgfQotKyAgICAgICAg cmV0dXJuIDA7Ci0rfQotKwotK3N0YXRpYyBpbnQgbmV3X2FsZXJ0X2NvbW1vbihpZG1lZl9tZXNz YWdlX3QgKippZG1lZiwgaWRtZWZfYWxlcnRfdCAqKmFsZXJ0KQotK3sKLSsgICAgICAgIGludCBy ZXQ7Ci0rICAgICAgICBpZG1lZl90aW1lX3QgKmN0aW1lOwotKwotKyAgICAgICAgcmV0ID0gaWRt ZWZfbWVzc2FnZV9uZXcoaWRtZWYpOwotKyAgICAgICAgUFJFTFVERV9GQUlMX0NIRUNLOwotKwot KyAgICAgICAgcmV0ID0gaWRtZWZfbWVzc2FnZV9uZXdfYWxlcnQoKmlkbWVmLCBhbGVydCk7Ci0r ICAgICAgICBQUkVMVURFX0ZBSUxfQ0hFQ0s7Ci0rCi0rICAgICAgICBpZG1lZl9hbGVydF9zZXRf YW5hbHl6ZXIoKmFsZXJ0LAotKyAgICAgICAgICAgICAgICAgICAgICAgIGlkbWVmX2FuYWx5emVy X3JlZihwcmVsdWRlX2NsaWVudF9nZXRfYW5hbHl6ZXIoY2xpZW50KSksCi0rICAgICAgICAgICAg ICAgICAgICAgICAgSURNRUZfTElTVF9QUkVQRU5EKTsKLSsKLSsgICAgICAgIC8vIFNldCB0aW1l IHRoaXMgd2FzIGNyZWF0ZWQKLSsgICAgICAgIHJldCA9IGlkbWVmX3RpbWVfbmV3X2Zyb21fZ2V0 dGltZW9mZGF5KCZjdGltZSk7Ci0rICAgICAgICBQUkVMVURFX0ZBSUxfQ0hFQ0s7Ci0rICAgICAg ICBpZG1lZl9hbGVydF9zZXRfZGV0ZWN0X3RpbWUoKmFsZXJ0LCBjdGltZSk7Ci0rICAgICAgICBp ZG1lZl9hbGVydF9zZXRfY3JlYXRlX3RpbWUoKmFsZXJ0LCBjdGltZSk7Ci0rCi0rICAgICAgICBy ZXR1cm4gMDsKLSsgZXJyOgotKyAgICAgICAgc3lzbG9nKExPR19FUlIsICIlczogSURNRUYgZXJy b3I6ICVzLlxuIiwKLSsgICAgICAgICAgICAgICBwcmVsdWRlX3N0cnNvdXJjZShyZXQpLCBwcmVs dWRlX3N0cmVycm9yKHJldCkpOwotKyAgICAgICAgaWRtZWZfbWVzc2FnZV9kZXN0cm95KCppZG1l Zik7Ci0rICAgICAgICByZXR1cm4gLTE7Ci0rfQotKwotK3N0YXRpYyBpbnQgc2V0X2NsYXNzaWZp Y2F0aW9uKGlkbWVmX2FsZXJ0X3QgKmFsZXJ0LCBjb25zdCBjaGFyICp0ZXh0KQotK3sKLSsgICAg ICAgIGludCByZXQ7Ci0rICAgICAgICBpZG1lZl9jbGFzc2lmaWNhdGlvbl90ICpjbGFzc2lmaWNh dGlvbjsKLSsgICAgICAgIHByZWx1ZGVfc3RyaW5nX3QgKnN0cjsKLSsKLSsgICAgICAgIHJldCA9 IGlkbWVmX2FsZXJ0X25ld19jbGFzc2lmaWNhdGlvbihhbGVydCwgJmNsYXNzaWZpY2F0aW9uKTsK LSsgICAgICAgIFBSRUxVREVfRkFJTF9DSEVDSzsKLSsgICAgICAgIHJldCA9IHByZWx1ZGVfc3Ry aW5nX25ldygmc3RyKTsKLSsgICAgICAgIFBSRUxVREVfRkFJTF9DSEVDSzsKLSsgICAgICAgIHJl dCA9IHByZWx1ZGVfc3RyaW5nX3NldF9yZWYoc3RyLCB0ZXh0KTsKLSsgICAgICAgIFBSRUxVREVf RkFJTF9DSEVDSzsKLSsgICAgICAgIGlkbWVmX2NsYXNzaWZpY2F0aW9uX3NldF90ZXh0KGNsYXNz aWZpY2F0aW9uLCBzdHIpOwotKwotKyAgICAgICAgcmV0dXJuIDA7Ci0rIGVycjoKLSsgICAgICAg IHJldHVybiAtMTsKLSt9Ci0rCi0rc3RhdGljIGludCBkb19hc3Nlc3NtZW50KGlkbWVmX2FsZXJ0 X3QgKmFsZXJ0LAotKwkJaWRtZWZfaW1wYWN0X3NldmVyaXR5X3Qgc2V2ZXJpdHksCi0rCQlpZG1l Zl9pbXBhY3RfdHlwZV90IHR5cGUsIGNvbnN0IGNoYXIgKmRlc2NyKQotK3sKLSsgICAgICAgIGlu dCByZXQ7Ci0rICAgICAgICBpZG1lZl9hc3Nlc3NtZW50X3QgKmFzc2Vzc21lbnQ7Ci0rICAgICAg ICBpZG1lZl9pbXBhY3RfdCAqaW1wYWN0OwotKwotKyAgICAgICAgcmV0ID0gaWRtZWZfYWxlcnRf bmV3X2Fzc2Vzc21lbnQoYWxlcnQsICZhc3Nlc3NtZW50KTsKLSsgICAgICAgIFBSRUxVREVfRkFJ TF9DSEVDSzsKLSsgICAgICAgIHJldCA9IGlkbWVmX2Fzc2Vzc21lbnRfbmV3X2ltcGFjdChhc3Nl c3NtZW50LCAmaW1wYWN0KTsKLSsgICAgICAgIFBSRUxVREVfRkFJTF9DSEVDSzsKLSsgICAgICAg IGlkbWVmX2ltcGFjdF9zZXRfc2V2ZXJpdHkoaW1wYWN0LCBzZXZlcml0eSk7Ci0rICAgICAgICBp ZG1lZl9pbXBhY3Rfc2V0X3R5cGUoaW1wYWN0LCB0eXBlKTsKLSsgICAgICAgIGlmIChkZXNjcikg ewotKyAgICAgICAgICAgICAgIHByZWx1ZGVfc3RyaW5nX3QgKnN0cjsKLSsgICAgICAgICAgICAg ICByZXQgPSBpZG1lZl9pbXBhY3RfbmV3X2Rlc2NyaXB0aW9uKGltcGFjdCwgJnN0cik7Ci0rICAg ICAgICAgICAgICAgcHJlbHVkZV9zdHJpbmdfc2V0X3JlZihzdHIsIGRlc2NyKTsKLSsgICAgICAg IH0KLSsgICAgICAgIGlkbWVmX2ltcGFjdF9zZXRfY29tcGxldGlvbihpbXBhY3QsIElETUVGX0lN UEFDVF9DT01QTEVUSU9OX1NVQ0NFRURFRCk7Ci0rICAgICAgICByZXR1cm4gMDsKLSsgZXJyOgot KyAgICAgICAgcmV0dXJuIC0xOwotK30KLSsKLSsvLyBGSVhNRTogaGFuZGxlIGlwdjYgYWRkcmVz c2VzCi0rc3RhdGljIGludCBmaWxsX2luX25vZGVfYWRkcihpZG1lZl9ub2RlX3QgKm5vZGUsIHN0 cnVjdCBpbl9hZGRyICphZGRyKQotK3sKLSsgICAgICAgIGludCByZXQ7Ci0rICAgICAgICBwcmVs dWRlX3N0cmluZ190ICpzdHI7Ci0rCWNoYXIgYnVmW0lORVQ2X0FERFJTVFJMRU4rMV07Ci0rCi0r CWluZXRfbnRvcChBRl9JTkVULCBhZGRyLCBidWYsIHNpemVvZihidWYpKTsKLSsKLSsgICAgICAg IC8qIFNldHVwIHRoZSBhZGRyZXNzIHN0cmluZyAqLwotKyAgICAgICAgcmV0ID0gcHJlbHVkZV9z dHJpbmdfbmV3KCZzdHIpOwotKyAgICAgICAgUFJFTFVERV9GQUlMX0NIRUNLOwotKyAgICAgICAg cmV0ID0gcHJlbHVkZV9zdHJpbmdfc2V0X2R1cChzdHIsIGJ1Zik7Ci0rICAgICAgICBQUkVMVURF X0ZBSUxfQ0hFQ0s7Ci0rCi0rICAgICAgICAvKiBOb3cgcmVjb3JkIElQIGFkZHJlc3MgKi8KLSsg ICAgICAgIGlkbWVmX2FkZHJlc3NfdCAqbXlfYWRkcjsKLSsgICAgICAgIHJldCA9IGlkbWVmX2Fk ZHJlc3NfbmV3KCZteV9hZGRyKTsKLSsgICAgICAgIFBSRUxVREVfRkFJTF9DSEVDSzsKLSsgICAg ICAgIGlkbWVmX2FkZHJlc3Nfc2V0X2NhdGVnb3J5KG15X2FkZHIsIElETUVGX0FERFJFU1NfQ0FU RUdPUllfSVBWNF9BRERSKTsKLSsgICAgICAgIGlkbWVmX2FkZHJlc3Nfc2V0X2FkZHJlc3MobXlf YWRkciwgc3RyKTsKLSsgICAgICAgIGlkbWVmX25vZGVfc2V0X2FkZHJlc3Mobm9kZSwgbXlfYWRk ciwgMCk7Ci0rCi0rICAgICAgICByZXR1cm4gMDsKLSsgZXJyOgotKyAgICAgICAgcmV0dXJuIC0x OwotK30KLSsKLSsvLyBGSVhNRTogaGFuZGxlIGlwdjYgYWRkcmVzc2VzCi0rc3RhdGljIGludCBm aWxsX2luX25vZGVfbWFjKGlkbWVmX25vZGVfdCAqbm9kZSwgQXJwQXNzZXQgKmEpCi0rewotKyAg ICAgICAgaW50IHJldDsKLSsgICAgICAgIHByZWx1ZGVfc3RyaW5nX3QgKnN0ciwgKm1hY19zdHI7 Ci0rCWNoYXIgYnVmW0lORVQ2X0FERFJTVFJMRU4rMV07Ci0rCi0rCWluZXRfbnRvcChBRl9JTkVU LCAmYS0+aXBfYWRkciwgYnVmLCBzaXplb2YoYnVmKSk7Ci0rCi0rICAgICAgICAvKiBTZXR1cCB0 aGUgYWRkcmVzcyBzdHJpbmcgKi8KLSsgICAgICAgIHJldCA9IHByZWx1ZGVfc3RyaW5nX25ldygm c3RyKTsKLSsgICAgICAgIFBSRUxVREVfRkFJTF9DSEVDSzsKLSsgICAgICAgIHJldCA9IHByZWx1 ZGVfc3RyaW5nX3NldF9kdXAoc3RyLCBidWYpOwotKyAgICAgICAgUFJFTFVERV9GQUlMX0NIRUNL OwotKwotKyAgICAgICAgLyogTm93IHJlY29yZCBJUCBhZGRyZXNzICovCi0rICAgICAgICBpZG1l Zl9hZGRyZXNzX3QgKm15X2FkZHI7Ci0rICAgICAgICByZXQgPSBpZG1lZl9hZGRyZXNzX25ldygm bXlfYWRkcik7Ci0rICAgICAgICBQUkVMVURFX0ZBSUxfQ0hFQ0s7Ci0rICAgICAgICBpZG1lZl9h ZGRyZXNzX3NldF9jYXRlZ29yeShteV9hZGRyLCBJRE1FRl9BRERSRVNTX0NBVEVHT1JZX0lQVjRf QUREUik7Ci0rICAgICAgICBpZG1lZl9hZGRyZXNzX3NldF9hZGRyZXNzKG15X2FkZHIsIHN0cik7 Ci0rICAgICAgICBpZG1lZl9ub2RlX3NldF9hZGRyZXNzKG5vZGUsIG15X2FkZHIsIDApOwotKwot KyAgICAgICAgLyogTm93IHJlY29yZCBNQUMgYWRkcmVzcyAqLwotKyAgICAgICAgaWRtZWZfYWRk cmVzc190ICptYWNfYWRkcjsKLSsgICAgICAgIHJldCA9IGlkbWVmX2FkZHJlc3NfbmV3KCZtYWNf YWRkcik7Ci0rICAgICAgICBQUkVMVURFX0ZBSUxfQ0hFQ0s7Ci0rICAgICAgICByZXQgPSBwcmVs dWRlX3N0cmluZ19uZXcoJm1hY19zdHIpOwotKyAgICAgICAgUFJFTFVERV9GQUlMX0NIRUNLOwot KyAgICAgICAgaWRtZWZfYWRkcmVzc19zZXRfY2F0ZWdvcnkobWFjX2FkZHIsIElETUVGX0FERFJF U1NfQ0FURUdPUllfTUFDKTsKLSsgICAgICAgIHJldCA9IHByZWx1ZGVfc3RyaW5nX3NldF9kdXAo bWFjX3N0ciwgaGV4Mm1hYyhhLT5tYWNfYWRkcikpOwotKyAgICAgICAgUFJFTFVERV9GQUlMX0NI RUNLOwotKyAgICAgICAgaWRtZWZfYWRkcmVzc19zZXRfYWRkcmVzcyhtYWNfYWRkciwgbWFjX3N0 cik7Ci0rICAgICAgICBpZG1lZl9ub2RlX3NldF9hZGRyZXNzKG5vZGUsIG1hY19hZGRyLCAwKTsK LSsgICAgICAgIHJldHVybiAwOwotKyBlcnI6Ci0rICAgICAgICByZXR1cm4gLTE7Ci0rfQotKwot KwotK3N0YXRpYyBpbnQgYXNzZXRfYWxlcnQoQXNzZXQgKmEsIGlkbWVmX21lc3NhZ2VfdCAqaWRt ZWYsCi0rICAgICAgICAgICAgICAgIGlkbWVmX2FsZXJ0X3QgKmFsZXJ0LCBjb25zdCBjaGFyICpt c2csCi0rICAgICAgICAgICAgICAgIGlkbWVmX2ltcGFjdF9zZXZlcml0eV90IHNldmVyaXR5LCBj aGFyICpkZXNjcikKLSt7Ci0rICAgICAgICBpbnQgcmV0OwotKyAgICAgICAgaWRtZWZfc291cmNl X3QgKnNvdXJjZTsKLSsgICAgICAgIGlkbWVmX3RhcmdldF90ICp0YXJnZXQ7Ci0rCWlkbWVmX25v ZGVfdCAqbm9kZSwgKm5vZGUyOwotKwlpZG1lZl9zZXJ2aWNlX3QgKnNlcnZpY2U7Ci0rICAgICAg ICBpZG1lZl9pbXBhY3RfdHlwZV90IGltcGFjdDsKLSsgICAgICAgIHByZWx1ZGVfc3RyaW5nX3Qg Km5hbWUsICpzdHI7Ci0rCWlkbWVmX2FkZGl0aW9uYWxfZGF0YV90ICpkYXRhOwotKwotKyAgICAg ICAgLyogRmlsbCBpbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXZlbnQncyBzb3VyY2UgKi8KLSsg ICAgICAgIHJldCA9IGlkbWVmX2FsZXJ0X25ld19zb3VyY2UoYWxlcnQsICZzb3VyY2UsIC0xKTsK LSsgICAgICAgIFBSRUxVREVfRkFJTF9DSEVDSzsKLSsJcmV0ID0gaWRtZWZfc291cmNlX25ld19u b2RlKHNvdXJjZSwgJm5vZGUpOwotKyAgICAgICAgUFJFTFVERV9GQUlMX0NIRUNLOwotKwlpZG1l Zl9ub2RlX3NldF9jYXRlZ29yeShub2RlLCBJRE1FRl9OT0RFX0NBVEVHT1JZX1VOS05PV04pOwot KwlyZXQgPSBmaWxsX2luX25vZGVfYWRkcihub2RlLCAmYS0+aXBfYWRkcik7Ci0rCVBSRUxVREVf RkFJTF9DSEVDSzsKLSsKLSsJLy8gRGVzY3JpYmUgdGhlIHNlcnZpY2UKLSsJcmV0ID0gaWRtZWZf c291cmNlX25ld19zZXJ2aWNlKHNvdXJjZSwgJnNlcnZpY2UpOwotKwlQUkVMVURFX0ZBSUxfQ0hF Q0s7Ci0rCWlkbWVmX3NlcnZpY2Vfc2V0X2lhbmFfcHJvdG9jb2xfbnVtYmVyKHNlcnZpY2UsIGEt PnByb3RvKTsKLSsJaWRtZWZfc2VydmljZV9zZXRfaXBfdmVyc2lvbihzZXJ2aWNlLCA0KTsKLSsJ aWRtZWZfc2VydmljZV9zZXRfcG9ydChzZXJ2aWNlLCBudG9ocyhhLT5wb3J0KSk7Ci0rCXJldCA9 IHByZWx1ZGVfc3RyaW5nX25ldygmbmFtZSk7Ci0rCVBSRUxVREVfRkFJTF9DSEVDSzsKLSsJcmV0 ID0gcHJlbHVkZV9zdHJpbmdfc2V0X2R1cChuYW1lLCAoY2hhciAqKWJkYXRhKGEtPnNlcnZpY2Up KTsKLSsJUFJFTFVERV9GQUlMX0NIRUNLOwotKwlpZiAoYmRhdGEoYS0+YXBwbGljYXRpb24pICE9 IE5VTEwpIHsKLSsJCXJldCA9IGlkbWVmX2FsZXJ0X25ld19hZGRpdGlvbmFsX2RhdGEoYWxlcnQs ICZkYXRhLAotKwkJCUlETUVGX0xJU1RfQVBQRU5EKTsKLSsJCVBSRUxVREVfRkFJTF9DSEVDSzsK LSsJCXJldCA9IGlkbWVmX2FkZGl0aW9uYWxfZGF0YV9uZXdfbWVhbmluZyhkYXRhLCAmc3RyKTsK LSsJCVBSRUxVREVfRkFJTF9DSEVDSzsKLSsJCXByZWx1ZGVfc3RyaW5nX3NldF9yZWYoc3RyLCAi QXBwbGljYXRpb24iKTsKLSsJCWlkbWVmX2FkZGl0aW9uYWxfZGF0YV9zZXRfdHlwZShkYXRhLAot KwkJCQlJRE1FRl9BRERJVElPTkFMX0RBVEFfVFlQRV9TVFJJTkcpOwotKwkJaWRtZWZfYWRkaXRp b25hbF9kYXRhX3NldF9zdHJpbmdfZHVwKGRhdGEsCi0rCQkJCShjaGFyICopYmRhdGEoYS0+YXBw bGljYXRpb24pKTsKLSsJfQotKwotKyAgICAgICAgLyogRmlsbCBpbiBpbmZvcm1hdGlvbiBhYm91 dCB0aGUgdGFyZ2V0IG9mIHRoZSBldmVudCAqLwotKyAgICAgICAgcmV0ID0gaWRtZWZfYWxlcnRf bmV3X3RhcmdldChhbGVydCwgJnRhcmdldCwgLTEpOwotKyAgICAgICAgUFJFTFVERV9GQUlMX0NI RUNLOwotKwotKwkvKiBGSVhNRTogSSBhc3N1bWUgdGhhdCB0aGUgdGFyZ2V0IGlzIHRoZSB3aG9s ZSBuZXR3b3JrICovCi0rCXJldCA9IGlkbWVmX3RhcmdldF9uZXdfbm9kZSh0YXJnZXQsICZub2Rl Mik7Ci0rICAgICAgICBQUkVMVURFX0ZBSUxfQ0hFQ0s7Ci0rCWlkbWVmX25vZGVfc2V0X2NhdGVn b3J5KG5vZGUsIElETUVGX05PREVfQ0FURUdPUllfVU5LTk9XTik7Ci0rCi0rICAgICAgICAvKiBE ZXNjcmliZSBldmVudCAqLwotKyAgICAgICAgcmV0ID0gc2V0X2NsYXNzaWZpY2F0aW9uKGFsZXJ0 LCBtc2cpOwotKyAgICAgICAgUFJFTFVERV9GQUlMX0NIRUNLOwotKwotKyAgICAgICAgLyogQXNz ZXNzIGltcGFjdCAqLwotKyAgICAgICAgaW1wYWN0ID0gSURNRUZfSU1QQUNUX1RZUEVfT1RIRVI7 Ci0rICAgICAgICByZXQgPSBkb19hc3Nlc3NtZW50KGFsZXJ0LCBzZXZlcml0eSwgaW1wYWN0LCBk ZXNjcik7Ci0rICAgICAgICBQUkVMVURFX0ZBSUxfQ0hFQ0s7Ci0rCi0rICAgICAgICBwcmVsdWRl X2NsaWVudF9zZW5kX2lkbWVmKGNsaWVudCwgaWRtZWYpOwotKyAgICAgICAgaWRtZWZfbWVzc2Fn ZV9kZXN0cm95KGlkbWVmKTsKLSsKLSsgICAgICAgIHJldHVybiAwOwotKyBlcnI6Ci0rICAgICAg ICBzeXNsb2coTE9HX0VSUiwgImFzc2V0X2FsZXJ0OiBJRE1FRiBlcnJvcjogJXMuXG4iLAotKyAg ICAgICAgICAgICAgICBwcmVsdWRlX3N0cmVycm9yKHJldCkpOwotKyAgICAgICAgaWRtZWZfbWVz c2FnZV9kZXN0cm95KGlkbWVmKTsKLSsgICAgICAgIHJldHVybiAtMTsKLSt9Ci0rCi0rCi0rc3Rh dGljIGludCBhcnBfYWxlcnQoQXJwQXNzZXQgKmEsIGlkbWVmX21lc3NhZ2VfdCAqaWRtZWYsCi0r ICAgICAgICAgICAgICAgIGlkbWVmX2FsZXJ0X3QgKmFsZXJ0LCBjb25zdCBjaGFyICptc2csCi0r ICAgICAgICAgICAgICAgIGlkbWVmX2ltcGFjdF9zZXZlcml0eV90IHNldmVyaXR5LCBjaGFyICpk ZXNjcikKLSt7Ci0rICAgICAgICBpbnQgcmV0OwotKyAgICAgICAgaWRtZWZfc291cmNlX3QgKnNv dXJjZTsKLSsgICAgICAgIGlkbWVmX3RhcmdldF90ICp0YXJnZXQ7Ci0rCWlkbWVmX25vZGVfdCAq bm9kZSwgKm5vZGUyOwotKyAgICAgICAgaWRtZWZfaW1wYWN0X3R5cGVfdCBpbXBhY3Q7Ci0rICAg ICAgICBwcmVsdWRlX3N0cmluZ190ICpzdHI7Ci0rCWlkbWVmX2FkZGl0aW9uYWxfZGF0YV90ICpk YXRhOwotKwotKyAgICAgICAgLyogRmlsbCBpbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXZlbnQn cyBzb3VyY2UgKi8KLSsgICAgICAgIHJldCA9IGlkbWVmX2FsZXJ0X25ld19zb3VyY2UoYWxlcnQs ICZzb3VyY2UsIC0xKTsKLSsgICAgICAgIFBSRUxVREVfRkFJTF9DSEVDSzsKLSsJcmV0ID0gaWRt ZWZfc291cmNlX25ld19ub2RlKHNvdXJjZSwgJm5vZGUpOwotKyAgICAgICAgUFJFTFVERV9GQUlM X0NIRUNLOwotKwlpZG1lZl9ub2RlX3NldF9jYXRlZ29yeShub2RlLCBJRE1FRl9OT0RFX0NBVEVH T1JZX1VOS05PV04pOwotKwlyZXQgPSBmaWxsX2luX25vZGVfbWFjKG5vZGUsIGEpOwotKwlQUkVM VURFX0ZBSUxfQ0hFQ0s7Ci0rCi0rCWlmIChiZGF0YShhLT5tYWNfcmVzb2x2ZWQpICE9IE5VTEwp IHsKLSsJCXJldCA9IGlkbWVmX2FsZXJ0X25ld19hZGRpdGlvbmFsX2RhdGEoYWxlcnQsICZkYXRh LAotKwkJCUlETUVGX0xJU1RfQVBQRU5EKTsKLSsJCVBSRUxVREVfRkFJTF9DSEVDSzsKLSsJCXJl dCA9IGlkbWVmX2FkZGl0aW9uYWxfZGF0YV9uZXdfbWVhbmluZyhkYXRhLCAmc3RyKTsKLSsJCVBS RUxVREVfRkFJTF9DSEVDSzsKLSsJCXByZWx1ZGVfc3RyaW5nX3NldF9yZWYoc3RyLCAiVmVuZG9y Iik7Ci0rCQlpZG1lZl9hZGRpdGlvbmFsX2RhdGFfc2V0X3R5cGUoZGF0YSwKLSsJCQkJSURNRUZf QURESVRJT05BTF9EQVRBX1RZUEVfU1RSSU5HKTsKLSsJCWlkbWVmX2FkZGl0aW9uYWxfZGF0YV9z ZXRfc3RyaW5nX2R1cChkYXRhLAotKwkJCQkoY2hhciAqKWJkYXRhKGEtPm1hY19yZXNvbHZlZCkp OwotKwl9Ci0rCi0rICAgICAgICAvKiBGaWxsIGluIGluZm9ybWF0aW9uIGFib3V0IHRoZSB0YXJn ZXQgb2YgdGhlIGV2ZW50ICovCi0rICAgICAgICByZXQgPSBpZG1lZl9hbGVydF9uZXdfdGFyZ2V0 KGFsZXJ0LCAmdGFyZ2V0LCAtMSk7Ci0rICAgICAgICBQUkVMVURFX0ZBSUxfQ0hFQ0s7Ci0rCi0r CS8qIEZJWE1FOiBJIGFzc3VtZSB0aGF0IHRoZSB0YXJnZXQgaXMgdGhlIHdob2xlIG5ldHdvcmsg Ki8KLSsJcmV0ID0gaWRtZWZfdGFyZ2V0X25ld19ub2RlKHRhcmdldCwgJm5vZGUyKTsKLSsgICAg ICAgIFBSRUxVREVfRkFJTF9DSEVDSzsKLSsJaWRtZWZfbm9kZV9zZXRfY2F0ZWdvcnkobm9kZSwg SURNRUZfTk9ERV9DQVRFR09SWV9VTktOT1dOKTsKLSsKLSsgICAgICAgIC8qIERlc2NyaWJlIGV2 ZW50ICovCi0rICAgICAgICByZXQgPSBzZXRfY2xhc3NpZmljYXRpb24oYWxlcnQsIG1zZyk7Ci0r ICAgICAgICBQUkVMVURFX0ZBSUxfQ0hFQ0s7Ci0rCi0rICAgICAgICAvKiBBc3Nlc3MgaW1wYWN0 ICovCi0rICAgICAgICBpbXBhY3QgPSBJRE1FRl9JTVBBQ1RfVFlQRV9PVEhFUjsKLSsgICAgICAg IHJldCA9IGRvX2Fzc2Vzc21lbnQoYWxlcnQsIHNldmVyaXR5LCBpbXBhY3QsIGRlc2NyKTsKLSsg ICAgICAgIFBSRUxVREVfRkFJTF9DSEVDSzsKLSsKLSsgICAgICAgIHByZWx1ZGVfY2xpZW50X3Nl bmRfaWRtZWYoY2xpZW50LCBpZG1lZik7Ci0rICAgICAgICBpZG1lZl9tZXNzYWdlX2Rlc3Ryb3ko aWRtZWYpOwotKwotKyAgICAgICAgcmV0dXJuIDA7Ci0rIGVycjoKLSsgICAgICAgIHN5c2xvZyhM T0dfRVJSLCAiYXJwX2FsZXJ0OiBJRE1FRiBlcnJvcjogJXMuXG4iLAotKyAgICAgICAgICAgICAg ICBwcmVsdWRlX3N0cmVycm9yKHJldCkpOwotKyAgICAgICAgaWRtZWZfbWVzc2FnZV9kZXN0cm95 KGlkbWVmKTsKLSsgICAgICAgIHJldHVybiAtMTsKLSt9Ci0rCi0rLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyAqIEZVTkNUSU9O CTogc2V0dXBfb3V0cHV0X3NjcmVlbgotKyAqIERFU0NSSVBUSU9OCTogVGhpcyBmdW5jdGlvbiB3 aWxsIHJlZ2lzdGVyIHRoZSBvdXRwdXQKLSsgKgkJOiBwbHVnaW4uCi0rICogSU5QVVQJOiBOb25l IQotKyAqIFJFVFVSTgk6IDAgLSBTdWNjZXNzCi0rICoJCTogLTEgLSBFcnJvcgotKyAqIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8K LStpbnQKLStzZXR1cF9vdXRwdXRfcHJlbHVkZSAodm9pZCkKLSt7Ci0rICAgIE91dHB1dFBsdWdp biAqcGx1Z2luOwotKwotKwotKyAgICBpZiAoaW5pdF9wcmVsdWRlKCkgPCAwKQotKwlyZXR1cm4g LTE7Ci0rCi0rICAgIC8qIEFsbG9jYXRlIGFuZCBzZXR1cCBwbHVnaW4gZGF0YSByZWNvcmQuICov Ci0rICAgIHBsdWdpbiA9IChPdXRwdXRQbHVnaW4qKW1hbGxvYyhzaXplb2YoT3V0cHV0UGx1Z2lu KSk7Ci0rICAgIHBsdWdpbi0+bmFtZSA9IGJmcm9tY3N0cigicHJlbHVkZSIpOwotKyAgICBwbHVn aW4tPmluaXQgPSBpbml0X291dHB1dF9wcmVsdWRlOwotKyAgICBwbHVnaW4tPnByaW50X2Fzc2V0 ID0gcHJpbnRfYXNzZXRfcHJlbHVkZTsKLSsgICAgcGx1Z2luLT5wcmludF9hcnAgPSBwcmludF9h cnBfYXNzZXRfcHJlbHVkZTsKLSsgICAgcGx1Z2luLT5wcmludF9zdGF0ID0gTlVMTDsKLSsgICAg cGx1Z2luLT5lbmQgPSBlbmRfb3V0cHV0X3ByZWx1ZGU7Ci0rCi0rICAgIC8qIFJlZ2lzdGVyIHBs dWdpbiB3aXRoIGlucHV0IG1vZHVsZS4gKi8KLSsgICAgaWYgKChyZWdpc3Rlcl9vdXRwdXRfcGx1 Z2luKHBsdWdpbikpID09IC0xKSB7Ci0rCWlmIChwbHVnaW4gIT0gTlVMTCkKLSsJICAgIGZyZWUo cGx1Z2luKTsKLSsJbG9nX21lc3NhZ2UoIndhcm5pbmc6ICAncmVnaXN0ZXJfb3V0cHV0X3BsdWdp bicgaW4gZnVuY3Rpb24gJ3NldHVwX291dHB1dF9wcmVsdWRlJyBmYWlsZWQuIik7Ci0rICAgIH0K LSsKLSsgICAgcmV0dXJuIDA7Ci0rfQotKwotKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsgKiBGVU5DVElPTgk6IGluaXRfb3V0 cHV0X3ByZWx1ZGUKLSsgKiBERVNDUklQVElPTgk6IFRoaXMgb3V0cHV0IG1vZHVsZSB3aWxsIGlu aXRpYWxpemUgdGhlIHByZWx1ZGUKLSsgKgkJOiBzdWJzeXN0ZW0uCi0rICogSU5QVVQJOiBOb25l Ci0rICogUkVUVVJOCTogMCAtIFN1Y2Nlc3MKLSsgKgkJOiAtMSAtIEVycm9yCi0rICogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0r aW50Ci0raW5pdF9vdXRwdXRfcHJlbHVkZSAoYnN0cmluZyBhcmdzKQotK3sKLSsgICAgdmVyYm9z ZV9tZXNzYWdlKCJJbml0aWFsaXppbmcgUFJFTFVERSBvdXRwdXQgcHJvY2Vzc29yLiIpOwotKyAg ICBwcm9maWxlID0gc3RyZHVwKChjaGFyICopYmRhdGEoYXJncykpOwotKyAgICByZXR1cm4gMDsK LSt9Ci0rCi0rLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotKyAqIEZVTkNUSU9OCTogcHJpbnRfYXNzZXRfcHJlbHVkZQotKyAqIERF U0NSSVBUSU9OCTogVGhpcyBmdW5jdGlvbiB3aWxsIHNlbmQgYXNzZXQgZXZlbnRzIHRvIHByZWx1 ZGUKLSsgKiBJTlBVVAk6IDAgLSBQb3J0Ci0rICoJCTogMSAtIElQIEFkZHJlc3MKLSsgKgkJOiAy IC0gU2VydmljZQotKyAqCQk6IDMgLSBBcHBsaWNhdGlvbgotKyAqIFJFVFVSTgk6IDAgLSBTdWNj ZXNzCi0rICoJCTogLTEgLSBFcnJvcgotKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLStpbnQKLStwcmludF9hc3NldF9wcmVs dWRlIChBc3NldCAqcmVjKQotK3sKLSsgICAgaWRtZWZfbWVzc2FnZV90ICppZG1lZjsKLSsgICAg aWRtZWZfYWxlcnRfdCAqYWxlcnQ7Ci0rCi0rICAgIGlmIChuZXdfYWxlcnRfY29tbW9uKCZpZG1l ZiwgJmFsZXJ0KSA+PSAwKXsgCi0rCWFzc2V0X2FsZXJ0KHJlYywgaWRtZWYsIGFsZXJ0LCAKLSsJ CSJOZXcgTmV0d29yayBBc3NldCBEZXRlY3RlZCIsIElETUVGX0lNUEFDVF9TRVZFUklUWV9MT1cs Ci0rCQkiQSBzZXJ2aWNlIHRoYXQgd2FzIG5vdCBwcmV2aW91c2x5IGtub3duIGhhcyBiZWVuIHVz ZWQuIik7Ci0rICAgIH0KLSsgICAgcmV0dXJuIDA7Ci0rfQotKwotKwotKy8qIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsgKiBGVU5D VElPTgk6IHByaW50X2FycF9hc3NldF9wcmVsdWRlCi0rICogREVTQ1JJUFRJT04JOiBUaGlzIGZ1 bmN0aW9uIHdpbGwgc2VuZCBBUlAgYXNzZXQgZXZlbnRzIHRvIHByZWx1ZGUKLSsgKiBJTlBVVAk6 IDAgLSBJUCBBZGRyZXNzCi0rICoJCTogMSAtIE1BQyBBZGRyZXNzCi0rICogUkVUVVJOCTogMCAt IFN1Y2Nlc3MKLSsgKgkJOiAtMSAtIEVycm9yCi0rICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotK2ludAotK3ByaW50X2FycF9h c3NldF9wcmVsdWRlIChBcnBBc3NldCAqcmVjKQotK3sKLSsgICAgaWRtZWZfbWVzc2FnZV90ICpp ZG1lZjsKLSsgICAgaWRtZWZfYWxlcnRfdCAqYWxlcnQ7Ci0rCi0rICAgIGlmIChuZXdfYWxlcnRf Y29tbW9uKCZpZG1lZiwgJmFsZXJ0KSA+PSAwKXsgCi0rCWFycF9hbGVydChyZWMsIGlkbWVmLCBh bGVydCwgCi0rCQkiTmV3IE1BQyBBZGRyZXNzIERldGVjdGVkIiwgSURNRUZfSU1QQUNUX1NFVkVS SVRZX0lORk8sCi0rCQkiQSBuZXR3b3JrIGNhcmQgdGhhdCB3YXMgbm90IHByZXZpb3VzbHkga25v d24gaGFzIGJlZW4gdXNlZC4iKTsKLSsgICAgfQotKyAgICByZXR1cm4gMDsKLSt9Ci0rCi0rLyog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyAqIEZVTkNUSU9OCTogZW5kX291dHB1dF9wcmVsdWRlCi0rICogREVTQ1JJUFRJT04JOiBU aGlzIGZ1bmN0aW9uIHdpbGwgZnJlZSB0aGUgcmVzb3VyY2VzIHVzZWQKLSsgKgkJOiBieSB0aGUg cHJlbHVkZSBvdXRwdXQgbW9kdWxlLgotKyAqIElOUFVUCTogTm9uZSEKLSsgKiBSRVRVUk4JOiBO b25lIQotKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gKi8KLStpbnQKLStlbmRfb3V0cHV0X3ByZWx1ZGUgKCkKLSt7Ci0rICAgIHZl cmJvc2VfbWVzc2FnZSgiRW5kaW5nIFBSRUxVREUgT3V0cHV0IFByb2Nlc3Nvci4iKTsKLSsKLSsg ICAgaWYgKGNsaWVudCkKLSsgICAgICAgIHByZWx1ZGVfY2xpZW50X2Rlc3Ryb3koY2xpZW50LCBQ UkVMVURFX0NMSUVOVF9FWElUX1NUQVRVU19TVUNDRVNTKTsKLSsgICAgZnJlZShwcm9maWxlKTsK LSsKLSsgICAgcmV0dXJuIDA7Ci0rfQotKwotZGlmZiAtdXJwTiBwYWRzLTEuMi5vcmlnL3NyYy9v dXRwdXQvb3V0cHV0LXByZWx1ZGUuaCBwYWRzLTEuMi9zcmMvb3V0cHV0L291dHB1dC1wcmVsdWRl LmgKLS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9vdXRwdXQvb3V0cHV0LXByZWx1ZGUuaAkxOTY5LTEy LTMxIDE5OjAwOjAwLjAwMDAwMDAwMCAtMDUwMAotKysrIHBhZHMtMS4yL3NyYy9vdXRwdXQvb3V0 cHV0LXByZWx1ZGUuaAkyMDA4LTA3LTA3IDE1OjQxOjUwLjAwMDAwMDAwMCAtMDQwMAotQEAgLTAs MCArMSw1NCBAQAotKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0rICogb3V0cHV0LXByZWx1ZGUuaAotKyAq Ci0rICogVGhpcyBtb2R1bGUgY29udGFpbnMgdGhlIG91dHB1dCBtZWNoYW5pc20gZm9yIFBBRFMg dG8gc2VuZCBJRE1FRiBhbGVydHMKLSsgKiB2aWEgdGhlIHByZWx1ZGUgbGlicmFyeS4gCi0rICoK LSsgKiBDb3B5cmlnaHQgKEMpIDIwMDggU3RldmUgR3J1YmIgPHNncnViYkByZWRoYXQuY29tPgot KyAqCi0rICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyAqIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICog KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsgKgotKyAqIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAq IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCi0rICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQotKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCi0rICoKLSsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rICogRm91bmRhdGlvbiwgSW5j LiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCi0rICoKLSsgKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCi0rI2lmbmRlZiBPVVRQVVRfUFJFTFVERV9IRUFERVIKLSsjZGVmaW5lIE9V VFBVVF9QUkVMVURFX0hFQURFUgotKwotKy8qIERFRklORVMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSsjaWZkZWYgTElOVVgKLSsjaWZuZGVmIF9fRkFWT1Jf QlNECi0rI2RlZmluZSBfX0ZBVk9SX0JTRAotKyNlbmRpZgotKyNpZm5kZWYgX0JTRF9TT1VSQ0UK LSsjZGVmaW5lIF9CU0RfU09VUkNFCi0rI2VuZGlmCi0rI2VuZGlmIC8qIGlmZGVmIExJTlVYICov Ci0rCi0rCi0rLyogSU5DTFVERVMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAqLwotKyNpbmNsdWRlICJvdXRwdXQuaCIKLSsKLSsKLSsvKiBQUk9UT1RZUEVTIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0rI2lmZGVmIEhBVkVfUFJFTFVE RQotK2ludCBzZXR1cF9vdXRwdXRfcHJlbHVkZSAodm9pZCk7Ci0rI2Vsc2UKLSsjZGVmaW5lIHNl dHVwX291dHB1dF9wcmVsdWRlKCkgMAotKyNlbmRpZgotK2ludCBpbml0X291dHB1dF9wcmVsdWRl IChic3RyaW5nIGFyZ3MpOwotK2ludCBwcmludF9hc3NldF9wcmVsdWRlIChBc3NldCAqcmVjKTsK LStpbnQgcHJpbnRfYXJwX2Fzc2V0X3ByZWx1ZGUgKEFycEFzc2V0ICpyZWMpOwotK2ludCBlbmRf b3V0cHV0X3ByZWx1ZGUgKHZvaWQpOwotKwotKyNlbmRpZgotKwotZGlmZiAtdXJwTiBwYWRzLTEu Mi5vcmlnL3NyYy9wYWRzLmMgcGFkcy0xLjIvc3JjL3BhZHMuYwotLS0tIHBhZHMtMS4yLm9yaWcv c3JjL3BhZHMuYwkyMDA4LTA3LTAyIDA5OjI0OjUzLjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMt MS4yL3NyYy9wYWRzLmMJMjAwOC0wNy0wNyAxNTo0MTo1MC4wMDAwMDAwMDAgLTA0MDAKLUBAIC00 Myw2ICs0MywxOCBAQCBpbnQgcHJvZ19hcmdjOwotIAotIC8qIEZ1bmN0aW9uIERlY2xhcmF0aW9u cyAqLwotIHN0YXRpYyBpbnQgcHJvY2Vzc19jbWRsaW5lIChpbnQgYXJnYywgY2hhciAqYXJndltd KTsKLStzdGF0aWMgdm9pZCBzZXRfcHJvY2Vzc29yIChwY2FwX3QgKnRoaXNfaGFuZGxlKTsKLStz dGF0aWMgdm9pZCBwcmludF9oZWFkZXIodm9pZCk7Ci0rc3RhdGljIHZvaWQgcHJpbnRfdXNhZ2Uo dm9pZCk7Ci0rc3RhdGljIHZvaWQgcHJpbnRfdmVyc2lvbih2b2lkKTsKLStzdGF0aWMgaW50ICBp bml0X3BhZHModm9pZCk7Ci0rc3RhdGljIGludCAgbWFpbl9wYWRzKHZvaWQpOwotKwotK3N0YXRp YyB2b2lkIHNpZ190ZXJtX2hhbmRsZXIoaW50IHNpZ25hbCk7Ci0rc3RhdGljIHZvaWQgc2lnX2lu dF9oYW5kbGVyKGludCBzaWduYWwpOwotK3N0YXRpYyB2b2lkIHNpZ19xdWl0X2hhbmRsZXIoaW50 IHNpZ25hbCk7Ci0rc3RhdGljIHZvaWQgc2lnX2h1cF9oYW5kbGVyKGludCBzaWduYWwpOwotKwot IAotIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSAgKiBGVU5DVElPTiAgICAgOiBwcm9jZXNzX3BrdAotQEAgLTY4LDcgKzgwLDcg QEAgcHJvY2Vzc19wa3QgKHVfY2hhciAqYXJncywgY29uc3Qgc3RydWN0IAotICAqIElOUFVUICAg ICAgICA6IFBDQVAgSGFuZGxlCi0gICogUkVUVVJOICAgICAgIDogTm9uZSEKLSAgKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0t dm9pZAotK3N0YXRpYyB2b2lkCi0gc2V0X3Byb2Nlc3NvciAocGNhcF90ICp0aGlzX2hhbmRsZSkK LSB7Ci0gICAgIGludCBkYXRhbGluazsKLUBAIC0xMDAsNyArMTEyLDcgQEAgc2V0X3Byb2Nlc3Nv ciAocGNhcF90ICp0aGlzX2hhbmRsZSkKLSAgKiBGVU5DVElPTiAgICAgOiBwcmludF9oZWFkZXIK LSAgKiBERVNDUklQVElPTiAgOiBQcmludHMgaW5pdGlhbCBoZWFkZXIuCi0gICogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotLXZv aWQKLStzdGF0aWMgdm9pZAotIHByaW50X2hlYWRlciAoKQotIHsKLSAgICAgcHJpbnRmKCJwYWRz IC0gUGFzc2l2ZSBBc3NldCBEZXRlY3Rpb24gU3lzdGVtXG4iKTsKLUBAIC0xMTMsNyArMTI1LDcg QEAgcHJpbnRfaGVhZGVyICgpCi0gICogRlVOQ1RJT04gICAgOiBwcmludF91c2FnZQotICAqIERF U0NSSVBUSU9OICAgIDogUHJpbnRzIHRoZSBQcm9ncmFtIFVzYWdlCi0gICogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotLXZvaWQK LStzdGF0aWMgdm9pZAotIHByaW50X3VzYWdlKCkKLSB7Ci0gICAgIHByaW50ZigiVXNhZ2U6XG4i Ci1AQCAtMTQ4LDcgKzE2MCw3IEBAIHByaW50X3VzYWdlKCkKLSAgKiBERVNDUklQVElPTiAgOiBU aGlzIGZ1bmN0aW9uIHdpbGwgcHJpbnQgdmVyc2lvbgotICAqICAgICAgICAgICAgICA6IHZlcnNp b24gaW5mb3JtYXRpb24uCi0gICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotLXZvaWQKLStzdGF0aWMgdm9pZAotIHByaW50X3Zl cnNpb24gKHZvaWQpCi0gewotICAgICBwcmludGYoIkJ1aWxkOlxuIik7Ci1AQCAtMTYyLDcgKzE3 NCw3IEBAIHByaW50X3ZlcnNpb24gKHZvaWQpCi0gfQotIAotIC8qIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gKiBGVU5DVElPTiAg ICAgOiBpbml0X3BhZHMKLSsgKiBGVU5DVElPTiAgICAgOiBpbml0X2djCi0gICogREVTQ1JJUFRJ T04gIDogVGhpcyBmdW5jdGlvbiB3aWxsIGluaXRpYWxpemUgUEFEUy4KLSAgKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0gdm9p ZCBpbml0X2djKHZvaWQpCi1AQCAtMTg1LDggKzE5Nyw5IEBAIHZvaWQgaW5pdF9nYyh2b2lkKQot IC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSAgKiBGVU5DVElPTiAgICAgOiBpbml0X3BhZHMKLSAgKiBERVNDUklQVElPTiAgOiBU aGlzIGZ1bmN0aW9uIHdpbGwgaW5pdGlhbGl6ZSBQQURTLgotKyAqIFJFVFVSTiAgICAgICA6IDAg c3VjY2VzcywgLTEgZmFpbHVyZQotICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLS12b2lkCi0rc3RhdGljIGludAotIGluaXRf cGFkcyAodm9pZCkKLSB7Ci0gICAgIC8qIEluaXQgZ2xvYmFsIGNvbmZpZyB0byBrbm93biBzdGF0 ZSAqLwotQEAgLTE5OSw3ICsyMTIsOCBAQCBpbml0X3BhZHMgKHZvaWQpCi0gICAgICAgICBwcmlu dF9oZWFkZXIoKTsKLSAKLSAgICAgLyogSW5pdGlhbGl6ZSBPdXRwdXQgTW9kdWxlICovCi0tICAg IGluaXRfb3V0cHV0KCk7Ci0rICAgIGlmIChpbml0X291dHB1dCgpIDwgMCkKLSsgICAgICAgIHJl dHVybiAtMTsKLSAKLSAgICAgLyogUHJvY2VzcyB0aGUgY29uZmlndXJhdGlvbiBmaWxlLiAqLwot ICAgICBpZiAoZ2MuY29uZl9maWxlKSB7Ci1AQCAtMjMwLDcgKzI0NCwxMCBAQCBpbml0X3BhZHMg KHZvaWQpCi0gCi0gICAgIC8qIERhZW1vbiBNb2RlOiAgZm9yayBjaGlsZCBwcm9jZXNzICovCi0g ICAgIGlmIChnYy5kYWVtb25fbW9kZSkgewotLSAgICAgICAgZGFlbW9uaXplKCk7Ci0rICAgICAg ICB2ZXJib3NlX21lc3NhZ2UoIlstXSBEYWVtb25pemluZy4uLlxuIik7Ci0rICAgICAgICBpZiAo ZGFlbW9uKDAsIDApIDwgMCkgewotKyAgICAgICAgICAgIGVycl9tZXNzYWdlKCJEYWVtb25pemUg ZmFpbGVkIik7Ci0rICAgICAgICB9Ci0gICAgICAgICBpbml0X3BpZF9maWxlKGdjLnBpZF9maWxl LCBnYy5wcml2X3VzZXIsIGdjLnByaXZfZ3JvdXApOwotICAgICB9Ci0gCi1AQCAtMjM5LDE3ICsy NTYsMjEgQEAgaW5pdF9wYWRzICh2b2lkKQotICAgICAodm9pZCkgc2lnbmFsKFNJR0lOVCwgc2ln X2ludF9oYW5kbGVyKTsKLSAgICAgKHZvaWQpIHNpZ25hbChTSUdRVUlULCBzaWdfcXVpdF9oYW5k bGVyKTsKLSAgICAgKHZvaWQpIHNpZ25hbChTSUdIVVAsIHNpZ19odXBfaGFuZGxlcik7Ci0rCi0r ICAgIHJldHVybiAwOwotIH0KLSAKLSAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICogRlVOQ1RJT04gICAgIDogbWFpbl9wYWRz Ci0gICogREVTQ1JJUFRJT04gIDogVGhpcyBpcyB0aGUgbWFpbiBmdW5jdGlvbiBmb3IgUEFEUy4K LSsgKiBSRVRVUk4gICAgICAgOiAwIHN1Y2Nlc3MsIC0xIGZhaWx1cmUKLSAgKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0tdm9p ZAotK3N0YXRpYyBpbnQKLSBtYWluX3BhZHMgKHZvaWQpCi0gewotICAgICAvKiBJbml0aWFsaXpl ICovCi0tICAgIGluaXRfcGFkcygpOwotKyAgICBpZiAoaW5pdF9wYWRzKCkgPCAwKQotKyAgICAg ICAgcmV0dXJuIC0xOwotIAotICAgICBpZiAoZ2MucGNhcF9maWxlKSB7Ci0gICAgICAgICAvKiBS ZWFkIGZyb20gUENBUCBmaWxlIHNwZWNpZmllZCBieSAnLXInIHN3aXRjaC4gKi8KLUBAIC0zMjQs NiArMzQ1LDcgQEAgbWFpbl9wYWRzICh2b2lkKQotIAotICAgICAvKiBFbmQgKi8KLSAgICAgZW5k X3BhZHMoKTsKLSsgICAgcmV0dXJuIDA7Ci0gfQotIAotIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUBAIC00OTAsMjUgKzUxMiwy NSBAQCBwcm9jZXNzX2NtZGxpbmUgKGludCBhcmdjLCBjaGFyICphcmd2W10pCi0gICogaW5pdGlh bGl6ZWQgaW4gJ2luaXRfcGFkcycgYW5kIHdpbGwgcGVyZm9ybSBhIGZ1bmN0aW9uCi0gICogYmFz ZWQgb24gdGhlIHNpZ25hbC4KLSAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0tdm9pZAotK3N0YXRpYyB2b2lkCi0gc2lnX3Rl cm1faGFuZGxlcihpbnQgc2lnbmFsKQotIHsKLSAgICAgZW5kX3BhZHMoKTsKLSB9Ci0gCi0tdm9p ZAotK3N0YXRpYyB2b2lkCi0gc2lnX2ludF9oYW5kbGVyKGludCBzaWduYWwpCi0gewotICAgICBl bmRfcGFkcygpOwotIH0KLSAKLS12b2lkCi0rc3RhdGljIHZvaWQKLSBzaWdfcXVpdF9oYW5kbGVy KGludCBzaWduYWwpCi0gewotICAgICBlbmRfcGFkcygpOwotIH0KLSAKLS12b2lkCi0rc3RhdGlj IHZvaWQKLSBzaWdfaHVwX2hhbmRsZXIoaW50IHNpZ25hbCkKLSB7Ci0gICAgIC8qIFRoZSBIVVAg c2lnbmFsIGhhcyBub3QgYmVlbiBpbXBsZW1lbnRlZCB5ZXQuICovCi1AQCAtNTI2LDkgKzU0OCw3 IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSAgICAgcHJvZ19hcmd2ID0gYXJndjsK LSAKLSAgICAgLyogTWFpbiBQcm9ncmFtICovCi0tICAgIG1haW5fcGFkcygpOwotLQotLSAgICBy ZXR1cm4oMCk7Ci0rICAgIHJldHVybiBtYWluX3BhZHMoKTsKLSB9Ci0gCi0gLyogdmltOmV4cGFu ZHRhYjpjaW5kZW50OnNtYXJ0aW5kZW50OnRzPTQ6dHc9MDpzdz00OgotZGlmZiAtdXJwTiBwYWRz LTEuMi5vcmlnL3NyYy9wYWRzLmggcGFkcy0xLjIvc3JjL3BhZHMuaAotLS0tIHBhZHMtMS4yLm9y aWcvc3JjL3BhZHMuaAkyMDA4LTA2LTI5IDIwOjE2OjMwLjAwMDAwMDAwMCAtMDQwMAotKysrIHBh ZHMtMS4yL3NyYy9wYWRzLmgJMjAwOC0wNy0wNyAxNTo0MTo1MC4wMDAwMDAwMDAgLTA0MDAKLUBA IC0yNSw2ICsyNSw4IEBACi0gICogJElkOiBwYWRzLTEuMi1wcmVsdWRlLnBhdGNoLHYgMS4xIDIw MDgvMDgvMTMgMTc6MzU6MTEgc2dydWJiIEV4cCAkCi0gICoKLSAgKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov Ci0rI2lmbmRlZiBQQURTX0hFQURFUgotKyNkZWZpbmUgUEFEU19IRUFERVIKLSAKLSAvKiBERUZJ TkVTIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0gI2lmZGVm IExJTlVYCi1AQCAtNTEsMjUgKzUzLDE5IEBACi0gLyogVFlQRURFRlMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotIHR5cGVkZWYgdm9pZCAoKnByb2NfdCkoY29u c3Qgc3RydWN0IHBjYXBfcGt0aGRyICosIGNvbnN0IHVfY2hhciAqKTsKLSAKLStleHRlcm4gY2hh ciAqKnByb2dfYXJndjsKLStleHRlcm4gaW50IHByb2dfYXJnYzsKLStleHRlcm4gR0MgZ2M7Ci0r Ci0gCi0gLyogUFJPVE9UWVBFUyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSAqLwotIHZvaWQgcHJvY2Vzc19wa3QodV9jaGFyICphcmdzLCBjb25zdCBzdHJ1Y3QgcGNhcF9w a3RoZHIqIHBrdGhkciwgY29uc3QgdV9jaGFyKiBwYWNrZXQpOwotLXZvaWQgc2V0X3Byb2Nlc3Nv ciAocGNhcF90ICp0aGlzX2hhbmRsZSk7Ci0tdm9pZCBwcmludF9oZWFkZXIodm9pZCk7Ci0tdm9p ZCBwcmludF91c2FnZSh2b2lkKTsKLS12b2lkIHByaW50X3ZlcnNpb24odm9pZCk7Ci0tdm9pZCBp bml0X3BhZHModm9pZCk7Ci0tdm9pZCBtYWluX3BhZHModm9pZCk7Ci0gdm9pZCBlbmRfcGFkcyh2 b2lkKTsKLSAKLS12b2lkIHNpZ190ZXJtX2hhbmRsZXIoaW50IHNpZ25hbCk7Ci0tdm9pZCBzaWdf aW50X2hhbmRsZXIoaW50IHNpZ25hbCk7Ci0tdm9pZCBzaWdfcXVpdF9oYW5kbGVyKGludCBzaWdu YWwpOwotLXZvaWQgc2lnX2h1cF9oYW5kbGVyKGludCBzaWduYWwpOwotLQotIC8qIHBhY2tldC5o IExMQyBwcm90b3R5cGVzICovCi0gdm9pZCBwcm9jZXNzX2V0aCAoY29uc3Qgc3RydWN0IHBjYXBf cGt0aGRyKiBwa3RoZHIsIGNvbnN0IHVfY2hhciogcGFja2V0KTsKLSB2b2lkIHByb2Nlc3Nfc2xs IChjb25zdCBzdHJ1Y3QgcGNhcF9wa3RoZHIqIHBrdGhkciwgY29uc3QgdV9jaGFyKiBwYWNrZXQp OwotIAotIC8qIHZpbTpleHBhbmR0YWI6Y2luZGVudDpzbWFydGluZGVudDp0cz00OnR3PTA6c3c9 NDoKLSAgKi8KLSsjZW5kaWYKLWRpZmYgLXVycE4gcGFkcy0xLjIub3JpZy9zcmMvdXRpbC5jIHBh ZHMtMS4yL3NyYy91dGlsLmMKLS0tLSBwYWRzLTEuMi5vcmlnL3NyYy91dGlsLmMJMjAwOC0wNy0w NyAxMzo1NjoxMC4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvdXRpbC5jCTIwMDgt MDctMDcgMTU6NDE6NTAuMDAwMDAwMDAwIC0wNDAwCi1AQCAtNzUsMzggKzc1LDYgQEAgY2hvbXAg KGNoYXIgKnN0cmluZywgaW50IHNpemUpCi0gfQotIAotIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gKiBGVU5DVElPTiAgICAg OiBkYWVtb25pemUKLS0gKiBERVNDUklQVElPTiAgOiBUaGlzIGZ1bmN0aW9uIHdpbGwgcGxhY2Ug dGhlIGFwcGxpY2F0aW9uIGluCi0tICogICAgICAgICAgICAgIDogdGhlIGJhY2tncm91bmQuCi0t ICogSU5QVVQgICAgICAgIDogTm9uZSEKLS0gKiBSRVRVUk4gICAgICAgOiBOb25lIQotLSAqIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g Ki8KLS12b2lkCi0tZGFlbW9uaXplICgpCi0tewotLSAgICBwaWRfdCBwaWQ7Ci0tCi0tICAgIGlm ICghZ2MuZGFlbW9uX21vZGUpCi0tICAgICAgICBwcmludGYoIlstXSBEYWVtb25pemluZy4uLlxu Iik7Ci0tCi0tICAgIHBpZCA9IGZvcmsoKTsKLS0gICAgaWYgKHBpZCA+IDApIHsKLS0gICAgICAg IC8qIFBhcmVudCAqLwotLSAgICAgICAgZXhpdCgwKTsKLS0gICAgfSBlbHNlIGlmIChwaWQgPCAw KSB7Ci0tICAgICAgICAvKiBFcnJvciAqLwotLSAgICAgICAgZXJyX21lc3NhZ2UoImZvcmsiKTsK LS0gICAgICAgIGV4aXQoMCk7Ci0tICAgIH0gZWxzZSB7Ci0tICAgICAgICAvKiBDaGlsZCAqLwot LSAgICAgICAgc2V0c2lkKCk7Ci0tICAgICAgICBjbG9zZSgwKTsKLS0gICAgICAgIGNsb3NlKDEp OwotLSAgICAgICAgY2xvc2UoMik7Ci0tICAgIH0KLS19Ci0tCi0tLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAqIEZVTkNUSU9O ICAgICA6IGluaXRfcGlkX2ZpbGUKLSAgKiBERVNDUklQVElPTiAgOiBUaGlzIGZ1bmN0aW9uIHdp bGwgZ2VuZXJhdGUgYSBmaWxlCi0gICogICAgICAgICAgICAgIDogY29udGFpbmluZyB0aGUgYXBw bGljYXRpb24ncyBQSUQuCi1kaWZmIC11cnBOIHBhZHMtMS4yLm9yaWcvc3JjL3V0aWwuaCBwYWRz LTEuMi9zcmMvdXRpbC5oCi0tLS0gcGFkcy0xLjIub3JpZy9zcmMvdXRpbC5oCTIwMDgtMDctMDcg MTM6NTY6MTAuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL3V0aWwuaAkyMDA4LTA3 LTA3IDE1OjQxOjUwLjAwMDAwMDAwMCAtMDQwMAotQEAgLTM5LDEyICszOSwyNyBAQAotIC8qIFBS T1RPVFlQRVMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSB2b2lk IHN0cmlwX2NvbW1lbnQgKGNoYXIgKnN0cmluZyk7Ci0gaW50IGNob21wIChjaGFyICpzdHJpbmcs IGludCBzaXplKTsKLS12b2lkIGRhZW1vbml6ZSAodm9pZCk7Ci0gdm9pZCBpbml0X3BpZF9maWxl IChic3RyaW5nIHBpZF9maWxlLCBic3RyaW5nIHVzZXIsIGJzdHJpbmcgZ3JvdXApOwotIGNoYXIg KmNvcHlfYXJndihyZWdpc3RlciBjaGFyICoqYXJndik7Ci0tdm9pZCBsb2dfbWVzc2FnZSAoY29u c3QgY2hhciAqbXNnLCAuLi4pOwotLXZvaWQgZXJyX21lc3NhZ2UgKGNvbnN0IGNoYXIgKm1zZywg Li4uKTsKLS12b2lkIHZlcmJvc2VfbWVzc2FnZSAoY29uc3QgY2hhciAqbXNnLCAuLi4pOwotK3Zv aWQgbG9nX21lc3NhZ2UgKGNvbnN0IGNoYXIgKm1zZywgLi4uKQotKyNpZmRlZiBfX0dOVUNfXwot KyAgICAgICAgX19hdHRyaWJ1dGVfXyAoKGZvcm1hdCAocHJpbnRmLCAxLCAyKSkpOwotKyNlbHNl Ci0rICAgICAgICA7Ci0rI2VuZGlmCi0rdm9pZCBlcnJfbWVzc2FnZSAoY29uc3QgY2hhciAqbXNn LCAuLi4pCi0rI2lmZGVmIF9fR05VQ19fCi0rICAgICAgICBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0 IChwcmludGYsIDEsIDIpKSk7Ci0rI2Vsc2UKLSsgICAgICAgIDsKLSsjZW5kaWYKLSt2b2lkIHZl cmJvc2VfbWVzc2FnZSAoY29uc3QgY2hhciAqbXNnLCAuLi4pCi0rI2lmZGVmIF9fR05VQ19fCi0r ICAgICAgICBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChwcmludGYsIDEsIDIpKSk7Ci0rI2Vsc2UK LSsgICAgICAgIDsKLSsjZW5kaWYKLSsKLSAjaWZuZGVmIEhBVkVfU1RSTENQWQotIHNpemVfdCBz dHJsY3B5KGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3JjLCBzaXplX3Qgc2l6ZSk7Ci0gI2VuZGlm CgpkaWZmIC0tZ2l0IGEvcGFkcy0xLjItcHRocmVhZHMucGF0Y2ggYi9wYWRzLTEuMi1wdGhyZWFk cy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTNlZGU2NC4uMDAwMDAwMAot LS0gYS9wYWRzLTEuMi1wdGhyZWFkcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAg QEAKLWRpZmYgLXVyIHBhZHMtMS4yLm9yaWcvbGliL2JzdHJpbmcvTWFrZWZpbGUuYW0gcGFkcy0x LjIvbGliL2JzdHJpbmcvTWFrZWZpbGUuYW0KLS0tLSBwYWRzLTEuMi5vcmlnL2xpYi9ic3RyaW5n L01ha2VmaWxlLmFtCTIwMDgtMTAtMjYgMDk6NTQ6MTAuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFk cy0xLjIvbGliL2JzdHJpbmcvTWFrZWZpbGUuYW0JMjAwOC0xMC0yOCAwOTo0MDo1MC4wMDAwMDAw MDAgLTA0MDAKLUBAIC0xLDUgKzEsNiBAQAotICMgJElkOiBNYWtlZmlsZS5hbSx2IDEuMSAyMDA1 LzAyLzEzIDE3OjU0OjU4IG1hdHRzaGVsdG9uIEV4cCAkCi0gQVVUT01BS0VfT1BUSU9OUz1mb3Jl aWduIG5vLWRlcGVuZGVuY2llcwotIG5vaW5zdF9MSUJSQVJJRVMgPSBsaWJic3RyaW5nLmEKLSts aWJic3RyaW5nX2FfQ0ZMQUdTID0gLXB0aHJlYWQKLSBsaWJic3RyaW5nX2FfU09VUkNFUyA9IGJz dHJsaWIuYyBic3RybGliLmggYnN0cmF1eC5jIGJzdHJhdXguaCB1dGlsLmMgdXRpbC5oCi0gSU5D TFVERVMgPSAtSSQodG9wX3NyY2RpcikgLUkkKHRvcF9zcmNkaXIpL3NyYwotZGlmZiAtdXIgcGFk cy0xLjIub3JpZy9zcmMvTWFrZWZpbGUuYW0gcGFkcy0xLjIvc3JjL01ha2VmaWxlLmFtCi0tLS0g cGFkcy0xLjIub3JpZy9zcmMvTWFrZWZpbGUuYW0JMjAwOC0xMC0yNiAwOTo1NDoxMC4wMDAwMDAw MDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvTWFrZWZpbGUuYW0JMjAwOC0xMC0yOCAwOTo0MTo0 My4wMDAwMDAwMDAgLTA0MDAKLUBAIC0xLDYgKzEsNyBAQAotICMjICRJZDogTWFrZWZpbGUuYW0s diAxLjMgMjAwNS8wMi8xNyAxNjoyOTo1NCBtYXR0c2hlbHRvbiBFeHAgJAotIEFVVE9NQUtFX09Q VElPTlM9Zm9yZWlnbiBuby1kZXBlbmRlbmNpZXMKLSBiaW5fUFJPR1JBTVMgPSBwYWRzCi0rcGFk c19DRkxBR1MgPSAtcHRocmVhZAotIHBhZHNfU09VUkNFUyA9IHBhZHMuYyBwYWRzLmggXAotIAkg ICAgICAgc3RvcmFnZS5jIHN0b3JhZ2UuaCBcCi0gICAgICAgICAgICAgICAgaWRlbnRpZmljYXRp b24uYyBpZGVudGlmaWNhdGlvbi5oIFwKLUBAIC0xMCw2ICsxMSw3IEBACi0gCSAgICAgICBjb25m aWd1cmF0aW9uLmMgY29uZmlndXJhdGlvbi5oIFwKLSAgICAgICAgICAgICAgICB1dGlsLmMgdXRp bC5oIFwKLSAgICAgICAgICAgICAgICBnbG9iYWwuaAotK3BhZHNfTERGTEFHUyA9IC1wdGhyZWFk Ci0gcGFkc19MREFERCA9ICQodG9wX3NyY2RpcikvbGliL2JzdHJpbmcvbGliYnN0cmluZy5hIG91 dHB1dC9saWJvdXRwdXQuYQotIGJpbl9TQ1JJUFRTID0gcGFkcy1yZXBvcnQKLSAKLWRpZmYgLXVy IHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9NYWtlZmlsZS5hbSBwYWRzLTEuMi9zcmMvb3V0cHV0 L01ha2VmaWxlLmFtCi0tLS0gcGFkcy0xLjIub3JpZy9zcmMvb3V0cHV0L01ha2VmaWxlLmFtCTIw MDgtMTAtMjYgMDk6NTQ6MTAuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL291dHB1 dC9NYWtlZmlsZS5hbQkyMDA4LTEwLTI4IDA5OjQwOjUwLjAwMDAwMDAwMCAtMDQwMAotQEAgLTEs NiArMSw3IEBACi0gIyAkSWQ6IE1ha2VmaWxlLmFtLHYgMS4xIDIwMDUvMDIvMTAgMDY6MDU6MDYg bWF0dHNoZWx0b24gRXhwICQKLSBBVVRPTUFLRV9PUFRJT05TPWZvcmVpZ24gbm8tZGVwZW5kZW5j aWVzCi0gbm9pbnN0X0xJQlJBUklFUyA9IGxpYm91dHB1dC5hCi0rbGlib3V0cHV0X2FfQ0ZMQUdT ID0gLXB0aHJlYWQKLSBsaWJvdXRwdXRfYV9TT1VSQ0VTID0gb3V0cHV0LmMgb3V0cHV0LmggXAot IAkJICAgICAgb3V0cHV0LXNjcmVlbi5jIG91dHB1dC1zY3JlZW4uaCBcCi0gICAgICAgICAgICAg ICAgICAgICAgIG91dHB1dC1jc3YuYyBvdXRwdXQtY3N2LmggXAoKZGlmZiAtLWdpdCBhL3BhZHMt MS4yLXJlYWRvbmx5LnBhdGNoIGIvcGFkcy0xLjItcmVhZG9ubHkucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAzMDQwOTcuLjAwMDAwMDAKLS0tIGEvcGFkcy0xLjItcmVhZG9u bHkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNTMgKzAsMCBAQAotZGlmZiAtdXJwIHBhZHMt MS4yLm9yaWcvZG9jL3BhZHMuY29uZi44IHBhZHMtMS4yL2RvYy9wYWRzLmNvbmYuOAotLS0tIHBh ZHMtMS4yLm9yaWcvZG9jL3BhZHMuY29uZi44CTIwMDgtMDctMDggMTQ6Mjg6MjkuMDAwMDAwMDAw IC0wNDAwCi0rKysgcGFkcy0xLjIvZG9jL3BhZHMuY29uZi44CTIwMDgtMDctMDggMTc6MzY6NDEu MDAwMDAwMDAwIC0wNDAwCi1AQCAtNjksOSArNjksMTIgQEAgYXNzZXRzIGZvdW5kIGluIHRoZXNl IG5ldHdvcmtzIHdpbGwgYmUgcgotIFRoaXMgb3V0cHV0IHBsdWdpbiBkaXNwbGF5cyBQQURTIGRh dGEgdG8gdGhlIHNjcmVlbi4gIFdoZW4gdXNpbmcgdGhlCi0gY29uZmlndXJhdGlvbiBmaWxlLCBp dCBkZWZhdWx0cyB0byBvZmYuCi0gCi0tLklQICJvdXRwdXQgY3N2OiA8ZmlsZW5hbWU+IgotKy5J UCAib3V0cHV0IGNzdjogPGZpbGVuYW1lPiBbcmVhZG9ubHldIgotIFRoaXMgb3V0cHV0IHBsdWdp biB3cml0ZXMgUEFEUyBkYXRhIHRvIGEgQ1NWIGZpbGUuICBPcHRpb25hbGx5LCBhIENTViBmaWxl bmFtZQotLWNhbiBiZSBzcGVjaWZpZWQgYXMgYW4gYXJndW1lbnQuCi0rY2FuIGJlIHNwZWNpZmll ZCBhcyBhbiBhcmd1bWVudC4gSWYgeW91IHdhbnQgdGhlIGZpbGUgdXNlZCBvbmx5IHRvIHBvcHVs YXRlCi0rdGhlIGludGVybmFsIGtub3duIGFzc2V0cyBsaXN0IGJ1dCBuZXZlciBiZSB1cGRhdGVk LCB0aGVuIHVzZSB0aGUgcmVhZG9ubHkKLStvcHRpb24uIFRoaXMgd291bGQgYmUgaGFuZHkgd2hl biB5b3UgaGF2ZSBhIGJhc2VsaW5lIGFuZCB3YW50IHRvIHVzZSBpdCBmb3IKLStpbnRydXNpb24g ZGV0ZWN0aW9uLgotIAotIC5JUCAib3V0cHV0IGZpZm86IDxmaWxlbmFtZT4iCi0gVGhpcyBvdXRw dXQgcGx1Z2luIHdyaXRlcyBQQURTIGRhdGEgdG8gYSBGSUZPIGZpbGUuICBPcHRpb25hbGx5LCBh IEZJRk8KLWRpZmYgLXVycCBwYWRzLTEuMi5vcmlnL2V0Yy9wYWRzLmNvbmYgcGFkcy0xLjIvZXRj L3BhZHMuY29uZgotLS0tIHBhZHMtMS4yLm9yaWcvZXRjL3BhZHMuY29uZgkyMDA4LTA3LTA4IDE0 OjI4OjI5LjAwMDAwMDAwMCAtMDQwMAotKysrIHBhZHMtMS4yL2V0Yy9wYWRzLmNvbmYJMjAwOC0w Ny0wOCAxNzozNjo1MS4wMDAwMDAwMDAgLTA0MDAKLUBAIC02Nyw3ICs2Nyw5IEBAIHBpZF9maWxl IC92YXIvcnVuL3BhZHMucGlkCi0gIyBvdXRwdXQ6ICBjc3YKLSAjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSAjIFRoaXMgb3V0cHV0IHBsdWdpbiB3cml0ZXMgUEFEUyBkYXRhIHRvIGEgQ1NW IGZpbGUuICBPcHRpb25hbGx5LCBhIENTViBmaWxlbmFtZQotLSMgY2FuIGJlIHNwZWNpZmllZCBh cyBhbiBhcmd1bWVudC4KLSsjIGNhbiBiZSBzcGVjaWZpZWQgYXMgYW4gYXJndW1lbnQuIElmIHlv dSB3YW50IHRoZSBmaWxlIHVzZWQgb25seSB0byBwb3B1bGF0ZQotKyMgdGhlIGludGVybmFsIGtu b3duIGFzc2V0cyBsaXN0IGJ1dCBuZXZlciBiZSB1cGRhdGVkLCB0aGVuIGFkZCB0aGUgcmVhZG9u bHkKLSsjIG9wdGlvbi4KLSBvdXRwdXQgY3N2OiAvZXRjL3BhZHMtYXNzZXRzLmNzdgotIAotICMg b3V0cHV0OiAgZmlmbwotQEAgLTgxLDUgKzgzLDQgQEAgb3V0cHV0IGNzdjogL2V0Yy9wYWRzLWFz c2V0cy5jc3YKLSAjIFRoaXMgb3V0cHV0IHBsdWdpbiB3cml0ZXMgUEFEUyBkYXRhIGFzIElETUVG IGFsZXJ0cyB2aWEgcHJlbHVkZS4gIE9wdGlvbmFsbHkKLSAjIHlvdSBjYW4gYWRkIGEgcHJvZmls ZSBuYW1lIGlmIHlvdSB3YW50IHNvbWV0aGluZyBkaWZmZXJlbnQgdGhhbiB0aGUgZGVmYXVsdAot ICMgb2YgcGFkcy4KLS0jCi0gI291dHB1dCBwcmVsdWRlOiBwYWRzCi1kaWZmIC11cnAgcGFkcy0x LjIub3JpZy9zcmMvb3V0cHV0L291dHB1dC1jc3YuYyBwYWRzLTEuMi9zcmMvb3V0cHV0L291dHB1 dC1jc3YuYwotLS0tIHBhZHMtMS4yLm9yaWcvc3JjL291dHB1dC9vdXRwdXQtY3N2LmMJMjAwOC0w Ny0wOCAxNDoyODoyOS4wMDAwMDAwMDAgLTA0MDAKLSsrKyBwYWRzLTEuMi9zcmMvb3V0cHV0L291 dHB1dC1jc3YuYwkyMDA4LTA3LTA4IDE3OjM2OjQxLjAwMDAwMDAwMCAtMDQwMAotQEAgLTYwLDYg KzYwLDkgQEAgc2V0dXBfb3V0cHV0X2NzdiAodm9pZCkKLSAJbG9nX21lc3NhZ2UoIndhcm5pbmc6 ICAncmVnaXN0ZXJfb3V0cHV0X3BsdWdpbicgaW4gZnVuY3Rpb24gJ3NldHVwX291dHB1dF9jc3Yn IGZhaWxlZC4iKTsKLSAJcmV0dXJuIC0xOwotICAgICB9Ci0rICAgIG91dHB1dF9jc3ZfY29uZi5m aWxlbmFtZSA9IE5VTEw7Ci0rICAgIG91dHB1dF9jc3ZfY29uZi5maWxlID0gTlVMTDsKLSsgICAg b3V0cHV0X2Nzdl9jb25mLnJlYWRvbmx5ID0gMDsKLSAKLSAgICAgcmV0dXJuIDA7Ci0gfQotQEAg LTgxLDIyICs4NCwzOSBAQCBpbml0X291dHB1dF9jc3YgKGJzdHJpbmcgZmlsZW5hbWUpCi0gICAg IHZlcmJvc2VfbWVzc2FnZSgiSW5pdGlhbGl6aW5nIENTViBvdXRwdXQgcGx1Z2luLiIpOwotIAot ICAgICAvKiBNYWtlIHN1cmUgZmlsZW5hbWUgaXNuJ3QgTlVMTC4gKi8KLS0gICAgaWYgKGZpbGVu YW1lICE9IE5VTEwpCi0tCW91dHB1dF9jc3ZfY29uZi5maWxlbmFtZSA9IGJzdHJjcHkoZmlsZW5h bWUpOwotLSAgICBlbHNlCi0rICAgIGlmIChmaWxlbmFtZSAhPSBOVUxMKSB7Ci0rICAgICAgICAv KiBQYXJzZSB0aGUgYXJncyBsb29raW5nIGZvciByZWFkb25seSBhbmQgZmlsZSBuYW1lICovCi0r ICAgICAgICBpbnQgaTsKLSsgICAgICAgIHN0cnVjdCBic3RyTGlzdCAqbGlzdCA9IGJzcGxpdChm aWxlbmFtZSwgJyAnKTsKLSsgICAgICAgIGlmIChsaXN0LT5xdHkgPiAyKSB7Ci0rICAgICAgICAg ICAgZXJyX21lc3NhZ2UoIlRvbyBtYW55IGFyZ3MgZm9yIG91dHB1dCBjc3YiKTsKLSsgICAgICAg ICAgICByZXR1cm4gLTE7Ci0rICAgICAgICB9Ci0rICAgICAgICBmb3IgKGk9MDsgaTwgbGlzdC0+ cXR5OyBpKyspIHsKLSsgICAgICAgICAgICBpZiAoYmlzZXFjc3RyKGxpc3QtPmVudHJ5W2ldLCAi cmVhZG9ubHkiKSA9PSAxKSB7Ci0rICAgICAgICAgICAgICAgIG91dHB1dF9jc3ZfY29uZi5yZWFk b25seSA9IDE7Ci0rICAgICAgICAgICAgICAgIHZlcmJvc2VfbWVzc2FnZSgiVXNpbmcgY3N2IGZp bGUgaW4gcmVhZCBvbmx5IG1vZGUuIik7Ci0rICAgICAgICAgICAgfSBlbHNlIGlmIChvdXRwdXRf Y3N2X2NvbmYuZmlsZW5hbWUgPT0gTlVMTCkKLSsJICAgICAgICBvdXRwdXRfY3N2X2NvbmYuZmls ZW5hbWUgPSBic3RyY3B5KGZpbGVuYW1lKTsKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAg ICAgICAgIGVycl9tZXNzYWdlKCJVbnJlY29nbml6ZWQgb3V0cHV0IGNzdiBvcHRpb24iKTsKLSsJ fSAKLSsgICAgICAgIGJzdHJMaXN0RGVzdHJveShsaXN0KTsKLSsgICAgfSBlbHNlCi0gCW91dHB1 dF9jc3ZfY29uZi5maWxlbmFtZSA9IGJmcm9tY3N0cigiYXNzZXRzLmNzdiIpOwotIAotICAgICAv KiBDaGVjayB0byBzZWUgaWYgKmZpbGVuYW1lIGV4aXN0cy4gKi8KLSAgICAgaWYgKChmcCA9IGZv cGVuKChjaGFyICopYmRhdGEob3V0cHV0X2Nzdl9jb25mLmZpbGVuYW1lKSwgInIiKSkgPT0gTlVM TCkgewotIAotLQkvKiBGaWxlIGRvZXMgbm90IGV4aXN0LCBjcmVhdGUgbmV3Li4gKi8KLS0JaWYg KChvdXRwdXRfY3N2X2NvbmYuZmlsZSA9IGZvcGVuKChjaGFyICopYmRhdGEob3V0cHV0X2Nzdl9j b25mLmZpbGVuYW1lKSwgInciKSkgIT0gTlVMTCkgewotLQkgICAgZnByaW50ZihvdXRwdXRfY3N2 X2NvbmYuZmlsZSwgImFzc2V0LHBvcnQscHJvdG8sc2VydmljZSxhcHBsaWNhdGlvbixkaXNjb3Zl cmVkXG4iKTsKLS0JICAgIGZmbHVzaChvdXRwdXRfY3N2X2NvbmYuZmlsZSk7Ci0tCi0tCX0gZWxz ZSB7Ci0tCSAgICBlcnJfbWVzc2FnZSgiQ2Fubm90IG9wZW4gZmlsZSAlcyEiLCBiZGF0YShvdXRw dXRfY3N2X2NvbmYuZmlsZW5hbWUpKTsKLS0JICAgIHJldHVybiAtMTsKLSsJaWYgKG91dHB1dF9j c3ZfY29uZi5yZWFkb25seSA9PSAwKSB7Ci0rCSAgICAvKiBGaWxlIGRvZXMgbm90IGV4aXN0LCBj cmVhdGUgbmV3Li4gKi8KLSsJICAgIGlmICgob3V0cHV0X2Nzdl9jb25mLmZpbGUgPSBmb3Blbigo Y2hhciAqKWJkYXRhKG91dHB1dF9jc3ZfY29uZi5maWxlbmFtZSksICJ3IikpICE9IE5VTEwpIHsK LSsJICAgICAgICBmcHJpbnRmKG91dHB1dF9jc3ZfY29uZi5maWxlLCAiYXNzZXQscG9ydCxwcm90 byxzZXJ2aWNlLGFwcGxpY2F0aW9uLGRpc2NvdmVyZWRcbiIpOwotKwkgICAgICAgIGZmbHVzaChv dXRwdXRfY3N2X2NvbmYuZmlsZSk7Ci0rCSAgICB9IGVsc2UgewotKwkgICAgICAgIGVycl9tZXNz YWdlKCJDYW5ub3Qgb3BlbiBmaWxlICVzISIsIGJkYXRhKG91dHB1dF9jc3ZfY29uZi5maWxlbmFt ZSkpOwotKwkgICAgICAgIHJldHVybiAtMTsKLSsgICAgICAgICAgICB9Ci0gCX0KLSAKLSAgICAg fSBlbHNlIHsKLUBAIC0xMDUsMTEgKzEyNSwxNCBAQCBpbml0X291dHB1dF9jc3YgKGJzdHJpbmcg ZmlsZW5hbWUpCi0gCWZjbG9zZShmcCk7Ci0gCXJlYWRfcmVwb3J0X2ZpbGUoKTsKLSAKLS0JLyog T3BlbiBmaWxlIGFuZCBhc3NpZ24gaXQgdG8gdGhlIGdsb2JhbCBGSUxFIHBvaW50ZXIuICAqLwot LQlpZiAoKG91dHB1dF9jc3ZfY29uZi5maWxlID0gZm9wZW4oKGNoYXIgKiliZGF0YShvdXRwdXRf Y3N2X2NvbmYuZmlsZW5hbWUpLCAiYSIpKSA9PSBOVUxMKSB7Ci0tCSAgICBlcnJfbWVzc2FnZSgi Q2Fubm90IG9wZW4gZmlsZSAlcyEiLCBiZGF0YShvdXRwdXRfY3N2X2NvbmYuZmlsZW5hbWUpKTsK LS0JICAgIHJldHVybiAtMTsKLS0JfQotKwlpZiAob3V0cHV0X2Nzdl9jb25mLnJlYWRvbmx5ID09 IDApIHsKLSsJICAgIC8qIE9wZW4gZmlsZSBhbmQgYXNzaWduIGl0IHRvIHRoZSBnbG9iYWwgRklM RSBwb2ludGVyLiAgKi8KLSsJICAgIGlmICgob3V0cHV0X2Nzdl9jb25mLmZpbGUgPSBmb3Blbigo Y2hhciAqKWJkYXRhKG91dHB1dF9jc3ZfY29uZi5maWxlbmFtZSksICJhIikpID09IE5VTEwpIHsK LSsJICAgICAgICBlcnJfbWVzc2FnZSgiQ2Fubm90IG9wZW4gZmlsZSAlcyEiLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBiZGF0YShvdXRwdXRfY3N2X2NvbmYuZmlsZW5hbWUpKTsKLSsJ ICAgICAgICByZXR1cm4gLTE7Ci0rCSAgICB9Ci0rICAgICAgICB9Ci0gICAgIH0KLSAKLSAgICAg cmV0dXJuIDA7Ci1AQCAtMjU1LDYgKzI3OCw5IEBAIHBhcnNlX3Jhd19yZXBvcnQgKGJzdHJpbmcg bGluZSkKLSBpbnQKLSBwcmludF9hc3NldF9jc3YgKEFzc2V0ICpyZWMpCi0gewotKyAgICBpZiAo b3V0cHV0X2Nzdl9jb25mLnJlYWRvbmx5KQotKyAgICAgICAgcmV0dXJuIDA7Ci0rCi0gICAgIGlm IChvdXRwdXRfY3N2X2NvbmYuZmlsZSAhPSBOVUxMKSB7Ci0gCWlmIChnYy5oaWRlX3Vua25vd25z ID09IDAgfHwgKChiaXNlcWNzdHIocmVjLT5zZXJ2aWNlLCAidW5rbm93biIpICE9IDApICYmCi0g CQkgICAgKGJpc2VxY3N0cihyZWMtPmFwcGxpY2F0aW9uLCAidW5rbm93biIpICE9IDApKSkgewot QEAgLTI4NSw2ICszMTEsOSBAQCBwcmludF9hc3NldF9jc3YgKEFzc2V0ICpyZWMpCi0gaW50Ci0g cHJpbnRfYXJwX2Fzc2V0X2NzdiAoQXJwQXNzZXQgKnJlYykKLSB7Ci0rICAgIGlmIChvdXRwdXRf Y3N2X2NvbmYucmVhZG9ubHkpCi0rICAgICAgICByZXR1cm4gMDsKLSsKLSAgICAgLyogUHJpbnQg dG8gRmlsZSAqLwotICAgICBpZiAob3V0cHV0X2Nzdl9jb25mLmZpbGUgIT0gTlVMTCkgewotIAlp ZiAocmVjLT5tYWNfcmVzb2x2ZWQgIT0gTlVMTCkgewotZGlmZiAtdXJwIHBhZHMtMS4yLm9yaWcv c3JjL291dHB1dC9vdXRwdXQtY3N2LmggcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQtY3N2LmgK LS0tLSBwYWRzLTEuMi5vcmlnL3NyYy9vdXRwdXQvb3V0cHV0LWNzdi5oCTIwMDgtMDctMDggMTQ6 Mjg6MjkuMDAwMDAwMDAwIC0wNDAwCi0rKysgcGFkcy0xLjIvc3JjL291dHB1dC9vdXRwdXQtY3N2 LmgJMjAwOC0wNy0wOCAxNzozNjo0MS4wMDAwMDAwMDAgLTA0MDAKLUBAIC01MCw2ICs1MCw3IEBA IHR5cGVkZWYgc3RydWN0IF9PdXRwdXRDU1ZDb25mCi0gewotICAgICBGSUxFICpmaWxlOwotICAg ICBic3RyaW5nIGZpbGVuYW1lOwotKyAgICBpbnQgcmVhZG9ubHk7Ci0gfSBPdXRwdXRDU1ZDb25m OwotIAotIAoKZGlmZiAtLWdpdCBhL3BhZHMtYWFyY2g2NC5wYXRjaCBiL3BhZHMtYWFyY2g2NC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNlOTI2My4uMDAwMDAwMAotLS0g YS9wYWRzLWFhcmNoNjQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNTQ5ICswLDAgQEAKLWRp ZmYgLXVyTiBwYWRzLTEuMi9jb25maWcuZ3Vlc3MgcGFkcy0xLjItYWFyY2g2NC9jb25maWcuZ3Vl c3MKLS0tLSBwYWRzLTEuMi9jb25maWcuZ3Vlc3MJMjAwNC0wOS0yOSAwMDoxNTowNS4wMDAwMDAw MDAgLTA1MDAKLSsrKyBwYWRzLTEuMi1hYXJjaDY0L2NvbmZpZy5ndWVzcwkyMDEzLTAzLTAzIDA3 OjAxOjQzLjMxNDQyNDAzNCAtMDYwMAotQEAgLTEsOSArMSwxMCBAQAotICMhIC9iaW4vc2gKLSAj IEF0dGVtcHQgdG8gZ3Vlc3MgYSBjYW5vbmljYWwgc3lzdGVtIG5hbWUuCi0gIyAgIENvcHlyaWdo dCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKLS0j ICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KLSsjICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAw NywgMjAwOCwgMjAwOSwgMjAxMCwKLSsjICAgMjAxMSwgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KLSAKLS10aW1lc3RhbXA9JzIwMDQtMDktMDcnCi0rdGltZXN0YW1wPScyMDEy LTA5LTI1JwotIAotICMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKLSAjIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci1AQCAtMTYsMjQgKzE3LDI0 IEBACi0gIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gIwotICMg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKLS0jIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCi0tIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBT dWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKyMgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLSAj Ci0gIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSwgaWYgeW91Ci0gIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3Jh bSB0aGF0IGNvbnRhaW5zIGEKLSAjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBB dXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0gIyB0aGUgc2FtZSBkaXN0cmlidXRp b24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0gCi0t IyBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIgPHBlckBib3RobmVyLmNvbT4uCi0t IyBQbGVhc2Ugc2VuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4gIFN1Ym1p dCBhIGNvbnRleHQKLS0jIGRpZmYgYW5kIGEgcHJvcGVybHkgZm9ybWF0dGVkIENoYW5nZUxvZyBl bnRyeS4KLSsKLSsjIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBQZXIgQm90aG5lci4gIFBsZWFzZSBz ZW5kIHBhdGNoZXMgKGNvbnRleHQKLSsjIGRpZmYgZm9ybWF0KSB0byA8Y29uZmlnLXBhdGNoZXNA Z251Lm9yZz4gYW5kIGluY2x1ZGUgYSBDaGFuZ2VMb2cKLSsjIGVudHJ5LgotICMKLSAjIFRoaXMg c2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lIHNpbWlsYXIg dG8KLSAjIGNvbmZpZy5zdWIuICBJZiBpdCBzdWNjZWVkcywgaXQgcHJpbnRzIHRoZSBzeXN0ZW0g bmFtZSBvbiBzdGRvdXQsIGFuZAotICMgZXhpdHMgd2l0aCAwLiAgT3RoZXJ3aXNlLCBpdCBleGl0 cyB3aXRoIDEuCi0gIwotLSMgVGhlIHBsYW4gaXMgdGhhdCB0aGlzIGNhbiBiZSBjYWxsZWQgYnkg Y29uZmlndXJlIHNjcmlwdHMgaWYgeW91Ci0tIyBkb24ndCBzcGVjaWZ5IGFuIGV4cGxpY2l0IGJ1 aWxkIHN5c3RlbSB0eXBlLgotKyMgWW91IGNhbiBnZXQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRo aXMgc2NyaXB0IGZyb206Ci0rIyBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9w PWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLmd1ZXNzO2hiPUhFQUQKLSAKLSBtZT1g ZWNobyAiJDAiIHwgc2VkIC1lICdzLC4qLywsJ2AKLSAKLUBAIC01Myw3ICs1NCw4IEBACi0gR05V IGNvbmZpZy5ndWVzcyAoJHRpbWVzdGFtcCkKLSAKLSBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGVy IEJvdGhuZXIuCi0tQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAx OTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0Ci0rQ29weXJpZ2h0 IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAw LAotKzIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks IDIwMTAsIDIwMTEsIDIwMTIKLSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSAKLSBU aGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlv bnMuICBUaGVyZSBpcyBOTwotQEAgLTY2LDExICs2OCwxMSBAQAotIHdoaWxlIHRlc3QgJCMgLWd0 IDAgOyBkbwotICAgY2FzZSAkMSBpbgotICAgICAtLXRpbWUtc3RhbXAgfCAtLXRpbWUqIHwgLXQg KQotLSAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4aXQgMCA7OwotKyAgICAgICBlY2hvICIk dGltZXN0YW1wIiA7IGV4aXQgOzsKLSAgICAgLS12ZXJzaW9uIHwgLXYgKQotLSAgICAgICBlY2hv ICIkdmVyc2lvbiIgOyBleGl0IDAgOzsKLSsgICAgICAgZWNobyAiJHZlcnNpb24iIDsgZXhpdCA7 OwotICAgICAtLWhlbHAgfCAtLWgqIHwgLWggKQotLSAgICAgICBlY2hvICIkdXNhZ2UiOyBleGl0 IDAgOzsKLSsgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OwotICAgICAtLSApICAgICAjIFN0 b3Agb3B0aW9uIHByb2Nlc3NpbmcKLSAgICAgICAgc2hpZnQ7IGJyZWFrIDs7Ci0gICAgIC0gKQkj IFVzZSBzdGRpbiBhcyBpbnB1dC4KLUBAIC0xMDQsNyArMTA2LDcgQEAKLSB0cmFwICJleGl0Y29k ZT1cJD87IChybSAtZiBcJHRtcGZpbGVzIDI+L2Rldi9udWxsOyBybWRpciBcJHRtcCAyPi9kZXYv bnVsbCkgJiYgZXhpdCBcJGV4aXRjb2RlIiAwIDsKLSB0cmFwICJybSAtZiBcJHRtcGZpbGVzIDI+ L2Rldi9udWxsOyBybWRpciBcJHRtcCAyPi9kZXYvbnVsbDsgZXhpdCAxIiAxIDIgMTMgMTUgOwot IDogJHtUTVBESVI9L3RtcH0gOwotLSB7IHRtcD1gKHVtYXNrIDA3NyAmJiBta3RlbXAgLWQgLXEg IiRUTVBESVIvY2dYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYgdGVzdCAtbiAiJHRtcCIgJiYgdGVz dCAtZCAiJHRtcCIgOyB9IHx8Ci0rIHsgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAiJFRN UERJUi9jZ1hYWFhYWCIpIDI+L2Rldi9udWxsYCAmJiB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1k ICIkdG1wIiA7IH0gfHwKLSAgeyB0ZXN0IC1uICIkUkFORE9NIiAmJiB0bXA9JFRNUERJUi9jZyQk LSRSQU5ET00gJiYgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKSA7IH0gfHwKLSAgeyB0bXA9JFRN UERJUi9jZy0kJCAmJiAodW1hc2sgMDc3ICYmIG1rZGlyICR0bXApICYmIGVjaG8gIldhcm5pbmc6 IGNyZWF0aW5nIGluc2VjdXJlIHRlbXAgZGlyZWN0b3J5IiA+JjIgOyB9IHx8Ci0gIHsgZWNobyAi JG1lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAkVE1QRElSIiA+JjIg OyBleGl0IDEgOyB9IDsKLUBAIC0xMjMsNyArMTI1LDcgQEAKLSAJOzsKLSAgLCwqKSAgIENDX0ZP Ul9CVUlMRD0kQ0MgOzsKLSAgLCosKikgIENDX0ZPUl9CVUlMRD0kSE9TVF9DQyA7OwotLWVzYWMg OycKLStlc2FjIDsgc2V0X2NjX2Zvcl9idWlsZD0gOycKLSAKLSAjIFRoaXMgaXMgbmVlZGVkIHRv IGZpbmQgdW5hbWUgb24gYSBQeXJhbWlkIE9TeCB3aGVuIHJ1biBpbiB0aGUgQlNEIHVuaXZlcnNl LgotICMgKGdoYXppQG5vYy5ydXRnZXJzLmVkdSAxOTk0LTA4LTI0KQotQEAgLTE0MSw3ICsxNDMs NyBAQAotIGNhc2UgIiR7VU5BTUVfTUFDSElORX06JHtVTkFNRV9TWVNURU19OiR7VU5BTUVfUkVM RUFTRX06JHtVTkFNRV9WRVJTSU9OfSIgaW4KLSAgICAgKjpOZXRCU0Q6KjoqKQotIAkjIE5ldEJT RCAobmJzZCkgdGFyZ2V0cyBzaG91bGQgKHdoZXJlIGFwcGxpY2FibGUpIG1hdGNoIG9uZSBvcgot LQkjIG1vcmUgb2YgdGhlIHR1cHBsZXM6ICotKi1uZXRic2RlbGYqLCAqLSotbmV0YnNkYW91dCos Ci0rCSMgbW9yZSBvZiB0aGUgdHVwbGVzOiAqLSotbmV0YnNkZWxmKiwgKi0qLW5ldGJzZGFvdXQq LAotIAkjICotKi1uZXRic2RlY29mZiogYW5kICotKi1uZXRic2QqLiAgRm9yIHRhcmdldHMgdGhh dCByZWNlbnRseQotIAkjIHN3aXRjaGVkIHRvIEVMRiwgKi0qLW5ldGJzZCogd291bGQgc2VsZWN0 IHRoZSBvbGQKLSAJIyBvYmplY3QgZmlsZSBmb3JtYXQuICBUaGlzIHByb3ZpZGVzIGJvdGggZm9y d2FyZAotQEAgLTE1OCw2ICsxNjAsNyBAQAotIAkgICAgYXJtKikgbWFjaGluZT1hcm0tdW5rbm93 biA7OwotIAkgICAgc2gzZWwpIG1hY2hpbmU9c2hsLXVua25vd24gOzsKLSAJICAgIHNoM2ViKSBt YWNoaW5lPXNoLXVua25vd24gOzsKLSsJICAgIHNoNWVsKSBtYWNoaW5lPXNoNWxlLXVua25vd24g OzsKLSAJICAgICopIG1hY2hpbmU9JHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVua25vd24gOzsKLSAJ ZXNhYwotIAkjIFRoZSBPcGVyYXRpbmcgU3lzdGVtIGluY2x1ZGluZyBvYmplY3QgZm9ybWF0LCBp ZiBpdCBoYXMgc3dpdGNoZWQKLUBAIC0xNjYsNyArMTY5LDcgQEAKLSAJICAgIGFybSp8aTM4Nnxt NjhrfG5zMzJrfHNoMyp8c3BhcmN8dmF4KQotIAkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotIAkJ aWYgZWNobyBfX0VMRl9fIHwgJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsIFwKLS0JCQl8 IGdyZXAgX19FTEZfXyA+L2Rldi9udWxsCi0rCQkJfCBncmVwIC1xIF9fRUxGX18KLSAJCXRoZW4K LSAJCSAgICAjIE9uY2UgYWxsIHV0aWxpdGllcyBjYW4gYmUgRUNPRkYgKG5ldGJzZGVjb2ZmKSBv ciBhLm91dCAobmV0YnNkYW91dCkuCi0gCQkgICAgIyBSZXR1cm4gbmV0YnNkIGZvciBlaXRoZXIu ICBGSVg/Ci1AQCAtMTc2LDcgKzE3OSw3IEBACi0gCQlmaQotIAkJOzsKLSAJICAgICopCi0tCSAg ICAgICAgb3M9bmV0YnNkCi0rCQlvcz1uZXRic2QKLSAJCTs7Ci0gCWVzYWMKLSAJIyBUaGUgT1Mg cmVsZWFzZQotQEAgLTE5Niw2MiArMTk5LDM0IEBACi0gCSMgY29udGFpbnMgcmVkdW5kYW50IGlu Zm9ybWF0aW9uLCB0aGUgc2hvcnRlciBmb3JtOgotIAkjIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1P UEVSQVRJTkdfU1lTVEVNIGlzIHVzZWQuCi0gCWVjaG8gIiR7bWFjaGluZX0tJHtvc30ke3JlbGVh c2V9IgotLQlleGl0IDAgOzsKLS0gICAgYW1kNjQ6T3BlbkJTRDoqOiopCi0tCWVjaG8geDg2XzY0 LXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KLS0JZXhpdCAwIDs7Ci0tICAgIGFtaWdh Ok9wZW5CU0Q6KjoqKQotLQllY2hvIG02OGstdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNF fQotLQlleGl0IDAgOzsKLS0gICAgY2F0czpPcGVuQlNEOio6KikKLS0JZWNobyBhcm0tdW5rbm93 bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotLQlleGl0IDAgOzsKLS0gICAgaHAzMDA6T3BlbkJT RDoqOiopCi0tCWVjaG8gbTY4ay11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9Ci0tCWV4 aXQgMCA7OwotLSAgICBsdW5hODhrOk9wZW5CU0Q6KjoqKQotLSAgICAJZWNobyBtODhrLXVua25v d24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KLS0JZXhpdCAwIDs7Ci0tICAgIG1hYzY4azpPcGVu QlNEOio6KikKLS0JZWNobyBtNjhrLXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KLS0J ZXhpdCAwIDs7Ci0tICAgIG1hY3BwYzpPcGVuQlNEOio6KikKLS0JZWNobyBwb3dlcnBjLXVua25v d24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KLS0JZXhpdCAwIDs7Ci0tICAgIG12bWU2OGs6T3Bl bkJTRDoqOiopCi0tCWVjaG8gbTY4ay11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9Ci0t CWV4aXQgMCA7OwotLSAgICBtdm1lODhrOk9wZW5CU0Q6KjoqKQotLQllY2hvIG04OGstdW5rbm93 bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotLQlleGl0IDAgOzsKLS0gICAgbXZtZXBwYzpPcGVu QlNEOio6KikKLS0JZWNobyBwb3dlcnBjLXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0K LS0JZXhpdCAwIDs7Ci0tICAgIHNnaTpPcGVuQlNEOio6KikKLS0JZWNobyBtaXBzNjQtdW5rbm93 bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotLQlleGl0IDAgOzsKLS0gICAgc3VuMzpPcGVuQlNE Oio6KikKLS0JZWNobyBtNjhrLXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KLS0JZXhp dCAwIDs7Ci0rCWV4aXQgOzsKLSsgICAgKjpCaXRyaWc6KjoqKQotKwlVTkFNRV9NQUNISU5FX0FS Q0g9YGFyY2ggfCBzZWQgJ3MvQml0cmlnLi8vJ2AKLSsJZWNobyAke1VOQU1FX01BQ0hJTkVfQVJD SH0tdW5rbm93bi1iaXRyaWcke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSAgICAgKjpPcGVu QlNEOio6KikKLS0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tb3BlbmJzZCR7VU5BTUVf UkVMRUFTRX0KLS0JZXhpdCAwIDs7Ci0rCVVOQU1FX01BQ0hJTkVfQVJDSD1gYXJjaCB8IHNlZCAn cy9PcGVuQlNELi8vJ2AKLSsJZWNobyAke1VOQU1FX01BQ0hJTkVfQVJDSH0tdW5rbm93bi1vcGVu YnNkJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0gICAgICo6ZWtrb0JTRDoqOiopCi0gCWVj aG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWVra29ic2Qke1VOQU1FX1JFTEVBU0V9Ci0tCWV4 aXQgMCA7OwotKwlleGl0IDs7Ci0rICAgICo6U29saWRCU0Q6KjoqKQotKwllY2hvICR7VU5BTUVf TUFDSElORX0tdW5rbm93bi1zb2xpZGJzZCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotICAg ICBtYWNwcGM6TWlyQlNEOio6KikKLS0JZWNobyBwb3dlcnBwYy11bmtub3duLW1pcmJzZCR7VU5B TUVfUkVMRUFTRX0KLS0JZXhpdCAwIDs7Ci0rCWVjaG8gcG93ZXJwYy11bmtub3duLW1pcmJzZCR7 VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotICAgICAqOk1pckJTRDoqOiopCi0gCWVjaG8gJHtV TkFNRV9NQUNISU5FfS11bmtub3duLW1pcmJzZCR7VU5BTUVfUkVMRUFTRX0KLS0JZXhpdCAwIDs7 Ci0rCWV4aXQgOzsKLSAgICAgYWxwaGE6T1NGMToqOiopCi0gCWNhc2UgJFVOQU1FX1JFTEVBU0Ug aW4KLSAJKjQuMCkKLSAJCVVOQU1FX1JFTEVBU0U9YC91c3Ivc2Jpbi9zaXplciAtdiB8IGF3ayAn e3ByaW50ICQzfSdgCi0gCQk7OwotIAkqNS4qKQotLQkgICAgICAgIFVOQU1FX1JFTEVBU0U9YC91 c3Ivc2Jpbi9zaXplciAtdiB8IGF3ayAne3ByaW50ICQ0fSdgCi0rCQlVTkFNRV9SRUxFQVNFPWAv dXNyL3NiaW4vc2l6ZXIgLXYgfCBhd2sgJ3twcmludCAkNH0nYAotIAkJOzsKLSAJZXNhYwotIAkj IEFjY29yZGluZyB0byBDb21wYXEsIC91c3Ivc2Jpbi9wc3JpbmZvIGhhcyBiZWVuIGF2YWlsYWJs ZSBvbgotQEAgLTI5NywzNyArMjcyLDQ2IEBACi0gCSMgQSBYbi5uIHZlcnNpb24gaXMgYW4gdW5y ZWxlYXNlZCBleHBlcmltZW50YWwgYmFzZWxldmVsLgotIAkjIDEuMiB1c2VzICIxLjIiIGZvciB1 bmFtZSAtci4KLSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1vc2ZgZWNobyAke1VOQU1FX1JF TEVBU0V9IHwgc2VkIC1lICdzL15bUFZUWF0vLycgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RV VldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCi0tCWV4aXQgMCA7OwotKwkjIFJl c2V0IEVYSVQgdHJhcCBiZWZvcmUgZXhpdGluZyB0byBhdm9pZCBzcHVyaW91cyBub24temVybyBl eGl0IGNvZGUuCi0rCWV4aXRjb2RlPSQ/Ci0rCXRyYXAgJycgMAotKwlleGl0ICRleGl0Y29kZSA7 OwotICAgICBBbHBoYVwgKjpXaW5kb3dzX05UKjoqKQotIAkjIEhvdyBkbyB3ZSBrbm93IGl0J3Mg SW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/Ci0gCSMgU2hv dWxkIHdlIGNoYW5nZSBVTkFNRV9NQUNISU5FIGJhc2VkIG9uIHRoZSBvdXRwdXQgb2YgdW5hbWUg aW5zdGVhZAotIAkjIG9mIHRoZSBzcGVjaWZpYyBBbHBoYSBtb2RlbD8KLSAJZWNobyBhbHBoYS1w Yy1pbnRlcml4Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIDIxMDY0OldpbmRvd3NfTlQ6 NTA6MykKLSAJZWNobyBhbHBoYS1kZWMtd2lubnQzLjUKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsK LSAgICAgQW1pZ2EqOlVOSVhfU3lzdGVtX1Y6NC4wOiopCi0gCWVjaG8gbTY4ay11bmtub3duLXN5 c3Y0Ci0tCWV4aXQgMDs7Ci0rCWV4aXQgOzsKLSAgICAgKjpbQWFdbWlnYVtPb11bU3NdOio6KikK LSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYW1pZ2FvcwotLQlleGl0IDAgOzsKLSsJ ZXhpdCA7OwotICAgICAqOltNbV1vcnBoW09vXVtTc106KjoqKQotIAllY2hvICR7VU5BTUVfTUFD SElORX0tdW5rbm93bi1tb3JwaG9zCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgICo6T1Mv MzkwOio6KikKLSAJZWNobyBpMzcwLWlibS1vcGVuZWRpdGlvbgotLQlleGl0IDAgOzsKLSsJZXhp dCA7OwotKyAgICAqOnovVk06KjoqKQotKwllY2hvIHMzOTAtaWJtLXp2bW9lCi0rCWV4aXQgOzsK LSAgICAgKjpPUzQwMDoqOiopCi0tICAgICAgICBlY2hvIHBvd2VycGMtaWJtLW9zNDAwCi0tCWV4 aXQgMCA7OwotKwllY2hvIHBvd2VycGMtaWJtLW9zNDAwCi0rCWV4aXQgOzsKLSAgICAgYXJtOlJJ U0MqOjEuWzAxMl0qOip8YXJtOnJpc2NpeDoxLlswMTJdKjoqKQotIAllY2hvIGFybS1hY29ybi1y aXNjaXgke1VOQU1FX1JFTEVBU0V9Ci0tCWV4aXQgMDs7Ci0rCWV4aXQgOzsKLSsgICAgYXJtKjpy aXNjb3M6KjoqfGFybSo6UklTQ09TOio6KikKLSsJZWNobyBhcm0tdW5rbm93bi1yaXNjb3MKLSsJ ZXhpdCA7OwotICAgICBTUjI/MDE6SEktVVgvTVBQOio6KiB8IFNSODAwMDpISS1VWC9NUFA6Kjoq KQotIAllY2hvIGhwcGExLjEtaGl0YWNoaS1oaXV4bXBwCi0tCWV4aXQgMDs7Ci0rCWV4aXQgOzsK LSAgICAgUHlyYW1pZCo6T1N4KjoqOiogfCBNSVMqOk9TeCo6KjoqIHwgTUlTKjpTTVBfREMtT1N4 KjoqOiopCi0gCSMgYWtlZUB3cGRpczAzLndwYWZiLmFmLm1pbCAoRWFybGUgRi4gQWtlKSBjb250 cmlidXRlZCBNSVMgYW5kIE5JTEUuCi0gCWlmIHRlc3QgImAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2 L251bGxgIiA9IGF0dCA7IHRoZW4KLUBAIC0zMzUsMzIgKzMxOSw1MSBAQAotIAllbHNlCi0gCQll Y2hvIHB5cmFtaWQtcHlyYW1pZC1ic2QKLSAJZmkKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAg ICAgTklMRSo6KjoqOmRjb3N4KQotIAllY2hvIHB5cmFtaWQtcHlyYW1pZC1zdnI0Ci0tCWV4aXQg MCA7OwotKwlleGl0IDs7Ci0gICAgIERSUz82MDAwOnVuaXg6NC4wOjYqKQotIAllY2hvIHNwYXJj LWljbC1ueDYKLS0JZXhpdCAwIDs7Ci0tICAgIERSUz82MDAwOlVOSVhfU1Y6NC4yKjo3KikKLSsJ ZXhpdCA7OwotKyAgICBEUlM/NjAwMDpVTklYX1NWOjQuMio6NyogfCBEUlM/NjAwMDppc2lzOjQu Mio6NyopCi0gCWNhc2UgYC91c3IvYmluL3VuYW1lIC1wYCBpbgotLQkgICAgc3BhcmMpIGVjaG8g c3BhcmMtaWNsLW54NyAmJiBleGl0IDAgOzsKLSsJICAgIHNwYXJjKSBlY2hvIHNwYXJjLWljbC1u eDc7IGV4aXQgOzsKLSAJZXNhYyA7OwotKyAgICBzMzkweDpTdW5PUzoqOiopCi0rCWVjaG8gJHtV TkFNRV9NQUNISU5FfS1pYm0tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAn cy9bXi5dKi8vJ2AKLSsJZXhpdCA7OwotICAgICBzdW40SDpTdW5PUzo1Lio6KikKLSAJZWNobyBz cGFyYy1oYWwtc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8v J2AKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgc3VuNCo6U3VuT1M6NS4qOiogfCB0YWRw b2xlKjpTdW5PUzo1Lio6KikKLSAJZWNobyBzcGFyYy1zdW4tc29sYXJpczJgZWNobyAke1VOQU1F X1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKLS0JZXhpdCAwIDs7Ci0tICAgIGk4NnBjOlN1 bk9TOjUuKjoqKQotLQllY2hvIGkzODYtcGMtc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9 fHNlZCAtZSAncy9bXi5dKi8vJ2AKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSsgICAgaTg2cGM6 QXVyb3JhVVg6NS4qOiogfCBpODZ4ZW46QXVyb3JhVVg6NS4qOiopCi0rCWVjaG8gaTM4Ni1wYy1h dXJvcmF1eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBpODZwYzpTdW5PUzo1Lio6 KiB8IGk4NnhlbjpTdW5PUzo1Lio6KikKLSsJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwlTVU5f QVJDSD0iaTM4NiIKLSsJIyBJZiB0aGVyZSBpcyBhIGNvbXBpbGVyLCBzZWUgaWYgaXQgaXMgY29u ZmlndXJlZCBmb3IgNjQtYml0IG9iamVjdHMuCi0rCSMgTm90ZSB0aGF0IHRoZSBTdW4gY2MgZG9l cyBub3QgdHVybiBfX0xQNjRfXyBpbnRvIDEgbGlrZSBnY2MgZG9lcy4KLSsJIyBUaGlzIHRlc3Qg d29ya3MgZm9yIGJvdGggY29tcGlsZXJzLgotKwlpZiBbICIkQ0NfRk9SX0JVSUxEIiAhPSAnbm9f Y29tcGlsZXJfZm91bmQnIF07IHRoZW4KLSsJICAgIGlmIChlY2hvICcjaWZkZWYgX19hbWQ2NCc7 IGVjaG8gSVNfNjRCSVRfQVJDSDsgZWNobyAnI2VuZGlmJykgfCBcCi0rCQkoQ0NPUFRTPSAkQ0Nf Rk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwgXAotKwkJZ3JlcCBJU182NEJJVF9BUkNIID4v ZGV2L251bGwKLSsJICAgIHRoZW4KLSsJCVNVTl9BUkNIPSJ4ODZfNjQiCi0rCSAgICBmaQotKwlm aQotKwllY2hvICR7U1VOX0FSQ0h9LXBjLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxz ZWQgLWUgJ3MvW14uXSovLydgCi0rCWV4aXQgOzsKLSAgICAgc3VuNCo6U3VuT1M6Nio6KikKLSAJ IyBBY2NvcmRpbmcgdG8gY29uZmlnLnN1YiwgdGhpcyBpcyB0aGUgcHJvcGVyIHdheSB0byBjYW5v bmljYWxpemUKLSAJIyBTdW5PUzYuICBIYXJkIHRvIGd1ZXNzIGV4YWN0bHkgd2hhdCBTdW5PUzYg d2lsbCBiZSBsaWtlLCBidXQKLSAJIyBpdCdzIGxpa2VseSB0byBiZSBtb3JlIGxpa2UgU29sYXJp cyB0aGFuIFN1bk9TNC4KLSAJZWNobyBzcGFyYy1zdW4tc29sYXJpczNgZWNobyAke1VOQU1FX1JF TEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAg c3VuNCo6U3VuT1M6KjoqKQotIAljYXNlICJgL3Vzci9iaW4vYXJjaCAta2AiIGluCi0gCSAgICBT ZXJpZXMqfFM0KikKLUBAIC0zNjksMTAgKzM3MiwxMCBAQAotIAllc2FjCi0gCSMgSmFwYW5lc2Ug TGFuZ3VhZ2UgdmVyc2lvbnMgaGF2ZSBhIHZlcnNpb24gbnVtYmVyIGxpa2UgYDQuMS4zLUpMJy4K LSAJZWNobyBzcGFyYy1zdW4tc3Vub3NgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy8t L18vJ2AKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgc3VuMyo6U3VuT1M6KjoqKQotIAll Y2hvIG02OGstc3VuLXN1bm9zJHtVTkFNRV9SRUxFQVNFfQotLQlleGl0IDAgOzsKLSsJZXhpdCA7 OwotICAgICBzdW4qOio6NC4yQlNEOiopCi0gCVVOQU1FX1JFTEVBU0U9YChzZWQgMXEgL2V0Yy9t b3RkIHwgYXdrICd7cHJpbnQgc3Vic3RyKCQ1LDEsMyl9JykgMj4vZGV2L251bGxgCi0gCXRlc3Qg Ingke1VOQU1FX1JFTEVBU0V9IiA9ICJ4IiAmJiBVTkFNRV9SRUxFQVNFPTMKLUBAIC0zODQsMTAg KzM4NywxMCBAQAotIAkJZWNobyBzcGFyYy1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9Ci0gCQk7 OwotIAllc2FjCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIGF1c2hwOlN1bk9TOio6KikK LSAJZWNobyBzcGFyYy1hdXNwZXgtc3Vub3Mke1VOQU1FX1JFTEVBU0V9Ci0tCWV4aXQgMCA7Owot KwlleGl0IDs7Ci0gICAgICMgVGhlIHNpdHVhdGlvbiBmb3IgTWlOVCBpcyBhIGxpdHRsZSBjb25m dXNpbmcuICBUaGUgbWFjaGluZSBuYW1lCi0gICAgICMgY2FuIGJlIHZpcnR1YWxseSBldmVyeXRo aW5nIChldmVyeXRoaW5nIHdoaWNoIGlzIG5vdAotICAgICAjICJhdGFyaXN0IiBvciAiYXRhcmlz dGUiIGF0IGxlYXN0IHNob3VsZCBoYXZlIGEgcHJvY2Vzc29yCi1AQCAtMzk3LDQxICs0MDAsNDEg QEAKLSAgICAgIyBNaU5ULiAgQnV0IE1pTlQgaXMgZG93bndhcmQgY29tcGF0aWJsZSB0byBUT1Ms IHNvIHRoaXMgc2hvdWxkCi0gICAgICMgYmUgbm8gcHJvYmxlbS4KLSAgICAgYXRhcmlzdFtlXToq TWlOVDoqOiogfCBhdGFyaXN0W2VdOiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCi0t ICAgICAgICBlY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KLS0JZXhpdCAwIDs7 Ci0rCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0gICAg IGF0YXJpKjoqTWlOVDoqOiogfCBhdGFyaSo6Km1pbnQ6KjoqIHwgYXRhcmlzdFtlXToqVE9TOio6 KikKLSAJZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0tICAgICAgICBleGl0 IDAgOzsKLSsJZXhpdCA7OwotICAgICAqZmFsY29uKjoqTWlOVDoqOiogfCAqZmFsY29uKjoqbWlu dDoqOiogfCAqZmFsY29uKjoqVE9TOio6KikKLS0gICAgICAgIGVjaG8gbTY4ay1hdGFyaS1taW50 JHtVTkFNRV9SRUxFQVNFfQotLQlleGl0IDAgOzsKLSsJZWNobyBtNjhrLWF0YXJpLW1pbnQke1VO QU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSAgICAgbWlsYW4qOipNaU5UOio6KiB8IG1pbGFuKjoq bWludDoqOiogfCAqbWlsYW4qOipUT1M6KjoqKQotLSAgICAgICAgZWNobyBtNjhrLW1pbGFuLW1p bnQke1VOQU1FX1JFTEVBU0V9Ci0tICAgICAgICBleGl0IDAgOzsKLSsJZWNobyBtNjhrLW1pbGFu LW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSAgICAgaGFkZXMqOipNaU5UOio6KiB8 IGhhZGVzKjoqbWludDoqOiogfCAqaGFkZXMqOipUT1M6KjoqKQotLSAgICAgICAgZWNobyBtNjhr LWhhZGVzLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0tICAgICAgICBleGl0IDAgOzsKLSsJZWNobyBt NjhrLWhhZGVzLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSAgICAgKjoqTWlOVDoq OiogfCAqOiptaW50Oio6KiB8ICo6KlRPUzoqOiopCi0tICAgICAgICBlY2hvIG02OGstdW5rbm93 bi1taW50JHtVTkFNRV9SRUxFQVNFfQotLSAgICAgICAgZXhpdCAwIDs7Ci0rCWVjaG8gbTY4ay11 bmtub3duLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSAgICAgbTY4azptYWNodGVu Oio6KikKLSAJZWNobyBtNjhrLWFwcGxlLW1hY2h0ZW4ke1VOQU1FX1JFTEVBU0V9Ci0tCWV4aXQg MCA7OwotKwlleGl0IDs7Ci0gICAgIHBvd2VycGM6bWFjaHRlbjoqOiopCi0gCWVjaG8gcG93ZXJw Yy1hcHBsZS1tYWNodGVuJHtVTkFNRV9SRUxFQVNFfQotLQlleGl0IDAgOzsKLSsJZXhpdCA7Owot ICAgICBSSVNDKjpNYWNoOio6KikKLSAJZWNobyBtaXBzLWRlYy1tYWNoX2JzZDQuMwotLQlleGl0 IDAgOzsKLSsJZXhpdCA7OwotICAgICBSSVNDKjpVTFRSSVg6KjoqKQotIAllY2hvIG1pcHMtZGVj LXVsdHJpeCR7VU5BTUVfUkVMRUFTRX0KLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgVkFY KjpVTFRSSVgqOio6KikKLSAJZWNobyB2YXgtZGVjLXVsdHJpeCR7VU5BTUVfUkVMRUFTRX0KLS0J ZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgMjAyMDpDTElYOio6KiB8IDI0MzA6Q0xJWDoqOiop Ci0gCWVjaG8gY2xpcHBlci1pbnRlcmdyYXBoLWNsaXgke1VOQU1FX1JFTEVBU0V9Ci0tCWV4aXQg MCA7OwotKwlleGl0IDs7Ci0gICAgIG1pcHM6KjoqOlVNSVBTIHwgbWlwczoqOio6UklTQ29zKQot IAlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0gCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5j Ci1AQCAtNDU1LDM1ICs0NTgsMzYgQEAKLSAJICBleGl0ICgtMSk7Ci0gCX0KLSBFT0YKLS0JJEND X0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgXAotLQkgICYmICRkdW1teSBgZWNobyAiJHtV TkFNRV9SRUxFQVNFfSIgfCBzZWQgLW4gJ3MvXChbMC05XSpcKS4qL1wxL3AnYCBcCi0tCSAgJiYg ZXhpdCAwCi0rCSRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmCi0rCSAgZHVtbXlh cmc9YGVjaG8gIiR7VU5BTUVfUkVMRUFTRX0iIHwgc2VkIC1uICdzL1woWzAtOV0qXCkuKi9cMS9w J2AgJiYKLSsJICBTWVNURU1fTkFNRT1gJGR1bW15ICRkdW1teWFyZ2AgJiYKLSsJICAgIHsgZWNo byAiJFNZU1RFTV9OQU1FIjsgZXhpdDsgfQotIAllY2hvIG1pcHMtbWlwcy1yaXNjb3Mke1VOQU1F X1JFTEVBU0V9Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIE1vdG9yb2xhOlBvd2VyTUFY X09TOio6KikKLSAJZWNobyBwb3dlcnBjLW1vdG9yb2xhLXBvd2VybWF4Ci0tCWV4aXQgMCA7Owot KwlleGl0IDs7Ci0gICAgIE1vdG9yb2xhOio6NC4zOlBMOC0qKQotIAllY2hvIHBvd2VycGMtaGFy cmlzLXBvd2VybWF4Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIE5pZ2h0X0hhd2s6Kjoq OlBvd2VyTUFYX09TIHwgU3luZXJneTpQb3dlck1BWF9PUzoqOiopCi0gCWVjaG8gcG93ZXJwYy1o YXJyaXMtcG93ZXJtYXgKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgTmlnaHRfSGF3azpQ b3dlcl9VTklYOio6KikKLSAJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcnVuaXgKLS0JZXhpdCAw IDs7Ci0rCWV4aXQgOzsKLSAgICAgbTg4azpDWC9VWDo3KjoqKQotIAllY2hvIG04OGstaGFycmlz LWN4dXg3Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIG04OGs6Kjo0KjpSNCopCi0gCWVj aG8gbTg4ay1tb3Rvcm9sYS1zeXN2NAotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICBtODhr Oio6Myo6UjMqKQotIAllY2hvIG04OGstbW90b3JvbGEtc3lzdjMKLS0JZXhpdCAwIDs7Ci0rCWV4 aXQgOzsKLSAgICAgQVZpaU9OOmRndXg6KjoqKQotLSAgICAgICAgIyBERy9VWCByZXR1cm5zIEFW aWlPTiBmb3IgYWxsIGFyY2hpdGVjdHVyZXMKLS0gICAgICAgIFVOQU1FX1BST0NFU1NPUj1gL3Vz ci9iaW4vdW5hbWUgLXBgCi0rCSMgREcvVVggcmV0dXJucyBBVmlpT04gZm9yIGFsbCBhcmNoaXRl Y3R1cmVzCi0rCVVOQU1FX1BST0NFU1NPUj1gL3Vzci9iaW4vdW5hbWUgLXBgCi0gCWlmIFsgJFVO QU1FX1BST0NFU1NPUiA9IG1jODgxMDAgXSB8fCBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4MTEw IF0KLSAJdGhlbgotIAkgICAgaWYgWyAke1RBUkdFVF9CSU5BUllfSU5URVJGQUNFfXggPSBtODhr ZGd1eGVsZnggXSB8fCBcCi1AQCAtNDk2LDI5ICs1MDAsMjkgQEAKLSAJZWxzZQotIAkgICAgZWNo byBpNTg2LWRnLWRndXgke1VOQU1FX1JFTEVBU0V9Ci0gCWZpCi0tIAlleGl0IDAgOzsKLSsJZXhp dCA7OwotICAgICBNODgqOkRvbHBoaW5PUzoqOiopCSMgRG9scGhpbk9TIChTVlIzKQotIAllY2hv IG04OGstZG9scGhpbi1zeXN2MwotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICBNODgqOio6 UjMqOiopCi0gCSMgRGVsdGEgODhrIHN5c3RlbSBydW5uaW5nIFNWUjMKLSAJZWNobyBtODhrLW1v dG9yb2xhLXN5c3YzCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIFhEODgqOio6KjoqKSAj IFRla3Ryb25peCBYRDg4IHN5c3RlbSBydW5uaW5nIFVUZWtWIChTVlIzKQotIAllY2hvIG04OGst dGVrdHJvbml4LXN5c3YzCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIFRlazQzWzAtOV1b MC05XTpVVGVrOio6KikgIyBUZWt0cm9uaXggNDMwMCBzeXN0ZW0gcnVubmluZyBVVGVrIChCU0Qp Ci0gCWVjaG8gbTY4ay10ZWt0cm9uaXgtYnNkCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAg ICo6SVJJWCo6KjoqKQotIAllY2hvIG1pcHMtc2dpLWlyaXhgZWNobyAke1VOQU1FX1JFTEVBU0V9 fHNlZCAtZSAncy8tL18vZydgCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgID8/Pz8/Pz8/ OkFJWD86WzEyXS4xOjIpICAgIyBBSVggMi4yLjEgb3IgQUlYIDIuMS4xIGlzIFJUL1BDIEFJWC4K LS0JZWNobyByb21wLWlibS1haXggICAgICAjIHVuYW1lIC1tIGdpdmVzIGFuIDggaGV4LWNvZGUg Q1BVIGlkCi0tCWV4aXQgMCA7OyAgICAgICAgICAgICAgIyBOb3RlIHRoYXQ6IGVjaG8gIidgdW5h bWUgLXNgJyIgZ2l2ZXMgJ0FJWCAnCi0rCWVjaG8gcm9tcC1pYm0tYWl4ICAgICAjIHVuYW1lIC1t IGdpdmVzIGFuIDggaGV4LWNvZGUgQ1BVIGlkCi0rCWV4aXQgOzsgICAgICAgICAgICAgICAjIE5v dGUgdGhhdDogZWNobyAiJ2B1bmFtZSAtc2AnIiBnaXZlcyAnQUlYICcKLSAgICAgaSo4NjpBSVg6 KjoqKQotIAllY2hvIGkzODYtaWJtLWFpeAotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICBp YTY0OkFJWDoqOiopCi0gCWlmIFsgLXggL3Vzci9iaW4vb3NsZXZlbCBdIDsgdGhlbgotIAkJSUJN X1JFVj1gL3Vzci9iaW4vb3NsZXZlbGAKLUBAIC01MjYsNyArNTMwLDcgQEAKLSAJCUlCTV9SRVY9 JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9Ci0gCWZpCi0gCWVjaG8gJHtVTkFNRV9N QUNISU5FfS1pYm0tYWl4JHtJQk1fUkVWfQotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICAq OkFJWDoyOjMpCi0gCWlmIGdyZXAgYm9zMzI1IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251 bGwgMj4mMTsgdGhlbgotIAkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotQEAgLTU0MSwxNSArNTQ1 LDE5IEBACi0gCQkJZXhpdCgwKTsKLSAJCQl9Ci0gRU9GCi0tCQkkQ0NfRk9SX0JVSUxEIC1vICRk dW1teSAkZHVtbXkuYyAmJiAkZHVtbXkgJiYgZXhpdCAwCi0tCQllY2hvIHJzNjAwMC1pYm0tYWl4 My4yLjUKLSsJCWlmICRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmIFNZU1RFTV9O QU1FPWAkZHVtbXlgCi0rCQl0aGVuCi0rCQkJZWNobyAiJFNZU1RFTV9OQU1FIgotKwkJZWxzZQot KwkJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIuNQotKwkJZmkKLSAJZWxpZiBncmVwIGJvczMyNCAv dXNyL2luY2x1ZGUvc3RkaW8uaCA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSAJCWVjaG8gcnM2MDAw LWlibS1haXgzLjIuNAotIAllbHNlCi0gCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yCi0gCWZpCi0t CWV4aXQgMCA7OwotLSAgICAqOkFJWDoqOls0NV0pCi0rCWV4aXQgOzsKLSsgICAgKjpBSVg6Kjpb NDU2N10pCi0gCUlCTV9DUFVfSUQ9YC91c3Ivc2Jpbi9sc2RldiAtQyAtYyBwcm9jZXNzb3IgLVMg YXZhaWxhYmxlIHwgc2VkIDFxIHwgYXdrICd7IHByaW50ICQxIH0nYAotIAlpZiAvdXNyL3NiaW4v bHNhdHRyIC1FbCAke0lCTV9DUFVfSUR9IHwgZ3JlcCAnIFBPV0VSJyA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KLSAJCUlCTV9BUkNIPXJzNjAwMAotQEAgLTU2MiwyOCArNTcwLDI4IEBACi0gCQlJQk1f UkVWPSR7VU5BTUVfVkVSU0lPTn0uJHtVTkFNRV9SRUxFQVNFfQotIAlmaQotIAllY2hvICR7SUJN X0FSQ0h9LWlibS1haXgke0lCTV9SRVZ9Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgICo6 QUlYOio6KikKLSAJZWNobyByczYwMDAtaWJtLWFpeAotLQlleGl0IDAgOzsKLSsJZXhpdCA7Owot ICAgICBpYm1ydDo0LjRCU0Q6Knxyb21wLWlibTpCU0Q6KikKLSAJZWNobyByb21wLWlibS1ic2Q0 LjQKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgaWJtcnQ6KkJTRDoqfHJvbXAtaWJtOkJT RDoqKSAgICAgICAgICAgICMgY292ZXJzIFJUL1BDIEJTRCBhbmQKLSAJZWNobyByb21wLWlibS1i c2Qke1VOQU1FX1JFTEVBU0V9ICAgIyA0LjMgd2l0aCB1bmFtZSBhZGRlZCB0bwotLQlleGl0IDAg OzsgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlcG9ydDogcm9tcC1pYm0gQlNEIDQuMwot KwlleGl0IDs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlcG9ydDogcm9tcC1pYm0g QlNEIDQuMwotICAgICAqOkJPU1g6KjoqKQotIAllY2hvIHJzNjAwMC1idWxsLWJvc3gKLS0JZXhp dCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgRFBYLzI/MDA6Qi5PLlMuOio6KikKLSAJZWNobyBtNjhr LWJ1bGwtc3lzdjMKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgOTAwMC9bMzRdPz86NC4z YnNkOjEuKjoqKQotIAllY2hvIG02OGstaHAtYnNkCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0g ICAgIGhwMzAwOjQuNEJTRDoqOiogfCA5MDAwL1szNF0/Pzo0LjNic2Q6Mi4qOiopCi0gCWVjaG8g bTY4ay1ocC1ic2Q0LjQKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgOTAwMC9bMzQ2Nzhd Pz86SFAtVVg6KjoqKQotIAlIUFVYX1JFVj1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAn cy9bXi5dKi5bMEJdKi8vJ2AKLSAJY2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KLUBAIC01OTIs NTIgKzYwMCw1MiBAQAotIAkgICAgOTAwMC9bNjc4XVswLTldWzAtOV0pCi0gCQlpZiBbIC14IC91 c3IvYmluL2dldGNvbmYgXTsgdGhlbgotIAkJICAgIHNjX2NwdV92ZXJzaW9uPWAvdXNyL2Jpbi9n ZXRjb25mIFNDX0NQVV9WRVJTSU9OIDI+L2Rldi9udWxsYAotLSAgICAgICAgICAgICAgICAgICAg c2Nfa2VybmVsX2JpdHM9YC91c3IvYmluL2dldGNvbmYgU0NfS0VSTkVMX0JJVFMgMj4vZGV2L251 bGxgCi0tICAgICAgICAgICAgICAgICAgICBjYXNlICIke3NjX2NwdV92ZXJzaW9ufSIgaW4KLS0g ICAgICAgICAgICAgICAgICAgICAgNTIzKSBIUF9BUkNIPSJocHBhMS4wIiA7OyAjIENQVV9QQV9S SVNDMV8wCi0tICAgICAgICAgICAgICAgICAgICAgIDUyOCkgSFBfQVJDSD0iaHBwYTEuMSIgOzsg IyBDUFVfUEFfUklTQzFfMQotLSAgICAgICAgICAgICAgICAgICAgICA1MzIpICAgICAgICAgICAg ICAgICAgICAgICMgQ1BVX1BBX1JJU0MyXzAKLS0gICAgICAgICAgICAgICAgICAgICAgICBjYXNl ICIke3NjX2tlcm5lbF9iaXRzfSIgaW4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSBI UF9BUkNIPSJocHBhMi4wbiIgOzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIDY0KSBIUF9B UkNIPSJocHBhMi4wdyIgOzsKLSsJCSAgICBzY19rZXJuZWxfYml0cz1gL3Vzci9iaW4vZ2V0Y29u ZiBTQ19LRVJORUxfQklUUyAyPi9kZXYvbnVsbGAKLSsJCSAgICBjYXNlICIke3NjX2NwdV92ZXJz aW9ufSIgaW4KLSsJCSAgICAgIDUyMykgSFBfQVJDSD0iaHBwYTEuMCIgOzsgIyBDUFVfUEFfUklT QzFfMAotKwkJICAgICAgNTI4KSBIUF9BUkNIPSJocHBhMS4xIiA7OyAjIENQVV9QQV9SSVNDMV8x Ci0rCQkgICAgICA1MzIpICAgICAgICAgICAgICAgICAgICAgICMgQ1BVX1BBX1JJU0MyXzAKLSsJ CQljYXNlICIke3NjX2tlcm5lbF9iaXRzfSIgaW4KLSsJCQkgIDMyKSBIUF9BUkNIPSJocHBhMi4w biIgOzsKLSsJCQkgIDY0KSBIUF9BUkNIPSJocHBhMi4wdyIgOzsKLSAJCQkgICcnKSBIUF9BUkNI PSJocHBhMi4wIiA7OyAgICMgSFAtVVggMTAuMjAKLS0gICAgICAgICAgICAgICAgICAgICAgICBl c2FjIDs7Ci0tICAgICAgICAgICAgICAgICAgICBlc2FjCi0rCQkJZXNhYyA7OwotKwkJICAgIGVz YWMKLSAJCWZpCi0gCQlpZiBbICIke0hQX0FSQ0h9IiA9ICIiIF07IHRoZW4KLSAJCSAgICBldmFs ICRzZXRfY2NfZm9yX2J1aWxkCi0tCQkgICAgc2VkICdzL14gICAgICAgICAgICAgIC8vJyA8PCBF T0YgPiRkdW1teS5jCi0rCQkgICAgc2VkICdzL14JCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0gCi0t ICAgICAgICAgICAgICAjZGVmaW5lIF9IUFVYX1NPVVJDRQotLSAgICAgICAgICAgICAgI2luY2x1 ZGUgPHN0ZGxpYi5oPgotLSAgICAgICAgICAgICAgI2luY2x1ZGUgPHVuaXN0ZC5oPgotLQotLSAg ICAgICAgICAgICAgaW50IG1haW4gKCkKLS0gICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAg ICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKLS0gICAgICAgICAgICAgICAgICBsb25nIGJp dHMgPSBzeXNjb25mKF9TQ19LRVJORUxfQklUUyk7Ci0tICAgICAgICAgICAgICAjZW5kaWYKLS0g ICAgICAgICAgICAgICAgICBsb25nIGNwdSAgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOwot LQotLSAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY3B1KQotLSAgICAgICAgICAgICAgCXsKLS0g ICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8wOiBwdXRzICgiaHBwYTEuMCIpOyBicmVh azsKLS0gICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8xOiBwdXRzICgiaHBwYTEuMSIp OyBicmVhazsKLS0gICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMl8wOgotLSAgICAgICAg ICAgICAgI2lmIGRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKQotLSAgICAgICAgICAgICAgCSAgICBz d2l0Y2ggKGJpdHMpCi0tICAgICAgICAgICAgICAJCXsKLS0gICAgICAgICAgICAgIAkJY2FzZSA2 NDogcHV0cyAoImhwcGEyLjB3Iik7IGJyZWFrOwotLSAgICAgICAgICAgICAgCQljYXNlIDMyOiBw dXRzICgiaHBwYTIuMG4iKTsgYnJlYWs7Ci0tICAgICAgICAgICAgICAJCWRlZmF1bHQ6IHB1dHMg KCJocHBhMi4wIik7IGJyZWFrOwotLSAgICAgICAgICAgICAgCQl9IGJyZWFrOwotLSAgICAgICAg ICAgICAgI2Vsc2UgIC8qICFkZWZpbmVkKF9TQ19LRVJORUxfQklUUykgKi8KLS0gICAgICAgICAg ICAgIAkgICAgcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7Ci0tICAgICAgICAgICAgICAjZW5kaWYK LS0gICAgICAgICAgICAgIAlkZWZhdWx0OiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKLS0gICAg ICAgICAgICAgIAl9Ci0tICAgICAgICAgICAgICAgICAgZXhpdCAoMCk7Ci0tICAgICAgICAgICAg ICB9Ci0rCQkjZGVmaW5lIF9IUFVYX1NPVVJDRQotKwkJI2luY2x1ZGUgPHN0ZGxpYi5oPgotKwkJ I2luY2x1ZGUgPHVuaXN0ZC5oPgotKwotKwkJaW50IG1haW4gKCkKLSsJCXsKLSsJCSNpZiBkZWZp bmVkKF9TQ19LRVJORUxfQklUUykKLSsJCSAgICBsb25nIGJpdHMgPSBzeXNjb25mKF9TQ19LRVJO RUxfQklUUyk7Ci0rCQkjZW5kaWYKLSsJCSAgICBsb25nIGNwdSAgPSBzeXNjb25mIChfU0NfQ1BV X1ZFUlNJT04pOwotKwotKwkJICAgIHN3aXRjaCAoY3B1KQotKwkJCXsKLSsJCQljYXNlIENQVV9Q QV9SSVNDMV8wOiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKLSsJCQljYXNlIENQVV9QQV9SSVND MV8xOiBwdXRzICgiaHBwYTEuMSIpOyBicmVhazsKLSsJCQljYXNlIENQVV9QQV9SSVNDMl8wOgot KwkJI2lmIGRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKQotKwkJCSAgICBzd2l0Y2ggKGJpdHMpCi0r CQkJCXsKLSsJCQkJY2FzZSA2NDogcHV0cyAoImhwcGEyLjB3Iik7IGJyZWFrOwotKwkJCQljYXNl IDMyOiBwdXRzICgiaHBwYTIuMG4iKTsgYnJlYWs7Ci0rCQkJCWRlZmF1bHQ6IHB1dHMgKCJocHBh Mi4wIik7IGJyZWFrOwotKwkJCQl9IGJyZWFrOwotKwkJI2Vsc2UgIC8qICFkZWZpbmVkKF9TQ19L RVJORUxfQklUUykgKi8KLSsJCQkgICAgcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7Ci0rCQkjZW5k aWYKLSsJCQlkZWZhdWx0OiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKLSsJCQl9Ci0rCQkgICAg ZXhpdCAoMCk7Ci0rCQl9Ci0gRU9GCi0gCQkgICAgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtbyAk ZHVtbXkgJGR1bW15LmMgMj4vZGV2L251bGwpICYmIEhQX0FSQ0g9YCRkdW1teWAKLSAJCSAgICB0 ZXN0IC16ICIkSFBfQVJDSCIgJiYgSFBfQVJDSD1ocHBhCi1AQCAtNjQ1LDkgKzY1MywxOSBAQAot IAllc2FjCi0gCWlmIFsgJHtIUF9BUkNIfSA9ICJocHBhMi4wdyIgXQotIAl0aGVuCi0tCSAgICAj IGF2b2lkIGRvdWJsZSBldmFsdWF0aW9uIG9mICRzZXRfY2NfZm9yX2J1aWxkCi0tCSAgICB0ZXN0 IC1uICIkQ0NfRk9SX0JVSUxEIiB8fCBldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0tCSAgICBpZiBl Y2hvIF9fTFA2NF9fIHwgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtKSB8IGdyZXAgX19MUDY0 X18gPi9kZXYvbnVsbAotKwkgICAgZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwotKwkgICAgIyBo cHBhMi4wdy1ocC1ocHV4KiBoYXMgYSA2NC1iaXQga2VybmVsIGFuZCBhIGNvbXBpbGVyIGdlbmVy YXRpbmcKLSsJICAgICMgMzItYml0IGNvZGUuICBocHBhNjQtaHAtaHB1eCogaGFzIHRoZSBzYW1l IGtlcm5lbCBhbmQgYSBjb21waWxlcgotKwkgICAgIyBnZW5lcmF0aW5nIDY0LWJpdCBjb2RlLiAg R05VIGFuZCBIUCB1c2UgZGlmZmVyZW50IG5vbWVuY2xhdHVyZToKLSsJICAgICMKLSsJICAgICMg JCBDQ19GT1JfQlVJTEQ9Y2MgLi9jb25maWcuZ3Vlc3MKLSsJICAgICMgPT4gaHBwYTIuMHctaHAt aHB1eDExLjIzCi0rCSAgICAjICQgQ0NfRk9SX0JVSUxEPSJjYyArREEyLjB3IiAuL2NvbmZpZy5n dWVzcwotKwkgICAgIyA9PiBocHBhNjQtaHAtaHB1eDExLjIzCi0rCi0rCSAgICBpZiBlY2hvIF9f TFA2NF9fIHwgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsKSB8Ci0rCQln cmVwIC1xIF9fTFA2NF9fCi0gCSAgICB0aGVuCi0gCQlIUF9BUkNIPSJocHBhMi4wdyIKLSAJICAg IGVsc2UKLUBAIC02NTUsMTEgKzY3MywxMSBAQAotIAkgICAgZmkKLSAJZmkKLSAJZWNobyAke0hQ X0FSQ0h9LWhwLWhwdXgke0hQVVhfUkVWfQotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICBp YTY0OkhQLVVYOio6KikKLSAJSFBVWF9SRVY9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUg J3MvW14uXSouWzBCXSovLydgCi0gCWVjaG8gaWE2NC1ocC1ocHV4JHtIUFVYX1JFVn0KLS0JZXhp dCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgMzA1MCo6SEktVVg6KjoqKQotIAlldmFsICRzZXRfY2Nf Zm9yX2J1aWxkCi0gCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCi1AQCAtNjg3LDIxNiAr NzA1LDI2OSBAQAotIAkgIGV4aXQgKDApOwotIAl9Ci0gRU9GCi0tCSRDQ19GT1JfQlVJTEQgLW8g JGR1bW15ICRkdW1teS5jICYmICRkdW1teSAmJiBleGl0IDAKLSsJJENDX0ZPUl9CVUlMRCAtbyAk ZHVtbXkgJGR1bW15LmMgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAgJiYKLSsJCXsgZWNobyAiJFNZ U1RFTV9OQU1FIjsgZXhpdDsgfQotIAllY2hvIHVua25vd24taGl0YWNoaS1oaXV4d2UyCi0tCWV4 aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIDkwMDAvNz8/OjQuM2JzZDoqOiogfCA5MDAwLzg/Wzc5 XTo0LjNic2Q6KjoqICkKLSAJZWNobyBocHBhMS4xLWhwLWJzZAotLQlleGl0IDAgOzsKLSsJZXhp dCA7OwotICAgICA5MDAwLzg/Pzo0LjNic2Q6KjoqKQotIAllY2hvIGhwcGExLjAtaHAtYnNkCi0t CWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgICo5Pz8qOk1QRS9pWDoqOiogfCAqMzAwMCo6TVBF L2lYOio6KikKLSAJZWNobyBocHBhMS4wLWhwLW1wZWl4Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7 Ci0gICAgIGhwNz8/Ok9TRjE6KjoqIHwgaHA4P1s3OV06T1NGMToqOiogKQotIAllY2hvIGhwcGEx LjEtaHAtb3NmCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIGhwOD8/Ok9TRjE6KjoqKQot IAllY2hvIGhwcGExLjAtaHAtb3NmCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIGkqODY6 T1NGMToqOiopCi0gCWlmIFsgLXggL3Vzci9zYmluL3N5c3ZlcnNpb24gXSA7IHRoZW4KLSAJICAg IGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW9zZjFtawotIAllbHNlCi0gCSAgICBlY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1vc2YxCi0gCWZpCi0tCWV4aXQgMCA7OwotKwlleGl0 IDs7Ci0gICAgIHBhcmlzYyo6TGl0ZXMqOio6KikKLSAJZWNobyBocHBhMS4xLWhwLWxpdGVzCi0t CWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIEMxKjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29u dmV4T1M6QzEqOiopCi0gCWVjaG8gYzEtY29udmV4LWJzZAotLSAgICAgICAgZXhpdCAwIDs7Ci0r CWV4aXQgOzsKLSAgICAgQzIqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMio6KikK LSAJaWYgZ2V0c3lzaW5mbyAtZiBzY2FsYXJfYWNjCi0gCXRoZW4gZWNobyBjMzItY29udmV4LWJz ZAotIAllbHNlIGVjaG8gYzItY29udmV4LWJzZAotIAlmaQotLSAgICAgICAgZXhpdCAwIDs7Ci0r CWV4aXQgOzsKLSAgICAgQzM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM0Kjoq KQotIAllY2hvIGMzNC1jb252ZXgtYnNkCi0tICAgICAgICBleGl0IDAgOzsKLSsJZXhpdCA7Owot ICAgICBDMzgqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMzgqOiopCi0gCWVjaG8g YzM4LWNvbnZleC1ic2QKLS0gICAgICAgIGV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIEM0KjpD b252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzQqOiopCi0gCWVjaG8gYzQtY29udmV4LWJz ZAotLSAgICAgICAgZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgQ1JBWSpZLU1QOio6KjoqKQot IAllY2hvIHltcC1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5d KiQvLlgvJwotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICBDUkFZKltBLVpdOTA6KjoqOiop Ci0gCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gXAot IAl8IHNlZCAtZSAncy9DUkFZLipcKFtBLVpdOTBcKS9cMS8nIFwKLSAJICAgICAgLWUgeS9BQkNE RUZHSElKS0xNTk9QUVJTVFVWV1hZWi9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei8gXAotIAkg ICAgICAtZSAncy9cLlteLl0qJC8uWC8nCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIENS QVkqVFM6KjoqOiopCi0gCWVjaG8gdDkwLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8IHNl ZCAtZSAncy9cLlteLl0qJC8uWC8nCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIENSQVkq VDNFOio6KjoqKQotIAllY2hvIGFscGhhZXY1LWNyYXktdW5pY29zbWske1VOQU1FX1JFTEVBU0V9 IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAg Q1JBWSpTVjE6KjoqOiopCi0gCWVjaG8gc3YxLWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSB8 IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgICo6 VU5JQ09TL21wOio6KikKLSAJZWNobyBjcmF5bnYtY3JheS11bmljb3NtcCR7VU5BTUVfUkVMRUFT RX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAg ICBGMzBbMDFdOlVOSVhfU3lzdGVtX1Y6KjoqIHwgRjcwMDpVTklYX1N5c3RlbV9WOio6KikKLSAJ RlVKSVRTVV9QUk9DPWB1bmFtZSAtbSB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicg J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6J2AKLS0gICAgICAgIEZVSklUU1VfU1lTPWB1bmFt ZSAtcCB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3Bx cnN0dXZ3eHl6JyB8IHNlZCAtZSAncy9cLy8vJ2AKLS0gICAgICAgIEZVSklUU1VfUkVMPWBlY2hv ICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvIC9fLydgCi0tICAgICAgICBlY2hvICIke0ZV SklUU1VfUFJPQ30tZnVqaXRzdS0ke0ZVSklUU1VfU1lTfSR7RlVKSVRTVV9SRUx9IgotLSAgICAg ICAgZXhpdCAwIDs7Ci0rCUZVSklUU1VfU1lTPWB1bmFtZSAtcCB8IHRyICdBQkNERUZHSElKS0xN Tk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAncy9c Ly8vJ2AKLSsJRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy8g L18vJ2AKLSsJZWNobyAiJHtGVUpJVFNVX1BST0N9LWZ1aml0c3UtJHtGVUpJVFNVX1NZU30ke0ZV SklUU1VfUkVMfSIKLSsJZXhpdCA7OwotICAgICA1MDAwOlVOSVhfU3lzdGVtX1Y6NC4qOiopCi0t ICAgICAgICBGVUpJVFNVX1NZUz1gdW5hbWUgLXAgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RV VldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvXC8vLydgCi0t ICAgICAgICBGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgdHIgJ0FCQ0RFRkdI SUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1l ICdzLyAvXy8nYAotLSAgICAgICAgZWNobyAic3BhcmMtZnVqaXRzdS0ke0ZVSklUU1VfU1lTfSR7 RlVKSVRTVV9SRUx9IgotLQlleGl0IDAgOzsKLSsJRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIg J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXon IHwgc2VkIC1lICdzL1wvLy8nYAotKwlGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9 IHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1 dnd4eXonIHwgc2VkIC1lICdzLyAvXy8nYAotKwllY2hvICJzcGFyYy1mdWppdHN1LSR7RlVKSVRT VV9TWVN9JHtGVUpJVFNVX1JFTH0iCi0rCWV4aXQgOzsKLSAgICAgaSo4NjpCU0QvMzg2Oio6KiB8 IGkqODY6QlNEL09TOio6KiB8ICo6QXNjZW5kXCBFbWJlZGRlZC9PUzoqOiopCi0gCWVjaG8gJHtV TkFNRV9NQUNISU5FfS1wYy1ic2RpJHtVTkFNRV9SRUxFQVNFfQotLQlleGl0IDAgOzsKLSsJZXhp dCA7OwotICAgICBzcGFyYyo6QlNEL09TOio6KikKLSAJZWNobyBzcGFyYy11bmtub3duLWJzZGkk e1VOQU1FX1JFTEVBU0V9Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgICo6QlNEL09TOio6 KikKLSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYnNkaSR7VU5BTUVfUkVMRUFTRX0K LS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgKjpGcmVlQlNEOio6KikKLS0JZWNobyAke1VO QU1FX01BQ0hJTkV9LXVua25vd24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1l ICdzL1stKF0uKi8vJ2AKLS0JZXhpdCAwIDs7Ci0rCVVOQU1FX1BST0NFU1NPUj1gL3Vzci9iaW4v dW5hbWUgLXBgCi0rCWNhc2UgJHtVTkFNRV9QUk9DRVNTT1J9IGluCi0rCSAgICBhbWQ2NCkKLSsJ CWVjaG8geDg2XzY0LXVua25vd24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1l ICdzL1stKF0uKi8vJ2AgOzsKLSsJICAgICopCi0rCQllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS11 bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydg IDs7Ci0rCWVzYWMKLSsJZXhpdCA7OwotICAgICBpKjpDWUdXSU4qOiopCi0gCWVjaG8gJHtVTkFN RV9NQUNISU5FfS1wYy1jeWd3aW4KLS0JZXhpdCAwIDs7Ci0tICAgIGkqOk1JTkdXKjoqKQotKwll eGl0IDs7Ci0rICAgICo6TUlOR1c2NCo6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1p bmd3NjQKLSsJZXhpdCA7OwotKyAgICAqOk1JTkdXKjoqKQotIAllY2hvICR7VU5BTUVfTUFDSElO RX0tcGMtbWluZ3czMgotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotKyAgICBpKjpNU1lTKjoqKQot KwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbXN5cwotKwlleGl0IDs7Ci0rICAgIGkqOndpbmRv d3MzMio6KikKLSsJIyB1bmFtZSAtbSBpbmNsdWRlcyAiLXBjIiBvbiB0aGlzIHN5c3RlbS4KLSsJ ZWNobyAke1VOQU1FX01BQ0hJTkV9LW1pbmd3MzIKLSsJZXhpdCA7OwotICAgICBpKjpQVyo6KikK LSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXB3MzIKLS0JZXhpdCAwIDs7Ci0tICAgIHg4NjpJ bnRlcml4KjpbMzRdKikKLS0JZWNobyBpNTg2LXBjLWludGVyaXgke1VOQU1FX1JFTEVBU0V9fHNl ZCAtZSAncy9cLi4qLy8nCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0rICAgICo6SW50ZXJpeCo6 KikKLSsJY2FzZSAke1VOQU1FX01BQ0hJTkV9IGluCi0rCSAgICB4ODYpCi0rCQllY2hvIGk1ODYt cGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KLSsJCWV4aXQgOzsKLSsJICAgIGF1dGhlbnRpY2Ft ZCB8IGdlbnVpbmVpbnRlbCB8IEVNNjRUKQotKwkJZWNobyB4ODZfNjQtdW5rbm93bi1pbnRlcml4 JHtVTkFNRV9SRUxFQVNFfQotKwkJZXhpdCA7OwotKwkgICAgSUE2NCkKLSsJCWVjaG8gaWE2NC11 bmtub3duLWludGVyaXgke1VOQU1FX1JFTEVBU0V9Ci0rCQlleGl0IDs7Ci0rCWVzYWMgOzsKLSAg ICAgWzM0NV04NjpXaW5kb3dzXzk1OiogfCBbMzQ1XTg2OldpbmRvd3NfOTg6KiB8IFszNDVdODY6 V2luZG93c19OVDoqKQotIAllY2hvIGkke1VOQU1FX01BQ0hJTkV9LXBjLW1rcwotLQlleGl0IDAg OzsKLSsJZXhpdCA7OwotKyAgICA4NjY0OldpbmRvd3NfTlQ6KikKLSsJZWNobyB4ODZfNjQtcGMt bWtzCi0rCWV4aXQgOzsKLSAgICAgaSo6V2luZG93c19OVCo6KiB8IFBlbnRpdW0qOldpbmRvd3Nf TlQqOiopCi0gCSMgSG93IGRvIHdlIGtub3cgaXQncyBJbnRlcml4IHJhdGhlciB0aGFuIHRoZSBn ZW5lcmljIFBPU0lYIHN1YnN5c3RlbT8KLSAJIyBJdCBhbHNvIGNvbmZsaWN0cyB3aXRoIHByZS0y LjAgdmVyc2lvbnMgb2YgQVQmVCBVV0lOLiBTaG91bGQgd2UKLSAJIyBVTkFNRV9NQUNISU5FIGJh c2VkIG9uIHRoZSBvdXRwdXQgb2YgdW5hbWUgaW5zdGVhZCBvZiBpMzg2PwotIAllY2hvIGk1ODYt cGMtaW50ZXJpeAotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICBpKjpVV0lOKjoqKQotIAll Y2hvICR7VU5BTUVfTUFDSElORX0tcGMtdXdpbgotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotKyAg ICBhbWQ2NDpDWUdXSU4qOio6KiB8IHg4Nl82NDpDWUdXSU4qOio6KikKLSsJZWNobyB4ODZfNjQt dW5rbm93bi1jeWd3aW4KLSsJZXhpdCA7OwotICAgICBwKjpDWUdXSU4qOiopCi0gCWVjaG8gcG93 ZXJwY2xlLXVua25vd24tY3lnd2luCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIHByZXAq OlN1bk9TOjUuKjoqKQotIAllY2hvIHBvd2VycGNsZS11bmtub3duLXNvbGFyaXMyYGVjaG8gJHtV TkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7 Ci0gICAgICo6R05VOio6KikKLSAJIyB0aGUgR05VIHN5c3RlbQotIAllY2hvIGBlY2hvICR7VU5B TUVfTUFDSElORX18c2VkIC1lICdzLFstL10uKiQsLCdgLXVua25vd24tZ251YGVjaG8gJHtVTkFN RV9SRUxFQVNFfXxzZWQgLWUgJ3MsLy4qJCwsJ2AKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAg ICAgKjpHTlUvKjoqOiopCi0gCSMgb3RoZXIgc3lzdGVtcyB3aXRoIEdOVSBsaWJjIGFuZCB1c2Vy bGFuZAotIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1gZWNobyAke1VOQU1FX1NZU1RF TX0gfCBzZWQgJ3MsXlteL10qLywsJyB8IHRyICdbQS1aXScgJ1thLXpdJ2BgZWNobyAke1VOQU1F X1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgLWdudQotLQlleGl0IDAgOzsKLSsJZXhpdCA7 OwotICAgICBpKjg2Ok1pbml4Oio6KikKLSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1pbml4 Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0rICAgIGFhcmNoNjQ6TGludXg6KjoqKQotKwllY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBhYXJj aDY0X2JlOkxpbnV4Oio6KikKLSsJVU5BTUVfTUFDSElORT1hYXJjaDY0X2JlCi0rCWVjaG8gJHtV TkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIGFscGhhOkxp bnV4Oio6KikKLSsJY2FzZSBgc2VkIC1uICcvXmNwdSBtb2RlbC9zL14uKjogXCguKlwpL1wxL3An IDwgL3Byb2MvY3B1aW5mb2AgaW4KLSsJICBFVjUpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NSA7 OwotKwkgIEVWNTYpICBVTkFNRV9NQUNISU5FPWFscGhhZXY1NiA7OwotKwkgIFBDQTU2KSBVTkFN RV9NQUNISU5FPWFscGhhcGNhNTYgOzsKLSsJICBQQ0E1NykgVU5BTUVfTUFDSElORT1hbHBoYXBj YTU2IDs7Ci0rCSAgRVY2KSAgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjYgOzsKLSsJICBFVjY3KSAg VU5BTUVfTUFDSElORT1hbHBoYWV2NjcgOzsKLSsJICBFVjY4KikgVU5BTUVfTUFDSElORT1hbHBo YWV2NjggOzsKLSsJZXNhYwotKwlvYmpkdW1wIC0tcHJpdmF0ZS1oZWFkZXJzIC9iaW4vc2ggfCBn cmVwIC1xIGxkLnNvLjEKLSsJaWYgdGVzdCAiJD8iID0gMCA7IHRoZW4gTElCQz0ibGliYzEiIDsg ZWxzZSBMSUJDPSIiIDsgZmkKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgt Z251JHtMSUJDfQotKwlleGl0IDs7Ci0gICAgIGFybSo6TGludXg6KjoqKQotKwlldmFsICRzZXRf Y2NfZm9yX2J1aWxkCi0rCWlmIGVjaG8gX19BUk1fRUFCSV9fIHwgJENDX0ZPUl9CVUlMRCAtRSAt IDI+L2Rldi9udWxsIFwKLSsJICAgIHwgZ3JlcCAtcSBfX0FSTV9FQUJJX18KLSsJdGhlbgotKwkg ICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWVsc2UKLSsJICAg IGlmIGVjaG8gX19BUk1fUENTX1ZGUCB8ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCBc Ci0rCQl8IGdyZXAgLXEgX19BUk1fUENTX1ZGUAotKwkgICAgdGhlbgotKwkJZWNobyAke1VOQU1F X01BQ0hJTkV9LXVua25vd24tbGludXgtZ251ZWFiaQotKwkgICAgZWxzZQotKwkJZWNobyAke1VO QU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251ZWFiaWhmCi0rCSAgICBmaQotKwlmaQotKwll eGl0IDs7Ci0rICAgIGF2cjMyKjpMaW51eDoqOiopCi0gCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11 bmtub3duLWxpbnV4LWdudQotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICBjcmlzOkxpbnV4 Oio6KikKLS0JZWNobyBjcmlzLWF4aXMtbGludXgtZ251Ci0tCWV4aXQgMCA7OwotKwllY2hvICR7 VU5BTUVfTUFDSElORX0tYXhpcy1saW51eC1nbnUKLSsJZXhpdCA7OwotICAgICBjcmlzdjMyOkxp bnV4Oio6KikKLS0JZWNobyBjcmlzdjMyLWF4aXMtbGludXgtZ251Ci0tCWV4aXQgMCA7OwotKwll Y2hvICR7VU5BTUVfTUFDSElORX0tYXhpcy1saW51eC1nbnUKLSsJZXhpdCA7OwotICAgICBmcnY6 TGludXg6KjoqKQotLSAgICAJZWNobyBmcnYtdW5rbm93bi1saW51eC1nbnUKLS0JZXhpdCAwIDs7 Ci0tICAgIGlhNjQ6TGludXg6KjoqKQotIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1s aW51eC1nbnUKLS0JZXhpdCAwIDs7Ci0tICAgIG0zMnIqOkxpbnV4Oio6KikKLSsJZXhpdCA7Owot KyAgICBoZXhhZ29uOkxpbnV4Oio6KikKLSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24t bGludXgtZ251Ci0tCWV4aXQgMCA7OwotLSAgICBtNjgqOkxpbnV4Oio6KikKLS0JZWNobyAke1VO QU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0tCWV4aXQgMCA7OwotLSAgICBtaXBzOkxp bnV4Oio6KikKLSsJZXhpdCA7OwotKyAgICBpKjg2OkxpbnV4Oio6KikKLSsJTElCQz1nbnUKLSAJ ZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotIAlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYwot LQkjdW5kZWYgQ1BVCi0tCSN1bmRlZiBtaXBzCi0tCSN1bmRlZiBtaXBzZWwKLS0JI2lmIGRlZmlu ZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8 fCBkZWZpbmVkKE1JUFNFTCkKLS0JQ1BVPW1pcHNlbAotLQkjZWxzZQotLQkjaWYgZGVmaW5lZChf X01JUFNFQl9fKSB8fCBkZWZpbmVkKF9fTUlQU0VCKSB8fCBkZWZpbmVkKF9NSVBTRUIpIHx8IGRl ZmluZWQoTUlQU0VCKQotLQlDUFU9bWlwcwotLQkjZWxzZQotLQlDUFU9Ci0tCSNlbmRpZgotKwkj aWZkZWYgX19kaWV0bGliY19fCi0rCUxJQkM9ZGlldGxpYmMKLSAJI2VuZGlmCi0gRU9GCi0tCWV2 YWwgYCRDQ19GT1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBncmVwIF5DUFU9YAot LQl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIGVjaG8gIiR7Q1BVfS11bmtub3duLWxpbnV4LWdudSIg JiYgZXhpdCAwCi0tCTs7Ci0tICAgIG1pcHM2NDpMaW51eDoqOiopCi0rCWV2YWwgYCRDQ19GT1Jf QlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBncmVwICdeTElCQydgCi0rCWVjaG8gIiR7 VU5BTUVfTUFDSElORX0tcGMtbGludXgtJHtMSUJDfSIKLSsJZXhpdCA7OwotKyAgICBpYTY0Okxp bnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4 aXQgOzsKLSsgICAgbTMycio6TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5r bm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBtNjgqOkxpbnV4Oio6KikKLSsJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgbWlwczpM aW51eDoqOiogfCBtaXBzNjQ6TGludXg6KjoqKQotIAlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0g CXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0gCSN1bmRlZiBDUFUKLS0JI3VuZGVmIG1p cHM2NAotLQkjdW5kZWYgbWlwczY0ZWwKLSsJI3VuZGVmICR7VU5BTUVfTUFDSElORX0KLSsJI3Vu ZGVmICR7VU5BTUVfTUFDSElORX1lbAotIAkjaWYgZGVmaW5lZChfX01JUFNFTF9fKSB8fCBkZWZp bmVkKF9fTUlQU0VMKSB8fCBkZWZpbmVkKF9NSVBTRUwpIHx8IGRlZmluZWQoTUlQU0VMKQotLQlD UFU9bWlwczY0ZWwKLSsJQ1BVPSR7VU5BTUVfTUFDSElORX1lbAotIAkjZWxzZQotIAkjaWYgZGVm aW5lZChfX01JUFNFQl9fKSB8fCBkZWZpbmVkKF9fTUlQU0VCKSB8fCBkZWZpbmVkKF9NSVBTRUIp IHx8IGRlZmluZWQoTUlQU0VCKQotLQlDUFU9bWlwczY0Ci0rCUNQVT0ke1VOQU1FX01BQ0hJTkV9 Ci0gCSNlbHNlCi0gCUNQVT0KLSAJI2VuZGlmCi0gCSNlbmRpZgotIEVPRgotLQlldmFsIGAkQ0Nf Rk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCBeQ1BVPWAKLS0JdGVzdCB4 IiR7Q1BVfSIgIT0geCAmJiBlY2hvICIke0NQVX0tdW5rbm93bi1saW51eC1nbnUiICYmIGV4aXQg MAotKwlldmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCAn XkNQVSdgCi0rCXRlc3QgeCIke0NQVX0iICE9IHggJiYgeyBlY2hvICIke0NQVX0tdW5rbm93bi1s aW51eC1nbnUiOyBleGl0OyB9Ci0gCTs7Ci0tICAgIHBwYzpMaW51eDoqOiopCi0tCWVjaG8gcG93 ZXJwYy11bmtub3duLWxpbnV4LWdudQotLQlleGl0IDAgOzsKLS0gICAgcHBjNjQ6TGludXg6Kjoq KQotLQllY2hvIHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQotLQlleGl0IDAgOzsKLS0gICAg YWxwaGE6TGludXg6KjoqKQotLQljYXNlIGBzZWQgLW4gJy9eY3B1IG1vZGVsL3MvXi4qOiBcKC4q XCkvXDEvcCcgPCAvcHJvYy9jcHVpbmZvYCBpbgotLQkgIEVWNSkgICBVTkFNRV9NQUNISU5FPWFs cGhhZXY1IDs7Ci0tCSAgRVY1NikgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjU2IDs7Ci0tCSAgUENB NTYpIFVOQU1FX01BQ0hJTkU9YWxwaGFwY2E1NiA7OwotLQkgIFBDQTU3KSBVTkFNRV9NQUNISU5F PWFscGhhcGNhNTYgOzsKLS0JICBFVjYpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NiA7OwotLQkg IEVWNjcpICBVTkFNRV9NQUNISU5FPWFscGhhZXY2NyA7OwotLQkgIEVWNjgqKSBVTkFNRV9NQUNI SU5FPWFscGhhZXY2OCA7OwotLSAgICAgICAgZXNhYwotLQlvYmpkdW1wIC0tcHJpdmF0ZS1oZWFk ZXJzIC9iaW4vc2ggfCBncmVwIGxkLnNvLjEgPi9kZXYvbnVsbAotLQlpZiB0ZXN0ICIkPyIgPSAw IDsgdGhlbiBMSUJDPSJsaWJjMSIgOyBlbHNlIExJQkM9IiIgOyBmaQotLQllY2hvICR7VU5BTUVf TUFDSElORX0tdW5rbm93bi1saW51eC1nbnUke0xJQkN9Ci0tCWV4aXQgMCA7OwotKyAgICBvcjMy OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0r CWV4aXQgOzsKLSsgICAgcGFkcmU6TGludXg6KjoqKQotKwllY2hvIHNwYXJjLXVua25vd24tbGlu dXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgcGFyaXNjNjQ6TGludXg6KjoqIHwgaHBwYTY0OkxpbnV4 Oio6KikKLSsJZWNobyBocHBhNjQtdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotICAgICBw YXJpc2M6TGludXg6KjoqIHwgaHBwYTpMaW51eDoqOiopCi0gCSMgTG9vayBmb3IgQ1BVIGxldmVs Ci0gCWNhc2UgYGdyZXAgJ15jcHVbXmEtel0qOicgL3Byb2MvY3B1aW5mbyAyPi9kZXYvbnVsbCB8 IGN1dCAtZCcgJyAtZjJgIGluCi1AQCAtOTA0LDExNSArOTc1LDcxIEBACi0gCSAgUEE4KikgZWNo byBocHBhMi4wLXVua25vd24tbGludXgtZ251IDs7Ci0gCSAgKikgICAgZWNobyBocHBhLXVua25v d24tbGludXgtZ251IDs7Ci0gCWVzYWMKLS0JZXhpdCAwIDs7Ci0tICAgIHBhcmlzYzY0OkxpbnV4 Oio6KiB8IGhwcGE2NDpMaW51eDoqOiopCi0tCWVjaG8gaHBwYTY0LXVua25vd24tbGludXgtZ251 Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0rICAgIHBwYzY0OkxpbnV4Oio6KikKLSsJZWNobyBw b3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBwcGM6TGludXg6Kjoq KQotKwllY2hvIHBvd2VycGMtdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotICAgICBzMzkw OkxpbnV4Oio6KiB8IHMzOTB4OkxpbnV4Oio6KikKLSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LWli bS1saW51eAotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICBzaDY0KjpMaW51eDoqOiopCi0t ICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLS0JZXhpdCAwIDs7 Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0g ICAgIHNoKjpMaW51eDoqOiopCi0gCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4 LWdudQotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICBzcGFyYzpMaW51eDoqOiogfCBzcGFy YzY0OkxpbnV4Oio6KikKLSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251 Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0rICAgIHRpbGUqOkxpbnV4Oio6KikKLSsJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgdmF4Okxp bnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1saW51eC1nbnUKLSsJZXhpdCA7 OwotICAgICB4ODZfNjQ6TGludXg6KjoqKQotLQllY2hvIHg4Nl82NC11bmtub3duLWxpbnV4LWdu dQotLQlleGl0IDAgOzsKLS0gICAgaSo4NjpMaW51eDoqOiopCi0tCSMgVGhlIEJGRCBsaW5rZXIg a25vd3Mgd2hhdCB0aGUgZGVmYXVsdCBvYmplY3QgZmlsZSBmb3JtYXQgaXMsIHNvCi0tCSMgZmly c3Qgc2VlIGlmIGl0IHdpbGwgdGVsbCB1cy4gY2QgdG8gdGhlIHJvb3QgZGlyZWN0b3J5IHRvIHBy ZXZlbnQKLS0JIyBwcm9ibGVtcyB3aXRoIG90aGVyIHByb2dyYW1zIG9yIGRpcmVjdG9yaWVzIGNh bGxlZCBgbGQnIGluIHRoZSBwYXRoLgotLQkjIFNldCBMQ19BTEw9QyB0byBlbnN1cmUgbGQgb3V0 cHV0cyBtZXNzYWdlcyBpbiBFbmdsaXNoLgotLQlsZF9zdXBwb3J0ZWRfdGFyZ2V0cz1gY2QgLzsg TENfQUxMPUMgbGQgLS1oZWxwIDI+JjEgXAotLQkJCSB8IHNlZCAtbmUgJy9zdXBwb3J0ZWQgdGFy Z2V0czovIWQKLS0JCQkJICAgIHMvWyAJXVsgCV0qLyAvZwotLQkJCQkgICAgcy8uKnN1cHBvcnRl ZCB0YXJnZXRzOiAqLy8KLS0JCQkJICAgIHMvIC4qLy8KLS0JCQkJICAgIHAnYAotLSAgICAgICAg Y2FzZSAiJGxkX3N1cHBvcnRlZF90YXJnZXRzIiBpbgotLQkgIGVsZjMyLWkzODYpCi0tCQlURU5U QVRJVkU9IiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtZ251IgotLQkJOzsKLS0JICBhLm91dC1p Mzg2LWxpbnV4KQotLQkJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC1nbnVhb3V0Igot LQkJZXhpdCAwIDs7Ci0tCSAgY29mZi1pMzg2KQotLQkJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1w Yy1saW51eC1nbnVjb2ZmIgotLQkJZXhpdCAwIDs7Ci0tCSAgIiIpCi0tCQkjIEVpdGhlciBhIHBy ZS1CRkQgYS5vdXQgbGlua2VyIChsaW51eC1nbnVvbGRsZCkgb3IKLS0JCSMgb25lIHRoYXQgZG9l cyBub3QgZ2l2ZSB1cyB1c2VmdWwgLS1oZWxwLgotLQkJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1w Yy1saW51eC1nbnVvbGRsZCIKLS0JCWV4aXQgMCA7OwotLQllc2FjCi0tCSMgRGV0ZXJtaW5lIHdo ZXRoZXIgdGhlIGRlZmF1bHQgY29tcGlsZXIgaXMgYS5vdXQgb3IgZWxmCi0tCWV2YWwgJHNldF9j Y19mb3JfYnVpbGQKLS0Jc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLS0JI2luY2x1ZGUg PGZlYXR1cmVzLmg+Ci0tCSNpZmRlZiBfX0VMRl9fCi0tCSMgaWZkZWYgX19HTElCQ19fCi0tCSMg IGlmIF9fR0xJQkNfXyA+PSAyCi0tCUxJQkM9Z251Ci0tCSMgIGVsc2UKLS0JTElCQz1nbnVsaWJj MQotLQkjICBlbmRpZgotLQkjIGVsc2UKLS0JTElCQz1nbnVsaWJjMQotLQkjIGVuZGlmCi0tCSNl bHNlCi0tCSNpZmRlZiBfX0lOVEVMX0NPTVBJTEVSCi0tCUxJQkM9Z251Ci0tCSNlbHNlCi0tCUxJ QkM9Z251YW91dAotLQkjZW5kaWYKLS0JI2VuZGlmCi0tCSNpZmRlZiBfX2RpZXRsaWJjX18KLS0J TElCQz1kaWV0bGliYwotLQkjZW5kaWYKLS1FT0YKLS0JZXZhbCBgJENDX0ZPUl9CVUlMRCAtRSAk ZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgXkxJQkM9YAotLQl0ZXN0IHgiJHtMSUJDfSIgIT0g eCAmJiBlY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LSR7TElCQ30iICYmIGV4aXQgMAot LQl0ZXN0IHgiJHtURU5UQVRJVkV9IiAhPSB4ICYmIGVjaG8gIiR7VEVOVEFUSVZFfSIgJiYgZXhp dCAwCi0tCTs7Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotKwll eGl0IDs7Ci0rICAgIHh0ZW5zYSo6TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotICAgICBpKjg2OkRZTklYL3B0eDo0KjoqKQot IAkjIHB0eCA0LjAgZG9lcyB1bmFtZSAtcyBjb3JyZWN0bHksIHdpdGggRFlOSVgvcHR4IGluIHRo ZXJlLgotIAkjIGVhcmxpZXIgdmVyc2lvbnMgYXJlIG1lc3NlZCB1cCBhbmQgcHV0IHRoZSBub2Rl bmFtZSBpbiBib3RoCi0gCSMgc3lzbmFtZSBhbmQgbm9kZW5hbWUuCi0gCWVjaG8gaTM4Ni1zZXF1 ZW50LXN5c3Y0Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIGkqODY6VU5JWF9TVjo0LjJN UDoyLiopCi0tICAgICAgICAjIFVuaXh3YXJlIGlzIGFuIG9mZnNob290IG9mIFNWUjQsIGJ1dCBp dCBoYXMgaXRzIG93biB2ZXJzaW9uCi0tICAgICAgICAjIG51bWJlciBzZXJpZXMgc3RhcnRpbmcg d2l0aCAyLi4uCi0tICAgICAgICAjIEkgYW0gbm90IHBvc2l0aXZlIHRoYXQgb3RoZXIgU1ZSNCBz eXN0ZW1zIHdvbid0IG1hdGNoIHRoaXMsCi0rCSMgVW5peHdhcmUgaXMgYW4gb2Zmc2hvb3Qgb2Yg U1ZSNCwgYnV0IGl0IGhhcyBpdHMgb3duIHZlcnNpb24KLSsJIyBudW1iZXIgc2VyaWVzIHN0YXJ0 aW5nIHdpdGggMi4uLgotKwkjIEkgYW0gbm90IHBvc2l0aXZlIHRoYXQgb3RoZXIgU1ZSNCBzeXN0 ZW1zIHdvbid0IG1hdGNoIHRoaXMsCi0gCSMgSSBqdXN0IGhhdmUgdG8gaG9wZS4gIC0tIHJtcy4K LS0gICAgICAgICMgVXNlIHN5c3Y0LjJ1dy4uLiBzbyB0aGF0IHN5c3Y0KiBtYXRjaGVzIGl0Lgot KwkjIFVzZSBzeXN2NC4ydXcuLi4gc28gdGhhdCBzeXN2NCogbWF0Y2hlcyBpdC4KLSAJZWNobyAk e1VOQU1FX01BQ0hJTkV9LXBjLXN5c3Y0LjJ1dyR7VU5BTUVfVkVSU0lPTn0KLS0JZXhpdCAwIDs7 Ci0rCWV4aXQgOzsKLSAgICAgaSo4NjpPUy8yOio6KikKLSAJIyBJZiB3ZSB3ZXJlIGFibGUgdG8g ZmluZCBgdW5hbWUnLCB0aGVuIEVNWCBVbml4IGNvbXBhdGliaWxpdHkKLSAJIyBpcyBwcm9iYWJs eSBpbnN0YWxsZWQuCi0gCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1vczItZW14Ci0tCWV4aXQg MCA7OwotKwlleGl0IDs7Ci0gICAgIGkqODY6WFRTLTMwMDoqOlNUT1ApCi0gCWVjaG8gJHtVTkFN RV9NQUNISU5FfS11bmtub3duLXN0b3AKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgaSo4 NjphdGhlb3M6KjoqKQotIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1hdGhlb3MKLS0J ZXhpdCAwIDs7Ci0tCWkqODY6c3lsbGFibGU6KjoqKQotKwlleGl0IDs7Ci0rICAgIGkqODY6c3ls bGFibGU6KjoqKQotIAllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3lsbGFibGUKLS0JZXhpdCAw IDs7Ci0tICAgIGkqODY6THlueE9TOjIuKjoqIHwgaSo4NjpMeW54T1M6My5bMDFdKjoqIHwgaSo4 NjpMeW54T1M6NC4wKjoqKQotKwlleGl0IDs7Ci0rICAgIGkqODY6THlueE9TOjIuKjoqIHwgaSo4 NjpMeW54T1M6My5bMDFdKjoqIHwgaSo4NjpMeW54T1M6NC5bMDJdKjoqKQotIAllY2hvIGkzODYt dW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0g ICAgIGkqODY6KkRPUzoqOiopCi0gCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1tc2Rvc2RqZ3Bw Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIGkqODY6Kjo0Lio6KiB8IGkqODY6U1lTVEVN X1Y6NC4qOiopCi0gCVVOQU1FX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkICdzL1wv TVAkLy8nYAotIAlpZiBncmVwIE5vdmVsbCAvdXNyL2luY2x1ZGUvbGluay5oID4vZGV2L251bGwg Mj4vZGV2L251bGw7IHRoZW4KLUBAIC0xMDIwLDE1ICsxMDQ3LDE2IEBACi0gCWVsc2UKLSAJCWVj aG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2JHtVTkFNRV9SRUx9Ci0gCWZpCi0tCWV4aXQgMCA7 OwotLSAgICBpKjg2Oio6NTpbNzhdKikKLSsJZXhpdCA7OwotKyAgICBpKjg2Oio6NTpbNjc4XSop Ci0rCSMgVW5peFdhcmUgNy54LCBPcGVuVU5JWCBhbmQgT3BlblNlcnZlciA2LgotIAljYXNlIGAv YmluL3VuYW1lIC1YIHwgZ3JlcCAiXk1hY2hpbmUiYCBpbgotIAkgICAgKjQ4NiopCSAgICAgVU5B TUVfTUFDSElORT1pNDg2IDs7Ci0gCSAgICAqUGVudGl1bSkJICAgICBVTkFNRV9NQUNISU5FPWk1 ODYgOzsKLSAJICAgICpQZW50KnwqQ2VsZXJvbikgVU5BTUVfTUFDSElORT1pNjg2IDs7Ci0gCWVz YWMKLSAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0k e1VOQU1FX1NZU1RFTX0ke1VOQU1FX1ZFUlNJT059Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0g ICAgIGkqODY6KjozLjI6KikKLSAJaWYgdGVzdCAtZiAvdXNyL29wdGlvbnMvY2IubmFtZTsgdGhl bgotIAkJVU5BTUVfUkVMPWBzZWQgLW4gJ3MvLipWZXJzaW9uIC8vcCcgPC91c3Ivb3B0aW9ucy9j Yi5uYW1lYAotQEAgLTEwNDYsNzMgKzEwNzQsODYgQEAKLSAJZWxzZQotIAkJZWNobyAke1VOQU1F X01BQ0hJTkV9LXBjLXN5c3YzMgotIAlmaQotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICBw YzoqOio6KikKLSAJIyBMZWZ0IGhlcmUgZm9yIGNvbXBhdGliaWxpdHk6Ci0tICAgICAgICAjIHVu YW1lIC1tIHByaW50cyBmb3IgREpHUFAgYWx3YXlzICdwYycsIGJ1dCBpdCBwcmludHMgbm90aGlu ZyBhYm91dAotLSAgICAgICAgIyB0aGUgcHJvY2Vzc29yLCBzbyB3ZSBwbGF5IHNhZmUgYnkgYXNz dW1pbmcgaTM4Ni4KLS0JZWNobyBpMzg2LXBjLW1zZG9zZGpncHAKLS0gICAgICAgIGV4aXQgMCA7 OwotKwkjIHVuYW1lIC1tIHByaW50cyBmb3IgREpHUFAgYWx3YXlzICdwYycsIGJ1dCBpdCBwcmlu dHMgbm90aGluZyBhYm91dAotKwkjIHRoZSBwcm9jZXNzb3IsIHNvIHdlIHBsYXkgc2FmZSBieSBh c3N1bWluZyBpNTg2LgotKwkjIE5vdGU6IHdoYXRldmVyIHRoaXMgaXMsIGl0IE1VU1QgYmUgdGhl IHNhbWUgYXMgd2hhdCBjb25maWcuc3ViCi0rCSMgcHJpbnRzIGZvciB0aGUgImRqZ3BwIiBob3N0 LCBvciBlbHNlIEdEQiBjb25maWd1cnkgd2lsbCBkZWNpZGUgdGhhdAotKwkjIHRoaXMgaXMgYSBj cm9zcy1idWlsZC4KLSsJZWNobyBpNTg2LXBjLW1zZG9zZGpncHAKLSsJZXhpdCA7OwotICAgICBJ bnRlbDpNYWNoOjMqOiopCi0gCWVjaG8gaTM4Ni1wYy1tYWNoMwotLQlleGl0IDAgOzsKLSsJZXhp dCA7OwotICAgICBwYXJhZ29uOio6KjoqKQotIAllY2hvIGk4NjAtaW50ZWwtb3NmMQotLQlleGl0 IDAgOzsKLSsJZXhpdCA7OwotICAgICBpODYwOio6NC4qOiopICMgaTg2MC1TVlI0Ci0gCWlmIGdy ZXAgU3RhcmRlbnQgL3Vzci9pbmNsdWRlL3N5cy91YWRtaW4uaCA+L2Rldi9udWxsIDI+JjEgOyB0 aGVuCi0gCSAgZWNobyBpODYwLXN0YXJkZW50LXN5c3Yke1VOQU1FX1JFTEVBU0V9ICMgU3RhcmRl bnQgVmlzdHJhIGk4NjAtU1ZSNAotIAllbHNlICMgQWRkIG90aGVyIGk4NjAtU1ZSNCB2ZW5kb3Jz IGJlbG93IGFzIHRoZXkgYXJlIGRpc2NvdmVyZWQuCi0gCSAgZWNobyBpODYwLXVua25vd24tc3lz diR7VU5BTUVfUkVMRUFTRX0gICMgVW5rbm93biBpODYwLVNWUjQKLSAJZmkKLS0JZXhpdCAwIDs7 Ci0rCWV4aXQgOzsKLSAgICAgbWluaSo6Q1RJWDpTWVMqNToqKQotIAkjICJtaW5pZnJhbWUiCi0g CWVjaG8gbTY4MDEwLWNvbnZlcmdlbnQtc3lzdgotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAg ICBtYzY4azpVTklYOlNZU1RFTTU6My41MW0pCi0gCWVjaG8gbTY4ay1jb252ZXJnZW50LXN5c3YK LS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgTTY4MD8wOkQtTklYOjUuMzoqKQotIAllY2hv IG02OGstZGlhYi1kbml4Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIE02OCo6KjpSM1Zb NTY3OF0qOiopCi0tCXRlc3QgLXIgL3N5c1Y2OCAmJiBlY2hvICdtNjhrLW1vdG9yb2xhLXN5c3Yn ICYmIGV4aXQgMCA7OwotKwl0ZXN0IC1yIC9zeXNWNjggJiYgeyBlY2hvICdtNjhrLW1vdG9yb2xh LXN5c3YnOyBleGl0OyB9IDs7Ci0gICAgIDNbMzQ1XT8/Oio6NC4wOjMuMCB8IDNbMzRdPz9BOio6 NC4wOjMuMCB8IDNbMzRdPz8sKjoqOjQuMDozLjAgfCAzWzM0XT8/Lyo6Kjo0LjA6My4wIHwgNDQw MDoqOjQuMDozLjAgfCA0ODUwOio6NC4wOjMuMCB8IFNLQTQwOio6NC4wOjMuMCB8IFNEUzI6Kjo0 LjA6My4wIHwgU0hHMjoqOjQuMDozLjAgfCBTNzUwMSo6Kjo0LjA6My4wKQotIAlPU19SRUw9JycK LSAJdGVzdCAtciAvZXRjLy5yZWxpZCBcCi0gCSYmIE9TX1JFTD0uYHNlZCAtbiAncy9bXiBdKiBb XiBdKiBcKFswLTldWzAtOV1cKS4qL1wxL3AnIDwgL2V0Yy8ucmVsaWRgCi0gCS9iaW4vdW5hbWUg LXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAotLQkgICYmIGVjaG8gaTQ4Ni1u Y3Itc3lzdjQuMyR7T1NfUkVMfSAmJiBleGl0IDAKLSsJICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lz djQuMyR7T1NfUkVMfTsgZXhpdDsgfQotIAkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgL2Jp bi9ncmVwIGVudGl1bSA+L2Rldi9udWxsIFwKLS0JICAmJiBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMk e09TX1JFTH0gJiYgZXhpdCAwIDs7Ci0rCSAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMke09T X1JFTH07IGV4aXQ7IH0gOzsKLSAgICAgM1szNF0/PzoqOjQuMDoqIHwgM1szNF0/PywqOio6NC4w OiopCi0tICAgICAgICAvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9u dWxsIFwKLS0gICAgICAgICAgJiYgZWNobyBpNDg2LW5jci1zeXN2NCAmJiBleGl0IDAgOzsKLSsJ L2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IGdyZXAgODYgPi9kZXYvbnVsbCBcCi0rCSAgJiYg eyBlY2hvIGk0ODYtbmNyLXN5c3Y0OyBleGl0OyB9IDs7Ci0rICAgIE5DUio6Kjo0LjI6KiB8IE1Q UkFTKjoqOjQuMjoqKQotKwlPU19SRUw9Jy4zJwotKwl0ZXN0IC1yIC9ldGMvLnJlbGlkIFwKLSsJ ICAgICYmIE9TX1JFTD0uYHNlZCAtbiAncy9bXiBdKiBbXiBdKiBcKFswLTldWzAtOV1cKS4qL1wx L3AnIDwgL2V0Yy8ucmVsaWRgCi0rCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2 ID4vZGV2L251bGwgXAotKwkgICAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07 IGV4aXQ7IH0KLSsJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBlbnRpdW0g Pi9kZXYvbnVsbCBcCi0rCSAgICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsg ZXhpdDsgfQotKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgL2Jpbi9ncmVwIHB0ZXJvbiA+ L2Rldi9udWxsIFwKLSsJICAgICYmIHsgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBl eGl0OyB9IDs7Ci0gICAgIG02OCo6THlueE9TOjIuKjoqIHwgbTY4KjpMeW54T1M6My4wKjoqKQot IAllY2hvIG02OGstdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9Ci0tCWV4aXQgMCA7Owot KwlleGl0IDs7Ci0gICAgIG1jNjgwMzA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKLSAJZWNobyBtNjhr LWF0YXJpLXN5c3Y0Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIFRTVU5BTUk6THlueE9T OjIuKjoqKQotIAllY2hvIHNwYXJjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQotLQll eGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICByczYwMDA6THlueE9TOjIuKjoqKQotIAllY2hvIHJz NjAwMC11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLS0JZXhpdCAwIDs7Ci0tICAgIFBv d2VyUEM6THlueE9TOjIuKjoqIHwgUG93ZXJQQzpMeW54T1M6My5bMDFdKjoqIHwgUG93ZXJQQzpM eW54T1M6NC4wKjoqKQotKwlleGl0IDs7Ci0rICAgIFBvd2VyUEM6THlueE9TOjIuKjoqIHwgUG93 ZXJQQzpMeW54T1M6My5bMDFdKjoqIHwgUG93ZXJQQzpMeW54T1M6NC5bMDJdKjoqKQotIAllY2hv IHBvd2VycGMtdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9Ci0tCWV4aXQgMCA7OwotKwll eGl0IDs7Ci0gICAgIFNNW0JFXVM6VU5JWF9TVjoqOiopCi0gCWVjaG8gbWlwcy1kZGUtc3lzdiR7 VU5BTUVfUkVMRUFTRX0KLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgUk0qOlJlbGlhbnRV TklYLSo6KjoqKQotIAllY2hvIG1pcHMtc25pLXN5c3Y0Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7 Ci0gICAgIFJNKjpTSU5JWC0qOio6KikKLSAJZWNobyBtaXBzLXNuaS1zeXN2NAotLQlleGl0IDAg OzsKLSsJZXhpdCA7OwotICAgICAqOlNJTklYLSo6KjoqKQotIAlpZiB1bmFtZSAtcCAyPi9kZXYv bnVsbCA+L2Rldi9udWxsIDsgdGhlbgotIAkJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9k ZXYvbnVsbGAKLUBAIC0xMTIwLDY5ICsxMTYxLDk3IEBACi0gCWVsc2UKLSAJCWVjaG8gbnMzMmst c25pLXN5c3YKLSAJZmkKLS0JZXhpdCAwIDs7Ci0tICAgIFBFTlRJVU06Kjo0LjAqOiopICMgVW5p c3lzIGBDbGVhclBhdGggSE1QIElYIDQwMDAnIFNWUjQvTVAgZWZmb3J0Ci0tICAgICAgICAgICAg ICAgICAgICAgICMgc2F5cyA8UmljaGFyZC5NLkJhcnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KLS0g ICAgICAgIGVjaG8gaTU4Ni11bmlzeXMtc3lzdjQKLS0gICAgICAgIGV4aXQgMCA7OwotKwlleGl0 IDs7Ci0rICAgIFBFTlRJVU06Kjo0LjAqOiopCSMgVW5pc3lzIGBDbGVhclBhdGggSE1QIElYIDQw MDAnIFNWUjQvTVAgZWZmb3J0Ci0rCQkJIyBzYXlzIDxSaWNoYXJkLk0uQmFydGVsQGNjTWFpbC5D ZW5zdXMuR09WPgotKwllY2hvIGk1ODYtdW5pc3lzLXN5c3Y0Ci0rCWV4aXQgOzsKLSAgICAgKjpV TklYX1N5c3RlbV9WOjQqOkZUWCopCi0gCSMgRnJvbSBHZXJhbGQgSGV3ZXMgPGhld2VzQG9wZW5t YXJrZXQuY29tPi4KLSAJIyBIb3cgYWJvdXQgZGlmZmVyZW50aWF0aW5nIGJldHdlZW4gc3RyYXR1 cyBhcmNoaXRlY3R1cmVzPyAtZGptCi0gCWVjaG8gaHBwYTEuMS1zdHJhdHVzLXN5c3Y0Ci0tCWV4 aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgICo6KjoqOkZUWCopCi0gCSMgRnJvbSBzZWFuZkBzd2Rj LnN0cmF0dXMuY29tLgotIAllY2hvIGk4NjAtc3RyYXR1cy1zeXN2NAotLQlleGl0IDAgOzsKLSsJ ZXhpdCA7OwotKyAgICBpKjg2OlZPUzoqOiopCi0rCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0dXMu Y29tLgotKwllY2hvICR7VU5BTUVfTUFDSElORX0tc3RyYXR1cy12b3MKLSsJZXhpdCA7OwotICAg ICAqOlZPUzoqOiopCi0gCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0dXMuY29tLgotIAllY2hvIGhw cGExLjEtc3RyYXR1cy12b3MKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgbWM2OCo6QS9V WDoqOiopCi0gCWVjaG8gbTY4ay1hcHBsZS1hdXgke1VOQU1FX1JFTEVBU0V9Ci0tCWV4aXQgMCA7 OwotKwlleGl0IDs7Ci0gICAgIG5ld3MqOk5FV1MtT1M6Nio6KikKLSAJZWNobyBtaXBzLXNvbnkt bmV3c29zNgotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICBSWzM0XTAwMDoqU3lzdGVtX1Yq Oio6KiB8IFI0MDAwOlVOSVhfU1lTVjoqOiogfCBSKjAwMDpVTklYX1NWOio6KikKLSAJaWYgWyAt ZCAvdXNyL25lYyBdOyB0aGVuCi0tCSAgICAgICAgZWNobyBtaXBzLW5lYy1zeXN2JHtVTkFNRV9S RUxFQVNFfQotKwkJZWNobyBtaXBzLW5lYy1zeXN2JHtVTkFNRV9SRUxFQVNFfQotIAllbHNlCi0t CSAgICAgICAgZWNobyBtaXBzLXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0KLSsJCWVjaG8g bWlwcy11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9Ci0gCWZpCi0tICAgICAgICBleGl0IDAg OzsKLSsJZXhpdCA7OwotICAgICBCZUJveDpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gaGFy ZHdhcmUgbWFkZSBieSBCZSwgUFBDIG9ubHkuCi0gCWVjaG8gcG93ZXJwYy1iZS1iZW9zCi0tCWV4 aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIEJlTWFjOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBv biBNYWMgb3IgTWFjIGNsb25lLCBQUEMgb25seS4KLSAJZWNobyBwb3dlcnBjLWFwcGxlLWJlb3MK LS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgQmVQQzpCZU9TOio6KikJIyBCZU9TIHJ1bm5p bmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KLSAJZWNobyBpNTg2LXBjLWJlb3MKLS0JZXhpdCAw IDs7Ci0rCWV4aXQgOzsKLSsgICAgQmVQQzpIYWlrdToqOiopCSMgSGFpa3UgcnVubmluZyBvbiBJ bnRlbCBQQyBjb21wYXRpYmxlLgotKwllY2hvIGk1ODYtcGMtaGFpa3UKLSsJZXhpdCA7OwotKyAg ICB4ODZfNjQ6SGFpa3U6KjoqKQotKwllY2hvIHg4Nl82NC11bmtub3duLWhhaWt1Ci0rCWV4aXQg OzsKLSAgICAgU1gtNDpTVVBFUi1VWDoqOiopCi0gCWVjaG8gc3g0LW5lYy1zdXBlcnV4JHtVTkFN RV9SRUxFQVNFfQotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICBTWC01OlNVUEVSLVVYOio6 KikKLSAJZWNobyBzeDUtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9Ci0tCWV4aXQgMCA7Owot KwlleGl0IDs7Ci0gICAgIFNYLTY6U1VQRVItVVg6KjoqKQotIAllY2hvIHN4Ni1uZWMtc3VwZXJ1 eCR7VU5BTUVfUkVMRUFTRX0KLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSsgICAgU1gtNzpTVVBF Ui1VWDoqOiopCi0rCWVjaG8gc3g3LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0 IDs7Ci0rICAgIFNYLTg6U1VQRVItVVg6KjoqKQotKwllY2hvIHN4OC1uZWMtc3VwZXJ1eCR7VU5B TUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBTWC04UjpTVVBFUi1VWDoqOiopCi0rCWVjaG8g c3g4ci1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotICAgICBQb3dlcio6 UmhhcHNvZHk6KjoqKQotIAllY2hvIHBvd2VycGMtYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVB U0V9Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgICo6UmhhcHNvZHk6KjoqKQotIAllY2hv ICR7VU5BTUVfTUFDSElORX0tYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9Ci0tCWV4aXQg MCA7OwotKwlleGl0IDs7Ci0gICAgICo6RGFyd2luOio6KikKLSAJVU5BTUVfUFJPQ0VTU09SPWB1 bmFtZSAtcGAgfHwgVU5BTUVfUFJPQ0VTU09SPXVua25vd24KLSAJY2FzZSAkVU5BTUVfUFJPQ0VT U09SIGluCi0tCSAgICAqODYpIFVOQU1FX1BST0NFU1NPUj1pNjg2IDs7Ci0rCSAgICBpMzg2KQot KwkJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwkJaWYgWyAiJENDX0ZPUl9CVUlMRCIgIT0gJ25v X2NvbXBpbGVyX2ZvdW5kJyBdOyB0aGVuCi0rCQkgIGlmIChlY2hvICcjaWZkZWYgX19MUDY0X18n OyBlY2hvIElTXzY0QklUX0FSQ0g7IGVjaG8gJyNlbmRpZicpIHwgXAotKwkJICAgICAgKENDT1BU Uz0gJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsKSB8IFwKLSsJCSAgICAgIGdyZXAgSVNf NjRCSVRfQVJDSCA+L2Rldi9udWxsCi0rCQkgIHRoZW4KLSsJCSAgICAgIFVOQU1FX1BST0NFU1NP Uj0ieDg2XzY0IgotKwkJICBmaQotKwkJZmkgOzsKLSAJICAgIHVua25vd24pIFVOQU1FX1BST0NF U1NPUj1wb3dlcnBjIDs7Ci0gCWVzYWMKLSAJZWNobyAke1VOQU1FX1BST0NFU1NPUn0tYXBwbGUt ZGFyd2luJHtVTkFNRV9SRUxFQVNFfQotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICAqOnBy b2NudG8qOio6KiB8ICo6UU5YOlswMTIzNDU2Nzg5XSo6KikKLSAJVU5BTUVfUFJPQ0VTU09SPWB1 bmFtZSAtcGAKLSAJaWYgdGVzdCAiJFVOQU1FX1BST0NFU1NPUiIgPSAieDg2IjsgdGhlbgotQEAg LTExOTAsMjIgKzEyNTksMjggQEAKLSAJCVVOQU1FX01BQ0hJTkU9cGMKLSAJZmkKLSAJZWNobyAk e1VOQU1FX1BST0NFU1NPUn0tJHtVTkFNRV9NQUNISU5FfS1udG8tcW54JHtVTkFNRV9SRUxFQVNF fQotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICAqOlFOWDoqOjQqKQotIAllY2hvIGkzODYt cGMtcW54Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0rICAgIE5FTy0/Ok5PTlNUT1BfS0VSTkVM Oio6KikKLSsJZWNobyBuZW8tdGFuZGVtLW5zayR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7Owot KyAgICBOU0UtKjpOT05TVE9QX0tFUk5FTDoqOiopCi0rCWVjaG8gbnNlLXRhbmRlbS1uc2ske1VO QU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSAgICAgTlNSLT86Tk9OU1RPUF9LRVJORUw6KjoqKQot IAllY2hvIG5zci10YW5kZW0tbnNrJHtVTkFNRV9SRUxFQVNFfQotLQlleGl0IDAgOzsKLSsJZXhp dCA7OwotICAgICAqOk5vblN0b3AtVVg6KjoqKQotIAllY2hvIG1pcHMtY29tcGFxLW5vbnN0b3B1 eAotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICBCUzIwMDA6UE9TSVgqOio6KikKLSAJZWNo byBiczIwMDAtc2llbWVucy1zeXN2Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgIERTLyo6 VU5JWF9TeXN0ZW1fVjoqOiopCi0gCWVjaG8gJHtVTkFNRV9NQUNISU5FfS0ke1VOQU1FX1NZU1RF TX0tJHtVTkFNRV9SRUxFQVNFfQotLQlleGl0IDAgOzsKLSsJZXhpdCA7OwotICAgICAqOlBsYW45 Oio6KikKLSAJIyAidW5hbWUgLW0iIGlzIG5vdCBjb25zaXN0ZW50LCBzbyB1c2UgJGNwdXR5cGUg aW5zdGVhZC4gMzg2Ci0gCSMgaXMgY29udmVydGVkIHRvIGkzODYgZm9yIGNvbnNpc3RlbmN5IHdp dGggb3RoZXIgeDg2Ci1AQCAtMTIxNiw0MyArMTI5MSw1NSBAQAotIAkgICAgVU5BTUVfTUFDSElO RT0iJGNwdXR5cGUiCi0gCWZpCi0gCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXBsYW45 Ci0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgICo6VE9QUy0xMDoqOiopCi0gCWVjaG8gcGRw MTAtdW5rbm93bi10b3BzMTAKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgKjpURU5FWDoq OiopCi0gCWVjaG8gcGRwMTAtdW5rbm93bi10ZW5leAotLQlleGl0IDAgOzsKLSsJZXhpdCA7Owot ICAgICBLUzEwOlRPUFMtMjA6KjoqIHwgS0wxMDpUT1BTLTIwOio6KiB8IFRZUEU0OlRPUFMtMjA6 KjoqKQotIAllY2hvIHBkcDEwLWRlYy10b3BzMjAKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAg ICAgWEtMLTE6VE9QUy0yMDoqOiogfCBUWVBFNTpUT1BTLTIwOio6KikKLSAJZWNobyBwZHAxMC14 a2wtdG9wczIwCi0tCWV4aXQgMCA7OwotKwlleGl0IDs7Ci0gICAgICo6VE9QUy0yMDoqOiopCi0g CWVjaG8gcGRwMTAtdW5rbm93bi10b3BzMjAKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAg KjpJVFM6KjoqKQotIAllY2hvIHBkcDEwLXVua25vd24taXRzCi0tCWV4aXQgMCA7OwotKwlleGl0 IDs7Ci0gICAgIFNFSToqOio6U0VJVVgpCi0tICAgICAgICBlY2hvIG1pcHMtc2VpLXNlaXV4JHtV TkFNRV9SRUxFQVNFfQotLQlleGl0IDAgOzsKLSsJZWNobyBtaXBzLXNlaS1zZWl1eCR7VU5BTUVf UkVMRUFTRX0KLSsJZXhpdCA7OwotICAgICAqOkRyYWdvbkZseToqOiopCi0gCWVjaG8gJHtVTkFN RV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1l ICdzL1stKF0uKi8vJ2AKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAgICAgKjoqVk1TOio6KikK LS0gICAgCVVOQU1FX01BQ0hJTkU9YCh1bmFtZSAtcCkgMj4vZGV2L251bGxgCi0rCVVOQU1FX01B Q0hJTkU9YCh1bmFtZSAtcCkgMj4vZGV2L251bGxgCi0gCWNhc2UgIiR7VU5BTUVfTUFDSElORX0i IGluCi0tCSAgICBBKikgZWNobyBhbHBoYS1kZWMtdm1zICYmIGV4aXQgMCA7OwotLQkgICAgSSop IGVjaG8gaWE2NC1kZWMtdm1zICYmIGV4aXQgMCA7OwotLQkgICAgViopIGVjaG8gdmF4LWRlYy12 bXMgJiYgZXhpdCAwIDs7Ci0tCWVzYWMKLSsJICAgIEEqKSBlY2hvIGFscGhhLWRlYy12bXMgOyBl eGl0IDs7Ci0rCSAgICBJKikgZWNobyBpYTY0LWRlYy12bXMgOyBleGl0IDs7Ci0rCSAgICBWKikg ZWNobyB2YXgtZGVjLXZtcyA7IGV4aXQgOzsKLSsJZXNhYyA7OwotKyAgICAqOlhFTklYOio6U3lz VikKLSsJZWNobyBpMzg2LXBjLXhlbml4Ci0rCWV4aXQgOzsKLSsgICAgaSo4Njpza3lvczoqOiop Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1za3lvc2BlY2hvICR7VU5BTUVfUkVMRUFTRX1g IHwgc2VkIC1lICdzLyAuKiQvLycKLSsJZXhpdCA7OwotKyAgICBpKjg2OnJkb3M6KjoqKQotKwll Y2hvICR7VU5BTUVfTUFDSElORX0tcGMtcmRvcwotKwlleGl0IDs7Ci0rICAgIGkqODY6QVJPUzoq OiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1hcm9zCi0rCWV4aXQgOzsKLSsgICAgeDg2 XzY0OlZNa2VybmVsOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tZXN4Ci0r CWV4aXQgOzsKLSBlc2FjCi0gCi0tI2VjaG8gJyhObyB1bmFtZSBjb21tYW5kIG9yIHVuYW1lIG91 dHB1dCBub3QgcmVjb2duaXplZC4pJyAxPiYyCi0tI2VjaG8gIiR7VU5BTUVfTUFDSElORX06JHtV TkFNRV9TWVNURU19OiR7VU5BTUVfUkVMRUFTRX06JHtVTkFNRV9WRVJTSU9OfSIgMT4mMgotLQot IGV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSBjYXQgPiRkdW1teS5jIDw8RU9GCi0gI2lmZGVmIF9T RVFVRU5UXwotQEAgLTEyNzAsMTYgKzEzNTcsMTYgQEAKLSAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+ Ci0gICBwcmludGYgKCJtNjhrLXNvbnktbmV3c29zJXNcbiIsCi0gI2lmZGVmIE5FV1NPUzQKLS0g ICAgICAgICAgIjQiCi0rCSI0IgotICNlbHNlCi0tCSAgIiIKLSsJIiIKLSAjZW5kaWYKLS0gICAg ICAgICApOyBleGl0ICgwKTsKLSsJKTsgZXhpdCAoMCk7Ci0gI2VuZGlmCi0gI2VuZGlmCi0gCi0g I2lmIGRlZmluZWQgKF9fYXJtKSAmJiBkZWZpbmVkIChfX2Fjb3JuKSAmJiBkZWZpbmVkIChfX3Vu aXgpCi0tICBwcmludGYgKCJhcm0tYWNvcm4tcmlzY2l4Iik7IGV4aXQgKDApOwotKyAgcHJpbnRm ICgiYXJtLWFjb3JuLXJpc2NpeFxuIik7IGV4aXQgKDApOwotICNlbmRpZgotIAotICNpZiBkZWZp bmVkIChocDMwMCkgJiYgIWRlZmluZWQgKGhwdXgpCi1AQCAtMTM2OCwxMSArMTQ1NSwxMiBAQAot IH0KLSBFT0YKLSAKLS0kQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVs bCAmJiAkZHVtbXkgJiYgZXhpdCAwCi0rJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMg Mj4vZGV2L251bGwgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAgJiYKLSsJeyBlY2hvICIkU1lTVEVN X05BTUUiOyBleGl0OyB9Ci0gCi0gIyBBcG9sbG9zIHB1dCB0aGUgc3lzdGVtIHR5cGUgaW4gdGhl IGVudmlyb25tZW50LgotIAotLXRlc3QgLWQgL3Vzci9hcG9sbG8gJiYgeyBlY2hvICR7SVNQfS1h cG9sbG8tJHtTWVNUWVBFfTsgZXhpdCAwOyB9Ci0rdGVzdCAtZCAvdXNyL2Fwb2xsbyAmJiB7IGVj aG8gJHtJU1B9LWFwb2xsby0ke1NZU1RZUEV9OyBleGl0OyB9Ci0gCi0gIyBDb252ZXggdmVyc2lv bnMgdGhhdCBwcmVkYXRlIHVuYW1lIGNhbiB1c2UgZ2V0c3lzaW5mbygxKQotIAotQEAgLTEzODEs MjIgKzE0NjksMjIgQEAKLSAgICAgY2FzZSBgZ2V0c3lzaW5mbyAtZiBjcHVfdHlwZWAgaW4KLSAg ICAgYzEqKQotIAllY2hvIGMxLWNvbnZleC1ic2QKLS0JZXhpdCAwIDs7Ci0rCWV4aXQgOzsKLSAg ICAgYzIqKQotIAlpZiBnZXRzeXNpbmZvIC1mIHNjYWxhcl9hY2MKLSAJdGhlbiBlY2hvIGMzMi1j b252ZXgtYnNkCi0gCWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCi0gCWZpCi0tCWV4aXQgMCA7Owot KwlleGl0IDs7Ci0gICAgIGMzNCopCi0gCWVjaG8gYzM0LWNvbnZleC1ic2QKLS0JZXhpdCAwIDs7 Ci0rCWV4aXQgOzsKLSAgICAgYzM4KikKLSAJZWNobyBjMzgtY29udmV4LWJzZAotLQlleGl0IDAg OzsKLSsJZXhpdCA7OwotICAgICBjNCopCi0gCWVjaG8gYzQtY29udmV4LWJzZAotLQlleGl0IDAg OzsKLSsJZXhpdCA7OwotICAgICBlc2FjCi0gZmkKLSAKLUBAIC0xNDA3LDcgKzE0OTUsOSBAQAot IHRoZSBvcGVyYXRpbmcgc3lzdGVtIHlvdSBhcmUgdXNpbmcuIEl0IGlzIGFkdmlzZWQgdGhhdCB5 b3UKLSBkb3dubG9hZCB0aGUgbW9zdCB1cCB0byBkYXRlIHZlcnNpb24gb2YgdGhlIGNvbmZpZyBz Y3JpcHRzIGZyb20KLSAKLS0gICAgZnRwOi8vZnRwLmdudS5vcmcvcHViL2dudS9jb25maWcvCi0r ICBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9i X3BsYWluO2Y9Y29uZmlnLmd1ZXNzO2hiPUhFQUQKLSthbmQKLSsgIGh0dHA6Ly9naXQuc2F2YW5u YWguZ251Lm9yZy9naXR3ZWIvP3A9Y29uZmlnLmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuc3Vi O2hiPUhFQUQKLSAKLSBJZiB0aGUgdmVyc2lvbiB5b3UgcnVuICgkMCkgaXMgYWxyZWFkeSB1cCB0 byBkYXRlLCBwbGVhc2UKLSBzZW5kIHRoZSBmb2xsb3dpbmcgZGF0YSBhbmQgYW55IGluZm9ybWF0 aW9uIHlvdSB0aGluayBtaWdodCBiZQotZGlmZiAtdXJOIHBhZHMtMS4yL2NvbmZpZy5zdWIgcGFk cy0xLjItYWFyY2g2NC9jb25maWcuc3ViCi0tLS0gcGFkcy0xLjIvY29uZmlnLnN1YgkyMDA0LTA5 LTI5IDAwOjE1OjA1LjAwMDAwMDAwMCAtMDUwMAotKysrIHBhZHMtMS4yLWFhcmNoNjQvY29uZmln LnN1YgkyMDEzLTAzLTAzIDA3OjAxOjQzLjMzOTQyMTE0NiAtMDYwMAotQEAgLTEsOSArMSwxMCBA QAotICMhIC9iaW4vc2gKLSAjIENvbmZpZ3VyYXRpb24gdmFsaWRhdGlvbiBzdWJyb3V0aW5lIHNj cmlwdC4KLSAjICAgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAx OTk3LCAxOTk4LCAxOTk5LAotLSMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAy MDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLAotKyMgICAyMDExLCAyMDEy IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIAotLXRpbWVzdGFtcD0nMjAwNC0wOC0y OScKLSt0aW1lc3RhbXA9JzIwMTItMTAtMTAnCi0gCi0gIyBUaGlzIGZpbGUgaXMgKGluIHByaW5j aXBsZSkgY29tbW9uIHRvIEFMTCBHTlUgc29mdHdhcmUuCi0gIyBUaGUgcHJlc2VuY2Ugb2YgYSBt YWNoaW5lIGluIHRoaXMgZmlsZSBzdWdnZXN0cyB0aGF0IFNPTUUgR05VIHNvZnR3YXJlCi1AQCAt MjAsMjMgKzIxLDI1IEBACi0gIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgotICMKLSAjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0tIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYg bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotLSMgRm91bmRhdGlvbiwgSW5jLiwgNTkg VGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotLSMgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu Ci0tCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgotKyMKLSAjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSAjIGRpc3RyaWJ1dGUgdGhpcyBm aWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotICMgY29uZmlndXJhdGlv biBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIK LSAjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0 IG9mIHRoYXQgcHJvZ3JhbS4KLSAKLSsKLSAjIFBsZWFzZSBzZW5kIHBhdGNoZXMgdG8gPGNvbmZp Zy1wYXRjaGVzQGdudS5vcmc+LiAgU3VibWl0IGEgY29udGV4dAotLSMgZGlmZiBhbmQgYSBwcm9w ZXJseSBmb3JtYXR0ZWQgQ2hhbmdlTG9nIGVudHJ5LgotKyMgZGlmZiBhbmQgYSBwcm9wZXJseSBm b3JtYXR0ZWQgR05VIENoYW5nZUxvZyBlbnRyeS4KLSAjCi0gIyBDb25maWd1cmF0aW9uIHN1YnJv dXRpbmUgdG8gdmFsaWRhdGUgYW5kIGNhbm9uaWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gdHlwZS4K LSAjIFN1cHBseSB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gdHlwZSBhcyBhbiBhcmd1bWVu dC4KLSAjIElmIGl0IGlzIGludmFsaWQsIHdlIHByaW50IGFuIGVycm9yIG1lc3NhZ2Ugb24gc3Rk ZXJyIGFuZCBleGl0IHdpdGggY29kZSAxLgotICMgT3RoZXJ3aXNlLCB3ZSBwcmludCB0aGUgY2Fu b25pY2FsIGNvbmZpZyB0eXBlIG9uIHN0ZG91dCBhbmQgc3VjY2VlZC4KLSAKLSsjIFlvdSBjYW4g Z2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIHNjcmlwdCBmcm9tOgotKyMgaHR0cDovL2dp dC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNv bmZpZy5zdWI7aGI9SEVBRAotKwotICMgVGhpcyBmaWxlIGlzIHN1cHBvc2VkIHRvIGJlIHRoZSBz YW1lIGZvciBhbGwgR05VIHBhY2thZ2VzCi0gIyBhbmQgcmVjb2duaXplIGFsbCB0aGUgQ1BVIHR5 cGVzLCBzeXN0ZW0gdHlwZXMgYW5kIGFsaWFzZXMKLSAjIHRoYXQgYXJlIG1lYW5pbmdmdWwgd2l0 aCAqYW55KiBHTlUgc29mdHdhcmUuCi1AQCAtNzAsNyArNzMsOCBAQAotIHZlcnNpb249IlwKLSBH TlUgY29uZmlnLnN1YiAoJHRpbWVzdGFtcCkKLSAKLS1Db3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMs IDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIw MDMsIDIwMDQKLStDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksIDIwMDAsCi0rMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAw NiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwgMjAxMgotIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgotIAotIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2Ug Zm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCi1AQCAtODMsMTEgKzg3LDExIEBA Ci0gd2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCi0gICBjYXNlICQxIGluCi0gICAgIC0tdGltZS1z dGFtcCB8IC0tdGltZSogfCAtdCApCi0tICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCAw IDs7Ci0rICAgICAgIGVjaG8gIiR0aW1lc3RhbXAiIDsgZXhpdCA7OwotICAgICAtLXZlcnNpb24g fCAtdiApCi0tICAgICAgIGVjaG8gIiR2ZXJzaW9uIiA7IGV4aXQgMCA7OwotKyAgICAgICBlY2hv ICIkdmVyc2lvbiIgOyBleGl0IDs7Ci0gICAgIC0taGVscCB8IC0taCogfCAtaCApCi0tICAgICAg IGVjaG8gIiR1c2FnZSI7IGV4aXQgMCA7OwotKyAgICAgICBlY2hvICIkdXNhZ2UiOyBleGl0IDs7 Ci0gICAgIC0tICkgICAgICMgU3RvcCBvcHRpb24gcHJvY2Vzc2luZwotICAgICAgICBzaGlmdDsg YnJlYWsgOzsKLSAgICAgLSApCSMgVXNlIHN0ZGluIGFzIGlucHV0LgotQEAgLTk5LDcgKzEwMyw3 IEBACi0gICAgICpsb2NhbCopCi0gICAgICAgICMgRmlyc3QgcGFzcyB0aHJvdWdoIGFueSBsb2Nh bCBtYWNoaW5lIHR5cGVzLgotICAgICAgICBlY2hvICQxCi0tICAgICAgIGV4aXQgMDs7Ci0rICAg ICAgIGV4aXQgOzsKLSAKLSAgICAgKiApCi0gICAgICAgIGJyZWFrIDs7Ci1AQCAtMTE4LDExICsx MjIsMTggQEAKLSAjIEhlcmUgd2UgbXVzdCByZWNvZ25pemUgYWxsIHRoZSB2YWxpZCBLRVJORUwt T1MgY29tYmluYXRpb25zLgotIG1heWJlX29zPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChb Xi1dKi1bXi1dKlwpJC9cMi8nYAotIGNhc2UgJG1heWJlX29zIGluCi0tICBudG8tcW54KiB8IGxp bnV4LWdudSogfCBsaW51eC1kaWV0bGliYyB8IGxpbnV4LXVjbGliYyogfCB1Y2xpbnV4LXVjbGli YyogfCB1Y2xpbnV4LWdudSogfCBcCi0tICBrZnJlZWJzZCotZ251KiB8IGtuZXRic2QqLWdudSog fCBuZXRic2QqLWdudSogfCBzdG9ybS1jaGFvcyogfCBvczItZW14KiB8IHJ0bWstbm92YSopCi0r ICBudG8tcW54KiB8IGxpbnV4LWdudSogfCBsaW51eC1hbmRyb2lkKiB8IGxpbnV4LWRpZXRsaWJj IHwgbGludXgtbmV3bGliKiB8IFwKLSsgIGxpbnV4LW11c2wqIHwgbGludXgtdWNsaWJjKiB8IHVj bGludXgtdWNsaWJjKiB8IHVjbGludXgtZ251KiB8IGtmcmVlYnNkKi1nbnUqIHwgXAotKyAga25l dGJzZCotZ251KiB8IG5ldGJzZCotZ251KiB8IFwKLSsgIGtvcGVuc29sYXJpcyotZ251KiB8IFwK LSsgIHN0b3JtLWNoYW9zKiB8IG9zMi1lbXgqIHwgcnRtay1ub3ZhKikKLSAgICAgb3M9LSRtYXli ZV9vcwotICAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1d Ki1bXi1dKlwpJC9cMS8nYAotICAgICA7OwotKyAgYW5kcm9pZC1saW51eCkKLSsgICAgb3M9LWxp bnV4LWFuZHJvaWQKLSsgICAgYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAncy9eXCguKlwp LVwoW14tXSotW14tXSpcKSQvXDEvJ2AtdW5rbm93bgotKyAgICA7OwotICAgKikKLSAgICAgYmFz aWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAncy8tW14tXSokLy8nYAotICAgICBpZiBbICRiYXNp Y19tYWNoaW5lICE9ICQxIF0KLUBAIC0xNDUsMTAgKzE1NiwxMyBAQAotIAktY29udmVyZ2VudCog fCAtbmNyKiB8IC1uZXdzIHwgLTMyKiB8IC0zNjAwKiB8IC0zMTAwKiB8IC1oaXRhY2hpKiB8XAot IAktY1sxMjNdKiB8IC1jb252ZXgqIHwgLXN1biB8IC1jcmRzIHwgLW9tcm9uKiB8IC1kZyB8IC11 bHRyYSB8IC10dGkqIHwgXAotIAktaGFycmlzIHwgLWRvbHBoaW4gfCAtaGlnaGxldmVsIHwgLWdv dWxkIHwgLWNibSB8IC1ucyB8IC1tYXNzY29tcCB8IFwKLS0JLWFwcGxlIHwgLWF4aXMgfCAta251 dGggfCAtY3JheSkKLSsJLWFwcGxlIHwgLWF4aXMgfCAta251dGggfCAtY3JheSB8IC1taWNyb2Js YXplKikKLSAJCW9zPQotIAkJYmFzaWNfbWFjaGluZT0kMQotIAkJOzsKLSsJLWJsdWVnZW5lKikK LSsJCW9zPS1jbmsKLSsJCTs7Ci0gCS1zaW0gfCAtY2lzY28gfCAtb2tpIHwgLXdlYyB8IC13aW5i b25kKQotIAkJb3M9Ci0gCQliYXNpY19tYWNoaW5lPSQxCi1AQCAtMTYzLDEzICsxNzcsMTcgQEAK LSAJCW9zPS1jaG9ydXNvcwotIAkJYmFzaWNfbWFjaGluZT0kMQotIAkJOzsKLS0gCS1jaG9ydXNy ZGIpCi0tIAkJb3M9LWNob3J1c3JkYgotKwktY2hvcnVzcmRiKQotKwkJb3M9LWNob3J1c3JkYgot IAkJYmFzaWNfbWFjaGluZT0kMQotLSAJCTs7Ci0rCQk7OwotIAktaGl1eCopCi0gCQlvcz0taGl1 eHdlMgotIAkJOzsKLSsJLXNjbzYpCi0rCQlvcz0tc2NvNXY2Ci0rCQliYXNpY19tYWNoaW5lPWBl Y2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7OwotIAktc2NvNSkKLSAJCW9z PS1zY28zLjJ2NQotIAkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84 Ni1wYy8nYAotQEAgLTE4Niw2ICsyMDQsMTAgQEAKLSAJCSMgRG9uJ3QgZm9yZ2V0IHZlcnNpb24g aWYgaXQgaXMgMy4ydjQgb3IgbmV3ZXIuCi0gCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2Vk IC1lICdzLzg2LS4qLzg2LXBjLydgCi0gCQk7OwotKwktc2NvNXY2KikKLSsJCSMgRG9uJ3QgZm9y Z2V0IHZlcnNpb24gaWYgaXQgaXMgMy4ydjQgb3IgbmV3ZXIuCi0rCQliYXNpY19tYWNoaW5lPWBl Y2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7OwotIAktc2NvKikKLSAJCW9z PS1zY28zLjJ2MgotIAkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84 Ni1wYy8nYAotQEAgLTIwMyw2ICsyMjUsMTIgQEAKLSAJLWlzYyopCi0gCQliYXNpY19tYWNoaW5l PWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0gCQk7OwotKwktbHlueCoxNzgp Ci0rCQlvcz0tbHlueG9zMTc4Ci0rCQk7OwotKwktbHlueCo1KQotKwkJb3M9LWx5bnhvczUKLSsJ CTs7Ci0gCS1seW54KikKLSAJCW9zPS1seW54b3MKLSAJCTs7Ci1AQCAtMjI3LDI1ICsyNTUsMzYg QEAKLSAJIyBTb21lIGFyZSBvbWl0dGVkIGhlcmUgYmVjYXVzZSB0aGV5IGhhdmUgc3BlY2lhbCBt ZWFuaW5ncyBiZWxvdy4KLSAJMTc1MGEgfCA1ODAgXAotIAl8IGEyOWsgXAotKwl8IGFhcmNoNjQg fCBhYXJjaDY0X2JlIFwKLSAJfCBhbHBoYSB8IGFscGhhZXZbNC04XSB8IGFscGhhZXY1NiB8IGFs cGhhZXY2Wzc4XSB8IGFscGhhcGNhNVs2N10gXAotIAl8IGFscGhhNjQgfCBhbHBoYTY0ZXZbNC04 XSB8IGFscGhhNjRldjU2IHwgYWxwaGE2NGV2Nls3OF0gfCBhbHBoYTY0cGNhNVs2N10gXAotIAl8 IGFtMzNfMi4wIFwKLS0JfCBhcmMgfCBhcm0gfCBhcm1bYmxdZSB8IGFybWVbbGJdIHwgYXJtdlsy MzQ1XSB8IGFybXZbMzQ1XVtsYl0gfCBhdnIgXAotKwl8IGFyYyB8IGFybSB8IGFybVtibF1lIHwg YXJtZVtsYl0gfCBhcm12WzIzNDVdIHwgYXJtdlszNDVdW2xiXSB8IGF2ciB8IGF2cjMyIFwKLSsg ICAgICAgIHwgYmUzMiB8IGJlNjQgXAotKwl8IGJmaW4gXAotIAl8IGM0eCB8IGNsaXBwZXIgXAot IAl8IGQxMHYgfCBkMzB2IHwgZGx4IHwgZHNwMTZ4eCBcCi0tCXwgZnIzMCB8IGZydiBcCi0rCXwg ZXBpcGhhbnkgXAotKwl8IGZpZG8gfCBmcjMwIHwgZnJ2IFwKLSAJfCBoODMwMCB8IGg4NTAwIHwg aHBwYSB8IGhwcGExLlswMV0gfCBocHBhMi4wIHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAotKwl8 IGhleGFnb24gXAotIAl8IGkzNzAgfCBpODYwIHwgaTk2MCB8IGlhNjQgXAotIAl8IGlwMmsgfCBp cTIwMDAgXAotLQl8IG0zMnIgfCBtMzJybGUgfCBtNjgwMDAgfCBtNjhrIHwgbTg4ayB8IG1jb3Jl IFwKLSsJfCBsZTMyIHwgbGU2NCBcCi0rCXwgbG0zMiBcCi0rCXwgbTMyYyB8IG0zMnIgfCBtMzJy bGUgfCBtNjgwMDAgfCBtNjhrIHwgbTg4ayBcCi0rCXwgbWF4cSB8IG1iIHwgbWljcm9ibGF6ZSB8 IG1pY3JvYmxhemVlbCB8IG1jb3JlIHwgbWVwIHwgbWV0YWcgXAotIAl8IG1pcHMgfCBtaXBzYmUg fCBtaXBzZWIgfCBtaXBzZWwgfCBtaXBzbGUgXAotIAl8IG1pcHMxNiBcCi0gCXwgbWlwczY0IHwg bWlwczY0ZWwgXAotLQl8IG1pcHM2NHZyIHwgbWlwczY0dnJlbCBcCi0rCXwgbWlwczY0b2N0ZW9u IHwgbWlwczY0b2N0ZW9uZWwgXAotIAl8IG1pcHM2NG9yaW9uIHwgbWlwczY0b3Jpb25lbCBcCi0r CXwgbWlwczY0cjU5MDAgfCBtaXBzNjRyNTkwMGVsIFwKLSsJfCBtaXBzNjR2ciB8IG1pcHM2NHZy ZWwgXAotIAl8IG1pcHM2NHZyNDEwMCB8IG1pcHM2NHZyNDEwMGVsIFwKLSAJfCBtaXBzNjR2cjQz MDAgfCBtaXBzNjR2cjQzMDBlbCBcCi0gCXwgbWlwczY0dnI1MDAwIHwgbWlwczY0dnI1MDAwZWwg XAotKwl8IG1pcHM2NHZyNTkwMCB8IG1pcHM2NHZyNTkwMGVsIFwKLSAJfCBtaXBzaXNhMzIgfCBt aXBzaXNhMzJlbCBcCi0gCXwgbWlwc2lzYTMycjIgfCBtaXBzaXNhMzJyMmVsIFwKLSAJfCBtaXBz aXNhNjQgfCBtaXBzaXNhNjRlbCBcCi1AQCAtMjU0LDMwICsyOTMsNjUgQEAKLSAJfCBtaXBzaXNh NjRzcjcxayB8IG1pcHNpc2E2NHNyNzFrZWwgXAotIAl8IG1pcHN0eDM5IHwgbWlwc3R4MzllbCBc Ci0gCXwgbW4xMDIwMCB8IG1uMTAzMDAgXAotKwl8IG1veGllIFwKLSsJfCBtdCBcCi0gCXwgbXNw NDMwIFwKLSsJfCBuZHMzMiB8IG5kczMybGUgfCBuZHMzMmJlIFwKLSsJfCBuaW9zIHwgbmlvczIg XAotIAl8IG5zMTZrIHwgbnMzMmsgXAotLQl8IG9wZW5yaXNjIHwgb3IzMiBcCi0rCXwgb3Blbjgg XAotKwl8IG9yMzIgXAotIAl8IHBkcDEwIHwgcGRwMTEgfCBwaiB8IHBqbCBcCi0tCXwgcG93ZXJw YyB8IHBvd2VycGM2NCB8IHBvd2VycGM2NGxlIHwgcG93ZXJwY2xlIHwgcHBjYmUgXAotKwl8IHBv d2VycGMgfCBwb3dlcnBjNjQgfCBwb3dlcnBjNjRsZSB8IHBvd2VycGNsZSBcCi0gCXwgcHlyYW1p ZCBcCi0tCXwgc2ggfCBzaFsxMjM0XSB8IHNoWzIzXWUgfCBzaFszNF1lYiB8IHNoYmUgfCBzaGxl IHwgc2hbMTIzNF1sZSB8IHNoM2VsZSBcCi0rCXwgcmw3OCB8IHJ4IFwKLSsJfCBzY29yZSBcCi0r CXwgc2ggfCBzaFsxMjM0XSB8IHNoWzI0XWEgfCBzaFsyNF1hZWIgfCBzaFsyM11lIHwgc2hbMzRd ZWIgfCBzaGViIHwgc2hiZSB8IHNobGUgfCBzaFsxMjM0XWxlIHwgc2gzZWxlIFwKLSAJfCBzaDY0 IHwgc2g2NGxlIFwKLS0JfCBzcGFyYyB8IHNwYXJjNjQgfCBzcGFyYzg2eCB8IHNwYXJjbGV0IHwg c3BhcmNsaXRlIHwgc3BhcmN2OCB8IHNwYXJjdjkgfCBzcGFyY3Y5YiBcCi0tCXwgc3Ryb25nYXJt IFwKLS0JfCB0YWhvZSB8IHRodW1iIHwgdGljNHggfCB0aWM4MCB8IHRyb24gXAotLQl8IHY4NTAg fCB2ODUwZSBcCi0rCXwgc3BhcmMgfCBzcGFyYzY0IHwgc3BhcmM2NGIgfCBzcGFyYzY0diB8IHNw YXJjODZ4IHwgc3BhcmNsZXQgfCBzcGFyY2xpdGUgXAotKwl8IHNwYXJjdjggfCBzcGFyY3Y5IHwg c3BhcmN2OWIgfCBzcGFyY3Y5diBcCi0rCXwgc3B1IFwKLSsJfCB0YWhvZSB8IHRpYzR4IHwgdGlj NTR4IHwgdGljNTV4IHwgdGljNnggfCB0aWM4MCB8IHRyb24gXAotKwl8IHViaWNvbTMyIFwKLSsJ fCB2ODUwIHwgdjg1MGUgfCB2ODUwZTEgfCB2ODUwZTIgfCB2ODUwZXMgfCB2ODUwZTJ2MyBcCi0g CXwgd2UzMmsgXAotLQl8IHg4NiB8IHhzY2FsZSB8IHhzdG9ybXkxNiB8IHh0ZW5zYSBcCi0tCXwg ejhrKQotKwl8IHg4NiB8IHhjMTZ4IHwgeHN0b3JteTE2IHwgeHRlbnNhIFwKLSsJfCB6OGsgfCB6 ODApCi0gCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KLSAJCTs7Ci0tCW02 ODExIHwgbTY4aGMxMSB8IG02ODEyIHwgbTY4aGMxMikKLS0JCSMgTW90b3JvbGEgNjhIQzExLzEy LgotKwljNTR4KQotKwkJYmFzaWNfbWFjaGluZT10aWM1NHgtdW5rbm93bgotKwkJOzsKLSsJYzU1 eCkKLSsJCWJhc2ljX21hY2hpbmU9dGljNTV4LXVua25vd24KLSsJCTs7Ci0rCWM2eCkKLSsJCWJh c2ljX21hY2hpbmU9dGljNngtdW5rbm93bgotKwkJOzsKLSsJbTY4MTEgfCBtNjhoYzExIHwgbTY4 MTIgfCBtNjhoYzEyIHwgbTY4aGNzMTJ4IHwgcGljb2NoaXApCi0gCQliYXNpY19tYWNoaW5lPSRi YXNpY19tYWNoaW5lLXVua25vd24KLSAJCW9zPS1ub25lCi0gCQk7OwotIAltODgxMTAgfCBtNjgw WzEyMzQ2XTAgfCBtNjgzPzIgfCBtNjgzNjAgfCBtNTIwMCB8IHY3MCB8IHc2NSB8IHo4aykKLSAJ CTs7Ci0rCW1zMSkKLSsJCWJhc2ljX21hY2hpbmU9bXQtdW5rbm93bgotKwkJOzsKLSsKLSsJc3Ry b25nYXJtIHwgdGh1bWIgfCB4c2NhbGUpCi0rCQliYXNpY19tYWNoaW5lPWFybS11bmtub3duCi0r CQk7OwotKwl4Z2F0ZSkKLSsJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgot KwkJb3M9LW5vbmUKLSsJCTs7Ci0rCXhzY2FsZWViKQotKwkJYmFzaWNfbWFjaGluZT1hcm1lYi11 bmtub3duCi0rCQk7OwotKwotKwl4c2NhbGVlbCkKLSsJCWJhc2ljX21hY2hpbmU9YXJtZWwtdW5r bm93bgotKwkJOzsKLSAKLSAJIyBXZSB1c2UgYHBjJyByYXRoZXIgdGhhbiBgdW5rbm93bicKLSAJ IyBiZWNhdXNlICgxKSB0aGF0J3Mgd2hhdCB0aGV5IG5vcm1hbGx5IGFyZSwgYW5kCi1AQCAtMjkz LDMyICszNjcsNDEgQEAKLSAJIyBSZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRoIGNv bXBhbnkgbmFtZS4KLSAJNTgwLSogXAotIAl8IGEyOWstKiBcCi0rCXwgYWFyY2g2NC0qIHwgYWFy Y2g2NF9iZS0qIFwKLSAJfCBhbHBoYS0qIHwgYWxwaGFldls0LThdLSogfCBhbHBoYWV2NTYtKiB8 IGFscGhhZXY2Wzc4XS0qIFwKLSAJfCBhbHBoYTY0LSogfCBhbHBoYTY0ZXZbNC04XS0qIHwgYWxw aGE2NGV2NTYtKiB8IGFscGhhNjRldjZbNzhdLSogXAotIAl8IGFscGhhcGNhNVs2N10tKiB8IGFs cGhhNjRwY2E1WzY3XS0qIHwgYXJjLSogXAotIAl8IGFybS0qICB8IGFybWJlLSogfCBhcm1sZS0q IHwgYXJtZWItKiB8IGFybXYqLSogXAotLQl8IGF2ci0qIFwKLS0JfCBiczIwMDAtKiBcCi0tCXwg Y1sxMjNdKiB8IGMzMC0qIHwgW2NqdF05MC0qIHwgYzR4LSogfCBjNTR4LSogfCBjNTV4LSogfCBj NngtKiBcCi0rCXwgYXZyLSogfCBhdnIzMi0qIFwKLSsJfCBiZTMyLSogfCBiZTY0LSogXAotKwl8 IGJmaW4tKiB8IGJzMjAwMC0qIFwKLSsJfCBjWzEyM10qIHwgYzMwLSogfCBbY2p0XTkwLSogfCBj NHgtKiBcCi0gCXwgY2xpcHBlci0qIHwgY3JheW52LSogfCBjeWRyYS0qIFwKLSAJfCBkMTB2LSog fCBkMzB2LSogfCBkbHgtKiBcCi0gCXwgZWx4c2ktKiBcCi0tCXwgZjMwWzAxXS0qIHwgZjcwMC0q IHwgZnIzMC0qIHwgZnJ2LSogfCBmeDgwLSogXAotKwl8IGYzMFswMV0tKiB8IGY3MDAtKiB8IGZp ZG8tKiB8IGZyMzAtKiB8IGZydi0qIHwgZng4MC0qIFwKLSAJfCBoODMwMC0qIHwgaDg1MDAtKiBc Ci0gCXwgaHBwYS0qIHwgaHBwYTEuWzAxXS0qIHwgaHBwYTIuMC0qIHwgaHBwYTIuMFtud10tKiB8 IGhwcGE2NC0qIFwKLSsJfCBoZXhhZ29uLSogXAotIAl8IGkqODYtKiB8IGk4NjAtKiB8IGk5NjAt KiB8IGlhNjQtKiBcCi0gCXwgaXAyay0qIHwgaXEyMDAwLSogXAotLQl8IG0zMnItKiB8IG0zMnJs ZS0qIFwKLSsJfCBsZTMyLSogfCBsZTY0LSogXAotKwl8IGxtMzItKiBcCi0rCXwgbTMyYy0qIHwg bTMyci0qIHwgbTMycmxlLSogXAotIAl8IG02ODAwMC0qIHwgbTY4MFswMTIzNDZdMC0qIHwgbTY4 MzYwLSogfCBtNjgzPzItKiB8IG02OGstKiBcCi0tCXwgbTg4MTEwLSogfCBtODhrLSogfCBtY29y ZS0qIFwKLSsJfCBtODgxMTAtKiB8IG04OGstKiB8IG1heHEtKiB8IG1jb3JlLSogfCBtZXRhZy0q IFwKLSsJfCBtaWNyb2JsYXplLSogfCBtaWNyb2JsYXplZWwtKiBcCi0gCXwgbWlwcy0qIHwgbWlw c2JlLSogfCBtaXBzZWItKiB8IG1pcHNlbC0qIHwgbWlwc2xlLSogXAotIAl8IG1pcHMxNi0qIFwK LSAJfCBtaXBzNjQtKiB8IG1pcHM2NGVsLSogXAotLQl8IG1pcHM2NHZyLSogfCBtaXBzNjR2cmVs LSogXAotKwl8IG1pcHM2NG9jdGVvbi0qIHwgbWlwczY0b2N0ZW9uZWwtKiBcCi0gCXwgbWlwczY0 b3Jpb24tKiB8IG1pcHM2NG9yaW9uZWwtKiBcCi0rCXwgbWlwczY0cjU5MDAtKiB8IG1pcHM2NHI1 OTAwZWwtKiBcCi0rCXwgbWlwczY0dnItKiB8IG1pcHM2NHZyZWwtKiBcCi0gCXwgbWlwczY0dnI0 MTAwLSogfCBtaXBzNjR2cjQxMDBlbC0qIFwKLSAJfCBtaXBzNjR2cjQzMDAtKiB8IG1pcHM2NHZy NDMwMGVsLSogXAotIAl8IG1pcHM2NHZyNTAwMC0qIHwgbWlwczY0dnI1MDAwZWwtKiBcCi0rCXwg bWlwczY0dnI1OTAwLSogfCBtaXBzNjR2cjU5MDBlbC0qIFwKLSAJfCBtaXBzaXNhMzItKiB8IG1p cHNpc2EzMmVsLSogXAotIAl8IG1pcHNpc2EzMnIyLSogfCBtaXBzaXNhMzJyMmVsLSogXAotIAl8 IG1pcHNpc2E2NC0qIHwgbWlwc2lzYTY0ZWwtKiBcCi1AQCAtMzI3LDI2ICs0MTAsMzggQEAKLSAJ fCBtaXBzaXNhNjRzcjcxay0qIHwgbWlwc2lzYTY0c3I3MWtlbC0qIFwKLSAJfCBtaXBzdHgzOS0q IHwgbWlwc3R4MzllbC0qIFwKLSAJfCBtbWl4LSogXAotKwl8IG10LSogXAotIAl8IG1zcDQzMC0q IFwKLSsJfCBuZHMzMi0qIHwgbmRzMzJsZS0qIHwgbmRzMzJiZS0qIFwKLSsJfCBuaW9zLSogfCBu aW9zMi0qIFwKLSAJfCBub25lLSogfCBucDEtKiB8IG5zMTZrLSogfCBuczMyay0qIFwKLSsJfCBv cGVuOC0qIFwKLSAJfCBvcmlvbi0qIFwKLSAJfCBwZHAxMC0qIHwgcGRwMTEtKiB8IHBqLSogfCBw amwtKiB8IHBuLSogfCBwb3dlci0qIFwKLS0JfCBwb3dlcnBjLSogfCBwb3dlcnBjNjQtKiB8IHBv d2VycGM2NGxlLSogfCBwb3dlcnBjbGUtKiB8IHBwY2JlLSogXAotKwl8IHBvd2VycGMtKiB8IHBv d2VycGM2NC0qIHwgcG93ZXJwYzY0bGUtKiB8IHBvd2VycGNsZS0qIFwKLSAJfCBweXJhbWlkLSog XAotLQl8IHJvbXAtKiB8IHJzNjAwMC0qIFwKLS0JfCBzaC0qIHwgc2hbMTIzNF0tKiB8IHNoWzIz XWUtKiB8IHNoWzM0XWViLSogfCBzaGJlLSogXAotKwl8IHJsNzgtKiB8IHJvbXAtKiB8IHJzNjAw MC0qIHwgcngtKiBcCi0rCXwgc2gtKiB8IHNoWzEyMzRdLSogfCBzaFsyNF1hLSogfCBzaFsyNF1h ZWItKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGViLSogfCBzaGJlLSogXAotIAl8IHNo bGUtKiB8IHNoWzEyMzRdbGUtKiB8IHNoM2VsZS0qIHwgc2g2NC0qIHwgc2g2NGxlLSogXAotLQl8 IHNwYXJjLSogfCBzcGFyYzY0LSogfCBzcGFyYzg2eC0qIHwgc3BhcmNsZXQtKiB8IHNwYXJjbGl0 ZS0qIFwKLS0JfCBzcGFyY3Y4LSogfCBzcGFyY3Y5LSogfCBzcGFyY3Y5Yi0qIHwgc3Ryb25nYXJt LSogfCBzdjEtKiB8IHN4Py0qIFwKLS0JfCB0YWhvZS0qIHwgdGh1bWItKiBcCi0rCXwgc3BhcmMt KiB8IHNwYXJjNjQtKiB8IHNwYXJjNjRiLSogfCBzcGFyYzY0di0qIHwgc3BhcmM4NngtKiB8IHNw YXJjbGV0LSogXAotKwl8IHNwYXJjbGl0ZS0qIFwKLSsJfCBzcGFyY3Y4LSogfCBzcGFyY3Y5LSog fCBzcGFyY3Y5Yi0qIHwgc3BhcmN2OXYtKiB8IHN2MS0qIHwgc3g/LSogXAotKwl8IHRhaG9lLSog XAotIAl8IHRpYzMwLSogfCB0aWM0eC0qIHwgdGljNTR4LSogfCB0aWM1NXgtKiB8IHRpYzZ4LSog fCB0aWM4MC0qIFwKLSsJfCB0aWxlKi0qIFwKLSAJfCB0cm9uLSogXAotLQl8IHY4NTAtKiB8IHY4 NTBlLSogfCB2YXgtKiBcCi0rCXwgdWJpY29tMzItKiBcCi0rCXwgdjg1MC0qIHwgdjg1MGUtKiB8 IHY4NTBlMS0qIHwgdjg1MGVzLSogfCB2ODUwZTItKiB8IHY4NTBlMnYzLSogXAotKwl8IHZheC0q IFwKLSAJfCB3ZTMyay0qIFwKLS0JfCB4ODYtKiB8IHg4Nl82NC0qIHwgeHBzMTAwLSogfCB4c2Nh bGUtKiB8IHhzdG9ybXkxNi0qIFwKLS0JfCB4dGVuc2EtKiBcCi0rCXwgeDg2LSogfCB4ODZfNjQt KiB8IHhjMTZ4LSogfCB4cHMxMDAtKiBcCi0rCXwgeHN0b3JteTE2LSogfCB4dGVuc2EqLSogXAot IAl8IHltcC0qIFwKLS0JfCB6OGstKikKLSsJfCB6OGstKiB8IHo4MC0qKQotKwkJOzsKLSsJIyBS ZWNvZ25pemUgdGhlIGJhc2ljIENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkgbmFtZSwgd2l0aCBn bG9iIG1hdGNoLgotKwl4dGVuc2EqKQotKwkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11 bmtub3duCi0gCQk7OwotIAkjIFJlY29nbml6ZSB0aGUgdmFyaW91cyBtYWNoaW5lIG5hbWVzIGFu ZCBhbGlhc2VzIHdoaWNoIHN0YW5kCi0gCSMgZm9yIGEgQ1BVIHR5cGUgYW5kIGEgY29tcGFueSBh bmQgc29tZXRpbWVzIGV2ZW4gYW4gT1MuCi1AQCAtMzY0LDcgKzQ1OSw3IEBACi0gCQliYXNpY19t YWNoaW5lPWEyOWstYW1kCi0gCQlvcz0tdWRpCi0gCQk7OwotLSAgICAJYWJhY3VzKQotKwlhYmFj dXMpCi0gCQliYXNpY19tYWNoaW5lPWFiYWN1cy11bmtub3duCi0gCQk7OwotIAlhZG9iZTY4aykK LUBAIC00MTAsNiArNTA1LDEwIEBACi0gCQliYXNpY19tYWNoaW5lPW02OGstYXBvbGxvCi0gCQlv cz0tYnNkCi0gCQk7OwotKwlhcm9zKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0rCQlvcz0t YXJvcwotKwkJOzsKLSAJYXV4KQotIAkJYmFzaWNfbWFjaGluZT1tNjhrLWFwcGxlCi0gCQlvcz0t YXV4Ci1AQCAtNDE4LDEwICs1MTcsMzUgQEAKLSAJCWJhc2ljX21hY2hpbmU9bnMzMmstc2VxdWVu dAotIAkJb3M9LWR5bml4Ci0gCQk7OwotKwlibGFja2ZpbikKLSsJCWJhc2ljX21hY2hpbmU9YmZp bi11bmtub3duCi0rCQlvcz0tbGludXgKLSsJCTs7Ci0rCWJsYWNrZmluLSopCi0rCQliYXNpY19t YWNoaW5lPWJmaW4tYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJ CW9zPS1saW51eAotKwkJOzsKLSsJYmx1ZWdlbmUqKQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBj LWlibQotKwkJb3M9LWNuawotKwkJOzsKLSsJYzU0eC0qKQotKwkJYmFzaWNfbWFjaGluZT10aWM1 NHgtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCWM1 NXgtKikKLSsJCWJhc2ljX21hY2hpbmU9dGljNTV4LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2Vk ICdzL15bXi1dKi0vLydgCi0rCQk7OwotKwljNngtKikKLSsJCWJhc2ljX21hY2hpbmU9dGljNngt YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0gCWM5MCkK LSAJCWJhc2ljX21hY2hpbmU9YzkwLWNyYXkKLSAJCW9zPS11bmljb3MKLSAJCTs7Ci0rCWNlZ2Nj KQotKwkJYmFzaWNfbWFjaGluZT1hcm0tdW5rbm93bgotKwkJb3M9LWNlZ2NjCi0rCQk7OwotIAlj b252ZXgtYzEpCi0gCQliYXNpY19tYWNoaW5lPWMxLWNvbnZleAotIAkJb3M9LWJzZAotQEAgLTQ1 MCw4ICs1NzQsOCBAQAotIAkJYmFzaWNfbWFjaGluZT1jcmF5bnYtY3JheQotIAkJb3M9LXVuaWNv c21wCi0gCQk7OwotLQljcjE2YykKLS0JCWJhc2ljX21hY2hpbmU9Y3IxNmMtdW5rbm93bgotKwlj cjE2IHwgY3IxNi0qKQotKwkJYmFzaWNfbWFjaGluZT1jcjE2LXVua25vd24KLSAJCW9zPS1lbGYK LSAJCTs7Ci0gCWNyZHMgfCB1bm9zKQotQEAgLTQ4OSw2ICs2MTMsMTQgQEAKLSAJCWJhc2ljX21h Y2hpbmU9bTg4ay1tb3Rvcm9sYQotIAkJb3M9LXN5c3YzCi0gCQk7OwotKwlkaWNvcykKLSsJCWJh c2ljX21hY2hpbmU9aTY4Ni1wYwotKwkJb3M9LWRpY29zCi0rCQk7OwotKwlkamdwcCkKLSsJCWJh c2ljX21hY2hpbmU9aTU4Ni1wYwotKwkJb3M9LW1zZG9zZGpncHAKLSsJCTs7Ci0gCWRweDIwIHwg ZHB4MjAtKikKLSAJCWJhc2ljX21hY2hpbmU9cnM2MDAwLWJ1bGwKLSAJCW9zPS1ib3N4Ci1AQCAt NjAwLDcgKzczMiw2IEBACi0gCWkzNzAtaWJtKiB8IGlibSopCi0gCQliYXNpY19tYWNoaW5lPWkz NzAtaWJtCi0gCQk7OwotLSMgSSdtIG5vdCBzdXJlIHdoYXQgIlN5c3YzMiIgbWVhbnMuICBTaG91 bGQgdGhpcyBiZSBzeXN2My4yPwotIAlpKjg2djMyKQotIAkJYmFzaWNfbWFjaGluZT1gZWNobyAk MSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCi0gCQlvcz0tc3lzdjMyCi1AQCAtNjM5LDYgKzc3 MCwxNCBAQAotIAkJYmFzaWNfbWFjaGluZT1tNjhrLWlzaQotIAkJb3M9LXN5c3YKLSAJCTs7Ci0r CW02OGtub21tdSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay11bmtub3duCi0rCQlvcz0tbGludXgK LSsJCTs7Ci0rCW02OGtub21tdS0qKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWBlY2hvICRiYXNp Y19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQlvcz0tbGludXgKLSsJCTs7Ci0gCW04 OGstb21yb24qKQotIAkJYmFzaWNfbWFjaGluZT1tODhrLW9tcm9uCi0gCQk7OwotQEAgLTY1MCwx MCArNzg5LDIxIEBACi0gCQliYXNpY19tYWNoaW5lPW5zMzJrLXV0ZWsKLSAJCW9zPS1zeXN2Ci0g CQk7OwotKwltaWNyb2JsYXplKikKLSsJCWJhc2ljX21hY2hpbmU9bWljcm9ibGF6ZS14aWxpbngK LSsJCTs7Ci0rCW1pbmd3NjQpCi0rCQliYXNpY19tYWNoaW5lPXg4Nl82NC1wYwotKwkJb3M9LW1p bmd3NjQKLSsJCTs7Ci0gCW1pbmd3MzIpCi0gCQliYXNpY19tYWNoaW5lPWkzODYtcGMKLSAJCW9z PS1taW5ndzMyCi0gCQk7OwotKwltaW5ndzMyY2UpCi0rCQliYXNpY19tYWNoaW5lPWFybS11bmtu b3duCi0rCQlvcz0tbWluZ3czMmNlCi0rCQk7OwotIAltaW5pZnJhbWUpCi0gCQliYXNpY19tYWNo aW5lPW02ODAwMC1jb252ZXJnZW50Ci0gCQk7OwotQEAgLTY3OSwxMCArODI5LDIxIEBACi0gCQli YXNpY19tYWNoaW5lPWkzODYtcGMKLSAJCW9zPS1tc2RvcwotIAkJOzsKLSsJbXMxLSopCi0rCQli YXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdzL21zMS0vbXQtLydg Ci0rCQk7OwotKwltc3lzKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0rCQlvcz0tbXN5cwot KwkJOzsKLSAJbXZzKQotIAkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQotIAkJb3M9LW12cwotIAkJ OzsKLSsJbmFjbCkKLSsJCWJhc2ljX21hY2hpbmU9bGUzMi11bmtub3duCi0rCQlvcz0tbmFjbAot KwkJOzsKLSAJbmNyMzAwMCkKLSAJCWJhc2ljX21hY2hpbmU9aTQ4Ni1uY3IKLSAJCW9zPS1zeXN2 NAotQEAgLTc0Nyw2ICs5MDgsMTIgQEAKLSAJbnAxKQotIAkJYmFzaWNfbWFjaGluZT1ucDEtZ291 bGQKLSAJCTs7Ci0rCW5lby10YW5kZW0pCi0rCQliYXNpY19tYWNoaW5lPW5lby10YW5kZW0KLSsJ CTs7Ci0rCW5zZS10YW5kZW0pCi0rCQliYXNpY19tYWNoaW5lPW5zZS10YW5kZW0KLSsJCTs7Ci0g CW5zci10YW5kZW0pCi0gCQliYXNpY19tYWNoaW5lPW5zci10YW5kZW0KLSAJCTs7Ci1AQCAtNzU0 LDkgKzkyMSw4IEBACi0gCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCi0gCQlvcz0tcHJvZWxm Ci0gCQk7OwotLQlvcjMyIHwgb3IzMi0qKQotKwlvcGVucmlzYyB8IG9wZW5yaXNjLSopCi0gCQli YXNpY19tYWNoaW5lPW9yMzItdW5rbm93bgotLQkJb3M9LWNvZmYKLSAJCTs7Ci0gCW9zNDAwKQot IAkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWlibQotQEAgLTc3OCw2ICs5NDQsMTQgQEAKLSAJCWJh c2ljX21hY2hpbmU9aTg2MC1pbnRlbAotIAkJb3M9LW9zZgotIAkJOzsKLSsJcGFyaXNjKQotKwkJ YmFzaWNfbWFjaGluZT1ocHBhLXVua25vd24KLSsJCW9zPS1saW51eAotKwkJOzsKLSsJcGFyaXNj LSopCi0rCQliYXNpY19tYWNoaW5lPWhwcGEtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3Mv XlteLV0qLS8vJ2AKLSsJCW9zPS1saW51eAotKwkJOzsKLSAJcGJkKQotIAkJYmFzaWNfbWFjaGlu ZT1zcGFyYy10dGkKLSAJCTs7Ci1AQCAtNzg3LDYgKzk2MSwxMiBAQAotIAlwYzUzMiB8IHBjNTMy LSopCi0gCQliYXNpY19tYWNoaW5lPW5zMzJrLXBjNTMyCi0gCQk7OwotKwlwYzk4KQotKwkJYmFz aWNfbWFjaGluZT1pMzg2LXBjCi0rCQk7OwotKwlwYzk4LSopCi0rCQliYXNpY19tYWNoaW5lPWkz ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0gCXBl bnRpdW0gfCBwNSB8IGs1IHwgazYgfCBuZXhnZW4gfCB2aWFjMykKLSAJCWJhc2ljX21hY2hpbmU9 aTU4Ni1wYwotIAkJOzsKLUBAIC04MTYsOSArOTk2LDEwIEBACi0gCQk7OwotIAlwb3dlcikJYmFz aWNfbWFjaGluZT1wb3dlci1pYm0KLSAJCTs7Ci0tCXBwYykJYmFzaWNfbWFjaGluZT1wb3dlcnBj LXVua25vd24KLSsJcHBjIHwgcHBjYmUpCWJhc2ljX21hY2hpbmU9cG93ZXJwYy11bmtub3duCi0g CQk7OwotLQlwcGMtKikJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWBlY2hvICRiYXNpY19tYWNoaW5l IHwgc2VkICdzL15bXi1dKi0vLydgCi0rCXBwYy0qIHwgcHBjYmUtKikKLSsJCWJhc2ljX21hY2hp bmU9cG93ZXJwYy1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotIAkJ OzsKLSAJcHBjbGUgfCBwb3dlcnBjbGl0dGxlIHwgcHBjLWxlIHwgcG93ZXJwYy1saXR0bGUpCi0g CQliYXNpY19tYWNoaW5lPXBvd2VycGNsZS11bmtub3duCi1AQCAtODQzLDYgKzEwMjQsMTAgQEAK LSAJCWJhc2ljX21hY2hpbmU9aTU4Ni11bmtub3duCi0gCQlvcz0tcHczMgotIAkJOzsKLSsJcmRv cykKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotKwkJb3M9LXJkb3MKLSsJCTs7Ci0gCXJvbTY4 aykKLSAJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsKLSAJCW9zPS1jb2ZmCi1AQCAtODY5LDYg KzEwNTQsMTAgQEAKLSAJc2IxZWwpCi0gCQliYXNpY19tYWNoaW5lPW1pcHNpc2E2NHNiMWVsLXVu a25vd24KLSAJCTs7Ci0rCXNkZSkKLSsJCWJhc2ljX21hY2hpbmU9bWlwc2lzYTMyLXNkZQotKwkJ b3M9LWVsZgotKwkJOzsKLSAJc2VpKQotIAkJYmFzaWNfbWFjaGluZT1taXBzLXNlaQotIAkJb3M9 LXNlaXV4Ci1AQCAtODgwLDYgKzEwNjksOSBAQAotIAkJYmFzaWNfbWFjaGluZT1zaC1oaXRhY2hp Ci0gCQlvcz0taG1zCi0gCQk7OwotKwlzaDVlbCkKLSsJCWJhc2ljX21hY2hpbmU9c2g1bGUtdW5r bm93bgotKwkJOzsKLSAJc2g2NCkKLSAJCWJhc2ljX21hY2hpbmU9c2g2NC11bmtub3duCi0gCQk7 OwotQEAgLTkwMSw2ICsxMDkzLDkgQEAKLSAJCWJhc2ljX21hY2hpbmU9aTg2MC1zdHJhdHVzCi0g CQlvcz0tc3lzdjQKLSAJCTs7Ci0rCXN0cm9uZ2FybS0qIHwgdGh1bWItKikKLSsJCWJhc2ljX21h Y2hpbmU9YXJtLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQk7 OwotIAlzdW4yKQotIAkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCi0gCQk7OwotQEAgLTk1Nywx NyArMTE1Miw5IEBACi0gCQliYXNpY19tYWNoaW5lPXQ5MC1jcmF5Ci0gCQlvcz0tdW5pY29zCi0g CQk7OwotLQl0aWM1NHggfCBjNTR4KikKLS0JCWJhc2ljX21hY2hpbmU9dGljNTR4LXVua25vd24K LS0JCW9zPS1jb2ZmCi0tCQk7OwotLQl0aWM1NXggfCBjNTV4KikKLS0JCWJhc2ljX21hY2hpbmU9 dGljNTV4LXVua25vd24KLS0JCW9zPS1jb2ZmCi0tCQk7OwotLQl0aWM2eCB8IGM2eCopCi0tCQli YXNpY19tYWNoaW5lPXRpYzZ4LXVua25vd24KLS0JCW9zPS1jb2ZmCi0rCXRpbGUqKQotKwkJYmFz aWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCi0rCQlvcz0tbGludXgtZ251Ci0gCQk7 OwotIAl0eDM5KQotIAkJYmFzaWNfbWFjaGluZT1taXBzdHgzOS11bmtub3duCi1AQCAtMTAyOSw5 ICsxMjE2LDE2IEBACi0gCQliYXNpY19tYWNoaW5lPWhwcGExLjEtd2luYm9uZAotIAkJb3M9LXBy b2VsZgotIAkJOzsKLSsJeGJveCkKLSsJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwotKwkJb3M9LW1p bmd3MzIKLSsJCTs7Ci0gCXhwcyB8IHhwczEwMCkKLSAJCWJhc2ljX21hY2hpbmU9eHBzMTAwLWhv bmV5d2VsbAotIAkJOzsKLSsJeHNjYWxlLSogfCB4c2NhbGVlW2JsXS0qKQotKwkJYmFzaWNfbWFj aGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eeHNjYWxlL2FybS8nYAotKwkJOzsK LSAJeW1wKQotIAkJYmFzaWNfbWFjaGluZT15bXAtY3JheQotIAkJb3M9LXVuaWNvcwotQEAgLTEw NDAsNiArMTIzNCwxMCBAQAotIAkJYmFzaWNfbWFjaGluZT16OGstdW5rbm93bgotIAkJb3M9LXNp bQotIAkJOzsKLSsJejgwLSotY29mZikKLSsJCWJhc2ljX21hY2hpbmU9ejgwLXVua25vd24KLSsJ CW9zPS1zaW0KLSsJCTs7Ci0gCW5vbmUpCi0gCQliYXNpY19tYWNoaW5lPW5vbmUtbm9uZQotIAkJ b3M9LW5vbmUKLUBAIC0xMDc4LDEzICsxMjc2LDEwIEBACi0gCXdlMzJrKQotIAkJYmFzaWNfbWFj aGluZT13ZTMyay1hdHQKLSAJCTs7Ci0tCXNoMyB8IHNoNCB8IHNoWzM0XWViIHwgc2hbMTIzNF1s ZSB8IHNoWzIzXWVsZSkKLSsJc2hbMTIzNF0gfCBzaFsyNF1hIHwgc2hbMjRdYWViIHwgc2hbMzRd ZWIgfCBzaFsxMjM0XWxlIHwgc2hbMjNdZWxlKQotIAkJYmFzaWNfbWFjaGluZT1zaC11bmtub3du Ci0gCQk7OwotLQlzaDY0KQotLQkJYmFzaWNfbWFjaGluZT1zaDY0LXVua25vd24KLS0JCTs7Ci0t CXNwYXJjIHwgc3BhcmN2OCB8IHNwYXJjdjkgfCBzcGFyY3Y5YikKLSsJc3BhcmMgfCBzcGFyY3Y4 IHwgc3BhcmN2OSB8IHNwYXJjdjliIHwgc3BhcmN2OXYpCi0gCQliYXNpY19tYWNoaW5lPXNwYXJj LXN1bgotIAkJOzsKLSAJY3lkcmEpCi1AQCAtMTEyOCw5ICsxMzIzLDEyIEBACi0gaWYgWyB4IiRv cyIgIT0geCIiIF0KLSB0aGVuCi0gY2FzZSAkb3MgaW4KLS0gICAgICAgICMgRmlyc3QgbWF0Y2gg c29tZSBzeXN0ZW0gdHlwZSBhbGlhc2VzCi0tICAgICAgICAjIHRoYXQgbWlnaHQgZ2V0IGNvbmZ1 c2VkIHdpdGggdmFsaWQgc3lzdGVtIHR5cGVzLgotKwkjIEZpcnN0IG1hdGNoIHNvbWUgc3lzdGVt IHR5cGUgYWxpYXNlcwotKwkjIHRoYXQgbWlnaHQgZ2V0IGNvbmZ1c2VkIHdpdGggdmFsaWQgc3lz dGVtIHR5cGVzLgotIAkjIC1zb2xhcmlzKiBpcyBhIGJhc2ljIHN5c3RlbSB0eXBlLCB3aXRoIHRo aXMgb25lIGV4Y2VwdGlvbi4KLSsJLWF1cm9yYXV4KQotKwkJb3M9LWF1cm9yYXV4Ci0rCQk7Owot IAktc29sYXJpczEgfCAtc29sYXJpczEuKikKLSAJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xz b2xhcmlzMXxzdW5vczR8J2AKLSAJCTs7Ci1AQCAtMTE1MSwyNiArMTM0OSwzMSBAQAotIAkjIEVh Y2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4gQSAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVy LgotIAkjIC1zeXN2KiBpcyBub3QgaGVyZSBiZWNhdXNlIGl0IGNvbWVzIGxhdGVyLCBhZnRlciBz eXN2cjQuCi0gCS1nbnUqIHwgLWJzZCogfCAtbWFjaCogfCAtbWluaXgqIHwgLWdlbml4KiB8IC11 bHRyaXgqIHwgLWlyaXgqIFwKLS0JICAgICAgfCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1p c2MqIHwgLWFpeCogfCAtc3Vub3MgfCAtc3Vub3NbMzRdKlwKLS0JICAgICAgfCAtaHB1eCogfCAt dW5vcyogfCAtb3NmKiB8IC1sdW5hKiB8IC1kZ3V4KiB8IC1zb2xhcmlzKiB8IC1zeW0qIFwKLSsJ ICAgICAgfCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFpeCogfCAtY25rKiB8 IC1zdW5vcyB8IC1zdW5vc1szNF0qXAotKwkgICAgICB8IC1ocHV4KiB8IC11bm9zKiB8IC1vc2Yq IHwgLWx1bmEqIHwgLWRndXgqIHwgLWF1cm9yYXV4KiB8IC1zb2xhcmlzKiBcCi0rCSAgICAgIHwg LXN5bSogfCAta29wZW5zb2xhcmlzKiBcCi0gCSAgICAgIHwgLWFtaWdhb3MqIHwgLWFtaWdhZG9z KiB8IC1tc2RvcyogfCAtbmV3c29zKiB8IC11bmljb3MqIHwgLWFvZiogXAotLQkgICAgICB8IC1h b3MqIFwKLSsJICAgICAgfCAtYW9zKiB8IC1hcm9zKiBcCi0gCSAgICAgIHwgLW5pbmR5KiB8IC12 eHNpbSogfCAtdnh3b3JrcyogfCAtZWJtb24qIHwgLWhtcyogfCAtbXZzKiBcCi0gCSAgICAgIHwg LWNsaXgqIHwgLXJpc2NvcyogfCAtdW5pcGx1cyogfCAtaXJpcyogfCAtcnR1KiB8IC14ZW5peCog XAotLQkgICAgICB8IC1oaXV4KiB8IC0zODZic2QqIHwgLWtuZXRic2QqIHwgLW1pcmJzZCogfCAt bmV0YnNkKiB8IC1vcGVuYnNkKiBcCi0rCSAgICAgIHwgLWhpdXgqIHwgLTM4NmJzZCogfCAta25l dGJzZCogfCAtbWlyYnNkKiB8IC1uZXRic2QqIFwKLSsJICAgICAgfCAtYml0cmlnKiB8IC1vcGVu YnNkKiB8IC1zb2xpZGJzZCogXAotIAkgICAgICB8IC1la2tvYnNkKiB8IC1rZnJlZWJzZCogfCAt ZnJlZWJzZCogfCAtcmlzY2l4KiB8IC1seW54b3MqIFwKLSAJICAgICAgfCAtYm9zeCogfCAtbmV4 dHN0ZXAqIHwgLWN4dXgqIHwgLWFvdXQqIHwgLWVsZiogfCAtb2FiaSogXAotIAkgICAgICB8IC1w dHgqIHwgLWNvZmYqIHwgLWVjb2ZmKiB8IC13aW5udCogfCAtZG9tYWluKiB8IC12c3RhKiBcCi0g CSAgICAgIHwgLXVkaSogfCAtZWFiaSogfCAtbGl0ZXMqIHwgLWllZWUqIHwgLWdvMzIqIHwgLWF1 eCogXAotLQkgICAgICB8IC1jaG9ydXNvcyogfCAtY2hvcnVzcmRiKiBcCi0tCSAgICAgIHwgLWN5 Z3dpbiogfCAtcGUqIHwgLXBzb3MqIHwgLW1vc3MqIHwgLXByb2VsZiogfCAtcnRlbXMqIFwKLS0J ICAgICAgfCAtbWluZ3czMiogfCAtbGludXgtZ251KiB8IC1saW51eC11Y2xpYmMqIHwgLXV4cHYq IHwgLWJlb3MqIHwgLW1wZWl4KiB8IC11ZGsqIFwKLSsJICAgICAgfCAtY2hvcnVzb3MqIHwgLWNo b3J1c3JkYiogfCAtY2VnY2MqIFwKLSsJICAgICAgfCAtY3lnd2luKiB8IC1tc3lzKiB8IC1wZSog fCAtcHNvcyogfCAtbW9zcyogfCAtcHJvZWxmKiB8IC1ydGVtcyogXAotKwkgICAgICB8IC1taW5n dzMyKiB8IC1taW5ndzY0KiB8IC1saW51eC1nbnUqIHwgLWxpbnV4LWFuZHJvaWQqIFwKLSsJICAg ICAgfCAtbGludXgtbmV3bGliKiB8IC1saW51eC1tdXNsKiB8IC1saW51eC11Y2xpYmMqIFwKLSsJ ICAgICAgfCAtdXhwdiogfCAtYmVvcyogfCAtbXBlaXgqIHwgLXVkayogXAotIAkgICAgICB8IC1p bnRlcml4KiB8IC11d2luKiB8IC1ta3MqIHwgLXJoYXBzb2R5KiB8IC1kYXJ3aW4qIHwgLW9wZW5l ZCogXAotIAkgICAgICB8IC1vcGVuc3RlcCogfCAtb3NraXQqIHwgLWNvbml4KiB8IC1wdzMyKiB8 IC1ub25zdG9wdXgqIFwKLSAJICAgICAgfCAtc3Rvcm0tY2hhb3MqIHwgLXRvcHMxMCogfCAtdGVu ZXgqIHwgLXRvcHMyMCogfCAtaXRzKiBcCi0gCSAgICAgIHwgLW9zMiogfCAtdm9zKiB8IC1wYWxt b3MqIHwgLXVjbGludXgqIHwgLW51Y2xldXMqIFwKLSAJICAgICAgfCAtbW9ycGhvcyogfCAtc3Vw ZXJ1eCogfCAtcnRtayogfCAtcnRtay1ub3ZhKiB8IC13aW5kaXNzKiBcCi0tCSAgICAgIHwgLXBv d2VybWF4KiB8IC1kbml4KiB8IC1ueDYgfCAtbng3IHwgLXNlaSogfCAtZHJhZ29uZmx5KikKLSsJ ICAgICAgfCAtcG93ZXJtYXgqIHwgLWRuaXgqIHwgLW54NiB8IC1ueDcgfCAtc2VpKiB8IC1kcmFn b25mbHkqIFwKLSsJICAgICAgfCAtc2t5b3MqIHwgLWhhaWt1KiB8IC1yZG9zKiB8IC10b3BwZXJz KiB8IC1kcm9wcyogfCAtZXMqKQotIAkjIFJlbWVtYmVyLCBlYWNoIGFsdGVybmF0aXZlIE1VU1Qg RU5EIElOICosIHRvIG1hdGNoIGEgdmVyc2lvbiBudW1iZXIuCi0gCQk7OwotIAktcW54KikKLUBA IC0xMTg4LDcgKzEzOTEsNyBAQAotIAkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG50b3xudG8t cW54fCdgCi0gCQk7OwotIAktc2ltIHwgLWVzMTgwMCogfCAtaG1zKiB8IC14cmF5IHwgLW9zNjhr KiB8IC1ub25lKiB8IC12ODhyKiBcCi0tCSAgICAgIHwgLXdpbmRvd3MqIHwgLW9zeCB8IC1hYnVn IHwgLW5ldHdhcmUqIHwgLW9zOSogfCAtYmVvcyogXAotKwkgICAgICB8IC13aW5kb3dzKiB8IC1v c3ggfCAtYWJ1ZyB8IC1uZXR3YXJlKiB8IC1vczkqIHwgLWJlb3MqIHwgLWhhaWt1KiBcCi0gCSAg ICAgIHwgLW1hY29zKiB8IC1tcHcqIHwgLW1hZ2ljKiB8IC1tbWl4d2FyZSogfCAtbW9uOTYwKiB8 IC1sbmV3cyopCi0gCQk7OwotIAktbWFjKikKLUBAIC0xMjA5LDcgKzE0MTIsNyBAQAotIAktb3Bl bmVkKikKLSAJCW9zPS1vcGVuZWRpdGlvbgotIAkJOzsKLS0gICAgICAgIC1vczQwMCopCi0rCS1v czQwMCopCi0gCQlvcz0tb3M0MDAKLSAJCTs7Ci0gCS13aW5jZSopCi1AQCAtMTI1OCw3ICsxNDYx LDcgQEAKLSAJLXNpbml4KikKLSAJCW9zPS1zeXN2NAotIAkJOzsKLS0gICAgICAgIC10cGYqKQot KwktdHBmKikKLSAJCW9zPS10cGYKLSAJCTs7Ci0gCS10cml0b24qKQotQEAgLTEyOTcsNiArMTUw MCwxNCBAQAotIAkta2FvcyopCi0gCQlvcz0ta2FvcwotIAkJOzsKLSsJLXp2bW9lKQotKwkJb3M9 LXp2bW9lCi0rCQk7OwotKwktZGljb3MqKQotKwkJb3M9LWRpY29zCi0rCQk7OwotKwktbmFjbCop Ci0rCQk7OwotIAktbm9uZSkKLSAJCTs7Ci0gCSopCi1AQCAtMTMxOSw2ICsxNTMwLDEyIEBACi0g IyBzeXN0ZW0sIGFuZCB3ZSdsbCBuZXZlciBnZXQgdG8gdGhpcyBwb2ludC4KLSAKLSBjYXNlICRi YXNpY19tYWNoaW5lIGluCi0rCXNjb3JlLSopCi0rCQlvcz0tZWxmCi0rCQk7OwotKwlzcHUtKikK LSsJCW9zPS1lbGYKLSsJCTs7Ci0gCSotYWNvcm4pCi0gCQlvcz0tcmlzY2l4MS4yCi0gCQk7Owot QEAgLTEzMjgsOSArMTU0NSwyMSBAQAotIAlhcm0qLXNlbWkpCi0gCQlvcz0tYW91dAotIAkJOzsK LS0gICAgYzR4LSogfCB0aWM0eC0qKQotLSAgICAgICAgb3M9LWNvZmYKLS0gICAgICAgIDs7Ci0r CWM0eC0qIHwgdGljNHgtKikKLSsJCW9zPS1jb2ZmCi0rCQk7OwotKwloZXhhZ29uLSopCi0rCQlv cz0tZWxmCi0rCQk7OwotKwl0aWM1NHgtKikKLSsJCW9zPS1jb2ZmCi0rCQk7OwotKwl0aWM1NXgt KikKLSsJCW9zPS1jb2ZmCi0rCQk7OwotKwl0aWM2eC0qKQotKwkJb3M9LWNvZmYKLSsJCTs7Ci0g CSMgVGhpcyBtdXN0IGNvbWUgYmVmb3JlIHRoZSAqLWRlYyBlbnRyeS4KLSAJcGRwMTAtKikKLSAJ CW9zPS10b3BzMjAKLUBAIC0xMzQ5LDEzICsxNTc4LDEzIEBACi0gCQk7OwotIAltNjgwMDAtc3Vu KQotIAkJb3M9LXN1bm9zMwotLQkJIyBUaGlzIGFsc28gZXhpc3RzIGluIHRoZSBjb25maWd1cmUg cHJvZ3JhbSwgYnV0IHdhcyBub3QgdGhlCi0tCQkjIGRlZmF1bHQuCi0tCQkjIG9zPS1zdW5vczQK LSAJCTs7Ci0gCW02OCotY2lzY28pCi0gCQlvcz0tYW91dAotIAkJOzsKLSsJbWVwLSopCi0rCQlv cz0tZWxmCi0rCQk7OwotIAltaXBzKi1jaXNjbykKLSAJCW9zPS1lbGYKLSAJCTs7Ci1AQCAtMTM3 NCwxMCArMTYwMywxMyBAQAotIAkqLWJlKQotIAkJb3M9LWJlb3MKLSAJCTs7Ci0rCSotaGFpa3Up Ci0rCQlvcz0taGFpa3UKLSsJCTs7Ci0gCSotaWJtKQotIAkJb3M9LWFpeAotIAkJOzsKLS0gICAg CSota251dGgpCi0rCSota251dGgpCi0gCQlvcz0tbW1peHdhcmUKLSAJCTs7Ci0gCSotd2VjKQot QEAgLTE0ODIsNyArMTcxNCw3IEBACi0gCQkJLXN1bm9zKikKLSAJCQkJdmVuZG9yPXN1bgotIAkJ CQk7OwotLQkJCS1haXgqKQotKwkJCS1jbmsqfC1haXgqKQotIAkJCQl2ZW5kb3I9aWJtCi0gCQkJ CTs7Ci0gCQkJLWJlb3MqKQotQEAgLTE1NDUsNyArMTc3Nyw3IEBACi0gZXNhYwotIAotIGVjaG8g JGJhc2ljX21hY2hpbmUkb3MKLS1leGl0IDAKLStleGl0Ci0gCi0gIyBMb2NhbCB2YXJpYWJsZXM6 Ci0gIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCgpkaWZm IC0tZ2l0IGEvcGFkcy5pbml0IGIvcGFkcy5pbml0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCA5OGNlYWNkLi4wMDAwMDAwCi0tLSBhL3BhZHMuaW5pdAorKysgL2Rldi9udWxsCkBAIC0x LDkwICswLDAgQEAKLSMhL2Jpbi9zaAotIyBTdGFydHVwIHNjcmlwdCBmb3IgcGFkcwotIwotIyBj aGtjb25maWc6IC0gNDAgNjAKLSMgZGVzY3JpcHRpb246IFJ1biBwYWRzCi0jIGNvbmZpZyAvZXRj L3BhZHMvcGFkcy5jb25mCi0KLVBBVEg9L3NiaW46L2JpbjovdXNyL2JpbjovdXNyL3NiaW4KLXBy b2c9InBhZHMiCi0KLSMgU291cmNlIGZ1bmN0aW9uIGxpYnJhcnkuCi0uIC9ldGMvcmMuZC9pbml0 LmQvZnVuY3Rpb25zCi0KLSMgQWxsb3cgYW55b25lIHRvIHJ1biBzdGF0dXMKLWlmIFsgIiQxIiA9 ICJzdGF0dXMiIF0gOyB0aGVuCi0Jc3RhdHVzICRwcm9nCi0JUkVUVkFMPSQ/Ci0JZXhpdCAkUkVU VkFMCi1maQotCi0jIENoZWNrIHRoYXQgd2UgYXJlIHJvb3QgLi4uIHNvIG5vbi1yb290IHVzZXJz IHN0b3AgaGVyZQotdGVzdCAkRVVJRCA9IDAgIHx8ICBleGl0IDQKLQotIyBDaGVjayBjb25maWcK LXRlc3QgLWYgL2V0Yy9zeXNjb25maWcvcGFkcyAmJiAuIC9ldGMvc3lzY29uZmlnL3BhZHMKLQot UkVUVkFMPTAKLQotc3RhcnQoKSB7Ci0JdGVzdCAteCAvdXNyL2Jpbi8kcHJvZyAgfHwgZXhpdCA1 Ci0JdGVzdCAtZiAkQ09ORklHX0ZJTEUgIHx8IGV4aXQgNgotCi0JaWYgdGVzdCAieGBwaWRvZiAk cHJvZ2AiICE9IHg7IHRoZW4KLQkJZWNobyAiJHByb2cgYWxyZWFkeSBzdGFydGVkIgotCQlhY3Rp b24gJCJTdGFydGluZyAkcHJvZzogIiAvYmluL2ZhbHNlCi0JCVJFVFZBTD0xCi0JCXJldHVybiAk UkVUVkFMCi0JZWxzZQotCQllY2hvIC1uICQiU3RhcnRpbmcgJHByb2c6ICIKLQkJdW5zZXQgSE9N RSBNQUlMIFVTRVIgVVNFUk5BTUUKLQkJZGFlbW9uICRwcm9nIC1EIC1jICRDT05GSUdfRklMRSAk RVhUUkFfT1BUSU9OUwotCQlSRVRWQUw9JD8KLQkJaWYgdGVzdCAkUkVUVkFMID0gMCA7IHRoZW4K LQkJCXRvdWNoIC92YXIvbG9jay9zdWJzeXMvJHByb2cKLQkJZmkKLQkJZWNobwotCQlyZXR1cm4g JFJFVFZBTAotCWZpCi19Ci0KLXN0b3AoKSB7Ci0JaWYgdGVzdCAieGBwaWRvZiAkcHJvZ2AiICE9 IHg7IHRoZW4KLQkJZWNobyAtbiAkIlN0b3BwaW5nICRwcm9nOiAiCi0JCWtpbGxwcm9jICRwcm9n Ci0JCVJFVFZBTD0kPwotCQllY2hvCi0JZmkKLQlybSAtZiAvdmFyL2xvY2svc3Vic3lzLyRwcm9n Ci0JcmV0dXJuICRSRVRWQUwKLX0KLQotY2FzZSAiJDEiIGluCi0Jc3RhcnQpCi0JICAgIHN0YXJ0 Ci0JICAgIDs7Ci0JCi0Jc3RvcCkKLQkgICAgc3RvcAotCSAgICA7OwotCQotCXJlc3RhcnR8cmVs b2FkKQotCSAgICBzdG9wCi0JICAgIHNsZWVwIDMKLQkgICAgc3RhcnQKLQkgICAgOzsKLQljb25k cmVzdGFydCkKLQkgICAgaWYgdGVzdCAieGBwaWRvZiBwcm9nYCIgIT0geDsgdGhlbgotCQlzdG9w Ci0JCXN0YXJ0Ci0JICAgIGZpCi0JICAgIDs7Ci0JCi0JKikKLQkgICAgZWNobyAkIlVzYWdlOiAk MCB7c3RhcnR8c3RvcHxyZXN0YXJ0fGNvbmRyZXN0YXJ0fHN0YXR1c30iCi0JICAgIFJFVFZBTD0z Ci0KLWVzYWMKLQotZXhpdCAkUkVUVkFMCi0KCmRpZmYgLS1naXQgYS9wYWRzLnNlcnZpY2UgYi9w YWRzLnNlcnZpY2UKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY0ZTUzNDAuLjAwMDAw MDAKLS0tIGEvcGFkcy5zZXJ2aWNlCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotW1Vu aXRdCi1EZXNjcmlwdGlvbj1QYXNzaXZlIEFzc2V0IERldGVjdGlvbiBTeXN0ZW0KLUFmdGVyPW5l dHdvcmsudGFyZ2V0Ci1Eb2N1bWVudGF0aW9uPW1hbjpwYWRzKDgpCi0KLVtTZXJ2aWNlXQotVHlw ZT1mb3JraW5nCi1QSURGaWxlPS9ydW4vcGFkcy5waWQKLUV4ZWNTdGFydD0vdXNyL2Jpbi9wYWRz IC1EIC1jIC9ldGMvcGFkcy5jb25mCi0KLSMjIyBTZWN1cml0eSBTZXR0aW5ncyAjIyMKLU1lbW9y eURlbnlXcml0ZUV4ZWN1dGU9dHJ1ZQotTG9ja1BlcnNvbmFsaXR5PXRydWUKLVByb3RlY3RLZXJu ZWxNb2R1bGVzPXRydWUKLVByb3RlY3RLZXJuZWxUdW5hYmxlcz10cnVlCi1Qcm90ZWN0Q29udHJv bEdyb3Vwcz10cnVlCi1SZXN0cmljdFJlYWx0aW1lPXRydWUKLQotW0luc3RhbGxdCi1XYW50ZWRC eT1tdWx0aS11c2VyLnRhcmdldAoKZGlmZiAtLWdpdCBhL3BhZHMuc3BlYyBiL3BhZHMuc3BlYwpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDhjY2FhMy4uMDAwMDAwMAotLS0gYS9wYWRz LnNwZWMKKysrIC9kZXYvbnVsbApAQCAtMSwyMzkgKzAsMCBAQAotJWRlZmluZSBfZGVmYXVsdF9w YXRjaF9mdXp6IDIKLU5hbWU6IHBhZHMKLVZlcnNpb246IDEuMgotUmVsZWFzZTogNDUlez9kaXN0 fQotU3VtbWFyeTogUGFzc2l2ZSBBc3NldCBEZXRlY3Rpb24gU3lzdGVtCi1MaWNlbnNlOiBHUEwt Mi4wLW9yLWxhdGVyIAotVVJMOiBodHRwOi8vcGFzc2l2ZS5zb3VyY2Vmb3JnZS5uZXQvCi1Tb3Vy Y2UwOiBodHRwOi8vcHJkb3dubG9hZHMuc291cmNlZm9yZ2UubmV0L3Bhc3NpdmUvJXtuYW1lfS0l e3ZlcnNpb259LnRhci5negotU291cmNlMTogcGFkcy5zZXJ2aWNlCi1Tb3VyY2UyOiBwYWRzLnN5 c2NvbmZpZwotUGF0Y2gxOiBwYWRzLTEuMi1jbGVhbnVwLnBhdGNoCi1QYXRjaDI6IHBhZHMtMS4y LW1lbWxlYWsucGF0Y2gKLVBhdGNoMzogcGFkcy0xLjItb3ZlcnJ1bi5wYXRjaAotUGF0Y2g0OiBw YWRzLTEuMi1kaXNhYmxlLWRlYnVnLnBhdGNoCi1QYXRjaDU6IHBhZHMtMS4yLWRhZW1vbml6ZS5w YXRjaAotUGF0Y2g2OiBwYWRzLTEuMi1ldGhlci1jb2Rlcy11cGRhdGUucGF0Y2gKLVBhdGNoNzog cGFkcy0xLjItbWlzYy5wYXRjaAotUGF0Y2g4OiBwYWRzLTEuMi1hcnAucGF0Y2gKLVBhdGNoOTog cGFkcy0xLjItcHJlbHVkZS5wYXRjaAotUGF0Y2gxMDogcGFkcyt2bGFuLnBhdGNoCi1QYXRjaDEx OiBwYWRzLTEuMi1wcmVsdWRlLWNsZWFudXAucGF0Y2gKLVBhdGNoMTI6IHBhZHMtMS4yLXJlYWRv bmx5LnBhdGNoCi1QYXRjaDEzOiBwYWRzLTEuMi1ic3RyaW5nLnBhdGNoCi1QYXRjaDE0OiBwYWRz LTEuMi1sZWFrLnBhdGNoCi1QYXRjaDE1OiBwYWRzLTEuMi1wZXJmLnBhdGNoCi1QYXRjaDE2OiBw YWRzLTEuMi1kYWVtb24ucGF0Y2gKLVBhdGNoMTc6IHBhZHMtMS4yLXB0aHJlYWRzLnBhdGNoCi1Q YXRjaDE4OiBwYWRzLWFhcmNoNjQucGF0Y2gKLVBhdGNoMTk6IHBhZHMtMS4yLWlubGluZS1jbGVh bnVwLnBhdGNoCi1QYXRjaDIwOiBwYWRzLTEuMi1leHRyYS1saWJzLnBhdGNoCi1CdWlsZFJlcXVp cmVzOiBtYWtlCi1CdWlsZFJlcXVpcmVzOiAgZ2NjCi1CdWlsZFJlcXVpcmVzOiBhdXRvbWFrZSBh dXRvY29uZgotQnVpbGRSZXF1aXJlczogcGNyZS1kZXZlbCBsaWJwY2FwLWRldmVsCi1CdWlsZFJl cXVpcmVzOiBwZXJsLWdlbmVyYXRvcnMKLUJ1aWxkUmVxdWlyZXM6IHN5c3RlbWQKLVJlcXVpcmVz KHBvc3QpOiBzeXN0ZW1kLXVuaXRzCi1SZXF1aXJlcyhwcmV1bik6IHN5c3RlbWQtdW5pdHMKLVJl cXVpcmVzKHBvc3R1bik6IHN5c3RlbWQtdW5pdHMKLQotCi0lZGVzY3JpcHRpb24KLVBBRFMgaXMg YSBsaWJwY2FwIGJhc2VkIGRldGVjdGlvbiBlbmdpbmUgdXNlZCB0byBwYXNzaXZlbHkgCi1kZXRl Y3QgbmV0d29yayBhc3NldHMuCi0KLSVwcmVwCi0lc2V0dXAgLXEKLSVwYXRjaCAxIC1wMQotJXBh dGNoIDIgLXAxCi0lcGF0Y2ggMyAtcDEKLSVwYXRjaCA0IC1wMQotJXBhdGNoIDUgLXAxCi0lcGF0 Y2ggNiAtcDEKLSVwYXRjaCA3IC1wMQotJXBhdGNoIDggLXAxCi0lcGF0Y2ggOSAtcDEKLSVwYXRj aCAxMCAtcDEKLSVwYXRjaCAxMSAtcDEKLSVwYXRjaCAxMiAtcDEKLSVwYXRjaCAxMyAtcDEKLSVw YXRjaCAxNCAtcDEKLSVwYXRjaCAxNSAtcDEKLSVwYXRjaCAxNiAtcDEKLSVwYXRjaCAxNyAtcDEK LSVwYXRjaCAxOCAtcDEKLSVwYXRjaCAxOSAtcDEKLSVwYXRjaCAyMCAtcDEKLQotJWJ1aWxkCi1h dXRvcmVjb25mIC1mdiAtLWluc3RhbGwKLSVjb25maWd1cmUgCi1tYWtlICV7P19zbXBfbWZsYWdz fQotCi0laW5zdGFsbAotcm0gLXJmICV7YnVpbGRyb290fQotbWtkaXIgLXAgJXtidWlsZHJvb3R9 JXtfdW5pdGRpcn0KLW1rZGlyIC1wICV7YnVpbGRyb290fSV7X3N5c2NvbmZkaXJ9L3N5c2NvbmZp ZwotbWFrZSBpbnN0YWxsIERFU1RESVI9JXtidWlsZHJvb3R9Ci1pbnN0YWxsIC1tIDY0NCAlU09V UkNFMSAle2J1aWxkcm9vdH0le191bml0ZGlyfS9wYWRzLnNlcnZpY2UKLWluc3RhbGwgLW0gNjQw ICVTT1VSQ0UyICV7YnVpbGRyb290fSV7X3N5c2NvbmZkaXJ9L3N5c2NvbmZpZy8le25hbWV9Ci0j IFJlbW92ZSBpbnN0YWxsZWQgZG9jcyBzaW5jZSB3ZSBwaWNrIHRoaXMgdXAgYW5vdGhlciB3YXkK LXJtIC1yZiAkUlBNX0JVSUxEX1JPT1QvdXNyL3NoYXJlL3BhZHMvCi0KLSVwb3N0Ci0lc3lzdGVt ZF9wb3N0IHBhZHMuc2VydmljZQotCi0lcHJldW4KLSVzeXN0ZW1kX3ByZXVuIHBhZHMuc2Vydmlj ZQotCi0lcG9zdHVuCi0lc3lzdGVtZF9wb3N0dW5fd2l0aF9yZXN0YXJ0IHBhZHMuc2VydmljZQot Ci0lZmlsZXMKLSVkb2MgZG9jL0FVVEhPUlMgZG9jL0NPUFlJTkcgZG9jL1JFQURNRSBkb2MvQ2hh bmdlTG9nCi0le19zeXNjb25mZGlyfS9wYWRzLWV0aGVyLWNvZGVzCi0le19zeXNjb25mZGlyfS9w YWRzLXNpZ25hdHVyZS1saXN0Ci0lY29uZmlnKG5vcmVwbGFjZSkgJWF0dHIoMDY0MCxyb290LHJv b3QpICV7X3N5c2NvbmZkaXJ9L3BhZHMuY29uZgotJWNvbmZpZyhub3JlcGxhY2UpICVhdHRyKDA2 NDAscm9vdCxyb290KSAle19zeXNjb25mZGlyfS9zeXNjb25maWcvJXtuYW1lfQotJXtfdW5pdGRp cn0vcGFkcy5zZXJ2aWNlCi0le19iaW5kaXJ9L3BhZHMKLSV7X2JpbmRpcn0vcGFkcy1yZXBvcnQK LSV7X21hbmRpcn0vKi8qCi0KLSVjaGFuZ2Vsb2cKLSogVGh1IEp1bCAxNiAyMDI2IEZlZG9yYSBS ZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS4yLTQ1Ci0t IFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDVfTWFz c19SZWJ1aWxkCi0KLSogRnJpIEphbiAxNiAyMDI2IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5n IDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS4yLTQ0Ci0tIFJlYnVpbHQgZm9yIGh0dHBz Oi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDRfTWFzc19SZWJ1aWxkCi0KLSogVGh1 IEp1bCAyNCAyMDI1IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJv amVjdC5vcmc+IC0gMS4yLTQzCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5v cmcvd2lraS9GZWRvcmFfNDNfTWFzc19SZWJ1aWxkCi0KLSogRnJpIEphbiAxNyAyMDI1IEZlZG9y YSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS4yLTQy Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDJf TWFzc19SZWJ1aWxkCi0KLSogVGh1IEp1bCAxOCAyMDI0IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVy aW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS4yLTQxCi0tIFJlYnVpbHQgZm9yIGh0 dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDFfTWFzc19SZWJ1aWxkCi0KLSog VGh1IEphbiAyNSAyMDI0IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3Jh cHJvamVjdC5vcmc+IC0gMS4yLTQwCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVj dC5vcmcvd2lraS9GZWRvcmFfNDBfTWFzc19SZWJ1aWxkCi0KLSogU3VuIEphbiAyMSAyMDI0IEZl ZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS4y LTM5Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFf NDBfTWFzc19SZWJ1aWxkCi0KLSogVHVlIE5vdiAxNCAyMDIzIFN0ZXZlIEdydWJiIDxzZ3J1YmJA cmVkaGF0LmNvbT4gLSAxLjItMzgKLS0gRml4IHBhdGNoaW5nIGFuZCBpbXByb3ZlIHNlY3VyaXR5 IHNldHRpbmdzIGluIHNlcnZpY2UgZmlsZQotCi0qIFRodSBKdWwgMjAgMjAyMyBGZWRvcmEgUmVs ZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEuMi0zNwotLSBS ZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzM5X01hc3Nf UmVidWlsZAotCi0qIFRodSBKYW4gMTkgMjAyMyBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8 cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEuMi0zNgotLSBSZWJ1aWx0IGZvciBodHRwczov L2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzM4X01hc3NfUmVidWlsZAotCi0qIFRodSBE ZWMgMjIgMjAyMiBTdGV2ZSBHcnViYiA8c2dydWJiQHJlZGhhdC5jb20+IC0gMS4yLTM1Ci0tIFNQ RFggTWlncmF0aW9uCi0KLSogRnJpIEp1bCAyMiAyMDIyIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVy aW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS4yLTM0Ci0tIFJlYnVpbHQgZm9yIGh0 dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzdfTWFzc19SZWJ1aWxkCi0KLSog VGh1IEphbiAyMCAyMDIyIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3Jh cHJvamVjdC5vcmc+IC0gMS4yLTMzCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVj dC5vcmcvd2lraS9GZWRvcmFfMzZfTWFzc19SZWJ1aWxkCi0KLSogVGh1IEp1bCAyMiAyMDIxIEZl ZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS4y LTMyCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFf MzVfTWFzc19SZWJ1aWxkCi0KLSogVHVlIE1hciAwMiAyMDIxIFpiaWduaWV3IErEmWRyemVqZXdz a2ktU3ptZWsgPHpieXN6ZWtAaW4ud2F3LnBsPiAtIDEuMi0zMQotLSBSZWJ1aWx0IGZvciB1cGRh dGVkIHN5c3RlbWQtcnBtLW1hY3JvcwotICBTZWUgaHR0cHM6Ly9wYWd1cmUuaW8vZmVzY28vaXNz dWUvMjU4My4KLQotKiBUdWUgSmFuIDI2IDIwMjEgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcg PHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjItMzAKLS0gUmVidWlsdCBmb3IgaHR0cHM6 Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zNF9NYXNzX1JlYnVpbGQKLQotKiBUdWUg SnVsIDI4IDIwMjAgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9q ZWN0Lm9yZz4gLSAxLjItMjkKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9y Zy93aWtpL0ZlZG9yYV8zM19NYXNzX1JlYnVpbGQKLQotKiBXZWQgSmFuIDI5IDIwMjAgRmVkb3Jh IFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjItMjgK LS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zMl9N YXNzX1JlYnVpbGQKLQotKiBUaHUgSnVsIDI1IDIwMTkgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJp bmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjItMjcKLS0gUmVidWlsdCBmb3IgaHR0 cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zMV9NYXNzX1JlYnVpbGQKLQotKiBG cmkgRmViIDAxIDIwMTkgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFw cm9qZWN0Lm9yZz4gLSAxLjItMjYKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0 Lm9yZy93aWtpL0ZlZG9yYV8zMF9NYXNzX1JlYnVpbGQKLQotKiBGcmkgSnVsIDEzIDIwMTggRmVk b3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjIt MjUKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8y OV9NYXNzX1JlYnVpbGQKLQotKiBUaHUgRmViIDA4IDIwMTggRmVkb3JhIFJlbGVhc2UgRW5naW5l ZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjItMjQKLS0gUmVidWlsdCBmb3Ig aHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8yOF9NYXNzX1JlYnVpbGQKLQot KiBUaHUgU2VwIDIxIDIwMTcgU3RldmUgR3J1YmIgPHNncnViYkByZWRoYXQuY29tPiAxLjItMjMK LS0gQWRkIHN5c3RlbWQgbWFjcm9zLiAoIzg1MDI2MikKLQotKiBUaHUgQXVnIDAzIDIwMTcgRmVk b3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjIt MjIKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8y N19CaW51dGlsc19NYXNzX1JlYnVpbGQKLQotKiBUaHUgSnVsIDI3IDIwMTcgRmVkb3JhIFJlbGVh c2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjItMjEKLS0gUmVi dWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8yN19NYXNzX1Jl YnVpbGQKLQotKiBTYXQgRmViIDExIDIwMTcgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJl bGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjItMjAKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9m ZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8yNl9NYXNzX1JlYnVpbGQKLQotKiBUaHUgRmVi IDA0IDIwMTYgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0 Lm9yZz4gLSAxLjItMTkKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93 aWtpL0ZlZG9yYV8yNF9NYXNzX1JlYnVpbGQKLQotKiBNb24gQXVnIDE3IDIwMTUgU3RldmUgR3J1 YmIgPHNncnViYkByZWRoYXQuY29tPiAxLjItMTgKLS0gRml4IGJhZCBpbmxpbmUga2V5d29yZCB1 c2UgKCMxMjM5NzU1KQotCi0qIFRodSBKdW4gMTggMjAxNSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVl cmluZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjItMTcKLS0gUmVidWls dCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8yM19NYXNzX1JlYnVp bGQKLQotKiBTdW4gQXVnIDE3IDIwMTQgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbC1l bmdAbGlzdHMuZmVkb3JhcHJvamVjdC5vcmc+IC0gMS4yLTE2Ci0tIFJlYnVpbHQgZm9yIGh0dHBz Oi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMjFfMjJfTWFzc19SZWJ1aWxkCi0KLSog RnJpIEp1biAwNiAyMDE0IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWwtZW5nQGxpc3Rz LmZlZG9yYXByb2plY3Qub3JnPiAtIDEuMi0xNQotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9y YXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzIxX01hc3NfUmVidWlsZAotCi0qIFNhdCBBdWcgMDMg MjAxMyBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFwcm9q ZWN0Lm9yZz4gLSAxLjItMTQKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9y Zy93aWtpL0ZlZG9yYV8yMF9NYXNzX1JlYnVpbGQKLQotKiBXZWQgSnVsIDE3IDIwMTMgUGV0ciBQ aXNhciA8cHBpc2FyQHJlZGhhdC5jb20+IC0gMS4yLTEzCi0tIFBlcmwgNS4xOCByZWJ1aWxkCi0K LSogRnJpIEp1biAyMSAyMDEzIFN0ZXZlIEdydWJiIDxzZ3J1YmJAcmVkaGF0LmNvbT4gMS4yLTEy Ci0tIERyb3AgcHJlbHVkZSBzdXBwb3J0Ci0KLSogU3VuIEp1biAwMiAyMDEzIFN0ZXZlIEdydWJi IDxzZ3J1YmJAcmVkaGF0LmNvbT4gMS4yLTExCi0tIFN1cHBvcnQgQWFyY2g2NCAoIzkyNjI5OCkK LQotKiBUaHUgRmViIDE0IDIwMTMgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbC1lbmdA bGlzdHMuZmVkb3JhcHJvamVjdC5vcmc+IC0gMS4yLTEwCi0tIFJlYnVpbHQgZm9yIGh0dHBzOi8v ZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMTlfTWFzc19SZWJ1aWxkCi0KLSogRnJpIEp1 bCAyMCAyMDEyIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWwtZW5nQGxpc3RzLmZlZG9y YXByb2plY3Qub3JnPiAtIDEuMi05Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVj dC5vcmcvd2lraS9GZWRvcmFfMThfTWFzc19SZWJ1aWxkCi0KLSogTW9uIEZlYiAyMCAyMDEyIEpv biBDaWVzbGEgPGxpbWJ1cmdoZXJAZ21haWwuY29tPiAtIDEuMi04Ci0tIE1pZ3JhdGUgdG8gc3lz dGVtZCwgQlogNjYxNjMyLgotCi0qIEZyaSBGZWIgMTAgMjAxMiBQZXRyIFBpc2FyIDxwcGlzYXJA cmVkaGF0LmNvbT4gLSAxLjItNwotLSBSZWJ1aWxkIGFnYWluc3QgUENSRSA4LjMwCi0KLSogRnJp IEphbiAxMyAyMDEyIEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWwtZW5nQGxpc3RzLmZl ZG9yYXByb2plY3Qub3JnPiAtIDEuMi02Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJv amVjdC5vcmcvd2lraS9GZWRvcmFfMTdfTWFzc19SZWJ1aWxkCi0KLSogVHVlIEZlYiAwOCAyMDEx IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWwtZW5nQGxpc3RzLmZlZG9yYXByb2plY3Qu b3JnPiAtIDEuMi01Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lr aS9GZWRvcmFfMTVfTWFzc19SZWJ1aWxkCi0KLSogU2F0IEp1bCAyNSAyMDA5IEZlZG9yYSBSZWxl YXNlIEVuZ2luZWVyaW5nIDxyZWwtZW5nQGxpc3RzLmZlZG9yYXByb2plY3Qub3JnPiAtIDEuMi00 Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMTJf TWFzc19SZWJ1aWxkCi0KLSogVGh1IEZlYiAyNiAyMDA5IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVy aW5nIDxyZWwtZW5nQGxpc3RzLmZlZG9yYXByb2plY3Qub3JnPiAtIDEuMi0zCi0tIFJlYnVpbHQg Zm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMTFfTWFzc19SZWJ1aWxk Ci0KLSogVHVlIE9jdCAyOCAyMDA4IFN0ZXZlIEdydWJiIDxzZ3J1YmJAcmVkaGF0LmNvbT4gMS4y LTIKLS0gVXBkYXRlIENGTEFHUyBmb3IgbmV3ZXIgbGlicHJlbHVkZSAoIzQ2NTk2NCkKLQotKiBU dWUgQXVnIDEyIDIwMDggU3RldmUgR3J1YmIgPHNncnViYkByZWRoYXQuY29tPiAxLjItMQotIElu aXRpYWwgcnBtIGJ1aWxkIHdpdGggbWFueSBidWcgZml4ZXMKCmRpZmYgLS1naXQgYS9wYWRzLnN5 c2NvbmZpZyBiL3BhZHMuc3lzY29uZmlnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4 NzA1M2EyLi4wMDAwMDAwCi0tLSBhL3BhZHMuc3lzY29uZmlnCisrKyAvZGV2L251bGwKQEAgLTEs NiArMCwwIEBACi0jIENvbmZpZyBmaWxlIGxvY2F0aW9uCi1DT05GSUdfRklMRT0iL2V0Yy9wYWRz LmNvbmYiCi0KLSMgQWRkIGV4dHJhIG9wdGlvbnMgaGVyZQotRVhUUkFfT1BUSU9OUz0iIgotCgpk aWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IGNjYjUxMTUuLjAwMDAwMDAKLS0tIGEvc291cmNlcworKysgL2Rldi9udWxsCkBAIC0xICsw LDAgQEAKLTJhMzY2MTk1YzU1YWQ2YjY4NTljNGM4NGNlODc3ZWU4ICBwYWRzLTEuMi50YXIuZ3oK