Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wKfor-001EL4-1s for pgsql-hackers@arkaria.postgresql.org; Wed, 06 May 2026 17:13:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wKfoq-000Xd6-1M for pgsql-hackers@arkaria.postgresql.org; Wed, 06 May 2026 17:13:56 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wKfop-000Xcy-2v for pgsql-hackers@lists.postgresql.org; Wed, 06 May 2026 17:13:56 +0000 Received: from mail-oa1-x2b.google.com ([2001:4860:4864:20::2b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wKfon-00000000rRE-16Ts for pgsql-hackers@lists.postgresql.org; Wed, 06 May 2026 17:13:55 +0000 Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-434e69e943bso1509100fac.3 for ; Wed, 06 May 2026 10:13:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1778087631; cv=none; d=google.com; s=arc-20240605; b=amfz4W2cad6QLPgvvsu2HVWrsUNOqMwCwtw+KwKU52y3B5+u4xVOkHuVN7OH55nVk0 muDgqR+p4JJBRzS0qb0y69x0iXMram/4JHQjkkmLzJYcb2BtdKSNvYWA60vMiM5UzsqT xoH1Y+iPKwnrRfgNCEy0v5/BOIuTnY3pkBEni/Z5iCWjMrfyPn857Llk8M/IJsS3QnL5 GiJgYhDSEjApjCmQ/JyyhQ9V2uJOVdANil0Eub/O0i9+gr88L4KR6WGfRzeqs5cI76UT 1+sFXr29cW4TYFT21TzZl1G2vqvtfFgECYPb8aA6yAuo/Z/PgJkm/4ZVPxF+2eVDef/w eegw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=rTZKrhcvtWEeSe3A6j35Kdx0Mw/y9LnkXyGcOs6/4mA=; fh=VJ7rRa2nPi+zzqnI5QjgqQzNzD4ZNTmv6atSBCaAqsw=; b=AsjyqOo84u/Vqvn4oNgy47a6E6QDtDubiq17JP4uwXmtNweaiaDVhx8vQHjQQS69K0 rj8WmVcZO7RmoTUgnwWEFP9iiDv9KLce+gDYweC9HWbTszfR0r5k5seogjZjpugugLTC ViNl8bDGHf3LEI+NfVAfrtWrz8rT4Oq27a3hxRWM0OuDEZXXteF3SGxltiyIi6ayhUEH drDk4C4tB/HJ+yuxQWOJB8rPm9kaQ9cAzFb1Z9GJ1oH7PFKrrYt7dpp3+C6ykEm8gVL9 Z2pR9MH6AKbyAyIyk4NrWYcutOyklMyke+ERBhxw9tuk7hnDWEKcfWkylkbbcjZrRJmi 14yQ==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20251104.gappssmtp.com; s=20251104; t=1778087631; x=1778692431; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=rTZKrhcvtWEeSe3A6j35Kdx0Mw/y9LnkXyGcOs6/4mA=; b=BzYXay//GRgjUd9NtUFEdNuoZWkMIfIYGTDGS9XvKbKvX0psFiS5hd8Cn0eAlSvF3X p0Lak9OIY/DyV4TK2dW9OSSqZsTp57YJPe5pfGuYm6vxfxAEVMlTY0BNqMpgFAryqm9r 9ztMW9ziExssBTpPS6Se0SjzvLEyvkJ1TJBAOoVpWqNy0uTKqYfZedkFRjux7z1rvT0H 6kLC3zxDsAr9AeLgDk6sPKK/g98N7gAeUC3x2k4K6cyPDRKnJiglfPR+flvKqh8jpa+i lZZgZgTlv+P8sK/swl9DphLo/5dXNgsWw8uWZvmVQmIgT364PefbpPAMPFxg/f2E2bdk L0NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778087631; x=1778692431; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=rTZKrhcvtWEeSe3A6j35Kdx0Mw/y9LnkXyGcOs6/4mA=; b=ZuE9LlWhTe987Kkc+SNOIAtMmZFUqBFnYSP84mrgdyC1oMgH7SXV4uv7DiEQnZDe4E His5DwgZFwi8OCcWtmG0C1VMvcAIO9RbZ2KGG8mKTF8LjY/4W9Gn0tx4/nMyS4Sm22eA LeNlynKLI/b9hvmznAhBy2s2mx4FiCIlxZsxBewJeJTl1SKWecoF/hUBKX5HtVPyKZpA P9GeEQqTK9jkdvEcoFfDfs1y/XrfaeW5vsNq/8jJZ4tJqhsNWpwtrpT7ZXx9Lvtt7Yha 6etTfT4naRYL4mXpNC2dXMscgBp57rVKI3oQ4A+N3vh7RulsVhlft7NC1y/TtsMV+zs2 uvfA== X-Forwarded-Encrypted: i=1; AFNElJ+IWv57pNliBvNJnmUDfGpLoiTFq2593xygZ7twcc30h5QVd4NjHhFFYst/bRkvg284tPDYiExImOUeQo6V@lists.postgresql.org X-Gm-Message-State: AOJu0YwD496W3msqtGsUHclfJ1yhyJ4gxtE9KHMhA4XSz89Kws6KoMGc VURmCBYBSA4k1YftZXiogYQJSiDoWbAK/ccnwmjwgGFROun2oU9o7Wf6j1g4n5eMz9Tb3wSauxm HHcSoxystUNp53umn6Ois0I8AZuimtRh1pQAaRnPOZ8QfBv+hgHrNk1M= X-Gm-Gg: AeBDievMBvlp2JrDh/2/dcUvunQnTtcuXWM7P7W/qXcRd3kq0/3PiPdjv2QfulEQqed o7CdHGoS5LIab8Do5jQlH7NB9hvNIP3mqOCCemAvpBteOLqETGXazp2tKo2stCmde3kVsJgMKpX C3QmvEAy7T9AJbnlixQ5tliV2wdyZZi/Z9pMD5q+7XN3GTznhOmdaHWUjOL1PI/GlxKejVRjBv5 4sv5Q+dDSIvlFQWT8W0qXxOHr/UX6KUzc1NLQuvfHcvy0EC9PYaE6SHgVUR739vV1bkEvXshjDt Rd3phtxelsvGHYwLavfooS4yjQ== X-Received: by 2002:a05:6820:180e:b0:694:8f18:ccd3 with SMTP id 006d021491bc7-69998c8f432mr2111052eaf.3.1778087630937; Wed, 06 May 2026 10:13:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Paul A Jungwirth Date: Wed, 6 May 2026 10:13:39 -0700 X-Gm-Features: AVHnY4IKk3MbxljAGjQItCYtZ7rjLNo578KNdWdYxFuMNOmRO3aw_WDnThkm7S4 Message-ID: Subject: Re: FOR PORTION OF does not recompute GENERATED STORED columns that depend on the range column To: Peter Eisentraut Cc: jian he , SATYANARAYANA NARLAPURAM , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000009f7b8a06512949e6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009f7b8a06512949e6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, May 6, 2026 at 4:39=E2=80=AFAM Peter Eisentraut wrote: > > On 05.05.26 23:50, Paul A Jungwirth wrote: > > On Wed, Apr 22, 2026 at 11:03=E2=80=AFAM Paul A Jungwirth > > wrote: > >> > >> Good catch! I removed that line in v7 (attached). I also included your > >> test change to compute the range len by hand. Also a rebase was > >> necessary after d3bba04154. > > > > This needed a rebase. v8 attached. > > This patch fails the injection_points/isolation test for me. It looks > like it causes a server crash. Check please. Sorry, I didn't have injection_points enabled, but now I see it too. The attached v9 fixes it. Yours, --=20 Paul ~{:-) pj@illuminatedcomputing.com --0000000000009f7b8a06512949e6 Content-Type: text/x-patch; charset="US-ASCII"; name="v9-0001-Fix-some-problems-with-UPDATE-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v9-0001-Fix-some-problems-with-UPDATE-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_moubggsf0 RnJvbSAwMzI1YWM1OGFkMWUyZjJlOGZiMWEyMDA3ZGRhZGZjZGFmZmRhY2VkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTAgQXByIDIwMjYgMTc6MDE6MTIgKzA4MDAKU3ViamVjdDogW1BBVENIIHY5 XSBGaXggc29tZSBwcm9ibGVtcyB3aXRoIFVQREFURSBGT1IgUE9SVElPTiBPRgoKLSBGaXhlZCBp bnNlcnRpbmcgbGVmdG92ZXJzIHdpdGggdHJhZGl0aW9uYWwgdGFibGUgaW5oZXJpdGFuY2UuIFNp bmNlIHRoZXJlIGlzCiAgbm8gdHVwbGUgcm91dGluZywgd2UgbXVzdCBhZGQgdGhlbSBkaXJlY3Rs eSB0byB0aGUgY2hpbGQgdGFibGUuIEFsc28gdGhpcwogIHByZXNlcnZlcyBleHRyYSBjb2x1bW5z IGluIHRoYXQgdGFibGUuCi0gQWRkZWQgRXhlY0luaXRGb3JQb3J0aW9uT2YuIFRoaXMgc2V0cyB1 cCBleGVjdXRvciBzdGF0ZSBmb3IgY2hpbGQgcGFydGl0aW9ucy4KICBQcmV2aW91c2x5IHdlIGRp ZCB0aGlzIGluIEV4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMsIGJ1dCBkb2luZyBpdCBlYXJsaWVy IGxldHMKICB1cyB1c2UgdGhlIGNoaWxkLT5wYXJlbnQgYXR0ciBtYXBwaW5nIGluIHRoZSBmaXhl cyBiZWxvdy4KLSBNYWRlIHN1cmUgR0VORVJBVEVEIFNUT1JFRCBjb2x1bW5zIHRoYXQgZGVwZW5k IG9uIHRoZSBhcHBsaWNhdGlvbi10aW1lIGNvbHVtbgogIGdldCB1cGRhdGVkLiBXZSBleGNsdWRl IHRoYXQgY29sdW1uIGZyb20gdGhlIHVwZGF0ZWRDb2xzIGJpdG1hcHNldCwgYmVjYXVzZSBpdAog IGRvZXMgbm90IHJlcXVpcmUgcGVybWlzc2lvbnMuIEJ1dCB0aGVuIHdlIG11c3QgcmVtZW1iZXIg dG8gYWRkIGl0IGxhdGVyLiBUaGlzCiAgYWxzbyBmaXhlcyBhIHNpbWlsYXIgcHJvYmxlbSB3aXRo IFVQREFURSBPRiB0cmlnZ2Vycy4KLSBDbGFyaWZpZWQgYSBjb21tZW50IGFib3V0IHRoZSByYW5n ZXR5cGUgc3RvcmVkIGluIEZvclBvcnRpb25PZlN0YXRlLgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQUhnK1FEY2Q9dDY5Z0xmOXlRZXhPMDdFSjJteDBaNzBORkhvNmg5NFgxRURB PWhNMGdAbWFpbC5nbWFpbC5jb20KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUhn K1FEY3NYc1VWYVorSndNMDJ5RFJRRWk9Y0xfclRIX1JPTERZZ094MDA0c1F1N0FAbWFpbC5nbWFp bC5jb20KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYyAgICAgICAgICAgICB8 ICAzNiArKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jICAgICAgIHwg MTQ1ICsrKysrKysrLS0tLQogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAg ICAgICAgfCAgIDMgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yu b3V0IHwgMjIxICsrKysrKysrKysrKysrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9w b3J0aW9uX29mLnNxbCAgICAgIHwgIDk0ICsrKysrKystCiA1IGZpbGVzIGNoYW5nZWQsIDQwMCBp bnNlcnRpb25zKCspLCA5OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjVXRpbHMuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNVdGlscy5jCmlu ZGV4IDFlYjZiOWYxZjQwLi5hZTIzYzI0ODA4MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1V0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMK QEAgLTE0MDgsMjAgKzE0MDgsNTIgQEAgQml0bWFwc2V0ICoKIEV4ZWNHZXRVcGRhdGVkQ29scyhS ZXN1bHRSZWxJbmZvICpyZWxpbmZvLCBFU3RhdGUgKmVzdGF0ZSkKIHsKIAlSVEVQZXJtaXNzaW9u SW5mbyAqcGVybWluZm8gPSBHZXRSZXN1bHRSVEVQZXJtaXNzaW9uSW5mbyhyZWxpbmZvLCBlc3Rh dGUpOworCUJpdG1hcHNldCAqdXBkYXRlZENvbHM7CiAKIAlpZiAocGVybWluZm8gPT0gTlVMTCkK IAkJcmV0dXJuIE5VTEw7CiAKKwl1cGRhdGVkQ29scyA9IHBlcm1pbmZvLT51cGRhdGVkQ29sczsK KwogCS8qIE1hcCB0aGUgY29sdW1ucyB0byBjaGlsZCdzIGF0dHJpYnV0ZSBudW1iZXJzIGlmIG5l ZWRlZC4gKi8KIAlpZiAocmVsaW5mby0+cmlfUm9vdFJlc3VsdFJlbEluZm8pCiAJewogCQlUdXBs ZUNvbnZlcnNpb25NYXAgKm1hcCA9IEV4ZWNHZXRSb290VG9DaGlsZE1hcChyZWxpbmZvLCBlc3Rh dGUpOwogCiAJCWlmIChtYXApCi0JCQlyZXR1cm4gZXhlY3V0ZV9hdHRyX21hcF9jb2xzKG1hcC0+ YXR0ck1hcCwgcGVybWluZm8tPnVwZGF0ZWRDb2xzKTsKKwkJCXVwZGF0ZWRDb2xzID0gZXhlY3V0 ZV9hdHRyX21hcF9jb2xzKG1hcC0+YXR0ck1hcCwgdXBkYXRlZENvbHMpOworCX0KKworCS8qCisJ ICogRm9yIFVQREFURSAuLi4gRk9SIFBPUlRJT04gT0YsIHRoZSByYW5nZSBjb2x1bW4gaXMgYmVp bmcgbW9kaWZpZWQKKwkgKiAobmFycm93ZWQgdmlhIGludGVyc2VjdGlvbiksIGJ1dCBpdCBpcyBu b3QgaW5jbHVkZWQgaW4gdXBkYXRlZENvbHMKKwkgKiBiZWNhdXNlIHRoZSB1c2VyIGRvZXMgbm90 IG5lZWQgVVBEQVRFIHBlcm1pc3Npb24gb24gaXQuIE5vdyBtYW51YWx5CisJICogYWRkIGl0IHRv IHVwZGF0ZWRDb2xzLiBTaW5jZSByaV9mb3JQb3J0aW9uT2YtPmZwX3JhbmdlQXR0bm8gaXMgYWxy ZWFkeQorCSAqIG1hcHBlZCBmb3IgdGhlIGNoaWxkIHBhcnRpdGlvbiwgd2UgaGF2ZSB0byBhZGQg aXQgYWZ0ZXIgdGhlIG1hcHBpbmcganVzdAorCSAqIGFib3ZlLiBBbHNvIHRoYXQgbWFrZXMgaXQg dW5zYWZlIHRvIG11dGF0ZSBwZXJtaW5mby4gWFhYOiBBbHdheXMgYWRkIHRoZQorCSAqIHVubWFw cGVkIGF0dG5vIGluc3RlYWQgKGJlZm9yZSBtYXBwaW5nKSwgYW5kIG11dGF0ZSBwZXJtaW5mbywg dG8gYXZvaWQKKwkgKiByZXBlYXRlZCBhbGxvY2F0aW9ucz8KKwkgKi8KKwlpZiAocmVsaW5mby0+ cmlfZm9yUG9ydGlvbk9mKQorCXsKKwkJQXR0ck51bWJlcglyYW5nZUF0dG5vID0gcmVsaW5mby0+ cmlfZm9yUG9ydGlvbk9mLT5mcF9yYW5nZUF0dG5vOworCisJCWlmICghYm1zX2lzX21lbWJlcihy YW5nZUF0dG5vIC0gRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlciwKKwkJCQkJCSAg IHVwZGF0ZWRDb2xzKSkKKwkJeworCQkJTWVtb3J5Q29udGV4dCBvbGRDb250ZXh0OworCisJCQlv bGRDb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVlcnlfY3h0KTsK KworCQkJdXBkYXRlZENvbHMgPQorCQkJCWJtc19hZGRfbWVtYmVyKHVwZGF0ZWRDb2xzLAorCQkJ CQkJCSAgIHJhbmdlQXR0bm8gLSBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyKTsK KworCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZENvbnRleHQpOworCQl9CiAJfQogCi0JcmV0 dXJuIHBlcm1pbmZvLT51cGRhdGVkQ29sczsKKwlyZXR1cm4gdXBkYXRlZENvbHM7CiB9CiAKIC8q IFJldHVybiBhIGJpdG1hcCByZXByZXNlbnRpbmcgZ2VuZXJhdGVkIGNvbHVtbnMgYmVpbmcgdXBk YXRlZCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxl LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwppbmRleCA0Y2IwNTdj YTRmOS4uODFmNWFmYzlmYjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVN b2RpZnlUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5j CkBAIC0xOTgsNiArMTk4LDggQEAgc3RhdGljIFR1cGxlVGFibGVTbG90ICpFeGVjTWVyZ2VOb3RN YXRjaGVkKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIHN0YXRpYyB2b2lkIEV4ZWNTZXR1 cFRyYW5zaXRpb25DYXB0dXJlU3RhdGUoTW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwgRVN0YXRl ICplc3RhdGUpOwogc3RhdGljIHZvaWQgZmlyZUJTVHJpZ2dlcnMoTW9kaWZ5VGFibGVTdGF0ZSAq bm9kZSk7CiBzdGF0aWMgdm9pZCBmaXJlQVNUcmlnZ2VycyhNb2RpZnlUYWJsZVN0YXRlICpub2Rl KTsKK3N0YXRpYyB2b2lkIEV4ZWNJbml0Rm9yUG9ydGlvbk9mKE1vZGlmeVRhYmxlU3RhdGUgKm10 c3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAorCQkJCQkJCQkgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVs SW5mbyk7CiAKIAogLyoKQEAgLTE0MDksNyArMTQxMSw2IEBAIEV4ZWNGb3JQb3J0aW9uT2ZMZWZ0 b3ZlcnMoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAogCU1vZGlmeVRhYmxlU3RhdGUgKm10 c3RhdGUgPSBjb250ZXh0LT5tdHN0YXRlOwogCU1vZGlmeVRhYmxlICpub2RlID0gKE1vZGlmeVRh YmxlICopIG10c3RhdGUtPnBzLnBsYW47CiAJRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9m ID0gKEZvclBvcnRpb25PZkV4cHIgKikgbm9kZS0+Zm9yUG9ydGlvbk9mOwotCUF0dHJOdW1iZXIJ cmFuZ2VBdHRubzsKIAlEYXR1bQkJb2xkUmFuZ2U7CiAJVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hl OwogCUZvclBvcnRpb25PZlN0YXRlICpmcG9TdGF0ZTsKQEAgLTE0MjQsMzcgKzE0MjUsMTAgQEAg RXhlY0ZvclBvcnRpb25PZkxlZnRvdmVycyhNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAJ UmV0dXJuU2V0SW5mbyByc2k7CiAJYm9vbAkJZGlkSW5pdCA9IGZhbHNlOwogCWJvb2wJCXNob3Vs ZEZyZWUgPSBmYWxzZTsKKwlSZXN1bHRSZWxJbmZvICpyb290UmVsSW5mbyA9IG10c3RhdGUtPnJv b3RSZXN1bHRSZWxJbmZvOwogCiAJTE9DQUxfRkNJTkZPKGZjaW5mbywgMik7CiAKLQlpZiAoIXJl c3VsdFJlbEluZm8tPnJpX2ZvclBvcnRpb25PZikKLQl7Ci0JCS8qCi0JCSAqIElmIHdlIGRvbid0 IGhhdmUgYSBGb3JQb3J0aW9uT2ZTdGF0ZSB5ZXQsIHdlIG11c3QgYmUgYSBwYXJ0aXRpb24KLQkJ ICogY2hpbGQgYmVpbmcgaGl0IGZvciB0aGUgZmlyc3QgdGltZS4gTWFrZSBhIGNvcHkgZnJvbSB0 aGUgcm9vdCwgd2l0aAotCQkgKiBvdXIgb3duIFR1cGxlVGFibGVTbG90LiBXZSBkbyB0aGlzIGxh emlseSBzbyB0aGF0IHdlIGRvbid0IHBheSB0aGUKLQkJICogcHJpY2Ugb2YgdW51c2VkIHBhcnRp dGlvbnMuCi0JCSAqLwotCQlGb3JQb3J0aW9uT2ZTdGF0ZSAqbGVhZlN0YXRlID0gbWFrZU5vZGUo Rm9yUG9ydGlvbk9mU3RhdGUpOwotCi0JCWlmICghbXRzdGF0ZS0+cm9vdFJlc3VsdFJlbEluZm8p Ci0JCQllbG9nKEVSUk9SLCAibm8gcm9vdCByZWxhdGlvbiBidXQgcmlfZm9yUG9ydGlvbk9mIGlz IHVuaW5pdGlhbGl6ZWQiKTsKLQotCQlmcG9TdGF0ZSA9IG10c3RhdGUtPnJvb3RSZXN1bHRSZWxJ bmZvLT5yaV9mb3JQb3J0aW9uT2Y7Ci0JCUFzc2VydChmcG9TdGF0ZSk7Ci0KLQkJbGVhZlN0YXRl LT5mcF9yYW5nZU5hbWUgPSBmcG9TdGF0ZS0+ZnBfcmFuZ2VOYW1lOwotCQlsZWFmU3RhdGUtPmZw X3JhbmdlVHlwZSA9IGZwb1N0YXRlLT5mcF9yYW5nZVR5cGU7Ci0JCWxlYWZTdGF0ZS0+ZnBfcmFu Z2VBdHRubyA9IGZwb1N0YXRlLT5mcF9yYW5nZUF0dG5vOwotCQlsZWFmU3RhdGUtPmZwX3Rhcmdl dFJhbmdlID0gZnBvU3RhdGUtPmZwX3RhcmdldFJhbmdlOwotCQlsZWFmU3RhdGUtPmZwX0xlZnRv dmVyID0gZnBvU3RhdGUtPmZwX0xlZnRvdmVyOwotCQkvKiBFYWNoIHBhcnRpdGlvbiBuZWVkcyBh IHNsb3QgbWF0Y2hpbmcgaXRzIHR1cGxlIGRlc2NyaXB0b3IgKi8KLQkJbGVhZlN0YXRlLT5mcF9F eGlzdGluZyA9Ci0JCQl0YWJsZV9zbG90X2NyZWF0ZShyZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlv bkRlc2MsCi0JCQkJCQkJICAmbXRzdGF0ZS0+cHMuc3RhdGUtPmVzX3R1cGxlVGFibGUpOwotCi0J CXJlc3VsdFJlbEluZm8tPnJpX2ZvclBvcnRpb25PZiA9IGxlYWZTdGF0ZTsKLQl9CiAJZnBvU3Rh dGUgPSByZXN1bHRSZWxJbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CiAJb2xkdHVwbGVTbG90ID0gZnBv U3RhdGUtPmZwX0V4aXN0aW5nOwogCWxlZnRvdmVyU2xvdCA9IGZwb1N0YXRlLT5mcF9MZWZ0b3Zl cjsKQEAgLTE0NzUsMjEgKzE0NDksMTMgQEAgRXhlY0ZvclBvcnRpb25PZkxlZnRvdmVycyhNb2Rp ZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAJaWYgKCF0YWJsZV90dXBsZV9mZXRjaF9yb3dfdmVy c2lvbihyZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MsIHR1cGxlaWQsIFNuYXBzaG90QW55 LCBvbGR0dXBsZVNsb3QpKQogCQllbG9nKEVSUk9SLCAiZmFpbGVkIHRvIGZldGNoIHR1cGxlIGZv ciBGT1IgUE9SVElPTiBPRiIpOwogCi0JLyoKLQkgKiBHZXQgdGhlIG9sZCByYW5nZSBvZiB0aGUg cmVjb3JkIGJlaW5nIHVwZGF0ZWQvZGVsZXRlZC4gTXVzdCByZWFkIHdpdGgKLQkgKiB0aGUgYXR0 bm8gb2YgdGhlIGxlYWYgcGFydGl0aW9uIGJlaW5nIHVwZGF0ZWQuCi0JICovCi0KLQlyYW5nZUF0 dG5vID0gZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm87Ci0JaWYgKHJlc3VsdFJlbElu Zm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvKQotCQltYXAgPSBFeGVjR2V0Q2hpbGRUb1Jvb3RNYXAo cmVzdWx0UmVsSW5mbyk7Ci0JaWYgKG1hcCAhPSBOVUxMKQotCQlyYW5nZUF0dG5vID0gbWFwLT5h dHRyTWFwLT5hdHRudW1zW3JhbmdlQXR0bm8gLSAxXTsKIAlzbG90X2dldGFsbGF0dHJzKG9sZHR1 cGxlU2xvdCk7CiAKLQlpZiAob2xkdHVwbGVTbG90LT50dHNfaXNudWxsW3JhbmdlQXR0bm8gLSAx XSkKKwkvKiBHZXQgdGhlIG9sZCByYW5nZSBvZiB0aGUgcmVjb3JkIGJlaW5nIHVwZGF0ZWQvZGVs ZXRlZC4gKi8KKworCWlmIChvbGR0dXBsZVNsb3QtPnR0c19pc251bGxbZnBvU3RhdGUtPmZwX3Jh bmdlQXR0bm8gLSAxXSkKIAkJZWxvZyhFUlJPUiwgImZvdW5kIGEgTlVMTCByYW5nZSBpbiBhIHRl bXBvcmFsIHRhYmxlIik7Ci0Jb2xkUmFuZ2UgPSBvbGR0dXBsZVNsb3QtPnR0c192YWx1ZXNbcmFu Z2VBdHRubyAtIDFdOworCW9sZFJhbmdlID0gb2xkdHVwbGVTbG90LT50dHNfdmFsdWVzW2Zwb1N0 YXRlLT5mcF9yYW5nZUF0dG5vIC0gMV07CiAKIAkvKgogCSAqIEdldCB0aGUgcmFuZ2UncyB0eXBl IGNhY2hlIGVudHJ5LiBUaGlzIGlzIHdvcnRoIGNhY2hpbmcgZm9yIHRoZSB3aG9sZQpAQCAtMTUy NywxMiArMTQ5MywyMCBAQCBFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKE1vZGlmeVRhYmxlQ29u dGV4dCAqY29udGV4dCwKIAlmY2luZm8tPmFyZ3NbMV0uaXNudWxsID0gZmFsc2U7CiAKIAkvKgot CSAqIElmIHRoZXJlIGFyZSBwYXJ0aXRpb25zLCB3ZSBtdXN0IGluc2VydCBpbnRvIHRoZSByb290 IHRhYmxlLCBzbyB3ZSBnZXQKLQkgKiB0dXBsZSByb3V0aW5nLiBXZSBhbHJlYWR5IHNldCB1cCBs ZWZ0b3ZlclNsb3Qgd2l0aCB0aGUgcm9vdCB0dXBsZQotCSAqIGRlc2NyaXB0b3IuCisJICogRm9y IHBhcnRpdGlvbmVkIHRhYmxlcywgd2UgbXVzdCByZWFkIGxlZnRvdmVycyB3aXRoIHRoZSB0dXBs ZSBkZXNjcmlwdG9yCisJICogb2YgdGhlIGNoaWxkIHRhYmxlLCBidXQgaW5zZXJ0IGludG8gdGhl IHJvb3QgdGFibGUgdG8gZW5hYmxlIHR1cGxlCisJICogcm91dGluZy4gIFNvIGxlZnRvdmVyU2xv dCBpcyBjb25maWd1cmVkIHdpdGggdGhlIHJvb3QncyB0dXBsZQorCSAqIGRlc2NyaXB0b3IuICBI b3dldmVyLCBmb3IgdHJhZGl0aW9uYWwgdGFibGUgaW5oZXJpdGFuY2UsIHdlIGRvbid0IG5lZWQK KwkgKiB0dXBsZSByb3V0aW5nIGFuZCBqdXN0IGluc2VydCBkaXJlY3RseSBpbnRvIHRoZSBjaGls ZCB0YWJsZSB0byBwcmVzZXJ2ZQorCSAqIGNoaWxkLXNwZWNpZmljIGNvbHVtbnMuICBJbiB0aGF0 IGNhc2UsIGxlZnRvdmVyU2xvdCB1c2VzIHRoZSBjaGlsZCdzCisJICogKHJlc3VsdFJlbEluZm8p IHR1cGxlIGRlc2NyaXB0b3IuCiAJICovCi0JaWYgKHJlc3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1 bHRSZWxJbmZvKQorCWlmIChyb290UmVsSW5mbyAmJgorCQlyb290UmVsSW5mby0+cmlfUmVsYXRp b25EZXNjLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKKwl7 CisJCW1hcCA9IEV4ZWNHZXRDaGlsZFRvUm9vdE1hcChyZXN1bHRSZWxJbmZvKTsKIAkJcmVzdWx0 UmVsSW5mbyA9IHJlc3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvOworCX0KIAogCS8q CiAJICogSW5zZXJ0IGEgbGVmdG92ZXIgZm9yIGVhY2ggdmFsdWUgcmV0dXJuZWQgYnkgdGhlIHdp dGhvdXRfcG9ydGlvbiBoZWxwZXIKQEAgLTE2MDEsOCArMTU3NSw5IEBAIEV4ZWNGb3JQb3J0aW9u T2ZMZWZ0b3ZlcnMoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAogCQkJZGlkSW5pdCA9IHRy dWU7CiAJCX0KIAotCQlsZWZ0b3ZlclNsb3QtPnR0c192YWx1ZXNbZm9yUG9ydGlvbk9mLT5yYW5n ZVZhci0+dmFyYXR0bm8gLSAxXSA9IGxlZnRvdmVyOwotCQlsZWZ0b3ZlclNsb3QtPnR0c19pc251 bGxbZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm8gLSAxXSA9IGZhbHNlOworCQlsZWZ0 b3ZlclNsb3QtPnR0c192YWx1ZXNbcmVzdWx0UmVsSW5mby0+cmlfZm9yUG9ydGlvbk9mLT5mcF9y YW5nZUF0dG5vIC0gMV0gPSBsZWZ0b3ZlcjsKKwkJbGVmdG92ZXJTbG90LT50dHNfaXNudWxsW3Jl c3VsdFJlbEluZm8tPnJpX2ZvclBvcnRpb25PZi0+ZnBfcmFuZ2VBdHRubyAtIDFdID0gZmFsc2U7 CisKIAkJRXhlY01hdGVyaWFsaXplU2xvdChsZWZ0b3ZlclNsb3QpOwogCiAJCS8qCkBAIC00Nzc3 LDYgKzQ3NTIsMTggQEAgRXhlY01vZGlmeVRhYmxlKFBsYW5TdGF0ZSAqcHN0YXRlKQogCQkJCQkJ CQkJCQkJCQkgZmFsc2UsIHRydWUpOwogCQl9CiAKKwkJLyoKKwkJICogSWYgd2UgZG9uJ3QgaGF2 ZSBhIEZvclBvcnRpb25PZlN0YXRlIHlldCwgd2UgbXVzdCBiZSBhIHBhcnRpdGlvbgorCQkgKiBj aGlsZCBiZWluZyBoaXQgZm9yIHRoZSBmaXJzdCB0aW1lLiBNYWtlIGEgY29weSBmcm9tIHRoZSBy b290LCB3aXRoCisJCSAqIG91ciBvd24gVHVwbGVUYWJsZVNsb3QuIFdlIGRvIHRoaXMgbGF6aWx5 IHNvIHRoYXQgd2UgZG9uJ3QgcGF5IHRoZQorCQkgKiBwcmljZSBvZiB1bnVzZWQgcGFydGl0aW9u cy4KKwkJICovCisJCWlmICgoKChNb2RpZnlUYWJsZSAqKSBjb250ZXh0Lm10c3RhdGUtPnBzLnBs YW4pLT5mb3JQb3J0aW9uT2YpICYmCisJCQkhcmVzdWx0UmVsSW5mby0+cmlfZm9yUG9ydGlvbk9m KQorCQl7CisJCQlFeGVjSW5pdEZvclBvcnRpb25PZihjb250ZXh0Lm10c3RhdGUsIGVzdGF0ZSwg cmVzdWx0UmVsSW5mbyk7CisJCX0KKwogCQkvKgogCQkgKiBJZiByZXN1bHRSZWxJbmZvLT5yaV91 c2VzRmR3RGlyZWN0TW9kaWZ5IGlzIHRydWUsIGFsbCB3ZSBuZWVkIHRvIGRvCiAJCSAqIGhlcmUg aXMgY29tcHV0ZSB0aGUgUkVUVVJOSU5HIGV4cHJlc3Npb25zLgpAQCAtNTg2MCwzICs1ODQ3LDY3 IEBAIEV4ZWNSZVNjYW5Nb2RpZnlUYWJsZShNb2RpZnlUYWJsZVN0YXRlICpub2RlKQogCSAqLwog CWVsb2coRVJST1IsICJFeGVjUmVTY2FuTW9kaWZ5VGFibGUgaXMgbm90IGltcGxlbWVudGVkIik7 CiB9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqCQlFeGVjSW5pdEZvclBvcnRpb25PZgorICoKKyAqCQlJbml0 aWFsaXplcyByZXN1bHRSZWxJbmZvLT5yaV9mb3JQb3J0aW9uT2YgZm9yIGNoaWxkIHRhYmxlcy4K KyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqLworc3RhdGljIHZvaWQKK0V4ZWNJbml0Rm9yUG9ydGlvbk9mKE1vZGlm eVRhYmxlU3RhdGUgKm10c3RhdGUsIEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZXN1 bHRSZWxJbmZvKQoreworCU1lbW9yeUNvbnRleHQgb2xkY3h0OworCUZvclBvcnRpb25PZlN0YXRl ICpsZWFmU3RhdGU7CisJUmVzdWx0UmVsSW5mbyAqcm9vdFJlbEluZm8gPSBtdHN0YXRlLT5yb290 UmVzdWx0UmVsSW5mbzsKKwlGb3JQb3J0aW9uT2ZTdGF0ZSAqZnBvU3RhdGU7CisKKwlpZiAoIXJv b3RSZWxJbmZvKQorCQllbG9nKEVSUk9SLCAibm8gcm9vdCByZWxhdGlvbiBidXQgcmlfZm9yUG9y dGlvbk9mIGlzIHVuaW5pdGlhbGl6ZWQiKTsKKworCWZwb1N0YXRlID0gbXRzdGF0ZS0+cm9vdFJl c3VsdFJlbEluZm8tPnJpX2ZvclBvcnRpb25PZjsKKworCS8qIFRoaW5ncyBidWlsdCBoZXJlIGhh dmUgdG8gbGFzdCBmb3IgdGhlIHF1ZXJ5IGR1cmF0aW9uLiAqLworCW9sZGN4dCA9IE1lbW9yeUNv bnRleHRTd2l0Y2hUbyhlc3RhdGUtPmVzX3F1ZXJ5X2N4dCk7CisKKwlsZWFmU3RhdGUgPSBtYWtl Tm9kZShGb3JQb3J0aW9uT2ZTdGF0ZSk7CisKKwlsZWFmU3RhdGUtPmZwX3JhbmdlTmFtZSA9IGZw b1N0YXRlLT5mcF9yYW5nZU5hbWU7CisJbGVhZlN0YXRlLT5mcF9yYW5nZVR5cGUgPSBmcG9TdGF0 ZS0+ZnBfcmFuZ2VUeXBlOworCWxlYWZTdGF0ZS0+ZnBfdGFyZ2V0UmFuZ2UgPSBmcG9TdGF0ZS0+ ZnBfdGFyZ2V0UmFuZ2U7CisKKwkvKgorCSAqIEZvciBwYXJ0aXRpb25lZCB0YWJsZXMgd2UgbXVz dCByZWFkIHRoZSBsZWZ0b3ZlcnMgdXNpbmcgdGhlIGNoaWxkIHRhYmxlJ3MKKwkgKiB0dXBsZSBk ZXNjcmlwdG9yLCBidXQgdGhlbiBpbnNlcnQgdGhlbSBpbnRvIHRoZSByb290IHRhYmxlICh1c2lu ZyBpdHMKKwkgKiB0dXBsZSBkZXNjcmlwdG9yKSBzbyB3ZSBnZXQgdHVwbGUgcm91dGluZy4KKwkg KgorCSAqIEZvciB0cmFkaXRpb25hbCB0YWJsZSBpbmhlcml0YW5jZSwgd2UgcmVhZCBhbmQgaW5z ZXJ0IGRpcmVjdGx5IGludG8gdGhpcworCSAqIHJlc3VsdFJlbEluZm87IG5vIHR1cGxlIHJvdXRp bmcgdG8gdGhlIHBhcmVudCBpcyByZXF1aXJlZC4KKwkgKi8KKwlpZiAocm9vdFJlbEluZm8tPnJp X1JlbGF0aW9uRGVzYy0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFC TEUpCisJeworCQlUdXBsZUNvbnZlcnNpb25NYXAgKm1hcCA9IEV4ZWNHZXRDaGlsZFRvUm9vdE1h cChyZXN1bHRSZWxJbmZvKTsKKwkJaWYgKG1hcCkKKwkJCWxlYWZTdGF0ZS0+ZnBfcmFuZ2VBdHRu byA9IG1hcC0+YXR0ck1hcC0+YXR0bnVtc1tmcG9TdGF0ZS0+ZnBfcmFuZ2VBdHRubyAtIDFdOwor CQllbHNlCisJCQlsZWFmU3RhdGUtPmZwX3JhbmdlQXR0bm8gPSBmcG9TdGF0ZS0+ZnBfcmFuZ2VB dHRubzsKKwkJbGVhZlN0YXRlLT5mcF9MZWZ0b3ZlciA9IGZwb1N0YXRlLT5mcF9MZWZ0b3ZlcjsK Kwl9CisJZWxzZQorCXsKKwkJbGVhZlN0YXRlLT5mcF9yYW5nZUF0dG5vID0gZnBvU3RhdGUtPmZw X3JhbmdlQXR0bm87CisJCWxlYWZTdGF0ZS0+ZnBfTGVmdG92ZXIgPQorCQkJRXhlY0luaXRFeHRy YVR1cGxlU2xvdChtdHN0YXRlLT5wcy5zdGF0ZSwKKwkJCQkJCQkJICAgUmVsYXRpb25HZXREZXNj cihyZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MpLAorCQkJCQkJCQkgICAmVFRTT3BzVmly dHVhbCk7CisJfQorCisJLyogRWFjaCBwYXJ0aXRpb24gbmVlZHMgYSBzbG90IG1hdGNoaW5nIGl0 cyB0dXBsZSBkZXNjcmlwdG9yICovCisJbGVhZlN0YXRlLT5mcF9FeGlzdGluZyA9CisJCXRhYmxl X3Nsb3RfY3JlYXRlKHJlc3VsdFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYywKKwkJCQkJCSAgJm10 c3RhdGUtPnBzLnN0YXRlLT5lc190dXBsZVRhYmxlKTsKKworCXJlc3VsdFJlbEluZm8tPnJpX2Zv clBvcnRpb25PZiA9IGxlYWZTdGF0ZTsKKworCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQp OworfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCAxMzM1OTE4MGQyNS4uNTNjMTM4MzEwZGIgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRl L25vZGVzL2V4ZWNub2Rlcy5oCkBAIC00NzcsNyArNDc3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgRm9y UG9ydGlvbk9mU3RhdGUKIAlOb2RlVGFnCQl0eXBlOwogCiAJY2hhcgkgICAqZnBfcmFuZ2VOYW1l OwkvKiB0aGUgY29sdW1uIG5hbWVkIGluIEZPUiBQT1JUSU9OIE9GICovCi0JT2lkCQkJZnBfcmFu Z2VUeXBlOwkvKiB0aGUgdHlwZSBvZiB0aGUgRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbiAqLwor CU9pZAkJCWZwX3JhbmdlVHlwZTsJLyogdGhlIGJhc2UgdHlwZSAobm90IGRvbWFpbikgb2YgdGhl IEZPUgorCQkJCQkJCQkgKiBQT1JUSU9OIE9GIGV4cHJlc3Npb24gKi8KIAlpbnQJCQlmcF9yYW5n ZUF0dG5vOwkvKiB0aGUgYXR0bm8gb2YgdGhlIHJhbmdlIGNvbHVtbiAqLwogCURhdHVtCQlmcF90 YXJnZXRSYW5nZTsgLyogdGhlIHJhbmdlL211bHRpcmFuZ2UgZnJvbSBGT1IgUE9SVElPTiBPRiAq LwogCVR5cGVDYWNoZUVudHJ5ICpmcF9sZWZ0b3ZlcnN0eXBjYWNoZTsJLyogdHlwZSBjYWNoZSBl bnRyeSBvZiB0aGUgcmFuZ2UgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZm9yX3BvcnRpb25fb2Yub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9y dGlvbl9vZi5vdXQKaW5kZXggMGMwYTIwNWM0NGIuLjkxMjQxNDYzOTkxIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dApAQCAtMTM2NSw2ICsxMzY1LDkg QEAgJCQ7CiBDUkVBVEUgVFJJR0dFUiBmcG9fYmVmb3JlX3N0bXQKICAgQkVGT1JFIElOU0VSVCBP UiBVUERBVEUgT1IgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKICAgRk9SIEVBQ0ggU1RB VEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcihmYWxzZSwgZmFsc2UpOworQ1JF QVRFIFRSSUdHRVIgZnBvX2JlZm9yZV9zdG10MQorICBCRUZPUkUgVVBEQVRFIE9GIHZhbGlkX2F0 IE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJP Q0VEVVJFIGR1bXBfdHJpZ2dlcihmYWxzZSwgZmFsc2UpOwogQ1JFQVRFIFRSSUdHRVIgZnBvX2Fm dGVyX2luc2VydF9zdG10CiAgIEFGVEVSIElOU0VSVCBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CiAg IEZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoZmFsc2Us IGZhbHNlKTsKQEAgLTEzNzgsNiArMTM4MSw5IEBAIENSRUFURSBUUklHR0VSIGZwb19hZnRlcl9k ZWxldGVfc3RtdAogQ1JFQVRFIFRSSUdHRVIgZnBvX2JlZm9yZV9yb3cKICAgQkVGT1JFIElOU0VS VCBPUiBVUERBVEUgT1IgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKICAgRk9SIEVBQ0gg Uk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcihmYWxzZSwgZmFsc2UpOworQ1JFQVRF IFRSSUdHRVIgZnBvX2JlZm9yZV9yb3cxCisgIEJFRk9SRSBVUERBVEUgT0YgdmFsaWRfYXQgT04g Zm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgZHVt cF90cmlnZ2VyKGZhbHNlLCBmYWxzZSk7CiBDUkVBVEUgVFJJR0dFUiBmcG9fYWZ0ZXJfaW5zZXJ0 X3JvdwogICBBRlRFUiBJTlNFUlQgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAogICBGT1IgRUFDSCBS T1cgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90cmlnZ2VyKGZhbHNlLCBmYWxzZSk7CkBAIC0xMzk0 LDkgKzE0MDAsMTUgQEAgVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKIE5PVElDRTogIGZwb19i ZWZvcmVfc3RtdDogQkVGT1JFIFVQREFURSBTVEFURU1FTlQ6CiBOT1RJQ0U6ICAgIG9sZDogPE5V TEw+CiBOT1RJQ0U6ICAgIG5ldzogPE5VTEw+CitOT1RJQ0U6ICBmcG9fYmVmb3JlX3N0bXQxOiBC RUZPUkUgVVBEQVRFIFNUQVRFTUVOVDoKK05PVElDRTogICAgb2xkOiA8TlVMTD4KK05PVElDRTog ICAgbmV3OiA8TlVMTD4KIE5PVElDRTogIGZwb19iZWZvcmVfcm93OiBCRUZPUkUgVVBEQVRFIFJP VzoKIE5PVElDRTogICAgb2xkOiBbMjAxOS0wMS0wMSwyMDMwLTAxLTAxKQogTk9USUNFOiAgICBu ZXc6IFsyMDIxLTAxLTAxLDIwMjItMDEtMDEpCitOT1RJQ0U6ICBmcG9fYmVmb3JlX3JvdzE6IEJF Rk9SRSBVUERBVEUgUk9XOgorTk9USUNFOiAgICBvbGQ6IFsyMDE5LTAxLTAxLDIwMzAtMDEtMDEp CitOT1RJQ0U6ICAgIG5ldzogWzIwMjEtMDEtMDEsMjAyMi0wMS0wMSkKIE5PVElDRTogIGZwb19i ZWZvcmVfc3RtdDogQkVGT1JFIElOU0VSVCBTVEFURU1FTlQ6CiBOT1RJQ0U6ICAgIG9sZDogPE5V TEw+CiBOT1RJQ0U6ICAgIG5ldzogPE5VTEw+CkBAIC0xOTg2LDYgKzE5OTgsNyBAQCBTRUxFQ1Qg KiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIERST1Ag VEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDI7CiBEUk9QIFRZUEUgbXlkYXRlcmFuZ2U7CiAtLSBU ZXN0IEZPUiBQT1JUSU9OIE9GIGFnYWluc3QgYSBwYXJ0aXRpb25lZCB0YWJsZS4KKy0tIEluY2x1 ZGUgYSBHRU5FUkFURUQgU1RPUkVEIGNvbHVtbiB0byB0ZXN0IHVwZGF0ZWRDb2xzIGNvbHVtbiBt YXBwaW5nLgogLS0gdGVtcG9yYWxfcGFydGl0aW9uZWRfMSBoYXMgdGhlIHNhbWUgYXR0bnVtcyBh cyB0aGUgcm9vdAogLS0gdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBoYXMgdGhlIGRpZmZlcmVudCBh dHRudW1zIGZyb20gdGhlIHJvb3QKIC0tIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgaGFzIHRoZSBk aWZmZXJlbnQgYXR0bnVtcyB0b28sIGJ1dCByZXZlcnNlZApAQCAtMTk5MywyOSArMjAwNiwzNCBA QCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgKAogICBpZCBpbnQ0cmFuZ2UsCiAg IHZhbGlkX2F0IGRhdGVyYW5nZSwKICAgbmFtZSB0ZXh0LAorICByYW5nZV9sZW4gaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKHVwcGVyKHZhbGlkX2F0KSAtIGxvd2VyKHZhbGlkX2F0KSkgU1RPUkVE LAogICBDT05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfdXEgVU5JUVVFIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKICkgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKIENSRUFURSBU QUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8xIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRp b25lZCBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzIsMyknKTsKIENSRUFURSBUQUJMRSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF8zIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1Ig VkFMVUVTIElOICgnWzMsNCknLCAnWzQsNSknKTsKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF81IFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElO ICgnWzUsNiknLCAnWzYsNyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIERF VEFDSCBQQVJUSVRJT04gdGVtcG9yYWxfcGFydGl0aW9uZWRfMzsKLUFMVEVSIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkXzMgRFJPUCBDT0xVTU4gaWQsIERST1AgQ09MVU1OIHZhbGlkX2F0Owor QUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBEUk9QIENPTFVNTiBpZCwgRFJPUCBD T0xVTU4gdmFsaWRfYXQgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gY29sdW1u IHJhbmdlX2xlbiBvZiB0YWJsZSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zCiBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIEFERCBDT0xVTU4gaWQgaW50NHJhbmdlIE5PVCBOVUxMLCBB REQgQ09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkXzMgQUREIENPTFVNTiByYW5nZV9sZW4gaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKHVwcGVyKHZhbGlkX2F0KSAtIGxvd2VyKHZhbGlkX2F0KSkgU1RPUkVEOwogQUxURVIg VEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF8zIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOwogQUxURVIgVEFCTEUg dGVtcG9yYWxfcGFydGl0aW9uZWQgREVUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF81OwotQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBEUk9QIENPTFVNTiBpZCwg RFJPUCBDT0xVTU4gdmFsaWRfYXQ7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81 IERST1AgQ09MVU1OIGlkLCBEUk9QIENPTFVNTiB2YWxpZF9hdCBDQVNDQURFOworTk9USUNFOiAg ZHJvcCBjYXNjYWRlcyB0byBjb2x1bW4gcmFuZ2VfbGVuIG9mIHRhYmxlIHRlbXBvcmFsX3BhcnRp dGlvbmVkXzUKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgQUREIENPTFVNTiB2 YWxpZF9hdCBkYXRlcmFuZ2UgTk9UIE5VTEwsIEFERCBDT0xVTU4gaWQgaW50NHJhbmdlIE5PVCBO VUxMOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBBREQgQ09MVU1OIHJhbmdl X2xlbiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAodXBwZXIodmFsaWRfYXQpIC0gbG93ZXIodmFs aWRfYXQpKSBTVE9SRUQ7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBBVFRBQ0gg UEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgRk9SIFZBTFVFUyBJTiAoJ1s1LDYpJywg J1s2LDcpJyk7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoaWQsIHZhbGlkX2F0 LCBuYW1lKSBWQUxVRVMKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEw LTAxLTAxJyksICdvbmUnKSwKICAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcy MDEwLTAxLTAxJyksICd0aHJlZScpLAogICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAx JywgJzIwMTAtMDEtMDEnKSwgJ2ZpdmUnKTsKIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWQ7Ci0gIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAotLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KLSBbMSwyKSB8IFsyMDAwLTAxLTAx LDIwMTAtMDEtMDEpIHwgb25lCi0gWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRo cmVlCi0gWzUsNikgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IGZpdmUKKyAgaWQgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgfCByYW5nZV9sZW4gCistLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxLDIpIHwgWzIwMDAt MDEtMDEsMjAxMC0wMS0wMSkgfCBvbmUgICB8ICAgICAgMzY1MworIFszLDQpIHwgWzIwMDAtMDEt MDEsMjAxMC0wMS0wMSkgfCB0aHJlZSB8ICAgICAgMzY1MworIFs1LDYpIHwgWzIwMDAtMDEtMDEs MjAxMC0wMS0wMSkgfCBmaXZlICB8ICAgICAgMzY1MwogKDMgcm93cykKIAogLS0gVXBkYXRlIHdp dGhvdXQgbW92aW5nIHdpdGhpbiBwYXJ0aXRpb24gMQpAQCAtMjA0Niw1NCArMjA2NCw1NCBAQCBV UERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAwMC0wNi0wMScgVE8gJzIwMDAtMAogICAgICAgaWQgPSAnWzMsNCknCiAgIFdIRVJFIGlkID0g J1s1LDYpJzsKIC0tIFVwZGF0ZSBhbGwgcGFydGl0aW9ucyBhdCBvbmNlIChlYWNoIHdpdGggbGVm dG92ZXJzKQotU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7Ci0gIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8ICBuYW1lICAgCi0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCi0gWzEsMikgfCBbMjAw MC0wMS0wMSwyMDAwLTAzLTAxKSB8IG9uZQotIFsxLDIpIHwgWzIwMDAtMDMtMDEsMjAwMC0wNC0w MSkgfCBvbmVeMQotIFsxLDIpIHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkgfCBvbmUKLSBbMSwy KSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwgb25lCi0gWzIsMykgfCBbMjAwMC0wNi0wMSwy MDAwLTA3LTAxKSB8IHRocmVlXjIKLSBbMyw0KSB8IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwg dGhyZWUKLSBbMyw0KSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEpIHwgdGhyZWVeMQotIFszLDQp IHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkgfCB0aHJlZQotIFszLDQpIHwgWzIwMDAtMDYtMDEs MjAwMC0wNy0wMSkgfCBmaXZlXjIKLSBbMyw0KSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwg dGhyZWUKLSBbNCw1KSB8IFsyMDAwLTA2LTAxLDIwMDAtMDctMDEpIHwgb25lXjIKLSBbNSw2KSB8 IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgZml2ZQotIFs1LDYpIHwgWzIwMDAtMDMtMDEsMjAw MC0wNC0wMSkgfCBmaXZlXjEKLSBbNSw2KSB8IFsyMDAwLTA0LTAxLDIwMDAtMDYtMDEpIHwgZml2 ZQotIFs1LDYpIHwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkgfCBmaXZlCitTRUxFQ1QgKiwgdXBw ZXIodmFsaWRfYXQpIC0gbG93ZXIodmFsaWRfYXQpIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCAgbmFtZSAgIHwgcmFuZ2VfbGVuIHwgP2NvbHVtbj8gCistLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBbMSwyKSB8IFsy MDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgb25lICAgICB8ICAgICAgICA2MCB8ICAgICAgIDYwCisg WzEsMikgfCBbMjAwMC0wMy0wMSwyMDAwLTA0LTAxKSB8IG9uZV4xICAgfCAgICAgICAgMzEgfCAg ICAgICAzMQorIFsxLDIpIHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkgfCBvbmUgICAgIHwgICAg ICAgIDYxIHwgICAgICAgNjEKKyBbMSwyKSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwgb25l ICAgICB8ICAgICAgMzQ3MSB8ICAgICAzNDcxCisgWzIsMykgfCBbMjAwMC0wNi0wMSwyMDAwLTA3 LTAxKSB8IHRocmVlXjIgfCAgICAgICAgMzAgfCAgICAgICAzMAorIFszLDQpIHwgWzIwMDAtMDEt MDEsMjAwMC0wMy0wMSkgfCB0aHJlZSAgIHwgICAgICAgIDYwIHwgICAgICAgNjAKKyBbMyw0KSB8 IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEpIHwgdGhyZWVeMSB8ICAgICAgICAzMSB8ICAgICAgIDMx CisgWzMsNCkgfCBbMjAwMC0wNC0wMSwyMDAwLTA2LTAxKSB8IHRocmVlICAgfCAgICAgICAgNjEg fCAgICAgICA2MQorIFszLDQpIHwgWzIwMDAtMDYtMDEsMjAwMC0wNy0wMSkgfCBmaXZlXjIgIHwg ICAgICAgIDMwIHwgICAgICAgMzAKKyBbMyw0KSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwg dGhyZWUgICB8ICAgICAgMzQ3MSB8ICAgICAzNDcxCisgWzQsNSkgfCBbMjAwMC0wNi0wMSwyMDAw LTA3LTAxKSB8IG9uZV4yICAgfCAgICAgICAgMzAgfCAgICAgICAzMAorIFs1LDYpIHwgWzIwMDAt MDEtMDEsMjAwMC0wMy0wMSkgfCBmaXZlICAgIHwgICAgICAgIDYwIHwgICAgICAgNjAKKyBbNSw2 KSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEpIHwgZml2ZV4xICB8ICAgICAgICAzMSB8ICAgICAg IDMxCisgWzUsNikgfCBbMjAwMC0wNC0wMSwyMDAwLTA2LTAxKSB8IGZpdmUgICAgfCAgICAgICAg NjEgfCAgICAgICA2MQorIFs1LDYpIHwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkgfCBmaXZlICAg IHwgICAgICAzNDcxIHwgICAgIDM0NzEKICgxNSByb3dzKQogCiBTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkXzEgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwotICBpZCAgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCAgbmFtZSAgIAotLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLQotIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAwMC0wMy0wMSkgfCBvbmUK LSBbMSwyKSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEpIHwgb25lXjEKLSBbMSwyKSB8IFsyMDAw LTA0LTAxLDIwMDAtMDYtMDEpIHwgb25lCi0gWzEsMikgfCBbMjAwMC0wNy0wMSwyMDEwLTAxLTAx KSB8IG9uZQotIFsyLDMpIHwgWzIwMDAtMDYtMDEsMjAwMC0wNy0wMSkgfCB0aHJlZV4yCisgIGlk ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8ICBuYW1lICAgfCByYW5nZV9sZW4gCistLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEs MikgfCBbMjAwMC0wMS0wMSwyMDAwLTAzLTAxKSB8IG9uZSAgICAgfCAgICAgICAgNjAKKyBbMSwy KSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEpIHwgb25lXjEgICB8ICAgICAgICAzMQorIFsxLDIp IHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkgfCBvbmUgICAgIHwgICAgICAgIDYxCisgWzEsMikg fCBbMjAwMC0wNy0wMSwyMDEwLTAxLTAxKSB8IG9uZSAgICAgfCAgICAgIDM0NzEKKyBbMiwzKSB8 IFsyMDAwLTA2LTAxLDIwMDAtMDctMDEpIHwgdGhyZWVeMiB8ICAgICAgICAzMAogKDUgcm93cykK IAogU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKLSAgbmFtZSAgIHwgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKLS0tLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB0aHJlZSAgIHwgWzMsNCkg fCBbMjAwMC0wMS0wMSwyMDAwLTAzLTAxKQotIHRocmVlXjEgfCBbMyw0KSB8IFsyMDAwLTAzLTAx LDIwMDAtMDQtMDEpCi0gdGhyZWUgICB8IFszLDQpIHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkK LSBmaXZlXjIgIHwgWzMsNCkgfCBbMjAwMC0wNi0wMSwyMDAwLTA3LTAxKQotIHRocmVlICAgfCBb Myw0KSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpCi0gb25lXjIgICB8IFs0LDUpIHwgWzIwMDAt MDYtMDEsMjAwMC0wNy0wMSkKKyAgbmFtZSAgIHwgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHJhbmdlX2xlbiAKKy0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyB0aHJlZSAgIHwgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDAwLTAz LTAxKSB8ICAgICAgICA2MAorIHRocmVlXjEgfCBbMyw0KSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQt MDEpIHwgICAgICAgIDMxCisgdGhyZWUgICB8IFszLDQpIHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0w MSkgfCAgICAgICAgNjEKKyBmaXZlXjIgIHwgWzMsNCkgfCBbMjAwMC0wNi0wMSwyMDAwLTA3LTAx KSB8ICAgICAgICAzMAorIHRocmVlICAgfCBbMyw0KSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEp IHwgICAgICAzNDcxCisgb25lXjIgICB8IFs0LDUpIHwgWzIwMDAtMDYtMDEsMjAwMC0wNy0wMSkg fCAgICAgICAgMzAKICg2IHJvd3MpCiAKIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfNSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Ci0gIG5hbWUgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCAgaWQgICAKLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LQotIGZpdmUgICB8IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgWzUsNikKLSBmaXZlXjEgfCBb MjAwMC0wMy0wMSwyMDAwLTA0LTAxKSB8IFs1LDYpCi0gZml2ZSAgIHwgWzIwMDAtMDQtMDEsMjAw MC0wNi0wMSkgfCBbNSw2KQotIGZpdmUgICB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwgWzUs NikKKyAgbmFtZSAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8ICBpZCAgIHwgcmFuZ2VfbGVu IAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0t CisgZml2ZSAgIHwgWzIwMDAtMDEtMDEsMjAwMC0wMy0wMSkgfCBbNSw2KSB8ICAgICAgICA2MAor IGZpdmVeMSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEpIHwgWzUsNikgfCAgICAgICAgMzEKKyBm aXZlICAgfCBbMjAwMC0wNC0wMSwyMDAwLTA2LTAxKSB8IFs1LDYpIHwgICAgICAgIDYxCisgZml2 ZSAgIHwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkgfCBbNSw2KSB8ICAgICAgMzQ3MQogKDQgcm93 cykKIAogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKQEAgLTIxNTIsNCArMjE3MCwx MTUgQEAgU0VMRUNUICogRlJPTSBmcG9fcnVsZSBPUkRFUiBCWSBmMTsKICgyIHJvd3MpCiAKIERS T1AgVEFCTEUgZnBvX3J1bGU7CistLSBVUERBVEUgRk9SIFBPUlRJT04gT0Ygd2l0aCBnZW5lcmF0 ZWQgc3RvcmVkIGNvbHVtbnMKKy0tIFRoZSBnZW5lcmF0ZWQgY29sdW1uIGRlcGVuZHMgb24gdGhl IHJhbmdlIGNvbHVtbiwgc28gaXQgbXVzdCBiZQorLS0gcmVjb21wdXRlZCB3aGVuIEZPUiBQT1JU SU9OIE9GIG5hcnJvd3MgdGhlIHJhbmdlLgorQ1JFQVRFIFRBQkxFIGZwb19nZW5lcmF0ZWQgKAor ICBpZCBpbnQsCisgIHZhbGlkX2F0IGludDRyYW5nZSwKKyAgcmFuZ2VfbGVuIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTICh1cHBlcih2YWxpZF9hdCkgLSBsb3dlcih2YWxpZF9hdCkpIFNUT1JFRCwK KyAgcmFuZ2VfbGVudiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAodXBwZXIodmFsaWRfYXQpIC0g bG93ZXIodmFsaWRfYXQpKQorKTsKK0lOU0VSVCBJTlRPIGZwb19nZW5lcmF0ZWQgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgxLCAnWzEwLDEwMCknKTsKK1NFTEVDVCAqIEZST00gZnBvX2dlbmVyYXRl ZCBPUkRFUiBCWSB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2F0IHwgcmFuZ2VfbGVuIHwgcmFuZ2Vf bGVudiAKKy0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyAgMSB8IFsx MCwxMDApIHwgICAgICAgIDkwIHwgICAgICAgICA5MAorKDEgcm93KQorCitDUkVBVEUgVFJJR0dF UiBmcG9fYmVmb3JlX3JvdzEKKyAgQkVGT1JFIFVQREFURSBPRiB2YWxpZF9hdCBPTiBmcG9fZ2Vu ZXJhdGVkCisgIEZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoZmFs c2UsIGZhbHNlKTsKK0NSRUFURSBUUklHR0VSIGZwb19iZWZvcmVfcm93MgorICBCRUZPUkUgVVBE QVRFIE9GIHZhbGlkX2F0IE9OIGZwb19nZW5lcmF0ZWQKKyAgRk9SIEVBQ0ggU1RBVEVNRU5UIEVY RUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcihmYWxzZSwgZmFsc2UpOworLS0gQWZ0ZXIgdGhl IEZPUiBQT1JUSU9OIE9GIChGUE8pIHVwZGF0ZSwgYWxsIHRocmVlIHJlc3VsdGluZyByb3dzCist LSAobGVmdG92ZXItYmVmb3JlLCB1cGRhdGVkLCBhbmQgbGVmdG92ZXItYWZ0ZXIpIG11c3QgY29u dGFpbiB0aGUgY29ycmVjdAorLS0gdmFsdWVzIGZvciByYW5nZV9sZW4gYW5kIHJhbmdlX2xlbnYu CistLSBUcmlnZ2VycyBmcG9fYmVmb3JlX3JvdzEgYW5kIGZwb19iZWZvcmVfcm93MiBzaG91bGQg YWxzbyBiZSBmaXJlZC4KK1VQREFURSBmcG9fZ2VuZXJhdGVkCisgIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gMzAgVE8gNzAKKyAgU0VUIGlkID0gMjsKK05PVElDRTogIGZwb19iZWZvcmVf cm93MjogQkVGT1JFIFVQREFURSBTVEFURU1FTlQ6CitOT1RJQ0U6ICAgIG9sZDogPE5VTEw+CitO T1RJQ0U6ICAgIG5ldzogPE5VTEw+CitOT1RJQ0U6ICBmcG9fYmVmb3JlX3JvdzE6IEJFRk9SRSBV UERBVEUgUk9XOgorTk9USUNFOiAgICBvbGQ6IFsxMCwxMDApCitOT1RJQ0U6ICAgIG5ldzogWzMw LDcwKQorU0VMRUNUICogRlJPTSBmcG9fZ2VuZXJhdGVkIE9SREVSIEJZIHZhbGlkX2F0OworIGlk IHwgdmFsaWRfYXQgfCByYW5nZV9sZW4gfCByYW5nZV9sZW52IAorLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAxIHwgWzEwLDMwKSAgfCAgICAgICAgMjAgfCAgICAg ICAgIDIwCisgIDIgfCBbMzAsNzApICB8ICAgICAgICA0MCB8ICAgICAgICAgNDAKKyAgMSB8IFs3 MCwxMDApIHwgICAgICAgIDMwIHwgICAgICAgICAzMAorKDMgcm93cykKKworLS0gQWxzbyB0ZXN0 IHdpdGggYSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgcmVmZXJlbmNlcyBib3RoIGEgU0VUIGNvbHVt bgorLS0gYW5kIHRoZSByYW5nZSBjb2x1bW4uCitEUk9QIFRBQkxFIGZwb19nZW5lcmF0ZWQ7CitD UkVBVEUgVEFCTEUgZnBvX2dlbmVyYXRlZCAoCisgIGlkIGludCwKKyAgdmFsaWRfYXQgaW50NHJh bmdlLAorICBpZF9wbHVzX2xlbiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaWQgKyB1cHBlcih2 YWxpZF9hdCkgLSBsb3dlcih2YWxpZF9hdCkpIFNUT1JFRCwKKyAgaWRfcGx1c19sZW52IGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChpZCArIHVwcGVyKHZhbGlkX2F0KSAtIGxvd2VyKHZhbGlkX2F0 KSkKKyk7CitJTlNFUlQgSU5UTyBmcG9fZ2VuZXJhdGVkIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo MSwgJ1sxMCwxMDApJyk7CitTRUxFQ1QgKiBGUk9NIGZwb19nZW5lcmF0ZWQgT1JERVIgQlkgdmFs aWRfYXQ7CisgaWQgfCB2YWxpZF9hdCB8IGlkX3BsdXNfbGVuIHwgaWRfcGx1c19sZW52IAorLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyAgMSB8IFsxMCwxMDAp IHwgICAgICAgICAgOTEgfCAgICAgICAgICAgOTEKKygxIHJvdykKKworVVBEQVRFIGZwb19nZW5l cmF0ZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAzMCBUTyA3MAorICBTRVQgaWQg PSAyOworU0VMRUNUICogRlJPTSBmcG9fZ2VuZXJhdGVkIE9SREVSIEJZIHZhbGlkX2F0OworIGlk IHwgdmFsaWRfYXQgfCBpZF9wbHVzX2xlbiB8IGlkX3BsdXNfbGVudiAKKy0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgIDEgfCBbMTAsMzApICB8ICAgICAgICAg IDIxIHwgICAgICAgICAgIDIxCisgIDIgfCBbMzAsNzApICB8ICAgICAgICAgIDQyIHwgICAgICAg ICAgIDQyCisgIDEgfCBbNzAsMTAwKSB8ICAgICAgICAgIDMxIHwgICAgICAgICAgIDMxCisoMyBy b3dzKQorCitEUk9QIFRBQkxFIGZwb19nZW5lcmF0ZWQ7CistLSBVUERBVEUgRk9SIFBPUlRJT04g T0Ygd2l0aCB0YWJsZSBpbmhlcml0YW5jZQorLS0gTGVmdG92ZXIgcm93cyBtdXN0IHN0YXkgaW4g dGhlIGNoaWxkIHRhYmxlLCBwcmVzZXJ2aW5nIGNoaWxkLXNwZWNpZmljIGNvbHVtbnMuCitDUkVB VEUgVEFCTEUgZnBvX2luaF9wYXJlbnQgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRh dGVyYW5nZSwKKyAgbmFtZSB0ZXh0CispOworQ1JFQVRFIFRBQkxFIGZwb19pbmhfY2hpbGQgKAor ICBkZXNjcmlwdGlvbiB0ZXh0CispIElOSEVSSVRTIChmcG9faW5oX3BhcmVudCk7CitJTlNFUlQg SU5UTyBmcG9faW5oX2NoaWxkIChpZCwgdmFsaWRfYXQsIG5hbWUsIGRlc2NyaXB0aW9uKSBWQUxV RVMKKyAgKCdbMSwyKScsICdbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKScsICdvbmUnLCAnaW5pdGlh bCcpOworLS0gVXBkYXRlIHRhcmdldHMgdGhlIHBhcmVudDsgdGhlIG1hdGNoaW5nIHJvdyBsaXZl cyBpbiB0aGUgY2hpbGQuCitVUERBVEUgZnBvX2luaF9wYXJlbnQgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wNC0wMScgVE8gJzIwMTgtMTAtMDEnCisgIFNFVCBuYW1lID0gJ29u ZV4xJzsKKy0tIEFsbCB0aHJlZSByb3dzIHNob3VsZCBiZSBpbiB0aGUgY2hpbGQsIHdpdGggZGVz Y3JpcHRpb24gcHJlc2VydmVkLgorU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGZw b19pbmhfcGFyZW50IE9SREVSIEJZIHZhbGlkX2F0OworICAgdGFibGVvaWQgICAgfCAgaWQgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBmcG9faW5oX2NoaWxkIHwgWzEs MikgfCBbMjAxOC0wMS0wMSwyMDE4LTA0LTAxKSB8IG9uZQorIGZwb19pbmhfY2hpbGQgfCBbMSwy KSB8IFsyMDE4LTA0LTAxLDIwMTgtMTAtMDEpIHwgb25lXjEKKyBmcG9faW5oX2NoaWxkIHwgWzEs MikgfCBbMjAxOC0xMC0wMSwyMDE5LTAxLTAxKSB8IG9uZQorKDMgcm93cykKKworU0VMRUNUICog RlJPTSBmcG9faW5oX2NoaWxkIE9SREVSIEJZIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZh bGlkX2F0ICAgICAgICAgfCBuYW1lICB8IGRlc2NyaXB0aW9uIAorLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwgWzIwMTgtMDEt MDEsMjAxOC0wNC0wMSkgfCBvbmUgICB8IGluaXRpYWwKKyBbMSwyKSB8IFsyMDE4LTA0LTAxLDIw MTgtMTAtMDEpIHwgb25lXjEgfCBpbml0aWFsCisgWzEsMikgfCBbMjAxOC0xMC0wMSwyMDE5LTAx LTAxKSB8IG9uZSAgIHwgaW5pdGlhbAorKDMgcm93cykKKworLS0gTm8gcm93cyBzaG91bGQgaGF2 ZSBsZWFrZWQgaW50byB0aGUgcGFyZW50LgorU0VMRUNUICogRlJPTSBPTkxZIGZwb19pbmhfcGFy ZW50IE9SREVSIEJZIHZhbGlkX2F0OworIGlkIHwgdmFsaWRfYXQgfCBuYW1lIAorLS0tLSstLS0t LS0tLS0tKy0tLS0tLQorKDAgcm93cykKKworRFJPUCBUQUJMRSBmcG9faW5oX3BhcmVudCBDQVND QURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBmcG9faW5oX2NoaWxkCiBSRVNF VCBkYXRlc3R5bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlv bl9vZi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwKaW5kZXgg ZmQ3OWE5Yjc4ZTcuLjA0ZTBkYmE2Mzc1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9mb3JfcG9ydGlvbl9vZi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRp b25fb2Yuc3FsCkBAIC05MTMsNiArOTEzLDEwIEBAIENSRUFURSBUUklHR0VSIGZwb19iZWZvcmVf c3RtdAogICBCRUZPUkUgSU5TRVJUIE9SIFVQREFURSBPUiBERUxFVEUgT04gZm9yX3BvcnRpb25f b2ZfdGVzdAogICBGT1IgRUFDSCBTVEFURU1FTlQgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90cmln Z2VyKGZhbHNlLCBmYWxzZSk7CiAKK0NSRUFURSBUUklHR0VSIGZwb19iZWZvcmVfc3RtdDEKKyAg QkVGT1JFIFVQREFURSBPRiB2YWxpZF9hdCBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBF QUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoZmFsc2UsIGZhbHNl KTsKKwogQ1JFQVRFIFRSSUdHRVIgZnBvX2FmdGVyX2luc2VydF9zdG10CiAgIEFGVEVSIElOU0VS VCBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CiAgIEZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBS T0NFRFVSRSBkdW1wX3RyaWdnZXIoZmFsc2UsIGZhbHNlKTsKQEAgLTkzMSw2ICs5MzUsMTAgQEAg Q1JFQVRFIFRSSUdHRVIgZnBvX2JlZm9yZV9yb3cKICAgQkVGT1JFIElOU0VSVCBPUiBVUERBVEUg T1IgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKICAgRk9SIEVBQ0ggUk9XIEVYRUNVVEUg UFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcihmYWxzZSwgZmFsc2UpOwogCitDUkVBVEUgVFJJR0dFUiBm cG9fYmVmb3JlX3JvdzEKKyAgQkVGT1JFIFVQREFURSBPRiB2YWxpZF9hdCBPTiBmb3JfcG9ydGlv bl9vZl90ZXN0CisgIEZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIo ZmFsc2UsIGZhbHNlKTsKKwogQ1JFQVRFIFRSSUdHRVIgZnBvX2FmdGVyX2luc2VydF9yb3cKICAg QUZURVIgSU5TRVJUIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKICAgRk9SIEVBQ0ggUk9XIEVYRUNV VEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcihmYWxzZSwgZmFsc2UpOwpAQCAtMTI5Miw2ICsxMzAw LDcgQEAgRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKIERST1AgVFlQRSBteWRhdGVy YW5nZTsKIAogLS0gVGVzdCBGT1IgUE9SVElPTiBPRiBhZ2FpbnN0IGEgcGFydGl0aW9uZWQgdGFi bGUuCistLSBJbmNsdWRlIGEgR0VORVJBVEVEIFNUT1JFRCBjb2x1bW4gdG8gdGVzdCB1cGRhdGVk Q29scyBjb2x1bW4gbWFwcGluZy4KIC0tIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzEgaGFzIHRoZSBz YW1lIGF0dG51bXMgYXMgdGhlIHJvb3QKIC0tIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgaGFzIHRo ZSBkaWZmZXJlbnQgYXR0bnVtcyBmcm9tIHRoZSByb290CiAtLSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF81IGhhcyB0aGUgZGlmZmVyZW50IGF0dG51bXMgdG9vLCBidXQgcmV2ZXJzZWQKQEAgLTEzMDAs NiArMTMwOSw3IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoCiAgIGlkIGlu dDRyYW5nZSwKICAgdmFsaWRfYXQgZGF0ZXJhbmdlLAogICBuYW1lIHRleHQsCisgIHJhbmdlX2xl biBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAodXBwZXIodmFsaWRfYXQpIC0gbG93ZXIodmFsaWRf YXQpKSBTVE9SRUQsCiAgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFyaXRpb25lZF91cSBVTklRVUUg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQogKSBQQVJUSVRJT04gQlkgTElTVCAoaWQp OwogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzEgUEFSVElUSU9OIE9GIHRlbXBv cmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMiwzKScpOwpAQCAtMTMw NywxMyArMTMxNywxNSBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBQQVJU SVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFZBTFVFUwogQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkXzUgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZP UiBWQUxVRVMgSU4gKCdbNSw2KScsICdbNiw3KScpOwogCiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZCBERVRBQ0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzM7Ci1BTFRF UiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIERST1AgQ09MVU1OIGlkLCBEUk9QIENPTFVN TiB2YWxpZF9hdDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgRFJPUCBDT0xV TU4gaWQsIERST1AgQ09MVU1OIHZhbGlkX2F0IENBU0NBREU7CiBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF8zIEFERCBDT0xVTU4gaWQgaW50NHJhbmdlIE5PVCBOVUxMLCBBREQgQ09M VU1OIHZhbGlkX2F0IGRhdGVyYW5nZSBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkXzMgQUREIENPTFVNTiByYW5nZV9sZW4gaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KHVwcGVyKHZhbGlkX2F0KSAtIGxvd2VyKHZhbGlkX2F0KSkgU1RPUkVEOwogQUxURVIgVEFCTEUg dGVtcG9yYWxfcGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF8zIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOwogCiBBTFRFUiBUQUJMRSB0ZW1w b3JhbF9wYXJ0aXRpb25lZCBERVRBQ0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzU7 Ci1BTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IERST1AgQ09MVU1OIGlkLCBEUk9Q IENPTFVNTiB2YWxpZF9hdDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgRFJP UCBDT0xVTU4gaWQsIERST1AgQ09MVU1OIHZhbGlkX2F0IENBU0NBREU7CiBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF81IEFERCBDT0xVTU4gdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBO VUxMLCBBREQgQ09MVU1OIGlkIGludDRyYW5nZSBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkXzUgQUREIENPTFVNTiByYW5nZV9sZW4gaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKHVwcGVyKHZhbGlkX2F0KSAtIGxvd2VyKHZhbGlkX2F0KSkgU1RPUkVEOwogQUxURVIg VEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF81IEZPUiBWQUxVRVMgSU4gKCdbNSw2KScsICdbNiw3KScpOwogCiBJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoaWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKQEAgLTEz NTgsNyArMTM3MCw3IEBAIFVQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDAwLTA2LTAxJyBUTyAnMjAwMC0wCiAKIC0tIFVwZGF0ZSBhbGwg cGFydGl0aW9ucyBhdCBvbmNlIChlYWNoIHdpdGggbGVmdG92ZXJzKQogCi1TRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqLCB1 cHBlcih2YWxpZF9hdCkgLSBsb3dlcih2YWxpZF9hdCkgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkXzEgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF8zIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIFNFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfNSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CkBAIC0xMzk4LDQgKzE0MTAsODAg QEAgU0VMRUNUICogRlJPTSBmcG9fcnVsZSBPUkRFUiBCWSBmMTsKIAogRFJPUCBUQUJMRSBmcG9f cnVsZTsKIAorLS0gVVBEQVRFIEZPUiBQT1JUSU9OIE9GIHdpdGggZ2VuZXJhdGVkIHN0b3JlZCBj b2x1bW5zCistLSBUaGUgZ2VuZXJhdGVkIGNvbHVtbiBkZXBlbmRzIG9uIHRoZSByYW5nZSBjb2x1 bW4sIHNvIGl0IG11c3QgYmUKKy0tIHJlY29tcHV0ZWQgd2hlbiBGT1IgUE9SVElPTiBPRiBuYXJy b3dzIHRoZSByYW5nZS4KK0NSRUFURSBUQUJMRSBmcG9fZ2VuZXJhdGVkICgKKyAgaWQgaW50LAor ICB2YWxpZF9hdCBpbnQ0cmFuZ2UsCisgIHJhbmdlX2xlbiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAodXBwZXIodmFsaWRfYXQpIC0gbG93ZXIodmFsaWRfYXQpKSBTVE9SRUQsCisgIHJhbmdlX2xl bnYgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHVwcGVyKHZhbGlkX2F0KSAtIGxvd2VyKHZhbGlk X2F0KSkKKyk7CitJTlNFUlQgSU5UTyBmcG9fZ2VuZXJhdGVkIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoMSwgJ1sxMCwxMDApJyk7CisKK1NFTEVDVCAqIEZST00gZnBvX2dlbmVyYXRlZCBPUkRFUiBC WSB2YWxpZF9hdDsKKworQ1JFQVRFIFRSSUdHRVIgZnBvX2JlZm9yZV9yb3cxCisgIEJFRk9SRSBV UERBVEUgT0YgdmFsaWRfYXQgT04gZnBvX2dlbmVyYXRlZAorICBGT1IgRUFDSCBST1cgRVhFQ1VU RSBQUk9DRURVUkUgZHVtcF90cmlnZ2VyKGZhbHNlLCBmYWxzZSk7CisKK0NSRUFURSBUUklHR0VS IGZwb19iZWZvcmVfcm93MgorICBCRUZPUkUgVVBEQVRFIE9GIHZhbGlkX2F0IE9OIGZwb19nZW5l cmF0ZWQKKyAgRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dl cihmYWxzZSwgZmFsc2UpOworCistLSBBZnRlciB0aGUgRk9SIFBPUlRJT04gT0YgKEZQTykgdXBk YXRlLCBhbGwgdGhyZWUgcmVzdWx0aW5nIHJvd3MKKy0tIChsZWZ0b3Zlci1iZWZvcmUsIHVwZGF0 ZWQsIGFuZCBsZWZ0b3Zlci1hZnRlcikgbXVzdCBjb250YWluIHRoZSBjb3JyZWN0CistLSB2YWx1 ZXMgZm9yIHJhbmdlX2xlbiBhbmQgcmFuZ2VfbGVudi4KKy0tIFRyaWdnZXJzIGZwb19iZWZvcmVf cm93MSBhbmQgZnBvX2JlZm9yZV9yb3cyIHNob3VsZCBhbHNvIGJlIGZpcmVkLgorVVBEQVRFIGZw b19nZW5lcmF0ZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAzMCBUTyA3MAorICBT RVQgaWQgPSAyOworCitTRUxFQ1QgKiBGUk9NIGZwb19nZW5lcmF0ZWQgT1JERVIgQlkgdmFsaWRf YXQ7CisKKy0tIEFsc28gdGVzdCB3aXRoIGEgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IHJlZmVyZW5j ZXMgYm90aCBhIFNFVCBjb2x1bW4KKy0tIGFuZCB0aGUgcmFuZ2UgY29sdW1uLgorRFJPUCBUQUJM RSBmcG9fZ2VuZXJhdGVkOworQ1JFQVRFIFRBQkxFIGZwb19nZW5lcmF0ZWQgKAorICBpZCBpbnQs CisgIHZhbGlkX2F0IGludDRyYW5nZSwKKyAgaWRfcGx1c19sZW4gaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGlkICsgdXBwZXIodmFsaWRfYXQpIC0gbG93ZXIodmFsaWRfYXQpKSBTVE9SRUQsCisg IGlkX3BsdXNfbGVudiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaWQgKyB1cHBlcih2YWxpZF9h dCkgLSBsb3dlcih2YWxpZF9hdCkpCispOworCitJTlNFUlQgSU5UTyBmcG9fZ2VuZXJhdGVkIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoMSwgJ1sxMCwxMDApJyk7CitTRUxFQ1QgKiBGUk9NIGZwb19n ZW5lcmF0ZWQgT1JERVIgQlkgdmFsaWRfYXQ7CisKK1VQREFURSBmcG9fZ2VuZXJhdGVkCisgIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gMzAgVE8gNzAKKyAgU0VUIGlkID0gMjsKK1NFTEVD VCAqIEZST00gZnBvX2dlbmVyYXRlZCBPUkRFUiBCWSB2YWxpZF9hdDsKK0RST1AgVEFCTEUgZnBv X2dlbmVyYXRlZDsKKworCistLSBVUERBVEUgRk9SIFBPUlRJT04gT0Ygd2l0aCB0YWJsZSBpbmhl cml0YW5jZQorLS0gTGVmdG92ZXIgcm93cyBtdXN0IHN0YXkgaW4gdGhlIGNoaWxkIHRhYmxlLCBw cmVzZXJ2aW5nIGNoaWxkLXNwZWNpZmljIGNvbHVtbnMuCitDUkVBVEUgVEFCTEUgZnBvX2luaF9w YXJlbnQgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0 ZXh0CispOworQ1JFQVRFIFRBQkxFIGZwb19pbmhfY2hpbGQgKAorICBkZXNjcmlwdGlvbiB0ZXh0 CispIElOSEVSSVRTIChmcG9faW5oX3BhcmVudCk7CitJTlNFUlQgSU5UTyBmcG9faW5oX2NoaWxk IChpZCwgdmFsaWRfYXQsIG5hbWUsIGRlc2NyaXB0aW9uKSBWQUxVRVMKKyAgKCdbMSwyKScsICdb MjAxOC0wMS0wMSwyMDE5LTAxLTAxKScsICdvbmUnLCAnaW5pdGlhbCcpOworCistLSBVcGRhdGUg dGFyZ2V0cyB0aGUgcGFyZW50OyB0aGUgbWF0Y2hpbmcgcm93IGxpdmVzIGluIHRoZSBjaGlsZC4K K1VQREFURSBmcG9faW5oX3BhcmVudCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4 LTA0LTAxJyBUTyAnMjAxOC0xMC0wMScKKyAgU0VUIG5hbWUgPSAnb25lXjEnOworCistLSBBbGwg dGhyZWUgcm93cyBzaG91bGQgYmUgaW4gdGhlIGNoaWxkLCB3aXRoIGRlc2NyaXB0aW9uIHByZXNl cnZlZC4KK1NFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSBmcG9faW5oX3BhcmVudCBP UkRFUiBCWSB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gZnBvX2luaF9jaGlsZCBPUkRFUiBCWSB2 YWxpZF9hdDsKKy0tIE5vIHJvd3Mgc2hvdWxkIGhhdmUgbGVha2VkIGludG8gdGhlIHBhcmVudC4K K1NFTEVDVCAqIEZST00gT05MWSBmcG9faW5oX3BhcmVudCBPUkRFUiBCWSB2YWxpZF9hdDsKKwor RFJPUCBUQUJMRSBmcG9faW5oX3BhcmVudCBDQVNDQURFOworCiBSRVNFVCBkYXRlc3R5bGU7Ci0t IAoyLjQ3LjMKCg== --0000000000009f7b8a06512949e6--