From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f104.i.mail.ru (f104.i.mail.ru [94.100.186.231]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 1D19F469719 for ; Tue, 3 Mar 2020 17:58:47 +0300 (MSK) From: =?UTF-8?B?TWFyaWEgS2hheWRpY2g=?= MIME-Version: 1.0 Date: Tue, 03 Mar 2020 17:58:44 +0300 Reply-To: =?UTF-8?B?TWFyaWEgS2hheWRpY2g=?= Message-ID: <1583247523.779268042@f104.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--eBc97489f5F3Ae8A5A86Cc01De9104051583247523" In-Reply-To: <20200217100040.k6uzft73aqoa7djn@tkn_work_nb> References: <1581360313.873049294@f221.i.mail.ru> <20200217074052.GA15384@atlas> <20200217100040.k6uzft73aqoa7djn@tkn_work_nb> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH=5D_libev=3A_update_to_vers?= =?utf-8?q?ion_4=2E32?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?QWxleGFuZGVyIFR1cmVua28=?= Cc: =?UTF-8?B?dGFyYW50b29sLXBhdGNoZXM=?= , =?UTF-8?B?VmxhZGlzbGF2IFNocGlsZXZveQ==?= ----ALT--eBc97489f5F3Ae8A5A86Cc01De9104051583247523 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 Cj5+IFdlIHNob3VsZCB1cGRhdGUgbGliZXYgcHJvcGVybHkuCsKgCkl0IGRvZXMgc2VlbSByZWFz b25hYmxlLsKgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZXJlIHdhcyBhIGJ1ZyBpbiBsaWJldiB0aGF0IGNh dXNlZCBzb21lIHN0cmVzcyB0ZXN0cyB0byBmYWlsCndpdGggYW4gZXJyb3IgaW5kaWNhdGluZyBs YWNrIG9mIGZkcyBvbiBtYWMuIFRoZSBmbGFnIHdoaWNoIHdhcwpzdXBwb3NlZCB0byBmaXggdGhl IGlzc3VlIChEQVJXSU5fVU5MSU1JVEVEX1NFTEVDVCkgd2FzIGRlZmluZWQKdG9vIGxhdGUgaW4g ZWFybGllciB2ZXJzaW9ucyBvZiBsaWJldi4KCk1vcmUgcHJlY2lzZWx5LCBpdCB3YXMgZGVmaW5l ZCBhZnRlciBpbmNsdWRpbmcgdGltZS5oIHdoaWNoIGluCml0cyB0dXJuIGhhZCB0aGlzIGxpbmU6 CgppbmNsdWRlIDxzeXMvX3NlbGVjdC5oPiDCoCDCoC8qIHNlbGVjdCgpIHByb3RvdHlwZSAqLwoK QW5kIDxzeXMvX3NlbGVjdC5oPiBoYWQgdGhpczoKaWYgZGVmaW5lZChfREFSV0lOX0NfU09VUkNF KSB8fCBkZWZpbmVkKF9EQVJXSU5fVU5MSU1JVEVEX1NFTEVDVCkKwqAgwqAgwqAgwqAgX19EQVJX SU5fRVhUU05fQyhzZWxlY3QpCgpTbyB1bmxpbWl0ZWQgc2VsZWN0IGZsYWcgZGlkIG5vdCBkbyB0 aGUgdHJpY2sgYXMgaXQgd2FzIHN1cHBvc2VkIHRvLgpJdCB3YXMgZml4ZWQgaW4gNC4yNSBhbG9u ZyB3aXRoIG90aGVyIGNoYW5nZXMuCsKgCkNsb3NlcyAjMzg2NwpDbG9zZXMgIzQ2NzMKLS0tCklz c3VlczoKaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzM4Njcg wqAKaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVzLzQ2NzMgwqAK QnJhbmNoOgpodHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9jb21wYXJlL2Vs amFzaG0vZ2gtMzg2Ny1saWJldi11cGRhdGUgwqAKwqAKwqBzcmMvbGliL2NvcmUvZmliZXIuYyDC oCDCoCDCoCDCoCDCoCDCoHwgwqAgwqA0ICstCsKgdGhpcmRfcGFydHkvbGliZXYvQ1ZTL0VudHJp ZXMgwqAgfCDCoCA2MiArLQrCoHRoaXJkX3BhcnR5L2xpYmV2L0NoYW5nZXMgwqAgwqAgwqAgfCDC oDEwMSArKysKwqB0aGlyZF9wYXJ0eS9saWJldi9NYWtlZmlsZS5hbSDCoCB8IMKgIMKgMyArLQrC oHRoaXJkX3BhcnR5L2xpYmV2L1JFQURNRSDCoCDCoCDCoCDCoHwgwqAgwqAzICstCsKgdGhpcmRf cGFydHkvbGliZXYvU3ltYm9scy5ldiDCoCDCoHwgwqAgwqAyICstCsKgdGhpcmRfcGFydHkvbGli ZXYvY29uZmlndXJlLmFjIMKgfCDCoCDCoDYgKy0KwqB0aGlyZF9wYXJ0eS9saWJldi9ldisrLmgg wqAgwqAgwqAgwqB8IMKgMjIwICsrKy0tLQrCoHRoaXJkX3BhcnR5L2xpYmV2L2V2LjMgwqAgwqAg wqAgwqAgwqB8IMKgMzczICsrKysrKystLS0KwqB0aGlyZF9wYXJ0eS9saWJldi9ldi5jIMKgIMKg IMKgIMKgIMKgfCAxMTMxICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KwqB0aGlyZF9w YXJ0eS9saWJldi9ldi5oIMKgIMKgIMKgIMKgIMKgfCDCoDIyNSArKystLS0KwqB0aGlyZF9wYXJ0 eS9saWJldi9ldi5wb2QgwqAgwqAgwqAgwqB8IMKgMzE2ICsrKysrKystLQrCoHRoaXJkX3BhcnR5 L2xpYmV2L2V2X2Vwb2xsLmMgwqAgwqB8IMKgIDY5ICstCsKgdGhpcmRfcGFydHkvbGliZXYvZXZf aW91cmluZy5jIMKgfCDCoDY5NCArKysrKysrKysrKysrKysrKysrCsKgdGhpcmRfcGFydHkvbGli ZXYvZXZfa3F1ZXVlLmMgwqAgfCDCoCAyNCArLQrCoHRoaXJkX3BhcnR5L2xpYmV2L2V2X2xpbnV4 YWlvLmMgfCDCoDYyMCArKysrKysrKysrKysrKysrKwrCoHRoaXJkX3BhcnR5L2xpYmV2L2V2X3Bv bGwuYyDCoCDCoCB8IMKgIDMzICstCsKgdGhpcmRfcGFydHkvbGliZXYvZXZfcG9ydC5jIMKgIMKg IHwgwqAgMTMgKy0KwqB0aGlyZF9wYXJ0eS9saWJldi9ldl9zZWxlY3QuYyDCoCB8IMKgIDEyICst CsKgdGhpcmRfcGFydHkvbGliZXYvZXZfdmFycy5oIMKgIMKgIHwgwqAgNTEgKy0KwqB0aGlyZF9w YXJ0eS9saWJldi9ldl93aW4zMi5jIMKgIMKgfCDCoCDCoDQgKy0KwqB0aGlyZF9wYXJ0eS9saWJl di9ldl93cmFwLmggwqAgwqAgfCDCoCA3MiArKwrCoHRoaXJkX3BhcnR5L2xpYmV2L2xpYmV2Lm00 IMKgIMKgIMKgfCDCoCDCoDcgKy0KwqB0aGlyZF9wYXJ0eS9saWJldi91cGRhdGVfZXZfYyDCoCB8 IMKgIMKgMSArCsKgMjQgZmlsZXMgY2hhbmdlZCwgMzIyMiBpbnNlcnRpb25zKCspLCA4MjQgZGVs ZXRpb25zKC0pCsKgY3JlYXRlIG1vZGUgMTAwNjQ0IHRoaXJkX3BhcnR5L2xpYmV2L2V2X2lvdXJp bmcuYwrCoGNyZWF0ZSBtb2RlIDEwMDY0NCB0aGlyZF9wYXJ0eS9saWJldi9ldl9saW51eGFpby5j CsKgCmRpZmYgLS1naXQgYS9zcmMvbGliL2NvcmUvZmliZXIuYyBiL3NyYy9saWIvY29yZS9maWJl ci5jCmluZGV4IGFkYTc5NzJjYi4uMmJmNmEzMzMzIDEwMDY0NAotLS0gYS9zcmMvbGliL2NvcmUv ZmliZXIuYworKysgYi9zcmMvbGliL2NvcmUvZmliZXIuYwpAQCAtMTQ2Myw3ICsxNDYzLDcgQEAg Y29yZF9zdGFydChzdHJ1Y3QgY29yZCAqY29yZCwgY29uc3QgY2hhciAqbmFtZSwgdm9pZCAqKCpm KSh2b2lkICopLCB2b2lkICphcmcpCsKgIMKgIMKgc3RydWN0IGNvcmRfdGhyZWFkX2FyZyBjdF9h cmcgPSB7IGNvcmQsIG5hbWUsIGYsIGFyZywgZmFsc2UsCsKgIMKgIMKgIMKgIMKgUFRIUkVBRF9N VVRFWF9JTklUSUFMSVpFUiwgUFRIUkVBRF9DT05EX0lOSVRJQUxJWkVSIH07CsKgIMKgIMKgdHRf cHRocmVhZF9tdXRleF9sb2NrKCZjdF9hcmcuc3RhcnRfbXV0ZXgpOwotIMKgIMKgY29yZC0+bG9v cCA9IGV2X2xvb3BfbmV3KEVWRkxBR19BVVRPIHwgRVZGTEFHX0FMTE9DRkQpOworIMKgIMKgY29y ZC0+bG9vcCA9IGV2X2xvb3BfbmV3KEVWRkxBR19BVVRPIHwgRVZGTEFHX05PVElNRVJGRCk7CsKg IMKgIMKgaWYgKGNvcmQtPmxvb3AgPT0gTlVMTCkgewrCoCDCoCDCoCDCoCDCoGRpYWdfc2V0KE91 dE9mTWVtb3J5LCAwLCAiZXZfbG9vcF9uZXciLCAiZXZfbG9vcCIpOwrCoCDCoCDCoCDCoCDCoGdv dG8gZW5kOwpAQCAtMTcwMSw3ICsxNzAxLDcgQEAgZmliZXJfaW5pdChpbnQgKCppbnZva2UpKGZp YmVyX2Z1bmMgZiwgdmFfbGlzdCBhcCkpCsKgIMKgIMKgc3RhY2tfZGlyZWN0aW9uID0gY2hlY2tf c3RhY2tfZGlyZWN0aW9uKF9fYnVpbHRpbl9mcmFtZV9hZGRyZXNzKDApKTsKwqAgwqAgwqBmaWJl cl9pbnZva2UgPSBpbnZva2U7CsKgIMKgIMKgbWFpbl90aHJlYWRfaWQgPSBwdGhyZWFkX3NlbGYo KTsKLSDCoCDCoG1haW5fY29yZC5sb29wID0gZXZfZGVmYXVsdF9sb29wKEVWRkxBR19BVVRPIHwg RVZGTEFHX0FMTE9DRkQpOworIMKgIMKgbWFpbl9jb3JkLmxvb3AgPSBldl9kZWZhdWx0X2xvb3Ao RVZGTEFHX0FVVE8gfCBFVkZMQUdfTk9USU1FUkZEKTsKwqAgwqAgwqBjb3JkX2NyZWF0ZSgmbWFp bl9jb3JkLCAibWFpbiIpOwrCoH0KwqAKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYmV2L0NW Uy9FbnRyaWVzIGIvdGhpcmRfcGFydHkvbGliZXYvQ1ZTL0VudHJpZXMKaW5kZXggM2M4NTQxMTkz Li40OTdkZjQyOTUgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2xpYmV2L0NWUy9FbnRyaWVzCisr KyBiL3RoaXJkX3BhcnR5L2xpYmV2L0NWUy9FbnRyaWVzCkBAIC0xLDMxICsxLDMzIEBACi0vTWFr ZWZpbGUuYW0vMS45L01vbiBBdWcgMTcgMTc6NDM6MTUgMjAxNS8vCi0vUkVBRE1FLzEuMjEvTW9u IEF1ZyAxNyAxNzo0MzoxNSAyMDE1Ly8KLS9SRUFETUUuZW1iZWQvMS4yOS9Nb24gQXVnIDE3IDE3 OjQzOjE1IDIwMTUvLwotL1N5bWJvbHMuZXYvMS4xNC9Nb24gQXVnIDE3IDE3OjQzOjE1IDIwMTUv LwotL1N5bWJvbHMuZXZlbnQvMS40L01vbiBBdWcgMTcgMTc6NDM6MTUgMjAxNS8vCi0vYXV0b2dl bi5zaC8xLjMvTW9uIEF1ZyAxNyAxNzo0MzoxNSAyMDE1Ly8KLS9ldl9wb2xsLmMvMS4zOS9Nb24g QXVnIDE3IDE3OjQzOjE1IDIwMTUvLwotL2V2X3BvcnQuYy8xLjI4L01vbiBBdWcgMTcgMTc6NDM6 MTUgMjAxNS8vCi0vZXZfc2VsZWN0LmMvMS41NS9Nb24gQXVnIDE3IDE3OjQzOjE1IDIwMTUvLwot L2V2ZW50LmMvMS41Mi9Nb24gQXVnIDE3IDE3OjQzOjE1IDIwMTUvLwotL2V2ZW50LmgvMS4yNi9N b24gQXVnIDE3IDE3OjQzOjE1IDIwMTUvLwotL2V2ZW50X2NvbXBhdC5oLzEuOC9Nb24gQXVnIDE3 IDE3OjQzOjE1IDIwMTUvLwotL2ltcG9ydF9saWJldmVudC8xLjI5L01vbiBBdWcgMTcgMTc6NDM6 MTUgMjAxNS8vCi0vdXBkYXRlX2V2X2MvMS4yL01vbiBBdWcgMTcgMTc6NDM6MTUgMjAxNS8vCi0v dXBkYXRlX2V2X3dyYXAvMS42L01vbiBBdWcgMTcgMTc6NDM6MTUgMjAxNS8vCi0vdXBkYXRlX3N5 bWJvbHMvMS4xL01vbiBBdWcgMTcgMTc6NDM6MTUgMjAxNS8vCi0vQ2hhbmdlcy8xLjMwNy9TdW4g T2N0IMKgNCAxMDoxMjoyOCAyMDE1Ly8KLS9MSUNFTlNFLzEuMTEvU3VuIE9jdCDCoDQgMTA6MTI6 MjggMjAxNS8vCi0vY29uZmlndXJlLmFjLzEuNDAvU3VuIE9jdCDCoDQgMTA6MTI6MjggMjAxNS8v Ci0vZXYrKy5oLzEuNjIvU3VuIE9jdCDCoDQgMTA6MTI6MjggMjAxNS8vCi0vZXYuMy8xLjEwMy9T dW4gT2N0IMKgNCAxMDoxMjoyOCAyMDE1Ly8KLS9ldi5jLzEuNDc3L1N1biBPY3QgwqA0IDEwOjEy OjI4IDIwMTUvLwotL2V2LmgvMS4xODMvU3VuIE9jdCDCoDQgMTA6MTI6MjggMjAxNS8vCi0vZXYu cG9kLzEuNDM1L1N1biBPY3QgwqA0IDEwOjEyOjI4IDIwMTUvLwotL2V2X2Vwb2xsLmMvMS42OC9T dW4gT2N0IMKgNCAxMDoxMjoyOCAyMDE1Ly8KLS9ldl9rcXVldWUuYy8xLjU1L1N1biBPY3QgwqA0 IDEwOjEyOjI4IDIwMTUvLwotL2V2X3ZhcnMuaC8xLjU4L1N1biBPY3QgwqA0IDEwOjEyOjI4IDIw MTUvLwotL2V2X3dpbjMyLmMvMS4xNi9TdW4gT2N0IMKgNCAxMDoxMjoyOCAyMDE1Ly8KLS9ldl93 cmFwLmgvMS4zOC9TdW4gT2N0IMKgNCAxMDoxMjoyOCAyMDE1Ly8KLS9saWJldi5tNC8xLjE2L1N1 biBPY3QgwqA0IDEwOjEyOjI4IDIwMTUvLworL0NoYW5nZXMvMS4zNjUvUmVzdWx0IG9mIG1lcmdl K1RodSBGZWIgMjcgMDc6MjY6NTAgMjAyMC8vCisvTElDRU5TRS8xLjExL1dlZCBGZWIgMTkgMTM6 MzA6MTcgMjAyMC8vCisvTWFrZWZpbGUuYW0vMS4xMS9UaHUgRmViIDI3IDA3OjI2OjUwIDIwMjAv LworL1JFQURNRS8xLjIyL1RodSBGZWIgMjcgMDc6MjY6NTAgMjAyMC8vCisvUkVBRE1FLmVtYmVk LzEuMjkvV2VkIEZlYiAxOSAxMzozMDoxNyAyMDIwLy8KKy9TeW1ib2xzLmV2LzEuMTUvVGh1IEZl YiAyNyAwNzoyNjo1MCAyMDIwLy8KKy9TeW1ib2xzLmV2ZW50LzEuNC9XZWQgRmViIDE5IDEzOjMw OjE3IDIwMjAvLworL2F1dG9nZW4uc2gvMS4zL1dlZCBGZWIgMTkgMTM6MzA6MTcgMjAyMC8vCisv Y29uZmlndXJlLmFjLzEuNDUvUmVzdWx0IG9mIG1lcmdlK1RodSBGZWIgMjcgMDc6MjY6NTAgMjAy MC8vCisvZXYrKy5oLzEuNjgvVGh1IEZlYiAyNyAwNzoyNjo1MCAyMDIwLy8KKy9ldi4zLzEuMTIw L1Jlc3VsdCBvZiBtZXJnZStUaHUgRmViIDI3IDA3OjI2OjUwIDIwMjAvLworL2V2LmMvMS41Mjgv UmVzdWx0IG9mIG1lcmdlK1RodSBGZWIgMjcgMDc6MjY6NTAgMjAyMC8vCisvZXYuaC8xLjIwNC9S ZXN1bHQgb2YgbWVyZ2UrVGh1IEZlYiAyNyAwNzoyNjo1MCAyMDIwLy8KKy9ldi5wb2QvMS40NjQv UmVzdWx0IG9mIG1lcmdlLy8KKy9ldl9lcG9sbC5jLzEuODIvUmVzdWx0IG9mIG1lcmdlK1RodSBG ZWIgMjcgMDc6MjY6NTAgMjAyMC8vCisvZXZfaW91cmluZy5jLzEuMjEvV2VkIEphbiAyMiAwMjoy MDo0NyAyMDIwLy8KKy9ldl9rcXVldWUuYy8xLjYxL1Jlc3VsdCBvZiBtZXJnZS8vCisvZXZfbGlu dXhhaW8uYy8xLjUzL0ZyaSBEZWMgMjcgMTY6MTI6NTUgMjAxOS8vCisvZXZfcG9sbC5jLzEuNDgv UmVzdWx0IG9mIG1lcmdlK1RodSBGZWIgMjcgMDc6MjY6NTAgMjAyMC8vCisvZXZfcG9ydC5jLzEu MzMvUmVzdWx0IG9mIG1lcmdlLy8KKy9ldl9zZWxlY3QuYy8xLjU4L1Jlc3VsdCBvZiBtZXJnZS8v CisvZXZfdmFycy5oLzEuNjcvVGh1IEZlYiAyNyAwNzoyNjo1MCAyMDIwLy8KKy9ldl93aW4zMi5j LzEuMjEvUmVzdWx0IG9mIG1lcmdlLy8KKy9ldl93cmFwLmgvMS40NC9UaHUgRmViIDI3IDA3OjI2 OjUwIDIwMjAvLworL2V2ZW50LmMvMS41Mi9XZWQgRmViIDE5IDEzOjMwOjE3IDIwMjAvLworL2V2 ZW50LmgvMS4yNi9XZWQgRmViIDE5IDEzOjMwOjE3IDIwMjAvLworL2V2ZW50X2NvbXBhdC5oLzEu OC9XZWQgRmViIDE5IDEzOjMwOjE3IDIwMjAvLworL2ltcG9ydF9saWJldmVudC8xLjI5L1dlZCBG ZWIgMTkgMTM6MzA6MTcgMjAyMC8vCisvbGliZXYubTQvMS4xOC9UaHUgRmViIDI3IDA3OjI2OjUw IDIwMjAvLworL3VwZGF0ZV9ldl9jLzEuMy9UaHUgRmViIDI3IDA3OjI2OjUwIDIwMjAvLworL3Vw ZGF0ZV9ldl93cmFwLzEuNi9XZWQgRmViIDE5IDEzOjMwOjE3IDIwMjAvLworL3VwZGF0ZV9zeW1i b2xzLzEuMS9XZWQgRmViIDE5IDEzOjMwOjE3IDIwMjAvLwrCoEQKZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L2xpYmV2L0NoYW5nZXMgYi90aGlyZF9wYXJ0eS9saWJldi9DaGFuZ2VzCmluZGV4IGJi MWU2ZDQzZC4uODBlNzBhZTZkIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9saWJldi9DaGFuZ2Vz CisrKyBiL3RoaXJkX3BhcnR5L2xpYmV2L0NoYW5nZXMKQEAgLTEsNSArMSwxMDYgQEAKwqBSZXZp c2lvbiBoaXN0b3J5IGZvciBsaWJldiwgYSBoaWdoLXBlcmZvcm1hbmNlIGFuZCBmdWxsLWZlYXR1 cmVkIGV2ZW50IGxvb3AuCsKgCitUT0RPOiBmb3IgbmV4dCBBQkkvQVBJIGNoYW5nZSwgY29uc2lk ZXIgbW92aW5nIEVWX19JT0ZEU1NFVCBpbnRvIGlvLT5mZCBpbnN0ZWFkIGFuZCBwcm92aWRlIGEg Z2V0dGVyLgorVE9ETzogZG9jdW1lbnQgRVZfVFNUQU1QX1QKKworNC4zMiAoRVYgb25seSkKKyDC oCDCoC0gdGhlIDQuMzEgdGltZXJmZCBjb2RlIHdyb25nbHkgY2hhbmdlcyB0aGUgcHJpb3JpdHkg b2YgdGhlIHNpZ25hbAorIMKgIMKgIMKgIMKgIMKgZmQgd2F0Y2hlciwgd2hpY2ggaXMgdXN1YWxs eSBoYXJtbGVzcyB1bmxlc3Mgc2lnbmFsIGZkcyBhcmUKKyDCoCDCoCDCoCDCoCDCoGFsc28gdXNl ZCAoZm91bmQgdmlhIGNwYW4gdGVzdGVyIHNlcnZpY2UpLgorIMKgIMKgIMKgIMKgLSB0aGUgZG9j dW1lbnRhdGlvbiB3cm9uZ2x5IGNsYWltZWQgdGhhdCB1c2VyIG1heSBtb2RpZnkgZmQgYW5kIGV2 ZW50cworIMKgIMKgIMKgIMKgIMKgbWVtYmVycyBpbiBpbyB3YXRjaGVycyB3aGVuIHRoZSB3YXRj aGVyIHdhcyBzdG9wcGVkCisgwqAgwqAgwqAgwqAgwqAoZm91bmQgYnkgYl9qb25hcykuCisgwqAg wqAgwqAgwqAtIG5ldyBldl9pb19tb2RpZnkgbXV0YXRvciB3aGljaCBjaGFuZ2VzIG9ubHkgdGhl IGV2ZW50cyBtZW1iZXIsCisgwqAgwqAgwqAgwqAgwqB3aGljaCBjYW4gYmUgZmFzdGVyLiBhbHNv IGFkZGVkIGV2Ojppbzo6c2V0IChpbnQgZXZlbnRzKSBtZXRob2QKKyDCoCDCoCDCoCDCoCDCoHRv IGV2KysuaC4KKyDCoCDCoCDCoCDCoC0gb2ZmaWNpYWxseSBhbGxvdyBhIHplcm8gZXZlbnRzIG1h c2sgZm9yIGlvIHdhdGNoZXJzLiB0aGlzIHNob3VsZAorIMKgIMKgIMKgIMKgIMKgd29yayB3aXRo IG9sZGVyIGxpYmV2IHZlcnNpb25zIGFzIHdlbGwgYnV0IHdhcyBub3Qgb2ZmaWNpYWxseQorIMKg IMKgIMKgIMKgIMKgYWxsb3dlZCBiZWZvcmUuCisgwqAgwqAgwqAgwqAtIGRvIG5vdCB3YWtlIHVw IGV2ZXJ5IG1pbnV0ZSB3aGVuIHRpbWVyZmQgaXMgdXNlZCB0byBkZXRlY3QgdGltZWp1bXBzLgor IMKgIMKgIMKgIMKgLSBkbyBub3Qgd2FrZSB1cCBldmVyeSBtaW51dGUgd2hlbiBwZXJpb2RpY3Mg YXJlIGRpc2FibGVkIGFuZCB3ZSBoYXZlCisgwqAgwqAgwqAgwqAgwqBhIG1vbm90b25pYyBjbG9j ay4KKyDCoCDCoCDCoCDCoC0gc3VwcG9ydCBhIGxvdCBtb3JlICJ1bmNvbW1vbiIgY29tcGlsZSB0 aW1lIGNvbmZpZ3VyYXRpb25zLAorIMKgIMKgIMKgIMKgIMKgc3VjaCBhcyBldl9lbWJlZCBlbmFi bGVkIGJ1dCBldl90aW1lciBkaXNhYmxlZC4KKyDCoCDCoCDCoCDCoC0gdXNlIGEgc3RhcnQvc3Rv cCB3cmFwcGVyIGNsYXNzIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uIGluCisgwqAgwqAgwqAg wqAgwqBldisrLmggYW5kIG1ha2UgaXQgbmVlZGxlc3NseSBtb3JlIGMrKy15LgorIMKgIMKgIMKg IMKgLSB0aGUgbGludXggYWlvIGJhY2tlbmQgaXMgbm8gbG9uZ2VyIGNvbXBpbGVkIGluIGJ5IGRl ZmF1bHQuCisgwqAgwqAgwqAgwqAtIHVwZGF0ZSB0byBsaWJlY2IgdmVyc2lvbiAweDAwMDEwMDA4 LgorCis0LjMxIEZyaSBEZWMgMjAgMjE6NTg6MjkgQ0VUIDIwMTkKKyDCoCDCoC0gaGFuZGxlIGJh Y2tlbmRzIHdpdGggbWluaW11bSB3YWl0IHRpbWUgYSBiaXQgYmV0dGVyIGJ5IG5vdAorIMKgIMKg IMKgIMKgIMKgd2FpdGluZyBpbiB0aGUgcHJlc2VuY2Ugb2YgYWxyZWFkeS1leHBpcmVkIHRpbWVy cworIMKgIMKgIMKgIMKgIMKgKGJlaGF2aW91ciByZXBvcnRlZCBieSBGZWxpcGUgR2FzcGVyKS4K KyDCoCDCoCDCoCDCoC0gbmV3IGZlYXR1cmU6IHVzZSB0aW1lcmZkIHRvIGRldGVjdCB0aW1lanVt cHMgcXVpY2tseSwKKyDCoCDCoCDCoCDCoCDCoGNhbiBiZSBkaXNhYmxlZCB3aXRoIHRoZSBuZXcg RVZGTEFHX05PVElNRVJGRCBsb29wIGZsYWcuCisgwqAgwqAgwqAgwqAtIGRvY3VtZW50IEVWX1VT RV9TSUdOQUxGRCBmZWF0dXJlIG1hY3JvLgorCis0LjMwIChFViBvbmx5KQorIMKgIMKgLSBjaGFu Z2Ugbm9uLWF1dG9jb25mIHRlc3QgZm9yIF9fa2VybmVsX3J3Zl90IGJ5IHRlc3RpbmcKKyDCoCDC oCDCoCDCoCDCoExJTlVYX1ZFUlNJT05fQ09ERSwgdGhlIG1vc3QgZGlyZWN0IHRlc3QgSSBjb3Vs ZCBmaW5kLgorIMKgIMKgIMKgIMKgLSBmaXggYSBidWcgaW4gdGhlIGlvX3VyaW5nIGJhY2tlbmQg dGhhdCBwb2xsZWQgdGhlIHdyb25nCisgwqAgwqAgwqAgwqAgwqBiYWNrZW5kIGZkLCBjYXVzaW5n IGl0IHRvIG5vdCB3b3JrIGluIG1hbnkgY2FzZXMuCisKKzQuMjkgKEVWIG9ubHkpCisgwqAgwqAt IGFkZCBpbyB1cmluZyBhdXRvY29uZiBhbmQgbm9uLWF1dG9jb25mIGRldGVjdGlvbi4KKyDCoCDC oCDCoCDCoC0gZGlzYWJsZSBpb191cmluZyB3aGVuIHNvbWUgaGVhZGVyIGZpbGVzIGFyZSB0b28g b2xkLgorCis0LjI4IChFViBvbmx5KQorIMKgIMKgLSBsaW51eGFpbyBiYWNrZW5kIHJlc3VsdGVk IGluIHJhbmRvbSBtZW1vcnkgY29ycnVwdGlvbgorIMKgIMKgIMKgIMKgIMKgd2hlbiBsb29wIGlz IGZvcmtlZC4KKyDCoCDCoCDCoCDCoC0gbGludXhhaW8gYmFja2VuZCBtaWdodCBoYXZlIHRyaWVk IHRvIGNhbmNlbCBhbiBpb2NiCisgwqAgwqAgwqAgwqAgwqBtdWx0aXBsZSB0aW1lcyAod2FzIHVu YWJsZSB0byB0cmlnZ2VyIHRoaXMpLgorIMKgIMKgIMKgIMKgLSBsaW51eGFpbyBiYWNrZW5kIG5v dyBlbXBsb3lzIGEgZ2VuZXJhdGlvbiBjb3VudGVyIHRvCisgwqAgwqAgwqAgwqAgwqBhdm9pZCBo YW5kbGluZyBzcHVyaW91cyBldmVudHMgZnJvbSBjYW5jZWxsZWQgcmVxdWVzdHMuCisgwqAgwqAt IGlvX2NhbmNlbCBjYW4gcmV0dXJuIEVJTlRSLCBkZWFsIHdpdGggaXQuIGFsc28sIGFzc3VtZQor IMKgIMKgIMKgIMKgIMKgaW9fc3VibWl0IGFsc28gcmV0dXJucyBFSU5UUi4KKyDCoCDCoCDCoCDC oC0gZml4IHNvbWUgb3RoZXIgbWlub3IgYnVncyBpbiBsaW51eGFpbyBiYWNrZW5kLgorIMKgIMKg IMKgIMKgLSBldl90c3RhbXAgdHlwZSBjYW4gbm93IGJlIG92ZXJyaWRlbiBieSBkZWZpbmluZyBF Vl9UU1RBTVBfVC4KKyDCoCDCoCDCoCDCoC0gY2xlYW51cDogcmVwbGFjZSBleHBlY3RfdHJ1ZS9m YWxzZSBhbmQgbm9pbmxpbmUgYnkgdGhlaXIKKyDCoCDCoCDCoCDCoCDCoGxpYmVjYiBjb3VudGVy cGFydHMuCisgwqAgwqAgwqAgwqAtIG1vdmUgc3lzY2FsbCBpbmZyYXN0cnVjdHVyZSBmcm9tIGV2 X2xpbnV4YWlvLmMgdG8gZXYuYy4KKyDCoCDCoCDCoCDCoC0gcHJlcGFyZSBpb191cmluZyBpbnRl Z3JhdGlvbi4KKyDCoCDCoCDCoCDCoC0gdHdlYWsgZXZfZmxvb3IuCisgwqAgwqAgwqAgwqAtIGVw b2xsLCBwb2xsLCB3aW4zMiBTbGVlcCBhbmQgb3RoZXIgcGxhY2VzIHRoYXQgdXNlIG1pbGxpc2Vj b25kCisgwqAgwqAgwqAgwqAgwqByZXNsdXRpb24gbm93IGFsbCB0cnkgdG8gcm91bmQgdXAgdGlt ZXMuCisgwqAgwqAgwqAgwqAtIHNvbGFyaXMgcG9ydCBiYWNrZW5kIGRpZG4ndCBjb21waWxlLgor IMKgIMKgIMKgIMKgLSBhYnN0cmFjdCB0aW1lIGNvbnN0YW50cyBpbnRvIHRoZWlyIG1hY3Jvcywg Zm9yIG1vcmUgZmxleGliaWxpdHkuCisKKzQuMjcgVGh1IEp1biAyNyAyMjo0Mzo0NCBDRVNUIDIw MTkKKyDCoCDCoC0gbGludXggYWlvIGJhY2tlbmQgYWxtb3N0IGNvbXBsZXRlbHkgcmV3cml0dGVu IHRvIHdvcmsgYXJvdW5kIGl0cworIMKgIMKgIMKgIMKgIMKgbGltaXRhdGlvbnMuCisgwqAgwqAg wqAgwqAtIGxpbnV4IGFpbyBiYWNrZW5kIG5vdyByZXF1aXJlcyBsaW51eCA0LjE5Ky4KKyDCoCDC oCDCoCDCoC0gZXBvbGwgYmFja2VuZCBub3cgbWFuZGF0b3J5IGZvciBsaW51eCBhaW8gYmFja2Vu ZC4KKyDCoCDCoCDCoCDCoC0gZmFpbCBhc3NlcnRpb25zIG1vcmUgYWdncmVzc2l2ZWx5IG9uIGlu dmFsaWQgZmQncyBkZXRlY3RlZAorIMKgIMKgIMKgIMKgIMKgaW4gdGhlIGV2ZW50IGxvb3AsIGRv IG5vdCBqdXN0IHNpbGVudGx5IGZkX2tpbGwgaW4gY2FzZSBvZgorIMKgIMKgIMKgIMKgIMKgdXNl ciBlcnJvci4KKyDCoCDCoCDCoCDCoC0gZXZfaW9fc3RhcnQvZXZfaW9fc3RvcCBub3cgdmVyaWZ5 IHRoZSB3YXRjaGVyIGZkIHVzaW5nCisgwqAgwqAgwqAgwqAgwqBhIHN5c2NhbGwgd2hlbiBFVl9W RVJJRlkgaXMgMiBvciBoaWdoZXIuCisKKzQuMjYgKEVWIG9ubHkpCisgwqAgwqAtIHVwZGF0ZSB0 byBsaWJlY2IgMHgwMDAxMDAwNi4KKyDCoCDCoC0gbmV3IGV4cGVyaW1lbnRhbCBsaW51eCBhaW8g YmFja2VuZCAobGludXggNC4xOCspLgorIMKgIMKgLSByZW1vdmVkIHJlZHVuZGFudCAwLXB0ciBj aGVjayBpbiBldl9vbmNlLgorIMKgIMKgIMKgIMKgLSB1cGRhdGVkL2V4dGVuZGVkIGV2X3NldF9h bGxvY2F0b3IgZG9jdW1lbnRhdGlvbi4KKyDCoCDCoCDCoCDCoC0gcmVwbGFjZWQgRU1QVFkyIG1h Y3JvIGJ5IGFycmF5X25lZWRzaXplX25vaW5pdC4KKyDCoCDCoCDCoCDCoC0gbWlub3IgY29kZSBj bGVhbnVwcy4KKyDCoCDCoCDCoCDCoC0gZXBvbGwgYmFja2VuZCBub3cgdXNlcyBlcG9sbF9jcmVh dGUxIGFsc28gYWZ0ZXIgZm9yay4KKworNC4yNSBGcmkgRGVjIDIxIDA3OjQ5OjIwIENFVCAyMDE4 CisgwqAgwqAgwqAgwqAtIElOQ09NUEFUSUJMRSBDSEFOR0U6IEVWX1RIUk9XIHdhcyByZW5hbWVk IHRvIEVWX05PRVhDRVBUCisgwqAgwqAgwqAgwqAgwqAoRVZfVEhST1cgc3RpbGwgcHJvdmlkZWQp IGFuZCBub3cgdXNlcyBub2V4Y2VwdCBvbiBDKysxMSBvciBuZXdlci4KKyDCoCDCoC0gbW92ZSB0 aGUgZGFyd2luIHNlbGVjdCB3b3JrYXJvdW5kIGhpZ2hlciBpbiBldi5jLCBhcyBuZXdlciB2ZXJz aW9ucyBvZgorIMKgIMKgIMKgIMKgIMKgZGFyd2luIG1hbmFnZWQgdG8gYnJlYWsgdGhlaXIgYnJv a2VuIHNlbGVjdCBldmVuIG1vcmUuCisgwqAgwqAtIEFORFJPSUQgPT4gX19BTkRST0lEX18gKHJl cG9ydGVkIGJ5IGVuaEBnb29nbGUuY29tKS4KKyDCoCDCoCDCoCDCoC0gZGlzYWJsZSBlcG9sbF9j cmVhdGUxIG9uIGFuZHJvaWQgYmVjYXVzZSBpdCBoYXMgYnJva2VuIGhlYWRlciBmaWxlcworIMKg IMKgIMKgIMKgIMKgYW5kIGdvb2dsZSBpcyB1bndpbGxpbmcgdG8gZml4IHRoZW0gKHJlcG9ydGVk IGJ5IGVuaEBnb29nbGUuY29tKS4KKyDCoCDCoCDCoCDCoC0gYXZvaWQgYSBtaW5vciBjb21waWxh dGlvbiB3YXJuaW5nIG9uIHdpbjMyLgorIMKgIMKgIMKgIMKgLSBjKys6IHJlbW92ZSBkZXByZWNh dGVkIGR5bmFtaWMgdGhyb3coKSBzcGVjaWZpY2F0aW9ucy4KKyDCoCDCoCDCoCDCoC0gYysrOiBp bXByb3ZlIHRoZSAodW5zdXBwb3J0ZWQpIGJhZF9sb29wIGV4Y2VwdGlvbiBjbGFzcy4KKyDCoCDC oCDCoCDCoC0gYmFja3BvcnQgcGVybCBldl9wZXJpb2RpYyBleGFtcGxlIHRvIEMsIHVudGVzdGVk LgorIMKgIMKgIMKgIMKgLSB1cGRhdGUgbGliZWNiLCBiaWdnZXRzIGNoYW5nZSBpcyB0byBpbmNs dWRlIGEgbWVtb3J5IGZlbmNlCisgwqAgwqAgwqAgwqAgwqBpbiBFQ0JfTUVNT1JZX0ZFTkNFX1JF TEVBU0Ugb24geDg2L2FtZDY0LgorIMKgIMKgIMKgIMKgLSBtaW5vciBhdXRvY29uZi9hdXRvbWFr ZSBtb2Rlcm5pc2F0aW9uLgorCsKgNC4yNCBXZWQgRGVjIDI4IDA1OjE5OjU1IENFVCAyMDE2CsKg IMKgIMKgLSBidW1wIHZlcnNpb24gdG8gNC4yNCwgYXMgdGhlIHJlbGVhc2UgdGFyYmFsbCBpbmV4 cGxpY2FibHkKwqAgwqAgwqAgwqAgwqAgwqBkaWRuJ3QgaGF2ZSB0aGUgcmlnaHQgdmVyc2lvbiBp biBldi5oLCBldmVuIHRob3VnaCB0aGUgY3ZzLXRhZ2dlZApkaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvbGliZXYvTWFrZWZpbGUuYW0gYi90aGlyZF9wYXJ0eS9saWJldi9NYWtlZmlsZS5hbQppbmRl eCAwNTkzMDViYzMuLjI4MTQ2MjJkOCAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvbGliZXYvTWFr ZWZpbGUuYW0KKysrIGIvdGhpcmRfcGFydHkvbGliZXYvTWFrZWZpbGUuYW0KQEAgLTQsNyArNCw4 IEBAIFZFUlNJT05fSU5GTyA9IDQ6MDowCsKgCsKgRVhUUkFfRElTVCA9IExJQ0VOU0UgQ2hhbmdl cyBsaWJldi5tNCBhdXRvZ2VuLnNoIFwKwqAgwqAgwqAgwqAgwqAgZXZfdmFycy5oIGV2X3dyYXAu aCBcCi0gwqAgwqAgwqAgwqAgZXZfZXBvbGwuYyBldl9zZWxlY3QuYyBldl9wb2xsLmMgZXZfa3F1 ZXVlLmMgZXZfcG9ydC5jIGV2X3dpbjMyLmMgXAorIMKgIMKgIMKgIMKgIGV2X2Vwb2xsLmMgZXZf c2VsZWN0LmMgZXZfcG9sbC5jIGV2X2txdWV1ZS5jIGV2X3BvcnQuYyBldl9saW51eGFpby5jIGV2 X2lvdXJpbmcuYyBcCisgwqAgwqAgwqAgwqAgwqAgwqAgZXZfd2luMzIuYyBcCsKgIMKgIMKgIMKg IMKgIGV2LjMgZXYucG9kIFN5bWJvbHMuZXYgU3ltYm9scy5ldmVudArCoArCoG1hbl9NQU5TID0g ZXYuMwpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvbGliZXYvUkVBRE1FIGIvdGhpcmRfcGFydHkv bGliZXYvUkVBRE1FCmluZGV4IDMxZjYxOTM4Ny4uZmNhNWZkZjFhIDEwMDY0NAotLS0gYS90aGly ZF9wYXJ0eS9saWJldi9SRUFETUUKKysrIGIvdGhpcmRfcGFydHkvbGliZXYvUkVBRE1FCkBAIC0x OCw3ICsxOCw4IEBAIEFCT1VUCsKgIMKgIC0gZXh0ZW5zaXZlIGFuZCBkZXRhaWxlZCwgcmVhZGFi bGUgZG9jdW1lbnRhdGlvbiAobm90IGRveHlnZW4gZ2FyYmFnZSkuCsKgIMKgIC0gZnVsbHkgc3Vw cG9ydHMgZm9yaywgY2FuIGRldGVjdCBmb3JrIGluIHZhcmlvdXMgd2F5cyBhbmQgYXV0b21hdGlj YWxseQrCoCDCoCDCoCByZS1hcm1zIGtlcm5lbCBtZWNoYW5pc21zIHRoYXQgZG8gbm90IHN1cHBv cnQgZm9yay4KLSDCoCAtIGhpZ2hseSBvcHRpbWlzZWQgc2VsZWN0LCBwb2xsLCBlcG9sbCwga3F1 ZXVlIGFuZCBldmVudCBwb3J0cyBiYWNrZW5kcy4KKyDCoCAtIGhpZ2hseSBvcHRpbWlzZWQgc2Vs ZWN0LCBwb2xsLCBsaW51eCBlcG9sbCwgbGludXggYWlvLCBic2Qga3F1ZXVlCisgwqAgwqAgYW5k IHNvbGFyaXMgZXZlbnQgcG9ydHMgYmFja2VuZHMuCsKgIMKgIC0gZmlsZXN5c3RlbSBvYmplY3Qg KHBhdGgpIHdhdGNoaW5nICh3aXRoIG9wdGlvbmFsIGxpbnV4IGlub3RpZnkgc3VwcG9ydCkuCsKg IMKgIC0gd2FsbGNsb2NrLWJhc2VkIHRpbWVzICh1c2luZyBhYnNvbHV0ZSB0aW1lLCBjcm9uLWxp a2UpLgrCoCDCoCAtIHJlbGF0aXZlIHRpbWVycy90aW1lb3V0cyAoaGFuZGxlIHRpbWUganVtcHMp LgpkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvbGliZXYvU3ltYm9scy5ldiBiL3RoaXJkX3BhcnR5 L2xpYmV2L1N5bWJvbHMuZXYKaW5kZXggN2EyOWE3NWNiLi5mZTE2OWZhMDYgMTAwNjQ0Ci0tLSBh L3RoaXJkX3BhcnR5L2xpYmV2L1N5bWJvbHMuZXYKKysrIGIvdGhpcmRfcGFydHkvbGliZXYvU3lt Ym9scy5ldgpAQCAtMTMsMTAgKzEzLDEwIEBAIGV2X2NsZWFyX3BlbmRpbmcKwqBldl9kZWZhdWx0 X2xvb3AKwqBldl9kZWZhdWx0X2xvb3BfcHRyCsKgZXZfZGVwdGgKK2V2X2VtYmVkZGFibGVfYmFj a2VuZHMKwqBldl9lbWJlZF9zdGFydArCoGV2X2VtYmVkX3N0b3AKwqBldl9lbWJlZF9zd2VlcAot ZXZfZW1iZWRkYWJsZV9iYWNrZW5kcwrCoGV2X2ZlZWRfZXZlbnQKwqBldl9mZWVkX2ZkX2V2ZW50 CsKgZXZfZmVlZF9zaWduYWwKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYmV2L2NvbmZpZ3Vy ZS5hYyBiL3RoaXJkX3BhcnR5L2xpYmV2L2NvbmZpZ3VyZS5hYwppbmRleCAyNTkwZjhmZDYuLmZi OTMxMWZkNCAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvbGliZXYvY29uZmlndXJlLmFjCisrKyBi L3RoaXJkX3BhcnR5L2xpYmV2L2NvbmZpZ3VyZS5hYwpAQCAtMSwxMSArMSwxMSBAQAotQUNfSU5J VAorZG5sIGFsc28gdXBkYXRlIGV2LmghCitBQ19JTklUKFtsaWJldl0sIFs0LjMxXSkKwqAKwqBv cmlnX0NGTEFHUz0iJENGTEFHUyIKwqAKwqBBQ19DT05GSUdfU1JDRElSKFtldl9lcG9sbC5jXSkK K0FNX0lOSVRfQVVUT01BS0UKwqAKLWRubCBhbHNvIHVwZGF0ZSBldi5oIQotQU1fSU5JVF9BVVRP TUFLRShsaWJldiw0LjI0KQrCoEFDX0NPTkZJR19IRUFERVJTKFtjb25maWcuaF0pCsKgQU1fTUFJ TlRBSU5FUl9NT0RFCsKgCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJldi9ldisrLmggYi90 aGlyZF9wYXJ0eS9saWJldi9ldisrLmgKaW5kZXggNGYwYTM2YWIwLi4yMmRmY2Y1OGQgMTAwNjQ0 Ci0tLSBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2KysuaAorKysgYi90aGlyZF9wYXJ0eS9saWJldi9l disrLmgKQEAgLTEsNyArMSw3IEBACsKgLyoKwqAgKiBsaWJldiBzaW1wbGUgQysrIHdyYXBwZXIg Y2xhc3NlcwrCoCAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDcsMjAwOCwyMDEwIE1hcmMgQWxleGFu ZGVyIExlaG1hbm4gPGxpYmV2QHNjaG1vcnAuZGU+CisgKiBDb3B5cmlnaHQgKGMpIDIwMDcsMjAw OCwyMDEwLDIwMTgsMjAyMCBNYXJjIEFsZXhhbmRlciBMZWhtYW5uIDxsaWJldkBzY2htb3JwLmRl PgrCoCAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCsKgICoKwqAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2Et CkBAIC0xMTMsMTMgKzExMywxMyBAQCBuYW1lc3BhY2UgZXYgewrCoArCoCDCoHN0cnVjdCBiYWRf bG9vcArCoCNpZiBFVl9VU0VfU1RERVhDRVBUCi0gwqA6IHN0ZDo6cnVudGltZV9lcnJvcgorIMKg OiBzdGQ6OmV4Y2VwdGlvbgrCoCNlbmRpZgrCoCDCoHsKwqAjaWYgRVZfVVNFX1NUREVYQ0VQVAot IMKgIMKgYmFkX2xvb3AgKCkKLSDCoCDCoDogc3RkOjpydW50aW1lX2Vycm9yICgibGliZXYgZXZl bnQgbG9vcCBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQsIGJhZCB2YWx1ZSBvZiBMSUJFVl9GTEFHUz8i KQorIMKgIMKgY29uc3QgY2hhciAqd2hhdCAoKSBjb25zdCBFVl9OT0VYQ0VQVArCoCDCoCDCoHsK KyDCoCDCoCDCoHJldHVybiAibGliZXYgZXZlbnQgbG9vcCBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQs IGJhZCB2YWx1ZSBvZiBMSUJFVl9GTEFHUz8iOwrCoCDCoCDCoH0KwqAjZW5kaWYKwqAgwqB9OwpA QCAtMTQyLDE0ICsxNDIsMTQgQEAgbmFtZXNwYWNlIGV2IHsKwqAKwqAgwqBzdHJ1Y3QgbG9vcF9y ZWYKwqAgwqB7Ci0gwqAgwqBsb29wX3JlZiAoRVZfUCkgdGhyb3cgKCkKKyDCoCDCoGxvb3BfcmVm IChFVl9QKSBFVl9OT0VYQ0VQVArCoCNpZiBFVl9NVUxUSVBMSUNJVFkKwqAgwqAgwqA6IEVWX0FY IChFVl9BKQrCoCNlbmRpZgrCoCDCoCDCoHsKwqAgwqAgwqB9CsKgCi0gwqAgwqBib29sIG9wZXJh dG9yID09IChjb25zdCBsb29wX3JlZiAmb3RoZXIpIGNvbnN0IHRocm93ICgpCisgwqAgwqBib29s IG9wZXJhdG9yID09IChjb25zdCBsb29wX3JlZiAmb3RoZXIpIGNvbnN0IEVWX05PRVhDRVBUCsKg IMKgIMKgewrCoCNpZiBFVl9NVUxUSVBMSUNJVFkKwqAgwqAgwqAgwqByZXR1cm4gRVZfQVggPT0g b3RoZXIuRVZfQVg7CkBAIC0xNTgsNyArMTU4LDcgQEAgbmFtZXNwYWNlIGV2IHsKwqAjZW5kaWYK wqAgwqAgwqB9CsKgCi0gwqAgwqBib29sIG9wZXJhdG9yICE9IChjb25zdCBsb29wX3JlZiAmb3Ro ZXIpIGNvbnN0IHRocm93ICgpCisgwqAgwqBib29sIG9wZXJhdG9yICE9IChjb25zdCBsb29wX3Jl ZiAmb3RoZXIpIGNvbnN0IEVWX05PRVhDRVBUCsKgIMKgIMKgewrCoCNpZiBFVl9NVUxUSVBMSUNJ VFkKwqAgwqAgwqAgwqByZXR1cm4gISAoKnRoaXMgPT0gb3RoZXIpOwpAQCAtMTY4LDI3ICsxNjgs MjcgQEAgbmFtZXNwYWNlIGV2IHsKwqAgwqAgwqB9CsKgCsKgI2lmIEVWX01VTFRJUExJQ0lUWQot IMKgIMKgYm9vbCBvcGVyYXRvciA9PSAoY29uc3QgRVZfUCkgY29uc3QgdGhyb3cgKCkKKyDCoCDC oGJvb2wgb3BlcmF0b3IgPT0gKGNvbnN0IEVWX1ApIGNvbnN0IEVWX05PRVhDRVBUCsKgIMKgIMKg ewrCoCDCoCDCoCDCoHJldHVybiB0aGlzLT5FVl9BWCA9PSBFVl9BOwrCoCDCoCDCoH0KwqAKLSDC oCDCoGJvb2wgb3BlcmF0b3IgIT0gKGNvbnN0IEVWX1ApIGNvbnN0IHRocm93ICgpCisgwqAgwqBi b29sIG9wZXJhdG9yICE9IChjb25zdCBFVl9QKSBjb25zdCBFVl9OT0VYQ0VQVArCoCDCoCDCoHsK LSDCoCDCoCDCoHJldHVybiAoKnRoaXMgPT0gRVZfQSk7CisgwqAgwqAgwqByZXR1cm4gISAoKnRo aXMgPT0gRVZfQSk7CsKgIMKgIMKgfQrCoAotIMKgIMKgb3BlcmF0b3Igc3RydWN0IGV2X2xvb3Ag KiAoKSBjb25zdCB0aHJvdyAoKQorIMKgIMKgb3BlcmF0b3Igc3RydWN0IGV2X2xvb3AgKiAoKSBj b25zdCBFVl9OT0VYQ0VQVArCoCDCoCDCoHsKwqAgwqAgwqAgwqByZXR1cm4gRVZfQVg7CsKgIMKg IMKgfQrCoAotIMKgIMKgb3BlcmF0b3IgY29uc3Qgc3RydWN0IGV2X2xvb3AgKiAoKSBjb25zdCB0 aHJvdyAoKQorIMKgIMKgb3BlcmF0b3IgY29uc3Qgc3RydWN0IGV2X2xvb3AgKiAoKSBjb25zdCBF Vl9OT0VYQ0VQVArCoCDCoCDCoHsKwqAgwqAgwqAgwqByZXR1cm4gRVZfQVg7CsKgIMKgIMKgfQrC oAotIMKgIMKgYm9vbCBpc19kZWZhdWx0ICgpIGNvbnN0IHRocm93ICgpCisgwqAgwqBib29sIGlz X2RlZmF1bHQgKCkgY29uc3QgRVZfTk9FWENFUFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgcmV0dXJu IEVWX0FYID09IGV2X2RlZmF1bHRfbG9vcCAoMCk7CsKgIMKgIMKgfQpAQCAtMjAwLDcgKzIwMCw3 IEBAIG5hbWVzcGFjZSBldiB7CsKgIMKgIMKgIMKgZXZfcnVuIChFVl9BWF8gZmxhZ3MpOwrCoCDC oCDCoH0KwqAKLSDCoCDCoHZvaWQgdW5sb29wIChob3dfdCBob3cgPSBPTkUpIHRocm93ICgpCisg wqAgwqB2b2lkIHVubG9vcCAoaG93X3QgaG93ID0gT05FKSBFVl9OT0VYQ0VQVArCoCDCoCDCoHsK wqAgwqAgwqAgwqBldl9icmVhayAoRVZfQVhfIGhvdyk7CsKgIMKgIMKgfQpAQCAtMjExLDc0ICsy MTEsNzQgQEAgbmFtZXNwYWNlIGV2IHsKwqAgwqAgwqAgwqBldl9ydW4gKEVWX0FYXyBmbGFncyk7 CsKgIMKgIMKgfQrCoAotIMKgIMKgdm9pZCBicmVha19sb29wIChob3dfdCBob3cgPSBPTkUpIHRo cm93ICgpCisgwqAgwqB2b2lkIGJyZWFrX2xvb3AgKGhvd190IGhvdyA9IE9ORSkgRVZfTk9FWENF UFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgZXZfYnJlYWsgKEVWX0FYXyBob3cpOwrCoCDCoCDCoH0K wqAKLSDCoCDCoHZvaWQgcG9zdF9mb3JrICgpIHRocm93ICgpCisgwqAgwqB2b2lkIHBvc3RfZm9y ayAoKSBFVl9OT0VYQ0VQVArCoCDCoCDCoHsKwqAgwqAgwqAgwqBldl9sb29wX2ZvcmsgKEVWX0FY KTsKwqAgwqAgwqB9CsKgCi0gwqAgwqB1bnNpZ25lZCBpbnQgYmFja2VuZCAoKSBjb25zdCB0aHJv dyAoKQorIMKgIMKgdW5zaWduZWQgaW50IGJhY2tlbmQgKCkgY29uc3QgRVZfTk9FWENFUFQKwqAg wqAgwqB7CsKgIMKgIMKgIMKgcmV0dXJuIGV2X2JhY2tlbmQgKEVWX0FYKTsKwqAgwqAgwqB9CsKg Ci0gwqAgwqB0c3RhbXAgbm93ICgpIGNvbnN0IHRocm93ICgpCisgwqAgwqB0c3RhbXAgbm93ICgp IGNvbnN0IEVWX05PRVhDRVBUCsKgIMKgIMKgewrCoCDCoCDCoCDCoHJldHVybiBldl9ub3cgKEVW X0FYKTsKwqAgwqAgwqB9CsKgCi0gwqAgwqB2b2lkIHJlZiAoKSB0aHJvdyAoKQorIMKgIMKgdm9p ZCByZWYgKCkgRVZfTk9FWENFUFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgZXZfcmVmIChFVl9BWCk7 CsKgIMKgIMKgfQrCoAotIMKgIMKgdm9pZCB1bnJlZiAoKSB0aHJvdyAoKQorIMKgIMKgdm9pZCB1 bnJlZiAoKSBFVl9OT0VYQ0VQVArCoCDCoCDCoHsKwqAgwqAgwqAgwqBldl91bnJlZiAoRVZfQVgp OwrCoCDCoCDCoH0KwqAKwqAjaWYgRVZfRkVBVFVSRV9BUEkKLSDCoCDCoHVuc2lnbmVkIGludCBp dGVyYXRpb24gKCkgY29uc3QgdGhyb3cgKCkKKyDCoCDCoHVuc2lnbmVkIGludCBpdGVyYXRpb24g KCkgY29uc3QgRVZfTk9FWENFUFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgcmV0dXJuIGV2X2l0ZXJh dGlvbiAoRVZfQVgpOwrCoCDCoCDCoH0KwqAKLSDCoCDCoHVuc2lnbmVkIGludCBkZXB0aCAoKSBj b25zdCB0aHJvdyAoKQorIMKgIMKgdW5zaWduZWQgaW50IGRlcHRoICgpIGNvbnN0IEVWX05PRVhD RVBUCsKgIMKgIMKgewrCoCDCoCDCoCDCoHJldHVybiBldl9kZXB0aCAoRVZfQVgpOwrCoCDCoCDC oH0KwqAKLSDCoCDCoHZvaWQgc2V0X2lvX2NvbGxlY3RfaW50ZXJ2YWwgKHRzdGFtcCBpbnRlcnZh bCkgdGhyb3cgKCkKKyDCoCDCoHZvaWQgc2V0X2lvX2NvbGxlY3RfaW50ZXJ2YWwgKHRzdGFtcCBp bnRlcnZhbCkgRVZfTk9FWENFUFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgZXZfc2V0X2lvX2NvbGxl Y3RfaW50ZXJ2YWwgKEVWX0FYXyBpbnRlcnZhbCk7CsKgIMKgIMKgfQrCoAotIMKgIMKgdm9pZCBz ZXRfdGltZW91dF9jb2xsZWN0X2ludGVydmFsICh0c3RhbXAgaW50ZXJ2YWwpIHRocm93ICgpCisg wqAgwqB2b2lkIHNldF90aW1lb3V0X2NvbGxlY3RfaW50ZXJ2YWwgKHRzdGFtcCBpbnRlcnZhbCkg RVZfTk9FWENFUFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgZXZfc2V0X3RpbWVvdXRfY29sbGVjdF9p bnRlcnZhbCAoRVZfQVhfIGludGVydmFsKTsKwqAgwqAgwqB9CsKgI2VuZGlmCsKgCsKgIMKgIMKg Ly8gZnVuY3Rpb24gY2FsbGJhY2sKLSDCoCDCoHZvaWQgb25jZSAoaW50IGZkLCBpbnQgZXZlbnRz LCB0c3RhbXAgdGltZW91dCwgdm9pZCAoKmNiKShpbnQsIHZvaWQgKiksIHZvaWQgKmFyZyA9IDAp IHRocm93ICgpCisgwqAgwqB2b2lkIG9uY2UgKGludCBmZCwgaW50IGV2ZW50cywgdHN0YW1wIHRp bWVvdXQsIHZvaWQgKCpjYikoaW50LCB2b2lkICopLCB2b2lkICphcmcgPSAwKSBFVl9OT0VYQ0VQ VArCoCDCoCDCoHsKwqAgwqAgwqAgwqBldl9vbmNlIChFVl9BWF8gZmQsIGV2ZW50cywgdGltZW91 dCwgY2IsIGFyZyk7CsKgIMKgIMKgfQrCoArCoCDCoCDCoC8vIG1ldGhvZCBjYWxsYmFjawrCoCDC oCDCoHRlbXBsYXRlPGNsYXNzIEssIHZvaWQgKEs6OiptZXRob2QpKGludCk+Ci0gwqAgwqB2b2lk IG9uY2UgKGludCBmZCwgaW50IGV2ZW50cywgdHN0YW1wIHRpbWVvdXQsIEsgKm9iamVjdCkgdGhy b3cgKCkKKyDCoCDCoHZvaWQgb25jZSAoaW50IGZkLCBpbnQgZXZlbnRzLCB0c3RhbXAgdGltZW91 dCwgSyAqb2JqZWN0KSBFVl9OT0VYQ0VQVArCoCDCoCDCoHsKwqAgwqAgwqAgwqBvbmNlIChmZCwg ZXZlbnRzLCB0aW1lb3V0LCBtZXRob2RfdGh1bms8SywgbWV0aG9kPiwgb2JqZWN0KTsKwqAgwqAg wqB9CsKgCsKgIMKgIMKgLy8gZGVmYXVsdCBtZXRob2QgPT0gb3BlcmF0b3IgKCkKwqAgwqAgwqB0 ZW1wbGF0ZTxjbGFzcyBLPgotIMKgIMKgdm9pZCBvbmNlIChpbnQgZmQsIGludCBldmVudHMsIHRz dGFtcCB0aW1lb3V0LCBLICpvYmplY3QpIHRocm93ICgpCisgwqAgwqB2b2lkIG9uY2UgKGludCBm ZCwgaW50IGV2ZW50cywgdHN0YW1wIHRpbWVvdXQsIEsgKm9iamVjdCkgRVZfTk9FWENFUFQKwqAg wqAgwqB7CsKgIMKgIMKgIMKgb25jZSAoZmQsIGV2ZW50cywgdGltZW91dCwgbWV0aG9kX3RodW5r PEssICZLOjpvcGVyYXRvciAoKT4sIG9iamVjdCk7CsKgIMKgIMKgfQpAQCAtMjkyLDcgKzI5Miw3 IEBAIG5hbWVzcGFjZSBldiB7CsKgCsKgIMKgIMKgLy8gbm8tYXJndW1lbnQgbWV0aG9kIGNhbGxi YWNrCsKgIMKgIMKgdGVtcGxhdGU8Y2xhc3MgSywgdm9pZCAoSzo6Km1ldGhvZCkoKT4KLSDCoCDC oHZvaWQgb25jZSAoaW50IGZkLCBpbnQgZXZlbnRzLCB0c3RhbXAgdGltZW91dCwgSyAqb2JqZWN0 KSB0aHJvdyAoKQorIMKgIMKgdm9pZCBvbmNlIChpbnQgZmQsIGludCBldmVudHMsIHRzdGFtcCB0 aW1lb3V0LCBLICpvYmplY3QpIEVWX05PRVhDRVBUCsKgIMKgIMKgewrCoCDCoCDCoCDCoG9uY2Ug KGZkLCBldmVudHMsIHRpbWVvdXQsIG1ldGhvZF9ub2FyZ3NfdGh1bms8SywgbWV0aG9kPiwgb2Jq ZWN0KTsKwqAgwqAgwqB9CkBAIC0zMDYsNyArMzA2LDcgQEAgbmFtZXNwYWNlIGV2IHsKwqAKwqAg wqAgwqAvLyBzaW1wbGVyIGZ1bmN0aW9uIGNhbGxiYWNrCsKgIMKgIMKgdGVtcGxhdGU8dm9pZCAo KmNiKShpbnQpPgotIMKgIMKgdm9pZCBvbmNlIChpbnQgZmQsIGludCBldmVudHMsIHRzdGFtcCB0 aW1lb3V0KSB0aHJvdyAoKQorIMKgIMKgdm9pZCBvbmNlIChpbnQgZmQsIGludCBldmVudHMsIHRz dGFtcCB0aW1lb3V0KSBFVl9OT0VYQ0VQVArCoCDCoCDCoHsKwqAgwqAgwqAgwqBvbmNlIChmZCwg ZXZlbnRzLCB0aW1lb3V0LCBzaW1wbGVyX2Z1bmNfdGh1bms8Y2I+KTsKwqAgwqAgwqB9CkBAIC0z MjAsNyArMzIwLDcgQEAgbmFtZXNwYWNlIGV2IHsKwqAKwqAgwqAgwqAvLyBzaW1wbGVzdCBmdW5j dGlvbiBjYWxsYmFjawrCoCDCoCDCoHRlbXBsYXRlPHZvaWQgKCpjYikoKT4KLSDCoCDCoHZvaWQg b25jZSAoaW50IGZkLCBpbnQgZXZlbnRzLCB0c3RhbXAgdGltZW91dCkgdGhyb3cgKCkKKyDCoCDC oHZvaWQgb25jZSAoaW50IGZkLCBpbnQgZXZlbnRzLCB0c3RhbXAgdGltZW91dCkgRVZfTk9FWENF UFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgb25jZSAoZmQsIGV2ZW50cywgdGltZW91dCwgc2ltcGxl c3RfZnVuY190aHVuazxjYj4pOwrCoCDCoCDCoH0KQEAgLTMzMiwxMiArMzMyLDEyIEBAIG5hbWVz cGFjZSBldiB7CsKgIMKgIMKgIMKgIMKgKCk7CsKgIMKgIMKgfQrCoAotIMKgIMKgdm9pZCBmZWVk X2ZkX2V2ZW50IChpbnQgZmQsIGludCByZXZlbnRzKSB0aHJvdyAoKQorIMKgIMKgdm9pZCBmZWVk X2ZkX2V2ZW50IChpbnQgZmQsIGludCByZXZlbnRzKSBFVl9OT0VYQ0VQVArCoCDCoCDCoHsKwqAg wqAgwqAgwqBldl9mZWVkX2ZkX2V2ZW50IChFVl9BWF8gZmQsIHJldmVudHMpOwrCoCDCoCDCoH0K wqAKLSDCoCDCoHZvaWQgZmVlZF9zaWduYWxfZXZlbnQgKGludCBzaWdudW0pIHRocm93ICgpCisg wqAgwqB2b2lkIGZlZWRfc2lnbmFsX2V2ZW50IChpbnQgc2lnbnVtKSBFVl9OT0VYQ0VQVArCoCDC oCDCoHsKwqAgwqAgwqAgwqBldl9mZWVkX3NpZ25hbF9ldmVudCAoRVZfQVhfIHNpZ251bSk7CsKg IMKgIMKgfQpAQCAtMzUyLDE0ICszNTIsMTQgQEAgbmFtZXNwYWNlIGV2IHsKwqAgwqBzdHJ1Y3Qg ZHluYW1pY19sb29wIDogbG9vcF9yZWYKwqAgwqB7CsKgCi0gwqAgwqBkeW5hbWljX2xvb3AgKHVu c2lnbmVkIGludCBmbGFncyA9IEFVVE8pIHRocm93IChiYWRfbG9vcCkKKyDCoCDCoGR5bmFtaWNf bG9vcCAodW5zaWduZWQgaW50IGZsYWdzID0gQVVUTykKwqAgwqAgwqA6IGxvb3BfcmVmIChldl9s b29wX25ldyAoZmxhZ3MpKQrCoCDCoCDCoHsKwqAgwqAgwqAgwqBpZiAoIUVWX0FYKQrCoCDCoCDC oCDCoCDCoHRocm93IGJhZF9sb29wICgpOwrCoCDCoCDCoH0KwqAKLSDCoCDCoH5keW5hbWljX2xv b3AgKCkgdGhyb3cgKCkKKyDCoCDCoH5keW5hbWljX2xvb3AgKCkgRVZfTk9FWENFUFQKwqAgwqAg wqB7CsKgIMKgIMKgIMKgZXZfbG9vcF9kZXN0cm95IChFVl9BWCk7CsKgIMKgIMKgIMKgRVZfQVgg PSAwOwpAQCAtMzc2LDcgKzM3Niw3IEBAIG5hbWVzcGFjZSBldiB7CsKgCsKgIMKgc3RydWN0IGRl ZmF1bHRfbG9vcCA6IGxvb3BfcmVmCsKgIMKgewotIMKgIMKgZGVmYXVsdF9sb29wICh1bnNpZ25l ZCBpbnQgZmxhZ3MgPSBBVVRPKSB0aHJvdyAoYmFkX2xvb3ApCisgwqAgwqBkZWZhdWx0X2xvb3Ag KHVuc2lnbmVkIGludCBmbGFncyA9IEFVVE8pCsKgI2lmIEVWX01VTFRJUExJQ0lUWQrCoCDCoCDC oDogbG9vcF9yZWYgKGV2X2RlZmF1bHRfbG9vcCAoZmxhZ3MpKQrCoCNlbmRpZgpAQCAtMzk2LDcg KzM5Niw3IEBAIG5hbWVzcGFjZSBldiB7CsKgIMKgIMKgZGVmYXVsdF9sb29wICZvcGVyYXRvciA9 IChjb25zdCBkZWZhdWx0X2xvb3AgJik7CsKgIMKgfTsKwqAKLSDCoGlubGluZSBsb29wX3JlZiBn ZXRfZGVmYXVsdF9sb29wICgpIHRocm93ICgpCisgwqBpbmxpbmUgbG9vcF9yZWYgZ2V0X2RlZmF1 bHRfbG9vcCAoKSBFVl9OT0VYQ0VQVArCoCDCoHsKwqAjaWYgRVZfTVVMVElQTElDSVRZCsKgIMKg IMKgcmV0dXJuIGV2X2RlZmF1bHRfbG9vcCAoMCk7CkBAIC00MjEsMTcgKzQyMSwzNSBAQCBuYW1l c3BhY2UgZXYgewrCoCDCoHRlbXBsYXRlPGNsYXNzIGV2X3dhdGNoZXIsIGNsYXNzIHdhdGNoZXI+ CsKgIMKgc3RydWN0IGJhc2UgOiBldl93YXRjaGVyCsKgIMKgeworIMKgIMKgLy8gc2NvcGVkIHBh dXNlL3VucGF1c2Ugb2YgYSB3YXRjaGVyCisgwqAgwqBzdHJ1Y3QgZnJlZXplX2d1YXJkCisgwqAg wqB7CisgwqAgwqAgwqB3YXRjaGVyICZ3OworIMKgIMKgIMKgYm9vbCBhY3RpdmU7CisKKyDCoCDC oCDCoGZyZWV6ZV9ndWFyZCAod2F0Y2hlciAqc2VsZikgRVZfTk9FWENFUFQKKyDCoCDCoCDCoDog dyAoKnNlbGYpLCBhY3RpdmUgKHcuaXNfYWN0aXZlICgpKQorIMKgIMKgIMKgeworIMKgIMKgIMKg IMKgaWYgKGFjdGl2ZSkgdy5zdG9wICgpOworIMKgIMKgIMKgfQorCisgwqAgwqAgwqB+ZnJlZXpl X2d1YXJkICgpCisgwqAgwqAgwqB7CisgwqAgwqAgwqAgwqBpZiAoYWN0aXZlKSB3LnN0YXJ0ICgp OworIMKgIMKgIMKgfQorIMKgIMKgfTsKKwrCoCDCoCDCoCNpZiBFVl9NVUxUSVBMSUNJVFkKwqAg wqAgwqAgwqBFVl9QWDsKwqAKwqAgwqAgwqAgwqAvLyBsb29wIHNldAotIMKgIMKgIMKgdm9pZCBz ZXQgKEVWX1ApIHRocm93ICgpCisgwqAgwqAgwqB2b2lkIHNldCAoRVZfUCkgRVZfTk9FWENFUFQK wqAgwqAgwqAgwqB7CsKgIMKgIMKgIMKgIMKgdGhpcy0+RVZfQSA9IEVWX0E7CsKgIMKgIMKgIMKg fQrCoCDCoCDCoCNlbmRpZgrCoAotIMKgIMKgYmFzZSAoRVZfUFgpIHRocm93ICgpCisgwqAgwqBi YXNlIChFVl9QWCkgRVZfTk9FWENFUFQKwqAgwqAgwqAjaWYgRVZfTVVMVElQTElDSVRZCsKgIMKg IMKgIMKgOiBFVl9BIChFVl9BKQrCoCDCoCDCoCNlbmRpZgpAQCAtNDM5LDcgKzQ1Nyw3IEBAIG5h bWVzcGFjZSBldiB7CsKgIMKgIMKgIMKgZXZfaW5pdCAodGhpcywgMCk7CsKgIMKgIMKgfQrCoAot IMKgIMKgdm9pZCBzZXRfIChjb25zdCB2b2lkICpkYXRhLCB2b2lkICgqY2IpKEVWX1BfIGV2X3dh dGNoZXIgKncsIGludCByZXZlbnRzKSkgdGhyb3cgKCkKKyDCoCDCoHZvaWQgc2V0XyAoY29uc3Qg dm9pZCAqZGF0YSwgdm9pZCAoKmNiKShFVl9QXyBldl93YXRjaGVyICp3LCBpbnQgcmV2ZW50cykp IEVWX05PRVhDRVBUCsKgIMKgIMKgewrCoCDCoCDCoCDCoHRoaXMtPmRhdGEgPSAodm9pZCAqKWRh dGE7CsKgIMKgIMKgIMKgZXZfc2V0X2NiIChzdGF0aWNfY2FzdDxldl93YXRjaGVyICo+KHRoaXMp LCBjYik7CkBAIC00NDcsNyArNDY1LDcgQEAgbmFtZXNwYWNlIGV2IHsKwqAKwqAgwqAgwqAvLyBm dW5jdGlvbiBjYWxsYmFjawrCoCDCoCDCoHRlbXBsYXRlPHZvaWQgKCpmdW5jdGlvbikod2F0Y2hl ciAmdywgaW50KT4KLSDCoCDCoHZvaWQgc2V0ICh2b2lkICpkYXRhID0gMCkgdGhyb3cgKCkKKyDC oCDCoHZvaWQgc2V0ICh2b2lkICpkYXRhID0gMCkgRVZfTk9FWENFUFQKwqAgwqAgwqB7CsKgIMKg IMKgIMKgc2V0XyAoZGF0YSwgZnVuY3Rpb25fdGh1bms8ZnVuY3Rpb24+KTsKwqAgwqAgwqB9CkBA IC00NjEsMTQgKzQ3OSwxNCBAQCBuYW1lc3BhY2UgZXYgewrCoArCoCDCoCDCoC8vIG1ldGhvZCBj YWxsYmFjawrCoCDCoCDCoHRlbXBsYXRlPGNsYXNzIEssIHZvaWQgKEs6OiptZXRob2QpKHdhdGNo ZXIgJncsIGludCk+Ci0gwqAgwqB2b2lkIHNldCAoSyAqb2JqZWN0KSB0aHJvdyAoKQorIMKgIMKg dm9pZCBzZXQgKEsgKm9iamVjdCkgRVZfTk9FWENFUFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgc2V0 XyAob2JqZWN0LCBtZXRob2RfdGh1bms8SywgbWV0aG9kPik7CsKgIMKgIMKgfQrCoArCoCDCoCDC oC8vIGRlZmF1bHQgbWV0aG9kID09IG9wZXJhdG9yICgpCsKgIMKgIMKgdGVtcGxhdGU8Y2xhc3Mg Sz4KLSDCoCDCoHZvaWQgc2V0IChLICpvYmplY3QpIHRocm93ICgpCisgwqAgwqB2b2lkIHNldCAo SyAqb2JqZWN0KSBFVl9OT0VYQ0VQVArCoCDCoCDCoHsKwqAgwqAgwqAgwqBzZXRfIChvYmplY3Qs IG1ldGhvZF90aHVuazxLLCAmSzo6b3BlcmF0b3IgKCk+KTsKwqAgwqAgwqB9CkBAIC00ODIsNyAr NTAwLDcgQEAgbmFtZXNwYWNlIGV2IHsKwqAKwqAgwqAgwqAvLyBuby1hcmd1bWVudCBjYWxsYmFj awrCoCDCoCDCoHRlbXBsYXRlPGNsYXNzIEssIHZvaWQgKEs6OiptZXRob2QpKCk+Ci0gwqAgwqB2 b2lkIHNldCAoSyAqb2JqZWN0KSB0aHJvdyAoKQorIMKgIMKgdm9pZCBzZXQgKEsgKm9iamVjdCkg RVZfTk9FWENFUFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgc2V0XyAob2JqZWN0LCBtZXRob2Rfbm9h cmdzX3RodW5rPEssIG1ldGhvZD4pOwrCoCDCoCDCoH0KQEAgLTUwMSw3NiArNTE5LDc2IEBAIG5h bWVzcGFjZSBldiB7CsKgIMKgIMKgIMKgIMKgIMKgKHN0YXRpY19jYXN0PGV2X3dhdGNoZXIgKj4o dGhpcyksIGV2ZW50cyk7CsKgIMKgIMKgfQrCoAotIMKgIMKgYm9vbCBpc19hY3RpdmUgKCkgY29u c3QgdGhyb3cgKCkKKyDCoCDCoGJvb2wgaXNfYWN0aXZlICgpIGNvbnN0IEVWX05PRVhDRVBUCsKg IMKgIMKgewrCoCDCoCDCoCDCoHJldHVybiBldl9pc19hY3RpdmUgKHN0YXRpY19jYXN0PGNvbnN0 IGV2X3dhdGNoZXIgKj4odGhpcykpOwrCoCDCoCDCoH0KwqAKLSDCoCDCoGJvb2wgaXNfcGVuZGlu ZyAoKSBjb25zdCB0aHJvdyAoKQorIMKgIMKgYm9vbCBpc19wZW5kaW5nICgpIGNvbnN0IEVWX05P RVhDRVBUCsKgIMKgIMKgewrCoCDCoCDCoCDCoHJldHVybiBldl9pc19wZW5kaW5nIChzdGF0aWNf Y2FzdDxjb25zdCBldl93YXRjaGVyICo+KHRoaXMpKTsKwqAgwqAgwqB9CsKgCi0gwqAgwqB2b2lk IGZlZWRfZXZlbnQgKGludCByZXZlbnRzKSB0aHJvdyAoKQorIMKgIMKgdm9pZCBmZWVkX2V2ZW50 IChpbnQgcmV2ZW50cykgRVZfTk9FWENFUFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgZXZfZmVlZF9l dmVudCAoRVZfQV8gc3RhdGljX2Nhc3Q8ZXZfd2F0Y2hlciAqPih0aGlzKSwgcmV2ZW50cyk7CsKg IMKgIMKgfQrCoCDCoH07CsKgCi0gwqBpbmxpbmUgdHN0YW1wIG5vdyAoRVZfUCkgdGhyb3cgKCkK KyDCoGlubGluZSB0c3RhbXAgbm93IChFVl9QKSBFVl9OT0VYQ0VQVArCoCDCoHsKwqAgwqAgwqBy ZXR1cm4gZXZfbm93IChFVl9BKTsKwqAgwqB9CsKgCi0gwqBpbmxpbmUgdm9pZCBkZWxheSAodHN0 YW1wIGludGVydmFsKSB0aHJvdyAoKQorIMKgaW5saW5lIHZvaWQgZGVsYXkgKHRzdGFtcCBpbnRl cnZhbCkgRVZfTk9FWENFUFQKwqAgwqB7CsKgIMKgIMKgZXZfc2xlZXAgKGludGVydmFsKTsKwqAg wqB9CsKgCi0gwqBpbmxpbmUgaW50IHZlcnNpb25fbWFqb3IgKCkgdGhyb3cgKCkKKyDCoGlubGlu ZSBpbnQgdmVyc2lvbl9tYWpvciAoKSBFVl9OT0VYQ0VQVArCoCDCoHsKwqAgwqAgwqByZXR1cm4g ZXZfdmVyc2lvbl9tYWpvciAoKTsKwqAgwqB9CsKgCi0gwqBpbmxpbmUgaW50IHZlcnNpb25fbWlu b3IgKCkgdGhyb3cgKCkKKyDCoGlubGluZSBpbnQgdmVyc2lvbl9taW5vciAoKSBFVl9OT0VYQ0VQ VArCoCDCoHsKwqAgwqAgwqByZXR1cm4gZXZfdmVyc2lvbl9taW5vciAoKTsKwqAgwqB9CsKgCi0g wqBpbmxpbmUgdW5zaWduZWQgaW50IHN1cHBvcnRlZF9iYWNrZW5kcyAoKSB0aHJvdyAoKQorIMKg aW5saW5lIHVuc2lnbmVkIGludCBzdXBwb3J0ZWRfYmFja2VuZHMgKCkgRVZfTk9FWENFUFQKwqAg wqB7CsKgIMKgIMKgcmV0dXJuIGV2X3N1cHBvcnRlZF9iYWNrZW5kcyAoKTsKwqAgwqB9CsKgCi0g wqBpbmxpbmUgdW5zaWduZWQgaW50IHJlY29tbWVuZGVkX2JhY2tlbmRzICgpIHRocm93ICgpCisg wqBpbmxpbmUgdW5zaWduZWQgaW50IHJlY29tbWVuZGVkX2JhY2tlbmRzICgpIEVWX05PRVhDRVBU CsKgIMKgewrCoCDCoCDCoHJldHVybiBldl9yZWNvbW1lbmRlZF9iYWNrZW5kcyAoKTsKwqAgwqB9 CsKgCi0gwqBpbmxpbmUgdW5zaWduZWQgaW50IGVtYmVkZGFibGVfYmFja2VuZHMgKCkgdGhyb3cg KCkKKyDCoGlubGluZSB1bnNpZ25lZCBpbnQgZW1iZWRkYWJsZV9iYWNrZW5kcyAoKSBFVl9OT0VY Q0VQVArCoCDCoHsKwqAgwqAgwqByZXR1cm4gZXZfZW1iZWRkYWJsZV9iYWNrZW5kcyAoKTsKwqAg wqB9CsKgCi0gwqBpbmxpbmUgdm9pZCBzZXRfYWxsb2NhdG9yICh2b2lkICooKmNiKSh2b2lkICpw dHIsIGxvbmcgc2l6ZSkgdGhyb3cgKCkpIHRocm93ICgpCisgwqBpbmxpbmUgdm9pZCBzZXRfYWxs b2NhdG9yICh2b2lkICooKmNiKSh2b2lkICpwdHIsIGxvbmcgc2l6ZSkgRVZfTk9FWENFUFQpIEVW X05PRVhDRVBUCsKgIMKgewrCoCDCoCDCoGV2X3NldF9hbGxvY2F0b3IgKGNiKTsKwqAgwqB9CsKg Ci0gwqBpbmxpbmUgdm9pZCBzZXRfc3lzZXJyX2NiICh2b2lkICgqY2IpKGNvbnN0IGNoYXIgKm1z ZykgdGhyb3cgKCkpIHRocm93ICgpCisgwqBpbmxpbmUgdm9pZCBzZXRfc3lzZXJyX2NiICh2b2lk ICgqY2IpKGNvbnN0IGNoYXIgKm1zZykgRVZfTk9FWENFUFQpIEVWX05PRVhDRVBUCsKgIMKgewrC oCDCoCDCoGV2X3NldF9zeXNlcnJfY2IgKGNiKTsKwqAgwqB9CsKgCsKgIMKgI2lmIEVWX01VTFRJ UExJQ0lUWQrCoCDCoCDCoCNkZWZpbmUgRVZfQ09OU1RSVUNUKGNwcHN0ZW0sY3N0ZW0pIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgXAotIMKgIMKgIMKgKEVWX1BYID0gZ2V0X2RlZmF1bHRfbG9vcCAoKSkg dGhyb3cgKCkgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqBcCisgwqAgwqAgwqAoRVZfUFggPSBnZXRfZGVmYXVsdF9sb29wICgp KSBFVl9OT0VYQ0VQVCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCBcCsKgIMKgIMKgIMKgIMKgOiBiYXNlPGV2XyAjIyBjc3RlbSwgY3Bw c3RlbT4gKEVWX0EpIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgXArCoCDCoCDCoCDCoHsgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXArCoCDCoCDCoCDCoH0K wqAgwqAjZWxzZQrCoCDCoCDCoCNkZWZpbmUgRVZfQ09OU1RSVUNUKGNwcHN0ZW0sY3N0ZW0pIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIFwKLSDCoCDCoCDCoCgpIHRocm93ICgpIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFwKKyDCoCDCoCDCoCgpIEVWX05PRVhDRVBUIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXArCoCDCoCDCoCDCoHsg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgXArCoCDCoCDCoCDCoH0KwqAgwqAjZW5kaWYKQEAgLTU4MSwxOSArNTk5LDE5IEBAIG5h bWVzcGFjZSBldiB7CsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXArCoCDCoHN0cnVjdCBjcHBzdGVtIDog YmFzZTxldl8gIyMgY3N0ZW0sIGNwcHN0ZW0+IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXArCoCDCoHsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXAot IMKgIMKgdm9pZCBzdGFydCAoKSB0aHJvdyAoKSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoFwKKyDCoCDCoHZvaWQgc3RhcnQgKCkgRVZfTk9FWENFUFQgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgXArCoCDCoCDCoHsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXArCoCDCoCDCoCDCoGV2XyAjIyBj c3RlbSAjIyBfc3RhcnQgKEVWX0FfIHN0YXRpY19jYXN0PGV2XyAjIyBjc3RlbSAqPih0aGlzKSk7 IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFwKwqAgwqAgwqB9IMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFwKwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqBcCi0gwqAgwqB2b2lkIHN0b3AgKCkgdGhyb3cgKCkgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgXAorIMKgIMKgdm9pZCBzdG9wICgpIEVWX05PRVhDRVBUIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXArCoCDCoCDCoHsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXArCoCDC oCDCoCDCoGV2XyAjIyBjc3RlbSAjIyBfc3RvcCAoRVZfQV8gc3RhdGljX2Nhc3Q8ZXZfICMjIGNz dGVtICo+KHRoaXMpKTsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBcCsKgIMKgIMKgfSDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCBcCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXArCoCDCoCDCoGNwcHN0ZW0gRVZfQ09OU1RSVUNU KGNwcHN0ZW0sY3N0ZW0pIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFwKwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBcCi0g wqAgwqB+Y3Bwc3RlbSAoKSB0aHJvdyAoKSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoFwKKyDCoCDCoH5jcHBzdGVtICgpIEVWX05PRVhDRVBUIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIFwKwqAgwqAgwqB7IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFwKwqAgwqAgwqAgwqBzdG9wICgp OyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFwK wqAgwqAgwqB9IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIFwKQEAgLTYxMiwyMyArNjMwLDE5IEBAIG5hbWVzcGFjZSBldiB7 CsKgIMKgfTsKwqAKwqAgwqBFVl9CRUdJTl9XQVRDSEVSIChpbywgaW8pCi0gwqAgwqB2b2lkIHNl dCAoaW50IGZkLCBpbnQgZXZlbnRzKSB0aHJvdyAoKQorIMKgIMKgdm9pZCBzZXQgKGludCBmZCwg aW50IGV2ZW50cykgRVZfTk9FWENFUFQKwqAgwqAgwqB7Ci0gwqAgwqAgwqBpbnQgYWN0aXZlID0g aXNfYWN0aXZlICgpOwotIMKgIMKgIMKgaWYgKGFjdGl2ZSkgc3RvcCAoKTsKKyDCoCDCoCDCoGZy ZWV6ZV9ndWFyZCBmcmVlemUgKHRoaXMpOwrCoCDCoCDCoCDCoGV2X2lvX3NldCAoc3RhdGljX2Nh c3Q8ZXZfaW8gKj4odGhpcyksIGZkLCBldmVudHMpOwotIMKgIMKgIMKgaWYgKGFjdGl2ZSkgc3Rh cnQgKCk7CsKgIMKgIMKgfQrCoAotIMKgIMKgdm9pZCBzZXQgKGludCBldmVudHMpIHRocm93ICgp CisgwqAgwqB2b2lkIHNldCAoaW50IGV2ZW50cykgRVZfTk9FWENFUFQKwqAgwqAgwqB7Ci0gwqAg wqAgwqBpbnQgYWN0aXZlID0gaXNfYWN0aXZlICgpOwotIMKgIMKgIMKgaWYgKGFjdGl2ZSkgc3Rv cCAoKTsKLSDCoCDCoCDCoGV2X2lvX3NldCAoc3RhdGljX2Nhc3Q8ZXZfaW8gKj4odGhpcyksIGZk LCBldmVudHMpOwotIMKgIMKgIMKgaWYgKGFjdGl2ZSkgc3RhcnQgKCk7CisgwqAgwqAgwqBmcmVl emVfZ3VhcmQgZnJlZXplICh0aGlzKTsKKyDCoCDCoCDCoGV2X2lvX21vZGlmeSAoc3RhdGljX2Nh c3Q8ZXZfaW8gKj4odGhpcyksIGV2ZW50cyk7CsKgIMKgIMKgfQrCoAotIMKgIMKgdm9pZCBzdGFy dCAoaW50IGZkLCBpbnQgZXZlbnRzKSB0aHJvdyAoKQorIMKgIMKgdm9pZCBzdGFydCAoaW50IGZk LCBpbnQgZXZlbnRzKSBFVl9OT0VYQ0VQVArCoCDCoCDCoHsKwqAgwqAgwqAgwqBzZXQgKGZkLCBl dmVudHMpOwrCoCDCoCDCoCDCoHN0YXJ0ICgpOwpAQCAtNjM2LDIxICs2NTAsMTkgQEAgbmFtZXNw YWNlIGV2IHsKwqAgwqBFVl9FTkRfV0FUQ0hFUiAoaW8sIGlvKQrCoArCoCDCoEVWX0JFR0lOX1dB VENIRVIgKHRpbWVyLCB0aW1lcikKLSDCoCDCoHZvaWQgc2V0IChldl90c3RhbXAgYWZ0ZXIsIGV2 X3RzdGFtcCByZXBlYXQgPSAwLikgdGhyb3cgKCkKKyDCoCDCoHZvaWQgc2V0IChldl90c3RhbXAg YWZ0ZXIsIGV2X3RzdGFtcCByZXBlYXQgPSAwLikgRVZfTk9FWENFUFQKwqAgwqAgwqB7Ci0gwqAg wqAgwqBpbnQgYWN0aXZlID0gaXNfYWN0aXZlICgpOwotIMKgIMKgIMKgaWYgKGFjdGl2ZSkgc3Rv cCAoKTsKKyDCoCDCoCDCoGZyZWV6ZV9ndWFyZCBmcmVlemUgKHRoaXMpOwrCoCDCoCDCoCDCoGV2 X3RpbWVyX3NldCAoc3RhdGljX2Nhc3Q8ZXZfdGltZXIgKj4odGhpcyksIGFmdGVyLCByZXBlYXQp OwotIMKgIMKgIMKgaWYgKGFjdGl2ZSkgc3RhcnQgKCk7CsKgIMKgIMKgfQrCoAotIMKgIMKgdm9p ZCBzdGFydCAoZXZfdHN0YW1wIGFmdGVyLCBldl90c3RhbXAgcmVwZWF0ID0gMC4pIHRocm93ICgp CisgwqAgwqB2b2lkIHN0YXJ0IChldl90c3RhbXAgYWZ0ZXIsIGV2X3RzdGFtcCByZXBlYXQgPSAw LikgRVZfTk9FWENFUFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgc2V0IChhZnRlciwgcmVwZWF0KTsK wqAgwqAgwqAgwqBzdGFydCAoKTsKwqAgwqAgwqB9CsKgCi0gwqAgwqB2b2lkIGFnYWluICgpIHRo cm93ICgpCisgwqAgwqB2b2lkIGFnYWluICgpIEVWX05PRVhDRVBUCsKgIMKgIMKgewrCoCDCoCDC oCDCoGV2X3RpbWVyX2FnYWluIChFVl9BXyBzdGF0aWNfY2FzdDxldl90aW1lciAqPih0aGlzKSk7 CsKgIMKgIMKgfQpAQCAtNjYzLDIxICs2NzUsMTkgQEAgbmFtZXNwYWNlIGV2IHsKwqAKwqAgwqAj aWYgRVZfUEVSSU9ESUNfRU5BQkxFCsKgIMKgRVZfQkVHSU5fV0FUQ0hFUiAocGVyaW9kaWMsIHBl cmlvZGljKQotIMKgIMKgdm9pZCBzZXQgKGV2X3RzdGFtcCBhdCwgZXZfdHN0YW1wIGludGVydmFs ID0gMC4pIHRocm93ICgpCisgwqAgwqB2b2lkIHNldCAoZXZfdHN0YW1wIGF0LCBldl90c3RhbXAg aW50ZXJ2YWwgPSAwLikgRVZfTk9FWENFUFQKwqAgwqAgwqB7Ci0gwqAgwqAgwqBpbnQgYWN0aXZl ID0gaXNfYWN0aXZlICgpOwotIMKgIMKgIMKgaWYgKGFjdGl2ZSkgc3RvcCAoKTsKKyDCoCDCoCDC oGZyZWV6ZV9ndWFyZCBmcmVlemUgKHRoaXMpOwrCoCDCoCDCoCDCoGV2X3BlcmlvZGljX3NldCAo c3RhdGljX2Nhc3Q8ZXZfcGVyaW9kaWMgKj4odGhpcyksIGF0LCBpbnRlcnZhbCwgMCk7Ci0gwqAg wqAgwqBpZiAoYWN0aXZlKSBzdGFydCAoKTsKwqAgwqAgwqB9CsKgCi0gwqAgwqB2b2lkIHN0YXJ0 IChldl90c3RhbXAgYXQsIGV2X3RzdGFtcCBpbnRlcnZhbCA9IDAuKSB0aHJvdyAoKQorIMKgIMKg dm9pZCBzdGFydCAoZXZfdHN0YW1wIGF0LCBldl90c3RhbXAgaW50ZXJ2YWwgPSAwLikgRVZfTk9F WENFUFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgc2V0IChhdCwgaW50ZXJ2YWwpOwrCoCDCoCDCoCDC oHN0YXJ0ICgpOwrCoCDCoCDCoH0KwqAKLSDCoCDCoHZvaWQgYWdhaW4gKCkgdGhyb3cgKCkKKyDC oCDCoHZvaWQgYWdhaW4gKCkgRVZfTk9FWENFUFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgZXZfcGVy aW9kaWNfYWdhaW4gKEVWX0FfIHN0YXRpY19jYXN0PGV2X3BlcmlvZGljICo+KHRoaXMpKTsKwqAg wqAgwqB9CkBAIC02ODYsMTUgKzY5NiwxMyBAQCBuYW1lc3BhY2UgZXYgewrCoArCoCDCoCNpZiBF Vl9TSUdOQUxfRU5BQkxFCsKgIMKgRVZfQkVHSU5fV0FUQ0hFUiAoc2lnLCBzaWduYWwpCi0gwqAg wqB2b2lkIHNldCAoaW50IHNpZ251bSkgdGhyb3cgKCkKKyDCoCDCoHZvaWQgc2V0IChpbnQgc2ln bnVtKSBFVl9OT0VYQ0VQVArCoCDCoCDCoHsKLSDCoCDCoCDCoGludCBhY3RpdmUgPSBpc19hY3Rp dmUgKCk7Ci0gwqAgwqAgwqBpZiAoYWN0aXZlKSBzdG9wICgpOworIMKgIMKgIMKgZnJlZXplX2d1 YXJkIGZyZWV6ZSAodGhpcyk7CsKgIMKgIMKgIMKgZXZfc2lnbmFsX3NldCAoc3RhdGljX2Nhc3Q8 ZXZfc2lnbmFsICo+KHRoaXMpLCBzaWdudW0pOwotIMKgIMKgIMKgaWYgKGFjdGl2ZSkgc3RhcnQg KCk7CsKgIMKgIMKgfQrCoAotIMKgIMKgdm9pZCBzdGFydCAoaW50IHNpZ251bSkgdGhyb3cgKCkK KyDCoCDCoHZvaWQgc3RhcnQgKGludCBzaWdudW0pIEVWX05PRVhDRVBUCsKgIMKgIMKgewrCoCDC oCDCoCDCoHNldCAoc2lnbnVtKTsKwqAgwqAgwqAgwqBzdGFydCAoKTsKQEAgLTcwNCwxNSArNzEy LDEzIEBAIG5hbWVzcGFjZSBldiB7CsKgCsKgIMKgI2lmIEVWX0NISUxEX0VOQUJMRQrCoCDCoEVW X0JFR0lOX1dBVENIRVIgKGNoaWxkLCBjaGlsZCkKLSDCoCDCoHZvaWQgc2V0IChpbnQgcGlkLCBp bnQgdHJhY2UgPSAwKSB0aHJvdyAoKQorIMKgIMKgdm9pZCBzZXQgKGludCBwaWQsIGludCB0cmFj ZSA9IDApIEVWX05PRVhDRVBUCsKgIMKgIMKgewotIMKgIMKgIMKgaW50IGFjdGl2ZSA9IGlzX2Fj dGl2ZSAoKTsKLSDCoCDCoCDCoGlmIChhY3RpdmUpIHN0b3AgKCk7CisgwqAgwqAgwqBmcmVlemVf Z3VhcmQgZnJlZXplICh0aGlzKTsKwqAgwqAgwqAgwqBldl9jaGlsZF9zZXQgKHN0YXRpY19jYXN0 PGV2X2NoaWxkICo+KHRoaXMpLCBwaWQsIHRyYWNlKTsKLSDCoCDCoCDCoGlmIChhY3RpdmUpIHN0 YXJ0ICgpOwrCoCDCoCDCoH0KwqAKLSDCoCDCoHZvaWQgc3RhcnQgKGludCBwaWQsIGludCB0cmFj ZSA9IDApIHRocm93ICgpCisgwqAgwqB2b2lkIHN0YXJ0IChpbnQgcGlkLCBpbnQgdHJhY2UgPSAw KSBFVl9OT0VYQ0VQVArCoCDCoCDCoHsKwqAgwqAgwqAgwqBzZXQgKHBpZCwgdHJhY2UpOwrCoCDC oCDCoCDCoHN0YXJ0ICgpOwpAQCAtNzIyLDIyICs3MjgsMjAgQEAgbmFtZXNwYWNlIGV2IHsKwqAK wqAgwqAjaWYgRVZfU1RBVF9FTkFCTEUKwqAgwqBFVl9CRUdJTl9XQVRDSEVSIChzdGF0LCBzdGF0 KQotIMKgIMKgdm9pZCBzZXQgKGNvbnN0IGNoYXIgKnBhdGgsIGV2X3RzdGFtcCBpbnRlcnZhbCA9 IDAuKSB0aHJvdyAoKQorIMKgIMKgdm9pZCBzZXQgKGNvbnN0IGNoYXIgKnBhdGgsIGV2X3RzdGFt cCBpbnRlcnZhbCA9IDAuKSBFVl9OT0VYQ0VQVArCoCDCoCDCoHsKLSDCoCDCoCDCoGludCBhY3Rp dmUgPSBpc19hY3RpdmUgKCk7Ci0gwqAgwqAgwqBpZiAoYWN0aXZlKSBzdG9wICgpOworIMKgIMKg IMKgZnJlZXplX2d1YXJkIGZyZWV6ZSAodGhpcyk7CsKgIMKgIMKgIMKgZXZfc3RhdF9zZXQgKHN0 YXRpY19jYXN0PGV2X3N0YXQgKj4odGhpcyksIHBhdGgsIGludGVydmFsKTsKLSDCoCDCoCDCoGlm IChhY3RpdmUpIHN0YXJ0ICgpOwrCoCDCoCDCoH0KwqAKLSDCoCDCoHZvaWQgc3RhcnQgKGNvbnN0 IGNoYXIgKnBhdGgsIGV2X3RzdGFtcCBpbnRlcnZhbCA9IDAuKSB0aHJvdyAoKQorIMKgIMKgdm9p ZCBzdGFydCAoY29uc3QgY2hhciAqcGF0aCwgZXZfdHN0YW1wIGludGVydmFsID0gMC4pIEVWX05P RVhDRVBUCsKgIMKgIMKgewrCoCDCoCDCoCDCoHN0b3AgKCk7CsKgIMKgIMKgIMKgc2V0IChwYXRo LCBpbnRlcnZhbCk7CsKgIMKgIMKgIMKgc3RhcnQgKCk7CsKgIMKgIMKgfQrCoAotIMKgIMKgdm9p ZCB1cGRhdGUgKCkgdGhyb3cgKCkKKyDCoCDCoHZvaWQgdXBkYXRlICgpIEVWX05PRVhDRVBUCsKg IMKgIMKgewrCoCDCoCDCoCDCoGV2X3N0YXRfc3RhdCAoRVZfQV8gc3RhdGljX2Nhc3Q8ZXZfc3Rh dCAqPih0aGlzKSk7CsKgIMKgIMKgfQpAQCAtNzQ2LDMzICs3NTAsMzEgQEAgbmFtZXNwYWNlIGV2 IHsKwqAKwqAgwqAjaWYgRVZfSURMRV9FTkFCTEUKwqAgwqBFVl9CRUdJTl9XQVRDSEVSIChpZGxl LCBpZGxlKQotIMKgIMKgdm9pZCBzZXQgKCkgdGhyb3cgKCkgeyB9CisgwqAgwqB2b2lkIHNldCAo KSBFVl9OT0VYQ0VQVCB7IH0KwqAgwqBFVl9FTkRfV0FUQ0hFUiAoaWRsZSwgaWRsZSkKwqAgwqAj ZW5kaWYKwqAKwqAgwqAjaWYgRVZfUFJFUEFSRV9FTkFCTEUKwqAgwqBFVl9CRUdJTl9XQVRDSEVS IChwcmVwYXJlLCBwcmVwYXJlKQotIMKgIMKgdm9pZCBzZXQgKCkgdGhyb3cgKCkgeyB9CisgwqAg wqB2b2lkIHNldCAoKSBFVl9OT0VYQ0VQVCB7IH0KwqAgwqBFVl9FTkRfV0FUQ0hFUiAocHJlcGFy ZSwgcHJlcGFyZSkKwqAgwqAjZW5kaWYKwqAKwqAgwqAjaWYgRVZfQ0hFQ0tfRU5BQkxFCsKgIMKg RVZfQkVHSU5fV0FUQ0hFUiAoY2hlY2ssIGNoZWNrKQotIMKgIMKgdm9pZCBzZXQgKCkgdGhyb3cg KCkgeyB9CisgwqAgwqB2b2lkIHNldCAoKSBFVl9OT0VYQ0VQVCB7IH0KwqAgwqBFVl9FTkRfV0FU Q0hFUiAoY2hlY2ssIGNoZWNrKQrCoCDCoCNlbmRpZgrCoArCoCDCoCNpZiBFVl9FTUJFRF9FTkFC TEUKwqAgwqBFVl9CRUdJTl9XQVRDSEVSIChlbWJlZCwgZW1iZWQpCi0gwqAgwqB2b2lkIHNldF9l bWJlZCAoc3RydWN0IGV2X2xvb3AgKmVtYmVkZGVkX2xvb3ApIHRocm93ICgpCisgwqAgwqB2b2lk IHNldF9lbWJlZCAoc3RydWN0IGV2X2xvb3AgKmVtYmVkZGVkX2xvb3ApIEVWX05PRVhDRVBUCsKg IMKgIMKgewotIMKgIMKgIMKgaW50IGFjdGl2ZSA9IGlzX2FjdGl2ZSAoKTsKLSDCoCDCoCDCoGlm IChhY3RpdmUpIHN0b3AgKCk7CisgwqAgwqAgwqBmcmVlemVfZ3VhcmQgZnJlZXplICh0aGlzKTsK wqAgwqAgwqAgwqBldl9lbWJlZF9zZXQgKHN0YXRpY19jYXN0PGV2X2VtYmVkICo+KHRoaXMpLCBl bWJlZGRlZF9sb29wKTsKLSDCoCDCoCDCoGlmIChhY3RpdmUpIHN0YXJ0ICgpOwrCoCDCoCDCoH0K wqAKLSDCoCDCoHZvaWQgc3RhcnQgKHN0cnVjdCBldl9sb29wICplbWJlZGRlZF9sb29wKSB0aHJv dyAoKQorIMKgIMKgdm9pZCBzdGFydCAoc3RydWN0IGV2X2xvb3AgKmVtYmVkZGVkX2xvb3ApIEVW X05PRVhDRVBUCsKgIMKgIMKgewrCoCDCoCDCoCDCoHNldCAoZW1iZWRkZWRfbG9vcCk7CsKgIMKg IMKgIMKgc3RhcnQgKCk7CkBAIC03ODcsMTggKzc4OSwxOCBAQCBuYW1lc3BhY2UgZXYgewrCoArC oCDCoCNpZiBFVl9GT1JLX0VOQUJMRQrCoCDCoEVWX0JFR0lOX1dBVENIRVIgKGZvcmssIGZvcmsp Ci0gwqAgwqB2b2lkIHNldCAoKSB0aHJvdyAoKSB7IH0KKyDCoCDCoHZvaWQgc2V0ICgpIEVWX05P RVhDRVBUIHsgfQrCoCDCoEVWX0VORF9XQVRDSEVSIChmb3JrLCBmb3JrKQrCoCDCoCNlbmRpZgrC oArCoCDCoCNpZiBFVl9BU1lOQ19FTkFCTEUKwqAgwqBFVl9CRUdJTl9XQVRDSEVSIChhc3luYywg YXN5bmMpCi0gwqAgwqB2b2lkIHNlbmQgKCkgdGhyb3cgKCkKKyDCoCDCoHZvaWQgc2VuZCAoKSBF Vl9OT0VYQ0VQVArCoCDCoCDCoHsKwqAgwqAgwqAgwqBldl9hc3luY19zZW5kIChFVl9BXyBzdGF0 aWNfY2FzdDxldl9hc3luYyAqPih0aGlzKSk7CsKgIMKgIMKgfQrCoAotIMKgIMKgYm9vbCBhc3lu Y19wZW5kaW5nICgpIHRocm93ICgpCisgwqAgwqBib29sIGFzeW5jX3BlbmRpbmcgKCkgRVZfTk9F WENFUFQKwqAgwqAgwqB7CsKgIMKgIMKgIMKgcmV0dXJuIGV2X2FzeW5jX3BlbmRpbmcgKHN0YXRp Y19jYXN0PGV2X2FzeW5jICo+KHRoaXMpKTsKwqAgwqAgwqB9CmRpZmYgLS1naXQgYS90aGlyZF9w YXJ0eS9saWJldi9ldi4zIGIvdGhpcmRfcGFydHkvbGliZXYvZXYuMwppbmRleCA1YjI1OTllOWIu Ljk4NWFmODU0YyAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvbGliZXYvZXYuMworKysgYi90aGly ZF9wYXJ0eS9saWJldi9ldi4zCkBAIC0xLDQgKzEsNCBAQAotLlwiIEF1dG9tYXRpY2FsbHkgZ2Vu ZXJhdGVkIGJ5IFBvZDo6TWFuIDIuMjggKFBvZDo6U2ltcGxlIDMuMzApCisuXCIgQXV0b21hdGlj YWxseSBnZW5lcmF0ZWQgYnkgUG9kOjpNYW4gNC4xMSAoUG9kOjpTaW1wbGUgMy4zNSkKwqAuXCIK wqAuXCIgU3RhbmRhcmQgcHJlYW1ibGU6CsKgLlwiID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtNDYsNyAr NDYsNyBAQArCoC5pZSBcbiguZyAuZHMgQXEgXChhcQrCoC5lbCDCoCDCoCDCoCAuZHMgQXEgJwrC oC5cIgotLlwiIElmIHRoZSBGIHJlZ2lzdGVyIGlzIHR1cm5lZCBvbiwgd2UnbGwgZ2VuZXJhdGUg aW5kZXggZW50cmllcyBvbiBzdGRlcnIgZm9yCisuXCIgSWYgdGhlIEYgcmVnaXN0ZXIgaXMgPjAs IHdlJ2xsIGdlbmVyYXRlIGluZGV4IGVudHJpZXMgb24gc3RkZXJyIGZvcgrCoC5cIiB0aXRsZXMg KC5USCksIGhlYWRlcnMgKC5TSCksIHN1YnNlY3Rpb25zICguU1MpLCBpdGVtcyAoLklwKSwgYW5k IGluZGV4CsKgLlwiIGVudHJpZXMgbWFya2VkIHdpdGggWDw+IGluIFBPRC4gwqBPZiBjb3Vyc2Us IHlvdSdsbCBoYXZlIHRvIHByb2Nlc3MgdGhlCsKgLlwiIG91dHB1dCB5b3Vyc2VsZiBpbiBzb21l IG1lYW5pbmdmdWwgZmFzaGlvbi4KQEAgLTU2LDEyICs1NiwxMiBAQArCoC4uCsKgLm5yIHJGIDAK wqAuaWYgXG4oLmcgLmlmIHJGIC5uciByRiAxCi0uaWYgKFxuKHJGOihcbiguZz09MCkpIFx7Ci0u IMKgIMKgaWYgXG5GIFx7CisuaWYgKFxuKHJGOihcbiguZz09MCkpIFx7XAorLiDCoCDCoGlmIFxu RiBce1wKwqAuIMKgIMKgIMKgIMKgZGUgSVgKwqAuIMKgIMKgIMKgIMKgdG0gSW5kZXg6XFwkMVx0 XFxuJVx0IlxcJDIiCsKgLi4KLS4gwqAgwqAgwqAgwqBpZiAhXG5GPT0yIFx7CisuIMKgIMKgIMKg IMKgaWYgIVxuRj09MiBce1wKwqAuIMKgIMKgIMKgIMKgIMKgIMKgbnIgJSAwCsKgLiDCoCDCoCDC oCDCoCDCoCDCoG5yIEYgMgrCoC4gwqAgwqAgwqAgwqBcfQpAQCAtMTMzLDcgKzEzMyw3IEBACsKg LlwiID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQrCoC5cIgrCoC5JWCBUaXRsZSAiTElCRVYgMyIKLS5USCBMSUJF ViAzICIyMDE2LTExLTE2IiAibGliZXYtNC4yMyIgImxpYmV2IC0gaGlnaCBwZXJmb3JtYW5jZSBm dWxsIGZlYXR1cmVkIGV2ZW50IGxvb3AiCisuVEggTElCRVYgMyAiMjAyMC0wMS0yMiIgImxpYmV2 LTQuMzEiICJsaWJldiAtIGhpZ2ggcGVyZm9ybWFuY2UgZnVsbCBmZWF0dXJlZCBldmVudCBsb29w IgrCoC5cIiBGb3IgbnJvZmYsIHR1cm4gb2ZmIGp1c3RpZmljYXRpb24uIMKgQWx3YXlzIHR1cm4g b2ZmIGh5cGhlbmF0aW9uOyBpdCBtYWtlcwrCoC5cIiB3YXkgdG9vIG1hbnkgbWlzdGFrZXMgaW4g dGVjaG5pY2FsIGRvY3VtZW50cy4KwqAuaWYgbiAuYWQgbApAQCAtMjQyLDEwICsyNDIsMTAgQEAg ZGV0YWlscyBvZiB0aGUgZXZlbnQsIGFuZCB0aGVuIGhhbmQgaXQgb3ZlciB0byBsaWJldiBieSBc ZklzdGFydGluZ1xmUiB0aGUKwqB3YXRjaGVyLgrCoC5TUyAiXHMtMUZFQVRVUkVTXHMwIgrCoC5J WCBTdWJzZWN0aW9uICJGRUFUVVJFUyIKLUxpYmV2IHN1cHBvcnRzIFxmKENXXCooQ2BzZWxlY3Rc KihDJ1xmUiwgXGYoQ1dcKihDYHBvbGxcKihDJ1xmUiwgdGhlIExpbnV4LXNwZWNpZmljIFxmKENX XCooQ2BlcG9sbFwqKEMnXGZSLCB0aGUKLUJTRC1zcGVjaWZpYyBcZihDV1wqKENga3F1ZXVlXCoo QydcZlIgYW5kIHRoZSBTb2xhcmlzLXNwZWNpZmljIGV2ZW50IHBvcnQgbWVjaGFuaXNtcwotZm9y IGZpbGUgZGVzY3JpcHRvciBldmVudHMgKFxmKENXXCooQ2Bldl9pb1wqKEMnXGZSKSwgdGhlIExp bnV4IFxmKENXXCooQ2Bpbm90aWZ5XCooQydcZlIgaW50ZXJmYWNlCi0oZm9yIFxmKENXXCooQ2Bl dl9zdGF0XCooQydcZlIpLCBMaW51eCBldmVudGZkL3NpZ25hbGZkIChmb3IgZmFzdGVyIGFuZCBj bGVhbmVyCitMaWJldiBzdXBwb3J0cyBcZihDV1wqKENgc2VsZWN0XCooQydcZlIsIFxmKENXXCoo Q2Bwb2xsXCooQydcZlIsIHRoZSBMaW51eC1zcGVjaWZpYyBhaW8gYW5kIFxmKENXXCooQ2BlcG9s bFwqKEMnXGZSCitpbnRlcmZhY2VzLCB0aGUgQlNELXNwZWNpZmljIFxmKENXXCooQ2BrcXVldWVc KihDJ1xmUiBhbmQgdGhlIFNvbGFyaXMtc3BlY2lmaWMgZXZlbnQgcG9ydAorbWVjaGFuaXNtcyBm b3IgZmlsZSBkZXNjcmlwdG9yIGV2ZW50cyAoXGYoQ1dcKihDYGV2X2lvXCooQydcZlIpLCB0aGUg TGludXggXGYoQ1dcKihDYGlub3RpZnlcKihDJ1xmUgoraW50ZXJmYWNlIChmb3IgXGYoQ1dcKihD YGV2X3N0YXRcKihDJ1xmUiksIExpbnV4IGV2ZW50ZmQvc2lnbmFsZmQgKGZvciBmYXN0ZXIgYW5k IGNsZWFuZXIKwqBpbnRlci10aHJlYWQgd2FrZXVwIChcZihDV1wqKENgZXZfYXN5bmNcKihDJ1xm Uikvc2lnbmFsIGhhbmRsaW5nIChcZihDV1wqKENgZXZfc2lnbmFsXCooQydcZlIpKSByZWxhdGl2 ZQrCoHRpbWVycyAoXGYoQ1dcKihDYGV2X3RpbWVyXCooQydcZlIpLCBhYnNvbHV0ZSB0aW1lcnMg d2l0aCBjdXN0b21pc2VkIHJlc2NoZWR1bGluZwrCoChcZihDV1wqKENgZXZfcGVyaW9kaWNcKihD J1xmUiksIHN5bmNocm9ub3VzIHNpZ25hbHMgKFxmKENXXCooQ2Bldl9zaWduYWxcKihDJ1xmUiks IHByb2Nlc3Mgc3RhdHVzCkBAIC0yOTMsOSArMjkzLDEzIEBAIGl0IHdpbGwgcHJpbnQgYSBkaWFn bm9zdGljIG1lc3NhZ2UgYW5kIGFib3J0ICh2aWEgdGhlIFxmKENXXCooQ2Bhc3NlcnRcKihDJ1xm UiBtCsKgc28gXGYoQ1dcKihDYE5ERUJVR1wqKEMnXGZSIHdpbGwgZGlzYWJsZSB0aGlzIGNoZWNr aW5nKTogdGhlc2UgYXJlIHByb2dyYW1taW5nIGVycm9ycyBpbgrCoHRoZSBsaWJldiBjYWxsZXIg YW5kIG5lZWQgdG8gYmUgZml4ZWQgdGhlcmUuCsKgLlBQCi1MaWJldiBhbHNvIGhhcyBhIGZldyBp bnRlcm5hbCBlcnJvci1jaGVja2luZyBcZihDV1wqKENgYXNzZXJ0XCooQydcZlJpb25zLCBhbmQg YWxzbyBoYXMKLWV4dGVuc2l2ZSBjb25zaXN0ZW5jeSBjaGVja2luZyBjb2RlLiBUaGVzZSBkbyBu b3QgdHJpZ2dlciB1bmRlciBub3JtYWwKLWNpcmN1bXN0YW5jZXMsIGFzIHRoZXkgaW5kaWNhdGUg ZWl0aGVyIGEgYnVnIGluIGxpYmV2IG9yIHdvcnNlLgorVmlhIHRoZSBcZihDV1wqKENgRVZfRlJF UVVFTlRcKihDJ1xmUiBtYWNybyB5b3UgY2FuIGNvbXBpbGUgaW4gYW5kL29yIGVuYWJsZSBleHRl bnNpdmUKK2NvbnNpc3RlbmN5IGNoZWNraW5nIGNvZGUgaW5zaWRlIGxpYmV2IHRoYXQgY2FuIGJl IHVzZWQgdG8gY2hlY2sgZm9yCitpbnRlcm5hbCBpbmNvbnNpc3RlbmNpZXMsIHN1dWFsbHkgY2F1 c2VkIGJ5IGFwcGxpY2F0aW9uIGJ1Z3MuCisuUFAKK0xpYmV2IGFsc28gaGFzIGEgZmV3IGludGVy bmFsIGVycm9yLWNoZWNraW5nIFxmKENXXCooQ2Bhc3NlcnRcKihDJ1xmUmlvbnMuIFRoZXNlIGRv IG5vdAordHJpZ2dlciB1bmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcywgYXMgdGhleSBpbmRpY2F0 ZSBlaXRoZXIgYSBidWcgaW4gbGliZXYKK29yIHdvcnNlLgrCoC5TSCAiR0xPQkFMIEZVTkNUSU9O UyIKwqAuSVggSGVhZGVyICJHTE9CQUwgRlVOQ1RJT05TIgrCoFRoZXNlIGZ1bmN0aW9ucyBjYW4g YmUgY2FsbGVkIGFueXRpbWUsIGV2ZW4gYmVmb3JlIGluaXRpYWxpc2luZyB0aGUKQEAgLTM5NCwx MyArMzk4LDM1IEBAIFlvdSBjb3VsZCBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIGluIGhpZ2gtYXZh aWxhYmlsaXR5IHByb2dyYW1zIHRvLCBzYXksCsKgZnJlZSBzb21lIG1lbW9yeSBpZiBpdCBjYW5u b3QgYWxsb2NhdGUgbWVtb3J5LCB0byB1c2UgYSBzcGVjaWFsIGFsbG9jYXRvciwKwqBvciBldmVu IHRvIHNsZWVwIGEgd2hpbGUgYW5kIHJldHJ5IHVudGlsIHNvbWUgbWVtb3J5IGlzIGF2YWlsYWJs ZS4KwqAuU3AKK0V4YW1wbGU6IFRoZSBmb2xsb3dpbmcgaXMgdGhlIFxmKENXXCooQ2ByZWFsbG9j XCooQydcZlIgZnVuY3Rpb24gdGhhdCBsaWJldiBpdHNlbGYgdXNlcword2hpY2ggc2hvdWxkIHdv cmsgd2l0aCBcZihDV1wqKENgcmVhbGxvY1wqKEMnXGZSIGFuZCBcZihDV1wqKENgZnJlZVwqKEMn XGZSIGZ1bmN0aW9ucyBvZiBhbGwga2luZHMgYW5kCitpcyBwcm9iYWJseSBhIGdvb2QgYmFzaXMg Zm9yIHlvdXIgb3duIGltcGxlbWVudGF0aW9uLgorLlNwCisuVmIgNQorXCYgwqAgc3RhdGljIHZv aWQgKgorXCYgwqAgZXZfcmVhbGxvY19lbXVsICh2b2lkICpwdHIsIGxvbmcgc2l6ZSkgRVZfTk9F WENFUFQKK1wmIMKgIHsKK1wmIMKgIMKgIGlmIChzaXplKQorXCYgwqAgwqAgwqAgcmV0dXJuIHJl YWxsb2MgKHB0ciwgc2l6ZSk7CitcJgorXCYgwqAgwqAgZnJlZSAocHRyKTsKK1wmIMKgIMKgIHJl dHVybiAwOworXCYgwqAgfQorLlZlCisuU3AKwqBFeGFtcGxlOiBSZXBsYWNlIHRoZSBsaWJldiBh bGxvY2F0b3Igd2l0aCBvbmUgdGhhdCB3YWl0cyBhIGJpdCBhbmQgdGhlbgotcmV0cmllcyAoZXhh bXBsZSByZXF1aXJlcyBhIHN0YW5kYXJkcy1jb21wbGlhbnQgXGYoQ1dcKihDYHJlYWxsb2NcKihD J1xmUikuCityZXRyaWVzLgrCoC5TcAotLlZiIDYKKy5WYiA4CsKgXCYgwqAgc3RhdGljIHZvaWQg KgrCoFwmIMKgIHBlcnNpc3RlbnRfcmVhbGxvYyAodm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSkKwqBc JiDCoCB7CitcJiDCoCDCoCBpZiAoIXNpemUpCitcJiDCoCDCoCDCoCB7CitcJiDCoCDCoCDCoCDC oCBmcmVlIChwdHIpOworXCYgwqAgwqAgwqAgwqAgcmV0dXJuIDA7CitcJiDCoCDCoCDCoCB9Citc JgrCoFwmIMKgIMKgIGZvciAoOzspCsKgXCYgwqAgwqAgwqAgewrCoFwmIMKgIMKgIMKgIMKgIHZv aWQgKm5ld3B0ciA9IHJlYWxsb2MgKHB0ciwgc2l6ZSk7CkBAIC01MzgsOSArNTY0LDEwIEBAIG1h a2UgbGliZXYgY2hlY2sgZm9yIGEgZm9yayBpbiBlYWNoIGl0ZXJhdGlvbiBieSBlbmFibGluZyB0 aGlzIGZsYWcuCsKgVGhpcyB3b3JrcyBieSBjYWxsaW5nIFxmKENXXCooQ2BnZXRwaWQgKClcKihD J1xmUiBvbiBldmVyeSBpdGVyYXRpb24gb2YgdGhlIGxvb3AsCsKgYW5kIHRodXMgdGhpcyBtaWdo dCBzbG93IGRvd24geW91ciBldmVudCBsb29wIGlmIHlvdSBkbyBhIGxvdCBvZiBsb29wCsKgaXRl cmF0aW9ucyBhbmQgbGl0dGxlIHJlYWwgd29yaywgYnV0IGlzIHVzdWFsbHkgbm90IG5vdGljZWFi bGUgKG9uIG15Ci1HTlUvTGludXggc3lzdGVtIGZvciBleGFtcGxlLCBcZihDV1wqKENgZ2V0cGlk XCooQydcZlIgaXMgYWN0dWFsbHkgYSBzaW1wbGUgNVwtaW5zbiBzZXF1ZW5jZQotd2l0aG91dCBh IHN5c3RlbSBjYWxsIGFuZCB0aHVzIFxmSXZlcnlcZlIgZmFzdCwgYnV0IG15IEdOVS9MaW51eCBz eXN0ZW0gYWxzbyBoYXMKLVwmXGYoQ1dcKihDYHB0aHJlYWRfYXRmb3JrXCooQydcZlIgd2hpY2gg aXMgZXZlbiBmYXN0ZXIpLgorR05VL0xpbnV4IHN5c3RlbSBmb3IgZXhhbXBsZSwgXGYoQ1dcKihD YGdldHBpZFwqKEMnXGZSIGlzIGFjdHVhbGx5IGEgc2ltcGxlIDVcLWluc24KK3NlcXVlbmNlIHdp dGhvdXQgYSBzeXN0ZW0gY2FsbCBhbmQgdGh1cyBcZkl2ZXJ5XGZSIGZhc3QsIGJ1dCBteSBHTlUv TGludXgKK3N5c3RlbSBhbHNvIGhhcyBcZihDV1wqKENgcHRocmVhZF9hdGZvcmtcKihDJ1xmUiB3 aGljaCBpcyBldmVuIGZhc3RlcikuIChVcGRhdGU6IGdsaWJjCit2ZXJzaW9ucyAyLjI1IGFwcGFy ZW50bHkgcmVtb3ZlZCB0aGUgXGYoQ1dcKihDYGdldHBpZFwqKEMnXGZSIG9wdGltaXNhdGlvbiBh Z2FpbikuCsKgLlNwCsKgVGhlIGJpZyBhZHZhbnRhZ2Ugb2YgdGhpcyBmbGFnIGlzIHRoYXQgeW91 IGNhbiBmb3JnZXQgYWJvdXQgZm9yayAoYW5kCsKgZm9yZ2V0IGFib3V0IGZvcmdldHRpbmcgdG8g dGVsbCBsaWJldiBhYm91dCBmb3JraW5nLCBhbHRob3VnaCB5b3Ugc3RpbGwKQEAgLTU4MSwxMiAr NjA4LDIxIEBAIHVuYmxvY2tpbmcgdGhlIHNpZ25hbHMuCsKgLlNwCsKgSXQncyBhbHNvIHJlcXVp cmVkIGJ5IFxzLTFQT1NJWFxzMCBpbiBhIHRocmVhZGVkIHByb2dyYW0sIGFzIGxpYmV2IGNhbGxz CsKgXCZcZihDV1wqKENgc2lncHJvY21hc2tcKihDJ1xmUiwgd2hvc2UgYmVoYXZpb3VyIGlzIG9m ZmljaWFsbHkgdW5zcGVjaWZpZWQuCi0uU3AKLVRoaXMgZmxhZydzIGJlaGF2aW91ciB3aWxsIGJl Y29tZSB0aGUgZGVmYXVsdCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgbGliZXYuCisuaWUgbiAuSVAg IiIiRVZGTEFHX05PVElNRVJGRCIiIiA0CisuZWwgLklQICJcZihDV0VWRkxBR19OT1RJTUVSRkRc ZlIiIDQKKy5JWCBJdGVtICJFVkZMQUdfTk9USU1FUkZEIgorV2hlbiB0aGlzIGZsYWcgaXMgc3Bl Y2lmaWVkLCB0aGUgbGliZXYgd2lsbCBhdm9pZCB1c2luZyBhIFxmKENXXCooQ2B0aW1lcmZkXCoo QydcZlIgdG8KK2RldGVjdCB0aW1lIGp1bXBzLiBJdCB3aWxsIHN0aWxsIGJlIGFibGUgdG8gZGV0 ZWN0IHRpbWUganVtcHMsIGJ1dCB0YWtlcworbG9uZ2VyIGFuZCBoYXMgYSBsb3dlciBhY2N1cmFj eSBpbiBkb2luZyBzbywgYnV0IHNhdmVzIGEgZmlsZSBkZXNjcmlwdG9yCitwZXIgbG9vcC4KKy5T cAorVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb25seSB0cmllcyB0byB1c2UgYSBcZihDV1wq KENgdGltZXJmZFwqKEMnXGZSIHdoZW4gdGhlIGZpcnN0CitcJlxmKENXXCooQ2Bldl9wZXJpb2Rp Y1wqKEMnXGZSIHdhdGNoZXIgaXMgc3RhcnRlZCBhbmQgZmFsbHMgYmFjayBvbiBvdGhlciBtZXRo b2RzIGlmIGl0CitjYW5ub3QgYmUgY3JlYXRlZCwgYnV0IHRoaXMgYmVoYXZpb3VyIG1pZ2h0IGNo YW5nZSBpbiB0aGUgZnV0dXJlLgrCoC5pZSBuIC5JUCAiIiJFVkJBQ0tFTkRfU0VMRUNUIiIgwqAo dmFsdWUgMSwgcG9ydGFibGUgc2VsZWN0IGJhY2tlbmQpIiA0CsKgLmVsIC5JUCAiXGYoQ1dFVkJB Q0tFTkRfU0VMRUNUXGZSIMKgKHZhbHVlIDEsIHBvcnRhYmxlIHNlbGVjdCBiYWNrZW5kKSIgNArC oC5JWCBJdGVtICJFVkJBQ0tFTkRfU0VMRUNUICh2YWx1ZSAxLCBwb3J0YWJsZSBzZWxlY3QgYmFj a2VuZCkiCi1UaGlzIGlzIHlvdXIgc3RhbmRhcmQgXGZJc2VsZWN0XGZSXHwoMikgYmFja2VuZC4g Tm90IFxmSWNvbXBsZXRlbHlcZlIgc3RhbmRhcmQsIGFzCitUaGlzIGlzIHlvdXIgc3RhbmRhcmQg XGZCc2VsZWN0XGZSXHwoMikgYmFja2VuZC4gTm90IFxmSWNvbXBsZXRlbHlcZlIgc3RhbmRhcmQs IGFzCsKgbGliZXYgdHJpZXMgdG8gcm9sbCBpdHMgb3duIGZkX3NldCB3aXRoIG5vIGxpbWl0cyBv biB0aGUgbnVtYmVyIG9mIGZkcywKwqBidXQgaWYgdGhhdCBmYWlscywgZXhwZWN0IGEgZmFpcmx5 IGxvdyBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIGZkcyB3aGVuCsKgdXNpbmcgdGhpcyBiYWNrZW5k LiBJdCBkb2Vzbid0IHNjYWxlIHRvbyB3ZWxsIChPKGhpZ2hlc3RfZmQpKSwgYnV0IGl0cwpAQCAt NjA1LDcgKzY0MSw3IEBAIFRoaXMgYmFja2VuZCBtYXBzIFxmKENXXCooQ2BFVl9SRUFEXCooQydc ZlIgdG8gdGhlIFxmKENXXCooQ2ByZWFkZmRzXCooQydcZlIgc2V0CsKgLmllIG4gLklQICIiIkVW QkFDS0VORF9QT0xMIiIgwqAgwqAodmFsdWUgMiwgcG9sbCBiYWNrZW5kLCBhdmFpbGFibGUgZXZl cnl3aGVyZSBleGNlcHQgb24gd2luZG93cykiIDQKwqAuZWwgLklQICJcZihDV0VWQkFDS0VORF9Q T0xMXGZSIMKgIMKgKHZhbHVlIDIsIHBvbGwgYmFja2VuZCwgYXZhaWxhYmxlIGV2ZXJ5d2hlcmUg ZXhjZXB0IG9uIHdpbmRvd3MpIiA0CsKgLklYIEl0ZW0gIkVWQkFDS0VORF9QT0xMICh2YWx1ZSAy LCBwb2xsIGJhY2tlbmQsIGF2YWlsYWJsZSBldmVyeXdoZXJlIGV4Y2VwdCBvbiB3aW5kb3dzKSIK LUFuZCB0aGlzIGlzIHlvdXIgc3RhbmRhcmQgXGZJcG9sbFxmUlx8KDIpIGJhY2tlbmQuIEl0J3Mg bW9yZSBjb21wbGljYXRlZAorQW5kIHRoaXMgaXMgeW91ciBzdGFuZGFyZCBcZkJwb2xsXGZSXHwo MikgYmFja2VuZC4gSXQncyBtb3JlIGNvbXBsaWNhdGVkCsKgdGhhbiBzZWxlY3QsIGJ1dCBoYW5k bGVzIHNwYXJzZSBmZHMgYmV0dGVyIGFuZCBoYXMgbm8gYXJ0aWZpY2lhbArCoGxpbWl0IG9uIHRo ZSBudW1iZXIgb2YgZmRzIHlvdSBjYW4gdXNlIChleGNlcHQgaXQgd2lsbCBzbG93IGRvd24KwqBj b25zaWRlcmFibHkgd2l0aCBhIGxvdCBvZiBpbmFjdGl2ZSBmZHMpLiBJdCBzY2FsZXMgc2ltaWxh cmx5IHRvIHNlbGVjdCwKQEAgLTYxNyw3ICs2NTMsNyBAQCBUaGlzIGJhY2tlbmQgbWFwcyBcZihD V1wqKENgRVZfUkVBRFwqKEMnXGZSIHRvIFxmKENXXCooQ2BQT0xMSU4gfCBQT0xMRVJSIHwgUE9M TArCoC5pZSBuIC5JUCAiIiJFVkJBQ0tFTkRfRVBPTEwiIiDCoCAodmFsdWUgNCwgTGludXgpIiA0 CsKgLmVsIC5JUCAiXGYoQ1dFVkJBQ0tFTkRfRVBPTExcZlIgwqAgKHZhbHVlIDQsIExpbnV4KSIg NArCoC5JWCBJdGVtICJFVkJBQ0tFTkRfRVBPTEwgKHZhbHVlIDQsIExpbnV4KSIKLVVzZSB0aGUg bGludXgtc3BlY2lmaWMgXGZJZXBvbGxcZlJcfCg3KSBpbnRlcmZhY2UgKGZvciBib3RoIHByZVwt IGFuZCBwb3N0XC0yLjYuOQorVXNlIHRoZSBMaW51eC1zcGVjaWZpYyBcZkJlcG9sbFxmUlx8KDcp IGludGVyZmFjZSAoZm9yIGJvdGggcHJlXC0gYW5kIHBvc3RcLTIuNi45CsKga2VybmVscykuCsKg LlNwCsKgRm9yIGZldyBmZHMsIHRoaXMgYmFja2VuZCBpcyBhIGJpdCBsaXR0bGUgc2xvd2VyIHRo YW4gcG9sbCBhbmQgc2VsZWN0LCBidXQKQEAgLTY3MywyMiArNzA5LDY1IEBAIGZhc3RlciB0aGFu IGVwb2xsIGZvciBtYXliZSB1cCB0byBhIGh1bmRyZWQgZmlsZSBkZXNjcmlwdG9ycywgZGVwZW5k aW5nIG9uCsKgdGhlIHVzYWdlLiBTbyBzYWQuCsKgLlNwCsKgV2hpbGUgbm9taW5hbGx5IGVtYmVk ZGFibGUgaW4gb3RoZXIgZXZlbnQgbG9vcHMsIHRoaXMgZmVhdHVyZSBpcyBicm9rZW4gaW4KLWFs bCBrZXJuZWwgdmVyc2lvbnMgdGVzdGVkIHNvIGZhci4KK2EgbG90IG9mIGtlcm5lbCByZXZpc2lv bnMsIGJ1dCBwcm9iYWJseSghKSB3b3JrcyBpbiBjdXJyZW50IHZlcnNpb25zLgorLlNwCitUaGlz IGJhY2tlbmQgbWFwcyBcZihDV1wqKENgRVZfUkVBRFwqKEMnXGZSIGFuZCBcZihDV1wqKENgRVZf V1JJVEVcKihDJ1xmUiBpbiB0aGUgc2FtZSB3YXkgYXMKK1wmXGYoQ1dcKihDYEVWQkFDS0VORF9Q T0xMXCooQydcZlIuCisuaWUgbiAuSVAgIiIiRVZCQUNLRU5EX0xJTlVYQUlPIiIgwqAgKHZhbHVl IDY0LCBMaW51eCkiIDQKKy5lbCAuSVAgIlxmKENXRVZCQUNLRU5EX0xJTlVYQUlPXGZSIMKgICh2 YWx1ZSA2NCwgTGludXgpIiA0CisuSVggSXRlbSAiRVZCQUNLRU5EX0xJTlVYQUlPICh2YWx1ZSA2 NCwgTGludXgpIgorVXNlIHRoZSBMaW51eC1zcGVjaWZpYyBMaW51eCBccy0xQUlPXHMwIChcZklu b3RcZlIgXGYoQ1dhaW8oNylcZlIgYnV0IFxmKENXaW9fc3VibWl0KDIpXGZSKSBldmVudCBpbnRl cmZhY2UgYXZhaWxhYmxlIGluIHBvc3RcLTQuMTgga2VybmVscyAoYnV0IGxpYmV2Citvbmx5IHRy aWVzIHRvIHVzZSBpdCBpbiA0LjE5KykuCisuU3AKK1RoaXMgaXMgYW5vdGhlciBMaW51eCB0cmFp biB3cmVjayBvZiBhbiBldmVudCBpbnRlcmZhY2UuCisuU3AKK0lmIHRoaXMgYmFja2VuZCB3b3Jr cyBmb3IgeW91IChhcyBvZiB0aGlzIHdyaXRpbmcsIGl0IHdhcyB2ZXJ5CitleHBlcmltZW50YWwp LCBpdCBpcyB0aGUgYmVzdCBldmVudCBpbnRlcmZhY2UgYXZhaWxhYmxlIG9uIExpbnV4IGFuZCBt aWdodAorYmUgd2VsbCB3b3J0aCBlbmFibGluZyBpdCBcLSBpZiBpdCBpc24ndCBhdmFpbGFibGUg aW4geW91ciBrZXJuZWwgdGhpcyB3aWxsCitiZSBkZXRlY3RlZCBhbmQgdGhpcyBiYWNrZW5kIHdp bGwgYmUgc2tpcHBlZC4KKy5TcAorVGhpcyBiYWNrZW5kIGNhbiBiYXRjaCBvbmVzaG90IHJlcXVl c3RzIGFuZCBzdXBwb3J0cyBhIHVzZXItc3BhY2UgcmluZworYnVmZmVyIHRvIHJlY2VpdmUgZXZl bnRzLiBJdCBhbHNvIGRvZXNuJ3Qgc3VmZmVyIGZyb20gbW9zdCBvZiB0aGUgZGVzaWduCitwcm9i bGVtcyBvZiBlcG9sbCAoc3VjaCBhcyBub3QgYmVpbmcgYWJsZSB0byByZW1vdmUgZXZlbnQgc291 cmNlcyBmcm9tCit0aGUgZXBvbGwgc2V0KSwgYW5kIGdlbmVyYWxseSBzb3VuZHMgdG9vIGdvb2Qg dG8gYmUgdHJ1ZS4gQmVjYXVzZSwgdGhpcworYmVpbmcgdGhlIExpbnV4IGtlcm5lbCwgb2YgY291 cnNlIGl0IHN1ZmZlcnMgZnJvbSBhIHdob2xlIG5ldyBzZXQgb2YKK2xpbWl0YXRpb25zLCBmb3Jj aW5nIHlvdSB0byBmYWxsIGJhY2sgdG8gZXBvbGwsIGluaGVyaXRpbmcgYWxsIGl0cyBkZXNpZ24K K2lzc3Vlcy4KKy5TcAorRm9yIG9uZSwgaXQgaXMgbm90IGVhc2lseSBlbWJlZGRhYmxlIChidXQg cHJvYmFibHkgY291bGQgYmUgZG9uZSB1c2luZworYW4gZXZlbnQgZmQgYXQgc29tZSBleHRyYSBv dmVyaGVhZCkuIEl0IGFsc28gaXMgc3ViamVjdCB0byBhIHN5c3RlbSB3aWRlCitsaW1pdCB0aGF0 IGNhbiBiZSBjb25maWd1cmVkIGluIFxmSS9wcm9jL3N5cy9mcy9haW9cLW1heFwtbnJcZlIuIElm IG5vIFxzLTFBSU9cczAKK3JlcXVlc3RzIGFyZSBsZWZ0LCB0aGlzIGJhY2tlbmQgd2lsbCBiZSBz a2lwcGVkIGR1cmluZyBpbml0aWFsaXNhdGlvbiwgYW5kCit3aWxsIHN3aXRjaCB0byBlcG9sbCB3 aGVuIHRoZSBsb29wIGlzIGFjdGl2ZS4KKy5TcAorTW9zdCBwcm9ibGVtYXRpYyBpbiBwcmFjdGlj ZSwgaG93ZXZlciwgaXMgdGhhdCBub3QgYWxsIGZpbGUgZGVzY3JpcHRvcnMKK3dvcmsgd2l0aCBp dC4gRm9yIGV4YW1wbGUsIGluIExpbnV4IDUuMSwgXHMtMVRDUFxzMCBzb2NrZXRzLCBwaXBlcywg ZXZlbnQgZmRzLAorZmlsZXMsIFxmSS9kZXYvbnVsbFxmUiBhbmQgbWFueSBvdGhlcnMgYXJlIHN1 cHBvcnRlZCwgYnV0IHR0eXMgZG8gbm90IHdvcmsKK3Byb3Blcmx5IChhIGtub3duIGJ1ZyB0aGF0 IHRoZSBrZXJuZWwgZGV2ZWxvcGVycyBkb24ndCBjYXJlIGFib3V0LCBzZWUKKzxodHRwczovL2xv cmUua2VybmVsLm9yZy9wYXRjaHdvcmsvcGF0Y2gvMTA0NzQ1My8+KSwgc28gdGhpcyBpcyBub3QK Kyh5ZXQ/KSBhIGdlbmVyaWMgZXZlbnQgcG9sbGluZyBpbnRlcmZhY2UuCisuU3AKK092ZXJhbGws IGl0IHNlZW1zIHRoZSBMaW51eCBkZXZlbG9wZXJzIGp1c3QgZG9uJ3Qgd2FudCBpdCB0byBoYXZl IGEKK2dlbmVyaWMgZXZlbnQgaGFuZGxpbmcgbWVjaGFuaXNtIG90aGVyIHRoYW4gXGYoQ1dcKihD YHNlbGVjdFwqKEMnXGZSIG9yIFxmKENXXCooQ2Bwb2xsXCooQydcZlIuCisuU3AKK1RvIHdvcmsg YXJvdW5kIGFsbCB0aGVzZSBwcm9ibGVtLCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIGxpYmV2IHVz ZXMgaXRzCitlcG9sbCBiYWNrZW5kIGFzIGEgZmFsbGJhY2sgZm9yIGZpbGUgZGVzY3JpcHRvciB0 eXBlcyB0aGF0IGRvIG5vdCB3b3JrLiBPcgorZmFsbHMgYmFjayBjb21wbGV0ZWx5IHRvIGVwb2xs IGlmIHRoZSBrZXJuZWwgYWN0cyB1cC4KwqAuU3AKwqBUaGlzIGJhY2tlbmQgbWFwcyBcZihDV1wq KENgRVZfUkVBRFwqKEMnXGZSIGFuZCBcZihDV1wqKENgRVZfV1JJVEVcKihDJ1xmUiBpbiB0aGUg c2FtZSB3YXkgYXMKwqBcJlxmKENXXCooQ2BFVkJBQ0tFTkRfUE9MTFwqKEMnXGZSLgrCoC5pZSBu IC5JUCAiIiJFVkJBQ0tFTkRfS1FVRVVFIiIgwqAodmFsdWUgOCwgbW9zdCBccy0xQlNEXHMwIGNs b25lcykiIDQKwqAuZWwgLklQICJcZihDV0VWQkFDS0VORF9LUVVFVUVcZlIgwqAodmFsdWUgOCwg bW9zdCBccy0xQlNEXHMwIGNsb25lcykiIDQKwqAuSVggSXRlbSAiRVZCQUNLRU5EX0tRVUVVRSAo dmFsdWUgOCwgbW9zdCBCU0QgY2xvbmVzKSIKLUtxdWV1ZSBkZXNlcnZlcyBzcGVjaWFsIG1lbnRp b24sIGFzIGF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZywgaXQKLXdhcyBicm9rZW4gb24gYWxs IEJTRHMgZXhjZXB0IE5ldEJTRCAodXN1YWxseSBpdCBkb2Vzbid0IHdvcmsgcmVsaWFibHkKLXdp dGggYW55dGhpbmcgYnV0IHNvY2tldHMgYW5kIHBpcGVzLCBleGNlcHQgb24gRGFyd2luLCB3aGVy ZSBvZiBjb3Vyc2UKLWl0J3MgY29tcGxldGVseSB1c2VsZXNzKS4gVW5saWtlIGVwb2xsLCBob3dl dmVyLCB3aG9zZSBicm9rZW5uZXNzCi1pcyBieSBkZXNpZ24sIHRoZXNlIGtxdWV1ZSBidWdzIGNh biAoYW5kIGV2ZW50dWFsbHkgd2lsbCkgYmUgZml4ZWQKLXdpdGhvdXQgXHMtMUFQSVxzMCBjaGFu Z2VzIHRvIGV4aXN0aW5nIHByb2dyYW1zLiBGb3IgdGhpcyByZWFzb24gaXQncyBub3QgYmVpbmcK LVwmXCooTCJhdXRvLWRldGVjdGVkXCooUiIgdW5sZXNzIHlvdSBleHBsaWNpdGx5IHNwZWNpZnkg aXQgaW4gdGhlIGZsYWdzIChpLmUuIHVzaW5nCi1cJlxmKENXXCooQ2BFVkJBQ0tFTkRfS1FVRVVF XCooQydcZlIpIG9yIGxpYmV2IHdhcyBjb21waWxlZCBvbiBhIGtub3duLXRvLWJlLWdvb2QgKFwt ZW5vdWdoKQotc3lzdGVtIGxpa2UgTmV0QlNELgorS3F1ZXVlIGRlc2VydmVzIHNwZWNpYWwgbWVu dGlvbiwgYXMgYXQgdGhlIHRpbWUgdGhpcyBiYWNrZW5kIHdhcworaW1wbGVtZW50ZWQsIGl0IHdh cyBicm9rZW4gb24gYWxsIEJTRHMgZXhjZXB0IE5ldEJTRCAodXN1YWxseSBpdCBkb2Vzbid0Cit3 b3JrIHJlbGlhYmx5IHdpdGggYW55dGhpbmcgYnV0IHNvY2tldHMgYW5kIHBpcGVzLCBleGNlcHQg b24gRGFyd2luLAord2hlcmUgb2YgY291cnNlIGl0J3MgY29tcGxldGVseSB1c2VsZXNzKS4gVW5s aWtlIGVwb2xsLCBob3dldmVyLCB3aG9zZQorYnJva2VubmVzcyBpcyBieSBkZXNpZ24sIHRoZXNl IGtxdWV1ZSBidWdzIGNhbiBiZSAoYW5kIG1vc3RseSBoYXZlIGJlZW4pCitmaXhlZCB3aXRob3V0 IFxzLTFBUElcczAgY2hhbmdlcyB0byBleGlzdGluZyBwcm9ncmFtcy4gRm9yIHRoaXMgcmVhc29u IGl0J3Mgbm90CitiZWluZyBcKihMImF1dG8tZGV0ZWN0ZWRcKihSIiBvbiBhbGwgcGxhdGZvcm1z IHVubGVzcyB5b3UgZXhwbGljaXRseSBzcGVjaWZ5IGl0CitpbiB0aGUgZmxhZ3MgKGkuZS4gdXNp bmcgXGYoQ1dcKihDYEVWQkFDS0VORF9LUVVFVUVcKihDJ1xmUikgb3IgbGliZXYgd2FzIGNvbXBp bGVkIG9uIGEKK2tub3duLXRvLWJlLWdvb2QgKFwtZW5vdWdoKSBzeXN0ZW0gbGlrZSBOZXRCU0Qu CsKgLlNwCsKgWW91IHN0aWxsIGNhbiBlbWJlZCBrcXVldWUgaW50byBhIG5vcm1hbCBwb2xsIG9y IHNlbGVjdCBiYWNrZW5kIGFuZCB1c2UgaXQKwqBvbmx5IGZvciBzb2NrZXRzIChhZnRlciBoYXZp bmcgbWFkZSBzdXJlIHRoYXQgc29ja2V0cyB3b3JrIHdpdGgga3F1ZXVlIG9uCkBAIC02OTksNyAr Nzc4LDcgQEAga2VybmVsIGlzIG1vcmUgZWZmaWNpZW50ICh3aGljaCBzYXlzIG5vdGhpbmcgYWJv dXQgaXRzIGFjdHVhbCBzcGVlZCwgb2YKwqBjb3Vyc2UpLiBXaGlsZSBzdG9wcGluZywgc2V0dGlu ZyBhbmQgc3RhcnRpbmcgYW4gSS9PIHdhdGNoZXIgZG9lcyBuZXZlcgrCoGNhdXNlIGFuIGV4dHJh IHN5c3RlbSBjYWxsIGFzIHdpdGggXGYoQ1dcKihDYEVWQkFDS0VORF9FUE9MTFwqKEMnXGZSLCBp dCBzdGlsbCBhZGRzIHVwIHRvCsKgdHdvIGV2ZW50IGNoYW5nZXMgcGVyIGluY2lkZW50LiBTdXBw b3J0IGZvciBcZihDV1wqKENgZm9yayAoKVwqKEMnXGZSIGlzIHZlcnkgYmFkICh5b3UKLW1pZ2h0 IGhhdmUgdG8gbGVhayBmZCdzIG9uIGZvcmssIGJ1dCBpdCdzIG1vcmUgc2FuZSB0aGFuIGVwb2xs KSBhbmQgaXQKK21pZ2h0IGhhdmUgdG8gbGVhayBmZHMgb24gZm9yaywgYnV0IGl0J3MgbW9yZSBz YW5lIHRoYW4gZXBvbGwpIGFuZCBpdArCoGRyb3BzIGZkcyBzaWxlbnRseSBpbiBzaW1pbGFybHkg aGFyZC10by1kZXRlY3QgY2FzZXMuCsKgLlNwCsKgVGhpcyBiYWNrZW5kIHVzdWFsbHkgcGVyZm9y bXMgd2VsbCB1bmRlciBtb3N0IGNvbmRpdGlvbnMuCkBAIC03ODcsNiArODY2LDE0IEBAIHVzZWQg aWYgYXZhaWxhYmxlLgrCoC5WYiAxCsKgXCYgwqAgc3RydWN0IGV2X2xvb3AgKmxvb3AgPSBldl9s b29wX25ldyAoZXZfcmVjb21tZW5kZWRfYmFja2VuZHMgKCkgfCBFVkJBQ0tFTkRfS1FVRVVFKTsK wqAuVmUKKy5TcAorRXhhbXBsZTogU2ltaWxhcmx5LCBvbiBsaW51eCwgeW91IG1naWh0IHdhbnQg dG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlCitsaW51eCBhaW8gYmFja2VuZCBpZiBwb3NzaWJsZSwg YnV0IGZhbGwgYmFjayB0byBzb21ldGhpbmcgZWxzZSBpZiB0aGF0Citpc24ndCBhdmFpbGFibGUu CisuU3AKKy5WYiAxCitcJiDCoCBzdHJ1Y3QgZXZfbG9vcCAqbG9vcCA9IGV2X2xvb3BfbmV3IChl dl9yZWNvbW1lbmRlZF9iYWNrZW5kcyAoKSB8IEVWQkFDS0VORF9MSU5VWEFJTyk7CisuVmUKwqAu UkUKwqAuSVAgImV2X2xvb3BfZGVzdHJveSAobG9vcCkiIDQKwqAuSVggSXRlbSAiZXZfbG9vcF9k ZXN0cm95IChsb29wKSIKQEAgLTEyNjQsOCArMTM1MSw5IEBAIHdpdGggYSB3YXRjaGVyLXNwZWNp ZmljIHN0YXJ0IGZ1bmN0aW9uIChcZihDV1wqKENgZXZfVFlQRV9zdGFydCAobG9vcCwgd2F0Y2hl cgrCoGNvcnJlc3BvbmRpbmcgc3RvcCBmdW5jdGlvbiAoXGYoQ1dcKihDYGV2X1RZUEVfc3RvcCAo bG9vcCwgd2F0Y2hlciAqKVwqKEMnXGZSLgrCoC5QUArCoEFzIGxvbmcgYXMgeW91ciB3YXRjaGVy IGlzIGFjdGl2ZSAoaGFzIGJlZW4gc3RhcnRlZCBidXQgbm90IHN0b3BwZWQpIHlvdQotbXVzdCBu b3QgdG91Y2ggdGhlIHZhbHVlcyBzdG9yZWQgaW4gaXQuIE1vc3Qgc3BlY2lmaWNhbGx5IHlvdSBt dXN0IG5ldmVyCi1yZWluaXRpYWxpc2UgaXQgb3IgY2FsbCBpdHMgXGYoQ1dcKihDYGV2X1RZUEVf c2V0XCooQydcZlIgbWFjcm8uCittdXN0IG5vdCB0b3VjaCB0aGUgdmFsdWVzIHN0b3JlZCBpbiBp dCBleGNlcHQgd2hlbiBleHBsaWNpdGx5IGRvY3VtZW50ZWQKK290aGVyd2lzZS4gTW9zdCBzcGVj aWZpY2FsbHkgeW91IG11c3QgbmV2ZXIgcmVpbml0aWFsaXNlIGl0IG9yIGNhbGwgaXRzCitcJlxm KENXXCooQ2Bldl9UWVBFX3NldFwqKEMnXGZSIG1hY3JvLgrCoC5QUArCoEVhY2ggYW5kIGV2ZXJ5 IGNhbGxiYWNrIHJlY2VpdmVzIHRoZSBldmVudCBsb29wIHBvaW50ZXIgYXMgZmlyc3QsIHRoZQrC oHJlZ2lzdGVyZWQgd2F0Y2hlciBzdHJ1Y3R1cmUgYXMgc2Vjb25kLCBhbmQgYSBiaXRzZXQgb2Yg cmVjZWl2ZWQgZXZlbnRzIGFzCkBAIC0xMzY2LDcgKzE0NTQsNyBAQCBidWcgaW4geW91ciBwcm9n cmFtLgrCoExpYmV2IHdpbGwgdXN1YWxseSBzaWduYWwgYSBmZXcgXCooTCJkdW1teVwqKFIiIGV2 ZW50cyB0b2dldGhlciB3aXRoIGFuIGVycm9yLCBmb3IKwqBleGFtcGxlIGl0IG1pZ2h0IGluZGlj YXRlIHRoYXQgYSBmZCBpcyByZWFkYWJsZSBvciB3cml0YWJsZSwgYW5kIGlmIHlvdXIKwqBjYWxs YmFja3MgaXMgd2VsbC13cml0dGVuIGl0IGNhbiBqdXN0IGF0dGVtcHQgdGhlIG9wZXJhdGlvbiBh bmQgY29wZSB3aXRoCi10aGUgZXJyb3IgZnJvbSBcZklyZWFkKClcZlIgb3IgXGZJd3JpdGUoKVxm Ui4gVGhpcyB3aWxsIG5vdCB3b3JrIGluIG11bHRpLXRocmVhZGVkCit0aGUgZXJyb3IgZnJvbSBc ZkJyZWFkKClcZlIgb3IgXGZCd3JpdGUoKVxmUi4gVGhpcyB3aWxsIG5vdCB3b3JrIGluIG11bHRp LXRocmVhZGVkCsKgcHJvZ3JhbXMsIHRob3VnaCwgYXMgdGhlIGZkIGNvdWxkIGFscmVhZHkgYmUg Y2xvc2VkIGFuZCByZXVzZWQgZm9yIGFub3RoZXIKwqB0aGluZywgc28gYmV3YXJlLgrCoC5TUyAi XHMtMUdFTkVSSUMgV0FUQ0hFUiBGVU5DVElPTlNcczAiCkBAIC0xNTc4LDcgKzE2NjYsNyBAQCBN YW55IGV2ZW50IGxvb3BzIHN1cHBvcnQgXGZJd2F0Y2hlciBwcmlvcml0aWVzXGZSLCB3aGljaCBh cmUgdXN1YWxseSBzbWFsbArCoGludGVnZXJzIHRoYXQgaW5mbHVlbmNlIHRoZSBvcmRlcmluZyBv ZiBldmVudCBjYWxsYmFjayBpbnZvY2F0aW9uCsKgYmV0d2VlbiB3YXRjaGVycyBpbiBzb21lIHdh eSwgYWxsIGVsc2UgYmVpbmcgZXF1YWwuCsKgLlBQCi1JbiBsaWJldiwgV2F0Y2hlciBwcmlvcml0 aWVzIGNhbiBiZSBzZXQgdXNpbmcgXGYoQ1dcKihDYGV2X3NldF9wcmlvcml0eVwqKEMnXGZSLiBT ZWUgaXRzCitJbiBsaWJldiwgd2F0Y2hlciBwcmlvcml0aWVzIGNhbiBiZSBzZXQgdXNpbmcgXGYo Q1dcKihDYGV2X3NldF9wcmlvcml0eVwqKEMnXGZSLiBTZWUgaXRzCsKgZGVzY3JpcHRpb24gZm9y IHRoZSBtb3JlIHRlY2huaWNhbCBkZXRhaWxzIHN1Y2ggYXMgdGhlIGFjdHVhbCBwcmlvcml0eQrC oHJhbmdlLgrCoC5QUApAQCAtMTY4MiwxNCArMTc3MCwxNyBAQCBUaGlzIHNlY3Rpb24gZGVzY3Jp YmVzIGVhY2ggd2F0Y2hlciBpbiBkZXRhaWwsIGJ1dCB3aWxsIG5vdCByZXBlYXQKwqBpbmZvcm1h dGlvbiBnaXZlbiBpbiB0aGUgbGFzdCBzZWN0aW9uLiBBbnkgaW5pdGlhbGlzYXRpb24vc2V0IG1h Y3JvcywKwqBmdW5jdGlvbnMgYW5kIG1lbWJlcnMgc3BlY2lmaWMgdG8gdGhlIHdhdGNoZXIgdHlw ZSBhcmUgZXhwbGFpbmVkLgrCoC5QUAotTWVtYmVycyBhcmUgYWRkaXRpb25hbGx5IG1hcmtlZCB3 aXRoIGVpdGhlciBcZklbcmVhZFwtb25seV1cZlIsIG1lYW5pbmcgdGhhdCwKLXdoaWxlIHRoZSB3 YXRjaGVyIGlzIGFjdGl2ZSwgeW91IGNhbiBsb29rIGF0IHRoZSBtZW1iZXIgYW5kIGV4cGVjdCBz b21lCi1zZW5zaWJsZSBjb250ZW50LCBidXQgeW91IG11c3Qgbm90IG1vZGlmeSBpdCAoeW91IGNh biBtb2RpZnkgaXQgd2hpbGUgdGhlCi13YXRjaGVyIGlzIHN0b3BwZWQgdG8geW91ciBoZWFydHMg Y29udGVudCksIG9yIFxmSVtyZWFkXC13cml0ZV1cZlIsIHdoaWNoCitNb3N0IG1lbWJlcnMgYXJl IGFkZGl0aW9uYWxseSBtYXJrZWQgd2l0aCBlaXRoZXIgXGZJW3JlYWRcLW9ubHldXGZSLCBtZWFu aW5nCit0aGF0LCB3aGlsZSB0aGUgd2F0Y2hlciBpcyBhY3RpdmUsIHlvdSBjYW4gbG9vayBhdCB0 aGUgbWVtYmVyIGFuZCBleHBlY3QKK3NvbWUgc2Vuc2libGUgY29udGVudCwgYnV0IHlvdSBtdXN0 IG5vdCBtb2RpZnkgaXQgKHlvdSBjYW4gbW9kaWZ5IGl0IHdoaWxlCit0aGUgd2F0Y2hlciBpcyBz dG9wcGVkIHRvIHlvdXIgaGVhcnRzIGNvbnRlbnQpLCBvciBcZklbcmVhZFwtd3JpdGVdXGZSLCB3 aGljaArCoG1lYW5zIHlvdSBjYW4gZXhwZWN0IGl0IHRvIGhhdmUgc29tZSBzZW5zaWJsZSBjb250 ZW50IHdoaWxlIHRoZSB3YXRjaGVyCsKgaXMgYWN0aXZlLCBidXQgeW91IGNhbiBhbHNvIG1vZGlm eSBpdC4gTW9kaWZ5aW5nIGl0IG1heSBub3QgZG8gc29tZXRoaW5nCsKgc2Vuc2libGUgb3IgdGFr ZSBpbW1lZGlhdGUgZWZmZWN0IChvciBkbyBhbnl0aGluZyBhdCBhbGwpLCBidXQgbGliZXYgd2ls bArCoG5vdCBjcmFzaCBvciBtYWxmdW5jdGlvbiBpbiBhbnkgd2F5LgorLlBQCitJbiBhbnkgY2Fz ZSwgdGhlIGRvY3VtZW50YXRpb24gZm9yIGVhY2ggbWVtYmVyIHdpbGwgZXhwbGFpbiB3aGF0IHRo ZQorZWZmZWN0cyBhcmUsIGFuZCBpZiB0aGVyZSBhcmUgYW55IGFkZGl0aW9uYWwgYWNjZXNzIHJl c3RyaWN0aW9ucy4KwqAuaWUgbiAuU1MgIiIiZXZfaW8iIiBcLSBpcyB0aGlzIGZpbGUgZGVzY3Jp cHRvciByZWFkYWJsZSBvciB3cml0YWJsZT8iCsKgLmVsIC5TUyAiXGYoQ1dldl9pb1xmUCBcLSBp cyB0aGlzIGZpbGUgZGVzY3JpcHRvciByZWFkYWJsZSBvciB3cml0YWJsZT8iCsKgLklYIFN1YnNl Y3Rpb24gImV2X2lvIC0gaXMgdGhpcyBmaWxlIGRlc2NyaXB0b3IgcmVhZGFibGUgb3Igd3JpdGFi bGU/IgpAQCAtMTcyNywxMyArMTgxOCwxMyBAQCBCdXQgcmVhbGx5LCBiZXN0IHVzZSBub24tYmxv Y2tpbmcgbW9kZS4KwqBcZklUaGUgc3BlY2lhbCBwcm9ibGVtIG9mIGRpc2FwcGVhcmluZyBmaWxl IGRlc2NyaXB0b3JzXGZSCsKgLklYIFN1YnNlY3Rpb24gIlRoZSBzcGVjaWFsIHByb2JsZW0gb2Yg ZGlzYXBwZWFyaW5nIGZpbGUgZGVzY3JpcHRvcnMiCsKgLlBQCi1Tb21lIGJhY2tlbmRzIChlLmcu IGtxdWV1ZSwgZXBvbGwpIG5lZWQgdG8gYmUgdG9sZCBhYm91dCBjbG9zaW5nIGEgZmlsZQotZGVz Y3JpcHRvciAoZWl0aGVyIGR1ZSB0byBjYWxsaW5nIFxmKENXXCooQ2BjbG9zZVwqKEMnXGZSIGV4 cGxpY2l0bHkgb3IgYW55IG90aGVyIG1lYW5zLAotc3VjaCBhcyBcZihDV1wqKENgZHVwMlwqKEMn XGZSKS4gVGhlIHJlYXNvbiBpcyB0aGF0IHlvdSByZWdpc3RlciBpbnRlcmVzdCBpbiBzb21lIGZp bGUKLWRlc2NyaXB0b3IsIGJ1dCB3aGVuIGl0IGdvZXMgYXdheSwgdGhlIG9wZXJhdGluZyBzeXN0 ZW0gd2lsbCBzaWxlbnRseSBkcm9wCi10aGlzIGludGVyZXN0LiBJZiBhbm90aGVyIGZpbGUgZGVz Y3JpcHRvciB3aXRoIHRoZSBzYW1lIG51bWJlciB0aGVuIGlzCi1yZWdpc3RlcmVkIHdpdGggbGli ZXYsIHRoZXJlIGlzIG5vIGVmZmljaWVudCB3YXkgdG8gc2VlIHRoYXQgdGhpcyBpcywgaW4KLWZh Y3QsIGEgZGlmZmVyZW50IGZpbGUgZGVzY3JpcHRvci4KK1NvbWUgYmFja2VuZHMgKGUuZy4ga3F1 ZXVlLCBlcG9sbCwgbGludXhhaW8pIG5lZWQgdG8gYmUgdG9sZCBhYm91dCBjbG9zaW5nCithIGZp bGUgZGVzY3JpcHRvciAoZWl0aGVyIGR1ZSB0byBjYWxsaW5nIFxmKENXXCooQ2BjbG9zZVwqKEMn XGZSIGV4cGxpY2l0bHkgb3IgYW55IG90aGVyCittZWFucywgc3VjaCBhcyBcZihDV1wqKENgZHVw MlwqKEMnXGZSKS4gVGhlIHJlYXNvbiBpcyB0aGF0IHlvdSByZWdpc3RlciBpbnRlcmVzdCBpbiBz b21lCitmaWxlIGRlc2NyaXB0b3IsIGJ1dCB3aGVuIGl0IGdvZXMgYXdheSwgdGhlIG9wZXJhdGlu ZyBzeXN0ZW0gd2lsbCBzaWxlbnRseQorZHJvcCB0aGlzIGludGVyZXN0LiBJZiBhbm90aGVyIGZp bGUgZGVzY3JpcHRvciB3aXRoIHRoZSBzYW1lIG51bWJlciB0aGVuCitpcyByZWdpc3RlcmVkIHdp dGggbGliZXYsIHRoZXJlIGlzIG5vIGVmZmljaWVudCB3YXkgdG8gc2VlIHRoYXQgdGhpcyBpcywK K2luIGZhY3QsIGEgZGlmZmVyZW50IGZpbGUgZGVzY3JpcHRvci4KwqAuUFAKwqBUbyBhdm9pZCBo YXZpbmcgdG8gZXhwbGljaXRseSB0ZWxsIGxpYmV2IGFib3V0IHN1Y2ggY2FzZXMsIGxpYmV2IGZv bGxvd3MKwqB0aGUgZm9sbG93aW5nIHBvbGljeTogwqBFYWNoIHRpbWUgXGYoQ1dcKihDYGV2X2lv X3NldFwqKEMnXGZSIGlzIGJlaW5nIGNhbGxlZCwgbGliZXYKQEAgLTE3OTUsOSArMTg4NiwxMCBA QCByZXVzZSB0aGUgc2FtZSBjb2RlIHBhdGguCsKgXGZJVGhlIHNwZWNpYWwgcHJvYmxlbSBvZiBm b3JrXGZSCsKgLklYIFN1YnNlY3Rpb24gIlRoZSBzcGVjaWFsIHByb2JsZW0gb2YgZm9yayIKwqAu UFAKLVNvbWUgYmFja2VuZHMgKGVwb2xsLCBrcXVldWUpIGRvIG5vdCBzdXBwb3J0IFxmKENXXCoo Q2Bmb3JrICgpXCooQydcZlIgYXQgYWxsIG9yIGV4aGliaXQKLXVzZWxlc3MgYmVoYXZpb3VyLiBM aWJldiBmdWxseSBzdXBwb3J0cyBmb3JrLCBidXQgbmVlZHMgdG8gYmUgdG9sZCBhYm91dAotaXQg aW4gdGhlIGNoaWxkIGlmIHlvdSB3YW50IHRvIGNvbnRpbnVlIHRvIHVzZSBpdCBpbiB0aGUgY2hp bGQuCitTb21lIGJhY2tlbmRzIChlcG9sbCwga3F1ZXVlLCBsaW51eGFpbywgaW91cmluZykgZG8g bm90IHN1cHBvcnQgXGYoQ1dcKihDYGZvcmsgKClcKihDJ1xmUgorYXQgYWxsIG9yIGV4aGliaXQg dXNlbGVzcyBiZWhhdmlvdXIuIExpYmV2IGZ1bGx5IHN1cHBvcnRzIGZvcmssIGJ1dCBuZWVkcwor dG8gYmUgdG9sZCBhYm91dCBpdCBpbiB0aGUgY2hpbGQgaWYgeW91IHdhbnQgdG8gY29udGludWUg dG8gdXNlIGl0IGluIHRoZQorY2hpbGQuCsKgLlBQCsKgVG8gc3VwcG9ydCBmb3JrIGluIHlvdXIg Y2hpbGQgcHJvY2Vzc2VzLCB5b3UgaGF2ZSB0byBjYWxsIFxmKENXXCooQ2Bldl9sb29wX2ZvcmsK wqAoKVwqKEMnXGZSIGFmdGVyIGEgZm9yayBpbiB0aGUgY2hpbGQsIGVuYWJsZSBcZihDV1wqKENg RVZGTEFHX0ZPUktDSEVDS1wqKEMnXGZSLCBvciByZXNvcnQgdG8KQEAgLTE4MTIsMTMgKzE5MDQs MTMgQEAgc2VudCBhIFxzLTFTSUdQSVBFLFxzMCB3aGljaCwgYnkgZGVmYXVsdCwgYWJvcnRzIHlv dXIgcHJvZ3JhbS4gRm9yIG1vc3QgcHJvZ3JhbXMKwqB0aGlzIGlzIHNlbnNpYmxlIGJlaGF2aW91 ciwgZm9yIGRhZW1vbnMsIHRoaXMgaXMgdXN1YWxseSB1bmRlc2lyYWJsZS4KwqAuUFAKwqBTbyB3 aGVuIHlvdSBlbmNvdW50ZXIgc3B1cmlvdXMsIHVuZXhwbGFpbmVkIGRhZW1vbiBleGl0cywgbWFr ZSBzdXJlIHlvdQotaWdub3JlIFxzLTFTSUdQSVBFIFxzMChhbmQgbWF5YmUgbWFrZSBzdXJlIHlv dSBsb2cgdGhlIGV4aXQgc3RhdHVzIG9mIHlvdXIgZGFlbW9uCitpZ25vcmUgXHMtMVNJR1BJUEVc czAgKGFuZCBtYXliZSBtYWtlIHN1cmUgeW91IGxvZyB0aGUgZXhpdCBzdGF0dXMgb2YgeW91ciBk YWVtb24KwqBzb21ld2hlcmUsIGFzIHRoYXQgd291bGQgaGF2ZSBnaXZlbiB5b3UgYSBiaWcgY2x1 ZSkuCsKgLlBQCi1cZklUaGUgc3BlY2lhbCBwcm9ibGVtIG9mIFxmSWFjY2VwdCgpXGZJaW5nIHdo ZW4geW91IGNhbid0XGZSCitcZklUaGUgc3BlY2lhbCBwcm9ibGVtIG9mIFxmKEJJYWNjZXB0KClc Zklpbmcgd2hlbiB5b3UgY2FuJ3RcZlIKwqAuSVggU3Vic2VjdGlvbiAiVGhlIHNwZWNpYWwgcHJv YmxlbSBvZiBhY2NlcHQoKWluZyB3aGVuIHlvdSBjYW4ndCIKwqAuUFAKLU1hbnkgaW1wbGVtZW50 YXRpb25zIG9mIHRoZSBccy0xUE9TSVggXHMwXGYoQ1dcKihDYGFjY2VwdFwqKEMnXGZSIGZ1bmN0 aW9uIChmb3IgZXhhbXBsZSwKK01hbnkgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBccy0xUE9TSVhc czAgXGYoQ1dcKihDYGFjY2VwdFwqKEMnXGZSIGZ1bmN0aW9uIChmb3IgZXhhbXBsZSwKwqBmb3Vu ZCBpbiBwb3N0XC0yMDA0IExpbnV4KSBoYXZlIHRoZSBwZWN1bGlhciBiZWhhdmlvdXIgb2Ygbm90 IHJlbW92aW5nIGEKwqBjb25uZWN0aW9uIGZyb20gdGhlIHBlbmRpbmcgcXVldWUgaW4gYWxsIGVy cm9yIGNhc2VzLgrCoC5QUApAQCAtMTg2NCwxNCArMTk1NiwzMyBAQCBvcHBvcnR1bml0eSBmb3Ig YSBEb1MgYXR0YWNrLgrCoC5JWCBJdGVtICJldl9pb19zZXQgKGV2X2lvICosIGludCBmZCwgaW50 IGV2ZW50cykiCsKgLlBECsKgQ29uZmlndXJlcyBhbiBcZihDV1wqKENgZXZfaW9cKihDJ1xmUiB3 YXRjaGVyLiBUaGUgXGYoQ1dcKihDYGZkXCooQydcZlIgaXMgdGhlIGZpbGUgZGVzY3JpcHRvciB0 bwotcmVjZWl2ZSBldmVudHMgZm9yIGFuZCBcZihDV1wqKENgZXZlbnRzXCooQydcZlIgaXMgZWl0 aGVyIFxmKENXXCooQ2BFVl9SRUFEXCooQydcZlIsIFxmKENXXCooQ2BFVl9XUklURVwqKEMnXGZS IG9yCi1cJlxmKENXXCooQ2BFVl9SRUFEIHwgRVZfV1JJVEVcKihDJ1xmUiwgdG8gZXhwcmVzcyB0 aGUgZGVzaXJlIHRvIHJlY2VpdmUgdGhlIGdpdmVuIGV2ZW50cy4KLS5JUCAiaW50IGZkIFtyZWFk XC1vbmx5XSIgNAotLklYIEl0ZW0gImludCBmZCBbcmVhZC1vbmx5XSIKLVRoZSBmaWxlIGRlc2Ny aXB0b3IgYmVpbmcgd2F0Y2hlZC4KLS5JUCAiaW50IGV2ZW50cyBbcmVhZFwtb25seV0iIDQKLS5J WCBJdGVtICJpbnQgZXZlbnRzIFtyZWFkLW9ubHldIgotVGhlIGV2ZW50cyBiZWluZyB3YXRjaGVk LgorcmVjZWl2ZSBldmVudHMgZm9yIGFuZCBcZihDV1wqKENgZXZlbnRzXCooQydcZlIgaXMgZWl0 aGVyIFxmKENXXCooQ2BFVl9SRUFEXCooQydcZlIsIFxmKENXXCooQ2BFVl9XUklURVwqKEMnXGZS LCBib3RoCitcJlxmKENXXCooQ2BFVl9SRUFEIHwgRVZfV1JJVEVcKihDJ1xmUiBvciBcZihDVzBc ZlIsIHRvIGV4cHJlc3MgdGhlIGRlc2lyZSB0byByZWNlaXZlIHRoZSBnaXZlbgorZXZlbnRzLgor LlNwCitOb3RlIHRoYXQgc2V0dGluZyB0aGUgXGYoQ1dcKihDYGV2ZW50c1wqKEMnXGZSIHRvIFxm KENXMFxmUiBhbmQgc3RhcnRpbmcgdGhlIHdhdGNoZXIgaXMKK3N1cHBvcnRlZCwgYnV0IG5vdCBz cGVjaWFsbHkgb3B0aW1pemVkIFwtIGlmIHlvdXIgcHJvZ3JhbSBzb21ldGltZXMgaGFwcGVucwor dG8gZ2VuZXJhdGUgdGhpcyBjb21iaW5hdGlvbiB0aGlzIGlzIGZpbmUsIGJ1dCBpZiBpdCBpcyBl YXN5IHRvIGF2b2lkCitzdGFydGluZyBhbiBpbyB3YXRjaGVyIHdhdGNoaW5nIGZvciBubyBldmVu dHMgeW91IHNob3VsZCBkbyBzby4KKy5JUCAiZXZfaW9fbW9kaWZ5IChldl9pbyAqLCBpbnQgZXZl bnRzKSIgNAorLklYIEl0ZW0gImV2X2lvX21vZGlmeSAoZXZfaW8gKiwgaW50IGV2ZW50cykiCitT aW1pbGFyIHRvIFxmKENXXCooQ2Bldl9pb19zZXRcKihDJ1xmUiwgYnV0IG9ubHkgY2hhbmdlcyB0 aGUgZXZlbnQgbWFzay4gVXNpbmcgdGhpcyBtaWdodAorYmUgZmFzdGVyIHdpdGggc29tZSBiYWNr ZW5kcywgYXMgbGliZXYgY2FuIGFzc3VtZSB0aGF0IHRoZSBcZihDV1wqKENgZmRcKihDJ1xmUiBz dGlsbAorcmVmZXJzIHRvIHRoZSBzYW1lIHVuZGVybHlpbmcgZmlsZSBkZXNjcmlwdGlvbiwgc29t ZXRoaW5nIGl0IGNhbm5vdCBkbword2hlbiB1c2luZyBcZihDV1wqKENgZXZfaW9fc2V0XCooQydc ZlIuCisuSVAgImludCBmZCBbbm9cLW1vZGlmeV0iIDQKKy5JWCBJdGVtICJpbnQgZmQgW25vLW1v ZGlmeV0iCitUaGUgZmlsZSBkZXNjcmlwdG9yIGJlaW5nIHdhdGNoZWQuIFdoaWxlIGl0IGNhbiBi ZSByZWFkIGF0IGFueSB0aW1lLCB5b3UKK211c3Qgbm90IG1vZGlmeSB0aGlzIG1lbWJlciBldmVu IHdoZW4gdGhlIHdhdGNoZXIgaXMgc3RvcHBlZCBcLSBhbHdheXMgdXNlCitcJlxmKENXXCooQ2Bl dl9pb19zZXRcKihDJ1xmUiBmb3IgdGhhdC4KKy5JUCAiaW50IGV2ZW50cyBbbm9cLW1vZGlmeV0i IDQKKy5JWCBJdGVtICJpbnQgZXZlbnRzIFtuby1tb2RpZnldIgorVGhlIHNldCBvZiBldmVudHMg dGhlIGZkIGlzIGJlaW5nIHdhdGNoZWQgZm9yLCBhbW9uZyBvdGhlciBmbGFncy4gUmVtZW1iZXIK K3RoYXQgdGhpcyBpcyBhIGJpdCBzZXQgXC0gdG8gdGVzdCBmb3IgXGYoQ1dcKihDYEVWX1JFQURc KihDJ1xmUiwgdXNlIFxmKENXXCooQ2B3XC0+ZXZlbnRzICYKK0VWX1JFQURcKihDJ1xmUiwgYW5k IHNpbWlsYXJseSBmb3IgXGYoQ1dcKihDYEVWX1dSSVRFXCooQydcZlIuCisuU3AKK0FzIHdpdGgg XGYoQ1dcKihDYGZkXCooQydcZlIsIHlvdSBtdXN0IG5vdCBtb2RpZnkgdGhpcyBtZW1iZXIgZXZl biB3aGVuIHRoZSB3YXRjaGVyIGlzCitzdG9wcGVkLCBhbHdheXMgdXNlIFxmKENXXCooQ2Bldl9p b19zZXRcKihDJ1xmUiBvciBcZihDV1wqKENgZXZfaW9fbW9kaWZ5XCooQydcZlIgZm9yIHRoYXQu CsKgLlBQCsKgXGZJRXhhbXBsZXNcZlIKwqAuSVggU3Vic2VjdGlvbiAiRXhhbXBsZXMiCkBAIC0y MjUyLDExICsyMzYzLDExIEBAIGRldGVybWluaXN0aWMgYmVoYXZpb3VyIGluIHRoaXMgY2FzZSAo eW91IGNhbiBkbyBub3RoaW5nIGFnYWluc3QKwqAuSVAgImV2X3RpbWVyX3NldCAoZXZfdGltZXIg KiwgZXZfdHN0YW1wIGFmdGVyLCBldl90c3RhbXAgcmVwZWF0KSIgNArCoC5JWCBJdGVtICJldl90 aW1lcl9zZXQgKGV2X3RpbWVyICosIGV2X3RzdGFtcCBhZnRlciwgZXZfdHN0YW1wIHJlcGVhdCki CsKgLlBECi1Db25maWd1cmUgdGhlIHRpbWVyIHRvIHRyaWdnZXIgYWZ0ZXIgXGYoQ1dcKihDYGFm dGVyXCooQydcZlIgc2Vjb25kcy4gSWYgXGYoQ1dcKihDYHJlcGVhdFwqKEMnXGZSCi1pcyBcZihD VzAuXGZSLCB0aGVuIGl0IHdpbGwgYXV0b21hdGljYWxseSBiZSBzdG9wcGVkIG9uY2UgdGhlIHRp bWVvdXQgaXMKLXJlYWNoZWQuIElmIGl0IGlzIHBvc2l0aXZlLCB0aGVuIHRoZSB0aW1lciB3aWxs IGF1dG9tYXRpY2FsbHkgYmUKLWNvbmZpZ3VyZWQgdG8gdHJpZ2dlciBhZ2FpbiBcZihDV1wqKENg cmVwZWF0XCooQydcZlIgc2Vjb25kcyBsYXRlciwgYWdhaW4sIGFuZCBhZ2FpbiwKLXVudGlsIHN0 b3BwZWQgbWFudWFsbHkuCitDb25maWd1cmUgdGhlIHRpbWVyIHRvIHRyaWdnZXIgYWZ0ZXIgXGYo Q1dcKihDYGFmdGVyXCooQydcZlIgc2Vjb25kcyAoZnJhY3Rpb25hbCBhbmQKK25lZ2F0aXZlIHZh bHVlcyBhcmUgc3VwcG9ydGVkKS4gSWYgXGYoQ1dcKihDYHJlcGVhdFwqKEMnXGZSIGlzIFxmKENX MC5cZlIsIHRoZW4gaXQgd2lsbAorYXV0b21hdGljYWxseSBiZSBzdG9wcGVkIG9uY2UgdGhlIHRp bWVvdXQgaXMgcmVhY2hlZC4gSWYgaXQgaXMgcG9zaXRpdmUsCit0aGVuIHRoZSB0aW1lciB3aWxs IGF1dG9tYXRpY2FsbHkgYmUgY29uZmlndXJlZCB0byB0cmlnZ2VyIGFnYWluIFxmKENXXCooQ2By ZXBlYXRcKihDJ1xmUgorc2Vjb25kcyBsYXRlciwgYWdhaW4sIGFuZCBhZ2FpbiwgdW50aWwgc3Rv cHBlZCBtYW51YWxseS4KwqAuU3AKwqBUaGUgdGltZXIgaXRzZWxmIHdpbGwgZG8gYSBiZXN0LWVm Zm9ydCBhdCBhdm9pZGluZyBkcmlmdCwgdGhhdCBpcywgaWYKwqB5b3UgY29uZmlndXJlIGEgdGlt ZXIgdG8gdHJpZ2dlciBldmVyeSAxMCBzZWNvbmRzLCB0aGVuIGl0IHdpbGwgbm9ybWFsbHkKQEAg LTIzNjMsOCArMjQ3NCw4IEBAIGl0LCBhcyBpdCB1c2VzIGEgcmVsYXRpdmUgdGltZW91dCkuCsKg LlBQCsKgXCZcZihDV1wqKENgZXZfcGVyaW9kaWNcKihDJ1xmUiB3YXRjaGVycyBjYW4gYWxzbyBi ZSB1c2VkIHRvIGltcGxlbWVudCB2YXN0bHkgbW9yZSBjb21wbGV4CsKgdGltZXJzLCBzdWNoIGFz IHRyaWdnZXJpbmcgYW4gZXZlbnQgb24gZWFjaCBcKihMIm1pZG5pZ2h0LCBsb2NhbCB0aW1lXCoo UiIsIG9yCi1vdGhlciBjb21wbGljYXRlZCBydWxlcy4gVGhpcyBjYW5ub3QgYmUgZG9uZSB3aXRo IFxmKENXXCooQ2Bldl90aW1lclwqKEMnXGZSIHdhdGNoZXJzLCBhcwotdGhvc2UgY2Fubm90IHJl YWN0IHRvIHRpbWUganVtcHMuCitvdGhlciBjb21wbGljYXRlZCBydWxlcy4gVGhpcyBjYW5ub3Qg ZWFzaWx5IGJlIGRvbmUgd2l0aCBcZihDV1wqKENgZXZfdGltZXJcKihDJ1xmUgord2F0Y2hlcnMs IGFzIHRob3NlIGNhbm5vdCByZWFjdCB0byB0aW1lIGp1bXBzLgrCoC5QUArCoEFzIHdpdGggdGlt ZXJzLCB0aGUgY2FsbGJhY2sgaXMgZ3VhcmFudGVlZCB0byBiZSBpbnZva2VkIG9ubHkgd2hlbiB0 aGUKwqBwb2ludCBpbiB0aW1lIHdoZXJlIGl0IGlzIHN1cHBvc2VkIHRvIHRyaWdnZXIgaGFzIHBh c3NlZC4gSWYgbXVsdGlwbGUKQEAgLTI0MzUsNyArMjU0Niw3IEBAIGlnbm9yZWQuIEluc3RlYWQs IGVhY2ggdGltZSB0aGUgcGVyaW9kaWMgd2F0Y2hlciBnZXRzIHNjaGVkdWxlZCwgdGhlCsKgcmVz Y2hlZHVsZSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSB3YXRjaGVyIGFzIGZpcnN0 LCBhbmQgdGhlCsKgY3VycmVudCB0aW1lIGFzIHNlY29uZCBhcmd1bWVudC4KwqAuU3AKLVwmXHMt MU5PVEU6IFxzMFxmSVRoaXMgY2FsbGJhY2sgXHMtMU1VU1QgTk9UXHMwIHN0b3Agb3IgZGVzdHJv eSBhbnkgcGVyaW9kaWMgd2F0Y2hlciwgZXZlciwKK1wmXHMtMU5PVEU6XHMwIFxmSVRoaXMgY2Fs bGJhY2sgXHMtMU1VU1QgTk9UXHMwIHN0b3Agb3IgZGVzdHJveSBhbnkgcGVyaW9kaWMgd2F0Y2hl ciwgZXZlciwKwqBvciBtYWtlIFxzLTFBTllcczAgb3RoZXIgZXZlbnQgbG9vcCBtb2RpZmljYXRp b25zIHdoYXRzb2V2ZXIsIHVubGVzcyBleHBsaWNpdGx5CsKgYWxsb3dlZCBieSBkb2N1bWVudGF0 aW9uIGhlcmVcZlIuCsKgLlNwCkBAIC0yNDU5LDE0ICsyNTcwLDM0IEBAIEl0IG11c3QgcmV0dXJu IHRoZSBuZXh0IHRpbWUgdG8gdHJpZ2dlciwgYmFzZWQgb24gdGhlIHBhc3NlZCB0aW1lIHZhbHVl CsKgd2lsbCB1c3VhbGx5IGJlIGNhbGxlZCBqdXN0IGJlZm9yZSB0aGUgY2FsbGJhY2sgd2lsbCBi ZSB0cmlnZ2VyZWQsIGJ1dArCoG1pZ2h0IGJlIGNhbGxlZCBhdCBvdGhlciB0aW1lcywgdG9vLgrC oC5TcAotXCZccy0xTk9URTogXHMwXGZJVGhpcyBjYWxsYmFjayBtdXN0IGFsd2F5cyByZXR1cm4g YSB0aW1lIHRoYXQgaXMgaGlnaGVyIHRoYW4gb3IKK1wmXHMtMU5PVEU6XHMwIFxmSVRoaXMgY2Fs bGJhY2sgbXVzdCBhbHdheXMgcmV0dXJuIGEgdGltZSB0aGF0IGlzIGhpZ2hlciB0aGFuIG9yCsKg ZXF1YWwgdG8gdGhlIHBhc3NlZCBcZihDSVwqKENgbm93XCooQydcZkkgdmFsdWVcZlIuCsKgLlNw CsKgVGhpcyBjYW4gYmUgdXNlZCB0byBjcmVhdGUgdmVyeSBjb21wbGV4IHRpbWVycywgc3VjaCBh cyBhIHRpbWVyIHRoYXQKLXRyaWdnZXJzIG9uIFwqKEwibmV4dCBtaWRuaWdodCwgbG9jYWwgdGlt ZVwqKFIiLiBUbyBkbyB0aGlzLCB5b3Ugd291bGQgY2FsY3VsYXRlIHRoZQotbmV4dCBtaWRuaWdo dCBhZnRlciBcZihDV1wqKENgbm93XCooQydcZlIgYW5kIHJldHVybiB0aGUgdGltZXN0YW1wIHZh bHVlIGZvciB0aGlzLiBIb3cKLXlvdSBkbyB0aGlzIGlzLCBhZ2FpbiwgdXAgdG8geW91IChidXQg aXQgaXMgbm90IHRyaXZpYWwsIHdoaWNoIGlzIHRoZSBtYWluCi1yZWFzb24gSSBvbWl0dGVkIGl0 IGFzIGFuIGV4YW1wbGUpLgordHJpZ2dlcnMgb24gXCooTCJuZXh0IG1pZG5pZ2h0LCBsb2NhbCB0 aW1lXCooUiIuIFRvIGRvIHRoaXMsIHlvdSB3b3VsZCBjYWxjdWxhdGUKK3RoZSBuZXh0IG1pZG5p Z2h0IGFmdGVyIFxmKENXXCooQ2Bub3dcKihDJ1xmUiBhbmQgcmV0dXJuIHRoZSB0aW1lc3RhbXAg dmFsdWUgZm9yCit0aGlzLiBIZXJlIGlzIGEgKGNvbXBsZXRlbHkgdW50ZXN0ZWQsIG5vIGVycm9y IGNoZWNraW5nKSBleGFtcGxlIG9uIGhvdyB0bworZG8gdGhpczoKKy5TcAorLlZiIDEKK1wmIMKg ICNpbmNsdWRlIDx0aW1lLmg+CitcJgorXCYgwqAgc3RhdGljIGV2X3RzdGFtcAorXCYgwqAgbXlf cmVzY2hlZHVsZXIgKGV2X3BlcmlvZGljICp3LCBldl90c3RhbXAgbm93KQorXCYgwqAgeworXCYg wqAgwqAgdGltZV90IHRub3cgPSAodGltZV90KW5vdzsKK1wmIMKgIMKgIHN0cnVjdCB0bSB0bTsK K1wmIMKgIMKgIGxvY2FsdGltZV9yICgmdG5vdywgJnRtKTsKK1wmCitcJiDCoCDCoCB0bS50bV9z ZWMgPSB0bS50bV9taW4gPSB0bS50bV9ob3VyID0gMDsgLy8gbWlkbmlnaHQgY3VycmVudCBkYXkK K1wmIMKgIMKgICsrdG0udG1fbWRheTsgLy8gbWlkbmlnaHQgbmV4dCBkYXkKK1wmCitcJiDCoCDC oCByZXR1cm4gbWt0aW1lICgmdG0pOworXCYgwqAgfQorLlZlCisuU3AKK05vdGU6IHRoaXMgY29k ZSBtaWdodCBydW4gaW50byB0cm91YmxlIG9uIGRheXMgdGhhdCBoYXZlIG1vcmUgdGhlbiB0d28K K21pZG5pZ2h0cyAoYmVnaW5uaW5nIGFuZCBlbmQpLgrCoC5SRQrCoC5SUyA0CsKgLlJFCkBAIC0y NTk0LDcgKzI3MjUsNyBAQCB0byBpbnN0YWxsIGEgZm9yayBoYW5kbGVyIHdpdGggXGYoQ1dcKihD YHB0aHJlYWRfYXRmb3JrXCooQydcZlIgdGhhdCByZXNldHMgaXQuCsKgY2F0Y2ggZm9yayBjYWxs cyBkb25lIGJ5IGxpYnJhcmllcyAoc3VjaCBhcyB0aGUgbGliYykgYXMgd2VsbC4KwqAuUFAKwqBJ biBjdXJyZW50IHZlcnNpb25zIG9mIGxpYmV2LCB0aGUgc2lnbmFsIHdpbGwgbm90IGJlIGJsb2Nr ZWQgaW5kZWZpbml0ZWx5Ci11bmxlc3MgeW91IHVzZSB0aGUgXGYoQ1dcKihDYHNpZ25hbGZkXCoo QydcZlIgXHMtMUFQSSBcczAoXGYoQ1dcKihDYEVWX1NJR05BTEZEXCooQydcZlIpLiBXaGlsZSB0 aGlzIHJlZHVjZXMKK3VubGVzcyB5b3UgdXNlIHRoZSBcZihDV1wqKENgc2lnbmFsZmRcKihDJ1xm UiBccy0xQVBJXHMwIChcZihDV1wqKENgRVZfU0lHTkFMRkRcKihDJ1xmUikuIFdoaWxlIHRoaXMg cmVkdWNlcwrCoHRoZSB3aW5kb3cgb2Ygb3Bwb3J0dW5pdHkgZm9yIHByb2JsZW1zLCBpdCB3aWxs IG5vdCBnbyBhd2F5LCBhcyBsaWJldgrCoFwmXGZJaGFzXGZSIHRvIG1vZGlmeSB0aGUgc2lnbmFs IG1hc2ssIGF0IGxlYXN0IHRlbXBvcmFyaWx5LgrCoC5QUApAQCAtMzY0Niw4ICszNzc3LDggQEAg bm90aWZpY2F0aW9uLCBhbmQgdGhlIGNhbGxiYWNrIGJlaW5nIGludm9rZWQuCsKgLlNIICJPVEhF UiBGVU5DVElPTlMiCsKgLklYIEhlYWRlciAiT1RIRVIgRlVOQ1RJT05TIgrCoFRoZXJlIGFyZSBz b21lIG90aGVyIGZ1bmN0aW9ucyBvZiBwb3NzaWJsZSBpbnRlcmVzdC4gRGVzY3JpYmVkLiBIZXJl LiBOb3cuCi0uSVAgImV2X29uY2UgKGxvb3AsIGludCBmZCwgaW50IGV2ZW50cywgZXZfdHN0YW1w IHRpbWVvdXQsIGNhbGxiYWNrKSIgNAotLklYIEl0ZW0gImV2X29uY2UgKGxvb3AsIGludCBmZCwg aW50IGV2ZW50cywgZXZfdHN0YW1wIHRpbWVvdXQsIGNhbGxiYWNrKSIKKy5JUCAiZXZfb25jZSAo bG9vcCwgaW50IGZkLCBpbnQgZXZlbnRzLCBldl90c3RhbXAgdGltZW91dCwgY2FsbGJhY2ssIGFy ZykiIDQKKy5JWCBJdGVtICJldl9vbmNlIChsb29wLCBpbnQgZmQsIGludCBldmVudHMsIGV2X3Rz dGFtcCB0aW1lb3V0LCBjYWxsYmFjaywgYXJnKSIKwqBUaGlzIGZ1bmN0aW9uIGNvbWJpbmVzIGEg c2ltcGxlIHRpbWVyIGFuZCBhbiBJL08gd2F0Y2hlciwgY2FsbHMgeW91cgrCoGNhbGxiYWNrIG9u IHdoaWNoZXZlciBldmVudCBoYXBwZW5zIGZpcnN0IGFuZCBhdXRvbWF0aWNhbGx5IHN0b3BzIGJv dGgKwqB3YXRjaGVycy4gVGhpcyBpcyB1c2VmdWwgaWYgeW91IHdhbnQgdG8gd2FpdCBmb3IgYSBz aW5nbGUgZXZlbnQgb24gYW4gZmQKQEAgLTQxMDcsMTUgKzQyMzgsMTUgQEAgbGliZXYgc291cmNl cyBjYW4gYmUgY29tcGlsZWQgYXMgXCooQysuIFRoZXJlZm9yZSwgY29kZSB0aGF0IHVzZXMgdGhl IEMgXHMtMUFQSVwKwqB3aWxsIHdvcmsgZmluZS4KwqAuUFAKwqBQcm9wZXIgZXhjZXB0aW9uIHNw ZWNpZmljYXRpb25zIG1pZ2h0IGhhdmUgdG8gYmUgYWRkZWQgdG8gY2FsbGJhY2tzIHBhc3NlZAot dG8gbGliZXY6IGV4Y2VwdGlvbnMgbWF5IGJlIHRocm93biBvbmx5IGZyb20gd2F0Y2hlciBjYWxs YmFja3MsIGFsbAotb3RoZXIgY2FsbGJhY2tzIChhbGxvY2F0b3IsIHN5c2VyciwgbG9vcCBhY3F1 aXJlL3JlbGVhc2UgYW5kIHBlcmlvZGljCi1yZXNjaGVkdWxlIGNhbGxiYWNrcykgbXVzdCBub3Qg dGhyb3cgZXhjZXB0aW9ucywgYW5kIG1pZ2h0IG5lZWQgYSBcZihDV1wqKENgdGhyb3cKLSgpXCoo QydcZlIgc3BlY2lmaWNhdGlvbi4gSWYgeW91IGhhdmUgY29kZSB0aGF0IG5lZWRzIHRvIGJlIGNv bXBpbGVkIGFzIGJvdGggQwotYW5kIFwqKEMrIHlvdSBjYW4gdXNlIHRoZSBcZihDV1wqKENgRVZf VEhST1dcKihDJ1xmUiBtYWNybyBmb3IgdGhpczoKK3RvIGxpYmV2OiBleGNlcHRpb25zIG1heSBi ZSB0aHJvd24gb25seSBmcm9tIHdhdGNoZXIgY2FsbGJhY2tzLCBhbGwgb3RoZXIKK2NhbGxiYWNr cyAoYWxsb2NhdG9yLCBzeXNlcnIsIGxvb3AgYWNxdWlyZS9yZWxlYXNlIGFuZCBwZXJpb2RpYyBy ZXNjaGVkdWxlCitjYWxsYmFja3MpIG11c3Qgbm90IHRocm93IGV4Y2VwdGlvbnMsIGFuZCBtaWdo dCBuZWVkIGEgXGYoQ1dcKihDYG5vZXhjZXB0XCooQydcZlIKK3NwZWNpZmljYXRpb24uIElmIHlv dSBoYXZlIGNvZGUgdGhhdCBuZWVkcyB0byBiZSBjb21waWxlZCBhcyBib3RoIEMgYW5kCitcJlwq KEMrIHlvdSBjYW4gdXNlIHRoZSBcZihDV1wqKENgRVZfTk9FWENFUFRcKihDJ1xmUiBtYWNybyBm b3IgdGhpczoKwqAuUFAKwqAuVmIgNgrCoFwmIMKgIHN0YXRpYyB2b2lkCi1cJiDCoCBmYXRhbF9l cnJvciAoY29uc3QgY2hhciAqbXNnKSBFVl9USFJPVworXCYgwqAgZmF0YWxfZXJyb3IgKGNvbnN0 IGNoYXIgKm1zZykgRVZfTk9FWENFUFQKwqBcJiDCoCB7CsKgXCYgwqAgwqAgcGVycm9yIChtc2cp OwrCoFwmIMKgIMKgIGFib3J0ICgpOwpAQCAtNDI4OSw2ICs0NDIwLDkgQEAgbWV0aG9kLgrCoC5T cArCoEZvciBcZihDV1wqKENgZXY6OmVtYmVkXCooQydcZlIgd2F0Y2hlcnMgdGhpcyBtZXRob2Qg aXMgY2FsbGVkIFxmKENXXCooQ2BzZXRfZW1iZWRcKihDJ1xmUiwgdG8gYXZvaWQKwqBjbGFzaGlu ZyB3aXRoIHRoZSBcZihDV1wqKENgc2V0IChsb29wKVwqKEMnXGZSIG1ldGhvZC4KKy5TcAorRm9y IFxmKENXXCooQ2Bldjo6aW9cKihDJ1xmUiB3YXRjaGVycyB0aGVyZSBpcyBhbiBhZGRpdGlvbmFs IFxmKENXXCooQ2BzZXRcKihDJ1xmUiBtZXRob2QgdGhhdCBhY2VwdHMgYQorbmV3IGV2ZW50IG1h c2sgb25seSwgYW5kIGludGVybmFsbHkgY2FsbHMgXGYoQ1dcKihDYGV2X2lvX21vZGZpZnlcKihD J1xmUi4KwqAuSVAgIndcLT5zdGFydCAoKSIgNArCoC5JWCBJdGVtICJ3LT5zdGFydCAoKSIKwqBT dGFydHMgdGhlIHdhdGNoZXIuIE5vdGUgdGhhdCB0aGVyZSBpcyBubyBcZihDV1wqKENgbG9vcFwq KEMnXGZSIGFyZ3VtZW50LCBhcyB0aGUKQEAgLTQ0OTksNyArNDYzMyw3IEBAIGNvbmZpZ3VyYXRp b24gKG5vIGF1dG9jb25mKToKwqAuUFAKwqBUaGlzIHdpbGwgYXV0b21hdGljYWxseSBpbmNsdWRl IFxmSWV2LmhcZlIsIHRvbywgYW5kIHNob3VsZCBiZSBkb25lIGluIGEKwqBzaW5nbGUgQyBzb3Vy Y2UgZmlsZSBvbmx5IHRvIHByb3ZpZGUgdGhlIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9ucy4gVG8g dXNlCi1pdCwgZG8gdGhlIHNhbWUgZm9yIFxmSWV2LmhcZlIgaW4gYWxsIGZpbGVzIHdpc2hpbmcg dG8gdXNlIHRoaXMgXHMtMUFQSSBcczAoYmVzdAoraXQsIGRvIHRoZSBzYW1lIGZvciBcZklldi5o XGZSIGluIGFsbCBmaWxlcyB3aXNoaW5nIHRvIHVzZSB0aGlzIFxzLTFBUElcczAgKGJlc3QKwqBk b25lIGJ5IHdyaXRpbmcgYSB3cmFwcGVyIGFyb3VuZCBcZklldi5oXGZSIHRoYXQgeW91IGNhbiBp bmNsdWRlIGluc3RlYWQgYW5kCsKgd2hlcmUgeW91IGNhbiBwdXQgb3RoZXIgY29uZmlndXJhdGlv biBvcHRpb25zKToKwqAuUFAKQEAgLTQ1MjMsMTEgKzQ2NTcsMTMgQEAgaW4geW91ciBpbmNsdWRl IHBhdGggKGUuZy4gaW4gbGliZXYvIHdoZW4gdXNpbmcgXC1JbGliZXYpOgrCoFwmCsKgXCYgwqAg ZXZfd2luMzIuYyDCoCDCoCDCoHJlcXVpcmVkIG9uIHdpbjMyIHBsYXRmb3JtcyBvbmx5CsKgXCYK LVwmIMKgIGV2X3NlbGVjdC5jIMKgIMKgIG9ubHkgd2hlbiBzZWxlY3QgYmFja2VuZCBpcyBlbmFi bGVkICh3aGljaCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQpCi1cJiDCoCBldl9wb2xsLmMgwqAgwqAg wqAgb25seSB3aGVuIHBvbGwgYmFja2VuZCBpcyBlbmFibGVkIChkaXNhYmxlZCBieSBkZWZhdWx0 KQotXCYgwqAgZXZfZXBvbGwuYyDCoCDCoCDCoG9ubHkgd2hlbiB0aGUgZXBvbGwgYmFja2VuZCBp cyBlbmFibGVkIChkaXNhYmxlZCBieSBkZWZhdWx0KQotXCYgwqAgZXZfa3F1ZXVlLmMgwqAgwqAg b25seSB3aGVuIHRoZSBrcXVldWUgYmFja2VuZCBpcyBlbmFibGVkIChkaXNhYmxlZCBieSBkZWZh dWx0KQotXCYgwqAgZXZfcG9ydC5jIMKgIMKgIMKgIG9ubHkgd2hlbiB0aGUgc29sYXJpcyBwb3J0 IGJhY2tlbmQgaXMgZW5hYmxlZCAoZGlzYWJsZWQgYnkgZGVmYXVsdCkKK1wmIMKgIGV2X3NlbGVj dC5jIMKgIMKgIG9ubHkgd2hlbiBzZWxlY3QgYmFja2VuZCBpcyBlbmFibGVkCitcJiDCoCBldl9w b2xsLmMgwqAgwqAgwqAgb25seSB3aGVuIHBvbGwgYmFja2VuZCBpcyBlbmFibGVkCitcJiDCoCBl dl9lcG9sbC5jIMKgIMKgIMKgb25seSB3aGVuIHRoZSBlcG9sbCBiYWNrZW5kIGlzIGVuYWJsZWQK K1wmIMKgIGV2X2xpbnV4YWlvLmMgwqAgb25seSB3aGVuIHRoZSBsaW51eCBhaW8gYmFja2VuZCBp cyBlbmFibGVkCitcJiDCoCBldl9pb3VyaW5nLmMgwqAgwqBvbmx5IHdoZW4gdGhlIGxpbnV4IGlv X3VyaW5nIGJhY2tlbmQgaXMgZW5hYmxlZAorXCYgwqAgZXZfa3F1ZXVlLmMgwqAgwqAgb25seSB3 aGVuIHRoZSBrcXVldWUgYmFja2VuZCBpcyBlbmFibGVkCitcJiDCoCBldl9wb3J0LmMgwqAgwqAg wqAgb25seSB3aGVuIHRoZSBzb2xhcmlzIHBvcnQgYmFja2VuZCBpcyBlbmFibGVkCsKgLlZlCsKg LlBQCsKgXCZcZklldi5jXGZSIGluY2x1ZGVzIHRoZSBiYWNrZW5kIGZpbGVzIGRpcmVjdGx5IHdo ZW4gZW5hYmxlZCwgc28geW91IG9ubHkgbmVlZApAQCAtNDU4Miw3ICs0NzE4LDcgQEAgdG8gcmVk ZWZpbmUgdGhlbSBiZWZvcmUgaW5jbHVkaW5nIFxmSWV2LmhcZlIgd2l0aG91dCBicmVha2luZyBj b21wYXRpYmlsaXR5CsKgdG8gYSBjb21waWxlZCBsaWJyYXJ5LiBBbGwgb3RoZXIgc3ltYm9scyBj aGFuZ2UgdGhlIFxzLTFBQkksXHMwIHdoaWNoIG1lYW5zIGFsbArCoHVzZXJzIG9mIGxpYmV2IGFu ZCB0aGUgbGliZXYgY29kZSBpdHNlbGYgbXVzdCBiZSBjb21waWxlZCB3aXRoIGNvbXBhdGlibGUK wqBzZXR0aW5ncy4KLS5JUCAiXHMtMUVWX0NPTVBBVDMgXHMwKGgpIiA0CisuSVAgIlxzLTFFVl9D T01QQVQzXHMwIChoKSIgNArCoC5JWCBJdGVtICJFVl9DT01QQVQzIChoKSIKwqBCYWNrd2FyZHMg Y29tcGF0aWJpbGl0eSBpcyBhIG1ham9yIGNvbmNlcm4gZm9yIGxpYmV2LiBUaGlzIGlzIHdoeSB0 aGlzCsKgcmVsZWFzZSBvZiBsaWJldiBjb21lcyB3aXRoIHdyYXBwZXJzIGZvciB0aGUgZnVuY3Rp b25zIGFuZCBzeW1ib2xzIHRoYXQKQEAgLTQ1OTcsNyArNDczMyw3IEBAIHR5cGVkZWYgaW4gdGhh dCBjYXNlLgrCoEluIHNvbWUgZnV0dXJlIHZlcnNpb24sIHRoZSBkZWZhdWx0IGZvciBcZihDV1wq KENgRVZfQ09NUEFUM1wqKEMnXGZSIHdpbGwgYmVjb21lIFxmKENXMFxmUiwKwqBhbmQgaW4gc29t ZSBldmVuIG1vcmUgZnV0dXJlIHZlcnNpb24gdGhlIGNvbXBhdGliaWxpdHkgY29kZSB3aWxsIGJl CsKgcmVtb3ZlZCBjb21wbGV0ZWx5LgotLklQICJccy0xRVZfU1RBTkRBTE9ORSBcczAoaCkiIDQK Ky5JUCAiXHMtMUVWX1NUQU5EQUxPTkVcczAgKGgpIiA0CsKgLklYIEl0ZW0gIkVWX1NUQU5EQUxP TkUgKGgpIgrCoE11c3QgYWx3YXlzIGJlIFxmKENXMVxmUiBpZiB5b3UgZG8gbm90IHVzZSBhdXRv Y29uZiBjb25maWd1cmF0aW9uLCB3aGljaArCoGtlZXBzIGxpYmV2IGZyb20gaW5jbHVkaW5nIFxm SWNvbmZpZy5oXGZSLCBhbmQgaXQgYWxzbyBkZWZpbmVzIGR1bW15CkBAIC00NjU1LDYgKzQ3OTEs MjcgQEAgYXZhaWxhYmxlIGFuZCB3aWxsIHByb2JlIGZvciBrZXJuZWwgc3VwcG9ydCBhdCBydW50 aW1lLiBUaGlzIHdpbGwgaW1wcm92ZQrCoFwmXGYoQ1dcKihDYGV2X3NpZ25hbFwqKEMnXGZSIGFu ZCBcZihDV1wqKENgZXZfYXN5bmNcKihDJ1xmUiBwZXJmb3JtYW5jZSBhbmQgcmVkdWNlIHJlc291 cmNlIGNvbnN1bXB0aW9uLgrCoElmIHVuZGVmaW5lZCwgaXQgd2lsbCBiZSBlbmFibGVkIGlmIHRo ZSBoZWFkZXJzIGluZGljYXRlIEdOVS9MaW51eCArIEdsaWJjCsKgMi43IG9yIG5ld2VyLCBvdGhl cndpc2UgZGlzYWJsZWQuCisuSVAgIlxzLTFFVl9VU0VfU0lHTkFMRkRcczAiIDQKKy5JWCBJdGVt ICJFVl9VU0VfU0lHTkFMRkQiCitJZiBkZWZpbmVkIHRvIGJlIFxmKENXMVxmUiwgdGhlbiBsaWJl diB3aWxsIGFzc3VtZSB0aGF0IFxmKENXXCooQ2BzaWduYWxmZCAoKVwqKEMnXGZSIGlzCithdmFp bGFibGUgYW5kIHdpbGwgcHJvYmUgZm9yIGtlcm5lbCBzdXBwb3J0IGF0IHJ1bnRpbWUuIFRoaXMg ZW5hYmxlcwordGhlIHVzZSBvZiBccy0xRVZGTEFHX1NJR05BTEZEXHMwIGZvciBmYXN0ZXIgYW5k IHNpbXBsZXIgc2lnbmFsIGhhbmRsaW5nLiBJZgordW5kZWZpbmVkLCBpdCB3aWxsIGJlIGVuYWJs ZWQgaWYgdGhlIGhlYWRlcnMgaW5kaWNhdGUgR05VL0xpbnV4ICsgR2xpYmMKKzIuNyBvciBuZXdl ciwgb3RoZXJ3aXNlIGRpc2FibGVkLgorLklQICJccy0xRVZfVVNFX1RJTUVSRkRcczAiIDQKKy5J WCBJdGVtICJFVl9VU0VfVElNRVJGRCIKK0lmIGRlZmluZWQgdG8gYmUgXGYoQ1cxXGZSLCB0aGVu IGxpYmV2IHdpbGwgYXNzdW1lIHRoYXQgXGYoQ1dcKihDYHRpbWVyZmQgKClcKihDJ1xmUiBpcwor YXZhaWxhYmxlIGFuZCB3aWxsIHByb2JlIGZvciBrZXJuZWwgc3VwcG9ydCBhdCBydW50aW1lLiBU aGlzIGFsbG93cworbGliZXYgdG8gZGV0ZWN0IHRpbWUganVtcHMgYWNjdXJhdGVseS4gSWYgdW5k ZWZpbmVkLCBpdCB3aWxsIGJlIGVuYWJsZWQKK2lmIHRoZSBoZWFkZXJzIGluZGljYXRlIEdOVS9M aW51eCArIEdsaWJjIDIuOCBvciBuZXdlciBhbmQgZGVmaW5lCitcJlxmKENXXCooQ2BURkRfVElN RVJfQ0FOQ0VMX09OX1NFVFwqKEMnXGZSLCBvdGhlcndpc2UgZGlzYWJsZWQuCisuSVAgIlxzLTFF Vl9VU0VfRVZFTlRGRFxzMCIgNAorLklYIEl0ZW0gIkVWX1VTRV9FVkVOVEZEIgorSWYgZGVmaW5l ZCB0byBiZSBcZihDVzFcZlIsIHRoZW4gbGliZXYgd2lsbCBhc3N1bWUgdGhhdCBcZihDV1wqKENg ZXZlbnRmZCAoKVwqKEMnXGZSIGlzCithdmFpbGFibGUgYW5kIHdpbGwgcHJvYmUgZm9yIGtlcm5l bCBzdXBwb3J0IGF0IHJ1bnRpbWUuIFRoaXMgd2lsbCBpbXByb3ZlCitcJlxmKENXXCooQ2Bldl9z aWduYWxcKihDJ1xmUiBhbmQgXGYoQ1dcKihDYGV2X2FzeW5jXCooQydcZlIgcGVyZm9ybWFuY2Ug YW5kIHJlZHVjZSByZXNvdXJjZSBjb25zdW1wdGlvbi4KK0lmIHVuZGVmaW5lZCwgaXQgd2lsbCBi ZSBlbmFibGVkIGlmIHRoZSBoZWFkZXJzIGluZGljYXRlIEdOVS9MaW51eCArIEdsaWJjCisyLjcg b3IgbmV3ZXIsIG90aGVyd2lzZSBkaXNhYmxlZC4KwqAuSVAgIlxzLTFFVl9VU0VfU0VMRUNUXHMw IiA0CsKgLklYIEl0ZW0gIkVWX1VTRV9TRUxFQ1QiCsKgSWYgdW5kZWZpbmVkIG9yIGRlZmluZWQg dG8gYmUgXGYoQ1cxXGZSLCBsaWJldiB3aWxsIGNvbXBpbGUgaW4gc3VwcG9ydCBmb3IgdGhlCkBA IC00NzE2LDYgKzQ4NzMsMTcgQEAgSWYgZGVmaW5lZCB0byBiZSBcZihDVzFcZlIsIGxpYmV2IHdp bGwgY29tcGlsZSBpbiBzdXBwb3J0IGZvciB0aGUgTGludXgKwqBvdGhlcndpc2UgYW5vdGhlciBt ZXRob2Qgd2lsbCBiZSB1c2VkIGFzIGZhbGxiYWNrLiBUaGlzIGlzIHRoZSBwcmVmZXJyZWQKwqBi YWNrZW5kIGZvciBHTlUvTGludXggc3lzdGVtcy4gSWYgdW5kZWZpbmVkLCBpdCB3aWxsIGJlIGVu YWJsZWQgaWYgdGhlCsKgaGVhZGVycyBpbmRpY2F0ZSBHTlUvTGludXggKyBHbGliYyAyLjQgb3Ig bmV3ZXIsIG90aGVyd2lzZSBkaXNhYmxlZC4KKy5JUCAiXHMtMUVWX1VTRV9MSU5VWEFJT1xzMCIg NAorLklYIEl0ZW0gIkVWX1VTRV9MSU5VWEFJTyIKK0lmIGRlZmluZWQgdG8gYmUgXGYoQ1cxXGZS LCBsaWJldiB3aWxsIGNvbXBpbGUgaW4gc3VwcG9ydCBmb3IgdGhlIExpbnV4IGFpbworYmFja2Vu ZCAoXGYoQ1dcKihDYEVWX1VTRV9FUE9MTFwqKEMnXGZSIG11c3QgYWxzbyBiZSBlbmFibGVkKS4g SWYgdW5kZWZpbmVkLCBpdCB3aWxsIGJlCitlbmFibGVkIG9uIGxpbnV4LCBvdGhlcndpc2UgZGlz YWJsZWQuCisuSVAgIlxzLTFFVl9VU0VfSU9VUklOR1xzMCIgNAorLklYIEl0ZW0gIkVWX1VTRV9J T1VSSU5HIgorSWYgZGVmaW5lZCB0byBiZSBcZihDVzFcZlIsIGxpYmV2IHdpbGwgY29tcGlsZSBp biBzdXBwb3J0IGZvciB0aGUgTGludXgKK2lvX3VyaW5nIGJhY2tlbmQgKFxmKENXXCooQ2BFVl9V U0VfRVBPTExcKihDJ1xmUiBtdXN0IGFsc28gYmUgZW5hYmxlZCkuIER1ZSB0byBpdCdzCitjdXJy ZW50IGxpbWl0YXRpb25zIGl0IGhhcyB0byBiZSByZXF1ZXN0ZWQgZXhwbGljaXRseS4gSWYgdW5k ZWZpbmVkLCBpdAord2lsbCBiZSBlbmFibGVkIG9uIGxpbnV4LCBvdGhlcndpc2UgZGlzYWJsZWQu CsKgLklQICJccy0xRVZfVVNFX0tRVUVVRVxzMCIgNArCoC5JWCBJdGVtICJFVl9VU0VfS1FVRVVF IgrCoElmIGRlZmluZWQgdG8gYmUgXGYoQ1cxXGZSLCBsaWJldiB3aWxsIGNvbXBpbGUgaW4gc3Vw cG9ydCBmb3IgdGhlIFxzLTFCU0RcczAgc3R5bGUKQEAgLTQ3NjUsMjEgKzQ5MzMsMjEgQEAgd2F0 Y2hlcnMuCsKgLlNwCsKgSW4gdGhlIGFic2VuY2Ugb2YgdGhpcyBkZWZpbmUsIGxpYmV2IHdpbGwg dXNlIFxmKENXXCooQ2BzaWdfYXRvbWljX3Qgdm9sYXRpbGVcKihDJ1xmUgrCoChmcm9tIFxmSXNp Z25hbC5oXGZSKSwgd2hpY2ggaXMgdXN1YWxseSBnb29kIGVub3VnaCBvbiBtb3N0IHBsYXRmb3Jt cy4KLS5JUCAiXHMtMUVWX0ggXHMwKGgpIiA0CisuSVAgIlxzLTFFVl9IXHMwIChoKSIgNArCoC5J WCBJdGVtICJFVl9IIChoKSIKwqBUaGUgbmFtZSBvZiB0aGUgXGZJZXYuaFxmUiBoZWFkZXIgZmls ZSB1c2VkIHRvIGluY2x1ZGUgaXQuIFRoZSBkZWZhdWx0IGlmCsKgdW5kZWZpbmVkIGlzIFxmKENX ImV2LmgiXGZSIGluIFxmSWV2ZW50LmhcZlIsIFxmSWV2LmNcZlIgYW5kIFxmSWV2KysuaFxmUi4g VGhpcyBjYW4gYmUKwqB1c2VkIHRvIHZpcnR1YWxseSByZW5hbWUgdGhlIFxmSWV2LmhcZlIgaGVh ZGVyIGZpbGUgaW4gY2FzZSBvZiBjb25mbGljdHMuCi0uSVAgIlxzLTFFVl9DT05GSUdfSCBcczAo aCkiIDQKKy5JUCAiXHMtMUVWX0NPTkZJR19IXHMwIChoKSIgNArCoC5JWCBJdGVtICJFVl9DT05G SUdfSCAoaCkiCsKgSWYgXGYoQ1dcKihDYEVWX1NUQU5EQUxPTkVcKihDJ1xmUiBpc24ndCBcZihD VzFcZlIsIHRoaXMgdmFyaWFibGUgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUKwqBcJlxmSWV2LmNc ZlIncyBpZGVhIG9mIHdoZXJlIHRvIGZpbmQgdGhlIFxmSWNvbmZpZy5oXGZSIGZpbGUsIHNpbWls YXJseSB0bwrCoFwmXGYoQ1dcKihDYEVWX0hcKihDJ1xmUiwgYWJvdmUuCi0uSVAgIlxzLTFFVl9F VkVOVF9IIFxzMChoKSIgNAorLklQICJccy0xRVZfRVZFTlRfSFxzMCAoaCkiIDQKwqAuSVggSXRl bSAiRVZfRVZFTlRfSCAoaCkiCsKgU2ltaWxhcmx5IHRvIFxmKENXXCooQ2BFVl9IXCooQydcZlIs IHRoaXMgbWFjcm8gY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgXGZJZXZlbnQuY1xmUidzIGlkZWEK wqBvZiBob3cgdGhlIFxmSWV2ZW50LmhcZlIgaGVhZGVyIGNhbiBiZSBmb3VuZCwgdGhlIGRlZmF1 bHQgaXMgXGYoQ1ciZXZlbnQuaCJcZlIuCi0uSVAgIlxzLTFFVl9QUk9UT1RZUEVTIFxzMChoKSIg NAorLklQICJccy0xRVZfUFJPVE9UWVBFU1xzMCAoaCkiIDQKwqAuSVggSXRlbSAiRVZfUFJPVE9U WVBFUyAoaCkiCsKgSWYgZGVmaW5lZCB0byBiZSBcZihDVzBcZlIsIHRoZW4gXGZJZXYuaFxmUiB3 aWxsIG5vdCBkZWZpbmUgYW55IGZ1bmN0aW9uCsKgcHJvdG90eXBlcywgYnV0IHN0aWxsIGRlZmlu ZSBhbGwgdGhlIHN0cnVjdHMgYW5kIG90aGVyIHN5bWJvbHMuIFRoaXMgaXMKQEAgLTQ5ODIsNiAr NTE1MCw5IEBAIGNhbGxlZCBvbmNlIHBlciBsb29wLCB3aGljaCBjYW4gc2xvdyBkb3duIGxpYmV2 LiBJZiBzZXQgdG8gXGYoQ1czXGZSLCB0aGVuIHRoZQrCoHZlcmlmaWNhdGlvbiBjb2RlIHdpbGwg YmUgY2FsbGVkIHZlcnkgZnJlcXVlbnRseSwgd2hpY2ggd2lsbCBzbG93IGRvd24KwqBsaWJldiBj b25zaWRlcmFibHkuCsKgLlNwCitWZXJpZmljYXRpb24gZXJyb3JzIGFyZSByZXBvcnRlZCB2aWEg QydzIFxmKENXXCooQ2Bhc3NlcnRcKihDJ1xmUiBtZWNoYW5pc20sIHNvIGlmIHlvdQorZGlzYWJs ZSB0aGF0IChlLmcuIGJ5IGRlZmluaW5nIFxmKENXXCooQ2BOREVCVUdcKihDJ1xmUikgdGhlbiBu byBlcnJvcnMgd2lsbCBiZSByZXBvcnRlZC4KKy5TcArCoFRoZSBkZWZhdWx0IGlzIFxmKENXMVxm UiwgdW5sZXNzIFxmKENXXCooQ2BFVl9GRUFUVVJFU1wqKEMnXGZSIG92ZXJyaWRlcyBpdCwgaW4g d2hpY2ggY2FzZSBpdArCoHdpbGwgYmUgXGYoQ1cwXGZSLgrCoC5JUCAiXHMtMUVWX0NPTU1PTlxz MCIgNApAQCAtNDk5OCwxMCArNTE2OSwxMCBAQCBGb3IgZXhhbXBsZSwgdGhlIHBlcmwgXHMtMUVW XHMwIG1vZHVsZSB1c2VzIHNvbWV0aGluZyBsaWtlIHRoaXM6CsKgXCYgwqAgwqAgU1YgKnNlbGY7 IC8qIGNvbnRhaW5zIHRoaXMgc3RydWN0ICovIMKgXGUKwqBcJiDCoCDCoCBTViAqY2Jfc3YsICpm aCAvKiBub3RlIG5vIHRyYWlsaW5nICI7IiAqLwrCoC5WZQotLklQICJccy0xRVZfQ0JfREVDTEFS RSBcczAodHlwZSkiIDQKKy5JUCAiXHMtMUVWX0NCX0RFQ0xBUkVcczAgKHR5cGUpIiA0CsKgLklY IEl0ZW0gIkVWX0NCX0RFQ0xBUkUgKHR5cGUpIgrCoC5QRCAwCi0uSVAgIlxzLTFFVl9DQl9JTlZP S0UgXHMwKHdhdGNoZXIsIHJldmVudHMpIiA0CisuSVAgIlxzLTFFVl9DQl9JTlZPS0VcczAgKHdh dGNoZXIsIHJldmVudHMpIiA0CsKgLklYIEl0ZW0gIkVWX0NCX0lOVk9LRSAod2F0Y2hlciwgcmV2 ZW50cykiCsKgLklQICJldl9zZXRfY2IgKGV2LCBjYikiIDQKwqAuSVggSXRlbSAiZXZfc2V0X2Ni IChldiwgY2IpIgpAQCAtNTAxNCw3ICs1MTg1LDcgQEAgYXZvaWQgdGhlIFxmKENXXCooQ2BzdHJ1 Y3QgZXZfbG9vcCAqXCooQydcZlIgYXMgZmlyc3QgYXJndW1lbnQgaW4gYWxsIGNhc2VzLCBvcgrC oG1ldGhvZCBjYWxscyBpbnN0ZWFkIG9mIHBsYWluIGZ1bmN0aW9uIGNhbGxzIGluIFwqKEMrLgrC oC5TUyAiXHMtMUVYUE9SVEVEIEFQSSBTWU1CT0xTXHMwIgrCoC5JWCBTdWJzZWN0aW9uICJFWFBP UlRFRCBBUEkgU1lNQk9MUyIKLUlmIHlvdSBuZWVkIHRvIHJlLWV4cG9ydCB0aGUgXHMtMUFQSSBc czAoZS5nLiB2aWEgYSBccy0xRExMXHMwKSBhbmQgeW91IG5lZWQgYSBsaXN0IG9mCitJZiB5b3Ug bmVlZCB0byByZS1leHBvcnQgdGhlIFxzLTFBUElcczAgKGUuZy4gdmlhIGEgXHMtMURMTFxzMCkg YW5kIHlvdSBuZWVkIGEgbGlzdCBvZgrCoGV4cG9ydGVkIHN5bWJvbHMsIHlvdSBjYW4gdXNlIHRo ZSBwcm92aWRlZCBcZklTeW1ib2wuKlxmUiBmaWxlcyB3aGljaCBsaXN0CsKgYWxsIHB1YmxpYyBz eW1ib2xzLCBvbmUgcGVyIGxpbmU6CsKgLlBQCkBAIC01MjU2LDcgKzU0MjcsNyBAQCBhIGxvb3Au CsKgLklYIFN1YnNlY3Rpb24gInNlbGVjdCBpcyBidWdneSIKwqAuUFAKwqBBbGwgdGhhdCdzIGxl ZnQgaXMgXGYoQ1dcKihDYHNlbGVjdFwqKEMnXGZSLCBhbmQgb2YgY291cnNlIEFwcGxlIGZvdW5k IGEgd2F5IHRvIGZ1Y2sgdGhpcwotb25lIHVwIGFzIHdlbGw6IE9uIFxzLTFPUy9YLCBcczBcZihD V1wqKENgc2VsZWN0XCooQydcZlIgYWN0aXZlbHkgbGltaXRzIHRoZSBudW1iZXIgb2YgZmlsZQor b25lIHVwIGFzIHdlbGw6IE9uIFxzLTFPUy9YLFxzMCBcZihDV1wqKENgc2VsZWN0XCooQydcZlIg YWN0aXZlbHkgbGltaXRzIHRoZSBudW1iZXIgb2YgZmlsZQrCoGRlc2NyaXB0b3JzIHlvdSBjYW4g cGFzcyBpbiB0byAxMDI0IFwtIHlvdXIgcHJvZ3JhbSBzdWRkZW5seSBjcmFzaGVzIHdoZW4KwqB5 b3UgdXNlIG1vcmUuCsKgLlBQCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJldi9ldi5jIGIv dGhpcmRfcGFydHkvbGliZXYvZXYuYwppbmRleCA2YTI2NDg1OTEuLjlhNGQxOTkwNSAxMDA2NDQK LS0tIGEvdGhpcmRfcGFydHkvbGliZXYvZXYuYworKysgYi90aGlyZF9wYXJ0eS9saWJldi9ldi5j CkBAIC0xLDcgKzEsNyBAQArCoC8qCsKgICogbGliZXYgZXZlbnQgcHJvY2Vzc2luZyBjb3JlLCB3 YXRjaGVyIG1hbmFnZW1lbnQKwqAgKgotICogQ29weXJpZ2h0IChjKSAyMDA3LDIwMDgsMjAwOSwy MDEwLDIwMTEsMjAxMiwyMDEzIE1hcmMgQWxleGFuZGVyIExlaG1hbm4gPGxpYmV2QHNjaG1vcnAu ZGU+CisgKiBDb3B5cmlnaHQgKGMpIDIwMDctMjAxOSBNYXJjIEFsZXhhbmRlciBMZWhtYW5uIDxs aWJldkBzY2htb3JwLmRlPgrCoCAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCsKgICoKwqAgKiBSZWRp c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp dGhvdXQgbW9kaWZpY2EtCkBAIC0xMTcsNiArMTE3LDI0IEBACsKgIyDCoGRlZmluZSBFVl9VU0Vf RVBPTEwgMArCoCMgZW5kaWYKwqAgwqDCoAorIyBpZiBIQVZFX0xJTlVYX0FJT19BQklfSAorIyDC oGlmbmRlZiBFVl9VU0VfTElOVVhBSU8KKyMgwqAgZGVmaW5lIEVWX1VTRV9MSU5VWEFJTyAwIC8q IHdhczogRVZfRkVBVFVSRV9CQUNLRU5EUywgYWx3YXlzIG9mZiBieSBkZWZhdWx0ICovCisjIMKg ZW5kaWYKKyMgZWxzZQorIyDCoHVuZGVmIEVWX1VTRV9MSU5VWEFJTworIyDCoGRlZmluZSBFVl9V U0VfTElOVVhBSU8gMAorIyBlbmRpZgorIMKgwqAKKyMgaWYgSEFWRV9MSU5VWF9GU19IICYmIEhB VkVfU1lTX1RJTUVSRkRfSCAmJiBIQVZFX0tFUk5FTF9SV0ZfVAorIyDCoGlmbmRlZiBFVl9VU0Vf SU9VUklORworIyDCoCBkZWZpbmUgRVZfVVNFX0lPVVJJTkcgRVZfRkVBVFVSRV9CQUNLRU5EUwor IyDCoGVuZGlmCisjIGVsc2UKKyMgwqB1bmRlZiBFVl9VU0VfSU9VUklORworIyDCoGRlZmluZSBF Vl9VU0VfSU9VUklORyAwCisjIGVuZGlmCivCoArCoCMgaWYgSEFWRV9LUVVFVUUgJiYgSEFWRV9T WVNfRVZFTlRfSArCoCMgwqBpZm5kZWYgRVZfVVNFX0tRVUVVRQrCoCMgwqAgZGVmaW5lIEVWX1VT RV9LUVVFVUUgRVZfRkVBVFVSRV9CQUNLRU5EUwpAQCAtMTYxLDkgKzE3OSwyOCBAQArCoCMgwqB1 bmRlZiBFVl9VU0VfRVZFTlRGRArCoCMgwqBkZWZpbmUgRVZfVVNFX0VWRU5URkQgMArCoCMgZW5k aWYKLcKgCisKKyMgaWYgSEFWRV9TWVNfVElNRVJGRF9ICisjIMKgaWZuZGVmIEVWX1VTRV9USU1F UkZECisjIMKgIGRlZmluZSBFVl9VU0VfVElNRVJGRCBFVl9GRUFUVVJFX09TCisjIMKgZW5kaWYK KyMgZWxzZQorIyDCoHVuZGVmIEVWX1VTRV9USU1FUkZECisjIMKgZGVmaW5lIEVWX1VTRV9USU1F UkZEIDAKKyMgZW5kaWYKKwrCoCNlbmRpZgrCoAorLyogT1MgWCwgaW4gaXRzIGluZmluaXRlIGlk aW9jeSwgYWN0dWFsbHkgSEFSRENPREVTCisgKiBhIGxpbWl0IG9mIDEwMjQgaW50byB0aGVpciBz ZWxlY3QuIFdoZXJlIHBlb3BsZSBoYXZlIGJyYWlucywKKyAqIE9TIFggZW5naW5lZXJzIGFwcGFy ZW50bHkgaGF2ZSBhIHZhY3V1bS4gT3IgbWF5YmUgdGhleSB3ZXJlCisgKiBvcmRlcmVkIHRvIGhh dmUgYSB2YWN1dW0sIG9yIHRoZXkgZG8gYW55dGhpbmcgZm9yIG1vbmV5LgorICogVGhpcyBtaWdo dCBoZWxwLiBPciBub3QuCisgKiBOb3RlIHRoYXQgdGhpcyBtdXN0IGJlIGRlZmluZWQgZWFybHks IGFzIG90aGVyIGluY2x1ZGUgZmlsZXMKKyAqIHdpbGwgcmVseSBvbiB0aGlzIGRlZmluZSBhcyB3 ZWxsLgorICovCisjZGVmaW5lIF9EQVJXSU5fVU5MSU1JVEVEX1NFTEVDVCAxCisKwqAjaW5jbHVk ZSA8c3RkbGliLmg+CsKgI2luY2x1ZGUgPHN0cmluZy5oPgrCoCNpbmNsdWRlIDxmY250bC5oPgpA QCAtMjExLDE0ICsyNDgsNiBAQArCoCMgdW5kZWYgRVZfQVZPSURfU1RESU8KwqAjZW5kaWYKwqAK LS8qIE9TIFgsIGluIGl0cyBpbmZpbml0ZSBpZGlvY3ksIGFjdHVhbGx5IEhBUkRDT0RFUwotICog YSBsaW1pdCBvZiAxMDI0IGludG8gdGhlaXIgc2VsZWN0LiBXaGVyZSBwZW9wbGUgaGF2ZSBicmFp bnMsCi0gKiBPUyBYIGVuZ2luZWVycyBhcHBhcmVudGx5IGhhdmUgYSB2YWN1dW0uIE9yIG1heWJl IHRoZXkgd2VyZQotICogb3JkZXJlZCB0byBoYXZlIGEgdmFjdXVtLCBvciB0aGV5IGRvIGFueXRo aW5nIGZvciBtb25leS4KLSAqIFRoaXMgbWlnaHQgaGVscC4gT3Igbm90LgotICovCi0jZGVmaW5l IF9EQVJXSU5fVU5MSU1JVEVEX1NFTEVDVCAxCi0KwqAvKiB0aGlzIGJsb2NrIHRyaWVzIHRvIGRl ZHVjZSBjb25maWd1cmF0aW9uIGZyb20gaGVhZGVyLWRlZmluZWQgc3ltYm9scyBhbmQgZGVmYXVs dHMgKi8KwqAKwqAvKiB0cnkgdG8gZGVkdWNlIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzaWduYWxz IG9uIHRoaXMgcGxhdGZvcm0gKi8KQEAgLTMxNSw2ICszNDQsMjIgQEAKwqAjIGRlZmluZSBFVl9V U0VfUE9SVCAwCsKgI2VuZGlmCsKgCisjaWZuZGVmIEVWX1VTRV9MSU5VWEFJTworIyBpZiBfX2xp bnV4IC8qIGxpYmV2IGN1cnJlbnRseSBhc3N1bWVzIGxpbnV4L2Fpb19hYmkuaCBpcyBhbHdheXMg YXZhaWxhYmxlIG9uIGxpbnV4ICovCisjIMKgZGVmaW5lIEVWX1VTRV9MSU5VWEFJTyAwIC8qIHdh czogMSwgYWx3YXlzIG9mZiBieSBkZWZhdWx0ICovCisjIGVsc2UKKyMgwqBkZWZpbmUgRVZfVVNF X0xJTlVYQUlPIDAKKyMgZW5kaWYKKyNlbmRpZgorCisjaWZuZGVmIEVWX1VTRV9JT1VSSU5HCisj IGlmIF9fbGludXggLyogbGF0ZXIgY2hlY2tzIG1pZ2h0IGRpc2FibGUgYWdhaW4gKi8KKyMgwqBk ZWZpbmUgRVZfVVNFX0lPVVJJTkcgMQorIyBlbHNlCisjIMKgZGVmaW5lIEVWX1VTRV9JT1VSSU5H IDAKKyMgZW5kaWYKKyNlbmRpZgorCsKgI2lmbmRlZiBFVl9VU0VfSU5PVElGWQrCoCMgaWYgX19s aW51eCAmJiAoX19HTElCQ19fID4gMiB8fCAoX19HTElCQ19fID09IDIgJiYgX19HTElCQ19NSU5P Ul9fID49IDQpKQrCoCMgwqBkZWZpbmUgRVZfVVNFX0lOT1RJRlkgRVZfRkVBVFVSRV9PUwpAQCAt MzQ3LDYgKzM5MiwxNCBAQArCoCMgZW5kaWYKwqAjZW5kaWYKwqAKKyNpZm5kZWYgRVZfVVNFX1RJ TUVSRkQKKyMgaWYgX19saW51eCAmJiAoX19HTElCQ19fID4gMiB8fCAoX19HTElCQ19fID09IDIg JiYgX19HTElCQ19NSU5PUl9fID49IDgpKQorIyDCoGRlZmluZSBFVl9VU0VfVElNRVJGRCBFVl9G RUFUVVJFX09TCisjIGVsc2UKKyMgwqBkZWZpbmUgRVZfVVNFX1RJTUVSRkQgMAorIyBlbmRpZgor I2VuZGlmCisKwqAjaWYgMCAvKiBkZWJ1Z2dpbmcgKi8KwqAjIGRlZmluZSBFVl9WRVJJRlkgMwrC oCMgZGVmaW5lIEVWX1VTRV80SEVBUCAxCkBAIC0zNjUsNyArNDE4LDcgQEAKwqAjIGRlZmluZSBF Vl9IRUFQX0NBQ0hFX0FUIEVWX0ZFQVRVUkVfREFUQQrCoCNlbmRpZgrCoAotI2lmZGVmIEFORFJP SUQKKyNpZmRlZiBfX0FORFJPSURfXwrCoC8qIHN1cHBvc2VkbHksIGFuZHJvaWQgZG9lc24ndCB0 eXBlZGVmIGZkX21hc2sgKi8KwqAjIHVuZGVmIEVWX1VTRV9TRUxFQ1QKwqAjIGRlZmluZSBFVl9V U0VfU0VMRUNUIDAKQEAgLTM4OSw2ICs0NDIsNyBAQArCoCMgwqBkZWZpbmUgY2xvY2tfZ2V0dGlt ZShpZCwgdHMpIHN5c2NhbGwgKFNZU19jbG9ja19nZXR0aW1lLCAoaWQpLCAodHMpKQrCoCMgwqB1 bmRlZiBFVl9VU0VfTU9OT1RPTklDCsKgIyDCoGRlZmluZSBFVl9VU0VfTU9OT1RPTklDIDEKKyMg wqBkZWZpbmUgRVZfTkVFRF9TWVNDQUxMIDEKwqAjIGVsc2UKwqAjIMKgdW5kZWYgRVZfVVNFX0NM T0NLX1NZU0NBTEwKwqAjIMKgZGVmaW5lIEVWX1VTRV9DTE9DS19TWVNDQUxMIDAKQEAgLTQxMiw2 ICs0NjYsMTQgQEAKwqAjIGRlZmluZSBFVl9VU0VfSU5PVElGWSAwCsKgI2VuZGlmCsKgCisjaWYg X19saW51eCAmJiBFVl9VU0VfSU9VUklORworIyBpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+Cisj IGlmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDQsMTQsMCkKKyMgwqB1bmRl ZiBFVl9VU0VfSU9VUklORworIyDCoGRlZmluZSBFVl9VU0VfSU9VUklORyAwCisjIGVuZGlmCisj ZW5kaWYKKwrCoCNpZiAhRVZfVVNFX05BTk9TTEVFUArCoC8qIGhwLXV4IGhhcyBpdCBpbiBzeXMv dGltZS5oLCB3aGljaCB3ZSB1bmNvbmRpdGlvbmFsbHkgaW5jbHVkZSBhYm92ZSAqLwrCoCMgaWYg IWRlZmluZWQgX1dJTjMyICYmICFkZWZpbmVkIF9faHB1eApAQCAtNDE5LDYgKzQ4MSwzMSBAQArC oCMgZW5kaWYKwqAjZW5kaWYKwqAKKyNpZiBFVl9VU0VfTElOVVhBSU8KKyMgaW5jbHVkZSA8c3lz L3N5c2NhbGwuaD4KKyMgaWYgU1lTX2lvX2dldGV2ZW50cyAmJiBFVl9VU0VfRVBPTEwgLyogbGlu dXhhaW8gYmFja2VuZCByZXF1aXJlcyBlcG9sbCBiYWNrZW5kICovCisjIMKgZGVmaW5lIEVWX05F RURfU1lTQ0FMTCAxCisjIGVsc2UKKyMgwqB1bmRlZiBFVl9VU0VfTElOVVhBSU8KKyMgwqBkZWZp bmUgRVZfVVNFX0xJTlVYQUlPIDAKKyMgZW5kaWYKKyNlbmRpZgorCisjaWYgRVZfVVNFX0lPVVJJ TkcKKyMgaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyMgaWYgIVNZU19pb191cmluZ19zZXR1cCAm JiBfX2xpbnV4ICYmICFfX2FscGhhCisjIMKgZGVmaW5lIFNZU19pb191cmluZ19zZXR1cCDCoCDC oCA0MjUKKyMgwqBkZWZpbmUgU1lTX2lvX3VyaW5nX2VudGVyIMKgIMKgIDQyNgorIyDCoGRlZmlu ZSBTWVNfaW9fdXJpbmdfd3JlZ2lzdGVyIDQyNworIyBlbmRpZgorIyBpZiBTWVNfaW9fdXJpbmdf c2V0dXAgJiYgRVZfVVNFX0VQT0xMIC8qIGlvdXJpbmcgYmFja2VuZCByZXF1aXJlcyBlcG9sbCBi YWNrZW5kICovCisjIMKgZGVmaW5lIEVWX05FRURfU1lTQ0FMTCAxCisjIGVsc2UKKyMgwqB1bmRl ZiBFVl9VU0VfSU9VUklORworIyDCoGRlZmluZSBFVl9VU0VfSU9VUklORyAwCisjIGVuZGlmCisj ZW5kaWYKKwrCoCNpZiBFVl9VU0VfSU5PVElGWQrCoCMgaW5jbHVkZSA8c3lzL3N0YXRmcy5oPgrC oCMgaW5jbHVkZSA8c3lzL2lub3RpZnkuaD4KQEAgLTQzMCw3ICs1MTcsNyBAQArCoCNlbmRpZgrC oArCoCNpZiBFVl9VU0VfRVZFTlRGRAotLyogb3VyIG1pbmltdW0gcmVxdWlyZW1lbnQgaXMgZ2xp YmMgMi43IHdoaWNoIGhhcyB0aGUgc3R1YiwgYnV0IG5vdCB0aGUgaGVhZGVyICovCisvKiBvdXIg bWluaW11bSByZXF1aXJlbWVudCBpcyBnbGliYyAyLjcgd2hpY2ggaGFzIHRoZSBzdHViLCBidXQg bm90IHRoZSBmdWxsIGhlYWRlciAqLwrCoCMgaW5jbHVkZSA8c3RkaW50Lmg+CsKgIyBpZm5kZWYg RUZEX05PTkJMT0NLCsKgIyDCoGRlZmluZSBFRkRfTk9OQkxPQ0sgT19OT05CTE9DSwpAQCAtNDQ2 LDcgKzUzMyw3IEBAIEVWX0NQUChleHRlcm4gIkMiKSBpbnQgKGV2ZW50ZmQpICh1bnNpZ25lZCBp bnQgaW5pdHZhbCwgaW50IGZsYWdzKTsKwqAjZW5kaWYKwqAKwqAjaWYgRVZfVVNFX1NJR05BTEZE Ci0vKiBvdXIgbWluaW11bSByZXF1aXJlbWVudCBpcyBnbGliYyAyLjcgd2hpY2ggaGFzIHRoZSBz dHViLCBidXQgbm90IHRoZSBoZWFkZXIgKi8KKy8qIG91ciBtaW5pbXVtIHJlcXVpcmVtZW50IGlz IGdsaWJjIDIuNyB3aGljaCBoYXMgdGhlIHN0dWIsIGJ1dCBub3QgdGhlIGZ1bGwgaGVhZGVyICov CsKgIyBpbmNsdWRlIDxzdGRpbnQuaD4KwqAjIGlmbmRlZiBTRkRfTk9OQkxPQ0sKwqAjIMKgZGVm aW5lIFNGRF9OT05CTE9DSyBPX05PTkJMT0NLCkBAIC00NTgsNyArNTQ1LDcgQEAgRVZfQ1BQKGV4 dGVybiAiQyIpIGludCAoZXZlbnRmZCkgKHVuc2lnbmVkIGludCBpbml0dmFsLCBpbnQgZmxhZ3Mp OwrCoCMgwqAgZGVmaW5lIFNGRF9DTE9FWEVDIDAyMDAwMDAwCsKgIyDCoGVuZGlmCsKgIyBlbmRp ZgotRVZfQ1BQIChleHRlcm4gIkMiKSBpbnQgc2lnbmFsZmQgKGludCBmZCwgY29uc3Qgc2lnc2V0 X3QgKm1hc2ssIGludCBmbGFncyk7CitFVl9DUFAgKGV4dGVybiAiQyIpIGludCAoc2lnbmFsZmQp IChpbnQgZmQsIGNvbnN0IHNpZ3NldF90ICptYXNrLCBpbnQgZmxhZ3MpOwrCoArCoHN0cnVjdCBz aWduYWxmZF9zaWdpbmZvCsKgewpAQCAtNDY3LDcgKzU1NCwxNyBAQCBzdHJ1Y3Qgc2lnbmFsZmRf c2lnaW5mbwrCoH07CsKgI2VuZGlmCsKgCi0vKiovCisvKiBmb3IgdGltZXJmZCwgbGliZXYgY29y ZSByZXF1aXJlcyBURkRfVElNRVJfQ0FOQ0VMX09OX1NFVCAmYyAqLworI2lmIEVWX1VTRV9USU1F UkZECisjIGluY2x1ZGUgPHN5cy90aW1lcmZkLmg+CisvKiB0aW1lcmZkIGlzIG9ubHkgdXNlZCBm b3IgcGVyaW9kaWNzICovCisjIGlmICEoZGVmaW5lZCAoVEZEX1RJTUVSX0NBTkNFTF9PTl9TRVQp ICYmIGRlZmluZWQgKFRGRF9DTE9FWEVDKSAmJiBkZWZpbmVkIChURkRfTk9OQkxPQ0spKSB8fCAh RVZfUEVSSU9ESUNfRU5BQkxFCisjIMKgdW5kZWYgRVZfVVNFX1RJTUVSRkQKKyMgwqBkZWZpbmUg RVZfVVNFX1RJTUVSRkQgMAorIyBlbmRpZgorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KwqAKwqAjaWYgRVZfVkVSSUZZID49IDMKwqAjIGRlZmluZSBFVl9GUkVRVUVOVF9DSEVDSyBl dl92ZXJpZnkgKEVWX0EpCkBAIC00ODIsMTggKzU3OSwzNCBAQCBzdHJ1Y3Qgc2lnbmFsZmRfc2ln aW5mbwrCoCNkZWZpbmUgTUlOX0lOVEVSVkFMIMKgMC4wMDAxMjIwNzAzMTI1IC8qIDEvMioqMTMs IGdvb2QgdGlsbCA0MDAwICovCsKgLyojZGVmaW5lIE1JTl9JTlRFUlZBTCDCoDAuMDAwMDAwOTUz Njc0MzE2NDA2MjUgLyogMS8yKioyMCwgZ29vZCB0aWxsIDIyMDAgKi8KwqAKLSNkZWZpbmUgTUlO X1RJTUVKVU1QIMKgMS4gLyogbWluaW11bSB0aW1lanVtcCB0aGF0IGdldHMgZGV0ZWN0ZWQgKGlm IG1vbm90b25pYyBjbG9jayBhdmFpbGFibGUpICovCi0jZGVmaW5lIE1BWF9CTE9DS1RJTUUgNTku NzQzIC8qIG5ldmVyIHdhaXQgbG9uZ2VyIHRoYW4gdGhpcyB0aW1lICh0byBkZXRlY3QgdGltZSBq dW1wcykgKi8KKyNkZWZpbmUgTUlOX1RJTUVKVU1QIMKgIDEuIC8qIG1pbmltdW0gdGltZWp1bXAg dGhhdCBnZXRzIGRldGVjdGVkIChpZiBtb25vdG9uaWMgY2xvY2sgYXZhaWxhYmxlKSAqLworI2Rl ZmluZSBNQVhfQkxPQ0tUSU1FIMKgNTkuNzQzIC8qIG5ldmVyIHdhaXQgbG9uZ2VyIHRoYW4gdGhp cyB0aW1lICh0byBkZXRlY3QgdGltZSBqdW1wcykgKi8KKyNkZWZpbmUgTUFYX0JMT0NLVElNRTIg MTUwMDAwMS4wNyAvKiBzYW1lLCBidXQgd2hlbiB0aW1lcmZkIGlzIHVzZWQgdG8gZGV0ZWN0IGp1 bXBzLCBhbHNvIHNhZmUgZGVsYXkgdG8gbm90IG92ZXJmbG93ICovCsKgCi0jZGVmaW5lIEVWX1RW X1NFVCh0dix0KSBkbyB7IHR2LnR2X3NlYyA9IChsb25nKXQ7IHR2LnR2X3VzZWMgPSAobG9uZyko KHQgLSB0di50dl9zZWMpICogMWU2KTsgfSB3aGlsZSAoMCkKLSNkZWZpbmUgRVZfVFNfU0VUKHRz LHQpIGRvIHsgdHMudHZfc2VjID0gKGxvbmcpdDsgdHMudHZfbnNlYyA9IChsb25nKSgodCAtIHRz LnR2X3NlYykgKiAxZTkpOyB9IHdoaWxlICgwKQorLyogZmluZCBhIHBvcnRhYmxlIHRpbWVzdGFt cCB0aGF0IGlzICJhbHdheXMiIGluIHRoZSBmdXR1cmUgYnV0IGZpdHMgaW50byB0aW1lX3QuCisg KiB0aGlzIGlzIHF1aXRlIGhhcmQsIGFuZCB3ZSBhcmUgbW9zdGx5IGd1ZXNzaW5nIC0gd2UgaGFu ZGxlIDMyIGJpdCBzaWduZWQvdW5zaWduZWQgdGltZV90LAorICogYW5kIHNpemVzIGxhcmdlciB0 aGFuIDMyIGJpdCwgYW5kIG1heWJlIHRoZSB1bmxpa2VseSBmbG9hdGluZyBwb2ludCB0aW1lX3Qg Ki8KKyNkZWZpbmUgRVZfVFNUQU1QX0hVR0UgXAorIMKgKHNpemVvZiAodGltZV90KSA+PSA4IMKg IMKgID8gMTAwMDAwMDAwMDAwMDAuIMKgXAorIMKgIDogMCA8ICh0aW1lX3QpNDI5NDk2NzI5NSA/ IMKgIMKgIDQyOTQ5NjcyOTUuIMKgXAorIMKgIDogwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAyMTQ3NDgzNjQ3LikgXAorCisjaWZuZGVmIEVWX1RTX0NPTlNUCisj IGRlZmluZSBFVl9UU19DT05TVChudikgbnYKKyMgZGVmaW5lIEVWX1RTX1RPX01TRUMoYSkgYSAq IDFlMyArIDAuOTk5OQorIyBkZWZpbmUgRVZfVFNfRlJPTV9VU0VDKHVzKSB1cyAqIDFlLTYKKyMg ZGVmaW5lIEVWX1RWX1NFVCh0dix0KSBkbyB7IHR2LnR2X3NlYyA9IChsb25nKXQ7IHR2LnR2X3Vz ZWMgPSAobG9uZykoKHQgLSB0di50dl9zZWMpICogMWU2KTsgfSB3aGlsZSAoMCkKKyMgZGVmaW5l IEVWX1RTX1NFVCh0cyx0KSBkbyB7IHRzLnR2X3NlYyA9IChsb25nKXQ7IHRzLnR2X25zZWMgPSAo bG9uZykoKHQgLSB0cy50dl9zZWMpICogMWU5KTsgfSB3aGlsZSAoMCkKKyMgZGVmaW5lIEVWX1RW X0dFVCh0dikgKCh0dikudHZfc2VjICsgKHR2KS50dl91c2VjICogMWUtNikKKyMgZGVmaW5lIEVW X1RTX0dFVCh0cykgKCh0cykudHZfc2VjICsgKHRzKS50dl9uc2VjICogMWUtOSkKKyNlbmRpZgrC oArCoC8qIHRoZSBmb2xsb3dpbmcgaXMgZWNiLmggZW1iZWRkZWQgaW50byBsaWJldiAtIHVzZSB1 cGRhdGVfZXZfYyB0byB1cGRhdGUgZnJvbSBhbiBleHRlcm5hbCBjb3B5ICovCsKgLyogRUNCLkgg QkVHSU4gKi8KwqAvKgrCoCAqIGxpYmVjYiAtIGh0dHA6Ly9zb2Z0d2FyZS5zY2htb3JwLmRlL3Br Zy9saWJlY2IKwqAgKgotICogQ29weXJpZ2h0ICjCqSkgMjAwOS0yMDE1IE1hcmMgQWxleGFuZGVy IExlaG1hbm4gPGxpYmVjYkBzY2htb3JwLmRlPgorICogQ29weXJpZ2h0ICjCqSkgMjAwOS0yMDE1 LDIwMTgtMjAyMCBNYXJjIEFsZXhhbmRlciBMZWhtYW5uIDxsaWJlY2JAc2NobW9ycC5kZT4KwqAg KiBDb3B5cmlnaHQgKMKpKSAyMDExIEVtYW51ZWxlIEdpYXF1aW50YQrCoCAqIEFsbCByaWdodHMg cmVzZXJ2ZWQuCsKgICoKQEAgLTUzNCwxNSArNjQ3LDIzIEBAIHN0cnVjdCBzaWduYWxmZF9zaWdp bmZvCsKgI2RlZmluZSBFQ0JfSArCoArCoC8qIDE2IGJpdHMgbWFqb3IsIDE2IGJpdHMgbWlub3Ig Ki8KLSNkZWZpbmUgRUNCX1ZFUlNJT04gMHgwMDAxMDAwNQorI2RlZmluZSBFQ0JfVkVSU0lPTiAw eDAwMDEwMDA4CsKgCi0jaWZkZWYgX1dJTjMyCisjaW5jbHVkZSA8c3RyaW5nLmg+IC8qIGZvciBt ZW1jcHkgKi8KKworI2lmIGRlZmluZWQgKF9XSU4zMikgJiYgIWRlZmluZWQgKF9fTUlOR1czMl9f KQrCoCDCoHR5cGVkZWYgwqAgc2lnbmVkIGNoYXIgwqAgaW50OF90OwrCoCDCoHR5cGVkZWYgdW5z aWduZWQgY2hhciDCoHVpbnQ4X3Q7CisgwqB0eXBlZGVmIMKgIHNpZ25lZCBjaGFyIMKgIGludF9m YXN0OF90OworIMKgdHlwZWRlZiB1bnNpZ25lZCBjaGFyIMKgdWludF9mYXN0OF90OwrCoCDCoHR5 cGVkZWYgwqAgc2lnbmVkIHNob3J0IMKgaW50MTZfdDsKwqAgwqB0eXBlZGVmIHVuc2lnbmVkIHNo b3J0IHVpbnQxNl90OworIMKgdHlwZWRlZiDCoCBzaWduZWQgaW50IMKgIMKgaW50X2Zhc3QxNl90 OworIMKgdHlwZWRlZiB1bnNpZ25lZCBpbnQgwqAgdWludF9mYXN0MTZfdDsKwqAgwqB0eXBlZGVm IMKgIHNpZ25lZCBpbnQgwqAgwqBpbnQzMl90OwrCoCDCoHR5cGVkZWYgdW5zaWduZWQgaW50IMKg IHVpbnQzMl90OworIMKgdHlwZWRlZiDCoCBzaWduZWQgaW50IMKgIMKgaW50X2Zhc3QzMl90Owor IMKgdHlwZWRlZiB1bnNpZ25lZCBpbnQgwqAgdWludF9mYXN0MzJfdDsKwqAgwqAjaWYgX19HTlVD X18KwqAgwqAgwqB0eXBlZGVmIMKgIHNpZ25lZCBsb25nIGxvbmcgaW50NjRfdDsKwqAgwqAgwqB0 eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1aW50NjRfdDsKQEAgLTU1MCw2ICs2NzEsOCBAQCBz dHJ1Y3Qgc2lnbmFsZmRfc2lnaW5mbwrCoCDCoCDCoHR5cGVkZWYgwqAgc2lnbmVkIF9faW50NjQg wqAgaW50NjRfdDsKwqAgwqAgwqB0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgwqAgdWludDY0X3Q7 CsKgIMKgI2VuZGlmCisgwqB0eXBlZGVmIMKgaW50NjRfdCDCoGludF9mYXN0NjRfdDsKKyDCoHR5 cGVkZWYgdWludDY0X3QgdWludF9mYXN0NjRfdDsKwqAgwqAjaWZkZWYgX1dJTjY0CsKgIMKgIMKg I2RlZmluZSBFQ0JfUFRSU0laRSA4CsKgIMKgIMKgdHlwZWRlZiB1aW50NjRfdCB1aW50cHRyX3Q7 CkBAIC01NzEsNiArNjk0LDE0IEBAIHN0cnVjdCBzaWduYWxmZF9zaWdpbmZvCsKgI2RlZmluZSBF Q0JfR0NDX0FNRDY0IChfX2FtZDY0IHx8IF9fYW1kNjRfXyB8fCBfX3g4Nl82NCB8fCBfX3g4Nl82 NF9fKQrCoCNkZWZpbmUgRUNCX01TVkNfQU1ENjQgKF9NX0FNRDY0IHx8IF9NX1g2NCkKwqAKKyNp Zm5kZWYgRUNCX09QVElNSVpFX1NJWkUKKyDCoCNpZiBfX09QVElNSVpFX1NJWkVfXworIMKgIMKg I2RlZmluZSBFQ0JfT1BUSU1JWkVfU0laRSAxCisgwqAjZWxzZQorIMKgIMKgI2RlZmluZSBFQ0Jf T1BUSU1JWkVfU0laRSAwCisgwqAjZW5kaWYKKyNlbmRpZgorCsKgLyogd29yayBhcm91bmQgeDMy IGlkaW9jeSBieSBkZWZpbmluZyBwcm9wZXIgbWFjcm9zICovCsKgI2lmIEVDQl9HQ0NfQU1ENjQg fHwgRUNCX01TVkNfQU1ENjQKwqAgwqAjaWYgX0lMUDMyCkBAIC02MDksNiArNzQwLDggQEAgc3Ry dWN0IHNpZ25hbGZkX3NpZ2luZm8KwqAKwqAjZGVmaW5lIEVDQl9DUFAgwqAgKF9fY3BsdXNwbHVz KzApCsKgI2RlZmluZSBFQ0JfQ1BQMTEgKF9fY3BsdXNwbHVzID49IDIwMTEwM0wpCisjZGVmaW5l IEVDQl9DUFAxNCAoX19jcGx1c3BsdXMgPj0gMjAxNDAyTCkKKyNkZWZpbmUgRUNCX0NQUDE3IChf X2NwbHVzcGx1cyA+PSAyMDE3MDNMKQrCoArCoCNpZiBFQ0JfQ1BQCsKgIMKgI2RlZmluZSBFQ0Jf QyDCoCDCoCDCoCDCoCDCoCDCoDAKQEAgLTYyMCw2ICs3NTMsNyBAQCBzdHJ1Y3Qgc2lnbmFsZmRf c2lnaW5mbwrCoArCoCNkZWZpbmUgRUNCX0M5OSDCoCAoRUNCX1NURENfVkVSU0lPTiA+PSAxOTk5 MDFMKQrCoCNkZWZpbmUgRUNCX0MxMSDCoCAoRUNCX1NURENfVkVSU0lPTiA+PSAyMDExMTJMKQor I2RlZmluZSBFQ0JfQzE3IMKgIChFQ0JfU1REQ19WRVJTSU9OID49IDIwMTcxMEwpCsKgCsKgI2lm IEVDQl9DUFAKwqAgwqAjZGVmaW5lIEVDQl9FWFRFUk5fQyBleHRlcm4gIkMiCkBAIC02NTUsMTQg Kzc4OSwxNSBAQCBzdHJ1Y3Qgc2lnbmFsZmRfc2lnaW5mbwrCoArCoCNpZm5kZWYgRUNCX01FTU9S WV9GRU5DRQrCoCDCoCNpZiBFQ0JfR0NDX1ZFUlNJT04oMiw1KSB8fCBkZWZpbmVkIF9fSU5URUxf Q09NUElMRVIgfHwgKF9fbGx2bV9fICYmIF9fR05VQ19fKSB8fCBfX1NVTlBST19DID49IDB4NTEx MCB8fCBfX1NVTlBST19DQyA+PSAweDUxMTAKKyDCoCDCoCNkZWZpbmUgRUNCX01FTU9SWV9GRU5D RV9SRUxBWEVEIF9fYXNtX18gX192b2xhdGlsZV9fICgiIiA6IDogOiAibWVtb3J5IikKwqAgwqAg wqAjaWYgX19pMzg2IHx8IF9faTM4Nl9fCsKgIMKgIMKgIMKgI2RlZmluZSBFQ0JfTUVNT1JZX0ZF TkNFIMKgIMKgIMKgIMKgIF9fYXNtX18gX192b2xhdGlsZV9fICgibG9jazsgb3JiICQwLCAtMSgl JWVzcCkiIDogOiA6ICJtZW1vcnkiKQrCoCDCoCDCoCDCoCNkZWZpbmUgRUNCX01FTU9SWV9GRU5D RV9BQ1FVSVJFIF9fYXNtX18gX192b2xhdGlsZV9fICgiIiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoDogOiA6ICJtZW1vcnkiKQotIMKgIMKgIMKgI2RlZmluZSBFQ0JfTUVNT1JZ X0ZFTkNFX1JFTEVBU0UgX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiKQorIMKgIMKgIMKgI2RlZmlu ZSBFQ0JfTUVNT1JZX0ZFTkNFX1JFTEVBU0UgX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgOiA6IDogIm1lbW9yeSIpCsKgIMKgIMKgI2Vs aWYgRUNCX0dDQ19BTUQ2NArCoCDCoCDCoCDCoCNkZWZpbmUgRUNCX01FTU9SWV9GRU5DRSDCoCDC oCDCoCDCoCBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mZW5jZSIgwqAgOiA6IDogIm1lbW9yeSIp CsKgIMKgIMKgIMKgI2RlZmluZSBFQ0JfTUVNT1JZX0ZFTkNFX0FDUVVJUkUgX19hc21fXyBfX3Zv bGF0aWxlX18gKCIiIMKgIMKgIMKgIMKgIDogOiA6ICJtZW1vcnkiKQotIMKgIMKgIMKgI2RlZmlu ZSBFQ0JfTUVNT1JZX0ZFTkNFX1JFTEVBU0UgX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiKQorIMKg IMKgIMKgI2RlZmluZSBFQ0JfTUVNT1JZX0ZFTkNFX1JFTEVBU0UgX19hc21fXyBfX3ZvbGF0aWxl X18gKCIiIMKgIMKgIMKgIMKgIDogOiA6ICJtZW1vcnkiKQrCoCDCoCDCoCNlbGlmIF9fcG93ZXJw Y19fIHx8IF9fcHBjX18gfHwgX19wb3dlcnBjNjRfXyB8fCBfX3BwYzY0X18KwqAgwqAgwqAgwqAj ZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0UgwqAgwqAgwqAgwqAgX19hc21fXyBfX3ZvbGF0aWxlX18g KCJzeW5jIiDCoCDCoCA6IDogOiAibWVtb3J5IikKwqAgwqAgwqAjZWxpZiBkZWZpbmVkIF9fQVJN X0FSQ0hfMl9fIFwKQEAgLTcxNCwxMiArODQ5LDE0IEBAIHN0cnVjdCBzaWduYWxmZF9zaWdpbmZv CsKgIMKgIMKgI2RlZmluZSBFQ0JfTUVNT1JZX0ZFTkNFIMKgIMKgIMKgIMKgIF9fYXRvbWljX3Ro cmVhZF9mZW5jZSAoX19BVE9NSUNfU0VRX0NTVCkKwqAgwqAgwqAjZGVmaW5lIEVDQl9NRU1PUllf RkVOQ0VfQUNRVUlSRSBfX2F0b21pY190aHJlYWRfZmVuY2UgKF9fQVRPTUlDX0FDUVVJUkUpCsKg IMKgIMKgI2RlZmluZSBFQ0JfTUVNT1JZX0ZFTkNFX1JFTEVBU0UgX19hdG9taWNfdGhyZWFkX2Zl bmNlIChfX0FUT01JQ19SRUxFQVNFKQorIMKgIMKgI2RlZmluZSBFQ0JfTUVNT1JZX0ZFTkNFX1JF TEFYRUQgX19hdG9taWNfdGhyZWFkX2ZlbmNlIChfX0FUT01JQ19SRUxBWEVEKQrCoArCoCDCoCNl bGlmIEVDQl9DTEFOR19FWFRFTlNJT04oY19hdG9taWMpCsKgIMKgIMKgLyogc2VlIGNvbW1lbnQg YmVsb3cgKHN0ZGF0b21pYy5oKSBhYm91dCB0aGUgQzExIG1lbW9yeSBtb2RlbC4gKi8KwqAgwqAg wqAjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0UgwqAgwqAgwqAgwqAgX19jMTFfYXRvbWljX3RocmVh ZF9mZW5jZSAoX19BVE9NSUNfU0VRX0NTVCkKwqAgwqAgwqAjZGVmaW5lIEVDQl9NRU1PUllfRkVO Q0VfQUNRVUlSRSBfX2MxMV9hdG9taWNfdGhyZWFkX2ZlbmNlIChfX0FUT01JQ19BQ1FVSVJFKQrC oCDCoCDCoCNkZWZpbmUgRUNCX01FTU9SWV9GRU5DRV9SRUxFQVNFIF9fYzExX2F0b21pY190aHJl YWRfZmVuY2UgKF9fQVRPTUlDX1JFTEVBU0UpCisgwqAgwqAjZGVmaW5lIEVDQl9NRU1PUllfRkVO Q0VfUkVMQVhFRCBfX2MxMV9hdG9taWNfdGhyZWFkX2ZlbmNlIChfX0FUT01JQ19SRUxBWEVEKQrC oArCoCDCoCNlbGlmIEVDQl9HQ0NfVkVSU0lPTig0LDQpIHx8IGRlZmluZWQgX19JTlRFTF9DT01Q SUxFUiB8fCBkZWZpbmVkIF9fY2xhbmdfXwrCoCDCoCDCoCNkZWZpbmUgRUNCX01FTU9SWV9GRU5D RSDCoCDCoCDCoCDCoCBfX3N5bmNfc3luY2hyb25pemUgKCkKQEAgLTczOSw5ICs4NzYsMTAgQEAg c3RydWN0IHNpZ25hbGZkX3NpZ2luZm8KwqAgwqAgwqAjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0Ug wqAgwqAgwqAgwqAgTWVtb3J5QmFycmllciAoKSAvKiBhY3R1YWxseSBqdXN0IHhjaGcgb24geDg2 Li4uIHNjYXJ5ICovCsKgIMKgI2VsaWYgX19TVU5QUk9fQyA+PSAweDUxMTAgfHwgX19TVU5QUk9f Q0MgPj0gMHg1MTEwCsKgIMKgIMKgI2luY2x1ZGUgPG1iYXJyaWVyLmg+Ci0gwqAgwqAjZGVmaW5l IEVDQl9NRU1PUllfRkVOQ0UgwqAgwqAgwqAgwqAgX19tYWNoaW5lX3J3X2JhcnJpZXIgKCkKLSDC oCDCoCNkZWZpbmUgRUNCX01FTU9SWV9GRU5DRV9BQ1FVSVJFIF9fbWFjaGluZV9yX2JhcnJpZXIg wqAoKQotIMKgIMKgI2RlZmluZSBFQ0JfTUVNT1JZX0ZFTkNFX1JFTEVBU0UgX19tYWNoaW5lX3df YmFycmllciDCoCgpCisgwqAgwqAjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0UgwqAgwqAgwqAgwqAg X19tYWNoaW5lX3J3X2JhcnJpZXIgwqAoKQorIMKgIMKgI2RlZmluZSBFQ0JfTUVNT1JZX0ZFTkNF X0FDUVVJUkUgX19tYWNoaW5lX2FjcV9iYXJyaWVyICgpCisgwqAgwqAjZGVmaW5lIEVDQl9NRU1P UllfRkVOQ0VfUkVMRUFTRSBfX21hY2hpbmVfcmVsX2JhcnJpZXIgKCkKKyDCoCDCoCNkZWZpbmUg RUNCX01FTU9SWV9GRU5DRV9SRUxBWEVEIF9fY29tcGlsZXJfYmFycmllciAoKQrCoCDCoCNlbGlm IF9feGxDX18KwqAgwqAgwqAjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0UgwqAgwqAgwqAgwqAgX19z eW5jICgpCsKgIMKgI2VuZGlmCkBAIC03NTIsMTUgKzg5MCw5IEBAIHN0cnVjdCBzaWduYWxmZF9z aWdpbmZvCsKgIMKgIMKgLyogd2UgYXNzdW1lIHRoYXQgdGhlc2UgbWVtb3J5IGZlbmNlcyB3b3Jr IG9uIGFsbCB2YXJpYWJsZXMvYWxsIG1lbW9yeSBhY2Nlc3NlcywgKi8KwqAgwqAgwqAvKiBub3Qg anVzdCBDMTEgYXRvbWljcyBhbmQgYXRvbWljIGFjY2Vzc2VzICovCsKgIMKgIMKgI2luY2x1ZGUg PHN0ZGF0b21pYy5oPgotIMKgIMKgLyogVW5mb3J0dW5hdGVseSwgbmVpdGhlciBnY2MgNC43IG5v ciBjbGFuZyAzLjEgZ2VuZXJhdGUgYW55IGluc3RydWN0aW9ucyBmb3IgKi8KLSDCoCDCoC8qIGFu eSBmZW5jZSBvdGhlciB0aGFuIHNlcV9jc3QsIHdoaWNoIGlzbid0IHZlcnkgZWZmaWNpZW50IGZv ciB1cy4gKi8KLSDCoCDCoC8qIFdoeSB0aGF0IGlzLCB3ZSBkb24ndCBrbm93IC0gZWl0aGVyIHRo ZSBDMTEgbWVtb3J5IG1vZGVsIGlzIHF1aXRlIHVzZWxlc3MgKi8KLSDCoCDCoC8qIGZvciBtb3N0 IHVzYWdlcywgb3IgZ2NjIGFuZCBjbGFuZyBoYXZlIGEgYnVnICovCi0gwqAgwqAvKiBJICpjdXJy ZW50bHkqIGxlYW4gdG93YXJkcyB0aGUgbGF0dGVyLCBhbmQgaW5lZmZpY2llbnRseSBpbXBsZW1l bnQgKi8KLSDCoCDCoC8qIGFsbCB0aHJlZSBvZiBlY2IncyBmZW5jZXMgYXMgYSBzZXFfY3N0IGZl bmNlICovCi0gwqAgwqAvKiBVcGRhdGUsIGdjYy00LjggZ2VuZXJhdGVzIG1mZW5jZSBmb3IgYWxs IGMrKyBmZW5jZXMsIGJ1dCBub3RoaW5nICovCi0gwqAgwqAvKiBmb3IgYWxsIF9fYXRvbWljX3Ro cmVhZF9mZW5jZSdzIGV4Y2VwdCBzZXFfY3N0ICovCsKgIMKgIMKgI2RlZmluZSBFQ0JfTUVNT1JZ X0ZFTkNFIMKgIMKgIMKgIMKgIGF0b21pY190aHJlYWRfZmVuY2UgKG1lbW9yeV9vcmRlcl9zZXFf Y3N0KQorIMKgIMKgI2RlZmluZSBFQ0JfTUVNT1JZX0ZFTkNFX0FDUVVJUkUgYXRvbWljX3RocmVh ZF9mZW5jZSAobWVtb3J5X29yZGVyX2FjcXVpcmUpCisgwqAgwqAjZGVmaW5lIEVDQl9NRU1PUllf RkVOQ0VfUkVMRUFTRSBhdG9taWNfdGhyZWFkX2ZlbmNlIChtZW1vcnlfb3JkZXJfcmVsZWFzZSkK wqAgwqAjZW5kaWYKwqAjZW5kaWYKwqAKQEAgLTc5MCw2ICs5MjIsMTAgQEAgc3RydWN0IHNpZ25h bGZkX3NpZ2luZm8KwqAgwqAjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0VfUkVMRUFTRSBFQ0JfTUVN T1JZX0ZFTkNFCsKgI2VuZGlmCsKgCisjaWYgIWRlZmluZWQgRUNCX01FTU9SWV9GRU5DRV9SRUxB WEVEICYmIGRlZmluZWQgRUNCX01FTU9SWV9GRU5DRQorIMKgI2RlZmluZSBFQ0JfTUVNT1JZX0ZF TkNFX1JFTEFYRUQgRUNCX01FTU9SWV9GRU5DRSAvKiB2ZXJ5IGhlYXZ5LWhhbmRlZCAqLworI2Vu ZGlmCisKwqAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCsKgCsKgI2lmIEVDQl9DUFAKQEAgLTEwODEs NiArMTIxNyw0NCBAQCBlY2JfaW5saW5lIGVjYl9jb25zdCB1aW50MzJfdCBlY2Jfcm90cjMyICh1 aW50MzJfdCB4LCB1bnNpZ25lZCBpbnQgY291bnQpIHsgcmV0dQrCoGVjYl9pbmxpbmUgZWNiX2Nv bnN0IHVpbnQ2NF90IGVjYl9yb3RsNjQgKHVpbnQ2NF90IHgsIHVuc2lnbmVkIGludCBjb3VudCkg eyByZXR1cm4gKHggPj4gKDY0IC0gY291bnQpKSB8ICh4IDw8IGNvdW50KTsgfQrCoGVjYl9pbmxp bmUgZWNiX2NvbnN0IHVpbnQ2NF90IGVjYl9yb3RyNjQgKHVpbnQ2NF90IHgsIHVuc2lnbmVkIGlu dCBjb3VudCkgeyByZXR1cm4gKHggPDwgKDY0IC0gY291bnQpKSB8ICh4ID4+IGNvdW50KTsgfQrC oAorI2lmIEVDQl9DUFAKKworaW5saW5lIHVpbnQ4X3QgwqBlY2JfY3R6ICh1aW50OF90IMKgdikg eyByZXR1cm4gZWNiX2N0ejMyICh2KTsgfQoraW5saW5lIHVpbnQxNl90IGVjYl9jdHogKHVpbnQx Nl90IHYpIHsgcmV0dXJuIGVjYl9jdHozMiAodik7IH0KK2lubGluZSB1aW50MzJfdCBlY2JfY3R6 ICh1aW50MzJfdCB2KSB7IHJldHVybiBlY2JfY3R6MzIgKHYpOyB9CitpbmxpbmUgdWludDY0X3Qg ZWNiX2N0eiAodWludDY0X3QgdikgeyByZXR1cm4gZWNiX2N0ejY0ICh2KTsgfQorCitpbmxpbmUg Ym9vbCBlY2JfaXNfcG90ICh1aW50OF90IMKgdikgeyByZXR1cm4gZWNiX2lzX3BvdDMyICh2KTsg fQoraW5saW5lIGJvb2wgZWNiX2lzX3BvdCAodWludDE2X3QgdikgeyByZXR1cm4gZWNiX2lzX3Bv dDMyICh2KTsgfQoraW5saW5lIGJvb2wgZWNiX2lzX3BvdCAodWludDMyX3QgdikgeyByZXR1cm4g ZWNiX2lzX3BvdDMyICh2KTsgfQoraW5saW5lIGJvb2wgZWNiX2lzX3BvdCAodWludDY0X3Qgdikg eyByZXR1cm4gZWNiX2lzX3BvdDY0ICh2KTsgfQorCitpbmxpbmUgaW50IGVjYl9sZCAodWludDhf dCDCoHYpIHsgcmV0dXJuIGVjYl9sZDMyICh2KTsgfQoraW5saW5lIGludCBlY2JfbGQgKHVpbnQx Nl90IHYpIHsgcmV0dXJuIGVjYl9sZDMyICh2KTsgfQoraW5saW5lIGludCBlY2JfbGQgKHVpbnQz Ml90IHYpIHsgcmV0dXJuIGVjYl9sZDMyICh2KTsgfQoraW5saW5lIGludCBlY2JfbGQgKHVpbnQ2 NF90IHYpIHsgcmV0dXJuIGVjYl9sZDY0ICh2KTsgfQorCitpbmxpbmUgaW50IGVjYl9wb3Bjb3Vu dCAodWludDhfdCDCoHYpIHsgcmV0dXJuIGVjYl9wb3Bjb3VudDMyICh2KTsgfQoraW5saW5lIGlu dCBlY2JfcG9wY291bnQgKHVpbnQxNl90IHYpIHsgcmV0dXJuIGVjYl9wb3Bjb3VudDMyICh2KTsg fQoraW5saW5lIGludCBlY2JfcG9wY291bnQgKHVpbnQzMl90IHYpIHsgcmV0dXJuIGVjYl9wb3Bj b3VudDMyICh2KTsgfQoraW5saW5lIGludCBlY2JfcG9wY291bnQgKHVpbnQ2NF90IHYpIHsgcmV0 dXJuIGVjYl9wb3Bjb3VudDY0ICh2KTsgfQorCitpbmxpbmUgdWludDhfdCDCoGVjYl9iaXRyZXYg KHVpbnQ4X3QgwqB2KSB7IHJldHVybiBlY2JfYml0cmV2OCDCoCh2KTsgfQoraW5saW5lIHVpbnQx Nl90IGVjYl9iaXRyZXYgKHVpbnQxNl90IHYpIHsgcmV0dXJuIGVjYl9iaXRyZXYxNiAodik7IH0K K2lubGluZSB1aW50MzJfdCBlY2JfYml0cmV2ICh1aW50MzJfdCB2KSB7IHJldHVybiBlY2JfYml0 cmV2MzIgKHYpOyB9CisKK2lubGluZSB1aW50OF90IMKgZWNiX3JvdGwgKHVpbnQ4X3QgwqB2LCB1 bnNpZ25lZCBpbnQgY291bnQpIHsgcmV0dXJuIGVjYl9yb3RsOCDCoCh2LCBjb3VudCk7IH0KK2lu bGluZSB1aW50MTZfdCBlY2Jfcm90bCAodWludDE2X3QgdiwgdW5zaWduZWQgaW50IGNvdW50KSB7 IHJldHVybiBlY2Jfcm90bDE2ICh2LCBjb3VudCk7IH0KK2lubGluZSB1aW50MzJfdCBlY2Jfcm90 bCAodWludDMyX3QgdiwgdW5zaWduZWQgaW50IGNvdW50KSB7IHJldHVybiBlY2Jfcm90bDMyICh2 LCBjb3VudCk7IH0KK2lubGluZSB1aW50NjRfdCBlY2Jfcm90bCAodWludDY0X3QgdiwgdW5zaWdu ZWQgaW50IGNvdW50KSB7IHJldHVybiBlY2Jfcm90bDY0ICh2LCBjb3VudCk7IH0KKworaW5saW5l IHVpbnQ4X3QgwqBlY2Jfcm90ciAodWludDhfdCDCoHYsIHVuc2lnbmVkIGludCBjb3VudCkgeyBy ZXR1cm4gZWNiX3JvdHI4IMKgKHYsIGNvdW50KTsgfQoraW5saW5lIHVpbnQxNl90IGVjYl9yb3Ry ICh1aW50MTZfdCB2LCB1bnNpZ25lZCBpbnQgY291bnQpIHsgcmV0dXJuIGVjYl9yb3RyMTYgKHYs IGNvdW50KTsgfQoraW5saW5lIHVpbnQzMl90IGVjYl9yb3RyICh1aW50MzJfdCB2LCB1bnNpZ25l ZCBpbnQgY291bnQpIHsgcmV0dXJuIGVjYl9yb3RyMzIgKHYsIGNvdW50KTsgfQoraW5saW5lIHVp bnQ2NF90IGVjYl9yb3RyICh1aW50NjRfdCB2LCB1bnNpZ25lZCBpbnQgY291bnQpIHsgcmV0dXJu IGVjYl9yb3RyNjQgKHYsIGNvdW50KTsgfQorCisjZW5kaWYKKwrCoCNpZiBFQ0JfR0NDX1ZFUlNJ T04oNCwzKSB8fCAoRUNCX0NMQU5HX0JVSUxUSU4oX19idWlsdGluX2Jzd2FwMzIpICYmIEVDQl9D TEFOR19CVUlMVElOKF9fYnVpbHRpbl9ic3dhcDY0KSkKwqAgwqAjaWYgRUNCX0dDQ19WRVJTSU9O KDQsOCkgfHwgRUNCX0NMQU5HX0JVSUxUSU4oX19idWlsdGluX2Jzd2FwMTYpCsKgIMKgI2RlZmlu ZSBlY2JfYnN3YXAxNih4KSDCoF9fYnVpbHRpbl9ic3dhcDE2ICh4KQpAQCAtMTE2MSw2ICsxMzM1 LDc4IEBAIGVjYl9pbmxpbmUgZWNiX2NvbnN0IGVjYl9ib29sIGVjYl9iaWdfZW5kaWFuIMKgIMKg KHZvaWQpIHsgcmV0dXJuIGVjYl9ieXRlb3JkZXJfaGUKwqBlY2JfaW5saW5lIGVjYl9jb25zdCBl Y2JfYm9vbCBlY2JfbGl0dGxlX2VuZGlhbiAodm9pZCk7CsKgZWNiX2lubGluZSBlY2JfY29uc3Qg ZWNiX2Jvb2wgZWNiX2xpdHRsZV9lbmRpYW4gKHZvaWQpIHsgcmV0dXJuIGVjYl9ieXRlb3JkZXJf aGVscGVyICgpID09IDB4NDQzMzIyMTE7IH0KwqAKKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8q IHVuYWxpZ25lZCBsb2FkL3N0b3JlICovCisKK2VjYl9pbmxpbmUgdWludF9mYXN0MTZfdCBlY2Jf YmVfdTE2X3RvX2hvc3QgKHVpbnRfZmFzdDE2X3QgdikgeyByZXR1cm4gZWNiX2xpdHRsZV9lbmRp YW4gKCkgPyBlY2JfYnN3YXAxNiAodikgOiB2OyB9CitlY2JfaW5saW5lIHVpbnRfZmFzdDMyX3Qg ZWNiX2JlX3UzMl90b19ob3N0ICh1aW50X2Zhc3QzMl90IHYpIHsgcmV0dXJuIGVjYl9saXR0bGVf ZW5kaWFuICgpID8gZWNiX2Jzd2FwMzIgKHYpIDogdjsgfQorZWNiX2lubGluZSB1aW50X2Zhc3Q2 NF90IGVjYl9iZV91NjRfdG9faG9zdCAodWludF9mYXN0NjRfdCB2KSB7IHJldHVybiBlY2JfbGl0 dGxlX2VuZGlhbiAoKSA/IGVjYl9ic3dhcDY0ICh2KSA6IHY7IH0KKworZWNiX2lubGluZSB1aW50 X2Zhc3QxNl90IGVjYl9sZV91MTZfdG9faG9zdCAodWludF9mYXN0MTZfdCB2KSB7IHJldHVybiBl Y2JfYmlnX2VuZGlhbiDCoCDCoCgpID8gZWNiX2Jzd2FwMTYgKHYpIDogdjsgfQorZWNiX2lubGlu ZSB1aW50X2Zhc3QzMl90IGVjYl9sZV91MzJfdG9faG9zdCAodWludF9mYXN0MzJfdCB2KSB7IHJl dHVybiBlY2JfYmlnX2VuZGlhbiDCoCDCoCgpID8gZWNiX2Jzd2FwMzIgKHYpIDogdjsgfQorZWNi X2lubGluZSB1aW50X2Zhc3Q2NF90IGVjYl9sZV91NjRfdG9faG9zdCAodWludF9mYXN0NjRfdCB2 KSB7IHJldHVybiBlY2JfYmlnX2VuZGlhbiDCoCDCoCgpID8gZWNiX2Jzd2FwNjQgKHYpIDogdjsg fQorCitlY2JfaW5saW5lIHVpbnRfZmFzdDE2X3QgZWNiX3BlZWtfdTE2X3UgKGNvbnN0IHZvaWQg KnB0cikgeyB1aW50MTZfdCB2OyBtZW1jcHkgKCZ2LCBwdHIsIHNpemVvZiAodikpOyByZXR1cm4g djsgfQorZWNiX2lubGluZSB1aW50X2Zhc3QzMl90IGVjYl9wZWVrX3UzMl91IChjb25zdCB2b2lk ICpwdHIpIHsgdWludDMyX3QgdjsgbWVtY3B5ICgmdiwgcHRyLCBzaXplb2YgKHYpKTsgcmV0dXJu IHY7IH0KK2VjYl9pbmxpbmUgdWludF9mYXN0NjRfdCBlY2JfcGVla191NjRfdSAoY29uc3Qgdm9p ZCAqcHRyKSB7IHVpbnQ2NF90IHY7IG1lbWNweSAoJnYsIHB0ciwgc2l6ZW9mICh2KSk7IHJldHVy biB2OyB9CisKK2VjYl9pbmxpbmUgdWludF9mYXN0MTZfdCBlY2JfcGVla19iZV91MTZfdSAoY29u c3Qgdm9pZCAqcHRyKSB7IHJldHVybiBlY2JfYmVfdTE2X3RvX2hvc3QgKGVjYl9wZWVrX3UxNl91 IChwdHIpKTsgfQorZWNiX2lubGluZSB1aW50X2Zhc3QzMl90IGVjYl9wZWVrX2JlX3UzMl91IChj b25zdCB2b2lkICpwdHIpIHsgcmV0dXJuIGVjYl9iZV91MzJfdG9faG9zdCAoZWNiX3BlZWtfdTMy X3UgKHB0cikpOyB9CitlY2JfaW5saW5lIHVpbnRfZmFzdDY0X3QgZWNiX3BlZWtfYmVfdTY0X3Ug KGNvbnN0IHZvaWQgKnB0cikgeyByZXR1cm4gZWNiX2JlX3U2NF90b19ob3N0IChlY2JfcGVla191 NjRfdSAocHRyKSk7IH0KKworZWNiX2lubGluZSB1aW50X2Zhc3QxNl90IGVjYl9wZWVrX2xlX3Ux Nl91IChjb25zdCB2b2lkICpwdHIpIHsgcmV0dXJuIGVjYl9sZV91MTZfdG9faG9zdCAoZWNiX3Bl ZWtfdTE2X3UgKHB0cikpOyB9CitlY2JfaW5saW5lIHVpbnRfZmFzdDMyX3QgZWNiX3BlZWtfbGVf dTMyX3UgKGNvbnN0IHZvaWQgKnB0cikgeyByZXR1cm4gZWNiX2xlX3UzMl90b19ob3N0IChlY2Jf cGVla191MzJfdSAocHRyKSk7IH0KK2VjYl9pbmxpbmUgdWludF9mYXN0NjRfdCBlY2JfcGVla19s ZV91NjRfdSAoY29uc3Qgdm9pZCAqcHRyKSB7IHJldHVybiBlY2JfbGVfdTY0X3RvX2hvc3QgKGVj Yl9wZWVrX3U2NF91IChwdHIpKTsgfQorCitlY2JfaW5saW5lIHVpbnRfZmFzdDE2X3QgZWNiX2hv c3RfdG9fYmVfdTE2ICh1aW50X2Zhc3QxNl90IHYpIHsgcmV0dXJuIGVjYl9saXR0bGVfZW5kaWFu ICgpID8gZWNiX2Jzd2FwMTYgKHYpIDogdjsgfQorZWNiX2lubGluZSB1aW50X2Zhc3QzMl90IGVj Yl9ob3N0X3RvX2JlX3UzMiAodWludF9mYXN0MzJfdCB2KSB7IHJldHVybiBlY2JfbGl0dGxlX2Vu ZGlhbiAoKSA/IGVjYl9ic3dhcDMyICh2KSA6IHY7IH0KK2VjYl9pbmxpbmUgdWludF9mYXN0NjRf dCBlY2JfaG9zdF90b19iZV91NjQgKHVpbnRfZmFzdDY0X3QgdikgeyByZXR1cm4gZWNiX2xpdHRs ZV9lbmRpYW4gKCkgPyBlY2JfYnN3YXA2NCAodikgOiB2OyB9CisKK2VjYl9pbmxpbmUgdWludF9m YXN0MTZfdCBlY2JfaG9zdF90b19sZV91MTYgKHVpbnRfZmFzdDE2X3QgdikgeyByZXR1cm4gZWNi X2JpZ19lbmRpYW4gwqAgwqAoKSA/IGVjYl9ic3dhcDE2ICh2KSA6IHY7IH0KK2VjYl9pbmxpbmUg dWludF9mYXN0MzJfdCBlY2JfaG9zdF90b19sZV91MzIgKHVpbnRfZmFzdDMyX3QgdikgeyByZXR1 cm4gZWNiX2JpZ19lbmRpYW4gwqAgwqAoKSA/IGVjYl9ic3dhcDMyICh2KSA6IHY7IH0KK2VjYl9p bmxpbmUgdWludF9mYXN0NjRfdCBlY2JfaG9zdF90b19sZV91NjQgKHVpbnRfZmFzdDY0X3Qgdikg eyByZXR1cm4gZWNiX2JpZ19lbmRpYW4gwqAgwqAoKSA/IGVjYl9ic3dhcDY0ICh2KSA6IHY7IH0K KworZWNiX2lubGluZSB2b2lkIGVjYl9wb2tlX3UxNl91ICh2b2lkICpwdHIsIHVpbnQxNl90IHYp IHsgbWVtY3B5IChwdHIsICZ2LCBzaXplb2YgKHYpKTsgfQorZWNiX2lubGluZSB2b2lkIGVjYl9w b2tlX3UzMl91ICh2b2lkICpwdHIsIHVpbnQzMl90IHYpIHsgbWVtY3B5IChwdHIsICZ2LCBzaXpl b2YgKHYpKTsgfQorZWNiX2lubGluZSB2b2lkIGVjYl9wb2tlX3U2NF91ICh2b2lkICpwdHIsIHVp bnQ2NF90IHYpIHsgbWVtY3B5IChwdHIsICZ2LCBzaXplb2YgKHYpKTsgfQorCitlY2JfaW5saW5l IHZvaWQgZWNiX3Bva2VfYmVfdTE2X3UgKHZvaWQgKnB0ciwgdWludF9mYXN0MTZfdCB2KSB7IGVj Yl9wb2tlX3UxNl91IChwdHIsIGVjYl9ob3N0X3RvX2JlX3UxNiAodikpOyB9CitlY2JfaW5saW5l IHZvaWQgZWNiX3Bva2VfYmVfdTMyX3UgKHZvaWQgKnB0ciwgdWludF9mYXN0MzJfdCB2KSB7IGVj Yl9wb2tlX3UzMl91IChwdHIsIGVjYl9ob3N0X3RvX2JlX3UzMiAodikpOyB9CitlY2JfaW5saW5l IHZvaWQgZWNiX3Bva2VfYmVfdTY0X3UgKHZvaWQgKnB0ciwgdWludF9mYXN0NjRfdCB2KSB7IGVj Yl9wb2tlX3U2NF91IChwdHIsIGVjYl9ob3N0X3RvX2JlX3U2NCAodikpOyB9CisgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAKK2VjYl9pbmxpbmUgdm9pZCBlY2JfcG9rZV9sZV91MTZfdSAo dm9pZCAqcHRyLCB1aW50X2Zhc3QxNl90IHYpIHsgZWNiX3Bva2VfdTE2X3UgKHB0ciwgZWNiX2hv c3RfdG9fbGVfdTE2ICh2KSk7IH0KK2VjYl9pbmxpbmUgdm9pZCBlY2JfcG9rZV9sZV91MzJfdSAo dm9pZCAqcHRyLCB1aW50X2Zhc3QzMl90IHYpIHsgZWNiX3Bva2VfdTMyX3UgKHB0ciwgZWNiX2hv c3RfdG9fbGVfdTMyICh2KSk7IH0KK2VjYl9pbmxpbmUgdm9pZCBlY2JfcG9rZV9sZV91NjRfdSAo dm9pZCAqcHRyLCB1aW50X2Zhc3Q2NF90IHYpIHsgZWNiX3Bva2VfdTY0X3UgKHB0ciwgZWNiX2hv c3RfdG9fbGVfdTY0ICh2KSk7IH0KKworI2lmIEVDQl9DUFAKKworaW5saW5lIHVpbnQ4X3QgwqBl Y2JfYnN3YXAgKHVpbnQ4X3QgwqB2KSB7IHJldHVybiB2OyB9CitpbmxpbmUgdWludDE2X3QgZWNi X2Jzd2FwICh1aW50MTZfdCB2KSB7IHJldHVybiBlY2JfYnN3YXAxNiAodik7IH0KK2lubGluZSB1 aW50MzJfdCBlY2JfYnN3YXAgKHVpbnQzMl90IHYpIHsgcmV0dXJuIGVjYl9ic3dhcDMyICh2KTsg fQoraW5saW5lIHVpbnQ2NF90IGVjYl9ic3dhcCAodWludDY0X3QgdikgeyByZXR1cm4gZWNiX2Jz d2FwNjQgKHYpOyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBUIGVjYl9iZV90b19o b3N0IChUIHYpIHsgcmV0dXJuIGVjYl9saXR0bGVfZW5kaWFuICgpID8gZWNiX2Jzd2FwICh2KSA6 IHY7IH0KK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBUIGVjYl9sZV90b19ob3N0IChUIHYp IHsgcmV0dXJuIGVjYl9iaWdfZW5kaWFuIMKgIMKgKCkgPyBlY2JfYnN3YXAgKHYpIDogdjsgfQor dGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIFQgZWNiX3BlZWsgwqAgwqAgwqAgKGNvbnN0IHZv aWQgKnB0cikgeyByZXR1cm4gKihjb25zdCBUICopcHRyOyB9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBU PiBpbmxpbmUgVCBlY2JfcGVla19iZSDCoCDCoChjb25zdCB2b2lkICpwdHIpIHsgcmV0dXJuIGVj Yl9iZV90b19ob3N0IChlY2JfcGVlayDCoDxUPiAocHRyKSk7IH0KK3RlbXBsYXRlPHR5cGVuYW1l IFQ+IGlubGluZSBUIGVjYl9wZWVrX2xlIMKgIMKgKGNvbnN0IHZvaWQgKnB0cikgeyByZXR1cm4g ZWNiX2xlX3RvX2hvc3QgKGVjYl9wZWVrIMKgPFQ+IChwdHIpKTsgfQordGVtcGxhdGU8dHlwZW5h bWUgVD4gaW5saW5lIFQgZWNiX3BlZWtfdSDCoCDCoCAoY29uc3Qgdm9pZCAqcHRyKSB7IFQgdjsg bWVtY3B5ICgmdiwgcHRyLCBzaXplb2YgKHYpKTsgcmV0dXJuIHY7IH0KK3RlbXBsYXRlPHR5cGVu YW1lIFQ+IGlubGluZSBUIGVjYl9wZWVrX2JlX3UgwqAoY29uc3Qgdm9pZCAqcHRyKSB7IHJldHVy biBlY2JfYmVfdG9faG9zdCAoZWNiX3BlZWtfdTxUPiAocHRyKSk7IH0KK3RlbXBsYXRlPHR5cGVu YW1lIFQ+IGlubGluZSBUIGVjYl9wZWVrX2xlX3UgwqAoY29uc3Qgdm9pZCAqcHRyKSB7IHJldHVy biBlY2JfbGVfdG9faG9zdCAoZWNiX3BlZWtfdTxUPiAocHRyKSk7IH0KKwordGVtcGxhdGU8dHlw ZW5hbWUgVD4gaW5saW5lIFQgZWNiX2hvc3RfdG9fYmUgKFQgdikgeyByZXR1cm4gZWNiX2xpdHRs ZV9lbmRpYW4gKCkgPyBlY2JfYnN3YXAgKHYpIDogdjsgfQordGVtcGxhdGU8dHlwZW5hbWUgVD4g aW5saW5lIFQgZWNiX2hvc3RfdG9fbGUgKFQgdikgeyByZXR1cm4gZWNiX2JpZ19lbmRpYW4gwqAg wqAoKSA/IGVjYl9ic3dhcCAodikgOiB2OyB9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUg dm9pZCBlY2JfcG9rZSDCoCDCoCDCoCh2b2lkICpwdHIsIFQgdikgeyAqKFQgKilwdHIgPSB2OyB9 Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBlY2JfcG9rZV9iZSDCoCAodm9pZCAq cHRyLCBUIHYpIHsgcmV0dXJuIGVjYl9wb2tlIMKgPFQ+IChwdHIsIGVjYl9ob3N0X3RvX2JlICh2 KSk7IH0KK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIGVjYl9wb2tlX2xlIMKgICh2 b2lkICpwdHIsIFQgdikgeyByZXR1cm4gZWNiX3Bva2UgwqA8VD4gKHB0ciwgZWNiX2hvc3RfdG9f bGUgKHYpKTsgfQordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgZWNiX3Bva2VfdSDC oCDCoCh2b2lkICpwdHIsIFQgdikgeyBtZW1jcHkgKHB0ciwgJnYsIHNpemVvZiAodikpOyB9Cit0 ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBlY2JfcG9rZV9iZV91ICh2b2lkICpwdHIs IFQgdikgeyByZXR1cm4gZWNiX3Bva2VfdTxUPiAocHRyLCBlY2JfaG9zdF90b19iZSAodikpOyB9 Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBlY2JfcG9rZV9sZV91ICh2b2lkICpw dHIsIFQgdikgeyByZXR1cm4gZWNiX3Bva2VfdTxUPiAocHRyLCBlY2JfaG9zdF90b19sZSAodikp OyB9CisKKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKwqAjaWYgRUNCX0dDQ19W RVJTSU9OKDMsMCkgfHwgRUNCX0M5OQrCoCDCoCNkZWZpbmUgZWNiX21vZChtLG4pICgobSkgJSAo bikgKyAoKG0pICUgKG4pIDwgMCA/IChuKSA6IDApKQrCoCNlbHNlCkBAIC0xMTk0LDYgKzE0NDAs OCBAQCBlY2JfaW5saW5lIGVjYl9jb25zdCBlY2JfYm9vbCBlY2JfbGl0dGxlX2VuZGlhbiAodm9p ZCkgeyByZXR1cm4gZWNiX2J5dGVvcmRlcl9oZQrCoCDCoCNkZWZpbmUgZWNiX2FycmF5X2xlbmd0 aChuYW1lKSAoc2l6ZW9mIChuYW1lKSAvIHNpemVvZiAobmFtZSBbMF0pKQrCoCNlbmRpZgrCoAor LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLworCsKgZWNiX2Z1bmN0aW9uXyBlY2JfY29uc3QgdWludDMy X3QgZWNiX2JpbmFyeTE2X3RvX2JpbmFyeTMyICh1aW50MzJfdCB4KTsKwqBlY2JfZnVuY3Rpb25f IGVjYl9jb25zdCB1aW50MzJfdArCoGVjYl9iaW5hcnkxNl90b19iaW5hcnkzMiAodWludDMyX3Qg eCkKQEAgLTEzMTEsNyArMTU1OSw2IEBAIGVjYl9iaW5hcnkzMl90b19iaW5hcnkxNiAodWludDMy X3QgeCkKwqAgwqAgwqB8fCAoZGVmaW5lZCBfX2FybV9fICYmIChkZWZpbmVkIF9fQVJNX0VBQklf XyB8fCBkZWZpbmVkIF9fRUFCSV9fIHx8IGRlZmluZWQgX19WRlBfRlBfXyB8fCBkZWZpbmVkIF9X SU4zMl9XQ0UgfHwgZGVmaW5lZCBfX0FORFJPSURfXykpIFwKwqAgwqAgwqB8fCBkZWZpbmVkIF9f YWFyY2g2NF9fCsKgIMKgI2RlZmluZSBFQ0JfU1RERlAgMQotIMKgI2luY2x1ZGUgPHN0cmluZy5o PiAvKiBmb3IgbWVtY3B5ICovCsKgI2Vsc2UKwqAgwqAjZGVmaW5lIEVDQl9TVERGUCAwCsKgI2Vu ZGlmCkBAIC0xNTA2LDcgKzE3NTMsNyBAQCBlY2JfYmluYXJ5MzJfdG9fYmluYXJ5MTYgKHVpbnQz Ml90IHgpCsKgI2lmIEVDQl9NRU1PUllfRkVOQ0VfTkVFRFNfUFRIUkVBRFMKwqAvKiBpZiB5b3Vy IGFyY2hpdGVjdHVyZSBkb2Vzbid0IG5lZWQgbWVtb3J5IGZlbmNlcywgZS5nLiBiZWNhdXNlIGl0 IGlzCsKgICogc2luZ2xlLWNwdS9jb3JlLCBvciBpZiB5b3UgdXNlIGxpYmV2IGluIGEgcHJvamVj dCB0aGF0IGRvZXNuJ3QgdXNlIGxpYmV2Ci0gKiBmcm9tIG11bHRpcGxlIHRocmVhZHMsIHRoZW4g eW91IGNhbiBkZWZpbmUgRUNCX0FWT0lEX1BUSFJFQURTIHdoZW4gY29tcGlsaW5nCisgKiBmcm9t IG11bHRpcGxlIHRocmVhZHMsIHRoZW4geW91IGNhbiBkZWZpbmUgRUNCX05PX1RIUkVBRFMgd2hl biBjb21waWxpbmcKwqAgKiBsaWJldiwgaW4gd2hpY2ggY2FzZXMgdGhlIG1lbW9yeSBmZW5jZXMg YmVjb21lIG5vcHMuCsKgICogYWx0ZXJuYXRpdmVseSwgeW91IGNhbiByZW1vdmUgdGhpcyAjZXJy b3IgYW5kIGxpbmsgYWdhaW5zdCBsaWJwdGhyZWFkLArCoCAqIHdoaWNoIHdpbGwgdGhlbiBwcm92 aWRlIHRoZSBtZW1vcnkgZmVuY2VzLgpAQCAtMTUyOSw5ICsxNzc2LDc1IEBAIGVjYl9iaW5hcnkz Ml90b19iaW5hcnkxNiAodWludDMyX3QgeCkKwqAjaWYgRVZfRkVBVFVSRV9DT0RFCsKgIyBkZWZp bmUgaW5saW5lX3NwZWVkIMKgIMKgIMKgZWNiX2lubGluZQrCoCNlbHNlCi0jIGRlZmluZSBpbmxp bmVfc3BlZWQgwqAgwqAgwqBub2lubGluZSBzdGF0aWMKKyMgZGVmaW5lIGlubGluZV9zcGVlZCDC oCDCoCDCoGVjYl9ub2lubGluZSBzdGF0aWMKwqAjZW5kaWYKwqAKKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KKy8qIHJhdyBzeXNjYWxsIHdyYXBwZXJzICovCisKKyNpZiBFVl9ORUVEX1NZU0NBTEwK KworI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CisKKy8qCisgKiBkZWZpbmUgc29tZSBzeXNjYWxs IHdyYXBwZXJzIGZvciBjb21tb24gYXJjaGl0ZWN0dXJlcworICogdGhpcyBpcyBtb3N0bHkgZm9y IG5pY2UgbG9va3MgZHVyaW5nIGRlYnVnZ2luZywgbm90IHBlcmZvcm1hbmNlLgorICogb3VyIHN5 c2NhbGxzIHJldHVybiA8IDAsIG5vdCA9PSAtMSwgb24gZXJyb3IuIHdoaWNoIGlzIGdvb2QKKyAq IGVub3VnaCBmb3IgbGludXggYWlvLgorICogVE9ETzogYXJtIGlzIGFsc28gY29tbW9uIG5vd2Fk YXlzLCBtYXliZSBldmVuIG1pcHMgYW5kIHg4NgorICogVE9ETzogYWZ0ZXIgaW1wbGVtZW50aW5n IHRoaXMsIGl0IHN1ZGRlbmx5IGxvb2tzIGxpa2Ugb3ZlcmtpbGwsIGJ1dCBpdHMgaGFyZCB0byBy ZW1vdmUuLi4KKyAqLworI2lmIF9fR05VQ19fICYmIF9fbGludXggJiYgRUNCX0FNRDY0ICYmICFF Vl9GRUFUVVJFX0NPREUKKyDCoC8qIHRoZSBjb3N0bHkgZXJybm8gYWNjZXNzIHByb2JhYmx5IGtp bGxzIHRoaXMgZm9yIHNpemUgb3B0aW1pc2F0aW9uICovCisKKyDCoCNkZWZpbmUgZXZfc3lzY2Fs bChucixuYXJnLGFyZzEsYXJnMixhcmczLGFyZzQsYXJnNSxhcmc2KSDCoCDCoCDCoCDCoCDCoCDC oFwKKyDCoCDCoCh7IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFwKKyDC oCDCoCDCoCDCoGxvbmcgcmVzOyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFwKKyDCoCDCoCDCoCDC oHJlZ2lzdGVyIHVuc2lnbmVkIGxvbmcgcjYgX19hc21fXyAoInI5IiApOyDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCBcCisgwqAgwqAgwqAgwqByZWdpc3RlciB1bnNpZ25lZCBsb25nIHI1 IF9fYXNtX18gKCJyOCIgKTsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXAorIMKgIMKg IMKgIMKgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyByNCBfX2FzbV9fICgicjEwIik7IMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIFwKKyDCoCDCoCDCoCDCoHJlZ2lzdGVyIHVuc2lnbmVkIGxv bmcgcjMgX19hc21fXyAoInJkeCIpOyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcCisg wqAgwqAgwqAgwqByZWdpc3RlciB1bnNpZ25lZCBsb25nIHIyIF9fYXNtX18gKCJyc2kiKTsgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXAorIMKgIMKgIMKgIMKgcmVnaXN0ZXIgdW5zaWdu ZWQgbG9uZyByMSBfX2FzbV9fICgicmRpIik7IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IFwKKyDCoCDCoCDCoCDCoGlmIChuYXJnID49IDYpIHI2ID0gKHVuc2lnbmVkIGxvbmcpKGFyZzYp OyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcCisgwqAgwqAgwqAgwqBpZiAobmFyZyA+ PSA1KSByNSA9ICh1bnNpZ25lZCBsb25nKShhcmc1KTsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgXAorIMKgIMKgIMKgIMKgaWYgKG5hcmcgPj0gNCkgcjQgPSAodW5zaWduZWQgbG9uZyko YXJnNCk7IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFwKKyDCoCDCoCDCoCDCoGlmIChu YXJnID49IDMpIHIzID0gKHVuc2lnbmVkIGxvbmcpKGFyZzMpOyDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCBcCisgwqAgwqAgwqAgwqBpZiAobmFyZyA+PSAyKSByMiA9ICh1bnNpZ25lZCBs b25nKShhcmcyKTsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXAorIMKgIMKgIMKgIMKg aWYgKG5hcmcgPj0gMSkgcjEgPSAodW5zaWduZWQgbG9uZykoYXJnMSk7IMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIFwKKyDCoCDCoCDCoCDCoF9fYXNtX18gX192b2xhdGlsZV9fICggwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg XAorIMKgIMKgIMKgIMKgIMKgInN5c2NhbGxcblx0IiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFwKKyDCoCDCoCDC oCDCoCDCoDogIj1hIiAocmVzKSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBcCisgwqAgwqAgwqAgwqAgwqA6ICIw IiAobnIpLCAiciIgKHIxKSwgInIiIChyMiksICJyIiAocjMpLCAiciIgKHI0KSwgInIiIChyNSkg XAorIMKgIMKgIMKgIMKgIMKgOiAiY2MiLCAicjExIiwgImN4IiwgIm1lbW9yeSIpOyDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFwKKyDCoCDCoCDCoCDCoGVycm5v ID0gLXJlczsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBcCisgwqAgwqAgwqAgwqByZXM7IMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIFwKKyDCoCDCoH0pCisKKyNlbmRpZgorCisjaWZkZWYgZXZfc3lz Y2FsbAorIMKgI2RlZmluZSBldl9zeXNjYWxsMChucikgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgZXZfc3lzY2FsbCAobnIsIDAsIMKgIMKgMCwgwqAgwqAwLCDC oCDCoDAsIMKgIMKgMCwgwqAgwqAwLCDCoCAwKQorIMKgI2RlZmluZSBldl9zeXNjYWxsMShucixh cmcxKSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGV2X3N5c2NhbGwgKG5y LCAxLCBhcmcxLCDCoCDCoDAsIMKgIMKgMCwgwqAgwqAwLCDCoCDCoDAsIMKgIDApCisgwqAjZGVm aW5lIGV2X3N5c2NhbGwyKG5yLGFyZzEsYXJnMikgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgZXZfc3lzY2FsbCAobnIsIDIsIGFyZzEsIGFyZzIsIMKgIMKgMCwgwqAgwqAwLCDCoCDCoDAs IMKgIDApCisgwqAjZGVmaW5lIGV2X3N5c2NhbGwzKG5yLGFyZzEsYXJnMixhcmczKSDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoGV2X3N5c2NhbGwgKG5yLCAzLCBhcmcxLCBhcmcyLCBhcmczLCDCoCDC oDAsIMKgIMKgMCwgwqAgMCkKKyDCoCNkZWZpbmUgZXZfc3lzY2FsbDQobnIsYXJnMSxhcmcyLGFy ZzMsYXJnNCkgwqAgwqAgwqAgwqAgwqAgZXZfc3lzY2FsbCAobnIsIDMsIGFyZzEsIGFyZzIsIGFy ZzMsIGFyZzQsIMKgIMKgMCwgwqAgMCkKKyDCoCNkZWZpbmUgZXZfc3lzY2FsbDUobnIsYXJnMSxh cmcyLGFyZzMsYXJnNCxhcmc1KSDCoCDCoCDCoGV2X3N5c2NhbGwgKG5yLCA1LCBhcmcxLCBhcmcy LCBhcmczLCBhcmc0LCBhcmc1LCDCoCAwKQorIMKgI2RlZmluZSBldl9zeXNjYWxsNihucixhcmcx LGFyZzIsYXJnMyxhcmc0LGFyZzUsYXJnNikgZXZfc3lzY2FsbCAobnIsIDYsIGFyZzEsIGFyZzIs IGFyZzMsIGFyZzQsIGFyZzUsYXJnNikKKyNlbHNlCisgwqAjZGVmaW5lIGV2X3N5c2NhbGwwKG5y KSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBzeXNjYWxsIChu cikKKyDCoCNkZWZpbmUgZXZfc3lzY2FsbDEobnIsYXJnMSkgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqBzeXNjYWxsIChuciwgYXJnMSkKKyDCoCNkZWZpbmUgZXZfc3lzY2Fs bDIobnIsYXJnMSxhcmcyKSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBzeXNjYWxsIChu ciwgYXJnMSwgYXJnMikKKyDCoCNkZWZpbmUgZXZfc3lzY2FsbDMobnIsYXJnMSxhcmcyLGFyZzMp IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgc3lzY2FsbCAobnIsIGFyZzEsIGFyZzIsIGFyZzMpCisg wqAjZGVmaW5lIGV2X3N5c2NhbGw0KG5yLGFyZzEsYXJnMixhcmczLGFyZzQpIMKgIMKgIMKgIMKg IMKgIHN5c2NhbGwgKG5yLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQorIMKgI2RlZmluZSBldl9z eXNjYWxsNShucixhcmcxLGFyZzIsYXJnMyxhcmc0LGFyZzUpIMKgIMKgIMKgc3lzY2FsbCAobnIs IGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUpCisgwqAjZGVmaW5lIGV2X3N5c2NhbGw2KG5y LGFyZzEsYXJnMixhcmczLGFyZzQsYXJnNSxhcmc2KSBzeXNjYWxsIChuciwgYXJnMSwgYXJnMiwg YXJnMywgYXJnNCwgYXJnNSxhcmc2KQorI2VuZGlmCisKKyNlbmRpZgorCisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisKwqAjZGVmaW5lIE5VTVBSSSAoRVZfTUFYUFJJIC0gRVZfTUlOUFJJICsgMSkK wqAKwqAjaWYgRVZfTUlOUFJJID09IEVWX01BWFBSSQpAQCAtMTU0MCw4ICsxODUzLDcgQEAgZWNi X2JpbmFyeTMyX3RvX2JpbmFyeTE2ICh1aW50MzJfdCB4KQrCoCMgZGVmaW5lIEFCU1BSSSh3KSAo KChXKXcpLT5wcmlvcml0eSAtIEVWX01JTlBSSSkKwqAjZW5kaWYKwqAKLSNkZWZpbmUgRU1QVFkg wqAgwqAgwqAgLyogcmVxdWlyZWQgZm9yIG1pY3Jvc29mdHMgYnJva2VuIHBzZXVkby1jIGNvbXBp bGVyICovCi0jZGVmaW5lIEVNUFRZMihhLGIpIC8qIHVzZWQgdG8gc3VwcHJlc3Mgc29tZSB3YXJu aW5ncyAqLworI2RlZmluZSBFTVBUWSAvKiByZXF1aXJlZCBmb3IgbWljcm9zb2Z0cyBicm9rZW4g cHNldWRvLWMgY29tcGlsZXIgKi8KwqAKwqB0eXBlZGVmIGV2X3dhdGNoZXIgKlc7CsKgdHlwZWRl ZiBldl93YXRjaGVyX2xpc3QgKldMOwpAQCAtMTU3Niw2ICsxODg4LDEwIEBAIHN0YXRpYyBFVl9B VE9NSUNfVCBoYXZlX21vbm90b25pYzsgLyogZGlkIGNsb2NrX2dldHRpbWUgKENMT0NLX01PTk9U T05JQykgd29yaz8KwqAKwqAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCsKgCisjaWYgRVZfVVNFX0xJ TlVYQUlPCisjIGluY2x1ZGUgPGxpbnV4L2Fpb19hYmkuaD4gLyogcHJvYmFibHkgb25seSBuZWVk ZWQgZm9yIGFpb19jb250ZXh0X3QgKi8KKyNlbmRpZgorCsKgLyogZGVmaW5lIGEgc3VpdGFibGUg Zmxvb3IgZnVuY3Rpb24gKG9ubHkgdXNlZCBieSBwZXJpb2RpY3MgYXRtKSAqLwrCoArCoCNpZiBF Vl9VU0VfRkxPT1IKQEAgLTE1ODYsNyArMTkwMiw3IEBAIHN0YXRpYyBFVl9BVE9NSUNfVCBoYXZl X21vbm90b25pYzsgLyogZGlkIGNsb2NrX2dldHRpbWUgKENMT0NLX01PTk9UT05JQykgd29yaz8K wqAjaW5jbHVkZSA8ZmxvYXQuaD4KwqAKwqAvKiBhIGZsb29yKCkgcmVwbGFjZW1lbnQgZnVuY3Rp b24sIHNob3VsZCBiZSBpbmRlcGVuZGVudCBvZiBldl90c3RhbXAgdHlwZSAqLwotbm9pbmxpbmUK K2VjYl9ub2lubGluZQrCoHN0YXRpYyBldl90c3RhbXAKwqBldl9mbG9vciAoZXZfdHN0YW1wIHYp CsKgewpAQCAtMTU5NywyNiArMTkxMywyNiBAQCBldl9mbG9vciAoZXZfdHN0YW1wIHYpCsKgIMKg Y29uc3QgZXZfdHN0YW1wIHNoaWZ0ID0gc2l6ZW9mICh1bnNpZ25lZCBsb25nKSA+PSA4ID8gMTg0 NDY3NDQwNzM3MDk1NTE2MTYuIDogNDI5NDk2NzI5Ni47CsKgI2VuZGlmCsKgCi0gwqAvKiBhcmd1 bWVudCB0b28gbGFyZ2UgZm9yIGFuIHVuc2lnbmVkIGxvbmc/ICovCi0gwqBpZiAoZXhwZWN0X2Zh bHNlICh2ID49IHNoaWZ0KSkKKyDCoC8qIHNwZWNpYWwgdHJlYXRtZW50IGZvciBuZWdhdGl2ZSBh cmd1bWVudHMgKi8KKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlICh2IDwgMC4pKQorIMKgIMKgewor IMKgIMKgIMKgZXZfdHN0YW1wIGYgPSAtZXZfZmxvb3IgKC12KTsKKworIMKgIMKgIMKgcmV0dXJu IGYgLSAoZiA9PSB2ID8gMCA6IDEpOworIMKgIMKgfQorCisgwqAvKiBhcmd1bWVudCB0b28gbGFy Z2UgZm9yIGFuIHVuc2lnbmVkIGxvbmc/IHRoZW4gcmVkdWNlIGl0ICovCisgwqBpZiAoZWNiX2V4 cGVjdF9mYWxzZSAodiA+PSBzaGlmdCkpCsKgIMKgIMKgewrCoCDCoCDCoCDCoGV2X3RzdGFtcCBm OwrCoArCoCDCoCDCoCDCoGlmICh2ID09IHYgLSAxLikKLSDCoCDCoCDCoCDCoHJldHVybiB2OyAv KiB2ZXJ5IGxhcmdlIG51bWJlciAqLworIMKgIMKgIMKgIMKgcmV0dXJuIHY7IC8qIHZlcnkgbGFy Z2UgbnVtYmVycyBhcmUgYXNzdW1lZCB0byBiZSBpbnRlZ2VyICovCsKgCsKgIMKgIMKgIMKgZiA9 IHNoaWZ0ICogZXZfZmxvb3IgKHYgKiAoMS4gLyBzaGlmdCkpOwrCoCDCoCDCoCDCoHJldHVybiBm ICsgZXZfZmxvb3IgKHYgLSBmKTsKwqAgwqAgwqB9CsKgCi0gwqAvKiBzcGVjaWFsIHRyZWF0bWVu dCBmb3IgbmVnYXRpdmUgYXJncz8gKi8KLSDCoGlmIChleHBlY3RfZmFsc2UgKHYgPCAwLikpCi0g wqAgwqB7Ci0gwqAgwqAgwqBldl90c3RhbXAgZiA9IC1ldl9mbG9vciAoLXYpOwotCi0gwqAgwqAg wqByZXR1cm4gZiAtIChmID09IHYgPyAwIDogMSk7Ci0gwqAgwqB9Ci0KwqAgwqAvKiBmaXRzIGlu dG8gYW4gdW5zaWduZWQgbG9uZyAqLwrCoCDCoHJldHVybiAodW5zaWduZWQgbG9uZyl2OwrCoH0K QEAgLTE2MjksNyArMTk0NSw3IEBAIGV2X2Zsb29yIChldl90c3RhbXAgdikKwqAjIGluY2x1ZGUg PHN5cy91dHNuYW1lLmg+CsKgI2VuZGlmCsKgCi1ub2lubGluZSBlY2JfY29sZAorZWNiX25vaW5s aW5lIGVjYl9jb2xkCsKgc3RhdGljIHVuc2lnbmVkIGludArCoGV2X2xpbnV4X3ZlcnNpb24gKHZv aWQpCsKgewpAQCAtMTY2OSw3ICsxOTg1LDcgQEAgZXZfbGludXhfdmVyc2lvbiAodm9pZCkKwqAv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCsKgCsKgI2lmIEVWX0FWT0lEX1NURElPCi1ub2lubGluZSBl Y2JfY29sZAorZWNiX25vaW5saW5lIGVjYl9jb2xkCsKgc3RhdGljIHZvaWQKwqBldl9wcmludGVy ciAoY29uc3QgY2hhciAqbXNnKQrCoHsKQEAgLTE2NzcsMTYgKzE5OTMsMTYgQEAgZXZfcHJpbnRl cnIgKGNvbnN0IGNoYXIgKm1zZykKwqB9CsKgI2VuZGlmCsKgCi1zdGF0aWMgdm9pZCAoKnN5c2Vy cl9jYikoY29uc3QgY2hhciAqbXNnKSBFVl9USFJPVzsKK3N0YXRpYyB2b2lkICgqc3lzZXJyX2Ni KShjb25zdCBjaGFyICptc2cpIEVWX05PRVhDRVBUOwrCoArCoGVjYl9jb2xkCsKgdm9pZAotZXZf c2V0X3N5c2Vycl9jYiAodm9pZCAoKmNiKShjb25zdCBjaGFyICptc2cpIEVWX1RIUk9XKSBFVl9U SFJPVworZXZfc2V0X3N5c2Vycl9jYiAodm9pZCAoKmNiKShjb25zdCBjaGFyICptc2cpIEVWX05P RVhDRVBUKSBFVl9OT0VYQ0VQVArCoHsKwqAgwqBzeXNlcnJfY2IgPSBjYjsKwqB9CsKgCi1ub2lu bGluZSBlY2JfY29sZAorZWNiX25vaW5saW5lIGVjYl9jb2xkCsKgc3RhdGljIHZvaWQKwqBldl9z eXNlcnIgKGNvbnN0IGNoYXIgKm1zZykKwqB7CkBAIC0xNzEwLDcgKzIwMjYsNyBAQCBldl9zeXNl cnIgKGNvbnN0IGNoYXIgKm1zZykKwqB9CsKgCsKgc3RhdGljIHZvaWQgKgotZXZfcmVhbGxvY19l bXVsICh2b2lkICpwdHIsIGxvbmcgc2l6ZSkgRVZfVEhST1cKK2V2X3JlYWxsb2NfZW11bCAodm9p ZCAqcHRyLCBsb25nIHNpemUpIEVWX05PRVhDRVBUCsKgewrCoCDCoC8qIHNvbWUgc3lzdGVtcywg bm90YWJseSBvcGVuYnNkIGFuZCBkYXJ3aW4sIGZhaWwgdG8gcHJvcGVybHkKwqAgwqAgKiBpbXBs ZW1lbnQgcmVhbGxvYyAoeCwgMCkgKGFzIHJlcXVpcmVkIGJ5IGJvdGggYW5zaSBjLTg5IGFuZApA QCAtMTcyNiwxMSArMjA0MiwxMSBAQCBldl9yZWFsbG9jX2VtdWwgKHZvaWQgKnB0ciwgbG9uZyBz aXplKSBFVl9USFJPVwrCoCDCoHJldHVybiAwOwrCoH0KwqAKLXN0YXRpYyB2b2lkICooKmFsbG9j KSh2b2lkICpwdHIsIGxvbmcgc2l6ZSkgRVZfVEhST1cgPSBldl9yZWFsbG9jX2VtdWw7CitzdGF0 aWMgdm9pZCAqKCphbGxvYykodm9pZCAqcHRyLCBsb25nIHNpemUpIEVWX05PRVhDRVBUID0gZXZf cmVhbGxvY19lbXVsOwrCoArCoGVjYl9jb2xkCsKgdm9pZAotZXZfc2V0X2FsbG9jYXRvciAodm9p ZCAqKCpjYikodm9pZCAqcHRyLCBsb25nIHNpemUpIEVWX1RIUk9XKSBFVl9USFJPVworZXZfc2V0 X2FsbG9jYXRvciAodm9pZCAqKCpjYikodm9pZCAqcHRyLCBsb25nIHNpemUpIEVWX05PRVhDRVBU KSBFVl9OT0VYQ0VQVArCoHsKwqAgwqBhbGxvYyA9IGNiOwrCoH0KQEAgLTE3NjcsOCArMjA4Myw4 IEBAIHR5cGVkZWYgc3RydWN0CsKgIMKgV0wgaGVhZDsKwqAgwqB1bnNpZ25lZCBjaGFyIGV2ZW50 czsgLyogdGhlIGV2ZW50cyB3YXRjaGVkIGZvciAqLwrCoCDCoHVuc2lnbmVkIGNoYXIgcmVpZnk7 IMKgLyogZmxhZyBzZXQgd2hlbiB0aGlzIEFORkQgbmVlZHMgcmVpZmljYXRpb24gKEVWX0FORkRf UkVJRlksIEVWX19JT0ZEU0VUKSAqLwotIMKgdW5zaWduZWQgY2hhciBlbWFzazsgwqAvKiB0aGUg ZXBvbGwgYmFja2VuZCBzdG9yZXMgdGhlIGFjdHVhbCBrZXJuZWwgbWFzayBpbiBoZXJlICovCi0g wqB1bnNpZ25lZCBjaGFyIHVudXNlZDsKKyDCoHVuc2lnbmVkIGNoYXIgZW1hc2s7IMKgLyogc29t ZSBiYWNrZW5kcyBzdG9yZSB0aGUgYWN0dWFsIGtlcm5lbCBtYXNrIGluIGhlcmUgKi8KKyDCoHVu c2lnbmVkIGNoYXIgZWZsYWdzOyAvKiBmbGFncyBmaWVsZCBmb3IgdXNlIGJ5IGJhY2tlbmRzICov CsKgI2lmIEVWX1VTRV9FUE9MTArCoCDCoHVuc2lnbmVkIGludCBlZ2VuOyDCoCDCoC8qIGdlbmVy YXRpb24gY291bnRlciB0byBjb3VudGVyIGVwb2xsIGJ1Z3MgKi8KwqAjZW5kaWYKQEAgLTE4MzIs MTIgKzIxNDgsNyBAQCB0eXBlZGVmIHN0cnVjdArCoArCoCNlbHNlCsKgCi0jaWZkZWYgRVZfQVBJ X1NUQVRJQwotIMKgc3RhdGljIGV2X3RzdGFtcCBldl9ydF9ub3cgPSAwOwotI2Vsc2UKLSDCoGV2 X3RzdGFtcCBldl9ydF9ub3cgPSAwOwotI2VuZGlmCi0KKyDCoEVWX0FQSV9ERUNMIGV2X3RzdGFt cCBldl9ydF9ub3cgPSBFVl9UU19DT05TVCAoMC4pOyAvKiBuZWVkcyB0byBiZSBpbml0aWFsaXNl ZCB0byBtYWtlIGl0IGEgZGVmaW5pdGlvbiBkZXNwaXRlIGV4dGVybiAqLwrCoCDCoCNkZWZpbmUg VkFSKG5hbWUsZGVjbCkgc3RhdGljIGRlY2w7CsKgIMKgIMKgI2luY2x1ZGUgImV2X3ZhcnMuaCIK wqAgwqAjdW5kZWYgVkFSCkBAIC0xODQ3LDggKzIxNTgsOCBAQCB0eXBlZGVmIHN0cnVjdArCoCNl bmRpZgrCoArCoCNpZiBFVl9GRUFUVVJFX0FQSQotIyBkZWZpbmUgRVZfUkVMRUFTRV9DQiBpZiAo ZXhwZWN0X2ZhbHNlIChyZWxlYXNlX2NiKSkgcmVsZWFzZV9jYiAoRVZfQSkKLSMgZGVmaW5lIEVW X0FDUVVJUkVfQ0IgaWYgKGV4cGVjdF9mYWxzZSAoYWNxdWlyZV9jYikpIGFjcXVpcmVfY2IgKEVW X0EpCisjIGRlZmluZSBFVl9SRUxFQVNFX0NCIGlmIChlY2JfZXhwZWN0X2ZhbHNlIChyZWxlYXNl X2NiKSkgcmVsZWFzZV9jYiAoRVZfQSkKKyMgZGVmaW5lIEVWX0FDUVVJUkVfQ0IgaWYgKGVjYl9l eHBlY3RfZmFsc2UgKGFjcXVpcmVfY2IpKSBhY3F1aXJlX2NiIChFVl9BKQrCoCMgZGVmaW5lIEVW X0lOVk9LRV9QRU5ESU5HIGludm9rZV9jYiAoRVZfQSkKwqAjZWxzZQrCoCMgZGVmaW5lIEVWX1JF TEVBU0VfQ0IgKHZvaWQpMApAQCAtMTg2MiwyMCArMjE3MywyMiBAQCB0eXBlZGVmIHN0cnVjdArC oArCoCNpZm5kZWYgRVZfSEFWRV9FVl9USU1FCsKgZXZfdHN0YW1wCi1ldl90aW1lICh2b2lkKSBF Vl9USFJPVworZXZfdGltZSAodm9pZCkgRVZfTk9FWENFUFQKwqB7CsKgI2lmIEVWX1VTRV9SRUFM VElNRQotIMKgaWYgKGV4cGVjdF90cnVlIChoYXZlX3JlYWx0aW1lKSkKKyDCoGlmIChlY2JfZXhw ZWN0X3RydWUgKGhhdmVfcmVhbHRpbWUpKQrCoCDCoCDCoHsKwqAgwqAgwqAgwqBzdHJ1Y3QgdGlt ZXNwZWMgdHM7CsKgIMKgIMKgIMKgY2xvY2tfZ2V0dGltZSAoQ0xPQ0tfUkVBTFRJTUUsICZ0cyk7 Ci0gwqAgwqAgwqByZXR1cm4gdHMudHZfc2VjICsgdHMudHZfbnNlYyAqIDFlLTk7CisgwqAgwqAg wqByZXR1cm4gRVZfVFNfR0VUICh0cyk7CsKgIMKgIMKgfQrCoCNlbmRpZgrCoAotIMKgc3RydWN0 IHRpbWV2YWwgdHY7Ci0gwqBnZXR0aW1lb2ZkYXkgKCZ0diwgMCk7Ci0gwqByZXR1cm4gdHYudHZf c2VjICsgdHYudHZfdXNlYyAqIDFlLTY7CisgwqB7CisgwqAgwqBzdHJ1Y3QgdGltZXZhbCB0djsK KyDCoCDCoGdldHRpbWVvZmRheSAoJnR2LCAwKTsKKyDCoCDCoHJldHVybiBFVl9UVl9HRVQgKHR2 KTsKKyDCoH0KwqB9CsKgI2VuZGlmCsKgCkBAIC0xODgzLDExICsyMTk2LDExIEBAIGlubGluZV9z aXplIGV2X3RzdGFtcArCoGdldF9jbG9jayAodm9pZCkKwqB7CsKgI2lmIEVWX1VTRV9NT05PVE9O SUMKLSDCoGlmIChleHBlY3RfdHJ1ZSAoaGF2ZV9tb25vdG9uaWMpKQorIMKgaWYgKGVjYl9leHBl Y3RfdHJ1ZSAoaGF2ZV9tb25vdG9uaWMpKQrCoCDCoCDCoHsKwqAgwqAgwqAgwqBzdHJ1Y3QgdGlt ZXNwZWMgdHM7CsKgIMKgIMKgIMKgY2xvY2tfZ2V0dGltZSAoQ0xPQ0tfTU9OT1RPTklDLCAmdHMp OwotIMKgIMKgIMKgcmV0dXJuIHRzLnR2X3NlYyArIHRzLnR2X25zZWMgKiAxZS05OworIMKgIMKg IMKgcmV0dXJuIEVWX1RTX0dFVCAodHMpOwrCoCDCoCDCoH0KwqAjZW5kaWYKwqAKQEAgLTE4OTYs MjggKzIyMDksMjggQEAgZ2V0X2Nsb2NrICh2b2lkKQrCoArCoCNpZiBFVl9NVUxUSVBMSUNJVFkK wqBldl90c3RhbXAKLWV2X25vdyAoRVZfUCkgRVZfVEhST1cKK2V2X25vdyAoRVZfUCkgRVZfTk9F WENFUFQKwqB7CsKgIMKgcmV0dXJuIGV2X3J0X25vdzsKwqB9CsKgI2VuZGlmCsKgCsKgZXZfdHN0 YW1wCi1ldl9tb25vdG9uaWNfbm93IChFVl9QKSBFVl9USFJPVworZXZfbW9ub3RvbmljX25vdyAo RVZfUCkgRVZfTk9FWENFUFQKwqB7CsKgIMKgcmV0dXJuIG1uX25vdzsKwqB9CsKgCsKgZXZfdHN0 YW1wCi1ldl9tb25vdG9uaWNfdGltZSAodm9pZCkgRVZfVEhST1cKK2V2X21vbm90b25pY190aW1l ICh2b2lkKSBFVl9OT0VYQ0VQVArCoHsKwqAgwqByZXR1cm4gZ2V0X2Nsb2NrKCk7CsKgfQrCoArC oHZvaWQKLWV2X3NsZWVwIChldl90c3RhbXAgZGVsYXkpIEVWX1RIUk9XCitldl9zbGVlcCAoZXZf dHN0YW1wIGRlbGF5KSBFVl9OT0VYQ0VQVArCoHsKLSDCoGlmIChkZWxheSA+IDAuKQorIMKgaWYg KGRlbGF5ID4gRVZfVFNfQ09OU1QgKDAuKSkKwqAgwqAgwqB7CsKgI2lmIEVWX1VTRV9OQU5PU0xF RVAKwqAgwqAgwqAgwqBzdHJ1Y3QgdGltZXNwZWMgdHM7CkBAIC0xOTI1LDcgKzIyMzgsOSBAQCBl dl9zbGVlcCAoZXZfdHN0YW1wIGRlbGF5KSBFVl9USFJPVwrCoCDCoCDCoCDCoEVWX1RTX1NFVCAo dHMsIGRlbGF5KTsKwqAgwqAgwqAgwqBuYW5vc2xlZXAgKCZ0cywgMCk7CsKgI2VsaWYgZGVmaW5l ZCBfV0lOMzIKLSDCoCDCoCDCoFNsZWVwICgodW5zaWduZWQgbG9uZykoZGVsYXkgKiAxZTMpKTsK KyDCoCDCoCDCoC8qIG1heWJlIHRoaXMgc2hvdWxkIHJvdW5kIHVwLCBhcyBtcyBpcyB2ZXJ5IGxv dyByZXNvbHV0aW9uICovCisgwqAgwqAgwqAvKiBjb21wYXJlZCB0byBzZWxlY3QgKMK1cykgb3Ig bmFub3NsZWVwIChucykgKi8KKyDCoCDCoCDCoFNsZWVwICgodW5zaWduZWQgbG9uZykoRVZfVFNf VE9fTVNFQyAoZGVsYXkpKSk7CsKgI2Vsc2UKwqAgwqAgwqAgwqBzdHJ1Y3QgdGltZXZhbCB0djsK wqAKQEAgLTE5NjUsNyArMjI4MCw3IEBAIGFycmF5X25leHRzaXplIChpbnQgZWxlbSwgaW50IGN1 ciwgaW50IGNudCkKwqAgwqByZXR1cm4gbmN1cjsKwqB9CsKgCi1ub2lubGluZSBlY2JfY29sZAor ZWNiX25vaW5saW5lIGVjYl9jb2xkCsKgc3RhdGljIHZvaWQgKgrCoGFycmF5X3JlYWxsb2MgKGlu dCBlbGVtLCB2b2lkICpiYXNlLCBpbnQgKmN1ciwgaW50IGNudCkKwqB7CkBAIC0xOTczLDE2ICsy Mjg4LDE4IEBAIGFycmF5X3JlYWxsb2MgKGludCBlbGVtLCB2b2lkICpiYXNlLCBpbnQgKmN1ciwg aW50IGNudCkKwqAgwqByZXR1cm4gZXZfcmVhbGxvYyAoYmFzZSwgZWxlbSAqICpjdXIpOwrCoH0K wqAKLSNkZWZpbmUgYXJyYXlfaW5pdF96ZXJvKGJhc2UsY291bnQpIMKgIMKgXAotIMKgbWVtc2V0 ICgodm9pZCAqKShiYXNlKSwgMCwgc2l6ZW9mICgqKGJhc2UpKSAqIChjb3VudCkpCisjZGVmaW5l IGFycmF5X25lZWRzaXplX25vaW5pdChiYXNlLG9mZnNldCxjb3VudCkKKworI2RlZmluZSBhcnJh eV9uZWVkc2l6ZV96ZXJvZmlsbChiYXNlLG9mZnNldCxjb3VudCkgwqAgwqBcCisgwqBtZW1zZXQg KCh2b2lkICopKGJhc2UgKyBvZmZzZXQpLCAwLCBzaXplb2YgKCooYmFzZSkpICogKGNvdW50KSkK wqAKwqAjZGVmaW5lIGFycmF5X25lZWRzaXplKHR5cGUsYmFzZSxjdXIsY250LGluaXQpIMKgIMKg IMKgIMKgIMKgIMKgXAotIMKgaWYgKGV4cGVjdF9mYWxzZSAoKGNudCkgPiAoY3VyKSkpIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgXAorIMKgaWYgKGVjYl9leHBlY3RfZmFsc2UgKChjbnQpID4gKGN1 cikpKSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFwKwqAgwqAgwqB7IMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXArCoCDCoCDCoCDCoGVjYl91bnVzZWQgaW50 IG9jdXJfID0gKGN1cik7IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgXArCoCDCoCDCoCDCoChiYXNl KSA9ICh0eXBlICopYXJyYXlfcmVhbGxvYyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoFwKwqAgwqAg wqAgwqAgwqAgKHNpemVvZiAodHlwZSksIChiYXNlKSwgJihjdXIpLCAoY250KSk7IMKgIMKgIMKg IMKgXAotIMKgIMKgIMKgaW5pdCAoKGJhc2UpICsgKG9jdXJfKSwgKGN1cikgLSBvY3VyXyk7IMKg IMKgIMKgIMKgIMKgIMKgXAorIMKgIMKgIMKgaW5pdCAoKGJhc2UpLCBvY3VyXywgKChjdXIpIC0g b2N1cl8pKTsgwqAgwqAgwqAgwqAgwqAgwqBcCsKgIMKgIMKgfQrCoArCoCNpZiAwCkBAIC0yMDAx LDI1ICsyMzE4LDI1IEBAIGFycmF5X3JlYWxsb2MgKGludCBlbGVtLCB2b2lkICpiYXNlLCBpbnQg KmN1ciwgaW50IGNudCkKwqAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCsKgCsKgLyogZHVtbXkgY2Fs bGJhY2sgZm9yIHBlbmRpbmcgZXZlbnRzICovCi1ub2lubGluZQorZWNiX25vaW5saW5lCsKgc3Rh dGljIHZvaWQKwqBwZW5kaW5nY2IgKEVWX1BfIGV2X3ByZXBhcmUgKncsIGludCByZXZlbnRzKQrC oHsKwqB9CsKgCi1ub2lubGluZQorZWNiX25vaW5saW5lCsKgdm9pZAotZXZfZmVlZF9ldmVudCAo RVZfUF8gdm9pZCAqdywgaW50IHJldmVudHMpIEVWX1RIUk9XCitldl9mZWVkX2V2ZW50IChFVl9Q XyB2b2lkICp3LCBpbnQgcmV2ZW50cykgRVZfTk9FWENFUFQKwqB7CsKgIMKgVyB3XyA9IChXKXc7 CsKgIMKgaW50IHByaSA9IEFCU1BSSSAod18pOwrCoAotIMKgaWYgKGV4cGVjdF9mYWxzZSAod18t PnBlbmRpbmcpKQorIMKgaWYgKGVjYl9leHBlY3RfZmFsc2UgKHdfLT5wZW5kaW5nKSkKwqAgwqAg wqBwZW5kaW5ncyBbcHJpXVt3Xy0+cGVuZGluZyAtIDFdLmV2ZW50cyB8PSByZXZlbnRzOwrCoCDC oGVsc2UKwqAgwqAgwqB7CsKgIMKgIMKgIMKgd18tPnBlbmRpbmcgPSArK3BlbmRpbmdjbnQgW3By aV07Ci0gwqAgwqAgwqBhcnJheV9uZWVkc2l6ZSAoQU5QRU5ESU5HLCBwZW5kaW5ncyBbcHJpXSwg cGVuZGluZ21heCBbcHJpXSwgd18tPnBlbmRpbmcsIEVNUFRZMik7CisgwqAgwqAgwqBhcnJheV9u ZWVkc2l6ZSAoQU5QRU5ESU5HLCBwZW5kaW5ncyBbcHJpXSwgcGVuZGluZ21heCBbcHJpXSwgd18t PnBlbmRpbmcsIGFycmF5X25lZWRzaXplX25vaW5pdCk7CsKgIMKgIMKgIMKgcGVuZGluZ3MgW3By aV1bd18tPnBlbmRpbmcgLSAxXS53IMKgIMKgIMKgPSB3XzsKwqAgwqAgwqAgwqBwZW5kaW5ncyBb cHJpXVt3Xy0+cGVuZGluZyAtIDFdLmV2ZW50cyA9IHJldmVudHM7CsKgIMKgIMKgfQpAQCAtMjAz MCw3ICsyMzQ3LDcgQEAgZXZfZmVlZF9ldmVudCAoRVZfUF8gdm9pZCAqdywgaW50IHJldmVudHMp IEVWX1RIUk9XCsKgaW5saW5lX3NwZWVkIHZvaWQKwqBmZWVkX3JldmVyc2UgKEVWX1BfIFcgdykK wqB7Ci0gwqBhcnJheV9uZWVkc2l6ZSAoVywgcmZlZWRzLCByZmVlZG1heCwgcmZlZWRjbnQgKyAx LCBFTVBUWTIpOworIMKgYXJyYXlfbmVlZHNpemUgKFcsIHJmZWVkcywgcmZlZWRtYXgsIHJmZWVk Y250ICsgMSwgYXJyYXlfbmVlZHNpemVfbm9pbml0KTsKwqAgwqByZmVlZHMgW3JmZWVkY250Kytd ID0gdzsKwqB9CsKgCkBAIC0yMDc1LDEyICsyMzkyLDEyIEBAIGZkX2V2ZW50IChFVl9QXyBpbnQg ZmQsIGludCByZXZlbnRzKQrCoHsKwqAgwqBBTkZEICphbmZkID0gYW5mZHMgKyBmZDsKwqAKLSDC oGlmIChleHBlY3RfdHJ1ZSAoIWFuZmQtPnJlaWZ5KSkKKyDCoGlmIChlY2JfZXhwZWN0X3RydWUg KCFhbmZkLT5yZWlmeSkpCsKgIMKgIMKgZmRfZXZlbnRfbm9jaGVjayAoRVZfQV8gZmQsIHJldmVu dHMpOwrCoH0KwqAKwqB2b2lkCi1ldl9mZWVkX2ZkX2V2ZW50IChFVl9QXyBpbnQgZmQsIGludCBy ZXZlbnRzKSBFVl9USFJPVworZXZfZmVlZF9mZF9ldmVudCAoRVZfUF8gaW50IGZkLCBpbnQgcmV2 ZW50cykgRVZfTk9FWENFUFQKwqB7CsKgIMKgaWYgKGZkID49IDAgJiYgZmQgPCBhbmZkbWF4KQrC oCDCoCDCoGZkX2V2ZW50X25vY2hlY2sgKEVWX0FfIGZkLCByZXZlbnRzKTsKQEAgLTIwOTMsOCAr MjQxMCwyMCBAQCBmZF9yZWlmeSAoRVZfUCkKwqB7CsKgIMKgaW50IGk7CsKgCisgwqAvKiBtb3N0 IGJhY2tlbmRzIGRvIG5vdCBtb2RpZnkgdGhlIGZkY2hhbmdlcyBsaXN0IGluIGJhY2tlbmRfbW9k Zml5LgorIMKgICogZXhjZXB0IGlvX3VyaW5nLCB3aGljaCBoYXMgZml4ZWQtc2l6ZSBidWZmZXJz IHdoaWNoIG1pZ2h0IGZvcmNlIHVzCisgwqAgKiB0byBoYW5kbGUgZXZlbnRzIGluIGJhY2tlbmRf bW9kaWZ5LCBjYXVzaW5nIGZkY2hhbmdlcyB0byBiZSBhbWVuZGVkLAorIMKgICogd2hpY2ggY291 bGQgcmVzdWx0IGluIGFuIGVuZGxlc3MgbG9vcC4KKyDCoCAqIHRvIGF2b2lkIHRoaXMsIHdlIGRv IG5vdCBkeW5hbWljYWxseSBoYW5kbGUgZmRzIHRoYXQgd2VyZSBhZGRlZAorIMKgICogZHVyaW5n IGZkX3JlaWZ5LiB0aGF0IG1lYW5zIHRoYXQgZm9yIHRob3NlIGJhY2tlbmRzLCBmZGNoYW5nZWNu dAorIMKgICogbWlnaHQgYmUgbm9uLXplcm8gZHVyaW5nIHBvbGwsIHdoaWNoIG11c3QgY2F1c2Ug dGhlbSB0byBub3QgYmxvY2suCisgwqAgKiB0byBub3QgcHV0IHRvbyBtdWNoIG9mIGEgYnVyZGVu IG9uIG90aGVyIGJhY2tlbmRzLCB0aGlzIGRldGFpbAorIMKgICogbmVlZHMgdG8gYmUgaGFuZGxl ZCBpbiB0aGUgYmFja2VuZC4KKyDCoCAqLworIMKgaW50IGNoYW5nZWNudCA9IGZkY2hhbmdlY250 OworCsKgI2lmIEVWX1NFTEVDVF9JU19XSU5TT0NLRVQgfHwgRVZfVVNFX0lPQ1AKLSDCoGZvciAo aSA9IDA7IGkgPCBmZGNoYW5nZWNudDsgKytpKQorIMKgZm9yIChpID0gMDsgaSA8IGNoYW5nZWNu dDsgKytpKQrCoCDCoCDCoHsKwqAgwqAgwqAgwqBpbnQgZmQgPSBmZGNoYW5nZXMgW2ldOwrCoCDC oCDCoCDCoEFORkQgKmFuZmQgPSBhbmZkcyArIGZkOwpAQCAtMjExOCw3ICsyNDQ3LDcgQEAgZmRf cmVpZnkgKEVWX1ApCsKgIMKgIMKgfQrCoCNlbmRpZgrCoAotIMKgZm9yIChpID0gMDsgaSA8IGZk Y2hhbmdlY250OyArK2kpCisgwqBmb3IgKGkgPSAwOyBpIDwgY2hhbmdlY250OyArK2kpCsKgIMKg IMKgewrCoCDCoCDCoCDCoGludCBmZCA9IGZkY2hhbmdlcyBbaV07CsKgIMKgIMKgIMKgQU5GRCAq YW5mZCA9IGFuZmRzICsgZmQ7CkBAIC0yMTI3LDkgKzI0NTYsOSBAQCBmZF9yZWlmeSAoRVZfUCkK wqAgwqAgwqAgwqB1bnNpZ25lZCBjaGFyIG9fZXZlbnRzID0gYW5mZC0+ZXZlbnRzOwrCoCDCoCDC oCDCoHVuc2lnbmVkIGNoYXIgb19yZWlmeSDCoD0gYW5mZC0+cmVpZnk7CsKgCi0gwqAgwqAgwqBh bmZkLT5yZWlmeSDCoD0gMDsKKyDCoCDCoCDCoGFuZmQtPnJlaWZ5ID0gMDsKwqAKLSDCoCDCoCDC oC8qaWYgKGV4cGVjdF90cnVlIChvX3JlaWZ5ICYgRVZfQU5GRF9SRUlGWSkpIHByb2JhYmx5IGEg ZGVvcHRpbWlzYXRpb24gKi8KKyDCoCDCoCDCoC8qaWYgKGVjYl9leHBlY3RfdHJ1ZSAob19yZWlm eSAmIEVWX0FORkRfUkVJRlkpKSBwcm9iYWJseSBhIGRlb3B0aW1pc2F0aW9uICovCsKgIMKgIMKg IMKgIMKgewrCoCDCoCDCoCDCoCDCoCDCoGFuZmQtPmV2ZW50cyA9IDA7CsKgCkBAIC0yMTQ0LDcg KzI0NzMsMTQgQEAgZmRfcmVpZnkgKEVWX1ApCsKgIMKgIMKgIMKgIMKgYmFja2VuZF9tb2RpZnkg KEVWX0FfIGZkLCBvX2V2ZW50cywgYW5mZC0+ZXZlbnRzKTsKwqAgwqAgwqB9CsKgCi0gwqBmZGNo YW5nZWNudCA9IDA7CisgwqAvKiBub3JtYWxseSwgZmRjaGFuZ2VjbnQgaGFzbid0IGNoYW5nZWQu IGlmIGl0IGhhcywgdGhlbiBuZXcgZmRzIGhhdmUgYmVlbiBhZGRlZC4KKyDCoCAqIHRoaXMgaXMg YSByYXJlIGNhc2UgKHNlZSBiZWdpbm5pbmcgY29tbWVudCBpbiB0aGlzIGZ1bmN0aW9uKSwgc28g d2UgY29weSB0aGVtIHRvIHRoZQorIMKgICogZnJvbnQgYW5kIGhvcGUgdGhlIGJhY2tlbmQgaGFu ZGxlcyB0aGlzIGNhc2UuCisgwqAgKi8KKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChmZGNoYW5n ZWNudCAhPSBjaGFuZ2VjbnQpKQorIMKgIMKgbWVtbW92ZSAoZmRjaGFuZ2VzLCBmZGNoYW5nZXMg KyBjaGFuZ2VjbnQsIChmZGNoYW5nZWNudCAtIGNoYW5nZWNudCkgKiBzaXplb2YgKCpmZGNoYW5n ZXMpKTsKKworIMKgZmRjaGFuZ2VjbnQgLT0gY2hhbmdlY250OwrCoH0KwqAKwqAvKiBzb21ldGhp bmcgYWJvdXQgdGhlIGdpdmVuIGZkIGNoYW5nZWQgKi8KQEAgLTIxNTMsMTIgKzI0ODksMTIgQEAg dm9pZArCoGZkX2NoYW5nZSAoRVZfUF8gaW50IGZkLCBpbnQgZmxhZ3MpCsKgewrCoCDCoHVuc2ln bmVkIGNoYXIgcmVpZnkgPSBhbmZkcyBbZmRdLnJlaWZ5OwotIMKgYW5mZHMgW2ZkXS5yZWlmeSB8 PSBmbGFnczsKKyDCoGFuZmRzIFtmZF0ucmVpZnkgPSByZWlmeSB8IGZsYWdzOwrCoAotIMKgaWYg KGV4cGVjdF90cnVlICghcmVpZnkpKQorIMKgaWYgKGVjYl9leHBlY3RfdHJ1ZSAoIXJlaWZ5KSkK wqAgwqAgwqB7CsKgIMKgIMKgIMKgKytmZGNoYW5nZWNudDsKLSDCoCDCoCDCoGFycmF5X25lZWRz aXplIChpbnQsIGZkY2hhbmdlcywgZmRjaGFuZ2VtYXgsIGZkY2hhbmdlY250LCBFTVBUWTIpOwor IMKgIMKgIMKgYXJyYXlfbmVlZHNpemUgKGludCwgZmRjaGFuZ2VzLCBmZGNoYW5nZW1heCwgZmRj aGFuZ2VjbnQsIGFycmF5X25lZWRzaXplX25vaW5pdCk7CsKgIMKgIMKgIMKgZmRjaGFuZ2VzIFtm ZGNoYW5nZWNudCAtIDFdID0gZmQ7CsKgIMKgIMKgfQrCoH0KQEAgLTIxODgsNyArMjUyNCw3IEBA IGZkX3ZhbGlkIChpbnQgZmQpCsKgfQrCoArCoC8qIGNhbGxlZCBvbiBFQkFERiB0byB2ZXJpZnkg ZmRzICovCi1ub2lubGluZSBlY2JfY29sZAorZWNiX25vaW5saW5lIGVjYl9jb2xkCsKgc3RhdGlj IHZvaWQKwqBmZF9lYmFkZiAoRVZfUCkKwqB7CkBAIC0yMjAxLDcgKzI1MzcsNyBAQCBmZF9lYmFk ZiAoRVZfUCkKwqB9CsKgCsKgLyogY2FsbGVkIG9uIEVOT01FTSBpbiBzZWxlY3QvcG9sbCB0byBr aWxsIHNvbWUgZmRzIGFuZCByZXRyeSAqLwotbm9pbmxpbmUgZWNiX2NvbGQKK2VjYl9ub2lubGlu ZSBlY2JfY29sZArCoHN0YXRpYyB2b2lkCsKgZmRfZW5vbWVtIChFVl9QKQrCoHsKQEAgLTIyMTYs NyArMjU1Miw3IEBAIGZkX2Vub21lbSAoRVZfUCkKwqB9CsKgCsKgLyogdXN1YWxseSBjYWxsZWQg YWZ0ZXIgZm9yayBpZiBiYWNrZW5kIG5lZWRzIHRvIHJlLWFybSBhbGwgZmRzIGZyb20gc2NyYXRj aCAqLwotbm9pbmxpbmUKK2VjYl9ub2lubGluZQrCoHN0YXRpYyB2b2lkCsKgZmRfcmVhcm1fYWxs IChFVl9QKQrCoHsKQEAgLTIyODAsMTkgKzI2MTYsMTkgQEAgZG93bmhlYXAgKEFOSEUgKmhlYXAs IGludCBOLCBpbnQgaykKwqAgwqAgwqAgwqBBTkhFICpwb3MgPSBoZWFwICsgREhFQVAgKiAoayAt IEhFQVAwKSArIEhFQVAwICsgMTsKwqAKwqAgwqAgwqAgwqAvKiBmaW5kIG1pbmltdW0gY2hpbGQg Ki8KLSDCoCDCoCDCoGlmIChleHBlY3RfdHJ1ZSAocG9zICsgREhFQVAgLSAxIDwgRSkpCisgwqAg wqAgwqBpZiAoZWNiX2V4cGVjdF90cnVlIChwb3MgKyBESEVBUCAtIDEgPCBFKSkKwqAgwqAgwqAg wqAgwqB7CsKgIMKgIMKgIMKgIMKgIMKgLyogZmFzdCBwYXRoICovIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIChtaW5wb3MgPSBwb3MgKyAwKSwgKG1pbmF0ID0g QU5IRV9hdCAoKm1pbnBvcykpOwotIMKgIMKgIMKgIMKgIMKgaWYgKCDCoCDCoCDCoCDCoCDCoCDC oCDCoCBBTkhFX2F0IChwb3MgWzFdKSA8IG1pbmF0KSAobWlucG9zID0gcG9zICsgMSksIChtaW5h dCA9IEFOSEVfYXQgKCptaW5wb3MpKTsKLSDCoCDCoCDCoCDCoCDCoGlmICggwqAgwqAgwqAgwqAg wqAgwqAgwqAgQU5IRV9hdCAocG9zIFsyXSkgPCBtaW5hdCkgKG1pbnBvcyA9IHBvcyArIDIpLCAo bWluYXQgPSBBTkhFX2F0ICgqbWlucG9zKSk7Ci0gwqAgwqAgwqAgwqAgwqBpZiAoIMKgIMKgIMKg IMKgIMKgIMKgIMKgIEFOSEVfYXQgKHBvcyBbM10pIDwgbWluYXQpIChtaW5wb3MgPSBwb3MgKyAz KSwgKG1pbmF0ID0gQU5IRV9hdCAoKm1pbnBvcykpOworIMKgIMKgIMKgIMKgIMKgaWYgKCDCoCDC oCDCoCDCoCDCoCDCoCDCoCBtaW5hdCA+IEFOSEVfYXQgKHBvcyBbMV0pKSAobWlucG9zID0gcG9z ICsgMSksIChtaW5hdCA9IEFOSEVfYXQgKCptaW5wb3MpKTsKKyDCoCDCoCDCoCDCoCDCoGlmICgg wqAgwqAgwqAgwqAgwqAgwqAgwqAgbWluYXQgPiBBTkhFX2F0IChwb3MgWzJdKSkgKG1pbnBvcyA9 IHBvcyArIDIpLCAobWluYXQgPSBBTkhFX2F0ICgqbWlucG9zKSk7CisgwqAgwqAgwqAgwqAgwqBp ZiAoIMKgIMKgIMKgIMKgIMKgIMKgIMKgIG1pbmF0ID4gQU5IRV9hdCAocG9zIFszXSkpIChtaW5w b3MgPSBwb3MgKyAzKSwgKG1pbmF0ID0gQU5IRV9hdCAoKm1pbnBvcykpOwrCoCDCoCDCoCDCoCDC oH0KwqAgwqAgwqAgwqBlbHNlIGlmIChwb3MgPCBFKQrCoCDCoCDCoCDCoCDCoHsKwqAgwqAgwqAg wqAgwqAgwqAvKiBzbG93IHBhdGggKi8gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgKG1pbnBvcyA9IHBvcyArIDApLCAobWluYXQgPSBBTkhFX2F0ICgqbWlucG9z KSk7Ci0gwqAgwqAgwqAgwqAgwqBpZiAocG9zICsgMSA8IEUgJiYgQU5IRV9hdCAocG9zIFsxXSkg PCBtaW5hdCkgKG1pbnBvcyA9IHBvcyArIDEpLCAobWluYXQgPSBBTkhFX2F0ICgqbWlucG9zKSk7 Ci0gwqAgwqAgwqAgwqAgwqBpZiAocG9zICsgMiA8IEUgJiYgQU5IRV9hdCAocG9zIFsyXSkgPCBt aW5hdCkgKG1pbnBvcyA9IHBvcyArIDIpLCAobWluYXQgPSBBTkhFX2F0ICgqbWlucG9zKSk7Ci0g wqAgwqAgwqAgwqAgwqBpZiAocG9zICsgMyA8IEUgJiYgQU5IRV9hdCAocG9zIFszXSkgPCBtaW5h dCkgKG1pbnBvcyA9IHBvcyArIDMpLCAobWluYXQgPSBBTkhFX2F0ICgqbWlucG9zKSk7CisgwqAg wqAgwqAgwqAgwqBpZiAocG9zICsgMSA8IEUgJiYgbWluYXQgPiBBTkhFX2F0IChwb3MgWzFdKSkg KG1pbnBvcyA9IHBvcyArIDEpLCAobWluYXQgPSBBTkhFX2F0ICgqbWlucG9zKSk7CisgwqAgwqAg wqAgwqAgwqBpZiAocG9zICsgMiA8IEUgJiYgbWluYXQgPiBBTkhFX2F0IChwb3MgWzJdKSkgKG1p bnBvcyA9IHBvcyArIDIpLCAobWluYXQgPSBBTkhFX2F0ICgqbWlucG9zKSk7CisgwqAgwqAgwqAg wqAgwqBpZiAocG9zICsgMyA8IEUgJiYgbWluYXQgPiBBTkhFX2F0IChwb3MgWzNdKSkgKG1pbnBv cyA9IHBvcyArIDMpLCAobWluYXQgPSBBTkhFX2F0ICgqbWlucG9zKSk7CsKgIMKgIMKgIMKgIMKg fQrCoCDCoCDCoCDCoGVsc2UKwqAgwqAgwqAgwqAgwqBicmVhazsKQEAgLTIzMTAsNyArMjY0Niw3 IEBAIGRvd25oZWFwIChBTkhFICpoZWFwLCBpbnQgTiwgaW50IGspCsKgIMKgZXZfYWN0aXZlIChB TkhFX3cgKGhlKSkgPSBrOwrCoH0KwqAKLSNlbHNlIC8qIDRIRUFQICovCisjZWxzZSAvKiBub3Qg NEhFQVAgKi8KwqAKwqAjZGVmaW5lIEhFQVAwIDEKwqAjZGVmaW5lIEhQQVJFTlQoaykgKChrKSA+ PiAxKQpAQCAtMjM5Miw3ICsyNzI4LDcgQEAgcmVoZWFwIChBTkhFICpoZWFwLCBpbnQgTikKwqAK wqAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCsKgCi0vKiBhc3NvY2lhdGUgc2lnbmFsIHdhdGNoZXJz IHRvIGEgc2lnbmFsIHNpZ25hbCAqLworLyogYXNzb2NpYXRlIHNpZ25hbCB3YXRjaGVycyB0byBh IHNpZ25hbCAqLwrCoHR5cGVkZWYgc3RydWN0CsKgewrCoCDCoEVWX0FUT01JQ19UIHBlbmRpbmc7 CkBAIC0yNDY2LDcgKzI4MDIsNyBAQCBldnBpcGVfd3JpdGUgKEVWX1BfIEVWX0FUT01JQ19UICpm bGFnKQrCoHsKwqAgwqBFQ0JfTUVNT1JZX0ZFTkNFOyAvKiBwdXNoIG91dCB0aGUgd3JpdGUgYmVm b3JlIHRoaXMgZnVuY3Rpb24gd2FzIGNhbGxlZCwgYWNxdWlyZSBmbGFnICovCsKgCi0gwqBpZiAo ZXhwZWN0X3RydWUgKCpmbGFnKSkKKyDCoGlmIChlY2JfZXhwZWN0X3RydWUgKCpmbGFnKSkKwqAg wqAgwqByZXR1cm47CsKgCsKgIMKgKmZsYWcgPSAxOwpAQCAtMjQ5Nyw3ICsyODMzLDcgQEAgZXZw aXBlX3dyaXRlIChFVl9QXyBFVl9BVE9NSUNfVCAqZmxhZykKwqAjaWZkZWYgX1dJTjMyCsKgIMKg IMKgIMKgIMKgIMKgV1NBQlVGIGJ1ZjsKwqAgwqAgwqAgwqAgwqAgwqBEV09SRCBzZW50OwotIMKg IMKgIMKgIMKgIMKgYnVmLmJ1ZiA9ICZidWY7CisgwqAgwqAgwqAgwqAgwqBidWYuYnVmID0gKGNo YXIgKikmYnVmOwrCoCDCoCDCoCDCoCDCoCDCoGJ1Zi5sZW4gPSAxOwrCoCDCoCDCoCDCoCDCoCDC oFdTQVNlbmQgKEVWX0ZEX1RPX1dJTjMyX0hBTkRMRSAoZXZwaXBlIFsxXSksICZidWYsIDEsICZz ZW50LCAwLCAwLCAwKTsKwqAjZWxzZQpAQCAtMjU1Myw3ICsyODg5LDcgQEAgcGlwZWNiIChFVl9Q XyBldl9pbyAqaW93LCBpbnQgcmV2ZW50cykKwqAgwqAgwqAgwqBFQ0JfTUVNT1JZX0ZFTkNFOwrC oArCoCDCoCDCoCDCoGZvciAoaSA9IEVWX05TSUcgLSAxOyBpLS07ICkKLSDCoCDCoCDCoCDCoGlm IChleHBlY3RfZmFsc2UgKHNpZ25hbHMgW2ldLnBlbmRpbmcpKQorIMKgIMKgIMKgIMKgaWYgKGVj Yl9leHBlY3RfZmFsc2UgKHNpZ25hbHMgW2ldLnBlbmRpbmcpKQrCoCDCoCDCoCDCoCDCoCDCoGV2 X2ZlZWRfc2lnbmFsX2V2ZW50IChFVl9BXyBpICsgMSk7CsKgIMKgIMKgfQrCoCNlbmRpZgpAQCAt MjU3OSw3ICsyOTE1LDcgQEAgcGlwZWNiIChFVl9QXyBldl9pbyAqaW93LCBpbnQgcmV2ZW50cykK wqAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCsKgCsKgdm9pZAotZXZfZmVlZF9zaWduYWwgKGludCBz aWdudW0pIEVWX1RIUk9XCitldl9mZWVkX3NpZ25hbCAoaW50IHNpZ251bSkgRVZfTk9FWENFUFQK wqB7CsKgI2lmIEVWX01VTFRJUExJQ0lUWQrCoCDCoEVWX1A7CkBAIC0yNjA0LDEzICsyOTQwLDEz IEBAIGV2X3NpZ2hhbmRsZXIgKGludCBzaWdudW0pCsKgIMKgZXZfZmVlZF9zaWduYWwgKHNpZ251 bSk7CsKgfQrCoAotbm9pbmxpbmUKK2VjYl9ub2lubGluZQrCoHZvaWQKLWV2X2ZlZWRfc2lnbmFs X2V2ZW50IChFVl9QXyBpbnQgc2lnbnVtKSBFVl9USFJPVworZXZfZmVlZF9zaWduYWxfZXZlbnQg KEVWX1BfIGludCBzaWdudW0pIEVWX05PRVhDRVBUCsKgewrCoCDCoFdMIHc7CsKgCi0gwqBpZiAo ZXhwZWN0X2ZhbHNlIChzaWdudW0gPD0gMCB8fCBzaWdudW0gPj0gRVZfTlNJRykpCisgwqBpZiAo ZWNiX2V4cGVjdF9mYWxzZSAoc2lnbnVtIDw9IDAgfHwgc2lnbnVtID49IEVWX05TSUcpKQrCoCDC oCDCoHJldHVybjsKwqAKwqAgwqAtLXNpZ251bTsKQEAgLTI2MTksNyArMjk1NSw3IEBAIGV2X2Zl ZWRfc2lnbmFsX2V2ZW50IChFVl9QXyBpbnQgc2lnbnVtKSBFVl9USFJPVwrCoCDCoC8qIGl0IGlz IHBlcm1pc3NpYmxlIHRvIHRyeSB0byBmZWVkIGEgc2lnbmFsIHRvIHRoZSB3cm9uZyBsb29wICov CsKgIMKgLyogb3IsIGxpa2VseSBtb3JlIHVzZWZ1bCwgZmVlZGluZyBhIHNpZ25hbCBub2JvZHkg aXMgd2FpdGluZyBmb3IgKi8KwqAKLSDCoGlmIChleHBlY3RfZmFsc2UgKHNpZ25hbHMgW3NpZ251 bV0ubG9vcCAhPSBFVl9BKSkKKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChzaWduYWxzIFtzaWdu dW1dLmxvb3AgIT0gRVZfQSkpCsKgIMKgIMKgcmV0dXJuOwrCoCNlbmRpZgrCoApAQCAtMjcxMyw2 ICszMDQ5LDU3IEBAIGNoaWxkY2IgKEVWX1BfIGV2X3NpZ25hbCAqc3csIGludCByZXZlbnRzKQrC oArCoC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KwqAKKyNpZiBFVl9VU0VfVElNRVJGRAorCitzdGF0 aWMgdm9pZCBwZXJpb2RpY3NfcmVzY2hlZHVsZSAoRVZfUCk7CisKK3N0YXRpYyB2b2lkCit0aW1l cmZkY2IgKEVWX1BfIGV2X2lvICppb3csIGludCByZXZlbnRzKQoreworIMKgc3RydWN0IGl0aW1l cnNwZWMgaXRzID0geyAwIH07CisKKyDCoGl0cy5pdF92YWx1ZS50dl9zZWMgPSBldl9ydF9ub3cg KyAoaW50KU1BWF9CTE9DS1RJTUUyOworIMKgdGltZXJmZF9zZXR0aW1lICh0aW1lcmZkLCBURkRf VElNRVJfQUJTVElNRSB8IFRGRF9USU1FUl9DQU5DRUxfT05fU0VULCAmaXRzLCAwKTsKKworIMKg ZXZfcnRfbm93ID0gZXZfdGltZSAoKTsKKyDCoC8qIHBlcmlvZGljc19yZXNjaGVkdWxlIG9ubHkg bmVlZHMgZXZfcnRfbm93ICovCisgwqAvKiBidXQgbWF5YmUgaW4gdGhlIGZ1dHVyZSB3ZSB3YW50 IHRoZSBmdWxsIHRyZWF0bWVudC4gKi8KKyDCoC8qCisgwqBub3dfZmxvb3IgPSBFVl9UU19DT05T VCAoMC4pOworIMKgdGltZV91cGRhdGUgKEVWX0FfIEVWX1RTVEFNUF9IVUdFKTsKKyDCoCovCisj aWYgRVZfUEVSSU9ESUNfRU5BQkxFCisgwqBwZXJpb2RpY3NfcmVzY2hlZHVsZSAoRVZfQSk7Cisj ZW5kaWYKK30KKworZWNiX25vaW5saW5lIGVjYl9jb2xkCitzdGF0aWMgdm9pZAorZXZ0aW1lcmZk X2luaXQgKEVWX1ApCit7CisgwqBpZiAoIWV2X2lzX2FjdGl2ZSAoJnRpbWVyZmRfdykpCisgwqAg wqB7CisgwqAgwqAgwqB0aW1lcmZkID0gdGltZXJmZF9jcmVhdGUgKENMT0NLX1JFQUxUSU1FLCBU RkRfTk9OQkxPQ0sgfCBURkRfQ0xPRVhFQyk7CisKKyDCoCDCoCDCoGlmICh0aW1lcmZkID49IDAp CisgwqAgwqAgwqAgwqB7CisgwqAgwqAgwqAgwqAgwqBmZF9pbnRlcm4gKHRpbWVyZmQpOyAvKiBq dXN0IHRvIGJlIHN1cmUgKi8KKworIMKgIMKgIMKgIMKgIMKgZXZfaW9faW5pdCAoJnRpbWVyZmRf dywgdGltZXJmZGNiLCB0aW1lcmZkLCBFVl9SRUFEKTsKKyDCoCDCoCDCoCDCoCDCoGV2X3NldF9w cmlvcml0eSAoJnRpbWVyZmRfdywgRVZfTUlOUFJJKTsKKyDCoCDCoCDCoCDCoCDCoGV2X2lvX3N0 YXJ0IChFVl9BXyAmdGltZXJmZF93KTsKKyDCoCDCoCDCoCDCoCDCoGV2X3VucmVmIChFVl9BKTsg Lyogd2F0Y2hlciBzaG91bGQgbm90IGtlZXAgbG9vcCBhbGl2ZSAqLworCisgwqAgwqAgwqAgwqAg wqAvKiAocmUtKSBhcm0gdGltZXIgKi8KKyDCoCDCoCDCoCDCoCDCoHRpbWVyZmRjYiAoRVZfQV8g MCwgMCk7CisgwqAgwqAgwqAgwqB9CisgwqAgwqB9Cit9CisKKyNlbmRpZgorCisvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCisKwqAjaWYgRVZfVVNFX0lPQ1AKwqAjIGluY2x1ZGUgImV2X2lvY3AuYyIK wqAjZW5kaWYKQEAgLTI3MjUsNiArMzExMiwxMiBAQCBjaGlsZGNiIChFVl9QXyBldl9zaWduYWwg KnN3LCBpbnQgcmV2ZW50cykKwqAjaWYgRVZfVVNFX0VQT0xMCsKgIyBpbmNsdWRlICJldl9lcG9s bC5jIgrCoCNlbmRpZgorI2lmIEVWX1VTRV9MSU5VWEFJTworIyBpbmNsdWRlICJldl9saW51eGFp by5jIgorI2VuZGlmCisjaWYgRVZfVVNFX0lPVVJJTkcKKyMgaW5jbHVkZSAiZXZfaW91cmluZy5j IgorI2VuZGlmCsKgI2lmIEVWX1VTRV9QT0xMCsKgIyBpbmNsdWRlICJldl9wb2xsLmMiCsKgI2Vu ZGlmCkBAIC0yNzMzLDEzICszMTI2LDEzIEBAIGNoaWxkY2IgKEVWX1BfIGV2X3NpZ25hbCAqc3cs IGludCByZXZlbnRzKQrCoCNlbmRpZgrCoArCoGVjYl9jb2xkIGludAotZXZfdmVyc2lvbl9tYWpv ciAodm9pZCkgRVZfVEhST1cKK2V2X3ZlcnNpb25fbWFqb3IgKHZvaWQpIEVWX05PRVhDRVBUCsKg ewrCoCDCoHJldHVybiBFVl9WRVJTSU9OX01BSk9SOwrCoH0KwqAKwqBlY2JfY29sZCBpbnQKLWV2 X3ZlcnNpb25fbWlub3IgKHZvaWQpIEVWX1RIUk9XCitldl92ZXJzaW9uX21pbm9yICh2b2lkKSBF Vl9OT0VYQ0VQVArCoHsKwqAgwqByZXR1cm4gRVZfVkVSU0lPTl9NSU5PUjsKwqB9CkBAIC0yNzU4 LDIyICszMTUxLDI0IEBAIGVuYWJsZV9zZWN1cmUgKHZvaWQpCsKgCsKgZWNiX2NvbGQKwqB1bnNp Z25lZCBpbnQKLWV2X3N1cHBvcnRlZF9iYWNrZW5kcyAodm9pZCkgRVZfVEhST1cKK2V2X3N1cHBv cnRlZF9iYWNrZW5kcyAodm9pZCkgRVZfTk9FWENFUFQKwqB7CsKgIMKgdW5zaWduZWQgaW50IGZs YWdzID0gMDsKwqAKLSDCoGlmIChFVl9VU0VfUE9SVCDCoCkgZmxhZ3MgfD0gRVZCQUNLRU5EX1BP UlQ7Ci0gwqBpZiAoRVZfVVNFX0tRVUVVRSkgZmxhZ3MgfD0gRVZCQUNLRU5EX0tRVUVVRTsKLSDC oGlmIChFVl9VU0VfRVBPTEwgKSBmbGFncyB8PSBFVkJBQ0tFTkRfRVBPTEw7Ci0gwqBpZiAoRVZf VVNFX1BPTEwgwqApIGZsYWdzIHw9IEVWQkFDS0VORF9QT0xMOwotIMKgaWYgKEVWX1VTRV9TRUxF Q1QpIGZsYWdzIHw9IEVWQkFDS0VORF9TRUxFQ1Q7Ci0gwqAKKyDCoGlmIChFVl9VU0VfUE9SVCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCkg ZmxhZ3MgfD0gRVZCQUNLRU5EX1BPUlQ7CisgwqBpZiAoRVZfVVNFX0tRVUVVRSDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCkgZmxhZ3MgfD0gRVZC QUNLRU5EX0tRVUVVRTsKKyDCoGlmIChFVl9VU0VfRVBPTEwgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgKSBmbGFncyB8PSBFVkJBQ0tFTkRfRVBP TEw7CisgwqBpZiAoRVZfVVNFX0xJTlVYQUlPIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgKSBmbGFncyB8PSBFVkJBQ0tFTkRfTElOVVhBSU87CisgwqBp ZiAoRVZfVVNFX0lPVVJJTkcgJiYgZXZfbGludXhfdmVyc2lvbiAoKSA+PSAweDA1MDYwMSkgZmxh Z3MgfD0gRVZCQUNLRU5EX0lPVVJJTkc7IC8qIDUuNi4xKyAqLworIMKgaWYgKEVWX1VTRV9QT0xM IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg KSBmbGFncyB8PSBFVkJBQ0tFTkRfUE9MTDsKKyDCoGlmIChFVl9VU0VfU0VMRUNUIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgKSBmbGFncyB8PSBF VkJBQ0tFTkRfU0VMRUNUOworCsKgIMKgcmV0dXJuIGZsYWdzOwrCoH0KwqAKwqBlY2JfY29sZArC oHVuc2lnbmVkIGludAotZXZfcmVjb21tZW5kZWRfYmFja2VuZHMgKHZvaWQpIEVWX1RIUk9XCitl dl9yZWNvbW1lbmRlZF9iYWNrZW5kcyAodm9pZCkgRVZfTk9FWENFUFQKwqB7CsKgIMKgdW5zaWdu ZWQgaW50IGZsYWdzID0gZXZfc3VwcG9ydGVkX2JhY2tlbmRzICgpOwrCoApAQCAtMjc5MSw3MyAr MzE4Niw4NCBAQCBldl9yZWNvbW1lbmRlZF9iYWNrZW5kcyAodm9pZCkgRVZfVEhST1cKwqAgwqBm bGFncyAmPSB+RVZCQUNLRU5EX1BPTEw7IMKgIC8qIHBvbGwgcmV0dXJuIHZhbHVlIGlzIHVudXNh YmxlIChodHRwOi8vZm9ydW1zLmZyZWVic2Qub3JnL2FyY2hpdmUvaW5kZXgucGhwL3QtMTAyNzAu aHRtbCkgKi8KwqAjZW5kaWYKwqAKKyDCoC8qIFRPRE86IGxpbnV4YWlvIGlzIHZlcnkgZXhwZXJp bWVudGFsICovCisjaWYgIUVWX1JFQ09NTUVORF9MSU5VWEFJTworIMKgZmxhZ3MgJj0gfkVWQkFD S0VORF9MSU5VWEFJTzsKKyNlbmRpZgorIMKgLyogVE9ETzogbGludXhhaW8gaXMgc3VwZXIgZXhw ZXJpbWVudGFsICovCisjaWYgIUVWX1JFQ09NTUVORF9JT1VSSU5HCisgwqBmbGFncyAmPSB+RVZC QUNLRU5EX0lPVVJJTkc7CisjZW5kaWYKKwrCoCDCoHJldHVybiBmbGFnczsKwqB9CsKgCsKgZWNi X2NvbGQKwqB1bnNpZ25lZCBpbnQKLWV2X2VtYmVkZGFibGVfYmFja2VuZHMgKHZvaWQpIEVWX1RI Uk9XCitldl9lbWJlZGRhYmxlX2JhY2tlbmRzICh2b2lkKSBFVl9OT0VYQ0VQVArCoHsKLSDCoGlu dCBmbGFncyA9IEVWQkFDS0VORF9FUE9MTCB8IEVWQkFDS0VORF9LUVVFVUUgfCBFVkJBQ0tFTkRf UE9SVDsKKyDCoGludCBmbGFncyA9IEVWQkFDS0VORF9FUE9MTCB8IEVWQkFDS0VORF9LUVVFVUUg fCBFVkJBQ0tFTkRfUE9SVCB8IEVWQkFDS0VORF9JT1VSSU5HOwrCoArCoCDCoC8qIGVwb2xsIGVt YmVkZGFiaWxpdHkgYnJva2VuIG9uIGFsbCBsaW51eCB2ZXJzaW9ucyB1cCB0byBhdCBsZWFzdCAy LjYuMjMgKi8KwqAgwqBpZiAoZXZfbGludXhfdmVyc2lvbiAoKSA8IDB4MDIwNjIwKSAvKiBkaXNh YmxlIGl0IG9uIGxpbnV4IDwgMi42LjMyICovCsKgIMKgIMKgZmxhZ3MgJj0gfkVWQkFDS0VORF9F UE9MTDsKwqAKKyDCoC8qIEVWQkFDS0VORF9MSU5VWEFJTyBpcyB0aGVvcmV0aWNhbGx5IGVtYmVk ZGFibGUsIGJ1dCBzdWZmZXJzIGZyb20gYSBwZXJmb3JtYW5jZSBvdmVyaGVhZCAqLworCsKgIMKg cmV0dXJuIGZsYWdzOwrCoH0KwqAKwqB1bnNpZ25lZCBpbnQKLWV2X2JhY2tlbmQgKEVWX1ApIEVW X1RIUk9XCitldl9iYWNrZW5kIChFVl9QKSBFVl9OT0VYQ0VQVArCoHsKwqAgwqByZXR1cm4gYmFj a2VuZDsKwqB9CsKgCsKgI2lmIEVWX0ZFQVRVUkVfQVBJCsKgdW5zaWduZWQgaW50Ci1ldl9pdGVy YXRpb24gKEVWX1ApIEVWX1RIUk9XCitldl9pdGVyYXRpb24gKEVWX1ApIEVWX05PRVhDRVBUCsKg ewrCoCDCoHJldHVybiBsb29wX2NvdW50OwrCoH0KwqAKwqB1bnNpZ25lZCBpbnQKLWV2X2RlcHRo IChFVl9QKSBFVl9USFJPVworZXZfZGVwdGggKEVWX1ApIEVWX05PRVhDRVBUCsKgewrCoCDCoHJl dHVybiBsb29wX2RlcHRoOwrCoH0KwqAKwqB2b2lkCi1ldl9zZXRfaW9fY29sbGVjdF9pbnRlcnZh bCAoRVZfUF8gZXZfdHN0YW1wIGludGVydmFsKSBFVl9USFJPVworZXZfc2V0X2lvX2NvbGxlY3Rf aW50ZXJ2YWwgKEVWX1BfIGV2X3RzdGFtcCBpbnRlcnZhbCkgRVZfTk9FWENFUFQKwqB7CsKgIMKg aW9fYmxvY2t0aW1lID0gaW50ZXJ2YWw7CsKgfQrCoArCoHZvaWQKLWV2X3NldF90aW1lb3V0X2Nv bGxlY3RfaW50ZXJ2YWwgKEVWX1BfIGV2X3RzdGFtcCBpbnRlcnZhbCkgRVZfVEhST1cKK2V2X3Nl dF90aW1lb3V0X2NvbGxlY3RfaW50ZXJ2YWwgKEVWX1BfIGV2X3RzdGFtcCBpbnRlcnZhbCkgRVZf Tk9FWENFUFQKwqB7CsKgIMKgdGltZW91dF9ibG9ja3RpbWUgPSBpbnRlcnZhbDsKwqB9CsKgCsKg dm9pZAotZXZfc2V0X3VzZXJkYXRhIChFVl9QXyB2b2lkICpkYXRhKSBFVl9USFJPVworZXZfc2V0 X3VzZXJkYXRhIChFVl9QXyB2b2lkICpkYXRhKSBFVl9OT0VYQ0VQVArCoHsKwqAgwqB1c2VyZGF0 YSA9IGRhdGE7CsKgfQrCoArCoHZvaWQgKgotZXZfdXNlcmRhdGEgKEVWX1ApIEVWX1RIUk9XCitl dl91c2VyZGF0YSAoRVZfUCkgRVZfTk9FWENFUFQKwqB7CsKgIMKgcmV0dXJuIHVzZXJkYXRhOwrC oH0KwqAKwqB2b2lkCi1ldl9zZXRfaW52b2tlX3BlbmRpbmdfY2IgKEVWX1BfIGV2X2xvb3BfY2Fs bGJhY2sgaW52b2tlX3BlbmRpbmdfY2IpIEVWX1RIUk9XCitldl9zZXRfaW52b2tlX3BlbmRpbmdf Y2IgKEVWX1BfIGV2X2xvb3BfY2FsbGJhY2sgaW52b2tlX3BlbmRpbmdfY2IpIEVWX05PRVhDRVBU CsKgewrCoCDCoGludm9rZV9jYiA9IGludm9rZV9wZW5kaW5nX2NiOwrCoH0KwqAKwqB2b2lkCi1l dl9zZXRfbG9vcF9yZWxlYXNlX2NiIChFVl9QXyB2b2lkICgqcmVsZWFzZSkoRVZfUCkgRVZfVEhS T1csIHZvaWQgKCphY3F1aXJlKShFVl9QKSBFVl9USFJPVykgRVZfVEhST1cKK2V2X3NldF9sb29w X3JlbGVhc2VfY2IgKEVWX1BfIHZvaWQgKCpyZWxlYXNlKShFVl9QKSBFVl9OT0VYQ0VQVCwgdm9p ZCAoKmFjcXVpcmUpKEVWX1ApIEVWX05PRVhDRVBUKSBFVl9OT0VYQ0VQVArCoHsKwqAgwqByZWxl YXNlX2NiID0gcmVsZWFzZTsKwqAgwqBhY3F1aXJlX2NiID0gYWNxdWlyZTsKQEAgLTI4NjUsOSAr MzI3MSw5IEBAIGV2X3NldF9sb29wX3JlbGVhc2VfY2IgKEVWX1BfIHZvaWQgKCpyZWxlYXNlKShF Vl9QKSBFVl9USFJPVywgdm9pZCAoKmFjcXVpcmUpKEVWCsKgI2VuZGlmCsKgCsKgLyogaW5pdGlh bGlzZSBhIGxvb3Agc3RydWN0dXJlLCBtdXN0IGJlIHplcm8taW5pdGlhbGlzZWQgKi8KLW5vaW5s aW5lIGVjYl9jb2xkCitlY2Jfbm9pbmxpbmUgZWNiX2NvbGQKwqBzdGF0aWMgdm9pZAotbG9vcF9p bml0IChFVl9QXyB1bnNpZ25lZCBpbnQgZmxhZ3MpIEVWX1RIUk9XCitsb29wX2luaXQgKEVWX1Bf IHVuc2lnbmVkIGludCBmbGFncykgRVZfTk9FWENFUFQKwqB7CsKgIMKgaWYgKCFiYWNrZW5kKQrC oCDCoCDCoHsKQEAgLTI5MzAsMzAgKzMzMzYsMzkgQEAgbG9vcF9pbml0IChFVl9QXyB1bnNpZ25l ZCBpbnQgZmxhZ3MpIEVWX1RIUk9XCsKgI2lmIEVWX1VTRV9TSUdOQUxGRArCoCDCoCDCoCDCoHNp Z2ZkIMKgIMKgIMKgIMKgIMKgIMKgIMKgPSBmbGFncyAmIEVWRkxBR19TSUdOQUxGRCDCoD8gLTIg OiAtMTsKwqAjZW5kaWYKKyNpZiBFVl9VU0VfVElNRVJGRAorIMKgIMKgIMKgdGltZXJmZCDCoCDC oCDCoCDCoCDCoCDCoD0gZmxhZ3MgJiBFVkZMQUdfTk9USU1FUkZEID8gLTEgOiAtMjsKKyNlbmRp ZgrCoArCoCDCoCDCoCDCoGlmICghKGZsYWdzICYgRVZCQUNLRU5EX01BU0spKQrCoCDCoCDCoCDC oCDCoGZsYWdzIHw9IGV2X3JlY29tbWVuZGVkX2JhY2tlbmRzICgpOwrCoAotIMKgIMKgIMKgaWYg KGZsYWdzICYgRVZGTEFHX0FMTE9DRkQpCisgwqAgwqAgwqBpZiAoZmxhZ3MgJiBFVkZMQUdfTk9U SU1FUkZEKQrCoCDCoCDCoCDCoCDCoGlmIChldnBpcGVfYWxsb2MoRVZfQSkgPCAwKQrCoCDCoCDC oCDCoCDCoCDCoHJldHVybjsKwqAjaWYgRVZfVVNFX0lPQ1AKLSDCoCDCoCDCoGlmICghYmFja2Vu ZCAmJiAoZmxhZ3MgJiBFVkJBQ0tFTkRfSU9DUCDCoCkpIGJhY2tlbmQgPSBpb2NwX2luaXQgwqAg KEVWX0FfIGZsYWdzKTsKKyDCoCDCoCDCoGlmICghYmFja2VuZCAmJiAoZmxhZ3MgJiBFVkJBQ0tF TkRfSU9DUCDCoCDCoCkpIGJhY2tlbmQgPSBpb2NwX2luaXQgwqAgwqAgwqAoRVZfQV8gZmxhZ3Mp OwrCoCNlbmRpZgrCoCNpZiBFVl9VU0VfUE9SVAotIMKgIMKgIMKgaWYgKCFiYWNrZW5kICYmIChm bGFncyAmIEVWQkFDS0VORF9QT1JUIMKgKSkgYmFja2VuZCA9IHBvcnRfaW5pdCDCoCAoRVZfQV8g ZmxhZ3MpOworIMKgIMKgIMKgaWYgKCFiYWNrZW5kICYmIChmbGFncyAmIEVWQkFDS0VORF9QT1JU IMKgIMKgKSkgYmFja2VuZCA9IHBvcnRfaW5pdCDCoCDCoCDCoChFVl9BXyBmbGFncyk7CsKgI2Vu ZGlmCsKgI2lmIEVWX1VTRV9LUVVFVUUKLSDCoCDCoCDCoGlmICghYmFja2VuZCAmJiAoZmxhZ3Mg JiBFVkJBQ0tFTkRfS1FVRVVFKSkgYmFja2VuZCA9IGtxdWV1ZV9pbml0IChFVl9BXyBmbGFncyk7 CisgwqAgwqAgwqBpZiAoIWJhY2tlbmQgJiYgKGZsYWdzICYgRVZCQUNLRU5EX0tRVUVVRSDCoCkp IGJhY2tlbmQgPSBrcXVldWVfaW5pdCDCoCDCoChFVl9BXyBmbGFncyk7CisjZW5kaWYKKyNpZiBF Vl9VU0VfSU9VUklORworIMKgIMKgIMKgaWYgKCFiYWNrZW5kICYmIChmbGFncyAmIEVWQkFDS0VO RF9JT1VSSU5HICkpIGJhY2tlbmQgPSBpb3VyaW5nX2luaXQgwqAgKEVWX0FfIGZsYWdzKTsKKyNl bmRpZgorI2lmIEVWX1VTRV9MSU5VWEFJTworIMKgIMKgIMKgaWYgKCFiYWNrZW5kICYmIChmbGFn cyAmIEVWQkFDS0VORF9MSU5VWEFJTykpIGJhY2tlbmQgPSBsaW51eGFpb19pbml0IMKgKEVWX0Ff IGZsYWdzKTsKwqAjZW5kaWYKwqAjaWYgRVZfVVNFX0VQT0xMCi0gwqAgwqAgwqBpZiAoIWJhY2tl bmQgJiYgKGZsYWdzICYgRVZCQUNLRU5EX0VQT0xMICkpIGJhY2tlbmQgPSBlcG9sbF9pbml0IMKg KEVWX0FfIGZsYWdzKTsKKyDCoCDCoCDCoGlmICghYmFja2VuZCAmJiAoZmxhZ3MgJiBFVkJBQ0tF TkRfRVBPTEwgwqAgKSkgYmFja2VuZCA9IGVwb2xsX2luaXQgwqAgwqAgKEVWX0FfIGZsYWdzKTsK wqAjZW5kaWYKwqAjaWYgRVZfVVNFX1BPTEwKLSDCoCDCoCDCoGlmICghYmFja2VuZCAmJiAoZmxh Z3MgJiBFVkJBQ0tFTkRfUE9MTCDCoCkpIGJhY2tlbmQgPSBwb2xsX2luaXQgwqAgKEVWX0FfIGZs YWdzKTsKKyDCoCDCoCDCoGlmICghYmFja2VuZCAmJiAoZmxhZ3MgJiBFVkJBQ0tFTkRfUE9MTCDC oCDCoCkpIGJhY2tlbmQgPSBwb2xsX2luaXQgwqAgwqAgwqAoRVZfQV8gZmxhZ3MpOwrCoCNlbmRp ZgrCoCNpZiBFVl9VU0VfU0VMRUNUCi0gwqAgwqAgwqBpZiAoIWJhY2tlbmQgJiYgKGZsYWdzICYg RVZCQUNLRU5EX1NFTEVDVCkpIGJhY2tlbmQgPSBzZWxlY3RfaW5pdCAoRVZfQV8gZmxhZ3MpOwor IMKgIMKgIMKgaWYgKCFiYWNrZW5kICYmIChmbGFncyAmIEVWQkFDS0VORF9TRUxFQ1QgwqApKSBi YWNrZW5kID0gc2VsZWN0X2luaXQgwqAgwqAoRVZfQV8gZmxhZ3MpOwrCoCNlbmRpZgrCoArCoCDC oCDCoCDCoGV2X3ByZXBhcmVfaW5pdCAoJnBlbmRpbmdfdywgcGVuZGluZ2NiKTsKQEAgLTI5NjEs NyArMzM3Niw3IEBAIGxvb3BfaW5pdCAoRVZfUF8gdW5zaWduZWQgaW50IGZsYWdzKSBFVl9USFJP VwrCoCNpZiBFVl9TSUdOQUxfRU5BQkxFIHx8IEVWX0FTWU5DX0VOQUJMRQrCoCDCoCDCoCDCoGV2 X2luaXQgKCZwaXBlX3csIHBpcGVjYik7CsKgIMKgIMKgIMKgZXZfc2V0X3ByaW9yaXR5ICgmcGlw ZV93LCBFVl9NQVhQUkkpOwotIMKgIMKgIMKgaWYgKGZsYWdzICYgRVZGTEFHX0FMTE9DRkQpCisg wqAgwqAgwqBpZiAoZmxhZ3MgJiBFVkZMQUdfTk9USU1FUkZEKQrCoCDCoCDCoCDCoCDCoHsKwqAg wqAgwqAgwqAgwqAgwqBldl9pb19zZXQgKCZwaXBlX3csIGV2cGlwZSBbMF0gPCAwID8gZXZwaXBl IFsxXSA6IGV2cGlwZSBbMF0sIEVWX1JFQUQpOwrCoCDCoCDCoCDCoCDCoCDCoGV2X2lvX3N0YXJ0 IChFVl9BXyAmcGlwZV93KTsKQEAgLTI5ODYsNyArMzQwMSw3IEBAIGV2X2xvb3BfZGVzdHJveSAo RVZfUCkKwqAKwqAjaWYgRVZfQ0xFQU5VUF9FTkFCTEUKwqAgwqAvKiBxdWV1ZSBjbGVhbnVwIHdh dGNoZXJzIChhbmQgZXhlY3V0ZSB0aGVtKSAqLwotIMKgaWYgKGV4cGVjdF9mYWxzZSAoY2xlYW51 cGNudCkpCisgwqBpZiAoZWNiX2V4cGVjdF9mYWxzZSAoY2xlYW51cGNudCkpCsKgIMKgIMKgewrC oCDCoCDCoCDCoHF1ZXVlX2V2ZW50cyAoRVZfQV8gKFcgKiljbGVhbnVwcywgY2xlYW51cGNudCwg RVZfQ0xFQU5VUCk7CsKgIMKgIMKgIMKgRVZfSU5WT0tFX1BFTkRJTkc7CkBAIC0zMDE1LDYgKzM0 MzAsMTEgQEAgZXZfbG9vcF9kZXN0cm95IChFVl9QKQrCoCDCoCDCoGNsb3NlIChzaWdmZCk7CsKg I2VuZGlmCsKgCisjaWYgRVZfVVNFX1RJTUVSRkQKKyDCoGlmIChldl9pc19hY3RpdmUgKCZ0aW1l cmZkX3cpKQorIMKgIMKgY2xvc2UgKHRpbWVyZmQpOworI2VuZGlmCisKwqAjaWYgRVZfVVNFX0lO T1RJRlkKwqAgwqBpZiAoZnNfZmQgPj0gMCkKwqAgwqAgwqBjbG9zZSAoZnNfZmQpOwpAQCAtMzAy NCwyMiArMzQ0NCwyOCBAQCBldl9sb29wX2Rlc3Ryb3kgKEVWX1ApCsKgIMKgIMKgY2xvc2UgKGJh Y2tlbmRfZmQpOwrCoArCoCNpZiBFVl9VU0VfSU9DUAotIMKgaWYgKGJhY2tlbmQgPT0gRVZCQUNL RU5EX0lPQ1AgwqApIGlvY3BfZGVzdHJveSDCoCAoRVZfQSk7CisgwqBpZiAoYmFja2VuZCA9PSBF VkJBQ0tFTkRfSU9DUCDCoCDCoCkgaW9jcF9kZXN0cm95IMKgIMKgIChFVl9BKTsKwqAjZW5kaWYK wqAjaWYgRVZfVVNFX1BPUlQKLSDCoGlmIChiYWNrZW5kID09IEVWQkFDS0VORF9QT1JUIMKgKSBw b3J0X2Rlc3Ryb3kgwqAgKEVWX0EpOworIMKgaWYgKGJhY2tlbmQgPT0gRVZCQUNLRU5EX1BPUlQg wqAgwqApIHBvcnRfZGVzdHJveSDCoCDCoCAoRVZfQSk7CsKgI2VuZGlmCsKgI2lmIEVWX1VTRV9L UVVFVUUKLSDCoGlmIChiYWNrZW5kID09IEVWQkFDS0VORF9LUVVFVUUpIGtxdWV1ZV9kZXN0cm95 IChFVl9BKTsKKyDCoGlmIChiYWNrZW5kID09IEVWQkFDS0VORF9LUVVFVUUgwqApIGtxdWV1ZV9k ZXN0cm95IMKgIChFVl9BKTsKKyNlbmRpZgorI2lmIEVWX1VTRV9JT1VSSU5HCisgwqBpZiAoYmFj a2VuZCA9PSBFVkJBQ0tFTkRfSU9VUklORyApIGlvdXJpbmdfZGVzdHJveSDCoChFVl9BKTsKKyNl bmRpZgorI2lmIEVWX1VTRV9MSU5VWEFJTworIMKgaWYgKGJhY2tlbmQgPT0gRVZCQUNLRU5EX0xJ TlVYQUlPKSBsaW51eGFpb19kZXN0cm95IChFVl9BKTsKwqAjZW5kaWYKwqAjaWYgRVZfVVNFX0VQ T0xMCi0gwqBpZiAoYmFja2VuZCA9PSBFVkJBQ0tFTkRfRVBPTEwgKSBlcG9sbF9kZXN0cm95IMKg KEVWX0EpOworIMKgaWYgKGJhY2tlbmQgPT0gRVZCQUNLRU5EX0VQT0xMIMKgICkgZXBvbGxfZGVz dHJveSDCoCDCoChFVl9BKTsKwqAjZW5kaWYKwqAjaWYgRVZfVVNFX1BPTEwKLSDCoGlmIChiYWNr ZW5kID09IEVWQkFDS0VORF9QT0xMIMKgKSBwb2xsX2Rlc3Ryb3kgwqAgKEVWX0EpOworIMKgaWYg KGJhY2tlbmQgPT0gRVZCQUNLRU5EX1BPTEwgwqAgwqApIHBvbGxfZGVzdHJveSDCoCDCoCAoRVZf QSk7CsKgI2VuZGlmCsKgI2lmIEVWX1VTRV9TRUxFQ1QKLSDCoGlmIChiYWNrZW5kID09IEVWQkFD S0VORF9TRUxFQ1QpIHNlbGVjdF9kZXN0cm95IChFVl9BKTsKKyDCoGlmIChiYWNrZW5kID09IEVW QkFDS0VORF9TRUxFQ1QgwqApIHNlbGVjdF9kZXN0cm95IMKgIChFVl9BKTsKwqAjZW5kaWYKwqAK wqAgwqBmb3IgKGkgPSBOVU1QUkk7IGktLTsgKQpAQCAtMzA5MSwzNCArMzUxNyw2MiBAQCBpbmxp bmVfc2l6ZSB2b2lkCsKgbG9vcF9mb3JrIChFVl9QKQrCoHsKwqAjaWYgRVZfVVNFX1BPUlQKLSDC oGlmIChiYWNrZW5kID09IEVWQkFDS0VORF9QT1JUIMKgKSBwb3J0X2ZvcmsgwqAgKEVWX0EpOwor IMKgaWYgKGJhY2tlbmQgPT0gRVZCQUNLRU5EX1BPUlQgwqAgwqApIHBvcnRfZm9yayDCoCDCoCAo RVZfQSk7CsKgI2VuZGlmCsKgI2lmIEVWX1VTRV9LUVVFVUUKLSDCoGlmIChiYWNrZW5kID09IEVW QkFDS0VORF9LUVVFVUUpIGtxdWV1ZV9mb3JrIChFVl9BKTsKKyDCoGlmIChiYWNrZW5kID09IEVW QkFDS0VORF9LUVVFVUUgwqApIGtxdWV1ZV9mb3JrIMKgIChFVl9BKTsKKyNlbmRpZgorI2lmIEVW X1VTRV9JT1VSSU5HCisgwqBpZiAoYmFja2VuZCA9PSBFVkJBQ0tFTkRfSU9VUklORyApIGlvdXJp bmdfZm9yayDCoChFVl9BKTsKKyNlbmRpZgorI2lmIEVWX1VTRV9MSU5VWEFJTworIMKgaWYgKGJh Y2tlbmQgPT0gRVZCQUNLRU5EX0xJTlVYQUlPKSBsaW51eGFpb19mb3JrIChFVl9BKTsKwqAjZW5k aWYKwqAjaWYgRVZfVVNFX0VQT0xMCi0gwqBpZiAoYmFja2VuZCA9PSBFVkJBQ0tFTkRfRVBPTEwg KSBlcG9sbF9mb3JrIMKgKEVWX0EpOworIMKgaWYgKGJhY2tlbmQgPT0gRVZCQUNLRU5EX0VQT0xM IMKgICkgZXBvbGxfZm9yayDCoCDCoChFVl9BKTsKwqAjZW5kaWYKwqAjaWYgRVZfVVNFX0lOT1RJ RlkKwqAgwqBpbmZ5X2ZvcmsgKEVWX0EpOwrCoCNlbmRpZgrCoAotI2lmIEVWX1NJR05BTF9FTkFC TEUgfHwgRVZfQVNZTkNfRU5BQkxFCi0gwqBpZiAoZXZfaXNfYWN0aXZlICgmcGlwZV93KSAmJiBw b3N0Zm9yayAhPSAyKQorIMKgaWYgKHBvc3Rmb3JrICE9IDIpCsKgIMKgIMKgewotIMKgIMKgIMKg LyogcGlwZV93cml0ZV93YW50ZWQgbXVzdCBiZSBmYWxzZSBub3csIHNvIG1vZGlmeWluZyBmZCB2 YXJzIHNob3VsZCBiZSBzYWZlICovCi0KLSDCoCDCoCDCoGV2X3JlZiAoRVZfQSk7Ci0gwqAgwqAg wqBldl9pb19zdG9wIChFVl9BXyAmcGlwZV93KTsKLQotIMKgIMKgIMKgaWYgKGV2cGlwZSBbMF0g Pj0gMCkKLSDCoCDCoCDCoCDCoEVWX1dJTjMyX0NMT1NFX0ZEIChldnBpcGUgWzBdKTsKKyDCoCDC oCDCoCNpZiBFVl9VU0VfU0lHTkFMRkQKKyDCoCDCoCDCoCDCoC8qIHN1cnByaXNpbmdseSwgbm90 aGluZyBuZWVkcyB0byBiZSBkb25lIGZvciBzaWduYWxmZCwgYWNjb3JpZG5nIHRvIGRvY3MsIGl0 IGRvZXMgdGhlIHJpZ2h0IHRoaW5nIG9uIGZvcmsgKi8KKyDCoCDCoCDCoCNlbmRpZgorIMKgIMKg IMKgCisgwqAgwqAgwqAjaWYgRVZfVVNFX1RJTUVSRkQKKyDCoCDCoCDCoCDCoGlmIChldl9pc19h Y3RpdmUgKCZ0aW1lcmZkX3cpKQorIMKgIMKgIMKgIMKgIMKgeworIMKgIMKgIMKgIMKgIMKgIMKg ZXZfcmVmIChFVl9BKTsKKyDCoCDCoCDCoCDCoCDCoCDCoGV2X2lvX3N0b3AgKEVWX0FfICZ0aW1l cmZkX3cpOwrCoAotIMKgIMKgIMKgZXZwaXBlX2luaXQgKEVWX0EpOwotIMKgIMKgIMKgLyogaXRl cmF0ZSBvdmVyIGV2ZXJ5dGhpbmcsIGluIGNhc2Ugd2UgbWlzc2VkIHNvbWV0aGluZyBiZWZvcmUg Ki8KLSDCoCDCoCDCoGV2X2ZlZWRfZXZlbnQgKEVWX0FfICZwaXBlX3csIEVWX0NVU1RPTSk7Cisg wqAgwqAgwqAgwqAgwqAgwqBjbG9zZSAodGltZXJmZCk7CisgwqAgwqAgwqAgwqAgwqAgwqB0aW1l cmZkID0gLTI7CisgwqAgwqAgwqAKKyDCoCDCoCDCoCDCoCDCoCDCoGV2dGltZXJmZF9pbml0IChF Vl9BKTsKKyDCoCDCoCDCoCDCoCDCoCDCoC8qIHJlc2NoZWR1bGUgcGVyaW9kaWNzLCBpbiBjYXNl IHdlIG1pc3NlZCBzb21ldGhpbmcgKi8KKyDCoCDCoCDCoCDCoCDCoCDCoGV2X2ZlZWRfZXZlbnQg KEVWX0FfICZ0aW1lcmZkX3csIEVWX0NVU1RPTSk7CisgwqAgwqAgwqAgwqAgwqB9CisgwqAgwqAg wqAjZW5kaWYKKyDCoCDCoCDCoAorIMKgIMKgIMKgI2lmIEVWX1NJR05BTF9FTkFCTEUgfHwgRVZf QVNZTkNfRU5BQkxFCisgwqAgwqAgwqAgwqBpZiAoZXZfaXNfYWN0aXZlICgmcGlwZV93KSkKKyDC oCDCoCDCoCDCoCDCoHsKKyDCoCDCoCDCoCDCoCDCoCDCoC8qIHBpcGVfd3JpdGVfd2FudGVkIG11 c3QgYmUgZmFsc2Ugbm93LCBzbyBtb2RpZnlpbmcgZmQgdmFycyBzaG91bGQgYmUgc2FmZSAqLwor IMKgIMKgIMKgCisgwqAgwqAgwqAgwqAgwqAgwqBldl9yZWYgKEVWX0EpOworIMKgIMKgIMKgIMKg IMKgIMKgZXZfaW9fc3RvcCAoRVZfQV8gJnBpcGVfdyk7CisgwqAgwqAgwqAKKyDCoCDCoCDCoCDC oCDCoCDCoGlmIChldnBpcGUgWzBdID49IDApCisgwqAgwqAgwqAgwqAgwqAgwqAgwqBFVl9XSU4z Ml9DTE9TRV9GRCAoZXZwaXBlIFswXSk7CisgwqAgwqAgwqAKKyDCoCDCoCDCoCDCoCDCoCDCoGV2 cGlwZV9pbml0IChFVl9BKTsKKyDCoCDCoCDCoCDCoCDCoCDCoC8qIGl0ZXJhdGUgb3ZlciBldmVy eXRoaW5nLCBpbiBjYXNlIHdlIG1pc3NlZCBzb21ldGhpbmcgYmVmb3JlICovCisgwqAgwqAgwqAg wqAgwqAgwqBldl9mZWVkX2V2ZW50IChFVl9BXyAmcGlwZV93LCBFVl9DVVNUT00pOworIMKgIMKg IMKgIMKgIMKgfQorIMKgIMKgIMKgI2VuZGlmCsKgIMKgIMKgfQotI2VuZGlmCsKgCsKgIMKgcG9z dGZvcmsgPSAwOwrCoH0KQEAgLTMxMjcsNyArMzU4MSw3IEBAIGxvb3BfZm9yayAoRVZfUCkKwqAK wqBlY2JfY29sZArCoHN0cnVjdCBldl9sb29wICoKLWV2X2xvb3BfbmV3ICh1bnNpZ25lZCBpbnQg ZmxhZ3MpIEVWX1RIUk9XCitldl9sb29wX25ldyAodW5zaWduZWQgaW50IGZsYWdzKSBFVl9OT0VY Q0VQVArCoHsKwqAgwqBFVl9QID0gKHN0cnVjdCBldl9sb29wICopZXZfbWFsbG9jIChzaXplb2Yg KHN0cnVjdCBldl9sb29wKSk7CsKgCkBAIC0zMTQ0LDcgKzM1OTgsNyBAQCBldl9sb29wX25ldyAo dW5zaWduZWQgaW50IGZsYWdzKSBFVl9USFJPVwrCoCNlbmRpZiAvKiBtdWx0aXBsaWNpdHkgKi8K wqAKwqAjaWYgRVZfVkVSSUZZCi1ub2lubGluZSBlY2JfY29sZAorZWNiX25vaW5saW5lIGVjYl9j b2xkCsKgc3RhdGljIHZvaWQKwqB2ZXJpZnlfd2F0Y2hlciAoRVZfUF8gVyB3KQrCoHsKQEAgLTMx NTQsNyArMzYwOCw3IEBAIHZlcmlmeV93YXRjaGVyIChFVl9QXyBXIHcpCsKgIMKgIMKgYXNzZXJ0 ICgoImxpYmV2OiBwZW5kaW5nIHdhdGNoZXIgbm90IG9uIHBlbmRpbmcgcXVldWUiLCBwZW5kaW5n cyBbQUJTUFJJICh3KV1bdy0+cGVuZGluZyAtIDFdLncgPT0gdykpOwrCoH0KwqAKLW5vaW5saW5l IGVjYl9jb2xkCitlY2Jfbm9pbmxpbmUgZWNiX2NvbGQKwqBzdGF0aWMgdm9pZArCoHZlcmlmeV9o ZWFwIChFVl9QXyBBTkhFICpoZWFwLCBpbnQgTikKwqB7CkBAIC0zMTcwLDcgKzM2MjQsNyBAQCB2 ZXJpZnlfaGVhcCAoRVZfUF8gQU5IRSAqaGVhcCwgaW50IE4pCsKgIMKgIMKgfQrCoH0KwqAKLW5v aW5saW5lIGVjYl9jb2xkCitlY2Jfbm9pbmxpbmUgZWNiX2NvbGQKwqBzdGF0aWMgdm9pZArCoGFy cmF5X3ZlcmlmeSAoRVZfUF8gVyAqd3MsIGludCBjbnQpCsKgewpAQCAtMzE4NCw3ICszNjM4LDcg QEAgYXJyYXlfdmVyaWZ5IChFVl9QXyBXICp3cywgaW50IGNudCkKwqAKwqAjaWYgRVZfRkVBVFVS RV9BUEkKwqB2b2lkIGVjYl9jb2xkCi1ldl92ZXJpZnkgKEVWX1ApIEVWX1RIUk9XCitldl92ZXJp ZnkgKEVWX1ApIEVWX05PRVhDRVBUCsKgewrCoCNpZiBFVl9WRVJJRlkKwqAgwqBpbnQgaTsKQEAg LTMyNzUsNyArMzcyOSw3IEBAIHN0cnVjdCBldl9sb29wICoKwqAjZWxzZQrCoGludArCoCNlbmRp ZgotZXZfZGVmYXVsdF9sb29wICh1bnNpZ25lZCBpbnQgZmxhZ3MpIEVWX1RIUk9XCitldl9kZWZh dWx0X2xvb3AgKHVuc2lnbmVkIGludCBmbGFncykgRVZfTk9FWENFUFQKwqB7CsKgIMKgaWYgKCFl dl9kZWZhdWx0X2xvb3BfcHRyKQrCoCDCoCDCoHsKQEAgLTMzMDQsNyArMzc1OCw3IEBAIGV2X2Rl ZmF1bHRfbG9vcCAodW5zaWduZWQgaW50IGZsYWdzKSBFVl9USFJPVwrCoH0KwqAKwqB2b2lkCi1l dl9sb29wX2ZvcmsgKEVWX1ApIEVWX1RIUk9XCitldl9sb29wX2ZvcmsgKEVWX1ApIEVWX05PRVhD RVBUCsKgewrCoCDCoHBvc3Rmb3JrID0gMTsKwqB9CkBAIC0zMzE4LDcgKzM3NzIsNyBAQCBldl9p bnZva2UgKEVWX1BfIHZvaWQgKncsIGludCByZXZlbnRzKQrCoH0KwqAKwqB1bnNpZ25lZCBpbnQK LWV2X3BlbmRpbmdfY291bnQgKEVWX1ApIEVWX1RIUk9XCitldl9wZW5kaW5nX2NvdW50IChFVl9Q KSBFVl9OT0VYQ0VQVArCoHsKwqAgwqBpbnQgcHJpOwrCoCDCoHVuc2lnbmVkIGludCBjb3VudCA9 IDA7CkBAIC0zMzI5LDE2ICszNzgzLDE3IEBAIGV2X3BlbmRpbmdfY291bnQgKEVWX1ApIEVWX1RI Uk9XCsKgIMKgcmV0dXJuIGNvdW50OwrCoH0KwqAKLW5vaW5saW5lCitlY2Jfbm9pbmxpbmUKwqB2 b2lkCsKgZXZfaW52b2tlX3BlbmRpbmcgKEVWX1ApCsKgewrCoCDCoHBlbmRpbmdwcmkgPSBOVU1Q Ukk7CsKgCi0gwqB3aGlsZSAocGVuZGluZ3ByaSkgLyogcGVuZGluZ3ByaSBwb3NzaWJseSBnZXRz IG1vZGlmaWVkIGluIHRoZSBpbm5lciBsb29wICovCisgwqBkbwrCoCDCoCDCoHsKwqAgwqAgwqAg wqAtLXBlbmRpbmdwcmk7CsKgCisgwqAgwqAgwqAvKiBwZW5kaW5ncHJpIHBvc3NpYmx5IGdldHMg bW9kaWZpZWQgaW4gdGhlIGlubmVyIGxvb3AgKi8KwqAgwqAgwqAgwqB3aGlsZSAocGVuZGluZ2Nu dCBbcGVuZGluZ3ByaV0pCsKgIMKgIMKgIMKgIMKgewrCoCDCoCDCoCDCoCDCoCDCoEFOUEVORElO RyAqcCA9IHBlbmRpbmdzIFtwZW5kaW5ncHJpXSArIC0tcGVuZGluZ2NudCBbcGVuZGluZ3ByaV07 CkBAIC0zMzQ4LDYgKzM4MDMsNyBAQCBldl9pbnZva2VfcGVuZGluZyAoRVZfUCkKwqAgwqAgwqAg wqAgwqAgwqBFVl9GUkVRVUVOVF9DSEVDSzsKwqAgwqAgwqAgwqAgwqB9CsKgIMKgIMKgfQorIMKg d2hpbGUgKHBlbmRpbmdwcmkpOwrCoH0KwqAKwqAjaWYgRVZfSURMRV9FTkFCTEUKQEAgLTMzNTYs NyArMzgxMiw3IEBAIGV2X2ludm9rZV9wZW5kaW5nIChFVl9QKQrCoGlubGluZV9zaXplIHZvaWQK wqBpZGxlX3JlaWZ5IChFVl9QKQrCoHsKLSDCoGlmIChleHBlY3RfZmFsc2UgKGlkbGVhbGwpKQor IMKgaWYgKGVjYl9leHBlY3RfZmFsc2UgKGlkbGVhbGwpKQrCoCDCoCDCoHsKwqAgwqAgwqAgwqBp bnQgcHJpOwrCoApAQCAtMzM5Niw3ICszODUyLDcgQEAgdGltZXJzX3JlaWZ5IChFVl9QKQrCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoGlmIChldl9hdCAodykgPCBtbl9ub3cpCsKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgZXZfYXQgKHcpID0gbW5fbm93OwrCoAotIMKgIMKgIMKgIMKgIMKgIMKgIMKg YXNzZXJ0ICgoImxpYmV2OiBuZWdhdGl2ZSBldl90aW1lciByZXBlYXQgdmFsdWUgZm91bmQgd2hp bGUgcHJvY2Vzc2luZyB0aW1lcnMiLCB3LT5yZXBlYXQgPiAwLikpOworIMKgIMKgIMKgIMKgIMKg IMKgIMKgYXNzZXJ0ICgoImxpYmV2OiBuZWdhdGl2ZSBldl90aW1lciByZXBlYXQgdmFsdWUgZm91 bmQgd2hpbGUgcHJvY2Vzc2luZyB0aW1lcnMiLCB3LT5yZXBlYXQgPiBFVl9UU19DT05TVCAoMC4p KSk7CsKgCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgQU5IRV9hdF9jYWNoZSAodGltZXJzIFtIRUFQ MF0pOwrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGRvd25oZWFwICh0aW1lcnMsIHRpbWVyY250LCBI RUFQMCk7CkBAIC0zNDE1LDcgKzM4NzEsNyBAQCB0aW1lcnNfcmVpZnkgKEVWX1ApCsKgCsKgI2lm IEVWX1BFUklPRElDX0VOQUJMRQrCoAotbm9pbmxpbmUKK2VjYl9ub2lubGluZQrCoHN0YXRpYyB2 b2lkCsKgcGVyaW9kaWNfcmVjYWxjIChFVl9QXyBldl9wZXJpb2RpYyAqdykKwqB7CkBAIC0zNDI4 LDcgKzM4ODQsNyBAQCBwZXJpb2RpY19yZWNhbGMgKEVWX1BfIGV2X3BlcmlvZGljICp3KQrCoCDC oCDCoCDCoGV2X3RzdGFtcCBuYXQgPSBhdCArIHctPmludGVydmFsOwrCoArCoCDCoCDCoCDCoC8q IHdoZW4gcmVzb2x1dGlvbiBmYWlscyB1cywgd2UgdXNlIGV2X3J0X25vdyAqLwotIMKgIMKgIMKg aWYgKGV4cGVjdF9mYWxzZSAobmF0ID09IGF0KSkKKyDCoCDCoCDCoGlmIChlY2JfZXhwZWN0X2Zh bHNlIChuYXQgPT0gYXQpKQrCoCDCoCDCoCDCoCDCoHsKwqAgwqAgwqAgwqAgwqAgwqBhdCA9IGV2 X3J0X25vdzsKwqAgwqAgwqAgwqAgwqAgwqBicmVhazsKQEAgLTM0ODQsNyArMzk0MCw3IEBAIHBl cmlvZGljc19yZWlmeSAoRVZfUCkKwqAKwqAvKiBzaW1wbHkgcmVjYWxjdWxhdGUgYWxsIHBlcmlv ZGljcyAqLwrCoC8qIFRPRE86IG1heWJlIGVuc3VyZSB0aGF0IGF0IGxlYXN0IG9uZSBldmVudCBo YXBwZW5zIHdoZW4ganVtcGluZyBmb3J3YXJkPyAqLwotbm9pbmxpbmUgZWNiX2NvbGQKK2VjYl9u b2lubGluZSBlY2JfY29sZArCoHN0YXRpYyB2b2lkCsKgcGVyaW9kaWNzX3Jlc2NoZWR1bGUgKEVW X1ApCsKgewpAQCAtMzUwOCw3ICszOTY0LDcgQEAgcGVyaW9kaWNzX3Jlc2NoZWR1bGUgKEVWX1Ap CsKgI2VuZGlmCsKgCsKgLyogYWRqdXN0IGFsbCB0aW1lcnMgYnkgYSBnaXZlbiBvZmZzZXQgKi8K LW5vaW5saW5lIGVjYl9jb2xkCitlY2Jfbm9pbmxpbmUgZWNiX2NvbGQKwqBzdGF0aWMgdm9pZArC oHRpbWVyc19yZXNjaGVkdWxlIChFVl9QXyBldl90c3RhbXAgYWRqdXN0KQrCoHsKQEAgLTM1Mjgs NyArMzk4NCw3IEBAIGlubGluZV9zcGVlZCB2b2lkCsKgdGltZV91cGRhdGUgKEVWX1BfIGV2X3Rz dGFtcCBtYXhfYmxvY2spCsKgewrCoCNpZiBFVl9VU0VfTU9OT1RPTklDCi0gwqBpZiAoZXhwZWN0 X3RydWUgKGhhdmVfbW9ub3RvbmljKSkKKyDCoGlmIChlY2JfZXhwZWN0X3RydWUgKGhhdmVfbW9u b3RvbmljKSkKwqAgwqAgwqB7CsKgIMKgIMKgIMKgaW50IGk7CsKgIMKgIMKgIMKgZXZfdHN0YW1w IG9kaWZmID0gcnRtbl9kaWZmOwpAQCAtMzUzNyw3ICszOTkzLDcgQEAgdGltZV91cGRhdGUgKEVW X1BfIGV2X3RzdGFtcCBtYXhfYmxvY2spCsKgCsKgIMKgIMKgIMKgLyogb25seSBmZXRjaCB0aGUg cmVhbHRpbWUgY2xvY2sgZXZlcnkgMC41Kk1JTl9USU1FSlVNUCBzZWNvbmRzICovCsKgIMKgIMKg IMKgLyogaW50ZXJwb2xhdGUgaW4gdGhlIG1lYW50aW1lICovCi0gwqAgwqAgwqBpZiAoZXhwZWN0 X3RydWUgKG1uX25vdyAtIG5vd19mbG9vciA8IE1JTl9USU1FSlVNUCAqIC41KSkKKyDCoCDCoCDC oGlmIChlY2JfZXhwZWN0X3RydWUgKG1uX25vdyAtIG5vd19mbG9vciA8IEVWX1RTX0NPTlNUIChN SU5fVElNRUpVTVAgKiAuNSkpKQrCoCDCoCDCoCDCoCDCoHsKwqAgwqAgwqAgwqAgwqAgwqBldl9y dF9ub3cgPSBydG1uX2RpZmYgKyBtbl9ub3c7CsKgIMKgIMKgIMKgIMKgIMKgcmV0dXJuOwpAQCAt MzU2MSw3ICs0MDE3LDcgQEAgdGltZV91cGRhdGUgKEVWX1BfIGV2X3RzdGFtcCBtYXhfYmxvY2sp CsKgCsKgIMKgIMKgIMKgIMKgIMKgZGlmZiA9IG9kaWZmIC0gcnRtbl9kaWZmOwrCoAotIMKgIMKg IMKgIMKgIMKgaWYgKGV4cGVjdF90cnVlICgoZGlmZiA8IDAuID8gLWRpZmYgOiBkaWZmKSA8IE1J Tl9USU1FSlVNUCkpCisgwqAgwqAgwqAgwqAgwqBpZiAoZWNiX2V4cGVjdF90cnVlICgoZGlmZiA8 IEVWX1RTX0NPTlNUICgwLikgPyAtZGlmZiA6IGRpZmYpIDwgRVZfVFNfQ09OU1QgKE1JTl9USU1F SlVNUCkpKQrCoCDCoCDCoCDCoCDCoCDCoCDCoHJldHVybjsgLyogYWxsIGlzIHdlbGwgKi8KwqAK wqAgwqAgwqAgwqAgwqAgwqBldl9ydF9ub3cgPSBldl90aW1lICgpOwpAQCAtMzU4MCw3ICs0MDM2 LDcgQEAgdGltZV91cGRhdGUgKEVWX1BfIGV2X3RzdGFtcCBtYXhfYmxvY2spCsKgIMKgIMKgewrC oCDCoCDCoCDCoGV2X3J0X25vdyA9IGV2X3RpbWUgKCk7CsKgCi0gwqAgwqAgwqBpZiAoZXhwZWN0 X2ZhbHNlIChtbl9ub3cgPiBldl9ydF9ub3cgfHwgZXZfcnRfbm93ID4gbW5fbm93ICsgbWF4X2Js b2NrICsgTUlOX1RJTUVKVU1QKSkKKyDCoCDCoCDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChtbl9u b3cgPiBldl9ydF9ub3cgfHwgZXZfcnRfbm93ID4gbW5fbm93ICsgbWF4X2Jsb2NrICsgRVZfVFNf Q09OU1QgKE1JTl9USU1FSlVNUCkpKQrCoCDCoCDCoCDCoCDCoHsKwqAgwqAgwqAgwqAgwqAgwqAv KiBhZGp1c3QgdGltZXJzLiB0aGlzIGlzIGVhc3ksIGFzIHRoZSBvZmZzZXQgaXMgdGhlIHNhbWUg Zm9yIGFsbCBvZiB0aGVtICovCsKgIMKgIMKgIMKgIMKgIMKgdGltZXJzX3Jlc2NoZWR1bGUgKEVW X0FfIGV2X3J0X25vdyAtIG1uX25vdyk7CkBAIC0zNjEzLDggKzQwNjksOCBAQCBldl9ydW4gKEVW X1BfIGludCBmbGFncykKwqAjZW5kaWYKwqAKwqAjaWZuZGVmIF9XSU4zMgotIMKgIMKgIMKgaWYg KGV4cGVjdF9mYWxzZSAoY3VycGlkKSkgLyogcGVuYWxpc2UgdGhlIGZvcmtpbmcgY2hlY2sgZXZl biBtb3JlICovCi0gwqAgwqAgwqAgwqBpZiAoZXhwZWN0X2ZhbHNlIChnZXRwaWQgKCkgIT0gY3Vy cGlkKSkKKyDCoCDCoCDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChjdXJwaWQpKSAvKiBwZW5hbGlz ZSB0aGUgZm9ya2luZyBjaGVjayBldmVuIG1vcmUgKi8KKyDCoCDCoCDCoCDCoGlmIChlY2JfZXhw ZWN0X2ZhbHNlIChnZXRwaWQgKCkgIT0gY3VycGlkKSkKwqAgwqAgwqAgwqAgwqAgwqB7CsKgIMKg IMKgIMKgIMKgIMKgIMKgY3VycGlkID0gZ2V0cGlkICgpOwrCoCDCoCDCoCDCoCDCoCDCoCDCoHBv c3Rmb3JrID0gMTsKQEAgLTM2MjMsNyArNDA3OSw3IEBAIGV2X3J1biAoRVZfUF8gaW50IGZsYWdz KQrCoArCoCNpZiBFVl9GT1JLX0VOQUJMRQrCoCDCoCDCoCDCoC8qIHdlIG1pZ2h0IGhhdmUgZm9y a2VkLCBzbyBxdWV1ZSBmb3JrIGhhbmRsZXJzICovCi0gwqAgwqAgwqBpZiAoZXhwZWN0X2ZhbHNl IChwb3N0Zm9yaykpCisgwqAgwqAgwqBpZiAoZWNiX2V4cGVjdF9mYWxzZSAocG9zdGZvcmspKQrC oCDCoCDCoCDCoCDCoGlmIChmb3JrY250KQrCoCDCoCDCoCDCoCDCoCDCoHsKwqAgwqAgwqAgwqAg wqAgwqAgwqBxdWV1ZV9ldmVudHMgKEVWX0FfIChXICopZm9ya3MsIGZvcmtjbnQsIEVWX0ZPUksp OwpAQCAtMzYzMywxOCArNDA4OSwxOCBAQCBldl9ydW4gKEVWX1BfIGludCBmbGFncykKwqAKwqAj aWYgRVZfUFJFUEFSRV9FTkFCTEUKwqAgwqAgwqAgwqAvKiBxdWV1ZSBwcmVwYXJlIHdhdGNoZXJz IChhbmQgZXhlY3V0ZSB0aGVtKSAqLwotIMKgIMKgIMKgaWYgKGV4cGVjdF9mYWxzZSAocHJlcGFy ZWNudCkpCisgwqAgwqAgwqBpZiAoZWNiX2V4cGVjdF9mYWxzZSAocHJlcGFyZWNudCkpCsKgIMKg IMKgIMKgIMKgewrCoCDCoCDCoCDCoCDCoCDCoHF1ZXVlX2V2ZW50cyAoRVZfQV8gKFcgKilwcmVw YXJlcywgcHJlcGFyZWNudCwgRVZfUFJFUEFSRSk7CsKgIMKgIMKgIMKgIMKgIMKgRVZfSU5WT0tF X1BFTkRJTkc7CsKgIMKgIMKgIMKgIMKgfQrCoCNlbmRpZgrCoAotIMKgIMKgIMKgaWYgKGV4cGVj dF9mYWxzZSAobG9vcF9kb25lKSkKKyDCoCDCoCDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChsb29w X2RvbmUpKQrCoCDCoCDCoCDCoCDCoGJyZWFrOwrCoArCoCDCoCDCoCDCoC8qIHdlIG1pZ2h0IGhh dmUgZm9ya2VkLCBzbyByZWlmeSBrZXJuZWwgc3RhdGUgaWYgbmVjZXNzYXJ5ICovCi0gwqAgwqAg wqBpZiAoZXhwZWN0X2ZhbHNlIChwb3N0Zm9yaykpCisgwqAgwqAgwqBpZiAoZWNiX2V4cGVjdF9m YWxzZSAocG9zdGZvcmspKQrCoCDCoCDCoCDCoCDCoGxvb3BfZm9yayAoRVZfQSk7CsKgCsKgIMKg IMKgIMKgLyogdXBkYXRlIGZkLXJlbGF0ZWQga2VybmVsIHN0cnVjdHVyZXMgKi8KQEAgLTM2NTks MTYgKzQxMTUsMjggQEAgZXZfcnVuIChFVl9QXyBpbnQgZmxhZ3MpCsKgIMKgIMKgIMKgIMKgZXZf dHN0YW1wIHByZXZfbW5fbm93ID0gbW5fbm93OwrCoArCoCDCoCDCoCDCoCDCoC8qIHVwZGF0ZSB0 aW1lIHRvIGNhbmNlbCBvdXQgY2FsbGJhY2sgcHJvY2Vzc2luZyBvdmVyaGVhZCAqLwotIMKgIMKg IMKgIMKgdGltZV91cGRhdGUgKEVWX0FfIDFlMTAwKTsKKyDCoCDCoCDCoCDCoHRpbWVfdXBkYXRl IChFVl9BXyBFVl9UU19DT05TVCAoRVZfVFNUQU1QX0hVR0UpKTsKwqAKwqAgwqAgwqAgwqAgwqAv KiBmcm9tIG5vdyBvbiwgd2Ugd2FudCBhIHBpcGUtd2FrZS11cCAqLwrCoCDCoCDCoCDCoCDCoHBp cGVfd3JpdGVfd2FudGVkID0gMTsKwqAKwqAgwqAgwqAgwqAgwqBFQ0JfTUVNT1JZX0ZFTkNFOyAv KiBtYWtlIHN1cmUgcGlwZV93cml0ZV93YW50ZWQgaXMgdmlzaWJsZSBiZWZvcmUgd2UgY2hlY2sg Zm9yIHBvdGVudGlhbCBza2lwcyAqLwrCoAotIMKgIMKgIMKgIMKgaWYgKGV4cGVjdF90cnVlICgh KGZsYWdzICYgRVZSVU5fTk9XQUlUIHx8IGlkbGVhbGwgfHwgIWFjdGl2ZWNudCB8fCBwaXBlX3dy aXRlX3NraXBwZWQpKSkKKyDCoCDCoCDCoCDCoGlmIChlY2JfZXhwZWN0X3RydWUgKCEoZmxhZ3Mg JiBFVlJVTl9OT1dBSVQgfHwgaWRsZWFsbCB8fCAhYWN0aXZlY250IHx8IHBpcGVfd3JpdGVfc2tp cHBlZCkpKQrCoCDCoCDCoCDCoCDCoCDCoHsKLSDCoCDCoCDCoCDCoCDCoCDCoHdhaXR0aW1lID0g TUFYX0JMT0NLVElNRTsKKyDCoCDCoCDCoCDCoCDCoCDCoHdhaXR0aW1lID0gRVZfVFNfQ09OU1Qg KE1BWF9CTE9DS1RJTUUpOworCisjaWYgRVZfVVNFX1RJTUVSRkQKKyDCoCDCoCDCoCDCoCDCoCDC oC8qIHNsZWVwIGEgbG90IGxvbmdlciB3aGVuIHdlIGNhbiByZWxpYWJseSBkZXRlY3QgdGltZWp1 bXBzICovCisgwqAgwqAgwqAgwqAgwqAgwqBpZiAoZWNiX2V4cGVjdF90cnVlICh0aW1lcmZkID49 IDApKQorIMKgIMKgIMKgIMKgIMKgIMKgIMKgd2FpdHRpbWUgPSBFVl9UU19DT05TVCAoTUFYX0JM T0NLVElNRTIpOworI2VuZGlmCisjaWYgIUVWX1BFUklPRElDX0VOQUJMRQorIMKgIMKgIMKgIMKg IMKgIMKgLyogd2l0aG91dCBwZXJpb2RpY3MgYnV0IHdpdGggbW9ub3RvbmljIGNsb2NrIHRoZXJl IGlzIG5vIG5lZWQgKi8KKyDCoCDCoCDCoCDCoCDCoCDCoC8qIGZvciBhbnkgdGltZSBqdW1wIGRl dGVjdGlvbiwgc28gc2xlZXAgbG9uZ2VyICovCisgwqAgwqAgwqAgwqAgwqAgwqBpZiAoZWNiX2V4 cGVjdF90cnVlIChoYXZlX21vbm90b25pYykpCisgwqAgwqAgwqAgwqAgwqAgwqAgwqB3YWl0dGlt ZSA9IEVWX1RTX0NPTlNUIChNQVhfQkxPQ0tUSU1FMik7CisjZW5kaWYKwqAKwqAgwqAgwqAgwqAg wqAgwqAgwqBpZiAodGltZXJjbnQpCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgewpAQCAtMzY4NSwy MyArNDE1MywyOCBAQCBldl9ydW4gKEVWX1BfIGludCBmbGFncykKwqAjZW5kaWYKwqAKwqAgwqAg wqAgwqAgwqAgwqAgwqAvKiBkb24ndCBsZXQgdGltZW91dHMgZGVjcmVhc2UgdGhlIHdhaXR0aW1l IGJlbG93IHRpbWVvdXRfYmxvY2t0aW1lICovCi0gwqAgwqAgwqAgwqAgwqAgwqBpZiAoZXhwZWN0 X2ZhbHNlICh3YWl0dGltZSA8IHRpbWVvdXRfYmxvY2t0aW1lKSkKKyDCoCDCoCDCoCDCoCDCoCDC oGlmIChlY2JfZXhwZWN0X2ZhbHNlICh3YWl0dGltZSA8IHRpbWVvdXRfYmxvY2t0aW1lKSkKwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqB3YWl0dGltZSA9IHRpbWVvdXRfYmxvY2t0aW1lOwrCoAotIMKg IMKgIMKgIMKgIMKgIMKgLyogYXQgdGhpcyBwb2ludCwgd2UgTkVFRCB0byB3YWl0LCBzbyB3ZSBo YXZlIHRvIGVuc3VyZSAqLwotIMKgIMKgIMKgIMKgIMKgIMKgLyogdG8gcGFzcyBhIG1pbmltdW0g bm9uemVybyB2YWx1ZSB0byB0aGUgYmFja2VuZCAqLwotIMKgIMKgIMKgIMKgIMKgIMKgaWYgKGV4 cGVjdF9mYWxzZSAod2FpdHRpbWUgPCBiYWNrZW5kX21pbnRpbWUpKQotIMKgIMKgIMKgIMKgIMKg IMKgIMKgd2FpdHRpbWUgPSBiYWNrZW5kX21pbnRpbWU7CisgwqAgwqAgwqAgwqAgwqAgwqAvKiBu b3cgdGhlcmUgYXJlIHR3byBtb3JlIHNwZWNpYWwgY2FzZXMgbGVmdCwgZWl0aGVyIHdlIGhhdmUK KyDCoCDCoCDCoCDCoCDCoCDCoCAqIGFscmVhZHktZXhwaXJlZCB0aW1lcnMsIHNvIHdlIHNob3Vs ZCBub3Qgc2xlZXAsIG9yIHdlIGhhdmUgdGltZXJzCisgwqAgwqAgwqAgwqAgwqAgwqAgKiB0aGF0 IGV4cGlyZSB2ZXJ5IHNvb24sIGluIHdoaWNoIGNhc2Ugd2UgbmVlZCB0byB3YWl0IGZvciBhIG1p bmltdW0KKyDCoCDCoCDCoCDCoCDCoCDCoCAqIGFtb3VudCBvZiB0aW1lIGZvciBzb21lIGV2ZW50 IGxvb3AgYmFja2VuZHMuCisgwqAgwqAgwqAgwqAgwqAgwqAgKi8KKyDCoCDCoCDCoCDCoCDCoCDC oGlmIChlY2JfZXhwZWN0X2ZhbHNlICh3YWl0dGltZSA8IGJhY2tlbmRfbWludGltZSkpCisgwqAg wqAgwqAgwqAgwqAgwqAgwqB3YWl0dGltZSA9IHdhaXR0aW1lIDw9IEVWX1RTX0NPTlNUICgwLikK KyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA/IEVWX1RTX0NPTlNUICgwLikKKyDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCA6IGJhY2tlbmRfbWludGltZTsKwqAKwqAgwqAgwqAgwqAgwqAgwqAgwqAv KiBleHRyYSBjaGVjayBiZWNhdXNlIGlvX2Jsb2NrdGltZSBpcyBjb21tb25seSAwICovCi0gwqAg wqAgwqAgwqAgwqAgwqBpZiAoZXhwZWN0X2ZhbHNlIChpb19ibG9ja3RpbWUpKQorIMKgIMKgIMKg IMKgIMKgIMKgaWYgKGVjYl9leHBlY3RfZmFsc2UgKGlvX2Jsb2NrdGltZSkpCsKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgewrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHNsZWVwdGltZSA9IGlvX2Js b2NrdGltZSAtIChtbl9ub3cgLSBwcmV2X21uX25vdyk7CsKgCsKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgaWYgKHNsZWVwdGltZSA+IHdhaXR0aW1lIC0gYmFja2VuZF9taW50aW1lKQrCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoHNsZWVwdGltZSA9IHdhaXR0aW1lIC0gYmFja2VuZF9taW50 aW1lOwrCoAotIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgaWYgKGV4cGVjdF90cnVlIChzbGVlcHRp bWUgPiAwLikpCisgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBpZiAoZWNiX2V4cGVjdF90cnVlIChz bGVlcHRpbWUgPiBFVl9UU19DT05TVCAoMC4pKSkKwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqB7CsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZXZfc2xlZXAgKHNsZWVwdGltZSk7 CsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgd2FpdHRpbWUgLT0gc2xlZXB0aW1lOwpA QCAtMzcyNSw3ICs0MTk4LDYgQEAgZXZfcnVuIChFVl9QXyBpbnQgZmxhZ3MpCsKgIMKgIMKgIMKg IMKgIMKgIMKgZXZfZmVlZF9ldmVudCAoRVZfQV8gJnBpcGVfdywgRVZfQ1VTVE9NKTsKwqAgwqAg wqAgwqAgwqAgwqB9CsKgCi0KwqAgwqAgwqAgwqAgwqAvKiB1cGRhdGUgZXZfcnRfbm93LCBkbyBt YWdpYyAqLwrCoCDCoCDCoCDCoCDCoHRpbWVfdXBkYXRlIChFVl9BXyB3YWl0dGltZSArIHNsZWVw dGltZSk7CsKgIMKgIMKgIMKgfQpAQCAtMzc0MywxMyArNDIxNSwxMyBAQCBldl9ydW4gKEVWX1Bf IGludCBmbGFncykKwqAKwqAjaWYgRVZfQ0hFQ0tfRU5BQkxFCsKgIMKgIMKgIMKgLyogcXVldWUg Y2hlY2sgd2F0Y2hlcnMsIHRvIGJlIGV4ZWN1dGVkIGZpcnN0ICovCi0gwqAgwqAgwqBpZiAoZXhw ZWN0X2ZhbHNlIChjaGVja2NudCkpCisgwqAgwqAgwqBpZiAoZWNiX2V4cGVjdF9mYWxzZSAoY2hl Y2tjbnQpKQrCoCDCoCDCoCDCoCDCoHF1ZXVlX2V2ZW50cyAoRVZfQV8gKFcgKiljaGVja3MsIGNo ZWNrY250LCBFVl9DSEVDSyk7CsKgI2VuZGlmCsKgCsKgIMKgIMKgIMKgRVZfSU5WT0tFX1BFTkRJ Tkc7CsKgIMKgIMKgfQotIMKgd2hpbGUgKGV4cGVjdF90cnVlICgKKyDCoHdoaWxlIChlY2JfZXhw ZWN0X3RydWUgKArCoCDCoCDCoGFjdGl2ZWNudArCoCDCoCDCoCYmICFsb29wX2RvbmUKwqAgwqAg wqAmJiAhKGZsYWdzICYgKEVWUlVOX09OQ0UgfCBFVlJVTl9OT1dBSVQpKQpAQCAtMzc2Niw0MyAr NDIzOCw0MyBAQCBldl9ydW4gKEVWX1BfIGludCBmbGFncykKwqB9CsKgCsKgdm9pZAotZXZfYnJl YWsgKEVWX1BfIGludCBob3cpIEVWX1RIUk9XCitldl9icmVhayAoRVZfUF8gaW50IGhvdykgRVZf Tk9FWENFUFQKwqB7CsKgIMKgbG9vcF9kb25lID0gaG93OwrCoH0KwqAKwqB2b2lkCi1ldl9yZWYg KEVWX1ApIEVWX1RIUk9XCitldl9yZWYgKEVWX1ApIEVWX05PRVhDRVBUCsKgewrCoCDCoCsrYWN0 aXZlY250OwrCoH0KwqAKwqB2b2lkCi1ldl91bnJlZiAoRVZfUCkgRVZfVEhST1cKK2V2X3VucmVm IChFVl9QKSBFVl9OT0VYQ0VQVArCoHsKwqAgwqAtLWFjdGl2ZWNudDsKwqB9CsKgCsKgaW50Ci1l dl9hY3RpdmVjbnQgKEVWX1ApIEVWX1RIUk9XCitldl9hY3RpdmVjbnQgKEVWX1ApIEVWX05PRVhD RVBUCsKgewrCoCDCoHJldHVybiBhY3RpdmVjbnQ7CsKgfQrCoArCoHZvaWQKLWV2X25vd191cGRh dGUgKEVWX1ApIEVWX1RIUk9XCitldl9ub3dfdXBkYXRlIChFVl9QKSBFVl9OT0VYQ0VQVArCoHsK LSDCoHRpbWVfdXBkYXRlIChFVl9BXyAxZTEwMCk7CisgwqB0aW1lX3VwZGF0ZSAoRVZfQV8gRVZf VFNUQU1QX0hVR0UpOwrCoH0KwqAKwqB2b2lkCi1ldl9zdXNwZW5kIChFVl9QKSBFVl9USFJPVwor ZXZfc3VzcGVuZCAoRVZfUCkgRVZfTk9FWENFUFQKwqB7CsKgIMKgZXZfbm93X3VwZGF0ZSAoRVZf QSk7CsKgfQrCoArCoHZvaWQKLWV2X3Jlc3VtZSAoRVZfUCkgRVZfVEhST1cKK2V2X3Jlc3VtZSAo RVZfUCkgRVZfTk9FWENFUFQKwqB7CsKgIMKgZXZfdHN0YW1wIG1uX3ByZXYgPSBtbl9ub3c7CsKg CkBAIC0zODI5LDcgKzQzMDEsNyBAQCB3bGlzdF9kZWwgKFdMICpoZWFkLCBXTCBlbGVtKQrCoHsK wqAgwqB3aGlsZSAoKmhlYWQpCsKgIMKgIMKgewotIMKgIMKgIMKgaWYgKGV4cGVjdF90cnVlICgq aGVhZCA9PSBlbGVtKSkKKyDCoCDCoCDCoGlmIChlY2JfZXhwZWN0X3RydWUgKCpoZWFkID09IGVs ZW0pKQrCoCDCoCDCoCDCoCDCoHsKwqAgwqAgwqAgwqAgwqAgwqAqaGVhZCA9IGVsZW0tPm5leHQ7 CsKgIMKgIMKgIMKgIMKgIMKgYnJlYWs7CkBAIC0zODUxLDEyICs0MzIzLDEyIEBAIGNsZWFyX3Bl bmRpbmcgKEVWX1BfIFcgdykKwqB9CsKgCsKgaW50Ci1ldl9jbGVhcl9wZW5kaW5nIChFVl9QXyB2 b2lkICp3KSBFVl9USFJPVworZXZfY2xlYXJfcGVuZGluZyAoRVZfUF8gdm9pZCAqdykgRVZfTk9F WENFUFQKwqB7CsKgIMKgVyB3XyA9IChXKXc7CsKgIMKgaW50IHBlbmRpbmcgPSB3Xy0+cGVuZGlu ZzsKwqAKLSDCoGlmIChleHBlY3RfdHJ1ZSAocGVuZGluZykpCisgwqBpZiAoZWNiX2V4cGVjdF90 cnVlIChwZW5kaW5nKSkKwqAgwqAgwqB7CsKgIMKgIMKgIMKgQU5QRU5ESU5HICpwID0gcGVuZGlu Z3MgW0FCU1BSSSAod18pXSArIHBlbmRpbmcgLSAxOwrCoCDCoCDCoCDCoHAtPncgPSAoVykmcGVu ZGluZ193OwpAQCAtMzg5MywyMiArNDM2NSwyNSBAQCBldl9zdG9wIChFVl9QXyBXIHcpCsKgCsKg LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLwrCoAotbm9pbmxpbmUKK2VjYl9ub2lubGluZQrCoHZvaWQK LWV2X2lvX3N0YXJ0IChFVl9QXyBldl9pbyAqdykgRVZfVEhST1cKK2V2X2lvX3N0YXJ0IChFVl9Q XyBldl9pbyAqdykgRVZfTk9FWENFUFQKwqB7CsKgIMKgaW50IGZkID0gdy0+ZmQ7CsKgCi0gwqBp ZiAoZXhwZWN0X2ZhbHNlIChldl9pc19hY3RpdmUgKHcpKSkKKyDCoGlmIChlY2JfZXhwZWN0X2Zh bHNlIChldl9pc19hY3RpdmUgKHcpKSkKwqAgwqAgwqByZXR1cm47CsKgCsKgIMKgYXNzZXJ0ICgo ImxpYmV2OiBldl9pb19zdGFydCBjYWxsZWQgd2l0aCBuZWdhdGl2ZSBmZCIsIGZkID49IDApKTsK wqAgwqBhc3NlcnQgKCgibGliZXY6IGV2X2lvX3N0YXJ0IGNhbGxlZCB3aXRoIGlsbGVnYWwgZXZl bnQgbWFzayIsICEody0+ZXZlbnRzICYgfihFVl9fSU9GRFNFVCB8IEVWX1JFQUQgfCBFVl9XUklU RSkpKSk7CsKgCisjaWYgRVZfVkVSSUZZID49IDIKKyDCoGFzc2VydCAoKCJsaWJldjogZXZfaW9f c3RhcnQgY2FsbGVkIG9uIHdhdGNoZXIgd2l0aCBpbnZhbGlkIGZkIiwgZmRfdmFsaWQgKGZkKSkp OworI2VuZGlmCsKgIMKgRVZfRlJFUVVFTlRfQ0hFQ0s7CsKgCsKgIMKgZXZfc3RhcnQgKEVWX0Ff IChXKXcsIDEpOwotIMKgYXJyYXlfbmVlZHNpemUgKEFORkQsIGFuZmRzLCBhbmZkbWF4LCBmZCAr IDEsIGFycmF5X2luaXRfemVybyk7CisgwqBhcnJheV9uZWVkc2l6ZSAoQU5GRCwgYW5mZHMsIGFu ZmRtYXgsIGZkICsgMSwgYXJyYXlfbmVlZHNpemVfemVyb2ZpbGwpOwrCoCDCoHdsaXN0X2FkZCAo JmFuZmRzW2ZkXS5oZWFkLCAoV0wpdyk7CsKgCsKgIMKgLyogY29tbW9uIGJ1ZywgYXBwYXJlbnRs eSAqLwpAQCAtMzkyMCwxNiArNDM5NSwxOSBAQCBldl9pb19zdGFydCAoRVZfUF8gZXZfaW8gKncp IEVWX1RIUk9XCsKgIMKgRVZfRlJFUVVFTlRfQ0hFQ0s7CsKgfQrCoAotbm9pbmxpbmUKK2VjYl9u b2lubGluZQrCoHZvaWQKLWV2X2lvX3N0b3AgKEVWX1BfIGV2X2lvICp3KSBFVl9USFJPVworZXZf aW9fc3RvcCAoRVZfUF8gZXZfaW8gKncpIEVWX05PRVhDRVBUCsKgewrCoCDCoGNsZWFyX3BlbmRp bmcgKEVWX0FfIChXKXcpOwotIMKgaWYgKGV4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykp KQorIMKgaWYgKGVjYl9leHBlY3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcpKSkKwqAgwqAgwqBy ZXR1cm47CsKgCsKgIMKgYXNzZXJ0ICgoImxpYmV2OiBldl9pb19zdG9wIGNhbGxlZCB3aXRoIGls bGVnYWwgZmQgKG11c3Qgc3RheSBjb25zdGFudCBhZnRlciBzdGFydCEpIiwgdy0+ZmQgPj0gMCAm JiB3LT5mZCA8IGFuZmRtYXgpKTsKwqAKKyNpZiBFVl9WRVJJRlkgPj0gMgorIMKgYXNzZXJ0ICgo ImxpYmV2OiBldl9pb19zdG9wIGNhbGxlZCBvbiB3YXRjaGVyIHdpdGggaW52YWxpZCBmZCIsIGZk X3ZhbGlkICh3LT5mZCkpKTsKKyNlbmRpZgrCoCDCoEVWX0ZSRVFVRU5UX0NIRUNLOwrCoArCoCDC oHdsaXN0X2RlbCAoJmFuZmRzW3ctPmZkXS5oZWFkLCAoV0wpdyk7CkBAIC0zOTQ3LDcgKzQ0MjUs NyBAQCBldl9pb19zdG9wIChFVl9QXyBldl9pbyAqdykgRVZfVEhST1cKwqAgKiBiYWNrZW5kIGlz IHByb3Blcmx5IHVwZGF0ZWQuCsKgICovCsKgdm9pZCBub2lubGluZQotZXZfaW9fY2xvc2luZyAo RVZfUF8gaW50IGZkLCBpbnQgcmV2ZW50cykgRVZfVEhST1cKK2V2X2lvX2Nsb3NpbmcgKEVWX1Bf IGludCBmZCwgaW50IHJldmVudHMpIEVWX05PRVhDRVBUCsKgewrCoCDCoGV2X2lvICp3OwrCoCDC oGlmIChmZCA8IDAgfHwgZmQgPj0gYW5mZG1heCkKQEAgLTM5NjAsMTEgKzQ0MzgsMTEgQEAgZXZf aW9fY2xvc2luZyAoRVZfUF8gaW50IGZkLCBpbnQgcmV2ZW50cykgRVZfVEhST1cKwqAgwqAgwqB9 CsKgfQrCoAotbm9pbmxpbmUKK2VjYl9ub2lubGluZQrCoHZvaWQKLWV2X3RpbWVyX3N0YXJ0IChF Vl9QXyBldl90aW1lciAqdykgRVZfVEhST1cKK2V2X3RpbWVyX3N0YXJ0IChFVl9QXyBldl90aW1l ciAqdykgRVZfTk9FWENFUFQKwqB7Ci0gwqBpZiAoZXhwZWN0X2ZhbHNlIChldl9pc19hY3RpdmUg KHcpKSkKKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChldl9pc19hY3RpdmUgKHcpKSkKwqAgwqAg wqByZXR1cm47CsKgCsKgIMKgZXZfYXQgKHcpICs9IG1uX25vdzsKQEAgLTM5NzUsNyArNDQ1Myw3 IEBAIGV2X3RpbWVyX3N0YXJ0IChFVl9QXyBldl90aW1lciAqdykgRVZfVEhST1cKwqAKwqAgwqAr K3RpbWVyY250OwrCoCDCoGV2X3N0YXJ0IChFVl9BXyAoVyl3LCB0aW1lcmNudCArIEhFQVAwIC0g MSk7Ci0gwqBhcnJheV9uZWVkc2l6ZSAoQU5IRSwgdGltZXJzLCB0aW1lcm1heCwgZXZfYWN0aXZl ICh3KSArIDEsIEVNUFRZMik7CisgwqBhcnJheV9uZWVkc2l6ZSAoQU5IRSwgdGltZXJzLCB0aW1l cm1heCwgZXZfYWN0aXZlICh3KSArIDEsIGFycmF5X25lZWRzaXplX25vaW5pdCk7CsKgIMKgQU5I RV93ICh0aW1lcnMgW2V2X2FjdGl2ZSAodyldKSA9IChXVCl3OwrCoCDCoEFOSEVfYXRfY2FjaGUg KHRpbWVycyBbZXZfYWN0aXZlICh3KV0pOwrCoCDCoHVwaGVhcCAodGltZXJzLCBldl9hY3RpdmUg KHcpKTsKQEAgLTM5ODUsMTIgKzQ0NjMsMTIgQEAgZXZfdGltZXJfc3RhcnQgKEVWX1BfIGV2X3Rp bWVyICp3KSBFVl9USFJPVwrCoCDCoC8qYXNzZXJ0ICgoImxpYmV2OiBpbnRlcm5hbCB0aW1lciBo ZWFwIGNvcnJ1cHRpb24iLCB0aW1lcnMgW2V2X2FjdGl2ZSAodyldID09IChXVCl3KSk7Ki8KwqB9 CsKgCi1ub2lubGluZQorZWNiX25vaW5saW5lCsKgdm9pZAotZXZfdGltZXJfc3RvcCAoRVZfUF8g ZXZfdGltZXIgKncpIEVWX1RIUk9XCitldl90aW1lcl9zdG9wIChFVl9QXyBldl90aW1lciAqdykg RVZfTk9FWENFUFQKwqB7CsKgIMKgY2xlYXJfcGVuZGluZyAoRVZfQV8gKFcpdyk7Ci0gwqBpZiAo ZXhwZWN0X2ZhbHNlICghZXZfaXNfYWN0aXZlICh3KSkpCisgwqBpZiAoZWNiX2V4cGVjdF9mYWxz ZSAoIWV2X2lzX2FjdGl2ZSAodykpKQrCoCDCoCDCoHJldHVybjsKwqAKwqAgwqBFVl9GUkVRVUVO VF9DSEVDSzsKQEAgLTQwMDIsNyArNDQ4MCw3IEBAIGV2X3RpbWVyX3N0b3AgKEVWX1BfIGV2X3Rp bWVyICp3KSBFVl9USFJPVwrCoArCoCDCoCDCoC0tdGltZXJjbnQ7CsKgCi0gwqAgwqBpZiAoZXhw ZWN0X3RydWUgKGFjdGl2ZSA8IHRpbWVyY250ICsgSEVBUDApKQorIMKgIMKgaWYgKGVjYl9leHBl Y3RfdHJ1ZSAoYWN0aXZlIDwgdGltZXJjbnQgKyBIRUFQMCkpCsKgIMKgIMKgIMKgewrCoCDCoCDC oCDCoCDCoHRpbWVycyBbYWN0aXZlXSA9IHRpbWVycyBbdGltZXJjbnQgKyBIRUFQMF07CsKgIMKg IMKgIMKgIMKgYWRqdXN0aGVhcCAodGltZXJzLCB0aW1lcmNudCwgYWN0aXZlKTsKQEAgLTQwMTYs OSArNDQ5NCw5IEBAIGV2X3RpbWVyX3N0b3AgKEVWX1BfIGV2X3RpbWVyICp3KSBFVl9USFJPVwrC oCDCoEVWX0ZSRVFVRU5UX0NIRUNLOwrCoH0KwqAKLW5vaW5saW5lCitlY2Jfbm9pbmxpbmUKwqB2 b2lkCi1ldl90aW1lcl9hZ2FpbiAoRVZfUF8gZXZfdGltZXIgKncpIEVWX1RIUk9XCitldl90aW1l cl9hZ2FpbiAoRVZfUF8gZXZfdGltZXIgKncpIEVWX05PRVhDRVBUCsKgewrCoCDCoEVWX0ZSRVFV RU5UX0NIRUNLOwrCoApAQCAtNDA0NSwxOSArNDUyMywyNCBAQCBldl90aW1lcl9hZ2FpbiAoRVZf UF8gZXZfdGltZXIgKncpIEVWX1RIUk9XCsKgfQrCoArCoGV2X3RzdGFtcAotZXZfdGltZXJfcmVt YWluaW5nIChFVl9QXyBldl90aW1lciAqdykgRVZfVEhST1cKK2V2X3RpbWVyX3JlbWFpbmluZyAo RVZfUF8gZXZfdGltZXIgKncpIEVWX05PRVhDRVBUCsKgewotIMKgcmV0dXJuIGV2X2F0ICh3KSAt IChldl9pc19hY3RpdmUgKHcpID8gbW5fbm93IDogMC4pOworIMKgcmV0dXJuIGV2X2F0ICh3KSAt IChldl9pc19hY3RpdmUgKHcpID8gbW5fbm93IDogRVZfVFNfQ09OU1QgKDAuKSk7CsKgfQrCoArC oCNpZiBFVl9QRVJJT0RJQ19FTkFCTEUKLW5vaW5saW5lCitlY2Jfbm9pbmxpbmUKwqB2b2lkCi1l dl9wZXJpb2RpY19zdGFydCAoRVZfUF8gZXZfcGVyaW9kaWMgKncpIEVWX1RIUk9XCitldl9wZXJp b2RpY19zdGFydCAoRVZfUF8gZXZfcGVyaW9kaWMgKncpIEVWX05PRVhDRVBUCsKgewotIMKgaWYg KGV4cGVjdF9mYWxzZSAoZXZfaXNfYWN0aXZlICh3KSkpCisgwqBpZiAoZWNiX2V4cGVjdF9mYWxz ZSAoZXZfaXNfYWN0aXZlICh3KSkpCsKgIMKgIMKgcmV0dXJuOwrCoAorI2lmIEVWX1VTRV9USU1F UkZECisgwqBpZiAodGltZXJmZCA9PSAtMikKKyDCoCDCoGV2dGltZXJmZF9pbml0IChFVl9BKTsK KyNlbmRpZgorCsKgIMKgaWYgKHctPnJlc2NoZWR1bGVfY2IpCsKgIMKgIMKgZXZfYXQgKHcpID0g dy0+cmVzY2hlZHVsZV9jYiAodywgZXZfcnRfbm93KTsKwqAgwqBlbHNlIGlmICh3LT5pbnRlcnZh bCkKQEAgLTQwNzIsNyArNDU1NSw3IEBAIGV2X3BlcmlvZGljX3N0YXJ0IChFVl9QXyBldl9wZXJp b2RpYyAqdykgRVZfVEhST1cKwqAKwqAgwqArK3BlcmlvZGljY250OwrCoCDCoGV2X3N0YXJ0IChF Vl9BXyAoVyl3LCBwZXJpb2RpY2NudCArIEhFQVAwIC0gMSk7Ci0gwqBhcnJheV9uZWVkc2l6ZSAo QU5IRSwgcGVyaW9kaWNzLCBwZXJpb2RpY21heCwgZXZfYWN0aXZlICh3KSArIDEsIEVNUFRZMik7 CisgwqBhcnJheV9uZWVkc2l6ZSAoQU5IRSwgcGVyaW9kaWNzLCBwZXJpb2RpY21heCwgZXZfYWN0 aXZlICh3KSArIDEsIGFycmF5X25lZWRzaXplX25vaW5pdCk7CsKgIMKgQU5IRV93IChwZXJpb2Rp Y3MgW2V2X2FjdGl2ZSAodyldKSA9IChXVCl3OwrCoCDCoEFOSEVfYXRfY2FjaGUgKHBlcmlvZGlj cyBbZXZfYWN0aXZlICh3KV0pOwrCoCDCoHVwaGVhcCAocGVyaW9kaWNzLCBldl9hY3RpdmUgKHcp KTsKQEAgLTQwODIsMTIgKzQ1NjUsMTIgQEAgZXZfcGVyaW9kaWNfc3RhcnQgKEVWX1BfIGV2X3Bl cmlvZGljICp3KSBFVl9USFJPVwrCoCDCoC8qYXNzZXJ0ICgoImxpYmV2OiBpbnRlcm5hbCBwZXJp b2RpYyBoZWFwIGNvcnJ1cHRpb24iLCBBTkhFX3cgKHBlcmlvZGljcyBbZXZfYWN0aXZlICh3KV0p ID09IChXVCl3KSk7Ki8KwqB9CsKgCi1ub2lubGluZQorZWNiX25vaW5saW5lCsKgdm9pZAotZXZf cGVyaW9kaWNfc3RvcCAoRVZfUF8gZXZfcGVyaW9kaWMgKncpIEVWX1RIUk9XCitldl9wZXJpb2Rp Y19zdG9wIChFVl9QXyBldl9wZXJpb2RpYyAqdykgRVZfTk9FWENFUFQKwqB7CsKgIMKgY2xlYXJf cGVuZGluZyAoRVZfQV8gKFcpdyk7Ci0gwqBpZiAoZXhwZWN0X2ZhbHNlICghZXZfaXNfYWN0aXZl ICh3KSkpCisgwqBpZiAoZWNiX2V4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykpKQrCoCDC oCDCoHJldHVybjsKwqAKwqAgwqBFVl9GUkVRVUVOVF9DSEVDSzsKQEAgLTQwOTksNyArNDU4Miw3 IEBAIGV2X3BlcmlvZGljX3N0b3AgKEVWX1BfIGV2X3BlcmlvZGljICp3KSBFVl9USFJPVwrCoArC oCDCoCDCoC0tcGVyaW9kaWNjbnQ7CsKgCi0gwqAgwqBpZiAoZXhwZWN0X3RydWUgKGFjdGl2ZSA8 IHBlcmlvZGljY250ICsgSEVBUDApKQorIMKgIMKgaWYgKGVjYl9leHBlY3RfdHJ1ZSAoYWN0aXZl IDwgcGVyaW9kaWNjbnQgKyBIRUFQMCkpCsKgIMKgIMKgIMKgewrCoCDCoCDCoCDCoCDCoHBlcmlv ZGljcyBbYWN0aXZlXSA9IHBlcmlvZGljcyBbcGVyaW9kaWNjbnQgKyBIRUFQMF07CsKgIMKgIMKg IMKgIMKgYWRqdXN0aGVhcCAocGVyaW9kaWNzLCBwZXJpb2RpY2NudCwgYWN0aXZlKTsKQEAgLTQx MTEsOSArNDU5NCw5IEBAIGV2X3BlcmlvZGljX3N0b3AgKEVWX1BfIGV2X3BlcmlvZGljICp3KSBF Vl9USFJPVwrCoCDCoEVWX0ZSRVFVRU5UX0NIRUNLOwrCoH0KwqAKLW5vaW5saW5lCitlY2Jfbm9p bmxpbmUKwqB2b2lkCi1ldl9wZXJpb2RpY19hZ2FpbiAoRVZfUF8gZXZfcGVyaW9kaWMgKncpIEVW X1RIUk9XCitldl9wZXJpb2RpY19hZ2FpbiAoRVZfUF8gZXZfcGVyaW9kaWMgKncpIEVWX05PRVhD RVBUCsKgewrCoCDCoC8qIFRPRE86IHVzZSBhZGp1c3RoZWFwIGFuZCByZWNhbGN1bGF0aW9uICov CsKgIMKgZXZfcGVyaW9kaWNfc3RvcCAoRVZfQV8gdyk7CkBAIC00MTI3LDExICs0NjEwLDExIEBA IGV2X3BlcmlvZGljX2FnYWluIChFVl9QXyBldl9wZXJpb2RpYyAqdykgRVZfVEhST1cKwqAKwqAj aWYgRVZfU0lHTkFMX0VOQUJMRQrCoAotbm9pbmxpbmUKK2VjYl9ub2lubGluZQrCoHZvaWQKLWV2 X3NpZ25hbF9zdGFydCAoRVZfUF8gZXZfc2lnbmFsICp3KSBFVl9USFJPVworZXZfc2lnbmFsX3N0 YXJ0IChFVl9QXyBldl9zaWduYWwgKncpIEVWX05PRVhDRVBUCsKgewotIMKgaWYgKGV4cGVjdF9m YWxzZSAoZXZfaXNfYWN0aXZlICh3KSkpCisgwqBpZiAoZWNiX2V4cGVjdF9mYWxzZSAoZXZfaXNf YWN0aXZlICh3KSkpCsKgIMKgIMKgcmV0dXJuOwrCoArCoCDCoGFzc2VydCAoKCJsaWJldjogZXZf c2lnbmFsX3N0YXJ0IGNhbGxlZCB3aXRoIGlsbGVnYWwgc2lnbmFsIG51bWJlciIsIHctPnNpZ251 bSA+IDAgJiYgdy0+c2lnbnVtIDwgRVZfTlNJRykpOwpAQCAtNDIxMCwxMiArNDY5MywxMiBAQCBl dl9zaWduYWxfc3RhcnQgKEVWX1BfIGV2X3NpZ25hbCAqdykgRVZfVEhST1cKwqAgwqBFVl9GUkVR VUVOVF9DSEVDSzsKwqB9CsKgCi1ub2lubGluZQorZWNiX25vaW5saW5lCsKgdm9pZAotZXZfc2ln bmFsX3N0b3AgKEVWX1BfIGV2X3NpZ25hbCAqdykgRVZfVEhST1cKK2V2X3NpZ25hbF9zdG9wIChF Vl9QXyBldl9zaWduYWwgKncpIEVWX05PRVhDRVBUCsKgewrCoCDCoGNsZWFyX3BlbmRpbmcgKEVW X0FfIChXKXcpOwotIMKgaWYgKGV4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykpKQorIMKg aWYgKGVjYl9leHBlY3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcpKSkKwqAgwqAgwqByZXR1cm47 CsKgCsKgIMKgRVZfRlJFUVVFTlRfQ0hFQ0s7CkBAIC00MjUzLDEyICs0NzM2LDEyIEBAIGV2X3Np Z25hbF9zdG9wIChFVl9QXyBldl9zaWduYWwgKncpIEVWX1RIUk9XCsKgI2lmIEVWX0NISUxEX0VO QUJMRQrCoArCoHZvaWQKLWV2X2NoaWxkX3N0YXJ0IChFVl9QXyBldl9jaGlsZCAqdykgRVZfVEhS T1cKK2V2X2NoaWxkX3N0YXJ0IChFVl9QXyBldl9jaGlsZCAqdykgRVZfTk9FWENFUFQKwqB7CsKg I2lmIEVWX01VTFRJUExJQ0lUWQrCoCDCoGFzc2VydCAoKCJsaWJldjogY2hpbGQgd2F0Y2hlcnMg YXJlIG9ubHkgc3VwcG9ydGVkIGluIHRoZSBkZWZhdWx0IGxvb3AiLCBsb29wID09IGV2X2RlZmF1 bHRfbG9vcF9wdHIpKTsKwqAjZW5kaWYKLSDCoGlmIChleHBlY3RfZmFsc2UgKGV2X2lzX2FjdGl2 ZSAodykpKQorIMKgaWYgKGVjYl9leHBlY3RfZmFsc2UgKGV2X2lzX2FjdGl2ZSAodykpKQrCoCDC oCDCoHJldHVybjsKwqAKwqAgwqBFVl9GUkVRVUVOVF9DSEVDSzsKQEAgLTQyNzAsMTAgKzQ3NTMs MTAgQEAgZXZfY2hpbGRfc3RhcnQgKEVWX1BfIGV2X2NoaWxkICp3KSBFVl9USFJPVwrCoH0KwqAK wqB2b2lkCi1ldl9jaGlsZF9zdG9wIChFVl9QXyBldl9jaGlsZCAqdykgRVZfVEhST1cKK2V2X2No aWxkX3N0b3AgKEVWX1BfIGV2X2NoaWxkICp3KSBFVl9OT0VYQ0VQVArCoHsKwqAgwqBjbGVhcl9w ZW5kaW5nIChFVl9BXyAoVyl3KTsKLSDCoGlmIChleHBlY3RfZmFsc2UgKCFldl9pc19hY3RpdmUg KHcpKSkKKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlICghZXZfaXNfYWN0aXZlICh3KSkpCsKgIMKg IMKgcmV0dXJuOwrCoArCoCDCoEVWX0ZSRVFVRU5UX0NIRUNLOwpAQCAtNDI5NywxNCArNDc4MCwx NCBAQCBldl9jaGlsZF9zdG9wIChFVl9QXyBldl9jaGlsZCAqdykgRVZfVEhST1cKwqAjZGVmaW5l IE5GU19TVEFUX0lOVEVSVkFMIDMwLjEwNzQ4OTEgLyogZm9yIGZpbGVzeXN0ZW1zIHBvdGVudGlh bGx5IGZhaWxpbmcgaW5vdGlmeSAqLwrCoCNkZWZpbmUgTUlOX1NUQVRfSU5URVJWQUwgwqAwLjEw NzQ4OTEKwqAKLW5vaW5saW5lIHN0YXRpYyB2b2lkIHN0YXRfdGltZXJfY2IgKEVWX1BfIGV2X3Rp bWVyICp3XywgaW50IHJldmVudHMpOworZWNiX25vaW5saW5lIHN0YXRpYyB2b2lkIHN0YXRfdGlt ZXJfY2IgKEVWX1BfIGV2X3RpbWVyICp3XywgaW50IHJldmVudHMpOwrCoArCoCNpZiBFVl9VU0Vf SU5PVElGWQrCoArCoC8qIHRoZSAqIDIgaXMgdG8gYWxsb3cgZm9yIGFsaWdubWVudCBwYWRkaW5n LCB3aGljaCBmb3Igc29tZSByZWFzb24gaXMgPj4gOCAqLwrCoCMgZGVmaW5lIEVWX0lOT1RJRllf QlVGU0laRSAoc2l6ZW9mIChzdHJ1Y3QgaW5vdGlmeV9ldmVudCkgKiAyICsgTkFNRV9NQVgpCsKg Ci1ub2lubGluZQorZWNiX25vaW5saW5lCsKgc3RhdGljIHZvaWQKwqBpbmZ5X2FkZCAoRVZfUF8g ZXZfc3RhdCAqdykKwqB7CkBAIC00Mzc5LDcgKzQ4NjIsNyBAQCBpbmZ5X2FkZCAoRVZfUF8gZXZf c3RhdCAqdykKwqAgwqBpZiAoZXZfaXNfYWN0aXZlICgmdy0+dGltZXIpKSBldl91bnJlZiAoRVZf QSk7CsKgfQrCoAotbm9pbmxpbmUKK2VjYl9ub2lubGluZQrCoHN0YXRpYyB2b2lkCsKgaW5meV9k ZWwgKEVWX1BfIGV2X3N0YXQgKncpCsKgewpAQCAtNDM5Nyw3ICs0ODgwLDcgQEAgaW5meV9kZWwg KEVWX1BfIGV2X3N0YXQgKncpCsKgIMKgaW5vdGlmeV9ybV93YXRjaCAoZnNfZmQsIHdkKTsKwqB9 CsKgCi1ub2lubGluZQorZWNiX25vaW5saW5lCsKgc3RhdGljIHZvaWQKwqBpbmZ5X3dkIChFVl9Q XyBpbnQgc2xvdCwgaW50IHdkLCBzdHJ1Y3QgaW5vdGlmeV9ldmVudCAqZXYpCsKgewpAQCAtNDU0 NSw3ICs1MDI4LDcgQEAgaW5meV9mb3JrIChFVl9QKQrCoCNlbmRpZgrCoArCoHZvaWQKLWV2X3N0 YXRfc3RhdCAoRVZfUF8gZXZfc3RhdCAqdykgRVZfVEhST1cKK2V2X3N0YXRfc3RhdCAoRVZfUF8g ZXZfc3RhdCAqdykgRVZfTk9FWENFUFQKwqB7CsKgIMKgaWYgKGxzdGF0ICh3LT5wYXRoLCAmdy0+ YXR0cikgPCAwKQrCoCDCoCDCoHctPmF0dHIuc3RfbmxpbmsgPSAwOwpAQCAtNDU1Myw3ICs1MDM2 LDcgQEAgZXZfc3RhdF9zdGF0IChFVl9QXyBldl9zdGF0ICp3KSBFVl9USFJPVwrCoCDCoCDCoHct PmF0dHIuc3RfbmxpbmsgPSAxOwrCoH0KwqAKLW5vaW5saW5lCitlY2Jfbm9pbmxpbmUKwqBzdGF0 aWMgdm9pZArCoHN0YXRfdGltZXJfY2IgKEVWX1BfIGV2X3RpbWVyICp3XywgaW50IHJldmVudHMp CsKgewpAQCAtNDYwNCw5ICs1MDg3LDkgQEAgc3RhdF90aW1lcl9jYiAoRVZfUF8gZXZfdGltZXIg KndfLCBpbnQgcmV2ZW50cykKwqB9CsKgCsKgdm9pZAotZXZfc3RhdF9zdGFydCAoRVZfUF8gZXZf c3RhdCAqdykgRVZfVEhST1cKK2V2X3N0YXRfc3RhcnQgKEVWX1BfIGV2X3N0YXQgKncpIEVWX05P RVhDRVBUCsKgewotIMKgaWYgKGV4cGVjdF9mYWxzZSAoZXZfaXNfYWN0aXZlICh3KSkpCisgwqBp ZiAoZWNiX2V4cGVjdF9mYWxzZSAoZXZfaXNfYWN0aXZlICh3KSkpCsKgIMKgIMKgcmV0dXJuOwrC oArCoCDCoGV2X3N0YXRfc3RhdCAoRVZfQV8gdyk7CkBAIC00NjM1LDEwICs1MTE4LDEwIEBAIGV2 X3N0YXRfc3RhcnQgKEVWX1BfIGV2X3N0YXQgKncpIEVWX1RIUk9XCsKgfQrCoArCoHZvaWQKLWV2 X3N0YXRfc3RvcCAoRVZfUF8gZXZfc3RhdCAqdykgRVZfVEhST1cKK2V2X3N0YXRfc3RvcCAoRVZf UF8gZXZfc3RhdCAqdykgRVZfTk9FWENFUFQKwqB7CsKgIMKgY2xlYXJfcGVuZGluZyAoRVZfQV8g KFcpdyk7Ci0gwqBpZiAoZXhwZWN0X2ZhbHNlICghZXZfaXNfYWN0aXZlICh3KSkpCisgwqBpZiAo ZWNiX2V4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykpKQrCoCDCoCDCoHJldHVybjsKwqAK wqAgwqBFVl9GUkVRVUVOVF9DSEVDSzsKQEAgLTQ2NjEsOSArNTE0NCw5IEBAIGV2X3N0YXRfc3Rv cCAoRVZfUF8gZXZfc3RhdCAqdykgRVZfVEhST1cKwqAKwqAjaWYgRVZfSURMRV9FTkFCTEUKwqB2 b2lkCi1ldl9pZGxlX3N0YXJ0IChFVl9QXyBldl9pZGxlICp3KSBFVl9USFJPVworZXZfaWRsZV9z dGFydCAoRVZfUF8gZXZfaWRsZSAqdykgRVZfTk9FWENFUFQKwqB7Ci0gwqBpZiAoZXhwZWN0X2Zh bHNlIChldl9pc19hY3RpdmUgKHcpKSkKKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChldl9pc19h Y3RpdmUgKHcpKSkKwqAgwqAgwqByZXR1cm47CsKgCsKgIMKgcHJpX2FkanVzdCAoRVZfQV8gKFcp dyk7CkBAIC00Njc2LDcgKzUxNTksNyBAQCBldl9pZGxlX3N0YXJ0IChFVl9QXyBldl9pZGxlICp3 KSBFVl9USFJPVwrCoCDCoCDCoCsraWRsZWFsbDsKwqAgwqAgwqBldl9zdGFydCAoRVZfQV8gKFcp dywgYWN0aXZlKTsKwqAKLSDCoCDCoGFycmF5X25lZWRzaXplIChldl9pZGxlICosIGlkbGVzIFtB QlNQUkkgKHcpXSwgaWRsZW1heCBbQUJTUFJJICh3KV0sIGFjdGl2ZSwgRU1QVFkyKTsKKyDCoCDC oGFycmF5X25lZWRzaXplIChldl9pZGxlICosIGlkbGVzIFtBQlNQUkkgKHcpXSwgaWRsZW1heCBb QUJTUFJJICh3KV0sIGFjdGl2ZSwgYXJyYXlfbmVlZHNpemVfbm9pbml0KTsKwqAgwqAgwqBpZGxl cyBbQUJTUFJJICh3KV1bYWN0aXZlIC0gMV0gPSB3OwrCoCDCoH0KwqAKQEAgLTQ2ODQsMTAgKzUx NjcsMTAgQEAgZXZfaWRsZV9zdGFydCAoRVZfUF8gZXZfaWRsZSAqdykgRVZfVEhST1cKwqB9CsKg CsKgdm9pZAotZXZfaWRsZV9zdG9wIChFVl9QXyBldl9pZGxlICp3KSBFVl9USFJPVworZXZfaWRs ZV9zdG9wIChFVl9QXyBldl9pZGxlICp3KSBFVl9OT0VYQ0VQVArCoHsKwqAgwqBjbGVhcl9wZW5k aW5nIChFVl9BXyAoVyl3KTsKLSDCoGlmIChleHBlY3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcp KSkKKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlICghZXZfaXNfYWN0aXZlICh3KSkpCsKgIMKgIMKg cmV0dXJuOwrCoArCoCDCoEVWX0ZSRVFVRU5UX0NIRUNLOwpAQCAtNDcwOCwyNSArNTE5MSwyNSBA QCBldl9pZGxlX3N0b3AgKEVWX1BfIGV2X2lkbGUgKncpIEVWX1RIUk9XCsKgCsKgI2lmIEVWX1BS RVBBUkVfRU5BQkxFCsKgdm9pZAotZXZfcHJlcGFyZV9zdGFydCAoRVZfUF8gZXZfcHJlcGFyZSAq dykgRVZfVEhST1cKK2V2X3ByZXBhcmVfc3RhcnQgKEVWX1BfIGV2X3ByZXBhcmUgKncpIEVWX05P RVhDRVBUCsKgewotIMKgaWYgKGV4cGVjdF9mYWxzZSAoZXZfaXNfYWN0aXZlICh3KSkpCisgwqBp ZiAoZWNiX2V4cGVjdF9mYWxzZSAoZXZfaXNfYWN0aXZlICh3KSkpCsKgIMKgIMKgcmV0dXJuOwrC oArCoCDCoEVWX0ZSRVFVRU5UX0NIRUNLOwrCoArCoCDCoGV2X3N0YXJ0IChFVl9BXyAoVyl3LCAr K3ByZXBhcmVjbnQpOwotIMKgYXJyYXlfbmVlZHNpemUgKGV2X3ByZXBhcmUgKiwgcHJlcGFyZXMs IHByZXBhcmVtYXgsIHByZXBhcmVjbnQsIEVNUFRZMik7CisgwqBhcnJheV9uZWVkc2l6ZSAoZXZf cHJlcGFyZSAqLCBwcmVwYXJlcywgcHJlcGFyZW1heCwgcHJlcGFyZWNudCwgYXJyYXlfbmVlZHNp emVfbm9pbml0KTsKwqAgwqBwcmVwYXJlcyBbcHJlcGFyZWNudCAtIDFdID0gdzsKwqAKwqAgwqBF Vl9GUkVRVUVOVF9DSEVDSzsKwqB9CsKgCsKgdm9pZAotZXZfcHJlcGFyZV9zdG9wIChFVl9QXyBl dl9wcmVwYXJlICp3KSBFVl9USFJPVworZXZfcHJlcGFyZV9zdG9wIChFVl9QXyBldl9wcmVwYXJl ICp3KSBFVl9OT0VYQ0VQVArCoHsKwqAgwqBjbGVhcl9wZW5kaW5nIChFVl9BXyAoVyl3KTsKLSDC oGlmIChleHBlY3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcpKSkKKyDCoGlmIChlY2JfZXhwZWN0 X2ZhbHNlICghZXZfaXNfYWN0aXZlICh3KSkpCsKgIMKgIMKgcmV0dXJuOwrCoArCoCDCoEVWX0ZS RVFVRU5UX0NIRUNLOwpAQCAtNDc0NiwyNSArNTIyOSwyNSBAQCBldl9wcmVwYXJlX3N0b3AgKEVW X1BfIGV2X3ByZXBhcmUgKncpIEVWX1RIUk9XCsKgCsKgI2lmIEVWX0NIRUNLX0VOQUJMRQrCoHZv aWQKLWV2X2NoZWNrX3N0YXJ0IChFVl9QXyBldl9jaGVjayAqdykgRVZfVEhST1cKK2V2X2NoZWNr X3N0YXJ0IChFVl9QXyBldl9jaGVjayAqdykgRVZfTk9FWENFUFQKwqB7Ci0gwqBpZiAoZXhwZWN0 X2ZhbHNlIChldl9pc19hY3RpdmUgKHcpKSkKKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChldl9p c19hY3RpdmUgKHcpKSkKwqAgwqAgwqByZXR1cm47CsKgCsKgIMKgRVZfRlJFUVVFTlRfQ0hFQ0s7 CsKgCsKgIMKgZXZfc3RhcnQgKEVWX0FfIChXKXcsICsrY2hlY2tjbnQpOwotIMKgYXJyYXlfbmVl ZHNpemUgKGV2X2NoZWNrICosIGNoZWNrcywgY2hlY2ttYXgsIGNoZWNrY250LCBFTVBUWTIpOwor IMKgYXJyYXlfbmVlZHNpemUgKGV2X2NoZWNrICosIGNoZWNrcywgY2hlY2ttYXgsIGNoZWNrY250 LCBhcnJheV9uZWVkc2l6ZV9ub2luaXQpOwrCoCDCoGNoZWNrcyBbY2hlY2tjbnQgLSAxXSA9IHc7 CsKgCsKgIMKgRVZfRlJFUVVFTlRfQ0hFQ0s7CsKgfQrCoArCoHZvaWQKLWV2X2NoZWNrX3N0b3Ag KEVWX1BfIGV2X2NoZWNrICp3KSBFVl9USFJPVworZXZfY2hlY2tfc3RvcCAoRVZfUF8gZXZfY2hl Y2sgKncpIEVWX05PRVhDRVBUCsKgewrCoCDCoGNsZWFyX3BlbmRpbmcgKEVWX0FfIChXKXcpOwot IMKgaWYgKGV4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykpKQorIMKgaWYgKGVjYl9leHBl Y3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcpKSkKwqAgwqAgwqByZXR1cm47CsKgCsKgIMKgRVZf RlJFUVVFTlRfQ0hFQ0s7CkBAIC00NzgzLDkgKzUyNjYsOSBAQCBldl9jaGVja19zdG9wIChFVl9Q XyBldl9jaGVjayAqdykgRVZfVEhST1cKwqAjZW5kaWYKwqAKwqAjaWYgRVZfRU1CRURfRU5BQkxF Ci1ub2lubGluZQorZWNiX25vaW5saW5lCsKgdm9pZAotZXZfZW1iZWRfc3dlZXAgKEVWX1BfIGV2 X2VtYmVkICp3KSBFVl9USFJPVworZXZfZW1iZWRfc3dlZXAgKEVWX1BfIGV2X2VtYmVkICp3KSBF Vl9OT0VYQ0VQVArCoHsKwqAgwqBldl9ydW4gKHctPm90aGVyLCBFVlJVTl9OT1dBSVQpOwrCoH0K QEAgLTQ4MTcsNiArNTMwMCw3IEBAIGVtYmVkX3ByZXBhcmVfY2IgKEVWX1BfIGV2X3ByZXBhcmUg KnByZXBhcmUsIGludCByZXZlbnRzKQrCoCDCoH0KwqB9CsKgCisjaWYgRVZfRk9SS19FTkFCTEUK wqBzdGF0aWMgdm9pZArCoGVtYmVkX2ZvcmtfY2IgKEVWX1BfIGV2X2ZvcmsgKmZvcmtfdywgaW50 IHJldmVudHMpCsKgewpAQCAtNDgzMyw2ICs1MzE3LDcgQEAgZW1iZWRfZm9ya19jYiAoRVZfUF8g ZXZfZm9yayAqZm9ya193LCBpbnQgcmV2ZW50cykKwqAKwqAgwqBldl9lbWJlZF9zdGFydCAoRVZf QV8gdyk7CsKgfQorI2VuZGlmCsKgCsKgI2lmIDAKwqBzdGF0aWMgdm9pZApAQCAtNDg0Myw5ICs1 MzI4LDkgQEAgZW1iZWRfaWRsZV9jYiAoRVZfUF8gZXZfaWRsZSAqaWRsZSwgaW50IHJldmVudHMp CsKgI2VuZGlmCsKgCsKgdm9pZAotZXZfZW1iZWRfc3RhcnQgKEVWX1BfIGV2X2VtYmVkICp3KSBF Vl9USFJPVworZXZfZW1iZWRfc3RhcnQgKEVWX1BfIGV2X2VtYmVkICp3KSBFVl9OT0VYQ0VQVArC oHsKLSDCoGlmIChleHBlY3RfZmFsc2UgKGV2X2lzX2FjdGl2ZSAodykpKQorIMKgaWYgKGVjYl9l eHBlY3RfZmFsc2UgKGV2X2lzX2FjdGl2ZSAodykpKQrCoCDCoCDCoHJldHVybjsKwqAKwqAgwqB7 CkBAIC00ODYzLDggKzUzNDgsMTAgQEAgZXZfZW1iZWRfc3RhcnQgKEVWX1BfIGV2X2VtYmVkICp3 KSBFVl9USFJPVwrCoCDCoGV2X3NldF9wcmlvcml0eSAoJnctPnByZXBhcmUsIEVWX01JTlBSSSk7 CsKgIMKgZXZfcHJlcGFyZV9zdGFydCAoRVZfQV8gJnctPnByZXBhcmUpOwrCoAorI2lmIEVWX0ZP UktfRU5BQkxFCsKgIMKgZXZfZm9ya19pbml0ICgmdy0+Zm9yaywgZW1iZWRfZm9ya19jYik7CsKg IMKgZXZfZm9ya19zdGFydCAoRVZfQV8gJnctPmZvcmspOworI2VuZGlmCsKgCsKgIMKgLypldl9p ZGxlX2luaXQgKCZ3LT5pZGxlLCBlLGJlZF9pZGxlX2NiKTsqLwrCoApAQCAtNDg3NCwxNyArNTM2 MSwxOSBAQCBldl9lbWJlZF9zdGFydCAoRVZfUF8gZXZfZW1iZWQgKncpIEVWX1RIUk9XCsKgfQrC oArCoHZvaWQKLWV2X2VtYmVkX3N0b3AgKEVWX1BfIGV2X2VtYmVkICp3KSBFVl9USFJPVworZXZf ZW1iZWRfc3RvcCAoRVZfUF8gZXZfZW1iZWQgKncpIEVWX05PRVhDRVBUCsKgewrCoCDCoGNsZWFy X3BlbmRpbmcgKEVWX0FfIChXKXcpOwotIMKgaWYgKGV4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2 ZSAodykpKQorIMKgaWYgKGVjYl9leHBlY3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcpKSkKwqAg wqAgwqByZXR1cm47CsKgCsKgIMKgRVZfRlJFUVVFTlRfQ0hFQ0s7CsKgCsKgIMKgZXZfaW9fc3Rv cCDCoCDCoCDCoChFVl9BXyAmdy0+aW8pOwrCoCDCoGV2X3ByZXBhcmVfc3RvcCAoRVZfQV8gJnct PnByZXBhcmUpOworI2lmIEVWX0ZPUktfRU5BQkxFCsKgIMKgZXZfZm9ya19zdG9wIMKgIMKgKEVW X0FfICZ3LT5mb3JrKTsKKyNlbmRpZgrCoArCoCDCoGV2X3N0b3AgKEVWX0FfIChXKXcpOwrCoApA QCAtNDg5NCwyNSArNTM4MywyNSBAQCBldl9lbWJlZF9zdG9wIChFVl9QXyBldl9lbWJlZCAqdykg RVZfVEhST1cKwqAKwqAjaWYgRVZfRk9SS19FTkFCTEUKwqB2b2lkCi1ldl9mb3JrX3N0YXJ0IChF Vl9QXyBldl9mb3JrICp3KSBFVl9USFJPVworZXZfZm9ya19zdGFydCAoRVZfUF8gZXZfZm9yayAq dykgRVZfTk9FWENFUFQKwqB7Ci0gwqBpZiAoZXhwZWN0X2ZhbHNlIChldl9pc19hY3RpdmUgKHcp KSkKKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChldl9pc19hY3RpdmUgKHcpKSkKwqAgwqAgwqBy ZXR1cm47CsKgCsKgIMKgRVZfRlJFUVVFTlRfQ0hFQ0s7CsKgCsKgIMKgZXZfc3RhcnQgKEVWX0Ff IChXKXcsICsrZm9ya2NudCk7Ci0gwqBhcnJheV9uZWVkc2l6ZSAoZXZfZm9yayAqLCBmb3Jrcywg Zm9ya21heCwgZm9ya2NudCwgRU1QVFkyKTsKKyDCoGFycmF5X25lZWRzaXplIChldl9mb3JrICos IGZvcmtzLCBmb3JrbWF4LCBmb3JrY250LCBhcnJheV9uZWVkc2l6ZV9ub2luaXQpOwrCoCDCoGZv cmtzIFtmb3JrY250IC0gMV0gPSB3OwrCoArCoCDCoEVWX0ZSRVFVRU5UX0NIRUNLOwrCoH0KwqAK wqB2b2lkCi1ldl9mb3JrX3N0b3AgKEVWX1BfIGV2X2ZvcmsgKncpIEVWX1RIUk9XCitldl9mb3Jr X3N0b3AgKEVWX1BfIGV2X2ZvcmsgKncpIEVWX05PRVhDRVBUCsKgewrCoCDCoGNsZWFyX3BlbmRp bmcgKEVWX0FfIChXKXcpOwotIMKgaWYgKGV4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykp KQorIMKgaWYgKGVjYl9leHBlY3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcpKSkKwqAgwqAgwqBy ZXR1cm47CsKgCsKgIMKgRVZfRlJFUVVFTlRfQ0hFQ0s7CkBAIC00OTMyLDE1ICs1NDIxLDE1IEBA IGV2X2Zvcmtfc3RvcCAoRVZfUF8gZXZfZm9yayAqdykgRVZfVEhST1cKwqAKwqAjaWYgRVZfQ0xF QU5VUF9FTkFCTEUKwqB2b2lkCi1ldl9jbGVhbnVwX3N0YXJ0IChFVl9QXyBldl9jbGVhbnVwICp3 KSBFVl9USFJPVworZXZfY2xlYW51cF9zdGFydCAoRVZfUF8gZXZfY2xlYW51cCAqdykgRVZfTk9F WENFUFQKwqB7Ci0gwqBpZiAoZXhwZWN0X2ZhbHNlIChldl9pc19hY3RpdmUgKHcpKSkKKyDCoGlm IChlY2JfZXhwZWN0X2ZhbHNlIChldl9pc19hY3RpdmUgKHcpKSkKwqAgwqAgwqByZXR1cm47CsKg CsKgIMKgRVZfRlJFUVVFTlRfQ0hFQ0s7CsKgCsKgIMKgZXZfc3RhcnQgKEVWX0FfIChXKXcsICsr Y2xlYW51cGNudCk7Ci0gwqBhcnJheV9uZWVkc2l6ZSAoZXZfY2xlYW51cCAqLCBjbGVhbnVwcywg Y2xlYW51cG1heCwgY2xlYW51cGNudCwgRU1QVFkyKTsKKyDCoGFycmF5X25lZWRzaXplIChldl9j bGVhbnVwICosIGNsZWFudXBzLCBjbGVhbnVwbWF4LCBjbGVhbnVwY250LCBhcnJheV9uZWVkc2l6 ZV9ub2luaXQpOwrCoCDCoGNsZWFudXBzIFtjbGVhbnVwY250IC0gMV0gPSB3OwrCoArCoCDCoC8q IGNsZWFudXAgd2F0Y2hlcnMgc2hvdWxkIG5ldmVyIGtlZXAgYSByZWZjb3VudCBvbiB0aGUgbG9v cCAqLwpAQCAtNDk0OSwxMCArNTQzOCwxMCBAQCBldl9jbGVhbnVwX3N0YXJ0IChFVl9QXyBldl9j bGVhbnVwICp3KSBFVl9USFJPVwrCoH0KwqAKwqB2b2lkCi1ldl9jbGVhbnVwX3N0b3AgKEVWX1Bf IGV2X2NsZWFudXAgKncpIEVWX1RIUk9XCitldl9jbGVhbnVwX3N0b3AgKEVWX1BfIGV2X2NsZWFu dXAgKncpIEVWX05PRVhDRVBUCsKgewrCoCDCoGNsZWFyX3BlbmRpbmcgKEVWX0FfIChXKXcpOwot IMKgaWYgKGV4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykpKQorIMKgaWYgKGVjYl9leHBl Y3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcpKSkKwqAgwqAgwqByZXR1cm47CsKgCsKgIMKgRVZf RlJFUVVFTlRfQ0hFQ0s7CkBAIC00OTczLDkgKzU0NjIsOSBAQCBldl9jbGVhbnVwX3N0b3AgKEVW X1BfIGV2X2NsZWFudXAgKncpIEVWX1RIUk9XCsKgCsKgI2lmIEVWX0FTWU5DX0VOQUJMRQrCoHZv aWQKLWV2X2FzeW5jX3N0YXJ0IChFVl9QXyBldl9hc3luYyAqdykgRVZfVEhST1cKK2V2X2FzeW5j X3N0YXJ0IChFVl9QXyBldl9hc3luYyAqdykgRVZfTk9FWENFUFQKwqB7Ci0gwqBpZiAoZXhwZWN0 X2ZhbHNlIChldl9pc19hY3RpdmUgKHcpKSkKKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChldl9p c19hY3RpdmUgKHcpKSkKwqAgwqAgwqByZXR1cm47CsKgCsKgIMKgdy0+c2VudCA9IDA7CkBAIC00 OTg1LDE3ICs1NDc0LDE3IEBAIGV2X2FzeW5jX3N0YXJ0IChFVl9QXyBldl9hc3luYyAqdykgRVZf VEhST1cKwqAgwqBFVl9GUkVRVUVOVF9DSEVDSzsKwqAKwqAgwqBldl9zdGFydCAoRVZfQV8gKFcp dywgKythc3luY2NudCk7Ci0gwqBhcnJheV9uZWVkc2l6ZSAoZXZfYXN5bmMgKiwgYXN5bmNzLCBh c3luY21heCwgYXN5bmNjbnQsIEVNUFRZMik7CisgwqBhcnJheV9uZWVkc2l6ZSAoZXZfYXN5bmMg KiwgYXN5bmNzLCBhc3luY21heCwgYXN5bmNjbnQsIGFycmF5X25lZWRzaXplX25vaW5pdCk7CsKg IMKgYXN5bmNzIFthc3luY2NudCAtIDFdID0gdzsKwqAKwqAgwqBFVl9GUkVRVUVOVF9DSEVDSzsK wqB9CsKgCsKgdm9pZAotZXZfYXN5bmNfc3RvcCAoRVZfUF8gZXZfYXN5bmMgKncpIEVWX1RIUk9X Citldl9hc3luY19zdG9wIChFVl9QXyBldl9hc3luYyAqdykgRVZfTk9FWENFUFQKwqB7CsKgIMKg Y2xlYXJfcGVuZGluZyAoRVZfQV8gKFcpdyk7Ci0gwqBpZiAoZXhwZWN0X2ZhbHNlICghZXZfaXNf YWN0aXZlICh3KSkpCisgwqBpZiAoZWNiX2V4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykp KQrCoCDCoCDCoHJldHVybjsKwqAKwqAgwqBFVl9GUkVRVUVOVF9DSEVDSzsKQEAgLTUwMTMsNyAr NTUwMiw3IEBAIGV2X2FzeW5jX3N0b3AgKEVWX1BfIGV2X2FzeW5jICp3KSBFVl9USFJPVwrCoH0K wqAKwqB2b2lkCi1ldl9hc3luY19zZW5kIChFVl9QXyBldl9hc3luYyAqdykgRVZfVEhST1cKK2V2 X2FzeW5jX3NlbmQgKEVWX1BfIGV2X2FzeW5jICp3KSBFVl9OT0VYQ0VQVArCoHsKwqAgwqB3LT5z ZW50ID0gMTsKwqAgwqBldnBpcGVfd3JpdGUgKEVWX0FfICZhc3luY19wZW5kaW5nKTsKQEAgLTUw NjAsMTYgKzU1NDksMTAgQEAgb25jZV9jYl90byAoRVZfUF8gZXZfdGltZXIgKncsIGludCByZXZl bnRzKQrCoH0KwqAKwqB2b2lkCi1ldl9vbmNlIChFVl9QXyBpbnQgZmQsIGludCBldmVudHMsIGV2 X3RzdGFtcCB0aW1lb3V0LCB2b2lkICgqY2IpKGludCByZXZlbnRzLCB2b2lkICphcmcpLCB2b2lk ICphcmcpIEVWX1RIUk9XCitldl9vbmNlIChFVl9QXyBpbnQgZmQsIGludCBldmVudHMsIGV2X3Rz dGFtcCB0aW1lb3V0LCB2b2lkICgqY2IpKGludCByZXZlbnRzLCB2b2lkICphcmcpLCB2b2lkICph cmcpIEVWX05PRVhDRVBUCsKgewrCoCDCoHN0cnVjdCBldl9vbmNlICpvbmNlID0gKHN0cnVjdCBl dl9vbmNlICopZXZfbWFsbG9jIChzaXplb2YgKHN0cnVjdCBldl9vbmNlKSk7CsKgCi0gwqBpZiAo ZXhwZWN0X2ZhbHNlICghb25jZSkpCi0gwqAgwqB7Ci0gwqAgwqAgwqBjYiAoRVZfRVJST1IgfCBF Vl9SRUFEIHwgRVZfV1JJVEUgfCBFVl9USU1FUiwgYXJnKTsKLSDCoCDCoCDCoHJldHVybjsKLSDC oCDCoH0KLQrCoCDCoG9uY2UtPmNiIMKgPSBjYjsKwqAgwqBvbmNlLT5hcmcgPSBhcmc7CsKgCkBA IC01MDkzLDcgKzU1NzYsNyBAQCBldl9vbmNlIChFVl9QXyBpbnQgZmQsIGludCBldmVudHMsIGV2 X3RzdGFtcCB0aW1lb3V0LCB2b2lkICgqY2IpKGludCByZXZlbnRzLCB2bwrCoCNpZiBFVl9XQUxL X0VOQUJMRQrCoGVjYl9jb2xkCsKgdm9pZAotZXZfd2FsayAoRVZfUF8gaW50IHR5cGVzLCB2b2lk ICgqY2IpKEVWX1BfIGludCB0eXBlLCB2b2lkICp3KSkgRVZfVEhST1cKK2V2X3dhbGsgKEVWX1Bf IGludCB0eXBlcywgdm9pZCAoKmNiKShFVl9QXyBpbnQgdHlwZSwgdm9pZCAqdykpIEVWX05PRVhD RVBUCsKgewrCoCDCoGludCBpLCBqOwrCoCDCoGV2X3dhdGNoZXJfbGlzdCAqd2wsICp3bjsKZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2LmggYi90aGlyZF9wYXJ0eS9saWJldi9ldi5o CmluZGV4IGQ0MmUyZGY0Ny4uYzBlMTcxNDNiIDEwMDY0NAotLS0gYS90aGlyZF9wYXJ0eS9saWJl di9ldi5oCisrKyBiL3RoaXJkX3BhcnR5L2xpYmV2L2V2LmgKQEAgLTEsNyArMSw3IEBACsKgLyoK wqAgKiBsaWJldiBuYXRpdmUgQVBJIGhlYWRlcgrCoCAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDcs MjAwOCwyMDA5LDIwMTAsMjAxMSwyMDEyLDIwMTUgTWFyYyBBbGV4YW5kZXIgTGVobWFubiA8bGli ZXZAc2NobW9ycC5kZT4KKyAqIENvcHlyaWdodCAoYykgMjAwNy0yMDIwIE1hcmMgQWxleGFuZGVy IExlaG1hbm4gPGxpYmV2QHNjaG1vcnAuZGU+CsKgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KwqAg KgrCoCAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYS0KQEAgLTQ4LDE0ICs0OCwxMyBAQArCoCAqIGR1ZSB0 byBub24tdGhyb3dpbmciIHdhcm5pbmdzLgrCoCAqICMgwqBkZWZpbmUgRVZfVEhST1cgbm9leGNl cHQKwqAgKi8KLSMgwqBkZWZpbmUgRVZfVEhST1cKLSMgZWxzZQotIyDCoGRlZmluZSBFVl9USFJP VyB0aHJvdyAoKQorIyDCoGRlZmluZSBFVl9OT0VYQ0VQVArCoCMgZW5kaWYKwqAjZWxzZQrCoCMg ZGVmaW5lIEVWX0NQUCh4KQotIyBkZWZpbmUgRVZfVEhST1cKKyMgZGVmaW5lIEVWX05PRVhDRVBU CsKgI2VuZGlmCisjZGVmaW5lIEVWX1RIUk9XIEVWX05PRVhDRVBUIC8qIHByZS00LjI1LCBkbyBu b3QgdXNlIGluIG5ldyBjb2RlICovCsKgCsKgRVZfQ1BQKGV4dGVybiAiQyIgeykKwqAKQEAgLTE1 NSw3ICsxNTQsMTAgQEAgRVZfQ1BQKGV4dGVybiAiQyIgeykKwqAKwqAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCsKgCi10eXBlZGVmIGRvdWJsZSBldl90c3RhbXA7CisjaWZuZGVmIEVWX1RTVEFNUF9U CisjIGRlZmluZSBFVl9UU1RBTVBfVCBkb3VibGUKKyNlbmRpZgordHlwZWRlZiBFVl9UU1RBTVBf VCBldl90c3RhbXA7CsKgCsKgI2luY2x1ZGUgPHN0cmluZy5oPiAvKiBmb3IgbWVtbW92ZSAqLwrC oApAQCAtMjE2LDcgKzIxOCw3IEBAIHN0cnVjdCBldl9sb29wOwrCoC8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KwqAKwqAjZGVmaW5lIEVWX1ZFUlNJT05fTUFKT1IgNAotI2RlZmluZSBFVl9WRVJTSU9O X01JTk9SIDI0CisjZGVmaW5lIEVWX1ZFUlNJT05fTUlOT1IgMzIKwqAKwqAvKiBldmVudG1hc2ss IHJldmVudHMsIGV2ZW50cy4uLiAqLwrCoGVudW0gewpAQCAtMzQ0LDcgKzM0Niw3IEBAIHR5cGVk ZWYgc3RydWN0IGV2X3BlcmlvZGljCsKgCsKgIMKgZXZfdHN0YW1wIG9mZnNldDsgLyogcncgKi8K wqAgwqBldl90c3RhbXAgaW50ZXJ2YWw7IC8qIHJ3ICovCi0gwqBldl90c3RhbXAgKCpyZXNjaGVk dWxlX2NiKShzdHJ1Y3QgZXZfcGVyaW9kaWMgKncsIGV2X3RzdGFtcCBub3cpIEVWX1RIUk9XOyAv KiBydyAqLworIMKgZXZfdHN0YW1wICgqcmVzY2hlZHVsZV9jYikoc3RydWN0IGV2X3BlcmlvZGlj ICp3LCBldl90c3RhbXAgbm93KSBFVl9OT0VYQ0VQVDsgLyogcncgKi8KwqB9IGV2X3BlcmlvZGlj OwrCoArCoC8qIGludm9rZWQgd2hlbiB0aGUgZ2l2ZW4gc2lnbmFsIGhhcyBiZWVuIHJlY2VpdmVk ICovCkBAIC0zOTMsMTQgKzM5NSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBldl9zdGF0CsKgfSBldl9z dGF0OwrCoCNlbmRpZgrCoAotI2lmIEVWX0lETEVfRU5BQkxFCsKgLyogaW52b2tlZCB3aGVuIHRo ZSBub3RoaW5nIGVsc2UgbmVlZHMgdG8gYmUgZG9uZSwga2VlcHMgdGhlIHByb2Nlc3MgZnJvbSBi bG9ja2luZyAqLwrCoC8qIHJldmVudCBFVl9JRExFICovCsKgdHlwZWRlZiBzdHJ1Y3QgZXZfaWRs ZQrCoHsKwqAgwqBFVl9XQVRDSEVSIChldl9pZGxlKQrCoH0gZXZfaWRsZTsKLSNlbmRpZgrCoArC oC8qIGludm9rZWQgZm9yIGVhY2ggcnVuIG9mIHRoZSBtYWlubG9vcCwganVzdCBiZWZvcmUgdGhl IGJsb2NraW5nIGNhbGwgKi8KwqAvKiB5b3UgY2FuIHN0aWxsIGNoYW5nZSBldmVudHMgaW4gYW55 IHdheSB5b3UgbGlrZSAqLwpAQCAtNDE3LDIzICs0MTcsMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgZXZf Y2hlY2sKwqAgwqBFVl9XQVRDSEVSIChldl9jaGVjaykKwqB9IGV2X2NoZWNrOwrCoAotI2lmIEVW X0ZPUktfRU5BQkxFCsKgLyogdGhlIGNhbGxiYWNrIGdldHMgaW52b2tlZCBiZWZvcmUgY2hlY2sg aW4gdGhlIGNoaWxkIHByb2Nlc3Mgd2hlbiBhIGZvcmsgd2FzIGRldGVjdGVkICovCsKgLyogcmV2 ZW50IEVWX0ZPUksgKi8KwqB0eXBlZGVmIHN0cnVjdCBldl9mb3JrCsKgewrCoCDCoEVWX1dBVENI RVIgKGV2X2ZvcmspCsKgfSBldl9mb3JrOwotI2VuZGlmCsKgCi0jaWYgRVZfQ0xFQU5VUF9FTkFC TEUKwqAvKiBpcyBpbnZva2VkIGp1c3QgYmVmb3JlIHRoZSBsb29wIGdldHMgZGVzdHJveWVkICov CsKgLyogcmV2ZW50IEVWX0NMRUFOVVAgKi8KwqB0eXBlZGVmIHN0cnVjdCBldl9jbGVhbnVwCsKg ewrCoCDCoEVWX1dBVENIRVIgKGV2X2NsZWFudXApCsKgfSBldl9jbGVhbnVwOwotI2VuZGlmCsKg CsKgI2lmIEVWX0VNQkVEX0VOQUJMRQrCoC8qIHVzZWQgdG8gZW1iZWQgYW4gZXZlbnQgbG9vcCBp bnNpZGUgYW5vdGhlciAqLwpAQCAtNDQzLDE2ICs0MzksMTggQEAgdHlwZWRlZiBzdHJ1Y3QgZXZf ZW1iZWQKwqAgwqBFVl9XQVRDSEVSIChldl9lbWJlZCkKwqAKwqAgwqBzdHJ1Y3QgZXZfbG9vcCAq b3RoZXI7IC8qIHJvICovCisjdW5kZWYgRVZfSU9fRU5BQkxFCisjZGVmaW5lIEVWX0lPX0VOQUJM RSAxCsKgIMKgZXZfaW8gaW87IMKgIMKgIMKgIMKgIMKgIMKgIMKgLyogcHJpdmF0ZSAqLworI3Vu ZGVmIEVWX1BSRVBBUkVfRU5BQkxFCisjZGVmaW5lIEVWX1BSRVBBUkVfRU5BQkxFIDEKwqAgwqBl dl9wcmVwYXJlIHByZXBhcmU7IMKgIMKgLyogcHJpdmF0ZSAqLwrCoCDCoGV2X2NoZWNrIGNoZWNr OyDCoCDCoCDCoCDCoC8qIHVudXNlZCAqLwrCoCDCoGV2X3RpbWVyIHRpbWVyOyDCoCDCoCDCoCDC oC8qIHVudXNlZCAqLwrCoCDCoGV2X3BlcmlvZGljIHBlcmlvZGljOyDCoC8qIHVudXNlZCAqLwrC oCDCoGV2X2lkbGUgaWRsZTsgwqAgwqAgwqAgwqAgwqAvKiB1bnVzZWQgKi8KwqAgwqBldl9mb3Jr IGZvcms7IMKgIMKgIMKgIMKgIMKgLyogcHJpdmF0ZSAqLwotI2lmIEVWX0NMRUFOVVBfRU5BQkxF CsKgIMKgZXZfY2xlYW51cCBjbGVhbnVwOyDCoCDCoC8qIHVudXNlZCAqLwotI2VuZGlmCsKgfSBl dl9lbWJlZDsKwqAjZW5kaWYKwqAKQEAgLTUwNSw0MiArNTAzLDQ0IEBAIHVuaW9uIGV2X2FueV93 YXRjaGVyCsKgLyogZmxhZyBiaXRzIGZvciBldl9kZWZhdWx0X2xvb3AgYW5kIGV2X2xvb3BfbmV3 ICovCsKgZW51bSB7CsKgIMKgLyogdGhlIGRlZmF1bHQgKi8KLSDCoEVWRkxBR19BVVRPIMKgIMKg IMKgPSAweDAwMDAwMDAwVSwgLyogbm90IHF1aXRlIGEgbWFzayAqLworIMKgRVZGTEFHX0FVVE8g wqAgwqAgwqAgPSAweDAwMDAwMDAwVSwgLyogbm90IHF1aXRlIGEgbWFzayAqLwrCoCDCoC8qIGZs YWcgYml0cyAqLwotIMKgRVZGTEFHX05PRU5WIMKgIMKgID0gMHgwMTAwMDAwMFUsIC8qIGRvIE5P VCBjb25zdWx0IGVudmlyb25tZW50ICovCi0gwqBFVkZMQUdfRk9SS0NIRUNLID0gMHgwMjAwMDAw MFUsIC8qIGNoZWNrIGZvciBhIGZvcmsgaW4gZWFjaCBpdGVyYXRpb24gKi8KKyDCoEVWRkxBR19O T0VOViDCoCDCoCDCoD0gMHgwMTAwMDAwMFUsIC8qIGRvIE5PVCBjb25zdWx0IGVudmlyb25tZW50 ICovCisgwqBFVkZMQUdfRk9SS0NIRUNLIMKgPSAweDAyMDAwMDAwVSwgLyogY2hlY2sgZm9yIGEg Zm9yayBpbiBlYWNoIGl0ZXJhdGlvbiAqLwrCoCDCoC8qIGRlYnVnZ2luZy9mZWF0dXJlIGRpc2Fi bGUgKi8KLSDCoEVWRkxBR19OT0lOT1RJRlkgPSAweDAwMTAwMDAwVSwgLyogZG8gbm90IGF0dGVt cHQgdG8gdXNlIGlub3RpZnkgKi8KKyDCoEVWRkxBR19OT0lOT1RJRlkgwqA9IDB4MDAxMDAwMDBV LCAvKiBkbyBub3QgYXR0ZW1wdCB0byB1c2UgaW5vdGlmeSAqLwrCoCNpZiBFVl9DT01QQVQzCi0g wqBFVkZMQUdfTk9TSUdGRCDCoCA9IDAsIC8qIGNvbXBhdGliaWxpdHkgdG8gcHJlLTMuOSAqLwor IMKgRVZGTEFHX05PU0lHRkQgwqAgwqA9IDAsIC8qIGNvbXBhdGliaWxpdHkgdG8gcHJlLTMuOSAq LwrCoCNlbmRpZgotIMKgRVZGTEFHX1NJR05BTEZEIMKgPSAweDAwMjAwMDAwVSwgLyogYXR0ZW1w dCB0byB1c2Ugc2lnbmFsZmQgKi8KLSDCoEVWRkxBR19OT1NJR01BU0sgPSAweDAwNDAwMDAwVSwg wqAvKiBhdm9pZCBtb2RpZnlpbmcgdGhlIHNpZ25hbCBtYXNrICovCi0gwqBFVkZMQUdfQUxMT0NG RCDCoCA9IDB4MDA4MDAwMDBVIC8qIHByZWFsbG9jYXRlIGV2ZW50IHBpcGUgZGVzY3JpcHRvcnMg Ki8KKyDCoEVWRkxBR19TSUdOQUxGRCDCoCA9IDB4MDAyMDAwMDBVLCAvKiBhdHRlbXB0IHRvIHVz ZSBzaWduYWxmZCAqLworIMKgRVZGTEFHX05PU0lHTUFTSyDCoD0gMHgwMDQwMDAwMFUsIC8qIGF2 b2lkIG1vZGlmeWluZyB0aGUgc2lnbmFsIG1hc2sgKi8KKyDCoEVWRkxBR19OT1RJTUVSRkQgwqA9 IDB4MDA4MDAwMDBVIMKgLyogYXZvaWQgY3JlYXRpbmcgYSB0aW1lcmZkICovCsKgfTsKwqAKwqAv KiBtZXRob2QgYml0cyB0byBiZSBvcmVkIHRvZ2V0aGVyICovCsKgZW51bSB7Ci0gwqBFVkJBQ0tF TkRfU0VMRUNUIMKgPSAweDAwMDAwMDAxVSwgLyogYXZhaWxhYmxlIGp1c3QgYWJvdXQgYW55d2hl cmUgKi8KLSDCoEVWQkFDS0VORF9QT0xMIMKgIMKgPSAweDAwMDAwMDAyVSwgLyogIXdpbiwgIWFp eCwgYnJva2VuIG9uIG9zeCAqLwotIMKgRVZCQUNLRU5EX0VQT0xMIMKgID0gMHgwMDAwMDAwNFUs IC8qIGxpbnV4ICovCi0gwqBFVkJBQ0tFTkRfS1FVRVVFIMKgPSAweDAwMDAwMDA4VSwgLyogYnNk LCBicm9rZW4gb24gb3N4ICovCi0gwqBFVkJBQ0tFTkRfREVWUE9MTCA9IDB4MDAwMDAwMTBVLCAv KiBzb2xhcmlzIDggKi8gLyogTllJICovCi0gwqBFVkJBQ0tFTkRfUE9SVCDCoCDCoD0gMHgwMDAw MDAyMFUsIC8qIHNvbGFyaXMgMTAgKi8KLSDCoEVWQkFDS0VORF9BTEwgwqAgwqAgPSAweDAwMDAw MDNGVSwgLyogYWxsIGtub3duIGJhY2tlbmRzICovCi0gwqBFVkJBQ0tFTkRfTUFTSyDCoCDCoD0g MHgwMDAwRkZGRlUgwqAvKiBhbGwgZnV0dXJlIGJhY2tlbmRzICovCisgwqBFVkJBQ0tFTkRfU0VM RUNUIMKgID0gMHgwMDAwMDAwMVUsIC8qIGF2YWlsYWJsZSBqdXN0IGFib3V0IGFueXdoZXJlICov CisgwqBFVkJBQ0tFTkRfUE9MTCDCoCDCoCA9IDB4MDAwMDAwMDJVLCAvKiAhd2luLCAhYWl4LCBi cm9rZW4gb24gb3N4ICovCisgwqBFVkJBQ0tFTkRfRVBPTEwgwqAgwqA9IDB4MDAwMDAwMDRVLCAv KiBsaW51eCAqLworIMKgRVZCQUNLRU5EX0tRVUVVRSDCoCA9IDB4MDAwMDAwMDhVLCAvKiBic2Qs IGJyb2tlbiBvbiBvc3ggKi8KKyDCoEVWQkFDS0VORF9ERVZQT0xMIMKgPSAweDAwMDAwMDEwVSwg Lyogc29sYXJpcyA4ICovIC8qIE5ZSSAqLworIMKgRVZCQUNLRU5EX1BPUlQgwqAgwqAgPSAweDAw MDAwMDIwVSwgLyogc29sYXJpcyAxMCAqLworIMKgRVZCQUNLRU5EX0xJTlVYQUlPID0gMHgwMDAw MDA0MFUsIC8qIGxpbnV4IEFJTywgNC4xOSsgKi8KKyDCoEVWQkFDS0VORF9JT1VSSU5HIMKgPSAw eDAwMDAwMDgwVSwgLyogbGludXggaW9fdXJpbmcsIDUuMSsgKi8KKyDCoEVWQkFDS0VORF9BTEwg wqAgwqAgwqA9IDB4MDAwMDAwRkZVLCAvKiBhbGwga25vd24gYmFja2VuZHMgKi8KKyDCoEVWQkFD S0VORF9NQVNLIMKgIMKgID0gMHgwMDAwRkZGRlUgwqAvKiBhbGwgZnV0dXJlIGJhY2tlbmRzICov CsKgfTsKwqAKwqAjaWYgRVZfUFJPVE9UWVBFUwotRVZfQVBJX0RFQ0wgaW50IGV2X3ZlcnNpb25f bWFqb3IgKHZvaWQpIEVWX1RIUk9XOwotRVZfQVBJX0RFQ0wgaW50IGV2X3ZlcnNpb25fbWlub3Ig KHZvaWQpIEVWX1RIUk9XOworRVZfQVBJX0RFQ0wgaW50IGV2X3ZlcnNpb25fbWFqb3IgKHZvaWQp IEVWX05PRVhDRVBUOworRVZfQVBJX0RFQ0wgaW50IGV2X3ZlcnNpb25fbWlub3IgKHZvaWQpIEVW X05PRVhDRVBUOwrCoAotRVZfQVBJX0RFQ0wgdW5zaWduZWQgaW50IGV2X3N1cHBvcnRlZF9iYWNr ZW5kcyAodm9pZCkgRVZfVEhST1c7Ci1FVl9BUElfREVDTCB1bnNpZ25lZCBpbnQgZXZfcmVjb21t ZW5kZWRfYmFja2VuZHMgKHZvaWQpIEVWX1RIUk9XOwotRVZfQVBJX0RFQ0wgdW5zaWduZWQgaW50 IGV2X2VtYmVkZGFibGVfYmFja2VuZHMgKHZvaWQpIEVWX1RIUk9XOworRVZfQVBJX0RFQ0wgdW5z aWduZWQgaW50IGV2X3N1cHBvcnRlZF9iYWNrZW5kcyAodm9pZCkgRVZfTk9FWENFUFQ7CitFVl9B UElfREVDTCB1bnNpZ25lZCBpbnQgZXZfcmVjb21tZW5kZWRfYmFja2VuZHMgKHZvaWQpIEVWX05P RVhDRVBUOworRVZfQVBJX0RFQ0wgdW5zaWduZWQgaW50IGV2X2VtYmVkZGFibGVfYmFja2VuZHMg KHZvaWQpIEVWX05PRVhDRVBUOwrCoAotRVZfQVBJX0RFQ0wgZXZfdHN0YW1wIGV2X3RpbWUgKHZv aWQpIEVWX1RIUk9XOwotRVZfQVBJX0RFQ0wgdm9pZCBldl9zbGVlcCAoZXZfdHN0YW1wIGRlbGF5 KSBFVl9USFJPVzsgLyogc2xlZXAgZm9yIGEgd2hpbGUgKi8KK0VWX0FQSV9ERUNMIGV2X3RzdGFt cCBldl90aW1lICh2b2lkKSBFVl9OT0VYQ0VQVDsKK0VWX0FQSV9ERUNMIHZvaWQgZXZfc2xlZXAg KGV2X3RzdGFtcCBkZWxheSkgRVZfTk9FWENFUFQ7IC8qIHNsZWVwIGZvciBhIHdoaWxlICovCsKg CsKgLyogU2V0cyB0aGUgYWxsb2NhdGlvbiBmdW5jdGlvbiB0byB1c2UsIHdvcmtzIGxpa2UgcmVh bGxvYy4KwqAgKiBJdCBpcyB1c2VkIHRvIGFsbG9jYXRlIGFuZCBmcmVlIG1lbW9yeS4KQEAgLTU0 OCwyNiArNTQ4LDI2IEBAIEVWX0FQSV9ERUNMIHZvaWQgZXZfc2xlZXAgKGV2X3RzdGFtcCBkZWxh eSkgRVZfVEhST1c7IC8qIHNsZWVwIGZvciBhIHdoaWxlICovCsKgICogb3IgdGFrZSBzb21lIHBv dGVudGlhbGx5IGRlc3RydWN0aXZlIGFjdGlvbi4KwqAgKiBUaGUgZGVmYXVsdCBpcyB5b3VyIHN5 c3RlbSByZWFsbG9jIGZ1bmN0aW9uLgrCoCAqLwotRVZfQVBJX0RFQ0wgdm9pZCBldl9zZXRfYWxs b2NhdG9yICh2b2lkICooKmNiKSh2b2lkICpwdHIsIGxvbmcgc2l6ZSkgRVZfVEhST1cpIEVWX1RI Uk9XOworRVZfQVBJX0RFQ0wgdm9pZCBldl9zZXRfYWxsb2NhdG9yICh2b2lkICooKmNiKSh2b2lk ICpwdHIsIGxvbmcgc2l6ZSkgRVZfTk9FWENFUFQpIEVWX05PRVhDRVBUOwrCoArCoC8qIHNldCB0 aGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gY2FsbCBvbiBhCsKgICogcmV0cnlhYmxlIHN5c2NhbGwg ZXJyb3IKwqAgKiAoc3VjaCBhcyBmYWlsZWQgc2VsZWN0LCBwb2xsLCBlcG9sbF93YWl0KQrCoCAq LwotRVZfQVBJX0RFQ0wgdm9pZCBldl9zZXRfc3lzZXJyX2NiICh2b2lkICgqY2IpKGNvbnN0IGNo YXIgKm1zZykgRVZfVEhST1cpIEVWX1RIUk9XOworRVZfQVBJX0RFQ0wgdm9pZCBldl9zZXRfc3lz ZXJyX2NiICh2b2lkICgqY2IpKGNvbnN0IGNoYXIgKm1zZykgRVZfTk9FWENFUFQpIEVWX05PRVhD RVBUOwrCoArCoCNpZiBFVl9NVUxUSVBMSUNJVFkKwqAKwqAvKiB0aGUgZGVmYXVsdCBsb29wIGlz IHRoZSBvbmx5IG9uZSB0aGF0IGhhbmRsZXMgc2lnbmFscyBhbmQgY2hpbGQgd2F0Y2hlcnMgKi8K wqAvKiB5b3UgY2FuIGNhbGwgdGhpcyBhcyBvZnRlbiBhcyB5b3UgbGlrZSAqLwotRVZfQVBJX0RF Q0wgc3RydWN0IGV2X2xvb3AgKmV2X2RlZmF1bHRfbG9vcCAodW5zaWduZWQgaW50IGZsYWdzIEVW X0NQUCAoPSAwKSkgRVZfVEhST1c7CitFVl9BUElfREVDTCBzdHJ1Y3QgZXZfbG9vcCAqZXZfZGVm YXVsdF9sb29wICh1bnNpZ25lZCBpbnQgZmxhZ3MgRVZfQ1BQICg9IDApKSBFVl9OT0VYQ0VQVDsK wqAKwqAjaWZkZWYgRVZfQVBJX1NUQVRJQwrCoEVWX0FQSV9ERUNMIHN0cnVjdCBldl9sb29wICpl dl9kZWZhdWx0X2xvb3BfcHRyOwrCoCNlbmRpZgrCoArCoEVWX0lOTElORSBzdHJ1Y3QgZXZfbG9v cCAqCi1ldl9kZWZhdWx0X2xvb3BfdWNfICh2b2lkKSBFVl9USFJPVworZXZfZGVmYXVsdF9sb29w X3VjXyAodm9pZCkgRVZfTk9FWENFUFQKwqB7CsKgIMKgZXh0ZXJuIHN0cnVjdCBldl9sb29wICpl dl9kZWZhdWx0X2xvb3BfcHRyOwrCoApAQCAtNTc1LDM5ICs1NzUsMzkgQEAgZXZfZGVmYXVsdF9s b29wX3VjXyAodm9pZCkgRVZfVEhST1cKwqB9CsKgCsKgRVZfSU5MSU5FIGludAotZXZfaXNfZGVm YXVsdF9sb29wIChFVl9QKSBFVl9USFJPVworZXZfaXNfZGVmYXVsdF9sb29wIChFVl9QKSBFVl9O T0VYQ0VQVArCoHsKwqAgwqByZXR1cm4gRVZfQSA9PSBFVl9ERUZBVUxUX1VDOwrCoH0KwqAKwqAv KiBjcmVhdGUgYW5kIGRlc3Ryb3kgYWx0ZXJuYXRpdmUgbG9vcHMgdGhhdCBkb24ndCBoYW5kbGUg c2lnbmFscyAqLwotRVZfQVBJX0RFQ0wgc3RydWN0IGV2X2xvb3AgKmV2X2xvb3BfbmV3ICh1bnNp Z25lZCBpbnQgZmxhZ3MgRVZfQ1BQICg9IDApKSBFVl9USFJPVzsKK0VWX0FQSV9ERUNMIHN0cnVj dCBldl9sb29wICpldl9sb29wX25ldyAodW5zaWduZWQgaW50IGZsYWdzIEVWX0NQUCAoPSAwKSkg RVZfTk9FWENFUFQ7CsKgCi1FVl9BUElfREVDTCBldl90c3RhbXAgZXZfbm93IChFVl9QKSBFVl9U SFJPVzsgLyogdGltZSB3LnIudC4gdGltZXJzIGFuZCB0aGUgZXZlbnRsb29wLCB1cGRhdGVkIGFm dGVyIGVhY2ggcG9sbCAqLworRVZfQVBJX0RFQ0wgZXZfdHN0YW1wIGV2X25vdyAoRVZfUCkgRVZf Tk9FWENFUFQ7IC8qIHRpbWUgdy5yLnQuIHRpbWVycyBhbmQgdGhlIGV2ZW50bG9vcCwgdXBkYXRl ZCBhZnRlciBlYWNoIHBvbGwgKi8KwqAKwqAjZWxzZQrCoAotRVZfQVBJX0RFQ0wgaW50IGV2X2Rl ZmF1bHRfbG9vcCAodW5zaWduZWQgaW50IGZsYWdzIEVWX0NQUCAoPSAwKSkgRVZfVEhST1c7IC8q IHJldHVybnMgdHJ1ZSB3aGVuIHN1Y2Nlc3NmdWwgKi8KK0VWX0FQSV9ERUNMIGludCBldl9kZWZh dWx0X2xvb3AgKHVuc2lnbmVkIGludCBmbGFncyBFVl9DUFAgKD0gMCkpIEVWX05PRVhDRVBUOyAv KiByZXR1cm5zIHRydWUgd2hlbiBzdWNjZXNzZnVsICovCsKgCsKgRVZfQVBJX0RFQ0wgZXZfdHN0 YW1wIGV2X3J0X25vdzsKwqAKwqBFVl9JTkxJTkUgZXZfdHN0YW1wCi1ldl9ub3cgKHZvaWQpIEVW X1RIUk9XCitldl9ub3cgKHZvaWQpIEVWX05PRVhDRVBUCsKgewrCoCDCoHJldHVybiBldl9ydF9u b3c7CsKgfQrCoArCoC8qIGxvb2tzIHdlaXJkLCBidXQgZXZfaXNfZGVmYXVsdF9sb29wIChFVl9B KSBzdGlsbCB3b3JrcyBpZiB0aGlzIGV4aXN0cyAqLwrCoEVWX0lOTElORSBpbnQKLWV2X2lzX2Rl ZmF1bHRfbG9vcCAodm9pZCkgRVZfVEhST1cKK2V2X2lzX2RlZmF1bHRfbG9vcCAodm9pZCkgRVZf Tk9FWENFUFQKwqB7CsKgIMKgcmV0dXJuIDE7CsKgfQrCoArCoCNlbmRpZiAvKiBtdWx0aXBsaWNp dHkgKi8KwqAKLUVWX0FQSV9ERUNMIGV2X3RzdGFtcCBldl9tb25vdG9uaWNfdGltZSAodm9pZCkg RVZfVEhST1c7Ci1FVl9BUElfREVDTCBldl90c3RhbXAgZXZfbW9ub3RvbmljX25vdyAoRVZfUCkg RVZfVEhST1c7CitFVl9BUElfREVDTCBldl90c3RhbXAgZXZfbW9ub3RvbmljX3RpbWUgKHZvaWQp IEVWX05PRVhDRVBUOworRVZfQVBJX0RFQ0wgZXZfdHN0YW1wIGV2X21vbm90b25pY19ub3cgKEVW X1ApIEVWX05PRVhDRVBUOwrCoArCoC8qIGRlc3Ryb3kgZXZlbnQgbG9vcHMsIGFsc28gd29ya3Mg Zm9yIHRoZSBkZWZhdWx0IGxvb3AgKi8KwqBFVl9BUElfREVDTCB2b2lkIGV2X2xvb3BfZGVzdHJv eSAoRVZfUCk7CkBAIC02MTYsMTcgKzYxNiwxNyBAQCBFVl9BUElfREVDTCB2b2lkIGV2X2xvb3Bf ZGVzdHJveSAoRVZfUCk7CsKgLyogd2hlbiB5b3Ugd2FudCB0byByZS11c2UgaXQgaW4gdGhlIGNo aWxkICovCsKgLyogeW91IGNhbiBjYWxsIGl0IGluIGVpdGhlciB0aGUgcGFyZW50IG9yIHRoZSBj aGlsZCAqLwrCoC8qIHlvdSBjYW4gYWN0dWFsbHkgY2FsbCBpdCBhdCBhbnkgdGltZSwgYW55d2hl cmUgOikgKi8KLUVWX0FQSV9ERUNMIHZvaWQgZXZfbG9vcF9mb3JrIChFVl9QKSBFVl9USFJPVzsK K0VWX0FQSV9ERUNMIHZvaWQgZXZfbG9vcF9mb3JrIChFVl9QKSBFVl9OT0VYQ0VQVDsKwqAKLUVW X0FQSV9ERUNMIHVuc2lnbmVkIGludCBldl9iYWNrZW5kIChFVl9QKSBFVl9USFJPVzsgLyogYmFj a2VuZCBpbiB1c2UgYnkgbG9vcCAqLworRVZfQVBJX0RFQ0wgdW5zaWduZWQgaW50IGV2X2JhY2tl bmQgKEVWX1ApIEVWX05PRVhDRVBUOyAvKiBiYWNrZW5kIGluIHVzZSBieSBsb29wICovCsKgCi1F Vl9BUElfREVDTCB2b2lkIGV2X25vd191cGRhdGUgKEVWX1ApIEVWX1RIUk9XOyAvKiB1cGRhdGUg ZXZlbnQgbG9vcCB0aW1lICovCitFVl9BUElfREVDTCB2b2lkIGV2X25vd191cGRhdGUgKEVWX1Ap IEVWX05PRVhDRVBUOyAvKiB1cGRhdGUgZXZlbnQgbG9vcCB0aW1lICovCsKgCsKgI2lmIEVWX1dB TEtfRU5BQkxFCsKgLyogd2FsayAoYWxtb3N0KSBhbGwgd2F0Y2hlcnMgaW4gdGhlIGxvb3Agb2Yg YSBnaXZlbiB0eXBlLCBpbnZva2luZyB0aGUgKi8KwqAvKiBjYWxsYmFjayBvbiBldmVyeSBzdWNo IHdhdGNoZXIuIFRoZSBjYWxsYmFjayBtaWdodCBzdG9wIHRoZSB3YXRjaGVyLCAqLwrCoC8qIGJ1 dCBkbyBub3RoaW5nIGVsc2Ugd2l0aCB0aGUgbG9vcCAqLwotRVZfQVBJX0RFQ0wgdm9pZCBldl93 YWxrIChFVl9QXyBpbnQgdHlwZXMsIHZvaWQgKCpjYikoRVZfUF8gaW50IHR5cGUsIHZvaWQgKncp KSBFVl9USFJPVzsKK0VWX0FQSV9ERUNMIHZvaWQgZXZfd2FsayAoRVZfUF8gaW50IHR5cGVzLCB2 b2lkICgqY2IpKEVWX1BfIGludCB0eXBlLCB2b2lkICp3KSkgRVZfTk9FWENFUFQ7CsKgI2VuZGlm CsKgCsKgI2VuZGlmIC8qIHByb3RvdHlwZXMgKi8KQEAgLTY0Niw0NiArNjQ2LDQ3IEBAIGVudW0g ewrCoArCoCNpZiBFVl9QUk9UT1RZUEVTCsKgRVZfQVBJX0RFQ0wgaW50IMKgZXZfcnVuIChFVl9Q XyBpbnQgZmxhZ3MgRVZfQ1BQICg9IDApKTsKLUVWX0FQSV9ERUNMIHZvaWQgZXZfYnJlYWsgKEVW X1BfIGludCBob3cgRVZfQ1BQICg9IEVWQlJFQUtfT05FKSkgRVZfVEhST1c7IC8qIGJyZWFrIG91 dCBvZiB0aGUgbG9vcCAqLworRVZfQVBJX0RFQ0wgdm9pZCBldl9icmVhayAoRVZfUF8gaW50IGhv dyBFVl9DUFAgKD0gRVZCUkVBS19PTkUpKSBFVl9OT0VYQ0VQVDsgLyogYnJlYWsgb3V0IG9mIHRo ZSBsb29wICovCsKgCsKgLyoKwqAgKiByZWYvdW5yZWYgY2FuIGJlIHVzZWQgdG8gYWRkIG9yIHJl bW92ZSBhIHJlZmNvdW50IG9uIHRoZSBtYWlubG9vcC4gZXZlcnkgd2F0Y2hlcgrCoCAqIGtlZXBz IG9uZSByZWZlcmVuY2UuIGlmIHlvdSBoYXZlIGEgbG9uZy1ydW5uaW5nIHdhdGNoZXIgeW91IG5l dmVyIHVucmVnaXN0ZXIgdGhhdArCoCAqIHNob3VsZCBub3Qga2VlcCBldl9sb29wIGZyb20gcnVu bmluZywgdW5yZWYoKSBhZnRlciBzdGFydGluZywgYW5kIHJlZigpIGJlZm9yZSBzdG9wcGluZy4K wqAgKi8KLUVWX0FQSV9ERUNMIHZvaWQgZXZfcmVmIMKgIChFVl9QKSBFVl9USFJPVzsKLUVWX0FQ SV9ERUNMIHZvaWQgZXZfdW5yZWYgKEVWX1ApIEVWX1RIUk9XOworRVZfQVBJX0RFQ0wgdm9pZCBl dl9yZWYgwqAgKEVWX1ApIEVWX05PRVhDRVBUOworRVZfQVBJX0RFQ0wgdm9pZCBldl91bnJlZiAo RVZfUCkgRVZfTk9FWENFUFQ7CsKgCsKgLyoKwqAgKiBjb252ZW5pZW5jZSBmdW5jdGlvbiwgd2Fp dCBmb3IgYSBzaW5nbGUgZXZlbnQsIHdpdGhvdXQgcmVnaXN0ZXJpbmcgYW4gZXZlbnQgd2F0Y2hl cgrCoCAqIGlmIHRpbWVvdXQgaXMgPCAwLCBkbyB3YWl0IGluZGVmaW5pdGVseQrCoCAqLwotRVZf QVBJX0RFQ0wgdm9pZCBldl9vbmNlIChFVl9QXyBpbnQgZmQsIGludCBldmVudHMsIGV2X3RzdGFt cCB0aW1lb3V0LCB2b2lkICgqY2IpKGludCByZXZlbnRzLCB2b2lkICphcmcpLCB2b2lkICphcmcp IEVWX1RIUk9XOworRVZfQVBJX0RFQ0wgdm9pZCBldl9vbmNlIChFVl9QXyBpbnQgZmQsIGludCBl dmVudHMsIGV2X3RzdGFtcCB0aW1lb3V0LCB2b2lkICgqY2IpKGludCByZXZlbnRzLCB2b2lkICph cmcpLCB2b2lkICphcmcpIEVWX05PRVhDRVBUOworCitFVl9BUElfREVDTCB2b2lkIGV2X2ludm9r ZV9wZW5kaW5nIChFVl9QKTsgLyogaW52b2tlIGFsbCBwZW5kaW5nIHdhdGNoZXJzICovCsKgCsKg IyBpZiBFVl9GRUFUVVJFX0FQSQotRVZfQVBJX0RFQ0wgdW5zaWduZWQgaW50IGV2X2l0ZXJhdGlv biAoRVZfUCkgRVZfVEhST1c7IC8qIG51bWJlciBvZiBsb29wIGl0ZXJhdGlvbnMgKi8KLUVWX0FQ SV9ERUNMIHVuc2lnbmVkIGludCBldl9kZXB0aCDCoCDCoCAoRVZfUCkgRVZfVEhST1c7IC8qICNl dl9sb29wIGVudGVycyAtICNldl9sb29wIGxlYXZlcyAqLwotRVZfQVBJX0RFQ0wgdm9pZCDCoCDC oCDCoCDCoCBldl92ZXJpZnkgwqAgwqAoRVZfUCkgRVZfVEhST1c7IC8qIGFib3J0IGlmIGxvb3Ag ZGF0YSBjb3JydXB0ZWQgKi8KK0VWX0FQSV9ERUNMIHVuc2lnbmVkIGludCBldl9pdGVyYXRpb24g KEVWX1ApIEVWX05PRVhDRVBUOyAvKiBudW1iZXIgb2YgbG9vcCBpdGVyYXRpb25zICovCitFVl9B UElfREVDTCB1bnNpZ25lZCBpbnQgZXZfZGVwdGggwqAgwqAgKEVWX1ApIEVWX05PRVhDRVBUOyAv KiAjZXZfbG9vcCBlbnRlcnMgLSAjZXZfbG9vcCBsZWF2ZXMgKi8KK0VWX0FQSV9ERUNMIHZvaWQg wqAgwqAgwqAgwqAgZXZfdmVyaWZ5IMKgIMKgKEVWX1ApIEVWX05PRVhDRVBUOyAvKiBhYm9ydCBp ZiBsb29wIGRhdGEgY29ycnVwdGVkICovCsKgCi1FVl9BUElfREVDTCB2b2lkIGV2X3NldF9pb19j b2xsZWN0X2ludGVydmFsIChFVl9QXyBldl90c3RhbXAgaW50ZXJ2YWwpIEVWX1RIUk9XOyAvKiBz bGVlcCBhdCBsZWFzdCB0aGlzIHRpbWUsIGRlZmF1bHQgMCAqLwotRVZfQVBJX0RFQ0wgdm9pZCBl dl9zZXRfdGltZW91dF9jb2xsZWN0X2ludGVydmFsIChFVl9QXyBldl90c3RhbXAgaW50ZXJ2YWwp IEVWX1RIUk9XOyAvKiBzbGVlcCBhdCBsZWFzdCB0aGlzIHRpbWUsIGRlZmF1bHQgMCAqLworRVZf QVBJX0RFQ0wgdm9pZCBldl9zZXRfaW9fY29sbGVjdF9pbnRlcnZhbCAoRVZfUF8gZXZfdHN0YW1w IGludGVydmFsKSBFVl9OT0VYQ0VQVDsgLyogc2xlZXAgYXQgbGVhc3QgdGhpcyB0aW1lLCBkZWZh dWx0IDAgKi8KK0VWX0FQSV9ERUNMIHZvaWQgZXZfc2V0X3RpbWVvdXRfY29sbGVjdF9pbnRlcnZh bCAoRVZfUF8gZXZfdHN0YW1wIGludGVydmFsKSBFVl9OT0VYQ0VQVDsgLyogc2xlZXAgYXQgbGVh c3QgdGhpcyB0aW1lLCBkZWZhdWx0IDAgKi8KwqAKwqAvKiBhZHZhbmNlZCBzdHVmZiBmb3IgdGhy ZWFkaW5nIGV0Yy4gc3VwcG9ydCwgc2VlIGRvY3MgKi8KLUVWX0FQSV9ERUNMIHZvaWQgZXZfc2V0 X3VzZXJkYXRhIChFVl9QXyB2b2lkICpkYXRhKSBFVl9USFJPVzsKLUVWX0FQSV9ERUNMIHZvaWQg KmV2X3VzZXJkYXRhIChFVl9QKSBFVl9USFJPVzsKK0VWX0FQSV9ERUNMIHZvaWQgZXZfc2V0X3Vz ZXJkYXRhIChFVl9QXyB2b2lkICpkYXRhKSBFVl9OT0VYQ0VQVDsKK0VWX0FQSV9ERUNMIHZvaWQg KmV2X3VzZXJkYXRhIChFVl9QKSBFVl9OT0VYQ0VQVDsKwqB0eXBlZGVmIHZvaWQgKCpldl9sb29w X2NhbGxiYWNrKShFVl9QKTsKLUVWX0FQSV9ERUNMIHZvaWQgZXZfc2V0X2ludm9rZV9wZW5kaW5n X2NiIChFVl9QXyBldl9sb29wX2NhbGxiYWNrIGludm9rZV9wZW5kaW5nX2NiKSBFVl9USFJPVzsK K0VWX0FQSV9ERUNMIHZvaWQgZXZfc2V0X2ludm9rZV9wZW5kaW5nX2NiIChFVl9QXyBldl9sb29w X2NhbGxiYWNrIGludm9rZV9wZW5kaW5nX2NiKSBFVl9OT0VYQ0VQVDsKwqAvKiBDKysgZG9lc24n dCBhbGxvdyB0aGUgdXNlIG9mIHRoZSBldl9sb29wX2NhbGxiYWNrIHR5cGVkZWYgaGVyZSwgc28g d2UgbmVlZCB0byBzcGVsbCBpdCBvdXQgKi8KLUVWX0FQSV9ERUNMIHZvaWQgZXZfc2V0X2xvb3Bf cmVsZWFzZV9jYiAoRVZfUF8gdm9pZCAoKnJlbGVhc2UpKEVWX1ApIEVWX1RIUk9XLCB2b2lkICgq YWNxdWlyZSkoRVZfUCkgRVZfVEhST1cpIEVWX1RIUk9XOworRVZfQVBJX0RFQ0wgdm9pZCBldl9z ZXRfbG9vcF9yZWxlYXNlX2NiIChFVl9QXyB2b2lkICgqcmVsZWFzZSkoRVZfUCkgRVZfTk9FWENF UFQsIHZvaWQgKCphY3F1aXJlKShFVl9QKSBFVl9OT0VYQ0VQVCkgRVZfTk9FWENFUFQ7CsKgCi1F Vl9BUElfREVDTCB1bnNpZ25lZCBpbnQgZXZfcGVuZGluZ19jb3VudCAoRVZfUCkgRVZfVEhST1c7 IC8qIG51bWJlciBvZiBwZW5kaW5nIGV2ZW50cywgaWYgYW55ICovCi1FVl9BUElfREVDTCB2b2lk IGV2X2ludm9rZV9wZW5kaW5nIChFVl9QKTsgLyogaW52b2tlIGFsbCBwZW5kaW5nIHdhdGNoZXJz ICovCitFVl9BUElfREVDTCB1bnNpZ25lZCBpbnQgZXZfcGVuZGluZ19jb3VudCAoRVZfUCkgRVZf Tk9FWENFUFQ7IC8qIG51bWJlciBvZiBwZW5kaW5nIGV2ZW50cywgaWYgYW55ICovCsKgCsKgLyoK wqAgKiBzdG9wL3N0YXJ0IHRoZSB0aW1lciBoYW5kbGluZy4KwqAgKi8KLUVWX0FQSV9ERUNMIHZv aWQgZXZfc3VzcGVuZCAoRVZfUCkgRVZfVEhST1c7Ci1FVl9BUElfREVDTCB2b2lkIGV2X3Jlc3Vt ZSDCoChFVl9QKSBFVl9USFJPVzsKK0VWX0FQSV9ERUNMIHZvaWQgZXZfc3VzcGVuZCAoRVZfUCkg RVZfTk9FWENFUFQ7CitFVl9BUElfREVDTCB2b2lkIGV2X3Jlc3VtZSDCoChFVl9QKSBFVl9OT0VY Q0VQVDsKwqAjZW5kaWYKwqAKwqAjZW5kaWYKQEAgLTY5OSw2ICs3MDAsNyBAQCBFVl9BUElfREVD TCB2b2lkIGV2X3Jlc3VtZSDCoChFVl9QKSBFVl9USFJPVzsKwqAgwqBldl9zZXRfY2IgKChldiks IGNiXyk7IMKgIMKgIMKgIMKgIMKgIMKgXArCoH0gd2hpbGUgKDApCsKgCisjZGVmaW5lIGV2X2lv X21vZGlmeShldixldmVudHNfKSDCoCDCoCDCoCDCoCDCoCDCoCBkbyB7IChldiktPmV2ZW50cyA9 IChldiktPmV2ZW50cyAmIEVWX19JT0ZEU0VUIHwgKGV2ZW50c18pOyB9IHdoaWxlICgwKQrCoCNk ZWZpbmUgZXZfaW9fc2V0KGV2LGZkXyxldmVudHNfKSDCoCDCoCDCoCDCoCDCoCDCoGRvIHsgKGV2 KS0+ZmQgPSAoZmRfKTsgKGV2KS0+ZXZlbnRzID0gKGV2ZW50c18pIHwgRVZfX0lPRkRTRVQ7IH0g d2hpbGUgKDApCsKgI2RlZmluZSBldl90aW1lcl9zZXQoZXYsYWZ0ZXJfLHJlcGVhdF8pIMKgIMKg IMKgZG8geyAoKGV2X3dhdGNoZXJfdGltZSAqKShldikpLT5hdCA9IChhZnRlcl8pOyAoZXYpLT5y ZXBlYXQgPSAocmVwZWF0Xyk7IH0gd2hpbGUgKDApCsKgI2RlZmluZSBldl9wZXJpb2RpY19zZXQo ZXYsb2ZzXyxpdmFsXyxyY2JfKSDCoGRvIHsgKGV2KS0+b2Zmc2V0ID0gKG9mc18pOyAoZXYpLT5p bnRlcnZhbCA9IChpdmFsXyk7IChldiktPnJlc2NoZWR1bGVfY2IgPSAocmNiXyk7IH0gd2hpbGUg KDApCkBAIC03NDQsNiArNzQ2LDcgQEAgRVZfQVBJX0RFQ0wgdm9pZCBldl9yZXN1bWUgwqAoRVZf UCkgRVZfVEhST1c7CsKgI2RlZmluZSBldl9wZXJpb2RpY19hdChldikgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgKCsoKGV2X3dhdGNoZXJfdGltZSAqKShldikpLT5hdCkKwqAKwqAjaWZuZGVm IGV2X3NldF9jYgorLyogbWVtbW92ZSBpcyB1c2VkIGhlcmUgdG8gYXZvaWQgc3RyaWN0IGFsaWFz aW5nIHZpb2xhdGlvbnMsIGFuZCBob3BlZnVsbHkgaXMgb3B0aW1pemVkIG91dCBieSBhbnkgcmVh c29uYWJsZSBjb21waWxlciAqLwrCoCMgZGVmaW5lIGV2X3NldF9jYihldixjYl8pIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIChldl9jYl8gKGV2KSA9IChjYl8pLCBtZW1tb3ZlICgmKChldl93 YXRjaGVyICopKGV2KSktPmNiLCAmZXZfY2JfIChldiksIHNpemVvZiAoZXZfY2JfIChldikpKSkK wqAjZW5kaWYKwqAKQEAgLTc1MywxOCArNzU2LDE4IEBAIEVWX0FQSV9ERUNMIHZvaWQgZXZfcmVz dW1lIMKgKEVWX1ApIEVWX1RIUk9XOwrCoArCoC8qIGZlZWRzIGFuIGV2ZW50IGludG8gYSB3YXRj aGVyIGFzIGlmIHRoZSBldmVudCBhY3R1YWxseSBvY2N1cnJlZCAqLwrCoC8qIGFjY2VwdHMgYW55 IGV2X3dhdGNoZXIgdHlwZSAqLwotRVZfQVBJX0RFQ0wgaW50IMKgZXZfYWN0aXZlY250IMKgIMKg IMKgKEVWX1ApIEVWX1RIUk9XOwotRVZfQVBJX0RFQ0wgdm9pZCBldl9mZWVkX2V2ZW50IMKgIMKg IChFVl9QXyB2b2lkICp3LCBpbnQgcmV2ZW50cykgRVZfVEhST1c7Ci1FVl9BUElfREVDTCB2b2lk IGV2X2ZlZWRfZmRfZXZlbnQgwqAoRVZfUF8gaW50IGZkLCBpbnQgcmV2ZW50cykgRVZfVEhST1c7 CitFVl9BUElfREVDTCBpbnQgwqBldl9hY3RpdmVjbnQgwqAgwqAgwqAoRVZfUCkgRVZfTk9FWENF UFQ7CitFVl9BUElfREVDTCB2b2lkIGV2X2ZlZWRfZXZlbnQgwqAgwqAgKEVWX1BfIHZvaWQgKncs IGludCByZXZlbnRzKSBFVl9OT0VYQ0VQVDsKK0VWX0FQSV9ERUNMIHZvaWQgZXZfZmVlZF9mZF9l dmVudCDCoChFVl9QXyBpbnQgZmQsIGludCByZXZlbnRzKSBFVl9OT0VYQ0VQVDsKwqAjaWYgRVZf U0lHTkFMX0VOQUJMRQotRVZfQVBJX0RFQ0wgdm9pZCBldl9mZWVkX3NpZ25hbCDCoCDCoChpbnQg c2lnbnVtKSBFVl9USFJPVzsKLUVWX0FQSV9ERUNMIHZvaWQgZXZfZmVlZF9zaWduYWxfZXZlbnQg KEVWX1BfIGludCBzaWdudW0pIEVWX1RIUk9XOworRVZfQVBJX0RFQ0wgdm9pZCBldl9mZWVkX3Np Z25hbCDCoCDCoChpbnQgc2lnbnVtKSBFVl9OT0VYQ0VQVDsKK0VWX0FQSV9ERUNMIHZvaWQgZXZf ZmVlZF9zaWduYWxfZXZlbnQgKEVWX1BfIGludCBzaWdudW0pIEVWX05PRVhDRVBUOwrCoCNlbmRp ZgrCoEVWX0FQSV9ERUNMIHZvaWQgZXZfaW52b2tlIMKgIMKgIMKgIMKgIChFVl9QXyB2b2lkICp3 LCBpbnQgcmV2ZW50cyk7Ci1FVl9BUElfREVDTCBpbnQgwqBldl9jbGVhcl9wZW5kaW5nIMKgKEVW X1BfIHZvaWQgKncpIEVWX1RIUk9XOworRVZfQVBJX0RFQ0wgaW50IMKgZXZfY2xlYXJfcGVuZGlu ZyDCoChFVl9QXyB2b2lkICp3KSBFVl9OT0VYQ0VQVDsKwqAKLUVWX0FQSV9ERUNMIHZvaWQgZXZf aW9fc3RhcnQgwqAgwqAgwqAgKEVWX1BfIGV2X2lvICp3KSBFVl9USFJPVzsKLUVWX0FQSV9ERUNM IHZvaWQgZXZfaW9fc3RvcCDCoCDCoCDCoCDCoChFVl9QXyBldl9pbyAqdykgRVZfVEhST1c7CitF Vl9BUElfREVDTCB2b2lkIGV2X2lvX3N0YXJ0IMKgIMKgIMKgIChFVl9QXyBldl9pbyAqdykgRVZf Tk9FWENFUFQ7CitFVl9BUElfREVDTCB2b2lkIGV2X2lvX3N0b3AgwqAgwqAgwqAgwqAoRVZfUF8g ZXZfaW8gKncpIEVWX05PRVhDRVBUOwrCoArCoC8qCsKgICogRmQgaXMgYWJvdXQgdG8gY2xvc2Uu IE1ha2Ugc3VyZSB0aGF0IGxpYmV2IHdvbid0IGRvIGFueXRoaW5nIGZ1bm55CkBAIC03NzIsNzUg Kzc3NSw3NSBAQCBFVl9BUElfREVDTCB2b2lkIGV2X2lvX3N0b3AgwqAgwqAgwqAgwqAoRVZfUF8g ZXZfaW8gKncpIEVWX1RIUk9XOwrCoCAqIHByaW9yIHRvIGNsb3NlKCkuCsKgICogTm90ZTogaWYg ZmQgd2FzIHJldXNlZCBhbmQgYWRkZWQgYWdhaW4gaXQganVzdCB3b3Jrcy4KwqAgKi8KLUVWX0FQ SV9ERUNMIHZvaWQgZXZfaW9fY2xvc2luZyDCoCDCoCAoRVZfUF8gaW50IGZkLCBpbnQgcmV2ZW50 cykgRVZfVEhST1c7CitFVl9BUElfREVDTCB2b2lkIGV2X2lvX2Nsb3NpbmcgwqAgwqAgKEVWX1Bf IGludCBmZCwgaW50IHJldmVudHMpIEVWX05PRVhDRVBUOwrCoAotRVZfQVBJX0RFQ0wgdm9pZCBl dl90aW1lcl9zdGFydCDCoCDCoChFVl9QXyBldl90aW1lciAqdykgRVZfVEhST1c7Ci1FVl9BUElf REVDTCB2b2lkIGV2X3RpbWVyX3N0b3AgwqAgwqAgKEVWX1BfIGV2X3RpbWVyICp3KSBFVl9USFJP VzsKK0VWX0FQSV9ERUNMIHZvaWQgZXZfdGltZXJfc3RhcnQgwqAgwqAoRVZfUF8gZXZfdGltZXIg KncpIEVWX05PRVhDRVBUOworRVZfQVBJX0RFQ0wgdm9pZCBldl90aW1lcl9zdG9wIMKgIMKgIChF Vl9QXyBldl90aW1lciAqdykgRVZfTk9FWENFUFQ7CsKgLyogc3RvcHMgaWYgYWN0aXZlIGFuZCBu byByZXBlYXQsIHJlc3RhcnRzIGlmIGFjdGl2ZSBhbmQgcmVwZWF0aW5nLCBzdGFydHMgaWYgaW5h Y3RpdmUgYW5kIHJlcGVhdGluZyAqLwotRVZfQVBJX0RFQ0wgdm9pZCBldl90aW1lcl9hZ2FpbiDC oCDCoChFVl9QXyBldl90aW1lciAqdykgRVZfVEhST1c7CitFVl9BUElfREVDTCB2b2lkIGV2X3Rp bWVyX2FnYWluIMKgIMKgKEVWX1BfIGV2X3RpbWVyICp3KSBFVl9OT0VYQ0VQVDsKwqAvKiByZXR1 cm4gcmVtYWluaW5nIHRpbWUgKi8KLUVWX0FQSV9ERUNMIGV2X3RzdGFtcCBldl90aW1lcl9yZW1h aW5pbmcgKEVWX1BfIGV2X3RpbWVyICp3KSBFVl9USFJPVzsKK0VWX0FQSV9ERUNMIGV2X3RzdGFt cCBldl90aW1lcl9yZW1haW5pbmcgKEVWX1BfIGV2X3RpbWVyICp3KSBFVl9OT0VYQ0VQVDsKwqAK wqAjaWYgRVZfUEVSSU9ESUNfRU5BQkxFCi1FVl9BUElfREVDTCB2b2lkIGV2X3BlcmlvZGljX3N0 YXJ0IChFVl9QXyBldl9wZXJpb2RpYyAqdykgRVZfVEhST1c7Ci1FVl9BUElfREVDTCB2b2lkIGV2 X3BlcmlvZGljX3N0b3AgwqAoRVZfUF8gZXZfcGVyaW9kaWMgKncpIEVWX1RIUk9XOwotRVZfQVBJ X0RFQ0wgdm9pZCBldl9wZXJpb2RpY19hZ2FpbiAoRVZfUF8gZXZfcGVyaW9kaWMgKncpIEVWX1RI Uk9XOworRVZfQVBJX0RFQ0wgdm9pZCBldl9wZXJpb2RpY19zdGFydCAoRVZfUF8gZXZfcGVyaW9k aWMgKncpIEVWX05PRVhDRVBUOworRVZfQVBJX0RFQ0wgdm9pZCBldl9wZXJpb2RpY19zdG9wIMKg KEVWX1BfIGV2X3BlcmlvZGljICp3KSBFVl9OT0VYQ0VQVDsKK0VWX0FQSV9ERUNMIHZvaWQgZXZf cGVyaW9kaWNfYWdhaW4gKEVWX1BfIGV2X3BlcmlvZGljICp3KSBFVl9OT0VYQ0VQVDsKwqAjZW5k aWYKwqAKwqAvKiBvbmx5IHN1cHBvcnRlZCBpbiB0aGUgZGVmYXVsdCBsb29wICovCsKgI2lmIEVW X1NJR05BTF9FTkFCTEUKLUVWX0FQSV9ERUNMIHZvaWQgZXZfc2lnbmFsX3N0YXJ0IMKgIChFVl9Q XyBldl9zaWduYWwgKncpIEVWX1RIUk9XOwotRVZfQVBJX0RFQ0wgdm9pZCBldl9zaWduYWxfc3Rv cCDCoCDCoChFVl9QXyBldl9zaWduYWwgKncpIEVWX1RIUk9XOworRVZfQVBJX0RFQ0wgdm9pZCBl dl9zaWduYWxfc3RhcnQgwqAgKEVWX1BfIGV2X3NpZ25hbCAqdykgRVZfTk9FWENFUFQ7CitFVl9B UElfREVDTCB2b2lkIGV2X3NpZ25hbF9zdG9wIMKgIMKgKEVWX1BfIGV2X3NpZ25hbCAqdykgRVZf Tk9FWENFUFQ7CsKgI2VuZGlmCsKgCsKgLyogb25seSBzdXBwb3J0ZWQgaW4gdGhlIGRlZmF1bHQg bG9vcCAqLwrCoCMgaWYgRVZfQ0hJTERfRU5BQkxFCi1FVl9BUElfREVDTCB2b2lkIGV2X2NoaWxk X3N0YXJ0IMKgIMKgKEVWX1BfIGV2X2NoaWxkICp3KSBFVl9USFJPVzsKLUVWX0FQSV9ERUNMIHZv aWQgZXZfY2hpbGRfc3RvcCDCoCDCoCAoRVZfUF8gZXZfY2hpbGQgKncpIEVWX1RIUk9XOworRVZf QVBJX0RFQ0wgdm9pZCBldl9jaGlsZF9zdGFydCDCoCDCoChFVl9QXyBldl9jaGlsZCAqdykgRVZf Tk9FWENFUFQ7CitFVl9BUElfREVDTCB2b2lkIGV2X2NoaWxkX3N0b3AgwqAgwqAgKEVWX1BfIGV2 X2NoaWxkICp3KSBFVl9OT0VYQ0VQVDsKwqAjIGVuZGlmCsKgCsKgIyBpZiBFVl9TVEFUX0VOQUJM RQotRVZfQVBJX0RFQ0wgdm9pZCBldl9zdGF0X3N0YXJ0IMKgIMKgIChFVl9QXyBldl9zdGF0ICp3 KSBFVl9USFJPVzsKLUVWX0FQSV9ERUNMIHZvaWQgZXZfc3RhdF9zdG9wIMKgIMKgIMKgKEVWX1Bf IGV2X3N0YXQgKncpIEVWX1RIUk9XOwotRVZfQVBJX0RFQ0wgdm9pZCBldl9zdGF0X3N0YXQgwqAg wqAgwqAoRVZfUF8gZXZfc3RhdCAqdykgRVZfVEhST1c7CitFVl9BUElfREVDTCB2b2lkIGV2X3N0 YXRfc3RhcnQgwqAgwqAgKEVWX1BfIGV2X3N0YXQgKncpIEVWX05PRVhDRVBUOworRVZfQVBJX0RF Q0wgdm9pZCBldl9zdGF0X3N0b3AgwqAgwqAgwqAoRVZfUF8gZXZfc3RhdCAqdykgRVZfTk9FWENF UFQ7CitFVl9BUElfREVDTCB2b2lkIGV2X3N0YXRfc3RhdCDCoCDCoCDCoChFVl9QXyBldl9zdGF0 ICp3KSBFVl9OT0VYQ0VQVDsKwqAjIGVuZGlmCsKgCsKgIyBpZiBFVl9JRExFX0VOQUJMRQotRVZf QVBJX0RFQ0wgdm9pZCBldl9pZGxlX3N0YXJ0IMKgIMKgIChFVl9QXyBldl9pZGxlICp3KSBFVl9U SFJPVzsKLUVWX0FQSV9ERUNMIHZvaWQgZXZfaWRsZV9zdG9wIMKgIMKgIMKgKEVWX1BfIGV2X2lk bGUgKncpIEVWX1RIUk9XOworRVZfQVBJX0RFQ0wgdm9pZCBldl9pZGxlX3N0YXJ0IMKgIMKgIChF Vl9QXyBldl9pZGxlICp3KSBFVl9OT0VYQ0VQVDsKK0VWX0FQSV9ERUNMIHZvaWQgZXZfaWRsZV9z dG9wIMKgIMKgIMKgKEVWX1BfIGV2X2lkbGUgKncpIEVWX05PRVhDRVBUOwrCoCMgZW5kaWYKwqAK wqAjaWYgRVZfUFJFUEFSRV9FTkFCTEUKLUVWX0FQSV9ERUNMIHZvaWQgZXZfcHJlcGFyZV9zdGFy dCDCoChFVl9QXyBldl9wcmVwYXJlICp3KSBFVl9USFJPVzsKLUVWX0FQSV9ERUNMIHZvaWQgZXZf cHJlcGFyZV9zdG9wIMKgIChFVl9QXyBldl9wcmVwYXJlICp3KSBFVl9USFJPVzsKK0VWX0FQSV9E RUNMIHZvaWQgZXZfcHJlcGFyZV9zdGFydCDCoChFVl9QXyBldl9wcmVwYXJlICp3KSBFVl9OT0VY Q0VQVDsKK0VWX0FQSV9ERUNMIHZvaWQgZXZfcHJlcGFyZV9zdG9wIMKgIChFVl9QXyBldl9wcmVw YXJlICp3KSBFVl9OT0VYQ0VQVDsKwqAjZW5kaWYKwqAKwqAjaWYgRVZfQ0hFQ0tfRU5BQkxFCi1F Vl9BUElfREVDTCB2b2lkIGV2X2NoZWNrX3N0YXJ0IMKgIMKgKEVWX1BfIGV2X2NoZWNrICp3KSBF Vl9USFJPVzsKLUVWX0FQSV9ERUNMIHZvaWQgZXZfY2hlY2tfc3RvcCDCoCDCoCAoRVZfUF8gZXZf Y2hlY2sgKncpIEVWX1RIUk9XOworRVZfQVBJX0RFQ0wgdm9pZCBldl9jaGVja19zdGFydCDCoCDC oChFVl9QXyBldl9jaGVjayAqdykgRVZfTk9FWENFUFQ7CitFVl9BUElfREVDTCB2b2lkIGV2X2No ZWNrX3N0b3AgwqAgwqAgKEVWX1BfIGV2X2NoZWNrICp3KSBFVl9OT0VYQ0VQVDsKwqAjZW5kaWYK wqAKwqAjIGlmIEVWX0ZPUktfRU5BQkxFCi1FVl9BUElfREVDTCB2b2lkIGV2X2Zvcmtfc3RhcnQg wqAgwqAgKEVWX1BfIGV2X2ZvcmsgKncpIEVWX1RIUk9XOwotRVZfQVBJX0RFQ0wgdm9pZCBldl9m b3JrX3N0b3AgwqAgwqAgwqAoRVZfUF8gZXZfZm9yayAqdykgRVZfVEhST1c7CitFVl9BUElfREVD TCB2b2lkIGV2X2Zvcmtfc3RhcnQgwqAgwqAgKEVWX1BfIGV2X2ZvcmsgKncpIEVWX05PRVhDRVBU OworRVZfQVBJX0RFQ0wgdm9pZCBldl9mb3JrX3N0b3AgwqAgwqAgwqAoRVZfUF8gZXZfZm9yayAq dykgRVZfTk9FWENFUFQ7CsKgIyBlbmRpZgrCoArCoCMgaWYgRVZfQ0xFQU5VUF9FTkFCTEUKLUVW X0FQSV9ERUNMIHZvaWQgZXZfY2xlYW51cF9zdGFydCDCoChFVl9QXyBldl9jbGVhbnVwICp3KSBF Vl9USFJPVzsKLUVWX0FQSV9ERUNMIHZvaWQgZXZfY2xlYW51cF9zdG9wIMKgIChFVl9QXyBldl9j bGVhbnVwICp3KSBFVl9USFJPVzsKK0VWX0FQSV9ERUNMIHZvaWQgZXZfY2xlYW51cF9zdGFydCDC oChFVl9QXyBldl9jbGVhbnVwICp3KSBFVl9OT0VYQ0VQVDsKK0VWX0FQSV9ERUNMIHZvaWQgZXZf Y2xlYW51cF9zdG9wIMKgIChFVl9QXyBldl9jbGVhbnVwICp3KSBFVl9OT0VYQ0VQVDsKwqAjIGVu ZGlmCsKgCsKgIyBpZiBFVl9FTUJFRF9FTkFCTEUKwqAvKiBvbmx5IHN1cHBvcnRlZCB3aGVuIGxv b3AgdG8gYmUgZW1iZWRkZWQgaXMgaW4gZmFjdCBlbWJlZGRhYmxlICovCi1FVl9BUElfREVDTCB2 b2lkIGV2X2VtYmVkX3N0YXJ0IMKgIMKgKEVWX1BfIGV2X2VtYmVkICp3KSBFVl9USFJPVzsKLUVW X0FQSV9ERUNMIHZvaWQgZXZfZW1iZWRfc3RvcCDCoCDCoCAoRVZfUF8gZXZfZW1iZWQgKncpIEVW X1RIUk9XOwotRVZfQVBJX0RFQ0wgdm9pZCBldl9lbWJlZF9zd2VlcCDCoCDCoChFVl9QXyBldl9l bWJlZCAqdykgRVZfVEhST1c7CitFVl9BUElfREVDTCB2b2lkIGV2X2VtYmVkX3N0YXJ0IMKgIMKg KEVWX1BfIGV2X2VtYmVkICp3KSBFVl9OT0VYQ0VQVDsKK0VWX0FQSV9ERUNMIHZvaWQgZXZfZW1i ZWRfc3RvcCDCoCDCoCAoRVZfUF8gZXZfZW1iZWQgKncpIEVWX05PRVhDRVBUOworRVZfQVBJX0RF Q0wgdm9pZCBldl9lbWJlZF9zd2VlcCDCoCDCoChFVl9QXyBldl9lbWJlZCAqdykgRVZfTk9FWENF UFQ7CsKgIyBlbmRpZgrCoArCoCMgaWYgRVZfQVNZTkNfRU5BQkxFCi1FVl9BUElfREVDTCB2b2lk IGV2X2FzeW5jX3N0YXJ0IMKgIMKgKEVWX1BfIGV2X2FzeW5jICp3KSBFVl9USFJPVzsKLUVWX0FQ SV9ERUNMIHZvaWQgZXZfYXN5bmNfc3RvcCDCoCDCoCAoRVZfUF8gZXZfYXN5bmMgKncpIEVWX1RI Uk9XOwotRVZfQVBJX0RFQ0wgdm9pZCBldl9hc3luY19zZW5kIMKgIMKgIChFVl9QXyBldl9hc3lu YyAqdykgRVZfVEhST1c7CitFVl9BUElfREVDTCB2b2lkIGV2X2FzeW5jX3N0YXJ0IMKgIMKgKEVW X1BfIGV2X2FzeW5jICp3KSBFVl9OT0VYQ0VQVDsKK0VWX0FQSV9ERUNMIHZvaWQgZXZfYXN5bmNf c3RvcCDCoCDCoCAoRVZfUF8gZXZfYXN5bmMgKncpIEVWX05PRVhDRVBUOworRVZfQVBJX0RFQ0wg dm9pZCBldl9hc3luY19zZW5kIMKgIMKgIChFVl9QXyBldl9hc3luYyAqdykgRVZfTk9FWENFUFQ7 CsKgIyBlbmRpZgrCoArCoCNpZiBFVl9DT01QQVQzCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9s aWJldi9ldi5wb2QgYi90aGlyZF9wYXJ0eS9saWJldi9ldi5wb2QKaW5kZXggNjMzYjg3ZWE1Li5l NGVlYjUwNzMgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2LnBvZAorKysgYi90aGly ZF9wYXJ0eS9saWJldi9ldi5wb2QKQEAgLTEwNywxMCArMTA3LDEwIEBAIHdhdGNoZXIuCsKgCsKg PWhlYWQyIEZFQVRVUkVTCsKgCi1MaWJldiBzdXBwb3J0cyBDPHNlbGVjdD4sIEM8cG9sbD4sIHRo ZSBMaW51eC1zcGVjaWZpYyBDPGVwb2xsPiwgdGhlCi1CU0Qtc3BlY2lmaWMgQzxrcXVldWU+IGFu ZCB0aGUgU29sYXJpcy1zcGVjaWZpYyBldmVudCBwb3J0IG1lY2hhbmlzbXMKLWZvciBmaWxlIGRl c2NyaXB0b3IgZXZlbnRzIChDPGV2X2lvPiksIHRoZSBMaW51eCBDPGlub3RpZnk+IGludGVyZmFj ZQotKGZvciBDPGV2X3N0YXQ+KSwgTGludXggZXZlbnRmZC9zaWduYWxmZCAoZm9yIGZhc3RlciBh bmQgY2xlYW5lcgorTGliZXYgc3VwcG9ydHMgQzxzZWxlY3Q+LCBDPHBvbGw+LCB0aGUgTGludXgt c3BlY2lmaWMgYWlvIGFuZCBDPGVwb2xsPgoraW50ZXJmYWNlcywgdGhlIEJTRC1zcGVjaWZpYyBD PGtxdWV1ZT4gYW5kIHRoZSBTb2xhcmlzLXNwZWNpZmljIGV2ZW50IHBvcnQKK21lY2hhbmlzbXMg Zm9yIGZpbGUgZGVzY3JpcHRvciBldmVudHMgKEM8ZXZfaW8+KSwgdGhlIExpbnV4IEM8aW5vdGlm eT4KK2ludGVyZmFjZSAoZm9yIEM8ZXZfc3RhdD4pLCBMaW51eCBldmVudGZkL3NpZ25hbGZkIChm b3IgZmFzdGVyIGFuZCBjbGVhbmVyCsKgaW50ZXItdGhyZWFkIHdha2V1cCAoQzxldl9hc3luYz4p L3NpZ25hbCBoYW5kbGluZyAoQzxldl9zaWduYWw+KSkgcmVsYXRpdmUKwqB0aW1lcnMgKEM8ZXZf dGltZXI+KSwgYWJzb2x1dGUgdGltZXJzIHdpdGggY3VzdG9taXNlZCByZXNjaGVkdWxpbmcKwqAo Qzxldl9wZXJpb2RpYz4pLCBzeW5jaHJvbm91cyBzaWduYWxzIChDPGV2X3NpZ25hbD4pLCBwcm9j ZXNzIHN0YXR1cwpAQCAtMTYxLDkgKzE2MSwxMyBAQCBpdCB3aWxsIHByaW50IGEgZGlhZ25vc3Rp YyBtZXNzYWdlIGFuZCBhYm9ydCAodmlhIHRoZSBDPGFzc2VydD4gbWVjaGFuaXNtLArCoHNvIEM8 TkRFQlVHPiB3aWxsIGRpc2FibGUgdGhpcyBjaGVja2luZyk6IHRoZXNlIGFyZSBwcm9ncmFtbWlu ZyBlcnJvcnMgaW4KwqB0aGUgbGliZXYgY2FsbGVyIGFuZCBuZWVkIHRvIGJlIGZpeGVkIHRoZXJl LgrCoAotTGliZXYgYWxzbyBoYXMgYSBmZXcgaW50ZXJuYWwgZXJyb3ItY2hlY2tpbmcgQzxhc3Nl cnQ+aW9ucywgYW5kIGFsc28gaGFzCi1leHRlbnNpdmUgY29uc2lzdGVuY3kgY2hlY2tpbmcgY29k ZS4gVGhlc2UgZG8gbm90IHRyaWdnZXIgdW5kZXIgbm9ybWFsCi1jaXJjdW1zdGFuY2VzLCBhcyB0 aGV5IGluZGljYXRlIGVpdGhlciBhIGJ1ZyBpbiBsaWJldiBvciB3b3JzZS4KK1ZpYSB0aGUgQzxF Vl9GUkVRVUVOVD4gbWFjcm8geW91IGNhbiBjb21waWxlIGluIGFuZC9vciBlbmFibGUgZXh0ZW5z aXZlCitjb25zaXN0ZW5jeSBjaGVja2luZyBjb2RlIGluc2lkZSBsaWJldiB0aGF0IGNhbiBiZSB1 c2VkIHRvIGNoZWNrIGZvcgoraW50ZXJuYWwgaW5jb25zaXN0ZW5jaWVzLCBzdXVhbGx5IGNhdXNl ZCBieSBhcHBsaWNhdGlvbiBidWdzLgorCitMaWJldiBhbHNvIGhhcyBhIGZldyBpbnRlcm5hbCBl cnJvci1jaGVja2luZyBDPGFzc2VydD5pb25zLiBUaGVzZSBkbyBub3QKK3RyaWdnZXIgdW5kZXIg bm9ybWFsIGNpcmN1bXN0YW5jZXMsIGFzIHRoZXkgaW5kaWNhdGUgZWl0aGVyIGEgYnVnIGluIGxp YmV2CitvciB3b3JzZS4KwqAKwqAKwqA9aGVhZDEgR0xPQkFMIEZVTkNUSU9OUwpAQCAtMjY3LDEy ICsyNzEsMzIgQEAgWW91IGNvdWxkIG92ZXJyaWRlIHRoaXMgZnVuY3Rpb24gaW4gaGlnaC1hdmFp bGFiaWxpdHkgcHJvZ3JhbXMgdG8sIHNheSwKwqBmcmVlIHNvbWUgbWVtb3J5IGlmIGl0IGNhbm5v dCBhbGxvY2F0ZSBtZW1vcnksIHRvIHVzZSBhIHNwZWNpYWwgYWxsb2NhdG9yLArCoG9yIGV2ZW4g dG8gc2xlZXAgYSB3aGlsZSBhbmQgcmV0cnkgdW50aWwgc29tZSBtZW1vcnkgaXMgYXZhaWxhYmxl LgrCoAorRXhhbXBsZTogVGhlIGZvbGxvd2luZyBpcyB0aGUgQzxyZWFsbG9jPiBmdW5jdGlvbiB0 aGF0IGxpYmV2IGl0c2VsZiB1c2VzCit3aGljaCBzaG91bGQgd29yayB3aXRoIEM8cmVhbGxvYz4g YW5kIEM8ZnJlZT4gZnVuY3Rpb25zIG9mIGFsbCBraW5kcyBhbmQKK2lzIHByb2JhYmx5IGEgZ29v ZCBiYXNpcyBmb3IgeW91ciBvd24gaW1wbGVtZW50YXRpb24uCisKKyDCoCBzdGF0aWMgdm9pZCAq CisgwqAgZXZfcmVhbGxvY19lbXVsICh2b2lkICpwdHIsIGxvbmcgc2l6ZSkgRVZfTk9FWENFUFQK KyDCoCB7CisgwqAgwqAgaWYgKHNpemUpCisgwqAgwqAgwqAgcmV0dXJuIHJlYWxsb2MgKHB0ciwg c2l6ZSk7CisKKyDCoCDCoCBmcmVlIChwdHIpOworIMKgIMKgIHJldHVybiAwOworIMKgIH0KKwrC oEV4YW1wbGU6IFJlcGxhY2UgdGhlIGxpYmV2IGFsbG9jYXRvciB3aXRoIG9uZSB0aGF0IHdhaXRz IGEgYml0IGFuZCB0aGVuCi1yZXRyaWVzIChleGFtcGxlIHJlcXVpcmVzIGEgc3RhbmRhcmRzLWNv bXBsaWFudCBDPHJlYWxsb2M+KS4KK3JldHJpZXMuCsKgCsKgIMKgIHN0YXRpYyB2b2lkICoKwqAg wqAgcGVyc2lzdGVudF9yZWFsbG9jICh2b2lkICpwdHIsIHNpemVfdCBzaXplKQrCoCDCoCB7Cisg wqAgwqAgaWYgKCFzaXplKQorIMKgIMKgIMKgIHsKKyDCoCDCoCDCoCDCoCBmcmVlIChwdHIpOwor IMKgIMKgIMKgIMKgIHJldHVybiAwOworIMKgIMKgIMKgIH0KKwrCoCDCoCDCoCBmb3IgKDs7KQrC oCDCoCDCoCDCoCB7CsKgIMKgIMKgIMKgIMKgIHZvaWQgKm5ld3B0ciA9IHJlYWxsb2MgKHB0ciwg c2l6ZSk7CkBAIC00MTMsOSArNDM3LDEwIEBAIG1ha2UgbGliZXYgY2hlY2sgZm9yIGEgZm9yayBp biBlYWNoIGl0ZXJhdGlvbiBieSBlbmFibGluZyB0aGlzIGZsYWcuCsKgVGhpcyB3b3JrcyBieSBj YWxsaW5nIEM8Z2V0cGlkICgpPiBvbiBldmVyeSBpdGVyYXRpb24gb2YgdGhlIGxvb3AsCsKgYW5k IHRodXMgdGhpcyBtaWdodCBzbG93IGRvd24geW91ciBldmVudCBsb29wIGlmIHlvdSBkbyBhIGxv dCBvZiBsb29wCsKgaXRlcmF0aW9ucyBhbmQgbGl0dGxlIHJlYWwgd29yaywgYnV0IGlzIHVzdWFs bHkgbm90IG5vdGljZWFibGUgKG9uIG15Ci1HTlUvTGludXggc3lzdGVtIGZvciBleGFtcGxlLCBD PGdldHBpZD4gaXMgYWN0dWFsbHkgYSBzaW1wbGUgNS1pbnNuIHNlcXVlbmNlCi13aXRob3V0IGEg c3lzdGVtIGNhbGwgYW5kIHRodXMgSTx2ZXJ5PiBmYXN0LCBidXQgbXkgR05VL0xpbnV4IHN5c3Rl bSBhbHNvIGhhcwotQzxwdGhyZWFkX2F0Zm9yaz4gd2hpY2ggaXMgZXZlbiBmYXN0ZXIpLgorR05V L0xpbnV4IHN5c3RlbSBmb3IgZXhhbXBsZSwgQzxnZXRwaWQ+IGlzIGFjdHVhbGx5IGEgc2ltcGxl IDUtaW5zbgorc2VxdWVuY2Ugd2l0aG91dCBhIHN5c3RlbSBjYWxsIGFuZCB0aHVzIEk8dmVyeT4g ZmFzdCwgYnV0IG15IEdOVS9MaW51eAorc3lzdGVtIGFsc28gaGFzIEM8cHRocmVhZF9hdGZvcms+ IHdoaWNoIGlzIGV2ZW4gZmFzdGVyKS4gKFVwZGF0ZTogZ2xpYmMKK3ZlcnNpb25zIDIuMjUgYXBw YXJlbnRseSByZW1vdmVkIHRoZSBDPGdldHBpZD4gb3B0aW1pc2F0aW9uIGFnYWluKS4KwqAKwqBU aGUgYmlnIGFkdmFudGFnZSBvZiB0aGlzIGZsYWcgaXMgdGhhdCB5b3UgY2FuIGZvcmdldCBhYm91 dCBmb3JrIChhbmQKwqBmb3JnZXQgYWJvdXQgZm9yZ2V0dGluZyB0byB0ZWxsIGxpYmV2IGFib3V0 IGZvcmtpbmcsIGFsdGhvdWdoIHlvdSBzdGlsbApAQCAtNDU3LDcgKzQ4MiwxNiBAQCB1bmJsb2Nr aW5nIHRoZSBzaWduYWxzLgrCoEl0J3MgYWxzbyByZXF1aXJlZCBieSBQT1NJWCBpbiBhIHRocmVh ZGVkIHByb2dyYW0sIGFzIGxpYmV2IGNhbGxzCsKgQzxzaWdwcm9jbWFzaz4sIHdob3NlIGJlaGF2 aW91ciBpcyBvZmZpY2lhbGx5IHVuc3BlY2lmaWVkLgrCoAotVGhpcyBmbGFnJ3MgYmVoYXZpb3Vy IHdpbGwgYmVjb21lIHRoZSBkZWZhdWx0IGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiBsaWJldi4KKz1p dGVtIEM8RVZGTEFHX05PVElNRVJGRD4KKworV2hlbiB0aGlzIGZsYWcgaXMgc3BlY2lmaWVkLCB0 aGUgbGliZXYgd2lsbCBhdm9pZCB1c2luZyBhIEM8dGltZXJmZD4gdG8KK2RldGVjdCB0aW1lIGp1 bXBzLiBJdCB3aWxsIHN0aWxsIGJlIGFibGUgdG8gZGV0ZWN0IHRpbWUganVtcHMsIGJ1dCB0YWtl cworbG9uZ2VyIGFuZCBoYXMgYSBsb3dlciBhY2N1cmFjeSBpbiBkb2luZyBzbywgYnV0IHNhdmVz IGEgZmlsZSBkZXNjcmlwdG9yCitwZXIgbG9vcC4KKworVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRp b24gb25seSB0cmllcyB0byB1c2UgYSBDPHRpbWVyZmQ+IHdoZW4gdGhlIGZpcnN0CitDPGV2X3Bl cmlvZGljPiB3YXRjaGVyIGlzIHN0YXJ0ZWQgYW5kIGZhbGxzIGJhY2sgb24gb3RoZXIgbWV0aG9k cyBpZiBpdAorY2Fubm90IGJlIGNyZWF0ZWQsIGJ1dCB0aGlzIGJlaGF2aW91ciBtaWdodCBjaGFu Z2UgaW4gdGhlIGZ1dHVyZS4KwqAKwqA9aXRlbSBDPEVWQkFDS0VORF9TRUxFQ1Q+IMKgKHZhbHVl IDEsIHBvcnRhYmxlIHNlbGVjdCBiYWNrZW5kKQrCoApAQCAtNDkyLDcgKzUyNiw3IEBAIEM8RVZf V1JJVEU+IHRvIEM8UE9MTE9VVCB8IFBPTExFUlIgfCBQT0xMSFVQPi4KwqAKwqA9aXRlbSBDPEVW QkFDS0VORF9FUE9MTD4gwqAgKHZhbHVlIDQsIExpbnV4KQrCoAotVXNlIHRoZSBsaW51eC1zcGVj aWZpYyBlcG9sbCg3KSBpbnRlcmZhY2UgKGZvciBib3RoIHByZS0gYW5kIHBvc3QtMi42LjkKK1Vz ZSB0aGUgTGludXgtc3BlY2lmaWMgZXBvbGwoNykgaW50ZXJmYWNlIChmb3IgYm90aCBwcmUtIGFu ZCBwb3N0LTIuNi45CsKga2VybmVscykuCsKgCsKgRm9yIGZldyBmZHMsIHRoaXMgYmFja2VuZCBp cyBhIGJpdCBsaXR0bGUgc2xvd2VyIHRoYW4gcG9sbCBhbmQgc2VsZWN0LCBidXQKQEAgLTU0OCwy MiArNTgyLDY2IEBAIGZhc3RlciB0aGFuIGVwb2xsIGZvciBtYXliZSB1cCB0byBhIGh1bmRyZWQg ZmlsZSBkZXNjcmlwdG9ycywgZGVwZW5kaW5nIG9uCsKgdGhlIHVzYWdlLiBTbyBzYWQuCsKgCsKg V2hpbGUgbm9taW5hbGx5IGVtYmVkZGFibGUgaW4gb3RoZXIgZXZlbnQgbG9vcHMsIHRoaXMgZmVh dHVyZSBpcyBicm9rZW4gaW4KLWFsbCBrZXJuZWwgdmVyc2lvbnMgdGVzdGVkIHNvIGZhci4KK2Eg bG90IG9mIGtlcm5lbCByZXZpc2lvbnMsIGJ1dCBwcm9iYWJseSghKSB3b3JrcyBpbiBjdXJyZW50 IHZlcnNpb25zLgorCitUaGlzIGJhY2tlbmQgbWFwcyBDPEVWX1JFQUQ+IGFuZCBDPEVWX1dSSVRF PiBpbiB0aGUgc2FtZSB3YXkgYXMKK0M8RVZCQUNLRU5EX1BPTEw+LgorCis9aXRlbSBDPEVWQkFD S0VORF9MSU5VWEFJTz4gwqAgKHZhbHVlIDY0LCBMaW51eCkKKworVXNlIHRoZSBMaW51eC1zcGVj aWZpYyBMaW51eCBBSU8gKEk8bm90PiBDPDwgYWlvKDcpID4+IGJ1dCBDPDwKK2lvX3N1Ym1pdCgy KSA+PikgZXZlbnQgaW50ZXJmYWNlIGF2YWlsYWJsZSBpbiBwb3N0LTQuMTgga2VybmVscyAoYnV0 IGxpYmV2Citvbmx5IHRyaWVzIHRvIHVzZSBpdCBpbiA0LjE5KykuCisKK1RoaXMgaXMgYW5vdGhl ciBMaW51eCB0cmFpbiB3cmVjayBvZiBhbiBldmVudCBpbnRlcmZhY2UuCisKK0lmIHRoaXMgYmFj a2VuZCB3b3JrcyBmb3IgeW91IChhcyBvZiB0aGlzIHdyaXRpbmcsIGl0IHdhcyB2ZXJ5CitleHBl cmltZW50YWwpLCBpdCBpcyB0aGUgYmVzdCBldmVudCBpbnRlcmZhY2UgYXZhaWxhYmxlIG9uIExp bnV4IGFuZCBtaWdodAorYmUgd2VsbCB3b3J0aCBlbmFibGluZyBpdCAtIGlmIGl0IGlzbid0IGF2 YWlsYWJsZSBpbiB5b3VyIGtlcm5lbCB0aGlzIHdpbGwKK2JlIGRldGVjdGVkIGFuZCB0aGlzIGJh Y2tlbmQgd2lsbCBiZSBza2lwcGVkLgorCitUaGlzIGJhY2tlbmQgY2FuIGJhdGNoIG9uZXNob3Qg cmVxdWVzdHMgYW5kIHN1cHBvcnRzIGEgdXNlci1zcGFjZSByaW5nCitidWZmZXIgdG8gcmVjZWl2 ZSBldmVudHMuIEl0IGFsc28gZG9lc24ndCBzdWZmZXIgZnJvbSBtb3N0IG9mIHRoZSBkZXNpZ24K K3Byb2JsZW1zIG9mIGVwb2xsIChzdWNoIGFzIG5vdCBiZWluZyBhYmxlIHRvIHJlbW92ZSBldmVu dCBzb3VyY2VzIGZyb20KK3RoZSBlcG9sbCBzZXQpLCBhbmQgZ2VuZXJhbGx5IHNvdW5kcyB0b28g Z29vZCB0byBiZSB0cnVlLiBCZWNhdXNlLCB0aGlzCitiZWluZyB0aGUgTGludXgga2VybmVsLCBv ZiBjb3Vyc2UgaXQgc3VmZmVycyBmcm9tIGEgd2hvbGUgbmV3IHNldCBvZgorbGltaXRhdGlvbnMs IGZvcmNpbmcgeW91IHRvIGZhbGwgYmFjayB0byBlcG9sbCwgaW5oZXJpdGluZyBhbGwgaXRzIGRl c2lnbgoraXNzdWVzLgorCitGb3Igb25lLCBpdCBpcyBub3QgZWFzaWx5IGVtYmVkZGFibGUgKGJ1 dCBwcm9iYWJseSBjb3VsZCBiZSBkb25lIHVzaW5nCithbiBldmVudCBmZCBhdCBzb21lIGV4dHJh IG92ZXJoZWFkKS4gSXQgYWxzbyBpcyBzdWJqZWN0IHRvIGEgc3lzdGVtIHdpZGUKK2xpbWl0IHRo YXQgY2FuIGJlIGNvbmZpZ3VyZWQgaW4gRjwvcHJvYy9zeXMvZnMvYWlvLW1heC1ucj4uIElmIG5v IEFJTworcmVxdWVzdHMgYXJlIGxlZnQsIHRoaXMgYmFja2VuZCB3aWxsIGJlIHNraXBwZWQgZHVy aW5nIGluaXRpYWxpc2F0aW9uLCBhbmQKK3dpbGwgc3dpdGNoIHRvIGVwb2xsIHdoZW4gdGhlIGxv b3AgaXMgYWN0aXZlLgorCitNb3N0IHByb2JsZW1hdGljIGluIHByYWN0aWNlLCBob3dldmVyLCBp cyB0aGF0IG5vdCBhbGwgZmlsZSBkZXNjcmlwdG9ycword29yayB3aXRoIGl0LiBGb3IgZXhhbXBs ZSwgaW4gTGludXggNS4xLCBUQ1Agc29ja2V0cywgcGlwZXMsIGV2ZW50IGZkcywKK2ZpbGVzLCBG PC9kZXYvbnVsbD4gYW5kIG1hbnkgb3RoZXJzIGFyZSBzdXBwb3J0ZWQsIGJ1dCB0dHlzIGRvIG5v dCB3b3JrCitwcm9wZXJseSAoYSBrbm93biBidWcgdGhhdCB0aGUga2VybmVsIGRldmVsb3BlcnMg ZG9uJ3QgY2FyZSBhYm91dCwgc2VlCitMPGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3BhdGNod29y ay9wYXRjaC8xMDQ3NDUzLz4pLCBzbyB0aGlzIGlzIG5vdAorKHlldD8pIGEgZ2VuZXJpYyBldmVu dCBwb2xsaW5nIGludGVyZmFjZS4KKworT3ZlcmFsbCwgaXQgc2VlbXMgdGhlIExpbnV4IGRldmVs b3BlcnMganVzdCBkb24ndCB3YW50IGl0IHRvIGhhdmUgYQorZ2VuZXJpYyBldmVudCBoYW5kbGlu ZyBtZWNoYW5pc20gb3RoZXIgdGhhbiBDPHNlbGVjdD4gb3IgQzxwb2xsPi4KKworVG8gd29yayBh cm91bmQgYWxsIHRoZXNlIHByb2JsZW0sIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgbGliZXYgdXNl cyBpdHMKK2Vwb2xsIGJhY2tlbmQgYXMgYSBmYWxsYmFjayBmb3IgZmlsZSBkZXNjcmlwdG9yIHR5 cGVzIHRoYXQgZG8gbm90IHdvcmsuIE9yCitmYWxscyBiYWNrIGNvbXBsZXRlbHkgdG8gZXBvbGwg aWYgdGhlIGtlcm5lbCBhY3RzIHVwLgrCoArCoFRoaXMgYmFja2VuZCBtYXBzIEM8RVZfUkVBRD4g YW5kIEM8RVZfV1JJVEU+IGluIHRoZSBzYW1lIHdheSBhcwrCoEM8RVZCQUNLRU5EX1BPTEw+LgrC oArCoD1pdGVtIEM8RVZCQUNLRU5EX0tRVUVVRT4gwqAodmFsdWUgOCwgbW9zdCBCU0QgY2xvbmVz KQrCoAotS3F1ZXVlIGRlc2VydmVzIHNwZWNpYWwgbWVudGlvbiwgYXMgYXQgdGhlIHRpbWUgb2Yg dGhpcyB3cml0aW5nLCBpdAotd2FzIGJyb2tlbiBvbiBhbGwgQlNEcyBleGNlcHQgTmV0QlNEICh1 c3VhbGx5IGl0IGRvZXNuJ3Qgd29yayByZWxpYWJseQotd2l0aCBhbnl0aGluZyBidXQgc29ja2V0 cyBhbmQgcGlwZXMsIGV4Y2VwdCBvbiBEYXJ3aW4sIHdoZXJlIG9mIGNvdXJzZQotaXQncyBjb21w bGV0ZWx5IHVzZWxlc3MpLiBVbmxpa2UgZXBvbGwsIGhvd2V2ZXIsIHdob3NlIGJyb2tlbm5lc3MK LWlzIGJ5IGRlc2lnbiwgdGhlc2Uga3F1ZXVlIGJ1Z3MgY2FuIChhbmQgZXZlbnR1YWxseSB3aWxs KSBiZSBmaXhlZAotd2l0aG91dCBBUEkgY2hhbmdlcyB0byBleGlzdGluZyBwcm9ncmFtcy4gRm9y IHRoaXMgcmVhc29uIGl0J3Mgbm90IGJlaW5nCi0iYXV0by1kZXRlY3RlZCIgdW5sZXNzIHlvdSBl eHBsaWNpdGx5IHNwZWNpZnkgaXQgaW4gdGhlIGZsYWdzIChpLmUuIHVzaW5nCi1DPEVWQkFDS0VO RF9LUVVFVUU+KSBvciBsaWJldiB3YXMgY29tcGlsZWQgb24gYSBrbm93bi10by1iZS1nb29kICgt ZW5vdWdoKQotc3lzdGVtIGxpa2UgTmV0QlNELgorS3F1ZXVlIGRlc2VydmVzIHNwZWNpYWwgbWVu dGlvbiwgYXMgYXQgdGhlIHRpbWUgdGhpcyBiYWNrZW5kIHdhcworaW1wbGVtZW50ZWQsIGl0IHdh cyBicm9rZW4gb24gYWxsIEJTRHMgZXhjZXB0IE5ldEJTRCAodXN1YWxseSBpdCBkb2Vzbid0Cit3 b3JrIHJlbGlhYmx5IHdpdGggYW55dGhpbmcgYnV0IHNvY2tldHMgYW5kIHBpcGVzLCBleGNlcHQg b24gRGFyd2luLAord2hlcmUgb2YgY291cnNlIGl0J3MgY29tcGxldGVseSB1c2VsZXNzKS4gVW5s aWtlIGVwb2xsLCBob3dldmVyLCB3aG9zZQorYnJva2VubmVzcyBpcyBieSBkZXNpZ24sIHRoZXNl IGtxdWV1ZSBidWdzIGNhbiBiZSAoYW5kIG1vc3RseSBoYXZlIGJlZW4pCitmaXhlZCB3aXRob3V0 IEFQSSBjaGFuZ2VzIHRvIGV4aXN0aW5nIHByb2dyYW1zLiBGb3IgdGhpcyByZWFzb24gaXQncyBu b3QKK2JlaW5nICJhdXRvLWRldGVjdGVkIiBvbiBhbGwgcGxhdGZvcm1zIHVubGVzcyB5b3UgZXhw bGljaXRseSBzcGVjaWZ5IGl0CitpbiB0aGUgZmxhZ3MgKGkuZS4gdXNpbmcgQzxFVkJBQ0tFTkRf S1FVRVVFPikgb3IgbGliZXYgd2FzIGNvbXBpbGVkIG9uIGEKK2tub3duLXRvLWJlLWdvb2QgKC1l bm91Z2gpIHN5c3RlbSBsaWtlIE5ldEJTRC4KwqAKwqBZb3Ugc3RpbGwgY2FuIGVtYmVkIGtxdWV1 ZSBpbnRvIGEgbm9ybWFsIHBvbGwgb3Igc2VsZWN0IGJhY2tlbmQgYW5kIHVzZSBpdArCoG9ubHkg Zm9yIHNvY2tldHMgKGFmdGVyIGhhdmluZyBtYWRlIHN1cmUgdGhhdCBzb2NrZXRzIHdvcmsgd2l0 aCBrcXVldWUgb24KQEAgLTU3NCw3ICs2NTIsNyBAQCBrZXJuZWwgaXMgbW9yZSBlZmZpY2llbnQg KHdoaWNoIHNheXMgbm90aGluZyBhYm91dCBpdHMgYWN0dWFsIHNwZWVkLCBvZgrCoGNvdXJzZSku IFdoaWxlIHN0b3BwaW5nLCBzZXR0aW5nIGFuZCBzdGFydGluZyBhbiBJL08gd2F0Y2hlciBkb2Vz IG5ldmVyCsKgY2F1c2UgYW4gZXh0cmEgc3lzdGVtIGNhbGwgYXMgd2l0aCBDPEVWQkFDS0VORF9F UE9MTD4sIGl0IHN0aWxsIGFkZHMgdXAgdG8KwqB0d28gZXZlbnQgY2hhbmdlcyBwZXIgaW5jaWRl bnQuIFN1cHBvcnQgZm9yIEM8Zm9yayAoKT4gaXMgdmVyeSBiYWQgKHlvdQotbWlnaHQgaGF2ZSB0 byBsZWFrIGZkJ3Mgb24gZm9yaywgYnV0IGl0J3MgbW9yZSBzYW5lIHRoYW4gZXBvbGwpIGFuZCBp dAorbWlnaHQgaGF2ZSB0byBsZWFrIGZkcyBvbiBmb3JrLCBidXQgaXQncyBtb3JlIHNhbmUgdGhh biBlcG9sbCkgYW5kIGl0CsKgZHJvcHMgZmRzIHNpbGVudGx5IGluIHNpbWlsYXJseSBoYXJkLXRv LWRldGVjdCBjYXNlcy4KwqAKwqBUaGlzIGJhY2tlbmQgdXN1YWxseSBwZXJmb3JtcyB3ZWxsIHVu ZGVyIG1vc3QgY29uZGl0aW9ucy4KQEAgLTY1OSw2ICs3MzcsMTIgQEAgdXNlZCBpZiBhdmFpbGFi bGUuCsKgCsKgIMKgIHN0cnVjdCBldl9sb29wICpsb29wID0gZXZfbG9vcF9uZXcgKGV2X3JlY29t bWVuZGVkX2JhY2tlbmRzICgpIHwgRVZCQUNLRU5EX0tRVUVVRSk7CsKgCitFeGFtcGxlOiBTaW1p bGFybHksIG9uIGxpbnV4LCB5b3UgbWdpaHQgd2FudCB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUK K2xpbnV4IGFpbyBiYWNrZW5kIGlmIHBvc3NpYmxlLCBidXQgZmFsbCBiYWNrIHRvIHNvbWV0aGlu ZyBlbHNlIGlmIHRoYXQKK2lzbid0IGF2YWlsYWJsZS4KKworIMKgIHN0cnVjdCBldl9sb29wICps b29wID0gZXZfbG9vcF9uZXcgKGV2X3JlY29tbWVuZGVkX2JhY2tlbmRzICgpIHwgRVZCQUNLRU5E X0xJTlVYQUlPKTsKKwrCoD1pdGVtIGV2X2xvb3BfZGVzdHJveSAobG9vcCkKwqAKwqBEZXN0cm95 cyBhbiBldmVudCBsb29wIG9iamVjdCAoZnJlZXMgYWxsIG1lbW9yeSBhbmQga2VybmVsIHN0YXRl CkBAIC0xMTM2LDggKzEyMjAsOSBAQCB3aXRoIGEgd2F0Y2hlci1zcGVjaWZpYyBzdGFydCBmdW5j dGlvbiAoQzw8IGV2X1RZUEVfc3RhcnQgKGxvb3AsIHdhdGNoZXIKwqBjb3JyZXNwb25kaW5nIHN0 b3AgZnVuY3Rpb24gKEM8PCBldl9UWVBFX3N0b3AgKGxvb3AsIHdhdGNoZXIgKikgPj4uCsKgCsKg QXMgbG9uZyBhcyB5b3VyIHdhdGNoZXIgaXMgYWN0aXZlIChoYXMgYmVlbiBzdGFydGVkIGJ1dCBu b3Qgc3RvcHBlZCkgeW91Ci1tdXN0IG5vdCB0b3VjaCB0aGUgdmFsdWVzIHN0b3JlZCBpbiBpdC4g TW9zdCBzcGVjaWZpY2FsbHkgeW91IG11c3QgbmV2ZXIKLXJlaW5pdGlhbGlzZSBpdCBvciBjYWxs IGl0cyBDPGV2X1RZUEVfc2V0PiBtYWNyby4KK211c3Qgbm90IHRvdWNoIHRoZSB2YWx1ZXMgc3Rv cmVkIGluIGl0IGV4Y2VwdCB3aGVuIGV4cGxpY2l0bHkgZG9jdW1lbnRlZAorb3RoZXJ3aXNlLiBN b3N0IHNwZWNpZmljYWxseSB5b3UgbXVzdCBuZXZlciByZWluaXRpYWxpc2UgaXQgb3IgY2FsbCBp dHMKK0M8ZXZfVFlQRV9zZXQ+IG1hY3JvLgrCoArCoEVhY2ggYW5kIGV2ZXJ5IGNhbGxiYWNrIHJl Y2VpdmVzIHRoZSBldmVudCBsb29wIHBvaW50ZXIgYXMgZmlyc3QsIHRoZQrCoHJlZ2lzdGVyZWQg d2F0Y2hlciBzdHJ1Y3R1cmUgYXMgc2Vjb25kLCBhbmQgYSBiaXRzZXQgb2YgcmVjZWl2ZWQgZXZl bnRzIGFzCkBAIC0xNDYyLDcgKzE1NDcsNyBAQCBNYW55IGV2ZW50IGxvb3BzIHN1cHBvcnQgSTx3 YXRjaGVyIHByaW9yaXRpZXM+LCB3aGljaCBhcmUgdXN1YWxseSBzbWFsbArCoGludGVnZXJzIHRo YXQgaW5mbHVlbmNlIHRoZSBvcmRlcmluZyBvZiBldmVudCBjYWxsYmFjayBpbnZvY2F0aW9uCsKg YmV0d2VlbiB3YXRjaGVycyBpbiBzb21lIHdheSwgYWxsIGVsc2UgYmVpbmcgZXF1YWwuCsKgCi1J biBsaWJldiwgV2F0Y2hlciBwcmlvcml0aWVzIGNhbiBiZSBzZXQgdXNpbmcgQzxldl9zZXRfcHJp b3JpdHk+LiBTZWUgaXRzCitJbiBsaWJldiwgd2F0Y2hlciBwcmlvcml0aWVzIGNhbiBiZSBzZXQg dXNpbmcgQzxldl9zZXRfcHJpb3JpdHk+LiBTZWUgaXRzCsKgZGVzY3JpcHRpb24gZm9yIHRoZSBt b3JlIHRlY2huaWNhbCBkZXRhaWxzIHN1Y2ggYXMgdGhlIGFjdHVhbCBwcmlvcml0eQrCoHJhbmdl LgrCoApAQCAtMTU2NiwxNSArMTY1MSwxOCBAQCBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIGVhY2gg d2F0Y2hlciBpbiBkZXRhaWwsIGJ1dCB3aWxsIG5vdCByZXBlYXQKwqBpbmZvcm1hdGlvbiBnaXZl biBpbiB0aGUgbGFzdCBzZWN0aW9uLiBBbnkgaW5pdGlhbGlzYXRpb24vc2V0IG1hY3JvcywKwqBm dW5jdGlvbnMgYW5kIG1lbWJlcnMgc3BlY2lmaWMgdG8gdGhlIHdhdGNoZXIgdHlwZSBhcmUgZXhw bGFpbmVkLgrCoAotTWVtYmVycyBhcmUgYWRkaXRpb25hbGx5IG1hcmtlZCB3aXRoIGVpdGhlciBJ PFtyZWFkLW9ubHldPiwgbWVhbmluZyB0aGF0LAotd2hpbGUgdGhlIHdhdGNoZXIgaXMgYWN0aXZl LCB5b3UgY2FuIGxvb2sgYXQgdGhlIG1lbWJlciBhbmQgZXhwZWN0IHNvbWUKLXNlbnNpYmxlIGNv bnRlbnQsIGJ1dCB5b3UgbXVzdCBub3QgbW9kaWZ5IGl0ICh5b3UgY2FuIG1vZGlmeSBpdCB3aGls ZSB0aGUKLXdhdGNoZXIgaXMgc3RvcHBlZCB0byB5b3VyIGhlYXJ0cyBjb250ZW50KSwgb3IgSTxb cmVhZC13cml0ZV0+LCB3aGljaAotbWVhbnMgeW91IGNhbiBleHBlY3QgaXQgdG8gaGF2ZSBzb21l IHNlbnNpYmxlIGNvbnRlbnQgd2hpbGUgdGhlIHdhdGNoZXIKLWlzIGFjdGl2ZSwgYnV0IHlvdSBj YW4gYWxzbyBtb2RpZnkgaXQuIE1vZGlmeWluZyBpdCBtYXkgbm90IGRvIHNvbWV0aGluZworTW9z dCBtZW1iZXJzIGFyZSBhZGRpdGlvbmFsbHkgbWFya2VkIHdpdGggZWl0aGVyIEk8W3JlYWQtb25s eV0+LCBtZWFuaW5nCit0aGF0LCB3aGlsZSB0aGUgd2F0Y2hlciBpcyBhY3RpdmUsIHlvdSBjYW4g bG9vayBhdCB0aGUgbWVtYmVyIGFuZCBleHBlY3QKK3NvbWUgc2Vuc2libGUgY29udGVudCwgYnV0 IHlvdSBtdXN0IG5vdCBtb2RpZnkgaXQgKHlvdSBjYW4gbW9kaWZ5IGl0IHdoaWxlCit0aGUgd2F0 Y2hlciBpcyBzdG9wcGVkIHRvIHlvdXIgaGVhcnRzIGNvbnRlbnQpLCBvciBJPFtyZWFkLXdyaXRl XT4sIHdoaWNoCittZWFucyB5b3UgY2FuIGV4cGVjdCBpdCB0byBoYXZlIHNvbWUgc2Vuc2libGUg Y29udGVudCB3aGlsZSB0aGUgd2F0Y2hlciBpcworYWN0aXZlLCBidXQgeW91IGNhbiBhbHNvIG1v ZGlmeSBpdCAod2l0aGluIHRoZSBzYW1lIHRocmVhZCBhcyB0aGUgZXZlbnQKK2xvb3AsIGkuZS4g d2l0aG91dCBjcmVhdGluZyBkYXRhIHJhY2VzKS4gTW9kaWZ5aW5nIGl0IG1heSBub3QgZG8gc29t ZXRoaW5nCsKgc2Vuc2libGUgb3IgdGFrZSBpbW1lZGlhdGUgZWZmZWN0IChvciBkbyBhbnl0aGlu ZyBhdCBhbGwpLCBidXQgbGliZXYgd2lsbArCoG5vdCBjcmFzaCBvciBtYWxmdW5jdGlvbiBpbiBh bnkgd2F5LgrCoAorSW4gYW55IGNhc2UsIHRoZSBkb2N1bWVudGF0aW9uIGZvciBlYWNoIG1lbWJl ciB3aWxsIGV4cGxhaW4gd2hhdCB0aGUKK2VmZmVjdHMgYXJlLCBhbmQgaWYgdGhlcmUgYXJlIGFu eSBhZGRpdGlvbmFsIGFjY2VzcyByZXN0cmljdGlvbnMuCsKgCsKgPWhlYWQyIEM8ZXZfaW8+IC0g aXMgdGhpcyBmaWxlIGRlc2NyaXB0b3IgcmVhZGFibGUgb3Igd3JpdGFibGU/CsKgCkBAIC0xNjEx LDEzICsxNjk5LDEzIEBAIEJ1dCByZWFsbHksIGJlc3QgdXNlIG5vbi1ibG9ja2luZyBtb2RlLgrC oArCoD1oZWFkMyBUaGUgc3BlY2lhbCBwcm9ibGVtIG9mIGRpc2FwcGVhcmluZyBmaWxlIGRlc2Ny aXB0b3JzCsKgCi1Tb21lIGJhY2tlbmRzIChlLmcuIGtxdWV1ZSwgZXBvbGwpIG5lZWQgdG8gYmUg dG9sZCBhYm91dCBjbG9zaW5nIGEgZmlsZQotZGVzY3JpcHRvciAoZWl0aGVyIGR1ZSB0byBjYWxs aW5nIEM8Y2xvc2U+IGV4cGxpY2l0bHkgb3IgYW55IG90aGVyIG1lYW5zLAotc3VjaCBhcyBDPGR1 cDI+KS4gVGhlIHJlYXNvbiBpcyB0aGF0IHlvdSByZWdpc3RlciBpbnRlcmVzdCBpbiBzb21lIGZp bGUKLWRlc2NyaXB0b3IsIGJ1dCB3aGVuIGl0IGdvZXMgYXdheSwgdGhlIG9wZXJhdGluZyBzeXN0 ZW0gd2lsbCBzaWxlbnRseSBkcm9wCi10aGlzIGludGVyZXN0LiBJZiBhbm90aGVyIGZpbGUgZGVz Y3JpcHRvciB3aXRoIHRoZSBzYW1lIG51bWJlciB0aGVuIGlzCi1yZWdpc3RlcmVkIHdpdGggbGli ZXYsIHRoZXJlIGlzIG5vIGVmZmljaWVudCB3YXkgdG8gc2VlIHRoYXQgdGhpcyBpcywgaW4KLWZh Y3QsIGEgZGlmZmVyZW50IGZpbGUgZGVzY3JpcHRvci4KK1NvbWUgYmFja2VuZHMgKGUuZy4ga3F1 ZXVlLCBlcG9sbCwgbGludXhhaW8pIG5lZWQgdG8gYmUgdG9sZCBhYm91dCBjbG9zaW5nCithIGZp bGUgZGVzY3JpcHRvciAoZWl0aGVyIGR1ZSB0byBjYWxsaW5nIEM8Y2xvc2U+IGV4cGxpY2l0bHkg b3IgYW55IG90aGVyCittZWFucywgc3VjaCBhcyBDPGR1cDI+KS4gVGhlIHJlYXNvbiBpcyB0aGF0 IHlvdSByZWdpc3RlciBpbnRlcmVzdCBpbiBzb21lCitmaWxlIGRlc2NyaXB0b3IsIGJ1dCB3aGVu IGl0IGdvZXMgYXdheSwgdGhlIG9wZXJhdGluZyBzeXN0ZW0gd2lsbCBzaWxlbnRseQorZHJvcCB0 aGlzIGludGVyZXN0LiBJZiBhbm90aGVyIGZpbGUgZGVzY3JpcHRvciB3aXRoIHRoZSBzYW1lIG51 bWJlciB0aGVuCitpcyByZWdpc3RlcmVkIHdpdGggbGliZXYsIHRoZXJlIGlzIG5vIGVmZmljaWVu dCB3YXkgdG8gc2VlIHRoYXQgdGhpcyBpcywKK2luIGZhY3QsIGEgZGlmZmVyZW50IGZpbGUgZGVz Y3JpcHRvci4KwqAKwqBUbyBhdm9pZCBoYXZpbmcgdG8gZXhwbGljaXRseSB0ZWxsIGxpYmV2IGFi b3V0IHN1Y2ggY2FzZXMsIGxpYmV2IGZvbGxvd3MKwqB0aGUgZm9sbG93aW5nIHBvbGljeTogwqBF YWNoIHRpbWUgQzxldl9pb19zZXQ+IGlzIGJlaW5nIGNhbGxlZCwgbGliZXYKQEAgLTE2NzYsOSAr MTc2NCwxMCBAQCByZXVzZSB0aGUgc2FtZSBjb2RlIHBhdGguCsKgCsKgPWhlYWQzIFRoZSBzcGVj aWFsIHByb2JsZW0gb2YgZm9yawrCoAotU29tZSBiYWNrZW5kcyAoZXBvbGwsIGtxdWV1ZSkgZG8g bm90IHN1cHBvcnQgQzxmb3JrICgpPiBhdCBhbGwgb3IgZXhoaWJpdAotdXNlbGVzcyBiZWhhdmlv dXIuIExpYmV2IGZ1bGx5IHN1cHBvcnRzIGZvcmssIGJ1dCBuZWVkcyB0byBiZSB0b2xkIGFib3V0 Ci1pdCBpbiB0aGUgY2hpbGQgaWYgeW91IHdhbnQgdG8gY29udGludWUgdG8gdXNlIGl0IGluIHRo ZSBjaGlsZC4KK1NvbWUgYmFja2VuZHMgKGVwb2xsLCBrcXVldWUsIGxpbnV4YWlvLCBpb3VyaW5n KSBkbyBub3Qgc3VwcG9ydCBDPGZvcmsgKCk+CithdCBhbGwgb3IgZXhoaWJpdCB1c2VsZXNzIGJl aGF2aW91ci4gTGliZXYgZnVsbHkgc3VwcG9ydHMgZm9yaywgYnV0IG5lZWRzCit0byBiZSB0b2xk IGFib3V0IGl0IGluIHRoZSBjaGlsZCBpZiB5b3Ugd2FudCB0byBjb250aW51ZSB0byB1c2UgaXQg aW4gdGhlCitjaGlsZC4KwqAKwqBUbyBzdXBwb3J0IGZvcmsgaW4geW91ciBjaGlsZCBwcm9jZXNz ZXMsIHlvdSBoYXZlIHRvIGNhbGwgQzxldl9sb29wX2ZvcmsKwqAoKT4gYWZ0ZXIgYSBmb3JrIGlu IHRoZSBjaGlsZCwgZW5hYmxlIEM8RVZGTEFHX0ZPUktDSEVDSz4sIG9yIHJlc29ydCB0bwpAQCAt MTc0MywxNiArMTgzMiwzNiBAQCBvcHBvcnR1bml0eSBmb3IgYSBEb1MgYXR0YWNrLgrCoD1pdGVt IGV2X2lvX3NldCAoZXZfaW8gKiwgaW50IGZkLCBpbnQgZXZlbnRzKQrCoArCoENvbmZpZ3VyZXMg YW4gQzxldl9pbz4gd2F0Y2hlci4gVGhlIEM8ZmQ+IGlzIHRoZSBmaWxlIGRlc2NyaXB0b3IgdG8K LXJlY2VpdmUgZXZlbnRzIGZvciBhbmQgQzxldmVudHM+IGlzIGVpdGhlciBDPEVWX1JFQUQ+LCBD PEVWX1dSSVRFPiBvcgotQzxFVl9SRUFEIHwgRVZfV1JJVEU+LCB0byBleHByZXNzIHRoZSBkZXNp cmUgdG8gcmVjZWl2ZSB0aGUgZ2l2ZW4gZXZlbnRzLgorcmVjZWl2ZSBldmVudHMgZm9yIGFuZCBD PGV2ZW50cz4gaXMgZWl0aGVyIEM8RVZfUkVBRD4sIEM8RVZfV1JJVEU+LCBib3RoCitDPEVWX1JF QUQgfCBFVl9XUklURT4gb3IgQzwwPiwgdG8gZXhwcmVzcyB0aGUgZGVzaXJlIHRvIHJlY2VpdmUg dGhlIGdpdmVuCitldmVudHMuCisKK05vdGUgdGhhdCBzZXR0aW5nIHRoZSBDPGV2ZW50cz4gdG8g QzwwPiBhbmQgc3RhcnRpbmcgdGhlIHdhdGNoZXIgaXMKK3N1cHBvcnRlZCwgYnV0IG5vdCBzcGVj aWFsbHkgb3B0aW1pemVkIC0gaWYgeW91ciBwcm9ncmFtIHNvbWV0aW1lcyBoYXBwZW5zCit0byBn ZW5lcmF0ZSB0aGlzIGNvbWJpbmF0aW9uIHRoaXMgaXMgZmluZSwgYnV0IGlmIGl0IGlzIGVhc3kg dG8gYXZvaWQKK3N0YXJ0aW5nIGFuIGlvIHdhdGNoZXIgd2F0Y2hpbmcgZm9yIG5vIGV2ZW50cyB5 b3Ugc2hvdWxkIGRvIHNvLgorCis9aXRlbSBldl9pb19tb2RpZnkgKGV2X2lvICosIGludCBldmVu dHMpCisKK1NpbWlsYXIgdG8gQzxldl9pb19zZXQ+LCBidXQgb25seSBjaGFuZ2VzIHRoZSByZXF1 ZXN0ZWQgZXZlbnRzLiBVc2luZyB0aGlzCittaWdodCBiZSBmYXN0ZXIgd2l0aCBzb21lIGJhY2tl bmRzLCBhcyBsaWJldiBjYW4gYXNzdW1lIHRoYXQgdGhlIEM8ZmQ+CitzdGlsbCByZWZlcnMgdG8g dGhlIHNhbWUgdW5kZXJseWluZyBmaWxlIGRlc2NyaXB0aW9uLCBzb21ldGhpbmcgaXQgY2Fubm90 CitkbyB3aGVuIHVzaW5nIEM8ZXZfaW9fc2V0Pi4KwqAKLT1pdGVtIGludCBmZCBbcmVhZC1vbmx5 XQorPWl0ZW0gaW50IGZkIFtuby1tb2RpZnldCsKgCi1UaGUgZmlsZSBkZXNjcmlwdG9yIGJlaW5n IHdhdGNoZWQuCitUaGUgZmlsZSBkZXNjcmlwdG9yIGJlaW5nIHdhdGNoZWQuIFdoaWxlIGl0IGNh biBiZSByZWFkIGF0IGFueSB0aW1lLCB5b3UKK211c3Qgbm90IG1vZGlmeSB0aGlzIG1lbWJlciBl dmVuIHdoZW4gdGhlIHdhdGNoZXIgaXMgc3RvcHBlZCAtIGFsd2F5cyB1c2UKK0M8ZXZfaW9fc2V0 PiBmb3IgdGhhdC4KwqAKLT1pdGVtIGludCBldmVudHMgW3JlYWQtb25seV0KKz1pdGVtIGludCBl dmVudHMgW25vLW1vZGlmeV0KwqAKLVRoZSBldmVudHMgYmVpbmcgd2F0Y2hlZC4KK1RoZSBzZXQg b2YgZXZlbnRzIHRoZSBmZCBpcyBiZWluZyB3YXRjaGVkIGZvciwgYW1vbmcgb3RoZXIgZmxhZ3Mu IFJlbWVtYmVyCit0aGF0IHRoaXMgaXMgYSBiaXQgc2V0IC0gdG8gdGVzdCBmb3IgQzxFVl9SRUFE PiwgdXNlIEM8PCB3LT5ldmVudHMgJgorRVZfUkVBRCA+PiwgYW5kIHNpbWlsYXJseSBmb3IgQzxF Vl9XUklURT4uCisKK0FzIHdpdGggQzxmZD4sIHlvdSBtdXN0IG5vdCBtb2RpZnkgdGhpcyBtZW1i ZXIgZXZlbiB3aGVuIHRoZSB3YXRjaGVyIGlzCitzdG9wcGVkLCBhbHdheXMgdXNlIEM8ZXZfaW9f c2V0PiBvciBDPGV2X2lvX21vZGlmeT4gZm9yIHRoYXQuCsKgCsKgPWJhY2sKwqAKQEAgLTIxMTUs MTEgKzIyMjQsMTEgQEAgQzxTSUdTVE9QPikuCsKgCsKgPWl0ZW0gZXZfdGltZXJfc2V0IChldl90 aW1lciAqLCBldl90c3RhbXAgYWZ0ZXIsIGV2X3RzdGFtcCByZXBlYXQpCsKgCi1Db25maWd1cmUg dGhlIHRpbWVyIHRvIHRyaWdnZXIgYWZ0ZXIgQzxhZnRlcj4gc2Vjb25kcy4gSWYgQzxyZXBlYXQ+ Ci1pcyBDPDAuPiwgdGhlbiBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc3RvcHBlZCBvbmNlIHRo ZSB0aW1lb3V0IGlzCi1yZWFjaGVkLiBJZiBpdCBpcyBwb3NpdGl2ZSwgdGhlbiB0aGUgdGltZXIg d2lsbCBhdXRvbWF0aWNhbGx5IGJlCi1jb25maWd1cmVkIHRvIHRyaWdnZXIgYWdhaW4gQzxyZXBl YXQ+IHNlY29uZHMgbGF0ZXIsIGFnYWluLCBhbmQgYWdhaW4sCi11bnRpbCBzdG9wcGVkIG1hbnVh bGx5LgorQ29uZmlndXJlIHRoZSB0aW1lciB0byB0cmlnZ2VyIGFmdGVyIEM8YWZ0ZXI+IHNlY29u ZHMgKGZyYWN0aW9uYWwgYW5kCituZWdhdGl2ZSB2YWx1ZXMgYXJlIHN1cHBvcnRlZCkuIElmIEM8 cmVwZWF0PiBpcyBDPDAuPiwgdGhlbiBpdCB3aWxsCithdXRvbWF0aWNhbGx5IGJlIHN0b3BwZWQg b25jZSB0aGUgdGltZW91dCBpcyByZWFjaGVkLiBJZiBpdCBpcyBwb3NpdGl2ZSwKK3RoZW4gdGhl IHRpbWVyIHdpbGwgYXV0b21hdGljYWxseSBiZSBjb25maWd1cmVkIHRvIHRyaWdnZXIgYWdhaW4g QzxyZXBlYXQ+CitzZWNvbmRzIGxhdGVyLCBhZ2FpbiwgYW5kIGFnYWluLCB1bnRpbCBzdG9wcGVk IG1hbnVhbGx5LgrCoArCoFRoZSB0aW1lciBpdHNlbGYgd2lsbCBkbyBhIGJlc3QtZWZmb3J0IGF0 IGF2b2lkaW5nIGRyaWZ0LCB0aGF0IGlzLCBpZgrCoHlvdSBjb25maWd1cmUgYSB0aW1lciB0byB0 cmlnZ2VyIGV2ZXJ5IDEwIHNlY29uZHMsIHRoZW4gaXQgd2lsbCBub3JtYWxseQpAQCAtMjIyNiw4 ICsyMzM1LDggQEAgaXQsIGFzIGl0IHVzZXMgYSByZWxhdGl2ZSB0aW1lb3V0KS4KwqAKwqBDPGV2 X3BlcmlvZGljPiB3YXRjaGVycyBjYW4gYWxzbyBiZSB1c2VkIHRvIGltcGxlbWVudCB2YXN0bHkg bW9yZSBjb21wbGV4CsKgdGltZXJzLCBzdWNoIGFzIHRyaWdnZXJpbmcgYW4gZXZlbnQgb24gZWFj aCAibWlkbmlnaHQsIGxvY2FsIHRpbWUiLCBvcgotb3RoZXIgY29tcGxpY2F0ZWQgcnVsZXMuIFRo aXMgY2Fubm90IGJlIGRvbmUgd2l0aCBDPGV2X3RpbWVyPiB3YXRjaGVycywgYXMKLXRob3NlIGNh bm5vdCByZWFjdCB0byB0aW1lIGp1bXBzLgorb3RoZXIgY29tcGxpY2F0ZWQgcnVsZXMuIFRoaXMg Y2Fubm90IGVhc2lseSBiZSBkb25lIHdpdGggQzxldl90aW1lcj4KK3dhdGNoZXJzLCBhcyB0aG9z ZSBjYW5ub3QgcmVhY3QgdG8gdGltZSBqdW1wcy4KwqAKwqBBcyB3aXRoIHRpbWVycywgdGhlIGNh bGxiYWNrIGlzIGd1YXJhbnRlZWQgdG8gYmUgaW52b2tlZCBvbmx5IHdoZW4gdGhlCsKgcG9pbnQg aW4gdGltZSB3aGVyZSBpdCBpcyBzdXBwb3NlZCB0byB0cmlnZ2VyIGhhcyBwYXNzZWQuIElmIG11 bHRpcGxlCkBAIC0yMzIzLDEwICsyNDMyLDI4IEBAIE5PVEU6IEk8PCBUaGlzIGNhbGxiYWNrIG11 c3QgYWx3YXlzIHJldHVybiBhIHRpbWUgdGhhdCBpcyBoaWdoZXIgdGhhbiBvcgrCoGVxdWFsIHRv IHRoZSBwYXNzZWQgQzxub3c+IHZhbHVlID4+LgrCoArCoFRoaXMgY2FuIGJlIHVzZWQgdG8gY3Jl YXRlIHZlcnkgY29tcGxleCB0aW1lcnMsIHN1Y2ggYXMgYSB0aW1lciB0aGF0Ci10cmlnZ2VycyBv biAibmV4dCBtaWRuaWdodCwgbG9jYWwgdGltZSIuIFRvIGRvIHRoaXMsIHlvdSB3b3VsZCBjYWxj dWxhdGUgdGhlCi1uZXh0IG1pZG5pZ2h0IGFmdGVyIEM8bm93PiBhbmQgcmV0dXJuIHRoZSB0aW1l c3RhbXAgdmFsdWUgZm9yIHRoaXMuIEhvdwoteW91IGRvIHRoaXMgaXMsIGFnYWluLCB1cCB0byB5 b3UgKGJ1dCBpdCBpcyBub3QgdHJpdmlhbCwgd2hpY2ggaXMgdGhlIG1haW4KLXJlYXNvbiBJIG9t aXR0ZWQgaXQgYXMgYW4gZXhhbXBsZSkuCit0cmlnZ2VycyBvbiAibmV4dCBtaWRuaWdodCwgbG9j YWwgdGltZSIuIFRvIGRvIHRoaXMsIHlvdSB3b3VsZCBjYWxjdWxhdGUKK3RoZSBuZXh0IG1pZG5p Z2h0IGFmdGVyIEM8bm93PiBhbmQgcmV0dXJuIHRoZSB0aW1lc3RhbXAgdmFsdWUgZm9yCit0aGlz LiBIZXJlIGlzIGEgKGNvbXBsZXRlbHkgdW50ZXN0ZWQsIG5vIGVycm9yIGNoZWNraW5nKSBleGFt cGxlIG9uIGhvdyB0bworZG8gdGhpczoKKworIMKgICNpbmNsdWRlIDx0aW1lLmg+CisKKyDCoCBz dGF0aWMgZXZfdHN0YW1wCisgwqAgbXlfcmVzY2hlZHVsZXIgKGV2X3BlcmlvZGljICp3LCBldl90 c3RhbXAgbm93KQorIMKgIHsKKyDCoCDCoCB0aW1lX3QgdG5vdyA9ICh0aW1lX3Qpbm93OworIMKg IMKgIHN0cnVjdCB0bSB0bTsKKyDCoCDCoCBsb2NhbHRpbWVfciAoJnRub3csICZ0bSk7CisKKyDC oCDCoCB0bS50bV9zZWMgPSB0bS50bV9taW4gPSB0bS50bV9ob3VyID0gMDsgLy8gbWlkbmlnaHQg Y3VycmVudCBkYXkKKyDCoCDCoCArK3RtLnRtX21kYXk7IC8vIG1pZG5pZ2h0IG5leHQgZGF5CisK KyDCoCDCoCByZXR1cm4gbWt0aW1lICgmdG0pOworIMKgIH0KKworTm90ZTogdGhpcyBjb2RlIG1p Z2h0IHJ1biBpbnRvIHRyb3VibGUgb24gZGF5cyB0aGF0IGhhdmUgbW9yZSB0aGVuIHR3bworbWlk bmlnaHRzIChiZWdpbm5pbmcgYW5kIGVuZCkuCsKgCsKgPWJhY2sKwqAKQEAgLTM1MTksNyArMzY0 Niw3IEBAIFRoZXJlIGFyZSBzb21lIG90aGVyIGZ1bmN0aW9ucyBvZiBwb3NzaWJsZSBpbnRlcmVz dC4gRGVzY3JpYmVkLiBIZXJlLiBOb3cuCsKgCsKgPW92ZXIgNArCoAotPWl0ZW0gZXZfb25jZSAo bG9vcCwgaW50IGZkLCBpbnQgZXZlbnRzLCBldl90c3RhbXAgdGltZW91dCwgY2FsbGJhY2spCis9 aXRlbSBldl9vbmNlIChsb29wLCBpbnQgZmQsIGludCBldmVudHMsIGV2X3RzdGFtcCB0aW1lb3V0 LCBjYWxsYmFjaywgYXJnKQrCoArCoFRoaXMgZnVuY3Rpb24gY29tYmluZXMgYSBzaW1wbGUgdGlt ZXIgYW5kIGFuIEkvTyB3YXRjaGVyLCBjYWxscyB5b3VyCsKgY2FsbGJhY2sgb24gd2hpY2hldmVy IGV2ZW50IGhhcHBlbnMgZmlyc3QgYW5kIGF1dG9tYXRpY2FsbHkgc3RvcHMgYm90aApAQCAtMzk2 MSwxNCArNDA4OCwxNCBAQCBsaWJldiBzb3VyY2VzIGNhbiBiZSBjb21waWxlZCBhcyBDKysuIFRo ZXJlZm9yZSwgY29kZSB0aGF0IHVzZXMgdGhlIEMgQVBJCsKgd2lsbCB3b3JrIGZpbmUuCsKgCsKg UHJvcGVyIGV4Y2VwdGlvbiBzcGVjaWZpY2F0aW9ucyBtaWdodCBoYXZlIHRvIGJlIGFkZGVkIHRv IGNhbGxiYWNrcyBwYXNzZWQKLXRvIGxpYmV2OiBleGNlcHRpb25zIG1heSBiZSB0aHJvd24gb25s eSBmcm9tIHdhdGNoZXIgY2FsbGJhY2tzLCBhbGwKLW90aGVyIGNhbGxiYWNrcyAoYWxsb2NhdG9y LCBzeXNlcnIsIGxvb3AgYWNxdWlyZS9yZWxlYXNlIGFuZCBwZXJpb2RpYwotcmVzY2hlZHVsZSBj YWxsYmFja3MpIG11c3Qgbm90IHRocm93IGV4Y2VwdGlvbnMsIGFuZCBtaWdodCBuZWVkIGEgQzx0 aHJvdwotKCk+IHNwZWNpZmljYXRpb24uIElmIHlvdSBoYXZlIGNvZGUgdGhhdCBuZWVkcyB0byBi ZSBjb21waWxlZCBhcyBib3RoIEMKLWFuZCBDKysgeW91IGNhbiB1c2UgdGhlIEM8RVZfVEhST1c+ IG1hY3JvIGZvciB0aGlzOgordG8gbGliZXY6IGV4Y2VwdGlvbnMgbWF5IGJlIHRocm93biBvbmx5 IGZyb20gd2F0Y2hlciBjYWxsYmFja3MsIGFsbCBvdGhlcgorY2FsbGJhY2tzIChhbGxvY2F0b3Is IHN5c2VyciwgbG9vcCBhY3F1aXJlL3JlbGVhc2UgYW5kIHBlcmlvZGljIHJlc2NoZWR1bGUKK2Nh bGxiYWNrcykgbXVzdCBub3QgdGhyb3cgZXhjZXB0aW9ucywgYW5kIG1pZ2h0IG5lZWQgYSBDPG5v ZXhjZXB0Pgorc3BlY2lmaWNhdGlvbi4gSWYgeW91IGhhdmUgY29kZSB0aGF0IG5lZWRzIHRvIGJl IGNvbXBpbGVkIGFzIGJvdGggQyBhbmQKK0MrKyB5b3UgY2FuIHVzZSB0aGUgQzxFVl9OT0VYQ0VQ VD4gbWFjcm8gZm9yIHRoaXM6CsKgCsKgIMKgIHN0YXRpYyB2b2lkCi0gwqAgZmF0YWxfZXJyb3Ig KGNvbnN0IGNoYXIgKm1zZykgRVZfVEhST1cKKyDCoCBmYXRhbF9lcnJvciAoY29uc3QgY2hhciAq bXNnKSBFVl9OT0VYQ0VQVArCoCDCoCB7CsKgIMKgIMKgIHBlcnJvciAobXNnKTsKwqAgwqAgwqAg YWJvcnQgKCk7CkBAIC00MTQyLDYgKzQyNjksOSBAQCBtZXRob2QuCsKgRm9yIEM8ZXY6OmVtYmVk PiB3YXRjaGVycyB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgQzxzZXRfZW1iZWQ+LCB0byBhdm9pZArC oGNsYXNoaW5nIHdpdGggdGhlIEM8c2V0IChsb29wKT4gbWV0aG9kLgrCoAorRm9yIEM8ZXY6Omlv PiB3YXRjaGVycyB0aGVyZSBpcyBhbiBhZGRpdGlvbmFsIEM8c2V0PiBtZXRob2QgdGhhdCBhY2Vw dHMgYQorbmV3IGV2ZW50IG1hc2sgb25seSwgYW5kIGludGVybmFsbHkgY2FsbHMgQzxldl9pb19t b2RmaWZ5Pi4KKwrCoD1pdGVtIHctPnN0YXJ0ICgpCsKgCsKgU3RhcnRzIHRoZSB3YXRjaGVyLiBO b3RlIHRoYXQgdGhlcmUgaXMgbm8gQzxsb29wPiBhcmd1bWVudCwgYXMgdGhlCkBAIC00Mzg4LDEx ICs0NTE4LDEzIEBAIGluIHlvdXIgaW5jbHVkZSBwYXRoIChlLmcuIGluIGxpYmV2LyB3aGVuIHVz aW5nIC1JbGliZXYpOgrCoArCoCDCoCBldl93aW4zMi5jIMKgIMKgIMKgcmVxdWlyZWQgb24gd2lu MzIgcGxhdGZvcm1zIG9ubHkKwqAKLSDCoCBldl9zZWxlY3QuYyDCoCDCoCBvbmx5IHdoZW4gc2Vs ZWN0IGJhY2tlbmQgaXMgZW5hYmxlZCAod2hpY2ggaXMgZW5hYmxlZCBieSBkZWZhdWx0KQotIMKg IGV2X3BvbGwuYyDCoCDCoCDCoCBvbmx5IHdoZW4gcG9sbCBiYWNrZW5kIGlzIGVuYWJsZWQgKGRp c2FibGVkIGJ5IGRlZmF1bHQpCi0gwqAgZXZfZXBvbGwuYyDCoCDCoCDCoG9ubHkgd2hlbiB0aGUg ZXBvbGwgYmFja2VuZCBpcyBlbmFibGVkIChkaXNhYmxlZCBieSBkZWZhdWx0KQotIMKgIGV2X2tx dWV1ZS5jIMKgIMKgIG9ubHkgd2hlbiB0aGUga3F1ZXVlIGJhY2tlbmQgaXMgZW5hYmxlZCAoZGlz YWJsZWQgYnkgZGVmYXVsdCkKLSDCoCBldl9wb3J0LmMgwqAgwqAgwqAgb25seSB3aGVuIHRoZSBz b2xhcmlzIHBvcnQgYmFja2VuZCBpcyBlbmFibGVkIChkaXNhYmxlZCBieSBkZWZhdWx0KQorIMKg IGV2X3NlbGVjdC5jIMKgIMKgIG9ubHkgd2hlbiBzZWxlY3QgYmFja2VuZCBpcyBlbmFibGVkCisg wqAgZXZfcG9sbC5jIMKgIMKgIMKgIG9ubHkgd2hlbiBwb2xsIGJhY2tlbmQgaXMgZW5hYmxlZAor IMKgIGV2X2Vwb2xsLmMgwqAgwqAgwqBvbmx5IHdoZW4gdGhlIGVwb2xsIGJhY2tlbmQgaXMgZW5h YmxlZAorIMKgIGV2X2xpbnV4YWlvLmMgwqAgb25seSB3aGVuIHRoZSBsaW51eCBhaW8gYmFja2Vu ZCBpcyBlbmFibGVkCisgwqAgZXZfaW91cmluZy5jIMKgIMKgb25seSB3aGVuIHRoZSBsaW51eCBp b191cmluZyBiYWNrZW5kIGlzIGVuYWJsZWQKKyDCoCBldl9rcXVldWUuYyDCoCDCoCBvbmx5IHdo ZW4gdGhlIGtxdWV1ZSBiYWNrZW5kIGlzIGVuYWJsZWQKKyDCoCBldl9wb3J0LmMgwqAgwqAgwqAg b25seSB3aGVuIHRoZSBzb2xhcmlzIHBvcnQgYmFja2VuZCBpcyBlbmFibGVkCsKgCsKgRjxldi5j PiBpbmNsdWRlcyB0aGUgYmFja2VuZCBmaWxlcyBkaXJlY3RseSB3aGVuIGVuYWJsZWQsIHNvIHlv dSBvbmx5IG5lZWQKwqB0byBjb21waWxlIHRoaXMgc2luZ2xlIGZpbGUuCkBAIC00NTIxLDYgKzQ2 NTMsMzAgQEAgQzxldl9zaWduYWw+IGFuZCBDPGV2X2FzeW5jPiBwZXJmb3JtYW5jZSBhbmQgcmVk dWNlIHJlc291cmNlIGNvbnN1bXB0aW9uLgrCoElmIHVuZGVmaW5lZCwgaXQgd2lsbCBiZSBlbmFi bGVkIGlmIHRoZSBoZWFkZXJzIGluZGljYXRlIEdOVS9MaW51eCArIEdsaWJjCsKgMi43IG9yIG5l d2VyLCBvdGhlcndpc2UgZGlzYWJsZWQuCsKgCis9aXRlbSBFVl9VU0VfU0lHTkFMRkQKKworSWYg ZGVmaW5lZCB0byBiZSBDPDE+LCB0aGVuIGxpYmV2IHdpbGwgYXNzdW1lIHRoYXQgQzxzaWduYWxm ZCAoKT4gaXMKK2F2YWlsYWJsZSBhbmQgd2lsbCBwcm9iZSBmb3Iga2VybmVsIHN1cHBvcnQgYXQg cnVudGltZS4gVGhpcyBlbmFibGVzCit0aGUgdXNlIG9mIEVWRkxBR19TSUdOQUxGRCBmb3IgZmFz dGVyIGFuZCBzaW1wbGVyIHNpZ25hbCBoYW5kbGluZy4gSWYKK3VuZGVmaW5lZCwgaXQgd2lsbCBi ZSBlbmFibGVkIGlmIHRoZSBoZWFkZXJzIGluZGljYXRlIEdOVS9MaW51eCArIEdsaWJjCisyLjcg b3IgbmV3ZXIsIG90aGVyd2lzZSBkaXNhYmxlZC4KKworPWl0ZW0gRVZfVVNFX1RJTUVSRkQKKwor SWYgZGVmaW5lZCB0byBiZSBDPDE+LCB0aGVuIGxpYmV2IHdpbGwgYXNzdW1lIHRoYXQgQzx0aW1l cmZkICgpPiBpcworYXZhaWxhYmxlIGFuZCB3aWxsIHByb2JlIGZvciBrZXJuZWwgc3VwcG9ydCBh dCBydW50aW1lLiBUaGlzIGFsbG93cworbGliZXYgdG8gZGV0ZWN0IHRpbWUganVtcHMgYWNjdXJh dGVseS4gSWYgdW5kZWZpbmVkLCBpdCB3aWxsIGJlIGVuYWJsZWQKK2lmIHRoZSBoZWFkZXJzIGlu ZGljYXRlIEdOVS9MaW51eCArIEdsaWJjIDIuOCBvciBuZXdlciBhbmQgZGVmaW5lCitDPFRGRF9U SU1FUl9DQU5DRUxfT05fU0VUPiwgb3RoZXJ3aXNlIGRpc2FibGVkLgorCis9aXRlbSBFVl9VU0Vf RVZFTlRGRAorCitJZiBkZWZpbmVkIHRvIGJlIEM8MT4sIHRoZW4gbGliZXYgd2lsbCBhc3N1bWUg dGhhdCBDPGV2ZW50ZmQgKCk+IGlzCithdmFpbGFibGUgYW5kIHdpbGwgcHJvYmUgZm9yIGtlcm5l bCBzdXBwb3J0IGF0IHJ1bnRpbWUuIFRoaXMgd2lsbCBpbXByb3ZlCitDPGV2X3NpZ25hbD4gYW5k IEM8ZXZfYXN5bmM+IHBlcmZvcm1hbmNlIGFuZCByZWR1Y2UgcmVzb3VyY2UgY29uc3VtcHRpb24u CitJZiB1bmRlZmluZWQsIGl0IHdpbGwgYmUgZW5hYmxlZCBpZiB0aGUgaGVhZGVycyBpbmRpY2F0 ZSBHTlUvTGludXggKyBHbGliYworMi43IG9yIG5ld2VyLCBvdGhlcndpc2UgZGlzYWJsZWQuCisK wqA9aXRlbSBFVl9VU0VfU0VMRUNUCsKgCsKgSWYgdW5kZWZpbmVkIG9yIGRlZmluZWQgdG8gYmUg QzwxPiwgbGliZXYgd2lsbCBjb21waWxlIGluIHN1cHBvcnQgZm9yIHRoZQpAQCAtNDU5MSw2ICs0 NzQ3LDE5IEBAIG90aGVyd2lzZSBhbm90aGVyIG1ldGhvZCB3aWxsIGJlIHVzZWQgYXMgZmFsbGJh Y2suIFRoaXMgaXMgdGhlIHByZWZlcnJlZArCoGJhY2tlbmQgZm9yIEdOVS9MaW51eCBzeXN0ZW1z LiBJZiB1bmRlZmluZWQsIGl0IHdpbGwgYmUgZW5hYmxlZCBpZiB0aGUKwqBoZWFkZXJzIGluZGlj YXRlIEdOVS9MaW51eCArIEdsaWJjIDIuNCBvciBuZXdlciwgb3RoZXJ3aXNlIGRpc2FibGVkLgrC oAorPWl0ZW0gRVZfVVNFX0xJTlVYQUlPCisKK0lmIGRlZmluZWQgdG8gYmUgQzwxPiwgbGliZXYg d2lsbCBjb21waWxlIGluIHN1cHBvcnQgZm9yIHRoZSBMaW51eCBhaW8KK2JhY2tlbmQgKEM8RVZf VVNFX0VQT0xMPiBtdXN0IGFsc28gYmUgZW5hYmxlZCkuIElmIHVuZGVmaW5lZCwgaXQgd2lsbCBi ZQorZW5hYmxlZCBvbiBsaW51eCwgb3RoZXJ3aXNlIGRpc2FibGVkLgorCis9aXRlbSBFVl9VU0Vf SU9VUklORworCitJZiBkZWZpbmVkIHRvIGJlIEM8MT4sIGxpYmV2IHdpbGwgY29tcGlsZSBpbiBz dXBwb3J0IGZvciB0aGUgTGludXgKK2lvX3VyaW5nIGJhY2tlbmQgKEM8RVZfVVNFX0VQT0xMPiBt dXN0IGFsc28gYmUgZW5hYmxlZCkuIER1ZSB0byBpdCdzCitjdXJyZW50IGxpbWl0YXRpb25zIGl0 IGhhcyB0byBiZSByZXF1ZXN0ZWQgZXhwbGljaXRseS4gSWYgdW5kZWZpbmVkLCBpdAord2lsbCBi ZSBlbmFibGVkIG9uIGxpbnV4LCBvdGhlcndpc2UgZGlzYWJsZWQuCisKwqA9aXRlbSBFVl9VU0Vf S1FVRVVFCsKgCsKgSWYgZGVmaW5lZCB0byBiZSBDPDE+LCBsaWJldiB3aWxsIGNvbXBpbGUgaW4g c3VwcG9ydCBmb3IgdGhlIEJTRCBzdHlsZQpAQCAtNDg3Nyw2ICs1MDQ2LDkgQEAgY2FsbGVkIG9u Y2UgcGVyIGxvb3AsIHdoaWNoIGNhbiBzbG93IGRvd24gbGliZXYuIElmIHNldCB0byBDPDM+LCB0 aGVuIHRoZQrCoHZlcmlmaWNhdGlvbiBjb2RlIHdpbGwgYmUgY2FsbGVkIHZlcnkgZnJlcXVlbnRs eSwgd2hpY2ggd2lsbCBzbG93IGRvd24KwqBsaWJldiBjb25zaWRlcmFibHkuCsKgCitWZXJpZmlj YXRpb24gZXJyb3JzIGFyZSByZXBvcnRlZCB2aWEgQydzIEM8YXNzZXJ0PiBtZWNoYW5pc20sIHNv IGlmIHlvdQorZGlzYWJsZSB0aGF0IChlLmcuIGJ5IGRlZmluaW5nIEM8TkRFQlVHPikgdGhlbiBu byBlcnJvcnMgd2lsbCBiZSByZXBvcnRlZC4KKwrCoFRoZSBkZWZhdWx0IGlzIEM8MT4sIHVubGVz cyBDPEVWX0ZFQVRVUkVTPiBvdmVycmlkZXMgaXQsIGluIHdoaWNoIGNhc2UgaXQKwqB3aWxsIGJl IEM8MD4uCsKgCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJldi9ldl9lcG9sbC5jIGIvdGhp cmRfcGFydHkvbGliZXYvZXZfZXBvbGwuYwppbmRleCBkZjExOGE2ZmUuLjM0NmI0MTk2YiAxMDA2 NDQKLS0tIGEvdGhpcmRfcGFydHkvbGliZXYvZXZfZXBvbGwuYworKysgYi90aGlyZF9wYXJ0eS9s aWJldi9ldl9lcG9sbC5jCkBAIC0xLDcgKzEsNyBAQArCoC8qCsKgICogbGliZXYgZXBvbGwgZmQg YWN0aXZpdHkgYmFja2VuZArCoCAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDcsMjAwOCwyMDA5LDIw MTAsMjAxMSBNYXJjIEFsZXhhbmRlciBMZWhtYW5uIDxsaWJldkBzY2htb3JwLmRlPgorICogQ29w eXJpZ2h0IChjKSAyMDA3LDIwMDgsMjAwOSwyMDEwLDIwMTEsMjAxNiwyMDE3LDIwMTkgTWFyYyBB bGV4YW5kZXIgTGVobWFubiA8bGliZXZAc2NobW9ycC5kZT4KwqAgKiBBbGwgcmlnaHRzIHJlc2Vy dmVkLgrCoCAqCsKgICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhLQpAQCAtOTMsMTAgKzkzLDEwIEBAIGVw b2xsX21vZGlmeSAoRVZfUF8gaW50IGZkLCBpbnQgb2V2LCBpbnQgbmV2KQrCoCDCoGV2LmV2ZW50 cyDCoCA9IChuZXYgJiBFVl9SRUFEIMKgPyBFUE9MTElOIMKgOiAwKQrCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoHwgKG5ldiAmIEVWX1dSSVRFID8gRVBPTExPVVQgOiAwKTsKwqAKLSDCoGlmIChleHBl Y3RfdHJ1ZSAoIWVwb2xsX2N0bCAoYmFja2VuZF9mZCwgb2V2ICYmIG9sZG1hc2sgIT0gbmV2ID8g RVBPTExfQ1RMX01PRCA6IEVQT0xMX0NUTF9BREQsIGZkLCAmZXYpKSkKKyDCoGlmIChlY2JfZXhw ZWN0X3RydWUgKCFlcG9sbF9jdGwgKGJhY2tlbmRfZmQsIG9ldiAmJiBvbGRtYXNrICE9IG5ldiA/ IEVQT0xMX0NUTF9NT0QgOiBFUE9MTF9DVExfQURELCBmZCwgJmV2KSkpCsKgIMKgIMKgcmV0dXJu OwrCoAotIMKgaWYgKGV4cGVjdF90cnVlIChlcnJubyA9PSBFTk9FTlQpKQorIMKgaWYgKGVjYl9l eHBlY3RfdHJ1ZSAoZXJybm8gPT0gRU5PRU5UKSkKwqAgwqAgwqB7CsKgIMKgIMKgIMKgLyogaWYg RU5PRU5UIHRoZW4gdGhlIGZkIHdlbnQgYXdheSwgc28gdHJ5IHRvIGRvIHRoZSByaWdodCB0aGlu ZyAqLwrCoCDCoCDCoCDCoGlmICghbmV2KQpAQCAtMTA1LDcgKzEwNSw3IEBAIGVwb2xsX21vZGlm eSAoRVZfUF8gaW50IGZkLCBpbnQgb2V2LCBpbnQgbmV2KQrCoCDCoCDCoCDCoGlmICghZXBvbGxf Y3RsIChiYWNrZW5kX2ZkLCBFUE9MTF9DVExfQURELCBmZCwgJmV2KSkKwqAgwqAgwqAgwqAgwqBy ZXR1cm47CsKgIMKgIMKgfQotIMKgZWxzZSBpZiAoZXhwZWN0X3RydWUgKGVycm5vID09IEVFWElT VCkpCisgwqBlbHNlIGlmIChlY2JfZXhwZWN0X3RydWUgKGVycm5vID09IEVFWElTVCkpCsKgIMKg IMKgewrCoCDCoCDCoCDCoC8qIEVFWElTVCBtZWFucyB3ZSBpZ25vcmVkIGEgcHJldmlvdXMgREVM LCBidXQgdGhlIGZkIGlzIHN0aWxsIGFjdGl2ZSAqLwrCoCDCoCDCoCDCoC8qIGlmIHRoZSBrZXJu ZWwgbWFzayBpcyB0aGUgc2FtZSBhcyB0aGUgbmV3IG1hc2ssIHdlIGFzc3VtZSBpdCBoYXNuJ3Qg Y2hhbmdlZCAqLwpAQCAtMTE1LDcgKzExNSw3IEBAIGVwb2xsX21vZGlmeSAoRVZfUF8gaW50IGZk LCBpbnQgb2V2LCBpbnQgbmV2KQrCoCDCoCDCoCDCoGlmICghZXBvbGxfY3RsIChiYWNrZW5kX2Zk LCBFUE9MTF9DVExfTU9ELCBmZCwgJmV2KSkKwqAgwqAgwqAgwqAgwqByZXR1cm47CsKgIMKgIMKg fQotIMKgZWxzZSBpZiAoZXhwZWN0X3RydWUgKGVycm5vID09IEVQRVJNKSkKKyDCoGVsc2UgaWYg KGVjYl9leHBlY3RfdHJ1ZSAoZXJybm8gPT0gRVBFUk0pKQrCoCDCoCDCoHsKwqAgwqAgwqAgwqAv KiBFUEVSTSBtZWFucyB0aGUgZmQgaXMgYWx3YXlzIHJlYWR5LCBidXQgZXBvbGwgaXMgdG9vIHNu b2JiaXNoICovCsKgIMKgIMKgIMKgLyogdG8gaGFuZGxlIGl0LCB1bmxpa2Ugc2VsZWN0IG9yIHBv bGwuICovCkBAIC0xMjQsNyArMTI0LDcgQEAgZXBvbGxfbW9kaWZ5IChFVl9QXyBpbnQgZmQsIGlu dCBvZXYsIGludCBuZXYpCsKgIMKgIMKgIMKgLyogYWRkIGZkIHRvIGVwb2xsX2VwZXJtcywgaWYg bm90IGFscmVhZHkgaW5zaWRlICovCsKgIMKgIMKgIMKgaWYgKCEob2xkbWFzayAmIEVWX0VNQVNL X0VQRVJNKSkKwqAgwqAgwqAgwqAgwqB7Ci0gwqAgwqAgwqAgwqAgwqBhcnJheV9uZWVkc2l6ZSAo aW50LCBlcG9sbF9lcGVybXMsIGVwb2xsX2VwZXJtbWF4LCBlcG9sbF9lcGVybWNudCArIDEsIEVN UFRZMik7CisgwqAgwqAgwqAgwqAgwqBhcnJheV9uZWVkc2l6ZSAoaW50LCBlcG9sbF9lcGVybXMs IGVwb2xsX2VwZXJtbWF4LCBlcG9sbF9lcGVybWNudCArIDEsIGFycmF5X25lZWRzaXplX25vaW5p dCk7CsKgIMKgIMKgIMKgIMKgIMKgZXBvbGxfZXBlcm1zIFtlcG9sbF9lcGVybWNudCsrXSA9IGZk OwrCoCDCoCDCoCDCoCDCoH0KwqAKQEAgLTE0NCwxNiArMTQ0LDE2IEBAIGVwb2xsX3BvbGwgKEVW X1BfIGV2X3RzdGFtcCB0aW1lb3V0KQrCoCDCoGludCBpOwrCoCDCoGludCBldmVudGNudDsKwqAK LSDCoGlmIChleHBlY3RfZmFsc2UgKGVwb2xsX2VwZXJtY250KSkKLSDCoCDCoHRpbWVvdXQgPSAw LjsKKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChlcG9sbF9lcGVybWNudCkpCisgwqAgwqB0aW1l b3V0ID0gRVZfVFNfQ09OU1QgKDAuKTsKwqAKwqAgwqAvKiBlcG9sbCB3YWl0IHRpbWVzIGNhbm5v dCBiZSBsYXJnZXIgdGhhbiAoTE9OR19NQVggLSA5OTlVTCkgLyBIWiBtc2Vjcywgd2hpY2ggaXMg YmVsb3cgKi8KwqAgwqAvKiB0aGUgZGVmYXVsdCBsaWJldiBtYXggd2FpdCB0aW1lLCBob3dldmVy LiAqLwrCoCDCoEVWX1JFTEVBU0VfQ0I7Ci0gwqBldmVudGNudCA9IGVwb2xsX3dhaXQgKGJhY2tl bmRfZmQsIGVwb2xsX2V2ZW50cywgZXBvbGxfZXZlbnRtYXgsIHRpbWVvdXQgKiAxZTMpOworIMKg ZXZlbnRjbnQgPSBlcG9sbF93YWl0IChiYWNrZW5kX2ZkLCBlcG9sbF9ldmVudHMsIGVwb2xsX2V2 ZW50bWF4LCBFVl9UU19UT19NU0VDICh0aW1lb3V0KSk7CsKgIMKgRVZfQUNRVUlSRV9DQjsKwqAK LSDCoGlmIChleHBlY3RfZmFsc2UgKGV2ZW50Y250IDwgMCkpCisgwqBpZiAoZWNiX2V4cGVjdF9m YWxzZSAoZXZlbnRjbnQgPCAwKSkKwqAgwqAgwqB7CsKgIMKgIMKgIMKgaWYgKGVycm5vICE9IEVJ TlRSKQrCoCDCoCDCoCDCoCDCoGV2X3N5c2VyciAoIihsaWJldikgZXBvbGxfd2FpdCIpOwpAQCAt MTc2LDE0ICsxNzYsMTQgQEAgZXBvbGxfcG9sbCAoRVZfUF8gZXZfdHN0YW1wIHRpbWVvdXQpCsKg IMKgIMKgIMKgICogb3RoZXIgc3B1cmlvdXMgbm90aWZpY2F0aW9ucyB3aWxsIGJlIGZvdW5kIGJ5 IGVwb2xsX2N0bCwgYmVsb3cKwqAgwqAgwqAgwqAgKiB3ZSBhc3N1bWUgdGhhdCBmZCBpcyBhbHdh eXMgaW4gcmFuZ2UsIGFzIHdlIG5ldmVyIHNocmluayB0aGUgYW5mZHMgYXJyYXkKwqAgwqAgwqAg wqAgKi8KLSDCoCDCoCDCoGlmIChleHBlY3RfZmFsc2UgKCh1aW50MzJfdClhbmZkcyBbZmRdLmVn ZW4gIT0gKHVpbnQzMl90KShldi0+ZGF0YS51NjQgPj4gMzIpKSkKKyDCoCDCoCDCoGlmIChlY2Jf ZXhwZWN0X2ZhbHNlICgodWludDMyX3QpYW5mZHMgW2ZkXS5lZ2VuICE9ICh1aW50MzJfdCkoZXYt PmRhdGEudTY0ID4+IDMyKSkpCsKgIMKgIMKgIMKgIMKgewrCoCDCoCDCoCDCoCDCoCDCoC8qIHJl Y3JlYXRlIGtlcm5lbCBzdGF0ZSAqLwrCoCDCoCDCoCDCoCDCoCDCoHBvc3Rmb3JrIHw9IDI7CsKg IMKgIMKgIMKgIMKgIMKgY29udGludWU7CsKgIMKgIMKgIMKgIMKgfQrCoAotIMKgIMKgIMKgaWYg KGV4cGVjdF9mYWxzZSAoZ290ICYgfndhbnQpKQorIMKgIMKgIMKgaWYgKGVjYl9leHBlY3RfZmFs c2UgKGdvdCAmIH53YW50KSkKwqAgwqAgwqAgwqAgwqB7CsKgIMKgIMKgIMKgIMKgIMKgYW5mZHMg W2ZkXS5lbWFzayA9IHdhbnQ7CsKgCkBAIC0xOTUsNiArMTk1LDggQEAgZXBvbGxfcG9sbCAoRVZf UF8gZXZfdHN0YW1wIHRpbWVvdXQpCsKgIMKgIMKgIMKgIMKgIMKgICogYWJvdmUgd2l0aCB0aGUg Z2VuY291bnRlciBjaGVjayAoPT0gb3VyIGZkIGlzIG5vdCB0aGUgZXZlbnQgZmQpLCBhbmQKwqAg wqAgwqAgwqAgwqAgwqAgKiBwYXJ0aWFsbHkgaGVyZSwgd2hlbiBlcG9sbF9jdGwgcmV0dXJucyBh biBlcnJvciAoPT0gYSBjaGlsZCBoYXMgdGhlIGZkCsKgIMKgIMKgIMKgIMKgIMKgICogYnV0IHdl IGNsb3NlZCBpdCkuCisgwqAgwqAgwqAgwqAgwqAgKiBub3RlOiBmb3IgZXZlbnRzIHN1Y2ggYXMg UE9MTEhVUCwgd2hlcmUgd2UgY2FuJ3Qga25vdyB3aGV0aGVyIGl0IHJlZmVycworIMKgIMKgIMKg IMKgIMKgICogdG8gRVZfUkVBRCBvciBFVl9XUklURSwgd2UgbWlnaHQgaXNzdWUgcmVkdW5kYW50 IEVQT0xMX0NUTF9NT0QgY2FsbHMuCsKgIMKgIMKgIMKgIMKgIMKgICovCsKgIMKgIMKgIMKgIMKg IMKgZXYtPmV2ZW50cyA9ICh3YW50ICYgRVZfUkVBRCDCoD8gRVBPTExJTiDCoDogMCkKwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCAod2FudCAmIEVWX1dSSVRFID8gRVBPTExPVVQg OiAwKTsKQEAgLTIxMiw3ICsyMTQsNyBAQCBlcG9sbF9wb2xsIChFVl9QXyBldl90c3RhbXAgdGlt ZW91dCkKwqAgwqAgwqB9CsKgCsKgIMKgLyogaWYgdGhlIHJlY2VpdmUgYXJyYXkgd2FzIGZ1bGws IGluY3JlYXNlIGl0cyBzaXplICovCi0gwqBpZiAoZXhwZWN0X2ZhbHNlIChldmVudGNudCA9PSBl cG9sbF9ldmVudG1heCkpCisgwqBpZiAoZWNiX2V4cGVjdF9mYWxzZSAoZXZlbnRjbnQgPT0gZXBv bGxfZXZlbnRtYXgpKQrCoCDCoCDCoHsKwqAgwqAgwqAgwqBldl9mcmVlIChlcG9sbF9ldmVudHMp OwrCoCDCoCDCoCDCoGVwb2xsX2V2ZW50bWF4ID0gYXJyYXlfbmV4dHNpemUgKHNpemVvZiAoc3Ry dWN0IGVwb2xsX2V2ZW50KSwgZXBvbGxfZXZlbnRtYXgsIGVwb2xsX2V2ZW50bWF4ICsgMSk7CkBA IC0yMzUsMjMgKzIzNywzNCBAQCBlcG9sbF9wb2xsIChFVl9QXyBldl90c3RhbXAgdGltZW91dCkK wqAgwqAgwqB9CsKgfQrCoAotaW5saW5lX3NpemUKLWludAotZXBvbGxfaW5pdCAoRVZfUF8gaW50 IGZsYWdzKQorc3RhdGljIGludAorZXBvbGxfZXBvbGxfY3JlYXRlICh2b2lkKQrCoHsKLSNpZmRl ZiBFUE9MTF9DTE9FWEVDCi0gwqBiYWNrZW5kX2ZkID0gZXBvbGxfY3JlYXRlMSAoRVBPTExfQ0xP RVhFQyk7CisgwqBpbnQgZmQ7CsKgCi0gwqBpZiAoYmFja2VuZF9mZCA8IDAgJiYgKGVycm5vID09 IEVJTlZBTCB8fCBlcnJubyA9PSBFTk9TWVMpKQorI2lmIGRlZmluZWQgRVBPTExfQ0xPRVhFQyAm JiAhZGVmaW5lZCBfX0FORFJPSURfXworIMKgZmQgPSBlcG9sbF9jcmVhdGUxIChFUE9MTF9DTE9F WEVDKTsKKworIMKgaWYgKGZkIDwgMCAmJiAoZXJybm8gPT0gRUlOVkFMIHx8IGVycm5vID09IEVO T1NZUykpCsKgI2VuZGlmCi0gwqAgwqBiYWNrZW5kX2ZkID0gZXBvbGxfY3JlYXRlICgyNTYpOwor IMKgIMKgeworIMKgIMKgIMKgZmQgPSBlcG9sbF9jcmVhdGUgKDI1Nik7CsKgCi0gwqBpZiAoYmFj a2VuZF9mZCA8IDApCi0gwqAgwqByZXR1cm4gMDsKKyDCoCDCoCDCoGlmIChmZCA+PSAwKQorIMKg IMKgIMKgIMKgZmNudGwgKGZkLCBGX1NFVEZELCBGRF9DTE9FWEVDKTsKKyDCoCDCoH0KKworIMKg cmV0dXJuIGZkOworfQrCoAotIMKgZmNudGwgKGJhY2tlbmRfZmQsIEZfU0VURkQsIEZEX0NMT0VY RUMpOworaW5saW5lX3NpemUKK2ludAorZXBvbGxfaW5pdCAoRVZfUF8gaW50IGZsYWdzKQorewor IMKgaWYgKChiYWNrZW5kX2ZkID0gZXBvbGxfZXBvbGxfY3JlYXRlICgpKSA8IDApCisgwqAgwqBy ZXR1cm4gMDsKwqAKLSDCoGJhY2tlbmRfbWludGltZSA9IDFlLTM7IC8qIGVwb2xsIGRvZXMgc29t ZXRpbWVzIHJldHVybiBlYXJseSwgdGhpcyBpcyBqdXN0IHRvIGF2b2lkIHRoZSB3b3JzdCAqLwor IMKgYmFja2VuZF9taW50aW1lID0gRVZfVFNfQ09OU1QgKDFlLTMpOyAvKiBlcG9sbCBkb2VzIHNv bWV0aW1lcyByZXR1cm4gZWFybHksIHRoaXMgaXMganVzdCB0byBhdm9pZCB0aGUgd29yc3QgKi8K wqAgwqBiYWNrZW5kX21vZGlmeSDCoD0gZXBvbGxfbW9kaWZ5OwrCoCDCoGJhY2tlbmRfcG9sbCDC oCDCoD0gZXBvbGxfcG9sbDsKwqAKQEAgLTI2OSwxNyArMjgyLDE1IEBAIGVwb2xsX2Rlc3Ryb3kg KEVWX1ApCsKgIMKgYXJyYXlfZnJlZSAoZXBvbGxfZXBlcm0sIEVNUFRZKTsKwqB9CsKgCi1pbmxp bmVfc2l6ZQotdm9pZAorZWNiX2NvbGQKK3N0YXRpYyB2b2lkCsKgZXBvbGxfZm9yayAoRVZfUCkK wqB7CsKgIMKgY2xvc2UgKGJhY2tlbmRfZmQpOwrCoAotIMKgd2hpbGUgKChiYWNrZW5kX2ZkID0g ZXBvbGxfY3JlYXRlICgyNTYpKSA8IDApCisgwqB3aGlsZSAoKGJhY2tlbmRfZmQgPSBlcG9sbF9l cG9sbF9jcmVhdGUgKCkpIDwgMCkKwqAgwqAgwqBldl9zeXNlcnIgKCIobGliZXYpIGVwb2xsX2Ny ZWF0ZSIpOwrCoAotIMKgZmNudGwgKGJhY2tlbmRfZmQsIEZfU0VURkQsIEZEX0NMT0VYRUMpOwot CsKgIMKgZmRfcmVhcm1fYWxsIChFVl9BKTsKwqB9CsKgCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9saWJldi9ldl9pb3VyaW5nLmMgYi90aGlyZF9wYXJ0eS9saWJldi9ldl9pb3VyaW5nLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5iZmQzZGU2NWYKLS0tIC9kZXYvbnVs bAorKysgYi90aGlyZF9wYXJ0eS9saWJldi9ldl9pb3VyaW5nLmMKQEAgLTAsMCArMSw2OTQgQEAK Ky8qCisgKiBsaWJldiBsaW51eCBpb191cmluZyBmZCBhY3Rpdml0eSBiYWNrZW5kCisgKgorICog Q29weXJpZ2h0IChjKSAyMDE5LTIwMjAgTWFyYyBBbGV4YW5kZXIgTGVobWFubiA8bGliZXZAc2No bW9ycC5kZT4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlm aWNhLQorICogdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg Y29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIMKgIDEuIMKgUmVkaXN0cmlidXRpb25zIG9mIHNv dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogwqAg wqAgwqAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l ci4KKyAqCisgKiDCoCAyLiDCoFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiDCoCDCoCDCoCBub3RpY2UsIHRoaXMgbGlz dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiDC oCDCoCDCoCBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0 aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg VEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJB TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U SUVTIE9GIE1FUi0KKyAqIENIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIMKgSU4gTk8KKyAqIEVWRU5UIFNIQUxMIFRIRSBBVVRI T1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFLQor ICogQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisgKiBPUiBCVVNJTkVT UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ TElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USC0KKyAqIEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRAorICog T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIEFsdGVybmF0aXZlbHks IHRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgbWF5IGJlIHVzZWQgdW5kZXIgdGhlIHRlcm1zIG9m CisgKiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSB2ZXJzaW9uIDIgb3Ig YW55IGxhdGVyIHZlcnNpb24sCisgKiBpbiB3aGljaCBjYXNlIHRoZSBwcm92aXNpb25zIG9mIHRo ZSBHUEwgYXJlIGFwcGxpY2FibGUgaW5zdGVhZCBvZgorICogdGhlIGFib3ZlLiBJZiB5b3Ugd2lz aCB0byBhbGxvdyB0aGUgdXNlIG9mIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUKKyAqIG9ubHkg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHUEwgYW5kIG5vdCB0byBhbGxvdyBvdGhlcnMgdG8gdXNl IHlvdXIKKyAqIHZlcnNpb24gb2YgdGhpcyBmaWxlIHVuZGVyIHRoZSBCU0QgbGljZW5zZSwgaW5k aWNhdGUgeW91ciBkZWNpc2lvbgorICogYnkgZGVsZXRpbmcgdGhlIHByb3Zpc2lvbnMgYWJvdmUg YW5kIHJlcGxhY2UgdGhlbSB3aXRoIHRoZSBub3RpY2UKKyAqIGFuZCBvdGhlciBwcm92aXNpb25z IHJlcXVpcmVkIGJ5IHRoZSBHUEwuIElmIHlvdSBkbyBub3QgZGVsZXRlIHRoZQorICogcHJvdmlz aW9ucyBhYm92ZSwgYSByZWNpcGllbnQgbWF5IHVzZSB5b3VyIHZlcnNpb24gb2YgdGhpcyBmaWxl IHVuZGVyCisgKiBlaXRoZXIgdGhlIEJTRCBvciB0aGUgR1BMLgorICovCisKKy8qCisgKiBnZW5l cmFsIG5vdGVzIGFib3V0IGxpbnV4IGlvX3VyaW5nOgorICoKKyAqIGEpIGl0J3MgdGhlIGJlc3Qg aW50ZXJmYWNlIEkgaGF2ZSBzZWVuIHNvIGZhci4gb24gbGludXguCisgKiBiKSBiZXN0IGlzIG5v dCBuZWNlc3NhcmlseSB2ZXJ5IGdvb2QuCisgKiBjKSBpdCdzIGJldHRlciB0aGFuIHRoZSBhaW8g bWVzcywgZG9lc24ndCBzdWZmZXIgZnJvbSB0aGUgZm9yayBwcm9ibGVtcworICogwqAgwqBvZiBs aW51eCBhaW8gb3IgZXBvbGwgYW5kIHNvIG9uIGFuZCBzbyBvbi4gYW5kIHlvdSBjb3VsZCBkbyBl dmVudCBzdHVmZgorICogwqAgwqB3aXRob3V0IGFueSBzeXNjYWxscy4gd2hhdCdzIG5vdCB0byBs aWtlPworICogZCkgb2ssIGl0J3MgdmFzdGx5IG1vcmUgY29tcGxleCwgYnV0IHRoYXQncyBvaywg cmVhbGx5LgorICogZSkgd2h5IHR3byBtbWFwcyBpbnN0ZWFkIG9mIG9uZT8gb25lIHdvdWxkIGJl IG1vcmUgc3BhY2UtZWZmaWNpZW50LAorICogwqAgwqBhbmQgSSBjYW4ndCBzZWUgd2hhdCBiZW5l Zml0IHR3byB3b3VsZCBoYXZlIChvdGhlciB0aGFuIGJlaW5nCisgKiDCoCDCoHNvbWVob3cgcmVz aXphYmxlL3JlbG9jYXRhYmxlLCBidXQgdGhhdCdzIGFwcGFyZW50bHkgbm90IHBvc3NpYmxlKS4K KyAqIGYpIGhtbSwgaXQncyBwcmFjdGljYWxseSB1bmRlYnVnZ2FibGUgKGdkYiBjYW4ndCBhY2Nl c3MgdGhlIG1lbW9yeSwgYW5kCisgKiDCoCDCoHRoZSBiaXphcnJlIHdheSBzdHJ1Y3R1cmUgb2Zm c2V0cyBhcmUgY29tbXVuaWNhdGVkIG1ha2VzIGl0IGhhcmQgdG8KKyAqIMKgIMKganVzdCBwcmlu dCB0aGUgcmluZyBidWZmZXIgaGVhZHMsIGV2ZW4gKmlmZiogdGhlIG1lbW9yeSB3ZXJlIHZpc2li bGUKKyAqIMKgIMKgaW4gZ2RiLiBidXQgdGhlbiwgdGhhdCdzIGFsc28gb2ssIHJlYWxseS4KKyAq IGcpIHdlbGwsIHlvdSBjYW5ub3Qgc3BlY2lmeSBhIHRpbWVvdXQgd2hlbiB3YWl0aW5nIGZvciBl dmVudHMuIG5vLAorICogwqAgwqBzZXJpb3VzbHksIHRoZSBpbnRlcmZhY2UgZG9lc24ndCBzdXBw b3J0IGEgdGltZW91dC4gbmV2ZXIgc2VlbiBfdGhhdF8KKyAqIMKgIMKgYmVmb3JlLiBzdXJlLCB5 b3UgY2FuIHVzZSBhIHRpbWVyZmQsIGJ1dCB0aGF0J3MgYW5vdGhlciBzeXNjYWxsCisgKiDCoCDC oHlvdSBjb3VsZCBoYXZlIGF2b2lkZWQuIG92ZXJhbGwsIHRoaXMgYml6YXJyZSBvbWlzc2lvbiBz bWVsbHMKKyAqIMKgIMKgbGlrZSBhIMK1LW9wdGltaXNhdGlvbiBieSB0aGUgaW9fdXJpbmcgYXV0 aG9yIGZvciBoaXMgcGVyc29uYWwKKyAqIMKgIMKgYXBwbGljYXRpb25zLCB0byB0aGUgZGV0cmlt ZW50IG9mIGV2ZXJ5Ym9keSBlbHNlIHdobyBqdXN0IHdhbnRzCisgKiDCoCDCoGFuIGV2ZW50IGxv b3AuIGJ1dCwgdW1tLCBvaywgaWYgdGhhdCdzIGFsbCwgaXQgY291bGQgYmUgd29yc2UuCisgKiDC oCDCoChmcm9tIHdoYXQgSSBnYXRoZXIgZnJvbSB0aGUgYXV0aG9yIEplbnMgQXhib2UsIGl0IHNp bXBseSBkaWRuJ3QKKyAqIMKgIMKgb2NjdXIgdG8gaGltLCBhbmQgaGUgbWFkZSBnb29kIG9uIGl0 IGJ5IGFkZGluZyBhbiB1bmxpbWl0ZWQgbnViZXIKKyAqIMKgIMKgb2YgdGltZW91dHMgbGF0ZXIg OikuCisgKiBoKSBpbml0aWFsbHkgdGhlcmUgd2FzIGEgaGFyZGNvZGVkIGxpbWl0IG9mIDQwOTYg b3V0c3RhbmRpbmcgZXZlbnRzLgorICogwqAgwqBsYXRlciB2ZXJzaW9ucyBub3Qgb25seSBidW1w IHRoaXMgdG8gMzJrLCBidXQgYWxzbyBjYW4gaGFuZGxlCisgKiDCoCDCoGFuIHVubGltaXRlZCBh bW91bnQgb2YgZXZlbnRzLCBzbyB0aGlzIG9ubHkgYWZmZWN0cyB0aGUgYmF0Y2ggc2l6ZS4KKyAq IGkpIHVubGlrZSBsaW51eCBhaW8sIHlvdSAqY2FuKiByZWdpc3RlciBtb3JlIHRoZW4gdGhlIGxp bWl0CisgKiDCoCDCoG9mIGZkIGV2ZW50cy4gd2hpbGUgZWFybHkgdmVyaXNvbnMgb2YgaW9fdXJp bmcgc2lnbmFsbGVkIGFuIG92ZXJmbG93CisgKiDCoCDCoGFuZCB5b3UgZW5kZWQgdXAgZ2V0dGlu ZyB3ZXQuIDUuNSsgZG9lcyBub3QgZG8gdGhpcyBhbnltb3JlLgorICogaikgYnV0LCBvaCBteSEg aXQgaGFkIGV4YWN0bHkgdGhlIHNhbWUgYnVncyBhcyB0aGUgbGludXggYWlvIGJhY2tlbmQsCisg KiDCoCDCoHdoZXJlIHNvbWUgdW5kb2N1bWVudGVkIHBvbGwgY29tYmluYXRpb25zIGp1c3QgZmFp bC4gZm9ydHVuYXRlbHksCisgKiDCoCDCoGFmdGVyIGZpbmFsbHkgcmVhY2hpbmcgdGhlIGF1dGhv ciwgaGUgd2FzIG1vcmUgdGhhbiB3aWxsaW5nIHRvIGZpeAorICogwqAgwqB0aGlzIHByb2JhYmx5 IGluIDUuNisuCisgKiBrKSBvdmVyYWxsLCB0aGUgKkFQSSogaXRzZWxmIGlzLCBJIGRhcmUgdG8g c2F5LCBub3QgYSB0b3RhbCB0cmFpbndyZWNrLgorICogwqAgwqBvbmNlIHRoZSBidWdzIGFlIGZp eGVkIChwcm9iYWJseSBpbiA1LjYrKSwgaXQgd2lsbCBiZSB3aXRob3V0CisgKiDCoCDCoGNvbXBl dGl0aW9uLgorICovCisKKy8qIFRPRE86IHVzZSBpbnRlcm5hbCBUSU1FT1VUICovCisvKiBUT0RP OiB0YWtlIGFkdmFudGFnZSBvZiBzaW5nbGUgbW1hcCwgTk9EUk9QIGV0Yy4gKi8KKy8qIFRPRE86 IHJlc2l6ZSBjcS9zcSBzaXplIGluZGVwZW5kZW50bHkgKi8KKworI2luY2x1ZGUgPHN5cy90aW1l cmZkLmg+CisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKyNpbmNsdWRlIDxwb2xsLmg+CisjaW5jbHVk ZSA8c3RkaW50Lmg+CisKKyNkZWZpbmUgSU9VUklOR19JTklUX0VOVFJJRVMgMzIKKworLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLworLyogc3lzY2FsbCB3cmFwZGFkb29wIC0gdGhpcyBzZWN0aW9uIGhh cyB0aGUgcmF3IGFwaS9hYmkgZGVmaW5pdGlvbnMgKi8KKworI2luY2x1ZGUgPGxpbnV4L2ZzLmg+ CisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKworLyogbW9zdGx5IGRpcmVjdGx5IHRha2VuIGZy b20gdGhlIGtlcm5lbCBvciBkb2N1bWVudGF0aW9uICovCisKK3N0cnVjdCBpb191cmluZ19zcWUK K3sKKyDCoF9fdTggb3Bjb2RlOworIMKgX191OCBmbGFnczsKKyDCoF9fdTE2IGlvcHJpbzsKKyDC oF9fczMyIGZkOworIMKgdW5pb24geworIMKgIMKgX191NjQgb2ZmOworIMKgIMKgX191NjQgYWRk cjI7CisgwqB9OworIMKgX191NjQgYWRkcjsKKyDCoF9fdTMyIGxlbjsKKyDCoHVuaW9uIHsKKyDC oCDCoF9fa2VybmVsX3J3Zl90IHJ3X2ZsYWdzOworIMKgIMKgX191MzIgZnN5bmNfZmxhZ3M7Cisg wqAgwqBfX3UxNiBwb2xsX2V2ZW50czsKKyDCoCDCoF9fdTMyIHN5bmNfcmFuZ2VfZmxhZ3M7Cisg wqAgwqBfX3UzMiBtc2dfZmxhZ3M7CisgwqAgwqBfX3UzMiB0aW1lb3V0X2ZsYWdzOworIMKgIMKg X191MzIgYWNjZXB0X2ZsYWdzOworIMKgIMKgX191MzIgY2FuY2VsX2ZsYWdzOworIMKgIMKgX191 MzIgb3Blbl9mbGFnczsKKyDCoCDCoF9fdTMyIHN0YXR4X2ZsYWdzOworIMKgfTsKKyDCoF9fdTY0 IHVzZXJfZGF0YTsKKyDCoHVuaW9uIHsKKyDCoCDCoF9fdTE2IGJ1Zl9pbmRleDsKKyDCoCDCoF9f dTY0IF9fcGFkMlszXTsKKyDCoH07Cit9OworCitzdHJ1Y3QgaW9fdXJpbmdfY3FlCit7CisgwqBf X3U2NCB1c2VyX2RhdGE7CisgwqBfX3MzMiByZXM7CisgwqBfX3UzMiBmbGFnczsKK307CisKK3N0 cnVjdCBpb19zcXJpbmdfb2Zmc2V0cworeworIMKgX191MzIgaGVhZDsKKyDCoF9fdTMyIHRhaWw7 CisgwqBfX3UzMiByaW5nX21hc2s7CisgwqBfX3UzMiByaW5nX2VudHJpZXM7CisgwqBfX3UzMiBm bGFnczsKKyDCoF9fdTMyIGRyb3BwZWQ7CisgwqBfX3UzMiBhcnJheTsKKyDCoF9fdTMyIHJlc3Yx OworIMKgX191NjQgcmVzdjI7Cit9OworCitzdHJ1Y3QgaW9fY3FyaW5nX29mZnNldHMKK3sKKyDC oF9fdTMyIGhlYWQ7CisgwqBfX3UzMiB0YWlsOworIMKgX191MzIgcmluZ19tYXNrOworIMKgX191 MzIgcmluZ19lbnRyaWVzOworIMKgX191MzIgb3ZlcmZsb3c7CisgwqBfX3UzMiBjcWVzOworIMKg X191NjQgcmVzdlsyXTsKK307CisKK3N0cnVjdCBpb191cmluZ19wYXJhbXMKK3sKKyDCoF9fdTMy IHNxX2VudHJpZXM7CisgwqBfX3UzMiBjcV9lbnRyaWVzOworIMKgX191MzIgZmxhZ3M7CisgwqBf X3UzMiBzcV90aHJlYWRfY3B1OworIMKgX191MzIgc3FfdGhyZWFkX2lkbGU7CisgwqBfX3UzMiBm ZWF0dXJlczsKKyDCoF9fdTMyIHJlc3ZbNF07CisgwqBzdHJ1Y3QgaW9fc3FyaW5nX29mZnNldHMg c3Ffb2ZmOworIMKgc3RydWN0IGlvX2NxcmluZ19vZmZzZXRzIGNxX29mZjsKK307CisKKyNkZWZp bmUgSU9SSU5HX1NFVFVQX0NRU0laRSAweDAwMDAwMDA4CisKKyNkZWZpbmUgSU9SSU5HX09QX1BP TExfQUREIMKgIMKgIMKgIMKgNgorI2RlZmluZSBJT1JJTkdfT1BfUE9MTF9SRU1PVkUgwqAgwqAg NworI2RlZmluZSBJT1JJTkdfT1BfVElNRU9VVCDCoCDCoCDCoCDCoDExCisjZGVmaW5lIElPUklO R19PUF9USU1FT1VUX1JFTU9WRSAxMgorCisvKiByZWxhdGl2ZSBvciBhYnNvbHV0ZSwgcmVmZXJl bmNlIGNsb2NrIGlzIENMT0NLX01PTk9UT05JQyAqLworc3RydWN0IGlvdXJpbmdfa2VybmVsX3Rp bWVzcGVjCit7CisgwqBpbnQ2NF90IHR2X3NlYzsKKyDCoGxvbmcgbG9uZyB0dl9uc2VjOworfTsK KworI2RlZmluZSBJT1JJTkdfVElNRU9VVF9BQlMgMHgwMDAwMDAwMQorCisjZGVmaW5lIElPUklO R19FTlRFUl9HRVRFVkVOVFMgMHgwMQorCisjZGVmaW5lIElPUklOR19PRkZfU1FfUklORyAweDAw MDAwMDAwVUxMCisjZGVmaW5lIElPUklOR19PRkZfQ1FfUklORyAweDA4MDAwMDAwVUxMCisjZGVm aW5lIElPUklOR19PRkZfU1FFUyDCoCDCoCDCoCAweDEwMDAwMDAwVUxMCisKKyNkZWZpbmUgSU9S SU5HX0ZFQVRfU0lOR0xFX01NQVAgwqAgMHgwMDAwMDAwMQorI2RlZmluZSBJT1JJTkdfRkVBVF9O T0RST1AgwqAgwqAgwqAgwqAweDAwMDAwMDAyCisjZGVmaW5lIElPUklOR19GRUFUX1NVQk1JVF9T VEFCTEUgMHgwMDAwMDAwNAorCitpbmxpbmVfc2l6ZQoraW50CitldnN5c19pb191cmluZ19zZXR1 cCAodW5zaWduZWQgZW50cmllcywgc3RydWN0IGlvX3VyaW5nX3BhcmFtcyAqcGFyYW1zKQorewor IMKgcmV0dXJuIGV2X3N5c2NhbGwyIChTWVNfaW9fdXJpbmdfc2V0dXAsIGVudHJpZXMsIHBhcmFt cyk7Cit9CisKK2lubGluZV9zaXplCitpbnQKK2V2c3lzX2lvX3VyaW5nX2VudGVyIChpbnQgZmQs IHVuc2lnbmVkIHRvX3N1Ym1pdCwgdW5zaWduZWQgbWluX2NvbXBsZXRlLCB1bnNpZ25lZCBmbGFn cywgY29uc3Qgc2lnc2V0X3QgKnNpZywgc2l6ZV90IHNpZ3N6KQoreworIMKgcmV0dXJuIGV2X3N5 c2NhbGw2IChTWVNfaW9fdXJpbmdfZW50ZXIsIGZkLCB0b19zdWJtaXQsIG1pbl9jb21wbGV0ZSwg ZmxhZ3MsIHNpZywgc2lnc3opOworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBhY3R1 YWwgYmFja2VkIGltcGxlbWVudGF0aW9uICovCisKKy8qIHdlIGhvcGUgdGhhdCB2b2xhdGlsZSB3 aWxsIG1ha2UgdGhlIGNvbXBpbGVyIGFjY2VzcyB0aGlzIHZhcmlhYmxlcyBvbmx5IG9uY2UgKi8K KyNkZWZpbmUgRVZfU1FfVkFSKG5hbWUpICoodm9sYXRpbGUgdW5zaWduZWQgKikoKGNoYXIgKilp b3VyaW5nX3NxX3JpbmcgKyBpb3VyaW5nX3NxXyAjIyBuYW1lKQorI2RlZmluZSBFVl9DUV9WQVIo bmFtZSkgKih2b2xhdGlsZSB1bnNpZ25lZCAqKSgoY2hhciAqKWlvdXJpbmdfY3FfcmluZyArIGlv dXJpbmdfY3FfICMjIG5hbWUpCisKKy8qIHRoZSBpbmRleCBhcnJheSAqLworI2RlZmluZSBFVl9T UV9BUlJBWSDCoCDCoCAoKHVuc2lnbmVkICopKChjaGFyICopaW91cmluZ19zcV9yaW5nICsgaW91 cmluZ19zcV9hcnJheSkpCisKKy8qIHRoZSBzdWJtaXQvY29tcGxldGlvbiBxdWV1ZSBlbnRyaWVz ICovCisjZGVmaW5lIEVWX1NRRVMgwqAgwqAgwqAgwqAgKChzdHJ1Y3QgaW9fdXJpbmdfc3FlICop IMKgIMKgIMKgIMKgIGlvdXJpbmdfc3FlcykKKyNkZWZpbmUgRVZfQ1FFUyDCoCDCoCDCoCDCoCAo KHN0cnVjdCBpb191cmluZ19jcWUgKikoKGNoYXIgKilpb3VyaW5nX2NxX3JpbmcgKyBpb3VyaW5n X2NxX2NxZXMpKQorCitpbmxpbmVfc3BlZWQKK2ludAoraW91cmluZ19lbnRlciAoRVZfUF8gZXZf dHN0YW1wIHRpbWVvdXQpCit7CisgwqBpbnQgcmVzOworCisgwqBFVl9SRUxFQVNFX0NCOworCisg wqByZXMgPSBldnN5c19pb191cmluZ19lbnRlciAoaW91cmluZ19mZCwgaW91cmluZ190b19zdWJt aXQsIDEsCisgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB0aW1l b3V0ID4gRVZfVFNfQ09OU1QgKDAuKSA/IElPUklOR19FTlRFUl9HRVRFVkVOVFMgOiAwLCAwLCAw KTsKKworIMKgYXNzZXJ0ICgoImxpYmV2OiBpb191cmluZ19lbnRlciBkaWQgbm90IGNvbnN1bWUg YWxsIHNxZXMiLCAocmVzIDwgMCB8fCByZXMgPT0gaW91cmluZ190b19zdWJtaXQpKSk7CisKKyDC oGlvdXJpbmdfdG9fc3VibWl0ID0gMDsKKworIMKgRVZfQUNRVUlSRV9DQjsKKworIMKgcmV0dXJu IHJlczsKK30KKworLyogVE9ETzogY2FuIHdlIG1vdmUgdGhpbmdzIGFyb3VuZCBzbyB3ZSBkb24n dCBuZWVkIHRoaXMgZm9yd2FyZC1yZWZlcmVuY2U/ICovCitzdGF0aWMgdm9pZAoraW91cmluZ19w b2xsIChFVl9QXyBldl90c3RhbXAgdGltZW91dCk7CisKK3N0YXRpYworc3RydWN0IGlvX3VyaW5n X3NxZSAqCitpb3VyaW5nX3NxZV9nZXQgKEVWX1ApCit7CisgwqB1bnNpZ25lZCB0YWlsOworIMKg CisgwqBmb3IgKDs7KQorIMKgIMKgeworIMKgIMKgIMKgdGFpbCA9IEVWX1NRX1ZBUiAodGFpbCk7 CisKKyDCoCDCoCDCoGlmIChlY2JfZXhwZWN0X3RydWUgKHRhaWwgKyAxIC0gRVZfU1FfVkFSICho ZWFkKSA8PSBFVl9TUV9WQVIgKHJpbmdfZW50cmllcykpKQorIMKgIMKgIMKgIMKgYnJlYWs7IC8q IHdoYXRzIHRoZSBwcm9ibGVtLCB3ZSBoYXZlIGZyZWUgc3FlcyAqLworCisgwqAgwqAgwqAvKiBx dWV1ZSBmdWxsLCBuZWVkIHRvIGZsdXNoIGFuZCBwb3NzaWJseSBoYW5kbGUgc29tZSBldmVudHMg Ki8KKworI2lmIEVWX0ZFQVRVUkVfQ09ERQorIMKgIMKgIMKgLyogZmlyc3Qgd2UgYXNrIHRoZSBr ZXJuZWwgbmljZWx5LCBtb3N0IG9mdGVuIHRoaXMgZnJlZXMgdXAgc29tZSBzcWVzICovCisgwqAg wqAgwqBpbnQgcmVzID0gaW91cmluZ19lbnRlciAoRVZfQV8gRVZfVFNfQ09OU1QgKDAuKSk7CisK KyDCoCDCoCDCoEVDQl9NRU1PUllfRkVOQ0VfQUNRVUlSRTsgLyogYmV0dGVyIHNhZmUgdGhhbiBz b3JyeSAqLworCisgwqAgwqAgwqBpZiAocmVzID49IDApCisgwqAgwqAgwqAgwqBjb250aW51ZTsg LyogeWVzLCBpdCB3b3JrZWQsIHRyeSBhZ2FpbiAqLworI2VuZGlmCisKKyDCoCDCoCDCoC8qIHNv bWUgcHJvYmxlbSwgcG9zc2libHkgRUJVU1kgLSBkbyB0aGUgZnVsbCBwb2xsIGFuZCBsZXQgaXQg aGFuZGxlIGFueSBpc3N1ZXMgKi8KKworIMKgIMKgIMKgaW91cmluZ19wb2xsIChFVl9BXyBFVl9U U19DT05TVCAoMC4pKTsKKyDCoCDCoCDCoC8qIGlvdXJpbmdfcG9sbCBzaG91bGQgaGF2ZSBkb25l IEVDQl9NRU1PUllfRkVOQ0VfQUNRVUlSRSBmb3IgdXMgKi8KKyDCoCDCoH0KKworIMKgLyphc3Nl cnQgKCgibGliZXY6IGlvX3VyaW5nIHF1ZXVlIGZ1bGwgYWZ0ZXIgZmx1c2giLCB0YWlsICsgMSAt IEVWX1NRX1ZBUiAoaGVhZCkgPD0gRVZfU1FfVkFSIChyaW5nX2VudHJpZXMpKSk7Ki8KKworIMKg cmV0dXJuIEVWX1NRRVMgKyAodGFpbCAmIEVWX1NRX1ZBUiAocmluZ19tYXNrKSk7Cit9CisKK2lu bGluZV9zaXplCitzdHJ1Y3QgaW9fdXJpbmdfc3FlICoKK2lvdXJpbmdfc3FlX3N1Ym1pdCAoRVZf UF8gc3RydWN0IGlvX3VyaW5nX3NxZSAqc3FlKQoreworIMKgdW5zaWduZWQgaWR4ID0gc3FlIC0g RVZfU1FFUzsKKworIMKgRVZfU1FfQVJSQVkgW2lkeF0gPSBpZHg7CisgwqBFQ0JfTUVNT1JZX0ZF TkNFX1JFTEVBU0U7CisgwqArK0VWX1NRX1ZBUiAodGFpbCk7CisgwqAvKkVDQl9NRU1PUllfRkVO Q0VfUkVMRUFTRTsgLyogZm9yIHRoZSB0aW1lIGJlaW5nIHdlIGFzc3VtZSB0aGlzIGlzIG5vdCBu ZWVkZWQgKi8KKyDCoCsraW91cmluZ190b19zdWJtaXQ7Cit9CisKKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KKworLyogd2hlbiB0aGUgdGltZXJmZCBleHBpcmVzIHdlIHNpbXBseSBub3RlIHRoZSBm YWN0LAorICogYXMgdGhlIHB1cnBvc2Ugb2YgdGhlIHRpbWVyZmQgaXMgdG8gd2FrZSB1cyB1cCwg bm90aGluZyBlbHNlLgorICogdGhlIG5leHQgaXRlcmF0aW9uIHNob3VsZCByZS1zZXQgaXQuCisg Ki8KK3N0YXRpYyB2b2lkCitpb3VyaW5nX3RmZF9jYiAoRVZfUF8gc3RydWN0IGV2X2lvICp3LCBp bnQgcmV2ZW50cykKK3sKKyDCoGlvdXJpbmdfdGZkX3RvID0gRVZfVFNUQU1QX0hVR0U7Cit9CisK Ky8qIGNhbGxlZCBmb3IgZnVsbCBhbmQgcGFydGlhbCBjbGVhbnVwICovCitlY2JfY29sZAorc3Rh dGljIGludAoraW91cmluZ19pbnRlcm5hbF9kZXN0cm95IChFVl9QKQoreworIMKgY2xvc2UgKGlv dXJpbmdfdGZkKTsKKyDCoGNsb3NlIChpb3VyaW5nX2ZkKTsKKworIMKgaWYgKGlvdXJpbmdfc3Ff cmluZyAhPSBNQVBfRkFJTEVEKSBtdW5tYXAgKGlvdXJpbmdfc3FfcmluZywgaW91cmluZ19zcV9y aW5nX3NpemUpOworIMKgaWYgKGlvdXJpbmdfY3FfcmluZyAhPSBNQVBfRkFJTEVEKSBtdW5tYXAg KGlvdXJpbmdfY3FfcmluZywgaW91cmluZ19jcV9yaW5nX3NpemUpOworIMKgaWYgKGlvdXJpbmdf c3FlcyDCoCDCoCE9IE1BUF9GQUlMRUQpIG11bm1hcCAoaW91cmluZ19zcWVzIMKgICwgaW91cmlu Z19zcWVzX3NpemUgwqAgKTsKKworIMKgaWYgKGV2X2lzX2FjdGl2ZSAoJmlvdXJpbmdfdGZkX3cp KQorIMKgIMKgeworIMKgIMKgIMKgZXZfcmVmIChFVl9BKTsKKyDCoCDCoCDCoGV2X2lvX3N0b3Ag KEVWX0FfICZpb3VyaW5nX3RmZF93KTsKKyDCoCDCoH0KK30KKworZWNiX2NvbGQKK3N0YXRpYyBp bnQKK2lvdXJpbmdfaW50ZXJuYWxfaW5pdCAoRVZfUCkKK3sKKyDCoHN0cnVjdCBpb191cmluZ19w YXJhbXMgcGFyYW1zID0geyAwIH07CisKKyDCoGlvdXJpbmdfdG9fc3VibWl0ID0gMDsKKworIMKg aW91cmluZ190ZmQgwqAgwqAgPSAtMTsKKyDCoGlvdXJpbmdfc3FfcmluZyA9IE1BUF9GQUlMRUQ7 CisgwqBpb3VyaW5nX2NxX3JpbmcgPSBNQVBfRkFJTEVEOworIMKgaW91cmluZ19zcWVzIMKgIMKg PSBNQVBfRkFJTEVEOworCisgwqBpZiAoIWhhdmVfbW9ub3RvbmljKSAvKiBjYW5ub3QgcmVhbGx5 IGhhcHBlbiwgYnV0IHdoYXQgaWYxMSAqLworIMKgIMKgcmV0dXJuIC0xOworCisgwqBmb3IgKDs7 KQorIMKgIMKgeworIMKgIMKgIMKgaW91cmluZ19mZCA9IGV2c3lzX2lvX3VyaW5nX3NldHVwIChp b3VyaW5nX2VudHJpZXMsICZwYXJhbXMpOworCisgwqAgwqAgwqBpZiAoaW91cmluZ19mZCA+PSAw KQorIMKgIMKgIMKgIMKgYnJlYWs7IC8qIHlpcHBpZSAqLworCisgwqAgwqAgwqBpZiAoZXJybm8g IT0gRUlOVkFMKQorIMKgIMKgIMKgIMKgcmV0dXJuIC0xOyAvKiB3ZSBmYWlsZWQgKi8KKworI2lm IFRPRE8KKyDCoCDCoCDCoGlmICgofnBhcmFtcy5mZWF0dXJlcykgJiAoSU9SSU5HX0ZFQVRfTk9E Uk9QIHwgSU9SSU5HX0ZFQVRVUkVfU0lOR0xFX01NQVAgfCBJT1JJTkdfRkVBVF9TVUJNSVRfU1RB QkxFKSkKKyDCoCDCoCDCoCDCoHJldHVybiAtMTsgLyogd2UgcmVxdWlyZSB0aGUgYWJvdmUgZmVh dHVyZXMgKi8KKyNlbmRpZgorCisgwqAgwqAgwqAvKiBFSU5WQUw6IGxvdHMgb2YgcG9zc2libGUg cmVhc29ucywgYnV0IG1heWJlCisgwqAgwqAgwqAgKiBpdCBpcyBiZWNhdXNlIHdlIGhpdCB0aGUg dW5xdWVyeWFibGUgaGFyZGNvZGVkIHNpemUgbGltaXQKKyDCoCDCoCDCoCAqLworCisgwqAgwqAg wqAvKiB3ZSBoaXQgdGhlIGxpbWl0IGFscmVhZHksIGdpdmUgdXAgKi8KKyDCoCDCoCDCoGlmIChp b3VyaW5nX21heF9lbnRyaWVzKQorIMKgIMKgIMKgIMKgcmV0dXJuIC0xOworCisgwqAgwqAgwqAv KiBmaXJzdCB0aW1lIHdlIGhpdCBFSU5WQUw/IGFzc3VtZSB3ZSBoaXQgdGhlIGxpbWl0LCBzbyBn byBiYWNrIGFuZCByZXRyeSAqLworIMKgIMKgIMKgaW91cmluZ19lbnRyaWVzID4+PSAxOworIMKg IMKgIMKgaW91cmluZ19tYXhfZW50cmllcyA9IGlvdXJpbmdfZW50cmllczsKKyDCoCDCoH0KKwor IMKgaW91cmluZ19zcV9yaW5nX3NpemUgPSBwYXJhbXMuc3Ffb2ZmLmFycmF5ICsgcGFyYW1zLnNx X2VudHJpZXMgKiBzaXplb2YgKHVuc2lnbmVkKTsKKyDCoGlvdXJpbmdfY3FfcmluZ19zaXplID0g cGFyYW1zLmNxX29mZi5jcWVzIMKgKyBwYXJhbXMuY3FfZW50cmllcyAqIHNpemVvZiAoc3RydWN0 IGlvX3VyaW5nX2NxZSk7CisgwqBpb3VyaW5nX3NxZXNfc2l6ZSDCoCDCoD0gwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgcGFyYW1zLnNxX2VudHJpZXMgKiBzaXplb2YgKHN0cnVjdCBp b191cmluZ19zcWUpOworCisgwqBpb3VyaW5nX3NxX3JpbmcgPSBtbWFwICgwLCBpb3VyaW5nX3Nx X3Jpbmdfc2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKKyDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoE1BUF9TSEFSRUQgfCBNQVBfUE9QVUxBVEUsIGlvdXJpbmdfZmQs IElPUklOR19PRkZfU1FfUklORyk7CisgwqBpb3VyaW5nX2NxX3JpbmcgPSBtbWFwICgwLCBpb3Vy aW5nX2NxX3Jpbmdfc2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKKyDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoE1BUF9TSEFSRUQgfCBNQVBfUE9QVUxBVEUsIGlvdXJp bmdfZmQsIElPUklOR19PRkZfQ1FfUklORyk7CisgwqBpb3VyaW5nX3NxZXMgwqAgwqA9IG1tYXAg KDAsIGlvdXJpbmdfc3Flc19zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAorIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgTUFQX1NIQVJFRCB8IE1BUF9QT1BVTEFURSwg aW91cmluZ19mZCwgSU9SSU5HX09GRl9TUUVTKTsKKworIMKgaWYgKGlvdXJpbmdfc3FfcmluZyA9 PSBNQVBfRkFJTEVEIHx8IGlvdXJpbmdfY3FfcmluZyA9PSBNQVBfRkFJTEVEIHx8IGlvdXJpbmdf c3FlcyA9PSBNQVBfRkFJTEVEKQorIMKgIMKgcmV0dXJuIC0xOworCisgwqBpb3VyaW5nX3NxX2hl YWQgwqAgwqAgwqAgwqAgPSBwYXJhbXMuc3Ffb2ZmLmhlYWQ7CisgwqBpb3VyaW5nX3NxX3RhaWwg wqAgwqAgwqAgwqAgPSBwYXJhbXMuc3Ffb2ZmLnRhaWw7CisgwqBpb3VyaW5nX3NxX3JpbmdfbWFz ayDCoCDCoD0gcGFyYW1zLnNxX29mZi5yaW5nX21hc2s7CisgwqBpb3VyaW5nX3NxX3JpbmdfZW50 cmllcyA9IHBhcmFtcy5zcV9vZmYucmluZ19lbnRyaWVzOworIMKgaW91cmluZ19zcV9mbGFncyDC oCDCoCDCoCDCoD0gcGFyYW1zLnNxX29mZi5mbGFnczsKKyDCoGlvdXJpbmdfc3FfZHJvcHBlZCDC oCDCoCDCoD0gcGFyYW1zLnNxX29mZi5kcm9wcGVkOworIMKgaW91cmluZ19zcV9hcnJheSDCoCDC oCDCoCDCoD0gcGFyYW1zLnNxX29mZi5hcnJheTsKKworIMKgaW91cmluZ19jcV9oZWFkIMKgIMKg IMKgIMKgID0gcGFyYW1zLmNxX29mZi5oZWFkOworIMKgaW91cmluZ19jcV90YWlsIMKgIMKgIMKg IMKgID0gcGFyYW1zLmNxX29mZi50YWlsOworIMKgaW91cmluZ19jcV9yaW5nX21hc2sgwqAgwqA9 IHBhcmFtcy5jcV9vZmYucmluZ19tYXNrOworIMKgaW91cmluZ19jcV9yaW5nX2VudHJpZXMgPSBw YXJhbXMuY3Ffb2ZmLnJpbmdfZW50cmllczsKKyDCoGlvdXJpbmdfY3Ffb3ZlcmZsb3cgwqAgwqAg PSBwYXJhbXMuY3Ffb2ZmLm92ZXJmbG93OworIMKgaW91cmluZ19jcV9jcWVzIMKgIMKgIMKgIMKg ID0gcGFyYW1zLmNxX29mZi5jcWVzOworCisgwqBpb3VyaW5nX3RmZCA9IHRpbWVyZmRfY3JlYXRl IChDTE9DS19NT05PVE9OSUMsIFRGRF9DTE9FWEVDKTsKKworIMKgaWYgKGlvdXJpbmdfdGZkIDwg MCkKKyDCoCDCoHJldHVybiBpb3VyaW5nX3RmZDsKKworIMKgaW91cmluZ190ZmRfdG8gPSBFVl9U U1RBTVBfSFVHRTsKKworIMKgcmV0dXJuIDA7Cit9CisKK2VjYl9jb2xkCitzdGF0aWMgdm9pZAor aW91cmluZ19mb3JrIChFVl9QKQoreworIMKgaW91cmluZ19pbnRlcm5hbF9kZXN0cm95IChFVl9B KTsKKworIMKgd2hpbGUgKGlvdXJpbmdfaW50ZXJuYWxfaW5pdCAoRVZfQSkgPCAwKQorIMKgIMKg ZXZfc3lzZXJyICgiKGxpYmV2KSBpb191cmluZ19zZXR1cCIpOworCisgwqBmZF9yZWFybV9hbGwg KEVWX0EpOworCisgwqBldl9pb19zdG9wIMKgKEVWX0FfICZpb3VyaW5nX3RmZF93KTsKKyDCoGV2 X2lvX3NldCDCoCAoRVZfQV8gJmlvdXJpbmdfdGZkX3csIGlvdXJpbmdfdGZkLCBFVl9SRUFEKTsK KyDCoGV2X2lvX3N0YXJ0IChFVl9BXyAmaW91cmluZ190ZmRfdyk7Cit9CisKKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KKworc3RhdGljIHZvaWQKK2lvdXJpbmdfbW9kaWZ5IChFVl9QXyBpbnQgZmQs IGludCBvZXYsIGludCBuZXYpCit7CisgwqBpZiAob2V2KQorIMKgIMKgeworIMKgIMKgIMKgLyog d2UgYXNzdW1lIHRoZSBzcWUncyBhcmUgYWxsICJwcm9wZXJseSIgaW5pdGlhbGlzZWQgKi8KKyDC oCDCoCDCoHN0cnVjdCBpb191cmluZ19zcWUgKnNxZSA9IGlvdXJpbmdfc3FlX2dldCAoRVZfQSk7 CisgwqAgwqAgwqBzcWUtPm9wY29kZSDCoCDCoD0gSU9SSU5HX09QX1BPTExfUkVNT1ZFOworIMKg IMKgIMKgc3FlLT5mZCDCoCDCoCDCoCDCoD0gZmQ7CisgwqAgwqAgwqAvKiBKZW5zIEF4Ym9lIG5v dGlmaWVkIG1lIHRoYXQgdXNlcl9kYXRhIGlzIG5vdCB3aGF0IGlzIGRvY3VtZW50ZWQsIGJ1dCBp cworIMKgIMKgIMKgICogc29tZSBraW5kIG9mIHVuaXF1ZSBJRCB0aGF0IGhhcyB0byBtYXRjaCwg b3RoZXJ3aXNlIHRoZSByZXF1ZXN0IGNhbm5vdAorIMKgIMKgIMKgICogYmUgcmVtb3ZlZC4gU2lu Y2Ugd2UgZG9uJ3QgKnJlYWxseSogaGF2ZSB0aGF0LCB3ZSBwYXNzIGluIHRoZSBvbGQKKyDCoCDC oCDCoCAqIGdlbmVyYXRpb24gY291bnRlciAtIGlmIHRoYXQgZmFpbHMsIHRvbyBiYWQsIGl0IHdp bGwgaG9wZWZ1bGx5IGJlIHJlbW92ZWQKKyDCoCDCoCDCoCAqIGF0IGNsb3NlIHRpbWUgYW5kIHRo ZW4gYmUgaWdub3JlZC4gKi8KKyDCoCDCoCDCoHNxZS0+YWRkciDCoCDCoCDCoD0gKHVpbnQzMl90 KWZkIHwgKChfX3U2NCkodWludDMyX3QpYW5mZHMgW2ZkXS5lZ2VuIDw8IDMyKTsKKyDCoCDCoCDC oHNxZS0+dXNlcl9kYXRhID0gKHVpbnQ2NF90KS0xOworIMKgIMKgIMKgaW91cmluZ19zcWVfc3Vi bWl0IChFVl9BXyBzcWUpOworCisgwqAgwqAgwqAvKiBpbmNyZW1lbnQgZ2VuZXJhdGlvbiBjb3Vu dGVyIHRvIGF2b2lkIGhhbmRsaW5nIG9sZCBldmVudHMgKi8KKyDCoCDCoCDCoCsrYW5mZHMgW2Zk XS5lZ2VuOworIMKgIMKgfQorCisgwqBpZiAobmV2KQorIMKgIMKgeworIMKgIMKgIMKgc3RydWN0 IGlvX3VyaW5nX3NxZSAqc3FlID0gaW91cmluZ19zcWVfZ2V0IChFVl9BKTsKKyDCoCDCoCDCoHNx ZS0+b3Bjb2RlIMKgIMKgIMKgPSBJT1JJTkdfT1BfUE9MTF9BREQ7CisgwqAgwqAgwqBzcWUtPmZk IMKgIMKgIMKgIMKgIMKgPSBmZDsKKyDCoCDCoCDCoHNxZS0+YWRkciDCoCDCoCDCoCDCoD0gMDsK KyDCoCDCoCDCoHNxZS0+dXNlcl9kYXRhIMKgID0gKHVpbnQzMl90KWZkIHwgKChfX3U2NCkodWlu dDMyX3QpYW5mZHMgW2ZkXS5lZ2VuIDw8IDMyKTsKKyDCoCDCoCDCoHNxZS0+cG9sbF9ldmVudHMg PQorIMKgIMKgIMKgIMKgKG5ldiAmIEVWX1JFQUQgPyBQT0xMSU4gOiAwKQorIMKgIMKgIMKgIMKg fCAobmV2ICYgRVZfV1JJVEUgPyBQT0xMT1VUIDogMCk7CisgwqAgwqAgwqBpb3VyaW5nX3NxZV9z dWJtaXQgKEVWX0FfIHNxZSk7CisgwqAgwqB9Cit9CisKK2lubGluZV9zaXplCit2b2lkCitpb3Vy aW5nX3RmZF91cGRhdGUgKEVWX1BfIGV2X3RzdGFtcCB0aW1lb3V0KQoreworIMKgZXZfdHN0YW1w IHRmZF90byA9IG1uX25vdyArIHRpbWVvdXQ7CisKKyDCoC8qIHdlIGFzc3VtZSB0aGVyZSB3aWxs IGJlIG1hbnkgaXRlcmF0aW9ucyBwZXIgdGltZXIgY2hhbmdlLCBzbworIMKgICogd2Ugb25seSBy ZS1zZXQgdGhlIHRpbWVyZmQgd2hlbiB3ZSBoYXZlIHRvIGJlY2F1c2UgaXRzIGV4cGlyeQorIMKg ICogaXMgdG9vIGxhdGUuCisgwqAgKi8KKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlICh0ZmRfdG8g PCBpb3VyaW5nX3RmZF90bykpCisgwqAgwqB7CisgwqAgwqAgwqAgc3RydWN0IGl0aW1lcnNwZWMg aXRzOworCisgwqAgwqAgwqAgaW91cmluZ190ZmRfdG8gPSB0ZmRfdG87CisgwqAgwqAgwqAgRVZf VFNfU0VUIChpdHMuaXRfaW50ZXJ2YWwsIDAuKTsKKyDCoCDCoCDCoCBFVl9UU19TRVQgKGl0cy5p dF92YWx1ZSwgdGZkX3RvKTsKKworIMKgIMKgIMKgIGlmICh0aW1lcmZkX3NldHRpbWUgKGlvdXJp bmdfdGZkLCBURkRfVElNRVJfQUJTVElNRSwgJml0cywgMCkgPCAwKQorIMKgIMKgIMKgIMKgIGFz c2VydCAoKCJsaWJldjogaW91cmluZyB0aW1lcmZkX3NldHRpbWUgZmFpbGVkIiwgMCkpOworIMKg IMKgfQorfQorCitpbmxpbmVfc2l6ZQordm9pZAoraW91cmluZ19wcm9jZXNzX2NxZSAoRVZfUF8g c3RydWN0IGlvX3VyaW5nX2NxZSAqY3FlKQoreworIMKgaW50IMKgIMKgIMKgZmQgwqA9IGNxZS0+ dXNlcl9kYXRhICYgMHhmZmZmZmZmZlU7CisgwqB1aW50MzJfdCBnZW4gPSBjcWUtPnVzZXJfZGF0 YSA+PiAzMjsKKyDCoGludCDCoCDCoCDCoHJlcyA9IGNxZS0+cmVzOworCisgwqAvKiB1c2VyX2Rh dGEgLTEgaXMgYSByZW1vdmUgdGhhdCB3ZSBhcmUgbm90IGF0bS4gaW50ZXJlc3RlZCBpbiAqLwor IMKgaWYgKGNxZS0+dXNlcl9kYXRhID09ICh1aW50NjRfdCktMSkKKyDCoCDCoHJldHVybjsKKwor IMKgYXNzZXJ0ICgoImxpYmV2OiBpb191cmluZyBmZCBtdXN0IGJlIGluLWJvdW5kcyIsIGZkID49 IDAgJiYgZmQgPCBhbmZkbWF4KSk7CisKKyDCoC8qIGRvY3VtZW50YXRpb24gbGllcywgb2YgY291 cnNlLiB0aGUgcmVzdWx0IHZhbHVlIGlzIE5PVCBsaWtlCisgwqAgKiBub3JtYWwgc3lzY2FsbHMs IGJ1dCBsaWtlIGxpbnV4IHJhdyBzeXNjYWxscywgaS5lLiBuZWdhdGl2ZQorIMKgICogZXJyb3Ig bnVtYmVycy4gZm9ydHVuYXRlLCBhcyBvdGhlcndpc2UgdGhlcmUgd291bGQgYmUgbm8gd2F5Cisg wqAgKiB0byBnZXQgZXJyb3IgY29kZXMgYXQgYWxsLiBzdGlsbCwgd2h5IG5vdCBkb2N1bWVudCB0 aGlzPworIMKgICovCisKKyDCoC8qIGlnbm9yZSBldmVudCBpZiBnZW5lcmF0aW9uIGRvZXNuJ3Qg bWF0Y2ggKi8KKyDCoC8qIG90aGVyIHRoYW4gc2tpcHBpbmcgcmVtb3ZhbCBldmVudHMsICovCisg wqAvKiB0aGlzIHNob3VsZCBhY3R1YWxseSBiZSB2ZXJ5IHJhcmUgKi8KKyDCoGlmIChlY2JfZXhw ZWN0X2ZhbHNlIChnZW4gIT0gKHVpbnQzMl90KWFuZmRzIFtmZF0uZWdlbikpCisgwqAgwqByZXR1 cm47CisKKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChyZXMgPCAwKSkKKyDCoCDCoHsKKyDCoCDC oCDCoC8qVE9ETzogRUlOVkFMIGhhbmRsaW5nICh3YXMgc29tZXRoaW5nIGZhaWxlZCB3aXRoIHRo aXMgZmQpKi8KKworIMKgIMKgIMKgaWYgKHJlcyA9PSAtRUJBREYpCisgwqAgwqAgwqAgwqB7Cisg wqAgwqAgwqAgwqAgwqBhc3NlcnQgKCgibGliZXY6IGV2ZW50IGxvb3AgcmVqZWN0ZWQgYmFkIGZk IiwgcmVzICE9IC1FQkFERikpOworIMKgIMKgIMKgIMKgIMKgZmRfa2lsbCAoRVZfQV8gZmQpOwor IMKgIMKgIMKgIMKgfQorIMKgIMKgIMKgZWxzZQorIMKgIMKgIMKgIMKgeworIMKgIMKgIMKgIMKg IMKgZXJybm8gPSAtcmVzOworIMKgIMKgIMKgIMKgIMKgZXZfc3lzZXJyICgiKGxpYmV2KSBJT1JJ TkdfT1BfUE9MTF9BREQiKTsKKyDCoCDCoCDCoCDCoH0KKworIMKgIMKgIMKgcmV0dXJuOworIMKg IMKgfQorCisgwqAvKiBmZWVkIGV2ZW50cywgd2UgZG8gbm90IGV4cGVjdCBvciBoYW5kbGUgUE9M TE5WQUwgKi8KKyDCoGZkX2V2ZW50ICgKKyDCoCDCoEVWX0FfCisgwqAgwqBmZCwKKyDCoCDCoChy ZXMgJiAoUE9MTE9VVCB8IFBPTExFUlIgfCBQT0xMSFVQKSA/IEVWX1dSSVRFIDogMCkKKyDCoCDC oHwgKHJlcyAmIChQT0xMSU4gfCBQT0xMRVJSIHwgUE9MTEhVUCkgPyBFVl9SRUFEIDogMCkKKyDC oCk7CisKKyDCoC8qIGlvX3VyaW5nIGlzIG9uZXNob3QsIHNvIHdlIG5lZWQgdG8gcmUtYXJtIHRo ZSBmZCBuZXh0IGl0ZXJhdGlvbiAqLworIMKgLyogdGhpcyBhbHNvIG1lYW5zIHdlIHVzdWFsbHkg aGF2ZSB0byBkbyBhdCBsZWFzdCBvbmUgc3lzY2FsbCBwZXIgaXRlcmF0aW9uICovCisgwqBhbmZk cyBbZmRdLmV2ZW50cyA9IDA7CisgwqBmZF9jaGFuZ2UgKEVWX0FfIGZkLCBFVl9BTkZEX1JFSUZZ KTsKK30KKworLyogY2FsbGVkIHdoZW4gdGhlIGV2ZW50IHF1ZXVlIG92ZXJmbG93cyAqLworZWNi X2NvbGQKK3N0YXRpYyB2b2lkCitpb3VyaW5nX292ZXJmbG93IChFVl9QKQoreworIMKgLyogd2Ug aGF2ZSB0d28gb3B0aW9ucywgcmVzaXplIHRoZSBxdWV1ZSAoYnkgdGVhcmluZyBkb3duCisgwqAg KiBldmVyeXRoaW5nIGFuZCByZWNyZWF0aW5nIGl0LCBvciBsaXZpbmcgd2l0aCBpdAorIMKgICog YW5kIHBvbGxpbmcuCisgwqAgKiB3ZSBpbXBsZW1lbnQgdGhpcyBieSByZXNpemluZyB0aGUgcXVl dWUsIGFuZCwgaWYgdGhhdCBmYWlscywKKyDCoCAqIHdlIGp1c3QgcmVjcmVhdGUgdGhlIHN0YXRl IG9uIGV2ZXJ5IGZhaWx1cmUsIHdoaWNoCisgwqAgKiBraW5kIG9mIGlzIGEgdmVyeSBpbmVmZmlj aWVudCBwb2xsLgorIMKgICogb25lIGRhbmdlciBpcywgZHVlIHRvIHRoZSBiaW9zIHRvd2FyZCBs b3dlciBmZHMsCisgwqAgKiB3ZSB3aWxsIG9ubHkgcmVhbGx5IGdldCBldmVudHMgZm9yIHRob3Nl LCBzbworIMKgICogbWF5YmUgd2UgbmVlZCBhIHBvbGwoKSBmYWxsYmFjaywgYWZ0ZXIgYWxsLgor IMKgICovCisgwqAvKkVWX0NRX1ZBUiAob3ZlcmZsb3cpID0gMDsqLyAvKiBuZWVkIHRvIGRvIHRo aXMgaWYgd2Uga2VlcCB0aGUgc3RhdGUgYW5kIHBvbGwgbWFudWFsbHkgKi8KKworIMKgZmRfcmVh cm1fYWxsIChFVl9BKTsKKworIMKgLyogd2UgZG91YmxlIHRoZSBzaXplIHVudGlsIHdlIGhpdCB0 aGUgaGFyZC10by1wcm9iZSBtYXhpbXVtICovCisgwqBpZiAoIWlvdXJpbmdfbWF4X2VudHJpZXMp CisgwqAgwqB7CisgwqAgwqAgwqBpb3VyaW5nX2VudHJpZXMgPDw9IDE7CisgwqAgwqAgwqBpb3Vy aW5nX2ZvcmsgKEVWX0EpOworIMKgIMKgfQorIMKgZWxzZQorIMKgIMKgeworIMKgIMKgIMKgLyog d2UgaGl0IHRoZSBrZXJuZWwgbGltaXQsIHdlIHNob3VsZCBmYWxsIGJhY2sgdG8gc29tZXRoaW5n IGVsc2UuCisgwqAgwqAgwqAgKiB3ZSBjYW4gZWl0aGVyIHBvbGwoKSBhIGZldyB0aW1lcyBhbmQg aG9wZSBmb3IgdGhlIGJlc3QsCisgwqAgwqAgwqAgKiBwb2xsIGFsd2F5cywgb3Igc3dpdGNoIHRv IGVwb2xsLgorIMKgIMKgIMKgICogVE9ETzogaXMgdGhpcyBuZWNlc3Nhcnkgd2l0aCBuZXdlciBr ZXJuZWxzPworIMKgIMKgIMKgICovCisKKyDCoCDCoCDCoGlvdXJpbmdfaW50ZXJuYWxfZGVzdHJv eSAoRVZfQSk7CisKKyDCoCDCoCDCoC8qIHRoaXMgc2hvdWxkIG1ha2UgaXQgc28gdGhhdCBvbiBy ZXR1cm4sIHdlIGRvbid0IGNhbGwgYW55IHVyaW5nIGZ1bmN0aW9ucyAqLworIMKgIMKgIMKgaW91 cmluZ190b19zdWJtaXQgPSAwOworCisgwqAgwqAgwqBmb3IgKDs7KQorIMKgIMKgIMKgIMKgewor IMKgIMKgIMKgIMKgIMKgYmFja2VuZCA9IGVwb2xsX2luaXQgKEVWX0FfIDApOworCisgwqAgwqAg wqAgwqAgwqBpZiAoYmFja2VuZCkKKyDCoCDCoCDCoCDCoCDCoCDCoGJyZWFrOworCisgwqAgwqAg wqAgwqAgwqBldl9zeXNlcnIgKCIobGliZXYpIGlvdXJpbmcgc3dpdGNoIHRvIGVwb2xsIik7Cisg wqAgwqAgwqAgwqB9CisgwqAgwqB9Cit9CisKKy8qIGhhbmRsZSBhbnkgZXZlbnRzIGluIHRoZSBj b21wbGV0aW9uIHF1ZXVlLCByZXR1cm4gdHJ1ZSBpZiB0aGVyZSB3ZXJlIGFueSAqLworc3RhdGlj IGludAoraW91cmluZ19oYW5kbGVfY3EgKEVWX1ApCit7CisgwqB1bnNpZ25lZCBoZWFkLCB0YWls LCBtYXNrOworIMKgCisgwqBoZWFkID0gRVZfQ1FfVkFSIChoZWFkKTsKKyDCoEVDQl9NRU1PUllf RkVOQ0VfQUNRVUlSRTsKKyDCoHRhaWwgPSBFVl9DUV9WQVIgKHRhaWwpOworCisgwqBpZiAoaGVh ZCA9PSB0YWlsKQorIMKgIMKgcmV0dXJuIDA7CisKKyDCoC8qIGl0IGNhbiBvbmx5IG92ZXJmbG93 IGlmIHdlIGhhdmUgZXZlbnRzLCB5ZXMsIHllcz8gKi8KKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNl IChFVl9DUV9WQVIgKG92ZXJmbG93KSkpCisgwqAgwqB7CisgwqAgwqAgwqBpb3VyaW5nX292ZXJm bG93IChFVl9BKTsKKyDCoCDCoCDCoHJldHVybiAxOworIMKgIMKgfQorCisgwqBtYXNrID0gRVZf Q1FfVkFSIChyaW5nX21hc2spOworCisgwqBkbworIMKgIMKgaW91cmluZ19wcm9jZXNzX2NxZSAo RVZfQV8gJkVWX0NRRVMgW2hlYWQrKyAmIG1hc2tdKTsKKyDCoHdoaWxlIChoZWFkICE9IHRhaWwp OworCisgwqBFVl9DUV9WQVIgKGhlYWQpID0gaGVhZDsKKyDCoEVDQl9NRU1PUllfRkVOQ0VfUkVM RUFTRTsKKworIMKgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyB2b2lkCitpb3VyaW5nX3BvbGwgKEVW X1BfIGV2X3RzdGFtcCB0aW1lb3V0KQoreworIMKgLyogaWYgd2UgaGF2ZSBldmVudHMsIG5vIG5l ZWQgZm9yIGV4dHJhIHN5c2NhbGxzLCBidXQgd2UgbWlnaHQgaGF2ZSB0byBxdWV1ZSBldmVudHMg Ki8KKyDCoC8qIHdlIGFsc28gY2xhciB0aGUgdGltZW91dCBpZiB0aGVyZSBhcmUgb3V0c3RhbmRp bmcgZmRjaGFuZ2VzICovCisgwqAvKiB0aGUgbGF0dGVyIHNob3VsZCBvbmx5IGhhcHBlbiBpZiBi b3RoIHRoZSBzcSBhbmQgY3EgYXJlIGZ1bGwsIG1vc3QgbGlrZWx5ICovCisgwqAvKiBiZWNhdXNl IHdlIGhhdmUgYSBsb3Qgb2YgZXZlbnQgc291cmNlcyB0aGF0IGltbWVkaWF0ZWx5IGNvbXBsZXRl ICovCisgwqAvKiBUT0RPOiBmZGNoYWNuZ2VjbnQgaXMgYWx3YXlzIDAgYmVjYXVzZSBmZF9yZWlm eSBkb2VzIG5vdCBoYXZlIHR3byBidWZmZXJzIHlldCAqLworIMKgaWYgKGlvdXJpbmdfaGFuZGxl X2NxIChFVl9BKSB8fCBmZGNoYW5nZWNudCkKKyDCoCDCoHRpbWVvdXQgPSBFVl9UU19DT05TVCAo MC4pOworIMKgZWxzZQorIMKgIMKgLyogbm8gZXZlbnRzLCBzbyBtYXliZSB3YWl0IGZvciBzb21l ICovCisgwqAgwqBpb3VyaW5nX3RmZF91cGRhdGUgKEVWX0FfIHRpbWVvdXQpOworCisgwqAvKiBv bmx5IGVudGVyIHRoZSBrZXJuZWwgaWYgd2UgaGF2ZSBzb21ldGhpbmcgdG8gc3VibWl0LCBvciB3 ZSBuZWVkIHRvIHdhaXQgKi8KKyDCoGlmICh0aW1lb3V0IHx8IGlvdXJpbmdfdG9fc3VibWl0KQor IMKgIMKgeworIMKgIMKgIMKgaW50IHJlcyA9IGlvdXJpbmdfZW50ZXIgKEVWX0FfIHRpbWVvdXQp OworCisgwqAgwqAgwqBpZiAoZWNiX2V4cGVjdF9mYWxzZSAocmVzIDwgMCkpCisgwqAgwqAgwqAg wqBpZiAoZXJybm8gPT0gRUlOVFIpCisgwqAgwqAgwqAgwqAgwqAvKiBpZ25vcmUgKi87CisgwqAg wqAgwqAgwqBlbHNlIGlmIChlcnJubyA9PSBFQlVTWSkKKyDCoCDCoCDCoCDCoCDCoC8qIGNxIGZ1 bGwsIGNhbm5vdCBzdWJtaXQgLSBzaG91bGQgYmUgcmFyZSBiZWNhdXNlIHdlIGZsdXNoIHRoZSBj cSBmaXJzdCwgc28gc2ltcGx5IGlnbm9yZSAqLzsKKyDCoCDCoCDCoCDCoGVsc2UKKyDCoCDCoCDC oCDCoCDCoGV2X3N5c2VyciAoIihsaWJldikgaW91cmluZyBzZXR1cCIpOworIMKgIMKgIMKgZWxz ZQorIMKgIMKgIMKgIMKgaW91cmluZ19oYW5kbGVfY3EgKEVWX0EpOworIMKgIMKgfQorfQorCitp bmxpbmVfc2l6ZQoraW50Citpb3VyaW5nX2luaXQgKEVWX1BfIGludCBmbGFncykKK3sKKyDCoGlv dXJpbmdfZW50cmllcyDCoCDCoCA9IElPVVJJTkdfSU5JVF9FTlRSSUVTOworIMKgaW91cmluZ19t YXhfZW50cmllcyA9IDA7CisKKyDCoGlmIChpb3VyaW5nX2ludGVybmFsX2luaXQgKEVWX0EpIDwg MCkKKyDCoCDCoHsKKyDCoCDCoCDCoGlvdXJpbmdfaW50ZXJuYWxfZGVzdHJveSAoRVZfQSk7Cisg wqAgwqAgwqByZXR1cm4gMDsKKyDCoCDCoH0KKworIMKgZXZfaW9faW5pdCDCoCgmaW91cmluZ190 ZmRfdywgaW91cmluZ190ZmRfY2IsIGlvdXJpbmdfdGZkLCBFVl9SRUFEKTsKKyDCoGV2X3NldF9w cmlvcml0eSAoJmlvdXJpbmdfdGZkX3csIEVWX01JTlBSSSk7CisgwqBldl9pb19zdGFydCAoRVZf QV8gJmlvdXJpbmdfdGZkX3cpOworIMKgZXZfdW5yZWYgKEVWX0EpOyAvKiB3YXRjaGVyIHNob3Vs ZCBub3Qga2VlcCBsb29wIGFsaXZlICovCisKKyDCoGJhY2tlbmRfbW9kaWZ5ID0gaW91cmluZ19t b2RpZnk7CisgwqBiYWNrZW5kX3BvbGwgwqAgPSBpb3VyaW5nX3BvbGw7CisKKyDCoHJldHVybiBF VkJBQ0tFTkRfSU9VUklORzsKK30KKworaW5saW5lX3NpemUKK3ZvaWQKK2lvdXJpbmdfZGVzdHJv eSAoRVZfUCkKK3sKKyDCoGlvdXJpbmdfaW50ZXJuYWxfZGVzdHJveSAoRVZfQSk7Cit9CisKZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2X2txdWV1ZS5jIGIvdGhpcmRfcGFydHkvbGli ZXYvZXZfa3F1ZXVlLmMKaW5kZXggMGMwNWFiOWU3Li42OWM1MTQ3ZjEgMTAwNjQ0Ci0tLSBhL3Ro aXJkX3BhcnR5L2xpYmV2L2V2X2txdWV1ZS5jCisrKyBiL3RoaXJkX3BhcnR5L2xpYmV2L2V2X2tx dWV1ZS5jCkBAIC0xLDcgKzEsNyBAQArCoC8qCsKgICogbGliZXYga3F1ZXVlIGJhY2tlbmQKwqAg KgotICogQ29weXJpZ2h0IChjKSAyMDA3LDIwMDgsMjAwOSwyMDEwLDIwMTEsMjAxMiwyMDEzIE1h cmMgQWxleGFuZGVyIExlaG1hbm4gPGxpYmV2QHNjaG1vcnAuZGU+CisgKiBDb3B5cmlnaHQgKGMp IDIwMDcsMjAwOCwyMDA5LDIwMTAsMjAxMSwyMDEyLDIwMTMsMjAxNiwyMDE5IE1hcmMgQWxleGFu ZGVyIExlaG1hbm4gPGxpYmV2QHNjaG1vcnAuZGU+CsKgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4K wqAgKgrCoCAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y bXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYS0KQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZArCoGtx dWV1ZV9jaGFuZ2UgKEVWX1BfIGludCBmZCwgaW50IGZpbHRlciwgaW50IGZsYWdzLCBpbnQgZmZs YWdzKQrCoHsKwqAgwqArK2txdWV1ZV9jaGFuZ2VjbnQ7Ci0gwqBhcnJheV9uZWVkc2l6ZSAoc3Ry dWN0IGtldmVudCwga3F1ZXVlX2NoYW5nZXMsIGtxdWV1ZV9jaGFuZ2VtYXgsIGtxdWV1ZV9jaGFu Z2VjbnQsIEVNUFRZMik7CisgwqBhcnJheV9uZWVkc2l6ZSAoc3RydWN0IGtldmVudCwga3F1ZXVl X2NoYW5nZXMsIGtxdWV1ZV9jaGFuZ2VtYXgsIGtxdWV1ZV9jaGFuZ2VjbnQsIGFycmF5X25lZWRz aXplX25vaW5pdCk7CsKgCsKgIMKgRVZfU0VUICgma3F1ZXVlX2NoYW5nZXMgW2txdWV1ZV9jaGFu Z2VjbnQgLSAxXSwgZmQsIGZpbHRlciwgZmxhZ3MsIGZmbGFncywgMCwgMCk7CsKgfQpAQCAtMTAz LDEwICsxMDMsMTAgQEAga3F1ZXVlX3BvbGwgKEVWX1BfIGV2X3RzdGFtcCB0aW1lb3V0KQrCoCDC oEVWX0FDUVVJUkVfQ0I7CsKgIMKga3F1ZXVlX2NoYW5nZWNudCA9IDA7CsKgCi0gwqBpZiAoZXhw ZWN0X2ZhbHNlIChyZXMgPCAwKSkKKyDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChyZXMgPCAwKSkK wqAgwqAgwqB7CsKgIMKgIMKgIMKgaWYgKGVycm5vICE9IEVJTlRSKQotIMKgIMKgIMKgIMKgZXZf c3lzZXJyICgiKGxpYmV2KSBrZXZlbnQiKTsKKyDCoCDCoCDCoCDCoGV2X3N5c2VyciAoIihsaWJl dikga3F1ZXVlIGtldmVudCIpOwrCoArCoCDCoCDCoCDCoHJldHVybjsKwqAgwqAgwqB9CkBAIC0x MTUsNyArMTE1LDcgQEAga3F1ZXVlX3BvbGwgKEVWX1BfIGV2X3RzdGFtcCB0aW1lb3V0KQrCoCDC oCDCoHsKwqAgwqAgwqAgwqBpbnQgZmQgPSBrcXVldWVfZXZlbnRzIFtpXS5pZGVudDsKwqAKLSDC oCDCoCDCoGlmIChleHBlY3RfZmFsc2UgKGtxdWV1ZV9ldmVudHMgW2ldLmZsYWdzICYgRVZfRVJS T1IpKQorIMKgIMKgIMKgaWYgKGVjYl9leHBlY3RfZmFsc2UgKGtxdWV1ZV9ldmVudHMgW2ldLmZs YWdzICYgRVZfRVJST1IpKQrCoCDCoCDCoCDCoCDCoHsKwqAgwqAgwqAgwqAgwqAgwqBpbnQgZXJy ID0ga3F1ZXVlX2V2ZW50cyBbaV0uZGF0YTsKwqAKQEAgLTEyOSwxMCArMTI5LDE2IEBAIGtxdWV1 ZV9wb2xsIChFVl9QXyBldl90c3RhbXAgdGltZW91dCkKwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqBpZiAoZmRfdmFsaWQgKGZkKSkKwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBr cXVldWVfbW9kaWZ5IChFVl9BXyBmZCwgMCwgYW5mZHMgW2ZkXS5ldmVudHMpOwrCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoGVsc2UKLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGZk X2tpbGwgKEVWX0FfIGZkKTsKKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHsKKyDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGFzc2VydCAoKCJsaWJldjoga3F1ZXVlIGZvdW5k IGludmFsaWQgZmQiLCAwKSk7CisgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBmZF9r aWxsIChFVl9BXyBmZCk7CisgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB9CsKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgfQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGVsc2UgLyogb24gYWxs IG90aGVyIGVycm9ycywgd2UgZXJyb3Igb3V0IG9uIHRoZSBmZCAqLwotIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgZmRfa2lsbCAoRVZfQV8gZmQpOworIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgewor IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgYXNzZXJ0ICgoImxpYmV2OiBrcXVldWUgZm91bmQg aW52YWxpZCBmZCIsIDApKTsKKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGZkX2tpbGwgKEVW X0FfIGZkKTsKKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoH0KwqAgwqAgwqAgwqAgwqAgwqAgwqB9 CsKgIMKgIMKgIMKgIMKgfQrCoCDCoCDCoCDCoGVsc2UKQEAgLTE0NSw3ICsxNTEsNyBAQCBrcXVl dWVfcG9sbCAoRVZfUF8gZXZfdHN0YW1wIHRpbWVvdXQpCsKgIMKgIMKgIMKgIMKgKTsKwqAgwqAg wqB9CsKgCi0gwqBpZiAoZXhwZWN0X2ZhbHNlIChyZXMgPT0ga3F1ZXVlX2V2ZW50bWF4KSkKKyDC oGlmIChlY2JfZXhwZWN0X2ZhbHNlIChyZXMgPT0ga3F1ZXVlX2V2ZW50bWF4KSkKwqAgwqAgwqB7 CsKgIMKgIMKgIMKgZXZfZnJlZSAoa3F1ZXVlX2V2ZW50cyk7CsKgIMKgIMKgIMKga3F1ZXVlX2V2 ZW50bWF4ID0gYXJyYXlfbmV4dHNpemUgKHNpemVvZiAoc3RydWN0IGtldmVudCksIGtxdWV1ZV9l dmVudG1heCwga3F1ZXVlX2V2ZW50bWF4ICsgMSk7CkBAIC0xNjQsNyArMTcwLDcgQEAga3F1ZXVl X2luaXQgKEVWX1BfIGludCBmbGFncykKwqAKwqAgwqBmY250bCAoYmFja2VuZF9mZCwgRl9TRVRG RCwgRkRfQ0xPRVhFQyk7IC8qIG5vdCBzdXJlIGlmIG5lY2Vzc2FyeSwgaG9wZWZ1bGx5IGRvZXNu J3QgaHVydCAqLwrCoAotIMKgYmFja2VuZF9taW50aW1lID0gMWUtOTsgLyogYXBwYXJlbnRseSwg dGhleSBkaWQgdGhlIHJpZ2h0IHRoaW5nIGluIGZyZWVic2QgKi8KKyDCoGJhY2tlbmRfbWludGlt ZSA9IEVWX1RTX0NPTlNUICgxZS05KTsgLyogYXBwYXJlbnRseSwgdGhleSBkaWQgdGhlIHJpZ2h0 IHRoaW5nIGluIGZyZWVic2QgKi8KwqAgwqBiYWNrZW5kX21vZGlmeSDCoD0ga3F1ZXVlX21vZGlm eTsKwqAgwqBiYWNrZW5kX3BvbGwgwqAgwqA9IGtxdWV1ZV9wb2xsOwrCoApkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvbGliZXYvZXZfbGludXhhaW8uYyBiL3RoaXJkX3BhcnR5L2xpYmV2L2V2X2xp bnV4YWlvLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi40Njg3YTcwM2UK LS0tIC9kZXYvbnVsbAorKysgYi90aGlyZF9wYXJ0eS9saWJldi9ldl9saW51eGFpby5jCkBAIC0w LDAgKzEsNjIwIEBACisvKgorICogbGliZXYgbGludXggYWlvIGZkIGFjdGl2aXR5IGJhY2tlbmQK KyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTkgTWFyYyBBbGV4YW5kZXIgTGVobWFubiA8bGliZXZA c2NobW9ycC5kZT4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhLQorICogdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp bmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIMKgIDEuIMKgUmVkaXN0cmlidXRpb25zIG9m IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICog wqAgwqAgwqAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh aW1lci4KKyAqCisgKiDCoCAyLiDCoFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0 IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiDCoCDCoCDCoCBub3RpY2UsIHRoaXMg bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg KiDCoCDCoCDCoCBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg QlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdB UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS QU5USUVTIE9GIE1FUi0KKyAqIENIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIMKgSU4gTk8KKyAqIEVWRU5UIFNIQUxMIFRIRSBB VVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF LQorICogQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisgKiBPUiBCVVNJ TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ QUJJTElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USC0KKyAqIEVSV0lTRSkgQVJJU0lORyBJTiBB TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRAor ICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIEFsdGVybmF0aXZl bHksIHRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgbWF5IGJlIHVzZWQgdW5kZXIgdGhlIHRlcm1z IG9mCisgKiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSB2ZXJzaW9uIDIg b3IgYW55IGxhdGVyIHZlcnNpb24sCisgKiBpbiB3aGljaCBjYXNlIHRoZSBwcm92aXNpb25zIG9m IHRoZSBHUEwgYXJlIGFwcGxpY2FibGUgaW5zdGVhZCBvZgorICogdGhlIGFib3ZlLiBJZiB5b3Ug d2lzaCB0byBhbGxvdyB0aGUgdXNlIG9mIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZpbGUKKyAqIG9u bHkgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHUEwgYW5kIG5vdCB0byBhbGxvdyBvdGhlcnMgdG8g dXNlIHlvdXIKKyAqIHZlcnNpb24gb2YgdGhpcyBmaWxlIHVuZGVyIHRoZSBCU0QgbGljZW5zZSwg aW5kaWNhdGUgeW91ciBkZWNpc2lvbgorICogYnkgZGVsZXRpbmcgdGhlIHByb3Zpc2lvbnMgYWJv dmUgYW5kIHJlcGxhY2UgdGhlbSB3aXRoIHRoZSBub3RpY2UKKyAqIGFuZCBvdGhlciBwcm92aXNp b25zIHJlcXVpcmVkIGJ5IHRoZSBHUEwuIElmIHlvdSBkbyBub3QgZGVsZXRlIHRoZQorICogcHJv dmlzaW9ucyBhYm92ZSwgYSByZWNpcGllbnQgbWF5IHVzZSB5b3VyIHZlcnNpb24gb2YgdGhpcyBm aWxlIHVuZGVyCisgKiBlaXRoZXIgdGhlIEJTRCBvciB0aGUgR1BMLgorICovCisKKy8qCisgKiBn ZW5lcmFsIG5vdGVzIGFib3V0IGxpbnV4IGFpbzoKKyAqCisgKiBhKSBhdCBmaXJzdCwgdGhlIGxp bnV4IGFpbyBJT0NCX0NNRF9QT0xMIGZ1bmN0aW9uYWxpdHkgaW50cm9kdWNlZCBpbgorICogwqAg wqA0LjE4IGxvb2tzIHRvbyBnb29kIHRvIGJlIHRydWU6IGJvdGggd2F0Y2hlcnMgYW5kIGV2ZW50 cyBjYW4gYmUKKyAqIMKgIMKgYmF0Y2hlZCwgYW5kIGV2ZW50cyBjYW4gZXZlbiBiZSBoYW5kbGVk IGluIHVzZXJzcGFjZSB1c2luZworICogwqAgwqBhIHJpbmcgYnVmZmVyIHNoYXJlZCB3aXRoIHRo ZSBrZXJuZWwuIHdhdGNoZXJzIGNhbiBiZSBjYW5jZWxlZAorICogwqAgwqByZWdhcmRsZXNzIG9m IHdoZXRoZXIgdGhlIGZkIGhhcyBiZWVuIGNsb3NlZC4gbm8gcHJvYmxlbXMgd2l0aCBmb3JrLgor ICogwqAgwqBvaywgdGhlIHJpbmcgYnVmZmVyIGlzIDIwMCUgdW5kb2N1bWVudGVkICh0aGVyZSBp c24ndCBldmVuIGEKKyAqIMKgIMKgaGVhZGVyIGZpbGUpLCBidXQgb3RoZXJ3aXNlLCBpdCdzIHB1 cmUgYmxpc3MhCisgKiBiKSBvaywgd2F0Y2hlcnMgYXJlIG9uZS1zaG90LCBzbyB5b3UgaGF2ZSB0 byByZS1hcm0gYWN0aXZlIG9uZXMKKyAqIMKgIMKgb24gZXZlcnkgaXRlcmF0aW9uLiBzbyBtdWNo IGZvciBzeXNjYWxsLWxlc3MgZXZlbnQgaGFuZGxpbmcsCisgKiDCoCDCoGJ1dCBhdCBsZWFzdCB0 aGVzZSByZS1hcm1zIGNhbiBiZSBiYXRjaGVkLCBubyBiaWcgZGVhbCwgcmlnaHQ/CisgKiBjKSB3 ZWxsLCBsaW51eCBhcyB1c3VhbDogdGhlIGRvY3VtZW50YXRpb24gbGllcyB0byB5b3U6IGlvX3N1 Ym1pdAorICogwqAgwqBzb21ldGltZXMgcmV0dXJucyBFSU5WQUwgYmVjYXVzZSB0aGUga2VybmVs IGRvZXNuJ3QgZmVlbCBsaWtlCisgKiDCoCDCoGhhbmRsaW5nIHlvdXIgcG9sbCBtYXNrIC0gdHR5 cyBjYW4gYmUgcG9sbGVkIGZvciBQT0xMT1VULAorICogwqAgwqBQT0xMT1VUfFBPTExJTiwgYnV0 IHBvbGxpbmcgZm9yIFBPTExJTiBmYWlscy4ganVzdCBncmVhdCwKKyAqIMKgIMKgc28gd2UgaGF2 ZSB0byBmYWxsIGJhY2sgdG8gc29tZXRoaW5nIGVsc2UgKGhlbGxvLCBlcG9sbCksCisgKiDCoCDC oGJ1dCBhdCBsZWFzdCB0aGUgZmFsbGJhY2sgY2FuIGJlIHNsb3csIGJlY2F1c2UgdGhlc2UgYXJl CisgKiDCoCDCoGV4Y2VwdGlvbmFsIGNhc2VzLCByaWdodD8KKyAqIGQpIGhtbSwgeW91IGhhdmUg dG8gdGVsbCB0aGUga2VybmVsIHRoZSBtYXhpbXVtIG51bWJlciBvZiB3YXRjaGVycworICogwqAg wqB5b3Ugd2FudCB0byBxdWV1ZSB3aGVuIGluaXRpYWxpc2luZyB0aGUgYWlvIGNvbnRleHQuIGJ1 dCBvZgorICogwqAgwqBjb3Vyc2UgdGhlIHJlYWwgbGltaXQgaXMgbWFnaWNhbGx5IGNhbGN1bGF0 ZWQgaW4gdGhlIGtlcm5lbCwgYW5kCisgKiDCoCDCoGlzIG9mdGVuIGhpZ2hlciB0aGVuIHdlIGFz a2VkIGZvci4gc28gd2UganVzdCBoYXZlIHRvIGRlc3Ryb3kKKyAqIMKgIMKgdGhlIGFpbyBjb250 ZXh0IGFuZCByZS1jcmVhdGUgaXQgYSBiaXQgbGFyZ2VyIGlmIHdlIGhpdCB0aGUgbGltaXQuCisg KiDCoCDCoChzdGFydHMgdG8gcmVtaW5kIHlvdSBvZiBlcG9sbD8gd2VsbCwgaXQncyBhIGJpdCBt b3JlIGRldGVybWluaXN0aWMKKyAqIMKgIMKgYW5kIGxlc3MgZ2FtYmxpbmcsIGJ1dCBzdGlsbCB1 Z2x5IGFzIGhlbGwpLgorICogZSkgdGhhdCdzIHdoZW4geW91IGZpbmQgb3V0IHlvdSBjYW4gYWxz byBoaXQgYW4gYXJiaXRyYXJ5IHN5c3RlbS13aWRlCisgKiDCoCDCoGxpbWl0LiBvciB0aGUga2Vy bmVsIHNpbXBseSBkb2Vzbid0IHdhbnQgdG8gaGFuZGxlIHlvdXIgd2F0Y2hlcnMuCisgKiDCoCDC oHdoYXQgdGhlIGZ1Y2sgZG8gd2UgZG8gdGhlbj8geW91IGd1ZXNzZWQgaXQsIGluIHRoZSBtaWRk bGUKKyAqIMKgIMKgb2YgZXZlbnQgaGFuZGxpbmcgd2UgaGF2ZSB0byBzd2l0Y2ggdG8gMTAwJSBl cG9sbCBwb2xsaW5nLiBhbmQKKyAqIMKgIMKgdGhhdCBiZXR0ZXIgaXMgYXMgZmFzdCBhcyBub3Jt YWwgZXBvbGwgcG9sbGluZywgc28geW91IHByYWN0aWNhbGx5CisgKiDCoCDCoGhhdmUgdG8gdXNl IHRoZSBub3JtYWwgZXBvbGwgYmFja2VuZCB3aXRoIGFsbCBpdHMgcXVpcmtzLgorICogZikgZW5k IHJlc3VsdCBvZiB0aGlzIHRyYWluIHdyZWNrOiBpdCBpbmhlcml0cyBhbGwgdGhlIGRpc2FkdmFu dGFnZXMKKyAqIMKgIMKgZnJvbSBlcG9sbCwgd2hpbGUgYWRkaW5nIGEgbnVtYmVyIG9uIGl0cyBv d24uIHdoeSBldmVuIGJvdGhlciB0byB1c2UKKyAqIMKgIMKgaXQ/IGJlY2F1c2UgaWYgY29uZGl0 aW9ucyBhcmUgcmlnaHQgYW5kIHlvdXIgZmRzIGFyZSBzdXBwb3J0ZWQgYW5kIHlvdQorICogwqAg wqBkb24ndCBoaXQgYSBsaW1pdCwgdGhpcyBiYWNrZW5kIGlzIGFjdHVhbGx5IGZhc3RlciwgZG9l c24ndCBnYW1ibGUgd2l0aAorICogwqAgwqB5b3VyIGZkcywgYmF0Y2hlcyB3YXRjaGVycyBhbmQg ZXZlbnRzIGFuZCBkb2Vzbid0IHJlcXVpcmUgY29zdGx5IHN0YXRlCisgKiDCoCDCoHJlY3JlYXRl cy4gd2VsbCwgdW50aWwgaXQgZG9lcy4KKyAqIGcpIGFsbCBvZiB0aGlzIG1ha2VzIHRoaXMgYmFj a2VuZCB1c2UgYWxtb3N0IHR3aWNlIGFzIG11Y2ggY29kZSBhcyBlcG9sbC4KKyAqIMKgIMKgd2hp Y2ggaW4gdHVybiB1c2VzIHR3aWNlIGFzIG11Y2ggY29kZSBhcyBwb2xsLiBhbmQgdGhhdCNzIG5v dCBjb3VudGluZworICogwqAgwqB0aGUgZmFjdCB0aGF0IHRoaXMgYmFja2VuZCBhbHNvIGRlcGVu ZHMgb24gdGhlIGVwb2xsIGJhY2tlbmQsIG1ha2luZworICogwqAgwqBpdCB0aHJlZSB0aW1lcyBh cyBtdWNoIGNvZGUgYXMgcG9sbCwgb3Iga3F1ZXVlLgorICogaCkgYmxlYWguIHdoeSBjYW4ndCBs aW51eCBqdXN0IGRvIGtxdWV1ZS4gc3VyZSBrcXVldWUgaXMgdWdseSwgYnV0IGJ5IG5vdworICog wqAgwqBpdCdzIGNsZWFyIHRoYXQgd2hhdGV2ZXIgbGludXggY29tZXMgdXAgd2l0aCBpcyBmYXIs IGZhciwgZmFyIHdvcnNlLgorICovCisKKyNpbmNsdWRlIDxzeXMvdGltZS5oPiAvKiBhY3R1YWxs eSBsaW51eC90aW1lLmgsIGJ1dCB3ZSBtdXN0IGFzc3VtZSB0aGV5IGFyZSBjb21wYXRpYmxlICov CisjaW5jbHVkZSA8cG9sbC5oPgorI2luY2x1ZGUgPGxpbnV4L2Fpb19hYmkuaD4KKworLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLworLyogc3lzY2FsbCB3cmFwZGFkb29wIC0gdGhpcyBzZWN0aW9uIGhh cyB0aGUgcmF3IGFwaS9hYmkgZGVmaW5pdGlvbnMgKi8KKworI2luY2x1ZGUgPHN5cy9zeXNjYWxs Lmg+IC8qIG5vIGdsaWJjIHdyYXBwZXJzICovCisKKy8qIGFpb19hYmkuaCBpcyBub3QgdmVyc2lv bmVkIGluIGFueSB3YXksIHNvIHdlIGNhbm5vdCB0ZXN0IGZvciBpdHMgZXhpc3RhbmNlICovCisj ZGVmaW5lIElPQ0JfQ01EX1BPTEwgNQorCisvKiB0YWtlbiBmcm9tIGxpbnV4L2ZzL2Fpby5jLiB5 dXAsIHRoYXQncyBhIC5jIGZpbGUuCisgKiBub3Qgb25seSBpcyB0aGlzIHRvdGFsbHkgdW5kb2N1 bWVudGVkLCBub3QgZXZlbiB0aGUgc291cmNlIGNvZGUKKyAqIGNhbiB0ZWxsIHlvdSB3aGF0IHRo ZSBmdXR1cmUgc2VtYW50aWNzIG9mIGNvbXBhdF9mZWF0dXJlcyBhbmQKKyAqIGluY29tcGF0X2Zl YXR1cmVzIGFyZSwgb3Igd2hhdCBoZWFkZXJfbGVuZ3RoIGFjdHVhbGx5IGlzIGZvci4KKyAqLwor I2RlZmluZSBBSU9fUklOR19NQUdJQyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDB4YTEwYTEw YTEKKyNkZWZpbmUgRVZfQUlPX1JJTkdfSU5DT01QQVRfRkVBVFVSRVMgwqAgMAorc3RydWN0IGFp b19yaW5nCit7CisgwqB1bnNpZ25lZCBpZDsgwqAgwqAvKiBrZXJuZWwgaW50ZXJuYWwgaW5kZXgg bnVtYmVyICovCisgwqB1bnNpZ25lZCBucjsgwqAgwqAvKiBudW1iZXIgb2YgaW9fZXZlbnRzICov CisgwqB1bnNpZ25lZCBoZWFkOyDCoC8qIFdyaXR0ZW4gdG8gYnkgdXNlcmxhbmQgb3IgYnkga2Vy bmVsLiAqLworIMKgdW5zaWduZWQgdGFpbDsKKworIMKgdW5zaWduZWQgbWFnaWM7CisgwqB1bnNp Z25lZCBjb21wYXRfZmVhdHVyZXM7CisgwqB1bnNpZ25lZCBpbmNvbXBhdF9mZWF0dXJlczsKKyDC oHVuc2lnbmVkIGhlYWRlcl9sZW5ndGg7IMKgLyogc2l6ZSBvZiBhaW9fcmluZyAqLworCisgwqBz dHJ1Y3QgaW9fZXZlbnQgaW9fZXZlbnRzWzBdOworfTsKKworaW5saW5lX3NpemUKK2ludAorZXZz eXNfaW9fc2V0dXAgKHVuc2lnbmVkIG5yX2V2ZW50cywgYWlvX2NvbnRleHRfdCAqY3R4X2lkcCkK K3sKKyDCoHJldHVybiBldl9zeXNjYWxsMiAoU1lTX2lvX3NldHVwLCBucl9ldmVudHMsIGN0eF9p ZHApOworfQorCitpbmxpbmVfc2l6ZQoraW50CitldnN5c19pb19kZXN0cm95IChhaW9fY29udGV4 dF90IGN0eF9pZCkKK3sKKyDCoHJldHVybiBldl9zeXNjYWxsMSAoU1lTX2lvX2Rlc3Ryb3ksIGN0 eF9pZCk7Cit9CisKK2lubGluZV9zaXplCitpbnQKK2V2c3lzX2lvX3N1Ym1pdCAoYWlvX2NvbnRl eHRfdCBjdHhfaWQsIGxvbmcgbnIsIHN0cnVjdCBpb2NiICpjYnBbXSkKK3sKKyDCoHJldHVybiBl dl9zeXNjYWxsMyAoU1lTX2lvX3N1Ym1pdCwgY3R4X2lkLCBuciwgY2JwKTsKK30KKworaW5saW5l X3NpemUKK2ludAorZXZzeXNfaW9fY2FuY2VsIChhaW9fY29udGV4dF90IGN0eF9pZCwgc3RydWN0 IGlvY2IgKmNicCwgc3RydWN0IGlvX2V2ZW50ICpyZXN1bHQpCit7CisgwqByZXR1cm4gZXZfc3lz Y2FsbDMgKFNZU19pb19jYW5jZWwsIGN0eF9pZCwgY2JwLCByZXN1bHQpOworfQorCitpbmxpbmVf c2l6ZQoraW50CitldnN5c19pb19nZXRldmVudHMgKGFpb19jb250ZXh0X3QgY3R4X2lkLCBsb25n IG1pbl9uciwgbG9uZyBuciwgc3RydWN0IGlvX2V2ZW50ICpldmVudHMsIHN0cnVjdCB0aW1lc3Bl YyAqdGltZW91dCkKK3sKKyDCoHJldHVybiBldl9zeXNjYWxsNSAoU1lTX2lvX2dldGV2ZW50cywg Y3R4X2lkLCBtaW5fbnIsIG5yLCBldmVudHMsIHRpbWVvdXQpOworfQorCisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisvKiBhY3R1YWwgYmFja2VkIGltcGxlbWVudGF0aW9uICovCisKK2VjYl9jb2xk CitzdGF0aWMgaW50CitsaW51eGFpb19ucl9ldmVudHMgKEVWX1ApCit7CisgwqAvKiB3ZSBzdGFy dCB3aXRoIDE2IGlvY2JzIGFuZCBpbmNyYWVzZSBmcm9tIHRoZXJlCisgwqAgKiB0aGF0J3MgdGlu eSwgYnV0IHRoZSBrZXJuZWwgaGFzIGEgcmF0aGVyIGxvdyBzeXN0ZW0td2lkZQorIMKgICogbGlt aXQgdGhhdCBjYW4gYmUgcmVhY2hlZCBxdWlja2x5LCBzbyBsZXQncyBiZSBwYXJzaW1vbmlvdXMK KyDCoCAqIHdpdGggdGhpcyByZXNvdXJjZS4KKyDCoCAqIFJlc3QgYXNzdXJlZCwgdGhlIGtlcm5l bCBnZW5lcm91c2x5IHJvdW5kcyB1cCBzbWFsbCBhbmQgYmlnIG51bWJlcnMKKyDCoCAqIGluIGRp ZmZlcmVudCB3YXlzIChidXQgZG9lc24ndCBzZWVtIHRvIGNoYXJnZSB5b3UgZm9yIGl0KS4KKyDC oCAqIFRoZSAxNSBoZXJlIGlzIGJlY2F1c2UgdGhlIGtlcm5lbCB1c3VhbGx5IGhhcyBhIHBvd2Vy IG9mIHR3byBhcyBhaW8tbWF4LW5yLAorIMKgICogYW5kIHRoaXMgaGVscHMgdG8gdGFrZSBhZHZh bnRhZ2Ugb2YgdGhhdCBsaW1pdC4KKyDCoCAqLworCisgwqAvKiB3ZSB0cnkgdG8gZmlsbCA0a0Ig cGFnZXMgZXhhY3RseS4KKyDCoCAqIHRoZSByaW5nIGJ1ZmZlciBoZWFkZXIgaXMgMzIgYnl0ZXMs IGV2ZXJ5IGlvIGV2ZW50IGlzIDMyIGJ5dGVzLgorIMKgICogdGhlIGtlcm5lbCB0YWtlcyB0aGUg aW8gcmVxdWVzdHMgbnVtYmVyLCBkb3VibGVzIGl0LCBhZGRzIDIKKyDCoCAqIGFuZCBhZGRzIHRo ZSByaW5nIGJ1ZmZlci4KKyDCoCAqIHRoZSB3YXkgd2UgdXNlIHRoaXMgaXMgYnkgc3RhcnRpbmcg bG93LCBhbmQgdGhlbiByb3VnaGx5IGRvdWJsaW5nIHRoZQorIMKgICogc2l6ZSBlYWNoIHRpbWUg d2UgaGl0IGEgbGltaXQuCisgwqAgKi8KKworIMKgaW50IHJlcXVlc3RzIMKgID0gMTUgPDwgbGlu dXhhaW9faXRlcmF0aW9uOworIMKgaW50IG9uZV9wYWdlIMKgID0gwqAoNDA5NgorIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgLyBzaXplb2YgKHN0cnVjdCBpb19ldmVudCkgwqAgwqApIC8g MjsgLyogaG93IG1hbnkgZml0IGludG8gb25lIHBhZ2UgKi8KKyDCoGludCBmaXJzdF9wYWdlID0g KCg0MDk2IC0gc2l6ZW9mIChzdHJ1Y3QgYWlvX3JpbmcpKQorIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgLyBzaXplb2YgKHN0cnVjdCBpb19ldmVudCkgLSAyKSAvIDI7IC8qIGhvdyBtYW55 IGZpdCBpbnRvIHRoZSBmaXJzdCBwYWdlICovCisKKyDCoC8qIGlmIGV2ZXJ5dGhpbmcgZml0cyBp bnRvIG9uZSBwYWdlLCB1c2UgY291bnQgZXhhY3RseSAqLworIMKgaWYgKHJlcXVlc3RzID4gZmly c3RfcGFnZSkKKyDCoCDCoC8qIG90aGVyd2lzZSwgcm91bmQgZG93biB0byBmdWxsIHBhZ2VzIGFu ZCBhZGQgdGhlIGZpcnN0IHBhZ2UgKi8KKyDCoCDCoHJlcXVlc3RzID0gcmVxdWVzdHMgLyBvbmVf cGFnZSAqIG9uZV9wYWdlICsgZmlyc3RfcGFnZTsKKworIMKgcmV0dXJuIHJlcXVlc3RzOworfQor CisvKiB3ZSB1c2Ugb3V0IG93biB3cmFwcGVyIHN0cnVjdHVyZSBpbiBjYXNlIHdlIGV2ZXIgd2Fu dCB0byBkbyBzb21ldGhpbmcgImNsZXZlciIgKi8KK3R5cGVkZWYgc3RydWN0IGFuaW9jYgorewor IMKgc3RydWN0IGlvY2IgaW87CisgwqAvKmludCBpbnVzZTsqLworfSAqQU5JT0NCUDsKKworaW5s aW5lX3NpemUKK3ZvaWQKK2xpbnV4YWlvX2FycmF5X25lZWRzaXplX2lvY2JwIChBTklPQ0JQICpi YXNlLCBpbnQgb2Zmc2V0LCBpbnQgY291bnQpCit7CisgwqB3aGlsZSAoY291bnQtLSkKKyDCoCDC oHsKKyDCoCDCoCDCoC8qIFRPRE86IHF1aXRlIHRoZSBvdmVyaGVhZCB0byBhbGxvY2F0ZSBldmVy eSBpb2NiIHNlcGFyYXRlbHksIG1heWJlIHVzZSBvdXIgb3duIGFsbG9jYXRvcj8gKi8KKyDCoCDC oCDCoEFOSU9DQlAgaW9jYiA9IChBTklPQ0JQKWV2X21hbGxvYyAoc2l6ZW9mICgqaW9jYikpOwor CisgwqAgwqAgwqAvKiBmdWxsIHplcm8gaW5pdGlhbGlzZSBpcyBwcm9iYWJseSBub3QgcmVxdWly ZWQgYXQgdGhlIG1vbWVudCwgYnV0CisgwqAgwqAgwqAgKiB0aGlzIGlzIG5vdCB3ZWxsIGRvY3Vt ZW50ZWQsIHNvIHdlIGJldHRlciBkbyBpdC4KKyDCoCDCoCDCoCAqLworIMKgIMKgIMKgbWVtc2V0 IChpb2NiLCAwLCBzaXplb2YgKCppb2NiKSk7CisKKyDCoCDCoCDCoGlvY2ItPmlvLmFpb19saW9f b3Bjb2RlID0gSU9DQl9DTURfUE9MTDsKKyDCoCDCoCDCoGlvY2ItPmlvLmFpb19maWxkZXMgwqAg wqAgPSBvZmZzZXQ7CisKKyDCoCDCoCDCoGJhc2UgW29mZnNldCsrXSA9IGlvY2I7CisgwqAgwqB9 Cit9CisKK2VjYl9jb2xkCitzdGF0aWMgdm9pZAorbGludXhhaW9fZnJlZV9pb2NicCAoRVZfUCkK K3sKKyDCoHdoaWxlIChsaW51eGFpb19pb2NicG1heC0tKQorIMKgIMKgZXZfZnJlZSAobGludXhh aW9faW9jYnBzIFtsaW51eGFpb19pb2NicG1heF0pOworCisgwqBsaW51eGFpb19pb2NicG1heCA9 IDA7IC8qIG5leHQgcmVzaXplIHdpbGwgY29tcGxldGVseSByZWFsbG9jYXRlIHRoZSBhcnJheSwg YXQgc29tZSBvdmVyaGVhZCAqLworfQorCitzdGF0aWMgdm9pZAorbGludXhhaW9fbW9kaWZ5IChF Vl9QXyBpbnQgZmQsIGludCBvZXYsIGludCBuZXYpCit7CisgwqBhcnJheV9uZWVkc2l6ZSAoQU5J T0NCUCwgbGludXhhaW9faW9jYnBzLCBsaW51eGFpb19pb2NicG1heCwgZmQgKyAxLCBsaW51eGFp b19hcnJheV9uZWVkc2l6ZV9pb2NicCk7CisgwqBBTklPQ0JQIGlvY2IgPSBsaW51eGFpb19pb2Ni cHMgW2ZkXTsKKyDCoEFORkQgKmFuZmQgPSAmYW5mZHMgW2ZkXTsKKworIMKgaWYgKGVjYl9leHBl Y3RfZmFsc2UgKGlvY2ItPmlvLmFpb19yZXFwcmlvIDwgMCkpCisgwqAgwqB7CisgwqAgwqAgwqAv KiB3ZSBoYW5kZWQgdGhpcyBmZCBvdmVyIHRvIGVwb2xsLCBzbyB1bmRvIHRoaXMgZmlyc3QgKi8K KyDCoCDCoCDCoC8qIHdlIGRvIGl0IG1hbnVhbGx5IGJlY2F1c2UgdGhlIG9wdGltaXNhdGlvbnMg b24gZXBvbGxfbW9kaWZ5IHdvbid0IGRvIHVzIGFueSBnb29kICovCisgwqAgwqAgwqBlcG9sbF9j dGwgKGJhY2tlbmRfZmQsIEVQT0xMX0NUTF9ERUwsIGZkLCAwKTsKKyDCoCDCoCDCoGFuZmQtPmVt YXNrID0gMDsKKyDCoCDCoCDCoGlvY2ItPmlvLmFpb19yZXFwcmlvID0gMDsKKyDCoCDCoH0KKyDC oGVsc2UgaWYgKGVjYl9leHBlY3RfZmFsc2UgKGlvY2ItPmlvLmFpb19idWYpKQorIMKgIMKgewor IMKgIMKgIMKgLyogaW9jYiBhY3RpdmUsIHNvIGNhbmNlbCBpdCBmaXJzdCBiZWZvcmUgcmVzdWJt aXQgKi8KKyDCoCDCoCDCoC8qIHRoaXMgYXNzdW1lcyB3ZSBvbmx5IGV2ZXIgZ2V0IG9uZSBjYWxs IHBlciBmZCBwZXIgbG9vcCBpdGVyYXRpb24gKi8KKyDCoCDCoCDCoGZvciAoOzspCisgwqAgwqAg wqAgwqB7CisgwqAgwqAgwqAgwqAgwqAvKiBvbiBhbGwgcmVsZXZhbnQga2VybmVscywgaW9fY2Fu Y2VsIGZhaWxzIHdpdGggRUlOUFJPR1JFU1Mgb24gInN1Y2Nlc3MiICovCisgwqAgwqAgwqAgwqAg wqBpZiAoZWNiX2V4cGVjdF9mYWxzZSAoZXZzeXNfaW9fY2FuY2VsIChsaW51eGFpb19jdHgsICZp b2NiLT5pbywgKHN0cnVjdCBpb19ldmVudCAqKTApID09IDApKQorIMKgIMKgIMKgIMKgIMKgIMKg YnJlYWs7CisKKyDCoCDCoCDCoCDCoCDCoGlmIChlY2JfZXhwZWN0X3RydWUgKGVycm5vID09IEVJ TlBST0dSRVNTKSkKKyDCoCDCoCDCoCDCoCDCoCDCoGJyZWFrOworCisgwqAgwqAgwqAgwqAgwqAv KiB0aGUgRUlOUFJPR1JFU1MgdGVzdCBpcyBmb3IgbmljZXIgZXJyb3IgbWVzc2FnZS4gY2x1bXN5 LiAqLworIMKgIMKgIMKgIMKgIMKgaWYgKGVycm5vICE9IEVJTlRSKQorIMKgIMKgIMKgIMKgIMKg IMKgeworIMKgIMKgIMKgIMKgIMKgIMKgIMKgYXNzZXJ0ICgoImxpYmV2OiBsaW51eGFpbyB1bmV4 cGVjdGVkIGlvX2NhbmNlbCBmYWlsZWQiLCBlcnJubyAhPSBFSU5UUiAmJiBlcnJubyAhPSBFSU5Q Uk9HUkVTUykpOworIMKgIMKgIMKgIMKgIMKgIMKgIMKgYnJlYWs7CisgwqAgwqAgwqAgwqAgwqAg wqB9CisgwqAgwqAgwqAgfQorCisgwqAgwqAgwqAvKiBpbmNyZW1lbnQgZ2VuZXJhdGlvbiBjb3Vu dGVyIHRvIGF2b2lkIGhhbmRsaW5nIG9sZCBldmVudHMgKi8KKyDCoCDCoCDCoCsrYW5mZC0+ZWdl bjsKKyDCoCDCoH0KKworIMKgaW9jYi0+aW8uYWlvX2J1ZiA9IChuZXYgJiBFVl9SRUFEIMKgPyBQ T0xMSU4gwqA6IDApCisgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCAobmV2ICYgRVZfV1JJ VEUgPyBQT0xMT1VUIDogMCk7CisKKyDCoGlmIChuZXYpCisgwqAgwqB7CisgwqAgwqAgwqBpb2Ni LT5pby5haW9fZGF0YSA9ICh1aW50MzJfdClmZCB8ICgoX191NjQpKHVpbnQzMl90KWFuZmQtPmVn ZW4gPDwgMzIpOworCisgwqAgwqAgwqAvKiBxdWV1ZSBpb2NiIHVwIGZvciBpb19zdWJtaXQgKi8K KyDCoCDCoCDCoC8qIHRoaXMgYXNzdW1lcyB3ZSBvbmx5IGV2ZXIgZ2V0IG9uZSBjYWxsIHBlciBm ZCBwZXIgbG9vcCBpdGVyYXRpb24gKi8KKyDCoCDCoCDCoCsrbGludXhhaW9fc3VibWl0Y250Owor IMKgIMKgIMKgYXJyYXlfbmVlZHNpemUgKHN0cnVjdCBpb2NiICosIGxpbnV4YWlvX3N1Ym1pdHMs IGxpbnV4YWlvX3N1Ym1pdG1heCwgbGludXhhaW9fc3VibWl0Y250LCBhcnJheV9uZWVkc2l6ZV9u b2luaXQpOworIMKgIMKgIMKgbGludXhhaW9fc3VibWl0cyBbbGludXhhaW9fc3VibWl0Y250IC0g MV0gPSAmaW9jYi0+aW87CisgwqAgwqB9Cit9CisKK3N0YXRpYyB2b2lkCitsaW51eGFpb19lcG9s bF9jYiAoRVZfUF8gc3RydWN0IGV2X2lvICp3LCBpbnQgcmV2ZW50cykKK3sKKyDCoGVwb2xsX3Bv bGwgKEVWX0FfIDApOworfQorCitpbmxpbmVfc3BlZWQKK3ZvaWQKK2xpbnV4YWlvX2ZkX3JlYXJt IChFVl9QXyBpbnQgZmQpCit7CisgwqBhbmZkcyBbZmRdLmV2ZW50cyA9IDA7CisgwqBsaW51eGFp b19pb2NicHMgW2ZkXS0+aW8uYWlvX2J1ZiA9IDA7CisgwqBmZF9jaGFuZ2UgKEVWX0FfIGZkLCBF Vl9BTkZEX1JFSUZZKTsKK30KKworc3RhdGljIHZvaWQKK2xpbnV4YWlvX3BhcnNlX2V2ZW50cyAo RVZfUF8gc3RydWN0IGlvX2V2ZW50ICpldiwgaW50IG5yKQoreworIMKgd2hpbGUgKG5yKQorIMKg IMKgeworIMKgIMKgIMKgaW50IGZkIMKgIMKgIMKgID0gZXYtPmRhdGEgJiAweGZmZmZmZmZmOwor IMKgIMKgIMKgdWludDMyX3QgZ2VuID0gZXYtPmRhdGEgPj4gMzI7CisgwqAgwqAgwqBpbnQgcmVz IMKgIMKgIMKgPSBldi0+cmVzOworCisgwqAgwqAgwqBhc3NlcnQgKCgibGliZXY6IGlvY2IgZmQg bXVzdCBiZSBpbi1ib3VuZHMiLCBmZCA+PSAwICYmIGZkIDwgYW5mZG1heCkpOworCisgwqAgwqAg wqAvKiBvbmx5IGFjY2VwdCBldmVudHMgaWYgZ2VuZXJhdGlvbiBjb3VudGVyIG1hdGNoZXMgKi8K KyDCoCDCoCDCoGlmIChlY2JfZXhwZWN0X3RydWUgKGdlbiA9PSAodWludDMyX3QpYW5mZHMgW2Zk XS5lZ2VuKSkKKyDCoCDCoCDCoCDCoHsKKyDCoCDCoCDCoCDCoCDCoC8qIGZlZWQgZXZlbnRzLCB3 ZSBkbyBub3QgZXhwZWN0IG9yIGhhbmRsZSBQT0xMTlZBTCAqLworIMKgIMKgIMKgIMKgIMKgZmRf ZXZlbnQgKAorIMKgIMKgIMKgIMKgIMKgIMKgRVZfQV8KKyDCoCDCoCDCoCDCoCDCoCDCoGZkLAor IMKgIMKgIMKgIMKgIMKgIMKgKHJlcyAmIChQT0xMT1VUIHwgUE9MTEVSUiB8IFBPTExIVVApID8g RVZfV1JJVEUgOiAwKQorIMKgIMKgIMKgIMKgIMKgIMKgfCAocmVzICYgKFBPTExJTiB8IFBPTExF UlIgfCBQT0xMSFVQKSA/IEVWX1JFQUQgOiAwKQorIMKgIMKgIMKgIMKgIMKgKTsKKworIMKgIMKg IMKgIMKgIMKgLyogbGludXggYWlvIGlzIG9uZXNob3Q6IHJlYXJtIGZkLiBUT0RPOiB0aGlzIGRv ZXMgbW9yZSB3b3JrIHRoYW4gc3RyaWN0bHkgbmVlZGVkICovCisgwqAgwqAgwqAgwqAgwqBsaW51 eGFpb19mZF9yZWFybSAoRVZfQV8gZmQpOworIMKgIMKgIMKgIMKgfQorCisgwqAgwqAgwqAtLW5y OworIMKgIMKgIMKgKytldjsKKyDCoCDCoH0KK30KKworLyogZ2V0IGFueSBldmVudHMgZnJvbSBy aW5nIGJ1ZmZlciwgcmV0dXJuIHRydWUgaWYgYW55IHdlcmUgaGFuZGxlZCAqLworc3RhdGljIGlu dAorbGludXhhaW9fZ2V0X2V2ZW50c19mcm9tX3JpbmcgKEVWX1ApCit7CisgwqBzdHJ1Y3QgYWlv X3JpbmcgKnJpbmcgPSAoc3RydWN0IGFpb19yaW5nICopbGludXhhaW9fY3R4OworIMKgdW5zaWdu ZWQgaGVhZCwgdGFpbDsKKworIMKgLyogdGhlIGtlcm5lbCByZWFkcyBhbmQgd3JpdGVzIGJvdGgg b2YgdGhlc2UgdmFyaWFibGVzLCAqLworIMKgLyogYXMgYSBDIGV4dGVuc2lvbiwgd2UgYXNzdW1l IHRoYXQgdm9sYXRpbGUgdXNlIGhlcmUgKi8KKyDCoC8qIGJvdGggbWFrZXMgcmVhZHMgYXRvbWlj IGFuZCBvbmNlLW9ubHkgKi8KKyDCoGhlYWQgPSAqKHZvbGF0aWxlIHVuc2lnbmVkICopJnJpbmct PmhlYWQ7CisgwqBFQ0JfTUVNT1JZX0ZFTkNFX0FDUVVJUkU7CisgwqB0YWlsID0gKih2b2xhdGls ZSB1bnNpZ25lZCAqKSZyaW5nLT50YWlsOworCisgwqBpZiAoaGVhZCA9PSB0YWlsKQorIMKgIMKg cmV0dXJuIDA7CisKKyDCoC8qIHBhcnNlIGFsbCBhdmFpbGFibGUgZXZlbnRzLCBidXQgb25seSBv bmNlLCB0byBhdm9pZCBzdGFydmF0aW9uICovCisgwqBpZiAoZWNiX2V4cGVjdF90cnVlICh0YWls ID4gaGVhZCkpIC8qIG5vcm1hbCBjYXNlIGFyb3VuZCAqLworIMKgIMKgbGludXhhaW9fcGFyc2Vf ZXZlbnRzIChFVl9BXyByaW5nLT5pb19ldmVudHMgKyBoZWFkLCB0YWlsIC0gaGVhZCk7CisgwqBl bHNlIC8qIHdyYXBwZWQgYXJvdW5kICovCisgwqAgwqB7CisgwqAgwqAgwqBsaW51eGFpb19wYXJz ZV9ldmVudHMgKEVWX0FfIHJpbmctPmlvX2V2ZW50cyArIGhlYWQsIHJpbmctPm5yIC0gaGVhZCk7 CisgwqAgwqAgwqBsaW51eGFpb19wYXJzZV9ldmVudHMgKEVWX0FfIHJpbmctPmlvX2V2ZW50cywg dGFpbCk7CisgwqAgwqB9CisKKyDCoEVDQl9NRU1PUllfRkVOQ0VfUkVMRUFTRTsKKyDCoC8qIGFz IGFuIGV4dGVuc2lvbiB0byBDLCB3ZSBob3BlIHRoYXQgdGhlIHZvbGF0aWxlIHdpbGwgbWFrZSB0 aGlzIGF0b21pYyBhbmQgb25jZS1vbmx5ICovCisgwqAqKHZvbGF0aWxlIHVuc2lnbmVkICopJnJp bmctPmhlYWQgPSB0YWlsOworCisgwqByZXR1cm4gMTsKK30KKworaW5saW5lX3NpemUKK2ludAor bGludXhhaW9fcmluZ2J1Zl92YWxpZCAoRVZfUCkKK3sKKyDCoHN0cnVjdCBhaW9fcmluZyAqcmlu ZyA9IChzdHJ1Y3QgYWlvX3JpbmcgKilsaW51eGFpb19jdHg7CisKKyDCoHJldHVybiBlY2JfZXhw ZWN0X3RydWUgKHJpbmctPm1hZ2ljID09IEFJT19SSU5HX01BR0lDKQorIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgJiYgcmluZy0+aW5jb21wYXRfZmVhdHVyZXMgPT0gRVZfQUlPX1JJ TkdfSU5DT01QQVRfRkVBVFVSRVMKKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCYm IHJpbmctPmhlYWRlcl9sZW5ndGggPT0gc2l6ZW9mIChzdHJ1Y3QgYWlvX3JpbmcpOyAvKiBUT0RP OiBvciB1c2UgaXQgdG8gZmluZCBpb19ldmVudFswXT8gKi8KK30KKworLyogcmVhZCBhdCBsZWFz dCBvbmUgZXZlbnQgZnJvbSBrZXJuZWwsIG9yIHRpbWVvdXQgKi8KK2lubGluZV9zaXplCit2b2lk CitsaW51eGFpb19nZXRfZXZlbnRzIChFVl9QXyBldl90c3RhbXAgdGltZW91dCkKK3sKKyDCoHN0 cnVjdCB0aW1lc3BlYyB0czsKKyDCoHN0cnVjdCBpb19ldmVudCBpb2V2WzhdOyAvKiAyNTYgb2N0 ZXQgc3RhY2sgc3BhY2UgKi8KKyDCoGludCB3YW50ID0gMTsgLyogaG93IG1hbnkgZXZlbnRzIHRv IHJlcXVlc3QgKi8KKyDCoGludCByaW5nYnVmX3ZhbGlkID0gbGludXhhaW9fcmluZ2J1Zl92YWxp ZCAoRVZfQSk7CisKKyDCoGlmIChlY2JfZXhwZWN0X3RydWUgKHJpbmdidWZfdmFsaWQpKQorIMKg IMKgeworIMKgIMKgIMKgLyogaWYgdGhlIHJpbmcgYnVmZmVyIGhhcyBhbnkgZXZlbnRzLCB3ZSBk b24ndCB3YWl0IG9yIGNhbGwgdGhlIGtlcm5lbCBhdCBhbGwgKi8KKyDCoCDCoCDCoGlmIChsaW51 eGFpb19nZXRfZXZlbnRzX2Zyb21fcmluZyAoRVZfQSkpCisgwqAgwqAgwqAgwqByZXR1cm47CisK KyDCoCDCoCDCoC8qIGlmIHRoZSByaW5nIGJ1ZmZlciBpcyBlbXB0eSwgYW5kIHdlIGRvbid0IGhh dmUgYSB0aW1lb3V0LCB0aGVuIGRvbid0IGNhbGwgdGhlIGtlcm5lbCAqLworIMKgIMKgIMKgaWYg KCF0aW1lb3V0KQorIMKgIMKgIMKgIMKgcmV0dXJuOworIMKgIMKgfQorIMKgZWxzZQorIMKgIMKg Lyogbm8gcmluZ2J1ZmZlciwgcmVxdWVzdCBzbGlnaHRseSBsYXJnZXIgYmF0Y2ggKi8KKyDCoCDC oHdhbnQgPSBzaXplb2YgKGlvZXYpIC8gc2l6ZW9mIChpb2V2IFswXSk7CisKKyDCoC8qIG5vIGV2 ZW50cywgc28gd2FpdCBmb3Igc29tZQorIMKgICogZm9yIGZhaXJuZXNzIHJlYXNvbnMsIHdlIGRv IHRoaXMgaW4gYSBsb29wLCB0byBmZXRjaCBhbGwgZXZlbnRzCisgwqAgKi8KKyDCoGZvciAoOzsp CisgwqAgwqB7CisgwqAgwqAgwqBpbnQgcmVzOworCisgwqAgwqAgwqBFVl9SRUxFQVNFX0NCOwor CisgwqAgwqAgwqBFVl9UU19TRVQgKHRzLCB0aW1lb3V0KTsKKyDCoCDCoCDCoHJlcyA9IGV2c3lz X2lvX2dldGV2ZW50cyAobGludXhhaW9fY3R4LCAxLCB3YW50LCBpb2V2LCAmdHMpOworCisgwqAg wqAgwqBFVl9BQ1FVSVJFX0NCOworCisgwqAgwqAgwqBpZiAocmVzIDwgMCkKKyDCoCDCoCDCoCDC oGlmIChlcnJubyA9PSBFSU5UUikKKyDCoCDCoCDCoCDCoCDCoC8qIGlnbm9yZWQsIHJldHJ5ICov OworIMKgIMKgIMKgIMKgZWxzZQorIMKgIMKgIMKgIMKgIMKgZXZfc3lzZXJyICgiKGxpYmV2KSBs aW51eGFpbyBpb19nZXRldmVudHMiKTsKKyDCoCDCoCDCoGVsc2UgaWYgKHJlcykKKyDCoCDCoCDC oCDCoHsKKyDCoCDCoCDCoCDCoCDCoC8qIGF0IGxlYXN0IG9uZSBldmVudCBhdmFpbGFibGUsIGhh bmRsZSB0aGVtICovCisgwqAgwqAgwqAgwqAgwqBsaW51eGFpb19wYXJzZV9ldmVudHMgKEVWX0Ff IGlvZXYsIHJlcyk7CisKKyDCoCDCoCDCoCDCoCDCoGlmIChlY2JfZXhwZWN0X3RydWUgKHJpbmdi dWZfdmFsaWQpKQorIMKgIMKgIMKgIMKgIMKgIMKgeworIMKgIMKgIMKgIMKgIMKgIMKgIMKgLyog aWYgd2UgaGF2ZSBhIHJpbmcgYnVmZmVyLCBoYW5kbGUgYW55IHJlbWFpbmluZyBldmVudHMgaW4g aXQgKi8KKyDCoCDCoCDCoCDCoCDCoCDCoCDCoGxpbnV4YWlvX2dldF9ldmVudHNfZnJvbV9yaW5n IChFVl9BKTsKKworIMKgIMKgIMKgIMKgIMKgIMKgIMKgLyogYXQgdGhpcyBwb2ludCwgd2Ugc2hv dWxkIGhhdmUgaGFuZGxlZCBhbGwgb3V0c3RhbmRpbmcgZXZlbnRzICovCisgwqAgwqAgwqAgwqAg wqAgwqAgwqBicmVhazsKKyDCoCDCoCDCoCDCoCDCoCDCoH0KKyDCoCDCoCDCoCDCoCDCoGVsc2Ug aWYgKHJlcyA8IHdhbnQpCisgwqAgwqAgwqAgwqAgwqAgwqAvKiBvdGhlcndpc2UsIGlmIHRoZXJl IHdlcmUgZmV3ZXJlIGV2ZW50cyB0aGFuIHdlIHdhbnRlZCwgd2UgYXNzdW1lIHRoZXJlIGFyZSBu byBtb3JlICovCisgwqAgwqAgwqAgwqAgwqAgwqBicmVhazsKKyDCoCDCoCDCoCDCoH0KKyDCoCDC oCDCoGVsc2UKKyDCoCDCoCDCoCDCoGJyZWFrOyAvKiBubyBldmVudHMgZnJvbSB0aGUga2VybmVs LCB3ZSBhcmUgZG9uZSAqLworCisgwqAgwqAgwqB0aW1lb3V0ID0gRVZfVFNfQ09OU1QgKDAuKTsg Lyogb25seSB3YWl0IGluIHRoZSBmaXJzdCBpdGVyYXRpb24gKi8KKyDCoCDCoH0KK30KKworaW5s aW5lX3NpemUKK2ludAorbGludXhhaW9faW9fc2V0dXAgKEVWX1ApCit7CisgwqBsaW51eGFpb19j dHggPSAwOworIMKgcmV0dXJuIGV2c3lzX2lvX3NldHVwIChsaW51eGFpb19ucl9ldmVudHMgKEVW X0EpLCAmbGludXhhaW9fY3R4KTsKK30KKworc3RhdGljIHZvaWQKK2xpbnV4YWlvX3BvbGwgKEVW X1BfIGV2X3RzdGFtcCB0aW1lb3V0KQoreworIMKgaW50IHN1Ym1pdHRlZDsKKworIMKgLyogZmly c3QgcGhhc2U6IHN1Ym1pdCBuZXcgaW9jYnMgKi8KKworIMKgLyogaW9fc3VibWl0IG1pZ2h0IHJl dHVybiBsZXNzIHRoYW4gdGhlIHJlcXVlc3RlZCBudW1iZXIgb2YgaW9jYnMgKi8KKyDCoC8qIHRo aXMgaXMsIGFmYWljcywgb25seSBiZWNhdXNlIG9mIGVycm9ycywgYnV0IHdlIGdvIGJ5IHRoZSBi b29rIGFuZCB1c2UgYSBsb29wLCAqLworIMKgLyogd2hpY2ggYWxsb3dzIHVzIHRvIHBpbnBvaW50 IHRoZSBlcnJvbmVvdXMgaW9jYiAqLworIMKgZm9yIChzdWJtaXR0ZWQgPSAwOyBzdWJtaXR0ZWQg PCBsaW51eGFpb19zdWJtaXRjbnQ7ICkKKyDCoCDCoHsKKyDCoCDCoCDCoGludCByZXMgPSBldnN5 c19pb19zdWJtaXQgKGxpbnV4YWlvX2N0eCwgbGludXhhaW9fc3VibWl0Y250IC0gc3VibWl0dGVk LCBsaW51eGFpb19zdWJtaXRzICsgc3VibWl0dGVkKTsKKworIMKgIMKgIMKgaWYgKGVjYl9leHBl Y3RfZmFsc2UgKHJlcyA8IDApKQorIMKgIMKgIMKgIMKgaWYgKGVycm5vID09IEVJTlZBTCkKKyDC oCDCoCDCoCDCoCDCoHsKKyDCoCDCoCDCoCDCoCDCoCDCoC8qIFRoaXMgaGFwcGVucyBmb3IgdW5z dXBwb3J0ZWQgZmRzLCBvZmZpY2lhbGx5LCBidXQgaW4gbXkgdGVzdGluZywKKyDCoCDCoCDCoCDC oCDCoCDCoCAqIGFsc28gcmFuZG9tbHkgaGFwcGVucyBmb3Igc3VwcG9ydGVkIGZkcy4gV2UgZmFs bCBiYWNrIHRvIGdvb2Qgb2xkCisgwqAgwqAgwqAgwqAgwqAgwqAgKiBwb2xsKCkgaGVyZSwgdW5k ZXIgdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIGEgdmVyeSByYXJlIGNhc2UuCisgwqAgwqAg wqAgwqAgwqAgwqAgKiBTZWUgaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvcGF0Y2h3b3JrL3BhdGNo LzEwNDc0NTMvIHRvIHNlZQorIMKgIMKgIMKgIMKgIMKgIMKgICogZGlzY3Vzc2lvbiBhYm91dCBz dWNoIGEgY2FzZSAodHR5cykgd2hlcmUgcG9sbGluZyBmb3IgUE9MTElOCisgwqAgwqAgwqAgwqAg wqAgwqAgKiBmYWlscyBidXQgUE9MTElOfFBPTExPVVQgd29ya3MuCisgwqAgwqAgwqAgwqAgwqAg wqAgKi8KKyDCoCDCoCDCoCDCoCDCoCDCoHN0cnVjdCBpb2NiICppb2NiID0gbGludXhhaW9fc3Vi bWl0cyBbc3VibWl0dGVkXTsKKyDCoCDCoCDCoCDCoCDCoCDCoGVwb2xsX21vZGlmeSAoRVZfQV8g aW9jYi0+YWlvX2ZpbGRlcywgMCwgYW5mZHMgW2lvY2ItPmFpb19maWxkZXNdLmV2ZW50cyk7Cisg wqAgwqAgwqAgwqAgwqAgwqBpb2NiLT5haW9fcmVxcHJpbyA9IC0xOyAvKiBtYXJrIGlvY2IgYXMg ZXBvbGwgKi8KKworIMKgIMKgIMKgIMKgIMKgIMKgcmVzID0gMTsgLyogc2tpcCB0aGlzIGlvY2Ig LSBhbm90aGVyIGlvY2IsIGFub3RoZXIgY2hhbmNlICovCisgwqAgwqAgwqAgwqAgwqB9CisgwqAg wqAgwqAgwqBlbHNlIGlmIChlcnJubyA9PSBFQUdBSU4pCisgwqAgwqAgwqAgwqAgwqB7CisgwqAg wqAgwqAgwqAgwqAgwqAvKiBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgcmluZyBidWZmZXIgaXMgZnVs bCwgb3Igc29tZSBvdGhlciBzaGl0IHdlCisgwqAgwqAgwqAgwqAgwqAgwqAgKiBkb24ndCBrbm93 IGFuZCBpc24ndCBkb2N1bWVudGVkLiBNb3N0IGxpa2VseSBiZWNhdXNlIHdlIGhhdmUgdG9vCisg wqAgwqAgwqAgwqAgwqAgwqAgKiBtYW55IHJlcXVlc3RzIGFuZCBsaW51eCBhaW8gY2FuJ3QgYmUg YXNzZWQgdG8gaGFuZGxlIHRoZW0uCisgwqAgwqAgwqAgwqAgwqAgwqAgKiBJbiB0aGlzIGNhc2Us IHdlIHRyeSB0byBhbGxvY2F0ZSBhIGxhcmdlciByaW5nIGJ1ZmZlciwgZnJlZWluZworIMKgIMKg IMKgIMKgIMKgIMKgICogb3VycyBmaXJzdC4gVGhpcyBtaWdodCBmYWlsLCBpbiB3aGljaCBjYXNl IHdlIGhhdmUgdG8gZmFsbCBiYWNrIHRvIDEwMCUKKyDCoCDCoCDCoCDCoCDCoCDCoCAqIGVwb2xs LgorIMKgIMKgIMKgIMKgIMKgIMKgICogR29kLCBob3cgSSBoYXRlIGxpbnV4IG5vdCBnZXR0aW5n IGl0cyBhY3QgdG9nZXRoZXIuIEV2ZXIuCisgwqAgwqAgwqAgwqAgwqAgwqAgKi8KKyDCoCDCoCDC oCDCoCDCoCDCoGV2c3lzX2lvX2Rlc3Ryb3kgKGxpbnV4YWlvX2N0eCk7CisgwqAgwqAgwqAgwqAg wqAgwqBsaW51eGFpb19zdWJtaXRjbnQgPSAwOworCisgwqAgwqAgwqAgwqAgwqAgwqAvKiByZWFy bSBhbGwgZmRzIHdpdGggYWN0aXZlIGlvY2JzICovCisgwqAgwqAgwqAgwqAgwqAgwqB7CisgwqAg wqAgwqAgwqAgwqAgwqAgwqBpbnQgZmQ7CisgwqAgwqAgwqAgwqAgwqBmb3IgKGZkID0gMDsgZmQg PCBsaW51eGFpb19pb2NicG1heDsgKytmZCkKKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGlmIChs aW51eGFpb19pb2NicHMgW2ZkXS0+aW8uYWlvX2J1ZikKKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoGxpbnV4YWlvX2ZkX3JlYXJtIChFVl9BXyBmZCk7CisgwqAgwqAgwqAgwqAgwqAgwqB9CisK KyDCoCDCoCDCoCDCoCDCoCDCoCsrbGludXhhaW9faXRlcmF0aW9uOworIMKgIMKgIMKgIMKgIMKg IMKgaWYgKGxpbnV4YWlvX2lvX3NldHVwIChFVl9BKSA8IDApCisgwqAgwqAgwqAgwqAgwqAgwqAg wqB7CisgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAvKiBUT0RPOiByZWFybSBhbGwgYW5kIHJlY3Jl YXRlIGVwb2xsIGJhY2tlbmQgZnJvbSBzY3JhdGNoICovCisgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAvKiBUT0RPOiBtaWdodCBiZSBtb3JlIHBydWRlbnQ/ICovCisKKyDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoC8qIHRvIGJhZCwgd2UgY2FuJ3QgZ2V0IGEgbmV3IGFpbyBjb250ZXh0LCBnbyAxMDAl IGVwb2xsICovCisgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBsaW51eGFpb19mcmVlX2lvY2JwIChF Vl9BKTsKKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGV2X2lvX3N0b3AgKEVWX0FfICZsaW51eGFp b19lcG9sbF93KTsKKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoGV2X3JlZiAoRVZfQSk7CisgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqBsaW51eGFpb19jdHggPSAwOworCisgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqBiYWNrZW5kIMKgIMKgIMKgIMKgPSBFVkJBQ0tFTkRfRVBPTEw7CisgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqBiYWNrZW5kX21vZGlmeSA9IGVwb2xsX21vZGlmeTsKKyDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoGJhY2tlbmRfcG9sbCDCoCA9IGVwb2xsX3BvbGw7CisgwqAgwqAgwqAgwqAg wqAgwqAgwqB9CisKKyDCoCDCoCDCoCDCoCDCoCDCoHRpbWVvdXQgPSBFVl9UU19DT05TVCAoMC4p OworIMKgIMKgIMKgIMKgIMKgIMKgLyogaXQncyBlYXNpZXN0IHRvIGhhbmRsZSB0aGlzIG1lc3Mg aW4gYW5vdGhlciBpdGVyYXRpb24gKi8KKyDCoCDCoCDCoCDCoCDCoCDCoHJldHVybjsKKyDCoCDC oCDCoCDCoCDCoH0KKyDCoCDCoCDCoCDCoGVsc2UgaWYgKGVycm5vID09IEVCQURGKQorIMKgIMKg IMKgIMKgIMKgeworIMKgIMKgIMKgIMKgIMKgIMKgYXNzZXJ0ICgoImxpYmV2OiBldmVudCBsb29w IHJlamVjdGVkIGJhZCBmZCIsIGVycm5vICE9IEVCQURGKSk7CisgwqAgwqAgwqAgwqAgwqAgwqBm ZF9raWxsIChFVl9BXyBsaW51eGFpb19zdWJtaXRzIFtzdWJtaXR0ZWRdLT5haW9fZmlsZGVzKTsK KworIMKgIMKgIMKgIMKgIMKgIMKgcmVzID0gMTsgLyogc2tpcCB0aGlzIGlvY2IgKi8KKyDCoCDC oCDCoCDCoCDCoH0KKyDCoCDCoCDCoCDCoGVsc2UgaWYgKGVycm5vID09IEVJTlRSKSAvKiBub3Qg c2VlbiBpbiByZWFsaXR5LCBub3QgZG9jdW1lbnRlZCAqLworIMKgIMKgIMKgIMKgIMKgcmVzID0g MDsgLyogc2lsZW50bHkgaWdub3JlIGFuZCByZXRyeSAqLworIMKgIMKgIMKgIMKgZWxzZQorIMKg IMKgIMKgIMKgIMKgeworIMKgIMKgIMKgIMKgIMKgIMKgZXZfc3lzZXJyICgiKGxpYmV2KSBsaW51 eGFpbyBpb19zdWJtaXQiKTsKKyDCoCDCoCDCoCDCoCDCoCDCoHJlcyA9IDA7CisgwqAgwqAgwqAg wqAgwqB9CisKKyDCoCDCoCDCoHN1Ym1pdHRlZCArPSByZXM7CisgwqAgwqB9CisKKyDCoGxpbnV4 YWlvX3N1Ym1pdGNudCA9IDA7CisKKyDCoC8qIHNlY29uZCBwaGFzZTogZmV0Y2ggYW5kIHBhcnNl IGV2ZW50cyAqLworCisgwqBsaW51eGFpb19nZXRfZXZlbnRzIChFVl9BXyB0aW1lb3V0KTsKK30K KworaW5saW5lX3NpemUKK2ludAorbGludXhhaW9faW5pdCAoRVZfUF8gaW50IGZsYWdzKQorewor IMKgLyogd291bGQgYmUgZ3JlYXQgdG8gaGF2ZSBhIG5pY2UgdGVzdCBmb3IgSU9DQl9DTURfUE9M TCBpbnN0ZWFkICovCisgwqAvKiBhbHNvOiB0ZXN0IHNvbWUgc2VtaS1jb21tb24gZmQgdHlwZXMs IHN1Y2ggYXMgZmlsZXMgYW5kIHR0eXMgaW4gcmVjb21tZW5kZWRfYmFja2VuZHMgKi8KKyDCoC8q IDQuMTggaW50cm9kdWNlZCBJT0NCX0NNRF9QT0xMLCA0LjE5IG1hZGUgZXBvbGwgd29yaywgYW5k IHdlIG5lZWQgdGhhdCAqLworIMKgaWYgKGV2X2xpbnV4X3ZlcnNpb24gKCkgPCAweDA0MTMwMCkK KyDCoCDCoHJldHVybiAwOworCisgwqBpZiAoIWVwb2xsX2luaXQgKEVWX0FfIDApKQorIMKgIMKg cmV0dXJuIDA7CisKKyDCoGxpbnV4YWlvX2l0ZXJhdGlvbiA9IDA7CisKKyDCoGlmIChsaW51eGFp b19pb19zZXR1cCAoRVZfQSkgPCAwKQorIMKgIMKgeworIMKgIMKgIMKgZXBvbGxfZGVzdHJveSAo RVZfQSk7CisgwqAgwqAgwqByZXR1cm4gMDsKKyDCoCDCoH0KKworIMKgZXZfaW9faW5pdCDCoCgm bGludXhhaW9fZXBvbGxfdywgbGludXhhaW9fZXBvbGxfY2IsIGJhY2tlbmRfZmQsIEVWX1JFQUQp OworIMKgZXZfc2V0X3ByaW9yaXR5ICgmbGludXhhaW9fZXBvbGxfdywgRVZfTUFYUFJJKTsKKyDC oGV2X2lvX3N0YXJ0IChFVl9BXyAmbGludXhhaW9fZXBvbGxfdyk7CisgwqBldl91bnJlZiAoRVZf QSk7IC8qIHdhdGNoZXIgc2hvdWxkIG5vdCBrZWVwIGxvb3AgYWxpdmUgKi8KKworIMKgYmFja2Vu ZF9tb2RpZnkgPSBsaW51eGFpb19tb2RpZnk7CisgwqBiYWNrZW5kX3BvbGwgwqAgPSBsaW51eGFp b19wb2xsOworCisgwqBsaW51eGFpb19pb2NicG1heCA9IDA7CisgwqBsaW51eGFpb19pb2NicHMg PSAwOworCisgwqBsaW51eGFpb19zdWJtaXRzID0gMDsKKyDCoGxpbnV4YWlvX3N1Ym1pdG1heCA9 IDA7CisgwqBsaW51eGFpb19zdWJtaXRjbnQgPSAwOworCisgwqByZXR1cm4gRVZCQUNLRU5EX0xJ TlVYQUlPOworfQorCitpbmxpbmVfc2l6ZQordm9pZAorbGludXhhaW9fZGVzdHJveSAoRVZfUCkK K3sKKyDCoGVwb2xsX2Rlc3Ryb3kgKEVWX0EpOworIMKgbGludXhhaW9fZnJlZV9pb2NicCAoRVZf QSk7CisgwqBldnN5c19pb19kZXN0cm95IChsaW51eGFpb19jdHgpOyAvKiBmYWlscyBpbiBjaGls ZCwgYWlvIGNvbnRleHQgaXMgZGVzdHJveWVkICovCit9CisKK2VjYl9jb2xkCitzdGF0aWMgdm9p ZAorbGludXhhaW9fZm9yayAoRVZfUCkKK3sKKyDCoGxpbnV4YWlvX3N1Ym1pdGNudCA9IDA7IC8q IGFsbCBwb2ludGVycyB3ZXJlIGludmFsaWRhdGVkICovCisgwqBsaW51eGFpb19mcmVlX2lvY2Jw IChFVl9BKTsgLyogdGhpcyBmcmVlcyBhbGwgaW9jYnMsIHdoaWNoIGlzIHZlcnkgaGVhdnktaGFu ZGVkICovCisgwqBldnN5c19pb19kZXN0cm95IChsaW51eGFpb19jdHgpOyAvKiBmYWlscyBpbiBj aGlsZCwgYWlvIGNvbnRleHQgaXMgZGVzdHJveWVkICovCisKKyDCoGxpbnV4YWlvX2l0ZXJhdGlv biA9IDA7IC8qIHdlIHN0YXJ0IG92ZXIgaW4gdGhlIGNoaWxkICovCisKKyDCoHdoaWxlIChsaW51 eGFpb19pb19zZXR1cCAoRVZfQSkgPCAwKQorIMKgIMKgZXZfc3lzZXJyICgiKGxpYmV2KSBsaW51 eGFpbyBpb19zZXR1cCIpOworCisgwqAvKiBmb3JraW5nIGVwb2xsIHNob3VsZCBhbHNvIGVmZmVj dGl2ZWx5IHVucmVnaXN0ZXIgYWxsIGZkcyBmcm9tIHRoZSBiYWNrZW5kICovCisgwqBlcG9sbF9m b3JrIChFVl9BKTsKKyDCoC8qIGVwb2xsX2ZvcmsgYWxyZWFkeSBkaWQgdGhpcy4gaG9wZWZ1bGx5 ICovCisgwqAvKmZkX3JlYXJtX2FsbCAoRVZfQSk7Ki8KKworIMKgZXZfaW9fc3RvcCDCoChFVl9B XyAmbGludXhhaW9fZXBvbGxfdyk7CisgwqBldl9pb19zZXQgwqAgKEVWX0FfICZsaW51eGFpb19l cG9sbF93LCBiYWNrZW5kX2ZkLCBFVl9SRUFEKTsKKyDCoGV2X2lvX3N0YXJ0IChFVl9BXyAmbGlu dXhhaW9fZXBvbGxfdyk7Cit9CisKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2X3Bv bGwuYyBiL3RoaXJkX3BhcnR5L2xpYmV2L2V2X3BvbGwuYwppbmRleCBiZDc0MmIwN2YuLmU1NTA4 ZGRiMCAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvbGliZXYvZXZfcG9sbC5jCisrKyBiL3RoaXJk X3BhcnR5L2xpYmV2L2V2X3BvbGwuYwpAQCAtMSw3ICsxLDcgQEAKwqAvKgrCoCAqIGxpYmV2IHBv bGwgZmQgYWN0aXZpdHkgYmFja2VuZArCoCAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDcsMjAwOCwy MDA5LDIwMTAsMjAxMSBNYXJjIEFsZXhhbmRlciBMZWhtYW5uIDxsaWJldkBzY2htb3JwLmRlPgor ICogQ29weXJpZ2h0IChjKSAyMDA3LDIwMDgsMjAwOSwyMDEwLDIwMTEsMjAxNiwyMDE5IE1hcmMg QWxleGFuZGVyIExlaG1hbm4gPGxpYmV2QHNjaG1vcnAuZGU+CsKgICogQWxsIHJpZ2h0cyByZXNl cnZlZC4KwqAgKgrCoCAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYS0KQEAgLTQxLDEwICs0MSwxMiBAQArC oArCoGlubGluZV9zaXplCsKgdm9pZAotcG9sbGlkeF9pbml0IChpbnQgKmJhc2UsIGludCBjb3Vu dCkKK2FycmF5X25lZWRzaXplX3BvbGxpZHggKGludCAqYmFzZSwgaW50IG9mZnNldCwgaW50IGNv dW50KQrCoHsKLSDCoC8qIGNvbnNpZGVyIHVzaW5nIG1lbXNldCAoLi4sIC0xLCAuLi4pLCB3aGlj aCBpcyBwcmFjdGljYWxseSBndWFyYW50ZWVkCi0gwqAgKiB0byB3b3JrIG9uIGFsbCBzeXN0ZW1z IGltcGxlbWVudGluZyBwb2xsICovCisgwqAvKiB1c2luZyBtZW1zZXQgKC4uLCAtMSwgLi4uKSBp cyB0ZW1wdGluZywgd2Ugd2UgdHJ5CisgwqAgKiB0byBiZSB1bHRyYXBvcnRhYmxlCisgwqAgKi8K KyDCoGJhc2UgKz0gb2Zmc2V0OwrCoCDCoHdoaWxlIChjb3VudC0tKQrCoCDCoCDCoCpiYXNlKysg PSAtMTsKwqB9CkBAIC01NywxNCArNTksMTQgQEAgcG9sbF9tb2RpZnkgKEVWX1BfIGludCBmZCwg aW50IG9ldiwgaW50IG5ldikKwqAgwqBpZiAob2V2ID09IG5ldikKwqAgwqAgwqByZXR1cm47CsKg Ci0gwqBhcnJheV9uZWVkc2l6ZSAoaW50LCBwb2xsaWR4cywgcG9sbGlkeG1heCwgZmQgKyAxLCBw b2xsaWR4X2luaXQpOworIMKgYXJyYXlfbmVlZHNpemUgKGludCwgcG9sbGlkeHMsIHBvbGxpZHht YXgsIGZkICsgMSwgYXJyYXlfbmVlZHNpemVfcG9sbGlkeCk7CsKgCsKgIMKgaWR4ID0gcG9sbGlk eHMgW2ZkXTsKwqAKwqAgwqBpZiAoaWR4IDwgMCkgLyogbmVlZCB0byBhbGxvY2F0ZSBhIG5ldyBw b2xsZmQgKi8KwqAgwqAgwqB7CsKgIMKgIMKgIMKgcG9sbGlkeHMgW2ZkXSA9IGlkeCA9IHBvbGxj bnQrKzsKLSDCoCDCoCDCoGFycmF5X25lZWRzaXplIChzdHJ1Y3QgcG9sbGZkLCBwb2xscywgcG9s bG1heCwgcG9sbGNudCwgRU1QVFkyKTsKKyDCoCDCoCDCoGFycmF5X25lZWRzaXplIChzdHJ1Y3Qg cG9sbGZkLCBwb2xscywgcG9sbG1heCwgcG9sbGNudCwgYXJyYXlfbmVlZHNpemVfbm9pbml0KTsK wqAgwqAgwqAgwqBwb2xscyBbaWR4XS5mZCA9IGZkOwrCoCDCoCDCoH0KwqAKQEAgLTc4LDcgKzgw LDcgQEAgcG9sbF9tb2RpZnkgKEVWX1BfIGludCBmZCwgaW50IG9ldiwgaW50IG5ldikKwqAgwqAg wqB7CsKgIMKgIMKgIMKgcG9sbGlkeHMgW2ZkXSA9IC0xOwrCoAotIMKgIMKgIMKgaWYgKGV4cGVj dF90cnVlIChpZHggPCAtLXBvbGxjbnQpKQorIMKgIMKgIMKgaWYgKGVjYl9leHBlY3RfdHJ1ZSAo aWR4IDwgLS1wb2xsY250KSkKwqAgwqAgwqAgwqAgwqB7CsKgIMKgIMKgIMKgIMKgIMKgcG9sbHMg W2lkeF0gPSBwb2xscyBbcG9sbGNudF07CsKgIMKgIMKgIMKgIMKgIMKgcG9sbGlkeHMgW3BvbGxz IFtpZHhdLmZkXSA9IGlkeDsKQEAgLTkzLDEwICs5NSwxMCBAQCBwb2xsX3BvbGwgKEVWX1BfIGV2 X3RzdGFtcCB0aW1lb3V0KQrCoCDCoGludCByZXM7CsKgIMKgCsKgIMKgRVZfUkVMRUFTRV9DQjsK LSDCoHJlcyA9IHBvbGwgKHBvbGxzLCBwb2xsY250LCB0aW1lb3V0ICogMWUzKTsKKyDCoHJlcyA9 IHBvbGwgKHBvbGxzLCBwb2xsY250LCBFVl9UU19UT19NU0VDICh0aW1lb3V0KSk7CsKgIMKgRVZf QUNRVUlSRV9DQjsKwqAKLSDCoGlmIChleHBlY3RfZmFsc2UgKHJlcyA8IDApKQorIMKgaWYgKGVj Yl9leHBlY3RfZmFsc2UgKHJlcyA8IDApKQrCoCDCoCDCoHsKwqAgwqAgwqAgwqBpZiAoZXJybm8g PT0gRUJBREYpCsKgIMKgIMKgIMKgIMKgZmRfZWJhZGYgKEVWX0EpOwpAQCAtMTA4LDE0ICsxMTAs MTcgQEAgcG9sbF9wb2xsIChFVl9QXyBldl90c3RhbXAgdGltZW91dCkKwqAgwqBlbHNlCsKgIMKg IMKgZm9yIChwID0gcG9sbHM7IHJlczsgKytwKQrCoCDCoCDCoCDCoHsKLSDCoCDCoCDCoCDCoGFz c2VydCAoKCJsaWJldjogcG9sbCgpIHJldHVybmVkIGlsbGVnYWwgcmVzdWx0LCBicm9rZW4gQlNE IGtlcm5lbD8iLCBwIDwgcG9sbHMgKyBwb2xsY250KSk7CisgwqAgwqAgwqAgwqBhc3NlcnQgKCgi bGliZXY6IHBvbGwgcmV0dXJuZWQgaWxsZWdhbCByZXN1bHQsIGJyb2tlbiBCU0Qga2VybmVsPyIs IHAgPCBwb2xscyArIHBvbGxjbnQpKTsKwqAKLSDCoCDCoCDCoCDCoGlmIChleHBlY3RfZmFsc2Ug KHAtPnJldmVudHMpKSAvKiB0aGlzIGV4cGVjdCBpcyBkZWJhdGFibGUgKi8KKyDCoCDCoCDCoCDC oGlmIChlY2JfZXhwZWN0X2ZhbHNlIChwLT5yZXZlbnRzKSkgLyogdGhpcyBleHBlY3QgaXMgZGVi YXRhYmxlICovCsKgIMKgIMKgIMKgIMKgIMKgewrCoCDCoCDCoCDCoCDCoCDCoCDCoC0tcmVzOwrC oAotIMKgIMKgIMKgIMKgIMKgIMKgaWYgKGV4cGVjdF9mYWxzZSAocC0+cmV2ZW50cyAmIFBPTExO VkFMKSkKLSDCoCDCoCDCoCDCoCDCoCDCoCDCoGZkX2tpbGwgKEVWX0FfIHAtPmZkKTsKKyDCoCDC oCDCoCDCoCDCoCDCoGlmIChlY2JfZXhwZWN0X2ZhbHNlIChwLT5yZXZlbnRzICYgUE9MTE5WQUwp KQorIMKgIMKgIMKgIMKgIMKgIMKgIMKgeworIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgYXNzZXJ0 ICgoImxpYmV2OiBwb2xsIGZvdW5kIGludmFsaWQgZmQgaW4gcG9sbCBzZXQiLCAwKSk7CisgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqBmZF9raWxsIChFVl9BXyBwLT5mZCk7CisgwqAgwqAgwqAgwqAg wqAgwqAgwqB9CsKgIMKgIMKgIMKgIMKgIMKgIMKgZWxzZQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oGZkX2V2ZW50ICgKwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBFVl9BXwpAQCAtMTMxLDcgKzEz Niw3IEBAIGlubGluZV9zaXplCsKgaW50CsKgcG9sbF9pbml0IChFVl9QXyBpbnQgZmxhZ3MpCsKg ewotIMKgYmFja2VuZF9taW50aW1lID0gMWUtMzsKKyDCoGJhY2tlbmRfbWludGltZSA9IEVWX1RT X0NPTlNUICgxZS0zKTsKwqAgwqBiYWNrZW5kX21vZGlmeSDCoD0gcG9sbF9tb2RpZnk7CsKgIMKg YmFja2VuZF9wb2xsIMKgIMKgPSBwb2xsX3BvbGw7CsKgCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0 eS9saWJldi9ldl9wb3J0LmMgYi90aGlyZF9wYXJ0eS9saWJldi9ldl9wb3J0LmMKaW5kZXggYzdi MGI3MGMxLi5mNGNkOWQ5OWMgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2X3BvcnQu YworKysgYi90aGlyZF9wYXJ0eS9saWJldi9ldl9wb3J0LmMKQEAgLTEsNyArMSw3IEBACsKgLyoK wqAgKiBsaWJldiBzb2xhcmlzIGV2ZW50IHBvcnQgYmFja2VuZArCoCAqCi0gKiBDb3B5cmlnaHQg KGMpIDIwMDcsMjAwOCwyMDA5LDIwMTAsMjAxMSBNYXJjIEFsZXhhbmRlciBMZWhtYW5uIDxsaWJl dkBzY2htb3JwLmRlPgorICogQ29weXJpZ2h0IChjKSAyMDA3LDIwMDgsMjAwOSwyMDEwLDIwMTEs MjAxOSBNYXJjIEFsZXhhbmRlciBMZWhtYW5uIDxsaWJldkBzY2htb3JwLmRlPgrCoCAqIEFsbCBy aWdodHMgcmVzZXJ2ZWQuCsKgICoKwqAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2EtCkBAIC02OSw3ICs2 OSwxMCBAQCBwb3J0X2Fzc29jaWF0ZV9hbmRfY2hlY2sgKEVWX1BfIGludCBmZCwgaW50IGV2KQrC oCDCoCkKwqAgwqAgwqB7CsKgIMKgIMKgIMKgaWYgKGVycm5vID09IEVCQURGRCkKLSDCoCDCoCDC oCDCoGZkX2tpbGwgKEVWX0FfIGZkKTsKKyDCoCDCoCDCoCDCoHsKKyDCoCDCoCDCoCDCoCDCoGFz c2VydCAoKCJsaWJldjogcG9ydF9hc3NvY2lhdGUgZm91bmQgaW52YWxpZCBmZCIsIGVycm5vICE9 IEVCQURGRCkpOworIMKgIMKgIMKgIMKgIMKgZmRfa2lsbCAoRVZfQV8gZmQpOworIMKgIMKgIMKg IMKgfQrCoCDCoCDCoCDCoGVsc2UKwqAgwqAgwqAgwqAgwqBldl9zeXNlcnIgKCIobGliZXYpIHBv cnRfYXNzb2NpYXRlIik7CsKgIMKgIMKgfQpAQCAtMTI5LDcgKzEzMiw3IEBAIHBvcnRfcG9sbCAo RVZfUF8gZXZfdHN0YW1wIHRpbWVvdXQpCsKgIMKgIMKgIMKgIMKgfQrCoCDCoCDCoH0KwqAKLSDC oGlmIChleHBlY3RfZmFsc2UgKG5nZXQgPT0gcG9ydF9ldmVudG1heCkpCisgwqBpZiAoZWNiX2V4 cGVjdF9mYWxzZSAobmdldCA9PSBwb3J0X2V2ZW50bWF4KSkKwqAgwqAgwqB7CsKgIMKgIMKgIMKg ZXZfZnJlZSAocG9ydF9ldmVudHMpOwrCoCDCoCDCoCDCoHBvcnRfZXZlbnRtYXggPSBhcnJheV9u ZXh0c2l6ZSAoc2l6ZW9mIChwb3J0X2V2ZW50X3QpLCBwb3J0X2V2ZW50bWF4LCBwb3J0X2V2ZW50 bWF4ICsgMSk7CkBAIC0xNTEsMTEgKzE1NCwxMSBAQCBwb3J0X2luaXQgKEVWX1BfIGludCBmbGFn cykKwqAKwqAgwqAvKiBpZiBteSByZWFkaW5nIG9mIHRoZSBvcGVuc29sYXJpcyBrZXJuZWwgc291 cmNlcyBhcmUgY29ycmVjdCwgdGhlbgrCoCDCoCAqIG9wZW5zb2xhcmlzIGRvZXMgc29tZXRoaW5n IHZlcnkgc3R1cGlkOiBpdCBjaGVja3MgaWYgdGhlIHRpbWUgaGFzIGFscmVhZHkKLSDCoCAqIGVs YXBzZWQgYW5kIGRvZXNuJ3Qgcm91bmQgdXAgaWYgdGhhdCBpcyB0aGUgY2FzZSxtIG90aGVyd2lz ZSBpdCBET0VTIHJvdW5kCisgwqAgKiBlbGFwc2VkIGFuZCBkb2Vzbid0IHJvdW5kIHVwIGlmIHRo YXQgaXMgdGhlIGNhc2UsIG90aGVyd2lzZSBpdCBET0VTIHJvdW5kCsKgIMKgICogdXAuIFNpbmNl IHdlIGNhbid0IGtub3cgd2hhdCB0aGUgY2FzZSBpcywgd2UgbmVlZCB0byBndWVzcyBieSB1c2lu ZyBhCsKgIMKgICogImxhcmdlIGVub3VnaCIgdGltZW91dC4gTm9ybWFsbHksIDFlLTkgd291bGQg YmUgY29ycmVjdC4KwqAgwqAgKi8KLSDCoGJhY2tlbmRfbWludGltZSA9IDFlLTM7IC8qIG5lZWRl ZCB0byBjb21wZW5zYXRlIGZvciBwb3J0X2dldG4gcmV0dXJuaW5nIGVhcmx5ICovCisgwqBiYWNr ZW5kX21pbnRpbWUgPSBFVl9UU19DT05TVCAoMWUtMyk7IC8qIG5lZWRlZCB0byBjb21wZW5zYXRl IGZvciBwb3J0X2dldG4gcmV0dXJuaW5nIGVhcmx5ICovCsKgIMKgYmFja2VuZF9tb2RpZnkgwqA9 IHBvcnRfbW9kaWZ5OwrCoCDCoGJhY2tlbmRfcG9sbCDCoCDCoD0gcG9ydF9wb2xsOwrCoApkaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvbGliZXYvZXZfc2VsZWN0LmMgYi90aGlyZF9wYXJ0eS9saWJl di9ldl9zZWxlY3QuYwppbmRleCBlZDFmYzdhZDkuLmI4NjJjODExMyAxMDA2NDQKLS0tIGEvdGhp cmRfcGFydHkvbGliZXYvZXZfc2VsZWN0LmMKKysrIGIvdGhpcmRfcGFydHkvbGliZXYvZXZfc2Vs ZWN0LmMKQEAgLTEwOCw3ICsxMDgsNyBAQCBzZWxlY3RfbW9kaWZ5IChFVl9QXyBpbnQgZmQsIGlu dCBvZXYsIGludCBuZXYpCsKgIMKgIMKgaW50IMKgIMKgIHdvcmQgPSBmZCAvIE5GREJJVFM7CsKg IMKgIMKgZmRfbWFzayBtYXNrID0gMVVMIDw8IChmZCAlIE5GREJJVFMpOwrCoAotIMKgIMKgaWYg KGV4cGVjdF9mYWxzZSAodmVjX21heCA8PSB3b3JkKSkKKyDCoCDCoGlmIChlY2JfZXhwZWN0X2Zh bHNlICh2ZWNfbWF4IDw9IHdvcmQpKQrCoCDCoCDCoCDCoHsKwqAgwqAgwqAgwqAgwqBpbnQgbmV3 X21heCA9IHdvcmQgKyAxOwrCoApAQCAtMTcxLDcgKzE3MSw3IEBAIHNlbGVjdF9wb2xsIChFVl9Q XyBldl90c3RhbXAgdGltZW91dCkKwqAjZW5kaWYKwqAgwqBFVl9BQ1FVSVJFX0NCOwrCoAotIMKg aWYgKGV4cGVjdF9mYWxzZSAocmVzIDwgMCkpCisgwqBpZiAoZWNiX2V4cGVjdF9mYWxzZSAocmVz IDwgMCkpCsKgIMKgIMKgewrCoCDCoCDCoCDCoCNpZiBFVl9TRUxFQ1RfSVNfV0lOU09DS0VUCsKg IMKgIMKgIMKgZXJybm8gPSBXU0FHZXRMYXN0RXJyb3IgKCk7CkBAIC0xOTcsNyArMTk3LDcgQEAg c2VsZWN0X3BvbGwgKEVWX1BfIGV2X3RzdGFtcCB0aW1lb3V0KQrCoCDCoCDCoCDCoCDCoHsKwqAg wqAgwqAgwqAgwqAgwqBpZiAodGltZW91dCkKwqAgwqAgwqAgwqAgwqAgwqAgwqB7Ci0gwqAgwqAg wqAgwqAgwqAgwqAgwqB1bnNpZ25lZCBsb25nIG1zID0gdGltZW91dCAqIDFlMzsKKyDCoCDCoCDC oCDCoCDCoCDCoCDCoHVuc2lnbmVkIGxvbmcgbXMgPSBFVl9UU19UT19NU0VDICh0aW1lb3V0KTsK wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBTbGVlcCAobXMgPyBtcyA6IDEpOwrCoCDCoCDCoCDCoCDC oCDCoCDCoH0KwqAKQEAgLTIzNiw3ICsyMzYsNyBAQCBzZWxlY3RfcG9sbCAoRVZfUF8gZXZfdHN0 YW1wIHRpbWVvdXQpCsKgIMKgIMKgIMKgIMKgIMKgaWYgKEZEX0lTU0VUIChoYW5kbGUsIChmZF9z ZXQgKil2ZWNfZW8pKSBldmVudHMgfD0gRVZfV1JJVEU7CsKgIMKgIMKgIMKgIMKgIMKgI2VuZGlm CsKgCi0gwqAgwqAgwqAgwqAgwqBpZiAoZXhwZWN0X3RydWUgKGV2ZW50cykpCisgwqAgwqAgwqAg wqAgwqBpZiAoZWNiX2V4cGVjdF90cnVlIChldmVudHMpKQrCoCDCoCDCoCDCoCDCoCDCoCDCoGZk X2V2ZW50IChFVl9BXyBmZCwgZXZlbnRzKTsKwqAgwqAgwqAgwqAgwqB9CsKgIMKgfQpAQCAtMjYy LDcgKzI2Miw3IEBAIHNlbGVjdF9wb2xsIChFVl9QXyBldl90c3RhbXAgdGltZW91dCkKwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqBldmVudHMgfD0gd29yZF9yICYgbWFzayA/IEVWX1JFQUQgwqA6IDA7 CsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgZXZlbnRzIHw9IHdvcmRfdyAmIG1hc2sgPyBFVl9XUklU RSA6IDA7CsKgCi0gwqAgwqAgwqAgwqAgwqAgwqAgwqBpZiAoZXhwZWN0X3RydWUgKGV2ZW50cykp CisgwqAgwqAgwqAgwqAgwqAgwqAgwqBpZiAoZWNiX2V4cGVjdF90cnVlIChldmVudHMpKQrCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoGZkX2V2ZW50IChFVl9BXyB3b3JkICogTkZEQklUUyArIGJp dCwgZXZlbnRzKTsKwqAgwqAgwqAgwqAgwqAgwqAgwqB9CsKgIMKgIMKgIMKgfQpAQCAtMjc1LDcg KzI3NSw3IEBAIGlubGluZV9zaXplCsKgaW50CsKgc2VsZWN0X2luaXQgKEVWX1BfIGludCBmbGFn cykKwqB7Ci0gwqBiYWNrZW5kX21pbnRpbWUgPSAxZS02OworIMKgYmFja2VuZF9taW50aW1lID0g RVZfVFNfQ09OU1QgKDFlLTYpOwrCoCDCoGJhY2tlbmRfbW9kaWZ5IMKgPSBzZWxlY3RfbW9kaWZ5 OwrCoCDCoGJhY2tlbmRfcG9sbCDCoCDCoD0gc2VsZWN0X3BvbGw7CsKgCmRpZmYgLS1naXQgYS90 aGlyZF9wYXJ0eS9saWJldi9ldl92YXJzLmggYi90aGlyZF9wYXJ0eS9saWJldi9ldl92YXJzLmgK aW5kZXggMDRkNGRiMTZmLi5mYjBjNTgzMTYgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2xpYmV2 L2V2X3ZhcnMuaAorKysgYi90aGlyZF9wYXJ0eS9saWJldi9ldl92YXJzLmgKQEAgLTEsNyArMSw3 IEBACsKgLyoKwqAgKiBsb29wIG1lbWJlciB2YXJpYWJsZSBkZWNsYXJhdGlvbnMKwqAgKgotICog Q29weXJpZ2h0IChjKSAyMDA3LDIwMDgsMjAwOSwyMDEwLDIwMTEsMjAxMiwyMDEzIE1hcmMgQWxl eGFuZGVyIExlaG1hbm4gPGxpYmV2QHNjaG1vcnAuZGU+CisgKiBDb3B5cmlnaHQgKGMpIDIwMDcs MjAwOCwyMDA5LDIwMTAsMjAxMSwyMDEyLDIwMTMsMjAxOSBNYXJjIEFsZXhhbmRlciBMZWhtYW5u IDxsaWJldkBzY2htb3JwLmRlPgrCoCAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCsKgICoKwqAgKiBS ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y IHdpdGhvdXQgbW9kaWZpY2EtCkBAIC0xMDcsNiArMTA3LDQ2IEBAIFZBUngoaW50LCBlcG9sbF9l cGVybWNudCkKwqBWQVJ4KGludCwgZXBvbGxfZXBlcm1tYXgpCsKgI2VuZGlmCsKgCisjaWYgRVZf VVNFX0xJTlVYQUlPIHx8IEVWX0dFTldSQVAKK1ZBUngoYWlvX2NvbnRleHRfdCwgbGludXhhaW9f Y3R4KQorVkFSeChpbnQsIGxpbnV4YWlvX2l0ZXJhdGlvbikKK1ZBUngoc3RydWN0IGFuaW9jYiAq KiwgbGludXhhaW9faW9jYnBzKQorVkFSeChpbnQsIGxpbnV4YWlvX2lvY2JwbWF4KQorVkFSeChz dHJ1Y3QgaW9jYiAqKiwgbGludXhhaW9fc3VibWl0cykKK1ZBUngoaW50LCBsaW51eGFpb19zdWJt aXRjbnQpCitWQVJ4KGludCwgbGludXhhaW9fc3VibWl0bWF4KQorVkFSeChldl9pbywgbGludXhh aW9fZXBvbGxfdykKKyNlbmRpZgorCisjaWYgRVZfVVNFX0lPVVJJTkcgfHwgRVZfR0VOV1JBUAor VkFSeChpbnQsIGlvdXJpbmdfZmQpCitWQVJ4KHVuc2lnbmVkLCBpb3VyaW5nX3RvX3N1Ym1pdCk7 CitWQVJ4KGludCwgaW91cmluZ19lbnRyaWVzKQorVkFSeChpbnQsIGlvdXJpbmdfbWF4X2VudHJp ZXMpCitWQVJ4KHZvaWQgKiwgaW91cmluZ19zcV9yaW5nKQorVkFSeCh2b2lkICosIGlvdXJpbmdf Y3FfcmluZykKK1ZBUngodm9pZCAqLCBpb3VyaW5nX3NxZXMpCitWQVJ4KHVpbnQzMl90LCBpb3Vy aW5nX3NxX3Jpbmdfc2l6ZSkKK1ZBUngodWludDMyX3QsIGlvdXJpbmdfY3FfcmluZ19zaXplKQor VkFSeCh1aW50MzJfdCwgaW91cmluZ19zcWVzX3NpemUpCitWQVJ4KHVpbnQzMl90LCBpb3VyaW5n X3NxX2hlYWQpCitWQVJ4KHVpbnQzMl90LCBpb3VyaW5nX3NxX3RhaWwpCitWQVJ4KHVpbnQzMl90 LCBpb3VyaW5nX3NxX3JpbmdfbWFzaykKK1ZBUngodWludDMyX3QsIGlvdXJpbmdfc3FfcmluZ19l bnRyaWVzKQorVkFSeCh1aW50MzJfdCwgaW91cmluZ19zcV9mbGFncykKK1ZBUngodWludDMyX3Qs IGlvdXJpbmdfc3FfZHJvcHBlZCkKK1ZBUngodWludDMyX3QsIGlvdXJpbmdfc3FfYXJyYXkpCitW QVJ4KHVpbnQzMl90LCBpb3VyaW5nX2NxX2hlYWQpCitWQVJ4KHVpbnQzMl90LCBpb3VyaW5nX2Nx X3RhaWwpCitWQVJ4KHVpbnQzMl90LCBpb3VyaW5nX2NxX3JpbmdfbWFzaykKK1ZBUngodWludDMy X3QsIGlvdXJpbmdfY3FfcmluZ19lbnRyaWVzKQorVkFSeCh1aW50MzJfdCwgaW91cmluZ19jcV9v dmVyZmxvdykKK1ZBUngodWludDMyX3QsIGlvdXJpbmdfY3FfY3FlcykKK1ZBUngoZXZfdHN0YW1w LCBpb3VyaW5nX3RmZF90bykKK1ZBUngoaW50LCBpb3VyaW5nX3RmZCkKK1ZBUngoZXZfaW8sIGlv dXJpbmdfdGZkX3cpCisjZW5kaWYKKwrCoCNpZiBFVl9VU0VfS1FVRVVFIHx8IEVWX0dFTldSQVAK wqBWQVJ4KHBpZF90LCBrcXVldWVfZmRfcGlkKQrCoFZBUngoc3RydWN0IGtldmVudCAqLCBrcXVl dWVfY2hhbmdlcykKQEAgLTE4Nyw2ICsyMjcsMTEgQEAgVkFSeChldl9pbywgc2lnZmRfdykKwqBW QVJ4KHNpZ3NldF90LCBzaWdmZF9zZXQpCsKgI2VuZGlmCsKgCisjaWYgRVZfVVNFX1RJTUVSRkQg fHwgRVZfR0VOV1JBUAorVkFSeChpbnQsIHRpbWVyZmQpIC8qIHRpbWVyZmQgZm9yIHRpbWUganVt cCBkZXRlY3Rpb24gKi8KK1ZBUngoZXZfaW8sIHRpbWVyZmRfdykKKyNlbmRpZgorCsKgVkFSeCh1 bnNpZ25lZCBpbnQsIG9yaWdmbGFncykgLyogb3JpZ2luYWwgbG9vcCBmbGFncyAqLwrCoArCoCNp ZiBFVl9GRUFUVVJFX0FQSSB8fCBFVl9HRU5XUkFQCkBAIC0xOTUsOCArMjQwLDggQEAgVkFSeCh1 bnNpZ25lZCBpbnQsIGxvb3BfZGVwdGgpIC8qICNldl9ydW4gZW50ZXJzIC0gI2V2X3J1biBsZWF2 ZXMgKi8KwqAKwqBWQVJ4KHZvaWQgKiwgdXNlcmRhdGEpCsKgLyogQysrIGRvZXNuJ3Qgc3VwcG9y dCB0aGUgZXZfbG9vcF9jYWxsYmFjayB0eXBlZGVmIGhlcmUuIHN0aW5rcy4gKi8KLVZBUiAocmVs ZWFzZV9jYiwgdm9pZCAoKnJlbGVhc2VfY2IpKEVWX1ApIEVWX1RIUk9XKQotVkFSIChhY3F1aXJl X2NiLCB2b2lkICgqYWNxdWlyZV9jYikoRVZfUCkgRVZfVEhST1cpCitWQVIgKHJlbGVhc2VfY2Is IHZvaWQgKCpyZWxlYXNlX2NiKShFVl9QKSBFVl9OT0VYQ0VQVCkKK1ZBUiAoYWNxdWlyZV9jYiwg dm9pZCAoKmFjcXVpcmVfY2IpKEVWX1ApIEVWX05PRVhDRVBUKQrCoFZBUiAoaW52b2tlX2NiICwg ZXZfbG9vcF9jYWxsYmFjayBpbnZva2VfY2IpCsKgI2VuZGlmCsKgCmRpZmYgLS1naXQgYS90aGly ZF9wYXJ0eS9saWJldi9ldl93aW4zMi5jIGIvdGhpcmRfcGFydHkvbGliZXYvZXZfd2luMzIuYwpp bmRleCBmZDY3MTM1NmEuLjk3MzQ0YzNlMSAxMDA2NDQKLS0tIGEvdGhpcmRfcGFydHkvbGliZXYv ZXZfd2luMzIuYworKysgYi90aGlyZF9wYXJ0eS9saWJldi9ldl93aW4zMi5jCkBAIC0xNTQsOCAr MTU0LDggQEAgZXZfdGltZSAodm9pZCkKwqAgwqB1aS51Lkxvd1BhcnQgwqA9IGZ0LmR3TG93RGF0 ZVRpbWU7CsKgIMKgdWkudS5IaWdoUGFydCA9IGZ0LmR3SGlnaERhdGVUaW1lOwrCoAotIMKgLyog bXN2YyBjYW5ub3QgY29udmVydCB1bG9uZ2xvbmcgdG8gZG91YmxlLi4uIHllcywgaXQgaXMgdGhh dCBzdWNreSAqLwotIMKgcmV0dXJuIChMT05HTE9ORykodWkuUXVhZFBhcnQgLSAxMTY0NDQ3MzYw MDAwMDAwMDApICogMWUtNzsKKyDCoC8qIGFsc28sIG1zdmMgY2Fubm90IGNvbnZlcnQgdWxvbmds b25nIHRvIGRvdWJsZS4uLiB5ZXMsIGl0IGlzIHRoYXQgc3Vja3kgKi8KKyDCoHJldHVybiBFVl9U U19GUk9NX1VTRUMgKCgoTE9OR0xPTkcpKHVpLlF1YWRQYXJ0IC0gMTE2NDQ0NzM2MDAwMDAwMDAw KSAqIDFlLTEpKTsKwqB9CsKgCsKgI2VuZGlmCmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJl di9ldl93cmFwLmggYi90aGlyZF9wYXJ0eS9saWJldi9ldl93cmFwLmgKaW5kZXggYWQ5ODllYTdk Li40NWQ3OTNjZWQgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2X3dyYXAuaAorKysg Yi90aGlyZF9wYXJ0eS9saWJldi9ldl93cmFwLmgKQEAgLTQ0LDEyICs0NCw0NiBAQArCoCNkZWZp bmUgaW52b2tlX2NiICgobG9vcCktPmludm9rZV9jYikKwqAjZGVmaW5lIGlvX2Jsb2NrdGltZSAo KGxvb3ApLT5pb19ibG9ja3RpbWUpCsKgI2RlZmluZSBpb2NwICgobG9vcCktPmlvY3ApCisjZGVm aW5lIGlvdXJpbmdfY3FfY3FlcyAoKGxvb3ApLT5pb3VyaW5nX2NxX2NxZXMpCisjZGVmaW5lIGlv dXJpbmdfY3FfaGVhZCAoKGxvb3ApLT5pb3VyaW5nX2NxX2hlYWQpCisjZGVmaW5lIGlvdXJpbmdf Y3Ffb3ZlcmZsb3cgKChsb29wKS0+aW91cmluZ19jcV9vdmVyZmxvdykKKyNkZWZpbmUgaW91cmlu Z19jcV9yaW5nICgobG9vcCktPmlvdXJpbmdfY3FfcmluZykKKyNkZWZpbmUgaW91cmluZ19jcV9y aW5nX2VudHJpZXMgKChsb29wKS0+aW91cmluZ19jcV9yaW5nX2VudHJpZXMpCisjZGVmaW5lIGlv dXJpbmdfY3FfcmluZ19tYXNrICgobG9vcCktPmlvdXJpbmdfY3FfcmluZ19tYXNrKQorI2RlZmlu ZSBpb3VyaW5nX2NxX3Jpbmdfc2l6ZSAoKGxvb3ApLT5pb3VyaW5nX2NxX3Jpbmdfc2l6ZSkKKyNk ZWZpbmUgaW91cmluZ19jcV90YWlsICgobG9vcCktPmlvdXJpbmdfY3FfdGFpbCkKKyNkZWZpbmUg aW91cmluZ19lbnRyaWVzICgobG9vcCktPmlvdXJpbmdfZW50cmllcykKKyNkZWZpbmUgaW91cmlu Z19mZCAoKGxvb3ApLT5pb3VyaW5nX2ZkKQorI2RlZmluZSBpb3VyaW5nX21heF9lbnRyaWVzICgo bG9vcCktPmlvdXJpbmdfbWF4X2VudHJpZXMpCisjZGVmaW5lIGlvdXJpbmdfc3FfYXJyYXkgKChs b29wKS0+aW91cmluZ19zcV9hcnJheSkKKyNkZWZpbmUgaW91cmluZ19zcV9kcm9wcGVkICgobG9v cCktPmlvdXJpbmdfc3FfZHJvcHBlZCkKKyNkZWZpbmUgaW91cmluZ19zcV9mbGFncyAoKGxvb3Ap LT5pb3VyaW5nX3NxX2ZsYWdzKQorI2RlZmluZSBpb3VyaW5nX3NxX2hlYWQgKChsb29wKS0+aW91 cmluZ19zcV9oZWFkKQorI2RlZmluZSBpb3VyaW5nX3NxX3JpbmcgKChsb29wKS0+aW91cmluZ19z cV9yaW5nKQorI2RlZmluZSBpb3VyaW5nX3NxX3JpbmdfZW50cmllcyAoKGxvb3ApLT5pb3VyaW5n X3NxX3JpbmdfZW50cmllcykKKyNkZWZpbmUgaW91cmluZ19zcV9yaW5nX21hc2sgKChsb29wKS0+ aW91cmluZ19zcV9yaW5nX21hc2spCisjZGVmaW5lIGlvdXJpbmdfc3FfcmluZ19zaXplICgobG9v cCktPmlvdXJpbmdfc3FfcmluZ19zaXplKQorI2RlZmluZSBpb3VyaW5nX3NxX3RhaWwgKChsb29w KS0+aW91cmluZ19zcV90YWlsKQorI2RlZmluZSBpb3VyaW5nX3NxZXMgKChsb29wKS0+aW91cmlu Z19zcWVzKQorI2RlZmluZSBpb3VyaW5nX3NxZXNfc2l6ZSAoKGxvb3ApLT5pb3VyaW5nX3NxZXNf c2l6ZSkKKyNkZWZpbmUgaW91cmluZ190ZmQgKChsb29wKS0+aW91cmluZ190ZmQpCisjZGVmaW5l IGlvdXJpbmdfdGZkX3RvICgobG9vcCktPmlvdXJpbmdfdGZkX3RvKQorI2RlZmluZSBpb3VyaW5n X3RmZF93ICgobG9vcCktPmlvdXJpbmdfdGZkX3cpCisjZGVmaW5lIGlvdXJpbmdfdG9fc3VibWl0 ICgobG9vcCktPmlvdXJpbmdfdG9fc3VibWl0KQrCoCNkZWZpbmUga3F1ZXVlX2NoYW5nZWNudCAo KGxvb3ApLT5rcXVldWVfY2hhbmdlY250KQrCoCNkZWZpbmUga3F1ZXVlX2NoYW5nZW1heCAoKGxv b3ApLT5rcXVldWVfY2hhbmdlbWF4KQrCoCNkZWZpbmUga3F1ZXVlX2NoYW5nZXMgKChsb29wKS0+ a3F1ZXVlX2NoYW5nZXMpCsKgI2RlZmluZSBrcXVldWVfZXZlbnRtYXggKChsb29wKS0+a3F1ZXVl X2V2ZW50bWF4KQrCoCNkZWZpbmUga3F1ZXVlX2V2ZW50cyAoKGxvb3ApLT5rcXVldWVfZXZlbnRz KQrCoCNkZWZpbmUga3F1ZXVlX2ZkX3BpZCAoKGxvb3ApLT5rcXVldWVfZmRfcGlkKQorI2RlZmlu ZSBsaW51eGFpb19jdHggKChsb29wKS0+bGludXhhaW9fY3R4KQorI2RlZmluZSBsaW51eGFpb19l cG9sbF93ICgobG9vcCktPmxpbnV4YWlvX2Vwb2xsX3cpCisjZGVmaW5lIGxpbnV4YWlvX2lvY2Jw bWF4ICgobG9vcCktPmxpbnV4YWlvX2lvY2JwbWF4KQorI2RlZmluZSBsaW51eGFpb19pb2NicHMg KChsb29wKS0+bGludXhhaW9faW9jYnBzKQorI2RlZmluZSBsaW51eGFpb19pdGVyYXRpb24gKChs b29wKS0+bGludXhhaW9faXRlcmF0aW9uKQorI2RlZmluZSBsaW51eGFpb19zdWJtaXRjbnQgKChs b29wKS0+bGludXhhaW9fc3VibWl0Y250KQorI2RlZmluZSBsaW51eGFpb19zdWJtaXRtYXggKChs b29wKS0+bGludXhhaW9fc3VibWl0bWF4KQorI2RlZmluZSBsaW51eGFpb19zdWJtaXRzICgobG9v cCktPmxpbnV4YWlvX3N1Ym1pdHMpCsKgI2RlZmluZSBsb29wX2NvdW50ICgobG9vcCktPmxvb3Bf Y291bnQpCsKgI2RlZmluZSBsb29wX2RlcHRoICgobG9vcCktPmxvb3BfZGVwdGgpCsKgI2RlZmlu ZSBsb29wX2RvbmUgKChsb29wKS0+bG9vcF9kb25lKQpAQCAtODksNiArMTIzLDggQEAKwqAjZGVm aW5lIHNpZ2ZkX3cgKChsb29wKS0+c2lnZmRfdykKwqAjZGVmaW5lIHRpbWVvdXRfYmxvY2t0aW1l ICgobG9vcCktPnRpbWVvdXRfYmxvY2t0aW1lKQrCoCNkZWZpbmUgdGltZXJjbnQgKChsb29wKS0+ dGltZXJjbnQpCisjZGVmaW5lIHRpbWVyZmQgKChsb29wKS0+dGltZXJmZCkKKyNkZWZpbmUgdGlt ZXJmZF93ICgobG9vcCktPnRpbWVyZmRfdykKwqAjZGVmaW5lIHRpbWVybWF4ICgobG9vcCktPnRp bWVybWF4KQrCoCNkZWZpbmUgdGltZXJzICgobG9vcCktPnRpbWVycykKwqAjZGVmaW5lIHVzZXJk YXRhICgobG9vcCktPnVzZXJkYXRhKQpAQCAtMTQzLDEyICsxNzksNDYgQEAKwqAjdW5kZWYgaW52 b2tlX2NiCsKgI3VuZGVmIGlvX2Jsb2NrdGltZQrCoCN1bmRlZiBpb2NwCisjdW5kZWYgaW91cmlu Z19jcV9jcWVzCisjdW5kZWYgaW91cmluZ19jcV9oZWFkCisjdW5kZWYgaW91cmluZ19jcV9vdmVy ZmxvdworI3VuZGVmIGlvdXJpbmdfY3FfcmluZworI3VuZGVmIGlvdXJpbmdfY3FfcmluZ19lbnRy aWVzCisjdW5kZWYgaW91cmluZ19jcV9yaW5nX21hc2sKKyN1bmRlZiBpb3VyaW5nX2NxX3Jpbmdf c2l6ZQorI3VuZGVmIGlvdXJpbmdfY3FfdGFpbAorI3VuZGVmIGlvdXJpbmdfZW50cmllcworI3Vu ZGVmIGlvdXJpbmdfZmQKKyN1bmRlZiBpb3VyaW5nX21heF9lbnRyaWVzCisjdW5kZWYgaW91cmlu Z19zcV9hcnJheQorI3VuZGVmIGlvdXJpbmdfc3FfZHJvcHBlZAorI3VuZGVmIGlvdXJpbmdfc3Ff ZmxhZ3MKKyN1bmRlZiBpb3VyaW5nX3NxX2hlYWQKKyN1bmRlZiBpb3VyaW5nX3NxX3JpbmcKKyN1 bmRlZiBpb3VyaW5nX3NxX3JpbmdfZW50cmllcworI3VuZGVmIGlvdXJpbmdfc3FfcmluZ19tYXNr CisjdW5kZWYgaW91cmluZ19zcV9yaW5nX3NpemUKKyN1bmRlZiBpb3VyaW5nX3NxX3RhaWwKKyN1 bmRlZiBpb3VyaW5nX3NxZXMKKyN1bmRlZiBpb3VyaW5nX3NxZXNfc2l6ZQorI3VuZGVmIGlvdXJp bmdfdGZkCisjdW5kZWYgaW91cmluZ190ZmRfdG8KKyN1bmRlZiBpb3VyaW5nX3RmZF93CisjdW5k ZWYgaW91cmluZ190b19zdWJtaXQKwqAjdW5kZWYga3F1ZXVlX2NoYW5nZWNudArCoCN1bmRlZiBr cXVldWVfY2hhbmdlbWF4CsKgI3VuZGVmIGtxdWV1ZV9jaGFuZ2VzCsKgI3VuZGVmIGtxdWV1ZV9l dmVudG1heArCoCN1bmRlZiBrcXVldWVfZXZlbnRzCsKgI3VuZGVmIGtxdWV1ZV9mZF9waWQKKyN1 bmRlZiBsaW51eGFpb19jdHgKKyN1bmRlZiBsaW51eGFpb19lcG9sbF93CisjdW5kZWYgbGludXhh aW9faW9jYnBtYXgKKyN1bmRlZiBsaW51eGFpb19pb2NicHMKKyN1bmRlZiBsaW51eGFpb19pdGVy YXRpb24KKyN1bmRlZiBsaW51eGFpb19zdWJtaXRjbnQKKyN1bmRlZiBsaW51eGFpb19zdWJtaXRt YXgKKyN1bmRlZiBsaW51eGFpb19zdWJtaXRzCsKgI3VuZGVmIGxvb3BfY291bnQKwqAjdW5kZWYg bG9vcF9kZXB0aArCoCN1bmRlZiBsb29wX2RvbmUKQEAgLTE4OCw2ICsyNTgsOCBAQArCoCN1bmRl ZiBzaWdmZF93CsKgI3VuZGVmIHRpbWVvdXRfYmxvY2t0aW1lCsKgI3VuZGVmIHRpbWVyY250Cisj dW5kZWYgdGltZXJmZAorI3VuZGVmIHRpbWVyZmRfdwrCoCN1bmRlZiB0aW1lcm1heArCoCN1bmRl ZiB0aW1lcnMKwqAjdW5kZWYgdXNlcmRhdGEKZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYmV2 L2xpYmV2Lm00IGIvdGhpcmRfcGFydHkvbGliZXYvbGliZXYubTQKaW5kZXggNDM5ZmJkZTJjLi5m ODU5ZWZmMjcgMTAwNjQ0Ci0tLSBhL3RoaXJkX3BhcnR5L2xpYmV2L2xpYmV2Lm00CisrKyBiL3Ro aXJkX3BhcnR5L2xpYmV2L2xpYmV2Lm00CkBAIC0yLDcgKzIsOCBAQCBkbmwgdGhpcyBmaWxlIGlz IHBhcnQgb2YgbGliZXYsIGRvIG5vdCBtYWtlIGxvY2FsIG1vZGlmaWNhdGlvbnMKwqBkbmwgaHR0 cDovL3NvZnR3YXJlLnNjaG1vcnAuZGUvcGtnL2xpYmV2CsKgCsKgZG5sIGxpYmV2IHN1cHBvcnQK LUFDX0NIRUNLX0hFQURFUlMoc3lzL2lub3RpZnkuaCBzeXMvZXBvbGwuaCBzeXMvZXZlbnQuaCBw b3J0LmggcG9sbC5oIHN5cy9zZWxlY3QuaCBzeXMvZXZlbnRmZC5oIHN5cy9zaWduYWxmZC5oKQor QUNfQ0hFQ0tfSEVBREVSUyhzeXMvaW5vdGlmeS5oIHN5cy9lcG9sbC5oIHN5cy9ldmVudC5oIHBv cnQuaCBwb2xsLmggc3lzL3RpbWVyZmQuaCkKK0FDX0NIRUNLX0hFQURFUlMoc3lzL3NlbGVjdC5o IHN5cy9ldmVudGZkLmggc3lzL3NpZ25hbGZkLmggbGludXgvYWlvX2FiaS5oIGxpbnV4L2ZzLmgp CsKgwqAKwqBBQ19DSEVDS19GVU5DUyhpbm90aWZ5X2luaXQgZXBvbGxfY3RsIGtxdWV1ZSBwb3J0 X2NyZWF0ZSBwb2xsIHNlbGVjdCBldmVudGZkIHNpZ25hbGZkKQrCoMKgCkBAIC0zNSw2ICszNiwx MCBAQCBBQ19DSEVDS19GVU5DUyhuYW5vc2xlZXAsIFtdLCBbCsKgIMKgIGZpCsKgXSkKwqAKK0FD X0NIRUNLX1RZUEUoX19rZXJuZWxfcndmX3QsIFsKKyDCoCBBQ19ERUZJTkUoSEFWRV9LRVJORUxf UldGX1QsIDEsIERlZmluZSB0byAxIGlmIGxpbnV4L2ZzLmggZGVmaW5lZCBrZXJuZWxfcndmX3Qp CitdLCBbXSwgWyNpbmNsdWRlIDxsaW51eC9mcy5oPl0pCisKwqBpZiB0ZXN0IC16ICIkTElCRVZf TTRfQVZPSURfTElCTSI7IHRoZW4KwqAgwqAgTElCTT1tCsKgZmkKZGlmZiAtLWdpdCBhL3RoaXJk X3BhcnR5L2xpYmV2L3VwZGF0ZV9ldl9jIGIvdGhpcmRfcGFydHkvbGliZXYvdXBkYXRlX2V2X2MK aW5kZXggYjU1ZmQ3ZmI3Li5hODBiZmFlMjMgMTAwNzU1Ci0tLSBhL3RoaXJkX3BhcnR5L2xpYmV2 L3VwZGF0ZV9ldl9jCisrKyBiL3RoaXJkX3BhcnR5L2xpYmV2L3VwZGF0ZV9ldl9jCkBAIC0yLDYg KzIsNyBAQArCoArCoCgKwqAgwqAgc2VkIC1uZSAnMSxcJS9cKiBFQ0IuSCBCRUdJTiBcKi8lcCcg ZXYuYworIMKgICNwZXJsIC1uZSAncHJpbnQgdW5sZXNzIC9eI2lmIEVDQl9DUFAvIC4uIC9eI2Vu ZGlmLycgPH4vc3JjL2xpYmVjYi9lY2IuaArCoCDCoCBjYXQgfi9zcmMvbGliZWNiL2VjYi5oCsKg IMKgIHNlZCAtbmUgJ1wlL1wqIEVDQi5IIEVORCBcKi8lLCRwJyBldi5jCsKgKSA+ZXYuY34gJiYg bXYgZXYuY34gZXYuYwotLcKgCjIuMjQuMArCoArCoAotLQpNYXJpYSBLaGF5ZGljaArCoCAKPtCf 0L7QvdC10LTQtdC70YzQvdC40LosIDE3INGE0LXQstGA0LDQu9GPIDIwMjAsIDEzOjAwICswMzow MCDQvtGCIEFsZXhhbmRlciBUdXJlbmtvIDxhbGV4YW5kZXIudHVyZW5rb0B0YXJhbnRvb2wub3Jn PjoKPsKgCj5PbiBNb24sIEZlYiAxNywgMjAyMCBhdCAxMDo0MDo1MkFNICswMzAwLCBLb25zdGFu dGluIE9zaXBvdiB3cm90ZToKPj4gKiBBbGV4YW5kZXIgVHVyZW5rbyA8IGFsZXhhbmRlci50dXJl bmtvQHRhcmFudG9vbC5vcmcgPiBbMjAvMDIvMTUgMjM6MjJdOgo8Li4uPgo+Pgo+PiBIb3cgdG8g dXBkYXRlIGxpYmV2Cj4+ID09PT09PT09PT09PT09PT09PT0KPj4KPj4gUmVtb3ZlIFRhcmFudG9v bCBwYXRjaGVzIChzZWUgY3N2IGRpZmYgLVU4KS4KPj4gY3ZzIHVwCj4+IEFkZCBwYXRjaGVzIGJh Y2suCj4+Cj4+IERpZCB0aGUgcGF0Y2ggZm9sbG93IHRoZSBwcm9jZWR1cmU/IElmIGl0IGRpZCwg aXQgc2hvdWxkIGNsZWFybHkKPj4gc3RhdGUgdGhhdCBpdCB1cGRhdGVkIGxpYmV2LCBhbmQgdG8g d2hpY2ggdmVyc2lvbi4KPgo+QWdyZWVkLCBpdCBtYWtlcyBzZW5zZS4KPgo+Pgo+Pgo+PiA+Cj4+ ID4gfCA0LjI1IEZyaSBEZWMgMjEgMDc6NDk6MjAgQ0VUIDIwMTgKPj4gPiB8IDwuLi4+Cj4+ID4g fCAtIG1vdmUgdGhlIGRhcndpbiBzZWxlY3Qgd29ya2Fyb3VuZCBoaWdoZXIgaW4gZXYuYywgYXMg bmV3ZXIgdmVyc2lvbnMgb2YKPj4gPiB8IGRhcndpbiBtYW5hZ2VkIHRvIGJyZWFrIHRoZWlyIGJy b2tlbiBzZWxlY3QgZXZlbiBtb3JlLgo+PiA+Cj4+ID4gIGh0dHA6Ly9jdnMuc2NobW9ycC5kZS9s aWJldi9DaGFuZ2VzP3ZpZXc9bWFya3VwCj4+Cj4+IDovCj4+Cj4+IC0tCj4+IEtvbnN0YW50aW4g T3NpcG92LCBNb3Njb3csIFJ1c3NpYSAKwqAKwqAKLS0KTWFyaWEgS2hheWRpY2gKwqA= ----ALT--eBc97489f5F3Ae8A5A86Cc01De9104051583247523 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+Jmd0O34gV2Ugc2hvdWxkIHVwZGF0ZSBsaWJldiBwcm9wZXJseS48 YnI+Jm5ic3A7PGJyPkl0IGRvZXMgc2VlbSByZWFzb25hYmxlLiZuYnNwOzwvZGl2Pjxocj48ZGl2 Pjxicj5UaGVyZSB3YXMgYSBidWcgaW4gbGliZXYgdGhhdCBjYXVzZWQgc29tZSBzdHJlc3MgdGVz dHMgdG8gZmFpbDxicj53aXRoIGFuIGVycm9yIGluZGljYXRpbmcgbGFjayBvZiBmZHMgb24gbWFj LiBUaGUgZmxhZyB3aGljaCB3YXM8YnI+c3VwcG9zZWQgdG8gZml4IHRoZSBpc3N1ZSAoREFSV0lO X1VOTElNSVRFRF9TRUxFQ1QpIHdhcyBkZWZpbmVkPGJyPnRvbyBsYXRlIGluIGVhcmxpZXIgdmVy c2lvbnMgb2YgbGliZXYuPC9kaXY+PGRpdj48YnI+TW9yZSBwcmVjaXNlbHksIGl0IHdhcyBkZWZp bmVkIGFmdGVyIGluY2x1ZGluZyB0aW1lLmggd2hpY2ggaW48YnI+aXRzIHR1cm4gaGFkIHRoaXMg bGluZTo8L2Rpdj48ZGl2Pjxicj5pbmNsdWRlICZsdDtzeXMvX3NlbGVjdC5oJmd0OyAmbmJzcDsg Jm5ic3A7Lyogc2VsZWN0KCkgcHJvdG90eXBlICovPC9kaXY+PGRpdj48YnI+QW5kICZsdDtzeXMv X3NlbGVjdC5oJmd0OyBoYWQgdGhpczo8YnI+aWYgZGVmaW5lZChfREFSV0lOX0NfU09VUkNFKSB8 fCBkZWZpbmVkKF9EQVJXSU5fVU5MSU1JVEVEX1NFTEVDVCk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7IF9fREFSV0lOX0VYVFNOX0Moc2VsZWN0KTwvZGl2PjxkaXY+PGJyPlNvIHVubGlt aXRlZCBzZWxlY3QgZmxhZyBkaWQgbm90IGRvIHRoZSB0cmljayBhcyBpdCB3YXMgc3VwcG9zZWQg dG8uPGJyPkl0IHdhcyBmaXhlZCBpbiA0LjI1IGFsb25nIHdpdGggb3RoZXIgY2hhbmdlcy48YnI+ Jm5ic3A7PGJyPkNsb3NlcyAjMzg2Nzxicj5DbG9zZXMgIzQ2NzM8YnI+LS0tPGJyPklzc3Vlczo8 YnI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvaXNzdWVz LzM4NjciPmh0dHBzOi8vZ2l0aHViLmNvbS90YXJhbnRvb2wvdGFyYW50b29sL2lzc3Vlcy8zODY3 PC9hPiZuYnNwOzxicj48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFu dG9vbC9pc3N1ZXMvNDY3MyI+aHR0cHM6Ly9naXRodWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wv aXNzdWVzLzQ2NzM8L2E+Jm5ic3A7PGJyPkJyYW5jaDo8YnI+PGEgaHJlZj0iaHR0cHM6Ly9naXRo dWIuY29tL3RhcmFudG9vbC90YXJhbnRvb2wvY29tcGFyZS9lbGphc2htL2doLTM4NjctbGliZXYt dXBkYXRlIj5odHRwczovL2dpdGh1Yi5jb20vdGFyYW50b29sL3RhcmFudG9vbC9jb21wYXJlL2Vs amFzaG0vZ2gtMzg2Ny1saWJldi11cGRhdGU8L2E+Jm5ic3A7PGJyPiZuYnNwOzxicj4mbmJzcDtz cmMvbGliL2NvcmUvZmliZXIuYyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO3wgJm5ic3A7ICZuYnNwOzQgKy08YnI+Jm5ic3A7dGhpcmRfcGFydHkvbGliZXYvQ1ZTL0Vu dHJpZXMgJm5ic3A7IHwgJm5ic3A7IDYyICstPGJyPiZuYnNwO3RoaXJkX3BhcnR5L2xpYmV2L0No YW5nZXMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgfCAmbmJzcDsxMDEgKysrPGJyPiZuYnNwO3RoaXJk X3BhcnR5L2xpYmV2L01ha2VmaWxlLmFtICZuYnNwOyB8ICZuYnNwOyAmbmJzcDszICstPGJyPiZu YnNwO3RoaXJkX3BhcnR5L2xpYmV2L1JFQURNRSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt8 ICZuYnNwOyAmbmJzcDszICstPGJyPiZuYnNwO3RoaXJkX3BhcnR5L2xpYmV2L1N5bWJvbHMuZXYg Jm5ic3A7ICZuYnNwO3wgJm5ic3A7ICZuYnNwOzIgKy08YnI+Jm5ic3A7dGhpcmRfcGFydHkvbGli ZXYvY29uZmlndXJlLmFjICZuYnNwO3wgJm5ic3A7ICZuYnNwOzYgKy08YnI+Jm5ic3A7dGhpcmRf cGFydHkvbGliZXYvZXYrKy5oICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3wgJm5ic3A7MjIw ICsrKy0tLTxicj4mbmJzcDt0aGlyZF9wYXJ0eS9saWJldi9ldi4zICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDt8ICZuYnNwOzM3MyArKysrKysrLS0tPGJyPiZuYnNwO3RoaXJkX3Bh cnR5L2xpYmV2L2V2LmMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3wgMTEzMSAr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tPGJyPiZuYnNwO3RoaXJkX3BhcnR5L2xpYmV2 L2V2LmggJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3wgJm5ic3A7MjI1ICsrKy0t LTxicj4mbmJzcDt0aGlyZF9wYXJ0eS9saWJldi9ldi5wb2QgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7fCAmbmJzcDszMTYgKysrKysrKy0tPGJyPiZuYnNwO3RoaXJkX3BhcnR5L2xpYmV2L2V2 X2Vwb2xsLmMgJm5ic3A7ICZuYnNwO3wgJm5ic3A7IDY5ICstPGJyPiZuYnNwO3RoaXJkX3BhcnR5 L2xpYmV2L2V2X2lvdXJpbmcuYyAmbmJzcDt8ICZuYnNwOzY5NCArKysrKysrKysrKysrKysrKysr PGJyPiZuYnNwO3RoaXJkX3BhcnR5L2xpYmV2L2V2X2txdWV1ZS5jICZuYnNwOyB8ICZuYnNwOyAy NCArLTxicj4mbmJzcDt0aGlyZF9wYXJ0eS9saWJldi9ldl9saW51eGFpby5jIHwgJm5ic3A7NjIw ICsrKysrKysrKysrKysrKysrPGJyPiZuYnNwO3RoaXJkX3BhcnR5L2xpYmV2L2V2X3BvbGwuYyAm bmJzcDsgJm5ic3A7IHwgJm5ic3A7IDMzICstPGJyPiZuYnNwO3RoaXJkX3BhcnR5L2xpYmV2L2V2 X3BvcnQuYyAmbmJzcDsgJm5ic3A7IHwgJm5ic3A7IDEzICstPGJyPiZuYnNwO3RoaXJkX3BhcnR5 L2xpYmV2L2V2X3NlbGVjdC5jICZuYnNwOyB8ICZuYnNwOyAxMiArLTxicj4mbmJzcDt0aGlyZF9w YXJ0eS9saWJldi9ldl92YXJzLmggJm5ic3A7ICZuYnNwOyB8ICZuYnNwOyA1MSArLTxicj4mbmJz cDt0aGlyZF9wYXJ0eS9saWJldi9ldl93aW4zMi5jICZuYnNwOyAmbmJzcDt8ICZuYnNwOyAmbmJz cDs0ICstPGJyPiZuYnNwO3RoaXJkX3BhcnR5L2xpYmV2L2V2X3dyYXAuaCAmbmJzcDsgJm5ic3A7 IHwgJm5ic3A7IDcyICsrPGJyPiZuYnNwO3RoaXJkX3BhcnR5L2xpYmV2L2xpYmV2Lm00ICZuYnNw OyAmbmJzcDsgJm5ic3A7fCAmbmJzcDsgJm5ic3A7NyArLTxicj4mbmJzcDt0aGlyZF9wYXJ0eS9s aWJldi91cGRhdGVfZXZfYyAmbmJzcDsgfCAmbmJzcDsgJm5ic3A7MSArPGJyPiZuYnNwOzI0IGZp bGVzIGNoYW5nZWQsIDMyMjIgaW5zZXJ0aW9ucygrKSwgODI0IGRlbGV0aW9ucygtKTxicj4mbmJz cDtjcmVhdGUgbW9kZSAxMDA2NDQgdGhpcmRfcGFydHkvbGliZXYvZXZfaW91cmluZy5jPGJyPiZu YnNwO2NyZWF0ZSBtb2RlIDEwMDY0NCB0aGlyZF9wYXJ0eS9saWJldi9ldl9saW51eGFpby5jPGJy PiZuYnNwOzxicj5kaWZmIC0tZ2l0IGEvc3JjL2xpYi9jb3JlL2ZpYmVyLmMgYi9zcmMvbGliL2Nv cmUvZmliZXIuYzxicj5pbmRleCBhZGE3OTcyY2IuLjJiZjZhMzMzMyAxMDA2NDQ8YnI+LS0tIGEv c3JjL2xpYi9jb3JlL2ZpYmVyLmM8YnI+KysrIGIvc3JjL2xpYi9jb3JlL2ZpYmVyLmM8YnI+QEAg LTE0NjMsNyArMTQ2Myw3IEBAIGNvcmRfc3RhcnQoc3RydWN0IGNvcmQgKmNvcmQsIGNvbnN0IGNo YXIgKm5hbWUsIHZvaWQgKigqZikodm9pZCAqKSwgdm9pZCAqYXJnKTxicj4mbmJzcDsgJm5ic3A7 ICZuYnNwO3N0cnVjdCBjb3JkX3RocmVhZF9hcmcgY3RfYXJnID0geyBjb3JkLCBuYW1lLCBmLCBh cmcsIGZhbHNlLDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7UFRIUkVBRF9N VVRFWF9JTklUSUFMSVpFUiwgUFRIUkVBRF9DT05EX0lOSVRJQUxJWkVSIH07PGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7dHRfcHRocmVhZF9tdXRleF9sb2NrKCZhbXA7Y3RfYXJnLnN0YXJ0X211dGV4 KTs8YnI+LSAmbmJzcDsgJm5ic3A7Y29yZC0mZ3Q7bG9vcCA9IGV2X2xvb3BfbmV3KEVWRkxBR19B VVRPIHwgRVZGTEFHX0FMTE9DRkQpOzxicj4rICZuYnNwOyAmbmJzcDtjb3JkLSZndDtsb29wID0g ZXZfbG9vcF9uZXcoRVZGTEFHX0FVVE8gfCBFVkZMQUdfTk9USU1FUkZEKTs8YnI+Jm5ic3A7ICZu YnNwOyAmbmJzcDtpZiAoY29yZC0mZ3Q7bG9vcCA9PSBOVUxMKSB7PGJyPiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtkaWFnX3NldChPdXRPZk1lbW9yeSwgMCwgImV2X2xvb3BfbmV3 IiwgImV2X2xvb3AiKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2dvdG8g ZW5kOzxicj5AQCAtMTcwMSw3ICsxNzAxLDcgQEAgZmliZXJfaW5pdChpbnQgKCppbnZva2UpKGZp YmVyX2Z1bmMgZiwgdmFfbGlzdCBhcCkpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7c3RhY2tfZGly ZWN0aW9uID0gY2hlY2tfc3RhY2tfZGlyZWN0aW9uKF9fYnVpbHRpbl9mcmFtZV9hZGRyZXNzKDAp KTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtmaWJlcl9pbnZva2UgPSBpbnZva2U7PGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7bWFpbl90aHJlYWRfaWQgPSBwdGhyZWFkX3NlbGYoKTs8YnI+LSAmbmJz cDsgJm5ic3A7bWFpbl9jb3JkLmxvb3AgPSBldl9kZWZhdWx0X2xvb3AoRVZGTEFHX0FVVE8gfCBF VkZMQUdfQUxMT0NGRCk7PGJyPisgJm5ic3A7ICZuYnNwO21haW5fY29yZC5sb29wID0gZXZfZGVm YXVsdF9sb29wKEVWRkxBR19BVVRPIHwgRVZGTEFHX05PVElNRVJGRCk7PGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7Y29yZF9jcmVhdGUoJmFtcDttYWluX2NvcmQsICJtYWluIik7PGJyPiZuYnNwO308 YnI+Jm5ic3A7PGJyPmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJldi9DVlMvRW50cmllcyBi L3RoaXJkX3BhcnR5L2xpYmV2L0NWUy9FbnRyaWVzPGJyPmluZGV4IDNjODU0MTE5My4uNDk3ZGY0 Mjk1IDEwMDY0NDxicj4tLS0gYS90aGlyZF9wYXJ0eS9saWJldi9DVlMvRW50cmllczxicj4rKysg Yi90aGlyZF9wYXJ0eS9saWJldi9DVlMvRW50cmllczxicj5AQCAtMSwzMSArMSwzMyBAQDxicj4t L01ha2VmaWxlLmFtLzEuOS9Nb24gQXVnIDE3IDE3OjQzOjE1IDIwMTUvLzxicj4tL1JFQURNRS8x LjIxL01vbiBBdWcgMTcgMTc6NDM6MTUgMjAxNS8vPGJyPi0vUkVBRE1FLmVtYmVkLzEuMjkvTW9u IEF1ZyAxNyAxNzo0MzoxNSAyMDE1Ly88YnI+LS9TeW1ib2xzLmV2LzEuMTQvTW9uIEF1ZyAxNyAx Nzo0MzoxNSAyMDE1Ly88YnI+LS9TeW1ib2xzLmV2ZW50LzEuNC9Nb24gQXVnIDE3IDE3OjQzOjE1 IDIwMTUvLzxicj4tL2F1dG9nZW4uc2gvMS4zL01vbiBBdWcgMTcgMTc6NDM6MTUgMjAxNS8vPGJy Pi0vZXZfcG9sbC5jLzEuMzkvTW9uIEF1ZyAxNyAxNzo0MzoxNSAyMDE1Ly88YnI+LS9ldl9wb3J0 LmMvMS4yOC9Nb24gQXVnIDE3IDE3OjQzOjE1IDIwMTUvLzxicj4tL2V2X3NlbGVjdC5jLzEuNTUv TW9uIEF1ZyAxNyAxNzo0MzoxNSAyMDE1Ly88YnI+LS9ldmVudC5jLzEuNTIvTW9uIEF1ZyAxNyAx Nzo0MzoxNSAyMDE1Ly88YnI+LS9ldmVudC5oLzEuMjYvTW9uIEF1ZyAxNyAxNzo0MzoxNSAyMDE1 Ly88YnI+LS9ldmVudF9jb21wYXQuaC8xLjgvTW9uIEF1ZyAxNyAxNzo0MzoxNSAyMDE1Ly88YnI+ LS9pbXBvcnRfbGliZXZlbnQvMS4yOS9Nb24gQXVnIDE3IDE3OjQzOjE1IDIwMTUvLzxicj4tL3Vw ZGF0ZV9ldl9jLzEuMi9Nb24gQXVnIDE3IDE3OjQzOjE1IDIwMTUvLzxicj4tL3VwZGF0ZV9ldl93 cmFwLzEuNi9Nb24gQXVnIDE3IDE3OjQzOjE1IDIwMTUvLzxicj4tL3VwZGF0ZV9zeW1ib2xzLzEu MS9Nb24gQXVnIDE3IDE3OjQzOjE1IDIwMTUvLzxicj4tL0NoYW5nZXMvMS4zMDcvU3VuIE9jdCAm bmJzcDs0IDEwOjEyOjI4IDIwMTUvLzxicj4tL0xJQ0VOU0UvMS4xMS9TdW4gT2N0ICZuYnNwOzQg MTA6MTI6MjggMjAxNS8vPGJyPi0vY29uZmlndXJlLmFjLzEuNDAvU3VuIE9jdCAmbmJzcDs0IDEw OjEyOjI4IDIwMTUvLzxicj4tL2V2KysuaC8xLjYyL1N1biBPY3QgJm5ic3A7NCAxMDoxMjoyOCAy MDE1Ly88YnI+LS9ldi4zLzEuMTAzL1N1biBPY3QgJm5ic3A7NCAxMDoxMjoyOCAyMDE1Ly88YnI+ LS9ldi5jLzEuNDc3L1N1biBPY3QgJm5ic3A7NCAxMDoxMjoyOCAyMDE1Ly88YnI+LS9ldi5oLzEu MTgzL1N1biBPY3QgJm5ic3A7NCAxMDoxMjoyOCAyMDE1Ly88YnI+LS9ldi5wb2QvMS40MzUvU3Vu IE9jdCAmbmJzcDs0IDEwOjEyOjI4IDIwMTUvLzxicj4tL2V2X2Vwb2xsLmMvMS42OC9TdW4gT2N0 ICZuYnNwOzQgMTA6MTI6MjggMjAxNS8vPGJyPi0vZXZfa3F1ZXVlLmMvMS41NS9TdW4gT2N0ICZu YnNwOzQgMTA6MTI6MjggMjAxNS8vPGJyPi0vZXZfdmFycy5oLzEuNTgvU3VuIE9jdCAmbmJzcDs0 IDEwOjEyOjI4IDIwMTUvLzxicj4tL2V2X3dpbjMyLmMvMS4xNi9TdW4gT2N0ICZuYnNwOzQgMTA6 MTI6MjggMjAxNS8vPGJyPi0vZXZfd3JhcC5oLzEuMzgvU3VuIE9jdCAmbmJzcDs0IDEwOjEyOjI4 IDIwMTUvLzxicj4tL2xpYmV2Lm00LzEuMTYvU3VuIE9jdCAmbmJzcDs0IDEwOjEyOjI4IDIwMTUv Lzxicj4rL0NoYW5nZXMvMS4zNjUvUmVzdWx0IG9mIG1lcmdlK1RodSBGZWIgMjcgMDc6MjY6NTAg MjAyMC8vPGJyPisvTElDRU5TRS8xLjExL1dlZCBGZWIgMTkgMTM6MzA6MTcgMjAyMC8vPGJyPisv TWFrZWZpbGUuYW0vMS4xMS9UaHUgRmViIDI3IDA3OjI2OjUwIDIwMjAvLzxicj4rL1JFQURNRS8x LjIyL1RodSBGZWIgMjcgMDc6MjY6NTAgMjAyMC8vPGJyPisvUkVBRE1FLmVtYmVkLzEuMjkvV2Vk IEZlYiAxOSAxMzozMDoxNyAyMDIwLy88YnI+Ky9TeW1ib2xzLmV2LzEuMTUvVGh1IEZlYiAyNyAw NzoyNjo1MCAyMDIwLy88YnI+Ky9TeW1ib2xzLmV2ZW50LzEuNC9XZWQgRmViIDE5IDEzOjMwOjE3 IDIwMjAvLzxicj4rL2F1dG9nZW4uc2gvMS4zL1dlZCBGZWIgMTkgMTM6MzA6MTcgMjAyMC8vPGJy PisvY29uZmlndXJlLmFjLzEuNDUvUmVzdWx0IG9mIG1lcmdlK1RodSBGZWIgMjcgMDc6MjY6NTAg MjAyMC8vPGJyPisvZXYrKy5oLzEuNjgvVGh1IEZlYiAyNyAwNzoyNjo1MCAyMDIwLy88YnI+Ky9l di4zLzEuMTIwL1Jlc3VsdCBvZiBtZXJnZStUaHUgRmViIDI3IDA3OjI2OjUwIDIwMjAvLzxicj4r L2V2LmMvMS41MjgvUmVzdWx0IG9mIG1lcmdlK1RodSBGZWIgMjcgMDc6MjY6NTAgMjAyMC8vPGJy PisvZXYuaC8xLjIwNC9SZXN1bHQgb2YgbWVyZ2UrVGh1IEZlYiAyNyAwNzoyNjo1MCAyMDIwLy88 YnI+Ky9ldi5wb2QvMS40NjQvUmVzdWx0IG9mIG1lcmdlLy88YnI+Ky9ldl9lcG9sbC5jLzEuODIv UmVzdWx0IG9mIG1lcmdlK1RodSBGZWIgMjcgMDc6MjY6NTAgMjAyMC8vPGJyPisvZXZfaW91cmlu Zy5jLzEuMjEvV2VkIEphbiAyMiAwMjoyMDo0NyAyMDIwLy88YnI+Ky9ldl9rcXVldWUuYy8xLjYx L1Jlc3VsdCBvZiBtZXJnZS8vPGJyPisvZXZfbGludXhhaW8uYy8xLjUzL0ZyaSBEZWMgMjcgMTY6 MTI6NTUgMjAxOS8vPGJyPisvZXZfcG9sbC5jLzEuNDgvUmVzdWx0IG9mIG1lcmdlK1RodSBGZWIg MjcgMDc6MjY6NTAgMjAyMC8vPGJyPisvZXZfcG9ydC5jLzEuMzMvUmVzdWx0IG9mIG1lcmdlLy88 YnI+Ky9ldl9zZWxlY3QuYy8xLjU4L1Jlc3VsdCBvZiBtZXJnZS8vPGJyPisvZXZfdmFycy5oLzEu NjcvVGh1IEZlYiAyNyAwNzoyNjo1MCAyMDIwLy88YnI+Ky9ldl93aW4zMi5jLzEuMjEvUmVzdWx0 IG9mIG1lcmdlLy88YnI+Ky9ldl93cmFwLmgvMS40NC9UaHUgRmViIDI3IDA3OjI2OjUwIDIwMjAv Lzxicj4rL2V2ZW50LmMvMS41Mi9XZWQgRmViIDE5IDEzOjMwOjE3IDIwMjAvLzxicj4rL2V2ZW50 LmgvMS4yNi9XZWQgRmViIDE5IDEzOjMwOjE3IDIwMjAvLzxicj4rL2V2ZW50X2NvbXBhdC5oLzEu OC9XZWQgRmViIDE5IDEzOjMwOjE3IDIwMjAvLzxicj4rL2ltcG9ydF9saWJldmVudC8xLjI5L1dl ZCBGZWIgMTkgMTM6MzA6MTcgMjAyMC8vPGJyPisvbGliZXYubTQvMS4xOC9UaHUgRmViIDI3IDA3 OjI2OjUwIDIwMjAvLzxicj4rL3VwZGF0ZV9ldl9jLzEuMy9UaHUgRmViIDI3IDA3OjI2OjUwIDIw MjAvLzxicj4rL3VwZGF0ZV9ldl93cmFwLzEuNi9XZWQgRmViIDE5IDEzOjMwOjE3IDIwMjAvLzxi cj4rL3VwZGF0ZV9zeW1ib2xzLzEuMS9XZWQgRmViIDE5IDEzOjMwOjE3IDIwMjAvLzxicj4mbmJz cDtEPGJyPmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJldi9DaGFuZ2VzIGIvdGhpcmRfcGFy dHkvbGliZXYvQ2hhbmdlczxicj5pbmRleCBiYjFlNmQ0M2QuLjgwZTcwYWU2ZCAxMDA2NDQ8YnI+ LS0tIGEvdGhpcmRfcGFydHkvbGliZXYvQ2hhbmdlczxicj4rKysgYi90aGlyZF9wYXJ0eS9saWJl di9DaGFuZ2VzPGJyPkBAIC0xLDUgKzEsMTA2IEBAPGJyPiZuYnNwO1JldmlzaW9uIGhpc3Rvcnkg Zm9yIGxpYmV2LCBhIGhpZ2gtcGVyZm9ybWFuY2UgYW5kIGZ1bGwtZmVhdHVyZWQgZXZlbnQgbG9v cC48YnI+Jm5ic3A7PGJyPitUT0RPOiBmb3IgbmV4dCBBQkkvQVBJIGNoYW5nZSwgY29uc2lkZXIg bW92aW5nIEVWX19JT0ZEU1NFVCBpbnRvIGlvLSZndDtmZCBpbnN0ZWFkIGFuZCBwcm92aWRlIGEg Z2V0dGVyLjxicj4rVE9ETzogZG9jdW1lbnQgRVZfVFNUQU1QX1Q8YnI+Kzxicj4rNC4zMiAoRVYg b25seSk8YnI+KyAmbmJzcDsgJm5ic3A7LSB0aGUgNC4zMSB0aW1lcmZkIGNvZGUgd3JvbmdseSBj aGFuZ2VzIHRoZSBwcmlvcml0eSBvZiB0aGUgc2lnbmFsPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO2ZkIHdhdGNoZXIsIHdoaWNoIGlzIHVzdWFsbHkgaGFybWxlc3MgdW5s ZXNzIHNpZ25hbCBmZHMgYXJlPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O2Fsc28gdXNlZCAoZm91bmQgdmlhIGNwYW4gdGVzdGVyIHNlcnZpY2UpLjxicj4rICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOy0gdGhlIGRvY3VtZW50YXRpb24gd3JvbmdseSBjbGFpbWVkIHRo YXQgdXNlciBtYXkgbW9kaWZ5IGZkIGFuZCBldmVudHM8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7bWVtYmVycyBpbiBpbyB3YXRjaGVycyB3aGVuIHRoZSB3YXRjaGVyIHdh cyBzdG9wcGVkPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyhmb3VuZCBi eSBiX2pvbmFzKS48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDstIG5ldyBldl9pb19t b2RpZnkgbXV0YXRvciB3aGljaCBjaGFuZ2VzIG9ubHkgdGhlIGV2ZW50cyBtZW1iZXIsPGJyPisg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3doaWNoIGNhbiBiZSBmYXN0ZXIuIGFs c28gYWRkZWQgZXY6OmlvOjpzZXQgKGludCBldmVudHMpIG1ldGhvZDxicj4rICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt0byBldisrLmguPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7LSBvZmZpY2lhbGx5IGFsbG93IGEgemVybyBldmVudHMgbWFzayBmb3IgaW8gd2F0 Y2hlcnMuIHRoaXMgc2hvdWxkPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O3dvcmsgd2l0aCBvbGRlciBsaWJldiB2ZXJzaW9ucyBhcyB3ZWxsIGJ1dCB3YXMgbm90IG9mZmlj aWFsbHk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YWxsb3dlZCBiZWZv cmUuPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LSBkbyBub3Qgd2FrZSB1cCBldmVy eSBtaW51dGUgd2hlbiB0aW1lcmZkIGlzIHVzZWQgdG8gZGV0ZWN0IHRpbWVqdW1wcy48YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDstIGRvIG5vdCB3YWtlIHVwIGV2ZXJ5IG1pbnV0ZSB3 aGVuIHBlcmlvZGljcyBhcmUgZGlzYWJsZWQgYW5kIHdlIGhhdmU8YnI+KyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7YSBtb25vdG9uaWMgY2xvY2suPGJyPisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7LSBzdXBwb3J0IGEgbG90IG1vcmUgInVuY29tbW9uIiBjb21waWxlIHRp bWUgY29uZmlndXJhdGlvbnMsPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O3N1Y2ggYXMgZXZfZW1iZWQgZW5hYmxlZCBidXQgZXZfdGltZXIgZGlzYWJsZWQuPGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LSB1c2UgYSBzdGFydC9zdG9wIHdyYXBwZXIgY2xhc3Mg dG8gcmVkdWNlIGNvZGUgZHVwbGljYXRpb24gaW48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ZXYrKy5oIGFuZCBtYWtlIGl0IG5lZWRsZXNzbHkgbW9yZSBjKysteS48YnI+ KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDstIHRoZSBsaW51eCBhaW8gYmFja2VuZCBpcyBu byBsb25nZXIgY29tcGlsZWQgaW4gYnkgZGVmYXVsdC48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDstIHVwZGF0ZSB0byBsaWJlY2IgdmVyc2lvbiAweDAwMDEwMDA4Ljxicj4rPGJyPis0 LjMxIEZyaSBEZWMgMjAgMjE6NTg6MjkgQ0VUIDIwMTk8YnI+KyAmbmJzcDsgJm5ic3A7LSBoYW5k bGUgYmFja2VuZHMgd2l0aCBtaW5pbXVtIHdhaXQgdGltZSBhIGJpdCBiZXR0ZXIgYnkgbm90PGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3dhaXRpbmcgaW4gdGhlIHByZXNl bmNlIG9mIGFscmVhZHktZXhwaXJlZCB0aW1lcnM8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7KGJlaGF2aW91ciByZXBvcnRlZCBieSBGZWxpcGUgR2FzcGVyKS48YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDstIG5ldyBmZWF0dXJlOiB1c2UgdGltZXJmZCB0byBk ZXRlY3QgdGltZWp1bXBzIHF1aWNrbHksPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO2NhbiBiZSBkaXNhYmxlZCB3aXRoIHRoZSBuZXcgRVZGTEFHX05PVElNRVJGRCBsb29w IGZsYWcuPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LSBkb2N1bWVudCBFVl9VU0Vf U0lHTkFMRkQgZmVhdHVyZSBtYWNyby48YnI+Kzxicj4rNC4zMCAoRVYgb25seSk8YnI+KyAmbmJz cDsgJm5ic3A7LSBjaGFuZ2Ugbm9uLWF1dG9jb25mIHRlc3QgZm9yIF9fa2VybmVsX3J3Zl90IGJ5 IHRlc3Rpbmc8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7TElOVVhfVkVS U0lPTl9DT0RFLCB0aGUgbW9zdCBkaXJlY3QgdGVzdCBJIGNvdWxkIGZpbmQuPGJyPisgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7LSBmaXggYSBidWcgaW4gdGhlIGlvX3VyaW5nIGJhY2tlbmQg dGhhdCBwb2xsZWQgdGhlIHdyb25nPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO2JhY2tlbmQgZmQsIGNhdXNpbmcgaXQgdG8gbm90IHdvcmsgaW4gbWFueSBjYXNlcy48YnI+ Kzxicj4rNC4yOSAoRVYgb25seSk8YnI+KyAmbmJzcDsgJm5ic3A7LSBhZGQgaW8gdXJpbmcgYXV0 b2NvbmYgYW5kIG5vbi1hdXRvY29uZiBkZXRlY3Rpb24uPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7LSBkaXNhYmxlIGlvX3VyaW5nIHdoZW4gc29tZSBoZWFkZXIgZmlsZXMgYXJlIHRv byBvbGQuPGJyPis8YnI+KzQuMjggKEVWIG9ubHkpPGJyPisgJm5ic3A7ICZuYnNwOy0gbGludXhh aW8gYmFja2VuZCByZXN1bHRlZCBpbiByYW5kb20gbWVtb3J5IGNvcnJ1cHRpb248YnI+KyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7d2hlbiBsb29wIGlzIGZvcmtlZC48YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDstIGxpbnV4YWlvIGJhY2tlbmQgbWlnaHQgaGF2ZSB0 cmllZCB0byBjYW5jZWwgYW4gaW9jYjxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDttdWx0aXBsZSB0aW1lcyAod2FzIHVuYWJsZSB0byB0cmlnZ2VyIHRoaXMpLjxicj4rICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy0gbGludXhhaW8gYmFja2VuZCBub3cgZW1wbG95cyBh IGdlbmVyYXRpb24gY291bnRlciB0bzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDthdm9pZCBoYW5kbGluZyBzcHVyaW91cyBldmVudHMgZnJvbSBjYW5jZWxsZWQgcmVxdWVz dHMuPGJyPisgJm5ic3A7ICZuYnNwOy0gaW9fY2FuY2VsIGNhbiByZXR1cm4gRUlOVFIsIGRlYWwg d2l0aCBpdC4gYWxzbywgYXNzdW1lPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO2lvX3N1Ym1pdCBhbHNvIHJldHVybnMgRUlOVFIuPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7LSBmaXggc29tZSBvdGhlciBtaW5vciBidWdzIGluIGxpbnV4YWlvIGJhY2tlbmQu PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LSBldl90c3RhbXAgdHlwZSBjYW4gbm93 IGJlIG92ZXJyaWRlbiBieSBkZWZpbmluZyBFVl9UU1RBTVBfVC48YnI+KyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDstIGNsZWFudXA6IHJlcGxhY2UgZXhwZWN0X3RydWUvZmFsc2UgYW5kIG5v aW5saW5lIGJ5IHRoZWlyPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2xp YmVjYiBjb3VudGVycGFydHMuPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LSBtb3Zl IHN5c2NhbGwgaW5mcmFzdHJ1Y3R1cmUgZnJvbSBldl9saW51eGFpby5jIHRvIGV2LmMuPGJyPisg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LSBwcmVwYXJlIGlvX3VyaW5nIGludGVncmF0aW9u Ljxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy0gdHdlYWsgZXZfZmxvb3IuPGJyPisg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LSBlcG9sbCwgcG9sbCwgd2luMzIgU2xlZXAgYW5k IG90aGVyIHBsYWNlcyB0aGF0IHVzZSBtaWxsaXNlY29uZDxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDtyZXNsdXRpb24gbm93IGFsbCB0cnkgdG8gcm91bmQgdXAgdGltZXMu PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LSBzb2xhcmlzIHBvcnQgYmFja2VuZCBk aWRuJ3QgY29tcGlsZS48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDstIGFic3RyYWN0 IHRpbWUgY29uc3RhbnRzIGludG8gdGhlaXIgbWFjcm9zLCBmb3IgbW9yZSBmbGV4aWJpbGl0eS48 YnI+Kzxicj4rNC4yNyBUaHUgSnVuIDI3IDIyOjQzOjQ0IENFU1QgMjAxOTxicj4rICZuYnNwOyAm bmJzcDstIGxpbnV4IGFpbyBiYWNrZW5kIGFsbW9zdCBjb21wbGV0ZWx5IHJld3JpdHRlbiB0byB3 b3JrIGFyb3VuZCBpdHM8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7bGlt aXRhdGlvbnMuPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LSBsaW51eCBhaW8gYmFj a2VuZCBub3cgcmVxdWlyZXMgbGludXggNC4xOSsuPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7LSBlcG9sbCBiYWNrZW5kIG5vdyBtYW5kYXRvcnkgZm9yIGxpbnV4IGFpbyBiYWNrZW5k Ljxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy0gZmFpbCBhc3NlcnRpb25zIG1vcmUg YWdncmVzc2l2ZWx5IG9uIGludmFsaWQgZmQncyBkZXRlY3RlZDxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtpbiB0aGUgZXZlbnQgbG9vcCwgZG8gbm90IGp1c3Qgc2lsZW50 bHkgZmRfa2lsbCBpbiBjYXNlIG9mPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO3VzZXIgZXJyb3IuPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LSBldl9pb19z dGFydC9ldl9pb19zdG9wIG5vdyB2ZXJpZnkgdGhlIHdhdGNoZXIgZmQgdXNpbmc8YnI+KyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YSBzeXNjYWxsIHdoZW4gRVZfVkVSSUZZIGlz IDIgb3IgaGlnaGVyLjxicj4rPGJyPis0LjI2IChFViBvbmx5KTxicj4rICZuYnNwOyAmbmJzcDst IHVwZGF0ZSB0byBsaWJlY2IgMHgwMDAxMDAwNi48YnI+KyAmbmJzcDsgJm5ic3A7LSBuZXcgZXhw ZXJpbWVudGFsIGxpbnV4IGFpbyBiYWNrZW5kIChsaW51eCA0LjE4KykuPGJyPisgJm5ic3A7ICZu YnNwOy0gcmVtb3ZlZCByZWR1bmRhbnQgMC1wdHIgY2hlY2sgaW4gZXZfb25jZS48YnI+KyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDstIHVwZGF0ZWQvZXh0ZW5kZWQgZXZfc2V0X2FsbG9jYXRv ciBkb2N1bWVudGF0aW9uLjxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy0gcmVwbGFj ZWQgRU1QVFkyIG1hY3JvIGJ5IGFycmF5X25lZWRzaXplX25vaW5pdC48YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDstIG1pbm9yIGNvZGUgY2xlYW51cHMuPGJyPisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7LSBlcG9sbCBiYWNrZW5kIG5vdyB1c2VzIGVwb2xsX2NyZWF0ZTEgYWxz byBhZnRlciBmb3JrLjxicj4rPGJyPis0LjI1IEZyaSBEZWMgMjEgMDc6NDk6MjAgQ0VUIDIwMTg8 YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDstIElOQ09NUEFUSUJMRSBDSEFOR0U6IEVW X1RIUk9XIHdhcyByZW5hbWVkIHRvIEVWX05PRVhDRVBUPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyhFVl9USFJPVyBzdGlsbCBwcm92aWRlZCkgYW5kIG5vdyB1c2VzIG5v ZXhjZXB0IG9uIEMrKzExIG9yIG5ld2VyLjxicj4rICZuYnNwOyAmbmJzcDstIG1vdmUgdGhlIGRh cndpbiBzZWxlY3Qgd29ya2Fyb3VuZCBoaWdoZXIgaW4gZXYuYywgYXMgbmV3ZXIgdmVyc2lvbnMg b2Y8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZGFyd2luIG1hbmFnZWQg dG8gYnJlYWsgdGhlaXIgYnJva2VuIHNlbGVjdCBldmVuIG1vcmUuPGJyPisgJm5ic3A7ICZuYnNw Oy0gQU5EUk9JRCA9Jmd0OyBfX0FORFJPSURfXyAocmVwb3J0ZWQgYnkgZW5oQGdvb2dsZS5jb20p Ljxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy0gZGlzYWJsZSBlcG9sbF9jcmVhdGUx IG9uIGFuZHJvaWQgYmVjYXVzZSBpdCBoYXMgYnJva2VuIGhlYWRlciBmaWxlczxicj4rICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDthbmQgZ29vZ2xlIGlzIHVud2lsbGluZyB0byBm aXggdGhlbSAocmVwb3J0ZWQgYnkgZW5oQGdvb2dsZS5jb20pLjxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOy0gYXZvaWQgYSBtaW5vciBjb21waWxhdGlvbiB3YXJuaW5nIG9uIHdpbjMy Ljxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy0gYysrOiByZW1vdmUgZGVwcmVjYXRl ZCBkeW5hbWljIHRocm93KCkgc3BlY2lmaWNhdGlvbnMuPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7LSBjKys6IGltcHJvdmUgdGhlICh1bnN1cHBvcnRlZCkgYmFkX2xvb3AgZXhjZXB0 aW9uIGNsYXNzLjxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy0gYmFja3BvcnQgcGVy bCBldl9wZXJpb2RpYyBleGFtcGxlIHRvIEMsIHVudGVzdGVkLjxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOy0gdXBkYXRlIGxpYmVjYiwgYmlnZ2V0cyBjaGFuZ2UgaXMgdG8gaW5jbHVk ZSBhIG1lbW9yeSBmZW5jZTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtp biBFQ0JfTUVNT1JZX0ZFTkNFX1JFTEVBU0Ugb24geDg2L2FtZDY0Ljxicj4rICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOy0gbWlub3IgYXV0b2NvbmYvYXV0b21ha2UgbW9kZXJuaXNhdGlvbi48 YnI+Kzxicj4mbmJzcDs0LjI0IFdlZCBEZWMgMjggMDU6MTk6NTUgQ0VUIDIwMTY8YnI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDstIGJ1bXAgdmVyc2lvbiB0byA0LjI0LCBhcyB0aGUgcmVsZWFzZSB0YXJi YWxsIGluZXhwbGljYWJseTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO2RpZG4ndCBoYXZlIHRoZSByaWdodCB2ZXJzaW9uIGluIGV2LmgsIGV2ZW4gdGhvdWdoIHRo ZSBjdnMtdGFnZ2VkPGJyPmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJldi9NYWtlZmlsZS5h bSBiL3RoaXJkX3BhcnR5L2xpYmV2L01ha2VmaWxlLmFtPGJyPmluZGV4IDA1OTMwNWJjMy4uMjgx NDYyMmQ4IDEwMDY0NDxicj4tLS0gYS90aGlyZF9wYXJ0eS9saWJldi9NYWtlZmlsZS5hbTxicj4r KysgYi90aGlyZF9wYXJ0eS9saWJldi9NYWtlZmlsZS5hbTxicj5AQCAtNCw3ICs0LDggQEAgVkVS U0lPTl9JTkZPID0gNDowOjA8YnI+Jm5ic3A7PGJyPiZuYnNwO0VYVFJBX0RJU1QgPSBMSUNFTlNF IENoYW5nZXMgbGliZXYubTQgYXV0b2dlbi5zaCBcPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgZXZfdmFycy5oIGV2X3dyYXAuaCBcPGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7IGV2X2Vwb2xsLmMgZXZfc2VsZWN0LmMgZXZfcG9sbC5jIGV2X2txdWV1ZS5jIGV2 X3BvcnQuYyBldl93aW4zMi5jIFw8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgZXZf ZXBvbGwuYyBldl9zZWxlY3QuYyBldl9wb2xsLmMgZXZfa3F1ZXVlLmMgZXZfcG9ydC5jIGV2X2xp bnV4YWlvLmMgZXZfaW91cmluZy5jIFw8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyBldl93aW4zMi5jIFw8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyBldi4zIGV2LnBvZCBTeW1ib2xzLmV2IFN5bWJvbHMuZXZlbnQ8YnI+Jm5ic3A7PGJy PiZuYnNwO21hbl9NQU5TID0gZXYuMzxicj5kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvbGliZXYv UkVBRE1FIGIvdGhpcmRfcGFydHkvbGliZXYvUkVBRE1FPGJyPmluZGV4IDMxZjYxOTM4Ny4uZmNh NWZkZjFhIDEwMDY0NDxicj4tLS0gYS90aGlyZF9wYXJ0eS9saWJldi9SRUFETUU8YnI+KysrIGIv dGhpcmRfcGFydHkvbGliZXYvUkVBRE1FPGJyPkBAIC0xOCw3ICsxOCw4IEBAIEFCT1VUPGJyPiZu YnNwOyAmbmJzcDsgLSBleHRlbnNpdmUgYW5kIGRldGFpbGVkLCByZWFkYWJsZSBkb2N1bWVudGF0 aW9uIChub3QgZG94eWdlbiBnYXJiYWdlKS48YnI+Jm5ic3A7ICZuYnNwOyAtIGZ1bGx5IHN1cHBv cnRzIGZvcmssIGNhbiBkZXRlY3QgZm9yayBpbiB2YXJpb3VzIHdheXMgYW5kIGF1dG9tYXRpY2Fs bHk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgcmUtYXJtcyBrZXJuZWwgbWVjaGFuaXNtcyB0aGF0 IGRvIG5vdCBzdXBwb3J0IGZvcmsuPGJyPi0gJm5ic3A7IC0gaGlnaGx5IG9wdGltaXNlZCBzZWxl Y3QsIHBvbGwsIGVwb2xsLCBrcXVldWUgYW5kIGV2ZW50IHBvcnRzIGJhY2tlbmRzLjxicj4rICZu YnNwOyAtIGhpZ2hseSBvcHRpbWlzZWQgc2VsZWN0LCBwb2xsLCBsaW51eCBlcG9sbCwgbGludXgg YWlvLCBic2Qga3F1ZXVlPGJyPisgJm5ic3A7ICZuYnNwOyBhbmQgc29sYXJpcyBldmVudCBwb3J0 cyBiYWNrZW5kcy48YnI+Jm5ic3A7ICZuYnNwOyAtIGZpbGVzeXN0ZW0gb2JqZWN0IChwYXRoKSB3 YXRjaGluZyAod2l0aCBvcHRpb25hbCBsaW51eCBpbm90aWZ5IHN1cHBvcnQpLjxicj4mbmJzcDsg Jm5ic3A7IC0gd2FsbGNsb2NrLWJhc2VkIHRpbWVzICh1c2luZyBhYnNvbHV0ZSB0aW1lLCBjcm9u LWxpa2UpLjxicj4mbmJzcDsgJm5ic3A7IC0gcmVsYXRpdmUgdGltZXJzL3RpbWVvdXRzIChoYW5k bGUgdGltZSBqdW1wcykuPGJyPmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJldi9TeW1ib2xz LmV2IGIvdGhpcmRfcGFydHkvbGliZXYvU3ltYm9scy5ldjxicj5pbmRleCA3YTI5YTc1Y2IuLmZl MTY5ZmEwNiAxMDA2NDQ8YnI+LS0tIGEvdGhpcmRfcGFydHkvbGliZXYvU3ltYm9scy5ldjxicj4r KysgYi90aGlyZF9wYXJ0eS9saWJldi9TeW1ib2xzLmV2PGJyPkBAIC0xMywxMCArMTMsMTAgQEAg ZXZfY2xlYXJfcGVuZGluZzxicj4mbmJzcDtldl9kZWZhdWx0X2xvb3A8YnI+Jm5ic3A7ZXZfZGVm YXVsdF9sb29wX3B0cjxicj4mbmJzcDtldl9kZXB0aDxicj4rZXZfZW1iZWRkYWJsZV9iYWNrZW5k czxicj4mbmJzcDtldl9lbWJlZF9zdGFydDxicj4mbmJzcDtldl9lbWJlZF9zdG9wPGJyPiZuYnNw O2V2X2VtYmVkX3N3ZWVwPGJyPi1ldl9lbWJlZGRhYmxlX2JhY2tlbmRzPGJyPiZuYnNwO2V2X2Zl ZWRfZXZlbnQ8YnI+Jm5ic3A7ZXZfZmVlZF9mZF9ldmVudDxicj4mbmJzcDtldl9mZWVkX3NpZ25h bDxicj5kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvbGliZXYvY29uZmlndXJlLmFjIGIvdGhpcmRf cGFydHkvbGliZXYvY29uZmlndXJlLmFjPGJyPmluZGV4IDI1OTBmOGZkNi4uZmI5MzExZmQ0IDEw MDY0NDxicj4tLS0gYS90aGlyZF9wYXJ0eS9saWJldi9jb25maWd1cmUuYWM8YnI+KysrIGIvdGhp cmRfcGFydHkvbGliZXYvY29uZmlndXJlLmFjPGJyPkBAIC0xLDExICsxLDExIEBAPGJyPi1BQ19J TklUPGJyPitkbmwgYWxzbyB1cGRhdGUgZXYuaCE8YnI+K0FDX0lOSVQoW2xpYmV2XSwgWzQuMzFd KTxicj4mbmJzcDs8YnI+Jm5ic3A7b3JpZ19DRkxBR1M9IiRDRkxBR1MiPGJyPiZuYnNwOzxicj4m bmJzcDtBQ19DT05GSUdfU1JDRElSKFtldl9lcG9sbC5jXSk8YnI+K0FNX0lOSVRfQVVUT01BS0U8 YnI+Jm5ic3A7PGJyPi1kbmwgYWxzbyB1cGRhdGUgZXYuaCE8YnI+LUFNX0lOSVRfQVVUT01BS0Uo bGliZXYsNC4yNCk8YnI+Jm5ic3A7QUNfQ09ORklHX0hFQURFUlMoW2NvbmZpZy5oXSk8YnI+Jm5i c3A7QU1fTUFJTlRBSU5FUl9NT0RFPGJyPiZuYnNwOzxicj5kaWZmIC0tZ2l0IGEvdGhpcmRfcGFy dHkvbGliZXYvZXYrKy5oIGIvdGhpcmRfcGFydHkvbGliZXYvZXYrKy5oPGJyPmluZGV4IDRmMGEz NmFiMC4uMjJkZmNmNThkIDEwMDY0NDxicj4tLS0gYS90aGlyZF9wYXJ0eS9saWJldi9ldisrLmg8 YnI+KysrIGIvdGhpcmRfcGFydHkvbGliZXYvZXYrKy5oPGJyPkBAIC0xLDcgKzEsNyBAQDxicj4m bmJzcDsvKjxicj4mbmJzcDsgKiBsaWJldiBzaW1wbGUgQysrIHdyYXBwZXIgY2xhc3Nlczxicj4m bmJzcDsgKjxicj4tICogQ29weXJpZ2h0IChjKSAyMDA3LDIwMDgsMjAxMCBNYXJjIEFsZXhhbmRl ciBMZWhtYW5uICZsdDtsaWJldkBzY2htb3JwLmRlJmd0Ozxicj4rICogQ29weXJpZ2h0IChjKSAy MDA3LDIwMDgsMjAxMCwyMDE4LDIwMjAgTWFyYyBBbGV4YW5kZXIgTGVobWFubiAmbHQ7bGliZXZA c2NobW9ycC5kZSZndDs8YnI+Jm5ic3A7ICogQWxsIHJpZ2h0cyByZXNlcnZlZC48YnI+Jm5ic3A7 ICo8YnI+Jm5ic3A7ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhLTxicj5AQCAtMTEzLDEzICsxMTMsMTMg QEAgbmFtZXNwYWNlIGV2IHs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDtzdHJ1Y3QgYmFkX2xv b3A8YnI+Jm5ic3A7I2lmIEVWX1VTRV9TVERFWENFUFQ8YnI+LSAmbmJzcDs6IHN0ZDo6cnVudGlt ZV9lcnJvcjxicj4rICZuYnNwOzogc3RkOjpleGNlcHRpb248YnI+Jm5ic3A7I2VuZGlmPGJyPiZu YnNwOyAmbmJzcDt7PGJyPiZuYnNwOyNpZiBFVl9VU0VfU1RERVhDRVBUPGJyPi0gJm5ic3A7ICZu YnNwO2JhZF9sb29wICgpPGJyPi0gJm5ic3A7ICZuYnNwOzogc3RkOjpydW50aW1lX2Vycm9yICgi bGliZXYgZXZlbnQgbG9vcCBjYW5ub3QgYmUgaW5pdGlhbGl6ZWQsIGJhZCB2YWx1ZSBvZiBMSUJF Vl9GTEFHUz8iKTxicj4rICZuYnNwOyAmbmJzcDtjb25zdCBjaGFyICp3aGF0ICgpIGNvbnN0IEVW X05PRVhDRVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7cmV0dXJuICJsaWJldiBldmVudCBsb29wIGNhbm5vdCBiZSBpbml0aWFsaXplZCwgYmFkIHZh bHVlIG9mIExJQkVWX0ZMQUdTPyI7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDsj ZW5kaWY8YnI+Jm5ic3A7ICZuYnNwO307PGJyPkBAIC0xNDIsMTQgKzE0MiwxNCBAQCBuYW1lc3Bh Y2UgZXYgezxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwO3N0cnVjdCBsb29wX3JlZjxicj4mbmJz cDsgJm5ic3A7ezxicj4tICZuYnNwOyAmbmJzcDtsb29wX3JlZiAoRVZfUCkgdGhyb3cgKCk8YnI+ KyAmbmJzcDsgJm5ic3A7bG9vcF9yZWYgKEVWX1ApIEVWX05PRVhDRVBUPGJyPiZuYnNwOyNpZiBF Vl9NVUxUSVBMSUNJVFk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDs6IEVWX0FYIChFVl9BKTxicj4m bmJzcDsjZW5kaWY8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7fTxicj4mbmJzcDs8YnI+LSAmbmJzcDsgJm5ic3A7Ym9vbCBvcGVyYXRvciA9PSAoY29uc3Qg bG9vcF9yZWYgJmFtcDtvdGhlcikgY29uc3QgdGhyb3cgKCk8YnI+KyAmbmJzcDsgJm5ic3A7Ym9v bCBvcGVyYXRvciA9PSAoY29uc3QgbG9vcF9yZWYgJmFtcDtvdGhlcikgY29uc3QgRVZfTk9FWENF UFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyNpZiBFVl9NVUxUSVBMSUNJVFk8 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuIEVWX0FYID09IG90aGVyLkVWX0FY Ozxicj5AQCAtMTU4LDcgKzE1OCw3IEBAIG5hbWVzcGFjZSBldiB7PGJyPiZuYnNwOyNlbmRpZjxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7PGJyPi0gJm5ic3A7ICZuYnNwO2Jvb2wg b3BlcmF0b3IgIT0gKGNvbnN0IGxvb3BfcmVmICZhbXA7b3RoZXIpIGNvbnN0IHRocm93ICgpPGJy PisgJm5ic3A7ICZuYnNwO2Jvb2wgb3BlcmF0b3IgIT0gKGNvbnN0IGxvb3BfcmVmICZhbXA7b3Ro ZXIpIGNvbnN0IEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsj aWYgRVZfTVVMVElQTElDSVRZPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiAh ICgqdGhpcyA9PSBvdGhlcik7PGJyPkBAIC0xNjgsMjcgKzE2OCwyNyBAQCBuYW1lc3BhY2UgZXYg ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwOyNpZiBFVl9NVUxU SVBMSUNJVFk8YnI+LSAmbmJzcDsgJm5ic3A7Ym9vbCBvcGVyYXRvciA9PSAoY29uc3QgRVZfUCkg Y29uc3QgdGhyb3cgKCk8YnI+KyAmbmJzcDsgJm5ic3A7Ym9vbCBvcGVyYXRvciA9PSAoY29uc3Qg RVZfUCkgY29uc3QgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiB0aGlzLSZndDtFVl9BWCA9PSBFVl9BOzxicj4m bmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7PGJyPi0gJm5ic3A7ICZuYnNwO2Jvb2wgb3Bl cmF0b3IgIT0gKGNvbnN0IEVWX1ApIGNvbnN0IHRocm93ICgpPGJyPisgJm5ic3A7ICZuYnNwO2Jv b2wgb3BlcmF0b3IgIT0gKGNvbnN0IEVWX1ApIGNvbnN0IEVWX05PRVhDRVBUPGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7ezxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuICgqdGhpcyA9PSBF Vl9BKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiAhICgqdGhpcyA9PSBFVl9BKTs8 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDtvcGVy YXRvciBzdHJ1Y3QgZXZfbG9vcCAqICgpIGNvbnN0IHRocm93ICgpPGJyPisgJm5ic3A7ICZuYnNw O29wZXJhdG9yIHN0cnVjdCBldl9sb29wICogKCkgY29uc3QgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiBFVl9B WDs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDtv cGVyYXRvciBjb25zdCBzdHJ1Y3QgZXZfbG9vcCAqICgpIGNvbnN0IHRocm93ICgpPGJyPisgJm5i c3A7ICZuYnNwO29wZXJhdG9yIGNvbnN0IHN0cnVjdCBldl9sb29wICogKCkgY29uc3QgRVZfTk9F WENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO3JldHVybiBFVl9BWDs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxicj4t ICZuYnNwOyAmbmJzcDtib29sIGlzX2RlZmF1bHQgKCkgY29uc3QgdGhyb3cgKCk8YnI+KyAmbmJz cDsgJm5ic3A7Ym9vbCBpc19kZWZhdWx0ICgpIGNvbnN0IEVWX05PRVhDRVBUPGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4gRVZfQVgg PT0gZXZfZGVmYXVsdF9sb29wICgwKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPkBAIC0y MDAsNyArMjAwLDcgQEAgbmFtZXNwYWNlIGV2IHs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ZXZfcnVuIChFVl9BWF8gZmxhZ3MpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5i c3A7PGJyPi0gJm5ic3A7ICZuYnNwO3ZvaWQgdW5sb29wIChob3dfdCBob3cgPSBPTkUpIHRocm93 ICgpPGJyPisgJm5ic3A7ICZuYnNwO3ZvaWQgdW5sb29wIChob3dfdCBob3cgPSBPTkUpIEVWX05P RVhDRVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtldl9icmVhayAoRVZfQVhfIGhvdyk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj5A QCAtMjExLDc0ICsyMTEsNzQgQEAgbmFtZXNwYWNlIGV2IHs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ZXZfcnVuIChFVl9BWF8gZmxhZ3MpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO308 YnI+Jm5ic3A7PGJyPi0gJm5ic3A7ICZuYnNwO3ZvaWQgYnJlYWtfbG9vcCAoaG93X3QgaG93ID0g T05FKSB0aHJvdyAoKTxicj4rICZuYnNwOyAmbmJzcDt2b2lkIGJyZWFrX2xvb3AgKGhvd190IGhv dyA9IE9ORSkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO2V2X2JyZWFrIChFVl9BWF8gaG93KTs8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDt9PGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDt2b2lkIHBvc3RfZm9yayAoKSB0 aHJvdyAoKTxicj4rICZuYnNwOyAmbmJzcDt2b2lkIHBvc3RfZm9yayAoKSBFVl9OT0VYQ0VQVDxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZf bG9vcF9mb3JrIChFVl9BWCk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+ LSAmbmJzcDsgJm5ic3A7dW5zaWduZWQgaW50IGJhY2tlbmQgKCkgY29uc3QgdGhyb3cgKCk8YnI+ KyAmbmJzcDsgJm5ic3A7dW5zaWduZWQgaW50IGJhY2tlbmQgKCkgY29uc3QgRVZfTk9FWENFUFQ8 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Jl dHVybiBldl9iYWNrZW5kIChFVl9BWCk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJz cDs8YnI+LSAmbmJzcDsgJm5ic3A7dHN0YW1wIG5vdyAoKSBjb25zdCB0aHJvdyAoKTxicj4rICZu YnNwOyAmbmJzcDt0c3RhbXAgbm93ICgpIGNvbnN0IEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4gZXZfbm93IChF Vl9BWCk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+LSAmbmJzcDsgJm5i c3A7dm9pZCByZWYgKCkgdGhyb3cgKCk8YnI+KyAmbmJzcDsgJm5ic3A7dm9pZCByZWYgKCkgRVZf Tk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO2V2X3JlZiAoRVZfQVgpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7 PGJyPi0gJm5ic3A7ICZuYnNwO3ZvaWQgdW5yZWYgKCkgdGhyb3cgKCk8YnI+KyAmbmJzcDsgJm5i c3A7dm9pZCB1bnJlZiAoKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+ Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfdW5yZWYgKEVWX0FYKTs8YnI+Jm5ic3A7ICZu YnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDsjaWYgRVZfRkVBVFVSRV9BUEk8YnI+LSAm bmJzcDsgJm5ic3A7dW5zaWduZWQgaW50IGl0ZXJhdGlvbiAoKSBjb25zdCB0aHJvdyAoKTxicj4r ICZuYnNwOyAmbmJzcDt1bnNpZ25lZCBpbnQgaXRlcmF0aW9uICgpIGNvbnN0IEVWX05PRVhDRVBU PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDty ZXR1cm4gZXZfaXRlcmF0aW9uIChFVl9BWCk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4m bmJzcDs8YnI+LSAmbmJzcDsgJm5ic3A7dW5zaWduZWQgaW50IGRlcHRoICgpIGNvbnN0IHRocm93 ICgpPGJyPisgJm5ic3A7ICZuYnNwO3Vuc2lnbmVkIGludCBkZXB0aCAoKSBjb25zdCBFVl9OT0VY Q0VQVDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7cmV0dXJuIGV2X2RlcHRoIChFVl9BWCk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4m bmJzcDs8YnI+LSAmbmJzcDsgJm5ic3A7dm9pZCBzZXRfaW9fY29sbGVjdF9pbnRlcnZhbCAodHN0 YW1wIGludGVydmFsKSB0aHJvdyAoKTxicj4rICZuYnNwOyAmbmJzcDt2b2lkIHNldF9pb19jb2xs ZWN0X2ludGVydmFsICh0c3RhbXAgaW50ZXJ2YWwpIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9zZXRfaW9fY29sbGVj dF9pbnRlcnZhbCAoRVZfQVhfIGludGVydmFsKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJy PiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDt2b2lkIHNldF90aW1lb3V0X2NvbGxlY3RfaW50ZXJ2 YWwgKHRzdGFtcCBpbnRlcnZhbCkgdGhyb3cgKCk8YnI+KyAmbmJzcDsgJm5ic3A7dm9pZCBzZXRf dGltZW91dF9jb2xsZWN0X2ludGVydmFsICh0c3RhbXAgaW50ZXJ2YWwpIEVWX05PRVhDRVBUPGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9z ZXRfdGltZW91dF9jb2xsZWN0X2ludGVydmFsIChFVl9BWF8gaW50ZXJ2YWwpOzxicj4mbmJzcDsg Jm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7 ICZuYnNwOy8vIGZ1bmN0aW9uIGNhbGxiYWNrPGJyPi0gJm5ic3A7ICZuYnNwO3ZvaWQgb25jZSAo aW50IGZkLCBpbnQgZXZlbnRzLCB0c3RhbXAgdGltZW91dCwgdm9pZCAoKmNiKShpbnQsIHZvaWQg KiksIHZvaWQgKmFyZyA9IDApIHRocm93ICgpPGJyPisgJm5ic3A7ICZuYnNwO3ZvaWQgb25jZSAo aW50IGZkLCBpbnQgZXZlbnRzLCB0c3RhbXAgdGltZW91dCwgdm9pZCAoKmNiKShpbnQsIHZvaWQg KiksIHZvaWQgKmFyZyA9IDApIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9vbmNlIChFVl9BWF8gZmQsIGV2ZW50cywg dGltZW91dCwgY2IsIGFyZyk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+ Jm5ic3A7ICZuYnNwOyAmbmJzcDsvLyBtZXRob2QgY2FsbGJhY2s8YnI+Jm5ic3A7ICZuYnNwOyAm bmJzcDt0ZW1wbGF0ZSZsdDtjbGFzcyBLLCB2b2lkIChLOjoqbWV0aG9kKShpbnQpJmd0Ozxicj4t ICZuYnNwOyAmbmJzcDt2b2lkIG9uY2UgKGludCBmZCwgaW50IGV2ZW50cywgdHN0YW1wIHRpbWVv dXQsIEsgKm9iamVjdCkgdGhyb3cgKCk8YnI+KyAmbmJzcDsgJm5ic3A7dm9pZCBvbmNlIChpbnQg ZmQsIGludCBldmVudHMsIHRzdGFtcCB0aW1lb3V0LCBLICpvYmplY3QpIEVWX05PRVhDRVBUPGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtvbmNl IChmZCwgZXZlbnRzLCB0aW1lb3V0LCBtZXRob2RfdGh1bmsmbHQ7SywgbWV0aG9kJmd0Oywgb2Jq ZWN0KTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7 ICZuYnNwOy8vIGRlZmF1bHQgbWV0aG9kID09IG9wZXJhdG9yICgpPGJyPiZuYnNwOyAmbmJzcDsg Jm5ic3A7dGVtcGxhdGUmbHQ7Y2xhc3MgSyZndDs8YnI+LSAmbmJzcDsgJm5ic3A7dm9pZCBvbmNl IChpbnQgZmQsIGludCBldmVudHMsIHRzdGFtcCB0aW1lb3V0LCBLICpvYmplY3QpIHRocm93ICgp PGJyPisgJm5ic3A7ICZuYnNwO3ZvaWQgb25jZSAoaW50IGZkLCBpbnQgZXZlbnRzLCB0c3RhbXAg dGltZW91dCwgSyAqb2JqZWN0KSBFVl9OT0VYQ0VQVDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7b25jZSAoZmQsIGV2ZW50cywgdGltZW91dCwg bWV0aG9kX3RodW5rJmx0O0ssICZhbXA7Szo6b3BlcmF0b3IgKCkmZ3Q7LCBvYmplY3QpOzxicj4m bmJzcDsgJm5ic3A7ICZuYnNwO308YnI+QEAgLTI5Miw3ICsyOTIsNyBAQCBuYW1lc3BhY2UgZXYg ezxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsvLyBuby1hcmd1bWVudCBtZXRob2Qg Y2FsbGJhY2s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt0ZW1wbGF0ZSZsdDtjbGFzcyBLLCB2b2lk IChLOjoqbWV0aG9kKSgpJmd0Ozxicj4tICZuYnNwOyAmbmJzcDt2b2lkIG9uY2UgKGludCBmZCwg aW50IGV2ZW50cywgdHN0YW1wIHRpbWVvdXQsIEsgKm9iamVjdCkgdGhyb3cgKCk8YnI+KyAmbmJz cDsgJm5ic3A7dm9pZCBvbmNlIChpbnQgZmQsIGludCBldmVudHMsIHRzdGFtcCB0aW1lb3V0LCBL ICpvYmplY3QpIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtvbmNlIChmZCwgZXZlbnRzLCB0aW1lb3V0LCBtZXRob2Rfbm9h cmdzX3RodW5rJmx0O0ssIG1ldGhvZCZndDssIG9iamVjdCk7PGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7fTxicj5AQCAtMzA2LDcgKzMwNiw3IEBAIG5hbWVzcGFjZSBldiB7PGJyPiZuYnNwOzxicj4m bmJzcDsgJm5ic3A7ICZuYnNwOy8vIHNpbXBsZXIgZnVuY3Rpb24gY2FsbGJhY2s8YnI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDt0ZW1wbGF0ZSZsdDt2b2lkICgqY2IpKGludCkmZ3Q7PGJyPi0gJm5ic3A7 ICZuYnNwO3ZvaWQgb25jZSAoaW50IGZkLCBpbnQgZXZlbnRzLCB0c3RhbXAgdGltZW91dCkgdGhy b3cgKCk8YnI+KyAmbmJzcDsgJm5ic3A7dm9pZCBvbmNlIChpbnQgZmQsIGludCBldmVudHMsIHRz dGFtcCB0aW1lb3V0KSBFVl9OT0VYQ0VQVDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7b25jZSAoZmQsIGV2ZW50cywgdGltZW91dCwgc2ltcGxl cl9mdW5jX3RodW5rJmx0O2NiJmd0Oyk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj5AQCAt MzIwLDcgKzMyMCw3IEBAIG5hbWVzcGFjZSBldiB7PGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7 ICZuYnNwOy8vIHNpbXBsZXN0IGZ1bmN0aW9uIGNhbGxiYWNrPGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7dGVtcGxhdGUmbHQ7dm9pZCAoKmNiKSgpJmd0Ozxicj4tICZuYnNwOyAmbmJzcDt2b2lkIG9u Y2UgKGludCBmZCwgaW50IGV2ZW50cywgdHN0YW1wIHRpbWVvdXQpIHRocm93ICgpPGJyPisgJm5i c3A7ICZuYnNwO3ZvaWQgb25jZSAoaW50IGZkLCBpbnQgZXZlbnRzLCB0c3RhbXAgdGltZW91dCkg RVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO29uY2UgKGZkLCBldmVudHMsIHRpbWVvdXQsIHNpbXBsZXN0X2Z1bmNfdGh1bmsm bHQ7Y2ImZ3Q7KTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPkBAIC0zMzIsMTIgKzMzMiwx MiBAQCBuYW1lc3BhY2UgZXYgezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 KCk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+LSAmbmJzcDsgJm5ic3A7 dm9pZCBmZWVkX2ZkX2V2ZW50IChpbnQgZmQsIGludCByZXZlbnRzKSB0aHJvdyAoKTxicj4rICZu YnNwOyAmbmJzcDt2b2lkIGZlZWRfZmRfZXZlbnQgKGludCBmZCwgaW50IHJldmVudHMpIEVWX05P RVhDRVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtldl9mZWVkX2ZkX2V2ZW50IChFVl9BWF8gZmQsIHJldmVudHMpOzxicj4mbmJzcDsgJm5i c3A7ICZuYnNwO308YnI+Jm5ic3A7PGJyPi0gJm5ic3A7ICZuYnNwO3ZvaWQgZmVlZF9zaWduYWxf ZXZlbnQgKGludCBzaWdudW0pIHRocm93ICgpPGJyPisgJm5ic3A7ICZuYnNwO3ZvaWQgZmVlZF9z aWduYWxfZXZlbnQgKGludCBzaWdudW0pIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9mZWVkX3NpZ25hbF9ldmVudCAo RVZfQVhfIHNpZ251bSk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj5AQCAtMzUyLDE0ICsz NTIsMTQgQEAgbmFtZXNwYWNlIGV2IHs8YnI+Jm5ic3A7ICZuYnNwO3N0cnVjdCBkeW5hbWljX2xv b3AgOiBsb29wX3JlZjxicj4mbmJzcDsgJm5ic3A7ezxicj4mbmJzcDs8YnI+LSAmbmJzcDsgJm5i c3A7ZHluYW1pY19sb29wICh1bnNpZ25lZCBpbnQgZmxhZ3MgPSBBVVRPKSB0aHJvdyAoYmFkX2xv b3ApPGJyPisgJm5ic3A7ICZuYnNwO2R5bmFtaWNfbG9vcCAodW5zaWduZWQgaW50IGZsYWdzID0g QVVUTyk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDs6IGxvb3BfcmVmIChldl9sb29wX25ldyAoZmxh Z3MpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7aWYgKCFFVl9BWCk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Rocm93 IGJhZF9sb29wICgpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7PGJyPi0gJm5i c3A7ICZuYnNwO35keW5hbWljX2xvb3AgKCkgdGhyb3cgKCk8YnI+KyAmbmJzcDsgJm5ic3A7fmR5 bmFtaWNfbG9vcCAoKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfbG9vcF9kZXN0cm95IChFVl9BWCk7PGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO0VWX0FYID0gMDs8YnI+QEAgLTM3Niw3ICszNzYsNyBAQCBu YW1lc3BhY2UgZXYgezxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwO3N0cnVjdCBkZWZhdWx0X2xv b3AgOiBsb29wX3JlZjxicj4mbmJzcDsgJm5ic3A7ezxicj4tICZuYnNwOyAmbmJzcDtkZWZhdWx0 X2xvb3AgKHVuc2lnbmVkIGludCBmbGFncyA9IEFVVE8pIHRocm93IChiYWRfbG9vcCk8YnI+KyAm bmJzcDsgJm5ic3A7ZGVmYXVsdF9sb29wICh1bnNpZ25lZCBpbnQgZmxhZ3MgPSBBVVRPKTxicj4m bmJzcDsjaWYgRVZfTVVMVElQTElDSVRZPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7OiBsb29wX3Jl ZiAoZXZfZGVmYXVsdF9sb29wIChmbGFncykpPGJyPiZuYnNwOyNlbmRpZjxicj5AQCAtMzk2LDcg KzM5Niw3IEBAIG5hbWVzcGFjZSBldiB7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ZGVmYXVsdF9s b29wICZhbXA7b3BlcmF0b3IgPSAoY29uc3QgZGVmYXVsdF9sb29wICZhbXA7KTs8YnI+Jm5ic3A7 ICZuYnNwO307PGJyPiZuYnNwOzxicj4tICZuYnNwO2lubGluZSBsb29wX3JlZiBnZXRfZGVmYXVs dF9sb29wICgpIHRocm93ICgpPGJyPisgJm5ic3A7aW5saW5lIGxvb3BfcmVmIGdldF9kZWZhdWx0 X2xvb3AgKCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwO3s8YnI+Jm5ic3A7I2lmIEVWX01V TFRJUExJQ0lUWTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiBldl9kZWZhdWx0X2xvb3Ag KDApOzxicj5AQCAtNDIxLDE3ICs0MjEsMzUgQEAgbmFtZXNwYWNlIGV2IHs8YnI+Jm5ic3A7ICZu YnNwO3RlbXBsYXRlJmx0O2NsYXNzIGV2X3dhdGNoZXIsIGNsYXNzIHdhdGNoZXImZ3Q7PGJyPiZu YnNwOyAmbmJzcDtzdHJ1Y3QgYmFzZSA6IGV2X3dhdGNoZXI8YnI+Jm5ic3A7ICZuYnNwO3s8YnI+ KyAmbmJzcDsgJm5ic3A7Ly8gc2NvcGVkIHBhdXNlL3VucGF1c2Ugb2YgYSB3YXRjaGVyPGJyPisg Jm5ic3A7ICZuYnNwO3N0cnVjdCBmcmVlemVfZ3VhcmQ8YnI+KyAmbmJzcDsgJm5ic3A7ezxicj4r ICZuYnNwOyAmbmJzcDsgJm5ic3A7d2F0Y2hlciAmYW1wO3c7PGJyPisgJm5ic3A7ICZuYnNwOyAm bmJzcDtib29sIGFjdGl2ZTs8YnI+Kzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ZnJlZXplX2d1 YXJkICh3YXRjaGVyICpzZWxmKSBFVl9OT0VYQ0VQVDxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7 OiB3ICgqc2VsZiksIGFjdGl2ZSAody5pc19hY3RpdmUgKCkpPGJyPisgJm5ic3A7ICZuYnNwOyAm bmJzcDt7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGFjdGl2ZSkgdy5zdG9w ICgpOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4rPGJyPisgJm5ic3A7ICZuYnNwOyAm bmJzcDt+ZnJlZXplX2d1YXJkICgpPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGFjdGl2ZSkgdy5zdGFydCAoKTs8YnI+KyAmbmJz cDsgJm5ic3A7ICZuYnNwO308YnI+KyAmbmJzcDsgJm5ic3A7fTs8YnI+Kzxicj4mbmJzcDsgJm5i c3A7ICZuYnNwOyNpZiBFVl9NVUxUSVBMSUNJVFk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7RVZfUFg7PGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvLyBsb29w IHNldDxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7dm9pZCBzZXQgKEVWX1ApIHRocm93ICgpPGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDt2b2lkIHNldCAoRVZfUCkgRVZfTk9FWENFUFQ8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7dGhpcy0mZ3Q7RVZfQSA9IEVWX0E7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O308YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsjZW5kaWY8YnI+Jm5ic3A7PGJyPi0gJm5ic3A7ICZu YnNwO2Jhc2UgKEVWX1BYKSB0aHJvdyAoKTxicj4rICZuYnNwOyAmbmJzcDtiYXNlIChFVl9QWCkg RVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsjaWYgRVZfTVVMVElQTElDSVRZPGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogRVZfQSAoRVZfQSk8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDsjZW5kaWY8YnI+QEAgLTQzOSw3ICs0NTcsNyBAQCBuYW1lc3BhY2UgZXYgezxicj4m bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9pbml0ICh0aGlzLCAwKTs8YnI+Jm5ic3A7ICZu YnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDt2b2lkIHNldF8gKGNvbnN0 IHZvaWQgKmRhdGEsIHZvaWQgKCpjYikoRVZfUF8gZXZfd2F0Y2hlciAqdywgaW50IHJldmVudHMp KSB0aHJvdyAoKTxicj4rICZuYnNwOyAmbmJzcDt2b2lkIHNldF8gKGNvbnN0IHZvaWQgKmRhdGEs IHZvaWQgKCpjYikoRVZfUF8gZXZfd2F0Y2hlciAqdywgaW50IHJldmVudHMpKSBFVl9OT0VYQ0VQ VDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 dGhpcy0mZ3Q7ZGF0YSA9ICh2b2lkICopZGF0YTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ZXZfc2V0X2NiIChzdGF0aWNfY2FzdCZsdDtldl93YXRjaGVyIComZ3Q7KHRoaXMpLCBjYik7 PGJyPkBAIC00NDcsNyArNDY1LDcgQEAgbmFtZXNwYWNlIGV2IHs8YnI+Jm5ic3A7PGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7Ly8gZnVuY3Rpb24gY2FsbGJhY2s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJz cDt0ZW1wbGF0ZSZsdDt2b2lkICgqZnVuY3Rpb24pKHdhdGNoZXIgJmFtcDt3LCBpbnQpJmd0Ozxi cj4tICZuYnNwOyAmbmJzcDt2b2lkIHNldCAodm9pZCAqZGF0YSA9IDApIHRocm93ICgpPGJyPisg Jm5ic3A7ICZuYnNwO3ZvaWQgc2V0ICh2b2lkICpkYXRhID0gMCkgRVZfTk9FWENFUFQ8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3NldF8gKGRh dGEsIGZ1bmN0aW9uX3RodW5rJmx0O2Z1bmN0aW9uJmd0Oyk7PGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7fTxicj5AQCAtNDYxLDE0ICs0NzksMTQgQEAgbmFtZXNwYWNlIGV2IHs8YnI+Jm5ic3A7PGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7Ly8gbWV0aG9kIGNhbGxiYWNrPGJyPiZuYnNwOyAmbmJzcDsg Jm5ic3A7dGVtcGxhdGUmbHQ7Y2xhc3MgSywgdm9pZCAoSzo6Km1ldGhvZCkod2F0Y2hlciAmYW1w O3csIGludCkmZ3Q7PGJyPi0gJm5ic3A7ICZuYnNwO3ZvaWQgc2V0IChLICpvYmplY3QpIHRocm93 ICgpPGJyPisgJm5ic3A7ICZuYnNwO3ZvaWQgc2V0IChLICpvYmplY3QpIEVWX05PRVhDRVBUPGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtzZXRf IChvYmplY3QsIG1ldGhvZF90aHVuayZsdDtLLCBtZXRob2QmZ3Q7KTs8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOy8vIGRlZmF1bHQgbWV0 aG9kID09IG9wZXJhdG9yICgpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7dGVtcGxhdGUmbHQ7Y2xh c3MgSyZndDs8YnI+LSAmbmJzcDsgJm5ic3A7dm9pZCBzZXQgKEsgKm9iamVjdCkgdGhyb3cgKCk8 YnI+KyAmbmJzcDsgJm5ic3A7dm9pZCBzZXQgKEsgKm9iamVjdCkgRVZfTk9FWENFUFQ8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3NldF8gKG9i amVjdCwgbWV0aG9kX3RodW5rJmx0O0ssICZhbXA7Szo6b3BlcmF0b3IgKCkmZ3Q7KTs8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDt9PGJyPkBAIC00ODIsNyArNTAwLDcgQEAgbmFtZXNwYWNlIGV2IHs8 YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7Ly8gbm8tYXJndW1lbnQgY2FsbGJhY2s8 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt0ZW1wbGF0ZSZsdDtjbGFzcyBLLCB2b2lkIChLOjoqbWV0 aG9kKSgpJmd0Ozxicj4tICZuYnNwOyAmbmJzcDt2b2lkIHNldCAoSyAqb2JqZWN0KSB0aHJvdyAo KTxicj4rICZuYnNwOyAmbmJzcDt2b2lkIHNldCAoSyAqb2JqZWN0KSBFVl9OT0VYQ0VQVDxicj4m bmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7c2V0XyAo b2JqZWN0LCBtZXRob2Rfbm9hcmdzX3RodW5rJmx0O0ssIG1ldGhvZCZndDspOzxicj4mbmJzcDsg Jm5ic3A7ICZuYnNwO308YnI+QEAgLTUwMSw3NiArNTE5LDc2IEBAIG5hbWVzcGFjZSBldiB7PGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7KHN0YXRpY19jYXN0Jmx0 O2V2X3dhdGNoZXIgKiZndDsodGhpcyksIGV2ZW50cyk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 fTxicj4mbmJzcDs8YnI+LSAmbmJzcDsgJm5ic3A7Ym9vbCBpc19hY3RpdmUgKCkgY29uc3QgdGhy b3cgKCk8YnI+KyAmbmJzcDsgJm5ic3A7Ym9vbCBpc19hY3RpdmUgKCkgY29uc3QgRVZfTk9FWENF UFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O3JldHVybiBldl9pc19hY3RpdmUgKHN0YXRpY19jYXN0Jmx0O2NvbnN0IGV2X3dhdGNoZXIgKiZn dDsodGhpcykpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7PGJyPi0gJm5ic3A7 ICZuYnNwO2Jvb2wgaXNfcGVuZGluZyAoKSBjb25zdCB0aHJvdyAoKTxicj4rICZuYnNwOyAmbmJz cDtib29sIGlzX3BlbmRpbmcgKCkgY29uc3QgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAm bmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiBldl9pc19wZW5kaW5n IChzdGF0aWNfY2FzdCZsdDtjb25zdCBldl93YXRjaGVyIComZ3Q7KHRoaXMpKTs8YnI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDt2b2lkIGZlZWRfZXZl bnQgKGludCByZXZlbnRzKSB0aHJvdyAoKTxicj4rICZuYnNwOyAmbmJzcDt2b2lkIGZlZWRfZXZl bnQgKGludCByZXZlbnRzKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+ Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfZmVlZF9ldmVudCAoRVZfQV8gc3RhdGljX2Nh c3QmbHQ7ZXZfd2F0Y2hlciAqJmd0Oyh0aGlzKSwgcmV2ZW50cyk7PGJyPiZuYnNwOyAmbmJzcDsg Jm5ic3A7fTxicj4mbmJzcDsgJm5ic3A7fTs8YnI+Jm5ic3A7PGJyPi0gJm5ic3A7aW5saW5lIHRz dGFtcCBub3cgKEVWX1ApIHRocm93ICgpPGJyPisgJm5ic3A7aW5saW5lIHRzdGFtcCBub3cgKEVW X1ApIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 cmV0dXJuIGV2X25vdyAoRVZfQSk7PGJyPiZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxicj4tICZu YnNwO2lubGluZSB2b2lkIGRlbGF5ICh0c3RhbXAgaW50ZXJ2YWwpIHRocm93ICgpPGJyPisgJm5i c3A7aW5saW5lIHZvaWQgZGVsYXkgKHRzdGFtcCBpbnRlcnZhbCkgRVZfTk9FWENFUFQ8YnI+Jm5i c3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtldl9zbGVlcCAoaW50ZXJ2YWwpOzxi cj4mbmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+LSAmbmJzcDtpbmxpbmUgaW50IHZlcnNpb25f bWFqb3IgKCkgdGhyb3cgKCk8YnI+KyAmbmJzcDtpbmxpbmUgaW50IHZlcnNpb25fbWFqb3IgKCkg RVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1 cm4gZXZfdmVyc2lvbl9tYWpvciAoKTs8YnI+Jm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7PGJyPi0g Jm5ic3A7aW5saW5lIGludCB2ZXJzaW9uX21pbm9yICgpIHRocm93ICgpPGJyPisgJm5ic3A7aW5s aW5lIGludCB2ZXJzaW9uX21pbm9yICgpIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJzcDt7PGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuIGV2X3ZlcnNpb25fbWlub3IgKCk7PGJyPiZuYnNw OyAmbmJzcDt9PGJyPiZuYnNwOzxicj4tICZuYnNwO2lubGluZSB1bnNpZ25lZCBpbnQgc3VwcG9y dGVkX2JhY2tlbmRzICgpIHRocm93ICgpPGJyPisgJm5ic3A7aW5saW5lIHVuc2lnbmVkIGludCBz dXBwb3J0ZWRfYmFja2VuZHMgKCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwO3s8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4gZXZfc3VwcG9ydGVkX2JhY2tlbmRzICgpOzxicj4mbmJz cDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+LSAmbmJzcDtpbmxpbmUgdW5zaWduZWQgaW50IHJlY29t bWVuZGVkX2JhY2tlbmRzICgpIHRocm93ICgpPGJyPisgJm5ic3A7aW5saW5lIHVuc2lnbmVkIGlu dCByZWNvbW1lbmRlZF9iYWNrZW5kcyAoKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDsgJm5ic3A7ezxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiBldl9yZWNvbW1lbmRlZF9iYWNrZW5kcyAoKTs8 YnI+Jm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7PGJyPi0gJm5ic3A7aW5saW5lIHVuc2lnbmVkIGlu dCBlbWJlZGRhYmxlX2JhY2tlbmRzICgpIHRocm93ICgpPGJyPisgJm5ic3A7aW5saW5lIHVuc2ln bmVkIGludCBlbWJlZGRhYmxlX2JhY2tlbmRzICgpIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJz cDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuIGV2X2VtYmVkZGFibGVfYmFja2VuZHMg KCk7PGJyPiZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxicj4tICZuYnNwO2lubGluZSB2b2lkIHNl dF9hbGxvY2F0b3IgKHZvaWQgKigqY2IpKHZvaWQgKnB0ciwgbG9uZyBzaXplKSB0aHJvdyAoKSkg dGhyb3cgKCk8YnI+KyAmbmJzcDtpbmxpbmUgdm9pZCBzZXRfYWxsb2NhdG9yICh2b2lkICooKmNi KSh2b2lkICpwdHIsIGxvbmcgc2l6ZSkgRVZfTk9FWENFUFQpIEVWX05PRVhDRVBUPGJyPiZuYnNw OyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfc2V0X2FsbG9jYXRvciAoY2IpOzxi cj4mbmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+LSAmbmJzcDtpbmxpbmUgdm9pZCBzZXRfc3lz ZXJyX2NiICh2b2lkICgqY2IpKGNvbnN0IGNoYXIgKm1zZykgdGhyb3cgKCkpIHRocm93ICgpPGJy PisgJm5ic3A7aW5saW5lIHZvaWQgc2V0X3N5c2Vycl9jYiAodm9pZCAoKmNiKShjb25zdCBjaGFy ICptc2cpIEVWX05PRVhDRVBUKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDsgJm5ic3A7ezxicj4mbmJz cDsgJm5ic3A7ICZuYnNwO2V2X3NldF9zeXNlcnJfY2IgKGNiKTs8YnI+Jm5ic3A7ICZuYnNwO308 YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsjaWYgRVZfTVVMVElQTElDSVRZPGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7I2RlZmluZSBFVl9DT05TVFJVQ1QoY3Bwc3RlbSxjc3RlbSkgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O1w8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwOyhFVl9QWCA9IGdldF9kZWZhdWx0X2xvb3AgKCkp IHRocm93ICgpICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1w8YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwOyhFVl9QWCA9IGdldF9kZWZhdWx0X2xvb3AgKCkpIEVWX05PRVhD RVBUICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgXDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7OiBiYXNlJmx0O2V2XyAjIyBjc3RlbSwgY3Bwc3RlbSZndDsgKEVWX0EpICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1w8YnI+Jm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7eyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgXDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOyAmbmJz cDsjZWxzZTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyNkZWZpbmUgRVZfQ09OU1RSVUNUKGNwcHN0 ZW0sY3N0ZW0pICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7IFw8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwOygpIHRocm93ICgpICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgXDxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7KCkgRVZfTk9FWENFUFQgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 XDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO308YnI+Jm5ic3A7ICZuYnNwOyNlbmRpZjxicj5AQCAtNTgxLDE5ICs1OTksMTkgQEAgbmFt ZXNwYWNlIGV2IHs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtcPGJyPiZuYnNwOyAm bmJzcDtzdHJ1Y3QgY3Bwc3RlbSA6IGJhc2UmbHQ7ZXZfICMjIGNzdGVtLCBjcHBzdGVtJmd0OyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1w8YnI+Jm5ic3A7ICZuYnNwO3sgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgXDxicj4tICZuYnNwOyAmbmJzcDt2b2lkIHN0YXJ0ICgpIHRocm93ICgpICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1w8YnI+KyAmbmJzcDsgJm5ic3A7dm9p ZCBzdGFydCAoKSBFVl9OT0VYQ0VQVCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgXDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtldl8gIyMgY3N0ZW0gIyMgX3N0YXJ0IChFVl9BXyBzdGF0aWNfY2FzdCZsdDtldl8gIyMgY3N0 ZW0gKiZndDsodGhpcykpOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7IFw8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgXDxicj4mbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO1w8YnI+LSAmbmJzcDsgJm5ic3A7dm9pZCBzdG9wICgpIHRo cm93ICgpICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJy PisgJm5ic3A7ICZuYnNwO3ZvaWQgc3RvcCAoKSBFVl9OT0VYQ0VQVCAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO1w8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgXDxicj4m bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl8gIyMgY3N0ZW0gIyMgX3N0b3AgKEVWX0FfIHN0 YXRpY19jYXN0Jmx0O2V2XyAjIyBjc3RlbSAqJmd0Oyh0aGlzKSk7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7XDxicj4mbmJzcDsg Jm5ic3A7ICZuYnNwO30gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyBcPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7XDxicj4m bmJzcDsgJm5ic3A7ICZuYnNwO2NwcHN0ZW0gRVZfQ09OU1RSVUNUKGNwcHN0ZW0sY3N0ZW0pICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnI+ Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtcPGJyPi0gJm5ic3A7ICZuYnNwO35jcHBzdGVt ICgpIHRocm93ICgpICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtcPGJyPisgJm5ic3A7ICZuYnNwO35jcHBzdGVtICgpIEVWX05PRVhDRVBUICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnI+Jm5ic3A7ICZuYnNwOyAmbmJz cDt7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgXDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtzdG9wICgpOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtcPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fSAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnI+QEAg LTYxMiwyMyArNjMwLDE5IEBAIG5hbWVzcGFjZSBldiB7PGJyPiZuYnNwOyAmbmJzcDt9Ozxicj4m bmJzcDs8YnI+Jm5ic3A7ICZuYnNwO0VWX0JFR0lOX1dBVENIRVIgKGlvLCBpbyk8YnI+LSAmbmJz cDsgJm5ic3A7dm9pZCBzZXQgKGludCBmZCwgaW50IGV2ZW50cykgdGhyb3cgKCk8YnI+KyAmbmJz cDsgJm5ic3A7dm9pZCBzZXQgKGludCBmZCwgaW50IGV2ZW50cykgRVZfTk9FWENFUFQ8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDt7PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDtpbnQgYWN0aXZlID0g aXNfYWN0aXZlICgpOzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGFjdGl2ZSkgc3RvcCAo KTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2ZyZWV6ZV9ndWFyZCBmcmVlemUgKHRoaXMpOzxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9pb19zZXQgKHN0YXRpY19jYXN0Jmx0O2V2 X2lvIComZ3Q7KHRoaXMpLCBmZCwgZXZlbnRzKTs8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwO2lm IChhY3RpdmUpIHN0YXJ0ICgpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7PGJy Pi0gJm5ic3A7ICZuYnNwO3ZvaWQgc2V0IChpbnQgZXZlbnRzKSB0aHJvdyAoKTxicj4rICZuYnNw OyAmbmJzcDt2b2lkIHNldCAoaW50IGV2ZW50cykgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDt7PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDtpbnQgYWN0aXZlID0gaXNfYWN0aXZl ICgpOzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGFjdGl2ZSkgc3RvcCAoKTs8YnI+LSAm bmJzcDsgJm5ic3A7ICZuYnNwO2V2X2lvX3NldCAoc3RhdGljX2Nhc3QmbHQ7ZXZfaW8gKiZndDso dGhpcyksIGZkLCBldmVudHMpOzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGFjdGl2ZSkg c3RhcnQgKCk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtmcmVlemVfZ3VhcmQgZnJlZXplICh0 aGlzKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X2lvX21vZGlmeSAoc3RhdGljX2Nhc3Qm bHQ7ZXZfaW8gKiZndDsodGhpcyksIGV2ZW50cyk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxi cj4mbmJzcDs8YnI+LSAmbmJzcDsgJm5ic3A7dm9pZCBzdGFydCAoaW50IGZkLCBpbnQgZXZlbnRz KSB0aHJvdyAoKTxicj4rICZuYnNwOyAmbmJzcDt2b2lkIHN0YXJ0IChpbnQgZmQsIGludCBldmVu dHMpIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDtzZXQgKGZkLCBldmVudHMpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtzdGFydCAoKTs8YnI+QEAgLTYzNiwyMSArNjUwLDE5IEBAIG5hbWVzcGFjZSBldiB7PGJy PiZuYnNwOyAmbmJzcDtFVl9FTkRfV0FUQ0hFUiAoaW8sIGlvKTxicj4mbmJzcDs8YnI+Jm5ic3A7 ICZuYnNwO0VWX0JFR0lOX1dBVENIRVIgKHRpbWVyLCB0aW1lcik8YnI+LSAmbmJzcDsgJm5ic3A7 dm9pZCBzZXQgKGV2X3RzdGFtcCBhZnRlciwgZXZfdHN0YW1wIHJlcGVhdCA9IDAuKSB0aHJvdyAo KTxicj4rICZuYnNwOyAmbmJzcDt2b2lkIHNldCAoZXZfdHN0YW1wIGFmdGVyLCBldl90c3RhbXAg cmVwZWF0ID0gMC4pIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4tICZu YnNwOyAmbmJzcDsgJm5ic3A7aW50IGFjdGl2ZSA9IGlzX2FjdGl2ZSAoKTs8YnI+LSAmbmJzcDsg Jm5ic3A7ICZuYnNwO2lmIChhY3RpdmUpIHN0b3AgKCk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJz cDtmcmVlemVfZ3VhcmQgZnJlZXplICh0aGlzKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ZXZfdGltZXJfc2V0IChzdGF0aWNfY2FzdCZsdDtldl90aW1lciAqJmd0Oyh0aGlzKSwgYWZ0 ZXIsIHJlcGVhdCk7PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoYWN0aXZlKSBzdGFydCAo KTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDt2 b2lkIHN0YXJ0IChldl90c3RhbXAgYWZ0ZXIsIGV2X3RzdGFtcCByZXBlYXQgPSAwLikgdGhyb3cg KCk8YnI+KyAmbmJzcDsgJm5ic3A7dm9pZCBzdGFydCAoZXZfdHN0YW1wIGFmdGVyLCBldl90c3Rh bXAgcmVwZWF0ID0gMC4pIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4m bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtzZXQgKGFmdGVyLCByZXBlYXQpOzxicj4mbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtzdGFydCAoKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJy PiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDt2b2lkIGFnYWluICgpIHRocm93ICgpPGJyPisgJm5i c3A7ICZuYnNwO3ZvaWQgYWdhaW4gKCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJz cDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3RpbWVyX2FnYWluIChFVl9BXyBz dGF0aWNfY2FzdCZsdDtldl90aW1lciAqJmd0Oyh0aGlzKSk7PGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7fTxicj5AQCAtNjYzLDIxICs2NzUsMTkgQEAgbmFtZXNwYWNlIGV2IHs8YnI+Jm5ic3A7PGJy PiZuYnNwOyAmbmJzcDsjaWYgRVZfUEVSSU9ESUNfRU5BQkxFPGJyPiZuYnNwOyAmbmJzcDtFVl9C RUdJTl9XQVRDSEVSIChwZXJpb2RpYywgcGVyaW9kaWMpPGJyPi0gJm5ic3A7ICZuYnNwO3ZvaWQg c2V0IChldl90c3RhbXAgYXQsIGV2X3RzdGFtcCBpbnRlcnZhbCA9IDAuKSB0aHJvdyAoKTxicj4r ICZuYnNwOyAmbmJzcDt2b2lkIHNldCAoZXZfdHN0YW1wIGF0LCBldl90c3RhbXAgaW50ZXJ2YWwg PSAwLikgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPi0gJm5ic3A7ICZu YnNwOyAmbmJzcDtpbnQgYWN0aXZlID0gaXNfYWN0aXZlICgpOzxicj4tICZuYnNwOyAmbmJzcDsg Jm5ic3A7aWYgKGFjdGl2ZSkgc3RvcCAoKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2ZyZWV6 ZV9ndWFyZCBmcmVlemUgKHRoaXMpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9w ZXJpb2RpY19zZXQgKHN0YXRpY19jYXN0Jmx0O2V2X3BlcmlvZGljIComZ3Q7KHRoaXMpLCBhdCwg aW50ZXJ2YWwsIDApOzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGFjdGl2ZSkgc3RhcnQg KCk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+LSAmbmJzcDsgJm5ic3A7 dm9pZCBzdGFydCAoZXZfdHN0YW1wIGF0LCBldl90c3RhbXAgaW50ZXJ2YWwgPSAwLikgdGhyb3cg KCk8YnI+KyAmbmJzcDsgJm5ic3A7dm9pZCBzdGFydCAoZXZfdHN0YW1wIGF0LCBldl90c3RhbXAg aW50ZXJ2YWwgPSAwLikgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3NldCAoYXQsIGludGVydmFsKTs8YnI+Jm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7c3RhcnQgKCk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4m bmJzcDs8YnI+LSAmbmJzcDsgJm5ic3A7dm9pZCBhZ2FpbiAoKSB0aHJvdyAoKTxicj4rICZuYnNw OyAmbmJzcDt2b2lkIGFnYWluICgpIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9wZXJpb2RpY19hZ2FpbiAoRVZfQV8g c3RhdGljX2Nhc3QmbHQ7ZXZfcGVyaW9kaWMgKiZndDsodGhpcykpOzxicj4mbmJzcDsgJm5ic3A7 ICZuYnNwO308YnI+QEAgLTY4NiwxNSArNjk2LDEzIEBAIG5hbWVzcGFjZSBldiB7PGJyPiZuYnNw Ozxicj4mbmJzcDsgJm5ic3A7I2lmIEVWX1NJR05BTF9FTkFCTEU8YnI+Jm5ic3A7ICZuYnNwO0VW X0JFR0lOX1dBVENIRVIgKHNpZywgc2lnbmFsKTxicj4tICZuYnNwOyAmbmJzcDt2b2lkIHNldCAo aW50IHNpZ251bSkgdGhyb3cgKCk8YnI+KyAmbmJzcDsgJm5ic3A7dm9pZCBzZXQgKGludCBzaWdu dW0pIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4tICZuYnNwOyAmbmJz cDsgJm5ic3A7aW50IGFjdGl2ZSA9IGlzX2FjdGl2ZSAoKTs8YnI+LSAmbmJzcDsgJm5ic3A7ICZu YnNwO2lmIChhY3RpdmUpIHN0b3AgKCk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtmcmVlemVf Z3VhcmQgZnJlZXplICh0aGlzKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfc2ln bmFsX3NldCAoc3RhdGljX2Nhc3QmbHQ7ZXZfc2lnbmFsIComZ3Q7KHRoaXMpLCBzaWdudW0pOzxi cj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGFjdGl2ZSkgc3RhcnQgKCk7PGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+LSAmbmJzcDsgJm5ic3A7dm9pZCBzdGFydCAoaW50 IHNpZ251bSkgdGhyb3cgKCk8YnI+KyAmbmJzcDsgJm5ic3A7dm9pZCBzdGFydCAoaW50IHNpZ251 bSkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwO3NldCAoc2lnbnVtKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 c3RhcnQgKCk7PGJyPkBAIC03MDQsMTUgKzcxMiwxMyBAQCBuYW1lc3BhY2UgZXYgezxicj4mbmJz cDs8YnI+Jm5ic3A7ICZuYnNwOyNpZiBFVl9DSElMRF9FTkFCTEU8YnI+Jm5ic3A7ICZuYnNwO0VW X0JFR0lOX1dBVENIRVIgKGNoaWxkLCBjaGlsZCk8YnI+LSAmbmJzcDsgJm5ic3A7dm9pZCBzZXQg KGludCBwaWQsIGludCB0cmFjZSA9IDApIHRocm93ICgpPGJyPisgJm5ic3A7ICZuYnNwO3ZvaWQg c2V0IChpbnQgcGlkLCBpbnQgdHJhY2UgPSAwKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDsgJm5ic3A7 ICZuYnNwO3s8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwO2ludCBhY3RpdmUgPSBpc19hY3RpdmUg KCk7PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoYWN0aXZlKSBzdG9wICgpOzxicj4rICZu YnNwOyAmbmJzcDsgJm5ic3A7ZnJlZXplX2d1YXJkIGZyZWV6ZSAodGhpcyk7PGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO2V2X2NoaWxkX3NldCAoc3RhdGljX2Nhc3QmbHQ7ZXZfY2hpbGQg KiZndDsodGhpcyksIHBpZCwgdHJhY2UpOzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGFj dGl2ZSkgc3RhcnQgKCk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+LSAm bmJzcDsgJm5ic3A7dm9pZCBzdGFydCAoaW50IHBpZCwgaW50IHRyYWNlID0gMCkgdGhyb3cgKCk8 YnI+KyAmbmJzcDsgJm5ic3A7dm9pZCBzdGFydCAoaW50IHBpZCwgaW50IHRyYWNlID0gMCkgRVZf Tk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO3NldCAocGlkLCB0cmFjZSk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0 YXJ0ICgpOzxicj5AQCAtNzIyLDIyICs3MjgsMjAgQEAgbmFtZXNwYWNlIGV2IHs8YnI+Jm5ic3A7 PGJyPiZuYnNwOyAmbmJzcDsjaWYgRVZfU1RBVF9FTkFCTEU8YnI+Jm5ic3A7ICZuYnNwO0VWX0JF R0lOX1dBVENIRVIgKHN0YXQsIHN0YXQpPGJyPi0gJm5ic3A7ICZuYnNwO3ZvaWQgc2V0IChjb25z dCBjaGFyICpwYXRoLCBldl90c3RhbXAgaW50ZXJ2YWwgPSAwLikgdGhyb3cgKCk8YnI+KyAmbmJz cDsgJm5ic3A7dm9pZCBzZXQgKGNvbnN0IGNoYXIgKnBhdGgsIGV2X3RzdGFtcCBpbnRlcnZhbCA9 IDAuKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+LSAmbmJzcDsgJm5i c3A7ICZuYnNwO2ludCBhY3RpdmUgPSBpc19hY3RpdmUgKCk7PGJyPi0gJm5ic3A7ICZuYnNwOyAm bmJzcDtpZiAoYWN0aXZlKSBzdG9wICgpOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ZnJlZXpl X2d1YXJkIGZyZWV6ZSAodGhpcyk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3N0 YXRfc2V0IChzdGF0aWNfY2FzdCZsdDtldl9zdGF0IComZ3Q7KHRoaXMpLCBwYXRoLCBpbnRlcnZh bCk7PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoYWN0aXZlKSBzdGFydCAoKTs8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDt2b2lkIHN0YXJ0 IChjb25zdCBjaGFyICpwYXRoLCBldl90c3RhbXAgaW50ZXJ2YWwgPSAwLikgdGhyb3cgKCk8YnI+ KyAmbmJzcDsgJm5ic3A7dm9pZCBzdGFydCAoY29uc3QgY2hhciAqcGF0aCwgZXZfdHN0YW1wIGlu dGVydmFsID0gMC4pIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtzdG9wICgpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtzZXQgKHBhdGgsIGludGVydmFsKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 c3RhcnQgKCk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+LSAmbmJzcDsg Jm5ic3A7dm9pZCB1cGRhdGUgKCkgdGhyb3cgKCk8YnI+KyAmbmJzcDsgJm5ic3A7dm9pZCB1cGRh dGUgKCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO2V2X3N0YXRfc3RhdCAoRVZfQV8gc3RhdGljX2Nhc3QmbHQ7ZXZfc3Rh dCAqJmd0Oyh0aGlzKSk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj5AQCAtNzQ2LDMzICs3 NTAsMzEgQEAgbmFtZXNwYWNlIGV2IHs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsjaWYgRVZf SURMRV9FTkFCTEU8YnI+Jm5ic3A7ICZuYnNwO0VWX0JFR0lOX1dBVENIRVIgKGlkbGUsIGlkbGUp PGJyPi0gJm5ic3A7ICZuYnNwO3ZvaWQgc2V0ICgpIHRocm93ICgpIHsgfTxicj4rICZuYnNwOyAm bmJzcDt2b2lkIHNldCAoKSBFVl9OT0VYQ0VQVCB7IH08YnI+Jm5ic3A7ICZuYnNwO0VWX0VORF9X QVRDSEVSIChpZGxlLCBpZGxlKTxicj4mbmJzcDsgJm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4m bmJzcDsgJm5ic3A7I2lmIEVWX1BSRVBBUkVfRU5BQkxFPGJyPiZuYnNwOyAmbmJzcDtFVl9CRUdJ Tl9XQVRDSEVSIChwcmVwYXJlLCBwcmVwYXJlKTxicj4tICZuYnNwOyAmbmJzcDt2b2lkIHNldCAo KSB0aHJvdyAoKSB7IH08YnI+KyAmbmJzcDsgJm5ic3A7dm9pZCBzZXQgKCkgRVZfTk9FWENFUFQg eyB9PGJyPiZuYnNwOyAmbmJzcDtFVl9FTkRfV0FUQ0hFUiAocHJlcGFyZSwgcHJlcGFyZSk8YnI+ Jm5ic3A7ICZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwOyNpZiBFVl9DSEVD S19FTkFCTEU8YnI+Jm5ic3A7ICZuYnNwO0VWX0JFR0lOX1dBVENIRVIgKGNoZWNrLCBjaGVjayk8 YnI+LSAmbmJzcDsgJm5ic3A7dm9pZCBzZXQgKCkgdGhyb3cgKCkgeyB9PGJyPisgJm5ic3A7ICZu YnNwO3ZvaWQgc2V0ICgpIEVWX05PRVhDRVBUIHsgfTxicj4mbmJzcDsgJm5ic3A7RVZfRU5EX1dB VENIRVIgKGNoZWNrLCBjaGVjayk8YnI+Jm5ic3A7ICZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+ Jm5ic3A7ICZuYnNwOyNpZiBFVl9FTUJFRF9FTkFCTEU8YnI+Jm5ic3A7ICZuYnNwO0VWX0JFR0lO X1dBVENIRVIgKGVtYmVkLCBlbWJlZCk8YnI+LSAmbmJzcDsgJm5ic3A7dm9pZCBzZXRfZW1iZWQg KHN0cnVjdCBldl9sb29wICplbWJlZGRlZF9sb29wKSB0aHJvdyAoKTxicj4rICZuYnNwOyAmbmJz cDt2b2lkIHNldF9lbWJlZCAoc3RydWN0IGV2X2xvb3AgKmVtYmVkZGVkX2xvb3ApIEVWX05PRVhD RVBUPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7aW50 IGFjdGl2ZSA9IGlzX2FjdGl2ZSAoKTs8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChhY3Rp dmUpIHN0b3AgKCk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtmcmVlemVfZ3VhcmQgZnJlZXpl ICh0aGlzKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfZW1iZWRfc2V0IChzdGF0 aWNfY2FzdCZsdDtldl9lbWJlZCAqJmd0Oyh0aGlzKSwgZW1iZWRkZWRfbG9vcCk7PGJyPi0gJm5i c3A7ICZuYnNwOyAmbmJzcDtpZiAoYWN0aXZlKSBzdGFydCAoKTs8YnI+Jm5ic3A7ICZuYnNwOyAm bmJzcDt9PGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDt2b2lkIHN0YXJ0IChzdHJ1Y3QgZXZf bG9vcCAqZW1iZWRkZWRfbG9vcCkgdGhyb3cgKCk8YnI+KyAmbmJzcDsgJm5ic3A7dm9pZCBzdGFy dCAoc3RydWN0IGV2X2xvb3AgKmVtYmVkZGVkX2xvb3ApIEVWX05PRVhDRVBUPGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtzZXQgKGVtYmVkZGVk X2xvb3ApOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtzdGFydCAoKTs8YnI+QEAgLTc4 NywxOCArNzg5LDE4IEBAIG5hbWVzcGFjZSBldiB7PGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7 I2lmIEVWX0ZPUktfRU5BQkxFPGJyPiZuYnNwOyAmbmJzcDtFVl9CRUdJTl9XQVRDSEVSIChmb3Jr LCBmb3JrKTxicj4tICZuYnNwOyAmbmJzcDt2b2lkIHNldCAoKSB0aHJvdyAoKSB7IH08YnI+KyAm bmJzcDsgJm5ic3A7dm9pZCBzZXQgKCkgRVZfTk9FWENFUFQgeyB9PGJyPiZuYnNwOyAmbmJzcDtF Vl9FTkRfV0FUQ0hFUiAoZm9yaywgZm9yayk8YnI+Jm5ic3A7ICZuYnNwOyNlbmRpZjxicj4mbmJz cDs8YnI+Jm5ic3A7ICZuYnNwOyNpZiBFVl9BU1lOQ19FTkFCTEU8YnI+Jm5ic3A7ICZuYnNwO0VW X0JFR0lOX1dBVENIRVIgKGFzeW5jLCBhc3luYyk8YnI+LSAmbmJzcDsgJm5ic3A7dm9pZCBzZW5k ICgpIHRocm93ICgpPGJyPisgJm5ic3A7ICZuYnNwO3ZvaWQgc2VuZCAoKSBFVl9OT0VYQ0VQVDxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZf YXN5bmNfc2VuZCAoRVZfQV8gc3RhdGljX2Nhc3QmbHQ7ZXZfYXN5bmMgKiZndDsodGhpcykpOzxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7PGJyPi0gJm5ic3A7ICZuYnNwO2Jvb2wg YXN5bmNfcGVuZGluZyAoKSB0aHJvdyAoKTxicj4rICZuYnNwOyAmbmJzcDtib29sIGFzeW5jX3Bl bmRpbmcgKCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiBldl9hc3luY19wZW5kaW5nIChzdGF0aWNfY2FzdCZs dDtldl9hc3luYyAqJmd0Oyh0aGlzKSk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj5kaWZm IC0tZ2l0IGEvdGhpcmRfcGFydHkvbGliZXYvZXYuMyBiL3RoaXJkX3BhcnR5L2xpYmV2L2V2LjM8 YnI+aW5kZXggNWIyNTk5ZTliLi45ODVhZjg1NGMgMTAwNjQ0PGJyPi0tLSBhL3RoaXJkX3BhcnR5 L2xpYmV2L2V2LjM8YnI+KysrIGIvdGhpcmRfcGFydHkvbGliZXYvZXYuMzxicj5AQCAtMSw0ICsx LDQgQEA8YnI+LS5cIiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBQb2Q6Ok1hbiAyLjI4IChQ b2Q6OlNpbXBsZSAzLjMwKTxicj4rLlwiIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IFBvZDo6 TWFuIDQuMTEgKFBvZDo6U2ltcGxlIDMuMzUpPGJyPiZuYnNwOy5cIjxicj4mbmJzcDsuXCIgU3Rh bmRhcmQgcHJlYW1ibGU6PGJyPiZuYnNwOy5cIiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT08YnI+QEAgLTQ2LDcg KzQ2LDcgQEA8YnI+Jm5ic3A7LmllIFxuKC5nIC5kcyBBcSBcKGFxPGJyPiZuYnNwOy5lbCAmbmJz cDsgJm5ic3A7ICZuYnNwOyAuZHMgQXEgJzxicj4mbmJzcDsuXCI8YnI+LS5cIiBJZiB0aGUgRiBy ZWdpc3RlciBpcyB0dXJuZWQgb24sIHdlJ2xsIGdlbmVyYXRlIGluZGV4IGVudHJpZXMgb24gc3Rk ZXJyIGZvcjxicj4rLlwiIElmIHRoZSBGIHJlZ2lzdGVyIGlzICZndDswLCB3ZSdsbCBnZW5lcmF0 ZSBpbmRleCBlbnRyaWVzIG9uIHN0ZGVyciBmb3I8YnI+Jm5ic3A7LlwiIHRpdGxlcyAoLlRIKSwg aGVhZGVycyAoLlNIKSwgc3Vic2VjdGlvbnMgKC5TUyksIGl0ZW1zICguSXApLCBhbmQgaW5kZXg8 YnI+Jm5ic3A7LlwiIGVudHJpZXMgbWFya2VkIHdpdGggWCZsdDsmZ3Q7IGluIFBPRC4gJm5ic3A7 T2YgY291cnNlLCB5b3UnbGwgaGF2ZSB0byBwcm9jZXNzIHRoZTxicj4mbmJzcDsuXCIgb3V0cHV0 IHlvdXJzZWxmIGluIHNvbWUgbWVhbmluZ2Z1bCBmYXNoaW9uLjxicj5AQCAtNTYsMTIgKzU2LDEy IEBAPGJyPiZuYnNwOy4uPGJyPiZuYnNwOy5uciByRiAwPGJyPiZuYnNwOy5pZiBcbiguZyAuaWYg ckYgLm5yIHJGIDE8YnI+LS5pZiAoXG4ockY6KFxuKC5nPT0wKSkgXHs8YnI+LS4gJm5ic3A7ICZu YnNwO2lmIFxuRiBcezxicj4rLmlmIChcbihyRjooXG4oLmc9PTApKSBce1w8YnI+Ky4gJm5ic3A7 ICZuYnNwO2lmIFxuRiBce1w8YnI+Jm5ic3A7LiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtk ZSBJWDxicj4mbmJzcDsuICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3RtIEluZGV4OlxcJDFc dFxcbiVcdCJcXCQyIjxicj4mbmJzcDsuLjxicj4tLiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtpZiAhXG5GPT0yIFx7PGJyPisuICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmICFcbkY9 PTIgXHtcPGJyPiZuYnNwOy4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtuciAlIDA8YnI+Jm5ic3A7LiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO25yIEYgMjxicj4mbmJzcDsuICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1x9PGJyPkBA IC0xMzMsNyArMTMzLDcgQEA8YnI+Jm5ic3A7LlwiID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PTxicj4mbmJzcDsu XCI8YnI+Jm5ic3A7LklYIFRpdGxlICJMSUJFViAzIjxicj4tLlRIIExJQkVWIDMgIjIwMTYtMTEt MTYiICJsaWJldi00LjIzIiAibGliZXYgLSBoaWdoIHBlcmZvcm1hbmNlIGZ1bGwgZmVhdHVyZWQg ZXZlbnQgbG9vcCI8YnI+Ky5USCBMSUJFViAzICIyMDIwLTAxLTIyIiAibGliZXYtNC4zMSIgImxp YmV2IC0gaGlnaCBwZXJmb3JtYW5jZSBmdWxsIGZlYXR1cmVkIGV2ZW50IGxvb3AiPGJyPiZuYnNw Oy5cIiBGb3IgbnJvZmYsIHR1cm4gb2ZmIGp1c3RpZmljYXRpb24uICZuYnNwO0Fsd2F5cyB0dXJu IG9mZiBoeXBoZW5hdGlvbjsgaXQgbWFrZXM8YnI+Jm5ic3A7LlwiIHdheSB0b28gbWFueSBtaXN0 YWtlcyBpbiB0ZWNobmljYWwgZG9jdW1lbnRzLjxicj4mbmJzcDsuaWYgbiAuYWQgbDxicj5AQCAt MjQyLDEwICsyNDIsMTAgQEAgZGV0YWlscyBvZiB0aGUgZXZlbnQsIGFuZCB0aGVuIGhhbmQgaXQg b3ZlciB0byBsaWJldiBieSBcZklzdGFydGluZ1xmUiB0aGU8YnI+Jm5ic3A7d2F0Y2hlci48YnI+ Jm5ic3A7LlNTICJccy0xRkVBVFVSRVNcczAiPGJyPiZuYnNwOy5JWCBTdWJzZWN0aW9uICJGRUFU VVJFUyI8YnI+LUxpYmV2IHN1cHBvcnRzIFxmKENXXCooQ2BzZWxlY3RcKihDJ1xmUiwgXGYoQ1dc KihDYHBvbGxcKihDJ1xmUiwgdGhlIExpbnV4LXNwZWNpZmljIFxmKENXXCooQ2BlcG9sbFwqKEMn XGZSLCB0aGU8YnI+LUJTRC1zcGVjaWZpYyBcZihDV1wqKENga3F1ZXVlXCooQydcZlIgYW5kIHRo ZSBTb2xhcmlzLXNwZWNpZmljIGV2ZW50IHBvcnQgbWVjaGFuaXNtczxicj4tZm9yIGZpbGUgZGVz Y3JpcHRvciBldmVudHMgKFxmKENXXCooQ2Bldl9pb1wqKEMnXGZSKSwgdGhlIExpbnV4IFxmKENX XCooQ2Bpbm90aWZ5XCooQydcZlIgaW50ZXJmYWNlPGJyPi0oZm9yIFxmKENXXCooQ2Bldl9zdGF0 XCooQydcZlIpLCBMaW51eCBldmVudGZkL3NpZ25hbGZkIChmb3IgZmFzdGVyIGFuZCBjbGVhbmVy PGJyPitMaWJldiBzdXBwb3J0cyBcZihDV1wqKENgc2VsZWN0XCooQydcZlIsIFxmKENXXCooQ2Bw b2xsXCooQydcZlIsIHRoZSBMaW51eC1zcGVjaWZpYyBhaW8gYW5kIFxmKENXXCooQ2BlcG9sbFwq KEMnXGZSPGJyPitpbnRlcmZhY2VzLCB0aGUgQlNELXNwZWNpZmljIFxmKENXXCooQ2BrcXVldWVc KihDJ1xmUiBhbmQgdGhlIFNvbGFyaXMtc3BlY2lmaWMgZXZlbnQgcG9ydDxicj4rbWVjaGFuaXNt cyBmb3IgZmlsZSBkZXNjcmlwdG9yIGV2ZW50cyAoXGYoQ1dcKihDYGV2X2lvXCooQydcZlIpLCB0 aGUgTGludXggXGYoQ1dcKihDYGlub3RpZnlcKihDJ1xmUjxicj4raW50ZXJmYWNlIChmb3IgXGYo Q1dcKihDYGV2X3N0YXRcKihDJ1xmUiksIExpbnV4IGV2ZW50ZmQvc2lnbmFsZmQgKGZvciBmYXN0 ZXIgYW5kIGNsZWFuZXI8YnI+Jm5ic3A7aW50ZXItdGhyZWFkIHdha2V1cCAoXGYoQ1dcKihDYGV2 X2FzeW5jXCooQydcZlIpL3NpZ25hbCBoYW5kbGluZyAoXGYoQ1dcKihDYGV2X3NpZ25hbFwqKEMn XGZSKSkgcmVsYXRpdmU8YnI+Jm5ic3A7dGltZXJzIChcZihDV1wqKENgZXZfdGltZXJcKihDJ1xm UiksIGFic29sdXRlIHRpbWVycyB3aXRoIGN1c3RvbWlzZWQgcmVzY2hlZHVsaW5nPGJyPiZuYnNw OyhcZihDV1wqKENgZXZfcGVyaW9kaWNcKihDJ1xmUiksIHN5bmNocm9ub3VzIHNpZ25hbHMgKFxm KENXXCooQ2Bldl9zaWduYWxcKihDJ1xmUiksIHByb2Nlc3Mgc3RhdHVzPGJyPkBAIC0yOTMsOSAr MjkzLDEzIEBAIGl0IHdpbGwgcHJpbnQgYSBkaWFnbm9zdGljIG1lc3NhZ2UgYW5kIGFib3J0ICh2 aWEgdGhlIFxmKENXXCooQ2Bhc3NlcnRcKihDJ1xmUiBtPGJyPiZuYnNwO3NvIFxmKENXXCooQ2BO REVCVUdcKihDJ1xmUiB3aWxsIGRpc2FibGUgdGhpcyBjaGVja2luZyk6IHRoZXNlIGFyZSBwcm9n cmFtbWluZyBlcnJvcnMgaW48YnI+Jm5ic3A7dGhlIGxpYmV2IGNhbGxlciBhbmQgbmVlZCB0byBi ZSBmaXhlZCB0aGVyZS48YnI+Jm5ic3A7LlBQPGJyPi1MaWJldiBhbHNvIGhhcyBhIGZldyBpbnRl cm5hbCBlcnJvci1jaGVja2luZyBcZihDV1wqKENgYXNzZXJ0XCooQydcZlJpb25zLCBhbmQgYWxz byBoYXM8YnI+LWV4dGVuc2l2ZSBjb25zaXN0ZW5jeSBjaGVja2luZyBjb2RlLiBUaGVzZSBkbyBu b3QgdHJpZ2dlciB1bmRlciBub3JtYWw8YnI+LWNpcmN1bXN0YW5jZXMsIGFzIHRoZXkgaW5kaWNh dGUgZWl0aGVyIGEgYnVnIGluIGxpYmV2IG9yIHdvcnNlLjxicj4rVmlhIHRoZSBcZihDV1wqKENg RVZfRlJFUVVFTlRcKihDJ1xmUiBtYWNybyB5b3UgY2FuIGNvbXBpbGUgaW4gYW5kL29yIGVuYWJs ZSBleHRlbnNpdmU8YnI+K2NvbnNpc3RlbmN5IGNoZWNraW5nIGNvZGUgaW5zaWRlIGxpYmV2IHRo YXQgY2FuIGJlIHVzZWQgdG8gY2hlY2sgZm9yPGJyPitpbnRlcm5hbCBpbmNvbnNpc3RlbmNpZXMs IHN1dWFsbHkgY2F1c2VkIGJ5IGFwcGxpY2F0aW9uIGJ1Z3MuPGJyPisuUFA8YnI+K0xpYmV2IGFs c28gaGFzIGEgZmV3IGludGVybmFsIGVycm9yLWNoZWNraW5nIFxmKENXXCooQ2Bhc3NlcnRcKihD J1xmUmlvbnMuIFRoZXNlIGRvIG5vdDxicj4rdHJpZ2dlciB1bmRlciBub3JtYWwgY2lyY3Vtc3Rh bmNlcywgYXMgdGhleSBpbmRpY2F0ZSBlaXRoZXIgYSBidWcgaW4gbGliZXY8YnI+K29yIHdvcnNl Ljxicj4mbmJzcDsuU0ggIkdMT0JBTCBGVU5DVElPTlMiPGJyPiZuYnNwOy5JWCBIZWFkZXIgIkdM T0JBTCBGVU5DVElPTlMiPGJyPiZuYnNwO1RoZXNlIGZ1bmN0aW9ucyBjYW4gYmUgY2FsbGVkIGFu eXRpbWUsIGV2ZW4gYmVmb3JlIGluaXRpYWxpc2luZyB0aGU8YnI+QEAgLTM5NCwxMyArMzk4LDM1 IEBAIFlvdSBjb3VsZCBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIGluIGhpZ2gtYXZhaWxhYmlsaXR5 IHByb2dyYW1zIHRvLCBzYXksPGJyPiZuYnNwO2ZyZWUgc29tZSBtZW1vcnkgaWYgaXQgY2Fubm90 IGFsbG9jYXRlIG1lbW9yeSwgdG8gdXNlIGEgc3BlY2lhbCBhbGxvY2F0b3IsPGJyPiZuYnNwO29y IGV2ZW4gdG8gc2xlZXAgYSB3aGlsZSBhbmQgcmV0cnkgdW50aWwgc29tZSBtZW1vcnkgaXMgYXZh aWxhYmxlLjxicj4mbmJzcDsuU3A8YnI+K0V4YW1wbGU6IFRoZSBmb2xsb3dpbmcgaXMgdGhlIFxm KENXXCooQ2ByZWFsbG9jXCooQydcZlIgZnVuY3Rpb24gdGhhdCBsaWJldiBpdHNlbGYgdXNlczxi cj4rd2hpY2ggc2hvdWxkIHdvcmsgd2l0aCBcZihDV1wqKENgcmVhbGxvY1wqKEMnXGZSIGFuZCBc ZihDV1wqKENgZnJlZVwqKEMnXGZSIGZ1bmN0aW9ucyBvZiBhbGwga2luZHMgYW5kPGJyPitpcyBw cm9iYWJseSBhIGdvb2QgYmFzaXMgZm9yIHlvdXIgb3duIGltcGxlbWVudGF0aW9uLjxicj4rLlNw PGJyPisuVmIgNTxicj4rXCZhbXA7ICZuYnNwOyBzdGF0aWMgdm9pZCAqPGJyPitcJmFtcDsgJm5i c3A7IGV2X3JlYWxsb2NfZW11bCAodm9pZCAqcHRyLCBsb25nIHNpemUpIEVWX05PRVhDRVBUPGJy PitcJmFtcDsgJm5ic3A7IHs8YnI+K1wmYW1wOyAmbmJzcDsgJm5ic3A7IGlmIChzaXplKTxicj4r XCZhbXA7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHJldHVybiByZWFsbG9jIChwdHIsIHNpemUpOzxi cj4rXCZhbXA7PGJyPitcJmFtcDsgJm5ic3A7ICZuYnNwOyBmcmVlIChwdHIpOzxicj4rXCZhbXA7 ICZuYnNwOyAmbmJzcDsgcmV0dXJuIDA7PGJyPitcJmFtcDsgJm5ic3A7IH08YnI+Ky5WZTxicj4r LlNwPGJyPiZuYnNwO0V4YW1wbGU6IFJlcGxhY2UgdGhlIGxpYmV2IGFsbG9jYXRvciB3aXRoIG9u ZSB0aGF0IHdhaXRzIGEgYml0IGFuZCB0aGVuPGJyPi1yZXRyaWVzIChleGFtcGxlIHJlcXVpcmVz IGEgc3RhbmRhcmRzLWNvbXBsaWFudCBcZihDV1wqKENgcmVhbGxvY1wqKEMnXGZSKS48YnI+K3Jl dHJpZXMuPGJyPiZuYnNwOy5TcDxicj4tLlZiIDY8YnI+Ky5WYiA4PGJyPiZuYnNwO1wmYW1wOyAm bmJzcDsgc3RhdGljIHZvaWQgKjxicj4mbmJzcDtcJmFtcDsgJm5ic3A7IHBlcnNpc3RlbnRfcmVh bGxvYyAodm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSk8YnI+Jm5ic3A7XCZhbXA7ICZuYnNwOyB7PGJy PitcJmFtcDsgJm5ic3A7ICZuYnNwOyBpZiAoIXNpemUpPGJyPitcJmFtcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgezxicj4rXCZhbXA7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBmcmVlIChw dHIpOzxicj4rXCZhbXA7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyByZXR1cm4gMDs8YnI+ K1wmYW1wOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB9PGJyPitcJmFtcDs8YnI+Jm5ic3A7XCZhbXA7 ICZuYnNwOyAmbmJzcDsgZm9yICg7Oyk8YnI+Jm5ic3A7XCZhbXA7ICZuYnNwOyAmbmJzcDsgJm5i c3A7IHs8YnI+Jm5ic3A7XCZhbXA7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB2b2lkICpu ZXdwdHIgPSByZWFsbG9jIChwdHIsIHNpemUpOzxicj5AQCAtNTM4LDkgKzU2NCwxMCBAQCBtYWtl IGxpYmV2IGNoZWNrIGZvciBhIGZvcmsgaW4gZWFjaCBpdGVyYXRpb24gYnkgZW5hYmxpbmcgdGhp cyBmbGFnLjxicj4mbmJzcDtUaGlzIHdvcmtzIGJ5IGNhbGxpbmcgXGYoQ1dcKihDYGdldHBpZCAo KVwqKEMnXGZSIG9uIGV2ZXJ5IGl0ZXJhdGlvbiBvZiB0aGUgbG9vcCw8YnI+Jm5ic3A7YW5kIHRo dXMgdGhpcyBtaWdodCBzbG93IGRvd24geW91ciBldmVudCBsb29wIGlmIHlvdSBkbyBhIGxvdCBv ZiBsb29wPGJyPiZuYnNwO2l0ZXJhdGlvbnMgYW5kIGxpdHRsZSByZWFsIHdvcmssIGJ1dCBpcyB1 c3VhbGx5IG5vdCBub3RpY2VhYmxlIChvbiBteTxicj4tR05VL0xpbnV4IHN5c3RlbSBmb3IgZXhh bXBsZSwgXGYoQ1dcKihDYGdldHBpZFwqKEMnXGZSIGlzIGFjdHVhbGx5IGEgc2ltcGxlIDVcLWlu c24gc2VxdWVuY2U8YnI+LXdpdGhvdXQgYSBzeXN0ZW0gY2FsbCBhbmQgdGh1cyBcZkl2ZXJ5XGZS IGZhc3QsIGJ1dCBteSBHTlUvTGludXggc3lzdGVtIGFsc28gaGFzPGJyPi1cJmFtcDtcZihDV1wq KENgcHRocmVhZF9hdGZvcmtcKihDJ1xmUiB3aGljaCBpcyBldmVuIGZhc3RlcikuPGJyPitHTlUv TGludXggc3lzdGVtIGZvciBleGFtcGxlLCBcZihDV1wqKENgZ2V0cGlkXCooQydcZlIgaXMgYWN0 dWFsbHkgYSBzaW1wbGUgNVwtaW5zbjxicj4rc2VxdWVuY2Ugd2l0aG91dCBhIHN5c3RlbSBjYWxs IGFuZCB0aHVzIFxmSXZlcnlcZlIgZmFzdCwgYnV0IG15IEdOVS9MaW51eDxicj4rc3lzdGVtIGFs c28gaGFzIFxmKENXXCooQ2BwdGhyZWFkX2F0Zm9ya1wqKEMnXGZSIHdoaWNoIGlzIGV2ZW4gZmFz dGVyKS4gKFVwZGF0ZTogZ2xpYmM8YnI+K3ZlcnNpb25zIDIuMjUgYXBwYXJlbnRseSByZW1vdmVk IHRoZSBcZihDV1wqKENgZ2V0cGlkXCooQydcZlIgb3B0aW1pc2F0aW9uIGFnYWluKS48YnI+Jm5i c3A7LlNwPGJyPiZuYnNwO1RoZSBiaWcgYWR2YW50YWdlIG9mIHRoaXMgZmxhZyBpcyB0aGF0IHlv dSBjYW4gZm9yZ2V0IGFib3V0IGZvcmsgKGFuZDxicj4mbmJzcDtmb3JnZXQgYWJvdXQgZm9yZ2V0 dGluZyB0byB0ZWxsIGxpYmV2IGFib3V0IGZvcmtpbmcsIGFsdGhvdWdoIHlvdSBzdGlsbDxicj5A QCAtNTgxLDEyICs2MDgsMjEgQEAgdW5ibG9ja2luZyB0aGUgc2lnbmFscy48YnI+Jm5ic3A7LlNw PGJyPiZuYnNwO0l0J3MgYWxzbyByZXF1aXJlZCBieSBccy0xUE9TSVhcczAgaW4gYSB0aHJlYWRl ZCBwcm9ncmFtLCBhcyBsaWJldiBjYWxsczxicj4mbmJzcDtcJmFtcDtcZihDV1wqKENgc2lncHJv Y21hc2tcKihDJ1xmUiwgd2hvc2UgYmVoYXZpb3VyIGlzIG9mZmljaWFsbHkgdW5zcGVjaWZpZWQu PGJyPi0uU3A8YnI+LVRoaXMgZmxhZydzIGJlaGF2aW91ciB3aWxsIGJlY29tZSB0aGUgZGVmYXVs dCBpbiBmdXR1cmUgdmVyc2lvbnMgb2YgbGliZXYuPGJyPisuaWUgbiAuSVAgIiIiRVZGTEFHX05P VElNRVJGRCIiIiA0PGJyPisuZWwgLklQICJcZihDV0VWRkxBR19OT1RJTUVSRkRcZlIiIDQ8YnI+ Ky5JWCBJdGVtICJFVkZMQUdfTk9USU1FUkZEIjxicj4rV2hlbiB0aGlzIGZsYWcgaXMgc3BlY2lm aWVkLCB0aGUgbGliZXYgd2lsbCBhdm9pZCB1c2luZyBhIFxmKENXXCooQ2B0aW1lcmZkXCooQydc ZlIgdG88YnI+K2RldGVjdCB0aW1lIGp1bXBzLiBJdCB3aWxsIHN0aWxsIGJlIGFibGUgdG8gZGV0 ZWN0IHRpbWUganVtcHMsIGJ1dCB0YWtlczxicj4rbG9uZ2VyIGFuZCBoYXMgYSBsb3dlciBhY2N1 cmFjeSBpbiBkb2luZyBzbywgYnV0IHNhdmVzIGEgZmlsZSBkZXNjcmlwdG9yPGJyPitwZXIgbG9v cC48YnI+Ky5TcDxicj4rVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb25seSB0cmllcyB0byB1 c2UgYSBcZihDV1wqKENgdGltZXJmZFwqKEMnXGZSIHdoZW4gdGhlIGZpcnN0PGJyPitcJmFtcDtc ZihDV1wqKENgZXZfcGVyaW9kaWNcKihDJ1xmUiB3YXRjaGVyIGlzIHN0YXJ0ZWQgYW5kIGZhbGxz IGJhY2sgb24gb3RoZXIgbWV0aG9kcyBpZiBpdDxicj4rY2Fubm90IGJlIGNyZWF0ZWQsIGJ1dCB0 aGlzIGJlaGF2aW91ciBtaWdodCBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS48YnI+Jm5ic3A7LmllIG4g LklQICIiIkVWQkFDS0VORF9TRUxFQ1QiIiAmbmJzcDsodmFsdWUgMSwgcG9ydGFibGUgc2VsZWN0 IGJhY2tlbmQpIiA0PGJyPiZuYnNwOy5lbCAuSVAgIlxmKENXRVZCQUNLRU5EX1NFTEVDVFxmUiAm bmJzcDsodmFsdWUgMSwgcG9ydGFibGUgc2VsZWN0IGJhY2tlbmQpIiA0PGJyPiZuYnNwOy5JWCBJ dGVtICJFVkJBQ0tFTkRfU0VMRUNUICh2YWx1ZSAxLCBwb3J0YWJsZSBzZWxlY3QgYmFja2VuZCki PGJyPi1UaGlzIGlzIHlvdXIgc3RhbmRhcmQgXGZJc2VsZWN0XGZSXHwoMikgYmFja2VuZC4gTm90 IFxmSWNvbXBsZXRlbHlcZlIgc3RhbmRhcmQsIGFzPGJyPitUaGlzIGlzIHlvdXIgc3RhbmRhcmQg XGZCc2VsZWN0XGZSXHwoMikgYmFja2VuZC4gTm90IFxmSWNvbXBsZXRlbHlcZlIgc3RhbmRhcmQs IGFzPGJyPiZuYnNwO2xpYmV2IHRyaWVzIHRvIHJvbGwgaXRzIG93biBmZF9zZXQgd2l0aCBubyBs aW1pdHMgb24gdGhlIG51bWJlciBvZiBmZHMsPGJyPiZuYnNwO2J1dCBpZiB0aGF0IGZhaWxzLCBl eHBlY3QgYSBmYWlybHkgbG93IGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgZmRzIHdoZW48YnI+Jm5i c3A7dXNpbmcgdGhpcyBiYWNrZW5kLiBJdCBkb2Vzbid0IHNjYWxlIHRvbyB3ZWxsIChPKGhpZ2hl c3RfZmQpKSwgYnV0IGl0czxicj5AQCAtNjA1LDcgKzY0MSw3IEBAIFRoaXMgYmFja2VuZCBtYXBz IFxmKENXXCooQ2BFVl9SRUFEXCooQydcZlIgdG8gdGhlIFxmKENXXCooQ2ByZWFkZmRzXCooQydc ZlIgc2V0PGJyPiZuYnNwOy5pZSBuIC5JUCAiIiJFVkJBQ0tFTkRfUE9MTCIiICZuYnNwOyAmbmJz cDsodmFsdWUgMiwgcG9sbCBiYWNrZW5kLCBhdmFpbGFibGUgZXZlcnl3aGVyZSBleGNlcHQgb24g d2luZG93cykiIDQ8YnI+Jm5ic3A7LmVsIC5JUCAiXGYoQ1dFVkJBQ0tFTkRfUE9MTFxmUiAmbmJz cDsgJm5ic3A7KHZhbHVlIDIsIHBvbGwgYmFja2VuZCwgYXZhaWxhYmxlIGV2ZXJ5d2hlcmUgZXhj ZXB0IG9uIHdpbmRvd3MpIiA0PGJyPiZuYnNwOy5JWCBJdGVtICJFVkJBQ0tFTkRfUE9MTCAodmFs dWUgMiwgcG9sbCBiYWNrZW5kLCBhdmFpbGFibGUgZXZlcnl3aGVyZSBleGNlcHQgb24gd2luZG93 cykiPGJyPi1BbmQgdGhpcyBpcyB5b3VyIHN0YW5kYXJkIFxmSXBvbGxcZlJcfCgyKSBiYWNrZW5k LiBJdCdzIG1vcmUgY29tcGxpY2F0ZWQ8YnI+K0FuZCB0aGlzIGlzIHlvdXIgc3RhbmRhcmQgXGZC cG9sbFxmUlx8KDIpIGJhY2tlbmQuIEl0J3MgbW9yZSBjb21wbGljYXRlZDxicj4mbmJzcDt0aGFu IHNlbGVjdCwgYnV0IGhhbmRsZXMgc3BhcnNlIGZkcyBiZXR0ZXIgYW5kIGhhcyBubyBhcnRpZmlj aWFsPGJyPiZuYnNwO2xpbWl0IG9uIHRoZSBudW1iZXIgb2YgZmRzIHlvdSBjYW4gdXNlIChleGNl cHQgaXQgd2lsbCBzbG93IGRvd248YnI+Jm5ic3A7Y29uc2lkZXJhYmx5IHdpdGggYSBsb3Qgb2Yg aW5hY3RpdmUgZmRzKS4gSXQgc2NhbGVzIHNpbWlsYXJseSB0byBzZWxlY3QsPGJyPkBAIC02MTcs NyArNjUzLDcgQEAgVGhpcyBiYWNrZW5kIG1hcHMgXGYoQ1dcKihDYEVWX1JFQURcKihDJ1xmUiB0 byBcZihDV1wqKENgUE9MTElOIHwgUE9MTEVSUiB8IFBPTEw8YnI+Jm5ic3A7LmllIG4gLklQICIi IkVWQkFDS0VORF9FUE9MTCIiICZuYnNwOyAodmFsdWUgNCwgTGludXgpIiA0PGJyPiZuYnNwOy5l bCAuSVAgIlxmKENXRVZCQUNLRU5EX0VQT0xMXGZSICZuYnNwOyAodmFsdWUgNCwgTGludXgpIiA0 PGJyPiZuYnNwOy5JWCBJdGVtICJFVkJBQ0tFTkRfRVBPTEwgKHZhbHVlIDQsIExpbnV4KSI8YnI+ LVVzZSB0aGUgbGludXgtc3BlY2lmaWMgXGZJZXBvbGxcZlJcfCg3KSBpbnRlcmZhY2UgKGZvciBi b3RoIHByZVwtIGFuZCBwb3N0XC0yLjYuOTxicj4rVXNlIHRoZSBMaW51eC1zcGVjaWZpYyBcZkJl cG9sbFxmUlx8KDcpIGludGVyZmFjZSAoZm9yIGJvdGggcHJlXC0gYW5kIHBvc3RcLTIuNi45PGJy PiZuYnNwO2tlcm5lbHMpLjxicj4mbmJzcDsuU3A8YnI+Jm5ic3A7Rm9yIGZldyBmZHMsIHRoaXMg YmFja2VuZCBpcyBhIGJpdCBsaXR0bGUgc2xvd2VyIHRoYW4gcG9sbCBhbmQgc2VsZWN0LCBidXQ8 YnI+QEAgLTY3MywyMiArNzA5LDY1IEBAIGZhc3RlciB0aGFuIGVwb2xsIGZvciBtYXliZSB1cCB0 byBhIGh1bmRyZWQgZmlsZSBkZXNjcmlwdG9ycywgZGVwZW5kaW5nIG9uPGJyPiZuYnNwO3RoZSB1 c2FnZS4gU28gc2FkLjxicj4mbmJzcDsuU3A8YnI+Jm5ic3A7V2hpbGUgbm9taW5hbGx5IGVtYmVk ZGFibGUgaW4gb3RoZXIgZXZlbnQgbG9vcHMsIHRoaXMgZmVhdHVyZSBpcyBicm9rZW4gaW48YnI+ LWFsbCBrZXJuZWwgdmVyc2lvbnMgdGVzdGVkIHNvIGZhci48YnI+K2EgbG90IG9mIGtlcm5lbCBy ZXZpc2lvbnMsIGJ1dCBwcm9iYWJseSghKSB3b3JrcyBpbiBjdXJyZW50IHZlcnNpb25zLjxicj4r LlNwPGJyPitUaGlzIGJhY2tlbmQgbWFwcyBcZihDV1wqKENgRVZfUkVBRFwqKEMnXGZSIGFuZCBc ZihDV1wqKENgRVZfV1JJVEVcKihDJ1xmUiBpbiB0aGUgc2FtZSB3YXkgYXM8YnI+K1wmYW1wO1xm KENXXCooQ2BFVkJBQ0tFTkRfUE9MTFwqKEMnXGZSLjxicj4rLmllIG4gLklQICIiIkVWQkFDS0VO RF9MSU5VWEFJTyIiICZuYnNwOyAodmFsdWUgNjQsIExpbnV4KSIgNDxicj4rLmVsIC5JUCAiXGYo Q1dFVkJBQ0tFTkRfTElOVVhBSU9cZlIgJm5ic3A7ICh2YWx1ZSA2NCwgTGludXgpIiA0PGJyPisu SVggSXRlbSAiRVZCQUNLRU5EX0xJTlVYQUlPICh2YWx1ZSA2NCwgTGludXgpIjxicj4rVXNlIHRo ZSBMaW51eC1zcGVjaWZpYyBMaW51eCBccy0xQUlPXHMwIChcZklub3RcZlIgXGYoQ1dhaW8oNylc ZlIgYnV0IFxmKENXaW9fc3VibWl0KDIpXGZSKSBldmVudCBpbnRlcmZhY2UgYXZhaWxhYmxlIGlu IHBvc3RcLTQuMTgga2VybmVscyAoYnV0IGxpYmV2PGJyPitvbmx5IHRyaWVzIHRvIHVzZSBpdCBp biA0LjE5KykuPGJyPisuU3A8YnI+K1RoaXMgaXMgYW5vdGhlciBMaW51eCB0cmFpbiB3cmVjayBv ZiBhbiBldmVudCBpbnRlcmZhY2UuPGJyPisuU3A8YnI+K0lmIHRoaXMgYmFja2VuZCB3b3JrcyBm b3IgeW91IChhcyBvZiB0aGlzIHdyaXRpbmcsIGl0IHdhcyB2ZXJ5PGJyPitleHBlcmltZW50YWwp LCBpdCBpcyB0aGUgYmVzdCBldmVudCBpbnRlcmZhY2UgYXZhaWxhYmxlIG9uIExpbnV4IGFuZCBt aWdodDxicj4rYmUgd2VsbCB3b3J0aCBlbmFibGluZyBpdCBcLSBpZiBpdCBpc24ndCBhdmFpbGFi bGUgaW4geW91ciBrZXJuZWwgdGhpcyB3aWxsPGJyPitiZSBkZXRlY3RlZCBhbmQgdGhpcyBiYWNr ZW5kIHdpbGwgYmUgc2tpcHBlZC48YnI+Ky5TcDxicj4rVGhpcyBiYWNrZW5kIGNhbiBiYXRjaCBv bmVzaG90IHJlcXVlc3RzIGFuZCBzdXBwb3J0cyBhIHVzZXItc3BhY2UgcmluZzxicj4rYnVmZmVy IHRvIHJlY2VpdmUgZXZlbnRzLiBJdCBhbHNvIGRvZXNuJ3Qgc3VmZmVyIGZyb20gbW9zdCBvZiB0 aGUgZGVzaWduPGJyPitwcm9ibGVtcyBvZiBlcG9sbCAoc3VjaCBhcyBub3QgYmVpbmcgYWJsZSB0 byByZW1vdmUgZXZlbnQgc291cmNlcyBmcm9tPGJyPit0aGUgZXBvbGwgc2V0KSwgYW5kIGdlbmVy YWxseSBzb3VuZHMgdG9vIGdvb2QgdG8gYmUgdHJ1ZS4gQmVjYXVzZSwgdGhpczxicj4rYmVpbmcg dGhlIExpbnV4IGtlcm5lbCwgb2YgY291cnNlIGl0IHN1ZmZlcnMgZnJvbSBhIHdob2xlIG5ldyBz ZXQgb2Y8YnI+K2xpbWl0YXRpb25zLCBmb3JjaW5nIHlvdSB0byBmYWxsIGJhY2sgdG8gZXBvbGws IGluaGVyaXRpbmcgYWxsIGl0cyBkZXNpZ248YnI+K2lzc3Vlcy48YnI+Ky5TcDxicj4rRm9yIG9u ZSwgaXQgaXMgbm90IGVhc2lseSBlbWJlZGRhYmxlIChidXQgcHJvYmFibHkgY291bGQgYmUgZG9u ZSB1c2luZzxicj4rYW4gZXZlbnQgZmQgYXQgc29tZSBleHRyYSBvdmVyaGVhZCkuIEl0IGFsc28g aXMgc3ViamVjdCB0byBhIHN5c3RlbSB3aWRlPGJyPitsaW1pdCB0aGF0IGNhbiBiZSBjb25maWd1 cmVkIGluIFxmSS9wcm9jL3N5cy9mcy9haW9cLW1heFwtbnJcZlIuIElmIG5vIFxzLTFBSU9cczA8 YnI+K3JlcXVlc3RzIGFyZSBsZWZ0LCB0aGlzIGJhY2tlbmQgd2lsbCBiZSBza2lwcGVkIGR1cmlu ZyBpbml0aWFsaXNhdGlvbiwgYW5kPGJyPit3aWxsIHN3aXRjaCB0byBlcG9sbCB3aGVuIHRoZSBs b29wIGlzIGFjdGl2ZS48YnI+Ky5TcDxicj4rTW9zdCBwcm9ibGVtYXRpYyBpbiBwcmFjdGljZSwg aG93ZXZlciwgaXMgdGhhdCBub3QgYWxsIGZpbGUgZGVzY3JpcHRvcnM8YnI+K3dvcmsgd2l0aCBp dC4gRm9yIGV4YW1wbGUsIGluIExpbnV4IDUuMSwgXHMtMVRDUFxzMCBzb2NrZXRzLCBwaXBlcywg ZXZlbnQgZmRzLDxicj4rZmlsZXMsIFxmSS9kZXYvbnVsbFxmUiBhbmQgbWFueSBvdGhlcnMgYXJl IHN1cHBvcnRlZCwgYnV0IHR0eXMgZG8gbm90IHdvcms8YnI+K3Byb3Blcmx5IChhIGtub3duIGJ1 ZyB0aGF0IHRoZSBrZXJuZWwgZGV2ZWxvcGVycyBkb24ndCBjYXJlIGFib3V0LCBzZWU8YnI+KyZs dDtodHRwczovL2xvcmUua2VybmVsLm9yZy9wYXRjaHdvcmsvcGF0Y2gvMTA0NzQ1My8mZ3Q7KSwg c28gdGhpcyBpcyBub3Q8YnI+Kyh5ZXQ/KSBhIGdlbmVyaWMgZXZlbnQgcG9sbGluZyBpbnRlcmZh Y2UuPGJyPisuU3A8YnI+K092ZXJhbGwsIGl0IHNlZW1zIHRoZSBMaW51eCBkZXZlbG9wZXJzIGp1 c3QgZG9uJ3Qgd2FudCBpdCB0byBoYXZlIGE8YnI+K2dlbmVyaWMgZXZlbnQgaGFuZGxpbmcgbWVj aGFuaXNtIG90aGVyIHRoYW4gXGYoQ1dcKihDYHNlbGVjdFwqKEMnXGZSIG9yIFxmKENXXCooQ2Bw b2xsXCooQydcZlIuPGJyPisuU3A8YnI+K1RvIHdvcmsgYXJvdW5kIGFsbCB0aGVzZSBwcm9ibGVt LCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIGxpYmV2IHVzZXMgaXRzPGJyPitlcG9sbCBiYWNrZW5k IGFzIGEgZmFsbGJhY2sgZm9yIGZpbGUgZGVzY3JpcHRvciB0eXBlcyB0aGF0IGRvIG5vdCB3b3Jr LiBPcjxicj4rZmFsbHMgYmFjayBjb21wbGV0ZWx5IHRvIGVwb2xsIGlmIHRoZSBrZXJuZWwgYWN0 cyB1cC48YnI+Jm5ic3A7LlNwPGJyPiZuYnNwO1RoaXMgYmFja2VuZCBtYXBzIFxmKENXXCooQ2BF Vl9SRUFEXCooQydcZlIgYW5kIFxmKENXXCooQ2BFVl9XUklURVwqKEMnXGZSIGluIHRoZSBzYW1l IHdheSBhczxicj4mbmJzcDtcJmFtcDtcZihDV1wqKENgRVZCQUNLRU5EX1BPTExcKihDJ1xmUi48 YnI+Jm5ic3A7LmllIG4gLklQICIiIkVWQkFDS0VORF9LUVVFVUUiIiAmbmJzcDsodmFsdWUgOCwg bW9zdCBccy0xQlNEXHMwIGNsb25lcykiIDQ8YnI+Jm5ic3A7LmVsIC5JUCAiXGYoQ1dFVkJBQ0tF TkRfS1FVRVVFXGZSICZuYnNwOyh2YWx1ZSA4LCBtb3N0IFxzLTFCU0RcczAgY2xvbmVzKSIgNDxi cj4mbmJzcDsuSVggSXRlbSAiRVZCQUNLRU5EX0tRVUVVRSAodmFsdWUgOCwgbW9zdCBCU0QgY2xv bmVzKSI8YnI+LUtxdWV1ZSBkZXNlcnZlcyBzcGVjaWFsIG1lbnRpb24sIGFzIGF0IHRoZSB0aW1l IG9mIHRoaXMgd3JpdGluZywgaXQ8YnI+LXdhcyBicm9rZW4gb24gYWxsIEJTRHMgZXhjZXB0IE5l dEJTRCAodXN1YWxseSBpdCBkb2Vzbid0IHdvcmsgcmVsaWFibHk8YnI+LXdpdGggYW55dGhpbmcg YnV0IHNvY2tldHMgYW5kIHBpcGVzLCBleGNlcHQgb24gRGFyd2luLCB3aGVyZSBvZiBjb3Vyc2U8 YnI+LWl0J3MgY29tcGxldGVseSB1c2VsZXNzKS4gVW5saWtlIGVwb2xsLCBob3dldmVyLCB3aG9z ZSBicm9rZW5uZXNzPGJyPi1pcyBieSBkZXNpZ24sIHRoZXNlIGtxdWV1ZSBidWdzIGNhbiAoYW5k IGV2ZW50dWFsbHkgd2lsbCkgYmUgZml4ZWQ8YnI+LXdpdGhvdXQgXHMtMUFQSVxzMCBjaGFuZ2Vz IHRvIGV4aXN0aW5nIHByb2dyYW1zLiBGb3IgdGhpcyByZWFzb24gaXQncyBub3QgYmVpbmc8YnI+ LVwmYW1wO1wqKEwiYXV0by1kZXRlY3RlZFwqKFIiIHVubGVzcyB5b3UgZXhwbGljaXRseSBzcGVj aWZ5IGl0IGluIHRoZSBmbGFncyAoaS5lLiB1c2luZzxicj4tXCZhbXA7XGYoQ1dcKihDYEVWQkFD S0VORF9LUVVFVUVcKihDJ1xmUikgb3IgbGliZXYgd2FzIGNvbXBpbGVkIG9uIGEga25vd24tdG8t YmUtZ29vZCAoXC1lbm91Z2gpPGJyPi1zeXN0ZW0gbGlrZSBOZXRCU0QuPGJyPitLcXVldWUgZGVz ZXJ2ZXMgc3BlY2lhbCBtZW50aW9uLCBhcyBhdCB0aGUgdGltZSB0aGlzIGJhY2tlbmQgd2FzPGJy PitpbXBsZW1lbnRlZCwgaXQgd2FzIGJyb2tlbiBvbiBhbGwgQlNEcyBleGNlcHQgTmV0QlNEICh1 c3VhbGx5IGl0IGRvZXNuJ3Q8YnI+K3dvcmsgcmVsaWFibHkgd2l0aCBhbnl0aGluZyBidXQgc29j a2V0cyBhbmQgcGlwZXMsIGV4Y2VwdCBvbiBEYXJ3aW4sPGJyPit3aGVyZSBvZiBjb3Vyc2UgaXQn cyBjb21wbGV0ZWx5IHVzZWxlc3MpLiBVbmxpa2UgZXBvbGwsIGhvd2V2ZXIsIHdob3NlPGJyPiti cm9rZW5uZXNzIGlzIGJ5IGRlc2lnbiwgdGhlc2Uga3F1ZXVlIGJ1Z3MgY2FuIGJlIChhbmQgbW9z dGx5IGhhdmUgYmVlbik8YnI+K2ZpeGVkIHdpdGhvdXQgXHMtMUFQSVxzMCBjaGFuZ2VzIHRvIGV4 aXN0aW5nIHByb2dyYW1zLiBGb3IgdGhpcyByZWFzb24gaXQncyBub3Q8YnI+K2JlaW5nIFwqKEwi YXV0by1kZXRlY3RlZFwqKFIiIG9uIGFsbCBwbGF0Zm9ybXMgdW5sZXNzIHlvdSBleHBsaWNpdGx5 IHNwZWNpZnkgaXQ8YnI+K2luIHRoZSBmbGFncyAoaS5lLiB1c2luZyBcZihDV1wqKENgRVZCQUNL RU5EX0tRVUVVRVwqKEMnXGZSKSBvciBsaWJldiB3YXMgY29tcGlsZWQgb24gYTxicj4ra25vd24t dG8tYmUtZ29vZCAoXC1lbm91Z2gpIHN5c3RlbSBsaWtlIE5ldEJTRC48YnI+Jm5ic3A7LlNwPGJy PiZuYnNwO1lvdSBzdGlsbCBjYW4gZW1iZWQga3F1ZXVlIGludG8gYSBub3JtYWwgcG9sbCBvciBz ZWxlY3QgYmFja2VuZCBhbmQgdXNlIGl0PGJyPiZuYnNwO29ubHkgZm9yIHNvY2tldHMgKGFmdGVy IGhhdmluZyBtYWRlIHN1cmUgdGhhdCBzb2NrZXRzIHdvcmsgd2l0aCBrcXVldWUgb248YnI+QEAg LTY5OSw3ICs3NzgsNyBAQCBrZXJuZWwgaXMgbW9yZSBlZmZpY2llbnQgKHdoaWNoIHNheXMgbm90 aGluZyBhYm91dCBpdHMgYWN0dWFsIHNwZWVkLCBvZjxicj4mbmJzcDtjb3Vyc2UpLiBXaGlsZSBz dG9wcGluZywgc2V0dGluZyBhbmQgc3RhcnRpbmcgYW4gSS9PIHdhdGNoZXIgZG9lcyBuZXZlcjxi cj4mbmJzcDtjYXVzZSBhbiBleHRyYSBzeXN0ZW0gY2FsbCBhcyB3aXRoIFxmKENXXCooQ2BFVkJB Q0tFTkRfRVBPTExcKihDJ1xmUiwgaXQgc3RpbGwgYWRkcyB1cCB0bzxicj4mbmJzcDt0d28gZXZl bnQgY2hhbmdlcyBwZXIgaW5jaWRlbnQuIFN1cHBvcnQgZm9yIFxmKENXXCooQ2Bmb3JrICgpXCoo QydcZlIgaXMgdmVyeSBiYWQgKHlvdTxicj4tbWlnaHQgaGF2ZSB0byBsZWFrIGZkJ3Mgb24gZm9y aywgYnV0IGl0J3MgbW9yZSBzYW5lIHRoYW4gZXBvbGwpIGFuZCBpdDxicj4rbWlnaHQgaGF2ZSB0 byBsZWFrIGZkcyBvbiBmb3JrLCBidXQgaXQncyBtb3JlIHNhbmUgdGhhbiBlcG9sbCkgYW5kIGl0 PGJyPiZuYnNwO2Ryb3BzIGZkcyBzaWxlbnRseSBpbiBzaW1pbGFybHkgaGFyZC10by1kZXRlY3Qg Y2FzZXMuPGJyPiZuYnNwOy5TcDxicj4mbmJzcDtUaGlzIGJhY2tlbmQgdXN1YWxseSBwZXJmb3Jt cyB3ZWxsIHVuZGVyIG1vc3QgY29uZGl0aW9ucy48YnI+QEAgLTc4Nyw2ICs4NjYsMTQgQEAgdXNl ZCBpZiBhdmFpbGFibGUuPGJyPiZuYnNwOy5WYiAxPGJyPiZuYnNwO1wmYW1wOyAmbmJzcDsgc3Ry dWN0IGV2X2xvb3AgKmxvb3AgPSBldl9sb29wX25ldyAoZXZfcmVjb21tZW5kZWRfYmFja2VuZHMg KCkgfCBFVkJBQ0tFTkRfS1FVRVVFKTs8YnI+Jm5ic3A7LlZlPGJyPisuU3A8YnI+K0V4YW1wbGU6 IFNpbWlsYXJseSwgb24gbGludXgsIHlvdSBtZ2lodCB3YW50IHRvIHRha2UgYWR2YW50YWdlIG9m IHRoZTxicj4rbGludXggYWlvIGJhY2tlbmQgaWYgcG9zc2libGUsIGJ1dCBmYWxsIGJhY2sgdG8g c29tZXRoaW5nIGVsc2UgaWYgdGhhdDxicj4raXNuJ3QgYXZhaWxhYmxlLjxicj4rLlNwPGJyPisu VmIgMTxicj4rXCZhbXA7ICZuYnNwOyBzdHJ1Y3QgZXZfbG9vcCAqbG9vcCA9IGV2X2xvb3BfbmV3 IChldl9yZWNvbW1lbmRlZF9iYWNrZW5kcyAoKSB8IEVWQkFDS0VORF9MSU5VWEFJTyk7PGJyPisu VmU8YnI+Jm5ic3A7LlJFPGJyPiZuYnNwOy5JUCAiZXZfbG9vcF9kZXN0cm95IChsb29wKSIgNDxi cj4mbmJzcDsuSVggSXRlbSAiZXZfbG9vcF9kZXN0cm95IChsb29wKSI8YnI+QEAgLTEyNjQsOCAr MTM1MSw5IEBAIHdpdGggYSB3YXRjaGVyLXNwZWNpZmljIHN0YXJ0IGZ1bmN0aW9uIChcZihDV1wq KENgZXZfVFlQRV9zdGFydCAobG9vcCwgd2F0Y2hlcjxicj4mbmJzcDtjb3JyZXNwb25kaW5nIHN0 b3AgZnVuY3Rpb24gKFxmKENXXCooQ2Bldl9UWVBFX3N0b3AgKGxvb3AsIHdhdGNoZXIgKilcKihD J1xmUi48YnI+Jm5ic3A7LlBQPGJyPiZuYnNwO0FzIGxvbmcgYXMgeW91ciB3YXRjaGVyIGlzIGFj dGl2ZSAoaGFzIGJlZW4gc3RhcnRlZCBidXQgbm90IHN0b3BwZWQpIHlvdTxicj4tbXVzdCBub3Qg dG91Y2ggdGhlIHZhbHVlcyBzdG9yZWQgaW4gaXQuIE1vc3Qgc3BlY2lmaWNhbGx5IHlvdSBtdXN0 IG5ldmVyPGJyPi1yZWluaXRpYWxpc2UgaXQgb3IgY2FsbCBpdHMgXGYoQ1dcKihDYGV2X1RZUEVf c2V0XCooQydcZlIgbWFjcm8uPGJyPittdXN0IG5vdCB0b3VjaCB0aGUgdmFsdWVzIHN0b3JlZCBp biBpdCBleGNlcHQgd2hlbiBleHBsaWNpdGx5IGRvY3VtZW50ZWQ8YnI+K290aGVyd2lzZS4gTW9z dCBzcGVjaWZpY2FsbHkgeW91IG11c3QgbmV2ZXIgcmVpbml0aWFsaXNlIGl0IG9yIGNhbGwgaXRz PGJyPitcJmFtcDtcZihDV1wqKENgZXZfVFlQRV9zZXRcKihDJ1xmUiBtYWNyby48YnI+Jm5ic3A7 LlBQPGJyPiZuYnNwO0VhY2ggYW5kIGV2ZXJ5IGNhbGxiYWNrIHJlY2VpdmVzIHRoZSBldmVudCBs b29wIHBvaW50ZXIgYXMgZmlyc3QsIHRoZTxicj4mbmJzcDtyZWdpc3RlcmVkIHdhdGNoZXIgc3Ry dWN0dXJlIGFzIHNlY29uZCwgYW5kIGEgYml0c2V0IG9mIHJlY2VpdmVkIGV2ZW50cyBhczxicj5A QCAtMTM2Niw3ICsxNDU0LDcgQEAgYnVnIGluIHlvdXIgcHJvZ3JhbS48YnI+Jm5ic3A7TGliZXYg d2lsbCB1c3VhbGx5IHNpZ25hbCBhIGZldyBcKihMImR1bW15XCooUiIgZXZlbnRzIHRvZ2V0aGVy IHdpdGggYW4gZXJyb3IsIGZvcjxicj4mbmJzcDtleGFtcGxlIGl0IG1pZ2h0IGluZGljYXRlIHRo YXQgYSBmZCBpcyByZWFkYWJsZSBvciB3cml0YWJsZSwgYW5kIGlmIHlvdXI8YnI+Jm5ic3A7Y2Fs bGJhY2tzIGlzIHdlbGwtd3JpdHRlbiBpdCBjYW4ganVzdCBhdHRlbXB0IHRoZSBvcGVyYXRpb24g YW5kIGNvcGUgd2l0aDxicj4tdGhlIGVycm9yIGZyb20gXGZJcmVhZCgpXGZSIG9yIFxmSXdyaXRl KClcZlIuIFRoaXMgd2lsbCBub3Qgd29yayBpbiBtdWx0aS10aHJlYWRlZDxicj4rdGhlIGVycm9y IGZyb20gXGZCcmVhZCgpXGZSIG9yIFxmQndyaXRlKClcZlIuIFRoaXMgd2lsbCBub3Qgd29yayBp biBtdWx0aS10aHJlYWRlZDxicj4mbmJzcDtwcm9ncmFtcywgdGhvdWdoLCBhcyB0aGUgZmQgY291 bGQgYWxyZWFkeSBiZSBjbG9zZWQgYW5kIHJldXNlZCBmb3IgYW5vdGhlcjxicj4mbmJzcDt0aGlu Zywgc28gYmV3YXJlLjxicj4mbmJzcDsuU1MgIlxzLTFHRU5FUklDIFdBVENIRVIgRlVOQ1RJT05T XHMwIjxicj5AQCAtMTU3OCw3ICsxNjY2LDcgQEAgTWFueSBldmVudCBsb29wcyBzdXBwb3J0IFxm SXdhdGNoZXIgcHJpb3JpdGllc1xmUiwgd2hpY2ggYXJlIHVzdWFsbHkgc21hbGw8YnI+Jm5ic3A7 aW50ZWdlcnMgdGhhdCBpbmZsdWVuY2UgdGhlIG9yZGVyaW5nIG9mIGV2ZW50IGNhbGxiYWNrIGlu dm9jYXRpb248YnI+Jm5ic3A7YmV0d2VlbiB3YXRjaGVycyBpbiBzb21lIHdheSwgYWxsIGVsc2Ug YmVpbmcgZXF1YWwuPGJyPiZuYnNwOy5QUDxicj4tSW4gbGliZXYsIFdhdGNoZXIgcHJpb3JpdGll cyBjYW4gYmUgc2V0IHVzaW5nIFxmKENXXCooQ2Bldl9zZXRfcHJpb3JpdHlcKihDJ1xmUi4gU2Vl IGl0czxicj4rSW4gbGliZXYsIHdhdGNoZXIgcHJpb3JpdGllcyBjYW4gYmUgc2V0IHVzaW5nIFxm KENXXCooQ2Bldl9zZXRfcHJpb3JpdHlcKihDJ1xmUi4gU2VlIGl0czxicj4mbmJzcDtkZXNjcmlw dGlvbiBmb3IgdGhlIG1vcmUgdGVjaG5pY2FsIGRldGFpbHMgc3VjaCBhcyB0aGUgYWN0dWFsIHBy aW9yaXR5PGJyPiZuYnNwO3JhbmdlLjxicj4mbmJzcDsuUFA8YnI+QEAgLTE2ODIsMTQgKzE3NzAs MTcgQEAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBlYWNoIHdhdGNoZXIgaW4gZGV0YWlsLCBidXQg d2lsbCBub3QgcmVwZWF0PGJyPiZuYnNwO2luZm9ybWF0aW9uIGdpdmVuIGluIHRoZSBsYXN0IHNl Y3Rpb24uIEFueSBpbml0aWFsaXNhdGlvbi9zZXQgbWFjcm9zLDxicj4mbmJzcDtmdW5jdGlvbnMg YW5kIG1lbWJlcnMgc3BlY2lmaWMgdG8gdGhlIHdhdGNoZXIgdHlwZSBhcmUgZXhwbGFpbmVkLjxi cj4mbmJzcDsuUFA8YnI+LU1lbWJlcnMgYXJlIGFkZGl0aW9uYWxseSBtYXJrZWQgd2l0aCBlaXRo ZXIgXGZJW3JlYWRcLW9ubHldXGZSLCBtZWFuaW5nIHRoYXQsPGJyPi13aGlsZSB0aGUgd2F0Y2hl ciBpcyBhY3RpdmUsIHlvdSBjYW4gbG9vayBhdCB0aGUgbWVtYmVyIGFuZCBleHBlY3Qgc29tZTxi cj4tc2Vuc2libGUgY29udGVudCwgYnV0IHlvdSBtdXN0IG5vdCBtb2RpZnkgaXQgKHlvdSBjYW4g bW9kaWZ5IGl0IHdoaWxlIHRoZTxicj4td2F0Y2hlciBpcyBzdG9wcGVkIHRvIHlvdXIgaGVhcnRz IGNvbnRlbnQpLCBvciBcZklbcmVhZFwtd3JpdGVdXGZSLCB3aGljaDxicj4rTW9zdCBtZW1iZXJz IGFyZSBhZGRpdGlvbmFsbHkgbWFya2VkIHdpdGggZWl0aGVyIFxmSVtyZWFkXC1vbmx5XVxmUiwg bWVhbmluZzxicj4rdGhhdCwgd2hpbGUgdGhlIHdhdGNoZXIgaXMgYWN0aXZlLCB5b3UgY2FuIGxv b2sgYXQgdGhlIG1lbWJlciBhbmQgZXhwZWN0PGJyPitzb21lIHNlbnNpYmxlIGNvbnRlbnQsIGJ1 dCB5b3UgbXVzdCBub3QgbW9kaWZ5IGl0ICh5b3UgY2FuIG1vZGlmeSBpdCB3aGlsZTxicj4rdGhl IHdhdGNoZXIgaXMgc3RvcHBlZCB0byB5b3VyIGhlYXJ0cyBjb250ZW50KSwgb3IgXGZJW3JlYWRc LXdyaXRlXVxmUiwgd2hpY2g8YnI+Jm5ic3A7bWVhbnMgeW91IGNhbiBleHBlY3QgaXQgdG8gaGF2 ZSBzb21lIHNlbnNpYmxlIGNvbnRlbnQgd2hpbGUgdGhlIHdhdGNoZXI8YnI+Jm5ic3A7aXMgYWN0 aXZlLCBidXQgeW91IGNhbiBhbHNvIG1vZGlmeSBpdC4gTW9kaWZ5aW5nIGl0IG1heSBub3QgZG8g c29tZXRoaW5nPGJyPiZuYnNwO3NlbnNpYmxlIG9yIHRha2UgaW1tZWRpYXRlIGVmZmVjdCAob3Ig ZG8gYW55dGhpbmcgYXQgYWxsKSwgYnV0IGxpYmV2IHdpbGw8YnI+Jm5ic3A7bm90IGNyYXNoIG9y IG1hbGZ1bmN0aW9uIGluIGFueSB3YXkuPGJyPisuUFA8YnI+K0luIGFueSBjYXNlLCB0aGUgZG9j dW1lbnRhdGlvbiBmb3IgZWFjaCBtZW1iZXIgd2lsbCBleHBsYWluIHdoYXQgdGhlPGJyPitlZmZl Y3RzIGFyZSwgYW5kIGlmIHRoZXJlIGFyZSBhbnkgYWRkaXRpb25hbCBhY2Nlc3MgcmVzdHJpY3Rp b25zLjxicj4mbmJzcDsuaWUgbiAuU1MgIiIiZXZfaW8iIiBcLSBpcyB0aGlzIGZpbGUgZGVzY3Jp cHRvciByZWFkYWJsZSBvciB3cml0YWJsZT8iPGJyPiZuYnNwOy5lbCAuU1MgIlxmKENXZXZfaW9c ZlAgXC0gaXMgdGhpcyBmaWxlIGRlc2NyaXB0b3IgcmVhZGFibGUgb3Igd3JpdGFibGU/Ijxicj4m bmJzcDsuSVggU3Vic2VjdGlvbiAiZXZfaW8gLSBpcyB0aGlzIGZpbGUgZGVzY3JpcHRvciByZWFk YWJsZSBvciB3cml0YWJsZT8iPGJyPkBAIC0xNzI3LDEzICsxODE4LDEzIEBAIEJ1dCByZWFsbHks IGJlc3QgdXNlIG5vbi1ibG9ja2luZyBtb2RlLjxicj4mbmJzcDtcZklUaGUgc3BlY2lhbCBwcm9i bGVtIG9mIGRpc2FwcGVhcmluZyBmaWxlIGRlc2NyaXB0b3JzXGZSPGJyPiZuYnNwOy5JWCBTdWJz ZWN0aW9uICJUaGUgc3BlY2lhbCBwcm9ibGVtIG9mIGRpc2FwcGVhcmluZyBmaWxlIGRlc2NyaXB0 b3JzIjxicj4mbmJzcDsuUFA8YnI+LVNvbWUgYmFja2VuZHMgKGUuZy4ga3F1ZXVlLCBlcG9sbCkg bmVlZCB0byBiZSB0b2xkIGFib3V0IGNsb3NpbmcgYSBmaWxlPGJyPi1kZXNjcmlwdG9yIChlaXRo ZXIgZHVlIHRvIGNhbGxpbmcgXGYoQ1dcKihDYGNsb3NlXCooQydcZlIgZXhwbGljaXRseSBvciBh bnkgb3RoZXIgbWVhbnMsPGJyPi1zdWNoIGFzIFxmKENXXCooQ2BkdXAyXCooQydcZlIpLiBUaGUg cmVhc29uIGlzIHRoYXQgeW91IHJlZ2lzdGVyIGludGVyZXN0IGluIHNvbWUgZmlsZTxicj4tZGVz Y3JpcHRvciwgYnV0IHdoZW4gaXQgZ29lcyBhd2F5LCB0aGUgb3BlcmF0aW5nIHN5c3RlbSB3aWxs IHNpbGVudGx5IGRyb3A8YnI+LXRoaXMgaW50ZXJlc3QuIElmIGFub3RoZXIgZmlsZSBkZXNjcmlw dG9yIHdpdGggdGhlIHNhbWUgbnVtYmVyIHRoZW4gaXM8YnI+LXJlZ2lzdGVyZWQgd2l0aCBsaWJl diwgdGhlcmUgaXMgbm8gZWZmaWNpZW50IHdheSB0byBzZWUgdGhhdCB0aGlzIGlzLCBpbjxicj4t ZmFjdCwgYSBkaWZmZXJlbnQgZmlsZSBkZXNjcmlwdG9yLjxicj4rU29tZSBiYWNrZW5kcyAoZS5n LiBrcXVldWUsIGVwb2xsLCBsaW51eGFpbykgbmVlZCB0byBiZSB0b2xkIGFib3V0IGNsb3Npbmc8 YnI+K2EgZmlsZSBkZXNjcmlwdG9yIChlaXRoZXIgZHVlIHRvIGNhbGxpbmcgXGYoQ1dcKihDYGNs b3NlXCooQydcZlIgZXhwbGljaXRseSBvciBhbnkgb3RoZXI8YnI+K21lYW5zLCBzdWNoIGFzIFxm KENXXCooQ2BkdXAyXCooQydcZlIpLiBUaGUgcmVhc29uIGlzIHRoYXQgeW91IHJlZ2lzdGVyIGlu dGVyZXN0IGluIHNvbWU8YnI+K2ZpbGUgZGVzY3JpcHRvciwgYnV0IHdoZW4gaXQgZ29lcyBhd2F5 LCB0aGUgb3BlcmF0aW5nIHN5c3RlbSB3aWxsIHNpbGVudGx5PGJyPitkcm9wIHRoaXMgaW50ZXJl c3QuIElmIGFub3RoZXIgZmlsZSBkZXNjcmlwdG9yIHdpdGggdGhlIHNhbWUgbnVtYmVyIHRoZW48 YnI+K2lzIHJlZ2lzdGVyZWQgd2l0aCBsaWJldiwgdGhlcmUgaXMgbm8gZWZmaWNpZW50IHdheSB0 byBzZWUgdGhhdCB0aGlzIGlzLDxicj4raW4gZmFjdCwgYSBkaWZmZXJlbnQgZmlsZSBkZXNjcmlw dG9yLjxicj4mbmJzcDsuUFA8YnI+Jm5ic3A7VG8gYXZvaWQgaGF2aW5nIHRvIGV4cGxpY2l0bHkg dGVsbCBsaWJldiBhYm91dCBzdWNoIGNhc2VzLCBsaWJldiBmb2xsb3dzPGJyPiZuYnNwO3RoZSBm b2xsb3dpbmcgcG9saWN5OiAmbmJzcDtFYWNoIHRpbWUgXGYoQ1dcKihDYGV2X2lvX3NldFwqKEMn XGZSIGlzIGJlaW5nIGNhbGxlZCwgbGliZXY8YnI+QEAgLTE3OTUsOSArMTg4NiwxMCBAQCByZXVz ZSB0aGUgc2FtZSBjb2RlIHBhdGguPGJyPiZuYnNwO1xmSVRoZSBzcGVjaWFsIHByb2JsZW0gb2Yg Zm9ya1xmUjxicj4mbmJzcDsuSVggU3Vic2VjdGlvbiAiVGhlIHNwZWNpYWwgcHJvYmxlbSBvZiBm b3JrIjxicj4mbmJzcDsuUFA8YnI+LVNvbWUgYmFja2VuZHMgKGVwb2xsLCBrcXVldWUpIGRvIG5v dCBzdXBwb3J0IFxmKENXXCooQ2Bmb3JrICgpXCooQydcZlIgYXQgYWxsIG9yIGV4aGliaXQ8YnI+ LXVzZWxlc3MgYmVoYXZpb3VyLiBMaWJldiBmdWxseSBzdXBwb3J0cyBmb3JrLCBidXQgbmVlZHMg dG8gYmUgdG9sZCBhYm91dDxicj4taXQgaW4gdGhlIGNoaWxkIGlmIHlvdSB3YW50IHRvIGNvbnRp bnVlIHRvIHVzZSBpdCBpbiB0aGUgY2hpbGQuPGJyPitTb21lIGJhY2tlbmRzIChlcG9sbCwga3F1 ZXVlLCBsaW51eGFpbywgaW91cmluZykgZG8gbm90IHN1cHBvcnQgXGYoQ1dcKihDYGZvcmsgKClc KihDJ1xmUjxicj4rYXQgYWxsIG9yIGV4aGliaXQgdXNlbGVzcyBiZWhhdmlvdXIuIExpYmV2IGZ1 bGx5IHN1cHBvcnRzIGZvcmssIGJ1dCBuZWVkczxicj4rdG8gYmUgdG9sZCBhYm91dCBpdCBpbiB0 aGUgY2hpbGQgaWYgeW91IHdhbnQgdG8gY29udGludWUgdG8gdXNlIGl0IGluIHRoZTxicj4rY2hp bGQuPGJyPiZuYnNwOy5QUDxicj4mbmJzcDtUbyBzdXBwb3J0IGZvcmsgaW4geW91ciBjaGlsZCBw cm9jZXNzZXMsIHlvdSBoYXZlIHRvIGNhbGwgXGYoQ1dcKihDYGV2X2xvb3BfZm9yazxicj4mbmJz cDsoKVwqKEMnXGZSIGFmdGVyIGEgZm9yayBpbiB0aGUgY2hpbGQsIGVuYWJsZSBcZihDV1wqKENg RVZGTEFHX0ZPUktDSEVDS1wqKEMnXGZSLCBvciByZXNvcnQgdG88YnI+QEAgLTE4MTIsMTMgKzE5 MDQsMTMgQEAgc2VudCBhIFxzLTFTSUdQSVBFLFxzMCB3aGljaCwgYnkgZGVmYXVsdCwgYWJvcnRz IHlvdXIgcHJvZ3JhbS4gRm9yIG1vc3QgcHJvZ3JhbXM8YnI+Jm5ic3A7dGhpcyBpcyBzZW5zaWJs ZSBiZWhhdmlvdXIsIGZvciBkYWVtb25zLCB0aGlzIGlzIHVzdWFsbHkgdW5kZXNpcmFibGUuPGJy PiZuYnNwOy5QUDxicj4mbmJzcDtTbyB3aGVuIHlvdSBlbmNvdW50ZXIgc3B1cmlvdXMsIHVuZXhw bGFpbmVkIGRhZW1vbiBleGl0cywgbWFrZSBzdXJlIHlvdTxicj4taWdub3JlIFxzLTFTSUdQSVBF IFxzMChhbmQgbWF5YmUgbWFrZSBzdXJlIHlvdSBsb2cgdGhlIGV4aXQgc3RhdHVzIG9mIHlvdXIg ZGFlbW9uPGJyPitpZ25vcmUgXHMtMVNJR1BJUEVcczAgKGFuZCBtYXliZSBtYWtlIHN1cmUgeW91 IGxvZyB0aGUgZXhpdCBzdGF0dXMgb2YgeW91ciBkYWVtb248YnI+Jm5ic3A7c29tZXdoZXJlLCBh cyB0aGF0IHdvdWxkIGhhdmUgZ2l2ZW4geW91IGEgYmlnIGNsdWUpLjxicj4mbmJzcDsuUFA8YnI+ LVxmSVRoZSBzcGVjaWFsIHByb2JsZW0gb2YgXGZJYWNjZXB0KClcZklpbmcgd2hlbiB5b3UgY2Fu J3RcZlI8YnI+K1xmSVRoZSBzcGVjaWFsIHByb2JsZW0gb2YgXGYoQklhY2NlcHQoKVxmSWluZyB3 aGVuIHlvdSBjYW4ndFxmUjxicj4mbmJzcDsuSVggU3Vic2VjdGlvbiAiVGhlIHNwZWNpYWwgcHJv YmxlbSBvZiBhY2NlcHQoKWluZyB3aGVuIHlvdSBjYW4ndCI8YnI+Jm5ic3A7LlBQPGJyPi1NYW55 IGltcGxlbWVudGF0aW9ucyBvZiB0aGUgXHMtMVBPU0lYIFxzMFxmKENXXCooQ2BhY2NlcHRcKihD J1xmUiBmdW5jdGlvbiAoZm9yIGV4YW1wbGUsPGJyPitNYW55IGltcGxlbWVudGF0aW9ucyBvZiB0 aGUgXHMtMVBPU0lYXHMwIFxmKENXXCooQ2BhY2NlcHRcKihDJ1xmUiBmdW5jdGlvbiAoZm9yIGV4 YW1wbGUsPGJyPiZuYnNwO2ZvdW5kIGluIHBvc3RcLTIwMDQgTGludXgpIGhhdmUgdGhlIHBlY3Vs aWFyIGJlaGF2aW91ciBvZiBub3QgcmVtb3ZpbmcgYTxicj4mbmJzcDtjb25uZWN0aW9uIGZyb20g dGhlIHBlbmRpbmcgcXVldWUgaW4gYWxsIGVycm9yIGNhc2VzLjxicj4mbmJzcDsuUFA8YnI+QEAg LTE4NjQsMTQgKzE5NTYsMzMgQEAgb3Bwb3J0dW5pdHkgZm9yIGEgRG9TIGF0dGFjay48YnI+Jm5i c3A7LklYIEl0ZW0gImV2X2lvX3NldCAoZXZfaW8gKiwgaW50IGZkLCBpbnQgZXZlbnRzKSI8YnI+ Jm5ic3A7LlBEPGJyPiZuYnNwO0NvbmZpZ3VyZXMgYW4gXGYoQ1dcKihDYGV2X2lvXCooQydcZlIg d2F0Y2hlci4gVGhlIFxmKENXXCooQ2BmZFwqKEMnXGZSIGlzIHRoZSBmaWxlIGRlc2NyaXB0b3Ig dG88YnI+LXJlY2VpdmUgZXZlbnRzIGZvciBhbmQgXGYoQ1dcKihDYGV2ZW50c1wqKEMnXGZSIGlz IGVpdGhlciBcZihDV1wqKENgRVZfUkVBRFwqKEMnXGZSLCBcZihDV1wqKENgRVZfV1JJVEVcKihD J1xmUiBvcjxicj4tXCZhbXA7XGYoQ1dcKihDYEVWX1JFQUQgfCBFVl9XUklURVwqKEMnXGZSLCB0 byBleHByZXNzIHRoZSBkZXNpcmUgdG8gcmVjZWl2ZSB0aGUgZ2l2ZW4gZXZlbnRzLjxicj4tLklQ ICJpbnQgZmQgW3JlYWRcLW9ubHldIiA0PGJyPi0uSVggSXRlbSAiaW50IGZkIFtyZWFkLW9ubHld Ijxicj4tVGhlIGZpbGUgZGVzY3JpcHRvciBiZWluZyB3YXRjaGVkLjxicj4tLklQICJpbnQgZXZl bnRzIFtyZWFkXC1vbmx5XSIgNDxicj4tLklYIEl0ZW0gImludCBldmVudHMgW3JlYWQtb25seV0i PGJyPi1UaGUgZXZlbnRzIGJlaW5nIHdhdGNoZWQuPGJyPityZWNlaXZlIGV2ZW50cyBmb3IgYW5k IFxmKENXXCooQ2BldmVudHNcKihDJ1xmUiBpcyBlaXRoZXIgXGYoQ1dcKihDYEVWX1JFQURcKihD J1xmUiwgXGYoQ1dcKihDYEVWX1dSSVRFXCooQydcZlIsIGJvdGg8YnI+K1wmYW1wO1xmKENXXCoo Q2BFVl9SRUFEIHwgRVZfV1JJVEVcKihDJ1xmUiBvciBcZihDVzBcZlIsIHRvIGV4cHJlc3MgdGhl IGRlc2lyZSB0byByZWNlaXZlIHRoZSBnaXZlbjxicj4rZXZlbnRzLjxicj4rLlNwPGJyPitOb3Rl IHRoYXQgc2V0dGluZyB0aGUgXGYoQ1dcKihDYGV2ZW50c1wqKEMnXGZSIHRvIFxmKENXMFxmUiBh bmQgc3RhcnRpbmcgdGhlIHdhdGNoZXIgaXM8YnI+K3N1cHBvcnRlZCwgYnV0IG5vdCBzcGVjaWFs bHkgb3B0aW1pemVkIFwtIGlmIHlvdXIgcHJvZ3JhbSBzb21ldGltZXMgaGFwcGVuczxicj4rdG8g Z2VuZXJhdGUgdGhpcyBjb21iaW5hdGlvbiB0aGlzIGlzIGZpbmUsIGJ1dCBpZiBpdCBpcyBlYXN5 IHRvIGF2b2lkPGJyPitzdGFydGluZyBhbiBpbyB3YXRjaGVyIHdhdGNoaW5nIGZvciBubyBldmVu dHMgeW91IHNob3VsZCBkbyBzby48YnI+Ky5JUCAiZXZfaW9fbW9kaWZ5IChldl9pbyAqLCBpbnQg ZXZlbnRzKSIgNDxicj4rLklYIEl0ZW0gImV2X2lvX21vZGlmeSAoZXZfaW8gKiwgaW50IGV2ZW50 cykiPGJyPitTaW1pbGFyIHRvIFxmKENXXCooQ2Bldl9pb19zZXRcKihDJ1xmUiwgYnV0IG9ubHkg Y2hhbmdlcyB0aGUgZXZlbnQgbWFzay4gVXNpbmcgdGhpcyBtaWdodDxicj4rYmUgZmFzdGVyIHdp dGggc29tZSBiYWNrZW5kcywgYXMgbGliZXYgY2FuIGFzc3VtZSB0aGF0IHRoZSBcZihDV1wqKENg ZmRcKihDJ1xmUiBzdGlsbDxicj4rcmVmZXJzIHRvIHRoZSBzYW1lIHVuZGVybHlpbmcgZmlsZSBk ZXNjcmlwdGlvbiwgc29tZXRoaW5nIGl0IGNhbm5vdCBkbzxicj4rd2hlbiB1c2luZyBcZihDV1wq KENgZXZfaW9fc2V0XCooQydcZlIuPGJyPisuSVAgImludCBmZCBbbm9cLW1vZGlmeV0iIDQ8YnI+ Ky5JWCBJdGVtICJpbnQgZmQgW25vLW1vZGlmeV0iPGJyPitUaGUgZmlsZSBkZXNjcmlwdG9yIGJl aW5nIHdhdGNoZWQuIFdoaWxlIGl0IGNhbiBiZSByZWFkIGF0IGFueSB0aW1lLCB5b3U8YnI+K211 c3Qgbm90IG1vZGlmeSB0aGlzIG1lbWJlciBldmVuIHdoZW4gdGhlIHdhdGNoZXIgaXMgc3RvcHBl ZCBcLSBhbHdheXMgdXNlPGJyPitcJmFtcDtcZihDV1wqKENgZXZfaW9fc2V0XCooQydcZlIgZm9y IHRoYXQuPGJyPisuSVAgImludCBldmVudHMgW25vXC1tb2RpZnldIiA0PGJyPisuSVggSXRlbSAi aW50IGV2ZW50cyBbbm8tbW9kaWZ5XSI8YnI+K1RoZSBzZXQgb2YgZXZlbnRzIHRoZSBmZCBpcyBi ZWluZyB3YXRjaGVkIGZvciwgYW1vbmcgb3RoZXIgZmxhZ3MuIFJlbWVtYmVyPGJyPit0aGF0IHRo aXMgaXMgYSBiaXQgc2V0IFwtIHRvIHRlc3QgZm9yIFxmKENXXCooQ2BFVl9SRUFEXCooQydcZlIs IHVzZSBcZihDV1wqKENgd1wtJmd0O2V2ZW50cyAmYW1wOzxicj4rRVZfUkVBRFwqKEMnXGZSLCBh bmQgc2ltaWxhcmx5IGZvciBcZihDV1wqKENgRVZfV1JJVEVcKihDJ1xmUi48YnI+Ky5TcDxicj4r QXMgd2l0aCBcZihDV1wqKENgZmRcKihDJ1xmUiwgeW91IG11c3Qgbm90IG1vZGlmeSB0aGlzIG1l bWJlciBldmVuIHdoZW4gdGhlIHdhdGNoZXIgaXM8YnI+K3N0b3BwZWQsIGFsd2F5cyB1c2UgXGYo Q1dcKihDYGV2X2lvX3NldFwqKEMnXGZSIG9yIFxmKENXXCooQ2Bldl9pb19tb2RpZnlcKihDJ1xm UiBmb3IgdGhhdC48YnI+Jm5ic3A7LlBQPGJyPiZuYnNwO1xmSUV4YW1wbGVzXGZSPGJyPiZuYnNw Oy5JWCBTdWJzZWN0aW9uICJFeGFtcGxlcyI8YnI+QEAgLTIyNTIsMTEgKzIzNjMsMTEgQEAgZGV0 ZXJtaW5pc3RpYyBiZWhhdmlvdXIgaW4gdGhpcyBjYXNlICh5b3UgY2FuIGRvIG5vdGhpbmcgYWdh aW5zdDxicj4mbmJzcDsuSVAgImV2X3RpbWVyX3NldCAoZXZfdGltZXIgKiwgZXZfdHN0YW1wIGFm dGVyLCBldl90c3RhbXAgcmVwZWF0KSIgNDxicj4mbmJzcDsuSVggSXRlbSAiZXZfdGltZXJfc2V0 IChldl90aW1lciAqLCBldl90c3RhbXAgYWZ0ZXIsIGV2X3RzdGFtcCByZXBlYXQpIjxicj4mbmJz cDsuUEQ8YnI+LUNvbmZpZ3VyZSB0aGUgdGltZXIgdG8gdHJpZ2dlciBhZnRlciBcZihDV1wqKENg YWZ0ZXJcKihDJ1xmUiBzZWNvbmRzLiBJZiBcZihDV1wqKENgcmVwZWF0XCooQydcZlI8YnI+LWlz IFxmKENXMC5cZlIsIHRoZW4gaXQgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIHN0b3BwZWQgb25jZSB0 aGUgdGltZW91dCBpczxicj4tcmVhY2hlZC4gSWYgaXQgaXMgcG9zaXRpdmUsIHRoZW4gdGhlIHRp bWVyIHdpbGwgYXV0b21hdGljYWxseSBiZTxicj4tY29uZmlndXJlZCB0byB0cmlnZ2VyIGFnYWlu IFxmKENXXCooQ2ByZXBlYXRcKihDJ1xmUiBzZWNvbmRzIGxhdGVyLCBhZ2FpbiwgYW5kIGFnYWlu LDxicj4tdW50aWwgc3RvcHBlZCBtYW51YWxseS48YnI+K0NvbmZpZ3VyZSB0aGUgdGltZXIgdG8g dHJpZ2dlciBhZnRlciBcZihDV1wqKENgYWZ0ZXJcKihDJ1xmUiBzZWNvbmRzIChmcmFjdGlvbmFs IGFuZDxicj4rbmVnYXRpdmUgdmFsdWVzIGFyZSBzdXBwb3J0ZWQpLiBJZiBcZihDV1wqKENgcmVw ZWF0XCooQydcZlIgaXMgXGYoQ1cwLlxmUiwgdGhlbiBpdCB3aWxsPGJyPithdXRvbWF0aWNhbGx5 IGJlIHN0b3BwZWQgb25jZSB0aGUgdGltZW91dCBpcyByZWFjaGVkLiBJZiBpdCBpcyBwb3NpdGl2 ZSw8YnI+K3RoZW4gdGhlIHRpbWVyIHdpbGwgYXV0b21hdGljYWxseSBiZSBjb25maWd1cmVkIHRv IHRyaWdnZXIgYWdhaW4gXGYoQ1dcKihDYHJlcGVhdFwqKEMnXGZSPGJyPitzZWNvbmRzIGxhdGVy LCBhZ2FpbiwgYW5kIGFnYWluLCB1bnRpbCBzdG9wcGVkIG1hbnVhbGx5Ljxicj4mbmJzcDsuU3A8 YnI+Jm5ic3A7VGhlIHRpbWVyIGl0c2VsZiB3aWxsIGRvIGEgYmVzdC1lZmZvcnQgYXQgYXZvaWRp bmcgZHJpZnQsIHRoYXQgaXMsIGlmPGJyPiZuYnNwO3lvdSBjb25maWd1cmUgYSB0aW1lciB0byB0 cmlnZ2VyIGV2ZXJ5IDEwIHNlY29uZHMsIHRoZW4gaXQgd2lsbCBub3JtYWxseTxicj5AQCAtMjM2 Myw4ICsyNDc0LDggQEAgaXQsIGFzIGl0IHVzZXMgYSByZWxhdGl2ZSB0aW1lb3V0KS48YnI+Jm5i c3A7LlBQPGJyPiZuYnNwO1wmYW1wO1xmKENXXCooQ2Bldl9wZXJpb2RpY1wqKEMnXGZSIHdhdGNo ZXJzIGNhbiBhbHNvIGJlIHVzZWQgdG8gaW1wbGVtZW50IHZhc3RseSBtb3JlIGNvbXBsZXg8YnI+ Jm5ic3A7dGltZXJzLCBzdWNoIGFzIHRyaWdnZXJpbmcgYW4gZXZlbnQgb24gZWFjaCBcKihMIm1p ZG5pZ2h0LCBsb2NhbCB0aW1lXCooUiIsIG9yPGJyPi1vdGhlciBjb21wbGljYXRlZCBydWxlcy4g VGhpcyBjYW5ub3QgYmUgZG9uZSB3aXRoIFxmKENXXCooQ2Bldl90aW1lclwqKEMnXGZSIHdhdGNo ZXJzLCBhczxicj4tdGhvc2UgY2Fubm90IHJlYWN0IHRvIHRpbWUganVtcHMuPGJyPitvdGhlciBj b21wbGljYXRlZCBydWxlcy4gVGhpcyBjYW5ub3QgZWFzaWx5IGJlIGRvbmUgd2l0aCBcZihDV1wq KENgZXZfdGltZXJcKihDJ1xmUjxicj4rd2F0Y2hlcnMsIGFzIHRob3NlIGNhbm5vdCByZWFjdCB0 byB0aW1lIGp1bXBzLjxicj4mbmJzcDsuUFA8YnI+Jm5ic3A7QXMgd2l0aCB0aW1lcnMsIHRoZSBj YWxsYmFjayBpcyBndWFyYW50ZWVkIHRvIGJlIGludm9rZWQgb25seSB3aGVuIHRoZTxicj4mbmJz cDtwb2ludCBpbiB0aW1lIHdoZXJlIGl0IGlzIHN1cHBvc2VkIHRvIHRyaWdnZXIgaGFzIHBhc3Nl ZC4gSWYgbXVsdGlwbGU8YnI+QEAgLTI0MzUsNyArMjU0Niw3IEBAIGlnbm9yZWQuIEluc3RlYWQs IGVhY2ggdGltZSB0aGUgcGVyaW9kaWMgd2F0Y2hlciBnZXRzIHNjaGVkdWxlZCwgdGhlPGJyPiZu YnNwO3Jlc2NoZWR1bGUgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGUgd2F0Y2hlciBh cyBmaXJzdCwgYW5kIHRoZTxicj4mbmJzcDtjdXJyZW50IHRpbWUgYXMgc2Vjb25kIGFyZ3VtZW50 Ljxicj4mbmJzcDsuU3A8YnI+LVwmYW1wO1xzLTFOT1RFOiBcczBcZklUaGlzIGNhbGxiYWNrIFxz LTFNVVNUIE5PVFxzMCBzdG9wIG9yIGRlc3Ryb3kgYW55IHBlcmlvZGljIHdhdGNoZXIsIGV2ZXIs PGJyPitcJmFtcDtccy0xTk9URTpcczAgXGZJVGhpcyBjYWxsYmFjayBccy0xTVVTVCBOT1RcczAg c3RvcCBvciBkZXN0cm95IGFueSBwZXJpb2RpYyB3YXRjaGVyLCBldmVyLDxicj4mbmJzcDtvciBt YWtlIFxzLTFBTllcczAgb3RoZXIgZXZlbnQgbG9vcCBtb2RpZmljYXRpb25zIHdoYXRzb2V2ZXIs IHVubGVzcyBleHBsaWNpdGx5PGJyPiZuYnNwO2FsbG93ZWQgYnkgZG9jdW1lbnRhdGlvbiBoZXJl XGZSLjxicj4mbmJzcDsuU3A8YnI+QEAgLTI0NTksMTQgKzI1NzAsMzQgQEAgSXQgbXVzdCByZXR1 cm4gdGhlIG5leHQgdGltZSB0byB0cmlnZ2VyLCBiYXNlZCBvbiB0aGUgcGFzc2VkIHRpbWUgdmFs dWU8YnI+Jm5ic3A7d2lsbCB1c3VhbGx5IGJlIGNhbGxlZCBqdXN0IGJlZm9yZSB0aGUgY2FsbGJh Y2sgd2lsbCBiZSB0cmlnZ2VyZWQsIGJ1dDxicj4mbmJzcDttaWdodCBiZSBjYWxsZWQgYXQgb3Ro ZXIgdGltZXMsIHRvby48YnI+Jm5ic3A7LlNwPGJyPi1cJmFtcDtccy0xTk9URTogXHMwXGZJVGhp cyBjYWxsYmFjayBtdXN0IGFsd2F5cyByZXR1cm4gYSB0aW1lIHRoYXQgaXMgaGlnaGVyIHRoYW4g b3I8YnI+K1wmYW1wO1xzLTFOT1RFOlxzMCBcZklUaGlzIGNhbGxiYWNrIG11c3QgYWx3YXlzIHJl dHVybiBhIHRpbWUgdGhhdCBpcyBoaWdoZXIgdGhhbiBvcjxicj4mbmJzcDtlcXVhbCB0byB0aGUg cGFzc2VkIFxmKENJXCooQ2Bub3dcKihDJ1xmSSB2YWx1ZVxmUi48YnI+Jm5ic3A7LlNwPGJyPiZu YnNwO1RoaXMgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIHZlcnkgY29tcGxleCB0aW1lcnMsIHN1Y2gg YXMgYSB0aW1lciB0aGF0PGJyPi10cmlnZ2VycyBvbiBcKihMIm5leHQgbWlkbmlnaHQsIGxvY2Fs IHRpbWVcKihSIi4gVG8gZG8gdGhpcywgeW91IHdvdWxkIGNhbGN1bGF0ZSB0aGU8YnI+LW5leHQg bWlkbmlnaHQgYWZ0ZXIgXGYoQ1dcKihDYG5vd1wqKEMnXGZSIGFuZCByZXR1cm4gdGhlIHRpbWVz dGFtcCB2YWx1ZSBmb3IgdGhpcy4gSG93PGJyPi15b3UgZG8gdGhpcyBpcywgYWdhaW4sIHVwIHRv IHlvdSAoYnV0IGl0IGlzIG5vdCB0cml2aWFsLCB3aGljaCBpcyB0aGUgbWFpbjxicj4tcmVhc29u IEkgb21pdHRlZCBpdCBhcyBhbiBleGFtcGxlKS48YnI+K3RyaWdnZXJzIG9uIFwqKEwibmV4dCBt aWRuaWdodCwgbG9jYWwgdGltZVwqKFIiLiBUbyBkbyB0aGlzLCB5b3Ugd291bGQgY2FsY3VsYXRl PGJyPit0aGUgbmV4dCBtaWRuaWdodCBhZnRlciBcZihDV1wqKENgbm93XCooQydcZlIgYW5kIHJl dHVybiB0aGUgdGltZXN0YW1wIHZhbHVlIGZvcjxicj4rdGhpcy4gSGVyZSBpcyBhIChjb21wbGV0 ZWx5IHVudGVzdGVkLCBubyBlcnJvciBjaGVja2luZykgZXhhbXBsZSBvbiBob3cgdG88YnI+K2Rv IHRoaXM6PGJyPisuU3A8YnI+Ky5WYiAxPGJyPitcJmFtcDsgJm5ic3A7ICNpbmNsdWRlICZsdDt0 aW1lLmgmZ3Q7PGJyPitcJmFtcDs8YnI+K1wmYW1wOyAmbmJzcDsgc3RhdGljIGV2X3RzdGFtcDxi cj4rXCZhbXA7ICZuYnNwOyBteV9yZXNjaGVkdWxlciAoZXZfcGVyaW9kaWMgKncsIGV2X3RzdGFt cCBub3cpPGJyPitcJmFtcDsgJm5ic3A7IHs8YnI+K1wmYW1wOyAmbmJzcDsgJm5ic3A7IHRpbWVf dCB0bm93ID0gKHRpbWVfdClub3c7PGJyPitcJmFtcDsgJm5ic3A7ICZuYnNwOyBzdHJ1Y3QgdG0g dG07PGJyPitcJmFtcDsgJm5ic3A7ICZuYnNwOyBsb2NhbHRpbWVfciAoJmFtcDt0bm93LCAmYW1w O3RtKTs8YnI+K1wmYW1wOzxicj4rXCZhbXA7ICZuYnNwOyAmbmJzcDsgdG0udG1fc2VjID0gdG0u dG1fbWluID0gdG0udG1faG91ciA9IDA7IC8vIG1pZG5pZ2h0IGN1cnJlbnQgZGF5PGJyPitcJmFt cDsgJm5ic3A7ICZuYnNwOyArK3RtLnRtX21kYXk7IC8vIG1pZG5pZ2h0IG5leHQgZGF5PGJyPitc JmFtcDs8YnI+K1wmYW1wOyAmbmJzcDsgJm5ic3A7IHJldHVybiBta3RpbWUgKCZhbXA7dG0pOzxi cj4rXCZhbXA7ICZuYnNwOyB9PGJyPisuVmU8YnI+Ky5TcDxicj4rTm90ZTogdGhpcyBjb2RlIG1p Z2h0IHJ1biBpbnRvIHRyb3VibGUgb24gZGF5cyB0aGF0IGhhdmUgbW9yZSB0aGVuIHR3bzxicj4r bWlkbmlnaHRzIChiZWdpbm5pbmcgYW5kIGVuZCkuPGJyPiZuYnNwOy5SRTxicj4mbmJzcDsuUlMg NDxicj4mbmJzcDsuUkU8YnI+QEAgLTI1OTQsNyArMjcyNSw3IEBAIHRvIGluc3RhbGwgYSBmb3Jr IGhhbmRsZXIgd2l0aCBcZihDV1wqKENgcHRocmVhZF9hdGZvcmtcKihDJ1xmUiB0aGF0IHJlc2V0 cyBpdC48YnI+Jm5ic3A7Y2F0Y2ggZm9yayBjYWxscyBkb25lIGJ5IGxpYnJhcmllcyAoc3VjaCBh cyB0aGUgbGliYykgYXMgd2VsbC48YnI+Jm5ic3A7LlBQPGJyPiZuYnNwO0luIGN1cnJlbnQgdmVy c2lvbnMgb2YgbGliZXYsIHRoZSBzaWduYWwgd2lsbCBub3QgYmUgYmxvY2tlZCBpbmRlZmluaXRl bHk8YnI+LXVubGVzcyB5b3UgdXNlIHRoZSBcZihDV1wqKENgc2lnbmFsZmRcKihDJ1xmUiBccy0x QVBJIFxzMChcZihDV1wqKENgRVZfU0lHTkFMRkRcKihDJ1xmUikuIFdoaWxlIHRoaXMgcmVkdWNl czxicj4rdW5sZXNzIHlvdSB1c2UgdGhlIFxmKENXXCooQ2BzaWduYWxmZFwqKEMnXGZSIFxzLTFB UElcczAgKFxmKENXXCooQ2BFVl9TSUdOQUxGRFwqKEMnXGZSKS4gV2hpbGUgdGhpcyByZWR1Y2Vz PGJyPiZuYnNwO3RoZSB3aW5kb3cgb2Ygb3Bwb3J0dW5pdHkgZm9yIHByb2JsZW1zLCBpdCB3aWxs IG5vdCBnbyBhd2F5LCBhcyBsaWJldjxicj4mbmJzcDtcJmFtcDtcZkloYXNcZlIgdG8gbW9kaWZ5 IHRoZSBzaWduYWwgbWFzaywgYXQgbGVhc3QgdGVtcG9yYXJpbHkuPGJyPiZuYnNwOy5QUDxicj5A QCAtMzY0Niw4ICszNzc3LDggQEAgbm90aWZpY2F0aW9uLCBhbmQgdGhlIGNhbGxiYWNrIGJlaW5n IGludm9rZWQuPGJyPiZuYnNwOy5TSCAiT1RIRVIgRlVOQ1RJT05TIjxicj4mbmJzcDsuSVggSGVh ZGVyICJPVEhFUiBGVU5DVElPTlMiPGJyPiZuYnNwO1RoZXJlIGFyZSBzb21lIG90aGVyIGZ1bmN0 aW9ucyBvZiBwb3NzaWJsZSBpbnRlcmVzdC4gRGVzY3JpYmVkLiBIZXJlLiBOb3cuPGJyPi0uSVAg ImV2X29uY2UgKGxvb3AsIGludCBmZCwgaW50IGV2ZW50cywgZXZfdHN0YW1wIHRpbWVvdXQsIGNh bGxiYWNrKSIgNDxicj4tLklYIEl0ZW0gImV2X29uY2UgKGxvb3AsIGludCBmZCwgaW50IGV2ZW50 cywgZXZfdHN0YW1wIHRpbWVvdXQsIGNhbGxiYWNrKSI8YnI+Ky5JUCAiZXZfb25jZSAobG9vcCwg aW50IGZkLCBpbnQgZXZlbnRzLCBldl90c3RhbXAgdGltZW91dCwgY2FsbGJhY2ssIGFyZykiIDQ8 YnI+Ky5JWCBJdGVtICJldl9vbmNlIChsb29wLCBpbnQgZmQsIGludCBldmVudHMsIGV2X3RzdGFt cCB0aW1lb3V0LCBjYWxsYmFjaywgYXJnKSI8YnI+Jm5ic3A7VGhpcyBmdW5jdGlvbiBjb21iaW5l cyBhIHNpbXBsZSB0aW1lciBhbmQgYW4gSS9PIHdhdGNoZXIsIGNhbGxzIHlvdXI8YnI+Jm5ic3A7 Y2FsbGJhY2sgb24gd2hpY2hldmVyIGV2ZW50IGhhcHBlbnMgZmlyc3QgYW5kIGF1dG9tYXRpY2Fs bHkgc3RvcHMgYm90aDxicj4mbmJzcDt3YXRjaGVycy4gVGhpcyBpcyB1c2VmdWwgaWYgeW91IHdh bnQgdG8gd2FpdCBmb3IgYSBzaW5nbGUgZXZlbnQgb24gYW4gZmQ8YnI+QEAgLTQxMDcsMTUgKzQy MzgsMTUgQEAgbGliZXYgc291cmNlcyBjYW4gYmUgY29tcGlsZWQgYXMgXCooQysuIFRoZXJlZm9y ZSwgY29kZSB0aGF0IHVzZXMgdGhlIEMgXHMtMUFQSVw8YnI+Jm5ic3A7d2lsbCB3b3JrIGZpbmUu PGJyPiZuYnNwOy5QUDxicj4mbmJzcDtQcm9wZXIgZXhjZXB0aW9uIHNwZWNpZmljYXRpb25zIG1p Z2h0IGhhdmUgdG8gYmUgYWRkZWQgdG8gY2FsbGJhY2tzIHBhc3NlZDxicj4tdG8gbGliZXY6IGV4 Y2VwdGlvbnMgbWF5IGJlIHRocm93biBvbmx5IGZyb20gd2F0Y2hlciBjYWxsYmFja3MsIGFsbDxi cj4tb3RoZXIgY2FsbGJhY2tzIChhbGxvY2F0b3IsIHN5c2VyciwgbG9vcCBhY3F1aXJlL3JlbGVh c2UgYW5kIHBlcmlvZGljPGJyPi1yZXNjaGVkdWxlIGNhbGxiYWNrcykgbXVzdCBub3QgdGhyb3cg ZXhjZXB0aW9ucywgYW5kIG1pZ2h0IG5lZWQgYSBcZihDV1wqKENgdGhyb3c8YnI+LSgpXCooQydc ZlIgc3BlY2lmaWNhdGlvbi4gSWYgeW91IGhhdmUgY29kZSB0aGF0IG5lZWRzIHRvIGJlIGNvbXBp bGVkIGFzIGJvdGggQzxicj4tYW5kIFwqKEMrIHlvdSBjYW4gdXNlIHRoZSBcZihDV1wqKENgRVZf VEhST1dcKihDJ1xmUiBtYWNybyBmb3IgdGhpczo8YnI+K3RvIGxpYmV2OiBleGNlcHRpb25zIG1h eSBiZSB0aHJvd24gb25seSBmcm9tIHdhdGNoZXIgY2FsbGJhY2tzLCBhbGwgb3RoZXI8YnI+K2Nh bGxiYWNrcyAoYWxsb2NhdG9yLCBzeXNlcnIsIGxvb3AgYWNxdWlyZS9yZWxlYXNlIGFuZCBwZXJp b2RpYyByZXNjaGVkdWxlPGJyPitjYWxsYmFja3MpIG11c3Qgbm90IHRocm93IGV4Y2VwdGlvbnMs IGFuZCBtaWdodCBuZWVkIGEgXGYoQ1dcKihDYG5vZXhjZXB0XCooQydcZlI8YnI+K3NwZWNpZmlj YXRpb24uIElmIHlvdSBoYXZlIGNvZGUgdGhhdCBuZWVkcyB0byBiZSBjb21waWxlZCBhcyBib3Ro IEMgYW5kPGJyPitcJmFtcDtcKihDKyB5b3UgY2FuIHVzZSB0aGUgXGYoQ1dcKihDYEVWX05PRVhD RVBUXCooQydcZlIgbWFjcm8gZm9yIHRoaXM6PGJyPiZuYnNwOy5QUDxicj4mbmJzcDsuVmIgNjxi cj4mbmJzcDtcJmFtcDsgJm5ic3A7IHN0YXRpYyB2b2lkPGJyPi1cJmFtcDsgJm5ic3A7IGZhdGFs X2Vycm9yIChjb25zdCBjaGFyICptc2cpIEVWX1RIUk9XPGJyPitcJmFtcDsgJm5ic3A7IGZhdGFs X2Vycm9yIChjb25zdCBjaGFyICptc2cpIEVWX05PRVhDRVBUPGJyPiZuYnNwO1wmYW1wOyAmbmJz cDsgezxicj4mbmJzcDtcJmFtcDsgJm5ic3A7ICZuYnNwOyBwZXJyb3IgKG1zZyk7PGJyPiZuYnNw O1wmYW1wOyAmbmJzcDsgJm5ic3A7IGFib3J0ICgpOzxicj5AQCAtNDI4OSw2ICs0NDIwLDkgQEAg bWV0aG9kLjxicj4mbmJzcDsuU3A8YnI+Jm5ic3A7Rm9yIFxmKENXXCooQ2Bldjo6ZW1iZWRcKihD J1xmUiB3YXRjaGVycyB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgXGYoQ1dcKihDYHNldF9lbWJlZFwq KEMnXGZSLCB0byBhdm9pZDxicj4mbmJzcDtjbGFzaGluZyB3aXRoIHRoZSBcZihDV1wqKENgc2V0 IChsb29wKVwqKEMnXGZSIG1ldGhvZC48YnI+Ky5TcDxicj4rRm9yIFxmKENXXCooQ2Bldjo6aW9c KihDJ1xmUiB3YXRjaGVycyB0aGVyZSBpcyBhbiBhZGRpdGlvbmFsIFxmKENXXCooQ2BzZXRcKihD J1xmUiBtZXRob2QgdGhhdCBhY2VwdHMgYTxicj4rbmV3IGV2ZW50IG1hc2sgb25seSwgYW5kIGlu dGVybmFsbHkgY2FsbHMgXGYoQ1dcKihDYGV2X2lvX21vZGZpZnlcKihDJ1xmUi48YnI+Jm5ic3A7 LklQICJ3XC0mZ3Q7c3RhcnQgKCkiIDQ8YnI+Jm5ic3A7LklYIEl0ZW0gInctJmd0O3N0YXJ0ICgp Ijxicj4mbmJzcDtTdGFydHMgdGhlIHdhdGNoZXIuIE5vdGUgdGhhdCB0aGVyZSBpcyBubyBcZihD V1wqKENgbG9vcFwqKEMnXGZSIGFyZ3VtZW50LCBhcyB0aGU8YnI+QEAgLTQ0OTksNyArNDYzMyw3 IEBAIGNvbmZpZ3VyYXRpb24gKG5vIGF1dG9jb25mKTo8YnI+Jm5ic3A7LlBQPGJyPiZuYnNwO1Ro aXMgd2lsbCBhdXRvbWF0aWNhbGx5IGluY2x1ZGUgXGZJZXYuaFxmUiwgdG9vLCBhbmQgc2hvdWxk IGJlIGRvbmUgaW4gYTxicj4mbmJzcDtzaW5nbGUgQyBzb3VyY2UgZmlsZSBvbmx5IHRvIHByb3Zp ZGUgdGhlIGZ1bmN0aW9uIGltcGxlbWVudGF0aW9ucy4gVG8gdXNlPGJyPi1pdCwgZG8gdGhlIHNh bWUgZm9yIFxmSWV2LmhcZlIgaW4gYWxsIGZpbGVzIHdpc2hpbmcgdG8gdXNlIHRoaXMgXHMtMUFQ SSBcczAoYmVzdDxicj4raXQsIGRvIHRoZSBzYW1lIGZvciBcZklldi5oXGZSIGluIGFsbCBmaWxl cyB3aXNoaW5nIHRvIHVzZSB0aGlzIFxzLTFBUElcczAgKGJlc3Q8YnI+Jm5ic3A7ZG9uZSBieSB3 cml0aW5nIGEgd3JhcHBlciBhcm91bmQgXGZJZXYuaFxmUiB0aGF0IHlvdSBjYW4gaW5jbHVkZSBp bnN0ZWFkIGFuZDxicj4mbmJzcDt3aGVyZSB5b3UgY2FuIHB1dCBvdGhlciBjb25maWd1cmF0aW9u IG9wdGlvbnMpOjxicj4mbmJzcDsuUFA8YnI+QEAgLTQ1MjMsMTEgKzQ2NTcsMTMgQEAgaW4geW91 ciBpbmNsdWRlIHBhdGggKGUuZy4gaW4gbGliZXYvIHdoZW4gdXNpbmcgXC1JbGliZXYpOjxicj4m bmJzcDtcJmFtcDs8YnI+Jm5ic3A7XCZhbXA7ICZuYnNwOyBldl93aW4zMi5jICZuYnNwOyAmbmJz cDsgJm5ic3A7cmVxdWlyZWQgb24gd2luMzIgcGxhdGZvcm1zIG9ubHk8YnI+Jm5ic3A7XCZhbXA7 PGJyPi1cJmFtcDsgJm5ic3A7IGV2X3NlbGVjdC5jICZuYnNwOyAmbmJzcDsgb25seSB3aGVuIHNl bGVjdCBiYWNrZW5kIGlzIGVuYWJsZWQgKHdoaWNoIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCk8YnI+ LVwmYW1wOyAmbmJzcDsgZXZfcG9sbC5jICZuYnNwOyAmbmJzcDsgJm5ic3A7IG9ubHkgd2hlbiBw b2xsIGJhY2tlbmQgaXMgZW5hYmxlZCAoZGlzYWJsZWQgYnkgZGVmYXVsdCk8YnI+LVwmYW1wOyAm bmJzcDsgZXZfZXBvbGwuYyAmbmJzcDsgJm5ic3A7ICZuYnNwO29ubHkgd2hlbiB0aGUgZXBvbGwg YmFja2VuZCBpcyBlbmFibGVkIChkaXNhYmxlZCBieSBkZWZhdWx0KTxicj4tXCZhbXA7ICZuYnNw OyBldl9rcXVldWUuYyAmbmJzcDsgJm5ic3A7IG9ubHkgd2hlbiB0aGUga3F1ZXVlIGJhY2tlbmQg aXMgZW5hYmxlZCAoZGlzYWJsZWQgYnkgZGVmYXVsdCk8YnI+LVwmYW1wOyAmbmJzcDsgZXZfcG9y dC5jICZuYnNwOyAmbmJzcDsgJm5ic3A7IG9ubHkgd2hlbiB0aGUgc29sYXJpcyBwb3J0IGJhY2tl bmQgaXMgZW5hYmxlZCAoZGlzYWJsZWQgYnkgZGVmYXVsdCk8YnI+K1wmYW1wOyAmbmJzcDsgZXZf c2VsZWN0LmMgJm5ic3A7ICZuYnNwOyBvbmx5IHdoZW4gc2VsZWN0IGJhY2tlbmQgaXMgZW5hYmxl ZDxicj4rXCZhbXA7ICZuYnNwOyBldl9wb2xsLmMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgb25seSB3 aGVuIHBvbGwgYmFja2VuZCBpcyBlbmFibGVkPGJyPitcJmFtcDsgJm5ic3A7IGV2X2Vwb2xsLmMg Jm5ic3A7ICZuYnNwOyAmbmJzcDtvbmx5IHdoZW4gdGhlIGVwb2xsIGJhY2tlbmQgaXMgZW5hYmxl ZDxicj4rXCZhbXA7ICZuYnNwOyBldl9saW51eGFpby5jICZuYnNwOyBvbmx5IHdoZW4gdGhlIGxp bnV4IGFpbyBiYWNrZW5kIGlzIGVuYWJsZWQ8YnI+K1wmYW1wOyAmbmJzcDsgZXZfaW91cmluZy5j ICZuYnNwOyAmbmJzcDtvbmx5IHdoZW4gdGhlIGxpbnV4IGlvX3VyaW5nIGJhY2tlbmQgaXMgZW5h YmxlZDxicj4rXCZhbXA7ICZuYnNwOyBldl9rcXVldWUuYyAmbmJzcDsgJm5ic3A7IG9ubHkgd2hl biB0aGUga3F1ZXVlIGJhY2tlbmQgaXMgZW5hYmxlZDxicj4rXCZhbXA7ICZuYnNwOyBldl9wb3J0 LmMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgb25seSB3aGVuIHRoZSBzb2xhcmlzIHBvcnQgYmFja2Vu ZCBpcyBlbmFibGVkPGJyPiZuYnNwOy5WZTxicj4mbmJzcDsuUFA8YnI+Jm5ic3A7XCZhbXA7XGZJ ZXYuY1xmUiBpbmNsdWRlcyB0aGUgYmFja2VuZCBmaWxlcyBkaXJlY3RseSB3aGVuIGVuYWJsZWQs IHNvIHlvdSBvbmx5IG5lZWQ8YnI+QEAgLTQ1ODIsNyArNDcxOCw3IEBAIHRvIHJlZGVmaW5lIHRo ZW0gYmVmb3JlIGluY2x1ZGluZyBcZklldi5oXGZSIHdpdGhvdXQgYnJlYWtpbmcgY29tcGF0aWJp bGl0eTxicj4mbmJzcDt0byBhIGNvbXBpbGVkIGxpYnJhcnkuIEFsbCBvdGhlciBzeW1ib2xzIGNo YW5nZSB0aGUgXHMtMUFCSSxcczAgd2hpY2ggbWVhbnMgYWxsPGJyPiZuYnNwO3VzZXJzIG9mIGxp YmV2IGFuZCB0aGUgbGliZXYgY29kZSBpdHNlbGYgbXVzdCBiZSBjb21waWxlZCB3aXRoIGNvbXBh dGlibGU8YnI+Jm5ic3A7c2V0dGluZ3MuPGJyPi0uSVAgIlxzLTFFVl9DT01QQVQzIFxzMChoKSIg NDxicj4rLklQICJccy0xRVZfQ09NUEFUM1xzMCAoaCkiIDQ8YnI+Jm5ic3A7LklYIEl0ZW0gIkVW X0NPTVBBVDMgKGgpIjxicj4mbmJzcDtCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBpcyBhIG1ham9y IGNvbmNlcm4gZm9yIGxpYmV2LiBUaGlzIGlzIHdoeSB0aGlzPGJyPiZuYnNwO3JlbGVhc2Ugb2Yg bGliZXYgY29tZXMgd2l0aCB3cmFwcGVycyBmb3IgdGhlIGZ1bmN0aW9ucyBhbmQgc3ltYm9scyB0 aGF0PGJyPkBAIC00NTk3LDcgKzQ3MzMsNyBAQCB0eXBlZGVmIGluIHRoYXQgY2FzZS48YnI+Jm5i c3A7SW4gc29tZSBmdXR1cmUgdmVyc2lvbiwgdGhlIGRlZmF1bHQgZm9yIFxmKENXXCooQ2BFVl9D T01QQVQzXCooQydcZlIgd2lsbCBiZWNvbWUgXGYoQ1cwXGZSLDxicj4mbmJzcDthbmQgaW4gc29t ZSBldmVuIG1vcmUgZnV0dXJlIHZlcnNpb24gdGhlIGNvbXBhdGliaWxpdHkgY29kZSB3aWxsIGJl PGJyPiZuYnNwO3JlbW92ZWQgY29tcGxldGVseS48YnI+LS5JUCAiXHMtMUVWX1NUQU5EQUxPTkUg XHMwKGgpIiA0PGJyPisuSVAgIlxzLTFFVl9TVEFOREFMT05FXHMwIChoKSIgNDxicj4mbmJzcDsu SVggSXRlbSAiRVZfU1RBTkRBTE9ORSAoaCkiPGJyPiZuYnNwO011c3QgYWx3YXlzIGJlIFxmKENX MVxmUiBpZiB5b3UgZG8gbm90IHVzZSBhdXRvY29uZiBjb25maWd1cmF0aW9uLCB3aGljaDxicj4m bmJzcDtrZWVwcyBsaWJldiBmcm9tIGluY2x1ZGluZyBcZkljb25maWcuaFxmUiwgYW5kIGl0IGFs c28gZGVmaW5lcyBkdW1teTxicj5AQCAtNDY1NSw2ICs0NzkxLDI3IEBAIGF2YWlsYWJsZSBhbmQg d2lsbCBwcm9iZSBmb3Iga2VybmVsIHN1cHBvcnQgYXQgcnVudGltZS4gVGhpcyB3aWxsIGltcHJv dmU8YnI+Jm5ic3A7XCZhbXA7XGYoQ1dcKihDYGV2X3NpZ25hbFwqKEMnXGZSIGFuZCBcZihDV1wq KENgZXZfYXN5bmNcKihDJ1xmUiBwZXJmb3JtYW5jZSBhbmQgcmVkdWNlIHJlc291cmNlIGNvbnN1 bXB0aW9uLjxicj4mbmJzcDtJZiB1bmRlZmluZWQsIGl0IHdpbGwgYmUgZW5hYmxlZCBpZiB0aGUg aGVhZGVycyBpbmRpY2F0ZSBHTlUvTGludXggKyBHbGliYzxicj4mbmJzcDsyLjcgb3IgbmV3ZXIs IG90aGVyd2lzZSBkaXNhYmxlZC48YnI+Ky5JUCAiXHMtMUVWX1VTRV9TSUdOQUxGRFxzMCIgNDxi cj4rLklYIEl0ZW0gIkVWX1VTRV9TSUdOQUxGRCI8YnI+K0lmIGRlZmluZWQgdG8gYmUgXGYoQ1cx XGZSLCB0aGVuIGxpYmV2IHdpbGwgYXNzdW1lIHRoYXQgXGYoQ1dcKihDYHNpZ25hbGZkICgpXCoo QydcZlIgaXM8YnI+K2F2YWlsYWJsZSBhbmQgd2lsbCBwcm9iZSBmb3Iga2VybmVsIHN1cHBvcnQg YXQgcnVudGltZS4gVGhpcyBlbmFibGVzPGJyPit0aGUgdXNlIG9mIFxzLTFFVkZMQUdfU0lHTkFM RkRcczAgZm9yIGZhc3RlciBhbmQgc2ltcGxlciBzaWduYWwgaGFuZGxpbmcuIElmPGJyPit1bmRl ZmluZWQsIGl0IHdpbGwgYmUgZW5hYmxlZCBpZiB0aGUgaGVhZGVycyBpbmRpY2F0ZSBHTlUvTGlu dXggKyBHbGliYzxicj4rMi43IG9yIG5ld2VyLCBvdGhlcndpc2UgZGlzYWJsZWQuPGJyPisuSVAg IlxzLTFFVl9VU0VfVElNRVJGRFxzMCIgNDxicj4rLklYIEl0ZW0gIkVWX1VTRV9USU1FUkZEIjxi cj4rSWYgZGVmaW5lZCB0byBiZSBcZihDVzFcZlIsIHRoZW4gbGliZXYgd2lsbCBhc3N1bWUgdGhh dCBcZihDV1wqKENgdGltZXJmZCAoKVwqKEMnXGZSIGlzPGJyPithdmFpbGFibGUgYW5kIHdpbGwg cHJvYmUgZm9yIGtlcm5lbCBzdXBwb3J0IGF0IHJ1bnRpbWUuIFRoaXMgYWxsb3dzPGJyPitsaWJl diB0byBkZXRlY3QgdGltZSBqdW1wcyBhY2N1cmF0ZWx5LiBJZiB1bmRlZmluZWQsIGl0IHdpbGwg YmUgZW5hYmxlZDxicj4raWYgdGhlIGhlYWRlcnMgaW5kaWNhdGUgR05VL0xpbnV4ICsgR2xpYmMg Mi44IG9yIG5ld2VyIGFuZCBkZWZpbmU8YnI+K1wmYW1wO1xmKENXXCooQ2BURkRfVElNRVJfQ0FO Q0VMX09OX1NFVFwqKEMnXGZSLCBvdGhlcndpc2UgZGlzYWJsZWQuPGJyPisuSVAgIlxzLTFFVl9V U0VfRVZFTlRGRFxzMCIgNDxicj4rLklYIEl0ZW0gIkVWX1VTRV9FVkVOVEZEIjxicj4rSWYgZGVm aW5lZCB0byBiZSBcZihDVzFcZlIsIHRoZW4gbGliZXYgd2lsbCBhc3N1bWUgdGhhdCBcZihDV1wq KENgZXZlbnRmZCAoKVwqKEMnXGZSIGlzPGJyPithdmFpbGFibGUgYW5kIHdpbGwgcHJvYmUgZm9y IGtlcm5lbCBzdXBwb3J0IGF0IHJ1bnRpbWUuIFRoaXMgd2lsbCBpbXByb3ZlPGJyPitcJmFtcDtc ZihDV1wqKENgZXZfc2lnbmFsXCooQydcZlIgYW5kIFxmKENXXCooQ2Bldl9hc3luY1wqKEMnXGZS IHBlcmZvcm1hbmNlIGFuZCByZWR1Y2UgcmVzb3VyY2UgY29uc3VtcHRpb24uPGJyPitJZiB1bmRl ZmluZWQsIGl0IHdpbGwgYmUgZW5hYmxlZCBpZiB0aGUgaGVhZGVycyBpbmRpY2F0ZSBHTlUvTGlu dXggKyBHbGliYzxicj4rMi43IG9yIG5ld2VyLCBvdGhlcndpc2UgZGlzYWJsZWQuPGJyPiZuYnNw Oy5JUCAiXHMtMUVWX1VTRV9TRUxFQ1RcczAiIDQ8YnI+Jm5ic3A7LklYIEl0ZW0gIkVWX1VTRV9T RUxFQ1QiPGJyPiZuYnNwO0lmIHVuZGVmaW5lZCBvciBkZWZpbmVkIHRvIGJlIFxmKENXMVxmUiwg bGliZXYgd2lsbCBjb21waWxlIGluIHN1cHBvcnQgZm9yIHRoZTxicj5AQCAtNDcxNiw2ICs0ODcz LDE3IEBAIElmIGRlZmluZWQgdG8gYmUgXGYoQ1cxXGZSLCBsaWJldiB3aWxsIGNvbXBpbGUgaW4g c3VwcG9ydCBmb3IgdGhlIExpbnV4PGJyPiZuYnNwO290aGVyd2lzZSBhbm90aGVyIG1ldGhvZCB3 aWxsIGJlIHVzZWQgYXMgZmFsbGJhY2suIFRoaXMgaXMgdGhlIHByZWZlcnJlZDxicj4mbmJzcDti YWNrZW5kIGZvciBHTlUvTGludXggc3lzdGVtcy4gSWYgdW5kZWZpbmVkLCBpdCB3aWxsIGJlIGVu YWJsZWQgaWYgdGhlPGJyPiZuYnNwO2hlYWRlcnMgaW5kaWNhdGUgR05VL0xpbnV4ICsgR2xpYmMg Mi40IG9yIG5ld2VyLCBvdGhlcndpc2UgZGlzYWJsZWQuPGJyPisuSVAgIlxzLTFFVl9VU0VfTElO VVhBSU9cczAiIDQ8YnI+Ky5JWCBJdGVtICJFVl9VU0VfTElOVVhBSU8iPGJyPitJZiBkZWZpbmVk IHRvIGJlIFxmKENXMVxmUiwgbGliZXYgd2lsbCBjb21waWxlIGluIHN1cHBvcnQgZm9yIHRoZSBM aW51eCBhaW88YnI+K2JhY2tlbmQgKFxmKENXXCooQ2BFVl9VU0VfRVBPTExcKihDJ1xmUiBtdXN0 IGFsc28gYmUgZW5hYmxlZCkuIElmIHVuZGVmaW5lZCwgaXQgd2lsbCBiZTxicj4rZW5hYmxlZCBv biBsaW51eCwgb3RoZXJ3aXNlIGRpc2FibGVkLjxicj4rLklQICJccy0xRVZfVVNFX0lPVVJJTkdc czAiIDQ8YnI+Ky5JWCBJdGVtICJFVl9VU0VfSU9VUklORyI8YnI+K0lmIGRlZmluZWQgdG8gYmUg XGYoQ1cxXGZSLCBsaWJldiB3aWxsIGNvbXBpbGUgaW4gc3VwcG9ydCBmb3IgdGhlIExpbnV4PGJy Pitpb191cmluZyBiYWNrZW5kIChcZihDV1wqKENgRVZfVVNFX0VQT0xMXCooQydcZlIgbXVzdCBh bHNvIGJlIGVuYWJsZWQpLiBEdWUgdG8gaXQnczxicj4rY3VycmVudCBsaW1pdGF0aW9ucyBpdCBo YXMgdG8gYmUgcmVxdWVzdGVkIGV4cGxpY2l0bHkuIElmIHVuZGVmaW5lZCwgaXQ8YnI+K3dpbGwg YmUgZW5hYmxlZCBvbiBsaW51eCwgb3RoZXJ3aXNlIGRpc2FibGVkLjxicj4mbmJzcDsuSVAgIlxz LTFFVl9VU0VfS1FVRVVFXHMwIiA0PGJyPiZuYnNwOy5JWCBJdGVtICJFVl9VU0VfS1FVRVVFIjxi cj4mbmJzcDtJZiBkZWZpbmVkIHRvIGJlIFxmKENXMVxmUiwgbGliZXYgd2lsbCBjb21waWxlIGlu IHN1cHBvcnQgZm9yIHRoZSBccy0xQlNEXHMwIHN0eWxlPGJyPkBAIC00NzY1LDIxICs0OTMzLDIx IEBAIHdhdGNoZXJzLjxicj4mbmJzcDsuU3A8YnI+Jm5ic3A7SW4gdGhlIGFic2VuY2Ugb2YgdGhp cyBkZWZpbmUsIGxpYmV2IHdpbGwgdXNlIFxmKENXXCooQ2BzaWdfYXRvbWljX3Qgdm9sYXRpbGVc KihDJ1xmUjxicj4mbmJzcDsoZnJvbSBcZklzaWduYWwuaFxmUiksIHdoaWNoIGlzIHVzdWFsbHkg Z29vZCBlbm91Z2ggb24gbW9zdCBwbGF0Zm9ybXMuPGJyPi0uSVAgIlxzLTFFVl9IIFxzMChoKSIg NDxicj4rLklQICJccy0xRVZfSFxzMCAoaCkiIDQ8YnI+Jm5ic3A7LklYIEl0ZW0gIkVWX0ggKGgp Ijxicj4mbmJzcDtUaGUgbmFtZSBvZiB0aGUgXGZJZXYuaFxmUiBoZWFkZXIgZmlsZSB1c2VkIHRv IGluY2x1ZGUgaXQuIFRoZSBkZWZhdWx0IGlmPGJyPiZuYnNwO3VuZGVmaW5lZCBpcyBcZihDVyJl di5oIlxmUiBpbiBcZklldmVudC5oXGZSLCBcZklldi5jXGZSIGFuZCBcZklldisrLmhcZlIuIFRo aXMgY2FuIGJlPGJyPiZuYnNwO3VzZWQgdG8gdmlydHVhbGx5IHJlbmFtZSB0aGUgXGZJZXYuaFxm UiBoZWFkZXIgZmlsZSBpbiBjYXNlIG9mIGNvbmZsaWN0cy48YnI+LS5JUCAiXHMtMUVWX0NPTkZJ R19IIFxzMChoKSIgNDxicj4rLklQICJccy0xRVZfQ09ORklHX0hcczAgKGgpIiA0PGJyPiZuYnNw Oy5JWCBJdGVtICJFVl9DT05GSUdfSCAoaCkiPGJyPiZuYnNwO0lmIFxmKENXXCooQ2BFVl9TVEFO REFMT05FXCooQydcZlIgaXNuJ3QgXGYoQ1cxXGZSLCB0aGlzIHZhcmlhYmxlIGNhbiBiZSB1c2Vk IHRvIG92ZXJyaWRlPGJyPiZuYnNwO1wmYW1wO1xmSWV2LmNcZlIncyBpZGVhIG9mIHdoZXJlIHRv IGZpbmQgdGhlIFxmSWNvbmZpZy5oXGZSIGZpbGUsIHNpbWlsYXJseSB0bzxicj4mbmJzcDtcJmFt cDtcZihDV1wqKENgRVZfSFwqKEMnXGZSLCBhYm92ZS48YnI+LS5JUCAiXHMtMUVWX0VWRU5UX0gg XHMwKGgpIiA0PGJyPisuSVAgIlxzLTFFVl9FVkVOVF9IXHMwIChoKSIgNDxicj4mbmJzcDsuSVgg SXRlbSAiRVZfRVZFTlRfSCAoaCkiPGJyPiZuYnNwO1NpbWlsYXJseSB0byBcZihDV1wqKENgRVZf SFwqKEMnXGZSLCB0aGlzIG1hY3JvIGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIFxmSWV2ZW50LmNc ZlIncyBpZGVhPGJyPiZuYnNwO29mIGhvdyB0aGUgXGZJZXZlbnQuaFxmUiBoZWFkZXIgY2FuIGJl IGZvdW5kLCB0aGUgZGVmYXVsdCBpcyBcZihDVyJldmVudC5oIlxmUi48YnI+LS5JUCAiXHMtMUVW X1BST1RPVFlQRVMgXHMwKGgpIiA0PGJyPisuSVAgIlxzLTFFVl9QUk9UT1RZUEVTXHMwIChoKSIg NDxicj4mbmJzcDsuSVggSXRlbSAiRVZfUFJPVE9UWVBFUyAoaCkiPGJyPiZuYnNwO0lmIGRlZmlu ZWQgdG8gYmUgXGYoQ1cwXGZSLCB0aGVuIFxmSWV2LmhcZlIgd2lsbCBub3QgZGVmaW5lIGFueSBm dW5jdGlvbjxicj4mbmJzcDtwcm90b3R5cGVzLCBidXQgc3RpbGwgZGVmaW5lIGFsbCB0aGUgc3Ry dWN0cyBhbmQgb3RoZXIgc3ltYm9scy4gVGhpcyBpczxicj5AQCAtNDk4Miw2ICs1MTUwLDkgQEAg Y2FsbGVkIG9uY2UgcGVyIGxvb3AsIHdoaWNoIGNhbiBzbG93IGRvd24gbGliZXYuIElmIHNldCB0 byBcZihDVzNcZlIsIHRoZW4gdGhlPGJyPiZuYnNwO3ZlcmlmaWNhdGlvbiBjb2RlIHdpbGwgYmUg Y2FsbGVkIHZlcnkgZnJlcXVlbnRseSwgd2hpY2ggd2lsbCBzbG93IGRvd248YnI+Jm5ic3A7bGli ZXYgY29uc2lkZXJhYmx5Ljxicj4mbmJzcDsuU3A8YnI+K1ZlcmlmaWNhdGlvbiBlcnJvcnMgYXJl IHJlcG9ydGVkIHZpYSBDJ3MgXGYoQ1dcKihDYGFzc2VydFwqKEMnXGZSIG1lY2hhbmlzbSwgc28g aWYgeW91PGJyPitkaXNhYmxlIHRoYXQgKGUuZy4gYnkgZGVmaW5pbmcgXGYoQ1dcKihDYE5ERUJV R1wqKEMnXGZSKSB0aGVuIG5vIGVycm9ycyB3aWxsIGJlIHJlcG9ydGVkLjxicj4rLlNwPGJyPiZu YnNwO1RoZSBkZWZhdWx0IGlzIFxmKENXMVxmUiwgdW5sZXNzIFxmKENXXCooQ2BFVl9GRUFUVVJF U1wqKEMnXGZSIG92ZXJyaWRlcyBpdCwgaW4gd2hpY2ggY2FzZSBpdDxicj4mbmJzcDt3aWxsIGJl IFxmKENXMFxmUi48YnI+Jm5ic3A7LklQICJccy0xRVZfQ09NTU9OXHMwIiA0PGJyPkBAIC00OTk4 LDEwICs1MTY5LDEwIEBAIEZvciBleGFtcGxlLCB0aGUgcGVybCBccy0xRVZcczAgbW9kdWxlIHVz ZXMgc29tZXRoaW5nIGxpa2UgdGhpczo8YnI+Jm5ic3A7XCZhbXA7ICZuYnNwOyAmbmJzcDsgU1Yg KnNlbGY7IC8qIGNvbnRhaW5zIHRoaXMgc3RydWN0ICovICZuYnNwO1xlPGJyPiZuYnNwO1wmYW1w OyAmbmJzcDsgJm5ic3A7IFNWICpjYl9zdiwgKmZoIC8qIG5vdGUgbm8gdHJhaWxpbmcgIjsiICov PGJyPiZuYnNwOy5WZTxicj4tLklQICJccy0xRVZfQ0JfREVDTEFSRSBcczAodHlwZSkiIDQ8YnI+ Ky5JUCAiXHMtMUVWX0NCX0RFQ0xBUkVcczAgKHR5cGUpIiA0PGJyPiZuYnNwOy5JWCBJdGVtICJF Vl9DQl9ERUNMQVJFICh0eXBlKSI8YnI+Jm5ic3A7LlBEIDA8YnI+LS5JUCAiXHMtMUVWX0NCX0lO Vk9LRSBcczAod2F0Y2hlciwgcmV2ZW50cykiIDQ8YnI+Ky5JUCAiXHMtMUVWX0NCX0lOVk9LRVxz MCAod2F0Y2hlciwgcmV2ZW50cykiIDQ8YnI+Jm5ic3A7LklYIEl0ZW0gIkVWX0NCX0lOVk9LRSAo d2F0Y2hlciwgcmV2ZW50cykiPGJyPiZuYnNwOy5JUCAiZXZfc2V0X2NiIChldiwgY2IpIiA0PGJy PiZuYnNwOy5JWCBJdGVtICJldl9zZXRfY2IgKGV2LCBjYikiPGJyPkBAIC01MDE0LDcgKzUxODUs NyBAQCBhdm9pZCB0aGUgXGYoQ1dcKihDYHN0cnVjdCBldl9sb29wICpcKihDJ1xmUiBhcyBmaXJz dCBhcmd1bWVudCBpbiBhbGwgY2FzZXMsIG9yPGJyPiZuYnNwO21ldGhvZCBjYWxscyBpbnN0ZWFk IG9mIHBsYWluIGZ1bmN0aW9uIGNhbGxzIGluIFwqKEMrLjxicj4mbmJzcDsuU1MgIlxzLTFFWFBP UlRFRCBBUEkgU1lNQk9MU1xzMCI8YnI+Jm5ic3A7LklYIFN1YnNlY3Rpb24gIkVYUE9SVEVEIEFQ SSBTWU1CT0xTIjxicj4tSWYgeW91IG5lZWQgdG8gcmUtZXhwb3J0IHRoZSBccy0xQVBJIFxzMChl LmcuIHZpYSBhIFxzLTFETExcczApIGFuZCB5b3UgbmVlZCBhIGxpc3Qgb2Y8YnI+K0lmIHlvdSBu ZWVkIHRvIHJlLWV4cG9ydCB0aGUgXHMtMUFQSVxzMCAoZS5nLiB2aWEgYSBccy0xRExMXHMwKSBh bmQgeW91IG5lZWQgYSBsaXN0IG9mPGJyPiZuYnNwO2V4cG9ydGVkIHN5bWJvbHMsIHlvdSBjYW4g dXNlIHRoZSBwcm92aWRlZCBcZklTeW1ib2wuKlxmUiBmaWxlcyB3aGljaCBsaXN0PGJyPiZuYnNw O2FsbCBwdWJsaWMgc3ltYm9scywgb25lIHBlciBsaW5lOjxicj4mbmJzcDsuUFA8YnI+QEAgLTUy NTYsNyArNTQyNyw3IEBAIGEgbG9vcC48YnI+Jm5ic3A7LklYIFN1YnNlY3Rpb24gInNlbGVjdCBp cyBidWdneSI8YnI+Jm5ic3A7LlBQPGJyPiZuYnNwO0FsbCB0aGF0J3MgbGVmdCBpcyBcZihDV1wq KENgc2VsZWN0XCooQydcZlIsIGFuZCBvZiBjb3Vyc2UgQXBwbGUgZm91bmQgYSB3YXkgdG8gZnVj ayB0aGlzPGJyPi1vbmUgdXAgYXMgd2VsbDogT24gXHMtMU9TL1gsIFxzMFxmKENXXCooQ2BzZWxl Y3RcKihDJ1xmUiBhY3RpdmVseSBsaW1pdHMgdGhlIG51bWJlciBvZiBmaWxlPGJyPitvbmUgdXAg YXMgd2VsbDogT24gXHMtMU9TL1gsXHMwIFxmKENXXCooQ2BzZWxlY3RcKihDJ1xmUiBhY3RpdmVs eSBsaW1pdHMgdGhlIG51bWJlciBvZiBmaWxlPGJyPiZuYnNwO2Rlc2NyaXB0b3JzIHlvdSBjYW4g cGFzcyBpbiB0byAxMDI0IFwtIHlvdXIgcHJvZ3JhbSBzdWRkZW5seSBjcmFzaGVzIHdoZW48YnI+ Jm5ic3A7eW91IHVzZSBtb3JlLjxicj4mbmJzcDsuUFA8YnI+ZGlmZiAtLWdpdCBhL3RoaXJkX3Bh cnR5L2xpYmV2L2V2LmMgYi90aGlyZF9wYXJ0eS9saWJldi9ldi5jPGJyPmluZGV4IDZhMjY0ODU5 MS4uOWE0ZDE5OTA1IDEwMDY0NDxicj4tLS0gYS90aGlyZF9wYXJ0eS9saWJldi9ldi5jPGJyPisr KyBiL3RoaXJkX3BhcnR5L2xpYmV2L2V2LmM8YnI+QEAgLTEsNyArMSw3IEBAPGJyPiZuYnNwOy8q PGJyPiZuYnNwOyAqIGxpYmV2IGV2ZW50IHByb2Nlc3NpbmcgY29yZSwgd2F0Y2hlciBtYW5hZ2Vt ZW50PGJyPiZuYnNwOyAqPGJyPi0gKiBDb3B5cmlnaHQgKGMpIDIwMDcsMjAwOCwyMDA5LDIwMTAs MjAxMSwyMDEyLDIwMTMgTWFyYyBBbGV4YW5kZXIgTGVobWFubiAmbHQ7bGliZXZAc2NobW9ycC5k ZSZndDs8YnI+KyAqIENvcHlyaWdodCAoYykgMjAwNy0yMDE5IE1hcmMgQWxleGFuZGVyIExlaG1h bm4gJmx0O2xpYmV2QHNjaG1vcnAuZGUmZ3Q7PGJyPiZuYnNwOyAqIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPGJyPiZuYnNwOyAqPGJyPiZuYnNwOyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291 cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYS08YnI+QEAgLTEx Nyw2ICsxMTcsMjQgQEA8YnI+Jm5ic3A7IyAmbmJzcDtkZWZpbmUgRVZfVVNFX0VQT0xMIDA8YnI+ Jm5ic3A7IyBlbmRpZjxicj4mbmJzcDsgJm5ic3A7Jm5ic3A7PGJyPisjIGlmIEhBVkVfTElOVVhf QUlPX0FCSV9IPGJyPisjICZuYnNwO2lmbmRlZiBFVl9VU0VfTElOVVhBSU88YnI+KyMgJm5ic3A7 IGRlZmluZSBFVl9VU0VfTElOVVhBSU8gMCAvKiB3YXM6IEVWX0ZFQVRVUkVfQkFDS0VORFMsIGFs d2F5cyBvZmYgYnkgZGVmYXVsdCAqLzxicj4rIyAmbmJzcDtlbmRpZjxicj4rIyBlbHNlPGJyPisj ICZuYnNwO3VuZGVmIEVWX1VTRV9MSU5VWEFJTzxicj4rIyAmbmJzcDtkZWZpbmUgRVZfVVNFX0xJ TlVYQUlPIDA8YnI+KyMgZW5kaWY8YnI+KyAmbmJzcDsmbmJzcDs8YnI+KyMgaWYgSEFWRV9MSU5V WF9GU19IICZhbXA7JmFtcDsgSEFWRV9TWVNfVElNRVJGRF9IICZhbXA7JmFtcDsgSEFWRV9LRVJO RUxfUldGX1Q8YnI+KyMgJm5ic3A7aWZuZGVmIEVWX1VTRV9JT1VSSU5HPGJyPisjICZuYnNwOyBk ZWZpbmUgRVZfVVNFX0lPVVJJTkcgRVZfRkVBVFVSRV9CQUNLRU5EUzxicj4rIyAmbmJzcDtlbmRp Zjxicj4rIyBlbHNlPGJyPisjICZuYnNwO3VuZGVmIEVWX1VTRV9JT1VSSU5HPGJyPisjICZuYnNw O2RlZmluZSBFVl9VU0VfSU9VUklORyAwPGJyPisjIGVuZGlmPGJyPismbmJzcDs8YnI+Jm5ic3A7 IyBpZiBIQVZFX0tRVUVVRSAmYW1wOyZhbXA7IEhBVkVfU1lTX0VWRU5UX0g8YnI+Jm5ic3A7IyAm bmJzcDtpZm5kZWYgRVZfVVNFX0tRVUVVRTxicj4mbmJzcDsjICZuYnNwOyBkZWZpbmUgRVZfVVNF X0tRVUVVRSBFVl9GRUFUVVJFX0JBQ0tFTkRTPGJyPkBAIC0xNjEsOSArMTc5LDI4IEBAPGJyPiZu YnNwOyMgJm5ic3A7dW5kZWYgRVZfVVNFX0VWRU5URkQ8YnI+Jm5ic3A7IyAmbmJzcDtkZWZpbmUg RVZfVVNFX0VWRU5URkQgMDxicj4mbmJzcDsjIGVuZGlmPGJyPi0mbmJzcDs8YnI+Kzxicj4rIyBp ZiBIQVZFX1NZU19USU1FUkZEX0g8YnI+KyMgJm5ic3A7aWZuZGVmIEVWX1VTRV9USU1FUkZEPGJy PisjICZuYnNwOyBkZWZpbmUgRVZfVVNFX1RJTUVSRkQgRVZfRkVBVFVSRV9PUzxicj4rIyAmbmJz cDtlbmRpZjxicj4rIyBlbHNlPGJyPisjICZuYnNwO3VuZGVmIEVWX1VTRV9USU1FUkZEPGJyPisj ICZuYnNwO2RlZmluZSBFVl9VU0VfVElNRVJGRCAwPGJyPisjIGVuZGlmPGJyPis8YnI+Jm5ic3A7 I2VuZGlmPGJyPiZuYnNwOzxicj4rLyogT1MgWCwgaW4gaXRzIGluZmluaXRlIGlkaW9jeSwgYWN0 dWFsbHkgSEFSRENPREVTPGJyPisgKiBhIGxpbWl0IG9mIDEwMjQgaW50byB0aGVpciBzZWxlY3Qu IFdoZXJlIHBlb3BsZSBoYXZlIGJyYWlucyw8YnI+KyAqIE9TIFggZW5naW5lZXJzIGFwcGFyZW50 bHkgaGF2ZSBhIHZhY3V1bS4gT3IgbWF5YmUgdGhleSB3ZXJlPGJyPisgKiBvcmRlcmVkIHRvIGhh dmUgYSB2YWN1dW0sIG9yIHRoZXkgZG8gYW55dGhpbmcgZm9yIG1vbmV5Ljxicj4rICogVGhpcyBt aWdodCBoZWxwLiBPciBub3QuPGJyPisgKiBOb3RlIHRoYXQgdGhpcyBtdXN0IGJlIGRlZmluZWQg ZWFybHksIGFzIG90aGVyIGluY2x1ZGUgZmlsZXM8YnI+KyAqIHdpbGwgcmVseSBvbiB0aGlzIGRl ZmluZSBhcyB3ZWxsLjxicj4rICovPGJyPisjZGVmaW5lIF9EQVJXSU5fVU5MSU1JVEVEX1NFTEVD VCAxPGJyPis8YnI+Jm5ic3A7I2luY2x1ZGUgJmx0O3N0ZGxpYi5oJmd0Ozxicj4mbmJzcDsjaW5j bHVkZSAmbHQ7c3RyaW5nLmgmZ3Q7PGJyPiZuYnNwOyNpbmNsdWRlICZsdDtmY250bC5oJmd0Ozxi cj5AQCAtMjExLDE0ICsyNDgsNiBAQDxicj4mbmJzcDsjIHVuZGVmIEVWX0FWT0lEX1NURElPPGJy PiZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+LS8qIE9TIFgsIGluIGl0cyBpbmZpbml0ZSBpZGlv Y3ksIGFjdHVhbGx5IEhBUkRDT0RFUzxicj4tICogYSBsaW1pdCBvZiAxMDI0IGludG8gdGhlaXIg c2VsZWN0LiBXaGVyZSBwZW9wbGUgaGF2ZSBicmFpbnMsPGJyPi0gKiBPUyBYIGVuZ2luZWVycyBh cHBhcmVudGx5IGhhdmUgYSB2YWN1dW0uIE9yIG1heWJlIHRoZXkgd2VyZTxicj4tICogb3JkZXJl ZCB0byBoYXZlIGEgdmFjdXVtLCBvciB0aGV5IGRvIGFueXRoaW5nIGZvciBtb25leS48YnI+LSAq IFRoaXMgbWlnaHQgaGVscC4gT3Igbm90Ljxicj4tICovPGJyPi0jZGVmaW5lIF9EQVJXSU5fVU5M SU1JVEVEX1NFTEVDVCAxPGJyPi08YnI+Jm5ic3A7LyogdGhpcyBibG9jayB0cmllcyB0byBkZWR1 Y2UgY29uZmlndXJhdGlvbiBmcm9tIGhlYWRlci1kZWZpbmVkIHN5bWJvbHMgYW5kIGRlZmF1bHRz ICovPGJyPiZuYnNwOzxicj4mbmJzcDsvKiB0cnkgdG8gZGVkdWNlIHRoZSBtYXhpbXVtIG51bWJl ciBvZiBzaWduYWxzIG9uIHRoaXMgcGxhdGZvcm0gKi88YnI+QEAgLTMxNSw2ICszNDQsMjIgQEA8 YnI+Jm5ic3A7IyBkZWZpbmUgRVZfVVNFX1BPUlQgMDxicj4mbmJzcDsjZW5kaWY8YnI+Jm5ic3A7 PGJyPisjaWZuZGVmIEVWX1VTRV9MSU5VWEFJTzxicj4rIyBpZiBfX2xpbnV4IC8qIGxpYmV2IGN1 cnJlbnRseSBhc3N1bWVzIGxpbnV4L2Fpb19hYmkuaCBpcyBhbHdheXMgYXZhaWxhYmxlIG9uIGxp bnV4ICovPGJyPisjICZuYnNwO2RlZmluZSBFVl9VU0VfTElOVVhBSU8gMCAvKiB3YXM6IDEsIGFs d2F5cyBvZmYgYnkgZGVmYXVsdCAqLzxicj4rIyBlbHNlPGJyPisjICZuYnNwO2RlZmluZSBFVl9V U0VfTElOVVhBSU8gMDxicj4rIyBlbmRpZjxicj4rI2VuZGlmPGJyPis8YnI+KyNpZm5kZWYgRVZf VVNFX0lPVVJJTkc8YnI+KyMgaWYgX19saW51eCAvKiBsYXRlciBjaGVja3MgbWlnaHQgZGlzYWJs ZSBhZ2FpbiAqLzxicj4rIyAmbmJzcDtkZWZpbmUgRVZfVVNFX0lPVVJJTkcgMTxicj4rIyBlbHNl PGJyPisjICZuYnNwO2RlZmluZSBFVl9VU0VfSU9VUklORyAwPGJyPisjIGVuZGlmPGJyPisjZW5k aWY8YnI+Kzxicj4mbmJzcDsjaWZuZGVmIEVWX1VTRV9JTk9USUZZPGJyPiZuYnNwOyMgaWYgX19s aW51eCAmYW1wOyZhbXA7IChfX0dMSUJDX18gJmd0OyAyIHx8IChfX0dMSUJDX18gPT0gMiAmYW1w OyZhbXA7IF9fR0xJQkNfTUlOT1JfXyAmZ3Q7PSA0KSk8YnI+Jm5ic3A7IyAmbmJzcDtkZWZpbmUg RVZfVVNFX0lOT1RJRlkgRVZfRkVBVFVSRV9PUzxicj5AQCAtMzQ3LDYgKzM5MiwxNCBAQDxicj4m bmJzcDsjIGVuZGlmPGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+KyNpZm5kZWYgRVZfVVNF X1RJTUVSRkQ8YnI+KyMgaWYgX19saW51eCAmYW1wOyZhbXA7IChfX0dMSUJDX18gJmd0OyAyIHx8 IChfX0dMSUJDX18gPT0gMiAmYW1wOyZhbXA7IF9fR0xJQkNfTUlOT1JfXyAmZ3Q7PSA4KSk8YnI+ KyMgJm5ic3A7ZGVmaW5lIEVWX1VTRV9USU1FUkZEIEVWX0ZFQVRVUkVfT1M8YnI+KyMgZWxzZTxi cj4rIyAmbmJzcDtkZWZpbmUgRVZfVVNFX1RJTUVSRkQgMDxicj4rIyBlbmRpZjxicj4rI2VuZGlm PGJyPis8YnI+Jm5ic3A7I2lmIDAgLyogZGVidWdnaW5nICovPGJyPiZuYnNwOyMgZGVmaW5lIEVW X1ZFUklGWSAzPGJyPiZuYnNwOyMgZGVmaW5lIEVWX1VTRV80SEVBUCAxPGJyPkBAIC0zNjUsNyAr NDE4LDcgQEA8YnI+Jm5ic3A7IyBkZWZpbmUgRVZfSEVBUF9DQUNIRV9BVCBFVl9GRUFUVVJFX0RB VEE8YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4tI2lmZGVmIEFORFJPSUQ8YnI+KyNpZmRl ZiBfX0FORFJPSURfXzxicj4mbmJzcDsvKiBzdXBwb3NlZGx5LCBhbmRyb2lkIGRvZXNuJ3QgdHlw ZWRlZiBmZF9tYXNrICovPGJyPiZuYnNwOyMgdW5kZWYgRVZfVVNFX1NFTEVDVDxicj4mbmJzcDsj IGRlZmluZSBFVl9VU0VfU0VMRUNUIDA8YnI+QEAgLTM4OSw2ICs0NDIsNyBAQDxicj4mbmJzcDsj ICZuYnNwO2RlZmluZSBjbG9ja19nZXR0aW1lKGlkLCB0cykgc3lzY2FsbCAoU1lTX2Nsb2NrX2dl dHRpbWUsIChpZCksICh0cykpPGJyPiZuYnNwOyMgJm5ic3A7dW5kZWYgRVZfVVNFX01PTk9UT05J Qzxicj4mbmJzcDsjICZuYnNwO2RlZmluZSBFVl9VU0VfTU9OT1RPTklDIDE8YnI+KyMgJm5ic3A7 ZGVmaW5lIEVWX05FRURfU1lTQ0FMTCAxPGJyPiZuYnNwOyMgZWxzZTxicj4mbmJzcDsjICZuYnNw O3VuZGVmIEVWX1VTRV9DTE9DS19TWVNDQUxMPGJyPiZuYnNwOyMgJm5ic3A7ZGVmaW5lIEVWX1VT RV9DTE9DS19TWVNDQUxMIDA8YnI+QEAgLTQxMiw2ICs0NjYsMTQgQEA8YnI+Jm5ic3A7IyBkZWZp bmUgRVZfVVNFX0lOT1RJRlkgMDxicj4mbmJzcDsjZW5kaWY8YnI+Jm5ic3A7PGJyPisjaWYgX19s aW51eCAmYW1wOyZhbXA7IEVWX1VTRV9JT1VSSU5HPGJyPisjIGluY2x1ZGUgJmx0O2xpbnV4L3Zl cnNpb24uaCZndDs8YnI+KyMgaWYgTElOVVhfVkVSU0lPTl9DT0RFICZsdDsgS0VSTkVMX1ZFUlNJ T04oNCwxNCwwKTxicj4rIyAmbmJzcDt1bmRlZiBFVl9VU0VfSU9VUklORzxicj4rIyAmbmJzcDtk ZWZpbmUgRVZfVVNFX0lPVVJJTkcgMDxicj4rIyBlbmRpZjxicj4rI2VuZGlmPGJyPis8YnI+Jm5i c3A7I2lmICFFVl9VU0VfTkFOT1NMRUVQPGJyPiZuYnNwOy8qIGhwLXV4IGhhcyBpdCBpbiBzeXMv dGltZS5oLCB3aGljaCB3ZSB1bmNvbmRpdGlvbmFsbHkgaW5jbHVkZSBhYm92ZSAqLzxicj4mbmJz cDsjIGlmICFkZWZpbmVkIF9XSU4zMiAmYW1wOyZhbXA7ICFkZWZpbmVkIF9faHB1eDxicj5AQCAt NDE5LDYgKzQ4MSwzMSBAQDxicj4mbmJzcDsjIGVuZGlmPGJyPiZuYnNwOyNlbmRpZjxicj4mbmJz cDs8YnI+KyNpZiBFVl9VU0VfTElOVVhBSU88YnI+KyMgaW5jbHVkZSAmbHQ7c3lzL3N5c2NhbGwu aCZndDs8YnI+KyMgaWYgU1lTX2lvX2dldGV2ZW50cyAmYW1wOyZhbXA7IEVWX1VTRV9FUE9MTCAv KiBsaW51eGFpbyBiYWNrZW5kIHJlcXVpcmVzIGVwb2xsIGJhY2tlbmQgKi88YnI+KyMgJm5ic3A7 ZGVmaW5lIEVWX05FRURfU1lTQ0FMTCAxPGJyPisjIGVsc2U8YnI+KyMgJm5ic3A7dW5kZWYgRVZf VVNFX0xJTlVYQUlPPGJyPisjICZuYnNwO2RlZmluZSBFVl9VU0VfTElOVVhBSU8gMDxicj4rIyBl bmRpZjxicj4rI2VuZGlmPGJyPis8YnI+KyNpZiBFVl9VU0VfSU9VUklORzxicj4rIyBpbmNsdWRl ICZsdDtzeXMvc3lzY2FsbC5oJmd0Ozxicj4rIyBpZiAhU1lTX2lvX3VyaW5nX3NldHVwICZhbXA7 JmFtcDsgX19saW51eCAmYW1wOyZhbXA7ICFfX2FscGhhPGJyPisjICZuYnNwO2RlZmluZSBTWVNf aW9fdXJpbmdfc2V0dXAgJm5ic3A7ICZuYnNwOyA0MjU8YnI+KyMgJm5ic3A7ZGVmaW5lIFNZU19p b191cmluZ19lbnRlciAmbmJzcDsgJm5ic3A7IDQyNjxicj4rIyAmbmJzcDtkZWZpbmUgU1lTX2lv X3VyaW5nX3dyZWdpc3RlciA0Mjc8YnI+KyMgZW5kaWY8YnI+KyMgaWYgU1lTX2lvX3VyaW5nX3Nl dHVwICZhbXA7JmFtcDsgRVZfVVNFX0VQT0xMIC8qIGlvdXJpbmcgYmFja2VuZCByZXF1aXJlcyBl cG9sbCBiYWNrZW5kICovPGJyPisjICZuYnNwO2RlZmluZSBFVl9ORUVEX1NZU0NBTEwgMTxicj4r IyBlbHNlPGJyPisjICZuYnNwO3VuZGVmIEVWX1VTRV9JT1VSSU5HPGJyPisjICZuYnNwO2RlZmlu ZSBFVl9VU0VfSU9VUklORyAwPGJyPisjIGVuZGlmPGJyPisjZW5kaWY8YnI+Kzxicj4mbmJzcDsj aWYgRVZfVVNFX0lOT1RJRlk8YnI+Jm5ic3A7IyBpbmNsdWRlICZsdDtzeXMvc3RhdGZzLmgmZ3Q7 PGJyPiZuYnNwOyMgaW5jbHVkZSAmbHQ7c3lzL2lub3RpZnkuaCZndDs8YnI+QEAgLTQzMCw3ICs1 MTcsNyBAQDxicj4mbmJzcDsjZW5kaWY8YnI+Jm5ic3A7PGJyPiZuYnNwOyNpZiBFVl9VU0VfRVZF TlRGRDxicj4tLyogb3VyIG1pbmltdW0gcmVxdWlyZW1lbnQgaXMgZ2xpYmMgMi43IHdoaWNoIGhh cyB0aGUgc3R1YiwgYnV0IG5vdCB0aGUgaGVhZGVyICovPGJyPisvKiBvdXIgbWluaW11bSByZXF1 aXJlbWVudCBpcyBnbGliYyAyLjcgd2hpY2ggaGFzIHRoZSBzdHViLCBidXQgbm90IHRoZSBmdWxs IGhlYWRlciAqLzxicj4mbmJzcDsjIGluY2x1ZGUgJmx0O3N0ZGludC5oJmd0Ozxicj4mbmJzcDsj IGlmbmRlZiBFRkRfTk9OQkxPQ0s8YnI+Jm5ic3A7IyAmbmJzcDtkZWZpbmUgRUZEX05PTkJMT0NL IE9fTk9OQkxPQ0s8YnI+QEAgLTQ0Niw3ICs1MzMsNyBAQCBFVl9DUFAoZXh0ZXJuICJDIikgaW50 IChldmVudGZkKSAodW5zaWduZWQgaW50IGluaXR2YWwsIGludCBmbGFncyk7PGJyPiZuYnNwOyNl bmRpZjxicj4mbmJzcDs8YnI+Jm5ic3A7I2lmIEVWX1VTRV9TSUdOQUxGRDxicj4tLyogb3VyIG1p bmltdW0gcmVxdWlyZW1lbnQgaXMgZ2xpYmMgMi43IHdoaWNoIGhhcyB0aGUgc3R1YiwgYnV0IG5v dCB0aGUgaGVhZGVyICovPGJyPisvKiBvdXIgbWluaW11bSByZXF1aXJlbWVudCBpcyBnbGliYyAy Ljcgd2hpY2ggaGFzIHRoZSBzdHViLCBidXQgbm90IHRoZSBmdWxsIGhlYWRlciAqLzxicj4mbmJz cDsjIGluY2x1ZGUgJmx0O3N0ZGludC5oJmd0Ozxicj4mbmJzcDsjIGlmbmRlZiBTRkRfTk9OQkxP Q0s8YnI+Jm5ic3A7IyAmbmJzcDtkZWZpbmUgU0ZEX05PTkJMT0NLIE9fTk9OQkxPQ0s8YnI+QEAg LTQ1OCw3ICs1NDUsNyBAQCBFVl9DUFAoZXh0ZXJuICJDIikgaW50IChldmVudGZkKSAodW5zaWdu ZWQgaW50IGluaXR2YWwsIGludCBmbGFncyk7PGJyPiZuYnNwOyMgJm5ic3A7IGRlZmluZSBTRkRf Q0xPRVhFQyAwMjAwMDAwMDxicj4mbmJzcDsjICZuYnNwO2VuZGlmPGJyPiZuYnNwOyMgZW5kaWY8 YnI+LUVWX0NQUCAoZXh0ZXJuICJDIikgaW50IHNpZ25hbGZkIChpbnQgZmQsIGNvbnN0IHNpZ3Nl dF90ICptYXNrLCBpbnQgZmxhZ3MpOzxicj4rRVZfQ1BQIChleHRlcm4gIkMiKSBpbnQgKHNpZ25h bGZkKSAoaW50IGZkLCBjb25zdCBzaWdzZXRfdCAqbWFzaywgaW50IGZsYWdzKTs8YnI+Jm5ic3A7 PGJyPiZuYnNwO3N0cnVjdCBzaWduYWxmZF9zaWdpbmZvPGJyPiZuYnNwO3s8YnI+QEAgLTQ2Nyw3 ICs1NTQsMTcgQEAgc3RydWN0IHNpZ25hbGZkX3NpZ2luZm88YnI+Jm5ic3A7fTs8YnI+Jm5ic3A7 I2VuZGlmPGJyPiZuYnNwOzxicj4tLyoqLzxicj4rLyogZm9yIHRpbWVyZmQsIGxpYmV2IGNvcmUg cmVxdWlyZXMgVEZEX1RJTUVSX0NBTkNFTF9PTl9TRVQgJmFtcDtjICovPGJyPisjaWYgRVZfVVNF X1RJTUVSRkQ8YnI+KyMgaW5jbHVkZSAmbHQ7c3lzL3RpbWVyZmQuaCZndDs8YnI+Ky8qIHRpbWVy ZmQgaXMgb25seSB1c2VkIGZvciBwZXJpb2RpY3MgKi88YnI+KyMgaWYgIShkZWZpbmVkIChURkRf VElNRVJfQ0FOQ0VMX09OX1NFVCkgJmFtcDsmYW1wOyBkZWZpbmVkIChURkRfQ0xPRVhFQykgJmFt cDsmYW1wOyBkZWZpbmVkIChURkRfTk9OQkxPQ0spKSB8fCAhRVZfUEVSSU9ESUNfRU5BQkxFPGJy PisjICZuYnNwO3VuZGVmIEVWX1VTRV9USU1FUkZEPGJyPisjICZuYnNwO2RlZmluZSBFVl9VU0Vf VElNRVJGRCAwPGJyPisjIGVuZGlmPGJyPisjZW5kaWY8YnI+Kzxicj4rLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLzxicj4mbmJzcDs8YnI+Jm5ic3A7I2lmIEVWX1ZFUklGWSAmZ3Q7PSAzPGJyPiZuYnNw OyMgZGVmaW5lIEVWX0ZSRVFVRU5UX0NIRUNLIGV2X3ZlcmlmeSAoRVZfQSk8YnI+QEAgLTQ4Miwx OCArNTc5LDM0IEBAIHN0cnVjdCBzaWduYWxmZF9zaWdpbmZvPGJyPiZuYnNwOyNkZWZpbmUgTUlO X0lOVEVSVkFMICZuYnNwOzAuMDAwMTIyMDcwMzEyNSAvKiAxLzIqKjEzLCBnb29kIHRpbGwgNDAw MCAqLzxicj4mbmJzcDsvKiNkZWZpbmUgTUlOX0lOVEVSVkFMICZuYnNwOzAuMDAwMDAwOTUzNjc0 MzE2NDA2MjUgLyogMS8yKioyMCwgZ29vZCB0aWxsIDIyMDAgKi88YnI+Jm5ic3A7PGJyPi0jZGVm aW5lIE1JTl9USU1FSlVNUCAmbmJzcDsxLiAvKiBtaW5pbXVtIHRpbWVqdW1wIHRoYXQgZ2V0cyBk ZXRlY3RlZCAoaWYgbW9ub3RvbmljIGNsb2NrIGF2YWlsYWJsZSkgKi88YnI+LSNkZWZpbmUgTUFY X0JMT0NLVElNRSA1OS43NDMgLyogbmV2ZXIgd2FpdCBsb25nZXIgdGhhbiB0aGlzIHRpbWUgKHRv IGRldGVjdCB0aW1lIGp1bXBzKSAqLzxicj4rI2RlZmluZSBNSU5fVElNRUpVTVAgJm5ic3A7IDEu IC8qIG1pbmltdW0gdGltZWp1bXAgdGhhdCBnZXRzIGRldGVjdGVkIChpZiBtb25vdG9uaWMgY2xv Y2sgYXZhaWxhYmxlKSAqLzxicj4rI2RlZmluZSBNQVhfQkxPQ0tUSU1FICZuYnNwOzU5Ljc0MyAv KiBuZXZlciB3YWl0IGxvbmdlciB0aGFuIHRoaXMgdGltZSAodG8gZGV0ZWN0IHRpbWUganVtcHMp ICovPGJyPisjZGVmaW5lIE1BWF9CTE9DS1RJTUUyIDE1MDAwMDEuMDcgLyogc2FtZSwgYnV0IHdo ZW4gdGltZXJmZCBpcyB1c2VkIHRvIGRldGVjdCBqdW1wcywgYWxzbyBzYWZlIGRlbGF5IHRvIG5v dCBvdmVyZmxvdyAqLzxicj4mbmJzcDs8YnI+LSNkZWZpbmUgRVZfVFZfU0VUKHR2LHQpIGRvIHsg dHYudHZfc2VjID0gKGxvbmcpdDsgdHYudHZfdXNlYyA9IChsb25nKSgodCAtIHR2LnR2X3NlYykg KiAxZTYpOyB9IHdoaWxlICgwKTxicj4tI2RlZmluZSBFVl9UU19TRVQodHMsdCkgZG8geyB0cy50 dl9zZWMgPSAobG9uZyl0OyB0cy50dl9uc2VjID0gKGxvbmcpKCh0IC0gdHMudHZfc2VjKSAqIDFl OSk7IH0gd2hpbGUgKDApPGJyPisvKiBmaW5kIGEgcG9ydGFibGUgdGltZXN0YW1wIHRoYXQgaXMg ImFsd2F5cyIgaW4gdGhlIGZ1dHVyZSBidXQgZml0cyBpbnRvIHRpbWVfdC48YnI+KyAqIHRoaXMg aXMgcXVpdGUgaGFyZCwgYW5kIHdlIGFyZSBtb3N0bHkgZ3Vlc3NpbmcgLSB3ZSBoYW5kbGUgMzIg Yml0IHNpZ25lZC91bnNpZ25lZCB0aW1lX3QsPGJyPisgKiBhbmQgc2l6ZXMgbGFyZ2VyIHRoYW4g MzIgYml0LCBhbmQgbWF5YmUgdGhlIHVubGlrZWx5IGZsb2F0aW5nIHBvaW50IHRpbWVfdCAqLzxi cj4rI2RlZmluZSBFVl9UU1RBTVBfSFVHRSBcPGJyPisgJm5ic3A7KHNpemVvZiAodGltZV90KSAm Z3Q7PSA4ICZuYnNwOyAmbmJzcDsgPyAxMDAwMDAwMDAwMDAwMC4gJm5ic3A7XDxicj4rICZuYnNw OyA6IDAgJmx0OyAodGltZV90KTQyOTQ5NjcyOTUgPyAmbmJzcDsgJm5ic3A7IDQyOTQ5NjcyOTUu ICZuYnNwO1w8YnI+KyAmbmJzcDsgOiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOzIxNDc0ODM2NDcuKSBcPGJyPis8YnI+KyNpZm5kZWYgRVZfVFNfQ09OU1Q8 YnI+KyMgZGVmaW5lIEVWX1RTX0NPTlNUKG52KSBudjxicj4rIyBkZWZpbmUgRVZfVFNfVE9fTVNF QyhhKSBhICogMWUzICsgMC45OTk5PGJyPisjIGRlZmluZSBFVl9UU19GUk9NX1VTRUModXMpIHVz ICogMWUtNjxicj4rIyBkZWZpbmUgRVZfVFZfU0VUKHR2LHQpIGRvIHsgdHYudHZfc2VjID0gKGxv bmcpdDsgdHYudHZfdXNlYyA9IChsb25nKSgodCAtIHR2LnR2X3NlYykgKiAxZTYpOyB9IHdoaWxl ICgwKTxicj4rIyBkZWZpbmUgRVZfVFNfU0VUKHRzLHQpIGRvIHsgdHMudHZfc2VjID0gKGxvbmcp dDsgdHMudHZfbnNlYyA9IChsb25nKSgodCAtIHRzLnR2X3NlYykgKiAxZTkpOyB9IHdoaWxlICgw KTxicj4rIyBkZWZpbmUgRVZfVFZfR0VUKHR2KSAoKHR2KS50dl9zZWMgKyAodHYpLnR2X3VzZWMg KiAxZS02KTxicj4rIyBkZWZpbmUgRVZfVFNfR0VUKHRzKSAoKHRzKS50dl9zZWMgKyAodHMpLnR2 X25zZWMgKiAxZS05KTxicj4rI2VuZGlmPGJyPiZuYnNwOzxicj4mbmJzcDsvKiB0aGUgZm9sbG93 aW5nIGlzIGVjYi5oIGVtYmVkZGVkIGludG8gbGliZXYgLSB1c2UgdXBkYXRlX2V2X2MgdG8gdXBk YXRlIGZyb20gYW4gZXh0ZXJuYWwgY29weSAqLzxicj4mbmJzcDsvKiBFQ0IuSCBCRUdJTiAqLzxi cj4mbmJzcDsvKjxicj4mbmJzcDsgKiBsaWJlY2IgLSBodHRwOi8vc29mdHdhcmUuc2NobW9ycC5k ZS9wa2cvbGliZWNiPGJyPiZuYnNwOyAqPGJyPi0gKiBDb3B5cmlnaHQgKMKpKSAyMDA5LTIwMTUg TWFyYyBBbGV4YW5kZXIgTGVobWFubiAmbHQ7bGliZWNiQHNjaG1vcnAuZGUmZ3Q7PGJyPisgKiBD b3B5cmlnaHQgKMKpKSAyMDA5LTIwMTUsMjAxOC0yMDIwIE1hcmMgQWxleGFuZGVyIExlaG1hbm4g Jmx0O2xpYmVjYkBzY2htb3JwLmRlJmd0Ozxicj4mbmJzcDsgKiBDb3B5cmlnaHQgKMKpKSAyMDEx IEVtYW51ZWxlIEdpYXF1aW50YTxicj4mbmJzcDsgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjxicj4m bmJzcDsgKjxicj5AQCAtNTM0LDE1ICs2NDcsMjMgQEAgc3RydWN0IHNpZ25hbGZkX3NpZ2luZm88 YnI+Jm5ic3A7I2RlZmluZSBFQ0JfSDxicj4mbmJzcDs8YnI+Jm5ic3A7LyogMTYgYml0cyBtYWpv ciwgMTYgYml0cyBtaW5vciAqLzxicj4tI2RlZmluZSBFQ0JfVkVSU0lPTiAweDAwMDEwMDA1PGJy PisjZGVmaW5lIEVDQl9WRVJTSU9OIDB4MDAwMTAwMDg8YnI+Jm5ic3A7PGJyPi0jaWZkZWYgX1dJ TjMyPGJyPisjaW5jbHVkZSAmbHQ7c3RyaW5nLmgmZ3Q7IC8qIGZvciBtZW1jcHkgKi88YnI+Kzxi cj4rI2lmIGRlZmluZWQgKF9XSU4zMikgJmFtcDsmYW1wOyAhZGVmaW5lZCAoX19NSU5HVzMyX18p PGJyPiZuYnNwOyAmbmJzcDt0eXBlZGVmICZuYnNwOyBzaWduZWQgY2hhciAmbmJzcDsgaW50OF90 Ozxicj4mbmJzcDsgJm5ic3A7dHlwZWRlZiB1bnNpZ25lZCBjaGFyICZuYnNwO3VpbnQ4X3Q7PGJy PisgJm5ic3A7dHlwZWRlZiAmbmJzcDsgc2lnbmVkIGNoYXIgJm5ic3A7IGludF9mYXN0OF90Ozxi cj4rICZuYnNwO3R5cGVkZWYgdW5zaWduZWQgY2hhciAmbmJzcDt1aW50X2Zhc3Q4X3Q7PGJyPiZu YnNwOyAmbmJzcDt0eXBlZGVmICZuYnNwOyBzaWduZWQgc2hvcnQgJm5ic3A7aW50MTZfdDs8YnI+ Jm5ic3A7ICZuYnNwO3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgdWludDE2X3Q7PGJyPisgJm5ic3A7 dHlwZWRlZiAmbmJzcDsgc2lnbmVkIGludCAmbmJzcDsgJm5ic3A7aW50X2Zhc3QxNl90Ozxicj4r ICZuYnNwO3R5cGVkZWYgdW5zaWduZWQgaW50ICZuYnNwOyB1aW50X2Zhc3QxNl90Ozxicj4mbmJz cDsgJm5ic3A7dHlwZWRlZiAmbmJzcDsgc2lnbmVkIGludCAmbmJzcDsgJm5ic3A7aW50MzJfdDs8 YnI+Jm5ic3A7ICZuYnNwO3R5cGVkZWYgdW5zaWduZWQgaW50ICZuYnNwOyB1aW50MzJfdDs8YnI+ KyAmbmJzcDt0eXBlZGVmICZuYnNwOyBzaWduZWQgaW50ICZuYnNwOyAmbmJzcDtpbnRfZmFzdDMy X3Q7PGJyPisgJm5ic3A7dHlwZWRlZiB1bnNpZ25lZCBpbnQgJm5ic3A7IHVpbnRfZmFzdDMyX3Q7 PGJyPiZuYnNwOyAmbmJzcDsjaWYgX19HTlVDX188YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt0eXBl ZGVmICZuYnNwOyBzaWduZWQgbG9uZyBsb25nIGludDY0X3Q7PGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7dHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWludDY0X3Q7PGJyPkBAIC01NTAsNiArNjcx LDggQEAgc3RydWN0IHNpZ25hbGZkX3NpZ2luZm88YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt0eXBl ZGVmICZuYnNwOyBzaWduZWQgX19pbnQ2NCAmbmJzcDsgaW50NjRfdDs8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDt0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgJm5ic3A7IHVpbnQ2NF90Ozxicj4mbmJz cDsgJm5ic3A7I2VuZGlmPGJyPisgJm5ic3A7dHlwZWRlZiAmbmJzcDtpbnQ2NF90ICZuYnNwO2lu dF9mYXN0NjRfdDs8YnI+KyAmbmJzcDt0eXBlZGVmIHVpbnQ2NF90IHVpbnRfZmFzdDY0X3Q7PGJy PiZuYnNwOyAmbmJzcDsjaWZkZWYgX1dJTjY0PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7I2RlZmlu ZSBFQ0JfUFRSU0laRSA4PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7dHlwZWRlZiB1aW50NjRfdCB1 aW50cHRyX3Q7PGJyPkBAIC01NzEsNiArNjk0LDE0IEBAIHN0cnVjdCBzaWduYWxmZF9zaWdpbmZv PGJyPiZuYnNwOyNkZWZpbmUgRUNCX0dDQ19BTUQ2NCAoX19hbWQ2NCB8fCBfX2FtZDY0X18gfHwg X194ODZfNjQgfHwgX194ODZfNjRfXyk8YnI+Jm5ic3A7I2RlZmluZSBFQ0JfTVNWQ19BTUQ2NCAo X01fQU1ENjQgfHwgX01fWDY0KTxicj4mbmJzcDs8YnI+KyNpZm5kZWYgRUNCX09QVElNSVpFX1NJ WkU8YnI+KyAmbmJzcDsjaWYgX19PUFRJTUlaRV9TSVpFX188YnI+KyAmbmJzcDsgJm5ic3A7I2Rl ZmluZSBFQ0JfT1BUSU1JWkVfU0laRSAxPGJyPisgJm5ic3A7I2Vsc2U8YnI+KyAmbmJzcDsgJm5i c3A7I2RlZmluZSBFQ0JfT1BUSU1JWkVfU0laRSAwPGJyPisgJm5ic3A7I2VuZGlmPGJyPisjZW5k aWY8YnI+Kzxicj4mbmJzcDsvKiB3b3JrIGFyb3VuZCB4MzIgaWRpb2N5IGJ5IGRlZmluaW5nIHBy b3BlciBtYWNyb3MgKi88YnI+Jm5ic3A7I2lmIEVDQl9HQ0NfQU1ENjQgfHwgRUNCX01TVkNfQU1E NjQ8YnI+Jm5ic3A7ICZuYnNwOyNpZiBfSUxQMzI8YnI+QEAgLTYwOSw2ICs3NDAsOCBAQCBzdHJ1 Y3Qgc2lnbmFsZmRfc2lnaW5mbzxicj4mbmJzcDs8YnI+Jm5ic3A7I2RlZmluZSBFQ0JfQ1BQICZu YnNwOyAoX19jcGx1c3BsdXMrMCk8YnI+Jm5ic3A7I2RlZmluZSBFQ0JfQ1BQMTEgKF9fY3BsdXNw bHVzICZndDs9IDIwMTEwM0wpPGJyPisjZGVmaW5lIEVDQl9DUFAxNCAoX19jcGx1c3BsdXMgJmd0 Oz0gMjAxNDAyTCk8YnI+KyNkZWZpbmUgRUNCX0NQUDE3IChfX2NwbHVzcGx1cyAmZ3Q7PSAyMDE3 MDNMKTxicj4mbmJzcDs8YnI+Jm5ic3A7I2lmIEVDQl9DUFA8YnI+Jm5ic3A7ICZuYnNwOyNkZWZp bmUgRUNCX0MgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDswPGJyPkBA IC02MjAsNiArNzUzLDcgQEAgc3RydWN0IHNpZ25hbGZkX3NpZ2luZm88YnI+Jm5ic3A7PGJyPiZu YnNwOyNkZWZpbmUgRUNCX0M5OSAmbmJzcDsgKEVDQl9TVERDX1ZFUlNJT04gJmd0Oz0gMTk5OTAx TCk8YnI+Jm5ic3A7I2RlZmluZSBFQ0JfQzExICZuYnNwOyAoRUNCX1NURENfVkVSU0lPTiAmZ3Q7 PSAyMDExMTJMKTxicj4rI2RlZmluZSBFQ0JfQzE3ICZuYnNwOyAoRUNCX1NURENfVkVSU0lPTiAm Z3Q7PSAyMDE3MTBMKTxicj4mbmJzcDs8YnI+Jm5ic3A7I2lmIEVDQl9DUFA8YnI+Jm5ic3A7ICZu YnNwOyNkZWZpbmUgRUNCX0VYVEVSTl9DIGV4dGVybiAiQyI8YnI+QEAgLTY1NSwxNCArNzg5LDE1 IEBAIHN0cnVjdCBzaWduYWxmZF9zaWdpbmZvPGJyPiZuYnNwOzxicj4mbmJzcDsjaWZuZGVmIEVD Ql9NRU1PUllfRkVOQ0U8YnI+Jm5ic3A7ICZuYnNwOyNpZiBFQ0JfR0NDX1ZFUlNJT04oMiw1KSB8 fCBkZWZpbmVkIF9fSU5URUxfQ09NUElMRVIgfHwgKF9fbGx2bV9fICZhbXA7JmFtcDsgX19HTlVD X18pIHx8IF9fU1VOUFJPX0MgJmd0Oz0gMHg1MTEwIHx8IF9fU1VOUFJPX0NDICZndDs9IDB4NTEx MDxicj4rICZuYnNwOyAmbmJzcDsjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0VfUkVMQVhFRCBfX2Fz bV9fIF9fdm9sYXRpbGVfXyAoIiIgOiA6IDogIm1lbW9yeSIpPGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7I2lmIF9faTM4NiB8fCBfX2kzODZfXzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsj ZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0UgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IF9fYXNt X18gX192b2xhdGlsZV9fICgibG9jazsgb3JiICQwLCAtMSglJWVzcCkiIDogOiA6ICJtZW1vcnki KTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0Vf QUNRVUlSRSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDs6IDogOiAibWVtb3J5Iik8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwOyNkZWZpbmUgRUNCX01F TU9SWV9GRU5DRV9SRUxFQVNFIF9fYXNtX18gX192b2xhdGlsZV9fICgiIik8YnI+KyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyNkZWZpbmUgRUNCX01FTU9SWV9GRU5DRV9SRUxFQVNFIF9fYXNtX18gX192 b2xhdGlsZV9fICgiIiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogOiA6ICJtZW1vcnkiKTxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwOyNlbGlmIEVDQl9HQ0NfQU1ENjQ8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7I2RlZmluZSBFQ0JfTUVNT1JZX0ZFTkNFICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mZW5jZSIgJm5ic3A7IDogOiA6ICJt ZW1vcnkiKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsjZGVmaW5lIEVDQl9NRU1PUllf RkVOQ0VfQUNRVUlSRSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7IDogOiA6ICJtZW1vcnkiKTxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7I2RlZmlu ZSBFQ0JfTUVNT1JZX0ZFTkNFX1JFTEVBU0UgX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiKTxicj4r ICZuYnNwOyAmbmJzcDsgJm5ic3A7I2RlZmluZSBFQ0JfTUVNT1JZX0ZFTkNFX1JFTEVBU0UgX19h c21fXyBfX3ZvbGF0aWxlX18gKCIiICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA6IDogOiAi bWVtb3J5Iik8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsjZWxpZiBfX3Bvd2VycGNfXyB8fCBfX3Bw Y19fIHx8IF9fcG93ZXJwYzY0X18gfHwgX19wcGM2NF9fPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyNkZWZpbmUgRUNCX01FTU9SWV9GRU5DRSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIiAmbmJzcDsgJm5ic3A7IDogOiA6ICJtZW1v cnkiKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyNlbGlmIGRlZmluZWQgX19BUk1fQVJDSF8yX18g XDxicj5AQCAtNzE0LDEyICs4NDksMTQgQEAgc3RydWN0IHNpZ25hbGZkX3NpZ2luZm88YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0UgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7IF9fYXRvbWljX3RocmVhZF9mZW5jZSAoX19BVE9NSUNfU0VRX0NTVCk8YnI+ Jm5ic3A7ICZuYnNwOyAmbmJzcDsjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0VfQUNRVUlSRSBfX2F0 b21pY190aHJlYWRfZmVuY2UgKF9fQVRPTUlDX0FDUVVJUkUpPGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7I2RlZmluZSBFQ0JfTUVNT1JZX0ZFTkNFX1JFTEVBU0UgX19hdG9taWNfdGhyZWFkX2ZlbmNl IChfX0FUT01JQ19SRUxFQVNFKTxicj4rICZuYnNwOyAmbmJzcDsjZGVmaW5lIEVDQl9NRU1PUllf RkVOQ0VfUkVMQVhFRCBfX2F0b21pY190aHJlYWRfZmVuY2UgKF9fQVRPTUlDX1JFTEFYRUQpPGJy PiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7I2VsaWYgRUNCX0NMQU5HX0VYVEVOU0lPTihjX2F0b21p Yyk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBzZWUgY29tbWVudCBiZWxvdyAoc3RkYXRvbWlj LmgpIGFib3V0IHRoZSBDMTEgbWVtb3J5IG1vZGVsLiAqLzxicj4mbmJzcDsgJm5ic3A7ICZuYnNw OyNkZWZpbmUgRUNCX01FTU9SWV9GRU5DRSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgX19j MTFfYXRvbWljX3RocmVhZF9mZW5jZSAoX19BVE9NSUNfU0VRX0NTVCk8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDsjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0VfQUNRVUlSRSBfX2MxMV9hdG9taWNfdGhy ZWFkX2ZlbmNlIChfX0FUT01JQ19BQ1FVSVJFKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyNkZWZp bmUgRUNCX01FTU9SWV9GRU5DRV9SRUxFQVNFIF9fYzExX2F0b21pY190aHJlYWRfZmVuY2UgKF9f QVRPTUlDX1JFTEVBU0UpPGJyPisgJm5ic3A7ICZuYnNwOyNkZWZpbmUgRUNCX01FTU9SWV9GRU5D RV9SRUxBWEVEIF9fYzExX2F0b21pY190aHJlYWRfZmVuY2UgKF9fQVRPTUlDX1JFTEFYRUQpPGJy PiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7I2VsaWYgRUNCX0dDQ19WRVJTSU9OKDQsNCkgfHwgZGVm aW5lZCBfX0lOVEVMX0NPTVBJTEVSIHx8IGRlZmluZWQgX19jbGFuZ19fPGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7I2RlZmluZSBFQ0JfTUVNT1JZX0ZFTkNFICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyBfX3N5bmNfc3luY2hyb25pemUgKCk8YnI+QEAgLTczOSw5ICs4NzYsMTAgQEAgc3RydWN0 IHNpZ25hbGZkX3NpZ2luZm88YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsjZGVmaW5lIEVDQl9NRU1P UllfRkVOQ0UgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IE1lbW9yeUJhcnJpZXIgKCkgLyog YWN0dWFsbHkganVzdCB4Y2hnIG9uIHg4Ni4uLiBzY2FyeSAqLzxicj4mbmJzcDsgJm5ic3A7I2Vs aWYgX19TVU5QUk9fQyAmZ3Q7PSAweDUxMTAgfHwgX19TVU5QUk9fQ0MgJmd0Oz0gMHg1MTEwPGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7I2luY2x1ZGUgJmx0O21iYXJyaWVyLmgmZ3Q7PGJyPi0gJm5i c3A7ICZuYnNwOyNkZWZpbmUgRUNCX01FTU9SWV9GRU5DRSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgX19tYWNoaW5lX3J3X2JhcnJpZXIgKCk8YnI+LSAmbmJzcDsgJm5ic3A7I2RlZmluZSBF Q0JfTUVNT1JZX0ZFTkNFX0FDUVVJUkUgX19tYWNoaW5lX3JfYmFycmllciAmbmJzcDsoKTxicj4t ICZuYnNwOyAmbmJzcDsjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0VfUkVMRUFTRSBfX21hY2hpbmVf d19iYXJyaWVyICZuYnNwOygpPGJyPisgJm5ic3A7ICZuYnNwOyNkZWZpbmUgRUNCX01FTU9SWV9G RU5DRSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgX19tYWNoaW5lX3J3X2JhcnJpZXIgJm5i c3A7KCk8YnI+KyAmbmJzcDsgJm5ic3A7I2RlZmluZSBFQ0JfTUVNT1JZX0ZFTkNFX0FDUVVJUkUg X19tYWNoaW5lX2FjcV9iYXJyaWVyICgpPGJyPisgJm5ic3A7ICZuYnNwOyNkZWZpbmUgRUNCX01F TU9SWV9GRU5DRV9SRUxFQVNFIF9fbWFjaGluZV9yZWxfYmFycmllciAoKTxicj4rICZuYnNwOyAm bmJzcDsjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0VfUkVMQVhFRCBfX2NvbXBpbGVyX2JhcnJpZXIg KCk8YnI+Jm5ic3A7ICZuYnNwOyNlbGlmIF9feGxDX188YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsj ZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0UgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IF9fc3lu YyAoKTxicj4mbmJzcDsgJm5ic3A7I2VuZGlmPGJyPkBAIC03NTIsMTUgKzg5MCw5IEBAIHN0cnVj dCBzaWduYWxmZF9zaWdpbmZvPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7Lyogd2UgYXNzdW1lIHRo YXQgdGhlc2UgbWVtb3J5IGZlbmNlcyB3b3JrIG9uIGFsbCB2YXJpYWJsZXMvYWxsIG1lbW9yeSBh Y2Nlc3NlcywgKi88YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBub3QganVzdCBDMTEgYXRvbWlj cyBhbmQgYXRvbWljIGFjY2Vzc2VzICovPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7I2luY2x1ZGUg Jmx0O3N0ZGF0b21pYy5oJmd0Ozxicj4tICZuYnNwOyAmbmJzcDsvKiBVbmZvcnR1bmF0ZWx5LCBu ZWl0aGVyIGdjYyA0Ljcgbm9yIGNsYW5nIDMuMSBnZW5lcmF0ZSBhbnkgaW5zdHJ1Y3Rpb25zIGZv ciAqLzxicj4tICZuYnNwOyAmbmJzcDsvKiBhbnkgZmVuY2Ugb3RoZXIgdGhhbiBzZXFfY3N0LCB3 aGljaCBpc24ndCB2ZXJ5IGVmZmljaWVudCBmb3IgdXMuICovPGJyPi0gJm5ic3A7ICZuYnNwOy8q IFdoeSB0aGF0IGlzLCB3ZSBkb24ndCBrbm93IC0gZWl0aGVyIHRoZSBDMTEgbWVtb3J5IG1vZGVs IGlzIHF1aXRlIHVzZWxlc3MgKi88YnI+LSAmbmJzcDsgJm5ic3A7LyogZm9yIG1vc3QgdXNhZ2Vz LCBvciBnY2MgYW5kIGNsYW5nIGhhdmUgYSBidWcgKi88YnI+LSAmbmJzcDsgJm5ic3A7LyogSSAq Y3VycmVudGx5KiBsZWFuIHRvd2FyZHMgdGhlIGxhdHRlciwgYW5kIGluZWZmaWNpZW50bHkgaW1w bGVtZW50ICovPGJyPi0gJm5ic3A7ICZuYnNwOy8qIGFsbCB0aHJlZSBvZiBlY2IncyBmZW5jZXMg YXMgYSBzZXFfY3N0IGZlbmNlICovPGJyPi0gJm5ic3A7ICZuYnNwOy8qIFVwZGF0ZSwgZ2NjLTQu OCBnZW5lcmF0ZXMgbWZlbmNlIGZvciBhbGwgYysrIGZlbmNlcywgYnV0IG5vdGhpbmcgKi88YnI+ LSAmbmJzcDsgJm5ic3A7LyogZm9yIGFsbCBfX2F0b21pY190aHJlYWRfZmVuY2UncyBleGNlcHQg c2VxX2NzdCAqLzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyNkZWZpbmUgRUNCX01FTU9SWV9GRU5D RSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgYXRvbWljX3RocmVhZF9mZW5jZSAobWVtb3J5 X29yZGVyX3NlcV9jc3QpPGJyPisgJm5ic3A7ICZuYnNwOyNkZWZpbmUgRUNCX01FTU9SWV9GRU5D RV9BQ1FVSVJFIGF0b21pY190aHJlYWRfZmVuY2UgKG1lbW9yeV9vcmRlcl9hY3F1aXJlKTxicj4r ICZuYnNwOyAmbmJzcDsjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0VfUkVMRUFTRSBhdG9taWNfdGhy ZWFkX2ZlbmNlIChtZW1vcnlfb3JkZXJfcmVsZWFzZSk8YnI+Jm5ic3A7ICZuYnNwOyNlbmRpZjxi cj4mbmJzcDsjZW5kaWY8YnI+Jm5ic3A7PGJyPkBAIC03OTAsNiArOTIyLDEwIEBAIHN0cnVjdCBz aWduYWxmZF9zaWdpbmZvPGJyPiZuYnNwOyAmbmJzcDsjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0Vf UkVMRUFTRSBFQ0JfTUVNT1JZX0ZFTkNFPGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+KyNp ZiAhZGVmaW5lZCBFQ0JfTUVNT1JZX0ZFTkNFX1JFTEFYRUQgJmFtcDsmYW1wOyBkZWZpbmVkIEVD Ql9NRU1PUllfRkVOQ0U8YnI+KyAmbmJzcDsjZGVmaW5lIEVDQl9NRU1PUllfRkVOQ0VfUkVMQVhF RCBFQ0JfTUVNT1JZX0ZFTkNFIC8qIHZlcnkgaGVhdnktaGFuZGVkICovPGJyPisjZW5kaWY8YnI+ Kzxicj4mbmJzcDsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPGJyPiZuYnNwOzxicj4mbmJzcDsjaWYg RUNCX0NQUDxicj5AQCAtMTA4MSw2ICsxMjE3LDQ0IEBAIGVjYl9pbmxpbmUgZWNiX2NvbnN0IHVp bnQzMl90IGVjYl9yb3RyMzIgKHVpbnQzMl90IHgsIHVuc2lnbmVkIGludCBjb3VudCkgeyByZXR1 PGJyPiZuYnNwO2VjYl9pbmxpbmUgZWNiX2NvbnN0IHVpbnQ2NF90IGVjYl9yb3RsNjQgKHVpbnQ2 NF90IHgsIHVuc2lnbmVkIGludCBjb3VudCkgeyByZXR1cm4gKHggJmd0OyZndDsgKDY0IC0gY291 bnQpKSB8ICh4ICZsdDsmbHQ7IGNvdW50KTsgfTxicj4mbmJzcDtlY2JfaW5saW5lIGVjYl9jb25z dCB1aW50NjRfdCBlY2Jfcm90cjY0ICh1aW50NjRfdCB4LCB1bnNpZ25lZCBpbnQgY291bnQpIHsg cmV0dXJuICh4ICZsdDsmbHQ7ICg2NCAtIGNvdW50KSkgfCAoeCAmZ3Q7Jmd0OyBjb3VudCk7IH08 YnI+Jm5ic3A7PGJyPisjaWYgRUNCX0NQUDxicj4rPGJyPitpbmxpbmUgdWludDhfdCAmbmJzcDtl Y2JfY3R6ICh1aW50OF90ICZuYnNwO3YpIHsgcmV0dXJuIGVjYl9jdHozMiAodik7IH08YnI+K2lu bGluZSB1aW50MTZfdCBlY2JfY3R6ICh1aW50MTZfdCB2KSB7IHJldHVybiBlY2JfY3R6MzIgKHYp OyB9PGJyPitpbmxpbmUgdWludDMyX3QgZWNiX2N0eiAodWludDMyX3QgdikgeyByZXR1cm4gZWNi X2N0ejMyICh2KTsgfTxicj4raW5saW5lIHVpbnQ2NF90IGVjYl9jdHogKHVpbnQ2NF90IHYpIHsg cmV0dXJuIGVjYl9jdHo2NCAodik7IH08YnI+Kzxicj4raW5saW5lIGJvb2wgZWNiX2lzX3BvdCAo dWludDhfdCAmbmJzcDt2KSB7IHJldHVybiBlY2JfaXNfcG90MzIgKHYpOyB9PGJyPitpbmxpbmUg Ym9vbCBlY2JfaXNfcG90ICh1aW50MTZfdCB2KSB7IHJldHVybiBlY2JfaXNfcG90MzIgKHYpOyB9 PGJyPitpbmxpbmUgYm9vbCBlY2JfaXNfcG90ICh1aW50MzJfdCB2KSB7IHJldHVybiBlY2JfaXNf cG90MzIgKHYpOyB9PGJyPitpbmxpbmUgYm9vbCBlY2JfaXNfcG90ICh1aW50NjRfdCB2KSB7IHJl dHVybiBlY2JfaXNfcG90NjQgKHYpOyB9PGJyPis8YnI+K2lubGluZSBpbnQgZWNiX2xkICh1aW50 OF90ICZuYnNwO3YpIHsgcmV0dXJuIGVjYl9sZDMyICh2KTsgfTxicj4raW5saW5lIGludCBlY2Jf bGQgKHVpbnQxNl90IHYpIHsgcmV0dXJuIGVjYl9sZDMyICh2KTsgfTxicj4raW5saW5lIGludCBl Y2JfbGQgKHVpbnQzMl90IHYpIHsgcmV0dXJuIGVjYl9sZDMyICh2KTsgfTxicj4raW5saW5lIGlu dCBlY2JfbGQgKHVpbnQ2NF90IHYpIHsgcmV0dXJuIGVjYl9sZDY0ICh2KTsgfTxicj4rPGJyPitp bmxpbmUgaW50IGVjYl9wb3Bjb3VudCAodWludDhfdCAmbmJzcDt2KSB7IHJldHVybiBlY2JfcG9w Y291bnQzMiAodik7IH08YnI+K2lubGluZSBpbnQgZWNiX3BvcGNvdW50ICh1aW50MTZfdCB2KSB7 IHJldHVybiBlY2JfcG9wY291bnQzMiAodik7IH08YnI+K2lubGluZSBpbnQgZWNiX3BvcGNvdW50 ICh1aW50MzJfdCB2KSB7IHJldHVybiBlY2JfcG9wY291bnQzMiAodik7IH08YnI+K2lubGluZSBp bnQgZWNiX3BvcGNvdW50ICh1aW50NjRfdCB2KSB7IHJldHVybiBlY2JfcG9wY291bnQ2NCAodik7 IH08YnI+Kzxicj4raW5saW5lIHVpbnQ4X3QgJm5ic3A7ZWNiX2JpdHJldiAodWludDhfdCAmbmJz cDt2KSB7IHJldHVybiBlY2JfYml0cmV2OCAmbmJzcDsodik7IH08YnI+K2lubGluZSB1aW50MTZf dCBlY2JfYml0cmV2ICh1aW50MTZfdCB2KSB7IHJldHVybiBlY2JfYml0cmV2MTYgKHYpOyB9PGJy PitpbmxpbmUgdWludDMyX3QgZWNiX2JpdHJldiAodWludDMyX3QgdikgeyByZXR1cm4gZWNiX2Jp dHJldjMyICh2KTsgfTxicj4rPGJyPitpbmxpbmUgdWludDhfdCAmbmJzcDtlY2Jfcm90bCAodWlu dDhfdCAmbmJzcDt2LCB1bnNpZ25lZCBpbnQgY291bnQpIHsgcmV0dXJuIGVjYl9yb3RsOCAmbmJz cDsodiwgY291bnQpOyB9PGJyPitpbmxpbmUgdWludDE2X3QgZWNiX3JvdGwgKHVpbnQxNl90IHYs IHVuc2lnbmVkIGludCBjb3VudCkgeyByZXR1cm4gZWNiX3JvdGwxNiAodiwgY291bnQpOyB9PGJy PitpbmxpbmUgdWludDMyX3QgZWNiX3JvdGwgKHVpbnQzMl90IHYsIHVuc2lnbmVkIGludCBjb3Vu dCkgeyByZXR1cm4gZWNiX3JvdGwzMiAodiwgY291bnQpOyB9PGJyPitpbmxpbmUgdWludDY0X3Qg ZWNiX3JvdGwgKHVpbnQ2NF90IHYsIHVuc2lnbmVkIGludCBjb3VudCkgeyByZXR1cm4gZWNiX3Jv dGw2NCAodiwgY291bnQpOyB9PGJyPis8YnI+K2lubGluZSB1aW50OF90ICZuYnNwO2VjYl9yb3Ry ICh1aW50OF90ICZuYnNwO3YsIHVuc2lnbmVkIGludCBjb3VudCkgeyByZXR1cm4gZWNiX3JvdHI4 ICZuYnNwOyh2LCBjb3VudCk7IH08YnI+K2lubGluZSB1aW50MTZfdCBlY2Jfcm90ciAodWludDE2 X3QgdiwgdW5zaWduZWQgaW50IGNvdW50KSB7IHJldHVybiBlY2Jfcm90cjE2ICh2LCBjb3VudCk7 IH08YnI+K2lubGluZSB1aW50MzJfdCBlY2Jfcm90ciAodWludDMyX3QgdiwgdW5zaWduZWQgaW50 IGNvdW50KSB7IHJldHVybiBlY2Jfcm90cjMyICh2LCBjb3VudCk7IH08YnI+K2lubGluZSB1aW50 NjRfdCBlY2Jfcm90ciAodWludDY0X3QgdiwgdW5zaWduZWQgaW50IGNvdW50KSB7IHJldHVybiBl Y2Jfcm90cjY0ICh2LCBjb3VudCk7IH08YnI+Kzxicj4rI2VuZGlmPGJyPis8YnI+Jm5ic3A7I2lm IEVDQl9HQ0NfVkVSU0lPTig0LDMpIHx8IChFQ0JfQ0xBTkdfQlVJTFRJTihfX2J1aWx0aW5fYnN3 YXAzMikgJmFtcDsmYW1wOyBFQ0JfQ0xBTkdfQlVJTFRJTihfX2J1aWx0aW5fYnN3YXA2NCkpPGJy PiZuYnNwOyAmbmJzcDsjaWYgRUNCX0dDQ19WRVJTSU9OKDQsOCkgfHwgRUNCX0NMQU5HX0JVSUxU SU4oX19idWlsdGluX2Jzd2FwMTYpPGJyPiZuYnNwOyAmbmJzcDsjZGVmaW5lIGVjYl9ic3dhcDE2 KHgpICZuYnNwO19fYnVpbHRpbl9ic3dhcDE2ICh4KTxicj5AQCAtMTE2MSw2ICsxMzM1LDc4IEBA IGVjYl9pbmxpbmUgZWNiX2NvbnN0IGVjYl9ib29sIGVjYl9iaWdfZW5kaWFuICZuYnNwOyAmbmJz cDsodm9pZCkgeyByZXR1cm4gZWNiX2J5dGVvcmRlcl9oZTxicj4mbmJzcDtlY2JfaW5saW5lIGVj Yl9jb25zdCBlY2JfYm9vbCBlY2JfbGl0dGxlX2VuZGlhbiAodm9pZCk7PGJyPiZuYnNwO2VjYl9p bmxpbmUgZWNiX2NvbnN0IGVjYl9ib29sIGVjYl9saXR0bGVfZW5kaWFuICh2b2lkKSB7IHJldHVy biBlY2JfYnl0ZW9yZGVyX2hlbHBlciAoKSA9PSAweDQ0MzMyMjExOyB9PGJyPiZuYnNwOzxicj4r LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLzxicj4rLyogdW5hbGlnbmVkIGxvYWQvc3RvcmUgKi88YnI+ Kzxicj4rZWNiX2lubGluZSB1aW50X2Zhc3QxNl90IGVjYl9iZV91MTZfdG9faG9zdCAodWludF9m YXN0MTZfdCB2KSB7IHJldHVybiBlY2JfbGl0dGxlX2VuZGlhbiAoKSA/IGVjYl9ic3dhcDE2ICh2 KSA6IHY7IH08YnI+K2VjYl9pbmxpbmUgdWludF9mYXN0MzJfdCBlY2JfYmVfdTMyX3RvX2hvc3Qg KHVpbnRfZmFzdDMyX3QgdikgeyByZXR1cm4gZWNiX2xpdHRsZV9lbmRpYW4gKCkgPyBlY2JfYnN3 YXAzMiAodikgOiB2OyB9PGJyPitlY2JfaW5saW5lIHVpbnRfZmFzdDY0X3QgZWNiX2JlX3U2NF90 b19ob3N0ICh1aW50X2Zhc3Q2NF90IHYpIHsgcmV0dXJuIGVjYl9saXR0bGVfZW5kaWFuICgpID8g ZWNiX2Jzd2FwNjQgKHYpIDogdjsgfTxicj4rPGJyPitlY2JfaW5saW5lIHVpbnRfZmFzdDE2X3Qg ZWNiX2xlX3UxNl90b19ob3N0ICh1aW50X2Zhc3QxNl90IHYpIHsgcmV0dXJuIGVjYl9iaWdfZW5k aWFuICZuYnNwOyAmbmJzcDsoKSA/IGVjYl9ic3dhcDE2ICh2KSA6IHY7IH08YnI+K2VjYl9pbmxp bmUgdWludF9mYXN0MzJfdCBlY2JfbGVfdTMyX3RvX2hvc3QgKHVpbnRfZmFzdDMyX3QgdikgeyBy ZXR1cm4gZWNiX2JpZ19lbmRpYW4gJm5ic3A7ICZuYnNwOygpID8gZWNiX2Jzd2FwMzIgKHYpIDog djsgfTxicj4rZWNiX2lubGluZSB1aW50X2Zhc3Q2NF90IGVjYl9sZV91NjRfdG9faG9zdCAodWlu dF9mYXN0NjRfdCB2KSB7IHJldHVybiBlY2JfYmlnX2VuZGlhbiAmbmJzcDsgJm5ic3A7KCkgPyBl Y2JfYnN3YXA2NCAodikgOiB2OyB9PGJyPis8YnI+K2VjYl9pbmxpbmUgdWludF9mYXN0MTZfdCBl Y2JfcGVla191MTZfdSAoY29uc3Qgdm9pZCAqcHRyKSB7IHVpbnQxNl90IHY7IG1lbWNweSAoJmFt cDt2LCBwdHIsIHNpemVvZiAodikpOyByZXR1cm4gdjsgfTxicj4rZWNiX2lubGluZSB1aW50X2Zh c3QzMl90IGVjYl9wZWVrX3UzMl91IChjb25zdCB2b2lkICpwdHIpIHsgdWludDMyX3QgdjsgbWVt Y3B5ICgmYW1wO3YsIHB0ciwgc2l6ZW9mICh2KSk7IHJldHVybiB2OyB9PGJyPitlY2JfaW5saW5l IHVpbnRfZmFzdDY0X3QgZWNiX3BlZWtfdTY0X3UgKGNvbnN0IHZvaWQgKnB0cikgeyB1aW50NjRf dCB2OyBtZW1jcHkgKCZhbXA7diwgcHRyLCBzaXplb2YgKHYpKTsgcmV0dXJuIHY7IH08YnI+Kzxi cj4rZWNiX2lubGluZSB1aW50X2Zhc3QxNl90IGVjYl9wZWVrX2JlX3UxNl91IChjb25zdCB2b2lk ICpwdHIpIHsgcmV0dXJuIGVjYl9iZV91MTZfdG9faG9zdCAoZWNiX3BlZWtfdTE2X3UgKHB0cikp OyB9PGJyPitlY2JfaW5saW5lIHVpbnRfZmFzdDMyX3QgZWNiX3BlZWtfYmVfdTMyX3UgKGNvbnN0 IHZvaWQgKnB0cikgeyByZXR1cm4gZWNiX2JlX3UzMl90b19ob3N0IChlY2JfcGVla191MzJfdSAo cHRyKSk7IH08YnI+K2VjYl9pbmxpbmUgdWludF9mYXN0NjRfdCBlY2JfcGVla19iZV91NjRfdSAo Y29uc3Qgdm9pZCAqcHRyKSB7IHJldHVybiBlY2JfYmVfdTY0X3RvX2hvc3QgKGVjYl9wZWVrX3U2 NF91IChwdHIpKTsgfTxicj4rPGJyPitlY2JfaW5saW5lIHVpbnRfZmFzdDE2X3QgZWNiX3BlZWtf bGVfdTE2X3UgKGNvbnN0IHZvaWQgKnB0cikgeyByZXR1cm4gZWNiX2xlX3UxNl90b19ob3N0IChl Y2JfcGVla191MTZfdSAocHRyKSk7IH08YnI+K2VjYl9pbmxpbmUgdWludF9mYXN0MzJfdCBlY2Jf cGVla19sZV91MzJfdSAoY29uc3Qgdm9pZCAqcHRyKSB7IHJldHVybiBlY2JfbGVfdTMyX3RvX2hv c3QgKGVjYl9wZWVrX3UzMl91IChwdHIpKTsgfTxicj4rZWNiX2lubGluZSB1aW50X2Zhc3Q2NF90 IGVjYl9wZWVrX2xlX3U2NF91IChjb25zdCB2b2lkICpwdHIpIHsgcmV0dXJuIGVjYl9sZV91NjRf dG9faG9zdCAoZWNiX3BlZWtfdTY0X3UgKHB0cikpOyB9PGJyPis8YnI+K2VjYl9pbmxpbmUgdWlu dF9mYXN0MTZfdCBlY2JfaG9zdF90b19iZV91MTYgKHVpbnRfZmFzdDE2X3QgdikgeyByZXR1cm4g ZWNiX2xpdHRsZV9lbmRpYW4gKCkgPyBlY2JfYnN3YXAxNiAodikgOiB2OyB9PGJyPitlY2JfaW5s aW5lIHVpbnRfZmFzdDMyX3QgZWNiX2hvc3RfdG9fYmVfdTMyICh1aW50X2Zhc3QzMl90IHYpIHsg cmV0dXJuIGVjYl9saXR0bGVfZW5kaWFuICgpID8gZWNiX2Jzd2FwMzIgKHYpIDogdjsgfTxicj4r ZWNiX2lubGluZSB1aW50X2Zhc3Q2NF90IGVjYl9ob3N0X3RvX2JlX3U2NCAodWludF9mYXN0NjRf dCB2KSB7IHJldHVybiBlY2JfbGl0dGxlX2VuZGlhbiAoKSA/IGVjYl9ic3dhcDY0ICh2KSA6IHY7 IH08YnI+Kzxicj4rZWNiX2lubGluZSB1aW50X2Zhc3QxNl90IGVjYl9ob3N0X3RvX2xlX3UxNiAo dWludF9mYXN0MTZfdCB2KSB7IHJldHVybiBlY2JfYmlnX2VuZGlhbiAmbmJzcDsgJm5ic3A7KCkg PyBlY2JfYnN3YXAxNiAodikgOiB2OyB9PGJyPitlY2JfaW5saW5lIHVpbnRfZmFzdDMyX3QgZWNi X2hvc3RfdG9fbGVfdTMyICh1aW50X2Zhc3QzMl90IHYpIHsgcmV0dXJuIGVjYl9iaWdfZW5kaWFu ICZuYnNwOyAmbmJzcDsoKSA/IGVjYl9ic3dhcDMyICh2KSA6IHY7IH08YnI+K2VjYl9pbmxpbmUg dWludF9mYXN0NjRfdCBlY2JfaG9zdF90b19sZV91NjQgKHVpbnRfZmFzdDY0X3QgdikgeyByZXR1 cm4gZWNiX2JpZ19lbmRpYW4gJm5ic3A7ICZuYnNwOygpID8gZWNiX2Jzd2FwNjQgKHYpIDogdjsg fTxicj4rPGJyPitlY2JfaW5saW5lIHZvaWQgZWNiX3Bva2VfdTE2X3UgKHZvaWQgKnB0ciwgdWlu dDE2X3QgdikgeyBtZW1jcHkgKHB0ciwgJmFtcDt2LCBzaXplb2YgKHYpKTsgfTxicj4rZWNiX2lu bGluZSB2b2lkIGVjYl9wb2tlX3UzMl91ICh2b2lkICpwdHIsIHVpbnQzMl90IHYpIHsgbWVtY3B5 IChwdHIsICZhbXA7diwgc2l6ZW9mICh2KSk7IH08YnI+K2VjYl9pbmxpbmUgdm9pZCBlY2JfcG9r ZV91NjRfdSAodm9pZCAqcHRyLCB1aW50NjRfdCB2KSB7IG1lbWNweSAocHRyLCAmYW1wO3YsIHNp emVvZiAodikpOyB9PGJyPis8YnI+K2VjYl9pbmxpbmUgdm9pZCBlY2JfcG9rZV9iZV91MTZfdSAo dm9pZCAqcHRyLCB1aW50X2Zhc3QxNl90IHYpIHsgZWNiX3Bva2VfdTE2X3UgKHB0ciwgZWNiX2hv c3RfdG9fYmVfdTE2ICh2KSk7IH08YnI+K2VjYl9pbmxpbmUgdm9pZCBlY2JfcG9rZV9iZV91MzJf dSAodm9pZCAqcHRyLCB1aW50X2Zhc3QzMl90IHYpIHsgZWNiX3Bva2VfdTMyX3UgKHB0ciwgZWNi X2hvc3RfdG9fYmVfdTMyICh2KSk7IH08YnI+K2VjYl9pbmxpbmUgdm9pZCBlY2JfcG9rZV9iZV91 NjRfdSAodm9pZCAqcHRyLCB1aW50X2Zhc3Q2NF90IHYpIHsgZWNiX3Bva2VfdTY0X3UgKHB0ciwg ZWNiX2hvc3RfdG9fYmVfdTY0ICh2KSk7IH08YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzxicj4rZWNiX2lubGluZSB2b2lkIGVjYl9wb2tlX2xl X3UxNl91ICh2b2lkICpwdHIsIHVpbnRfZmFzdDE2X3QgdikgeyBlY2JfcG9rZV91MTZfdSAocHRy LCBlY2JfaG9zdF90b19sZV91MTYgKHYpKTsgfTxicj4rZWNiX2lubGluZSB2b2lkIGVjYl9wb2tl X2xlX3UzMl91ICh2b2lkICpwdHIsIHVpbnRfZmFzdDMyX3QgdikgeyBlY2JfcG9rZV91MzJfdSAo cHRyLCBlY2JfaG9zdF90b19sZV91MzIgKHYpKTsgfTxicj4rZWNiX2lubGluZSB2b2lkIGVjYl9w b2tlX2xlX3U2NF91ICh2b2lkICpwdHIsIHVpbnRfZmFzdDY0X3QgdikgeyBlY2JfcG9rZV91NjRf dSAocHRyLCBlY2JfaG9zdF90b19sZV91NjQgKHYpKTsgfTxicj4rPGJyPisjaWYgRUNCX0NQUDxi cj4rPGJyPitpbmxpbmUgdWludDhfdCAmbmJzcDtlY2JfYnN3YXAgKHVpbnQ4X3QgJm5ic3A7dikg eyByZXR1cm4gdjsgfTxicj4raW5saW5lIHVpbnQxNl90IGVjYl9ic3dhcCAodWludDE2X3Qgdikg eyByZXR1cm4gZWNiX2Jzd2FwMTYgKHYpOyB9PGJyPitpbmxpbmUgdWludDMyX3QgZWNiX2Jzd2Fw ICh1aW50MzJfdCB2KSB7IHJldHVybiBlY2JfYnN3YXAzMiAodik7IH08YnI+K2lubGluZSB1aW50 NjRfdCBlY2JfYnN3YXAgKHVpbnQ2NF90IHYpIHsgcmV0dXJuIGVjYl9ic3dhcDY0ICh2KTsgfTxi cj4rPGJyPit0ZW1wbGF0ZSZsdDt0eXBlbmFtZSBUJmd0OyBpbmxpbmUgVCBlY2JfYmVfdG9faG9z dCAoVCB2KSB7IHJldHVybiBlY2JfbGl0dGxlX2VuZGlhbiAoKSA/IGVjYl9ic3dhcCAodikgOiB2 OyB9PGJyPit0ZW1wbGF0ZSZsdDt0eXBlbmFtZSBUJmd0OyBpbmxpbmUgVCBlY2JfbGVfdG9faG9z dCAoVCB2KSB7IHJldHVybiBlY2JfYmlnX2VuZGlhbiAmbmJzcDsgJm5ic3A7KCkgPyBlY2JfYnN3 YXAgKHYpIDogdjsgfTxicj4rdGVtcGxhdGUmbHQ7dHlwZW5hbWUgVCZndDsgaW5saW5lIFQgZWNi X3BlZWsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgKGNvbnN0IHZvaWQgKnB0cikgeyByZXR1cm4gKihj b25zdCBUICopcHRyOyB9PGJyPit0ZW1wbGF0ZSZsdDt0eXBlbmFtZSBUJmd0OyBpbmxpbmUgVCBl Y2JfcGVla19iZSAmbmJzcDsgJm5ic3A7KGNvbnN0IHZvaWQgKnB0cikgeyByZXR1cm4gZWNiX2Jl X3RvX2hvc3QgKGVjYl9wZWVrICZuYnNwOyZsdDtUJmd0OyAocHRyKSk7IH08YnI+K3RlbXBsYXRl Jmx0O3R5cGVuYW1lIFQmZ3Q7IGlubGluZSBUIGVjYl9wZWVrX2xlICZuYnNwOyAmbmJzcDsoY29u c3Qgdm9pZCAqcHRyKSB7IHJldHVybiBlY2JfbGVfdG9faG9zdCAoZWNiX3BlZWsgJm5ic3A7Jmx0 O1QmZ3Q7IChwdHIpKTsgfTxicj4rdGVtcGxhdGUmbHQ7dHlwZW5hbWUgVCZndDsgaW5saW5lIFQg ZWNiX3BlZWtfdSAmbmJzcDsgJm5ic3A7IChjb25zdCB2b2lkICpwdHIpIHsgVCB2OyBtZW1jcHkg KCZhbXA7diwgcHRyLCBzaXplb2YgKHYpKTsgcmV0dXJuIHY7IH08YnI+K3RlbXBsYXRlJmx0O3R5 cGVuYW1lIFQmZ3Q7IGlubGluZSBUIGVjYl9wZWVrX2JlX3UgJm5ic3A7KGNvbnN0IHZvaWQgKnB0 cikgeyByZXR1cm4gZWNiX2JlX3RvX2hvc3QgKGVjYl9wZWVrX3UmbHQ7VCZndDsgKHB0cikpOyB9 PGJyPit0ZW1wbGF0ZSZsdDt0eXBlbmFtZSBUJmd0OyBpbmxpbmUgVCBlY2JfcGVla19sZV91ICZu YnNwOyhjb25zdCB2b2lkICpwdHIpIHsgcmV0dXJuIGVjYl9sZV90b19ob3N0IChlY2JfcGVla191 Jmx0O1QmZ3Q7IChwdHIpKTsgfTxicj4rPGJyPit0ZW1wbGF0ZSZsdDt0eXBlbmFtZSBUJmd0OyBp bmxpbmUgVCBlY2JfaG9zdF90b19iZSAoVCB2KSB7IHJldHVybiBlY2JfbGl0dGxlX2VuZGlhbiAo KSA/IGVjYl9ic3dhcCAodikgOiB2OyB9PGJyPit0ZW1wbGF0ZSZsdDt0eXBlbmFtZSBUJmd0OyBp bmxpbmUgVCBlY2JfaG9zdF90b19sZSAoVCB2KSB7IHJldHVybiBlY2JfYmlnX2VuZGlhbiAmbmJz cDsgJm5ic3A7KCkgPyBlY2JfYnN3YXAgKHYpIDogdjsgfTxicj4rdGVtcGxhdGUmbHQ7dHlwZW5h bWUgVCZndDsgaW5saW5lIHZvaWQgZWNiX3Bva2UgJm5ic3A7ICZuYnNwOyAmbmJzcDsodm9pZCAq cHRyLCBUIHYpIHsgKihUICopcHRyID0gdjsgfTxicj4rdGVtcGxhdGUmbHQ7dHlwZW5hbWUgVCZn dDsgaW5saW5lIHZvaWQgZWNiX3Bva2VfYmUgJm5ic3A7ICh2b2lkICpwdHIsIFQgdikgeyByZXR1 cm4gZWNiX3Bva2UgJm5ic3A7Jmx0O1QmZ3Q7IChwdHIsIGVjYl9ob3N0X3RvX2JlICh2KSk7IH08 YnI+K3RlbXBsYXRlJmx0O3R5cGVuYW1lIFQmZ3Q7IGlubGluZSB2b2lkIGVjYl9wb2tlX2xlICZu YnNwOyAodm9pZCAqcHRyLCBUIHYpIHsgcmV0dXJuIGVjYl9wb2tlICZuYnNwOyZsdDtUJmd0OyAo cHRyLCBlY2JfaG9zdF90b19sZSAodikpOyB9PGJyPit0ZW1wbGF0ZSZsdDt0eXBlbmFtZSBUJmd0 OyBpbmxpbmUgdm9pZCBlY2JfcG9rZV91ICZuYnNwOyAmbmJzcDsodm9pZCAqcHRyLCBUIHYpIHsg bWVtY3B5IChwdHIsICZhbXA7diwgc2l6ZW9mICh2KSk7IH08YnI+K3RlbXBsYXRlJmx0O3R5cGVu YW1lIFQmZ3Q7IGlubGluZSB2b2lkIGVjYl9wb2tlX2JlX3UgKHZvaWQgKnB0ciwgVCB2KSB7IHJl dHVybiBlY2JfcG9rZV91Jmx0O1QmZ3Q7IChwdHIsIGVjYl9ob3N0X3RvX2JlICh2KSk7IH08YnI+ K3RlbXBsYXRlJmx0O3R5cGVuYW1lIFQmZ3Q7IGlubGluZSB2b2lkIGVjYl9wb2tlX2xlX3UgKHZv aWQgKnB0ciwgVCB2KSB7IHJldHVybiBlY2JfcG9rZV91Jmx0O1QmZ3Q7IChwdHIsIGVjYl9ob3N0 X3RvX2xlICh2KSk7IH08YnI+Kzxicj4rI2VuZGlmPGJyPis8YnI+Ky8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi88YnI+Kzxicj4mbmJzcDsjaWYgRUNCX0dDQ19WRVJTSU9OKDMsMCkgfHwgRUNCX0M5OTxi cj4mbmJzcDsgJm5ic3A7I2RlZmluZSBlY2JfbW9kKG0sbikgKChtKSAlIChuKSArICgobSkgJSAo bikgJmx0OyAwID8gKG4pIDogMCkpPGJyPiZuYnNwOyNlbHNlPGJyPkBAIC0xMTk0LDYgKzE0NDAs OCBAQCBlY2JfaW5saW5lIGVjYl9jb25zdCBlY2JfYm9vbCBlY2JfbGl0dGxlX2VuZGlhbiAodm9p ZCkgeyByZXR1cm4gZWNiX2J5dGVvcmRlcl9oZTxicj4mbmJzcDsgJm5ic3A7I2RlZmluZSBlY2Jf YXJyYXlfbGVuZ3RoKG5hbWUpIChzaXplb2YgKG5hbWUpIC8gc2l6ZW9mIChuYW1lIFswXSkpPGJy PiZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88YnI+Kzxi cj4mbmJzcDtlY2JfZnVuY3Rpb25fIGVjYl9jb25zdCB1aW50MzJfdCBlY2JfYmluYXJ5MTZfdG9f YmluYXJ5MzIgKHVpbnQzMl90IHgpOzxicj4mbmJzcDtlY2JfZnVuY3Rpb25fIGVjYl9jb25zdCB1 aW50MzJfdDxicj4mbmJzcDtlY2JfYmluYXJ5MTZfdG9fYmluYXJ5MzIgKHVpbnQzMl90IHgpPGJy PkBAIC0xMzExLDcgKzE1NTksNiBAQCBlY2JfYmluYXJ5MzJfdG9fYmluYXJ5MTYgKHVpbnQzMl90 IHgpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fHwgKGRlZmluZWQgX19hcm1fXyAmYW1wOyZhbXA7 IChkZWZpbmVkIF9fQVJNX0VBQklfXyB8fCBkZWZpbmVkIF9fRUFCSV9fIHx8IGRlZmluZWQgX19W RlBfRlBfXyB8fCBkZWZpbmVkIF9XSU4zMl9XQ0UgfHwgZGVmaW5lZCBfX0FORFJPSURfXykpIFw8 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt8fCBkZWZpbmVkIF9fYWFyY2g2NF9fPGJyPiZuYnNwOyAm bmJzcDsjZGVmaW5lIEVDQl9TVERGUCAxPGJyPi0gJm5ic3A7I2luY2x1ZGUgJmx0O3N0cmluZy5o Jmd0OyAvKiBmb3IgbWVtY3B5ICovPGJyPiZuYnNwOyNlbHNlPGJyPiZuYnNwOyAmbmJzcDsjZGVm aW5lIEVDQl9TVERGUCAwPGJyPiZuYnNwOyNlbmRpZjxicj5AQCAtMTUwNiw3ICsxNzUzLDcgQEAg ZWNiX2JpbmFyeTMyX3RvX2JpbmFyeTE2ICh1aW50MzJfdCB4KTxicj4mbmJzcDsjaWYgRUNCX01F TU9SWV9GRU5DRV9ORUVEU19QVEhSRUFEUzxicj4mbmJzcDsvKiBpZiB5b3VyIGFyY2hpdGVjdHVy ZSBkb2Vzbid0IG5lZWQgbWVtb3J5IGZlbmNlcywgZS5nLiBiZWNhdXNlIGl0IGlzPGJyPiZuYnNw OyAqIHNpbmdsZS1jcHUvY29yZSwgb3IgaWYgeW91IHVzZSBsaWJldiBpbiBhIHByb2plY3QgdGhh dCBkb2Vzbid0IHVzZSBsaWJldjxicj4tICogZnJvbSBtdWx0aXBsZSB0aHJlYWRzLCB0aGVuIHlv dSBjYW4gZGVmaW5lIEVDQl9BVk9JRF9QVEhSRUFEUyB3aGVuIGNvbXBpbGluZzxicj4rICogZnJv bSBtdWx0aXBsZSB0aHJlYWRzLCB0aGVuIHlvdSBjYW4gZGVmaW5lIEVDQl9OT19USFJFQURTIHdo ZW4gY29tcGlsaW5nPGJyPiZuYnNwOyAqIGxpYmV2LCBpbiB3aGljaCBjYXNlcyB0aGUgbWVtb3J5 IGZlbmNlcyBiZWNvbWUgbm9wcy48YnI+Jm5ic3A7ICogYWx0ZXJuYXRpdmVseSwgeW91IGNhbiBy ZW1vdmUgdGhpcyAjZXJyb3IgYW5kIGxpbmsgYWdhaW5zdCBsaWJwdGhyZWFkLDxicj4mbmJzcDsg KiB3aGljaCB3aWxsIHRoZW4gcHJvdmlkZSB0aGUgbWVtb3J5IGZlbmNlcy48YnI+QEAgLTE1Mjks OSArMTc3Niw3NSBAQCBlY2JfYmluYXJ5MzJfdG9fYmluYXJ5MTYgKHVpbnQzMl90IHgpPGJyPiZu YnNwOyNpZiBFVl9GRUFUVVJFX0NPREU8YnI+Jm5ic3A7IyBkZWZpbmUgaW5saW5lX3NwZWVkICZu YnNwOyAmbmJzcDsgJm5ic3A7ZWNiX2lubGluZTxicj4mbmJzcDsjZWxzZTxicj4tIyBkZWZpbmUg aW5saW5lX3NwZWVkICZuYnNwOyAmbmJzcDsgJm5ic3A7bm9pbmxpbmUgc3RhdGljPGJyPisjIGRl ZmluZSBpbmxpbmVfc3BlZWQgJm5ic3A7ICZuYnNwOyAmbmJzcDtlY2Jfbm9pbmxpbmUgc3RhdGlj PGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+Ky8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88YnI+ Ky8qIHJhdyBzeXNjYWxsIHdyYXBwZXJzICovPGJyPis8YnI+KyNpZiBFVl9ORUVEX1NZU0NBTEw8 YnI+Kzxicj4rI2luY2x1ZGUgJmx0O3N5cy9zeXNjYWxsLmgmZ3Q7PGJyPis8YnI+Ky8qPGJyPisg KiBkZWZpbmUgc29tZSBzeXNjYWxsIHdyYXBwZXJzIGZvciBjb21tb24gYXJjaGl0ZWN0dXJlczxi cj4rICogdGhpcyBpcyBtb3N0bHkgZm9yIG5pY2UgbG9va3MgZHVyaW5nIGRlYnVnZ2luZywgbm90 IHBlcmZvcm1hbmNlLjxicj4rICogb3VyIHN5c2NhbGxzIHJldHVybiAmbHQ7IDAsIG5vdCA9PSAt MSwgb24gZXJyb3IuIHdoaWNoIGlzIGdvb2Q8YnI+KyAqIGVub3VnaCBmb3IgbGludXggYWlvLjxi cj4rICogVE9ETzogYXJtIGlzIGFsc28gY29tbW9uIG5vd2FkYXlzLCBtYXliZSBldmVuIG1pcHMg YW5kIHg4Njxicj4rICogVE9ETzogYWZ0ZXIgaW1wbGVtZW50aW5nIHRoaXMsIGl0IHN1ZGRlbmx5 IGxvb2tzIGxpa2Ugb3ZlcmtpbGwsIGJ1dCBpdHMgaGFyZCB0byByZW1vdmUuLi48YnI+KyAqLzxi cj4rI2lmIF9fR05VQ19fICZhbXA7JmFtcDsgX19saW51eCAmYW1wOyZhbXA7IEVDQl9BTUQ2NCAm YW1wOyZhbXA7ICFFVl9GRUFUVVJFX0NPREU8YnI+KyAmbmJzcDsvKiB0aGUgY29zdGx5IGVycm5v IGFjY2VzcyBwcm9iYWJseSBraWxscyB0aGlzIGZvciBzaXplIG9wdGltaXNhdGlvbiAqLzxicj4r PGJyPisgJm5ic3A7I2RlZmluZSBldl9zeXNjYWxsKG5yLG5hcmcsYXJnMSxhcmcyLGFyZzMsYXJn NCxhcmc1LGFyZzYpICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7XDxi cj4rICZuYnNwOyAmbmJzcDsoeyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7IFw8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtsb25nIHJl czsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtcPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVn aXN0ZXIgdW5zaWduZWQgbG9uZyByNiBfX2FzbV9fICgicjkiICk7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVnaXN0ZXIgdW5zaWduZWQgbG9uZyByNSBf X2FzbV9fICgicjgiICk7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7cmVnaXN0ZXIgdW5zaWduZWQgbG9uZyByNCBfX2FzbV9fICgicjEwIik7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyBcPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVnaXN0ZXIgdW5zaWduZWQg bG9uZyByMyBfX2FzbV9fICgicmR4Iik7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJyPisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7cmVnaXN0ZXIgdW5zaWduZWQgbG9uZyByMiBfX2FzbV9fICgicnNpIik7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyBcPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVnaXN0ZXIg dW5zaWduZWQgbG9uZyByMSBfX2FzbV9fICgicmRpIik7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKG5hcmcgJmd0Oz0gNikgcjYgPSAodW5zaWduZWQg bG9uZykoYXJnNik7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7aWYgKG5hcmcgJmd0Oz0gNSkgcjUgPSAodW5zaWduZWQgbG9uZykoYXJnNSk7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyBcPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKG5hcmcgJmd0Oz0gNCkg cjQgPSAodW5zaWduZWQgbG9uZykoYXJnNCk7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJyPisgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7aWYgKG5hcmcgJmd0Oz0gMykgcjMgPSAodW5zaWduZWQgbG9uZyko YXJnMyk7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYg KG5hcmcgJmd0Oz0gMikgcjIgPSAodW5zaWduZWQgbG9uZykoYXJnMik7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBc PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKG5hcmcgJmd0Oz0gMSkgcjEgPSAo dW5zaWduZWQgbG9uZykoYXJnMSk7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBcPGJyPisgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7X19hc21fXyBfX3ZvbGF0aWxlX18gKCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7IFw8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7InN5c2NhbGxcblx0 IiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1w8 YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAiPWEiIChyZXMpICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAiMCIgKG5yKSwgInIiIChyMSksICJy IiAocjIpLCAiciIgKHIzKSwgInIiIChyNCksICJyIiAocjUpIFw8YnI+KyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiAiY2MiLCAicjExIiwgImN4IiwgIm1lbW9yeSIpOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1w8YnI+KyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtlcnJubyA9IC1yZXM7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1w8YnI+KyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDtyZXM7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgXDxicj4r ICZuYnNwOyAmbmJzcDt9KTxicj4rPGJyPisjZW5kaWY8YnI+Kzxicj4rI2lmZGVmIGV2X3N5c2Nh bGw8YnI+KyAmbmJzcDsjZGVmaW5lIGV2X3N5c2NhbGwwKG5yKSAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBldl9zeXNjYWxsIChuciwgMCwgJm5ic3A7ICZu YnNwOzAsICZuYnNwOyAmbmJzcDswLCAmbmJzcDsgJm5ic3A7MCwgJm5ic3A7ICZuYnNwOzAsICZu YnNwOyAmbmJzcDswLCAmbmJzcDsgMCk8YnI+KyAmbmJzcDsjZGVmaW5lIGV2X3N5c2NhbGwxKG5y LGFyZzEpICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3N5c2NhbGwgKG5yLCAx LCBhcmcxLCAmbmJzcDsgJm5ic3A7MCwgJm5ic3A7ICZuYnNwOzAsICZuYnNwOyAmbmJzcDswLCAm bmJzcDsgJm5ic3A7MCwgJm5ic3A7IDApPGJyPisgJm5ic3A7I2RlZmluZSBldl9zeXNjYWxsMihu cixhcmcxLGFyZzIpICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBldl9zeXNjYWxsIChuciwgMiwgYXJnMSwgYXJnMiwg Jm5ic3A7ICZuYnNwOzAsICZuYnNwOyAmbmJzcDswLCAmbmJzcDsgJm5ic3A7MCwgJm5ic3A7IDAp PGJyPisgJm5ic3A7I2RlZmluZSBldl9zeXNjYWxsMyhucixhcmcxLGFyZzIsYXJnMykgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3N5c2Nh bGwgKG5yLCAzLCBhcmcxLCBhcmcyLCBhcmczLCAmbmJzcDsgJm5ic3A7MCwgJm5ic3A7ICZuYnNw OzAsICZuYnNwOyAwKTxicj4rICZuYnNwOyNkZWZpbmUgZXZfc3lzY2FsbDQobnIsYXJnMSxhcmcy LGFyZzMsYXJnNCkgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBldl9zeXNjYWxs IChuciwgMywgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgJm5ic3A7ICZuYnNwOzAsICZuYnNwOyAw KTxicj4rICZuYnNwOyNkZWZpbmUgZXZfc3lzY2FsbDUobnIsYXJnMSxhcmcyLGFyZzMsYXJnNCxh cmc1KSAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3N5c2NhbGwgKG5yLCA1LCBhcmcxLCBhcmcyLCBh cmczLCBhcmc0LCBhcmc1LCAmbmJzcDsgMCk8YnI+KyAmbmJzcDsjZGVmaW5lIGV2X3N5c2NhbGw2 KG5yLGFyZzEsYXJnMixhcmczLGFyZzQsYXJnNSxhcmc2KSBldl9zeXNjYWxsIChuciwgNiwgYXJn MSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSxhcmc2KTxicj4rI2Vsc2U8YnI+KyAmbmJzcDsjZGVm aW5lIGV2X3N5c2NhbGwwKG5yKSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyBzeXNjYWxsIChucik8YnI+KyAmbmJzcDsjZGVmaW5lIGV2X3N5c2NhbGwxKG5y LGFyZzEpICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N5c2NhbGwgKG5yLCBhcmcx KTxicj4rICZuYnNwOyNkZWZpbmUgZXZfc3lzY2FsbDIobnIsYXJnMSxhcmcyKSAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgc3lzY2FsbCAobnIsIGFyZzEsIGFyZzIpPGJyPisgJm5ic3A7I2RlZmluZSBldl9zeXNjYWxs MyhucixhcmcxLGFyZzIsYXJnMykgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO3N5c2NhbGwgKG5yLCBhcmcxLCBhcmcyLCBhcmczKTxicj4rICZu YnNwOyNkZWZpbmUgZXZfc3lzY2FsbDQobnIsYXJnMSxhcmcyLGFyZzMsYXJnNCkgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBzeXNjYWxsIChuciwgYXJnMSwgYXJnMiwgYXJnMywg YXJnNCk8YnI+KyAmbmJzcDsjZGVmaW5lIGV2X3N5c2NhbGw1KG5yLGFyZzEsYXJnMixhcmczLGFy ZzQsYXJnNSkgJm5ic3A7ICZuYnNwOyAmbmJzcDtzeXNjYWxsIChuciwgYXJnMSwgYXJnMiwgYXJn MywgYXJnNCwgYXJnNSk8YnI+KyAmbmJzcDsjZGVmaW5lIGV2X3N5c2NhbGw2KG5yLGFyZzEsYXJn MixhcmczLGFyZzQsYXJnNSxhcmc2KSBzeXNjYWxsIChuciwgYXJnMSwgYXJnMiwgYXJnMywgYXJn NCwgYXJnNSxhcmc2KTxicj4rI2VuZGlmPGJyPis8YnI+KyNlbmRpZjxicj4rPGJyPisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovPGJyPis8YnI+Jm5ic3A7I2RlZmluZSBOVU1QUkkgKEVWX01BWFBSSSAt IEVWX01JTlBSSSArIDEpPGJyPiZuYnNwOzxicj4mbmJzcDsjaWYgRVZfTUlOUFJJID09IEVWX01B WFBSSTxicj5AQCAtMTU0MCw4ICsxODUzLDcgQEAgZWNiX2JpbmFyeTMyX3RvX2JpbmFyeTE2ICh1 aW50MzJfdCB4KTxicj4mbmJzcDsjIGRlZmluZSBBQlNQUkkodykgKCgoVyl3KS0mZ3Q7cHJpb3Jp dHkgLSBFVl9NSU5QUkkpPGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+LSNkZWZpbmUgRU1Q VFkgJm5ic3A7ICZuYnNwOyAmbmJzcDsgLyogcmVxdWlyZWQgZm9yIG1pY3Jvc29mdHMgYnJva2Vu IHBzZXVkby1jIGNvbXBpbGVyICovPGJyPi0jZGVmaW5lIEVNUFRZMihhLGIpIC8qIHVzZWQgdG8g c3VwcHJlc3Mgc29tZSB3YXJuaW5ncyAqLzxicj4rI2RlZmluZSBFTVBUWSAvKiByZXF1aXJlZCBm b3IgbWljcm9zb2Z0cyBicm9rZW4gcHNldWRvLWMgY29tcGlsZXIgKi88YnI+Jm5ic3A7PGJyPiZu YnNwO3R5cGVkZWYgZXZfd2F0Y2hlciAqVzs8YnI+Jm5ic3A7dHlwZWRlZiBldl93YXRjaGVyX2xp c3QgKldMOzxicj5AQCAtMTU3Niw2ICsxODg4LDEwIEBAIHN0YXRpYyBFVl9BVE9NSUNfVCBoYXZl X21vbm90b25pYzsgLyogZGlkIGNsb2NrX2dldHRpbWUgKENMT0NLX01PTk9UT05JQykgd29yaz88 YnI+Jm5ic3A7PGJyPiZuYnNwOy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88YnI+Jm5ic3A7PGJyPisj aWYgRVZfVVNFX0xJTlVYQUlPPGJyPisjIGluY2x1ZGUgJmx0O2xpbnV4L2Fpb19hYmkuaCZndDsg LyogcHJvYmFibHkgb25seSBuZWVkZWQgZm9yIGFpb19jb250ZXh0X3QgKi88YnI+KyNlbmRpZjxi cj4rPGJyPiZuYnNwOy8qIGRlZmluZSBhIHN1aXRhYmxlIGZsb29yIGZ1bmN0aW9uIChvbmx5IHVz ZWQgYnkgcGVyaW9kaWNzIGF0bSkgKi88YnI+Jm5ic3A7PGJyPiZuYnNwOyNpZiBFVl9VU0VfRkxP T1I8YnI+QEAgLTE1ODYsNyArMTkwMiw3IEBAIHN0YXRpYyBFVl9BVE9NSUNfVCBoYXZlX21vbm90 b25pYzsgLyogZGlkIGNsb2NrX2dldHRpbWUgKENMT0NLX01PTk9UT05JQykgd29yaz88YnI+Jm5i c3A7I2luY2x1ZGUgJmx0O2Zsb2F0LmgmZ3Q7PGJyPiZuYnNwOzxicj4mbmJzcDsvKiBhIGZsb29y KCkgcmVwbGFjZW1lbnQgZnVuY3Rpb24sIHNob3VsZCBiZSBpbmRlcGVuZGVudCBvZiBldl90c3Rh bXAgdHlwZSAqLzxicj4tbm9pbmxpbmU8YnI+K2VjYl9ub2lubGluZTxicj4mbmJzcDtzdGF0aWMg ZXZfdHN0YW1wPGJyPiZuYnNwO2V2X2Zsb29yIChldl90c3RhbXAgdik8YnI+Jm5ic3A7ezxicj5A QCAtMTU5NywyNiArMTkxMywyNiBAQCBldl9mbG9vciAoZXZfdHN0YW1wIHYpPGJyPiZuYnNwOyAm bmJzcDtjb25zdCBldl90c3RhbXAgc2hpZnQgPSBzaXplb2YgKHVuc2lnbmVkIGxvbmcpICZndDs9 IDggPyAxODQ0Njc0NDA3MzcwOTU1MTYxNi4gOiA0Mjk0OTY3Mjk2Ljs8YnI+Jm5ic3A7I2VuZGlm PGJyPiZuYnNwOzxicj4tICZuYnNwOy8qIGFyZ3VtZW50IHRvbyBsYXJnZSBmb3IgYW4gdW5zaWdu ZWQgbG9uZz8gKi88YnI+LSAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNlICh2ICZndDs9IHNoaWZ0KSk8 YnI+KyAmbmJzcDsvKiBzcGVjaWFsIHRyZWF0bWVudCBmb3IgbmVnYXRpdmUgYXJndW1lbnRzICov PGJyPisgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKHYgJmx0OyAwLikpPGJyPisgJm5ic3A7 ICZuYnNwO3s8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3RzdGFtcCBmID0gLWV2X2Zsb29y ICgtdik7PGJyPis8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiBmIC0gKGYgPT0gdiA/ IDAgOiAxKTs8YnI+KyAmbmJzcDsgJm5ic3A7fTxicj4rPGJyPisgJm5ic3A7LyogYXJndW1lbnQg dG9vIGxhcmdlIGZvciBhbiB1bnNpZ25lZCBsb25nPyB0aGVuIHJlZHVjZSBpdCAqLzxicj4rICZu YnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlICh2ICZndDs9IHNoaWZ0KSk8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3RzdGFtcCBmOzxicj4m bmJzcDs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKHYgPT0gdiAtIDEuKTxicj4t ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiB2OyAvKiB2ZXJ5IGxhcmdlIG51bWJl ciAqLzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiB2OyAvKiB2ZXJ5IGxh cmdlIG51bWJlcnMgYXJlIGFzc3VtZWQgdG8gYmUgaW50ZWdlciAqLzxicj4mbmJzcDs8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZiA9IHNoaWZ0ICogZXZfZmxvb3IgKHYgKiAoMS4gLyBz aGlmdCkpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4gZiArIGV2X2Zsb29y ICh2IC0gZik7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+LSAmbmJzcDsv KiBzcGVjaWFsIHRyZWF0bWVudCBmb3IgbmVnYXRpdmUgYXJncz8gKi88YnI+LSAmbmJzcDtpZiAo ZXhwZWN0X2ZhbHNlICh2ICZsdDsgMC4pKTxicj4tICZuYnNwOyAmbmJzcDt7PGJyPi0gJm5ic3A7 ICZuYnNwOyAmbmJzcDtldl90c3RhbXAgZiA9IC1ldl9mbG9vciAoLXYpOzxicj4tPGJyPi0gJm5i c3A7ICZuYnNwOyAmbmJzcDtyZXR1cm4gZiAtIChmID09IHYgPyAwIDogMSk7PGJyPi0gJm5ic3A7 ICZuYnNwO308YnI+LTxicj4mbmJzcDsgJm5ic3A7LyogZml0cyBpbnRvIGFuIHVuc2lnbmVkIGxv bmcgKi88YnI+Jm5ic3A7ICZuYnNwO3JldHVybiAodW5zaWduZWQgbG9uZyl2Ozxicj4mbmJzcDt9 PGJyPkBAIC0xNjI5LDcgKzE5NDUsNyBAQCBldl9mbG9vciAoZXZfdHN0YW1wIHYpPGJyPiZuYnNw OyMgaW5jbHVkZSAmbHQ7c3lzL3V0c25hbWUuaCZndDs8YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNw Ozxicj4tbm9pbmxpbmUgZWNiX2NvbGQ8YnI+K2VjYl9ub2lubGluZSBlY2JfY29sZDxicj4mbmJz cDtzdGF0aWMgdW5zaWduZWQgaW50PGJyPiZuYnNwO2V2X2xpbnV4X3ZlcnNpb24gKHZvaWQpPGJy PiZuYnNwO3s8YnI+QEAgLTE2NjksNyArMTk4NSw3IEBAIGV2X2xpbnV4X3ZlcnNpb24gKHZvaWQp PGJyPiZuYnNwOy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88YnI+Jm5ic3A7PGJyPiZuYnNwOyNpZiBF Vl9BVk9JRF9TVERJTzxicj4tbm9pbmxpbmUgZWNiX2NvbGQ8YnI+K2VjYl9ub2lubGluZSBlY2Jf Y29sZDxicj4mbmJzcDtzdGF0aWMgdm9pZDxicj4mbmJzcDtldl9wcmludGVyciAoY29uc3QgY2hh ciAqbXNnKTxicj4mbmJzcDt7PGJyPkBAIC0xNjc3LDE2ICsxOTkzLDE2IEBAIGV2X3ByaW50ZXJy IChjb25zdCBjaGFyICptc2cpPGJyPiZuYnNwO308YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxi cj4tc3RhdGljIHZvaWQgKCpzeXNlcnJfY2IpKGNvbnN0IGNoYXIgKm1zZykgRVZfVEhST1c7PGJy PitzdGF0aWMgdm9pZCAoKnN5c2Vycl9jYikoY29uc3QgY2hhciAqbXNnKSBFVl9OT0VYQ0VQVDs8 YnI+Jm5ic3A7PGJyPiZuYnNwO2VjYl9jb2xkPGJyPiZuYnNwO3ZvaWQ8YnI+LWV2X3NldF9zeXNl cnJfY2IgKHZvaWQgKCpjYikoY29uc3QgY2hhciAqbXNnKSBFVl9USFJPVykgRVZfVEhST1c8YnI+ K2V2X3NldF9zeXNlcnJfY2IgKHZvaWQgKCpjYikoY29uc3QgY2hhciAqbXNnKSBFVl9OT0VYQ0VQ VCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7c3lzZXJyX2NiID0gY2I7 PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPi1ub2lubGluZSBlY2JfY29sZDxicj4rZWNiX25vaW5s aW5lIGVjYl9jb2xkPGJyPiZuYnNwO3N0YXRpYyB2b2lkPGJyPiZuYnNwO2V2X3N5c2VyciAoY29u c3QgY2hhciAqbXNnKTxicj4mbmJzcDt7PGJyPkBAIC0xNzEwLDcgKzIwMjYsNyBAQCBldl9zeXNl cnIgKGNvbnN0IGNoYXIgKm1zZyk8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7c3RhdGlj IHZvaWQgKjxicj4tZXZfcmVhbGxvY19lbXVsICh2b2lkICpwdHIsIGxvbmcgc2l6ZSkgRVZfVEhS T1c8YnI+K2V2X3JlYWxsb2NfZW11bCAodm9pZCAqcHRyLCBsb25nIHNpemUpIEVWX05PRVhDRVBU PGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOy8qIHNvbWUgc3lzdGVtcywgbm90YWJseSBvcGVu YnNkIGFuZCBkYXJ3aW4sIGZhaWwgdG8gcHJvcGVybHk8YnI+Jm5ic3A7ICZuYnNwOyAqIGltcGxl bWVudCByZWFsbG9jICh4LCAwKSAoYXMgcmVxdWlyZWQgYnkgYm90aCBhbnNpIGMtODkgYW5kPGJy PkBAIC0xNzI2LDExICsyMDQyLDExIEBAIGV2X3JlYWxsb2NfZW11bCAodm9pZCAqcHRyLCBsb25n IHNpemUpIEVWX1RIUk9XPGJyPiZuYnNwOyAmbmJzcDtyZXR1cm4gMDs8YnI+Jm5ic3A7fTxicj4m bmJzcDs8YnI+LXN0YXRpYyB2b2lkICooKmFsbG9jKSh2b2lkICpwdHIsIGxvbmcgc2l6ZSkgRVZf VEhST1cgPSBldl9yZWFsbG9jX2VtdWw7PGJyPitzdGF0aWMgdm9pZCAqKCphbGxvYykodm9pZCAq cHRyLCBsb25nIHNpemUpIEVWX05PRVhDRVBUID0gZXZfcmVhbGxvY19lbXVsOzxicj4mbmJzcDs8 YnI+Jm5ic3A7ZWNiX2NvbGQ8YnI+Jm5ic3A7dm9pZDxicj4tZXZfc2V0X2FsbG9jYXRvciAodm9p ZCAqKCpjYikodm9pZCAqcHRyLCBsb25nIHNpemUpIEVWX1RIUk9XKSBFVl9USFJPVzxicj4rZXZf c2V0X2FsbG9jYXRvciAodm9pZCAqKCpjYikodm9pZCAqcHRyLCBsb25nIHNpemUpIEVWX05PRVhD RVBUKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDthbGxvYyA9IGNiOzxi cj4mbmJzcDt9PGJyPkBAIC0xNzY3LDggKzIwODMsOCBAQCB0eXBlZGVmIHN0cnVjdDxicj4mbmJz cDsgJm5ic3A7V0wgaGVhZDs8YnI+Jm5ic3A7ICZuYnNwO3Vuc2lnbmVkIGNoYXIgZXZlbnRzOyAv KiB0aGUgZXZlbnRzIHdhdGNoZWQgZm9yICovPGJyPiZuYnNwOyAmbmJzcDt1bnNpZ25lZCBjaGFy IHJlaWZ5OyAmbmJzcDsvKiBmbGFnIHNldCB3aGVuIHRoaXMgQU5GRCBuZWVkcyByZWlmaWNhdGlv biAoRVZfQU5GRF9SRUlGWSwgRVZfX0lPRkRTRVQpICovPGJyPi0gJm5ic3A7dW5zaWduZWQgY2hh ciBlbWFzazsgJm5ic3A7LyogdGhlIGVwb2xsIGJhY2tlbmQgc3RvcmVzIHRoZSBhY3R1YWwga2Vy bmVsIG1hc2sgaW4gaGVyZSAqLzxicj4tICZuYnNwO3Vuc2lnbmVkIGNoYXIgdW51c2VkOzxicj4r ICZuYnNwO3Vuc2lnbmVkIGNoYXIgZW1hc2s7ICZuYnNwOy8qIHNvbWUgYmFja2VuZHMgc3RvcmUg dGhlIGFjdHVhbCBrZXJuZWwgbWFzayBpbiBoZXJlICovPGJyPisgJm5ic3A7dW5zaWduZWQgY2hh ciBlZmxhZ3M7IC8qIGZsYWdzIGZpZWxkIGZvciB1c2UgYnkgYmFja2VuZHMgKi88YnI+Jm5ic3A7 I2lmIEVWX1VTRV9FUE9MTDxicj4mbmJzcDsgJm5ic3A7dW5zaWduZWQgaW50IGVnZW47ICZuYnNw OyAmbmJzcDsvKiBnZW5lcmF0aW9uIGNvdW50ZXIgdG8gY291bnRlciBlcG9sbCBidWdzICovPGJy PiZuYnNwOyNlbmRpZjxicj5AQCAtMTgzMiwxMiArMjE0OCw3IEBAIHR5cGVkZWYgc3RydWN0PGJy PiZuYnNwOzxicj4mbmJzcDsjZWxzZTxicj4mbmJzcDs8YnI+LSNpZmRlZiBFVl9BUElfU1RBVElD PGJyPi0gJm5ic3A7c3RhdGljIGV2X3RzdGFtcCBldl9ydF9ub3cgPSAwOzxicj4tI2Vsc2U8YnI+ LSAmbmJzcDtldl90c3RhbXAgZXZfcnRfbm93ID0gMDs8YnI+LSNlbmRpZjxicj4tPGJyPisgJm5i c3A7RVZfQVBJX0RFQ0wgZXZfdHN0YW1wIGV2X3J0X25vdyA9IEVWX1RTX0NPTlNUICgwLik7IC8q IG5lZWRzIHRvIGJlIGluaXRpYWxpc2VkIHRvIG1ha2UgaXQgYSBkZWZpbml0aW9uIGRlc3BpdGUg ZXh0ZXJuICovPGJyPiZuYnNwOyAmbmJzcDsjZGVmaW5lIFZBUihuYW1lLGRlY2wpIHN0YXRpYyBk ZWNsOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyNpbmNsdWRlICJldl92YXJzLmgiPGJyPiZuYnNw OyAmbmJzcDsjdW5kZWYgVkFSPGJyPkBAIC0xODQ3LDggKzIxNTgsOCBAQCB0eXBlZGVmIHN0cnVj dDxicj4mbmJzcDsjZW5kaWY8YnI+Jm5ic3A7PGJyPiZuYnNwOyNpZiBFVl9GRUFUVVJFX0FQSTxi cj4tIyBkZWZpbmUgRVZfUkVMRUFTRV9DQiBpZiAoZXhwZWN0X2ZhbHNlIChyZWxlYXNlX2NiKSkg cmVsZWFzZV9jYiAoRVZfQSk8YnI+LSMgZGVmaW5lIEVWX0FDUVVJUkVfQ0IgaWYgKGV4cGVjdF9m YWxzZSAoYWNxdWlyZV9jYikpIGFjcXVpcmVfY2IgKEVWX0EpPGJyPisjIGRlZmluZSBFVl9SRUxF QVNFX0NCIGlmIChlY2JfZXhwZWN0X2ZhbHNlIChyZWxlYXNlX2NiKSkgcmVsZWFzZV9jYiAoRVZf QSk8YnI+KyMgZGVmaW5lIEVWX0FDUVVJUkVfQ0IgaWYgKGVjYl9leHBlY3RfZmFsc2UgKGFjcXVp cmVfY2IpKSBhY3F1aXJlX2NiIChFVl9BKTxicj4mbmJzcDsjIGRlZmluZSBFVl9JTlZPS0VfUEVO RElORyBpbnZva2VfY2IgKEVWX0EpPGJyPiZuYnNwOyNlbHNlPGJyPiZuYnNwOyMgZGVmaW5lIEVW X1JFTEVBU0VfQ0IgKHZvaWQpMDxicj5AQCAtMTg2MiwyMCArMjE3MywyMiBAQCB0eXBlZGVmIHN0 cnVjdDxicj4mbmJzcDs8YnI+Jm5ic3A7I2lmbmRlZiBFVl9IQVZFX0VWX1RJTUU8YnI+Jm5ic3A7 ZXZfdHN0YW1wPGJyPi1ldl90aW1lICh2b2lkKSBFVl9USFJPVzxicj4rZXZfdGltZSAodm9pZCkg RVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsjaWYgRVZfVVNFX1JFQUxUSU1FPGJyPi0g Jm5ic3A7aWYgKGV4cGVjdF90cnVlIChoYXZlX3JlYWx0aW1lKSk8YnI+KyAmbmJzcDtpZiAoZWNi X2V4cGVjdF90cnVlIChoYXZlX3JlYWx0aW1lKSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0cnVjdCB0aW1lc3BlYyB0czs8YnI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7Y2xvY2tfZ2V0dGltZSAoQ0xPQ0tfUkVBTFRJTUUsICZhbXA7 dHMpOzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuIHRzLnR2X3NlYyArIHRzLnR2X25z ZWMgKiAxZS05Ozxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuIEVWX1RTX0dFVCAodHMp Ozxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4t ICZuYnNwO3N0cnVjdCB0aW1ldmFsIHR2Ozxicj4tICZuYnNwO2dldHRpbWVvZmRheSAoJmFtcDt0 diwgMCk7PGJyPi0gJm5ic3A7cmV0dXJuIHR2LnR2X3NlYyArIHR2LnR2X3VzZWMgKiAxZS02Ozxi cj4rICZuYnNwO3s8YnI+KyAmbmJzcDsgJm5ic3A7c3RydWN0IHRpbWV2YWwgdHY7PGJyPisgJm5i c3A7ICZuYnNwO2dldHRpbWVvZmRheSAoJmFtcDt0diwgMCk7PGJyPisgJm5ic3A7ICZuYnNwO3Jl dHVybiBFVl9UVl9HRVQgKHR2KTs8YnI+KyAmbmJzcDt9PGJyPiZuYnNwO308YnI+Jm5ic3A7I2Vu ZGlmPGJyPiZuYnNwOzxicj5AQCAtMTg4MywxMSArMjE5NiwxMSBAQCBpbmxpbmVfc2l6ZSBldl90 c3RhbXA8YnI+Jm5ic3A7Z2V0X2Nsb2NrICh2b2lkKTxicj4mbmJzcDt7PGJyPiZuYnNwOyNpZiBF Vl9VU0VfTU9OT1RPTklDPGJyPi0gJm5ic3A7aWYgKGV4cGVjdF90cnVlIChoYXZlX21vbm90b25p YykpPGJyPisgJm5ic3A7aWYgKGVjYl9leHBlY3RfdHJ1ZSAoaGF2ZV9tb25vdG9uaWMpKTxicj4m bmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7c3RydWN0 IHRpbWVzcGVjIHRzOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtjbG9ja19nZXR0aW1l IChDTE9DS19NT05PVE9OSUMsICZhbXA7dHMpOzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0 dXJuIHRzLnR2X3NlYyArIHRzLnR2X25zZWMgKiAxZS05Ozxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7cmV0dXJuIEVWX1RTX0dFVCAodHMpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5i c3A7I2VuZGlmPGJyPiZuYnNwOzxicj5AQCAtMTg5NiwyOCArMjIwOSwyOCBAQCBnZXRfY2xvY2sg KHZvaWQpPGJyPiZuYnNwOzxicj4mbmJzcDsjaWYgRVZfTVVMVElQTElDSVRZPGJyPiZuYnNwO2V2 X3RzdGFtcDxicj4tZXZfbm93IChFVl9QKSBFVl9USFJPVzxicj4rZXZfbm93IChFVl9QKSBFVl9O T0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtyZXR1cm4gZXZfcnRfbm93Ozxicj4m bmJzcDt9PGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+Jm5ic3A7ZXZfdHN0YW1wPGJyPi1l dl9tb25vdG9uaWNfbm93IChFVl9QKSBFVl9USFJPVzxicj4rZXZfbW9ub3RvbmljX25vdyAoRVZf UCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7cmV0dXJuIG1uX25vdzs8 YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7ZXZfdHN0YW1wPGJyPi1ldl9tb25vdG9uaWNf dGltZSAodm9pZCkgRVZfVEhST1c8YnI+K2V2X21vbm90b25pY190aW1lICh2b2lkKSBFVl9OT0VY Q0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtyZXR1cm4gZ2V0X2Nsb2NrKCk7PGJyPiZu YnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+LWV2X3NsZWVwIChldl90c3RhbXAgZGVs YXkpIEVWX1RIUk9XPGJyPitldl9zbGVlcCAoZXZfdHN0YW1wIGRlbGF5KSBFVl9OT0VYQ0VQVDxi cj4mbmJzcDt7PGJyPi0gJm5ic3A7aWYgKGRlbGF5ICZndDsgMC4pPGJyPisgJm5ic3A7aWYgKGRl bGF5ICZndDsgRVZfVFNfQ09OU1QgKDAuKSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZu YnNwOyNpZiBFVl9VU0VfTkFOT1NMRUVQPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0 cnVjdCB0aW1lc3BlYyB0czs8YnI+QEAgLTE5MjUsNyArMjIzOCw5IEBAIGV2X3NsZWVwIChldl90 c3RhbXAgZGVsYXkpIEVWX1RIUk9XPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0VWX1RT X1NFVCAodHMsIGRlbGF5KTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7bmFub3NsZWVw ICgmYW1wO3RzLCAwKTs8YnI+Jm5ic3A7I2VsaWYgZGVmaW5lZCBfV0lOMzI8YnI+LSAmbmJzcDsg Jm5ic3A7ICZuYnNwO1NsZWVwICgodW5zaWduZWQgbG9uZykoZGVsYXkgKiAxZTMpKTs8YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwOy8qIG1heWJlIHRoaXMgc2hvdWxkIHJvdW5kIHVwLCBhcyBtcyBp cyB2ZXJ5IGxvdyByZXNvbHV0aW9uICovPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBjb21w YXJlZCB0byBzZWxlY3QgKMK1cykgb3IgbmFub3NsZWVwIChucykgKi88YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwO1NsZWVwICgodW5zaWduZWQgbG9uZykoRVZfVFNfVE9fTVNFQyAoZGVsYXkpKSk7 PGJyPiZuYnNwOyNlbHNlPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3N0cnVjdCB0aW1l dmFsIHR2Ozxicj4mbmJzcDs8YnI+QEAgLTE5NjUsNyArMjI4MCw3IEBAIGFycmF5X25leHRzaXpl IChpbnQgZWxlbSwgaW50IGN1ciwgaW50IGNudCk8YnI+Jm5ic3A7ICZuYnNwO3JldHVybiBuY3Vy Ozxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4tbm9pbmxpbmUgZWNiX2NvbGQ8YnI+K2VjYl9ub2lu bGluZSBlY2JfY29sZDxicj4mbmJzcDtzdGF0aWMgdm9pZCAqPGJyPiZuYnNwO2FycmF5X3JlYWxs b2MgKGludCBlbGVtLCB2b2lkICpiYXNlLCBpbnQgKmN1ciwgaW50IGNudCk8YnI+Jm5ic3A7ezxi cj5AQCAtMTk3MywxNiArMjI4OCwxOCBAQCBhcnJheV9yZWFsbG9jIChpbnQgZWxlbSwgdm9pZCAq YmFzZSwgaW50ICpjdXIsIGludCBjbnQpPGJyPiZuYnNwOyAmbmJzcDtyZXR1cm4gZXZfcmVhbGxv YyAoYmFzZSwgZWxlbSAqICpjdXIpOzxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4tI2RlZmluZSBh cnJheV9pbml0X3plcm8oYmFzZSxjb3VudCkgJm5ic3A7ICZuYnNwO1w8YnI+LSAmbmJzcDttZW1z ZXQgKCh2b2lkICopKGJhc2UpLCAwLCBzaXplb2YgKCooYmFzZSkpICogKGNvdW50KSk8YnI+KyNk ZWZpbmUgYXJyYXlfbmVlZHNpemVfbm9pbml0KGJhc2Usb2Zmc2V0LGNvdW50KTxicj4rPGJyPisj ZGVmaW5lIGFycmF5X25lZWRzaXplX3plcm9maWxsKGJhc2Usb2Zmc2V0LGNvdW50KSAmbmJzcDsg Jm5ic3A7XDxicj4rICZuYnNwO21lbXNldCAoKHZvaWQgKikoYmFzZSArIG9mZnNldCksIDAsIHNp emVvZiAoKihiYXNlKSkgKiAoY291bnQpKTxicj4mbmJzcDs8YnI+Jm5ic3A7I2RlZmluZSBhcnJh eV9uZWVkc2l6ZSh0eXBlLGJhc2UsY3VyLGNudCxpbml0KSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO1w8YnI+LSAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNlICgoY250KSAm Z3Q7IChjdXIpKSkgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO1w8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoKGNudCkgJmd0OyAo Y3VyKSkpICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtcPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7eyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtcPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO2VjYl91bnVzZWQgaW50IG9jdXJfID0gKGN1cik7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtcPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyhiYXNlKSA9ICh0eXBlICopYXJyYXlfcmVhbGxvYyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7XDxicj4mbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7IChzaXplb2YgKHR5cGUpLCAoYmFzZSksICZhbXA7KGN1ciksIChj bnQpKTsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7XDxicj4tICZuYnNwOyAmbmJzcDsgJm5i c3A7aW5pdCAoKGJhc2UpICsgKG9jdXJfKSwgKGN1cikgLSBvY3VyXyk7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7XDxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7aW5p dCAoKGJhc2UpLCBvY3VyXywgKChjdXIpIC0gb2N1cl8pKTsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtcPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8 YnI+Jm5ic3A7I2lmIDA8YnI+QEAgLTIwMDEsMjUgKzIzMTgsMjUgQEAgYXJyYXlfcmVhbGxvYyAo aW50IGVsZW0sIHZvaWQgKmJhc2UsIGludCAqY3VyLCBpbnQgY250KTxicj4mbmJzcDsvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovPGJyPiZuYnNwOzxicj4mbmJzcDsvKiBkdW1teSBjYWxsYmFjayBmb3Ig cGVuZGluZyBldmVudHMgKi88YnI+LW5vaW5saW5lPGJyPitlY2Jfbm9pbmxpbmU8YnI+Jm5ic3A7 c3RhdGljIHZvaWQ8YnI+Jm5ic3A7cGVuZGluZ2NiIChFVl9QXyBldl9wcmVwYXJlICp3LCBpbnQg cmV2ZW50cyk8YnI+Jm5ic3A7ezxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4tbm9pbmxpbmU8YnI+ K2VjYl9ub2lubGluZTxicj4mbmJzcDt2b2lkPGJyPi1ldl9mZWVkX2V2ZW50IChFVl9QXyB2b2lk ICp3LCBpbnQgcmV2ZW50cykgRVZfVEhST1c8YnI+K2V2X2ZlZWRfZXZlbnQgKEVWX1BfIHZvaWQg KncsIGludCByZXZlbnRzKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtX IHdfID0gKFcpdzs8YnI+Jm5ic3A7ICZuYnNwO2ludCBwcmkgPSBBQlNQUkkgKHdfKTs8YnI+Jm5i c3A7PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAod18tJmd0O3BlbmRpbmcpKTxicj4rICZu YnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlICh3Xy0mZ3Q7cGVuZGluZykpPGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7cGVuZGluZ3MgW3ByaV1bd18tJmd0O3BlbmRpbmcgLSAxXS5ldmVudHMgfD0gcmV2 ZW50czs8YnI+Jm5ic3A7ICZuYnNwO2Vsc2U8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3dfLSZndDtwZW5kaW5nID0gKytwZW5kaW5nY250IFtw cmldOzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7YXJyYXlfbmVlZHNpemUgKEFOUEVORElORywg cGVuZGluZ3MgW3ByaV0sIHBlbmRpbmdtYXggW3ByaV0sIHdfLSZndDtwZW5kaW5nLCBFTVBUWTIp Ozxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7YXJyYXlfbmVlZHNpemUgKEFOUEVORElORywgcGVu ZGluZ3MgW3ByaV0sIHBlbmRpbmdtYXggW3ByaV0sIHdfLSZndDtwZW5kaW5nLCBhcnJheV9uZWVk c2l6ZV9ub2luaXQpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtwZW5kaW5ncyBbcHJp XVt3Xy0mZ3Q7cGVuZGluZyAtIDFdLncgJm5ic3A7ICZuYnNwOyAmbmJzcDs9IHdfOzxicj4mbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtwZW5kaW5ncyBbcHJpXVt3Xy0mZ3Q7cGVuZGluZyAtIDFd LmV2ZW50cyA9IHJldmVudHM7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj5AQCAtMjAzMCw3 ICsyMzQ3LDcgQEAgZXZfZmVlZF9ldmVudCAoRVZfUF8gdm9pZCAqdywgaW50IHJldmVudHMpIEVW X1RIUk9XPGJyPiZuYnNwO2lubGluZV9zcGVlZCB2b2lkPGJyPiZuYnNwO2ZlZWRfcmV2ZXJzZSAo RVZfUF8gVyB3KTxicj4mbmJzcDt7PGJyPi0gJm5ic3A7YXJyYXlfbmVlZHNpemUgKFcsIHJmZWVk cywgcmZlZWRtYXgsIHJmZWVkY250ICsgMSwgRU1QVFkyKTs8YnI+KyAmbmJzcDthcnJheV9uZWVk c2l6ZSAoVywgcmZlZWRzLCByZmVlZG1heCwgcmZlZWRjbnQgKyAxLCBhcnJheV9uZWVkc2l6ZV9u b2luaXQpOzxicj4mbmJzcDsgJm5ic3A7cmZlZWRzIFtyZmVlZGNudCsrXSA9IHc7PGJyPiZuYnNw O308YnI+Jm5ic3A7PGJyPkBAIC0yMDc1LDEyICsyMzkyLDEyIEBAIGZkX2V2ZW50IChFVl9QXyBp bnQgZmQsIGludCByZXZlbnRzKTxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtBTkZEICphbmZk ID0gYW5mZHMgKyBmZDs8YnI+Jm5ic3A7PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF90cnVlICghYW5m ZC0mZ3Q7cmVpZnkpKTxicj4rICZuYnNwO2lmIChlY2JfZXhwZWN0X3RydWUgKCFhbmZkLSZndDty ZWlmeSkpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ZmRfZXZlbnRfbm9jaGVjayAoRVZfQV8gZmQs IHJldmVudHMpOzxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1ldl9mZWVk X2ZkX2V2ZW50IChFVl9QXyBpbnQgZmQsIGludCByZXZlbnRzKSBFVl9USFJPVzxicj4rZXZfZmVl ZF9mZF9ldmVudCAoRVZfUF8gaW50IGZkLCBpbnQgcmV2ZW50cykgRVZfTk9FWENFUFQ8YnI+Jm5i c3A7ezxicj4mbmJzcDsgJm5ic3A7aWYgKGZkICZndDs9IDAgJmFtcDsmYW1wOyBmZCAmbHQ7IGFu ZmRtYXgpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ZmRfZXZlbnRfbm9jaGVjayAoRVZfQV8gZmQs IHJldmVudHMpOzxicj5AQCAtMjA5Myw4ICsyNDEwLDIwIEBAIGZkX3JlaWZ5IChFVl9QKTxicj4m bmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtpbnQgaTs8YnI+Jm5ic3A7PGJyPisgJm5ic3A7LyogbW9z dCBiYWNrZW5kcyBkbyBub3QgbW9kaWZ5IHRoZSBmZGNoYW5nZXMgbGlzdCBpbiBiYWNrZW5kX21v ZGZpeS48YnI+KyAmbmJzcDsgKiBleGNlcHQgaW9fdXJpbmcsIHdoaWNoIGhhcyBmaXhlZC1zaXpl IGJ1ZmZlcnMgd2hpY2ggbWlnaHQgZm9yY2UgdXM8YnI+KyAmbmJzcDsgKiB0byBoYW5kbGUgZXZl bnRzIGluIGJhY2tlbmRfbW9kaWZ5LCBjYXVzaW5nIGZkY2hhbmdlcyB0byBiZSBhbWVuZGVkLDxi cj4rICZuYnNwOyAqIHdoaWNoIGNvdWxkIHJlc3VsdCBpbiBhbiBlbmRsZXNzIGxvb3AuPGJyPisg Jm5ic3A7ICogdG8gYXZvaWQgdGhpcywgd2UgZG8gbm90IGR5bmFtaWNhbGx5IGhhbmRsZSBmZHMg dGhhdCB3ZXJlIGFkZGVkPGJyPisgJm5ic3A7ICogZHVyaW5nIGZkX3JlaWZ5LiB0aGF0IG1lYW5z IHRoYXQgZm9yIHRob3NlIGJhY2tlbmRzLCBmZGNoYW5nZWNudDxicj4rICZuYnNwOyAqIG1pZ2h0 IGJlIG5vbi16ZXJvIGR1cmluZyBwb2xsLCB3aGljaCBtdXN0IGNhdXNlIHRoZW0gdG8gbm90IGJs b2NrLjxicj4rICZuYnNwOyAqIHRvIG5vdCBwdXQgdG9vIG11Y2ggb2YgYSBidXJkZW4gb24gb3Ro ZXIgYmFja2VuZHMsIHRoaXMgZGV0YWlsPGJyPisgJm5ic3A7ICogbmVlZHMgdG8gYmUgaGFuZGxl ZCBpbiB0aGUgYmFja2VuZC48YnI+KyAmbmJzcDsgKi88YnI+KyAmbmJzcDtpbnQgY2hhbmdlY250 ID0gZmRjaGFuZ2VjbnQ7PGJyPis8YnI+Jm5ic3A7I2lmIEVWX1NFTEVDVF9JU19XSU5TT0NLRVQg fHwgRVZfVVNFX0lPQ1A8YnI+LSAmbmJzcDtmb3IgKGkgPSAwOyBpICZsdDsgZmRjaGFuZ2VjbnQ7 ICsraSk8YnI+KyAmbmJzcDtmb3IgKGkgPSAwOyBpICZsdDsgY2hhbmdlY250OyArK2kpPGJyPiZu YnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpbnQgZmQg PSBmZGNoYW5nZXMgW2ldOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtBTkZEICphbmZk ID0gYW5mZHMgKyBmZDs8YnI+QEAgLTIxMTgsNyArMjQ0Nyw3IEBAIGZkX3JlaWZ5IChFVl9QKTxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4tICZu YnNwO2ZvciAoaSA9IDA7IGkgJmx0OyBmZGNoYW5nZWNudDsgKytpKTxicj4rICZuYnNwO2ZvciAo aSA9IDA7IGkgJmx0OyBjaGFuZ2VjbnQ7ICsraSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2ludCBmZCA9IGZkY2hhbmdlcyBbaV07PGJyPiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0FORkQgKmFuZmQgPSBhbmZkcyArIGZkOzxicj5AQCAt MjEyNyw5ICsyNDU2LDkgQEAgZmRfcmVpZnkgKEVWX1ApPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO3Vuc2lnbmVkIGNoYXIgb19ldmVudHMgPSBhbmZkLSZndDtldmVudHM7PGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Vuc2lnbmVkIGNoYXIgb19yZWlmeSAmbmJzcDs9IGFuZmQt Jmd0O3JlaWZ5Ozxicj4mbmJzcDs8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwO2FuZmQtJmd0O3Jl aWZ5ICZuYnNwOz0gMDs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2FuZmQtJmd0O3JlaWZ5ID0g MDs8YnI+Jm5ic3A7PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsvKmlmIChleHBlY3RfdHJ1ZSAo b19yZWlmeSAmYW1wOyBFVl9BTkZEX1JFSUZZKSkgcHJvYmFibHkgYSBkZW9wdGltaXNhdGlvbiAq Lzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7LyppZiAoZWNiX2V4cGVjdF90cnVlIChvX3JlaWZ5 ICZhbXA7IEVWX0FORkRfUkVJRlkpKSBwcm9iYWJseSBhIGRlb3B0aW1pc2F0aW9uICovPGJyPiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7YW5mZC0mZ3Q7ZXZlbnRzID0gMDs8YnI+Jm5ic3A7PGJyPkBA IC0yMTQ0LDcgKzI0NzMsMTQgQEAgZmRfcmVpZnkgKEVWX1ApPGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDtiYWNrZW5kX21vZGlmeSAoRVZfQV8gZmQsIG9fZXZlbnRzLCBhbmZk LSZndDtldmVudHMpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7PGJyPi0gJm5i c3A7ZmRjaGFuZ2VjbnQgPSAwOzxicj4rICZuYnNwOy8qIG5vcm1hbGx5LCBmZGNoYW5nZWNudCBo YXNuJ3QgY2hhbmdlZC4gaWYgaXQgaGFzLCB0aGVuIG5ldyBmZHMgaGF2ZSBiZWVuIGFkZGVkLjxi cj4rICZuYnNwOyAqIHRoaXMgaXMgYSByYXJlIGNhc2UgKHNlZSBiZWdpbm5pbmcgY29tbWVudCBp biB0aGlzIGZ1bmN0aW9uKSwgc28gd2UgY29weSB0aGVtIHRvIHRoZTxicj4rICZuYnNwOyAqIGZy b250IGFuZCBob3BlIHRoZSBiYWNrZW5kIGhhbmRsZXMgdGhpcyBjYXNlLjxicj4rICZuYnNwOyAq Lzxicj4rICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlIChmZGNoYW5nZWNudCAhPSBjaGFuZ2Vj bnQpKTxicj4rICZuYnNwOyAmbmJzcDttZW1tb3ZlIChmZGNoYW5nZXMsIGZkY2hhbmdlcyArIGNo YW5nZWNudCwgKGZkY2hhbmdlY250IC0gY2hhbmdlY250KSAqIHNpemVvZiAoKmZkY2hhbmdlcykp Ozxicj4rPGJyPisgJm5ic3A7ZmRjaGFuZ2VjbnQgLT0gY2hhbmdlY250Ozxicj4mbmJzcDt9PGJy PiZuYnNwOzxicj4mbmJzcDsvKiBzb21ldGhpbmcgYWJvdXQgdGhlIGdpdmVuIGZkIGNoYW5nZWQg Ki88YnI+QEAgLTIxNTMsMTIgKzI0ODksMTIgQEAgdm9pZDxicj4mbmJzcDtmZF9jaGFuZ2UgKEVW X1BfIGludCBmZCwgaW50IGZsYWdzKTxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDt1bnNpZ25l ZCBjaGFyIHJlaWZ5ID0gYW5mZHMgW2ZkXS5yZWlmeTs8YnI+LSAmbmJzcDthbmZkcyBbZmRdLnJl aWZ5IHw9IGZsYWdzOzxicj4rICZuYnNwO2FuZmRzIFtmZF0ucmVpZnkgPSByZWlmeSB8IGZsYWdz Ozxicj4mbmJzcDs8YnI+LSAmbmJzcDtpZiAoZXhwZWN0X3RydWUgKCFyZWlmeSkpPGJyPisgJm5i c3A7aWYgKGVjYl9leHBlY3RfdHJ1ZSAoIXJlaWZ5KSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7 PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOysrZmRjaGFuZ2VjbnQ7PGJyPi0gJm5ic3A7 ICZuYnNwOyAmbmJzcDthcnJheV9uZWVkc2l6ZSAoaW50LCBmZGNoYW5nZXMsIGZkY2hhbmdlbWF4 LCBmZGNoYW5nZWNudCwgRU1QVFkyKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2FycmF5X25l ZWRzaXplIChpbnQsIGZkY2hhbmdlcywgZmRjaGFuZ2VtYXgsIGZkY2hhbmdlY250LCBhcnJheV9u ZWVkc2l6ZV9ub2luaXQpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtmZGNoYW5nZXMg W2ZkY2hhbmdlY250IC0gMV0gPSBmZDs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNw O308YnI+QEAgLTIxODgsNyArMjUyNCw3IEBAIGZkX3ZhbGlkIChpbnQgZmQpPGJyPiZuYnNwO308 YnI+Jm5ic3A7PGJyPiZuYnNwOy8qIGNhbGxlZCBvbiBFQkFERiB0byB2ZXJpZnkgZmRzICovPGJy Pi1ub2lubGluZSBlY2JfY29sZDxicj4rZWNiX25vaW5saW5lIGVjYl9jb2xkPGJyPiZuYnNwO3N0 YXRpYyB2b2lkPGJyPiZuYnNwO2ZkX2ViYWRmIChFVl9QKTxicj4mbmJzcDt7PGJyPkBAIC0yMjAx LDcgKzI1MzcsNyBAQCBmZF9lYmFkZiAoRVZfUCk8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5i c3A7LyogY2FsbGVkIG9uIEVOT01FTSBpbiBzZWxlY3QvcG9sbCB0byBraWxsIHNvbWUgZmRzIGFu ZCByZXRyeSAqLzxicj4tbm9pbmxpbmUgZWNiX2NvbGQ8YnI+K2VjYl9ub2lubGluZSBlY2JfY29s ZDxicj4mbmJzcDtzdGF0aWMgdm9pZDxicj4mbmJzcDtmZF9lbm9tZW0gKEVWX1ApPGJyPiZuYnNw O3s8YnI+QEAgLTIyMTYsNyArMjU1Miw3IEBAIGZkX2Vub21lbSAoRVZfUCk8YnI+Jm5ic3A7fTxi cj4mbmJzcDs8YnI+Jm5ic3A7LyogdXN1YWxseSBjYWxsZWQgYWZ0ZXIgZm9yayBpZiBiYWNrZW5k IG5lZWRzIHRvIHJlLWFybSBhbGwgZmRzIGZyb20gc2NyYXRjaCAqLzxicj4tbm9pbmxpbmU8YnI+ K2VjYl9ub2lubGluZTxicj4mbmJzcDtzdGF0aWMgdm9pZDxicj4mbmJzcDtmZF9yZWFybV9hbGwg KEVWX1ApPGJyPiZuYnNwO3s8YnI+QEAgLTIyODAsMTkgKzI2MTYsMTkgQEAgZG93bmhlYXAgKEFO SEUgKmhlYXAsIGludCBOLCBpbnQgayk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7QU5I RSAqcG9zID0gaGVhcCArIERIRUFQICogKGsgLSBIRUFQMCkgKyBIRUFQMCArIDE7PGJyPiZuYnNw Ozxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBmaW5kIG1pbmltdW0gY2hpbGQgKi88 YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChleHBlY3RfdHJ1ZSAocG9zICsgREhFQVAgLSAx ICZsdDsgRSkpPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZWNiX2V4cGVjdF90cnVlIChw b3MgKyBESEVBUCAtIDEgJmx0OyBFKSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBmYXN0 IHBhdGggKi8gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg KG1pbnBvcyA9IHBvcyArIDApLCAobWluYXQgPSBBTkhFX2F0ICgqbWlucG9zKSk7PGJyPi0gJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmICggJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IEFOSEVfYXQgKHBvcyBbMV0pICZsdDsgbWluYXQp IChtaW5wb3MgPSBwb3MgKyAxKSwgKG1pbmF0ID0gQU5IRV9hdCAoKm1pbnBvcykpOzxicj4tICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBBTkhFX2F0IChwb3MgWzJdKSAmbHQ7IG1pbmF0 KSAobWlucG9zID0gcG9zICsgMiksIChtaW5hdCA9IEFOSEVfYXQgKCptaW5wb3MpKTs8YnI+LSAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKCAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgQU5IRV9hdCAocG9zIFszXSkgJmx0OyBtaW5h dCkgKG1pbnBvcyA9IHBvcyArIDMpLCAobWluYXQgPSBBTkhFX2F0ICgqbWlucG9zKSk7PGJyPisg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmICggJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IG1pbmF0ICZndDsgQU5IRV9hdCAocG9zIFsx XSkpIChtaW5wb3MgPSBwb3MgKyAxKSwgKG1pbmF0ID0gQU5IRV9hdCAoKm1pbnBvcykpOzxicj4r ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBtaW5hdCAmZ3Q7IEFOSEVfYXQgKHBvcyBb Ml0pKSAobWlucG9zID0gcG9zICsgMiksIChtaW5hdCA9IEFOSEVfYXQgKCptaW5wb3MpKTs8YnI+ KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKCAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgbWluYXQgJmd0OyBBTkhFX2F0IChwb3Mg WzNdKSkgKG1pbnBvcyA9IHBvcyArIDMpLCAobWluYXQgPSBBTkhFX2F0ICgqbWlucG9zKSk7PGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO2Vsc2UgaWYgKHBvcyAmbHQ7IEUpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 Lyogc2xvdyBwYXRoICovICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7IChtaW5wb3MgPSBwb3MgKyAwKSwgKG1pbmF0ID0gQU5IRV9hdCAoKm1pbnBvcykpOzxi cj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAocG9zICsgMSAmbHQ7IEUg JmFtcDsmYW1wOyBBTkhFX2F0IChwb3MgWzFdKSAmbHQ7IG1pbmF0KSAobWlucG9zID0gcG9zICsg MSksIChtaW5hdCA9IEFOSEVfYXQgKCptaW5wb3MpKTs8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7aWYgKHBvcyArIDIgJmx0OyBFICZhbXA7JmFtcDsgQU5IRV9hdCAocG9z IFsyXSkgJmx0OyBtaW5hdCkgKG1pbnBvcyA9IHBvcyArIDIpLCAobWluYXQgPSBBTkhFX2F0ICgq bWlucG9zKSk7PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChwb3Mg KyAzICZsdDsgRSAmYW1wOyZhbXA7IEFOSEVfYXQgKHBvcyBbM10pICZsdDsgbWluYXQpIChtaW5w b3MgPSBwb3MgKyAzKSwgKG1pbmF0ID0gQU5IRV9hdCAoKm1pbnBvcykpOzxicj4rICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAocG9zICsgMSAmbHQ7IEUgJmFtcDsmYW1wOyBt aW5hdCAmZ3Q7IEFOSEVfYXQgKHBvcyBbMV0pKSAobWlucG9zID0gcG9zICsgMSksIChtaW5hdCA9 IEFOSEVfYXQgKCptaW5wb3MpKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7aWYgKHBvcyArIDIgJmx0OyBFICZhbXA7JmFtcDsgbWluYXQgJmd0OyBBTkhFX2F0IChwb3Mg WzJdKSkgKG1pbnBvcyA9IHBvcyArIDIpLCAobWluYXQgPSBBTkhFX2F0ICgqbWlucG9zKSk7PGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChwb3MgKyAzICZsdDsgRSAm YW1wOyZhbXA7IG1pbmF0ICZndDsgQU5IRV9hdCAocG9zIFszXSkpIChtaW5wb3MgPSBwb3MgKyAz KSwgKG1pbmF0ID0gQU5IRV9hdCAoKm1pbnBvcykpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7fTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtlbHNlPGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDticmVhazs8YnI+QEAgLTIzMTAsNyArMjY0Niw3 IEBAIGRvd25oZWFwIChBTkhFICpoZWFwLCBpbnQgTiwgaW50IGspPGJyPiZuYnNwOyAmbmJzcDtl dl9hY3RpdmUgKEFOSEVfdyAoaGUpKSA9IGs7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPi0jZWxz ZSAvKiA0SEVBUCAqLzxicj4rI2Vsc2UgLyogbm90IDRIRUFQICovPGJyPiZuYnNwOzxicj4mbmJz cDsjZGVmaW5lIEhFQVAwIDE8YnI+Jm5ic3A7I2RlZmluZSBIUEFSRU5UKGspICgoaykgJmd0OyZn dDsgMSk8YnI+QEAgLTIzOTIsNyArMjcyOCw3IEBAIHJlaGVhcCAoQU5IRSAqaGVhcCwgaW50IE4p PGJyPiZuYnNwOzxicj4mbmJzcDsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPGJyPiZuYnNwOzxicj4t LyogYXNzb2NpYXRlIHNpZ25hbCB3YXRjaGVycyB0byBhIHNpZ25hbCBzaWduYWwgKi88YnI+Ky8q IGFzc29jaWF0ZSBzaWduYWwgd2F0Y2hlcnMgdG8gYSBzaWduYWwgKi88YnI+Jm5ic3A7dHlwZWRl ZiBzdHJ1Y3Q8YnI+Jm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7RVZfQVRPTUlDX1QgcGVuZGluZzs8 YnI+QEAgLTI0NjYsNyArMjgwMiw3IEBAIGV2cGlwZV93cml0ZSAoRVZfUF8gRVZfQVRPTUlDX1Qg KmZsYWcpPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO0VDQl9NRU1PUllfRkVOQ0U7IC8qIHB1 c2ggb3V0IHRoZSB3cml0ZSBiZWZvcmUgdGhpcyBmdW5jdGlvbiB3YXMgY2FsbGVkLCBhY3F1aXJl IGZsYWcgKi88YnI+Jm5ic3A7PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF90cnVlICgqZmxhZykpPGJy PisgJm5ic3A7aWYgKGVjYl9leHBlY3RfdHJ1ZSAoKmZsYWcpKTxicj4mbmJzcDsgJm5ic3A7ICZu YnNwO3JldHVybjs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsqZmxhZyA9IDE7PGJyPkBAIC0y NDk3LDcgKzI4MzMsNyBAQCBldnBpcGVfd3JpdGUgKEVWX1BfIEVWX0FUT01JQ19UICpmbGFnKTxi cj4mbmJzcDsjaWZkZWYgX1dJTjMyPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7V1NBQlVGIGJ1Zjs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtEV09SRCBzZW50Ozxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtidWYuYnVmID0gJmFtcDtidWY7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO2J1Zi5idWYgPSAoY2hhciAqKSZhbXA7YnVmOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO2J1Zi5sZW4gPSAxOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO1dTQVNlbmQgKEVWX0ZEX1RPX1dJTjMyX0hBTkRMRSAoZXZwaXBl IFsxXSksICZhbXA7YnVmLCAxLCAmYW1wO3NlbnQsIDAsIDAsIDApOzxicj4mbmJzcDsjZWxzZTxi cj5AQCAtMjU1Myw3ICsyODg5LDcgQEAgcGlwZWNiIChFVl9QXyBldl9pbyAqaW93LCBpbnQgcmV2 ZW50cyk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7RUNCX01FTU9SWV9GRU5DRTs8YnI+ Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2ZvciAoaSA9IEVWX05TSUcgLSAx OyBpLS07ICk8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNl IChzaWduYWxzIFtpXS5wZW5kaW5nKSk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtp ZiAoZWNiX2V4cGVjdF9mYWxzZSAoc2lnbmFscyBbaV0ucGVuZGluZykpPGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfZmVlZF9zaWduYWxfZXZlbnQgKEVWX0Ff IGkgKyAxKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOyNlbmRpZjxicj5AQCAt MjU3OSw3ICsyOTE1LDcgQEAgcGlwZWNiIChFVl9QXyBldl9pbyAqaW93LCBpbnQgcmV2ZW50cyk8 YnI+Jm5ic3A7LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxi cj4tZXZfZmVlZF9zaWduYWwgKGludCBzaWdudW0pIEVWX1RIUk9XPGJyPitldl9mZWVkX3NpZ25h bCAoaW50IHNpZ251bSkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsjaWYgRVZfTVVM VElQTElDSVRZPGJyPiZuYnNwOyAmbmJzcDtFVl9QOzxicj5AQCAtMjYwNCwxMyArMjk0MCwxMyBA QCBldl9zaWdoYW5kbGVyIChpbnQgc2lnbnVtKTxicj4mbmJzcDsgJm5ic3A7ZXZfZmVlZF9zaWdu YWwgKHNpZ251bSk7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPi1ub2lubGluZTxicj4rZWNiX25v aW5saW5lPGJyPiZuYnNwO3ZvaWQ8YnI+LWV2X2ZlZWRfc2lnbmFsX2V2ZW50IChFVl9QXyBpbnQg c2lnbnVtKSBFVl9USFJPVzxicj4rZXZfZmVlZF9zaWduYWxfZXZlbnQgKEVWX1BfIGludCBzaWdu dW0pIEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO1dMIHc7PGJyPiZuYnNw Ozxicj4tICZuYnNwO2lmIChleHBlY3RfZmFsc2UgKHNpZ251bSAmbHQ7PSAwIHx8IHNpZ251bSAm Z3Q7PSBFVl9OU0lHKSk8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoc2lnbnVtICZs dDs9IDAgfHwgc2lnbnVtICZndDs9IEVWX05TSUcpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3Jl dHVybjs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDstLXNpZ251bTs8YnI+QEAgLTI2MTksNyAr Mjk1NSw3IEBAIGV2X2ZlZWRfc2lnbmFsX2V2ZW50IChFVl9QXyBpbnQgc2lnbnVtKSBFVl9USFJP Vzxicj4mbmJzcDsgJm5ic3A7LyogaXQgaXMgcGVybWlzc2libGUgdG8gdHJ5IHRvIGZlZWQgYSBz aWduYWwgdG8gdGhlIHdyb25nIGxvb3AgKi88YnI+Jm5ic3A7ICZuYnNwOy8qIG9yLCBsaWtlbHkg bW9yZSB1c2VmdWwsIGZlZWRpbmcgYSBzaWduYWwgbm9ib2R5IGlzIHdhaXRpbmcgZm9yICovPGJy PiZuYnNwOzxicj4tICZuYnNwO2lmIChleHBlY3RfZmFsc2UgKHNpZ25hbHMgW3NpZ251bV0ubG9v cCAhPSBFVl9BKSk8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoc2lnbmFscyBbc2ln bnVtXS5sb29wICE9IEVWX0EpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybjs8YnI+Jm5i c3A7I2VuZGlmPGJyPiZuYnNwOzxicj5AQCAtMjcxMyw2ICszMDQ5LDU3IEBAIGNoaWxkY2IgKEVW X1BfIGV2X3NpZ25hbCAqc3csIGludCByZXZlbnRzKTxicj4mbmJzcDs8YnI+Jm5ic3A7LyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLzxicj4mbmJzcDs8YnI+KyNpZiBFVl9VU0VfVElNRVJGRDxicj4rPGJy PitzdGF0aWMgdm9pZCBwZXJpb2RpY3NfcmVzY2hlZHVsZSAoRVZfUCk7PGJyPis8YnI+K3N0YXRp YyB2b2lkPGJyPit0aW1lcmZkY2IgKEVWX1BfIGV2X2lvICppb3csIGludCByZXZlbnRzKTxicj4r ezxicj4rICZuYnNwO3N0cnVjdCBpdGltZXJzcGVjIGl0cyA9IHsgMCB9Ozxicj4rPGJyPisgJm5i c3A7aXRzLml0X3ZhbHVlLnR2X3NlYyA9IGV2X3J0X25vdyArIChpbnQpTUFYX0JMT0NLVElNRTI7 PGJyPisgJm5ic3A7dGltZXJmZF9zZXR0aW1lICh0aW1lcmZkLCBURkRfVElNRVJfQUJTVElNRSB8 IFRGRF9USU1FUl9DQU5DRUxfT05fU0VULCAmYW1wO2l0cywgMCk7PGJyPis8YnI+KyAmbmJzcDtl dl9ydF9ub3cgPSBldl90aW1lICgpOzxicj4rICZuYnNwOy8qIHBlcmlvZGljc19yZXNjaGVkdWxl IG9ubHkgbmVlZHMgZXZfcnRfbm93ICovPGJyPisgJm5ic3A7LyogYnV0IG1heWJlIGluIHRoZSBm dXR1cmUgd2Ugd2FudCB0aGUgZnVsbCB0cmVhdG1lbnQuICovPGJyPisgJm5ic3A7Lyo8YnI+KyAm bmJzcDtub3dfZmxvb3IgPSBFVl9UU19DT05TVCAoMC4pOzxicj4rICZuYnNwO3RpbWVfdXBkYXRl IChFVl9BXyBFVl9UU1RBTVBfSFVHRSk7PGJyPisgJm5ic3A7Ki88YnI+KyNpZiBFVl9QRVJJT0RJ Q19FTkFCTEU8YnI+KyAmbmJzcDtwZXJpb2RpY3NfcmVzY2hlZHVsZSAoRVZfQSk7PGJyPisjZW5k aWY8YnI+K308YnI+Kzxicj4rZWNiX25vaW5saW5lIGVjYl9jb2xkPGJyPitzdGF0aWMgdm9pZDxi cj4rZXZ0aW1lcmZkX2luaXQgKEVWX1ApPGJyPit7PGJyPisgJm5ic3A7aWYgKCFldl9pc19hY3Rp dmUgKCZhbXA7dGltZXJmZF93KSk8YnI+KyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJz cDsgJm5ic3A7dGltZXJmZCA9IHRpbWVyZmRfY3JlYXRlIChDTE9DS19SRUFMVElNRSwgVEZEX05P TkJMT0NLIHwgVEZEX0NMT0VYRUMpOzxicj4rPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAo dGltZXJmZCAmZ3Q7PSAwKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZmRfaW50ZXJuICh0aW1lcmZkKTsgLyog anVzdCB0byBiZSBzdXJlICovPGJyPis8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ZXZfaW9faW5pdCAoJmFtcDt0aW1lcmZkX3csIHRpbWVyZmRjYiwgdGltZXJmZCwgRVZf UkVBRCk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3NldF9wcmlv cml0eSAoJmFtcDt0aW1lcmZkX3csIEVWX01JTlBSSSk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO2V2X2lvX3N0YXJ0IChFVl9BXyAmYW1wO3RpbWVyZmRfdyk7PGJyPisg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3VucmVmIChFVl9BKTsgLyogd2F0 Y2hlciBzaG91bGQgbm90IGtlZXAgbG9vcCBhbGl2ZSAqLzxicj4rPGJyPisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIChyZS0pIGFybSB0aW1lciAqLzxicj4rICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt0aW1lcmZkY2IgKEVWX0FfIDAsIDApOzxicj4rICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+KyAmbmJzcDsgJm5ic3A7fTxicj4rfTxicj4r PGJyPisjZW5kaWY8YnI+Kzxicj4rLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzxicj4rPGJyPiZuYnNw OyNpZiBFVl9VU0VfSU9DUDxicj4mbmJzcDsjIGluY2x1ZGUgImV2X2lvY3AuYyI8YnI+Jm5ic3A7 I2VuZGlmPGJyPkBAIC0yNzI1LDYgKzMxMTIsMTIgQEAgY2hpbGRjYiAoRVZfUF8gZXZfc2lnbmFs ICpzdywgaW50IHJldmVudHMpPGJyPiZuYnNwOyNpZiBFVl9VU0VfRVBPTEw8YnI+Jm5ic3A7IyBp bmNsdWRlICJldl9lcG9sbC5jIjxicj4mbmJzcDsjZW5kaWY8YnI+KyNpZiBFVl9VU0VfTElOVVhB SU88YnI+KyMgaW5jbHVkZSAiZXZfbGludXhhaW8uYyI8YnI+KyNlbmRpZjxicj4rI2lmIEVWX1VT RV9JT1VSSU5HPGJyPisjIGluY2x1ZGUgImV2X2lvdXJpbmcuYyI8YnI+KyNlbmRpZjxicj4mbmJz cDsjaWYgRVZfVVNFX1BPTEw8YnI+Jm5ic3A7IyBpbmNsdWRlICJldl9wb2xsLmMiPGJyPiZuYnNw OyNlbmRpZjxicj5AQCAtMjczMywxMyArMzEyNiwxMyBAQCBjaGlsZGNiIChFVl9QXyBldl9zaWdu YWwgKnN3LCBpbnQgcmV2ZW50cyk8YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4mbmJzcDtl Y2JfY29sZCBpbnQ8YnI+LWV2X3ZlcnNpb25fbWFqb3IgKHZvaWQpIEVWX1RIUk9XPGJyPitldl92 ZXJzaW9uX21ham9yICh2b2lkKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJz cDtyZXR1cm4gRVZfVkVSU0lPTl9NQUpPUjs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7 ZWNiX2NvbGQgaW50PGJyPi1ldl92ZXJzaW9uX21pbm9yICh2b2lkKSBFVl9USFJPVzxicj4rZXZf dmVyc2lvbl9taW5vciAodm9pZCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgJm5i c3A7cmV0dXJuIEVWX1ZFUlNJT05fTUlOT1I7PGJyPiZuYnNwO308YnI+QEAgLTI3NTgsMjIgKzMx NTEsMjQgQEAgZW5hYmxlX3NlY3VyZSAodm9pZCk8YnI+Jm5ic3A7PGJyPiZuYnNwO2VjYl9jb2xk PGJyPiZuYnNwO3Vuc2lnbmVkIGludDxicj4tZXZfc3VwcG9ydGVkX2JhY2tlbmRzICh2b2lkKSBF Vl9USFJPVzxicj4rZXZfc3VwcG9ydGVkX2JhY2tlbmRzICh2b2lkKSBFVl9OT0VYQ0VQVDxicj4m bmJzcDt7PGJyPiZuYnNwOyAmbmJzcDt1bnNpZ25lZCBpbnQgZmxhZ3MgPSAwOzxicj4mbmJzcDs8 YnI+LSAmbmJzcDtpZiAoRVZfVVNFX1BPUlQgJm5ic3A7KSBmbGFncyB8PSBFVkJBQ0tFTkRfUE9S VDs8YnI+LSAmbmJzcDtpZiAoRVZfVVNFX0tRVUVVRSkgZmxhZ3MgfD0gRVZCQUNLRU5EX0tRVUVV RTs8YnI+LSAmbmJzcDtpZiAoRVZfVVNFX0VQT0xMICkgZmxhZ3MgfD0gRVZCQUNLRU5EX0VQT0xM Ozxicj4tICZuYnNwO2lmIChFVl9VU0VfUE9MTCAmbmJzcDspIGZsYWdzIHw9IEVWQkFDS0VORF9Q T0xMOzxicj4tICZuYnNwO2lmIChFVl9VU0VfU0VMRUNUKSBmbGFncyB8PSBFVkJBQ0tFTkRfU0VM RUNUOzxicj4tICZuYnNwOzxicj4rICZuYnNwO2lmIChFVl9VU0VfUE9SVCAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDspIGZsYWdzIHw9IEVWQkFDS0VORF9QT1JUOzxicj4rICZuYnNwO2lmIChFVl9VU0VfS1FV RVVFICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7KSBmbGFncyB8PSBFVkJBQ0tFTkRfS1FVRVVFOzxicj4rICZuYnNwO2lm IChFVl9VU0VfRVBPTEwgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgKSBmbGFncyB8PSBFVkJBQ0tFTkRfRVBPTEw7PGJy PisgJm5ic3A7aWYgKEVWX1VTRV9MSU5VWEFJTyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7KSBmbGFncyB8PSBFVkJBQ0tFTkRfTElO VVhBSU87PGJyPisgJm5ic3A7aWYgKEVWX1VTRV9JT1VSSU5HICZhbXA7JmFtcDsgZXZfbGludXhf dmVyc2lvbiAoKSAmZ3Q7PSAweDA1MDYwMSkgZmxhZ3MgfD0gRVZCQUNLRU5EX0lPVVJJTkc7IC8q IDUuNi4xKyAqLzxicj4rICZuYnNwO2lmIChFVl9VU0VfUE9MTCAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsp IGZsYWdzIHw9IEVWQkFDS0VORF9QT0xMOzxicj4rICZuYnNwO2lmIChFVl9VU0VfU0VMRUNUICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7KSBmbGFncyB8PSBFVkJBQ0tFTkRfU0VMRUNUOzxicj4rPGJyPiZuYnNwOyAmbmJz cDtyZXR1cm4gZmxhZ3M7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO2VjYl9jb2xkPGJy PiZuYnNwO3Vuc2lnbmVkIGludDxicj4tZXZfcmVjb21tZW5kZWRfYmFja2VuZHMgKHZvaWQpIEVW X1RIUk9XPGJyPitldl9yZWNvbW1lbmRlZF9iYWNrZW5kcyAodm9pZCkgRVZfTk9FWENFUFQ8YnI+ Jm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7dW5zaWduZWQgaW50IGZsYWdzID0gZXZfc3VwcG9ydGVk X2JhY2tlbmRzICgpOzxicj4mbmJzcDs8YnI+QEAgLTI3OTEsNzMgKzMxODYsODQgQEAgZXZfcmVj b21tZW5kZWRfYmFja2VuZHMgKHZvaWQpIEVWX1RIUk9XPGJyPiZuYnNwOyAmbmJzcDtmbGFncyAm YW1wOz0gfkVWQkFDS0VORF9QT0xMOyAmbmJzcDsgLyogcG9sbCByZXR1cm4gdmFsdWUgaXMgdW51 c2FibGUgKGh0dHA6Ly9mb3J1bXMuZnJlZWJzZC5vcmcvYXJjaGl2ZS9pbmRleC5waHAvdC0xMDI3 MC5odG1sKSAqLzxicj4mbmJzcDsjZW5kaWY8YnI+Jm5ic3A7PGJyPisgJm5ic3A7LyogVE9ETzog bGludXhhaW8gaXMgdmVyeSBleHBlcmltZW50YWwgKi88YnI+KyNpZiAhRVZfUkVDT01NRU5EX0xJ TlVYQUlPPGJyPisgJm5ic3A7ZmxhZ3MgJmFtcDs9IH5FVkJBQ0tFTkRfTElOVVhBSU87PGJyPisj ZW5kaWY8YnI+KyAmbmJzcDsvKiBUT0RPOiBsaW51eGFpbyBpcyBzdXBlciBleHBlcmltZW50YWwg Ki88YnI+KyNpZiAhRVZfUkVDT01NRU5EX0lPVVJJTkc8YnI+KyAmbmJzcDtmbGFncyAmYW1wOz0g fkVWQkFDS0VORF9JT1VSSU5HOzxicj4rI2VuZGlmPGJyPis8YnI+Jm5ic3A7ICZuYnNwO3JldHVy biBmbGFnczs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7ZWNiX2NvbGQ8YnI+Jm5ic3A7 dW5zaWduZWQgaW50PGJyPi1ldl9lbWJlZGRhYmxlX2JhY2tlbmRzICh2b2lkKSBFVl9USFJPVzxi cj4rZXZfZW1iZWRkYWJsZV9iYWNrZW5kcyAodm9pZCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxi cj4tICZuYnNwO2ludCBmbGFncyA9IEVWQkFDS0VORF9FUE9MTCB8IEVWQkFDS0VORF9LUVVFVUUg fCBFVkJBQ0tFTkRfUE9SVDs8YnI+KyAmbmJzcDtpbnQgZmxhZ3MgPSBFVkJBQ0tFTkRfRVBPTEwg fCBFVkJBQ0tFTkRfS1FVRVVFIHwgRVZCQUNLRU5EX1BPUlQgfCBFVkJBQ0tFTkRfSU9VUklORzs8 YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsvKiBlcG9sbCBlbWJlZGRhYmlsaXR5IGJyb2tlbiBv biBhbGwgbGludXggdmVyc2lvbnMgdXAgdG8gYXQgbGVhc3QgMi42LjIzICovPGJyPiZuYnNwOyAm bmJzcDtpZiAoZXZfbGludXhfdmVyc2lvbiAoKSAmbHQ7IDB4MDIwNjIwKSAvKiBkaXNhYmxlIGl0 IG9uIGxpbnV4ICZsdDsgMi42LjMyICovPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ZmxhZ3MgJmFt cDs9IH5FVkJBQ0tFTkRfRVBPTEw7PGJyPiZuYnNwOzxicj4rICZuYnNwOy8qIEVWQkFDS0VORF9M SU5VWEFJTyBpcyB0aGVvcmV0aWNhbGx5IGVtYmVkZGFibGUsIGJ1dCBzdWZmZXJzIGZyb20gYSBw ZXJmb3JtYW5jZSBvdmVyaGVhZCAqLzxicj4rPGJyPiZuYnNwOyAmbmJzcDtyZXR1cm4gZmxhZ3M7 PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO3Vuc2lnbmVkIGludDxicj4tZXZfYmFja2Vu ZCAoRVZfUCkgRVZfVEhST1c8YnI+K2V2X2JhY2tlbmQgKEVWX1ApIEVWX05PRVhDRVBUPGJyPiZu YnNwO3s8YnI+Jm5ic3A7ICZuYnNwO3JldHVybiBiYWNrZW5kOzxicj4mbmJzcDt9PGJyPiZuYnNw Ozxicj4mbmJzcDsjaWYgRVZfRkVBVFVSRV9BUEk8YnI+Jm5ic3A7dW5zaWduZWQgaW50PGJyPi1l dl9pdGVyYXRpb24gKEVWX1ApIEVWX1RIUk9XPGJyPitldl9pdGVyYXRpb24gKEVWX1ApIEVWX05P RVhDRVBUPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO3JldHVybiBsb29wX2NvdW50Ozxicj4m bmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt1bnNpZ25lZCBpbnQ8YnI+LWV2X2RlcHRoIChFVl9Q KSBFVl9USFJPVzxicj4rZXZfZGVwdGggKEVWX1ApIEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+ Jm5ic3A7ICZuYnNwO3JldHVybiBsb29wX2RlcHRoOzxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4m bmJzcDt2b2lkPGJyPi1ldl9zZXRfaW9fY29sbGVjdF9pbnRlcnZhbCAoRVZfUF8gZXZfdHN0YW1w IGludGVydmFsKSBFVl9USFJPVzxicj4rZXZfc2V0X2lvX2NvbGxlY3RfaW50ZXJ2YWwgKEVWX1Bf IGV2X3RzdGFtcCBpbnRlcnZhbCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgJm5i c3A7aW9fYmxvY2t0aW1lID0gaW50ZXJ2YWw7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNw O3ZvaWQ8YnI+LWV2X3NldF90aW1lb3V0X2NvbGxlY3RfaW50ZXJ2YWwgKEVWX1BfIGV2X3RzdGFt cCBpbnRlcnZhbCkgRVZfVEhST1c8YnI+K2V2X3NldF90aW1lb3V0X2NvbGxlY3RfaW50ZXJ2YWwg KEVWX1BfIGV2X3RzdGFtcCBpbnRlcnZhbCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJz cDsgJm5ic3A7dGltZW91dF9ibG9ja3RpbWUgPSBpbnRlcnZhbDs8YnI+Jm5ic3A7fTxicj4mbmJz cDs8YnI+Jm5ic3A7dm9pZDxicj4tZXZfc2V0X3VzZXJkYXRhIChFVl9QXyB2b2lkICpkYXRhKSBF Vl9USFJPVzxicj4rZXZfc2V0X3VzZXJkYXRhIChFVl9QXyB2b2lkICpkYXRhKSBFVl9OT0VYQ0VQ VDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDt1c2VyZGF0YSA9IGRhdGE7PGJyPiZuYnNwO308 YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQgKjxicj4tZXZfdXNlcmRhdGEgKEVWX1ApIEVWX1RIUk9X PGJyPitldl91c2VyZGF0YSAoRVZfUCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsg Jm5ic3A7cmV0dXJuIHVzZXJkYXRhOzxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lk PGJyPi1ldl9zZXRfaW52b2tlX3BlbmRpbmdfY2IgKEVWX1BfIGV2X2xvb3BfY2FsbGJhY2sgaW52 b2tlX3BlbmRpbmdfY2IpIEVWX1RIUk9XPGJyPitldl9zZXRfaW52b2tlX3BlbmRpbmdfY2IgKEVW X1BfIGV2X2xvb3BfY2FsbGJhY2sgaW52b2tlX3BlbmRpbmdfY2IpIEVWX05PRVhDRVBUPGJyPiZu YnNwO3s8YnI+Jm5ic3A7ICZuYnNwO2ludm9rZV9jYiA9IGludm9rZV9wZW5kaW5nX2NiOzxicj4m bmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1ldl9zZXRfbG9vcF9yZWxlYXNlX2Ni IChFVl9QXyB2b2lkICgqcmVsZWFzZSkoRVZfUCkgRVZfVEhST1csIHZvaWQgKCphY3F1aXJlKShF Vl9QKSBFVl9USFJPVykgRVZfVEhST1c8YnI+K2V2X3NldF9sb29wX3JlbGVhc2VfY2IgKEVWX1Bf IHZvaWQgKCpyZWxlYXNlKShFVl9QKSBFVl9OT0VYQ0VQVCwgdm9pZCAoKmFjcXVpcmUpKEVWX1Ap IEVWX05PRVhDRVBUKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtyZWxl YXNlX2NiID0gcmVsZWFzZTs8YnI+Jm5ic3A7ICZuYnNwO2FjcXVpcmVfY2IgPSBhY3F1aXJlOzxi cj5AQCAtMjg2NSw5ICszMjcxLDkgQEAgZXZfc2V0X2xvb3BfcmVsZWFzZV9jYiAoRVZfUF8gdm9p ZCAoKnJlbGVhc2UpKEVWX1ApIEVWX1RIUk9XLCB2b2lkICgqYWNxdWlyZSkoRVY8YnI+Jm5ic3A7 I2VuZGlmPGJyPiZuYnNwOzxicj4mbmJzcDsvKiBpbml0aWFsaXNlIGEgbG9vcCBzdHJ1Y3R1cmUs IG11c3QgYmUgemVyby1pbml0aWFsaXNlZCAqLzxicj4tbm9pbmxpbmUgZWNiX2NvbGQ8YnI+K2Vj Yl9ub2lubGluZSBlY2JfY29sZDxicj4mbmJzcDtzdGF0aWMgdm9pZDxicj4tbG9vcF9pbml0IChF Vl9QXyB1bnNpZ25lZCBpbnQgZmxhZ3MpIEVWX1RIUk9XPGJyPitsb29wX2luaXQgKEVWX1BfIHVu c2lnbmVkIGludCBmbGFncykgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7 aWYgKCFiYWNrZW5kKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+QEAgLTI5MzAsMzAgKzMz MzYsMzkgQEAgbG9vcF9pbml0IChFVl9QXyB1bnNpZ25lZCBpbnQgZmxhZ3MpIEVWX1RIUk9XPGJy PiZuYnNwOyNpZiBFVl9VU0VfU0lHTkFMRkQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 c2lnZmQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7PSBm bGFncyAmYW1wOyBFVkZMQUdfU0lHTkFMRkQgJm5ic3A7PyAtMiA6IC0xOzxicj4mbmJzcDsjZW5k aWY8YnI+KyNpZiBFVl9VU0VfVElNRVJGRDxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7dGltZXJm ZCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOz0gZmxhZ3MgJmFtcDsg RVZGTEFHX05PVElNRVJGRCA/IC0xIDogLTI7PGJyPisjZW5kaWY8YnI+Jm5ic3A7PGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmICghKGZsYWdzICZhbXA7IEVWQkFDS0VORF9NQVNLKSk8 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2ZsYWdzIHw9IGV2X3JlY29tbWVu ZGVkX2JhY2tlbmRzICgpOzxicj4mbmJzcDs8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChm bGFncyAmYW1wOyBFVkZMQUdfQUxMT0NGRCk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChm bGFncyAmYW1wOyBFVkZMQUdfTk9USU1FUkZEKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7aWYgKGV2cGlwZV9hbGxvYyhFVl9BKSAmbHQ7IDApPGJyPiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuOzxicj4mbmJzcDsjaWYgRVZfVVNFX0lP Q1A8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmICghYmFja2VuZCAmYW1wOyZhbXA7IChmbGFn cyAmYW1wOyBFVkJBQ0tFTkRfSU9DUCAmbmJzcDspKSBiYWNrZW5kID0gaW9jcF9pbml0ICZuYnNw OyAoRVZfQV8gZmxhZ3MpOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKCFiYWNrZW5kICZh bXA7JmFtcDsgKGZsYWdzICZhbXA7IEVWQkFDS0VORF9JT0NQICZuYnNwOyAmbmJzcDspKSBiYWNr ZW5kID0gaW9jcF9pbml0ICZuYnNwOyAmbmJzcDsgJm5ic3A7KEVWX0FfIGZsYWdzKTs8YnI+Jm5i c3A7I2VuZGlmPGJyPiZuYnNwOyNpZiBFVl9VU0VfUE9SVDxicj4tICZuYnNwOyAmbmJzcDsgJm5i c3A7aWYgKCFiYWNrZW5kICZhbXA7JmFtcDsgKGZsYWdzICZhbXA7IEVWQkFDS0VORF9QT1JUICZu YnNwOykpIGJhY2tlbmQgPSBwb3J0X2luaXQgJm5ic3A7IChFVl9BXyBmbGFncyk7PGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDtpZiAoIWJhY2tlbmQgJmFtcDsmYW1wOyAoZmxhZ3MgJmFtcDsgRVZC QUNLRU5EX1BPUlQgJm5ic3A7ICZuYnNwOykpIGJhY2tlbmQgPSBwb3J0X2luaXQgJm5ic3A7ICZu YnNwOyAmbmJzcDsoRVZfQV8gZmxhZ3MpOzxicj4mbmJzcDsjZW5kaWY8YnI+Jm5ic3A7I2lmIEVW X1VTRV9LUVVFVUU8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmICghYmFja2VuZCAmYW1wOyZh bXA7IChmbGFncyAmYW1wOyBFVkJBQ0tFTkRfS1FVRVVFKSkgYmFja2VuZCA9IGtxdWV1ZV9pbml0 IChFVl9BXyBmbGFncyk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoIWJhY2tlbmQgJmFt cDsmYW1wOyAoZmxhZ3MgJmFtcDsgRVZCQUNLRU5EX0tRVUVVRSAmbmJzcDspKSBiYWNrZW5kID0g a3F1ZXVlX2luaXQgJm5ic3A7ICZuYnNwOyhFVl9BXyBmbGFncyk7PGJyPisjZW5kaWY8YnI+KyNp ZiBFVl9VU0VfSU9VUklORzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKCFiYWNrZW5kICZh bXA7JmFtcDsgKGZsYWdzICZhbXA7IEVWQkFDS0VORF9JT1VSSU5HICkpIGJhY2tlbmQgPSBpb3Vy aW5nX2luaXQgJm5ic3A7IChFVl9BXyBmbGFncyk7PGJyPisjZW5kaWY8YnI+KyNpZiBFVl9VU0Vf TElOVVhBSU88YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmICghYmFja2VuZCAmYW1wOyZhbXA7 IChmbGFncyAmYW1wOyBFVkJBQ0tFTkRfTElOVVhBSU8pKSBiYWNrZW5kID0gbGludXhhaW9faW5p dCAmbmJzcDsoRVZfQV8gZmxhZ3MpOzxicj4mbmJzcDsjZW5kaWY8YnI+Jm5ic3A7I2lmIEVWX1VT RV9FUE9MTDxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKCFiYWNrZW5kICZhbXA7JmFtcDsg KGZsYWdzICZhbXA7IEVWQkFDS0VORF9FUE9MTCApKSBiYWNrZW5kID0gZXBvbGxfaW5pdCAmbmJz cDsoRVZfQV8gZmxhZ3MpOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKCFiYWNrZW5kICZh bXA7JmFtcDsgKGZsYWdzICZhbXA7IEVWQkFDS0VORF9FUE9MTCAmbmJzcDsgKSkgYmFja2VuZCA9 IGVwb2xsX2luaXQgJm5ic3A7ICZuYnNwOyAoRVZfQV8gZmxhZ3MpOzxicj4mbmJzcDsjZW5kaWY8 YnI+Jm5ic3A7I2lmIEVWX1VTRV9QT0xMPGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoIWJh Y2tlbmQgJmFtcDsmYW1wOyAoZmxhZ3MgJmFtcDsgRVZCQUNLRU5EX1BPTEwgJm5ic3A7KSkgYmFj a2VuZCA9IHBvbGxfaW5pdCAmbmJzcDsgKEVWX0FfIGZsYWdzKTs8YnI+KyAmbmJzcDsgJm5ic3A7 ICZuYnNwO2lmICghYmFja2VuZCAmYW1wOyZhbXA7IChmbGFncyAmYW1wOyBFVkJBQ0tFTkRfUE9M TCAmbmJzcDsgJm5ic3A7KSkgYmFja2VuZCA9IHBvbGxfaW5pdCAmbmJzcDsgJm5ic3A7ICZuYnNw OyhFVl9BXyBmbGFncyk7PGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDsjaWYgRVZfVVNFX1NFTEVD VDxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKCFiYWNrZW5kICZhbXA7JmFtcDsgKGZsYWdz ICZhbXA7IEVWQkFDS0VORF9TRUxFQ1QpKSBiYWNrZW5kID0gc2VsZWN0X2luaXQgKEVWX0FfIGZs YWdzKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmICghYmFja2VuZCAmYW1wOyZhbXA7IChm bGFncyAmYW1wOyBFVkJBQ0tFTkRfU0VMRUNUICZuYnNwOykpIGJhY2tlbmQgPSBzZWxlY3RfaW5p dCAmbmJzcDsgJm5ic3A7KEVWX0FfIGZsYWdzKTs8YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9wcmVwYXJlX2luaXQgKCZhbXA7cGVuZGlu Z193LCBwZW5kaW5nY2IpOzxicj5AQCAtMjk2MSw3ICszMzc2LDcgQEAgbG9vcF9pbml0IChFVl9Q XyB1bnNpZ25lZCBpbnQgZmxhZ3MpIEVWX1RIUk9XPGJyPiZuYnNwOyNpZiBFVl9TSUdOQUxfRU5B QkxFIHx8IEVWX0FTWU5DX0VOQUJMRTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9p bml0ICgmYW1wO3BpcGVfdywgcGlwZWNiKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ZXZfc2V0X3ByaW9yaXR5ICgmYW1wO3BpcGVfdywgRVZfTUFYUFJJKTs8YnI+LSAmbmJzcDsgJm5i c3A7ICZuYnNwO2lmIChmbGFncyAmYW1wOyBFVkZMQUdfQUxMT0NGRCk8YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwO2lmIChmbGFncyAmYW1wOyBFVkZMQUdfTk9USU1FUkZEKTxicj4mbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwO2V2X2lvX3NldCAoJmFtcDtwaXBlX3csIGV2cGlwZSBbMF0gJmx0OyAwID8g ZXZwaXBlIFsxXSA6IGV2cGlwZSBbMF0sIEVWX1JFQUQpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X2lvX3N0YXJ0IChFVl9BXyAmYW1wO3BpcGVfdyk7PGJy PkBAIC0yOTg2LDcgKzM0MDEsNyBAQCBldl9sb29wX2Rlc3Ryb3kgKEVWX1ApPGJyPiZuYnNwOzxi cj4mbmJzcDsjaWYgRVZfQ0xFQU5VUF9FTkFCTEU8YnI+Jm5ic3A7ICZuYnNwOy8qIHF1ZXVlIGNs ZWFudXAgd2F0Y2hlcnMgKGFuZCBleGVjdXRlIHRoZW0pICovPGJyPi0gJm5ic3A7aWYgKGV4cGVj dF9mYWxzZSAoY2xlYW51cGNudCkpPGJyPisgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKGNs ZWFudXBjbnQpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7cXVldWVfZXZlbnRzIChFVl9BXyAoVyAqKWNsZWFudXBzLCBjbGVhbnVwY250LCBF Vl9DTEVBTlVQKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7RVZfSU5WT0tFX1BFTkRJ Tkc7PGJyPkBAIC0zMDE1LDYgKzM0MzAsMTEgQEAgZXZfbG9vcF9kZXN0cm95IChFVl9QKTxicj4m bmJzcDsgJm5ic3A7ICZuYnNwO2Nsb3NlIChzaWdmZCk7PGJyPiZuYnNwOyNlbmRpZjxicj4mbmJz cDs8YnI+KyNpZiBFVl9VU0VfVElNRVJGRDxicj4rICZuYnNwO2lmIChldl9pc19hY3RpdmUgKCZh bXA7dGltZXJmZF93KSk8YnI+KyAmbmJzcDsgJm5ic3A7Y2xvc2UgKHRpbWVyZmQpOzxicj4rI2Vu ZGlmPGJyPis8YnI+Jm5ic3A7I2lmIEVWX1VTRV9JTk9USUZZPGJyPiZuYnNwOyAmbmJzcDtpZiAo ZnNfZmQgJmd0Oz0gMCk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtjbG9zZSAoZnNfZmQpOzxicj5A QCAtMzAyNCwyMiArMzQ0NCwyOCBAQCBldl9sb29wX2Rlc3Ryb3kgKEVWX1ApPGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7Y2xvc2UgKGJhY2tlbmRfZmQpOzxicj4mbmJzcDs8YnI+Jm5ic3A7I2lmIEVW X1VTRV9JT0NQPGJyPi0gJm5ic3A7aWYgKGJhY2tlbmQgPT0gRVZCQUNLRU5EX0lPQ1AgJm5ic3A7 KSBpb2NwX2Rlc3Ryb3kgJm5ic3A7IChFVl9BKTs8YnI+KyAmbmJzcDtpZiAoYmFja2VuZCA9PSBF VkJBQ0tFTkRfSU9DUCAmbmJzcDsgJm5ic3A7KSBpb2NwX2Rlc3Ryb3kgJm5ic3A7ICZuYnNwOyAo RVZfQSk7PGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDsjaWYgRVZfVVNFX1BPUlQ8YnI+LSAmbmJz cDtpZiAoYmFja2VuZCA9PSBFVkJBQ0tFTkRfUE9SVCAmbmJzcDspIHBvcnRfZGVzdHJveSAmbmJz cDsgKEVWX0EpOzxicj4rICZuYnNwO2lmIChiYWNrZW5kID09IEVWQkFDS0VORF9QT1JUICZuYnNw OyAmbmJzcDspIHBvcnRfZGVzdHJveSAmbmJzcDsgJm5ic3A7IChFVl9BKTs8YnI+Jm5ic3A7I2Vu ZGlmPGJyPiZuYnNwOyNpZiBFVl9VU0VfS1FVRVVFPGJyPi0gJm5ic3A7aWYgKGJhY2tlbmQgPT0g RVZCQUNLRU5EX0tRVUVVRSkga3F1ZXVlX2Rlc3Ryb3kgKEVWX0EpOzxicj4rICZuYnNwO2lmIChi YWNrZW5kID09IEVWQkFDS0VORF9LUVVFVUUgJm5ic3A7KSBrcXVldWVfZGVzdHJveSAmbmJzcDsg KEVWX0EpOzxicj4rI2VuZGlmPGJyPisjaWYgRVZfVVNFX0lPVVJJTkc8YnI+KyAmbmJzcDtpZiAo YmFja2VuZCA9PSBFVkJBQ0tFTkRfSU9VUklORyApIGlvdXJpbmdfZGVzdHJveSAmbmJzcDsoRVZf QSk7PGJyPisjZW5kaWY8YnI+KyNpZiBFVl9VU0VfTElOVVhBSU88YnI+KyAmbmJzcDtpZiAoYmFj a2VuZCA9PSBFVkJBQ0tFTkRfTElOVVhBSU8pIGxpbnV4YWlvX2Rlc3Ryb3kgKEVWX0EpOzxicj4m bmJzcDsjZW5kaWY8YnI+Jm5ic3A7I2lmIEVWX1VTRV9FUE9MTDxicj4tICZuYnNwO2lmIChiYWNr ZW5kID09IEVWQkFDS0VORF9FUE9MTCApIGVwb2xsX2Rlc3Ryb3kgJm5ic3A7KEVWX0EpOzxicj4r ICZuYnNwO2lmIChiYWNrZW5kID09IEVWQkFDS0VORF9FUE9MTCAmbmJzcDsgKSBlcG9sbF9kZXN0 cm95ICZuYnNwOyAmbmJzcDsoRVZfQSk7PGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDsjaWYgRVZf VVNFX1BPTEw8YnI+LSAmbmJzcDtpZiAoYmFja2VuZCA9PSBFVkJBQ0tFTkRfUE9MTCAmbmJzcDsp IHBvbGxfZGVzdHJveSAmbmJzcDsgKEVWX0EpOzxicj4rICZuYnNwO2lmIChiYWNrZW5kID09IEVW QkFDS0VORF9QT0xMICZuYnNwOyAmbmJzcDspIHBvbGxfZGVzdHJveSAmbmJzcDsgJm5ic3A7IChF Vl9BKTs8YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOyNpZiBFVl9VU0VfU0VMRUNUPGJyPi0gJm5i c3A7aWYgKGJhY2tlbmQgPT0gRVZCQUNLRU5EX1NFTEVDVCkgc2VsZWN0X2Rlc3Ryb3kgKEVWX0Ep Ozxicj4rICZuYnNwO2lmIChiYWNrZW5kID09IEVWQkFDS0VORF9TRUxFQ1QgJm5ic3A7KSBzZWxl Y3RfZGVzdHJveSAmbmJzcDsgKEVWX0EpOzxicj4mbmJzcDsjZW5kaWY8YnI+Jm5ic3A7PGJyPiZu YnNwOyAmbmJzcDtmb3IgKGkgPSBOVU1QUkk7IGktLTsgKTxicj5AQCAtMzA5MSwzNCArMzUxNyw2 MiBAQCBpbmxpbmVfc2l6ZSB2b2lkPGJyPiZuYnNwO2xvb3BfZm9yayAoRVZfUCk8YnI+Jm5ic3A7 ezxicj4mbmJzcDsjaWYgRVZfVVNFX1BPUlQ8YnI+LSAmbmJzcDtpZiAoYmFja2VuZCA9PSBFVkJB Q0tFTkRfUE9SVCAmbmJzcDspIHBvcnRfZm9yayAmbmJzcDsgKEVWX0EpOzxicj4rICZuYnNwO2lm IChiYWNrZW5kID09IEVWQkFDS0VORF9QT1JUICZuYnNwOyAmbmJzcDspIHBvcnRfZm9yayAmbmJz cDsgJm5ic3A7IChFVl9BKTs8YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOyNpZiBFVl9VU0VfS1FV RVVFPGJyPi0gJm5ic3A7aWYgKGJhY2tlbmQgPT0gRVZCQUNLRU5EX0tRVUVVRSkga3F1ZXVlX2Zv cmsgKEVWX0EpOzxicj4rICZuYnNwO2lmIChiYWNrZW5kID09IEVWQkFDS0VORF9LUVVFVUUgJm5i c3A7KSBrcXVldWVfZm9yayAmbmJzcDsgKEVWX0EpOzxicj4rI2VuZGlmPGJyPisjaWYgRVZfVVNF X0lPVVJJTkc8YnI+KyAmbmJzcDtpZiAoYmFja2VuZCA9PSBFVkJBQ0tFTkRfSU9VUklORyApIGlv dXJpbmdfZm9yayAmbmJzcDsoRVZfQSk7PGJyPisjZW5kaWY8YnI+KyNpZiBFVl9VU0VfTElOVVhB SU88YnI+KyAmbmJzcDtpZiAoYmFja2VuZCA9PSBFVkJBQ0tFTkRfTElOVVhBSU8pIGxpbnV4YWlv X2ZvcmsgKEVWX0EpOzxicj4mbmJzcDsjZW5kaWY8YnI+Jm5ic3A7I2lmIEVWX1VTRV9FUE9MTDxi cj4tICZuYnNwO2lmIChiYWNrZW5kID09IEVWQkFDS0VORF9FUE9MTCApIGVwb2xsX2ZvcmsgJm5i c3A7KEVWX0EpOzxicj4rICZuYnNwO2lmIChiYWNrZW5kID09IEVWQkFDS0VORF9FUE9MTCAmbmJz cDsgKSBlcG9sbF9mb3JrICZuYnNwOyAmbmJzcDsoRVZfQSk7PGJyPiZuYnNwOyNlbmRpZjxicj4m bmJzcDsjaWYgRVZfVVNFX0lOT1RJRlk8YnI+Jm5ic3A7ICZuYnNwO2luZnlfZm9yayAoRVZfQSk7 PGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+LSNpZiBFVl9TSUdOQUxfRU5BQkxFIHx8IEVW X0FTWU5DX0VOQUJMRTxicj4tICZuYnNwO2lmIChldl9pc19hY3RpdmUgKCZhbXA7cGlwZV93KSAm YW1wOyZhbXA7IHBvc3Rmb3JrICE9IDIpPGJyPisgJm5ic3A7aWYgKHBvc3Rmb3JrICE9IDIpPGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogcGlwZV93 cml0ZV93YW50ZWQgbXVzdCBiZSBmYWxzZSBub3csIHNvIG1vZGlmeWluZyBmZCB2YXJzIHNob3Vs ZCBiZSBzYWZlICovPGJyPi08YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3JlZiAoRVZfQSk7 PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9pb19zdG9wIChFVl9BXyAmYW1wO3BpcGVfdyk7 PGJyPi08YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChldnBpcGUgWzBdICZndDs9IDApPGJy Pi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7RVZfV0lOMzJfQ0xPU0VfRkQgKGV2cGlwZSBb MF0pOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7I2lmIEVWX1VTRV9TSUdOQUxGRDxicj4rICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIHN1cnByaXNpbmdseSwgbm90aGluZyBuZWVkcyB0 byBiZSBkb25lIGZvciBzaWduYWxmZCwgYWNjb3JpZG5nIHRvIGRvY3MsIGl0IGRvZXMgdGhlIHJp Z2h0IHRoaW5nIG9uIGZvcmsgKi88YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyNlbmRpZjxicj4r ICZuYnNwOyAmbmJzcDsgJm5ic3A7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsjaWYgRVZfVVNF X1RJTUVSRkQ8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZXZfaXNfYWN0aXZl ICgmYW1wO3RpbWVyZmRfdykpPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O3s8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3JlZiAo RVZfQSk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9p b19zdG9wIChFVl9BXyAmYW1wO3RpbWVyZmRfdyk7PGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJz cDsgJm5ic3A7ZXZwaXBlX2luaXQgKEVWX0EpOzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7Lyog aXRlcmF0ZSBvdmVyIGV2ZXJ5dGhpbmcsIGluIGNhc2Ugd2UgbWlzc2VkIHNvbWV0aGluZyBiZWZv cmUgKi88YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X2ZlZWRfZXZlbnQgKEVWX0FfICZhbXA7 cGlwZV93LCBFVl9DVVNUT00pOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7Y2xvc2UgKHRpbWVyZmQpOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7dGltZXJmZCA9IC0yOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7PGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldnRpbWVyZmRfaW5p dCAoRVZfQSk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsv KiByZXNjaGVkdWxlIHBlcmlvZGljcywgaW4gY2FzZSB3ZSBtaXNzZWQgc29tZXRoaW5nICovPGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9mZWVkX2V2ZW50 IChFVl9BXyAmYW1wO3RpbWVyZmRfdywgRVZfQ1VTVE9NKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7fTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7I2VuZGlmPGJyPisg Jm5ic3A7ICZuYnNwOyAmbmJzcDs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyNpZiBFVl9TSUdO QUxfRU5BQkxFIHx8IEVWX0FTWU5DX0VOQUJMRTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO2lmIChldl9pc19hY3RpdmUgKCZhbXA7cGlwZV93KSk8YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7LyogcGlwZV93cml0ZV93YW50ZWQgbXVzdCBiZSBmYWxzZSBub3csIHNvIG1vZGlm eWluZyBmZCB2YXJzIHNob3VsZCBiZSBzYWZlICovPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDs8 YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3JlZiAoRVZf QSk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9pb19z dG9wIChFVl9BXyAmYW1wO3BpcGVfdyk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDs8YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChldnBpcGUgWzBdICZn dDs9IDApPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7RVZfV0lOMzJfQ0xPU0VfRkQgKGV2cGlwZSBbMF0pOzxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldnBpcGVf aW5pdCAoRVZfQSk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsvKiBpdGVyYXRlIG92ZXIgZXZlcnl0aGluZywgaW4gY2FzZSB3ZSBtaXNzZWQgc29tZXRoaW5n IGJlZm9yZSAqLzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ZXZfZmVlZF9ldmVudCAoRVZfQV8gJmFtcDtwaXBlX3csIEVWX0NVU1RPTSk7PGJyPisgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyNl bmRpZjxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+LSNlbmRpZjxicj4mbmJzcDs8YnI+Jm5i c3A7ICZuYnNwO3Bvc3Rmb3JrID0gMDs8YnI+Jm5ic3A7fTxicj5AQCAtMzEyNyw3ICszNTgxLDcg QEAgbG9vcF9mb3JrIChFVl9QKTxicj4mbmJzcDs8YnI+Jm5ic3A7ZWNiX2NvbGQ8YnI+Jm5ic3A7 c3RydWN0IGV2X2xvb3AgKjxicj4tZXZfbG9vcF9uZXcgKHVuc2lnbmVkIGludCBmbGFncykgRVZf VEhST1c8YnI+K2V2X2xvb3BfbmV3ICh1bnNpZ25lZCBpbnQgZmxhZ3MpIEVWX05PRVhDRVBUPGJy PiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO0VWX1AgPSAoc3RydWN0IGV2X2xvb3AgKilldl9tYWxs b2MgKHNpemVvZiAoc3RydWN0IGV2X2xvb3ApKTs8YnI+Jm5ic3A7PGJyPkBAIC0zMTQ0LDcgKzM1 OTgsNyBAQCBldl9sb29wX25ldyAodW5zaWduZWQgaW50IGZsYWdzKSBFVl9USFJPVzxicj4mbmJz cDsjZW5kaWYgLyogbXVsdGlwbGljaXR5ICovPGJyPiZuYnNwOzxicj4mbmJzcDsjaWYgRVZfVkVS SUZZPGJyPi1ub2lubGluZSBlY2JfY29sZDxicj4rZWNiX25vaW5saW5lIGVjYl9jb2xkPGJyPiZu YnNwO3N0YXRpYyB2b2lkPGJyPiZuYnNwO3ZlcmlmeV93YXRjaGVyIChFVl9QXyBXIHcpPGJyPiZu YnNwO3s8YnI+QEAgLTMxNTQsNyArMzYwOCw3IEBAIHZlcmlmeV93YXRjaGVyIChFVl9QXyBXIHcp PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7YXNzZXJ0ICgoImxpYmV2OiBwZW5kaW5nIHdhdGNoZXIg bm90IG9uIHBlbmRpbmcgcXVldWUiLCBwZW5kaW5ncyBbQUJTUFJJICh3KV1bdy0mZ3Q7cGVuZGlu ZyAtIDFdLncgPT0gdykpOzxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4tbm9pbmxpbmUgZWNiX2Nv bGQ8YnI+K2VjYl9ub2lubGluZSBlY2JfY29sZDxicj4mbmJzcDtzdGF0aWMgdm9pZDxicj4mbmJz cDt2ZXJpZnlfaGVhcCAoRVZfUF8gQU5IRSAqaGVhcCwgaW50IE4pPGJyPiZuYnNwO3s8YnI+QEAg LTMxNzAsNyArMzYyNCw3IEBAIHZlcmlmeV9oZWFwIChFVl9QXyBBTkhFICpoZWFwLCBpbnQgTik8 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPi1ub2lubGlu ZSBlY2JfY29sZDxicj4rZWNiX25vaW5saW5lIGVjYl9jb2xkPGJyPiZuYnNwO3N0YXRpYyB2b2lk PGJyPiZuYnNwO2FycmF5X3ZlcmlmeSAoRVZfUF8gVyAqd3MsIGludCBjbnQpPGJyPiZuYnNwO3s8 YnI+QEAgLTMxODQsNyArMzYzOCw3IEBAIGFycmF5X3ZlcmlmeSAoRVZfUF8gVyAqd3MsIGludCBj bnQpPGJyPiZuYnNwOzxicj4mbmJzcDsjaWYgRVZfRkVBVFVSRV9BUEk8YnI+Jm5ic3A7dm9pZCBl Y2JfY29sZDxicj4tZXZfdmVyaWZ5IChFVl9QKSBFVl9USFJPVzxicj4rZXZfdmVyaWZ5IChFVl9Q KSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyNpZiBFVl9WRVJJRlk8YnI+Jm5ic3A7 ICZuYnNwO2ludCBpOzxicj5AQCAtMzI3NSw3ICszNzI5LDcgQEAgc3RydWN0IGV2X2xvb3AgKjxi cj4mbmJzcDsjZWxzZTxicj4mbmJzcDtpbnQ8YnI+Jm5ic3A7I2VuZGlmPGJyPi1ldl9kZWZhdWx0 X2xvb3AgKHVuc2lnbmVkIGludCBmbGFncykgRVZfVEhST1c8YnI+K2V2X2RlZmF1bHRfbG9vcCAo dW5zaWduZWQgaW50IGZsYWdzKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJz cDtpZiAoIWV2X2RlZmF1bHRfbG9vcF9wdHIpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj5A QCAtMzMwNCw3ICszNzU4LDcgQEAgZXZfZGVmYXVsdF9sb29wICh1bnNpZ25lZCBpbnQgZmxhZ3Mp IEVWX1RIUk9XPGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+LWV2X2xvb3Bf Zm9yayAoRVZfUCkgRVZfVEhST1c8YnI+K2V2X2xvb3BfZm9yayAoRVZfUCkgRVZfTk9FWENFUFQ8 YnI+Jm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7cG9zdGZvcmsgPSAxOzxicj4mbmJzcDt9PGJyPkBA IC0zMzE4LDcgKzM3NzIsNyBAQCBldl9pbnZva2UgKEVWX1BfIHZvaWQgKncsIGludCByZXZlbnRz KTxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt1bnNpZ25lZCBpbnQ8YnI+LWV2X3BlbmRp bmdfY291bnQgKEVWX1ApIEVWX1RIUk9XPGJyPitldl9wZW5kaW5nX2NvdW50IChFVl9QKSBFVl9O T0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtpbnQgcHJpOzxicj4mbmJzcDsgJm5i c3A7dW5zaWduZWQgaW50IGNvdW50ID0gMDs8YnI+QEAgLTMzMjksMTYgKzM3ODMsMTcgQEAgZXZf cGVuZGluZ19jb3VudCAoRVZfUCkgRVZfVEhST1c8YnI+Jm5ic3A7ICZuYnNwO3JldHVybiBjb3Vu dDs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+LW5vaW5saW5lPGJyPitlY2Jfbm9pbmxpbmU8YnI+ Jm5ic3A7dm9pZDxicj4mbmJzcDtldl9pbnZva2VfcGVuZGluZyAoRVZfUCk8YnI+Jm5ic3A7ezxi cj4mbmJzcDsgJm5ic3A7cGVuZGluZ3ByaSA9IE5VTVBSSTs8YnI+Jm5ic3A7PGJyPi0gJm5ic3A7 d2hpbGUgKHBlbmRpbmdwcmkpIC8qIHBlbmRpbmdwcmkgcG9zc2libHkgZ2V0cyBtb2RpZmllZCBp biB0aGUgaW5uZXIgbG9vcCAqLzxicj4rICZuYnNwO2RvPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDstLXBlbmRpbmdwcmk7PGJyPiZuYnNwOzxi cj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogcGVuZGluZ3ByaSBwb3NzaWJseSBnZXRzIG1vZGlm aWVkIGluIHRoZSBpbm5lciBsb29wICovPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3do aWxlIChwZW5kaW5nY250IFtwZW5kaW5ncHJpXSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtB TlBFTkRJTkcgKnAgPSBwZW5kaW5ncyBbcGVuZGluZ3ByaV0gKyAtLXBlbmRpbmdjbnQgW3BlbmRp bmdwcmldOzxicj5AQCAtMzM0OCw2ICszODAzLDcgQEAgZXZfaW52b2tlX3BlbmRpbmcgKEVWX1Ap PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7RVZfRlJFUVVFTlRf Q0hFQ0s7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7fTxicj4rICZuYnNwO3doaWxlIChwZW5kaW5ncHJpKTs8YnI+Jm5ic3A7fTxi cj4mbmJzcDs8YnI+Jm5ic3A7I2lmIEVWX0lETEVfRU5BQkxFPGJyPkBAIC0zMzU2LDcgKzM4MTIs NyBAQCBldl9pbnZva2VfcGVuZGluZyAoRVZfUCk8YnI+Jm5ic3A7aW5saW5lX3NpemUgdm9pZDxi cj4mbmJzcDtpZGxlX3JlaWZ5IChFVl9QKTxicj4mbmJzcDt7PGJyPi0gJm5ic3A7aWYgKGV4cGVj dF9mYWxzZSAoaWRsZWFsbCkpPGJyPisgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKGlkbGVh bGwpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7aW50IHByaTs8YnI+Jm5ic3A7PGJyPkBAIC0zMzk2LDcgKzM4NTIsNyBAQCB0aW1lcnNfcmVp ZnkgKEVWX1ApPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDtpZiAoZXZfYXQgKHcpICZsdDsgbW5fbm93KTxicj4mbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X2F0ICh3KSA9 IG1uX25vdzs8YnI+Jm5ic3A7PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7YXNzZXJ0ICgoImxpYmV2OiBuZWdhdGl2ZSBldl90aW1lciByZXBlYXQg dmFsdWUgZm91bmQgd2hpbGUgcHJvY2Vzc2luZyB0aW1lcnMiLCB3LSZndDtyZXBlYXQgJmd0OyAw LikpOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O2Fzc2VydCAoKCJsaWJldjogbmVnYXRpdmUgZXZfdGltZXIgcmVwZWF0IHZhbHVlIGZvdW5kIHdo aWxlIHByb2Nlc3NpbmcgdGltZXJzIiwgdy0mZ3Q7cmVwZWF0ICZndDsgRVZfVFNfQ09OU1QgKDAu KSkpOzxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO0FOSEVfYXRfY2FjaGUgKHRpbWVycyBbSEVBUDBdKTs8YnI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Rvd25oZWFw ICh0aW1lcnMsIHRpbWVyY250LCBIRUFQMCk7PGJyPkBAIC0zNDE1LDcgKzM4NzEsNyBAQCB0aW1l cnNfcmVpZnkgKEVWX1ApPGJyPiZuYnNwOzxicj4mbmJzcDsjaWYgRVZfUEVSSU9ESUNfRU5BQkxF PGJyPiZuYnNwOzxicj4tbm9pbmxpbmU8YnI+K2VjYl9ub2lubGluZTxicj4mbmJzcDtzdGF0aWMg dm9pZDxicj4mbmJzcDtwZXJpb2RpY19yZWNhbGMgKEVWX1BfIGV2X3BlcmlvZGljICp3KTxicj4m bmJzcDt7PGJyPkBAIC0zNDI4LDcgKzM4ODQsNyBAQCBwZXJpb2RpY19yZWNhbGMgKEVWX1BfIGV2 X3BlcmlvZGljICp3KTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl90c3RhbXAgbmF0 ID0gYXQgKyB3LSZndDtpbnRlcnZhbDs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOy8qIHdoZW4gcmVzb2x1dGlvbiBmYWlscyB1cywgd2UgdXNlIGV2X3J0X25vdyAqLzxi cj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAobmF0ID09IGF0KSk8YnI+ KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlIChuYXQgPT0gYXQpKTxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2F0ID0gZXZfcnRfbm93Ozxicj4mbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2JyZWFrOzxicj5AQCAtMzQ4NCw3ICszOTQwLDcg QEAgcGVyaW9kaWNzX3JlaWZ5IChFVl9QKTxicj4mbmJzcDs8YnI+Jm5ic3A7Lyogc2ltcGx5IHJl Y2FsY3VsYXRlIGFsbCBwZXJpb2RpY3MgKi88YnI+Jm5ic3A7LyogVE9ETzogbWF5YmUgZW5zdXJl IHRoYXQgYXQgbGVhc3Qgb25lIGV2ZW50IGhhcHBlbnMgd2hlbiBqdW1waW5nIGZvcndhcmQ/ICov PGJyPi1ub2lubGluZSBlY2JfY29sZDxicj4rZWNiX25vaW5saW5lIGVjYl9jb2xkPGJyPiZuYnNw O3N0YXRpYyB2b2lkPGJyPiZuYnNwO3BlcmlvZGljc19yZXNjaGVkdWxlIChFVl9QKTxicj4mbmJz cDt7PGJyPkBAIC0zNTA4LDcgKzM5NjQsNyBAQCBwZXJpb2RpY3NfcmVzY2hlZHVsZSAoRVZfUCk8 YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4mbmJzcDsvKiBhZGp1c3QgYWxsIHRpbWVycyBi eSBhIGdpdmVuIG9mZnNldCAqLzxicj4tbm9pbmxpbmUgZWNiX2NvbGQ8YnI+K2VjYl9ub2lubGlu ZSBlY2JfY29sZDxicj4mbmJzcDtzdGF0aWMgdm9pZDxicj4mbmJzcDt0aW1lcnNfcmVzY2hlZHVs ZSAoRVZfUF8gZXZfdHN0YW1wIGFkanVzdCk8YnI+Jm5ic3A7ezxicj5AQCAtMzUyOCw3ICszOTg0 LDcgQEAgaW5saW5lX3NwZWVkIHZvaWQ8YnI+Jm5ic3A7dGltZV91cGRhdGUgKEVWX1BfIGV2X3Rz dGFtcCBtYXhfYmxvY2spPGJyPiZuYnNwO3s8YnI+Jm5ic3A7I2lmIEVWX1VTRV9NT05PVE9OSUM8 YnI+LSAmbmJzcDtpZiAoZXhwZWN0X3RydWUgKGhhdmVfbW9ub3RvbmljKSk8YnI+KyAmbmJzcDtp ZiAoZWNiX2V4cGVjdF90cnVlIChoYXZlX21vbm90b25pYykpPGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpbnQgaTs8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ZXZfdHN0YW1wIG9kaWZmID0gcnRtbl9kaWZmOzxicj5AQCAtMzUzNyw3 ICszOTkzLDcgQEAgdGltZV91cGRhdGUgKEVWX1BfIGV2X3RzdGFtcCBtYXhfYmxvY2spPGJyPiZu YnNwOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBvbmx5IGZldGNoIHRoZSByZWFs dGltZSBjbG9jayBldmVyeSAwLjUqTUlOX1RJTUVKVU1QIHNlY29uZHMgKi88YnI+Jm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7LyogaW50ZXJwb2xhdGUgaW4gdGhlIG1lYW50aW1lICovPGJyPi0g Jm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZXhwZWN0X3RydWUgKG1uX25vdyAtIG5vd19mbG9vciAm bHQ7IE1JTl9USU1FSlVNUCAqIC41KSk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChlY2Jf ZXhwZWN0X3RydWUgKG1uX25vdyAtIG5vd19mbG9vciAmbHQ7IEVWX1RTX0NPTlNUIChNSU5fVElN RUpVTVAgKiAuNSkpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4m bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3J0X25vdyA9IHJ0bW5f ZGlmZiArIG1uX25vdzs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtyZXR1cm47PGJyPkBAIC0zNTYxLDcgKzQwMTcsNyBAQCB0aW1lX3VwZGF0ZSAoRVZfUF8gZXZf dHN0YW1wIG1heF9ibG9jayk8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ZGlmZiA9IG9kaWZmIC0gcnRtbl9kaWZmOzxicj4mbmJzcDs8YnI+LSAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGV4cGVjdF90cnVlICgoZGlmZiAm bHQ7IDAuID8gLWRpZmYgOiBkaWZmKSAmbHQ7IE1JTl9USU1FSlVNUCkpPGJyPisgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0X3RydWUgKChkaWZmICZsdDsg RVZfVFNfQ09OU1QgKDAuKSA/IC1kaWZmIDogZGlmZikgJmx0OyBFVl9UU19DT05TVCAoTUlOX1RJ TUVKVU1QKSkpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO3JldHVybjsgLyogYWxsIGlzIHdlbGwgKi88YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfcnRfbm93ID0gZXZfdGltZSAoKTs8YnI+QEAg LTM1ODAsNyArNDAzNiw3IEBAIHRpbWVfdXBkYXRlIChFVl9QXyBldl90c3RhbXAgbWF4X2Jsb2Nr KTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ZXZfcnRfbm93ID0gZXZfdGltZSAoKTs8YnI+Jm5ic3A7PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJz cDtpZiAoZXhwZWN0X2ZhbHNlIChtbl9ub3cgJmd0OyBldl9ydF9ub3cgfHwgZXZfcnRfbm93ICZn dDsgbW5fbm93ICsgbWF4X2Jsb2NrICsgTUlOX1RJTUVKVU1QKSk8YnI+KyAmbmJzcDsgJm5ic3A7 ICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlIChtbl9ub3cgJmd0OyBldl9ydF9ub3cgfHwgZXZf cnRfbm93ICZndDsgbW5fbm93ICsgbWF4X2Jsb2NrICsgRVZfVFNfQ09OU1QgKE1JTl9USU1FSlVN UCkpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIGFkanVzdCB0aW1lcnMuIHRoaXMgaXMg ZWFzeSwgYXMgdGhlIG9mZnNldCBpcyB0aGUgc2FtZSBmb3IgYWxsIG9mIHRoZW0gKi88YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt0aW1lcnNfcmVzY2hlZHVsZSAo RVZfQV8gZXZfcnRfbm93IC0gbW5fbm93KTs8YnI+QEAgLTM2MTMsOCArNDA2OSw4IEBAIGV2X3J1 biAoRVZfUF8gaW50IGZsYWdzKTxicj4mbmJzcDsjZW5kaWY8YnI+Jm5ic3A7PGJyPiZuYnNwOyNp Zm5kZWYgX1dJTjMyPGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNlIChj dXJwaWQpKSAvKiBwZW5hbGlzZSB0aGUgZm9ya2luZyBjaGVjayBldmVuIG1vcmUgKi88YnI+LSAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNlIChnZXRwaWQgKCkgIT0g Y3VycGlkKSk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlIChj dXJwaWQpKSAvKiBwZW5hbGlzZSB0aGUgZm9ya2luZyBjaGVjayBldmVuIG1vcmUgKi88YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoZ2V0cGlkICgp ICE9IGN1cnBpZCkpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtjdXJw aWQgPSBnZXRwaWQgKCk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO3Bvc3Rmb3JrID0gMTs8YnI+QEAgLTM2MjMsNyArNDA3OSw3IEBAIGV2X3J1biAo RVZfUF8gaW50IGZsYWdzKTxicj4mbmJzcDs8YnI+Jm5ic3A7I2lmIEVWX0ZPUktfRU5BQkxFPGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIHdlIG1pZ2h0IGhhdmUgZm9ya2VkLCBzbyBx dWV1ZSBmb3JrIGhhbmRsZXJzICovPGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZXhwZWN0 X2ZhbHNlIChwb3N0Zm9yaykpPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZWNiX2V4cGVj dF9mYWxzZSAocG9zdGZvcmspKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 aWYgKGZvcmtjbnQpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtxdWV1 ZV9ldmVudHMgKEVWX0FfIChXICopZm9ya3MsIGZvcmtjbnQsIEVWX0ZPUkspOzxicj5AQCAtMzYz MywxOCArNDA4OSwxOCBAQCBldl9ydW4gKEVWX1BfIGludCBmbGFncyk8YnI+Jm5ic3A7PGJyPiZu YnNwOyNpZiBFVl9QUkVQQVJFX0VOQUJMRTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsv KiBxdWV1ZSBwcmVwYXJlIHdhdGNoZXJzIChhbmQgZXhlY3V0ZSB0aGVtKSAqLzxicj4tICZuYnNw OyAmbmJzcDsgJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAocHJlcGFyZWNudCkpPGJyPisgJm5ic3A7 ICZuYnNwOyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAocHJlcGFyZWNudCkpPGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7cXVldWVfZXZlbnRzIChFVl9BXyAoVyAqKXByZXBhcmVzLCBwcmVw YXJlY250LCBFVl9QUkVQQVJFKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtFVl9JTlZPS0VfUEVORElORzs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO308YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDsgJm5i c3A7aWYgKGV4cGVjdF9mYWxzZSAobG9vcF9kb25lKSk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNw O2lmIChlY2JfZXhwZWN0X2ZhbHNlIChsb29wX2RvbmUpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7YnJlYWs7PGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsvKiB3ZSBtaWdodCBoYXZlIGZvcmtlZCwgc28gcmVpZnkga2VybmVsIHN0YXRlIGlmIG5l Y2Vzc2FyeSAqLzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAocG9z dGZvcmspKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKHBv c3Rmb3JrKSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2xvb3BfZm9yayAo RVZfQSk7PGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiB1cGRhdGUg ZmQtcmVsYXRlZCBrZXJuZWwgc3RydWN0dXJlcyAqLzxicj5AQCAtMzY1OSwxNiArNDExNSwyOCBA QCBldl9ydW4gKEVWX1BfIGludCBmbGFncyk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO2V2X3RzdGFtcCBwcmV2X21uX25vdyA9IG1uX25vdzs8YnI+Jm5ic3A7PGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiB1cGRhdGUgdGltZSB0byBjYW5jZWwgb3V0 IGNhbGxiYWNrIHByb2Nlc3Npbmcgb3ZlcmhlYWQgKi88YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDt0aW1lX3VwZGF0ZSAoRVZfQV8gMWUxMDApOzxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO3RpbWVfdXBkYXRlIChFVl9BXyBFVl9UU19DT05TVCAoRVZfVFNUQU1QX0hVR0Up KTs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBmcm9t IG5vdyBvbiwgd2Ugd2FudCBhIHBpcGUtd2FrZS11cCAqLzxicj4mbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7cGlwZV93cml0ZV93YW50ZWQgPSAxOzxicj4mbmJzcDs8YnI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO0VDQl9NRU1PUllfRkVOQ0U7IC8qIG1ha2Ugc3Vy ZSBwaXBlX3dyaXRlX3dhbnRlZCBpcyB2aXNpYmxlIGJlZm9yZSB3ZSBjaGVjayBmb3IgcG90ZW50 aWFsIHNraXBzICovPGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lm IChleHBlY3RfdHJ1ZSAoIShmbGFncyAmYW1wOyBFVlJVTl9OT1dBSVQgfHwgaWRsZWFsbCB8fCAh YWN0aXZlY250IHx8IHBpcGVfd3JpdGVfc2tpcHBlZCkpKTxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0X3RydWUgKCEoZmxhZ3MgJmFtcDsgRVZSVU5fTk9XQUlU IHx8IGlkbGVhbGwgfHwgIWFjdGl2ZWNudCB8fCBwaXBlX3dyaXRlX3NraXBwZWQpKSk8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPi0gJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt3YWl0dGltZSA9IE1BWF9CTE9DS1RJTUU7PGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt3YWl0dGltZSA9IEVW X1RTX0NPTlNUIChNQVhfQkxPQ0tUSU1FKTs8YnI+Kzxicj4rI2lmIEVWX1VTRV9USU1FUkZEPGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBzbGVlcCBhIGxv dCBsb25nZXIgd2hlbiB3ZSBjYW4gcmVsaWFibHkgZGV0ZWN0IHRpbWVqdW1wcyAqLzxicj4rICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGVjYl9leHBlY3RfdHJ1 ZSAodGltZXJmZCAmZ3Q7PSAwKSk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDt3YWl0dGltZSA9IEVWX1RTX0NPTlNUIChNQVhfQkxPQ0tUSU1FMik7 PGJyPisjZW5kaWY8YnI+KyNpZiAhRVZfUEVSSU9ESUNfRU5BQkxFPGJyPisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiB3aXRob3V0IHBlcmlvZGljcyBidXQgd2l0 aCBtb25vdG9uaWMgY2xvY2sgdGhlcmUgaXMgbm8gbmVlZCAqLzxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogZm9yIGFueSB0aW1lIGp1bXAgZGV0ZWN0aW9u LCBzbyBzbGVlcCBsb25nZXIgKi88YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0X3RydWUgKGhhdmVfbW9ub3RvbmljKSk8YnI+KyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt3YWl0dGltZSA9IEVW X1RTX0NPTlNUIChNQVhfQkxPQ0tUSU1FMik7PGJyPisjZW5kaWY8YnI+Jm5ic3A7PGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmICh0aW1lcmNudCk8 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O3s8YnI+QEAgLTM2ODUsMjMgKzQxNTMsMjggQEAgZXZfcnVuIChFVl9QXyBpbnQgZmxhZ3MpPGJy PiZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7LyogZG9uJ3QgbGV0IHRpbWVvdXRzIGRlY3JlYXNlIHRoZSB3YWl0 dGltZSBiZWxvdyB0aW1lb3V0X2Jsb2NrdGltZSAqLzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAod2FpdHRpbWUgJmx0OyB0aW1l b3V0X2Jsb2NrdGltZSkpPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAod2FpdHRpbWUgJmx0OyB0aW1lb3V0X2Jsb2NrdGlt ZSkpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDt3YWl0dGltZSA9IHRpbWVvdXRfYmxvY2t0aW1lOzxicj4mbmJzcDs8YnI+LSAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIGF0IHRoaXMgcG9pbnQsIHdlIE5F RUQgdG8gd2FpdCwgc28gd2UgaGF2ZSB0byBlbnN1cmUgKi88YnI+LSAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIHRvIHBhc3MgYSBtaW5pbXVtIG5vbnplcm8gdmFs dWUgdG8gdGhlIGJhY2tlbmQgKi88YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO2lmIChleHBlY3RfZmFsc2UgKHdhaXR0aW1lICZsdDsgYmFja2VuZF9taW50aW1l KSk8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt3 YWl0dGltZSA9IGJhY2tlbmRfbWludGltZTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOy8qIG5vdyB0aGVyZSBhcmUgdHdvIG1vcmUgc3BlY2lhbCBjYXNlcyBs ZWZ0LCBlaXRoZXIgd2UgaGF2ZTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICogYWxyZWFkeS1leHBpcmVkIHRpbWVycywgc28gd2Ugc2hvdWxkIG5vdCBzbGVl cCwgb3Igd2UgaGF2ZSB0aW1lcnM8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAqIHRoYXQgZXhwaXJlIHZlcnkgc29vbiwgaW4gd2hpY2ggY2FzZSB3ZSBuZWVk IHRvIHdhaXQgZm9yIGEgbWluaW11bTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICogYW1vdW50IG9mIHRpbWUgZm9yIHNvbWUgZXZlbnQgbG9vcCBiYWNrZW5k cy48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAqLzxicj4r ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGVjYl9leHBlY3Rf ZmFsc2UgKHdhaXR0aW1lICZsdDsgYmFja2VuZF9taW50aW1lKSk8YnI+KyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt3YWl0dGltZSA9IHdhaXR0aW1lICZs dDs9IEVWX1RTX0NPTlNUICgwLik8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ID8gRVZfVFNfQ09OU1QgKDAuKTxicj4rICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiBiYWNrZW5k X21pbnRpbWU7PGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsvKiBleHRyYSBjaGVjayBiZWNhdXNlIGlvX2Jsb2NrdGltZSBpcyBjb21t b25seSAwICovPGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtp ZiAoZXhwZWN0X2ZhbHNlIChpb19ibG9ja3RpbWUpKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKGlvX2Jsb2NrdGltZSkp PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7c2xlZXB0aW1lID0gaW9fYmxvY2t0aW1lIC0gKG1uX25vdyAtIHByZXZfbW5f bm93KTs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKHNsZWVwdGltZSAmZ3Q7IHdhaXR0aW1lIC0gYmFj a2VuZF9taW50aW1lKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtzbGVlcHRpbWUgPSB3YWl0dGltZSAtIGJhY2tl bmRfbWludGltZTs8YnI+Jm5ic3A7PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChleHBlY3RfdHJ1ZSAoc2xlZXB0aW1lICZndDsg MC4pKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtpZiAoZWNiX2V4cGVjdF90cnVlIChzbGVlcHRpbWUgJmd0OyBFVl9UU19DT05TVCAo MC4pKSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfc2xlZXAgKHNs ZWVwdGltZSk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt3YWl0dGltZSAtPSBzbGVlcHRpbWU7PGJy PkBAIC0zNzI1LDcgKzQxOTgsNiBAQCBldl9ydW4gKEVWX1BfIGludCBmbGFncyk8YnI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfZmVlZF9ldmVudCAo RVZfQV8gJmFtcDtwaXBlX3csIEVWX0NVU1RPTSk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+LTxicj4mbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7LyogdXBkYXRlIGV2X3J0X25vdywgZG8gbWFnaWMgKi88YnI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3RpbWVfdXBkYXRlIChFVl9BXyB3YWl0dGltZSAr IHNsZWVwdGltZSk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+QEAgLTM3NDMs MTMgKzQyMTUsMTMgQEAgZXZfcnVuIChFVl9QXyBpbnQgZmxhZ3MpPGJyPiZuYnNwOzxicj4mbmJz cDsjaWYgRVZfQ0hFQ0tfRU5BQkxFPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIHF1 ZXVlIGNoZWNrIHdhdGNoZXJzLCB0byBiZSBleGVjdXRlZCBmaXJzdCAqLzxicj4tICZuYnNwOyAm bmJzcDsgJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAoY2hlY2tjbnQpKTxicj4rICZuYnNwOyAmbmJz cDsgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKGNoZWNrY250KSk8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO3F1ZXVlX2V2ZW50cyAoRVZfQV8gKFcgKiljaGVja3MsIGNo ZWNrY250LCBFVl9DSEVDSyk7PGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+Jm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7RVZfSU5WT0tFX1BFTkRJTkc7PGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7fTxicj4tICZuYnNwO3doaWxlIChleHBlY3RfdHJ1ZSAoPGJyPisgJm5ic3A7d2hpbGUgKGVj Yl9leHBlY3RfdHJ1ZSAoPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7YWN0aXZlY250PGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7JmFtcDsmYW1wOyAhbG9vcF9kb25lPGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7JmFtcDsmYW1wOyAhKGZsYWdzICZhbXA7IChFVlJVTl9PTkNFIHwgRVZSVU5fTk9XQUlUKSk8 YnI+QEAgLTM3NjYsNDMgKzQyMzgsNDMgQEAgZXZfcnVuIChFVl9QXyBpbnQgZmxhZ3MpPGJyPiZu YnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+LWV2X2JyZWFrIChFVl9QXyBpbnQgaG93 KSBFVl9USFJPVzxicj4rZXZfYnJlYWsgKEVWX1BfIGludCBob3cpIEVWX05PRVhDRVBUPGJyPiZu YnNwO3s8YnI+Jm5ic3A7ICZuYnNwO2xvb3BfZG9uZSA9IGhvdzs8YnI+Jm5ic3A7fTxicj4mbmJz cDs8YnI+Jm5ic3A7dm9pZDxicj4tZXZfcmVmIChFVl9QKSBFVl9USFJPVzxicj4rZXZfcmVmIChF Vl9QKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsrK2FjdGl2ZWNudDs8 YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4tZXZfdW5yZWYgKEVWX1ApIEVW X1RIUk9XPGJyPitldl91bnJlZiAoRVZfUCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJz cDsgJm5ic3A7LS1hY3RpdmVjbnQ7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO2ludDxi cj4tZXZfYWN0aXZlY250IChFVl9QKSBFVl9USFJPVzxicj4rZXZfYWN0aXZlY250IChFVl9QKSBF Vl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtyZXR1cm4gYWN0aXZlY250Ozxi cj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1ldl9ub3dfdXBkYXRlIChFVl9Q KSBFVl9USFJPVzxicj4rZXZfbm93X3VwZGF0ZSAoRVZfUCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7 ezxicj4tICZuYnNwO3RpbWVfdXBkYXRlIChFVl9BXyAxZTEwMCk7PGJyPisgJm5ic3A7dGltZV91 cGRhdGUgKEVWX0FfIEVWX1RTVEFNUF9IVUdFKTs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5i c3A7dm9pZDxicj4tZXZfc3VzcGVuZCAoRVZfUCkgRVZfVEhST1c8YnI+K2V2X3N1c3BlbmQgKEVW X1ApIEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO2V2X25vd191cGRhdGUg KEVWX0EpOzxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1ldl9yZXN1bWUg KEVWX1ApIEVWX1RIUk9XPGJyPitldl9yZXN1bWUgKEVWX1ApIEVWX05PRVhDRVBUPGJyPiZuYnNw O3s8YnI+Jm5ic3A7ICZuYnNwO2V2X3RzdGFtcCBtbl9wcmV2ID0gbW5fbm93Ozxicj4mbmJzcDs8 YnI+QEAgLTM4MjksNyArNDMwMSw3IEBAIHdsaXN0X2RlbCAoV0wgKmhlYWQsIFdMIGVsZW0pPGJy PiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO3doaWxlICgqaGVhZCk8YnI+Jm5ic3A7ICZuYnNwOyAm bmJzcDt7PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZXhwZWN0X3RydWUgKCpoZWFkID09 IGVsZW0pKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGVjYl9leHBlY3RfdHJ1ZSAoKmhl YWQgPT0gZWxlbSkpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7KmhlYWQgPSBlbGVtLSZndDtu ZXh0Ozxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2JyZWFrOzxi cj5AQCAtMzg1MSwxMiArNDMyMywxMiBAQCBjbGVhcl9wZW5kaW5nIChFVl9QXyBXIHcpPGJyPiZu YnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO2ludDxicj4tZXZfY2xlYXJfcGVuZGluZyAoRVZfUF8g dm9pZCAqdykgRVZfVEhST1c8YnI+K2V2X2NsZWFyX3BlbmRpbmcgKEVWX1BfIHZvaWQgKncpIEVW X05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO1cgd18gPSAoVyl3Ozxicj4mbmJz cDsgJm5ic3A7aW50IHBlbmRpbmcgPSB3Xy0mZ3Q7cGVuZGluZzs8YnI+Jm5ic3A7PGJyPi0gJm5i c3A7aWYgKGV4cGVjdF90cnVlIChwZW5kaW5nKSk8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF90 cnVlIChwZW5kaW5nKSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwO0FOUEVORElORyAqcCA9IHBlbmRpbmdzIFtBQlNQUkkgKHdfKV0gKyBwZW5k aW5nIC0gMTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cC0mZ3Q7dyA9IChXKSZhbXA7 cGVuZGluZ193Ozxicj5AQCAtMzg5MywyMiArNDM2NSwyNSBAQCBldl9zdG9wIChFVl9QXyBXIHcp PGJyPiZuYnNwOzxicj4mbmJzcDsvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPGJyPiZuYnNwOzxicj4t bm9pbmxpbmU8YnI+K2VjYl9ub2lubGluZTxicj4mbmJzcDt2b2lkPGJyPi1ldl9pb19zdGFydCAo RVZfUF8gZXZfaW8gKncpIEVWX1RIUk9XPGJyPitldl9pb19zdGFydCAoRVZfUF8gZXZfaW8gKncp IEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO2ludCBmZCA9IHctJmd0O2Zk Ozxicj4mbmJzcDs8YnI+LSAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNlIChldl9pc19hY3RpdmUgKHcp KSk8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoZXZfaXNfYWN0aXZlICh3KSkpPGJy PiZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuOzxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwO2Fz c2VydCAoKCJsaWJldjogZXZfaW9fc3RhcnQgY2FsbGVkIHdpdGggbmVnYXRpdmUgZmQiLCBmZCAm Z3Q7PSAwKSk7PGJyPiZuYnNwOyAmbmJzcDthc3NlcnQgKCgibGliZXY6IGV2X2lvX3N0YXJ0IGNh bGxlZCB3aXRoIGlsbGVnYWwgZXZlbnQgbWFzayIsICEody0mZ3Q7ZXZlbnRzICZhbXA7IH4oRVZf X0lPRkRTRVQgfCBFVl9SRUFEIHwgRVZfV1JJVEUpKSkpOzxicj4mbmJzcDs8YnI+KyNpZiBFVl9W RVJJRlkgJmd0Oz0gMjxicj4rICZuYnNwO2Fzc2VydCAoKCJsaWJldjogZXZfaW9fc3RhcnQgY2Fs bGVkIG9uIHdhdGNoZXIgd2l0aCBpbnZhbGlkIGZkIiwgZmRfdmFsaWQgKGZkKSkpOzxicj4rI2Vu ZGlmPGJyPiZuYnNwOyAmbmJzcDtFVl9GUkVRVUVOVF9DSEVDSzs8YnI+Jm5ic3A7PGJyPiZuYnNw OyAmbmJzcDtldl9zdGFydCAoRVZfQV8gKFcpdywgMSk7PGJyPi0gJm5ic3A7YXJyYXlfbmVlZHNp emUgKEFORkQsIGFuZmRzLCBhbmZkbWF4LCBmZCArIDEsIGFycmF5X2luaXRfemVybyk7PGJyPisg Jm5ic3A7YXJyYXlfbmVlZHNpemUgKEFORkQsIGFuZmRzLCBhbmZkbWF4LCBmZCArIDEsIGFycmF5 X25lZWRzaXplX3plcm9maWxsKTs8YnI+Jm5ic3A7ICZuYnNwO3dsaXN0X2FkZCAoJmFtcDthbmZk c1tmZF0uaGVhZCwgKFdMKXcpOzxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwOy8qIGNvbW1vbiBi dWcsIGFwcGFyZW50bHkgKi88YnI+QEAgLTM5MjAsMTYgKzQzOTUsMTkgQEAgZXZfaW9fc3RhcnQg KEVWX1BfIGV2X2lvICp3KSBFVl9USFJPVzxicj4mbmJzcDsgJm5ic3A7RVZfRlJFUVVFTlRfQ0hF Q0s7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPi1ub2lubGluZTxicj4rZWNiX25vaW5saW5lPGJy PiZuYnNwO3ZvaWQ8YnI+LWV2X2lvX3N0b3AgKEVWX1BfIGV2X2lvICp3KSBFVl9USFJPVzxicj4r ZXZfaW9fc3RvcCAoRVZfUF8gZXZfaW8gKncpIEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+Jm5i c3A7ICZuYnNwO2NsZWFyX3BlbmRpbmcgKEVWX0FfIChXKXcpOzxicj4tICZuYnNwO2lmIChleHBl Y3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcpKSk8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9m YWxzZSAoIWV2X2lzX2FjdGl2ZSAodykpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybjs8 YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDthc3NlcnQgKCgibGliZXY6IGV2X2lvX3N0b3AgY2Fs bGVkIHdpdGggaWxsZWdhbCBmZCAobXVzdCBzdGF5IGNvbnN0YW50IGFmdGVyIHN0YXJ0ISkiLCB3 LSZndDtmZCAmZ3Q7PSAwICZhbXA7JmFtcDsgdy0mZ3Q7ZmQgJmx0OyBhbmZkbWF4KSk7PGJyPiZu YnNwOzxicj4rI2lmIEVWX1ZFUklGWSAmZ3Q7PSAyPGJyPisgJm5ic3A7YXNzZXJ0ICgoImxpYmV2 OiBldl9pb19zdG9wIGNhbGxlZCBvbiB3YXRjaGVyIHdpdGggaW52YWxpZCBmZCIsIGZkX3ZhbGlk ICh3LSZndDtmZCkpKTs8YnI+KyNlbmRpZjxicj4mbmJzcDsgJm5ic3A7RVZfRlJFUVVFTlRfQ0hF Q0s7PGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7d2xpc3RfZGVsICgmYW1wO2FuZmRzW3ctJmd0 O2ZkXS5oZWFkLCAoV0wpdyk7PGJyPkBAIC0zOTQ3LDcgKzQ0MjUsNyBAQCBldl9pb19zdG9wIChF Vl9QXyBldl9pbyAqdykgRVZfVEhST1c8YnI+Jm5ic3A7ICogYmFja2VuZCBpcyBwcm9wZXJseSB1 cGRhdGVkLjxicj4mbmJzcDsgKi88YnI+Jm5ic3A7dm9pZCBub2lubGluZTxicj4tZXZfaW9fY2xv c2luZyAoRVZfUF8gaW50IGZkLCBpbnQgcmV2ZW50cykgRVZfVEhST1c8YnI+K2V2X2lvX2Nsb3Np bmcgKEVWX1BfIGludCBmZCwgaW50IHJldmVudHMpIEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+ Jm5ic3A7ICZuYnNwO2V2X2lvICp3Ozxicj4mbmJzcDsgJm5ic3A7aWYgKGZkICZsdDsgMCB8fCBm ZCAmZ3Q7PSBhbmZkbWF4KTxicj5AQCAtMzk2MCwxMSArNDQzOCwxMSBAQCBldl9pb19jbG9zaW5n IChFVl9QXyBpbnQgZmQsIGludCByZXZlbnRzKSBFVl9USFJPVzxicj4mbmJzcDsgJm5ic3A7ICZu YnNwO308YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+LW5vaW5saW5lPGJyPitlY2Jfbm9pbmxpbmU8 YnI+Jm5ic3A7dm9pZDxicj4tZXZfdGltZXJfc3RhcnQgKEVWX1BfIGV2X3RpbWVyICp3KSBFVl9U SFJPVzxicj4rZXZfdGltZXJfc3RhcnQgKEVWX1BfIGV2X3RpbWVyICp3KSBFVl9OT0VYQ0VQVDxi cj4mbmJzcDt7PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAoZXZfaXNfYWN0aXZlICh3KSkp PGJyPisgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKGV2X2lzX2FjdGl2ZSAodykpKTxicj4m bmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybjs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDtldl9h dCAodykgKz0gbW5fbm93Ozxicj5AQCAtMzk3NSw3ICs0NDUzLDcgQEAgZXZfdGltZXJfc3RhcnQg KEVWX1BfIGV2X3RpbWVyICp3KSBFVl9USFJPVzxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwOysr dGltZXJjbnQ7PGJyPiZuYnNwOyAmbmJzcDtldl9zdGFydCAoRVZfQV8gKFcpdywgdGltZXJjbnQg KyBIRUFQMCAtIDEpOzxicj4tICZuYnNwO2FycmF5X25lZWRzaXplIChBTkhFLCB0aW1lcnMsIHRp bWVybWF4LCBldl9hY3RpdmUgKHcpICsgMSwgRU1QVFkyKTs8YnI+KyAmbmJzcDthcnJheV9uZWVk c2l6ZSAoQU5IRSwgdGltZXJzLCB0aW1lcm1heCwgZXZfYWN0aXZlICh3KSArIDEsIGFycmF5X25l ZWRzaXplX25vaW5pdCk7PGJyPiZuYnNwOyAmbmJzcDtBTkhFX3cgKHRpbWVycyBbZXZfYWN0aXZl ICh3KV0pID0gKFdUKXc7PGJyPiZuYnNwOyAmbmJzcDtBTkhFX2F0X2NhY2hlICh0aW1lcnMgW2V2 X2FjdGl2ZSAodyldKTs8YnI+Jm5ic3A7ICZuYnNwO3VwaGVhcCAodGltZXJzLCBldl9hY3RpdmUg KHcpKTs8YnI+QEAgLTM5ODUsMTIgKzQ0NjMsMTIgQEAgZXZfdGltZXJfc3RhcnQgKEVWX1BfIGV2 X3RpbWVyICp3KSBFVl9USFJPVzxicj4mbmJzcDsgJm5ic3A7Lyphc3NlcnQgKCgibGliZXY6IGlu dGVybmFsIHRpbWVyIGhlYXAgY29ycnVwdGlvbiIsIHRpbWVycyBbZXZfYWN0aXZlICh3KV0gPT0g KFdUKXcpKTsqLzxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4tbm9pbmxpbmU8YnI+K2VjYl9ub2lu bGluZTxicj4mbmJzcDt2b2lkPGJyPi1ldl90aW1lcl9zdG9wIChFVl9QXyBldl90aW1lciAqdykg RVZfVEhST1c8YnI+K2V2X3RpbWVyX3N0b3AgKEVWX1BfIGV2X3RpbWVyICp3KSBFVl9OT0VYQ0VQ VDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtjbGVhcl9wZW5kaW5nIChFVl9BXyAoVyl3KTs8 YnI+LSAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNlICghZXZfaXNfYWN0aXZlICh3KSkpPGJyPisgJm5i c3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcpKSk8YnI+Jm5ic3A7ICZu YnNwOyAmbmJzcDtyZXR1cm47PGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7RVZfRlJFUVVFTlRf Q0hFQ0s7PGJyPkBAIC00MDAyLDcgKzQ0ODAsNyBAQCBldl90aW1lcl9zdG9wIChFVl9QXyBldl90 aW1lciAqdykgRVZfVEhST1c8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7LS10aW1l cmNudDs8YnI+Jm5ic3A7PGJyPi0gJm5ic3A7ICZuYnNwO2lmIChleHBlY3RfdHJ1ZSAoYWN0aXZl ICZsdDsgdGltZXJjbnQgKyBIRUFQMCkpPGJyPisgJm5ic3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0 X3RydWUgKGFjdGl2ZSAmbHQ7IHRpbWVyY250ICsgSEVBUDApKTxicj4mbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt0aW1lcnMg W2FjdGl2ZV0gPSB0aW1lcnMgW3RpbWVyY250ICsgSEVBUDBdOzxicj4mbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7YWRqdXN0aGVhcCAodGltZXJzLCB0aW1lcmNudCwgYWN0aXZlKTs8 YnI+QEAgLTQwMTYsOSArNDQ5NCw5IEBAIGV2X3RpbWVyX3N0b3AgKEVWX1BfIGV2X3RpbWVyICp3 KSBFVl9USFJPVzxicj4mbmJzcDsgJm5ic3A7RVZfRlJFUVVFTlRfQ0hFQ0s7PGJyPiZuYnNwO308 YnI+Jm5ic3A7PGJyPi1ub2lubGluZTxicj4rZWNiX25vaW5saW5lPGJyPiZuYnNwO3ZvaWQ8YnI+ LWV2X3RpbWVyX2FnYWluIChFVl9QXyBldl90aW1lciAqdykgRVZfVEhST1c8YnI+K2V2X3RpbWVy X2FnYWluIChFVl9QXyBldl90aW1lciAqdykgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJz cDsgJm5ic3A7RVZfRlJFUVVFTlRfQ0hFQ0s7PGJyPiZuYnNwOzxicj5AQCAtNDA0NSwxOSArNDUy MywyNCBAQCBldl90aW1lcl9hZ2FpbiAoRVZfUF8gZXZfdGltZXIgKncpIEVWX1RIUk9XPGJyPiZu YnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO2V2X3RzdGFtcDxicj4tZXZfdGltZXJfcmVtYWluaW5n IChFVl9QXyBldl90aW1lciAqdykgRVZfVEhST1c8YnI+K2V2X3RpbWVyX3JlbWFpbmluZyAoRVZf UF8gZXZfdGltZXIgKncpIEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+LSAmbmJzcDtyZXR1cm4g ZXZfYXQgKHcpIC0gKGV2X2lzX2FjdGl2ZSAodykgPyBtbl9ub3cgOiAwLik7PGJyPisgJm5ic3A7 cmV0dXJuIGV2X2F0ICh3KSAtIChldl9pc19hY3RpdmUgKHcpID8gbW5fbm93IDogRVZfVFNfQ09O U1QgKDAuKSk7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwOyNpZiBFVl9QRVJJT0RJQ19F TkFCTEU8YnI+LW5vaW5saW5lPGJyPitlY2Jfbm9pbmxpbmU8YnI+Jm5ic3A7dm9pZDxicj4tZXZf cGVyaW9kaWNfc3RhcnQgKEVWX1BfIGV2X3BlcmlvZGljICp3KSBFVl9USFJPVzxicj4rZXZfcGVy aW9kaWNfc3RhcnQgKEVWX1BfIGV2X3BlcmlvZGljICp3KSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7 PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAoZXZfaXNfYWN0aXZlICh3KSkpPGJyPisgJm5i c3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKGV2X2lzX2FjdGl2ZSAodykpKTxicj4mbmJzcDsgJm5i c3A7ICZuYnNwO3JldHVybjs8YnI+Jm5ic3A7PGJyPisjaWYgRVZfVVNFX1RJTUVSRkQ8YnI+KyAm bmJzcDtpZiAodGltZXJmZCA9PSAtMik8YnI+KyAmbmJzcDsgJm5ic3A7ZXZ0aW1lcmZkX2luaXQg KEVWX0EpOzxicj4rI2VuZGlmPGJyPis8YnI+Jm5ic3A7ICZuYnNwO2lmICh3LSZndDtyZXNjaGVk dWxlX2NiKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO2V2X2F0ICh3KSA9IHctJmd0O3Jlc2NoZWR1 bGVfY2IgKHcsIGV2X3J0X25vdyk7PGJyPiZuYnNwOyAmbmJzcDtlbHNlIGlmICh3LSZndDtpbnRl cnZhbCk8YnI+QEAgLTQwNzIsNyArNDU1NSw3IEBAIGV2X3BlcmlvZGljX3N0YXJ0IChFVl9QXyBl dl9wZXJpb2RpYyAqdykgRVZfVEhST1c8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsrK3Blcmlv ZGljY250Ozxicj4mbmJzcDsgJm5ic3A7ZXZfc3RhcnQgKEVWX0FfIChXKXcsIHBlcmlvZGljY250 ICsgSEVBUDAgLSAxKTs8YnI+LSAmbmJzcDthcnJheV9uZWVkc2l6ZSAoQU5IRSwgcGVyaW9kaWNz LCBwZXJpb2RpY21heCwgZXZfYWN0aXZlICh3KSArIDEsIEVNUFRZMik7PGJyPisgJm5ic3A7YXJy YXlfbmVlZHNpemUgKEFOSEUsIHBlcmlvZGljcywgcGVyaW9kaWNtYXgsIGV2X2FjdGl2ZSAodykg KyAxLCBhcnJheV9uZWVkc2l6ZV9ub2luaXQpOzxicj4mbmJzcDsgJm5ic3A7QU5IRV93IChwZXJp b2RpY3MgW2V2X2FjdGl2ZSAodyldKSA9IChXVCl3Ozxicj4mbmJzcDsgJm5ic3A7QU5IRV9hdF9j YWNoZSAocGVyaW9kaWNzIFtldl9hY3RpdmUgKHcpXSk7PGJyPiZuYnNwOyAmbmJzcDt1cGhlYXAg KHBlcmlvZGljcywgZXZfYWN0aXZlICh3KSk7PGJyPkBAIC00MDgyLDEyICs0NTY1LDEyIEBAIGV2 X3BlcmlvZGljX3N0YXJ0IChFVl9QXyBldl9wZXJpb2RpYyAqdykgRVZfVEhST1c8YnI+Jm5ic3A7 ICZuYnNwOy8qYXNzZXJ0ICgoImxpYmV2OiBpbnRlcm5hbCBwZXJpb2RpYyBoZWFwIGNvcnJ1cHRp b24iLCBBTkhFX3cgKHBlcmlvZGljcyBbZXZfYWN0aXZlICh3KV0pID09IChXVCl3KSk7Ki88YnI+ Jm5ic3A7fTxicj4mbmJzcDs8YnI+LW5vaW5saW5lPGJyPitlY2Jfbm9pbmxpbmU8YnI+Jm5ic3A7 dm9pZDxicj4tZXZfcGVyaW9kaWNfc3RvcCAoRVZfUF8gZXZfcGVyaW9kaWMgKncpIEVWX1RIUk9X PGJyPitldl9wZXJpb2RpY19zdG9wIChFVl9QXyBldl9wZXJpb2RpYyAqdykgRVZfTk9FWENFUFQ8 YnI+Jm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7Y2xlYXJfcGVuZGluZyAoRVZfQV8gKFcpdyk7PGJy Pi0gJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykpKTxicj4rICZuYnNw O2lmIChlY2JfZXhwZWN0X2ZhbHNlICghZXZfaXNfYWN0aXZlICh3KSkpPGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7cmV0dXJuOzxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwO0VWX0ZSRVFVRU5UX0NI RUNLOzxicj5AQCAtNDA5OSw3ICs0NTgyLDcgQEAgZXZfcGVyaW9kaWNfc3RvcCAoRVZfUF8gZXZf cGVyaW9kaWMgKncpIEVWX1RIUk9XPGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOy0t cGVyaW9kaWNjbnQ7PGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDtpZiAoZXhwZWN0X3RydWUg KGFjdGl2ZSAmbHQ7IHBlcmlvZGljY250ICsgSEVBUDApKTxicj4rICZuYnNwOyAmbmJzcDtpZiAo ZWNiX2V4cGVjdF90cnVlIChhY3RpdmUgJmx0OyBwZXJpb2RpY2NudCArIEhFQVAwKSk8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7cGVyaW9kaWNzIFthY3RpdmVdID0gcGVyaW9kaWNzIFtwZXJpb2RpY2NudCArIEhFQVAw XTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2FkanVzdGhlYXAgKHBlcmlv ZGljcywgcGVyaW9kaWNjbnQsIGFjdGl2ZSk7PGJyPkBAIC00MTExLDkgKzQ1OTQsOSBAQCBldl9w ZXJpb2RpY19zdG9wIChFVl9QXyBldl9wZXJpb2RpYyAqdykgRVZfVEhST1c8YnI+Jm5ic3A7ICZu YnNwO0VWX0ZSRVFVRU5UX0NIRUNLOzxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4tbm9pbmxpbmU8 YnI+K2VjYl9ub2lubGluZTxicj4mbmJzcDt2b2lkPGJyPi1ldl9wZXJpb2RpY19hZ2FpbiAoRVZf UF8gZXZfcGVyaW9kaWMgKncpIEVWX1RIUk9XPGJyPitldl9wZXJpb2RpY19hZ2FpbiAoRVZfUF8g ZXZfcGVyaW9kaWMgKncpIEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOy8q IFRPRE86IHVzZSBhZGp1c3RoZWFwIGFuZCByZWNhbGN1bGF0aW9uICovPGJyPiZuYnNwOyAmbmJz cDtldl9wZXJpb2RpY19zdG9wIChFVl9BXyB3KTs8YnI+QEAgLTQxMjcsMTEgKzQ2MTAsMTEgQEAg ZXZfcGVyaW9kaWNfYWdhaW4gKEVWX1BfIGV2X3BlcmlvZGljICp3KSBFVl9USFJPVzxicj4mbmJz cDs8YnI+Jm5ic3A7I2lmIEVWX1NJR05BTF9FTkFCTEU8YnI+Jm5ic3A7PGJyPi1ub2lubGluZTxi cj4rZWNiX25vaW5saW5lPGJyPiZuYnNwO3ZvaWQ8YnI+LWV2X3NpZ25hbF9zdGFydCAoRVZfUF8g ZXZfc2lnbmFsICp3KSBFVl9USFJPVzxicj4rZXZfc2lnbmFsX3N0YXJ0IChFVl9QXyBldl9zaWdu YWwgKncpIEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+LSAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNl IChldl9pc19hY3RpdmUgKHcpKSk8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoZXZf aXNfYWN0aXZlICh3KSkpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuOzxicj4mbmJzcDs8 YnI+Jm5ic3A7ICZuYnNwO2Fzc2VydCAoKCJsaWJldjogZXZfc2lnbmFsX3N0YXJ0IGNhbGxlZCB3 aXRoIGlsbGVnYWwgc2lnbmFsIG51bWJlciIsIHctJmd0O3NpZ251bSAmZ3Q7IDAgJmFtcDsmYW1w OyB3LSZndDtzaWdudW0gJmx0OyBFVl9OU0lHKSk7PGJyPkBAIC00MjEwLDEyICs0NjkzLDEyIEBA IGV2X3NpZ25hbF9zdGFydCAoRVZfUF8gZXZfc2lnbmFsICp3KSBFVl9USFJPVzxicj4mbmJzcDsg Jm5ic3A7RVZfRlJFUVVFTlRfQ0hFQ0s7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPi1ub2lubGlu ZTxicj4rZWNiX25vaW5saW5lPGJyPiZuYnNwO3ZvaWQ8YnI+LWV2X3NpZ25hbF9zdG9wIChFVl9Q XyBldl9zaWduYWwgKncpIEVWX1RIUk9XPGJyPitldl9zaWduYWxfc3RvcCAoRVZfUF8gZXZfc2ln bmFsICp3KSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtjbGVhcl9wZW5k aW5nIChFVl9BXyAoVyl3KTs8YnI+LSAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNlICghZXZfaXNfYWN0 aXZlICh3KSkpPGJyPisgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKCFldl9pc19hY3RpdmUg KHcpKSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm47PGJyPiZuYnNwOzxicj4mbmJzcDsg Jm5ic3A7RVZfRlJFUVVFTlRfQ0hFQ0s7PGJyPkBAIC00MjUzLDEyICs0NzM2LDEyIEBAIGV2X3Np Z25hbF9zdG9wIChFVl9QXyBldl9zaWduYWwgKncpIEVWX1RIUk9XPGJyPiZuYnNwOyNpZiBFVl9D SElMRF9FTkFCTEU8YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+LWV2X2NoaWxkX3N0YXJ0IChF Vl9QXyBldl9jaGlsZCAqdykgRVZfVEhST1c8YnI+K2V2X2NoaWxkX3N0YXJ0IChFVl9QXyBldl9j aGlsZCAqdykgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsjaWYgRVZfTVVMVElQTElD SVRZPGJyPiZuYnNwOyAmbmJzcDthc3NlcnQgKCgibGliZXY6IGNoaWxkIHdhdGNoZXJzIGFyZSBv bmx5IHN1cHBvcnRlZCBpbiB0aGUgZGVmYXVsdCBsb29wIiwgbG9vcCA9PSBldl9kZWZhdWx0X2xv b3BfcHRyKSk7PGJyPiZuYnNwOyNlbmRpZjxicj4tICZuYnNwO2lmIChleHBlY3RfZmFsc2UgKGV2 X2lzX2FjdGl2ZSAodykpKTxicj4rICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlIChldl9pc19h Y3RpdmUgKHcpKSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm47PGJyPiZuYnNwOzxicj4m bmJzcDsgJm5ic3A7RVZfRlJFUVVFTlRfQ0hFQ0s7PGJyPkBAIC00MjcwLDEwICs0NzUzLDEwIEBA IGV2X2NoaWxkX3N0YXJ0IChFVl9QXyBldl9jaGlsZCAqdykgRVZfVEhST1c8YnI+Jm5ic3A7fTxi cj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4tZXZfY2hpbGRfc3RvcCAoRVZfUF8gZXZfY2hpbGQg KncpIEVWX1RIUk9XPGJyPitldl9jaGlsZF9zdG9wIChFVl9QXyBldl9jaGlsZCAqdykgRVZfTk9F WENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7Y2xlYXJfcGVuZGluZyAoRVZfQV8gKFcp dyk7PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykpKTxicj4r ICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlICghZXZfaXNfYWN0aXZlICh3KSkpPGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7cmV0dXJuOzxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwO0VWX0ZSRVFV RU5UX0NIRUNLOzxicj5AQCAtNDI5NywxNCArNDc4MCwxNCBAQCBldl9jaGlsZF9zdG9wIChFVl9Q XyBldl9jaGlsZCAqdykgRVZfVEhST1c8YnI+Jm5ic3A7I2RlZmluZSBORlNfU1RBVF9JTlRFUlZB TCAzMC4xMDc0ODkxIC8qIGZvciBmaWxlc3lzdGVtcyBwb3RlbnRpYWxseSBmYWlsaW5nIGlub3Rp ZnkgKi88YnI+Jm5ic3A7I2RlZmluZSBNSU5fU1RBVF9JTlRFUlZBTCAmbmJzcDswLjEwNzQ4OTE8 YnI+Jm5ic3A7PGJyPi1ub2lubGluZSBzdGF0aWMgdm9pZCBzdGF0X3RpbWVyX2NiIChFVl9QXyBl dl90aW1lciAqd18sIGludCByZXZlbnRzKTs8YnI+K2VjYl9ub2lubGluZSBzdGF0aWMgdm9pZCBz dGF0X3RpbWVyX2NiIChFVl9QXyBldl90aW1lciAqd18sIGludCByZXZlbnRzKTs8YnI+Jm5ic3A7 PGJyPiZuYnNwOyNpZiBFVl9VU0VfSU5PVElGWTxicj4mbmJzcDs8YnI+Jm5ic3A7LyogdGhlICog MiBpcyB0byBhbGxvdyBmb3IgYWxpZ25tZW50IHBhZGRpbmcsIHdoaWNoIGZvciBzb21lIHJlYXNv biBpcyAmZ3Q7Jmd0OyA4ICovPGJyPiZuYnNwOyMgZGVmaW5lIEVWX0lOT1RJRllfQlVGU0laRSAo c2l6ZW9mIChzdHJ1Y3QgaW5vdGlmeV9ldmVudCkgKiAyICsgTkFNRV9NQVgpPGJyPiZuYnNwOzxi cj4tbm9pbmxpbmU8YnI+K2VjYl9ub2lubGluZTxicj4mbmJzcDtzdGF0aWMgdm9pZDxicj4mbmJz cDtpbmZ5X2FkZCAoRVZfUF8gZXZfc3RhdCAqdyk8YnI+Jm5ic3A7ezxicj5AQCAtNDM3OSw3ICs0 ODYyLDcgQEAgaW5meV9hZGQgKEVWX1BfIGV2X3N0YXQgKncpPGJyPiZuYnNwOyAmbmJzcDtpZiAo ZXZfaXNfYWN0aXZlICgmYW1wO3ctJmd0O3RpbWVyKSkgZXZfdW5yZWYgKEVWX0EpOzxicj4mbmJz cDt9PGJyPiZuYnNwOzxicj4tbm9pbmxpbmU8YnI+K2VjYl9ub2lubGluZTxicj4mbmJzcDtzdGF0 aWMgdm9pZDxicj4mbmJzcDtpbmZ5X2RlbCAoRVZfUF8gZXZfc3RhdCAqdyk8YnI+Jm5ic3A7ezxi cj5AQCAtNDM5Nyw3ICs0ODgwLDcgQEAgaW5meV9kZWwgKEVWX1BfIGV2X3N0YXQgKncpPGJyPiZu YnNwOyAmbmJzcDtpbm90aWZ5X3JtX3dhdGNoIChmc19mZCwgd2QpOzxicj4mbmJzcDt9PGJyPiZu YnNwOzxicj4tbm9pbmxpbmU8YnI+K2VjYl9ub2lubGluZTxicj4mbmJzcDtzdGF0aWMgdm9pZDxi cj4mbmJzcDtpbmZ5X3dkIChFVl9QXyBpbnQgc2xvdCwgaW50IHdkLCBzdHJ1Y3QgaW5vdGlmeV9l dmVudCAqZXYpPGJyPiZuYnNwO3s8YnI+QEAgLTQ1NDUsNyArNTAyOCw3IEBAIGluZnlfZm9yayAo RVZfUCk8YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1ldl9zdGF0 X3N0YXQgKEVWX1BfIGV2X3N0YXQgKncpIEVWX1RIUk9XPGJyPitldl9zdGF0X3N0YXQgKEVWX1Bf IGV2X3N0YXQgKncpIEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO2lmIChs c3RhdCAody0mZ3Q7cGF0aCwgJmFtcDt3LSZndDthdHRyKSAmbHQ7IDApPGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7dy0mZ3Q7YXR0ci5zdF9ubGluayA9IDA7PGJyPkBAIC00NTUzLDcgKzUwMzYsNyBA QCBldl9zdGF0X3N0YXQgKEVWX1BfIGV2X3N0YXQgKncpIEVWX1RIUk9XPGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7dy0mZ3Q7YXR0ci5zdF9ubGluayA9IDE7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJy Pi1ub2lubGluZTxicj4rZWNiX25vaW5saW5lPGJyPiZuYnNwO3N0YXRpYyB2b2lkPGJyPiZuYnNw O3N0YXRfdGltZXJfY2IgKEVWX1BfIGV2X3RpbWVyICp3XywgaW50IHJldmVudHMpPGJyPiZuYnNw O3s8YnI+QEAgLTQ2MDQsOSArNTA4Nyw5IEBAIHN0YXRfdGltZXJfY2IgKEVWX1BfIGV2X3RpbWVy ICp3XywgaW50IHJldmVudHMpPGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPiZuYnNwO3ZvaWQ8YnI+ LWV2X3N0YXRfc3RhcnQgKEVWX1BfIGV2X3N0YXQgKncpIEVWX1RIUk9XPGJyPitldl9zdGF0X3N0 YXJ0IChFVl9QXyBldl9zdGF0ICp3KSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPi0gJm5ic3A7 aWYgKGV4cGVjdF9mYWxzZSAoZXZfaXNfYWN0aXZlICh3KSkpPGJyPisgJm5ic3A7aWYgKGVjYl9l eHBlY3RfZmFsc2UgKGV2X2lzX2FjdGl2ZSAodykpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3Jl dHVybjs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDtldl9zdGF0X3N0YXQgKEVWX0FfIHcpOzxi cj5AQCAtNDYzNSwxMCArNTExOCwxMCBAQCBldl9zdGF0X3N0YXJ0IChFVl9QXyBldl9zdGF0ICp3 KSBFVl9USFJPVzxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1ldl9zdGF0 X3N0b3AgKEVWX1BfIGV2X3N0YXQgKncpIEVWX1RIUk9XPGJyPitldl9zdGF0X3N0b3AgKEVWX1Bf IGV2X3N0YXQgKncpIEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO2NsZWFy X3BlbmRpbmcgKEVWX0FfIChXKXcpOzxicj4tICZuYnNwO2lmIChleHBlY3RfZmFsc2UgKCFldl9p c19hY3RpdmUgKHcpKSk8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoIWV2X2lzX2Fj dGl2ZSAodykpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybjs8YnI+Jm5ic3A7PGJyPiZu YnNwOyAmbmJzcDtFVl9GUkVRVUVOVF9DSEVDSzs8YnI+QEAgLTQ2NjEsOSArNTE0NCw5IEBAIGV2 X3N0YXRfc3RvcCAoRVZfUF8gZXZfc3RhdCAqdykgRVZfVEhST1c8YnI+Jm5ic3A7PGJyPiZuYnNw OyNpZiBFVl9JRExFX0VOQUJMRTxicj4mbmJzcDt2b2lkPGJyPi1ldl9pZGxlX3N0YXJ0IChFVl9Q XyBldl9pZGxlICp3KSBFVl9USFJPVzxicj4rZXZfaWRsZV9zdGFydCAoRVZfUF8gZXZfaWRsZSAq dykgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4tICZuYnNwO2lmIChleHBlY3RfZmFsc2UgKGV2 X2lzX2FjdGl2ZSAodykpKTxicj4rICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlIChldl9pc19h Y3RpdmUgKHcpKSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm47PGJyPiZuYnNwOzxicj4m bmJzcDsgJm5ic3A7cHJpX2FkanVzdCAoRVZfQV8gKFcpdyk7PGJyPkBAIC00Njc2LDcgKzUxNTks NyBAQCBldl9pZGxlX3N0YXJ0IChFVl9QXyBldl9pZGxlICp3KSBFVl9USFJPVzxicj4mbmJzcDsg Jm5ic3A7ICZuYnNwOysraWRsZWFsbDs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDtldl9zdGFydCAo RVZfQV8gKFcpdywgYWN0aXZlKTs8YnI+Jm5ic3A7PGJyPi0gJm5ic3A7ICZuYnNwO2FycmF5X25l ZWRzaXplIChldl9pZGxlICosIGlkbGVzIFtBQlNQUkkgKHcpXSwgaWRsZW1heCBbQUJTUFJJICh3 KV0sIGFjdGl2ZSwgRU1QVFkyKTs8YnI+KyAmbmJzcDsgJm5ic3A7YXJyYXlfbmVlZHNpemUgKGV2 X2lkbGUgKiwgaWRsZXMgW0FCU1BSSSAodyldLCBpZGxlbWF4IFtBQlNQUkkgKHcpXSwgYWN0aXZl LCBhcnJheV9uZWVkc2l6ZV9ub2luaXQpOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO2lkbGVzIFtB QlNQUkkgKHcpXVthY3RpdmUgLSAxXSA9IHc7PGJyPiZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxi cj5AQCAtNDY4NCwxMCArNTE2NywxMCBAQCBldl9pZGxlX3N0YXJ0IChFVl9QXyBldl9pZGxlICp3 KSBFVl9USFJPVzxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1ldl9pZGxl X3N0b3AgKEVWX1BfIGV2X2lkbGUgKncpIEVWX1RIUk9XPGJyPitldl9pZGxlX3N0b3AgKEVWX1Bf IGV2X2lkbGUgKncpIEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO2NsZWFy X3BlbmRpbmcgKEVWX0FfIChXKXcpOzxicj4tICZuYnNwO2lmIChleHBlY3RfZmFsc2UgKCFldl9p c19hY3RpdmUgKHcpKSk8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoIWV2X2lzX2Fj dGl2ZSAodykpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybjs8YnI+Jm5ic3A7PGJyPiZu YnNwOyAmbmJzcDtFVl9GUkVRVUVOVF9DSEVDSzs8YnI+QEAgLTQ3MDgsMjUgKzUxOTEsMjUgQEAg ZXZfaWRsZV9zdG9wIChFVl9QXyBldl9pZGxlICp3KSBFVl9USFJPVzxicj4mbmJzcDs8YnI+Jm5i c3A7I2lmIEVWX1BSRVBBUkVfRU5BQkxFPGJyPiZuYnNwO3ZvaWQ8YnI+LWV2X3ByZXBhcmVfc3Rh cnQgKEVWX1BfIGV2X3ByZXBhcmUgKncpIEVWX1RIUk9XPGJyPitldl9wcmVwYXJlX3N0YXJ0IChF Vl9QXyBldl9wcmVwYXJlICp3KSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPi0gJm5ic3A7aWYg KGV4cGVjdF9mYWxzZSAoZXZfaXNfYWN0aXZlICh3KSkpPGJyPisgJm5ic3A7aWYgKGVjYl9leHBl Y3RfZmFsc2UgKGV2X2lzX2FjdGl2ZSAodykpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVy bjs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDtFVl9GUkVRVUVOVF9DSEVDSzs8YnI+Jm5ic3A7 PGJyPiZuYnNwOyAmbmJzcDtldl9zdGFydCAoRVZfQV8gKFcpdywgKytwcmVwYXJlY250KTs8YnI+ LSAmbmJzcDthcnJheV9uZWVkc2l6ZSAoZXZfcHJlcGFyZSAqLCBwcmVwYXJlcywgcHJlcGFyZW1h eCwgcHJlcGFyZWNudCwgRU1QVFkyKTs8YnI+KyAmbmJzcDthcnJheV9uZWVkc2l6ZSAoZXZfcHJl cGFyZSAqLCBwcmVwYXJlcywgcHJlcGFyZW1heCwgcHJlcGFyZWNudCwgYXJyYXlfbmVlZHNpemVf bm9pbml0KTs8YnI+Jm5ic3A7ICZuYnNwO3ByZXBhcmVzIFtwcmVwYXJlY250IC0gMV0gPSB3Ozxi cj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwO0VWX0ZSRVFVRU5UX0NIRUNLOzxicj4mbmJzcDt9PGJy PiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1ldl9wcmVwYXJlX3N0b3AgKEVWX1BfIGV2X3ByZXBh cmUgKncpIEVWX1RIUk9XPGJyPitldl9wcmVwYXJlX3N0b3AgKEVWX1BfIGV2X3ByZXBhcmUgKncp IEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO2NsZWFyX3BlbmRpbmcgKEVW X0FfIChXKXcpOzxicj4tICZuYnNwO2lmIChleHBlY3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcp KSk8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykpKTxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybjs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDtF Vl9GUkVRVUVOVF9DSEVDSzs8YnI+QEAgLTQ3NDYsMjUgKzUyMjksMjUgQEAgZXZfcHJlcGFyZV9z dG9wIChFVl9QXyBldl9wcmVwYXJlICp3KSBFVl9USFJPVzxicj4mbmJzcDs8YnI+Jm5ic3A7I2lm IEVWX0NIRUNLX0VOQUJMRTxicj4mbmJzcDt2b2lkPGJyPi1ldl9jaGVja19zdGFydCAoRVZfUF8g ZXZfY2hlY2sgKncpIEVWX1RIUk9XPGJyPitldl9jaGVja19zdGFydCAoRVZfUF8gZXZfY2hlY2sg KncpIEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+LSAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNlIChl dl9pc19hY3RpdmUgKHcpKSk8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoZXZfaXNf YWN0aXZlICh3KSkpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuOzxicj4mbmJzcDs8YnI+ Jm5ic3A7ICZuYnNwO0VWX0ZSRVFVRU5UX0NIRUNLOzxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNw O2V2X3N0YXJ0IChFVl9BXyAoVyl3LCArK2NoZWNrY250KTs8YnI+LSAmbmJzcDthcnJheV9uZWVk c2l6ZSAoZXZfY2hlY2sgKiwgY2hlY2tzLCBjaGVja21heCwgY2hlY2tjbnQsIEVNUFRZMik7PGJy PisgJm5ic3A7YXJyYXlfbmVlZHNpemUgKGV2X2NoZWNrICosIGNoZWNrcywgY2hlY2ttYXgsIGNo ZWNrY250LCBhcnJheV9uZWVkc2l6ZV9ub2luaXQpOzxicj4mbmJzcDsgJm5ic3A7Y2hlY2tzIFtj aGVja2NudCAtIDFdID0gdzs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDtFVl9GUkVRVUVOVF9D SEVDSzs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4tZXZfY2hlY2tfc3Rv cCAoRVZfUF8gZXZfY2hlY2sgKncpIEVWX1RIUk9XPGJyPitldl9jaGVja19zdG9wIChFVl9QXyBl dl9jaGVjayAqdykgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7Y2xlYXJf cGVuZGluZyAoRVZfQV8gKFcpdyk7PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAoIWV2X2lz X2FjdGl2ZSAodykpKTxicj4rICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlICghZXZfaXNfYWN0 aXZlICh3KSkpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuOzxicj4mbmJzcDs8YnI+Jm5i c3A7ICZuYnNwO0VWX0ZSRVFVRU5UX0NIRUNLOzxicj5AQCAtNDc4Myw5ICs1MjY2LDkgQEAgZXZf Y2hlY2tfc3RvcCAoRVZfUF8gZXZfY2hlY2sgKncpIEVWX1RIUk9XPGJyPiZuYnNwOyNlbmRpZjxi cj4mbmJzcDs8YnI+Jm5ic3A7I2lmIEVWX0VNQkVEX0VOQUJMRTxicj4tbm9pbmxpbmU8YnI+K2Vj Yl9ub2lubGluZTxicj4mbmJzcDt2b2lkPGJyPi1ldl9lbWJlZF9zd2VlcCAoRVZfUF8gZXZfZW1i ZWQgKncpIEVWX1RIUk9XPGJyPitldl9lbWJlZF9zd2VlcCAoRVZfUF8gZXZfZW1iZWQgKncpIEVW X05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO2V2X3J1biAody0mZ3Q7b3RoZXIs IEVWUlVOX05PV0FJVCk7PGJyPiZuYnNwO308YnI+QEAgLTQ4MTcsNiArNTMwMCw3IEBAIGVtYmVk X3ByZXBhcmVfY2IgKEVWX1BfIGV2X3ByZXBhcmUgKnByZXBhcmUsIGludCByZXZlbnRzKTxicj4m bmJzcDsgJm5ic3A7fTxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4rI2lmIEVWX0ZPUktfRU5BQkxF PGJyPiZuYnNwO3N0YXRpYyB2b2lkPGJyPiZuYnNwO2VtYmVkX2ZvcmtfY2IgKEVWX1BfIGV2X2Zv cmsgKmZvcmtfdywgaW50IHJldmVudHMpPGJyPiZuYnNwO3s8YnI+QEAgLTQ4MzMsNiArNTMxNyw3 IEBAIGVtYmVkX2ZvcmtfY2IgKEVWX1BfIGV2X2ZvcmsgKmZvcmtfdywgaW50IHJldmVudHMpPGJy PiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7ZXZfZW1iZWRfc3RhcnQgKEVWX0FfIHcpOzxicj4mbmJz cDt9PGJyPisjZW5kaWY8YnI+Jm5ic3A7PGJyPiZuYnNwOyNpZiAwPGJyPiZuYnNwO3N0YXRpYyB2 b2lkPGJyPkBAIC00ODQzLDkgKzUzMjgsOSBAQCBlbWJlZF9pZGxlX2NiIChFVl9QXyBldl9pZGxl ICppZGxlLCBpbnQgcmV2ZW50cyk8YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4mbmJzcDt2 b2lkPGJyPi1ldl9lbWJlZF9zdGFydCAoRVZfUF8gZXZfZW1iZWQgKncpIEVWX1RIUk9XPGJyPitl dl9lbWJlZF9zdGFydCAoRVZfUF8gZXZfZW1iZWQgKncpIEVWX05PRVhDRVBUPGJyPiZuYnNwO3s8 YnI+LSAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNlIChldl9pc19hY3RpdmUgKHcpKSk8YnI+KyAmbmJz cDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoZXZfaXNfYWN0aXZlICh3KSkpPGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7cmV0dXJuOzxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwO3s8YnI+QEAgLTQ4NjMs OCArNTM0OCwxMCBAQCBldl9lbWJlZF9zdGFydCAoRVZfUF8gZXZfZW1iZWQgKncpIEVWX1RIUk9X PGJyPiZuYnNwOyAmbmJzcDtldl9zZXRfcHJpb3JpdHkgKCZhbXA7dy0mZ3Q7cHJlcGFyZSwgRVZf TUlOUFJJKTs8YnI+Jm5ic3A7ICZuYnNwO2V2X3ByZXBhcmVfc3RhcnQgKEVWX0FfICZhbXA7dy0m Z3Q7cHJlcGFyZSk7PGJyPiZuYnNwOzxicj4rI2lmIEVWX0ZPUktfRU5BQkxFPGJyPiZuYnNwOyAm bmJzcDtldl9mb3JrX2luaXQgKCZhbXA7dy0mZ3Q7Zm9yaywgZW1iZWRfZm9ya19jYik7PGJyPiZu YnNwOyAmbmJzcDtldl9mb3JrX3N0YXJ0IChFVl9BXyAmYW1wO3ctJmd0O2ZvcmspOzxicj4rI2Vu ZGlmPGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7Lypldl9pZGxlX2luaXQgKCZhbXA7dy0mZ3Q7 aWRsZSwgZSxiZWRfaWRsZV9jYik7Ki88YnI+Jm5ic3A7PGJyPkBAIC00ODc0LDE3ICs1MzYxLDE5 IEBAIGV2X2VtYmVkX3N0YXJ0IChFVl9QXyBldl9lbWJlZCAqdykgRVZfVEhST1c8YnI+Jm5ic3A7 fTxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4tZXZfZW1iZWRfc3RvcCAoRVZfUF8gZXZfZW1i ZWQgKncpIEVWX1RIUk9XPGJyPitldl9lbWJlZF9zdG9wIChFVl9QXyBldl9lbWJlZCAqdykgRVZf Tk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7Y2xlYXJfcGVuZGluZyAoRVZfQV8g KFcpdyk7PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykpKTxi cj4rICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlICghZXZfaXNfYWN0aXZlICh3KSkpPGJyPiZu YnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuOzxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwO0VWX0ZS RVFVRU5UX0NIRUNLOzxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwO2V2X2lvX3N0b3AgJm5ic3A7 ICZuYnNwOyAmbmJzcDsoRVZfQV8gJmFtcDt3LSZndDtpbyk7PGJyPiZuYnNwOyAmbmJzcDtldl9w cmVwYXJlX3N0b3AgKEVWX0FfICZhbXA7dy0mZ3Q7cHJlcGFyZSk7PGJyPisjaWYgRVZfRk9SS19F TkFCTEU8YnI+Jm5ic3A7ICZuYnNwO2V2X2Zvcmtfc3RvcCAmbmJzcDsgJm5ic3A7KEVWX0FfICZh bXA7dy0mZ3Q7Zm9yayk7PGJyPisjZW5kaWY8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDtldl9z dG9wIChFVl9BXyAoVyl3KTs8YnI+Jm5ic3A7PGJyPkBAIC00ODk0LDI1ICs1MzgzLDI1IEBAIGV2 X2VtYmVkX3N0b3AgKEVWX1BfIGV2X2VtYmVkICp3KSBFVl9USFJPVzxicj4mbmJzcDs8YnI+Jm5i c3A7I2lmIEVWX0ZPUktfRU5BQkxFPGJyPiZuYnNwO3ZvaWQ8YnI+LWV2X2Zvcmtfc3RhcnQgKEVW X1BfIGV2X2ZvcmsgKncpIEVWX1RIUk9XPGJyPitldl9mb3JrX3N0YXJ0IChFVl9QXyBldl9mb3Jr ICp3KSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAo ZXZfaXNfYWN0aXZlICh3KSkpPGJyPisgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKGV2X2lz X2FjdGl2ZSAodykpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybjs8YnI+Jm5ic3A7PGJy PiZuYnNwOyAmbmJzcDtFVl9GUkVRVUVOVF9DSEVDSzs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJz cDtldl9zdGFydCAoRVZfQV8gKFcpdywgKytmb3JrY250KTs8YnI+LSAmbmJzcDthcnJheV9uZWVk c2l6ZSAoZXZfZm9yayAqLCBmb3JrcywgZm9ya21heCwgZm9ya2NudCwgRU1QVFkyKTs8YnI+KyAm bmJzcDthcnJheV9uZWVkc2l6ZSAoZXZfZm9yayAqLCBmb3JrcywgZm9ya21heCwgZm9ya2NudCwg YXJyYXlfbmVlZHNpemVfbm9pbml0KTs8YnI+Jm5ic3A7ICZuYnNwO2ZvcmtzIFtmb3JrY250IC0g MV0gPSB3Ozxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwO0VWX0ZSRVFVRU5UX0NIRUNLOzxicj4m bmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDt2b2lkPGJyPi1ldl9mb3JrX3N0b3AgKEVWX1BfIGV2 X2ZvcmsgKncpIEVWX1RIUk9XPGJyPitldl9mb3JrX3N0b3AgKEVWX1BfIGV2X2ZvcmsgKncpIEVW X05PRVhDRVBUPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO2NsZWFyX3BlbmRpbmcgKEVWX0Ff IChXKXcpOzxicj4tICZuYnNwO2lmIChleHBlY3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcpKSk8 YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykpKTxicj4m bmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybjs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDtFVl9G UkVRVUVOVF9DSEVDSzs8YnI+QEAgLTQ5MzIsMTUgKzU0MjEsMTUgQEAgZXZfZm9ya19zdG9wIChF Vl9QXyBldl9mb3JrICp3KSBFVl9USFJPVzxicj4mbmJzcDs8YnI+Jm5ic3A7I2lmIEVWX0NMRUFO VVBfRU5BQkxFPGJyPiZuYnNwO3ZvaWQ8YnI+LWV2X2NsZWFudXBfc3RhcnQgKEVWX1BfIGV2X2Ns ZWFudXAgKncpIEVWX1RIUk9XPGJyPitldl9jbGVhbnVwX3N0YXJ0IChFVl9QXyBldl9jbGVhbnVw ICp3KSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAo ZXZfaXNfYWN0aXZlICh3KSkpPGJyPisgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKGV2X2lz X2FjdGl2ZSAodykpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybjs8YnI+Jm5ic3A7PGJy PiZuYnNwOyAmbmJzcDtFVl9GUkVRVUVOVF9DSEVDSzs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJz cDtldl9zdGFydCAoRVZfQV8gKFcpdywgKytjbGVhbnVwY250KTs8YnI+LSAmbmJzcDthcnJheV9u ZWVkc2l6ZSAoZXZfY2xlYW51cCAqLCBjbGVhbnVwcywgY2xlYW51cG1heCwgY2xlYW51cGNudCwg RU1QVFkyKTs8YnI+KyAmbmJzcDthcnJheV9uZWVkc2l6ZSAoZXZfY2xlYW51cCAqLCBjbGVhbnVw cywgY2xlYW51cG1heCwgY2xlYW51cGNudCwgYXJyYXlfbmVlZHNpemVfbm9pbml0KTs8YnI+Jm5i c3A7ICZuYnNwO2NsZWFudXBzIFtjbGVhbnVwY250IC0gMV0gPSB3Ozxicj4mbmJzcDs8YnI+Jm5i c3A7ICZuYnNwOy8qIGNsZWFudXAgd2F0Y2hlcnMgc2hvdWxkIG5ldmVyIGtlZXAgYSByZWZjb3Vu dCBvbiB0aGUgbG9vcCAqLzxicj5AQCAtNDk0OSwxMCArNTQzOCwxMCBAQCBldl9jbGVhbnVwX3N0 YXJ0IChFVl9QXyBldl9jbGVhbnVwICp3KSBFVl9USFJPVzxicj4mbmJzcDt9PGJyPiZuYnNwOzxi cj4mbmJzcDt2b2lkPGJyPi1ldl9jbGVhbnVwX3N0b3AgKEVWX1BfIGV2X2NsZWFudXAgKncpIEVW X1RIUk9XPGJyPitldl9jbGVhbnVwX3N0b3AgKEVWX1BfIGV2X2NsZWFudXAgKncpIEVWX05PRVhD RVBUPGJyPiZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwO2NsZWFyX3BlbmRpbmcgKEVWX0FfIChXKXcp Ozxicj4tICZuYnNwO2lmIChleHBlY3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcpKSk8YnI+KyAm bmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoIWV2X2lzX2FjdGl2ZSAodykpKTxicj4mbmJzcDsg Jm5ic3A7ICZuYnNwO3JldHVybjs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDtFVl9GUkVRVUVO VF9DSEVDSzs8YnI+QEAgLTQ5NzMsOSArNTQ2Miw5IEBAIGV2X2NsZWFudXBfc3RvcCAoRVZfUF8g ZXZfY2xlYW51cCAqdykgRVZfVEhST1c8YnI+Jm5ic3A7PGJyPiZuYnNwOyNpZiBFVl9BU1lOQ19F TkFCTEU8YnI+Jm5ic3A7dm9pZDxicj4tZXZfYXN5bmNfc3RhcnQgKEVWX1BfIGV2X2FzeW5jICp3 KSBFVl9USFJPVzxicj4rZXZfYXN5bmNfc3RhcnQgKEVWX1BfIGV2X2FzeW5jICp3KSBFVl9OT0VY Q0VQVDxicj4mbmJzcDt7PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAoZXZfaXNfYWN0aXZl ICh3KSkpPGJyPisgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKGV2X2lzX2FjdGl2ZSAodykp KTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybjs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJz cDt3LSZndDtzZW50ID0gMDs8YnI+QEAgLTQ5ODUsMTcgKzU0NzQsMTcgQEAgZXZfYXN5bmNfc3Rh cnQgKEVWX1BfIGV2X2FzeW5jICp3KSBFVl9USFJPVzxicj4mbmJzcDsgJm5ic3A7RVZfRlJFUVVF TlRfQ0hFQ0s7PGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7ZXZfc3RhcnQgKEVWX0FfIChXKXcs ICsrYXN5bmNjbnQpOzxicj4tICZuYnNwO2FycmF5X25lZWRzaXplIChldl9hc3luYyAqLCBhc3lu Y3MsIGFzeW5jbWF4LCBhc3luY2NudCwgRU1QVFkyKTs8YnI+KyAmbmJzcDthcnJheV9uZWVkc2l6 ZSAoZXZfYXN5bmMgKiwgYXN5bmNzLCBhc3luY21heCwgYXN5bmNjbnQsIGFycmF5X25lZWRzaXpl X25vaW5pdCk7PGJyPiZuYnNwOyAmbmJzcDthc3luY3MgW2FzeW5jY250IC0gMV0gPSB3Ozxicj4m bmJzcDs8YnI+Jm5ic3A7ICZuYnNwO0VWX0ZSRVFVRU5UX0NIRUNLOzxicj4mbmJzcDt9PGJyPiZu YnNwOzxicj4mbmJzcDt2b2lkPGJyPi1ldl9hc3luY19zdG9wIChFVl9QXyBldl9hc3luYyAqdykg RVZfVEhST1c8YnI+K2V2X2FzeW5jX3N0b3AgKEVWX1BfIGV2X2FzeW5jICp3KSBFVl9OT0VYQ0VQ VDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtjbGVhcl9wZW5kaW5nIChFVl9BXyAoVyl3KTs8 YnI+LSAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNlICghZXZfaXNfYWN0aXZlICh3KSkpPGJyPisgJm5i c3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKCFldl9pc19hY3RpdmUgKHcpKSk8YnI+Jm5ic3A7ICZu YnNwOyAmbmJzcDtyZXR1cm47PGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7RVZfRlJFUVVFTlRf Q0hFQ0s7PGJyPkBAIC01MDEzLDcgKzU1MDIsNyBAQCBldl9hc3luY19zdG9wIChFVl9QXyBldl9h c3luYyAqdykgRVZfVEhST1c8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7dm9pZDxicj4t ZXZfYXN5bmNfc2VuZCAoRVZfUF8gZXZfYXN5bmMgKncpIEVWX1RIUk9XPGJyPitldl9hc3luY19z ZW5kIChFVl9QXyBldl9hc3luYyAqdykgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsg Jm5ic3A7dy0mZ3Q7c2VudCA9IDE7PGJyPiZuYnNwOyAmbmJzcDtldnBpcGVfd3JpdGUgKEVWX0Ff ICZhbXA7YXN5bmNfcGVuZGluZyk7PGJyPkBAIC01MDYwLDE2ICs1NTQ5LDEwIEBAIG9uY2VfY2Jf dG8gKEVWX1BfIGV2X3RpbWVyICp3LCBpbnQgcmV2ZW50cyk8YnI+Jm5ic3A7fTxicj4mbmJzcDs8 YnI+Jm5ic3A7dm9pZDxicj4tZXZfb25jZSAoRVZfUF8gaW50IGZkLCBpbnQgZXZlbnRzLCBldl90 c3RhbXAgdGltZW91dCwgdm9pZCAoKmNiKShpbnQgcmV2ZW50cywgdm9pZCAqYXJnKSwgdm9pZCAq YXJnKSBFVl9USFJPVzxicj4rZXZfb25jZSAoRVZfUF8gaW50IGZkLCBpbnQgZXZlbnRzLCBldl90 c3RhbXAgdGltZW91dCwgdm9pZCAoKmNiKShpbnQgcmV2ZW50cywgdm9pZCAqYXJnKSwgdm9pZCAq YXJnKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtzdHJ1Y3QgZXZfb25j ZSAqb25jZSA9IChzdHJ1Y3QgZXZfb25jZSAqKWV2X21hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgZXZf b25jZSkpOzxicj4mbmJzcDs8YnI+LSAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNlICghb25jZSkpPGJy Pi0gJm5ic3A7ICZuYnNwO3s8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwO2NiIChFVl9FUlJPUiB8 IEVWX1JFQUQgfCBFVl9XUklURSB8IEVWX1RJTUVSLCBhcmcpOzxicj4tICZuYnNwOyAmbmJzcDsg Jm5ic3A7cmV0dXJuOzxicj4tICZuYnNwOyAmbmJzcDt9PGJyPi08YnI+Jm5ic3A7ICZuYnNwO29u Y2UtJmd0O2NiICZuYnNwOz0gY2I7PGJyPiZuYnNwOyAmbmJzcDtvbmNlLSZndDthcmcgPSBhcmc7 PGJyPiZuYnNwOzxicj5AQCAtNTA5Myw3ICs1NTc2LDcgQEAgZXZfb25jZSAoRVZfUF8gaW50IGZk LCBpbnQgZXZlbnRzLCBldl90c3RhbXAgdGltZW91dCwgdm9pZCAoKmNiKShpbnQgcmV2ZW50cywg dm88YnI+Jm5ic3A7I2lmIEVWX1dBTEtfRU5BQkxFPGJyPiZuYnNwO2VjYl9jb2xkPGJyPiZuYnNw O3ZvaWQ8YnI+LWV2X3dhbGsgKEVWX1BfIGludCB0eXBlcywgdm9pZCAoKmNiKShFVl9QXyBpbnQg dHlwZSwgdm9pZCAqdykpIEVWX1RIUk9XPGJyPitldl93YWxrIChFVl9QXyBpbnQgdHlwZXMsIHZv aWQgKCpjYikoRVZfUF8gaW50IHR5cGUsIHZvaWQgKncpKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7 PGJyPiZuYnNwOyAmbmJzcDtpbnQgaSwgajs8YnI+Jm5ic3A7ICZuYnNwO2V2X3dhdGNoZXJfbGlz dCAqd2wsICp3bjs8YnI+ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2LmggYi90aGly ZF9wYXJ0eS9saWJldi9ldi5oPGJyPmluZGV4IGQ0MmUyZGY0Ny4uYzBlMTcxNDNiIDEwMDY0NDxi cj4tLS0gYS90aGlyZF9wYXJ0eS9saWJldi9ldi5oPGJyPisrKyBiL3RoaXJkX3BhcnR5L2xpYmV2 L2V2Lmg8YnI+QEAgLTEsNyArMSw3IEBAPGJyPiZuYnNwOy8qPGJyPiZuYnNwOyAqIGxpYmV2IG5h dGl2ZSBBUEkgaGVhZGVyPGJyPiZuYnNwOyAqPGJyPi0gKiBDb3B5cmlnaHQgKGMpIDIwMDcsMjAw OCwyMDA5LDIwMTAsMjAxMSwyMDEyLDIwMTUgTWFyYyBBbGV4YW5kZXIgTGVobWFubiAmbHQ7bGli ZXZAc2NobW9ycC5kZSZndDs8YnI+KyAqIENvcHlyaWdodCAoYykgMjAwNy0yMDIwIE1hcmMgQWxl eGFuZGVyIExlaG1hbm4gJmx0O2xpYmV2QHNjaG1vcnAuZGUmZ3Q7PGJyPiZuYnNwOyAqIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPGJyPiZuYnNwOyAqPGJyPiZuYnNwOyAqIFJlZGlzdHJpYnV0aW9uIGFu ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmlj YS08YnI+QEAgLTQ4LDE0ICs0OCwxMyBAQDxicj4mbmJzcDsgKiBkdWUgdG8gbm9uLXRocm93aW5n IiB3YXJuaW5ncy48YnI+Jm5ic3A7ICogIyAmbmJzcDtkZWZpbmUgRVZfVEhST1cgbm9leGNlcHQ8 YnI+Jm5ic3A7ICovPGJyPi0jICZuYnNwO2RlZmluZSBFVl9USFJPVzxicj4tIyBlbHNlPGJyPi0j ICZuYnNwO2RlZmluZSBFVl9USFJPVyB0aHJvdyAoKTxicj4rIyAmbmJzcDtkZWZpbmUgRVZfTk9F WENFUFQ8YnI+Jm5ic3A7IyBlbmRpZjxicj4mbmJzcDsjZWxzZTxicj4mbmJzcDsjIGRlZmluZSBF Vl9DUFAoeCk8YnI+LSMgZGVmaW5lIEVWX1RIUk9XPGJyPisjIGRlZmluZSBFVl9OT0VYQ0VQVDxi cj4mbmJzcDsjZW5kaWY8YnI+KyNkZWZpbmUgRVZfVEhST1cgRVZfTk9FWENFUFQgLyogcHJlLTQu MjUsIGRvIG5vdCB1c2UgaW4gbmV3IGNvZGUgKi88YnI+Jm5ic3A7PGJyPiZuYnNwO0VWX0NQUChl eHRlcm4gIkMiIHspPGJyPiZuYnNwOzxicj5AQCAtMTU1LDcgKzE1NCwxMCBAQCBFVl9DUFAoZXh0 ZXJuICJDIiB7KTxicj4mbmJzcDs8YnI+Jm5ic3A7LyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzxicj4m bmJzcDs8YnI+LXR5cGVkZWYgZG91YmxlIGV2X3RzdGFtcDs8YnI+KyNpZm5kZWYgRVZfVFNUQU1Q X1Q8YnI+KyMgZGVmaW5lIEVWX1RTVEFNUF9UIGRvdWJsZTxicj4rI2VuZGlmPGJyPit0eXBlZGVm IEVWX1RTVEFNUF9UIGV2X3RzdGFtcDs8YnI+Jm5ic3A7PGJyPiZuYnNwOyNpbmNsdWRlICZsdDtz dHJpbmcuaCZndDsgLyogZm9yIG1lbW1vdmUgKi88YnI+Jm5ic3A7PGJyPkBAIC0yMTYsNyArMjE4 LDcgQEAgc3RydWN0IGV2X2xvb3A7PGJyPiZuYnNwOy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88YnI+ Jm5ic3A7PGJyPiZuYnNwOyNkZWZpbmUgRVZfVkVSU0lPTl9NQUpPUiA0PGJyPi0jZGVmaW5lIEVW X1ZFUlNJT05fTUlOT1IgMjQ8YnI+KyNkZWZpbmUgRVZfVkVSU0lPTl9NSU5PUiAzMjxicj4mbmJz cDs8YnI+Jm5ic3A7LyogZXZlbnRtYXNrLCByZXZlbnRzLCBldmVudHMuLi4gKi88YnI+Jm5ic3A7 ZW51bSB7PGJyPkBAIC0zNDQsNyArMzQ2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgZXZfcGVyaW9kaWM8 YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDtldl90c3RhbXAgb2Zmc2V0OyAvKiBydyAqLzxicj4m bmJzcDsgJm5ic3A7ZXZfdHN0YW1wIGludGVydmFsOyAvKiBydyAqLzxicj4tICZuYnNwO2V2X3Rz dGFtcCAoKnJlc2NoZWR1bGVfY2IpKHN0cnVjdCBldl9wZXJpb2RpYyAqdywgZXZfdHN0YW1wIG5v dykgRVZfVEhST1c7IC8qIHJ3ICovPGJyPisgJm5ic3A7ZXZfdHN0YW1wICgqcmVzY2hlZHVsZV9j Yikoc3RydWN0IGV2X3BlcmlvZGljICp3LCBldl90c3RhbXAgbm93KSBFVl9OT0VYQ0VQVDsgLyog cncgKi88YnI+Jm5ic3A7fSBldl9wZXJpb2RpYzs8YnI+Jm5ic3A7PGJyPiZuYnNwOy8qIGludm9r ZWQgd2hlbiB0aGUgZ2l2ZW4gc2lnbmFsIGhhcyBiZWVuIHJlY2VpdmVkICovPGJyPkBAIC0zOTMs MTQgKzM5NSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBldl9zdGF0PGJyPiZuYnNwO30gZXZfc3RhdDs8 YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4tI2lmIEVWX0lETEVfRU5BQkxFPGJyPiZuYnNw Oy8qIGludm9rZWQgd2hlbiB0aGUgbm90aGluZyBlbHNlIG5lZWRzIHRvIGJlIGRvbmUsIGtlZXBz IHRoZSBwcm9jZXNzIGZyb20gYmxvY2tpbmcgKi88YnI+Jm5ic3A7LyogcmV2ZW50IEVWX0lETEUg Ki88YnI+Jm5ic3A7dHlwZWRlZiBzdHJ1Y3QgZXZfaWRsZTxicj4mbmJzcDt7PGJyPiZuYnNwOyAm bmJzcDtFVl9XQVRDSEVSIChldl9pZGxlKTxicj4mbmJzcDt9IGV2X2lkbGU7PGJyPi0jZW5kaWY8 YnI+Jm5ic3A7PGJyPiZuYnNwOy8qIGludm9rZWQgZm9yIGVhY2ggcnVuIG9mIHRoZSBtYWlubG9v cCwganVzdCBiZWZvcmUgdGhlIGJsb2NraW5nIGNhbGwgKi88YnI+Jm5ic3A7LyogeW91IGNhbiBz dGlsbCBjaGFuZ2UgZXZlbnRzIGluIGFueSB3YXkgeW91IGxpa2UgKi88YnI+QEAgLTQxNywyMyAr NDE3LDE5IEBAIHR5cGVkZWYgc3RydWN0IGV2X2NoZWNrPGJyPiZuYnNwOyAmbmJzcDtFVl9XQVRD SEVSIChldl9jaGVjayk8YnI+Jm5ic3A7fSBldl9jaGVjazs8YnI+Jm5ic3A7PGJyPi0jaWYgRVZf Rk9SS19FTkFCTEU8YnI+Jm5ic3A7LyogdGhlIGNhbGxiYWNrIGdldHMgaW52b2tlZCBiZWZvcmUg Y2hlY2sgaW4gdGhlIGNoaWxkIHByb2Nlc3Mgd2hlbiBhIGZvcmsgd2FzIGRldGVjdGVkICovPGJy PiZuYnNwOy8qIHJldmVudCBFVl9GT1JLICovPGJyPiZuYnNwO3R5cGVkZWYgc3RydWN0IGV2X2Zv cms8YnI+Jm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7RVZfV0FUQ0hFUiAoZXZfZm9yayk8YnI+Jm5i c3A7fSBldl9mb3JrOzxicj4tI2VuZGlmPGJyPiZuYnNwOzxicj4tI2lmIEVWX0NMRUFOVVBfRU5B QkxFPGJyPiZuYnNwOy8qIGlzIGludm9rZWQganVzdCBiZWZvcmUgdGhlIGxvb3AgZ2V0cyBkZXN0 cm95ZWQgKi88YnI+Jm5ic3A7LyogcmV2ZW50IEVWX0NMRUFOVVAgKi88YnI+Jm5ic3A7dHlwZWRl ZiBzdHJ1Y3QgZXZfY2xlYW51cDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtFVl9XQVRDSEVS IChldl9jbGVhbnVwKTxicj4mbmJzcDt9IGV2X2NsZWFudXA7PGJyPi0jZW5kaWY8YnI+Jm5ic3A7 PGJyPiZuYnNwOyNpZiBFVl9FTUJFRF9FTkFCTEU8YnI+Jm5ic3A7LyogdXNlZCB0byBlbWJlZCBh biBldmVudCBsb29wIGluc2lkZSBhbm90aGVyICovPGJyPkBAIC00NDMsMTYgKzQzOSwxOCBAQCB0 eXBlZGVmIHN0cnVjdCBldl9lbWJlZDxicj4mbmJzcDsgJm5ic3A7RVZfV0FUQ0hFUiAoZXZfZW1i ZWQpPGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7c3RydWN0IGV2X2xvb3AgKm90aGVyOyAvKiBy byAqLzxicj4rI3VuZGVmIEVWX0lPX0VOQUJMRTxicj4rI2RlZmluZSBFVl9JT19FTkFCTEUgMTxi cj4mbmJzcDsgJm5ic3A7ZXZfaW8gaW87ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOy8qIHByaXZhdGUgKi88YnI+KyN1bmRlZiBFVl9QUkVQQVJFX0VOQUJM RTxicj4rI2RlZmluZSBFVl9QUkVQQVJFX0VOQUJMRSAxPGJyPiZuYnNwOyAmbmJzcDtldl9wcmVw YXJlIHByZXBhcmU7ICZuYnNwOyAmbmJzcDsvKiBwcml2YXRlICovPGJyPiZuYnNwOyAmbmJzcDtl dl9jaGVjayBjaGVjazsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogdW51c2VkICovPGJy PiZuYnNwOyAmbmJzcDtldl90aW1lciB0aW1lcjsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 LyogdW51c2VkICovPGJyPiZuYnNwOyAmbmJzcDtldl9wZXJpb2RpYyBwZXJpb2RpYzsgJm5ic3A7 LyogdW51c2VkICovPGJyPiZuYnNwOyAmbmJzcDtldl9pZGxlIGlkbGU7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsvKiB1bnVzZWQgKi88YnI+Jm5ic3A7ICZuYnNwO2V2X2Zvcmsg Zm9yazsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIHByaXZhdGUgKi88YnI+ LSNpZiBFVl9DTEVBTlVQX0VOQUJMRTxicj4mbmJzcDsgJm5ic3A7ZXZfY2xlYW51cCBjbGVhbnVw OyAmbmJzcDsgJm5ic3A7LyogdW51c2VkICovPGJyPi0jZW5kaWY8YnI+Jm5ic3A7fSBldl9lbWJl ZDs8YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj5AQCAtNTA1LDQyICs1MDMsNDQgQEAgdW5p b24gZXZfYW55X3dhdGNoZXI8YnI+Jm5ic3A7LyogZmxhZyBiaXRzIGZvciBldl9kZWZhdWx0X2xv b3AgYW5kIGV2X2xvb3BfbmV3ICovPGJyPiZuYnNwO2VudW0gezxicj4mbmJzcDsgJm5ic3A7Lyog dGhlIGRlZmF1bHQgKi88YnI+LSAmbmJzcDtFVkZMQUdfQVVUTyAmbmJzcDsgJm5ic3A7ICZuYnNw Oz0gMHgwMDAwMDAwMFUsIC8qIG5vdCBxdWl0ZSBhIG1hc2sgKi88YnI+KyAmbmJzcDtFVkZMQUdf QVVUTyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA9IDB4MDAwMDAwMDBVLCAvKiBub3QgcXVpdGUgYSBt YXNrICovPGJyPiZuYnNwOyAmbmJzcDsvKiBmbGFnIGJpdHMgKi88YnI+LSAmbmJzcDtFVkZMQUdf Tk9FTlYgJm5ic3A7ICZuYnNwOyA9IDB4MDEwMDAwMDBVLCAvKiBkbyBOT1QgY29uc3VsdCBlbnZp cm9ubWVudCAqLzxicj4tICZuYnNwO0VWRkxBR19GT1JLQ0hFQ0sgPSAweDAyMDAwMDAwVSwgLyog Y2hlY2sgZm9yIGEgZm9yayBpbiBlYWNoIGl0ZXJhdGlvbiAqLzxicj4rICZuYnNwO0VWRkxBR19O T0VOViAmbmJzcDsgJm5ic3A7ICZuYnNwOz0gMHgwMTAwMDAwMFUsIC8qIGRvIE5PVCBjb25zdWx0 IGVudmlyb25tZW50ICovPGJyPisgJm5ic3A7RVZGTEFHX0ZPUktDSEVDSyAmbmJzcDs9IDB4MDIw MDAwMDBVLCAvKiBjaGVjayBmb3IgYSBmb3JrIGluIGVhY2ggaXRlcmF0aW9uICovPGJyPiZuYnNw OyAmbmJzcDsvKiBkZWJ1Z2dpbmcvZmVhdHVyZSBkaXNhYmxlICovPGJyPi0gJm5ic3A7RVZGTEFH X05PSU5PVElGWSA9IDB4MDAxMDAwMDBVLCAvKiBkbyBub3QgYXR0ZW1wdCB0byB1c2UgaW5vdGlm eSAqLzxicj4rICZuYnNwO0VWRkxBR19OT0lOT1RJRlkgJm5ic3A7PSAweDAwMTAwMDAwVSwgLyog ZG8gbm90IGF0dGVtcHQgdG8gdXNlIGlub3RpZnkgKi88YnI+Jm5ic3A7I2lmIEVWX0NPTVBBVDM8 YnI+LSAmbmJzcDtFVkZMQUdfTk9TSUdGRCAmbmJzcDsgPSAwLCAvKiBjb21wYXRpYmlsaXR5IHRv IHByZS0zLjkgKi88YnI+KyAmbmJzcDtFVkZMQUdfTk9TSUdGRCAmbmJzcDsgJm5ic3A7PSAwLCAv KiBjb21wYXRpYmlsaXR5IHRvIHByZS0zLjkgKi88YnI+Jm5ic3A7I2VuZGlmPGJyPi0gJm5ic3A7 RVZGTEFHX1NJR05BTEZEICZuYnNwOz0gMHgwMDIwMDAwMFUsIC8qIGF0dGVtcHQgdG8gdXNlIHNp Z25hbGZkICovPGJyPi0gJm5ic3A7RVZGTEFHX05PU0lHTUFTSyA9IDB4MDA0MDAwMDBVLCAmbmJz cDsvKiBhdm9pZCBtb2RpZnlpbmcgdGhlIHNpZ25hbCBtYXNrICovPGJyPi0gJm5ic3A7RVZGTEFH X0FMTE9DRkQgJm5ic3A7ID0gMHgwMDgwMDAwMFUgLyogcHJlYWxsb2NhdGUgZXZlbnQgcGlwZSBk ZXNjcmlwdG9ycyAqLzxicj4rICZuYnNwO0VWRkxBR19TSUdOQUxGRCAmbmJzcDsgPSAweDAwMjAw MDAwVSwgLyogYXR0ZW1wdCB0byB1c2Ugc2lnbmFsZmQgKi88YnI+KyAmbmJzcDtFVkZMQUdfTk9T SUdNQVNLICZuYnNwOz0gMHgwMDQwMDAwMFUsIC8qIGF2b2lkIG1vZGlmeWluZyB0aGUgc2lnbmFs IG1hc2sgKi88YnI+KyAmbmJzcDtFVkZMQUdfTk9USU1FUkZEICZuYnNwOz0gMHgwMDgwMDAwMFUg Jm5ic3A7LyogYXZvaWQgY3JlYXRpbmcgYSB0aW1lcmZkICovPGJyPiZuYnNwO307PGJyPiZuYnNw Ozxicj4mbmJzcDsvKiBtZXRob2QgYml0cyB0byBiZSBvcmVkIHRvZ2V0aGVyICovPGJyPiZuYnNw O2VudW0gezxicj4tICZuYnNwO0VWQkFDS0VORF9TRUxFQ1QgJm5ic3A7PSAweDAwMDAwMDAxVSwg LyogYXZhaWxhYmxlIGp1c3QgYWJvdXQgYW55d2hlcmUgKi88YnI+LSAmbmJzcDtFVkJBQ0tFTkRf UE9MTCAmbmJzcDsgJm5ic3A7PSAweDAwMDAwMDAyVSwgLyogIXdpbiwgIWFpeCwgYnJva2VuIG9u IG9zeCAqLzxicj4tICZuYnNwO0VWQkFDS0VORF9FUE9MTCAmbmJzcDsgPSAweDAwMDAwMDA0VSwg LyogbGludXggKi88YnI+LSAmbmJzcDtFVkJBQ0tFTkRfS1FVRVVFICZuYnNwOz0gMHgwMDAwMDAw OFUsIC8qIGJzZCwgYnJva2VuIG9uIG9zeCAqLzxicj4tICZuYnNwO0VWQkFDS0VORF9ERVZQT0xM ID0gMHgwMDAwMDAxMFUsIC8qIHNvbGFyaXMgOCAqLyAvKiBOWUkgKi88YnI+LSAmbmJzcDtFVkJB Q0tFTkRfUE9SVCAmbmJzcDsgJm5ic3A7PSAweDAwMDAwMDIwVSwgLyogc29sYXJpcyAxMCAqLzxi cj4tICZuYnNwO0VWQkFDS0VORF9BTEwgJm5ic3A7ICZuYnNwOyA9IDB4MDAwMDAwM0ZVLCAvKiBh bGwga25vd24gYmFja2VuZHMgKi88YnI+LSAmbmJzcDtFVkJBQ0tFTkRfTUFTSyAmbmJzcDsgJm5i c3A7PSAweDAwMDBGRkZGVSAmbmJzcDsvKiBhbGwgZnV0dXJlIGJhY2tlbmRzICovPGJyPisgJm5i c3A7RVZCQUNLRU5EX1NFTEVDVCAmbmJzcDsgPSAweDAwMDAwMDAxVSwgLyogYXZhaWxhYmxlIGp1 c3QgYWJvdXQgYW55d2hlcmUgKi88YnI+KyAmbmJzcDtFVkJBQ0tFTkRfUE9MTCAmbmJzcDsgJm5i c3A7ID0gMHgwMDAwMDAwMlUsIC8qICF3aW4sICFhaXgsIGJyb2tlbiBvbiBvc3ggKi88YnI+KyAm bmJzcDtFVkJBQ0tFTkRfRVBPTEwgJm5ic3A7ICZuYnNwOz0gMHgwMDAwMDAwNFUsIC8qIGxpbnV4 ICovPGJyPisgJm5ic3A7RVZCQUNLRU5EX0tRVUVVRSAmbmJzcDsgPSAweDAwMDAwMDA4VSwgLyog YnNkLCBicm9rZW4gb24gb3N4ICovPGJyPisgJm5ic3A7RVZCQUNLRU5EX0RFVlBPTEwgJm5ic3A7 PSAweDAwMDAwMDEwVSwgLyogc29sYXJpcyA4ICovIC8qIE5ZSSAqLzxicj4rICZuYnNwO0VWQkFD S0VORF9QT1JUICZuYnNwOyAmbmJzcDsgPSAweDAwMDAwMDIwVSwgLyogc29sYXJpcyAxMCAqLzxi cj4rICZuYnNwO0VWQkFDS0VORF9MSU5VWEFJTyA9IDB4MDAwMDAwNDBVLCAvKiBsaW51eCBBSU8s IDQuMTkrICovPGJyPisgJm5ic3A7RVZCQUNLRU5EX0lPVVJJTkcgJm5ic3A7PSAweDAwMDAwMDgw VSwgLyogbGludXggaW9fdXJpbmcsIDUuMSsgKi88YnI+KyAmbmJzcDtFVkJBQ0tFTkRfQUxMICZu YnNwOyAmbmJzcDsgJm5ic3A7PSAweDAwMDAwMEZGVSwgLyogYWxsIGtub3duIGJhY2tlbmRzICov PGJyPisgJm5ic3A7RVZCQUNLRU5EX01BU0sgJm5ic3A7ICZuYnNwOyA9IDB4MDAwMEZGRkZVICZu YnNwOy8qIGFsbCBmdXR1cmUgYmFja2VuZHMgKi88YnI+Jm5ic3A7fTs8YnI+Jm5ic3A7PGJyPiZu YnNwOyNpZiBFVl9QUk9UT1RZUEVTPGJyPi1FVl9BUElfREVDTCBpbnQgZXZfdmVyc2lvbl9tYWpv ciAodm9pZCkgRVZfVEhST1c7PGJyPi1FVl9BUElfREVDTCBpbnQgZXZfdmVyc2lvbl9taW5vciAo dm9pZCkgRVZfVEhST1c7PGJyPitFVl9BUElfREVDTCBpbnQgZXZfdmVyc2lvbl9tYWpvciAodm9p ZCkgRVZfTk9FWENFUFQ7PGJyPitFVl9BUElfREVDTCBpbnQgZXZfdmVyc2lvbl9taW5vciAodm9p ZCkgRVZfTk9FWENFUFQ7PGJyPiZuYnNwOzxicj4tRVZfQVBJX0RFQ0wgdW5zaWduZWQgaW50IGV2 X3N1cHBvcnRlZF9iYWNrZW5kcyAodm9pZCkgRVZfVEhST1c7PGJyPi1FVl9BUElfREVDTCB1bnNp Z25lZCBpbnQgZXZfcmVjb21tZW5kZWRfYmFja2VuZHMgKHZvaWQpIEVWX1RIUk9XOzxicj4tRVZf QVBJX0RFQ0wgdW5zaWduZWQgaW50IGV2X2VtYmVkZGFibGVfYmFja2VuZHMgKHZvaWQpIEVWX1RI Uk9XOzxicj4rRVZfQVBJX0RFQ0wgdW5zaWduZWQgaW50IGV2X3N1cHBvcnRlZF9iYWNrZW5kcyAo dm9pZCkgRVZfTk9FWENFUFQ7PGJyPitFVl9BUElfREVDTCB1bnNpZ25lZCBpbnQgZXZfcmVjb21t ZW5kZWRfYmFja2VuZHMgKHZvaWQpIEVWX05PRVhDRVBUOzxicj4rRVZfQVBJX0RFQ0wgdW5zaWdu ZWQgaW50IGV2X2VtYmVkZGFibGVfYmFja2VuZHMgKHZvaWQpIEVWX05PRVhDRVBUOzxicj4mbmJz cDs8YnI+LUVWX0FQSV9ERUNMIGV2X3RzdGFtcCBldl90aW1lICh2b2lkKSBFVl9USFJPVzs8YnI+ LUVWX0FQSV9ERUNMIHZvaWQgZXZfc2xlZXAgKGV2X3RzdGFtcCBkZWxheSkgRVZfVEhST1c7IC8q IHNsZWVwIGZvciBhIHdoaWxlICovPGJyPitFVl9BUElfREVDTCBldl90c3RhbXAgZXZfdGltZSAo dm9pZCkgRVZfTk9FWENFUFQ7PGJyPitFVl9BUElfREVDTCB2b2lkIGV2X3NsZWVwIChldl90c3Rh bXAgZGVsYXkpIEVWX05PRVhDRVBUOyAvKiBzbGVlcCBmb3IgYSB3aGlsZSAqLzxicj4mbmJzcDs8 YnI+Jm5ic3A7LyogU2V0cyB0aGUgYWxsb2NhdGlvbiBmdW5jdGlvbiB0byB1c2UsIHdvcmtzIGxp a2UgcmVhbGxvYy48YnI+Jm5ic3A7ICogSXQgaXMgdXNlZCB0byBhbGxvY2F0ZSBhbmQgZnJlZSBt ZW1vcnkuPGJyPkBAIC01NDgsMjYgKzU0OCwyNiBAQCBFVl9BUElfREVDTCB2b2lkIGV2X3NsZWVw IChldl90c3RhbXAgZGVsYXkpIEVWX1RIUk9XOyAvKiBzbGVlcCBmb3IgYSB3aGlsZSAqLzxicj4m bmJzcDsgKiBvciB0YWtlIHNvbWUgcG90ZW50aWFsbHkgZGVzdHJ1Y3RpdmUgYWN0aW9uLjxicj4m bmJzcDsgKiBUaGUgZGVmYXVsdCBpcyB5b3VyIHN5c3RlbSByZWFsbG9jIGZ1bmN0aW9uLjxicj4m bmJzcDsgKi88YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfc2V0X2FsbG9jYXRvciAodm9pZCAqKCpj Yikodm9pZCAqcHRyLCBsb25nIHNpemUpIEVWX1RIUk9XKSBFVl9USFJPVzs8YnI+K0VWX0FQSV9E RUNMIHZvaWQgZXZfc2V0X2FsbG9jYXRvciAodm9pZCAqKCpjYikodm9pZCAqcHRyLCBsb25nIHNp emUpIEVWX05PRVhDRVBUKSBFVl9OT0VYQ0VQVDs8YnI+Jm5ic3A7PGJyPiZuYnNwOy8qIHNldCB0 aGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gY2FsbCBvbiBhPGJyPiZuYnNwOyAqIHJldHJ5YWJsZSBz eXNjYWxsIGVycm9yPGJyPiZuYnNwOyAqIChzdWNoIGFzIGZhaWxlZCBzZWxlY3QsIHBvbGwsIGVw b2xsX3dhaXQpPGJyPiZuYnNwOyAqLzxicj4tRVZfQVBJX0RFQ0wgdm9pZCBldl9zZXRfc3lzZXJy X2NiICh2b2lkICgqY2IpKGNvbnN0IGNoYXIgKm1zZykgRVZfVEhST1cpIEVWX1RIUk9XOzxicj4r RVZfQVBJX0RFQ0wgdm9pZCBldl9zZXRfc3lzZXJyX2NiICh2b2lkICgqY2IpKGNvbnN0IGNoYXIg Km1zZykgRVZfTk9FWENFUFQpIEVWX05PRVhDRVBUOzxicj4mbmJzcDs8YnI+Jm5ic3A7I2lmIEVW X01VTFRJUExJQ0lUWTxicj4mbmJzcDs8YnI+Jm5ic3A7LyogdGhlIGRlZmF1bHQgbG9vcCBpcyB0 aGUgb25seSBvbmUgdGhhdCBoYW5kbGVzIHNpZ25hbHMgYW5kIGNoaWxkIHdhdGNoZXJzICovPGJy PiZuYnNwOy8qIHlvdSBjYW4gY2FsbCB0aGlzIGFzIG9mdGVuIGFzIHlvdSBsaWtlICovPGJyPi1F Vl9BUElfREVDTCBzdHJ1Y3QgZXZfbG9vcCAqZXZfZGVmYXVsdF9sb29wICh1bnNpZ25lZCBpbnQg ZmxhZ3MgRVZfQ1BQICg9IDApKSBFVl9USFJPVzs8YnI+K0VWX0FQSV9ERUNMIHN0cnVjdCBldl9s b29wICpldl9kZWZhdWx0X2xvb3AgKHVuc2lnbmVkIGludCBmbGFncyBFVl9DUFAgKD0gMCkpIEVW X05PRVhDRVBUOzxicj4mbmJzcDs8YnI+Jm5ic3A7I2lmZGVmIEVWX0FQSV9TVEFUSUM8YnI+Jm5i c3A7RVZfQVBJX0RFQ0wgc3RydWN0IGV2X2xvb3AgKmV2X2RlZmF1bHRfbG9vcF9wdHI7PGJyPiZu YnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+Jm5ic3A7RVZfSU5MSU5FIHN0cnVjdCBldl9sb29wICo8 YnI+LWV2X2RlZmF1bHRfbG9vcF91Y18gKHZvaWQpIEVWX1RIUk9XPGJyPitldl9kZWZhdWx0X2xv b3BfdWNfICh2b2lkKSBFVl9OT0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtleHRl cm4gc3RydWN0IGV2X2xvb3AgKmV2X2RlZmF1bHRfbG9vcF9wdHI7PGJyPiZuYnNwOzxicj5AQCAt NTc1LDM5ICs1NzUsMzkgQEAgZXZfZGVmYXVsdF9sb29wX3VjXyAodm9pZCkgRVZfVEhST1c8YnI+ Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7RVZfSU5MSU5FIGludDxicj4tZXZfaXNfZGVmYXVs dF9sb29wIChFVl9QKSBFVl9USFJPVzxicj4rZXZfaXNfZGVmYXVsdF9sb29wIChFVl9QKSBFVl9O T0VYQ0VQVDxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtyZXR1cm4gRVZfQSA9PSBFVl9ERUZB VUxUX1VDOzxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4mbmJzcDsvKiBjcmVhdGUgYW5kIGRlc3Ry b3kgYWx0ZXJuYXRpdmUgbG9vcHMgdGhhdCBkb24ndCBoYW5kbGUgc2lnbmFscyAqLzxicj4tRVZf QVBJX0RFQ0wgc3RydWN0IGV2X2xvb3AgKmV2X2xvb3BfbmV3ICh1bnNpZ25lZCBpbnQgZmxhZ3Mg RVZfQ1BQICg9IDApKSBFVl9USFJPVzs8YnI+K0VWX0FQSV9ERUNMIHN0cnVjdCBldl9sb29wICpl dl9sb29wX25ldyAodW5zaWduZWQgaW50IGZsYWdzIEVWX0NQUCAoPSAwKSkgRVZfTk9FWENFUFQ7 PGJyPiZuYnNwOzxicj4tRVZfQVBJX0RFQ0wgZXZfdHN0YW1wIGV2X25vdyAoRVZfUCkgRVZfVEhS T1c7IC8qIHRpbWUgdy5yLnQuIHRpbWVycyBhbmQgdGhlIGV2ZW50bG9vcCwgdXBkYXRlZCBhZnRl ciBlYWNoIHBvbGwgKi88YnI+K0VWX0FQSV9ERUNMIGV2X3RzdGFtcCBldl9ub3cgKEVWX1ApIEVW X05PRVhDRVBUOyAvKiB0aW1lIHcuci50LiB0aW1lcnMgYW5kIHRoZSBldmVudGxvb3AsIHVwZGF0 ZWQgYWZ0ZXIgZWFjaCBwb2xsICovPGJyPiZuYnNwOzxicj4mbmJzcDsjZWxzZTxicj4mbmJzcDs8 YnI+LUVWX0FQSV9ERUNMIGludCBldl9kZWZhdWx0X2xvb3AgKHVuc2lnbmVkIGludCBmbGFncyBF Vl9DUFAgKD0gMCkpIEVWX1RIUk9XOyAvKiByZXR1cm5zIHRydWUgd2hlbiBzdWNjZXNzZnVsICov PGJyPitFVl9BUElfREVDTCBpbnQgZXZfZGVmYXVsdF9sb29wICh1bnNpZ25lZCBpbnQgZmxhZ3Mg RVZfQ1BQICg9IDApKSBFVl9OT0VYQ0VQVDsgLyogcmV0dXJucyB0cnVlIHdoZW4gc3VjY2Vzc2Z1 bCAqLzxicj4mbmJzcDs8YnI+Jm5ic3A7RVZfQVBJX0RFQ0wgZXZfdHN0YW1wIGV2X3J0X25vdzs8 YnI+Jm5ic3A7PGJyPiZuYnNwO0VWX0lOTElORSBldl90c3RhbXA8YnI+LWV2X25vdyAodm9pZCkg RVZfVEhST1c8YnI+K2V2X25vdyAodm9pZCkgRVZfTk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJz cDsgJm5ic3A7cmV0dXJuIGV2X3J0X25vdzs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+Jm5ic3A7 LyogbG9va3Mgd2VpcmQsIGJ1dCBldl9pc19kZWZhdWx0X2xvb3AgKEVWX0EpIHN0aWxsIHdvcmtz IGlmIHRoaXMgZXhpc3RzICovPGJyPiZuYnNwO0VWX0lOTElORSBpbnQ8YnI+LWV2X2lzX2RlZmF1 bHRfbG9vcCAodm9pZCkgRVZfVEhST1c8YnI+K2V2X2lzX2RlZmF1bHRfbG9vcCAodm9pZCkgRVZf Tk9FWENFUFQ8YnI+Jm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7cmV0dXJuIDE7PGJyPiZuYnNwO308 YnI+Jm5ic3A7PGJyPiZuYnNwOyNlbmRpZiAvKiBtdWx0aXBsaWNpdHkgKi88YnI+Jm5ic3A7PGJy Pi1FVl9BUElfREVDTCBldl90c3RhbXAgZXZfbW9ub3RvbmljX3RpbWUgKHZvaWQpIEVWX1RIUk9X Ozxicj4tRVZfQVBJX0RFQ0wgZXZfdHN0YW1wIGV2X21vbm90b25pY19ub3cgKEVWX1ApIEVWX1RI Uk9XOzxicj4rRVZfQVBJX0RFQ0wgZXZfdHN0YW1wIGV2X21vbm90b25pY190aW1lICh2b2lkKSBF Vl9OT0VYQ0VQVDs8YnI+K0VWX0FQSV9ERUNMIGV2X3RzdGFtcCBldl9tb25vdG9uaWNfbm93IChF Vl9QKSBFVl9OT0VYQ0VQVDs8YnI+Jm5ic3A7PGJyPiZuYnNwOy8qIGRlc3Ryb3kgZXZlbnQgbG9v cHMsIGFsc28gd29ya3MgZm9yIHRoZSBkZWZhdWx0IGxvb3AgKi88YnI+Jm5ic3A7RVZfQVBJX0RF Q0wgdm9pZCBldl9sb29wX2Rlc3Ryb3kgKEVWX1ApOzxicj5AQCAtNjE2LDE3ICs2MTYsMTcgQEAg RVZfQVBJX0RFQ0wgdm9pZCBldl9sb29wX2Rlc3Ryb3kgKEVWX1ApOzxicj4mbmJzcDsvKiB3aGVu IHlvdSB3YW50IHRvIHJlLXVzZSBpdCBpbiB0aGUgY2hpbGQgKi88YnI+Jm5ic3A7LyogeW91IGNh biBjYWxsIGl0IGluIGVpdGhlciB0aGUgcGFyZW50IG9yIHRoZSBjaGlsZCAqLzxicj4mbmJzcDsv KiB5b3UgY2FuIGFjdHVhbGx5IGNhbGwgaXQgYXQgYW55IHRpbWUsIGFueXdoZXJlIDopICovPGJy Pi1FVl9BUElfREVDTCB2b2lkIGV2X2xvb3BfZm9yayAoRVZfUCkgRVZfVEhST1c7PGJyPitFVl9B UElfREVDTCB2b2lkIGV2X2xvb3BfZm9yayAoRVZfUCkgRVZfTk9FWENFUFQ7PGJyPiZuYnNwOzxi cj4tRVZfQVBJX0RFQ0wgdW5zaWduZWQgaW50IGV2X2JhY2tlbmQgKEVWX1ApIEVWX1RIUk9XOyAv KiBiYWNrZW5kIGluIHVzZSBieSBsb29wICovPGJyPitFVl9BUElfREVDTCB1bnNpZ25lZCBpbnQg ZXZfYmFja2VuZCAoRVZfUCkgRVZfTk9FWENFUFQ7IC8qIGJhY2tlbmQgaW4gdXNlIGJ5IGxvb3Ag Ki88YnI+Jm5ic3A7PGJyPi1FVl9BUElfREVDTCB2b2lkIGV2X25vd191cGRhdGUgKEVWX1ApIEVW X1RIUk9XOyAvKiB1cGRhdGUgZXZlbnQgbG9vcCB0aW1lICovPGJyPitFVl9BUElfREVDTCB2b2lk IGV2X25vd191cGRhdGUgKEVWX1ApIEVWX05PRVhDRVBUOyAvKiB1cGRhdGUgZXZlbnQgbG9vcCB0 aW1lICovPGJyPiZuYnNwOzxicj4mbmJzcDsjaWYgRVZfV0FMS19FTkFCTEU8YnI+Jm5ic3A7Lyog d2FsayAoYWxtb3N0KSBhbGwgd2F0Y2hlcnMgaW4gdGhlIGxvb3Agb2YgYSBnaXZlbiB0eXBlLCBp bnZva2luZyB0aGUgKi88YnI+Jm5ic3A7LyogY2FsbGJhY2sgb24gZXZlcnkgc3VjaCB3YXRjaGVy LiBUaGUgY2FsbGJhY2sgbWlnaHQgc3RvcCB0aGUgd2F0Y2hlciwgKi88YnI+Jm5ic3A7LyogYnV0 IGRvIG5vdGhpbmcgZWxzZSB3aXRoIHRoZSBsb29wICovPGJyPi1FVl9BUElfREVDTCB2b2lkIGV2 X3dhbGsgKEVWX1BfIGludCB0eXBlcywgdm9pZCAoKmNiKShFVl9QXyBpbnQgdHlwZSwgdm9pZCAq dykpIEVWX1RIUk9XOzxicj4rRVZfQVBJX0RFQ0wgdm9pZCBldl93YWxrIChFVl9QXyBpbnQgdHlw ZXMsIHZvaWQgKCpjYikoRVZfUF8gaW50IHR5cGUsIHZvaWQgKncpKSBFVl9OT0VYQ0VQVDs8YnI+ Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4mbmJzcDsjZW5kaWYgLyogcHJvdG90eXBlcyAqLzxi cj5AQCAtNjQ2LDQ2ICs2NDYsNDcgQEAgZW51bSB7PGJyPiZuYnNwOzxicj4mbmJzcDsjaWYgRVZf UFJPVE9UWVBFUzxicj4mbmJzcDtFVl9BUElfREVDTCBpbnQgJm5ic3A7ZXZfcnVuIChFVl9QXyBp bnQgZmxhZ3MgRVZfQ1BQICg9IDApKTs8YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfYnJlYWsgKEVW X1BfIGludCBob3cgRVZfQ1BQICg9IEVWQlJFQUtfT05FKSkgRVZfVEhST1c7IC8qIGJyZWFrIG91 dCBvZiB0aGUgbG9vcCAqLzxicj4rRVZfQVBJX0RFQ0wgdm9pZCBldl9icmVhayAoRVZfUF8gaW50 IGhvdyBFVl9DUFAgKD0gRVZCUkVBS19PTkUpKSBFVl9OT0VYQ0VQVDsgLyogYnJlYWsgb3V0IG9m IHRoZSBsb29wICovPGJyPiZuYnNwOzxicj4mbmJzcDsvKjxicj4mbmJzcDsgKiByZWYvdW5yZWYg Y2FuIGJlIHVzZWQgdG8gYWRkIG9yIHJlbW92ZSBhIHJlZmNvdW50IG9uIHRoZSBtYWlubG9vcC4g ZXZlcnkgd2F0Y2hlcjxicj4mbmJzcDsgKiBrZWVwcyBvbmUgcmVmZXJlbmNlLiBpZiB5b3UgaGF2 ZSBhIGxvbmctcnVubmluZyB3YXRjaGVyIHlvdSBuZXZlciB1bnJlZ2lzdGVyIHRoYXQ8YnI+Jm5i c3A7ICogc2hvdWxkIG5vdCBrZWVwIGV2X2xvb3AgZnJvbSBydW5uaW5nLCB1bnJlZigpIGFmdGVy IHN0YXJ0aW5nLCBhbmQgcmVmKCkgYmVmb3JlIHN0b3BwaW5nLjxicj4mbmJzcDsgKi88YnI+LUVW X0FQSV9ERUNMIHZvaWQgZXZfcmVmICZuYnNwOyAoRVZfUCkgRVZfVEhST1c7PGJyPi1FVl9BUElf REVDTCB2b2lkIGV2X3VucmVmIChFVl9QKSBFVl9USFJPVzs8YnI+K0VWX0FQSV9ERUNMIHZvaWQg ZXZfcmVmICZuYnNwOyAoRVZfUCkgRVZfTk9FWENFUFQ7PGJyPitFVl9BUElfREVDTCB2b2lkIGV2 X3VucmVmIChFVl9QKSBFVl9OT0VYQ0VQVDs8YnI+Jm5ic3A7PGJyPiZuYnNwOy8qPGJyPiZuYnNw OyAqIGNvbnZlbmllbmNlIGZ1bmN0aW9uLCB3YWl0IGZvciBhIHNpbmdsZSBldmVudCwgd2l0aG91 dCByZWdpc3RlcmluZyBhbiBldmVudCB3YXRjaGVyPGJyPiZuYnNwOyAqIGlmIHRpbWVvdXQgaXMg Jmx0OyAwLCBkbyB3YWl0IGluZGVmaW5pdGVseTxicj4mbmJzcDsgKi88YnI+LUVWX0FQSV9ERUNM IHZvaWQgZXZfb25jZSAoRVZfUF8gaW50IGZkLCBpbnQgZXZlbnRzLCBldl90c3RhbXAgdGltZW91 dCwgdm9pZCAoKmNiKShpbnQgcmV2ZW50cywgdm9pZCAqYXJnKSwgdm9pZCAqYXJnKSBFVl9USFJP Vzs8YnI+K0VWX0FQSV9ERUNMIHZvaWQgZXZfb25jZSAoRVZfUF8gaW50IGZkLCBpbnQgZXZlbnRz LCBldl90c3RhbXAgdGltZW91dCwgdm9pZCAoKmNiKShpbnQgcmV2ZW50cywgdm9pZCAqYXJnKSwg dm9pZCAqYXJnKSBFVl9OT0VYQ0VQVDs8YnI+Kzxicj4rRVZfQVBJX0RFQ0wgdm9pZCBldl9pbnZv a2VfcGVuZGluZyAoRVZfUCk7IC8qIGludm9rZSBhbGwgcGVuZGluZyB3YXRjaGVycyAqLzxicj4m bmJzcDs8YnI+Jm5ic3A7IyBpZiBFVl9GRUFUVVJFX0FQSTxicj4tRVZfQVBJX0RFQ0wgdW5zaWdu ZWQgaW50IGV2X2l0ZXJhdGlvbiAoRVZfUCkgRVZfVEhST1c7IC8qIG51bWJlciBvZiBsb29wIGl0 ZXJhdGlvbnMgKi88YnI+LUVWX0FQSV9ERUNMIHVuc2lnbmVkIGludCBldl9kZXB0aCAmbmJzcDsg Jm5ic3A7IChFVl9QKSBFVl9USFJPVzsgLyogI2V2X2xvb3AgZW50ZXJzIC0gI2V2X2xvb3AgbGVh dmVzICovPGJyPi1FVl9BUElfREVDTCB2b2lkICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBl dl92ZXJpZnkgJm5ic3A7ICZuYnNwOyhFVl9QKSBFVl9USFJPVzsgLyogYWJvcnQgaWYgbG9vcCBk YXRhIGNvcnJ1cHRlZCAqLzxicj4rRVZfQVBJX0RFQ0wgdW5zaWduZWQgaW50IGV2X2l0ZXJhdGlv biAoRVZfUCkgRVZfTk9FWENFUFQ7IC8qIG51bWJlciBvZiBsb29wIGl0ZXJhdGlvbnMgKi88YnI+ K0VWX0FQSV9ERUNMIHVuc2lnbmVkIGludCBldl9kZXB0aCAmbmJzcDsgJm5ic3A7IChFVl9QKSBF Vl9OT0VYQ0VQVDsgLyogI2V2X2xvb3AgZW50ZXJzIC0gI2V2X2xvb3AgbGVhdmVzICovPGJyPitF Vl9BUElfREVDTCB2b2lkICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBldl92ZXJpZnkgJm5i c3A7ICZuYnNwOyhFVl9QKSBFVl9OT0VYQ0VQVDsgLyogYWJvcnQgaWYgbG9vcCBkYXRhIGNvcnJ1 cHRlZCAqLzxicj4mbmJzcDs8YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfc2V0X2lvX2NvbGxlY3Rf aW50ZXJ2YWwgKEVWX1BfIGV2X3RzdGFtcCBpbnRlcnZhbCkgRVZfVEhST1c7IC8qIHNsZWVwIGF0 IGxlYXN0IHRoaXMgdGltZSwgZGVmYXVsdCAwICovPGJyPi1FVl9BUElfREVDTCB2b2lkIGV2X3Nl dF90aW1lb3V0X2NvbGxlY3RfaW50ZXJ2YWwgKEVWX1BfIGV2X3RzdGFtcCBpbnRlcnZhbCkgRVZf VEhST1c7IC8qIHNsZWVwIGF0IGxlYXN0IHRoaXMgdGltZSwgZGVmYXVsdCAwICovPGJyPitFVl9B UElfREVDTCB2b2lkIGV2X3NldF9pb19jb2xsZWN0X2ludGVydmFsIChFVl9QXyBldl90c3RhbXAg aW50ZXJ2YWwpIEVWX05PRVhDRVBUOyAvKiBzbGVlcCBhdCBsZWFzdCB0aGlzIHRpbWUsIGRlZmF1 bHQgMCAqLzxicj4rRVZfQVBJX0RFQ0wgdm9pZCBldl9zZXRfdGltZW91dF9jb2xsZWN0X2ludGVy dmFsIChFVl9QXyBldl90c3RhbXAgaW50ZXJ2YWwpIEVWX05PRVhDRVBUOyAvKiBzbGVlcCBhdCBs ZWFzdCB0aGlzIHRpbWUsIGRlZmF1bHQgMCAqLzxicj4mbmJzcDs8YnI+Jm5ic3A7LyogYWR2YW5j ZWQgc3R1ZmYgZm9yIHRocmVhZGluZyBldGMuIHN1cHBvcnQsIHNlZSBkb2NzICovPGJyPi1FVl9B UElfREVDTCB2b2lkIGV2X3NldF91c2VyZGF0YSAoRVZfUF8gdm9pZCAqZGF0YSkgRVZfVEhST1c7 PGJyPi1FVl9BUElfREVDTCB2b2lkICpldl91c2VyZGF0YSAoRVZfUCkgRVZfVEhST1c7PGJyPitF Vl9BUElfREVDTCB2b2lkIGV2X3NldF91c2VyZGF0YSAoRVZfUF8gdm9pZCAqZGF0YSkgRVZfTk9F WENFUFQ7PGJyPitFVl9BUElfREVDTCB2b2lkICpldl91c2VyZGF0YSAoRVZfUCkgRVZfTk9FWENF UFQ7PGJyPiZuYnNwO3R5cGVkZWYgdm9pZCAoKmV2X2xvb3BfY2FsbGJhY2spKEVWX1ApOzxicj4t RVZfQVBJX0RFQ0wgdm9pZCBldl9zZXRfaW52b2tlX3BlbmRpbmdfY2IgKEVWX1BfIGV2X2xvb3Bf Y2FsbGJhY2sgaW52b2tlX3BlbmRpbmdfY2IpIEVWX1RIUk9XOzxicj4rRVZfQVBJX0RFQ0wgdm9p ZCBldl9zZXRfaW52b2tlX3BlbmRpbmdfY2IgKEVWX1BfIGV2X2xvb3BfY2FsbGJhY2sgaW52b2tl X3BlbmRpbmdfY2IpIEVWX05PRVhDRVBUOzxicj4mbmJzcDsvKiBDKysgZG9lc24ndCBhbGxvdyB0 aGUgdXNlIG9mIHRoZSBldl9sb29wX2NhbGxiYWNrIHR5cGVkZWYgaGVyZSwgc28gd2UgbmVlZCB0 byBzcGVsbCBpdCBvdXQgKi88YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfc2V0X2xvb3BfcmVsZWFz ZV9jYiAoRVZfUF8gdm9pZCAoKnJlbGVhc2UpKEVWX1ApIEVWX1RIUk9XLCB2b2lkICgqYWNxdWly ZSkoRVZfUCkgRVZfVEhST1cpIEVWX1RIUk9XOzxicj4rRVZfQVBJX0RFQ0wgdm9pZCBldl9zZXRf bG9vcF9yZWxlYXNlX2NiIChFVl9QXyB2b2lkICgqcmVsZWFzZSkoRVZfUCkgRVZfTk9FWENFUFQs IHZvaWQgKCphY3F1aXJlKShFVl9QKSBFVl9OT0VYQ0VQVCkgRVZfTk9FWENFUFQ7PGJyPiZuYnNw Ozxicj4tRVZfQVBJX0RFQ0wgdW5zaWduZWQgaW50IGV2X3BlbmRpbmdfY291bnQgKEVWX1ApIEVW X1RIUk9XOyAvKiBudW1iZXIgb2YgcGVuZGluZyBldmVudHMsIGlmIGFueSAqLzxicj4tRVZfQVBJ X0RFQ0wgdm9pZCBldl9pbnZva2VfcGVuZGluZyAoRVZfUCk7IC8qIGludm9rZSBhbGwgcGVuZGlu ZyB3YXRjaGVycyAqLzxicj4rRVZfQVBJX0RFQ0wgdW5zaWduZWQgaW50IGV2X3BlbmRpbmdfY291 bnQgKEVWX1ApIEVWX05PRVhDRVBUOyAvKiBudW1iZXIgb2YgcGVuZGluZyBldmVudHMsIGlmIGFu eSAqLzxicj4mbmJzcDs8YnI+Jm5ic3A7Lyo8YnI+Jm5ic3A7ICogc3RvcC9zdGFydCB0aGUgdGlt ZXIgaGFuZGxpbmcuPGJyPiZuYnNwOyAqLzxicj4tRVZfQVBJX0RFQ0wgdm9pZCBldl9zdXNwZW5k IChFVl9QKSBFVl9USFJPVzs8YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfcmVzdW1lICZuYnNwOyhF Vl9QKSBFVl9USFJPVzs8YnI+K0VWX0FQSV9ERUNMIHZvaWQgZXZfc3VzcGVuZCAoRVZfUCkgRVZf Tk9FWENFUFQ7PGJyPitFVl9BUElfREVDTCB2b2lkIGV2X3Jlc3VtZSAmbmJzcDsoRVZfUCkgRVZf Tk9FWENFUFQ7PGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+Jm5ic3A7I2VuZGlmPGJyPkBA IC02OTksNiArNzAwLDcgQEAgRVZfQVBJX0RFQ0wgdm9pZCBldl9yZXN1bWUgJm5ic3A7KEVWX1Ap IEVWX1RIUk9XOzxicj4mbmJzcDsgJm5ic3A7ZXZfc2V0X2NiICgoZXYpLCBjYl8pOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1w8YnI+Jm5ic3A7fSB3aGlsZSAoMCk8 YnI+Jm5ic3A7PGJyPisjZGVmaW5lIGV2X2lvX21vZGlmeShldixldmVudHNfKSAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBkbyB7IChldiktJmd0O2V2ZW50cyA9IChl diktJmd0O2V2ZW50cyAmYW1wOyBFVl9fSU9GRFNFVCB8IChldmVudHNfKTsgfSB3aGlsZSAoMCk8 YnI+Jm5ic3A7I2RlZmluZSBldl9pb19zZXQoZXYsZmRfLGV2ZW50c18pICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZG8geyAoZXYpLSZndDtmZCA9IChmZF8pOyAoZXYp LSZndDtldmVudHMgPSAoZXZlbnRzXykgfCBFVl9fSU9GRFNFVDsgfSB3aGlsZSAoMCk8YnI+Jm5i c3A7I2RlZmluZSBldl90aW1lcl9zZXQoZXYsYWZ0ZXJfLHJlcGVhdF8pICZuYnNwOyAmbmJzcDsg Jm5ic3A7ZG8geyAoKGV2X3dhdGNoZXJfdGltZSAqKShldikpLSZndDthdCA9IChhZnRlcl8pOyAo ZXYpLSZndDtyZXBlYXQgPSAocmVwZWF0Xyk7IH0gd2hpbGUgKDApPGJyPiZuYnNwOyNkZWZpbmUg ZXZfcGVyaW9kaWNfc2V0KGV2LG9mc18saXZhbF8scmNiXykgJm5ic3A7ZG8geyAoZXYpLSZndDtv ZmZzZXQgPSAob2ZzXyk7IChldiktJmd0O2ludGVydmFsID0gKGl2YWxfKTsgKGV2KS0mZ3Q7cmVz Y2hlZHVsZV9jYiA9IChyY2JfKTsgfSB3aGlsZSAoMCk8YnI+QEAgLTc0NCw2ICs3NDYsNyBAQCBF Vl9BUElfREVDTCB2b2lkIGV2X3Jlc3VtZSAmbmJzcDsoRVZfUCkgRVZfVEhST1c7PGJyPiZuYnNw OyNkZWZpbmUgZXZfcGVyaW9kaWNfYXQoZXYpICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICgrKChldl93YXRjaGVyX3RpbWUgKiko ZXYpKS0mZ3Q7YXQpPGJyPiZuYnNwOzxicj4mbmJzcDsjaWZuZGVmIGV2X3NldF9jYjxicj4rLyog bWVtbW92ZSBpcyB1c2VkIGhlcmUgdG8gYXZvaWQgc3RyaWN0IGFsaWFzaW5nIHZpb2xhdGlvbnMs IGFuZCBob3BlZnVsbHkgaXMgb3B0aW1pemVkIG91dCBieSBhbnkgcmVhc29uYWJsZSBjb21waWxl ciAqLzxicj4mbmJzcDsjIGRlZmluZSBldl9zZXRfY2IoZXYsY2JfKSAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAoZXZfY2JfIChl dikgPSAoY2JfKSwgbWVtbW92ZSAoJmFtcDsoKGV2X3dhdGNoZXIgKikoZXYpKS0mZ3Q7Y2IsICZh bXA7ZXZfY2JfIChldiksIHNpemVvZiAoZXZfY2JfIChldikpKSk8YnI+Jm5ic3A7I2VuZGlmPGJy PiZuYnNwOzxicj5AQCAtNzUzLDE4ICs3NTYsMTggQEAgRVZfQVBJX0RFQ0wgdm9pZCBldl9yZXN1 bWUgJm5ic3A7KEVWX1ApIEVWX1RIUk9XOzxicj4mbmJzcDs8YnI+Jm5ic3A7LyogZmVlZHMgYW4g ZXZlbnQgaW50byBhIHdhdGNoZXIgYXMgaWYgdGhlIGV2ZW50IGFjdHVhbGx5IG9jY3VycmVkICov PGJyPiZuYnNwOy8qIGFjY2VwdHMgYW55IGV2X3dhdGNoZXIgdHlwZSAqLzxicj4tRVZfQVBJX0RF Q0wgaW50ICZuYnNwO2V2X2FjdGl2ZWNudCAmbmJzcDsgJm5ic3A7ICZuYnNwOyhFVl9QKSBFVl9U SFJPVzs8YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfZmVlZF9ldmVudCAmbmJzcDsgJm5ic3A7IChF Vl9QXyB2b2lkICp3LCBpbnQgcmV2ZW50cykgRVZfVEhST1c7PGJyPi1FVl9BUElfREVDTCB2b2lk IGV2X2ZlZWRfZmRfZXZlbnQgJm5ic3A7KEVWX1BfIGludCBmZCwgaW50IHJldmVudHMpIEVWX1RI Uk9XOzxicj4rRVZfQVBJX0RFQ0wgaW50ICZuYnNwO2V2X2FjdGl2ZWNudCAmbmJzcDsgJm5ic3A7 ICZuYnNwOyhFVl9QKSBFVl9OT0VYQ0VQVDs8YnI+K0VWX0FQSV9ERUNMIHZvaWQgZXZfZmVlZF9l dmVudCAmbmJzcDsgJm5ic3A7IChFVl9QXyB2b2lkICp3LCBpbnQgcmV2ZW50cykgRVZfTk9FWENF UFQ7PGJyPitFVl9BUElfREVDTCB2b2lkIGV2X2ZlZWRfZmRfZXZlbnQgJm5ic3A7KEVWX1BfIGlu dCBmZCwgaW50IHJldmVudHMpIEVWX05PRVhDRVBUOzxicj4mbmJzcDsjaWYgRVZfU0lHTkFMX0VO QUJMRTxicj4tRVZfQVBJX0RFQ0wgdm9pZCBldl9mZWVkX3NpZ25hbCAmbmJzcDsgJm5ic3A7KGlu dCBzaWdudW0pIEVWX1RIUk9XOzxicj4tRVZfQVBJX0RFQ0wgdm9pZCBldl9mZWVkX3NpZ25hbF9l dmVudCAoRVZfUF8gaW50IHNpZ251bSkgRVZfVEhST1c7PGJyPitFVl9BUElfREVDTCB2b2lkIGV2 X2ZlZWRfc2lnbmFsICZuYnNwOyAmbmJzcDsoaW50IHNpZ251bSkgRVZfTk9FWENFUFQ7PGJyPitF Vl9BUElfREVDTCB2b2lkIGV2X2ZlZWRfc2lnbmFsX2V2ZW50IChFVl9QXyBpbnQgc2lnbnVtKSBF Vl9OT0VYQ0VQVDs8YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwO0VWX0FQSV9ERUNMIHZvaWQgZXZf aW52b2tlICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAoRVZfUF8gdm9pZCAqdywgaW50IHJl dmVudHMpOzxicj4tRVZfQVBJX0RFQ0wgaW50ICZuYnNwO2V2X2NsZWFyX3BlbmRpbmcgJm5ic3A7 KEVWX1BfIHZvaWQgKncpIEVWX1RIUk9XOzxicj4rRVZfQVBJX0RFQ0wgaW50ICZuYnNwO2V2X2Ns ZWFyX3BlbmRpbmcgJm5ic3A7KEVWX1BfIHZvaWQgKncpIEVWX05PRVhDRVBUOzxicj4mbmJzcDs8 YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfaW9fc3RhcnQgJm5ic3A7ICZuYnNwOyAmbmJzcDsgKEVW X1BfIGV2X2lvICp3KSBFVl9USFJPVzs8YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfaW9fc3RvcCAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsoRVZfUF8gZXZfaW8gKncpIEVWX1RIUk9XOzxicj4r RVZfQVBJX0RFQ0wgdm9pZCBldl9pb19zdGFydCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAoRVZfUF8g ZXZfaW8gKncpIEVWX05PRVhDRVBUOzxicj4rRVZfQVBJX0RFQ0wgdm9pZCBldl9pb19zdG9wICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyhFVl9QXyBldl9pbyAqdykgRVZfTk9FWENFUFQ7PGJy PiZuYnNwOzxicj4mbmJzcDsvKjxicj4mbmJzcDsgKiBGZCBpcyBhYm91dCB0byBjbG9zZS4gTWFr ZSBzdXJlIHRoYXQgbGliZXYgd29uJ3QgZG8gYW55dGhpbmcgZnVubnk8YnI+QEAgLTc3Miw3NSAr Nzc1LDc1IEBAIEVWX0FQSV9ERUNMIHZvaWQgZXZfaW9fc3RvcCAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsoRVZfUF8gZXZfaW8gKncpIEVWX1RIUk9XOzxicj4mbmJzcDsgKiBwcmlvciB0byBj bG9zZSgpLjxicj4mbmJzcDsgKiBOb3RlOiBpZiBmZCB3YXMgcmV1c2VkIGFuZCBhZGRlZCBhZ2Fp biBpdCBqdXN0IHdvcmtzLjxicj4mbmJzcDsgKi88YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfaW9f Y2xvc2luZyAmbmJzcDsgJm5ic3A7IChFVl9QXyBpbnQgZmQsIGludCByZXZlbnRzKSBFVl9USFJP Vzs8YnI+K0VWX0FQSV9ERUNMIHZvaWQgZXZfaW9fY2xvc2luZyAmbmJzcDsgJm5ic3A7IChFVl9Q XyBpbnQgZmQsIGludCByZXZlbnRzKSBFVl9OT0VYQ0VQVDs8YnI+Jm5ic3A7PGJyPi1FVl9BUElf REVDTCB2b2lkIGV2X3RpbWVyX3N0YXJ0ICZuYnNwOyAmbmJzcDsoRVZfUF8gZXZfdGltZXIgKncp IEVWX1RIUk9XOzxicj4tRVZfQVBJX0RFQ0wgdm9pZCBldl90aW1lcl9zdG9wICZuYnNwOyAmbmJz cDsgKEVWX1BfIGV2X3RpbWVyICp3KSBFVl9USFJPVzs8YnI+K0VWX0FQSV9ERUNMIHZvaWQgZXZf dGltZXJfc3RhcnQgJm5ic3A7ICZuYnNwOyhFVl9QXyBldl90aW1lciAqdykgRVZfTk9FWENFUFQ7 PGJyPitFVl9BUElfREVDTCB2b2lkIGV2X3RpbWVyX3N0b3AgJm5ic3A7ICZuYnNwOyAoRVZfUF8g ZXZfdGltZXIgKncpIEVWX05PRVhDRVBUOzxicj4mbmJzcDsvKiBzdG9wcyBpZiBhY3RpdmUgYW5k IG5vIHJlcGVhdCwgcmVzdGFydHMgaWYgYWN0aXZlIGFuZCByZXBlYXRpbmcsIHN0YXJ0cyBpZiBp bmFjdGl2ZSBhbmQgcmVwZWF0aW5nICovPGJyPi1FVl9BUElfREVDTCB2b2lkIGV2X3RpbWVyX2Fn YWluICZuYnNwOyAmbmJzcDsoRVZfUF8gZXZfdGltZXIgKncpIEVWX1RIUk9XOzxicj4rRVZfQVBJ X0RFQ0wgdm9pZCBldl90aW1lcl9hZ2FpbiAmbmJzcDsgJm5ic3A7KEVWX1BfIGV2X3RpbWVyICp3 KSBFVl9OT0VYQ0VQVDs8YnI+Jm5ic3A7LyogcmV0dXJuIHJlbWFpbmluZyB0aW1lICovPGJyPi1F Vl9BUElfREVDTCBldl90c3RhbXAgZXZfdGltZXJfcmVtYWluaW5nIChFVl9QXyBldl90aW1lciAq dykgRVZfVEhST1c7PGJyPitFVl9BUElfREVDTCBldl90c3RhbXAgZXZfdGltZXJfcmVtYWluaW5n IChFVl9QXyBldl90aW1lciAqdykgRVZfTk9FWENFUFQ7PGJyPiZuYnNwOzxicj4mbmJzcDsjaWYg RVZfUEVSSU9ESUNfRU5BQkxFPGJyPi1FVl9BUElfREVDTCB2b2lkIGV2X3BlcmlvZGljX3N0YXJ0 IChFVl9QXyBldl9wZXJpb2RpYyAqdykgRVZfVEhST1c7PGJyPi1FVl9BUElfREVDTCB2b2lkIGV2 X3BlcmlvZGljX3N0b3AgJm5ic3A7KEVWX1BfIGV2X3BlcmlvZGljICp3KSBFVl9USFJPVzs8YnI+ LUVWX0FQSV9ERUNMIHZvaWQgZXZfcGVyaW9kaWNfYWdhaW4gKEVWX1BfIGV2X3BlcmlvZGljICp3 KSBFVl9USFJPVzs8YnI+K0VWX0FQSV9ERUNMIHZvaWQgZXZfcGVyaW9kaWNfc3RhcnQgKEVWX1Bf IGV2X3BlcmlvZGljICp3KSBFVl9OT0VYQ0VQVDs8YnI+K0VWX0FQSV9ERUNMIHZvaWQgZXZfcGVy aW9kaWNfc3RvcCAmbmJzcDsoRVZfUF8gZXZfcGVyaW9kaWMgKncpIEVWX05PRVhDRVBUOzxicj4r RVZfQVBJX0RFQ0wgdm9pZCBldl9wZXJpb2RpY19hZ2FpbiAoRVZfUF8gZXZfcGVyaW9kaWMgKncp IEVWX05PRVhDRVBUOzxicj4mbmJzcDsjZW5kaWY8YnI+Jm5ic3A7PGJyPiZuYnNwOy8qIG9ubHkg c3VwcG9ydGVkIGluIHRoZSBkZWZhdWx0IGxvb3AgKi88YnI+Jm5ic3A7I2lmIEVWX1NJR05BTF9F TkFCTEU8YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfc2lnbmFsX3N0YXJ0ICZuYnNwOyAoRVZfUF8g ZXZfc2lnbmFsICp3KSBFVl9USFJPVzs8YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfc2lnbmFsX3N0 b3AgJm5ic3A7ICZuYnNwOyhFVl9QXyBldl9zaWduYWwgKncpIEVWX1RIUk9XOzxicj4rRVZfQVBJ X0RFQ0wgdm9pZCBldl9zaWduYWxfc3RhcnQgJm5ic3A7IChFVl9QXyBldl9zaWduYWwgKncpIEVW X05PRVhDRVBUOzxicj4rRVZfQVBJX0RFQ0wgdm9pZCBldl9zaWduYWxfc3RvcCAmbmJzcDsgJm5i c3A7KEVWX1BfIGV2X3NpZ25hbCAqdykgRVZfTk9FWENFUFQ7PGJyPiZuYnNwOyNlbmRpZjxicj4m bmJzcDs8YnI+Jm5ic3A7Lyogb25seSBzdXBwb3J0ZWQgaW4gdGhlIGRlZmF1bHQgbG9vcCAqLzxi cj4mbmJzcDsjIGlmIEVWX0NISUxEX0VOQUJMRTxicj4tRVZfQVBJX0RFQ0wgdm9pZCBldl9jaGls ZF9zdGFydCAmbmJzcDsgJm5ic3A7KEVWX1BfIGV2X2NoaWxkICp3KSBFVl9USFJPVzs8YnI+LUVW X0FQSV9ERUNMIHZvaWQgZXZfY2hpbGRfc3RvcCAmbmJzcDsgJm5ic3A7IChFVl9QXyBldl9jaGls ZCAqdykgRVZfVEhST1c7PGJyPitFVl9BUElfREVDTCB2b2lkIGV2X2NoaWxkX3N0YXJ0ICZuYnNw OyAmbmJzcDsoRVZfUF8gZXZfY2hpbGQgKncpIEVWX05PRVhDRVBUOzxicj4rRVZfQVBJX0RFQ0wg dm9pZCBldl9jaGlsZF9zdG9wICZuYnNwOyAmbmJzcDsgKEVWX1BfIGV2X2NoaWxkICp3KSBFVl9O T0VYQ0VQVDs8YnI+Jm5ic3A7IyBlbmRpZjxicj4mbmJzcDs8YnI+Jm5ic3A7IyBpZiBFVl9TVEFU X0VOQUJMRTxicj4tRVZfQVBJX0RFQ0wgdm9pZCBldl9zdGF0X3N0YXJ0ICZuYnNwOyAmbmJzcDsg KEVWX1BfIGV2X3N0YXQgKncpIEVWX1RIUk9XOzxicj4tRVZfQVBJX0RFQ0wgdm9pZCBldl9zdGF0 X3N0b3AgJm5ic3A7ICZuYnNwOyAmbmJzcDsoRVZfUF8gZXZfc3RhdCAqdykgRVZfVEhST1c7PGJy Pi1FVl9BUElfREVDTCB2b2lkIGV2X3N0YXRfc3RhdCAmbmJzcDsgJm5ic3A7ICZuYnNwOyhFVl9Q XyBldl9zdGF0ICp3KSBFVl9USFJPVzs8YnI+K0VWX0FQSV9ERUNMIHZvaWQgZXZfc3RhdF9zdGFy dCAmbmJzcDsgJm5ic3A7IChFVl9QXyBldl9zdGF0ICp3KSBFVl9OT0VYQ0VQVDs8YnI+K0VWX0FQ SV9ERUNMIHZvaWQgZXZfc3RhdF9zdG9wICZuYnNwOyAmbmJzcDsgJm5ic3A7KEVWX1BfIGV2X3N0 YXQgKncpIEVWX05PRVhDRVBUOzxicj4rRVZfQVBJX0RFQ0wgdm9pZCBldl9zdGF0X3N0YXQgJm5i c3A7ICZuYnNwOyAmbmJzcDsoRVZfUF8gZXZfc3RhdCAqdykgRVZfTk9FWENFUFQ7PGJyPiZuYnNw OyMgZW5kaWY8YnI+Jm5ic3A7PGJyPiZuYnNwOyMgaWYgRVZfSURMRV9FTkFCTEU8YnI+LUVWX0FQ SV9ERUNMIHZvaWQgZXZfaWRsZV9zdGFydCAmbmJzcDsgJm5ic3A7IChFVl9QXyBldl9pZGxlICp3 KSBFVl9USFJPVzs8YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfaWRsZV9zdG9wICZuYnNwOyAmbmJz cDsgJm5ic3A7KEVWX1BfIGV2X2lkbGUgKncpIEVWX1RIUk9XOzxicj4rRVZfQVBJX0RFQ0wgdm9p ZCBldl9pZGxlX3N0YXJ0ICZuYnNwOyAmbmJzcDsgKEVWX1BfIGV2X2lkbGUgKncpIEVWX05PRVhD RVBUOzxicj4rRVZfQVBJX0RFQ0wgdm9pZCBldl9pZGxlX3N0b3AgJm5ic3A7ICZuYnNwOyAmbmJz cDsoRVZfUF8gZXZfaWRsZSAqdykgRVZfTk9FWENFUFQ7PGJyPiZuYnNwOyMgZW5kaWY8YnI+Jm5i c3A7PGJyPiZuYnNwOyNpZiBFVl9QUkVQQVJFX0VOQUJMRTxicj4tRVZfQVBJX0RFQ0wgdm9pZCBl dl9wcmVwYXJlX3N0YXJ0ICZuYnNwOyhFVl9QXyBldl9wcmVwYXJlICp3KSBFVl9USFJPVzs8YnI+ LUVWX0FQSV9ERUNMIHZvaWQgZXZfcHJlcGFyZV9zdG9wICZuYnNwOyAoRVZfUF8gZXZfcHJlcGFy ZSAqdykgRVZfVEhST1c7PGJyPitFVl9BUElfREVDTCB2b2lkIGV2X3ByZXBhcmVfc3RhcnQgJm5i c3A7KEVWX1BfIGV2X3ByZXBhcmUgKncpIEVWX05PRVhDRVBUOzxicj4rRVZfQVBJX0RFQ0wgdm9p ZCBldl9wcmVwYXJlX3N0b3AgJm5ic3A7IChFVl9QXyBldl9wcmVwYXJlICp3KSBFVl9OT0VYQ0VQ VDs8YnI+Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4mbmJzcDsjaWYgRVZfQ0hFQ0tfRU5BQkxF PGJyPi1FVl9BUElfREVDTCB2b2lkIGV2X2NoZWNrX3N0YXJ0ICZuYnNwOyAmbmJzcDsoRVZfUF8g ZXZfY2hlY2sgKncpIEVWX1RIUk9XOzxicj4tRVZfQVBJX0RFQ0wgdm9pZCBldl9jaGVja19zdG9w ICZuYnNwOyAmbmJzcDsgKEVWX1BfIGV2X2NoZWNrICp3KSBFVl9USFJPVzs8YnI+K0VWX0FQSV9E RUNMIHZvaWQgZXZfY2hlY2tfc3RhcnQgJm5ic3A7ICZuYnNwOyhFVl9QXyBldl9jaGVjayAqdykg RVZfTk9FWENFUFQ7PGJyPitFVl9BUElfREVDTCB2b2lkIGV2X2NoZWNrX3N0b3AgJm5ic3A7ICZu YnNwOyAoRVZfUF8gZXZfY2hlY2sgKncpIEVWX05PRVhDRVBUOzxicj4mbmJzcDsjZW5kaWY8YnI+ Jm5ic3A7PGJyPiZuYnNwOyMgaWYgRVZfRk9SS19FTkFCTEU8YnI+LUVWX0FQSV9ERUNMIHZvaWQg ZXZfZm9ya19zdGFydCAmbmJzcDsgJm5ic3A7IChFVl9QXyBldl9mb3JrICp3KSBFVl9USFJPVzs8 YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfZm9ya19zdG9wICZuYnNwOyAmbmJzcDsgJm5ic3A7KEVW X1BfIGV2X2ZvcmsgKncpIEVWX1RIUk9XOzxicj4rRVZfQVBJX0RFQ0wgdm9pZCBldl9mb3JrX3N0 YXJ0ICZuYnNwOyAmbmJzcDsgKEVWX1BfIGV2X2ZvcmsgKncpIEVWX05PRVhDRVBUOzxicj4rRVZf QVBJX0RFQ0wgdm9pZCBldl9mb3JrX3N0b3AgJm5ic3A7ICZuYnNwOyAmbmJzcDsoRVZfUF8gZXZf Zm9yayAqdykgRVZfTk9FWENFUFQ7PGJyPiZuYnNwOyMgZW5kaWY8YnI+Jm5ic3A7PGJyPiZuYnNw OyMgaWYgRVZfQ0xFQU5VUF9FTkFCTEU8YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfY2xlYW51cF9z dGFydCAmbmJzcDsoRVZfUF8gZXZfY2xlYW51cCAqdykgRVZfVEhST1c7PGJyPi1FVl9BUElfREVD TCB2b2lkIGV2X2NsZWFudXBfc3RvcCAmbmJzcDsgKEVWX1BfIGV2X2NsZWFudXAgKncpIEVWX1RI Uk9XOzxicj4rRVZfQVBJX0RFQ0wgdm9pZCBldl9jbGVhbnVwX3N0YXJ0ICZuYnNwOyhFVl9QXyBl dl9jbGVhbnVwICp3KSBFVl9OT0VYQ0VQVDs8YnI+K0VWX0FQSV9ERUNMIHZvaWQgZXZfY2xlYW51 cF9zdG9wICZuYnNwOyAoRVZfUF8gZXZfY2xlYW51cCAqdykgRVZfTk9FWENFUFQ7PGJyPiZuYnNw OyMgZW5kaWY8YnI+Jm5ic3A7PGJyPiZuYnNwOyMgaWYgRVZfRU1CRURfRU5BQkxFPGJyPiZuYnNw Oy8qIG9ubHkgc3VwcG9ydGVkIHdoZW4gbG9vcCB0byBiZSBlbWJlZGRlZCBpcyBpbiBmYWN0IGVt YmVkZGFibGUgKi88YnI+LUVWX0FQSV9ERUNMIHZvaWQgZXZfZW1iZWRfc3RhcnQgJm5ic3A7ICZu YnNwOyhFVl9QXyBldl9lbWJlZCAqdykgRVZfVEhST1c7PGJyPi1FVl9BUElfREVDTCB2b2lkIGV2 X2VtYmVkX3N0b3AgJm5ic3A7ICZuYnNwOyAoRVZfUF8gZXZfZW1iZWQgKncpIEVWX1RIUk9XOzxi cj4tRVZfQVBJX0RFQ0wgdm9pZCBldl9lbWJlZF9zd2VlcCAmbmJzcDsgJm5ic3A7KEVWX1BfIGV2 X2VtYmVkICp3KSBFVl9USFJPVzs8YnI+K0VWX0FQSV9ERUNMIHZvaWQgZXZfZW1iZWRfc3RhcnQg Jm5ic3A7ICZuYnNwOyhFVl9QXyBldl9lbWJlZCAqdykgRVZfTk9FWENFUFQ7PGJyPitFVl9BUElf REVDTCB2b2lkIGV2X2VtYmVkX3N0b3AgJm5ic3A7ICZuYnNwOyAoRVZfUF8gZXZfZW1iZWQgKncp IEVWX05PRVhDRVBUOzxicj4rRVZfQVBJX0RFQ0wgdm9pZCBldl9lbWJlZF9zd2VlcCAmbmJzcDsg Jm5ic3A7KEVWX1BfIGV2X2VtYmVkICp3KSBFVl9OT0VYQ0VQVDs8YnI+Jm5ic3A7IyBlbmRpZjxi cj4mbmJzcDs8YnI+Jm5ic3A7IyBpZiBFVl9BU1lOQ19FTkFCTEU8YnI+LUVWX0FQSV9ERUNMIHZv aWQgZXZfYXN5bmNfc3RhcnQgJm5ic3A7ICZuYnNwOyhFVl9QXyBldl9hc3luYyAqdykgRVZfVEhS T1c7PGJyPi1FVl9BUElfREVDTCB2b2lkIGV2X2FzeW5jX3N0b3AgJm5ic3A7ICZuYnNwOyAoRVZf UF8gZXZfYXN5bmMgKncpIEVWX1RIUk9XOzxicj4tRVZfQVBJX0RFQ0wgdm9pZCBldl9hc3luY19z ZW5kICZuYnNwOyAmbmJzcDsgKEVWX1BfIGV2X2FzeW5jICp3KSBFVl9USFJPVzs8YnI+K0VWX0FQ SV9ERUNMIHZvaWQgZXZfYXN5bmNfc3RhcnQgJm5ic3A7ICZuYnNwOyhFVl9QXyBldl9hc3luYyAq dykgRVZfTk9FWENFUFQ7PGJyPitFVl9BUElfREVDTCB2b2lkIGV2X2FzeW5jX3N0b3AgJm5ic3A7 ICZuYnNwOyAoRVZfUF8gZXZfYXN5bmMgKncpIEVWX05PRVhDRVBUOzxicj4rRVZfQVBJX0RFQ0wg dm9pZCBldl9hc3luY19zZW5kICZuYnNwOyAmbmJzcDsgKEVWX1BfIGV2X2FzeW5jICp3KSBFVl9O T0VYQ0VQVDs8YnI+Jm5ic3A7IyBlbmRpZjxicj4mbmJzcDs8YnI+Jm5ic3A7I2lmIEVWX0NPTVBB VDM8YnI+ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2LnBvZCBiL3RoaXJkX3BhcnR5 L2xpYmV2L2V2LnBvZDxicj5pbmRleCA2MzNiODdlYTUuLmU0ZWViNTA3MyAxMDA2NDQ8YnI+LS0t IGEvdGhpcmRfcGFydHkvbGliZXYvZXYucG9kPGJyPisrKyBiL3RoaXJkX3BhcnR5L2xpYmV2L2V2 LnBvZDxicj5AQCAtMTA3LDEwICsxMDcsMTAgQEAgd2F0Y2hlci48YnI+Jm5ic3A7PGJyPiZuYnNw Oz1oZWFkMiBGRUFUVVJFUzxicj4mbmJzcDs8YnI+LUxpYmV2IHN1cHBvcnRzIEMmbHQ7c2VsZWN0 Jmd0OywgQyZsdDtwb2xsJmd0OywgdGhlIExpbnV4LXNwZWNpZmljIEMmbHQ7ZXBvbGwmZ3Q7LCB0 aGU8YnI+LUJTRC1zcGVjaWZpYyBDJmx0O2txdWV1ZSZndDsgYW5kIHRoZSBTb2xhcmlzLXNwZWNp ZmljIGV2ZW50IHBvcnQgbWVjaGFuaXNtczxicj4tZm9yIGZpbGUgZGVzY3JpcHRvciBldmVudHMg KEMmbHQ7ZXZfaW8mZ3Q7KSwgdGhlIExpbnV4IEMmbHQ7aW5vdGlmeSZndDsgaW50ZXJmYWNlPGJy Pi0oZm9yIEMmbHQ7ZXZfc3RhdCZndDspLCBMaW51eCBldmVudGZkL3NpZ25hbGZkIChmb3IgZmFz dGVyIGFuZCBjbGVhbmVyPGJyPitMaWJldiBzdXBwb3J0cyBDJmx0O3NlbGVjdCZndDssIEMmbHQ7 cG9sbCZndDssIHRoZSBMaW51eC1zcGVjaWZpYyBhaW8gYW5kIEMmbHQ7ZXBvbGwmZ3Q7PGJyPitp bnRlcmZhY2VzLCB0aGUgQlNELXNwZWNpZmljIEMmbHQ7a3F1ZXVlJmd0OyBhbmQgdGhlIFNvbGFy aXMtc3BlY2lmaWMgZXZlbnQgcG9ydDxicj4rbWVjaGFuaXNtcyBmb3IgZmlsZSBkZXNjcmlwdG9y IGV2ZW50cyAoQyZsdDtldl9pbyZndDspLCB0aGUgTGludXggQyZsdDtpbm90aWZ5Jmd0Ozxicj4r aW50ZXJmYWNlIChmb3IgQyZsdDtldl9zdGF0Jmd0OyksIExpbnV4IGV2ZW50ZmQvc2lnbmFsZmQg KGZvciBmYXN0ZXIgYW5kIGNsZWFuZXI8YnI+Jm5ic3A7aW50ZXItdGhyZWFkIHdha2V1cCAoQyZs dDtldl9hc3luYyZndDspL3NpZ25hbCBoYW5kbGluZyAoQyZsdDtldl9zaWduYWwmZ3Q7KSkgcmVs YXRpdmU8YnI+Jm5ic3A7dGltZXJzIChDJmx0O2V2X3RpbWVyJmd0OyksIGFic29sdXRlIHRpbWVy cyB3aXRoIGN1c3RvbWlzZWQgcmVzY2hlZHVsaW5nPGJyPiZuYnNwOyhDJmx0O2V2X3BlcmlvZGlj Jmd0OyksIHN5bmNocm9ub3VzIHNpZ25hbHMgKEMmbHQ7ZXZfc2lnbmFsJmd0OyksIHByb2Nlc3Mg c3RhdHVzPGJyPkBAIC0xNjEsOSArMTYxLDEzIEBAIGl0IHdpbGwgcHJpbnQgYSBkaWFnbm9zdGlj IG1lc3NhZ2UgYW5kIGFib3J0ICh2aWEgdGhlIEMmbHQ7YXNzZXJ0Jmd0OyBtZWNoYW5pc20sPGJy PiZuYnNwO3NvIEMmbHQ7TkRFQlVHJmd0OyB3aWxsIGRpc2FibGUgdGhpcyBjaGVja2luZyk6IHRo ZXNlIGFyZSBwcm9ncmFtbWluZyBlcnJvcnMgaW48YnI+Jm5ic3A7dGhlIGxpYmV2IGNhbGxlciBh bmQgbmVlZCB0byBiZSBmaXhlZCB0aGVyZS48YnI+Jm5ic3A7PGJyPi1MaWJldiBhbHNvIGhhcyBh IGZldyBpbnRlcm5hbCBlcnJvci1jaGVja2luZyBDJmx0O2Fzc2VydCZndDtpb25zLCBhbmQgYWxz byBoYXM8YnI+LWV4dGVuc2l2ZSBjb25zaXN0ZW5jeSBjaGVja2luZyBjb2RlLiBUaGVzZSBkbyBu b3QgdHJpZ2dlciB1bmRlciBub3JtYWw8YnI+LWNpcmN1bXN0YW5jZXMsIGFzIHRoZXkgaW5kaWNh dGUgZWl0aGVyIGEgYnVnIGluIGxpYmV2IG9yIHdvcnNlLjxicj4rVmlhIHRoZSBDJmx0O0VWX0ZS RVFVRU5UJmd0OyBtYWNybyB5b3UgY2FuIGNvbXBpbGUgaW4gYW5kL29yIGVuYWJsZSBleHRlbnNp dmU8YnI+K2NvbnNpc3RlbmN5IGNoZWNraW5nIGNvZGUgaW5zaWRlIGxpYmV2IHRoYXQgY2FuIGJl IHVzZWQgdG8gY2hlY2sgZm9yPGJyPitpbnRlcm5hbCBpbmNvbnNpc3RlbmNpZXMsIHN1dWFsbHkg Y2F1c2VkIGJ5IGFwcGxpY2F0aW9uIGJ1Z3MuPGJyPis8YnI+K0xpYmV2IGFsc28gaGFzIGEgZmV3 IGludGVybmFsIGVycm9yLWNoZWNraW5nIEMmbHQ7YXNzZXJ0Jmd0O2lvbnMuIFRoZXNlIGRvIG5v dDxicj4rdHJpZ2dlciB1bmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcywgYXMgdGhleSBpbmRpY2F0 ZSBlaXRoZXIgYSBidWcgaW4gbGliZXY8YnI+K29yIHdvcnNlLjxicj4mbmJzcDs8YnI+Jm5ic3A7 PGJyPiZuYnNwOz1oZWFkMSBHTE9CQUwgRlVOQ1RJT05TPGJyPkBAIC0yNjcsMTIgKzI3MSwzMiBA QCBZb3UgY291bGQgb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbiBpbiBoaWdoLWF2YWlsYWJpbGl0eSBw cm9ncmFtcyB0bywgc2F5LDxicj4mbmJzcDtmcmVlIHNvbWUgbWVtb3J5IGlmIGl0IGNhbm5vdCBh bGxvY2F0ZSBtZW1vcnksIHRvIHVzZSBhIHNwZWNpYWwgYWxsb2NhdG9yLDxicj4mbmJzcDtvciBl dmVuIHRvIHNsZWVwIGEgd2hpbGUgYW5kIHJldHJ5IHVudGlsIHNvbWUgbWVtb3J5IGlzIGF2YWls YWJsZS48YnI+Jm5ic3A7PGJyPitFeGFtcGxlOiBUaGUgZm9sbG93aW5nIGlzIHRoZSBDJmx0O3Jl YWxsb2MmZ3Q7IGZ1bmN0aW9uIHRoYXQgbGliZXYgaXRzZWxmIHVzZXM8YnI+K3doaWNoIHNob3Vs ZCB3b3JrIHdpdGggQyZsdDtyZWFsbG9jJmd0OyBhbmQgQyZsdDtmcmVlJmd0OyBmdW5jdGlvbnMg b2YgYWxsIGtpbmRzIGFuZDxicj4raXMgcHJvYmFibHkgYSBnb29kIGJhc2lzIGZvciB5b3VyIG93 biBpbXBsZW1lbnRhdGlvbi48YnI+Kzxicj4rICZuYnNwOyBzdGF0aWMgdm9pZCAqPGJyPisgJm5i c3A7IGV2X3JlYWxsb2NfZW11bCAodm9pZCAqcHRyLCBsb25nIHNpemUpIEVWX05PRVhDRVBUPGJy PisgJm5ic3A7IHs8YnI+KyAmbmJzcDsgJm5ic3A7IGlmIChzaXplKTxicj4rICZuYnNwOyAmbmJz cDsgJm5ic3A7IHJldHVybiByZWFsbG9jIChwdHIsIHNpemUpOzxicj4rPGJyPisgJm5ic3A7ICZu YnNwOyBmcmVlIChwdHIpOzxicj4rICZuYnNwOyAmbmJzcDsgcmV0dXJuIDA7PGJyPisgJm5ic3A7 IH08YnI+Kzxicj4mbmJzcDtFeGFtcGxlOiBSZXBsYWNlIHRoZSBsaWJldiBhbGxvY2F0b3Igd2l0 aCBvbmUgdGhhdCB3YWl0cyBhIGJpdCBhbmQgdGhlbjxicj4tcmV0cmllcyAoZXhhbXBsZSByZXF1 aXJlcyBhIHN0YW5kYXJkcy1jb21wbGlhbnQgQyZsdDtyZWFsbG9jJmd0OykuPGJyPityZXRyaWVz Ljxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwOyBzdGF0aWMgdm9pZCAqPGJyPiZuYnNwOyAmbmJz cDsgcGVyc2lzdGVudF9yZWFsbG9jICh2b2lkICpwdHIsIHNpemVfdCBzaXplKTxicj4mbmJzcDsg Jm5ic3A7IHs8YnI+KyAmbmJzcDsgJm5ic3A7IGlmICghc2l6ZSk8YnI+KyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyB7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGZyZWUgKHB0cik7PGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHJldHVybiAwOzxicj4rICZuYnNwOyAmbmJz cDsgJm5ic3A7IH08YnI+Kzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyBmb3IgKDs7KTxicj4mbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgezxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7IHZvaWQgKm5ld3B0ciA9IHJlYWxsb2MgKHB0ciwgc2l6ZSk7PGJyPkBAIC00MTMsOSAr NDM3LDEwIEBAIG1ha2UgbGliZXYgY2hlY2sgZm9yIGEgZm9yayBpbiBlYWNoIGl0ZXJhdGlvbiBi eSBlbmFibGluZyB0aGlzIGZsYWcuPGJyPiZuYnNwO1RoaXMgd29ya3MgYnkgY2FsbGluZyBDJmx0 O2dldHBpZCAoKSZndDsgb24gZXZlcnkgaXRlcmF0aW9uIG9mIHRoZSBsb29wLDxicj4mbmJzcDth bmQgdGh1cyB0aGlzIG1pZ2h0IHNsb3cgZG93biB5b3VyIGV2ZW50IGxvb3AgaWYgeW91IGRvIGEg bG90IG9mIGxvb3A8YnI+Jm5ic3A7aXRlcmF0aW9ucyBhbmQgbGl0dGxlIHJlYWwgd29yaywgYnV0 IGlzIHVzdWFsbHkgbm90IG5vdGljZWFibGUgKG9uIG15PGJyPi1HTlUvTGludXggc3lzdGVtIGZv ciBleGFtcGxlLCBDJmx0O2dldHBpZCZndDsgaXMgYWN0dWFsbHkgYSBzaW1wbGUgNS1pbnNuIHNl cXVlbmNlPGJyPi13aXRob3V0IGEgc3lzdGVtIGNhbGwgYW5kIHRodXMgSSZsdDt2ZXJ5Jmd0OyBm YXN0LCBidXQgbXkgR05VL0xpbnV4IHN5c3RlbSBhbHNvIGhhczxicj4tQyZsdDtwdGhyZWFkX2F0 Zm9yayZndDsgd2hpY2ggaXMgZXZlbiBmYXN0ZXIpLjxicj4rR05VL0xpbnV4IHN5c3RlbSBmb3Ig ZXhhbXBsZSwgQyZsdDtnZXRwaWQmZ3Q7IGlzIGFjdHVhbGx5IGEgc2ltcGxlIDUtaW5zbjxicj4r c2VxdWVuY2Ugd2l0aG91dCBhIHN5c3RlbSBjYWxsIGFuZCB0aHVzIEkmbHQ7dmVyeSZndDsgZmFz dCwgYnV0IG15IEdOVS9MaW51eDxicj4rc3lzdGVtIGFsc28gaGFzIEMmbHQ7cHRocmVhZF9hdGZv cmsmZ3Q7IHdoaWNoIGlzIGV2ZW4gZmFzdGVyKS4gKFVwZGF0ZTogZ2xpYmM8YnI+K3ZlcnNpb25z IDIuMjUgYXBwYXJlbnRseSByZW1vdmVkIHRoZSBDJmx0O2dldHBpZCZndDsgb3B0aW1pc2F0aW9u IGFnYWluKS48YnI+Jm5ic3A7PGJyPiZuYnNwO1RoZSBiaWcgYWR2YW50YWdlIG9mIHRoaXMgZmxh ZyBpcyB0aGF0IHlvdSBjYW4gZm9yZ2V0IGFib3V0IGZvcmsgKGFuZDxicj4mbmJzcDtmb3JnZXQg YWJvdXQgZm9yZ2V0dGluZyB0byB0ZWxsIGxpYmV2IGFib3V0IGZvcmtpbmcsIGFsdGhvdWdoIHlv dSBzdGlsbDxicj5AQCAtNDU3LDcgKzQ4MiwxNiBAQCB1bmJsb2NraW5nIHRoZSBzaWduYWxzLjxi cj4mbmJzcDtJdCdzIGFsc28gcmVxdWlyZWQgYnkgUE9TSVggaW4gYSB0aHJlYWRlZCBwcm9ncmFt LCBhcyBsaWJldiBjYWxsczxicj4mbmJzcDtDJmx0O3NpZ3Byb2NtYXNrJmd0Oywgd2hvc2UgYmVo YXZpb3VyIGlzIG9mZmljaWFsbHkgdW5zcGVjaWZpZWQuPGJyPiZuYnNwOzxicj4tVGhpcyBmbGFn J3MgYmVoYXZpb3VyIHdpbGwgYmVjb21lIHRoZSBkZWZhdWx0IGluIGZ1dHVyZSB2ZXJzaW9ucyBv ZiBsaWJldi48YnI+Kz1pdGVtIEMmbHQ7RVZGTEFHX05PVElNRVJGRCZndDs8YnI+Kzxicj4rV2hl biB0aGlzIGZsYWcgaXMgc3BlY2lmaWVkLCB0aGUgbGliZXYgd2lsbCBhdm9pZCB1c2luZyBhIEMm bHQ7dGltZXJmZCZndDsgdG88YnI+K2RldGVjdCB0aW1lIGp1bXBzLiBJdCB3aWxsIHN0aWxsIGJl IGFibGUgdG8gZGV0ZWN0IHRpbWUganVtcHMsIGJ1dCB0YWtlczxicj4rbG9uZ2VyIGFuZCBoYXMg YSBsb3dlciBhY2N1cmFjeSBpbiBkb2luZyBzbywgYnV0IHNhdmVzIGEgZmlsZSBkZXNjcmlwdG9y PGJyPitwZXIgbG9vcC48YnI+Kzxicj4rVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb25seSB0 cmllcyB0byB1c2UgYSBDJmx0O3RpbWVyZmQmZ3Q7IHdoZW4gdGhlIGZpcnN0PGJyPitDJmx0O2V2 X3BlcmlvZGljJmd0OyB3YXRjaGVyIGlzIHN0YXJ0ZWQgYW5kIGZhbGxzIGJhY2sgb24gb3RoZXIg bWV0aG9kcyBpZiBpdDxicj4rY2Fubm90IGJlIGNyZWF0ZWQsIGJ1dCB0aGlzIGJlaGF2aW91ciBt aWdodCBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS48YnI+Jm5ic3A7PGJyPiZuYnNwOz1pdGVtIEMmbHQ7 RVZCQUNLRU5EX1NFTEVDVCZndDsgJm5ic3A7KHZhbHVlIDEsIHBvcnRhYmxlIHNlbGVjdCBiYWNr ZW5kKTxicj4mbmJzcDs8YnI+QEAgLTQ5Miw3ICs1MjYsNyBAQCBDJmx0O0VWX1dSSVRFJmd0OyB0 byBDJmx0O1BPTExPVVQgfCBQT0xMRVJSIHwgUE9MTEhVUCZndDsuPGJyPiZuYnNwOzxicj4mbmJz cDs9aXRlbSBDJmx0O0VWQkFDS0VORF9FUE9MTCZndDsgJm5ic3A7ICh2YWx1ZSA0LCBMaW51eCk8 YnI+Jm5ic3A7PGJyPi1Vc2UgdGhlIGxpbnV4LXNwZWNpZmljIGVwb2xsKDcpIGludGVyZmFjZSAo Zm9yIGJvdGggcHJlLSBhbmQgcG9zdC0yLjYuOTxicj4rVXNlIHRoZSBMaW51eC1zcGVjaWZpYyBl cG9sbCg3KSBpbnRlcmZhY2UgKGZvciBib3RoIHByZS0gYW5kIHBvc3QtMi42Ljk8YnI+Jm5ic3A7 a2VybmVscykuPGJyPiZuYnNwOzxicj4mbmJzcDtGb3IgZmV3IGZkcywgdGhpcyBiYWNrZW5kIGlz IGEgYml0IGxpdHRsZSBzbG93ZXIgdGhhbiBwb2xsIGFuZCBzZWxlY3QsIGJ1dDxicj5AQCAtNTQ4 LDIyICs1ODIsNjYgQEAgZmFzdGVyIHRoYW4gZXBvbGwgZm9yIG1heWJlIHVwIHRvIGEgaHVuZHJl ZCBmaWxlIGRlc2NyaXB0b3JzLCBkZXBlbmRpbmcgb248YnI+Jm5ic3A7dGhlIHVzYWdlLiBTbyBz YWQuPGJyPiZuYnNwOzxicj4mbmJzcDtXaGlsZSBub21pbmFsbHkgZW1iZWRkYWJsZSBpbiBvdGhl ciBldmVudCBsb29wcywgdGhpcyBmZWF0dXJlIGlzIGJyb2tlbiBpbjxicj4tYWxsIGtlcm5lbCB2 ZXJzaW9ucyB0ZXN0ZWQgc28gZmFyLjxicj4rYSBsb3Qgb2Yga2VybmVsIHJldmlzaW9ucywgYnV0 IHByb2JhYmx5KCEpIHdvcmtzIGluIGN1cnJlbnQgdmVyc2lvbnMuPGJyPis8YnI+K1RoaXMgYmFj a2VuZCBtYXBzIEMmbHQ7RVZfUkVBRCZndDsgYW5kIEMmbHQ7RVZfV1JJVEUmZ3Q7IGluIHRoZSBz YW1lIHdheSBhczxicj4rQyZsdDtFVkJBQ0tFTkRfUE9MTCZndDsuPGJyPis8YnI+Kz1pdGVtIEMm bHQ7RVZCQUNLRU5EX0xJTlVYQUlPJmd0OyAmbmJzcDsgKHZhbHVlIDY0LCBMaW51eCk8YnI+Kzxi cj4rVXNlIHRoZSBMaW51eC1zcGVjaWZpYyBMaW51eCBBSU8gKEkmbHQ7bm90Jmd0OyBDJmx0OyZs dDsgYWlvKDcpICZndDsmZ3Q7IGJ1dCBDJmx0OyZsdDs8YnI+K2lvX3N1Ym1pdCgyKSAmZ3Q7Jmd0 OykgZXZlbnQgaW50ZXJmYWNlIGF2YWlsYWJsZSBpbiBwb3N0LTQuMTgga2VybmVscyAoYnV0IGxp YmV2PGJyPitvbmx5IHRyaWVzIHRvIHVzZSBpdCBpbiA0LjE5KykuPGJyPis8YnI+K1RoaXMgaXMg YW5vdGhlciBMaW51eCB0cmFpbiB3cmVjayBvZiBhbiBldmVudCBpbnRlcmZhY2UuPGJyPis8YnI+ K0lmIHRoaXMgYmFja2VuZCB3b3JrcyBmb3IgeW91IChhcyBvZiB0aGlzIHdyaXRpbmcsIGl0IHdh cyB2ZXJ5PGJyPitleHBlcmltZW50YWwpLCBpdCBpcyB0aGUgYmVzdCBldmVudCBpbnRlcmZhY2Ug YXZhaWxhYmxlIG9uIExpbnV4IGFuZCBtaWdodDxicj4rYmUgd2VsbCB3b3J0aCBlbmFibGluZyBp dCAtIGlmIGl0IGlzbid0IGF2YWlsYWJsZSBpbiB5b3VyIGtlcm5lbCB0aGlzIHdpbGw8YnI+K2Jl IGRldGVjdGVkIGFuZCB0aGlzIGJhY2tlbmQgd2lsbCBiZSBza2lwcGVkLjxicj4rPGJyPitUaGlz IGJhY2tlbmQgY2FuIGJhdGNoIG9uZXNob3QgcmVxdWVzdHMgYW5kIHN1cHBvcnRzIGEgdXNlci1z cGFjZSByaW5nPGJyPitidWZmZXIgdG8gcmVjZWl2ZSBldmVudHMuIEl0IGFsc28gZG9lc24ndCBz dWZmZXIgZnJvbSBtb3N0IG9mIHRoZSBkZXNpZ248YnI+K3Byb2JsZW1zIG9mIGVwb2xsIChzdWNo IGFzIG5vdCBiZWluZyBhYmxlIHRvIHJlbW92ZSBldmVudCBzb3VyY2VzIGZyb208YnI+K3RoZSBl cG9sbCBzZXQpLCBhbmQgZ2VuZXJhbGx5IHNvdW5kcyB0b28gZ29vZCB0byBiZSB0cnVlLiBCZWNh dXNlLCB0aGlzPGJyPitiZWluZyB0aGUgTGludXgga2VybmVsLCBvZiBjb3Vyc2UgaXQgc3VmZmVy cyBmcm9tIGEgd2hvbGUgbmV3IHNldCBvZjxicj4rbGltaXRhdGlvbnMsIGZvcmNpbmcgeW91IHRv IGZhbGwgYmFjayB0byBlcG9sbCwgaW5oZXJpdGluZyBhbGwgaXRzIGRlc2lnbjxicj4raXNzdWVz Ljxicj4rPGJyPitGb3Igb25lLCBpdCBpcyBub3QgZWFzaWx5IGVtYmVkZGFibGUgKGJ1dCBwcm9i YWJseSBjb3VsZCBiZSBkb25lIHVzaW5nPGJyPithbiBldmVudCBmZCBhdCBzb21lIGV4dHJhIG92 ZXJoZWFkKS4gSXQgYWxzbyBpcyBzdWJqZWN0IHRvIGEgc3lzdGVtIHdpZGU8YnI+K2xpbWl0IHRo YXQgY2FuIGJlIGNvbmZpZ3VyZWQgaW4gRiZsdDsvcHJvYy9zeXMvZnMvYWlvLW1heC1uciZndDsu IElmIG5vIEFJTzxicj4rcmVxdWVzdHMgYXJlIGxlZnQsIHRoaXMgYmFja2VuZCB3aWxsIGJlIHNr aXBwZWQgZHVyaW5nIGluaXRpYWxpc2F0aW9uLCBhbmQ8YnI+K3dpbGwgc3dpdGNoIHRvIGVwb2xs IHdoZW4gdGhlIGxvb3AgaXMgYWN0aXZlLjxicj4rPGJyPitNb3N0IHByb2JsZW1hdGljIGluIHBy YWN0aWNlLCBob3dldmVyLCBpcyB0aGF0IG5vdCBhbGwgZmlsZSBkZXNjcmlwdG9yczxicj4rd29y ayB3aXRoIGl0LiBGb3IgZXhhbXBsZSwgaW4gTGludXggNS4xLCBUQ1Agc29ja2V0cywgcGlwZXMs IGV2ZW50IGZkcyw8YnI+K2ZpbGVzLCBGJmx0Oy9kZXYvbnVsbCZndDsgYW5kIG1hbnkgb3RoZXJz IGFyZSBzdXBwb3J0ZWQsIGJ1dCB0dHlzIGRvIG5vdCB3b3JrPGJyPitwcm9wZXJseSAoYSBrbm93 biBidWcgdGhhdCB0aGUga2VybmVsIGRldmVsb3BlcnMgZG9uJ3QgY2FyZSBhYm91dCwgc2VlPGJy PitMJmx0O2h0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3BhdGNod29yay9wYXRjaC8xMDQ3NDUzLyZn dDspLCBzbyB0aGlzIGlzIG5vdDxicj4rKHlldD8pIGEgZ2VuZXJpYyBldmVudCBwb2xsaW5nIGlu dGVyZmFjZS48YnI+Kzxicj4rT3ZlcmFsbCwgaXQgc2VlbXMgdGhlIExpbnV4IGRldmVsb3BlcnMg anVzdCBkb24ndCB3YW50IGl0IHRvIGhhdmUgYTxicj4rZ2VuZXJpYyBldmVudCBoYW5kbGluZyBt ZWNoYW5pc20gb3RoZXIgdGhhbiBDJmx0O3NlbGVjdCZndDsgb3IgQyZsdDtwb2xsJmd0Oy48YnI+ Kzxicj4rVG8gd29yayBhcm91bmQgYWxsIHRoZXNlIHByb2JsZW0sIHRoZSBjdXJyZW50IHZlcnNp b24gb2YgbGliZXYgdXNlcyBpdHM8YnI+K2Vwb2xsIGJhY2tlbmQgYXMgYSBmYWxsYmFjayBmb3Ig ZmlsZSBkZXNjcmlwdG9yIHR5cGVzIHRoYXQgZG8gbm90IHdvcmsuIE9yPGJyPitmYWxscyBiYWNr IGNvbXBsZXRlbHkgdG8gZXBvbGwgaWYgdGhlIGtlcm5lbCBhY3RzIHVwLjxicj4mbmJzcDs8YnI+ Jm5ic3A7VGhpcyBiYWNrZW5kIG1hcHMgQyZsdDtFVl9SRUFEJmd0OyBhbmQgQyZsdDtFVl9XUklU RSZndDsgaW4gdGhlIHNhbWUgd2F5IGFzPGJyPiZuYnNwO0MmbHQ7RVZCQUNLRU5EX1BPTEwmZ3Q7 Ljxicj4mbmJzcDs8YnI+Jm5ic3A7PWl0ZW0gQyZsdDtFVkJBQ0tFTkRfS1FVRVVFJmd0OyAmbmJz cDsodmFsdWUgOCwgbW9zdCBCU0QgY2xvbmVzKTxicj4mbmJzcDs8YnI+LUtxdWV1ZSBkZXNlcnZl cyBzcGVjaWFsIG1lbnRpb24sIGFzIGF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZywgaXQ8YnI+ LXdhcyBicm9rZW4gb24gYWxsIEJTRHMgZXhjZXB0IE5ldEJTRCAodXN1YWxseSBpdCBkb2Vzbid0 IHdvcmsgcmVsaWFibHk8YnI+LXdpdGggYW55dGhpbmcgYnV0IHNvY2tldHMgYW5kIHBpcGVzLCBl eGNlcHQgb24gRGFyd2luLCB3aGVyZSBvZiBjb3Vyc2U8YnI+LWl0J3MgY29tcGxldGVseSB1c2Vs ZXNzKS4gVW5saWtlIGVwb2xsLCBob3dldmVyLCB3aG9zZSBicm9rZW5uZXNzPGJyPi1pcyBieSBk ZXNpZ24sIHRoZXNlIGtxdWV1ZSBidWdzIGNhbiAoYW5kIGV2ZW50dWFsbHkgd2lsbCkgYmUgZml4 ZWQ8YnI+LXdpdGhvdXQgQVBJIGNoYW5nZXMgdG8gZXhpc3RpbmcgcHJvZ3JhbXMuIEZvciB0aGlz IHJlYXNvbiBpdCdzIG5vdCBiZWluZzxicj4tImF1dG8tZGV0ZWN0ZWQiIHVubGVzcyB5b3UgZXhw bGljaXRseSBzcGVjaWZ5IGl0IGluIHRoZSBmbGFncyAoaS5lLiB1c2luZzxicj4tQyZsdDtFVkJB Q0tFTkRfS1FVRVVFJmd0Oykgb3IgbGliZXYgd2FzIGNvbXBpbGVkIG9uIGEga25vd24tdG8tYmUt Z29vZCAoLWVub3VnaCk8YnI+LXN5c3RlbSBsaWtlIE5ldEJTRC48YnI+K0txdWV1ZSBkZXNlcnZl cyBzcGVjaWFsIG1lbnRpb24sIGFzIGF0IHRoZSB0aW1lIHRoaXMgYmFja2VuZCB3YXM8YnI+K2lt cGxlbWVudGVkLCBpdCB3YXMgYnJva2VuIG9uIGFsbCBCU0RzIGV4Y2VwdCBOZXRCU0QgKHVzdWFs bHkgaXQgZG9lc24ndDxicj4rd29yayByZWxpYWJseSB3aXRoIGFueXRoaW5nIGJ1dCBzb2NrZXRz IGFuZCBwaXBlcywgZXhjZXB0IG9uIERhcndpbiw8YnI+K3doZXJlIG9mIGNvdXJzZSBpdCdzIGNv bXBsZXRlbHkgdXNlbGVzcykuIFVubGlrZSBlcG9sbCwgaG93ZXZlciwgd2hvc2U8YnI+K2Jyb2tl bm5lc3MgaXMgYnkgZGVzaWduLCB0aGVzZSBrcXVldWUgYnVncyBjYW4gYmUgKGFuZCBtb3N0bHkg aGF2ZSBiZWVuKTxicj4rZml4ZWQgd2l0aG91dCBBUEkgY2hhbmdlcyB0byBleGlzdGluZyBwcm9n cmFtcy4gRm9yIHRoaXMgcmVhc29uIGl0J3Mgbm90PGJyPitiZWluZyAiYXV0by1kZXRlY3RlZCIg b24gYWxsIHBsYXRmb3JtcyB1bmxlc3MgeW91IGV4cGxpY2l0bHkgc3BlY2lmeSBpdDxicj4raW4g dGhlIGZsYWdzIChpLmUuIHVzaW5nIEMmbHQ7RVZCQUNLRU5EX0tRVUVVRSZndDspIG9yIGxpYmV2 IHdhcyBjb21waWxlZCBvbiBhPGJyPitrbm93bi10by1iZS1nb29kICgtZW5vdWdoKSBzeXN0ZW0g bGlrZSBOZXRCU0QuPGJyPiZuYnNwOzxicj4mbmJzcDtZb3Ugc3RpbGwgY2FuIGVtYmVkIGtxdWV1 ZSBpbnRvIGEgbm9ybWFsIHBvbGwgb3Igc2VsZWN0IGJhY2tlbmQgYW5kIHVzZSBpdDxicj4mbmJz cDtvbmx5IGZvciBzb2NrZXRzIChhZnRlciBoYXZpbmcgbWFkZSBzdXJlIHRoYXQgc29ja2V0cyB3 b3JrIHdpdGgga3F1ZXVlIG9uPGJyPkBAIC01NzQsNyArNjUyLDcgQEAga2VybmVsIGlzIG1vcmUg ZWZmaWNpZW50ICh3aGljaCBzYXlzIG5vdGhpbmcgYWJvdXQgaXRzIGFjdHVhbCBzcGVlZCwgb2Y8 YnI+Jm5ic3A7Y291cnNlKS4gV2hpbGUgc3RvcHBpbmcsIHNldHRpbmcgYW5kIHN0YXJ0aW5nIGFu IEkvTyB3YXRjaGVyIGRvZXMgbmV2ZXI8YnI+Jm5ic3A7Y2F1c2UgYW4gZXh0cmEgc3lzdGVtIGNh bGwgYXMgd2l0aCBDJmx0O0VWQkFDS0VORF9FUE9MTCZndDssIGl0IHN0aWxsIGFkZHMgdXAgdG88 YnI+Jm5ic3A7dHdvIGV2ZW50IGNoYW5nZXMgcGVyIGluY2lkZW50LiBTdXBwb3J0IGZvciBDJmx0 O2ZvcmsgKCkmZ3Q7IGlzIHZlcnkgYmFkICh5b3U8YnI+LW1pZ2h0IGhhdmUgdG8gbGVhayBmZCdz IG9uIGZvcmssIGJ1dCBpdCdzIG1vcmUgc2FuZSB0aGFuIGVwb2xsKSBhbmQgaXQ8YnI+K21pZ2h0 IGhhdmUgdG8gbGVhayBmZHMgb24gZm9yaywgYnV0IGl0J3MgbW9yZSBzYW5lIHRoYW4gZXBvbGwp IGFuZCBpdDxicj4mbmJzcDtkcm9wcyBmZHMgc2lsZW50bHkgaW4gc2ltaWxhcmx5IGhhcmQtdG8t ZGV0ZWN0IGNhc2VzLjxicj4mbmJzcDs8YnI+Jm5ic3A7VGhpcyBiYWNrZW5kIHVzdWFsbHkgcGVy Zm9ybXMgd2VsbCB1bmRlciBtb3N0IGNvbmRpdGlvbnMuPGJyPkBAIC02NTksNiArNzM3LDEyIEBA IHVzZWQgaWYgYXZhaWxhYmxlLjxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwOyBzdHJ1Y3QgZXZf bG9vcCAqbG9vcCA9IGV2X2xvb3BfbmV3IChldl9yZWNvbW1lbmRlZF9iYWNrZW5kcyAoKSB8IEVW QkFDS0VORF9LUVVFVUUpOzxicj4mbmJzcDs8YnI+K0V4YW1wbGU6IFNpbWlsYXJseSwgb24gbGlu dXgsIHlvdSBtZ2lodCB3YW50IHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZTxicj4rbGludXggYWlv IGJhY2tlbmQgaWYgcG9zc2libGUsIGJ1dCBmYWxsIGJhY2sgdG8gc29tZXRoaW5nIGVsc2UgaWYg dGhhdDxicj4raXNuJ3QgYXZhaWxhYmxlLjxicj4rPGJyPisgJm5ic3A7IHN0cnVjdCBldl9sb29w ICpsb29wID0gZXZfbG9vcF9uZXcgKGV2X3JlY29tbWVuZGVkX2JhY2tlbmRzICgpIHwgRVZCQUNL RU5EX0xJTlVYQUlPKTs8YnI+Kzxicj4mbmJzcDs9aXRlbSBldl9sb29wX2Rlc3Ryb3kgKGxvb3Ap PGJyPiZuYnNwOzxicj4mbmJzcDtEZXN0cm95cyBhbiBldmVudCBsb29wIG9iamVjdCAoZnJlZXMg YWxsIG1lbW9yeSBhbmQga2VybmVsIHN0YXRlPGJyPkBAIC0xMTM2LDggKzEyMjAsOSBAQCB3aXRo IGEgd2F0Y2hlci1zcGVjaWZpYyBzdGFydCBmdW5jdGlvbiAoQyZsdDsmbHQ7IGV2X1RZUEVfc3Rh cnQgKGxvb3AsIHdhdGNoZXI8YnI+Jm5ic3A7Y29ycmVzcG9uZGluZyBzdG9wIGZ1bmN0aW9uIChD Jmx0OyZsdDsgZXZfVFlQRV9zdG9wIChsb29wLCB3YXRjaGVyICopICZndDsmZ3Q7Ljxicj4mbmJz cDs8YnI+Jm5ic3A7QXMgbG9uZyBhcyB5b3VyIHdhdGNoZXIgaXMgYWN0aXZlIChoYXMgYmVlbiBz dGFydGVkIGJ1dCBub3Qgc3RvcHBlZCkgeW91PGJyPi1tdXN0IG5vdCB0b3VjaCB0aGUgdmFsdWVz IHN0b3JlZCBpbiBpdC4gTW9zdCBzcGVjaWZpY2FsbHkgeW91IG11c3QgbmV2ZXI8YnI+LXJlaW5p dGlhbGlzZSBpdCBvciBjYWxsIGl0cyBDJmx0O2V2X1RZUEVfc2V0Jmd0OyBtYWNyby48YnI+K211 c3Qgbm90IHRvdWNoIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGl0IGV4Y2VwdCB3aGVuIGV4cGxpY2l0 bHkgZG9jdW1lbnRlZDxicj4rb3RoZXJ3aXNlLiBNb3N0IHNwZWNpZmljYWxseSB5b3UgbXVzdCBu ZXZlciByZWluaXRpYWxpc2UgaXQgb3IgY2FsbCBpdHM8YnI+K0MmbHQ7ZXZfVFlQRV9zZXQmZ3Q7 IG1hY3JvLjxicj4mbmJzcDs8YnI+Jm5ic3A7RWFjaCBhbmQgZXZlcnkgY2FsbGJhY2sgcmVjZWl2 ZXMgdGhlIGV2ZW50IGxvb3AgcG9pbnRlciBhcyBmaXJzdCwgdGhlPGJyPiZuYnNwO3JlZ2lzdGVy ZWQgd2F0Y2hlciBzdHJ1Y3R1cmUgYXMgc2Vjb25kLCBhbmQgYSBiaXRzZXQgb2YgcmVjZWl2ZWQg ZXZlbnRzIGFzPGJyPkBAIC0xNDYyLDcgKzE1NDcsNyBAQCBNYW55IGV2ZW50IGxvb3BzIHN1cHBv cnQgSSZsdDt3YXRjaGVyIHByaW9yaXRpZXMmZ3Q7LCB3aGljaCBhcmUgdXN1YWxseSBzbWFsbDxi cj4mbmJzcDtpbnRlZ2VycyB0aGF0IGluZmx1ZW5jZSB0aGUgb3JkZXJpbmcgb2YgZXZlbnQgY2Fs bGJhY2sgaW52b2NhdGlvbjxicj4mbmJzcDtiZXR3ZWVuIHdhdGNoZXJzIGluIHNvbWUgd2F5LCBh bGwgZWxzZSBiZWluZyBlcXVhbC48YnI+Jm5ic3A7PGJyPi1JbiBsaWJldiwgV2F0Y2hlciBwcmlv cml0aWVzIGNhbiBiZSBzZXQgdXNpbmcgQyZsdDtldl9zZXRfcHJpb3JpdHkmZ3Q7LiBTZWUgaXRz PGJyPitJbiBsaWJldiwgd2F0Y2hlciBwcmlvcml0aWVzIGNhbiBiZSBzZXQgdXNpbmcgQyZsdDtl dl9zZXRfcHJpb3JpdHkmZ3Q7LiBTZWUgaXRzPGJyPiZuYnNwO2Rlc2NyaXB0aW9uIGZvciB0aGUg bW9yZSB0ZWNobmljYWwgZGV0YWlscyBzdWNoIGFzIHRoZSBhY3R1YWwgcHJpb3JpdHk8YnI+Jm5i c3A7cmFuZ2UuPGJyPiZuYnNwOzxicj5AQCAtMTU2NiwxNSArMTY1MSwxOCBAQCBUaGlzIHNlY3Rp b24gZGVzY3JpYmVzIGVhY2ggd2F0Y2hlciBpbiBkZXRhaWwsIGJ1dCB3aWxsIG5vdCByZXBlYXQ8 YnI+Jm5ic3A7aW5mb3JtYXRpb24gZ2l2ZW4gaW4gdGhlIGxhc3Qgc2VjdGlvbi4gQW55IGluaXRp YWxpc2F0aW9uL3NldCBtYWNyb3MsPGJyPiZuYnNwO2Z1bmN0aW9ucyBhbmQgbWVtYmVycyBzcGVj aWZpYyB0byB0aGUgd2F0Y2hlciB0eXBlIGFyZSBleHBsYWluZWQuPGJyPiZuYnNwOzxicj4tTWVt YmVycyBhcmUgYWRkaXRpb25hbGx5IG1hcmtlZCB3aXRoIGVpdGhlciBJJmx0O1tyZWFkLW9ubHld Jmd0OywgbWVhbmluZyB0aGF0LDxicj4td2hpbGUgdGhlIHdhdGNoZXIgaXMgYWN0aXZlLCB5b3Ug Y2FuIGxvb2sgYXQgdGhlIG1lbWJlciBhbmQgZXhwZWN0IHNvbWU8YnI+LXNlbnNpYmxlIGNvbnRl bnQsIGJ1dCB5b3UgbXVzdCBub3QgbW9kaWZ5IGl0ICh5b3UgY2FuIG1vZGlmeSBpdCB3aGlsZSB0 aGU8YnI+LXdhdGNoZXIgaXMgc3RvcHBlZCB0byB5b3VyIGhlYXJ0cyBjb250ZW50KSwgb3IgSSZs dDtbcmVhZC13cml0ZV0mZ3Q7LCB3aGljaDxicj4tbWVhbnMgeW91IGNhbiBleHBlY3QgaXQgdG8g aGF2ZSBzb21lIHNlbnNpYmxlIGNvbnRlbnQgd2hpbGUgdGhlIHdhdGNoZXI8YnI+LWlzIGFjdGl2 ZSwgYnV0IHlvdSBjYW4gYWxzbyBtb2RpZnkgaXQuIE1vZGlmeWluZyBpdCBtYXkgbm90IGRvIHNv bWV0aGluZzxicj4rTW9zdCBtZW1iZXJzIGFyZSBhZGRpdGlvbmFsbHkgbWFya2VkIHdpdGggZWl0 aGVyIEkmbHQ7W3JlYWQtb25seV0mZ3Q7LCBtZWFuaW5nPGJyPit0aGF0LCB3aGlsZSB0aGUgd2F0 Y2hlciBpcyBhY3RpdmUsIHlvdSBjYW4gbG9vayBhdCB0aGUgbWVtYmVyIGFuZCBleHBlY3Q8YnI+ K3NvbWUgc2Vuc2libGUgY29udGVudCwgYnV0IHlvdSBtdXN0IG5vdCBtb2RpZnkgaXQgKHlvdSBj YW4gbW9kaWZ5IGl0IHdoaWxlPGJyPit0aGUgd2F0Y2hlciBpcyBzdG9wcGVkIHRvIHlvdXIgaGVh cnRzIGNvbnRlbnQpLCBvciBJJmx0O1tyZWFkLXdyaXRlXSZndDssIHdoaWNoPGJyPittZWFucyB5 b3UgY2FuIGV4cGVjdCBpdCB0byBoYXZlIHNvbWUgc2Vuc2libGUgY29udGVudCB3aGlsZSB0aGUg d2F0Y2hlciBpczxicj4rYWN0aXZlLCBidXQgeW91IGNhbiBhbHNvIG1vZGlmeSBpdCAod2l0aGlu IHRoZSBzYW1lIHRocmVhZCBhcyB0aGUgZXZlbnQ8YnI+K2xvb3AsIGkuZS4gd2l0aG91dCBjcmVh dGluZyBkYXRhIHJhY2VzKS4gTW9kaWZ5aW5nIGl0IG1heSBub3QgZG8gc29tZXRoaW5nPGJyPiZu YnNwO3NlbnNpYmxlIG9yIHRha2UgaW1tZWRpYXRlIGVmZmVjdCAob3IgZG8gYW55dGhpbmcgYXQg YWxsKSwgYnV0IGxpYmV2IHdpbGw8YnI+Jm5ic3A7bm90IGNyYXNoIG9yIG1hbGZ1bmN0aW9uIGlu IGFueSB3YXkuPGJyPiZuYnNwOzxicj4rSW4gYW55IGNhc2UsIHRoZSBkb2N1bWVudGF0aW9uIGZv ciBlYWNoIG1lbWJlciB3aWxsIGV4cGxhaW4gd2hhdCB0aGU8YnI+K2VmZmVjdHMgYXJlLCBhbmQg aWYgdGhlcmUgYXJlIGFueSBhZGRpdGlvbmFsIGFjY2VzcyByZXN0cmljdGlvbnMuPGJyPiZuYnNw Ozxicj4mbmJzcDs9aGVhZDIgQyZsdDtldl9pbyZndDsgLSBpcyB0aGlzIGZpbGUgZGVzY3JpcHRv ciByZWFkYWJsZSBvciB3cml0YWJsZT88YnI+Jm5ic3A7PGJyPkBAIC0xNjExLDEzICsxNjk5LDEz IEBAIEJ1dCByZWFsbHksIGJlc3QgdXNlIG5vbi1ibG9ja2luZyBtb2RlLjxicj4mbmJzcDs8YnI+ Jm5ic3A7PWhlYWQzIFRoZSBzcGVjaWFsIHByb2JsZW0gb2YgZGlzYXBwZWFyaW5nIGZpbGUgZGVz Y3JpcHRvcnM8YnI+Jm5ic3A7PGJyPi1Tb21lIGJhY2tlbmRzIChlLmcuIGtxdWV1ZSwgZXBvbGwp IG5lZWQgdG8gYmUgdG9sZCBhYm91dCBjbG9zaW5nIGEgZmlsZTxicj4tZGVzY3JpcHRvciAoZWl0 aGVyIGR1ZSB0byBjYWxsaW5nIEMmbHQ7Y2xvc2UmZ3Q7IGV4cGxpY2l0bHkgb3IgYW55IG90aGVy IG1lYW5zLDxicj4tc3VjaCBhcyBDJmx0O2R1cDImZ3Q7KS4gVGhlIHJlYXNvbiBpcyB0aGF0IHlv dSByZWdpc3RlciBpbnRlcmVzdCBpbiBzb21lIGZpbGU8YnI+LWRlc2NyaXB0b3IsIGJ1dCB3aGVu IGl0IGdvZXMgYXdheSwgdGhlIG9wZXJhdGluZyBzeXN0ZW0gd2lsbCBzaWxlbnRseSBkcm9wPGJy Pi10aGlzIGludGVyZXN0LiBJZiBhbm90aGVyIGZpbGUgZGVzY3JpcHRvciB3aXRoIHRoZSBzYW1l IG51bWJlciB0aGVuIGlzPGJyPi1yZWdpc3RlcmVkIHdpdGggbGliZXYsIHRoZXJlIGlzIG5vIGVm ZmljaWVudCB3YXkgdG8gc2VlIHRoYXQgdGhpcyBpcywgaW48YnI+LWZhY3QsIGEgZGlmZmVyZW50 IGZpbGUgZGVzY3JpcHRvci48YnI+K1NvbWUgYmFja2VuZHMgKGUuZy4ga3F1ZXVlLCBlcG9sbCwg bGludXhhaW8pIG5lZWQgdG8gYmUgdG9sZCBhYm91dCBjbG9zaW5nPGJyPithIGZpbGUgZGVzY3Jp cHRvciAoZWl0aGVyIGR1ZSB0byBjYWxsaW5nIEMmbHQ7Y2xvc2UmZ3Q7IGV4cGxpY2l0bHkgb3Ig YW55IG90aGVyPGJyPittZWFucywgc3VjaCBhcyBDJmx0O2R1cDImZ3Q7KS4gVGhlIHJlYXNvbiBp cyB0aGF0IHlvdSByZWdpc3RlciBpbnRlcmVzdCBpbiBzb21lPGJyPitmaWxlIGRlc2NyaXB0b3Is IGJ1dCB3aGVuIGl0IGdvZXMgYXdheSwgdGhlIG9wZXJhdGluZyBzeXN0ZW0gd2lsbCBzaWxlbnRs eTxicj4rZHJvcCB0aGlzIGludGVyZXN0LiBJZiBhbm90aGVyIGZpbGUgZGVzY3JpcHRvciB3aXRo IHRoZSBzYW1lIG51bWJlciB0aGVuPGJyPitpcyByZWdpc3RlcmVkIHdpdGggbGliZXYsIHRoZXJl IGlzIG5vIGVmZmljaWVudCB3YXkgdG8gc2VlIHRoYXQgdGhpcyBpcyw8YnI+K2luIGZhY3QsIGEg ZGlmZmVyZW50IGZpbGUgZGVzY3JpcHRvci48YnI+Jm5ic3A7PGJyPiZuYnNwO1RvIGF2b2lkIGhh dmluZyB0byBleHBsaWNpdGx5IHRlbGwgbGliZXYgYWJvdXQgc3VjaCBjYXNlcywgbGliZXYgZm9s bG93czxicj4mbmJzcDt0aGUgZm9sbG93aW5nIHBvbGljeTogJm5ic3A7RWFjaCB0aW1lIEMmbHQ7 ZXZfaW9fc2V0Jmd0OyBpcyBiZWluZyBjYWxsZWQsIGxpYmV2PGJyPkBAIC0xNjc2LDkgKzE3NjQs MTAgQEAgcmV1c2UgdGhlIHNhbWUgY29kZSBwYXRoLjxicj4mbmJzcDs8YnI+Jm5ic3A7PWhlYWQz IFRoZSBzcGVjaWFsIHByb2JsZW0gb2YgZm9yazxicj4mbmJzcDs8YnI+LVNvbWUgYmFja2VuZHMg KGVwb2xsLCBrcXVldWUpIGRvIG5vdCBzdXBwb3J0IEMmbHQ7Zm9yayAoKSZndDsgYXQgYWxsIG9y IGV4aGliaXQ8YnI+LXVzZWxlc3MgYmVoYXZpb3VyLiBMaWJldiBmdWxseSBzdXBwb3J0cyBmb3Jr LCBidXQgbmVlZHMgdG8gYmUgdG9sZCBhYm91dDxicj4taXQgaW4gdGhlIGNoaWxkIGlmIHlvdSB3 YW50IHRvIGNvbnRpbnVlIHRvIHVzZSBpdCBpbiB0aGUgY2hpbGQuPGJyPitTb21lIGJhY2tlbmRz IChlcG9sbCwga3F1ZXVlLCBsaW51eGFpbywgaW91cmluZykgZG8gbm90IHN1cHBvcnQgQyZsdDtm b3JrICgpJmd0Ozxicj4rYXQgYWxsIG9yIGV4aGliaXQgdXNlbGVzcyBiZWhhdmlvdXIuIExpYmV2 IGZ1bGx5IHN1cHBvcnRzIGZvcmssIGJ1dCBuZWVkczxicj4rdG8gYmUgdG9sZCBhYm91dCBpdCBp biB0aGUgY2hpbGQgaWYgeW91IHdhbnQgdG8gY29udGludWUgdG8gdXNlIGl0IGluIHRoZTxicj4r Y2hpbGQuPGJyPiZuYnNwOzxicj4mbmJzcDtUbyBzdXBwb3J0IGZvcmsgaW4geW91ciBjaGlsZCBw cm9jZXNzZXMsIHlvdSBoYXZlIHRvIGNhbGwgQyZsdDtldl9sb29wX2Zvcms8YnI+Jm5ic3A7KCkm Z3Q7IGFmdGVyIGEgZm9yayBpbiB0aGUgY2hpbGQsIGVuYWJsZSBDJmx0O0VWRkxBR19GT1JLQ0hF Q0smZ3Q7LCBvciByZXNvcnQgdG88YnI+QEAgLTE3NDMsMTYgKzE4MzIsMzYgQEAgb3Bwb3J0dW5p dHkgZm9yIGEgRG9TIGF0dGFjay48YnI+Jm5ic3A7PWl0ZW0gZXZfaW9fc2V0IChldl9pbyAqLCBp bnQgZmQsIGludCBldmVudHMpPGJyPiZuYnNwOzxicj4mbmJzcDtDb25maWd1cmVzIGFuIEMmbHQ7 ZXZfaW8mZ3Q7IHdhdGNoZXIuIFRoZSBDJmx0O2ZkJmd0OyBpcyB0aGUgZmlsZSBkZXNjcmlwdG9y IHRvPGJyPi1yZWNlaXZlIGV2ZW50cyBmb3IgYW5kIEMmbHQ7ZXZlbnRzJmd0OyBpcyBlaXRoZXIg QyZsdDtFVl9SRUFEJmd0OywgQyZsdDtFVl9XUklURSZndDsgb3I8YnI+LUMmbHQ7RVZfUkVBRCB8 IEVWX1dSSVRFJmd0OywgdG8gZXhwcmVzcyB0aGUgZGVzaXJlIHRvIHJlY2VpdmUgdGhlIGdpdmVu IGV2ZW50cy48YnI+K3JlY2VpdmUgZXZlbnRzIGZvciBhbmQgQyZsdDtldmVudHMmZ3Q7IGlzIGVp dGhlciBDJmx0O0VWX1JFQUQmZ3Q7LCBDJmx0O0VWX1dSSVRFJmd0OywgYm90aDxicj4rQyZsdDtF Vl9SRUFEIHwgRVZfV1JJVEUmZ3Q7IG9yIEMmbHQ7MCZndDssIHRvIGV4cHJlc3MgdGhlIGRlc2ly ZSB0byByZWNlaXZlIHRoZSBnaXZlbjxicj4rZXZlbnRzLjxicj4rPGJyPitOb3RlIHRoYXQgc2V0 dGluZyB0aGUgQyZsdDtldmVudHMmZ3Q7IHRvIEMmbHQ7MCZndDsgYW5kIHN0YXJ0aW5nIHRoZSB3 YXRjaGVyIGlzPGJyPitzdXBwb3J0ZWQsIGJ1dCBub3Qgc3BlY2lhbGx5IG9wdGltaXplZCAtIGlm IHlvdXIgcHJvZ3JhbSBzb21ldGltZXMgaGFwcGVuczxicj4rdG8gZ2VuZXJhdGUgdGhpcyBjb21i aW5hdGlvbiB0aGlzIGlzIGZpbmUsIGJ1dCBpZiBpdCBpcyBlYXN5IHRvIGF2b2lkPGJyPitzdGFy dGluZyBhbiBpbyB3YXRjaGVyIHdhdGNoaW5nIGZvciBubyBldmVudHMgeW91IHNob3VsZCBkbyBz by48YnI+Kzxicj4rPWl0ZW0gZXZfaW9fbW9kaWZ5IChldl9pbyAqLCBpbnQgZXZlbnRzKTxicj4r PGJyPitTaW1pbGFyIHRvIEMmbHQ7ZXZfaW9fc2V0Jmd0OywgYnV0IG9ubHkgY2hhbmdlcyB0aGUg cmVxdWVzdGVkIGV2ZW50cy4gVXNpbmcgdGhpczxicj4rbWlnaHQgYmUgZmFzdGVyIHdpdGggc29t ZSBiYWNrZW5kcywgYXMgbGliZXYgY2FuIGFzc3VtZSB0aGF0IHRoZSBDJmx0O2ZkJmd0Ozxicj4r c3RpbGwgcmVmZXJzIHRvIHRoZSBzYW1lIHVuZGVybHlpbmcgZmlsZSBkZXNjcmlwdGlvbiwgc29t ZXRoaW5nIGl0IGNhbm5vdDxicj4rZG8gd2hlbiB1c2luZyBDJmx0O2V2X2lvX3NldCZndDsuPGJy PiZuYnNwOzxicj4tPWl0ZW0gaW50IGZkIFtyZWFkLW9ubHldPGJyPis9aXRlbSBpbnQgZmQgW25v LW1vZGlmeV08YnI+Jm5ic3A7PGJyPi1UaGUgZmlsZSBkZXNjcmlwdG9yIGJlaW5nIHdhdGNoZWQu PGJyPitUaGUgZmlsZSBkZXNjcmlwdG9yIGJlaW5nIHdhdGNoZWQuIFdoaWxlIGl0IGNhbiBiZSBy ZWFkIGF0IGFueSB0aW1lLCB5b3U8YnI+K211c3Qgbm90IG1vZGlmeSB0aGlzIG1lbWJlciBldmVu IHdoZW4gdGhlIHdhdGNoZXIgaXMgc3RvcHBlZCAtIGFsd2F5cyB1c2U8YnI+K0MmbHQ7ZXZfaW9f c2V0Jmd0OyBmb3IgdGhhdC48YnI+Jm5ic3A7PGJyPi09aXRlbSBpbnQgZXZlbnRzIFtyZWFkLW9u bHldPGJyPis9aXRlbSBpbnQgZXZlbnRzIFtuby1tb2RpZnldPGJyPiZuYnNwOzxicj4tVGhlIGV2 ZW50cyBiZWluZyB3YXRjaGVkLjxicj4rVGhlIHNldCBvZiBldmVudHMgdGhlIGZkIGlzIGJlaW5n IHdhdGNoZWQgZm9yLCBhbW9uZyBvdGhlciBmbGFncy4gUmVtZW1iZXI8YnI+K3RoYXQgdGhpcyBp cyBhIGJpdCBzZXQgLSB0byB0ZXN0IGZvciBDJmx0O0VWX1JFQUQmZ3Q7LCB1c2UgQyZsdDsmbHQ7 IHctJmd0O2V2ZW50cyAmYW1wOzxicj4rRVZfUkVBRCAmZ3Q7Jmd0OywgYW5kIHNpbWlsYXJseSBm b3IgQyZsdDtFVl9XUklURSZndDsuPGJyPis8YnI+K0FzIHdpdGggQyZsdDtmZCZndDssIHlvdSBt dXN0IG5vdCBtb2RpZnkgdGhpcyBtZW1iZXIgZXZlbiB3aGVuIHRoZSB3YXRjaGVyIGlzPGJyPitz dG9wcGVkLCBhbHdheXMgdXNlIEMmbHQ7ZXZfaW9fc2V0Jmd0OyBvciBDJmx0O2V2X2lvX21vZGlm eSZndDsgZm9yIHRoYXQuPGJyPiZuYnNwOzxicj4mbmJzcDs9YmFjazxicj4mbmJzcDs8YnI+QEAg LTIxMTUsMTEgKzIyMjQsMTEgQEAgQyZsdDtTSUdTVE9QJmd0OykuPGJyPiZuYnNwOzxicj4mbmJz cDs9aXRlbSBldl90aW1lcl9zZXQgKGV2X3RpbWVyICosIGV2X3RzdGFtcCBhZnRlciwgZXZfdHN0 YW1wIHJlcGVhdCk8YnI+Jm5ic3A7PGJyPi1Db25maWd1cmUgdGhlIHRpbWVyIHRvIHRyaWdnZXIg YWZ0ZXIgQyZsdDthZnRlciZndDsgc2Vjb25kcy4gSWYgQyZsdDtyZXBlYXQmZ3Q7PGJyPi1pcyBD Jmx0OzAuJmd0OywgdGhlbiBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc3RvcHBlZCBvbmNlIHRo ZSB0aW1lb3V0IGlzPGJyPi1yZWFjaGVkLiBJZiBpdCBpcyBwb3NpdGl2ZSwgdGhlbiB0aGUgdGlt ZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGJlPGJyPi1jb25maWd1cmVkIHRvIHRyaWdnZXIgYWdhaW4g QyZsdDtyZXBlYXQmZ3Q7IHNlY29uZHMgbGF0ZXIsIGFnYWluLCBhbmQgYWdhaW4sPGJyPi11bnRp bCBzdG9wcGVkIG1hbnVhbGx5Ljxicj4rQ29uZmlndXJlIHRoZSB0aW1lciB0byB0cmlnZ2VyIGFm dGVyIEMmbHQ7YWZ0ZXImZ3Q7IHNlY29uZHMgKGZyYWN0aW9uYWwgYW5kPGJyPituZWdhdGl2ZSB2 YWx1ZXMgYXJlIHN1cHBvcnRlZCkuIElmIEMmbHQ7cmVwZWF0Jmd0OyBpcyBDJmx0OzAuJmd0Oywg dGhlbiBpdCB3aWxsPGJyPithdXRvbWF0aWNhbGx5IGJlIHN0b3BwZWQgb25jZSB0aGUgdGltZW91 dCBpcyByZWFjaGVkLiBJZiBpdCBpcyBwb3NpdGl2ZSw8YnI+K3RoZW4gdGhlIHRpbWVyIHdpbGwg YXV0b21hdGljYWxseSBiZSBjb25maWd1cmVkIHRvIHRyaWdnZXIgYWdhaW4gQyZsdDtyZXBlYXQm Z3Q7PGJyPitzZWNvbmRzIGxhdGVyLCBhZ2FpbiwgYW5kIGFnYWluLCB1bnRpbCBzdG9wcGVkIG1h bnVhbGx5Ljxicj4mbmJzcDs8YnI+Jm5ic3A7VGhlIHRpbWVyIGl0c2VsZiB3aWxsIGRvIGEgYmVz dC1lZmZvcnQgYXQgYXZvaWRpbmcgZHJpZnQsIHRoYXQgaXMsIGlmPGJyPiZuYnNwO3lvdSBjb25m aWd1cmUgYSB0aW1lciB0byB0cmlnZ2VyIGV2ZXJ5IDEwIHNlY29uZHMsIHRoZW4gaXQgd2lsbCBu b3JtYWxseTxicj5AQCAtMjIyNiw4ICsyMzM1LDggQEAgaXQsIGFzIGl0IHVzZXMgYSByZWxhdGl2 ZSB0aW1lb3V0KS48YnI+Jm5ic3A7PGJyPiZuYnNwO0MmbHQ7ZXZfcGVyaW9kaWMmZ3Q7IHdhdGNo ZXJzIGNhbiBhbHNvIGJlIHVzZWQgdG8gaW1wbGVtZW50IHZhc3RseSBtb3JlIGNvbXBsZXg8YnI+ Jm5ic3A7dGltZXJzLCBzdWNoIGFzIHRyaWdnZXJpbmcgYW4gZXZlbnQgb24gZWFjaCAibWlkbmln aHQsIGxvY2FsIHRpbWUiLCBvcjxicj4tb3RoZXIgY29tcGxpY2F0ZWQgcnVsZXMuIFRoaXMgY2Fu bm90IGJlIGRvbmUgd2l0aCBDJmx0O2V2X3RpbWVyJmd0OyB3YXRjaGVycywgYXM8YnI+LXRob3Nl IGNhbm5vdCByZWFjdCB0byB0aW1lIGp1bXBzLjxicj4rb3RoZXIgY29tcGxpY2F0ZWQgcnVsZXMu IFRoaXMgY2Fubm90IGVhc2lseSBiZSBkb25lIHdpdGggQyZsdDtldl90aW1lciZndDs8YnI+K3dh dGNoZXJzLCBhcyB0aG9zZSBjYW5ub3QgcmVhY3QgdG8gdGltZSBqdW1wcy48YnI+Jm5ic3A7PGJy PiZuYnNwO0FzIHdpdGggdGltZXJzLCB0aGUgY2FsbGJhY2sgaXMgZ3VhcmFudGVlZCB0byBiZSBp bnZva2VkIG9ubHkgd2hlbiB0aGU8YnI+Jm5ic3A7cG9pbnQgaW4gdGltZSB3aGVyZSBpdCBpcyBz dXBwb3NlZCB0byB0cmlnZ2VyIGhhcyBwYXNzZWQuIElmIG11bHRpcGxlPGJyPkBAIC0yMzIzLDEw ICsyNDMyLDI4IEBAIE5PVEU6IEkmbHQ7Jmx0OyBUaGlzIGNhbGxiYWNrIG11c3QgYWx3YXlzIHJl dHVybiBhIHRpbWUgdGhhdCBpcyBoaWdoZXIgdGhhbiBvcjxicj4mbmJzcDtlcXVhbCB0byB0aGUg cGFzc2VkIEMmbHQ7bm93Jmd0OyB2YWx1ZSAmZ3Q7Jmd0Oy48YnI+Jm5ic3A7PGJyPiZuYnNwO1Ro aXMgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIHZlcnkgY29tcGxleCB0aW1lcnMsIHN1Y2ggYXMgYSB0 aW1lciB0aGF0PGJyPi10cmlnZ2VycyBvbiAibmV4dCBtaWRuaWdodCwgbG9jYWwgdGltZSIuIFRv IGRvIHRoaXMsIHlvdSB3b3VsZCBjYWxjdWxhdGUgdGhlPGJyPi1uZXh0IG1pZG5pZ2h0IGFmdGVy IEMmbHQ7bm93Jmd0OyBhbmQgcmV0dXJuIHRoZSB0aW1lc3RhbXAgdmFsdWUgZm9yIHRoaXMuIEhv dzxicj4teW91IGRvIHRoaXMgaXMsIGFnYWluLCB1cCB0byB5b3UgKGJ1dCBpdCBpcyBub3QgdHJp dmlhbCwgd2hpY2ggaXMgdGhlIG1haW48YnI+LXJlYXNvbiBJIG9taXR0ZWQgaXQgYXMgYW4gZXhh bXBsZSkuPGJyPit0cmlnZ2VycyBvbiAibmV4dCBtaWRuaWdodCwgbG9jYWwgdGltZSIuIFRvIGRv IHRoaXMsIHlvdSB3b3VsZCBjYWxjdWxhdGU8YnI+K3RoZSBuZXh0IG1pZG5pZ2h0IGFmdGVyIEMm bHQ7bm93Jmd0OyBhbmQgcmV0dXJuIHRoZSB0aW1lc3RhbXAgdmFsdWUgZm9yPGJyPit0aGlzLiBI ZXJlIGlzIGEgKGNvbXBsZXRlbHkgdW50ZXN0ZWQsIG5vIGVycm9yIGNoZWNraW5nKSBleGFtcGxl IG9uIGhvdyB0bzxicj4rZG8gdGhpczo8YnI+Kzxicj4rICZuYnNwOyAjaW5jbHVkZSAmbHQ7dGlt ZS5oJmd0Ozxicj4rPGJyPisgJm5ic3A7IHN0YXRpYyBldl90c3RhbXA8YnI+KyAmbmJzcDsgbXlf cmVzY2hlZHVsZXIgKGV2X3BlcmlvZGljICp3LCBldl90c3RhbXAgbm93KTxicj4rICZuYnNwOyB7 PGJyPisgJm5ic3A7ICZuYnNwOyB0aW1lX3QgdG5vdyA9ICh0aW1lX3Qpbm93Ozxicj4rICZuYnNw OyAmbmJzcDsgc3RydWN0IHRtIHRtOzxicj4rICZuYnNwOyAmbmJzcDsgbG9jYWx0aW1lX3IgKCZh bXA7dG5vdywgJmFtcDt0bSk7PGJyPis8YnI+KyAmbmJzcDsgJm5ic3A7IHRtLnRtX3NlYyA9IHRt LnRtX21pbiA9IHRtLnRtX2hvdXIgPSAwOyAvLyBtaWRuaWdodCBjdXJyZW50IGRheTxicj4rICZu YnNwOyAmbmJzcDsgKyt0bS50bV9tZGF5OyAvLyBtaWRuaWdodCBuZXh0IGRheTxicj4rPGJyPisg Jm5ic3A7ICZuYnNwOyByZXR1cm4gbWt0aW1lICgmYW1wO3RtKTs8YnI+KyAmbmJzcDsgfTxicj4r PGJyPitOb3RlOiB0aGlzIGNvZGUgbWlnaHQgcnVuIGludG8gdHJvdWJsZSBvbiBkYXlzIHRoYXQg aGF2ZSBtb3JlIHRoZW4gdHdvPGJyPittaWRuaWdodHMgKGJlZ2lubmluZyBhbmQgZW5kKS48YnI+ Jm5ic3A7PGJyPiZuYnNwOz1iYWNrPGJyPiZuYnNwOzxicj5AQCAtMzUxOSw3ICszNjQ2LDcgQEAg VGhlcmUgYXJlIHNvbWUgb3RoZXIgZnVuY3Rpb25zIG9mIHBvc3NpYmxlIGludGVyZXN0LiBEZXNj cmliZWQuIEhlcmUuIE5vdy48YnI+Jm5ic3A7PGJyPiZuYnNwOz1vdmVyIDQ8YnI+Jm5ic3A7PGJy Pi09aXRlbSBldl9vbmNlIChsb29wLCBpbnQgZmQsIGludCBldmVudHMsIGV2X3RzdGFtcCB0aW1l b3V0LCBjYWxsYmFjayk8YnI+Kz1pdGVtIGV2X29uY2UgKGxvb3AsIGludCBmZCwgaW50IGV2ZW50 cywgZXZfdHN0YW1wIHRpbWVvdXQsIGNhbGxiYWNrLCBhcmcpPGJyPiZuYnNwOzxicj4mbmJzcDtU aGlzIGZ1bmN0aW9uIGNvbWJpbmVzIGEgc2ltcGxlIHRpbWVyIGFuZCBhbiBJL08gd2F0Y2hlciwg Y2FsbHMgeW91cjxicj4mbmJzcDtjYWxsYmFjayBvbiB3aGljaGV2ZXIgZXZlbnQgaGFwcGVucyBm aXJzdCBhbmQgYXV0b21hdGljYWxseSBzdG9wcyBib3RoPGJyPkBAIC0zOTYxLDE0ICs0MDg4LDE0 IEBAIGxpYmV2IHNvdXJjZXMgY2FuIGJlIGNvbXBpbGVkIGFzIEMrKy4gVGhlcmVmb3JlLCBjb2Rl IHRoYXQgdXNlcyB0aGUgQyBBUEk8YnI+Jm5ic3A7d2lsbCB3b3JrIGZpbmUuPGJyPiZuYnNwOzxi cj4mbmJzcDtQcm9wZXIgZXhjZXB0aW9uIHNwZWNpZmljYXRpb25zIG1pZ2h0IGhhdmUgdG8gYmUg YWRkZWQgdG8gY2FsbGJhY2tzIHBhc3NlZDxicj4tdG8gbGliZXY6IGV4Y2VwdGlvbnMgbWF5IGJl IHRocm93biBvbmx5IGZyb20gd2F0Y2hlciBjYWxsYmFja3MsIGFsbDxicj4tb3RoZXIgY2FsbGJh Y2tzIChhbGxvY2F0b3IsIHN5c2VyciwgbG9vcCBhY3F1aXJlL3JlbGVhc2UgYW5kIHBlcmlvZGlj PGJyPi1yZXNjaGVkdWxlIGNhbGxiYWNrcykgbXVzdCBub3QgdGhyb3cgZXhjZXB0aW9ucywgYW5k IG1pZ2h0IG5lZWQgYSBDJmx0O3Rocm93PGJyPi0oKSZndDsgc3BlY2lmaWNhdGlvbi4gSWYgeW91 IGhhdmUgY29kZSB0aGF0IG5lZWRzIHRvIGJlIGNvbXBpbGVkIGFzIGJvdGggQzxicj4tYW5kIEMr KyB5b3UgY2FuIHVzZSB0aGUgQyZsdDtFVl9USFJPVyZndDsgbWFjcm8gZm9yIHRoaXM6PGJyPit0 byBsaWJldjogZXhjZXB0aW9ucyBtYXkgYmUgdGhyb3duIG9ubHkgZnJvbSB3YXRjaGVyIGNhbGxi YWNrcywgYWxsIG90aGVyPGJyPitjYWxsYmFja3MgKGFsbG9jYXRvciwgc3lzZXJyLCBsb29wIGFj cXVpcmUvcmVsZWFzZSBhbmQgcGVyaW9kaWMgcmVzY2hlZHVsZTxicj4rY2FsbGJhY2tzKSBtdXN0 IG5vdCB0aHJvdyBleGNlcHRpb25zLCBhbmQgbWlnaHQgbmVlZCBhIEMmbHQ7bm9leGNlcHQmZ3Q7 PGJyPitzcGVjaWZpY2F0aW9uLiBJZiB5b3UgaGF2ZSBjb2RlIHRoYXQgbmVlZHMgdG8gYmUgY29t cGlsZWQgYXMgYm90aCBDIGFuZDxicj4rQysrIHlvdSBjYW4gdXNlIHRoZSBDJmx0O0VWX05PRVhD RVBUJmd0OyBtYWNybyBmb3IgdGhpczo8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDsgc3RhdGlj IHZvaWQ8YnI+LSAmbmJzcDsgZmF0YWxfZXJyb3IgKGNvbnN0IGNoYXIgKm1zZykgRVZfVEhST1c8 YnI+KyAmbmJzcDsgZmF0YWxfZXJyb3IgKGNvbnN0IGNoYXIgKm1zZykgRVZfTk9FWENFUFQ8YnI+ Jm5ic3A7ICZuYnNwOyB7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7IHBlcnJvciAobXNnKTs8YnI+ Jm5ic3A7ICZuYnNwOyAmbmJzcDsgYWJvcnQgKCk7PGJyPkBAIC00MTQyLDYgKzQyNjksOSBAQCBt ZXRob2QuPGJyPiZuYnNwO0ZvciBDJmx0O2V2OjplbWJlZCZndDsgd2F0Y2hlcnMgdGhpcyBtZXRo b2QgaXMgY2FsbGVkIEMmbHQ7c2V0X2VtYmVkJmd0OywgdG8gYXZvaWQ8YnI+Jm5ic3A7Y2xhc2hp bmcgd2l0aCB0aGUgQyZsdDtzZXQgKGxvb3ApJmd0OyBtZXRob2QuPGJyPiZuYnNwOzxicj4rRm9y IEMmbHQ7ZXY6OmlvJmd0OyB3YXRjaGVycyB0aGVyZSBpcyBhbiBhZGRpdGlvbmFsIEMmbHQ7c2V0 Jmd0OyBtZXRob2QgdGhhdCBhY2VwdHMgYTxicj4rbmV3IGV2ZW50IG1hc2sgb25seSwgYW5kIGlu dGVybmFsbHkgY2FsbHMgQyZsdDtldl9pb19tb2RmaWZ5Jmd0Oy48YnI+Kzxicj4mbmJzcDs9aXRl bSB3LSZndDtzdGFydCAoKTxicj4mbmJzcDs8YnI+Jm5ic3A7U3RhcnRzIHRoZSB3YXRjaGVyLiBO b3RlIHRoYXQgdGhlcmUgaXMgbm8gQyZsdDtsb29wJmd0OyBhcmd1bWVudCwgYXMgdGhlPGJyPkBA IC00Mzg4LDExICs0NTE4LDEzIEBAIGluIHlvdXIgaW5jbHVkZSBwYXRoIChlLmcuIGluIGxpYmV2 LyB3aGVuIHVzaW5nIC1JbGliZXYpOjxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwOyBldl93aW4z Mi5jICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVxdWlyZWQgb24gd2luMzIgcGxhdGZvcm1zIG9ubHk8 YnI+Jm5ic3A7PGJyPi0gJm5ic3A7IGV2X3NlbGVjdC5jICZuYnNwOyAmbmJzcDsgb25seSB3aGVu IHNlbGVjdCBiYWNrZW5kIGlzIGVuYWJsZWQgKHdoaWNoIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCk8 YnI+LSAmbmJzcDsgZXZfcG9sbC5jICZuYnNwOyAmbmJzcDsgJm5ic3A7IG9ubHkgd2hlbiBwb2xs IGJhY2tlbmQgaXMgZW5hYmxlZCAoZGlzYWJsZWQgYnkgZGVmYXVsdCk8YnI+LSAmbmJzcDsgZXZf ZXBvbGwuYyAmbmJzcDsgJm5ic3A7ICZuYnNwO29ubHkgd2hlbiB0aGUgZXBvbGwgYmFja2VuZCBp cyBlbmFibGVkIChkaXNhYmxlZCBieSBkZWZhdWx0KTxicj4tICZuYnNwOyBldl9rcXVldWUuYyAm bmJzcDsgJm5ic3A7IG9ubHkgd2hlbiB0aGUga3F1ZXVlIGJhY2tlbmQgaXMgZW5hYmxlZCAoZGlz YWJsZWQgYnkgZGVmYXVsdCk8YnI+LSAmbmJzcDsgZXZfcG9ydC5jICZuYnNwOyAmbmJzcDsgJm5i c3A7IG9ubHkgd2hlbiB0aGUgc29sYXJpcyBwb3J0IGJhY2tlbmQgaXMgZW5hYmxlZCAoZGlzYWJs ZWQgYnkgZGVmYXVsdCk8YnI+KyAmbmJzcDsgZXZfc2VsZWN0LmMgJm5ic3A7ICZuYnNwOyBvbmx5 IHdoZW4gc2VsZWN0IGJhY2tlbmQgaXMgZW5hYmxlZDxicj4rICZuYnNwOyBldl9wb2xsLmMgJm5i c3A7ICZuYnNwOyAmbmJzcDsgb25seSB3aGVuIHBvbGwgYmFja2VuZCBpcyBlbmFibGVkPGJyPisg Jm5ic3A7IGV2X2Vwb2xsLmMgJm5ic3A7ICZuYnNwOyAmbmJzcDtvbmx5IHdoZW4gdGhlIGVwb2xs IGJhY2tlbmQgaXMgZW5hYmxlZDxicj4rICZuYnNwOyBldl9saW51eGFpby5jICZuYnNwOyBvbmx5 IHdoZW4gdGhlIGxpbnV4IGFpbyBiYWNrZW5kIGlzIGVuYWJsZWQ8YnI+KyAmbmJzcDsgZXZfaW91 cmluZy5jICZuYnNwOyAmbmJzcDtvbmx5IHdoZW4gdGhlIGxpbnV4IGlvX3VyaW5nIGJhY2tlbmQg aXMgZW5hYmxlZDxicj4rICZuYnNwOyBldl9rcXVldWUuYyAmbmJzcDsgJm5ic3A7IG9ubHkgd2hl biB0aGUga3F1ZXVlIGJhY2tlbmQgaXMgZW5hYmxlZDxicj4rICZuYnNwOyBldl9wb3J0LmMgJm5i c3A7ICZuYnNwOyAmbmJzcDsgb25seSB3aGVuIHRoZSBzb2xhcmlzIHBvcnQgYmFja2VuZCBpcyBl bmFibGVkPGJyPiZuYnNwOzxicj4mbmJzcDtGJmx0O2V2LmMmZ3Q7IGluY2x1ZGVzIHRoZSBiYWNr ZW5kIGZpbGVzIGRpcmVjdGx5IHdoZW4gZW5hYmxlZCwgc28geW91IG9ubHkgbmVlZDxicj4mbmJz cDt0byBjb21waWxlIHRoaXMgc2luZ2xlIGZpbGUuPGJyPkBAIC00NTIxLDYgKzQ2NTMsMzAgQEAg QyZsdDtldl9zaWduYWwmZ3Q7IGFuZCBDJmx0O2V2X2FzeW5jJmd0OyBwZXJmb3JtYW5jZSBhbmQg cmVkdWNlIHJlc291cmNlIGNvbnN1bXB0aW9uLjxicj4mbmJzcDtJZiB1bmRlZmluZWQsIGl0IHdp bGwgYmUgZW5hYmxlZCBpZiB0aGUgaGVhZGVycyBpbmRpY2F0ZSBHTlUvTGludXggKyBHbGliYzxi cj4mbmJzcDsyLjcgb3IgbmV3ZXIsIG90aGVyd2lzZSBkaXNhYmxlZC48YnI+Jm5ic3A7PGJyPis9 aXRlbSBFVl9VU0VfU0lHTkFMRkQ8YnI+Kzxicj4rSWYgZGVmaW5lZCB0byBiZSBDJmx0OzEmZ3Q7 LCB0aGVuIGxpYmV2IHdpbGwgYXNzdW1lIHRoYXQgQyZsdDtzaWduYWxmZCAoKSZndDsgaXM8YnI+ K2F2YWlsYWJsZSBhbmQgd2lsbCBwcm9iZSBmb3Iga2VybmVsIHN1cHBvcnQgYXQgcnVudGltZS4g VGhpcyBlbmFibGVzPGJyPit0aGUgdXNlIG9mIEVWRkxBR19TSUdOQUxGRCBmb3IgZmFzdGVyIGFu ZCBzaW1wbGVyIHNpZ25hbCBoYW5kbGluZy4gSWY8YnI+K3VuZGVmaW5lZCwgaXQgd2lsbCBiZSBl bmFibGVkIGlmIHRoZSBoZWFkZXJzIGluZGljYXRlIEdOVS9MaW51eCArIEdsaWJjPGJyPisyLjcg b3IgbmV3ZXIsIG90aGVyd2lzZSBkaXNhYmxlZC48YnI+Kzxicj4rPWl0ZW0gRVZfVVNFX1RJTUVS RkQ8YnI+Kzxicj4rSWYgZGVmaW5lZCB0byBiZSBDJmx0OzEmZ3Q7LCB0aGVuIGxpYmV2IHdpbGwg YXNzdW1lIHRoYXQgQyZsdDt0aW1lcmZkICgpJmd0OyBpczxicj4rYXZhaWxhYmxlIGFuZCB3aWxs IHByb2JlIGZvciBrZXJuZWwgc3VwcG9ydCBhdCBydW50aW1lLiBUaGlzIGFsbG93czxicj4rbGli ZXYgdG8gZGV0ZWN0IHRpbWUganVtcHMgYWNjdXJhdGVseS4gSWYgdW5kZWZpbmVkLCBpdCB3aWxs IGJlIGVuYWJsZWQ8YnI+K2lmIHRoZSBoZWFkZXJzIGluZGljYXRlIEdOVS9MaW51eCArIEdsaWJj IDIuOCBvciBuZXdlciBhbmQgZGVmaW5lPGJyPitDJmx0O1RGRF9USU1FUl9DQU5DRUxfT05fU0VU Jmd0Oywgb3RoZXJ3aXNlIGRpc2FibGVkLjxicj4rPGJyPis9aXRlbSBFVl9VU0VfRVZFTlRGRDxi cj4rPGJyPitJZiBkZWZpbmVkIHRvIGJlIEMmbHQ7MSZndDssIHRoZW4gbGliZXYgd2lsbCBhc3N1 bWUgdGhhdCBDJmx0O2V2ZW50ZmQgKCkmZ3Q7IGlzPGJyPithdmFpbGFibGUgYW5kIHdpbGwgcHJv YmUgZm9yIGtlcm5lbCBzdXBwb3J0IGF0IHJ1bnRpbWUuIFRoaXMgd2lsbCBpbXByb3ZlPGJyPitD Jmx0O2V2X3NpZ25hbCZndDsgYW5kIEMmbHQ7ZXZfYXN5bmMmZ3Q7IHBlcmZvcm1hbmNlIGFuZCBy ZWR1Y2UgcmVzb3VyY2UgY29uc3VtcHRpb24uPGJyPitJZiB1bmRlZmluZWQsIGl0IHdpbGwgYmUg ZW5hYmxlZCBpZiB0aGUgaGVhZGVycyBpbmRpY2F0ZSBHTlUvTGludXggKyBHbGliYzxicj4rMi43 IG9yIG5ld2VyLCBvdGhlcndpc2UgZGlzYWJsZWQuPGJyPis8YnI+Jm5ic3A7PWl0ZW0gRVZfVVNF X1NFTEVDVDxicj4mbmJzcDs8YnI+Jm5ic3A7SWYgdW5kZWZpbmVkIG9yIGRlZmluZWQgdG8gYmUg QyZsdDsxJmd0OywgbGliZXYgd2lsbCBjb21waWxlIGluIHN1cHBvcnQgZm9yIHRoZTxicj5AQCAt NDU5MSw2ICs0NzQ3LDE5IEBAIG90aGVyd2lzZSBhbm90aGVyIG1ldGhvZCB3aWxsIGJlIHVzZWQg YXMgZmFsbGJhY2suIFRoaXMgaXMgdGhlIHByZWZlcnJlZDxicj4mbmJzcDtiYWNrZW5kIGZvciBH TlUvTGludXggc3lzdGVtcy4gSWYgdW5kZWZpbmVkLCBpdCB3aWxsIGJlIGVuYWJsZWQgaWYgdGhl PGJyPiZuYnNwO2hlYWRlcnMgaW5kaWNhdGUgR05VL0xpbnV4ICsgR2xpYmMgMi40IG9yIG5ld2Vy LCBvdGhlcndpc2UgZGlzYWJsZWQuPGJyPiZuYnNwOzxicj4rPWl0ZW0gRVZfVVNFX0xJTlVYQUlP PGJyPis8YnI+K0lmIGRlZmluZWQgdG8gYmUgQyZsdDsxJmd0OywgbGliZXYgd2lsbCBjb21waWxl IGluIHN1cHBvcnQgZm9yIHRoZSBMaW51eCBhaW88YnI+K2JhY2tlbmQgKEMmbHQ7RVZfVVNFX0VQ T0xMJmd0OyBtdXN0IGFsc28gYmUgZW5hYmxlZCkuIElmIHVuZGVmaW5lZCwgaXQgd2lsbCBiZTxi cj4rZW5hYmxlZCBvbiBsaW51eCwgb3RoZXJ3aXNlIGRpc2FibGVkLjxicj4rPGJyPis9aXRlbSBF Vl9VU0VfSU9VUklORzxicj4rPGJyPitJZiBkZWZpbmVkIHRvIGJlIEMmbHQ7MSZndDssIGxpYmV2 IHdpbGwgY29tcGlsZSBpbiBzdXBwb3J0IGZvciB0aGUgTGludXg8YnI+K2lvX3VyaW5nIGJhY2tl bmQgKEMmbHQ7RVZfVVNFX0VQT0xMJmd0OyBtdXN0IGFsc28gYmUgZW5hYmxlZCkuIER1ZSB0byBp dCdzPGJyPitjdXJyZW50IGxpbWl0YXRpb25zIGl0IGhhcyB0byBiZSByZXF1ZXN0ZWQgZXhwbGlj aXRseS4gSWYgdW5kZWZpbmVkLCBpdDxicj4rd2lsbCBiZSBlbmFibGVkIG9uIGxpbnV4LCBvdGhl cndpc2UgZGlzYWJsZWQuPGJyPis8YnI+Jm5ic3A7PWl0ZW0gRVZfVVNFX0tRVUVVRTxicj4mbmJz cDs8YnI+Jm5ic3A7SWYgZGVmaW5lZCB0byBiZSBDJmx0OzEmZ3Q7LCBsaWJldiB3aWxsIGNvbXBp bGUgaW4gc3VwcG9ydCBmb3IgdGhlIEJTRCBzdHlsZTxicj5AQCAtNDg3Nyw2ICs1MDQ2LDkgQEAg Y2FsbGVkIG9uY2UgcGVyIGxvb3AsIHdoaWNoIGNhbiBzbG93IGRvd24gbGliZXYuIElmIHNldCB0 byBDJmx0OzMmZ3Q7LCB0aGVuIHRoZTxicj4mbmJzcDt2ZXJpZmljYXRpb24gY29kZSB3aWxsIGJl IGNhbGxlZCB2ZXJ5IGZyZXF1ZW50bHksIHdoaWNoIHdpbGwgc2xvdyBkb3duPGJyPiZuYnNwO2xp YmV2IGNvbnNpZGVyYWJseS48YnI+Jm5ic3A7PGJyPitWZXJpZmljYXRpb24gZXJyb3JzIGFyZSBy ZXBvcnRlZCB2aWEgQydzIEMmbHQ7YXNzZXJ0Jmd0OyBtZWNoYW5pc20sIHNvIGlmIHlvdTxicj4r ZGlzYWJsZSB0aGF0IChlLmcuIGJ5IGRlZmluaW5nIEMmbHQ7TkRFQlVHJmd0OykgdGhlbiBubyBl cnJvcnMgd2lsbCBiZSByZXBvcnRlZC48YnI+Kzxicj4mbmJzcDtUaGUgZGVmYXVsdCBpcyBDJmx0 OzEmZ3Q7LCB1bmxlc3MgQyZsdDtFVl9GRUFUVVJFUyZndDsgb3ZlcnJpZGVzIGl0LCBpbiB3aGlj aCBjYXNlIGl0PGJyPiZuYnNwO3dpbGwgYmUgQyZsdDswJmd0Oy48YnI+Jm5ic3A7PGJyPmRpZmYg LS1naXQgYS90aGlyZF9wYXJ0eS9saWJldi9ldl9lcG9sbC5jIGIvdGhpcmRfcGFydHkvbGliZXYv ZXZfZXBvbGwuYzxicj5pbmRleCBkZjExOGE2ZmUuLjM0NmI0MTk2YiAxMDA2NDQ8YnI+LS0tIGEv dGhpcmRfcGFydHkvbGliZXYvZXZfZXBvbGwuYzxicj4rKysgYi90aGlyZF9wYXJ0eS9saWJldi9l dl9lcG9sbC5jPGJyPkBAIC0xLDcgKzEsNyBAQDxicj4mbmJzcDsvKjxicj4mbmJzcDsgKiBsaWJl diBlcG9sbCBmZCBhY3Rpdml0eSBiYWNrZW5kPGJyPiZuYnNwOyAqPGJyPi0gKiBDb3B5cmlnaHQg KGMpIDIwMDcsMjAwOCwyMDA5LDIwMTAsMjAxMSBNYXJjIEFsZXhhbmRlciBMZWhtYW5uICZsdDts aWJldkBzY2htb3JwLmRlJmd0Ozxicj4rICogQ29weXJpZ2h0IChjKSAyMDA3LDIwMDgsMjAwOSwy MDEwLDIwMTEsMjAxNiwyMDE3LDIwMTkgTWFyYyBBbGV4YW5kZXIgTGVobWFubiAmbHQ7bGliZXZA c2NobW9ycC5kZSZndDs8YnI+Jm5ic3A7ICogQWxsIHJpZ2h0cyByZXNlcnZlZC48YnI+Jm5ic3A7 ICo8YnI+Jm5ic3A7ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhLTxicj5AQCAtOTMsMTAgKzkzLDEwIEBA IGVwb2xsX21vZGlmeSAoRVZfUF8gaW50IGZkLCBpbnQgb2V2LCBpbnQgbmV2KTxicj4mbmJzcDsg Jm5ic3A7ZXYuZXZlbnRzICZuYnNwOyA9IChuZXYgJmFtcDsgRVZfUkVBRCAmbmJzcDs/IEVQT0xM SU4gJm5ic3A7OiAwKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7fCAobmV2ICZhbXA7IEVWX1dSSVRFID8gRVBPTExPVVQgOiAwKTs8YnI+ Jm5ic3A7PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF90cnVlICghZXBvbGxfY3RsIChiYWNrZW5kX2Zk LCBvZXYgJmFtcDsmYW1wOyBvbGRtYXNrICE9IG5ldiA/IEVQT0xMX0NUTF9NT0QgOiBFUE9MTF9D VExfQURELCBmZCwgJmFtcDtldikpKTxicj4rICZuYnNwO2lmIChlY2JfZXhwZWN0X3RydWUgKCFl cG9sbF9jdGwgKGJhY2tlbmRfZmQsIG9ldiAmYW1wOyZhbXA7IG9sZG1hc2sgIT0gbmV2ID8gRVBP TExfQ1RMX01PRCA6IEVQT0xMX0NUTF9BREQsIGZkLCAmYW1wO2V2KSkpPGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7cmV0dXJuOzxicj4mbmJzcDs8YnI+LSAmbmJzcDtpZiAoZXhwZWN0X3RydWUgKGVy cm5vID09IEVOT0VOVCkpPGJyPisgJm5ic3A7aWYgKGVjYl9leHBlY3RfdHJ1ZSAoZXJybm8gPT0g RU5PRU5UKSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOy8qIGlmIEVOT0VOVCB0aGVuIHRoZSBmZCB3ZW50IGF3YXksIHNvIHRyeSB0byBkbyB0 aGUgcmlnaHQgdGhpbmcgKi88YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKCFuZXYp PGJyPkBAIC0xMDUsNyArMTA1LDcgQEAgZXBvbGxfbW9kaWZ5IChFVl9QXyBpbnQgZmQsIGludCBv ZXYsIGludCBuZXYpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmICghZXBvbGxfY3Rs IChiYWNrZW5kX2ZkLCBFUE9MTF9DVExfQURELCBmZCwgJmFtcDtldikpPGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm47PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxi cj4tICZuYnNwO2Vsc2UgaWYgKGV4cGVjdF90cnVlIChlcnJubyA9PSBFRVhJU1QpKTxicj4rICZu YnNwO2Vsc2UgaWYgKGVjYl9leHBlY3RfdHJ1ZSAoZXJybm8gPT0gRUVYSVNUKSk8YnI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIEVFWElTVCBt ZWFucyB3ZSBpZ25vcmVkIGEgcHJldmlvdXMgREVMLCBidXQgdGhlIGZkIGlzIHN0aWxsIGFjdGl2 ZSAqLzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBpZiB0aGUga2VybmVsIG1hc2sg aXMgdGhlIHNhbWUgYXMgdGhlIG5ldyBtYXNrLCB3ZSBhc3N1bWUgaXQgaGFzbid0IGNoYW5nZWQg Ki88YnI+QEAgLTExNSw3ICsxMTUsNyBAQCBlcG9sbF9tb2RpZnkgKEVWX1BfIGludCBmZCwgaW50 IG9ldiwgaW50IG5ldik8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKCFlcG9sbF9j dGwgKGJhY2tlbmRfZmQsIEVQT0xMX0NUTF9NT0QsIGZkLCAmYW1wO2V2KSk8YnI+Jm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybjs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9 PGJyPi0gJm5ic3A7ZWxzZSBpZiAoZXhwZWN0X3RydWUgKGVycm5vID09IEVQRVJNKSk8YnI+KyAm bmJzcDtlbHNlIGlmIChlY2JfZXhwZWN0X3RydWUgKGVycm5vID09IEVQRVJNKSk8YnI+Jm5ic3A7 ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIEVQRVJNIG1l YW5zIHRoZSBmZCBpcyBhbHdheXMgcmVhZHksIGJ1dCBlcG9sbCBpcyB0b28gc25vYmJpc2ggKi88 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogdG8gaGFuZGxlIGl0LCB1bmxpa2Ugc2Vs ZWN0IG9yIHBvbGwuICovPGJyPkBAIC0xMjQsNyArMTI0LDcgQEAgZXBvbGxfbW9kaWZ5IChFVl9Q XyBpbnQgZmQsIGludCBvZXYsIGludCBuZXYpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw Oy8qIGFkZCBmZCB0byBlcG9sbF9lcGVybXMsIGlmIG5vdCBhbHJlYWR5IGluc2lkZSAqLzxicj4m bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoIShvbGRtYXNrICZhbXA7IEVWX0VNQVNLX0VQ RVJNKSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+LSAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YXJyYXlfbmVlZHNpemUgKGludCwgZXBvbGxfZXBl cm1zLCBlcG9sbF9lcGVybW1heCwgZXBvbGxfZXBlcm1jbnQgKyAxLCBFTVBUWTIpOzxicj4rICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDthcnJheV9uZWVkc2l6ZSAoaW50LCBlcG9s bF9lcGVybXMsIGVwb2xsX2VwZXJtbWF4LCBlcG9sbF9lcGVybWNudCArIDEsIGFycmF5X25lZWRz aXplX25vaW5pdCk7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ZXBvbGxfZXBlcm1zIFtlcG9sbF9lcGVybWNudCsrXSA9IGZkOzxicj4mbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+QEAgLTE0NCwxNiArMTQ0LDE2IEBAIGVw b2xsX3BvbGwgKEVWX1BfIGV2X3RzdGFtcCB0aW1lb3V0KTxicj4mbmJzcDsgJm5ic3A7aW50IGk7 PGJyPiZuYnNwOyAmbmJzcDtpbnQgZXZlbnRjbnQ7PGJyPiZuYnNwOzxicj4tICZuYnNwO2lmIChl eHBlY3RfZmFsc2UgKGVwb2xsX2VwZXJtY250KSk8YnI+LSAmbmJzcDsgJm5ic3A7dGltZW91dCA9 IDAuOzxicj4rICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlIChlcG9sbF9lcGVybWNudCkpPGJy PisgJm5ic3A7ICZuYnNwO3RpbWVvdXQgPSBFVl9UU19DT05TVCAoMC4pOzxicj4mbmJzcDs8YnI+ Jm5ic3A7ICZuYnNwOy8qIGVwb2xsIHdhaXQgdGltZXMgY2Fubm90IGJlIGxhcmdlciB0aGFuIChM T05HX01BWCAtIDk5OVVMKSAvIEhaIG1zZWNzLCB3aGljaCBpcyBiZWxvdyAqLzxicj4mbmJzcDsg Jm5ic3A7LyogdGhlIGRlZmF1bHQgbGliZXYgbWF4IHdhaXQgdGltZSwgaG93ZXZlci4gKi88YnI+ Jm5ic3A7ICZuYnNwO0VWX1JFTEVBU0VfQ0I7PGJyPi0gJm5ic3A7ZXZlbnRjbnQgPSBlcG9sbF93 YWl0IChiYWNrZW5kX2ZkLCBlcG9sbF9ldmVudHMsIGVwb2xsX2V2ZW50bWF4LCB0aW1lb3V0ICog MWUzKTs8YnI+KyAmbmJzcDtldmVudGNudCA9IGVwb2xsX3dhaXQgKGJhY2tlbmRfZmQsIGVwb2xs X2V2ZW50cywgZXBvbGxfZXZlbnRtYXgsIEVWX1RTX1RPX01TRUMgKHRpbWVvdXQpKTs8YnI+Jm5i c3A7ICZuYnNwO0VWX0FDUVVJUkVfQ0I7PGJyPiZuYnNwOzxicj4tICZuYnNwO2lmIChleHBlY3Rf ZmFsc2UgKGV2ZW50Y250ICZsdDsgMCkpPGJyPisgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2Ug KGV2ZW50Y250ICZsdDsgMCkpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDtpZiAoZXJybm8gIT0gRUlOVFIpPGJyPiZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDtldl9zeXNlcnIgKCIobGliZXYpIGVwb2xsX3dhaXQiKTs8YnI+QEAg LTE3NiwxNCArMTc2LDE0IEBAIGVwb2xsX3BvbGwgKEVWX1BfIGV2X3RzdGFtcCB0aW1lb3V0KTxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgKiBvdGhlciBzcHVyaW91cyBub3RpZmljYXRp b25zIHdpbGwgYmUgZm91bmQgYnkgZXBvbGxfY3RsLCBiZWxvdzxicj4mbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgKiB3ZSBhc3N1bWUgdGhhdCBmZCBpcyBhbHdheXMgaW4gcmFuZ2UsIGFzIHdl IG5ldmVyIHNocmluayB0aGUgYW5mZHMgYXJyYXk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICovPGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZXhwZWN0X2ZhbHNlICgodWludDMy X3QpYW5mZHMgW2ZkXS5lZ2VuICE9ICh1aW50MzJfdCkoZXYtJmd0O2RhdGEudTY0ICZndDsmZ3Q7 IDMyKSkpPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoKHVp bnQzMl90KWFuZmRzIFtmZF0uZWdlbiAhPSAodWludDMyX3QpKGV2LSZndDtkYXRhLnU2NCAmZ3Q7 Jmd0OyAzMikpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIHJlY3JlYXRlIGtlcm5lbCBz dGF0ZSAqLzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3Bvc3Rm b3JrIHw9IDI7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Y29u dGludWU7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxi cj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAoZ290ICZhbXA7IH53YW50 KSk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlIChnb3QgJmFt cDsgfndhbnQpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2FuZmRzIFtmZF0uZW1hc2sgPSB3 YW50Ozxicj4mbmJzcDs8YnI+QEAgLTE5NSw2ICsxOTUsOCBAQCBlcG9sbF9wb2xsIChFVl9QXyBl dl90c3RhbXAgdGltZW91dCk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgKiBhYm92ZSB3aXRoIHRoZSBnZW5jb3VudGVyIGNoZWNrICg9PSBvdXIgZmQgaXMgbm90 IHRoZSBldmVudCBmZCksIGFuZDxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAqIHBhcnRpYWxseSBoZXJlLCB3aGVuIGVwb2xsX2N0bCByZXR1cm5zIGFuIGVycm9y ICg9PSBhIGNoaWxkIGhhcyB0aGUgZmQ8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgKiBidXQgd2UgY2xvc2VkIGl0KS48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICogbm90ZTogZm9yIGV2ZW50cyBzdWNoIGFzIFBPTExIVVAsIHdoZXJl IHdlIGNhbid0IGtub3cgd2hldGhlciBpdCByZWZlcnM8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICogdG8gRVZfUkVBRCBvciBFVl9XUklURSwgd2UgbWlnaHQgaXNzdWUg cmVkdW5kYW50IEVQT0xMX0NUTF9NT0QgY2FsbHMuPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICovPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ZXYtJmd0O2V2ZW50cyA9ICh3YW50ICZhbXA7IEVWX1JFQUQgJm5ic3A7PyBFUE9M TElOICZuYnNwOzogMCk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB8ICh3YW50ICZhbXA7IEVWX1dS SVRFID8gRVBPTExPVVQgOiAwKTs8YnI+QEAgLTIxMiw3ICsyMTQsNyBAQCBlcG9sbF9wb2xsIChF Vl9QXyBldl90c3RhbXAgdGltZW91dCk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNw Ozxicj4mbmJzcDsgJm5ic3A7LyogaWYgdGhlIHJlY2VpdmUgYXJyYXkgd2FzIGZ1bGwsIGluY3Jl YXNlIGl0cyBzaXplICovPGJyPi0gJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAoZXZlbnRjbnQgPT0g ZXBvbGxfZXZlbnRtYXgpKTxicj4rICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlIChldmVudGNu dCA9PSBlcG9sbF9ldmVudG1heCkpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtldl9mcmVlIChlcG9sbF9ldmVudHMpOzxicj4mbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDtlcG9sbF9ldmVudG1heCA9IGFycmF5X25leHRzaXplIChzaXplb2Yg KHN0cnVjdCBlcG9sbF9ldmVudCksIGVwb2xsX2V2ZW50bWF4LCBlcG9sbF9ldmVudG1heCArIDEp Ozxicj5AQCAtMjM1LDIzICsyMzcsMzQgQEAgZXBvbGxfcG9sbCAoRVZfUF8gZXZfdHN0YW1wIHRp bWVvdXQpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDt9PGJyPiZuYnNwOzxicj4t aW5saW5lX3NpemU8YnI+LWludDxicj4tZXBvbGxfaW5pdCAoRVZfUF8gaW50IGZsYWdzKTxicj4r c3RhdGljIGludDxicj4rZXBvbGxfZXBvbGxfY3JlYXRlICh2b2lkKTxicj4mbmJzcDt7PGJyPi0j aWZkZWYgRVBPTExfQ0xPRVhFQzxicj4tICZuYnNwO2JhY2tlbmRfZmQgPSBlcG9sbF9jcmVhdGUx IChFUE9MTF9DTE9FWEVDKTs8YnI+KyAmbmJzcDtpbnQgZmQ7PGJyPiZuYnNwOzxicj4tICZuYnNw O2lmIChiYWNrZW5kX2ZkICZsdDsgMCAmYW1wOyZhbXA7IChlcnJubyA9PSBFSU5WQUwgfHwgZXJy bm8gPT0gRU5PU1lTKSk8YnI+KyNpZiBkZWZpbmVkIEVQT0xMX0NMT0VYRUMgJmFtcDsmYW1wOyAh ZGVmaW5lZCBfX0FORFJPSURfXzxicj4rICZuYnNwO2ZkID0gZXBvbGxfY3JlYXRlMSAoRVBPTExf Q0xPRVhFQyk7PGJyPis8YnI+KyAmbmJzcDtpZiAoZmQgJmx0OyAwICZhbXA7JmFtcDsgKGVycm5v ID09IEVJTlZBTCB8fCBlcnJubyA9PSBFTk9TWVMpKTxicj4mbmJzcDsjZW5kaWY8YnI+LSAmbmJz cDsgJm5ic3A7YmFja2VuZF9mZCA9IGVwb2xsX2NyZWF0ZSAoMjU2KTs8YnI+KyAmbmJzcDsgJm5i c3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ZmQgPSBlcG9sbF9jcmVhdGUgKDI1Nik7PGJy PiZuYnNwOzxicj4tICZuYnNwO2lmIChiYWNrZW5kX2ZkICZsdDsgMCk8YnI+LSAmbmJzcDsgJm5i c3A7cmV0dXJuIDA7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZmQgJmd0Oz0gMCk8YnI+ KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtmY250bCAoZmQsIEZfU0VURkQsIEZEX0NMT0VY RUMpOzxicj4rICZuYnNwOyAmbmJzcDt9PGJyPis8YnI+KyAmbmJzcDtyZXR1cm4gZmQ7PGJyPit9 PGJyPiZuYnNwOzxicj4tICZuYnNwO2ZjbnRsIChiYWNrZW5kX2ZkLCBGX1NFVEZELCBGRF9DTE9F WEVDKTs8YnI+K2lubGluZV9zaXplPGJyPitpbnQ8YnI+K2Vwb2xsX2luaXQgKEVWX1BfIGludCBm bGFncyk8YnI+K3s8YnI+KyAmbmJzcDtpZiAoKGJhY2tlbmRfZmQgPSBlcG9sbF9lcG9sbF9jcmVh dGUgKCkpICZsdDsgMCk8YnI+KyAmbmJzcDsgJm5ic3A7cmV0dXJuIDA7PGJyPiZuYnNwOzxicj4t ICZuYnNwO2JhY2tlbmRfbWludGltZSA9IDFlLTM7IC8qIGVwb2xsIGRvZXMgc29tZXRpbWVzIHJl dHVybiBlYXJseSwgdGhpcyBpcyBqdXN0IHRvIGF2b2lkIHRoZSB3b3JzdCAqLzxicj4rICZuYnNw O2JhY2tlbmRfbWludGltZSA9IEVWX1RTX0NPTlNUICgxZS0zKTsgLyogZXBvbGwgZG9lcyBzb21l dGltZXMgcmV0dXJuIGVhcmx5LCB0aGlzIGlzIGp1c3QgdG8gYXZvaWQgdGhlIHdvcnN0ICovPGJy PiZuYnNwOyAmbmJzcDtiYWNrZW5kX21vZGlmeSAmbmJzcDs9IGVwb2xsX21vZGlmeTs8YnI+Jm5i c3A7ICZuYnNwO2JhY2tlbmRfcG9sbCAmbmJzcDsgJm5ic3A7PSBlcG9sbF9wb2xsOzxicj4mbmJz cDs8YnI+QEAgLTI2OSwxNyArMjgyLDE1IEBAIGVwb2xsX2Rlc3Ryb3kgKEVWX1ApPGJyPiZuYnNw OyAmbmJzcDthcnJheV9mcmVlIChlcG9sbF9lcGVybSwgRU1QVFkpOzxicj4mbmJzcDt9PGJyPiZu YnNwOzxicj4taW5saW5lX3NpemU8YnI+LXZvaWQ8YnI+K2VjYl9jb2xkPGJyPitzdGF0aWMgdm9p ZDxicj4mbmJzcDtlcG9sbF9mb3JrIChFVl9QKTxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDtj bG9zZSAoYmFja2VuZF9mZCk7PGJyPiZuYnNwOzxicj4tICZuYnNwO3doaWxlICgoYmFja2VuZF9m ZCA9IGVwb2xsX2NyZWF0ZSAoMjU2KSkgJmx0OyAwKTxicj4rICZuYnNwO3doaWxlICgoYmFja2Vu ZF9mZCA9IGVwb2xsX2Vwb2xsX2NyZWF0ZSAoKSkgJmx0OyAwKTxicj4mbmJzcDsgJm5ic3A7ICZu YnNwO2V2X3N5c2VyciAoIihsaWJldikgZXBvbGxfY3JlYXRlIik7PGJyPiZuYnNwOzxicj4tICZu YnNwO2ZjbnRsIChiYWNrZW5kX2ZkLCBGX1NFVEZELCBGRF9DTE9FWEVDKTs8YnI+LTxicj4mbmJz cDsgJm5ic3A7ZmRfcmVhcm1fYWxsIChFVl9BKTs8YnI+Jm5ic3A7fTxicj4mbmJzcDs8YnI+ZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2X2lvdXJpbmcuYyBiL3RoaXJkX3BhcnR5L2xp YmV2L2V2X2lvdXJpbmcuYzxicj5uZXcgZmlsZSBtb2RlIDEwMDY0NDxicj5pbmRleCAwMDAwMDAw MDAuLmJmZDNkZTY1Zjxicj4tLS0gL2Rldi9udWxsPGJyPisrKyBiL3RoaXJkX3BhcnR5L2xpYmV2 L2V2X2lvdXJpbmcuYzxicj5AQCAtMCwwICsxLDY5NCBAQDxicj4rLyo8YnI+KyAqIGxpYmV2IGxp bnV4IGlvX3VyaW5nIGZkIGFjdGl2aXR5IGJhY2tlbmQ8YnI+KyAqPGJyPisgKiBDb3B5cmlnaHQg KGMpIDIwMTktMjAyMCBNYXJjIEFsZXhhbmRlciBMZWhtYW5uICZsdDtsaWJldkBzY2htb3JwLmRl Jmd0Ozxicj4rICogQWxsIHJpZ2h0cyByZXNlcnZlZC48YnI+KyAqPGJyPisgKiBSZWRpc3RyaWJ1 dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQg bW9kaWZpY2EtPGJyPisgKiB0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv bGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6PGJyPisgKjxicj4rICogJm5ic3A7IDEuICZuYnNw O1JlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w eXJpZ2h0IG5vdGljZSw8YnI+KyAqICZuYnNwOyAmbmJzcDsgJm5ic3A7IHRoaXMgbGlzdCBvZiBj b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuPGJyPisgKjxicj4rICogJm5i c3A7IDIuICZuYnNwO1JlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj ZSB0aGUgYWJvdmUgY29weXJpZ2h0PGJyPisgKiAmbmJzcDsgJm5ic3A7ICZuYnNwOyBub3RpY2Us IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g dGhlPGJyPisgKiAmbmJzcDsgJm5ic3A7ICZuYnNwOyBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLjxicj4rICo8YnI+KyAq IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFO WSBFWFBSRVNTIE9SIElNUExJRUQ8YnI+KyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUi08YnI+KyAqIENIQU5U QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN RUQuICZuYnNwO0lOIE5PPGJyPisgKiBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBG T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRS08YnI+KyAqIENJQUwsIEVY RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN SVRFRCBUTyw8YnI+KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOzxicj4rICogT1IgQlVTSU5FU1MgSU5U RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks PGJyPisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEgtPGJyPisgKiBFUldJU0UpIEFSSVNJTkcgSU4gQU5Z IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQ8YnI+ KyAqIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS48YnI+KyAqPGJyPisgKiBBbHRl cm5hdGl2ZWx5LCB0aGUgY29udGVudHMgb2YgdGhpcyBmaWxlIG1heSBiZSB1c2VkIHVuZGVyIHRo ZSB0ZXJtcyBvZjxicj4rICogdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlICgiR1BMIikg dmVyc2lvbiAyIG9yIGFueSBsYXRlciB2ZXJzaW9uLDxicj4rICogaW4gd2hpY2ggY2FzZSB0aGUg cHJvdmlzaW9ucyBvZiB0aGUgR1BMIGFyZSBhcHBsaWNhYmxlIGluc3RlYWQgb2Y8YnI+KyAqIHRo ZSBhYm92ZS4gSWYgeW91IHdpc2ggdG8gYWxsb3cgdGhlIHVzZSBvZiB5b3VyIHZlcnNpb24gb2Yg dGhpcyBmaWxlPGJyPisgKiBvbmx5IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR1BMIGFuZCBub3Qg dG8gYWxsb3cgb3RoZXJzIHRvIHVzZSB5b3VyPGJyPisgKiB2ZXJzaW9uIG9mIHRoaXMgZmlsZSB1 bmRlciB0aGUgQlNEIGxpY2Vuc2UsIGluZGljYXRlIHlvdXIgZGVjaXNpb248YnI+KyAqIGJ5IGRl bGV0aW5nIHRoZSBwcm92aXNpb25zIGFib3ZlIGFuZCByZXBsYWNlIHRoZW0gd2l0aCB0aGUgbm90 aWNlPGJyPisgKiBhbmQgb3RoZXIgcHJvdmlzaW9ucyByZXF1aXJlZCBieSB0aGUgR1BMLiBJZiB5 b3UgZG8gbm90IGRlbGV0ZSB0aGU8YnI+KyAqIHByb3Zpc2lvbnMgYWJvdmUsIGEgcmVjaXBpZW50 IG1heSB1c2UgeW91ciB2ZXJzaW9uIG9mIHRoaXMgZmlsZSB1bmRlcjxicj4rICogZWl0aGVyIHRo ZSBCU0Qgb3IgdGhlIEdQTC48YnI+KyAqLzxicj4rPGJyPisvKjxicj4rICogZ2VuZXJhbCBub3Rl cyBhYm91dCBsaW51eCBpb191cmluZzo8YnI+KyAqPGJyPisgKiBhKSBpdCdzIHRoZSBiZXN0IGlu dGVyZmFjZSBJIGhhdmUgc2VlbiBzbyBmYXIuIG9uIGxpbnV4Ljxicj4rICogYikgYmVzdCBpcyBu b3QgbmVjZXNzYXJpbHkgdmVyeSBnb29kLjxicj4rICogYykgaXQncyBiZXR0ZXIgdGhhbiB0aGUg YWlvIG1lc3MsIGRvZXNuJ3Qgc3VmZmVyIGZyb20gdGhlIGZvcmsgcHJvYmxlbXM8YnI+KyAqICZu YnNwOyAmbmJzcDtvZiBsaW51eCBhaW8gb3IgZXBvbGwgYW5kIHNvIG9uIGFuZCBzbyBvbi4gYW5k IHlvdSBjb3VsZCBkbyBldmVudCBzdHVmZjxicj4rICogJm5ic3A7ICZuYnNwO3dpdGhvdXQgYW55 IHN5c2NhbGxzLiB3aGF0J3Mgbm90IHRvIGxpa2U/PGJyPisgKiBkKSBvaywgaXQncyB2YXN0bHkg bW9yZSBjb21wbGV4LCBidXQgdGhhdCdzIG9rLCByZWFsbHkuPGJyPisgKiBlKSB3aHkgdHdvIG1t YXBzIGluc3RlYWQgb2Ygb25lPyBvbmUgd291bGQgYmUgbW9yZSBzcGFjZS1lZmZpY2llbnQsPGJy PisgKiAmbmJzcDsgJm5ic3A7YW5kIEkgY2FuJ3Qgc2VlIHdoYXQgYmVuZWZpdCB0d28gd291bGQg aGF2ZSAob3RoZXIgdGhhbiBiZWluZzxicj4rICogJm5ic3A7ICZuYnNwO3NvbWVob3cgcmVzaXph YmxlL3JlbG9jYXRhYmxlLCBidXQgdGhhdCdzIGFwcGFyZW50bHkgbm90IHBvc3NpYmxlKS48YnI+ KyAqIGYpIGhtbSwgaXQncyBwcmFjdGljYWxseSB1bmRlYnVnZ2FibGUgKGdkYiBjYW4ndCBhY2Nl c3MgdGhlIG1lbW9yeSwgYW5kPGJyPisgKiAmbmJzcDsgJm5ic3A7dGhlIGJpemFycmUgd2F5IHN0 cnVjdHVyZSBvZmZzZXRzIGFyZSBjb21tdW5pY2F0ZWQgbWFrZXMgaXQgaGFyZCB0bzxicj4rICog Jm5ic3A7ICZuYnNwO2p1c3QgcHJpbnQgdGhlIHJpbmcgYnVmZmVyIGhlYWRzLCBldmVuICppZmYq IHRoZSBtZW1vcnkgd2VyZSB2aXNpYmxlPGJyPisgKiAmbmJzcDsgJm5ic3A7aW4gZ2RiLiBidXQg dGhlbiwgdGhhdCdzIGFsc28gb2ssIHJlYWxseS48YnI+KyAqIGcpIHdlbGwsIHlvdSBjYW5ub3Qg c3BlY2lmeSBhIHRpbWVvdXQgd2hlbiB3YWl0aW5nIGZvciBldmVudHMuIG5vLDxicj4rICogJm5i c3A7ICZuYnNwO3NlcmlvdXNseSwgdGhlIGludGVyZmFjZSBkb2Vzbid0IHN1cHBvcnQgYSB0aW1l b3V0LiBuZXZlciBzZWVuIF90aGF0Xzxicj4rICogJm5ic3A7ICZuYnNwO2JlZm9yZS4gc3VyZSwg eW91IGNhbiB1c2UgYSB0aW1lcmZkLCBidXQgdGhhdCdzIGFub3RoZXIgc3lzY2FsbDxicj4rICog Jm5ic3A7ICZuYnNwO3lvdSBjb3VsZCBoYXZlIGF2b2lkZWQuIG92ZXJhbGwsIHRoaXMgYml6YXJy ZSBvbWlzc2lvbiBzbWVsbHM8YnI+KyAqICZuYnNwOyAmbmJzcDtsaWtlIGEgwrUtb3B0aW1pc2F0 aW9uIGJ5IHRoZSBpb191cmluZyBhdXRob3IgZm9yIGhpcyBwZXJzb25hbDxicj4rICogJm5ic3A7 ICZuYnNwO2FwcGxpY2F0aW9ucywgdG8gdGhlIGRldHJpbWVudCBvZiBldmVyeWJvZHkgZWxzZSB3 aG8ganVzdCB3YW50czxicj4rICogJm5ic3A7ICZuYnNwO2FuIGV2ZW50IGxvb3AuIGJ1dCwgdW1t LCBvaywgaWYgdGhhdCdzIGFsbCwgaXQgY291bGQgYmUgd29yc2UuPGJyPisgKiAmbmJzcDsgJm5i c3A7KGZyb20gd2hhdCBJIGdhdGhlciBmcm9tIHRoZSBhdXRob3IgSmVucyBBeGJvZSwgaXQgc2lt cGx5IGRpZG4ndDxicj4rICogJm5ic3A7ICZuYnNwO29jY3VyIHRvIGhpbSwgYW5kIGhlIG1hZGUg Z29vZCBvbiBpdCBieSBhZGRpbmcgYW4gdW5saW1pdGVkIG51YmVyPGJyPisgKiAmbmJzcDsgJm5i c3A7b2YgdGltZW91dHMgbGF0ZXIgOikuPGJyPisgKiBoKSBpbml0aWFsbHkgdGhlcmUgd2FzIGEg aGFyZGNvZGVkIGxpbWl0IG9mIDQwOTYgb3V0c3RhbmRpbmcgZXZlbnRzLjxicj4rICogJm5ic3A7 ICZuYnNwO2xhdGVyIHZlcnNpb25zIG5vdCBvbmx5IGJ1bXAgdGhpcyB0byAzMmssIGJ1dCBhbHNv IGNhbiBoYW5kbGU8YnI+KyAqICZuYnNwOyAmbmJzcDthbiB1bmxpbWl0ZWQgYW1vdW50IG9mIGV2 ZW50cywgc28gdGhpcyBvbmx5IGFmZmVjdHMgdGhlIGJhdGNoIHNpemUuPGJyPisgKiBpKSB1bmxp a2UgbGludXggYWlvLCB5b3UgKmNhbiogcmVnaXN0ZXIgbW9yZSB0aGVuIHRoZSBsaW1pdDxicj4r ICogJm5ic3A7ICZuYnNwO29mIGZkIGV2ZW50cy4gd2hpbGUgZWFybHkgdmVyaXNvbnMgb2YgaW9f dXJpbmcgc2lnbmFsbGVkIGFuIG92ZXJmbG93PGJyPisgKiAmbmJzcDsgJm5ic3A7YW5kIHlvdSBl bmRlZCB1cCBnZXR0aW5nIHdldC4gNS41KyBkb2VzIG5vdCBkbyB0aGlzIGFueW1vcmUuPGJyPisg KiBqKSBidXQsIG9oIG15ISBpdCBoYWQgZXhhY3RseSB0aGUgc2FtZSBidWdzIGFzIHRoZSBsaW51 eCBhaW8gYmFja2VuZCw8YnI+KyAqICZuYnNwOyAmbmJzcDt3aGVyZSBzb21lIHVuZG9jdW1lbnRl ZCBwb2xsIGNvbWJpbmF0aW9ucyBqdXN0IGZhaWwuIGZvcnR1bmF0ZWx5LDxicj4rICogJm5ic3A7 ICZuYnNwO2FmdGVyIGZpbmFsbHkgcmVhY2hpbmcgdGhlIGF1dGhvciwgaGUgd2FzIG1vcmUgdGhh biB3aWxsaW5nIHRvIGZpeDxicj4rICogJm5ic3A7ICZuYnNwO3RoaXMgcHJvYmFibHkgaW4gNS42 Ky48YnI+KyAqIGspIG92ZXJhbGwsIHRoZSAqQVBJKiBpdHNlbGYgaXMsIEkgZGFyZSB0byBzYXks IG5vdCBhIHRvdGFsIHRyYWlud3JlY2suPGJyPisgKiAmbmJzcDsgJm5ic3A7b25jZSB0aGUgYnVn cyBhZSBmaXhlZCAocHJvYmFibHkgaW4gNS42KyksIGl0IHdpbGwgYmUgd2l0aG91dDxicj4rICog Jm5ic3A7ICZuYnNwO2NvbXBldGl0aW9uLjxicj4rICovPGJyPis8YnI+Ky8qIFRPRE86IHVzZSBp bnRlcm5hbCBUSU1FT1VUICovPGJyPisvKiBUT0RPOiB0YWtlIGFkdmFudGFnZSBvZiBzaW5nbGUg bW1hcCwgTk9EUk9QIGV0Yy4gKi88YnI+Ky8qIFRPRE86IHJlc2l6ZSBjcS9zcSBzaXplIGluZGVw ZW5kZW50bHkgKi88YnI+Kzxicj4rI2luY2x1ZGUgJmx0O3N5cy90aW1lcmZkLmgmZ3Q7PGJyPisj aW5jbHVkZSAmbHQ7c3lzL21tYW4uaCZndDs8YnI+KyNpbmNsdWRlICZsdDtwb2xsLmgmZ3Q7PGJy PisjaW5jbHVkZSAmbHQ7c3RkaW50LmgmZ3Q7PGJyPis8YnI+KyNkZWZpbmUgSU9VUklOR19JTklU X0VOVFJJRVMgMzI8YnI+Kzxicj4rLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzxicj4rLyogc3lzY2Fs bCB3cmFwZGFkb29wIC0gdGhpcyBzZWN0aW9uIGhhcyB0aGUgcmF3IGFwaS9hYmkgZGVmaW5pdGlv bnMgKi88YnI+Kzxicj4rI2luY2x1ZGUgJmx0O2xpbnV4L2ZzLmgmZ3Q7PGJyPisjaW5jbHVkZSAm bHQ7bGludXgvdHlwZXMuaCZndDs8YnI+Kzxicj4rLyogbW9zdGx5IGRpcmVjdGx5IHRha2VuIGZy b20gdGhlIGtlcm5lbCBvciBkb2N1bWVudGF0aW9uICovPGJyPis8YnI+K3N0cnVjdCBpb191cmlu Z19zcWU8YnI+K3s8YnI+KyAmbmJzcDtfX3U4IG9wY29kZTs8YnI+KyAmbmJzcDtfX3U4IGZsYWdz Ozxicj4rICZuYnNwO19fdTE2IGlvcHJpbzs8YnI+KyAmbmJzcDtfX3MzMiBmZDs8YnI+KyAmbmJz cDt1bmlvbiB7PGJyPisgJm5ic3A7ICZuYnNwO19fdTY0IG9mZjs8YnI+KyAmbmJzcDsgJm5ic3A7 X191NjQgYWRkcjI7PGJyPisgJm5ic3A7fTs8YnI+KyAmbmJzcDtfX3U2NCBhZGRyOzxicj4rICZu YnNwO19fdTMyIGxlbjs8YnI+KyAmbmJzcDt1bmlvbiB7PGJyPisgJm5ic3A7ICZuYnNwO19fa2Vy bmVsX3J3Zl90IHJ3X2ZsYWdzOzxicj4rICZuYnNwOyAmbmJzcDtfX3UzMiBmc3luY19mbGFnczs8 YnI+KyAmbmJzcDsgJm5ic3A7X191MTYgcG9sbF9ldmVudHM7PGJyPisgJm5ic3A7ICZuYnNwO19f dTMyIHN5bmNfcmFuZ2VfZmxhZ3M7PGJyPisgJm5ic3A7ICZuYnNwO19fdTMyIG1zZ19mbGFnczs8 YnI+KyAmbmJzcDsgJm5ic3A7X191MzIgdGltZW91dF9mbGFnczs8YnI+KyAmbmJzcDsgJm5ic3A7 X191MzIgYWNjZXB0X2ZsYWdzOzxicj4rICZuYnNwOyAmbmJzcDtfX3UzMiBjYW5jZWxfZmxhZ3M7 PGJyPisgJm5ic3A7ICZuYnNwO19fdTMyIG9wZW5fZmxhZ3M7PGJyPisgJm5ic3A7ICZuYnNwO19f dTMyIHN0YXR4X2ZsYWdzOzxicj4rICZuYnNwO307PGJyPisgJm5ic3A7X191NjQgdXNlcl9kYXRh Ozxicj4rICZuYnNwO3VuaW9uIHs8YnI+KyAmbmJzcDsgJm5ic3A7X191MTYgYnVmX2luZGV4Ozxi cj4rICZuYnNwOyAmbmJzcDtfX3U2NCBfX3BhZDJbM107PGJyPisgJm5ic3A7fTs8YnI+K307PGJy Pis8YnI+K3N0cnVjdCBpb191cmluZ19jcWU8YnI+K3s8YnI+KyAmbmJzcDtfX3U2NCB1c2VyX2Rh dGE7PGJyPisgJm5ic3A7X19zMzIgcmVzOzxicj4rICZuYnNwO19fdTMyIGZsYWdzOzxicj4rfTs8 YnI+Kzxicj4rc3RydWN0IGlvX3NxcmluZ19vZmZzZXRzPGJyPit7PGJyPisgJm5ic3A7X191MzIg aGVhZDs8YnI+KyAmbmJzcDtfX3UzMiB0YWlsOzxicj4rICZuYnNwO19fdTMyIHJpbmdfbWFzazs8 YnI+KyAmbmJzcDtfX3UzMiByaW5nX2VudHJpZXM7PGJyPisgJm5ic3A7X191MzIgZmxhZ3M7PGJy PisgJm5ic3A7X191MzIgZHJvcHBlZDs8YnI+KyAmbmJzcDtfX3UzMiBhcnJheTs8YnI+KyAmbmJz cDtfX3UzMiByZXN2MTs8YnI+KyAmbmJzcDtfX3U2NCByZXN2Mjs8YnI+K307PGJyPis8YnI+K3N0 cnVjdCBpb19jcXJpbmdfb2Zmc2V0czxicj4rezxicj4rICZuYnNwO19fdTMyIGhlYWQ7PGJyPisg Jm5ic3A7X191MzIgdGFpbDs8YnI+KyAmbmJzcDtfX3UzMiByaW5nX21hc2s7PGJyPisgJm5ic3A7 X191MzIgcmluZ19lbnRyaWVzOzxicj4rICZuYnNwO19fdTMyIG92ZXJmbG93Ozxicj4rICZuYnNw O19fdTMyIGNxZXM7PGJyPisgJm5ic3A7X191NjQgcmVzdlsyXTs8YnI+K307PGJyPis8YnI+K3N0 cnVjdCBpb191cmluZ19wYXJhbXM8YnI+K3s8YnI+KyAmbmJzcDtfX3UzMiBzcV9lbnRyaWVzOzxi cj4rICZuYnNwO19fdTMyIGNxX2VudHJpZXM7PGJyPisgJm5ic3A7X191MzIgZmxhZ3M7PGJyPisg Jm5ic3A7X191MzIgc3FfdGhyZWFkX2NwdTs8YnI+KyAmbmJzcDtfX3UzMiBzcV90aHJlYWRfaWRs ZTs8YnI+KyAmbmJzcDtfX3UzMiBmZWF0dXJlczs8YnI+KyAmbmJzcDtfX3UzMiByZXN2WzRdOzxi cj4rICZuYnNwO3N0cnVjdCBpb19zcXJpbmdfb2Zmc2V0cyBzcV9vZmY7PGJyPisgJm5ic3A7c3Ry dWN0IGlvX2NxcmluZ19vZmZzZXRzIGNxX29mZjs8YnI+K307PGJyPis8YnI+KyNkZWZpbmUgSU9S SU5HX1NFVFVQX0NRU0laRSAweDAwMDAwMDA4PGJyPis8YnI+KyNkZWZpbmUgSU9SSU5HX09QX1BP TExfQUREICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzY8YnI+KyNkZWZpbmUgSU9SSU5HX09Q X1BPTExfUkVNT1ZFICZuYnNwOyAmbmJzcDsgNzxicj4rI2RlZmluZSBJT1JJTkdfT1BfVElNRU9V VCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsxMTxicj4rI2RlZmluZSBJT1JJTkdfT1BfVElN RU9VVF9SRU1PVkUgMTI8YnI+Kzxicj4rLyogcmVsYXRpdmUgb3IgYWJzb2x1dGUsIHJlZmVyZW5j ZSBjbG9jayBpcyBDTE9DS19NT05PVE9OSUMgKi88YnI+K3N0cnVjdCBpb3VyaW5nX2tlcm5lbF90 aW1lc3BlYzxicj4rezxicj4rICZuYnNwO2ludDY0X3QgdHZfc2VjOzxicj4rICZuYnNwO2xvbmcg bG9uZyB0dl9uc2VjOzxicj4rfTs8YnI+Kzxicj4rI2RlZmluZSBJT1JJTkdfVElNRU9VVF9BQlMg MHgwMDAwMDAwMTxicj4rPGJyPisjZGVmaW5lIElPUklOR19FTlRFUl9HRVRFVkVOVFMgMHgwMTxi cj4rPGJyPisjZGVmaW5lIElPUklOR19PRkZfU1FfUklORyAweDAwMDAwMDAwVUxMPGJyPisjZGVm aW5lIElPUklOR19PRkZfQ1FfUklORyAweDA4MDAwMDAwVUxMPGJyPisjZGVmaW5lIElPUklOR19P RkZfU1FFUyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAweDEwMDAwMDAwVUxMPGJyPis8YnI+KyNkZWZp bmUgSU9SSU5HX0ZFQVRfU0lOR0xFX01NQVAgJm5ic3A7IDB4MDAwMDAwMDE8YnI+KyNkZWZpbmUg SU9SSU5HX0ZFQVRfTk9EUk9QICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzB4MDAwMDAwMDI8 YnI+KyNkZWZpbmUgSU9SSU5HX0ZFQVRfU1VCTUlUX1NUQUJMRSAweDAwMDAwMDA0PGJyPis8YnI+ K2lubGluZV9zaXplPGJyPitpbnQ8YnI+K2V2c3lzX2lvX3VyaW5nX3NldHVwICh1bnNpZ25lZCBl bnRyaWVzLCBzdHJ1Y3QgaW9fdXJpbmdfcGFyYW1zICpwYXJhbXMpPGJyPit7PGJyPisgJm5ic3A7 cmV0dXJuIGV2X3N5c2NhbGwyIChTWVNfaW9fdXJpbmdfc2V0dXAsIGVudHJpZXMsIHBhcmFtcyk7 PGJyPit9PGJyPis8YnI+K2lubGluZV9zaXplPGJyPitpbnQ8YnI+K2V2c3lzX2lvX3VyaW5nX2Vu dGVyIChpbnQgZmQsIHVuc2lnbmVkIHRvX3N1Ym1pdCwgdW5zaWduZWQgbWluX2NvbXBsZXRlLCB1 bnNpZ25lZCBmbGFncywgY29uc3Qgc2lnc2V0X3QgKnNpZywgc2l6ZV90IHNpZ3N6KTxicj4rezxi cj4rICZuYnNwO3JldHVybiBldl9zeXNjYWxsNiAoU1lTX2lvX3VyaW5nX2VudGVyLCBmZCwgdG9f c3VibWl0LCBtaW5fY29tcGxldGUsIGZsYWdzLCBzaWcsIHNpZ3N6KTs8YnI+K308YnI+Kzxicj4r LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLzxicj4rLyogYWN0dWFsIGJhY2tlZCBpbXBsZW1lbnRhdGlv biAqLzxicj4rPGJyPisvKiB3ZSBob3BlIHRoYXQgdm9sYXRpbGUgd2lsbCBtYWtlIHRoZSBjb21w aWxlciBhY2Nlc3MgdGhpcyB2YXJpYWJsZXMgb25seSBvbmNlICovPGJyPisjZGVmaW5lIEVWX1NR X1ZBUihuYW1lKSAqKHZvbGF0aWxlIHVuc2lnbmVkICopKChjaGFyICopaW91cmluZ19zcV9yaW5n ICsgaW91cmluZ19zcV8gIyMgbmFtZSk8YnI+KyNkZWZpbmUgRVZfQ1FfVkFSKG5hbWUpICoodm9s YXRpbGUgdW5zaWduZWQgKikoKGNoYXIgKilpb3VyaW5nX2NxX3JpbmcgKyBpb3VyaW5nX2NxXyAj IyBuYW1lKTxicj4rPGJyPisvKiB0aGUgaW5kZXggYXJyYXkgKi88YnI+KyNkZWZpbmUgRVZfU1Ff QVJSQVkgJm5ic3A7ICZuYnNwOyAoKHVuc2lnbmVkICopKChjaGFyICopaW91cmluZ19zcV9yaW5n ICsgaW91cmluZ19zcV9hcnJheSkpPGJyPis8YnI+Ky8qIHRoZSBzdWJtaXQvY29tcGxldGlvbiBx dWV1ZSBlbnRyaWVzICovPGJyPisjZGVmaW5lIEVWX1NRRVMgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICgoc3RydWN0IGlvX3VyaW5nX3NxZSAqKSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgaW91cmluZ19zcWVzKTxicj4rI2RlZmluZSBFVl9DUUVTICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAoKHN0cnVjdCBpb191cmluZ19jcWUgKikoKGNoYXIgKilpb3VyaW5nX2NxX3Jpbmcg KyBpb3VyaW5nX2NxX2NxZXMpKTxicj4rPGJyPitpbmxpbmVfc3BlZWQ8YnI+K2ludDxicj4raW91 cmluZ19lbnRlciAoRVZfUF8gZXZfdHN0YW1wIHRpbWVvdXQpPGJyPit7PGJyPisgJm5ic3A7aW50 IHJlczs8YnI+Kzxicj4rICZuYnNwO0VWX1JFTEVBU0VfQ0I7PGJyPis8YnI+KyAmbmJzcDtyZXMg PSBldnN5c19pb191cmluZ19lbnRlciAoaW91cmluZ19mZCwgaW91cmluZ190b19zdWJtaXQsIDEs PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt0aW1l b3V0ICZndDsgRVZfVFNfQ09OU1QgKDAuKSA/IElPUklOR19FTlRFUl9HRVRFVkVOVFMgOiAwLCAw LCAwKTs8YnI+Kzxicj4rICZuYnNwO2Fzc2VydCAoKCJsaWJldjogaW9fdXJpbmdfZW50ZXIgZGlk IG5vdCBjb25zdW1lIGFsbCBzcWVzIiwgKHJlcyAmbHQ7IDAgfHwgcmVzID09IGlvdXJpbmdfdG9f c3VibWl0KSkpOzxicj4rPGJyPisgJm5ic3A7aW91cmluZ190b19zdWJtaXQgPSAwOzxicj4rPGJy PisgJm5ic3A7RVZfQUNRVUlSRV9DQjs8YnI+Kzxicj4rICZuYnNwO3JldHVybiByZXM7PGJyPit9 PGJyPis8YnI+Ky8qIFRPRE86IGNhbiB3ZSBtb3ZlIHRoaW5ncyBhcm91bmQgc28gd2UgZG9uJ3Qg bmVlZCB0aGlzIGZvcndhcmQtcmVmZXJlbmNlPyAqLzxicj4rc3RhdGljIHZvaWQ8YnI+K2lvdXJp bmdfcG9sbCAoRVZfUF8gZXZfdHN0YW1wIHRpbWVvdXQpOzxicj4rPGJyPitzdGF0aWM8YnI+K3N0 cnVjdCBpb191cmluZ19zcWUgKjxicj4raW91cmluZ19zcWVfZ2V0IChFVl9QKTxicj4rezxicj4r ICZuYnNwO3Vuc2lnbmVkIHRhaWw7PGJyPisgJm5ic3A7PGJyPisgJm5ic3A7Zm9yICg7Oyk8YnI+ KyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7dGFpbCA9IEVWX1NRX1ZB UiAodGFpbCk7PGJyPis8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0X3Ry dWUgKHRhaWwgKyAxIC0gRVZfU1FfVkFSIChoZWFkKSAmbHQ7PSBFVl9TUV9WQVIgKHJpbmdfZW50 cmllcykpKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2JyZWFrOyAvKiB3aGF0cyB0 aGUgcHJvYmxlbSwgd2UgaGF2ZSBmcmVlIHNxZXMgKi88YnI+Kzxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7LyogcXVldWUgZnVsbCwgbmVlZCB0byBmbHVzaCBhbmQgcG9zc2libHkgaGFuZGxlIHNv bWUgZXZlbnRzICovPGJyPis8YnI+KyNpZiBFVl9GRUFUVVJFX0NPREU8YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwOy8qIGZpcnN0IHdlIGFzayB0aGUga2VybmVsIG5pY2VseSwgbW9zdCBvZnRlbiB0 aGlzIGZyZWVzIHVwIHNvbWUgc3FlcyAqLzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7aW50IHJl cyA9IGlvdXJpbmdfZW50ZXIgKEVWX0FfIEVWX1RTX0NPTlNUICgwLikpOzxicj4rPGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDtFQ0JfTUVNT1JZX0ZFTkNFX0FDUVVJUkU7IC8qIGJldHRlciBzYWZl IHRoYW4gc29ycnkgKi88YnI+Kzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKHJlcyAmZ3Q7 PSAwKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2NvbnRpbnVlOyAvKiB5ZXMsIGl0 IHdvcmtlZCwgdHJ5IGFnYWluICovPGJyPisjZW5kaWY8YnI+Kzxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7Lyogc29tZSBwcm9ibGVtLCBwb3NzaWJseSBFQlVTWSAtIGRvIHRoZSBmdWxsIHBvbGwg YW5kIGxldCBpdCBoYW5kbGUgYW55IGlzc3VlcyAqLzxicj4rPGJyPisgJm5ic3A7ICZuYnNwOyAm bmJzcDtpb3VyaW5nX3BvbGwgKEVWX0FfIEVWX1RTX0NPTlNUICgwLikpOzxicj4rICZuYnNwOyAm bmJzcDsgJm5ic3A7LyogaW91cmluZ19wb2xsIHNob3VsZCBoYXZlIGRvbmUgRUNCX01FTU9SWV9G RU5DRV9BQ1FVSVJFIGZvciB1cyAqLzxicj4rICZuYnNwOyAmbmJzcDt9PGJyPis8YnI+KyAmbmJz cDsvKmFzc2VydCAoKCJsaWJldjogaW9fdXJpbmcgcXVldWUgZnVsbCBhZnRlciBmbHVzaCIsIHRh aWwgKyAxIC0gRVZfU1FfVkFSIChoZWFkKSAmbHQ7PSBFVl9TUV9WQVIgKHJpbmdfZW50cmllcykp KTsqLzxicj4rPGJyPisgJm5ic3A7cmV0dXJuIEVWX1NRRVMgKyAodGFpbCAmYW1wOyBFVl9TUV9W QVIgKHJpbmdfbWFzaykpOzxicj4rfTxicj4rPGJyPitpbmxpbmVfc2l6ZTxicj4rc3RydWN0IGlv X3VyaW5nX3NxZSAqPGJyPitpb3VyaW5nX3NxZV9zdWJtaXQgKEVWX1BfIHN0cnVjdCBpb191cmlu Z19zcWUgKnNxZSk8YnI+K3s8YnI+KyAmbmJzcDt1bnNpZ25lZCBpZHggPSBzcWUgLSBFVl9TUUVT Ozxicj4rPGJyPisgJm5ic3A7RVZfU1FfQVJSQVkgW2lkeF0gPSBpZHg7PGJyPisgJm5ic3A7RUNC X01FTU9SWV9GRU5DRV9SRUxFQVNFOzxicj4rICZuYnNwOysrRVZfU1FfVkFSICh0YWlsKTs8YnI+ KyAmbmJzcDsvKkVDQl9NRU1PUllfRkVOQ0VfUkVMRUFTRTsgLyogZm9yIHRoZSB0aW1lIGJlaW5n IHdlIGFzc3VtZSB0aGlzIGlzIG5vdCBuZWVkZWQgKi88YnI+KyAmbmJzcDsrK2lvdXJpbmdfdG9f c3VibWl0Ozxicj4rfTxicj4rPGJyPisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPGJyPis8YnI+Ky8q IHdoZW4gdGhlIHRpbWVyZmQgZXhwaXJlcyB3ZSBzaW1wbHkgbm90ZSB0aGUgZmFjdCw8YnI+KyAq IGFzIHRoZSBwdXJwb3NlIG9mIHRoZSB0aW1lcmZkIGlzIHRvIHdha2UgdXMgdXAsIG5vdGhpbmcg ZWxzZS48YnI+KyAqIHRoZSBuZXh0IGl0ZXJhdGlvbiBzaG91bGQgcmUtc2V0IGl0Ljxicj4rICov PGJyPitzdGF0aWMgdm9pZDxicj4raW91cmluZ190ZmRfY2IgKEVWX1BfIHN0cnVjdCBldl9pbyAq dywgaW50IHJldmVudHMpPGJyPit7PGJyPisgJm5ic3A7aW91cmluZ190ZmRfdG8gPSBFVl9UU1RB TVBfSFVHRTs8YnI+K308YnI+Kzxicj4rLyogY2FsbGVkIGZvciBmdWxsIGFuZCBwYXJ0aWFsIGNs ZWFudXAgKi88YnI+K2VjYl9jb2xkPGJyPitzdGF0aWMgaW50PGJyPitpb3VyaW5nX2ludGVybmFs X2Rlc3Ryb3kgKEVWX1ApPGJyPit7PGJyPisgJm5ic3A7Y2xvc2UgKGlvdXJpbmdfdGZkKTs8YnI+ KyAmbmJzcDtjbG9zZSAoaW91cmluZ19mZCk7PGJyPis8YnI+KyAmbmJzcDtpZiAoaW91cmluZ19z cV9yaW5nICE9IE1BUF9GQUlMRUQpIG11bm1hcCAoaW91cmluZ19zcV9yaW5nLCBpb3VyaW5nX3Nx X3Jpbmdfc2l6ZSk7PGJyPisgJm5ic3A7aWYgKGlvdXJpbmdfY3FfcmluZyAhPSBNQVBfRkFJTEVE KSBtdW5tYXAgKGlvdXJpbmdfY3FfcmluZywgaW91cmluZ19jcV9yaW5nX3NpemUpOzxicj4rICZu YnNwO2lmIChpb3VyaW5nX3NxZXMgJm5ic3A7ICZuYnNwOyE9IE1BUF9GQUlMRUQpIG11bm1hcCAo aW91cmluZ19zcWVzICZuYnNwOyAsIGlvdXJpbmdfc3Flc19zaXplICZuYnNwOyApOzxicj4rPGJy PisgJm5ic3A7aWYgKGV2X2lzX2FjdGl2ZSAoJmFtcDtpb3VyaW5nX3RmZF93KSk8YnI+KyAmbmJz cDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfcmVmIChFVl9BKTs8YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwO2V2X2lvX3N0b3AgKEVWX0FfICZhbXA7aW91cmluZ190ZmRfdyk7 PGJyPisgJm5ic3A7ICZuYnNwO308YnI+K308YnI+Kzxicj4rZWNiX2NvbGQ8YnI+K3N0YXRpYyBp bnQ8YnI+K2lvdXJpbmdfaW50ZXJuYWxfaW5pdCAoRVZfUCk8YnI+K3s8YnI+KyAmbmJzcDtzdHJ1 Y3QgaW9fdXJpbmdfcGFyYW1zIHBhcmFtcyA9IHsgMCB9Ozxicj4rPGJyPisgJm5ic3A7aW91cmlu Z190b19zdWJtaXQgPSAwOzxicj4rPGJyPisgJm5ic3A7aW91cmluZ190ZmQgJm5ic3A7ICZuYnNw OyA9IC0xOzxicj4rICZuYnNwO2lvdXJpbmdfc3FfcmluZyA9IE1BUF9GQUlMRUQ7PGJyPisgJm5i c3A7aW91cmluZ19jcV9yaW5nID0gTUFQX0ZBSUxFRDs8YnI+KyAmbmJzcDtpb3VyaW5nX3NxZXMg Jm5ic3A7ICZuYnNwOz0gTUFQX0ZBSUxFRDs8YnI+Kzxicj4rICZuYnNwO2lmICghaGF2ZV9tb25v dG9uaWMpIC8qIGNhbm5vdCByZWFsbHkgaGFwcGVuLCBidXQgd2hhdCBpZjExICovPGJyPisgJm5i c3A7ICZuYnNwO3JldHVybiAtMTs8YnI+Kzxicj4rICZuYnNwO2ZvciAoOzspPGJyPisgJm5ic3A7 ICZuYnNwO3s8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lvdXJpbmdfZmQgPSBldnN5c19pb191 cmluZ19zZXR1cCAoaW91cmluZ19lbnRyaWVzLCAmYW1wO3BhcmFtcyk7PGJyPis8YnI+KyAmbmJz cDsgJm5ic3A7ICZuYnNwO2lmIChpb3VyaW5nX2ZkICZndDs9IDApPGJyPisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7YnJlYWs7IC8qIHlpcHBpZSAqLzxicj4rPGJyPisgJm5ic3A7ICZuYnNw OyAmbmJzcDtpZiAoZXJybm8gIT0gRUlOVkFMKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO3JldHVybiAtMTsgLyogd2UgZmFpbGVkICovPGJyPis8YnI+KyNpZiBUT0RPPGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDtpZiAoKH5wYXJhbXMuZmVhdHVyZXMpICZhbXA7IChJT1JJTkdfRkVB VF9OT0RST1AgfCBJT1JJTkdfRkVBVFVSRV9TSU5HTEVfTU1BUCB8IElPUklOR19GRUFUX1NVQk1J VF9TVEFCTEUpKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiAtMTsgLyog d2UgcmVxdWlyZSB0aGUgYWJvdmUgZmVhdHVyZXMgKi88YnI+KyNlbmRpZjxicj4rPGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDsvKiBFSU5WQUw6IGxvdHMgb2YgcG9zc2libGUgcmVhc29ucywgYnV0 IG1heWJlPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgKiBpdCBpcyBiZWNhdXNlIHdlIGhpdCB0 aGUgdW5xdWVyeWFibGUgaGFyZGNvZGVkIHNpemUgbGltaXQ8YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAqLzxicj4rPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiB3ZSBoaXQgdGhlIGxpbWl0 IGFscmVhZHksIGdpdmUgdXAgKi88YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChpb3VyaW5n X21heF9lbnRyaWVzKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiAtMTs8 YnI+Kzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogZmlyc3QgdGltZSB3ZSBoaXQgRUlOVkFM PyBhc3N1bWUgd2UgaGl0IHRoZSBsaW1pdCwgc28gZ28gYmFjayBhbmQgcmV0cnkgKi88YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwO2lvdXJpbmdfZW50cmllcyAmZ3Q7Jmd0Oz0gMTs8YnI+KyAmbmJz cDsgJm5ic3A7ICZuYnNwO2lvdXJpbmdfbWF4X2VudHJpZXMgPSBpb3VyaW5nX2VudHJpZXM7PGJy PisgJm5ic3A7ICZuYnNwO308YnI+Kzxicj4rICZuYnNwO2lvdXJpbmdfc3FfcmluZ19zaXplID0g cGFyYW1zLnNxX29mZi5hcnJheSArIHBhcmFtcy5zcV9lbnRyaWVzICogc2l6ZW9mICh1bnNpZ25l ZCk7PGJyPisgJm5ic3A7aW91cmluZ19jcV9yaW5nX3NpemUgPSBwYXJhbXMuY3Ffb2ZmLmNxZXMg Jm5ic3A7KyBwYXJhbXMuY3FfZW50cmllcyAqIHNpemVvZiAoc3RydWN0IGlvX3VyaW5nX2NxZSk7 PGJyPisgJm5ic3A7aW91cmluZ19zcWVzX3NpemUgJm5ic3A7ICZuYnNwOz0gJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyBwYXJhbXMuc3FfZW50cmllcyAqIHNpemVvZiAoc3RydWN0IGlvX3VyaW5nX3NxZSk7 PGJyPis8YnI+KyAmbmJzcDtpb3VyaW5nX3NxX3JpbmcgPSBtbWFwICgwLCBpb3VyaW5nX3NxX3Jp bmdfc2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSw8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDtNQVBfU0hBUkVEIHwgTUFQX1BPUFVMQVRFLCBpb3VyaW5nX2ZkLCBJT1JJ TkdfT0ZGX1NRX1JJTkcpOzxicj4rICZuYnNwO2lvdXJpbmdfY3FfcmluZyA9IG1tYXAgKDAsIGlv dXJpbmdfY3FfcmluZ19zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLDxicj4rICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO01BUF9TSEFSRUQgfCBNQVBfUE9QVUxBVEUsIGlvdXJp bmdfZmQsIElPUklOR19PRkZfQ1FfUklORyk7PGJyPisgJm5ic3A7aW91cmluZ19zcWVzICZuYnNw OyAmbmJzcDs9IG1tYXAgKDAsIGlvdXJpbmdfc3Flc19zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dS SVRFLDxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO01BUF9TSEFSRUQgfCBN QVBfUE9QVUxBVEUsIGlvdXJpbmdfZmQsIElPUklOR19PRkZfU1FFUyk7PGJyPis8YnI+KyAmbmJz cDtpZiAoaW91cmluZ19zcV9yaW5nID09IE1BUF9GQUlMRUQgfHwgaW91cmluZ19jcV9yaW5nID09 IE1BUF9GQUlMRUQgfHwgaW91cmluZ19zcWVzID09IE1BUF9GQUlMRUQpPGJyPisgJm5ic3A7ICZu YnNwO3JldHVybiAtMTs8YnI+Kzxicj4rICZuYnNwO2lvdXJpbmdfc3FfaGVhZCAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgPSBwYXJhbXMuc3Ffb2ZmLmhlYWQ7PGJyPisgJm5ic3A7aW91cmlu Z19zcV90YWlsICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA9IHBhcmFtcy5zcV9vZmYudGFp bDs8YnI+KyAmbmJzcDtpb3VyaW5nX3NxX3JpbmdfbWFzayAmbmJzcDsgJm5ic3A7PSBwYXJhbXMu c3Ffb2ZmLnJpbmdfbWFzazs8YnI+KyAmbmJzcDtpb3VyaW5nX3NxX3JpbmdfZW50cmllcyA9IHBh cmFtcy5zcV9vZmYucmluZ19lbnRyaWVzOzxicj4rICZuYnNwO2lvdXJpbmdfc3FfZmxhZ3MgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7PSBwYXJhbXMuc3Ffb2ZmLmZsYWdzOzxicj4rICZuYnNw O2lvdXJpbmdfc3FfZHJvcHBlZCAmbmJzcDsgJm5ic3A7ICZuYnNwOz0gcGFyYW1zLnNxX29mZi5k cm9wcGVkOzxicj4rICZuYnNwO2lvdXJpbmdfc3FfYXJyYXkgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7PSBwYXJhbXMuc3Ffb2ZmLmFycmF5Ozxicj4rPGJyPisgJm5ic3A7aW91cmluZ19jcV9o ZWFkICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyA9IHBhcmFtcy5jcV9vZmYuaGVhZDs8YnI+ KyAmbmJzcDtpb3VyaW5nX2NxX3RhaWwgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ID0gcGFy YW1zLmNxX29mZi50YWlsOzxicj4rICZuYnNwO2lvdXJpbmdfY3FfcmluZ19tYXNrICZuYnNwOyAm bmJzcDs9IHBhcmFtcy5jcV9vZmYucmluZ19tYXNrOzxicj4rICZuYnNwO2lvdXJpbmdfY3Ffcmlu Z19lbnRyaWVzID0gcGFyYW1zLmNxX29mZi5yaW5nX2VudHJpZXM7PGJyPisgJm5ic3A7aW91cmlu Z19jcV9vdmVyZmxvdyAmbmJzcDsgJm5ic3A7ID0gcGFyYW1zLmNxX29mZi5vdmVyZmxvdzs8YnI+ KyAmbmJzcDtpb3VyaW5nX2NxX2NxZXMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ID0gcGFy YW1zLmNxX29mZi5jcWVzOzxicj4rPGJyPisgJm5ic3A7aW91cmluZ190ZmQgPSB0aW1lcmZkX2Ny ZWF0ZSAoQ0xPQ0tfTU9OT1RPTklDLCBURkRfQ0xPRVhFQyk7PGJyPis8YnI+KyAmbmJzcDtpZiAo aW91cmluZ190ZmQgJmx0OyAwKTxicj4rICZuYnNwOyAmbmJzcDtyZXR1cm4gaW91cmluZ190ZmQ7 PGJyPis8YnI+KyAmbmJzcDtpb3VyaW5nX3RmZF90byA9IEVWX1RTVEFNUF9IVUdFOzxicj4rPGJy PisgJm5ic3A7cmV0dXJuIDA7PGJyPit9PGJyPis8YnI+K2VjYl9jb2xkPGJyPitzdGF0aWMgdm9p ZDxicj4raW91cmluZ19mb3JrIChFVl9QKTxicj4rezxicj4rICZuYnNwO2lvdXJpbmdfaW50ZXJu YWxfZGVzdHJveSAoRVZfQSk7PGJyPis8YnI+KyAmbmJzcDt3aGlsZSAoaW91cmluZ19pbnRlcm5h bF9pbml0IChFVl9BKSAmbHQ7IDApPGJyPisgJm5ic3A7ICZuYnNwO2V2X3N5c2VyciAoIihsaWJl dikgaW9fdXJpbmdfc2V0dXAiKTs8YnI+Kzxicj4rICZuYnNwO2ZkX3JlYXJtX2FsbCAoRVZfQSk7 PGJyPis8YnI+KyAmbmJzcDtldl9pb19zdG9wICZuYnNwOyhFVl9BXyAmYW1wO2lvdXJpbmdfdGZk X3cpOzxicj4rICZuYnNwO2V2X2lvX3NldCAmbmJzcDsgKEVWX0FfICZhbXA7aW91cmluZ190ZmRf dywgaW91cmluZ190ZmQsIEVWX1JFQUQpOzxicj4rICZuYnNwO2V2X2lvX3N0YXJ0IChFVl9BXyAm YW1wO2lvdXJpbmdfdGZkX3cpOzxicj4rfTxicj4rPGJyPisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov PGJyPis8YnI+K3N0YXRpYyB2b2lkPGJyPitpb3VyaW5nX21vZGlmeSAoRVZfUF8gaW50IGZkLCBp bnQgb2V2LCBpbnQgbmV2KTxicj4rezxicj4rICZuYnNwO2lmIChvZXYpPGJyPisgJm5ic3A7ICZu YnNwO3s8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIHdlIGFzc3VtZSB0aGUgc3FlJ3MgYXJl IGFsbCAicHJvcGVybHkiIGluaXRpYWxpc2VkICovPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtz dHJ1Y3QgaW9fdXJpbmdfc3FlICpzcWUgPSBpb3VyaW5nX3NxZV9nZXQgKEVWX0EpOzxicj4rICZu YnNwOyAmbmJzcDsgJm5ic3A7c3FlLSZndDtvcGNvZGUgJm5ic3A7ICZuYnNwOz0gSU9SSU5HX09Q X1BPTExfUkVNT1ZFOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7c3FlLSZndDtmZCAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDs9IGZkOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogSmVu cyBBeGJvZSBub3RpZmllZCBtZSB0aGF0IHVzZXJfZGF0YSBpcyBub3Qgd2hhdCBpcyBkb2N1bWVu dGVkLCBidXQgaXM8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAqIHNvbWUga2luZCBvZiB1bmlx dWUgSUQgdGhhdCBoYXMgdG8gbWF0Y2gsIG90aGVyd2lzZSB0aGUgcmVxdWVzdCBjYW5ub3Q8YnI+ KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAqIGJlIHJlbW92ZWQuIFNpbmNlIHdlIGRvbid0ICpyZWFs bHkqIGhhdmUgdGhhdCwgd2UgcGFzcyBpbiB0aGUgb2xkPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJz cDsgKiBnZW5lcmF0aW9uIGNvdW50ZXIgLSBpZiB0aGF0IGZhaWxzLCB0b28gYmFkLCBpdCB3aWxs IGhvcGVmdWxseSBiZSByZW1vdmVkPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgKiBhdCBjbG9z ZSB0aW1lIGFuZCB0aGVuIGJlIGlnbm9yZWQuICovPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtz cWUtJmd0O2FkZHIgJm5ic3A7ICZuYnNwOyAmbmJzcDs9ICh1aW50MzJfdClmZCB8ICgoX191NjQp KHVpbnQzMl90KWFuZmRzIFtmZF0uZWdlbiAmbHQ7Jmx0OyAzMik7PGJyPisgJm5ic3A7ICZuYnNw OyAmbmJzcDtzcWUtJmd0O3VzZXJfZGF0YSA9ICh1aW50NjRfdCktMTs8YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwO2lvdXJpbmdfc3FlX3N1Ym1pdCAoRVZfQV8gc3FlKTs8YnI+Kzxicj4rICZuYnNw OyAmbmJzcDsgJm5ic3A7LyogaW5jcmVtZW50IGdlbmVyYXRpb24gY291bnRlciB0byBhdm9pZCBo YW5kbGluZyBvbGQgZXZlbnRzICovPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsrK2FuZmRzIFtm ZF0uZWdlbjs8YnI+KyAmbmJzcDsgJm5ic3A7fTxicj4rPGJyPisgJm5ic3A7aWYgKG5ldik8YnI+ KyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7c3RydWN0IGlvX3VyaW5n X3NxZSAqc3FlID0gaW91cmluZ19zcWVfZ2V0IChFVl9BKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwO3NxZS0mZ3Q7b3Bjb2RlICZuYnNwOyAmbmJzcDsgJm5ic3A7PSBJT1JJTkdfT1BfUE9MTF9B REQ7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtzcWUtJmd0O2ZkICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDs9IGZkOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7c3FlLSZndDth ZGRyICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOz0gMDs8YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwO3NxZS0mZ3Q7dXNlcl9kYXRhICZuYnNwOyA9ICh1aW50MzJfdClmZCB8ICgoX191NjQpKHVp bnQzMl90KWFuZmRzIFtmZF0uZWdlbiAmbHQ7Jmx0OyAzMik7PGJyPisgJm5ic3A7ICZuYnNwOyAm bmJzcDtzcWUtJmd0O3BvbGxfZXZlbnRzID08YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsobmV2ICZhbXA7IEVWX1JFQUQgPyBQT0xMSU4gOiAwKTxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO3wgKG5ldiAmYW1wOyBFVl9XUklURSA/IFBPTExPVVQgOiAwKTs8YnI+KyAmbmJz cDsgJm5ic3A7ICZuYnNwO2lvdXJpbmdfc3FlX3N1Ym1pdCAoRVZfQV8gc3FlKTs8YnI+KyAmbmJz cDsgJm5ic3A7fTxicj4rfTxicj4rPGJyPitpbmxpbmVfc2l6ZTxicj4rdm9pZDxicj4raW91cmlu Z190ZmRfdXBkYXRlIChFVl9QXyBldl90c3RhbXAgdGltZW91dCk8YnI+K3s8YnI+KyAmbmJzcDtl dl90c3RhbXAgdGZkX3RvID0gbW5fbm93ICsgdGltZW91dDs8YnI+Kzxicj4rICZuYnNwOy8qIHdl IGFzc3VtZSB0aGVyZSB3aWxsIGJlIG1hbnkgaXRlcmF0aW9ucyBwZXIgdGltZXIgY2hhbmdlLCBz bzxicj4rICZuYnNwOyAqIHdlIG9ubHkgcmUtc2V0IHRoZSB0aW1lcmZkIHdoZW4gd2UgaGF2ZSB0 byBiZWNhdXNlIGl0cyBleHBpcnk8YnI+KyAmbmJzcDsgKiBpcyB0b28gbGF0ZS48YnI+KyAmbmJz cDsgKi88YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAodGZkX3RvICZsdDsgaW91cmlu Z190ZmRfdG8pKTxicj4rICZuYnNwOyAmbmJzcDt7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg c3RydWN0IGl0aW1lcnNwZWMgaXRzOzxicj4rPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgaW91 cmluZ190ZmRfdG8gPSB0ZmRfdG87PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgRVZfVFNfU0VU IChpdHMuaXRfaW50ZXJ2YWwsIDAuKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBFVl9UU19T RVQgKGl0cy5pdF92YWx1ZSwgdGZkX3RvKTs8YnI+Kzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7 IGlmICh0aW1lcmZkX3NldHRpbWUgKGlvdXJpbmdfdGZkLCBURkRfVElNRVJfQUJTVElNRSwgJmFt cDtpdHMsIDApICZsdDsgMCk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgYXNzZXJ0 ICgoImxpYmV2OiBpb3VyaW5nIHRpbWVyZmRfc2V0dGltZSBmYWlsZWQiLCAwKSk7PGJyPisgJm5i c3A7ICZuYnNwO308YnI+K308YnI+Kzxicj4raW5saW5lX3NpemU8YnI+K3ZvaWQ8YnI+K2lvdXJp bmdfcHJvY2Vzc19jcWUgKEVWX1BfIHN0cnVjdCBpb191cmluZ19jcWUgKmNxZSk8YnI+K3s8YnI+ KyAmbmJzcDtpbnQgJm5ic3A7ICZuYnNwOyAmbmJzcDtmZCAmbmJzcDs9IGNxZS0mZ3Q7dXNlcl9k YXRhICZhbXA7IDB4ZmZmZmZmZmZVOzxicj4rICZuYnNwO3VpbnQzMl90IGdlbiA9IGNxZS0mZ3Q7 dXNlcl9kYXRhICZndDsmZ3Q7IDMyOzxicj4rICZuYnNwO2ludCAmbmJzcDsgJm5ic3A7ICZuYnNw O3JlcyA9IGNxZS0mZ3Q7cmVzOzxicj4rPGJyPisgJm5ic3A7LyogdXNlcl9kYXRhIC0xIGlzIGEg cmVtb3ZlIHRoYXQgd2UgYXJlIG5vdCBhdG0uIGludGVyZXN0ZWQgaW4gKi88YnI+KyAmbmJzcDtp ZiAoY3FlLSZndDt1c2VyX2RhdGEgPT0gKHVpbnQ2NF90KS0xKTxicj4rICZuYnNwOyAmbmJzcDty ZXR1cm47PGJyPis8YnI+KyAmbmJzcDthc3NlcnQgKCgibGliZXY6IGlvX3VyaW5nIGZkIG11c3Qg YmUgaW4tYm91bmRzIiwgZmQgJmd0Oz0gMCAmYW1wOyZhbXA7IGZkICZsdDsgYW5mZG1heCkpOzxi cj4rPGJyPisgJm5ic3A7LyogZG9jdW1lbnRhdGlvbiBsaWVzLCBvZiBjb3Vyc2UuIHRoZSByZXN1 bHQgdmFsdWUgaXMgTk9UIGxpa2U8YnI+KyAmbmJzcDsgKiBub3JtYWwgc3lzY2FsbHMsIGJ1dCBs aWtlIGxpbnV4IHJhdyBzeXNjYWxscywgaS5lLiBuZWdhdGl2ZTxicj4rICZuYnNwOyAqIGVycm9y IG51bWJlcnMuIGZvcnR1bmF0ZSwgYXMgb3RoZXJ3aXNlIHRoZXJlIHdvdWxkIGJlIG5vIHdheTxi cj4rICZuYnNwOyAqIHRvIGdldCBlcnJvciBjb2RlcyBhdCBhbGwuIHN0aWxsLCB3aHkgbm90IGRv Y3VtZW50IHRoaXM/PGJyPisgJm5ic3A7ICovPGJyPis8YnI+KyAmbmJzcDsvKiBpZ25vcmUgZXZl bnQgaWYgZ2VuZXJhdGlvbiBkb2Vzbid0IG1hdGNoICovPGJyPisgJm5ic3A7Lyogb3RoZXIgdGhh biBza2lwcGluZyByZW1vdmFsIGV2ZW50cywgKi88YnI+KyAmbmJzcDsvKiB0aGlzIHNob3VsZCBh Y3R1YWxseSBiZSB2ZXJ5IHJhcmUgKi88YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAo Z2VuICE9ICh1aW50MzJfdClhbmZkcyBbZmRdLmVnZW4pKTxicj4rICZuYnNwOyAmbmJzcDtyZXR1 cm47PGJyPis8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAocmVzICZsdDsgMCkpPGJy PisgJm5ic3A7ICZuYnNwO3s8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qVE9ETzogRUlOVkFM IGhhbmRsaW5nICh3YXMgc29tZXRoaW5nIGZhaWxlZCB3aXRoIHRoaXMgZmQpKi88YnI+Kzxicj4r ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKHJlcyA9PSAtRUJBREYpPGJyPisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDth c3NlcnQgKCgibGliZXY6IGV2ZW50IGxvb3AgcmVqZWN0ZWQgYmFkIGZkIiwgcmVzICE9IC1FQkFE RikpOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtmZF9raWxsIChFVl9B XyBmZCk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4rICZuYnNwOyAmbmJz cDsgJm5ic3A7ZWxzZTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+KyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXJybm8gPSAtcmVzOzxicj4rICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9zeXNlcnIgKCIobGliZXYpIElPUklOR19PUF9Q T0xMX0FERCIpOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Kzxicj4rICZu YnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuOzxicj4rICZuYnNwOyAmbmJzcDt9PGJyPis8YnI+KyAm bmJzcDsvKiBmZWVkIGV2ZW50cywgd2UgZG8gbm90IGV4cGVjdCBvciBoYW5kbGUgUE9MTE5WQUwg Ki88YnI+KyAmbmJzcDtmZF9ldmVudCAoPGJyPisgJm5ic3A7ICZuYnNwO0VWX0FfPGJyPisgJm5i c3A7ICZuYnNwO2ZkLDxicj4rICZuYnNwOyAmbmJzcDsocmVzICZhbXA7IChQT0xMT1VUIHwgUE9M TEVSUiB8IFBPTExIVVApID8gRVZfV1JJVEUgOiAwKTxicj4rICZuYnNwOyAmbmJzcDt8IChyZXMg JmFtcDsgKFBPTExJTiB8IFBPTExFUlIgfCBQT0xMSFVQKSA/IEVWX1JFQUQgOiAwKTxicj4rICZu YnNwOyk7PGJyPis8YnI+KyAmbmJzcDsvKiBpb191cmluZyBpcyBvbmVzaG90LCBzbyB3ZSBuZWVk IHRvIHJlLWFybSB0aGUgZmQgbmV4dCBpdGVyYXRpb24gKi88YnI+KyAmbmJzcDsvKiB0aGlzIGFs c28gbWVhbnMgd2UgdXN1YWxseSBoYXZlIHRvIGRvIGF0IGxlYXN0IG9uZSBzeXNjYWxsIHBlciBp dGVyYXRpb24gKi88YnI+KyAmbmJzcDthbmZkcyBbZmRdLmV2ZW50cyA9IDA7PGJyPisgJm5ic3A7 ZmRfY2hhbmdlIChFVl9BXyBmZCwgRVZfQU5GRF9SRUlGWSk7PGJyPit9PGJyPis8YnI+Ky8qIGNh bGxlZCB3aGVuIHRoZSBldmVudCBxdWV1ZSBvdmVyZmxvd3MgKi88YnI+K2VjYl9jb2xkPGJyPitz dGF0aWMgdm9pZDxicj4raW91cmluZ19vdmVyZmxvdyAoRVZfUCk8YnI+K3s8YnI+KyAmbmJzcDsv KiB3ZSBoYXZlIHR3byBvcHRpb25zLCByZXNpemUgdGhlIHF1ZXVlIChieSB0ZWFyaW5nIGRvd248 YnI+KyAmbmJzcDsgKiBldmVyeXRoaW5nIGFuZCByZWNyZWF0aW5nIGl0LCBvciBsaXZpbmcgd2l0 aCBpdDxicj4rICZuYnNwOyAqIGFuZCBwb2xsaW5nLjxicj4rICZuYnNwOyAqIHdlIGltcGxlbWVu dCB0aGlzIGJ5IHJlc2l6aW5nIHRoZSBxdWV1ZSwgYW5kLCBpZiB0aGF0IGZhaWxzLDxicj4rICZu YnNwOyAqIHdlIGp1c3QgcmVjcmVhdGUgdGhlIHN0YXRlIG9uIGV2ZXJ5IGZhaWx1cmUsIHdoaWNo PGJyPisgJm5ic3A7ICoga2luZCBvZiBpcyBhIHZlcnkgaW5lZmZpY2llbnQgcG9sbC48YnI+KyAm bmJzcDsgKiBvbmUgZGFuZ2VyIGlzLCBkdWUgdG8gdGhlIGJpb3MgdG93YXJkIGxvd2VyIGZkcyw8 YnI+KyAmbmJzcDsgKiB3ZSB3aWxsIG9ubHkgcmVhbGx5IGdldCBldmVudHMgZm9yIHRob3NlLCBz bzxicj4rICZuYnNwOyAqIG1heWJlIHdlIG5lZWQgYSBwb2xsKCkgZmFsbGJhY2ssIGFmdGVyIGFs bC48YnI+KyAmbmJzcDsgKi88YnI+KyAmbmJzcDsvKkVWX0NRX1ZBUiAob3ZlcmZsb3cpID0gMDsq LyAvKiBuZWVkIHRvIGRvIHRoaXMgaWYgd2Uga2VlcCB0aGUgc3RhdGUgYW5kIHBvbGwgbWFudWFs bHkgKi88YnI+Kzxicj4rICZuYnNwO2ZkX3JlYXJtX2FsbCAoRVZfQSk7PGJyPis8YnI+KyAmbmJz cDsvKiB3ZSBkb3VibGUgdGhlIHNpemUgdW50aWwgd2UgaGl0IHRoZSBoYXJkLXRvLXByb2JlIG1h eGltdW0gKi88YnI+KyAmbmJzcDtpZiAoIWlvdXJpbmdfbWF4X2VudHJpZXMpPGJyPisgJm5ic3A7 ICZuYnNwO3s8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lvdXJpbmdfZW50cmllcyAmbHQ7Jmx0 Oz0gMTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lvdXJpbmdfZm9yayAoRVZfQSk7PGJyPisg Jm5ic3A7ICZuYnNwO308YnI+KyAmbmJzcDtlbHNlPGJyPisgJm5ic3A7ICZuYnNwO3s8YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwOy8qIHdlIGhpdCB0aGUga2VybmVsIGxpbWl0LCB3ZSBzaG91bGQg ZmFsbCBiYWNrIHRvIHNvbWV0aGluZyBlbHNlLjxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICog d2UgY2FuIGVpdGhlciBwb2xsKCkgYSBmZXcgdGltZXMgYW5kIGhvcGUgZm9yIHRoZSBiZXN0LDxi cj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICogcG9sbCBhbHdheXMsIG9yIHN3aXRjaCB0byBlcG9s bC48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAqIFRPRE86IGlzIHRoaXMgbmVjZXNzYXJ5IHdp dGggbmV3ZXIga2VybmVscz88YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAqLzxicj4rPGJyPisg Jm5ic3A7ICZuYnNwOyAmbmJzcDtpb3VyaW5nX2ludGVybmFsX2Rlc3Ryb3kgKEVWX0EpOzxicj4r PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiB0aGlzIHNob3VsZCBtYWtlIGl0IHNvIHRoYXQg b24gcmV0dXJuLCB3ZSBkb24ndCBjYWxsIGFueSB1cmluZyBmdW5jdGlvbnMgKi88YnI+KyAmbmJz cDsgJm5ic3A7ICZuYnNwO2lvdXJpbmdfdG9fc3VibWl0ID0gMDs8YnI+Kzxicj4rICZuYnNwOyAm bmJzcDsgJm5ic3A7Zm9yICg7Oyk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2JhY2tlbmQgPSBlcG9sbF9pbml0 IChFVl9BXyAwKTs8YnI+Kzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtp ZiAoYmFja2VuZCk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O2JyZWFrOzxicj4rPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3N5 c2VyciAoIihsaWJldikgaW91cmluZyBzd2l0Y2ggdG8gZXBvbGwiKTs8YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDt9PGJyPisgJm5ic3A7ICZuYnNwO308YnI+K308YnI+Kzxicj4rLyog aGFuZGxlIGFueSBldmVudHMgaW4gdGhlIGNvbXBsZXRpb24gcXVldWUsIHJldHVybiB0cnVlIGlm IHRoZXJlIHdlcmUgYW55ICovPGJyPitzdGF0aWMgaW50PGJyPitpb3VyaW5nX2hhbmRsZV9jcSAo RVZfUCk8YnI+K3s8YnI+KyAmbmJzcDt1bnNpZ25lZCBoZWFkLCB0YWlsLCBtYXNrOzxicj4rICZu YnNwOzxicj4rICZuYnNwO2hlYWQgPSBFVl9DUV9WQVIgKGhlYWQpOzxicj4rICZuYnNwO0VDQl9N RU1PUllfRkVOQ0VfQUNRVUlSRTs8YnI+KyAmbmJzcDt0YWlsID0gRVZfQ1FfVkFSICh0YWlsKTs8 YnI+Kzxicj4rICZuYnNwO2lmIChoZWFkID09IHRhaWwpPGJyPisgJm5ic3A7ICZuYnNwO3JldHVy biAwOzxicj4rPGJyPisgJm5ic3A7LyogaXQgY2FuIG9ubHkgb3ZlcmZsb3cgaWYgd2UgaGF2ZSBl dmVudHMsIHllcywgeWVzPyAqLzxicj4rICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlIChFVl9D UV9WQVIgKG92ZXJmbG93KSkpPGJyPisgJm5ic3A7ICZuYnNwO3s8YnI+KyAmbmJzcDsgJm5ic3A7 ICZuYnNwO2lvdXJpbmdfb3ZlcmZsb3cgKEVWX0EpOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7 cmV0dXJuIDE7PGJyPisgJm5ic3A7ICZuYnNwO308YnI+Kzxicj4rICZuYnNwO21hc2sgPSBFVl9D UV9WQVIgKHJpbmdfbWFzayk7PGJyPis8YnI+KyAmbmJzcDtkbzxicj4rICZuYnNwOyAmbmJzcDtp b3VyaW5nX3Byb2Nlc3NfY3FlIChFVl9BXyAmYW1wO0VWX0NRRVMgW2hlYWQrKyAmYW1wOyBtYXNr XSk7PGJyPisgJm5ic3A7d2hpbGUgKGhlYWQgIT0gdGFpbCk7PGJyPis8YnI+KyAmbmJzcDtFVl9D UV9WQVIgKGhlYWQpID0gaGVhZDs8YnI+KyAmbmJzcDtFQ0JfTUVNT1JZX0ZFTkNFX1JFTEVBU0U7 PGJyPis8YnI+KyAmbmJzcDtyZXR1cm4gMTs8YnI+K308YnI+Kzxicj4rc3RhdGljIHZvaWQ8YnI+ K2lvdXJpbmdfcG9sbCAoRVZfUF8gZXZfdHN0YW1wIHRpbWVvdXQpPGJyPit7PGJyPisgJm5ic3A7 LyogaWYgd2UgaGF2ZSBldmVudHMsIG5vIG5lZWQgZm9yIGV4dHJhIHN5c2NhbGxzLCBidXQgd2Ug bWlnaHQgaGF2ZSB0byBxdWV1ZSBldmVudHMgKi88YnI+KyAmbmJzcDsvKiB3ZSBhbHNvIGNsYXIg dGhlIHRpbWVvdXQgaWYgdGhlcmUgYXJlIG91dHN0YW5kaW5nIGZkY2hhbmdlcyAqLzxicj4rICZu YnNwOy8qIHRoZSBsYXR0ZXIgc2hvdWxkIG9ubHkgaGFwcGVuIGlmIGJvdGggdGhlIHNxIGFuZCBj cSBhcmUgZnVsbCwgbW9zdCBsaWtlbHkgKi88YnI+KyAmbmJzcDsvKiBiZWNhdXNlIHdlIGhhdmUg YSBsb3Qgb2YgZXZlbnQgc291cmNlcyB0aGF0IGltbWVkaWF0ZWx5IGNvbXBsZXRlICovPGJyPisg Jm5ic3A7LyogVE9ETzogZmRjaGFjbmdlY250IGlzIGFsd2F5cyAwIGJlY2F1c2UgZmRfcmVpZnkg ZG9lcyBub3QgaGF2ZSB0d28gYnVmZmVycyB5ZXQgKi88YnI+KyAmbmJzcDtpZiAoaW91cmluZ19o YW5kbGVfY3EgKEVWX0EpIHx8IGZkY2hhbmdlY250KTxicj4rICZuYnNwOyAmbmJzcDt0aW1lb3V0 ID0gRVZfVFNfQ09OU1QgKDAuKTs8YnI+KyAmbmJzcDtlbHNlPGJyPisgJm5ic3A7ICZuYnNwOy8q IG5vIGV2ZW50cywgc28gbWF5YmUgd2FpdCBmb3Igc29tZSAqLzxicj4rICZuYnNwOyAmbmJzcDtp b3VyaW5nX3RmZF91cGRhdGUgKEVWX0FfIHRpbWVvdXQpOzxicj4rPGJyPisgJm5ic3A7Lyogb25s eSBlbnRlciB0aGUga2VybmVsIGlmIHdlIGhhdmUgc29tZXRoaW5nIHRvIHN1Ym1pdCwgb3Igd2Ug bmVlZCB0byB3YWl0ICovPGJyPisgJm5ic3A7aWYgKHRpbWVvdXQgfHwgaW91cmluZ190b19zdWJt aXQpPGJyPisgJm5ic3A7ICZuYnNwO3s8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2ludCByZXMg PSBpb3VyaW5nX2VudGVyIChFVl9BXyB0aW1lb3V0KTs8YnI+Kzxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKHJlcyAmbHQ7IDApKTxicj4rICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO2lmIChlcnJubyA9PSBFSU5UUik8YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7LyogaWdub3JlICovOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO2Vsc2UgaWYgKGVycm5vID09IEVCVVNZKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsvKiBjcSBmdWxsLCBjYW5ub3Qgc3VibWl0IC0gc2hvdWxkIGJlIHJhcmUg YmVjYXVzZSB3ZSBmbHVzaCB0aGUgY3EgZmlyc3QsIHNvIHNpbXBseSBpZ25vcmUgKi87PGJyPisg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZWxzZTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDtldl9zeXNlcnIgKCIobGliZXYpIGlvdXJpbmcgc2V0dXAiKTs8YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwO2Vsc2U8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtp b3VyaW5nX2hhbmRsZV9jcSAoRVZfQSk7PGJyPisgJm5ic3A7ICZuYnNwO308YnI+K308YnI+Kzxi cj4raW5saW5lX3NpemU8YnI+K2ludDxicj4raW91cmluZ19pbml0IChFVl9QXyBpbnQgZmxhZ3Mp PGJyPit7PGJyPisgJm5ic3A7aW91cmluZ19lbnRyaWVzICZuYnNwOyAmbmJzcDsgPSBJT1VSSU5H X0lOSVRfRU5UUklFUzs8YnI+KyAmbmJzcDtpb3VyaW5nX21heF9lbnRyaWVzID0gMDs8YnI+Kzxi cj4rICZuYnNwO2lmIChpb3VyaW5nX2ludGVybmFsX2luaXQgKEVWX0EpICZsdDsgMCk8YnI+KyAm bmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7aW91cmluZ19pbnRlcm5hbF9k ZXN0cm95IChFVl9BKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JldHVybiAwOzxicj4rICZu YnNwOyAmbmJzcDt9PGJyPis8YnI+KyAmbmJzcDtldl9pb19pbml0ICZuYnNwOygmYW1wO2lvdXJp bmdfdGZkX3csIGlvdXJpbmdfdGZkX2NiLCBpb3VyaW5nX3RmZCwgRVZfUkVBRCk7PGJyPisgJm5i c3A7ZXZfc2V0X3ByaW9yaXR5ICgmYW1wO2lvdXJpbmdfdGZkX3csIEVWX01JTlBSSSk7PGJyPisg Jm5ic3A7ZXZfaW9fc3RhcnQgKEVWX0FfICZhbXA7aW91cmluZ190ZmRfdyk7PGJyPisgJm5ic3A7 ZXZfdW5yZWYgKEVWX0EpOyAvKiB3YXRjaGVyIHNob3VsZCBub3Qga2VlcCBsb29wIGFsaXZlICov PGJyPis8YnI+KyAmbmJzcDtiYWNrZW5kX21vZGlmeSA9IGlvdXJpbmdfbW9kaWZ5Ozxicj4rICZu YnNwO2JhY2tlbmRfcG9sbCAmbmJzcDsgPSBpb3VyaW5nX3BvbGw7PGJyPis8YnI+KyAmbmJzcDty ZXR1cm4gRVZCQUNLRU5EX0lPVVJJTkc7PGJyPit9PGJyPis8YnI+K2lubGluZV9zaXplPGJyPit2 b2lkPGJyPitpb3VyaW5nX2Rlc3Ryb3kgKEVWX1ApPGJyPit7PGJyPisgJm5ic3A7aW91cmluZ19p bnRlcm5hbF9kZXN0cm95IChFVl9BKTs8YnI+K308YnI+Kzxicj5kaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvbGliZXYvZXZfa3F1ZXVlLmMgYi90aGlyZF9wYXJ0eS9saWJldi9ldl9rcXVldWUuYzxi cj5pbmRleCAwYzA1YWI5ZTcuLjY5YzUxNDdmMSAxMDA2NDQ8YnI+LS0tIGEvdGhpcmRfcGFydHkv bGliZXYvZXZfa3F1ZXVlLmM8YnI+KysrIGIvdGhpcmRfcGFydHkvbGliZXYvZXZfa3F1ZXVlLmM8 YnI+QEAgLTEsNyArMSw3IEBAPGJyPiZuYnNwOy8qPGJyPiZuYnNwOyAqIGxpYmV2IGtxdWV1ZSBi YWNrZW5kPGJyPiZuYnNwOyAqPGJyPi0gKiBDb3B5cmlnaHQgKGMpIDIwMDcsMjAwOCwyMDA5LDIw MTAsMjAxMSwyMDEyLDIwMTMgTWFyYyBBbGV4YW5kZXIgTGVobWFubiAmbHQ7bGliZXZAc2NobW9y cC5kZSZndDs8YnI+KyAqIENvcHlyaWdodCAoYykgMjAwNywyMDA4LDIwMDksMjAxMCwyMDExLDIw MTIsMjAxMywyMDE2LDIwMTkgTWFyYyBBbGV4YW5kZXIgTGVobWFubiAmbHQ7bGliZXZAc2NobW9y cC5kZSZndDs8YnI+Jm5ic3A7ICogQWxsIHJpZ2h0cyByZXNlcnZlZC48YnI+Jm5ic3A7ICo8YnI+ Jm5ic3A7ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt cywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhLTxicj5AQCAtNDgsNyArNDgsNyBAQCB2b2lkPGJy PiZuYnNwO2txdWV1ZV9jaGFuZ2UgKEVWX1BfIGludCBmZCwgaW50IGZpbHRlciwgaW50IGZsYWdz LCBpbnQgZmZsYWdzKTxicj4mbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsrK2txdWV1ZV9jaGFuZ2Vj bnQ7PGJyPi0gJm5ic3A7YXJyYXlfbmVlZHNpemUgKHN0cnVjdCBrZXZlbnQsIGtxdWV1ZV9jaGFu Z2VzLCBrcXVldWVfY2hhbmdlbWF4LCBrcXVldWVfY2hhbmdlY250LCBFTVBUWTIpOzxicj4rICZu YnNwO2FycmF5X25lZWRzaXplIChzdHJ1Y3Qga2V2ZW50LCBrcXVldWVfY2hhbmdlcywga3F1ZXVl X2NoYW5nZW1heCwga3F1ZXVlX2NoYW5nZWNudCwgYXJyYXlfbmVlZHNpemVfbm9pbml0KTs8YnI+ Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDtFVl9TRVQgKCZhbXA7a3F1ZXVlX2NoYW5nZXMgW2txdWV1 ZV9jaGFuZ2VjbnQgLSAxXSwgZmQsIGZpbHRlciwgZmxhZ3MsIGZmbGFncywgMCwgMCk7PGJyPiZu YnNwO308YnI+QEAgLTEwMywxMCArMTAzLDEwIEBAIGtxdWV1ZV9wb2xsIChFVl9QXyBldl90c3Rh bXAgdGltZW91dCk8YnI+Jm5ic3A7ICZuYnNwO0VWX0FDUVVJUkVfQ0I7PGJyPiZuYnNwOyAmbmJz cDtrcXVldWVfY2hhbmdlY250ID0gMDs8YnI+Jm5ic3A7PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF9m YWxzZSAocmVzICZsdDsgMCkpPGJyPisgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKHJlcyAm bHQ7IDApKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7aWYgKGVycm5vICE9IEVJTlRSKTxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O2V2X3N5c2VyciAoIihsaWJldikga2V2ZW50Iik7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ZXZfc3lzZXJyICgiKGxpYmV2KSBrcXVldWUga2V2ZW50Iik7PGJyPiZuYnNwOzxicj4m bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm47PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 fTxicj5AQCAtMTE1LDcgKzExNSw3IEBAIGtxdWV1ZV9wb2xsIChFVl9QXyBldl90c3RhbXAgdGlt ZW91dCk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO2ludCBmZCA9IGtxdWV1ZV9ldmVudHMgW2ldLmlkZW50Ozxicj4mbmJzcDs8YnI+LSAmbmJz cDsgJm5ic3A7ICZuYnNwO2lmIChleHBlY3RfZmFsc2UgKGtxdWV1ZV9ldmVudHMgW2ldLmZsYWdz ICZhbXA7IEVWX0VSUk9SKSk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0 X2ZhbHNlIChrcXVldWVfZXZlbnRzIFtpXS5mbGFncyAmYW1wOyBFVl9FUlJPUikpPGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7aW50IGVyciA9IGtxdWV1ZV9ldmVudHMgW2ldLmRhdGE7PGJyPiZu YnNwOzxicj5AQCAtMTI5LDEwICsxMjksMTYgQEAga3F1ZXVlX3BvbGwgKEVWX1BfIGV2X3RzdGFt cCB0aW1lb3V0KTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZmRfdmFsaWQgKGZkKSk8YnI+Jm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO2txdWV1ZV9tb2RpZnkgKEVWX0FfIGZkLCAwLCBhbmZkcyBbZmRdLmV2ZW50cyk7 PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO2Vsc2U8YnI+LSAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtmZF9raWxsIChFVl9BXyBmZCk7 PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDthc3NlcnQgKCgibGli ZXY6IGtxdWV1ZSBmb3VuZCBpbnZhbGlkIGZkIiwgMCkpOzxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtmZF9raWxsIChFVl9BXyBmZCk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Vsc2Ug Lyogb24gYWxsIG90aGVyIGVycm9ycywgd2UgZXJyb3Igb3V0IG9uIHRoZSBmZCAqLzxicj4tICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtmZF9r aWxsIChFVl9BXyBmZCk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO3s8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Fzc2VydCAoKCJsaWJldjoga3F1ZXVlIGZv dW5kIGludmFsaWQgZmQiLCAwKSk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtmZF9raWxsIChFVl9BXyBmZCk7PGJyPisg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4m bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4mbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtlbHNlPGJyPkBAIC0xNDUsNyArMTUxLDcgQEAga3F1ZXVlX3BvbGwgKEVWX1BfIGV2 X3RzdGFtcCB0aW1lb3V0KTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7KTs8 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxicj4tICZuYnNwO2lmIChleHBlY3Rf ZmFsc2UgKHJlcyA9PSBrcXVldWVfZXZlbnRtYXgpKTxicj4rICZuYnNwO2lmIChlY2JfZXhwZWN0 X2ZhbHNlIChyZXMgPT0ga3F1ZXVlX2V2ZW50bWF4KSk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7 PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X2ZyZWUgKGtxdWV1ZV9ldmVudHMpOzxi cj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtrcXVldWVfZXZlbnRtYXggPSBhcnJheV9uZXh0 c2l6ZSAoc2l6ZW9mIChzdHJ1Y3Qga2V2ZW50KSwga3F1ZXVlX2V2ZW50bWF4LCBrcXVldWVfZXZl bnRtYXggKyAxKTs8YnI+QEAgLTE2NCw3ICsxNzAsNyBAQCBrcXVldWVfaW5pdCAoRVZfUF8gaW50 IGZsYWdzKTxicj4mbmJzcDs8YnI+Jm5ic3A7ICZuYnNwO2ZjbnRsIChiYWNrZW5kX2ZkLCBGX1NF VEZELCBGRF9DTE9FWEVDKTsgLyogbm90IHN1cmUgaWYgbmVjZXNzYXJ5LCBob3BlZnVsbHkgZG9l c24ndCBodXJ0ICovPGJyPiZuYnNwOzxicj4tICZuYnNwO2JhY2tlbmRfbWludGltZSA9IDFlLTk7 IC8qIGFwcGFyZW50bHksIHRoZXkgZGlkIHRoZSByaWdodCB0aGluZyBpbiBmcmVlYnNkICovPGJy PisgJm5ic3A7YmFja2VuZF9taW50aW1lID0gRVZfVFNfQ09OU1QgKDFlLTkpOyAvKiBhcHBhcmVu dGx5LCB0aGV5IGRpZCB0aGUgcmlnaHQgdGhpbmcgaW4gZnJlZWJzZCAqLzxicj4mbmJzcDsgJm5i c3A7YmFja2VuZF9tb2RpZnkgJm5ic3A7PSBrcXVldWVfbW9kaWZ5Ozxicj4mbmJzcDsgJm5ic3A7 YmFja2VuZF9wb2xsICZuYnNwOyAmbmJzcDs9IGtxdWV1ZV9wb2xsOzxicj4mbmJzcDs8YnI+ZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2X2xpbnV4YWlvLmMgYi90aGlyZF9wYXJ0eS9s aWJldi9ldl9saW51eGFpby5jPGJyPm5ldyBmaWxlIG1vZGUgMTAwNjQ0PGJyPmluZGV4IDAwMDAw MDAwMC4uNDY4N2E3MDNlPGJyPi0tLSAvZGV2L251bGw8YnI+KysrIGIvdGhpcmRfcGFydHkvbGli ZXYvZXZfbGludXhhaW8uYzxicj5AQCAtMCwwICsxLDYyMCBAQDxicj4rLyo8YnI+KyAqIGxpYmV2 IGxpbnV4IGFpbyBmZCBhY3Rpdml0eSBiYWNrZW5kPGJyPisgKjxicj4rICogQ29weXJpZ2h0IChj KSAyMDE5IE1hcmMgQWxleGFuZGVyIExlaG1hbm4gJmx0O2xpYmV2QHNjaG1vcnAuZGUmZ3Q7PGJy PisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjxicj4rICo8YnI+KyAqIFJlZGlzdHJpYnV0aW9uIGFu ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmlj YS08YnI+KyAqIHRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnMgYXJlIG1ldDo8YnI+KyAqPGJyPisgKiAmbmJzcDsgMS4gJm5ic3A7UmVkaXN0 cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlLDxicj4rICogJm5ic3A7ICZuYnNwOyAmbmJzcDsgdGhpcyBsaXN0IG9mIGNvbmRpdGlv bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci48YnI+KyAqPGJyPisgKiAmbmJzcDsgMi4g Jm5ic3A7UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh Ym92ZSBjb3B5cmlnaHQ8YnI+KyAqICZuYnNwOyAmbmJzcDsgJm5ic3A7IG5vdGljZSwgdGhpcyBs aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGU8YnI+ KyAqICZuYnNwOyAmbmJzcDsgJm5ic3A7IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uPGJyPisgKjxicj4rICogVEhJUyBT T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJF U1MgT1IgSU1QTElFRDxicj4rICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSLTxicj4rICogQ0hBTlRBQklMSVRZ IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gJm5i c3A7SU4gTk88YnI+KyAqIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkg RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFLTxicj4rICogQ0lBTCwgRVhFTVBMQVJZ LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP LDxicj4rICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7PGJyPisgKiBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSw8YnI+KyAq IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO RyBORUdMSUdFTkNFIE9SIE9USC08YnI+KyAqIEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRDxicj4rICogT0Yg VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLjxicj4rICo8YnI+KyAqIEFsdGVybmF0aXZl bHksIHRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgbWF5IGJlIHVzZWQgdW5kZXIgdGhlIHRlcm1z IG9mPGJyPisgKiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKCJHUEwiKSB2ZXJzaW9u IDIgb3IgYW55IGxhdGVyIHZlcnNpb24sPGJyPisgKiBpbiB3aGljaCBjYXNlIHRoZSBwcm92aXNp b25zIG9mIHRoZSBHUEwgYXJlIGFwcGxpY2FibGUgaW5zdGVhZCBvZjxicj4rICogdGhlIGFib3Zl LiBJZiB5b3Ugd2lzaCB0byBhbGxvdyB0aGUgdXNlIG9mIHlvdXIgdmVyc2lvbiBvZiB0aGlzIGZp bGU8YnI+KyAqIG9ubHkgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHUEwgYW5kIG5vdCB0byBhbGxv dyBvdGhlcnMgdG8gdXNlIHlvdXI8YnI+KyAqIHZlcnNpb24gb2YgdGhpcyBmaWxlIHVuZGVyIHRo ZSBCU0QgbGljZW5zZSwgaW5kaWNhdGUgeW91ciBkZWNpc2lvbjxicj4rICogYnkgZGVsZXRpbmcg dGhlIHByb3Zpc2lvbnMgYWJvdmUgYW5kIHJlcGxhY2UgdGhlbSB3aXRoIHRoZSBub3RpY2U8YnI+ KyAqIGFuZCBvdGhlciBwcm92aXNpb25zIHJlcXVpcmVkIGJ5IHRoZSBHUEwuIElmIHlvdSBkbyBu b3QgZGVsZXRlIHRoZTxicj4rICogcHJvdmlzaW9ucyBhYm92ZSwgYSByZWNpcGllbnQgbWF5IHVz ZSB5b3VyIHZlcnNpb24gb2YgdGhpcyBmaWxlIHVuZGVyPGJyPisgKiBlaXRoZXIgdGhlIEJTRCBv ciB0aGUgR1BMLjxicj4rICovPGJyPis8YnI+Ky8qPGJyPisgKiBnZW5lcmFsIG5vdGVzIGFib3V0 IGxpbnV4IGFpbzo8YnI+KyAqPGJyPisgKiBhKSBhdCBmaXJzdCwgdGhlIGxpbnV4IGFpbyBJT0NC X0NNRF9QT0xMIGZ1bmN0aW9uYWxpdHkgaW50cm9kdWNlZCBpbjxicj4rICogJm5ic3A7ICZuYnNw OzQuMTggbG9va3MgdG9vIGdvb2QgdG8gYmUgdHJ1ZTogYm90aCB3YXRjaGVycyBhbmQgZXZlbnRz IGNhbiBiZTxicj4rICogJm5ic3A7ICZuYnNwO2JhdGNoZWQsIGFuZCBldmVudHMgY2FuIGV2ZW4g YmUgaGFuZGxlZCBpbiB1c2Vyc3BhY2UgdXNpbmc8YnI+KyAqICZuYnNwOyAmbmJzcDthIHJpbmcg YnVmZmVyIHNoYXJlZCB3aXRoIHRoZSBrZXJuZWwuIHdhdGNoZXJzIGNhbiBiZSBjYW5jZWxlZDxi cj4rICogJm5ic3A7ICZuYnNwO3JlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgZmQgaGFzIGJlZW4g Y2xvc2VkLiBubyBwcm9ibGVtcyB3aXRoIGZvcmsuPGJyPisgKiAmbmJzcDsgJm5ic3A7b2ssIHRo ZSByaW5nIGJ1ZmZlciBpcyAyMDAlIHVuZG9jdW1lbnRlZCAodGhlcmUgaXNuJ3QgZXZlbiBhPGJy PisgKiAmbmJzcDsgJm5ic3A7aGVhZGVyIGZpbGUpLCBidXQgb3RoZXJ3aXNlLCBpdCdzIHB1cmUg Ymxpc3MhPGJyPisgKiBiKSBvaywgd2F0Y2hlcnMgYXJlIG9uZS1zaG90LCBzbyB5b3UgaGF2ZSB0 byByZS1hcm0gYWN0aXZlIG9uZXM8YnI+KyAqICZuYnNwOyAmbmJzcDtvbiBldmVyeSBpdGVyYXRp b24uIHNvIG11Y2ggZm9yIHN5c2NhbGwtbGVzcyBldmVudCBoYW5kbGluZyw8YnI+KyAqICZuYnNw OyAmbmJzcDtidXQgYXQgbGVhc3QgdGhlc2UgcmUtYXJtcyBjYW4gYmUgYmF0Y2hlZCwgbm8gYmln IGRlYWwsIHJpZ2h0Pzxicj4rICogYykgd2VsbCwgbGludXggYXMgdXN1YWw6IHRoZSBkb2N1bWVu dGF0aW9uIGxpZXMgdG8geW91OiBpb19zdWJtaXQ8YnI+KyAqICZuYnNwOyAmbmJzcDtzb21ldGlt ZXMgcmV0dXJucyBFSU5WQUwgYmVjYXVzZSB0aGUga2VybmVsIGRvZXNuJ3QgZmVlbCBsaWtlPGJy PisgKiAmbmJzcDsgJm5ic3A7aGFuZGxpbmcgeW91ciBwb2xsIG1hc2sgLSB0dHlzIGNhbiBiZSBw b2xsZWQgZm9yIFBPTExPVVQsPGJyPisgKiAmbmJzcDsgJm5ic3A7UE9MTE9VVHxQT0xMSU4sIGJ1 dCBwb2xsaW5nIGZvciBQT0xMSU4gZmFpbHMuIGp1c3QgZ3JlYXQsPGJyPisgKiAmbmJzcDsgJm5i c3A7c28gd2UgaGF2ZSB0byBmYWxsIGJhY2sgdG8gc29tZXRoaW5nIGVsc2UgKGhlbGxvLCBlcG9s bCksPGJyPisgKiAmbmJzcDsgJm5ic3A7YnV0IGF0IGxlYXN0IHRoZSBmYWxsYmFjayBjYW4gYmUg c2xvdywgYmVjYXVzZSB0aGVzZSBhcmU8YnI+KyAqICZuYnNwOyAmbmJzcDtleGNlcHRpb25hbCBj YXNlcywgcmlnaHQ/PGJyPisgKiBkKSBobW0sIHlvdSBoYXZlIHRvIHRlbGwgdGhlIGtlcm5lbCB0 aGUgbWF4aW11bSBudW1iZXIgb2Ygd2F0Y2hlcnM8YnI+KyAqICZuYnNwOyAmbmJzcDt5b3Ugd2Fu dCB0byBxdWV1ZSB3aGVuIGluaXRpYWxpc2luZyB0aGUgYWlvIGNvbnRleHQuIGJ1dCBvZjxicj4r ICogJm5ic3A7ICZuYnNwO2NvdXJzZSB0aGUgcmVhbCBsaW1pdCBpcyBtYWdpY2FsbHkgY2FsY3Vs YXRlZCBpbiB0aGUga2VybmVsLCBhbmQ8YnI+KyAqICZuYnNwOyAmbmJzcDtpcyBvZnRlbiBoaWdo ZXIgdGhlbiB3ZSBhc2tlZCBmb3IuIHNvIHdlIGp1c3QgaGF2ZSB0byBkZXN0cm95PGJyPisgKiAm bmJzcDsgJm5ic3A7dGhlIGFpbyBjb250ZXh0IGFuZCByZS1jcmVhdGUgaXQgYSBiaXQgbGFyZ2Vy IGlmIHdlIGhpdCB0aGUgbGltaXQuPGJyPisgKiAmbmJzcDsgJm5ic3A7KHN0YXJ0cyB0byByZW1p bmQgeW91IG9mIGVwb2xsPyB3ZWxsLCBpdCdzIGEgYml0IG1vcmUgZGV0ZXJtaW5pc3RpYzxicj4r ICogJm5ic3A7ICZuYnNwO2FuZCBsZXNzIGdhbWJsaW5nLCBidXQgc3RpbGwgdWdseSBhcyBoZWxs KS48YnI+KyAqIGUpIHRoYXQncyB3aGVuIHlvdSBmaW5kIG91dCB5b3UgY2FuIGFsc28gaGl0IGFu IGFyYml0cmFyeSBzeXN0ZW0td2lkZTxicj4rICogJm5ic3A7ICZuYnNwO2xpbWl0LiBvciB0aGUg a2VybmVsIHNpbXBseSBkb2Vzbid0IHdhbnQgdG8gaGFuZGxlIHlvdXIgd2F0Y2hlcnMuPGJyPisg KiAmbmJzcDsgJm5ic3A7d2hhdCB0aGUgZnVjayBkbyB3ZSBkbyB0aGVuPyB5b3UgZ3Vlc3NlZCBp dCwgaW4gdGhlIG1pZGRsZTxicj4rICogJm5ic3A7ICZuYnNwO29mIGV2ZW50IGhhbmRsaW5nIHdl IGhhdmUgdG8gc3dpdGNoIHRvIDEwMCUgZXBvbGwgcG9sbGluZy4gYW5kPGJyPisgKiAmbmJzcDsg Jm5ic3A7dGhhdCBiZXR0ZXIgaXMgYXMgZmFzdCBhcyBub3JtYWwgZXBvbGwgcG9sbGluZywgc28g eW91IHByYWN0aWNhbGx5PGJyPisgKiAmbmJzcDsgJm5ic3A7aGF2ZSB0byB1c2UgdGhlIG5vcm1h bCBlcG9sbCBiYWNrZW5kIHdpdGggYWxsIGl0cyBxdWlya3MuPGJyPisgKiBmKSBlbmQgcmVzdWx0 IG9mIHRoaXMgdHJhaW4gd3JlY2s6IGl0IGluaGVyaXRzIGFsbCB0aGUgZGlzYWR2YW50YWdlczxi cj4rICogJm5ic3A7ICZuYnNwO2Zyb20gZXBvbGwsIHdoaWxlIGFkZGluZyBhIG51bWJlciBvbiBp dHMgb3duLiB3aHkgZXZlbiBib3RoZXIgdG8gdXNlPGJyPisgKiAmbmJzcDsgJm5ic3A7aXQ/IGJl Y2F1c2UgaWYgY29uZGl0aW9ucyBhcmUgcmlnaHQgYW5kIHlvdXIgZmRzIGFyZSBzdXBwb3J0ZWQg YW5kIHlvdTxicj4rICogJm5ic3A7ICZuYnNwO2Rvbid0IGhpdCBhIGxpbWl0LCB0aGlzIGJhY2tl bmQgaXMgYWN0dWFsbHkgZmFzdGVyLCBkb2Vzbid0IGdhbWJsZSB3aXRoPGJyPisgKiAmbmJzcDsg Jm5ic3A7eW91ciBmZHMsIGJhdGNoZXMgd2F0Y2hlcnMgYW5kIGV2ZW50cyBhbmQgZG9lc24ndCBy ZXF1aXJlIGNvc3RseSBzdGF0ZTxicj4rICogJm5ic3A7ICZuYnNwO3JlY3JlYXRlcy4gd2VsbCwg dW50aWwgaXQgZG9lcy48YnI+KyAqIGcpIGFsbCBvZiB0aGlzIG1ha2VzIHRoaXMgYmFja2VuZCB1 c2UgYWxtb3N0IHR3aWNlIGFzIG11Y2ggY29kZSBhcyBlcG9sbC48YnI+KyAqICZuYnNwOyAmbmJz cDt3aGljaCBpbiB0dXJuIHVzZXMgdHdpY2UgYXMgbXVjaCBjb2RlIGFzIHBvbGwuIGFuZCB0aGF0 I3Mgbm90IGNvdW50aW5nPGJyPisgKiAmbmJzcDsgJm5ic3A7dGhlIGZhY3QgdGhhdCB0aGlzIGJh Y2tlbmQgYWxzbyBkZXBlbmRzIG9uIHRoZSBlcG9sbCBiYWNrZW5kLCBtYWtpbmc8YnI+KyAqICZu YnNwOyAmbmJzcDtpdCB0aHJlZSB0aW1lcyBhcyBtdWNoIGNvZGUgYXMgcG9sbCwgb3Iga3F1ZXVl Ljxicj4rICogaCkgYmxlYWguIHdoeSBjYW4ndCBsaW51eCBqdXN0IGRvIGtxdWV1ZS4gc3VyZSBr cXVldWUgaXMgdWdseSwgYnV0IGJ5IG5vdzxicj4rICogJm5ic3A7ICZuYnNwO2l0J3MgY2xlYXIg dGhhdCB3aGF0ZXZlciBsaW51eCBjb21lcyB1cCB3aXRoIGlzIGZhciwgZmFyLCBmYXIgd29yc2Uu PGJyPisgKi88YnI+Kzxicj4rI2luY2x1ZGUgJmx0O3N5cy90aW1lLmgmZ3Q7IC8qIGFjdHVhbGx5 IGxpbnV4L3RpbWUuaCwgYnV0IHdlIG11c3QgYXNzdW1lIHRoZXkgYXJlIGNvbXBhdGlibGUgKi88 YnI+KyNpbmNsdWRlICZsdDtwb2xsLmgmZ3Q7PGJyPisjaW5jbHVkZSAmbHQ7bGludXgvYWlvX2Fi aS5oJmd0Ozxicj4rPGJyPisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPGJyPisvKiBzeXNjYWxsIHdy YXBkYWRvb3AgLSB0aGlzIHNlY3Rpb24gaGFzIHRoZSByYXcgYXBpL2FiaSBkZWZpbml0aW9ucyAq Lzxicj4rPGJyPisjaW5jbHVkZSAmbHQ7c3lzL3N5c2NhbGwuaCZndDsgLyogbm8gZ2xpYmMgd3Jh cHBlcnMgKi88YnI+Kzxicj4rLyogYWlvX2FiaS5oIGlzIG5vdCB2ZXJzaW9uZWQgaW4gYW55IHdh eSwgc28gd2UgY2Fubm90IHRlc3QgZm9yIGl0cyBleGlzdGFuY2UgKi88YnI+KyNkZWZpbmUgSU9D Ql9DTURfUE9MTCA1PGJyPis8YnI+Ky8qIHRha2VuIGZyb20gbGludXgvZnMvYWlvLmMuIHl1cCwg dGhhdCdzIGEgLmMgZmlsZS48YnI+KyAqIG5vdCBvbmx5IGlzIHRoaXMgdG90YWxseSB1bmRvY3Vt ZW50ZWQsIG5vdCBldmVuIHRoZSBzb3VyY2UgY29kZTxicj4rICogY2FuIHRlbGwgeW91IHdoYXQg dGhlIGZ1dHVyZSBzZW1hbnRpY3Mgb2YgY29tcGF0X2ZlYXR1cmVzIGFuZDxicj4rICogaW5jb21w YXRfZmVhdHVyZXMgYXJlLCBvciB3aGF0IGhlYWRlcl9sZW5ndGggYWN0dWFsbHkgaXMgZm9yLjxi cj4rICovPGJyPisjZGVmaW5lIEFJT19SSU5HX01BR0lDICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7MHhhMTBhMTBhMTxicj4rI2Rl ZmluZSBFVl9BSU9fUklOR19JTkNPTVBBVF9GRUFUVVJFUyAmbmJzcDsgMDxicj4rc3RydWN0IGFp b19yaW5nPGJyPit7PGJyPisgJm5ic3A7dW5zaWduZWQgaWQ7ICZuYnNwOyAmbmJzcDsvKiBrZXJu ZWwgaW50ZXJuYWwgaW5kZXggbnVtYmVyICovPGJyPisgJm5ic3A7dW5zaWduZWQgbnI7ICZuYnNw OyAmbmJzcDsvKiBudW1iZXIgb2YgaW9fZXZlbnRzICovPGJyPisgJm5ic3A7dW5zaWduZWQgaGVh ZDsgJm5ic3A7LyogV3JpdHRlbiB0byBieSB1c2VybGFuZCBvciBieSBrZXJuZWwuICovPGJyPisg Jm5ic3A7dW5zaWduZWQgdGFpbDs8YnI+Kzxicj4rICZuYnNwO3Vuc2lnbmVkIG1hZ2ljOzxicj4r ICZuYnNwO3Vuc2lnbmVkIGNvbXBhdF9mZWF0dXJlczs8YnI+KyAmbmJzcDt1bnNpZ25lZCBpbmNv bXBhdF9mZWF0dXJlczs8YnI+KyAmbmJzcDt1bnNpZ25lZCBoZWFkZXJfbGVuZ3RoOyAmbmJzcDsv KiBzaXplIG9mIGFpb19yaW5nICovPGJyPis8YnI+KyAmbmJzcDtzdHJ1Y3QgaW9fZXZlbnQgaW9f ZXZlbnRzWzBdOzxicj4rfTs8YnI+Kzxicj4raW5saW5lX3NpemU8YnI+K2ludDxicj4rZXZzeXNf aW9fc2V0dXAgKHVuc2lnbmVkIG5yX2V2ZW50cywgYWlvX2NvbnRleHRfdCAqY3R4X2lkcCk8YnI+ K3s8YnI+KyAmbmJzcDtyZXR1cm4gZXZfc3lzY2FsbDIgKFNZU19pb19zZXR1cCwgbnJfZXZlbnRz LCBjdHhfaWRwKTs8YnI+K308YnI+Kzxicj4raW5saW5lX3NpemU8YnI+K2ludDxicj4rZXZzeXNf aW9fZGVzdHJveSAoYWlvX2NvbnRleHRfdCBjdHhfaWQpPGJyPit7PGJyPisgJm5ic3A7cmV0dXJu IGV2X3N5c2NhbGwxIChTWVNfaW9fZGVzdHJveSwgY3R4X2lkKTs8YnI+K308YnI+Kzxicj4raW5s aW5lX3NpemU8YnI+K2ludDxicj4rZXZzeXNfaW9fc3VibWl0IChhaW9fY29udGV4dF90IGN0eF9p ZCwgbG9uZyBuciwgc3RydWN0IGlvY2IgKmNicFtdKTxicj4rezxicj4rICZuYnNwO3JldHVybiBl dl9zeXNjYWxsMyAoU1lTX2lvX3N1Ym1pdCwgY3R4X2lkLCBuciwgY2JwKTs8YnI+K308YnI+Kzxi cj4raW5saW5lX3NpemU8YnI+K2ludDxicj4rZXZzeXNfaW9fY2FuY2VsIChhaW9fY29udGV4dF90 IGN0eF9pZCwgc3RydWN0IGlvY2IgKmNicCwgc3RydWN0IGlvX2V2ZW50ICpyZXN1bHQpPGJyPit7 PGJyPisgJm5ic3A7cmV0dXJuIGV2X3N5c2NhbGwzIChTWVNfaW9fY2FuY2VsLCBjdHhfaWQsIGNi cCwgcmVzdWx0KTs8YnI+K308YnI+Kzxicj4raW5saW5lX3NpemU8YnI+K2ludDxicj4rZXZzeXNf aW9fZ2V0ZXZlbnRzIChhaW9fY29udGV4dF90IGN0eF9pZCwgbG9uZyBtaW5fbnIsIGxvbmcgbnIs IHN0cnVjdCBpb19ldmVudCAqZXZlbnRzLCBzdHJ1Y3QgdGltZXNwZWMgKnRpbWVvdXQpPGJyPit7 PGJyPisgJm5ic3A7cmV0dXJuIGV2X3N5c2NhbGw1IChTWVNfaW9fZ2V0ZXZlbnRzLCBjdHhfaWQs IG1pbl9uciwgbnIsIGV2ZW50cywgdGltZW91dCk7PGJyPit9PGJyPis8YnI+Ky8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi88YnI+Ky8qIGFjdHVhbCBiYWNrZWQgaW1wbGVtZW50YXRpb24gKi88YnI+Kzxi cj4rZWNiX2NvbGQ8YnI+K3N0YXRpYyBpbnQ8YnI+K2xpbnV4YWlvX25yX2V2ZW50cyAoRVZfUCk8 YnI+K3s8YnI+KyAmbmJzcDsvKiB3ZSBzdGFydCB3aXRoIDE2IGlvY2JzIGFuZCBpbmNyYWVzZSBm cm9tIHRoZXJlPGJyPisgJm5ic3A7ICogdGhhdCdzIHRpbnksIGJ1dCB0aGUga2VybmVsIGhhcyBh IHJhdGhlciBsb3cgc3lzdGVtLXdpZGU8YnI+KyAmbmJzcDsgKiBsaW1pdCB0aGF0IGNhbiBiZSBy ZWFjaGVkIHF1aWNrbHksIHNvIGxldCdzIGJlIHBhcnNpbW9uaW91czxicj4rICZuYnNwOyAqIHdp dGggdGhpcyByZXNvdXJjZS48YnI+KyAmbmJzcDsgKiBSZXN0IGFzc3VyZWQsIHRoZSBrZXJuZWwg Z2VuZXJvdXNseSByb3VuZHMgdXAgc21hbGwgYW5kIGJpZyBudW1iZXJzPGJyPisgJm5ic3A7ICog aW4gZGlmZmVyZW50IHdheXMgKGJ1dCBkb2Vzbid0IHNlZW0gdG8gY2hhcmdlIHlvdSBmb3IgaXQp Ljxicj4rICZuYnNwOyAqIFRoZSAxNSBoZXJlIGlzIGJlY2F1c2UgdGhlIGtlcm5lbCB1c3VhbGx5 IGhhcyBhIHBvd2VyIG9mIHR3byBhcyBhaW8tbWF4LW5yLDxicj4rICZuYnNwOyAqIGFuZCB0aGlz IGhlbHBzIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoYXQgbGltaXQuPGJyPisgJm5ic3A7ICovPGJy Pis8YnI+KyAmbmJzcDsvKiB3ZSB0cnkgdG8gZmlsbCA0a0IgcGFnZXMgZXhhY3RseS48YnI+KyAm bmJzcDsgKiB0aGUgcmluZyBidWZmZXIgaGVhZGVyIGlzIDMyIGJ5dGVzLCBldmVyeSBpbyBldmVu dCBpcyAzMiBieXRlcy48YnI+KyAmbmJzcDsgKiB0aGUga2VybmVsIHRha2VzIHRoZSBpbyByZXF1 ZXN0cyBudW1iZXIsIGRvdWJsZXMgaXQsIGFkZHMgMjxicj4rICZuYnNwOyAqIGFuZCBhZGRzIHRo ZSByaW5nIGJ1ZmZlci48YnI+KyAmbmJzcDsgKiB0aGUgd2F5IHdlIHVzZSB0aGlzIGlzIGJ5IHN0 YXJ0aW5nIGxvdywgYW5kIHRoZW4gcm91Z2hseSBkb3VibGluZyB0aGU8YnI+KyAmbmJzcDsgKiBz aXplIGVhY2ggdGltZSB3ZSBoaXQgYSBsaW1pdC48YnI+KyAmbmJzcDsgKi88YnI+Kzxicj4rICZu YnNwO2ludCByZXF1ZXN0cyAmbmJzcDsgPSAxNSAmbHQ7Jmx0OyBsaW51eGFpb19pdGVyYXRpb247 PGJyPisgJm5ic3A7aW50IG9uZV9wYWdlICZuYnNwOyA9ICZuYnNwOyg0MDk2PGJyPisgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7LyBzaXplb2YgKHN0cnVjdCBpb19ldmVudCkgJm5ic3A7ICZuYnNwOykgLyAyOyAvKiBo b3cgbWFueSBmaXQgaW50byBvbmUgcGFnZSAqLzxicj4rICZuYnNwO2ludCBmaXJzdF9wYWdlID0g KCg0MDk2IC0gc2l6ZW9mIChzdHJ1Y3QgYWlvX3JpbmcpKTxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8gc2l6 ZW9mIChzdHJ1Y3QgaW9fZXZlbnQpIC0gMikgLyAyOyAvKiBob3cgbWFueSBmaXQgaW50byB0aGUg Zmlyc3QgcGFnZSAqLzxicj4rPGJyPisgJm5ic3A7LyogaWYgZXZlcnl0aGluZyBmaXRzIGludG8g b25lIHBhZ2UsIHVzZSBjb3VudCBleGFjdGx5ICovPGJyPisgJm5ic3A7aWYgKHJlcXVlc3RzICZn dDsgZmlyc3RfcGFnZSk8YnI+KyAmbmJzcDsgJm5ic3A7Lyogb3RoZXJ3aXNlLCByb3VuZCBkb3du IHRvIGZ1bGwgcGFnZXMgYW5kIGFkZCB0aGUgZmlyc3QgcGFnZSAqLzxicj4rICZuYnNwOyAmbmJz cDtyZXF1ZXN0cyA9IHJlcXVlc3RzIC8gb25lX3BhZ2UgKiBvbmVfcGFnZSArIGZpcnN0X3BhZ2U7 PGJyPis8YnI+KyAmbmJzcDtyZXR1cm4gcmVxdWVzdHM7PGJyPit9PGJyPis8YnI+Ky8qIHdlIHVz ZSBvdXQgb3duIHdyYXBwZXIgc3RydWN0dXJlIGluIGNhc2Ugd2UgZXZlciB3YW50IHRvIGRvIHNv bWV0aGluZyAiY2xldmVyIiAqLzxicj4rdHlwZWRlZiBzdHJ1Y3QgYW5pb2NiPGJyPit7PGJyPisg Jm5ic3A7c3RydWN0IGlvY2IgaW87PGJyPisgJm5ic3A7LyppbnQgaW51c2U7Ki88YnI+K30gKkFO SU9DQlA7PGJyPis8YnI+K2lubGluZV9zaXplPGJyPit2b2lkPGJyPitsaW51eGFpb19hcnJheV9u ZWVkc2l6ZV9pb2NicCAoQU5JT0NCUCAqYmFzZSwgaW50IG9mZnNldCwgaW50IGNvdW50KTxicj4r ezxicj4rICZuYnNwO3doaWxlIChjb3VudC0tKTxicj4rICZuYnNwOyAmbmJzcDt7PGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDsvKiBUT0RPOiBxdWl0ZSB0aGUgb3ZlcmhlYWQgdG8gYWxsb2NhdGUg ZXZlcnkgaW9jYiBzZXBhcmF0ZWx5LCBtYXliZSB1c2Ugb3VyIG93biBhbGxvY2F0b3I/ICovPGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDtBTklPQ0JQIGlvY2IgPSAoQU5JT0NCUClldl9tYWxsb2Mg KHNpemVvZiAoKmlvY2IpKTs8YnI+Kzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogZnVsbCB6 ZXJvIGluaXRpYWxpc2UgaXMgcHJvYmFibHkgbm90IHJlcXVpcmVkIGF0IHRoZSBtb21lbnQsIGJ1 dDxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICogdGhpcyBpcyBub3Qgd2VsbCBkb2N1bWVudGVk LCBzbyB3ZSBiZXR0ZXIgZG8gaXQuPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgKi88YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwO21lbXNldCAoaW9jYiwgMCwgc2l6ZW9mICgqaW9jYikpOzxicj4r PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtpb2NiLSZndDtpby5haW9fbGlvX29wY29kZSA9IElP Q0JfQ01EX1BPTEw7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtpb2NiLSZndDtpby5haW9fZmls ZGVzICZuYnNwOyAmbmJzcDsgPSBvZmZzZXQ7PGJyPis8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNw O2Jhc2UgW29mZnNldCsrXSA9IGlvY2I7PGJyPisgJm5ic3A7ICZuYnNwO308YnI+K308YnI+Kzxi cj4rZWNiX2NvbGQ8YnI+K3N0YXRpYyB2b2lkPGJyPitsaW51eGFpb19mcmVlX2lvY2JwIChFVl9Q KTxicj4rezxicj4rICZuYnNwO3doaWxlIChsaW51eGFpb19pb2NicG1heC0tKTxicj4rICZuYnNw OyAmbmJzcDtldl9mcmVlIChsaW51eGFpb19pb2NicHMgW2xpbnV4YWlvX2lvY2JwbWF4XSk7PGJy Pis8YnI+KyAmbmJzcDtsaW51eGFpb19pb2NicG1heCA9IDA7IC8qIG5leHQgcmVzaXplIHdpbGwg Y29tcGxldGVseSByZWFsbG9jYXRlIHRoZSBhcnJheSwgYXQgc29tZSBvdmVyaGVhZCAqLzxicj4r fTxicj4rPGJyPitzdGF0aWMgdm9pZDxicj4rbGludXhhaW9fbW9kaWZ5IChFVl9QXyBpbnQgZmQs IGludCBvZXYsIGludCBuZXYpPGJyPit7PGJyPisgJm5ic3A7YXJyYXlfbmVlZHNpemUgKEFOSU9D QlAsIGxpbnV4YWlvX2lvY2JwcywgbGludXhhaW9faW9jYnBtYXgsIGZkICsgMSwgbGludXhhaW9f YXJyYXlfbmVlZHNpemVfaW9jYnApOzxicj4rICZuYnNwO0FOSU9DQlAgaW9jYiA9IGxpbnV4YWlv X2lvY2JwcyBbZmRdOzxicj4rICZuYnNwO0FORkQgKmFuZmQgPSAmYW1wO2FuZmRzIFtmZF07PGJy Pis8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAoaW9jYi0mZ3Q7aW8uYWlvX3JlcXBy aW8gJmx0OyAwKSk8YnI+KyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7 Lyogd2UgaGFuZGVkIHRoaXMgZmQgb3ZlciB0byBlcG9sbCwgc28gdW5kbyB0aGlzIGZpcnN0ICov PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiB3ZSBkbyBpdCBtYW51YWxseSBiZWNhdXNlIHRo ZSBvcHRpbWlzYXRpb25zIG9uIGVwb2xsX21vZGlmeSB3b24ndCBkbyB1cyBhbnkgZ29vZCAqLzxi cj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXBvbGxfY3RsIChiYWNrZW5kX2ZkLCBFUE9MTF9DVExf REVMLCBmZCwgMCk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDthbmZkLSZndDtlbWFzayA9IDA7 PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtpb2NiLSZndDtpby5haW9fcmVxcHJpbyA9IDA7PGJy PisgJm5ic3A7ICZuYnNwO308YnI+KyAmbmJzcDtlbHNlIGlmIChlY2JfZXhwZWN0X2ZhbHNlIChp b2NiLSZndDtpby5haW9fYnVmKSk8YnI+KyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJz cDsgJm5ic3A7LyogaW9jYiBhY3RpdmUsIHNvIGNhbmNlbCBpdCBmaXJzdCBiZWZvcmUgcmVzdWJt aXQgKi88YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIHRoaXMgYXNzdW1lcyB3ZSBvbmx5IGV2 ZXIgZ2V0IG9uZSBjYWxsIHBlciBmZCBwZXIgbG9vcCBpdGVyYXRpb24gKi88YnI+KyAmbmJzcDsg Jm5ic3A7ICZuYnNwO2ZvciAoOzspPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxi cj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBvbiBhbGwgcmVsZXZhbnQg a2VybmVscywgaW9fY2FuY2VsIGZhaWxzIHdpdGggRUlOUFJPR1JFU1Mgb24gInN1Y2Nlc3MiICov PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0X2Zh bHNlIChldnN5c19pb19jYW5jZWwgKGxpbnV4YWlvX2N0eCwgJmFtcDtpb2NiLSZndDtpbywgKHN0 cnVjdCBpb19ldmVudCAqKTApID09IDApKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7YnJlYWs7PGJyPis8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7aWYgKGVjYl9leHBlY3RfdHJ1ZSAoZXJybm8gPT0gRUlOUFJPR1JFU1MpKTxicj4r ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YnJlYWs7PGJyPis8YnI+ KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogdGhlIEVJTlBST0dSRVNTIHRl c3QgaXMgZm9yIG5pY2VyIGVycm9yIG1lc3NhZ2UuIGNsdW1zeS4gKi88YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGVycm5vICE9IEVJTlRSKTxicj4rICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Fzc2VydCAoKCJsaWJldjogbGludXhhaW8g dW5leHBlY3RlZCBpb19jYW5jZWwgZmFpbGVkIiwgZXJybm8gIT0gRUlOVFIgJmFtcDsmYW1wOyBl cnJubyAhPSBFSU5QUk9HUkVTUykpOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO2JyZWFrOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7fTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7IH08YnI+Kzxicj4rICZu YnNwOyAmbmJzcDsgJm5ic3A7LyogaW5jcmVtZW50IGdlbmVyYXRpb24gY291bnRlciB0byBhdm9p ZCBoYW5kbGluZyBvbGQgZXZlbnRzICovPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsrK2FuZmQt Jmd0O2VnZW47PGJyPisgJm5ic3A7ICZuYnNwO308YnI+Kzxicj4rICZuYnNwO2lvY2ItJmd0O2lv LmFpb19idWYgPSAobmV2ICZhbXA7IEVWX1JFQUQgJm5ic3A7PyBQT0xMSU4gJm5ic3A7OiAwKTxi cj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7IHwgKG5ldiAmYW1wOyBFVl9XUklURSA/IFBPTExPVVQgOiAwKTs8YnI+Kzxicj4r ICZuYnNwO2lmIChuZXYpPGJyPisgJm5ic3A7ICZuYnNwO3s8YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwO2lvY2ItJmd0O2lvLmFpb19kYXRhID0gKHVpbnQzMl90KWZkIHwgKChfX3U2NCkodWludDMy X3QpYW5mZC0mZ3Q7ZWdlbiAmbHQ7Jmx0OyAzMik7PGJyPis8YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwOy8qIHF1ZXVlIGlvY2IgdXAgZm9yIGlvX3N1Ym1pdCAqLzxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7LyogdGhpcyBhc3N1bWVzIHdlIG9ubHkgZXZlciBnZXQgb25lIGNhbGwgcGVyIGZkIHBl ciBsb29wIGl0ZXJhdGlvbiAqLzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7KytsaW51eGFpb19z dWJtaXRjbnQ7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDthcnJheV9uZWVkc2l6ZSAoc3RydWN0 IGlvY2IgKiwgbGludXhhaW9fc3VibWl0cywgbGludXhhaW9fc3VibWl0bWF4LCBsaW51eGFpb19z dWJtaXRjbnQsIGFycmF5X25lZWRzaXplX25vaW5pdCk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJz cDtsaW51eGFpb19zdWJtaXRzIFtsaW51eGFpb19zdWJtaXRjbnQgLSAxXSA9ICZhbXA7aW9jYi0m Z3Q7aW87PGJyPisgJm5ic3A7ICZuYnNwO308YnI+K308YnI+Kzxicj4rc3RhdGljIHZvaWQ8YnI+ K2xpbnV4YWlvX2Vwb2xsX2NiIChFVl9QXyBzdHJ1Y3QgZXZfaW8gKncsIGludCByZXZlbnRzKTxi cj4rezxicj4rICZuYnNwO2Vwb2xsX3BvbGwgKEVWX0FfIDApOzxicj4rfTxicj4rPGJyPitpbmxp bmVfc3BlZWQ8YnI+K3ZvaWQ8YnI+K2xpbnV4YWlvX2ZkX3JlYXJtIChFVl9QXyBpbnQgZmQpPGJy Pit7PGJyPisgJm5ic3A7YW5mZHMgW2ZkXS5ldmVudHMgPSAwOzxicj4rICZuYnNwO2xpbnV4YWlv X2lvY2JwcyBbZmRdLSZndDtpby5haW9fYnVmID0gMDs8YnI+KyAmbmJzcDtmZF9jaGFuZ2UgKEVW X0FfIGZkLCBFVl9BTkZEX1JFSUZZKTs8YnI+K308YnI+Kzxicj4rc3RhdGljIHZvaWQ8YnI+K2xp bnV4YWlvX3BhcnNlX2V2ZW50cyAoRVZfUF8gc3RydWN0IGlvX2V2ZW50ICpldiwgaW50IG5yKTxi cj4rezxicj4rICZuYnNwO3doaWxlIChucik8YnI+KyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNw OyAmbmJzcDsgJm5ic3A7aW50IGZkICZuYnNwOyAmbmJzcDsgJm5ic3A7ID0gZXYtJmd0O2RhdGEg JmFtcDsgMHhmZmZmZmZmZjs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO3VpbnQzMl90IGdlbiA9 IGV2LSZndDtkYXRhICZndDsmZ3Q7IDMyOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7aW50IHJl cyAmbmJzcDsgJm5ic3A7ICZuYnNwOz0gZXYtJmd0O3Jlczs8YnI+Kzxicj4rICZuYnNwOyAmbmJz cDsgJm5ic3A7YXNzZXJ0ICgoImxpYmV2OiBpb2NiIGZkIG11c3QgYmUgaW4tYm91bmRzIiwgZmQg Jmd0Oz0gMCAmYW1wOyZhbXA7IGZkICZsdDsgYW5mZG1heCkpOzxicj4rPGJyPisgJm5ic3A7ICZu YnNwOyAmbmJzcDsvKiBvbmx5IGFjY2VwdCBldmVudHMgaWYgZ2VuZXJhdGlvbiBjb3VudGVyIG1h dGNoZXMgKi88YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0X3RydWUgKGdl biA9PSAodWludDMyX3QpYW5mZHMgW2ZkXS5lZ2VuKSk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDt7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIGZlZWQg ZXZlbnRzLCB3ZSBkbyBub3QgZXhwZWN0IG9yIGhhbmRsZSBQT0xMTlZBTCAqLzxicj4rICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtmZF9ldmVudCAoPGJyPisgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtFVl9BXzxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZmQsPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsocmVzICZhbXA7IChQT0xMT1VUIHwgUE9MTEVSUiB8IFBPTExIVVAp ID8gRVZfV1JJVEUgOiAwKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7fCAocmVzICZhbXA7IChQT0xMSU4gfCBQT0xMRVJSIHwgUE9MTEhVUCkgPyBFVl9SRUFE IDogMCk8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7KTs8YnI+Kzxicj4r ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBsaW51eCBhaW8gaXMgb25lc2hv dDogcmVhcm0gZmQuIFRPRE86IHRoaXMgZG9lcyBtb3JlIHdvcmsgdGhhbiBzdHJpY3RseSBuZWVk ZWQgKi88YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7bGludXhhaW9fZmRf cmVhcm0gKEVWX0FfIGZkKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPis8 YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOy0tbnI7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsr K2V2Ozxicj4rICZuYnNwOyAmbmJzcDt9PGJyPit9PGJyPis8YnI+Ky8qIGdldCBhbnkgZXZlbnRz IGZyb20gcmluZyBidWZmZXIsIHJldHVybiB0cnVlIGlmIGFueSB3ZXJlIGhhbmRsZWQgKi88YnI+ K3N0YXRpYyBpbnQ8YnI+K2xpbnV4YWlvX2dldF9ldmVudHNfZnJvbV9yaW5nIChFVl9QKTxicj4r ezxicj4rICZuYnNwO3N0cnVjdCBhaW9fcmluZyAqcmluZyA9IChzdHJ1Y3QgYWlvX3JpbmcgKils aW51eGFpb19jdHg7PGJyPisgJm5ic3A7dW5zaWduZWQgaGVhZCwgdGFpbDs8YnI+Kzxicj4rICZu YnNwOy8qIHRoZSBrZXJuZWwgcmVhZHMgYW5kIHdyaXRlcyBib3RoIG9mIHRoZXNlIHZhcmlhYmxl cywgKi88YnI+KyAmbmJzcDsvKiBhcyBhIEMgZXh0ZW5zaW9uLCB3ZSBhc3N1bWUgdGhhdCB2b2xh dGlsZSB1c2UgaGVyZSAqLzxicj4rICZuYnNwOy8qIGJvdGggbWFrZXMgcmVhZHMgYXRvbWljIGFu ZCBvbmNlLW9ubHkgKi88YnI+KyAmbmJzcDtoZWFkID0gKih2b2xhdGlsZSB1bnNpZ25lZCAqKSZh bXA7cmluZy0mZ3Q7aGVhZDs8YnI+KyAmbmJzcDtFQ0JfTUVNT1JZX0ZFTkNFX0FDUVVJUkU7PGJy PisgJm5ic3A7dGFpbCA9ICoodm9sYXRpbGUgdW5zaWduZWQgKikmYW1wO3JpbmctJmd0O3RhaWw7 PGJyPis8YnI+KyAmbmJzcDtpZiAoaGVhZCA9PSB0YWlsKTxicj4rICZuYnNwOyAmbmJzcDtyZXR1 cm4gMDs8YnI+Kzxicj4rICZuYnNwOy8qIHBhcnNlIGFsbCBhdmFpbGFibGUgZXZlbnRzLCBidXQg b25seSBvbmNlLCB0byBhdm9pZCBzdGFydmF0aW9uICovPGJyPisgJm5ic3A7aWYgKGVjYl9leHBl Y3RfdHJ1ZSAodGFpbCAmZ3Q7IGhlYWQpKSAvKiBub3JtYWwgY2FzZSBhcm91bmQgKi88YnI+KyAm bmJzcDsgJm5ic3A7bGludXhhaW9fcGFyc2VfZXZlbnRzIChFVl9BXyByaW5nLSZndDtpb19ldmVu dHMgKyBoZWFkLCB0YWlsIC0gaGVhZCk7PGJyPisgJm5ic3A7ZWxzZSAvKiB3cmFwcGVkIGFyb3Vu ZCAqLzxicj4rICZuYnNwOyAmbmJzcDt7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtsaW51eGFp b19wYXJzZV9ldmVudHMgKEVWX0FfIHJpbmctJmd0O2lvX2V2ZW50cyArIGhlYWQsIHJpbmctJmd0 O25yIC0gaGVhZCk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtsaW51eGFpb19wYXJzZV9ldmVu dHMgKEVWX0FfIHJpbmctJmd0O2lvX2V2ZW50cywgdGFpbCk7PGJyPisgJm5ic3A7ICZuYnNwO308 YnI+Kzxicj4rICZuYnNwO0VDQl9NRU1PUllfRkVOQ0VfUkVMRUFTRTs8YnI+KyAmbmJzcDsvKiBh cyBhbiBleHRlbnNpb24gdG8gQywgd2UgaG9wZSB0aGF0IHRoZSB2b2xhdGlsZSB3aWxsIG1ha2Ug dGhpcyBhdG9taWMgYW5kIG9uY2Utb25seSAqLzxicj4rICZuYnNwOyoodm9sYXRpbGUgdW5zaWdu ZWQgKikmYW1wO3JpbmctJmd0O2hlYWQgPSB0YWlsOzxicj4rPGJyPisgJm5ic3A7cmV0dXJuIDE7 PGJyPit9PGJyPis8YnI+K2lubGluZV9zaXplPGJyPitpbnQ8YnI+K2xpbnV4YWlvX3JpbmdidWZf dmFsaWQgKEVWX1ApPGJyPit7PGJyPisgJm5ic3A7c3RydWN0IGFpb19yaW5nICpyaW5nID0gKHN0 cnVjdCBhaW9fcmluZyAqKWxpbnV4YWlvX2N0eDs8YnI+Kzxicj4rICZuYnNwO3JldHVybiBlY2Jf ZXhwZWN0X3RydWUgKHJpbmctJmd0O21hZ2ljID09IEFJT19SSU5HX01BR0lDKTxicj4rICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsmYW1wOyZhbXA7IHJpbmctJmd0O2luY29tcGF0X2ZlYXR1cmVzID09IEVW X0FJT19SSU5HX0lOQ09NUEFUX0ZFQVRVUkVTPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZhbXA7 JmFtcDsgcmluZy0mZ3Q7aGVhZGVyX2xlbmd0aCA9PSBzaXplb2YgKHN0cnVjdCBhaW9fcmluZyk7 IC8qIFRPRE86IG9yIHVzZSBpdCB0byBmaW5kIGlvX2V2ZW50WzBdPyAqLzxicj4rfTxicj4rPGJy PisvKiByZWFkIGF0IGxlYXN0IG9uZSBldmVudCBmcm9tIGtlcm5lbCwgb3IgdGltZW91dCAqLzxi cj4raW5saW5lX3NpemU8YnI+K3ZvaWQ8YnI+K2xpbnV4YWlvX2dldF9ldmVudHMgKEVWX1BfIGV2 X3RzdGFtcCB0aW1lb3V0KTxicj4rezxicj4rICZuYnNwO3N0cnVjdCB0aW1lc3BlYyB0czs8YnI+ KyAmbmJzcDtzdHJ1Y3QgaW9fZXZlbnQgaW9ldls4XTsgLyogMjU2IG9jdGV0IHN0YWNrIHNwYWNl ICovPGJyPisgJm5ic3A7aW50IHdhbnQgPSAxOyAvKiBob3cgbWFueSBldmVudHMgdG8gcmVxdWVz dCAqLzxicj4rICZuYnNwO2ludCByaW5nYnVmX3ZhbGlkID0gbGludXhhaW9fcmluZ2J1Zl92YWxp ZCAoRVZfQSk7PGJyPis8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF90cnVlIChyaW5nYnVmX3Zh bGlkKSk8YnI+KyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogaWYg dGhlIHJpbmcgYnVmZmVyIGhhcyBhbnkgZXZlbnRzLCB3ZSBkb24ndCB3YWl0IG9yIGNhbGwgdGhl IGtlcm5lbCBhdCBhbGwgKi88YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChsaW51eGFpb19n ZXRfZXZlbnRzX2Zyb21fcmluZyAoRVZfQSkpPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7cmV0dXJuOzxicj4rPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBpZiB0aGUgcmluZyBi dWZmZXIgaXMgZW1wdHksIGFuZCB3ZSBkb24ndCBoYXZlIGEgdGltZW91dCwgdGhlbiBkb24ndCBj YWxsIHRoZSBrZXJuZWwgKi88YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmICghdGltZW91dCk8 YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm47PGJyPisgJm5ic3A7ICZuYnNw O308YnI+KyAmbmJzcDtlbHNlPGJyPisgJm5ic3A7ICZuYnNwOy8qIG5vIHJpbmdidWZmZXIsIHJl cXVlc3Qgc2xpZ2h0bHkgbGFyZ2VyIGJhdGNoICovPGJyPisgJm5ic3A7ICZuYnNwO3dhbnQgPSBz aXplb2YgKGlvZXYpIC8gc2l6ZW9mIChpb2V2IFswXSk7PGJyPis8YnI+KyAmbmJzcDsvKiBubyBl dmVudHMsIHNvIHdhaXQgZm9yIHNvbWU8YnI+KyAmbmJzcDsgKiBmb3IgZmFpcm5lc3MgcmVhc29u cywgd2UgZG8gdGhpcyBpbiBhIGxvb3AsIHRvIGZldGNoIGFsbCBldmVudHM8YnI+KyAmbmJzcDsg Ki88YnI+KyAmbmJzcDtmb3IgKDs7KTxicj4rICZuYnNwOyAmbmJzcDt7PGJyPisgJm5ic3A7ICZu YnNwOyAmbmJzcDtpbnQgcmVzOzxicj4rPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtFVl9SRUxF QVNFX0NCOzxicj4rPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtFVl9UU19TRVQgKHRzLCB0aW1l b3V0KTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO3JlcyA9IGV2c3lzX2lvX2dldGV2ZW50cyAo bGludXhhaW9fY3R4LCAxLCB3YW50LCBpb2V2LCAmYW1wO3RzKTs8YnI+Kzxicj4rICZuYnNwOyAm bmJzcDsgJm5ic3A7RVZfQUNRVUlSRV9DQjs8YnI+Kzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7 aWYgKHJlcyAmbHQ7IDApPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGVycm5v ID09IEVJTlRSKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBpZ25v cmVkLCByZXRyeSAqLzs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtlbHNlPGJyPisg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2V2X3N5c2VyciAoIihsaWJldikgbGlu dXhhaW8gaW9fZ2V0ZXZlbnRzIik7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDtlbHNlIGlmIChy ZXMpPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBhdCBsZWFzdCBvbmUgZXZlbnQgYXZhaWxhYmxlLCBoYW5k bGUgdGhlbSAqLzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtsaW51eGFp b19wYXJzZV9ldmVudHMgKEVWX0FfIGlvZXYsIHJlcyk7PGJyPis8YnI+KyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGVjYl9leHBlY3RfdHJ1ZSAocmluZ2J1Zl92YWxpZCkp PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogaWYgd2UgaGF2 ZSBhIHJpbmcgYnVmZmVyLCBoYW5kbGUgYW55IHJlbWFpbmluZyBldmVudHMgaW4gaXQgKi88YnI+ KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtsaW51eGFp b19nZXRfZXZlbnRzX2Zyb21fcmluZyAoRVZfQSk7PGJyPis8YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiBhdCB0aGlzIHBvaW50LCB3ZSBzaG91 bGQgaGF2ZSBoYW5kbGVkIGFsbCBvdXRzdGFuZGluZyBldmVudHMgKi88YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDticmVhazs8YnI+KyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ZWxzZSBpZiAocmVzICZsdDsgd2FudCk8YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIG90aGVyd2lzZSwgaWYgdGhlcmUgd2Vy ZSBmZXdlcmUgZXZlbnRzIHRoYW4gd2Ugd2FudGVkLCB3ZSBhc3N1bWUgdGhlcmUgYXJlIG5vIG1v cmUgKi88YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2JyZWFr Ozxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwO2Vsc2U8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDticmVhazsgLyogbm8gZXZl bnRzIGZyb20gdGhlIGtlcm5lbCwgd2UgYXJlIGRvbmUgKi88YnI+Kzxicj4rICZuYnNwOyAmbmJz cDsgJm5ic3A7dGltZW91dCA9IEVWX1RTX0NPTlNUICgwLik7IC8qIG9ubHkgd2FpdCBpbiB0aGUg Zmlyc3QgaXRlcmF0aW9uICovPGJyPisgJm5ic3A7ICZuYnNwO308YnI+K308YnI+Kzxicj4raW5s aW5lX3NpemU8YnI+K2ludDxicj4rbGludXhhaW9faW9fc2V0dXAgKEVWX1ApPGJyPit7PGJyPisg Jm5ic3A7bGludXhhaW9fY3R4ID0gMDs8YnI+KyAmbmJzcDtyZXR1cm4gZXZzeXNfaW9fc2V0dXAg KGxpbnV4YWlvX25yX2V2ZW50cyAoRVZfQSksICZhbXA7bGludXhhaW9fY3R4KTs8YnI+K308YnI+ Kzxicj4rc3RhdGljIHZvaWQ8YnI+K2xpbnV4YWlvX3BvbGwgKEVWX1BfIGV2X3RzdGFtcCB0aW1l b3V0KTxicj4rezxicj4rICZuYnNwO2ludCBzdWJtaXR0ZWQ7PGJyPis8YnI+KyAmbmJzcDsvKiBm aXJzdCBwaGFzZTogc3VibWl0IG5ldyBpb2NicyAqLzxicj4rPGJyPisgJm5ic3A7LyogaW9fc3Vi bWl0IG1pZ2h0IHJldHVybiBsZXNzIHRoYW4gdGhlIHJlcXVlc3RlZCBudW1iZXIgb2YgaW9jYnMg Ki88YnI+KyAmbmJzcDsvKiB0aGlzIGlzLCBhZmFpY3MsIG9ubHkgYmVjYXVzZSBvZiBlcnJvcnMs IGJ1dCB3ZSBnbyBieSB0aGUgYm9vayBhbmQgdXNlIGEgbG9vcCwgKi88YnI+KyAmbmJzcDsvKiB3 aGljaCBhbGxvd3MgdXMgdG8gcGlucG9pbnQgdGhlIGVycm9uZW91cyBpb2NiICovPGJyPisgJm5i c3A7Zm9yIChzdWJtaXR0ZWQgPSAwOyBzdWJtaXR0ZWQgJmx0OyBsaW51eGFpb19zdWJtaXRjbnQ7 ICk8YnI+KyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7aW50IHJlcyA9 IGV2c3lzX2lvX3N1Ym1pdCAobGludXhhaW9fY3R4LCBsaW51eGFpb19zdWJtaXRjbnQgLSBzdWJt aXR0ZWQsIGxpbnV4YWlvX3N1Ym1pdHMgKyBzdWJtaXR0ZWQpOzxicj4rPGJyPisgJm5ic3A7ICZu YnNwOyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAocmVzICZsdDsgMCkpPGJyPisgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGVycm5vID09IEVJTlZBTCk8YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7LyogVGhpcyBoYXBwZW5zIGZvciB1bnN1cHBvcnRlZCBmZHMsIG9mZmlj aWFsbHksIGJ1dCBpbiBteSB0ZXN0aW5nLDxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICogYWxzbyByYW5kb21seSBoYXBwZW5zIGZvciBzdXBwb3J0ZWQgZmRz LiBXZSBmYWxsIGJhY2sgdG8gZ29vZCBvbGQ8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAqIHBvbGwoKSBoZXJlLCB1bmRlciB0aGUgYXNzdW1wdGlvbiB0aGF0 IHRoaXMgaXMgYSB2ZXJ5IHJhcmUgY2FzZS48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAqIFNlZSBodHRwczovL2xvcmUua2VybmVsLm9yZy9wYXRjaHdvcmsv cGF0Y2gvMTA0NzQ1My8gdG8gc2VlPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgKiBkaXNjdXNzaW9uIGFib3V0IHN1Y2ggYSBjYXNlICh0dHlzKSB3aGVyZSBw b2xsaW5nIGZvciBQT0xMSU48YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAqIGZhaWxzIGJ1dCBQT0xMSU58UE9MTE9VVCB3b3Jrcy48YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAqLzxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7c3RydWN0IGlvY2IgKmlvY2IgPSBsaW51eGFpb19zdWJt aXRzIFtzdWJtaXR0ZWRdOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ZXBvbGxfbW9kaWZ5IChFVl9BXyBpb2NiLSZndDthaW9fZmlsZGVzLCAwLCBhbmZkcyBb aW9jYi0mZ3Q7YWlvX2ZpbGRlc10uZXZlbnRzKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO2lvY2ItJmd0O2Fpb19yZXFwcmlvID0gLTE7IC8qIG1hcmsgaW9j YiBhcyBlcG9sbCAqLzxicj4rPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtyZXMgPSAxOyAvKiBza2lwIHRoaXMgaW9jYiAtIGFub3RoZXIgaW9jYiwgYW5vdGhl ciBjaGFuY2UgKi88YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4r ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Vsc2UgaWYgKGVycm5vID09IEVBR0FJTik8YnI+ KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogVGhpcyBoYXBwZW5zIHdoZW4gdGhlIHJpbmcg YnVmZmVyIGlzIGZ1bGwsIG9yIHNvbWUgb3RoZXIgc2hpdCB3ZTxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICogZG9uJ3Qga25vdyBhbmQgaXNuJ3QgZG9jdW1l bnRlZC4gTW9zdCBsaWtlbHkgYmVjYXVzZSB3ZSBoYXZlIHRvbzxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICogbWFueSByZXF1ZXN0cyBhbmQgbGludXggYWlv IGNhbid0IGJlIGFzc2VkIHRvIGhhbmRsZSB0aGVtLjxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICogSW4gdGhpcyBjYXNlLCB3ZSB0cnkgdG8gYWxsb2NhdGUg YSBsYXJnZXIgcmluZyBidWZmZXIsIGZyZWVpbmc8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAqIG91cnMgZmlyc3QuIFRoaXMgbWlnaHQgZmFpbCwgaW4gd2hp Y2ggY2FzZSB3ZSBoYXZlIHRvIGZhbGwgYmFjayB0byAxMDAlPGJyPisgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgKiBlcG9sbC48YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAqIEdvZCwgaG93IEkgaGF0ZSBsaW51eCBub3QgZ2V0 dGluZyBpdHMgYWN0IHRvZ2V0aGVyLiBFdmVyLjxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICovPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDtldnN5c19pb19kZXN0cm95IChsaW51eGFpb19jdHgpOzxicj4rICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7bGludXhhaW9fc3VibWl0Y250ID0gMDs8 YnI+Kzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7LyogcmVh cm0gYWxsIGZkcyB3aXRoIGFjdGl2ZSBpb2NicyAqLzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO2ludCBmZDs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7Zm9yIChmZCA9IDA7IGZkICZsdDsgbGludXhhaW9faW9jYnBtYXg7ICsrZmQpPGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw O2lmIChsaW51eGFpb19pb2NicHMgW2ZkXS0mZ3Q7aW8uYWlvX2J1Zik8YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2xpbnV4 YWlvX2ZkX3JlYXJtIChFVl9BXyBmZCk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDt9PGJyPis8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOysrbGludXhhaW9faXRlcmF0aW9uOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7aWYgKGxpbnV4YWlvX2lvX3NldHVwIChFVl9BKSAmbHQ7IDAp PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxi cj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsvKiBUT0RPOiByZWFybSBhbGwgYW5kIHJlY3JlYXRlIGVwb2xsIGJhY2tlbmQgZnJvbSBzY3Jh dGNoICovPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOy8qIFRPRE86IG1pZ2h0IGJlIG1vcmUgcHJ1ZGVudD8gKi88YnI+Kzxicj4rICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsvKiB0 byBiYWQsIHdlIGNhbid0IGdldCBhIG5ldyBhaW8gY29udGV4dCwgZ28gMTAwJSBlcG9sbCAqLzxi cj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtsaW51eGFpb19mcmVlX2lvY2JwIChFVl9BKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfaW9fc3RvcCAoRVZfQV8gJmFtcDts aW51eGFpb19lcG9sbF93KTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXZfcmVmIChFVl9BKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7bGludXhhaW9fY3R4ID0gMDs8 YnI+Kzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtiYWNrZW5kICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOz0gRVZCQUNLRU5EX0VQ T0xMOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtiYWNrZW5kX21vZGlmeSA9IGVwb2xsX21vZGlmeTs8YnI+KyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YmFja2VuZF9wb2xsICZu YnNwOyA9IGVwb2xsX3BvbGw7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7fTxicj4rPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDt0aW1lb3V0ID0gRVZfVFNfQ09OU1QgKDAuKTs8YnI+KyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOy8qIGl0J3MgZWFzaWVzdCB0byBoYW5kbGUgdGhp cyBtZXNzIGluIGFub3RoZXIgaXRlcmF0aW9uICovPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm47PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO308YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtlbHNlIGlmIChlcnJu byA9PSBFQkFERik8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4r ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YXNzZXJ0ICgoImxpYmV2 OiBldmVudCBsb29wIHJlamVjdGVkIGJhZCBmZCIsIGVycm5vICE9IEVCQURGKSk7PGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtmZF9raWxsIChFVl9BXyBsaW51 eGFpb19zdWJtaXRzIFtzdWJtaXR0ZWRdLSZndDthaW9fZmlsZGVzKTs8YnI+Kzxicj4rICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzID0gMTsgLyogc2tpcCB0aGlz IGlvY2IgKi88YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4rICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Vsc2UgaWYgKGVycm5vID09IEVJTlRSKSAvKiBub3Qg c2VlbiBpbiByZWFsaXR5LCBub3QgZG9jdW1lbnRlZCAqLzxicj4rICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDtyZXMgPSAwOyAvKiBzaWxlbnRseSBpZ25vcmUgYW5kIHJldHJ5ICov PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZWxzZTxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDtldl9zeXNlcnIgKCIobGliZXYpIGxpbnV4YWlvIGlvX3N1Ym1pdCIpOzxicj4r ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmVzID0gMDs8YnI+KyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7fTxicj4rPGJyPisgJm5ic3A7ICZuYnNw OyAmbmJzcDtzdWJtaXR0ZWQgKz0gcmVzOzxicj4rICZuYnNwOyAmbmJzcDt9PGJyPis8YnI+KyAm bmJzcDtsaW51eGFpb19zdWJtaXRjbnQgPSAwOzxicj4rPGJyPisgJm5ic3A7Lyogc2Vjb25kIHBo YXNlOiBmZXRjaCBhbmQgcGFyc2UgZXZlbnRzICovPGJyPis8YnI+KyAmbmJzcDtsaW51eGFpb19n ZXRfZXZlbnRzIChFVl9BXyB0aW1lb3V0KTs8YnI+K308YnI+Kzxicj4raW5saW5lX3NpemU8YnI+ K2ludDxicj4rbGludXhhaW9faW5pdCAoRVZfUF8gaW50IGZsYWdzKTxicj4rezxicj4rICZuYnNw Oy8qIHdvdWxkIGJlIGdyZWF0IHRvIGhhdmUgYSBuaWNlIHRlc3QgZm9yIElPQ0JfQ01EX1BPTEwg aW5zdGVhZCAqLzxicj4rICZuYnNwOy8qIGFsc286IHRlc3Qgc29tZSBzZW1pLWNvbW1vbiBmZCB0 eXBlcywgc3VjaCBhcyBmaWxlcyBhbmQgdHR5cyBpbiByZWNvbW1lbmRlZF9iYWNrZW5kcyAqLzxi cj4rICZuYnNwOy8qIDQuMTggaW50cm9kdWNlZCBJT0NCX0NNRF9QT0xMLCA0LjE5IG1hZGUgZXBv bGwgd29yaywgYW5kIHdlIG5lZWQgdGhhdCAqLzxicj4rICZuYnNwO2lmIChldl9saW51eF92ZXJz aW9uICgpICZsdDsgMHgwNDEzMDApPGJyPisgJm5ic3A7ICZuYnNwO3JldHVybiAwOzxicj4rPGJy PisgJm5ic3A7aWYgKCFlcG9sbF9pbml0IChFVl9BXyAwKSk8YnI+KyAmbmJzcDsgJm5ic3A7cmV0 dXJuIDA7PGJyPis8YnI+KyAmbmJzcDtsaW51eGFpb19pdGVyYXRpb24gPSAwOzxicj4rPGJyPisg Jm5ic3A7aWYgKGxpbnV4YWlvX2lvX3NldHVwIChFVl9BKSAmbHQ7IDApPGJyPisgJm5ic3A7ICZu YnNwO3s8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Vwb2xsX2Rlc3Ryb3kgKEVWX0EpOzxicj4r ICZuYnNwOyAmbmJzcDsgJm5ic3A7cmV0dXJuIDA7PGJyPisgJm5ic3A7ICZuYnNwO308YnI+Kzxi cj4rICZuYnNwO2V2X2lvX2luaXQgJm5ic3A7KCZhbXA7bGludXhhaW9fZXBvbGxfdywgbGludXhh aW9fZXBvbGxfY2IsIGJhY2tlbmRfZmQsIEVWX1JFQUQpOzxicj4rICZuYnNwO2V2X3NldF9wcmlv cml0eSAoJmFtcDtsaW51eGFpb19lcG9sbF93LCBFVl9NQVhQUkkpOzxicj4rICZuYnNwO2V2X2lv X3N0YXJ0IChFVl9BXyAmYW1wO2xpbnV4YWlvX2Vwb2xsX3cpOzxicj4rICZuYnNwO2V2X3VucmVm IChFVl9BKTsgLyogd2F0Y2hlciBzaG91bGQgbm90IGtlZXAgbG9vcCBhbGl2ZSAqLzxicj4rPGJy PisgJm5ic3A7YmFja2VuZF9tb2RpZnkgPSBsaW51eGFpb19tb2RpZnk7PGJyPisgJm5ic3A7YmFj a2VuZF9wb2xsICZuYnNwOyA9IGxpbnV4YWlvX3BvbGw7PGJyPis8YnI+KyAmbmJzcDtsaW51eGFp b19pb2NicG1heCA9IDA7PGJyPisgJm5ic3A7bGludXhhaW9faW9jYnBzID0gMDs8YnI+Kzxicj4r ICZuYnNwO2xpbnV4YWlvX3N1Ym1pdHMgPSAwOzxicj4rICZuYnNwO2xpbnV4YWlvX3N1Ym1pdG1h eCA9IDA7PGJyPisgJm5ic3A7bGludXhhaW9fc3VibWl0Y250ID0gMDs8YnI+Kzxicj4rICZuYnNw O3JldHVybiBFVkJBQ0tFTkRfTElOVVhBSU87PGJyPit9PGJyPis8YnI+K2lubGluZV9zaXplPGJy Pit2b2lkPGJyPitsaW51eGFpb19kZXN0cm95IChFVl9QKTxicj4rezxicj4rICZuYnNwO2Vwb2xs X2Rlc3Ryb3kgKEVWX0EpOzxicj4rICZuYnNwO2xpbnV4YWlvX2ZyZWVfaW9jYnAgKEVWX0EpOzxi cj4rICZuYnNwO2V2c3lzX2lvX2Rlc3Ryb3kgKGxpbnV4YWlvX2N0eCk7IC8qIGZhaWxzIGluIGNo aWxkLCBhaW8gY29udGV4dCBpcyBkZXN0cm95ZWQgKi88YnI+K308YnI+Kzxicj4rZWNiX2NvbGQ8 YnI+K3N0YXRpYyB2b2lkPGJyPitsaW51eGFpb19mb3JrIChFVl9QKTxicj4rezxicj4rICZuYnNw O2xpbnV4YWlvX3N1Ym1pdGNudCA9IDA7IC8qIGFsbCBwb2ludGVycyB3ZXJlIGludmFsaWRhdGVk ICovPGJyPisgJm5ic3A7bGludXhhaW9fZnJlZV9pb2NicCAoRVZfQSk7IC8qIHRoaXMgZnJlZXMg YWxsIGlvY2JzLCB3aGljaCBpcyB2ZXJ5IGhlYXZ5LWhhbmRlZCAqLzxicj4rICZuYnNwO2V2c3lz X2lvX2Rlc3Ryb3kgKGxpbnV4YWlvX2N0eCk7IC8qIGZhaWxzIGluIGNoaWxkLCBhaW8gY29udGV4 dCBpcyBkZXN0cm95ZWQgKi88YnI+Kzxicj4rICZuYnNwO2xpbnV4YWlvX2l0ZXJhdGlvbiA9IDA7 IC8qIHdlIHN0YXJ0IG92ZXIgaW4gdGhlIGNoaWxkICovPGJyPis8YnI+KyAmbmJzcDt3aGlsZSAo bGludXhhaW9faW9fc2V0dXAgKEVWX0EpICZsdDsgMCk8YnI+KyAmbmJzcDsgJm5ic3A7ZXZfc3lz ZXJyICgiKGxpYmV2KSBsaW51eGFpbyBpb19zZXR1cCIpOzxicj4rPGJyPisgJm5ic3A7LyogZm9y a2luZyBlcG9sbCBzaG91bGQgYWxzbyBlZmZlY3RpdmVseSB1bnJlZ2lzdGVyIGFsbCBmZHMgZnJv bSB0aGUgYmFja2VuZCAqLzxicj4rICZuYnNwO2Vwb2xsX2ZvcmsgKEVWX0EpOzxicj4rICZuYnNw Oy8qIGVwb2xsX2ZvcmsgYWxyZWFkeSBkaWQgdGhpcy4gaG9wZWZ1bGx5ICovPGJyPisgJm5ic3A7 LypmZF9yZWFybV9hbGwgKEVWX0EpOyovPGJyPis8YnI+KyAmbmJzcDtldl9pb19zdG9wICZuYnNw OyhFVl9BXyAmYW1wO2xpbnV4YWlvX2Vwb2xsX3cpOzxicj4rICZuYnNwO2V2X2lvX3NldCAmbmJz cDsgKEVWX0FfICZhbXA7bGludXhhaW9fZXBvbGxfdywgYmFja2VuZF9mZCwgRVZfUkVBRCk7PGJy PisgJm5ic3A7ZXZfaW9fc3RhcnQgKEVWX0FfICZhbXA7bGludXhhaW9fZXBvbGxfdyk7PGJyPit9 PGJyPis8YnI+ZGlmZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2X3BvbGwuYyBiL3RoaXJk X3BhcnR5L2xpYmV2L2V2X3BvbGwuYzxicj5pbmRleCBiZDc0MmIwN2YuLmU1NTA4ZGRiMCAxMDA2 NDQ8YnI+LS0tIGEvdGhpcmRfcGFydHkvbGliZXYvZXZfcG9sbC5jPGJyPisrKyBiL3RoaXJkX3Bh cnR5L2xpYmV2L2V2X3BvbGwuYzxicj5AQCAtMSw3ICsxLDcgQEA8YnI+Jm5ic3A7Lyo8YnI+Jm5i c3A7ICogbGliZXYgcG9sbCBmZCBhY3Rpdml0eSBiYWNrZW5kPGJyPiZuYnNwOyAqPGJyPi0gKiBD b3B5cmlnaHQgKGMpIDIwMDcsMjAwOCwyMDA5LDIwMTAsMjAxMSBNYXJjIEFsZXhhbmRlciBMZWht YW5uICZsdDtsaWJldkBzY2htb3JwLmRlJmd0Ozxicj4rICogQ29weXJpZ2h0IChjKSAyMDA3LDIw MDgsMjAwOSwyMDEwLDIwMTEsMjAxNiwyMDE5IE1hcmMgQWxleGFuZGVyIExlaG1hbm4gJmx0O2xp YmV2QHNjaG1vcnAuZGUmZ3Q7PGJyPiZuYnNwOyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPGJyPiZu YnNwOyAqPGJyPiZuYnNwOyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYS08YnI+QEAgLTQxLDEwICs0MSwx MiBAQDxicj4mbmJzcDs8YnI+Jm5ic3A7aW5saW5lX3NpemU8YnI+Jm5ic3A7dm9pZDxicj4tcG9s bGlkeF9pbml0IChpbnQgKmJhc2UsIGludCBjb3VudCk8YnI+K2FycmF5X25lZWRzaXplX3BvbGxp ZHggKGludCAqYmFzZSwgaW50IG9mZnNldCwgaW50IGNvdW50KTxicj4mbmJzcDt7PGJyPi0gJm5i c3A7LyogY29uc2lkZXIgdXNpbmcgbWVtc2V0ICguLiwgLTEsIC4uLiksIHdoaWNoIGlzIHByYWN0 aWNhbGx5IGd1YXJhbnRlZWQ8YnI+LSAmbmJzcDsgKiB0byB3b3JrIG9uIGFsbCBzeXN0ZW1zIGlt cGxlbWVudGluZyBwb2xsICovPGJyPisgJm5ic3A7LyogdXNpbmcgbWVtc2V0ICguLiwgLTEsIC4u LikgaXMgdGVtcHRpbmcsIHdlIHdlIHRyeTxicj4rICZuYnNwOyAqIHRvIGJlIHVsdHJhcG9ydGFi bGU8YnI+KyAmbmJzcDsgKi88YnI+KyAmbmJzcDtiYXNlICs9IG9mZnNldDs8YnI+Jm5ic3A7ICZu YnNwO3doaWxlIChjb3VudC0tKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOypiYXNlKysgPSAtMTs8 YnI+Jm5ic3A7fTxicj5AQCAtNTcsMTQgKzU5LDE0IEBAIHBvbGxfbW9kaWZ5IChFVl9QXyBpbnQg ZmQsIGludCBvZXYsIGludCBuZXYpPGJyPiZuYnNwOyAmbmJzcDtpZiAob2V2ID09IG5ldik8YnI+ Jm5ic3A7ICZuYnNwOyAmbmJzcDtyZXR1cm47PGJyPiZuYnNwOzxicj4tICZuYnNwO2FycmF5X25l ZWRzaXplIChpbnQsIHBvbGxpZHhzLCBwb2xsaWR4bWF4LCBmZCArIDEsIHBvbGxpZHhfaW5pdCk7 PGJyPisgJm5ic3A7YXJyYXlfbmVlZHNpemUgKGludCwgcG9sbGlkeHMsIHBvbGxpZHhtYXgsIGZk ICsgMSwgYXJyYXlfbmVlZHNpemVfcG9sbGlkeCk7PGJyPiZuYnNwOzxicj4mbmJzcDsgJm5ic3A7 aWR4ID0gcG9sbGlkeHMgW2ZkXTs8YnI+Jm5ic3A7PGJyPiZuYnNwOyAmbmJzcDtpZiAoaWR4ICZs dDsgMCkgLyogbmVlZCB0byBhbGxvY2F0ZSBhIG5ldyBwb2xsZmQgKi88YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3BvbGxpZHhzIFtmZF0gPSBp ZHggPSBwb2xsY250Kys7PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDthcnJheV9uZWVkc2l6ZSAo c3RydWN0IHBvbGxmZCwgcG9sbHMsIHBvbGxtYXgsIHBvbGxjbnQsIEVNUFRZMik7PGJyPisgJm5i c3A7ICZuYnNwOyAmbmJzcDthcnJheV9uZWVkc2l6ZSAoc3RydWN0IHBvbGxmZCwgcG9sbHMsIHBv bGxtYXgsIHBvbGxjbnQsIGFycmF5X25lZWRzaXplX25vaW5pdCk7PGJyPiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwO3BvbGxzIFtpZHhdLmZkID0gZmQ7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7 fTxicj4mbmJzcDs8YnI+QEAgLTc4LDcgKzgwLDcgQEAgcG9sbF9tb2RpZnkgKEVWX1BfIGludCBm ZCwgaW50IG9ldiwgaW50IG5ldik8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO3BvbGxpZHhzIFtmZF0gPSAtMTs8YnI+Jm5ic3A7PGJyPi0gJm5i c3A7ICZuYnNwOyAmbmJzcDtpZiAoZXhwZWN0X3RydWUgKGlkeCAmbHQ7IC0tcG9sbGNudCkpPGJy PisgJm5ic3A7ICZuYnNwOyAmbmJzcDtpZiAoZWNiX2V4cGVjdF90cnVlIChpZHggJmx0OyAtLXBv bGxjbnQpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3BvbGxzIFtpZHhdID0gcG9sbHMgW3Bv bGxjbnRdOzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3BvbGxp ZHhzIFtwb2xscyBbaWR4XS5mZF0gPSBpZHg7PGJyPkBAIC05MywxMCArOTUsMTAgQEAgcG9sbF9w b2xsIChFVl9QXyBldl90c3RhbXAgdGltZW91dCk8YnI+Jm5ic3A7ICZuYnNwO2ludCByZXM7PGJy PiZuYnNwOyAmbmJzcDs8YnI+Jm5ic3A7ICZuYnNwO0VWX1JFTEVBU0VfQ0I7PGJyPi0gJm5ic3A7 cmVzID0gcG9sbCAocG9sbHMsIHBvbGxjbnQsIHRpbWVvdXQgKiAxZTMpOzxicj4rICZuYnNwO3Jl cyA9IHBvbGwgKHBvbGxzLCBwb2xsY250LCBFVl9UU19UT19NU0VDICh0aW1lb3V0KSk7PGJyPiZu YnNwOyAmbmJzcDtFVl9BQ1FVSVJFX0NCOzxicj4mbmJzcDs8YnI+LSAmbmJzcDtpZiAoZXhwZWN0 X2ZhbHNlIChyZXMgJmx0OyAwKSk8YnI+KyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAocmVz ICZsdDsgMCkpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtpZiAoZXJybm8gPT0gRUJBREYpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDtmZF9lYmFkZiAoRVZfQSk7PGJyPkBAIC0xMDgsMTQgKzExMCwxNyBAQCBwb2xsX3Bv bGwgKEVWX1BfIGV2X3RzdGFtcCB0aW1lb3V0KTxicj4mbmJzcDsgJm5ic3A7ZWxzZTxicj4mbmJz cDsgJm5ic3A7ICZuYnNwO2ZvciAocCA9IHBvbGxzOyByZXM7ICsrcCk8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ezxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Fzc2VydCAo KCJsaWJldjogcG9sbCgpIHJldHVybmVkIGlsbGVnYWwgcmVzdWx0LCBicm9rZW4gQlNEIGtlcm5l bD8iLCBwICZsdDsgcG9sbHMgKyBwb2xsY250KSk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7YXNzZXJ0ICgoImxpYmV2OiBwb2xsIHJldHVybmVkIGlsbGVnYWwgcmVzdWx0LCBicm9r ZW4gQlNEIGtlcm5lbD8iLCBwICZsdDsgcG9sbHMgKyBwb2xsY250KSk7PGJyPiZuYnNwOzxicj4t ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChleHBlY3RfZmFsc2UgKHAtJmd0O3JldmVu dHMpKSAvKiB0aGlzIGV4cGVjdCBpcyBkZWJhdGFibGUgKi88YnI+KyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDtpZiAoZWNiX2V4cGVjdF9mYWxzZSAocC0mZ3Q7cmV2ZW50cykpIC8qIHRoaXMg ZXhwZWN0IGlzIGRlYmF0YWJsZSAqLzxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwO3s8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7LS1yZXM7PGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAocC0mZ3Q7cmV2ZW50cyAmYW1wOyBQT0xMTlZB TCkpPGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ZmRfa2lsbCAoRVZfQV8gcC0mZ3Q7ZmQpOzxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2UgKHAtJmd0O3JldmVudHMgJmFtcDsg UE9MTE5WQUwpKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO3s8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7YXNzZXJ0ICgoImxpYmV2OiBwb2xsIGZvdW5kIGludmFsaWQgZmQgaW4gcG9s bCBzZXQiLCAwKSk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwO2ZkX2tpbGwgKEVWX0FfIHAtJmd0O2ZkKTs8YnI+KyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2Vsc2U8YnI+Jm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2ZkX2V2ZW50ICg8YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDtFVl9BXzxicj5AQCAtMTMxLDcgKzEzNiw3IEBAIGlubGluZV9zaXplPGJyPiZuYnNwO2ludDxi cj4mbmJzcDtwb2xsX2luaXQgKEVWX1BfIGludCBmbGFncyk8YnI+Jm5ic3A7ezxicj4tICZuYnNw O2JhY2tlbmRfbWludGltZSA9IDFlLTM7PGJyPisgJm5ic3A7YmFja2VuZF9taW50aW1lID0gRVZf VFNfQ09OU1QgKDFlLTMpOzxicj4mbmJzcDsgJm5ic3A7YmFja2VuZF9tb2RpZnkgJm5ic3A7PSBw b2xsX21vZGlmeTs8YnI+Jm5ic3A7ICZuYnNwO2JhY2tlbmRfcG9sbCAmbmJzcDsgJm5ic3A7PSBw b2xsX3BvbGw7PGJyPiZuYnNwOzxicj5kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvbGliZXYvZXZf cG9ydC5jIGIvdGhpcmRfcGFydHkvbGliZXYvZXZfcG9ydC5jPGJyPmluZGV4IGM3YjBiNzBjMS4u ZjRjZDlkOTljIDEwMDY0NDxicj4tLS0gYS90aGlyZF9wYXJ0eS9saWJldi9ldl9wb3J0LmM8YnI+ KysrIGIvdGhpcmRfcGFydHkvbGliZXYvZXZfcG9ydC5jPGJyPkBAIC0xLDcgKzEsNyBAQDxicj4m bmJzcDsvKjxicj4mbmJzcDsgKiBsaWJldiBzb2xhcmlzIGV2ZW50IHBvcnQgYmFja2VuZDxicj4m bmJzcDsgKjxicj4tICogQ29weXJpZ2h0IChjKSAyMDA3LDIwMDgsMjAwOSwyMDEwLDIwMTEgTWFy YyBBbGV4YW5kZXIgTGVobWFubiAmbHQ7bGliZXZAc2NobW9ycC5kZSZndDs8YnI+KyAqIENvcHly aWdodCAoYykgMjAwNywyMDA4LDIwMDksMjAxMCwyMDExLDIwMTkgTWFyYyBBbGV4YW5kZXIgTGVo bWFubiAmbHQ7bGliZXZAc2NobW9ycC5kZSZndDs8YnI+Jm5ic3A7ICogQWxsIHJpZ2h0cyByZXNl cnZlZC48YnI+Jm5ic3A7ICo8YnI+Jm5ic3A7ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhLTxicj5AQCAt NjksNyArNjksMTAgQEAgcG9ydF9hc3NvY2lhdGVfYW5kX2NoZWNrIChFVl9QXyBpbnQgZmQsIGlu dCBldik8YnI+Jm5ic3A7ICZuYnNwOyk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChlcnJubyA9PSBFQkFERkQpPGJyPi0gJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ZmRfa2lsbCAoRVZfQV8gZmQpOzxicj4rICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwO3s8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7YXNz ZXJ0ICgoImxpYmV2OiBwb3J0X2Fzc29jaWF0ZSBmb3VuZCBpbnZhbGlkIGZkIiwgZXJybm8gIT0g RUJBREZEKSk7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2ZkX2tpbGwg KEVWX0FfIGZkKTs8YnI+KyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO2Vsc2U8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwO2V2X3N5c2VyciAoIihsaWJldikgcG9ydF9hc3NvY2lhdGUiKTs8YnI+Jm5ic3A7ICZuYnNw OyAmbmJzcDt9PGJyPkBAIC0xMjksNyArMTMyLDcgQEAgcG9ydF9wb2xsIChFVl9QXyBldl90c3Rh bXAgdGltZW91dCk8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5i c3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOzxicj4tICZuYnNwO2lmIChleHBlY3RfZmFsc2Ug KG5nZXQgPT0gcG9ydF9ldmVudG1heCkpPGJyPisgJm5ic3A7aWYgKGVjYl9leHBlY3RfZmFsc2Ug KG5nZXQgPT0gcG9ydF9ldmVudG1heCkpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDtldl9mcmVlIChwb3J0X2V2ZW50cyk7PGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO3BvcnRfZXZlbnRtYXggPSBhcnJheV9uZXh0c2l6ZSAoc2l6ZW9m IChwb3J0X2V2ZW50X3QpLCBwb3J0X2V2ZW50bWF4LCBwb3J0X2V2ZW50bWF4ICsgMSk7PGJyPkBA IC0xNTEsMTEgKzE1NCwxMSBAQCBwb3J0X2luaXQgKEVWX1BfIGludCBmbGFncyk8YnI+Jm5ic3A7 PGJyPiZuYnNwOyAmbmJzcDsvKiBpZiBteSByZWFkaW5nIG9mIHRoZSBvcGVuc29sYXJpcyBrZXJu ZWwgc291cmNlcyBhcmUgY29ycmVjdCwgdGhlbjxicj4mbmJzcDsgJm5ic3A7ICogb3BlbnNvbGFy aXMgZG9lcyBzb21ldGhpbmcgdmVyeSBzdHVwaWQ6IGl0IGNoZWNrcyBpZiB0aGUgdGltZSBoYXMg YWxyZWFkeTxicj4tICZuYnNwOyAqIGVsYXBzZWQgYW5kIGRvZXNuJ3Qgcm91bmQgdXAgaWYgdGhh dCBpcyB0aGUgY2FzZSxtIG90aGVyd2lzZSBpdCBET0VTIHJvdW5kPGJyPisgJm5ic3A7ICogZWxh cHNlZCBhbmQgZG9lc24ndCByb3VuZCB1cCBpZiB0aGF0IGlzIHRoZSBjYXNlLCBvdGhlcndpc2Ug aXQgRE9FUyByb3VuZDxicj4mbmJzcDsgJm5ic3A7ICogdXAuIFNpbmNlIHdlIGNhbid0IGtub3cg d2hhdCB0aGUgY2FzZSBpcywgd2UgbmVlZCB0byBndWVzcyBieSB1c2luZyBhPGJyPiZuYnNwOyAm bmJzcDsgKiAibGFyZ2UgZW5vdWdoIiB0aW1lb3V0LiBOb3JtYWxseSwgMWUtOSB3b3VsZCBiZSBj b3JyZWN0Ljxicj4mbmJzcDsgJm5ic3A7ICovPGJyPi0gJm5ic3A7YmFja2VuZF9taW50aW1lID0g MWUtMzsgLyogbmVlZGVkIHRvIGNvbXBlbnNhdGUgZm9yIHBvcnRfZ2V0biByZXR1cm5pbmcgZWFy bHkgKi88YnI+KyAmbmJzcDtiYWNrZW5kX21pbnRpbWUgPSBFVl9UU19DT05TVCAoMWUtMyk7IC8q IG5lZWRlZCB0byBjb21wZW5zYXRlIGZvciBwb3J0X2dldG4gcmV0dXJuaW5nIGVhcmx5ICovPGJy PiZuYnNwOyAmbmJzcDtiYWNrZW5kX21vZGlmeSAmbmJzcDs9IHBvcnRfbW9kaWZ5Ozxicj4mbmJz cDsgJm5ic3A7YmFja2VuZF9wb2xsICZuYnNwOyAmbmJzcDs9IHBvcnRfcG9sbDs8YnI+Jm5ic3A7 PGJyPmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJldi9ldl9zZWxlY3QuYyBiL3RoaXJkX3Bh cnR5L2xpYmV2L2V2X3NlbGVjdC5jPGJyPmluZGV4IGVkMWZjN2FkOS4uYjg2MmM4MTEzIDEwMDY0 NDxicj4tLS0gYS90aGlyZF9wYXJ0eS9saWJldi9ldl9zZWxlY3QuYzxicj4rKysgYi90aGlyZF9w YXJ0eS9saWJldi9ldl9zZWxlY3QuYzxicj5AQCAtMTA4LDcgKzEwOCw3IEBAIHNlbGVjdF9tb2Rp ZnkgKEVWX1BfIGludCBmZCwgaW50IG9ldiwgaW50IG5ldik8YnI+Jm5ic3A7ICZuYnNwOyAmbmJz cDtpbnQgJm5ic3A7ICZuYnNwOyB3b3JkID0gZmQgLyBORkRCSVRTOzxicj4mbmJzcDsgJm5ic3A7 ICZuYnNwO2ZkX21hc2sgbWFzayA9IDFVTCAmbHQ7Jmx0OyAoZmQgJSBORkRCSVRTKTs8YnI+Jm5i c3A7PGJyPi0gJm5ic3A7ICZuYnNwO2lmIChleHBlY3RfZmFsc2UgKHZlY19tYXggJmx0Oz0gd29y ZCkpPGJyPisgJm5ic3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0X2ZhbHNlICh2ZWNfbWF4ICZsdDs9 IHdvcmQpKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPiZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDtpbnQgbmV3X21heCA9IHdvcmQgKyAxOzxicj4mbmJzcDs8YnI+ QEAgLTE3MSw3ICsxNzEsNyBAQCBzZWxlY3RfcG9sbCAoRVZfUF8gZXZfdHN0YW1wIHRpbWVvdXQp PGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDsgJm5ic3A7RVZfQUNRVUlSRV9DQjs8YnI+Jm5ic3A7 PGJyPi0gJm5ic3A7aWYgKGV4cGVjdF9mYWxzZSAocmVzICZsdDsgMCkpPGJyPisgJm5ic3A7aWYg KGVjYl9leHBlY3RfZmFsc2UgKHJlcyAmbHQ7IDApKTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwO3s8 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7I2lmIEVWX1NFTEVDVF9JU19XSU5TT0NLRVQ8 YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ZXJybm8gPSBXU0FHZXRMYXN0RXJyb3IgKCk7 PGJyPkBAIC0xOTcsNyArMTk3LDcgQEAgc2VsZWN0X3BvbGwgKEVWX1BfIGV2X3RzdGFtcCB0aW1l b3V0KTxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ezxicj4mbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmICh0aW1lb3V0KTxicj4mbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt7PGJyPi0gJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7dW5zaWduZWQgbG9uZyBtcyA9IHRp bWVvdXQgKiAxZTM7PGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7dW5zaWduZWQgbG9uZyBtcyA9IEVWX1RTX1RPX01TRUMgKHRpbWVvdXQpOzxicj4m bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7U2xl ZXAgKG1zID8gbXMgOiAxKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7fTxicj4mbmJzcDs8YnI+QEAgLTIzNiw3ICsyMzYsNyBAQCBzZWxlY3RfcG9s bCAoRVZfUF8gZXZfdHN0YW1wIHRpbWVvdXQpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7aWYgKEZEX0lTU0VUIChoYW5kbGUsIChmZF9zZXQgKil2ZWNfZW8pKSBl dmVudHMgfD0gRVZfV1JJVEU7PGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7I2VuZGlmPGJyPiZuYnNwOzxicj4tICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDtpZiAoZXhwZWN0X3RydWUgKGV2ZW50cykpPGJyPisgJm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0X3RydWUgKGV2ZW50cykpPGJyPiZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO2ZkX2V2ZW50IChFVl9BXyBmZCwg ZXZlbnRzKTs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO308YnI+Jm5ic3A7 ICZuYnNwO308YnI+QEAgLTI2Miw3ICsyNjIsNyBAQCBzZWxlY3RfcG9sbCAoRVZfUF8gZXZfdHN0 YW1wIHRpbWVvdXQpPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDtldmVudHMgfD0gd29yZF9yICZhbXA7IG1hc2sgPyBFVl9SRUFEICZuYnNw OzogMDs8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwO2V2ZW50cyB8PSB3b3JkX3cgJmFtcDsgbWFzayA/IEVWX1dSSVRFIDogMDs8YnI+Jm5i c3A7PGJyPi0gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 aWYgKGV4cGVjdF90cnVlIChldmVudHMpKTxicj4rICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgJm5ic3A7ICZuYnNwO2lmIChlY2JfZXhwZWN0X3RydWUgKGV2ZW50cykpPGJyPiZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ZmRfZXZlbnQgKEVWX0FfIHdvcmQgKiBORkRCSVRTICsgYml0LCBldmVudHMpOzxicj4mbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDt9PGJyPiZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwO308YnI+QEAgLTI3NSw3ICsyNzUsNyBAQCBpbmxpbmVfc2l6ZTxi cj4mbmJzcDtpbnQ8YnI+Jm5ic3A7c2VsZWN0X2luaXQgKEVWX1BfIGludCBmbGFncyk8YnI+Jm5i c3A7ezxicj4tICZuYnNwO2JhY2tlbmRfbWludGltZSA9IDFlLTY7PGJyPisgJm5ic3A7YmFja2Vu ZF9taW50aW1lID0gRVZfVFNfQ09OU1QgKDFlLTYpOzxicj4mbmJzcDsgJm5ic3A7YmFja2VuZF9t b2RpZnkgJm5ic3A7PSBzZWxlY3RfbW9kaWZ5Ozxicj4mbmJzcDsgJm5ic3A7YmFja2VuZF9wb2xs ICZuYnNwOyAmbmJzcDs9IHNlbGVjdF9wb2xsOzxicj4mbmJzcDs8YnI+ZGlmZiAtLWdpdCBhL3Ro aXJkX3BhcnR5L2xpYmV2L2V2X3ZhcnMuaCBiL3RoaXJkX3BhcnR5L2xpYmV2L2V2X3ZhcnMuaDxi cj5pbmRleCAwNGQ0ZGIxNmYuLmZiMGM1ODMxNiAxMDA2NDQ8YnI+LS0tIGEvdGhpcmRfcGFydHkv bGliZXYvZXZfdmFycy5oPGJyPisrKyBiL3RoaXJkX3BhcnR5L2xpYmV2L2V2X3ZhcnMuaDxicj5A QCAtMSw3ICsxLDcgQEA8YnI+Jm5ic3A7Lyo8YnI+Jm5ic3A7ICogbG9vcCBtZW1iZXIgdmFyaWFi bGUgZGVjbGFyYXRpb25zPGJyPiZuYnNwOyAqPGJyPi0gKiBDb3B5cmlnaHQgKGMpIDIwMDcsMjAw OCwyMDA5LDIwMTAsMjAxMSwyMDEyLDIwMTMgTWFyYyBBbGV4YW5kZXIgTGVobWFubiAmbHQ7bGli ZXZAc2NobW9ycC5kZSZndDs8YnI+KyAqIENvcHlyaWdodCAoYykgMjAwNywyMDA4LDIwMDksMjAx MCwyMDExLDIwMTIsMjAxMywyMDE5IE1hcmMgQWxleGFuZGVyIExlaG1hbm4gJmx0O2xpYmV2QHNj aG1vcnAuZGUmZ3Q7PGJyPiZuYnNwOyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPGJyPiZuYnNwOyAq PGJyPiZuYnNwOyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg Zm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYS08YnI+QEAgLTEwNyw2ICsxMDcsNDYgQEAg VkFSeChpbnQsIGVwb2xsX2VwZXJtY250KTxicj4mbmJzcDtWQVJ4KGludCwgZXBvbGxfZXBlcm1t YXgpPGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+KyNpZiBFVl9VU0VfTElOVVhBSU8gfHwg RVZfR0VOV1JBUDxicj4rVkFSeChhaW9fY29udGV4dF90LCBsaW51eGFpb19jdHgpPGJyPitWQVJ4 KGludCwgbGludXhhaW9faXRlcmF0aW9uKTxicj4rVkFSeChzdHJ1Y3QgYW5pb2NiICoqLCBsaW51 eGFpb19pb2NicHMpPGJyPitWQVJ4KGludCwgbGludXhhaW9faW9jYnBtYXgpPGJyPitWQVJ4KHN0 cnVjdCBpb2NiICoqLCBsaW51eGFpb19zdWJtaXRzKTxicj4rVkFSeChpbnQsIGxpbnV4YWlvX3N1 Ym1pdGNudCk8YnI+K1ZBUngoaW50LCBsaW51eGFpb19zdWJtaXRtYXgpPGJyPitWQVJ4KGV2X2lv LCBsaW51eGFpb19lcG9sbF93KTxicj4rI2VuZGlmPGJyPis8YnI+KyNpZiBFVl9VU0VfSU9VUklO RyB8fCBFVl9HRU5XUkFQPGJyPitWQVJ4KGludCwgaW91cmluZ19mZCk8YnI+K1ZBUngodW5zaWdu ZWQsIGlvdXJpbmdfdG9fc3VibWl0KTs8YnI+K1ZBUngoaW50LCBpb3VyaW5nX2VudHJpZXMpPGJy PitWQVJ4KGludCwgaW91cmluZ19tYXhfZW50cmllcyk8YnI+K1ZBUngodm9pZCAqLCBpb3VyaW5n X3NxX3JpbmcpPGJyPitWQVJ4KHZvaWQgKiwgaW91cmluZ19jcV9yaW5nKTxicj4rVkFSeCh2b2lk ICosIGlvdXJpbmdfc3Flcyk8YnI+K1ZBUngodWludDMyX3QsIGlvdXJpbmdfc3FfcmluZ19zaXpl KTxicj4rVkFSeCh1aW50MzJfdCwgaW91cmluZ19jcV9yaW5nX3NpemUpPGJyPitWQVJ4KHVpbnQz Ml90LCBpb3VyaW5nX3NxZXNfc2l6ZSk8YnI+K1ZBUngodWludDMyX3QsIGlvdXJpbmdfc3FfaGVh ZCk8YnI+K1ZBUngodWludDMyX3QsIGlvdXJpbmdfc3FfdGFpbCk8YnI+K1ZBUngodWludDMyX3Qs IGlvdXJpbmdfc3FfcmluZ19tYXNrKTxicj4rVkFSeCh1aW50MzJfdCwgaW91cmluZ19zcV9yaW5n X2VudHJpZXMpPGJyPitWQVJ4KHVpbnQzMl90LCBpb3VyaW5nX3NxX2ZsYWdzKTxicj4rVkFSeCh1 aW50MzJfdCwgaW91cmluZ19zcV9kcm9wcGVkKTxicj4rVkFSeCh1aW50MzJfdCwgaW91cmluZ19z cV9hcnJheSk8YnI+K1ZBUngodWludDMyX3QsIGlvdXJpbmdfY3FfaGVhZCk8YnI+K1ZBUngodWlu dDMyX3QsIGlvdXJpbmdfY3FfdGFpbCk8YnI+K1ZBUngodWludDMyX3QsIGlvdXJpbmdfY3Ffcmlu Z19tYXNrKTxicj4rVkFSeCh1aW50MzJfdCwgaW91cmluZ19jcV9yaW5nX2VudHJpZXMpPGJyPitW QVJ4KHVpbnQzMl90LCBpb3VyaW5nX2NxX292ZXJmbG93KTxicj4rVkFSeCh1aW50MzJfdCwgaW91 cmluZ19jcV9jcWVzKTxicj4rVkFSeChldl90c3RhbXAsIGlvdXJpbmdfdGZkX3RvKTxicj4rVkFS eChpbnQsIGlvdXJpbmdfdGZkKTxicj4rVkFSeChldl9pbywgaW91cmluZ190ZmRfdyk8YnI+KyNl bmRpZjxicj4rPGJyPiZuYnNwOyNpZiBFVl9VU0VfS1FVRVVFIHx8IEVWX0dFTldSQVA8YnI+Jm5i c3A7VkFSeChwaWRfdCwga3F1ZXVlX2ZkX3BpZCk8YnI+Jm5ic3A7VkFSeChzdHJ1Y3Qga2V2ZW50 ICosIGtxdWV1ZV9jaGFuZ2VzKTxicj5AQCAtMTg3LDYgKzIyNywxMSBAQCBWQVJ4KGV2X2lvLCBz aWdmZF93KTxicj4mbmJzcDtWQVJ4KHNpZ3NldF90LCBzaWdmZF9zZXQpPGJyPiZuYnNwOyNlbmRp Zjxicj4mbmJzcDs8YnI+KyNpZiBFVl9VU0VfVElNRVJGRCB8fCBFVl9HRU5XUkFQPGJyPitWQVJ4 KGludCwgdGltZXJmZCkgLyogdGltZXJmZCBmb3IgdGltZSBqdW1wIGRldGVjdGlvbiAqLzxicj4r VkFSeChldl9pbywgdGltZXJmZF93KTxicj4rI2VuZGlmPGJyPis8YnI+Jm5ic3A7VkFSeCh1bnNp Z25lZCBpbnQsIG9yaWdmbGFncykgLyogb3JpZ2luYWwgbG9vcCBmbGFncyAqLzxicj4mbmJzcDs8 YnI+Jm5ic3A7I2lmIEVWX0ZFQVRVUkVfQVBJIHx8IEVWX0dFTldSQVA8YnI+QEAgLTE5NSw4ICsy NDAsOCBAQCBWQVJ4KHVuc2lnbmVkIGludCwgbG9vcF9kZXB0aCkgLyogI2V2X3J1biBlbnRlcnMg LSAjZXZfcnVuIGxlYXZlcyAqLzxicj4mbmJzcDs8YnI+Jm5ic3A7VkFSeCh2b2lkICosIHVzZXJk YXRhKTxicj4mbmJzcDsvKiBDKysgZG9lc24ndCBzdXBwb3J0IHRoZSBldl9sb29wX2NhbGxiYWNr IHR5cGVkZWYgaGVyZS4gc3RpbmtzLiAqLzxicj4tVkFSIChyZWxlYXNlX2NiLCB2b2lkICgqcmVs ZWFzZV9jYikoRVZfUCkgRVZfVEhST1cpPGJyPi1WQVIgKGFjcXVpcmVfY2IsIHZvaWQgKCphY3F1 aXJlX2NiKShFVl9QKSBFVl9USFJPVyk8YnI+K1ZBUiAocmVsZWFzZV9jYiwgdm9pZCAoKnJlbGVh c2VfY2IpKEVWX1ApIEVWX05PRVhDRVBUKTxicj4rVkFSIChhY3F1aXJlX2NiLCB2b2lkICgqYWNx dWlyZV9jYikoRVZfUCkgRVZfTk9FWENFUFQpPGJyPiZuYnNwO1ZBUiAoaW52b2tlX2NiICwgZXZf bG9vcF9jYWxsYmFjayBpbnZva2VfY2IpPGJyPiZuYnNwOyNlbmRpZjxicj4mbmJzcDs8YnI+ZGlm ZiAtLWdpdCBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2X3dpbjMyLmMgYi90aGlyZF9wYXJ0eS9saWJl di9ldl93aW4zMi5jPGJyPmluZGV4IGZkNjcxMzU2YS4uOTczNDRjM2UxIDEwMDY0NDxicj4tLS0g YS90aGlyZF9wYXJ0eS9saWJldi9ldl93aW4zMi5jPGJyPisrKyBiL3RoaXJkX3BhcnR5L2xpYmV2 L2V2X3dpbjMyLmM8YnI+QEAgLTE1NCw4ICsxNTQsOCBAQCBldl90aW1lICh2b2lkKTxicj4mbmJz cDsgJm5ic3A7dWkudS5Mb3dQYXJ0ICZuYnNwOz0gZnQuZHdMb3dEYXRlVGltZTs8YnI+Jm5ic3A7 ICZuYnNwO3VpLnUuSGlnaFBhcnQgPSBmdC5kd0hpZ2hEYXRlVGltZTs8YnI+Jm5ic3A7PGJyPi0g Jm5ic3A7LyogbXN2YyBjYW5ub3QgY29udmVydCB1bG9uZ2xvbmcgdG8gZG91YmxlLi4uIHllcywg aXQgaXMgdGhhdCBzdWNreSAqLzxicj4tICZuYnNwO3JldHVybiAoTE9OR0xPTkcpKHVpLlF1YWRQ YXJ0IC0gMTE2NDQ0NzM2MDAwMDAwMDAwKSAqIDFlLTc7PGJyPisgJm5ic3A7LyogYWxzbywgbXN2 YyBjYW5ub3QgY29udmVydCB1bG9uZ2xvbmcgdG8gZG91YmxlLi4uIHllcywgaXQgaXMgdGhhdCBz dWNreSAqLzxicj4rICZuYnNwO3JldHVybiBFVl9UU19GUk9NX1VTRUMgKCgoTE9OR0xPTkcpKHVp LlF1YWRQYXJ0IC0gMTE2NDQ0NzM2MDAwMDAwMDAwKSAqIDFlLTEpKTs8YnI+Jm5ic3A7fTxicj4m bmJzcDs8YnI+Jm5ic3A7I2VuZGlmPGJyPmRpZmYgLS1naXQgYS90aGlyZF9wYXJ0eS9saWJldi9l dl93cmFwLmggYi90aGlyZF9wYXJ0eS9saWJldi9ldl93cmFwLmg8YnI+aW5kZXggYWQ5ODllYTdk Li40NWQ3OTNjZWQgMTAwNjQ0PGJyPi0tLSBhL3RoaXJkX3BhcnR5L2xpYmV2L2V2X3dyYXAuaDxi cj4rKysgYi90aGlyZF9wYXJ0eS9saWJldi9ldl93cmFwLmg8YnI+QEAgLTQ0LDEyICs0NCw0NiBA QDxicj4mbmJzcDsjZGVmaW5lIGludm9rZV9jYiAoKGxvb3ApLSZndDtpbnZva2VfY2IpPGJyPiZu YnNwOyNkZWZpbmUgaW9fYmxvY2t0aW1lICgobG9vcCktJmd0O2lvX2Jsb2NrdGltZSk8YnI+Jm5i c3A7I2RlZmluZSBpb2NwICgobG9vcCktJmd0O2lvY3ApPGJyPisjZGVmaW5lIGlvdXJpbmdfY3Ff Y3FlcyAoKGxvb3ApLSZndDtpb3VyaW5nX2NxX2NxZXMpPGJyPisjZGVmaW5lIGlvdXJpbmdfY3Ff aGVhZCAoKGxvb3ApLSZndDtpb3VyaW5nX2NxX2hlYWQpPGJyPisjZGVmaW5lIGlvdXJpbmdfY3Ff b3ZlcmZsb3cgKChsb29wKS0mZ3Q7aW91cmluZ19jcV9vdmVyZmxvdyk8YnI+KyNkZWZpbmUgaW91 cmluZ19jcV9yaW5nICgobG9vcCktJmd0O2lvdXJpbmdfY3FfcmluZyk8YnI+KyNkZWZpbmUgaW91 cmluZ19jcV9yaW5nX2VudHJpZXMgKChsb29wKS0mZ3Q7aW91cmluZ19jcV9yaW5nX2VudHJpZXMp PGJyPisjZGVmaW5lIGlvdXJpbmdfY3FfcmluZ19tYXNrICgobG9vcCktJmd0O2lvdXJpbmdfY3Ff cmluZ19tYXNrKTxicj4rI2RlZmluZSBpb3VyaW5nX2NxX3Jpbmdfc2l6ZSAoKGxvb3ApLSZndDtp b3VyaW5nX2NxX3Jpbmdfc2l6ZSk8YnI+KyNkZWZpbmUgaW91cmluZ19jcV90YWlsICgobG9vcCkt Jmd0O2lvdXJpbmdfY3FfdGFpbCk8YnI+KyNkZWZpbmUgaW91cmluZ19lbnRyaWVzICgobG9vcCkt Jmd0O2lvdXJpbmdfZW50cmllcyk8YnI+KyNkZWZpbmUgaW91cmluZ19mZCAoKGxvb3ApLSZndDtp b3VyaW5nX2ZkKTxicj4rI2RlZmluZSBpb3VyaW5nX21heF9lbnRyaWVzICgobG9vcCktJmd0O2lv dXJpbmdfbWF4X2VudHJpZXMpPGJyPisjZGVmaW5lIGlvdXJpbmdfc3FfYXJyYXkgKChsb29wKS0m Z3Q7aW91cmluZ19zcV9hcnJheSk8YnI+KyNkZWZpbmUgaW91cmluZ19zcV9kcm9wcGVkICgobG9v cCktJmd0O2lvdXJpbmdfc3FfZHJvcHBlZCk8YnI+KyNkZWZpbmUgaW91cmluZ19zcV9mbGFncyAo KGxvb3ApLSZndDtpb3VyaW5nX3NxX2ZsYWdzKTxicj4rI2RlZmluZSBpb3VyaW5nX3NxX2hlYWQg KChsb29wKS0mZ3Q7aW91cmluZ19zcV9oZWFkKTxicj4rI2RlZmluZSBpb3VyaW5nX3NxX3Jpbmcg KChsb29wKS0mZ3Q7aW91cmluZ19zcV9yaW5nKTxicj4rI2RlZmluZSBpb3VyaW5nX3NxX3Jpbmdf ZW50cmllcyAoKGxvb3ApLSZndDtpb3VyaW5nX3NxX3JpbmdfZW50cmllcyk8YnI+KyNkZWZpbmUg aW91cmluZ19zcV9yaW5nX21hc2sgKChsb29wKS0mZ3Q7aW91cmluZ19zcV9yaW5nX21hc2spPGJy PisjZGVmaW5lIGlvdXJpbmdfc3FfcmluZ19zaXplICgobG9vcCktJmd0O2lvdXJpbmdfc3Ffcmlu Z19zaXplKTxicj4rI2RlZmluZSBpb3VyaW5nX3NxX3RhaWwgKChsb29wKS0mZ3Q7aW91cmluZ19z cV90YWlsKTxicj4rI2RlZmluZSBpb3VyaW5nX3NxZXMgKChsb29wKS0mZ3Q7aW91cmluZ19zcWVz KTxicj4rI2RlZmluZSBpb3VyaW5nX3NxZXNfc2l6ZSAoKGxvb3ApLSZndDtpb3VyaW5nX3NxZXNf c2l6ZSk8YnI+KyNkZWZpbmUgaW91cmluZ190ZmQgKChsb29wKS0mZ3Q7aW91cmluZ190ZmQpPGJy PisjZGVmaW5lIGlvdXJpbmdfdGZkX3RvICgobG9vcCktJmd0O2lvdXJpbmdfdGZkX3RvKTxicj4r I2RlZmluZSBpb3VyaW5nX3RmZF93ICgobG9vcCktJmd0O2lvdXJpbmdfdGZkX3cpPGJyPisjZGVm aW5lIGlvdXJpbmdfdG9fc3VibWl0ICgobG9vcCktJmd0O2lvdXJpbmdfdG9fc3VibWl0KTxicj4m bmJzcDsjZGVmaW5lIGtxdWV1ZV9jaGFuZ2VjbnQgKChsb29wKS0mZ3Q7a3F1ZXVlX2NoYW5nZWNu dCk8YnI+Jm5ic3A7I2RlZmluZSBrcXVldWVfY2hhbmdlbWF4ICgobG9vcCktJmd0O2txdWV1ZV9j aGFuZ2VtYXgpPGJyPiZuYnNwOyNkZWZpbmUga3F1ZXVlX2NoYW5nZXMgKChsb29wKS0mZ3Q7a3F1 ZXVlX2NoYW5nZXMpPGJyPiZuYnNwOyNkZWZpbmUga3F1ZXVlX2V2ZW50bWF4ICgobG9vcCktJmd0 O2txdWV1ZV9ldmVudG1heCk8YnI+Jm5ic3A7I2RlZmluZSBrcXVldWVfZXZlbnRzICgobG9vcCkt Jmd0O2txdWV1ZV9ldmVudHMpPGJyPiZuYnNwOyNkZWZpbmUga3F1ZXVlX2ZkX3BpZCAoKGxvb3Ap LSZndDtrcXVldWVfZmRfcGlkKTxicj4rI2RlZmluZSBsaW51eGFpb19jdHggKChsb29wKS0mZ3Q7 bGludXhhaW9fY3R4KTxicj4rI2RlZmluZSBsaW51eGFpb19lcG9sbF93ICgobG9vcCktJmd0O2xp bnV4YWlvX2Vwb2xsX3cpPGJyPisjZGVmaW5lIGxpbnV4YWlvX2lvY2JwbWF4ICgobG9vcCktJmd0 O2xpbnV4YWlvX2lvY2JwbWF4KTxicj4rI2RlZmluZSBsaW51eGFpb19pb2NicHMgKChsb29wKS0m Z3Q7bGludXhhaW9faW9jYnBzKTxicj4rI2RlZmluZSBsaW51eGFpb19pdGVyYXRpb24gKChsb29w KS0mZ3Q7bGludXhhaW9faXRlcmF0aW9uKTxicj4rI2RlZmluZSBsaW51eGFpb19zdWJtaXRjbnQg KChsb29wKS0mZ3Q7bGludXhhaW9fc3VibWl0Y250KTxicj4rI2RlZmluZSBsaW51eGFpb19zdWJt aXRtYXggKChsb29wKS0mZ3Q7bGludXhhaW9fc3VibWl0bWF4KTxicj4rI2RlZmluZSBsaW51eGFp b19zdWJtaXRzICgobG9vcCktJmd0O2xpbnV4YWlvX3N1Ym1pdHMpPGJyPiZuYnNwOyNkZWZpbmUg bG9vcF9jb3VudCAoKGxvb3ApLSZndDtsb29wX2NvdW50KTxicj4mbmJzcDsjZGVmaW5lIGxvb3Bf ZGVwdGggKChsb29wKS0mZ3Q7bG9vcF9kZXB0aCk8YnI+Jm5ic3A7I2RlZmluZSBsb29wX2RvbmUg KChsb29wKS0mZ3Q7bG9vcF9kb25lKTxicj5AQCAtODksNiArMTIzLDggQEA8YnI+Jm5ic3A7I2Rl ZmluZSBzaWdmZF93ICgobG9vcCktJmd0O3NpZ2ZkX3cpPGJyPiZuYnNwOyNkZWZpbmUgdGltZW91 dF9ibG9ja3RpbWUgKChsb29wKS0mZ3Q7dGltZW91dF9ibG9ja3RpbWUpPGJyPiZuYnNwOyNkZWZp bmUgdGltZXJjbnQgKChsb29wKS0mZ3Q7dGltZXJjbnQpPGJyPisjZGVmaW5lIHRpbWVyZmQgKChs b29wKS0mZ3Q7dGltZXJmZCk8YnI+KyNkZWZpbmUgdGltZXJmZF93ICgobG9vcCktJmd0O3RpbWVy ZmRfdyk8YnI+Jm5ic3A7I2RlZmluZSB0aW1lcm1heCAoKGxvb3ApLSZndDt0aW1lcm1heCk8YnI+ Jm5ic3A7I2RlZmluZSB0aW1lcnMgKChsb29wKS0mZ3Q7dGltZXJzKTxicj4mbmJzcDsjZGVmaW5l IHVzZXJkYXRhICgobG9vcCktJmd0O3VzZXJkYXRhKTxicj5AQCAtMTQzLDEyICsxNzksNDYgQEA8 YnI+Jm5ic3A7I3VuZGVmIGludm9rZV9jYjxicj4mbmJzcDsjdW5kZWYgaW9fYmxvY2t0aW1lPGJy PiZuYnNwOyN1bmRlZiBpb2NwPGJyPisjdW5kZWYgaW91cmluZ19jcV9jcWVzPGJyPisjdW5kZWYg aW91cmluZ19jcV9oZWFkPGJyPisjdW5kZWYgaW91cmluZ19jcV9vdmVyZmxvdzxicj4rI3VuZGVm IGlvdXJpbmdfY3FfcmluZzxicj4rI3VuZGVmIGlvdXJpbmdfY3FfcmluZ19lbnRyaWVzPGJyPisj dW5kZWYgaW91cmluZ19jcV9yaW5nX21hc2s8YnI+KyN1bmRlZiBpb3VyaW5nX2NxX3Jpbmdfc2l6 ZTxicj4rI3VuZGVmIGlvdXJpbmdfY3FfdGFpbDxicj4rI3VuZGVmIGlvdXJpbmdfZW50cmllczxi cj4rI3VuZGVmIGlvdXJpbmdfZmQ8YnI+KyN1bmRlZiBpb3VyaW5nX21heF9lbnRyaWVzPGJyPisj dW5kZWYgaW91cmluZ19zcV9hcnJheTxicj4rI3VuZGVmIGlvdXJpbmdfc3FfZHJvcHBlZDxicj4r I3VuZGVmIGlvdXJpbmdfc3FfZmxhZ3M8YnI+KyN1bmRlZiBpb3VyaW5nX3NxX2hlYWQ8YnI+KyN1 bmRlZiBpb3VyaW5nX3NxX3Jpbmc8YnI+KyN1bmRlZiBpb3VyaW5nX3NxX3JpbmdfZW50cmllczxi cj4rI3VuZGVmIGlvdXJpbmdfc3FfcmluZ19tYXNrPGJyPisjdW5kZWYgaW91cmluZ19zcV9yaW5n X3NpemU8YnI+KyN1bmRlZiBpb3VyaW5nX3NxX3RhaWw8YnI+KyN1bmRlZiBpb3VyaW5nX3NxZXM8 YnI+KyN1bmRlZiBpb3VyaW5nX3NxZXNfc2l6ZTxicj4rI3VuZGVmIGlvdXJpbmdfdGZkPGJyPisj dW5kZWYgaW91cmluZ190ZmRfdG88YnI+KyN1bmRlZiBpb3VyaW5nX3RmZF93PGJyPisjdW5kZWYg aW91cmluZ190b19zdWJtaXQ8YnI+Jm5ic3A7I3VuZGVmIGtxdWV1ZV9jaGFuZ2VjbnQ8YnI+Jm5i c3A7I3VuZGVmIGtxdWV1ZV9jaGFuZ2VtYXg8YnI+Jm5ic3A7I3VuZGVmIGtxdWV1ZV9jaGFuZ2Vz PGJyPiZuYnNwOyN1bmRlZiBrcXVldWVfZXZlbnRtYXg8YnI+Jm5ic3A7I3VuZGVmIGtxdWV1ZV9l dmVudHM8YnI+Jm5ic3A7I3VuZGVmIGtxdWV1ZV9mZF9waWQ8YnI+KyN1bmRlZiBsaW51eGFpb19j dHg8YnI+KyN1bmRlZiBsaW51eGFpb19lcG9sbF93PGJyPisjdW5kZWYgbGludXhhaW9faW9jYnBt YXg8YnI+KyN1bmRlZiBsaW51eGFpb19pb2NicHM8YnI+KyN1bmRlZiBsaW51eGFpb19pdGVyYXRp b248YnI+KyN1bmRlZiBsaW51eGFpb19zdWJtaXRjbnQ8YnI+KyN1bmRlZiBsaW51eGFpb19zdWJt aXRtYXg8YnI+KyN1bmRlZiBsaW51eGFpb19zdWJtaXRzPGJyPiZuYnNwOyN1bmRlZiBsb29wX2Nv dW50PGJyPiZuYnNwOyN1bmRlZiBsb29wX2RlcHRoPGJyPiZuYnNwOyN1bmRlZiBsb29wX2RvbmU8 YnI+QEAgLTE4OCw2ICsyNTgsOCBAQDxicj4mbmJzcDsjdW5kZWYgc2lnZmRfdzxicj4mbmJzcDsj dW5kZWYgdGltZW91dF9ibG9ja3RpbWU8YnI+Jm5ic3A7I3VuZGVmIHRpbWVyY250PGJyPisjdW5k ZWYgdGltZXJmZDxicj4rI3VuZGVmIHRpbWVyZmRfdzxicj4mbmJzcDsjdW5kZWYgdGltZXJtYXg8 YnI+Jm5ic3A7I3VuZGVmIHRpbWVyczxicj4mbmJzcDsjdW5kZWYgdXNlcmRhdGE8YnI+ZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L2xpYmV2L2xpYmV2Lm00IGIvdGhpcmRfcGFydHkvbGliZXYvbGli ZXYubTQ8YnI+aW5kZXggNDM5ZmJkZTJjLi5mODU5ZWZmMjcgMTAwNjQ0PGJyPi0tLSBhL3RoaXJk X3BhcnR5L2xpYmV2L2xpYmV2Lm00PGJyPisrKyBiL3RoaXJkX3BhcnR5L2xpYmV2L2xpYmV2Lm00 PGJyPkBAIC0yLDcgKzIsOCBAQCBkbmwgdGhpcyBmaWxlIGlzIHBhcnQgb2YgbGliZXYsIGRvIG5v dCBtYWtlIGxvY2FsIG1vZGlmaWNhdGlvbnM8YnI+Jm5ic3A7ZG5sIGh0dHA6Ly9zb2Z0d2FyZS5z Y2htb3JwLmRlL3BrZy9saWJldjxicj4mbmJzcDs8YnI+Jm5ic3A7ZG5sIGxpYmV2IHN1cHBvcnQ8 YnI+LUFDX0NIRUNLX0hFQURFUlMoc3lzL2lub3RpZnkuaCBzeXMvZXBvbGwuaCBzeXMvZXZlbnQu aCBwb3J0LmggcG9sbC5oIHN5cy9zZWxlY3QuaCBzeXMvZXZlbnRmZC5oIHN5cy9zaWduYWxmZC5o KTxicj4rQUNfQ0hFQ0tfSEVBREVSUyhzeXMvaW5vdGlmeS5oIHN5cy9lcG9sbC5oIHN5cy9ldmVu dC5oIHBvcnQuaCBwb2xsLmggc3lzL3RpbWVyZmQuaCk8YnI+K0FDX0NIRUNLX0hFQURFUlMoc3lz L3NlbGVjdC5oIHN5cy9ldmVudGZkLmggc3lzL3NpZ25hbGZkLmggbGludXgvYWlvX2FiaS5oIGxp bnV4L2ZzLmgpPGJyPiZuYnNwOyZuYnNwOzxicj4mbmJzcDtBQ19DSEVDS19GVU5DUyhpbm90aWZ5 X2luaXQgZXBvbGxfY3RsIGtxdWV1ZSBwb3J0X2NyZWF0ZSBwb2xsIHNlbGVjdCBldmVudGZkIHNp Z25hbGZkKTxicj4mbmJzcDsmbmJzcDs8YnI+QEAgLTM1LDYgKzM2LDEwIEBAIEFDX0NIRUNLX0ZV TkNTKG5hbm9zbGVlcCwgW10sIFs8YnI+Jm5ic3A7ICZuYnNwOyBmaTxicj4mbmJzcDtdKTxicj4m bmJzcDs8YnI+K0FDX0NIRUNLX1RZUEUoX19rZXJuZWxfcndmX3QsIFs8YnI+KyAmbmJzcDsgQUNf REVGSU5FKEhBVkVfS0VSTkVMX1JXRl9ULCAxLCBEZWZpbmUgdG8gMSBpZiBsaW51eC9mcy5oIGRl ZmluZWQga2VybmVsX3J3Zl90KTxicj4rXSwgW10sIFsjaW5jbHVkZSAmbHQ7bGludXgvZnMuaCZn dDtdKTxicj4rPGJyPiZuYnNwO2lmIHRlc3QgLXogIiRMSUJFVl9NNF9BVk9JRF9MSUJNIjsgdGhl bjxicj4mbmJzcDsgJm5ic3A7IExJQk09bTxicj4mbmJzcDtmaTxicj5kaWZmIC0tZ2l0IGEvdGhp cmRfcGFydHkvbGliZXYvdXBkYXRlX2V2X2MgYi90aGlyZF9wYXJ0eS9saWJldi91cGRhdGVfZXZf Yzxicj5pbmRleCBiNTVmZDdmYjcuLmE4MGJmYWUyMyAxMDA3NTU8YnI+LS0tIGEvdGhpcmRfcGFy dHkvbGliZXYvdXBkYXRlX2V2X2M8YnI+KysrIGIvdGhpcmRfcGFydHkvbGliZXYvdXBkYXRlX2V2 X2M8YnI+QEAgLTIsNiArMiw3IEBAPGJyPiZuYnNwOzxicj4mbmJzcDsoPGJyPiZuYnNwOyAmbmJz cDsgc2VkIC1uZSAnMSxcJS9cKiBFQ0IuSCBCRUdJTiBcKi8lcCcgZXYuYzxicj4rICZuYnNwOyAj cGVybCAtbmUgJ3ByaW50IHVubGVzcyAvXiNpZiBFQ0JfQ1BQLyAuLiAvXiNlbmRpZi8nICZsdDt+ L3NyYy9saWJlY2IvZWNiLmg8YnI+Jm5ic3A7ICZuYnNwOyBjYXQgfi9zcmMvbGliZWNiL2VjYi5o PGJyPiZuYnNwOyAmbmJzcDsgc2VkIC1uZSAnXCUvXCogRUNCLkggRU5EIFwqLyUsJHAnIGV2LmM8 YnI+Jm5ic3A7KSAmZ3Q7ZXYuY34gJmFtcDsmYW1wOyBtdiBldi5jfiBldi5jPGJyPi0tJm5ic3A7 PGJyPjIuMjQuMDxicj4mbmJzcDs8YnI+Jm5ic3A7PGJyPi0tPGJyPk1hcmlhIEtoYXlkaWNoPGJy PiZuYnNwOzwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4 NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPtCf0L7QvdC10LTQtdC70YzQ vdC40LosIDE3INGE0LXQstGA0LDQu9GPIDIwMjAsIDEzOjAwICswMzowMCDQvtGCIEFsZXhhbmRl ciBUdXJlbmtvICZsdDthbGV4YW5kZXIudHVyZW5rb0B0YXJhbnRvb2wub3JnJmd0Ozo8YnI+Jm5i c3A7PGRpdiBpZD0iIj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxzdHls ZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48ZGl2PjxkaXYgaWQ9InN0eWxlXzE1ODE5MzM2MjAy MDM0NjkzNTgyX0JPRFkiPk9uIE1vbiwgRmViIDE3LCAyMDIwIGF0IDEwOjQwOjUyQU0gKzAzMDAs IEtvbnN0YW50aW4gT3NpcG92IHdyb3RlOjxicj4mZ3Q7ICogQWxleGFuZGVyIFR1cmVua28gJmx0 OzxhIGhyZWY9Ii9jb21wb3NlP1RvPWFsZXhhbmRlci50dXJlbmtvQHRhcmFudG9vbC5vcmciPmFs ZXhhbmRlci50dXJlbmtvQHRhcmFudG9vbC5vcmc8L2E+Jmd0OyBbMjAvMDIvMTUgMjM6MjJdOjwv ZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48ZGl2PiZsdDsuLi4mZ3Q7PGJsb2Nr cXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsg cGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1z Zy1tc2ciPjxkaXY+PGRpdj4mZ3Q7PGJyPiZndDsgSG93IHRvIHVwZGF0ZSBsaWJldjxicj4mZ3Q7 ID09PT09PT09PT09PT09PT09PT08YnI+Jmd0Ozxicj4mZ3Q7IFJlbW92ZSBUYXJhbnRvb2wgcGF0 Y2hlcyAoc2VlIGNzdiBkaWZmIC1VOCkuPGJyPiZndDsgY3ZzIHVwPGJyPiZndDsgQWRkIHBhdGNo ZXMgYmFjay48YnI+Jmd0Ozxicj4mZ3Q7IERpZCB0aGUgcGF0Y2ggZm9sbG93IHRoZSBwcm9jZWR1 cmU/IElmIGl0IGRpZCwgaXQgc2hvdWxkIGNsZWFybHk8YnI+Jmd0OyBzdGF0ZSB0aGF0IGl0IHVw ZGF0ZWQgbGliZXYsIGFuZCB0byB3aGljaCB2ZXJzaW9uLjxicj48YnI+QWdyZWVkLCBpdCBtYWtl cyBzZW5zZS48YnI+PGJyPiZndDs8YnI+Jmd0Ozxicj4mZ3Q7ICZndDs8YnI+Jmd0OyAmZ3Q7IHwg NC4yNSBGcmkgRGVjIDIxIDA3OjQ5OjIwIENFVCAyMDE4PGJyPiZndDsgJmd0OyB8ICZsdDsuLi4m Z3Q7PGJyPiZndDsgJmd0OyB8IC0gbW92ZSB0aGUgZGFyd2luIHNlbGVjdCB3b3JrYXJvdW5kIGhp Z2hlciBpbiBldi5jLCBhcyBuZXdlciB2ZXJzaW9ucyBvZjxicj4mZ3Q7ICZndDsgfCBkYXJ3aW4g bWFuYWdlZCB0byBicmVhayB0aGVpciBicm9rZW4gc2VsZWN0IGV2ZW4gbW9yZS48YnI+Jmd0OyAm Z3Q7PGJyPiZndDsgJmd0OyA8YSBocmVmPSJodHRwOi8vY3ZzLnNjaG1vcnAuZGUvbGliZXYvQ2hh bmdlcz92aWV3PW1hcmt1cCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly9jdnMuc2NobW9ycC5kZS9s aWJldi9DaGFuZ2VzP3ZpZXc9bWFya3VwPC9hPjxicj4mZ3Q7PGJyPiZndDsgOi88YnI+Jmd0Ozxi cj4mZ3Q7IC0tPGJyPiZndDsgS29uc3RhbnRpbiBPc2lwb3YsIE1vc2NvdywgUnVzc2lhPC9kaXY+ PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPiZuYnNwOzxkaXY+Jm5ic3A7PC9kaXY+PGRp diBkYXRhLXNpZ25hdHVyZS13aWRnZXQ9ImNvbnRhaW5lciI+PGRpdiBkYXRhLXNpZ25hdHVyZS13 aWRnZXQ9ImNvbnRlbnQiPjxkaXY+LS08YnI+TWFyaWEgS2hheWRpY2g8L2Rpdj48L2Rpdj48L2Rp dj48ZGl2PiZuYnNwOzwvZGl2PjwvZGl2PjwvQk9EWT48L0hUTUw+Cg== ----ALT--eBc97489f5F3Ae8A5A86Cc01De9104051583247523--