Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oiI1F-0004a8-NI for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Oct 2022 16:22:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oiI1E-000454-Dt for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Oct 2022 16:22:12 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oiI1C-00044L-ST for pgsql-hackers@lists.postgresql.org; Tue, 11 Oct 2022 16:22:11 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oiI0z-0001Ge-A9 for pgsql-hackers@lists.postgresql.org; Tue, 11 Oct 2022 16:22:09 +0000 Received: from [192.168.27.174] (unknown [93.174.131.141]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id D00F121C2F27 for ; Tue, 11 Oct 2022 19:21:53 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1665505314; bh=K/+DEYFLWW3818fgXJvUP7Fqgi6GASr7RA/V7QCAB40=; h=Date:Subject:To:References:From:In-Reply-To; b=M6PdBXH6L9DjRDAD0x83kin+Jk5o+JI49cQbwJospnU6UdDU9/7sOA9YtX0NErYcj hhT/hNr98wKFJXT41lUf6AhznwKPQoSFCSQv63ZJP0yu+Tq5BauzU/aiHH6ZikFTTW QlCZLLlZNcyMEqJJLSMdiEiExe22dlPaTEu6ASto= Content-Type: multipart/mixed; boundary="------------8m7fmgIa9q79cxDV08lh7em9" Message-ID: <9186127e-8f8f-cbd3-40de-b7bf01e57fb5@postgrespro.ru> Date: Tue, 11 Oct 2022 19:21:54 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.3.2 Subject: Re: Add SPLIT PARTITION/MERGE PARTITIONS commands To: PostgreSQL Hackers References: <163714495450.16056.3566953095730878367@malur.postgresql.org> Content-Language: en-US From: Dmitry Koval In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------8m7fmgIa9q79cxDV08lh7em9 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi! Fixed couple warnings (for cfbot). -- With best regards, Dmitry Koval Postgres Professional: http://postgrespro.com --------------8m7fmgIa9q79cxDV08lh7em9 Content-Type: text/plain; charset=UTF-8; name="v12-0001-PGPRO-ALTER-TABLE-MERGE-PARTITIONS-command.patch" Content-Disposition: attachment; filename*0="v12-0001-PGPRO-ALTER-TABLE-MERGE-PARTITIONS-command.patch" Content-Transfer-Encoding: base64 RnJvbSAzNTcxODdjZWZjZWY0ZTkzNDBmNWM2Nzk4ZGRlZWY5ZTRlNjJmMTVkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLb3ZhbCBEbWl0cnkgPGQua292YWxAcG9zdGdyZXNw cm8ucnU+CkRhdGU6IE1vbiwgMTkgU2VwIDIwMjIgMTY6MDY6MDMgKzAzMDAKU3ViamVjdDog W1BBVENIIHYxMiAxLzJdIEFMVEVSIFRBQkxFIE1FUkdFIFBBUlRJVElPTlMgY29tbWFuZAoK LS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAz NDcgKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAg ICAgICAgfCAgMjIgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgICAg ICAgICAgICB8ICA4OSArKysKIHNyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRz LmMgICAgICAgICB8IDE4NCArKysrKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o ICAgICAgICAgICAgICAgIHwgIDEzICsKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAg ICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9wYXJ0aXRpb25pbmcvcGFy dGJvdW5kcy5oICAgICAgICAgfCAgIDYgKwogLi4uL2lzb2xhdGlvbi9leHBlY3RlZC9wYXJ0 aXRpb24tbWVyZ2Uub3V0ICAgIHwgMTk5ICsrKysrCiBzcmMvdGVzdC9pc29sYXRpb24vaXNv bGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvaXNvbGF0aW9uL3Nw ZWNzL3BhcnRpdGlvbi1tZXJnZS5zcGVjIHwgIDU0ICsrCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5vdXQgfCA3MzYgKysrKysrKysrKysrKysrKysrCiBz cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDIgKy0K IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9tZXJnZS5zcWwgICAgICB8IDQzNCAr KysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAg ICAgIHwgICAxICsKIDE0IGZpbGVzIGNoYW5nZWQsIDIwNzAgaW5zZXJ0aW9ucygrKSwgMTkg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvaXNvbGF0aW9uL2V4 cGVjdGVkL3BhcnRpdGlvbi1tZXJnZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVz dC9pc29sYXRpb24vc3BlY3MvcGFydGl0aW9uLW1lcmdlLnNwZWMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5vdXQKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fbWVyZ2Uu c3FsCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAyMDEzNWVmMWIwLi5jNmUx YmE2ZGNhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNjM3LDYgKzYzNyw4 IEBAIHN0YXRpYyB2b2lkIEFURGV0YWNoQ2hlY2tOb0ZvcmVpZ25LZXlSZWZzKFJlbGF0aW9u IHBhcnRpdGlvbik7CiBzdGF0aWMgY2hhciBHZXRBdHRyaWJ1dGVDb21wcmVzc2lvbihPaWQg YXR0dHlwaWQsIGNoYXIgKmNvbXByZXNzaW9uKTsKIHN0YXRpYyBjaGFyIEdldEF0dHJpYnV0 ZVN0b3JhZ2UoT2lkIGF0dHR5cGlkLCBjb25zdCBjaGFyICpzdG9yYWdlbW9kZSk7CiAKK3N0 YXRpYyB2b2lkIEFURXhlY01lcmdlUGFydGl0aW9ucyhMaXN0ICoqd3F1ZXVlLCBBbHRlcmVk VGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKKwkJCQkJCQkJICBQYXJ0aXRpb25DbWQg KmNtZCwgQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0KTsKIAogLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICoJCURlZmluZVJlbGF0aW9uCkBAIC00NDAxLDYgKzQ0MDMsMTAgQEAgQWx0ZXJU YWJsZUdldExvY2tMZXZlbChMaXN0ICpjbWRzKQogCQkJCWNtZF9sb2NrbW9kZSA9IFNoYXJl VXBkYXRlRXhjbHVzaXZlTG9jazsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBBVF9NZXJnZVBh cnRpdGlvbnM6CisJCQkJY21kX2xvY2ttb2RlID0gQWNjZXNzRXhjbHVzaXZlTG9jazsKKwkJ CQlicmVhazsKKwogCQkJY2FzZSBBVF9DaGVja05vdE51bGw6CiAKIAkJCQkvKgpAQCAtNDgy Miw2ICs0ODI4LDExIEBAIEFUUHJlcENtZChMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWws IEFsdGVyVGFibGVDbWQgKmNtZCwKIAkJCS8qIE5vIGNvbW1hbmQtc3BlY2lmaWMgcHJlcCBu ZWVkZWQgKi8KIAkJCXBhc3MgPSBBVF9QQVNTX01JU0M7CiAJCQlicmVhazsKKwkJY2FzZSBB VF9NZXJnZVBhcnRpdGlvbnM6CisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlw ZSwgcmVsLCBBVFRfVEFCTEUpOworCQkJLyogTm8gY29tbWFuZC1zcGVjaWZpYyBwcmVwIG5l ZWRlZCAqLworCQkJcGFzcyA9IEFUX1BBU1NfTUlTQzsKKwkJCWJyZWFrOwogCQlkZWZhdWx0 OgkJCQkvKiBvb3BzICovCiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGFsdGVyIHRh YmxlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgY21kLT5zdWJ0eXBlKTsKQEAgLTUyNDMsNiAr NTI1NCwxNCBAQCBBVEV4ZWNDbWQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAq dGFiLAogCQljYXNlIEFUX0RldGFjaFBhcnRpdGlvbkZpbmFsaXplOgogCQkJYWRkcmVzcyA9 IEFURXhlY0RldGFjaFBhcnRpdGlvbkZpbmFsaXplKHJlbCwgKChQYXJ0aXRpb25DbWQgKikg Y21kLT5kZWYpLT5uYW1lKTsKIAkJCWJyZWFrOworCQljYXNlIEFUX01lcmdlUGFydGl0aW9u czoKKwkJCWNtZCA9IEFUUGFyc2VUcmFuc2Zvcm1DbWQod3F1ZXVlLCB0YWIsIHJlbCwgY21k LCBmYWxzZSwgbG9ja21vZGUsCisJCQkJCQkJCQkgIGN1cl9wYXNzLCBjb250ZXh0KTsKKwkJ CUFzc2VydChjbWQgIT0gTlVMTCk7CisJCQlBc3NlcnQocmVsLT5yZF9yZWwtPnJlbGtpbmQg PT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSk7CisJCQlBVEV4ZWNNZXJnZVBhcnRpdGlv bnMod3F1ZXVlLCB0YWIsIHJlbCwgKFBhcnRpdGlvbkNtZCAqKSBjbWQtPmRlZiwKKwkJCQkJ CQkJICBjb250ZXh0KTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgkJCQkvKiBvb3BzICovCiAJ CQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGFsdGVyIHRhYmxlIHR5cGU6ICVkIiwKIAkJ CQkgKGludCkgY21kLT5zdWJ0eXBlKTsKQEAgLTYyMzEsNiArNjI1MCw4IEBAIGFsdGVyX3Rh YmxlX3R5cGVfdG9fc3RyaW5nKEFsdGVyVGFibGVUeXBlIGNtZHR5cGUpCiAJCQlyZXR1cm4g IkRFVEFDSCBQQVJUSVRJT04iOwogCQljYXNlIEFUX0RldGFjaFBhcnRpdGlvbkZpbmFsaXpl OgogCQkJcmV0dXJuICJERVRBQ0ggUEFSVElUSU9OIC4uLiBGSU5BTElaRSI7CisJCWNhc2Ug QVRfTWVyZ2VQYXJ0aXRpb25zOgorCQkJcmV0dXJuICJNRVJHRSBQQVJUSVRJT05TIjsKIAkJ Y2FzZSBBVF9BZGRJZGVudGl0eToKIAkJCXJldHVybiAiQUxURVIgQ09MVU1OIC4uLiBBREQg SURFTlRJVFkiOwogCQljYXNlIEFUX1NldElkZW50aXR5OgpAQCAtMTc2MzksNiArMTc2NjAs MzcgQEAgUXVldWVQYXJ0aXRpb25Db25zdHJhaW50VmFsaWRhdGlvbihMaXN0ICoqd3F1ZXVl LCBSZWxhdGlvbiBzY2FucmVsLAogCX0KIH0KIAorLyoKKyAqIGF0dGFjaFBhcnRpdGlvblRh YmxlOiBhdHRhY2ggbmV3IHBhcnRpdGlvbiB0byBwYXJ0aXRpb25lZCB0YWJsZQorICoKKyAq IHdxdWV1ZTogdGhlIEFMVEVSIFRBQkxFIHdvcmsgcXVldWU7IGNhbiBiZSBOVUxMIHdoZW4g bm90IHJ1bm5pbmcgYXMgcGFydAorICogICBvZiBhbiBBTFRFUiBUQUJMRSBzZXF1ZW5jZS4K KyAqIHJlbDogcGFydGl0aW9uZWQgcmVsYXRpb247CisgKiBwYXJ0aXRpb246IHJlbGF0aW9u IG9mIGF0dGFjaGVkIHBhcnRpdGlvbjsKKyAqIGJvdW5kOiBib3VuZHMgb2YgYXR0YWNoZWQg cmVsYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCithdHRhY2hQYXJ0aXRpb25UYWJsZShMaXN0 ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIFJlbGF0aW9uIHBhcnRpdGlvbiwgUGFydGl0aW9u Qm91bmRTcGVjICpib3VuZCkKK3sKKwkvKiBPSyB0byBjcmVhdGUgaW5oZXJpdGFuY2UuICBS ZXN0IG9mIHRoZSBjaGVja3MgcGVyZm9ybWVkIHRoZXJlICovCisJQ3JlYXRlSW5oZXJpdGFu Y2UocGFydGl0aW9uLCByZWwpOworCisJLyogVXBkYXRlIHRoZSBwZ19jbGFzcyBlbnRyeS4g Ki8KKwlTdG9yZVBhcnRpdGlvbkJvdW5kKHBhcnRpdGlvbiwgcmVsLCBib3VuZCk7CisKKwkv KiBFbnN1cmUgdGhlcmUgZXhpc3RzIGEgY29ycmVjdCBzZXQgb2YgaW5kZXhlcyBpbiB0aGUg cGFydGl0aW9uLiAqLworCUF0dGFjaFBhcnRpdGlvbkVuc3VyZUluZGV4ZXMocmVsLCBwYXJ0 aXRpb24pOworCisJLyogYW5kIHRyaWdnZXJzICovCisJQ2xvbmVSb3dUcmlnZ2Vyc1RvUGFy dGl0aW9uKHJlbCwgcGFydGl0aW9uKTsKKworCS8qCisJICogQ2xvbmUgZm9yZWlnbiBrZXkg Y29uc3RyYWludHMuICBDYWxsZWUgaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgdXAKKwkg KiBmb3IgcGhhc2UgMyBjb25zdHJhaW50IHZlcmlmaWNhdGlvbi4KKwkgKi8KKwlDbG9uZUZv cmVpZ25LZXlDb25zdHJhaW50cyh3cXVldWUsIHJlbCwgcGFydGl0aW9uKTsKK30KKwogLyoK ICAqIEFMVEVSIFRBQkxFIDxuYW1lPiBBVFRBQ0ggUEFSVElUSU9OIDxwYXJ0aXRpb24tbmFt ZT4gRk9SIFZBTFVFUwogICoKQEAgLTE3ODMxLDIzICsxNzg4Myw4IEBAIEFURXhlY0F0dGFj aFBhcnRpdGlvbihMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIFBhcnRpdGlvbkNtZCAq Y21kLAogCWNoZWNrX25ld19wYXJ0aXRpb25fYm91bmQoUmVsYXRpb25HZXRSZWxhdGlvbk5h bWUoYXR0YWNocmVsKSwgcmVsLAogCQkJCQkJCSAgY21kLT5ib3VuZCwgcHN0YXRlKTsKIAot CS8qIE9LIHRvIGNyZWF0ZSBpbmhlcml0YW5jZS4gIFJlc3Qgb2YgdGhlIGNoZWNrcyBwZXJm b3JtZWQgdGhlcmUgKi8KLQlDcmVhdGVJbmhlcml0YW5jZShhdHRhY2hyZWwsIHJlbCk7Ci0K LQkvKiBVcGRhdGUgdGhlIHBnX2NsYXNzIGVudHJ5LiAqLwotCVN0b3JlUGFydGl0aW9uQm91 bmQoYXR0YWNocmVsLCByZWwsIGNtZC0+Ym91bmQpOwotCi0JLyogRW5zdXJlIHRoZXJlIGV4 aXN0cyBhIGNvcnJlY3Qgc2V0IG9mIGluZGV4ZXMgaW4gdGhlIHBhcnRpdGlvbi4gKi8KLQlB dHRhY2hQYXJ0aXRpb25FbnN1cmVJbmRleGVzKHJlbCwgYXR0YWNocmVsKTsKLQotCS8qIGFu ZCB0cmlnZ2VycyAqLwotCUNsb25lUm93VHJpZ2dlcnNUb1BhcnRpdGlvbihyZWwsIGF0dGFj aHJlbCk7Ci0KLQkvKgotCSAqIENsb25lIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnRzLiAgQ2Fs bGVlIGlzIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHVwCi0JICogZm9yIHBoYXNlIDMgY29u c3RyYWludCB2ZXJpZmljYXRpb24uCi0JICovCi0JQ2xvbmVGb3JlaWduS2V5Q29uc3RyYWlu dHMod3F1ZXVlLCByZWwsIGF0dGFjaHJlbCk7CisJLyogQXR0YWNoIHBhcnRpdGlvbiB0byBw YXJ0aXRpb25lZCB0YWJsZS4gKi8KKwlhdHRhY2hQYXJ0aXRpb25UYWJsZSh3cXVldWUsIHJl bCwgYXR0YWNocmVsLCBjbWQtPmJvdW5kKTsKIAogCS8qCiAJICogR2VuZXJhdGUgcGFydGl0 aW9uIGNvbnN0cmFpbnQgZnJvbSB0aGUgcGFydGl0aW9uIGJvdW5kIHNwZWNpZmljYXRpb24u CkBAIC0xOTMxMiwzICsxOTM0OSwyNzkgQEAgR2V0QXR0cmlidXRlU3RvcmFnZShPaWQgYXR0 dHlwaWQsIGNvbnN0IGNoYXIgKnN0b3JhZ2Vtb2RlKQogCiAJcmV0dXJuIGNzdG9yYWdlOwog fQorCisvKgorICogY3JlYXRlUGFydGl0aW9uVGFibGU6IGNyZWF0ZSB0YWJsZSBmb3IgbmV3 IHBhcnRpdGlvbiB3aXRoIGdpdmVuIG5hbWUKKyAqIChuZXdQYXJ0TmFtZSkgbGlrZSB0YWJs ZSAobW9kZWxSZWxOYW1lKQorICoKKyAqIEVtdWxhdGVzIGNvbW1hbmQ6IENSRUFURSBUQUJM RSA8bmV3UGFydE5hbWU+IChMSUtFIDxtb2RlbFJlbE5hbWU+CisgKiBJTkNMVURJTkcgQUxM IEVYQ0xVRElORyBJTkRFWEVTKQorICovCitzdGF0aWMgdm9pZAorY3JlYXRlUGFydGl0aW9u VGFibGUoUmFuZ2VWYXIgKm5ld1BhcnROYW1lLCBSYW5nZVZhciAqbW9kZWxSZWxOYW1lLAor CQkJCQkgQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0KQoreworCUNyZWF0ZVN0 bXQgKmNyZWF0ZVN0bXQ7CisJVGFibGVMaWtlQ2xhdXNlICp0bGM7CisJUGxhbm5lZFN0bXQg KndyYXBwZXI7CisKKwljcmVhdGVTdG10ID0gbWFrZU5vZGUoQ3JlYXRlU3RtdCk7CisJY3Jl YXRlU3RtdC0+cmVsYXRpb24gPSBuZXdQYXJ0TmFtZTsKKwljcmVhdGVTdG10LT50YWJsZUVs dHMgPSBOSUw7CisJY3JlYXRlU3RtdC0+aW5oUmVsYXRpb25zID0gTklMOworCWNyZWF0ZVN0 bXQtPmNvbnN0cmFpbnRzID0gTklMOworCWNyZWF0ZVN0bXQtPm9wdGlvbnMgPSBOSUw7CisJ Y3JlYXRlU3RtdC0+b25jb21taXQgPSBPTkNPTU1JVF9OT09QOworCWNyZWF0ZVN0bXQtPnRh Ymxlc3BhY2VuYW1lID0gTlVMTDsKKwljcmVhdGVTdG10LT5pZl9ub3RfZXhpc3RzID0gZmFs c2U7CisKKwl0bGMgPSBtYWtlTm9kZShUYWJsZUxpa2VDbGF1c2UpOworCXRsYy0+cmVsYXRp b24gPSBtb2RlbFJlbE5hbWU7CisKKwkvKgorCSAqIEluZGV4ZXMgd2lsbCBiZSBpbmhlcml0 ZWQgb24gImF0dGFjaCBuZXcgcGFydGl0aW9ucyIgc3RhZ2UsIGFmdGVyIGRhdGEKKwkgKiBt b3ZpbmcuCisJICovCisJdGxjLT5vcHRpb25zID0gQ1JFQVRFX1RBQkxFX0xJS0VfQUxMICYg fkNSRUFURV9UQUJMRV9MSUtFX0lOREVYRVM7CisJdGxjLT5yZWxhdGlvbk9pZCA9IEludmFs aWRPaWQ7CisJY3JlYXRlU3RtdC0+dGFibGVFbHRzID0gbGFwcGVuZChjcmVhdGVTdG10LT50 YWJsZUVsdHMsIHRsYyk7CisKKwkvKiBOZWVkIHRvIG1ha2UgYSB3cmFwcGVyIFBsYW5uZWRT dG10LiAqLworCXdyYXBwZXIgPSBtYWtlTm9kZShQbGFubmVkU3RtdCk7CisJd3JhcHBlci0+ Y29tbWFuZFR5cGUgPSBDTURfVVRJTElUWTsKKwl3cmFwcGVyLT5jYW5TZXRUYWcgPSBmYWxz ZTsKKwl3cmFwcGVyLT51dGlsaXR5U3RtdCA9IChOb2RlICopIGNyZWF0ZVN0bXQ7CisJd3Jh cHBlci0+c3RtdF9sb2NhdGlvbiA9IGNvbnRleHQtPnBzdG10LT5zdG10X2xvY2F0aW9uOwor CXdyYXBwZXItPnN0bXRfbGVuID0gY29udGV4dC0+cHN0bXQtPnN0bXRfbGVuOworCisJUHJv Y2Vzc1V0aWxpdHkod3JhcHBlciwKKwkJCQkgICBjb250ZXh0LT5xdWVyeVN0cmluZywKKwkJ CQkgICBmYWxzZSwKKwkJCQkgICBQUk9DRVNTX1VUSUxJVFlfU1VCQ09NTUFORCwKKwkJCQkg ICBOVUxMLAorCQkJCSAgIE5VTEwsCisJCQkJICAgTm9uZV9SZWNlaXZlciwKKwkJCQkgICBO VUxMKTsKK30KKworLyoKKyAqIFN0cnVjdCB3aXRoIGNvbnRleHQgb2YgbWVyZ2VkIHBhcnRp dGlvbgorICovCit0eXBlZGVmIHN0cnVjdCBNZXJnZWRQYXJ0Q29udGV4dAoreworCVJlbGF0 aW9uCXBhcnRSZWw7CQkvKiByZWxhdGlvbiBmb3IgcGFydGl0aW9uICovCit9CQkJTWVyZ2Vk UGFydENvbnRleHQ7CisKKy8qCisgKiBtb3ZlTWVyZ2VkVGFibGVzUm93czogc2NhbiBtZXJn ZWQgcGFydGl0aW9ucyAocGFydENvbnRleHQpIG9mIHBhcnRpdGlvbmVkCisgKiB0YWJsZSAo cmVsKSBhbmQgbW92ZSByb3dzIGludG8gbmV3IHBhcnRpdGlvbiAobmV3UGFydFJlbCkuCisg Ki8KK3N0YXRpYyB2b2lkCittb3ZlTWVyZ2VkVGFibGVzUm93cyhSZWxhdGlvbiByZWwsIExp c3QgKnBhcnRDb250ZXh0LCBSZWxhdGlvbiBuZXdQYXJ0UmVsKQoreworCUNvbW1hbmRJZAlt eWNpZDsKKworCS8qIFRoZSBGU00gaXMgZW1wdHksIHNvIGRvbid0IGJvdGhlciB1c2luZyBp dC4gKi8KKwlpbnQJCQl0aV9vcHRpb25zID0gVEFCTEVfSU5TRVJUX1NLSVBfRlNNOworCUxp c3RDZWxsICAgKmxpc3RwdHI7CisJQnVsa0luc2VydFN0YXRlIGJpc3RhdGU7CS8qIHN0YXRl IG9mIGJ1bGsgaW5zZXJ0cyBmb3IgcGFydGl0aW9uICovCisJVHVwbGVUYWJsZVNsb3QgKmRz dHNsb3Q7CisKKwlteWNpZCA9IEdldEN1cnJlbnRDb21tYW5kSWQodHJ1ZSk7CisKKwkvKiBQ cmVwYXJlIGEgQnVsa0luc2VydFN0YXRlIGZvciB0YWJsZV90dXBsZV9pbnNlcnQuICovCisJ YmlzdGF0ZSA9IEdldEJ1bGtJbnNlcnRTdGF0ZSgpOworCisJLyogQ3JlYXRlIG5lY2Vzc2Fy eSB0dXBsZSBzbG90LiAqLworCWRzdHNsb3QgPSBNYWtlU2luZ2xlVHVwbGVUYWJsZVNsb3Qo UmVsYXRpb25HZXREZXNjcihuZXdQYXJ0UmVsKSwKKwkJCQkJCQkJCSAgIHRhYmxlX3Nsb3Rf Y2FsbGJhY2tzKG5ld1BhcnRSZWwpKTsKKwlFeGVjU3RvcmVBbGxOdWxsVHVwbGUoZHN0c2xv dCk7CisKKwlmb3JlYWNoKGxpc3RwdHIsIHBhcnRDb250ZXh0KQorCXsKKwkJTWVyZ2VkUGFy dENvbnRleHQgKnBjID0gKE1lcmdlZFBhcnRDb250ZXh0ICopIGxmaXJzdChsaXN0cHRyKTsK KwkJVHVwbGVUYWJsZVNsb3QgKnNyY3Nsb3Q7CisJCVR1cGxlQ29udmVyc2lvbk1hcCAqdHVw bGVfbWFwOworCQlUYWJsZVNjYW5EZXNjIHNjYW47CisJCVNuYXBzaG90CXNuYXBzaG90Owor CisJCS8qIENyZWF0ZSB0dXBsZSBzbG90IGZvciBuZXcgcGFydGl0aW9uLiAqLworCQlzcmNz bG90ID0gTWFrZVNpbmdsZVR1cGxlVGFibGVTbG90KFJlbGF0aW9uR2V0RGVzY3IocGMtPnBh cnRSZWwpLAorCQkJCQkJCQkJCSAgIHRhYmxlX3Nsb3RfY2FsbGJhY2tzKHBjLT5wYXJ0UmVs KSk7CisKKwkJLyoKKwkJICogTWFwIGNvbXB1dGluZyBmb3IgbW92aW5nIGF0dHJpYnV0ZXMg b2YgbWVyZ2VkIHBhcnRpdGlvbiB0byBuZXcKKwkJICogcGFydGl0aW9uLgorCQkgKi8KKwkJ dHVwbGVfbWFwID0gY29udmVydF90dXBsZXNfYnlfbmFtZShSZWxhdGlvbkdldERlc2NyKHBj LT5wYXJ0UmVsKSwKKwkJCQkJCQkJCQkgICBSZWxhdGlvbkdldERlc2NyKG5ld1BhcnRSZWwp KTsKKworCQkvKiBTY2FuIHRocm91Z2ggdGhlIHJvd3MuICovCisJCXNuYXBzaG90ID0gUmVn aXN0ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKKwkJc2NhbiA9IHRhYmxlX2Jl Z2luc2NhbihwYy0+cGFydFJlbCwgc25hcHNob3QsIDAsIE5VTEwpOworCisJCXdoaWxlICh0 YWJsZV9zY2FuX2dldG5leHRzbG90KHNjYW4sIEZvcndhcmRTY2FuRGlyZWN0aW9uLCBzcmNz bG90KSkKKwkJeworCQkJVHVwbGVUYWJsZVNsb3QgKmluc2VydHNsb3Q7CisKKwkJCS8qIEV4 dHJhY3QgZGF0YSBmcm9tIG9sZCB0dXBsZS4gKi8KKwkJCXNsb3RfZ2V0YWxsYXR0cnMoc3Jj c2xvdCk7CisKKwkJCWlmICh0dXBsZV9tYXApCisJCQl7CisJCQkJLyogTmVlZCB0byB1c2Ug bWFwIGZvciBjb3B5IGF0dHJpYnV0ZXMuICovCisJCQkJaW5zZXJ0c2xvdCA9IGV4ZWN1dGVf YXR0cl9tYXBfc2xvdCh0dXBsZV9tYXAtPmF0dHJNYXAsIHNyY3Nsb3QsIGRzdHNsb3QpOwor CQkJfQorCQkJZWxzZQorCQkJeworCQkJCS8qIENvcHkgYXR0cmlidXRlcyBkaXJlY3RseS4g Ki8KKwkJCQlpbnNlcnRzbG90ID0gZHN0c2xvdDsKKworCQkJCUV4ZWNDbGVhclR1cGxlKGlu c2VydHNsb3QpOworCisJCQkJbWVtY3B5KGluc2VydHNsb3QtPnR0c192YWx1ZXMsIHNyY3Ns b3QtPnR0c192YWx1ZXMsCisJCQkJCSAgIHNpemVvZihEYXR1bSkgKiBzcmNzbG90LT50dHNf bnZhbGlkKTsKKwkJCQltZW1jcHkoaW5zZXJ0c2xvdC0+dHRzX2lzbnVsbCwgc3Jjc2xvdC0+ dHRzX2lzbnVsbCwKKwkJCQkJICAgc2l6ZW9mKGJvb2wpICogc3Jjc2xvdC0+dHRzX252YWxp ZCk7CisKKwkJCQlFeGVjU3RvcmVWaXJ0dWFsVHVwbGUoaW5zZXJ0c2xvdCk7CisJCQl9CisK KwkJCS8qIFdyaXRlIHRoZSB0dXBsZSBvdXQgdG8gdGhlIG5ldyByZWxhdGlvbi4gKi8KKwkJ CXRhYmxlX3R1cGxlX2luc2VydChuZXdQYXJ0UmVsLCBpbnNlcnRzbG90LCBteWNpZCwgdGlf b3B0aW9ucywgYmlzdGF0ZSk7CisKKwkJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisJCX0K KworCQl0YWJsZV9lbmRzY2FuKHNjYW4pOworCQlVbnJlZ2lzdGVyU25hcHNob3Qoc25hcHNo b3QpOworCisJCWlmICh0dXBsZV9tYXApCisJCQlmcmVlX2NvbnZlcnNpb25fbWFwKHR1cGxl X21hcCk7CisKKwkJRXhlY0Ryb3BTaW5nbGVUdXBsZVRhYmxlU2xvdChzcmNzbG90KTsKKwl9 CisKKwlFeGVjRHJvcFNpbmdsZVR1cGxlVGFibGVTbG90KGRzdHNsb3QpOworCUZyZWVCdWxr SW5zZXJ0U3RhdGUoYmlzdGF0ZSk7CisKKwl0YWJsZV9maW5pc2hfYnVsa19pbnNlcnQobmV3 UGFydFJlbCwgdGlfb3B0aW9ucyk7Cit9CisKKy8qCisgKiBBTFRFUiBUQUJMRSA8bmFtZT4g TUVSR0UgUEFSVElUSU9OUyA8cGFydGl0aW9uLWxpc3Q+IElOVE8gPHBhcnRpdGlvbi1uYW1l PgorICovCitzdGF0aWMgdm9pZAorQVRFeGVjTWVyZ2VQYXJ0aXRpb25zKExpc3QgKip3cXVl dWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAorCQkJCQkgIFBhcnRp dGlvbkNtZCAqY21kLCBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQgKmNvbnRleHQpCit7CisJ UmVsYXRpb24JbmV3UGFydFJlbDsKKwlMaXN0Q2VsbCAgICpsaXN0cHRyOworCUxpc3QJICAg KnBhcnRDb250ZXh0cyA9IE5JTDsKKwlPaWQJCQlkZWZhdWx0UGFydE9pZDsKKwljaGFyCQl0 bXBSZWxOYW1lW05BTUVEQVRBTEVOXTsKKwlSYW5nZVZhciAgICptZXJnZVBhcnROYW1lID0g Y21kLT5uYW1lOworCWJvb2wJCWlzU2FtZU5hbWUgPSBmYWxzZTsKKworCS8qCisJICogTG9j ayBhbGwgbWVyZ2VkIHBhcnRpdGlvbnMsIGNoZWNrIHRoZW0gYW5kIGNyZWF0ZSBsaXN0IHdp dGggcGFydGl0aW9ucworCSAqIGNvbnRleHRzLgorCSAqLworCWZvcmVhY2gobGlzdHB0ciwg Y21kLT5wYXJ0bGlzdCkKKwl7CisJCVJhbmdlVmFyICAgKm5hbWUgPSAoUmFuZ2VWYXIgKikg bGZpcnN0KGxpc3RwdHIpOworCQlNZXJnZWRQYXJ0Q29udGV4dCAqcGM7CisKKwkJcGMgPSAo TWVyZ2VkUGFydENvbnRleHQgKikgcGFsbG9jMChzaXplb2YoTWVyZ2VkUGFydENvbnRleHQp KTsKKworCQkvKgorCQkgKiBXZSBhcmUgZ29pbmcgdG8gZGV0YWNoIGFuZCByZW1vdmUgdGhp cyBwYXJ0aXRpb246IG5lZWQgdG8gdXNlCisJCSAqIGV4Y2x1c2l2ZSBsb2NrIGZvciBwcmV2 ZW50IERNTC1xdWVyaWVzIHRvIHRoZSBwYXJ0aXRpb24uCisJCSAqLworCQlwYy0+cGFydFJl bCA9IHRhYmxlX29wZW5ydihuYW1lLCBBY2Nlc3NFeGNsdXNpdmVMb2NrKTsKKworCQlpZiAo cGMtPnBhcnRSZWwtPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1JFTEFUSU9OKQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQ RSksCisJCQkJCSBlcnJtc2coImNhbm5vdCBtZXJnZSBub24tdGFibGUgcGFydGl0aW9uIFwi JXNcIiIsCisJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocGMtPnBhcnRSZWwpKSkp OworCisJCWlmIChlcXVhbChuYW1lLCBjbWQtPm5hbWUpKQorCQkJLyogT25lIG5ldyBwYXJ0 aXRpb24gY2FuIGhhdmUgdGhlIHNhbWUgbmFtZSBhcyBtZXJnZWQgcGFydGl0aW9uLiAqLwor CQkJaXNTYW1lTmFtZSA9IHRydWU7CisKKwkJLyogU3RvcmUgcGFydGl0aW9uIGNvbnRleHQg aW50byBwYXJ0aXRpb25zIGxpc3QuICovCisJCXBhcnRDb250ZXh0cyA9IGxhcHBlbmQocGFy dENvbnRleHRzLCBwYyk7CisJfQorCisJLyogRGV0YWNoIGFsbCBtZXJnZWQgcGFydGl0aW9u cy4gKi8KKwlkZWZhdWx0UGFydE9pZCA9CisJCWdldF9kZWZhdWx0X29pZF9mcm9tX3BhcnRk ZXNjKFJlbGF0aW9uR2V0UGFydGl0aW9uRGVzYyhyZWwsIHRydWUpKTsKKwlmb3JlYWNoKGxp c3RwdHIsIHBhcnRDb250ZXh0cykKKwl7CisJCU1lcmdlZFBhcnRDb250ZXh0ICpwYyA9IChN ZXJnZWRQYXJ0Q29udGV4dCAqKSBsZmlyc3QobGlzdHB0cik7CisKKwkJUmVtb3ZlSW5oZXJp dGFuY2UocGMtPnBhcnRSZWwsIHJlbCwgZmFsc2UpOworCQkvKiBEbyB0aGUgZmluYWwgcGFy dCBvZiBkZXRhY2hpbmcuICovCisJCURldGFjaFBhcnRpdGlvbkZpbmFsaXplKHJlbCwgcGMt PnBhcnRSZWwsIGZhbHNlLCBkZWZhdWx0UGFydE9pZCk7CisJfQorCisJLyogQ3JlYXRlIHRh YmxlIGZvciBuZXcgcGFydGl0aW9uLCB1c2UgcGFydGl0aW9uZWQgdGFibGUgYXMgbW9kZWwu ICovCisJaWYgKGlzU2FtZU5hbWUpCisJeworCQkvKiBDcmVhdGUgcGFydGl0aW9uIHRhYmxl IHdpdGggZ2VuZXJhdGVkIHRlbXBhcmFyeSBuYW1lLiAqLworCQlzcHJpbnRmKHRtcFJlbE5h bWUsICJtZXJnZS0ldS0lWC10bXAiLCBSZWxhdGlvbkdldFJlbGlkKHJlbCksIE15UHJvY1Bp ZCk7CisJCW1lcmdlUGFydE5hbWUgPSBtYWtlUmFuZ2VWYXIoZ2V0X25hbWVzcGFjZV9uYW1l KFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkpLAorCQkJCQkJCQkJIHRtcFJlbE5hbWUsIC0x KTsKKwl9CisJY3JlYXRlUGFydGl0aW9uVGFibGUobWVyZ2VQYXJ0TmFtZSwKKwkJCQkJCSBt YWtlUmFuZ2VWYXIoZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJl bCkpLAorCQkJCQkJCQkJICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLCAtMSksCisJ CQkJCQkgY29udGV4dCk7CisKKwkvKiBPcGVuIHRoZSBuZXcgcGFydGl0aW9uIGFuZCBhY3F1 aXJlIGV4Y2x1c2l2ZSBsb2NrIG9uIGl0LiAqLworCW5ld1BhcnRSZWwgPSB0YWJsZV9vcGVu cnYobWVyZ2VQYXJ0TmFtZSwgQWNjZXNzRXhjbHVzaXZlTG9jayk7CisKKwkvKiBDb3B5IGRh dGEgZnJvbSBtZXJnZWQgcGFydGl0aW9ucyB0byBuZXcgcGFydGl0aW9uLiAqLworCW1vdmVN ZXJnZWRUYWJsZXNSb3dzKHJlbCwgcGFydENvbnRleHRzLCBuZXdQYXJ0UmVsKTsKKworCS8q CisJICogQXR0YWNoIG5ldyBwYXJ0aXRpb24gdG8gcGFydGl0aW9uZWQgdGFibGUuIHdxdWV1 ZSA9IE5VTEw6IHZlcmlmaWNhdGlvbgorCSAqIGZvciBlYWNoIGNsb25lZCBjb25zdHJhaW50 IGlzIG5vdCBuZWVkLgorCSAqLworCWF0dGFjaFBhcnRpdGlvblRhYmxlKE5VTEwsIHJlbCwg bmV3UGFydFJlbCwgY21kLT5ib3VuZCk7CisKKwkvKiBVbmxvY2sgYW5kIGRyb3AgbWVyZ2Vk IHBhcnRpdGlvbnMuICovCisJZm9yZWFjaChsaXN0cHRyLCBwYXJ0Q29udGV4dHMpCisJewor CQlPYmplY3RBZGRyZXNzIG9iamVjdDsKKwkJTWVyZ2VkUGFydENvbnRleHQgKnBjID0gKE1l cmdlZFBhcnRDb250ZXh0ICopIGxmaXJzdChsaXN0cHRyKTsKKworCQkvKiBHZXQgcmVsYXRp b24gaWQgYmVmb3JlIHRhYmxlX2Nsb3NlKCkgY2FsbC4gKi8KKwkJb2JqZWN0Lm9iamVjdElk ID0gUmVsYXRpb25HZXRSZWxpZChwYy0+cGFydFJlbCk7CisJCW9iamVjdC5jbGFzc0lkID0g UmVsYXRpb25SZWxhdGlvbklkOworCQlvYmplY3Qub2JqZWN0U3ViSWQgPSAwOworCisJCS8q IEtlZXAgdGhlIGxvY2sgdW50aWwgY29tbWl0LiAqLworCQl0YWJsZV9jbG9zZShwYy0+cGFy dFJlbCwgTm9Mb2NrKTsKKworCQlwZXJmb3JtRGVsZXRpb24oJm9iamVjdCwgRFJPUF9SRVNU UklDVCwgMCk7CisKKwkJcGZyZWUocGMpOworCX0KKworCS8qIFJlbmFtZSBuZXcgcGFydGl0 aW9uIGlmIGl0IGlzIG5lZWRlZC4gKi8KKwlpZiAoaXNTYW1lTmFtZSkKKwl7CisJCS8qCisJ CSAqIFdlIG11c3QgYnVtcCB0aGUgY29tbWFuZCBjb3VudGVyIHRvIG1ha2UgdGhlIG5ldyBw YXJ0aXRpb24gdHVwbGUKKwkJICogdmlzaWJsZSBmb3IgcmVuYW1lLgorCQkgKi8KKwkJQ29t bWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKwkJLyogUmVuYW1lIHBhcnRpdGlvbi4gKi8KKwkJ UmVuYW1lUmVsYXRpb25JbnRlcm5hbChSZWxhdGlvbkdldFJlbGlkKG5ld1BhcnRSZWwpLAor CQkJCQkJCSAgIGNtZC0+bmFtZS0+cmVsbmFtZSwgZmFsc2UsIGZhbHNlKTsKKwl9CisJLyog S2VlcCB0aGUgbG9jayB1bnRpbCBjb21taXQuICovCisJdGFibGVfY2xvc2UobmV3UGFydFJl bCwgTm9Mb2NrKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkg Yi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDk0ZDUxNDJhNGEuLjgxNDQzMTUx ZTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNzI3LDcgKzcyNyw3IEBAIHN0YXRpYyBOb2RlICpt YWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBO b2RlICpxdWVyeSk7CiAJT1JERVIgT1JESU5BTElUWSBPVEhFUlMgT1VUX1AgT1VURVJfUAog CU9WRVIgT1ZFUkxBUFMgT1ZFUkxBWSBPVkVSUklESU5HIE9XTkVEIE9XTkVSCiAKLQlQQVJB TExFTCBQQVJBTUVURVIgUEFSU0VSIFBBUlRJQUwgUEFSVElUSU9OIFBBU1NJTkcgUEFTU1dP UkQKKwlQQVJBTExFTCBQQVJBTUVURVIgUEFSU0VSIFBBUlRJQUwgUEFSVElUSU9OIFBBUlRJ VElPTlMgUEFTU0lORyBQQVNTV09SRAogCVBMQUNJTkcgUExBTlMgUE9MSUNZCiAJUE9TSVRJ T04gUFJFQ0VESU5HIFBSRUNJU0lPTiBQUkVTRVJWRSBQUkVQQVJFIFBSRVBBUkVEIFBSSU1B UlkKIAlQUklPUiBQUklWSUxFR0VTIFBST0NFRFVSQUwgUFJPQ0VEVVJFIFBST0NFRFVSRVMg UFJPR1JBTSBQVUJMSUNBVElPTgpAQCAtMjI2MSw2ICsyMjYxLDcgQEAgcGFydGl0aW9uX2Nt ZDoKIAkJCQkJbi0+c3VidHlwZSA9IEFUX0F0dGFjaFBhcnRpdGlvbjsKIAkJCQkJY21kLT5u YW1lID0gJDM7CiAJCQkJCWNtZC0+Ym91bmQgPSAkNDsKKwkJCQkJY21kLT5wYXJ0bGlzdCA9 IE5VTEw7CiAJCQkJCWNtZC0+Y29uY3VycmVudCA9IGZhbHNlOwogCQkJCQluLT5kZWYgPSAo Tm9kZSAqKSBjbWQ7CiAKQEAgLTIyNzUsNiArMjI3Niw3IEBAIHBhcnRpdGlvbl9jbWQ6CiAJ CQkJCW4tPnN1YnR5cGUgPSBBVF9EZXRhY2hQYXJ0aXRpb247CiAJCQkJCWNtZC0+bmFtZSA9 ICQzOwogCQkJCQljbWQtPmJvdW5kID0gTlVMTDsKKwkJCQkJY21kLT5wYXJ0bGlzdCA9IE5V TEw7CiAJCQkJCWNtZC0+Y29uY3VycmVudCA9ICQ0OwogCQkJCQluLT5kZWYgPSAoTm9kZSAq KSBjbWQ7CiAKQEAgLTIyODgsNiArMjI5MCwyMSBAQCBwYXJ0aXRpb25fY21kOgogCQkJCQlu LT5zdWJ0eXBlID0gQVRfRGV0YWNoUGFydGl0aW9uRmluYWxpemU7CiAJCQkJCWNtZC0+bmFt ZSA9ICQzOwogCQkJCQljbWQtPmJvdW5kID0gTlVMTDsKKwkJCQkJY21kLT5wYXJ0bGlzdCA9 IE5VTEw7CisJCQkJCWNtZC0+Y29uY3VycmVudCA9IGZhbHNlOworCQkJCQluLT5kZWYgPSAo Tm9kZSAqKSBjbWQ7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQkvKiBBTFRF UiBUQUJMRSA8bmFtZT4gTUVSR0UgUEFSVElUSU9OUyAoKSBJTlRPIDxwYXJ0aXRpb25fbmFt ZT4gKi8KKwkJCXwgTUVSR0UgUEFSVElUSU9OUyAnKCcgcXVhbGlmaWVkX25hbWVfbGlzdCAn KScgSU5UTyBxdWFsaWZpZWRfbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJUYWJsZUNtZCAqbiA9 IG1ha2VOb2RlKEFsdGVyVGFibGVDbWQpOworCQkJCQlQYXJ0aXRpb25DbWQgKmNtZCA9IG1h a2VOb2RlKFBhcnRpdGlvbkNtZCk7CisKKwkJCQkJbi0+c3VidHlwZSA9IEFUX01lcmdlUGFy dGl0aW9uczsKKwkJCQkJY21kLT5uYW1lID0gJDc7CisJCQkJCWNtZC0+Ym91bmQgPSBOVUxM OworCQkJCQljbWQtPnBhcnRsaXN0ID0gJDQ7CiAJCQkJCWNtZC0+Y29uY3VycmVudCA9IGZh bHNlOwogCQkJCQluLT5kZWYgPSAoTm9kZSAqKSBjbWQ7CiAJCQkJCSQkID0gKE5vZGUgKikg bjsKQEAgLTIzMDQsNiArMjMyMSw3IEBAIGluZGV4X3BhcnRpdGlvbl9jbWQ6CiAJCQkJCW4t PnN1YnR5cGUgPSBBVF9BdHRhY2hQYXJ0aXRpb247CiAJCQkJCWNtZC0+bmFtZSA9ICQzOwog CQkJCQljbWQtPmJvdW5kID0gTlVMTDsKKwkJCQkJY21kLT5wYXJ0bGlzdCA9IE5VTEw7CiAJ CQkJCWNtZC0+Y29uY3VycmVudCA9IGZhbHNlOwogCQkJCQluLT5kZWYgPSAoTm9kZSAqKSBj bWQ7CiAKQEAgLTE2ODMzLDYgKzE2ODUxLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJ fCBQQVJTRVIKIAkJCXwgUEFSVElBTAogCQkJfCBQQVJUSVRJT04KKwkJCXwgUEFSVElUSU9O UwogCQkJfCBQQVNTSU5HCiAJCQl8IFBBU1NXT1JECiAJCQl8IFBMQU5TCkBAIC0xNzQxNSw2 ICsxNzQzNCw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgUEFSU0VSCiAJCQl8IFBB UlRJQUwKIAkJCXwgUEFSVElUSU9OCisJCQl8IFBBUlRJVElPTlMKIAkJCXwgUEFTU0lORwog CQkJfCBQQVNTV09SRAogCQkJfCBQTEFDSU5HCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxj bWQuYwppbmRleCBiZDA2OGJiYTA1Li4wMjUyMWUxYjZkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV91dGlsY21kLmMKQEAgLTU4LDYgKzU4LDggQEAKICNpbmNsdWRlICJwYXJzZXIvcGFy c2VfdHlwZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV91dGlsY21kLmgiCiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNlci5oIgorI2luY2x1ZGUgInBhcnRpdGlvbmluZy9wYXJ0ZGVzYy5o IgorI2luY2x1ZGUgInBhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmgiCiAjaW5jbHVkZSAicmV3 cml0ZS9yZXdyaXRlTWFuaXAuaCIKICNpbmNsdWRlICJ1dGlscy9hY2wuaCIKICNpbmNsdWRl ICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMzI4MSw2ICszMjgzLDgwIEBAIHRyYW5zZm9ybVJ1 bGVTdG10KFJ1bGVTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIH0KIAog CisvKgorICogdHJhbnNmb3JtUGFydGl0aW9uQ21kRm9yTWVyZ2UKKyAqCQlBbmFseXplIHRo ZSBBTFRFUiBUQUJMTEUgLi4uIE1FUkdFIFBBUlRJVElPTlMgY29tbWFuZAorICoKKyAqIERv ZXMgc2ltcGxlIGNoZWNrcyBmb3IgbWVyZ2VkIHBhcnRpdGlvbnMuIENhbGN1bGF0ZXMgYm91 bmQgb2YgcmVzdWx0CisgKiBwYXJ0aXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCit0cmFuc2Zv cm1QYXJ0aXRpb25DbWRGb3JNZXJnZShDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBQYXJ0aXRp b25DbWQgKnBhcnRjbWQpCit7CisJT2lkCQkJZGVmYXVsdFBhcnRPaWQ7CisJT2lkCQkJcGFy dE9pZDsKKwlSZWxhdGlvbglwYXJlbnQgPSBjeHQtPnJlbDsKKwlQYXJ0aXRpb25LZXkga2V5 OworCWNoYXIJCXN0cmF0ZWd5OworCUxpc3RDZWxsICAgKmxpc3RwdHIsCisJCQkgICAqbGlz dHB0cjI7CisJYm9vbAkJaXNEZWZhdWx0UGFydCA9IGZhbHNlOworCUxpc3QJICAgKnBhcnRP aWRzID0gTklMOworCisJaWYgKHBhcmVudC0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRf UEFSVElUSU9ORURfVEFCTEUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJcIiVzXCIg aXMgbm90IGEgcGFydGl0aW9uZWQgdGFibGUiLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShw YXJlbnQpKSkpOworCisJa2V5ID0gUmVsYXRpb25HZXRQYXJ0aXRpb25LZXkocGFyZW50KTsK KwlzdHJhdGVneSA9IGdldF9wYXJ0aXRpb25fc3RyYXRlZ3koa2V5KTsKKworCWlmIChzdHJh dGVneSA9PSBQQVJUSVRJT05fU1RSQVRFR1lfSEFTSCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1z ZygicGFydGl0aW9uIG9mIGhhc2gtcGFydGl0aW9uZWQgdGFibGUgY2Fubm90IGJlIG1lcmdl ZCIpKSk7CisKKwkvKiBJcyBjdXJyZW50IHBhcnRpdGlvbiBhIERFRkFVTFQgcGFydGl0aW9u PyAqLworCWRlZmF1bHRQYXJ0T2lkID0gZ2V0X2RlZmF1bHRfb2lkX2Zyb21fcGFydGRlc2Mo CisJCQkJCQkJCQkJCQkgICBSZWxhdGlvbkdldFBhcnRpdGlvbkRlc2MocGFyZW50LCB0cnVl KSk7CisKKwlmb3JlYWNoKGxpc3RwdHIsIHBhcnRjbWQtPnBhcnRsaXN0KQorCXsKKwkJUmFu Z2VWYXIgICAqbmFtZSA9IChSYW5nZVZhciAqKSBsZmlyc3QobGlzdHB0cik7CisKKwkJLyog UGFydGl0aW9ucyBpbiB0aGUgbGlzdCBzaG91bGQgaGF2ZSBkaWZmZXJlbnQgbmFtZXMuICov CisJCWZvcl9lYWNoX2NlbGwobGlzdHB0cjIsIHBhcnRjbWQtPnBhcnRsaXN0LCBsbmV4dChw YXJ0Y21kLT5wYXJ0bGlzdCwgbGlzdHB0cikpCisJCXsKKwkJCVJhbmdlVmFyICAgKm5hbWUy ID0gKFJhbmdlVmFyICopIGxmaXJzdChsaXN0cHRyMik7CisKKwkJCWlmIChlcXVhbChuYW1l LCBuYW1lMikpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVf RFVQTElDQVRFX1RBQkxFKSwKKwkJCQkJCSBlcnJtc2coInBhcnRpdGlvbiB3aXRoIG5hbWUg XCIlc1wiIGFscmVhZHkgdXNlZCIsIG5hbWUtPnJlbG5hbWUpKSwKKwkJCQkJCXBhcnNlcl9l cnJwb3NpdGlvbihjeHQtPnBzdGF0ZSwgbmFtZTItPmxvY2F0aW9uKSk7CisJCX0KKworCQkv KiBTZWFyY2ggREVGQVVMVCBwYXJ0aXRpb24gaW4gdGhlIGxpc3QuICovCisJCXBhcnRPaWQg PSBSYW5nZVZhckdldFJlbGlkKG5hbWUsIE5vTG9jaywgZmFsc2UpOworCQlpZiAocGFydE9p ZCA9PSBkZWZhdWx0UGFydE9pZCkKKwkJCWlzRGVmYXVsdFBhcnQgPSB0cnVlOworCQlwYXJ0 T2lkcyA9IGxhcHBlbmRfb2lkKHBhcnRPaWRzLCBwYXJ0T2lkKTsKKwl9CisKKwkvKiBBbGxv Y2F0ZSBib3VuZCBvZiByZXN1bHQgcGFydGl0aW9uLiAqLworCUFzc2VydChwYXJ0Y21kLT5i b3VuZCA9PSBOVUxMKTsKKwlwYXJ0Y21kLT5ib3VuZCA9IG1ha2VOb2RlKFBhcnRpdGlvbkJv dW5kU3BlYyk7CisKKwkvKiBGaWxsIHBhcnRpdGlvbiBib3VuZC4gKi8KKwlwYXJ0Y21kLT5i b3VuZC0+c3RyYXRlZ3kgPSBzdHJhdGVneTsKKwlwYXJ0Y21kLT5ib3VuZC0+bG9jYXRpb24g PSAtMTsKKwlwYXJ0Y21kLT5ib3VuZC0+aXNfZGVmYXVsdCA9IGlzRGVmYXVsdFBhcnQ7CisJ aWYgKCFpc0RlZmF1bHRQYXJ0KQorCQljYWxjdWxhdGVfcGFydGl0aW9uX2JvdW5kX2Zvcl9t ZXJnZShwYXJlbnQsIHBhcnRjbWQtPnBhcnRsaXN0LAorCQkJCQkJCQkJCQlwYXJ0T2lkcywg cGFydGNtZC0+Ym91bmQsCisJCQkJCQkJCQkJCWN4dC0+cHN0YXRlKTsKK30KKwogLyoKICAq IHRyYW5zZm9ybUFsdGVyVGFibGVTdG10IC0KICAqCQlwYXJzZSBhbmFseXNpcyBmb3IgQUxU RVIgVEFCTEUKQEAgLTM1NTIsNiArMzYyOCwxOSBAQCB0cmFuc2Zvcm1BbHRlclRhYmxlU3Rt dChPaWQgcmVsaWQsIEFsdGVyVGFibGVTdG10ICpzdG10LAogCQkJCW5ld2NtZHMgPSBsYXBw ZW5kKG5ld2NtZHMsIGNtZCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgQVRfTWVyZ2VQYXJ0 aXRpb25zOgorCQkJCXsKKwkJCQkJUGFydGl0aW9uQ21kICpwYXJ0Y21kID0gKFBhcnRpdGlv bkNtZCAqKSBjbWQtPmRlZjsKKworCQkJCQlpZiAobGlzdF9sZW5ndGgocGFydGNtZC0+cGFy dGxpc3QpIDwgMikKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJCQkJCSBlcnJtc2coImxp c3Qgb2YgbmV3IHBhcnRpdGlvbnMgc2hvdWxkIGNvbnRhaW5zIGF0IGxlYXN0IHR3byBpdGVt cyIpKSk7CisJCQkJCXRyYW5zZm9ybVBhcnRpdGlvbkNtZEZvck1lcmdlKCZjeHQsIHBhcnRj bWQpOworCQkJCQluZXdjbWRzID0gbGFwcGVuZChuZXdjbWRzLCBjbWQpOworCQkJCQlicmVh azsKKwkJCQl9CisKIAkJCWRlZmF1bHQ6CiAKIAkJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFydGl0aW9uaW5nL3BhcnRib3VuZHMuYyBiL3NyYy9iYWNrZW5kL3BhcnRpdGlv bmluZy9wYXJ0Ym91bmRzLmMKaW5kZXggMDgyM2ZhN2IxZC4uMWZhMGE3Mzk3OCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRib3VuZHMuYworKysgYi9zcmMv YmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5jCkBAIC01MDAwLDMgKzUwMDAsMTg3 IEBAIHNhdGlzZmllc19oYXNoX3BhcnRpdGlvbihQR19GVU5DVElPTl9BUkdTKQogCiAJUEdf UkVUVVJOX0JPT0wocm93SGFzaCAlIG1vZHVsdXMgPT0gcmVtYWluZGVyKTsKIH0KKworLyoK KyAqIGNoZWNrX3BhcnRpdGlvbnNfbm90X292ZXJsYXBfcmFuZ2UKKyAqCisgKiBDaGVja3Mg dGhhdCBib3VuZHMgb2YgcGFydGl0aW9ucyAobmFtZSwgYm91bmQpIGFuZCAocHJldl9uYW1l LCBwcmV2X2JvdW5kKQorICogZG8gbm90IG92ZXJsYXAuIExvd2VyIGJvdW5kIG9mIHBhcnRp dGlvbiAicHJldl9uYW1lIiBzaG91bGQgYmUgbGVzcyBvciBlcXVhbAorICogdGhhbiBsb3dl ciBib3VuZCBvZiBwYXJ0aXRpb24gIm5hbWUiLgorICogSW4gY2FzZSBkZWZhdWx0UGFydD10 cnVlIGNhbiBiZSBmcmVlIHNwYWNlIGJldHdlZW4gYm91bmQgYW5kIHByZXZfYm91bmQuCisg Ki8KK3N0YXRpYyB2b2lkCitjaGVja19wYXJ0aXRpb25zX25vdF9vdmVybGFwX3JhbmdlKFJl bGF0aW9uIHBhcmVudCwKKwkJCQkJCQkJICAgUmFuZ2VWYXIgKm5hbWUsCisJCQkJCQkJCSAg IFBhcnRpdGlvbkJvdW5kU3BlYyAqYm91bmQsCisJCQkJCQkJCSAgIFJhbmdlVmFyICpwcmV2 X25hbWUsCisJCQkJCQkJCSAgIFBhcnRpdGlvbkJvdW5kU3BlYyAqcHJldl9ib3VuZCwKKwkJ CQkJCQkJICAgYm9vbCBkZWZhdWx0UGFydCwKKwkJCQkJCQkJICAgUGFyc2VTdGF0ZSAqcHN0 YXRlKQoreworCVBhcnRpdGlvbktleSBrZXkgPSBSZWxhdGlvbkdldFBhcnRpdGlvbktleShw YXJlbnQpOworCVBhcnRpdGlvblJhbmdlQm91bmQgKmxvd2VyOworCVBhcnRpdGlvblJhbmdl Qm91bmQgKnByZXZ1cHBlcjsKKwlpbnQJCQljbXB2YWw7CisKKwlBc3NlcnQoa2V5LT5zdHJh dGVneSA9PSBQQVJUSVRJT05fU1RSQVRFR1lfUkFOR0UpOworCisJbG93ZXIgPSBtYWtlX29u ZV9wYXJ0aXRpb25fcmJvdW5kKGtleSwgLTEsIGJvdW5kLT5sb3dlcmRhdHVtcywgdHJ1ZSk7 CisJcHJldnVwcGVyID0gbWFrZV9vbmVfcGFydGl0aW9uX3Jib3VuZChrZXksIC0xLCBwcmV2 X2JvdW5kLT51cHBlcmRhdHVtcywgZmFsc2UpOworCisJLyogbG93ZXIxPWZhbHNlIGZvciBj b3JyZWN0IGNvbXBhcmlzb24gbG93ZXIgYW5kIHVwcGVyIGJvdW5kcyAqLworCWNtcHZhbCA9 IHBhcnRpdGlvbl9yYm91bmRfY21wKGtleS0+cGFydG5hdHRzLAorCQkJCQkJCQkgIGtleS0+ cGFydHN1cGZ1bmMsCisJCQkJCQkJCSAga2V5LT5wYXJ0Y29sbGF0aW9uLAorCQkJCQkJCQkg IGxvd2VyLT5kYXR1bXMsIGxvd2VyLT5raW5kLAorCQkJCQkJCQkgIGZhbHNlLCBwcmV2dXBw ZXIpOworCWlmICgoIWRlZmF1bHRQYXJ0ICYmIGNtcHZhbCkgfHwgKGRlZmF1bHRQYXJ0ICYm IGNtcHZhbCA8IDApKQorCXsKKwkJUGFydGl0aW9uUmFuZ2VEYXR1bSAqZGF0dW0gPSBsaW5p dGlhbChib3VuZC0+bG93ZXJkYXR1bXMpOworCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNn KCJsb3dlciBib3VuZCBvZiBwYXJ0aXRpb24gXCIlc1wiIGNvbmZsaWN0cyB3aXRoIHVwcGVy IGJvdW5kIG9mIHByZXZpb3VzIHBhcnRpdGlvbiBcIiVzXCIiLAorCQkJCQkJbmFtZS0+cmVs bmFtZSwgcHJldl9uYW1lLT5yZWxuYW1lKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgZGF0dW0tPmxvY2F0aW9uKSkpOworCX0KK30KKworLyoKKyAqIGdldF9wYXJ0aXRp b25fYm91bmRfc3BlYworICoKKyAqIFJldHVybnMgZGVzY3JpcHRpb24gb2YgcGFydGl0aW9u IHdpdGggT2lkICJwYXJ0T2lkIiBhbmQgbmFtZSAibmFtZSIuCisgKi8KK3N0YXRpYyBQYXJ0 aXRpb25Cb3VuZFNwZWMgKgorZ2V0X3BhcnRpdGlvbl9ib3VuZF9zcGVjKE9pZCBwYXJ0T2lk LCBSYW5nZVZhciAqbmFtZSkKK3sKKwlIZWFwVHVwbGUJdHVwbGU7CisJRGF0dW0JCWRhdHVt OworCWJvb2wJCWlzbnVsbDsKKwlQYXJ0aXRpb25Cb3VuZFNwZWMgKmJvdW5kc3BlYyA9IE5V TEw7CisKKwkvKiBUcnkgZmV0Y2hpbmcgdGhlIHR1cGxlIGZyb20gdGhlIGNhdGNhY2hlLCBm b3Igc3BlZWQuICovCisJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTEoUkVMT0lELCBwYXJ0T2lk KTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQorCQllbG9nKEVSUk9SLCAiY2Fj aGUgbG9va3VwIGZhaWxlZCBmb3IgcmVsYXRpb24gXCIlc1wiIiwKKwkJCSBuYW1lLT5yZWxu YW1lKTsKKworCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFJFTE9JRCwgdHVwbGUsCisJCQkJ CQkJQW51bV9wZ19jbGFzc19yZWxwYXJ0Ym91bmQsCisJCQkJCQkJJmlzbnVsbCk7CisJaWYg KGlzbnVsbCkKKwkJZWxvZyhFUlJPUiwgInBhcnRpdGlvbiBib3VuZCBmb3IgcmVsYXRpb24g XCIlc1wiIGlzIG51bGwiLAorCQkJIG5hbWUtPnJlbG5hbWUpOworCisJYm91bmRzcGVjID0g c3RyaW5nVG9Ob2RlKFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pKTsKKworCWlmICghSXNB KGJvdW5kc3BlYywgUGFydGl0aW9uQm91bmRTcGVjKSkKKwkJZWxvZyhFUlJPUiwgImV4cGVj dGVkIFBhcnRpdGlvbkJvdW5kU3BlYyBmb3IgcmVsYXRpb24gXCIlc1wiIiwKKwkJCSBuYW1l LT5yZWxuYW1lKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisJcmV0dXJuIGJvdW5k c3BlYzsKK30KKworLyoKKyAqIGNhbGN1bGF0ZV9wYXJ0aXRpb25fYm91bmRfZm9yX21lcmdl CisgKgorICogQ2FsY3VsYXRlcyBib3VuZCBvZiBtZXJnZWQgcGFydGl0aW9uICJzcGVjIiBi eSB1c2luZyBib3VuZHMgb2YgcGFydGl0aW9ucworICogd2l0aCBPaWRzICJwYXJ0T2lkcyIg YW5kIG5hbWVzICJwYXJ0TmFtZXMiLgorICovCit2b2lkCitjYWxjdWxhdGVfcGFydGl0aW9u X2JvdW5kX2Zvcl9tZXJnZShSZWxhdGlvbiBwYXJlbnQsCisJCQkJCQkJCQlMaXN0ICpwYXJ0 TmFtZXMsCisJCQkJCQkJCQlMaXN0ICpwYXJ0T2lkcywKKwkJCQkJCQkJCVBhcnRpdGlvbkJv dW5kU3BlYyAqc3BlYywKKwkJCQkJCQkJCVBhcnNlU3RhdGUgKnBzdGF0ZSkKK3sKKwlQYXJ0 aXRpb25LZXkga2V5ID0gUmVsYXRpb25HZXRQYXJ0aXRpb25LZXkocGFyZW50KTsKKwlQYXJ0 aXRpb25Cb3VuZFNwZWMgKmJvdW5kOworCisJQXNzZXJ0KCFzcGVjLT5pc19kZWZhdWx0KTsK KworCXN3aXRjaCAoa2V5LT5zdHJhdGVneSkKKwl7CisJCWNhc2UgUEFSVElUSU9OX1NUUkFU RUdZX1JBTkdFOgorCQkJeworCQkJCWludAkJCWk7CisJCQkJUGFydGl0aW9uUmFuZ2VCb3Vu ZCAqKmxvd2VyX2JvdW5kczsKKwkJCQlpbnQJCQlucGFydHMgPSBsaXN0X2xlbmd0aChwYXJ0 T2lkcyk7CisJCQkJTGlzdAkgICAqYm91bmRzID0gTklMOworCisJCQkJbG93ZXJfYm91bmRz ID0gKFBhcnRpdGlvblJhbmdlQm91bmQgKiopCisJCQkJCXBhbGxvYzAobnBhcnRzICogc2l6 ZW9mKFBhcnRpdGlvblJhbmdlQm91bmQgKikpOworCisJCQkJLyoKKwkJCQkgKiBDcmVhdGUg YXJyYXkgb2YgbG93ZXIgYm91bmRzIGFuZCBsaXN0IG9mCisJCQkJICogUGFydGl0aW9uQm91 bmRTcGVjLgorCQkJCSAqLworCQkJCWZvciAoaSA9IDA7IGkgPCBucGFydHM7IGkrKykKKwkJ CQl7CisJCQkJCWJvdW5kID0gZ2V0X3BhcnRpdGlvbl9ib3VuZF9zcGVjKGxpc3RfbnRoX29p ZChwYXJ0T2lkcywgaSksCisJCQkJCQkJCQkJCQkJIChSYW5nZVZhciAqKSBsaXN0X250aChw YXJ0TmFtZXMsIGkpKTsKKworCQkJCQlsb3dlcl9ib3VuZHNbaV0gPSBtYWtlX29uZV9wYXJ0 aXRpb25fcmJvdW5kKGtleSwgaSwgYm91bmQtPmxvd2VyZGF0dW1zLCB0cnVlKTsKKwkJCQkJ Ym91bmRzID0gbGFwcGVuZChib3VuZHMsIGJvdW5kKTsKKwkJCQl9CisKKwkJCQkvKiBTb3J0 IGFycmF5IG9mIGxvd2VyIGJvdW5kcy4gKi8KKwkJCQlxc29ydF9hcmcobG93ZXJfYm91bmRz LCBucGFydHMsIHNpemVvZihQYXJ0aXRpb25SYW5nZUJvdW5kICopLAorCQkJCQkJICBxc29y dF9wYXJ0aXRpb25fcmJvdW5kX2NtcCwgKHZvaWQgKikga2V5KTsKKworCQkJCS8qIFJhbmdl cyBvZiBwYXJ0aXRpb25zIHNob3VsZCBub3Qgb3ZlcmxhcC4gKi8KKwkJCQlmb3IgKGkgPSAx OyBpIDwgbnBhcnRzOyBpKyspCisJCQkJeworCQkJCQlpbnQJCQlpbmRleCA9IGxvd2VyX2Jv dW5kc1tpXS0+aW5kZXg7CisJCQkJCWludAkJCXByZXZfaW5kZXggPSBsb3dlcl9ib3VuZHNb aSAtIDFdLT5pbmRleDsKKworCQkJCQljaGVja19wYXJ0aXRpb25zX25vdF9vdmVybGFwX3Jh bmdlKHBhcmVudCwKKwkJCQkJCQkJCQkJCQkgICAoUmFuZ2VWYXIgKikgbGlzdF9udGgocGFy dE5hbWVzLCBpbmRleCksCisJCQkJCQkJCQkJCQkJICAgKFBhcnRpdGlvbkJvdW5kU3BlYyAq KSBsaXN0X250aChib3VuZHMsIGluZGV4KSwKKwkJCQkJCQkJCQkJCQkgICAoUmFuZ2VWYXIg KikgbGlzdF9udGgocGFydE5hbWVzLCBwcmV2X2luZGV4KSwKKwkJCQkJCQkJCQkJCQkgICAo UGFydGl0aW9uQm91bmRTcGVjICopIGxpc3RfbnRoKGJvdW5kcywgcHJldl9pbmRleCksCisJ CQkJCQkJCQkJCQkJICAgZmFsc2UsIHBzdGF0ZSk7CisJCQkJfQorCisJCQkJLyoKKwkJCQkg KiBMb3dlciBib3VuZCBvZiBmaXJzdCBwYXJ0aXRpb24gaXMgYSBsb3dlciBib3VuZCBvZiBt ZXJnZWQKKwkJCQkgKiBwYXJ0aXRpb24uCisJCQkJICovCisJCQkJc3BlYy0+bG93ZXJkYXR1 bXMgPQorCQkJCQkoKFBhcnRpdGlvbkJvdW5kU3BlYyAqKSBsaXN0X250aChib3VuZHMsIGxv d2VyX2JvdW5kc1swXS0+aW5kZXgpKS0+bG93ZXJkYXR1bXM7CisKKwkJCQkvKgorCQkJCSAq IFVwcGVyIGJvdW5kIG9mIGxhc3QgcGFydGl0aW9uIGlzIGEgdXBwZXIgYm91bmQgb2YgbWVy Z2VkCisJCQkJICogcGFydGl0aW9uLgorCQkJCSAqLworCQkJCXNwZWMtPnVwcGVyZGF0dW1z ID0KKwkJCQkJKChQYXJ0aXRpb25Cb3VuZFNwZWMgKikgbGlzdF9udGgoYm91bmRzLCBsb3dl cl9ib3VuZHNbbnBhcnRzIC0gMV0tPmluZGV4KSktPnVwcGVyZGF0dW1zOworCisJCQkJcGZy ZWUobG93ZXJfYm91bmRzKTsKKwkJCQlsaXN0X2ZyZWUoYm91bmRzKTsKKwkJCQlicmVhazsK KwkJCX0KKworCQljYXNlIFBBUlRJVElPTl9TVFJBVEVHWV9MSVNUOgorCQkJeworCQkJCUxp c3RDZWxsICAgKmxpc3RwdHIsCisJCQkJCQkgICAqbGlzdHB0cjI7CisKKwkJCQkvKiBDb25z b2xpZGF0ZSBib3VuZHMgZm9yIGFsbCBwYXJ0aXRpb25zIGluIHRoZSBsaXN0LiAqLworCQkJ CWZvcmJvdGgobGlzdHB0ciwgcGFydE9pZHMsIGxpc3RwdHIyLCBwYXJ0TmFtZXMpCisJCQkJ eworCQkJCQlSYW5nZVZhciAgICpuYW1lID0gKFJhbmdlVmFyICopIGxmaXJzdChsaXN0cHRy Mik7CisJCQkJCU9pZAkJCWN1ck9pZCA9IGxmaXJzdF9vaWQobGlzdHB0cik7CisKKwkJCQkJ Ym91bmQgPSBnZXRfcGFydGl0aW9uX2JvdW5kX3NwZWMoY3VyT2lkLCBuYW1lKTsKKwkJCQkJ c3BlYy0+bGlzdGRhdHVtcyA9IGxpc3RfY29uY2F0KHNwZWMtPmxpc3RkYXR1bXMsIGJvdW5k LT5saXN0ZGF0dW1zKTsKKwkJCQl9CisJCQkJYnJlYWs7CisJCQl9CisKKwkJZGVmYXVsdDoK KwkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIHBhcnRpdGlvbiBzdHJhdGVneTogJWQiLAor CQkJCSAoaW50KSBrZXktPnN0cmF0ZWd5KTsKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKaW5kZXggNjMzZTc2NzFiMy4uNmMyOTRkZjc4NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaApAQCAtODk2LDYgKzg5NiwxNyBAQCB0eXBlZGVmIHN0cnVjdCBQYXJ0aXRpb25SYW5n ZURhdHVtCiAJaW50CQkJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYg dW5rbm93biAqLwogfSBQYXJ0aXRpb25SYW5nZURhdHVtOwogCisvKgorICogUGFydGl0aW9u RGVzYyAtIGluZm8gYWJvdXQgc2luZ2xlIHBhcnRpdGlvbiBmb3IgQUxURVIgVEFCTEUgU1BM SVQgUEFSVElUSU9OIGNvbW1hbmQKKyAqLwordHlwZWRlZiBzdHJ1Y3QgU2luZ2xlUGFydGl0 aW9uU3BlYworeworCU5vZGVUYWcJCXR5cGU7CisKKwlSYW5nZVZhciAgICpuYW1lOwkJCS8q IG5hbWUgb2YgcGFydGl0aW9uICovCisJUGFydGl0aW9uQm91bmRTcGVjICpib3VuZDsJLyog Rk9SIFZBTFVFUywgaWYgYXR0YWNoaW5nICovCit9IFNpbmdsZVBhcnRpdGlvblNwZWM7CisK IC8qCiAgKiBQYXJ0aXRpb25DbWQgLSBpbmZvIGZvciBBTFRFUiBUQUJMRS9JTkRFWCBBVFRB Q0gvREVUQUNIIFBBUlRJVElPTiBjb21tYW5kcwogICovCkBAIC05MDQsNiArOTE1LDcgQEAg dHlwZWRlZiBzdHJ1Y3QgUGFydGl0aW9uQ21kCiAJTm9kZVRhZwkJdHlwZTsKIAlSYW5nZVZh ciAgICpuYW1lOwkJCS8qIG5hbWUgb2YgcGFydGl0aW9uIHRvIGF0dGFjaC9kZXRhY2ggKi8K IAlQYXJ0aXRpb25Cb3VuZFNwZWMgKmJvdW5kOwkvKiBGT1IgVkFMVUVTLCBpZiBhdHRhY2hp bmcgKi8KKwlMaXN0CSAgICpwYXJ0bGlzdDsJCS8qIGxpc3Qgb2YgcGFydGl0aW9ucywgZm9y IFNQTElUIFBBUlRJVElPTiBjb21tYW5kICovCiAJYm9vbAkJY29uY3VycmVudDsKIH0gUGFy dGl0aW9uQ21kOwogCkBAIC0yMDE2LDYgKzIwMjgsNyBAQCB0eXBlZGVmIGVudW0gQWx0ZXJU YWJsZVR5cGUKIAlBVF9BdHRhY2hQYXJ0aXRpb24sCQkJLyogQVRUQUNIIFBBUlRJVElPTiAq LwogCUFUX0RldGFjaFBhcnRpdGlvbiwJCQkvKiBERVRBQ0ggUEFSVElUSU9OICovCiAJQVRf RGV0YWNoUGFydGl0aW9uRmluYWxpemUsIC8qIERFVEFDSCBQQVJUSVRJT04gRklOQUxJWkUg Ki8KKwlBVF9NZXJnZVBhcnRpdGlvbnMsCQkJLyogTUVSR0UgUEFSVElUSU9OUyAqLwogCUFU X0FkZElkZW50aXR5LAkJCQkvKiBBREQgSURFTlRJVFkgKi8KIAlBVF9TZXRJZGVudGl0eSwJ CQkJLyogU0VUIGlkZW50aXR5IGNvbHVtbiBvcHRpb25zICovCiAJQVRfRHJvcElkZW50aXR5 LAkJCS8qIERST1AgSURFTlRJVFkgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNl ci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCBjY2M5Mjc4 NTFjLi4wOWIwMjhhY2JhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0 LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0zMTMsNiArMzEzLDcg QEAgUEdfS0VZV09SRCgicGFyYW1ldGVyIiwgUEFSQU1FVEVSLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXJzZXIiLCBQQVJTRVIsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhcnRpYWwiLCBQQVJUSUFM LCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXJ0aXRp b24iLCBQQVJUSVRJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tF WVdPUkQoInBhcnRpdGlvbnMiLCBQQVJUSVRJT05TLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXNzaW5nIiwgUEFTU0lORywgVU5SRVNFUlZFRF9L RVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGFzc3dvcmQiLCBQQVNTV09SRCwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGxhY2luZyIs IFBMQUNJTkcsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5oIGIvc3JjL2luY2x1ZGUvcGFy dGl0aW9uaW5nL3BhcnRib3VuZHMuaAppbmRleCAxZjViNzA2ZDgzLi40MzU2NjhmYjdjIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5oCisrKyBi L3NyYy9pbmNsdWRlL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmgKQEAgLTE0Myw0ICsxNDMs MTAgQEAgZXh0ZXJuIGludAlwYXJ0aXRpb25fcmFuZ2VfZGF0dW1fYnNlYXJjaChGbWdySW5m byAqcGFydHN1cGZ1bmMsCiBleHRlcm4gaW50CXBhcnRpdGlvbl9oYXNoX2JzZWFyY2goUGFy dGl0aW9uQm91bmRJbmZvIGJvdW5kaW5mbywKIAkJCQkJCQkJICAgaW50IG1vZHVsdXMsIGlu dCByZW1haW5kZXIpOwogCitleHRlcm4gdm9pZCBjYWxjdWxhdGVfcGFydGl0aW9uX2JvdW5k X2Zvcl9tZXJnZShSZWxhdGlvbiBwYXJlbnQsCisJCQkJCQkJCQkJCQlMaXN0ICpwYXJ0TmFt ZXMsCisJCQkJCQkJCQkJCQlMaXN0ICpwYXJ0T2lkcywKKwkJCQkJCQkJCQkJCVBhcnRpdGlv bkJvdW5kU3BlYyAqc3BlYywKKwkJCQkJCQkJCQkJCVBhcnNlU3RhdGUgKnBzdGF0ZSk7CisK ICNlbmRpZgkJCQkJCQkvKiBQQVJUQk9VTkRTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L2lzb2xhdGlvbi9leHBlY3RlZC9wYXJ0aXRpb24tbWVyZ2Uub3V0IGIvc3JjL3Rlc3QvaXNv bGF0aW9uL2V4cGVjdGVkL3BhcnRpdGlvbi1tZXJnZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMC4uOTg0NDZhYWFiNQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9wYXJ0aXRpb24tbWVyZ2Uub3V0CkBAIC0wLDAg KzEsMTk5IEBACitQYXJzZWQgdGVzdCBzcGVjIHdpdGggMiBzZXNzaW9ucworCitzdGFydGlu ZyBwZXJtdXRhdGlvbjogczJiIHMyaSBzMmMgczFiIHMxbWVyZyBzMmIgczJ1IHMxYyBzMmMg czJzCitzdGVwIHMyYjogQkVHSU47CitzdGVwIHMyaTogSU5TRVJUIElOVE8gdHBhcnQgVkFM VUVTICgxLCAndGV4dDAxJyk7CitzdGVwIHMyYzogQ09NTUlUOworc3RlcCBzMWI6IEJFR0lO Oworc3RlcCBzMW1lcmc6IEFMVEVSIFRBQkxFIHRwYXJ0IE1FUkdFIFBBUlRJVElPTlMgKHRw YXJ0XzAwXzEwLCB0cGFydF8xMF8yMCkgSU5UTyB0cGFydF8wMF8yMDsKK3N0ZXAgczJiOiBC RUdJTjsKK3N0ZXAgczJ1OiBVUERBVEUgdHBhcnQgU0VUIHQgPSAndGV4dDAxbW9kaWYnIHdo ZXJlIGkgPSAxOyA8d2FpdGluZyAuLi4+CitzdGVwIHMxYzogQ09NTUlUOworc3RlcCBzMnU6 IDwuLi4gY29tcGxldGVkPgorc3RlcCBzMmM6IENPTU1JVDsKK3N0ZXAgczJzOiBTRUxFQ1Qg KiBGUk9NIHRwYXJ0OworIGl8dCAgICAgICAgICAKKy0tKy0tLS0tLS0tLS0tCisgNXx0ZXh0 MDUgICAgIAorMTV8dGV4dDE1ICAgICAKKyAxfHRleHQwMW1vZGlmCisyNXx0ZXh0MjUgICAg IAorMzV8dGV4dDM1ICAgICAKKyg1IHJvd3MpCisKKworc3RhcnRpbmcgcGVybXV0YXRpb246 IHMyYiBzMmkgczJjIHMxYnJyIHMxbWVyZyBzMmIgczJ1IHMxYyBzMmMgczJzCitzdGVwIHMy YjogQkVHSU47CitzdGVwIHMyaTogSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgxLCAndGV4 dDAxJyk7CitzdGVwIHMyYzogQ09NTUlUOworc3RlcCBzMWJycjogQkVHSU4gSVNPTEFUSU9O IExFVkVMIFJFUEVBVEFCTEUgUkVBRDsKK3N0ZXAgczFtZXJnOiBBTFRFUiBUQUJMRSB0cGFy dCBNRVJHRSBQQVJUSVRJT05TICh0cGFydF8wMF8xMCwgdHBhcnRfMTBfMjApIElOVE8gdHBh cnRfMDBfMjA7CitzdGVwIHMyYjogQkVHSU47CitzdGVwIHMydTogVVBEQVRFIHRwYXJ0IFNF VCB0ID0gJ3RleHQwMW1vZGlmJyB3aGVyZSBpID0gMTsgPHdhaXRpbmcgLi4uPgorc3RlcCBz MWM6IENPTU1JVDsKK3N0ZXAgczJ1OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczJjOiBDT01N SVQ7CitzdGVwIHMyczogU0VMRUNUICogRlJPTSB0cGFydDsKKyBpfHQgICAgICAgICAgCist LSstLS0tLS0tLS0tLQorIDV8dGV4dDA1ICAgICAKKzE1fHRleHQxNSAgICAgCisgMXx0ZXh0 MDFtb2RpZgorMjV8dGV4dDI1ICAgICAKKzM1fHRleHQzNSAgICAgCisoNSByb3dzKQorCisK K3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzMmIgczJpIHMyYyBzMWJzIHMxbWVyZyBzMmIgczJ1 IHMxYyBzMmMgczJzCitzdGVwIHMyYjogQkVHSU47CitzdGVwIHMyaTogSU5TRVJUIElOVE8g dHBhcnQgVkFMVUVTICgxLCAndGV4dDAxJyk7CitzdGVwIHMyYzogQ09NTUlUOworc3RlcCBz MWJzOiBCRUdJTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFOworc3RlcCBzMW1lcmc6 IEFMVEVSIFRBQkxFIHRwYXJ0IE1FUkdFIFBBUlRJVElPTlMgKHRwYXJ0XzAwXzEwLCB0cGFy dF8xMF8yMCkgSU5UTyB0cGFydF8wMF8yMDsKK3N0ZXAgczJiOiBCRUdJTjsKK3N0ZXAgczJ1 OiBVUERBVEUgdHBhcnQgU0VUIHQgPSAndGV4dDAxbW9kaWYnIHdoZXJlIGkgPSAxOyA8d2Fp dGluZyAuLi4+CitzdGVwIHMxYzogQ09NTUlUOworc3RlcCBzMnU6IDwuLi4gY29tcGxldGVk Pgorc3RlcCBzMmM6IENPTU1JVDsKK3N0ZXAgczJzOiBTRUxFQ1QgKiBGUk9NIHRwYXJ0Owor IGl8dCAgICAgICAgICAKKy0tKy0tLS0tLS0tLS0tCisgNXx0ZXh0MDUgICAgIAorMTV8dGV4 dDE1ICAgICAKKyAxfHRleHQwMW1vZGlmCisyNXx0ZXh0MjUgICAgIAorMzV8dGV4dDM1ICAg ICAKKyg1IHJvd3MpCisKKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMyYnJyIHMyaSBzMmMg czFiIHMxbWVyZyBzMmIgczJ1IHMxYyBzMmMgczJzCitzdGVwIHMyYnJyOiBCRUdJTiBJU09M QVRJT04gTEVWRUwgUkVQRUFUQUJMRSBSRUFEOworc3RlcCBzMmk6IElOU0VSVCBJTlRPIHRw YXJ0IFZBTFVFUyAoMSwgJ3RleHQwMScpOworc3RlcCBzMmM6IENPTU1JVDsKK3N0ZXAgczFi OiBCRUdJTjsKK3N0ZXAgczFtZXJnOiBBTFRFUiBUQUJMRSB0cGFydCBNRVJHRSBQQVJUSVRJ T05TICh0cGFydF8wMF8xMCwgdHBhcnRfMTBfMjApIElOVE8gdHBhcnRfMDBfMjA7CitzdGVw IHMyYjogQkVHSU47CitzdGVwIHMydTogVVBEQVRFIHRwYXJ0IFNFVCB0ID0gJ3RleHQwMW1v ZGlmJyB3aGVyZSBpID0gMTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMWM6IENPTU1JVDsKK3N0 ZXAgczJ1OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczJjOiBDT01NSVQ7CitzdGVwIHMyczog U0VMRUNUICogRlJPTSB0cGFydDsKKyBpfHQgICAgICAgICAgCistLSstLS0tLS0tLS0tLQor IDV8dGV4dDA1ICAgICAKKzE1fHRleHQxNSAgICAgCisgMXx0ZXh0MDFtb2RpZgorMjV8dGV4 dDI1ICAgICAKKzM1fHRleHQzNSAgICAgCisoNSByb3dzKQorCisKK3N0YXJ0aW5nIHBlcm11 dGF0aW9uOiBzMmJyciBzMmkgczJjIHMxYnJyIHMxbWVyZyBzMmIgczJ1IHMxYyBzMmMgczJz CitzdGVwIHMyYnJyOiBCRUdJTiBJU09MQVRJT04gTEVWRUwgUkVQRUFUQUJMRSBSRUFEOwor c3RlcCBzMmk6IElOU0VSVCBJTlRPIHRwYXJ0IFZBTFVFUyAoMSwgJ3RleHQwMScpOworc3Rl cCBzMmM6IENPTU1JVDsKK3N0ZXAgczFicnI6IEJFR0lOIElTT0xBVElPTiBMRVZFTCBSRVBF QVRBQkxFIFJFQUQ7CitzdGVwIHMxbWVyZzogQUxURVIgVEFCTEUgdHBhcnQgTUVSR0UgUEFS VElUSU9OUyAodHBhcnRfMDBfMTAsIHRwYXJ0XzEwXzIwKSBJTlRPIHRwYXJ0XzAwXzIwOwor c3RlcCBzMmI6IEJFR0lOOworc3RlcCBzMnU6IFVQREFURSB0cGFydCBTRVQgdCA9ICd0ZXh0 MDFtb2RpZicgd2hlcmUgaSA9IDE7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFjOiBDT01NSVQ7 CitzdGVwIHMydTogPC4uLiBjb21wbGV0ZWQ+CitzdGVwIHMyYzogQ09NTUlUOworc3RlcCBz MnM6IFNFTEVDVCAqIEZST00gdHBhcnQ7CisgaXx0ICAgICAgICAgIAorLS0rLS0tLS0tLS0t LS0KKyA1fHRleHQwNSAgICAgCisxNXx0ZXh0MTUgICAgIAorIDF8dGV4dDAxbW9kaWYKKzI1 fHRleHQyNSAgICAgCiszNXx0ZXh0MzUgICAgIAorKDUgcm93cykKKworCitzdGFydGluZyBw ZXJtdXRhdGlvbjogczJicnIgczJpIHMyYyBzMWJzIHMxbWVyZyBzMmIgczJ1IHMxYyBzMmMg czJzCitzdGVwIHMyYnJyOiBCRUdJTiBJU09MQVRJT04gTEVWRUwgUkVQRUFUQUJMRSBSRUFE Oworc3RlcCBzMmk6IElOU0VSVCBJTlRPIHRwYXJ0IFZBTFVFUyAoMSwgJ3RleHQwMScpOwor c3RlcCBzMmM6IENPTU1JVDsKK3N0ZXAgczFiczogQkVHSU4gSVNPTEFUSU9OIExFVkVMIFNF UklBTElaQUJMRTsKK3N0ZXAgczFtZXJnOiBBTFRFUiBUQUJMRSB0cGFydCBNRVJHRSBQQVJU SVRJT05TICh0cGFydF8wMF8xMCwgdHBhcnRfMTBfMjApIElOVE8gdHBhcnRfMDBfMjA7Citz dGVwIHMyYjogQkVHSU47CitzdGVwIHMydTogVVBEQVRFIHRwYXJ0IFNFVCB0ID0gJ3RleHQw MW1vZGlmJyB3aGVyZSBpID0gMTsgPHdhaXRpbmcgLi4uPgorc3RlcCBzMWM6IENPTU1JVDsK K3N0ZXAgczJ1OiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczJjOiBDT01NSVQ7CitzdGVwIHMy czogU0VMRUNUICogRlJPTSB0cGFydDsKKyBpfHQgICAgICAgICAgCistLSstLS0tLS0tLS0t LQorIDV8dGV4dDA1ICAgICAKKzE1fHRleHQxNSAgICAgCisgMXx0ZXh0MDFtb2RpZgorMjV8 dGV4dDI1ICAgICAKKzM1fHRleHQzNSAgICAgCisoNSByb3dzKQorCisKK3N0YXJ0aW5nIHBl cm11dGF0aW9uOiBzMmJzIHMyaSBzMmMgczFiIHMxbWVyZyBzMmIgczJ1IHMxYyBzMmMgczJz CitzdGVwIHMyYnM6IEJFR0lOIElTT0xBVElPTiBMRVZFTCBTRVJJQUxJWkFCTEU7CitzdGVw IHMyaTogSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgxLCAndGV4dDAxJyk7CitzdGVwIHMy YzogQ09NTUlUOworc3RlcCBzMWI6IEJFR0lOOworc3RlcCBzMW1lcmc6IEFMVEVSIFRBQkxF IHRwYXJ0IE1FUkdFIFBBUlRJVElPTlMgKHRwYXJ0XzAwXzEwLCB0cGFydF8xMF8yMCkgSU5U TyB0cGFydF8wMF8yMDsKK3N0ZXAgczJiOiBCRUdJTjsKK3N0ZXAgczJ1OiBVUERBVEUgdHBh cnQgU0VUIHQgPSAndGV4dDAxbW9kaWYnIHdoZXJlIGkgPSAxOyA8d2FpdGluZyAuLi4+Citz dGVwIHMxYzogQ09NTUlUOworc3RlcCBzMnU6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzMmM6 IENPTU1JVDsKK3N0ZXAgczJzOiBTRUxFQ1QgKiBGUk9NIHRwYXJ0OworIGl8dCAgICAgICAg ICAKKy0tKy0tLS0tLS0tLS0tCisgNXx0ZXh0MDUgICAgIAorMTV8dGV4dDE1ICAgICAKKyAx fHRleHQwMW1vZGlmCisyNXx0ZXh0MjUgICAgIAorMzV8dGV4dDM1ICAgICAKKyg1IHJvd3Mp CisKKworc3RhcnRpbmcgcGVybXV0YXRpb246IHMyYnMgczJpIHMyYyBzMWJyciBzMW1lcmcg czJiIHMydSBzMWMgczJjIHMycworc3RlcCBzMmJzOiBCRUdJTiBJU09MQVRJT04gTEVWRUwg U0VSSUFMSVpBQkxFOworc3RlcCBzMmk6IElOU0VSVCBJTlRPIHRwYXJ0IFZBTFVFUyAoMSwg J3RleHQwMScpOworc3RlcCBzMmM6IENPTU1JVDsKK3N0ZXAgczFicnI6IEJFR0lOIElTT0xB VElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7CitzdGVwIHMxbWVyZzogQUxURVIgVEFCTEUg dHBhcnQgTUVSR0UgUEFSVElUSU9OUyAodHBhcnRfMDBfMTAsIHRwYXJ0XzEwXzIwKSBJTlRP IHRwYXJ0XzAwXzIwOworc3RlcCBzMmI6IEJFR0lOOworc3RlcCBzMnU6IFVQREFURSB0cGFy dCBTRVQgdCA9ICd0ZXh0MDFtb2RpZicgd2hlcmUgaSA9IDE7IDx3YWl0aW5nIC4uLj4KK3N0 ZXAgczFjOiBDT01NSVQ7CitzdGVwIHMydTogPC4uLiBjb21wbGV0ZWQ+CitzdGVwIHMyYzog Q09NTUlUOworc3RlcCBzMnM6IFNFTEVDVCAqIEZST00gdHBhcnQ7CisgaXx0ICAgICAgICAg IAorLS0rLS0tLS0tLS0tLS0KKyA1fHRleHQwNSAgICAgCisxNXx0ZXh0MTUgICAgIAorIDF8 dGV4dDAxbW9kaWYKKzI1fHRleHQyNSAgICAgCiszNXx0ZXh0MzUgICAgIAorKDUgcm93cykK KworCitzdGFydGluZyBwZXJtdXRhdGlvbjogczJicyBzMmkgczJjIHMxYnMgczFtZXJnIHMy YiBzMnUgczFjIHMyYyBzMnMKK3N0ZXAgczJiczogQkVHSU4gSVNPTEFUSU9OIExFVkVMIFNF UklBTElaQUJMRTsKK3N0ZXAgczJpOiBJTlNFUlQgSU5UTyB0cGFydCBWQUxVRVMgKDEsICd0 ZXh0MDEnKTsKK3N0ZXAgczJjOiBDT01NSVQ7CitzdGVwIHMxYnM6IEJFR0lOIElTT0xBVElP TiBMRVZFTCBTRVJJQUxJWkFCTEU7CitzdGVwIHMxbWVyZzogQUxURVIgVEFCTEUgdHBhcnQg TUVSR0UgUEFSVElUSU9OUyAodHBhcnRfMDBfMTAsIHRwYXJ0XzEwXzIwKSBJTlRPIHRwYXJ0 XzAwXzIwOworc3RlcCBzMmI6IEJFR0lOOworc3RlcCBzMnU6IFVQREFURSB0cGFydCBTRVQg dCA9ICd0ZXh0MDFtb2RpZicgd2hlcmUgaSA9IDE7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFj OiBDT01NSVQ7CitzdGVwIHMydTogPC4uLiBjb21wbGV0ZWQ+CitzdGVwIHMyYzogQ09NTUlU Oworc3RlcCBzMnM6IFNFTEVDVCAqIEZST00gdHBhcnQ7CisgaXx0ICAgICAgICAgIAorLS0r LS0tLS0tLS0tLS0KKyA1fHRleHQwNSAgICAgCisxNXx0ZXh0MTUgICAgIAorIDF8dGV4dDAx bW9kaWYKKzI1fHRleHQyNSAgICAgCiszNXx0ZXh0MzUgICAgIAorKDUgcm93cykKKwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSBiL3NyYy90 ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXggNTQxM2E1OWE4MC4uZDkx MDMyYzQyYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hl ZHVsZQorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCkBAIC0x MDIsNiArMTAyLDcgQEAgdGVzdDogcGFydGl0aW9uLWtleS11cGRhdGUtMQogdGVzdDogcGFy dGl0aW9uLWtleS11cGRhdGUtMgogdGVzdDogcGFydGl0aW9uLWtleS11cGRhdGUtMwogdGVz dDogcGFydGl0aW9uLWtleS11cGRhdGUtNAordGVzdDogcGFydGl0aW9uLW1lcmdlCiB0ZXN0 OiBwbHBnc3FsLXRvYXN0CiB0ZXN0OiBjbHVzdGVyLWNvbmZsaWN0CiB0ZXN0OiBjbHVzdGVy LWNvbmZsaWN0LXBhcnRpdGlvbgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3Nw ZWNzL3BhcnRpdGlvbi1tZXJnZS5zcGVjIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Bh cnRpdGlvbi1tZXJnZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLmVjNDg3MzJjNTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24v c3BlY3MvcGFydGl0aW9uLW1lcmdlLnNwZWMKQEAgLTAsMCArMSw1NCBAQAorIyBWZXJpZnkg dGhhdCBNRVJHRSBvcGVyYXRpb24gbG9ja3MgRE1MIG9wZXJhdGlvbnMgd2l0aCBwYXJ0aXRp b25lZCB0YWJsZQorCitzZXR1cAoreworICBEUk9QIFRBQkxFIElGIEVYSVNUUyB0cGFydDsK KyAgQ1JFQVRFIFRBQkxFIHRwYXJ0KGkgaW50LCB0IHRleHQpIHBhcnRpdGlvbiBieSByYW5n ZShpKTsKKyAgQ1JFQVRFIFRBQkxFIHRwYXJ0XzAwXzEwIFBBUlRJVElPTiBPRiB0cGFydCBG T1IgVkFMVUVTIEZST00gKDApIFRPICgxMCk7CisgIENSRUFURSBUQUJMRSB0cGFydF8xMF8y MCBQQVJUSVRJT04gT0YgdHBhcnQgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDIwKTsKKyAg Q1JFQVRFIFRBQkxFIHRwYXJ0XzIwXzMwIFBBUlRJVElPTiBPRiB0cGFydCBGT1IgVkFMVUVT IEZST00gKDIwKSBUTyAoMzApOworICBDUkVBVEUgVEFCTEUgdHBhcnRfZGVmYXVsdCBQQVJU SVRJT04gT0YgdHBhcnQgREVGQVVMVDsKKyAgSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICg1 LCAndGV4dDA1Jyk7CisgIElOU0VSVCBJTlRPIHRwYXJ0IFZBTFVFUyAoMTUsICd0ZXh0MTUn KTsKKyAgSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgyNSwgJ3RleHQyNScpOworICBJTlNF UlQgSU5UTyB0cGFydCBWQUxVRVMgKDM1LCAndGV4dDM1Jyk7Cit9CisKK3RlYXJkb3duCit7 CisgIERST1AgVEFCTEUgdHBhcnQ7Cit9CisKK3Nlc3Npb24gczEKK3N0ZXAgczFiCXsgQkVH SU47IH0KK3N0ZXAgczFicnIJeyBCRUdJTiBJU09MQVRJT04gTEVWRUwgUkVQRUFUQUJMRSBS RUFEOyB9CitzdGVwIHMxYnMJeyBCRUdJTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxF OyB9CitzdGVwIHMxbWVyZwl7IEFMVEVSIFRBQkxFIHRwYXJ0IE1FUkdFIFBBUlRJVElPTlMg KHRwYXJ0XzAwXzEwLCB0cGFydF8xMF8yMCkgSU5UTyB0cGFydF8wMF8yMDsgfQorc3RlcCBz MWMJeyBDT01NSVQ7IH0KKworCitzZXNzaW9uIHMyCitzdGVwIHMyYgl7IEJFR0lOOyB9Citz dGVwIHMyYnJyCXsgQkVHSU4gSVNPTEFUSU9OIExFVkVMIFJFUEVBVEFCTEUgUkVBRDsgfQor c3RlcCBzMmJzCXsgQkVHSU4gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRTsgfQorc3Rl cCBzMmkJeyBJTlNFUlQgSU5UTyB0cGFydCBWQUxVRVMgKDEsICd0ZXh0MDEnKTsgfQorc3Rl cCBzMnUJeyBVUERBVEUgdHBhcnQgU0VUIHQgPSAndGV4dDAxbW9kaWYnIHdoZXJlIGkgPSAx OyB9CitzdGVwIHMyYwl7IENPTU1JVDsgfQorc3RlcCBzMnMJeyBTRUxFQ1QgKiBGUk9NIHRw YXJ0OyB9CisKKworIyBzMiBpbnNlcnRzIHJvdyBpbnRvIHRhYmxlLiBzMSBzdGFydHMgTUVS R0UgUEFSVElUSU9OUyB0aGVuCisjIHMyIHRyeWluZyB0byB1cGRhdGUgaW5zZXJ0ZWQgcm93 IGFuZCB3YWl0cyB1bnRpbCBzMSBmaW5pc2hlZAorIyBNRVJHRSBvcGVyYXRpb24uCisKK3Bl cm11dGF0aW9uIHMyYiBzMmkgczJjIHMxYiBzMW1lcmcgczJiIHMydSBzMWMgczJjIHMycwor cGVybXV0YXRpb24gczJiIHMyaSBzMmMgczFicnIgczFtZXJnIHMyYiBzMnUgczFjIHMyYyBz MnMKK3Blcm11dGF0aW9uIHMyYiBzMmkgczJjIHMxYnMgczFtZXJnIHMyYiBzMnUgczFjIHMy YyBzMnMKKworcGVybXV0YXRpb24gczJicnIgczJpIHMyYyBzMWIgczFtZXJnIHMyYiBzMnUg czFjIHMyYyBzMnMKK3Blcm11dGF0aW9uIHMyYnJyIHMyaSBzMmMgczFicnIgczFtZXJnIHMy YiBzMnUgczFjIHMyYyBzMnMKK3Blcm11dGF0aW9uIHMyYnJyIHMyaSBzMmMgczFicyBzMW1l cmcgczJiIHMydSBzMWMgczJjIHMycworCitwZXJtdXRhdGlvbiBzMmJzIHMyaSBzMmMgczFi IHMxbWVyZyBzMmIgczJ1IHMxYyBzMmMgczJzCitwZXJtdXRhdGlvbiBzMmJzIHMyaSBzMmMg czFicnIgczFtZXJnIHMyYiBzMnUgczFjIHMyYyBzMnMKK3Blcm11dGF0aW9uIHMyYnMgczJp IHMyYyBzMWJzIHMxbWVyZyBzMmIgczJ1IHMxYyBzMmMgczJzCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMC4uMDEzYWI2NTk2MQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX21lcmdlLm91dApAQCAtMCwwICsx LDczNiBAQAorLS0KKy0tIFBBUlRJVElPTlNfTUVSR0UKKy0tIFRlc3RzIGZvciAiQUxURVIg VEFCTEUgLi4uIE1FUkdFIFBBUlRJVElPTlMgLi4uIiBjb21tYW5kCistLQorQ1JFQVRFIFND SEVNQSBwYXJ0aXRpb25zX21lcmdlX3NjaGVtYTsKK1NFVCBzZWFyY2hfcGF0aCA9IHBhcnRp dGlvbnNfbWVyZ2Vfc2NoZW1hLCBwdWJsaWM7CistLQorLS0gQlkgUkFOR0UgcGFydGl0aW9u aW5nCistLQorLS0KKy0tIFRlc3QgZm9yIGVycm9yIGNvZGVzCistLQorQ1JFQVRFIFRBQkxF IHNhbGVzX3JhbmdlIChzYWxlc21hbl9pZCBJTlQsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigz MCksIHNhbGVzX2Ftb3VudCBJTlQsIHNhbGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJB TkdFIChzYWxlc19kYXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19kZWMyMDIxIFBBUlRJVElP TiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIxLTEyLTAxJykgVE8gKCcy MDIxLTEyLTMxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfamFuMjAyMiBQQVJUSVRJT04gT0Yg c2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMS0wMScpIFRPICgnMjAyMi0w Mi0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2ZlYjIwMjIgUEFSVElUSU9OIE9GIHNhbGVz X3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEn KTsKK0NSRUFURSBUQUJMRSBzYWxlc19tYXIyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5n ZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIyLTA0LTAxJyk7CitD UkVBVEUgVEFCTEUgc2FsZXNfYXByMjAyMiAoc2FsZXNtYW5faWQgSU5ULCBzYWxlc21hbl9u YW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19kYXRlIERBVEUpIFBB UlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfYXBy XzEgUEFSVElUSU9OIE9GIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0w NC0wMScpIFRPICgnMjAyMi0wNC0xNScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2Fwcl8yIFBB UlRJVElPTiBPRiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMTUn KSBUTyAoJzIwMjItMDUtMDEnKTsKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIEFUVEFDSCBQ QVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykg VE8gKCcyMDIyLTA1LTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElP TiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOworLS0gRVJST1I6ICBwYXJ0aXRpb24gd2l0aCBu YW1lICJzYWxlc19mZWIyMDIyIiBhbHJlYWR5IHVzZWQKK0FMVEVSIFRBQkxFIHNhbGVzX3Jh bmdlIE1FUkdFIFBBUlRJVElPTlMgKHNhbGVzX2ZlYjIwMjIsIHNhbGVzX21hcjIwMjIsIHNh bGVzX2ZlYjIwMjIpIElOVE8gc2FsZXNfZmViX21hcl9hcHIyMDIyOworRVJST1I6ICBwYXJ0 aXRpb24gd2l0aCBuYW1lICJzYWxlc19mZWIyMDIyIiBhbHJlYWR5IHVzZWQKK0xJTkUgMTog Li4uZSBNRVJHRSBQQVJUSVRJT05TIChzYWxlc19mZWIyMDIyLCBzYWxlc19tYXIyMDIyLCBz YWxlc19mZWIyLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgorLS0gRVJST1I6ICBjYW5ub3QgbWVyZ2Ugbm9uLXRh YmxlIHBhcnRpdGlvbiAic2FsZXNfYXByMjAyMiIKK0FMVEVSIFRBQkxFIHNhbGVzX3Jhbmdl IE1FUkdFIFBBUlRJVElPTlMgKHNhbGVzX2ZlYjIwMjIsIHNhbGVzX21hcjIwMjIsIHNhbGVz X2FwcjIwMjIpIElOVE8gc2FsZXNfZmViX21hcl9hcHIyMDIyOworRVJST1I6ICBjYW5ub3Qg bWVyZ2Ugbm9uLXRhYmxlIHBhcnRpdGlvbiAic2FsZXNfYXByMjAyMiIKKy0tIEVSUk9SOiAg aW52YWxpZCBwYXJ0aXRpb25zIG9yZGVyLCBwYXJ0aXRpb24gInNhbGVzX21hcjIwMjIiIGNh biBub3QgYmUgbWVyZ2VkCistLSAoc3BhY2UgYmV0d2VlbiBzZWN0aW9ucyBzYWxlc19qYW4y MDIyIGFuZCBzYWxlc19tYXIyMDIyKQorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgTUVSR0Ug UEFSVElUSU9OUyAoc2FsZXNfamFuMjAyMiwgc2FsZXNfbWFyMjAyMikgSU5UTyBzYWxlc19q YW5fbWFyMjAyMjsKK0VSUk9SOiAgbG93ZXIgYm91bmQgb2YgcGFydGl0aW9uICJzYWxlc19t YXIyMDIyIiBjb25mbGljdHMgd2l0aCB1cHBlciBib3VuZCBvZiBwcmV2aW91cyBwYXJ0aXRp b24gInNhbGVzX2phbjIwMjIiCistLSBFUlJPUjogIGludmFsaWQgcGFydGl0aW9ucyBvcmRl ciwgcGFydGl0aW9uICJzYWxlc19qYW4yMDIyIiBjYW4gbm90IGJlIG1lcmdlZAorLS0gKHNw YWNlIGJldHdlZW4gc2VjdGlvbnMgc2FsZXNfZGVjMjAyMSBhbmQgc2FsZXNfamFuMjAyMikK K0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIE1FUkdFIFBBUlRJVElPTlMgKHNhbGVzX2RlYzIw MjEsIHNhbGVzX2phbjIwMjIsIHNhbGVzX2ZlYjIwMjIpIElOVE8gc2FsZXNfZGVjX2phbl9m ZWIyMDIyOworRVJST1I6ICBsb3dlciBib3VuZCBvZiBwYXJ0aXRpb24gInNhbGVzX2phbjIw MjIiIGNvbmZsaWN0cyB3aXRoIHVwcGVyIGJvdW5kIG9mIHByZXZpb3VzIHBhcnRpdGlvbiAi c2FsZXNfZGVjMjAyMSIKKy0tIE5PIEVSUk9SOiB0ZXN0IGZvciBjdXN0b20gcGFydGl0aW9u cyBvcmRlcgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgTUVSR0UgUEFSVElUSU9OUyAoc2Fs ZXNfZmViMjAyMiwgc2FsZXNfbWFyMjAyMiwgc2FsZXNfamFuMjAyMikgSU5UTyBzYWxlc19q YW5fZmViX21hcjIwMjI7CitTRUxFQ1QgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3MsIGMu cmVsa2luZCwgaW5oZGV0YWNocGVuZGluZywgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcihjLnJl bHBhcnRib3VuZCwgYy5vaWQpCisgIEZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjLCBwZ19j YXRhbG9nLnBnX2luaGVyaXRzIGkKKyAgV0hFUkUgYy5vaWQgPSBpLmluaHJlbGlkIEFORCBp LmluaHBhcmVudCA9ICdzYWxlc19yYW5nZSc6OnJlZ2NsYXNzCisgIE9SREVSIEJZIHBnX2Nh dGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKSA9ICdERUZBVUxUJywg Yy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3M6OnBnX2NhdGFsb2cudGV4dDsKKyAgICAgICAg ICBvaWQgICAgICAgICAgfCByZWxraW5kIHwgaW5oZGV0YWNocGVuZGluZyB8ICAgICAgICAg ICAgICAgICAgIHBnX2dldF9leHByICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzYWxlc19hcHIyMDIy ICAgICAgICAgfCBwICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IEZPUiBWQUxVRVMgRlJP TSAoJzA0LTAxLTIwMjInKSBUTyAoJzA1LTAxLTIwMjInKQorIHNhbGVzX2RlYzIwMjEgICAg ICAgICB8IHIgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgRk9SIFZBTFVFUyBGUk9NICgn MTItMDEtMjAyMScpIFRPICgnMTItMzEtMjAyMScpCisgc2FsZXNfamFuX2ZlYl9tYXIyMDIy IHwgciAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBGT1IgVkFMVUVTIEZST00gKCcwMS0w MS0yMDIyJykgVE8gKCcwNC0wMS0yMDIyJykKKyBzYWxlc19vdGhlcnMgICAgICAgICAgfCBy ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IERFRkFVTFQKKyg0IHJvd3MpCisKK0RST1Ag VEFCTEUgc2FsZXNfcmFuZ2U7CistLQorLS0gQWRkIHJvd3MgaW50byBwYXJ0aXRpb25lZCB0 YWJsZSB0aGVuIG1lcmdlIHBhcnRpdGlvbnMKKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNfcmFu Z2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNf YW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVz X2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIwMjIgUEFSVElUSU9OIE9GIHNhbGVz X3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEnKSBUTyAoJzIwMjItMDItMDEn KTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWIyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5n ZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTAzLTAxJyk7CitD UkVBVEUgVEFCTEUgc2FsZXNfbWFyMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9S IFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScpOworQ1JFQVRF IFRBQkxFIHNhbGVzX2FwcjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxV RVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKTsKK0NSRUFURSBUQUJM RSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIERFRkFVTFQ7CitDUkVB VEUgSU5ERVggc2FsZXNfcmFuZ2Vfc2FsZXNfZGF0ZV9pZHggT04gc2FsZXNfcmFuZ2UgVVNJ TkcgYnRyZWUgKHNhbGVzX2RhdGUpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVT ICgxLCAgJ01heScsICAgICAgMTAwMCwgJzIwMjItMDEtMzEnKTsKK0lOU0VSVCBJTlRPIHNh bGVzX3JhbmdlIFZBTFVFUyAoMiwgICdTbWlybm9mZicsIDUwMCwgICcyMDIyLTAyLTEwJyk7 CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDMsICAnRm9yZCcsICAgICAyMDAw LCAnMjAyMi0wNC0zMCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg0LCAg J0l2YW5vdicsICAgNzUwLCAgJzIwMjItMDQtMTMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jh bmdlIFZBTFVFUyAoNSwgICdEZWV2JywgICAgIDI1MCwgICcyMDIyLTA0LTA3Jyk7CitJTlNF UlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDYsICAnUG9pcm90JywgICAxNTAsICAnMjAy Mi0wMi0xMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg3LCAgJ0xpJywg ICAgICAgMTc1LCAgJzIwMjItMDMtMDgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZB TFVFUyAoOCwgICdFcmljc3NvbicsIDE4NSwgICcyMDIyLTAyLTIzJyk7CitJTlNFUlQgSU5U TyBzYWxlc19yYW5nZSBWQUxVRVMgKDksICAnTXVsbGVyJywgICAyNTAsICAnMjAyMi0wMy0x MScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMCwgJ0hhbGRlcicsICAg MzUwLCAgJzIwMjItMDEtMjgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAo MTEsICdUcnVtcCcsICAgIDM4MCwgICcyMDIyLTA0LTA2Jyk7CitJTlNFUlQgSU5UTyBzYWxl c19yYW5nZSBWQUxVRVMgKDEyLCAnUGxhdG8nLCAgICAzNTAsICAnMjAyMi0wMy0xOScpOwor SU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMywgJ0dhbmRpJywgICAgMzc3LCAg JzIwMjItMDEtMDknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTQsICdT bWl0aCcsICAgIDUxMCwgICcyMDIyLTA1LTA0Jyk7CitTRUxFQ1QgcGdfY2F0YWxvZy5wZ19n ZXRfcGFydGtleWRlZignc2FsZXNfcmFuZ2UnOjpyZWdjbGFzcyk7CisgcGdfZ2V0X3BhcnRr ZXlkZWYgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSQU5HRSAoc2FsZXNfZGF0ZSkKKygx IHJvdykKKworLS0gc2hvdyBwYXJ0aXRpb25zIHdpdGggY29uZGl0aW9uczoKK1NFTEVDVCBj Lm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFzcywgYy5yZWxraW5kLCBpbmhkZXRhY2hwZW5kaW5n LCBwZ19jYXRhbG9nLnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkKKyAgRlJP TSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMsIHBnX2NhdGFsb2cucGdfaW5oZXJpdHMgaQorICBX SEVSRSBjLm9pZCA9IGkuaW5ocmVsaWQgQU5EIGkuaW5ocGFyZW50ID0gJ3NhbGVzX3Jhbmdl Jzo6cmVnY2xhc3MKKyAgT1JERVIgQlkgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcihjLnJlbHBh cnRib3VuZCwgYy5vaWQpID0gJ0RFRkFVTFQnLCBjLm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFz czo6cGdfY2F0YWxvZy50ZXh0OworICAgICAgb2lkICAgICAgfCByZWxraW5kIHwgaW5oZGV0 YWNocGVuZGluZyB8ICAgICAgICAgICAgICAgICAgIHBnX2dldF9leHByICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg c2FsZXNfYXByMjAyMiB8IHIgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgRk9SIFZBTFVF UyBGUk9NICgnMDQtMDEtMjAyMicpIFRPICgnMDUtMDEtMjAyMicpCisgc2FsZXNfZmViMjAy MiB8IHIgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgRk9SIFZBTFVFUyBGUk9NICgnMDIt MDEtMjAyMicpIFRPICgnMDMtMDEtMjAyMicpCisgc2FsZXNfamFuMjAyMiB8IHIgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgRk9SIFZBTFVFUyBGUk9NICgnMDEtMDEtMjAyMicpIFRP ICgnMDItMDEtMjAyMicpCisgc2FsZXNfbWFyMjAyMiB8IHIgICAgICAgfCBmICAgICAgICAg ICAgICAgIHwgRk9SIFZBTFVFUyBGUk9NICgnMDMtMDEtMjAyMicpIFRPICgnMDQtMDEtMjAy MicpCisgc2FsZXNfb3RoZXJzICB8IHIgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgREVG QVVMVAorKDUgcm93cykKKworQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgTUVSR0UgUEFSVElU SU9OUyAoc2FsZXNfZmViMjAyMiwgc2FsZXNfbWFyMjAyMiwgc2FsZXNfYXByMjAyMikgSU5U TyBzYWxlc19mZWJfbWFyX2FwcjIwMjI7CistLSBzaG93IHBhcnRpdGlvbnMgd2l0aCBjb25k aXRpb25zOgorU0VMRUNUIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzLCBjLnJlbGtpbmQs IGluaGRldGFjaHBlbmRpbmcsIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91 bmQsIGMub2lkKQorICBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYywgcGdfY2F0YWxvZy5w Z19pbmhlcml0cyBpCisgIFdIRVJFIGMub2lkID0gaS5pbmhyZWxpZCBBTkQgaS5pbmhwYXJl bnQgPSAnc2FsZXNfcmFuZ2UnOjpyZWdjbGFzcworICBPUkRFUiBCWSBwZ19jYXRhbG9nLnBn X2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkgPSAnREVGQVVMVCcsIGMub2lkOjpw Z19jYXRhbG9nLnJlZ2NsYXNzOjpwZ19jYXRhbG9nLnRleHQ7CisgICAgICAgICAgb2lkICAg ICAgICAgIHwgcmVsa2luZCB8IGluaGRldGFjaHBlbmRpbmcgfCAgICAgICAgICAgICAgICAg ICBwZ19nZXRfZXhwciAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgc2FsZXNfZmViX21hcl9hcHIyMDIy IHwgciAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBGT1IgVkFMVUVTIEZST00gKCcwMi0w MS0yMDIyJykgVE8gKCcwNS0wMS0yMDIyJykKKyBzYWxlc19qYW4yMDIyICAgICAgICAgfCBy ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IEZPUiBWQUxVRVMgRlJPTSAoJzAxLTAxLTIw MjInKSBUTyAoJzAyLTAxLTIwMjInKQorIHNhbGVzX290aGVycyAgICAgICAgICB8IHIgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgREVGQVVMVAorKDMgcm93cykKKworU0VMRUNUICog RlJPTSBwZ19pbmRleGVzIFdIRVJFIHRhYmxlbmFtZSA9ICdzYWxlc19mZWJfbWFyX2FwcjIw MjInIGFuZCBzY2hlbWFuYW1lID0gJ3BhcnRpdGlvbnNfbWVyZ2Vfc2NoZW1hJzsKKyAgICAg ICBzY2hlbWFuYW1lICAgICAgICB8ICAgICAgIHRhYmxlbmFtZSAgICAgICB8ICAgICAgICAg ICAgICBpbmRleG5hbWUgICAgICAgICAgICAgICB8IHRhYmxlc3BhY2UgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleGRl ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHBhcnRpdGlvbnNfbWVyZ2Vfc2NoZW1hIHwgc2FsZXNf ZmViX21hcl9hcHIyMDIyIHwgc2FsZXNfZmViX21hcl9hcHIyMDIyX3NhbGVzX2RhdGVfaWR4 IHwgICAgICAgICAgICB8IENSRUFURSBJTkRFWCBzYWxlc19mZWJfbWFyX2FwcjIwMjJfc2Fs ZXNfZGF0ZV9pZHggT04gcGFydGl0aW9uc19tZXJnZV9zY2hlbWEuc2FsZXNfZmViX21hcl9h cHIyMDIyIFVTSU5HIGJ0cmVlIChzYWxlc19kYXRlKQorKDEgcm93KQorCitTRUxFQ1QgKiBG Uk9NIHNhbGVzX3JhbmdlOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVz X2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMSB8IE1heSAgICAgICAg ICAgfCAgICAgICAgIDEwMDAgfCAwMS0zMS0yMDIyCisgICAgICAgICAgMTAgfCBIYWxkZXIg ICAgICAgIHwgICAgICAgICAgMzUwIHwgMDEtMjgtMjAyMgorICAgICAgICAgIDEzIHwgR2Fu ZGkgICAgICAgICB8ICAgICAgICAgIDM3NyB8IDAxLTA5LTIwMjIKKyAgICAgICAgICAgMiB8 IFNtaXJub2ZmICAgICAgfCAgICAgICAgICA1MDAgfCAwMi0xMC0yMDIyCisgICAgICAgICAg IDYgfCBQb2lyb3QgICAgICAgIHwgICAgICAgICAgMTUwIHwgMDItMTEtMjAyMgorICAgICAg ICAgICA4IHwgRXJpY3Nzb24gICAgICB8ICAgICAgICAgIDE4NSB8IDAyLTIzLTIwMjIKKyAg ICAgICAgICAgNyB8IExpICAgICAgICAgICAgfCAgICAgICAgICAxNzUgfCAwMy0wOC0yMDIy CisgICAgICAgICAgIDkgfCBNdWxsZXIgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDMtMTEt MjAyMgorICAgICAgICAgIDEyIHwgUGxhdG8gICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAz LTE5LTIwMjIKKyAgICAgICAgICAgMyB8IEZvcmQgICAgICAgICAgfCAgICAgICAgIDIwMDAg fCAwNC0zMC0yMDIyCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgICAgICAgICAg NzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8ICAgICAg ICAgIDI1MCB8IDA0LTA3LTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1wICAgICAgICAgfCAg ICAgICAgICAzODAgfCAwNC0wNi0yMDIyCisgICAgICAgICAgMTQgfCBTbWl0aCAgICAgICAg IHwgICAgICAgICAgNTEwIHwgMDUtMDQtMjAyMgorKDE0IHJvd3MpCisKK1NFTEVDVCAqIEZS T00gc2FsZXNfamFuMjAyMjsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxl c19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEgfCBNYXkgICAgICAg ICAgIHwgICAgICAgICAxMDAwIHwgMDEtMzEtMjAyMgorICAgICAgICAgIDEwIHwgSGFsZGVy ICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAxLTI4LTIwMjIKKyAgICAgICAgICAxMyB8IEdh bmRpICAgICAgICAgfCAgICAgICAgICAzNzcgfCAwMS0wOS0yMDIyCisoMyByb3dzKQorCitT RUxFQ1QgKiBGUk9NIHNhbGVzX2ZlYl9tYXJfYXByMjAyMjsKKyBzYWxlc21hbl9pZCB8IHNh bGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAg ICAgIDIgfCBTbWlybm9mZiAgICAgIHwgICAgICAgICAgNTAwIHwgMDItMTAtMjAyMgorICAg ICAgICAgICA2IHwgUG9pcm90ICAgICAgICB8ICAgICAgICAgIDE1MCB8IDAyLTExLTIwMjIK KyAgICAgICAgICAgOCB8IEVyaWNzc29uICAgICAgfCAgICAgICAgICAxODUgfCAwMi0yMy0y MDIyCisgICAgICAgICAgIDcgfCBMaSAgICAgICAgICAgIHwgICAgICAgICAgMTc1IHwgMDMt MDgtMjAyMgorICAgICAgICAgICA5IHwgTXVsbGVyICAgICAgICB8ICAgICAgICAgIDI1MCB8 IDAzLTExLTIwMjIKKyAgICAgICAgICAxMiB8IFBsYXRvICAgICAgICAgfCAgICAgICAgICAz NTAgfCAwMy0xOS0yMDIyCisgICAgICAgICAgIDMgfCBGb3JkICAgICAgICAgIHwgICAgICAg ICAyMDAwIHwgMDQtMzAtMjAyMgorICAgICAgICAgICA0IHwgSXZhbm92ICAgICAgICB8ICAg ICAgICAgIDc1MCB8IDA0LTEzLTIwMjIKKyAgICAgICAgICAgNSB8IERlZXYgICAgICAgICAg fCAgICAgICAgICAyNTAgfCAwNC0wNy0yMDIyCisgICAgICAgICAgMTEgfCBUcnVtcCAgICAg ICAgIHwgICAgICAgICAgMzgwIHwgMDQtMDYtMjAyMgorKDEwIHJvd3MpCisKK1NFTEVDVCAq IEZST00gc2FsZXNfb3RoZXJzOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNh bGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAxNCB8IFNtaXRoICAg ICAgICAgfCAgICAgICAgICA1MTAgfCAwNS0wNC0yMDIyCisoMSByb3cpCisKKy0tIFVzZSBp bmRleHNjYW4gZm9yIHRlc3QgaW5kZXhlcworU0VUIGVuYWJsZV9pbmRleHNjYW4gPSBPTjsK K1NFVCBlbmFibGVfc2Vxc2NhbiA9IE9GRjsKK1NFTEVDVCAqIEZST00gc2FsZXNfZmViX21h cl9hcHIyMDIyIHdoZXJlIHNhbGVzX2RhdGUgPiAnMjAyMi0wMS0wMSc7Cisgc2FsZXNtYW5f aWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor ICAgICAgICAgICAyIHwgU21pcm5vZmYgICAgICB8ICAgICAgICAgIDUwMCB8IDAyLTEwLTIw MjIKKyAgICAgICAgICAgNiB8IFBvaXJvdCAgICAgICAgfCAgICAgICAgICAxNTAgfCAwMi0x MS0yMDIyCisgICAgICAgICAgIDggfCBFcmljc3NvbiAgICAgIHwgICAgICAgICAgMTg1IHwg MDItMjMtMjAyMgorICAgICAgICAgICA3IHwgTGkgICAgICAgICAgICB8ICAgICAgICAgIDE3 NSB8IDAzLTA4LTIwMjIKKyAgICAgICAgICAgOSB8IE11bGxlciAgICAgICAgfCAgICAgICAg ICAyNTAgfCAwMy0xMS0yMDIyCisgICAgICAgICAgMTIgfCBQbGF0byAgICAgICAgIHwgICAg ICAgICAgMzUwIHwgMDMtMTktMjAyMgorICAgICAgICAgIDExIHwgVHJ1bXAgICAgICAgICB8 ICAgICAgICAgIDM4MCB8IDA0LTA2LTIwMjIKKyAgICAgICAgICAgNSB8IERlZXYgICAgICAg ICAgfCAgICAgICAgICAyNTAgfCAwNC0wNy0yMDIyCisgICAgICAgICAgIDQgfCBJdmFub3Yg ICAgICAgIHwgICAgICAgICAgNzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAgICAzIHwgRm9y ZCAgICAgICAgICB8ICAgICAgICAgMjAwMCB8IDA0LTMwLTIwMjIKKygxMCByb3dzKQorCitT RVQgZW5hYmxlX2luZGV4c2NhbiA9IE9OOworU0VUIGVuYWJsZV9zZXFzY2FuID0gT047CitE Uk9QIFRBQkxFIHNhbGVzX3JhbmdlOworLS0KKy0tIE1lcmdlIHNvbWUgcGFydGl0aW9ucyBp bnRvIERFRkFVTFQgcGFydGl0aW9uCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlIChz YWxlc21hbl9pZCBJTlQsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCksIHNhbGVzX2Ftb3Vu dCBJTlQsIHNhbGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19kYXRl KTsKK0NSRUFURSBUQUJMRSBzYWxlc19qYW4yMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5n ZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTAyLTAxJyk7CitD UkVBVEUgVEFCTEUgc2FsZXNfZmViMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9S IFZBTFVFUyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0wMy0wMScpOworQ1JFQVRF IFRBQkxFIHNhbGVzX21hcjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxV RVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEnKTsKK0NSRUFURSBUQUJM RSBzYWxlc19hcHIyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZS T00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJyk7CitDUkVBVEUgVEFCTEUgc2Fs ZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOworQ1JFQVRFIElO REVYIHNhbGVzX3JhbmdlX3NhbGVzX2RhdGVfaWR4IE9OIHNhbGVzX3JhbmdlIFVTSU5HIGJ0 cmVlIChzYWxlc19kYXRlKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMSwg ICdNYXknLCAgICAgIDEwMDAsICcyMDIyLTAxLTMxJyk7CitJTlNFUlQgSU5UTyBzYWxlc19y YW5nZSBWQUxVRVMgKDIsICAnU21pcm5vZmYnLCA1MDAsICAnMjAyMi0wMi0xMCcpOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgzLCAgJ0ZvcmQnLCAgICAgMjAwMCwgJzIw MjItMDQtMzAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNCwgICdJdmFu b3YnLCAgIDc1MCwgICcyMDIyLTA0LTEzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBW QUxVRVMgKDUsICAnRGVldicsICAgICAyNTAsICAnMjAyMi0wNC0wNycpOworSU5TRVJUIElO VE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg2LCAgJ1BvaXJvdCcsICAgMTUwLCAgJzIwMjItMDIt MTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNywgICdMaScsICAgICAg IDE3NSwgICcyMDIyLTAzLTA4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMg KDgsICAnRXJpY3Nzb24nLCAxODUsICAnMjAyMi0wMi0yMycpOworSU5TRVJUIElOVE8gc2Fs ZXNfcmFuZ2UgVkFMVUVTICg5LCAgJ011bGxlcicsICAgMjUwLCAgJzIwMjItMDMtMTEnKTsK K0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTAsICdIYWxkZXInLCAgIDM1MCwg ICcyMDIyLTAxLTI4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDExLCAn VHJ1bXAnLCAgICAzODAsICAnMjAyMi0wNC0wNicpOworSU5TRVJUIElOVE8gc2FsZXNfcmFu Z2UgVkFMVUVTICgxMiwgJ1BsYXRvJywgICAgMzUwLCAgJzIwMjItMDMtMTknKTsKK0lOU0VS VCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTMsICdHYW5kaScsICAgIDM3NywgICcyMDIy LTAxLTA5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDE0LCAnU21pdGgn LCAgICA1MTAsICAnMjAyMi0wNS0wNCcpOworLS0gTWVyZ2UgcGFydGl0aW9ucyAoaW5jbHVk ZSBERUZBVUxUIHBhcnRpdGlvbikgaW50byBwYXJ0aXRpb24gd2l0aCB0aGUgc2FtZQorLS0g bmFtZQorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNf amFuMjAyMiwgc2FsZXNfbWFyMjAyMiwgc2FsZXNfb3RoZXJzKSBJTlRPIHNhbGVzX290aGVy czsKK3NlbGVjdCAqIGZyb20gc2FsZXNfb3RoZXJzOworIHNhbGVzbWFuX2lkIHwgc2FsZXNt YW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAg MSB8IE1heSAgICAgICAgICAgfCAgICAgICAgIDEwMDAgfCAwMS0zMS0yMDIyCisgICAgICAg ICAgMTAgfCBIYWxkZXIgICAgICAgIHwgICAgICAgICAgMzUwIHwgMDEtMjgtMjAyMgorICAg ICAgICAgIDEzIHwgR2FuZGkgICAgICAgICB8ICAgICAgICAgIDM3NyB8IDAxLTA5LTIwMjIK KyAgICAgICAgICAgNyB8IExpICAgICAgICAgICAgfCAgICAgICAgICAxNzUgfCAwMy0wOC0y MDIyCisgICAgICAgICAgIDkgfCBNdWxsZXIgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDMt MTEtMjAyMgorICAgICAgICAgIDEyIHwgUGxhdG8gICAgICAgICB8ICAgICAgICAgIDM1MCB8 IDAzLTE5LTIwMjIKKyAgICAgICAgICAxNCB8IFNtaXRoICAgICAgICAgfCAgICAgICAgICA1 MTAgfCAwNS0wNC0yMDIyCisoNyByb3dzKQorCistLSBzaG93IHBhcnRpdGlvbnMgd2l0aCBj b25kaXRpb25zOgorU0VMRUNUIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzLCBjLnJlbGtp bmQsIGluaGRldGFjaHBlbmRpbmcsIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0 Ym91bmQsIGMub2lkKQorICBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYywgcGdfY2F0YWxv Zy5wZ19pbmhlcml0cyBpCisgIFdIRVJFIGMub2lkID0gaS5pbmhyZWxpZCBBTkQgaS5pbmhw YXJlbnQgPSAnc2FsZXNfcmFuZ2UnOjpyZWdjbGFzcworICBPUkRFUiBCWSBwZ19jYXRhbG9n LnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkgPSAnREVGQVVMVCcsIGMub2lk OjpwZ19jYXRhbG9nLnJlZ2NsYXNzOjpwZ19jYXRhbG9nLnRleHQ7CisgICAgICBvaWQgICAg ICB8IHJlbGtpbmQgfCBpbmhkZXRhY2hwZW5kaW5nIHwgICAgICAgICAgICAgICAgICAgcGdf Z2V0X2V4cHIgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBzYWxlc19hcHIyMDIyIHwgciAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBGT1IgVkFMVUVTIEZST00gKCcwNC0wMS0yMDIyJykgVE8gKCcwNS0wMS0y MDIyJykKKyBzYWxlc19mZWIyMDIyIHwgciAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBG T1IgVkFMVUVTIEZST00gKCcwMi0wMS0yMDIyJykgVE8gKCcwMy0wMS0yMDIyJykKKyBzYWxl c19vdGhlcnMgIHwgciAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBERUZBVUxUCisoMyBy b3dzKQorCitEUk9QIFRBQkxFIHNhbGVzX3JhbmdlOworLS0KKy0tIFRlc3QgZm9yOgorLS0g ICAqIGNvbXBvc2l0ZSBwYXJ0aXRpb24ga2V5OworLS0gICAqIEdFTkVSQVRFRCBjb2x1bW47 CistLSAgICogY29sdW1uIHdpdGggREVGQVVMVCB2YWx1ZS4KKy0tCitDUkVBVEUgVEFCTEUg c2FsZXNfZGF0ZSAoc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNfeWVhciBJTlQs IHNhbGVzX21vbnRoIElOVCwgc2FsZXNfZGF5IElOVCwKKyAgc2FsZXNfZGF0ZSBWQVJDSEFS KDEwKSBHRU5FUkFURUQgQUxXQVlTIEFTCisgICAgKExQQUQoc2FsZXNfeWVhcjo6dGV4dCwg NCwgJzAnKSB8fCAnLicgfHwgTFBBRChzYWxlc19tb250aDo6dGV4dCwgMiwgJzAnKSB8fCAn LicgfHwgTFBBRChzYWxlc19kYXk6OnRleHQsIDIsICcwJykpIFNUT1JFRCwKKyAgc2FsZXNf ZGVwYXJ0bWVudCBWQVJDSEFSKDMwKSBERUZBVUxUICdTYWxlcyBkZXBhcnRtZW50JykKKyAg UEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5 KTsKK0NSRUFURSBUQUJMRSBzYWxlc19kZWMyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19kYXRl IEZPUiBWQUxVRVMgRlJPTSAoMjAyMSwgMTIsIDEpIFRPICgyMDIyLCAxLCAxKTsKK0NSRUFU RSBUQUJMRSBzYWxlc19qYW4yMDIyIFBBUlRJVElPTiBPRiBzYWxlc19kYXRlIEZPUiBWQUxV RVMgRlJPTSAoMjAyMiwgMSwgMSkgVE8gKDIwMjIsIDIsIDEpOworQ1JFQVRFIFRBQkxFIHNh bGVzX2ZlYjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX2RhdGUgRk9SIFZBTFVFUyBGUk9NICgy MDIyLCAyLCAxKSBUTyAoMjAyMiwgMywgMSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXIg UEFSVElUSU9OIE9GIHNhbGVzX2RhdGUgRk9SIFZBTFVFUyBGUk9NICgyMDIyLCAzLCAxKSBU TyAoTUFYVkFMVUUsIE1BWFZBTFVFLCBNQVhWQUxVRSk7CitJTlNFUlQgSU5UTyBzYWxlc19k YXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxlc19kYXkp IFZBTFVFUyAoJ01hbmFnZXIxJywgMjAyMSwgMTIsIDcpOworSU5TRVJUIElOVE8gc2FsZXNf ZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5 KSBWQUxVRVMgKCdNYW5hZ2VyMicsIDIwMjEsIDEyLCA4KTsKK0lOU0VSVCBJTlRPIHNhbGVz X2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2Rh eSkgVkFMVUVTICgnTWFuYWdlcjMnLCAyMDIyLCAxLCAxKTsKK0lOU0VSVCBJTlRPIHNhbGVz X2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2Rh eSkgVkFMVUVTICgnTWFuYWdlcjEnLCAyMDIyLCAyLCA0KTsKK0lOU0VSVCBJTlRPIHNhbGVz X2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2Rh eSkgVkFMVUVTICgnTWFuYWdlcjInLCAyMDIyLCAxLCAyKTsKK0lOU0VSVCBJTlRPIHNhbGVz X2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2Rh eSkgVkFMVUVTICgnTWFuYWdlcjMnLCAyMDIyLCAyLCAxKTsKK0lOU0VSVCBJTlRPIHNhbGVz X2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2Rh eSkgVkFMVUVTICgnTWFuYWdlcjEnLCAyMDIyLCAzLCAzKTsKK0lOU0VSVCBJTlRPIHNhbGVz X2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2Rh eSkgVkFMVUVTICgnTWFuYWdlcjInLCAyMDIyLCAzLCA0KTsKK0lOU0VSVCBJTlRPIHNhbGVz X2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2Rh eSkgVkFMVUVTICgnTWFuYWdlcjMnLCAyMDIyLCA1LCAxKTsKK1NFTEVDVCAqIEZST00gc2Fs ZXNfZGF0ZTsKKyBzYWxlc21hbl9uYW1lIHwgc2FsZXNfeWVhciB8IHNhbGVzX21vbnRoIHwg c2FsZXNfZGF5IHwgc2FsZXNfZGF0ZSB8IHNhbGVzX2RlcGFydG1lbnQgCistLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIxIHwg ICAgICAgICAgMTIgfCAgICAgICAgIDcgfCAyMDIxLjEyLjA3IHwgU2FsZXMgZGVwYXJ0bWVu dAorIE1hbmFnZXIyICAgICAgfCAgICAgICAyMDIxIHwgICAgICAgICAgMTIgfCAgICAgICAg IDggfCAyMDIxLjEyLjA4IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIzICAgICAgfCAg ICAgICAyMDIyIHwgICAgICAgICAgIDEgfCAgICAgICAgIDEgfCAyMDIyLjAxLjAxIHwgU2Fs ZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAg IDEgfCAgICAgICAgIDIgfCAyMDIyLjAxLjAyIHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFn ZXIxICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDIgfCAgICAgICAgIDQgfCAyMDIy LjAyLjA0IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIy IHwgICAgICAgICAgIDIgfCAgICAgICAgIDEgfCAyMDIyLjAyLjAxIHwgU2FsZXMgZGVwYXJ0 bWVudAorIE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDMgfCAgICAg ICAgIDMgfCAyMDIyLjAzLjAzIHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAg fCAgICAgICAyMDIyIHwgICAgICAgICAgIDMgfCAgICAgICAgIDQgfCAyMDIyLjAzLjA0IHwg U2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwgICAgICAg ICAgIDUgfCAgICAgICAgIDEgfCAyMDIyLjA1LjAxIHwgU2FsZXMgZGVwYXJ0bWVudAorKDkg cm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19kZWMyMDIyOworIHNhbGVzbWFuX25hbWUg fCBzYWxlc195ZWFyIHwgc2FsZXNfbW9udGggfCBzYWxlc19kYXkgfCBzYWxlc19kYXRlIHwg c2FsZXNfZGVwYXJ0bWVudCAKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisg TWFuYWdlcjEgICAgICB8ICAgICAgIDIwMjEgfCAgICAgICAgICAxMiB8ICAgICAgICAgNyB8 IDIwMjEuMTIuMDcgfCBTYWxlcyBkZXBhcnRtZW50CisgTWFuYWdlcjIgICAgICB8ICAgICAg IDIwMjEgfCAgICAgICAgICAxMiB8ICAgICAgICAgOCB8IDIwMjEuMTIuMDggfCBTYWxlcyBk ZXBhcnRtZW50CisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbjIwMjI7Cisg c2FsZXNtYW5fbmFtZSB8IHNhbGVzX3llYXIgfCBzYWxlc19tb250aCB8IHNhbGVzX2RheSB8 IHNhbGVzX2RhdGUgfCBzYWxlc19kZXBhcnRtZW50IAorLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0KKyBNYW5hZ2VyMyAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAx IHwgICAgICAgICAxIHwgMjAyMi4wMS4wMSB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2Vy MiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAxIHwgICAgICAgICAyIHwgMjAyMi4w MS4wMiB8IFNhbGVzIGRlcGFydG1lbnQKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2Fs ZXNfZmViMjAyMjsKKyBzYWxlc21hbl9uYW1lIHwgc2FsZXNfeWVhciB8IHNhbGVzX21vbnRo IHwgc2FsZXNfZGF5IHwgc2FsZXNfZGF0ZSB8IHNhbGVzX2RlcGFydG1lbnQgCistLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIy IHwgICAgICAgICAgIDIgfCAgICAgICAgIDQgfCAyMDIyLjAyLjA0IHwgU2FsZXMgZGVwYXJ0 bWVudAorIE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDIgfCAgICAg ICAgIDEgfCAyMDIyLjAyLjAxIHwgU2FsZXMgZGVwYXJ0bWVudAorKDIgcm93cykKKworU0VM RUNUICogRlJPTSBzYWxlc19vdGhlcjsKKyBzYWxlc21hbl9uYW1lIHwgc2FsZXNfeWVhciB8 IHNhbGVzX21vbnRoIHwgc2FsZXNfZGF5IHwgc2FsZXNfZGF0ZSB8IHNhbGVzX2RlcGFydG1l bnQgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIE1hbmFnZXIxICAgICAg fCAgICAgICAyMDIyIHwgICAgICAgICAgIDMgfCAgICAgICAgIDMgfCAyMDIyLjAzLjAzIHwg U2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAgfCAgICAgICAyMDIyIHwgICAgICAg ICAgIDMgfCAgICAgICAgIDQgfCAyMDIyLjAzLjA0IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1h bmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDUgfCAgICAgICAgIDEgfCAy MDIyLjA1LjAxIHwgU2FsZXMgZGVwYXJ0bWVudAorKDMgcm93cykKKworQUxURVIgVEFCTEUg c2FsZXNfZGF0ZSBNRVJHRSBQQVJUSVRJT05TIChzYWxlc19qYW4yMDIyLCBzYWxlc19mZWIy MDIyKSBJTlRPIHNhbGVzX2phbl9mZWIyMDIyOworSU5TRVJUIElOVE8gc2FsZXNfZGF0ZShz YWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5KSBWQUxV RVMgKCdNYW5hZ2VyMScsIDIwMjIsIDEsIDEwKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUo c2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFM VUVTICgnTWFuYWdlcjInLCAyMDIyLCAyLCAxMCk7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2Rh dGU7Cisgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX3llYXIgfCBzYWxlc19tb250aCB8IHNhbGVz X2RheSB8IHNhbGVzX2RhdGUgfCBzYWxlc19kZXBhcnRtZW50IAorLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0KKyBNYW5hZ2VyMSAgICAgIHwgICAgICAgMjAyMSB8ICAgICAg ICAgIDEyIHwgICAgICAgICA3IHwgMjAyMS4xMi4wNyB8IFNhbGVzIGRlcGFydG1lbnQKKyBN YW5hZ2VyMiAgICAgIHwgICAgICAgMjAyMSB8ICAgICAgICAgIDEyIHwgICAgICAgICA4IHwg MjAyMS4xMi4wOCB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMyAgICAgIHwgICAgICAg MjAyMiB8ICAgICAgICAgICAxIHwgICAgICAgICAxIHwgMjAyMi4wMS4wMSB8IFNhbGVzIGRl cGFydG1lbnQKKyBNYW5hZ2VyMiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAxIHwg ICAgICAgICAyIHwgMjAyMi4wMS4wMiB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMSAg ICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAyIHwgICAgICAgICA0IHwgMjAyMi4wMi4w NCB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMyAgICAgIHwgICAgICAgMjAyMiB8ICAg ICAgICAgICAyIHwgICAgICAgICAxIHwgMjAyMi4wMi4wMSB8IFNhbGVzIGRlcGFydG1lbnQK KyBNYW5hZ2VyMSAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAxIHwgICAgICAgIDEw IHwgMjAyMi4wMS4xMCB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMiAgICAgIHwgICAg ICAgMjAyMiB8ICAgICAgICAgICAyIHwgICAgICAgIDEwIHwgMjAyMi4wMi4xMCB8IFNhbGVz IGRlcGFydG1lbnQKKyBNYW5hZ2VyMSAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAz IHwgICAgICAgICAzIHwgMjAyMi4wMy4wMyB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2Vy MiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAzIHwgICAgICAgICA0IHwgMjAyMi4w My4wNCB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMyAgICAgIHwgICAgICAgMjAyMiB8 ICAgICAgICAgICA1IHwgICAgICAgICAxIHwgMjAyMi4wNS4wMSB8IFNhbGVzIGRlcGFydG1l bnQKKygxMSByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2RlYzIwMjI7Cisgc2FsZXNt YW5fbmFtZSB8IHNhbGVzX3llYXIgfCBzYWxlc19tb250aCB8IHNhbGVzX2RheSB8IHNhbGVz X2RhdGUgfCBzYWxlc19kZXBhcnRtZW50IAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0KKyBNYW5hZ2VyMSAgICAgIHwgICAgICAgMjAyMSB8ICAgICAgICAgIDEyIHwgICAg ICAgICA3IHwgMjAyMS4xMi4wNyB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMiAgICAg IHwgICAgICAgMjAyMSB8ICAgICAgICAgIDEyIHwgICAgICAgICA4IHwgMjAyMS4xMi4wOCB8 IFNhbGVzIGRlcGFydG1lbnQKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfamFu X2ZlYjIwMjI7Cisgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX3llYXIgfCBzYWxlc19tb250aCB8 IHNhbGVzX2RheSB8IHNhbGVzX2RhdGUgfCBzYWxlc19kZXBhcnRtZW50IAorLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBNYW5hZ2VyMyAgICAgIHwgICAgICAgMjAyMiB8 ICAgICAgICAgICAxIHwgICAgICAgICAxIHwgMjAyMi4wMS4wMSB8IFNhbGVzIGRlcGFydG1l bnQKKyBNYW5hZ2VyMiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAxIHwgICAgICAg ICAyIHwgMjAyMi4wMS4wMiB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMSAgICAgIHwg ICAgICAgMjAyMiB8ICAgICAgICAgICAyIHwgICAgICAgICA0IHwgMjAyMi4wMi4wNCB8IFNh bGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMyAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAg ICAyIHwgICAgICAgICAxIHwgMjAyMi4wMi4wMSB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5h Z2VyMSAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAxIHwgICAgICAgIDEwIHwgMjAy Mi4wMS4xMCB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMiAgICAgIHwgICAgICAgMjAy MiB8ICAgICAgICAgICAyIHwgICAgICAgIDEwIHwgMjAyMi4wMi4xMCB8IFNhbGVzIGRlcGFy dG1lbnQKKyg2IHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfb3RoZXI7Cisgc2FsZXNt YW5fbmFtZSB8IHNhbGVzX3llYXIgfCBzYWxlc19tb250aCB8IHNhbGVzX2RheSB8IHNhbGVz X2RhdGUgfCBzYWxlc19kZXBhcnRtZW50IAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0KKyBNYW5hZ2VyMSAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAzIHwgICAg ICAgICAzIHwgMjAyMi4wMy4wMyB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMiAgICAg IHwgICAgICAgMjAyMiB8ICAgICAgICAgICAzIHwgICAgICAgICA0IHwgMjAyMi4wMy4wNCB8 IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMyAgICAgIHwgICAgICAgMjAyMiB8ICAgICAg ICAgICA1IHwgICAgICAgICAxIHwgMjAyMi4wNS4wMSB8IFNhbGVzIGRlcGFydG1lbnQKKygz IHJvd3MpCisKK0RST1AgVEFCTEUgc2FsZXNfZGF0ZTsKKy0tCistLSBUZXN0OiBtZXJnZSBw YXJ0aXRpb25zIG9mIHBhcnRpdGlvbmVkIHRhYmxlIHdpdGggdHJpZ2dlcnMKKy0tCitDUkVB VEUgVEFCTEUgc2FsZXNtYW5zKHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtFWSwgc2FsZXNt YW5fbmFtZSBWQVJDSEFSKDMwKSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc21hbl9pZCk7 CitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMDFfMTAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBG T1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMTBf MjAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMjAp OworQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczIwXzMwIFBBUlRJVElPTiBPRiBzYWxlc21hbnMg Rk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKTsKK0NSRUFURSBUQUJMRSBzYWxlc21hbnMz MF80MCBQQVJUSVRJT04gT0Ygc2FsZXNtYW5zIEZPUiBWQUxVRVMgRlJPTSAoMzApIFRPICg0 MCk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxLCAgJ1BvaXJvdCcpOworQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gYWZ0ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyKCkgUkVU VVJOUyB0cmlnZ2VyIExBTkdVQUdFICdwbHBnc3FsJyBBUyAkQk9EWSQKK0JFR0lOCisJUkFJ U0UgTk9USUNFICd0cmlnZ2VyKCUpIGNhbGxlZDogYWN0aW9uID0gJSwgd2hlbiA9ICUsIGxl dmVsID0gJScsIFRHX0FSR1ZbMF0sIFRHX09QLCBUR19XSEVOLCBUR19MRVZFTDsKKyAgICBS RVRVUk4gTlVMTDsKK0VORDsKKyRCT0RZJDsKK0NSRUFURSBUUklHR0VSIHNhbGVzbWFuc19h ZnRlcl9pbnNlcnRfc3RhdGVtZW50X3RyaWdnZXIKKyAgICBBRlRFUiBJTlNFUlQKKyAgICBP TiBzYWxlc21hbnMKKyAgICBGT1IgRUFDSCBTVEFURU1FTlQKKyAgICBFWEVDVVRFIFBST0NF RFVSRSBhZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIoJ3NhbGVzbWFucycpOworQ1JFQVRFIFRS SUdHRVIgc2FsZXNtYW5zX2FmdGVyX2luc2VydF9yb3dfdHJpZ2dlcgorICAgIEFGVEVSIElO U0VSVAorICAgIE9OIHNhbGVzbWFucworICAgIEZPUiBFQUNIIFJPVworICAgIEVYRUNVVEUg UFJPQ0VEVVJFIGFmdGVyX2luc2VydF9yb3dfdHJpZ2dlcignc2FsZXNtYW5zJyk7CistLSAy IHRyaWdnZXJzIHNob3VsZCBmaXJlIGhlcmUgKHJvdyArIHN0YXRlbWVudCk6CitJTlNFUlQg SU5UTyBzYWxlc21hbnMgVkFMVUVTICgxMCwgJ01heScpOworTk9USUNFOiAgdHJpZ2dlcihz YWxlc21hbnMpIGNhbGxlZDogYWN0aW9uID0gSU5TRVJULCB3aGVuID0gQUZURVIsIGxldmVs ID0gUk9XCitOT1RJQ0U6ICB0cmlnZ2VyKHNhbGVzbWFucykgY2FsbGVkOiBhY3Rpb24gPSBJ TlNFUlQsIHdoZW4gPSBBRlRFUiwgbGV2ZWwgPSBTVEFURU1FTlQKKy0tIDEgdHJpZ2dlciBz aG91bGQgZmlyZSBoZXJlIChyb3cpOgorSU5TRVJUIElOVE8gc2FsZXNtYW5zMTBfMjAgVkFM VUVTICgxOSwgJ0l2YW5vdicpOworTk9USUNFOiAgdHJpZ2dlcihzYWxlc21hbnMpIGNhbGxl ZDogYWN0aW9uID0gSU5TRVJULCB3aGVuID0gQUZURVIsIGxldmVsID0gUk9XCitBTFRFUiBU QUJMRSBzYWxlc21hbnMgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNtYW5zMTBfMjAsIHNhbGVz bWFuczIwXzMwLCBzYWxlc21hbnMzMF80MCkgSU5UTyBzYWxlc21hbnMxMF80MDsKKy0tIDIg dHJpZ2dlcnMgc2hvdWxkIGZpcmUgaGVyZSAocm93ICsgc3RhdGVtZW50KToKK0lOU0VSVCBJ TlRPIHNhbGVzbWFucyBWQUxVRVMgKDIwLCAnU21pcm5vZmYnKTsKK05PVElDRTogIHRyaWdn ZXIoc2FsZXNtYW5zKSBjYWxsZWQ6IGFjdGlvbiA9IElOU0VSVCwgd2hlbiA9IEFGVEVSLCBs ZXZlbCA9IFJPVworTk9USUNFOiAgdHJpZ2dlcihzYWxlc21hbnMpIGNhbGxlZDogYWN0aW9u ID0gSU5TRVJULCB3aGVuID0gQUZURVIsIGxldmVsID0gU1RBVEVNRU5UCistLSAxIHRyaWdn ZXIgc2hvdWxkIGZpcmUgaGVyZSAocm93KToKK0lOU0VSVCBJTlRPIHNhbGVzbWFuczEwXzQw IFZBTFVFUyAoMzAsICdGb3JkJyk7CitOT1RJQ0U6ICB0cmlnZ2VyKHNhbGVzbWFucykgY2Fs bGVkOiBhY3Rpb24gPSBJTlNFUlQsIHdoZW4gPSBBRlRFUiwgbGV2ZWwgPSBST1cKK1NFTEVD VCAqIEZST00gc2FsZXNtYW5zMDFfMTA7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1l IAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMSB8IFBvaXJv dAorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczEwXzQwOworIHNhbGVzbWFu X2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgMTAgfCBNYXkKKyAgICAgICAgICAxOSB8IEl2YW5vdgorICAgICAgICAgIDIw IHwgU21pcm5vZmYKKyAgICAgICAgICAzMCB8IEZvcmQKKyg0IHJvd3MpCisKK0RST1AgVEFC TEUgc2FsZXNtYW5zOworRFJPUCBGVU5DVElPTiBhZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIo KTsKKy0tCistLSBUZXN0OiBtZXJnZSBwYXJ0aXRpb25zIHdpdGggZGVsZXRlZCBjb2x1bW5z CistLQorQ1JFQVRFIFRBQkxFIHNhbGVzbWFucyhzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBL RVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2Fs ZXNtYW5faWQpOworQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczAxXzEwIFBBUlRJVElPTiBPRiBz YWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMTApOworLS0gQ3JlYXRlIHBhcnRp dGlvbnMgd2l0aCBzb21lIGRlbGV0ZWQgY29sdW1uczoKK0NSRUFURSBUQUJMRSBzYWxlc21h bnMxMF8yMChkMSBWQVJDSEFSKDMwKSwgc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBz YWxlc21hbl9uYW1lIFZBUkNIQVIoMzApKTsKK0NSRUFURSBUQUJMRSBzYWxlc21hbnMyMF8z MChzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIGQyIElOVCwgIHNhbGVzbWFuX25hbWUg VkFSQ0hBUigzMCkpOworQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczMwXzQwKHNhbGVzbWFuX2lk IElOVCBQUklNQVJZIEtFWSwgZDMgREFURSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSk7 CitJTlNFUlQgSU5UTyBzYWxlc21hbnMxMF8yMCBWQUxVRVMgKCdkdW1teSB2YWx1ZSAxJywg MTksICdJdmFub3YnKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWFuczIwXzMwIFZBTFVFUyAoMjAs IDEwMSwgJ1NtaXJub2ZmJyk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMzMF80MCBWQUxVRVMg KDMxLCBub3coKSwgJ1BvcG92Jyk7CitBTFRFUiBUQUJMRSBzYWxlc21hbnMxMF8yMCBEUk9Q IENPTFVNTiBkMTsKK0FMVEVSIFRBQkxFIHNhbGVzbWFuczIwXzMwIERST1AgQ09MVU1OIGQy OworQUxURVIgVEFCTEUgc2FsZXNtYW5zMzBfNDAgRFJPUCBDT0xVTU4gZDM7CitBTFRFUiBU QUJMRSBzYWxlc21hbnMgQVRUQUNIIFBBUlRJVElPTiBzYWxlc21hbnMxMF8yMCBGT1IgVkFM VUVTIEZST00gKDEwKSBUTyAoMjApOworQUxURVIgVEFCTEUgc2FsZXNtYW5zIEFUVEFDSCBQ QVJUSVRJT04gc2FsZXNtYW5zMjBfMzAgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKTsK K0FMVEVSIFRBQkxFIHNhbGVzbWFucyBBVFRBQ0ggUEFSVElUSU9OIHNhbGVzbWFuczMwXzQw IEZPUiBWQUxVRVMgRlJPTSAoMzApIFRPICg0MCk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMg VkFMVUVTICgxLCAnUG9pcm90Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgx MCwgJ01heScpOworSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMzAsICdGb3JkJyk7 CitBTFRFUiBUQUJMRSBzYWxlc21hbnMgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNtYW5zMTBf MjAsIHNhbGVzbWFuczIwXzMwLCBzYWxlc21hbnMzMF80MCkgSU5UTyBzYWxlc21hbnMxMF80 MDsKK3NlbGVjdCAqIGZyb20gc2FsZXNtYW5zOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5f bmFtZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEgfCBQ b2lyb3QKKyAgICAgICAgICAxOSB8IEl2YW5vdgorICAgICAgICAgIDEwIHwgTWF5CisgICAg ICAgICAgMjAgfCBTbWlybm9mZgorICAgICAgICAgIDMxIHwgUG9wb3YKKyAgICAgICAgICAz MCB8IEZvcmQKKyg2IHJvd3MpCisKK3NlbGVjdCAqIGZyb20gc2FsZXNtYW5zMDFfMTA7Cisg c2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgMSB8IFBvaXJvdAorKDEgcm93KQorCitzZWxlY3QgKiBmcm9t IHNhbGVzbWFuczEwXzQwOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgMTkgfCBJdmFub3YKKyAgICAg ICAgICAxMCB8IE1heQorICAgICAgICAgIDIwIHwgU21pcm5vZmYKKyAgICAgICAgICAzMSB8 IFBvcG92CisgICAgICAgICAgMzAgfCBGb3JkCisoNSByb3dzKQorCitEUk9QIFRBQkxFIHNh bGVzbWFuczsKKy0tCistLSBUZXN0OiBtZXJnZSBzdWItcGFydGl0aW9ucworLS0KK0NSRUFU RSBUQUJMRSBzYWxlc19yYW5nZSAoc2FsZXNtYW5faWQgSU5ULCBzYWxlc21hbl9uYW1lIFZB UkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19kYXRlIERBVEUpIFBBUlRJVElP TiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfamFuMjAyMiBQ QVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMS0wMScp IFRPICgnMjAyMi0wMi0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2ZlYjIwMjIgUEFSVElU SU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAo JzIwMjItMDMtMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19tYXIyMDIyIFBBUlRJVElPTiBP RiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIy LTA0LTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfYXByMjAyMiAoc2FsZXNtYW5faWQgSU5U LCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19k YXRlIERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFC TEUgc2FsZXNfYXByMjAyMl8wMV8xMCBQQVJUSVRJT04gT0Ygc2FsZXNfYXByMjAyMiBGT1Ig VkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA0LTEwJyk7CitDUkVBVEUg VEFCTEUgc2FsZXNfYXByMjAyMl8xMF8yMCBQQVJUSVRJT04gT0Ygc2FsZXNfYXByMjAyMiBG T1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTEwJykgVE8gKCcyMDIyLTA0LTIwJyk7CitDUkVB VEUgVEFCTEUgc2FsZXNfYXByMjAyMl8yMF8zMCBQQVJUSVRJT04gT0Ygc2FsZXNfYXByMjAy MiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTIwJykgVE8gKCcyMDIyLTA1LTAxJyk7CitB TFRFUiBUQUJMRSBzYWxlc19yYW5nZSBBVFRBQ0ggUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIg Rk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpOworQ1JF QVRFIFRBQkxFIHNhbGVzX290aGVycyBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgREVGQVVM VDsKK0NSRUFURSBJTkRFWCBzYWxlc19yYW5nZV9zYWxlc19kYXRlX2lkeCBPTiBzYWxlc19y YW5nZSBVU0lORyBidHJlZSAoc2FsZXNfZGF0ZSk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5n ZSBWQUxVRVMgKDEsICAnTWF5JywgICAgICAxMDAwLCAnMjAyMi0wMS0zMScpOworSU5TRVJU IElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgyLCAgJ1NtaXJub2ZmJywgNTAwLCAgJzIwMjIt MDItMTAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMywgICdGb3JkJywg ICAgIDIwMDAsICcyMDIyLTA0LTMwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxV RVMgKDQsICAnSXZhbm92JywgICA3NTAsICAnMjAyMi0wNC0xMycpOworSU5TRVJUIElOVE8g c2FsZXNfcmFuZ2UgVkFMVUVTICg1LCAgJ0RlZXYnLCAgICAgMjUwLCAgJzIwMjItMDQtMDcn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNiwgICdQb2lyb3QnLCAgIDE1 MCwgICcyMDIyLTAyLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDcs ICAnTGknLCAgICAgICAxNzUsICAnMjAyMi0wMy0wOCcpOworSU5TRVJUIElOVE8gc2FsZXNf cmFuZ2UgVkFMVUVTICg4LCAgJ0VyaWNzc29uJywgMTg1LCAgJzIwMjItMDItMjMnKTsKK0lO U0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOSwgICdNdWxsZXInLCAgIDI1MCwgICcy MDIyLTAzLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEwLCAnSGFs ZGVyJywgICAzNTAsICAnMjAyMi0wMS0yOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2Ug VkFMVUVTICgxMSwgJ1RydW1wJywgICAgMzgwLCAgJzIwMjItMDQtMDYnKTsKK0lOU0VSVCBJ TlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTIsICdQbGF0bycsICAgIDM1MCwgICcyMDIyLTAz LTE5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEzLCAnR2FuZGknLCAg ICAzNzcsICAnMjAyMi0wMS0wOScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVT ICgxNCwgJ1NtaXRoJywgICAgNTEwLCAgJzIwMjItMDUtMDQnKTsKK1NFTEVDVCAqIEZST00g c2FsZXNfcmFuZ2U7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1v dW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICAxIHwgTWF5ICAgICAgICAgICB8 ICAgICAgICAgMTAwMCB8IDAxLTMxLTIwMjIKKyAgICAgICAgICAxMCB8IEhhbGRlciAgICAg ICAgfCAgICAgICAgICAzNTAgfCAwMS0yOC0yMDIyCisgICAgICAgICAgMTMgfCBHYW5kaSAg ICAgICAgIHwgICAgICAgICAgMzc3IHwgMDEtMDktMjAyMgorICAgICAgICAgICAyIHwgU21p cm5vZmYgICAgICB8ICAgICAgICAgIDUwMCB8IDAyLTEwLTIwMjIKKyAgICAgICAgICAgNiB8 IFBvaXJvdCAgICAgICAgfCAgICAgICAgICAxNTAgfCAwMi0xMS0yMDIyCisgICAgICAgICAg IDggfCBFcmljc3NvbiAgICAgIHwgICAgICAgICAgMTg1IHwgMDItMjMtMjAyMgorICAgICAg ICAgICA3IHwgTGkgICAgICAgICAgICB8ICAgICAgICAgIDE3NSB8IDAzLTA4LTIwMjIKKyAg ICAgICAgICAgOSB8IE11bGxlciAgICAgICAgfCAgICAgICAgICAyNTAgfCAwMy0xMS0yMDIy CisgICAgICAgICAgMTIgfCBQbGF0byAgICAgICAgIHwgICAgICAgICAgMzUwIHwgMDMtMTkt MjAyMgorICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8ICAgICAgICAgIDI1MCB8IDA0 LTA3LTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1wICAgICAgICAgfCAgICAgICAgICAzODAg fCAwNC0wNi0yMDIyCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgICAgICAgICAg NzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAgICAzIHwgRm9yZCAgICAgICAgICB8ICAgICAg ICAgMjAwMCB8IDA0LTMwLTIwMjIKKyAgICAgICAgICAxNCB8IFNtaXRoICAgICAgICAgfCAg ICAgICAgICA1MTAgfCAwNS0wNC0yMDIyCisoMTQgcm93cykKKworU0VMRUNUICogRlJPTSBz YWxlc19hcHIyMDIyOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ft b3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgNSB8IERlZXYgICAgICAgICAg fCAgICAgICAgICAyNTAgfCAwNC0wNy0yMDIyCisgICAgICAgICAgMTEgfCBUcnVtcCAgICAg ICAgIHwgICAgICAgICAgMzgwIHwgMDQtMDYtMjAyMgorICAgICAgICAgICA0IHwgSXZhbm92 ICAgICAgICB8ICAgICAgICAgIDc1MCB8IDA0LTEzLTIwMjIKKyAgICAgICAgICAgMyB8IEZv cmQgICAgICAgICAgfCAgICAgICAgIDIwMDAgfCAwNC0zMC0yMDIyCisoNCByb3dzKQorCitT RUxFQ1QgKiBGUk9NIHNhbGVzX2FwcjIwMjJfMDFfMTA7Cisgc2FsZXNtYW5faWQgfCBzYWxl c21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAg ICA1IHwgRGVldiAgICAgICAgICB8ICAgICAgICAgIDI1MCB8IDA0LTA3LTIwMjIKKyAgICAg ICAgICAxMSB8IFRydW1wICAgICAgICAgfCAgICAgICAgICAzODAgfCAwNC0wNi0yMDIyCiso MiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2FwcjIwMjJfMTBfMjA7Cisgc2FsZXNt YW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorICAgICAgICAgICA0IHwgSXZhbm92ICAgICAgICB8ICAgICAgICAgIDc1MCB8IDA0LTEz LTIwMjIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyXzIwXzMwOwor IHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2Rh dGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyAgICAgICAgICAgMyB8IEZvcmQgICAgICAgICAgfCAgICAgICAgIDIwMDAg fCAwNC0zMC0yMDIyCisoMSByb3cpCisKK0FMVEVSIFRBQkxFIHNhbGVzX2FwcjIwMjIgTUVS R0UgUEFSVElUSU9OUyAoc2FsZXNfYXByMjAyMl8wMV8xMCwgc2FsZXNfYXByMjAyMl8xMF8y MCwgc2FsZXNfYXByMjAyMl8yMF8zMCkgSU5UTyBzYWxlc19hcHJfYWxsOworU0VMRUNUICog RlJPTSBzYWxlc19yYW5nZTsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxl c19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEgfCBNYXkgICAgICAg ICAgIHwgICAgICAgICAxMDAwIHwgMDEtMzEtMjAyMgorICAgICAgICAgIDEwIHwgSGFsZGVy ICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAxLTI4LTIwMjIKKyAgICAgICAgICAxMyB8IEdh bmRpICAgICAgICAgfCAgICAgICAgICAzNzcgfCAwMS0wOS0yMDIyCisgICAgICAgICAgIDIg fCBTbWlybm9mZiAgICAgIHwgICAgICAgICAgNTAwIHwgMDItMTAtMjAyMgorICAgICAgICAg ICA2IHwgUG9pcm90ICAgICAgICB8ICAgICAgICAgIDE1MCB8IDAyLTExLTIwMjIKKyAgICAg ICAgICAgOCB8IEVyaWNzc29uICAgICAgfCAgICAgICAgICAxODUgfCAwMi0yMy0yMDIyCisg ICAgICAgICAgIDcgfCBMaSAgICAgICAgICAgIHwgICAgICAgICAgMTc1IHwgMDMtMDgtMjAy MgorICAgICAgICAgICA5IHwgTXVsbGVyICAgICAgICB8ICAgICAgICAgIDI1MCB8IDAzLTEx LTIwMjIKKyAgICAgICAgICAxMiB8IFBsYXRvICAgICAgICAgfCAgICAgICAgICAzNTAgfCAw My0xOS0yMDIyCisgICAgICAgICAgIDUgfCBEZWV2ICAgICAgICAgIHwgICAgICAgICAgMjUw IHwgMDQtMDctMjAyMgorICAgICAgICAgIDExIHwgVHJ1bXAgICAgICAgICB8ICAgICAgICAg IDM4MCB8IDA0LTA2LTIwMjIKKyAgICAgICAgICAgNCB8IEl2YW5vdiAgICAgICAgfCAgICAg ICAgICA3NTAgfCAwNC0xMy0yMDIyCisgICAgICAgICAgIDMgfCBGb3JkICAgICAgICAgIHwg ICAgICAgICAyMDAwIHwgMDQtMzAtMjAyMgorICAgICAgICAgIDE0IHwgU21pdGggICAgICAg ICB8ICAgICAgICAgIDUxMCB8IDA1LTA0LTIwMjIKKygxNCByb3dzKQorCitTRUxFQ1QgKiBG Uk9NIHNhbGVzX2FwcjIwMjI7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2Fs ZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICA1IHwgRGVldiAgICAg ICAgICB8ICAgICAgICAgIDI1MCB8IDA0LTA3LTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1w ICAgICAgICAgfCAgICAgICAgICAzODAgfCAwNC0wNi0yMDIyCisgICAgICAgICAgIDQgfCBJ dmFub3YgICAgICAgIHwgICAgICAgICAgNzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAgICAz IHwgRm9yZCAgICAgICAgICB8ICAgICAgICAgMjAwMCB8IDA0LTMwLTIwMjIKKyg0IHJvd3Mp CisKK1NFTEVDVCAqIEZST00gc2FsZXNfYXByX2FsbDsKKyBzYWxlc21hbl9pZCB8IHNhbGVz bWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAg IDUgfCBEZWV2ICAgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDQtMDctMjAyMgorICAgICAg ICAgIDExIHwgVHJ1bXAgICAgICAgICB8ICAgICAgICAgIDM4MCB8IDA0LTA2LTIwMjIKKyAg ICAgICAgICAgNCB8IEl2YW5vdiAgICAgICAgfCAgICAgICAgICA3NTAgfCAwNC0xMy0yMDIy CisgICAgICAgICAgIDMgfCBGb3JkICAgICAgICAgIHwgICAgICAgICAyMDAwIHwgMDQtMzAt MjAyMgorKDQgcm93cykKKworRFJPUCBUQUJMRSBzYWxlc19yYW5nZTsKKy0tCistLSBCWSBM SVNUIHBhcnRpdGlvbmluZworLS0KKy0tCistLSBUZXN0OiBzcGVjaWZpYyBlcnJvcnMgZm9y IEJZIExJU1QgcGFydGl0aW9uaW5nCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX2xpc3QKKyhz YWxlc21hbl9pZCBJTlQgR0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSwKKyBzYWxlc21h bl9uYW1lIFZBUkNIQVIoMzApLAorIHNhbGVzX3N0YXRlIFZBUkNIQVIoMjApLAorIHNhbGVz X2Ftb3VudCBJTlQsCisgc2FsZXNfZGF0ZSBEQVRFKQorUEFSVElUSU9OIEJZIExJU1QgKHNh bGVzX3N0YXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19ub3JkIFBBUlRJVElPTiBPRiBzYWxl c19saXN0IEZPUiBWQUxVRVMgSU4gKCdNdXJtYW5zaycsICdTdC4gUGV0ZXJzYnVyZycsICdV a2h0YScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX3dlc3QgUEFSVElUSU9OIE9GIHNhbGVzX2xp c3QgRk9SIFZBTFVFUyBJTiAoJ1Zvcm9uZXpoJywgJ1Ntb2xlbnNrJywgJ0JyeWFuc2snKTsK K0NSRUFURSBUQUJMRSBzYWxlc19lYXN0IFBBUlRJVElPTiBPRiBzYWxlc19saXN0IEZPUiBW QUxVRVMgSU4gKCdNYWdhZGFuJywgJ0toYWJhcm92c2snLCAnVmxhZGl2b3N0b2snKTsKK0NS RUFURSBUQUJMRSBzYWxlc19jZW50cmFsIFBBUlRJVElPTiBPRiBzYWxlc19saXN0IEZPUiBW QUxVRVMgSU4gKCdNb3Njb3cnLCAnS2F6YW4nLCAnVm9sZ29ncmFkJyk7CitDUkVBVEUgVEFC TEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19saXN0IERFRkFVTFQ7CitDUkVB VEUgVEFCTEUgc2FsZXNfbGlzdDIgKExJS0Ugc2FsZXNfbGlzdCkgUEFSVElUSU9OIEJZIExJ U1QgKHNhbGVzX3N0YXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19ub3JkMiBQQVJUSVRJT04g T0Ygc2FsZXNfbGlzdDIgRk9SIFZBTFVFUyBJTiAoJ011cm1hbnNrJywgJ1N0LiBQZXRlcnNi dXJnJywgJ1VraHRhJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzMiBQQVJUSVRJT04g T0Ygc2FsZXNfbGlzdDIgREVGQVVMVDsKK0NSRUFURSBUQUJMRSBzYWxlc19leHRlcm5hbCAo TElLRSBzYWxlc19saXN0KTsKK0NSRUFURSBUQUJMRSBzYWxlc19leHRlcm5hbDIgKHZjaCBW QVJDSEFSKDUpKTsKKy0tIEVSUk9SOiAgcGFydGl0aW9uIGJvdW5kIGZvciByZWxhdGlvbiAi c2FsZXNfZXh0ZXJuYWwiIGlzIG51bGwKK0FMVEVSIFRBQkxFIHNhbGVzX2xpc3QgTUVSR0Ug UEFSVElUSU9OUyAoc2FsZXNfd2VzdCwgc2FsZXNfZWFzdCwgc2FsZXNfZXh0ZXJuYWwpIElO VE8gc2FsZXNfYWxsOworRVJST1I6ICBwYXJ0aXRpb24gYm91bmQgZm9yIHJlbGF0aW9uICJz YWxlc19leHRlcm5hbCIgaXMgbnVsbAorLS0gRVJST1I6ICBwYXJ0aXRpb24gYm91bmQgZm9y IHJlbGF0aW9uICJzYWxlc19leHRlcm5hbDIiIGlzIG51bGwKK0FMVEVSIFRBQkxFIHNhbGVz X2xpc3QgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNfd2VzdCwgc2FsZXNfZWFzdCwgc2FsZXNf ZXh0ZXJuYWwyKSBJTlRPIHNhbGVzX2FsbDsKK0VSUk9SOiAgcGFydGl0aW9uIGJvdW5kIGZv ciByZWxhdGlvbiAic2FsZXNfZXh0ZXJuYWwyIiBpcyBudWxsCistLSBFUlJPUjogIHJlbGF0 aW9uICJzYWxlc19ub3JkMiIgaXMgbm90IGEgcGFydGl0aW9uIG9mIHJlbGF0aW9uICJzYWxl c19saXN0IgorQUxURVIgVEFCTEUgc2FsZXNfbGlzdCBNRVJHRSBQQVJUSVRJT05TIChzYWxl c193ZXN0LCBzYWxlc19ub3JkMiwgc2FsZXNfZWFzdCkgSU5UTyBzYWxlc19hbGw7CitFUlJP UjogIHJlbGF0aW9uICJzYWxlc19ub3JkMiIgaXMgbm90IGEgcGFydGl0aW9uIG9mIHJlbGF0 aW9uICJzYWxlc19saXN0IgorRFJPUCBUQUJMRSBzYWxlc19leHRlcm5hbDI7CitEUk9QIFRB QkxFIHNhbGVzX2V4dGVybmFsOworRFJPUCBUQUJMRSBzYWxlc19saXN0MjsKK0RST1AgVEFC TEUgc2FsZXNfbGlzdDsKKy0tCistLSBUZXN0OiBCWSBMSVNUIHBhcnRpdGlvbmluZywgTUVS R0UgUEFSVElUSU9OUyB3aXRoIGRhdGEKKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNfbGlzdAor KHNhbGVzbWFuX2lkIElOVCBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZLAorIHNhbGVz bWFuX25hbWUgVkFSQ0hBUigzMCksCisgc2FsZXNfc3RhdGUgVkFSQ0hBUigyMCksCisgc2Fs ZXNfYW1vdW50IElOVCwKKyBzYWxlc19kYXRlIERBVEUpCitQQVJUSVRJT04gQlkgTElTVCAo c2FsZXNfc3RhdGUpOworQ1JFQVRFIElOREVYIHNhbGVzX2xpc3Rfc2FsZXNtYW5fbmFtZV9p ZHggT04gc2FsZXNfbGlzdCBVU0lORyBidHJlZSAoc2FsZXNtYW5fbmFtZSk7CitDUkVBVEUg SU5ERVggc2FsZXNfbGlzdF9zYWxlc19zdGF0ZV9pZHggT04gc2FsZXNfbGlzdCBVU0lORyBi dHJlZSAoc2FsZXNfc3RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX25vcmQgUEFSVElUSU9O IE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAoJ011cm1hbnNrJywgJ1N0LiBQZXRlcnNi dXJnJywgJ1VraHRhJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfd2VzdCBQQVJUSVRJT04gT0Yg c2FsZXNfbGlzdCBGT1IgVkFMVUVTIElOICgnVm9yb25lemgnLCAnU21vbGVuc2snLCAnQnJ5 YW5zaycpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2Vhc3QgUEFSVElUSU9OIE9GIHNhbGVzX2xp c3QgRk9SIFZBTFVFUyBJTiAoJ01hZ2FkYW4nLCAnS2hhYmFyb3ZzaycsICdWbGFkaXZvc3Rv aycpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2NlbnRyYWwgUEFSVElUSU9OIE9GIHNhbGVzX2xp c3QgRk9SIFZBTFVFUyBJTiAoJ01vc2NvdycsICdLYXphbicsICdWb2xnb2dyYWQnKTsKK0NS RUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgREVGQVVM VDsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRl LCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ1RydW1wJywgICAgJ01hZ2Fk YW4nLCAgICAgICAgMTAwMCwgJzIwMjItMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xp c3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2Rh dGUpIFZBTFVFUyAoJ1NtaXJub2ZmJywgJ1Ntb2xlbnNrJywgICAgICAgNTAwLCAgJzIwMjIt MDMtMDMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVz X3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ0ZvcmQnLCAgICAg J1N0LiBQZXRlcnNidXJnJywgMjAwMCwgJzIwMjItMDMtMDUnKTsKK0lOU0VSVCBJTlRPIHNh bGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNh bGVzX2RhdGUpIFZBTFVFUyAoJ0l2YW5vdicsICAgJ01vc2NvdycsICAgICAgICAgNzUwLCAg JzIwMjItMDMtMDQnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUs IHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ0RlZXYn LCAgICAgJ1Zvcm9uZXpoJywgICAgICAgMjUwLCAgJzIwMjItMDMtMDcnKTsKK0lOU0VSVCBJ TlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91 bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ1BvaXJvdCcsICAgJ0themFuJywgICAgICAgICAg MTAwMCwgJzIwMjItMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFu X25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAo J01heScsICAgICAgJ1VraHRhJywgICAgICAgICAgMTIwMCwgJzIwMjItMDMtMDYnKTsKK0lO U0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxl c19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ0xpJywgICAgICAgJ1ZsYWRpdm9zdG9r JywgICAgMTE1MCwgJzIwMjItMDMtMDknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNh bGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZB TFVFUyAoJ01heScsICAgICAgJ1VraHRhJywgICAgICAgICAgMTIwMCwgJzIwMjItMDMtMTEn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRl LCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ0hhbGRlcicsICAgJ011cm1h bnNrJywgICAgICAgODAwLCAgJzIwMjItMDMtMDInKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xp c3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2Rh dGUpIFZBTFVFUyAoJ011bGxlcicsICAgJ0JyeWFuc2snLCAgICAgICAgNjUwLCAgJzIwMjIt MDMtMDUnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVz X3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ1NtaXRoJywgICAg J1ZvbGdvZ3JhZCcsICAgICAgMzUwLCAgJzIwMjItMDMtMTAnKTsKK0lOU0VSVCBJTlRPIHNh bGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNh bGVzX2RhdGUpIFZBTFVFUyAoJ0dhbmRpJywgICAgJ01vc2NvdycsICAgICAgICAgMTUwLCAg JzIwMjItMDMtMDgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUs IHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ1BsYXRv JywgICAgJ1Zvcm9uZXpoJywgICAgICAgOTUwLCAgJzIwMjItMDMtMDUnKTsKKy0tIHNob3cg cGFydGl0aW9ucyB3aXRoIGNvbmRpdGlvbnM6CitTRUxFQ1QgYy5vaWQ6OnBnX2NhdGFsb2cu cmVnY2xhc3MsIGMucmVsa2luZCwgaW5oZGV0YWNocGVuZGluZywgcGdfY2F0YWxvZy5wZ19n ZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpCisgIEZST00gcGdfY2F0YWxvZy5wZ19j bGFzcyBjLCBwZ19jYXRhbG9nLnBnX2luaGVyaXRzIGkKKyAgV0hFUkUgYy5vaWQgPSBpLmlu aHJlbGlkIEFORCBpLmluaHBhcmVudCA9ICdzYWxlc19saXN0Jzo6cmVnY2xhc3MKKyAgT1JE RVIgQlkgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpID0g J0RFRkFVTFQnLCBjLm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFzczo6cGdfY2F0YWxvZy50ZXh0 OworICAgICAgb2lkICAgICAgfCByZWxraW5kIHwgaW5oZGV0YWNocGVuZGluZyB8ICAgICAg ICAgICAgICAgICAgICAgIHBnX2dldF9leHByICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgc2FsZXNf Y2VudHJhbCB8IHIgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgRk9SIFZBTFVFUyBJTiAo J01vc2NvdycsICdLYXphbicsICdWb2xnb2dyYWQnKQorIHNhbGVzX2Vhc3QgICAgfCByICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IEZPUiBWQUxVRVMgSU4gKCdNYWdhZGFuJywgJ0to YWJhcm92c2snLCAnVmxhZGl2b3N0b2snKQorIHNhbGVzX25vcmQgICAgfCByICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IEZPUiBWQUxVRVMgSU4gKCdNdXJtYW5zaycsICdTdC4gUGV0 ZXJzYnVyZycsICdVa2h0YScpCisgc2FsZXNfd2VzdCAgICB8IHIgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgRk9SIFZBTFVFUyBJTiAoJ1Zvcm9uZXpoJywgJ1Ntb2xlbnNrJywgJ0Jy eWFuc2snKQorIHNhbGVzX290aGVycyAgfCByICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IERFRkFVTFQKKyg1IHJvd3MpCisKK0FMVEVSIFRBQkxFIHNhbGVzX2xpc3QgTUVSR0UgUEFS VElUSU9OUyAoc2FsZXNfd2VzdCwgc2FsZXNfZWFzdCwgc2FsZXNfY2VudHJhbCkgSU5UTyBz YWxlc19hbGw7CistLSBzaG93IHBhcnRpdGlvbnMgd2l0aCBjb25kaXRpb25zOgorU0VMRUNU IGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzLCBjLnJlbGtpbmQsIGluaGRldGFjaHBlbmRp bmcsIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKQorICBG Uk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYywgcGdfY2F0YWxvZy5wZ19pbmhlcml0cyBpCisg IFdIRVJFIGMub2lkID0gaS5pbmhyZWxpZCBBTkQgaS5pbmhwYXJlbnQgPSAnc2FsZXNfbGlz dCc6OnJlZ2NsYXNzCisgIE9SREVSIEJZIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxw YXJ0Ym91bmQsIGMub2lkKSA9ICdERUZBVUxUJywgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xh c3M6OnBnX2NhdGFsb2cudGV4dDsKKyAgICAgb2lkICAgICAgfCByZWxraW5kIHwgaW5oZGV0 YWNocGVuZGluZyB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwZ19nZXRfZXhwciAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHNhbGVzX2FsbCAgICB8IHIg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgRk9SIFZBTFVFUyBJTiAoJ1Zvcm9uZXpoJywg J1Ntb2xlbnNrJywgJ0JyeWFuc2snLCAnTWFnYWRhbicsICdLaGFiYXJvdnNrJywgJ1ZsYWRp dm9zdG9rJywgJ01vc2NvdycsICdLYXphbicsICdWb2xnb2dyYWQnKQorIHNhbGVzX25vcmQg ICB8IHIgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgRk9SIFZBTFVFUyBJTiAoJ011cm1h bnNrJywgJ1N0LiBQZXRlcnNidXJnJywgJ1VraHRhJykKKyBzYWxlc19vdGhlcnMgfCByICAg ICAgIHwgZiAgICAgICAgICAgICAgICB8IERFRkFVTFQKKygzIHJvd3MpCisKK1NFTEVDVCAq IEZST00gc2FsZXNfbGlzdDsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCAgc2Fs ZXNfc3RhdGUgICB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorICAgICAgICAgICAyIHwgU21pcm5vZmYgICAgICB8IFNtb2xlbnNrICAgICAg IHwgICAgICAgICAgNTAwIHwgMDMtMDMtMjAyMgorICAgICAgICAgICA1IHwgRGVldiAgICAg ICAgICB8IFZvcm9uZXpoICAgICAgIHwgICAgICAgICAgMjUwIHwgMDMtMDctMjAyMgorICAg ICAgICAgIDExIHwgTXVsbGVyICAgICAgICB8IEJyeWFuc2sgICAgICAgIHwgICAgICAgICAg NjUwIHwgMDMtMDUtMjAyMgorICAgICAgICAgIDE0IHwgUGxhdG8gICAgICAgICB8IFZvcm9u ZXpoICAgICAgIHwgICAgICAgICAgOTUwIHwgMDMtMDUtMjAyMgorICAgICAgICAgICAxIHwg VHJ1bXAgICAgICAgICB8IE1hZ2FkYW4gICAgICAgIHwgICAgICAgICAxMDAwIHwgMDMtMDEt MjAyMgorICAgICAgICAgICA4IHwgTGkgICAgICAgICAgICB8IFZsYWRpdm9zdG9rICAgIHwg ICAgICAgICAxMTUwIHwgMDMtMDktMjAyMgorICAgICAgICAgICA0IHwgSXZhbm92ICAgICAg ICB8IE1vc2NvdyAgICAgICAgIHwgICAgICAgICAgNzUwIHwgMDMtMDQtMjAyMgorICAgICAg ICAgICA2IHwgUG9pcm90ICAgICAgICB8IEthemFuICAgICAgICAgIHwgICAgICAgICAxMDAw IHwgMDMtMDEtMjAyMgorICAgICAgICAgIDEyIHwgU21pdGggICAgICAgICB8IFZvbGdvZ3Jh ZCAgICAgIHwgICAgICAgICAgMzUwIHwgMDMtMTAtMjAyMgorICAgICAgICAgIDEzIHwgR2Fu ZGkgICAgICAgICB8IE1vc2NvdyAgICAgICAgIHwgICAgICAgICAgMTUwIHwgMDMtMDgtMjAy MgorICAgICAgICAgICAzIHwgRm9yZCAgICAgICAgICB8IFN0LiBQZXRlcnNidXJnIHwgICAg ICAgICAyMDAwIHwgMDMtMDUtMjAyMgorICAgICAgICAgICA3IHwgTWF5ICAgICAgICAgICB8 IFVraHRhICAgICAgICAgIHwgICAgICAgICAxMjAwIHwgMDMtMDYtMjAyMgorICAgICAgICAg ICA5IHwgTWF5ICAgICAgICAgICB8IFVraHRhICAgICAgICAgIHwgICAgICAgICAxMjAwIHwg MDMtMTEtMjAyMgorICAgICAgICAgIDEwIHwgSGFsZGVyICAgICAgICB8IE11cm1hbnNrICAg ICAgIHwgICAgICAgICAgODAwIHwgMDMtMDItMjAyMgorKDE0IHJvd3MpCisKK1NFTEVDVCAq IEZST00gc2FsZXNfbm9yZDsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCAgc2Fs ZXNfc3RhdGUgICB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorICAgICAgICAgICAzIHwgRm9yZCAgICAgICAgICB8IFN0LiBQZXRlcnNidXJn IHwgICAgICAgICAyMDAwIHwgMDMtMDUtMjAyMgorICAgICAgICAgICA3IHwgTWF5ICAgICAg ICAgICB8IFVraHRhICAgICAgICAgIHwgICAgICAgICAxMjAwIHwgMDMtMDYtMjAyMgorICAg ICAgICAgICA5IHwgTWF5ICAgICAgICAgICB8IFVraHRhICAgICAgICAgIHwgICAgICAgICAx MjAwIHwgMDMtMTEtMjAyMgorICAgICAgICAgIDEwIHwgSGFsZGVyICAgICAgICB8IE11cm1h bnNrICAgICAgIHwgICAgICAgICAgODAwIHwgMDMtMDItMjAyMgorKDQgcm93cykKKworU0VM RUNUICogRlJPTSBzYWxlc19hbGw7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwg c2FsZXNfc3RhdGUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyAgICAgICAgICAgMiB8IFNtaXJub2ZmICAgICAgfCBTbW9sZW5zayAgICB8ICAg ICAgICAgIDUwMCB8IDAzLTAzLTIwMjIKKyAgICAgICAgICAgNSB8IERlZXYgICAgICAgICAg fCBWb3JvbmV6aCAgICB8ICAgICAgICAgIDI1MCB8IDAzLTA3LTIwMjIKKyAgICAgICAgICAx MSB8IE11bGxlciAgICAgICAgfCBCcnlhbnNrICAgICB8ICAgICAgICAgIDY1MCB8IDAzLTA1 LTIwMjIKKyAgICAgICAgICAxNCB8IFBsYXRvICAgICAgICAgfCBWb3JvbmV6aCAgICB8ICAg ICAgICAgIDk1MCB8IDAzLTA1LTIwMjIKKyAgICAgICAgICAgMSB8IFRydW1wICAgICAgICAg fCBNYWdhZGFuICAgICB8ICAgICAgICAgMTAwMCB8IDAzLTAxLTIwMjIKKyAgICAgICAgICAg OCB8IExpICAgICAgICAgICAgfCBWbGFkaXZvc3RvayB8ICAgICAgICAgMTE1MCB8IDAzLTA5 LTIwMjIKKyAgICAgICAgICAgNCB8IEl2YW5vdiAgICAgICAgfCBNb3Njb3cgICAgICB8ICAg ICAgICAgIDc1MCB8IDAzLTA0LTIwMjIKKyAgICAgICAgICAgNiB8IFBvaXJvdCAgICAgICAg fCBLYXphbiAgICAgICB8ICAgICAgICAgMTAwMCB8IDAzLTAxLTIwMjIKKyAgICAgICAgICAx MiB8IFNtaXRoICAgICAgICAgfCBWb2xnb2dyYWQgICB8ICAgICAgICAgIDM1MCB8IDAzLTEw LTIwMjIKKyAgICAgICAgICAxMyB8IEdhbmRpICAgICAgICAgfCBNb3Njb3cgICAgICB8ICAg ICAgICAgIDE1MCB8IDAzLTA4LTIwMjIKKygxMCByb3dzKQorCistLSBVc2UgaW5kZXhzY2Fu IGZvciB0ZXN0IGluZGV4ZXMgYWZ0ZXIgbWVyZ2UgcGFydGl0aW9ucworU0VUIGVuYWJsZV9p bmRleHNjYW4gPSBPTjsKK1NFVCBlbmFibGVfc2Vxc2NhbiA9IE9GRjsKK1NFTEVDVCAqIEZS T00gc2FsZXNfYWxsIFdIRVJFIHNhbGVzX3N0YXRlID0gJ01vc2Nvdyc7Cisgc2FsZXNtYW5f aWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfc3RhdGUgfCBzYWxlc19hbW91bnQgfCBzYWxl c19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgNCB8IEl2YW5vdiAgICAg ICAgfCBNb3Njb3cgICAgICB8ICAgICAgICAgIDc1MCB8IDAzLTA0LTIwMjIKKyAgICAgICAg ICAxMyB8IEdhbmRpICAgICAgICAgfCBNb3Njb3cgICAgICB8ICAgICAgICAgIDE1MCB8IDAz LTA4LTIwMjIKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfbGlzdCBXSEVSRSBz YWxlc19zdGF0ZSA9ICdNb3Njb3cnOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8 IHNhbGVzX3N0YXRlIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgTW9zY293ICAgICAgfCAg ICAgICAgICA3NTAgfCAwMy0wNC0yMDIyCisgICAgICAgICAgMTMgfCBHYW5kaSAgICAgICAg IHwgTW9zY293ICAgICAgfCAgICAgICAgICAxNTAgfCAwMy0wOC0yMDIyCisoMiByb3dzKQor CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2xpc3QgV0hFUkUgc2FsZXNtYW5fbmFtZSA9ICdJdmFu b3YnOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX3N0YXRlIHwgc2Fs ZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAg IDQgfCBJdmFub3YgICAgICAgIHwgTW9zY293ICAgICAgfCAgICAgICAgICA3NTAgfCAwMy0w NC0yMDIyCisoMSByb3cpCisKK1NFVCBlbmFibGVfaW5kZXhzY2FuID0gT047CitTRVQgZW5h YmxlX3NlcXNjYW4gPSBPTjsKK0RST1AgVEFCTEUgc2FsZXNfbGlzdDsKKy0tCitEUk9QIFND SEVNQSBwYXJ0aXRpb25zX21lcmdlX3NjaGVtYTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3Nj aGVkdWxlCmluZGV4IDlmNjQ0YTBjMWIuLjUxNTNjOTIzYmYgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZQpAQCAtMTI3LDcgKzEyNyw3IEBAIHRlc3Q6IHBsYW5jYWNoZSBs aW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJlcGFyZSBjb252 ZXJzaW9uIHRyCiAjIFRoZSBzdGF0cyB0ZXN0IHJlc2V0cyBzdGF0cywgc28gbm90aGluZyBl bHNlIG5lZWRpbmcgc3RhdHMgYWNjZXNzIGNhbiBiZSBpbgogIyB0aGlzIGdyb3VwLgogIyAt LS0tLS0tLS0tCi10ZXN0OiBwYXJ0aXRpb25fam9pbiBwYXJ0aXRpb25fcHJ1bmUgcmVsb3B0 aW9ucyBoYXNoX3BhcnQgaW5kZXhpbmcgcGFydGl0aW9uX2FnZ3JlZ2F0ZSBwYXJ0aXRpb25f aW5mbyB0dXBsZXNvcnQgZXhwbGFpbiBjb21wcmVzc2lvbiBtZW1vaXplIHN0YXRzCit0ZXN0 OiBwYXJ0aXRpb25fbWVyZ2UgcGFydGl0aW9uX2pvaW4gcGFydGl0aW9uX3BydW5lIHJlbG9w dGlvbnMgaGFzaF9wYXJ0IGluZGV4aW5nIHBhcnRpdGlvbl9hZ2dyZWdhdGUgcGFydGl0aW9u X2luZm8gdHVwbGVzb3J0IGV4cGxhaW4gY29tcHJlc3Npb24gbWVtb2l6ZSBzdGF0cwogCiAj IGV2ZW50X3RyaWdnZXIgY2Fubm90IHJ1biBjb25jdXJyZW50bHkgd2l0aCBhbnkgdGVzdCB0 aGF0IHJ1bnMgRERMCiAjIG9pZGpvaW5zIGlzIHJlYWQtb25seSwgdGhvdWdoLCBhbmQgc2hv dWxkIHJ1biBsYXRlIGZvciBiZXN0IGNvdmVyYWdlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wYXJ0aXRpb25fbWVyZ2Uuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cGFydGl0aW9uX21lcmdlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi44YmY5MGZkNjIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcGFydGl0aW9uX21lcmdlLnNxbApAQCAtMCwwICsxLDQzNCBAQAorLS0KKy0tIFBBUlRJ VElPTlNfTUVSR0UKKy0tIFRlc3RzIGZvciAiQUxURVIgVEFCTEUgLi4uIE1FUkdFIFBBUlRJ VElPTlMgLi4uIiBjb21tYW5kCistLQorCitDUkVBVEUgU0NIRU1BIHBhcnRpdGlvbnNfbWVy Z2Vfc2NoZW1hOworU0VUIHNlYXJjaF9wYXRoID0gcGFydGl0aW9uc19tZXJnZV9zY2hlbWEs IHB1YmxpYzsKKworLS0KKy0tIEJZIFJBTkdFIHBhcnRpdGlvbmluZworLS0KKworLS0KKy0t IFRlc3QgZm9yIGVycm9yIGNvZGVzCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlIChz YWxlc21hbl9pZCBJTlQsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCksIHNhbGVzX2Ftb3Vu dCBJTlQsIHNhbGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19kYXRl KTsKK0NSRUFURSBUQUJMRSBzYWxlc19kZWMyMDIxIFBBUlRJVElPTiBPRiBzYWxlc19yYW5n ZSBGT1IgVkFMVUVTIEZST00gKCcyMDIxLTEyLTAxJykgVE8gKCcyMDIxLTEyLTMxJyk7CitD UkVBVEUgVEFCTEUgc2FsZXNfamFuMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9S IFZBTFVFUyBGUk9NICgnMjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMi0wMScpOworQ1JFQVRF IFRBQkxFIHNhbGVzX2ZlYjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxV RVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKTsKK0NSRUFURSBUQUJM RSBzYWxlc19tYXIyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZS T00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIyLTA0LTAxJyk7CisKK0NSRUFURSBUQUJMRSBz YWxlc19hcHIyMDIyIChzYWxlc21hbl9pZCBJTlQsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigz MCksIHNhbGVzX2Ftb3VudCBJTlQsIHNhbGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJB TkdFIChzYWxlc19kYXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19hcHJfMSBQQVJUSVRJT04g T0Ygc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcy MDIyLTA0LTE1Jyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfYXByXzIgUEFSVElUSU9OIE9GIHNh bGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0xNScpIFRPICgnMjAyMi0w NS0wMScpOworQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgQVRUQUNIIFBBUlRJVElPTiBzYWxl c19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUt MDEnKTsKKworQ1JFQVRFIFRBQkxFIHNhbGVzX290aGVycyBQQVJUSVRJT04gT0Ygc2FsZXNf cmFuZ2UgREVGQVVMVDsKKworLS0gRVJST1I6ICBwYXJ0aXRpb24gd2l0aCBuYW1lICJzYWxl c19mZWIyMDIyIiBhbHJlYWR5IHVzZWQKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIE1FUkdF IFBBUlRJVElPTlMgKHNhbGVzX2ZlYjIwMjIsIHNhbGVzX21hcjIwMjIsIHNhbGVzX2ZlYjIw MjIpIElOVE8gc2FsZXNfZmViX21hcl9hcHIyMDIyOworLS0gRVJST1I6ICBjYW5ub3QgbWVy Z2Ugbm9uLXRhYmxlIHBhcnRpdGlvbiAic2FsZXNfYXByMjAyMiIKK0FMVEVSIFRBQkxFIHNh bGVzX3JhbmdlIE1FUkdFIFBBUlRJVElPTlMgKHNhbGVzX2ZlYjIwMjIsIHNhbGVzX21hcjIw MjIsIHNhbGVzX2FwcjIwMjIpIElOVE8gc2FsZXNfZmViX21hcl9hcHIyMDIyOworLS0gRVJS T1I6ICBpbnZhbGlkIHBhcnRpdGlvbnMgb3JkZXIsIHBhcnRpdGlvbiAic2FsZXNfbWFyMjAy MiIgY2FuIG5vdCBiZSBtZXJnZWQKKy0tIChzcGFjZSBiZXR3ZWVuIHNlY3Rpb25zIHNhbGVz X2phbjIwMjIgYW5kIHNhbGVzX21hcjIwMjIpCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBN RVJHRSBQQVJUSVRJT05TIChzYWxlc19qYW4yMDIyLCBzYWxlc19tYXIyMDIyKSBJTlRPIHNh bGVzX2phbl9tYXIyMDIyOworLS0gRVJST1I6ICBpbnZhbGlkIHBhcnRpdGlvbnMgb3JkZXIs IHBhcnRpdGlvbiAic2FsZXNfamFuMjAyMiIgY2FuIG5vdCBiZSBtZXJnZWQKKy0tIChzcGFj ZSBiZXR3ZWVuIHNlY3Rpb25zIHNhbGVzX2RlYzIwMjEgYW5kIHNhbGVzX2phbjIwMjIpCitB TFRFUiBUQUJMRSBzYWxlc19yYW5nZSBNRVJHRSBQQVJUSVRJT05TIChzYWxlc19kZWMyMDIx LCBzYWxlc19qYW4yMDIyLCBzYWxlc19mZWIyMDIyKSBJTlRPIHNhbGVzX2RlY19qYW5fZmVi MjAyMjsKKworLS0gTk8gRVJST1I6IHRlc3QgZm9yIGN1c3RvbSBwYXJ0aXRpb25zIG9yZGVy CitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBNRVJHRSBQQVJUSVRJT05TIChzYWxlc19mZWIy MDIyLCBzYWxlc19tYXIyMDIyLCBzYWxlc19qYW4yMDIyKSBJTlRPIHNhbGVzX2phbl9mZWJf bWFyMjAyMjsKKworU0VMRUNUIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNzLCBjLnJlbGtp bmQsIGluaGRldGFjaHBlbmRpbmcsIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0 Ym91bmQsIGMub2lkKQorICBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYywgcGdfY2F0YWxv Zy5wZ19pbmhlcml0cyBpCisgIFdIRVJFIGMub2lkID0gaS5pbmhyZWxpZCBBTkQgaS5pbmhw YXJlbnQgPSAnc2FsZXNfcmFuZ2UnOjpyZWdjbGFzcworICBPUkRFUiBCWSBwZ19jYXRhbG9n LnBnX2dldF9leHByKGMucmVscGFydGJvdW5kLCBjLm9pZCkgPSAnREVGQVVMVCcsIGMub2lk OjpwZ19jYXRhbG9nLnJlZ2NsYXNzOjpwZ19jYXRhbG9nLnRleHQ7CisKK0RST1AgVEFCTEUg c2FsZXNfcmFuZ2U7CisKKy0tCistLSBBZGQgcm93cyBpbnRvIHBhcnRpdGlvbmVkIHRhYmxl IHRoZW4gbWVyZ2UgcGFydGl0aW9ucworLS0KK0NSRUFURSBUQUJMRSBzYWxlc19yYW5nZSAo c2FsZXNtYW5faWQgSU5ULCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91 bnQgSU5ULCBzYWxlc19kYXRlIERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0 ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfamFuMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFu Z2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMi0wMScpOwor Q1JFQVRFIFRBQkxFIHNhbGVzX2ZlYjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZP UiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKTsKK0NSRUFU RSBUQUJMRSBzYWxlc19tYXIyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIyLTA0LTAxJyk7CitDUkVBVEUgVEFC TEUgc2FsZXNfYXByMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBG Uk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpOworQ1JFQVRFIFRBQkxFIHNh bGVzX290aGVycyBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgREVGQVVMVDsKK0NSRUFURSBJ TkRFWCBzYWxlc19yYW5nZV9zYWxlc19kYXRlX2lkeCBPTiBzYWxlc19yYW5nZSBVU0lORyBi dHJlZSAoc2FsZXNfZGF0ZSk7CisKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAo MSwgICdNYXknLCAgICAgIDEwMDAsICcyMDIyLTAxLTMxJyk7CitJTlNFUlQgSU5UTyBzYWxl c19yYW5nZSBWQUxVRVMgKDIsICAnU21pcm5vZmYnLCA1MDAsICAnMjAyMi0wMi0xMCcpOwor SU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgzLCAgJ0ZvcmQnLCAgICAgMjAwMCwg JzIwMjItMDQtMzAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNCwgICdJ dmFub3YnLCAgIDc1MCwgICcyMDIyLTA0LTEzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5n ZSBWQUxVRVMgKDUsICAnRGVldicsICAgICAyNTAsICAnMjAyMi0wNC0wNycpOworSU5TRVJU IElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg2LCAgJ1BvaXJvdCcsICAgMTUwLCAgJzIwMjIt MDItMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNywgICdMaScsICAg ICAgIDE3NSwgICcyMDIyLTAzLTA4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxV RVMgKDgsICAnRXJpY3Nzb24nLCAxODUsICAnMjAyMi0wMi0yMycpOworSU5TRVJUIElOVE8g c2FsZXNfcmFuZ2UgVkFMVUVTICg5LCAgJ011bGxlcicsICAgMjUwLCAgJzIwMjItMDMtMTEn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTAsICdIYWxkZXInLCAgIDM1 MCwgICcyMDIyLTAxLTI4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEx LCAnVHJ1bXAnLCAgICAzODAsICAnMjAyMi0wNC0wNicpOworSU5TRVJUIElOVE8gc2FsZXNf cmFuZ2UgVkFMVUVTICgxMiwgJ1BsYXRvJywgICAgMzUwLCAgJzIwMjItMDMtMTknKTsKK0lO U0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTMsICdHYW5kaScsICAgIDM3NywgICcy MDIyLTAxLTA5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDE0LCAnU21p dGgnLCAgICA1MTAsICAnMjAyMi0wNS0wNCcpOworCitTRUxFQ1QgcGdfY2F0YWxvZy5wZ19n ZXRfcGFydGtleWRlZignc2FsZXNfcmFuZ2UnOjpyZWdjbGFzcyk7CisKKy0tIHNob3cgcGFy dGl0aW9ucyB3aXRoIGNvbmRpdGlvbnM6CitTRUxFQ1QgYy5vaWQ6OnBnX2NhdGFsb2cucmVn Y2xhc3MsIGMucmVsa2luZCwgaW5oZGV0YWNocGVuZGluZywgcGdfY2F0YWxvZy5wZ19nZXRf ZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpCisgIEZST00gcGdfY2F0YWxvZy5wZ19jbGFz cyBjLCBwZ19jYXRhbG9nLnBnX2luaGVyaXRzIGkKKyAgV0hFUkUgYy5vaWQgPSBpLmluaHJl bGlkIEFORCBpLmluaHBhcmVudCA9ICdzYWxlc19yYW5nZSc6OnJlZ2NsYXNzCisgIE9SREVS IEJZIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKSA9ICdE RUZBVUxUJywgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3M6OnBnX2NhdGFsb2cudGV4dDsK KworQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNfZmVi MjAyMiwgc2FsZXNfbWFyMjAyMiwgc2FsZXNfYXByMjAyMikgSU5UTyBzYWxlc19mZWJfbWFy X2FwcjIwMjI7CisKKy0tIHNob3cgcGFydGl0aW9ucyB3aXRoIGNvbmRpdGlvbnM6CitTRUxF Q1QgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3MsIGMucmVsa2luZCwgaW5oZGV0YWNocGVu ZGluZywgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpCisg IEZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjLCBwZ19jYXRhbG9nLnBnX2luaGVyaXRzIGkK KyAgV0hFUkUgYy5vaWQgPSBpLmluaHJlbGlkIEFORCBpLmluaHBhcmVudCA9ICdzYWxlc19y YW5nZSc6OnJlZ2NsYXNzCisgIE9SREVSIEJZIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5y ZWxwYXJ0Ym91bmQsIGMub2lkKSA9ICdERUZBVUxUJywgYy5vaWQ6OnBnX2NhdGFsb2cucmVn Y2xhc3M6OnBnX2NhdGFsb2cudGV4dDsKKworU0VMRUNUICogRlJPTSBwZ19pbmRleGVzIFdI RVJFIHRhYmxlbmFtZSA9ICdzYWxlc19mZWJfbWFyX2FwcjIwMjInIGFuZCBzY2hlbWFuYW1l ID0gJ3BhcnRpdGlvbnNfbWVyZ2Vfc2NoZW1hJzsKKworU0VMRUNUICogRlJPTSBzYWxlc19y YW5nZTsKK1NFTEVDVCAqIEZST00gc2FsZXNfamFuMjAyMjsKK1NFTEVDVCAqIEZST00gc2Fs ZXNfZmViX21hcl9hcHIyMDIyOworU0VMRUNUICogRlJPTSBzYWxlc19vdGhlcnM7CisKKy0t IFVzZSBpbmRleHNjYW4gZm9yIHRlc3QgaW5kZXhlcworU0VUIGVuYWJsZV9pbmRleHNjYW4g PSBPTjsKK1NFVCBlbmFibGVfc2Vxc2NhbiA9IE9GRjsKKworU0VMRUNUICogRlJPTSBzYWxl c19mZWJfbWFyX2FwcjIwMjIgd2hlcmUgc2FsZXNfZGF0ZSA+ICcyMDIyLTAxLTAxJzsKKwor U0VUIGVuYWJsZV9pbmRleHNjYW4gPSBPTjsKK1NFVCBlbmFibGVfc2Vxc2NhbiA9IE9OOwor CitEUk9QIFRBQkxFIHNhbGVzX3JhbmdlOworCistLQorLS0gTWVyZ2Ugc29tZSBwYXJ0aXRp b25zIGludG8gREVGQVVMVCBwYXJ0aXRpb24KKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNfcmFu Z2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNf YW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVz X2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIwMjIgUEFSVElUSU9OIE9GIHNhbGVz X3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEnKSBUTyAoJzIwMjItMDItMDEn KTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWIyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5n ZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTAzLTAxJyk7CitD UkVBVEUgVEFCTEUgc2FsZXNfbWFyMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9S IFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScpOworQ1JFQVRF IFRBQkxFIHNhbGVzX2FwcjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxV RVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKTsKK0NSRUFURSBUQUJM RSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIERFRkFVTFQ7CitDUkVB VEUgSU5ERVggc2FsZXNfcmFuZ2Vfc2FsZXNfZGF0ZV9pZHggT04gc2FsZXNfcmFuZ2UgVVNJ TkcgYnRyZWUgKHNhbGVzX2RhdGUpOworCitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxV RVMgKDEsICAnTWF5JywgICAgICAxMDAwLCAnMjAyMi0wMS0zMScpOworSU5TRVJUIElOVE8g c2FsZXNfcmFuZ2UgVkFMVUVTICgyLCAgJ1NtaXJub2ZmJywgNTAwLCAgJzIwMjItMDItMTAn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMywgICdGb3JkJywgICAgIDIw MDAsICcyMDIyLTA0LTMwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDQs ICAnSXZhbm92JywgICA3NTAsICAnMjAyMi0wNC0xMycpOworSU5TRVJUIElOVE8gc2FsZXNf cmFuZ2UgVkFMVUVTICg1LCAgJ0RlZXYnLCAgICAgMjUwLCAgJzIwMjItMDQtMDcnKTsKK0lO U0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNiwgICdQb2lyb3QnLCAgIDE1MCwgICcy MDIyLTAyLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDcsICAnTGkn LCAgICAgICAxNzUsICAnMjAyMi0wMy0wOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2Ug VkFMVUVTICg4LCAgJ0VyaWNzc29uJywgMTg1LCAgJzIwMjItMDItMjMnKTsKK0lOU0VSVCBJ TlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOSwgICdNdWxsZXInLCAgIDI1MCwgICcyMDIyLTAz LTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEwLCAnSGFsZGVyJywg ICAzNTAsICAnMjAyMi0wMS0yOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVT ICgxMSwgJ1RydW1wJywgICAgMzgwLCAgJzIwMjItMDQtMDYnKTsKK0lOU0VSVCBJTlRPIHNh bGVzX3JhbmdlIFZBTFVFUyAoMTIsICdQbGF0bycsICAgIDM1MCwgICcyMDIyLTAzLTE5Jyk7 CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEzLCAnR2FuZGknLCAgICAzNzcs ICAnMjAyMi0wMS0wOScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxNCwg J1NtaXRoJywgICAgNTEwLCAgJzIwMjItMDUtMDQnKTsKKworLS0gTWVyZ2UgcGFydGl0aW9u cyAoaW5jbHVkZSBERUZBVUxUIHBhcnRpdGlvbikgaW50byBwYXJ0aXRpb24gd2l0aCB0aGUg c2FtZQorLS0gbmFtZQorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgTUVSR0UgUEFSVElUSU9O UyAoc2FsZXNfamFuMjAyMiwgc2FsZXNfbWFyMjAyMiwgc2FsZXNfb3RoZXJzKSBJTlRPIHNh bGVzX290aGVyczsKKworc2VsZWN0ICogZnJvbSBzYWxlc19vdGhlcnM7CisKKy0tIHNob3cg cGFydGl0aW9ucyB3aXRoIGNvbmRpdGlvbnM6CitTRUxFQ1QgYy5vaWQ6OnBnX2NhdGFsb2cu cmVnY2xhc3MsIGMucmVsa2luZCwgaW5oZGV0YWNocGVuZGluZywgcGdfY2F0YWxvZy5wZ19n ZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpCisgIEZST00gcGdfY2F0YWxvZy5wZ19j bGFzcyBjLCBwZ19jYXRhbG9nLnBnX2luaGVyaXRzIGkKKyAgV0hFUkUgYy5vaWQgPSBpLmlu aHJlbGlkIEFORCBpLmluaHBhcmVudCA9ICdzYWxlc19yYW5nZSc6OnJlZ2NsYXNzCisgIE9S REVSIEJZIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKSA9 ICdERUZBVUxUJywgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3M6OnBnX2NhdGFsb2cudGV4 dDsKKworRFJPUCBUQUJMRSBzYWxlc19yYW5nZTsKKworLS0KKy0tIFRlc3QgZm9yOgorLS0g ICAqIGNvbXBvc2l0ZSBwYXJ0aXRpb24ga2V5OworLS0gICAqIEdFTkVSQVRFRCBjb2x1bW47 CistLSAgICogY29sdW1uIHdpdGggREVGQVVMVCB2YWx1ZS4KKy0tCitDUkVBVEUgVEFCTEUg c2FsZXNfZGF0ZSAoc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNfeWVhciBJTlQs IHNhbGVzX21vbnRoIElOVCwgc2FsZXNfZGF5IElOVCwKKyAgc2FsZXNfZGF0ZSBWQVJDSEFS KDEwKSBHRU5FUkFURUQgQUxXQVlTIEFTCisgICAgKExQQUQoc2FsZXNfeWVhcjo6dGV4dCwg NCwgJzAnKSB8fCAnLicgfHwgTFBBRChzYWxlc19tb250aDo6dGV4dCwgMiwgJzAnKSB8fCAn LicgfHwgTFBBRChzYWxlc19kYXk6OnRleHQsIDIsICcwJykpIFNUT1JFRCwKKyAgc2FsZXNf ZGVwYXJ0bWVudCBWQVJDSEFSKDMwKSBERUZBVUxUICdTYWxlcyBkZXBhcnRtZW50JykKKyAg UEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5 KTsKKworQ1JFQVRFIFRBQkxFIHNhbGVzX2RlYzIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX2Rh dGUgRk9SIFZBTFVFUyBGUk9NICgyMDIxLCAxMiwgMSkgVE8gKDIwMjIsIDEsIDEpOworQ1JF QVRFIFRBQkxFIHNhbGVzX2phbjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX2RhdGUgRk9SIFZB TFVFUyBGUk9NICgyMDIyLCAxLCAxKSBUTyAoMjAyMiwgMiwgMSk7CitDUkVBVEUgVEFCTEUg c2FsZXNfZmViMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfZGF0ZSBGT1IgVkFMVUVTIEZST00g KDIwMjIsIDIsIDEpIFRPICgyMDIyLCAzLCAxKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhl ciBQQVJUSVRJT04gT0Ygc2FsZXNfZGF0ZSBGT1IgVkFMVUVTIEZST00gKDIwMjIsIDMsIDEp IFRPIChNQVhWQUxVRSwgTUFYVkFMVUUsIE1BWFZBTFVFKTsKKworSU5TRVJUIElOVE8gc2Fs ZXNfZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNf ZGF5KSBWQUxVRVMgKCdNYW5hZ2VyMScsIDIwMjEsIDEyLCA3KTsKK0lOU0VSVCBJTlRPIHNh bGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVz X2RheSkgVkFMVUVTICgnTWFuYWdlcjInLCAyMDIxLCAxMiwgOCk7CitJTlNFUlQgSU5UTyBz YWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxl c19kYXkpIFZBTFVFUyAoJ01hbmFnZXIzJywgMjAyMiwgMSwgMSk7CitJTlNFUlQgSU5UTyBz YWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxl c19kYXkpIFZBTFVFUyAoJ01hbmFnZXIxJywgMjAyMiwgMiwgNCk7CitJTlNFUlQgSU5UTyBz YWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxl c19kYXkpIFZBTFVFUyAoJ01hbmFnZXIyJywgMjAyMiwgMSwgMik7CitJTlNFUlQgSU5UTyBz YWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxl c19kYXkpIFZBTFVFUyAoJ01hbmFnZXIzJywgMjAyMiwgMiwgMSk7CitJTlNFUlQgSU5UTyBz YWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxl c19kYXkpIFZBTFVFUyAoJ01hbmFnZXIxJywgMjAyMiwgMywgMyk7CitJTlNFUlQgSU5UTyBz YWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxl c19kYXkpIFZBTFVFUyAoJ01hbmFnZXIyJywgMjAyMiwgMywgNCk7CitJTlNFUlQgSU5UTyBz YWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxl c19kYXkpIFZBTFVFUyAoJ01hbmFnZXIzJywgMjAyMiwgNSwgMSk7CisKK1NFTEVDVCAqIEZS T00gc2FsZXNfZGF0ZTsKK1NFTEVDVCAqIEZST00gc2FsZXNfZGVjMjAyMjsKK1NFTEVDVCAq IEZST00gc2FsZXNfamFuMjAyMjsKK1NFTEVDVCAqIEZST00gc2FsZXNfZmViMjAyMjsKK1NF TEVDVCAqIEZST00gc2FsZXNfb3RoZXI7CisKK0FMVEVSIFRBQkxFIHNhbGVzX2RhdGUgTUVS R0UgUEFSVElUSU9OUyAoc2FsZXNfamFuMjAyMiwgc2FsZXNfZmViMjAyMikgSU5UTyBzYWxl c19qYW5fZmViMjAyMjsKKworSU5TRVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21hbl9uYW1l LCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdNYW5hZ2Vy MScsIDIwMjIsIDEsIDEwKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFt ZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdl cjInLCAyMDIyLCAyLCAxMCk7CisKK1NFTEVDVCAqIEZST00gc2FsZXNfZGF0ZTsKK1NFTEVD VCAqIEZST00gc2FsZXNfZGVjMjAyMjsKK1NFTEVDVCAqIEZST00gc2FsZXNfamFuX2ZlYjIw MjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX290aGVyOworCitEUk9QIFRBQkxFIHNhbGVzX2Rh dGU7CisKKy0tCistLSBUZXN0OiBtZXJnZSBwYXJ0aXRpb25zIG9mIHBhcnRpdGlvbmVkIHRh YmxlIHdpdGggdHJpZ2dlcnMKKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zKHNhbGVzbWFu X2lkIElOVCBQUklNQVJZIEtFWSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSkgUEFSVElU SU9OIEJZIFJBTkdFIChzYWxlc21hbl9pZCk7CisKK0NSRUFURSBUQUJMRSBzYWxlc21hbnMw MV8xMCBQQVJUSVRJT04gT0Ygc2FsZXNtYW5zIEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDEw KTsKK0NSRUFURSBUQUJMRSBzYWxlc21hbnMxMF8yMCBQQVJUSVRJT04gT0Ygc2FsZXNtYW5z IEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCk7CitDUkVBVEUgVEFCTEUgc2FsZXNtYW5z MjBfMzAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDIwKSBUTyAo MzApOworQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczMwXzQwIFBBUlRJVElPTiBPRiBzYWxlc21h bnMgRk9SIFZBTFVFUyBGUk9NICgzMCkgVE8gKDQwKTsKKworSU5TRVJUIElOVE8gc2FsZXNt YW5zIFZBTFVFUyAoMSwgICdQb2lyb3QnKTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJ T04gYWZ0ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyKCkgUkVUVVJOUyB0cmlnZ2VyIExBTkdVQUdF ICdwbHBnc3FsJyBBUyAkQk9EWSQKK0JFR0lOCisJUkFJU0UgTk9USUNFICd0cmlnZ2VyKCUp IGNhbGxlZDogYWN0aW9uID0gJSwgd2hlbiA9ICUsIGxldmVsID0gJScsIFRHX0FSR1ZbMF0s IFRHX09QLCBUR19XSEVOLCBUR19MRVZFTDsKKyAgICBSRVRVUk4gTlVMTDsKK0VORDsKKyRC T0RZJDsKKworQ1JFQVRFIFRSSUdHRVIgc2FsZXNtYW5zX2FmdGVyX2luc2VydF9zdGF0ZW1l bnRfdHJpZ2dlcgorICAgIEFGVEVSIElOU0VSVAorICAgIE9OIHNhbGVzbWFucworICAgIEZP UiBFQUNIIFNUQVRFTUVOVAorICAgIEVYRUNVVEUgUFJPQ0VEVVJFIGFmdGVyX2luc2VydF9y b3dfdHJpZ2dlcignc2FsZXNtYW5zJyk7CisKK0NSRUFURSBUUklHR0VSIHNhbGVzbWFuc19h ZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIKKyAgICBBRlRFUiBJTlNFUlQKKyAgICBPTiBzYWxl c21hbnMKKyAgICBGT1IgRUFDSCBST1cKKyAgICBFWEVDVVRFIFBST0NFRFVSRSBhZnRlcl9p bnNlcnRfcm93X3RyaWdnZXIoJ3NhbGVzbWFucycpOworCistLSAyIHRyaWdnZXJzIHNob3Vs ZCBmaXJlIGhlcmUgKHJvdyArIHN0YXRlbWVudCk6CitJTlNFUlQgSU5UTyBzYWxlc21hbnMg VkFMVUVTICgxMCwgJ01heScpOworLS0gMSB0cmlnZ2VyIHNob3VsZCBmaXJlIGhlcmUgKHJv dyk6CitJTlNFUlQgSU5UTyBzYWxlc21hbnMxMF8yMCBWQUxVRVMgKDE5LCAnSXZhbm92Jyk7 CisKK0FMVEVSIFRBQkxFIHNhbGVzbWFucyBNRVJHRSBQQVJUSVRJT05TIChzYWxlc21hbnMx MF8yMCwgc2FsZXNtYW5zMjBfMzAsIHNhbGVzbWFuczMwXzQwKSBJTlRPIHNhbGVzbWFuczEw XzQwOworCistLSAyIHRyaWdnZXJzIHNob3VsZCBmaXJlIGhlcmUgKHJvdyArIHN0YXRlbWVu dCk6CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgyMCwgJ1NtaXJub2ZmJyk7Cist LSAxIHRyaWdnZXIgc2hvdWxkIGZpcmUgaGVyZSAocm93KToKK0lOU0VSVCBJTlRPIHNhbGVz bWFuczEwXzQwIFZBTFVFUyAoMzAsICdGb3JkJyk7CisKK1NFTEVDVCAqIEZST00gc2FsZXNt YW5zMDFfMTA7CitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczEwXzQwOworCitEUk9QIFRBQkxF IHNhbGVzbWFuczsKK0RST1AgRlVOQ1RJT04gYWZ0ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyKCk7 CisKKy0tCistLSBUZXN0OiBtZXJnZSBwYXJ0aXRpb25zIHdpdGggZGVsZXRlZCBjb2x1bW5z CistLQorQ1JFQVRFIFRBQkxFIHNhbGVzbWFucyhzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBL RVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2Fs ZXNtYW5faWQpOworCitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMDFfMTAgUEFSVElUSU9OIE9G IHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CistLSBDcmVhdGUgcGFy dGl0aW9ucyB3aXRoIHNvbWUgZGVsZXRlZCBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHNhbGVz bWFuczEwXzIwKGQxIFZBUkNIQVIoMzApLCBzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVks IHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpOworQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczIw XzMwKHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtFWSwgZDIgSU5ULCAgc2FsZXNtYW5fbmFt ZSBWQVJDSEFSKDMwKSk7CitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMzBfNDAoc2FsZXNtYW5f aWQgSU5UIFBSSU1BUlkgS0VZLCBkMyBEQVRFLCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzAp KTsKKworSU5TRVJUIElOVE8gc2FsZXNtYW5zMTBfMjAgVkFMVUVTICgnZHVtbXkgdmFsdWUg MScsIDE5LCAnSXZhbm92Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMyMF8zMCBWQUxVRVMg KDIwLCAxMDEsICdTbWlybm9mZicpOworSU5TRVJUIElOVE8gc2FsZXNtYW5zMzBfNDAgVkFM VUVTICgzMSwgbm93KCksICdQb3BvdicpOworCitBTFRFUiBUQUJMRSBzYWxlc21hbnMxMF8y MCBEUk9QIENPTFVNTiBkMTsKK0FMVEVSIFRBQkxFIHNhbGVzbWFuczIwXzMwIERST1AgQ09M VU1OIGQyOworQUxURVIgVEFCTEUgc2FsZXNtYW5zMzBfNDAgRFJPUCBDT0xVTU4gZDM7CisK K0FMVEVSIFRBQkxFIHNhbGVzbWFucyBBVFRBQ0ggUEFSVElUSU9OIHNhbGVzbWFuczEwXzIw IEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCk7CitBTFRFUiBUQUJMRSBzYWxlc21hbnMg QVRUQUNIIFBBUlRJVElPTiBzYWxlc21hbnMyMF8zMCBGT1IgVkFMVUVTIEZST00gKDIwKSBU TyAoMzApOworQUxURVIgVEFCTEUgc2FsZXNtYW5zIEFUVEFDSCBQQVJUSVRJT04gc2FsZXNt YW5zMzBfNDAgRk9SIFZBTFVFUyBGUk9NICgzMCkgVE8gKDQwKTsKKworSU5TRVJUIElOVE8g c2FsZXNtYW5zIFZBTFVFUyAoMSwgJ1BvaXJvdCcpOworSU5TRVJUIElOVE8gc2FsZXNtYW5z IFZBTFVFUyAoMTAsICdNYXknKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDMw LCAnRm9yZCcpOworCitBTFRFUiBUQUJMRSBzYWxlc21hbnMgTUVSR0UgUEFSVElUSU9OUyAo c2FsZXNtYW5zMTBfMjAsIHNhbGVzbWFuczIwXzMwLCBzYWxlc21hbnMzMF80MCkgSU5UTyBz YWxlc21hbnMxMF80MDsKKworc2VsZWN0ICogZnJvbSBzYWxlc21hbnM7CitzZWxlY3QgKiBm cm9tIHNhbGVzbWFuczAxXzEwOworc2VsZWN0ICogZnJvbSBzYWxlc21hbnMxMF80MDsKKwor RFJPUCBUQUJMRSBzYWxlc21hbnM7CisKKy0tCistLSBUZXN0OiBtZXJnZSBzdWItcGFydGl0 aW9ucworLS0KK0NSRUFURSBUQUJMRSBzYWxlc19yYW5nZSAoc2FsZXNtYW5faWQgSU5ULCBz YWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19kYXRl IERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUg c2FsZXNfamFuMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMi0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVz X2ZlYjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIw MjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19tYXIy MDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAz LTAxJykgVE8gKCcyMDIyLTA0LTAxJyk7CisKK0NSRUFURSBUQUJMRSBzYWxlc19hcHIyMDIy IChzYWxlc21hbl9pZCBJTlQsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCksIHNhbGVzX2Ft b3VudCBJTlQsIHNhbGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19k YXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19hcHIyMDIyXzAxXzEwIFBBUlRJVElPTiBPRiBz YWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjIt MDQtMTAnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19hcHIyMDIyXzEwXzIwIFBBUlRJVElPTiBP RiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMTAnKSBUTyAoJzIw MjItMDQtMjAnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19hcHIyMDIyXzIwXzMwIFBBUlRJVElP TiBPRiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMjAnKSBUTyAo JzIwMjItMDUtMDEnKTsKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIEFUVEFDSCBQQVJUSVRJ T04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcy MDIyLTA1LTAxJyk7CisKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9G IHNhbGVzX3JhbmdlIERFRkFVTFQ7CisKK0NSRUFURSBJTkRFWCBzYWxlc19yYW5nZV9zYWxl c19kYXRlX2lkeCBPTiBzYWxlc19yYW5nZSBVU0lORyBidHJlZSAoc2FsZXNfZGF0ZSk7CisK K0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMSwgICdNYXknLCAgICAgIDEwMDAs ICcyMDIyLTAxLTMxJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDIsICAn U21pcm5vZmYnLCA1MDAsICAnMjAyMi0wMi0xMCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFu Z2UgVkFMVUVTICgzLCAgJ0ZvcmQnLCAgICAgMjAwMCwgJzIwMjItMDQtMzAnKTsKK0lOU0VS VCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNCwgICdJdmFub3YnLCAgIDc1MCwgICcyMDIy LTA0LTEzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDUsICAnRGVldics ICAgICAyNTAsICAnMjAyMi0wNC0wNycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFM VUVTICg2LCAgJ1BvaXJvdCcsICAgMTUwLCAgJzIwMjItMDItMTEnKTsKK0lOU0VSVCBJTlRP IHNhbGVzX3JhbmdlIFZBTFVFUyAoNywgICdMaScsICAgICAgIDE3NSwgICcyMDIyLTAzLTA4 Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDgsICAnRXJpY3Nzb24nLCAx ODUsICAnMjAyMi0wMi0yMycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg5 LCAgJ011bGxlcicsICAgMjUwLCAgJzIwMjItMDMtMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVz X3JhbmdlIFZBTFVFUyAoMTAsICdIYWxkZXInLCAgIDM1MCwgICcyMDIyLTAxLTI4Jyk7CitJ TlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDExLCAnVHJ1bXAnLCAgICAzODAsICAn MjAyMi0wNC0wNicpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMiwgJ1Bs YXRvJywgICAgMzUwLCAgJzIwMjItMDMtMTknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jhbmdl IFZBTFVFUyAoMTMsICdHYW5kaScsICAgIDM3NywgICcyMDIyLTAxLTA5Jyk7CitJTlNFUlQg SU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDE0LCAnU21pdGgnLCAgICA1MTAsICAnMjAyMi0w NS0wNCcpOworCitTRUxFQ1QgKiBGUk9NIHNhbGVzX3JhbmdlOworU0VMRUNUICogRlJPTSBz YWxlc19hcHIyMDIyOworU0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyXzAxXzEwOworU0VM RUNUICogRlJPTSBzYWxlc19hcHIyMDIyXzEwXzIwOworU0VMRUNUICogRlJPTSBzYWxlc19h cHIyMDIyXzIwXzMwOworCitBTFRFUiBUQUJMRSBzYWxlc19hcHIyMDIyIE1FUkdFIFBBUlRJ VElPTlMgKHNhbGVzX2FwcjIwMjJfMDFfMTAsIHNhbGVzX2FwcjIwMjJfMTBfMjAsIHNhbGVz X2FwcjIwMjJfMjBfMzApIElOVE8gc2FsZXNfYXByX2FsbDsKKworU0VMRUNUICogRlJPTSBz YWxlc19yYW5nZTsKK1NFTEVDVCAqIEZST00gc2FsZXNfYXByMjAyMjsKK1NFTEVDVCAqIEZS T00gc2FsZXNfYXByX2FsbDsKKworRFJPUCBUQUJMRSBzYWxlc19yYW5nZTsKKworLS0KKy0t IEJZIExJU1QgcGFydGl0aW9uaW5nCistLQorCistLQorLS0gVGVzdDogc3BlY2lmaWMgZXJy b3JzIGZvciBCWSBMSVNUIHBhcnRpdGlvbmluZworLS0KK0NSRUFURSBUQUJMRSBzYWxlc19s aXN0Cisoc2FsZXNtYW5faWQgSU5UIEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFksCisg c2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwKKyBzYWxlc19zdGF0ZSBWQVJDSEFSKDIwKSwK KyBzYWxlc19hbW91bnQgSU5ULAorIHNhbGVzX2RhdGUgREFURSkKK1BBUlRJVElPTiBCWSBM SVNUIChzYWxlc19zdGF0ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfbm9yZCBQQVJUSVRJT04g T0Ygc2FsZXNfbGlzdCBGT1IgVkFMVUVTIElOICgnTXVybWFuc2snLCAnU3QuIFBldGVyc2J1 cmcnLCAnVWtodGEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc193ZXN0IFBBUlRJVElPTiBPRiBz YWxlc19saXN0IEZPUiBWQUxVRVMgSU4gKCdWb3JvbmV6aCcsICdTbW9sZW5zaycsICdCcnlh bnNrJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfZWFzdCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlz dCBGT1IgVkFMVUVTIElOICgnTWFnYWRhbicsICdLaGFiYXJvdnNrJywgJ1ZsYWRpdm9zdG9r Jyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfY2VudHJhbCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlz dCBGT1IgVkFMVUVTIElOICgnTW9zY293JywgJ0themFuJywgJ1ZvbGdvZ3JhZCcpOworQ1JF QVRFIFRBQkxFIHNhbGVzX290aGVycyBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBERUZBVUxU OworCisKK0NSRUFURSBUQUJMRSBzYWxlc19saXN0MiAoTElLRSBzYWxlc19saXN0KSBQQVJU SVRJT04gQlkgTElTVCAoc2FsZXNfc3RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX25vcmQy IFBBUlRJVElPTiBPRiBzYWxlc19saXN0MiBGT1IgVkFMVUVTIElOICgnTXVybWFuc2snLCAn U3QuIFBldGVyc2J1cmcnLCAnVWtodGEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMy IFBBUlRJVElPTiBPRiBzYWxlc19saXN0MiBERUZBVUxUOworCisKK0NSRUFURSBUQUJMRSBz YWxlc19leHRlcm5hbCAoTElLRSBzYWxlc19saXN0KTsKK0NSRUFURSBUQUJMRSBzYWxlc19l eHRlcm5hbDIgKHZjaCBWQVJDSEFSKDUpKTsKKworLS0gRVJST1I6ICBwYXJ0aXRpb24gYm91 bmQgZm9yIHJlbGF0aW9uICJzYWxlc19leHRlcm5hbCIgaXMgbnVsbAorQUxURVIgVEFCTEUg c2FsZXNfbGlzdCBNRVJHRSBQQVJUSVRJT05TIChzYWxlc193ZXN0LCBzYWxlc19lYXN0LCBz YWxlc19leHRlcm5hbCkgSU5UTyBzYWxlc19hbGw7CistLSBFUlJPUjogIHBhcnRpdGlvbiBi b3VuZCBmb3IgcmVsYXRpb24gInNhbGVzX2V4dGVybmFsMiIgaXMgbnVsbAorQUxURVIgVEFC TEUgc2FsZXNfbGlzdCBNRVJHRSBQQVJUSVRJT05TIChzYWxlc193ZXN0LCBzYWxlc19lYXN0 LCBzYWxlc19leHRlcm5hbDIpIElOVE8gc2FsZXNfYWxsOworLS0gRVJST1I6ICByZWxhdGlv biAic2FsZXNfbm9yZDIiIGlzIG5vdCBhIHBhcnRpdGlvbiBvZiByZWxhdGlvbiAic2FsZXNf bGlzdCIKK0FMVEVSIFRBQkxFIHNhbGVzX2xpc3QgTUVSR0UgUEFSVElUSU9OUyAoc2FsZXNf d2VzdCwgc2FsZXNfbm9yZDIsIHNhbGVzX2Vhc3QpIElOVE8gc2FsZXNfYWxsOworCitEUk9Q IFRBQkxFIHNhbGVzX2V4dGVybmFsMjsKK0RST1AgVEFCTEUgc2FsZXNfZXh0ZXJuYWw7CitE Uk9QIFRBQkxFIHNhbGVzX2xpc3QyOworRFJPUCBUQUJMRSBzYWxlc19saXN0OworCistLQor LS0gVGVzdDogQlkgTElTVCBwYXJ0aXRpb25pbmcsIE1FUkdFIFBBUlRJVElPTlMgd2l0aCBk YXRhCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX2xpc3QKKyhzYWxlc21hbl9pZCBJTlQgR0VO RVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSwKKyBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzAp LAorIHNhbGVzX3N0YXRlIFZBUkNIQVIoMjApLAorIHNhbGVzX2Ftb3VudCBJTlQsCisgc2Fs ZXNfZGF0ZSBEQVRFKQorUEFSVElUSU9OIEJZIExJU1QgKHNhbGVzX3N0YXRlKTsKKworQ1JF QVRFIElOREVYIHNhbGVzX2xpc3Rfc2FsZXNtYW5fbmFtZV9pZHggT04gc2FsZXNfbGlzdCBV U0lORyBidHJlZSAoc2FsZXNtYW5fbmFtZSk7CitDUkVBVEUgSU5ERVggc2FsZXNfbGlzdF9z YWxlc19zdGF0ZV9pZHggT04gc2FsZXNfbGlzdCBVU0lORyBidHJlZSAoc2FsZXNfc3RhdGUp OworCitDUkVBVEUgVEFCTEUgc2FsZXNfbm9yZCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBG T1IgVkFMVUVTIElOICgnTXVybWFuc2snLCAnU3QuIFBldGVyc2J1cmcnLCAnVWtodGEnKTsK K0NSRUFURSBUQUJMRSBzYWxlc193ZXN0IFBBUlRJVElPTiBPRiBzYWxlc19saXN0IEZPUiBW QUxVRVMgSU4gKCdWb3JvbmV6aCcsICdTbW9sZW5zaycsICdCcnlhbnNrJyk7CitDUkVBVEUg VEFCTEUgc2FsZXNfZWFzdCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBGT1IgVkFMVUVTIElO ICgnTWFnYWRhbicsICdLaGFiYXJvdnNrJywgJ1ZsYWRpdm9zdG9rJyk7CitDUkVBVEUgVEFC TEUgc2FsZXNfY2VudHJhbCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBGT1IgVkFMVUVTIElO ICgnTW9zY293JywgJ0themFuJywgJ1ZvbGdvZ3JhZCcpOworQ1JFQVRFIFRBQkxFIHNhbGVz X290aGVycyBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBERUZBVUxUOworCitJTlNFUlQgSU5U TyBzYWxlc19saXN0IChzYWxlc21hbl9uYW1lLCBzYWxlc19zdGF0ZSwgc2FsZXNfYW1vdW50 LCBzYWxlc19kYXRlKSBWQUxVRVMgKCdUcnVtcCcsICAgICdNYWdhZGFuJywgICAgICAgIDEw MDAsICcyMDIyLTAzLTAxJyk7CitJTlNFUlQgSU5UTyBzYWxlc19saXN0IChzYWxlc21hbl9u YW1lLCBzYWxlc19zdGF0ZSwgc2FsZXNfYW1vdW50LCBzYWxlc19kYXRlKSBWQUxVRVMgKCdT bWlybm9mZicsICdTbW9sZW5zaycsICAgICAgIDUwMCwgICcyMDIyLTAzLTAzJyk7CitJTlNF UlQgSU5UTyBzYWxlc19saXN0IChzYWxlc21hbl9uYW1lLCBzYWxlc19zdGF0ZSwgc2FsZXNf YW1vdW50LCBzYWxlc19kYXRlKSBWQUxVRVMgKCdGb3JkJywgICAgICdTdC4gUGV0ZXJzYnVy ZycsIDIwMDAsICcyMDIyLTAzLTA1Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19saXN0IChzYWxl c21hbl9uYW1lLCBzYWxlc19zdGF0ZSwgc2FsZXNfYW1vdW50LCBzYWxlc19kYXRlKSBWQUxV RVMgKCdJdmFub3YnLCAgICdNb3Njb3cnLCAgICAgICAgIDc1MCwgICcyMDIyLTAzLTA0Jyk7 CitJTlNFUlQgSU5UTyBzYWxlc19saXN0IChzYWxlc21hbl9uYW1lLCBzYWxlc19zdGF0ZSwg c2FsZXNfYW1vdW50LCBzYWxlc19kYXRlKSBWQUxVRVMgKCdEZWV2JywgICAgICdWb3JvbmV6 aCcsICAgICAgIDI1MCwgICcyMDIyLTAzLTA3Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19saXN0 IChzYWxlc21hbl9uYW1lLCBzYWxlc19zdGF0ZSwgc2FsZXNfYW1vdW50LCBzYWxlc19kYXRl KSBWQUxVRVMgKCdQb2lyb3QnLCAgICdLYXphbicsICAgICAgICAgIDEwMDAsICcyMDIyLTAz LTAxJyk7CitJTlNFUlQgSU5UTyBzYWxlc19saXN0IChzYWxlc21hbl9uYW1lLCBzYWxlc19z dGF0ZSwgc2FsZXNfYW1vdW50LCBzYWxlc19kYXRlKSBWQUxVRVMgKCdNYXknLCAgICAgICdV a2h0YScsICAgICAgICAgIDEyMDAsICcyMDIyLTAzLTA2Jyk7CitJTlNFUlQgSU5UTyBzYWxl c19saXN0IChzYWxlc21hbl9uYW1lLCBzYWxlc19zdGF0ZSwgc2FsZXNfYW1vdW50LCBzYWxl c19kYXRlKSBWQUxVRVMgKCdMaScsICAgICAgICdWbGFkaXZvc3RvaycsICAgIDExNTAsICcy MDIyLTAzLTA5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19saXN0IChzYWxlc21hbl9uYW1lLCBz YWxlc19zdGF0ZSwgc2FsZXNfYW1vdW50LCBzYWxlc19kYXRlKSBWQUxVRVMgKCdNYXknLCAg ICAgICdVa2h0YScsICAgICAgICAgIDEyMDAsICcyMDIyLTAzLTExJyk7CitJTlNFUlQgSU5U TyBzYWxlc19saXN0IChzYWxlc21hbl9uYW1lLCBzYWxlc19zdGF0ZSwgc2FsZXNfYW1vdW50 LCBzYWxlc19kYXRlKSBWQUxVRVMgKCdIYWxkZXInLCAgICdNdXJtYW5zaycsICAgICAgIDgw MCwgICcyMDIyLTAzLTAyJyk7CitJTlNFUlQgSU5UTyBzYWxlc19saXN0IChzYWxlc21hbl9u YW1lLCBzYWxlc19zdGF0ZSwgc2FsZXNfYW1vdW50LCBzYWxlc19kYXRlKSBWQUxVRVMgKCdN dWxsZXInLCAgICdCcnlhbnNrJywgICAgICAgIDY1MCwgICcyMDIyLTAzLTA1Jyk7CitJTlNF UlQgSU5UTyBzYWxlc19saXN0IChzYWxlc21hbl9uYW1lLCBzYWxlc19zdGF0ZSwgc2FsZXNf YW1vdW50LCBzYWxlc19kYXRlKSBWQUxVRVMgKCdTbWl0aCcsICAgICdWb2xnb2dyYWQnLCAg ICAgIDM1MCwgICcyMDIyLTAzLTEwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19saXN0IChzYWxl c21hbl9uYW1lLCBzYWxlc19zdGF0ZSwgc2FsZXNfYW1vdW50LCBzYWxlc19kYXRlKSBWQUxV RVMgKCdHYW5kaScsICAgICdNb3Njb3cnLCAgICAgICAgIDE1MCwgICcyMDIyLTAzLTA4Jyk7 CitJTlNFUlQgSU5UTyBzYWxlc19saXN0IChzYWxlc21hbl9uYW1lLCBzYWxlc19zdGF0ZSwg c2FsZXNfYW1vdW50LCBzYWxlc19kYXRlKSBWQUxVRVMgKCdQbGF0bycsICAgICdWb3JvbmV6 aCcsICAgICAgIDk1MCwgICcyMDIyLTAzLTA1Jyk7CisKKy0tIHNob3cgcGFydGl0aW9ucyB3 aXRoIGNvbmRpdGlvbnM6CitTRUxFQ1QgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3MsIGMu cmVsa2luZCwgaW5oZGV0YWNocGVuZGluZywgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcihjLnJl bHBhcnRib3VuZCwgYy5vaWQpCisgIEZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjLCBwZ19j YXRhbG9nLnBnX2luaGVyaXRzIGkKKyAgV0hFUkUgYy5vaWQgPSBpLmluaHJlbGlkIEFORCBp LmluaHBhcmVudCA9ICdzYWxlc19saXN0Jzo6cmVnY2xhc3MKKyAgT1JERVIgQlkgcGdfY2F0 YWxvZy5wZ19nZXRfZXhwcihjLnJlbHBhcnRib3VuZCwgYy5vaWQpID0gJ0RFRkFVTFQnLCBj Lm9pZDo6cGdfY2F0YWxvZy5yZWdjbGFzczo6cGdfY2F0YWxvZy50ZXh0OworCitBTFRFUiBU QUJMRSBzYWxlc19saXN0IE1FUkdFIFBBUlRJVElPTlMgKHNhbGVzX3dlc3QsIHNhbGVzX2Vh c3QsIHNhbGVzX2NlbnRyYWwpIElOVE8gc2FsZXNfYWxsOworCistLSBzaG93IHBhcnRpdGlv bnMgd2l0aCBjb25kaXRpb25zOgorU0VMRUNUIGMub2lkOjpwZ19jYXRhbG9nLnJlZ2NsYXNz LCBjLnJlbGtpbmQsIGluaGRldGFjaHBlbmRpbmcsIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIo Yy5yZWxwYXJ0Ym91bmQsIGMub2lkKQorICBGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYywg cGdfY2F0YWxvZy5wZ19pbmhlcml0cyBpCisgIFdIRVJFIGMub2lkID0gaS5pbmhyZWxpZCBB TkQgaS5pbmhwYXJlbnQgPSAnc2FsZXNfbGlzdCc6OnJlZ2NsYXNzCisgIE9SREVSIEJZIHBn X2NhdGFsb2cucGdfZ2V0X2V4cHIoYy5yZWxwYXJ0Ym91bmQsIGMub2lkKSA9ICdERUZBVUxU JywgYy5vaWQ6OnBnX2NhdGFsb2cucmVnY2xhc3M6OnBnX2NhdGFsb2cudGV4dDsKKworU0VM RUNUICogRlJPTSBzYWxlc19saXN0OworU0VMRUNUICogRlJPTSBzYWxlc19ub3JkOworU0VM RUNUICogRlJPTSBzYWxlc19hbGw7CisKKy0tIFVzZSBpbmRleHNjYW4gZm9yIHRlc3QgaW5k ZXhlcyBhZnRlciBtZXJnZSBwYXJ0aXRpb25zCitTRVQgZW5hYmxlX2luZGV4c2NhbiA9IE9O OworU0VUIGVuYWJsZV9zZXFzY2FuID0gT0ZGOworCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2Fs bCBXSEVSRSBzYWxlc19zdGF0ZSA9ICdNb3Njb3cnOworU0VMRUNUICogRlJPTSBzYWxlc19s aXN0IFdIRVJFIHNhbGVzX3N0YXRlID0gJ01vc2Nvdyc7CitTRUxFQ1QgKiBGUk9NIHNhbGVz X2xpc3QgV0hFUkUgc2FsZXNtYW5fbmFtZSA9ICdJdmFub3YnOworCitTRVQgZW5hYmxlX2lu ZGV4c2NhbiA9IE9OOworU0VUIGVuYWJsZV9zZXFzY2FuID0gT047CisKK0RST1AgVEFCTEUg c2FsZXNfbGlzdDsKKworLS0KK0RST1AgU0NIRU1BIHBhcnRpdGlvbnNfbWVyZ2Vfc2NoZW1h OwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCBkOWI4MzljOTc5Li5mZmZiNzgw YjdjIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysg Yi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjUxNSw2ICsyNTE1LDcg QEAgU2ltcGxlU3RhdHMKIFNpbXBsZVN0cmluZ0xpc3QKIFNpbXBsZVN0cmluZ0xpc3RDZWxs CiBTaW5nbGVCb3VuZFNvcnRJdGVtCitTaW5nbGVQYXJ0aXRpb25TcGVjCiBTaXplCiBTa2lw UGFnZXMKIFNsYWJCbG9jawotLSAKMi4zMS4wLndpbmRvd3MuMQoK --------------8m7fmgIa9q79cxDV08lh7em9 Content-Type: text/plain; charset=UTF-8; name="v12-0002-PGPRO-ALTER-TABLE-SPLIT-PARTITION-command.patch" Content-Disposition: attachment; filename="v12-0002-PGPRO-ALTER-TABLE-SPLIT-PARTITION-command.patch" Content-Transfer-Encoding: base64 RnJvbSBlNWI3MWM3OWJiMWMzMDhlMzJiYjUwMjQ0NzQ0MTNjYmM0NGEyNGU3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLb3ZhbCBEbWl0cnkgPGQua292YWxAcG9zdGdyZXNw cm8ucnU+CkRhdGU6IE1vbiwgMTkgU2VwIDIwMjIgMTc6NTg6NTIgKzAzMDAKU3ViamVjdDog W1BBVENIIHYxMiAyLzJdIEFMVEVSIFRBQkxFIFNQTElUIFBBUlRJVElPTiBjb21tYW5kCgot LS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICA0 MDcgKysrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAg ICB8ICAgMzggKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgICAgICAg ICAgICB8ICAgNjIgKy0KIHNyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMg ICAgICAgICB8ICA2NTkgKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRp bHMuYyAgICAgICAgICAgICB8ICAgMTggKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0 LmggICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3BhcnRpdGlvbmlu Zy9wYXJ0Ym91bmRzLmggICAgICAgICB8ICAgIDQgKwogc3JjL2luY2x1ZGUvdXRpbHMvcnVs ZXV0aWxzLmggICAgICAgICAgICAgICAgIHwgICAgMiArCiAuLi4vaXNvbGF0aW9uL2V4cGVj dGVkL3BhcnRpdGlvbi1zcGxpdC5vdXQgICAgfCAgMTkwICsrKwogc3JjL3Rlc3QvaXNvbGF0 aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSAgICAgICAgIHwgICAgMSArCiBzcmMvdGVzdC9pc29s YXRpb24vc3BlY3MvcGFydGl0aW9uLXNwbGl0LnNwZWMgfCAgIDU0ICsKIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3NwbGl0Lm91dCB8IDE0MjUgKysrKysrKysrKysr KysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8 ICAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9zcGxpdC5zcWwgICAg ICB8ICA4MzkgKysrKysrKysrKwogMTUgZmlsZXMgY2hhbmdlZCwgMzY5MSBpbnNlcnRpb25z KCspLCAxMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29s YXRpb24vZXhwZWN0ZWQvcGFydGl0aW9uLXNwbGl0Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9wYXJ0aXRpb24tc3BsaXQuc3BlYwogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3NwbGl0 Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlv bl9zcGxpdC5zcWwKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IGM2ZTFiYTZk Y2EuLmMyMzBjMGY4OTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC02Mzcs NiArNjM3LDkgQEAgc3RhdGljIHZvaWQgQVREZXRhY2hDaGVja05vRm9yZWlnbktleVJlZnMo UmVsYXRpb24gcGFydGl0aW9uKTsKIHN0YXRpYyBjaGFyIEdldEF0dHJpYnV0ZUNvbXByZXNz aW9uKE9pZCBhdHR0eXBpZCwgY2hhciAqY29tcHJlc3Npb24pOwogc3RhdGljIGNoYXIgR2V0 QXR0cmlidXRlU3RvcmFnZShPaWQgYXR0dHlwaWQsIGNvbnN0IGNoYXIgKnN0b3JhZ2Vtb2Rl KTsKIAorc3RhdGljIHZvaWQgQVRFeGVjU3BsaXRQYXJ0aXRpb24oTGlzdCAqKndxdWV1ZSwg QWx0ZXJlZFRhYmxlSW5mbyAqdGFiLAorCQkJCQkJCQkgUmVsYXRpb24gcmVsLCBQYXJ0aXRp b25DbWQgKmNtZCwKKwkJCQkJCQkJIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4 dCk7CiBzdGF0aWMgdm9pZCBBVEV4ZWNNZXJnZVBhcnRpdGlvbnMoTGlzdCAqKndxdWV1ZSwg QWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQkJCQkJCSAgUGFydGl0 aW9uQ21kICpjbWQsIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCk7CiAKQEAg LTQ0MDMsNiArNDQwNiwxMCBAQCBBbHRlclRhYmxlR2V0TG9ja0xldmVsKExpc3QgKmNtZHMp CiAJCQkJY21kX2xvY2ttb2RlID0gU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrOwogCQkJCWJy ZWFrOwogCisJCQljYXNlIEFUX1NwbGl0UGFydGl0aW9uOgorCQkJCWNtZF9sb2NrbW9kZSA9 IEFjY2Vzc0V4Y2x1c2l2ZUxvY2s7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgQVRfTWVyZ2VQ YXJ0aXRpb25zOgogCQkJCWNtZF9sb2NrbW9kZSA9IEFjY2Vzc0V4Y2x1c2l2ZUxvY2s7CiAJ CQkJYnJlYWs7CkBAIC00ODI4LDYgKzQ4MzUsMTEgQEAgQVRQcmVwQ21kKExpc3QgKip3cXVl dWUsIFJlbGF0aW9uIHJlbCwgQWx0ZXJUYWJsZUNtZCAqY21kLAogCQkJLyogTm8gY29tbWFu ZC1zcGVjaWZpYyBwcmVwIG5lZWRlZCAqLwogCQkJcGFzcyA9IEFUX1BBU1NfTUlTQzsKIAkJ CWJyZWFrOworCQljYXNlIEFUX1NwbGl0UGFydGl0aW9uOgorCQkJQVRTaW1wbGVQZXJtaXNz aW9ucyhjbWQtPnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxFKTsKKwkJCS8qIE5vIGNvbW1hbmQt c3BlY2lmaWMgcHJlcCBuZWVkZWQgKi8KKwkJCXBhc3MgPSBBVF9QQVNTX01JU0M7CisJCQli cmVhazsKIAkJY2FzZSBBVF9NZXJnZVBhcnRpdGlvbnM6CiAJCQlBVFNpbXBsZVBlcm1pc3Np b25zKGNtZC0+c3VidHlwZSwgcmVsLCBBVFRfVEFCTEUpOwogCQkJLyogTm8gY29tbWFuZC1z cGVjaWZpYyBwcmVwIG5lZWRlZCAqLwpAQCAtNTI1NCw2ICs1MjY2LDE0IEBAIEFURXhlY0Nt ZChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsCiAJCWNhc2UgQVRfRGV0 YWNoUGFydGl0aW9uRmluYWxpemU6CiAJCQlhZGRyZXNzID0gQVRFeGVjRGV0YWNoUGFydGl0 aW9uRmluYWxpemUocmVsLCAoKFBhcnRpdGlvbkNtZCAqKSBjbWQtPmRlZiktPm5hbWUpOwog CQkJYnJlYWs7CisJCWNhc2UgQVRfU3BsaXRQYXJ0aXRpb246CisJCQljbWQgPSBBVFBhcnNl VHJhbnNmb3JtQ21kKHdxdWV1ZSwgdGFiLCByZWwsIGNtZCwgZmFsc2UsIGxvY2ttb2RlLAor CQkJCQkJCQkJICBjdXJfcGFzcywgY29udGV4dCk7CisJCQlBc3NlcnQoY21kICE9IE5VTEwp OworCQkJQXNzZXJ0KHJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9O RURfVEFCTEUpOworCQkJQVRFeGVjU3BsaXRQYXJ0aXRpb24od3F1ZXVlLCB0YWIsIHJlbCwg KFBhcnRpdGlvbkNtZCAqKSBjbWQtPmRlZiwKKwkJCQkJCQkJIGNvbnRleHQpOworCQkJYnJl YWs7CiAJCWNhc2UgQVRfTWVyZ2VQYXJ0aXRpb25zOgogCQkJY21kID0gQVRQYXJzZVRyYW5z Zm9ybUNtZCh3cXVldWUsIHRhYiwgcmVsLCBjbWQsIGZhbHNlLCBsb2NrbW9kZSwKIAkJCQkJ CQkJCSAgY3VyX3Bhc3MsIGNvbnRleHQpOwpAQCAtNjI1MCw2ICs2MjcwLDggQEAgYWx0ZXJf dGFibGVfdHlwZV90b19zdHJpbmcoQWx0ZXJUYWJsZVR5cGUgY21kdHlwZSkKIAkJCXJldHVy biAiREVUQUNIIFBBUlRJVElPTiI7CiAJCWNhc2UgQVRfRGV0YWNoUGFydGl0aW9uRmluYWxp emU6CiAJCQlyZXR1cm4gIkRFVEFDSCBQQVJUSVRJT04gLi4uIEZJTkFMSVpFIjsKKwkJY2Fz ZSBBVF9TcGxpdFBhcnRpdGlvbjoKKwkJCXJldHVybiAiU1BMSVQgUEFSVElUSU9OIjsKIAkJ Y2FzZSBBVF9NZXJnZVBhcnRpdGlvbnM6CiAJCQlyZXR1cm4gIk1FUkdFIFBBUlRJVElPTlMi OwogCQljYXNlIEFUX0FkZElkZW50aXR5OgpAQCAtMTkzNTAsNiArMTkzNzIsMjU1IEBAIEdl dEF0dHJpYnV0ZVN0b3JhZ2UoT2lkIGF0dHR5cGlkLCBjb25zdCBjaGFyICpzdG9yYWdlbW9k ZSkKIAlyZXR1cm4gY3N0b3JhZ2U7CiB9CiAKKy8qCisgKiBTdHJ1Y3Qgd2l0aCBjb250ZXh0 IG9mIG5ldyBwYXJ0aXRpb24gZm9yIGluc2VydCByb3dzIGZyb20gc3BsaXRlZCBwYXJ0aXRp b24KKyAqLwordHlwZWRlZiBzdHJ1Y3QgU3BsaXRQYXJ0aXRpb25Db250ZXh0Cit7CisJRXhw clN0YXRlICAqcGFydHF1YWxzdGF0ZTsJLyogZXhwcmVzc2lvbiBmb3IgY2hlY2sgc2xvdCBm b3IgcGFydGl0aW9uCisJCQkJCQkJCSAqIChOVUxMIGZvciBERUZBVUxUIHBhcnRpdGlvbikg Ki8KKwlCdWxrSW5zZXJ0U3RhdGUgYmlzdGF0ZTsJLyogc3RhdGUgb2YgYnVsayBpbnNlcnRz IGZvciBwYXJ0aXRpb24gKi8KKwlUdXBsZVRhYmxlU2xvdCAqZHN0c2xvdDsJLyogc2xvdCBm b3IgaW5zZXJ0IHJvdyBpbnRvIHBhcnRpdGlvbiAqLworCVJlbGF0aW9uCXBhcnRSZWw7CQkv KiByZWxhdGlvbiBmb3IgcGFydGl0aW9uICovCit9CQkJU3BsaXRQYXJ0aXRpb25Db250ZXh0 OworCisKKy8qCisgKiBjcmVhdGVTcGxpdFBhcnRpdGlvbkNvbnRleHQ6IGNyZWF0ZSBjb250 ZXh0IGZvciBwYXJ0aXRpb24gYW5kIGZpbGwgaXQKKyAqLworc3RhdGljIFNwbGl0UGFydGl0 aW9uQ29udGV4dCAqCitjcmVhdGVTcGxpdFBhcnRpdGlvbkNvbnRleHQoUmVsYXRpb24gcGFy dFJlbCkKK3sKKwlTcGxpdFBhcnRpdGlvbkNvbnRleHQgKnBjOworCisJcGMgPSAoU3BsaXRQ YXJ0aXRpb25Db250ZXh0ICopIHBhbGxvYzAoc2l6ZW9mKFNwbGl0UGFydGl0aW9uQ29udGV4 dCkpOworCXBjLT5wYXJ0UmVsID0gcGFydFJlbDsKKworCS8qCisJICogUHJlcGFyZSBhIEJ1 bGtJbnNlcnRTdGF0ZSBmb3IgdGFibGVfdHVwbGVfaW5zZXJ0LiBUaGUgRlNNIGlzIGVtcHR5 LCBzbworCSAqIGRvbid0IGJvdGhlciB1c2luZyBpdC4KKwkgKi8KKwlwYy0+YmlzdGF0ZSA9 IEdldEJ1bGtJbnNlcnRTdGF0ZSgpOworCisJLyogQ3JlYXRlIHR1cGxlIHNsb3QgZm9yIG5l dyBwYXJ0aXRpb24uICovCisJcGMtPmRzdHNsb3QgPSBNYWtlU2luZ2xlVHVwbGVUYWJsZVNs b3QoUmVsYXRpb25HZXREZXNjcihwYy0+cGFydFJlbCksCisJCQkJCQkJCQkJICAgdGFibGVf c2xvdF9jYWxsYmFja3MocGMtPnBhcnRSZWwpKTsKKwlFeGVjU3RvcmVBbGxOdWxsVHVwbGUo cGMtPmRzdHNsb3QpOworCisJcmV0dXJuIHBjOworfQorCisvKgorICogZGVsZXRlU3BsaXRQ YXJ0aXRpb25Db250ZXh0OiBkZWxldGUgY29udGV4dCBmb3IgcGFydGl0aW9uCisgKi8KK3N0 YXRpYyB2b2lkCitkZWxldGVTcGxpdFBhcnRpdGlvbkNvbnRleHQoU3BsaXRQYXJ0aXRpb25D b250ZXh0ICogcGMsIGludCB0aV9vcHRpb25zKQoreworCUV4ZWNEcm9wU2luZ2xlVHVwbGVU YWJsZVNsb3QocGMtPmRzdHNsb3QpOworCUZyZWVCdWxrSW5zZXJ0U3RhdGUocGMtPmJpc3Rh dGUpOworCisJdGFibGVfZmluaXNoX2J1bGtfaW5zZXJ0KHBjLT5wYXJ0UmVsLCB0aV9vcHRp b25zKTsKKworCXBmcmVlKHBjKTsKK30KKworLyoKKyAqIG1vdmVTcGxpdFRhYmxlUm93czog c2NhbiBzcGxpdCBwYXJ0aXRpb24gKHNwbGl0UmVsKSBvZiBwYXJ0aXRpb25lZCB0YWJsZQor ICogKHJlbCkgYW5kIG1vdmUgcm93cyBpbnRvIG5ldyBwYXJ0aXRpb25zLgorICoKKyAqIE5l dyBwYXJ0aXRpb25zIGRlc2NyaXB0aW9uOgorICogcGFydGxpc3Q6IGxpc3Qgb2YgcG9pbnRl cnMgdG8gU2luZ2xlUGFydGl0aW9uU3BlYyBzdHJ1Y3R1cmVzLgorICogbmV3UGFydFJlbHM6 IGxpc3Qgb2YgUmVsYXRpb24ncy4KKyAqIGRlZmF1bHRQYXJ0T2lkOiBvaWQgb2YgREVGQVVM VCBwYXJ0aXRpb24sIGZvciB0YWJsZSByZWwuCisgKi8KK3N0YXRpYyB2b2lkCittb3ZlU3Bs aXRUYWJsZVJvd3MoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBzcGxpdFJlbCwgTGlzdCAqcGFy dGxpc3QsIExpc3QgKm5ld1BhcnRSZWxzLCBPaWQgZGVmYXVsdFBhcnRPaWQpCit7CisJLyog VGhlIEZTTSBpcyBlbXB0eSwgc28gZG9uJ3QgYm90aGVyIHVzaW5nIGl0LiAqLworCWludAkJ CXRpX29wdGlvbnMgPSBUQUJMRV9JTlNFUlRfU0tJUF9GU007CisJQ29tbWFuZElkCW15Y2lk OworCUVTdGF0ZQkgICAqZXN0YXRlOworCUxpc3RDZWxsICAgKmxpc3RwdHIsCisJCQkgICAq bGlzdHB0cjI7CisJVHVwbGVUYWJsZVNsb3QgKnNyY3Nsb3Q7CisJRXhwckNvbnRleHQgKmVj b250ZXh0OworCVRhYmxlU2NhbkRlc2Mgc2NhbjsKKwlTbmFwc2hvdAlzbmFwc2hvdDsKKwlN ZW1vcnlDb250ZXh0IG9sZEN4dDsKKwlMaXN0CSAgICpwYXJ0Q29udGV4dHMgPSBOSUw7CisJ VHVwbGVDb252ZXJzaW9uTWFwICp0dXBsZV9tYXA7CisJU3BsaXRQYXJ0aXRpb25Db250ZXh0 ICpkZWZhdWx0UGFydEN0eCA9IE5VTEwsCisJCQkgICAqcGM7CisJYm9vbAkJaXNPbGREZWZh dWx0UGFydCA9IGZhbHNlOworCisJbXljaWQgPSBHZXRDdXJyZW50Q29tbWFuZElkKHRydWUp OworCisJZXN0YXRlID0gQ3JlYXRlRXhlY3V0b3JTdGF0ZSgpOworCisJZm9yYm90aChsaXN0 cHRyLCBwYXJ0bGlzdCwgbGlzdHB0cjIsIG5ld1BhcnRSZWxzKQorCXsKKwkJU2luZ2xlUGFy dGl0aW9uU3BlYyAqc3BzID0gKFNpbmdsZVBhcnRpdGlvblNwZWMgKikgbGZpcnN0KGxpc3Rw dHIpOworCisJCXBjID0gY3JlYXRlU3BsaXRQYXJ0aXRpb25Db250ZXh0KChSZWxhdGlvbikg bGZpcnN0KGxpc3RwdHIyKSk7CisKKwkJaWYgKHNwcy0+Ym91bmQtPmlzX2RlZmF1bHQpCisJ CXsKKwkJCS8qIFdlIHNob3VsZCBub3QgY3JlYXRlIGNvbnN0cmFpbnQgZm9yIGRldGFjaGVk IERFRkFVTFQgcGFydGl0aW9uLiAqLworCQkJZGVmYXVsdFBhcnRDdHggPSBwYzsKKwkJfQor CQllbHNlCisJCXsKKwkJCUxpc3QJICAgKnBhcnRDb25zdHJhaW50OworCisJCQkvKiBCdWls ZCBleHByZXNzaW9uIGV4ZWN1dGlvbiBzdGF0ZXMgZm9yIHBhcnRpdGlvbiBjaGVjayBxdWFs cy4gKi8KKwkJCXBhcnRDb25zdHJhaW50ID0gZ2V0X3F1YWxfZnJvbV9wYXJ0Ym91bmQocmVs LCBzcHMtPmJvdW5kKTsKKwkJCXBhcnRDb25zdHJhaW50ID0KKwkJCQkoTGlzdCAqKSBldmFs X2NvbnN0X2V4cHJlc3Npb25zKE5VTEwsCisJCQkJCQkJCQkJCQkoTm9kZSAqKSBwYXJ0Q29u c3RyYWludCk7CisJCQkvKiBNYWtlIGJvb2xlYW4gZXhwcmVzc2lvbiBmb3IgRXhlY0NoZWNr KCkuICovCisJCQlwYXJ0Q29uc3RyYWludCA9IGxpc3RfbWFrZTEobWFrZV9hbmRzX2V4cGxp Y2l0KHBhcnRDb25zdHJhaW50KSk7CisKKwkJCS8qCisJCQkgKiBNYXAgdGhlIHZhcnMgaW4g dGhlIGNvbnN0cmFpbnQgZXhwcmVzc2lvbiBmcm9tIHJlbCdzIGF0dG5vcyB0bworCQkJICog c3BsaXRSZWwncy4KKwkJCSAqLworCQkJcGFydENvbnN0cmFpbnQgPSBtYXBfcGFydGl0aW9u X3ZhcmF0dG5vcyhwYXJ0Q29uc3RyYWludCwKKwkJCQkJCQkJCQkJCQkgMSwgc3BsaXRSZWws IHJlbCk7CisKKwkJCXBjLT5wYXJ0cXVhbHN0YXRlID0KKwkJCQlFeGVjUHJlcGFyZUV4cHIo KEV4cHIgKikgbGluaXRpYWwocGFydENvbnN0cmFpbnQpLCBlc3RhdGUpOworCQkJQXNzZXJ0 KHBjLT5wYXJ0cXVhbHN0YXRlICE9IE5VTEwpOworCQl9CisKKwkJLyogU3RvcmUgcGFydGl0 aW9uIGNvbnRleHQgaW50byBsaXN0LiAqLworCQlwYXJ0Q29udGV4dHMgPSBsYXBwZW5kKHBh cnRDb250ZXh0cywgcGMpOworCX0KKworCS8qCisJICogQ3JlYXRlIHBhcnRpdGlvbiBjb250 ZXh0IGZvciBERUZBVUxUIHBhcnRpdGlvbi4gV2UgY2FuIGluc2VydCB2YWx1ZXMKKwkgKiBp bnRvIHRoaXMgcGFydGl0aW9uIGluIGNhc2Ugc3BhY2VzIHdpdGggdmFsdWVzIGJldHdlZW4g bmV3IHBhcnRpdGlvbnMuCisJICovCisJaWYgKCFkZWZhdWx0UGFydEN0eCAmJiBPaWRJc1Zh bGlkKGRlZmF1bHRQYXJ0T2lkKSkKKwl7CisJCS8qIEluZGljYXRlIHRoYXQgd2UgYWxsb2Nh dGUgY29udGV4dCBmb3Igb2xkIERFRkFVTFQgcGFydGl0aW9uICovCisJCWlzT2xkRGVmYXVs dFBhcnQgPSB0cnVlOworCQlkZWZhdWx0UGFydEN0eCA9IGNyZWF0ZVNwbGl0UGFydGl0aW9u Q29udGV4dCh0YWJsZV9vcGVuKGRlZmF1bHRQYXJ0T2lkLCBBY2Nlc3NFeGNsdXNpdmVMb2Nr KSk7CisJfQorCisJZWNvbnRleHQgPSBHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSk7 CisKKwkvKiBDcmVhdGUgbmVjZXNzYXJ5IHR1cGxlIHNsb3QuICovCisJc3Jjc2xvdCA9IE1h a2VTaW5nbGVUdXBsZVRhYmxlU2xvdChSZWxhdGlvbkdldERlc2NyKHNwbGl0UmVsKSwKKwkJ CQkJCQkJCSAgIHRhYmxlX3Nsb3RfY2FsbGJhY2tzKHNwbGl0UmVsKSk7CisKKwkvKgorCSAq IE1hcCBjb21wdXRpbmcgZm9yIG1vdmluZyBhdHRyaWJ1dGVzIG9mIHNwbGl0IHBhcnRpdGlv biB0byBuZXcgcGFydGl0aW9uCisJICogKGZvciBmaXJzdCBuZXcgcGFydGl0aW9uIGJ1dCBv dGhlciBuZXcgcGFydGl0aW9ucyBjYW4gdXNlIHRoZSBzYW1lCisJICogbWFwKS4KKwkgKi8K KwlwYyA9IChTcGxpdFBhcnRpdGlvbkNvbnRleHQgKikgbGZpcnN0KGxpc3RfaGVhZChwYXJ0 Q29udGV4dHMpKTsKKwl0dXBsZV9tYXAgPSBjb252ZXJ0X3R1cGxlc19ieV9uYW1lKFJlbGF0 aW9uR2V0RGVzY3Ioc3BsaXRSZWwpLAorCQkJCQkJCQkJICAgUmVsYXRpb25HZXREZXNjcihw Yy0+cGFydFJlbCkpOworCisJLyogU2NhbiB0aHJvdWdoIHRoZSByb3dzLiAqLworCXNuYXBz aG90ID0gUmVnaXN0ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKKwlzY2FuID0g dGFibGVfYmVnaW5zY2FuKHNwbGl0UmVsLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisKKwkvKgor CSAqIFN3aXRjaCB0byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0IGZv ciBlYWNoIHR1cGxlCisJICogcHJvZHVjZWQsIHNvIHdlIGRvbid0IGxlYWsgbWVtb3J5Lgor CSAqLworCW9sZEN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhHZXRQZXJUdXBsZU1lbW9y eUNvbnRleHQoZXN0YXRlKSk7CisKKwl3aGlsZSAodGFibGVfc2Nhbl9nZXRuZXh0c2xvdChz Y2FuLCBGb3J3YXJkU2NhbkRpcmVjdGlvbiwgc3Jjc2xvdCkpCisJeworCQlib29sCQlmb3Vu ZCA9IGZhbHNlOworCQlUdXBsZVRhYmxlU2xvdCAqaW5zZXJ0c2xvdDsKKworCQkvKiBFeHRy YWN0IGRhdGEgZnJvbSBvbGQgdHVwbGUuICovCisJCXNsb3RfZ2V0YWxsYXR0cnMoc3Jjc2xv dCk7CisKKwkJZWNvbnRleHQtPmVjeHRfc2NhbnR1cGxlID0gc3Jjc2xvdDsKKworCQkvKiBT ZWFyY2ggcGFydGl0aW9uIGZvciBjdXJyZW50IHNsb3Qgc3Jjc2xvdC4gKi8KKwkJZm9yZWFj aChsaXN0cHRyLCBwYXJ0Q29udGV4dHMpCisJCXsKKwkJCXBjID0gKFNwbGl0UGFydGl0aW9u Q29udGV4dCAqKSBsZmlyc3QobGlzdHB0cik7CisKKwkJCWlmIChwYy0+cGFydHF1YWxzdGF0 ZSAvKiBza2lwIERFRkFVTFQgcGFydGl0aW9uICovICYmCisJCQkJRXhlY0NoZWNrKHBjLT5w YXJ0cXVhbHN0YXRlLCBlY29udGV4dCkpCisJCQl7CisJCQkJZm91bmQgPSB0cnVlOworCQkJ CWJyZWFrOworCQkJfQorCQkJUmVzZXRFeHByQ29udGV4dChlY29udGV4dCk7CisJCX0KKwkJ aWYgKCFmb3VuZCkKKwkJeworCQkJLyogVXNlIERFRkFVTFQgcGFydGl0aW9uIGlmIGl0IGV4 aXN0cy4gKi8KKwkJCWlmIChkZWZhdWx0UGFydEN0eCkKKwkJCQlwYyA9IGRlZmF1bHRQYXJ0 Q3R4OworCQkJZWxzZQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJD T0RFX0NIRUNLX1ZJT0xBVElPTiksCisJCQkJCQkgZXJybXNnKCJjYW4gbm90IGZpbmQgcGFy dGl0aW9uIGZvciBzcGxpdCBwYXJ0aXRpb24gcm93IiksCisJCQkJCQkgZXJydGFibGUoc3Bs aXRSZWwpKSk7CisJCX0KKworCQlpZiAodHVwbGVfbWFwKQorCQl7CisJCQkvKiBOZWVkIHRv IHVzZSBtYXAgZm9yIGNvcHkgYXR0cmlidXRlcy4gKi8KKwkJCWluc2VydHNsb3QgPSBleGVj dXRlX2F0dHJfbWFwX3Nsb3QodHVwbGVfbWFwLT5hdHRyTWFwLCBzcmNzbG90LCBwYy0+ZHN0 c2xvdCk7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBDb3B5IGF0dHJpYnV0ZXMgZGlyZWN0 bHkuICovCisJCQlpbnNlcnRzbG90ID0gcGMtPmRzdHNsb3Q7CisKKwkJCUV4ZWNDbGVhclR1 cGxlKGluc2VydHNsb3QpOworCisJCQltZW1jcHkoaW5zZXJ0c2xvdC0+dHRzX3ZhbHVlcywg c3Jjc2xvdC0+dHRzX3ZhbHVlcywKKwkJCQkgICBzaXplb2YoRGF0dW0pICogc3Jjc2xvdC0+ dHRzX252YWxpZCk7CisJCQltZW1jcHkoaW5zZXJ0c2xvdC0+dHRzX2lzbnVsbCwgc3Jjc2xv dC0+dHRzX2lzbnVsbCwKKwkJCQkgICBzaXplb2YoYm9vbCkgKiBzcmNzbG90LT50dHNfbnZh bGlkKTsKKworCQkJRXhlY1N0b3JlVmlydHVhbFR1cGxlKGluc2VydHNsb3QpOworCQl9CisK KwkJLyogV3JpdGUgdGhlIHR1cGxlIG91dCB0byB0aGUgbmV3IHJlbGF0aW9uLiAqLworCQl0 YWJsZV90dXBsZV9pbnNlcnQocGMtPnBhcnRSZWwsIGluc2VydHNsb3QsIG15Y2lkLCB0aV9v cHRpb25zLCBwYy0+YmlzdGF0ZSk7CisKKwkJUmVzZXRFeHByQ29udGV4dChlY29udGV4dCk7 CisKKwkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKwl9CisKKwlNZW1vcnlDb250ZXh0U3dp dGNoVG8ob2xkQ3h0KTsKKworCXRhYmxlX2VuZHNjYW4oc2Nhbik7CisJVW5yZWdpc3RlclNu YXBzaG90KHNuYXBzaG90KTsKKworCWlmICh0dXBsZV9tYXApCisJCWZyZWVfY29udmVyc2lv bl9tYXAodHVwbGVfbWFwKTsKKworCUV4ZWNEcm9wU2luZ2xlVHVwbGVUYWJsZVNsb3Qoc3Jj c2xvdCk7CisKKwlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOworCisJZm9yZWFjaChsaXN0 cHRyLCBwYXJ0Q29udGV4dHMpCisJCWRlbGV0ZVNwbGl0UGFydGl0aW9uQ29udGV4dCgoU3Bs aXRQYXJ0aXRpb25Db250ZXh0ICopIGxmaXJzdChsaXN0cHRyKSwgdGlfb3B0aW9ucyk7CisK KwkvKiBOZWVkIHRvIGNsb3NlIHRhYmxlIGFuZCBmcmVlIGJ1ZmZlcnMgZm9yIERFRkFVTFQg cGFydGl0aW9uLiAqLworCWlmIChpc09sZERlZmF1bHRQYXJ0KQorCXsKKwkJUmVsYXRpb24g ZGVmYXVsdFBhcnRSZWwgPSBkZWZhdWx0UGFydEN0eC0+cGFydFJlbDsKKworCQlkZWxldGVT cGxpdFBhcnRpdGlvbkNvbnRleHQoZGVmYXVsdFBhcnRDdHgsIHRpX29wdGlvbnMpOworCQkv KiBLZWVwIHRoZSBsb2NrIHVudGlsIGNvbW1pdC4gKi8KKwkJdGFibGVfY2xvc2UoZGVmYXVs dFBhcnRSZWwsIE5vTG9jayk7CisJfQorfQorCiAvKgogICogY3JlYXRlUGFydGl0aW9uVGFi bGU6IGNyZWF0ZSB0YWJsZSBmb3IgbmV3IHBhcnRpdGlvbiB3aXRoIGdpdmVuIG5hbWUKICAq IChuZXdQYXJ0TmFtZSkgbGlrZSB0YWJsZSAobW9kZWxSZWxOYW1lKQpAQCAtMTk0MDQsNiAr MTk2NzUsMTQyIEBAIGNyZWF0ZVBhcnRpdGlvblRhYmxlKFJhbmdlVmFyICpuZXdQYXJ0TmFt ZSwgUmFuZ2VWYXIgKm1vZGVsUmVsTmFtZSwKIAkJCQkgICBOVUxMKTsKIH0KIAorLyoKKyAq IEFMVEVSIFRBQkxFIDxuYW1lPiBTUExJVCBQQVJUSVRJT04gPHBhcnRpdGlvbi1uYW1lPiBJ TlRPIDxwYXJ0aXRpb24tbGlzdD4KKyAqLworc3RhdGljIHZvaWQKK0FURXhlY1NwbGl0UGFy dGl0aW9uKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24g cmVsLAorCQkJCQkgUGFydGl0aW9uQ21kICpjbWQsIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4 dCAqY29udGV4dCkKK3sKKwlSZWxhdGlvbglzcGxpdFJlbDsKKwlPaWQJCQlzcGxpdFJlbE9p ZDsKKwljaGFyCQlyZWxuYW1lW05BTUVEQVRBTEVOXTsKKwlPaWQJCQluYW1lc3BhY2VJZDsK KwlMaXN0Q2VsbCAgICpsaXN0cHRyLAorCQkJICAgKmxpc3RwdHIyOworCWJvb2wJCWlzU2Ft ZU5hbWUgPSBmYWxzZTsKKwljaGFyCQl0bXBSZWxOYW1lW05BTUVEQVRBTEVOXTsKKwlMaXN0 CSAgICpuZXdQYXJ0UmVscyA9IE5JTDsKKwlPYmplY3RBZGRyZXNzIG9iamVjdDsKKwlSYW5n ZVZhciAgICpzcGxpdFBhcnROYW1lID0gY21kLT5uYW1lOworCU9pZAkJCWRlZmF1bHRQYXJ0 T2lkOworCisJZGVmYXVsdFBhcnRPaWQgPSBnZXRfZGVmYXVsdF9vaWRfZnJvbV9wYXJ0ZGVz YyhSZWxhdGlvbkdldFBhcnRpdGlvbkRlc2MocmVsLCB0cnVlKSk7CisKKwkvKgorCSAqIFdl IGFyZSBnb2luZyB0byBkZXRhY2ggYW5kIHJlbW92ZSB0aGlzIHBhcnRpdGlvbjogbmVlZCB0 byB1c2UgZXhjbHVzaXZlCisJICogbG9jayBmb3IgcHJldmVudCBETUwtcXVlcmllcyB0byB0 aGUgcGFydGl0aW9uLgorCSAqLworCXNwbGl0UmVsID0gdGFibGVfb3BlbnJ2KHNwbGl0UGFy dE5hbWUsIEFjY2Vzc0V4Y2x1c2l2ZUxvY2spOworCisJaWYgKHNwbGl0UmVsLT5yZF9yZWwt PnJlbGtpbmQgIT0gUkVMS0lORF9SRUxBVElPTikKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJjYW5u b3Qgc3BsaXQgbm9uLXRhYmxlIHBhcnRpdGlvbiBcIiVzXCIiLAorCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUoc3BsaXRSZWwpKSkpOworCisJc3BsaXRSZWxPaWQgPSBSZWxhdGlv bkdldFJlbGlkKHNwbGl0UmVsKTsKKworCS8qIENoZWNrIGRlc2NyaXB0aW9ucyBvZiBuZXcg cGFydGl0aW9ucy4gKi8KKwlmb3JlYWNoKGxpc3RwdHIsIGNtZC0+cGFydGxpc3QpCisJewor CQlPaWQJCQlleGlzdGluZ19yZWxpZDsKKwkJU2luZ2xlUGFydGl0aW9uU3BlYyAqc3BzID0g KFNpbmdsZVBhcnRpdGlvblNwZWMgKikgbGZpcnN0KGxpc3RwdHIpOworCisJCXN0cmxjcHko cmVsbmFtZSwgc3BzLT5uYW1lLT5yZWxuYW1lLCBOQU1FREFUQUxFTik7CisKKwkJLyoKKwkJ ICogTG9vayB1cCB0aGUgbmFtZXNwYWNlIGluIHdoaWNoIHdlIGFyZSBzdXBwb3NlZCB0byBj cmVhdGUgdGhlCisJCSAqIHBhcnRpdGlvbiwgY2hlY2sgd2UgaGF2ZSBwZXJtaXNzaW9uIHRv IGNyZWF0ZSB0aGVyZSwgbG9jayBpdAorCQkgKiBhZ2FpbnN0IGNvbmN1cnJlbnQgZHJvcCwg YW5kIG1hcmsgc3RtdC0+cmVsYXRpb24gYXMKKwkJICogUkVMUEVSU0lTVEVOQ0VfVEVNUCBp ZiBhIHRlbXBvcmFyeSBuYW1lc3BhY2UgaXMgc2VsZWN0ZWQuCisJCSAqLworCQluYW1lc3Bh Y2VJZCA9CisJCQlSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRpb25OYW1lc3BhY2Uoc3BzLT5u YW1lLCBOb0xvY2ssIE5VTEwpOworCisJCS8qCisJCSAqIFRoaXMgd291bGQgZmFpbCBsYXRl ciBvbiBhbnl3YXksIGlmIHRoZSByZWxhdGlvbiBhbHJlYWR5IGV4aXN0cy4KKwkJICogQnV0 IGJ5IGNhdGNoaW5nIGl0IGhlcmUgd2UgY2FuIGVtaXQgYSBuaWNlciBlcnJvciBtZXNzYWdl LgorCQkgKi8KKwkJZXhpc3RpbmdfcmVsaWQgPSBnZXRfcmVsbmFtZV9yZWxpZChyZWxuYW1l LCBuYW1lc3BhY2VJZCk7CisJCWlmIChleGlzdGluZ19yZWxpZCA9PSBzcGxpdFJlbE9pZCAm JiAhaXNTYW1lTmFtZSkKKwkJCS8qIE9uZSBuZXcgcGFydGl0aW9uIGNhbiBoYXZlIHRoZSBz YW1lIG5hbWUgYXMgc3BsaXQgcGFydGl0aW9uLiAqLworCQkJaXNTYW1lTmFtZSA9IHRydWU7 CisJCWVsc2UgaWYgKGV4aXN0aW5nX3JlbGlkICE9IEludmFsaWRPaWQpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9UQUJMRSksCisJCQkJ CSBlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIsIHJlbG5hbWUpKSk7 CisJfQorCisJLyogRGV0YWNoIHNwbGl0IHBhcnRpdGlvbi4gKi8KKwlSZW1vdmVJbmhlcml0 YW5jZShzcGxpdFJlbCwgcmVsLCBmYWxzZSk7CisJLyogRG8gdGhlIGZpbmFsIHBhcnQgb2Yg ZGV0YWNoaW5nLiAqLworCURldGFjaFBhcnRpdGlvbkZpbmFsaXplKHJlbCwgc3BsaXRSZWws IGZhbHNlLCBkZWZhdWx0UGFydE9pZCk7CisKKwkvKgorCSAqIElmIG5ldyBwYXJ0aXRpb24g aGFzIHRoZSBzYW1lIG5hbWUgYXMgc3BsaXQgcGFydGl0aW9uIHRoZW4gd2Ugc2hvdWxkCisJ ICogcmVuYW1lIHNwbGl0IHBhcnRpdGlvbiBmb3IgcmV1c2UgbmFtZS4KKwkgKi8KKwlpZiAo aXNTYW1lTmFtZSkKKwl7CisJCS8qCisJCSAqIFdlIG11c3QgYnVtcCB0aGUgY29tbWFuZCBj b3VudGVyIHRvIG1ha2UgdGhlIHNwbGl0IHBhcnRpdGlvbiB0dXBsZQorCQkgKiB2aXNpYmxl IGZvciByZW5hbWUuCisJCSAqLworCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCQkv KiBSZW5hbWUgcGFydGl0aW9uLiAqLworCQlzcHJpbnRmKHRtcFJlbE5hbWUsICJzcGxpdC0l dS0lWC10bXAiLCBSZWxhdGlvbkdldFJlbGlkKHJlbCksIE15UHJvY1BpZCk7CisJCVJlbmFt ZVJlbGF0aW9uSW50ZXJuYWwoc3BsaXRSZWxPaWQsIHRtcFJlbE5hbWUsIGZhbHNlLCBmYWxz ZSk7CisJCXNwbGl0UGFydE5hbWUgPSBtYWtlUmFuZ2VWYXIoCisJCQkJCQkJCQkgZ2V0X25h bWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHNwbGl0UmVsKSksCisJCQkJCQkJ CQkgdG1wUmVsTmFtZSwgLTEpOworCisJCS8qCisJCSAqIFdlIG11c3QgYnVtcCB0aGUgY29t bWFuZCBjb3VudGVyIHRvIG1ha2UgdGhlIHNwbGl0IHBhcnRpdGlvbiB0dXBsZQorCQkgKiB2 aXNpYmxlIGFmdGVyIHJlbmFtZS4KKwkJICovCisJCUNvbW1hbmRDb3VudGVySW5jcmVtZW50 KCk7CisJfQorCisJLyogQ3JlYXRlIG5ldyBwYXJ0aXRpb25zIChsaWtlIHNwbGl0IHBhcnRp dGlvbiksIHdpdGhvdXQgaW5kZXhlcy4gKi8KKwlmb3JlYWNoKGxpc3RwdHIsIGNtZC0+cGFy dGxpc3QpCisJeworCQlTaW5nbGVQYXJ0aXRpb25TcGVjICpzcHMgPSAoU2luZ2xlUGFydGl0 aW9uU3BlYyAqKSBsZmlyc3QobGlzdHB0cik7CisJCVJlbGF0aW9uCW5ld1BhcnRSZWw7CisK KwkJY3JlYXRlUGFydGl0aW9uVGFibGUoc3BzLT5uYW1lLCBzcGxpdFBhcnROYW1lLCBjb250 ZXh0KTsKKworCQkvKiBPcGVuIHRoZSBuZXcgcGFydGl0aW9uIGFuZCBhY3F1aXJlIGV4Y2x1 c2l2ZSBsb2NrIG9uIGl0LiAqLworCQluZXdQYXJ0UmVsID0gdGFibGVfb3BlbnJ2KHNwcy0+ bmFtZSwgQWNjZXNzRXhjbHVzaXZlTG9jayk7CisKKwkJbmV3UGFydFJlbHMgPSBsYXBwZW5k KG5ld1BhcnRSZWxzLCBuZXdQYXJ0UmVsKTsKKwl9CisKKwkvKiBDb3B5IGRhdGEgZnJvbSBz cGxpdCBwYXJ0aXRpb24gdG8gbmV3IHBhcnRpdGlvbnMuICovCisJbW92ZVNwbGl0VGFibGVS b3dzKHJlbCwgc3BsaXRSZWwsIGNtZC0+cGFydGxpc3QsIG5ld1BhcnRSZWxzLCBkZWZhdWx0 UGFydE9pZCk7CisJLyogS2VlcCB0aGUgbG9jayB1bnRpbCBjb21taXQuICovCisJdGFibGVf Y2xvc2Uoc3BsaXRSZWwsIE5vTG9jayk7CisKKwkvKiBBdHRhY2ggbmV3IHBhcnRpdGlvbnMg dG8gcGFydGl0aW9uZWQgdGFibGUuICovCisJZm9yYm90aChsaXN0cHRyLCBjbWQtPnBhcnRs aXN0LCBsaXN0cHRyMiwgbmV3UGFydFJlbHMpCisJeworCQlTaW5nbGVQYXJ0aXRpb25TcGVj ICpzcHMgPSAoU2luZ2xlUGFydGl0aW9uU3BlYyAqKSBsZmlyc3QobGlzdHB0cik7CisJCVJl bGF0aW9uCW5ld1BhcnRSZWwgPSAoUmVsYXRpb24pIGxmaXJzdChsaXN0cHRyMik7CisKKwkJ Lyogd3F1ZXVlID0gTlVMTDogdmVyaWZpY2F0aW9uIGZvciBlYWNoIGNsb25lZCBjb25zdHJh aW50IGlzIG5vdCBuZWVkLiAqLworCQlhdHRhY2hQYXJ0aXRpb25UYWJsZShOVUxMLCByZWws IG5ld1BhcnRSZWwsIHNwcy0+Ym91bmQpOworCQkvKiBLZWVwIHRoZSBsb2NrIHVudGlsIGNv bW1pdC4gKi8KKwkJdGFibGVfY2xvc2UobmV3UGFydFJlbCwgTm9Mb2NrKTsKKwl9CisKKwkv KiBEcm9wIHNwbGl0IHBhcnRpdGlvbi4gKi8KKwlvYmplY3QuY2xhc3NJZCA9IFJlbGF0aW9u UmVsYXRpb25JZDsKKwlvYmplY3Qub2JqZWN0SWQgPSBzcGxpdFJlbE9pZDsKKwlvYmplY3Qu b2JqZWN0U3ViSWQgPSAwOworCS8qIFByb2JhYmx5IERST1BfQ0FTQ0FERSBpcyBub3QgbmVl ZGVkLiAqLworCXBlcmZvcm1EZWxldGlvbigmb2JqZWN0LCBEUk9QX1JFU1RSSUNULCAwKTsK K30KKwogLyoKICAqIFN0cnVjdCB3aXRoIGNvbnRleHQgb2YgbWVyZ2VkIHBhcnRpdGlvbgog ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQppbmRleCA4MTQ0MzE1MWU4Li5iZGFkZWI2MDY2IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTI2OSw2ICsyNjksNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogCVBhcnRpdGlvbkVsZW0gKnBhcnRlbGVtOwogCVBhcnRpdGlvblNwZWMgKnBhcnRzcGVj OwogCVBhcnRpdGlvbkJvdW5kU3BlYyAqcGFydGJvdW5kc3BlYzsKKwlTaW5nbGVQYXJ0aXRp b25TcGVjICpzaW5nbGVwYXJ0c3BlYzsKIAlSb2xlU3BlYyAgICpyb2xlc3BlYzsKIAlQdWJs aWNhdGlvbk9ialNwZWMgKnB1YmxpY2F0aW9ub2JqZWN0c3BlYzsKIAlzdHJ1Y3QgU2VsZWN0 TGltaXQgKnNlbGVjdGxpbWl0OwpAQCAtNjQxLDYgKzY0Miw4IEBAIHN0YXRpYyBOb2RlICpt YWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBO b2RlICpxdWVyeSk7CiAldHlwZSA8cGFydGVsZW0+CXBhcnRfZWxlbQogJXR5cGUgPGxpc3Q+ CQlwYXJ0X3BhcmFtcwogJXR5cGUgPHBhcnRib3VuZHNwZWM+IFBhcnRpdGlvbkJvdW5kU3Bl YworJXR5cGUgPHNpbmdsZXBhcnRzcGVjPglTaW5nbGVQYXJ0aXRpb25TcGVjCisldHlwZSA8 bGlzdD4JCXBhcnRpdGlvbnNfbGlzdAogJXR5cGUgPGxpc3Q+CQloYXNoX3BhcnRib3VuZAog JXR5cGUgPGRlZmVsdD4JCWhhc2hfcGFydGJvdW5kX2VsZW0KIApAQCAtNzQxLDcgKzc0NCw3 IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1l LCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAKIAlTQVZFUE9JTlQgU0NIRU1BIFND SEVNQVMgU0NST0xMIFNFQVJDSCBTRUNPTkRfUCBTRUNVUklUWSBTRUxFQ1QgU0VRVUVOQ0Ug U0VRVUVOQ0VTCiAJU0VSSUFMSVpBQkxFIFNFUlZFUiBTRVNTSU9OIFNFU1NJT05fVVNFUiBT RVQgU0VUUyBTRVRPRiBTSEFSRSBTSE9XCi0JU0lNSUxBUiBTSU1QTEUgU0tJUCBTTUFMTElO VCBTTkFQU0hPVCBTT01FIFNRTF9QIFNUQUJMRSBTVEFOREFMT05FX1AKKwlTSU1JTEFSIFNJ TVBMRSBTS0lQIFNNQUxMSU5UIFNOQVBTSE9UIFNPTUUgU1BMSVQgU1FMX1AgU1RBQkxFIFNU QU5EQUxPTkVfUAogCVNUQVJUIFNUQVRFTUVOVCBTVEFUSVNUSUNTIFNURElOIFNURE9VVCBT VE9SQUdFIFNUT1JFRCBTVFJJQ1RfUCBTVFJJUF9QCiAJU1VCU0NSSVBUSU9OIFNVQlNUUklO RyBTVVBQT1JUIFNZTU1FVFJJQyBTWVNJRCBTWVNURU1fUCBTWVNURU1fVVNFUgogCkBAIC0y MjUxLDYgKzIyNTQsMjMgQEAgYWx0ZXJfdGFibGVfY21kczoKIAkJCXwgYWx0ZXJfdGFibGVf Y21kcyAnLCcgYWx0ZXJfdGFibGVfY21kCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KIAkJ OwogCitwYXJ0aXRpb25zX2xpc3Q6CisJCQlTaW5nbGVQYXJ0aXRpb25TcGVjCQkJCQkJCXsg JCQgPSBsaXN0X21ha2UxKCQxKTsgfQorCQkJfCBwYXJ0aXRpb25zX2xpc3QgJywnIFNpbmds ZVBhcnRpdGlvblNwZWMJeyAkJCA9IGxhcHBlbmQoJDEsICQzKTsgfQorCQk7CisKK1Npbmds ZVBhcnRpdGlvblNwZWM6CisJCQlQQVJUSVRJT04gcXVhbGlmaWVkX25hbWUgUGFydGl0aW9u Qm91bmRTcGVjCisJCQkJeworCQkJCQlTaW5nbGVQYXJ0aXRpb25TcGVjICpuID0gbWFrZU5v ZGUoU2luZ2xlUGFydGl0aW9uU3BlYyk7CisKKwkJCQkJbi0+bmFtZSA9ICQyOworCQkJCQlu LT5ib3VuZCA9ICQzOworCisJCQkJCSQkID0gbjsKKwkJCQl9CisJCTsKKwogcGFydGl0aW9u X2NtZDoKIAkJCS8qIEFMVEVSIFRBQkxFIDxuYW1lPiBBVFRBQ0ggUEFSVElUSU9OIDx0YWJs ZV9uYW1lPiBGT1IgVkFMVUVTICovCiAJCQlBVFRBQ0ggUEFSVElUSU9OIHF1YWxpZmllZF9u YW1lIFBhcnRpdGlvbkJvdW5kU3BlYwpAQCAtMjI5NSw2ICsyMzE1LDIwIEBAIHBhcnRpdGlv bl9jbWQ6CiAJCQkJCW4tPmRlZiA9IChOb2RlICopIGNtZDsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KKwkJCS8qIEFMVEVSIFRBQkxFIDxuYW1lPiBTUExJVCBQQVJUSVRJT04g PHBhcnRpdGlvbl9uYW1lPiBJTlRPICgpICovCisJCQl8IFNQTElUIFBBUlRJVElPTiBxdWFs aWZpZWRfbmFtZSBJTlRPICcoJyBwYXJ0aXRpb25zX2xpc3QgJyknCisJCQkJeworCQkJCQlB bHRlclRhYmxlQ21kICpuID0gbWFrZU5vZGUoQWx0ZXJUYWJsZUNtZCk7CisJCQkJCVBhcnRp dGlvbkNtZCAqY21kID0gbWFrZU5vZGUoUGFydGl0aW9uQ21kKTsKKworCQkJCQluLT5zdWJ0 eXBlID0gQVRfU3BsaXRQYXJ0aXRpb247CisJCQkJCWNtZC0+bmFtZSA9ICQzOworCQkJCQlj bWQtPmJvdW5kID0gTlVMTDsKKwkJCQkJY21kLT5wYXJ0bGlzdCA9ICQ2OworCQkJCQljbWQt PmNvbmN1cnJlbnQgPSBmYWxzZTsKKwkJCQkJbi0+ZGVmID0gKE5vZGUgKikgY21kOworCQkJ CQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQkJLyogQUxURVIgVEFCTEUgPG5hbWU+IE1F UkdFIFBBUlRJVElPTlMgKCkgSU5UTyA8cGFydGl0aW9uX25hbWU+ICovCiAJCQl8IE1FUkdF IFBBUlRJVElPTlMgJygnIHF1YWxpZmllZF9uYW1lX2xpc3QgJyknIElOVE8gcXVhbGlmaWVk X25hbWUKIAkJCQl7CkBAIC0xNjkxNSw2ICsxNjk0OSw3IEBAIHVucmVzZXJ2ZWRfa2V5d29y ZDoKIAkJCXwgU0lNUExFCiAJCQl8IFNLSVAKIAkJCXwgU05BUFNIT1QKKwkJCXwgU1BMSVQK IAkJCXwgU1FMX1AKIAkJCXwgU1RBQkxFCiAJCQl8IFNUQU5EQUxPTkVfUApAQCAtMTc1MTAs NiArMTc1NDUsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFNNQUxMSU5UCiAJCQl8 IFNOQVBTSE9UCiAJCQl8IFNPTUUKKwkJCXwgU1BMSVQKIAkJCXwgU1FMX1AKIAkJCXwgU1RB QkxFCiAJCQl8IFNUQU5EQUxPTkVfUApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMK aW5kZXggMDI1MjFlMWI2ZC4uYWRhOWQ2Yzc1NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dXRpbGNtZC5jCkBAIC0xMzcsNyArMTM3LDcgQEAgc3RhdGljIHZvaWQgdHJhbnNmb3JtQ29u c3RyYWludEF0dHJzKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsCiAJCQkJCQkJCQkgTGlzdCAq Y29uc3RyYWludExpc3QpOwogc3RhdGljIHZvaWQgdHJhbnNmb3JtQ29sdW1uVHlwZShDcmVh dGVTdG10Q29udGV4dCAqY3h0LCBDb2x1bW5EZWYgKmNvbHVtbik7CiBzdGF0aWMgdm9pZCBz ZXRTY2hlbWFOYW1lKGNoYXIgKmNvbnRleHRfc2NoZW1hLCBjaGFyICoqc3RtdF9zY2hlbWFf bmFtZSk7Ci1zdGF0aWMgdm9pZCB0cmFuc2Zvcm1QYXJ0aXRpb25DbWQoQ3JlYXRlU3RtdENv bnRleHQgKmN4dCwgUGFydGl0aW9uQ21kICpjbWQpOworc3RhdGljIHZvaWQgdHJhbnNmb3Jt UGFydGl0aW9uQ21kKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFBhcnRpdGlvbkJvdW5kU3Bl YyAqYm91bmQpOwogc3RhdGljIExpc3QgKnRyYW5zZm9ybVBhcnRpdGlvblJhbmdlQm91bmRz KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqYmxpc3QsCiAJCQkJCQkJCQkJICAgUmVsYXRp b24gcGFyZW50KTsKIHN0YXRpYyB2b2lkIHZhbGlkYXRlSW5maW5pdGVCb3VuZHMoUGFyc2VT dGF0ZSAqcHN0YXRlLCBMaXN0ICpibGlzdCk7CkBAIC0zMjgzLDYgKzMyODMsNDMgQEAgdHJh bnNmb3JtUnVsZVN0bXQoUnVsZVN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5n LAogfQogCiAKKy8qCisgKiB0cmFuc2Zvcm1QYXJ0aXRpb25DbWRGb3JTcGxpdAorICoJCUFu YWx5emUgdGhlIEFMVEVSIFRBQkxMRSAuLi4gU1BMSVQgUEFSVElUSU9OIGNvbW1hbmQKKyAq CisgKiBGb3IgZWFjaCBuZXcgcGFydGl0aW9uIHNwcy0+Ym91bmQgaXMgc2V0IHRvIHRoZSB0 cmFuc2Zvcm1lZCB2YWx1ZSBvZiBib3VuZC4KKyAqIERvZXMgY2hlY2tzIGZvciBib3VuZHMg b2YgbmV3IHBhcnRpdGlvbnMuCisgKi8KK3N0YXRpYyB2b2lkCit0cmFuc2Zvcm1QYXJ0aXRp b25DbWRGb3JTcGxpdChDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBQYXJ0aXRpb25DbWQgKnBh cnRjbWQpCit7CisJUmVsYXRpb24JcGFyZW50ID0gY3h0LT5yZWw7CisJT2lkCQkJc3BsaXRQ YXJ0T2lkOworCUxpc3RDZWxsICAgKmxpc3RwdHI7CisKKwlpZiAocGFyZW50LT5yZF9yZWwt PnJlbGtpbmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAor CQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSBwYXJ0aXRpb25lZCB0YWJsZSIsIFJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHBhcmVudCkpKSk7CisKKwkvKiBUcmFuc2Zvcm0gcGFydGl0 aW9uIGJvdW5kcyBmb3IgYWxsIHBhcnRpdGlvbnMgaW4gdGhlIGxpc3Q6ICovCisJZm9yZWFj aChsaXN0cHRyLCBwYXJ0Y21kLT5wYXJ0bGlzdCkKKwl7CisJCVNpbmdsZVBhcnRpdGlvblNw ZWMgKnNwcyA9IChTaW5nbGVQYXJ0aXRpb25TcGVjICopIGxmaXJzdChsaXN0cHRyKTsKKwor CQljeHQtPnBhcnRib3VuZCA9IE5VTEw7CisJCXRyYW5zZm9ybVBhcnRpdGlvbkNtZChjeHQs IHNwcy0+Ym91bmQpOworCQkvKiBBc3NpZ24gdHJhbnNmb3JtZWQgdmFsdWUgb2YgdGhlIHBh cnRpdGlvbiBib3VuZC4gKi8KKwkJc3BzLT5ib3VuZCA9IGN4dC0+cGFydGJvdW5kOworCX0K KworCXNwbGl0UGFydE9pZCA9IFJhbmdlVmFyR2V0UmVsaWQocGFydGNtZC0+bmFtZSwgTm9M b2NrLCBmYWxzZSk7CisKKwkvKiBUaGVuIHdlIHNob3VsZCBjaGVjayBwYXJ0aXRpb25zIHdp dGggdHJhbnNmb3JtZWQgYm91bmRzLiAqLworCWNoZWNrX3BhcnRpdGlvbnNfZm9yX3NwbGl0 KHBhcmVudCwgc3BsaXRQYXJ0T2lkLCBwYXJ0Y21kLT5wYXJ0bGlzdCwgY3h0LT5wc3RhdGUp OworfQorCisKIC8qCiAgKiB0cmFuc2Zvcm1QYXJ0aXRpb25DbWRGb3JNZXJnZQogICoJCUFu YWx5emUgdGhlIEFMVEVSIFRBQkxMRSAuLi4gTUVSR0UgUEFSVElUSU9OUyBjb21tYW5kCkBA IC0zNjIwLDcgKzM2NTcsNyBAQCB0cmFuc2Zvcm1BbHRlclRhYmxlU3RtdChPaWQgcmVsaWQs IEFsdGVyVGFibGVTdG10ICpzdG10LAogCQkJCXsKIAkJCQkJUGFydGl0aW9uQ21kICpwYXJ0 Y21kID0gKFBhcnRpdGlvbkNtZCAqKSBjbWQtPmRlZjsKIAotCQkJCQl0cmFuc2Zvcm1QYXJ0 aXRpb25DbWQoJmN4dCwgcGFydGNtZCk7CisJCQkJCXRyYW5zZm9ybVBhcnRpdGlvbkNtZCgm Y3h0LCBwYXJ0Y21kLT5ib3VuZCk7CiAJCQkJCS8qIGFzc2lnbiB0cmFuc2Zvcm1lZCB2YWx1 ZSBvZiB0aGUgcGFydGl0aW9uIGJvdW5kICovCiAJCQkJCXBhcnRjbWQtPmJvdW5kID0gY3h0 LnBhcnRib3VuZDsKIAkJCQl9CkBAIC0zNjI4LDYgKzM2NjUsNyBAQCB0cmFuc2Zvcm1BbHRl clRhYmxlU3RtdChPaWQgcmVsaWQsIEFsdGVyVGFibGVTdG10ICpzdG10LAogCQkJCW5ld2Nt ZHMgPSBsYXBwZW5kKG5ld2NtZHMsIGNtZCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgQVRf U3BsaXRQYXJ0aXRpb246CiAJCQljYXNlIEFUX01lcmdlUGFydGl0aW9uczoKIAkJCQl7CiAJ CQkJCVBhcnRpdGlvbkNtZCAqcGFydGNtZCA9IChQYXJ0aXRpb25DbWQgKikgY21kLT5kZWY7 CkBAIC0zNjM2LDcgKzM2NzQsMTEgQEAgdHJhbnNmb3JtQWx0ZXJUYWJsZVN0bXQoT2lkIHJl bGlkLCBBbHRlclRhYmxlU3RtdCAqc3RtdCwKIAkJCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCiAJCQkJ CQkJCSBlcnJtc2coImxpc3Qgb2YgbmV3IHBhcnRpdGlvbnMgc2hvdWxkIGNvbnRhaW5zIGF0 IGxlYXN0IHR3byBpdGVtcyIpKSk7Ci0JCQkJCXRyYW5zZm9ybVBhcnRpdGlvbkNtZEZvck1l cmdlKCZjeHQsIHBhcnRjbWQpOworCisJCQkJCWlmIChjbWQtPnN1YnR5cGUgPT0gQVRfU3Bs aXRQYXJ0aXRpb24pCisJCQkJCQl0cmFuc2Zvcm1QYXJ0aXRpb25DbWRGb3JTcGxpdCgmY3h0 LCBwYXJ0Y21kKTsKKwkJCQkJZWxzZQorCQkJCQkJdHJhbnNmb3JtUGFydGl0aW9uQ21kRm9y TWVyZ2UoJmN4dCwgcGFydGNtZCk7CiAJCQkJCW5ld2NtZHMgPSBsYXBwZW5kKG5ld2NtZHMs IGNtZCk7CiAJCQkJCWJyZWFrOwogCQkJCX0KQEAgLTQwMzIsMTMgKzQwNzQsMTMgQEAgc2V0 U2NoZW1hTmFtZShjaGFyICpjb250ZXh0X3NjaGVtYSwgY2hhciAqKnN0bXRfc2NoZW1hX25h bWUpCiAKIC8qCiAgKiB0cmFuc2Zvcm1QYXJ0aXRpb25DbWQKLSAqCQlBbmFseXplIHRoZSBB VFRBQ0gvREVUQUNIIFBBUlRJVElPTiBjb21tYW5kCisgKgkJQW5hbHl6ZSB0aGUgQVRUQUNI L0RFVEFDSC9TUExJVCBQQVJUSVRJT04gY29tbWFuZAogICoKLSAqIEluIGNhc2Ugb2YgdGhl IEFUVEFDSCBQQVJUSVRJT04gY29tbWFuZCwgY3h0LT5wYXJ0Ym91bmQgaXMgc2V0IHRvIHRo ZQotICogdHJhbnNmb3JtZWQgdmFsdWUgb2YgY21kLT5ib3VuZC4KKyAqIEluIGNhc2Ugb2Yg dGhlIEFUVEFDSC9TUExJVCBQQVJUSVRJT04gY29tbWFuZCwgY3h0LT5wYXJ0Ym91bmQgaXMg c2V0IHRvIHRoZQorICogdHJhbnNmb3JtZWQgdmFsdWUgb2YgYm91bmQuCiAgKi8KIHN0YXRp YyB2b2lkCi10cmFuc2Zvcm1QYXJ0aXRpb25DbWQoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwg UGFydGl0aW9uQ21kICpjbWQpCit0cmFuc2Zvcm1QYXJ0aXRpb25DbWQoQ3JlYXRlU3RtdENv bnRleHQgKmN4dCwgUGFydGl0aW9uQm91bmRTcGVjICpib3VuZCkKIHsKIAlSZWxhdGlvbglw YXJlbnRSZWwgPSBjeHQtPnJlbDsKIApAQCAtNDA0Nyw5ICs0MDg5LDkgQEAgdHJhbnNmb3Jt UGFydGl0aW9uQ21kKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFBhcnRpdGlvbkNtZCAqY21k KQogCQljYXNlIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEU6CiAJCQkvKiB0cmFuc2Zvcm0g dGhlIHBhcnRpdGlvbiBib3VuZCwgaWYgYW55ICovCiAJCQlBc3NlcnQoUmVsYXRpb25HZXRQ YXJ0aXRpb25LZXkocGFyZW50UmVsKSAhPSBOVUxMKTsKLQkJCWlmIChjbWQtPmJvdW5kICE9 IE5VTEwpCisJCQlpZiAoYm91bmQgIT0gTlVMTCkKIAkJCQljeHQtPnBhcnRib3VuZCA9IHRy YW5zZm9ybVBhcnRpdGlvbkJvdW5kKGN4dC0+cHN0YXRlLCBwYXJlbnRSZWwsCi0JCQkJCQkJ CQkJCQkJCSBjbWQtPmJvdW5kKTsKKwkJCQkJCQkJCQkJCQkJIGJvdW5kKTsKIAkJCWJyZWFr OwogCQljYXNlIFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVg6CiAKQEAgLTQwNTcsNyArNDA5 OSw3IEBAIHRyYW5zZm9ybVBhcnRpdGlvbkNtZChDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBQ YXJ0aXRpb25DbWQgKmNtZCkKIAkJCSAqIEEgcGFydGl0aW9uZWQgaW5kZXggY2Fubm90IGhh dmUgYSBwYXJ0aXRpb24gYm91bmQgc2V0LiAgQUxURVIKIAkJCSAqIElOREVYIHByZXZlbnRz IHRoYXQgd2l0aCBpdHMgZ3JhbW1hciwgYnV0IG5vdCBBTFRFUiBUQUJMRS4KIAkJCSAqLwot CQkJaWYgKGNtZC0+Ym91bmQgIT0gTlVMTCkKKwkJCWlmIChib3VuZCAhPSBOVUxMKQogCQkJ CWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNU X0RFRklOSVRJT04pLAogCQkJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHBhcnRpdGlv bmVkIHRhYmxlIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0 Ym91bmRzLmMgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5jCmluZGV4 IDFmYTBhNzM5NzguLjQ2OTBhMWQ4ZjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnRp dGlvbmluZy9wYXJ0Ym91bmRzLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3Bh cnRib3VuZHMuYwpAQCAtNTA0Niw2ICs1MDQ2LDY2NSBAQCBjaGVja19wYXJ0aXRpb25zX25v dF9vdmVybGFwX3JhbmdlKFJlbGF0aW9uIHBhcmVudCwKIAl9CiB9CiAKKy8qCisgKiBjaGVj a19wYXJ0aXRpb25zX25vdF9vdmVybGFwX2xpc3QKKyAqCisgKiBDaGVja3MgdGhhdCB2YWx1 ZXMgb2YgbmV3IHBhcnRpdGlvbnMgZG8gbm90IG92ZXJsYXAuCisgKiBwYXJ0czogYXJyYXkg b2YgU2luZ2xlUGFydGl0aW9uU3BlYyBzdHJ1Y3RzCisgKiBucGFydHM6IHNpemUgb2YgYXJy YXkgInBhcnRzIi4KKyAqLworc3RhdGljIHZvaWQKK2NoZWNrX3BhcnRpdGlvbnNfbm90X292 ZXJsYXBfbGlzdChSZWxhdGlvbiBwYXJlbnQsCisJCQkJCQkJCSAgU2luZ2xlUGFydGl0aW9u U3BlYyAqICpwYXJ0cywKKwkJCQkJCQkJICBpbnQgbnBhcnRzLAorCQkJCQkJCQkgIFBhcnNl U3RhdGUgKnBzdGF0ZSkKK3sKKwlQYXJ0aXRpb25LZXkga2V5IFBHX1VTRURfRk9SX0FTU0VS VFNfT05MWSA9IFJlbGF0aW9uR2V0UGFydGl0aW9uS2V5KHBhcmVudCk7CisJaW50CQkJb3Zl cmxhcF9sb2NhdGlvbiA9IC0xOworCWludAkJCWksCisJCQkJajsKKwlTaW5nbGVQYXJ0aXRp b25TcGVjICpzcHMxLAorCQkJICAgKnNwczI7CisJTGlzdAkgICAqb3ZlcmxhcDsKKworCUFz c2VydChrZXktPnN0cmF0ZWd5ID09IFBBUlRJVElPTl9TVFJBVEVHWV9MSVNUKTsKKworCWZv ciAoaSA9IDA7IGkgPCBucGFydHM7IGkrKykKKwl7CisJCXNwczEgPSBwYXJ0c1tpXTsKKwor CQlmb3IgKGogPSBpICsgMTsgaiA8IG5wYXJ0czsgaisrKQorCQl7CisJCQlzcHMyID0gcGFy dHNbal07CisKKwkJCS8qCisJCQkgKiBDYWxjdWxhdGUgaW50ZXJzZWN0aW9uIGJldHdlZW4g dmFsdWVzIG9mIHR3byBwYXJ0aXRpb25zLgorCQkJICovCisJCQlvdmVybGFwID0gbGlzdF9p bnRlcnNlY3Rpb24oc3BzMS0+Ym91bmQtPmxpc3RkYXR1bXMsCisJCQkJCQkJCQkJc3BzMi0+ Ym91bmQtPmxpc3RkYXR1bXMpOworCQkJaWYgKGxpc3RfbGVuZ3RoKG92ZXJsYXApID4gMCkK KwkJCXsKKwkJCQlDb25zdAkgICAqdmFsID0gKENvbnN0ICopIGxmaXJzdChsaXN0X2hlYWQo b3ZlcmxhcCkpOworCisJCQkJb3ZlcmxhcF9sb2NhdGlvbiA9IHZhbC0+bG9jYXRpb247CisJ CQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpF Q1RfREVGSU5JVElPTiksCisJCQkJCQkgZXJybXNnKCJuZXcgcGFydGl0aW9uIFwiJXNcIiB3 b3VsZCBvdmVybGFwIHdpdGggYW5vdGhlciBuZXcgcGFydGl0aW9uIFwiJXNcIiIsCisJCQkJ CQkJCXNwczEtPm5hbWUtPnJlbG5hbWUsIHNwczItPm5hbWUtPnJlbG5hbWUpLAorCQkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG92ZXJsYXBfbG9jYXRpb24pKSk7CisJCQl9 CisJCX0KKwl9Cit9CisKKy8qCisgKiBjaGVja19wYXJ0aXRpb25fYm91bmRzX2Zvcl9zcGxp dF9yYW5nZQorICoKKyAqIENoZWNrcyB0aGF0IGJvdW5kcyBvZiBuZXcgcGFydGl0aW9uIGlz IGluc2lkZSBib3VuZHMgb2Ygc3BsaXQgcGFydGl0aW9uCisgKiAod2l0aCBzcGxpdFBhcnRP aWQpLiBJZiBmaXJzdD10cnVlIHRoZW4gbG93ZXIgYm91bmRzIG9mIHBhcnRpdGlvbnMgc2hv dWxkCisgKiBiZSBlcXVhbHMuIElmIGxhc3Q9dHJ1ZSB0aGVuIHVwcGVyIGJvdW5kcyBvZiBw YXJ0aXRpb25zIHNob3VsZCBiZSBlcXVhbHMuCisgKiBJZiBkZWZpbmVkIHNwc1ByZXYgdGhl biBmdW5jdGlvbiBjb21wYXJlcyBsb3dlciBib3VuZCBvZiBzcGVjIHdpdGggdXBwZXIKKyAq IGJvdW5kIG9mIHNwc1ByZXYuCisgKiBkZWZhdWx0UGFydD10cnVlIGluIGNhc2UgcGFydGl0 aW9uZWQgdGFibGUgaGFzIERFRkFVTFQgcGFydGl0aW9uLgorICovCitzdGF0aWMgdm9pZAor Y2hlY2tfcGFydGl0aW9uX2JvdW5kc19mb3Jfc3BsaXRfcmFuZ2UoY2hhciAqcmVsbmFtZSwg UmVsYXRpb24gcGFyZW50LAorCQkJCQkJCQkJICAgUGFydGl0aW9uQm91bmRTcGVjICpzcGVj LAorCQkJCQkJCQkJICAgT2lkIHNwbGl0UGFydE9pZCwKKwkJCQkJCQkJCSAgIGJvb2wgZmly c3QsCisJCQkJCQkJCQkgICBib29sIGxhc3QsCisJCQkJCQkJCQkgICBib29sIGRlZmF1bHRQ YXJ0LAorCQkJCQkJCQkJICAgUGFyc2VTdGF0ZSAqcHN0YXRlKQoreworCVBhcnRpdGlvbktl eSBrZXkgPSBSZWxhdGlvbkdldFBhcnRpdGlvbktleShwYXJlbnQpOworCVBhcnRpdGlvbkRl c2MgcGFydGRlc2MgPSBSZWxhdGlvbkdldFBhcnRpdGlvbkRlc2MocGFyZW50LCBmYWxzZSk7 CisJUGFydGl0aW9uQm91bmRJbmZvIGJvdW5kaW5mbyA9IHBhcnRkZXNjLT5ib3VuZGluZm87 CisJaW50CQkJd2l0aCA9IC0xOworCWJvb2wJCW92ZXJsYXAgPSBmYWxzZTsKKwlpbnQJCQlv dmVybGFwX2xvY2F0aW9uID0gLTE7CisJUGFydGl0aW9uUmFuZ2VCb3VuZCAqbG93ZXIsCisJ CQkgICAqdXBwZXI7CisJaW50CQkJY21wdmFsOworCisJQXNzZXJ0KGtleS0+c3RyYXRlZ3kg PT0gUEFSVElUSU9OX1NUUkFURUdZX1JBTkdFKTsKKwlBc3NlcnQoc3BlYy0+c3RyYXRlZ3kg PT0gUEFSVElUSU9OX1NUUkFURUdZX1JBTkdFKTsKKworCWxvd2VyID0gbWFrZV9vbmVfcGFy dGl0aW9uX3Jib3VuZChrZXksIC0xLCBzcGVjLT5sb3dlcmRhdHVtcywgdHJ1ZSk7CisJdXBw ZXIgPSBtYWtlX29uZV9wYXJ0aXRpb25fcmJvdW5kKGtleSwgLTEsIHNwZWMtPnVwcGVyZGF0 dW1zLCBmYWxzZSk7CisKKwkvKgorCSAqIEZpcnN0IGNoZWNrIGlmIHRoZSByZXN1bHRpbmcg cmFuZ2Ugd291bGQgYmUgZW1wdHkgd2l0aCBzcGVjaWZpZWQgbG93ZXIKKwkgKiBhbmQgdXBw ZXIgYm91bmRzLiAgcGFydGl0aW9uX3Jib3VuZF9jbXAgY2Fubm90IHJldHVybiB6ZXJvIGhl cmUsIHNpbmNlCisJICogdGhlIGxvd2VyLWJvdW5kIGZsYWdzIGFyZSBkaWZmZXJlbnQuCisJ ICovCisJY21wdmFsID0gcGFydGl0aW9uX3Jib3VuZF9jbXAoa2V5LT5wYXJ0bmF0dHMsCisJ CQkJCQkJCSAga2V5LT5wYXJ0c3VwZnVuYywKKwkJCQkJCQkJICBrZXktPnBhcnRjb2xsYXRp b24sCisJCQkJCQkJCSAgbG93ZXItPmRhdHVtcywgbG93ZXItPmtpbmQsCisJCQkJCQkJCSAg dHJ1ZSwgdXBwZXIpOworCUFzc2VydChjbXB2YWwgIT0gMCk7CisJaWYgKGNtcHZhbCA+IDAp CisJeworCQkvKiBQb2ludCB0byBwcm9ibGVtYXRpYyBrZXkgaW4gdGhlIGxvd2VyIGRhdHVt cyBsaXN0LiAqLworCQlQYXJ0aXRpb25SYW5nZURhdHVtICpkYXR1bSA9IGxpc3RfbnRoKHNw ZWMtPmxvd2VyZGF0dW1zLAorCQkJCQkJCQkJCQkgIGNtcHZhbCAtIDEpOworCisJCWVyZXBv cnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklU SU9OKSwKKwkJCQkgZXJybXNnKCJlbXB0eSByYW5nZSBib3VuZCBzcGVjaWZpZWQgZm9yIHBh cnRpdGlvbiBcIiVzXCIiLAorCQkJCQkJcmVsbmFtZSksCisJCQkJIGVycmRldGFpbCgiU3Bl Y2lmaWVkIGxvd2VyIGJvdW5kICVzIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB1cHBl ciBib3VuZCAlcy4iLAorCQkJCQkJICAgZ2V0X3JhbmdlX3BhcnRib3VuZF9zdHJpbmcoc3Bl Yy0+bG93ZXJkYXR1bXMpLAorCQkJCQkJICAgZ2V0X3JhbmdlX3BhcnRib3VuZF9zdHJpbmco c3BlYy0+dXBwZXJkYXR1bXMpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg ZGF0dW0tPmxvY2F0aW9uKSkpOworCX0KKworCWlmIChwYXJ0ZGVzYy0+bnBhcnRzID4gMCkK Kwl7CisJCWludAkJCW9mZnNldDsKKworCQlBc3NlcnQoYm91bmRpbmZvICYmCisJCQkgICBi b3VuZGluZm8tPnN0cmF0ZWd5ID09IFBBUlRJVElPTl9TVFJBVEVHWV9SQU5HRSAmJgorCQkJ ICAgKGJvdW5kaW5mby0+bmRhdHVtcyA+IDAgfHwKKwkJCQlwYXJ0aXRpb25fYm91bmRfaGFz X2RlZmF1bHQoYm91bmRpbmZvKSkpOworCisJCS8qCisJCSAqIFRlc3Qgd2hldGhlciB0aGUg bmV3IGxvd2VyIGJvdW5kICh3aGljaCBpcyB0cmVhdGVkIGluY2x1c2l2ZWx5IGFzCisJCSAq IHBhcnQgb2YgdGhlIG5ldyBwYXJ0aXRpb24pIGxpZXMgaW5zaWRlIGFuIGV4aXN0aW5nIHBh cnRpdGlvbiwgb3IgaW4KKwkJICogYSBnYXAuCisJCSAqCisJCSAqIElmIGl0J3MgaW5zaWRl IGFuIGV4aXN0aW5nIHBhcnRpdGlvbiwgdGhlIGJvdW5kIGF0IG9mZnNldCArIDEgd2lsbAor CQkgKiBiZSB0aGUgdXBwZXIgYm91bmQgb2YgdGhhdCBwYXJ0aXRpb24sIGFuZCBpdHMgaW5k ZXggd2lsbCBiZSA+PSAwLgorCQkgKgorCQkgKiBJZiBpdCdzIGluIGEgZ2FwLCB0aGUgYm91 bmQgYXQgb2Zmc2V0ICsgMSB3aWxsIGJlIHRoZSBsb3dlciBib3VuZAorCQkgKiBvZiB0aGUg bmV4dCBwYXJ0aXRpb24sIGFuZCBpdHMgaW5kZXggd2lsbCBiZSAtMS4gVGhpcyBpcyBhbHNv IHRydWUKKwkJICogaWYgdGhlcmUgaXMgbm8gbmV4dCBwYXJ0aXRpb24sIHNpbmNlIHRoZSBp bmRleCBhcnJheSBpcyBpbml0aWFsaXNlZAorCQkgKiB3aXRoIGFuIGV4dHJhIC0xIGF0IHRo ZSBlbmQuCisJCSAqLworCQlvZmZzZXQgPSBwYXJ0aXRpb25fcmFuZ2VfYnNlYXJjaChrZXkt PnBhcnRuYXR0cywKKwkJCQkJCQkJCQkga2V5LT5wYXJ0c3VwZnVuYywKKwkJCQkJCQkJCQkg a2V5LT5wYXJ0Y29sbGF0aW9uLAorCQkJCQkJCQkJCSBib3VuZGluZm8sIGxvd2VyLAorCQkJ CQkJCQkJCSAmY21wdmFsKTsKKworCQlpZiAoYm91bmRpbmZvLT5pbmRleGVzW29mZnNldCAr IDFdIDwgMCkKKwkJeworCQkJUGFydGl0aW9uUmFuZ2VEYXR1bSAqZGF0dW0gPSBsaXN0X250 aChzcGVjLT5sb3dlcmRhdHVtcywgQWJzKGNtcHZhbCkgLSAxKTsKKworCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9O KSwKKwkJCQkJIGVycm1zZygiYm91bmRzIG9mIHBhcnRpdGlvbiBcIiVzXCIgYXJlIG91dHNp ZGUgYm91bmRzIG9mIHNwbGl0IHBhcnRpdGlvbiIsCisJCQkJCQkJcmVsbmFtZSksCisJCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBkYXR1bS0+bG9jYXRpb24pKSk7CisJCX0K KwkJZWxzZQorCQl7CisJCQkvKgorCQkJICogVGhlIG5ldyBwYXJ0aXRpb24gb3ZlcmxhcHMg d2l0aCB0aGUgZXhpc3RpbmcgcGFydGl0aW9uIGJldHdlZW4KKwkJCSAqIG9mZnNldCBhbmQg b2Zmc2V0ICsgMS4KKwkJCSAqLworCQkJUGFydGl0aW9uUmFuZ2VEYXR1bSAqZGF0dW07CisK KwkJCS8qCisJCQkgKiBQb2ludCB0byBwcm9ibGVtYXRpYyBrZXkgaW4gdGhlIGxvd2VyIGRh dHVtcyBsaXN0OyBpZiB3ZSBoYXZlCisJCQkgKiBlcXVhbGl0eSwgcG9pbnQgdG8gdGhlIGZp cnN0IG9uZS4KKwkJCSAqLworCQkJZGF0dW0gPSBjbXB2YWwgPT0gMCA/IGxpbml0aWFsKHNw ZWMtPmxvd2VyZGF0dW1zKSA6CisJCQkJbGlzdF9udGgoc3BlYy0+bG93ZXJkYXR1bXMsIEFi cyhjbXB2YWwpIC0gMSk7CisJCQlvdmVybGFwX2xvY2F0aW9uID0gZGF0dW0tPmxvY2F0aW9u OworCQkJd2l0aCA9IGJvdW5kaW5mby0+aW5kZXhlc1tvZmZzZXQgKyAxXTsKKwkJCWlmIChw YXJ0ZGVzYy0+b2lkc1t3aXRoXSAhPSBzcGxpdFBhcnRPaWQpCisJCQkJb3ZlcmxhcCA9IHRy dWU7CisJCQllbHNlIGlmIChmaXJzdCB8fCBsYXN0KQorCQkJeworCQkJCS8qCisJCQkJICog TG93ZXIgYm91bmQgb2YgZmlyc3QgcGFydGl0aW9uIHNob3VsZCBiZSBlcXVhbHMgdG8gbG93 ZXIKKwkJCQkgKiBib3VuZCBvZiBzcGxpdCBwYXJ0aXRpb24uIFVwcGVyIGJvdW5kIG9mIGxh c3QgcGFydGl0aW9uCisJCQkJICogc2hvdWxkIGJlIGVxdWFscyB0byB1cHBlciBib3VuZCBv ZiBzcGxpdCBwYXJ0aXRpb24uCisJCQkJICoKKwkJCQkgKiBOZWVkIHRvIGRvIGV4YWN0IGNo ZWNrIG9mIHRoaXMgY29uZGl0aW9uIGlmIG5vdCBleGlzdHMKKwkJCQkgKiBERUZBVUxUIHBh cnRpdGlvbi4gT3RoZXJ3aXNlIGNhbiBiZSBzcGFjZXMgYmV0d2VlbgorCQkJCSAqIHBhcnRp dGlvbnMuCisJCQkJICovCisJCQkJRGF0dW0JICAgKmRhdHVtczsKKwkJCQlQYXJ0aXRpb25S YW5nZURhdHVtS2luZCAqa2luZDsKKwkJCQlpbnQJCQljdXJvZmZzZXQgPSBvZmZzZXQgKyAo bGFzdCA/IDEgOiAwKTsKKworCQkJCWRhdHVtcyA9IGJvdW5kaW5mby0+ZGF0dW1zW2N1cm9m ZnNldF07CisJCQkJa2luZCA9IGJvdW5kaW5mby0+a2luZFtjdXJvZmZzZXRdOworCisJCQkJ Y21wdmFsID0gcGFydGl0aW9uX3Jib3VuZF9jbXAoa2V5LT5wYXJ0bmF0dHMsCisJCQkJCQkJ CQkJCSAga2V5LT5wYXJ0c3VwZnVuYywKKwkJCQkJCQkJCQkJICBrZXktPnBhcnRjb2xsYXRp b24sCisJCQkJCQkJCQkJCSAgZGF0dW1zLCBraW5kLAorCQkJCQkJCQkJCQkgIGZpcnN0LAor CQkJCQkJCQkJCQkgIGZpcnN0ID8gbG93ZXIgOiB1cHBlcik7CisJCQkJaWYgKCghZGVmYXVs dFBhcnQgJiYgY21wdmFsKSB8fAorCQkJCS8qIElzIHBhcnRpdGlvbiBib3VuZCBvdXRzaWRl IG9mIHNwbGl0IHBhcnRpdGlvbiBib3VuZD8gKi8KKwkJCQkJKGRlZmF1bHRQYXJ0ICYmIGZp cnN0ICYmIGNtcHZhbCA+IDApIHx8CisJCQkJCShkZWZhdWx0UGFydCAmJiBsYXN0ICYmIGNt cHZhbCA8IDApKQorCQkJCXsKKwkJCQkJZGF0dW0gPSBsaXN0X250aChmaXJzdCA/CisJCQkJ CQkJCQkgc3BlYy0+bG93ZXJkYXR1bXMgOiBzcGVjLT51cHBlcmRhdHVtcywKKwkJCQkJCQkJ CSBBYnMoY21wdmFsKSAtIDEpOworCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJCQkgZXJy bXNnKCIlcyBib3VuZCBvZiBwYXJ0aXRpb24gXCIlc1wiIGlzIG5vdCBlcXVhbHMgdG8gJXMg Ym91bmQgb2Ygc3BsaXQgcGFydGl0aW9uIiwKKwkJCQkJCQkJCWZpcnN0ID8gImxvd2VyIiA6 ICJ1cHBlciIsCisJCQkJCQkJCQlyZWxuYW1lLAorCQkJCQkJCQkJZmlyc3QgPyAibG93ZXIi IDogInVwcGVyIiksCisJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGRhdHVt LT5sb2NhdGlvbikpKTsKKwkJCQl9CisJCQl9CisJCX0KKwl9CisKKwlpZiAob3ZlcmxhcCkK Kwl7CisJCUFzc2VydCh3aXRoID49IDApOworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJIGVycm1zZygi bmV3IHBhcnRpdGlvbiBcIiVzXCIgd291bGQgb3ZlcmxhcCB3aXRoIGFub3RoZXIgKG5vdCBz cGxpdCkgcGFydGl0aW9uIFwiJXNcIiIsCisJCQkJCQlyZWxuYW1lLCBnZXRfcmVsX25hbWUo cGFydGRlc2MtPm9pZHNbd2l0aF0pKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0 ZSwgb3ZlcmxhcF9sb2NhdGlvbikpKTsKKwl9Cit9CisKKy8qCisgKiBjaGVja19wYXJ0aXRp b25fYm91bmRzX2Zvcl9zcGxpdF9saXN0CisgKgorICogQ2hlY2tzIHRoYXQgYm91bmRzIG9m IG5ldyBwYXJ0aXRpb24gaXMgaW5zaWRlIGJvdW5kcyBvZiBzcGxpdCBwYXJ0aXRpb24KKyAq ICh3aXRoIHNwbGl0UGFydE9pZCkuCisgKi8KK3N0YXRpYyB2b2lkCitjaGVja19wYXJ0aXRp b25fYm91bmRzX2Zvcl9zcGxpdF9saXN0KGNoYXIgKnJlbG5hbWUsIFJlbGF0aW9uIHBhcmVu dCwKKwkJCQkJCQkJCSAgUGFydGl0aW9uQm91bmRTcGVjICpzcGVjLAorCQkJCQkJCQkJICBP aWQgc3BsaXRQYXJ0T2lkLAorCQkJCQkJCQkJICBQYXJzZVN0YXRlICpwc3RhdGUpCit7CisJ UGFydGl0aW9uS2V5IGtleSA9IFJlbGF0aW9uR2V0UGFydGl0aW9uS2V5KHBhcmVudCk7CisJ UGFydGl0aW9uRGVzYyBwYXJ0ZGVzYyA9IFJlbGF0aW9uR2V0UGFydGl0aW9uRGVzYyhwYXJl bnQsIGZhbHNlKTsKKwlQYXJ0aXRpb25Cb3VuZEluZm8gYm91bmRpbmZvID0gcGFydGRlc2Mt PmJvdW5kaW5mbzsKKwlpbnQJCQl3aXRoID0gLTE7CisJYm9vbAkJb3ZlcmxhcCA9IGZhbHNl OworCWludAkJCW92ZXJsYXBfbG9jYXRpb24gPSAtMTsKKwlMaXN0Q2VsbCAgICpjZWxsOwor CisJQXNzZXJ0KGtleS0+c3RyYXRlZ3kgPT0gUEFSVElUSU9OX1NUUkFURUdZX0xJU1QpOwor CUFzc2VydChzcGVjLT5zdHJhdGVneSA9PSBQQVJUSVRJT05fU1RSQVRFR1lfTElTVCk7CisK KwkvKiBTaG91bGQgYmUgZXhpc3RzIGF0IGxlYXN0IG9uZSBwYXJ0aXRpb24gZm9yIHNwbGl0 OiAqLworCUFzc2VydChwYXJ0ZGVzYy0+bnBhcnRzID4gMCk7CisKKwlBc3NlcnQoYm91bmRp bmZvICYmCisJCSAgIGJvdW5kaW5mby0+c3RyYXRlZ3kgPT0gUEFSVElUSU9OX1NUUkFURUdZ X0xJU1QgJiYKKwkJICAgKGJvdW5kaW5mby0+bmRhdHVtcyA+IDAgfHwKKwkJCXBhcnRpdGlv bl9ib3VuZF9hY2NlcHRzX251bGxzKGJvdW5kaW5mbykgfHwKKwkJCXBhcnRpdGlvbl9ib3Vu ZF9oYXNfZGVmYXVsdChib3VuZGluZm8pKSk7CisKKwlmb3JlYWNoKGNlbGwsIHNwZWMtPmxp c3RkYXR1bXMpCisJeworCQlDb25zdAkgICAqdmFsID0gbGZpcnN0X25vZGUoQ29uc3QsIGNl bGwpOworCisJCW92ZXJsYXBfbG9jYXRpb24gPSB2YWwtPmxvY2F0aW9uOworCQlpZiAoIXZh bC0+Y29uc3Rpc251bGwpCisJCXsKKwkJCWludAkJCW9mZnNldDsKKwkJCWJvb2wJCWVxdWFs OworCisJCQlvZmZzZXQgPSBwYXJ0aXRpb25fbGlzdF9ic2VhcmNoKCZrZXktPnBhcnRzdXBm dW5jWzBdLAorCQkJCQkJCQkJCQlrZXktPnBhcnRjb2xsYXRpb24sCisJCQkJCQkJCQkJCWJv dW5kaW5mbywKKwkJCQkJCQkJCQkJdmFsLT5jb25zdHZhbHVlLAorCQkJCQkJCQkJCQkmZXF1 YWwpOworCQkJaWYgKG9mZnNldCA+PSAwICYmIGVxdWFsKQorCQkJeworCQkJCXdpdGggPSBi b3VuZGluZm8tPmluZGV4ZXNbb2Zmc2V0XTsKKwkJCQlpZiAocGFydGRlc2MtPm9pZHNbd2l0 aF0gIT0gc3BsaXRQYXJ0T2lkKQorCQkJCXsKKwkJCQkJb3ZlcmxhcCA9IHRydWU7CisJCQkJ CWJyZWFrOworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJ CSBlcnJtc2coIm5ldyBwYXJ0aXRpb24gXCIlc1wiIGNhbm5vdCBoYXZlIHRoaXMgdmFsdWUg YmVjYXVzZSBzcGxpdCBwYXJ0aXRpb24gZG9lcyBub3QgaGF2ZSIsCisJCQkJCQkJCXJlbG5h bWUpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG92ZXJsYXBfbG9jYXRp b24pKSk7CisJCX0KKwkJZWxzZSBpZiAocGFydGl0aW9uX2JvdW5kX2FjY2VwdHNfbnVsbHMo Ym91bmRpbmZvKSkKKwkJeworCQkJd2l0aCA9IGJvdW5kaW5mby0+bnVsbF9pbmRleDsKKwkJ CWlmIChwYXJ0ZGVzYy0+b2lkc1t3aXRoXSAhPSBzcGxpdFBhcnRPaWQpCisJCQl7CisJCQkJ b3ZlcmxhcCA9IHRydWU7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJZWxzZQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJ TklUSU9OKSwKKwkJCQkJIGVycm1zZygibmV3IHBhcnRpdGlvbiBcIiVzXCIgY2Fubm90IGhh dmUgTlVMTCB2YWx1ZSBiZWNhdXNlIHNwbGl0IHBhcnRpdGlvbiBkb2VzIG5vdCBoYXZlIiwK KwkJCQkJCQlyZWxuYW1lKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG92 ZXJsYXBfbG9jYXRpb24pKSk7CisJfQorCisJaWYgKG92ZXJsYXApCisJeworCQlBc3NlcnQo d2l0aCA+PSAwKTsKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lO VkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCSBlcnJtc2coIm5ldyBwYXJ0aXRpb24g XCIlc1wiIHdvdWxkIG92ZXJsYXAgd2l0aCBhbm90aGVyIChub3Qgc3BsaXQpIHBhcnRpdGlv biBcIiVzXCIiLAorCQkJCQkJcmVsbmFtZSwgZ2V0X3JlbF9uYW1lKHBhcnRkZXNjLT5vaWRz W3dpdGhdKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG92ZXJsYXBfbG9j YXRpb24pKSk7CisJfQorfQorCisvKgorICogZmluZF92YWx1ZV9pbl9uZXdfcGFydGl0aW9u cworICoKKyAqIEZ1bmN0aW9uIHJldHVybnMgInRydWUiIGluIGNhc2UgbGlzdCBvZiBuZXcg cGFydGl0aW9ucyAocGFydGxpc3QpIGNvbnRhaW5zCisgKiB2YWx1ZSAidmFsdWUiIGFuZCAi ZmFsc2UiIGlmIG5vdCBjb250YWlucy4KKyAqLworc3RhdGljIGJvb2wKK2ZpbmRfdmFsdWVf aW5fbmV3X3BhcnRpdGlvbnMoRm1nckluZm8gKnBhcnRzdXBmdW5jLAorCQkJCQkJCSBPaWQg KnBhcnRjb2xsYXRpb24sCisJCQkJCQkJIFNpbmdsZVBhcnRpdGlvblNwZWMgKiAqcGFydHMs CisJCQkJCQkJIGludCBucGFydHMsCisJCQkJCQkJIERhdHVtIHZhbHVlLAorCQkJCQkJCSBi b29sIGlzbnVsbCkKK3sKKwlMaXN0Q2VsbCAgICp2YWxwdHI7CisJaW50CQkJaTsKKworCWZv ciAoaSA9IDA7IGkgPCBucGFydHM7IGkrKykKKwl7CisJCVNpbmdsZVBhcnRpdGlvblNwZWMg KnNwcyA9IHBhcnRzW2ldOworCisJCWZvcmVhY2godmFscHRyLCBzcHMtPmJvdW5kLT5saXN0 ZGF0dW1zKQorCQl7CisJCQlDb25zdAkgICAqdmFsID0gbGZpcnN0X25vZGUoQ29uc3QsIHZh bHB0cik7CisKKwkJCWlmIChpc251bGwgJiYgdmFsLT5jb25zdGlzbnVsbCkKKwkJCQlyZXR1 cm4gdHJ1ZTsKKworCQkJaWYgKCFpc251bGwgJiYgIXZhbC0+Y29uc3Rpc251bGwpCisJCQl7 CisJCQkJaWYgKERhdHVtR2V0SW50MzIoRnVuY3Rpb25DYWxsMkNvbGwoJnBhcnRzdXBmdW5j WzBdLAorCQkJCQkJCQkJCQkJCXBhcnRjb2xsYXRpb25bMF0sCisJCQkJCQkJCQkJCQkJdmFs LT5jb25zdHZhbHVlLAorCQkJCQkJCQkJCQkJCXZhbHVlKSkgPT0gMCkKKwkJCQkJcmV0dXJu IHRydWU7CisJCQl9CisJCX0KKwl9CisJcmV0dXJuIGZhbHNlOworfQorCisvKgorICogY2hl Y2tfcGFyZW50X3ZhbHVlc19pbl9uZXdfcGFydGl0aW9ucworICoKKyAqIENoZWNrcyB0aGF0 IGFsbCB2YWx1ZXMgb2Ygc3BsaXQgcGFydGl0aW9uIChwYXJ0T2lkKSBjb250YWlucyBpbiBu ZXcKKyAqIHBhcnRpdGlvbnMgKHBhcnRsaXN0KS4KKyAqLworc3RhdGljIHZvaWQKK2NoZWNr X3BhcmVudF92YWx1ZXNfaW5fbmV3X3BhcnRpdGlvbnMoUmVsYXRpb24gcGFyZW50LAorCQkJ CQkJCQkJICBPaWQgcGFydE9pZCwKKwkJCQkJCQkJCSAgU2luZ2xlUGFydGl0aW9uU3BlYyAq ICpwYXJ0cywKKwkJCQkJCQkJCSAgaW50IG5wYXJ0cywKKwkJCQkJCQkJCSAgUGFyc2VTdGF0 ZSAqcHN0YXRlKQoreworCVBhcnRpdGlvbktleSBrZXkgPSBSZWxhdGlvbkdldFBhcnRpdGlv bktleShwYXJlbnQpOworCVBhcnRpdGlvbkRlc2MgcGFydGRlc2MgPSBSZWxhdGlvbkdldFBh cnRpdGlvbkRlc2MocGFyZW50LCBmYWxzZSk7CisJUGFydGl0aW9uQm91bmRJbmZvIGJvdW5k aW5mbyA9IHBhcnRkZXNjLT5ib3VuZGluZm87CisJaW50CQkJaTsKKwlib29sCQlmb3VuZCA9 IHRydWU7CisJYm9vbAkJc2VhcmNoTnVsbCA9IGZhbHNlOworCURhdHVtCQlkYXR1bSA9IFBv aW50ZXJHZXREYXR1bShOVUxMKTsKKworCUFzc2VydChrZXktPnN0cmF0ZWd5ID09IFBBUlRJ VElPTl9TVFJBVEVHWV9MSVNUKTsKKworCS8qCisJICogU3BlY2lhbCBwcm9jZXNzaW5nIGZv ciBOVUxMIHZhbHVlLiBTZWFyY2ggTlVMTC12YWx1ZSBpZiBpdCBjb250YWlucworCSAqIHNw bGl0IHBhcnRpdGlvbiAocGFydE9pZCkuCisJICovCisJaWYgKHBhcnRpdGlvbl9ib3VuZF9h Y2NlcHRzX251bGxzKGJvdW5kaW5mbykgJiYKKwkJcGFydGRlc2MtPm9pZHNbYm91bmRpbmZv LT5udWxsX2luZGV4XSA9PSBwYXJ0T2lkKQorCXsKKwkJaWYgKCFmaW5kX3ZhbHVlX2luX25l d19wYXJ0aXRpb25zKCZrZXktPnBhcnRzdXBmdW5jWzBdLAorCQkJCQkJCQkJCSAga2V5LT5w YXJ0Y29sbGF0aW9uLCBwYXJ0cywgbnBhcnRzLCBkYXR1bSwgdHJ1ZSkpCisJCXsKKwkJCWZv dW5kID0gZmFsc2U7CisJCQlzZWFyY2hOdWxsID0gdHJ1ZTsKKwkJfQorCX0KKworCS8qCisJ ICogU2VhcmNoIGFsbCB2YWx1ZXMgb2Ygc3BsaXQgcGFydGl0aW9uIHdpdGggcGFydE9pZCBp biBQYXJ0aXRpb25EZXNjIG9mCisJICogcGFydGl0aW9uZGUgdGFibGUuCisJICovCisJZm9y IChpID0gMDsgaSA8IGJvdW5kaW5mby0+bmRhdHVtczsgaSsrKQorCXsKKwkJaWYgKHBhcnRk ZXNjLT5vaWRzW2JvdW5kaW5mby0+aW5kZXhlc1tpXV0gPT0gcGFydE9pZCkKKwkJeworCQkJ LyogV2UgZm91bmQgdmFsdWUgdGhhdCBzcGxpdCBwYXJ0aXRpb24gY29udGFpbnMuICovCisJ CQlkYXR1bSA9IGJvdW5kaW5mby0+ZGF0dW1zW2ldWzBdOworCQkJaWYgKCFmaW5kX3ZhbHVl X2luX25ld19wYXJ0aXRpb25zKCZrZXktPnBhcnRzdXBmdW5jWzBdLAorCQkJCQkJCQkJCQkg IGtleS0+cGFydGNvbGxhdGlvbiwgcGFydHMsIG5wYXJ0cywgZGF0dW0sIGZhbHNlKSkKKwkJ CXsKKwkJCQlmb3VuZCA9IGZhbHNlOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJfQorCisJ aWYgKCFmb3VuZCkKKwl7CisJCUNvbnN0CSAgICpub3RGb3VuZFZhbDsKKworCQlpZiAoIXNl YXJjaE51bGwpCisJCQkvKiBNYWtlIENvbnN0IGZvciBnZXQgc3RyaW5nIHJlcHJlc2VudGF0 aW9uIG9mIG5vdCBmb3VuZCB2YWx1ZS4gKi8KKwkJCW5vdEZvdW5kVmFsID0gbWFrZUNvbnN0 KGtleS0+cGFydHR5cGlkWzBdLAorCQkJCQkJCQkJa2V5LT5wYXJ0dHlwbW9kWzBdLAorCQkJ CQkJCQkJa2V5LT5wYXJ0dHlwY29sbFswXSwKKwkJCQkJCQkJCWtleS0+cGFydHR5cGxlblsw XSwKKwkJCQkJCQkJCWRhdHVtLAorCQkJCQkJCQkJZmFsc2UsCS8qIGlzbnVsbCAqLworCQkJ CQkJCQkJa2V5LT5wYXJ0dHlwYnl2YWxbMF0pOworCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJy bXNnKCJuZXcgcGFydGl0aW9ucyBub3QgaGF2ZSB2YWx1ZSAlcyBidXQgc3BsaXQgcGFydGl0 aW9uIGhhcyIsCisJCQkJCQlzZWFyY2hOdWxsID8gIk5VTEwiIDogZ2V0X2xpc3RfcGFydHZh bHVlX3N0cmluZyhub3RGb3VuZFZhbCkpKSk7CisJfQorfQorCisvKgorICogY2hlY2tfcGFy dGl0aW9uc19mb3Jfc3BsaXQKKyAqCisgKiBOZWVkIHRvIGNoZWNrIG5ldyBwYXJ0aXRpb25z IGZvciBTUExJVCBQQVJUSVRJT05TIGNvbW1hbmQ6CisgKiAxLiBERUZBVUxUIHBhcnRpdGlv biBzaG91bGQgYmUgb25lLgorICogMi4gTmV3IHBhcnRpdGlvbnMgc2hvdWxkIGhhdmUgZGlm ZmVyZW50IG5hbWVzCisgKiAgICAod2l0aCBleGlzdGluZyBwYXJ0aXRpb25zIHRvbykuCisg KiAzLiBCb3VuZHMgb2YgbmV3IHBhcnRpdGlvbnMgc2hvdWxkIG5vdCBvdmVybGFwIHdpdGgg bmV3IGFuZCBleGlzdGluZworICogICAgcGFydGl0aW9ucy4KKyAqIDQuIEluIGNhc2Ugc3Bs aXQgcGFydGl0aW9uIGlzIERFRkFVTFQgcGFydGl0aW9uLCBvbmUgb2YgbmV3IHBhcnRpdGlv bnMKKyAqICAgIHNob3VsZCBiZSBERUZBVUxULgorICogNS4gSW4gY2FzZSBuZXcgcGFydGl0 aW9ucyBvciBleGlzdGluZyBwYXJ0aXRpb25zIGNvbnRhaW5zIERFRkFVTFQKKyAqICAgIHBh cnRpdGlvbiwgbmV3IHBhcnRpdGlvbnMgY2FuIGhhdmUgYW55IGJvdW5kcyBpbnNpZGUgc3Bs aXQKKyAqICAgIHBhcnRpdGlvbiBib3VuZCAoY2FuIGJlIHNwYWNlcyBiZXR3ZWVuIHBhcnRp dGlvbnMgYm91bmRzKS4KKyAqIDYuIEluIGNhc2UgcGFydGl0aW9uZWQgdGFibGUgZG9lcyBu b3QgaGF2ZSBERUZBVUxUIHBhcnRpdGlvbiwgREVGQVVMVAorICogICAgcGFydGl0aW9uIGNh biBiZSBkZWZpbmVkIGFzIG9uZSBvZiBuZXcgcGFydGl0aW9uLgorICogNy4gSW4gY2FzZSBu ZXcgcGFydGl0aW9ucyBub3QgY29udGFpbnMgREVGQVVMVCBwYXJ0aXRpb24gYW5kCisgKiAg ICBwYXJ0aXRpb25lZCB0YWJsZSBkb2VzIG5vdCBoYXZlIERFRkFVTFQgcGFydGl0aW9uIHRo ZSBmb2xsb3dpbmcKKyAqICAgIHNob3VsZCBiZSB0cnVlOiBzdW0gYm91bmRzIG9mIG5ldyBw YXJ0aXRpb25zIHNob3VsZCBiZSBlcXVhbAorICogICAgdG8gYm91bmQgb2Ygc3BsaXQgcGFy dGl0aW9uLgorICovCit2b2lkCitjaGVja19wYXJ0aXRpb25zX2Zvcl9zcGxpdChSZWxhdGlv biBwYXJlbnQsCisJCQkJCQkgICBPaWQgc3BsaXRQYXJ0T2lkLAorCQkJCQkJICAgTGlzdCAq cGFydGxpc3QsCisJCQkJCQkgICBQYXJzZVN0YXRlICpwc3RhdGUpCit7CisJUGFydGl0aW9u S2V5IGtleTsKKwljaGFyCQlzdHJhdGVneTsKKwlPaWQJCQlkZWZhdWx0UGFydE9pZDsKKwli b29sCQlpc1NwbGl0UGFydERlZmF1bHQ7CisJYm9vbAkJZXhpc3RzRGVmYXVsdFBhcnQ7CisJ TGlzdENlbGwgICAqbGlzdHB0cjsKKwlpbnQJCQlkZWZhdWx0X2luZGV4ID0gLTE7CisJaW50 CQkJaSwKKwkJCQlqOworCVNpbmdsZVBhcnRpdGlvblNwZWMgKipuZXdfcGFydHM7CisJU2lu Z2xlUGFydGl0aW9uU3BlYyAqc3BzUHJldiA9IE5VTEw7CisJaW50CQkJbnBhcnRzID0gMDsK KworCWtleSA9IFJlbGF0aW9uR2V0UGFydGl0aW9uS2V5KHBhcmVudCk7CisJc3RyYXRlZ3kg PSBnZXRfcGFydGl0aW9uX3N0cmF0ZWd5KGtleSk7CisKKwlzd2l0Y2ggKHN0cmF0ZWd5KQor CXsKKwkJY2FzZSBQQVJUSVRJT05fU1RSQVRFR1lfTElTVDoKKwkJY2FzZSBQQVJUSVRJT05f U1RSQVRFR1lfUkFOR0U6CisJCQl7CisJCQkJLyoKKwkJCQkgKiBNYWtlIGFycmF5IG5ld19w YXJ0cyB3aXRoIG5ldyBwYXJ0aXRpb25zIGV4Y2VwdCBERUZBVUxUCisJCQkJICogcGFydGl0 aW9uLgorCQkJCSAqLworCQkJCW5ld19wYXJ0cyA9IChTaW5nbGVQYXJ0aXRpb25TcGVjICog KikKKwkJCQkJcGFsbG9jMChsaXN0X2xlbmd0aChwYXJ0bGlzdCkgKiBzaXplb2YoU2luZ2xl UGFydGl0aW9uU3BlYyAqKSk7CisJCQkJaSA9IC0xOworCQkJCWZvcmVhY2gobGlzdHB0ciwg cGFydGxpc3QpCisJCQkJeworCQkJCQlTaW5nbGVQYXJ0aXRpb25TcGVjICpzcHMgPQorCQkJ CQkoU2luZ2xlUGFydGl0aW9uU3BlYyAqKSBsZmlyc3QobGlzdHB0cik7CisKKwkJCQkJaSsr OworCQkJCQlpZiAoc3BzLT5ib3VuZC0+aXNfZGVmYXVsdCkKKwkJCQkJeworCQkJCQkJaWYg KGRlZmF1bHRfaW5kZXggPj0gMCkKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJCQkJ CSBlcnJtc2coIkRFRkFVTFQgcGFydGl0aW9uIHNob3VsZCBiZSBvbmUiKSksCisJCQkJCQkJ CQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzcHMtPm5hbWUtPmxvY2F0aW9uKSk7CisJ CQkJCQlkZWZhdWx0X2luZGV4ID0gaTsKKwkJCQkJCWNvbnRpbnVlOworCQkJCQl9CisJCQkJ CW5ld19wYXJ0c1tucGFydHMrK10gPSBzcHM7CisJCQkJfQorCQkJfQorCQkJYnJlYWs7CisK KwkJY2FzZSBQQVJUSVRJT05fU1RSQVRFR1lfSEFTSDoKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVy cm1zZygicGFydGl0aW9uIG9mIGhhc2gtcGFydGl0aW9uZWQgdGFibGUgY2Fubm90IGJlIHNw bGl0IikpKTsKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQllbG9nKEVSUk9SLCAidW5l eHBlY3RlZCBwYXJ0aXRpb24gc3RyYXRlZ3k6ICVkIiwKKwkJCQkgKGludCkga2V5LT5zdHJh dGVneSk7CisJCQlicmVhazsKKwl9CisKKwlpZiAoc3RyYXRlZ3kgPT0gUEFSVElUSU9OX1NU UkFURUdZX1JBTkdFKQorCXsKKwkJUGFydGl0aW9uUmFuZ2VCb3VuZCAqKmxvd2VyX2JvdW5k czsKKwkJU2luZ2xlUGFydGl0aW9uU3BlYyAqKnRtcF9uZXdfcGFydHM7CisKKwkJLyoKKwkJ ICogRm9yIHNpbXBsaWZ5IGNoZWNrIGZvciByYW5nZXMgb2YgbmV3IHBhcnRpdGlvbnMgbmVl ZCB0byBzb3J0IGFsbAorCQkgKiBwYXJ0aXRpb25zIGluIGFzY2VuZGluZyBvcmRlciBvZiB0 aGVtIGJvdW5kcyAod2UgY29tcGFyZSB1cHBlcgorCQkgKiBib3VuZCBvbmx5KS4KKwkJICov CisJCWxvd2VyX2JvdW5kcyA9IChQYXJ0aXRpb25SYW5nZUJvdW5kICoqKQorCQkJcGFsbG9j MChucGFydHMgKiBzaXplb2YoUGFydGl0aW9uUmFuZ2VCb3VuZCAqKSk7CisKKwkJLyogQ3Jl YXRlIGFycmF5IG9mIGxvd2VyIGJvdW5kcy4gKi8KKwkJZm9yIChpID0gMDsgaSA8IG5wYXJ0 czsgaSsrKQorCQl7CisJCQlsb3dlcl9ib3VuZHNbaV0gPSBtYWtlX29uZV9wYXJ0aXRpb25f cmJvdW5kKGtleSwgaSwKKwkJCQkJCQkJCQkJCQkJbmV3X3BhcnRzW2ldLT5ib3VuZC0+bG93 ZXJkYXR1bXMsIHRydWUpOworCQl9CisKKwkJLyogU29ydCBhcnJheSBvZiBsb3dlciBib3Vu ZHMuICovCisJCXFzb3J0X2FyZyhsb3dlcl9ib3VuZHMsIG5wYXJ0cywgc2l6ZW9mKFBhcnRp dGlvblJhbmdlQm91bmQgKiksCisJCQkJICBxc29ydF9wYXJ0aXRpb25fcmJvdW5kX2NtcCwg KHZvaWQgKikga2V5KTsKKworCQkvKiBSZW9yZGVyIGFycmF5IG9mIHBhcnRpdGlvbnMuICov CisJCXRtcF9uZXdfcGFydHMgPSBuZXdfcGFydHM7CisJCW5ld19wYXJ0cyA9IChTaW5nbGVQ YXJ0aXRpb25TcGVjICogKikKKwkJCXBhbGxvYzAobnBhcnRzICogc2l6ZW9mKFNpbmdsZVBh cnRpdGlvblNwZWMgKikpOworCQlmb3IgKGkgPSAwOyBpIDwgbnBhcnRzOyBpKyspCisJCQlu ZXdfcGFydHNbaV0gPSB0bXBfbmV3X3BhcnRzW2xvd2VyX2JvdW5kc1tpXS0+aW5kZXhdOwor CisJCXBmcmVlKHRtcF9uZXdfcGFydHMpOworCQlwZnJlZShsb3dlcl9ib3VuZHMpOworCX0K KworCWRlZmF1bHRQYXJ0T2lkID0KKwkJZ2V0X2RlZmF1bHRfb2lkX2Zyb21fcGFydGRlc2Mo UmVsYXRpb25HZXRQYXJ0aXRpb25EZXNjKHBhcmVudCwgdHJ1ZSkpOworCisJLyogaXNTcGxp dFBhcnREZWZhdWx0IGZsYWc6IGlzIHNwbGl0IHBhcnRpdGlvbiBhIERFRkFVTFQgcGFydGl0 aW9uPyAqLworCWlzU3BsaXRQYXJ0RGVmYXVsdCA9IChkZWZhdWx0UGFydE9pZCA9PSBzcGxp dFBhcnRPaWQpOworCisJaWYgKGlzU3BsaXRQYXJ0RGVmYXVsdCAmJiBkZWZhdWx0X2luZGV4 IDwgMCkKKwl7CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJhbnkgcGFydGl0aW9uIGlu IHRoZSBsaXN0IHNob3VsZCBiZSBERUZBVUxUIGJlY2F1c2Ugc3BsaXQgcGFydGl0aW9uIGlz IERFRkFVTFQiKSksCisJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgKChTaW5nbGVQ YXJ0aXRpb25TcGVjICopIGxpbml0aWFsKHBhcnRsaXN0KSktPm5hbWUtPmxvY2F0aW9uKSk7 CisJfQorCWVsc2UgaWYgKCFpc1NwbGl0UGFydERlZmF1bHQgJiYgKGRlZmF1bHRfaW5kZXgg Pj0gMCkgJiYgT2lkSXNWYWxpZChkZWZhdWx0UGFydE9pZCkpCisJeworCQlTaW5nbGVQYXJ0 aXRpb25TcGVjICpzcHNEZWYgPQorCQkoU2luZ2xlUGFydGl0aW9uU3BlYyAqKSBsaXN0X250 aChwYXJ0bGlzdCwgZGVmYXVsdF9pbmRleCk7CisKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCSBlcnJt c2coIm5ldyBwYXJ0aXRpb24gY2Fubm90IGJlIERFRkFVTFQgYmVjYXVzZSBERUZBVUxUIHBh cnRpdGlvbiBhbHJlYWR5IGV4aXN0cyIpKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBzcHNEZWYtPm5hbWUtPmxvY2F0aW9uKSk7CisJfQorCisJLyogSW5kaWNhdG9yIHRo YXQgcGFydGl0aW9uZWQgdGFibGUgaGFzIChvciB3aWxsIGhhdmUpIERFRkFVTFQgcGFydGl0 aW9uICovCisJZXhpc3RzRGVmYXVsdFBhcnQgPSBPaWRJc1ZhbGlkKGRlZmF1bHRQYXJ0T2lk KSB8fCAoZGVmYXVsdF9pbmRleCA+PSAwKTsKKworCWZvciAoaSA9IDA7IGkgPCBucGFydHM7 IGkrKykKKwl7CisJCVNpbmdsZVBhcnRpdGlvblNwZWMgKnNwcyA9IG5ld19wYXJ0c1tpXTsK KworCQlpZiAoaXNTcGxpdFBhcnREZWZhdWx0KQorCQl7CisJCQkvKgorCQkJICogSW4gY2Fz ZSBzcGxpdCBwYXJ0aXRpb24gaXMgREVGQVVMVCBwYXJ0aXRpb24gd2UgY2FuIHVzZSBhbnkK KwkJCSAqIGZyZWUgcmFuZ2VzIC0gYXMgd2hlbiBjcmVhdGluZyBhIG5ldyBwYXJ0aXRpb24u CisJCQkgKi8KKwkJCWNoZWNrX25ld19wYXJ0aXRpb25fYm91bmQoc3BzLT5uYW1lLT5yZWxu YW1lLCBwYXJlbnQsIHNwcy0+Ym91bmQsCisJCQkJCQkJCQkgIHBzdGF0ZSk7CisJCX0KKwkJ ZWxzZQorCQl7CisJCQkvKgorCQkJICogQ2hlY2tzIHRoYXQgYm91bmQgb2YgY3VycmVudCBw YXJ0aXRpb24gaXMgaW5zaWRlIGJvdW5kIG9mIHNwbGl0CisJCQkgKiBwYXJ0aXRpb24uIEZv ciByYW5nZSBwYXJ0aXRpb25pbmc6IGNoZWNrcyB0aGF0IHVwcGVyIGJvdW5kIG9mCisJCQkg KiBwcmV2aW91cyBwYXJ0aXRpb24gaXMgZXF1YWwgdG8gbG93ZXIgYm91bmQgb2YgY3VycmVu dAorCQkJICogcGFydGl0aW9uLiBGb3IgbGlzdCBwYXJ0aXRpb25pbmc6IGNoZWNrcyB0aGF0 IHNwbGl0IHBhcnRpdGlvbgorCQkJICogY29udGFpbnMgYWxsIHZhbHVlcyBvZiBjdXJyZW50 IHBhcnRpdGlvbi4KKwkJCSAqLworCQkJaWYgKHN0cmF0ZWd5ID09IFBBUlRJVElPTl9TVFJB VEVHWV9SQU5HRSkKKwkJCXsKKwkJCQlib29sCQlmaXJzdCA9IChpID09IDApOworCQkJCWJv b2wJCWxhc3QgPSAoaSA9PSAobnBhcnRzIC0gMSkpOworCisJCQkJY2hlY2tfcGFydGl0aW9u X2JvdW5kc19mb3Jfc3BsaXRfcmFuZ2Uoc3BzLT5uYW1lLT5yZWxuYW1lLAorCQkJCQkJCQkJ CQkJCSAgIHBhcmVudCwgc3BzLT5ib3VuZCwgc3BsaXRQYXJ0T2lkLCBmaXJzdCwgbGFzdCwK KwkJCQkJCQkJCQkJCQkgICBleGlzdHNEZWZhdWx0UGFydCwgcHN0YXRlKTsKKwkJCX0KKwkJ CWVsc2UKKwkJCQljaGVja19wYXJ0aXRpb25fYm91bmRzX2Zvcl9zcGxpdF9saXN0KHNwcy0+ bmFtZS0+cmVsbmFtZSwKKwkJCQkJCQkJCQkJCQkgIHBhcmVudCwgc3BzLT5ib3VuZCwgc3Bs aXRQYXJ0T2lkLCBwc3RhdGUpOworCQl9CisKKwkJLyogUmFuZ2VzIG9mIG5ldyBwYXJ0aXRp b25zIHNob3VsZCBub3Qgb3ZlcmxhcC4gKi8KKwkJaWYgKHN0cmF0ZWd5ID09IFBBUlRJVElP Tl9TVFJBVEVHWV9SQU5HRSAmJiBzcHNQcmV2KQorCQkJY2hlY2tfcGFydGl0aW9uc19ub3Rf b3ZlcmxhcF9yYW5nZShwYXJlbnQsIHNwcy0+bmFtZSwgc3BzLT5ib3VuZCwKKwkJCQkJCQkJ CQkJICAgc3BzUHJldi0+bmFtZSwgc3BzUHJldi0+Ym91bmQsIGV4aXN0c0RlZmF1bHRQYXJ0 LCBwc3RhdGUpOworCisJCXNwc1ByZXYgPSBzcHM7CisKKwkJLyogQ2hlY2s6IG5ldyBwYXJ0 aXRpb25zIHNob3VsZCBoYXZlIGRpZmZlcmVudCBuYW1lcy4gKi8KKwkJZm9yIChqID0gaSAr IDE7IGogPCBucGFydHM7IGorKykKKwkJeworCQkJU2luZ2xlUGFydGl0aW9uU3BlYyAqc3Bz MiA9IG5ld19wYXJ0c1tqXTsKKworCQkJaWYgKGVxdWFsKHNwcy0+bmFtZSwgc3BzMi0+bmFt ZSkpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElD QVRFX1RBQkxFKSwKKwkJCQkJCSBlcnJtc2coIm5hbWUgXCIlc1wiIGFscmVhZHkgdXNlZCIs IHNwczItPm5hbWUtPnJlbG5hbWUpKSwKKwkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIHNwczItPm5hbWUtPmxvY2F0aW9uKSk7CisJCX0KKwl9CisKKwlpZiAoc3RyYXRlZ3kg PT0gUEFSVElUSU9OX1NUUkFURUdZX0xJU1QpCisJeworCQkvKiBWYWx1ZXMgb2YgbmV3IHBh cnRpdGlvbnMgc2hvdWxkIG5vdCBvdmVybGFwLiAqLworCQljaGVja19wYXJ0aXRpb25zX25v dF9vdmVybGFwX2xpc3QocGFyZW50LCBuZXdfcGFydHMsIG5wYXJ0cywKKwkJCQkJCQkJCQkg IHBzdGF0ZSk7CisKKwkJLyoKKwkJICogTmVlZCB0byBjaGVjayB0aGF0IGFsbCB2YWx1ZXMg b2Ygc3BsaXQgcGFydGl0aW9uIGNvbnRhaW5zIGluIG5ldworCQkgKiBwYXJ0aXRpb25zLiBT a2lwIHRoaXMgY2hlY2sgaWYgREVGQVVMVCBwYXJ0aXRpb24gZXhpc3RzLgorCQkgKi8KKwkJ aWYgKCFleGlzdHNEZWZhdWx0UGFydCkKKwkJCWNoZWNrX3BhcmVudF92YWx1ZXNfaW5fbmV3 X3BhcnRpdGlvbnMocGFyZW50LCBzcGxpdFBhcnRPaWQsCisJCQkJCQkJCQkJCQkgIG5ld19w YXJ0cywgbnBhcnRzLCBwc3RhdGUpOworCX0KKworCXBmcmVlKG5ld19wYXJ0cyk7Cit9CisK IC8qCiAgKiBnZXRfcGFydGl0aW9uX2JvdW5kX3NwZWMKICAqCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv cnVsZXV0aWxzLmMKaW5kZXggODU1ZDQ4MzcyYS4uMGYzOTMxMmVmZCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMTIyMzIsMyArMTIyMzIsMjEgQEAgZ2V0X3Jhbmdl X3BhcnRib3VuZF9zdHJpbmcoTGlzdCAqYm91bmRfZGF0dW1zKQogCiAJcmV0dXJuIGJ1Zi0+ ZGF0YTsKIH0KKworLyoKKyAqIGdldF9saXN0X3BhcnR2YWx1ZV9zdHJpbmcKKyAqCQlBIEMg c3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIG9uZSBsaXN0IHBhcnRpdGlvbiB2YWx1ZQorICov CitjaGFyICoKK2dldF9saXN0X3BhcnR2YWx1ZV9zdHJpbmcoQ29uc3QgKnZhbCkKK3sKKwlk ZXBhcnNlX2NvbnRleHQgY29udGV4dDsKKwlTdHJpbmdJbmZvCWJ1ZiA9IG1ha2VTdHJpbmdJ bmZvKCk7CisKKwltZW1zZXQoJmNvbnRleHQsIDAsIHNpemVvZihkZXBhcnNlX2NvbnRleHQp KTsKKwljb250ZXh0LmJ1ZiA9IGJ1ZjsKKworCWdldF9jb25zdF9leHByKHZhbCwgJmNvbnRl eHQsIC0xKTsKKworCXJldHVybiBidWYtPmRhdGE7Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKaW5kZXggNmMyOTRkZjc4Ni4uMGFiNmRhZWEwYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaApAQCAtMjAyOCw2ICsyMDI4LDcgQEAgdHlwZWRlZiBlbnVtIEFsdGVyVGFibGVUeXBl CiAJQVRfQXR0YWNoUGFydGl0aW9uLAkJCS8qIEFUVEFDSCBQQVJUSVRJT04gKi8KIAlBVF9E ZXRhY2hQYXJ0aXRpb24sCQkJLyogREVUQUNIIFBBUlRJVElPTiAqLwogCUFUX0RldGFjaFBh cnRpdGlvbkZpbmFsaXplLCAvKiBERVRBQ0ggUEFSVElUSU9OIEZJTkFMSVpFICovCisJQVRf U3BsaXRQYXJ0aXRpb24sCQkJLyogU1BMSVQgUEFSVElUSU9OICovCiAJQVRfTWVyZ2VQYXJ0 aXRpb25zLAkJCS8qIE1FUkdFIFBBUlRJVElPTlMgKi8KIAlBVF9BZGRJZGVudGl0eSwJCQkJ LyogQUREIElERU5USVRZICovCiAJQVRfU2V0SWRlbnRpdHksCQkJCS8qIFNFVCBpZGVudGl0 eSBjb2x1bW4gb3B0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IDA5YjAyOGFjYmEu LjE5MjM0MWMwYzMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAor KysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTM5Miw2ICszOTIsNyBAQCBQ R19LRVlXT1JEKCJza2lwIiwgU0tJUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgic21hbGxpbnQiLCBTTUFMTElOVCwgQ09MX05BTUVfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInNuYXBzaG90IiwgU05BUFNIT1QsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInNvbWUiLCBTT01FLCBSRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgic3BsaXQiLCBTUExJVCwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgic3FsIiwgU1FM X1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInN0YWJs ZSIsIFNUQUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgic3RhbmRhbG9uZSIsIFNUQU5EQUxPTkVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFydGl0aW9uaW5nL3BhcnRib3Vu ZHMuaCBiL3NyYy9pbmNsdWRlL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmgKaW5kZXggNDM1 NjY4ZmI3Yy4uZDQ5NmQ2YWM0YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFydGl0aW9u aW5nL3BhcnRib3VuZHMuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJ0aXRpb25pbmcvcGFydGJv dW5kcy5oCkBAIC0xNDMsNiArMTQzLDEwIEBAIGV4dGVybiBpbnQJcGFydGl0aW9uX3Jhbmdl X2RhdHVtX2JzZWFyY2goRm1nckluZm8gKnBhcnRzdXBmdW5jLAogZXh0ZXJuIGludAlwYXJ0 aXRpb25faGFzaF9ic2VhcmNoKFBhcnRpdGlvbkJvdW5kSW5mbyBib3VuZGluZm8sCiAJCQkJ CQkJCSAgIGludCBtb2R1bHVzLCBpbnQgcmVtYWluZGVyKTsKIAorZXh0ZXJuIHZvaWQgY2hl Y2tfcGFydGl0aW9uc19mb3Jfc3BsaXQoUmVsYXRpb24gcGFyZW50LAorCQkJCQkJCQkJICAg T2lkIHNwbGl0UGFydE9pZCwKKwkJCQkJCQkJCSAgIExpc3QgKnBhcnRsaXN0LAorCQkJCQkJ CQkJICAgUGFyc2VTdGF0ZSAqcHN0YXRlKTsKIGV4dGVybiB2b2lkIGNhbGN1bGF0ZV9wYXJ0 aXRpb25fYm91bmRfZm9yX21lcmdlKFJlbGF0aW9uIHBhcmVudCwKIAkJCQkJCQkJCQkJCUxp c3QgKnBhcnROYW1lcywKIAkJCQkJCQkJCQkJCUxpc3QgKnBhcnRPaWRzLApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvdXRpbHMvcnVsZXV0aWxzLmggYi9zcmMvaW5jbHVkZS91dGlscy9y dWxldXRpbHMuaAppbmRleCA3ZDQ4OTcxOGEzLi5lZDEzYTQzZjUzIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS91dGlscy9ydWxldXRpbHMuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9y dWxldXRpbHMuaApAQCAtNDQsNCArNDQsNiBAQCBleHRlcm4gY2hhciAqZ2V0X3JhbmdlX3Bh cnRib3VuZF9zdHJpbmcoTGlzdCAqYm91bmRfZGF0dW1zKTsKIAogZXh0ZXJuIGNoYXIgKnBn X2dldF9zdGF0aXN0aWNzb2JqZGVmX3N0cmluZyhPaWQgc3RhdGV4dGlkKTsKIAorZXh0ZXJu IGNoYXIgKmdldF9saXN0X3BhcnR2YWx1ZV9zdHJpbmcoQ29uc3QgKnZhbCk7CisKICNlbmRp ZgkJCQkJCQkvKiBSVUxFVVRJTFNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0 aW9uL2V4cGVjdGVkL3BhcnRpdGlvbi1zcGxpdC5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24v ZXhwZWN0ZWQvcGFydGl0aW9uLXNwbGl0Lm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi41ZDllOGIwOTI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qv aXNvbGF0aW9uL2V4cGVjdGVkL3BhcnRpdGlvbi1zcGxpdC5vdXQKQEAgLTAsMCArMSwxOTAg QEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCAyIHNlc3Npb25zCisKK3N0YXJ0aW5nIHBlcm11 dGF0aW9uOiBzMWIgczFzcGx0IHMyYiBzMmkgczFjIHMyYyBzMnMKK3N0ZXAgczFiOiBCRUdJ TjsKK3N0ZXAgczFzcGx0OiBBTFRFUiBUQUJMRSB0cGFydCBTUExJVCBQQVJUSVRJT04gdHBh cnRfMTBfMjAgSU5UTworCQkJICAgKFBBUlRJVElPTiB0cGFydF8xMF8xNSBGT1IgVkFMVUVT IEZST00gKDEwKSBUTyAoMTUpLAorCQkJICAgIFBBUlRJVElPTiB0cGFydF8xNV8yMCBGT1Ig VkFMVUVTIEZST00gKDE1KSBUTyAoMjApKTsKK3N0ZXAgczJiOiBCRUdJTjsKK3N0ZXAgczJp OiBJTlNFUlQgSU5UTyB0cGFydCBWQUxVRVMgKDEsICd0ZXh0MDEnKTsgPHdhaXRpbmcgLi4u Pgorc3RlcCBzMWM6IENPTU1JVDsKK3N0ZXAgczJpOiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAg czJjOiBDT01NSVQ7CitzdGVwIHMyczogU0VMRUNUICogRlJPTSB0cGFydDsKKyBpfHQgICAg IAorLS0rLS0tLS0tCisgNXx0ZXh0MDUKKyAxfHRleHQwMQorMTV8dGV4dDE1CisyNXx0ZXh0 MjUKKzM1fHRleHQzNQorKDUgcm93cykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjogczFi IHMxc3BsdCBzMmJyciBzMmkgczFjIHMyYyBzMnMKK3N0ZXAgczFiOiBCRUdJTjsKK3N0ZXAg czFzcGx0OiBBTFRFUiBUQUJMRSB0cGFydCBTUExJVCBQQVJUSVRJT04gdHBhcnRfMTBfMjAg SU5UTworCQkJICAgKFBBUlRJVElPTiB0cGFydF8xMF8xNSBGT1IgVkFMVUVTIEZST00gKDEw KSBUTyAoMTUpLAorCQkJICAgIFBBUlRJVElPTiB0cGFydF8xNV8yMCBGT1IgVkFMVUVTIEZS T00gKDE1KSBUTyAoMjApKTsKK3N0ZXAgczJicnI6IEJFR0lOIElTT0xBVElPTiBMRVZFTCBS RVBFQVRBQkxFIFJFQUQ7CitzdGVwIHMyaTogSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgx LCAndGV4dDAxJyk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFjOiBDT01NSVQ7CitzdGVwIHMy aTogPC4uLiBjb21wbGV0ZWQ+CitzdGVwIHMyYzogQ09NTUlUOworc3RlcCBzMnM6IFNFTEVD VCAqIEZST00gdHBhcnQ7CisgaXx0ICAgICAKKy0tKy0tLS0tLQorIDV8dGV4dDA1CisgMXx0 ZXh0MDEKKzE1fHRleHQxNQorMjV8dGV4dDI1CiszNXx0ZXh0MzUKKyg1IHJvd3MpCisKKwor c3RhcnRpbmcgcGVybXV0YXRpb246IHMxYiBzMXNwbHQgczJicyBzMmkgczFjIHMyYyBzMnMK K3N0ZXAgczFiOiBCRUdJTjsKK3N0ZXAgczFzcGx0OiBBTFRFUiBUQUJMRSB0cGFydCBTUExJ VCBQQVJUSVRJT04gdHBhcnRfMTBfMjAgSU5UTworCQkJICAgKFBBUlRJVElPTiB0cGFydF8x MF8xNSBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMTUpLAorCQkJICAgIFBBUlRJVElPTiB0 cGFydF8xNV8yMCBGT1IgVkFMVUVTIEZST00gKDE1KSBUTyAoMjApKTsKK3N0ZXAgczJiczog QkVHSU4gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRTsKK3N0ZXAgczJpOiBJTlNFUlQg SU5UTyB0cGFydCBWQUxVRVMgKDEsICd0ZXh0MDEnKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBz MWM6IENPTU1JVDsKK3N0ZXAgczJpOiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczJjOiBDT01N SVQ7CitzdGVwIHMyczogU0VMRUNUICogRlJPTSB0cGFydDsKKyBpfHQgICAgIAorLS0rLS0t LS0tCisgNXx0ZXh0MDUKKyAxfHRleHQwMQorMTV8dGV4dDE1CisyNXx0ZXh0MjUKKzM1fHRl eHQzNQorKDUgcm93cykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjogczFicnIgczFzcGx0 IHMyYiBzMmkgczFjIHMyYyBzMnMKK3N0ZXAgczFicnI6IEJFR0lOIElTT0xBVElPTiBMRVZF TCBSRVBFQVRBQkxFIFJFQUQ7CitzdGVwIHMxc3BsdDogQUxURVIgVEFCTEUgdHBhcnQgU1BM SVQgUEFSVElUSU9OIHRwYXJ0XzEwXzIwIElOVE8KKwkJCSAgIChQQVJUSVRJT04gdHBhcnRf MTBfMTUgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDE1KSwKKwkJCSAgICBQQVJUSVRJT04g dHBhcnRfMTVfMjAgRk9SIFZBTFVFUyBGUk9NICgxNSkgVE8gKDIwKSk7CitzdGVwIHMyYjog QkVHSU47CitzdGVwIHMyaTogSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgxLCAndGV4dDAx Jyk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFjOiBDT01NSVQ7CitzdGVwIHMyaTogPC4uLiBj b21wbGV0ZWQ+CitzdGVwIHMyYzogQ09NTUlUOworc3RlcCBzMnM6IFNFTEVDVCAqIEZST00g dHBhcnQ7CisgaXx0ICAgICAKKy0tKy0tLS0tLQorIDV8dGV4dDA1CisgMXx0ZXh0MDEKKzE1 fHRleHQxNQorMjV8dGV4dDI1CiszNXx0ZXh0MzUKKyg1IHJvd3MpCisKKworc3RhcnRpbmcg cGVybXV0YXRpb246IHMxYnJyIHMxc3BsdCBzMmJyciBzMmkgczFjIHMyYyBzMnMKK3N0ZXAg czFicnI6IEJFR0lOIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7CitzdGVwIHMx c3BsdDogQUxURVIgVEFCTEUgdHBhcnQgU1BMSVQgUEFSVElUSU9OIHRwYXJ0XzEwXzIwIElO VE8KKwkJCSAgIChQQVJUSVRJT04gdHBhcnRfMTBfMTUgRk9SIFZBTFVFUyBGUk9NICgxMCkg VE8gKDE1KSwKKwkJCSAgICBQQVJUSVRJT04gdHBhcnRfMTVfMjAgRk9SIFZBTFVFUyBGUk9N ICgxNSkgVE8gKDIwKSk7CitzdGVwIHMyYnJyOiBCRUdJTiBJU09MQVRJT04gTEVWRUwgUkVQ RUFUQUJMRSBSRUFEOworc3RlcCBzMmk6IElOU0VSVCBJTlRPIHRwYXJ0IFZBTFVFUyAoMSwg J3RleHQwMScpOyA8d2FpdGluZyAuLi4+CitzdGVwIHMxYzogQ09NTUlUOworc3RlcCBzMmk6 IDwuLi4gY29tcGxldGVkPgorc3RlcCBzMmM6IENPTU1JVDsKK3N0ZXAgczJzOiBTRUxFQ1Qg KiBGUk9NIHRwYXJ0OworIGl8dCAgICAgCistLSstLS0tLS0KKyA1fHRleHQwNQorIDF8dGV4 dDAxCisxNXx0ZXh0MTUKKzI1fHRleHQyNQorMzV8dGV4dDM1CisoNSByb3dzKQorCisKK3N0 YXJ0aW5nIHBlcm11dGF0aW9uOiBzMWJyciBzMXNwbHQgczJicyBzMmkgczFjIHMyYyBzMnMK K3N0ZXAgczFicnI6IEJFR0lOIElTT0xBVElPTiBMRVZFTCBSRVBFQVRBQkxFIFJFQUQ7Citz dGVwIHMxc3BsdDogQUxURVIgVEFCTEUgdHBhcnQgU1BMSVQgUEFSVElUSU9OIHRwYXJ0XzEw XzIwIElOVE8KKwkJCSAgIChQQVJUSVRJT04gdHBhcnRfMTBfMTUgRk9SIFZBTFVFUyBGUk9N ICgxMCkgVE8gKDE1KSwKKwkJCSAgICBQQVJUSVRJT04gdHBhcnRfMTVfMjAgRk9SIFZBTFVF UyBGUk9NICgxNSkgVE8gKDIwKSk7CitzdGVwIHMyYnM6IEJFR0lOIElTT0xBVElPTiBMRVZF TCBTRVJJQUxJWkFCTEU7CitzdGVwIHMyaTogSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgx LCAndGV4dDAxJyk7IDx3YWl0aW5nIC4uLj4KK3N0ZXAgczFjOiBDT01NSVQ7CitzdGVwIHMy aTogPC4uLiBjb21wbGV0ZWQ+CitzdGVwIHMyYzogQ09NTUlUOworc3RlcCBzMnM6IFNFTEVD VCAqIEZST00gdHBhcnQ7CisgaXx0ICAgICAKKy0tKy0tLS0tLQorIDV8dGV4dDA1CisgMXx0 ZXh0MDEKKzE1fHRleHQxNQorMjV8dGV4dDI1CiszNXx0ZXh0MzUKKyg1IHJvd3MpCisKKwor c3RhcnRpbmcgcGVybXV0YXRpb246IHMxYnMgczFzcGx0IHMyYiBzMmkgczFjIHMyYyBzMnMK K3N0ZXAgczFiczogQkVHSU4gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRTsKK3N0ZXAg czFzcGx0OiBBTFRFUiBUQUJMRSB0cGFydCBTUExJVCBQQVJUSVRJT04gdHBhcnRfMTBfMjAg SU5UTworCQkJICAgKFBBUlRJVElPTiB0cGFydF8xMF8xNSBGT1IgVkFMVUVTIEZST00gKDEw KSBUTyAoMTUpLAorCQkJICAgIFBBUlRJVElPTiB0cGFydF8xNV8yMCBGT1IgVkFMVUVTIEZS T00gKDE1KSBUTyAoMjApKTsKK3N0ZXAgczJiOiBCRUdJTjsKK3N0ZXAgczJpOiBJTlNFUlQg SU5UTyB0cGFydCBWQUxVRVMgKDEsICd0ZXh0MDEnKTsgPHdhaXRpbmcgLi4uPgorc3RlcCBz MWM6IENPTU1JVDsKK3N0ZXAgczJpOiA8Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczJjOiBDT01N SVQ7CitzdGVwIHMyczogU0VMRUNUICogRlJPTSB0cGFydDsKKyBpfHQgICAgIAorLS0rLS0t LS0tCisgNXx0ZXh0MDUKKyAxfHRleHQwMQorMTV8dGV4dDE1CisyNXx0ZXh0MjUKKzM1fHRl eHQzNQorKDUgcm93cykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjogczFicyBzMXNwbHQg czJicnIgczJpIHMxYyBzMmMgczJzCitzdGVwIHMxYnM6IEJFR0lOIElTT0xBVElPTiBMRVZF TCBTRVJJQUxJWkFCTEU7CitzdGVwIHMxc3BsdDogQUxURVIgVEFCTEUgdHBhcnQgU1BMSVQg UEFSVElUSU9OIHRwYXJ0XzEwXzIwIElOVE8KKwkJCSAgIChQQVJUSVRJT04gdHBhcnRfMTBf MTUgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDE1KSwKKwkJCSAgICBQQVJUSVRJT04gdHBh cnRfMTVfMjAgRk9SIFZBTFVFUyBGUk9NICgxNSkgVE8gKDIwKSk7CitzdGVwIHMyYnJyOiBC RUdJTiBJU09MQVRJT04gTEVWRUwgUkVQRUFUQUJMRSBSRUFEOworc3RlcCBzMmk6IElOU0VS VCBJTlRPIHRwYXJ0IFZBTFVFUyAoMSwgJ3RleHQwMScpOyA8d2FpdGluZyAuLi4+CitzdGVw IHMxYzogQ09NTUlUOworc3RlcCBzMmk6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzMmM6IENP TU1JVDsKK3N0ZXAgczJzOiBTRUxFQ1QgKiBGUk9NIHRwYXJ0OworIGl8dCAgICAgCistLSst LS0tLS0KKyA1fHRleHQwNQorIDF8dGV4dDAxCisxNXx0ZXh0MTUKKzI1fHRleHQyNQorMzV8 dGV4dDM1CisoNSByb3dzKQorCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBzMWJzIHMxc3Bs dCBzMmJzIHMyaSBzMWMgczJjIHMycworc3RlcCBzMWJzOiBCRUdJTiBJU09MQVRJT04gTEVW RUwgU0VSSUFMSVpBQkxFOworc3RlcCBzMXNwbHQ6IEFMVEVSIFRBQkxFIHRwYXJ0IFNQTElU IFBBUlRJVElPTiB0cGFydF8xMF8yMCBJTlRPCisJCQkgICAoUEFSVElUSU9OIHRwYXJ0XzEw XzE1IEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgxNSksCisJCQkgICAgUEFSVElUSU9OIHRw YXJ0XzE1XzIwIEZPUiBWQUxVRVMgRlJPTSAoMTUpIFRPICgyMCkpOworc3RlcCBzMmJzOiBC RUdJTiBJU09MQVRJT04gTEVWRUwgU0VSSUFMSVpBQkxFOworc3RlcCBzMmk6IElOU0VSVCBJ TlRPIHRwYXJ0IFZBTFVFUyAoMSwgJ3RleHQwMScpOyA8d2FpdGluZyAuLi4+CitzdGVwIHMx YzogQ09NTUlUOworc3RlcCBzMmk6IDwuLi4gY29tcGxldGVkPgorc3RlcCBzMmM6IENPTU1J VDsKK3N0ZXAgczJzOiBTRUxFQ1QgKiBGUk9NIHRwYXJ0OworIGl8dCAgICAgCistLSstLS0t LS0KKyA1fHRleHQwNQorIDF8dGV4dDAxCisxNXx0ZXh0MTUKKzI1fHRleHQyNQorMzV8dGV4 dDM1CisoNSByb3dzKQorCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0 aW9uX3NjaGVkdWxlIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQpp bmRleCBkOTEwMzJjNDJhLi5jYmFmMDMwODU4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29s YXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29s YXRpb25fc2NoZWR1bGUKQEAgLTEwMyw2ICsxMDMsNyBAQCB0ZXN0OiBwYXJ0aXRpb24ta2V5 LXVwZGF0ZS0yCiB0ZXN0OiBwYXJ0aXRpb24ta2V5LXVwZGF0ZS0zCiB0ZXN0OiBwYXJ0aXRp b24ta2V5LXVwZGF0ZS00CiB0ZXN0OiBwYXJ0aXRpb24tbWVyZ2UKK3Rlc3Q6IHBhcnRpdGlv bi1zcGxpdAogdGVzdDogcGxwZ3NxbC10b2FzdAogdGVzdDogY2x1c3Rlci1jb25mbGljdAog dGVzdDogY2x1c3Rlci1jb25mbGljdC1wYXJ0aXRpb24KZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L2lzb2xhdGlvbi9zcGVjcy9wYXJ0aXRpb24tc3BsaXQuc3BlYyBiL3NyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9wYXJ0aXRpb24tc3BsaXQuc3BlYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi4wODcyMzlhNGExCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rl c3QvaXNvbGF0aW9uL3NwZWNzL3BhcnRpdGlvbi1zcGxpdC5zcGVjCkBAIC0wLDAgKzEsNTQg QEAKKyMgVmVyaWZ5IHRoYXQgU1BMSVQgb3BlcmF0aW9uIGxvY2tzIERNTCBvcGVyYXRpb25z IHdpdGggcGFydGl0aW9uZWQgdGFibGUKKworc2V0dXAKK3sKKyAgRFJPUCBUQUJMRSBJRiBF WElTVFMgdHBhcnQ7CisgIENSRUFURSBUQUJMRSB0cGFydChpIGludCwgdCB0ZXh0KSBwYXJ0 aXRpb24gYnkgcmFuZ2UoaSk7CisgIENSRUFURSBUQUJMRSB0cGFydF8wMF8xMCBQQVJUSVRJ T04gT0YgdHBhcnQgRk9SIFZBTFVFUyBGUk9NICgwKSBUTyAoMTApOworICBDUkVBVEUgVEFC TEUgdHBhcnRfMTBfMjAgUEFSVElUSU9OIE9GIHRwYXJ0IEZPUiBWQUxVRVMgRlJPTSAoMTAp IFRPICgyMCk7CisgIENSRUFURSBUQUJMRSB0cGFydF8yMF8zMCBQQVJUSVRJT04gT0YgdHBh cnQgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKTsKKyAgQ1JFQVRFIFRBQkxFIHRwYXJ0 X2RlZmF1bHQgUEFSVElUSU9OIE9GIHRwYXJ0IERFRkFVTFQ7CisgIElOU0VSVCBJTlRPIHRw YXJ0IFZBTFVFUyAoNSwgJ3RleHQwNScpOworICBJTlNFUlQgSU5UTyB0cGFydCBWQUxVRVMg KDE1LCAndGV4dDE1Jyk7CisgIElOU0VSVCBJTlRPIHRwYXJ0IFZBTFVFUyAoMjUsICd0ZXh0 MjUnKTsKKyAgSU5TRVJUIElOVE8gdHBhcnQgVkFMVUVTICgzNSwgJ3RleHQzNScpOworfQor Cit0ZWFyZG93bgoreworICBEUk9QIFRBQkxFIHRwYXJ0OworfQorCitzZXNzaW9uIHMxCitz dGVwIHMxYgl7IEJFR0lOOyB9CitzdGVwIHMxYnJyCXsgQkVHSU4gSVNPTEFUSU9OIExFVkVM IFJFUEVBVEFCTEUgUkVBRDsgfQorc3RlcCBzMWJzCXsgQkVHSU4gSVNPTEFUSU9OIExFVkVM IFNFUklBTElaQUJMRTsgfQorc3RlcCBzMXNwbHQJeyBBTFRFUiBUQUJMRSB0cGFydCBTUExJ VCBQQVJUSVRJT04gdHBhcnRfMTBfMjAgSU5UTworCQkJICAgKFBBUlRJVElPTiB0cGFydF8x MF8xNSBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMTUpLAorCQkJICAgIFBBUlRJVElPTiB0 cGFydF8xNV8yMCBGT1IgVkFMVUVTIEZST00gKDE1KSBUTyAoMjApKTsgfQorc3RlcCBzMWMJ eyBDT01NSVQ7IH0KKworCitzZXNzaW9uIHMyCitzdGVwIHMyYgl7IEJFR0lOOyB9CitzdGVw IHMyYnJyCXsgQkVHSU4gSVNPTEFUSU9OIExFVkVMIFJFUEVBVEFCTEUgUkVBRDsgfQorc3Rl cCBzMmJzCXsgQkVHSU4gSVNPTEFUSU9OIExFVkVMIFNFUklBTElaQUJMRTsgfQorc3RlcCBz MmkJeyBJTlNFUlQgSU5UTyB0cGFydCBWQUxVRVMgKDEsICd0ZXh0MDEnKTsgfQorc3RlcCBz MmMJeyBDT01NSVQ7IH0KK3N0ZXAgczJzCXsgU0VMRUNUICogRlJPTSB0cGFydDsgfQorCisK KyMgczEgc3RhcnRzIFNQTElUIFBBUlRJVElPTiB0aGVuIHMyIHRyeWluZyB0byBpbnNlcnQg cm93IGFuZAorIyB3YWl0cyB1bnRpbCBzMSBmaW5pc2hlZCBTUExJVCBvcGVyYXRpb24uCisK K3Blcm11dGF0aW9uIHMxYiBzMXNwbHQgczJiIHMyaSBzMWMgczJjIHMycworcGVybXV0YXRp b24gczFiIHMxc3BsdCBzMmJyciBzMmkgczFjIHMyYyBzMnMKK3Blcm11dGF0aW9uIHMxYiBz MXNwbHQgczJicyBzMmkgczFjIHMyYyBzMnMKKworcGVybXV0YXRpb24gczFicnIgczFzcGx0 IHMyYiBzMmkgczFjIHMyYyBzMnMKK3Blcm11dGF0aW9uIHMxYnJyIHMxc3BsdCBzMmJyciBz MmkgczFjIHMyYyBzMnMKK3Blcm11dGF0aW9uIHMxYnJyIHMxc3BsdCBzMmJzIHMyaSBzMWMg czJjIHMycworCitwZXJtdXRhdGlvbiBzMWJzIHMxc3BsdCBzMmIgczJpIHMxYyBzMmMgczJz CitwZXJtdXRhdGlvbiBzMWJzIHMxc3BsdCBzMmJyciBzMmkgczFjIHMyYyBzMnMKK3Blcm11 dGF0aW9uIHMxYnMgczFzcGx0IHMyYnMgczJpIHMxYyBzMmMgczJzCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9zcGxpdC5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9zcGxpdC5vdXQKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uN2NhZjc2NmYwYgotLS0gL2Rldi9udWxsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3NwbGl0Lm91dApAQCAtMCww ICsxLDE0MjUgQEAKKy0tCistLSBQQVJUSVRJT05fU1BMSVQKKy0tIFRlc3RzIGZvciAiQUxU RVIgVEFCTEUgLi4uIFNQTElUIFBBUlRJVElPTiAuLi4iIGNvbW1hbmQKKy0tCitDUkVBVEUg U0NIRU1BIHBhcnRpdGlvbl9zcGxpdF9zY2hlbWE7CitTRVQgc2VhcmNoX3BhdGggPSBwYXJ0 aXRpb25fc3BsaXRfc2NoZW1hLCBwdWJsaWM7CistLQorLS0gQlkgUkFOR0UgcGFydGl0aW9u aW5nCistLQorLS0KKy0tIFRlc3QgZm9yIGVycm9yIGNvZGVzCistLQorQ1JFQVRFIFRBQkxF IHNhbGVzX3JhbmdlIChzYWxlc21hbl9pZCBpbnQsIHNhbGVzbWFuX25hbWUgdmFyY2hhcigz MCksIHNhbGVzX2Ftb3VudCBpbnQsIHNhbGVzX2RhdGUgZGF0ZSkgUEFSVElUSU9OIEJZIFJB TkdFIChzYWxlc19kYXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19qYW4yMDIyIFBBUlRJVElP TiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcy MDIyLTAyLTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfZmViX21hcl9hcHIyMDIyIFBBUlRJ VElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8g KCcyMDIyLTA1LTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBP RiBzYWxlc19yYW5nZSBERUZBVUxUOworLS0gRVJST1I6ICByZWxhdGlvbiAic2FsZXNfeHh4 IiBkb2VzIG5vdCBleGlzdAorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElU SU9OIHNhbGVzX3h4eCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTAzLTAxJyksCisgICBQQVJUSVRJ T04gc2FsZXNfbWFyMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8gKCcy MDIyLTA0LTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZS T00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJykpOworRVJST1I6ICByZWxhdGlv biAic2FsZXNfeHh4IiBkb2VzIG5vdCBleGlzdAorLS0gRVJST1I6ICByZWxhdGlvbiAic2Fs ZXNfamFuMjAyMiIgYWxyZWFkeSBleGlzdHMKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQ TElUIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElUSU9O IHNhbGVzX2phbjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgnMjAy Mi0wMy0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX21hcjIwMjIgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScpLAorICAgUEFSVElUSU9OIHNhbGVz X2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0w MScpKTsKK0VSUk9SOiAgcmVsYXRpb24gInNhbGVzX2phbjIwMjIiIGFscmVhZHkgZXhpc3Rz CistLSBFUlJPUjogIGludmFsaWQgYm91bmQgc3BlY2lmaWNhdGlvbiBmb3IgYSByYW5nZSBw YXJ0aXRpb24KK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxl c19mZWJfbWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2phbjIwMjIgRk9S IFZBTFVFUyBJTiAoJzIwMjItMDUtMDEnLCAnMjAyMi0wNi0wMScpLAorICAgUEFSVElUSU9O IHNhbGVzX21hcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAy Mi0wNC0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpKTsKK0VSUk9SOiAgaW52YWxpZCBi b3VuZCBzcGVjaWZpY2F0aW9uIGZvciBhIHJhbmdlIHBhcnRpdGlvbgorTElORSAyOiAgIChQ QVJUSVRJT04gc2FsZXNfamFuMjAyMiBGT1IgVkFMVUVTIElOICgnMjAyMi0wNS0wMScsICcy MDIuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CistLSBFUlJPUjogIGVtcHR5IHJhbmdlIGJvdW5kIHNwZWNpZmllZCBmb3IgcGFydGl0aW9u ICJzYWxlc19tYXIyMDIyIgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElU SU9OIHNhbGVzX2ZlYl9tYXJfYXByMjAyMiBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZmVi MjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTAzLTAxJyks CisgICBQQVJUSVRJT04gc2FsZXNfbWFyMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAz LTAxJykgVE8gKCcyMDIyLTAyLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBG T1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJykpOworRVJS T1I6ICBlbXB0eSByYW5nZSBib3VuZCBzcGVjaWZpZWQgZm9yIHBhcnRpdGlvbiAic2FsZXNf bWFyMjAyMiIKK0xJTkUgMzogICAgUEFSVElUSU9OIHNhbGVzX21hcjIwMjIgRk9SIFZBTFVF UyBGUk9NICgnMjAyMi0wMy0wMScpIFRPLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgU3BlY2lmaWVkIGxvd2Vy IGJvdW5kICgnMDMtMDEtMjAyMicpIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB1cHBl ciBib3VuZCAoJzAyLTAxLTIwMjInKS4KKy0tRVJST1I6ICBsaXN0IG9mIHNwbGl0IHBhcnRp dGlvbnMgc2hvdWxkIGNvbnRhaW5zIGF0IGxlYXN0IHR3byBpdGVtcworQUxURVIgVEFCTEUg c2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2ZlYl9tYXJfYXByMjAyMiBJTlRP CisgIChQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAy LTAxJykgVE8gKCcyMDIyLTEwLTAxJykpOworRVJST1I6ICBsaXN0IG9mIG5ldyBwYXJ0aXRp b25zIHNob3VsZCBjb250YWlucyBhdCBsZWFzdCB0d28gaXRlbXMKKy0tIEVSUk9SOiAgYm91 bmRzIG9mIHBhcnRpdGlvbiAic2FsZXNfZmViMjAyMiIgYXJlIG91dHNpZGUgYm91bmRzIG9m IHNwbGl0IHBhcnRpdGlvbgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElU SU9OIHNhbGVzX2ZlYl9tYXJfYXByMjAyMiBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZmVi MjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTAzLTAxJyks CisgICBQQVJUSVRJT04gc2FsZXNfbWFyMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAz LTAxJykgVE8gKCcyMDIyLTA0LTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBG T1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJykpOworRVJS T1I6ICBuZXcgcGFydGl0aW9uICJzYWxlc19mZWIyMDIyIiB3b3VsZCBvdmVybGFwIHdpdGgg YW5vdGhlciAobm90IHNwbGl0KSBwYXJ0aXRpb24gInNhbGVzX2phbjIwMjIiCitMSU5FIDI6 ICAgKFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEt MDEnKSBUTy4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KKy0tIEVSUk9SOiAgbmFtZSAic2FsZXNfZmViX21hcl9hcHIyMDIyIiBh bHJlYWR5IHVzZWQKKy0tIChXZSBjYW4gY3JlYXRlIHBhcnRpdGlvbiB3aXRoIHRoZSBzYW1l IG5hbWUgYXMgc3BsaXQgcGFydGl0aW9uLCBidXQgY2FuJ3QgY3JlYXRlIHR3byBwYXJ0aXRp b25zIHdpdGggdGhlIHNhbWUgbmFtZSkKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElU IFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNh bGVzX2ZlYl9tYXJfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8g KCcyMDIyLTAzLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIyIEZP UiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEnKSwKKyAgIFBB UlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBU TyAoJzIwMjItMDUtMDEnKSk7CitFUlJPUjogIG5hbWUgInNhbGVzX2ZlYl9tYXJfYXByMjAy MiIgYWxyZWFkeSB1c2VkCitMSU5FIDM6ICAgIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2Fw cjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy4uLgorICAgICAgICAgICAgICAgICAg ICAgXgorLS0gRVJST1I6ICBuYW1lICJzYWxlc19mZWIyMDIyIiBhbHJlYWR5IHVzZWQKK0FM VEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2Fw cjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0wMy0wMScpLAorICAgUEFSVElUSU9OIHNhbGVz X2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0w MScpLAorICAgUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAy Mi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpKTsKK0VSUk9SOiAgbmFtZSAic2FsZXNfZmVi MjAyMiIgYWxyZWFkeSB1c2VkCitMSU5FIDM6ICAgIFBBUlRJVElPTiBzYWxlc19mZWIyMDIy IEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTy4uLgorICAgICAgICAgICAgICAg ICAgICAgXgorLS0gRVJST1I6ICAic2FsZXNfZmViX21hcl9hcHIyMDIyIiBpcyBub3QgYSBw YXJ0aXRpb25lZCB0YWJsZQorQUxURVIgVEFCTEUgc2FsZXNfZmViX21hcl9hcHIyMDIyIFNQ TElUIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElUSU9O IHNhbGVzX2phbjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgnMjAy Mi0wMy0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScpLAorICAgUEFSVElUSU9OIHNhbGVz X2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0w MScpKTsKK0VSUk9SOiAgInNhbGVzX2ZlYl9tYXJfYXByMjAyMiIgaXMgbm90IGEgcGFydGl0 aW9uZWQgdGFibGUKKy0tIEVSUk9SOiAgdXBwZXIgYm91bmQgb2YgcGFydGl0aW9uICJzYWxl c19hcHIyMDIyIiBpcyBub3QgZXF1YWxzIHRvIHVwcGVyIGJvdW5kIG9mIHNwbGl0IHBhcnRp dGlvbgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2Zl Yl9tYXJfYXByMjAyMiBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTAzLTAxJyksCisgICBQQVJUSVRJ T04gc2FsZXNfbWFyMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8gKCcy MDIyLTA0LTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZS T00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA2LTAxJykpOworRVJST1I6ICB1cHBlciBi b3VuZCBvZiBwYXJ0aXRpb24gInNhbGVzX2FwcjIwMjIiIGlzIG5vdCBlcXVhbHMgdG8gdXBw ZXIgYm91bmQgb2Ygc3BsaXQgcGFydGl0aW9uCitMSU5FIDQ6IC4uLiBzYWxlc19hcHIyMDIy IEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDYtMC4uLgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KKy0tIEVSUk9SOiAgbmV3IHBhcnRpdGlvbiAic2FsZXNfZmViMjAyMiIgd291bGQg b3ZlcmxhcCB3aXRoIGFub3RoZXIgKG5vdCBzcGxpdCkgcGFydGl0aW9uICJzYWxlc19qYW4y MDIyIgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2Zl Yl9tYXJfYXByMjAyMiBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTAzLTAxJyksCisgICBQQVJUSVRJ T04gc2FsZXNfbWFyMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8gKCcy MDIyLTA0LTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZS T00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJykpOworRVJST1I6ICBuZXcgcGFy dGl0aW9uICJzYWxlc19mZWIyMDIyIiB3b3VsZCBvdmVybGFwIHdpdGggYW5vdGhlciAobm90 IHNwbGl0KSBwYXJ0aXRpb24gInNhbGVzX2phbjIwMjIiCitMSU5FIDI6ICAgKFBBUlRJVElP TiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEnKSBUTy4uLgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K Ky0tIEVSUk9SOiAgbG93ZXIgYm91bmQgb2YgcGFydGl0aW9uICJzYWxlc19tYXIyMDIyIiBp cyBub3QgZXF1YWxzIHRvIHVwcGVyIGJvdW5kIG9mIHByZXZpb3VzIHBhcnRpdGlvbgorQUxU RVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2ZlYl9tYXJfYXBy MjAyMiBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00g KCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTAzLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNf bWFyMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTA0LTAx JyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIy LTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJykpOworRVJST1I6ICBsb3dlciBib3VuZCBvZiBw YXJ0aXRpb24gInNhbGVzX21hcjIwMjIiIGNvbmZsaWN0cyB3aXRoIHVwcGVyIGJvdW5kIG9m IHByZXZpb3VzIHBhcnRpdGlvbiAic2FsZXNfZmViMjAyMiIKK0xJTkUgMzogICAgUEFSVElU SU9OIHNhbGVzX21hcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMi0wMScpIFRPLi4u CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgorLS0gVGVzdHMgZm9yIHNwYWNlcyBiZXR3ZWVuIHBhcnRpdGlvbnMsIHRoZW0gc2hvdWxk IGJlIGV4ZWN1dGVkIHdpdGhvdXQgREVGQVVMVCBwYXJ0aXRpb24KK0FMVEVSIFRBQkxFIHNh bGVzX3JhbmdlIERFVEFDSCBQQVJUSVRJT04gc2FsZXNfb3RoZXJzOworLS0gRVJST1I6ICBs b3dlciBib3VuZCBvZiBwYXJ0aXRpb24gInNhbGVzX2ZlYjIwMjIiIGlzIG5vdCBlcXVhbHMg dG8gbG93ZXIgYm91bmQgb2Ygc3BsaXQgcGFydGl0aW9uCitBTFRFUiBUQUJMRSBzYWxlc19y YW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBB UlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDInKSBU TyAoJzIwMjItMDMtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19tYXIyMDIyIEZPUiBWQUxV RVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElP TiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIw MjItMDUtMDEnKSk7CitFUlJPUjogIGxvd2VyIGJvdW5kIG9mIHBhcnRpdGlvbiAic2FsZXNf ZmViMjAyMiIgaXMgbm90IGVxdWFscyB0byBsb3dlciBib3VuZCBvZiBzcGxpdCBwYXJ0aXRp b24KK0xJTkUgMjogICAoUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wMi0wMicpIFRPLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgorRFJPUCBUQUJMRSBzYWxlc19yYW5nZTsKK0RST1Ag VEFCTEUgc2FsZXNfb3RoZXJzOworLS0KKy0tIEFkZCByb3dzIGludG8gcGFydGl0aW9uZWQg dGFibGUgdGhlbiBzcGxpdCBwYXJ0aXRpb24KKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNfcmFu Z2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwgc2FsZXNf YW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVz X2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIwMjIgUEFSVElUSU9OIE9GIHNhbGVz X3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEnKSBUTyAoJzIwMjItMDItMDEn KTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWJfbWFyX2FwcjIwMjIgUEFSVElUSU9OIE9GIHNh bGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDUt MDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNhbGVzX3Jh bmdlIERFRkFVTFQ7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEsICAnTWF5 JywgICAgICAxMDAwLCAnMjAyMi0wMS0zMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2Ug VkFMVUVTICgyLCAgJ1NtaXJub2ZmJywgNTAwLCAgJzIwMjItMDItMTAnKTsKK0lOU0VSVCBJ TlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMywgICdGb3JkJywgICAgIDIwMDAsICcyMDIyLTA0 LTMwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDQsICAnSXZhbm92Jywg ICA3NTAsICAnMjAyMi0wNC0xMycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVT ICg1LCAgJ0RlZXYnLCAgICAgMjUwLCAgJzIwMjItMDQtMDcnKTsKK0lOU0VSVCBJTlRPIHNh bGVzX3JhbmdlIFZBTFVFUyAoNiwgICdQb2lyb3QnLCAgIDE1MCwgICcyMDIyLTAyLTExJyk7 CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDcsICAnTGknLCAgICAgICAxNzUs ICAnMjAyMi0wMy0wOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg4LCAg J0VyaWNzc29uJywgMTg1LCAgJzIwMjItMDItMjMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jh bmdlIFZBTFVFUyAoOSwgICdNdWxsZXInLCAgIDI1MCwgICcyMDIyLTAzLTExJyk7CitJTlNF UlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEwLCAnSGFsZGVyJywgICAzNTAsICAnMjAy Mi0wMS0yOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMSwgJ1RydW1w JywgICAgMzgwLCAgJzIwMjItMDQtMDYnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZB TFVFUyAoMTIsICdQbGF0bycsICAgIDM1MCwgICcyMDIyLTAzLTE5Jyk7CitJTlNFUlQgSU5U TyBzYWxlc19yYW5nZSBWQUxVRVMgKDEzLCAnR2FuZGknLCAgICAzNzcsICAnMjAyMi0wMS0w OScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxNCwgJ1NtaXRoJywgICAg NTEwLCAgJzIwMjItMDUtMDQnKTsKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBB UlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVz X2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0wMy0w MScpLAorICAgUEFSVElUSU9OIHNhbGVzX21hcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAy Mi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX2FwcjIw MjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpKTsK K1NFTEVDVCAqIEZST00gc2FsZXNfcmFuZ2U7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9u YW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICAxIHwg TWF5ICAgICAgICAgICB8ICAgICAgICAgMTAwMCB8IDAxLTMxLTIwMjIKKyAgICAgICAgICAx MCB8IEhhbGRlciAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMS0yOC0yMDIyCisgICAgICAg ICAgMTMgfCBHYW5kaSAgICAgICAgIHwgICAgICAgICAgMzc3IHwgMDEtMDktMjAyMgorICAg ICAgICAgICAyIHwgU21pcm5vZmYgICAgICB8ICAgICAgICAgIDUwMCB8IDAyLTEwLTIwMjIK KyAgICAgICAgICAgNiB8IFBvaXJvdCAgICAgICAgfCAgICAgICAgICAxNTAgfCAwMi0xMS0y MDIyCisgICAgICAgICAgIDggfCBFcmljc3NvbiAgICAgIHwgICAgICAgICAgMTg1IHwgMDIt MjMtMjAyMgorICAgICAgICAgICA3IHwgTGkgICAgICAgICAgICB8ICAgICAgICAgIDE3NSB8 IDAzLTA4LTIwMjIKKyAgICAgICAgICAgOSB8IE11bGxlciAgICAgICAgfCAgICAgICAgICAy NTAgfCAwMy0xMS0yMDIyCisgICAgICAgICAgMTIgfCBQbGF0byAgICAgICAgIHwgICAgICAg ICAgMzUwIHwgMDMtMTktMjAyMgorICAgICAgICAgICAzIHwgRm9yZCAgICAgICAgICB8ICAg ICAgICAgMjAwMCB8IDA0LTMwLTIwMjIKKyAgICAgICAgICAgNCB8IEl2YW5vdiAgICAgICAg fCAgICAgICAgICA3NTAgfCAwNC0xMy0yMDIyCisgICAgICAgICAgIDUgfCBEZWV2ICAgICAg ICAgIHwgICAgICAgICAgMjUwIHwgMDQtMDctMjAyMgorICAgICAgICAgIDExIHwgVHJ1bXAg ICAgICAgICB8ICAgICAgICAgIDM4MCB8IDA0LTA2LTIwMjIKKyAgICAgICAgICAxNCB8IFNt aXRoICAgICAgICAgfCAgICAgICAgICA1MTAgfCAwNS0wNC0yMDIyCisoMTQgcm93cykKKwor U0VMRUNUICogRlJPTSBzYWxlc19qYW4yMDIyOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5f bmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMSB8 IE1heSAgICAgICAgICAgfCAgICAgICAgIDEwMDAgfCAwMS0zMS0yMDIyCisgICAgICAgICAg MTAgfCBIYWxkZXIgICAgICAgIHwgICAgICAgICAgMzUwIHwgMDEtMjgtMjAyMgorICAgICAg ICAgIDEzIHwgR2FuZGkgICAgICAgICB8ICAgICAgICAgIDM3NyB8IDAxLTA5LTIwMjIKKygz IHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfZmViMjAyMjsKKyBzYWxlc21hbl9pZCB8 IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAg ICAgICAgIDIgfCBTbWlybm9mZiAgICAgIHwgICAgICAgICAgNTAwIHwgMDItMTAtMjAyMgor ICAgICAgICAgICA2IHwgUG9pcm90ICAgICAgICB8ICAgICAgICAgIDE1MCB8IDAyLTExLTIw MjIKKyAgICAgICAgICAgOCB8IEVyaWNzc29uICAgICAgfCAgICAgICAgICAxODUgfCAwMi0y My0yMDIyCisoMyByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX21hcjIwMjI7Cisgc2Fs ZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAK Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorICAgICAgICAgICA3IHwgTGkgICAgICAgICAgICB8ICAgICAgICAgIDE3NSB8IDAz LTA4LTIwMjIKKyAgICAgICAgICAgOSB8IE11bGxlciAgICAgICAgfCAgICAgICAgICAyNTAg fCAwMy0xMS0yMDIyCisgICAgICAgICAgMTIgfCBQbGF0byAgICAgICAgIHwgICAgICAgICAg MzUwIHwgMDMtMTktMjAyMgorKDMgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19hcHIy MDIyOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNh bGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMyB8IEZvcmQgICAgICAgICAgfCAgICAgICAg IDIwMDAgfCAwNC0zMC0yMDIyCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgICAg ICAgICAgNzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8 ICAgICAgICAgIDI1MCB8IDA0LTA3LTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1wICAgICAg ICAgfCAgICAgICAgICAzODAgfCAwNC0wNi0yMDIyCisoNCByb3dzKQorCitTRUxFQ1QgKiBG Uk9NIHNhbGVzX290aGVyczsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxl c19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgMTQgfCBTbWl0aCAgICAg ICAgIHwgICAgICAgICAgNTEwIHwgMDUtMDQtMjAyMgorKDEgcm93KQorCitEUk9QIFRBQkxF IHNhbGVzX3JhbmdlIENBU0NBREU7CistLQorLS0gQWRkIHNwbGl0IHBhcnRpdGlvbiB0aGVu IGFkZCByb3dzIGludG8gcGFydGl0aW9uZWQgdGFibGUKKy0tCitDUkVBVEUgVEFCTEUgc2Fs ZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwg c2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQQVJUSVRJT04gQlkgUkFOR0Ug KHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIwMjIgUEFSVElUSU9OIE9G IHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEnKSBUTyAoJzIwMjIt MDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWJfbWFyX2FwcjIwMjIgUEFSVElUSU9O IE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIw MjItMDUtMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNh bGVzX3JhbmdlIERFRkFVTFQ7CitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJU SVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19m ZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEn KSwKKyAgIFBBUlRJVElPTiBzYWxlc19tYXIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjIt MDMtMDEnKSBUTyAoJzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIy IEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7CitJ TlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEsICAnTWF5JywgICAgICAxMDAwLCAn MjAyMi0wMS0zMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgyLCAgJ1Nt aXJub2ZmJywgNTAwLCAgJzIwMjItMDItMTAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jhbmdl IFZBTFVFUyAoMywgICdGb3JkJywgICAgIDIwMDAsICcyMDIyLTA0LTMwJyk7CitJTlNFUlQg SU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDQsICAnSXZhbm92JywgICA3NTAsICAnMjAyMi0w NC0xMycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg1LCAgJ0RlZXYnLCAg ICAgMjUwLCAgJzIwMjItMDQtMDcnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVF UyAoNiwgICdQb2lyb3QnLCAgIDE1MCwgICcyMDIyLTAyLTExJyk7CitJTlNFUlQgSU5UTyBz YWxlc19yYW5nZSBWQUxVRVMgKDcsICAnTGknLCAgICAgICAxNzUsICAnMjAyMi0wMy0wOCcp OworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg4LCAgJ0VyaWNzc29uJywgMTg1 LCAgJzIwMjItMDItMjMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOSwg ICdNdWxsZXInLCAgIDI1MCwgICcyMDIyLTAzLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19y YW5nZSBWQUxVRVMgKDEwLCAnSGFsZGVyJywgICAzNTAsICAnMjAyMi0wMS0yOCcpOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMSwgJ1RydW1wJywgICAgMzgwLCAgJzIw MjItMDQtMDYnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTIsICdQbGF0 bycsICAgIDM1MCwgICcyMDIyLTAzLTE5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBW QUxVRVMgKDEzLCAnR2FuZGknLCAgICAzNzcsICAnMjAyMi0wMS0wOScpOworSU5TRVJUIElO VE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxNCwgJ1NtaXRoJywgICAgNTEwLCAgJzIwMjItMDUt MDQnKTsKK1NFTEVDVCAqIEZST00gc2FsZXNfcmFuZ2U7Cisgc2FsZXNtYW5faWQgfCBzYWxl c21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAg ICAxIHwgTWF5ICAgICAgICAgICB8ICAgICAgICAgMTAwMCB8IDAxLTMxLTIwMjIKKyAgICAg ICAgICAxMCB8IEhhbGRlciAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMS0yOC0yMDIyCisg ICAgICAgICAgMTMgfCBHYW5kaSAgICAgICAgIHwgICAgICAgICAgMzc3IHwgMDEtMDktMjAy MgorICAgICAgICAgICAyIHwgU21pcm5vZmYgICAgICB8ICAgICAgICAgIDUwMCB8IDAyLTEw LTIwMjIKKyAgICAgICAgICAgNiB8IFBvaXJvdCAgICAgICAgfCAgICAgICAgICAxNTAgfCAw Mi0xMS0yMDIyCisgICAgICAgICAgIDggfCBFcmljc3NvbiAgICAgIHwgICAgICAgICAgMTg1 IHwgMDItMjMtMjAyMgorICAgICAgICAgICA3IHwgTGkgICAgICAgICAgICB8ICAgICAgICAg IDE3NSB8IDAzLTA4LTIwMjIKKyAgICAgICAgICAgOSB8IE11bGxlciAgICAgICAgfCAgICAg ICAgICAyNTAgfCAwMy0xMS0yMDIyCisgICAgICAgICAgMTIgfCBQbGF0byAgICAgICAgIHwg ICAgICAgICAgMzUwIHwgMDMtMTktMjAyMgorICAgICAgICAgICAzIHwgRm9yZCAgICAgICAg ICB8ICAgICAgICAgMjAwMCB8IDA0LTMwLTIwMjIKKyAgICAgICAgICAgNCB8IEl2YW5vdiAg ICAgICAgfCAgICAgICAgICA3NTAgfCAwNC0xMy0yMDIyCisgICAgICAgICAgIDUgfCBEZWV2 ICAgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDQtMDctMjAyMgorICAgICAgICAgIDExIHwg VHJ1bXAgICAgICAgICB8ICAgICAgICAgIDM4MCB8IDA0LTA2LTIwMjIKKyAgICAgICAgICAx NCB8IFNtaXRoICAgICAgICAgfCAgICAgICAgICA1MTAgfCAwNS0wNC0yMDIyCisoMTQgcm93 cykKKworU0VMRUNUICogRlJPTSBzYWxlc19qYW4yMDIyOworIHNhbGVzbWFuX2lkIHwgc2Fs ZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgMSB8IE1heSAgICAgICAgICAgfCAgICAgICAgIDEwMDAgfCAwMS0zMS0yMDIyCisgICAg ICAgICAgMTAgfCBIYWxkZXIgICAgICAgIHwgICAgICAgICAgMzUwIHwgMDEtMjgtMjAyMgor ICAgICAgICAgIDEzIHwgR2FuZGkgICAgICAgICB8ICAgICAgICAgIDM3NyB8IDAxLTA5LTIw MjIKKygzIHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfZmViMjAyMjsKKyBzYWxlc21h bl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgICAgICAgICAgIDIgfCBTbWlybm9mZiAgICAgIHwgICAgICAgICAgNTAwIHwgMDItMTAt MjAyMgorICAgICAgICAgICA2IHwgUG9pcm90ICAgICAgICB8ICAgICAgICAgIDE1MCB8IDAy LTExLTIwMjIKKyAgICAgICAgICAgOCB8IEVyaWNzc29uICAgICAgfCAgICAgICAgICAxODUg fCAwMi0yMy0yMDIyCisoMyByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX21hcjIwMjI7 Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNf ZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorICAgICAgICAgICA3IHwgTGkgICAgICAgICAgICB8ICAgICAgICAgIDE3 NSB8IDAzLTA4LTIwMjIKKyAgICAgICAgICAgOSB8IE11bGxlciAgICAgICAgfCAgICAgICAg ICAyNTAgfCAwMy0xMS0yMDIyCisgICAgICAgICAgMTIgfCBQbGF0byAgICAgICAgIHwgICAg ICAgICAgMzUwIHwgMDMtMTktMjAyMgorKDMgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxl c19hcHIyMDIyOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3Vu dCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMyB8IEZvcmQgICAgICAgICAgfCAg ICAgICAgIDIwMDAgfCAwNC0zMC0yMDIyCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAg IHwgICAgICAgICAgNzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAgICA1IHwgRGVldiAgICAg ICAgICB8ICAgICAgICAgIDI1MCB8IDA0LTA3LTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1w ICAgICAgICAgfCAgICAgICAgICAzODAgfCAwNC0wNi0yMDIyCisoNCByb3dzKQorCitTRUxF Q1QgKiBGUk9NIHNhbGVzX290aGVyczsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUg fCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgMTQgfCBTbWl0 aCAgICAgICAgIHwgICAgICAgICAgNTEwIHwgMDUtMDQtMjAyMgorKDEgcm93KQorCitEUk9Q IFRBQkxFIHNhbGVzX3JhbmdlIENBU0NBREU7CistLQorLS0gVGVzdCBmb3I6CistLSAgICog Y29tcG9zaXRlIHBhcnRpdGlvbiBrZXk7CistLSAgICogR0VORVJBVEVEIGNvbHVtbjsKKy0t ICAgKiBjb2x1bW4gd2l0aCBERUZBVUxUIHZhbHVlLgorLS0KK0NSRUFURSBUQUJMRSBzYWxl c19kYXRlIChzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc195ZWFyIElOVCwgc2Fs ZXNfbW9udGggSU5ULCBzYWxlc19kYXkgSU5ULAorICBzYWxlc19kYXRlIFZBUkNIQVIoMTAp IEdFTkVSQVRFRCBBTFdBWVMgQVMKKyAgICAoTFBBRChzYWxlc195ZWFyOjp0ZXh0LCA0LCAn MCcpIHx8ICcuJyB8fCBMUEFEKHNhbGVzX21vbnRoOjp0ZXh0LCAyLCAnMCcpIHx8ICcuJyB8 fCBMUEFEKHNhbGVzX2RheTo6dGV4dCwgMiwgJzAnKSkgU1RPUkVELAorICBzYWxlc19kZXBh cnRtZW50IFZBUkNIQVIoMzApIERFRkFVTFQgJ1NhbGVzIGRlcGFydG1lbnQnKQorICBQQVJU SVRJT04gQlkgUkFOR0UgKHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxlc19kYXkpOwor Q1JFQVRFIFRBQkxFIHNhbGVzX2RlYzIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX2RhdGUgRk9S IFZBTFVFUyBGUk9NICgyMDIxLCAxMiwgMSkgVE8gKDIwMjIsIDEsIDEpOworQ1JFQVRFIFRB QkxFIHNhbGVzX2phbl9mZWIyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19kYXRlIEZPUiBWQUxV RVMgRlJPTSAoMjAyMiwgMSwgMSkgVE8gKDIwMjIsIDMsIDEpOworQ1JFQVRFIFRBQkxFIHNh bGVzX290aGVyIFBBUlRJVElPTiBPRiBzYWxlc19kYXRlIEZPUiBWQUxVRVMgRlJPTSAoMjAy MiwgMywgMSkgVE8gKE1BWFZBTFVFLCBNQVhWQUxVRSwgTUFYVkFMVUUpOworSU5TRVJUIElO VE8gc2FsZXNfZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwg c2FsZXNfZGF5KSBWQUxVRVMgKCdNYW5hZ2VyMScsIDIwMjEsIDEyLCA3KTsKK0lOU0VSVCBJ TlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgs IHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdlcjInLCAyMDIxLCAxMiwgOCk7CitJTlNFUlQg SU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRo LCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFnZXIzJywgMjAyMiwgMSwgMSk7CitJTlNFUlQg SU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRo LCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFnZXIxJywgMjAyMiwgMiwgNCk7CitJTlNFUlQg SU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRo LCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFnZXIyJywgMjAyMiwgMSwgMik7CitJTlNFUlQg SU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRo LCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFnZXIzJywgMjAyMiwgMiwgMSk7CitJTlNFUlQg SU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRo LCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFnZXIxJywgMjAyMiwgMywgMyk7CitJTlNFUlQg SU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRo LCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFnZXIyJywgMjAyMiwgMywgNCk7CitJTlNFUlQg SU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRo LCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFnZXIzJywgMjAyMiwgNSwgMSk7CitTRUxFQ1Qg KiBGUk9NIHNhbGVzX2RhdGU7Cisgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX3llYXIgfCBzYWxl c19tb250aCB8IHNhbGVzX2RheSB8IHNhbGVzX2RhdGUgfCBzYWxlc19kZXBhcnRtZW50IAor LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBNYW5hZ2VyMSAgICAgIHwgICAg ICAgMjAyMSB8ICAgICAgICAgIDEyIHwgICAgICAgICA3IHwgMjAyMS4xMi4wNyB8IFNhbGVz IGRlcGFydG1lbnQKKyBNYW5hZ2VyMiAgICAgIHwgICAgICAgMjAyMSB8ICAgICAgICAgIDEy IHwgICAgICAgICA4IHwgMjAyMS4xMi4wOCB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2Vy MyAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAxIHwgICAgICAgICAxIHwgMjAyMi4w MS4wMSB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMSAgICAgIHwgICAgICAgMjAyMiB8 ICAgICAgICAgICAyIHwgICAgICAgICA0IHwgMjAyMi4wMi4wNCB8IFNhbGVzIGRlcGFydG1l bnQKKyBNYW5hZ2VyMiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAxIHwgICAgICAg ICAyIHwgMjAyMi4wMS4wMiB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMyAgICAgIHwg ICAgICAgMjAyMiB8ICAgICAgICAgICAyIHwgICAgICAgICAxIHwgMjAyMi4wMi4wMSB8IFNh bGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMSAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAg ICAzIHwgICAgICAgICAzIHwgMjAyMi4wMy4wMyB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5h Z2VyMiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAzIHwgICAgICAgICA0IHwgMjAy Mi4wMy4wNCB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMyAgICAgIHwgICAgICAgMjAy MiB8ICAgICAgICAgICA1IHwgICAgICAgICAxIHwgMjAyMi4wNS4wMSB8IFNhbGVzIGRlcGFy dG1lbnQKKyg5IHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfZGVjMjAyMjsKKyBzYWxl c21hbl9uYW1lIHwgc2FsZXNfeWVhciB8IHNhbGVzX21vbnRoIHwgc2FsZXNfZGF5IHwgc2Fs ZXNfZGF0ZSB8IHNhbGVzX2RlcGFydG1lbnQgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLQorIE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIxIHwgICAgICAgICAgMTIgfCAg ICAgICAgIDcgfCAyMDIxLjEyLjA3IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAg ICAgfCAgICAgICAyMDIxIHwgICAgICAgICAgMTIgfCAgICAgICAgIDggfCAyMDIxLjEyLjA4 IHwgU2FsZXMgZGVwYXJ0bWVudAorKDIgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19q YW5fZmViMjAyMjsKKyBzYWxlc21hbl9uYW1lIHwgc2FsZXNfeWVhciB8IHNhbGVzX21vbnRo IHwgc2FsZXNfZGF5IHwgc2FsZXNfZGF0ZSB8IHNhbGVzX2RlcGFydG1lbnQgCistLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIy IHwgICAgICAgICAgIDEgfCAgICAgICAgIDEgfCAyMDIyLjAxLjAxIHwgU2FsZXMgZGVwYXJ0 bWVudAorIE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDIgfCAgICAg ICAgIDQgfCAyMDIyLjAyLjA0IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAg fCAgICAgICAyMDIyIHwgICAgICAgICAgIDEgfCAgICAgICAgIDIgfCAyMDIyLjAxLjAyIHwg U2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwgICAgICAg ICAgIDIgfCAgICAgICAgIDEgfCAyMDIyLjAyLjAxIHwgU2FsZXMgZGVwYXJ0bWVudAorKDQg cm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19vdGhlcjsKKyBzYWxlc21hbl9uYW1lIHwg c2FsZXNfeWVhciB8IHNhbGVzX21vbnRoIHwgc2FsZXNfZGF5IHwgc2FsZXNfZGF0ZSB8IHNh bGVzX2RlcGFydG1lbnQgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIE1h bmFnZXIxICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDMgfCAgICAgICAgIDMgfCAy MDIyLjAzLjAzIHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAgfCAgICAgICAy MDIyIHwgICAgICAgICAgIDMgfCAgICAgICAgIDQgfCAyMDIyLjAzLjA0IHwgU2FsZXMgZGVw YXJ0bWVudAorIE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDUgfCAg ICAgICAgIDEgfCAyMDIyLjA1LjAxIHwgU2FsZXMgZGVwYXJ0bWVudAorKDMgcm93cykKKwor QUxURVIgVEFCTEUgc2FsZXNfZGF0ZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfamFuX2ZlYjIw MjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2phbjIwMjIgRk9SIFZBTFVFUyBGUk9NICgy MDIyLCAxLCAxKSBUTyAoMjAyMiwgMiwgMSksCisgICBQQVJUSVRJT04gc2FsZXNfZmViMjAy MiBGT1IgVkFMVUVTIEZST00gKDIwMjIsIDIsIDEpIFRPICgyMDIyLCAzLCAxKSk7CitJTlNF UlQgSU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21v bnRoLCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFnZXIxJywgMjAyMiwgMSwgMTApOworSU5T RVJUIElOVE8gc2FsZXNfZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19t b250aCwgc2FsZXNfZGF5KSBWQUxVRVMgKCdNYW5hZ2VyMicsIDIwMjIsIDIsIDEwKTsKK1NF TEVDVCAqIEZST00gc2FsZXNfZGF0ZTsKKyBzYWxlc21hbl9uYW1lIHwgc2FsZXNfeWVhciB8 IHNhbGVzX21vbnRoIHwgc2FsZXNfZGF5IHwgc2FsZXNfZGF0ZSB8IHNhbGVzX2RlcGFydG1l bnQgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIE1hbmFnZXIxICAgICAg fCAgICAgICAyMDIxIHwgICAgICAgICAgMTIgfCAgICAgICAgIDcgfCAyMDIxLjEyLjA3IHwg U2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAgfCAgICAgICAyMDIxIHwgICAgICAg ICAgMTIgfCAgICAgICAgIDggfCAyMDIxLjEyLjA4IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1h bmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDEgfCAgICAgICAgIDEgfCAy MDIyLjAxLjAxIHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAgfCAgICAgICAy MDIyIHwgICAgICAgICAgIDEgfCAgICAgICAgIDIgfCAyMDIyLjAxLjAyIHwgU2FsZXMgZGVw YXJ0bWVudAorIE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDEgfCAg ICAgICAgMTAgfCAyMDIyLjAxLjEwIHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIxICAg ICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDIgfCAgICAgICAgIDQgfCAyMDIyLjAyLjA0 IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIzICAgICAgfCAgICAgICAyMDIyIHwgICAg ICAgICAgIDIgfCAgICAgICAgIDEgfCAyMDIyLjAyLjAxIHwgU2FsZXMgZGVwYXJ0bWVudAor IE1hbmFnZXIyICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDIgfCAgICAgICAgMTAg fCAyMDIyLjAyLjEwIHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIxICAgICAgfCAgICAg ICAyMDIyIHwgICAgICAgICAgIDMgfCAgICAgICAgIDMgfCAyMDIyLjAzLjAzIHwgU2FsZXMg ZGVwYXJ0bWVudAorIE1hbmFnZXIyICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDMg fCAgICAgICAgIDQgfCAyMDIyLjAzLjA0IHwgU2FsZXMgZGVwYXJ0bWVudAorIE1hbmFnZXIz ICAgICAgfCAgICAgICAyMDIyIHwgICAgICAgICAgIDUgfCAgICAgICAgIDEgfCAyMDIyLjA1 LjAxIHwgU2FsZXMgZGVwYXJ0bWVudAorKDExIHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2Fs ZXNfZGVjMjAyMjsKKyBzYWxlc21hbl9uYW1lIHwgc2FsZXNfeWVhciB8IHNhbGVzX21vbnRo IHwgc2FsZXNfZGF5IHwgc2FsZXNfZGF0ZSB8IHNhbGVzX2RlcGFydG1lbnQgCistLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIE1hbmFnZXIxICAgICAgfCAgICAgICAyMDIx IHwgICAgICAgICAgMTIgfCAgICAgICAgIDcgfCAyMDIxLjEyLjA3IHwgU2FsZXMgZGVwYXJ0 bWVudAorIE1hbmFnZXIyICAgICAgfCAgICAgICAyMDIxIHwgICAgICAgICAgMTIgfCAgICAg ICAgIDggfCAyMDIxLjEyLjA4IHwgU2FsZXMgZGVwYXJ0bWVudAorKDIgcm93cykKKworU0VM RUNUICogRlJPTSBzYWxlc19qYW4yMDIyOworIHNhbGVzbWFuX25hbWUgfCBzYWxlc195ZWFy IHwgc2FsZXNfbW9udGggfCBzYWxlc19kYXkgfCBzYWxlc19kYXRlIHwgc2FsZXNfZGVwYXJ0 bWVudCAKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgTWFuYWdlcjMgICAg ICB8ICAgICAgIDIwMjIgfCAgICAgICAgICAgMSB8ICAgICAgICAgMSB8IDIwMjIuMDEuMDEg fCBTYWxlcyBkZXBhcnRtZW50CisgTWFuYWdlcjIgICAgICB8ICAgICAgIDIwMjIgfCAgICAg ICAgICAgMSB8ICAgICAgICAgMiB8IDIwMjIuMDEuMDIgfCBTYWxlcyBkZXBhcnRtZW50Cisg TWFuYWdlcjEgICAgICB8ICAgICAgIDIwMjIgfCAgICAgICAgICAgMSB8ICAgICAgICAxMCB8 IDIwMjIuMDEuMTAgfCBTYWxlcyBkZXBhcnRtZW50CisoMyByb3dzKQorCitTRUxFQ1QgKiBG Uk9NIHNhbGVzX2ZlYjIwMjI7Cisgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX3llYXIgfCBzYWxl c19tb250aCB8IHNhbGVzX2RheSB8IHNhbGVzX2RhdGUgfCBzYWxlc19kZXBhcnRtZW50IAor LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBNYW5hZ2VyMSAgICAgIHwgICAg ICAgMjAyMiB8ICAgICAgICAgICAyIHwgICAgICAgICA0IHwgMjAyMi4wMi4wNCB8IFNhbGVz IGRlcGFydG1lbnQKKyBNYW5hZ2VyMyAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAy IHwgICAgICAgICAxIHwgMjAyMi4wMi4wMSB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2Vy MiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAyIHwgICAgICAgIDEwIHwgMjAyMi4w Mi4xMCB8IFNhbGVzIGRlcGFydG1lbnQKKygzIHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2Fs ZXNfb3RoZXI7Cisgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX3llYXIgfCBzYWxlc19tb250aCB8 IHNhbGVzX2RheSB8IHNhbGVzX2RhdGUgfCBzYWxlc19kZXBhcnRtZW50IAorLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBNYW5hZ2VyMSAgICAgIHwgICAgICAgMjAyMiB8 ICAgICAgICAgICAzIHwgICAgICAgICAzIHwgMjAyMi4wMy4wMyB8IFNhbGVzIGRlcGFydG1l bnQKKyBNYW5hZ2VyMiAgICAgIHwgICAgICAgMjAyMiB8ICAgICAgICAgICAzIHwgICAgICAg ICA0IHwgMjAyMi4wMy4wNCB8IFNhbGVzIGRlcGFydG1lbnQKKyBNYW5hZ2VyMyAgICAgIHwg ICAgICAgMjAyMiB8ICAgICAgICAgICA1IHwgICAgICAgICAxIHwgMjAyMi4wNS4wMSB8IFNh bGVzIGRlcGFydG1lbnQKKygzIHJvd3MpCisKKy0tRVJST1I6ICByZWxhdGlvbiAic2FsZXNf amFuX2ZlYjIwMjIiIGRvZXMgbm90IGV4aXN0CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbl9m ZWIyMDIyOworRVJST1I6ICByZWxhdGlvbiAic2FsZXNfamFuX2ZlYjIwMjIiIGRvZXMgbm90 IGV4aXN0CitMSU5FIDE6IFNFTEVDVCAqIEZST00gc2FsZXNfamFuX2ZlYjIwMjI7CisgICAg ICAgICAgICAgICAgICAgICAgXgorRFJPUCBUQUJMRSBzYWxlc19kYXRlIENBU0NBREU7Cist LQorLS0gVGVzdDogc3BsaXQgREVGQVVMVCBwYXJ0aXRpb247IHVzaW5nIGEgaW5kZXggb24g cGFydGl0aW9uIGtleTsgY2hlY2sgaW5kZXggYWZ0ZXIgc3BsaXQKKy0tCitDUkVBVEUgVEFC TEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBWQVJDSEFS KDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQQVJUSVRJT04gQlkg UkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIwMjIgUEFSVElU SU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEnKSBUTyAo JzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9G IHNhbGVzX3JhbmdlIERFRkFVTFQ7CitDUkVBVEUgSU5ERVggc2FsZXNfcmFuZ2Vfc2FsZXNf ZGF0ZV9pZHggT04gc2FsZXNfcmFuZ2UgVVNJTkcgYnRyZWUgKHNhbGVzX2RhdGUpOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxLCAgJ01heScsICAgICAgMTAwMCwgJzIw MjItMDEtMzEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMiwgICdTbWly bm9mZicsIDUwMCwgICcyMDIyLTAyLTEwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBW QUxVRVMgKDMsICAnRm9yZCcsICAgICAyMDAwLCAnMjAyMi0wNC0zMCcpOworSU5TRVJUIElO VE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg0LCAgJ0l2YW5vdicsICAgNzUwLCAgJzIwMjItMDQt MTMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNSwgICdEZWV2JywgICAg IDI1MCwgICcyMDIyLTA0LTA3Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMg KDYsICAnUG9pcm90JywgICAxNTAsICAnMjAyMi0wMi0xMScpOworSU5TRVJUIElOVE8gc2Fs ZXNfcmFuZ2UgVkFMVUVTICg3LCAgJ0xpJywgICAgICAgMTc1LCAgJzIwMjItMDMtMDgnKTsK K0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOCwgICdFcmljc3NvbicsIDE4NSwg ICcyMDIyLTAyLTIzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDksICAn TXVsbGVyJywgICAyNTAsICAnMjAyMi0wMy0xMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFu Z2UgVkFMVUVTICgxMCwgJ0hhbGRlcicsICAgMzUwLCAgJzIwMjItMDEtMjgnKTsKK0lOU0VS VCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTEsICdUcnVtcCcsICAgIDM4MCwgICcyMDIy LTA0LTA2Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEyLCAnUGxhdG8n LCAgICAzNTAsICAnMjAyMi0wMy0xOScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFM VUVTICgxMywgJ0dhbmRpJywgICAgMzc3LCAgJzIwMjItMDEtMDknKTsKK0lOU0VSVCBJTlRP IHNhbGVzX3JhbmdlIFZBTFVFUyAoMTQsICdTbWl0aCcsICAgIDUxMCwgICcyMDIyLTA1LTA0 Jyk7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX290aGVyczsKKyBzYWxlc21hbl9pZCB8IHNhbGVz bWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAg IDIgfCBTbWlybm9mZiAgICAgIHwgICAgICAgICAgNTAwIHwgMDItMTAtMjAyMgorICAgICAg ICAgICAzIHwgRm9yZCAgICAgICAgICB8ICAgICAgICAgMjAwMCB8IDA0LTMwLTIwMjIKKyAg ICAgICAgICAgNCB8IEl2YW5vdiAgICAgICAgfCAgICAgICAgICA3NTAgfCAwNC0xMy0yMDIy CisgICAgICAgICAgIDUgfCBEZWV2ICAgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDQtMDct MjAyMgorICAgICAgICAgICA2IHwgUG9pcm90ICAgICAgICB8ICAgICAgICAgIDE1MCB8IDAy LTExLTIwMjIKKyAgICAgICAgICAgNyB8IExpICAgICAgICAgICAgfCAgICAgICAgICAxNzUg fCAwMy0wOC0yMDIyCisgICAgICAgICAgIDggfCBFcmljc3NvbiAgICAgIHwgICAgICAgICAg MTg1IHwgMDItMjMtMjAyMgorICAgICAgICAgICA5IHwgTXVsbGVyICAgICAgICB8ICAgICAg ICAgIDI1MCB8IDAzLTExLTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1wICAgICAgICAgfCAg ICAgICAgICAzODAgfCAwNC0wNi0yMDIyCisgICAgICAgICAgMTIgfCBQbGF0byAgICAgICAg IHwgICAgICAgICAgMzUwIHwgMDMtMTktMjAyMgorICAgICAgICAgIDE0IHwgU21pdGggICAg ICAgICB8ICAgICAgICAgIDUxMCB8IDA1LTA0LTIwMjIKKygxMSByb3dzKQorCitTRUxFQ1Qg KiBGUk9NIHBnX2luZGV4ZXMgV0hFUkUgdGFibGVuYW1lID0gJ3NhbGVzX290aGVycycgYW5k IHNjaGVtYW5hbWUgPSAncGFydGl0aW9uX3NwbGl0X3NjaGVtYSc7CisgICAgICAgc2NoZW1h bmFtZSAgICAgICB8ICB0YWJsZW5hbWUgICB8ICAgICAgICAgIGluZGV4bmFtZSAgICAgICAg ICB8IHRhYmxlc3BhY2UgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbmRleGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHBhcnRpdGlv bl9zcGxpdF9zY2hlbWEgfCBzYWxlc19vdGhlcnMgfCBzYWxlc19vdGhlcnNfc2FsZXNfZGF0 ZV9pZHggfCAgICAgICAgICAgIHwgQ1JFQVRFIElOREVYIHNhbGVzX290aGVyc19zYWxlc19k YXRlX2lkeCBPTiBwYXJ0aXRpb25fc3BsaXRfc2NoZW1hLnNhbGVzX290aGVycyBVU0lORyBi dHJlZSAoc2FsZXNfZGF0ZSkKKygxIHJvdykKKworQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2Ug U1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNf ZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTAzLTAx JyksCisgICBQQVJUSVRJT04gc2FsZXNfbWFyMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIy LTAzLTAxJykgVE8gKCcyMDIyLTA0LTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAy MiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJyksCisg ICBQQVJUSVRJT04gc2FsZXNfb3RoZXJzIERFRkFVTFQpOworLS0gVXNlIGluZGV4c2NhbiBm b3IgdGVzdCBpbmRleGVzCitTRVQgZW5hYmxlX2luZGV4c2NhbiA9IE9OOworU0VUIGVuYWJs ZV9zZXFzY2FuID0gT0ZGOworU0VMRUNUICogRlJPTSBzYWxlc19mZWIyMDIyIHdoZXJlIHNh bGVzX2RhdGUgPiAnMjAyMi0wMS0wMSc7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1l IHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICAyIHwgU21p cm5vZmYgICAgICB8ICAgICAgICAgIDUwMCB8IDAyLTEwLTIwMjIKKyAgICAgICAgICAgNiB8 IFBvaXJvdCAgICAgICAgfCAgICAgICAgICAxNTAgfCAwMi0xMS0yMDIyCisgICAgICAgICAg IDggfCBFcmljc3NvbiAgICAgIHwgICAgICAgICAgMTg1IHwgMDItMjMtMjAyMgorKDMgcm93 cykKKworU0VMRUNUICogRlJPTSBzYWxlc19tYXIyMDIyIHdoZXJlIHNhbGVzX2RhdGUgPiAn MjAyMi0wMS0wMSc7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1v dW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICA3IHwgTGkgICAgICAgICAgICB8 ICAgICAgICAgIDE3NSB8IDAzLTA4LTIwMjIKKyAgICAgICAgICAgOSB8IE11bGxlciAgICAg ICAgfCAgICAgICAgICAyNTAgfCAwMy0xMS0yMDIyCisgICAgICAgICAgMTIgfCBQbGF0byAg ICAgICAgIHwgICAgICAgICAgMzUwIHwgMDMtMTktMjAyMgorKDMgcm93cykKKworU0VMRUNU ICogRlJPTSBzYWxlc19hcHIyMDIyIHdoZXJlIHNhbGVzX2RhdGUgPiAnMjAyMi0wMS0wMSc7 Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNf ZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorICAgICAgICAgIDExIHwgVHJ1bXAgICAgICAgICB8ICAgICAgICAgIDM4 MCB8IDA0LTA2LTIwMjIKKyAgICAgICAgICAgNSB8IERlZXYgICAgICAgICAgfCAgICAgICAg ICAyNTAgfCAwNC0wNy0yMDIyCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgICAg ICAgICAgNzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAgICAzIHwgRm9yZCAgICAgICAgICB8 ICAgICAgICAgMjAwMCB8IDA0LTMwLTIwMjIKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00g c2FsZXNfb3RoZXJzIHdoZXJlIHNhbGVzX2RhdGUgPiAnMjAyMi0wMS0wMSc7Cisgc2FsZXNt YW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorICAgICAgICAgIDE0IHwgU21pdGggICAgICAgICB8ICAgICAgICAgIDUxMCB8IDA1LTA0 LTIwMjIKKygxIHJvdykKKworU0VUIGVuYWJsZV9pbmRleHNjYW4gPSBPTjsKK1NFVCBlbmFi bGVfc2Vxc2NhbiA9IE9OOworU0VMRUNUICogRlJPTSBwZ19pbmRleGVzIFdIRVJFIHRhYmxl bmFtZSA9ICdzYWxlc19mZWIyMDIyJyBhbmQgc2NoZW1hbmFtZSA9ICdwYXJ0aXRpb25fc3Bs aXRfc2NoZW1hJzsKKyAgICAgICBzY2hlbWFuYW1lICAgICAgIHwgICB0YWJsZW5hbWUgICB8 ICAgICAgICAgIGluZGV4bmFtZSAgICAgICAgICAgfCB0YWJsZXNwYWNlIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ZGVmICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBwYXJ0aXRpb25fc3BsaXRfc2NoZW1hIHwgc2Fs ZXNfZmViMjAyMiB8IHNhbGVzX2ZlYjIwMjJfc2FsZXNfZGF0ZV9pZHggfCAgICAgICAgICAg IHwgQ1JFQVRFIElOREVYIHNhbGVzX2ZlYjIwMjJfc2FsZXNfZGF0ZV9pZHggT04gcGFydGl0 aW9uX3NwbGl0X3NjaGVtYS5zYWxlc19mZWIyMDIyIFVTSU5HIGJ0cmVlIChzYWxlc19kYXRl KQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHBnX2luZGV4ZXMgV0hFUkUgdGFibGVuYW1l ID0gJ3NhbGVzX21hcjIwMjInIGFuZCBzY2hlbWFuYW1lID0gJ3BhcnRpdGlvbl9zcGxpdF9z Y2hlbWEnOworICAgICAgIHNjaGVtYW5hbWUgICAgICAgfCAgIHRhYmxlbmFtZSAgIHwgICAg ICAgICAgaW5kZXhuYW1lICAgICAgICAgICB8IHRhYmxlc3BhY2UgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhkZWYgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHBhcnRpdGlvbl9zcGxpdF9zY2hlbWEgfCBzYWxlc19t YXIyMDIyIHwgc2FsZXNfbWFyMjAyMl9zYWxlc19kYXRlX2lkeCB8ICAgICAgICAgICAgfCBD UkVBVEUgSU5ERVggc2FsZXNfbWFyMjAyMl9zYWxlc19kYXRlX2lkeCBPTiBwYXJ0aXRpb25f c3BsaXRfc2NoZW1hLnNhbGVzX21hcjIwMjIgVVNJTkcgYnRyZWUgKHNhbGVzX2RhdGUpCiso MSByb3cpCisKK1NFTEVDVCAqIEZST00gcGdfaW5kZXhlcyBXSEVSRSB0YWJsZW5hbWUgPSAn c2FsZXNfYXByMjAyMicgYW5kIHNjaGVtYW5hbWUgPSAncGFydGl0aW9uX3NwbGl0X3NjaGVt YSc7CisgICAgICAgc2NoZW1hbmFtZSAgICAgICB8ICAgdGFibGVuYW1lICAgfCAgICAgICAg ICBpbmRleG5hbWUgICAgICAgICAgIHwgdGFibGVzcGFjZSB8ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleGRlZiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgcGFydGl0aW9uX3NwbGl0X3NjaGVtYSB8IHNhbGVzX2FwcjIw MjIgfCBzYWxlc19hcHIyMDIyX3NhbGVzX2RhdGVfaWR4IHwgICAgICAgICAgICB8IENSRUFU RSBJTkRFWCBzYWxlc19hcHIyMDIyX3NhbGVzX2RhdGVfaWR4IE9OIHBhcnRpdGlvbl9zcGxp dF9zY2hlbWEuc2FsZXNfYXByMjAyMiBVU0lORyBidHJlZSAoc2FsZXNfZGF0ZSkKKygxIHJv dykKKworU0VMRUNUICogRlJPTSBwZ19pbmRleGVzIFdIRVJFIHRhYmxlbmFtZSA9ICdzYWxl c19vdGhlcnMnIGFuZCBzY2hlbWFuYW1lID0gJ3BhcnRpdGlvbl9zcGxpdF9zY2hlbWEnOwor ICAgICAgIHNjaGVtYW5hbWUgICAgICAgfCAgdGFibGVuYW1lICAgfCAgICAgICAgICBpbmRl eG5hbWUgICAgICAgICAgIHwgdGFibGVzcGFjZSB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ZGVmICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgcGFydGl0aW9uX3NwbGl0X3NjaGVtYSB8IHNhbGVzX290aGVycyB8IHNhbGVz X290aGVyc19zYWxlc19kYXRlX2lkeDEgfCAgICAgICAgICAgIHwgQ1JFQVRFIElOREVYIHNh bGVzX290aGVyc19zYWxlc19kYXRlX2lkeDEgT04gcGFydGl0aW9uX3NwbGl0X3NjaGVtYS5z YWxlc19vdGhlcnMgVVNJTkcgYnRyZWUgKHNhbGVzX2RhdGUpCisoMSByb3cpCisKK0RST1Ag VEFCTEUgc2FsZXNfcmFuZ2UgQ0FTQ0FERTsKKy0tCistLSBUZXN0OiBzb21lIGNhc2VzIGZv ciBzcGxpdCBERUZBVUxUIHBhcnRpdGlvbiAoZGlmZmVyZW50IGJvdW5kcykKKy0tCitDUkVB VEUgVEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBW QVJDSEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBJTlQpIFBBUlRJVElP TiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBB UlRJVElPTiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOworLS0gc2FsZXNfZXJyb3IgaW50ZXJz ZWN0cyB3aXRoIHNhbGVzX2RlYzIwMjIgKGxvd2VyIGJvdW5kKQorLS0gRVJST1I6ICBsb3dl ciBib3VuZCBvZiBwYXJ0aXRpb24gInNhbGVzX2Vycm9yIiBjb25mbGljdHMgd2l0aCB1cHBl ciBib3VuZCBvZiBwcmV2aW91cyBwYXJ0aXRpb24gInNhbGVzX2RlYzIwMjIiCitBTFRFUiBU QUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfb3RoZXJzIElOVE8KKyAg KFBBUlRJVElPTiBzYWxlc19kZWMyMDIyIEZPUiBWQUxVRVMgRlJPTSAoMjAyMTEyMDEpIFRP ICgyMDIyMDEwMSksCisgICBQQVJUSVRJT04gc2FsZXNfZXJyb3IgRk9SIFZBTFVFUyBGUk9N ICgyMDIxMTIzMCkgVE8gKDIwMjIwMjAxKSwKKyAgIFBBUlRJVElPTiBzYWxlc19mZWIyMDIy IEZPUiBWQUxVRVMgRlJPTSAoMjAyMjAyMDEpIFRPICgyMDIyMDMwMSksCisgICBQQVJUSVRJ T04gc2FsZXNfb3RoZXJzIERFRkFVTFQpOworRVJST1I6ICBsb3dlciBib3VuZCBvZiBwYXJ0 aXRpb24gInNhbGVzX2Vycm9yIiBjb25mbGljdHMgd2l0aCB1cHBlciBib3VuZCBvZiBwcmV2 aW91cyBwYXJ0aXRpb24gInNhbGVzX2RlYzIwMjIiCitMSU5FIDM6ICAgIFBBUlRJVElPTiBz YWxlc19lcnJvciBGT1IgVkFMVUVTIEZST00gKDIwMjExMjMwKSBUTyAoMjAyMi4uLgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBz YWxlc19lcnJvciBpbnRlcnNlY3RzIHdpdGggc2FsZXNfZmViMjAyMiAodXBwZXIgYm91bmQp CistLSBFUlJPUjogIGxvd2VyIGJvdW5kIG9mIHBhcnRpdGlvbiAic2FsZXNfZmViMjAyMiIg Y29uZmxpY3RzIHdpdGggdXBwZXIgYm91bmQgb2YgcHJldmlvdXMgcGFydGl0aW9uICJzYWxl c19lcnJvciIKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxl c19vdGhlcnMgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2RlYzIwMjIgRk9SIFZBTFVFUyBG Uk9NICgyMDIxMTIwMSkgVE8gKDIwMjIwMTAxKSwKKyAgIFBBUlRJVElPTiBzYWxlc19lcnJv ciBGT1IgVkFMVUVTIEZST00gKDIwMjIwMTAxKSBUTyAoMjAyMjAyMDIpLAorICAgUEFSVElU SU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgyMDIyMDIwMSkgVE8gKDIwMjIw MzAxKSwKKyAgIFBBUlRJVElPTiBzYWxlc19vdGhlcnMgREVGQVVMVCk7CitFUlJPUjogIGxv d2VyIGJvdW5kIG9mIHBhcnRpdGlvbiAic2FsZXNfZmViMjAyMiIgY29uZmxpY3RzIHdpdGgg dXBwZXIgYm91bmQgb2YgcHJldmlvdXMgcGFydGl0aW9uICJzYWxlc19lcnJvciIKK0xJTkUg NDogICAgUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgyMDIyMDIw MSkgVE8gKDIwLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgorLS0gc2FsZXNfZXJyb3IgaW50ZXJzZWN0cyB3aXRoIHNhbGVzX2Rl YzIwMjIgKGluc2lkZSBib3VuZCkKKy0tIEVSUk9SOiAgbG93ZXIgYm91bmQgb2YgcGFydGl0 aW9uICJzYWxlc19lcnJvciIgY29uZmxpY3RzIHdpdGggdXBwZXIgYm91bmQgb2YgcHJldmlv dXMgcGFydGl0aW9uICJzYWxlc19kZWMyMDIyIgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2Ug U1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNf ZGVjMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjExMjAxKSBUTyAoMjAyMjAxMDEpLAorICAg UEFSVElUSU9OIHNhbGVzX2Vycm9yIEZPUiBWQUxVRVMgRlJPTSAoMjAyMTEyMTApIFRPICgy MDIxMTIyMCksCisgICBQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00g KDIwMjIwMjAxKSBUTyAoMjAyMjAzMDEpLAorICAgUEFSVElUSU9OIHNhbGVzX290aGVycyBE RUZBVUxUKTsKK0VSUk9SOiAgbG93ZXIgYm91bmQgb2YgcGFydGl0aW9uICJzYWxlc19lcnJv ciIgY29uZmxpY3RzIHdpdGggdXBwZXIgYm91bmQgb2YgcHJldmlvdXMgcGFydGl0aW9uICJz YWxlc19kZWMyMDIyIgorTElORSAzOiAgICBQQVJUSVRJT04gc2FsZXNfZXJyb3IgRk9SIFZB TFVFUyBGUk9NICgyMDIxMTIxMCkgVE8gKDIwMjEuLi4KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gc2FsZXNfZXJyb3IgaW50ZXJz ZWN0cyB3aXRoIHNhbGVzX2RlYzIwMjIgKGV4YWN0IHRoZSBzYW1lIGJvdW5kcykKKy0tIEVS Uk9SOiAgbG93ZXIgYm91bmQgb2YgcGFydGl0aW9uICJzYWxlc19lcnJvciIgY29uZmxpY3Rz IHdpdGggdXBwZXIgYm91bmQgb2YgcHJldmlvdXMgcGFydGl0aW9uICJzYWxlc19kZWMyMDIy IgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVy cyBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZGVjMjAyMiBGT1IgVkFMVUVTIEZST00gKDIw MjExMjAxKSBUTyAoMjAyMjAxMDEpLAorICAgUEFSVElUSU9OIHNhbGVzX2Vycm9yIEZPUiBW QUxVRVMgRlJPTSAoMjAyMTEyMDEpIFRPICgyMDIyMDEwMSksCisgICBQQVJUSVRJT04gc2Fs ZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjIwMjAxKSBUTyAoMjAyMjAzMDEpLAor ICAgUEFSVElUSU9OIHNhbGVzX290aGVycyBERUZBVUxUKTsKK0VSUk9SOiAgbG93ZXIgYm91 bmQgb2YgcGFydGl0aW9uICJzYWxlc19lcnJvciIgY29uZmxpY3RzIHdpdGggdXBwZXIgYm91 bmQgb2YgcHJldmlvdXMgcGFydGl0aW9uICJzYWxlc19kZWMyMDIyIgorTElORSAzOiAgICBQ QVJUSVRJT04gc2FsZXNfZXJyb3IgRk9SIFZBTFVFUyBGUk9NICgyMDIxMTIwMSkgVE8gKDIw MjIuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorLS0gRVJST1I6ICBhbnkgcGFydGl0aW9uIGluIHRoZSBsaXN0IHNob3VsZCBiZSBE RUZBVUxUIGJlY2F1c2Ugc3BsaXQgcGFydGl0aW9uIGlzIERFRkFVTFQKK0FMVEVSIFRBQkxF IHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19vdGhlcnMgSU5UTworICAoUEFS VElUSU9OIHNhbGVzX2RlYzIwMjIgRk9SIFZBTFVFUyBGUk9NICgyMDIxMTIwMSkgVE8gKDIw MjIwMTAxKSwKKyAgIFBBUlRJVElPTiBzYWxlc19qYW4yMDIyIEZPUiBWQUxVRVMgRlJPTSAo MjAyMjAxMDEpIFRPICgyMDIyMDIwMSksCisgICBQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBG T1IgVkFMVUVTIEZST00gKDIwMjIwMjAxKSBUTyAoMjAyMjAzMDEpKTsKK0VSUk9SOiAgYW55 IHBhcnRpdGlvbiBpbiB0aGUgbGlzdCBzaG91bGQgYmUgREVGQVVMVCBiZWNhdXNlIHNwbGl0 IHBhcnRpdGlvbiBpcyBERUZBVUxUCitMSU5FIDI6ICAgKFBBUlRJVElPTiBzYWxlc19kZWMy MDIyIEZPUiBWQUxVRVMgRlJPTSAoMjAyMTEyMDEpIFRPICgyMC4uLgorICAgICAgICAgICAg ICAgICAgICAgXgorLS0gbm8gZXJyb3I6IGJvdW5kcyBvZiBzYWxlc19ub2Vycm9yIGJldHdl ZW4gc2FsZXNfZGVjMjAyMiBhbmQgc2FsZXNfZmViMjAyMgorQUxURVIgVEFCTEUgc2FsZXNf cmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQQVJUSVRJT04g c2FsZXNfZGVjMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjExMjAxKSBUTyAoMjAyMjAxMDEp LAorICAgUEFSVElUSU9OIHNhbGVzX25vZXJyb3IgRk9SIFZBTFVFUyBGUk9NICgyMDIyMDEx MCkgVE8gKDIwMjIwMTIwKSwKKyAgIFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxV RVMgRlJPTSAoMjAyMjAyMDEpIFRPICgyMDIyMDMwMSksCisgICBQQVJUSVRJT04gc2FsZXNf b3RoZXJzIERFRkFVTFQpOworRFJPUCBUQUJMRSBzYWxlc19yYW5nZTsKK0NSRUFURSBUQUJM RSBzYWxlc19yYW5nZSAoc2FsZXNtYW5faWQgSU5ULCBzYWxlc21hbl9uYW1lIFZBUkNIQVIo MzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19kYXRlIElOVCkgUEFSVElUSU9OIEJZIFJB TkdFIChzYWxlc19kYXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9O IE9GIHNhbGVzX3JhbmdlIERFRkFVTFQ7CistLSBubyBlcnJvcjogYm91bmRzIG9mIHNhbGVz X25vZXJyb3IgZXF1YWxzIHRvIGxvd2VyIGFuZCB1cHBlciBib3VuZHMgb2Ygc2FsZXNfZGVj MjAyMiBhbmQgc2FsZXNfZmViMjAyMgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQg UEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZGVjMjAy MiBGT1IgVkFMVUVTIEZST00gKDIwMjExMjAxKSBUTyAoMjAyMjAxMDEpLAorICAgUEFSVElU SU9OIHNhbGVzX25vZXJyb3IgRk9SIFZBTFVFUyBGUk9NICgyMDIxMDEwMSkgVE8gKDIwMjEw MjAxKSwKKyAgIFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoMjAy MjAyMDEpIFRPICgyMDIyMDMwMSksCisgICBQQVJUSVRJT04gc2FsZXNfb3RoZXJzIERFRkFV TFQpOworRFJPUCBUQUJMRSBzYWxlc19yYW5nZTsKKy0tCistLSBUZXN0OiBzcGxpdCBwYXJ0 aXRpb24gd2l0aCBDSEVDSyBhbmQgRk9SRUlHTiBLRVkgQ09OU1RSQUlOVHMgb24gcGFydGl0 aW9uZWQgdGFibGUKKy0tCitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zKHNhbGVzbWFuX2lkIElO VCBQUklNQVJZIEtFWSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSk7CitJTlNFUlQgSU5U TyBzYWxlc21hbnMgVkFMVUVTICgxLCAgJ1BvaXJvdCcpOworQ1JFQVRFIFRBQkxFIHNhbGVz X3JhbmdlICgKK3NhbGVzbWFuX2lkIElOVCBSRUZFUkVOQ0VTIHNhbGVzbWFucyhzYWxlc21h bl9pZCksCitzYWxlc19hbW91bnQgSU5UIENIRUNLIChzYWxlc19hbW91bnQgPiAxKSwKK3Nh bGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19kYXRlKTsKK0NSRUFU RSBUQUJMRSBzYWxlc19qYW4yMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTAyLTAxJyk7CitDUkVBVEUgVEFC TEUgc2FsZXNfZmViX21hcl9hcHIyMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBGT1Ig VkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTA1LTAxJyk7CitDUkVBVEUg VEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOwor U0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCksIGNvbm5hbWUsIGNvbmtleSBGUk9N IHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ucmVsaWQgPSAnc2FsZXNfZmViX21hcl9hcHIyMDIy Jzo6cmVnY2xhc3M6Om9pZDsKKyAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFp bnRkZWYgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgY29ubmFtZSAgICAgICAg ICAgICB8IGNvbmtleSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0KKyBDSEVDSyAoKHNhbGVzX2Ftb3VudCA+IDEpKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHNhbGVzX3JhbmdlX3NhbGVzX2Ftb3VudF9jaGVjayB8 IHsyfQorIEZPUkVJR04gS0VZIChzYWxlc21hbl9pZCkgUkVGRVJFTkNFUyBzYWxlc21hbnMo c2FsZXNtYW5faWQpIHwgc2FsZXNfcmFuZ2Vfc2FsZXNtYW5faWRfZmtleSAgIHwgezF9Ciso MiByb3dzKQorCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2Fs ZXNfZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZP UiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKSwKKyAgIFBB UlRJVElPTiBzYWxlc19tYXIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBU TyAoJzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxV RVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7CistLSBXZSBzaG91 bGQgc2VlIHRoZSBzYW1lIENPTlNUUkFJTlRzIGFzIG9uIHNhbGVzX2ZlYl9tYXJfYXByMjAy MiBwYXJ0aXRpb24KK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpLCBjb25uYW1l LCBjb25rZXkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbnJlbGlkID0gJ3NhbGVzX2Zl YjIwMjInOjpyZWdjbGFzczo6b2lkOworICAgICAgICAgICAgICAgICAgICBwZ19nZXRfY29u c3RyYWludGRlZiAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICBjb25uYW1lICAg ICAgICAgICAgIHwgY29ua2V5IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLQorIENIRUNLICgoc2FsZXNfYW1vdW50ID4gMSkpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2FsZXNfcmFuZ2Vfc2FsZXNfYW1vdW50X2No ZWNrIHwgezJ9CisgRk9SRUlHTiBLRVkgKHNhbGVzbWFuX2lkKSBSRUZFUkVOQ0VTIHNhbGVz bWFucyhzYWxlc21hbl9pZCkgfCBzYWxlc19yYW5nZV9zYWxlc21hbl9pZF9ma2V5ICAgfCB7 MX0KKygyIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpLCBjb25u YW1lLCBjb25rZXkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbnJlbGlkID0gJ3NhbGVz X21hcjIwMjInOjpyZWdjbGFzczo6b2lkOworICAgICAgICAgICAgICAgICAgICBwZ19nZXRf Y29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICBjb25uYW1l ICAgICAgICAgICAgIHwgY29ua2V5IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLQorIENIRUNLICgoc2FsZXNfYW1vdW50ID4gMSkpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2FsZXNfcmFuZ2Vfc2FsZXNfYW1vdW50 X2NoZWNrIHwgezJ9CisgRk9SRUlHTiBLRVkgKHNhbGVzbWFuX2lkKSBSRUZFUkVOQ0VTIHNh bGVzbWFucyhzYWxlc21hbl9pZCkgfCBzYWxlc19yYW5nZV9zYWxlc21hbl9pZF9ma2V5ICAg fCB7MX0KKygyIHJvd3MpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpLCBj b25uYW1lLCBjb25rZXkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbnJlbGlkID0gJ3Nh bGVzX2FwcjIwMjInOjpyZWdjbGFzczo6b2lkOworICAgICAgICAgICAgICAgICAgICBwZ19n ZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICBjb25u YW1lICAgICAgICAgICAgIHwgY29ua2V5IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLQorIENIRUNLICgoc2FsZXNfYW1vdW50ID4gMSkpICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2FsZXNfcmFuZ2Vfc2FsZXNfYW1v dW50X2NoZWNrIHwgezJ9CisgRk9SRUlHTiBLRVkgKHNhbGVzbWFuX2lkKSBSRUZFUkVOQ0VT IHNhbGVzbWFucyhzYWxlc21hbl9pZCkgfCBzYWxlc19yYW5nZV9zYWxlc21hbl9pZF9ma2V5 ICAgfCB7MX0KKygyIHJvd3MpCisKKy0tIEVSUk9SOiAgbmV3IHJvdyBmb3IgcmVsYXRpb24g InNhbGVzX21hcjIwMjIiIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgInNhbGVzX3Jhbmdl X3NhbGVzbWFuX2lkX2NoZWNrIgorSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgx LCAwLCAnMjAyMi0wMy0xMScpOworRVJST1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAic2Fs ZXNfbWFyMjAyMiIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAic2FsZXNfcmFuZ2Vfc2Fs ZXNfYW1vdW50X2NoZWNrIgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDEsIDAs IDAzLTExLTIwMjIpLgorLS0gRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJz YWxlc19tYXIyMDIyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJzYWxlc19y YW5nZV9zYWxlc21hbl9pZF9ma2V5IgorSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVT ICgtMSwgMTAsICcyMDIyLTAzLTExJyk7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24g dGFibGUgInNhbGVzX21hcjIwMjIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InNhbGVzX3JhbmdlX3NhbGVzbWFuX2lkX2ZrZXkiCitERVRBSUw6ICBLZXkgKHNhbGVzbWFu X2lkKT0oLTEpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJzYWxlc21hbnMiLgorLS0gb2sK K0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMSwgMTAsICcyMDIyLTAzLTExJyk7 CitEUk9QIFRBQkxFIHNhbGVzX3JhbmdlIENBU0NBREU7CitEUk9QIFRBQkxFIHNhbGVzbWFu cyBDQVNDQURFOworLS0KKy0tIFRlc3Q6IHNwbGl0IHBhcnRpdGlvbiBvbiBwYXJ0aXRpb25l ZCB0YWJsZSBpbiBjYXNlIGV4aXN0cyBGT1JFSUdOIEtFWSByZWZlcmVuY2UgZnJvbSBhbm90 aGVyIHRhYmxlCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzbWFucyhzYWxlc21hbl9pZCBJTlQg UFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBCWSBS QU5HRSAoc2FsZXNtYW5faWQpOworQ1JFQVRFIFRBQkxFIHNhbGVzIChzYWxlc21hbl9pZCBJ TlQgUkVGRVJFTkNFUyBzYWxlc21hbnMoc2FsZXNtYW5faWQpLCBzYWxlc19hbW91bnQgSU5U LCBzYWxlc19kYXRlIERBVEUpOworQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczAxXzEwIFBBUlRJ VElPTiBPRiBzYWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMTApOworQ1JFQVRF IFRBQkxFIHNhbGVzbWFuczEwXzQwIFBBUlRJVElPTiBPRiBzYWxlc21hbnMgRk9SIFZBTFVF UyBGUk9NICgxMCkgVE8gKDQwKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDEs ICAnUG9pcm90Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxMCwgJ01heScp OworSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMTksICdJdmFub3YnKTsKK0lOU0VS VCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDIwLCAnU21pcm5vZmYnKTsKK0lOU0VSVCBJTlRP IHNhbGVzbWFucyBWQUxVRVMgKDMwLCAnRm9yZCcpOworSU5TRVJUIElOVE8gc2FsZXMgVkFM VUVTICgxLCAgMTAwLCAnMjAyMi0wMy0wMScpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVT ICgxLCAgMTEwLCAnMjAyMi0wMy0wMicpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgx MCwgMTUwLCAnMjAyMi0wMy0wMScpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgxMCwg OTAsICAnMjAyMi0wMy0wMycpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgxOSwgMjAw LCAnMjAyMi0wMy0wNCcpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgyMCwgNTAsICAn MjAyMi0wMy0xMicpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgyMCwgMTcwLCAnMjAy Mi0wMy0wMicpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgzMCwgMzAsICAnMjAyMi0w My0wNCcpOworU0VMRUNUICogRlJPTSBzYWxlc21hbnMwMV8xMDsKKyBzYWxlc21hbl9pZCB8 IHNhbGVzbWFuX25hbWUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAxIHwgUG9pcm90CisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gc2FsZXNtYW5zMTBf NDA7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIAorLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAxMCB8IE1heQorICAgICAgICAgIDE5IHwgSXZhbm92 CisgICAgICAgICAgMjAgfCBTbWlybm9mZgorICAgICAgICAgIDMwIHwgRm9yZAorKDQgcm93 cykKKworQUxURVIgVEFCTEUgc2FsZXNtYW5zIFNQTElUIFBBUlRJVElPTiBzYWxlc21hbnMx MF80MCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNtYW5zMTBfMjAgRk9SIFZBTFVFUyBGUk9N ICgxMCkgVE8gKDIwKSwKKyAgIFBBUlRJVElPTiBzYWxlc21hbnMyMF8zMCBGT1IgVkFMVUVT IEZST00gKDIwKSBUTyAoMzApLAorICAgUEFSVElUSU9OIHNhbGVzbWFuczMwXzQwIEZPUiBW QUxVRVMgRlJPTSAoMzApIFRPICg0MCkpOworU0VMRUNUICogRlJPTSBzYWxlc21hbnMwMV8x MDsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgCistLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAxIHwgUG9pcm90CisoMSByb3cpCisKK1NFTEVDVCAq IEZST00gc2FsZXNtYW5zMTBfMjA7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIAor LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAxMCB8IE1heQorICAg ICAgICAgIDE5IHwgSXZhbm92CisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFu czIwXzMwOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgMjAgfCBTbWlybm9mZgorKDEgcm93KQorCitT RUxFQ1QgKiBGUk9NIHNhbGVzbWFuczMwXzQwOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5f bmFtZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgMzAgfCBG b3JkCisoMSByb3cpCisKKy0tIEVSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAi c2FsZXMiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInNhbGVzX3NhbGVzbWFu X2lkX2ZrZXkiCitJTlNFUlQgSU5UTyBzYWxlcyBWQUxVRVMgKDQwLCA1MCwgICcyMDIyLTAz LTA0Jyk7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInNhbGVzIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJzYWxlc19zYWxlc21hbl9pZF9ma2V5Igor REVUQUlMOiAgS2V5IChzYWxlc21hbl9pZCk9KDQwKSBpcyBub3QgcHJlc2VudCBpbiB0YWJs ZSAic2FsZXNtYW5zIi4KKy0tIG9rCitJTlNFUlQgSU5UTyBzYWxlcyBWQUxVRVMgKDMwLCA1 MCwgICcyMDIyLTAzLTA0Jyk7CitEUk9QIFRBQkxFIHNhbGVzIENBU0NBREU7CitEUk9QIFRB QkxFIHNhbGVzbWFucyBDQVNDQURFOworLS0KKy0tIFRlc3Q6IHNwbGl0IHBhcnRpdGlvbiBv ZiBwYXJ0aXRpb25lZCB0YWJsZSB3aXRoIHRyaWdnZXJzCistLQorQ1JFQVRFIFRBQkxFIHNh bGVzbWFucyhzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFS Q0hBUigzMCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNtYW5faWQpOworQ1JFQVRFIFRB QkxFIHNhbGVzbWFuczAxXzEwIFBBUlRJVElPTiBPRiBzYWxlc21hbnMgRk9SIFZBTFVFUyBG Uk9NICgxKSBUTyAoMTApOworQ1JFQVRFIFRBQkxFIHNhbGVzbWFuczEwXzQwIFBBUlRJVElP TiBPRiBzYWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgxMCkgVE8gKDQwKTsKK0lOU0VSVCBJ TlRPIHNhbGVzbWFucyBWQUxVRVMgKDEsICAnUG9pcm90Jyk7CitDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiBhZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIoKSBSRVRVUk5TIHRyaWdnZXIg TEFOR1VBR0UgJ3BscGdzcWwnIEFTICRCT0RZJAorQkVHSU4KKwlSQUlTRSBOT1RJQ0UgJ3Ry aWdnZXIoJSkgY2FsbGVkOiBhY3Rpb24gPSAlLCB3aGVuID0gJSwgbGV2ZWwgPSAlJywgVEdf QVJHVlswXSwgVEdfT1AsIFRHX1dIRU4sIFRHX0xFVkVMOworICAgIFJFVFVSTiBOVUxMOwor RU5EOworJEJPRFkkOworQ1JFQVRFIFRSSUdHRVIgc2FsZXNtYW5zX2FmdGVyX2luc2VydF9z dGF0ZW1lbnRfdHJpZ2dlcgorICAgIEFGVEVSIElOU0VSVAorICAgIE9OIHNhbGVzbWFucwor ICAgIEZPUiBFQUNIIFNUQVRFTUVOVAorICAgIEVYRUNVVEUgUFJPQ0VEVVJFIGFmdGVyX2lu c2VydF9yb3dfdHJpZ2dlcignc2FsZXNtYW5zJyk7CitDUkVBVEUgVFJJR0dFUiBzYWxlc21h bnNfYWZ0ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyCisgICAgQUZURVIgSU5TRVJUCisgICAgT04g c2FsZXNtYW5zCisgICAgRk9SIEVBQ0ggUk9XCisgICAgRVhFQ1VURSBQUk9DRURVUkUgYWZ0 ZXJfaW5zZXJ0X3Jvd190cmlnZ2VyKCdzYWxlc21hbnMnKTsKKy0tIDIgdHJpZ2dlcnMgc2hv dWxkIGZpcmUgaGVyZSAocm93ICsgc3RhdGVtZW50KToKK0lOU0VSVCBJTlRPIHNhbGVzbWFu cyBWQUxVRVMgKDEwLCAnTWF5Jyk7CitOT1RJQ0U6ICB0cmlnZ2VyKHNhbGVzbWFucykgY2Fs bGVkOiBhY3Rpb24gPSBJTlNFUlQsIHdoZW4gPSBBRlRFUiwgbGV2ZWwgPSBST1cKK05PVElD RTogIHRyaWdnZXIoc2FsZXNtYW5zKSBjYWxsZWQ6IGFjdGlvbiA9IElOU0VSVCwgd2hlbiA9 IEFGVEVSLCBsZXZlbCA9IFNUQVRFTUVOVAorLS0gMSB0cmlnZ2VyIHNob3VsZCBmaXJlIGhl cmUgKHJvdyk6CitJTlNFUlQgSU5UTyBzYWxlc21hbnMxMF80MCBWQUxVRVMgKDE5LCAnSXZh bm92Jyk7CitOT1RJQ0U6ICB0cmlnZ2VyKHNhbGVzbWFucykgY2FsbGVkOiBhY3Rpb24gPSBJ TlNFUlQsIHdoZW4gPSBBRlRFUiwgbGV2ZWwgPSBST1cKK0FMVEVSIFRBQkxFIHNhbGVzbWFu cyBTUExJVCBQQVJUSVRJT04gc2FsZXNtYW5zMTBfNDAgSU5UTworICAoUEFSVElUSU9OIHNh bGVzbWFuczEwXzIwIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCksCisgICBQQVJUSVRJ T04gc2FsZXNtYW5zMjBfMzAgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKSwKKyAgIFBB UlRJVElPTiBzYWxlc21hbnMzMF80MCBGT1IgVkFMVUVTIEZST00gKDMwKSBUTyAoNDApKTsK Ky0tIDIgdHJpZ2dlcnMgc2hvdWxkIGZpcmUgaGVyZSAocm93ICsgc3RhdGVtZW50KToKK0lO U0VSVCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDIwLCAnU21pcm5vZmYnKTsKK05PVElDRTog IHRyaWdnZXIoc2FsZXNtYW5zKSBjYWxsZWQ6IGFjdGlvbiA9IElOU0VSVCwgd2hlbiA9IEFG VEVSLCBsZXZlbCA9IFJPVworTk9USUNFOiAgdHJpZ2dlcihzYWxlc21hbnMpIGNhbGxlZDog YWN0aW9uID0gSU5TRVJULCB3aGVuID0gQUZURVIsIGxldmVsID0gU1RBVEVNRU5UCistLSAx IHRyaWdnZXIgc2hvdWxkIGZpcmUgaGVyZSAocm93KToKK0lOU0VSVCBJTlRPIHNhbGVzbWFu czMwXzQwIFZBTFVFUyAoMzAsICdGb3JkJyk7CitOT1RJQ0U6ICB0cmlnZ2VyKHNhbGVzbWFu cykgY2FsbGVkOiBhY3Rpb24gPSBJTlNFUlQsIHdoZW4gPSBBRlRFUiwgbGV2ZWwgPSBST1cK K1NFTEVDVCAqIEZST00gc2FsZXNtYW5zMDFfMTA7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21h bl9uYW1lIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMSB8 IFBvaXJvdAorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczEwXzIwOworIHNh bGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgMTAgfCBNYXkKKyAgICAgICAgICAxOSB8IEl2YW5vdgorKDIgcm93 cykKKworU0VMRUNUICogRlJPTSBzYWxlc21hbnMyMF8zMDsKKyBzYWxlc21hbl9pZCB8IHNh bGVzbWFuX25hbWUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg IDIwIHwgU21pcm5vZmYKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBzYWxlc21hbnMzMF80 MDsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgCistLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLQorICAgICAgICAgIDMwIHwgRm9yZAorKDEgcm93KQorCitEUk9QIFRBQkxF IHNhbGVzbWFucyBDQVNDQURFOworRFJPUCBGVU5DVElPTiBhZnRlcl9pbnNlcnRfcm93X3Ry aWdnZXIoKTsKKy0tCistLSBUZXN0OiBzcGxpdCBwYXJ0aXRpb24gd2l0Y2ggaWRlbnRpdHkg Y29sdW1uCistLSBJZiBzcGxpdCBwYXJ0aXRpb24gY29sdW1uIGlzIGlkZW50aXR5LWNvbHVt biwgY29sdW1ucyBvZiBuZXcgcGFydGl0aW9ucyBhcmUgaWRlbnRpdHktY29sdW1ucyB0b28u CistLQorQ1JFQVRFIFRBQkxFIHNhbGVzbWFucyhzYWxlc21hbl9pZCBJTlQgR0VORVJBVEVE IEFMV0FZUyBBUyBJREVOVElUWSBQUklNQVJZIEtFWSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFS KDMwKSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc21hbl9pZCk7CitDUkVBVEUgVEFCTEUg c2FsZXNtYW5zMV8yIFBBUlRJVElPTiBPRiBzYWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgx KSBUTyAoMik7CistLSBDcmVhdGUgbmV3IHBhcnRpdGlvbiB3aXRoIGlkZW50aXR5LWNvbHVt bjoKK0NSRUFURSBUQUJMRSBzYWxlc21hbnMyXzUoc2FsZXNtYW5faWQgSU5UIEdFTkVSQVRF RCBBTFdBWVMgQVMgSURFTlRJVFkgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hB UigzMCkpOworQUxURVIgVEFCTEUgc2FsZXNtYW5zIEFUVEFDSCBQQVJUSVRJT04gc2FsZXNt YW5zMl81IEZPUiBWQUxVRVMgRlJPTSAoMikgVE8gKDUpOworSU5TRVJUIElOVE8gc2FsZXNt YW5zIChzYWxlc21hbl9uYW1lKSBWQUxVRVMgKCdQb2lyb3QnKTsKK0lOU0VSVCBJTlRPIHNh bGVzbWFucyAoc2FsZXNtYW5fbmFtZSkgVkFMVUVTICgnSXZhbm92Jyk7CitTRUxFQ1QgYXR0 bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVS RSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICdzYWxlc21hbnMnOjpyZWdjbGFzczo6b2lk OworICAgIGF0dG5hbWUgICAgfCBhdHRpZGVudGl0eSB8IGF0dGdlbmVyYXRlZCAKKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgc2FsZXNtYW5faWQg ICB8IGEgICAgICAgICAgIHwgCisgc2FsZXNtYW5fbmFtZSB8ICAgICAgICAgICAgIHwgCiso MiByb3dzKQorCitTRUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVyYXRlZCBG Uk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICdzYWxl c21hbnMxXzInOjpyZWdjbGFzczo6b2lkOworICAgIGF0dG5hbWUgICAgfCBhdHRpZGVudGl0 eSB8IGF0dGdlbmVyYXRlZCAKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tCisgc2FsZXNtYW5faWQgICB8ICAgICAgICAgICAgIHwgCisgc2FsZXNtYW5f bmFtZSB8ICAgICAgICAgICAgIHwgCisoMiByb3dzKQorCistLSBTcGxpdCBwYXJ0aXRpb24g aGFzIGlkZW50aXR5LWNvbHVtbjoKK1NFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0 Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJl bGlkID0gJ3NhbGVzbWFuczJfNSc6OnJlZ2NsYXNzOjpvaWQ7CisgICAgYXR0bmFtZSAgICB8 IGF0dGlkZW50aXR5IHwgYXR0Z2VuZXJhdGVkIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBzYWxlc21hbl9pZCAgIHwgYSAgICAgICAgICAgfCAK KyBzYWxlc21hbl9uYW1lIHwgICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKK0FMVEVSIFRB QkxFIHNhbGVzbWFucyBTUExJVCBQQVJUSVRJT04gc2FsZXNtYW5zMl81IElOVE8KKyAgKFBB UlRJVElPTiBzYWxlc21hbnMyXzMgRk9SIFZBTFVFUyBGUk9NICgyKSBUTyAoMyksCisgICBQ QVJUSVRJT04gc2FsZXNtYW5zM180IEZPUiBWQUxVRVMgRlJPTSAoMykgVE8gKDQpLAorICAg UEFSVElUSU9OIHNhbGVzbWFuczRfNSBGT1IgVkFMVUVTIEZST00gKDQpIFRPICg1KSk7CitJ TlNFUlQgSU5UTyBzYWxlc21hbnMgKHNhbGVzbWFuX25hbWUpIFZBTFVFUyAoJ01heScpOwor SU5TRVJUIElOVE8gc2FsZXNtYW5zIChzYWxlc21hbl9uYW1lKSBWQUxVRVMgKCdGb3JkJyk7 CitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczFfMjsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFu X25hbWUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAxIHwg UG9pcm90CisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gc2FsZXNtYW5zMl8zOworIHNhbGVz bWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgIDIgfCBJdmFub3YKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBzYWxl c21hbnMzXzQ7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIAorLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMyB8IE1heQorKDEgcm93KQorCitTRUxF Q1QgKiBGUk9NIHNhbGVzbWFuczRfNTsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUg CistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICA0IHwgRm9yZAor KDEgcm93KQorCitTRUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVyYXRlZCBG Uk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICdzYWxl c21hbnMnOjpyZWdjbGFzczo6b2lkOworICAgIGF0dG5hbWUgICAgfCBhdHRpZGVudGl0eSB8 IGF0dGdlbmVyYXRlZCAKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tCisgc2FsZXNtYW5faWQgICB8IGEgICAgICAgICAgIHwgCisgc2FsZXNtYW5fbmFt ZSB8ICAgICAgICAgICAgIHwgCisoMiByb3dzKQorCitTRUxFQ1QgYXR0bmFtZSwgYXR0aWRl bnRpdHksIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAw IEFORCBhdHRyZWxpZCA9ICdzYWxlc21hbnMxXzInOjpyZWdjbGFzczo6b2lkOworICAgIGF0 dG5hbWUgICAgfCBhdHRpZGVudGl0eSB8IGF0dGdlbmVyYXRlZCAKKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgc2FsZXNtYW5faWQgICB8ICAgICAg ICAgICAgIHwgCisgc2FsZXNtYW5fbmFtZSB8ICAgICAgICAgICAgIHwgCisoMiByb3dzKQor CistLSBOZXcgcGFydGl0aW9ucyBoYXZlIGlkZW50aXR5LWNvbHVtbnM6CitTRUxFQ1QgYXR0 bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVS RSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICdzYWxlc21hbnMyXzMnOjpyZWdjbGFzczo6 b2lkOworICAgIGF0dG5hbWUgICAgfCBhdHRpZGVudGl0eSB8IGF0dGdlbmVyYXRlZCAKKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgc2FsZXNtYW5f aWQgICB8IGEgICAgICAgICAgIHwgCisgc2FsZXNtYW5fbmFtZSB8ICAgICAgICAgICAgIHwg CisoMiByb3dzKQorCitTRUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdlbmVyYXRl ZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxpZCA9ICdz YWxlc21hbnMzXzQnOjpyZWdjbGFzczo6b2lkOworICAgIGF0dG5hbWUgICAgfCBhdHRpZGVu dGl0eSB8IGF0dGdlbmVyYXRlZCAKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tCisgc2FsZXNtYW5faWQgICB8IGEgICAgICAgICAgIHwgCisgc2FsZXNt YW5fbmFtZSB8ICAgICAgICAgICAgIHwgCisoMiByb3dzKQorCitTRUxFQ1QgYXR0bmFtZSwg YXR0aWRlbnRpdHksIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRu dW0gPiAwIEFORCBhdHRyZWxpZCA9ICdzYWxlc21hbnM0XzUnOjpyZWdjbGFzczo6b2lkOwor ICAgIGF0dG5hbWUgICAgfCBhdHRpZGVudGl0eSB8IGF0dGdlbmVyYXRlZCAKKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgc2FsZXNtYW5faWQgICB8 IGEgICAgICAgICAgIHwgCisgc2FsZXNtYW5fbmFtZSB8ICAgICAgICAgICAgIHwgCisoMiBy b3dzKQorCitEUk9QIFRBQkxFIHNhbGVzbWFucyBDQVNDQURFOworLS0KKy0tIFRlc3Q6IHNw bGl0IHBhcnRpdGlvbiB3aXRoIGRlbGV0ZWQgY29sdW1ucworLS0KK0NSRUFURSBUQUJMRSBz YWxlc21hbnMoc2FsZXNtYW5faWQgSU5UIFBSSU1BUlkgS0VZLCBzYWxlc21hbl9uYW1lIFZB UkNIQVIoMzApKSBQQVJUSVRJT04gQlkgUkFOR0UgKHNhbGVzbWFuX2lkKTsKK0NSRUFURSBU QUJMRSBzYWxlc21hbnMwMV8xMCBQQVJUSVRJT04gT0Ygc2FsZXNtYW5zIEZPUiBWQUxVRVMg RlJPTSAoMSkgVE8gKDEwKTsKKy0tIENyZWF0ZSBuZXcgcGFydGl0aW9uIHdpdGggc29tZSBk ZWxldGVkIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMTBfNDAoZDEgVkFSQ0hB UigzMCksIHNhbGVzbWFuX2lkIElOVCBQUklNQVJZIEtFWSwgZDIgSU5ULCBkMyBEQVRFLCBz YWxlc21hbl9uYW1lIFZBUkNIQVIoMzApKTsKK0lOU0VSVCBJTlRPIHNhbGVzbWFuczEwXzQw IFZBTFVFUyAoJ2R1bW15IHZhbHVlIDEnLCAxOSwgMTAwLCBub3coKSwgJ0l2YW5vdicpOwor SU5TRVJUIElOVE8gc2FsZXNtYW5zMTBfNDAgVkFMVUVTICgnZHVtbXkgdmFsdWUgMicsIDIw LCAxMDEsIG5vdygpLCAnU21pcm5vZmYnKTsKK0FMVEVSIFRBQkxFIHNhbGVzbWFuczEwXzQw IERST1AgQ09MVU1OIGQxOworQUxURVIgVEFCTEUgc2FsZXNtYW5zMTBfNDAgRFJPUCBDT0xV TU4gZDI7CitBTFRFUiBUQUJMRSBzYWxlc21hbnMxMF80MCBEUk9QIENPTFVNTiBkMzsKK0FM VEVSIFRBQkxFIHNhbGVzbWFucyBBVFRBQ0ggUEFSVElUSU9OIHNhbGVzbWFuczEwXzQwIEZP UiBWQUxVRVMgRlJPTSAoMTApIFRPICg0MCk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFM VUVTICgxLCAnUG9pcm90Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxMCwg J01heScpOworSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMzAsICdGb3JkJyk7CitB TFRFUiBUQUJMRSBzYWxlc21hbnMgU1BMSVQgUEFSVElUSU9OIHNhbGVzbWFuczEwXzQwIElO VE8KKyAgKFBBUlRJVElPTiBzYWxlc21hbnMxMF8yMCBGT1IgVkFMVUVTIEZST00gKDEwKSBU TyAoMjApLAorICAgUEFSVElUSU9OIHNhbGVzbWFuczIwXzMwIEZPUiBWQUxVRVMgRlJPTSAo MjApIFRPICgzMCksCisgICBQQVJUSVRJT04gc2FsZXNtYW5zMzBfNDAgRk9SIFZBTFVFUyBG Uk9NICgzMCkgVE8gKDQwKSk7CitzZWxlY3QgKiBmcm9tIHNhbGVzbWFuczAxXzEwOworIHNh bGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgIDEgfCBQb2lyb3QKKygxIHJvdykKKworc2VsZWN0ICogZnJvbSBz YWxlc21hbnMxMF8yMDsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgCistLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgIDE5IHwgSXZhbm92CisgICAgICAg ICAgMTAgfCBNYXkKKygyIHJvd3MpCisKK3NlbGVjdCAqIGZyb20gc2FsZXNtYW5zMjBfMzA7 Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIAorLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAyMCB8IFNtaXJub2ZmCisoMSByb3cpCisKK3NlbGVjdCAq IGZyb20gc2FsZXNtYW5zMzBfNDA7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIAor LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAzMCB8IEZvcmQKKygx IHJvdykKKworRFJPUCBUQUJMRSBzYWxlc21hbnMgQ0FTQ0FERTsKKy0tCistLSBUZXN0OiBz cGxpdCBzdWItcGFydGl0aW9uCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlIChzYWxl c21hbl9pZCBJTlQsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCksIHNhbGVzX2Ftb3VudCBJ TlQsIHNhbGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19kYXRlKTsK K0NSRUFURSBUQUJMRSBzYWxlc19qYW4yMDIyIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBG T1IgVkFMVUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTAyLTAxJyk7CitDUkVB VEUgVEFCTEUgc2FsZXNfZmViMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZB TFVFUyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0wMy0wMScpOworQ1JFQVRFIFRB QkxFIHNhbGVzX21hcjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMg RlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEnKTsKK0NSRUFURSBUQUJMRSBz YWxlc19hcHIyMDIyIChzYWxlc21hbl9pZCBJTlQsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigz MCksIHNhbGVzX2Ftb3VudCBJTlQsIHNhbGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJB TkdFIChzYWxlc19kYXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19hcHJfYWxsIFBBUlRJVElP TiBPRiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAo JzIwMjItMDUtMDEnKTsKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIEFUVEFDSCBQQVJUSVRJ T04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcy MDIyLTA1LTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBz YWxlc19yYW5nZSBERUZBVUxUOworQ1JFQVRFIElOREVYIHNhbGVzX3JhbmdlX3NhbGVzX2Rh dGVfaWR4IE9OIHNhbGVzX3JhbmdlIFVTSU5HIGJ0cmVlIChzYWxlc19kYXRlKTsKK0lOU0VS VCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMSwgICdNYXknLCAgICAgIDEwMDAsICcyMDIy LTAxLTMxJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDIsICAnU21pcm5v ZmYnLCA1MDAsICAnMjAyMi0wMi0xMCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFM VUVTICgzLCAgJ0ZvcmQnLCAgICAgMjAwMCwgJzIwMjItMDQtMzAnKTsKK0lOU0VSVCBJTlRP IHNhbGVzX3JhbmdlIFZBTFVFUyAoNCwgICdJdmFub3YnLCAgIDc1MCwgICcyMDIyLTA0LTEz Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDUsICAnRGVldicsICAgICAy NTAsICAnMjAyMi0wNC0wNycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg2 LCAgJ1BvaXJvdCcsICAgMTUwLCAgJzIwMjItMDItMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVz X3JhbmdlIFZBTFVFUyAoNywgICdMaScsICAgICAgIDE3NSwgICcyMDIyLTAzLTA4Jyk7CitJ TlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDgsICAnRXJpY3Nzb24nLCAxODUsICAn MjAyMi0wMi0yMycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg5LCAgJ011 bGxlcicsICAgMjUwLCAgJzIwMjItMDMtMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jhbmdl IFZBTFVFUyAoMTAsICdIYWxkZXInLCAgIDM1MCwgICcyMDIyLTAxLTI4Jyk7CitJTlNFUlQg SU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDExLCAnVHJ1bXAnLCAgICAzODAsICAnMjAyMi0w NC0wNicpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMiwgJ1BsYXRvJywg ICAgMzUwLCAgJzIwMjItMDMtMTknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVF UyAoMTMsICdHYW5kaScsICAgIDM3NywgICcyMDIyLTAxLTA5Jyk7CitJTlNFUlQgSU5UTyBz YWxlc19yYW5nZSBWQUxVRVMgKDE0LCAnU21pdGgnLCAgICA1MTAsICAnMjAyMi0wNS0wNCcp OworU0VMRUNUICogRlJPTSBzYWxlc19yYW5nZTsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFu X25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEg fCBNYXkgICAgICAgICAgIHwgICAgICAgICAxMDAwIHwgMDEtMzEtMjAyMgorICAgICAgICAg IDEwIHwgSGFsZGVyICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAxLTI4LTIwMjIKKyAgICAg ICAgICAxMyB8IEdhbmRpICAgICAgICAgfCAgICAgICAgICAzNzcgfCAwMS0wOS0yMDIyCisg ICAgICAgICAgIDIgfCBTbWlybm9mZiAgICAgIHwgICAgICAgICAgNTAwIHwgMDItMTAtMjAy MgorICAgICAgICAgICA2IHwgUG9pcm90ICAgICAgICB8ICAgICAgICAgIDE1MCB8IDAyLTEx LTIwMjIKKyAgICAgICAgICAgOCB8IEVyaWNzc29uICAgICAgfCAgICAgICAgICAxODUgfCAw Mi0yMy0yMDIyCisgICAgICAgICAgIDcgfCBMaSAgICAgICAgICAgIHwgICAgICAgICAgMTc1 IHwgMDMtMDgtMjAyMgorICAgICAgICAgICA5IHwgTXVsbGVyICAgICAgICB8ICAgICAgICAg IDI1MCB8IDAzLTExLTIwMjIKKyAgICAgICAgICAxMiB8IFBsYXRvICAgICAgICAgfCAgICAg ICAgICAzNTAgfCAwMy0xOS0yMDIyCisgICAgICAgICAgIDMgfCBGb3JkICAgICAgICAgIHwg ICAgICAgICAyMDAwIHwgMDQtMzAtMjAyMgorICAgICAgICAgICA0IHwgSXZhbm92ICAgICAg ICB8ICAgICAgICAgIDc1MCB8IDA0LTEzLTIwMjIKKyAgICAgICAgICAgNSB8IERlZXYgICAg ICAgICAgfCAgICAgICAgICAyNTAgfCAwNC0wNy0yMDIyCisgICAgICAgICAgMTEgfCBUcnVt cCAgICAgICAgIHwgICAgICAgICAgMzgwIHwgMDQtMDYtMjAyMgorICAgICAgICAgIDE0IHwg U21pdGggICAgICAgICB8ICAgICAgICAgIDUxMCB8IDA1LTA0LTIwMjIKKygxNCByb3dzKQor CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2FwcjIwMjI7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21h bl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICAz IHwgRm9yZCAgICAgICAgICB8ICAgICAgICAgMjAwMCB8IDA0LTMwLTIwMjIKKyAgICAgICAg ICAgNCB8IEl2YW5vdiAgICAgICAgfCAgICAgICAgICA3NTAgfCAwNC0xMy0yMDIyCisgICAg ICAgICAgIDUgfCBEZWV2ICAgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDQtMDctMjAyMgor ICAgICAgICAgIDExIHwgVHJ1bXAgICAgICAgICB8ICAgICAgICAgIDM4MCB8IDA0LTA2LTIw MjIKKyg0IHJvd3MpCisKK0FMVEVSIFRBQkxFIHNhbGVzX2FwcjIwMjIgU1BMSVQgUEFSVElU SU9OIHNhbGVzX2Fwcl9hbGwgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2FwcjIwMjJfMDFf MTAgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNC0xMCcpLAor ICAgUEFSVElUSU9OIHNhbGVzX2FwcjIwMjJfMTBfMjAgRk9SIFZBTFVFUyBGUk9NICgnMjAy Mi0wNC0xMCcpIFRPICgnMjAyMi0wNC0yMCcpLAorICAgUEFSVElUSU9OIHNhbGVzX2FwcjIw MjJfMjBfMzAgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0yMCcpIFRPICgnMjAyMi0wNS0w MScpKTsKK1NFTEVDVCAqIEZST00gc2FsZXNfcmFuZ2U7Cisgc2FsZXNtYW5faWQgfCBzYWxl c21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAg ICAxIHwgTWF5ICAgICAgICAgICB8ICAgICAgICAgMTAwMCB8IDAxLTMxLTIwMjIKKyAgICAg ICAgICAxMCB8IEhhbGRlciAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMS0yOC0yMDIyCisg ICAgICAgICAgMTMgfCBHYW5kaSAgICAgICAgIHwgICAgICAgICAgMzc3IHwgMDEtMDktMjAy MgorICAgICAgICAgICAyIHwgU21pcm5vZmYgICAgICB8ICAgICAgICAgIDUwMCB8IDAyLTEw LTIwMjIKKyAgICAgICAgICAgNiB8IFBvaXJvdCAgICAgICAgfCAgICAgICAgICAxNTAgfCAw Mi0xMS0yMDIyCisgICAgICAgICAgIDggfCBFcmljc3NvbiAgICAgIHwgICAgICAgICAgMTg1 IHwgMDItMjMtMjAyMgorICAgICAgICAgICA3IHwgTGkgICAgICAgICAgICB8ICAgICAgICAg IDE3NSB8IDAzLTA4LTIwMjIKKyAgICAgICAgICAgOSB8IE11bGxlciAgICAgICAgfCAgICAg ICAgICAyNTAgfCAwMy0xMS0yMDIyCisgICAgICAgICAgMTIgfCBQbGF0byAgICAgICAgIHwg ICAgICAgICAgMzUwIHwgMDMtMTktMjAyMgorICAgICAgICAgICA1IHwgRGVldiAgICAgICAg ICB8ICAgICAgICAgIDI1MCB8IDA0LTA3LTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1wICAg ICAgICAgfCAgICAgICAgICAzODAgfCAwNC0wNi0yMDIyCisgICAgICAgICAgIDQgfCBJdmFu b3YgICAgICAgIHwgICAgICAgICAgNzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAgICAzIHwg Rm9yZCAgICAgICAgICB8ICAgICAgICAgMjAwMCB8IDA0LTMwLTIwMjIKKyAgICAgICAgICAx NCB8IFNtaXRoICAgICAgICAgfCAgICAgICAgICA1MTAgfCAwNS0wNC0yMDIyCisoMTQgcm93 cykKKworU0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyOworIHNhbGVzbWFuX2lkIHwgc2Fs ZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgNSB8IERlZXYgICAgICAgICAgfCAgICAgICAgICAyNTAgfCAwNC0wNy0yMDIyCisgICAg ICAgICAgMTEgfCBUcnVtcCAgICAgICAgIHwgICAgICAgICAgMzgwIHwgMDQtMDYtMjAyMgor ICAgICAgICAgICA0IHwgSXZhbm92ICAgICAgICB8ICAgICAgICAgIDc1MCB8IDA0LTEzLTIw MjIKKyAgICAgICAgICAgMyB8IEZvcmQgICAgICAgICAgfCAgICAgICAgIDIwMDAgfCAwNC0z MC0yMDIyCisoNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2FwcjIwMjJfMDFfMTA7 Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNf ZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8ICAgICAgICAgIDI1 MCB8IDA0LTA3LTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1wICAgICAgICAgfCAgICAgICAg ICAzODAgfCAwNC0wNi0yMDIyCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2Fw cjIwMjJfMTBfMjA7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1v dW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICA0IHwgSXZhbm92ICAgICAgICB8 ICAgICAgICAgIDc1MCB8IDA0LTEzLTIwMjIKKygxIHJvdykKKworU0VMRUNUICogRlJPTSBz YWxlc19hcHIyMDIyXzIwXzMwOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNh bGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMyB8IEZvcmQgICAg ICAgICAgfCAgICAgICAgIDIwMDAgfCAwNC0zMC0yMDIyCisoMSByb3cpCisKK0RST1AgVEFC TEUgc2FsZXNfcmFuZ2U7CistLQorLS0gQlkgTElTVCBwYXJ0aXRpb25pbmcKKy0tCistLQor LS0gVGVzdDogc3BlY2lmaWMgZXJyb3JzIGZvciBCWSBMSVNUIHBhcnRpdGlvbmluZworLS0K K0NSRUFURSBUQUJMRSBzYWxlc19saXN0Cisoc2FsZXNtYW5faWQgSU5ULAorIHNhbGVzbWFu X25hbWUgVkFSQ0hBUigzMCksCisgc2FsZXNfc3RhdGUgVkFSQ0hBUigyMCksCisgc2FsZXNf YW1vdW50IElOVCwKKyBzYWxlc19kYXRlIERBVEUpCitQQVJUSVRJT04gQlkgTElTVCAoc2Fs ZXNfc3RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX25vcmQgUEFSVElUSU9OIE9GIHNhbGVz X2xpc3QgRk9SIFZBTFVFUyBJTiAoJ011cm1hbnNrJywgJ1N0LiBQZXRlcnNidXJnJywgJ1Vr aHRhJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfYWxsIFBBUlRJVElPTiBPRiBzYWxlc19saXN0 IEZPUiBWQUxVRVMgSU4gKCdNb3Njb3cnLCAnVm9yb25lemgnLCAnU21vbGVuc2snLCAnQnJ5 YW5zaycsICdNYWdhZGFuJywgJ0themFuJywgJ0toYWJhcm92c2snLCAnVm9sZ29ncmFkJywg J1ZsYWRpdm9zdG9rJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBP RiBzYWxlc19saXN0IERFRkFVTFQ7CistLSBFUlJPUjogIHBhcnRpdGlvbiAic2FsZXNfZWFz dCIgd291bGQgb3ZlcmxhcCBwYXJ0aXRpb24gInNhbGVzX25vcmQiCitBTFRFUiBUQUJMRSBz YWxlc19saXN0IFNQTElUIFBBUlRJVElPTiBzYWxlc19hbGwgSU5UTworICAoUEFSVElUSU9O IHNhbGVzX3dlc3QgRk9SIFZBTFVFUyBJTiAoJ1Zvcm9uZXpoJywgJ1Ntb2xlbnNrJywgJ0Jy eWFuc2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19lYXN0IEZPUiBWQUxVRVMgSU4gKCdNYWdh ZGFuJywgJ0toYWJhcm92c2snLCAnVmxhZGl2b3N0b2snLCAnTXVybWFuc2snKSwKKyAgIFBB UlRJVElPTiBzYWxlc19jZW50cmFsIEZPUiBWQUxVRVMgSU4gKCdNb3Njb3cnLCAnS2F6YW4n LCAnVm9sZ29ncmFkJykpOworRVJST1I6ICBuZXcgcGFydGl0aW9uICJzYWxlc19lYXN0IiB3 b3VsZCBvdmVybGFwIHdpdGggYW5vdGhlciAobm90IHNwbGl0KSBwYXJ0aXRpb24gInNhbGVz X25vcmQiCitMSU5FIDM6IC4uLkFMVUVTIElOICgnTWFnYWRhbicsICdLaGFiYXJvdnNrJywg J1ZsYWRpdm9zdG9rJywgJ011cm1hbnNrJy4uLgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIEVSUk9SOiAgbmV3 IHBhcnRpdGlvbiAic2FsZXNfd2VzdCIgd291bGQgb3ZlcmxhcCB3aXRoIGFub3RoZXIgbmV3 IHBhcnRpdGlvbiAic2FsZXNfY2VudHJhbCIKK0FMVEVSIFRBQkxFIHNhbGVzX2xpc3QgU1BM SVQgUEFSVElUSU9OIHNhbGVzX2FsbCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfd2VzdCBG T1IgVkFMVUVTIElOICgnVm9yb25lemgnLCAnU21vbGVuc2snLCAnQnJ5YW5zaycpLAorICAg UEFSVElUSU9OIHNhbGVzX2Vhc3QgRk9SIFZBTFVFUyBJTiAoJ01hZ2FkYW4nLCAnS2hhYmFy b3ZzaycsICdWbGFkaXZvc3RvaycpLAorICAgUEFSVElUSU9OIHNhbGVzX2NlbnRyYWwgRk9S IFZBTFVFUyBJTiAoJ01vc2NvdycsICdLYXphbicsICdWb3JvbmV6aCcsICdWb2xnb2dyYWQn KSk7CitFUlJPUjogIG5ldyBwYXJ0aXRpb24gInNhbGVzX3dlc3QiIHdvdWxkIG92ZXJsYXAg d2l0aCBhbm90aGVyIG5ldyBwYXJ0aXRpb24gInNhbGVzX2NlbnRyYWwiCitMSU5FIDI6ICAg KFBBUlRJVElPTiBzYWxlc193ZXN0IEZPUiBWQUxVRVMgSU4gKCdWb3JvbmV6aCcsICdTbW9s ZW5zay4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCistLSBFUlJPUjogIG5ldyBwYXJ0aXRpb24gInNhbGVzX3dlc3QiIGNhbm5vdCBoYXZl IE5VTEwgdmFsdWUgYmVjYXVzZSBzcGxpdCBwYXJ0aXRpb24gZG9lcyBub3QgaGF2ZQorQUxU RVIgVEFCTEUgc2FsZXNfbGlzdCBTUExJVCBQQVJUSVRJT04gc2FsZXNfYWxsIElOVE8KKyAg KFBBUlRJVElPTiBzYWxlc193ZXN0IEZPUiBWQUxVRVMgSU4gKCdWb3JvbmV6aCcsICdTbW9s ZW5zaycsICdCcnlhbnNrJywgTlVMTCksCisgICBQQVJUSVRJT04gc2FsZXNfZWFzdCBGT1Ig VkFMVUVTIElOICgnTWFnYWRhbicsICdLaGFiYXJvdnNrJywgJ1ZsYWRpdm9zdG9rJyksCisg ICBQQVJUSVRJT04gc2FsZXNfY2VudHJhbCBGT1IgVkFMVUVTIElOICgnTW9zY293JywgJ0th emFuJywgJ1ZvbGdvZ3JhZCcpKTsKK0VSUk9SOiAgbmV3IHBhcnRpdGlvbiAic2FsZXNfd2Vz dCIgY2Fubm90IGhhdmUgTlVMTCB2YWx1ZSBiZWNhdXNlIHNwbGl0IHBhcnRpdGlvbiBkb2Vz IG5vdCBoYXZlCitMSU5FIDI6IC4uLmVzdCBGT1IgVkFMVUVTIElOICgnVm9yb25lemgnLCAn U21vbGVuc2snLCAnQnJ5YW5zaycsIE5VTEwpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitEUk9QIFRBQkxF IHNhbGVzX2xpc3Q7CistLQorLS0gVGVzdDogdHdvIHNwZWNpZmljIGVycm9ycyBmb3IgQlkg TElTVCBwYXJ0aXRpb25pbmc6CistLSAgICogbmV3IHBhcnRpdGlvbnMgbm90IGhhcyBOVUxM IHZhbHVlIHRoYXQgc3BsaXQgcGFydGl0aW9uIGhhcy4KKy0tICAgKiBuZXcgcGFydGl0aW9u cyBub3QgaGFzIGEgdmFsdWUgdGhhdCBzcGxpdCBwYXJ0aXRpb24gaGFzLgorLS0KK0NSRUFU RSBUQUJMRSBzYWxlc19saXN0Cisoc2FsZXNtYW5faWQgSU5ULAorIHNhbGVzbWFuX25hbWUg VkFSQ0hBUigzMCksCisgc2FsZXNfc3RhdGUgVkFSQ0hBUigyMCksCisgc2FsZXNfYW1vdW50 IElOVCwKKyBzYWxlc19kYXRlIERBVEUpCitQQVJUSVRJT04gQlkgTElTVCAoc2FsZXNfc3Rh dGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX25vcmQgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3Qg Rk9SIFZBTFVFUyBJTiAoJ011cm1hbnNrJywgJ1N0LiBQZXRlcnNidXJnJywgJ1VraHRhJyk7 CitDUkVBVEUgVEFCTEUgc2FsZXNfYWxsIFBBUlRJVElPTiBPRiBzYWxlc19saXN0IEZPUiBW QUxVRVMgSU4gKCdNb3Njb3cnLCAnVm9yb25lemgnLCAnU21vbGVuc2snLCAnQnJ5YW5zaycs ICdNYWdhZGFuJywgJ0themFuJywgJ0toYWJhcm92c2snLCAnVm9sZ29ncmFkJywgJ1ZsYWRp dm9zdG9rJywgTlVMTCk7CistLSBFUlJPUjogIG5ldyBwYXJ0aXRpb25zIG5vdCBoYXZlIHZh bHVlIE5VTEwgYnV0IHNwbGl0IHBhcnRpdGlvbiBoYXMKK0FMVEVSIFRBQkxFIHNhbGVzX2xp c3QgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2FsbCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNf d2VzdCBGT1IgVkFMVUVTIElOICgnVm9yb25lemgnLCAnU21vbGVuc2snLCAnQnJ5YW5zaycp LAorICAgUEFSVElUSU9OIHNhbGVzX2Vhc3QgRk9SIFZBTFVFUyBJTiAoJ01hZ2FkYW4nLCAn S2hhYmFyb3ZzaycsICdWbGFkaXZvc3RvaycpLAorICAgUEFSVElUSU9OIHNhbGVzX2NlbnRy YWwgRk9SIFZBTFVFUyBJTiAoJ01vc2NvdycsICdLYXphbicsICdWb2xnb2dyYWQnKSk7CitF UlJPUjogIG5ldyBwYXJ0aXRpb25zIG5vdCBoYXZlIHZhbHVlIE5VTEwgYnV0IHNwbGl0IHBh cnRpdGlvbiBoYXMKKy0tIEVSUk9SOiAgbmV3IHBhcnRpdGlvbnMgbm90IGhhdmUgdmFsdWUg J1ZvbGdvZ3JhZCcgYnV0IHNwbGl0IHBhcnRpdGlvbiBoYXMKK0FMVEVSIFRBQkxFIHNhbGVz X2xpc3QgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2FsbCBJTlRPCisgIChQQVJUSVRJT04gc2Fs ZXNfd2VzdCBGT1IgVkFMVUVTIElOICgnVm9yb25lemgnLCAnU21vbGVuc2snLCAnQnJ5YW5z aycpLAorICAgUEFSVElUSU9OIHNhbGVzX2Vhc3QgRk9SIFZBTFVFUyBJTiAoJ01hZ2FkYW4n LCAnS2hhYmFyb3ZzaycsICdWbGFkaXZvc3RvaycpLAorICAgUEFSVElUSU9OIHNhbGVzX2Nl bnRyYWwgRk9SIFZBTFVFUyBJTiAoJ01vc2NvdycsICdLYXphbicsIE5VTEwpKTsKK0VSUk9S OiAgbmV3IHBhcnRpdGlvbnMgbm90IGhhdmUgdmFsdWUgJ1ZvbGdvZ3JhZCcgYnV0IHNwbGl0 IHBhcnRpdGlvbiBoYXMKK0RST1AgVEFCTEUgc2FsZXNfbGlzdDsKKy0tCistLSBUZXN0OiBC WSBMSVNUIHBhcnRpdGlvbmluZywgU1BMSVQgUEFSVElUSU9OIHdpdGggZGF0YQorLS0KK0NS RUFURSBUQUJMRSBzYWxlc19saXN0Cisoc2FsZXNtYW5faWQgSU5UIEdFTkVSQVRFRCBBTFdB WVMgQVMgSURFTlRJVFksCisgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMwKSwKKyBzYWxlc19z dGF0ZSBWQVJDSEFSKDIwKSwKKyBzYWxlc19hbW91bnQgSU5ULAorIHNhbGVzX2RhdGUgREFU RSkKK1BBUlRJVElPTiBCWSBMSVNUIChzYWxlc19zdGF0ZSk7CitDUkVBVEUgSU5ERVggc2Fs ZXNfbGlzdF9zYWxlc21hbl9uYW1lX2lkeCBPTiBzYWxlc19saXN0IFVTSU5HIGJ0cmVlIChz YWxlc21hbl9uYW1lKTsKK0NSRUFURSBJTkRFWCBzYWxlc19saXN0X3NhbGVzX3N0YXRlX2lk eCBPTiBzYWxlc19saXN0IFVTSU5HIGJ0cmVlIChzYWxlc19zdGF0ZSk7CitDUkVBVEUgVEFC TEUgc2FsZXNfbm9yZCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBGT1IgVkFMVUVTIElOICgn TXVybWFuc2snLCAnU3QuIFBldGVyc2J1cmcnLCAnVWtodGEnKTsKK0NSRUFURSBUQUJMRSBz YWxlc19hbGwgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAoJ01vc2Nv dycsICdWb3JvbmV6aCcsICdTbW9sZW5zaycsICdCcnlhbnNrJywgJ01hZ2FkYW4nLCAnS2F6 YW4nLCAnS2hhYmFyb3ZzaycsICdWb2xnb2dyYWQnLCAnVmxhZGl2b3N0b2snKTsKK0NSRUFU RSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgREVGQVVMVDsK K0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBz YWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ1RydW1wJywgICAgJ01hZ2FkYW4n LCAgICAgICAgMTAwMCwgJzIwMjItMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3Qg KHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUp IFZBTFVFUyAoJ1NtaXJub2ZmJywgJ1Ntb2xlbnNrJywgICAgICAgNTAwLCAgJzIwMjItMDMt MDMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0 YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ0ZvcmQnLCAgICAgJ1N0 LiBQZXRlcnNidXJnJywgMjAwMCwgJzIwMjItMDMtMDUnKTsKK0lOU0VSVCBJTlRPIHNhbGVz X2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVz X2RhdGUpIFZBTFVFUyAoJ0l2YW5vdicsICAgJ01vc2NvdycsICAgICAgICAgNzUwLCAgJzIw MjItMDMtMDQnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNh bGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ0RlZXYnLCAg ICAgJ1Zvcm9uZXpoJywgICAgICAgMjUwLCAgJzIwMjItMDMtMDcnKTsKK0lOU0VSVCBJTlRP IHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQs IHNhbGVzX2RhdGUpIFZBTFVFUyAoJ1BvaXJvdCcsICAgJ0themFuJywgICAgICAgICAgMTAw MCwgJzIwMjItMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25h bWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ01h eScsICAgICAgJ1VraHRhJywgICAgICAgICAgMTIwMCwgJzIwMjItMDMtMDYnKTsKK0lOU0VS VCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19h bW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ0xpJywgICAgICAgJ1ZsYWRpdm9zdG9rJywg ICAgMTE1MCwgJzIwMjItMDMtMDknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVz bWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVF UyAoJ01heScsICAgICAgJ1VraHRhJywgICAgICAgICAgMTIwMCwgJzIwMjItMDMtMTEnKTsK K0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBz YWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ0hhbGRlcicsICAgJ011cm1hbnNr JywgICAgICAgODAwLCAgJzIwMjItMDMtMDInKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3Qg KHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUp IFZBTFVFUyAoJ011bGxlcicsICAgJ0JyeWFuc2snLCAgICAgICAgNjUwLCAgJzIwMjItMDMt MDUnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0 YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ1NtaXRoJywgICAgJ1Zv bGdvZ3JhZCcsICAgICAgMzUwLCAgJzIwMjItMDMtMTAnKTsKK0lOU0VSVCBJTlRPIHNhbGVz X2xpc3QgKHNhbGVzbWFuX25hbWUsIHNhbGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVz X2RhdGUpIFZBTFVFUyAoJ0dhbmRpJywgICAgJ01vc2NvdycsICAgICAgICAgMTUwLCAgJzIw MjItMDMtMDgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX2xpc3QgKHNhbGVzbWFuX25hbWUsIHNh bGVzX3N0YXRlLCBzYWxlc19hbW91bnQsIHNhbGVzX2RhdGUpIFZBTFVFUyAoJ1BsYXRvJywg ICAgJ1Zvcm9uZXpoJywgICAgICAgOTUwLCAgJzIwMjItMDMtMDUnKTsKK0FMVEVSIFRBQkxF IHNhbGVzX2xpc3QgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2FsbCBJTlRPCisgIChQQVJUSVRJ T04gc2FsZXNfd2VzdCBGT1IgVkFMVUVTIElOICgnVm9yb25lemgnLCAnU21vbGVuc2snLCAn QnJ5YW5zaycpLAorICAgUEFSVElUSU9OIHNhbGVzX2Vhc3QgRk9SIFZBTFVFUyBJTiAoJ01h Z2FkYW4nLCAnS2hhYmFyb3ZzaycsICdWbGFkaXZvc3RvaycpLAorICAgUEFSVElUSU9OIHNh bGVzX2NlbnRyYWwgRk9SIFZBTFVFUyBJTiAoJ01vc2NvdycsICdLYXphbicsICdWb2xnb2dy YWQnKSk7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2xpc3Q7Cisgc2FsZXNtYW5faWQgfCBzYWxl c21hbl9uYW1lIHwgIHNhbGVzX3N0YXRlICAgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRl IAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMiB8IFNtaXJub2ZmICAgICAg fCBTbW9sZW5zayAgICAgICB8ICAgICAgICAgIDUwMCB8IDAzLTAzLTIwMjIKKyAgICAgICAg ICAgNSB8IERlZXYgICAgICAgICAgfCBWb3JvbmV6aCAgICAgICB8ICAgICAgICAgIDI1MCB8 IDAzLTA3LTIwMjIKKyAgICAgICAgICAxMSB8IE11bGxlciAgICAgICAgfCBCcnlhbnNrICAg ICAgICB8ICAgICAgICAgIDY1MCB8IDAzLTA1LTIwMjIKKyAgICAgICAgICAxNCB8IFBsYXRv ICAgICAgICAgfCBWb3JvbmV6aCAgICAgICB8ICAgICAgICAgIDk1MCB8IDAzLTA1LTIwMjIK KyAgICAgICAgICAgNCB8IEl2YW5vdiAgICAgICAgfCBNb3Njb3cgICAgICAgICB8ICAgICAg ICAgIDc1MCB8IDAzLTA0LTIwMjIKKyAgICAgICAgICAgNiB8IFBvaXJvdCAgICAgICAgfCBL YXphbiAgICAgICAgICB8ICAgICAgICAgMTAwMCB8IDAzLTAxLTIwMjIKKyAgICAgICAgICAx MiB8IFNtaXRoICAgICAgICAgfCBWb2xnb2dyYWQgICAgICB8ICAgICAgICAgIDM1MCB8IDAz LTEwLTIwMjIKKyAgICAgICAgICAxMyB8IEdhbmRpICAgICAgICAgfCBNb3Njb3cgICAgICAg ICB8ICAgICAgICAgIDE1MCB8IDAzLTA4LTIwMjIKKyAgICAgICAgICAgMSB8IFRydW1wICAg ICAgICAgfCBNYWdhZGFuICAgICAgICB8ICAgICAgICAgMTAwMCB8IDAzLTAxLTIwMjIKKyAg ICAgICAgICAgOCB8IExpICAgICAgICAgICAgfCBWbGFkaXZvc3RvayAgICB8ICAgICAgICAg MTE1MCB8IDAzLTA5LTIwMjIKKyAgICAgICAgICAgMyB8IEZvcmQgICAgICAgICAgfCBTdC4g UGV0ZXJzYnVyZyB8ICAgICAgICAgMjAwMCB8IDAzLTA1LTIwMjIKKyAgICAgICAgICAgNyB8 IE1heSAgICAgICAgICAgfCBVa2h0YSAgICAgICAgICB8ICAgICAgICAgMTIwMCB8IDAzLTA2 LTIwMjIKKyAgICAgICAgICAgOSB8IE1heSAgICAgICAgICAgfCBVa2h0YSAgICAgICAgICB8 ICAgICAgICAgMTIwMCB8IDAzLTExLTIwMjIKKyAgICAgICAgICAxMCB8IEhhbGRlciAgICAg ICAgfCBNdXJtYW5zayAgICAgICB8ICAgICAgICAgIDgwMCB8IDAzLTAyLTIwMjIKKygxNCBy b3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX3dlc3Q7Cisgc2FsZXNtYW5faWQgfCBzYWxl c21hbl9uYW1lIHwgc2FsZXNfc3RhdGUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAor LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMiB8IFNtaXJub2ZmICAgICAgfCBTbW9s ZW5zayAgICB8ICAgICAgICAgIDUwMCB8IDAzLTAzLTIwMjIKKyAgICAgICAgICAgNSB8IERl ZXYgICAgICAgICAgfCBWb3JvbmV6aCAgICB8ICAgICAgICAgIDI1MCB8IDAzLTA3LTIwMjIK KyAgICAgICAgICAxMSB8IE11bGxlciAgICAgICAgfCBCcnlhbnNrICAgICB8ICAgICAgICAg IDY1MCB8IDAzLTA1LTIwMjIKKyAgICAgICAgICAxNCB8IFBsYXRvICAgICAgICAgfCBWb3Jv bmV6aCAgICB8ICAgICAgICAgIDk1MCB8IDAzLTA1LTIwMjIKKyg0IHJvd3MpCisKK1NFTEVD VCAqIEZST00gc2FsZXNfZWFzdDsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBz YWxlc19zdGF0ZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorICAgICAgICAgICAxIHwgVHJ1bXAgICAgICAgICB8IE1hZ2FkYW4gICAgIHwgICAg ICAgICAxMDAwIHwgMDMtMDEtMjAyMgorICAgICAgICAgICA4IHwgTGkgICAgICAgICAgICB8 IFZsYWRpdm9zdG9rIHwgICAgICAgICAxMTUwIHwgMDMtMDktMjAyMgorKDIgcm93cykKKwor U0VMRUNUICogRlJPTSBzYWxlc19ub3JkOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFt ZSB8ICBzYWxlc19zdGF0ZSAgIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDMgfCBGb3JkICAgICAgICAgIHwgU3QuIFBl dGVyc2J1cmcgfCAgICAgICAgIDIwMDAgfCAwMy0wNS0yMDIyCisgICAgICAgICAgIDcgfCBN YXkgICAgICAgICAgIHwgVWtodGEgICAgICAgICAgfCAgICAgICAgIDEyMDAgfCAwMy0wNi0y MDIyCisgICAgICAgICAgIDkgfCBNYXkgICAgICAgICAgIHwgVWtodGEgICAgICAgICAgfCAg ICAgICAgIDEyMDAgfCAwMy0xMS0yMDIyCisgICAgICAgICAgMTAgfCBIYWxkZXIgICAgICAg IHwgTXVybWFuc2sgICAgICAgfCAgICAgICAgICA4MDAgfCAwMy0wMi0yMDIyCisoNCByb3dz KQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2NlbnRyYWw7Cisgc2FsZXNtYW5faWQgfCBzYWxl c21hbl9uYW1lIHwgc2FsZXNfc3RhdGUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAor LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgNCB8IEl2YW5vdiAgICAgICAgfCBNb3Nj b3cgICAgICB8ICAgICAgICAgIDc1MCB8IDAzLTA0LTIwMjIKKyAgICAgICAgICAgNiB8IFBv aXJvdCAgICAgICAgfCBLYXphbiAgICAgICB8ICAgICAgICAgMTAwMCB8IDAzLTAxLTIwMjIK KyAgICAgICAgICAxMiB8IFNtaXRoICAgICAgICAgfCBWb2xnb2dyYWQgICB8ICAgICAgICAg IDM1MCB8IDAzLTEwLTIwMjIKKyAgICAgICAgICAxMyB8IEdhbmRpICAgICAgICAgfCBNb3Nj b3cgICAgICB8ICAgICAgICAgIDE1MCB8IDAzLTA4LTIwMjIKKyg0IHJvd3MpCisKKy0tIFVz ZSBpbmRleHNjYW4gZm9yIHRlc3QgaW5kZXhlcyBhZnRlciBzcGxpdCBwYXJ0aXRpb24KK1NF VCBlbmFibGVfaW5kZXhzY2FuID0gT047CitTRVQgZW5hYmxlX3NlcXNjYW4gPSBPRkY7CitT RUxFQ1QgKiBGUk9NIHNhbGVzX2NlbnRyYWwgV0hFUkUgc2FsZXNfc3RhdGUgPSAnTW9zY293 JzsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19zdGF0ZSB8IHNhbGVz X2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgICA0 IHwgSXZhbm92ICAgICAgICB8IE1vc2NvdyAgICAgIHwgICAgICAgICAgNzUwIHwgMDMtMDQt MjAyMgorICAgICAgICAgIDEzIHwgR2FuZGkgICAgICAgICB8IE1vc2NvdyAgICAgIHwgICAg ICAgICAgMTUwIHwgMDMtMDgtMjAyMgorKDIgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxl c19saXN0IFdIRVJFIHNhbGVzX3N0YXRlID0gJ01vc2Nvdyc7Cisgc2FsZXNtYW5faWQgfCBz YWxlc21hbl9uYW1lIHwgc2FsZXNfc3RhdGUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRl IAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgNCB8IEl2YW5vdiAgICAgICAgfCBN b3Njb3cgICAgICB8ICAgICAgICAgIDc1MCB8IDAzLTA0LTIwMjIKKyAgICAgICAgICAxMyB8 IEdhbmRpICAgICAgICAgfCBNb3Njb3cgICAgICB8ICAgICAgICAgIDE1MCB8IDAzLTA4LTIw MjIKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfbGlzdCBXSEVSRSBzYWxlc21h bl9uYW1lID0gJ0l2YW5vdic7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2Fs ZXNfc3RhdGUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyAgICAgICAgICAgNCB8IEl2YW5vdiAgICAgICAgfCBNb3Njb3cgICAgICB8ICAgICAg ICAgIDc1MCB8IDAzLTA0LTIwMjIKKygxIHJvdykKKworU0VUIGVuYWJsZV9pbmRleHNjYW4g PSBPTjsKK1NFVCBlbmFibGVfc2Vxc2NhbiA9IE9OOworRFJPUCBUQUJMRSBzYWxlc19saXN0 OworLS0KKy0tIFRlc3QgZm9yOgorLS0gICAqIHNwbGl0IERFRkFVTFQgcGFydGl0aW9uIHRv IHBhcnRpdGlvbnMgd2l0aCBzcGFjZXMgYmV0d2VlbiBib3VuZHM7CistLSAgICogcmFuZG9t IG9yZGVyIG9mIHBhcnRpdGlvbnMgaW4gU1BMSVQgUEFSVElUSU9OIGNvbW1hbmQuCistLQor Q1JFQVRFIFRBQkxFIHNhbGVzX3JhbmdlIChzYWxlc21hbl9pZCBJTlQsIHNhbGVzbWFuX25h bWUgVkFSQ0hBUigzMCksIHNhbGVzX2Ftb3VudCBJTlQsIHNhbGVzX2RhdGUgREFURSkgUEFS VElUSU9OIEJZIFJBTkdFIChzYWxlc19kYXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhl cnMgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIERFRkFVTFQ7CitJTlNFUlQgSU5UTyBzYWxl c19yYW5nZSBWQUxVRVMgKDEsICAnTWF5JywgICAgICAxMDAwLCAnMjAyMi0wMS0zMScpOwor SU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgyLCAgJ1NtaXJub2ZmJywgNTAwLCAg JzIwMjItMDItMDknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMywgICdG b3JkJywgICAgIDIwMDAsICcyMDIyLTA0LTMwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5n ZSBWQUxVRVMgKDQsICAnSXZhbm92JywgICA3NTAsICAnMjAyMi0wNC0xMycpOworSU5TRVJU IElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg1LCAgJ0RlZXYnLCAgICAgMjUwLCAgJzIwMjIt MDQtMDcnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNiwgICdQb2lyb3Qn LCAgIDE1MCwgICcyMDIyLTAyLTA3Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxV RVMgKDcsICAnTGknLCAgICAgICAxNzUsICAnMjAyMi0wMy0wOCcpOworSU5TRVJUIElOVE8g c2FsZXNfcmFuZ2UgVkFMVUVTICg4LCAgJ0VyaWNzc29uJywgMTg1LCAgJzIwMjItMDItMjMn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOSwgICdNdWxsZXInLCAgIDI1 MCwgICcyMDIyLTAzLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEw LCAnSGFsZGVyJywgICAzNTAsICAnMjAyMi0wMS0yOCcpOworSU5TRVJUIElOVE8gc2FsZXNf cmFuZ2UgVkFMVUVTICgxMSwgJ1RydW1wJywgICAgMzgwLCAgJzIwMjItMDQtMDYnKTsKK0lO U0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTIsICdQbGF0bycsICAgIDM1MCwgICcy MDIyLTAzLTE5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEzLCAnR2Fu ZGknLCAgICAzNzcsICAnMjAyMi0wMS0wOScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2Ug VkFMVUVTICgxNCwgJ1NtaXRoJywgICAgNTEwLCAgJzIwMjItMDUtMDQnKTsKK0FMVEVSIFRB QkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19vdGhlcnMgSU5UTworICAo UEFSVElUSU9OIHNhbGVzX290aGVycyBERUZBVUxULAorICAgUEFSVElUSU9OIHNhbGVzX21h cjIwMjJfMWRlY2FkZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIy LTAzLTEwJyksCisgICBQQVJUSVRJT04gc2FsZXNfamFuMjAyMl8xZGVjYWRlIEZPUiBWQUxV RVMgRlJPTSAoJzIwMjItMDEtMDEnKSBUTyAoJzIwMjItMDEtMTAnKSwKKyAgIFBBUlRJVElP TiBzYWxlc19mZWIyMDIyXzFkZWNhZGUgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMi0wMScp IFRPICgnMjAyMi0wMi0xMCcpLAorICAgUEFSVElUSU9OIHNhbGVzX2FwcjIwMjJfMWRlY2Fk ZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA0LTEwJykpOwor U0VMRUNUICogRlJPTSBzYWxlc19qYW4yMDIyXzFkZWNhZGU7Cisgc2FsZXNtYW5faWQgfCBz YWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAg ICAgIDEzIHwgR2FuZGkgICAgICAgICB8ICAgICAgICAgIDM3NyB8IDAxLTA5LTIwMjIKKygx IHJvdykKKworU0VMRUNUICogRlJPTSBzYWxlc19mZWIyMDIyXzFkZWNhZGU7Cisgc2FsZXNt YW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorICAgICAgICAgICAyIHwgU21pcm5vZmYgICAgICB8ICAgICAgICAgIDUwMCB8IDAyLTA5 LTIwMjIKKyAgICAgICAgICAgNiB8IFBvaXJvdCAgICAgICAgfCAgICAgICAgICAxNTAgfCAw Mi0wNy0yMDIyCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX21hcjIwMjJfMWRl Y2FkZTsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBz YWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDcgfCBMaSAgICAgICAgICAgIHwgICAgICAg ICAgMTc1IHwgMDMtMDgtMjAyMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2Fw cjIwMjJfMWRlY2FkZTsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19h bW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDUgfCBEZWV2ICAgICAgICAg IHwgICAgICAgICAgMjUwIHwgMDQtMDctMjAyMgorICAgICAgICAgIDExIHwgVHJ1bXAgICAg ICAgICB8ICAgICAgICAgIDM4MCB8IDA0LTA2LTIwMjIKKygyIHJvd3MpCisKK1NFTEVDVCAq IEZST00gc2FsZXNfb3RoZXJzOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNh bGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMSB8IE1heSAgICAg ICAgICAgfCAgICAgICAgIDEwMDAgfCAwMS0zMS0yMDIyCisgICAgICAgICAgIDMgfCBGb3Jk ICAgICAgICAgIHwgICAgICAgICAyMDAwIHwgMDQtMzAtMjAyMgorICAgICAgICAgICA0IHwg SXZhbm92ICAgICAgICB8ICAgICAgICAgIDc1MCB8IDA0LTEzLTIwMjIKKyAgICAgICAgICAg OCB8IEVyaWNzc29uICAgICAgfCAgICAgICAgICAxODUgfCAwMi0yMy0yMDIyCisgICAgICAg ICAgIDkgfCBNdWxsZXIgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDMtMTEtMjAyMgorICAg ICAgICAgIDEwIHwgSGFsZGVyICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAxLTI4LTIwMjIK KyAgICAgICAgICAxMiB8IFBsYXRvICAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMy0xOS0y MDIyCisgICAgICAgICAgMTQgfCBTbWl0aCAgICAgICAgIHwgICAgICAgICAgNTEwIHwgMDUt MDQtMjAyMgorKDggcm93cykKKworRFJPUCBUQUJMRSBzYWxlc19yYW5nZTsKKy0tCistLSBU ZXN0IGZvcjoKKy0tICAgKiBzcGxpdCBub24tREVGQVVMVCBwYXJ0aXRpb24gdG8gcGFydGl0 aW9ucyB3aXRoIHNwYWNlcyBiZXR3ZWVuIGJvdW5kczsKKy0tICAgKiByYW5kb20gb3JkZXIg b2YgcGFydGl0aW9ucyBpbiBTUExJVCBQQVJUSVRJT04gY29tbWFuZC4KKy0tCitDUkVBVEUg VEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBWQVJD SEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQQVJUSVRJT04g QlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2FsbCBQQVJUSVRJ T04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMS0wMScpIFRPICgn MjAyMi0wNS0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX290aGVycyBQQVJUSVRJT04gT0Yg c2FsZXNfcmFuZ2UgREVGQVVMVDsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAo MSwgICdNYXknLCAgICAgIDEwMDAsICcyMDIyLTAxLTMxJyk7CitJTlNFUlQgSU5UTyBzYWxl c19yYW5nZSBWQUxVRVMgKDIsICAnU21pcm5vZmYnLCA1MDAsICAnMjAyMi0wMi0wOScpOwor SU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgzLCAgJ0ZvcmQnLCAgICAgMjAwMCwg JzIwMjItMDQtMzAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNCwgICdJ dmFub3YnLCAgIDc1MCwgICcyMDIyLTA0LTEzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5n ZSBWQUxVRVMgKDUsICAnRGVldicsICAgICAyNTAsICAnMjAyMi0wNC0wNycpOworSU5TRVJU IElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg2LCAgJ1BvaXJvdCcsICAgMTUwLCAgJzIwMjIt MDItMDcnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNywgICdMaScsICAg ICAgIDE3NSwgICcyMDIyLTAzLTA4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxV RVMgKDgsICAnRXJpY3Nzb24nLCAxODUsICAnMjAyMi0wMi0yMycpOworSU5TRVJUIElOVE8g c2FsZXNfcmFuZ2UgVkFMVUVTICg5LCAgJ011bGxlcicsICAgMjUwLCAgJzIwMjItMDMtMTEn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTAsICdIYWxkZXInLCAgIDM1 MCwgICcyMDIyLTAxLTI4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEx LCAnVHJ1bXAnLCAgICAzODAsICAnMjAyMi0wNC0wNicpOworSU5TRVJUIElOVE8gc2FsZXNf cmFuZ2UgVkFMVUVTICgxMiwgJ1BsYXRvJywgICAgMzUwLCAgJzIwMjItMDMtMTknKTsKK0lO U0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTMsICdHYW5kaScsICAgIDM3NywgICcy MDIyLTAxLTA5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDE0LCAnU21p dGgnLCAgICA1MTAsICAnMjAyMi0wNS0wNCcpOworQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2Ug U1BMSVQgUEFSVElUSU9OIHNhbGVzX2FsbCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfbWFy MjAyMl8xZGVjYWRlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjIt MDMtMTAnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19qYW4yMDIyXzFkZWNhZGUgRk9SIFZBTFVF UyBGUk9NICgnMjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMS0xMCcpLAorICAgUEFSVElUSU9O IHNhbGVzX2ZlYjIwMjJfMWRlY2FkZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykg VE8gKCcyMDIyLTAyLTEwJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMl8xZGVjYWRl IEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDQtMTAnKSk7CitT RUxFQ1QgKiBGUk9NIHNhbGVzX2phbjIwMjJfMWRlY2FkZTsKKyBzYWxlc21hbl9pZCB8IHNh bGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAg ICAgMTMgfCBHYW5kaSAgICAgICAgIHwgICAgICAgICAgMzc3IHwgMDEtMDktMjAyMgorKDEg cm93KQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2ZlYjIwMjJfMWRlY2FkZTsKKyBzYWxlc21h bl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgICAgICAgICAgIDIgfCBTbWlybm9mZiAgICAgIHwgICAgICAgICAgNTAwIHwgMDItMDkt MjAyMgorICAgICAgICAgICA2IHwgUG9pcm90ICAgICAgICB8ICAgICAgICAgIDE1MCB8IDAy LTA3LTIwMjIKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfbWFyMjAyMl8xZGVj YWRlOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNh bGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgNyB8IExpICAgICAgICAgICAgfCAgICAgICAg ICAxNzUgfCAwMy0wOC0yMDIyCisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gc2FsZXNfYXBy MjAyMl8xZGVjYWRlOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ft b3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgNSB8IERlZXYgICAgICAgICAg fCAgICAgICAgICAyNTAgfCAwNC0wNy0yMDIyCisgICAgICAgICAgMTEgfCBUcnVtcCAgICAg ICAgIHwgICAgICAgICAgMzgwIHwgMDQtMDYtMjAyMgorKDIgcm93cykKKworU0VMRUNUICog RlJPTSBzYWxlc19vdGhlcnM7Cisgc2FsZXNtYW5faWQgfCBzYWxlc21hbl9uYW1lIHwgc2Fs ZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAgICAgICAgIDE0IHwgU21pdGggICAg ICAgICB8ICAgICAgICAgIDUxMCB8IDA1LTA0LTIwMjIKKyAgICAgICAgICAgMSB8IE1heSAg ICAgICAgICAgfCAgICAgICAgIDEwMDAgfCAwMS0zMS0yMDIyCisgICAgICAgICAgIDMgfCBG b3JkICAgICAgICAgIHwgICAgICAgICAyMDAwIHwgMDQtMzAtMjAyMgorICAgICAgICAgICA0 IHwgSXZhbm92ICAgICAgICB8ICAgICAgICAgIDc1MCB8IDA0LTEzLTIwMjIKKyAgICAgICAg ICAgOCB8IEVyaWNzc29uICAgICAgfCAgICAgICAgICAxODUgfCAwMi0yMy0yMDIyCisgICAg ICAgICAgIDkgfCBNdWxsZXIgICAgICAgIHwgICAgICAgICAgMjUwIHwgMDMtMTEtMjAyMgor ICAgICAgICAgIDEwIHwgSGFsZGVyICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAxLTI4LTIw MjIKKyAgICAgICAgICAxMiB8IFBsYXRvICAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMy0x OS0yMDIyCisoOCByb3dzKQorCitEUk9QIFRBQkxFIHNhbGVzX3JhbmdlOworLS0KKy0tIFRl c3QgZm9yIHNwbGl0IG5vbi1ERUZBVUxUIHBhcnRpdGlvbiB0byBERUZBVUxUIHBhcnRpdGlv biArIHBhcnRpdGlvbnMKKy0tIHdpdGggc3BhY2VzIGJldHdlZW4gYm91bmRzLgorLS0KK0NS RUFURSBUQUJMRSBzYWxlc19yYW5nZSAoc2FsZXNtYW5faWQgSU5ULCBzYWxlc21hbl9uYW1l IFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19kYXRlIERBVEUpIFBBUlRJ VElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfamFuMjAy MiBQQVJUSVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMS0w MScpIFRPICgnMjAyMi0wMi0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2FsbCBQQVJUSVRJ T04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgn MjAyMi0wNS0wMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxLCAgJ01h eScsICAgICAgMTAwMCwgJzIwMjItMDEtMzEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jhbmdl IFZBTFVFUyAoMiwgICdTbWlybm9mZicsIDUwMCwgICcyMDIyLTAyLTEwJyk7CitJTlNFUlQg SU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDMsICAnRm9yZCcsICAgICAyMDAwLCAnMjAyMi0w NC0zMCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg0LCAgJ0l2YW5vdics ICAgNzUwLCAgJzIwMjItMDQtMTMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVF UyAoNSwgICdEZWV2JywgICAgIDI1MCwgICcyMDIyLTA0LTA3Jyk7CitJTlNFUlQgSU5UTyBz YWxlc19yYW5nZSBWQUxVRVMgKDYsICAnUG9pcm90JywgICAxNTAsICAnMjAyMi0wMi0xMScp OworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg3LCAgJ0xpJywgICAgICAgMTc1 LCAgJzIwMjItMDMtMDgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOCwg ICdFcmljc3NvbicsIDE4NSwgICcyMDIyLTAyLTIzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19y YW5nZSBWQUxVRVMgKDksICAnTXVsbGVyJywgICAyNTAsICAnMjAyMi0wMy0xMScpOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMCwgJ0hhbGRlcicsICAgMzUwLCAgJzIw MjItMDEtMjgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTEsICdUcnVt cCcsICAgIDM4MCwgICcyMDIyLTA0LTA2Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBW QUxVRVMgKDEyLCAnUGxhdG8nLCAgICAzNTAsICAnMjAyMi0wMy0xOScpOworSU5TRVJUIElO VE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMywgJ0dhbmRpJywgICAgMzc3LCAgJzIwMjItMDEt MDknKTsKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19h bGwgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgn MjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX2Zl YjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0wMy0wMScp LAorICAgUEFSVElUSU9OIHNhbGVzX290aGVycyBERUZBVUxUKTsKK0lOU0VSVCBJTlRPIHNh bGVzX3JhbmdlIFZBTFVFUyAoMTQsICdTbWl0aCcsICAgIDUxMCwgICcyMDIyLTA1LTA0Jyk7 CitTRUxFQ1QgKiBGUk9NIHNhbGVzX3JhbmdlOworIHNhbGVzbWFuX2lkIHwgc2FsZXNtYW5f bmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUgCistLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMSB8 IE1heSAgICAgICAgICAgfCAgICAgICAgIDEwMDAgfCAwMS0zMS0yMDIyCisgICAgICAgICAg MTAgfCBIYWxkZXIgICAgICAgIHwgICAgICAgICAgMzUwIHwgMDEtMjgtMjAyMgorICAgICAg ICAgIDEzIHwgR2FuZGkgICAgICAgICB8ICAgICAgICAgIDM3NyB8IDAxLTA5LTIwMjIKKyAg ICAgICAgICAgMiB8IFNtaXJub2ZmICAgICAgfCAgICAgICAgICA1MDAgfCAwMi0xMC0yMDIy CisgICAgICAgICAgIDYgfCBQb2lyb3QgICAgICAgIHwgICAgICAgICAgMTUwIHwgMDItMTEt MjAyMgorICAgICAgICAgICA4IHwgRXJpY3Nzb24gICAgICB8ICAgICAgICAgIDE4NSB8IDAy LTIzLTIwMjIKKyAgICAgICAgICAgMyB8IEZvcmQgICAgICAgICAgfCAgICAgICAgIDIwMDAg fCAwNC0zMC0yMDIyCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgICAgICAgICAg NzUwIHwgMDQtMTMtMjAyMgorICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8ICAgICAg ICAgIDI1MCB8IDA0LTA3LTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1wICAgICAgICAgfCAg ICAgICAgICAzODAgfCAwNC0wNi0yMDIyCisgICAgICAgICAgIDcgfCBMaSAgICAgICAgICAg IHwgICAgICAgICAgMTc1IHwgMDMtMDgtMjAyMgorICAgICAgICAgICA5IHwgTXVsbGVyICAg ICAgICB8ICAgICAgICAgIDI1MCB8IDAzLTExLTIwMjIKKyAgICAgICAgICAxMiB8IFBsYXRv ICAgICAgICAgfCAgICAgICAgICAzNTAgfCAwMy0xOS0yMDIyCisgICAgICAgICAgMTQgfCBT bWl0aCAgICAgICAgIHwgICAgICAgICAgNTEwIHwgMDUtMDQtMjAyMgorKDE0IHJvd3MpCisK K1NFTEVDVCAqIEZST00gc2FsZXNfamFuMjAyMjsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFu X25hbWUgfCBzYWxlc19hbW91bnQgfCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEg fCBNYXkgICAgICAgICAgIHwgICAgICAgICAxMDAwIHwgMDEtMzEtMjAyMgorICAgICAgICAg IDEwIHwgSGFsZGVyICAgICAgICB8ICAgICAgICAgIDM1MCB8IDAxLTI4LTIwMjIKKyAgICAg ICAgICAxMyB8IEdhbmRpICAgICAgICAgfCAgICAgICAgICAzNzcgfCAwMS0wOS0yMDIyCiso MyByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2ZlYjIwMjI7Cisgc2FsZXNtYW5faWQg fCBzYWxlc21hbl9uYW1lIHwgc2FsZXNfYW1vdW50IHwgc2FsZXNfZGF0ZSAKKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAg ICAgICAgICAyIHwgU21pcm5vZmYgICAgICB8ICAgICAgICAgIDUwMCB8IDAyLTEwLTIwMjIK KyAgICAgICAgICAgNiB8IFBvaXJvdCAgICAgICAgfCAgICAgICAgICAxNTAgfCAwMi0xMS0y MDIyCisgICAgICAgICAgIDggfCBFcmljc3NvbiAgICAgIHwgICAgICAgICAgMTg1IHwgMDIt MjMtMjAyMgorKDMgcm93cykKKworU0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyOworIHNh bGVzbWFuX2lkIHwgc2FsZXNtYW5fbmFtZSB8IHNhbGVzX2Ftb3VudCB8IHNhbGVzX2RhdGUg CistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyAgICAgICAgICAgMyB8IEZvcmQgICAgICAgICAgfCAgICAgICAgIDIwMDAgfCAw NC0zMC0yMDIyCisgICAgICAgICAgIDQgfCBJdmFub3YgICAgICAgIHwgICAgICAgICAgNzUw IHwgMDQtMTMtMjAyMgorICAgICAgICAgICA1IHwgRGVldiAgICAgICAgICB8ICAgICAgICAg IDI1MCB8IDA0LTA3LTIwMjIKKyAgICAgICAgICAxMSB8IFRydW1wICAgICAgICAgfCAgICAg ICAgICAzODAgfCAwNC0wNi0yMDIyCisoNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHNhbGVz X290aGVyczsKKyBzYWxlc21hbl9pZCB8IHNhbGVzbWFuX25hbWUgfCBzYWxlc19hbW91bnQg fCBzYWxlc19kYXRlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDcgfCBMaSAgICAgICAgICAgIHwgICAg ICAgICAgMTc1IHwgMDMtMDgtMjAyMgorICAgICAgICAgICA5IHwgTXVsbGVyICAgICAgICB8 ICAgICAgICAgIDI1MCB8IDAzLTExLTIwMjIKKyAgICAgICAgICAxMiB8IFBsYXRvICAgICAg ICAgfCAgICAgICAgICAzNTAgfCAwMy0xOS0yMDIyCisgICAgICAgICAgMTQgfCBTbWl0aCAg ICAgICAgIHwgICAgICAgICAgNTEwIHwgMDUtMDQtMjAyMgorKDQgcm93cykKKworRFJPUCBU QUJMRSBzYWxlc19yYW5nZTsKKy0tCitEUk9QIFNDSEVNQSBwYXJ0aXRpb25fc3BsaXRfc2No ZW1hOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBi L3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggNTE1M2M5MjNiZi4u Yjk3NWZlMjk1YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xMjcs NyArMTI3LDcgQEAgdGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVtcCBk b21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHIKICMgVGhlIHN0YXRzIHRl c3QgcmVzZXRzIHN0YXRzLCBzbyBub3RoaW5nIGVsc2UgbmVlZGluZyBzdGF0cyBhY2Nlc3Mg Y2FuIGJlIGluCiAjIHRoaXMgZ3JvdXAuCiAjIC0tLS0tLS0tLS0KLXRlc3Q6IHBhcnRpdGlv bl9tZXJnZSBwYXJ0aXRpb25fam9pbiBwYXJ0aXRpb25fcHJ1bmUgcmVsb3B0aW9ucyBoYXNo X3BhcnQgaW5kZXhpbmcgcGFydGl0aW9uX2FnZ3JlZ2F0ZSBwYXJ0aXRpb25faW5mbyB0dXBs ZXNvcnQgZXhwbGFpbiBjb21wcmVzc2lvbiBtZW1vaXplIHN0YXRzCit0ZXN0OiBwYXJ0aXRp b25fbWVyZ2UgcGFydGl0aW9uX3NwbGl0IHBhcnRpdGlvbl9qb2luIHBhcnRpdGlvbl9wcnVu ZSByZWxvcHRpb25zIGhhc2hfcGFydCBpbmRleGluZyBwYXJ0aXRpb25fYWdncmVnYXRlIHBh cnRpdGlvbl9pbmZvIHR1cGxlc29ydCBleHBsYWluIGNvbXByZXNzaW9uIG1lbW9pemUgc3Rh dHMKIAogIyBldmVudF90cmlnZ2VyIGNhbm5vdCBydW4gY29uY3VycmVudGx5IHdpdGggYW55 IHRlc3QgdGhhdCBydW5zIERETAogIyBvaWRqb2lucyBpcyByZWFkLW9ubHksIHRob3VnaCwg YW5kIHNob3VsZCBydW4gbGF0ZSBmb3IgYmVzdCBjb3ZlcmFnZQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3NwbGl0LnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3BhcnRpdGlvbl9zcGxpdC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uNmQwMTdmMmU5MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3BhcnRpdGlvbl9zcGxpdC5zcWwKQEAgLTAsMCArMSw4MzkgQEAKKy0tCist LSBQQVJUSVRJT05fU1BMSVQKKy0tIFRlc3RzIGZvciAiQUxURVIgVEFCTEUgLi4uIFNQTElU IFBBUlRJVElPTiAuLi4iIGNvbW1hbmQKKy0tCisKK0NSRUFURSBTQ0hFTUEgcGFydGl0aW9u X3NwbGl0X3NjaGVtYTsKK1NFVCBzZWFyY2hfcGF0aCA9IHBhcnRpdGlvbl9zcGxpdF9zY2hl bWEsIHB1YmxpYzsKKworLS0KKy0tIEJZIFJBTkdFIHBhcnRpdGlvbmluZworLS0KKworLS0K Ky0tIFRlc3QgZm9yIGVycm9yIGNvZGVzCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzX3Jhbmdl IChzYWxlc21hbl9pZCBpbnQsIHNhbGVzbWFuX25hbWUgdmFyY2hhcigzMCksIHNhbGVzX2Ft b3VudCBpbnQsIHNhbGVzX2RhdGUgZGF0ZSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19k YXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19qYW4yMDIyIFBBUlRJVElPTiBPRiBzYWxlc19y YW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTAyLTAxJyk7 CitDUkVBVEUgVEFCTEUgc2FsZXNfZmViX21hcl9hcHIyMDIyIFBBUlRJVElPTiBPRiBzYWxl c19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTA1LTAx Jyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5n ZSBERUZBVUxUOworCistLSBFUlJPUjogIHJlbGF0aW9uICJzYWxlc194eHgiIGRvZXMgbm90 IGV4aXN0CitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNf eHh4IElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAo JzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19t YXIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEn KSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjIt MDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7CisKKy0tIEVSUk9SOiAgcmVsYXRpb24gInNh bGVzX2phbjIwMjIiIGFscmVhZHkgZXhpc3RzCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBT UExJVCBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBBUlRJVElP TiBzYWxlc19qYW4yMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIw MjItMDMtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19tYXIyMDIyIEZPUiBWQUxVRVMgRlJP TSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxl c19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUt MDEnKSk7CisKKy0tIEVSUk9SOiAgaW52YWxpZCBib3VuZCBzcGVjaWZpY2F0aW9uIGZvciBh IHJhbmdlIHBhcnRpdGlvbgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElU SU9OIHNhbGVzX2ZlYl9tYXJfYXByMjAyMiBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfamFu MjAyMiBGT1IgVkFMVUVTIElOICgnMjAyMi0wNS0wMScsICcyMDIyLTA2LTAxJyksCisgICBQ QVJUSVRJT04gc2FsZXNfbWFyMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykg VE8gKCcyMDIyLTA0LTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJykpOworCistLSBFUlJP UjogIGVtcHR5IHJhbmdlIGJvdW5kIHNwZWNpZmllZCBmb3IgcGFydGl0aW9uICJzYWxlc19t YXIyMDIyIgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVz X2ZlYl9tYXJfYXByMjAyMiBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1Ig VkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTAzLTAxJyksCisgICBQQVJU SVRJT04gc2FsZXNfbWFyMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8g KCcyMDIyLTAyLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVT IEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJykpOworCistLUVSUk9SOiAg bGlzdCBvZiBzcGxpdCBwYXJ0aXRpb25zIHNob3VsZCBjb250YWlucyBhdCBsZWFzdCB0d28g aXRlbXMKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19m ZWJfbWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZB TFVFUyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0xMC0wMScpKTsKKworLS0gRVJS T1I6ICBib3VuZHMgb2YgcGFydGl0aW9uICJzYWxlc19mZWIyMDIyIiBhcmUgb3V0c2lkZSBi b3VuZHMgb2Ygc3BsaXQgcGFydGl0aW9uCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJ VCBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBz YWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEnKSBUTyAoJzIwMjIt MDMtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19tYXIyMDIyIEZPUiBWQUxVRVMgRlJPTSAo JzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19h cHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEn KSk7CisKKy0tIEVSUk9SOiAgbmFtZSAic2FsZXNfZmViX21hcl9hcHIyMDIyIiBhbHJlYWR5 IHVzZWQKKy0tIChXZSBjYW4gY3JlYXRlIHBhcnRpdGlvbiB3aXRoIHRoZSBzYW1lIG5hbWUg YXMgc3BsaXQgcGFydGl0aW9uLCBidXQgY2FuJ3QgY3JlYXRlIHR3byBwYXJ0aXRpb25zIHdp dGggdGhlIHNhbWUgbmFtZSkKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJ VElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2Zl Yl9tYXJfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIy LTAzLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIyIEZPUiBWQUxV RVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElP TiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIw MjItMDUtMDEnKSk7CisKKy0tIEVSUk9SOiAgbmFtZSAic2FsZXNfZmViMjAyMiIgYWxyZWFk eSB1c2VkCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNf ZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBW QUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKSwKKyAgIFBBUlRJ VElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAo JzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMg RlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7CisKKy0tIEVSUk9SOiAg InNhbGVzX2ZlYl9tYXJfYXByMjAyMiIgaXMgbm90IGEgcGFydGl0aW9uZWQgdGFibGUKK0FM VEVSIFRBQkxFIHNhbGVzX2ZlYl9tYXJfYXByMjAyMiBTUExJVCBQQVJUSVRJT04gc2FsZXNf ZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19qYW4yMDIyIEZPUiBW QUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKSwKKyAgIFBBUlRJ VElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAo JzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMg RlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7CisKKy0tIEVSUk9SOiAg dXBwZXIgYm91bmQgb2YgcGFydGl0aW9uICJzYWxlc19hcHIyMDIyIiBpcyBub3QgZXF1YWxz IHRvIHVwcGVyIGJvdW5kIG9mIHNwbGl0IHBhcnRpdGlvbgorQUxURVIgVEFCTEUgc2FsZXNf cmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX2ZlYl9tYXJfYXByMjAyMiBJTlRPCisgIChQ QVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykg VE8gKCcyMDIyLTAzLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfbWFyMjAyMiBGT1IgVkFM VUVTIEZST00gKCcyMDIyLTAzLTAxJykgVE8gKCcyMDIyLTA0LTAxJyksCisgICBQQVJUSVRJ T04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcy MDIyLTA2LTAxJykpOworCistLSBFUlJPUjogIG5ldyBwYXJ0aXRpb24gInNhbGVzX2ZlYjIw MjIiIHdvdWxkIG92ZXJsYXAgd2l0aCBhbm90aGVyIChub3Qgc3BsaXQpIHBhcnRpdGlvbiAi c2FsZXNfamFuMjAyMiIKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElP TiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2ZlYjIw MjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMy0wMScpLAor ICAgUEFSVElUSU9OIHNhbGVzX21hcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0w MScpIFRPICgnMjAyMi0wNC0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIgRk9S IFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpKTsKKworLS0g RVJST1I6ICBsb3dlciBib3VuZCBvZiBwYXJ0aXRpb24gInNhbGVzX21hcjIwMjIiIGlzIG5v dCBlcXVhbHMgdG8gdXBwZXIgYm91bmQgb2YgcHJldmlvdXMgcGFydGl0aW9uCitBTFRFUiBU QUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIy IElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIw MjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19tYXIy MDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDQtMDEnKSwK KyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQt MDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7CisKKy0tIFRlc3RzIGZvciBzcGFjZXMgYmV0d2Vl biBwYXJ0aXRpb25zLCB0aGVtIHNob3VsZCBiZSBleGVjdXRlZCB3aXRob3V0IERFRkFVTFQg cGFydGl0aW9uCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBERVRBQ0ggUEFSVElUSU9OIHNh bGVzX290aGVyczsKKworLS0gRVJST1I6ICBsb3dlciBib3VuZCBvZiBwYXJ0aXRpb24gInNh bGVzX2ZlYjIwMjIiIGlzIG5vdCBlcXVhbHMgdG8gbG93ZXIgYm91bmQgb2Ygc3BsaXQgcGFy dGl0aW9uCitBTFRFUiBUQUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNf ZmViX21hcl9hcHIyMDIyIElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBW QUxVRVMgRlJPTSAoJzIwMjItMDItMDInKSBUTyAoJzIwMjItMDMtMDEnKSwKKyAgIFBBUlRJ VElPTiBzYWxlc19tYXIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAo JzIwMjItMDQtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMg RlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7CisKK0RST1AgVEFCTEUg c2FsZXNfcmFuZ2U7CitEUk9QIFRBQkxFIHNhbGVzX290aGVyczsKKworLS0KKy0tIEFkZCBy b3dzIGludG8gcGFydGl0aW9uZWQgdGFibGUgdGhlbiBzcGxpdCBwYXJ0aXRpb24KKy0tCitD UkVBVEUgVEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFt ZSBWQVJDSEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQQVJU SVRJT04gQlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIw MjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEt MDEnKSBUTyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWJfbWFyX2Fw cjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjIt MDItMDEnKSBUTyAoJzIwMjItMDUtMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMg UEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIERFRkFVTFQ7CisKK0lOU0VSVCBJTlRPIHNhbGVz X3JhbmdlIFZBTFVFUyAoMSwgICdNYXknLCAgICAgIDEwMDAsICcyMDIyLTAxLTMxJyk7CitJ TlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDIsICAnU21pcm5vZmYnLCA1MDAsICAn MjAyMi0wMi0xMCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgzLCAgJ0Zv cmQnLCAgICAgMjAwMCwgJzIwMjItMDQtMzAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jhbmdl IFZBTFVFUyAoNCwgICdJdmFub3YnLCAgIDc1MCwgICcyMDIyLTA0LTEzJyk7CitJTlNFUlQg SU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDUsICAnRGVldicsICAgICAyNTAsICAnMjAyMi0w NC0wNycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg2LCAgJ1BvaXJvdCcs ICAgMTUwLCAgJzIwMjItMDItMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVF UyAoNywgICdMaScsICAgICAgIDE3NSwgICcyMDIyLTAzLTA4Jyk7CitJTlNFUlQgSU5UTyBz YWxlc19yYW5nZSBWQUxVRVMgKDgsICAnRXJpY3Nzb24nLCAxODUsICAnMjAyMi0wMi0yMycp OworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg5LCAgJ011bGxlcicsICAgMjUw LCAgJzIwMjItMDMtMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTAs ICdIYWxkZXInLCAgIDM1MCwgICcyMDIyLTAxLTI4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19y YW5nZSBWQUxVRVMgKDExLCAnVHJ1bXAnLCAgICAzODAsICAnMjAyMi0wNC0wNicpOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMiwgJ1BsYXRvJywgICAgMzUwLCAgJzIw MjItMDMtMTknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTMsICdHYW5k aScsICAgIDM3NywgICcyMDIyLTAxLTA5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBW QUxVRVMgKDE0LCAnU21pdGgnLCAgICA1MTAsICAnMjAyMi0wNS0wNCcpOworCitBTFRFUiBU QUJMRSBzYWxlc19yYW5nZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfZmViX21hcl9hcHIyMDIy IElOVE8KKyAgKFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIw MjItMDItMDEnKSBUTyAoJzIwMjItMDMtMDEnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19tYXIy MDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDQtMDEnKSwK KyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDQt MDEnKSBUTyAoJzIwMjItMDUtMDEnKSk7CisKK1NFTEVDVCAqIEZST00gc2FsZXNfcmFuZ2U7 CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2Zl YjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX21hcjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNh bGVzX2FwcjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX290aGVyczsKKworRFJPUCBUQUJM RSBzYWxlc19yYW5nZSBDQVNDQURFOworCistLQorLS0gQWRkIHNwbGl0IHBhcnRpdGlvbiB0 aGVuIGFkZCByb3dzIGludG8gcGFydGl0aW9uZWQgdGFibGUKKy0tCitDUkVBVEUgVEFCTEUg c2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBWQVJDSEFSKDMw KSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQQVJUSVRJT04gQlkgUkFO R0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIwMjIgUEFSVElUSU9O IE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEnKSBUTyAoJzIw MjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWJfbWFyX2FwcjIwMjIgUEFSVElU SU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAo JzIwMjItMDUtMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9G IHNhbGVzX3JhbmdlIERFRkFVTFQ7CisKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElU IFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTworICAoUEFSVElUSU9OIHNh bGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMi0wMScpIFRPICgnMjAyMi0w My0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX21hcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgn MjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX2Fw cjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScp KTsKKworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxLCAgJ01heScsICAgICAg MTAwMCwgJzIwMjItMDEtMzEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAo MiwgICdTbWlybm9mZicsIDUwMCwgICcyMDIyLTAyLTEwJyk7CitJTlNFUlQgSU5UTyBzYWxl c19yYW5nZSBWQUxVRVMgKDMsICAnRm9yZCcsICAgICAyMDAwLCAnMjAyMi0wNC0zMCcpOwor SU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg0LCAgJ0l2YW5vdicsICAgNzUwLCAg JzIwMjItMDQtMTMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNSwgICdE ZWV2JywgICAgIDI1MCwgICcyMDIyLTA0LTA3Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5n ZSBWQUxVRVMgKDYsICAnUG9pcm90JywgICAxNTAsICAnMjAyMi0wMi0xMScpOworSU5TRVJU IElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg3LCAgJ0xpJywgICAgICAgMTc1LCAgJzIwMjIt MDMtMDgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOCwgICdFcmljc3Nv bicsIDE4NSwgICcyMDIyLTAyLTIzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxV RVMgKDksICAnTXVsbGVyJywgICAyNTAsICAnMjAyMi0wMy0xMScpOworSU5TRVJUIElOVE8g c2FsZXNfcmFuZ2UgVkFMVUVTICgxMCwgJ0hhbGRlcicsICAgMzUwLCAgJzIwMjItMDEtMjgn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTEsICdUcnVtcCcsICAgIDM4 MCwgICcyMDIyLTA0LTA2Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEy LCAnUGxhdG8nLCAgICAzNTAsICAnMjAyMi0wMy0xOScpOworSU5TRVJUIElOVE8gc2FsZXNf cmFuZ2UgVkFMVUVTICgxMywgJ0dhbmRpJywgICAgMzc3LCAgJzIwMjItMDEtMDknKTsKK0lO U0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTQsICdTbWl0aCcsICAgIDUxMCwgICcy MDIyLTA1LTA0Jyk7CisKK1NFTEVDVCAqIEZST00gc2FsZXNfcmFuZ2U7CitTRUxFQ1QgKiBG Uk9NIHNhbGVzX2phbjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2ZlYjIwMjI7CitTRUxF Q1QgKiBGUk9NIHNhbGVzX21hcjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2FwcjIwMjI7 CitTRUxFQ1QgKiBGUk9NIHNhbGVzX290aGVyczsKKworRFJPUCBUQUJMRSBzYWxlc19yYW5n ZSBDQVNDQURFOworCistLQorLS0gVGVzdCBmb3I6CistLSAgICogY29tcG9zaXRlIHBhcnRp dGlvbiBrZXk7CistLSAgICogR0VORVJBVEVEIGNvbHVtbjsKKy0tICAgKiBjb2x1bW4gd2l0 aCBERUZBVUxUIHZhbHVlLgorLS0KK0NSRUFURSBUQUJMRSBzYWxlc19kYXRlIChzYWxlc21h bl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc195ZWFyIElOVCwgc2FsZXNfbW9udGggSU5ULCBz YWxlc19kYXkgSU5ULAorICBzYWxlc19kYXRlIFZBUkNIQVIoMTApIEdFTkVSQVRFRCBBTFdB WVMgQVMKKyAgICAoTFBBRChzYWxlc195ZWFyOjp0ZXh0LCA0LCAnMCcpIHx8ICcuJyB8fCBM UEFEKHNhbGVzX21vbnRoOjp0ZXh0LCAyLCAnMCcpIHx8ICcuJyB8fCBMUEFEKHNhbGVzX2Rh eTo6dGV4dCwgMiwgJzAnKSkgU1RPUkVELAorICBzYWxlc19kZXBhcnRtZW50IFZBUkNIQVIo MzApIERFRkFVTFQgJ1NhbGVzIGRlcGFydG1lbnQnKQorICBQQVJUSVRJT04gQlkgUkFOR0Ug KHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxlc19kYXkpOworCitDUkVBVEUgVEFCTEUg c2FsZXNfZGVjMjAyMiBQQVJUSVRJT04gT0Ygc2FsZXNfZGF0ZSBGT1IgVkFMVUVTIEZST00g KDIwMjEsIDEyLCAxKSBUTyAoMjAyMiwgMSwgMSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfamFu X2ZlYjIwMjIgUEFSVElUSU9OIE9GIHNhbGVzX2RhdGUgRk9SIFZBTFVFUyBGUk9NICgyMDIy LCAxLCAxKSBUTyAoMjAyMiwgMywgMSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXIgUEFS VElUSU9OIE9GIHNhbGVzX2RhdGUgRk9SIFZBTFVFUyBGUk9NICgyMDIyLCAzLCAxKSBUTyAo TUFYVkFMVUUsIE1BWFZBTFVFLCBNQVhWQUxVRSk7CisKK0lOU0VSVCBJTlRPIHNhbGVzX2Rh dGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9udGgsIHNhbGVzX2RheSkg VkFMVUVTICgnTWFuYWdlcjEnLCAyMDIxLCAxMiwgNyk7CitJTlNFUlQgSU5UTyBzYWxlc19k YXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21vbnRoLCBzYWxlc19kYXkp IFZBTFVFUyAoJ01hbmFnZXIyJywgMjAyMSwgMTIsIDgpOworSU5TRVJUIElOVE8gc2FsZXNf ZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5 KSBWQUxVRVMgKCdNYW5hZ2VyMycsIDIwMjIsIDEsIDEpOworSU5TRVJUIElOVE8gc2FsZXNf ZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5 KSBWQUxVRVMgKCdNYW5hZ2VyMScsIDIwMjIsIDIsIDQpOworSU5TRVJUIElOVE8gc2FsZXNf ZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5 KSBWQUxVRVMgKCdNYW5hZ2VyMicsIDIwMjIsIDEsIDIpOworSU5TRVJUIElOVE8gc2FsZXNf ZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5 KSBWQUxVRVMgKCdNYW5hZ2VyMycsIDIwMjIsIDIsIDEpOworSU5TRVJUIElOVE8gc2FsZXNf ZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5 KSBWQUxVRVMgKCdNYW5hZ2VyMScsIDIwMjIsIDMsIDMpOworSU5TRVJUIElOVE8gc2FsZXNf ZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5 KSBWQUxVRVMgKCdNYW5hZ2VyMicsIDIwMjIsIDMsIDQpOworSU5TRVJUIElOVE8gc2FsZXNf ZGF0ZShzYWxlc21hbl9uYW1lLCBzYWxlc195ZWFyLCBzYWxlc19tb250aCwgc2FsZXNfZGF5 KSBWQUxVRVMgKCdNYW5hZ2VyMycsIDIwMjIsIDUsIDEpOworCitTRUxFQ1QgKiBGUk9NIHNh bGVzX2RhdGU7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2RlYzIwMjI7CitTRUxFQ1QgKiBGUk9N IHNhbGVzX2phbl9mZWIyMDIyOworU0VMRUNUICogRlJPTSBzYWxlc19vdGhlcjsKKworQUxU RVIgVEFCTEUgc2FsZXNfZGF0ZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfamFuX2ZlYjIwMjIg SU5UTworICAoUEFSVElUSU9OIHNhbGVzX2phbjIwMjIgRk9SIFZBTFVFUyBGUk9NICgyMDIy LCAxLCAxKSBUTyAoMjAyMiwgMiwgMSksCisgICBQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBG T1IgVkFMVUVTIEZST00gKDIwMjIsIDIsIDEpIFRPICgyMDIyLCAzLCAxKSk7CisKK0lOU0VS VCBJTlRPIHNhbGVzX2RhdGUoc2FsZXNtYW5fbmFtZSwgc2FsZXNfeWVhciwgc2FsZXNfbW9u dGgsIHNhbGVzX2RheSkgVkFMVUVTICgnTWFuYWdlcjEnLCAyMDIyLCAxLCAxMCk7CitJTlNF UlQgSU5UTyBzYWxlc19kYXRlKHNhbGVzbWFuX25hbWUsIHNhbGVzX3llYXIsIHNhbGVzX21v bnRoLCBzYWxlc19kYXkpIFZBTFVFUyAoJ01hbmFnZXIyJywgMjAyMiwgMiwgMTApOworCitT RUxFQ1QgKiBGUk9NIHNhbGVzX2RhdGU7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2RlYzIwMjI7 CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2phbjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2Zl YjIwMjI7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX290aGVyOworCistLUVSUk9SOiAgcmVsYXRp b24gInNhbGVzX2phbl9mZWIyMDIyIiBkb2VzIG5vdCBleGlzdAorU0VMRUNUICogRlJPTSBz YWxlc19qYW5fZmViMjAyMjsKKworRFJPUCBUQUJMRSBzYWxlc19kYXRlIENBU0NBREU7CisK Ky0tCistLSBUZXN0OiBzcGxpdCBERUZBVUxUIHBhcnRpdGlvbjsgdXNpbmcgYSBpbmRleCBv biBwYXJ0aXRpb24ga2V5OyBjaGVjayBpbmRleCBhZnRlciBzcGxpdAorLS0KK0NSRUFURSBU QUJMRSBzYWxlc19yYW5nZSAoc2FsZXNtYW5faWQgSU5ULCBzYWxlc21hbl9uYW1lIFZBUkNI QVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19kYXRlIERBVEUpIFBBUlRJVElPTiBC WSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfamFuMjAyMiBQQVJU SVRJT04gT0Ygc2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMS0wMScpIFRP ICgnMjAyMi0wMi0wMScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX290aGVycyBQQVJUSVRJT04g T0Ygc2FsZXNfcmFuZ2UgREVGQVVMVDsKK0NSRUFURSBJTkRFWCBzYWxlc19yYW5nZV9zYWxl c19kYXRlX2lkeCBPTiBzYWxlc19yYW5nZSBVU0lORyBidHJlZSAoc2FsZXNfZGF0ZSk7CisK K0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMSwgICdNYXknLCAgICAgIDEwMDAs ICcyMDIyLTAxLTMxJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDIsICAn U21pcm5vZmYnLCA1MDAsICAnMjAyMi0wMi0xMCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFu Z2UgVkFMVUVTICgzLCAgJ0ZvcmQnLCAgICAgMjAwMCwgJzIwMjItMDQtMzAnKTsKK0lOU0VS VCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNCwgICdJdmFub3YnLCAgIDc1MCwgICcyMDIy LTA0LTEzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDUsICAnRGVldics ICAgICAyNTAsICAnMjAyMi0wNC0wNycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFM VUVTICg2LCAgJ1BvaXJvdCcsICAgMTUwLCAgJzIwMjItMDItMTEnKTsKK0lOU0VSVCBJTlRP IHNhbGVzX3JhbmdlIFZBTFVFUyAoNywgICdMaScsICAgICAgIDE3NSwgICcyMDIyLTAzLTA4 Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDgsICAnRXJpY3Nzb24nLCAx ODUsICAnMjAyMi0wMi0yMycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg5 LCAgJ011bGxlcicsICAgMjUwLCAgJzIwMjItMDMtMTEnKTsKK0lOU0VSVCBJTlRPIHNhbGVz X3JhbmdlIFZBTFVFUyAoMTAsICdIYWxkZXInLCAgIDM1MCwgICcyMDIyLTAxLTI4Jyk7CitJ TlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDExLCAnVHJ1bXAnLCAgICAzODAsICAn MjAyMi0wNC0wNicpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMiwgJ1Bs YXRvJywgICAgMzUwLCAgJzIwMjItMDMtMTknKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jhbmdl IFZBTFVFUyAoMTMsICdHYW5kaScsICAgIDM3NywgICcyMDIyLTAxLTA5Jyk7CitJTlNFUlQg SU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDE0LCAnU21pdGgnLCAgICA1MTAsICAnMjAyMi0w NS0wNCcpOworCitTRUxFQ1QgKiBGUk9NIHNhbGVzX290aGVyczsKK1NFTEVDVCAqIEZST00g cGdfaW5kZXhlcyBXSEVSRSB0YWJsZW5hbWUgPSAnc2FsZXNfb3RoZXJzJyBhbmQgc2NoZW1h bmFtZSA9ICdwYXJ0aXRpb25fc3BsaXRfc2NoZW1hJzsKKworQUxURVIgVEFCTEUgc2FsZXNf cmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQQVJUSVRJT04g c2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIy LTAzLTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNfbWFyMjAyMiBGT1IgVkFMVUVTIEZST00g KCcyMDIyLTAzLTAxJykgVE8gKCcyMDIyLTA0LTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNf YXByMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAx JyksCisgICBQQVJUSVRJT04gc2FsZXNfb3RoZXJzIERFRkFVTFQpOworCistLSBVc2UgaW5k ZXhzY2FuIGZvciB0ZXN0IGluZGV4ZXMKK1NFVCBlbmFibGVfaW5kZXhzY2FuID0gT047CitT RVQgZW5hYmxlX3NlcXNjYW4gPSBPRkY7CisKK1NFTEVDVCAqIEZST00gc2FsZXNfZmViMjAy MiB3aGVyZSBzYWxlc19kYXRlID4gJzIwMjItMDEtMDEnOworU0VMRUNUICogRlJPTSBzYWxl c19tYXIyMDIyIHdoZXJlIHNhbGVzX2RhdGUgPiAnMjAyMi0wMS0wMSc7CitTRUxFQ1QgKiBG Uk9NIHNhbGVzX2FwcjIwMjIgd2hlcmUgc2FsZXNfZGF0ZSA+ICcyMDIyLTAxLTAxJzsKK1NF TEVDVCAqIEZST00gc2FsZXNfb3RoZXJzIHdoZXJlIHNhbGVzX2RhdGUgPiAnMjAyMi0wMS0w MSc7CisKK1NFVCBlbmFibGVfaW5kZXhzY2FuID0gT047CitTRVQgZW5hYmxlX3NlcXNjYW4g PSBPTjsKKworU0VMRUNUICogRlJPTSBwZ19pbmRleGVzIFdIRVJFIHRhYmxlbmFtZSA9ICdz YWxlc19mZWIyMDIyJyBhbmQgc2NoZW1hbmFtZSA9ICdwYXJ0aXRpb25fc3BsaXRfc2NoZW1h JzsKK1NFTEVDVCAqIEZST00gcGdfaW5kZXhlcyBXSEVSRSB0YWJsZW5hbWUgPSAnc2FsZXNf bWFyMjAyMicgYW5kIHNjaGVtYW5hbWUgPSAncGFydGl0aW9uX3NwbGl0X3NjaGVtYSc7CitT RUxFQ1QgKiBGUk9NIHBnX2luZGV4ZXMgV0hFUkUgdGFibGVuYW1lID0gJ3NhbGVzX2FwcjIw MjInIGFuZCBzY2hlbWFuYW1lID0gJ3BhcnRpdGlvbl9zcGxpdF9zY2hlbWEnOworU0VMRUNU ICogRlJPTSBwZ19pbmRleGVzIFdIRVJFIHRhYmxlbmFtZSA9ICdzYWxlc19vdGhlcnMnIGFu ZCBzY2hlbWFuYW1lID0gJ3BhcnRpdGlvbl9zcGxpdF9zY2hlbWEnOworCitEUk9QIFRBQkxF IHNhbGVzX3JhbmdlIENBU0NBREU7CisKKy0tCistLSBUZXN0OiBzb21lIGNhc2VzIGZvciBz cGxpdCBERUZBVUxUIHBhcnRpdGlvbiAoZGlmZmVyZW50IGJvdW5kcykKKy0tCitDUkVBVEUg VEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBWQVJD SEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBJTlQpIFBBUlRJVElPTiBC WSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJ VElPTiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOworCistLSBzYWxlc19lcnJvciBpbnRlcnNl Y3RzIHdpdGggc2FsZXNfZGVjMjAyMiAobG93ZXIgYm91bmQpCistLSBFUlJPUjogIGxvd2Vy IGJvdW5kIG9mIHBhcnRpdGlvbiAic2FsZXNfZXJyb3IiIGNvbmZsaWN0cyB3aXRoIHVwcGVy IGJvdW5kIG9mIHByZXZpb3VzIHBhcnRpdGlvbiAic2FsZXNfZGVjMjAyMiIKK0FMVEVSIFRB QkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19vdGhlcnMgSU5UTworICAo UEFSVElUSU9OIHNhbGVzX2RlYzIwMjIgRk9SIFZBTFVFUyBGUk9NICgyMDIxMTIwMSkgVE8g KDIwMjIwMTAxKSwKKyAgIFBBUlRJVElPTiBzYWxlc19lcnJvciBGT1IgVkFMVUVTIEZST00g KDIwMjExMjMwKSBUTyAoMjAyMjAyMDEpLAorICAgUEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIg Rk9SIFZBTFVFUyBGUk9NICgyMDIyMDIwMSkgVE8gKDIwMjIwMzAxKSwKKyAgIFBBUlRJVElP TiBzYWxlc19vdGhlcnMgREVGQVVMVCk7CisKKy0tIHNhbGVzX2Vycm9yIGludGVyc2VjdHMg d2l0aCBzYWxlc19mZWIyMDIyICh1cHBlciBib3VuZCkKKy0tIEVSUk9SOiAgbG93ZXIgYm91 bmQgb2YgcGFydGl0aW9uICJzYWxlc19mZWIyMDIyIiBjb25mbGljdHMgd2l0aCB1cHBlciBi b3VuZCBvZiBwcmV2aW91cyBwYXJ0aXRpb24gInNhbGVzX2Vycm9yIgorQUxURVIgVEFCTEUg c2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQQVJU SVRJT04gc2FsZXNfZGVjMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjExMjAxKSBUTyAoMjAy MjAxMDEpLAorICAgUEFSVElUSU9OIHNhbGVzX2Vycm9yIEZPUiBWQUxVRVMgRlJPTSAoMjAy MjAxMDEpIFRPICgyMDIyMDIwMiksCisgICBQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1Ig VkFMVUVTIEZST00gKDIwMjIwMjAxKSBUTyAoMjAyMjAzMDEpLAorICAgUEFSVElUSU9OIHNh bGVzX290aGVycyBERUZBVUxUKTsKKworLS0gc2FsZXNfZXJyb3IgaW50ZXJzZWN0cyB3aXRo IHNhbGVzX2RlYzIwMjIgKGluc2lkZSBib3VuZCkKKy0tIEVSUk9SOiAgbG93ZXIgYm91bmQg b2YgcGFydGl0aW9uICJzYWxlc19lcnJvciIgY29uZmxpY3RzIHdpdGggdXBwZXIgYm91bmQg b2YgcHJldmlvdXMgcGFydGl0aW9uICJzYWxlc19kZWMyMDIyIgorQUxURVIgVEFCTEUgc2Fs ZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQQVJUSVRJ T04gc2FsZXNfZGVjMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjExMjAxKSBUTyAoMjAyMjAx MDEpLAorICAgUEFSVElUSU9OIHNhbGVzX2Vycm9yIEZPUiBWQUxVRVMgRlJPTSAoMjAyMTEy MTApIFRPICgyMDIxMTIyMCksCisgICBQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFM VUVTIEZST00gKDIwMjIwMjAxKSBUTyAoMjAyMjAzMDEpLAorICAgUEFSVElUSU9OIHNhbGVz X290aGVycyBERUZBVUxUKTsKKworLS0gc2FsZXNfZXJyb3IgaW50ZXJzZWN0cyB3aXRoIHNh bGVzX2RlYzIwMjIgKGV4YWN0IHRoZSBzYW1lIGJvdW5kcykKKy0tIEVSUk9SOiAgbG93ZXIg Ym91bmQgb2YgcGFydGl0aW9uICJzYWxlc19lcnJvciIgY29uZmxpY3RzIHdpdGggdXBwZXIg Ym91bmQgb2YgcHJldmlvdXMgcGFydGl0aW9uICJzYWxlc19kZWMyMDIyIgorQUxURVIgVEFC TEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQ QVJUSVRJT04gc2FsZXNfZGVjMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjExMjAxKSBUTyAo MjAyMjAxMDEpLAorICAgUEFSVElUSU9OIHNhbGVzX2Vycm9yIEZPUiBWQUxVRVMgRlJPTSAo MjAyMTEyMDEpIFRPICgyMDIyMDEwMSksCisgICBQQVJUSVRJT04gc2FsZXNfZmViMjAyMiBG T1IgVkFMVUVTIEZST00gKDIwMjIwMjAxKSBUTyAoMjAyMjAzMDEpLAorICAgUEFSVElUSU9O IHNhbGVzX290aGVycyBERUZBVUxUKTsKKworLS0gRVJST1I6ICBhbnkgcGFydGl0aW9uIGlu IHRoZSBsaXN0IHNob3VsZCBiZSBERUZBVUxUIGJlY2F1c2Ugc3BsaXQgcGFydGl0aW9uIGlz IERFRkFVTFQKK0FMVEVSIFRBQkxFIHNhbGVzX3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxl c19vdGhlcnMgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX2RlYzIwMjIgRk9SIFZBTFVFUyBG Uk9NICgyMDIxMTIwMSkgVE8gKDIwMjIwMTAxKSwKKyAgIFBBUlRJVElPTiBzYWxlc19qYW4y MDIyIEZPUiBWQUxVRVMgRlJPTSAoMjAyMjAxMDEpIFRPICgyMDIyMDIwMSksCisgICBQQVJU SVRJT04gc2FsZXNfZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjIwMjAxKSBUTyAoMjAy MjAzMDEpKTsKKworLS0gbm8gZXJyb3I6IGJvdW5kcyBvZiBzYWxlc19ub2Vycm9yIGJldHdl ZW4gc2FsZXNfZGVjMjAyMiBhbmQgc2FsZXNfZmViMjAyMgorQUxURVIgVEFCTEUgc2FsZXNf cmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQQVJUSVRJT04g c2FsZXNfZGVjMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjExMjAxKSBUTyAoMjAyMjAxMDEp LAorICAgUEFSVElUSU9OIHNhbGVzX25vZXJyb3IgRk9SIFZBTFVFUyBGUk9NICgyMDIyMDEx MCkgVE8gKDIwMjIwMTIwKSwKKyAgIFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxV RVMgRlJPTSAoMjAyMjAyMDEpIFRPICgyMDIyMDMwMSksCisgICBQQVJUSVRJT04gc2FsZXNf b3RoZXJzIERFRkFVTFQpOworCitEUk9QIFRBQkxFIHNhbGVzX3JhbmdlOworCitDUkVBVEUg VEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBWQVJD SEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBJTlQpIFBBUlRJVElPTiBC WSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJ VElPTiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOworCistLSBubyBlcnJvcjogYm91bmRzIG9m IHNhbGVzX25vZXJyb3IgZXF1YWxzIHRvIGxvd2VyIGFuZCB1cHBlciBib3VuZHMgb2Ygc2Fs ZXNfZGVjMjAyMiBhbmQgc2FsZXNfZmViMjAyMgorQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2Ug U1BMSVQgUEFSVElUSU9OIHNhbGVzX290aGVycyBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNf ZGVjMjAyMiBGT1IgVkFMVUVTIEZST00gKDIwMjExMjAxKSBUTyAoMjAyMjAxMDEpLAorICAg UEFSVElUSU9OIHNhbGVzX25vZXJyb3IgRk9SIFZBTFVFUyBGUk9NICgyMDIxMDEwMSkgVE8g KDIwMjEwMjAxKSwKKyAgIFBBUlRJVElPTiBzYWxlc19mZWIyMDIyIEZPUiBWQUxVRVMgRlJP TSAoMjAyMjAyMDEpIFRPICgyMDIyMDMwMSksCisgICBQQVJUSVRJT04gc2FsZXNfb3RoZXJz IERFRkFVTFQpOworCitEUk9QIFRBQkxFIHNhbGVzX3JhbmdlOworCistLQorLS0gVGVzdDog c3BsaXQgcGFydGl0aW9uIHdpdGggQ0hFQ0sgYW5kIEZPUkVJR04gS0VZIENPTlNUUkFJTlRz IG9uIHBhcnRpdGlvbmVkIHRhYmxlCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzbWFucyhzYWxl c21hbl9pZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpOwor SU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMSwgICdQb2lyb3QnKTsKKworQ1JFQVRF IFRBQkxFIHNhbGVzX3JhbmdlICgKK3NhbGVzbWFuX2lkIElOVCBSRUZFUkVOQ0VTIHNhbGVz bWFucyhzYWxlc21hbl9pZCksCitzYWxlc19hbW91bnQgSU5UIENIRUNLIChzYWxlc19hbW91 bnQgPiAxKSwKK3NhbGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJBTkdFIChzYWxlc19k YXRlKTsKKworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIwMjIgUEFSVElUSU9OIE9GIHNhbGVz X3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEnKSBUTyAoJzIwMjItMDItMDEn KTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWJfbWFyX2FwcjIwMjIgUEFSVElUSU9OIE9GIHNh bGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDUt MDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNhbGVzX3Jh bmdlIERFRkFVTFQ7CisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpLCBjb25u YW1lLCBjb25rZXkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbnJlbGlkID0gJ3NhbGVz X2ZlYl9tYXJfYXByMjAyMic6OnJlZ2NsYXNzOjpvaWQ7CisKK0FMVEVSIFRBQkxFIHNhbGVz X3JhbmdlIFNQTElUIFBBUlRJVElPTiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgSU5UTworICAo UEFSVElUSU9OIHNhbGVzX2ZlYjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMi0wMScp IFRPICgnMjAyMi0wMy0wMScpLAorICAgUEFSVElUSU9OIHNhbGVzX21hcjIwMjIgRk9SIFZB TFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wNC0wMScpLAorICAgUEFSVElU SU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wNC0wMScpIFRPICgn MjAyMi0wNS0wMScpKTsKKworLS0gV2Ugc2hvdWxkIHNlZSB0aGUgc2FtZSBDT05TVFJBSU5U cyBhcyBvbiBzYWxlc19mZWJfbWFyX2FwcjIwMjIgcGFydGl0aW9uCitTRUxFQ1QgcGdfZ2V0 X2NvbnN0cmFpbnRkZWYob2lkKSwgY29ubmFtZSwgY29ua2V5IEZST00gcGdfY29uc3RyYWlu dCBXSEVSRSBjb25yZWxpZCA9ICdzYWxlc19mZWIyMDIyJzo6cmVnY2xhc3M6Om9pZDsKK1NF TEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpLCBjb25uYW1lLCBjb25rZXkgRlJPTSBw Z19jb25zdHJhaW50IFdIRVJFIGNvbnJlbGlkID0gJ3NhbGVzX21hcjIwMjInOjpyZWdjbGFz czo6b2lkOworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCksIGNvbm5hbWUsIGNv bmtleSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ucmVsaWQgPSAnc2FsZXNfYXByMjAy Mic6OnJlZ2NsYXNzOjpvaWQ7CisKKy0tIEVSUk9SOiAgbmV3IHJvdyBmb3IgcmVsYXRpb24g InNhbGVzX21hcjIwMjIiIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgInNhbGVzX3Jhbmdl X3NhbGVzbWFuX2lkX2NoZWNrIgorSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgx LCAwLCAnMjAyMi0wMy0xMScpOworLS0gRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRh YmxlICJzYWxlc19tYXIyMDIyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJz YWxlc19yYW5nZV9zYWxlc21hbl9pZF9ma2V5IgorSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2Ug VkFMVUVTICgtMSwgMTAsICcyMDIyLTAzLTExJyk7CistLSBvaworSU5TRVJUIElOVE8gc2Fs ZXNfcmFuZ2UgVkFMVUVTICgxLCAxMCwgJzIwMjItMDMtMTEnKTsKKworRFJPUCBUQUJMRSBz YWxlc19yYW5nZSBDQVNDQURFOworRFJPUCBUQUJMRSBzYWxlc21hbnMgQ0FTQ0FERTsKKwor LS0KKy0tIFRlc3Q6IHNwbGl0IHBhcnRpdGlvbiBvbiBwYXJ0aXRpb25lZCB0YWJsZSBpbiBj YXNlIGV4aXN0cyBGT1JFSUdOIEtFWSByZWZlcmVuY2UgZnJvbSBhbm90aGVyIHRhYmxlCist LQorQ1JFQVRFIFRBQkxFIHNhbGVzbWFucyhzYWxlc21hbl9pZCBJTlQgUFJJTUFSWSBLRVks IHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNt YW5faWQpOworQ1JFQVRFIFRBQkxFIHNhbGVzIChzYWxlc21hbl9pZCBJTlQgUkVGRVJFTkNF UyBzYWxlc21hbnMoc2FsZXNtYW5faWQpLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19kYXRl IERBVEUpOworCitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMDFfMTAgUEFSVElUSU9OIE9GIHNh bGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7CitDUkVBVEUgVEFCTEUgc2Fs ZXNtYW5zMTBfNDAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEw KSBUTyAoNDApOworCitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxLCAgJ1BvaXJv dCcpOworSU5TRVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMTAsICdNYXknKTsKK0lOU0VS VCBJTlRPIHNhbGVzbWFucyBWQUxVRVMgKDE5LCAnSXZhbm92Jyk7CitJTlNFUlQgSU5UTyBz YWxlc21hbnMgVkFMVUVTICgyMCwgJ1NtaXJub2ZmJyk7CitJTlNFUlQgSU5UTyBzYWxlc21h bnMgVkFMVUVTICgzMCwgJ0ZvcmQnKTsKKworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgx LCAgMTAwLCAnMjAyMi0wMy0wMScpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgxLCAg MTEwLCAnMjAyMi0wMy0wMicpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgxMCwgMTUw LCAnMjAyMi0wMy0wMScpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgxMCwgOTAsICAn MjAyMi0wMy0wMycpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgxOSwgMjAwLCAnMjAy Mi0wMy0wNCcpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgyMCwgNTAsICAnMjAyMi0w My0xMicpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgyMCwgMTcwLCAnMjAyMi0wMy0w MicpOworSU5TRVJUIElOVE8gc2FsZXMgVkFMVUVTICgzMCwgMzAsICAnMjAyMi0wMy0wNCcp OworCitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczAxXzEwOworU0VMRUNUICogRlJPTSBzYWxl c21hbnMxMF80MDsKKworQUxURVIgVEFCTEUgc2FsZXNtYW5zIFNQTElUIFBBUlRJVElPTiBz YWxlc21hbnMxMF80MCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNtYW5zMTBfMjAgRk9SIFZB TFVFUyBGUk9NICgxMCkgVE8gKDIwKSwKKyAgIFBBUlRJVElPTiBzYWxlc21hbnMyMF8zMCBG T1IgVkFMVUVTIEZST00gKDIwKSBUTyAoMzApLAorICAgUEFSVElUSU9OIHNhbGVzbWFuczMw XzQwIEZPUiBWQUxVRVMgRlJPTSAoMzApIFRPICg0MCkpOworCitTRUxFQ1QgKiBGUk9NIHNh bGVzbWFuczAxXzEwOworU0VMRUNUICogRlJPTSBzYWxlc21hbnMxMF8yMDsKK1NFTEVDVCAq IEZST00gc2FsZXNtYW5zMjBfMzA7CitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczMwXzQwOwor CistLSBFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInNhbGVzIiB2aW9sYXRl cyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJzYWxlc19zYWxlc21hbl9pZF9ma2V5IgorSU5T RVJUIElOVE8gc2FsZXMgVkFMVUVTICg0MCwgNTAsICAnMjAyMi0wMy0wNCcpOworLS0gb2sK K0lOU0VSVCBJTlRPIHNhbGVzIFZBTFVFUyAoMzAsIDUwLCAgJzIwMjItMDMtMDQnKTsKKwor RFJPUCBUQUJMRSBzYWxlcyBDQVNDQURFOworRFJPUCBUQUJMRSBzYWxlc21hbnMgQ0FTQ0FE RTsKKworLS0KKy0tIFRlc3Q6IHNwbGl0IHBhcnRpdGlvbiBvZiBwYXJ0aXRpb25lZCB0YWJs ZSB3aXRoIHRyaWdnZXJzCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzbWFucyhzYWxlc21hbl9p ZCBJTlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElP TiBCWSBSQU5HRSAoc2FsZXNtYW5faWQpOworCitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMDFf MTAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7 CitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMTBfNDAgUEFSVElUSU9OIE9GIHNhbGVzbWFucyBG T1IgVkFMVUVTIEZST00gKDEwKSBUTyAoNDApOworCitJTlNFUlQgSU5UTyBzYWxlc21hbnMg VkFMVUVTICgxLCAgJ1BvaXJvdCcpOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBh ZnRlcl9pbnNlcnRfcm93X3RyaWdnZXIoKSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgJ3Bs cGdzcWwnIEFTICRCT0RZJAorQkVHSU4KKwlSQUlTRSBOT1RJQ0UgJ3RyaWdnZXIoJSkgY2Fs bGVkOiBhY3Rpb24gPSAlLCB3aGVuID0gJSwgbGV2ZWwgPSAlJywgVEdfQVJHVlswXSwgVEdf T1AsIFRHX1dIRU4sIFRHX0xFVkVMOworICAgIFJFVFVSTiBOVUxMOworRU5EOworJEJPRFkk OworCitDUkVBVEUgVFJJR0dFUiBzYWxlc21hbnNfYWZ0ZXJfaW5zZXJ0X3N0YXRlbWVudF90 cmlnZ2VyCisgICAgQUZURVIgSU5TRVJUCisgICAgT04gc2FsZXNtYW5zCisgICAgRk9SIEVB Q0ggU1RBVEVNRU5UCisgICAgRVhFQ1VURSBQUk9DRURVUkUgYWZ0ZXJfaW5zZXJ0X3Jvd190 cmlnZ2VyKCdzYWxlc21hbnMnKTsKKworQ1JFQVRFIFRSSUdHRVIgc2FsZXNtYW5zX2FmdGVy X2luc2VydF9yb3dfdHJpZ2dlcgorICAgIEFGVEVSIElOU0VSVAorICAgIE9OIHNhbGVzbWFu cworICAgIEZPUiBFQUNIIFJPVworICAgIEVYRUNVVEUgUFJPQ0VEVVJFIGFmdGVyX2luc2Vy dF9yb3dfdHJpZ2dlcignc2FsZXNtYW5zJyk7CisKKy0tIDIgdHJpZ2dlcnMgc2hvdWxkIGZp cmUgaGVyZSAocm93ICsgc3RhdGVtZW50KToKK0lOU0VSVCBJTlRPIHNhbGVzbWFucyBWQUxV RVMgKDEwLCAnTWF5Jyk7CistLSAxIHRyaWdnZXIgc2hvdWxkIGZpcmUgaGVyZSAocm93KToK K0lOU0VSVCBJTlRPIHNhbGVzbWFuczEwXzQwIFZBTFVFUyAoMTksICdJdmFub3YnKTsKKwor QUxURVIgVEFCTEUgc2FsZXNtYW5zIFNQTElUIFBBUlRJVElPTiBzYWxlc21hbnMxMF80MCBJ TlRPCisgIChQQVJUSVRJT04gc2FsZXNtYW5zMTBfMjAgRk9SIFZBTFVFUyBGUk9NICgxMCkg VE8gKDIwKSwKKyAgIFBBUlRJVElPTiBzYWxlc21hbnMyMF8zMCBGT1IgVkFMVUVTIEZST00g KDIwKSBUTyAoMzApLAorICAgUEFSVElUSU9OIHNhbGVzbWFuczMwXzQwIEZPUiBWQUxVRVMg RlJPTSAoMzApIFRPICg0MCkpOworCistLSAyIHRyaWdnZXJzIHNob3VsZCBmaXJlIGhlcmUg KHJvdyArIHN0YXRlbWVudCk6CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgyMCwg J1NtaXJub2ZmJyk7CistLSAxIHRyaWdnZXIgc2hvdWxkIGZpcmUgaGVyZSAocm93KToKK0lO U0VSVCBJTlRPIHNhbGVzbWFuczMwXzQwIFZBTFVFUyAoMzAsICdGb3JkJyk7CisKK1NFTEVD VCAqIEZST00gc2FsZXNtYW5zMDFfMTA7CitTRUxFQ1QgKiBGUk9NIHNhbGVzbWFuczEwXzIw OworU0VMRUNUICogRlJPTSBzYWxlc21hbnMyMF8zMDsKK1NFTEVDVCAqIEZST00gc2FsZXNt YW5zMzBfNDA7CisKK0RST1AgVEFCTEUgc2FsZXNtYW5zIENBU0NBREU7CitEUk9QIEZVTkNU SU9OIGFmdGVyX2luc2VydF9yb3dfdHJpZ2dlcigpOworCistLQorLS0gVGVzdDogc3BsaXQg cGFydGl0aW9uIHdpdGNoIGlkZW50aXR5IGNvbHVtbgorLS0gSWYgc3BsaXQgcGFydGl0aW9u IGNvbHVtbiBpcyBpZGVudGl0eS1jb2x1bW4sIGNvbHVtbnMgb2YgbmV3IHBhcnRpdGlvbnMg YXJlIGlkZW50aXR5LWNvbHVtbnMgdG9vLgorLS0KK0NSRUFURSBUQUJMRSBzYWxlc21hbnMo c2FsZXNtYW5faWQgSU5UIEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkgUFJJTUFSWSBL RVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2Fs ZXNtYW5faWQpOworCitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMV8yIFBBUlRJVElPTiBPRiBz YWxlc21hbnMgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoMik7CistLSBDcmVhdGUgbmV3IHBh cnRpdGlvbiB3aXRoIGlkZW50aXR5LWNvbHVtbjoKK0NSRUFURSBUQUJMRSBzYWxlc21hbnMy XzUoc2FsZXNtYW5faWQgSU5UIEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkgUFJJTUFS WSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpOworQUxURVIgVEFCTEUgc2FsZXNt YW5zIEFUVEFDSCBQQVJUSVRJT04gc2FsZXNtYW5zMl81IEZPUiBWQUxVRVMgRlJPTSAoMikg VE8gKDUpOworCitJTlNFUlQgSU5UTyBzYWxlc21hbnMgKHNhbGVzbWFuX25hbWUpIFZBTFVF UyAoJ1BvaXJvdCcpOworSU5TRVJUIElOVE8gc2FsZXNtYW5zIChzYWxlc21hbl9uYW1lKSBW QUxVRVMgKCdJdmFub3YnKTsKKworU0VMRUNUIGF0dG5hbWUsIGF0dGlkZW50aXR5LCBhdHRn ZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0bnVtID4gMCBBTkQgYXR0cmVs aWQgPSAnc2FsZXNtYW5zJzo6cmVnY2xhc3M6Om9pZDsKK1NFTEVDVCBhdHRuYW1lLCBhdHRp ZGVudGl0eSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+ IDAgQU5EIGF0dHJlbGlkID0gJ3NhbGVzbWFuczFfMic6OnJlZ2NsYXNzOjpvaWQ7CistLSBT cGxpdCBwYXJ0aXRpb24gaGFzIGlkZW50aXR5LWNvbHVtbjoKK1NFTEVDVCBhdHRuYW1lLCBh dHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51 bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3NhbGVzbWFuczJfNSc6OnJlZ2NsYXNzOjpvaWQ7CisK K0FMVEVSIFRBQkxFIHNhbGVzbWFucyBTUExJVCBQQVJUSVRJT04gc2FsZXNtYW5zMl81IElO VE8KKyAgKFBBUlRJVElPTiBzYWxlc21hbnMyXzMgRk9SIFZBTFVFUyBGUk9NICgyKSBUTyAo MyksCisgICBQQVJUSVRJT04gc2FsZXNtYW5zM180IEZPUiBWQUxVRVMgRlJPTSAoMykgVE8g KDQpLAorICAgUEFSVElUSU9OIHNhbGVzbWFuczRfNSBGT1IgVkFMVUVTIEZST00gKDQpIFRP ICg1KSk7CisKK0lOU0VSVCBJTlRPIHNhbGVzbWFucyAoc2FsZXNtYW5fbmFtZSkgVkFMVUVT ICgnTWF5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgKHNhbGVzbWFuX25hbWUpIFZBTFVF UyAoJ0ZvcmQnKTsKKworU0VMRUNUICogRlJPTSBzYWxlc21hbnMxXzI7CitTRUxFQ1QgKiBG Uk9NIHNhbGVzbWFuczJfMzsKK1NFTEVDVCAqIEZST00gc2FsZXNtYW5zM180OworU0VMRUNU ICogRlJPTSBzYWxlc21hbnM0XzU7CisKK1NFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwg YXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0 dHJlbGlkID0gJ3NhbGVzbWFucyc6OnJlZ2NsYXNzOjpvaWQ7CitTRUxFQ1QgYXR0bmFtZSwg YXR0aWRlbnRpdHksIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRu dW0gPiAwIEFORCBhdHRyZWxpZCA9ICdzYWxlc21hbnMxXzInOjpyZWdjbGFzczo6b2lkOwor LS0gTmV3IHBhcnRpdGlvbnMgaGF2ZSBpZGVudGl0eS1jb2x1bW5zOgorU0VMRUNUIGF0dG5h bWUsIGF0dGlkZW50aXR5LCBhdHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUg YXR0bnVtID4gMCBBTkQgYXR0cmVsaWQgPSAnc2FsZXNtYW5zMl8zJzo6cmVnY2xhc3M6Om9p ZDsKK1NFTEVDVCBhdHRuYW1lLCBhdHRpZGVudGl0eSwgYXR0Z2VuZXJhdGVkIEZST00gcGdf YXR0cmlidXRlIFdIRVJFIGF0dG51bSA+IDAgQU5EIGF0dHJlbGlkID0gJ3NhbGVzbWFuczNf NCc6OnJlZ2NsYXNzOjpvaWQ7CitTRUxFQ1QgYXR0bmFtZSwgYXR0aWRlbnRpdHksIGF0dGdl bmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRudW0gPiAwIEFORCBhdHRyZWxp ZCA9ICdzYWxlc21hbnM0XzUnOjpyZWdjbGFzczo6b2lkOworCitEUk9QIFRBQkxFIHNhbGVz bWFucyBDQVNDQURFOworCistLQorLS0gVGVzdDogc3BsaXQgcGFydGl0aW9uIHdpdGggZGVs ZXRlZCBjb2x1bW5zCistLQorQ1JFQVRFIFRBQkxFIHNhbGVzbWFucyhzYWxlc21hbl9pZCBJ TlQgUFJJTUFSWSBLRVksIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCkpIFBBUlRJVElPTiBC WSBSQU5HRSAoc2FsZXNtYW5faWQpOworCitDUkVBVEUgVEFCTEUgc2FsZXNtYW5zMDFfMTAg UEFSVElUSU9OIE9GIHNhbGVzbWFucyBGT1IgVkFMVUVTIEZST00gKDEpIFRPICgxMCk7Cist LSBDcmVhdGUgbmV3IHBhcnRpdGlvbiB3aXRoIHNvbWUgZGVsZXRlZCBjb2x1bW5zOgorQ1JF QVRFIFRBQkxFIHNhbGVzbWFuczEwXzQwKGQxIFZBUkNIQVIoMzApLCBzYWxlc21hbl9pZCBJ TlQgUFJJTUFSWSBLRVksIGQyIElOVCwgZDMgREFURSwgc2FsZXNtYW5fbmFtZSBWQVJDSEFS KDMwKSk7CisKK0lOU0VSVCBJTlRPIHNhbGVzbWFuczEwXzQwIFZBTFVFUyAoJ2R1bW15IHZh bHVlIDEnLCAxOSwgMTAwLCBub3coKSwgJ0l2YW5vdicpOworSU5TRVJUIElOVE8gc2FsZXNt YW5zMTBfNDAgVkFMVUVTICgnZHVtbXkgdmFsdWUgMicsIDIwLCAxMDEsIG5vdygpLCAnU21p cm5vZmYnKTsKKworQUxURVIgVEFCTEUgc2FsZXNtYW5zMTBfNDAgRFJPUCBDT0xVTU4gZDE7 CitBTFRFUiBUQUJMRSBzYWxlc21hbnMxMF80MCBEUk9QIENPTFVNTiBkMjsKK0FMVEVSIFRB QkxFIHNhbGVzbWFuczEwXzQwIERST1AgQ09MVU1OIGQzOworCitBTFRFUiBUQUJMRSBzYWxl c21hbnMgQVRUQUNIIFBBUlRJVElPTiBzYWxlc21hbnMxMF80MCBGT1IgVkFMVUVTIEZST00g KDEwKSBUTyAoNDApOworCitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxLCAnUG9p cm90Jyk7CitJTlNFUlQgSU5UTyBzYWxlc21hbnMgVkFMVUVTICgxMCwgJ01heScpOworSU5T RVJUIElOVE8gc2FsZXNtYW5zIFZBTFVFUyAoMzAsICdGb3JkJyk7CisKK0FMVEVSIFRBQkxF IHNhbGVzbWFucyBTUExJVCBQQVJUSVRJT04gc2FsZXNtYW5zMTBfNDAgSU5UTworICAoUEFS VElUSU9OIHNhbGVzbWFuczEwXzIwIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCksCisg ICBQQVJUSVRJT04gc2FsZXNtYW5zMjBfMzAgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMw KSwKKyAgIFBBUlRJVElPTiBzYWxlc21hbnMzMF80MCBGT1IgVkFMVUVTIEZST00gKDMwKSBU TyAoNDApKTsKKworc2VsZWN0ICogZnJvbSBzYWxlc21hbnMwMV8xMDsKK3NlbGVjdCAqIGZy b20gc2FsZXNtYW5zMTBfMjA7CitzZWxlY3QgKiBmcm9tIHNhbGVzbWFuczIwXzMwOworc2Vs ZWN0ICogZnJvbSBzYWxlc21hbnMzMF80MDsKKworRFJPUCBUQUJMRSBzYWxlc21hbnMgQ0FT Q0FERTsKKworLS0KKy0tIFRlc3Q6IHNwbGl0IHN1Yi1wYXJ0aXRpb24KKy0tCitDUkVBVEUg VEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBWQVJD SEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQQVJUSVRJT04g QlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIwMjIgUEFS VElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEnKSBU TyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19mZWIyMDIyIFBBUlRJVElP TiBPRiBzYWxlc19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcy MDIyLTAzLTAxJyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfbWFyMjAyMiBQQVJUSVRJT04gT0Yg c2FsZXNfcmFuZ2UgRk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0w NC0wMScpOworCitDUkVBVEUgVEFCTEUgc2FsZXNfYXByMjAyMiAoc2FsZXNtYW5faWQgSU5U LCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBzYWxlc19hbW91bnQgSU5ULCBzYWxlc19k YXRlIERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAoc2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFC TEUgc2FsZXNfYXByX2FsbCBQQVJUSVRJT04gT0Ygc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVT IEZST00gKCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJyk7CitBTFRFUiBUQUJMRSBz YWxlc19yYW5nZSBBVFRBQ0ggUEFSVElUSU9OIHNhbGVzX2FwcjIwMjIgRk9SIFZBTFVFUyBG Uk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNS0wMScpOworCitDUkVBVEUgVEFCTEUg c2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5nZSBERUZBVUxUOworCitDUkVB VEUgSU5ERVggc2FsZXNfcmFuZ2Vfc2FsZXNfZGF0ZV9pZHggT04gc2FsZXNfcmFuZ2UgVVNJ TkcgYnRyZWUgKHNhbGVzX2RhdGUpOworCitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxV RVMgKDEsICAnTWF5JywgICAgICAxMDAwLCAnMjAyMi0wMS0zMScpOworSU5TRVJUIElOVE8g c2FsZXNfcmFuZ2UgVkFMVUVTICgyLCAgJ1NtaXJub2ZmJywgNTAwLCAgJzIwMjItMDItMTAn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMywgICdGb3JkJywgICAgIDIw MDAsICcyMDIyLTA0LTMwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDQs ICAnSXZhbm92JywgICA3NTAsICAnMjAyMi0wNC0xMycpOworSU5TRVJUIElOVE8gc2FsZXNf cmFuZ2UgVkFMVUVTICg1LCAgJ0RlZXYnLCAgICAgMjUwLCAgJzIwMjItMDQtMDcnKTsKK0lO U0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNiwgICdQb2lyb3QnLCAgIDE1MCwgICcy MDIyLTAyLTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDcsICAnTGkn LCAgICAgICAxNzUsICAnMjAyMi0wMy0wOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2Ug VkFMVUVTICg4LCAgJ0VyaWNzc29uJywgMTg1LCAgJzIwMjItMDItMjMnKTsKK0lOU0VSVCBJ TlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOSwgICdNdWxsZXInLCAgIDI1MCwgICcyMDIyLTAz LTExJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEwLCAnSGFsZGVyJywg ICAzNTAsICAnMjAyMi0wMS0yOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVT ICgxMSwgJ1RydW1wJywgICAgMzgwLCAgJzIwMjItMDQtMDYnKTsKK0lOU0VSVCBJTlRPIHNh bGVzX3JhbmdlIFZBTFVFUyAoMTIsICdQbGF0bycsICAgIDM1MCwgICcyMDIyLTAzLTE5Jyk7 CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEzLCAnR2FuZGknLCAgICAzNzcs ICAnMjAyMi0wMS0wOScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxNCwg J1NtaXRoJywgICAgNTEwLCAgJzIwMjItMDUtMDQnKTsKKworU0VMRUNUICogRlJPTSBzYWxl c19yYW5nZTsKK1NFTEVDVCAqIEZST00gc2FsZXNfYXByMjAyMjsKKworQUxURVIgVEFCTEUg c2FsZXNfYXByMjAyMiBTUExJVCBQQVJUSVRJT04gc2FsZXNfYXByX2FsbCBJTlRPCisgIChQ QVJUSVRJT04gc2FsZXNfYXByMjAyMl8wMV8xMCBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0 LTAxJykgVE8gKCcyMDIyLTA0LTEwJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMl8x MF8yMCBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTA0LTEwJykgVE8gKCcyMDIyLTA0LTIwJyks CisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMl8yMF8zMCBGT1IgVkFMVUVTIEZST00gKCcy MDIyLTA0LTIwJykgVE8gKCcyMDIyLTA1LTAxJykpOworCitTRUxFQ1QgKiBGUk9NIHNhbGVz X3JhbmdlOworU0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyOworU0VMRUNUICogRlJPTSBz YWxlc19hcHIyMDIyXzAxXzEwOworU0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyXzEwXzIw OworU0VMRUNUICogRlJPTSBzYWxlc19hcHIyMDIyXzIwXzMwOworCitEUk9QIFRBQkxFIHNh bGVzX3JhbmdlOworCistLQorLS0gQlkgTElTVCBwYXJ0aXRpb25pbmcKKy0tCisKKy0tCist LSBUZXN0OiBzcGVjaWZpYyBlcnJvcnMgZm9yIEJZIExJU1QgcGFydGl0aW9uaW5nCistLQor Q1JFQVRFIFRBQkxFIHNhbGVzX2xpc3QKKyhzYWxlc21hbl9pZCBJTlQsCisgc2FsZXNtYW5f bmFtZSBWQVJDSEFSKDMwKSwKKyBzYWxlc19zdGF0ZSBWQVJDSEFSKDIwKSwKKyBzYWxlc19h bW91bnQgSU5ULAorIHNhbGVzX2RhdGUgREFURSkKK1BBUlRJVElPTiBCWSBMSVNUIChzYWxl c19zdGF0ZSk7CisKK0NSRUFURSBUQUJMRSBzYWxlc19ub3JkIFBBUlRJVElPTiBPRiBzYWxl c19saXN0IEZPUiBWQUxVRVMgSU4gKCdNdXJtYW5zaycsICdTdC4gUGV0ZXJzYnVyZycsICdV a2h0YScpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2FsbCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlz dCBGT1IgVkFMVUVTIElOICgnTW9zY293JywgJ1Zvcm9uZXpoJywgJ1Ntb2xlbnNrJywgJ0Jy eWFuc2snLCAnTWFnYWRhbicsICdLYXphbicsICdLaGFiYXJvdnNrJywgJ1ZvbGdvZ3JhZCcs ICdWbGFkaXZvc3RvaycpOworQ1JFQVRFIFRBQkxFIHNhbGVzX290aGVycyBQQVJUSVRJT04g T0Ygc2FsZXNfbGlzdCBERUZBVUxUOworCistLSBFUlJPUjogIHBhcnRpdGlvbiAic2FsZXNf ZWFzdCIgd291bGQgb3ZlcmxhcCBwYXJ0aXRpb24gInNhbGVzX25vcmQiCitBTFRFUiBUQUJM RSBzYWxlc19saXN0IFNQTElUIFBBUlRJVElPTiBzYWxlc19hbGwgSU5UTworICAoUEFSVElU SU9OIHNhbGVzX3dlc3QgRk9SIFZBTFVFUyBJTiAoJ1Zvcm9uZXpoJywgJ1Ntb2xlbnNrJywg J0JyeWFuc2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19lYXN0IEZPUiBWQUxVRVMgSU4gKCdN YWdhZGFuJywgJ0toYWJhcm92c2snLCAnVmxhZGl2b3N0b2snLCAnTXVybWFuc2snKSwKKyAg IFBBUlRJVElPTiBzYWxlc19jZW50cmFsIEZPUiBWQUxVRVMgSU4gKCdNb3Njb3cnLCAnS2F6 YW4nLCAnVm9sZ29ncmFkJykpOworCistLSBFUlJPUjogIG5ldyBwYXJ0aXRpb24gInNhbGVz X3dlc3QiIHdvdWxkIG92ZXJsYXAgd2l0aCBhbm90aGVyIG5ldyBwYXJ0aXRpb24gInNhbGVz X2NlbnRyYWwiCitBTFRFUiBUQUJMRSBzYWxlc19saXN0IFNQTElUIFBBUlRJVElPTiBzYWxl c19hbGwgSU5UTworICAoUEFSVElUSU9OIHNhbGVzX3dlc3QgRk9SIFZBTFVFUyBJTiAoJ1Zv cm9uZXpoJywgJ1Ntb2xlbnNrJywgJ0JyeWFuc2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19l YXN0IEZPUiBWQUxVRVMgSU4gKCdNYWdhZGFuJywgJ0toYWJhcm92c2snLCAnVmxhZGl2b3N0 b2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19jZW50cmFsIEZPUiBWQUxVRVMgSU4gKCdNb3Nj b3cnLCAnS2F6YW4nLCAnVm9yb25lemgnLCAnVm9sZ29ncmFkJykpOworCistLSBFUlJPUjog IG5ldyBwYXJ0aXRpb24gInNhbGVzX3dlc3QiIGNhbm5vdCBoYXZlIE5VTEwgdmFsdWUgYmVj YXVzZSBzcGxpdCBwYXJ0aXRpb24gZG9lcyBub3QgaGF2ZQorQUxURVIgVEFCTEUgc2FsZXNf bGlzdCBTUExJVCBQQVJUSVRJT04gc2FsZXNfYWxsIElOVE8KKyAgKFBBUlRJVElPTiBzYWxl c193ZXN0IEZPUiBWQUxVRVMgSU4gKCdWb3JvbmV6aCcsICdTbW9sZW5zaycsICdCcnlhbnNr JywgTlVMTCksCisgICBQQVJUSVRJT04gc2FsZXNfZWFzdCBGT1IgVkFMVUVTIElOICgnTWFn YWRhbicsICdLaGFiYXJvdnNrJywgJ1ZsYWRpdm9zdG9rJyksCisgICBQQVJUSVRJT04gc2Fs ZXNfY2VudHJhbCBGT1IgVkFMVUVTIElOICgnTW9zY293JywgJ0themFuJywgJ1ZvbGdvZ3Jh ZCcpKTsKKworRFJPUCBUQUJMRSBzYWxlc19saXN0OworCistLQorLS0gVGVzdDogdHdvIHNw ZWNpZmljIGVycm9ycyBmb3IgQlkgTElTVCBwYXJ0aXRpb25pbmc6CistLSAgICogbmV3IHBh cnRpdGlvbnMgbm90IGhhcyBOVUxMIHZhbHVlIHRoYXQgc3BsaXQgcGFydGl0aW9uIGhhcy4K Ky0tICAgKiBuZXcgcGFydGl0aW9ucyBub3QgaGFzIGEgdmFsdWUgdGhhdCBzcGxpdCBwYXJ0 aXRpb24gaGFzLgorLS0KK0NSRUFURSBUQUJMRSBzYWxlc19saXN0Cisoc2FsZXNtYW5faWQg SU5ULAorIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCksCisgc2FsZXNfc3RhdGUgVkFSQ0hB UigyMCksCisgc2FsZXNfYW1vdW50IElOVCwKKyBzYWxlc19kYXRlIERBVEUpCitQQVJUSVRJ T04gQlkgTElTVCAoc2FsZXNfc3RhdGUpOworCitDUkVBVEUgVEFCTEUgc2FsZXNfbm9yZCBQ QVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBGT1IgVkFMVUVTIElOICgnTXVybWFuc2snLCAnU3Qu IFBldGVyc2J1cmcnLCAnVWtodGEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19hbGwgUEFSVElU SU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAoJ01vc2NvdycsICdWb3JvbmV6aCcs ICdTbW9sZW5zaycsICdCcnlhbnNrJywgJ01hZ2FkYW4nLCAnS2F6YW4nLCAnS2hhYmFyb3Zz aycsICdWb2xnb2dyYWQnLCAnVmxhZGl2b3N0b2snLCBOVUxMKTsKKworLS0gRVJST1I6ICBu ZXcgcGFydGl0aW9ucyBub3QgaGF2ZSB2YWx1ZSBOVUxMIGJ1dCBzcGxpdCBwYXJ0aXRpb24g aGFzCitBTFRFUiBUQUJMRSBzYWxlc19saXN0IFNQTElUIFBBUlRJVElPTiBzYWxlc19hbGwg SU5UTworICAoUEFSVElUSU9OIHNhbGVzX3dlc3QgRk9SIFZBTFVFUyBJTiAoJ1Zvcm9uZXpo JywgJ1Ntb2xlbnNrJywgJ0JyeWFuc2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19lYXN0IEZP UiBWQUxVRVMgSU4gKCdNYWdhZGFuJywgJ0toYWJhcm92c2snLCAnVmxhZGl2b3N0b2snKSwK KyAgIFBBUlRJVElPTiBzYWxlc19jZW50cmFsIEZPUiBWQUxVRVMgSU4gKCdNb3Njb3cnLCAn S2F6YW4nLCAnVm9sZ29ncmFkJykpOworCistLSBFUlJPUjogIG5ldyBwYXJ0aXRpb25zIG5v dCBoYXZlIHZhbHVlICdWb2xnb2dyYWQnIGJ1dCBzcGxpdCBwYXJ0aXRpb24gaGFzCitBTFRF UiBUQUJMRSBzYWxlc19saXN0IFNQTElUIFBBUlRJVElPTiBzYWxlc19hbGwgSU5UTworICAo UEFSVElUSU9OIHNhbGVzX3dlc3QgRk9SIFZBTFVFUyBJTiAoJ1Zvcm9uZXpoJywgJ1Ntb2xl bnNrJywgJ0JyeWFuc2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19lYXN0IEZPUiBWQUxVRVMg SU4gKCdNYWdhZGFuJywgJ0toYWJhcm92c2snLCAnVmxhZGl2b3N0b2snKSwKKyAgIFBBUlRJ VElPTiBzYWxlc19jZW50cmFsIEZPUiBWQUxVRVMgSU4gKCdNb3Njb3cnLCAnS2F6YW4nLCBO VUxMKSk7CisKK0RST1AgVEFCTEUgc2FsZXNfbGlzdDsKKworLS0KKy0tIFRlc3Q6IEJZIExJ U1QgcGFydGl0aW9uaW5nLCBTUExJVCBQQVJUSVRJT04gd2l0aCBkYXRhCistLQorQ1JFQVRF IFRBQkxFIHNhbGVzX2xpc3QKKyhzYWxlc21hbl9pZCBJTlQgR0VORVJBVEVEIEFMV0FZUyBB UyBJREVOVElUWSwKKyBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLAorIHNhbGVzX3N0YXRl IFZBUkNIQVIoMjApLAorIHNhbGVzX2Ftb3VudCBJTlQsCisgc2FsZXNfZGF0ZSBEQVRFKQor UEFSVElUSU9OIEJZIExJU1QgKHNhbGVzX3N0YXRlKTsKKworQ1JFQVRFIElOREVYIHNhbGVz X2xpc3Rfc2FsZXNtYW5fbmFtZV9pZHggT04gc2FsZXNfbGlzdCBVU0lORyBidHJlZSAoc2Fs ZXNtYW5fbmFtZSk7CitDUkVBVEUgSU5ERVggc2FsZXNfbGlzdF9zYWxlc19zdGF0ZV9pZHgg T04gc2FsZXNfbGlzdCBVU0lORyBidHJlZSAoc2FsZXNfc3RhdGUpOworCitDUkVBVEUgVEFC TEUgc2FsZXNfbm9yZCBQQVJUSVRJT04gT0Ygc2FsZXNfbGlzdCBGT1IgVkFMVUVTIElOICgn TXVybWFuc2snLCAnU3QuIFBldGVyc2J1cmcnLCAnVWtodGEnKTsKK0NSRUFURSBUQUJMRSBz YWxlc19hbGwgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgRk9SIFZBTFVFUyBJTiAoJ01vc2Nv dycsICdWb3JvbmV6aCcsICdTbW9sZW5zaycsICdCcnlhbnNrJywgJ01hZ2FkYW4nLCAnS2F6 YW4nLCAnS2hhYmFyb3ZzaycsICdWb2xnb2dyYWQnLCAnVmxhZGl2b3N0b2snKTsKK0NSRUFU RSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNhbGVzX2xpc3QgREVGQVVMVDsK KworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUs IHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnVHJ1bXAnLCAgICAnTWFnYWRh bicsICAgICAgICAxMDAwLCAnMjAyMi0wMy0wMScpOworSU5TRVJUIElOVE8gc2FsZXNfbGlz dCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0 ZSkgVkFMVUVTICgnU21pcm5vZmYnLCAnU21vbGVuc2snLCAgICAgICA1MDAsICAnMjAyMi0w My0wMycpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNf c3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnRm9yZCcsICAgICAn U3QuIFBldGVyc2J1cmcnLCAyMDAwLCAnMjAyMi0wMy0wNScpOworSU5TRVJUIElOVE8gc2Fs ZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2Fs ZXNfZGF0ZSkgVkFMVUVTICgnSXZhbm92JywgICAnTW9zY293JywgICAgICAgICA3NTAsICAn MjAyMi0wMy0wNCcpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwg c2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnRGVldics ICAgICAnVm9yb25lemgnLCAgICAgICAyNTAsICAnMjAyMi0wMy0wNycpOworSU5TRVJUIElO VE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3Vu dCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnUG9pcm90JywgICAnS2F6YW4nLCAgICAgICAgICAx MDAwLCAnMjAyMi0wMy0wMScpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5f bmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgn TWF5JywgICAgICAnVWtodGEnLCAgICAgICAgICAxMjAwLCAnMjAyMi0wMy0wNicpOworSU5T RVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVz X2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnTGknLCAgICAgICAnVmxhZGl2b3N0b2sn LCAgICAxMTUwLCAnMjAyMi0wMy0wOScpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2Fs ZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFM VUVTICgnTWF5JywgICAgICAnVWtodGEnLCAgICAgICAgICAxMjAwLCAnMjAyMi0wMy0xMScp OworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUs IHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnSGFsZGVyJywgICAnTXVybWFu c2snLCAgICAgICA4MDAsICAnMjAyMi0wMy0wMicpOworSU5TRVJUIElOVE8gc2FsZXNfbGlz dCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0 ZSkgVkFMVUVTICgnTXVsbGVyJywgICAnQnJ5YW5zaycsICAgICAgICA2NTAsICAnMjAyMi0w My0wNScpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNf c3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnU21pdGgnLCAgICAn Vm9sZ29ncmFkJywgICAgICAzNTAsICAnMjAyMi0wMy0xMCcpOworSU5TRVJUIElOVE8gc2Fs ZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwgc2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2Fs ZXNfZGF0ZSkgVkFMVUVTICgnR2FuZGknLCAgICAnTW9zY293JywgICAgICAgICAxNTAsICAn MjAyMi0wMy0wOCcpOworSU5TRVJUIElOVE8gc2FsZXNfbGlzdCAoc2FsZXNtYW5fbmFtZSwg c2FsZXNfc3RhdGUsIHNhbGVzX2Ftb3VudCwgc2FsZXNfZGF0ZSkgVkFMVUVTICgnUGxhdG8n LCAgICAnVm9yb25lemgnLCAgICAgICA5NTAsICAnMjAyMi0wMy0wNScpOworCitBTFRFUiBU QUJMRSBzYWxlc19saXN0IFNQTElUIFBBUlRJVElPTiBzYWxlc19hbGwgSU5UTworICAoUEFS VElUSU9OIHNhbGVzX3dlc3QgRk9SIFZBTFVFUyBJTiAoJ1Zvcm9uZXpoJywgJ1Ntb2xlbnNr JywgJ0JyeWFuc2snKSwKKyAgIFBBUlRJVElPTiBzYWxlc19lYXN0IEZPUiBWQUxVRVMgSU4g KCdNYWdhZGFuJywgJ0toYWJhcm92c2snLCAnVmxhZGl2b3N0b2snKSwKKyAgIFBBUlRJVElP TiBzYWxlc19jZW50cmFsIEZPUiBWQUxVRVMgSU4gKCdNb3Njb3cnLCAnS2F6YW4nLCAnVm9s Z29ncmFkJykpOworCitTRUxFQ1QgKiBGUk9NIHNhbGVzX2xpc3Q7CitTRUxFQ1QgKiBGUk9N IHNhbGVzX3dlc3Q7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2Vhc3Q7CitTRUxFQ1QgKiBGUk9N IHNhbGVzX25vcmQ7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2NlbnRyYWw7CisKKy0tIFVzZSBp bmRleHNjYW4gZm9yIHRlc3QgaW5kZXhlcyBhZnRlciBzcGxpdCBwYXJ0aXRpb24KK1NFVCBl bmFibGVfaW5kZXhzY2FuID0gT047CitTRVQgZW5hYmxlX3NlcXNjYW4gPSBPRkY7CisKK1NF TEVDVCAqIEZST00gc2FsZXNfY2VudHJhbCBXSEVSRSBzYWxlc19zdGF0ZSA9ICdNb3Njb3cn OworU0VMRUNUICogRlJPTSBzYWxlc19saXN0IFdIRVJFIHNhbGVzX3N0YXRlID0gJ01vc2Nv dyc7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2xpc3QgV0hFUkUgc2FsZXNtYW5fbmFtZSA9ICdJ dmFub3YnOworCitTRVQgZW5hYmxlX2luZGV4c2NhbiA9IE9OOworU0VUIGVuYWJsZV9zZXFz Y2FuID0gT047CisKK0RST1AgVEFCTEUgc2FsZXNfbGlzdDsKKworLS0KKy0tIFRlc3QgZm9y OgorLS0gICAqIHNwbGl0IERFRkFVTFQgcGFydGl0aW9uIHRvIHBhcnRpdGlvbnMgd2l0aCBz cGFjZXMgYmV0d2VlbiBib3VuZHM7CistLSAgICogcmFuZG9tIG9yZGVyIG9mIHBhcnRpdGlv bnMgaW4gU1BMSVQgUEFSVElUSU9OIGNvbW1hbmQuCistLQorQ1JFQVRFIFRBQkxFIHNhbGVz X3JhbmdlIChzYWxlc21hbl9pZCBJTlQsIHNhbGVzbWFuX25hbWUgVkFSQ0hBUigzMCksIHNh bGVzX2Ftb3VudCBJTlQsIHNhbGVzX2RhdGUgREFURSkgUEFSVElUSU9OIEJZIFJBTkdFIChz YWxlc19kYXRlKTsKK0NSRUFURSBUQUJMRSBzYWxlc19vdGhlcnMgUEFSVElUSU9OIE9GIHNh bGVzX3JhbmdlIERFRkFVTFQ7CisKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAo MSwgICdNYXknLCAgICAgIDEwMDAsICcyMDIyLTAxLTMxJyk7CitJTlNFUlQgSU5UTyBzYWxl c19yYW5nZSBWQUxVRVMgKDIsICAnU21pcm5vZmYnLCA1MDAsICAnMjAyMi0wMi0wOScpOwor SU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgzLCAgJ0ZvcmQnLCAgICAgMjAwMCwg JzIwMjItMDQtMzAnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNCwgICdJ dmFub3YnLCAgIDc1MCwgICcyMDIyLTA0LTEzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5n ZSBWQUxVRVMgKDUsICAnRGVldicsICAgICAyNTAsICAnMjAyMi0wNC0wNycpOworSU5TRVJU IElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg2LCAgJ1BvaXJvdCcsICAgMTUwLCAgJzIwMjIt MDItMDcnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoNywgICdMaScsICAg ICAgIDE3NSwgICcyMDIyLTAzLTA4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxV RVMgKDgsICAnRXJpY3Nzb24nLCAxODUsICAnMjAyMi0wMi0yMycpOworSU5TRVJUIElOVE8g c2FsZXNfcmFuZ2UgVkFMVUVTICg5LCAgJ011bGxlcicsICAgMjUwLCAgJzIwMjItMDMtMTEn KTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTAsICdIYWxkZXInLCAgIDM1 MCwgICcyMDIyLTAxLTI4Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEx LCAnVHJ1bXAnLCAgICAzODAsICAnMjAyMi0wNC0wNicpOworSU5TRVJUIElOVE8gc2FsZXNf cmFuZ2UgVkFMVUVTICgxMiwgJ1BsYXRvJywgICAgMzUwLCAgJzIwMjItMDMtMTknKTsKK0lO U0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTMsICdHYW5kaScsICAgIDM3NywgICcy MDIyLTAxLTA5Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDE0LCAnU21p dGgnLCAgICA1MTAsICAnMjAyMi0wNS0wNCcpOworCitBTFRFUiBUQUJMRSBzYWxlc19yYW5n ZSBTUExJVCBQQVJUSVRJT04gc2FsZXNfb3RoZXJzIElOVE8KKyAgKFBBUlRJVElPTiBzYWxl c19vdGhlcnMgREVGQVVMVCwKKyAgIFBBUlRJVElPTiBzYWxlc19tYXIyMDIyXzFkZWNhZGUg Rk9SIFZBTFVFUyBGUk9NICgnMjAyMi0wMy0wMScpIFRPICgnMjAyMi0wMy0xMCcpLAorICAg UEFSVElUSU9OIHNhbGVzX2phbjIwMjJfMWRlY2FkZSBGT1IgVkFMVUVTIEZST00gKCcyMDIy LTAxLTAxJykgVE8gKCcyMDIyLTAxLTEwJyksCisgICBQQVJUSVRJT04gc2FsZXNfZmViMjAy Ml8xZGVjYWRlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIwMjItMDIt MTAnKSwKKyAgIFBBUlRJVElPTiBzYWxlc19hcHIyMDIyXzFkZWNhZGUgRk9SIFZBTFVFUyBG Uk9NICgnMjAyMi0wNC0wMScpIFRPICgnMjAyMi0wNC0xMCcpKTsKKworU0VMRUNUICogRlJP TSBzYWxlc19qYW4yMDIyXzFkZWNhZGU7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX2ZlYjIwMjJf MWRlY2FkZTsKK1NFTEVDVCAqIEZST00gc2FsZXNfbWFyMjAyMl8xZGVjYWRlOworU0VMRUNU ICogRlJPTSBzYWxlc19hcHIyMDIyXzFkZWNhZGU7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX290 aGVyczsKKworRFJPUCBUQUJMRSBzYWxlc19yYW5nZTsKKworLS0KKy0tIFRlc3QgZm9yOgor LS0gICAqIHNwbGl0IG5vbi1ERUZBVUxUIHBhcnRpdGlvbiB0byBwYXJ0aXRpb25zIHdpdGgg c3BhY2VzIGJldHdlZW4gYm91bmRzOworLS0gICAqIHJhbmRvbSBvcmRlciBvZiBwYXJ0aXRp b25zIGluIFNQTElUIFBBUlRJVElPTiBjb21tYW5kLgorLS0KK0NSRUFURSBUQUJMRSBzYWxl c19yYW5nZSAoc2FsZXNtYW5faWQgSU5ULCBzYWxlc21hbl9uYW1lIFZBUkNIQVIoMzApLCBz YWxlc19hbW91bnQgSU5ULCBzYWxlc19kYXRlIERBVEUpIFBBUlRJVElPTiBCWSBSQU5HRSAo c2FsZXNfZGF0ZSk7CitDUkVBVEUgVEFCTEUgc2FsZXNfYWxsIFBBUlRJVElPTiBPRiBzYWxl c19yYW5nZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAxLTAxJykgVE8gKCcyMDIyLTA1LTAx Jyk7CitDUkVBVEUgVEFCTEUgc2FsZXNfb3RoZXJzIFBBUlRJVElPTiBPRiBzYWxlc19yYW5n ZSBERUZBVUxUOworCitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEsICAnTWF5 JywgICAgICAxMDAwLCAnMjAyMi0wMS0zMScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2Ug VkFMVUVTICgyLCAgJ1NtaXJub2ZmJywgNTAwLCAgJzIwMjItMDItMDknKTsKK0lOU0VSVCBJ TlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMywgICdGb3JkJywgICAgIDIwMDAsICcyMDIyLTA0 LTMwJyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDQsICAnSXZhbm92Jywg ICA3NTAsICAnMjAyMi0wNC0xMycpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVT ICg1LCAgJ0RlZXYnLCAgICAgMjUwLCAgJzIwMjItMDQtMDcnKTsKK0lOU0VSVCBJTlRPIHNh bGVzX3JhbmdlIFZBTFVFUyAoNiwgICdQb2lyb3QnLCAgIDE1MCwgICcyMDIyLTAyLTA3Jyk7 CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDcsICAnTGknLCAgICAgICAxNzUs ICAnMjAyMi0wMy0wOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg4LCAg J0VyaWNzc29uJywgMTg1LCAgJzIwMjItMDItMjMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jh bmdlIFZBTFVFUyAoOSwgICdNdWxsZXInLCAgIDI1MCwgICcyMDIyLTAzLTExJyk7CitJTlNF UlQgSU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDEwLCAnSGFsZGVyJywgICAzNTAsICAnMjAy Mi0wMS0yOCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMSwgJ1RydW1w JywgICAgMzgwLCAgJzIwMjItMDQtMDYnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZB TFVFUyAoMTIsICdQbGF0bycsICAgIDM1MCwgICcyMDIyLTAzLTE5Jyk7CitJTlNFUlQgSU5U TyBzYWxlc19yYW5nZSBWQUxVRVMgKDEzLCAnR2FuZGknLCAgICAzNzcsICAnMjAyMi0wMS0w OScpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxNCwgJ1NtaXRoJywgICAg NTEwLCAgJzIwMjItMDUtMDQnKTsKKworQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQg UEFSVElUSU9OIHNhbGVzX2FsbCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfbWFyMjAyMl8x ZGVjYWRlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDMtMDEnKSBUTyAoJzIwMjItMDMtMTAn KSwKKyAgIFBBUlRJVElPTiBzYWxlc19qYW4yMDIyXzFkZWNhZGUgRk9SIFZBTFVFUyBGUk9N ICgnMjAyMi0wMS0wMScpIFRPICgnMjAyMi0wMS0xMCcpLAorICAgUEFSVElUSU9OIHNhbGVz X2ZlYjIwMjJfMWRlY2FkZSBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcy MDIyLTAyLTEwJyksCisgICBQQVJUSVRJT04gc2FsZXNfYXByMjAyMl8xZGVjYWRlIEZPUiBW QUxVRVMgRlJPTSAoJzIwMjItMDQtMDEnKSBUTyAoJzIwMjItMDQtMTAnKSk7CisKK1NFTEVD VCAqIEZST00gc2FsZXNfamFuMjAyMl8xZGVjYWRlOworU0VMRUNUICogRlJPTSBzYWxlc19m ZWIyMDIyXzFkZWNhZGU7CitTRUxFQ1QgKiBGUk9NIHNhbGVzX21hcjIwMjJfMWRlY2FkZTsK K1NFTEVDVCAqIEZST00gc2FsZXNfYXByMjAyMl8xZGVjYWRlOworU0VMRUNUICogRlJPTSBz YWxlc19vdGhlcnM7CisKK0RST1AgVEFCTEUgc2FsZXNfcmFuZ2U7CisKKy0tCistLSBUZXN0 IGZvciBzcGxpdCBub24tREVGQVVMVCBwYXJ0aXRpb24gdG8gREVGQVVMVCBwYXJ0aXRpb24g KyBwYXJ0aXRpb25zCistLSB3aXRoIHNwYWNlcyBiZXR3ZWVuIGJvdW5kcy4KKy0tCitDUkVB VEUgVEFCTEUgc2FsZXNfcmFuZ2UgKHNhbGVzbWFuX2lkIElOVCwgc2FsZXNtYW5fbmFtZSBW QVJDSEFSKDMwKSwgc2FsZXNfYW1vdW50IElOVCwgc2FsZXNfZGF0ZSBEQVRFKSBQQVJUSVRJ T04gQlkgUkFOR0UgKHNhbGVzX2RhdGUpOworQ1JFQVRFIFRBQkxFIHNhbGVzX2phbjIwMjIg UEFSVElUSU9OIE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDEtMDEn KSBUTyAoJzIwMjItMDItMDEnKTsKK0NSRUFURSBUQUJMRSBzYWxlc19hbGwgUEFSVElUSU9O IE9GIHNhbGVzX3JhbmdlIEZPUiBWQUxVRVMgRlJPTSAoJzIwMjItMDItMDEnKSBUTyAoJzIw MjItMDUtMDEnKTsKKworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxLCAgJ01h eScsICAgICAgMTAwMCwgJzIwMjItMDEtMzEnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3Jhbmdl IFZBTFVFUyAoMiwgICdTbWlybm9mZicsIDUwMCwgICcyMDIyLTAyLTEwJyk7CitJTlNFUlQg SU5UTyBzYWxlc19yYW5nZSBWQUxVRVMgKDMsICAnRm9yZCcsICAgICAyMDAwLCAnMjAyMi0w NC0zMCcpOworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg0LCAgJ0l2YW5vdics ICAgNzUwLCAgJzIwMjItMDQtMTMnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVF UyAoNSwgICdEZWV2JywgICAgIDI1MCwgICcyMDIyLTA0LTA3Jyk7CitJTlNFUlQgSU5UTyBz YWxlc19yYW5nZSBWQUxVRVMgKDYsICAnUG9pcm90JywgICAxNTAsICAnMjAyMi0wMi0xMScp OworSU5TRVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICg3LCAgJ0xpJywgICAgICAgMTc1 LCAgJzIwMjItMDMtMDgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoOCwg ICdFcmljc3NvbicsIDE4NSwgICcyMDIyLTAyLTIzJyk7CitJTlNFUlQgSU5UTyBzYWxlc19y YW5nZSBWQUxVRVMgKDksICAnTXVsbGVyJywgICAyNTAsICAnMjAyMi0wMy0xMScpOworSU5T RVJUIElOVE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMCwgJ0hhbGRlcicsICAgMzUwLCAgJzIw MjItMDEtMjgnKTsKK0lOU0VSVCBJTlRPIHNhbGVzX3JhbmdlIFZBTFVFUyAoMTEsICdUcnVt cCcsICAgIDM4MCwgICcyMDIyLTA0LTA2Jyk7CitJTlNFUlQgSU5UTyBzYWxlc19yYW5nZSBW QUxVRVMgKDEyLCAnUGxhdG8nLCAgICAzNTAsICAnMjAyMi0wMy0xOScpOworSU5TRVJUIElO VE8gc2FsZXNfcmFuZ2UgVkFMVUVTICgxMywgJ0dhbmRpJywgICAgMzc3LCAgJzIwMjItMDEt MDknKTsKKworQUxURVIgVEFCTEUgc2FsZXNfcmFuZ2UgU1BMSVQgUEFSVElUSU9OIHNhbGVz X2FsbCBJTlRPCisgIChQQVJUSVRJT04gc2FsZXNfYXByMjAyMiBGT1IgVkFMVUVTIEZST00g KCcyMDIyLTA0LTAxJykgVE8gKCcyMDIyLTA1LTAxJyksCisgICBQQVJUSVRJT04gc2FsZXNf ZmViMjAyMiBGT1IgVkFMVUVTIEZST00gKCcyMDIyLTAyLTAxJykgVE8gKCcyMDIyLTAzLTAx JyksCisgICBQQVJUSVRJT04gc2FsZXNfb3RoZXJzIERFRkFVTFQpOworCitJTlNFUlQgSU5U TyBzYWxlc19yYW5nZSBWQUxVRVMgKDE0LCAnU21pdGgnLCAgICA1MTAsICAnMjAyMi0wNS0w NCcpOworCitTRUxFQ1QgKiBGUk9NIHNhbGVzX3JhbmdlOworU0VMRUNUICogRlJPTSBzYWxl c19qYW4yMDIyOworU0VMRUNUICogRlJPTSBzYWxlc19mZWIyMDIyOworU0VMRUNUICogRlJP TSBzYWxlc19hcHIyMDIyOworU0VMRUNUICogRlJPTSBzYWxlc19vdGhlcnM7CisKK0RST1Ag VEFCTEUgc2FsZXNfcmFuZ2U7CisKKy0tCitEUk9QIFNDSEVNQSBwYXJ0aXRpb25fc3BsaXRf c2NoZW1hOwotLSAKMi4zMS4wLndpbmRvd3MuMQoK --------------8m7fmgIa9q79cxDV08lh7em9--