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.94.2) (envelope-from ) id 1txFm9-005W7g-OE for pgsql-hackers@arkaria.postgresql.org; Wed, 26 Mar 2025 01:41:50 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1txFm6-00D46M-7y for pgsql-hackers@arkaria.postgresql.org; Wed, 26 Mar 2025 01:41:46 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1txFm5-00D3y0-Db for pgsql-hackers@lists.postgresql.org; Wed, 26 Mar 2025 01:41:45 +0000 Received: from mail-io1-xd35.google.com ([2607:f8b0:4864:20::d35]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1txFm0-0019H2-0v for pgsql-hackers@lists.postgresql.org; Wed, 26 Mar 2025 01:41:44 +0000 Received: by mail-io1-xd35.google.com with SMTP id ca18e2360f4ac-855fc51bdfcso12599239f.0 for ; Tue, 25 Mar 2025 18:41:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742953299; x=1743558099; 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=plVr77aWZObedJGkk2mkqmQ3V7J4c3x1FSo4Prne1Q0=; b=U7l/UlRY91nZJC/lYh38PVwi8c1mbPZNRexep1sVyBElCLY8Ih5j/LlVCojpY9L0Id mstcP3/g0Y6HoeZFpW1m72zO2lSm4U/UTIY/xQXL+mu3skGVy/SAK78lpu2w0uXl+qqm hQ476W3mebv0aMBmtOQTyW63mo2Ay3wrT8pKc098YmW3uR6C1pneiZqC3hPII6VP8CuH OhqzjuiPQQyRz2AWSAJGQ6q6XOCcZg16DjkmR/e8EHK1y8vUQOboXAsIrp5XDyRHB6QV 5f41WWnCRSexeK5V9SikRb8lNcn/ogl5nU1GGS9T4PJCBL4vt8mHwX8v91otxbUh8juW 6fcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742953299; x=1743558099; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=plVr77aWZObedJGkk2mkqmQ3V7J4c3x1FSo4Prne1Q0=; b=Tlij9k3RJfAsJoQk3ugiOgAesJhU3jODNPou2kb7t+7dLDzi3qYWy8kXrkXwzaMhgi ymQzIrQobfM38v9jqr/K3bLceAnRN1jSxo3U+QyOTk+XdXgr/TKqUv42XeS0k4Ep4FdB H/52ju72KU5qGWD3w7AIaQmPcm/DUG9Cpi19IhV0pzpArA/nSf/uZ7jGKBYKft+USxk6 8T5XzgQmSs8ZwzNJxoHIjkp7cPzIm1aPfVQz0+sOe3+judgeROlWECn40NEFJFmlRdW0 faXUvqUoen57Z2p2/CFEWV8NoEE8Hp6/tFyMSTplfhb5SB/HWcyrY1CPp+j77hErioi9 G0Gw== X-Forwarded-Encrypted: i=1; AJvYcCUdQDM0J4vfkKtKE8r6l7zoChMWr22OEp4yHuf05VRmKY0QNWLkTpCaRKk2xKzBOU1bMj8F8+es5TiO4Mba@lists.postgresql.org X-Gm-Message-State: AOJu0YxBn5Zvcy322+S1+2YAH3vThHqRZSLsyPGhcFYdfDE4GJV7ZXt9 7h3huxqa9XRUhkkUc1iN48qZRmfSZn/ORf8u2u0RUyCDh7Ugy+FDGOaaEjML9rnuM2UffXduI4j vL9J95MmtcT8xVCaffYIXQ9YYLCk= X-Gm-Gg: ASbGncvcNy6mi0sK+dzBU5LBIua8l9dfZUEzSbemwdySJ781jPJ7iEsEH+6IdxyTuKs xkOXlgQyY24WdTvldI4thU5rnbr2enPc2fxXclC9h8f1MpX1/R9SN7h5lf7vpN63LZVZXjvn/Sz FVFxU1WaAhESUpwpYmpZVgh6F/5gdlnKtCzD/7 X-Google-Smtp-Source: AGHT+IHijz6+vGGWyokro9E3H0GdlkJlQJ4ziMdyljl73U5GJ8Unzy519O8xTv8G+TYN+0C3YwDBZjtE6+G/uyCzm6k= X-Received: by 2002:a92:cdaa:0:b0:3d4:2ea4:6b87 with SMTP id e9e14a558f8ab-3d5c22503b1mr18866065ab.11.1742953298820; Tue, 25 Mar 2025 18:41:38 -0700 (PDT) MIME-Version: 1.0 References: <6af48508a32499a8be3398cafffd29fb6188c44b.camel@j-davis.com> <6rpmhyrtci4epuzay7y5xvd2cwdwb6zmtt6ofxrvakyawxhm7s@6grajbpr4kij> <5812bf576f181e2f94944cab485cee46f611ed3e.camel@j-davis.com> <0576fa4dbd6e62e027b41e0ef9254896540f1cb4.camel@j-davis.com> In-Reply-To: From: Corey Huinker Date: Tue, 25 Mar 2025 21:41:25 -0400 X-Gm-Features: AQ5f1JoZeA1BKsHqAVc4G_fADwBWot_3R0rTgVFK8ildRu5g-0aUN10Rymk4rlM Message-ID: Subject: Re: Statistics Import and Export To: Jeff Davis Cc: Robert Treat , Robert Haas , Andres Freund , Nathan Bossart , Tom Lane , Michael Paquier , jian he , Bruce Momjian , Matthias van de Meent , Magnus Hagander , Stephen Frost , Ashutosh Bapat , Peter Smith , PostgreSQL Hackers , alvherre@alvh.no-ip.org Content-Type: multipart/mixed; boundary="0000000000003d44c1063134f087" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000003d44c1063134f087 Content-Type: multipart/alternative; boundary="0000000000003d44bf063134f085" --0000000000003d44bf063134f085 Content-Type: text/plain; charset="UTF-8" > > At this point, I feel I've demonstrated the limit of what can be made into > WARNINGs, giving us a range of options for now and into the beta. I'll > rebase and move the 0002 patch to be in last position so as to tee up > 0003-0004 for consideration. > And here's the rebase (after bde2fb797aaebcbe06bf60f330ba5a068f17dda7). The order of the patches is different, but the purpose of each is the same as before. --0000000000003d44bf063134f085 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
At this point, I feel I've demonstrated the l= imit of what can be made into WARNINGs, giving us a range of options for no= w and into the beta. I'll rebase and move the 0002 patch to be in last = position so as to tee up 0003-0004 for consideration.

And here's the rebase (after bd= e2fb797aaebcbe06bf60f330ba5a068f17dda7).

The order of the= patches is different, but the purpose of each is the same as before.
=C2=A0
--0000000000003d44bf063134f085-- --0000000000003d44c1063134f087 Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0002-Batching-getAttributeStats.patch" Content-Disposition: attachment; filename="v10-0002-Batching-getAttributeStats.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m8p9b1c11 RnJvbSAxZjliMjU3OGY1NWZhMTIzMzEyMWJjZjU5NDlhNmY2OWQ2Y2Y4Y2VlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb3JleSBIdWlua2VyIDxjb3JleS5odWlua2VyQGdtYWlsLmNv bT4KRGF0ZTogRnJpLCAxNCBNYXIgMjAyNSAwMzo1NDoyNiAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg djEwIDIvNF0gQmF0Y2hpbmcgZ2V0QXR0cmlidXRlU3RhdHMoKS4KClRoZSBwcmVwYXJlZCBzdGF0 ZW1lbnQgZ2V0QXR0cmlidXRlU3RhdHMoKSBpcyBmYWlybHkgaGVhdnl3ZWlnaHQgYW5kCmNvdWxk IGdyZWF0bHkgaW5jcmVhc2UgcGdfZHVtcC9wZ191cGdyYWRlIHJ1bnRpbWUuIFRvIGFsbGV2aWF0 ZSB0aGlzLApjcmVhdGUgYSByZXN1bHQgc2V0IGJ1ZmZlciBvZiBhbGwgb2YgdGhlIGF0dHJpYnV0 ZSBzdGF0cyBmZXRjaGVkIGZvciBhCmJhdGNoIG9mIDEwMCByZWxhdGlvbnMgdGhhdCBjb3VsZCBw b3RlbnRpYWxseSBoYXZlIHN0YXRzLgoKVGhlIHF1ZXJ5IGVuc3VyZXMgdGhhdCB0aGUgb3JkZXIg b2YgcmVzdWx0cyBleGFjdGx5IG1hdGNoZXMgdGhlIG5lZWRzIG9mCnRoZSBjb2RlIHdhbGtpbmcg dGhlIFRPQyB0byBwcmludCB0aGUgc3RhdHMgY2FsbHMuCi0tLQogc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYyB8IDU1NCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDM4MyBpbnNlcnRpb25zKCspLCAxNzEgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKaW5kZXggMjI0ZGM4YzkzMzAuLmUzZjJkYWMzM2VjIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTE0Myw2 ICsxNDMsMjUgQEAgdHlwZWRlZiBlbnVtIE9pZE9wdGlvbnMKIAl6ZXJvQXNOb25lID0gNCwKIH0g T2lkT3B0aW9uczsKIAordHlwZWRlZiBlbnVtIFN0YXRzQnVmZmVyU3RhdGUKK3sKKwlTVEFUU0JV Rl9VTklOSVRJQUxJWkVEID0gMCwKKwlTVEFUU0JVRl9BQ1RJVkUsCisJU1RBVFNCVUZfRVhIQVVT VEVECit9CQkJU3RhdHNCdWZmZXJTdGF0ZTsKKwordHlwZWRlZiBzdHJ1Y3QKK3sKKwlQR3Jlc3Vs dCAgICpyZXM7CQkJLyogcmVzdWx0cyBmcm9tIG1vc3QgcmVjZW50CisJCQkJCQkJCSAqIGdldEF0 dHJpYnV0ZVN0YXRzKCkgKi8KKwlpbnQJCQlpZHg7CQkJLyogZmlyc3QgdW4tY29uc3VtZWQgcm93 IG9mIHJlc3VsdHMgKi8KKwlUb2NFbnRyeSAgICp0ZTsJCQkJLyogbmV4dCBUT0MgZW50cnkgdG8g c2VhcmNoIGZvciBzdGF0c2l0aWNzCisJCQkJCQkJCSAqIGRhdGEgKi8KKworCVN0YXRzQnVmZmVy U3RhdGUgc3RhdGU7CQkvKiBjdXJyZW50IHN0YXRlIG9mIHRoZSBidWZmZXIgKi8KK30JCQlBdHRy aWJ1dGVTdGF0c0J1ZmZlcjsKKworCiAvKiBnbG9iYWwgZGVjbHMgKi8KIHN0YXRpYyBib29sIGRv c3luYyA9IHRydWU7CQkvKiBJc3N1ZSBmc3luYygpIHRvIG1ha2UgZHVtcCBkdXJhYmxlIG9uIGRp c2suICovCiAKQEAgLTIwOSw2ICsyMjgsMTggQEAgc3RhdGljIGludAluYmluYXJ5VXBncmFkZUNs YXNzT2lkcyA9IDA7CiBzdGF0aWMgU2VxdWVuY2VJdGVtICpzZXF1ZW5jZXMgPSBOVUxMOwogc3Rh dGljIGludAluc2VxdWVuY2VzID0gMDsKIAorc3RhdGljIEF0dHJpYnV0ZVN0YXRzQnVmZmVyIGF0 dHJzdGF0cyA9Cit7CisJTlVMTCwgMCwgTlVMTCwgU1RBVFNCVUZfVU5JTklUSUFMSVpFRAorfTsK KworLyoKKyAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiByZWxhdGlvbnMgdGhhdCBzaG91bGQgYmUg ZmV0Y2hlZCBpbiBhbnkgb25lCisgKiBnZXRBdHRyaWJ1dGVTdGF0cygpIGNhbGwuCisgKi8KKwor I2RlZmluZSBNQVhfQVRUUl9TVEFUU19SRUxTIDEwMAorCiAvKgogICogVGhlIGRlZmF1bHQgbnVt YmVyIG9mIHJvd3MgcGVyIElOU0VSVCB3aGVuCiAgKiAtLWluc2VydHMgaXMgc3BlY2lmaWVkIHdp dGhvdXQgLS1yb3dzLXBlci1pbnNlcnQKQEAgLTIyMiw2ICsyNTMsOCBAQCBzdGF0aWMgaW50CW5z ZXF1ZW5jZXMgPSAwOwogICovCiAjZGVmaW5lIE1BWF9CTE9CU19QRVJfQVJDSElWRV9FTlRSWSAx MDAwCiAKKworCiAvKgogICogTWFjcm8gZm9yIHByb2R1Y2luZyBxdW90ZWQsIHNjaGVtYS1xdWFs aWZpZWQgbmFtZSBvZiBhIGR1bXBhYmxlIG9iamVjdC4KICAqLwpAQCAtMzk5LDYgKzQzMiw5IEBA IHN0YXRpYyB2b2lkIHNldHVwRHVtcFdvcmtlcihBcmNoaXZlICpBSCk7CiBzdGF0aWMgVGFibGVJ bmZvICpnZXRSb290VGFibGVJbmZvKGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKTsKIHN0YXRpYyBi b29sIGZvcmNlUGFydGl0aW9uUm9vdExvYWQoY29uc3QgVGFibGVJbmZvICp0YmluZm8pOwogc3Rh dGljIHZvaWQgcmVhZF9kdW1wX2ZpbHRlcnMoY29uc3QgY2hhciAqZmlsZW5hbWUsIER1bXBPcHRp b25zICpkb3B0KTsKK3N0YXRpYyB2b2lkIGFwcGVuZE5hbWVkQXJndW1lbnQoUFFFeHBCdWZmZXIg b3V0LCBBcmNoaXZlICpmb3V0LAorCQkJCQkJCQljb25zdCBjaGFyICphcmduYW1lLCBjb25zdCBj aGFyICphcmd0eXBlLAorCQkJCQkJCQljb25zdCBjaGFyICphcmd2YWwpOwogCiAKIGludApAQCAt MTA1MjAsNyArMTA1NTYsMjg2IEBAIHN0YXRpc3RpY3NEdW1wU2VjdGlvbihjb25zdCBSZWxTdGF0 c0luZm8gKnJzaW5mbykKIH0KIAogLyoKLSAqIHByaW50RHVtcFJlbGF0aW9uU3RhdHMgLS0KKyAq IEZldGNoIG5leHQgYmF0Y2ggb2Ygcm93cyBmcm9tIGdldEF0dHJpYnV0ZVN0YXRzKCkKKyAqLwor c3RhdGljIHZvaWQKK2ZldGNoTmV4dEF0dHJpYnV0ZVN0YXRzKEFyY2hpdmUgKmZvdXQpCit7CisJ QXJjaGl2ZUhhbmRsZSAqQUggPSAoQXJjaGl2ZUhhbmRsZSAqKSBmb3V0OworCVBRRXhwQnVmZmVy RGF0YSBzY2hlbWFzOworCVBRRXhwQnVmZmVyRGF0YSByZWxhdGlvbnM7CisJaW50CQkJbnVtb2lk cyA9IDA7CisKKwlBc3NlcnQoQUggIT0gTlVMTCk7CisKKwkvKiBmcmVlIGxhc3QgcmVzdWx0IHNl dCwgaWYgYW55ICovCisJaWYgKGF0dHJzdGF0cy5zdGF0ZSA9PSBTVEFUU0JVRl9BQ1RJVkUpCisJ CVBRY2xlYXIoYXR0cnN0YXRzLnJlcyk7CisKKwkvKiBJZiB3ZSBoYXZlIGxvb3BlZCBhcm91bmQg dG8gdGhlIHN0YXJ0IG9mIHRoZSBUT0MsIHJlc3RhcnQgKi8KKwlpZiAoYXR0cnN0YXRzLnRlID09 IEFILT50b2MpCisJCWF0dHJzdGF0cy50ZSA9IEFILT50b2MtPm5leHQ7CisKKwlpbml0UFFFeHBC dWZmZXIoJnNjaGVtYXMpOworCWluaXRQUUV4cEJ1ZmZlcigmcmVsYXRpb25zKTsKKworCS8qCisJ ICogV2FsayBhaGVhZCBsb29raW5nIGZvciByZWxzdGF0cyBlbnRyaWVzIHRoYXQgYXJlIGFjdGl2 ZSBpbiB0aGlzCisJICogc2VjdGlvbiwgYWRkaW5nIHRoZSBuYW1lcyB0byB0aGUgc2NoZW1hcyBh bmQgcmVsYXRpb25zIGxpc3RzLgorCSAqLworCXdoaWxlICgoYXR0cnN0YXRzLnRlICE9IEFILT50 b2MpICYmIChudW1vaWRzIDwgTUFYX0FUVFJfU1RBVFNfUkVMUykpCisJeworCQlpZiAoYXR0cnN0 YXRzLnRlLT5yZXFzICE9IDAgJiYKKwkJCXN0cmNtcChhdHRyc3RhdHMudGUtPmRlc2MsICJTVEFU SVNUSUNTIERBVEEiKSA9PSAwKQorCQl7CisJCQlSZWxTdGF0c0luZm8gKnJzaW5mbyA9IChSZWxT dGF0c0luZm8gKikgYXR0cnN0YXRzLnRlLT5jcmVhdGVEdW1wZXJBcmc7CisKKwkJCUFzc2VydChy c2luZm8gIT0gTlVMTCk7CisKKwkJCWlmIChudW1vaWRzID4gMCkKKwkJCXsKKwkJCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmc2NoZW1hcywgIiwiKTsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigm cmVsYXRpb25zLCAiLCIpOworCQkJfQorCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJnNjaGVtYXMs IGZtdElkKHJzaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSkpOworCQkJYXBwZW5kUFFF eHBCdWZmZXJTdHIoJnJlbGF0aW9ucywgZm10SWQocnNpbmZvLT5kb2JqLm5hbWUpKTsKKwkJCW51 bW9pZHMrKzsKKwkJfQorCisJCWF0dHJzdGF0cy50ZSA9IGF0dHJzdGF0cy50ZS0+bmV4dDsKKwl9 CisKKwlpZiAobnVtb2lkcyA+IDApCisJeworCQlQUUV4cEJ1ZmZlckRhdGEgcXVlcnk7CisKKwkJ aW5pdFBRRXhwQnVmZmVyKCZxdWVyeSk7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZxdWVyeSwKKwkJ CQkJCSAgIkVYRUNVVEUgZ2V0QXR0cmlidXRlU3RhdHMoJ3slc30nOjpwZ19jYXRhbG9nLnRleHRb XSwneyVzfSc6OnBnX2NhdGFsb2cudGV4dFtdKSIsCisJCQkJCQkgIHNjaGVtYXMuZGF0YSwgcmVs YXRpb25zLmRhdGEpOworCQlhdHRyc3RhdHMucmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1 ZXJ5LmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisJCWF0dHJzdGF0cy5pZHggPSAwOworCX0KKwll bHNlCisJeworCQlhdHRyc3RhdHMuc3RhdGUgPSBTVEFUU0JVRl9FWEhBVVNURUQ7CisJCWF0dHJz dGF0cy5yZXMgPSBOVUxMOworCQlhdHRyc3RhdHMuaWR4ID0gLTE7CisJfQorCisJdGVybVBRRXhw QnVmZmVyKCZzY2hlbWFzKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJnJlbGF0aW9ucyk7Cit9CisKKy8q CisgKiBQcmVwYXJlIHRoZSBnZXRBdHRyaWJ1dGVTdGF0cygpIHN0YXRlbWVudAorICoKKyAqIFRo aXMgaXMgZG9uZSBhdXRvbWF0aWNhbGx5IGlmIHRoZSB1c2VyIHNwZWNpZmllZCBkdW1wU3RhdGlz dGljcy4KKyAqLworc3RhdGljIHZvaWQKK2luaXRBdHRyaWJ1dGVTdGF0cyhBcmNoaXZlICpmb3V0 KQoreworCUFyY2hpdmVIYW5kbGUgKkFIID0gKEFyY2hpdmVIYW5kbGUgKikgZm91dDsKKwlQUUV4 cEJ1ZmZlckRhdGEgcXVlcnk7CisKKwlBc3NlcnQoQUggIT0gTlVMTCk7CisJaW5pdFBRRXhwQnVm ZmVyKCZxdWVyeSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmcXVlcnksCisJCQkJCQkgIlBS RVBBUkUgZ2V0QXR0cmlidXRlU3RhdHMocGdfY2F0YWxvZy50ZXh0W10sIHBnX2NhdGFsb2cudGV4 dFtdKSBBU1xuIgorCQkJCQkJICJTRUxFQ1Qgcy5zY2hlbWFuYW1lLCBzLnRhYmxlbmFtZSwgcy5h dHRuYW1lLCBzLmluaGVyaXRlZCwgIgorCQkJCQkJICJzLm51bGxfZnJhYywgcy5hdmdfd2lkdGgs IHMubl9kaXN0aW5jdCwgcy5tb3N0X2NvbW1vbl92YWxzLCAiCisJCQkJCQkgInMubW9zdF9jb21t b25fZnJlcXMsIHMuaGlzdG9ncmFtX2JvdW5kcywgcy5jb3JyZWxhdGlvbiwgIgorCQkJCQkJICJz Lm1vc3RfY29tbW9uX2VsZW1zLCBzLm1vc3RfY29tbW9uX2VsZW1fZnJlcXMsICIKKwkJCQkJCSAi cy5lbGVtX2NvdW50X2hpc3RvZ3JhbSwgIik7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+ PSAxNzAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZxdWVyeSwKKwkJCQkJCQkgInMucmFu Z2VfbGVuZ3RoX2hpc3RvZ3JhbSwgIgorCQkJCQkJCSAicy5yYW5nZV9lbXB0eV9mcmFjLCAiCisJ CQkJCQkJICJzLnJhbmdlX2JvdW5kc19oaXN0b2dyYW0gIik7CisJZWxzZQorCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cigmcXVlcnksCisJCQkJCQkJICJOVUxMIEFTIHJhbmdlX2xlbmd0aF9oaXN0b2dy YW0sICIKKwkJCQkJCQkgIk5VTEwgQVMgcmFuZ2VfZW1wdHlfZnJhYywgIgorCQkJCQkJCSAiIE5V TEwgQVMgcmFuZ2VfYm91bmRzX2hpc3RvZ3JhbSAiKTsKKworCS8qCisJICogVGhlIHJlc3VsdHMg bXVzdCBiZSBpbiB0aGUgb3JkZXIgb2YgcmVsYXRpb25zIHN1cHBsaWVkIGluIHRoZQorCSAqIHBh cmFtZXRlcnMgdG8gZW5zdXJlIHRoYXQgdGhleSBhcmUgaW4gc3luYyB3aXRoIGEgd2FsayBvZiB0 aGUgVE9DLgorCSAqCisJICogVGhlIHJlZHVuZGFudCAoYW5kIGluY29tcGxldGUpIGZpbHRlciBj bGF1c2Ugb24gcy50YWJsZW5hbWUgPSBBTlkoLi4uKQorCSAqIGlzIGEgd2F5IHRvIGxlYWQgdGhl IHF1ZXJ5IGludG8gdXNpbmcgdGhlIGluZGV4CisJICogcGdfY2xhc3NfcmVsbmFtZV9uc3BfaW5k ZXggd2hpY2ggaW4gdHVybiBhbGxvd3MgdGhlIHBsYW5uZXIgdG8gYXZvaWQgYW4KKwkgKiBleHBl bnNpdmUgZnVsbCBzY2FuIG9mIHBnX3N0YXRzLgorCSAqCisJICogV2UgbWF5IG5lZWQgdG8gYWRq dXN0IHRoaXMgcXVlcnkgZm9yIHZlcnNpb25zIHRoYXQgYXJlIG5vdCBzbyBlYXNpbHkKKwkgKiBs ZWQuCisJICovCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJnF1ZXJ5LAorCQkJCQkJICJGUk9NIHBn X2NhdGFsb2cucGdfc3RhdHMgQVMgcyAiCisJCQkJCQkgIkpPSU4gdW5uZXN0KCQxLCAkMikgV0lU SCBPUkRJTkFMSVRZIEFTIHUoc2NoZW1hbmFtZSwgdGFibGVuYW1lLCBvcmQpICIKKwkJCQkJCSAi T04gcy5zY2hlbWFuYW1lID0gdS5zY2hlbWFuYW1lICIKKwkJCQkJCSAiQU5EIHMudGFibGVuYW1l ID0gdS50YWJsZW5hbWUgIgorCQkJCQkJICJXSEVSRSBzLnRhYmxlbmFtZSA9IEFOWSgkMikgIgor CQkJCQkJICJPUkRFUiBCWSB1Lm9yZCwgcy5hdHRuYW1lLCBzLmluaGVyaXRlZCIpOworCisJRXhl Y3V0ZVNxbFN0YXRlbWVudChmb3V0LCBxdWVyeS5kYXRhKTsKKworCXRlcm1QUUV4cEJ1ZmZlcigm cXVlcnkpOworCisJYXR0cnN0YXRzLnRlID0gQUgtPnRvYy0+bmV4dDsKKworCWZldGNoTmV4dEF0 dHJpYnV0ZVN0YXRzKGZvdXQpOworCisJYXR0cnN0YXRzLnN0YXRlID0gU1RBVFNCVUZfQUNUSVZF OworfQorCisKKy8qCisgKiBhcHBlbmQgYSBzaW5nbGUgYXR0cmlidXRlIHN0YXQgdG8gdGhlIGJ1 ZmZlciBmb3IgdGhpcyByZWxhdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK2FwcGVuZEF0dHJpYnV0 ZVN0YXRzKEFyY2hpdmUgKmZvdXQsIFBRRXhwQnVmZmVyIG91dCwKKwkJCQkJIGNvbnN0IFJlbFN0 YXRzSW5mbyAqcnNpbmZvKQoreworCVBHcmVzdWx0ICAgKnJlcyA9IGF0dHJzdGF0cy5yZXM7CisJ aW50CQkJdHVwX251bSA9IGF0dHJzdGF0cy5pZHg7CisKKwljb25zdCBjaGFyICphdHRuYW1lOwor CisJc3RhdGljIGJvb2wgaW5kZXhlc19zZXQgPSBmYWxzZTsKKwlzdGF0aWMgaW50CWlfYXR0bmFt ZSwKKwkJCQlpX2luaGVyaXRlZCwKKwkJCQlpX251bGxfZnJhYywKKwkJCQlpX2F2Z193aWR0aCwK KwkJCQlpX25fZGlzdGluY3QsCisJCQkJaV9tb3N0X2NvbW1vbl92YWxzLAorCQkJCWlfbW9zdF9j b21tb25fZnJlcXMsCisJCQkJaV9oaXN0b2dyYW1fYm91bmRzLAorCQkJCWlfY29ycmVsYXRpb24s CisJCQkJaV9tb3N0X2NvbW1vbl9lbGVtcywKKwkJCQlpX21vc3RfY29tbW9uX2VsZW1fZnJlcXMs CisJCQkJaV9lbGVtX2NvdW50X2hpc3RvZ3JhbSwKKwkJCQlpX3JhbmdlX2xlbmd0aF9oaXN0b2dy YW0sCisJCQkJaV9yYW5nZV9lbXB0eV9mcmFjLAorCQkJCWlfcmFuZ2VfYm91bmRzX2hpc3RvZ3Jh bTsKKworCWlmICghaW5kZXhlc19zZXQpCisJeworCQkvKgorCQkgKiBJdCdzIGEgcHJlcGFyZWQg c3RhdGVtZW50LCBzbyB0aGUgaW5kZXhlcyB3aWxsIGJlIHRoZSBzYW1lIGZvciBhbGwKKwkJICog cmVzdWx0IHNldHMsIHNvIHdlIG9ubHkgbmVlZCB0byBzZXQgdGhlbSBvbmNlLgorCQkgKi8KKwkJ aV9hdHRuYW1lID0gUFFmbnVtYmVyKHJlcywgImF0dG5hbWUiKTsKKwkJaV9pbmhlcml0ZWQgPSBQ UWZudW1iZXIocmVzLCAiaW5oZXJpdGVkIik7CisJCWlfbnVsbF9mcmFjID0gUFFmbnVtYmVyKHJl cywgIm51bGxfZnJhYyIpOworCQlpX2F2Z193aWR0aCA9IFBRZm51bWJlcihyZXMsICJhdmdfd2lk dGgiKTsKKwkJaV9uX2Rpc3RpbmN0ID0gUFFmbnVtYmVyKHJlcywgIm5fZGlzdGluY3QiKTsKKwkJ aV9tb3N0X2NvbW1vbl92YWxzID0gUFFmbnVtYmVyKHJlcywgIm1vc3RfY29tbW9uX3ZhbHMiKTsK KwkJaV9tb3N0X2NvbW1vbl9mcmVxcyA9IFBRZm51bWJlcihyZXMsICJtb3N0X2NvbW1vbl9mcmVx cyIpOworCQlpX2hpc3RvZ3JhbV9ib3VuZHMgPSBQUWZudW1iZXIocmVzLCAiaGlzdG9ncmFtX2Jv dW5kcyIpOworCQlpX2NvcnJlbGF0aW9uID0gUFFmbnVtYmVyKHJlcywgImNvcnJlbGF0aW9uIik7 CisJCWlfbW9zdF9jb21tb25fZWxlbXMgPSBQUWZudW1iZXIocmVzLCAibW9zdF9jb21tb25fZWxl bXMiKTsKKwkJaV9tb3N0X2NvbW1vbl9lbGVtX2ZyZXFzID0gUFFmbnVtYmVyKHJlcywgIm1vc3Rf Y29tbW9uX2VsZW1fZnJlcXMiKTsKKwkJaV9lbGVtX2NvdW50X2hpc3RvZ3JhbSA9IFBRZm51bWJl cihyZXMsICJlbGVtX2NvdW50X2hpc3RvZ3JhbSIpOworCQlpX3JhbmdlX2xlbmd0aF9oaXN0b2dy YW0gPSBQUWZudW1iZXIocmVzLCAicmFuZ2VfbGVuZ3RoX2hpc3RvZ3JhbSIpOworCQlpX3Jhbmdl X2VtcHR5X2ZyYWMgPSBQUWZudW1iZXIocmVzLCAicmFuZ2VfZW1wdHlfZnJhYyIpOworCQlpX3Jh bmdlX2JvdW5kc19oaXN0b2dyYW0gPSBQUWZudW1iZXIocmVzLCAicmFuZ2VfYm91bmRzX2hpc3Rv Z3JhbSIpOworCQlpbmRleGVzX3NldCA9IHRydWU7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXJT dHIob3V0LCAiU0VMRUNUICogRlJPTSBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfYXR0cmlidXRlX3N0 YXRzKFxuIik7CisJYXBwZW5kUFFFeHBCdWZmZXIob3V0LCAiXHQndmVyc2lvbicsICcldSc6Omlu dGVnZXIsXG4iLAorCQkJCQkgIGZvdXQtPnJlbW90ZVZlcnNpb24pOworCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKG91dCwgIlx0J3NjaGVtYW5hbWUnLCAiKTsKKwlhcHBlbmRTdHJpbmdMaXRlcmFsQUgo b3V0LCByc2luZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIGZvdXQpOworCWFwcGVuZFBR RXhwQnVmZmVyU3RyKG91dCwgIixcblx0J3JlbG5hbWUnLCAiKTsKKwlhcHBlbmRTdHJpbmdMaXRl cmFsQUgob3V0LCByc2luZm8tPmRvYmoubmFtZSwgZm91dCk7CisKKwlpZiAoUFFnZXRpc251bGwo cmVzLCB0dXBfbnVtLCBpX2F0dG5hbWUpKQorCQlwZ19mYXRhbCgiYXR0bmFtZSBjYW5ub3QgYmUg TlVMTCIpOworCWF0dG5hbWUgPSBQUWdldHZhbHVlKHJlcywgdHVwX251bSwgaV9hdHRuYW1lKTsK KworCS8qCisJICogSW5kZXhlcyBsb29rIHVwIGF0dG5hbWUgaW4gaW5kQXR0TmFtZXMgdG8gZGVy aXZlIGF0dG51bSwgYWxsIG90aGVycyB1c2UKKwkgKiBhdHRuYW1lIGRpcmVjdGx5LiAgV2UgbXVz dCBzcGVjaWZ5IGF0dG51bSBmb3IgaW5kZXhlcywgc2luY2UgdGhlaXIKKwkgKiBhdHRuYW1lcyBh cmUgbm90IG5lY2Vzc2FyaWx5IHN0YWJsZSBhY3Jvc3MgZHVtcC9yZWxvYWQuCisJICovCisJaWYg KHJzaW5mby0+bmluZEF0dE5hbWVzID09IDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcihvdXQs ICIsXG5cdCdhdHRuYW1lJywgIik7CisJCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChvdXQsIGF0dG5h bWUsIGZvdXQpOworCX0KKwllbHNlCisJeworCQlib29sCQlmb3VuZCA9IGZhbHNlOworCisJCWZv ciAoaW50IGkgPSAwOyBpIDwgcnNpbmZvLT5uaW5kQXR0TmFtZXM7IGkrKykKKwkJCWlmIChzdHJj bXAoYXR0bmFtZSwgcnNpbmZvLT5pbmRBdHROYW1lc1tpXSkgPT0gMCkKKwkJCXsKKwkJCQlhcHBl bmRQUUV4cEJ1ZmZlcihvdXQsICIsXG5cdCdhdHRudW0nLCAnJWQnOjpzbWFsbGludCIsCisJCQkJ CQkJCSAgaSArIDEpOworCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKworCQlp ZiAoIWZvdW5kKQorCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBmaW5kIGluZGV4IGF0dG5hbWUgXCIl c1wiIiwgYXR0bmFtZSk7CisJfQorCisJaWYgKCFQUWdldGlzbnVsbChyZXMsIHR1cF9udW0sIGlf aW5oZXJpdGVkKSkKKwkJYXBwZW5kTmFtZWRBcmd1bWVudChvdXQsIGZvdXQsICJpbmhlcml0ZWQi LCAiYm9vbGVhbiIsCisJCQkJCQkJUFFnZXR2YWx1ZShyZXMsIHR1cF9udW0sIGlfaW5oZXJpdGVk KSk7CisJaWYgKCFQUWdldGlzbnVsbChyZXMsIHR1cF9udW0sIGlfbnVsbF9mcmFjKSkKKwkJYXBw ZW5kTmFtZWRBcmd1bWVudChvdXQsIGZvdXQsICJudWxsX2ZyYWMiLCAicmVhbCIsCisJCQkJCQkJ UFFnZXR2YWx1ZShyZXMsIHR1cF9udW0sIGlfbnVsbF9mcmFjKSk7CisJaWYgKCFQUWdldGlzbnVs bChyZXMsIHR1cF9udW0sIGlfYXZnX3dpZHRoKSkKKwkJYXBwZW5kTmFtZWRBcmd1bWVudChvdXQs IGZvdXQsICJhdmdfd2lkdGgiLCAiaW50ZWdlciIsCisJCQkJCQkJUFFnZXR2YWx1ZShyZXMsIHR1 cF9udW0sIGlfYXZnX3dpZHRoKSk7CisJaWYgKCFQUWdldGlzbnVsbChyZXMsIHR1cF9udW0sIGlf bl9kaXN0aW5jdCkpCisJCWFwcGVuZE5hbWVkQXJndW1lbnQob3V0LCBmb3V0LCAibl9kaXN0aW5j dCIsICJyZWFsIiwKKwkJCQkJCQlQUWdldHZhbHVlKHJlcywgdHVwX251bSwgaV9uX2Rpc3RpbmN0 KSk7CisJaWYgKCFQUWdldGlzbnVsbChyZXMsIHR1cF9udW0sIGlfbW9zdF9jb21tb25fdmFscykp CisJCWFwcGVuZE5hbWVkQXJndW1lbnQob3V0LCBmb3V0LCAibW9zdF9jb21tb25fdmFscyIsICJ0 ZXh0IiwKKwkJCQkJCQlQUWdldHZhbHVlKHJlcywgdHVwX251bSwgaV9tb3N0X2NvbW1vbl92YWxz KSk7CisJaWYgKCFQUWdldGlzbnVsbChyZXMsIHR1cF9udW0sIGlfbW9zdF9jb21tb25fZnJlcXMp KQorCQlhcHBlbmROYW1lZEFyZ3VtZW50KG91dCwgZm91dCwgIm1vc3RfY29tbW9uX2ZyZXFzIiwg InJlYWxbXSIsCisJCQkJCQkJUFFnZXR2YWx1ZShyZXMsIHR1cF9udW0sIGlfbW9zdF9jb21tb25f ZnJlcXMpKTsKKwlpZiAoIVBRZ2V0aXNudWxsKHJlcywgdHVwX251bSwgaV9oaXN0b2dyYW1fYm91 bmRzKSkKKwkJYXBwZW5kTmFtZWRBcmd1bWVudChvdXQsIGZvdXQsICJoaXN0b2dyYW1fYm91bmRz IiwgInRleHQiLAorCQkJCQkJCVBRZ2V0dmFsdWUocmVzLCB0dXBfbnVtLCBpX2hpc3RvZ3JhbV9i b3VuZHMpKTsKKwlpZiAoIVBRZ2V0aXNudWxsKHJlcywgdHVwX251bSwgaV9jb3JyZWxhdGlvbikp CisJCWFwcGVuZE5hbWVkQXJndW1lbnQob3V0LCBmb3V0LCAiY29ycmVsYXRpb24iLCAicmVhbCIs CisJCQkJCQkJUFFnZXR2YWx1ZShyZXMsIHR1cF9udW0sIGlfY29ycmVsYXRpb24pKTsKKwlpZiAo IVBRZ2V0aXNudWxsKHJlcywgdHVwX251bSwgaV9tb3N0X2NvbW1vbl9lbGVtcykpCisJCWFwcGVu ZE5hbWVkQXJndW1lbnQob3V0LCBmb3V0LCAibW9zdF9jb21tb25fZWxlbXMiLCAidGV4dCIsCisJ CQkJCQkJUFFnZXR2YWx1ZShyZXMsIHR1cF9udW0sIGlfbW9zdF9jb21tb25fZWxlbXMpKTsKKwlp ZiAoIVBRZ2V0aXNudWxsKHJlcywgdHVwX251bSwgaV9tb3N0X2NvbW1vbl9lbGVtX2ZyZXFzKSkK KwkJYXBwZW5kTmFtZWRBcmd1bWVudChvdXQsIGZvdXQsICJtb3N0X2NvbW1vbl9lbGVtX2ZyZXFz IiwgInJlYWxbXSIsCisJCQkJCQkJUFFnZXR2YWx1ZShyZXMsIHR1cF9udW0sIGlfbW9zdF9jb21t b25fZWxlbV9mcmVxcykpOworCWlmICghUFFnZXRpc251bGwocmVzLCB0dXBfbnVtLCBpX2VsZW1f Y291bnRfaGlzdG9ncmFtKSkKKwkJYXBwZW5kTmFtZWRBcmd1bWVudChvdXQsIGZvdXQsICJlbGVt X2NvdW50X2hpc3RvZ3JhbSIsICJyZWFsW10iLAorCQkJCQkJCVBRZ2V0dmFsdWUocmVzLCB0dXBf bnVtLCBpX2VsZW1fY291bnRfaGlzdG9ncmFtKSk7CisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24g Pj0gMTcwMDAwKQorCXsKKwkJaWYgKCFQUWdldGlzbnVsbChyZXMsIHR1cF9udW0sIGlfcmFuZ2Vf bGVuZ3RoX2hpc3RvZ3JhbSkpCisJCQlhcHBlbmROYW1lZEFyZ3VtZW50KG91dCwgZm91dCwgInJh bmdlX2xlbmd0aF9oaXN0b2dyYW0iLCAidGV4dCIsCisJCQkJCQkJCVBRZ2V0dmFsdWUocmVzLCB0 dXBfbnVtLCBpX3JhbmdlX2xlbmd0aF9oaXN0b2dyYW0pKTsKKwkJaWYgKCFQUWdldGlzbnVsbChy ZXMsIHR1cF9udW0sIGlfcmFuZ2VfZW1wdHlfZnJhYykpCisJCQlhcHBlbmROYW1lZEFyZ3VtZW50 KG91dCwgZm91dCwgInJhbmdlX2VtcHR5X2ZyYWMiLCAicmVhbCIsCisJCQkJCQkJCVBRZ2V0dmFs dWUocmVzLCB0dXBfbnVtLCBpX3JhbmdlX2VtcHR5X2ZyYWMpKTsKKwkJaWYgKCFQUWdldGlzbnVs bChyZXMsIHR1cF9udW0sIGlfcmFuZ2VfYm91bmRzX2hpc3RvZ3JhbSkpCisJCQlhcHBlbmROYW1l ZEFyZ3VtZW50KG91dCwgZm91dCwgInJhbmdlX2JvdW5kc19oaXN0b2dyYW0iLCAidGV4dCIsCisJ CQkJCQkJCVBRZ2V0dmFsdWUocmVzLCB0dXBfbnVtLCBpX3JhbmdlX2JvdW5kc19oaXN0b2dyYW0p KTsKKwl9CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIob3V0LCAiXG4pO1xuIik7Cit9CisKKworCisv KgorICogcHJpbnRSZWxhdGlvblN0YXRzIC0tCiAgKgogICogR2VuZXJhdGUgdGhlIFNRTCBzdGF0 ZW1lbnRzIG5lZWRlZCB0byByZXN0b3JlIGEgcmVsYXRpb24ncyBzdGF0aXN0aWNzLgogICovCkBA IC0xMDUyOCw2NCArMTA4NDMsMjEgQEAgc3RhdGljIGNoYXIgKgogcHJpbnRSZWxhdGlvblN0YXRz KEFyY2hpdmUgKmZvdXQsIGNvbnN0IHZvaWQgKnVzZXJBcmcpCiB7CiAJY29uc3QgUmVsU3RhdHNJ bmZvICpyc2luZm8gPSAoUmVsU3RhdHNJbmZvICopIHVzZXJBcmc7Ci0JY29uc3QgRHVtcGFibGVP YmplY3QgKmRvYmogPSAmcnNpbmZvLT5kb2JqOworCWNvbnN0IER1bXBhYmxlT2JqZWN0ICpkb2Jq OworCWNvbnN0IGNoYXIgKnJlbHNjaGVtYTsKKwljb25zdCBjaGFyICpyZWxuYW1lOworCisJQXJj aGl2ZUhhbmRsZSAqQUggPSAoQXJjaGl2ZUhhbmRsZSAqKSBmb3V0OwogCi0JUFFFeHBCdWZmZXJE YXRhIHF1ZXJ5OwogCVBRRXhwQnVmZmVyRGF0YSBvdXQ7CiAKLQlQR3Jlc3VsdCAgICpyZXM7Ci0K LQlzdGF0aWMgYm9vbCBmaXJzdF9xdWVyeSA9IHRydWU7Ci0Jc3RhdGljIGludAlpX2F0dG5hbWU7 Ci0Jc3RhdGljIGludAlpX2luaGVyaXRlZDsKLQlzdGF0aWMgaW50CWlfbnVsbF9mcmFjOwotCXN0 YXRpYyBpbnQJaV9hdmdfd2lkdGg7Ci0Jc3RhdGljIGludAlpX25fZGlzdGluY3Q7Ci0Jc3RhdGlj IGludAlpX21vc3RfY29tbW9uX3ZhbHM7Ci0Jc3RhdGljIGludAlpX21vc3RfY29tbW9uX2ZyZXFz OwotCXN0YXRpYyBpbnQJaV9oaXN0b2dyYW1fYm91bmRzOwotCXN0YXRpYyBpbnQJaV9jb3JyZWxh dGlvbjsKLQlzdGF0aWMgaW50CWlfbW9zdF9jb21tb25fZWxlbXM7Ci0Jc3RhdGljIGludAlpX21v c3RfY29tbW9uX2VsZW1fZnJlcXM7Ci0Jc3RhdGljIGludAlpX2VsZW1fY291bnRfaGlzdG9ncmFt OwotCXN0YXRpYyBpbnQJaV9yYW5nZV9sZW5ndGhfaGlzdG9ncmFtOwotCXN0YXRpYyBpbnQJaV9y YW5nZV9lbXB0eV9mcmFjOwotCXN0YXRpYyBpbnQJaV9yYW5nZV9ib3VuZHNfaGlzdG9ncmFtOwot Ci0JaW5pdFBRRXhwQnVmZmVyKCZxdWVyeSk7Ci0KLQlpZiAoZmlyc3RfcXVlcnkpCi0JewotCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cigmcXVlcnksCi0JCQkJCQkJICJQUkVQQVJFIGdldEF0dHJpYnV0 ZVN0YXRzKHBnX2NhdGFsb2cudGV4dCwgcGdfY2F0YWxvZy50ZXh0KSBBU1xuIgotCQkJCQkJCSAi U0VMRUNUIHMuYXR0bmFtZSwgcy5pbmhlcml0ZWQsICIKLQkJCQkJCQkgInMubnVsbF9mcmFjLCBz LmF2Z193aWR0aCwgcy5uX2Rpc3RpbmN0LCAiCi0JCQkJCQkJICJzLm1vc3RfY29tbW9uX3ZhbHMs IHMubW9zdF9jb21tb25fZnJlcXMsICIKLQkJCQkJCQkgInMuaGlzdG9ncmFtX2JvdW5kcywgcy5j b3JyZWxhdGlvbiwgIgotCQkJCQkJCSAicy5tb3N0X2NvbW1vbl9lbGVtcywgcy5tb3N0X2NvbW1v bl9lbGVtX2ZyZXFzLCAiCi0JCQkJCQkJICJzLmVsZW1fY291bnRfaGlzdG9ncmFtLCAiKTsKLQot CQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNzAwMDApCi0JCQlhcHBlbmRQUUV4cEJ1ZmZl clN0cigmcXVlcnksCi0JCQkJCQkJCSAicy5yYW5nZV9sZW5ndGhfaGlzdG9ncmFtLCAiCi0JCQkJ CQkJCSAicy5yYW5nZV9lbXB0eV9mcmFjLCAiCi0JCQkJCQkJCSAicy5yYW5nZV9ib3VuZHNfaGlz dG9ncmFtICIpOwotCQllbHNlCi0JCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmcXVlcnksCi0JCQkJ CQkJCSAiTlVMTCBBUyByYW5nZV9sZW5ndGhfaGlzdG9ncmFtLCIKLQkJCQkJCQkJICJOVUxMIEFT IHJhbmdlX2VtcHR5X2ZyYWMsIgotCQkJCQkJCQkgIk5VTEwgQVMgcmFuZ2VfYm91bmRzX2hpc3Rv Z3JhbSAiKTsKLQotCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmcXVlcnksCi0JCQkJCQkJICJGUk9N IHBnX2NhdGFsb2cucGdfc3RhdHMgcyAiCi0JCQkJCQkJICJXSEVSRSBzLnNjaGVtYW5hbWUgPSAk MSAiCi0JCQkJCQkJICJBTkQgcy50YWJsZW5hbWUgPSAkMiAiCi0JCQkJCQkJICJPUkRFUiBCWSBz LmF0dG5hbWUsIHMuaW5oZXJpdGVkIik7Ci0KLQkJRXhlY3V0ZVNxbFN0YXRlbWVudChmb3V0LCBx dWVyeS5kYXRhKTsKLQotCQlyZXNldFBRRXhwQnVmZmVyKCZxdWVyeSk7Ci0JfQorCUFzc2VydChy c2luZm8gIT0gTlVMTCk7CisJZG9iaiA9ICZyc2luZm8tPmRvYmo7CisJQXNzZXJ0KGRvYmogIT0g TlVMTCk7CisJcmVsc2NoZW1hID0gZG9iai0+bmFtZXNwYWNlLT5kb2JqLm5hbWU7CisJQXNzZXJ0 KHJlbHNjaGVtYSAhPSBOVUxMKTsKKwlyZWxuYW1lID0gZG9iai0+bmFtZTsKKwlBc3NlcnQocmVs bmFtZSAhPSBOVUxMKTsKIAogCWluaXRQUUV4cEJ1ZmZlcigmb3V0KTsKIApAQCAtMTA2MDQsMTMy ICsxMDg3Niw3MiBAQCBwcmludFJlbGF0aW9uU3RhdHMoQXJjaGl2ZSAqZm91dCwgY29uc3Qgdm9p ZCAqdXNlckFyZykKIAlhcHBlbmRQUUV4cEJ1ZmZlcigmb3V0LCAiXHQncmVsYWxsdmlzaWJsZScs ICclZCc6OmludGVnZXJcbik7XG4iLAogCQkJCQkgIHJzaW5mby0+cmVsYWxsdmlzaWJsZSk7CiAK LQkvKiBmZXRjaCBhdHRyaWJ1dGUgc3RhdHMgKi8KLQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmcXVl cnksICJFWEVDVVRFIGdldEF0dHJpYnV0ZVN0YXRzKCIpOwotCWFwcGVuZFN0cmluZ0xpdGVyYWxB SCgmcXVlcnksIGRvYmotPm5hbWVzcGFjZS0+ZG9iai5uYW1lLCBmb3V0KTsKLQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cigmcXVlcnksICIsICIpOwotCWFwcGVuZFN0cmluZ0xpdGVyYWxBSCgmcXVlcnks IGRvYmotPm5hbWUsIGZvdXQpOwotCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZxdWVyeSwgIikiKTsK KwlBSC0+dHhuQ291bnQrKzsKIAotCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS5k YXRhLCBQR1JFU19UVVBMRVNfT0spOworCWlmIChhdHRyc3RhdHMuc3RhdGUgPT0gU1RBVFNCVUZf VU5JTklUSUFMSVpFRCkKKwkJaW5pdEF0dHJpYnV0ZVN0YXRzKGZvdXQpOwogCi0JaWYgKGZpcnN0 X3F1ZXJ5KQorCS8qCisJICogQmVjYXVzZSB0aGUgcXVlcnkgcmV0dXJucyByb3dzIGluIHRoZSBz YW1lIG9yZGVyIGFzIHRoZSByZWxhdGlvbnMKKwkgKiByZXF1ZXN0ZWQsIGFuZCBiZWNhdXNlIGV2 ZXJ5IHJlbGF0aW9uIGdldHMgYXQgbGVhc3Qgb25lIHJvdyBpbiB0aGUKKwkgKiByZXN1bHQgc2V0 LCB0aGUgZmlyc3Qgcm93IGZvciB0aGlzIHJlbGF0aW9uIG11c3QgY29ycmVzcG9uZCBlaXRoZXIg dG8KKwkgKiB0aGUgY3VycmVudCByb3cgb2YgdGhpcyByZXN1bHQgc2V0IChpZiBvbmUgZXhpc3Rz KSBvciB0aGUgZmlyc3Qgcm93IG9mCisJICogdGhlIG5leHQgcmVzdWx0IHNldCAoaWYgdGhpcyBv bmUgaXMgYWxyZWFkeSBjb25zdW1lZCkuCisJICovCisJaWYgKGF0dHJzdGF0cy5zdGF0ZSAhPSBT VEFUU0JVRl9BQ1RJVkUpCisJCXBnX2ZhdGFsKCJFeGhhdXN0ZWQgZ2V0QXR0cmlidXRlU3RhdHMo KSBiZWZvcmUgcHJvY2Vzc2luZyAlcy4lcyIsCisJCQkJIHJzaW5mby0+ZG9iai5uYW1lc3BhY2Ut PmRvYmoubmFtZSwKKwkJCQkgcnNpbmZvLT5kb2JqLm5hbWUpOworCisJLyoKKwkgKiBJZiB0aGUg Y3VycmVudCByZXN1bHQgc2V0IGhhcyBiZWVuIGZ1bGx5IGNvbnN1bWVkLCB0aGVuIHRoZSByb3co cykgd2UKKwkgKiBuZWVkIChpZiBhbnkpIHdvdWxkIGJlIGZvdW5kIGluIHRoZSBuZXh0IG9uZS4g VGhpcyB3aWxsIHVwZGF0ZQorCSAqIGF0dHJzdGF0cy5yZXMgYW5kIGF0dHJzdGF0cy5pZHguCisJ ICovCisJaWYgKFBRbnR1cGxlcyhhdHRyc3RhdHMucmVzKSA8PSBhdHRyc3RhdHMuaWR4KQorCQlm ZXRjaE5leHRBdHRyaWJ1dGVTdGF0cyhmb3V0KTsKKworCXdoaWxlICh0cnVlKQogCXsKLQkJaV9h dHRuYW1lID0gUFFmbnVtYmVyKHJlcywgImF0dG5hbWUiKTsKLQkJaV9pbmhlcml0ZWQgPSBQUWZu dW1iZXIocmVzLCAiaW5oZXJpdGVkIik7Ci0JCWlfbnVsbF9mcmFjID0gUFFmbnVtYmVyKHJlcywg Im51bGxfZnJhYyIpOwotCQlpX2F2Z193aWR0aCA9IFBRZm51bWJlcihyZXMsICJhdmdfd2lkdGgi KTsKLQkJaV9uX2Rpc3RpbmN0ID0gUFFmbnVtYmVyKHJlcywgIm5fZGlzdGluY3QiKTsKLQkJaV9t b3N0X2NvbW1vbl92YWxzID0gUFFmbnVtYmVyKHJlcywgIm1vc3RfY29tbW9uX3ZhbHMiKTsKLQkJ aV9tb3N0X2NvbW1vbl9mcmVxcyA9IFBRZm51bWJlcihyZXMsICJtb3N0X2NvbW1vbl9mcmVxcyIp OwotCQlpX2hpc3RvZ3JhbV9ib3VuZHMgPSBQUWZudW1iZXIocmVzLCAiaGlzdG9ncmFtX2JvdW5k cyIpOwotCQlpX2NvcnJlbGF0aW9uID0gUFFmbnVtYmVyKHJlcywgImNvcnJlbGF0aW9uIik7Ci0J CWlfbW9zdF9jb21tb25fZWxlbXMgPSBQUWZudW1iZXIocmVzLCAibW9zdF9jb21tb25fZWxlbXMi KTsKLQkJaV9tb3N0X2NvbW1vbl9lbGVtX2ZyZXFzID0gUFFmbnVtYmVyKHJlcywgIm1vc3RfY29t bW9uX2VsZW1fZnJlcXMiKTsKLQkJaV9lbGVtX2NvdW50X2hpc3RvZ3JhbSA9IFBRZm51bWJlcihy ZXMsICJlbGVtX2NvdW50X2hpc3RvZ3JhbSIpOwotCQlpX3JhbmdlX2xlbmd0aF9oaXN0b2dyYW0g PSBQUWZudW1iZXIocmVzLCAicmFuZ2VfbGVuZ3RoX2hpc3RvZ3JhbSIpOwotCQlpX3JhbmdlX2Vt cHR5X2ZyYWMgPSBQUWZudW1iZXIocmVzLCAicmFuZ2VfZW1wdHlfZnJhYyIpOwotCQlpX3Jhbmdl X2JvdW5kc19oaXN0b2dyYW0gPSBQUWZudW1iZXIocmVzLCAicmFuZ2VfYm91bmRzX2hpc3RvZ3Jh bSIpOwotCQlmaXJzdF9xdWVyeSA9IGZhbHNlOwotCX0KLQotCS8qIHJlc3RvcmUgYXR0cmlidXRl IHN0YXRzICovCi0JZm9yIChpbnQgcm93bnVtID0gMDsgcm93bnVtIDwgUFFudHVwbGVzKHJlcyk7 IHJvd251bSsrKQotCXsKLQkJY29uc3QgY2hhciAqYXR0bmFtZTsKLQotCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cigmb3V0LCAiU0VMRUNUICogRlJPTSBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfYXR0cmli dXRlX3N0YXRzKFxuIik7Ci0JCWFwcGVuZFBRRXhwQnVmZmVyKCZvdXQsICJcdCd2ZXJzaW9uJywg JyV1Jzo6aW50ZWdlcixcbiIsCi0JCQkJCQkgIGZvdXQtPnJlbW90ZVZlcnNpb24pOwotCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmb3V0LCAiXHQnc2NoZW1hbmFtZScsICIpOwotCQlhcHBlbmRTdHJp bmdMaXRlcmFsQUgoJm91dCwgcnNpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLCBmb3V0 KTsKLQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJm91dCwgIixcblx0J3JlbG5hbWUnLCAiKTsKLQkJ YXBwZW5kU3RyaW5nTGl0ZXJhbEFIKCZvdXQsIHJzaW5mby0+ZG9iai5uYW1lLCBmb3V0KTsKLQot CQlpZiAoUFFnZXRpc251bGwocmVzLCByb3dudW0sIGlfYXR0bmFtZSkpCi0JCQlwZ19mYXRhbCgi YXR0bmFtZSBjYW5ub3QgYmUgTlVMTCIpOwotCQlhdHRuYW1lID0gUFFnZXR2YWx1ZShyZXMsIHJv d251bSwgaV9hdHRuYW1lKTsKKwkJaW50CQkJaV9zY2hlbWFuYW1lOworCQlpbnQJCQlpX3RhYmxl bmFtZTsKKwkJY2hhcgkgICAqc2NoZW1hbmFtZTsKKwkJY2hhcgkgICAqdGFibGVuYW1lOwkvKiBt aXNub21lciwgZm9sbG93aW5nIHBnX3N0YXRzIG5hbWluZyAqLwogCiAJCS8qCi0JCSAqIEluZGV4 ZXMgbG9vayB1cCBhdHRuYW1lIGluIGluZEF0dE5hbWVzIHRvIGRlcml2ZSBhdHRudW0sIGFsbCBv dGhlcnMKLQkJICogdXNlIGF0dG5hbWUgZGlyZWN0bHkuICBXZSBtdXN0IHNwZWNpZnkgYXR0bnVt IGZvciBpbmRleGVzLCBzaW5jZQotCQkgKiB0aGVpciBhdHRuYW1lcyBhcmUgbm90IG5lY2Vzc2Fy aWx5IHN0YWJsZSBhY3Jvc3MgZHVtcC9yZWxvYWQuCisJCSAqIElmIHdlIGhpdCB0aGUgZW5kIG9m IHRoZSByZXN1bHQgc2V0LCB0aGVuIHRoZXJlIGFyZSBubyBtb3JlIHJlY29yZHMKKwkJICogZm9y IHRoaXMgcmVsYXRpb24sIHNvIHdlIHNob3VsZCBzdG9wLCBidXQgZmlyc3QgZ2V0IHRoZSBuZXh0 IHJlc3VsdAorCQkgKiBzZXQgZm9yIHRoZSBuZXh0IGJhdGNoIG9mIHJlbGF0aW9ucy4KIAkJICov Ci0JCWlmIChyc2luZm8tPm5pbmRBdHROYW1lcyA9PSAwKQorCQlpZiAoUFFudHVwbGVzKGF0dHJz dGF0cy5yZXMpIDw9IGF0dHJzdGF0cy5pZHgpCiAJCXsKLQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZv dXQsICIsXG5cdCdhdHRuYW1lJywgIik7Ci0JCQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgoJm91dCwg YXR0bmFtZSwgZm91dCk7Ci0JCX0KLQkJZWxzZQotCQl7Ci0JCQlib29sCQlmb3VuZCA9IGZhbHNl OwotCi0JCQlmb3IgKGludCBpID0gMDsgaSA8IHJzaW5mby0+bmluZEF0dE5hbWVzOyBpKyspCi0J CQl7Ci0JCQkJaWYgKHN0cmNtcChhdHRuYW1lLCByc2luZm8tPmluZEF0dE5hbWVzW2ldKSA9PSAw KQotCQkJCXsKLQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJm91dCwgIixcblx0J2F0dG51bScsICcl ZCc6OnNtYWxsaW50IiwKLQkJCQkJCQkJCSAgaSArIDEpOwotCQkJCQlmb3VuZCA9IHRydWU7Ci0J CQkJCWJyZWFrOwotCQkJCX0KLQkJCX0KLQotCQkJaWYgKCFmb3VuZCkKLQkJCQlwZ19mYXRhbCgi Y291bGQgbm90IGZpbmQgaW5kZXggYXR0bmFtZSBcIiVzXCIiLCBhdHRuYW1lKTsKKwkJCWZldGNo TmV4dEF0dHJpYnV0ZVN0YXRzKGZvdXQpOworCQkJYnJlYWs7CiAJCX0KIAotCQlpZiAoIVBRZ2V0 aXNudWxsKHJlcywgcm93bnVtLCBpX2luaGVyaXRlZCkpCi0JCQlhcHBlbmROYW1lZEFyZ3VtZW50 KCZvdXQsIGZvdXQsICJpbmhlcml0ZWQiLCAiYm9vbGVhbiIsCi0JCQkJCQkJCVBRZ2V0dmFsdWUo cmVzLCByb3dudW0sIGlfaW5oZXJpdGVkKSk7Ci0JCWlmICghUFFnZXRpc251bGwocmVzLCByb3du dW0sIGlfbnVsbF9mcmFjKSkKLQkJCWFwcGVuZE5hbWVkQXJndW1lbnQoJm91dCwgZm91dCwgIm51 bGxfZnJhYyIsICJyZWFsIiwKLQkJCQkJCQkJUFFnZXR2YWx1ZShyZXMsIHJvd251bSwgaV9udWxs X2ZyYWMpKTsKLQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIHJvd251bSwgaV9hdmdfd2lkdGgpKQot CQkJYXBwZW5kTmFtZWRBcmd1bWVudCgmb3V0LCBmb3V0LCAiYXZnX3dpZHRoIiwgImludGVnZXIi LAotCQkJCQkJCQlQUWdldHZhbHVlKHJlcywgcm93bnVtLCBpX2F2Z193aWR0aCkpOwotCQlpZiAo IVBRZ2V0aXNudWxsKHJlcywgcm93bnVtLCBpX25fZGlzdGluY3QpKQotCQkJYXBwZW5kTmFtZWRB cmd1bWVudCgmb3V0LCBmb3V0LCAibl9kaXN0aW5jdCIsICJyZWFsIiwKLQkJCQkJCQkJUFFnZXR2 YWx1ZShyZXMsIHJvd251bSwgaV9uX2Rpc3RpbmN0KSk7Ci0JCWlmICghUFFnZXRpc251bGwocmVz LCByb3dudW0sIGlfbW9zdF9jb21tb25fdmFscykpCi0JCQlhcHBlbmROYW1lZEFyZ3VtZW50KCZv dXQsIGZvdXQsICJtb3N0X2NvbW1vbl92YWxzIiwgInRleHQiLAotCQkJCQkJCQlQUWdldHZhbHVl KHJlcywgcm93bnVtLCBpX21vc3RfY29tbW9uX3ZhbHMpKTsKLQkJaWYgKCFQUWdldGlzbnVsbChy ZXMsIHJvd251bSwgaV9tb3N0X2NvbW1vbl9mcmVxcykpCi0JCQlhcHBlbmROYW1lZEFyZ3VtZW50 KCZvdXQsIGZvdXQsICJtb3N0X2NvbW1vbl9mcmVxcyIsICJyZWFsW10iLAotCQkJCQkJCQlQUWdl dHZhbHVlKHJlcywgcm93bnVtLCBpX21vc3RfY29tbW9uX2ZyZXFzKSk7Ci0JCWlmICghUFFnZXRp c251bGwocmVzLCByb3dudW0sIGlfaGlzdG9ncmFtX2JvdW5kcykpCi0JCQlhcHBlbmROYW1lZEFy Z3VtZW50KCZvdXQsIGZvdXQsICJoaXN0b2dyYW1fYm91bmRzIiwgInRleHQiLAotCQkJCQkJCQlQ UWdldHZhbHVlKHJlcywgcm93bnVtLCBpX2hpc3RvZ3JhbV9ib3VuZHMpKTsKLQkJaWYgKCFQUWdl dGlzbnVsbChyZXMsIHJvd251bSwgaV9jb3JyZWxhdGlvbikpCi0JCQlhcHBlbmROYW1lZEFyZ3Vt ZW50KCZvdXQsIGZvdXQsICJjb3JyZWxhdGlvbiIsICJyZWFsIiwKLQkJCQkJCQkJUFFnZXR2YWx1 ZShyZXMsIHJvd251bSwgaV9jb3JyZWxhdGlvbikpOwotCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywg cm93bnVtLCBpX21vc3RfY29tbW9uX2VsZW1zKSkKLQkJCWFwcGVuZE5hbWVkQXJndW1lbnQoJm91 dCwgZm91dCwgIm1vc3RfY29tbW9uX2VsZW1zIiwgInRleHQiLAotCQkJCQkJCQlQUWdldHZhbHVl KHJlcywgcm93bnVtLCBpX21vc3RfY29tbW9uX2VsZW1zKSk7Ci0JCWlmICghUFFnZXRpc251bGwo cmVzLCByb3dudW0sIGlfbW9zdF9jb21tb25fZWxlbV9mcmVxcykpCi0JCQlhcHBlbmROYW1lZEFy Z3VtZW50KCZvdXQsIGZvdXQsICJtb3N0X2NvbW1vbl9lbGVtX2ZyZXFzIiwgInJlYWxbXSIsCi0J CQkJCQkJCVBRZ2V0dmFsdWUocmVzLCByb3dudW0sIGlfbW9zdF9jb21tb25fZWxlbV9mcmVxcykp OwotCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgcm93bnVtLCBpX2VsZW1fY291bnRfaGlzdG9ncmFt KSkKLQkJCWFwcGVuZE5hbWVkQXJndW1lbnQoJm91dCwgZm91dCwgImVsZW1fY291bnRfaGlzdG9n cmFtIiwgInJlYWxbXSIsCi0JCQkJCQkJCVBRZ2V0dmFsdWUocmVzLCByb3dudW0sIGlfZWxlbV9j b3VudF9oaXN0b2dyYW0pKTsKLQkJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTcwMDAwKQot CQl7Ci0JCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgcm93bnVtLCBpX3JhbmdlX2xlbmd0aF9oaXN0 b2dyYW0pKQotCQkJCWFwcGVuZE5hbWVkQXJndW1lbnQoJm91dCwgZm91dCwgInJhbmdlX2xlbmd0 aF9oaXN0b2dyYW0iLCAidGV4dCIsCi0JCQkJCQkJCQlQUWdldHZhbHVlKHJlcywgcm93bnVtLCBp X3JhbmdlX2xlbmd0aF9oaXN0b2dyYW0pKTsKLQkJCWlmICghUFFnZXRpc251bGwocmVzLCByb3du dW0sIGlfcmFuZ2VfZW1wdHlfZnJhYykpCi0JCQkJYXBwZW5kTmFtZWRBcmd1bWVudCgmb3V0LCBm b3V0LCAicmFuZ2VfZW1wdHlfZnJhYyIsICJyZWFsIiwKLQkJCQkJCQkJCVBRZ2V0dmFsdWUocmVz LCByb3dudW0sIGlfcmFuZ2VfZW1wdHlfZnJhYykpOwotCQkJaWYgKCFQUWdldGlzbnVsbChyZXMs IHJvd251bSwgaV9yYW5nZV9ib3VuZHNfaGlzdG9ncmFtKSkKLQkJCQlhcHBlbmROYW1lZEFyZ3Vt ZW50KCZvdXQsIGZvdXQsICJyYW5nZV9ib3VuZHNfaGlzdG9ncmFtIiwgInRleHQiLAotCQkJCQkJ CQkJUFFnZXR2YWx1ZShyZXMsIHJvd251bSwgaV9yYW5nZV9ib3VuZHNfaGlzdG9ncmFtKSk7Ci0J CX0KLQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJm91dCwgIlxuKTtcbiIpOworCQlpX3NjaGVtYW5h bWUgPSBQUWZudW1iZXIoYXR0cnN0YXRzLnJlcywgInNjaGVtYW5hbWUiKTsKKwkJQXNzZXJ0KGlf c2NoZW1hbmFtZSA+PSAwKTsKKwkJaV90YWJsZW5hbWUgPSBQUWZudW1iZXIoYXR0cnN0YXRzLnJl cywgInRhYmxlbmFtZSIpOworCQlBc3NlcnQoaV90YWJsZW5hbWUgPj0gMCk7CisKKwkJaWYgKFBR Z2V0aXNudWxsKGF0dHJzdGF0cy5yZXMsIGF0dHJzdGF0cy5pZHgsIGlfc2NoZW1hbmFtZSkpCisJ CQlwZ19mYXRhbCgiZ2V0QXR0cmlidXRlU3RhdHMoKSBzY2hlbWFuYW1lIGNhbm5vdCBiZSBOVUxM Iik7CisKKwkJaWYgKFBRZ2V0aXNudWxsKGF0dHJzdGF0cy5yZXMsIGF0dHJzdGF0cy5pZHgsIGlf dGFibGVuYW1lKSkKKwkJCXBnX2ZhdGFsKCJnZXRBdHRyaWJ1dGVTdGF0cygpIHRhYmxlbmFtZSBj YW5ub3QgYmUgTlVMTCIpOworCisJCXNjaGVtYW5hbWUgPSBQUWdldHZhbHVlKGF0dHJzdGF0cy5y ZXMsIGF0dHJzdGF0cy5pZHgsIGlfc2NoZW1hbmFtZSk7CisJCXRhYmxlbmFtZSA9IFBRZ2V0dmFs dWUoYXR0cnN0YXRzLnJlcywgYXR0cnN0YXRzLmlkeCwgaV90YWJsZW5hbWUpOworCisJCS8qIHN0 b3AgaWYgY3VycmVudCBzdGF0IHJvdyBpc24ndCBmb3IgdGhpcyByZWxhdGlvbiAqLworCQlpZiAo c3RyY21wKHJlbG5hbWUsIHRhYmxlbmFtZSkgIT0gMCB8fCBzdHJjbXAocmVsc2NoZW1hLCBzY2hl bWFuYW1lKSAhPSAwKQorCQkJYnJlYWs7CisKKwkJYXBwZW5kQXR0cmlidXRlU3RhdHMoZm91dCwg Jm91dCwgcnNpbmZvKTsKKwkJQUgtPnR4bkNvdW50Kys7CisJCWF0dHJzdGF0cy5pZHgrKzsKIAl9 CiAKLQlQUWNsZWFyKHJlcyk7Ci0KLQl0ZXJtUFFFeHBCdWZmZXIoJnF1ZXJ5KTsKIAlyZXR1cm4g b3V0LmRhdGE7CiB9CiAKLS0gCjIuNDkuMAoK --0000000000003d44c1063134f087 Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0004-Downgrade-many-pg_restore_-_stats-errors-to-warn.patch" Content-Disposition: attachment; filename="v10-0004-Downgrade-many-pg_restore_-_stats-errors-to-warn.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m8p9b1c83 RnJvbSA2NTFlNzBhZTcwNWQ1YTRmMDgxNTA5ZTY2YTc0MzQyMmQyZTg2YWU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb3JleSBIdWlua2VyIDxjb3JleS5odWlua2VyQGdtYWlsLmNv bT4KRGF0ZTogU2F0LCA4IE1hciAyMDI1IDAwOjUyOjQxIC0wNTAwClN1YmplY3Q6IFtQQVRDSCB2 MTAgNC80XSBEb3duZ3JhZGUgbWFueSBwZ19yZXN0b3JlXypfc3RhdHMgZXJyb3JzIHRvIHdhcm5p bmdzLgoKV2Ugd2FudCB0byBhdm9pZCBlcnJvcnMgdGhhdCBjYW4gcG90ZW50aWFsbHkgc3RvcCBh biBvdGhlcndpc2UKc3VjY2Vzc2Z1bCBwZ191cGdyYWRlIG9yIHBnX3Jlc3RvcmUgb3BlcmF0aW9u LiBXaXRoIHRoYXQgaW4gbWluZCwgY2hhbmdlCmFzIG1hbnkgRVJST1IgcmVwb3J0cyB0byBXQVJO SU5HICsgZWFybHkgdGVybWluYXRpb24gd2l0aCBubyBkYXRhCnVwZGF0ZWQuCi0tLQogc3JjL2lu Y2x1ZGUvc3RhdGlzdGljcy9zdGF0X3V0aWxzLmggICAgICAgIHwgICA0ICstCiBzcmMvYmFja2Vu ZC9zdGF0aXN0aWNzL2F0dHJpYnV0ZV9zdGF0cy5jICAgfCAxMjAgKysrKysrKysrKy0tLS0KIHNy Yy9iYWNrZW5kL3N0YXRpc3RpY3MvcmVsYXRpb25fc3RhdHMuYyAgICB8ICAxMiArLQogc3JjL2Jh Y2tlbmQvc3RhdGlzdGljcy9zdGF0X3V0aWxzLmMgICAgICAgIHwgIDY1ICsrKysrKy0tCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2ltcG9ydC5vdXQgfCAxODQgKysrKysrKysrKysr KysrKy0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0c19pbXBvcnQuc3FsICAgICAgfCAg MzYgKystLQogNiBmaWxlcyBjaGFuZ2VkLCAzMDkgaW5zZXJ0aW9ucygrKSwgMTEyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0YXRpc3RpY3Mvc3RhdF91dGlscy5oIGIv c3JjL2luY2x1ZGUvc3RhdGlzdGljcy9zdGF0X3V0aWxzLmgKaW5kZXggNTEyZWI3NzZlMGUuLjgw OWM4MjYzYTQxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdGF0aXN0aWNzL3N0YXRfdXRpbHMu aAorKysgYi9zcmMvaW5jbHVkZS9zdGF0aXN0aWNzL3N0YXRfdXRpbHMuaApAQCAtMjEsNyArMjEs NyBAQCBzdHJ1Y3QgU3RhdHNBcmdJbmZvCiAJT2lkCQkJYXJndHlwZTsKIH07CiAKLWV4dGVybiB2 b2lkIHN0YXRzX2NoZWNrX3JlcXVpcmVkX2FyZyhGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywKK2V4 dGVybiBib29sIHN0YXRzX2NoZWNrX3JlcXVpcmVkX2FyZyhGdW5jdGlvbkNhbGxJbmZvIGZjaW5m bywKIAkJCQkJCQkJCSBzdHJ1Y3QgU3RhdHNBcmdJbmZvICphcmdpbmZvLAogCQkJCQkJCQkJIGlu dCBhcmdudW0pOwogZXh0ZXJuIGJvb2wgc3RhdHNfY2hlY2tfYXJnX2FycmF5KEZ1bmN0aW9uQ2Fs bEluZm8gZmNpbmZvLApAQCAtMzAsNyArMzAsNyBAQCBleHRlcm4gYm9vbCBzdGF0c19jaGVja19h cmdfcGFpcihGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywKIAkJCQkJCQkJIHN0cnVjdCBTdGF0c0Fy Z0luZm8gKmFyZ2luZm8sCiAJCQkJCQkJCSBpbnQgYXJnbnVtMSwgaW50IGFyZ251bTIpOwogCi1l eHRlcm4gdm9pZCBzdGF0c19sb2NrX2NoZWNrX3ByaXZpbGVnZXMoT2lkIHJlbG9pZCk7CitleHRl cm4gYm9vbCBzdGF0c19sb2NrX2NoZWNrX3ByaXZpbGVnZXMoT2lkIHJlbG9pZCk7CiAKIGV4dGVy biBPaWQJc3RhdHNfbG9va3VwX3JlbGlkKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIg KnJlbG5hbWUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL2F0dHJpYnV0 ZV9zdGF0cy5jIGIvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9hdHRyaWJ1dGVfc3RhdHMuYwppbmRl eCBmNWViMTdiYTQyZC4uYjdiYTE2MjIzOTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0YXRp c3RpY3MvYXR0cmlidXRlX3N0YXRzLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RhdGlzdGljcy9hdHRy aWJ1dGVfc3RhdHMuYwpAQCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgU3RhdHNBcmdJ bmZvIGNsZWFyYXJnaW5mb1tdID0KIAogc3RhdGljIGJvb2wgYXR0cmlidXRlX3N0YXRpc3RpY3Nf dXBkYXRlKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvKTsKIHN0YXRpYyBOb2RlICpnZXRfYXR0cl9l eHByKFJlbGF0aW9uIHJlbCwgaW50IGF0dG51bSk7Ci1zdGF0aWMgdm9pZCBnZXRfYXR0cl9zdGF0 X3R5cGUoT2lkIHJlbG9pZCwgQXR0ck51bWJlciBhdHRudW0sCitzdGF0aWMgYm9vbCBnZXRfYXR0 cl9zdGF0X3R5cGUoT2lkIHJlbG9pZCwgQXR0ck51bWJlciBhdHRudW0sCiAJCQkJCQkJICAgT2lk ICphdHR0eXBpZCwgaW50MzIgKmF0dHR5cG1vZCwKIAkJCQkJCQkgICBjaGFyICphdHR0eXB0eXBl LCBPaWQgKmF0dHR5cGNvbGwsCiAJCQkJCQkJICAgT2lkICplcV9vcHIsIE9pZCAqbHRfb3ByKTsK QEAgLTEyOSwxMCArMTI5LDEyIEBAIHN0YXRpYyB2b2lkIGluaXRfZW1wdHlfc3RhdHNfdHVwbGUo T2lkIHJlbG9pZCwgaW50MTYgYXR0bnVtLCBib29sIGluaGVyaXRlZCwKICAqIHN0b3JlZCBhcyBh biBhbnlhcnJheSwgYW5kIHRoZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgYXJyYXkgbmVlZHMgdG8g c3RvcmUKICAqIHRoZSBjb3JyZWN0IGVsZW1lbnQgdHlwZSwgd2hpY2ggbXVzdCBiZSBkZXJpdmVk IGZyb20gdGhlIGF0dHJpYnV0ZS4KICAqCi0gKiBNYWpvciBlcnJvcnMsIHN1Y2ggYXMgdGhlIHRh YmxlIG5vdCBleGlzdGluZywgdGhlIGF0dHJpYnV0ZSBub3QgZXhpc3RpbmcsCi0gKiBvciBhIHBl cm1pc3Npb25zIGZhaWx1cmUgYXJlIGFsd2F5cyByZXBvcnRlZCBhdCBFUlJPUi4gT3RoZXIgZXJy b3JzLCBzdWNoCi0gKiBhcyBhIGNvbnZlcnNpb24gZmFpbHVyZSBvbiBvbmUgc3RhdGlzdGljIGtp bmQsIGFyZSByZXBvcnRlZCBhcyBhIFdBUk5JTkcKLSAqIGFuZCBvdGhlciBzdGF0aXN0aWMga2lu ZHMgbWF5IHN0aWxsIGJlIHVwZGF0ZWQuCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBkdXJp bmcgZGF0YWJhc2UgdXBncmFkZXMgYW5kIHJlc3RvcmF0aW9ucywgdGhlcmVmb3JlCisgKiBpdCBp cyBpbXBlcmF0aXZlIHRvIGF2b2lkIEVSUk9ScyB0aGF0IGNvdWxkIHBvdGVudGlhbGx5IGVuZCB0 aGUgdXBncmFkZSBvcgorICogcmVzdG9yZSB1bmxlc3MuIE1ham9yIGVycm9ycywgc3VjaCBhcyB0 aGUgdGFibGUgbm90IGV4aXN0aW5nLCB0aGUgYXR0cmlidXRlCisgKiBub3QgZXhpc3RpbmcsIG9y IHBlcm1pc3Npb25zIGZhaWx1cmUgYXJlIHJlcG9ydGVkIGFzIFdBUk5JTkdzIHdpdGggYW4gZW5k IHRvCisgKiB0aGUgZnVuY3Rpb24sIHRodXMgYWxsb3dpbmcgdGhlIHVwZ3JhZGUvcmVzdG9yZSB0 byBjb250aW51ZSwgYnV0IHdpdGhvdXQgdGhlCisgKiBzdGF0cyB0aGF0IGNhbiBiZSByZWdlbmVy ZWF0ZWQgb25jZSB0aGUgZGF0YWJhc2UgaXMgb25saW5lIGFnYWluLgogICovCiBzdGF0aWMgYm9v bAogYXR0cmlidXRlX3N0YXRpc3RpY3NfdXBkYXRlKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvKQpA QCAtMTQ4LDggKzE1MCw4IEBAIGF0dHJpYnV0ZV9zdGF0aXN0aWNzX3VwZGF0ZShGdW5jdGlvbkNh bGxJbmZvIGZjaW5mbykKIAlIZWFwVHVwbGUJc3RhdHVwOwogCiAJT2lkCQkJYXR0dHlwaWQgPSBJ bnZhbGlkT2lkOwotCWludDMyCQlhdHR0eXBtb2Q7Ci0JY2hhcgkJYXR0dHlwdHlwZTsKKwlpbnQz MgkJYXR0dHlwbW9kID0gLTE7CisJY2hhcgkJYXR0dHlwdHlwZSA9IFRZUFRZUEVfUFNFVURPOyAv KiBOb3QgYSBncmVhdCBkZWZhdWx0LCBidXQgdGhlcmUgaXMgbm8gVFlQVFlQRV9JTlZBTElEICov CiAJT2lkCQkJYXR0dHlwY29sbCA9IEludmFsaWRPaWQ7CiAJT2lkCQkJZXFfb3ByID0gSW52YWxp ZE9pZDsKIAlPaWQJCQlsdF9vcHIgPSBJbnZhbGlkT2lkOwpAQCAtMTc2LDM4ICsxNzgsNTIgQEAg YXR0cmlidXRlX3N0YXRpc3RpY3NfdXBkYXRlKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvKQogCiAJ Ym9vbAkJcmVzdWx0ID0gdHJ1ZTsKIAotCXN0YXRzX2NoZWNrX3JlcXVpcmVkX2FyZyhmY2luZm8s IGF0dGFyZ2luZm8sIEFUVFJFTFNDSEVNQV9BUkcpOwotCXN0YXRzX2NoZWNrX3JlcXVpcmVkX2Fy ZyhmY2luZm8sIGF0dGFyZ2luZm8sIEFUVFJFTE5BTUVfQVJHKTsKKwlpZiAoIXN0YXRzX2NoZWNr X3JlcXVpcmVkX2FyZyhmY2luZm8sIGF0dGFyZ2luZm8sIEFUVFJFTFNDSEVNQV9BUkcpKQorCQly ZXR1cm4gZmFsc2U7CisJaWYgKCFzdGF0c19jaGVja19yZXF1aXJlZF9hcmcoZmNpbmZvLCBhdHRh cmdpbmZvLCBBVFRSRUxOQU1FX0FSRykpCisJCXJldHVybiBmYWxzZTsKIAogCW5zcG5hbWUgPSBU ZXh0RGF0dW1HZXRDU3RyaW5nKFBHX0dFVEFSR19EQVRVTShBVFRSRUxTQ0hFTUFfQVJHKSk7CiAJ cmVsbmFtZSA9IFRleHREYXR1bUdldENTdHJpbmcoUEdfR0VUQVJHX0RBVFVNKEFUVFJFTE5BTUVf QVJHKSk7CiAKIAlyZWxvaWQgPSBzdGF0c19sb29rdXBfcmVsaWQobnNwbmFtZSwgcmVsbmFtZSk7 CisJaWYgKCFPaWRJc1ZhbGlkKHJlbG9pZCkpCisJCXJldHVybiBmYWxzZTsKIAogCWlmIChSZWNv dmVyeUluUHJvZ3Jlc3MoKSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVyZXBvcnQoV0FSTklO RywKIAkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRF KSwKIAkJCQkgZXJybXNnKCJyZWNvdmVyeSBpcyBpbiBwcm9ncmVzcyIpLAogCQkJCSBlcnJoaW50 KCJTdGF0aXN0aWNzIGNhbm5vdCBiZSBtb2RpZmllZCBkdXJpbmcgcmVjb3ZlcnkuIikpKTsKKwkJ cmV0dXJuIGZhbHNlOworCX0KIAogCS8qIGxvY2sgYmVmb3JlIGxvb2tpbmcgdXAgYXR0cmlidXRl ICovCi0Jc3RhdHNfbG9ja19jaGVja19wcml2aWxlZ2VzKHJlbG9pZCk7CisJaWYgKCFzdGF0c19s b2NrX2NoZWNrX3ByaXZpbGVnZXMocmVsb2lkKSkKKwkJcmV0dXJuIGZhbHNlOwogCiAJLyogdXNl ciBjYW4gc3BlY2lmeSBlaXRoZXIgYXR0bmFtZSBvciBhdHRudW0sIGJ1dCBub3QgYm90aCAqLwog CWlmICghUEdfQVJHSVNOVUxMKEFUVE5BTUVfQVJHKSkKIAl7CiAJCWlmICghUEdfQVJHSVNOVUxM KEFUVE5VTV9BUkcpKQotCQkJZXJlcG9ydChFUlJPUiwKKwkJeworCQkJZXJlcG9ydChXQVJOSU5H LAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkJ IGVycm1zZygiY2Fubm90IHNwZWNpZnkgYm90aCBhdHRuYW1lIGFuZCBhdHRudW0iKSkpOworCQkJ cmV0dXJuIGZhbHNlOworCQl9CiAJCWF0dG5hbWUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKFBHX0dF VEFSR19EQVRVTShBVFROQU1FX0FSRykpOwogCQlhdHRudW0gPSBnZXRfYXR0bnVtKHJlbG9pZCwg YXR0bmFtZSk7CiAJCS8qIG5vdGUgdGhhdCB0aGlzIHRlc3QgY292ZXJzIGF0dGlzZHJvcHBlZCBj YXNlcyB0b286ICovCiAJCWlmIChhdHRudW0gPT0gSW52YWxpZEF0dHJOdW1iZXIpCi0JCQllcmVw b3J0KEVSUk9SLAorCQl7CisJCQllcmVwb3J0KFdBUk5JTkcsCiAJCQkJCShlcnJjb2RlKEVSUkNP REVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVs YXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJCQlhdHRuYW1lLCByZWxuYW1lKSkp OworCQkJcmV0dXJuIGZhbHNlOworCQl9CiAJfQogCWVsc2UgaWYgKCFQR19BUkdJU05VTEwoQVRU TlVNX0FSRykpCiAJewpAQCAtMjE2LDI3ICsyMzIsMzMgQEAgYXR0cmlidXRlX3N0YXRpc3RpY3Nf dXBkYXRlKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvKQogCQkvKiBhbm5veWluZ2x5LCBnZXRfYXR0 bmFtZSBkb2Vzbid0IGNoZWNrIGF0dGlzZHJvcHBlZCAqLwogCQlpZiAoYXR0bmFtZSA9PSBOVUxM IHx8CiAJCQkhU2VhcmNoU3lzQ2FjaGVFeGlzdHNBdHROYW1lKHJlbG9pZCwgYXR0bmFtZSkpCi0J CQllcmVwb3J0KEVSUk9SLAorCQl7CisJCQllcmVwb3J0KFdBUk5JTkcsCiAJCQkJCShlcnJjb2Rl KEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJCSBlcnJtc2coImNvbHVtbiAlZCBvZiBy ZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAogCQkJCQkJCWF0dG51bSwgcmVsbmFtZSkp KTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQogCX0KIAllbHNlCiAJewotCQllcmVwb3J0KEVSUk9S LAorCQllcmVwb3J0KFdBUk5JTkcsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFN RVRFUl9WQUxVRSksCiAJCQkJIGVycm1zZygibXVzdCBzcGVjaWZ5IGVpdGhlciBhdHRuYW1lIG9y IGF0dG51bSIpKSk7Ci0JCWF0dG5hbWUgPSBOVUxMOwkJCS8qIGtlZXAgY29tcGlsZXIgcXVpZXQg Ki8KLQkJYXR0bnVtID0gMDsKKwkJcmV0dXJuIGZhbHNlOwogCX0KIAogCWlmIChhdHRudW0gPCAw KQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJlcG9ydChXQVJOSU5HLAogCQkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgbW9k aWZ5IHN0YXRpc3RpY3Mgb24gc3lzdGVtIGNvbHVtbiBcIiVzXCIiLAogCQkJCQkJYXR0bmFtZSkp KTsKKwkJcmV0dXJuIGZhbHNlOworCX0KIAotCXN0YXRzX2NoZWNrX3JlcXVpcmVkX2FyZyhmY2lu Zm8sIGF0dGFyZ2luZm8sIElOSEVSSVRFRF9BUkcpOworCWlmICghc3RhdHNfY2hlY2tfcmVxdWly ZWRfYXJnKGZjaW5mbywgYXR0YXJnaW5mbywgSU5IRVJJVEVEX0FSRykpCisJCXJldHVybiBmYWxz ZTsKIAlpbmhlcml0ZWQgPSBQR19HRVRBUkdfQk9PTChJTkhFUklURURfQVJHKTsKIAogCS8qCkBA IC0yODUsMTAgKzMwNywxMSBAQCBhdHRyaWJ1dGVfc3RhdGlzdGljc191cGRhdGUoRnVuY3Rpb25D YWxsSW5mbyBmY2luZm8pCiAJfQogCiAJLyogZGVyaXZlIGluZm9ybWF0aW9uIGZyb20gYXR0cmli dXRlICovCi0JZ2V0X2F0dHJfc3RhdF90eXBlKHJlbG9pZCwgYXR0bnVtLAotCQkJCQkgICAmYXR0 dHlwaWQsICZhdHR0eXBtb2QsCi0JCQkJCSAgICZhdHR0eXB0eXBlLCAmYXR0dHlwY29sbCwKLQkJ CQkJICAgJmVxX29wciwgJmx0X29wcik7CisJaWYgKCFnZXRfYXR0cl9zdGF0X3R5cGUocmVsb2lk LCBhdHRudW0sCisJCQkJCQkJJmF0dHR5cGlkLCAmYXR0dHlwbW9kLAorCQkJCQkJCSZhdHR0eXB0 eXBlLCAmYXR0dHlwY29sbCwKKwkJCQkJCQkmZXFfb3ByLCAmbHRfb3ByKSkKKwkJcmVzdWx0ID0g ZmFsc2U7CiAKIAkvKiBpZiBuZWVkZWQsIGRlcml2ZSBlbGVtZW50IHR5cGUgKi8KIAlpZiAoZG9f bWNlbGVtIHx8IGRvX2RlY2hpc3QpCkBAIC01NjgsNyArNTkxLDcgQEAgZ2V0X2F0dHJfZXhwcihS ZWxhdGlvbiByZWwsIGludCBhdHRudW0pCiAvKgogICogRGVyaXZlIHR5cGUgaW5mb3JtYXRpb24g ZnJvbSB0aGUgYXR0cmlidXRlLgogICovCi1zdGF0aWMgdm9pZAorc3RhdGljIGJvb2wKIGdldF9h dHRyX3N0YXRfdHlwZShPaWQgcmVsb2lkLCBBdHRyTnVtYmVyIGF0dG51bSwKIAkJCQkgICBPaWQg KmF0dHR5cGlkLCBpbnQzMiAqYXR0dHlwbW9kLAogCQkJCSAgIGNoYXIgKmF0dHR5cHR5cGUsIE9p ZCAqYXR0dHlwY29sbCwKQEAgLTU4NSwxOCArNjA4LDI2IEBAIGdldF9hdHRyX3N0YXRfdHlwZShP aWQgcmVsb2lkLCBBdHRyTnVtYmVyIGF0dG51bSwKIAogCS8qIEF0dHJpYnV0ZSBub3QgZm91bmQg Ki8KIAlpZiAoIUhlYXBUdXBsZUlzVmFsaWQoYXR1cCkpCi0JCWVyZXBvcnQoRVJST1IsCisJewor CQllcmVwb3J0KFdBUk5JTkcsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1O KSwKIAkJCQkgZXJybXNnKCJhdHRyaWJ1dGUgJWQgb2YgcmVsYXRpb24gXCIlc1wiIGRvZXMgbm90 IGV4aXN0IiwKIAkJCQkJCWF0dG51bSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsK KwkJcmVsYXRpb25fY2xvc2UocmVsLCBOb0xvY2spOworCQlyZXR1cm4gZmFsc2U7CisJfQogCiAJ YXR0ciA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKGF0dXApOwogCiAJaWYgKGF0dHIt PmF0dGlzZHJvcHBlZCkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVyZXBvcnQoV0FSTklORywK IAkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSBlcnJtc2coImF0 dHJpYnV0ZSAlZCBvZiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAogCQkJCQkJYXR0 bnVtLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCQlyZWxhdGlvbl9jbG9zZShy ZWwsIE5vTG9jayk7CisJCXJldHVybiBmYWxzZTsKKwl9CiAKIAlleHByID0gZ2V0X2F0dHJfZXhw cihyZWwsIGF0dHItPmF0dG51bSk7CiAKQEAgLTY0NSw2ICs2NzYsNyBAQCBnZXRfYXR0cl9zdGF0 X3R5cGUoT2lkIHJlbG9pZCwgQXR0ck51bWJlciBhdHRudW0sCiAJCSphdHR0eXBjb2xsID0gREVG QVVMVF9DT0xMQVRJT05fT0lEOwogCiAJcmVsYXRpb25fY2xvc2UocmVsLCBOb0xvY2spOworCXJl dHVybiB0cnVlOwogfQogCiAvKgpAQCAtNzcwLDYgKzgwMiwxMCBAQCBzZXRfc3RhdHNfc2xvdChE YXR1bSAqdmFsdWVzLCBib29sICpudWxscywgYm9vbCAqcmVwbGFjZXMsCiAJaWYgKHNsb3RpZHgg Pj0gU1RBVElTVElDX05VTV9TTE9UUyAmJiBmaXJzdF9lbXB0eSA+PSAwKQogCQlzbG90aWR4ID0g Zmlyc3RfZW1wdHk7CiAKKwkvKgorCSAqIEN1cnJlbnRseSB0aGVyZSBpcyBubyBkYXRhdHlwZSB0 aGF0IGNhbiBoYXZlIG1vcmUgdGhhbiBTVEFUSVNUSUNfTlVNX1NMT1RTCisJICogc3RhdGlzdGlj IGtpbmRzLCBzbyB0aGlzIGNhbiBzYWZlbHkgcmVtYWluIGFuIEVSUk9SIGZvciBub3cuCisJICov CiAJaWYgKHNsb3RpZHggPj0gU1RBVElTVElDX05VTV9TTE9UUykKIAkJZXJlcG9ydChFUlJPUiwK IAkJCQkoZXJybXNnKCJtYXhpbXVtIG51bWJlciBvZiBzdGF0aXN0aWNzIHNsb3RzIGV4Y2VlZGVk OiAlZCIsCkBAIC05MTUsMzggKzk1MSw1NCBAQCBwZ19jbGVhcl9hdHRyaWJ1dGVfc3RhdHMoUEdf RlVOQ1RJT05fQVJHUykKIAlBdHRyTnVtYmVyCWF0dG51bTsKIAlib29sCQlpbmhlcml0ZWQ7CiAK LQlzdGF0c19jaGVja19yZXF1aXJlZF9hcmcoZmNpbmZvLCBjbGVhcmFyZ2luZm8sIENfQVRUUkVM U0NIRU1BX0FSRyk7Ci0Jc3RhdHNfY2hlY2tfcmVxdWlyZWRfYXJnKGZjaW5mbywgY2xlYXJhcmdp bmZvLCBDX0FUVFJFTE5BTUVfQVJHKTsKLQlzdGF0c19jaGVja19yZXF1aXJlZF9hcmcoZmNpbmZv LCBjbGVhcmFyZ2luZm8sIENfQVRUTkFNRV9BUkcpOwotCXN0YXRzX2NoZWNrX3JlcXVpcmVkX2Fy ZyhmY2luZm8sIGNsZWFyYXJnaW5mbywgQ19JTkhFUklURURfQVJHKTsKKwlpZiAoIXN0YXRzX2No ZWNrX3JlcXVpcmVkX2FyZyhmY2luZm8sIGNsZWFyYXJnaW5mbywgQ19BVFRSRUxTQ0hFTUFfQVJH KSkKKwkJUEdfUkVUVVJOX1ZPSUQoKTsKKwlpZiAoIXN0YXRzX2NoZWNrX3JlcXVpcmVkX2FyZyhm Y2luZm8sIGNsZWFyYXJnaW5mbywgQ19BVFRSRUxOQU1FX0FSRykpCisJCVBHX1JFVFVSTl9WT0lE KCk7CisJaWYgKCFzdGF0c19jaGVja19yZXF1aXJlZF9hcmcoZmNpbmZvLCBjbGVhcmFyZ2luZm8s IENfQVRUTkFNRV9BUkcpKQorCQlQR19SRVRVUk5fVk9JRCgpOworCWlmICghc3RhdHNfY2hlY2tf cmVxdWlyZWRfYXJnKGZjaW5mbywgY2xlYXJhcmdpbmZvLCBDX0lOSEVSSVRFRF9BUkcpKQorCQlQ R19SRVRVUk5fVk9JRCgpOwogCiAJbnNwbmFtZSA9IFRleHREYXR1bUdldENTdHJpbmcoUEdfR0VU QVJHX0RBVFVNKENfQVRUUkVMU0NIRU1BX0FSRykpOwogCXJlbG5hbWUgPSBUZXh0RGF0dW1HZXRD U3RyaW5nKFBHX0dFVEFSR19EQVRVTShDX0FUVFJFTE5BTUVfQVJHKSk7CiAKIAlyZWxvaWQgPSBz dGF0c19sb29rdXBfcmVsaWQobnNwbmFtZSwgcmVsbmFtZSk7CisJaWYgKCFPaWRJc1ZhbGlkKHJl bG9pZCkpCisJCVBHX1JFVFVSTl9WT0lEKCk7CiAKIAlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkp Ci0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcmVwb3J0KFdBUk5JTkcsCiAJCQkJKGVycmNvZGUo RVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJIGVycm1zZygi cmVjb3ZlcnkgaXMgaW4gcHJvZ3Jlc3MiKSwKIAkJCQkgZXJyaGludCgiU3RhdGlzdGljcyBjYW5u b3QgYmUgbW9kaWZpZWQgZHVyaW5nIHJlY292ZXJ5LiIpKSk7CisJCVBHX1JFVFVSTl9WT0lEKCk7 CisJfQogCi0Jc3RhdHNfbG9ja19jaGVja19wcml2aWxlZ2VzKHJlbG9pZCk7CisJaWYgKCFzdGF0 c19sb2NrX2NoZWNrX3ByaXZpbGVnZXMocmVsb2lkKSkKKwkJUEdfUkVUVVJOX1ZPSUQoKTsKIAog CWF0dG5hbWUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKFBHX0dFVEFSR19EQVRVTShDX0FUVE5BTUVf QVJHKSk7CiAJYXR0bnVtID0gZ2V0X2F0dG51bShyZWxvaWQsIGF0dG5hbWUpOwogCiAJaWYgKGF0 dG51bSA8IDApCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcmVwb3J0KFdBUk5JTkcsCiAJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coImNh bm5vdCBjbGVhciBzdGF0aXN0aWNzIG9uIHN5c3RlbSBjb2x1bW4gXCIlc1wiIiwKIAkJCQkJCWF0 dG5hbWUpKSk7CisJCVBHX1JFVFVSTl9WT0lEKCk7CisJfQogCiAJaWYgKGF0dG51bSA9PSBJbnZh bGlkQXR0ck51bWJlcikKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVyZXBvcnQoV0FSTklORywK IAkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSBlcnJtc2coImNv bHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJCWF0 dG5hbWUsIGdldF9yZWxfbmFtZShyZWxvaWQpKSkpOworCQlQR19SRVRVUk5fVk9JRCgpOworCX0K IAogCWluaGVyaXRlZCA9IFBHX0dFVEFSR19CT09MKENfSU5IRVJJVEVEX0FSRyk7CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvcmVsYXRpb25fc3RhdHMuYyBiL3NyYy9iYWNr ZW5kL3N0YXRpc3RpY3MvcmVsYXRpb25fc3RhdHMuYwppbmRleCBjZDNhNzViNjIxYS4uN2M0N2Fm MTVjOWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3MvcmVsYXRpb25fc3RhdHMu YworKysgYi9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL3JlbGF0aW9uX3N0YXRzLmMKQEAgLTgzLDEz ICs4MywxOCBAQCByZWxhdGlvbl9zdGF0aXN0aWNzX3VwZGF0ZShGdW5jdGlvbkNhbGxJbmZvIGZj aW5mbykKIAlib29sCQludWxsc1s0XSA9IHswfTsKIAlpbnQJCQlucmVwbGFjZXMgPSAwOwogCi0J c3RhdHNfY2hlY2tfcmVxdWlyZWRfYXJnKGZjaW5mbywgcmVsYXJnaW5mbywgUkVMU0NIRU1BX0FS Ryk7Ci0Jc3RhdHNfY2hlY2tfcmVxdWlyZWRfYXJnKGZjaW5mbywgcmVsYXJnaW5mbywgUkVMTkFN RV9BUkcpOworCWlmICghc3RhdHNfY2hlY2tfcmVxdWlyZWRfYXJnKGZjaW5mbywgcmVsYXJnaW5m bywgUkVMU0NIRU1BX0FSRykpCisJCXJldHVybiBmYWxzZTsKKworCWlmICghc3RhdHNfY2hlY2tf cmVxdWlyZWRfYXJnKGZjaW5mbywgcmVsYXJnaW5mbywgUkVMTkFNRV9BUkcpKQorCQlyZXR1cm4g ZmFsc2U7CiAKIAluc3BuYW1lID0gVGV4dERhdHVtR2V0Q1N0cmluZyhQR19HRVRBUkdfREFUVU0o UkVMU0NIRU1BX0FSRykpOwogCXJlbG5hbWUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKFBHX0dFVEFS R19EQVRVTShSRUxOQU1FX0FSRykpOwogCiAJcmVsb2lkID0gc3RhdHNfbG9va3VwX3JlbGlkKG5z cG5hbWUsIHJlbG5hbWUpOworCWlmICghT2lkSXNWYWxpZChyZWxvaWQpKQorCQlyZXR1cm4gZmFs c2U7CiAKIAlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkpCiAJCWVyZXBvcnQoRVJST1IsCkBAIC05 Nyw3ICsxMDIsOCBAQCByZWxhdGlvbl9zdGF0aXN0aWNzX3VwZGF0ZShGdW5jdGlvbkNhbGxJbmZv IGZjaW5mbykKIAkJCQkgZXJybXNnKCJyZWNvdmVyeSBpcyBpbiBwcm9ncmVzcyIpLAogCQkJCSBl cnJoaW50KCJTdGF0aXN0aWNzIGNhbm5vdCBiZSBtb2RpZmllZCBkdXJpbmcgcmVjb3ZlcnkuIikp KTsKIAotCXN0YXRzX2xvY2tfY2hlY2tfcHJpdmlsZWdlcyhyZWxvaWQpOworCWlmICghc3RhdHNf bG9ja19jaGVja19wcml2aWxlZ2VzKHJlbG9pZCkpCisJCXJldHVybiBmYWxzZTsKIAogCWlmICgh UEdfQVJHSVNOVUxMKFJFTFBBR0VTX0FSRykpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv c3RhdGlzdGljcy9zdGF0X3V0aWxzLmMgYi9zcmMvYmFja2VuZC9zdGF0aXN0aWNzL3N0YXRfdXRp bHMuYwppbmRleCBhOWEzMjI0ZWZlNi4uZDU4N2U4NzU0NTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3N0YXRpc3RpY3Mvc3RhdF91dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3N0YXRpc3RpY3Mv c3RhdF91dGlscy5jCkBAIC0zMywxNiArMzMsMjAgQEAKIC8qCiAgKiBFbnN1cmUgdGhhdCBhIGdp dmVuIGFyZ3VtZW50IGlzIG5vdCBudWxsLgogICovCi12b2lkCitib29sCiBzdGF0c19jaGVja19y ZXF1aXJlZF9hcmcoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sCiAJCQkJCQkgc3RydWN0IFN0YXRz QXJnSW5mbyAqYXJnaW5mbywKIAkJCQkJCSBpbnQgYXJnbnVtKQogewogCWlmIChQR19BUkdJU05V TEwoYXJnbnVtKSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVyZXBvcnQoV0FSTklORywKIAkJ CQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkgZXJybXNn KCJcIiVzXCIgY2Fubm90IGJlIE5VTEwiLAogCQkJCQkJYXJnaW5mb1thcmdudW1dLmFyZ25hbWUp KSk7CisJCXJldHVybiBmYWxzZTsKKwl9CisJcmV0dXJuIHRydWU7CiB9CiAKIC8qCkBAIC0xMjcs MTMgKzEzMSwxNCBAQCBzdGF0c19jaGVja19hcmdfcGFpcihGdW5jdGlvbkNhbGxJbmZvIGZjaW5m bywKICAqICAgLSB0aGUgcm9sZSBvd25zIHRoZSBjdXJyZW50IGRhdGFiYXNlIGFuZCB0aGUgcmVs YXRpb24gaXMgbm90IHNoYXJlZAogICogICAtIHRoZSByb2xlIGhhcyB0aGUgTUFJTlRBSU4gcHJp dmlsZWdlIG9uIHRoZSByZWxhdGlvbgogICovCi12b2lkCitib29sCiBzdGF0c19sb2NrX2NoZWNr X3ByaXZpbGVnZXMoT2lkIHJlbG9pZCkKIHsKIAlSZWxhdGlvbgl0YWJsZTsKIAlPaWQJCQl0YWJs ZV9vaWQgPSByZWxvaWQ7CiAJT2lkCQkJaW5kZXhfb2lkID0gSW52YWxpZE9pZDsKIAlMT0NLTU9E RQlpbmRleF9sb2NrbW9kZSA9IE5vTG9jazsKKwlib29sCQlvayA9IHRydWU7CiAKIAkvKgogCSAq IEZvciBpbmRleGVzLCB3ZSBmb2xsb3cgdGhlIGxvY2tpbmcgYmVoYXZpb3IgaW4gZG9fYW5hbHl6 ZV9yZWwoKSBhbmQKQEAgLTE3MywxNCArMTc4LDE1IEBAIHN0YXRzX2xvY2tfY2hlY2tfcHJpdmls ZWdlcyhPaWQgcmVsb2lkKQogCQljYXNlIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEU6CiAJCQli cmVhazsKIAkJZGVmYXVsdDoKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmVwb3J0KFdBUk5JTkcs CiAJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAogCQkJCQkgZXJybXNn KCJjYW5ub3QgbW9kaWZ5IHN0YXRpc3RpY3MgZm9yIHJlbGF0aW9uIFwiJXNcIiIsCiAJCQkJCQkJ UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodGFibGUpKSwKIAkJCQkJIGVycmRldGFpbF9yZWxraW5k X25vdF9zdXBwb3J0ZWQodGFibGUtPnJkX3JlbC0+cmVsa2luZCkpKTsKKwkJb2sgPSBmYWxzZTsK IAl9CiAKLQlpZiAoT2lkSXNWYWxpZChpbmRleF9vaWQpKQorCWlmIChvayAmJiAoT2lkSXNWYWxp ZChpbmRleF9vaWQpKSkKIAl7CiAJCVJlbGF0aW9uCWluZGV4OwogCkBAIC0xOTMsMjUgKzE5OSwz MyBAQCBzdGF0c19sb2NrX2NoZWNrX3ByaXZpbGVnZXMoT2lkIHJlbG9pZCkKIAkJcmVsYXRpb25f Y2xvc2UoaW5kZXgsIE5vTG9jayk7CiAJfQogCi0JaWYgKHRhYmxlLT5yZF9yZWwtPnJlbGlzc2hh cmVkKQotCQllcmVwb3J0KEVSUk9SLAorCWlmIChvayAmJiAodGFibGUtPnJkX3JlbC0+cmVsaXNz aGFyZWQpKQorCXsKKwkJZXJlcG9ydChXQVJOSU5HLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgbW9kaWZ5IHN0YXRpc3Rp Y3MgZm9yIHNoYXJlZCByZWxhdGlvbiIpKSk7CisJCW9rID0gZmFsc2U7CisJfQogCi0JaWYgKCFv YmplY3Rfb3duZXJjaGVjayhEYXRhYmFzZVJlbGF0aW9uSWQsIE15RGF0YWJhc2VJZCwgR2V0VXNl cklkKCkpKQorCWlmIChvayAmJiAoIW9iamVjdF9vd25lcmNoZWNrKERhdGFiYXNlUmVsYXRpb25J ZCwgTXlEYXRhYmFzZUlkLCBHZXRVc2VySWQoKSkpKQogCXsKIAkJQWNsUmVzdWx0CWFjbHJlc3Vs dCA9IHBnX2NsYXNzX2FjbGNoZWNrKFJlbGF0aW9uR2V0UmVsaWQodGFibGUpLAogCQkJCQkJCQkJ CQkJICBHZXRVc2VySWQoKSwKIAkJCQkJCQkJCQkJCSAgQUNMX01BSU5UQUlOKTsKIAogCQlpZiAo YWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQotCQkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LAot CQkJCQkJICAgZ2V0X3JlbGtpbmRfb2JqdHlwZSh0YWJsZS0+cmRfcmVsLT5yZWxraW5kKSwKLQkJ CQkJCSAgIE5hbWVTdHIodGFibGUtPnJkX3JlbC0+cmVsbmFtZSkpOworCQl7CisJCQllcmVwb3J0 KFdBUk5JTkcsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSks CisJCQkJCQllcnJtc2coInBlcm1pc3Npb24gZGVuaWVkIGZvciByZWxhdGlvbiAlcyIsCisJCQkJ CQkJICAgTmFtZVN0cih0YWJsZS0+cmRfcmVsLT5yZWxuYW1lKSkpKTsKKwkJCW9rID0gZmFsc2U7 CisJCX0KIAl9CiAKIAkvKiByZXRhaW4gbG9jayBvbiB0YWJsZSAqLwogCXJlbGF0aW9uX2Nsb3Nl KHRhYmxlLCBOb0xvY2spOworCXJldHVybiBvazsKIH0KIAogLyoKQEAgLTIyMywxMCArMjM3LDIw IEBAIHN0YXRzX2xvb2t1cF9yZWxpZChjb25zdCBjaGFyICpuc3BuYW1lLCBjb25zdCBjaGFyICpy ZWxuYW1lKQogCU9pZAkJCW5zcG9pZDsKIAlPaWQJCQlyZWxvaWQ7CiAKLQluc3BvaWQgPSBMb29r dXBFeHBsaWNpdE5hbWVzcGFjZShuc3BuYW1lLCBmYWxzZSk7CisJbnNwb2lkID0gTG9va3VwRXhw bGljaXROYW1lc3BhY2UobnNwbmFtZSwgdHJ1ZSk7CisJaWYgKCFPaWRJc1ZhbGlkKG5zcG9pZCkp CisJeworCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURf VEFCTEUpLAorCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXMuJXNcIiBkb2VzIG5vdCBleGlzdCIs CisJCQkJCQluc3BuYW1lLCByZWxuYW1lKSkpOworCisJCXJldHVybiBJbnZhbGlkT2lkOworCX0K KwogCXJlbG9pZCA9IGdldF9yZWxuYW1lX3JlbGlkKHJlbG5hbWUsIG5zcG9pZCk7CiAJaWYgKCFP aWRJc1ZhbGlkKHJlbG9pZCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXBvcnQoV0FSTklORywK IAkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9UQUJMRSksCiAJCQkJIGVycm1zZygicmVs YXRpb24gXCIlcy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJCW5zcG5hbWUsIHJlbG5hbWUp KSk7CkBAIC0zMDMsOSArMzI3LDEyIEBAIHN0YXRzX2ZpbGxfZmNpbmZvX2Zyb21fYXJnX3BhaXJz KEZ1bmN0aW9uQ2FsbEluZm8gcGFpcnNfZmNpbmZvLAogCQkJCQkJCQkgICZhcmdzLCAmdHlwZXMs ICZhcmdudWxscyk7CiAKIAlpZiAobmFyZ3MgJSAyICE9IDApCi0JCWVyZXBvcnQoRVJST1IsCisJ eworCQllcmVwb3J0KFdBUk5JTkcsCiAJCQkJZXJybXNnKCJ2YXJpYWRpYyBhcmd1bWVudHMgbXVz dCBiZSBuYW1lL3ZhbHVlIHBhaXJzIiksCiAJCQkJZXJyaGludCgiUHJvdmlkZSBhbiBldmVuIG51 bWJlciBvZiB2YXJpYWRpYyBhcmd1bWVudHMgdGhhdCBjYW4gYmUgZGl2aWRlZCBpbnRvIHBhaXJz LiIpKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KIAogCS8qCiAJICogRm9yIGVhY2ggYXJndW1lbnQg bmFtZS92YWx1ZSBwYWlyLCBmaW5kIGNvcnJlc3BvbmRpbmcgcG9zaXRpb25hbApAQCAtMzE4LDE0 ICszNDUsMjAgQEAgc3RhdHNfZmlsbF9mY2luZm9fZnJvbV9hcmdfcGFpcnMoRnVuY3Rpb25DYWxs SW5mbyBwYWlyc19mY2luZm8sCiAJCWNoYXIJICAgKmFyZ25hbWU7CiAKIAkJaWYgKGFyZ251bGxz W2ldKQotCQkJZXJlcG9ydChFUlJPUiwKKwkJeworCQkJZXJlcG9ydChXQVJOSU5HLAogCQkJCQko ZXJybXNnKCJuYW1lIGF0IHZhcmlhZGljIHBvc2l0aW9uICVkIGlzIE5VTEwiLCBpICsgMSkpKTsK KwkJCXJldHVybiBmYWxzZTsKKwkJfQogCiAJCWlmICh0eXBlc1tpXSAhPSBURVhUT0lEKQotCQkJ ZXJlcG9ydChFUlJPUiwKKwkJeworCQkJZXJlcG9ydChXQVJOSU5HLAogCQkJCQkoZXJybXNnKCJu YW1lIGF0IHZhcmlhZGljIHBvc2l0aW9uICVkIGhhcyB0eXBlIFwiJXNcIiwgZXhwZWN0ZWQgdHlw ZSBcIiVzXCIiLAogCQkJCQkJCWkgKyAxLCBmb3JtYXRfdHlwZV9iZSh0eXBlc1tpXSksCiAJCQkJ CQkJZm9ybWF0X3R5cGVfYmUoVEVYVE9JRCkpKSk7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KIAog CQlpZiAoYXJnbnVsbHNbaSArIDFdKQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2ltcG9ydC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3N0YXRzX2ltcG9ydC5vdXQKaW5kZXggNDhkNjM5MmI0YWQuLjE2MWNmNjdiNzExIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2ltcG9ydC5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0c19pbXBvcnQub3V0CkBAIC00Niw0OSAr NDYsODUgQEAgU0VMRUNUIHBnX2NsZWFyX3JlbGF0aW9uX3N0YXRzKCdzdGF0c19pbXBvcnQnLCAn dGVzdCcpOwogLS0KIC0tIHJlbHN0YXRzIHRlc3RzCiAtLQotLS0gZXJyb3I6IHNjaGVtYW5hbWUg bWlzc2luZworLS0gd2FybmluZzogc2NoZW1hbmFtZSBtaXNzaW5nLCBub3RoaW5nIHVwZGF0ZWQK IFNFTEVDVCBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfcmVsYXRpb25fc3RhdHMoCiAgICAgICAgICdy ZWxuYW1lJywgJ3Rlc3QnLAogICAgICAgICAncmVscGFnZXMnLCAxNzo6aW50ZWdlcik7Ci1FUlJP UjogICJzY2hlbWFuYW1lIiBjYW5ub3QgYmUgTlVMTAotLS0gZXJyb3I6IHJlbG5hbWUgbWlzc2lu ZworV0FSTklORzogICJzY2hlbWFuYW1lIiBjYW5ub3QgYmUgTlVMTAorIHBnX3Jlc3RvcmVfcmVs YXRpb25fc3RhdHMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisK Ky0tIHdhcm5pbmc6IHJlbG5hbWUgbWlzc2luZywgbm90aGluZyB1cGRhdGVkCiBTRUxFQ1QgcGdf Y2F0YWxvZy5wZ19yZXN0b3JlX3JlbGF0aW9uX3N0YXRzKAogICAgICAgICAnc2NoZW1hbmFtZScs ICdzdGF0c19pbXBvcnQnLAogICAgICAgICAncmVscGFnZXMnLCAxNzo6aW50ZWdlcik7Ci1FUlJP UjogICJyZWxuYW1lIiBjYW5ub3QgYmUgTlVMTAotLS0tIGVycm9yOiBzY2hlbWFuYW1lIGlzIHdy b25nIHR5cGUKK1dBUk5JTkc6ICAicmVsbmFtZSIgY2Fubm90IGJlIE5VTEwKKyBwZ19yZXN0b3Jl X3JlbGF0aW9uX3N0YXRzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93 KQorCistLS0gd2FybmluZzogc2NoZW1hbmFtZSBpcyB3cm9uZyB0eXBlLCBub3RoaW5nIHVwZGF0 ZWQKIFNFTEVDVCBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfcmVsYXRpb25fc3RhdHMoCiAgICAgICAg ICdzY2hlbWFuYW1lJywgMy42OjpmbG9hdCwKICAgICAgICAgJ3JlbG5hbWUnLCAndGVzdCcsCiAg ICAgICAgICdyZWxwYWdlcycsIDE3OjppbnRlZ2VyKTsKIFdBUk5JTkc6ICBhcmd1bWVudCAic2No ZW1hbmFtZSIgaGFzIHR5cGUgImRvdWJsZSBwcmVjaXNpb24iLCBleHBlY3RlZCB0eXBlICJ0ZXh0 IgotRVJST1I6ICAic2NoZW1hbmFtZSIgY2Fubm90IGJlIE5VTEwKLS0tLSBlcnJvcjogcmVsbmFt ZSBpcyB3cm9uZyB0eXBlCitXQVJOSU5HOiAgInNjaGVtYW5hbWUiIGNhbm5vdCBiZSBOVUxMCisg cGdfcmVzdG9yZV9yZWxhdGlvbl9zdGF0cyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IGYKKygxIHJvdykKKworLS0tIHdhcm5pbmc6IHJlbG5hbWUgaXMgd3JvbmcgdHlwZSwgbm90aGlu ZyB1cGRhdGVkCiBTRUxFQ1QgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX3JlbGF0aW9uX3N0YXRzKAog ICAgICAgICAnc2NoZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAogICAgICAgICAncmVsbmFtZScs IDA6Om9pZCwKICAgICAgICAgJ3JlbHBhZ2VzJywgMTc6OmludGVnZXIpOwogV0FSTklORzogIGFy Z3VtZW50ICJyZWxuYW1lIiBoYXMgdHlwZSAib2lkIiwgZXhwZWN0ZWQgdHlwZSAidGV4dCIKLUVS Uk9SOiAgInJlbG5hbWUiIGNhbm5vdCBiZSBOVUxMCi0tLSBlcnJvcjogcmVsYXRpb24gbm90IGZv dW5kCitXQVJOSU5HOiAgInJlbG5hbWUiIGNhbm5vdCBiZSBOVUxMCisgcGdfcmVzdG9yZV9yZWxh dGlvbl9zdGF0cyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKwor LS0gd2FybmluZzogcmVsYXRpb24gbm90IGZvdW5kLCBub3RoaW5nIHVwZGF0ZWQKIFNFTEVDVCBw Z19jYXRhbG9nLnBnX3Jlc3RvcmVfcmVsYXRpb25fc3RhdHMoCiAgICAgICAgICdzY2hlbWFuYW1l JywgJ3N0YXRzX2ltcG9ydCcsCiAgICAgICAgICdyZWxuYW1lJywgJ25vcGUnLAogICAgICAgICAn cmVscGFnZXMnLCAxNzo6aW50ZWdlcik7Ci1FUlJPUjogIHJlbGF0aW9uICJzdGF0c19pbXBvcnQu bm9wZSIgZG9lcyBub3QgZXhpc3QKLS0tIGVycm9yOiBvZGQgbnVtYmVyIG9mIHZhcmlhZGljIGFy Z3VtZW50cyBjYW5ub3QgYmUgcGFpcnMKK1dBUk5JTkc6ICByZWxhdGlvbiAic3RhdHNfaW1wb3J0 Lm5vcGUiIGRvZXMgbm90IGV4aXN0CisgcGdfcmVzdG9yZV9yZWxhdGlvbl9zdGF0cyAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworLS0gd2FybmluZzogb2RkIG51 bWJlciBvZiB2YXJpYWRpYyBhcmd1bWVudHMgY2Fubm90IGJlIHBhaXJzLCBub3RoaW5nIHVwZGF0 ZWQKIFNFTEVDVCBwZ19yZXN0b3JlX3JlbGF0aW9uX3N0YXRzKAogICAgICAgICAnc2NoZW1hbmFt ZScsICdzdGF0c19pbXBvcnQnLAogICAgICAgICAncmVsbmFtZScsICd0ZXN0JywKICAgICAgICAg J3JlbGFsbHZpc2libGUnKTsKLUVSUk9SOiAgdmFyaWFkaWMgYXJndW1lbnRzIG11c3QgYmUgbmFt ZS92YWx1ZSBwYWlycworV0FSTklORzogIHZhcmlhZGljIGFyZ3VtZW50cyBtdXN0IGJlIG5hbWUv dmFsdWUgcGFpcnMKIEhJTlQ6ICBQcm92aWRlIGFuIGV2ZW4gbnVtYmVyIG9mIHZhcmlhZGljIGFy Z3VtZW50cyB0aGF0IGNhbiBiZSBkaXZpZGVkIGludG8gcGFpcnMuCi0tLSBlcnJvcjogYXJndW1l bnQgbmFtZSBpcyBOVUxMCitXQVJOSU5HOiAgInNjaGVtYW5hbWUiIGNhbm5vdCBiZSBOVUxMCisg cGdfcmVzdG9yZV9yZWxhdGlvbl9zdGF0cyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IGYKKygxIHJvdykKKworLS0gd2FybmluZzogYXJndW1lbnQgbmFtZSBpcyBOVUxMLCBub3RoaW5n IHVwZGF0ZWQKIFNFTEVDVCBwZ19yZXN0b3JlX3JlbGF0aW9uX3N0YXRzKAogICAgICAgICAnc2No ZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAogICAgICAgICAncmVsbmFtZScsICd0ZXN0JywKICAg ICAgICAgTlVMTCwgJzE3Jzo6aW50ZWdlcik7Ci1FUlJPUjogIG5hbWUgYXQgdmFyaWFkaWMgcG9z aXRpb24gNSBpcyBOVUxMCitXQVJOSU5HOiAgbmFtZSBhdCB2YXJpYWRpYyBwb3NpdGlvbiA1IGlz IE5VTEwKKyBwZ19yZXN0b3JlX3JlbGF0aW9uX3N0YXRzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgZgorKDEgcm93KQorCiAtLSBzdGFydGluZyBzdGF0cwogU0VMRUNUIHJlbHBhZ2Vz LCByZWx0dXBsZXMsIHJlbGFsbHZpc2libGUsIHJlbGFsbGZyb3plbgogRlJPTSBwZ19jbGFzcwpA QCAtMzQwLDY1ICszNzYsMTEwIEBAIENSRUFURSBTRVFVRU5DRSBzdGF0c19pbXBvcnQudGVzdHNl cTsKIFNFTEVDVCBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfcmVsYXRpb25fc3RhdHMoCiAgICAgICAg ICdzY2hlbWFuYW1lJywgJ3N0YXRzX2ltcG9ydCcsCiAgICAgICAgICdyZWxuYW1lJywgJ3Rlc3Rz ZXEnKTsKLUVSUk9SOiAgY2Fubm90IG1vZGlmeSBzdGF0aXN0aWNzIGZvciByZWxhdGlvbiAidGVz dHNlcSIKK1dBUk5JTkc6ICBjYW5ub3QgbW9kaWZ5IHN0YXRpc3RpY3MgZm9yIHJlbGF0aW9uICJ0 ZXN0c2VxIgogREVUQUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3Igc2Vx dWVuY2VzLgorIHBnX3Jlc3RvcmVfcmVsYXRpb25fc3RhdHMgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBmCisoMSByb3cpCisKIFNFTEVDVCBwZ19jYXRhbG9nLnBnX2NsZWFyX3JlbGF0 aW9uX3N0YXRzKHNjaGVtYW5hbWUgPT4gJ3N0YXRzX2ltcG9ydCcsIHJlbG5hbWUgPT4gJ3Rlc3Rz ZXEnKTsKLUVSUk9SOiAgY2Fubm90IG1vZGlmeSBzdGF0aXN0aWNzIGZvciByZWxhdGlvbiAidGVz dHNlcSIKK1dBUk5JTkc6ICBjYW5ub3QgbW9kaWZ5IHN0YXRpc3RpY3MgZm9yIHJlbGF0aW9uICJ0 ZXN0c2VxIgogREVUQUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3Igc2Vx dWVuY2VzLgorIHBnX2NsZWFyX3JlbGF0aW9uX3N0YXRzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIAorKDEgcm93KQorCiBDUkVBVEUgVklFVyBzdGF0c19pbXBvcnQudGVzdHZpZXcgQVMg U0VMRUNUICogRlJPTSBzdGF0c19pbXBvcnQudGVzdDsKIFNFTEVDVCBwZ19jYXRhbG9nLnBnX2Ns ZWFyX3JlbGF0aW9uX3N0YXRzKHNjaGVtYW5hbWUgPT4gJ3N0YXRzX2ltcG9ydCcsIHJlbG5hbWUg PT4gJ3Rlc3R2aWV3Jyk7Ci1FUlJPUjogIGNhbm5vdCBtb2RpZnkgc3RhdGlzdGljcyBmb3IgcmVs YXRpb24gInRlc3R2aWV3IgorV0FSTklORzogIGNhbm5vdCBtb2RpZnkgc3RhdGlzdGljcyBmb3Ig cmVsYXRpb24gInRlc3R2aWV3IgogREVUQUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBv cnRlZCBmb3Igdmlld3MuCisgcGdfY2xlYXJfcmVsYXRpb25fc3RhdHMgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKIC0tCiAtLSBhdHRyaWJ1dGUgc3RhdHMKIC0tCi0t LSBlcnJvcjogc2NoZW1hbmFtZSBtaXNzaW5nCistLSB3YXJuaW5nOiBzY2hlbWFuYW1lIG1pc3Np bmcsIG5vdGhpbmcgdXBkYXRlZAogU0VMRUNUIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9hdHRyaWJ1 dGVfc3RhdHMoCiAgICAgJ3JlbG5hbWUnLCAndGVzdCcsCiAgICAgJ2F0dG5hbWUnLCAnaWQnLAog ICAgICdpbmhlcml0ZWQnLCBmYWxzZTo6Ym9vbGVhbiwKICAgICAnbnVsbF9mcmFjJywgMC4xOjpy ZWFsKTsKLUVSUk9SOiAgInNjaGVtYW5hbWUiIGNhbm5vdCBiZSBOVUxMCi0tLSBlcnJvcjogc2No ZW1hIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgInNjaGVtYW5hbWUiIGNhbm5vdCBiZSBOVUxM CisgcGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3RhdHMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgZgorKDEgcm93KQorCistLSB3YXJuaW5nOiBzY2hlbWEgZG9lcyBub3QgZXhpc3QsIG5v dGhpbmcgdXBkYXRlZAogU0VMRUNUIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3Rh dHMoCiAgICAgJ3NjaGVtYW5hbWUnLCAnbm9wZScsCiAgICAgJ3JlbG5hbWUnLCAndGVzdCcsCiAg ICAgJ2F0dG5hbWUnLCAnaWQnLAogICAgICdpbmhlcml0ZWQnLCBmYWxzZTo6Ym9vbGVhbiwKICAg ICAnbnVsbF9mcmFjJywgMC4xOjpyZWFsKTsKLUVSUk9SOiAgc2NoZW1hICJub3BlIiBkb2VzIG5v dCBleGlzdAotLS0gZXJyb3I6IHJlbG5hbWUgbWlzc2luZworV0FSTklORzogIHJlbGF0aW9uICJu b3BlLnRlc3QiIGRvZXMgbm90IGV4aXN0CisgcGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3RhdHMgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCistLSB3YXJuaW5nOiBy ZWxuYW1lIG1pc3NpbmcsIG5vdGhpbmcgdXBkYXRlZAogU0VMRUNUIHBnX2NhdGFsb2cucGdfcmVz dG9yZV9hdHRyaWJ1dGVfc3RhdHMoCiAgICAgJ3NjaGVtYW5hbWUnLCAnc3RhdHNfaW1wb3J0JywK ICAgICAnYXR0bmFtZScsICdpZCcsCiAgICAgJ2luaGVyaXRlZCcsIGZhbHNlOjpib29sZWFuLAog ICAgICdudWxsX2ZyYWMnLCAwLjE6OnJlYWwpOwotRVJST1I6ICAicmVsbmFtZSIgY2Fubm90IGJl IE5VTEwKLS0tIGVycm9yOiByZWxuYW1lIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgInJlbG5h bWUiIGNhbm5vdCBiZSBOVUxMCisgcGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3RhdHMgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCistLSB3YXJuaW5nOiByZWxuYW1l IGRvZXMgbm90IGV4aXN0LCBub3RoaW5nIHVwZGF0ZWQKIFNFTEVDVCBwZ19jYXRhbG9nLnBnX3Jl c3RvcmVfYXR0cmlidXRlX3N0YXRzKAogICAgICdzY2hlbWFuYW1lJywgJ3N0YXRzX2ltcG9ydCcs CiAgICAgJ3JlbG5hbWUnLCAnbm9wZScsCiAgICAgJ2F0dG5hbWUnLCAnaWQnLAogICAgICdpbmhl cml0ZWQnLCBmYWxzZTo6Ym9vbGVhbiwKICAgICAnbnVsbF9mcmFjJywgMC4xOjpyZWFsKTsKLUVS Uk9SOiAgcmVsYXRpb24gInN0YXRzX2ltcG9ydC5ub3BlIiBkb2VzIG5vdCBleGlzdAotLS0gZXJy b3I6IHJlbG5hbWUgbnVsbAorV0FSTklORzogIHJlbGF0aW9uICJzdGF0c19pbXBvcnQubm9wZSIg ZG9lcyBub3QgZXhpc3QKKyBwZ19yZXN0b3JlX2F0dHJpYnV0ZV9zdGF0cyAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKKy0tIHdhcm5pbmc6IHJlbG5hbWUgbnVs bCwgbm90aGluZyB1cGRhdGVkCiBTRUxFQ1QgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2F0dHJpYnV0 ZV9zdGF0cygKICAgICAnc2NoZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAogICAgICdyZWxuYW1l JywgTlVMTCwKICAgICAnYXR0bmFtZScsICdpZCcsCiAgICAgJ2luaGVyaXRlZCcsIGZhbHNlOjpi b29sZWFuLAogICAgICdudWxsX2ZyYWMnLCAwLjE6OnJlYWwpOwotRVJST1I6ICAicmVsbmFtZSIg Y2Fubm90IGJlIE5VTEwKLS0tIGVycm9yOiBOVUxMIGF0dG5hbWUKK1dBUk5JTkc6ICAicmVsbmFt ZSIgY2Fubm90IGJlIE5VTEwKKyBwZ19yZXN0b3JlX2F0dHJpYnV0ZV9zdGF0cyAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKKy0tIHdhcm5pbmc6IE5VTEwgYXR0 bmFtZSwgbm90aGluZyB1cGRhdGVkCiBTRUxFQ1QgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2F0dHJp YnV0ZV9zdGF0cygKICAgICAnc2NoZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAogICAgICdyZWxu YW1lJywgJ3Rlc3QnLAogICAgICdhdHRuYW1lJywgTlVMTCwKICAgICAnaW5oZXJpdGVkJywgZmFs c2U6OmJvb2xlYW4sCiAgICAgJ251bGxfZnJhYycsIDAuMTo6cmVhbCk7Ci1FUlJPUjogIG11c3Qg c3BlY2lmeSBlaXRoZXIgYXR0bmFtZSBvciBhdHRudW0KLS0tIGVycm9yOiBhdHRuYW1lIGRvZXNu J3QgZXhpc3QKK1dBUk5JTkc6ICBtdXN0IHNwZWNpZnkgZWl0aGVyIGF0dG5hbWUgb3IgYXR0bnVt CisgcGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3RhdHMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgZgorKDEgcm93KQorCistLSB3YXJuaW5nOiBhdHRuYW1lIGRvZXNuJ3QgZXhpc3QsIG5v dGhpbmcgdXBkYXRlZAogU0VMRUNUIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3Rh dHMoCiAgICAgJ3NjaGVtYW5hbWUnLCAnc3RhdHNfaW1wb3J0JywKICAgICAncmVsbmFtZScsICd0 ZXN0JywKQEAgLTQwNyw4ICs0ODgsMTMgQEAgU0VMRUNUIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9h dHRyaWJ1dGVfc3RhdHMoCiAgICAgJ251bGxfZnJhYycsIDAuMTo6cmVhbCwKICAgICAnYXZnX3dp ZHRoJywgMjo6aW50ZWdlciwKICAgICAnbl9kaXN0aW5jdCcsIDAuMzo6cmVhbCk7Ci1FUlJPUjog IGNvbHVtbiAibm9wZSIgb2YgcmVsYXRpb24gInRlc3QiIGRvZXMgbm90IGV4aXN0Ci0tLSBlcnJv cjogYm90aCBhdHRuYW1lIGFuZCBhdHRudW0KK1dBUk5JTkc6ICBjb2x1bW4gIm5vcGUiIG9mIHJl bGF0aW9uICJ0ZXN0IiBkb2VzIG5vdCBleGlzdAorIHBnX3Jlc3RvcmVfYXR0cmlidXRlX3N0YXRz IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworLS0gd2Fybmlu ZzogYm90aCBhdHRuYW1lIGFuZCBhdHRudW0sIG5vdGhpbmcgdXBkYXRlZAogU0VMRUNUIHBnX2Nh dGFsb2cucGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3RhdHMoCiAgICAgJ3NjaGVtYW5hbWUnLCAnc3Rh dHNfaW1wb3J0JywKICAgICAncmVsbmFtZScsICd0ZXN0JywKQEAgLTQxNiwzMCArNTAyLDUwIEBA IFNFTEVDVCBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfYXR0cmlidXRlX3N0YXRzKAogICAgICdhdHRu dW0nLCAxOjpzbWFsbGludCwKICAgICAnaW5oZXJpdGVkJywgZmFsc2U6OmJvb2xlYW4sCiAgICAg J251bGxfZnJhYycsIDAuMTo6cmVhbCk7Ci1FUlJPUjogIGNhbm5vdCBzcGVjaWZ5IGJvdGggYXR0 bmFtZSBhbmQgYXR0bnVtCi0tLSBlcnJvcjogbmVpdGhlciBhdHRuYW1lIG5vciBhdHRudW0KK1dB Uk5JTkc6ICBjYW5ub3Qgc3BlY2lmeSBib3RoIGF0dG5hbWUgYW5kIGF0dG51bQorIHBnX3Jlc3Rv cmVfYXR0cmlidXRlX3N0YXRzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygx IHJvdykKKworLS0gd2FybmluZzogbmVpdGhlciBhdHRuYW1lIG5vciBhdHRudW0sIG5vdGhpbmcg dXBkYXRlZAogU0VMRUNUIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3RhdHMoCiAg ICAgJ3NjaGVtYW5hbWUnLCAnc3RhdHNfaW1wb3J0JywKICAgICAncmVsbmFtZScsICd0ZXN0JywK ICAgICAnaW5oZXJpdGVkJywgZmFsc2U6OmJvb2xlYW4sCiAgICAgJ251bGxfZnJhYycsIDAuMTo6 cmVhbCk7Ci1FUlJPUjogIG11c3Qgc3BlY2lmeSBlaXRoZXIgYXR0bmFtZSBvciBhdHRudW0KLS0t IGVycm9yOiBhdHRyaWJ1dGUgaXMgc3lzdGVtIGNvbHVtbgorV0FSTklORzogIG11c3Qgc3BlY2lm eSBlaXRoZXIgYXR0bmFtZSBvciBhdHRudW0KKyBwZ19yZXN0b3JlX2F0dHJpYnV0ZV9zdGF0cyAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKKy0tIHdhcm5pbmc6 IGF0dHJpYnV0ZSBpcyBzeXN0ZW0gY29sdW1uLCBub3RoaW5nIHVwZGF0ZWQKIFNFTEVDVCBwZ19j YXRhbG9nLnBnX3Jlc3RvcmVfYXR0cmlidXRlX3N0YXRzKAogICAgICdzY2hlbWFuYW1lJywgJ3N0 YXRzX2ltcG9ydCcsCiAgICAgJ3JlbG5hbWUnLCAndGVzdCcsCiAgICAgJ2F0dG5hbWUnLCAneG1p bicsCiAgICAgJ2luaGVyaXRlZCcsIGZhbHNlOjpib29sZWFuLAogICAgICdudWxsX2ZyYWMnLCAw LjE6OnJlYWwpOwotRVJST1I6ICBjYW5ub3QgbW9kaWZ5IHN0YXRpc3RpY3Mgb24gc3lzdGVtIGNv bHVtbiAieG1pbiIKLS0tIGVycm9yOiBpbmhlcml0ZWQgbnVsbAorV0FSTklORzogIGNhbm5vdCBt b2RpZnkgc3RhdGlzdGljcyBvbiBzeXN0ZW0gY29sdW1uICJ4bWluIgorIHBnX3Jlc3RvcmVfYXR0 cmlidXRlX3N0YXRzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykK KworLS0gd2FybmluZzogaW5oZXJpdGVkIG51bGwsIG5vdGhpbmcgdXBkYXRlZAogU0VMRUNUIHBn X2NhdGFsb2cucGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3RhdHMoCiAgICAgJ3NjaGVtYW5hbWUnLCAn c3RhdHNfaW1wb3J0JywKICAgICAncmVsbmFtZScsICd0ZXN0JywKICAgICAnYXR0bmFtZScsICdp ZCcsCiAgICAgJ2luaGVyaXRlZCcsIE5VTEw6OmJvb2xlYW4sCiAgICAgJ251bGxfZnJhYycsIDAu MTo6cmVhbCk7Ci1FUlJPUjogICJpbmhlcml0ZWQiIGNhbm5vdCBiZSBOVUxMCitXQVJOSU5HOiAg ImluaGVyaXRlZCIgY2Fubm90IGJlIE5VTEwKKyBwZ19yZXN0b3JlX2F0dHJpYnV0ZV9zdGF0cyAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKIC0tIG9rOiBqdXN0 IHRoZSBmaXhlZCB2YWx1ZXMsIHdpdGggdmVyc2lvbiwgbm8gc3Rha2luZHMKIFNFTEVDVCBwZ19j YXRhbG9nLnBnX3Jlc3RvcmVfYXR0cmlidXRlX3N0YXRzKAogICAgICdzY2hlbWFuYW1lJywgJ3N0 YXRzX2ltcG9ydCcsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0c19pbXBv cnQuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHNfaW1wb3J0LnNxbAppbmRleCBkMTQw NzMzYTc1MC4uYmU4MDQ1Y2VlYTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0 YXRzX2ltcG9ydC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHNfaW1wb3J0LnNx bApAQCAtMzksNDEgKzM5LDQxIEBAIFNFTEVDVCBwZ19jbGVhcl9yZWxhdGlvbl9zdGF0cygnc3Rh dHNfaW1wb3J0JywgJ3Rlc3QnKTsKIC0tIHJlbHN0YXRzIHRlc3RzCiAtLQogCi0tLSBlcnJvcjog c2NoZW1hbmFtZSBtaXNzaW5nCistLSB3YXJuaW5nOiBzY2hlbWFuYW1lIG1pc3NpbmcsIG5vdGhp bmcgdXBkYXRlZAogU0VMRUNUIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9yZWxhdGlvbl9zdGF0cygK ICAgICAgICAgJ3JlbG5hbWUnLCAndGVzdCcsCiAgICAgICAgICdyZWxwYWdlcycsIDE3OjppbnRl Z2VyKTsKIAotLS0gZXJyb3I6IHJlbG5hbWUgbWlzc2luZworLS0gd2FybmluZzogcmVsbmFtZSBt aXNzaW5nLCBub3RoaW5nIHVwZGF0ZWQKIFNFTEVDVCBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfcmVs YXRpb25fc3RhdHMoCiAgICAgICAgICdzY2hlbWFuYW1lJywgJ3N0YXRzX2ltcG9ydCcsCiAgICAg ICAgICdyZWxwYWdlcycsIDE3OjppbnRlZ2VyKTsKIAotLS0tIGVycm9yOiBzY2hlbWFuYW1lIGlz IHdyb25nIHR5cGUKKy0tLSB3YXJuaW5nOiBzY2hlbWFuYW1lIGlzIHdyb25nIHR5cGUsIG5vdGhp bmcgdXBkYXRlZAogU0VMRUNUIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9yZWxhdGlvbl9zdGF0cygK ICAgICAgICAgJ3NjaGVtYW5hbWUnLCAzLjY6OmZsb2F0LAogICAgICAgICAncmVsbmFtZScsICd0 ZXN0JywKICAgICAgICAgJ3JlbHBhZ2VzJywgMTc6OmludGVnZXIpOwogCi0tLS0gZXJyb3I6IHJl bG5hbWUgaXMgd3JvbmcgdHlwZQorLS0tIHdhcm5pbmc6IHJlbG5hbWUgaXMgd3JvbmcgdHlwZSwg bm90aGluZyB1cGRhdGVkCiBTRUxFQ1QgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX3JlbGF0aW9uX3N0 YXRzKAogICAgICAgICAnc2NoZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAogICAgICAgICAncmVs bmFtZScsIDA6Om9pZCwKICAgICAgICAgJ3JlbHBhZ2VzJywgMTc6OmludGVnZXIpOwogCi0tLSBl cnJvcjogcmVsYXRpb24gbm90IGZvdW5kCistLSB3YXJuaW5nOiByZWxhdGlvbiBub3QgZm91bmQs IG5vdGhpbmcgdXBkYXRlZAogU0VMRUNUIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9yZWxhdGlvbl9z dGF0cygKICAgICAgICAgJ3NjaGVtYW5hbWUnLCAnc3RhdHNfaW1wb3J0JywKICAgICAgICAgJ3Jl bG5hbWUnLCAnbm9wZScsCiAgICAgICAgICdyZWxwYWdlcycsIDE3OjppbnRlZ2VyKTsKIAotLS0g ZXJyb3I6IG9kZCBudW1iZXIgb2YgdmFyaWFkaWMgYXJndW1lbnRzIGNhbm5vdCBiZSBwYWlycwor LS0gd2FybmluZzogb2RkIG51bWJlciBvZiB2YXJpYWRpYyBhcmd1bWVudHMgY2Fubm90IGJlIHBh aXJzLCBub3RoaW5nIHVwZGF0ZWQKIFNFTEVDVCBwZ19yZXN0b3JlX3JlbGF0aW9uX3N0YXRzKAog ICAgICAgICAnc2NoZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAogICAgICAgICAncmVsbmFtZScs ICd0ZXN0JywKICAgICAgICAgJ3JlbGFsbHZpc2libGUnKTsKIAotLS0gZXJyb3I6IGFyZ3VtZW50 IG5hbWUgaXMgTlVMTAorLS0gd2FybmluZzogYXJndW1lbnQgbmFtZSBpcyBOVUxMLCBub3RoaW5n IHVwZGF0ZWQKIFNFTEVDVCBwZ19yZXN0b3JlX3JlbGF0aW9uX3N0YXRzKAogICAgICAgICAnc2No ZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAogICAgICAgICAncmVsbmFtZScsICd0ZXN0JywKQEAg LTI0NiwxNCArMjQ2LDE0IEBAIFNFTEVDVCBwZ19jYXRhbG9nLnBnX2NsZWFyX3JlbGF0aW9uX3N0 YXRzKHNjaGVtYW5hbWUgPT4gJ3N0YXRzX2ltcG9ydCcsIHJlbG5hbWUKIC0tIGF0dHJpYnV0ZSBz dGF0cwogLS0KIAotLS0gZXJyb3I6IHNjaGVtYW5hbWUgbWlzc2luZworLS0gd2FybmluZzogc2No ZW1hbmFtZSBtaXNzaW5nLCBub3RoaW5nIHVwZGF0ZWQKIFNFTEVDVCBwZ19jYXRhbG9nLnBnX3Jl c3RvcmVfYXR0cmlidXRlX3N0YXRzKAogICAgICdyZWxuYW1lJywgJ3Rlc3QnLAogICAgICdhdHRu YW1lJywgJ2lkJywKICAgICAnaW5oZXJpdGVkJywgZmFsc2U6OmJvb2xlYW4sCiAgICAgJ251bGxf ZnJhYycsIDAuMTo6cmVhbCk7CiAKLS0tIGVycm9yOiBzY2hlbWEgZG9lcyBub3QgZXhpc3QKKy0t IHdhcm5pbmc6IHNjaGVtYSBkb2VzIG5vdCBleGlzdCwgbm90aGluZyB1cGRhdGVkCiBTRUxFQ1Qg cGdfY2F0YWxvZy5wZ19yZXN0b3JlX2F0dHJpYnV0ZV9zdGF0cygKICAgICAnc2NoZW1hbmFtZScs ICdub3BlJywKICAgICAncmVsbmFtZScsICd0ZXN0JywKQEAgLTI2MSwxNCArMjYxLDE0IEBAIFNF TEVDVCBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfYXR0cmlidXRlX3N0YXRzKAogICAgICdpbmhlcml0 ZWQnLCBmYWxzZTo6Ym9vbGVhbiwKICAgICAnbnVsbF9mcmFjJywgMC4xOjpyZWFsKTsKIAotLS0g ZXJyb3I6IHJlbG5hbWUgbWlzc2luZworLS0gd2FybmluZzogcmVsbmFtZSBtaXNzaW5nLCBub3Ro aW5nIHVwZGF0ZWQKIFNFTEVDVCBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfYXR0cmlidXRlX3N0YXRz KAogICAgICdzY2hlbWFuYW1lJywgJ3N0YXRzX2ltcG9ydCcsCiAgICAgJ2F0dG5hbWUnLCAnaWQn LAogICAgICdpbmhlcml0ZWQnLCBmYWxzZTo6Ym9vbGVhbiwKICAgICAnbnVsbF9mcmFjJywgMC4x OjpyZWFsKTsKIAotLS0gZXJyb3I6IHJlbG5hbWUgZG9lcyBub3QgZXhpc3QKKy0tIHdhcm5pbmc6 IHJlbG5hbWUgZG9lcyBub3QgZXhpc3QsIG5vdGhpbmcgdXBkYXRlZAogU0VMRUNUIHBnX2NhdGFs b2cucGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3RhdHMoCiAgICAgJ3NjaGVtYW5hbWUnLCAnc3RhdHNf aW1wb3J0JywKICAgICAncmVsbmFtZScsICdub3BlJywKQEAgLTI3Niw3ICsyNzYsNyBAQCBTRUxF Q1QgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2F0dHJpYnV0ZV9zdGF0cygKICAgICAnaW5oZXJpdGVk JywgZmFsc2U6OmJvb2xlYW4sCiAgICAgJ251bGxfZnJhYycsIDAuMTo6cmVhbCk7CiAKLS0tIGVy cm9yOiByZWxuYW1lIG51bGwKKy0tIHdhcm5pbmc6IHJlbG5hbWUgbnVsbCwgbm90aGluZyB1cGRh dGVkCiBTRUxFQ1QgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2F0dHJpYnV0ZV9zdGF0cygKICAgICAn c2NoZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAogICAgICdyZWxuYW1lJywgTlVMTCwKQEAgLTI4 NCw3ICsyODQsNyBAQCBTRUxFQ1QgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2F0dHJpYnV0ZV9zdGF0 cygKICAgICAnaW5oZXJpdGVkJywgZmFsc2U6OmJvb2xlYW4sCiAgICAgJ251bGxfZnJhYycsIDAu MTo6cmVhbCk7CiAKLS0tIGVycm9yOiBOVUxMIGF0dG5hbWUKKy0tIHdhcm5pbmc6IE5VTEwgYXR0 bmFtZSwgbm90aGluZyB1cGRhdGVkCiBTRUxFQ1QgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2F0dHJp YnV0ZV9zdGF0cygKICAgICAnc2NoZW1hbmFtZScsICdzdGF0c19pbXBvcnQnLAogICAgICdyZWxu YW1lJywgJ3Rlc3QnLApAQCAtMjkyLDcgKzI5Miw3IEBAIFNFTEVDVCBwZ19jYXRhbG9nLnBnX3Jl c3RvcmVfYXR0cmlidXRlX3N0YXRzKAogICAgICdpbmhlcml0ZWQnLCBmYWxzZTo6Ym9vbGVhbiwK ICAgICAnbnVsbF9mcmFjJywgMC4xOjpyZWFsKTsKIAotLS0gZXJyb3I6IGF0dG5hbWUgZG9lc24n dCBleGlzdAorLS0gd2FybmluZzogYXR0bmFtZSBkb2Vzbid0IGV4aXN0LCBub3RoaW5nIHVwZGF0 ZWQKIFNFTEVDVCBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfYXR0cmlidXRlX3N0YXRzKAogICAgICdz Y2hlbWFuYW1lJywgJ3N0YXRzX2ltcG9ydCcsCiAgICAgJ3JlbG5hbWUnLCAndGVzdCcsCkBAIC0z MDIsNyArMzAyLDcgQEAgU0VMRUNUIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3Rh dHMoCiAgICAgJ2F2Z193aWR0aCcsIDI6OmludGVnZXIsCiAgICAgJ25fZGlzdGluY3QnLCAwLjM6 OnJlYWwpOwogCi0tLSBlcnJvcjogYm90aCBhdHRuYW1lIGFuZCBhdHRudW0KKy0tIHdhcm5pbmc6 IGJvdGggYXR0bmFtZSBhbmQgYXR0bnVtLCBub3RoaW5nIHVwZGF0ZWQKIFNFTEVDVCBwZ19jYXRh bG9nLnBnX3Jlc3RvcmVfYXR0cmlidXRlX3N0YXRzKAogICAgICdzY2hlbWFuYW1lJywgJ3N0YXRz X2ltcG9ydCcsCiAgICAgJ3JlbG5hbWUnLCAndGVzdCcsCkBAIC0zMTEsMTQgKzMxMSwxNCBAQCBT RUxFQ1QgcGdfY2F0YWxvZy5wZ19yZXN0b3JlX2F0dHJpYnV0ZV9zdGF0cygKICAgICAnaW5oZXJp dGVkJywgZmFsc2U6OmJvb2xlYW4sCiAgICAgJ251bGxfZnJhYycsIDAuMTo6cmVhbCk7CiAKLS0t IGVycm9yOiBuZWl0aGVyIGF0dG5hbWUgbm9yIGF0dG51bQorLS0gd2FybmluZzogbmVpdGhlciBh dHRuYW1lIG5vciBhdHRudW0sIG5vdGhpbmcgdXBkYXRlZAogU0VMRUNUIHBnX2NhdGFsb2cucGdf cmVzdG9yZV9hdHRyaWJ1dGVfc3RhdHMoCiAgICAgJ3NjaGVtYW5hbWUnLCAnc3RhdHNfaW1wb3J0 JywKICAgICAncmVsbmFtZScsICd0ZXN0JywKICAgICAnaW5oZXJpdGVkJywgZmFsc2U6OmJvb2xl YW4sCiAgICAgJ251bGxfZnJhYycsIDAuMTo6cmVhbCk7CiAKLS0tIGVycm9yOiBhdHRyaWJ1dGUg aXMgc3lzdGVtIGNvbHVtbgorLS0gd2FybmluZzogYXR0cmlidXRlIGlzIHN5c3RlbSBjb2x1bW4s IG5vdGhpbmcgdXBkYXRlZAogU0VMRUNUIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9hdHRyaWJ1dGVf c3RhdHMoCiAgICAgJ3NjaGVtYW5hbWUnLCAnc3RhdHNfaW1wb3J0JywKICAgICAncmVsbmFtZScs ICd0ZXN0JywKQEAgLTMyNiw3ICszMjYsNyBAQCBTRUxFQ1QgcGdfY2F0YWxvZy5wZ19yZXN0b3Jl X2F0dHJpYnV0ZV9zdGF0cygKICAgICAnaW5oZXJpdGVkJywgZmFsc2U6OmJvb2xlYW4sCiAgICAg J251bGxfZnJhYycsIDAuMTo6cmVhbCk7CiAKLS0tIGVycm9yOiBpbmhlcml0ZWQgbnVsbAorLS0g d2FybmluZzogaW5oZXJpdGVkIG51bGwsIG5vdGhpbmcgdXBkYXRlZAogU0VMRUNUIHBnX2NhdGFs b2cucGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3RhdHMoCiAgICAgJ3NjaGVtYW5hbWUnLCAnc3RhdHNf aW1wb3J0JywKICAgICAncmVsbmFtZScsICd0ZXN0JywKLS0gCjIuNDkuMAoK --0000000000003d44c1063134f087 Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0001-Introduce-CreateStmtPtr.patch" Content-Disposition: attachment; filename="v10-0001-Introduce-CreateStmtPtr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m8p9b1bm0 RnJvbSA4NjExYmViNWE3OTA2ZDBmN2U5M2ZiNjhhYTQxZGQ1OGJjN2FiODBmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb3JleSBIdWlua2VyIDxjb3JleS5odWlua2VyQGdtYWlsLmNv bT4KRGF0ZTogRnJpLCAxNCBNYXIgMjAyNSAwMTowNjoxOSAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg djEwIDEvNF0gSW50cm9kdWNlIENyZWF0ZVN0bXRQdHIuCgpDcmVhdGVTdG10UHRyIGlzIGEgZnVu Y3Rpb24gcG9pbnRlciB0aGF0IGNhbiByZXBsYWNlIHRoZSBjcmVhdGVTdG10L2RlZm4KcGFyYW1l dGVyLiBUaGlzIGlzIHVzZWZ1bCBpbiBzaXR1YXRpb25zIHdoZXJlIHRoZSBhbW91bnQgb2YgdGV4 dApnZW5lcmF0ZWQgZm9yIGEgZGVmaW5pdGlvbiBpcyBzbyBsYXJnZSB0aGF0IGl0IGlzIHVuZGVz aXJhYmxlIHRvIGhvbGQKbWFueSBzdWNoIG9iamVjdHMgaW4gbWVtb3J5IGF0IHRoZSBzYW1lIHRp bWUuCgpVc2luZyBmdW5jdGlvbnMgb2YgdGhpcyB0eXBlLCB0aGUgdGV4dCBjcmVhdGVkIGlzIHRo ZW4gaW1tZWRpYXRlbHkKd3JpdHRlbiBvdXQgdG8gdGhlIGFwcHJvcHJpYXRlIGZpbGUgZm9yIHRo ZSBnaXZlbiBkdW1wIGZvcm1hdC4KLS0tCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggICAg ICAgICAgfCAgIDIgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIHwgIDIy ICsrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5oIHwgICA3ICsKIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICB8IDIzMCArKysrKysrKysrKysrKystLS0t LS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTU2IGluc2VydGlvbnMoKyksIDEwNSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggYi9zcmMvYmlu L3BnX2R1bXAvcGdfYmFja3VwLmgKaW5kZXggNjU4OTg2ZGU2ZjguLmZkY2NjZDY0YTcwIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cC5oCkBAIC0yODksNiArMjg5LDggQEAgdHlwZWRlZiBpbnQgKCpEYXRhRHVtcGVy UHRyKSAoQXJjaGl2ZSAqQUgsIGNvbnN0IHZvaWQgKnVzZXJBcmcpOwogCiB0eXBlZGVmIHZvaWQg KCpTZXR1cFdvcmtlclB0clR5cGUpIChBcmNoaXZlICpBSCk7CiAKK3R5cGVkZWYgY2hhciAqKCpD cmVhdGVTdG10UHRyKSAoQXJjaGl2ZSAqQUgsIGNvbnN0IHZvaWQgKnVzZXJBcmcpOworCiAvKgog ICogTWFpbiBhcmNoaXZlciBpbnRlcmZhY2UuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJj aGl2ZXIuYwppbmRleCA4MmQ1MWM4OWFjNi4uZTUxMjIwMWVkNTggMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdf YmFja3VwX2FyY2hpdmVyLmMKQEAgLTEyNjQsNiArMTI2NCw5IEBAIEFyY2hpdmVFbnRyeShBcmNo aXZlICpBSFgsIENhdGFsb2dJZCBjYXRhbG9nSWQsIER1bXBJZCBkdW1wSWQsCiAJbmV3VG9jLT5k YXRhRHVtcGVyID0gb3B0cy0+ZHVtcEZuOwogCW5ld1RvYy0+ZGF0YUR1bXBlckFyZyA9IG9wdHMt PmR1bXBBcmc7CiAJbmV3VG9jLT5oYWREdW1wZXIgPSBvcHRzLT5kdW1wRm4gPyB0cnVlIDogZmFs c2U7CisJbmV3VG9jLT5jcmVhdGVEdW1wZXIgPSBvcHRzLT5jcmVhdGVGbjsKKwluZXdUb2MtPmNy ZWF0ZUR1bXBlckFyZyA9IG9wdHMtPmNyZWF0ZUFyZzsKKwluZXdUb2MtPmhhZENyZWF0ZUR1bXBl ciA9IG9wdHMtPmNyZWF0ZUZuID8gdHJ1ZSA6IGZhbHNlOwogCiAJbmV3VG9jLT5mb3JtYXREYXRh ID0gTlVMTDsKIAluZXdUb2MtPmRhdGFMZW5ndGggPSAwOwpAQCAtMjYyMCw3ICsyNjIzLDE3IEBA IFdyaXRlVG9jKEFyY2hpdmVIYW5kbGUgKkFIKQogCQlXcml0ZVN0cihBSCwgdGUtPnRhZyk7CiAJ CVdyaXRlU3RyKEFILCB0ZS0+ZGVzYyk7CiAJCVdyaXRlSW50KEFILCB0ZS0+c2VjdGlvbik7Ci0J CVdyaXRlU3RyKEFILCB0ZS0+ZGVmbik7CisKKwkJaWYgKHRlLT5oYWRDcmVhdGVEdW1wZXIpCisJ CXsKKwkJCWNoYXIJICAgKmRlZm4gPSB0ZS0+Y3JlYXRlRHVtcGVyKChBcmNoaXZlICopIEFILCB0 ZS0+Y3JlYXRlRHVtcGVyQXJnKTsKKworCQkJV3JpdGVTdHIoQUgsIGRlZm4pOworCQkJcGdfZnJl ZShkZWZuKTsKKwkJfQorCQllbHNlCisJCQlXcml0ZVN0cihBSCwgdGUtPmRlZm4pOworCiAJCVdy aXRlU3RyKEFILCB0ZS0+ZHJvcFN0bXQpOwogCQlXcml0ZVN0cihBSCwgdGUtPmNvcHlTdG10KTsK IAkJV3JpdGVTdHIoQUgsIHRlLT5uYW1lc3BhY2UpOwpAQCAtMzg1Niw2ICszODY5LDEzIEBAIF9w cmludFRvY0VudHJ5KEFyY2hpdmVIYW5kbGUgKkFILCBUb2NFbnRyeSAqdGUsIGNvbnN0IGNoYXIg KnBmeCkKIAl7CiAJCUlzc3VlQUNMUGVyQmxvYihBSCwgdGUpOwogCX0KKwllbHNlIGlmICh0ZS0+ aGFkQ3JlYXRlRHVtcGVyKQorCXsKKwkJY2hhcgkgICAqcHRyID0gdGUtPmNyZWF0ZUR1bXBlcigo QXJjaGl2ZSAqKSBBSCwgdGUtPmNyZWF0ZUR1bXBlckFyZyk7CisKKwkJYWh3cml0ZShwdHIsIDEs IHN0cmxlbihwdHIpLCBBSCk7CisJCXBnX2ZyZWUocHRyKTsKKwl9CiAJZWxzZSBpZiAodGUtPmRl Zm4gJiYgc3RybGVuKHRlLT5kZWZuKSA+IDApCiAJewogCQlhaHByaW50ZihBSCwgIiVzXG5cbiIs IHRlLT5kZWZuKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2 ZXIuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuaAppbmRleCBhMjA2NGY0 NzFlZC4uZTY4ZGI2MzM5OTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBf YXJjaGl2ZXIuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmgKQEAg LTM2OCw2ICszNjgsMTEgQEAgc3RydWN0IF90b2NFbnRyeQogCWNvbnN0IHZvaWQgKmRhdGFEdW1w ZXJBcmc7CS8qIEFyZyBmb3IgYWJvdmUgcm91dGluZSAqLwogCXZvaWQJICAgKmZvcm1hdERhdGE7 CQkvKiBUT0MgRW50cnkgZGF0YSBzcGVjaWZpYyB0byBmaWxlIGZvcm1hdCAqLwogCisJQ3JlYXRl U3RtdFB0ciBjcmVhdGVEdW1wZXI7IC8qIFJvdXRpbmUgZm9yIGNyZWF0ZSBzdGF0ZW1lbnQgY3Jl YXRpb24gKi8KKwljb25zdCB2b2lkICpjcmVhdGVEdW1wZXJBcmc7CS8qIGFyZyBmb3IgdGhlIGFi b3ZlIHJvdXRpbmUgKi8KKwlib29sCQloYWRDcmVhdGVEdW1wZXI7CS8qIEFyY2hpdmVyIHdhcyBw YXNzZWQgYSBjcmVhdGUgc3RhdGVtZW50CisJCQkJCQkJCQkgKiByb3V0aW5lICovCisKIAkvKiB3 b3JraW5nIHN0YXRlIHdoaWxlIGR1bXBpbmcvcmVzdG9yaW5nICovCiAJcGdvZmZfdAkJZGF0YUxl bmd0aDsJCS8qIGl0ZW0ncyBkYXRhIHNpemU7IDAgaWYgbm9uZSBvciB1bmtub3duICovCiAJaW50 CQkJcmVxczsJCQkvKiBkbyB3ZSBuZWVkIHNjaGVtYSBhbmQvb3IgZGF0YSBvZiBvYmplY3QKQEAg LTQwNyw2ICs0MTIsOCBAQCB0eXBlZGVmIHN0cnVjdCBfYXJjaGl2ZU9wdHMKIAlpbnQJCQluRGVw czsKIAlEYXRhRHVtcGVyUHRyIGR1bXBGbjsKIAljb25zdCB2b2lkICpkdW1wQXJnOworCUNyZWF0 ZVN0bXRQdHIgY3JlYXRlRm47CisJY29uc3Qgdm9pZCAqY3JlYXRlQXJnOwogfSBBcmNoaXZlT3B0 czsKICNkZWZpbmUgQVJDSElWRV9PUFRTKC4uLikgJihBcmNoaXZlT3B0cyl7X19WQV9BUkdTX199 CiAvKiBDYWxsZWQgdG8gYWRkIGEgVE9DIGVudHJ5ICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBlNDFlNjQ1 ZjY0OS4uMjI0ZGM4YzkzMzAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMTA1MjAsNTEgKzEwNTIwLDQ0IEBA IHN0YXRpc3RpY3NEdW1wU2VjdGlvbihjb25zdCBSZWxTdGF0c0luZm8gKnJzaW5mbykKIH0KIAog LyoKLSAqIGR1bXBSZWxhdGlvblN0YXRzIC0tCisgKiBwcmludER1bXBSZWxhdGlvblN0YXRzIC0t CiAgKgotICogRHVtcCBjb21tYW5kIHRvIGltcG9ydCBzdGF0cyBpbnRvIHRoZSByZWxhdGlvbiBv biB0aGUgbmV3IGRhdGFiYXNlLgorICogR2VuZXJhdGUgdGhlIFNRTCBzdGF0ZW1lbnRzIG5lZWRl ZCB0byByZXN0b3JlIGEgcmVsYXRpb24ncyBzdGF0aXN0aWNzLgogICovCi1zdGF0aWMgdm9pZAot ZHVtcFJlbGF0aW9uU3RhdHMoQXJjaGl2ZSAqZm91dCwgY29uc3QgUmVsU3RhdHNJbmZvICpyc2lu Zm8pCitzdGF0aWMgY2hhciAqCitwcmludFJlbGF0aW9uU3RhdHMoQXJjaGl2ZSAqZm91dCwgY29u c3Qgdm9pZCAqdXNlckFyZykKIHsKKwljb25zdCBSZWxTdGF0c0luZm8gKnJzaW5mbyA9IChSZWxT dGF0c0luZm8gKikgdXNlckFyZzsKIAljb25zdCBEdW1wYWJsZU9iamVjdCAqZG9iaiA9ICZyc2lu Zm8tPmRvYmo7CisKKwlQUUV4cEJ1ZmZlckRhdGEgcXVlcnk7CisJUFFFeHBCdWZmZXJEYXRhIG91 dDsKKwogCVBHcmVzdWx0ICAgKnJlczsKLQlQUUV4cEJ1ZmZlciBxdWVyeTsKLQlQUUV4cEJ1ZmZl ciBvdXQ7Ci0JRHVtcElkCSAgICpkZXBzID0gTlVMTDsKLQlpbnQJCQluZGVwcyA9IDA7Ci0JaW50 CQkJaV9hdHRuYW1lOwotCWludAkJCWlfaW5oZXJpdGVkOwotCWludAkJCWlfbnVsbF9mcmFjOwot CWludAkJCWlfYXZnX3dpZHRoOwotCWludAkJCWlfbl9kaXN0aW5jdDsKLQlpbnQJCQlpX21vc3Rf Y29tbW9uX3ZhbHM7Ci0JaW50CQkJaV9tb3N0X2NvbW1vbl9mcmVxczsKLQlpbnQJCQlpX2hpc3Rv Z3JhbV9ib3VuZHM7Ci0JaW50CQkJaV9jb3JyZWxhdGlvbjsKLQlpbnQJCQlpX21vc3RfY29tbW9u X2VsZW1zOwotCWludAkJCWlfbW9zdF9jb21tb25fZWxlbV9mcmVxczsKLQlpbnQJCQlpX2VsZW1f Y291bnRfaGlzdG9ncmFtOwotCWludAkJCWlfcmFuZ2VfbGVuZ3RoX2hpc3RvZ3JhbTsKLQlpbnQJ CQlpX3JhbmdlX2VtcHR5X2ZyYWM7Ci0JaW50CQkJaV9yYW5nZV9ib3VuZHNfaGlzdG9ncmFtOwog Ci0JLyogbm90aGluZyB0byBkbyBpZiB3ZSBhcmUgbm90IGR1bXBpbmcgc3RhdGlzdGljcyAqLwot CWlmICghZm91dC0+ZG9wdC0+ZHVtcFN0YXRpc3RpY3MpCi0JCXJldHVybjsKKwlzdGF0aWMgYm9v bCBmaXJzdF9xdWVyeSA9IHRydWU7CisJc3RhdGljIGludAlpX2F0dG5hbWU7CisJc3RhdGljIGlu dAlpX2luaGVyaXRlZDsKKwlzdGF0aWMgaW50CWlfbnVsbF9mcmFjOworCXN0YXRpYyBpbnQJaV9h dmdfd2lkdGg7CisJc3RhdGljIGludAlpX25fZGlzdGluY3Q7CisJc3RhdGljIGludAlpX21vc3Rf Y29tbW9uX3ZhbHM7CisJc3RhdGljIGludAlpX21vc3RfY29tbW9uX2ZyZXFzOworCXN0YXRpYyBp bnQJaV9oaXN0b2dyYW1fYm91bmRzOworCXN0YXRpYyBpbnQJaV9jb3JyZWxhdGlvbjsKKwlzdGF0 aWMgaW50CWlfbW9zdF9jb21tb25fZWxlbXM7CisJc3RhdGljIGludAlpX21vc3RfY29tbW9uX2Vs ZW1fZnJlcXM7CisJc3RhdGljIGludAlpX2VsZW1fY291bnRfaGlzdG9ncmFtOworCXN0YXRpYyBp bnQJaV9yYW5nZV9sZW5ndGhfaGlzdG9ncmFtOworCXN0YXRpYyBpbnQJaV9yYW5nZV9lbXB0eV9m cmFjOworCXN0YXRpYyBpbnQJaV9yYW5nZV9ib3VuZHNfaGlzdG9ncmFtOwogCi0JLyogZGVwZW5k ZW50IG9uIHRoZSByZWxhdGlvbiBkZWZpbml0aW9uLCBpZiBkb2luZyBzY2hlbWEgKi8KLQlpZiAo Zm91dC0+ZG9wdC0+ZHVtcFNjaGVtYSkKKwlpbml0UFFFeHBCdWZmZXIoJnF1ZXJ5KTsKKworCWlm IChmaXJzdF9xdWVyeSkKIAl7Ci0JCWRlcHMgPSBkb2JqLT5kZXBlbmRlbmNpZXM7Ci0JCW5kZXBz ID0gZG9iai0+bkRlcHM7Ci0JfQotCi0JcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwotCWlm ICghZm91dC0+aXNfcHJlcGFyZWRbUFJFUFFVRVJZX0dFVEFUVFJJQlVURVNUQVRTXSkKLQl7Ci0J CWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJCSAiUFJFUEFSRSBnZXRBdHRyaWJ1 dGVTdGF0cyhwZ19jYXRhbG9nLm5hbWUsIHBnX2NhdGFsb2cubmFtZSkgQVNcbiIKKwkJYXBwZW5k UFFFeHBCdWZmZXJTdHIoJnF1ZXJ5LAorCQkJCQkJCSAiUFJFUEFSRSBnZXRBdHRyaWJ1dGVTdGF0 cyhwZ19jYXRhbG9nLnRleHQsIHBnX2NhdGFsb2cudGV4dCkgQVNcbiIKIAkJCQkJCQkgIlNFTEVD VCBzLmF0dG5hbWUsIHMuaW5oZXJpdGVkLCAiCiAJCQkJCQkJICJzLm51bGxfZnJhYywgcy5hdmdf d2lkdGgsIHMubl9kaXN0aW5jdCwgIgogCQkJCQkJCSAicy5tb3N0X2NvbW1vbl92YWxzLCBzLm1v c3RfY29tbW9uX2ZyZXFzLCAiCkBAIC0xMDU3Myw4MiArMTA1NjYsODUgQEAgZHVtcFJlbGF0aW9u U3RhdHMoQXJjaGl2ZSAqZm91dCwgY29uc3QgUmVsU3RhdHNJbmZvICpyc2luZm8pCiAJCQkJCQkJ ICJzLmVsZW1fY291bnRfaGlzdG9ncmFtLCAiKTsKIAogCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lv biA+PSAxNzAwMDApCi0JCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKCZxdWVyeSwKIAkJCQkJCQkJICJzLnJhbmdlX2xlbmd0aF9oaXN0b2dyYW0s ICIKIAkJCQkJCQkJICJzLnJhbmdlX2VtcHR5X2ZyYWMsICIKIAkJCQkJCQkJICJzLnJhbmdlX2Jv dW5kc19oaXN0b2dyYW0gIik7CiAJCWVsc2UKLQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LAorCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJnF1ZXJ5LAogCQkJCQkJCQkgIk5VTEwgQVMgcmFu Z2VfbGVuZ3RoX2hpc3RvZ3JhbSwiCiAJCQkJCQkJCSAiTlVMTCBBUyByYW5nZV9lbXB0eV9mcmFj LCIKIAkJCQkJCQkJICJOVUxMIEFTIHJhbmdlX2JvdW5kc19oaXN0b2dyYW0gIik7CiAKLQkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZxdWVyeSwK IAkJCQkJCQkgIkZST00gcGdfY2F0YWxvZy5wZ19zdGF0cyBzICIKIAkJCQkJCQkgIldIRVJFIHMu c2NoZW1hbmFtZSA9ICQxICIKIAkJCQkJCQkgIkFORCBzLnRhYmxlbmFtZSA9ICQyICIKIAkJCQkJ CQkgIk9SREVSIEJZIHMuYXR0bmFtZSwgcy5pbmhlcml0ZWQiKTsKIAotCQlFeGVjdXRlU3FsU3Rh dGVtZW50KGZvdXQsIHF1ZXJ5LT5kYXRhKTsKKwkJRXhlY3V0ZVNxbFN0YXRlbWVudChmb3V0LCBx dWVyeS5kYXRhKTsKIAotCQlmb3V0LT5pc19wcmVwYXJlZFtQUkVQUVVFUllfR0VUQVRUUklCVVRF U1RBVFNdID0gdHJ1ZTsKLQkJcmVzZXRQUUV4cEJ1ZmZlcihxdWVyeSk7CisJCXJlc2V0UFFFeHBC dWZmZXIoJnF1ZXJ5KTsKIAl9CiAKLQlvdXQgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCWluaXRQ UUV4cEJ1ZmZlcigmb3V0KTsKIAogCS8qIHJlc3RvcmUgcmVsYXRpb24gc3RhdHMgKi8KLQlhcHBl bmRQUUV4cEJ1ZmZlclN0cihvdXQsICJTRUxFQ1QgKiBGUk9NIHBnX2NhdGFsb2cucGdfcmVzdG9y ZV9yZWxhdGlvbl9zdGF0cyhcbiIpOwotCWFwcGVuZFBRRXhwQnVmZmVyKG91dCwgIlx0J3ZlcnNp b24nLCAnJXUnOjppbnRlZ2VyLFxuIiwKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmb3V0LCAiU0VM RUNUICogRlJPTSBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfcmVsYXRpb25fc3RhdHMoXG4iKTsKKwlh cHBlbmRQUUV4cEJ1ZmZlcigmb3V0LCAiXHQndmVyc2lvbicsICcldSc6OmludGVnZXIsXG4iLAog CQkJCQkgIGZvdXQtPnJlbW90ZVZlcnNpb24pOwotCWFwcGVuZFBRRXhwQnVmZmVyU3RyKG91dCwg Ilx0J3NjaGVtYW5hbWUnLCAiKTsKLQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgob3V0LCByc2luZm8t PmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIGZvdXQpOwotCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KG91dCwgIixcbiIpOwotCWFwcGVuZFBRRXhwQnVmZmVyU3RyKG91dCwgIlx0J3JlbG5hbWUnLCAi KTsKLQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgob3V0LCByc2luZm8tPmRvYmoubmFtZSwgZm91dCk7 Ci0JYXBwZW5kUFFFeHBCdWZmZXJTdHIob3V0LCAiLFxuIik7Ci0JYXBwZW5kUFFFeHBCdWZmZXIo b3V0LCAiXHQncmVscGFnZXMnLCAnJWQnOjppbnRlZ2VyLFxuIiwgcnNpbmZvLT5yZWxwYWdlcyk7 Ci0JYXBwZW5kUFFFeHBCdWZmZXIob3V0LCAiXHQncmVsdHVwbGVzJywgJyVzJzo6cmVhbCxcbiIs IHJzaW5mby0+cmVsdHVwbGVzKTsKLQlhcHBlbmRQUUV4cEJ1ZmZlcihvdXQsICJcdCdyZWxhbGx2 aXNpYmxlJywgJyVkJzo6aW50ZWdlclxuKTtcbiIsCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJm91 dCwgIlx0J3NjaGVtYW5hbWUnLCAiKTsKKwlhcHBlbmRTdHJpbmdMaXRlcmFsQUgoJm91dCwgcnNp bmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLCBmb3V0KTsKKwlhcHBlbmRQUUV4cEJ1ZmZl clN0cigmb3V0LCAiLFxuIik7CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJm91dCwgIlx0J3JlbG5h bWUnLCAiKTsKKwlhcHBlbmRTdHJpbmdMaXRlcmFsQUgoJm91dCwgcnNpbmZvLT5kb2JqLm5hbWUs IGZvdXQpOworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZvdXQsICIsXG4iKTsKKwlhcHBlbmRQUUV4 cEJ1ZmZlcigmb3V0LCAiXHQncmVscGFnZXMnLCAnJWQnOjppbnRlZ2VyLFxuIiwgcnNpbmZvLT5y ZWxwYWdlcyk7CisJYXBwZW5kUFFFeHBCdWZmZXIoJm91dCwgIlx0J3JlbHR1cGxlcycsICclcyc6 OnJlYWwsXG4iLCByc2luZm8tPnJlbHR1cGxlcyk7CisJYXBwZW5kUFFFeHBCdWZmZXIoJm91dCwg Ilx0J3JlbGFsbHZpc2libGUnLCAnJWQnOjppbnRlZ2VyXG4pO1xuIiwKIAkJCQkJICByc2luZm8t PnJlbGFsbHZpc2libGUpOwogCiAJLyogZmV0Y2ggYXR0cmlidXRlIHN0YXRzICovCi0JYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksICJFWEVDVVRFIGdldEF0dHJpYnV0ZVN0YXRzKCIpOwotCWFw cGVuZFN0cmluZ0xpdGVyYWxBSChxdWVyeSwgZG9iai0+bmFtZXNwYWNlLT5kb2JqLm5hbWUsIGZv dXQpOwotCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCAiKTsKLQlhcHBlbmRTdHJpbmdM aXRlcmFsQUgocXVlcnksIGRvYmotPm5hbWUsIGZvdXQpOwotCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KHF1ZXJ5LCAiKTsiKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmcXVlcnksICJFWEVDVVRFIGdl dEF0dHJpYnV0ZVN0YXRzKCIpOworCWFwcGVuZFN0cmluZ0xpdGVyYWxBSCgmcXVlcnksIGRvYmot Pm5hbWVzcGFjZS0+ZG9iai5uYW1lLCBmb3V0KTsKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmcXVl cnksICIsICIpOworCWFwcGVuZFN0cmluZ0xpdGVyYWxBSCgmcXVlcnksIGRvYmotPm5hbWUsIGZv dXQpOworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZxdWVyeSwgIikiKTsKIAotCXJlcyA9IEV4ZWN1 dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKwlyZXMgPSBF eGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnkuZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKIAotCWlf YXR0bmFtZSA9IFBRZm51bWJlcihyZXMsICJhdHRuYW1lIik7Ci0JaV9pbmhlcml0ZWQgPSBQUWZu dW1iZXIocmVzLCAiaW5oZXJpdGVkIik7Ci0JaV9udWxsX2ZyYWMgPSBQUWZudW1iZXIocmVzLCAi bnVsbF9mcmFjIik7Ci0JaV9hdmdfd2lkdGggPSBQUWZudW1iZXIocmVzLCAiYXZnX3dpZHRoIik7 Ci0JaV9uX2Rpc3RpbmN0ID0gUFFmbnVtYmVyKHJlcywgIm5fZGlzdGluY3QiKTsKLQlpX21vc3Rf Y29tbW9uX3ZhbHMgPSBQUWZudW1iZXIocmVzLCAibW9zdF9jb21tb25fdmFscyIpOwotCWlfbW9z dF9jb21tb25fZnJlcXMgPSBQUWZudW1iZXIocmVzLCAibW9zdF9jb21tb25fZnJlcXMiKTsKLQlp X2hpc3RvZ3JhbV9ib3VuZHMgPSBQUWZudW1iZXIocmVzLCAiaGlzdG9ncmFtX2JvdW5kcyIpOwot CWlfY29ycmVsYXRpb24gPSBQUWZudW1iZXIocmVzLCAiY29ycmVsYXRpb24iKTsKLQlpX21vc3Rf Y29tbW9uX2VsZW1zID0gUFFmbnVtYmVyKHJlcywgIm1vc3RfY29tbW9uX2VsZW1zIik7Ci0JaV9t b3N0X2NvbW1vbl9lbGVtX2ZyZXFzID0gUFFmbnVtYmVyKHJlcywgIm1vc3RfY29tbW9uX2VsZW1f ZnJlcXMiKTsKLQlpX2VsZW1fY291bnRfaGlzdG9ncmFtID0gUFFmbnVtYmVyKHJlcywgImVsZW1f Y291bnRfaGlzdG9ncmFtIik7Ci0JaV9yYW5nZV9sZW5ndGhfaGlzdG9ncmFtID0gUFFmbnVtYmVy KHJlcywgInJhbmdlX2xlbmd0aF9oaXN0b2dyYW0iKTsKLQlpX3JhbmdlX2VtcHR5X2ZyYWMgPSBQ UWZudW1iZXIocmVzLCAicmFuZ2VfZW1wdHlfZnJhYyIpOwotCWlfcmFuZ2VfYm91bmRzX2hpc3Rv Z3JhbSA9IFBRZm51bWJlcihyZXMsICJyYW5nZV9ib3VuZHNfaGlzdG9ncmFtIik7CisJaWYgKGZp cnN0X3F1ZXJ5KQorCXsKKwkJaV9hdHRuYW1lID0gUFFmbnVtYmVyKHJlcywgImF0dG5hbWUiKTsK KwkJaV9pbmhlcml0ZWQgPSBQUWZudW1iZXIocmVzLCAiaW5oZXJpdGVkIik7CisJCWlfbnVsbF9m cmFjID0gUFFmbnVtYmVyKHJlcywgIm51bGxfZnJhYyIpOworCQlpX2F2Z193aWR0aCA9IFBRZm51 bWJlcihyZXMsICJhdmdfd2lkdGgiKTsKKwkJaV9uX2Rpc3RpbmN0ID0gUFFmbnVtYmVyKHJlcywg Im5fZGlzdGluY3QiKTsKKwkJaV9tb3N0X2NvbW1vbl92YWxzID0gUFFmbnVtYmVyKHJlcywgIm1v c3RfY29tbW9uX3ZhbHMiKTsKKwkJaV9tb3N0X2NvbW1vbl9mcmVxcyA9IFBRZm51bWJlcihyZXMs ICJtb3N0X2NvbW1vbl9mcmVxcyIpOworCQlpX2hpc3RvZ3JhbV9ib3VuZHMgPSBQUWZudW1iZXIo cmVzLCAiaGlzdG9ncmFtX2JvdW5kcyIpOworCQlpX2NvcnJlbGF0aW9uID0gUFFmbnVtYmVyKHJl cywgImNvcnJlbGF0aW9uIik7CisJCWlfbW9zdF9jb21tb25fZWxlbXMgPSBQUWZudW1iZXIocmVz LCAibW9zdF9jb21tb25fZWxlbXMiKTsKKwkJaV9tb3N0X2NvbW1vbl9lbGVtX2ZyZXFzID0gUFFm bnVtYmVyKHJlcywgIm1vc3RfY29tbW9uX2VsZW1fZnJlcXMiKTsKKwkJaV9lbGVtX2NvdW50X2hp c3RvZ3JhbSA9IFBRZm51bWJlcihyZXMsICJlbGVtX2NvdW50X2hpc3RvZ3JhbSIpOworCQlpX3Jh bmdlX2xlbmd0aF9oaXN0b2dyYW0gPSBQUWZudW1iZXIocmVzLCAicmFuZ2VfbGVuZ3RoX2hpc3Rv Z3JhbSIpOworCQlpX3JhbmdlX2VtcHR5X2ZyYWMgPSBQUWZudW1iZXIocmVzLCAicmFuZ2VfZW1w dHlfZnJhYyIpOworCQlpX3JhbmdlX2JvdW5kc19oaXN0b2dyYW0gPSBQUWZudW1iZXIocmVzLCAi cmFuZ2VfYm91bmRzX2hpc3RvZ3JhbSIpOworCQlmaXJzdF9xdWVyeSA9IGZhbHNlOworCX0KIAog CS8qIHJlc3RvcmUgYXR0cmlidXRlIHN0YXRzICovCiAJZm9yIChpbnQgcm93bnVtID0gMDsgcm93 bnVtIDwgUFFudHVwbGVzKHJlcyk7IHJvd251bSsrKQogCXsKIAkJY29uc3QgY2hhciAqYXR0bmFt ZTsKIAotCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihvdXQsICJTRUxFQ1QgKiBGUk9NIHBnX2NhdGFs b2cucGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3RhdHMoXG4iKTsKLQkJYXBwZW5kUFFFeHBCdWZmZXIo b3V0LCAiXHQndmVyc2lvbicsICcldSc6OmludGVnZXIsXG4iLAorCQlhcHBlbmRQUUV4cEJ1ZmZl clN0cigmb3V0LCAiU0VMRUNUICogRlJPTSBwZ19jYXRhbG9nLnBnX3Jlc3RvcmVfYXR0cmlidXRl X3N0YXRzKFxuIik7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZvdXQsICJcdCd2ZXJzaW9uJywgJyV1 Jzo6aW50ZWdlcixcbiIsCiAJCQkJCQkgIGZvdXQtPnJlbW90ZVZlcnNpb24pOwotCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cihvdXQsICJcdCdzY2hlbWFuYW1lJywgIik7Ci0JCWFwcGVuZFN0cmluZ0xp dGVyYWxBSChvdXQsIHJzaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwgZm91dCk7Ci0J CWFwcGVuZFBRRXhwQnVmZmVyU3RyKG91dCwgIixcblx0J3JlbG5hbWUnLCAiKTsKLQkJYXBwZW5k U3RyaW5nTGl0ZXJhbEFIKG91dCwgcnNpbmZvLT5kb2JqLm5hbWUsIGZvdXQpOworCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmb3V0LCAiXHQnc2NoZW1hbmFtZScsICIpOworCQlhcHBlbmRTdHJpbmdM aXRlcmFsQUgoJm91dCwgcnNpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLCBmb3V0KTsK KwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJm91dCwgIixcblx0J3JlbG5hbWUnLCAiKTsKKwkJYXBw ZW5kU3RyaW5nTGl0ZXJhbEFIKCZvdXQsIHJzaW5mby0+ZG9iai5uYW1lLCBmb3V0KTsKIAogCQlp ZiAoUFFnZXRpc251bGwocmVzLCByb3dudW0sIGlfYXR0bmFtZSkpCiAJCQlwZ19mYXRhbCgiYXR0 bmFtZSBjYW5ub3QgYmUgTlVMTCIpOwpAQCAtMTA2NjEsOCArMTA2NTcsOCBAQCBkdW1wUmVsYXRp b25TdGF0cyhBcmNoaXZlICpmb3V0LCBjb25zdCBSZWxTdGF0c0luZm8gKnJzaW5mbykKIAkJICov CiAJCWlmIChyc2luZm8tPm5pbmRBdHROYW1lcyA9PSAwKQogCQl7Ci0JCQlhcHBlbmRQUUV4cEJ1 ZmZlcihvdXQsICIsXG5cdCdhdHRuYW1lJywgIik7Ci0JCQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgo b3V0LCBhdHRuYW1lLCBmb3V0KTsKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZvdXQsICIsXG5cdCdh dHRuYW1lJywgIik7CisJCQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgoJm91dCwgYXR0bmFtZSwgZm91 dCk7CiAJCX0KIAkJZWxzZQogCQl7CkBAIC0xMDY3Miw3ICsxMDY2OCw3IEBAIGR1bXBSZWxhdGlv blN0YXRzKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFJlbFN0YXRzSW5mbyAqcnNpbmZvKQogCQkJewog CQkJCWlmIChzdHJjbXAoYXR0bmFtZSwgcnNpbmZvLT5pbmRBdHROYW1lc1tpXSkgPT0gMCkKIAkJ CQl7Ci0JCQkJCWFwcGVuZFBRRXhwQnVmZmVyKG91dCwgIixcblx0J2F0dG51bScsICclZCc6OnNt YWxsaW50IiwKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJm91dCwgIixcblx0J2F0dG51bScsICcl ZCc6OnNtYWxsaW50IiwKIAkJCQkJCQkJCSAgaSArIDEpOwogCQkJCQlmb3VuZCA9IHRydWU7CiAJ CQkJCWJyZWFrOwpAQCAtMTA2ODQsNjcgKzEwNjgwLDkzIEBAIGR1bXBSZWxhdGlvblN0YXRzKEFy Y2hpdmUgKmZvdXQsIGNvbnN0IFJlbFN0YXRzSW5mbyAqcnNpbmZvKQogCQl9CiAKIAkJaWYgKCFQ UWdldGlzbnVsbChyZXMsIHJvd251bSwgaV9pbmhlcml0ZWQpKQotCQkJYXBwZW5kTmFtZWRBcmd1 bWVudChvdXQsIGZvdXQsICJpbmhlcml0ZWQiLCAiYm9vbGVhbiIsCisJCQlhcHBlbmROYW1lZEFy Z3VtZW50KCZvdXQsIGZvdXQsICJpbmhlcml0ZWQiLCAiYm9vbGVhbiIsCiAJCQkJCQkJCVBRZ2V0 dmFsdWUocmVzLCByb3dudW0sIGlfaW5oZXJpdGVkKSk7CiAJCWlmICghUFFnZXRpc251bGwocmVz LCByb3dudW0sIGlfbnVsbF9mcmFjKSkKLQkJCWFwcGVuZE5hbWVkQXJndW1lbnQob3V0LCBmb3V0 LCAibnVsbF9mcmFjIiwgInJlYWwiLAorCQkJYXBwZW5kTmFtZWRBcmd1bWVudCgmb3V0LCBmb3V0 LCAibnVsbF9mcmFjIiwgInJlYWwiLAogCQkJCQkJCQlQUWdldHZhbHVlKHJlcywgcm93bnVtLCBp X251bGxfZnJhYykpOwogCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgcm93bnVtLCBpX2F2Z193aWR0 aCkpCi0JCQlhcHBlbmROYW1lZEFyZ3VtZW50KG91dCwgZm91dCwgImF2Z193aWR0aCIsICJpbnRl Z2VyIiwKKwkJCWFwcGVuZE5hbWVkQXJndW1lbnQoJm91dCwgZm91dCwgImF2Z193aWR0aCIsICJp bnRlZ2VyIiwKIAkJCQkJCQkJUFFnZXR2YWx1ZShyZXMsIHJvd251bSwgaV9hdmdfd2lkdGgpKTsK IAkJaWYgKCFQUWdldGlzbnVsbChyZXMsIHJvd251bSwgaV9uX2Rpc3RpbmN0KSkKLQkJCWFwcGVu ZE5hbWVkQXJndW1lbnQob3V0LCBmb3V0LCAibl9kaXN0aW5jdCIsICJyZWFsIiwKKwkJCWFwcGVu ZE5hbWVkQXJndW1lbnQoJm91dCwgZm91dCwgIm5fZGlzdGluY3QiLCAicmVhbCIsCiAJCQkJCQkJ CVBRZ2V0dmFsdWUocmVzLCByb3dudW0sIGlfbl9kaXN0aW5jdCkpOwogCQlpZiAoIVBRZ2V0aXNu dWxsKHJlcywgcm93bnVtLCBpX21vc3RfY29tbW9uX3ZhbHMpKQotCQkJYXBwZW5kTmFtZWRBcmd1 bWVudChvdXQsIGZvdXQsICJtb3N0X2NvbW1vbl92YWxzIiwgInRleHQiLAorCQkJYXBwZW5kTmFt ZWRBcmd1bWVudCgmb3V0LCBmb3V0LCAibW9zdF9jb21tb25fdmFscyIsICJ0ZXh0IiwKIAkJCQkJ CQkJUFFnZXR2YWx1ZShyZXMsIHJvd251bSwgaV9tb3N0X2NvbW1vbl92YWxzKSk7CiAJCWlmICgh UFFnZXRpc251bGwocmVzLCByb3dudW0sIGlfbW9zdF9jb21tb25fZnJlcXMpKQotCQkJYXBwZW5k TmFtZWRBcmd1bWVudChvdXQsIGZvdXQsICJtb3N0X2NvbW1vbl9mcmVxcyIsICJyZWFsW10iLAor CQkJYXBwZW5kTmFtZWRBcmd1bWVudCgmb3V0LCBmb3V0LCAibW9zdF9jb21tb25fZnJlcXMiLCAi cmVhbFtdIiwKIAkJCQkJCQkJUFFnZXR2YWx1ZShyZXMsIHJvd251bSwgaV9tb3N0X2NvbW1vbl9m cmVxcykpOwogCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgcm93bnVtLCBpX2hpc3RvZ3JhbV9ib3Vu ZHMpKQotCQkJYXBwZW5kTmFtZWRBcmd1bWVudChvdXQsIGZvdXQsICJoaXN0b2dyYW1fYm91bmRz IiwgInRleHQiLAorCQkJYXBwZW5kTmFtZWRBcmd1bWVudCgmb3V0LCBmb3V0LCAiaGlzdG9ncmFt X2JvdW5kcyIsICJ0ZXh0IiwKIAkJCQkJCQkJUFFnZXR2YWx1ZShyZXMsIHJvd251bSwgaV9oaXN0 b2dyYW1fYm91bmRzKSk7CiAJCWlmICghUFFnZXRpc251bGwocmVzLCByb3dudW0sIGlfY29ycmVs YXRpb24pKQotCQkJYXBwZW5kTmFtZWRBcmd1bWVudChvdXQsIGZvdXQsICJjb3JyZWxhdGlvbiIs ICJyZWFsIiwKKwkJCWFwcGVuZE5hbWVkQXJndW1lbnQoJm91dCwgZm91dCwgImNvcnJlbGF0aW9u IiwgInJlYWwiLAogCQkJCQkJCQlQUWdldHZhbHVlKHJlcywgcm93bnVtLCBpX2NvcnJlbGF0aW9u KSk7CiAJCWlmICghUFFnZXRpc251bGwocmVzLCByb3dudW0sIGlfbW9zdF9jb21tb25fZWxlbXMp KQotCQkJYXBwZW5kTmFtZWRBcmd1bWVudChvdXQsIGZvdXQsICJtb3N0X2NvbW1vbl9lbGVtcyIs ICJ0ZXh0IiwKKwkJCWFwcGVuZE5hbWVkQXJndW1lbnQoJm91dCwgZm91dCwgIm1vc3RfY29tbW9u X2VsZW1zIiwgInRleHQiLAogCQkJCQkJCQlQUWdldHZhbHVlKHJlcywgcm93bnVtLCBpX21vc3Rf Y29tbW9uX2VsZW1zKSk7CiAJCWlmICghUFFnZXRpc251bGwocmVzLCByb3dudW0sIGlfbW9zdF9j b21tb25fZWxlbV9mcmVxcykpCi0JCQlhcHBlbmROYW1lZEFyZ3VtZW50KG91dCwgZm91dCwgIm1v c3RfY29tbW9uX2VsZW1fZnJlcXMiLCAicmVhbFtdIiwKKwkJCWFwcGVuZE5hbWVkQXJndW1lbnQo Jm91dCwgZm91dCwgIm1vc3RfY29tbW9uX2VsZW1fZnJlcXMiLCAicmVhbFtdIiwKIAkJCQkJCQkJ UFFnZXR2YWx1ZShyZXMsIHJvd251bSwgaV9tb3N0X2NvbW1vbl9lbGVtX2ZyZXFzKSk7CiAJCWlm ICghUFFnZXRpc251bGwocmVzLCByb3dudW0sIGlfZWxlbV9jb3VudF9oaXN0b2dyYW0pKQotCQkJ YXBwZW5kTmFtZWRBcmd1bWVudChvdXQsIGZvdXQsICJlbGVtX2NvdW50X2hpc3RvZ3JhbSIsICJy ZWFsW10iLAorCQkJYXBwZW5kTmFtZWRBcmd1bWVudCgmb3V0LCBmb3V0LCAiZWxlbV9jb3VudF9o aXN0b2dyYW0iLCAicmVhbFtdIiwKIAkJCQkJCQkJUFFnZXR2YWx1ZShyZXMsIHJvd251bSwgaV9l bGVtX2NvdW50X2hpc3RvZ3JhbSkpOwogCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNzAw MDApCiAJCXsKIAkJCWlmICghUFFnZXRpc251bGwocmVzLCByb3dudW0sIGlfcmFuZ2VfbGVuZ3Ro X2hpc3RvZ3JhbSkpCi0JCQkJYXBwZW5kTmFtZWRBcmd1bWVudChvdXQsIGZvdXQsICJyYW5nZV9s ZW5ndGhfaGlzdG9ncmFtIiwgInRleHQiLAorCQkJCWFwcGVuZE5hbWVkQXJndW1lbnQoJm91dCwg Zm91dCwgInJhbmdlX2xlbmd0aF9oaXN0b2dyYW0iLCAidGV4dCIsCiAJCQkJCQkJCQlQUWdldHZh bHVlKHJlcywgcm93bnVtLCBpX3JhbmdlX2xlbmd0aF9oaXN0b2dyYW0pKTsKIAkJCWlmICghUFFn ZXRpc251bGwocmVzLCByb3dudW0sIGlfcmFuZ2VfZW1wdHlfZnJhYykpCi0JCQkJYXBwZW5kTmFt ZWRBcmd1bWVudChvdXQsIGZvdXQsICJyYW5nZV9lbXB0eV9mcmFjIiwgInJlYWwiLAorCQkJCWFw cGVuZE5hbWVkQXJndW1lbnQoJm91dCwgZm91dCwgInJhbmdlX2VtcHR5X2ZyYWMiLCAicmVhbCIs CiAJCQkJCQkJCQlQUWdldHZhbHVlKHJlcywgcm93bnVtLCBpX3JhbmdlX2VtcHR5X2ZyYWMpKTsK IAkJCWlmICghUFFnZXRpc251bGwocmVzLCByb3dudW0sIGlfcmFuZ2VfYm91bmRzX2hpc3RvZ3Jh bSkpCi0JCQkJYXBwZW5kTmFtZWRBcmd1bWVudChvdXQsIGZvdXQsICJyYW5nZV9ib3VuZHNfaGlz dG9ncmFtIiwgInRleHQiLAorCQkJCWFwcGVuZE5hbWVkQXJndW1lbnQoJm91dCwgZm91dCwgInJh bmdlX2JvdW5kc19oaXN0b2dyYW0iLCAidGV4dCIsCiAJCQkJCQkJCQlQUWdldHZhbHVlKHJlcywg cm93bnVtLCBpX3JhbmdlX2JvdW5kc19oaXN0b2dyYW0pKTsKIAkJfQotCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihvdXQsICJcbik7XG4iKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJm91dCwgIlxu KTtcbiIpOwogCX0KIAogCVBRY2xlYXIocmVzKTsKIAorCXRlcm1QUUV4cEJ1ZmZlcigmcXVlcnkp OworCXJldHVybiBvdXQuZGF0YTsKK30KKworLyoKKyAqIGR1bXBSZWxhdGlvblN0YXRzIC0tCisg KgorICogRHVtcCBjb21tYW5kIHRvIGltcG9ydCBzdGF0cyBpbnRvIHRoZSByZWxhdGlvbiBvbiB0 aGUgbmV3IGRhdGFiYXNlLgorICovCitzdGF0aWMgdm9pZAorZHVtcFJlbGF0aW9uU3RhdHMoQXJj aGl2ZSAqZm91dCwgY29uc3QgUmVsU3RhdHNJbmZvICpyc2luZm8pCit7CisJY29uc3QgRHVtcGFi bGVPYmplY3QgKmRvYmogPSAmcnNpbmZvLT5kb2JqOworCisJRHVtcElkCSAgICpkZXBzID0gTlVM TDsKKwlpbnQJCQluZGVwcyA9IDA7CisKKwkvKiBub3RoaW5nIHRvIGRvIGlmIHdlIGFyZSBub3Qg ZHVtcGluZyBzdGF0aXN0aWNzICovCisJaWYgKCFmb3V0LT5kb3B0LT5kdW1wU3RhdGlzdGljcykK KwkJcmV0dXJuOworCisJLyogZGVwZW5kZW50IG9uIHRoZSByZWxhdGlvbiBkZWZpbml0aW9uLCBp ZiBkb2luZyBzY2hlbWEgKi8KKwlpZiAoZm91dC0+ZG9wdC0+ZHVtcFNjaGVtYSkKKwl7CisJCWRl cHMgPSBkb2JqLT5kZXBlbmRlbmNpZXM7CisJCW5kZXBzID0gZG9iai0+bkRlcHM7CisJfQorCiAJ QXJjaGl2ZUVudHJ5KGZvdXQsIG5pbENhdGFsb2dJZCwgY3JlYXRlRHVtcElkKCksCiAJCQkJIEFS Q0hJVkVfT1BUUygudGFnID0gZG9iai0+bmFtZSwKIAkJCQkJCQkgIC5uYW1lc3BhY2UgPSBkb2Jq LT5uYW1lc3BhY2UtPmRvYmoubmFtZSwKIAkJCQkJCQkgIC5kZXNjcmlwdGlvbiA9ICJTVEFUSVNU SUNTIERBVEEiLAogCQkJCQkJCSAgLnNlY3Rpb24gPSByc2luZm8tPnBvc3Rwb25lZF9kZWYgPwog CQkJCQkJCSAgU0VDVElPTl9QT1NUX0RBVEEgOiBzdGF0aXN0aWNzRHVtcFNlY3Rpb24ocnNpbmZv KSwKLQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gb3V0LT5kYXRhLAorCQkJCQkJCSAgLmNyZWF0ZUZu ID0gcHJpbnRSZWxhdGlvblN0YXRzLAorCQkJCQkJCSAgLmNyZWF0ZUFyZyA9IHJzaW5mbywKIAkJ CQkJCQkgIC5kZXBzID0gZGVwcywKIAkJCQkJCQkgIC5uRGVwcyA9IG5kZXBzKSk7Ci0KLQlkZXN0 cm95UFFFeHBCdWZmZXIob3V0KTsKLQlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOwogfQogCiAv KgoKYmFzZS1jb21taXQ6IGJkZTJmYjc5N2FhZWJjYmUwNmJmNjBmMzMwYmE1YTA2OGYxN2RkYTcK LS0gCjIuNDkuMAoK --0000000000003d44c1063134f087 Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0003-Add-relallfrozen-to-pg_dump-statistics.patch" Content-Disposition: attachment; filename="v10-0003-Add-relallfrozen-to-pg_dump-statistics.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m8p9b1c42 RnJvbSA4N2RhN2Q0YzUxN2MzYjJlNjM2NjY4OTJlNjRiOWRlMmE4ZGJiZTQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb3JleSBIdWlua2VyIDxjb3JleS5odWlua2VyQGdtYWlsLmNv bT4KRGF0ZTogU2F0LCAxNSBNYXIgMjAyNSAxNzozNDozMCAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg djEwIDMvNF0gQWRkIHJlbGFsbGZyb3plbiB0byBwZ19kdW1wIHN0YXRpc3RpY3MuCgpUaGUgY29s dW1uIHJlbGFsbGZyb3plbiB3YXMgcmVjZW50bHkgYWRkZWQgdG8gcGdfY2xhc3MgYW5kIGl0IGFs c28KcmVwcmVzZW50IHN0YXRpc3RpY3MsIHNvIHdlIHNob3VsZCBhZGQgaXQgdG8gdGhlIGR1bXAv cmVzdG9yZS91cGdyYWRlCm9wZXJhdGlvbnMuCgpEdW1wcyBvZiBkYXRhYmFzZXMgcHJpb3IgdG8g djE4IHdpbGwgbm90IGF0dGVtcHQgdG8gcmVzdG9yZSBhbnkgdmFsdWUgdG8KcmVsYWxsZnJvemVu LCBhbGxvd2luZyBwZ19yZXN0b3JlX3JlbGF0aW9uX3N0YXRzKCkgdG8gc2V0IHRoZSBkZWZhdWx0 IGl0CmRlZW1zIGFwcHJvcHJpYXRlLgotLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAg ICAgIHwgNTIgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmggICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwgfCAgMyArLQogMyBmaWxlcyBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYwppbmRleCBlM2YyZGFjMzNlYy4uNmMzNjZmZDU1ZDMgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwpAQCAtNjg5Nyw3ICs2ODk3LDggQEAgZ2V0RnVuY3MoQXJjaGl2ZSAqZm91dCkKICAqLwog c3RhdGljIFJlbFN0YXRzSW5mbyAqCiBnZXRSZWxhdGlvblN0YXRpc3RpY3MoQXJjaGl2ZSAqZm91 dCwgRHVtcGFibGVPYmplY3QgKnJlbCwgaW50MzIgcmVscGFnZXMsCi0JCQkJCSAgY2hhciAqcmVs dHVwbGVzLCBpbnQzMiByZWxhbGx2aXNpYmxlLCBjaGFyIHJlbGtpbmQsCisJCQkJCSAgY2hhciAq cmVsdHVwbGVzLCBpbnQzMiByZWxhbGx2aXNpYmxlLAorCQkJCQkgIGludDMyIHJlbGFsbGZyb3pl biwgY2hhciByZWxraW5kLAogCQkJCQkgIGNoYXIgKippbmRBdHROYW1lcywgaW50IG5pbmRBdHRO YW1lcykKIHsKIAlpZiAoIWZvdXQtPmRvcHQtPmR1bXBTdGF0aXN0aWNzKQpAQCAtNjkyNiw2ICs2 OTI3LDcgQEAgZ2V0UmVsYXRpb25TdGF0aXN0aWNzKEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2Jq ZWN0ICpyZWwsIGludDMyIHJlbHBhZ2VzLAogCQlpbmZvLT5yZWxwYWdlcyA9IHJlbHBhZ2VzOwog CQlpbmZvLT5yZWx0dXBsZXMgPSBwc3RyZHVwKHJlbHR1cGxlcyk7CiAJCWluZm8tPnJlbGFsbHZp c2libGUgPSByZWxhbGx2aXNpYmxlOworCQlpbmZvLT5yZWxhbGxmcm96ZW4gPSByZWxhbGxmcm96 ZW47CiAJCWluZm8tPnJlbGtpbmQgPSByZWxraW5kOwogCQlpbmZvLT5pbmRBdHROYW1lcyA9IGlu ZEF0dE5hbWVzOwogCQlpbmZvLT5uaW5kQXR0TmFtZXMgPSBuaW5kQXR0TmFtZXM7CkBAIC02OTY1 LDYgKzY5NjcsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJ aW50CQkJaV9yZWxwYWdlczsKIAlpbnQJCQlpX3JlbHR1cGxlczsKIAlpbnQJCQlpX3JlbGFsbHZp c2libGU7CisJaW50CQkJaV9yZWxhbGxmcm96ZW47CiAJaW50CQkJaV90b2FzdHBhZ2VzOwogCWlu dAkJCWlfb3duaW5nX3RhYjsKIAlpbnQJCQlpX293bmluZ19jb2w7CkBAIC03MDE1LDggKzcwMTgs MTMgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQkJCQkJICJj LnJlbG93bmVyLCAiCiAJCQkJCQkgImMucmVsY2hlY2tzLCAiCiAJCQkJCQkgImMucmVsaGFzaW5k ZXgsIGMucmVsaGFzcnVsZXMsIGMucmVscGFnZXMsICIKLQkJCQkJCSAiYy5yZWx0dXBsZXMsIGMu cmVsYWxsdmlzaWJsZSwgYy5yZWxoYXN0cmlnZ2VycywgIgotCQkJCQkJICJjLnJlbHBlcnNpc3Rl bmNlLCAiCisJCQkJCQkgImMucmVsdHVwbGVzLCBjLnJlbGFsbHZpc2libGUsICIpOworCisJaWYg KGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTgwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwgImMucmVsYWxsZnJvemVuLCAiKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LAorCQkJCQkJICJjLnJlbGhhc3RyaWdnZXJzLCBjLnJlbHBlcnNpc3RlbmNlLCAiCiAJCQkJCQkg ImMucmVsb2Z0eXBlLCAiCiAJCQkJCQkgImMucmVsYWNsLCAiCiAJCQkJCQkgImFjbGRlZmF1bHQo Q0FTRSBXSEVOIGMucmVsa2luZCA9ICIgQ3BwQXNTdHJpbmcyKFJFTEtJTkRfU0VRVUVOQ0UpCkBA IC03MTgxLDYgKzcxODksNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJs ZXMpCiAJaV9yZWxwYWdlcyA9IFBRZm51bWJlcihyZXMsICJyZWxwYWdlcyIpOwogCWlfcmVsdHVw bGVzID0gUFFmbnVtYmVyKHJlcywgInJlbHR1cGxlcyIpOwogCWlfcmVsYWxsdmlzaWJsZSA9IFBR Zm51bWJlcihyZXMsICJyZWxhbGx2aXNpYmxlIik7CisJaV9yZWxhbGxmcm96ZW4gPSBQUWZudW1i ZXIocmVzLCAicmVsYWxsZnJvemVuIik7CiAJaV90b2FzdHBhZ2VzID0gUFFmbnVtYmVyKHJlcywg InRvYXN0cGFnZXMiKTsKIAlpX293bmluZ190YWIgPSBQUWZudW1iZXIocmVzLCAib3duaW5nX3Rh YiIpOwogCWlfb3duaW5nX2NvbCA9IFBRZm51bWJlcihyZXMsICJvd25pbmdfY29sIik7CkBAIC03 MjI4LDYgKzcyMzcsNyBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMp CiAJZm9yIChpID0gMDsgaSA8IG50dXBzOyBpKyspCiAJewogCQlpbnQzMgkJcmVsYWxsdmlzaWJs ZSA9IGF0b2koUFFnZXR2YWx1ZShyZXMsIGksIGlfcmVsYWxsdmlzaWJsZSkpOworCQlpbnQzMgkJ cmVsYWxsZnJvemVuID0gYXRvaShQUWdldHZhbHVlKHJlcywgaSwgaV9yZWxhbGxmcm96ZW4pKTsK IAogCQl0YmxpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERPX1RBQkxFOwogCQl0YmxpbmZvW2ldLmRv YmouY2F0SWQudGFibGVvaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfcmVsdGFibGVv aWQpKTsKQEAgLTczMzAsNyArNzM0MCw3IEBAIGdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQg Km51bVRhYmxlcykKIAkJaWYgKHRibGluZm9baV0uaW50ZXJlc3RpbmcpCiAJCQlnZXRSZWxhdGlv blN0YXRpc3RpY3MoZm91dCwgJnRibGluZm9baV0uZG9iaiwgdGJsaW5mb1tpXS5yZWxwYWdlcywK IAkJCQkJCQkJICBQUWdldHZhbHVlKHJlcywgaSwgaV9yZWx0dXBsZXMpLAotCQkJCQkJCQkgIHJl bGFsbHZpc2libGUsIHRibGluZm9baV0ucmVsa2luZCwgTlVMTCwgMCk7CisJCQkJCQkJCSAgcmVs YWxsdmlzaWJsZSwgcmVsYWxsZnJvemVuLCB0YmxpbmZvW2ldLnJlbGtpbmQsIE5VTEwsIDApOwog CiAJCS8qCiAJCSAqIFJlYWQtbG9jayB0YXJnZXQgdGFibGVzIHRvIG1ha2Ugc3VyZSB0aGV5IGFy ZW4ndCBEUk9QUEVEIG9yIGFsdGVyZWQKQEAgLTc1OTksNiArNzYwOSw3IEBAIGdldEluZGV4ZXMo QXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJCQlp X3JlbHBhZ2VzLAogCQkJCWlfcmVsdHVwbGVzLAogCQkJCWlfcmVsYWxsdmlzaWJsZSwKKwkJCQlp X3JlbGFsbGZyb3plbiwKIAkJCQlpX3BhcmVudGlkeCwKIAkJCQlpX2luZGV4ZGVmLAogCQkJCWlf aW5kbmtleWF0dHMsCkBAIC03NjUzLDcgKzc2NjQsMTIgQEAgZ2V0SW5kZXhlcyhBcmNoaXZlICpm b3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LAogCQkJCQkJICJTRUxFQ1QgdC50YWJsZW9pZCwgdC5vaWQsIGkuaW5kcmVs aWQsICIKIAkJCQkJCSAidC5yZWxuYW1lIEFTIGluZGV4bmFtZSwgIgotCQkJCQkJICJ0LnJlbHBh Z2VzLCB0LnJlbHR1cGxlcywgdC5yZWxhbGx2aXNpYmxlLCAiCisJCQkJCQkgInQucmVscGFnZXMs IHQucmVsdHVwbGVzLCB0LnJlbGFsbHZpc2libGUsICIpOworCisJaWYgKGZvdXQtPnJlbW90ZVZl cnNpb24gPj0gMTgwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgInQucmVsYWxs ZnJvemVuLCAiKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJICJwZ19j YXRhbG9nLnBnX2dldF9pbmRleGRlZihpLmluZGV4cmVsaWQpIEFTIGluZGV4ZGVmLCAiCiAJCQkJ CQkgImkuaW5ka2V5LCBpLmluZGlzY2x1c3RlcmVkLCAiCiAJCQkJCQkgImMuY29udHlwZSwgYy5j b25uYW1lLCAiCkBAIC03NzY5LDYgKzc3ODUsNyBAQCBnZXRJbmRleGVzKEFyY2hpdmUgKmZvdXQs IFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJaV9yZWxwYWdlcyA9IFBRZm51 bWJlcihyZXMsICJyZWxwYWdlcyIpOwogCWlfcmVsdHVwbGVzID0gUFFmbnVtYmVyKHJlcywgInJl bHR1cGxlcyIpOwogCWlfcmVsYWxsdmlzaWJsZSA9IFBRZm51bWJlcihyZXMsICJyZWxhbGx2aXNp YmxlIik7CisJaV9yZWxhbGxmcm96ZW4gPSBQUWZudW1iZXIocmVzLCAicmVsYWxsZnJvemVuIik7 CiAJaV9wYXJlbnRpZHggPSBQUWZudW1iZXIocmVzLCAicGFyZW50aWR4Iik7CiAJaV9pbmRleGRl ZiA9IFBRZm51bWJlcihyZXMsICJpbmRleGRlZiIpOwogCWlfaW5kbmtleWF0dHMgPSBQUWZudW1i ZXIocmVzLCAiaW5kbmtleWF0dHMiKTsKQEAgLTc4NDAsNiArNzg1Nyw3IEBAIGdldEluZGV4ZXMo QXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJCVJl bFN0YXRzSW5mbyAqcmVsc3RhdHM7CiAJCQlpbnQzMgkJcmVscGFnZXMgPSBhdG9pKFBRZ2V0dmFs dWUocmVzLCBqLCBpX3JlbHBhZ2VzKSk7CiAJCQlpbnQzMgkJcmVsYWxsdmlzaWJsZSA9IGF0b2ko UFFnZXR2YWx1ZShyZXMsIGosIGlfcmVsYWxsdmlzaWJsZSkpOworCQkJaW50MzIJCXJlbGFsbGZy b3plbiA9IGF0b2koUFFnZXR2YWx1ZShyZXMsIGosIGlfcmVsYWxsZnJvemVuKSk7CiAKIAkJCWlu ZHhpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX0lOREVYOwogCQkJaW5keGluZm9bal0uZG9iai5j YXRJZC50YWJsZW9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaiwgaV90YWJsZW9pZCkpOwpA QCAtNzg4Miw3ICs3OTAwLDcgQEAgZ2V0SW5kZXhlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8g dGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCiAJCQlyZWxzdGF0cyA9IGdldFJlbGF0aW9uU3Rh dGlzdGljcyhmb3V0LCAmaW5keGluZm9bal0uZG9iaiwgcmVscGFnZXMsCiAJCQkJCQkJCQkJCSBQ UWdldHZhbHVlKHJlcywgaiwgaV9yZWx0dXBsZXMpLAotCQkJCQkJCQkJCQkgcmVsYWxsdmlzaWJs ZSwgaW5kZXhraW5kLAorCQkJCQkJCQkJCQkgcmVsYWxsdmlzaWJsZSwgcmVsYWxsZnJvemVuLCBp bmRleGtpbmQsCiAJCQkJCQkJCQkJCSBpbmRBdHROYW1lcywgbmluZEF0dE5hbWVzKTsKIAogCQkJ Y29udHlwZSA9ICooUFFnZXR2YWx1ZShyZXMsIGosIGlfY29udHlwZSkpOwpAQCAtMTA4NjIsMTkg KzEwODgwLDIxIEBAIHByaW50UmVsYXRpb25TdGF0cyhBcmNoaXZlICpmb3V0LCBjb25zdCB2b2lk ICp1c2VyQXJnKQogCWluaXRQUUV4cEJ1ZmZlcigmb3V0KTsKIAogCS8qIHJlc3RvcmUgcmVsYXRp b24gc3RhdHMgKi8KLQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmb3V0LCAiU0VMRUNUICogRlJPTSBw Z19jYXRhbG9nLnBnX3Jlc3RvcmVfcmVsYXRpb25fc3RhdHMoXG4iKTsKLQlhcHBlbmRQUUV4cEJ1 ZmZlcigmb3V0LCAiXHQndmVyc2lvbicsICcldSc6OmludGVnZXIsXG4iLAorCWFwcGVuZFBRRXhw QnVmZmVyU3RyKCZvdXQsICJTRUxFQ1QgKiBGUk9NIHBnX2NhdGFsb2cucGdfcmVzdG9yZV9yZWxh dGlvbl9zdGF0cygiKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmb3V0LCAiXG5cdCd2ZXJzaW9uJywg JyV1Jzo6aW50ZWdlciIsCiAJCQkJCSAgZm91dC0+cmVtb3RlVmVyc2lvbik7Ci0JYXBwZW5kUFFF eHBCdWZmZXJTdHIoJm91dCwgIlx0J3NjaGVtYW5hbWUnLCAiKTsKKwlhcHBlbmRQUUV4cEJ1ZmZl clN0cigmb3V0LCAiLFxuXHQnc2NoZW1hbmFtZScsICIpOwogCWFwcGVuZFN0cmluZ0xpdGVyYWxB SCgmb3V0LCByc2luZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIGZvdXQpOwotCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKCZvdXQsICIsXG4iKTsKLQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmb3V0 LCAiXHQncmVsbmFtZScsICIpOworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZvdXQsICIsXG5cdCdy ZWxuYW1lJywgIik7CiAJYXBwZW5kU3RyaW5nTGl0ZXJhbEFIKCZvdXQsIHJzaW5mby0+ZG9iai5u YW1lLCBmb3V0KTsKLQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmb3V0LCAiLFxuIik7Ci0JYXBwZW5k UFFFeHBCdWZmZXIoJm91dCwgIlx0J3JlbHBhZ2VzJywgJyVkJzo6aW50ZWdlcixcbiIsIHJzaW5m by0+cmVscGFnZXMpOwotCWFwcGVuZFBRRXhwQnVmZmVyKCZvdXQsICJcdCdyZWx0dXBsZXMnLCAn JXMnOjpyZWFsLFxuIiwgcnNpbmZvLT5yZWx0dXBsZXMpOwotCWFwcGVuZFBRRXhwQnVmZmVyKCZv dXQsICJcdCdyZWxhbGx2aXNpYmxlJywgJyVkJzo6aW50ZWdlclxuKTtcbiIsCi0JCQkJCSAgcnNp bmZvLT5yZWxhbGx2aXNpYmxlKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmb3V0LCAiLFxuXHQncmVs cGFnZXMnLCAnJWQnOjppbnRlZ2VyIiwgcnNpbmZvLT5yZWxwYWdlcyk7CisJYXBwZW5kUFFFeHBC dWZmZXIoJm91dCwgIixcblx0J3JlbHR1cGxlcycsICclcyc6OnJlYWwiLCByc2luZm8tPnJlbHR1 cGxlcyk7CisJYXBwZW5kUFFFeHBCdWZmZXIoJm91dCwgIixcblx0J3JlbGFsbHZpc2libGUnLCAn JWQnOjppbnRlZ2VyIiwgcnNpbmZvLT5yZWxhbGx2aXNpYmxlKTsKKworCWlmIChmb3V0LT5yZW1v dGVWZXJzaW9uID49IDE4MDAwMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJm91dCwgIixcblx0J3Jl bGFsbGZyb3plbicsICclZCc6OmludGVnZXIiLCByc2luZm8tPnJlbGFsbGZyb3plbik7CisKKwlh cHBlbmRQUUV4cEJ1ZmZlclN0cigmb3V0LCAiXG4pO1xuIik7CiAKIAlBSC0+dHhuQ291bnQrKzsK IApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmgKaW5kZXggYmJkYjMwYjVmNTQuLjgyZjFlYjNjNGI3IDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgK QEAgLTQ0MSw2ICs0NDEsNyBAQCB0eXBlZGVmIHN0cnVjdCBfcmVsU3RhdHNJbmZvCiAJaW50MzIJ CXJlbHBhZ2VzOwogCWNoYXIJICAgKnJlbHR1cGxlczsKIAlpbnQzMgkJcmVsYWxsdmlzaWJsZTsK KwlpbnQzMgkJcmVsYWxsZnJvemVuOwogCWNoYXIJCXJlbGtpbmQ7CQkvKiAncicsICdtJywgJ2kn LCBldGMgKi8KIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVt cC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDUxZWJmOGFkMTNj Li41NzYzMjZkYWVjNyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTQ3NzEsNyArNDc3 MSw4IEBAIG15ICV0ZXN0cyA9ICgKIAkJCSdyZWxuYW1lJyxccydkdXBfdGVzdF9wb3N0X2RhdGFf aXgnLFxzKwogCQkJJ3JlbHBhZ2VzJyxccydcZCsnOjppbnRlZ2VyLFxzKwogCQkJJ3JlbHR1cGxl cycsXHMnXGQrJzo6cmVhbCxccysKLQkJCSdyZWxhbGx2aXNpYmxlJyxccydcZCsnOjppbnRlZ2Vy XHMrCisJCQkncmVsYWxsdmlzaWJsZScsXHMnXGQrJzo6aW50ZWdlcixccysKKwkJCSdyZWxhbGxm cm96ZW4nLFxzJ1xkKyc6OmludGVnZXJccysKIAkJCVwpO1xzKwogCQkJXFFTRUxFQ1QgKiBGUk9N IHBnX2NhdGFsb2cucGdfcmVzdG9yZV9hdHRyaWJ1dGVfc3RhdHMoXEVccysKIAkJCSd2ZXJzaW9u JyxccydcZCsnOjppbnRlZ2VyLFxzKwotLSAKMi40OS4wCgo= --0000000000003d44c1063134f087--