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 1tEHZ9-006WtP-AF for pgsql-hackers@arkaria.postgresql.org; Fri, 22 Nov 2024 00:30:32 +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 1tEHZ6-003FmJ-4S for pgsql-hackers@arkaria.postgresql.org; Fri, 22 Nov 2024 00:30:28 +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 1tEHZ4-003Fm5-Id for pgsql-hackers@lists.postgresql.org; Fri, 22 Nov 2024 00:30:27 +0000 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tEHYp-0038N9-O7 for pgsql-hackers@lists.postgresql.org; Fri, 22 Nov 2024 00:30:25 +0000 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-2ea49a1b4c8so1249093a91.2 for ; Thu, 21 Nov 2024 16:30:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1732235409; x=1732840209; darn=lists.postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=m6hvg3pkXxFpZ6/SVNVETW55eDES7MPp0RO9Ofy+TTc=; b=VspFMlcElt0tOdP1MdiAALn5O9eeaQWB7qVwgiOHS18hWBXVx1HpiQJvJyNzIzVouF LlxBy80l25Gn76g94LX0kAhicjRW3Qp+i37wLC6fj2SpJyJ0US4TZR2h8kpv6EfnDDEu Z8DUYdUkp1z560fOR/WNYZz19Gsxe2ZJ3+rJRv90FEIb2HuVkqXLanCx0em8A7PKO9fw PiY4oCFyDM9lzaUtHCwUt6s2WJy9WaOuhC/h21k1hxnG7xn6zx6GhLG2U3p5+C5sZtcH jbz3Y3rb4pTMOu2OoszN3vy4a0G5Pv9bQxQgInmJ5sjcaxYdzGKDzUAqFNeThrhJTFHF FA/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732235409; x=1732840209; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=m6hvg3pkXxFpZ6/SVNVETW55eDES7MPp0RO9Ofy+TTc=; b=jWA8NlZDQCphN8GWek55jQigw8CHHubD2OkIBVQi9bVd8cweJ0x3HgjiA0Mkq+VCux fllfgZfbrxr3T8mQcfi7toVnAT/e0rGrhl2OA+Z1U0j/aVipPLV5xkVK24F62ppVMufC tBGjLkpQ0oG4tnQkYL759ROjzQLlFwQP3gLAjovpPMOhpxCf6le7RnT6k8GfRa4tkON5 GZjDZnTIPyKQms0o926B7zbzt2DwzJ2NwFj5P8J5uoxLAQ+Ts7tTkwoG+1l5l0SXUxwi QynDQ0d5LbM3lrCjEZdRu87dqJnh8sJNRTL+sBZtDIFG0bUa5xdtMFf+W5FxgcpI8Wq8 A/qQ== X-Forwarded-Encrypted: i=1; AJvYcCWItyc2EdVNYGnD1ivo/ON1vBJcDljDvsszUFujh59UA1GK7yN4qaqJ4x/10xHa8nbv5ybUUjZr1jap8/Qv@lists.postgresql.org X-Gm-Message-State: AOJu0Yye/FtmUHFmRTInTm5cgGK0GacU5E4OMNC8ncHls058Xt9v2Sqj aZb0G1EMw8KiIdHxjJVeuzie+6+uWg3sfevO8/eqwy+lJ0Hs37ulbiP2adeMbb0= X-Gm-Gg: ASbGncuBWYqaOOSlBv2+1FgOb5U33cbklDXZ63LkfSxgYkApwaArrG0xUQ+9LlA1XEO DSF0haAitg8RtBgWA8whnEKjxq4k2IcrfaHCuAJisbkjPpavLA8PJ8ASTeQ5rOrNWQImxBYRYNk tbYQxee5mAdkNoxDrCoQRWq9BoVxH50hdkv8lFkUr7DU9qGnHXoINB7AiXtRDCpAeMsZd0mNFbT hdukDQpT9FFK6wdXl+z12eBnAywFV2TY2yN/UAG5jnGh1yh8Sn9/a+kZoe4hMo= X-Google-Smtp-Source: AGHT+IGEEGz7OU9d9mAKxE12v6anXd0NvgvTo1ge2tETr4WeVdaaahemEQGW8mGmzjIIeSorPBBPnA== X-Received: by 2002:a17:90a:e7c7:b0:2ea:3d61:1847 with SMTP id 98e67ed59e1d1-2eb0e890c95mr891631a91.32.1732235408903; Thu, 21 Nov 2024 16:30:08 -0800 (PST) Received: from [192.168.2.139] ([50.39.255.79]) by smtp.googlemail.com with ESMTPSA id 98e67ed59e1d1-2eb0cd35e98sm348125a91.0.2024.11.21.16.30.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 Nov 2024 16:30:07 -0800 (PST) Content-Type: multipart/mixed; boundary="------------OnvqRywVNIjsiZuvTo32rvFz" Message-ID: Date: Thu, 21 Nov 2024 16:30:06 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: SQL:2011 application time To: Peter Eisentraut Cc: jian he , PostgreSQL Hackers References: <73d09e24-b6b9-4c89-8c0a-8842ca0f81f9@illuminatedcomputing.com> <081aa43c-3a97-4bd5-a498-ba02e0a7570d@illuminatedcomputing.com> <54390149-11d6-4f52-bbe8-f69832ceb3bd@eisentraut.org> <9b7cb814-c78c-489f-85b2-32be4398647f@illuminatedcomputing.com> <95c6d49b-7d60-4ad0-820c-e00ae1b2a3d4@illuminatedcomputing.com> <57ea0668-5205-426e-b934-efc89f2186c2@illuminatedcomputing.com> <6dc196d4-8853-49d7-8dd3-e391058451c1@eisentraut.org> <66e47fc0-77b7-4763-9b70-5c0b7ff15f21@eisentraut.org> Content-Language: en-US From: Paul Jungwirth In-Reply-To: <66e47fc0-77b7-4763-9b70-5c0b7ff15f21@eisentraut.org> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------OnvqRywVNIjsiZuvTo32rvFz Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Here are updated patches. I left off the final PERIODs patch because it still has some conflicts with the new NOT NULL constraints work. I'll soon an update with that soon. On 11/21/24 04:56, Peter Eisentraut wrote: >> On the publisher side: You can use REPLICA IDENTITY DEFAULT with a temporal PK/UNIQUE index. There >> is no validation step, and sending the changes works fine. But REPLICA IDENTITY USING INDEX fails >> because the validation step rejects the non-btree index. > > Ok, I have committed the fix for this, and I'll continue working through the rest of the patches. Thanks! On 11/13/24 02:11, Peter Eisentraut wrote: > - return get_equal_strategy_number_for_am(am); > + /* For GiST indexes we need to ask the opclass what strategy number to use. */ > + if (am == GIST_AM_OID) > + return GistTranslateStratnum(opclass, RTEqualStrategyNumber); > + else > + return get_equal_strategy_number_for_am(am); > > This code should probably be pushed into get_equal_strategy_number_for_am(). That function already > has a switch based on index AM OIDs. Also, there are other callers of > get_equal_strategy_number_for_am(), which also might want to become aware of GiST support. Done. The reason I didn't do this before is because we need the opclass, not just the am. I put an explanation about that into the function comment. If that's a problem I can undo the change. > For the new test file, remember to add it to src/test/subscription/meson.build. > > Also, maybe add a introductory comment in the test file to describe generally what it's trying to test. Done. On 11/13/24 02:50, Peter Eisentraut wrote: > A quick comment on the patch > > v43-0005-Add-UPDATE-DELETE-FOR-PORTION-OF.patch > > regarding the code in transformForPortionOfClause() and the additions you made to lsyscache.c: > > What you are doing is taking a type OID and a function OID and then converting them back to name and > namespace and then building a node and then feeding that node back through the parse analysis > transformation. This all seems quite fishy and cumbersome. I think instead of building a FuncCall > and transforming it, try to build a FuncExpr directly. Then you wouldn't need these new helper > functions, which would also reduce the surface area of your patch. Okay, that makes sense. I changed that for the FOR PORTION OF bounds expression. I still need to get the rangetype name and namespace to look up its constructor function. Even if I built another FuncExpr myself there, I don't see any way to get the constructor oid without calling SearchSysCache3(PROCNAMEARGSNSP, ...). So I'm still doing type oid -> type name -> func oid. > Additional mini-comment: > > #include "utils/rangetypes.h" > > in src/include/nodes/execnodes.h appears to be unnecessary (but it is then required in src/backend/ > commands/trigger.c). Done. On 11/13/24 02:53, Peter Eisentraut wrote: > I committed a few fixes in this area today. Has everything here been addressed? Yes, everything here was addressed in my v41 patches (sent 2024-10-21). Rebased to 4c4aaa19a6. Yours, -- Paul ~{:-) pj@illuminatedcomputing.com --------------OnvqRywVNIjsiZuvTo32rvFz Content-Type: text/x-patch; charset=UTF-8; name="v45-0001-Fix-logical-replication-for-temporal-tables.patch" Content-Disposition: attachment; filename*0="v45-0001-Fix-logical-replication-for-temporal-tables.patch" Content-Transfer-Encoding: base64 RnJvbSBiY2Q1NzIwMjQ4MTMzOTYyMjM5MDI3YWVlMDdiMzlmY2VmMTNlYzIzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFdlZCwgMTYgT2N0IDIwMjQgMTE6MDY6NDAgLTA3 MDAKU3ViamVjdDogW1BBVENIIHY0NSAxLzhdIEZpeCBsb2dpY2FsIHJlcGxpY2F0aW9uIGZv ciB0ZW1wb3JhbCB0YWJsZXMKCkEgV0lUSE9VVCBPVkVSTEFQUyBwcmltYXJ5IGtleSBvciB1 bmlxdWUgY29uc3RyYWludCBzaG91bGQgd29yayBhcyBhClJFUExJQ0EgSURFTlRJVFksIHNp bmNlIGl0IGd1YXJhbnRlZXMgdW5pcXVlbmVzcy4gQnV0IHN1YnNjcmliZXJzCmFwcGx5aW5n IGxvZ2ljYWwgZGVjb2RpbmcgbWVzc2FnZXMgZ290IGNvbmZ1c2VkIGJlY2F1c2UgdGhleSB0 cmllZCB0bwpsb29rIHVwIHRoZSBlcXVhbHMgb3BlcmF0b3IgYmFzZWQgb24gYnRyZWUgc3Ry YXRlZ3kgbnVtYmVycy4gRm9yIEdpU1QKaW5kZXhlcyB3ZSBjYW4gdXNlIHRoZSBzdHJhdG51 bSBHaVNUIHN1cHBvcnQgZnVuY3Rpb24uCgpBdXRob3I6IFBhdWwgSnVuZ3dpcnRoCi0tLQog c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMgICAgIHwgIDIyICstCiBz cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3JlbGF0aW9uLmMgfCAgIDIgKy0KIHNy Yy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmggICAgICAgICAgICB8ICAgMiArLQogc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkICAgICAgICAgIHwgICAxICsKIHNyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAzNF90ZW1wb3JhbC5wbCAgICB8IDY3NCArKysrKysrKysr KysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgNjkyIGluc2VydGlvbnMoKyksIDkgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3Qv MDM0X3RlbXBvcmFsLnBsCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1JlcGxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24u YwppbmRleCA1NDAyNWM5ZjE1MC4uMThiNGQwODY4ODkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5jbHVkZSAicG9z dGdyZXMuaCIKIAogI2luY2x1ZGUgImFjY2Vzcy9nZW5hbS5oIgorI2luY2x1ZGUgImFjY2Vz cy9naXN0LmgiCiAjaW5jbHVkZSAiYWNjZXNzL3JlbHNjYW4uaCIKICNpbmNsdWRlICJhY2Nl c3MvdGFibGVhbS5oIgogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCkBAIC0zOCwxNiAr MzksMTggQEAgc3RhdGljIGJvb2wgdHVwbGVzX2VxdWFsKFR1cGxlVGFibGVTbG90ICpzbG90 MSwgVHVwbGVUYWJsZVNsb3QgKnNsb3QyLAogCQkJCQkJIFR5cGVDYWNoZUVudHJ5ICoqZXEp OwogCiAvKgotICogUmV0dXJucyB0aGUgZml4ZWQgc3RyYXRlZ3kgbnVtYmVyLCBpZiBhbnks IG9mIHRoZSBlcXVhbGl0eSBvcGVyYXRvciBmb3IgdGhlCisgKiBSZXR1cm5zIHRoZSBzdHJh dGVneSBudW1iZXIsIGlmIGFueSwgb2YgdGhlIGVxdWFsaXR5IG9wZXJhdG9yIGZvciB0aGUK ICAqIGdpdmVuIGluZGV4IGFjY2VzcyBtZXRob2QsIG90aGVyd2lzZSwgSW52YWxpZFN0cmF0 ZWd5LgogICoKLSAqIEN1cnJlbnRseSwgb25seSBCdHJlZSBhbmQgSGFzaCBpbmRleGVzIGFy ZSBzdXBwb3J0ZWQuIFRoZSBvdGhlciBpbmRleCBhY2Nlc3MKLSAqIG1ldGhvZHMgZG9uJ3Qg aGF2ZSBhIGZpeGVkIHN0cmF0ZWd5IGZvciBlcXVhbGl0eSBvcGVyYXRpb24gLSBpbnN0ZWFk LCB0aGUKLSAqIHN1cHBvcnQgcm91dGluZXMgb2YgZWFjaCBvcGVyYXRvciBjbGFzcyBpbnRl cnByZXQgdGhlIHN0cmF0ZWd5IG51bWJlcnMKLSAqIGFjY29yZGluZyB0byB0aGUgb3BlcmF0 b3IgY2xhc3MncyBkZWZpbml0aW9uLgorICogQnRyZWUgYW5kIEhhc2ggaW5kZXhlcyBhcmUg c3VwcG9ydGVkIHdpdGhvdXQgYW4gb3BjbGFzcy4gVGhlIG90aGVyIGluZGV4CisgKiBhY2Nl c3MgbWV0aG9kcyBkb24ndCBoYXZlIGEgZml4ZWQgc3RyYXRlZ3kgZm9yIGVxdWFsaXR5IG9w ZXJhdGlvbiAtIGluc3RlYWQsCisgKiB0aGUgc3VwcG9ydCByb3V0aW5lcyBvZiBlYWNoIG9w ZXJhdG9yIGNsYXNzIGludGVycHJldCB0aGUgc3RyYXRlZ3kgbnVtYmVycworICogYWNjb3Jk aW5nIHRvIHRoZSBvcGVyYXRvciBjbGFzcydzIGRlZmluaXRpb24uIEEgR2lTVCBvcGNsYXNz IG1heSBiZSBhYmxlCisgKiB0byBjb21tdW5pY2F0ZSBpdHMgcHJlZmVycmVkIHN0cmF0ZWd5 IG51bWJlciBmb3IgZXF1YWxpdHksIHNvIHdlIHRyeQorICogYXNraW5nLgogICovCiBTdHJh dGVneU51bWJlcgotZ2V0X2VxdWFsX3N0cmF0ZWd5X251bWJlcl9mb3JfYW0oT2lkIGFtKQor Z2V0X2VxdWFsX3N0cmF0ZWd5X251bWJlcl9mb3JfYW0oT2lkIGFtLCBPaWQgb3BjbGFzcykK IHsKIAlpbnQJCQlyZXQ7CiAKQEAgLTU5LDYgKzYyLDkgQEAgZ2V0X2VxdWFsX3N0cmF0ZWd5 X251bWJlcl9mb3JfYW0oT2lkIGFtKQogCQljYXNlIEhBU0hfQU1fT0lEOgogCQkJcmV0ID0g SFRFcXVhbFN0cmF0ZWd5TnVtYmVyOwogCQkJYnJlYWs7CisJCWNhc2UgR0lTVF9BTV9PSUQ6 CisJCQlyZXQJPSBHaXN0VHJhbnNsYXRlU3RyYXRudW0ob3BjbGFzcywgUlRFcXVhbFN0cmF0 ZWd5TnVtYmVyKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJLyogWFhYOiBPbmx5IEJ0 cmVlIGFuZCBIYXNoIGluZGV4ZXMgYXJlIHN1cHBvcnRlZCAqLwogCQkJcmV0ID0gSW52YWxp ZFN0cmF0ZWd5OwpAQCAtNzcsNyArODMsNyBAQCBnZXRfZXF1YWxfc3RyYXRlZ3lfbnVtYmVy KE9pZCBvcGNsYXNzKQogewogCU9pZAkJCWFtID0gZ2V0X29wY2xhc3NfbWV0aG9kKG9wY2xh c3MpOwogCi0JcmV0dXJuIGdldF9lcXVhbF9zdHJhdGVneV9udW1iZXJfZm9yX2FtKGFtKTsK KwlyZXR1cm4gZ2V0X2VxdWFsX3N0cmF0ZWd5X251bWJlcl9mb3JfYW0oYW0sIG9wY2xhc3Mp OwogfQogCiAvKgpAQCAtMTM0LDYgKzE0MCw4IEBAIGJ1aWxkX3JlcGxpbmRleF9zY2FuX2tl eShTY2FuS2V5IHNrZXksIFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gaWR4cmVsLAogCQlvcHR5 cGUgPSBnZXRfb3BjbGFzc19pbnB1dF90eXBlKG9wY2xhc3MtPnZhbHVlc1tpbmRleF9hdHRv ZmZdKTsKIAkJb3BmYW1pbHkgPSBnZXRfb3BjbGFzc19mYW1pbHkob3BjbGFzcy0+dmFsdWVz W2luZGV4X2F0dG9mZl0pOwogCQllcV9zdHJhdGVneSA9IGdldF9lcXVhbF9zdHJhdGVneV9u dW1iZXIob3BjbGFzcy0+dmFsdWVzW2luZGV4X2F0dG9mZl0pOworCQlpZiAoIU9pZElzVmFs aWQoZXFfc3RyYXRlZ3kpKQorCQkJZWxvZyhFUlJPUiwgIm1pc3NpbmcgZXF1YWwgc3RyYXRl Z3kgZm9yIG9wY2xhc3MgJXUiLCBvcGNsYXNzLT52YWx1ZXNbaW5kZXhfYXR0b2ZmXSk7CiAK IAkJb3BlcmF0b3IgPSBnZXRfb3BmYW1pbHlfbWVtYmVyKG9wZmFtaWx5LCBvcHR5cGUsCiAJ CQkJCQkJCQkgICBvcHR5cGUsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3JlbGF0aW9uLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3JlbGF0aW9uLmMKaW5kZXggZjVhMGVmMmJkOWQuLjU5MTYxZDJiMTc2IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3JlbGF0aW9uLmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9yZWxhdGlvbi5jCkBAIC04MDYsNyArODA2 LDcgQEAgSXNJbmRleFVzYWJsZUZvclJlcGxpY2FJZGVudGl0eUZ1bGwoSW5kZXhJbmZvICpp bmRleEluZm8sIEF0dHJNYXAgKmF0dHJtYXApCiAJQXR0ck51bWJlcglrZXljb2w7CiAKIAkv KiBFbnN1cmUgdGhhdCB0aGUgaW5kZXggYWNjZXNzIG1ldGhvZCBoYXMgYSB2YWxpZCBlcXVh bCBzdHJhdGVneSAqLwotCWlmIChnZXRfZXF1YWxfc3RyYXRlZ3lfbnVtYmVyX2Zvcl9hbShp bmRleEluZm8tPmlpX0FtKSA9PSBJbnZhbGlkU3RyYXRlZ3kpCisJaWYgKGdldF9lcXVhbF9z dHJhdGVneV9udW1iZXJfZm9yX2FtKGluZGV4SW5mby0+aWlfQW0sIEludmFsaWRPaWQpID09 IEludmFsaWRTdHJhdGVneSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogVGhlIGluZGV4IG11 c3Qgbm90IGJlIGEgcGFydGlhbCBpbmRleCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv ZXhlY3V0b3IvZXhlY3V0b3IuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgK aW5kZXggNjljM2ViZmYwMGEuLmQ1YTE3NjA5NTM4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjdXRvci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1 dG9yLmgKQEAgLTY1OCw3ICs2NTgsNyBAQCBleHRlcm4gdm9pZCBjaGVja19leGNsdXNpb25f Y29uc3RyYWludChSZWxhdGlvbiBoZWFwLCBSZWxhdGlvbiBpbmRleCwKIC8qCiAgKiBwcm90 b3R5cGVzIGZyb20gZnVuY3Rpb25zIGluIGV4ZWNSZXBsaWNhdGlvbi5jCiAgKi8KLWV4dGVy biBTdHJhdGVneU51bWJlciBnZXRfZXF1YWxfc3RyYXRlZ3lfbnVtYmVyX2Zvcl9hbShPaWQg YW0pOworZXh0ZXJuIFN0cmF0ZWd5TnVtYmVyIGdldF9lcXVhbF9zdHJhdGVneV9udW1iZXJf Zm9yX2FtKE9pZCBhbSwgT2lkIG9wY2xhc3MpOwogZXh0ZXJuIGJvb2wgUmVsYXRpb25GaW5k UmVwbFR1cGxlQnlJbmRleChSZWxhdGlvbiByZWwsIE9pZCBpZHhvaWQsCiAJCQkJCQkJCQkJ IExvY2tUdXBsZU1vZGUgbG9ja21vZGUsCiAJCQkJCQkJCQkJIFR1cGxlVGFibGVTbG90ICpz ZWFyY2hzbG90LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1 aWxkIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCmluZGV4IGM1OTFjZDdk NjE5Li5iMjM5NWU3YjU3ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21l c29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZApAQCAt NDAsNiArNDAsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8wMzFfY29sdW1uX2xpc3QucGwn LAogICAgICAgJ3QvMDMyX3N1YnNjcmliZV91c2VfaW5kZXgucGwnLAogICAgICAgJ3QvMDMz X3J1bl9hc190YWJsZV9vd25lci5wbCcsCisgICAgICAndC8wMzRfdGVtcG9yYWwucGwnLAog ICAgICAgJ3QvMTAwX2J1Z3MucGwnLAogICAgIF0sCiAgIH0sCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzRfdGVtcG9yYWwucGwgYi9zcmMvdGVzdC9zdWJzY3Jp cHRpb24vdC8wMzRfdGVtcG9yYWwucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLmJmZjNiNWFhMGUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDM0X3RlbXBvcmFsLnBsCkBAIC0wLDAgKzEsNjc0IEBACisKKyMgQ29w eXJpZ2h0IChjKSAyMDIxLTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisKKyMgTG9naWNhbCByZXBsaWNhdGlvbiB0ZXN0cyBmb3IgdGVtcG9yYWwgdGFibGVz CisjCisjIEEgdGFibGUgY2FuIHVzZSBhIHRlbXBvcmFsIFBSSU1BUlkgS0VZIG9yIFVOSVFV RSBpbmRleCBhcyBpdHMgUkVQTElDQSBJREVOVElUWS4KKyMgVGhpcyBpcyBhIEdpU1QgaW5k ZXggKG5vdCBCLXRyZWUpIGFuZCBpdHMgbGFzdCBlbGVtZW50IHVzZXMgV0lUSE9VVCBPVkVS TEFQUy4KKyMgVGhhdCBlbGVtZW50IHJlc3RyaWN0cyBvdGhlciByb3dzIHdpdGggb3Zlcmxh cHMgc2VtYW50aWNzIGluc3RlYWQgb2YgZXF1YWxpdHksCisjIGJ1dCBpdCBpcyBhbHdheXMg YXQgbGVhc3QgYXMgcmVzdHJpY3RpdmUgYXMgYSBub3JtYWwgbm9uLW51bGwgdW5pcXVlIGlu ZGV4LgorIyBUaGVyZWZvcmUgd2UgY2FuIHN0aWxsIGFwcGx5IGxvZ2ljYWwgZGVjb2Rpbmcg bWVzc2FnZXMgdG8gdGhlIHN1YnNjcmliZXIuCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdz IEZBVEFMID0+ICdhbGwnOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2Ug UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBzZXR1cAor CitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXco J3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcg PT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKK215ICRub2RlX3N1 YnNjcmliZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1YnNjcmliZXIn KTsKKyRub2RlX3N1YnNjcmliZXItPmluaXQ7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFydDsK KworbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4g JyBkYm5hbWU9cG9zdGdyZXMnOworCitteSAoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycik7 CisKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRlc3Qgd2l0aCBS RVBMSUNBIElERU5USVRZIERFRkFVTFQ6CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworCisjIGNyZWF0ZSB0YWJsZXMgb24gcHVibGlzaGVyCisKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3JhbF9u b19rZXkgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBhIHRleHQpIgorKTsK KworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX3BrIChpZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwgYSB0 ZXh0LCBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIKKyk7 CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBU QUJMRSB0ZW1wb3JhbF91bmlxdWUgKGlkIGludDRyYW5nZSBOT1QgTlVMTCwgdmFsaWRfYXQg ZGF0ZXJhbmdlIE5PVCBOVUxMLCBhIHRleHQsIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpKSIKKyk7CisKKyMgY3JlYXRlIHRhYmxlcyBvbiBzdWJzY3JpYmVyCisK KyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFC TEUgdGVtcG9yYWxfbm9fa2V5IChpZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwg YSB0ZXh0KSIKKyk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGsgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQg ZGF0ZXJhbmdlLCBhIHRleHQsIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykpIgorKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3JhbF91bmlxdWUgKGlkIGludDRyYW5nZSBOT1Qg TlVMTCwgdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBOVUxMLCBhIHRleHQsIFVOSVFVRSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIKKyk7CisKKyMgc3luYyBpbml0aWFsIGRh dGE6CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklO U0VSVCBJTlRPIHRlbXBvcmFsX25vX2tleSAoaWQsIHZhbGlkX2F0LCBhKQorICAgVkFMVUVT ICgnWzEsMiknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScpIik7Ciskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wayAoaWQsIHZhbGlkX2F0LCBhKQorICAgVkFMVUVTICgnWzEsMiknLCAnWzIwMDAt MDEtMDEsMjAxMC0wMS0wMSknLCAnYScpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgKKwkncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZW1wb3JhbF91bmlxdWUgKGlkLCB2 YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1sxLDIpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEt MDEpJywgJ2EnKSIpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJDUkVBVEUgUFVCTElDQVRJT04gcHViMSBGT1IgQUxMIFRBQkxFUyIpOworJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJ T04gc3ViMSBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHB1 YjEiCispOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmM7 CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ub19rZXkgT1JERVIgQlkgaWQsIHZhbGlkX2F0 Iik7CitpcyggJHJlc3VsdCwKKwlxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxh fSwKKwknc3luY2VkIHRlbXBvcmFsX25vX2tleSBERUZBVUxUJyk7CisKKyRyZXN1bHQgPSAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wayBPUkRFUiBCWSBpZCwgdmFsaWRfYXQiKTsKK2lzKCRyZXN1bHQsIHFx e1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LAorCSdzeW5jZWQgdGVtcG9yYWxf cGsgREVGQVVMVCcpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfdW5pcXVlIE9SREVSIEJZ IGlkLCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQsCisJcXF7WzEsMil8WzIwMDAtMDEtMDEs MjAxMC0wMS0wMSl8YX0sCisJJ3N5bmNlZCB0ZW1wb3JhbF91bmlxdWUgREVGQVVMVCcpOwor CisjIHJlcGxpY2F0ZSB3aXRoIG5vIGtleToKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGVtcG9yYWxfbm9fa2V5IChpZCwg dmFsaWRfYXQsIGEpCisgICBWQUxVRVMgKCdbMiwzKScsICdbMjAwMC0wMS0wMSwyMDEwLTAx LTAxKScsICdhJyksCisgICAgICAgICAgKCdbMyw0KScsICdbMjAwMC0wMS0wMSwyMDEwLTAx LTAxKScsICdhJyksCisgICAgICAgICAgKCdbNCw1KScsICdbMjAwMC0wMS0wMSwyMDEwLTAx LTAxKScsICdhJykiKTsKKworKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVf cHVibGlzaGVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFURSB0ZW1wb3JhbF9ub19rZXkg U0VUIGEgPSAnYicgV0hFUkUgaWQgPSAnWzIsMyknIik7CitpcyggJHN0ZGVyciwKKwlxcShw c3FsOjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgdXBkYXRlIHRhYmxlICJ0ZW1wb3JhbF9u b19rZXkiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5k IHB1Ymxpc2hlcyB1cGRhdGVzCitISU5UOiAgVG8gZW5hYmxlIHVwZGF0aW5nIHRoZSB0YWJs ZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKKwkiY2FuJ3Qg VVBEQVRFIHRlbXBvcmFsX25vX2tleSBERUZBVUxUIik7CisKKygkcmVzdWx0LCAkc3Rkb3V0 LCAkc3RkZXJyKSA9ICRub2RlX3B1Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMnLAorCSJERUxF VEUgRlJPTSB0ZW1wb3JhbF9ub19rZXkgV0hFUkUgaWQgPSAnWzMsNCknIik7CitpcyggJHN0 ZGVyciwKKwlxcShwc3FsOjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgZGVsZXRlIGZyb20g dGFibGUgInRlbXBvcmFsX25vX2tleSIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVw bGljYSBpZGVudGl0eSBhbmQgcHVibGlzaGVzIGRlbGV0ZXMKK0hJTlQ6ICBUbyBlbmFibGUg ZGVsZXRpbmcgZnJvbSB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFM VEVSIFRBQkxFLiksCisJImNhbid0IERFTEVURSB0ZW1wb3JhbF9ub19rZXkgREVGQVVMVCIp OworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKKworJHJl c3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX25vX2tleSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQiKTsKK2lz KCAkcmVzdWx0LCBxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhCitbMiwzKXxb MjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhCitbMyw0KXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAx KXxhCitbNCw1KXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwgJ3JlcGxpY2F0ZWQgdGVt cG9yYWxfbm9fa2V5IERFRkFVTFQnKTsKKworIyByZXBsaWNhdGUgd2l0aCBhIHByaW1hcnkg a2V5OgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wayAoaWQsIHZhbGlkX2F0LCBhKQorICAgVkFMVUVTICgn WzIsMyknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgn WzMsNCknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgn WzQsNSknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScpIik7CisKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFURSB0ZW1wb3JhbF9wayBT RVQgYSA9ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKKworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiREVMRVRFIEZST00gdGVtcG9yYWxfcGsgV0hFUkUg aWQgPSAnWzMsNCknIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgn c3ViMScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGsgT1JERVIgQlkgaWQsIHZhbGlk X2F0Iik7CitpcyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8 YQorWzIsMyl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YgorWzQsNSl8WzIwMDAtMDEtMDEs MjAxMC0wMS0wMSl8YX0sICdyZXBsaWNhdGVkIHRlbXBvcmFsX3BrIERFRkFVTFQnKTsKKwor IyByZXBsaWNhdGUgd2l0aCBhIHVuaXF1ZSBrZXk6CisKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFsX3VuaXF1ZSAo aWQsIHZhbGlkX2F0LCBhKQorICAgVkFMVUVTICgnWzIsMyknLCAnWzIwMDAtMDEtMDEsMjAx MC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgnWzMsNCknLCAnWzIwMDAtMDEtMDEsMjAx MC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgnWzQsNSknLCAnWzIwMDAtMDEtMDEsMjAx MC0wMS0wMSknLCAnYScpIik7CisKKygkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRu b2RlX3B1Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfdW5p cXVlIFNFVCBhID0gJ2InIFdIRVJFIGlkID0gJ1syLDMpJyIpOworaXMoICRzdGRlcnIsCisJ cXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IHVwZGF0ZSB0YWJsZSAidGVtcG9y YWxfdW5pcXVlIiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5 IGFuZCBwdWJsaXNoZXMgdXBkYXRlcworSElOVDogIFRvIGVuYWJsZSB1cGRhdGluZyB0aGUg dGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCisJImNh bid0IFVQREFURSB0ZW1wb3JhbF91bmlxdWUgREVGQVVMVCIpOworCisoJHJlc3VsdCwgJHN0 ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwki REVMRVRFIEZST00gdGVtcG9yYWxfdW5pcXVlIFdIRVJFIGlkID0gJ1szLDQpJyIpOworaXMo ICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IGRlbGV0ZSBm cm9tIHRhYmxlICJ0ZW1wb3JhbF91bmlxdWUiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBh IHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyBkZWxldGVzCitISU5UOiAgVG8gZW5h YmxlIGRlbGV0aW5nIGZyb20gdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2lu ZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4ndCBERUxFVEUgdGVtcG9yYWxfdW5pcXVlIERFRkFV TFQiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzdWIxJyk7CisK KyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki U0VMRUNUICogRlJPTSB0ZW1wb3JhbF91bmlxdWUgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7 CitpcyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQorWzIs Myl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQorWzMsNCl8WzIwMDAtMDEtMDEsMjAxMC0w MS0wMSl8YQorWzQsNSl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sICdyZXBsaWNhdGVk IHRlbXBvcmFsX3VuaXF1ZSBERUZBVUxUJyk7CisKKyMgY2xlYW51cAorCiskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBUQUJMRSB0ZW1wb3JhbF9ub19r ZXkiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFRB QkxFIHRlbXBvcmFsX3BrIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiRFJPUCBUQUJMRSB0ZW1wb3JhbF91bmlxdWUiKTsKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFBVQkxJQ0FUSU9OIHB1YjEiKTsKKyRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBUQUJMRSB0ZW1wb3Jh bF9ub19rZXkiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi RFJPUCBUQUJMRSB0ZW1wb3JhbF9wayIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJEUk9QIFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSIpOworJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFNVQlNDUklQVElPTiBzdWIx Iik7CisKKworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB3 aXRoIFJFUExJQ0EgSURFTlRJVFkgRlVMTDoKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisKKyMgY3JlYXRlIHRhYmxlcyBvbiBwdWJsaXNoZXIKKworJG5vZGVfcHVi bGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X25vX2tleSAoaWQgaW50NHJhbmdlLCB2YWxpZF9hdCBkYXRlcmFuZ2UsIGEgdGV4dCkiCisp OworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgVEFC TEUgdGVtcG9yYWxfbm9fa2V5IFJFUExJQ0EgSURFTlRJVFkgRlVMTCIpOworCiskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVtcG9y YWxfcGsgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBhIHRleHQsIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykpIgorKTsKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFRBQkxFIHRlbXBvcmFs X3BrIFJFUExJQ0EgSURFTlRJVFkgRlVMTCIpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVtcG9yYWxfdW5pcXVlIChpZCBp bnQ0cmFuZ2UgTk9UIE5VTEwsIHZhbGlkX2F0IGRhdGVyYW5nZSBOT1QgTlVMTCwgYSB0ZXh0 LCBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSkiCispOworJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgVEFCTEUgdGVtcG9y YWxfdW5pcXVlIFJFUExJQ0EgSURFTlRJVFkgRlVMTCIpOworCisjIGNyZWF0ZSB0YWJsZXMg b24gc3Vic2NyaWJlcgorCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX25vX2tleSAoaWQgaW50NHJhbmdlLCB2YWxp ZF9hdCBkYXRlcmFuZ2UsIGEgdGV4dCkiCispOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFRBQkxFIHRlbXBvcmFsX25vX2tleSBSRVBMSUNB IElERU5USVRZIEZVTEwiKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3JhbF9wayAoaWQgaW50NHJhbmdlLCB2YWxp ZF9hdCBkYXRlcmFuZ2UsIGEgdGV4dCwgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSkiCispOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkFMVEVSIFRBQkxFIHRlbXBvcmFsX3BrIFJFUExJQ0EgSURFTlRJVFkgRlVM TCIpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSAoaWQgaW50NHJhbmdlIE5PVCBOVUxMLCB2YWxp ZF9hdCBkYXRlcmFuZ2UgTk9UIE5VTEwsIGEgdGV4dCwgVU5JUVVFIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJBTFRFUiBUQUJMRSB0ZW1wb3JhbF91bmlxdWUgUkVQTElDQSBJREVO VElUWSBGVUxMIik7CisKKyMgc3luYyBpbml0aWFsIGRhdGE6CisKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFsX25v X2tleSAoaWQsIHZhbGlkX2F0LCBhKQorICAgVkFMVUVTICgnWzEsMiknLCAnWzIwMDAtMDEt MDEsMjAxMC0wMS0wMSknLCAnYScpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgK KwkncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wayAoaWQsIHZhbGlkX2F0 LCBhKQorICAgVkFMVUVTICgnWzEsMiknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAn YScpIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJJ TlNFUlQgSU5UTyB0ZW1wb3JhbF91bmlxdWUgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVF UyAoJ1sxLDIpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJ T04gcHViMSBGT1IgQUxMIFRBQkxFUyIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gc3ViMSBDT05ORUNUSU9OICck cHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHB1YjEiCispOworJG5vZGVfc3Vic2Ny aWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmM7CisKKyRyZXN1bHQgPSAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ub19rZXkgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7CitpcyggJHJlc3VsdCwKKwlx cXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwKKwknc3luY2VkIHRlbXBvcmFs X25vX2tleSBGVUxMJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wayBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQiKTsKK2lzKCRyZXN1bHQsIHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAt MDEtMDEpfGF9LCAnc3luY2VkIHRlbXBvcmFsX3BrIEZVTEwnKTsKKworJHJlc3VsdCA9ICRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3VuaXF1ZSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQiKTsKK2lzKCAkcmVzdWx0 LAorCXFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LAorCSdzeW5jZWQgdGVt cG9yYWxfdW5pcXVlIEZVTEwnKTsKKworIyByZXBsaWNhdGUgd2l0aCBubyBrZXk6CisKKyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRP IHRlbXBvcmFsX25vX2tleSAoaWQsIHZhbGlkX2F0LCBhKQorICAgVkFMVUVTICgnWzIsMykn LCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgnWzMsNCkn LCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgnWzQsNSkn LCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScpIik7CisKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFURSB0ZW1wb3JhbF9ub19rZXkgU0VU IGEgPSAnYicgV0hFUkUgaWQgPSAnWzIsMyknIik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX25vX2tleSBXSEVS RSBpZCA9ICdbMyw0KSciKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVw KCdzdWIxJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ub19rZXkgT1JERVIgQlkgaWQs IHZhbGlkX2F0Iik7CitpcyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0w MS0wMSl8YQorWzIsMyl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YgorWzQsNSl8WzIwMDAt MDEtMDEsMjAxMC0wMS0wMSl8YX0sICdyZXBsaWNhdGVkIHRlbXBvcmFsX25vX2tleSBGVUxM Jyk7CisKKyMgcmVwbGljYXRlIHdpdGggYSBwcmltYXJ5IGtleToKKworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGVtcG9yYWxf cGsgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1syLDMpJywgJ1syMDAwLTAxLTAx LDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1szLDQpJywgJ1syMDAwLTAxLTAx LDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1s0LDUpJywgJ1syMDAwLTAxLTAx LDIwMTAtMDEtMDEpJywgJ2EnKSIpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfcGsgU0VUIGEgPSAnYicgV0hFUkUgaWQg PSAnWzIsMyknIik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3BrIFdIRVJFIGlkID0gJ1szLDQpJyIpOworCisk bm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKKworJHJlc3VsdCA9 ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BrIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQs IHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1syLDMpfFsyMDAwLTAxLTAx LDIwMTAtMDEtMDEpfGIKK1s0LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVw bGljYXRlZCB0ZW1wb3JhbF9wayBGVUxMJyk7CisKKyMgcmVwbGljYXRlIHdpdGggYSB1bmlx dWUga2V5OgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAor CSJJTlNFUlQgSU5UTyB0ZW1wb3JhbF91bmlxdWUgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZB TFVFUyAoJ1syLDMpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAg ICAgICAoJ1szLDQpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAg ICAgICAoJ1s0LDUpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9y YWxfdW5pcXVlIFNFVCBhID0gJ2InIFdIRVJFIGlkID0gJ1syLDMpJyIpOworCiskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJERUxFVEUgRlJPTSB0ZW1wb3Jh bF91bmlxdWUgV0hFUkUgaWQgPSAnWzMsNCknIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2Fp dF9mb3JfY2F0Y2h1cCgnc3ViMScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfdW5pcXVl IE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQsIHFxe1sxLDIpfFsyMDAw LTAxLTAxLDIwMTAtMDEtMDEpfGEKK1syLDMpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGIK K1s0LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVwbGljYXRlZCB0ZW1wb3Jh bF91bmlxdWUgRlVMTCcpOworCisjIGNsZWFudXAKKworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFCTEUgdGVtcG9yYWxfbm9fa2V5Iik7Ciskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBUQUJMRSB0ZW1wb3Jh bF9wayIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1Ag VEFCTEUgdGVtcG9yYWxfdW5pcXVlIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCAiRFJPUCBQVUJMSUNBVElPTiBwdWIxIik7Ciskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFCTEUgdGVtcG9yYWxfbm9fa2V5Iik7 Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFCTEUg dGVtcG9yYWxfcGsiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiRFJPUCBUQUJMRSB0ZW1wb3JhbF91bmlxdWUiKTsKKyRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBTVUJTQ1JJUFRJT04gc3ViMSIpOworCisKKyMg IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRlc3Qgd2l0aCBSRVBMSUNB IElERU5USVRZIFVTSU5HIElOREVYCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworCisjIGNyZWF0ZSB0YWJsZXMgb24gcHVibGlzaGVyCisKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3JhbF9wayAo aWQgaW50NHJhbmdlLCB2YWxpZF9hdCBkYXRlcmFuZ2UsIGEgdGV4dCwgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSkiCispOworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgVEFCTEUgdGVtcG9yYWxfcGsgUkVQ TElDQSBJREVOVElUWSBVU0lORyBJTkRFWCB0ZW1wb3JhbF9wa19wa2V5Iik7CisKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1w b3JhbF91bmlxdWUgKGlkIGludDRyYW5nZSBOT1QgTlVMTCwgdmFsaWRfYXQgZGF0ZXJhbmdl IE5PVCBOVUxMLCBhIHRleHQsIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpKSIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJB TFRFUiBUQUJMRSB0ZW1wb3JhbF91bmlxdWUgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRF WCB0ZW1wb3JhbF91bmlxdWVfaWRfdmFsaWRfYXRfa2V5IgorKTsKKworIyBjcmVhdGUgdGFi bGVzIG9uIHN1YnNjcmliZXIKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3JhbF9wayAoaWQgaW50NHJhbmdlLCB2YWxp ZF9hdCBkYXRlcmFuZ2UsIGEgdGV4dCwgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSkiCispOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkFMVEVSIFRBQkxFIHRlbXBvcmFsX3BrIFJFUExJQ0EgSURFTlRJVFkgVVNJ TkcgSU5ERVggdGVtcG9yYWxfcGtfcGtleSIpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSAoaWQg aW50NHJhbmdlIE5PVCBOVUxMLCB2YWxpZF9hdCBkYXRlcmFuZ2UgTk9UIE5VTEwsIGEgdGV4 dCwgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykpIgorKTsKKyRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBUQUJMRSB0ZW1w b3JhbF91bmlxdWUgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCB0ZW1wb3JhbF91bmlx dWVfaWRfdmFsaWRfYXRfa2V5IgorKTsKKworIyBzeW5jIGluaXRpYWwgZGF0YToKKworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8g dGVtcG9yYWxfcGsgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1sxLDIpJywgJ1sy MDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGVtcG9yYWxfdW5pcXVlIChp ZCwgdmFsaWRfYXQsIGEpCisgICBWQUxVRVMgKCdbMSwyKScsICdbMjAwMC0wMS0wMSwyMDEw LTAxLTAxKScsICdhJykiKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEgRk9SIEFMTCBUQUJMRVMiKTsKKyRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NS SVBUSU9OIHN1YjEgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElP TiBwdWIxIgorKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9z eW5jOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGsgT1JERVIgQlkgaWQsIHZhbGlkX2F0 Iik7CitpcyggJHJlc3VsdCwKKwlxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxh fSwKKwknc3luY2VkIHRlbXBvcmFsX3BrIFVTSU5HIElOREVYJyk7CisKKyRyZXN1bHQgPSAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICogRlJP TSB0ZW1wb3JhbF91bmlxdWUgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7CitpcyggJHJlc3Vs dCwKKwlxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwKKwknc3luY2VkIHRl bXBvcmFsX3VuaXF1ZSBVU0lORyBJTkRFWCcpOworCisjIHJlcGxpY2F0ZSB3aXRoIGEgcHJp bWFyeSBrZXk6CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3Jlcycs CisJIklOU0VSVCBJTlRPIHRlbXBvcmFsX3BrIChpZCwgdmFsaWRfYXQsIGEpCisgICBWQUxV RVMgKCdbMiwzKScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJyksCisgICAgICAg ICAgKCdbMyw0KScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJyksCisgICAgICAg ICAgKCdbNCw1KScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJykiKTsKKworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRlbXBvcmFs X3BrIFNFVCBhID0gJ2InIFdIRVJFIGlkID0gJ1syLDMpJyIpOworCiskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF9wayBX SEVSRSBpZCA9ICdbMyw0KSciKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRj aHVwKCdzdWIxJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wayBPUkRFUiBCWSBpZCwg dmFsaWRfYXQiKTsKK2lzKCAkcmVzdWx0LCBxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAx LTAxKXxhCitbMiwzKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxiCitbNCw1KXxbMjAwMC0w MS0wMSwyMDEwLTAxLTAxKXxhfSwgJ3JlcGxpY2F0ZWQgdGVtcG9yYWxfcGsgVVNJTkcgSU5E RVgnKTsKKworIyByZXBsaWNhdGUgd2l0aCBhIHVuaXF1ZSBrZXk6CisKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFs X3VuaXF1ZSAoaWQsIHZhbGlkX2F0LCBhKQorICAgVkFMVUVTICgnWzIsMyknLCAnWzIwMDAt MDEtMDEsMjAxMC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgnWzMsNCknLCAnWzIwMDAt MDEtMDEsMjAxMC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgnWzQsNSknLCAnWzIwMDAt MDEtMDEsMjAxMC0wMS0wMSknLCAnYScpIik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIlVQREFURSB0ZW1wb3JhbF91bmlxdWUgU0VUIGEgPSAnYicg V0hFUkUgaWQgPSAnWzIsMyknIik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3VuaXF1ZSBXSEVSRSBpZCA9ICdb Myw0KSciKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzdWIxJyk7 CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF91bmlxdWUgT1JERVIgQlkgaWQsIHZhbGlkX2F0 Iik7CitpcyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQor WzIsMyl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YgorWzQsNSl8WzIwMDAtMDEtMDEsMjAx MC0wMS0wMSl8YX0sICdyZXBsaWNhdGVkIHRlbXBvcmFsX3VuaXF1ZSBVU0lORyBJTkRFWCcp OworCisjIGNsZWFudXAKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIkRST1AgVEFCTEUgdGVtcG9yYWxfcGsiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICJEUk9QIFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSIpOworJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgUFVCTElDQVRJT04gcHVi MSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFRB QkxFIHRlbXBvcmFsX3BrIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIkRST1AgVEFCTEUgdGVtcG9yYWxfdW5pcXVlIik7Ciskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHN1YjEiKTsKKwor CisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHdpdGggUkVQ TElDQSBJREVOVElUWSBOT1RISU5HCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworCisjIGNyZWF0ZSB0YWJsZXMgb24gcHVibGlzaGVyCisKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3JhbF9ub19r ZXkgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBhIHRleHQsIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykpIgorKTsKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFRBQkxFIHRlbXBvcmFsX25v X2tleSBSRVBMSUNBIElERU5USVRZIE5PVEhJTkciKTsKKworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BrIChpZCBp bnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwgYSB0ZXh0LCBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wayBSRVBMSUNB IElERU5USVRZIE5PVEhJTkciKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSAoaWQgaW50NHJhbmdl LCB2YWxpZF9hdCBkYXRlcmFuZ2UsIGEgdGV4dCwgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykpIgorKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkFMVEVSIFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSBSRVBMSUNBIElERU5USVRZ IE5PVEhJTkciKTsKKworIyBjcmVhdGUgdGFibGVzIG9uIHN1YnNjcmliZXIKKworJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1w b3JhbF9ub19rZXkgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBhIHRleHQp IgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ub19rZXkgUkVQTElDQSBJREVOVElUWSBOT1RISU5HIik7CisK KyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFC TEUgdGVtcG9yYWxfcGsgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBhIHRl eHQsIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykpIgorKTsK KyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wayBSRVBMSUNBIElERU5USVRZIE5PVEhJTkciKTsKKworJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3Jh bF91bmlxdWUgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBhIHRleHQsIFVO SVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIKKyk7Ciskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgVEFCTEUgdGVtcG9yYWxf dW5pcXVlIFJFUExJQ0EgSURFTlRJVFkgTk9USElORyIpOworCisjIHN5bmMgaW5pdGlhbCBk YXRhOgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ub19rZXkgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVF UyAoJ1sxLDIpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGVt cG9yYWxfcGsgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1sxLDIpJywgJ1syMDAw LTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGVtcG9yYWxfdW5pcXVlIChpZCwg dmFsaWRfYXQsIGEpCisgICBWQUxVRVMgKCdbMSwyKScsICdbMjAwMC0wMS0wMSwyMDEwLTAx LTAxKScsICdhJykiKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEgRk9SIEFMTCBUQUJMRVMiKTsKKyRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBU SU9OIHN1YjEgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiBw dWIxIgorKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5j OworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfbm9fa2V5IE9SREVSIEJZIGlkLCB2YWxpZF9h dCIpOworaXMoICRyZXN1bHQsCisJcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8 YX0sCisJJ3N5bmNlZCB0ZW1wb3JhbF9ub19rZXkgTk9USElORycpOworCiskcmVzdWx0ID0g JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGsgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7CitpcygkcmVzdWx0LCBx cXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwKKwknc3luY2VkIHRlbXBvcmFs X3BrIE5PVEhJTkcnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3VuaXF1ZSBPUkRFUiBC WSBpZCwgdmFsaWRfYXQiKTsKK2lzKCAkcmVzdWx0LAorCXFxe1sxLDIpfFsyMDAwLTAxLTAx LDIwMTAtMDEtMDEpfGF9LAorCSdzeW5jZWQgdGVtcG9yYWxfdW5pcXVlIE5PVEhJTkcnKTsK KworIyByZXBsaWNhdGUgd2l0aCBubyBrZXk6CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFsX25vX2tleSAoaWQs IHZhbGlkX2F0LCBhKQorICAgVkFMVUVTICgnWzIsMyknLCAnWzIwMDAtMDEtMDEsMjAxMC0w MS0wMSknLCAnYScpLAorICAgICAgICAgICgnWzMsNCknLCAnWzIwMDAtMDEtMDEsMjAxMC0w MS0wMSknLCAnYScpLAorICAgICAgICAgICgnWzQsNSknLCAnWzIwMDAtMDEtMDEsMjAxMC0w MS0wMSknLCAnYScpIik7CisKKygkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2Rl X3B1Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfbm9fa2V5 IFNFVCBhID0gJ2InIFdIRVJFIGlkID0gJ1syLDMpJyIpOworaXMoICRzdGRlcnIsCisJcXEo cHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IHVwZGF0ZSB0YWJsZSAidGVtcG9yYWxf bm9fa2V5IiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFu ZCBwdWJsaXNoZXMgdXBkYXRlcworSElOVDogIFRvIGVuYWJsZSB1cGRhdGluZyB0aGUgdGFi bGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCisJImNhbid0 IFVQREFURSB0ZW1wb3JhbF9ub19rZXkgTk9USElORyIpOworCisoJHJlc3VsdCwgJHN0ZG91 dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiREVM RVRFIEZST00gdGVtcG9yYWxfbm9fa2V5IFdIRVJFIGlkID0gJ1szLDQpJyIpOworaXMoICRz dGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IGRlbGV0ZSBmcm9t IHRhYmxlICJ0ZW1wb3JhbF9ub19rZXkiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJl cGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyBkZWxldGVzCitISU5UOiAgVG8gZW5hYmxl IGRlbGV0aW5nIGZyb20gdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBB TFRFUiBUQUJMRS4pLAorCSJjYW4ndCBERUxFVEUgdGVtcG9yYWxfbm9fa2V5IE5PVEhJTkci KTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzdWIxJyk7CisKKyRy ZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ub19rZXkgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7Citp cyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQorWzIsMyl8 WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQorWzMsNCl8WzIwMDAtMDEtMDEsMjAxMC0wMS0w MSl8YQorWzQsNSl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sICdyZXBsaWNhdGVkIHRl bXBvcmFsX25vX2tleSBOT1RISU5HJyk7CisKKyMgcmVwbGljYXRlIHdpdGggYSBwcmltYXJ5 IGtleToKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwki SU5TRVJUIElOVE8gdGVtcG9yYWxfcGsgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAo J1syLDMpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAo J1szLDQpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAo J1s0LDUpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworCisoJHJlc3Vs dCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVz JywKKwkiVVBEQVRFIHRlbXBvcmFsX3BrIFNFVCBhID0gJ2InIFdIRVJFIGlkID0gJ1syLDMp JyIpOworaXMoICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90 IHVwZGF0ZSB0YWJsZSAidGVtcG9yYWxfcGsiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBh IHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyB1cGRhdGVzCitISU5UOiAgVG8gZW5h YmxlIHVwZGF0aW5nIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxU RVIgVEFCTEUuKSwKKwkiY2FuJ3QgVVBEQVRFIHRlbXBvcmFsX3BrIE5PVEhJTkciKTsKKwor KCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdw b3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3BrIFdIRVJFIGlkID0gJ1szLDQp JyIpOworaXMoICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90 IGRlbGV0ZSBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9wayIgYmVjYXVzZSBpdCBkb2VzIG5vdCBo YXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlzaGVzIGRlbGV0ZXMKK0hJTlQ6ICBU byBlbmFibGUgZGVsZXRpbmcgZnJvbSB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZ IHVzaW5nIEFMVEVSIFRBQkxFLiksCisJImNhbid0IERFTEVURSB0ZW1wb3JhbF9wayBOT1RI SU5HIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOwor CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IlNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGsgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7Citp cyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQorWzIsMyl8 WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQorWzMsNCl8WzIwMDAtMDEtMDEsMjAxMC0wMS0w MSl8YQorWzQsNSl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sICdyZXBsaWNhdGVkIHRl bXBvcmFsX3BrIE5PVEhJTkcnKTsKKworIyByZXBsaWNhdGUgd2l0aCBhIHVuaXF1ZSBrZXk6 CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VS VCBJTlRPIHRlbXBvcmFsX3VuaXF1ZSAoaWQsIHZhbGlkX2F0LCBhKQorICAgVkFMVUVTICgn WzIsMyknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgn WzMsNCknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgn WzQsNSknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScpIik7CisKKygkcmVzdWx0 LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlX3B1Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMn LAorCSJVUERBVEUgdGVtcG9yYWxfdW5pcXVlIFNFVCBhID0gJ2InIFdIRVJFIGlkID0gJ1sy LDMpJyIpOworaXMoICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fu bm90IHVwZGF0ZSB0YWJsZSAidGVtcG9yYWxfdW5pcXVlIiBiZWNhdXNlIGl0IGRvZXMgbm90 IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRlcworSElOVDog IFRvIGVuYWJsZSB1cGRhdGluZyB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVz aW5nIEFMVEVSIFRBQkxFLiksCisJImNhbid0IFVQREFURSB0ZW1wb3JhbF91bmlxdWUgTk9U SElORyIpOworCisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNo ZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiREVMRVRFIEZST00gdGVtcG9yYWxfdW5pcXVlIFdI RVJFIGlkID0gJ1szLDQpJyIpOworaXMoICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6 IEVSUk9SOiAgY2Fubm90IGRlbGV0ZSBmcm9tIHRhYmxlICJ0ZW1wb3JhbF91bmlxdWUiIGJl Y2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hl cyBkZWxldGVzCitISU5UOiAgVG8gZW5hYmxlIGRlbGV0aW5nIGZyb20gdGhlIHRhYmxlLCBz ZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4ndCBERUxF VEUgdGVtcG9yYWxfdW5pcXVlIE5PVEhJTkciKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0 X2Zvcl9jYXRjaHVwKCdzdWIxJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF91bmlxdWUg T1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7CitpcyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAt MDEtMDEsMjAxMC0wMS0wMSl8YQorWzIsMyl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQor WzMsNCl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQorWzQsNSl8WzIwMDAtMDEtMDEsMjAx MC0wMS0wMSl8YX0sICdyZXBsaWNhdGVkIHRlbXBvcmFsX3VuaXF1ZSBOT1RISU5HJyk7CisK KyMgY2xlYW51cAorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi RFJPUCBUQUJMRSB0ZW1wb3JhbF9wayIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIkRST1AgVEFCTEUgdGVtcG9yYWxfdW5pcXVlIik7Ciskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBQVUJMSUNBVElPTiBwdWIxIik7 Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFCTEUg dGVtcG9yYWxfcGsiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiRFJPUCBUQUJMRSB0ZW1wb3JhbF91bmlxdWUiKTsKKyRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBTVUJTQ1JJUFRJT04gc3ViMSIpOworCisKK2Rv bmVfdGVzdGluZygpOworCi0tIAoyLjQyLjAKCg== --------------OnvqRywVNIjsiZuvTo32rvFz Content-Type: text/x-patch; charset=UTF-8; name="v45-0002-Add-without_portion-GiST-support-proc.patch" Content-Disposition: attachment; filename="v45-0002-Add-without_portion-GiST-support-proc.patch" Content-Transfer-Encoding: base64 RnJvbSAzOWQxMjA1Mzk2MWRiMDA2NmQ4N2QzNGFiNmE4ZjYwNTQwMjhlNzIwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMjMgMjM6MTA6NTkgLTA4 MDAKU3ViamVjdDogW1BBVENIIHY0NSAyLzhdIEFkZCB3aXRob3V0X3BvcnRpb24gR2lTVCBz dXBwb3J0IHByb2MKClRoaXMgbmV3IHN1cHBvcnQgcHJvYyBpcyB1c2VkIGJ5IFJFU1RSSUNU IGZvcmVpZ24ga2V5cyB0byBjb21wdXRlIHRoZQpwb3J0aW9uIG9mIGhpc3RvcnkgdGhhdCB3 YXMgbG9zdCB3aGVuIHRoZSBhcHBsaWNhdGlvbi10aW1lIGJvdW5kcyBvZiBhCnJlY29yZCBj aGFuZ2UuIFRoaXMgY29tbWl0IGRlZmluZXMgaW1wbGVtZW50YXRpb25zIGZvciByYW5nZXMg YW5kCm11bHRpcmFuZ2VzLgoKVGhlIHByb2NzIHJldHVybiBTRVRPRiB0aGVpciBpbnB1dCB0 eXBlIGFuZCB3b3JrIGxpa2UgbWludXMgYnV0IGRvbid0CmZhaWwgb24gc3BsaXRzLiBUaGUg cmVzdWx0cyBuZXZlciBjb250YWluIGVtcHR5IGVsZW1lbnRzLgoKV2hlbiB3ZSBpbXBsZW1l bnQgRk9SIFBPUlRJT04gT0YsIHdlIHdpbGwgdXNlIHRoZXNlIHByb2NzIHNpbWlhcmx5OiB0 bwpjb21wdXRlIGxlZnRvdmVycyB0aGF0IHdlcmVuJ3QgdG91Y2hlZCBieSB0aGUgVVBEQVRF L0RFTEVURS4KCkF1dGhvcjogUGF1bCBKdW5nd2lydGgKLS0tCiBjb250cmliL2Jsb29tL2Js dmFsaWRhdGUuYyAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC9n aXN0LnNnbWwgICAgICAgICAgICAgICAgICAgICAgICB8IDEwNyArKysrKysrKysrLQogZG9j L3NyYy9zZ21sL3hpbmRleC5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBz cmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX3ZhbGlkYXRlLmMgICAgICAgfCAgIDggKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFsaWRhdGUuYyAgICAgICAgICB8ICAxMiAr LQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMgICAgICAgIHwgIDI1 ICstLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMgICAgICAgIHwg ICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jICAgICAgICAg fCAgIDkgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dmFsaWRhdGUuYyAgICAg ICB8ICAgOCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWxpZGF0ZS5jICAg ICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvbXVsdGlyYW5nZXR5cGVzLmMg ICAgICAgfCAgNzEgKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVz LmMgICAgICAgICAgICB8IDE2NiArKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2Fj Y2Vzcy9hbXZhbGlkYXRlLmggICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUv YWNjZXNzL2dpc3QuaCAgICAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICA4ICsKIHNyYy9pbmNs dWRlL3V0aWxzL3JhbmdldHlwZXMuaCAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL211bHRpcmFuZ2V0eXBlcy5vdXQgfCAxMTYgKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3JhbmdldHlwZXMub3V0ICAgICAgfCAg NTQgKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9tdWx0aXJhbmdldHlwZXMuc3FsICAg ICAgfCAgMjIgKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbCAgICAg ICAgICAgfCAgMTAgKysKIDIxIGZpbGVzIGNoYW5nZWQsIDYxMyBpbnNlcnRpb25zKCspLCA0 MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2Jsb29tL2JsdmFsaWRhdGUu YyBiL2NvbnRyaWIvYmxvb20vYmx2YWxpZGF0ZS5jCmluZGV4IDIwZDNhYjkxMDliLi40YjJl MGNhOTBhNSAxMDA2NDQKLS0tIGEvY29udHJpYi9ibG9vbS9ibHZhbGlkYXRlLmMKKysrIGIv Y29udHJpYi9ibG9vbS9ibHZhbGlkYXRlLmMKQEAgLTEwMyw3ICsxMDMsNyBAQCBibHZhbGlk YXRlKE9pZCBvcGNsYXNzb2lkKQogCQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJ CXsKIAkJCWNhc2UgQkxPT01fSEFTSF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwKKwkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2Us IGZhbHNlLAogCQkJCQkJCQkJCQkxLCAxLCBvcGNrZXl0eXBlKTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgQkxPT01fT1BUSU9OU19QUk9DOgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dp c3Quc2dtbCBiL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwKaW5kZXggNjM4ZDkxMmRjMmQuLjFm YmRkZjFiZmIwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9naXN0LnNnbWwKQEAgLTI2Niw3ICsyNjYsNyBAQCBDUkVBVEUgSU5ERVgg T04gbXlfdGFibGUgVVNJTkcgR0lTVCAobXlfaW5ldF9jb2x1bW4gaW5ldF9vcHMpOwogCiAg PHBhcmE+CiAgICBUaGVyZSBhcmUgZml2ZSBtZXRob2RzIHRoYXQgYW4gaW5kZXggb3BlcmF0 b3IgY2xhc3MgZm9yCi0gICA8YWNyb255bT5HaVNUPC9hY3JvbnltPiBtdXN0IHByb3ZpZGUs IGFuZCBzZXZlbiB0aGF0IGFyZSBvcHRpb25hbC4KKyAgIDxhY3JvbnltPkdpU1Q8L2Fjcm9u eW0+IG11c3QgcHJvdmlkZSwgYW5kIGVpZ2h0IHRoYXQgYXJlIG9wdGlvbmFsLgogICAgQ29y cmVjdG5lc3Mgb2YgdGhlIGluZGV4IGlzIGVuc3VyZWQKICAgIGJ5IHByb3BlciBpbXBsZW1l bnRhdGlvbiBvZiB0aGUgPGZ1bmN0aW9uPnNhbWU8L2Z1bmN0aW9uPiwgPGZ1bmN0aW9uPmNv bnNpc3RlbnQ8L2Z1bmN0aW9uPgogICAgYW5kIDxmdW5jdGlvbj51bmlvbjwvZnVuY3Rpb24+ IG1ldGhvZHMsIHdoaWxlIGVmZmljaWVuY3kgKHNpemUgYW5kIHNwZWVkKSBvZiB0aGUKQEAg LTI5NCw2ICsyOTQsOSBAQCBDUkVBVEUgSU5ERVggT04gbXlfdGFibGUgVVNJTkcgR0lTVCAo bXlfaW5ldF9jb2x1bW4gaW5ldF9vcHMpOwogICAgPGZpbGVuYW1lPnNyYy9pbmNsdWRlL2Fj Y2Vzcy9zdHJhdG51bS5oPC9maWxlbmFtZT4pIGludG8gc3RyYXRlZ3kgbnVtYmVycwogICAg dXNlZCBieSB0aGUgb3BlcmF0b3IgY2xhc3MuICBUaGlzIGxldHMgdGhlIGNvcmUgY29kZSBs b29rIHVwIG9wZXJhdG9ycyBmb3IKICAgIHRlbXBvcmFsIGNvbnN0cmFpbnQgaW5kZXhlcy4K KyAgIFRoZSBvcHRpb25hbCB0aGlydGVlbnRoIG1ldGhvZCA8ZnVuY3Rpb24+d2l0aG91dF9w b3J0aW9uPC9mdW5jdGlvbj4gaXMgdXNlZCBieQorICAgPGxpdGVyYWw+UkVTVFJJQ1Q8L2xp dGVyYWw+IGZvcmVpZ24ga2V5cyB0byBjb21wdXRlIHRoZSBwb3J0aW9uIG9mIGhpc3RvcnkK KyAgIHRoYXQgd2FzIGxvc3QuCiAgPC9wYXJhPgogCiAgPHZhcmlhYmxlbGlzdD4KQEAgLTEy MzUsNiArMTIzOCwxMDggQEAgbXlfc3RyYXRudW0oUEdfRlVOQ1RJT05fQVJHUykKICAgICAg IDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICA8 dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48ZnVuY3Rpb24+d2l0aG91dF9wb3J0aW9uPC9m dW5jdGlvbj48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAg IEdpdmVuIHR3byB2YWx1ZXMgb2YgdGhpcyBvcGNsYXNzLCBpdCBzdWJ0cmFjdHMgdGhlIHNl Y29uZCBmb3IgdGhlIGZpcnN0CisgICAgICAgYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgdGhl IHJlc3VsdHMuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGlz IHVzZWQgYnkgdGVtcG9yYWwgZm9yZWlnbiBrZXlzIHRvIGNvbXB1dGUgdGhlIHBhcnQKKyAg ICAgICBvZiBoaXN0b3J5IHRoYXQgd2FzIGxvc3QgYnkgYW4gdXBkYXRlLgorICAgICAgPC9w YXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3Jvbnlt PiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29rIGxpa2UKKyAgICAgICB0 aGlzICh1c2luZyA8bGl0ZXJhbD5teV9yYW5nZV93aXRob3V0X3BvcnRpb248L2xpdGVyYWw+ IGFzIGFuIGV4YW1wbGUpOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiBteV9yYW5nZV93aXRob3V0X3BvcnRpb24oYW55cmFuZ2UsIGFueXJhbmdl KQorUkVUVVJOUyBhbnlhcnJheQorQVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMg U1RSSUNUOworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgIDxw YXJhPgorICAgICAgICBUaGUgbWF0Y2hpbmcgY29kZSBpbiB0aGUgQyBtb2R1bGUgY291bGQg dGhlbiBmb2xsb3cgdGhpcyBleGFtcGxlOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitEYXR1bQor bXlfcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisgICAgdHlw ZWRlZiBzdHJ1Y3QgeworICAgICAgICBSYW5nZVR5cGUgICpyc1syXTsKKyAgICAgICAgaW50 ICAgICAgICAgbjsKKyAgICB9IHJhbmdlX3dpdGhvdXRfcG9ydGlvbl9mY3R4OworCisgICAg RnVuY0NhbGxDb250ZXh0ICpmdW5jY3R4OworICAgIHJhbmdlX3dpdGhvdXRfcG9ydGlvbl9m Y3R4ICpmY3R4OworICAgIE1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKKworICAgIC8qIHN0 dWZmIGRvbmUgb25seSBvbiB0aGUgZmlyc3QgY2FsbCBvZiB0aGUgZnVuY3Rpb24gKi8KKyAg ICBpZiAoU1JGX0lTX0ZJUlNUQ0FMTCgpKQorICAgIHsKKyAgICAgICAgUmFuZ2VUeXBlICAg ICAgICpyMTsKKyAgICAgICAgUmFuZ2VUeXBlICAgICAgICpyMjsKKyAgICAgICAgT2lkICAg ICAgICAgICAgICBybmd0eXBpZDsKKyAgICAgICAgVHlwZUNhY2hlRW50cnkgICp0eXBjYWNo ZTsKKworICAgICAgICAvKiBjcmVhdGUgYSBmdW5jdGlvbiBjb250ZXh0IGZvciBjcm9zcy1j YWxsIHBlcnNpc3RlbmNlICovCisgICAgICAgIGZ1bmNjdHggPSBTUkZfRklSU1RDQUxMX0lO SVQoKTsKKworICAgICAgICAvKgorICAgICAgICAgKiBzd2l0Y2ggdG8gbWVtb3J5IGNvbnRl eHQgYXBwcm9wcmlhdGUgZm9yIG11bHRpcGxlIGZ1bmN0aW9uIGNhbGxzCisgICAgICAgICAq LworICAgICAgICBvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGZ1bmNjdHgt Jmd0O211bHRpX2NhbGxfbWVtb3J5X2N0eCk7CisKKyAgICAgICAgcjEgPSBQR19HRVRBUkdf UkFOR0VfUCgwKTsKKyAgICAgICAgcjIgPSBQR19HRVRBUkdfUkFOR0VfUCgxKTsKKworICAg ICAgICAvKiBEaWZmZXJlbnQgdHlwZXMgc2hvdWxkIGJlIHByZXZlbnRlZCBieSBBTllSQU5H RSBtYXRjaGluZyBydWxlcyAqLworICAgICAgICBpZiAoUmFuZ2VUeXBlR2V0T2lkKHIxKSAh PSBSYW5nZVR5cGVHZXRPaWQocjIpKQorICAgICAgICAgICAgZWxvZyhFUlJPUiwgInJhbmdl IHR5cGVzIGRvIG5vdCBtYXRjaCIpOworCisgICAgICAgIC8qIGFsbG9jYXRlIG1lbW9yeSBm b3IgdXNlciBjb250ZXh0ICovCisgICAgICAgIGZjdHggPSAocmFuZ2Vfd2l0aG91dF9wb3J0 aW9uX2ZjdHggKikgcGFsbG9jKHNpemVvZihyYW5nZV93aXRob3V0X3BvcnRpb25fZmN0eCkp OworCisgICAgICAgIC8qCisgICAgICAgICAqIEluaXRpYWxpemUgc3RhdGUuCisgICAgICAg ICAqIFdlIGNhbid0IHN0b3JlIHRoZSByYW5nZSB0eXBjYWNoZSBpbiBmbl9leHRyYSBiZWNh dXNlIHRoZSBjYWxsZXIKKyAgICAgICAgICogdXNlcyB0aGF0IGZvciB0aGUgU1JGIHN0YXRl LgorICAgICAgICAgKi8KKyAgICAgICAgcm5ndHlwaWQgPSBSYW5nZVR5cGVHZXRPaWQocjEp OworICAgICAgICB0eXBjYWNoZSA9IGxvb2t1cF90eXBlX2NhY2hlKHJuZ3R5cGlkLCBUWVBF Q0FDSEVfUkFOR0VfSU5GTyk7CisgICAgICAgIGlmICh0eXBjYWNoZS0mZ3Q7cm5nZWxlbXR5 cGUgPT0gTlVMTCkKKyAgICAgICAgICAgIGVsb2coRVJST1IsICJ0eXBlICV1IGlzIG5vdCBh IHJhbmdlIHR5cGUiLCBybmd0eXBpZCk7CisgICAgICAgIHJhbmdlX3dpdGhvdXRfcG9ydGlv bl9pbnRlcm5hbCh0eXBjYWNoZSwgcjEsIHIyLCBmY3R4LSZndDtycywgJmFtcDtmY3R4LSZn dDtuKTsKKworICAgICAgICBmdW5jY3R4LSZndDt1c2VyX2ZjdHggPSBmY3R4OworICAgICAg ICBNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisgICAgfQorCisgICAgLyog c3R1ZmYgZG9uZSBvbiBldmVyeSBjYWxsIG9mIHRoZSBmdW5jdGlvbiAqLworICAgIGZ1bmNj dHggPSBTUkZfUEVSQ0FMTF9TRVRVUCgpOworICAgIGZjdHggPSBmdW5jY3R4LSZndDt1c2Vy X2ZjdHg7CisKKyAgICBpZiAoZnVuY2N0eC0mZ3Q7Y2FsbF9jbnRyICZsdDsgZmN0eC0mZ3Q7 bikKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgICAqIFdlIG11c3Qga2VlcCB0aGVzZSBv biBzZXBhcmF0ZSBsaW5lcworICAgICAgICAgKiBiZWNhdXNlIFNSRl9SRVRVUk5fTkVYVCBk b2VzIGNhbGxfY250cisrOgorICAgICAgICAgKi8KKyAgICAgICAgUmFuZ2VUeXBlICpyZXQg PSBmY3R4LSZndDtyc1tmdW5jY3R4LSZndDtjYWxsX2NudHJdOworICAgICAgICBTUkZfUkVU VVJOX05FWFQoZnVuY2N0eCwgUmFuZ2VUeXBlUEdldERhdHVtKHJldCkpOworICAgIH0KKyAg ICBlbHNlCisgICAgICAgIC8qIGRvIHdoZW4gdGhlcmUgaXMgbm8gbW9yZSBsZWZ0ICovCisg ICAgICAgIFNSRl9SRVRVUk5fRE9ORShmdW5jY3R4KTsKK30KKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+ CiAgIDwvdmFyaWFibGVsaXN0PgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3hpbmRleC5zZ21sIGIvZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21sCmluZGV4IDNhMTlk YWIxNWUwLi44NWVmNTM5ZDA3YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3hpbmRleC5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC94aW5kZXguc2dtbApAQCAtNTA4LDcgKzUwOCw3IEBA CiAgICA8L3RhYmxlPgogCiAgIDxwYXJhPgotICAgR2lTVCBpbmRleGVzIGhhdmUgdHdlbHZl IHN1cHBvcnQgZnVuY3Rpb25zLCBzZXZlbiBvZiB3aGljaCBhcmUgb3B0aW9uYWwsCisgICBH aVNUIGluZGV4ZXMgaGF2ZSB0aGlydGVlbiBzdXBwb3J0IGZ1bmN0aW9ucywgZWlnaHQgb2Yg d2hpY2ggYXJlIG9wdGlvbmFsLAogICAgYXMgc2hvd24gaW4gPHhyZWYgbGlua2VuZD0ieGlu ZGV4LWdpc3Qtc3VwcG9ydC10YWJsZSIvPi4KICAgIChGb3IgbW9yZSBpbmZvcm1hdGlvbiBz ZWUgPHhyZWYgbGlua2VuZD0iZ2lzdCIvPi4pCiAgIDwvcGFyYT4KQEAgLTU5Niw2ICs1OTYs MTIgQEAKICAgICAgICAgdXNlZCBieSB0aGUgb3BlcmF0b3IgY2xhc3MgKG9wdGlvbmFsKTwv ZW50cnk+CiAgICAgICAgPGVudHJ5PjEyPC9lbnRyeT4KICAgICAgIDwvcm93PgorICAgICAg PHJvdz4KKyAgICAgICA8ZW50cnk+PGZ1bmN0aW9uPndpdGhvdXRfcG9ydGlvbjwvZnVuY3Rp b24+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+Y29tcHV0ZXMgcmVtYWluaW5nIGR1cmF0aW9u KHMpIGFmdGVyIGRlbGV0aW5nCisgICAgICAgc2Vjb25kIHBhcmFtZXRlciBmcm9tIGZpcnN0 IChvcHRpb25hbCk8L2VudHJ5PgorICAgICAgIDxlbnRyeT4xMzwvZW50cnk+CisgICAgICA8 L3Jvdz4KICAgICAgPC90Ym9keT4KICAgICA8L3Rncm91cD4KICAgIDwvdGFibGU+CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX3ZhbGlkYXRlLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX3ZhbGlkYXRlLmMKaW5kZXggNTM5YWM5Y2IwNjQu LjA4MmY5NmI4NDdkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmlu X3ZhbGlkYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0 ZS5jCkBAIC04NywyMSArODcsMjEgQEAgYnJpbnZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQog CQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgQlJJTl9QUk9D TlVNX09QQ0lORk86Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIElOVEVSTkFMT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsIHRydWUsCiAJ CQkJCQkJCQkJCTEsIDEsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlJJ Tl9QUk9DTlVNX0FERFZBTFVFOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9j X3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1ZSwKIAkJ CQkJCQkJCQkJNCwgNCwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJ TlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBCUklOX1BS T0NOVU1fQ09OU0lTVEVOVDoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJ CQkJCQkJCTMsIDQsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5U RVJOQUxPSUQsIElOVDRPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBCUklOX1BST0NOVU1f VU5JT046Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXBy b2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHBy b2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkzLCAz LCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lEKTsK IAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFs aWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFsaWRhdGUuYwppbmRleCA3 NDQyMGExMjlhYS4uNzQ4Yjk0YTg5M2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9naW4vZ2ludmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnZh bGlkYXRlLmMKQEAgLTEwNCwzNyArMTA0LDM3IEBAIGdpbnZhbGlkYXRlKE9pZCBvcGNsYXNz b2lkKQogCQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgR0lO X0NPTVBBUkVfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zv cm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJ CQkJCQkJMiwgMiwgb3Bja2V5dHlwZSwgb3Bja2V5dHlwZSk7CiAJCQkJYnJlYWs7CiAJCQlj YXNlIEdJTl9FWFRSQUNUVkFMVUVfUFJPQzoKIAkJCQkvKiBTb21lIG9wY2xhc3NlcyBvbWl0 IG51bGxGbGFncyAqLwotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwgZmFsc2Us CiAJCQkJCQkJCQkJCTIsIDMsIG9wY2ludHlwZSwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJ CUlOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lOX0VYVFJBQ1RRVUVSWV9Q Uk9DOgogCQkJCS8qIFNvbWUgb3BjbGFzc2VzIG9taXQgbnVsbEZsYWdzIGFuZCBzZWFyY2hN b2RlICovCi0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXBy b2MsIElOVEVSTkFMT0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJ CQkJCQkJNSwgNywgb3BjaW50eXBlLCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5UMk9J RCwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCwg SU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fQ09OU0lTVEVOVF9QUk9D OgogCQkJCS8qIFNvbWUgb3BjbGFzc2VzIG9taXQgcXVlcnlLZXlzIGFuZCBudWxsRmxhZ3Mg Ki8KLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywg Qk9PTE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJNiwgOCwg SU5URVJOQUxPSUQsIElOVDJPSUQsCiAJCQkJCQkJCQkJCW9wY2ludHlwZSwgSU5UNE9JRCwK IAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJTlRF Uk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fQ09NUEFS RV9QQVJUSUFMX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIElOVDRPSUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwgZmFsc2UsCiAJCQkJ CQkJCQkJCTQsIDQsIG9wY2tleXR5cGUsIG9wY2tleXR5cGUsCiAJCQkJCQkJCQkJCUlOVDJP SUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lOX1RSSUNPTlNJU1RF TlRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFt cHJvYywgQ0hBUk9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIENIQVJPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJ NywgNywgSU5URVJOQUxPSUQsIElOVDJPSUQsCiAJCQkJCQkJCQkJCW9wY2ludHlwZSwgSU5U NE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYwppbmRleCAwOTAxNTQzYTYwYS4uMzg3NDBi NDZiYmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0 ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jCkBAIC0x MDYsMzYgKzEwNiwzNiBAQCBnaXN0dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCXN3aXRj aCAocHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBHSVNUX0NPTlNJU1RFTlRf UFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJv YywgQk9PTE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHBy b2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJNSwg NSwgSU5URVJOQUxPSUQsIG9wY2ludHlwZSwKIAkJCQkJCQkJCQkJSU5UMk9JRCwgT0lET0lE LCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJU1RfVU5JT05fUFJPQzoK LQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgb3Bj a2V5dHlwZSwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIG9wY2tleXR5cGUsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJMiwg MiwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lT VF9DT01QUkVTU19QUk9DOgogCQkJY2FzZSBHSVNUX0RFQ09NUFJFU1NfUFJPQzoKIAkJCWNh c2UgR0lTVF9GRVRDSF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2Ft cHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLCB0 cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQlj YXNlIEdJU1RfUEVOQUxUWV9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVy ZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNr X2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNl LCB0cnVlLAogCQkJCQkJCQkJCQkzLCAzLCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5U RVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9QSUNL U1BMSVRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0t PmFtcHJvYywgSU5URVJOQUxPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwgdHJ1ZSwKIAkJ CQkJCQkJCQkJMiwgMiwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsK IAkJCWNhc2UgR0lTVF9FUVVBTF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsCisJCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBm YWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTMsIDMsIG9wY2tleXR5cGUsIG9wY2tleXR5cGUs CiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9E SVNUQU5DRV9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBGTE9BVDhPSUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBGTE9BVDhPSUQsIGZhbHNlLCBmYWxzZSwKIAkJ CQkJCQkJCQkJNSwgNSwgSU5URVJOQUxPSUQsIG9wY2ludHlwZSwKIAkJCQkJCQkJCQkJSU5U Mk9JRCwgT0lET0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CkBAIC0xNDMsMTMgKzE0 MywxNyBAQCBnaXN0dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCQkJb2sgPSBjaGVja19h bW9wdHNwcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jKTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgR0lTVF9TT1JUU1VQUE9SVF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCB0cnVlLAorCQkJCW9rID0gY2hl Y2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCBmYWxzZSwg dHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJ Y2FzZSBHSVNUX1NUUkFUTlVNX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0 dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDJPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19h bXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDJPSUQsIGZhbHNlLCB0cnVl LAogCQkJCQkJCQkJCQkxLCAxLCBJTlQyT0lEKTsKIAkJCQlicmVhazsKKwkJCWNhc2UgR0lT VF9XSVRIT1VUX1BPUlRJT05fUFJPQzoKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgb3BjaW50eXBlLCB0cnVlLCB0cnVlLAorCQkJCQkJCQkJ CQkyLCAyLCBvcGNpbnR5cGUsIG9wY2ludHlwZSk7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0 OgogCQkJCWVyZXBvcnQoSU5GTywKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9P QkpFQ1RfREVGSU5JVElPTiksCkBAIC0yNzEsNyArMjc1LDcgQEAgZ2lzdHZhbGlkYXRlKE9p ZCBvcGNsYXNzb2lkKQogCQlpZiAoaSA9PSBHSVNUX0RJU1RBTkNFX1BST0MgfHwgaSA9PSBH SVNUX0ZFVENIX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9DT01QUkVTU19QUk9DIHx8IGkgPT0g R0lTVF9ERUNPTVBSRVNTX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9PUFRJT05TX1BST0MgfHwg aSA9PSBHSVNUX1NPUlRTVVBQT1JUX1BST0MgfHwKLQkJCWkgPT0gR0lTVF9TVFJBVE5VTV9Q Uk9DKQorCQkJaSA9PSBHSVNUX1NUUkFUTlVNX1BST0MgfHwgaSA9PSBHSVNUX1dJVEhPVVRf UE9SVElPTl9QUk9DKQogCQkJY29udGludWU7CQkJLyogb3B0aW9uYWwgbWV0aG9kcyAqLwog CQllcmVwb3J0KElORk8sCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9E RUZJTklUSU9OKSwKQEAgLTM0NCw2ICszNDgsNyBAQCBnaXN0YWRqdXN0bWVtYmVycyhPaWQg b3BmYW1pbHlvaWQsCiAJCQljYXNlIEdJU1RfT1BUSU9OU19QUk9DOgogCQkJY2FzZSBHSVNU X1NPUlRTVVBQT1JUX1BST0M6CiAJCQljYXNlIEdJU1RfU1RSQVROVU1fUFJPQzoKKwkJCWNh c2UgR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQzoKIAkJCQkvKiBPcHRpb25hbCwgc28gZm9y Y2UgaXQgdG8gYmUgYSBzb2Z0IGZhbWlseSBkZXBlbmRlbmN5ICovCiAJCQkJb3AtPnJlZl9p c19oYXJkID0gZmFsc2U7CiAJCQkJb3AtPnJlZl9pc19mYW1pbHkgPSB0cnVlOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYwppbmRleCA2NmEzYjdiNDlhZC4uM2E4 YmQ2MzViMzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxp ZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jCkBA IC0xMDQsMTEgKzEwNCwxMSBAQCBoYXNodmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCXN3 aXRjaCAocHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBIQVNIU1RBTkRBUkRf UFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJv YywgSU5UNE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTEsIDEs IHByb2Nmb3JtLT5hbXByb2NsZWZ0dHlwZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEhBU0hF WFRFTkRFRF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBJTlQ4T0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ4T0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJ CQkJMiwgMiwgcHJvY2Zvcm0tPmFtcHJvY2xlZnR0eXBlLCBJTlQ4T0lEKTsKIAkJCQlicmVh azsKIAkJCWNhc2UgSEFTSE9QVElPTlNfUFJPQzoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9pbmRleC9hbXZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgv YW12YWxpZGF0ZS5jCmluZGV4IDMyYmI0NzdmMzI4Li5iMTAzMDhiOWI2NiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2FtdmFsaWRhdGUuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jCkBAIC0xNDksNyArMTQ5LDcgQEAgaWRl bnRpZnlfb3BmYW1pbHlfZ3JvdXBzKENhdENMaXN0ICpvcHJsaXN0LCBDYXRDTGlzdCAqcHJv Y2xpc3QpCiAgKiBJbiBhbnkgY2FzZSB0aGUgZnVuY3Rpb24gcmVzdWx0IHR5cGUgbXVzdCBt YXRjaCByZXN0eXBlIGV4YWN0bHkuCiAgKi8KIGJvb2wKLWNoZWNrX2FtcHJvY19zaWduYXR1 cmUoT2lkIGZ1bmNpZCwgT2lkIHJlc3R5cGUsIGJvb2wgZXhhY3QsCitjaGVja19hbXByb2Nf c2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIHJldHNldCwgYm9vbCBl eGFjdCwKIAkJCQkJICAgaW50IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLikKIHsKIAlib29s CQlyZXN1bHQgPSB0cnVlOwpAQCAtMTYzLDggKzE2Myw5IEBAIGNoZWNrX2FtcHJvY19zaWdu YXR1cmUoT2lkIGZ1bmNpZCwgT2lkIHJlc3R5cGUsIGJvb2wgZXhhY3QsCiAJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBmdW5jdGlvbiAldSIsIGZ1bmNpZCk7CiAJ cHJvY2Zvcm0gPSAoRm9ybV9wZ19wcm9jKSBHRVRTVFJVQ1QodHApOwogCi0JaWYgKHByb2Nm b3JtLT5wcm9yZXR0eXBlICE9IHJlc3R5cGUgfHwgcHJvY2Zvcm0tPnByb3JldHNldCB8fAot CQlwcm9jZm9ybS0+cHJvbmFyZ3MgPCBtaW5hcmdzIHx8IHByb2Nmb3JtLT5wcm9uYXJncyA+ IG1heGFyZ3MpCisJaWYgKChwcm9jZm9ybS0+cHJvcmV0dHlwZSAhPSByZXN0eXBlICYmIE9p ZElzVmFsaWQocmVzdHlwZSkpCisJCXx8IHByb2Nmb3JtLT5wcm9yZXRzZXQgIT0gcmV0c2V0 IHx8IHByb2Nmb3JtLT5wcm9uYXJncyA8IG1pbmFyZ3MKKwkJfHwgcHJvY2Zvcm0tPnByb25h cmdzID4gbWF4YXJncykKIAkJcmVzdWx0ID0gZmFsc2U7CiAKIAl2YV9zdGFydChhcCwgbWF4 YXJncyk7CkBAIC0xOTEsNyArMTkyLDcgQEAgY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQg ZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKIGJvb2wKIGNoZWNrX2Ftb3B0c3By b2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQpCiB7Ci0JcmV0dXJuIGNoZWNrX2FtcHJvY19zaWdu YXR1cmUoZnVuY2lkLCBWT0lET0lELCB0cnVlLCAxLCAxLCBJTlRFUk5BTE9JRCk7CisJcmV0 dXJuIGNoZWNrX2FtcHJvY19zaWduYXR1cmUoZnVuY2lkLCBWT0lET0lELCBmYWxzZSwgdHJ1 ZSwgMSwgMSwgSU5URVJOQUxPSUQpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL25idHJlZS9uYnR2YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25i dHJlZS9uYnR2YWxpZGF0ZS5jCmluZGV4IGU5ZDRjZDYwZGUzLi4wNGU0M2VmMWRjZSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR2YWxpZGF0ZS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dmFsaWRhdGUuYwpAQCAtOTEsMTYgKzkx LDE2IEBAIGJ0dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCXN3aXRjaCAocHJvY2Zvcm0t PmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBCVE9SREVSX1BST0M6Ci0JCQkJb2sgPSBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRPSUQsIHRydWUsCisJ CQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRP SUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkyLCAyLCBwcm9jZm9ybS0+YW1wcm9jbGVm dHR5cGUsCiAJCQkJCQkJCQkJCXByb2Nmb3JtLT5hbXByb2NyaWdodHR5cGUpOwogCQkJCWJy ZWFrOwogCQkJY2FzZSBCVFNPUlRTVVBQT1JUX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXBy b2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIHRydWUsCisJCQkJb2sg PSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIGZh bHNlLCB0cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7 CiAJCQljYXNlIEJUSU5SQU5HRV9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1 ZSwKIAkJCQkJCQkJCQkJNSwgNSwKIAkJCQkJCQkJCQkJcHJvY2Zvcm0tPmFtcHJvY2xlZnR0 eXBlLAogCQkJCQkJCQkJCQlwcm9jZm9ybS0+YW1wcm9jbGVmdHR5cGUsCkBAIC0xMDgsNyAr MTA4LDcgQEAgYnR2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCQkJCQkJCQkJQk9PTE9J RCwgQk9PTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJURVFVQUxJTUFHRV9QUk9DOgot CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09M T0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgT0lET0lE KTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlRPUFRJT05TX1BST0M6CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3Mvc3BnaXN0L3NwZ3ZhbGlkYXRlLmMKaW5kZXggODUwYzNiNjc1ZDYuLmY3YTM5N2Ni OGNmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhbGlkYXRl LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWxpZGF0ZS5jCkBAIC0x MDksNyArMTA5LDcgQEAgc3BndmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCXN3aXRjaCAo cHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBTUEdJU1RfQ09ORklHX1BST0M6 Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZP SURPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIFZPSURPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkyLCAyLCBJTlRF Uk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWNvbmZpZ0luLmF0dFR5cGUgPSBwcm9jZm9y bS0+YW1wcm9jbGVmdHR5cGU7CiAJCQkJbWVtc2V0KCZjb25maWdPdXQsIDAsIHNpemVvZihj b25maWdPdXQpKTsKQEAgLTE2NCwxMSArMTY0LDExIEBAIHNwZ3ZhbGlkYXRlKE9pZCBvcGNs YXNzb2lkKQogCQkJY2FzZSBTUEdJU1RfQ0hPT1NFX1BST0M6CiAJCQljYXNlIFNQR0lTVF9Q SUNLU1BMSVRfUFJPQzoKIAkJCWNhc2UgU1BHSVNUX0lOTkVSX0NPTlNJU1RFTlRfUFJPQzoK LQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9J RE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0t PmFtcHJvYywgVk9JRE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTIsIDIsIElOVEVS TkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFNQR0lTVF9MRUFG X0NPTlNJU1RFTlRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJ CQkJCQkJCTIsIDIsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIFNQR0lTVF9DT01QUkVTU19QUk9DOgpAQCAtMTc3LDcgKzE3Nyw3IEBAIHNwZ3Zh bGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQkJCQlvayA9IGZhbHNlOwogCQkJCWVsc2UKIAkJ CQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsCi0JCQkJ CQkJCQkJCQljb25maWdPdXRMZWFmVHlwZSwgdHJ1ZSwKKwkJCQkJCQkJCQkJCWNvbmZpZ091 dExlYWZUeXBlLCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJCTEsIDEsIHByb2Nmb3JtLT5h bXByb2NsZWZ0dHlwZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFNQR0lTVF9PUFRJT05TX1BS T0M6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbXVsdGlyYW5nZXR5cGVz LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbXVsdGlyYW5nZXR5cGVzLmMKaW5kZXggNTU4 YzZjMThjMzQuLmM3ZGU3OGRjZDllIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvbXVsdGlyYW5nZXR5cGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211bHRp cmFuZ2V0eXBlcy5jCkBAIC0xMjI1LDYgKzEyMjUsNzcgQEAgbXVsdGlyYW5nZV9taW51c19p bnRlcm5hbChPaWQgbWx0cm5ndHlwb2lkLCBUeXBlQ2FjaGVFbnRyeSAqcmFuZ2V0eXAsCiAJ cmV0dXJuIG1ha2VfbXVsdGlyYW5nZShtbHRybmd0eXBvaWQsIHJhbmdldHlwLCByYW5nZV9j b3VudDMsIHJhbmdlczMpOwogfQogCisvKgorICogbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24gLSBtdWx0aXJhbmdlIG1pbnVzIGJ1dCByZXR1cm5pbmcgdGhlIHJlc3VsdCBhcyBhIFNS RiwKKyAqIHdpdGggbm8gcm93cyBpZiB0aGUgcmVzdWx0IHdvdWxkIGJlIGVtcHR5LgorICov CitEYXR1bQorbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVOQ1RJT05fQVJHUykK K3sKKwlGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHg7CisJTWVtb3J5Q29udGV4dCBvbGRjb250 ZXh0OworCisJaWYgKCFTUkZfSVNfRklSU1RDQUxMKCkpCisJeworCQkvKiBXZSBuZXZlciBo YXZlIG1vcmUgdGhhbiBvbmUgcmVzdWx0ICovCisJCWZ1bmNjdHggPSBTUkZfUEVSQ0FMTF9T RVRVUCgpOworCQlTUkZfUkVUVVJOX0RPTkUoZnVuY2N0eCk7CisJfQorCWVsc2UKKwl7CisJ CU11bHRpcmFuZ2VUeXBlICptcjE7CisJCU11bHRpcmFuZ2VUeXBlICptcjI7CisJCU9pZAkJ CW1sdHJuZ3R5cG9pZDsKKwkJVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlOworCQlUeXBlQ2Fj aGVFbnRyeSAqcmFuZ2V0eXA7CisJCWludDMyCQlyYW5nZV9jb3VudDE7CisJCWludDMyCQly YW5nZV9jb3VudDI7CisJCVJhbmdlVHlwZSAqKnJhbmdlczE7CisJCVJhbmdlVHlwZSAqKnJh bmdlczI7CisJCU11bHRpcmFuZ2VUeXBlICptcjsKKworCQlmdW5jY3R4ID0gU1JGX0ZJUlNU Q0FMTF9JTklUKCk7CisKKwkJLyoKKwkJICogc3dpdGNoIHRvIG1lbW9yeSBjb250ZXh0IGFw cHJvcHJpYXRlIGZvciBtdWx0aXBsZSBmdW5jdGlvbiBjYWxscworCQkgKi8KKwkJb2xkY29u dGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhmdW5jY3R4LT5tdWx0aV9jYWxsX21lbW9y eV9jdHgpOworCisJCS8qIGdldCBhcmdzLCBkZXRvYXN0aW5nIGludG8gbXVsdGktY2FsbCBt ZW1vcnkgY29udGV4dCAqLworCQltcjEgPSBQR19HRVRBUkdfTVVMVElSQU5HRV9QKDApOwor CQltcjIgPSBQR19HRVRBUkdfTVVMVElSQU5HRV9QKDEpOworCisJCW1sdHJuZ3R5cG9pZCA9 IE11bHRpcmFuZ2VUeXBlR2V0T2lkKG1yMSk7CisJCXR5cGNhY2hlID0gbG9va3VwX3R5cGVf Y2FjaGUobWx0cm5ndHlwb2lkLCBUWVBFQ0FDSEVfTVVMVElSQU5HRV9JTkZPKTsKKwkJaWYg KHR5cGNhY2hlLT5ybmd0eXBlID09IE5VTEwpCisJCQllbG9nKEVSUk9SLCAidHlwZSAldSBp cyBub3QgYSBtdWx0aXJhbmdlIHR5cGUiLCBtbHRybmd0eXBvaWQpOworCQlyYW5nZXR5cCA9 IHR5cGNhY2hlLT5ybmd0eXBlOworCisJCWlmIChNdWx0aXJhbmdlSXNFbXB0eShtcjEpIHx8 IE11bHRpcmFuZ2VJc0VtcHR5KG1yMikpCisJCQltciA9IG1yMTsKKwkJZWxzZQorCQl7CisJ CQltdWx0aXJhbmdlX2Rlc2VyaWFsaXplKHJhbmdldHlwLCBtcjEsICZyYW5nZV9jb3VudDEs ICZyYW5nZXMxKTsKKwkJCW11bHRpcmFuZ2VfZGVzZXJpYWxpemUocmFuZ2V0eXAsIG1yMiwg JnJhbmdlX2NvdW50MiwgJnJhbmdlczIpOworCisJCQltciA9IG11bHRpcmFuZ2VfbWludXNf aW50ZXJuYWwobWx0cm5ndHlwb2lkLAorCQkJCQkJCQkJCSAgIHJhbmdldHlwLAorCQkJCQkJ CQkJCSAgIHJhbmdlX2NvdW50MSwKKwkJCQkJCQkJCQkgICByYW5nZXMxLAorCQkJCQkJCQkJ CSAgIHJhbmdlX2NvdW50MiwKKwkJCQkJCQkJCQkgICByYW5nZXMyKTsKKwkJfQorCisJCU1l bW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKworCQlmdW5jY3R4ID0gU1JGX1BF UkNBTExfU0VUVVAoKTsKKwkJaWYgKE11bHRpcmFuZ2VJc0VtcHR5KG1yKSkKKwkJCVNSRl9S RVRVUk5fRE9ORShmdW5jY3R4KTsKKwkJZWxzZQorCQkJU1JGX1JFVFVSTl9ORVhUKGZ1bmNj dHgsIE11bHRpcmFuZ2VUeXBlUEdldERhdHVtKG1yKSk7CisJfQorfQorCiAvKiBtdWx0aXJh bmdlIGludGVyc2VjdGlvbiAqLwogRGF0dW0KIG11bHRpcmFuZ2VfaW50ZXJzZWN0KFBHX0ZV TkNUSU9OX0FSR1MpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0 eXBlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXMuYwppbmRleCAyZDk0 YTZiODc3NC4uNmY4NWUxZjFiZGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9yYW5nZXR5cGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXMu YwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRl ICJjb21tb24vaGFzaGZuLmgiCisjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgImxp YnBxL3BxZm9ybWF0LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9k ZXMvbWFrZWZ1bmNzLmgiCkBAIC0zOSw2ICs0MCw3IEBACiAjaW5jbHVkZSAib3B0aW1pemVy L2NsYXVzZXMuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvY29zdC5oIgogI2luY2x1ZGUgIm9w dGltaXplci9vcHRpbWl6ZXIuaCIKKyNpbmNsdWRlICJ1dGlscy9hcnJheS5oIgogI2luY2x1 ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0ZS5oIgogI2luY2x1 ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtMTIxMyw2ICsxMjE1LDE3MCBAQCByYW5nZV9z cGxpdF9pbnRlcm5hbChUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUsIGNvbnN0IFJhbmdlVHlw ZSAqcjEsIGNvbnN0IFJhbmdlVAogCXJldHVybiBmYWxzZTsKIH0KIAorLyoKKyAqIHJhbmdl X3dpdGhvdXRfcG9ydGlvbiAtIHN1YnRyYWN0aW9uIGJ1dCBhcyBhIFNSRiB0byBhY2NvbW1v ZGF0ZSBzcGxpdHMsCisgKiB3aXRoIG5vIHJlc3VsdCByb3dzIGlmIHRoZSByZXN1bHQgd291 bGQgYmUgZW1wdHkuCisgKi8KK0RhdHVtCityYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVO Q1RJT05fQVJHUykKK3sKKwl0eXBlZGVmIHN0cnVjdCB7CisJCVJhbmdlVHlwZSAgKnJzWzJd OworCQlpbnQJCQluOworCX0gcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHg7CisKKwlGdW5j Q2FsbENvbnRleHQgKmZ1bmNjdHg7CisJcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHggKmZj dHg7CisJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OworCisJLyogc3R1ZmYgZG9uZSBvbmx5 IG9uIHRoZSBmaXJzdCBjYWxsIG9mIHRoZSBmdW5jdGlvbiAqLworCWlmIChTUkZfSVNfRklS U1RDQUxMKCkpCisJeworCQlSYW5nZVR5cGUJICAgKnIxOworCQlSYW5nZVR5cGUJICAgKnIy OworCQlPaWQJCQkJcm5ndHlwaWQ7CisJCVR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZTsKKwor CQkvKiBjcmVhdGUgYSBmdW5jdGlvbiBjb250ZXh0IGZvciBjcm9zcy1jYWxsIHBlcnNpc3Rl bmNlICovCisJCWZ1bmNjdHggPSBTUkZfRklSU1RDQUxMX0lOSVQoKTsKKworCQkvKgorCQkg KiBzd2l0Y2ggdG8gbWVtb3J5IGNvbnRleHQgYXBwcm9wcmlhdGUgZm9yIG11bHRpcGxlIGZ1 bmN0aW9uIGNhbGxzCisJCSAqLworCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKGZ1bmNjdHgtPm11bHRpX2NhbGxfbWVtb3J5X2N0eCk7CisKKwkJcjEgPSBQR19HRVRB UkdfUkFOR0VfUCgwKTsKKwkJcjIgPSBQR19HRVRBUkdfUkFOR0VfUCgxKTsKKworCQkvKiBE aWZmZXJlbnQgdHlwZXMgc2hvdWxkIGJlIHByZXZlbnRlZCBieSBBTllSQU5HRSBtYXRjaGlu ZyBydWxlcyAqLworCQlpZiAoUmFuZ2VUeXBlR2V0T2lkKHIxKSAhPSBSYW5nZVR5cGVHZXRP aWQocjIpKQorCQkJZWxvZyhFUlJPUiwgInJhbmdlIHR5cGVzIGRvIG5vdCBtYXRjaCIpOwor CisJCS8qIGFsbG9jYXRlIG1lbW9yeSBmb3IgdXNlciBjb250ZXh0ICovCisJCWZjdHggPSAo cmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHggKikgcGFsbG9jKHNpemVvZihyYW5nZV93aXRo b3V0X3BvcnRpb25fZmN0eCkpOworCisJCS8qCisJCSAqIEluaXRpYWxpemUgc3RhdGUuCisJ CSAqIFdlIGNhbid0IHN0b3JlIHRoZSByYW5nZSB0eXBjYWNoZSBpbiBmbl9leHRyYSBiZWNh dXNlIHRoZSBjYWxsZXIKKwkJICogdXNlcyB0aGF0IGZvciB0aGUgU1JGIHN0YXRlLgorCQkg Ki8KKwkJcm5ndHlwaWQgPSBSYW5nZVR5cGVHZXRPaWQocjEpOworCQl0eXBjYWNoZSA9IGxv b2t1cF90eXBlX2NhY2hlKHJuZ3R5cGlkLCBUWVBFQ0FDSEVfUkFOR0VfSU5GTyk7CisJCWlm ICh0eXBjYWNoZS0+cm5nZWxlbXR5cGUgPT0gTlVMTCkKKwkJCWVsb2coRVJST1IsICJ0eXBl ICV1IGlzIG5vdCBhIHJhbmdlIHR5cGUiLCBybmd0eXBpZCk7CisJCXJhbmdlX3dpdGhvdXRf cG9ydGlvbl9pbnRlcm5hbCh0eXBjYWNoZSwgcjEsIHIyLCBmY3R4LT5ycywgJmZjdHgtPm4p OworCisJCWZ1bmNjdHgtPnVzZXJfZmN0eCA9IGZjdHg7CisJCU1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhvbGRjb250ZXh0KTsKKwl9CisKKwkvKiBzdHVmZiBkb25lIG9uIGV2ZXJ5IGNhbGwg b2YgdGhlIGZ1bmN0aW9uICovCisJZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQKCk7CisJ ZmN0eCA9IGZ1bmNjdHgtPnVzZXJfZmN0eDsKKworCWlmIChmdW5jY3R4LT5jYWxsX2NudHIg PCBmY3R4LT5uKQorCXsKKwkJLyoKKwkJICogV2UgbXVzdCBrZWVwIHRoZXNlIG9uIHNlcGFy YXRlIGxpbmVzCisJCSAqIGJlY2F1c2UgU1JGX1JFVFVSTl9ORVhUIGRvZXMgY2FsbF9jbnRy Kys6CisJCSAqLworCQlSYW5nZVR5cGUgKnJldCA9IGZjdHgtPnJzW2Z1bmNjdHgtPmNhbGxf Y250cl07CisJCVNSRl9SRVRVUk5fTkVYVChmdW5jY3R4LCBSYW5nZVR5cGVQR2V0RGF0dW0o cmV0KSk7CisJfQorCWVsc2UKKwkJLyogZG8gd2hlbiB0aGVyZSBpcyBubyBtb3JlIGxlZnQg Ki8KKwkJU1JGX1JFVFVSTl9ET05FKGZ1bmNjdHgpOworfQorCisvKgorICogcmFuZ2Vfd2l0 aG91dF9wb3J0aW9uX2ludGVybmFsIC0gU2V0cyBvdXRwdXRzIGFuZCBvdXRwdXRuIHRvIHRo ZSByYW5nZXMKKyAqIHJlbWFpbmluZyBhbmQgdGhlaXIgY291bnQgKHJlc3BlY3RpdmVseSkg YWZ0ZXIgc3VidHJhY3RpbmcgcjIgZnJvbSByMS4KKyAqIFRoZSBhcnJheSBzaG91bGQgbmV2 ZXIgY29udGFpbiBlbXB0eSByYW5nZXMuCisgKiBUaGUgb3V0cHV0cyB3aWxsIGJlIG9yZGVy ZWQuIFdlIGV4cGVjdCB0aGF0IG91dHB1dHMgaXMgYW4gYXJyYXkgb2YKKyAqIFJhbmdlVHlw ZSBwb2ludGVycywgYWxyZWFkeSBhbGxvY2F0ZWQgd2l0aCB0d28gZWxlbWVudHMuCisgKi8K K3ZvaWQKK3JhbmdlX3dpdGhvdXRfcG9ydGlvbl9pbnRlcm5hbChUeXBlQ2FjaGVFbnRyeSAq dHlwY2FjaGUsIFJhbmdlVHlwZSAqcjEsCisJCQkJCQkJICAgUmFuZ2VUeXBlICpyMiwgUmFu Z2VUeXBlICoqb3V0cHV0cywgaW50ICpvdXRwdXRuKQoreworCWludAkJCWNtcF9sMWwyLAor CQkJCWNtcF9sMXUyLAorCQkJCWNtcF91MWwyLAorCQkJCWNtcF91MXUyOworCVJhbmdlQm91 bmQJbG93ZXIxLAorCQkJCWxvd2VyMjsKKwlSYW5nZUJvdW5kCXVwcGVyMSwKKwkJCQl1cHBl cjI7CisJYm9vbAkJZW1wdHkxLAorCQkJCWVtcHR5MjsKKworCXJhbmdlX2Rlc2VyaWFsaXpl KHR5cGNhY2hlLCByMSwgJmxvd2VyMSwgJnVwcGVyMSwgJmVtcHR5MSk7CisJcmFuZ2VfZGVz ZXJpYWxpemUodHlwY2FjaGUsIHIyLCAmbG93ZXIyLCAmdXBwZXIyLCAmZW1wdHkyKTsKKwor CWlmIChlbXB0eTEpCisJeworCQkvKiBpZiByMSBpcyBlbXB0eSB0aGVuIHIxIC0gcjIgaXMg ZW1wdHksIHNvIHJldHVybiB6ZXJvIHJlc3VsdHMgKi8KKwkJKm91dHB1dG4gPSAwOworCQly ZXR1cm47CisJfQorCWVsc2UgaWYgKGVtcHR5MikKKwl7CisJCS8qIHIyIGlzIGVtcHR5IHNv IHRoZSByZXN1bHQgaXMganVzdCByMSAod2hpY2ggd2Uga25vdyBpcyBub3QgZW1wdHkpICov CisJCW91dHB1dHNbMF0gPSByMTsKKwkJKm91dHB1dG4gPSAxOworCQlyZXR1cm47CisJfQor CisJLyoKKwkgKiBVc2UgdGhlIHNhbWUgbG9naWMgYXMgcmFuZ2VfbWludXNfaW50ZXJuYWws CisJICogYnV0IHN1cHBvcnQgdGhlIHNwbGl0IGNhc2UKKwkgKi8KKwljbXBfbDFsMiA9IHJh bmdlX2NtcF9ib3VuZHModHlwY2FjaGUsICZsb3dlcjEsICZsb3dlcjIpOworCWNtcF9sMXUy ID0gcmFuZ2VfY21wX2JvdW5kcyh0eXBjYWNoZSwgJmxvd2VyMSwgJnVwcGVyMik7CisJY21w X3UxbDIgPSByYW5nZV9jbXBfYm91bmRzKHR5cGNhY2hlLCAmdXBwZXIxLCAmbG93ZXIyKTsK KwljbXBfdTF1MiA9IHJhbmdlX2NtcF9ib3VuZHModHlwY2FjaGUsICZ1cHBlcjEsICZ1cHBl cjIpOworCisJaWYgKGNtcF9sMWwyIDwgMCAmJiBjbXBfdTF1MiA+IDApCisJeworCQlsb3dl cjIuaW5jbHVzaXZlID0gIWxvd2VyMi5pbmNsdXNpdmU7CisJCWxvd2VyMi5sb3dlciA9IGZh bHNlOwkvKiBpdCB3aWxsIGJlY29tZSB0aGUgdXBwZXIgYm91bmQgKi8KKwkJb3V0cHV0c1sw XSA9IG1ha2VfcmFuZ2UodHlwY2FjaGUsICZsb3dlcjEsICZsb3dlcjIsIGZhbHNlLCBOVUxM KTsKKworCQl1cHBlcjIuaW5jbHVzaXZlID0gIXVwcGVyMi5pbmNsdXNpdmU7CisJCXVwcGVy Mi5sb3dlciA9IHRydWU7CS8qIGl0IHdpbGwgYmVjb21lIHRoZSBsb3dlciBib3VuZCAqLwor CQlvdXRwdXRzWzFdID0gbWFrZV9yYW5nZSh0eXBjYWNoZSwgJnVwcGVyMiwgJnVwcGVyMSwg ZmFsc2UsIE5VTEwpOworCisJCSpvdXRwdXRuID0gMjsKKwl9CisJZWxzZSBpZiAoY21wX2wx dTIgPiAwIHx8IGNtcF91MWwyIDwgMCkKKwl7CisJCW91dHB1dHNbMF0gPSByMTsKKwkJKm91 dHB1dG4gPSAxOworCX0KKwllbHNlIGlmIChjbXBfbDFsMiA+PSAwICYmIGNtcF91MXUyIDw9 IDApCisJeworCQkqb3V0cHV0biA9IDA7CisJfQorCWVsc2UgaWYgKGNtcF9sMWwyIDw9IDAg JiYgY21wX3UxbDIgPj0gMCAmJiBjbXBfdTF1MiA8PSAwKQorCXsKKwkJbG93ZXIyLmluY2x1 c2l2ZSA9ICFsb3dlcjIuaW5jbHVzaXZlOworCQlsb3dlcjIubG93ZXIgPSBmYWxzZTsJLyog aXQgd2lsbCBiZWNvbWUgdGhlIHVwcGVyIGJvdW5kICovCisJCW91dHB1dHNbMF0gPSBtYWtl X3JhbmdlKHR5cGNhY2hlLCAmbG93ZXIxLCAmbG93ZXIyLCBmYWxzZSwgTlVMTCk7CisJCSpv dXRwdXRuID0gMTsKKwl9CisJZWxzZSBpZiAoY21wX2wxbDIgPj0gMCAmJiBjbXBfdTF1MiA+ PSAwICYmIGNtcF9sMXUyIDw9IDApCisJeworCQl1cHBlcjIuaW5jbHVzaXZlID0gIXVwcGVy Mi5pbmNsdXNpdmU7CisJCXVwcGVyMi5sb3dlciA9IHRydWU7CS8qIGl0IHdpbGwgYmVjb21l IHRoZSBsb3dlciBib3VuZCAqLworCQlvdXRwdXRzWzBdID0gbWFrZV9yYW5nZSh0eXBjYWNo ZSwgJnVwcGVyMiwgJnVwcGVyMSwgZmFsc2UsIE5VTEwpOworCQkqb3V0cHV0biA9IDE7CisJ fQorCWVsc2UKKwl7CisJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGNhc2UgaW4gcmFuZ2Vf d2l0aG91dF9wb3J0aW9uIik7CisJfQorfQorCiAvKiByYW5nZSAtPiByYW5nZSBhZ2dyZWdh dGUgZnVuY3Rpb25zICovCiAKIERhdHVtCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nl c3MvYW12YWxpZGF0ZS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaAppbmRl eCA0MjRhYjYzZmE1YS4uNjEwMzk1NDJkYWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9hbXZhbGlkYXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUu aApAQCAtMjgsOCArMjgsOCBAQCB0eXBlZGVmIHN0cnVjdCBPcEZhbWlseU9wRnVuY0dyb3Vw CiAKIC8qIEZ1bmN0aW9ucyBpbiBhY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jICovCiBleHRl cm4gTGlzdCAqaWRlbnRpZnlfb3BmYW1pbHlfZ3JvdXBzKENhdENMaXN0ICpvcHJsaXN0LCBD YXRDTGlzdCAqcHJvY2xpc3QpOwotZXh0ZXJuIGJvb2wgY2hlY2tfYW1wcm9jX3NpZ25hdHVy ZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKLQkJCQkJCQkJICAgaW50 IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLik7CitleHRlcm4gYm9vbCBjaGVja19hbXByb2Nf c2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIHJldHNldCwKKwkJCQkJ CQkJICAgYm9vbCBleGFjdCwgaW50IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLik7CiBleHRl cm4gYm9vbCBjaGVja19hbW9wdHNwcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkKTsKIGV4dGVy biBib29sIGNoZWNrX2Ftb3Bfc2lnbmF0dXJlKE9pZCBvcG5vLCBPaWQgcmVzdHlwZSwKIAkJ CQkJCQkJIE9pZCBsZWZ0dHlwZSwgT2lkIHJpZ2h0dHlwZSk7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9hY2Nlc3MvZ2lzdC5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaAppbmRl eCAyMmRkMDRjMTQxOC4uOGQ2Yzk5ZjVlYmUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9naXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaApAQCAtNDAsNyAr NDAsOCBAQAogI2RlZmluZSBHSVNUX09QVElPTlNfUFJPQwkJCQkxMAogI2RlZmluZSBHSVNU X1NPUlRTVVBQT1JUX1BST0MJCQkxMQogI2RlZmluZSBHSVNUX1NUUkFUTlVNX1BST0MJCQkJ MTIKLSNkZWZpbmUgR0lTVE5Qcm9jcwkJCQkJMTIKKyNkZWZpbmUgR0lTVF9XSVRIT1VUX1BP UlRJT05fUFJPQwkJMTMKKyNkZWZpbmUgR0lTVE5Qcm9jcwkJCQkJMTMKIAogLyoKICAqIFBh Z2Ugb3BhcXVlIGRhdGEgaW4gYSBHaVNUIGluZGV4IHBhZ2UuCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2FtcHJvYy5kYXQKaW5kZXggNWQ3ZmUyOTJiZjYuLjBhNGRiMzI1ZmFhIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19hbXByb2MuZGF0CkBAIC02MDksNiArNjA5LDkgQEAKIHsgYW1wcm9jZmFt aWx5ID0+ICdnaXN0L3JhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlyYW5nZScs CiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYW55cmFuZ2UnLCBhbXByb2NudW0gPT4gJzEyJywK ICAgYW1wcm9jID0+ICdnaXN0X3N0cmF0bnVtX2lkZW50aXR5JyB9LAoreyBhbXByb2NmYW1p bHkgPT4gJ2dpc3QvcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueXJhbmdlJywK KyAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnlyYW5nZScsIGFtcHJvY251bSA9PiAnMTMnLAor ICBhbXByb2MgPT4gJ3JhbmdlX3dpdGhvdXRfcG9ydGlvbihhbnlyYW5nZSxhbnlyYW5nZSkn IH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9uZXR3b3JrX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVt ID0+ICcxJywKICAgYW1wcm9jID0+ICdpbmV0X2dpc3RfY29uc2lzdGVudCcgfSwKQEAgLTY0 OSw2ICs2NTIsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvbXVsdGlyYW5nZV9vcHMn LCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnYW55bXVsdGlyYW5nZScsIGFtcHJvY251bSA9PiAnMTInLAogICBhbXByb2MgPT4g J2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9t dWx0aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKKyAg YW1wcm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICcxMycs CisgIGFtcHJvYyA9PiAnbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24oYW55bXVsdGlyYW5n ZSxhbnltdWx0aXJhbmdlKScgfSwKIAogIyBnaW4KIHsgYW1wcm9jZmFtaWx5ID0+ICdnaW4v YXJyYXlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueWFycmF5JywKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0CmluZGV4IGNiYmU4YWNkMzgyLi40MTM5ZGY5NGM5YiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMDczOSw2ICsxMDczOSwxMCBAQAogeyBvaWQgPT4g JzM4NjknLAogICBwcm9uYW1lID0+ICdyYW5nZV9taW51cycsIHByb3JldHR5cGUgPT4gJ2Fu eXJhbmdlJywKICAgcHJvYXJndHlwZXMgPT4gJ2FueXJhbmdlIGFueXJhbmdlJywgcHJvc3Jj ID0+ICdyYW5nZV9taW51cycgfSwKK3sgb2lkID0+ICc4NDA4JywgZGVzY3IgPT4gJ3JlbW92 ZSBwb3J0aW9uIGZyb20gcmFuZ2UnLAorICBwcm9uYW1lID0+ICdyYW5nZV93aXRob3V0X3Bv cnRpb24nLCBwcm9yb3dzID0+ICcyJywKKyAgcHJvcmV0c2V0ID0+ICd0JywgcHJvcmV0dHlw ZSA9PiAnYW55cmFuZ2UnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55cmFuZ2UgYW55cmFuZ2Un LCBwcm9zcmMgPT4gJ3JhbmdlX3dpdGhvdXRfcG9ydGlvbicgfSwKIHsgb2lkID0+ICczODcw JywgZGVzY3IgPT4gJ2xlc3MtZXF1YWwtZ3JlYXRlcicsCiAgIHByb25hbWUgPT4gJ3Jhbmdl X2NtcCcsIHByb3JldHR5cGUgPT4gJ2ludDQnLAogICBwcm9hcmd0eXBlcyA9PiAnYW55cmFu Z2UgYW55cmFuZ2UnLCBwcm9zcmMgPT4gJ3JhbmdlX2NtcCcgfSwKQEAgLTExMDI2LDYgKzEx MDMwLDEwIEBACiB7IG9pZCA9PiAnNDI3MScsCiAgIHByb25hbWUgPT4gJ211bHRpcmFuZ2Vf bWludXMnLCBwcm9yZXR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAgcHJvYXJndHlwZXMg PT4gJ2FueW11bHRpcmFuZ2UgYW55bXVsdGlyYW5nZScsIHByb3NyYyA9PiAnbXVsdGlyYW5n ZV9taW51cycgfSwKK3sgb2lkID0+ICc4NDA2JywgZGVzY3IgPT4gJ3JlbW92ZSBwb3J0aW9u IGZyb20gbXVsdGlyYW5nZScsCisgIHByb25hbWUgPT4gJ211bHRpcmFuZ2Vfd2l0aG91dF9w b3J0aW9uJywgcHJvcm93cyA9PiAnMScsCisgIHByb3JldHNldCA9PiAndCcsIHByb3JldHR5 cGUgPT4gJ2FueW11bHRpcmFuZ2UnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55bXVsdGlyYW5n ZSBhbnltdWx0aXJhbmdlJywgcHJvc3JjID0+ICdtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlv bicgfSwKIHsgb2lkID0+ICc0MjcyJywKICAgcHJvbmFtZSA9PiAnbXVsdGlyYW5nZV9pbnRl cnNlY3QnLCBwcm9yZXR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAgcHJvYXJndHlwZXMg PT4gJ2FueW11bHRpcmFuZ2UgYW55bXVsdGlyYW5nZScsCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS91dGlscy9yYW5nZXR5cGVzLmggYi9zcmMvaW5jbHVkZS91dGlscy9yYW5nZXR5cGVz LmgKaW5kZXggMmI1NzQ4NzNjZWYuLmUxYjI1NmI2NWY0IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS91dGlscy9yYW5nZXR5cGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmFuZ2V0 eXBlcy5oCkBAIC0xNjQsNSArMTY0LDcgQEAgZXh0ZXJuIFJhbmdlVHlwZSAqbWFrZV9lbXB0 eV9yYW5nZShUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUpOwogZXh0ZXJuIGJvb2wgcmFuZ2Vf c3BsaXRfaW50ZXJuYWwoVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlLCBjb25zdCBSYW5nZVR5 cGUgKnIxLAogCQkJCQkJCQkgY29uc3QgUmFuZ2VUeXBlICpyMiwgUmFuZ2VUeXBlICoqb3V0 cHV0MSwKIAkJCQkJCQkJIFJhbmdlVHlwZSAqKm91dHB1dDIpOworZXh0ZXJuIHZvaWQgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwg UmFuZ2VUeXBlICpyMSwKKwkJCQkJCQkJCVJhbmdlVHlwZSAqcjIsIFJhbmdlVHlwZSAqKm91 dHB1dHMsIGludCAqb3V0cHV0bik7CiAKICNlbmRpZgkJCQkJCQkvKiBSQU5HRVRZUEVTX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5 cGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5cGVzLm91 dAppbmRleCBjNjM2M2ViZWIyNC4uMTFhYTI4MmZmMzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5cGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL211bHRpcmFuZ2V0eXBlcy5vdXQKQEAgLTIyMDAsNiArMjIwMCwx MjIgQEAgU0VMRUNUIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1 KSkgLSBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDAKICB7WzEsMiksWzQsNSl9CiAoMSBy b3cpCiAKKy0tIHdpdGhvdXRfcG9ydGlvbgorU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9w b3J0aW9uKG51bW11bHRpcmFuZ2UoKSwgbnVtbXVsdGlyYW5nZSgpKTsKKyBtdWx0aXJhbmdl X3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJv d3MpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdl KCksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworIG11bHRpcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKwor U0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFu Z2UoMSwyKSksIG51bW11bHRpcmFuZ2UoKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEgcm93KQor CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1y YW5nZSgxLDIpLCBudW1yYW5nZSgzLDQpKSwgbnVtbXVsdGlyYW5nZSgpKTsKKyBtdWx0aXJh bmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7 WzEsMiksWzMsNCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJh bmdlKDEsMikpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdl KG51bXJhbmdlKDIsNCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMil9CisoMSByb3cpCisKK1NFTEVDVCBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDMsNCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMil9CisoMSBy b3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdl KG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKKyBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyB7WzIsNCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlv bihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdl KDIsMykpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB7WzEsMiksWzMsNCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBu dW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsOCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1NFTEVD VCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEs NCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsMikpKTsKKyBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzIsNCl9Ciso MSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJh bmdlKG51bXJhbmdlKDEsOCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsMiksIG51bXJh bmdlKDMsNCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyB7WzIsMyksWzQsOCl9CisoMSByb3cpCisKK1NFTEVDVCBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsOCkp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsMyksIG51bXJhbmdlKDUsbnVsbCkpKTsKKyBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyB7WzEsMiksWzMsNSl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDApKSk7CisgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUp fQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVs dGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShu dW1yYW5nZSgyLDQpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUpfQorKDEgcm93KQorCitTRUxF Q1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgx LDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgzLDUpKSk7Cisg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisge1sxLDIpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3Bv cnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVt bXVsdGlyYW5nZShudW1yYW5nZSgwLDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1Qg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDMp LCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDkpKSk7CisgbXVs dGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cisge1sxLDIpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVs dGlyYW5nZShudW1yYW5nZSg4LDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24g CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUpfQorKDEgcm93 KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShu dW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgt MiwwKSwgbnVtcmFuZ2UoOCw5KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKSxbNCw1KX0KKygxIHJvdykK KwogLS0gaW50ZXJzZWN0aW9uCiBTRUxFQ1QgbnVtbXVsdGlyYW5nZSgpICogbnVtbXVsdGly YW5nZSgpOwogID9jb2x1bW4/IApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9yYW5nZXR5cGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0 eXBlcy5vdXQKaW5kZXggYTdjYzIyMGJmMGQuLmFiMjMwOWU4YzFkIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3JhbmdldHlwZXMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0eXBlcy5vdXQKQEAgLTQ4MSw2ICs0ODEsNjAgQEAg c2VsZWN0IHJhbmdlX21pbnVzKG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFuZ2Uo MC4wLDEyMC4yLCcoXScpKTsKICBlbXB0eQogKDEgcm93KQogCitzZWxlY3QgcmFuZ2Vfd2l0 aG91dF9wb3J0aW9uKCdlbXB0eSc6Om51bXJhbmdlLCBudW1yYW5nZSgyLjAsIDMuMCkpOwor IHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisoMCBy b3dzKQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4y KSwgJ2VtcHR5Jzo6bnVtcmFuZ2UpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjIpCisoMSByb3cpCisKK3NlbGVjdCByYW5n ZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIpLCBudW1yYW5nZSgyLjAsIDMu MCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgWzEuMSwyLjApCisoMSByb3cpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24o bnVtcmFuZ2UoMS4xLCAyLjIpLCBudW1yYW5nZSgyLjIsIDMuMCkpOworIHJhbmdlX3dpdGhv dXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjIpCisoMSBy b3cpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIs J1tdJyksIG51bXJhbmdlKDIuMCwgMy4wKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMS4xLDIuMCkKKygxIHJvdykKKworc2VsZWN0 IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjAsIDMuMCksIG51bXJhbmdlKDEu NSwgMi4wKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBbMS4wLDEuNSkKKyBbMi4wLDMuMCkKKygyIHJvd3MpCisKK3NlbGVjdCByYW5n ZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMTAuMSwxMi4yLCdbXScpLCBudW1yYW5nZSgx MTAuMCwxMjAuMiwnKF0nKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBbMTAuMSwxMi4yXQorKDEgcm93KQorCitzZWxlY3QgcmFuZ2Vf d2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFuZ2UoMC4w LDEyMC4yLCcoXScpKTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKDAgcm93cykKKworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihu dW1yYW5nZSgxLjAsMy4wLCdbXScpLCBudW1yYW5nZSgxLjUsMi4wLCcoXScpKTsKKyByYW5n ZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLjAsMS41 XQorICgyLjAsMy4wXQorKDIgcm93cykKKwogc2VsZWN0IG51bXJhbmdlKDQuNSwgNS41LCAn W10nKSAmJiBudW1yYW5nZSg1LjUsIDYuNSk7CiAgP2NvbHVtbj8gCiAtLS0tLS0tLS0tCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9tdWx0aXJhbmdldHlwZXMuc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVsdGlyYW5nZXR5cGVzLnNxbAppbmRleCA0MWQ1NTI0 Mjg1YS4uMGJmYTcxY2FjYTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL211 bHRpcmFuZ2V0eXBlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVsdGlyYW5n ZXR5cGVzLnNxbApAQCAtNDE0LDYgKzQxNCwyOCBAQCBTRUxFQ1QgbnVtbXVsdGlyYW5nZShu dW1yYW5nZSgxLDMpLCBudW1yYW5nZSg0LDUpKSAtIG51bW11bHRpcmFuZ2UobnVtcmFuZ2Uo Miw5KQogU0VMRUNUIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1 KSkgLSBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDgsOSkpOwogU0VMRUNUIG51bW11bHRpcmFu Z2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSkgLSBudW1tdWx0aXJhbmdlKG51bXJh bmdlKC0yLDApLCBudW1yYW5nZSg4LDkpKTsKIAorLS0gd2l0aG91dF9wb3J0aW9uCitTRUxF Q1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZSgpLCBudW1tdWx0 aXJhbmdlKCkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRp cmFuZ2UoKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSk7CitTRUxFQ1QgbXVsdGly YW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSwgbnVt bXVsdGlyYW5nZSgpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1t dWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDMsNCkpLCBudW1tdWx0aXJhbmdl KCkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMSwyKSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworU0VMRUNU IG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwy KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiw0KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vf d2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMyw0KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFu Z2UoMSwyKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiwzKSkpOwor U0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFu Z2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMCw4KSkpOworU0VMRUNUIG11bHRp cmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51 bW11bHRpcmFuZ2UobnVtcmFuZ2UoMCwyKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw4KSksIG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMCwyKSwgbnVtcmFuZ2UoMyw0KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0 aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw4KSksIG51bW11bHRpcmFu Z2UobnVtcmFuZ2UoMiwzKSwgbnVtcmFuZ2UoNSxudWxsKSkpOworU0VMRUNUIG11bHRpcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFu Z2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoLTIsMCkpKTsKK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51 bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsNCkpKTsKK1NFTEVDVCBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiks IG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDMsNSkpKTsKK1NFTEVD VCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEs MiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsOSkpKTsKK1NF TEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdl KDEsMyksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsOSkpKTsK K1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJh bmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDgsOSkp KTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0y LDApLCBudW1yYW5nZSg4LDkpKSk7CisKIC0tIGludGVyc2VjdGlvbgogU0VMRUNUIG51bW11 bHRpcmFuZ2UoKSAqIG51bW11bHRpcmFuZ2UoKTsKIFNFTEVDVCBudW1tdWx0aXJhbmdlKCkg KiBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcmFuZ2V0eXBlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yYW5n ZXR5cGVzLnNxbAppbmRleCBhNWVjZGY1MzcyZi4uN2ZjODA1ZDlmZmEgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsCkBAIC0xMDcsNiArMTA3LDE2IEBAIHNlbGVjdCBu dW1yYW5nZSgxLjEsIDIuMiwnW10nKSAtIG51bXJhbmdlKDIuMCwgMy4wKTsKIHNlbGVjdCBy YW5nZV9taW51cyhudW1yYW5nZSgxMC4xLDEyLjIsJ1tdJyksIG51bXJhbmdlKDExMC4wLDEy MC4yLCcoXScpKTsKIHNlbGVjdCByYW5nZV9taW51cyhudW1yYW5nZSgxMC4xLDEyLjIsJ1td JyksIG51bXJhbmdlKDAuMCwxMjAuMiwnKF0nKSk7CiAKK3NlbGVjdCByYW5nZV93aXRob3V0 X3BvcnRpb24oJ2VtcHR5Jzo6bnVtcmFuZ2UsIG51bXJhbmdlKDIuMCwgMy4wKSk7CitzZWxl Y3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgJ2VtcHR5Jzo6 bnVtcmFuZ2UpOworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjEs IDIuMiksIG51bXJhbmdlKDIuMCwgMy4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgbnVtcmFuZ2UoMi4yLCAzLjApKTsKK3NlbGVjdCBy YW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIsJ1tdJyksIG51bXJhbmdl KDIuMCwgMy4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEu MCwgMy4wKSwgbnVtcmFuZ2UoMS41LCAyLjApKTsKK3NlbGVjdCByYW5nZV93aXRob3V0X3Bv cnRpb24obnVtcmFuZ2UoMTAuMSwxMi4yLCdbXScpLCBudW1yYW5nZSgxMTAuMCwxMjAuMiwn KF0nKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEwLjEsMTIu MiwnW10nKSwgbnVtcmFuZ2UoMC4wLDEyMC4yLCcoXScpKTsKK3NlbGVjdCByYW5nZV93aXRo b3V0X3BvcnRpb24obnVtcmFuZ2UoMS4wLDMuMCwnW10nKSwgbnVtcmFuZ2UoMS41LDIuMCwn KF0nKSk7CisKIHNlbGVjdCBudW1yYW5nZSg0LjUsIDUuNSwgJ1tdJykgJiYgbnVtcmFuZ2Uo NS41LCA2LjUpOwogc2VsZWN0IG51bXJhbmdlKDEuMCwgMi4wKSA8PCBudW1yYW5nZSgzLjAs IDQuMCk7CiBzZWxlY3QgbnVtcmFuZ2UoMS4wLCAzLjAsJ1tdJykgPDwgbnVtcmFuZ2UoMy4w LCA0LjAsJ1tdJyk7Ci0tIAoyLjQyLjAKCg== --------------OnvqRywVNIjsiZuvTo32rvFz Content-Type: text/x-patch; charset=UTF-8; name="v45-0003-Fix-NOACTION-temporal-foreign-keys-when-the-refe.patch" Content-Disposition: attachment; filename*0="v45-0003-Fix-NOACTION-temporal-foreign-keys-when-the-refe.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA3ZmI5OGZiNjY5ODZlMTY4Y2NmYTM2Y2Q0MWEwMDBiOThjYTdiNWU0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgOSBOb3YgMjAyNCAxNDowNTo0OCAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggdjQ1IDMvOF0gRml4IE5PQUNUSU9OIHRlbXBvcmFsIGZvcmVp Z24ga2V5cyB3aGVuIHRoZQogcmVmZXJlbmNlZCBlbmRwb2ludHMgY2hhbmdlCgpJZiBhIHJl ZmVyZW5jZWQgVVBEQVRFIGNoYW5nZXMgdGhlIHRlbXBvcmFsIHN0YXJ0L2VuZCB0aW1lcywg c2hyaW5raW5nCnRoZSBzcGFuIHRoZSByb3cgaXMgdmFsaWQsIHdlIGdldCBhIGZhbHNlIHJl dHVybiBmcm9tIHJpX0NoZWNrX1BrX01hdGNoLApidXQgb3ZlcmxhcHBpbmcgcmVmZXJlbmNl cyBtYXkgc3RpbGwgYmUgdmFsaWQsIGlmIHRoZWlyIHJlZmVyZW5jZSBkaWRuJ3QKb3Zlcmxh cCB3aXRoIHRoZSByZW1vdmVkIHNwYW4uCgpXZSBuZWVkIHRvIGNvbnNpZGVyIHdoYXQgc3Bh bihzKSBhcmUgc3RpbGwgcHJvdmlkZWQgaW4gdGhlIHJlZmVyZW5jZWQKdGFibGUuIEluc3Rl YWQgb2YgcmV0dXJuaW5nIHRoYXQgZnJvbSByaV9DaGVja19Qa19NYXRjaCwgd2UgY2FuIGp1 c3QKd2UgbG9vayBpdCB1cCBpbiB0aGUgbWFpbiBTUUwgcXVlcnkuCgpSZXBvcnRlZC1ieTog U2FtIEdhYnJpZWxzc29uCkF1dGhvcjogUGF1bCBKdW5nd2lydGgKLS0tCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyAgICAgICAgICAgfCAxNiArKy0KIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYyAgICAgICAgICAgfCA5OCArKysrKysrKysr KysrKysrKystCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCAgICAgICAg ICAgfCAgMyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQgICAgICAg ICAgIHwgIDYgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0 ICAgICB8IDY4ICsrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRf b3ZlcmxhcHMuc3FsICAgICB8IDYwICsrKysrKysrKysrLQogNyBmaWxlcyBjaGFuZ2VkLCAy NDQgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X2NvbnN0cmFpbnQuYwppbmRleCA5YzA1YTk4ZDI4Yy4uZmU3NTRlY2QxZDggMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jCkBAIC0xNjA5LDExICsxNjA5LDE0IEBAIERl Y29uc3RydWN0RmtDb25zdHJhaW50Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1ma3Ms CiAgKiBhZ2dlZGNvbnRhaW5lZGJ5b3Blcm9pZCBpcyBhbHNvIGEgQ29udGFpbmVkQnkgb3Bl cmF0b3IsCiAgKiBidXQgb25lIHdob3NlIHJocyBpcyBhIG11bHRpcmFuZ2UuCiAgKiBUaGF0 IHdheSBmb3JlaWduIGtleXMgY2FuIGNvbXBhcmUgZmthdHRyIDxAIHJhbmdlX2FnZyhwa2F0 dHIpLgorICogaW50ZXJzZWN0b3Blcm9pZCBpcyB1c2VkIGJ5IE5PIEFDVElPTiBjb25zdHJh aW50cyB0byB0cmltIHRoZSByYW5nZSBiZWluZyBjb25zaWRlcmVkCisgKiB0byBqdXN0IHdo YXQgd2FzIHVwZGF0ZWQvZGVsZXRlZC4KICAqLwogdm9pZAogRmluZEZLUGVyaW9kT3BlcnMo T2lkIG9wY2xhc3MsCiAJCQkJICBPaWQgKmNvbnRhaW5lZGJ5b3Blcm9pZCwKLQkJCQkgIE9p ZCAqYWdnZWRjb250YWluZWRieW9wZXJvaWQpCisJCQkJICBPaWQgKmFnZ2VkY29udGFpbmVk YnlvcGVyb2lkLAorCQkJCSAgT2lkICppbnRlcnNlY3RvcGVyb2lkKQogewogCU9pZAkJCW9w ZmFtaWx5ID0gSW52YWxpZE9pZDsKIAlPaWQJCQlvcGNpbnR5cGUgPSBJbnZhbGlkT2lkOwpA QCAtMTY1NCw2ICsxNjU3LDE3IEBAIEZpbmRGS1BlcmlvZE9wZXJzKE9pZCBvcGNsYXNzLAog CQkJCQkJCQkJIEFOWU1VTFRJUkFOR0VPSUQsCiAJCQkJCQkJCQkgYWdnZWRjb250YWluZWRi eW9wZXJvaWQsCiAJCQkJCQkJCQkgJnN0cmF0KTsKKworCXN3aXRjaCAob3BjaW50eXBlKSB7 CisJCWNhc2UgQU5ZUkFOR0VPSUQ6CisJCQkqaW50ZXJzZWN0b3Blcm9pZCA9IE9JRF9SQU5H RV9JTlRFUlNFQ1RfUkFOR0VfT1A7CisJCQlicmVhazsKKwkJY2FzZSBBTllNVUxUSVJBTkdF T0lEOgorCQkJKmludGVyc2VjdG9wZXJvaWQgPSBPSURfTVVMVElSQU5HRV9JTlRFUlNFQ1Rf TVVMVElSQU5HRV9PUDsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJZWxvZyhFUlJPUiwg IlVuZXhwZWN0ZWQgb3BjaW50eXBlOiAldSIsIG9wY2ludHlwZSk7CisJfQogfQogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAxYWYyZTJiZmZiMi4uMWY4ZTM4MWJj MGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMDIyNCw4ICsxMDIyNCwx MCBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRU YWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCXsKIAkJT2lkCQkJcGVyaW9kb3Blcm9p ZDsKIAkJT2lkCQkJYWdnZWRwZXJpb2RvcGVyb2lkOworCQlPaWQJCQlpbnRlcnNlY3RvcGVy b2lkOwogCi0JCUZpbmRGS1BlcmlvZE9wZXJzKG9wY2xhc3Nlc1tudW1wa3MgLSAxXSwgJnBl cmlvZG9wZXJvaWQsICZhZ2dlZHBlcmlvZG9wZXJvaWQpOworCQlGaW5kRktQZXJpb2RPcGVy cyhvcGNsYXNzZXNbbnVtcGtzIC0gMV0sICZwZXJpb2RvcGVyb2lkLCAmYWdnZWRwZXJpb2Rv cGVyb2lkLAorCQkJCQkJICAmaW50ZXJzZWN0b3Blcm9pZCk7CiAJfQogCiAJLyogRmlyc3Qs IGNyZWF0ZSB0aGUgY29uc3RyYWludCBjYXRhbG9nIGVudHJ5IGl0c2VsZi4gKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKaW5kZXggOTE3OTJjYjJhNDcuLmQ2YjVlNDMx MzRkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwpAQCAtMTI5LDYgKzEy OSw3IEBAIHR5cGVkZWYgc3RydWN0IFJJX0NvbnN0cmFpbnRJbmZvCiAJT2lkCQkJZmZfZXFf b3Byc1tSSV9NQVhfTlVNS0VZU107IC8qIGVxdWFsaXR5IG9wZXJhdG9ycyAoRksgPSBGSykg Ki8KIAlPaWQJCQlwZXJpb2RfY29udGFpbmVkX2J5X29wZXI7CS8qIGFueXJhbmdlIDxAIGFu eXJhbmdlICovCiAJT2lkCQkJYWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOyAvKiBm a2F0dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikgKi8KKwlPaWQJCQlwZXJpb2RfaW50ZXJzZWN0 X29wZXI7CS8qIGFueXJhbmdlICogYW55cmFuZ2UgKi8KIAlkbGlzdF9ub2RlCXZhbGlkX2xp bms7CQkvKiBMaW5rIGluIGxpc3Qgb2YgdmFsaWQgZW50cmllcyAqLwogfSBSSV9Db25zdHJh aW50SW5mbzsKIApAQCAtNzMxLDggKzczMiwxMSBAQCByaV9yZXN0cmljdChUcmlnZ2VyRGF0 YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0aW9uKQogCSAqIG5vdCBkbyBhbnl0aGluZy4g IEhvd2V2ZXIsIHRoaXMgY2hlY2sgc2hvdWxkIG9ubHkgYmUgbWFkZSBpbiB0aGUgTk8KIAkg KiBBQ1RJT04gY2FzZTsgaW4gUkVTVFJJQ1QgY2FzZXMgd2UgZG9uJ3Qgd2lzaCB0byBhbGxv dyBhbm90aGVyIHJvdyB0byBiZQogCSAqIHN1YnN0aXR1dGVkLgorCSAqCisJICogSWYgdGhl IGZvcmVpZ24ga2V5IGhhcyBQRVJJT0QsIHdlIGluY29ycG9yYXRlIGxvb2tpbmcgZm9yIHJl cGxhY2VtZW50CisJICogcm93cyBpbiB0aGUgbWFpbiBTUUwgcXVlcnkgYmVsb3csIHNvIHdl IG5lZWRuJ3QgZG8gaXQgaGVyZS4KIAkgKi8KLQlpZiAoaXNfbm9fYWN0aW9uICYmCisJaWYg KGlzX25vX2FjdGlvbiAmJiAhcmlpbmZvLT5oYXNwZXJpb2QgJiYKIAkJcmlfQ2hlY2tfUGtf TWF0Y2gocGtfcmVsLCBma19yZWwsIG9sZHNsb3QsIHJpaW5mbykpCiAJewogCQl0YWJsZV9j bG9zZShma19yZWwsIFJvd1NoYXJlTG9jayk7CkBAIC03NTAsOCArNzU0LDEwIEBAIHJpX3Jl c3RyaWN0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24pCiAJaWYg KChxcGxhbiA9IHJpX0ZldGNoUHJlcGFyZWRQbGFuKCZxa2V5KSkgPT0gTlVMTCkKIAl7CiAJ CVN0cmluZ0luZm9EYXRhIHF1ZXJ5YnVmOworCQljaGFyCQlwa3JlbG5hbWVbTUFYX1FVT1RF RF9SRUxfTkFNRV9MRU5dOwogCQljaGFyCQlma3JlbG5hbWVbTUFYX1FVT1RFRF9SRUxfTkFN RV9MRU5dOwogCQljaGFyCQlhdHRuYW1lW01BWF9RVU9URURfTkFNRV9MRU5dOworCQljaGFy CQlwZXJpb2RhdHRuYW1lW01BWF9RVU9URURfTkFNRV9MRU5dOwogCQljaGFyCQlwYXJhbW5h bWVbMTZdOwogCQljb25zdCBjaGFyICpxdWVyeXNlcDsKIAkJT2lkCQkJcXVlcnlvaWRzW1JJ X01BWF9OVU1LRVlTXTsKQEAgLTc2Myw2ICs3NjksMjYgQEAgcmlfcmVzdHJpY3QoVHJpZ2dl ckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX25vX2FjdGlvbikKIAkJICoJCSAgIEZPUiBLRVkg U0hBUkUgT0YgeAogCQkgKiBUaGUgdHlwZSBpZCdzIGZvciB0aGUgJCBwYXJhbWV0ZXJzIGFy ZSB0aG9zZSBvZiB0aGUKIAkJICogY29ycmVzcG9uZGluZyBQSyBhdHRyaWJ1dGVzLgorCQkg KgorCQkgKiBGb3IgdGVtcG9yYWwgZm9yZWlnbiBrZXlzIGEgcmVmZXJlbmNlIGNvdWxkIHN0 aWxsIGJlIHZhbGlkLAorCQkgKiBpZiB0aGUgcmVmZXJlbmNlZCByYW5nZSBkaWRuJ3QgY2hh bmdlIHRvbyBtdWNoLgorCQkgKiBBbHNvIGlmIHRoZSByZWZlcmVuY2luZyB0aW1lIHNwYW4g ZXh0ZW5kcyBwYXN0IHRoZSBjdXJyZW50IFBLIHJvdywKKwkJICogd2UgZG9uJ3Qgd2FudCB0 byBjaGVjayB0aGF0IHBhcnQ6IHNvbWUgb3RoZXIgUEsgcm93IHNob3VsZCBmdWxmaWxsIGl0 LgorCQkgKiBXZSBvbmx5IHdhbnQgdG8gdmFsaWRhdGUgdGhlIHBhcnQgbWF0Y2hpbmcgdGhl IFBLIHJlY29yZCB3ZSd2ZSBjaGFuZ2VkLgorCQkgKiBUaGVyZWZvcmUgdG8gZmluZCBpbnZh bGlkIHJlY29yZHMgd2UgZG8gdGhpczoKKwkJICogU0VMRUNUIDEKKwkJICogRlJPTSBbT05M WV0gPGZrdGFibGU+IHgKKwkJICogV0hFUkUgJDEgPSB4LmZrYXR0MSBbQU5EIC4uLl0gQU5E ICRuICYmIHguZmtwZXJpb2QKKwkJICogQU5EIE5PVCBjb2FsZXNjZSgoeC5ma3BlcmlvZCAq ICRuKSA8QAorCQkgKiAgKFNFTEVDVCByYW5nZV9hZ2cocikKKwkJICogICBGUk9NIChTRUxF Q1QgeS5wa3BlcmlvZCByCisJCSAqICAgICAgICAgRlJPTSBbT05MWV0gPHBrdGFibGU+IHkK KwkJICogICAgICAgICBXSEVSRSAkMSA9IHkucGthdHQxIFtBTkQgLi4uXSBBTkQgJG4gJiYg eS5wa3BlcmlvZAorCQkgKiAgICAgICAgIEZPUiBLRVkgU0hBUkUgT0YgeSkgeTIpLCBmYWxz ZSkKKwkJICogRk9SIEtFWSBTSEFSRSBPRiB4CisJCSAqIFdlIG5lZWQgdGhlIGNvYWxlc2Nl IGluIGNhc2UgdGhlIGZpcnN0IHN1YnF1ZXJ5IHJldHVybnMgbm8gcm93cy4KKwkJICogV2Ug bmVlZCB0aGUgc2Vjb25kIHN1YnF1ZXJ5IGJlY2F1c2UgRk9SIEtFWSBTSEFSRSBkb2Vzbid0 IHN1cHBvcnQKKwkJICogYWdncmVnYXRlIHF1ZXJpZXMuCiAJCSAqIC0tLS0tLS0tLS0KIAkJ ICovCiAJCWluaXRTdHJpbmdJbmZvKCZxdWVyeWJ1Zik7CkBAIC03ODcsNiArODEzLDczIEBA IHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24p CiAJCQlxdWVyeXNlcCA9ICJBTkQiOwogCQkJcXVlcnlvaWRzW2ldID0gcGtfdHlwZTsKIAkJ fQorCisJCS8qCisJCSAqIERvbid0IGZhaWwgaWYgdGhlIHJlbWFpbmluZyBoaXN0b3J5IHN0 aWxsIGZ1bGZpbGxzIHRoZSByZWZlcmVuY2VzLgorCQkgKiBPbmx5IGNoZWNrIHRoZSBwYXJ0 IG9mIHRoZSByZWZlcmVuY2VzIGludGVyc2VjdGluZyB3aXRoIG9sZHNsb3QsCisJCSAqIHNp bmNlIHRoZSByZXN0IHdvdWxkIGJlIGZ1bGZpbGxlZCBieSBzb21lIG90aGVyIHBrIHJlY29y ZC4KKwkJICoKKwkJICogRm9yIE5PQUNUSU9OIHdlIGNhbiBxdWVyeSB0aGUgcGsgdGFibGUg YW5kIHVzZSB3aGF0ZXZlciB3ZSBmaW5kCisJCSAqIChpbnN0ZWFkIG9mIGNhbGxpbmcgcmlf Q2hlY2tfUGtfTWF0Y2ggYWJvdmUpLgorCQkgKi8KKwkJaWYgKHJpaW5mby0+aGFzcGVyaW9k ICYmIGlzX25vX2FjdGlvbikKKwkJeworCQkJT2lkCQkJCXBrX3BlcmlvZF90eXBlID0gUklB dHRUeXBlKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSk7 CisJCQlPaWQJCQkJZmtfcGVyaW9kX3R5cGUgPSBSSUF0dFR5cGUoZmtfcmVsLCByaWluZm8t PmZrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKTsKKwkJCVN0cmluZ0luZm9EYXRhCWlu dGVyc2VjdGJ1ZjsKKwkJCVN0cmluZ0luZm9EYXRhCXJlcGxhY2VtZW50c2J1ZjsKKwkJCWNo YXIgKnBrX29ubHkgPSBwa19yZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJ VElPTkVEX1RBQkxFID8KKwkJCQkiIiA6ICJPTkxZICI7CisKKwkJCXF1b3RlT25lTmFtZShh dHRuYW1lLCBSSUF0dE5hbWUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5u a2V5cyAtIDFdKSk7CisJCQlzcHJpbnRmKHBhcmFtbmFtZSwgIiQlZCIsIHJpaW5mby0+bmtl eXMpOworCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZxdWVyeWJ1ZiwgIiBBTkQgTk9U IGNvYWxlc2NlKCIpOworCisJCQkvKiBJbnRlcnNlY3QgdGhlIGZrIHdpdGggdGhlIG9sZCBw ayByYW5nZSAqLworCQkJaW5pdFN0cmluZ0luZm8oJmludGVyc2VjdGJ1Zik7CisJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKCZpbnRlcnNlY3RidWYsICIoIik7CisJCQlyaV9HZW5lcmF0 ZVF1YWwoJmludGVyc2VjdGJ1ZiwgIiIsCisJCQkJCQkJYXR0bmFtZSwgZmtfcGVyaW9kX3R5 cGUsCisJCQkJCQkJcmlpbmZvLT5wZXJpb2RfaW50ZXJzZWN0X29wZXIsCisJCQkJCQkJcGFy YW1uYW1lLCBwa19wZXJpb2RfdHlwZSk7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZp bnRlcnNlY3RidWYsICIpIik7CisKKwkJCS8qIEZpbmQgdGhlIHJlbWFpbmluZyBoaXN0b3J5 ICovCisJCQlpbml0U3RyaW5nSW5mbygmcmVwbGFjZW1lbnRzYnVmKTsKKwkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoJnJlcGxhY2VtZW50c2J1ZiwgIihTRUxFQ1QgcGdfY2F0YWxvZy5y YW5nZV9hZ2cocikgRlJPTSAiKTsKKworCQkJcXVvdGVPbmVOYW1lKHBlcmlvZGF0dG5hbWUs IFJJQXR0TmFtZShwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0g MV0pKTsKKwkJCXF1b3RlUmVsYXRpb25OYW1lKHBrcmVsbmFtZSwgcGtfcmVsKTsKKwkJCWFw cGVuZFN0cmluZ0luZm8oJnJlcGxhY2VtZW50c2J1ZiwgIihTRUxFQ1QgeS4lcyByIEZST00g JXMlcyB5IiwKKwkJCQkJCQkgcGVyaW9kYXR0bmFtZSwgcGtfb25seSwgcGtyZWxuYW1lKTsK KworCQkJLyogUmVzdHJpY3QgcGsgcm93cyB0byB3aGF0IG1hdGNoZXMgKi8KKwkJCXF1ZXJ5 c2VwID0gIldIRVJFIjsKKwkJCWZvciAoaW50IGkgPSAwOyBpIDwgcmlpbmZvLT5ua2V5czsg aSsrKQorCQkJeworCQkJCU9pZAkJcGtfdHlwZSA9IFJJQXR0VHlwZShwa19yZWwsIHJpaW5m by0+cGtfYXR0bnVtc1tpXSk7CisKKwkJCQlxdW90ZU9uZU5hbWUoYXR0bmFtZSwKKwkJCQkJ CQkgUklBdHROYW1lKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW2ldKSk7CisJCQkJc3By aW50ZihwYXJhbW5hbWUsICIkJWQiLCBpICsgMSk7CisJCQkJcmlfR2VuZXJhdGVRdWFsKCZy ZXBsYWNlbWVudHNidWYsIHF1ZXJ5c2VwLAorCQkJCQkJCQlwYXJhbW5hbWUsIHBrX3R5cGUs CisJCQkJCQkJCXJpaW5mby0+cHBfZXFfb3Byc1tpXSwKKwkJCQkJCQkJYXR0bmFtZSwgcGtf dHlwZSk7CisJCQkJcXVlcnlzZXAgPSAiQU5EIjsKKwkJCQlxdWVyeW9pZHNbaV0gPSBwa190 eXBlOworCQkJfQorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmcmVwbGFjZW1lbnRzYnVm LCAiIEZPUiBLRVkgU0hBUkUgT0YgeSkgeTIpIik7CisKKwkJCXJpX0dlbmVyYXRlUXVhbCgm cXVlcnlidWYsICIiLAorCQkJCQkJCWludGVyc2VjdGJ1Zi5kYXRhLCBma19wZXJpb2RfdHlw ZSwKKwkJCQkJCQlyaWluZm8tPmFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3BlciwKKwkJ CQkJCQlyZXBsYWNlbWVudHNidWYuZGF0YSwgQU5ZTVVMVElSQU5HRU9JRCk7CisJCQkvKiBl bmQgb2YgY29hbGVzY2U6ICovCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZxdWVyeWJ1 ZiwgIiwgZmFsc2UpIik7CisJCX0KKwogCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZxdWVy eWJ1ZiwgIiBGT1IgS0VZIFNIQVJFIE9GIHgiKTsKIAogCQkvKiBQcmVwYXJlIGFuZCBzYXZl IHRoZSBwbGFuICovCkBAIC0yMjQ0LDcgKzIzMzcsOCBAQCByaV9Mb2FkQ29uc3RyYWludElu Zm8oT2lkIGNvbnN0cmFpbnRPaWQpCiAKIAkJRmluZEZLUGVyaW9kT3BlcnMob3BjbGFzcywK IAkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyLAotCQkJCQkJICAm cmlpbmZvLT5hZ2dlZF9wZXJpb2RfY29udGFpbmVkX2J5X29wZXIpOworCQkJCQkJICAmcmlp bmZvLT5hZ2dlZF9wZXJpb2RfY29udGFpbmVkX2J5X29wZXIsCisJCQkJCQkgICZyaWluZm8t PnBlcmlvZF9pbnRlcnNlY3Rfb3Blcik7CiAJfQogCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCmluZGV4IDRiNDQ3NjczOGEyLi41 ZWRkNGViOGEzMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJh aW50LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50LmgKQEAgLTI4 OCw3ICsyODgsOCBAQCBleHRlcm4gdm9pZCBEZWNvbnN0cnVjdEZrQ29uc3RyYWludFJvdyhI ZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtzLAogCQkJCQkJCQkJICAgaW50ICpudW1fZmtf ZGVsX3NldF9jb2xzLCBBdHRyTnVtYmVyICpma19kZWxfc2V0X2NvbHMpOwogZXh0ZXJuIHZv aWQgRmluZEZLUGVyaW9kT3BlcnMoT2lkIG9wY2xhc3MsCiAJCQkJCQkJICBPaWQgKmNvbnRh aW5lZGJ5b3Blcm9pZCwKLQkJCQkJCQkgIE9pZCAqYWdnZWRjb250YWluZWRieW9wZXJvaWQp OworCQkJCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5lZGJ5b3Blcm9pZCwKKwkJCQkJCQkgIE9p ZCAqaW50ZXJzZWN0b3Blcm9pZCk7CiAKIGV4dGVybiBib29sIGNoZWNrX2Z1bmN0aW9uYWxf Z3JvdXBpbmcoT2lkIHJlbGlkLAogCQkJCQkJCQkJICBJbmRleCB2YXJubywgSW5kZXggdmFy bGV2ZWxzdXAsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZXJhdG9y LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0CmluZGV4IDBlNzUx MWRkZTFjLi5hZWRkZDI5MmUyYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19vcGVyYXRvci5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5k YXQKQEAgLTMxNTAsNyArMzE1MCw4IEBACiB7IG9pZCA9PiAnMzg5OScsIGRlc2NyID0+ICdy YW5nZSBkaWZmZXJlbmNlJywKICAgb3BybmFtZSA9PiAnLScsIG9wcmxlZnQgPT4gJ2FueXJh bmdlJywgb3BycmlnaHQgPT4gJ2FueXJhbmdlJywKICAgb3BycmVzdWx0ID0+ICdhbnlyYW5n ZScsIG9wcmNvZGUgPT4gJ3JhbmdlX21pbnVzJyB9LAoteyBvaWQgPT4gJzM5MDAnLCBkZXNj ciA9PiAncmFuZ2UgaW50ZXJzZWN0aW9uJywKK3sgb2lkID0+ICczOTAwJywgb2lkX3N5bWJv bCA9PiAnT0lEX1JBTkdFX0lOVEVSU0VDVF9SQU5HRV9PUCcsCisgIGRlc2NyID0+ICdyYW5n ZSBpbnRlcnNlY3Rpb24nLAogICBvcHJuYW1lID0+ICcqJywgb3BybGVmdCA9PiAnYW55cmFu Z2UnLCBvcHJyaWdodCA9PiAnYW55cmFuZ2UnLAogICBvcHJyZXN1bHQgPT4gJ2FueXJhbmdl Jywgb3ByY29tID0+ICcqKGFueXJhbmdlLGFueXJhbmdlKScsCiAgIG9wcmNvZGUgPT4gJ3Jh bmdlX2ludGVyc2VjdCcgfSwKQEAgLTM0MTcsNyArMzQxOCw4IEBACiB7IG9pZCA9PiAnNDM5 MycsIGRlc2NyID0+ICdtdWx0aXJhbmdlIG1pbnVzJywKICAgb3BybmFtZSA9PiAnLScsIG9w cmxlZnQgPT4gJ2FueW11bHRpcmFuZ2UnLCBvcHJyaWdodCA9PiAnYW55bXVsdGlyYW5nZScs CiAgIG9wcnJlc3VsdCA9PiAnYW55bXVsdGlyYW5nZScsIG9wcmNvZGUgPT4gJ211bHRpcmFu Z2VfbWludXMnIH0sCi17IG9pZCA9PiAnNDM5NCcsIGRlc2NyID0+ICdtdWx0aXJhbmdlIGlu dGVyc2VjdCcsCit7IG9pZCA9PiAnNDM5NCcsIG9pZF9zeW1ib2wgPT4gJ09JRF9NVUxUSVJB TkdFX0lOVEVSU0VDVF9NVUxUSVJBTkdFX09QJywKKyAgZGVzY3IgPT4gJ211bHRpcmFuZ2Ug aW50ZXJzZWN0JywKICAgb3BybmFtZSA9PiAnKicsIG9wcmxlZnQgPT4gJ2FueW11bHRpcmFu Z2UnLCBvcHJyaWdodCA9PiAnYW55bXVsdGlyYW5nZScsCiAgIG9wcnJlc3VsdCA9PiAnYW55 bXVsdGlyYW5nZScsIG9wcmNvbSA9PiAnKihhbnltdWx0aXJhbmdlLGFueW11bHRpcmFuZ2Up JywKICAgb3ByY29kZSA9PiAnbXVsdGlyYW5nZV9pbnRlcnNlY3QnIH0sCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRleCA4YjVl Y2FiNmZkOC4uYjI3NDRhNDlhOTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC93aXRob3V0X292ZXJsYXBzLm91dApAQCAtMTY5MCw3ICsxNjkwLDggQEAgREVMRVRF IEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKIElOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKICAgKCdbNSw2KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAogICAoJ1s1LDYpJywgZGF0ZXJhbmdl KCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEw JyksICdbNSw2KScpOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpCiBXSEVSRSBpZCA9ICdbNSw2KScg QU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsK IC0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNl ZCByb3dzOgpAQCAtMTcwMyw2ICsxNzA0LDM3IEBAIFVQREFURSB0ZW1wb3JhbF9ybmcKIFNF VCB2YWxpZF9hdCA9IENBU0UgV0hFTiBsb3dlcih2YWxpZF9hdCkgPSAnMjAxOC0wMS0wMScg VEhFTiBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpCiAgICAgICAgICAg ICAgICAgICAgIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDItMDEnIFRIRU4gZGF0 ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEnKSBFTkQKIFdIRVJFIGlkID0gJ1s2 LDcpJzsKKy0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBi dXQgc3RpbGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdvIHJlZmVyZW5jZXM6IG9uZSBmdWxm aWxsZWQgYnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRoZSBvdGhlciBmdWxmaWxsZWQgYnkg Ym90aCBwayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDMtMDEnKSksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDEnLCAn MjAxOC0wNi0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAx OC0wMS0xNScsICcyMDE4LTAyLTAxJyksICdbMSwyKScpLAorICAoJ1syLDMpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDUtMDEnKSwgJ1sxLDIpJyk7CitVUERBVEUgdGVt cG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4 LTAzLTAxJykKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEt MTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgZ3Jvd2luZyB0aGUgcmVmZXJlbmNlZCByYW5n ZSBpcyBmaW5lOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpCitXSEVSRSBpZCA9ICdbMSwyKScgQU5E IHZhbGlkX2F0IEA+ICcyMDE4LTAxLTI1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIHNocmlu a2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBhbmQgY2hhbmdpbmcgdGhlIGlkIGludmFsaWRh dGVzIHRoZSB3aG9sZSByYW5nZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1sy LDMpJywgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScp CitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0 ZTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2Zr IiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZh bGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDMtMDEpKSBpcyBzdGlsbCByZWZl cmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0gYSBQSyB1cGRh dGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIHJhbmdlOgor VVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzIsMyknCitXSEVSRSBpZCA9ICdbMSwy KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKK0VSUk9SOiAgdXBkYXRl IG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9y YWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsy MDE4LTAxLTAxLDIwMTgtMDMtMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUg InRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0gYSBQSyB1cGRhdGUgdGhhdCBsb3NlcyB0aW1l IGZyb20gYm90aCBlbmRzLCBidXQgaXMgc3RpbGwgdmFsaWQ6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzIsMyknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbNSw2KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJyksICdbMiwzKScpOworVVBE QVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUn LCAnMjAxOC0wMi0xNScpCitXSEVSRSBpZCA9ICdbMiwzKSc7CiAtLSBhIFBLIHVwZGF0ZSB0 aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKIFVQREFURSB0ZW1wb3Jh bF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDIt MDEnKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CkBAIC0yMTc4LDcgKzIyMTAsOCBAQCBERUxFVEUg RlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknOwogSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUwogICAoJ1s1LDYpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSkpLAog ICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIw MTgtMDMtMDEnKSkpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSksICdbNSw2KScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSksICdbNSw2KScpOwogVVBEQVRFIHRlbXBv cmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTYtMDItMDEnLCAnMjAxNi0wMy0wMScpKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAz LTAxJykpOwogLS0gQSBQSyB1cGRhdGUgc2xpZGluZyB0aGUgZWRnZSBiZXR3ZWVuIHR3byBy ZWZlcmVuY2VkIHJvd3M6CkBAIC0yMTkxLDYgKzIyMjQsMzcgQEAgVVBEQVRFIHRlbXBvcmFs X21sdHJuZwogU0VUIHZhbGlkX2F0ID0gQ0FTRSBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9ICcy MDE4LTAxLTAxJyBUSEVOIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAxLTA1JykpCiAgICAgICAgICAgICAgICAgICAgIFdIRU4gbG93ZXIodmFsaWRf YXQpID0gJzIwMTgtMDItMDEnIFRIRU4gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTA1JywgJzIwMTgtMDMtMDEnKSkgRU5ECiBXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBh IFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgbXVsdGlyYW5nZSBidXQgc3Rp bGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdvIHJlZmVyZW5jZXM6IG9uZSBmdWxmaWxsZWQg YnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRoZSBvdGhlciBmdWxmaWxsZWQgYnkgYm90aCBw ayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkpLAorICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDYtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTE1JywgJzIwMTgtMDItMDEnKSksICdbMSwyKScpLAorICAoJ1syLDMpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDUtMDEnKSksICdbMSwyKScp OworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpKQorV0hFUkUgaWQgPSAn WzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBLIHVw ZGF0ZSBncm93aW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2UgaXMgZmluZToKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkKK1dIRVJFIGlkID0gJ1sxLDIpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMjUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgc2hy aW5raW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2UgYW5kIGNoYW5naW5nIHRoZSBpZCBp bnZhbGlkYXRlcyB0aGUgd2hvbGUgbXVsdGlyYW5nZToKK1VQREFURSB0ZW1wb3JhbF9tbHRy bmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpKQorV0hFUkUgaWQgPSAnWzEsMiknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CitFUlJPUjogIHVwZGF0ZSBvciBk ZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9 KFsxLDIpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMy0wMSl9KSBpcyBzdGlsbCByZWZlcmVuY2Vk IGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0gYSBQSyB1cGRh dGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIG11bHRpcmFu Z2U6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbMiwzKScKK1dIRVJFIGlk ID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworRVJST1I6 ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVz IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAxLTAxLDIwMTgtMDMtMDEpfSkgaXMgc3Rp bGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4K Ky0tIGEgUEsgdXBkYXRlIHRoYXQgbG9zZXMgdGltZSBmcm9tIGJvdGggZW5kcywgYnV0IGlz IHN0aWxsIHZhbGlkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUworICAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1s1LDYp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMDEn KSksICdbMiwzKScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScpKQor V0hFUkUgaWQgPSAnWzIsMyknOwogLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNl IGJvdGggYXJlIHJlZmVyZW5jZWQ6CiBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxp ZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAy LTAxJykpCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4IGNlNTgxNzFiYzM1Li44 ZjQ3Mjg2N2UyOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9v dmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFw cy5zcWwKQEAgLTEyMzUsNyArMTIzNSw4IEBAIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBX SEVSRSBpZCA9ICdbNSw2KSc7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTCiAgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpKSwKICAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4 LTAzLTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1 JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKIFVQREFU RSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywg JzIwMTYtMDMtMDEnKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CiAtLSBBIFBLIHVwZGF0ZSBzbGlk aW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93czoKQEAgLTEyNDgsNiAr MTI0OSwzMyBAQCBVUERBVEUgdGVtcG9yYWxfcm5nCiBTRVQgdmFsaWRfYXQgPSBDQVNFIFdI RU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDEtMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDEtMDUnKQogICAgICAgICAgICAgICAgICAgICBXSEVOIGxvd2Vy KHZhbGlkX2F0KSA9ICcyMDE4LTAyLTAxJyBUSEVOIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScs ICcyMDE4LTAzLTAxJykgRU5ECiBXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBhIFBLIHVwZGF0 ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgYnV0IHN0aWxsIHZhbGlkOgorLS0g VGhlcmUgYXJlIHR3byByZWZlcmVuY2VzOiBvbmUgZnVsZmlsbGVkIGJ5IHRoZSBmaXJzdCBw ayByb3csCistLSB0aGUgb3RoZXIgZnVsZmlsbGVkIGJ5IGJvdGggcGsgcm93cyBjb21iaW5l ZC4KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAzLTAxJykpLAorICAo J1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDYtMDEnKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0w MScpLCAnWzEsMiknKSwKKyAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcy MDE4LTA1LTAxJyksICdbMSwyKScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpCitXSEVSRSBpZCA9 ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsg dXBkYXRlIGdyb3dpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgaXMgZmluZToKK1VQREFURSB0 ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDMtMDEnKQorV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0w MS0yNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQg cmFuZ2UgYW5kIGNoYW5naW5nIHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgcmFuZ2U6 CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbMiwzKScsIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDMtMDEnKQorV0hFUkUgaWQgPSAnWzEsMikn IEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBj aGFuZ2luZyBvbmx5IHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgcmFuZ2U6CitVUERB VEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbMiwzKScKK1dIRVJFIGlkID0gJ1sxLDIpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgdGhh dCBsb3NlcyB0aW1lIGZyb20gYm90aCBlbmRzLCBidXQgaXMgc3RpbGwgdmFsaWQ6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzIsMykn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMK KyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJyksICdb MiwzKScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScpCitXSEVSRSBpZCA9ICdbMiwzKSc7CiAtLSBh IFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKIFVQ REFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAx JywgJzIwMTYtMDItMDEnKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CkBAIC0xNjkyLDcgKzE3MjAs OCBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknOwog SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUwogICAo J1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDItMDEnKSkpLAogICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAyLTAxJywgJzIwMTgtMDMtMDEnKSkpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSks ICdbNSw2KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSksICdbNSw2KScpOwog VVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpKQogV0hFUkUgaWQgPSAnWzUs NiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0w MScsICcyMDE4LTAzLTAxJykpOwogLS0gQSBQSyB1cGRhdGUgc2xpZGluZyB0aGUgZWRnZSBi ZXR3ZWVuIHR3byByZWZlcmVuY2VkIHJvd3M6CkBAIC0xNzA1LDYgKzE3MzQsMzMgQEAgVVBE QVRFIHRlbXBvcmFsX21sdHJuZwogU0VUIHZhbGlkX2F0ID0gQ0FTRSBXSEVOIGxvd2VyKHZh bGlkX2F0KSA9ICcyMDE4LTAxLTAxJyBUSEVOIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpCiAgICAgICAgICAgICAgICAgICAgIFdIRU4g bG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDItMDEnIFRIRU4gZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEnKSkgRU5ECiBXSEVSRSBpZCA9ICdb Niw3KSc7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgbXVsdGly YW5nZSBidXQgc3RpbGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdvIHJlZmVyZW5jZXM6IG9u ZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRoZSBvdGhlciBmdWxmaWxs ZWQgYnkgYm90aCBwayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkpLAorICAoJ1sxLDIpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDYtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMDEnKSksICdbMSwyKScpLAorICAoJ1syLDMp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDUtMDEn KSksICdbMSwyKScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpKQor V0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7 CistLSBhIFBLIHVwZGF0ZSBncm93aW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2UgaXMg ZmluZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkKK1dIRVJFIGlk ID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMjUnOjpkYXRlOworLS0gYSBQ SyB1cGRhdGUgc2hyaW5raW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2UgYW5kIGNoYW5n aW5nIHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgbXVsdGlyYW5nZToKK1VQREFURSB0 ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQgPSBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpKQorV0hFUkUgaWQg PSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBL IHVwZGF0ZSBjaGFuZ2luZyBvbmx5IHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgbXVs dGlyYW5nZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1syLDMpJworV0hF UkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7Cist LSBhIFBLIHVwZGF0ZSB0aGF0IGxvc2VzIHRpbWUgZnJvbSBib3RoIGVuZHMsIGJ1dCBpcyBz dGlsbCB2YWxpZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMKKyAgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbNSw2KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJykp LCAnWzIsMyknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMTUnKSkKK1dI RVJFIGlkID0gJ1syLDMpJzsKIC0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBi b3RoIGFyZSByZWZlcmVuY2VkOgogVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRf YXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0w MScpKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwotLSAKMi40Mi4wCgo= --------------OnvqRywVNIjsiZuvTo32rvFz Content-Type: text/x-patch; charset=UTF-8; name="v45-0004-Fix-RESTRICT-temporal-foreign-keys-when-the-refe.patch" Content-Disposition: attachment; filename*0="v45-0004-Fix-RESTRICT-temporal-foreign-keys-when-the-refe.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1MjA0ZGJlNTY0OGVlOWY5MjIzNTRhM2Y1MGEzMjg2NTJmY2EwNmE5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFR1ZSwgMTIgTm92IDIwMjQgMDk6MTk6NDQgLTA4 MDAKU3ViamVjdDogW1BBVENIIHY0NSA0LzhdIEZpeCBSRVNUUklDVCB0ZW1wb3JhbCBmb3Jl aWduIGtleXMgd2hlbiB0aGUKIHJlZmVyZW5jZWQgZW5kcG9pbnRzIGNoYW5nZQoKQSBSRVNU SUNUIGZvcmVpZ24ga2V5IG11c3QgZmFpbCBpZiB0aGUgcmVmZXJlbmNlZCBrZXkgY2hhbmdl cy4gQQp0ZW1wb3JhbCBSRVNUUklDVCBmb3JlaWduIGtleSBzaG91bGQgZmFpbCBpZiB0aGUg a2V5IGNoYW5nZXMgZm9yIGEgc3Bhbgp0aGF0IGlzIHJlZmVyZW5jZWQuIENoYW5naW5nIHRo ZSBrZXkgZm9yIGFuIHVucmVmZXJlbmNlZCBzcGFuIGlzIG9rYXksCmV2ZW4gaWYgdGhhdCBy b3cgaXMgcmVmZXJlbmNlZCBkdXJpbmcgc29tZSBwb3J0aW9uIG9mIGl0cyBzcGFuIHRoYXQK ZGlkbid0IGNoYW5nZS4gVGhlcmVmb3JlIHdlIGhhdmUgdG8gY29tcHV0ZSB3aGljaCBwYXJ0 KHMpIHdlcmUgbG9zdCwgYW5kCmZhaWwgaWYgd2UgZmluZCBhbnkgcmVmZXJlbmNlcyBvdmVy bGFwcGluZyB0aG9zZSBwYXJ0cy4gV2UgY2FuIHN0aWxsIHVzZQp0aGUgc2FtZSBTUUwgYXMg bm9ybWFsLCBiZWNhdXNlIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSBQRVJJT0QgcGFyYW1ldGVy CndlIHNlYXJjaCBmb3IuIFdlIGNhbiBjYWxsIHdpdGhvdXRfcG9ydGlvbiB0byBnZXQgdGhl IGxvc3QgcGFydHM6IHRoZXkKYXJlIG9sZHNsb3QucGtwZXJpb2QgLSBuZXdzbG90LnBrcGVy aW9kLiBUaGlzIGNvbW1pdCBhZGRzIGNvZGUgZm9yIHRoYXQKdG8gcmlfcmVzdHJpY3QsIGFs b25nIHdpdGggdGVzdHMuCgpBdXRob3I6IFBhdWwgSnVuZ3dpcnRoCi0tLQogc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMgICAgICAgICAgIHwgIDI1ICsrLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMv YmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYyAgICAgICAgICAgfCAxNTYgKysrKysr KysrKysrKysrKy0tCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCAgICAg ICAgICAgfCAgIDkgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMu b3V0ICAgICB8ICA2OCArKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9v dmVybGFwcy5zcWwgICAgIHwgIDYwICsrKysrKy0KIDYgZmlsZXMgY2hhbmdlZCwgMjkwIGlu c2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfY29uc3RyYWludC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25z dHJhaW50LmMKaW5kZXggZmU3NTRlY2QxZDguLjQ2ODEwMTliOWY5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX2NvbnN0cmFpbnQuYwpAQCAtMTYwMCw5ICsxNjAwLDkgQEAgRGVjb25zdHJ1 Y3RGa0NvbnN0cmFpbnRSb3coSGVhcFR1cGxlIHR1cGxlLCBpbnQgKm51bWZrcywKIH0KIAog LyoKLSAqIEZpbmRGa1BlcmlvZE9wZXJzIC0KKyAqIEZpbmRGa1BlcmlvZE9wZXJzQW5kUHJv Y3MgLQogICoKLSAqIExvb2tzIHVwIHRoZSBvcGVyYXRvciBvaWRzIHVzZWQgZm9yIHRoZSBQ RVJJT0QgcGFydCBvZiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LgorICogTG9va3MgdXAgdGhl IG9wZXJhdG9yIGFuZCBwcm9jZWR1cmUgb2lkcyB1c2VkIGZvciB0aGUgUEVSSU9EIHBhcnQg b2YgYSB0ZW1wb3JhbCBmb3JlaWduIGtleS4KICAqIFRoZSBvcGNsYXNzIHNob3VsZCBiZSB0 aGUgb3BjbGFzcyBvZiB0aGF0IFBFUklPRCBlbGVtZW50LgogICogRXZlcnl0aGluZyBlbHNl IGlzIGFuIG91dHB1dDogY29udGFpbmVkYnlvcGVyb2lkIGlzIHRoZSBDb250YWluZWRCeSBv cGVyYXRvciBmb3IKICAqIHR5cGVzIG1hdGNoaW5nIHRoZSBQRVJJT0QgZWxlbWVudC4KQEAg LTE2MTEsMTIgKzE2MTEsMTYgQEAgRGVjb25zdHJ1Y3RGa0NvbnN0cmFpbnRSb3coSGVhcFR1 cGxlIHR1cGxlLCBpbnQgKm51bWZrcywKICAqIFRoYXQgd2F5IGZvcmVpZ24ga2V5cyBjYW4g Y29tcGFyZSBma2F0dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikuCiAgKiBpbnRlcnNlY3RvcGVy b2lkIGlzIHVzZWQgYnkgTk8gQUNUSU9OIGNvbnN0cmFpbnRzIHRvIHRyaW0gdGhlIHJhbmdl IGJlaW5nIGNvbnNpZGVyZWQKICAqIHRvIGp1c3Qgd2hhdCB3YXMgdXBkYXRlZC9kZWxldGVk LgorICogd2l0aG91dHBvcnRpb25vaWQgaXMgYSBzZXQtcmV0dXJuaW5nIGZ1bmN0aW9uIGNv bXB1dGluZworICogdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBvbmUgcmFuZ2UgYW5kIGFub3Ro ZXIsCisgKiByZXR1cm5pbmcgZWFjaCByZXN1bHQgcmFuZ2UgaW4gYSBzZXBhcmF0ZSByb3cu CiAgKi8KIHZvaWQKLUZpbmRGS1BlcmlvZE9wZXJzKE9pZCBvcGNsYXNzLAotCQkJCSAgT2lk ICpjb250YWluZWRieW9wZXJvaWQsCi0JCQkJICBPaWQgKmFnZ2VkY29udGFpbmVkYnlvcGVy b2lkLAotCQkJCSAgT2lkICppbnRlcnNlY3RvcGVyb2lkKQorRmluZEZLUGVyaW9kT3BlcnNB bmRQcm9jcyhPaWQgb3BjbGFzcywKKwkJCQkJCSAgT2lkICpjb250YWluZWRieW9wZXJvaWQs CisJCQkJCQkgIE9pZCAqYWdnZWRjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkgIE9pZCAq aW50ZXJzZWN0b3Blcm9pZCwKKwkJCQkJCSAgT2lkICp3aXRob3V0cG9ydGlvbm9pZCkKIHsK IAlPaWQJCQlvcGZhbWlseSA9IEludmFsaWRPaWQ7CiAJT2lkCQkJb3BjaW50eXBlID0gSW52 YWxpZE9pZDsKQEAgLTE2NjgsNiArMTY3MiwxNSBAQCBGaW5kRktQZXJpb2RPcGVycyhPaWQg b3BjbGFzcywKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJVbmV4cGVjdGVkIG9wY2lu dHlwZTogJXUiLCBvcGNpbnR5cGUpOwogCX0KKworCSp3aXRob3V0cG9ydGlvbm9pZCA9IElu dmFsaWRPaWQ7CisJKndpdGhvdXRwb3J0aW9ub2lkID0gZ2V0X29wZmFtaWx5X3Byb2Mob3Bm YW1pbHksIG9wY2ludHlwZSwgb3BjaW50eXBlLCBHSVNUX1dJVEhPVVRfUE9SVElPTl9QUk9D KTsKKwlpZiAoIU9pZElzVmFsaWQoKndpdGhvdXRwb3J0aW9ub2lkKSkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJZXJy bXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYSB3aXRob3V0X292ZXJsYXBzIHN1cHBvcnQgZnVu Y3Rpb24gZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShvcGNpbnR5cGUpKSwKKwkJCQll cnJoaW50KCJEZWZpbmUgYSB3aXRob3V0X292ZXJsYXBzIHN1cHBvcnQgZnVuY3Rpb24gZm9y IG9wZXJhdG9yIGNsYXNzIFwiJWRcIiBmb3IgYWNjZXNzIG1ldGhvZCBcIiVzXCIuIiwKKwkJ CQkJCW9wY2xhc3MsICJnaXN0IikpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYwppbmRleCAxZjhlMzgxYmMwYS4uZDIwY2IwZjllNmUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3RhYmxlY21kcy5jCkBAIC0xMDIyNSw5ICsxMDIyNSwxMSBAQCBBVEFkZEZvcmVpZ25LZXlD b25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRp b24gcmVsLAogCQlPaWQJCQlwZXJpb2RvcGVyb2lkOwogCQlPaWQJCQlhZ2dlZHBlcmlvZG9w ZXJvaWQ7CiAJCU9pZAkJCWludGVyc2VjdG9wZXJvaWQ7CisJCU9pZAkJCXdpdGhvdXRvdmVy bGFwc29pZDsKIAotCQlGaW5kRktQZXJpb2RPcGVycyhvcGNsYXNzZXNbbnVtcGtzIC0gMV0s ICZwZXJpb2RvcGVyb2lkLCAmYWdnZWRwZXJpb2RvcGVyb2lkLAotCQkJCQkJICAmaW50ZXJz ZWN0b3Blcm9pZCk7CisJCUZpbmRGS1BlcmlvZE9wZXJzQW5kUHJvY3Mob3BjbGFzc2VzW251 bXBrcyAtIDFdLCAmcGVyaW9kb3Blcm9pZCwKKwkJCQkJCQkJICAmYWdnZWRwZXJpb2RvcGVy b2lkLCAmaW50ZXJzZWN0b3Blcm9pZCwKKwkJCQkJCQkJICAmd2l0aG91dG92ZXJsYXBzb2lk KTsKIAl9CiAKIAkvKiBGaXJzdCwgY3JlYXRlIHRoZSBjb25zdHJhaW50IGNhdGFsb2cgZW50 cnkgaXRzZWxmLiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3Ry aWdnZXJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwppbmRleCBk NmI1ZTQzMTM0ZC4uMDAyYmQwMjU4MmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9yaV90cmlnZ2Vycy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmln Z2Vycy5jCkBAIC0xMzAsNiArMTMwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUklfQ29uc3RyYWlu dEluZm8KIAlPaWQJCQlwZXJpb2RfY29udGFpbmVkX2J5X29wZXI7CS8qIGFueXJhbmdlIDxA IGFueXJhbmdlICovCiAJT2lkCQkJYWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOyAv KiBma2F0dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikgKi8KIAlPaWQJCQlwZXJpb2RfaW50ZXJz ZWN0X29wZXI7CS8qIGFueXJhbmdlICogYW55cmFuZ2UgKi8KKwlPaWQJCQl3aXRob3V0X3Bv cnRpb25fcHJvYzsJLyogYW55cmFuZ2UgLSBhbnlyYW5nZSBTUkYgKi8KIAlkbGlzdF9ub2Rl CXZhbGlkX2xpbms7CQkvKiBMaW5rIGluIGxpc3Qgb2YgdmFsaWQgZW50cmllcyAqLwogfSBS SV9Db25zdHJhaW50SW5mbzsKIApAQCAtMjA3LDcgKzIwOCw3IEBAIHN0YXRpYyB2b2lkIHJp X0J1aWxkUXVlcnlLZXkoUklfUXVlcnlLZXkgKmtleSwKIAkJCQkJCQkgY29uc3QgUklfQ29u c3RyYWludEluZm8gKnJpaW5mbywKIAkJCQkJCQkgaW50MzIgY29uc3RyX3F1ZXJ5bm8pOwog c3RhdGljIGJvb2wgcmlfS2V5c0VxdWFsKFJlbGF0aW9uIHJlbCwgVHVwbGVUYWJsZVNsb3Qg Km9sZHNsb3QsIFR1cGxlVGFibGVTbG90ICpuZXdzbG90LAotCQkJCQkJIGNvbnN0IFJJX0Nv bnN0cmFpbnRJbmZvICpyaWluZm8sIGJvb2wgcmVsX2lzX3BrKTsKKwkJCQkJCSBjb25zdCBS SV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLCBib29sIHJlbF9pc19waywgYm9vbCBza2lwX3Bl cmlvZCk7CiBzdGF0aWMgYm9vbCByaV9Db21wYXJlV2l0aENhc3QoT2lkIGVxX29wciwgT2lk IHR5cGVpZCwgT2lkIGNvbGxpZCwKIAkJCQkJCQkgICBEYXR1bSBsaHMsIERhdHVtIHJocyk7 CiAKQEAgLTIyOSw2ICsyMzAsNyBAQCBzdGF0aWMgYm9vbCByaV9QZXJmb3JtQ2hlY2soY29u c3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywKIAkJCQkJCQlSSV9RdWVyeUtleSAqcWtl eSwgU1BJUGxhblB0ciBxcGxhbiwKIAkJCQkJCQlSZWxhdGlvbiBma19yZWwsIFJlbGF0aW9u IHBrX3JlbCwKIAkJCQkJCQlUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdCwgVHVwbGVUYWJsZVNs b3QgKm5ld3Nsb3QsCisJCQkJCQkJaW50IHBlcmlvZFBhcmFtLCBEYXR1bSBwZXJpb2QsCiAJ CQkJCQkJYm9vbCBkZXRlY3ROZXdSb3dzLCBpbnQgZXhwZWN0X09LKTsKIHN0YXRpYyB2b2lk IHJpX0V4dHJhY3RWYWx1ZXMoUmVsYXRpb24gcmVsLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwK IAkJCQkJCQkgY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywgYm9vbCByZWxfaXNf cGssCkBAIC00NTAsNiArNDUyLDcgQEAgUklfRktleV9jaGVjayhUcmlnZ2VyRGF0YSAqdHJp Z2RhdGEpCiAJcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXksIHFwbGFuLAogCQkJCQlm a19yZWwsIHBrX3JlbCwKIAkJCQkJTlVMTCwgbmV3c2xvdCwKKwkJCQkJLTEsIChEYXR1bSkg MCwKIAkJCQkJcGtfcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05F RF9UQUJMRSwKIAkJCQkJU1BJX09LX1NFTEVDVCk7CiAKQEAgLTYxNCw2ICs2MTcsNyBAQCBy aV9DaGVja19Qa19NYXRjaChSZWxhdGlvbiBwa19yZWwsIFJlbGF0aW9uIGZrX3JlbCwKIAly ZXN1bHQgPSByaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJCQkJ IGZrX3JlbCwgcGtfcmVsLAogCQkJCQkJCSBvbGRzbG90LCBOVUxMLAorCQkJCQkJCSAtMSwg KERhdHVtKSAwLAogCQkJCQkJCSB0cnVlLAkvKiB0cmVhdCBsaWtlIHVwZGF0ZSAqLwogCQkJ CQkJCSBTUElfT0tfU0VMRUNUKTsKIApAQCAtNzExLDggKzcxNSwxOCBAQCByaV9yZXN0cmlj dChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0aW9uKQogCVJlbGF0aW9u CWZrX3JlbDsKIAlSZWxhdGlvbglwa19yZWw7CiAJVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3Q7 CisJVHVwbGVUYWJsZVNsb3QgKm5ld3Nsb3Q7CiAJUklfUXVlcnlLZXkgcWtleTsKIAlTUElQ bGFuUHRyCXFwbGFuOworCUF0dHJOdW1iZXIJcGtwZXJpb2RhdHRubyA9IEludmFsaWRBdHRy TnVtYmVyOworCUF0dHJOdW1iZXIJZmtwZXJpb2RhdHRubyA9IEludmFsaWRBdHRyTnVtYmVy OworCWludAkJCXRhcmdldFJhbmdlUGFyYW0gPSAtMTsKKwlEYXR1bQkJdGFyZ2V0UmFuZ2Ug PSAoRGF0dW0pIDA7CisJRm1nckluZm8JZmxpbmZvOworCVJldHVyblNldEluZm8JcnNpOwor CUxPQ0FMX0ZDSU5GTyhmY2luZm8sIDIpOworCWJvb2wJCW11bHRpcGxlbG9zdCA9IGZhbHNl OworCWJvb2wJCWZpbmlzaGVkID0gZmFsc2U7CiAKIAlyaWluZm8gPSByaV9GZXRjaENvbnN0 cmFpbnRJbmZvKHRyaWdkYXRhLT50Z190cmlnZ2VyLAogCQkJCQkJCQkJdHJpZ2RhdGEtPnRn X3JlbGF0aW9uLCB0cnVlKTsKQEAgLTcyNiw2ICs3NDAsNyBAQCByaV9yZXN0cmljdChUcmln Z2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0aW9uKQogCWZrX3JlbCA9IHRhYmxl X29wZW4ocmlpbmZvLT5ma19yZWxpZCwgUm93U2hhcmVMb2NrKTsKIAlwa19yZWwgPSB0cmln ZGF0YS0+dGdfcmVsYXRpb247CiAJb2xkc2xvdCA9IHRyaWdkYXRhLT50Z190cmlnc2xvdDsK KwluZXdzbG90ID0gdHJpZ2RhdGEtPnRnX25ld3Nsb3Q7CiAKIAkvKgogCSAqIElmIGFub3Ro ZXIgUEsgcm93IG5vdyBleGlzdHMgcHJvdmlkaW5nIHRoZSBvbGQga2V5IHZhbHVlcywgd2Ug c2hvdWxkCkBAIC03NDMsNiArNzU4LDEyIEBAIHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRhICp0 cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24pCiAJCXJldHVybiBQb2ludGVyR2V0RGF0dW0o TlVMTCk7CiAJfQogCisJaWYgKHJpaW5mby0+aGFzcGVyaW9kKQorCXsKKwkJcGtwZXJpb2Rh dHRubyA9IHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV07CisJCWZrcGVy aW9kYXR0bm8gPSByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdOworCX0K KwogCVNQSV9jb25uZWN0KCk7CiAKIAkvKgpAQCAtNzg5LDYgKzgxMCwxNiBAQCByaV9yZXN0 cmljdChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0aW9uKQogCQkgKiBX ZSBuZWVkIHRoZSBjb2FsZXNjZSBpbiBjYXNlIHRoZSBmaXJzdCBzdWJxdWVyeSByZXR1cm5z IG5vIHJvd3MuCiAJCSAqIFdlIG5lZWQgdGhlIHNlY29uZCBzdWJxdWVyeSBiZWNhdXNlIEZP UiBLRVkgU0hBUkUgZG9lc24ndCBzdXBwb3J0CiAJCSAqIGFnZ3JlZ2F0ZSBxdWVyaWVzLgor CQkgKgorCQkgKiBGb3IgUkVTVFJJQ1Qga2V5cyB3ZSBjYW4ndCBxdWVyeSBwa3RhYmxlLCBz byBpbnN0ZWFkIHdlIHVzZSB0aGUgb2xkCisJCSAqIGFuZCBuZXcgcGVyaW9kcyB0byBzZWUg d2hhdCB3YXMgcmVtb3ZlZCwgYW5kIGxvb2sgZm9yIHJlZmVyZW5jZXMKKwkJICogbWF0Y2hp bmcgdGhhdC4gSWYgdGhlIHNjYWxhciBrZXkgcGFydCBjaGFuZ2VkLCB0aGVuIHRoaXMgaXMK KwkJICogKHdoZXJlICRuIGlzIHRoZSBvbGQgcGVyaW9kIGFuZCAkMm4gdGhlIG5ldyk6CisJ CSAqICAgJG4gJiYgeC5ma3BlcmlvZAorCQkgKiBCdXQgaWYgdGhlIHNjYWxhciBrZXkgcGFy dCBkaWRuJ3QgY2hhbmdlLCB0aGVuIHdlIG9ubHkgbG9zdCBwYXJ0IG9mCisJCSAqIHRoZSB0 aW1lIHNwYW4sIHNvIHdlIHNob3VsZCBsb29rIGZvcjoKKwkJICogICAoU0VMRUNUIHJhbmdl X2FnZyhyKSBGUk9NIHdpdGhvdXRfcG9ydGlvbigkbiwgJDJuKSB3byhyKSkKKwkJICogICAg ICYmIHguZmtwZXJpb2QKIAkJICogLS0tLS0tLS0tLQogCQkgKi8KIAkJaW5pdFN0cmluZ0lu Zm8oJnF1ZXJ5YnVmKTsKQEAgLTgyNCwxNCArODU1LDE0IEBAIHJpX3Jlc3RyaWN0KFRyaWdn ZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24pCiAJCSAqLwogCQlpZiAocmlp bmZvLT5oYXNwZXJpb2QgJiYgaXNfbm9fYWN0aW9uKQogCQl7Ci0JCQlPaWQJCQkJcGtfcGVy aW9kX3R5cGUgPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbcmlpbmZv LT5ua2V5cyAtIDFdKTsKLQkJCU9pZAkJCQlma19wZXJpb2RfdHlwZSA9IFJJQXR0VHlwZShm a19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pOworCQkJT2lk CQkJCXBrX3BlcmlvZF90eXBlID0gUklBdHRUeXBlKHBrX3JlbCwgcGtwZXJpb2RhdHRubyk7 CisJCQlPaWQJCQkJZmtfcGVyaW9kX3R5cGUgPSBSSUF0dFR5cGUoZmtfcmVsLCBma3Blcmlv ZGF0dG5vKTsKIAkJCVN0cmluZ0luZm9EYXRhCWludGVyc2VjdGJ1ZjsKIAkJCVN0cmluZ0lu Zm9EYXRhCXJlcGxhY2VtZW50c2J1ZjsKIAkJCWNoYXIgKnBrX29ubHkgPSBwa19yZWwtPnJk X3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFID8KIAkJCQkiIiA6 ICJPTkxZICI7CiAKLQkJCXF1b3RlT25lTmFtZShhdHRuYW1lLCBSSUF0dE5hbWUoZmtfcmVs LCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKSk7CisJCQlxdW90ZU9u ZU5hbWUoYXR0bmFtZSwgUklBdHROYW1lKGZrX3JlbCwgZmtwZXJpb2RhdHRubykpOwogCQkJ c3ByaW50ZihwYXJhbW5hbWUsICIkJWQiLCByaWluZm8tPm5rZXlzKTsKIAogCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZygmcXVlcnlidWYsICIgQU5EIE5PVCBjb2FsZXNjZSgiKTsKQEAg LTg0OSw3ICs4ODAsNyBAQCByaV9yZXN0cmljdChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJv b2wgaXNfbm9fYWN0aW9uKQogCQkJaW5pdFN0cmluZ0luZm8oJnJlcGxhY2VtZW50c2J1Zik7 CiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZyZXBsYWNlbWVudHNidWYsICIoU0VMRUNU IHBnX2NhdGFsb2cucmFuZ2VfYWdnKHIpIEZST00gIik7CiAKLQkJCXF1b3RlT25lTmFtZShw ZXJpb2RhdHRuYW1lLCBSSUF0dE5hbWUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbcmlp bmZvLT5ua2V5cyAtIDFdKSk7CisJCQlxdW90ZU9uZU5hbWUocGVyaW9kYXR0bmFtZSwgUklB dHROYW1lKHBrX3JlbCwgcGtwZXJpb2RhdHRubykpOwogCQkJcXVvdGVSZWxhdGlvbk5hbWUo cGtyZWxuYW1lLCBwa19yZWwpOwogCQkJYXBwZW5kU3RyaW5nSW5mbygmcmVwbGFjZW1lbnRz YnVmLCAiKFNFTEVDVCB5LiVzIHIgRlJPTSAlcyVzIHkiLAogCQkJCQkJCSBwZXJpb2RhdHRu YW1lLCBwa19vbmx5LCBwa3JlbG5hbWUpOwpAQCAtODg5LDEyICs5MjAsODUgQEAgcmlfcmVz dHJpY3QoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX25vX2FjdGlvbikKIAogCS8q CiAJICogV2UgaGF2ZSBhIHBsYW4gbm93LiBSdW4gaXQgdG8gY2hlY2sgZm9yIGV4aXN0aW5n IHJlZmVyZW5jZXMuCisJICoKKwkgKiBOb3JtYWxseSB3ZSBvbmx5IGxvb3Agb25jZSBoZXJl LiBCdXQgaWYKKwkgKiB3ZSBoYXZlIGEgUkVTVFJJQ1QgY29uc3RyYWludCB3aXRoIGEgUEVS SU9ELAorCSAqIHdlIG11c3Qgb25seSBjb25zaWRlciB0aGUgdGltZXNwYW4gdGhhdCB3YXMg bG9zdC4KKwkgKgorCSAqIElmIHRoZSBzY2FsYXIga2V5IHBhcnQgd2FzIFVQREFURWQsCisJ ICogdGhlbiBhbGwgb2Ygb2xkc2xvdC5wa3BlcmlvZCB3YXMgbG9zdAorCSAqICh3aGV0aGVy IHRoZSBlbmRwb2ludHMgY2hhbmdlZCBvciBub3QpLgorCSAqIFRoYXQncyB3aGF0IHdlIGFs cmVhZHkgY2hlY2sgYnkgZGVmYXVsdC4KKwkgKgorCSAqIE90aGVyd2lzZSBvbmx5IG9sZHNs b3QucGtwZXJpb2QgLSBuZXdzbG90LnBrcGVyaW9kIHdhcyBsb3N0LgorCSAqIFRoYXQgbWF5 IGJlIG1vcmUgdGhhbiBvbmUgcmFuZ2UsIHNvIHdlIHVzZSB0aGUKKwkgKiB3aXRob3V0X3Bv cnRpb24gc2V0LXJldHVybmluZyBmdW5jdGlvbiBhbmQgbG9vcAorCSAqIG92ZXIgaXRzIHJl c3VsdHMuIEl0IGFsc28gbWF5IGJlIGVtcHR5LAorCSAqIG1lYW5pbmcgbm90aGluZyB3YXMg bG9zdCwgYW5kIG5vIGNoZWNrIGlzIHJlcXVpcmVkLgorCSAqIFdlIHNob3VsZG4ndCBiZSBo ZXJlIGlmIG5laXRoZXIgdGhlIHNjYWxhciBub3IgUEVSSU9EIHBhcnQgY2hhbmdlZCwKKwkg KiBidXQgaXQncyBlYXN5IHRvIHN1cHBvcnQgYW55d2F5LgorCSAqCisJICogRm9yIGEgREVM RVRFLCBvbGRzbG90LnBrcGVyaW9kIHdhcyBsb3N0LAorCSAqIHdoaWNoIGlzIHdoYXQgd2Ug Y2hlY2sgZm9yIGJ5IGRlZmF1bHQuCiAJICovCi0JcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywg JnFrZXksIHFwbGFuLAotCQkJCQlma19yZWwsIHBrX3JlbCwKLQkJCQkJb2xkc2xvdCwgTlVM TCwKLQkJCQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCi0JCQkJCVNQSV9P S19TRUxFQ1QpOworCWlmIChyaWluZm8tPmhhc3BlcmlvZCAmJiAhaXNfbm9fYWN0aW9uKQor CXsKKwkJaWYgKFRSSUdHRVJfRklSRURfQllfVVBEQVRFKHRyaWdkYXRhLT50Z19ldmVudCkK KwkJCSYmIHJpX0tleXNFcXVhbChwa19yZWwsIG9sZHNsb3QsIG5ld3Nsb3QsIHJpaW5mbywg dHJ1ZSwgdHJ1ZSkpCisJCXsKKwkJCW11bHRpcGxlbG9zdCA9IHRydWU7CisKKwkJCWZtZ3Jf aW5mbyhyaWluZm8tPndpdGhvdXRfcG9ydGlvbl9wcm9jLCAmZmxpbmZvKTsKKwkJCXJzaS50 eXBlID0gVF9SZXR1cm5TZXRJbmZvOworCQkJcnNpLmVjb250ZXh0ID0gQ3JlYXRlU3RhbmRh bG9uZUV4cHJDb250ZXh0KCk7CisJCQlyc2kuZXhwZWN0ZWREZXNjID0gTlVMTDsKKwkJCXJz aS5hbGxvd2VkTW9kZXMgPSAoaW50KSAoU0ZSTV9WYWx1ZVBlckNhbGwpOworCQkJcnNpLnJl dHVybk1vZGUgPSBTRlJNX1ZhbHVlUGVyQ2FsbDsKKwkJCXJzaS5zZXRSZXN1bHQgPSBOVUxM OworCQkJcnNpLnNldERlc2MgPSBOVUxMOworCisJCQlJbml0RnVuY3Rpb25DYWxsSW5mb0Rh dGEoKmZjaW5mbywgJmZsaW5mbywgMiwgSW52YWxpZE9pZCwgTlVMTCwgKE5vZGUgKikgJnJz aSk7CisJCQlmY2luZm8tPmFyZ3NbMF0udmFsdWUgPSBzbG90X2dldGF0dHIob2xkc2xvdCwg cGtwZXJpb2RhdHRubywKKwkJCQkJCQkJCQkJCSAmZmNpbmZvLT5hcmdzWzBdLmlzbnVsbCk7 CisJCQlmY2luZm8tPmFyZ3NbMV0udmFsdWUgPSBzbG90X2dldGF0dHIobmV3c2xvdCwgcGtw ZXJpb2RhdHRubywKKwkJCQkJCQkJCQkJCSAmZmNpbmZvLT5hcmdzWzFdLmlzbnVsbCk7CisK KwkJCXRhcmdldFJhbmdlUGFyYW0gPSByaWluZm8tPm5rZXlzOworCQl9CisJfQorCisJd2hp bGUgKCFmaW5pc2hlZCkKKwl7CisJCWlmIChtdWx0aXBsZWxvc3QpCisJCXsKKwkJCS8qIENv bXB1dGUgYSBzcGFuIHRoYXQgd2FzIGFjdHVhbGx5IGxvc3QuICovCisJCQl0YXJnZXRSYW5n ZSA9IEZ1bmN0aW9uQ2FsbEludm9rZShmY2luZm8pOworCisJCQkvKgorCQkJICogSWYgd2Ug aGF2ZSBubyBtb3JlIGxvc3Qgc3BhbnMgdG8gY2hlY2ssIHdlJ3JlIGRvbmUuCisJCQkgKiBJ ZiBubyBzcGFuIHdhcyBsb3N0LCB3ZSBkb24ndCBldmVuIG5lZWQgdG8gY2hlY2sgdGhlIGZv cmVpZ24ga2V5LgorCQkJICovCisJCQlpZiAocnNpLmlzRG9uZSA9PSBFeHByRW5kUmVzdWx0 KQorCQkJCWJyZWFrOworCisJCQlpZiAoZmNpbmZvLT5pc251bGwpCisJCQkJZWxvZyhFUlJP UiwgIkdldCBhIG51bGwgZnJvbSB3aXRob3V0X3BvcnRpb24gZnVuY3Rpb24iKTsKKwkJfQor CQllbHNlCisJCQlmaW5pc2hlZCA9IHRydWU7CisKKwkJcmlfUGVyZm9ybUNoZWNrKHJpaW5m bywgJnFrZXksIHFwbGFuLAorCQkJCQkJZmtfcmVsLCBwa19yZWwsCisJCQkJCQlvbGRzbG90 LCBOVUxMLAorCQkJCQkJdGFyZ2V0UmFuZ2VQYXJhbSwgdGFyZ2V0UmFuZ2UsCisJCQkJCQl0 cnVlLAkJLyogbXVzdCBkZXRlY3QgbmV3IHJvd3MgKi8KKwkJCQkJCVNQSV9PS19TRUxFQ1Qp OworCisJfQorCisJLyogRnJlZSB0aGlzIGJlZm9yZSB3ZSBzaHV0IGRvd24gU1BJIHNpbmNl IG91ciBtZW1jdHggaXMgYSBjaGlsZCAqLworCWlmIChtdWx0aXBsZWxvc3QpCisJCUZyZWVF eHByQ29udGV4dChyc2kuZWNvbnRleHQsIGZhbHNlKTsKIAogCWlmIChTUElfZmluaXNoKCkg IT0gU1BJX09LX0ZJTklTSCkKIAkJZWxvZyhFUlJPUiwgIlNQSV9maW5pc2ggZmFpbGVkIik7 CkBAIC05OTQsNiArMTA5OCw3IEBAIFJJX0ZLZXlfY2FzY2FkZV9kZWwoUEdfRlVOQ1RJT05f QVJHUykKIAlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJCWZr X3JlbCwgcGtfcmVsLAogCQkJCQlvbGRzbG90LCBOVUxMLAorCQkJCQktMSwgKERhdHVtKSAw LAogCQkJCQl0cnVlLAkJLyogbXVzdCBkZXRlY3QgbmV3IHJvd3MgKi8KIAkJCQkJU1BJX09L X0RFTEVURSk7CiAKQEAgLTExMTAsNiArMTIxNSw3IEBAIFJJX0ZLZXlfY2FzY2FkZV91cGQo UEdfRlVOQ1RJT05fQVJHUykKIAlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBs YW4sCiAJCQkJCWZrX3JlbCwgcGtfcmVsLAogCQkJCQlvbGRzbG90LCBuZXdzbG90LAorCQkJ CQktMSwgKERhdHVtKSAwLAogCQkJCQl0cnVlLAkJLyogbXVzdCBkZXRlY3QgbmV3IHJvd3Mg Ki8KIAkJCQkJU1BJX09LX1VQREFURSk7CiAKQEAgLTEzMzcsNiArMTQ0Myw3IEBAIHJpX3Nl dChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfc2V0X251bGwsIGludCB0Z2tpbmQp CiAJcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXksIHFwbGFuLAogCQkJCQlma19yZWws IHBrX3JlbCwKIAkJCQkJb2xkc2xvdCwgTlVMTCwKKwkJCQkJLTEsIChEYXR1bSkgMCwKIAkJ CQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCiAJCQkJCVNQSV9PS19VUERB VEUpOwogCkBAIC0xMzk0LDcgKzE1MDEsNyBAQCBSSV9GS2V5X3BrX3VwZF9jaGVja19yZXF1 aXJlZChUcmlnZ2VyICp0cmlnZ2VyLCBSZWxhdGlvbiBwa19yZWwsCiAJCXJldHVybiBmYWxz ZTsKIAogCS8qIElmIGFsbCBvbGQgYW5kIG5ldyBrZXkgdmFsdWVzIGFyZSBlcXVhbCwgbm8g Y2hlY2sgaXMgbmVlZGVkICovCi0JaWYgKG5ld3Nsb3QgJiYgcmlfS2V5c0VxdWFsKHBrX3Jl bCwgb2xkc2xvdCwgbmV3c2xvdCwgcmlpbmZvLCB0cnVlKSkKKwlpZiAobmV3c2xvdCAmJiBy aV9LZXlzRXF1YWwocGtfcmVsLCBvbGRzbG90LCBuZXdzbG90LCByaWluZm8sIHRydWUsIGZh bHNlKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogRWxzZSB3ZSBuZWVkIHRvIGZpcmUgdGhl IHRyaWdnZXIuICovCkBAIC0xNDg3LDcgKzE1OTQsNyBAQCBSSV9GS2V5X2ZrX3VwZF9jaGVj a19yZXF1aXJlZChUcmlnZ2VyICp0cmlnZ2VyLCBSZWxhdGlvbiBma19yZWwsCiAJCXJldHVy biB0cnVlOwogCiAJLyogSWYgYWxsIG9sZCBhbmQgbmV3IGtleSB2YWx1ZXMgYXJlIGVxdWFs LCBubyBjaGVjayBpcyBuZWVkZWQgKi8KLQlpZiAocmlfS2V5c0VxdWFsKGZrX3JlbCwgb2xk c2xvdCwgbmV3c2xvdCwgcmlpbmZvLCBmYWxzZSkpCisJaWYgKHJpX0tleXNFcXVhbChma19y ZWwsIG9sZHNsb3QsIG5ld3Nsb3QsIHJpaW5mbywgZmFsc2UsIGZhbHNlKSkKIAkJcmV0dXJu IGZhbHNlOwogCiAJLyogRWxzZSB3ZSBuZWVkIHRvIGZpcmUgdGhlIHRyaWdnZXIuICovCkBA IC0yMzM1LDEwICsyNDQyLDExIEBAIHJpX0xvYWRDb25zdHJhaW50SW5mbyhPaWQgY29uc3Ry YWludE9pZCkKIAl7CiAJCU9pZAkJCW9wY2xhc3MgPSBnZXRfaW5kZXhfY29sdW1uX29wY2xh c3MoY29uRm9ybS0+Y29uaW5kaWQsIHJpaW5mby0+bmtleXMpOwogCi0JCUZpbmRGS1Blcmlv ZE9wZXJzKG9wY2xhc3MsCi0JCQkJCQkgICZyaWluZm8tPnBlcmlvZF9jb250YWluZWRfYnlf b3BlciwKLQkJCQkJCSAgJnJpaW5mby0+YWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVy LAotCQkJCQkJICAmcmlpbmZvLT5wZXJpb2RfaW50ZXJzZWN0X29wZXIpOworCQlGaW5kRktQ ZXJpb2RPcGVyc0FuZFByb2NzKG9wY2xhc3MsCisJCQkJCQkJCSAgJnJpaW5mby0+cGVyaW9k X2NvbnRhaW5lZF9ieV9vcGVyLAorCQkJCQkJCQkgICZyaWluZm8tPmFnZ2VkX3BlcmlvZF9j b250YWluZWRfYnlfb3BlciwKKwkJCQkJCQkJICAmcmlpbmZvLT5wZXJpb2RfaW50ZXJzZWN0 X29wZXIsCisJCQkJCQkJCSAgJnJpaW5mby0+d2l0aG91dF9wb3J0aW9uX3Byb2MpOwogCX0K IAogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwpAQCAtMjQ4MSw2ICsyNTg5LDcgQEAgcmlfUGVy Zm9ybUNoZWNrKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCQkJUklfUXVl cnlLZXkgKnFrZXksIFNQSVBsYW5QdHIgcXBsYW4sCiAJCQkJUmVsYXRpb24gZmtfcmVsLCBS ZWxhdGlvbiBwa19yZWwsCiAJCQkJVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3QsIFR1cGxlVGFi bGVTbG90ICpuZXdzbG90LAorCQkJCWludCBwZXJpb2RQYXJhbSwgRGF0dW0gcGVyaW9kLAog CQkJCWJvb2wgZGV0ZWN0TmV3Um93cywgaW50IGV4cGVjdF9PSykKIHsKIAlSZWxhdGlvbglx dWVyeV9yZWwsCkBAIC0yNTM2LDYgKzI2NDUsMTIgQEAgcmlfUGVyZm9ybUNoZWNrKGNvbnN0 IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCXJpX0V4dHJhY3RWYWx1ZXMoc291cmNl X3JlbCwgb2xkc2xvdCwgcmlpbmZvLCBzb3VyY2VfaXNfcGssCiAJCQkJCQkgdmFscywgbnVs bHMpOwogCX0KKwkvKiBBZGQvcmVwbGFjZSBhIHF1ZXJ5IHBhcmFtIGZvciB0aGUgUEVSSU9E IGlmIG5lZWRlZCAqLworCWlmIChwZXJpb2QpCisJeworCQl2YWxzW3BlcmlvZFBhcmFtIC0g MV0gPSBwZXJpb2Q7CisJCW51bGxzW3BlcmlvZFBhcmFtIC0gMV0gPSAnICc7CisJfQogCiAJ LyoKIAkgKiBJbiBSRUFEIENPTU1JVFRFRCBtb2RlLCB3ZSBqdXN0IG5lZWQgdG8gdXNlIGFu IHVwLXRvLWRhdGUgcmVndWxhcgpAQCAtMjk1Niw2ICszMDcxLDkgQEAgcmlfSGFzaFByZXBh cmVkUGxhbihSSV9RdWVyeUtleSAqa2V5LCBTUElQbGFuUHRyIHBsYW4pCiAgKiBGb3Igbm9y bWFsIEZLcyB3ZSBjaGVjayBmb3IgZXF1YWxpdHkuCiAgKiBGb3IgdGVtcG9yYWwgRktzIHdl IGNoZWNrIHRoYXQgdGhlIFBLIHNpZGUgaXMgYSBzdXBlcnNldCBvZiBpdHMgb2xkIHZhbHVl LAogICogb3IgdGhlIEZLIHNpZGUgaXMgYSBzdWJzZXQgb2YgaXRzIG9sZCB2YWx1ZS4KKyAq IElmIHNraXBfcGVyaW9kIGlzIHNldCwgd2UgaWdub3JlIHRoZSBsYXN0IGtleSBlbGVtZW50 LgorICogVGhpcyBsZXRzIHVzIGFzayBpZiB0aGUgc2NhbGFyIGtleSBwYXJ0cyBjaGFuZ2Vk LAorICogaWdub3JpbmcgdGhlIFBFUklPRC4KICAqCiAgKiBOb3RlOiBhdCBzb21lIHBvaW50 IHdlIG1pZ2h0IHdpc2ggdG8gcmVkZWZpbmUgdGhpcyBhcyBjaGVja2luZyBmb3IKICAqICJJ UyBOT1QgRElTVElOQ1QiIHJhdGhlciB0aGFuICI9IiwgdGhhdCBpcywgYWxsb3cgdHdvIG51 bGxzIHRvIGJlCkBAIC0yOTY0LDE3ICszMDgyLDE5IEBAIHJpX0hhc2hQcmVwYXJlZFBsYW4o UklfUXVlcnlLZXkgKmtleSwgU1BJUGxhblB0ciBwbGFuKQogICovCiBzdGF0aWMgYm9vbAog cmlfS2V5c0VxdWFsKFJlbGF0aW9uIHJlbCwgVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3QsIFR1 cGxlVGFibGVTbG90ICpuZXdzbG90LAotCQkJIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpy aWluZm8sIGJvb2wgcmVsX2lzX3BrKQorCQkJIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpy aWluZm8sIGJvb2wgcmVsX2lzX3BrLCBib29sIHNraXBfcGVyaW9kKQogewogCWNvbnN0IGlu dDE2ICphdHRudW1zOwogCisJQXNzZXJ0KHNraXBfcGVyaW9kID8gcmlpbmZvLT5oYXNwZXJp b2QgOiB0cnVlKTsKKwogCWlmIChyZWxfaXNfcGspCiAJCWF0dG51bXMgPSByaWluZm8tPnBr X2F0dG51bXM7CiAJZWxzZQogCQlhdHRudW1zID0gcmlpbmZvLT5ma19hdHRudW1zOwogCiAJ LyogWFhYOiBjb3VsZCBiZSB3b3J0aHdoaWxlIHRvIGZldGNoIGFsbCBuZWNlc3NhcnkgYXR0 cnMgYXQgb25jZSAqLwotCWZvciAoaW50IGkgPSAwOyBpIDwgcmlpbmZvLT5ua2V5czsgaSsr KQorCWZvciAoaW50IGkgPSAwOyBpIDwgcmlpbmZvLT5ua2V5cyAtIChza2lwX3BlcmlvZCA/ IDEgOiAwKTsgaSsrKQogCXsKIAkJRGF0dW0JCW9sZHZhbHVlOwogCQlEYXR1bQkJbmV3dmFs dWU7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCmluZGV4IDVlZGQ0ZWI4YTMz Li41ZjI1YzVhMDA2NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25z dHJhaW50LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50LmgKQEAg LTI4NiwxMCArMjg2LDExIEBAIGV4dGVybiB2b2lkIERlY29uc3RydWN0RmtDb25zdHJhaW50 Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1ma3MsCiAJCQkJCQkJCQkgICBBdHRyTnVt YmVyICpjb25rZXksIEF0dHJOdW1iZXIgKmNvbmZrZXksCiAJCQkJCQkJCQkgICBPaWQgKnBm X2VxX29wcnMsIE9pZCAqcHBfZXFfb3BycywgT2lkICpmZl9lcV9vcHJzLAogCQkJCQkJCQkJ ICAgaW50ICpudW1fZmtfZGVsX3NldF9jb2xzLCBBdHRyTnVtYmVyICpma19kZWxfc2V0X2Nv bHMpOwotZXh0ZXJuIHZvaWQgRmluZEZLUGVyaW9kT3BlcnMoT2lkIG9wY2xhc3MsCi0JCQkJ CQkJICBPaWQgKmNvbnRhaW5lZGJ5b3Blcm9pZCwKLQkJCQkJCQkgIE9pZCAqYWdnZWRjb250 YWluZWRieW9wZXJvaWQsCi0JCQkJCQkJICBPaWQgKmludGVyc2VjdG9wZXJvaWQpOworZXh0 ZXJuIHZvaWQgRmluZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhPaWQgb3BjbGFzcywKKwkJCQkJ CQkJCSAgT2lkICpjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkJCQkgIE9pZCAqYWdnZWRj b250YWluZWRieW9wZXJvaWQsCisJCQkJCQkJCQkgIE9pZCAqaW50ZXJzZWN0b3Blcm9pZCwK KwkJCQkJCQkJCSAgT2lkICp3aXRob3V0cG9ydGlvbm9pZCk7CiAKIGV4dGVybiBib29sIGNo ZWNrX2Z1bmN0aW9uYWxfZ3JvdXBpbmcoT2lkIHJlbGlkLAogCQkJCQkJCQkJICBJbmRleCB2 YXJubywgSW5kZXggdmFybGV2ZWxzdXAsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRleCBiMjc0NGE0OWE5OS4uNzk5YjY3NzA1 NzkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVy bGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJs YXBzLm91dApAQCAtMTc3OCw3ICsxNzc4LDggQEAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5n IFdIRVJFIGlkID0gJ1s1LDYpJzsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMKICAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJykpLAogICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIw MTgtMDMtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOwogVVBE QVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEn LCAnMjAxNi0wMy0wMScpCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKIC0tIEEgUEsgdXBkYXRlIHNs aWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgpAQCAtMTc5Myw2 ICsxNzk0LDM3IEBAIFNFVCB2YWxpZF9hdCA9IENBU0UgV0hFTiBsb3dlcih2YWxpZF9hdCkg PSAnMjAxOC0wMS0wMScgVEhFTiBkYXRlcmFuZ2UoJzIwMTgtMDEtCiBXSEVSRSBpZCA9ICdb Niw3KSc7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3Ju ZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJu Z19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlk LCB2YWxpZF9hdCk9KFs2LDcpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwg cmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KKy0tIGEgUEsg dXBkYXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBidXQgc3RpbGwgdmFsaWQ6 CistLSBUaGVyZSBhcmUgdHdvIHJlZmVyZW5jZXM6IG9uZSBmdWxmaWxsZWQgYnkgdGhlIGZp cnN0IHBrIHJvdywKKy0tIHRoZSBvdGhlciBmdWxmaWxsZWQgYnkgYm90aCBwayByb3dzIGNv bWJpbmVkLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSks CisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDEnLCAnMjAxOC0wNi0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4 LTAyLTAxJyksICdbMSwyKScpLAorICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTE1 JywgJzIwMTgtMDUtMDEnKSwgJ1sxLDIpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAzLTAxJykKK1dIRVJF IGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0g YSBQSyB1cGRhdGUgZ3Jvd2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBpcyBmaW5lOgorVVBE QVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMy0wMScpCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcy MDE4LTAxLTI1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVmZXJl bmNlZCByYW5nZSBhbmQgY2hhbmdpbmcgdGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSBy YW5nZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpCitXSEVSRSBpZCA9ICdb MSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKK0VSUk9SOiAgdXBk YXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVt cG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiks IFsyMDE4LTAxLTAxLDIwMTgtMDMtMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFi bGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0gYSBQSyB1cGRhdGUgY2hhbmdpbmcgb25s eSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIHJhbmdlOgorVVBEQVRFIHRlbXBvcmFs X3JuZyBTRVQgaWQgPSAnWzIsMyknCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgt MDMtMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3Ju ZzJybmciLgorLS0gYSBQSyB1cGRhdGUgdGhhdCBsb3NlcyB0aW1lIGZyb20gYm90aCBlbmRz LCBidXQgaXMgc3RpbGwgdmFsaWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTCisgICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0xNScsICcyMDE4LTAyLTAxJyksICdbMiwzKScpOworVVBEQVRFIHRlbXBvcmFsX3Ju ZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScp CitXSEVSRSBpZCA9ICdbMiwzKSc7CiAtLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1 c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKIEJFR0lOOwog ICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCkBAIC0yMjk0LDcgKzIzMjYsOCBA QCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknOwogSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUwogICAoJ1s1 LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDIt MDEnKSkpLAogICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAy LTAxJywgJzIwMTgtMDMtMDEnKSkpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSksICdb NSw2KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSksICdbNSw2KScpOwogVVBE QVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpKQogV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScs ICcyMDE4LTAzLTAxJykpOwogLS0gQSBQSyB1cGRhdGUgc2xpZGluZyB0aGUgZWRnZSBiZXR3 ZWVuIHR3byByZWZlcmVuY2VkIHJvd3M6CkBAIC0yMzA5LDYgKzIzNDIsMzcgQEAgU0VUIHZh bGlkX2F0ID0gQ0FTRSBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9ICcyMDE4LTAxLTAxJyBUSEVO IGRhdGVtdWx0aXJhbmdlKGRhdGUKIFdIRVJFIGlkID0gJ1s2LDcpJzsKIEVSUk9SOiAgdXBk YXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3Jl aWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0 YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZh bGlkX2F0KT0oWzYsNyksIHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJl ZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSBh IFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgbXVsdGlyYW5nZSBidXQgc3Rp bGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdvIHJlZmVyZW5jZXM6IG9uZSBmdWxmaWxsZWQg YnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRoZSBvdGhlciBmdWxmaWxsZWQgYnkgYm90aCBw ayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkpLAorICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDYtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTE1JywgJzIwMTgtMDItMDEnKSksICdbMSwyKScpLAorICAoJ1syLDMpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDUtMDEnKSksICdbMSwyKScp OworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpKQorV0hFUkUgaWQgPSAn WzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBLIHVw ZGF0ZSBncm93aW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2UgaXMgZmluZToKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkKK1dIRVJFIGlkID0gJ1sxLDIpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMjUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgc2hy aW5raW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2UgYW5kIGNoYW5naW5nIHRoZSBpZCBp bnZhbGlkYXRlcyB0aGUgd2hvbGUgbXVsdGlyYW5nZToKK1VQREFURSB0ZW1wb3JhbF9tbHRy bmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpKQorV0hFUkUgaWQgPSAnWzEsMiknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CitFUlJPUjogIHVwZGF0ZSBvciBk ZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9 KFsxLDIpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMy0wMSl9KSBpcyBzdGlsbCByZWZlcmVuY2Vk IGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0gYSBQSyB1cGRh dGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIG11bHRpcmFu Z2U6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbMiwzKScKK1dIRVJFIGlk ID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworRVJST1I6 ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVz IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAxLTAxLDIwMTgtMDMtMDEpfSkgaXMgc3Rp bGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4K Ky0tIGEgUEsgdXBkYXRlIHRoYXQgbG9zZXMgdGltZSBmcm9tIGJvdGggZW5kcywgYnV0IGlz IHN0aWxsIHZhbGlkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUworICAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMDEn KSksICdbMiwzKScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScpKQor V0hFUkUgaWQgPSAnWzIsMyknOwogLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNl IGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CiBCRUdJTjsKICAg QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAppbmRleCA4ZjQ3Mjg2N2UyOC4uZjdkZTM4 NzEwOTMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3Zlcmxh cHMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3Fs CkBAIC0xMzE2LDcgKzEzMTYsOCBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUg aWQgPSAnWzUsNiknOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUwogICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDIt MDEnKSksCiAgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0w MScpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcy MDE4LTAxLTEwJyksICdbNSw2KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CiBVUERBVEUgdGVt cG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2 LTAzLTAxJykKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwogLS0gQSBQSyB1cGRhdGUgc2xpZGluZyB0 aGUgZWRnZSBiZXR3ZWVuIHR3byByZWZlcmVuY2VkIHJvd3M6CkBAIC0xMzI5LDYgKzEzMzAs MzMgQEAgVVBEQVRFIHRlbXBvcmFsX3JuZwogU0VUIHZhbGlkX2F0ID0gQ0FTRSBXSEVOIGxv d2VyKHZhbGlkX2F0KSA9ICcyMDE4LTAxLTAxJyBUSEVOIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAxLTA1JykKICAgICAgICAgICAgICAgICAgICAgV0hFTiBsb3dlcih2YWxp ZF9hdCkgPSAnMjAxOC0wMi0wMScgVEhFTiBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAx OC0wMy0wMScpIEVORAogV0hFUkUgaWQgPSAnWzYsNyknOworLS0gYSBQSyB1cGRhdGUgc2hy aW5raW5nIHRoZSByZWZlcmVuY2VkIHJhbmdlIGJ1dCBzdGlsbCB2YWxpZDoKKy0tIFRoZXJl IGFyZSB0d28gcmVmZXJlbmNlczogb25lIGZ1bGZpbGxlZCBieSB0aGUgZmlyc3QgcGsgcm93 LAorLS0gdGhlIG90aGVyIGZ1bGZpbGxlZCBieSBib3RoIHBrIHJvd3MgY29tYmluZWQuCitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzEs MiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpKSwKKyAgKCdbMSwy KScsIGRhdGVyYW5nZSgnMjAxOC0wMy0wMScsICcyMDE4LTA2LTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMDEnKSwg J1sxLDIpJyksCisgICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0w NS0wMScpLCAnWzEsMiknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0g ZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDMtMDEnKQorV0hFUkUgaWQgPSAnWzEs MiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0 ZSBncm93aW5nIHRoZSByZWZlcmVuY2VkIHJhbmdlIGlzIGZpbmU6CitVUERBVEUgdGVtcG9y YWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAz LTAxJykKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMjUn OjpkYXRlOworLS0gYSBQSyB1cGRhdGUgc2hyaW5raW5nIHRoZSByZWZlcmVuY2VkIHJhbmdl IGFuZCBjaGFuZ2luZyB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIHJhbmdlOgorVVBE QVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzIsMyknLCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxOC0wMS0xNScsICcyMDE4LTAzLTAxJykKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgY2hhbmdp bmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIHJhbmdlOgorVVBEQVRFIHRl bXBvcmFsX3JuZyBTRVQgaWQgPSAnWzIsMyknCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZh bGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgbG9z ZXMgdGltZSBmcm9tIGJvdGggZW5kcywgYnV0IGlzIHN0aWxsIHZhbGlkOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1syLDMpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgn WzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0wMScpLCAnWzIsMykn KTsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4 LTAxLTE1JywgJzIwMTgtMDItMTUnKQorV0hFUkUgaWQgPSAnWzIsMyknOwogLS0gYSBQSyB1 cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2ZW4gYmVm b3JlIGNvbW1pdCk6CiBCRUdJTjsKICAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJu ZwpAQCAtMTc5Nyw3ICsxODI1LDggQEAgREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdI RVJFIGlkID0gJ1s1LDYpJzsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMKICAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKSwKICAgKCdbNSw2KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKLUlOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w NScsICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdb Myw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAx LTEwJykpLCAnWzUsNiknKTsKIFVQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0 ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEn KSkKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKIC0tIEEgUEsgdXBkYXRl IHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgpAQCAtMTgx MCw2ICsxODM5LDMzIEBAIFVQREFURSB0ZW1wb3JhbF9tbHRybmcKIFNFVCB2YWxpZF9hdCA9 IENBU0UgV0hFTiBsb3dlcih2YWxpZF9hdCkgPSAnMjAxOC0wMS0wMScgVEhFTiBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpKQogICAgICAg ICAgICAgICAgICAgICBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9ICcyMDE4LTAyLTAxJyBUSEVO IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAzLTAxJykp IEVORAogV0hFUkUgaWQgPSAnWzYsNyknOworLS0gYSBQSyB1cGRhdGUgc2hyaW5raW5nIHRo ZSByZWZlcmVuY2VkIG11bHRpcmFuZ2UgYnV0IHN0aWxsIHZhbGlkOgorLS0gVGhlcmUgYXJl IHR3byByZWZlcmVuY2VzOiBvbmUgZnVsZmlsbGVkIGJ5IHRoZSBmaXJzdCBwayByb3csCist LSB0aGUgb3RoZXIgZnVsZmlsbGVkIGJ5IGJvdGggcGsgcm93cyBjb21iaW5lZC4KK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbMSwy KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAzLTAx JykpKSwKKyAgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0w MScsICcyMDE4LTA2LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJykpLCAn WzEsMiknKSwKKyAgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0xNScsICcyMDE4LTA1LTAxJykpLCAnWzEsMiknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRy bmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1 JywgJzIwMTgtMDMtMDEnKSkKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgZ3Jvd2luZyB0aGUgcmVmZXJl bmNlZCBtdWx0aXJhbmdlIGlzIGZpbmU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAzLTAxJykpCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAx LTI1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCBt dWx0aXJhbmdlIGFuZCBjaGFuZ2luZyB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIG11 bHRpcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbMiwzKScsIHZh bGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgt MDMtMDEnKSkKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEt MTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxp ZGF0ZXMgdGhlIHdob2xlIG11bHRpcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNF VCBpZCA9ICdbMiwzKScKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgdGhhdCBsb3NlcyB0aW1lIGZyb20g Ym90aCBlbmRzLCBidXQgaXMgc3RpbGwgdmFsaWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzIsMyknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTCisgICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MTUnLCAnMjAxOC0wMi0wMScpKSwgJ1syLDMpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5n IFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScs ICcyMDE4LTAyLTE1JykpCitXSEVSRSBpZCA9ICdbMiwzKSc7CiAtLSBhIFBLIHVwZGF0ZSB0 aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZlbiBiZWZvcmUgY29t bWl0KToKIEJFR0lOOwogICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n Ci0tIAoyLjQyLjAKCg== --------------OnvqRywVNIjsiZuvTo32rvFz Content-Type: text/x-patch; charset=UTF-8; name="v45-0005-Add-intersect-support-func-for-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename*0="v45-0005-Add-intersect-support-func-for-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 RnJvbSAyOTYzYTI2MWQ1NTQwMGYzZWJiMDAyNjRjY2U3YzhkNzcyOWNmZmM0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMjMgMjM6MTA6NTkgLTA4 MDAKU3ViamVjdDogW1BBVENIIHY0NSA1LzhdIEFkZCBpbnRlcnNlY3Qgc3VwcG9ydCBmdW5j IGZvciBGT1IgUE9SVElPTiBPRgoKLSBBZGRzIGludGVyc2VjdCBzdXBwb3J0IHByb2NzLgoK ICBUaGVzZSBqdXN0IGNhbGwgdGhlIGV4aXN0aW5nIGludGVyc2VjdCBmdW5jdGlvbnMsCiAg YnV0IHRoZXkgbGV0IHVzIGNvbXB1dGUgdGhlIHBvcnRpb24gb2YgYSByb3cgdGhhdCBpcyB1 cGRhdGVkL2RlbGV0ZWQKICBpbiBhIEZPUiBQT1JUSU9OIGNvbW1hbmQuCi0tLQogZG9jL3Ny Yy9zZ21sL2dpc3Quc2dtbCAgICAgICAgICAgICAgICAgfCA1NyArKysrKysrKysrKysrKysr KysrKysrKystLQogZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21sICAgICAgICAgICAgICAgfCAg OCArKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYyB8ICA4ICsr Ky0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmggICAgICAgICAgICAgIHwgIDMgKy0KIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdCAgICAgIHwgIDkgKysrKwogNSBmaWxl cyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCmlu ZGV4IDFmYmRkZjFiZmIwLi5mMzMxNGVjY2I5ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2dpc3Quc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCkBAIC0yNjYsNyArMjY2 LDcgQEAgQ1JFQVRFIElOREVYIE9OIG15X3RhYmxlIFVTSU5HIEdJU1QgKG15X2luZXRfY29s dW1uIGluZXRfb3BzKTsKIAogIDxwYXJhPgogICAgVGhlcmUgYXJlIGZpdmUgbWV0aG9kcyB0 aGF0IGFuIGluZGV4IG9wZXJhdG9yIGNsYXNzIGZvcgotICAgPGFjcm9ueW0+R2lTVDwvYWNy b255bT4gbXVzdCBwcm92aWRlLCBhbmQgZWlnaHQgdGhhdCBhcmUgb3B0aW9uYWwuCisgICA8 YWNyb255bT5HaVNUPC9hY3JvbnltPiBtdXN0IHByb3ZpZGUsIGFuZCBuaW5lIHRoYXQgYXJl IG9wdGlvbmFsLgogICAgQ29ycmVjdG5lc3Mgb2YgdGhlIGluZGV4IGlzIGVuc3VyZWQKICAg IGJ5IHByb3BlciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgPGZ1bmN0aW9uPnNhbWU8L2Z1bmN0 aW9uPiwgPGZ1bmN0aW9uPmNvbnNpc3RlbnQ8L2Z1bmN0aW9uPgogICAgYW5kIDxmdW5jdGlv bj51bmlvbjwvZnVuY3Rpb24+IG1ldGhvZHMsIHdoaWxlIGVmZmljaWVuY3kgKHNpemUgYW5k IHNwZWVkKSBvZiB0aGUKQEAgLTI5Niw3ICsyOTYsMTEgQEAgQ1JFQVRFIElOREVYIE9OIG15 X3RhYmxlIFVTSU5HIEdJU1QgKG15X2luZXRfY29sdW1uIGluZXRfb3BzKTsKICAgIHRlbXBv cmFsIGNvbnN0cmFpbnQgaW5kZXhlcy4KICAgIFRoZSBvcHRpb25hbCB0aGlydGVlbnRoIG1l dGhvZCA8ZnVuY3Rpb24+d2l0aG91dF9wb3J0aW9uPC9mdW5jdGlvbj4gaXMgdXNlZCBieQog ICAgPGxpdGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+IGZvcmVpZ24ga2V5cyB0byBjb21wdXRl IHRoZSBwb3J0aW9uIG9mIGhpc3RvcnkKLSAgIHRoYXQgd2FzIGxvc3QuCisgICB0aGF0IHdh cyBsb3N0IGFuZCBhbHNvIGJ5IDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiB0 byBjb21wdXRlIHRoZQorICAgbGVmdG92ZXIgcmVjb3JkcyBvdXRzaWRlIHRoZSB0YXJnZXRl ZCBib3VuZHMuCisgICBUaGUgb3B0aW9uYWwgZm91cnRlZW50aCBtZXRob2QgPGZ1bmN0aW9u PmludGVyc2VjdDwvZnVuY3Rpb24+IGlzIHVzZWQgYnkKKyAgIDxsaXRlcmFsPkZPUiBQT1JU SU9OIE9GPC9saXRlcmFsPiB0byBjb21wdXRlIHRoZSBuZXcgYm91bmRzIG9mIHRoZSB1cGRh dGVkLworICAgZGVsZXRlZCByZWNvcmQuCiAgPC9wYXJhPgogCiAgPHZhcmlhYmxlbGlzdD4K QEAgLTEyNDcsNyArMTI1MSw4IEBAIG15X3N0cmF0bnVtKFBHX0ZVTkNUSU9OX0FSR1MpCiAg ICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KICAgICAgICBUaGlzIGlzIHVzZWQgYnkgdGVt cG9yYWwgZm9yZWlnbiBrZXlzIHRvIGNvbXB1dGUgdGhlIHBhcnQKLSAgICAgICBvZiBoaXN0 b3J5IHRoYXQgd2FzIGxvc3QgYnkgYW4gdXBkYXRlLgorICAgICAgIG9mIGhpc3RvcnkgdGhh dCB3YXMgbG9zdCBieSBhbiB1cGRhdGUgYW5kIGFsc28gYnkgdGVtcG9yYWwgdXBkYXRlL2Rl bGV0ZQorICAgICAgIGNvbW1hbmRzIHRvIGNvbXB1dGUgdGhlIGJvdW5kcyBvZiB0aGUgdW50 b3VjaGVkIGR1cmF0aW9uLgogICAgICAgPC9wYXJhPgogCiAgICAgICA8cGFyYT4KQEAgLTEz MzYsNiArMTM0MSw1MiBAQCBteV9yYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVOQ1RJT05f QVJHUykKICAgICAgICAgLyogZG8gd2hlbiB0aGVyZSBpcyBubyBtb3JlIGxlZnQgKi8KICAg ICAgICAgU1JGX1JFVFVSTl9ET05FKGZ1bmNjdHgpOwogfQorPC9wcm9ncmFtbGlzdGluZz4K KyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4K KyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48ZnVuY3Rpb24+aW50ZXJzZWN0PC9m dW5jdGlvbj48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAg IEdpdmVuIHR3byB2YWx1ZXMgb2YgdGhpcyBvcGNsYXNzLCBpdCByZXR1cm5zIHRoZWlyIGlu dGVyc2VjdGlvbi4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMg aXMgdXNlZCBmb3IgdGVtcG9yYWwgdXBkYXRlIGNvbW1hbmRzIHRvIGNvbXB1dGUgdGhlCisg ICAgICAgbmV3IGJvdW5kcyBvZiB0aGUgY2hhbmdlZCByb3cuCisgICAgICA8L3BhcmE+CisK KyAgICAgIDxwYXJhPgorICAgICAgIFRoZSA8YWNyb255bT5TUUw8L2Fjcm9ueW0+IGRlY2xh cmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxvb2sgbGlrZQorICAgICAgIHRoaXMgKHVz aW5nIDxsaXRlcmFsPm15X2ludGVyc2VjdDwvbGl0ZXJhbD4gYXMgYW4gZXhhbXBsZSk6CisK Kzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIG15X3Jhbmdl X2ludGVyc2VjdChhbnlyYW5nZSwgYW55cmFuZ2UpCitSRVRVUk5TIGFueXJhbmdlCitBUyAn TU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0UgQyBTVFJJQ1Q7Cis8L3Byb2dyYW1saXN0aW5n PgorICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBtYXRjaGlu ZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIGV4YW1wbGU6 CisKKzxwcm9ncmFtbGlzdGluZz4KK0RhdHVtCitteV9yYW5nZV9pbnRlcnNlY3QoUEdfRlVO Q1RJT05fQVJHUykKK3sKKyAgICBSYW5nZVR5cGUgICpyMSA9IFBHX0dFVEFSR19SQU5HRV9Q KDApOworICAgIFJhbmdlVHlwZSAgKnIyID0gUEdfR0VUQVJHX1JBTkdFX1AoMSk7CisgICAg VHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlOworCisgICAgLyogRGlmZmVyZW50IHR5cGVzIHNo b3VsZCBiZSBwcmV2ZW50ZWQgYnkgQU5ZUkFOR0UgbWF0Y2hpbmcgcnVsZXMgKi8KKyAgICBp ZiAoUmFuZ2VUeXBlR2V0T2lkKHIxKSAhPSBSYW5nZVR5cGVHZXRPaWQocjIpKQorICAgICAg ICBlbG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMgZG8gbm90IG1hdGNoIik7CisKKyAgICB0eXBj YWNoZSA9IHJhbmdlX2dldF90eXBjYWNoZShmY2luZm8sIFJhbmdlVHlwZUdldE9pZChyMSkp OworCisgICAgUEdfUkVUVVJOX1JBTkdFX1AocmFuZ2VfaW50ZXJzZWN0X2ludGVybmFsKHR5 cGNhY2hlLCByMSwgcjIpKTsKK30KIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICAgICA8L3BhcmE+ CiAgICAgIDwvbGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwveGluZGV4LnNn bWwgYi9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwKaW5kZXggODVlZjUzOWQwN2MuLmQyZmFj MDhkNzQyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3hpbmRleC5zZ21sCkBAIC01MDgsNyArNTA4LDcgQEAKICAgIDwvdGFibGU+ CiAKICAgPHBhcmE+Ci0gICBHaVNUIGluZGV4ZXMgaGF2ZSB0aGlydGVlbiBzdXBwb3J0IGZ1 bmN0aW9ucywgZWlnaHQgb2Ygd2hpY2ggYXJlIG9wdGlvbmFsLAorICAgR2lTVCBpbmRleGVz IGhhdmUgZm91cnRlZW4gc3VwcG9ydCBmdW5jdGlvbnMsIG5pbmUgb2Ygd2hpY2ggYXJlIG9w dGlvbmFsLAogICAgYXMgc2hvd24gaW4gPHhyZWYgbGlua2VuZD0ieGluZGV4LWdpc3Qtc3Vw cG9ydC10YWJsZSIvPi4KICAgIChGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgPHhyZWYgbGlu a2VuZD0iZ2lzdCIvPi4pCiAgIDwvcGFyYT4KQEAgLTYwMiw2ICs2MDIsMTIgQEAKICAgICAg ICBzZWNvbmQgcGFyYW1ldGVyIGZyb20gZmlyc3QgKG9wdGlvbmFsKTwvZW50cnk+CiAgICAg ICAgPGVudHJ5PjEzPC9lbnRyeT4KICAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAg ICA8ZW50cnk+PGZ1bmN0aW9uPmludGVyc2VjdDwvZnVuY3Rpb24+PC9lbnRyeT4KKyAgICAg ICA8ZW50cnk+Y29tcHV0ZXMgaW50ZXJzZWN0aW9uIHdpdGggPGxpdGVyYWw+Rk9SIFBPUlRJ T04gT0Y8L2xpdGVyYWw+CisgICAgICAgIGJvdW5kcyAob3B0aW9uYWwpPC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+MTQ8L2VudHJ5PgorICAgICAgPC9yb3c+CiAgICAgIDwvdGJvZHk+CiAg ICAgPC90Z3JvdXA+CiAgICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0 dmFsaWRhdGUuYwppbmRleCAzODc0MGI0NmJiZi4uNWRjYWQ0NWVlZjUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jCkBAIC0xNTQsNiArMTU0LDEwIEBAIGdp c3R2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWdu YXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgb3BjaW50eXBlLCB0cnVlLCB0cnVlLAogCQkJCQkJ CQkJCQkyLCAyLCBvcGNpbnR5cGUsIG9wY2ludHlwZSk7CiAJCQkJYnJlYWs7CisJCQljYXNl IEdJU1RfSU5URVJTRUNUX1BST0M6CisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIEludmFsaWRPaWQsIGZhbHNlLCB0cnVlLAorCQkJCQkJCQkJ CQkyLCAyLCBvcGNpbnR5cGUsIG9wY2ludHlwZSk7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0 OgogCQkJCWVyZXBvcnQoSU5GTywKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9P QkpFQ1RfREVGSU5JVElPTiksCkBAIC0yNzUsNyArMjc5LDggQEAgZ2lzdHZhbGlkYXRlKE9p ZCBvcGNsYXNzb2lkKQogCQlpZiAoaSA9PSBHSVNUX0RJU1RBTkNFX1BST0MgfHwgaSA9PSBH SVNUX0ZFVENIX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9DT01QUkVTU19QUk9DIHx8IGkgPT0g R0lTVF9ERUNPTVBSRVNTX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9PUFRJT05TX1BST0MgfHwg aSA9PSBHSVNUX1NPUlRTVVBQT1JUX1BST0MgfHwKLQkJCWkgPT0gR0lTVF9TVFJBVE5VTV9Q Uk9DIHx8IGkgPT0gR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQykKKwkJCWkgPT0gR0lTVF9T VFJBVE5VTV9QUk9DIHx8IGkgPT0gR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQyB8fAorCQkJ aSA9PSBHSVNUX0lOVEVSU0VDVF9QUk9DKQogCQkJY29udGludWU7CQkJLyogb3B0aW9uYWwg bWV0aG9kcyAqLwogCQllcmVwb3J0KElORk8sCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX09CSkVDVF9ERUZJTklUSU9OKSwKQEAgLTM0OSw2ICszNTQsNyBAQCBnaXN0YWRqdXN0 bWVtYmVycyhPaWQgb3BmYW1pbHlvaWQsCiAJCQljYXNlIEdJU1RfU09SVFNVUFBPUlRfUFJP QzoKIAkJCWNhc2UgR0lTVF9TVFJBVE5VTV9QUk9DOgogCQkJY2FzZSBHSVNUX1dJVEhPVVRf UE9SVElPTl9QUk9DOgorCQkJY2FzZSBHSVNUX0lOVEVSU0VDVF9QUk9DOgogCQkJCS8qIE9w dGlvbmFsLCBzbyBmb3JjZSBpdCB0byBiZSBhIHNvZnQgZmFtaWx5IGRlcGVuZGVuY3kgKi8K IAkJCQlvcC0+cmVmX2lzX2hhcmQgPSBmYWxzZTsKIAkJCQlvcC0+cmVmX2lzX2ZhbWlseSA9 IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oIGIvc3JjL2lu Y2x1ZGUvYWNjZXNzL2dpc3QuaAppbmRleCA4ZDZjOTlmNWViZS4uZDM5YjEzYWQ5MzIgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmgKKysrIGIvc3JjL2luY2x1ZGUv YWNjZXNzL2dpc3QuaApAQCAtNDEsNyArNDEsOCBAQAogI2RlZmluZSBHSVNUX1NPUlRTVVBQ T1JUX1BST0MJCQkxMQogI2RlZmluZSBHSVNUX1NUUkFUTlVNX1BST0MJCQkJMTIKICNkZWZp bmUgR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQwkJMTMKLSNkZWZpbmUgR0lTVE5Qcm9jcwkJ CQkJMTMKKyNkZWZpbmUgR0lTVF9JTlRFUlNFQ1RfUFJPQwkJCQkxNAorI2RlZmluZSBHSVNU TlByb2NzCQkJCQkxNAogCiAvKgogICogUGFnZSBvcGFxdWUgZGF0YSBpbiBhIEdpU1QgaW5k ZXggcGFnZS4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRh dCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdAppbmRleCAwYTRkYjMyNWZh YS4uNGU1YzJiYmVlZjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1w cm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKQEAgLTUw OSw2ICs1MDksOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvYm94X29wcycsIGFtcHJv Y2xlZnR0eXBlID0+ICdib3gnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFtcHJv Y251bSA9PiAnMTInLAogICBhbXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0s Cit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9ib3hfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4g J2JveCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYm94JywgYW1wcm9jbnVtID0+ICcxNCcs CisgIGFtcHJvYyA9PiAnYm94X2ludGVyc2VjdChib3gsYm94KScgfSwKIHsgYW1wcm9jZmFt aWx5ID0+ICdnaXN0L3BvbHlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BvbHlnb24nLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ3BvbHlnb24nLCBhbXByb2NudW0gPT4gJzEnLAogICBh bXByb2MgPT4gJ2dpc3RfcG9seV9jb25zaXN0ZW50JyB9LApAQCAtNjEyLDYgKzYxNSw5IEBA CiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9yYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAnYW55cmFuZ2UnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueXJhbmdlJywgYW1wcm9j bnVtID0+ICcxMycsCiAgIGFtcHJvYyA9PiAncmFuZ2Vfd2l0aG91dF9wb3J0aW9uKGFueXJh bmdlLGFueXJhbmdlKScgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L3JhbmdlX29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICdhbnlyYW5nZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn YW55cmFuZ2UnLCBhbXByb2NudW0gPT4gJzE0JywKKyAgYW1wcm9jID0+ICdyYW5nZV9pbnRl cnNlY3QoYW55cmFuZ2UsYW55cmFuZ2UpJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3Qv bmV0d29ya19vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW5ldCcsCiAgIGFtcHJvY3JpZ2h0 dHlwZSA9PiAnaW5ldCcsIGFtcHJvY251bSA9PiAnMScsCiAgIGFtcHJvYyA9PiAnaW5ldF9n aXN0X2NvbnNpc3RlbnQnIH0sCkBAIC02NTUsNiArNjYxLDkgQEAKIHsgYW1wcm9jZmFtaWx5 ID0+ICdnaXN0L211bHRpcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueW11bHRp cmFuZ2UnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLCBhbXByb2Nu dW0gPT4gJzEzJywKICAgYW1wcm9jID0+ICdtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihh bnltdWx0aXJhbmdlLGFueW11bHRpcmFuZ2UpJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2dp c3QvbXVsdGlyYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScs CisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsIGFtcHJvY251bSA9PiAn MTQnLAorICBhbXByb2MgPT4gJ211bHRpcmFuZ2VfaW50ZXJzZWN0KGFueW11bHRpcmFuZ2Us YW55bXVsdGlyYW5nZSknIH0sCiAKICMgZ2luCiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2luL2Fy cmF5X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlhcnJheScsCi0tIAoyLjQyLjAKCg== --------------OnvqRywVNIjsiZuvTo32rvFz Content-Type: text/x-patch; charset=UTF-8; name="v45-0006-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v45-0006-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 RnJvbSAxNzU3MTUxOThjZTQ3YzA0ODYxNDAxOTAzNGRiMWI2ZTc5MzEwZTlhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMjUgSnVuIDIwMjEgMTg6NTQ6MzUgLTA3 MDAKU3ViamVjdDogW1BBVENIIHY0NSA2LzhdIEFkZCBVUERBVEUvREVMRVRFIEZPUiBQT1JU SU9OIE9GCgotIEFkZGVkIGJpc29uIHN1cHBvcnQgZm9yIEZPUiBQT1JUSU9OIE9GIHN5bnRh eC4gVGhlIGJvdW5kcyBtdXN0IGJlCiAgY29uc3RhbnQsIHNvIHdlIGZvcmJpZCBjb2x1bW4g cmVmZXJlbmNlcywgc3VicXVlcmllcywgZXRjLiBCdXQgd2UKICBwZXJtaXQgdGhlIG1hZ2lj IFVOQk9VTkRFRCBrZXl3b3JkIGFzIHRoZSBGUk9NIG9yIHRoZSBUTyAob3IgYm90aCkKICB0 byBwZXJmb3JtIGFuIHVuYm91bmRlZCB1cGRhdGUvZGVsZXRlLiBXZSBhbHNvIGFjY2VwdCBm dW5jdGlvbnMgbGlrZQogIE5PVygpLgotIEFkZGVkIGxvZ2ljIHRvIGV4ZWN1dG9yIHRvIGlu c2VydCBuZXcgcm93cyBmb3IgdGhlICJsZWZ0b3ZlciIgcGFydCBvZgogIGEgcmVjb3JkIHRv dWNoZWQgYnkgYSBGT1IgUE9SVElPTiBPRiBxdWVyeS4KLSBBZGRlZCB0Z190ZW1wb3JhbCBk ZXNjcmlwdG9yIHRvIHRoZSBUcmlnZ2VyRGF0YSBzdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvCiAg dHJpZ2dlciBmdW5jdGlvbnMuIE91ciB0cmlnZ2VycyB1c2UgdGhpcyB0byBsZWFybiB3aGF0 IGJvdW5kcyB3ZXJlCiAgZ2l2ZW4gaW4gdGhlIEZPUiBQT1JUSU9OIE9GIGNsYXVzZS4KLSBE b2N1bWVudGVkIEZPUiBQT1JUSU9OIE9GLgotIERvY3VtZW50ZWQgdGdfdGVtcG9yYWwgc3Ry dWN0LgotIEFkZGVkIHRlc3RzLgotLS0KIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9z dGdyZXNfZmR3Lm91dCAgICB8ICA0NSArLQogY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bv c3RncmVzX2Zkdy5zcWwgICAgIHwgIDM0ICsKIGNvbnRyaWIvc2VwZ3NxbC9wcm9jLmMgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogY29udHJpYi91bmFjY2VudC91bmFjY2Vu dC5jICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9wdWJsaWNhdGlvbi5zZ21sICAgICAgfCAgIDYgKwogZG9jL3NyYy9zZ21sL3JlZi9kZWxl dGUuc2dtbCAgICAgICAgICAgICAgICAgIHwgIDcyICstCiBkb2Mvc3JjL3NnbWwvcmVmL3Vw ZGF0ZS5zZ21sICAgICAgICAgICAgICAgICAgfCAgOTAgKystCiBkb2Mvc3JjL3NnbWwvdHJp Z2dlci5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgNjQgKy0KIHNyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfY29uc3RyYWludC5jICAgICAgICAgICB8ICAxNCArCiBzcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYyAgICAgICAgICAgICAgICB8ICA0NyArKwogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jICAgICAgICB8IDQ5OCArKysrKysrKysr Ky0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwg IDI0ICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyAgICAgICB8 ICAgNiArLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jICAgICAgICAg IHwgICAxICsKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMgICAgICAg ICB8ICAgMyArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAg ICAgIHwgMjI4ICsrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAg ICAgICAgICAgIHwgMTAwICsrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jICAg ICAgICAgICAgICAgIHwgIDEwICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRl LmMgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j ICAgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMu YyAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJn ZS5jICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRl SGFuZGxlci5jICAgICAgICAgIHwgIDQwICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90 cmlnZ2Vycy5jICAgICAgICAgICB8ICA4MyArLQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv bHN5c2NhY2hlLmMgICAgICAgICAgIHwgIDI3ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdf Y29uc3RyYWludC5oICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy90 cmlnZ2VyLmggICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhl Y25vZGVzLmggICAgICAgICAgICAgICAgIHwgIDI0ICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAyMCArCiBzcmMvaW5jbHVkZS9ub2Rlcy9w YXRobm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMv cGxhbm5vZGVzLmggICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL25vZGVz L3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAyNiArCiBzcmMvaW5jbHVkZS9vcHRp bWl6ZXIvcGF0aG5vZGUuaCAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL3Bh cnNlci9hbmFseXplLmggICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9ub2RlLmggICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVk ZS91dGlscy9sc3lzY2FjaGUuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQgIHwgNzY0ICsrKysrKysrKysr KysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCAgICAg IHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQgICAg ICB8ICAxOCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5v dXQgfCAgMzIgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQg ICAgIHwgMzAzICsrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUg ICAgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25f b2Yuc3FsICAgICAgIHwgNTk3ICsrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9vcHJfc2FuaXR5LnNxbCAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHJpdmlsZWdlcy5zcWwgICAgICAgICAgIHwgIDE4ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3VwZGF0YWJsZV92aWV3cy5zcWwgICAgICB8ICAxNCArCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCAgICAgfCAxNTYgKysrLQogc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDM0X3RlbXBvcmFsLnBsICAgICAgIHwgMTEwICsrLQogNTIgZmlsZXMg Y2hhbmdlZCwgMzQyMyBpbnNlcnRpb25zKCspLCA5MiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91 dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9u X29mLnNxbAoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bv c3RncmVzX2Zkdy5vdXQgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jl c19mZHcub3V0CmluZGV4IGYyYmNkNmFhOThjLi5kN2I5Mzg5MWRkYiAxMDA2NDQKLS0tIGEv Y29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9j b250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC01Nywx MSArNTcsMTkgQEAgQ1JFQVRFIFRBQkxFICJTIDEiLiJUIDQiICgKIAljMyB0ZXh0LAogCUNP TlNUUkFJTlQgdDRfcGtleSBQUklNQVJZIEtFWSAoYzEpCiApOworQ1JFQVRFIFRBQkxFICJT IDEiLiJUIDUiICgKKwljMSBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisJYzIgaW50IE5PVCBOVUxM LAorCWMzIHRleHQsCisJYzQgZGF0ZXJhbmdlIE5PVCBOVUxMLAorCUNPTlNUUkFJTlQgdDVf cGtleSBQUklNQVJZIEtFWSAoYzEsIGM0IFdJVEhPVVQgT1ZFUkxBUFMpCispOwogLS0gRGlz YWJsZSBhdXRvdmFjdXVtIGZvciB0aGVzZSB0YWJsZXMgdG8gYXZvaWQgdW5leHBlY3RlZCBl ZmZlY3RzIG9mIHRoYXQKIEFMVEVSIFRBQkxFICJTIDEiLiJUIDEiIFNFVCAoYXV0b3ZhY3V1 bV9lbmFibGVkID0gJ2ZhbHNlJyk7CiBBTFRFUiBUQUJMRSAiUyAxIi4iVCAyIiBTRVQgKGF1 dG92YWN1dW1fZW5hYmxlZCA9ICdmYWxzZScpOwogQUxURVIgVEFCTEUgIlMgMSIuIlQgMyIg U0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSAnZmFsc2UnKTsKIEFMVEVSIFRBQkxFICJTIDEi LiJUIDQiIFNFVCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gJ2ZhbHNlJyk7CitBTFRFUiBUQUJM RSAiUyAxIi4iVCA1IiBTRVQgKGF1dG92YWN1dW1fZW5hYmxlZCA9ICdmYWxzZScpOwogSU5T RVJUIElOVE8gIlMgMSIuIlQgMSIKIAlTRUxFQ1QgaWQsCiAJICAgICAgIGlkICUgMTAsCkBA IC04OCwxMCArOTYsMTcgQEAgSU5TRVJUIElOVE8gIlMgMSIuIlQgNCIKIAkgICAgICAgJ0FB QScgfHwgdG9fY2hhcihpZCwgJ0ZNMDAwJykKIAlGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAx MDApIGlkOwogREVMRVRFIEZST00gIlMgMSIuIlQgNCIgV0hFUkUgYzEgJSAzICE9IDA7CS0t IGRlbGV0ZSBmb3Igb3V0ZXIgam9pbiB0ZXN0cworSU5TRVJUIElOVE8gIlMgMSIuIlQgNSIK KwlTRUxFQ1QgaW50NHJhbmdlKGlkLCBpZCArIDEpLAorCSAgICAgICBpZCArIDEsCisJICAg ICAgICdBQUEnIHx8IHRvX2NoYXIoaWQsICdGTTAwMCcpLAorICAgICAgICAnWzIwMDAtMDEt MDEsMjAyMC0wMS0wMSknCisJRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBpZDsKIEFO QUxZWkUgIlMgMSIuIlQgMSI7CiBBTkFMWVpFICJTIDEiLiJUIDIiOwogQU5BTFlaRSAiUyAx Ii4iVCAzIjsKIEFOQUxZWkUgIlMgMSIuIlQgNCI7CitBTkFMWVpFICJTIDEiLiJUIDUiOwog LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0gY3JlYXRlIGZvcmVpZ24gdGFibGVzCiAtLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CkBAIC0xMzksNiArMTU0LDEyIEBAIENSRUFURSBGT1JFSUdOIFRBQkxFIGZ0NyAo CiAJYzIgaW50IE5PVCBOVUxMLAogCWMzIHRleHQKICkgU0VSVkVSIGxvb3BiYWNrMyBPUFRJ T05TIChzY2hlbWFfbmFtZSAnUyAxJywgdGFibGVfbmFtZSAnVCA0Jyk7CitDUkVBVEUgRk9S RUlHTiBUQUJMRSBmdDggKAorCWMxIGludDRyYW5nZSBOT1QgTlVMTCwKKwljMiBpbnQgTk9U IE5VTEwsCisJYzMgdGV4dCwKKwljNCBkYXRlcmFuZ2UgTk9UIE5VTEwKKykgU0VSVkVSIGxv b3BiYWNrIE9QVElPTlMgKHNjaGVtYV9uYW1lICdTIDEnLCB0YWJsZV9uYW1lICdUIDUnKTsK IC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tIHRlc3RzIGZvciB2YWxpZGF0b3IKIC0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KQEAgLTIxMCw3ICsyMzEsOCBAQCBBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MiBBTFRF UiBDT0xVTU4gYzEgT1BUSU9OUyAoY29sdW1uX25hbWUgJ0MgMScpOwogIHB1YmxpYyB8IGZ0 NSAgIHwgbG9vcGJhY2sgIHwgKHNjaGVtYV9uYW1lICdTIDEnLCB0YWJsZV9uYW1lICdUIDQn KSB8IAogIHB1YmxpYyB8IGZ0NiAgIHwgbG9vcGJhY2syIHwgKHNjaGVtYV9uYW1lICdTIDEn LCB0YWJsZV9uYW1lICdUIDQnKSB8IAogIHB1YmxpYyB8IGZ0NyAgIHwgbG9vcGJhY2szIHwg KHNjaGVtYV9uYW1lICdTIDEnLCB0YWJsZV9uYW1lICdUIDQnKSB8IAotKDYgcm93cykKKyBw dWJsaWMgfCBmdDggICB8IGxvb3BiYWNrICB8IChzY2hlbWFfbmFtZSAnUyAxJywgdGFibGVf bmFtZSAnVCA1JykgfCAKKyg3IHJvd3MpCiAKIC0tIFRlc3QgdGhhdCBhbHRlcmF0aW9uIG9m IHNlcnZlciBvcHRpb25zIGNhdXNlcyByZWNvbm5lY3Rpb24KIC0tIFJlbW90ZSdzIGVycm9y cyBtaWdodCBiZSBub24tRW5nbGlzaCwgc28gaGlkZSB0aGVtIHRvIGVuc3VyZSBzdGFibGUg cmVzdWx0cwpAQCAtNjEyNSw2ICs2MTQ3LDI3IEBAIERFTEVURSBGUk9NIGZ0MiBXSEVSRSBj MSA9IDEyMDAgUkVUVVJOSU5HIHRhYmxlb2lkOjpyZWdjbGFzczsKICBmdDIKICgxIHJvdykK IAorLS0gVGVzdCBVUERBVEUgRk9SIFBPUlRJT04gT0YKK1VQREFURSBmdDggRk9SIFBPUlRJ T04gT0YgYzQgRlJPTSAnMjAwNS0wMS0wMScgVE8gJzIwMDYtMDEtMDEnCitTRVQgYzIgPSBj MiArIDEKK1dIRVJFIGMxID0gJ1sxLDIpJzsKK0VSUk9SOiAgZm9yZWlnbiB0YWJsZXMgZG9u J3Qgc3VwcG9ydCBGT1IgUE9SVElPTiBPRgorU0VMRUNUICogRlJPTSBmdDggV0hFUkUgYzEg PSAnWzEsMiknIE9SREVSIEJZIGMxLCBjNDsKKyAgYzEgICB8IGMyIHwgICBjMyAgIHwgICAg ICAgICAgIGM0ICAgICAgICAgICAgCistLS0tLS0tKy0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwgIDIgfCBBQUEwMDEgfCBbMDEtMDEtMjAwMCww MS0wMS0yMDIwKQorKDEgcm93KQorCistLSBUZXN0IERFTEVURSBGT1IgUE9SVElPTiBPRgor REVMRVRFIEZST00gZnQ4IEZPUiBQT1JUSU9OIE9GIGM0IEZST00gJzIwMDUtMDEtMDEnIFRP ICcyMDA2LTAxLTAxJworV0hFUkUgYzEgPSAnWzIsMyknOworRVJST1I6ICBmb3JlaWduIHRh YmxlcyBkb24ndCBzdXBwb3J0IEZPUiBQT1JUSU9OIE9GCitTRUxFQ1QgKiBGUk9NIGZ0OCBX SEVSRSBjMSA9ICdbMiwzKScgT1JERVIgQlkgYzEsIGM0OworICBjMSAgIHwgYzIgfCAgIGMz ICAgfCAgICAgICAgICAgYzQgICAgICAgICAgICAKKy0tLS0tLS0rLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzIsMykgfCAgMyB8IEFBQTAwMiB8IFswMS0w MS0yMDAwLDAxLTAxLTIwMjApCisoMSByb3cpCisKIC0tIFRlc3QgVVBEQVRFL0RFTEVURSB3 aXRoIFJFVFVSTklORyBvbiBhIHRocmVlLXRhYmxlIGpvaW4KIElOU0VSVCBJTlRPIGZ0MiAo YzEsYzIsYzMpCiAgIFNFTEVDVCBpZCwgaWQgLSAxMjAwLCB0b19jaGFyKGlkLCAnRk0wMDAw MCcpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEyMDEsIDEzMDApIGlkOwpkaWZmIC0tZ2l0IGEv Y29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwgYi9jb250cmliL3Bv c3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbAppbmRleCAzNzJmZTZkYWQxNS4uNjFj MDc1ODUwZGMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jl c19mZHcuc3FsCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcu c3FsCkBAIC02MSwxMiArNjEsMjAgQEAgQ1JFQVRFIFRBQkxFICJTIDEiLiJUIDQiICgKIAlj MyB0ZXh0LAogCUNPTlNUUkFJTlQgdDRfcGtleSBQUklNQVJZIEtFWSAoYzEpCiApOworQ1JF QVRFIFRBQkxFICJTIDEiLiJUIDUiICgKKwljMSBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisJYzIg aW50IE5PVCBOVUxMLAorCWMzIHRleHQsCisJYzQgZGF0ZXJhbmdlIE5PVCBOVUxMLAorCUNP TlNUUkFJTlQgdDVfcGtleSBQUklNQVJZIEtFWSAoYzEsIGM0IFdJVEhPVVQgT1ZFUkxBUFMp CispOwogCiAtLSBEaXNhYmxlIGF1dG92YWN1dW0gZm9yIHRoZXNlIHRhYmxlcyB0byBhdm9p ZCB1bmV4cGVjdGVkIGVmZmVjdHMgb2YgdGhhdAogQUxURVIgVEFCTEUgIlMgMSIuIlQgMSIg U0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSAnZmFsc2UnKTsKIEFMVEVSIFRBQkxFICJTIDEi LiJUIDIiIFNFVCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gJ2ZhbHNlJyk7CiBBTFRFUiBUQUJM RSAiUyAxIi4iVCAzIiBTRVQgKGF1dG92YWN1dW1fZW5hYmxlZCA9ICdmYWxzZScpOwogQUxU RVIgVEFCTEUgIlMgMSIuIlQgNCIgU0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSAnZmFsc2Un KTsKK0FMVEVSIFRBQkxFICJTIDEiLiJUIDUiIFNFVCAoYXV0b3ZhY3V1bV9lbmFibGVkID0g J2ZhbHNlJyk7CiAKIElOU0VSVCBJTlRPICJTIDEiLiJUIDEiCiAJU0VMRUNUIGlkLApAQCAt OTQsMTEgKzEwMiwxOCBAQCBJTlNFUlQgSU5UTyAiUyAxIi4iVCA0IgogCSAgICAgICAnQUFB JyB8fCB0b19jaGFyKGlkLCAnRk0wMDAnKQogCUZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEw MCkgaWQ7CiBERUxFVEUgRlJPTSAiUyAxIi4iVCA0IiBXSEVSRSBjMSAlIDMgIT0gMDsJLS0g ZGVsZXRlIGZvciBvdXRlciBqb2luIHRlc3RzCitJTlNFUlQgSU5UTyAiUyAxIi4iVCA1Igor CVNFTEVDVCBpbnQ0cmFuZ2UoaWQsIGlkICsgMSksCisJICAgICAgIGlkICsgMSwKKwkgICAg ICAgJ0FBQScgfHwgdG9fY2hhcihpZCwgJ0ZNMDAwJyksCisgICAgICAgICdbMjAwMC0wMS0w MSwyMDIwLTAxLTAxKScKKwlGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIGlkOwogCiBB TkFMWVpFICJTIDEiLiJUIDEiOwogQU5BTFlaRSAiUyAxIi4iVCAyIjsKIEFOQUxZWkUgIlMg MSIuIlQgMyI7CiBBTkFMWVpFICJTIDEiLiJUIDQiOworQU5BTFlaRSAiUyAxIi4iVCA1IjsK IAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0gY3JlYXRlIGZvcmVpZ24gdGFibGVzCkBAIC0xNTMs NiArMTY4LDE0IEBAIENSRUFURSBGT1JFSUdOIFRBQkxFIGZ0NyAoCiAJYzMgdGV4dAogKSBT RVJWRVIgbG9vcGJhY2szIE9QVElPTlMgKHNjaGVtYV9uYW1lICdTIDEnLCB0YWJsZV9uYW1l ICdUIDQnKTsKIAorQ1JFQVRFIEZPUkVJR04gVEFCTEUgZnQ4ICgKKwljMSBpbnQ0cmFuZ2Ug Tk9UIE5VTEwsCisJYzIgaW50IE5PVCBOVUxMLAorCWMzIHRleHQsCisJYzQgZGF0ZXJhbmdl IE5PVCBOVUxMCispIFNFUlZFUiBsb29wYmFjayBPUFRJT05TIChzY2hlbWFfbmFtZSAnUyAx JywgdGFibGVfbmFtZSAnVCA1Jyk7CisKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gdGVzdHMg Zm9yIHZhbGlkYXRvcgogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMTQ5OSw2ICsxNTIyLDE3IEBA IEVYUExBSU4gKHZlcmJvc2UsIGNvc3RzIG9mZikKIERFTEVURSBGUk9NIGZ0MiBXSEVSRSBj MSA9IDEyMDAgUkVUVVJOSU5HIHRhYmxlb2lkOjpyZWdjbGFzczsgICAgICAgICAgICAgICAg ICAgICAgIC0tIGNhbiBiZSBwdXNoZWQgZG93bgogREVMRVRFIEZST00gZnQyIFdIRVJFIGMx ID0gMTIwMCBSRVRVUk5JTkcgdGFibGVvaWQ6OnJlZ2NsYXNzOwogCistLSBUZXN0IFVQREFU RSBGT1IgUE9SVElPTiBPRgorVVBEQVRFIGZ0OCBGT1IgUE9SVElPTiBPRiBjNCBGUk9NICcy MDA1LTAxLTAxJyBUTyAnMjAwNi0wMS0wMScKK1NFVCBjMiA9IGMyICsgMQorV0hFUkUgYzEg PSAnWzEsMiknOworU0VMRUNUICogRlJPTSBmdDggV0hFUkUgYzEgPSAnWzEsMiknIE9SREVS IEJZIGMxLCBjNDsKKworLS0gVGVzdCBERUxFVEUgRk9SIFBPUlRJT04gT0YKK0RFTEVURSBG Uk9NIGZ0OCBGT1IgUE9SVElPTiBPRiBjNCBGUk9NICcyMDA1LTAxLTAxJyBUTyAnMjAwNi0w MS0wMScKK1dIRVJFIGMxID0gJ1syLDMpJzsKK1NFTEVDVCAqIEZST00gZnQ4IFdIRVJFIGMx ID0gJ1syLDMpJyBPUkRFUiBCWSBjMSwgYzQ7CisKIC0tIFRlc3QgVVBEQVRFL0RFTEVURSB3 aXRoIFJFVFVSTklORyBvbiBhIHRocmVlLXRhYmxlIGpvaW4KIElOU0VSVCBJTlRPIGZ0MiAo YzEsYzIsYzMpCiAgIFNFTEVDVCBpZCwgaWQgLSAxMjAwLCB0b19jaGFyKGlkLCAnRk0wMDAw MCcpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEyMDEsIDEzMDApIGlkOwpkaWZmIC0tZ2l0IGEv Y29udHJpYi9zZXBnc3FsL3Byb2MuYyBiL2NvbnRyaWIvc2VwZ3NxbC9wcm9jLmMKaW5kZXgg NDg5OWJjMmEzZTMuLjIwMTIwZmQ1MzFmIDEwMDY0NAotLS0gYS9jb250cmliL3NlcGdzcWwv cHJvYy5jCisrKyBiL2NvbnRyaWIvc2VwZ3NxbC9wcm9jLmMKQEAgLTE2MSw3ICsxNjEsNyBA QCBzZXBnc3FsX3Byb2NfZHJvcChPaWQgZnVuY3Rpb25JZCkKIAkgKiBjaGVjayBkYl9zY2hl bWE6e3JlbW92ZV9uYW1lfSBwZXJtaXNzaW9uCiAJICovCiAJb2JqZWN0LmNsYXNzSWQgPSBO YW1lc3BhY2VSZWxhdGlvbklkOwotCW9iamVjdC5vYmplY3RJZCA9IGdldF9mdW5jX25hbWVz cGFjZShmdW5jdGlvbklkKTsKKwlvYmplY3Qub2JqZWN0SWQgPSBnZXRfZnVuY19uYW1lc3Bh Y2UoZnVuY3Rpb25JZCwgdHJ1ZSk7CiAJb2JqZWN0Lm9iamVjdFN1YklkID0gMDsKIAlhdWRp dF9uYW1lID0gZ2V0T2JqZWN0SWRlbnRpdHkoJm9iamVjdCwgZmFsc2UpOwogCmRpZmYgLS1n aXQgYS9jb250cmliL3VuYWNjZW50L3VuYWNjZW50LmMgYi9jb250cmliL3VuYWNjZW50L3Vu YWNjZW50LmMKaW5kZXggMDIxNzY5NmFhYzEuLmU4N2E1ODhhM2FlIDEwMDY0NAotLS0gYS9j b250cmliL3VuYWNjZW50L3VuYWNjZW50LmMKKysrIGIvY29udHJpYi91bmFjY2VudC91bmFj Y2VudC5jCkBAIC00NDcsNyArNDQ3LDcgQEAgdW5hY2NlbnRfZGljdChQR19GVU5DVElPTl9B UkdTKQogCQkgKiBVc2UgdGhlICJ1bmFjY2VudCIgZGljdGlvbmFyeSB0aGF0IGlzIGluIHRo ZSBzYW1lIHNjaGVtYSB0aGF0IHRoaXMKIAkJICogZnVuY3Rpb24gaXMgaW4uCiAJCSAqLwot CQlPaWQJCQlwcm9jbnNwaWQgPSBnZXRfZnVuY19uYW1lc3BhY2UoZmNpbmZvLT5mbGluZm8t PmZuX29pZCk7CisJCU9pZAkJCXByb2Nuc3BpZCA9IGdldF9mdW5jX25hbWVzcGFjZShmY2lu Zm8tPmZsaW5mby0+Zm5fb2lkLCB0cnVlKTsKIAkJY29uc3QgY2hhciAqZGljdG5hbWUgPSAi dW5hY2NlbnQiOwogCiAJCWRpY3RPaWQgPSBHZXRTeXNDYWNoZU9pZDIoVFNESUNUTkFNRU5T UCwgQW51bV9wZ190c19kaWN0X29pZCwKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJs aWNhdGlvbi5zZ21sCmluZGV4IGY4ZTIxN2Q2NjEwLi4wNTRlOTA4ZTQyNyAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0zNDMsNiArMzQzLDEy IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+CiAgICBmb3IgZWFjaCByb3cgaW5zZXJ0ZWQsIHVwZGF0ZWQs IG9yIGRlbGV0ZWQuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIEZvciBhIDxjb21tYW5k PkZPUiBQT1JUSU9OIE9GPC9jb21tYW5kPiBjb21tYW5kLCB0aGUgcHVibGljYXRpb24gd2ls bCBwdWJsaXNoIGFuCisgICA8Y29tbWFuZD5VUERBVEU8L2NvbW1hbmQ+IG9yIDxjb21tYW5k PkRFTEVURTwvY29tbWFuZD4sIGZvbGxvd2VkIGJ5IG9uZQorICAgPGNvbW1hbmQ+SU5TRVJU PC9jb21tYW5kPiBmb3IgZWFjaCBsZWZ0b3ZlciByb3cgaW5zZXJ0ZWQuCisgIDwvcGFyYT4K KwogICA8cGFyYT4KICAgIDxjb21tYW5kPkFUVEFDSDwvY29tbWFuZD5pbmcgYSB0YWJsZSBp bnRvIGEgcGFydGl0aW9uIHRyZWUgd2hvc2Ugcm9vdCBpcwogICAgcHVibGlzaGVkIHVzaW5n IGEgcHVibGljYXRpb24gd2l0aCA8bGl0ZXJhbD5wdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9v dDwvbGl0ZXJhbD4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21sCmluZGV4IDc3MTc4NTViYzllLi42MzMw ZmRmZjRjMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21sCkBAIC0yMiw3ICsyMiw5IEBAIFBvc3Rn cmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIFsg V0lUSCBbIFJFQ1VSU0lWRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj53aXRo X3F1ZXJ5PC9yZXBsYWNlYWJsZT4gWywgLi4uXSBdCi1ERUxFVEUgRlJPTSBbIE9OTFkgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+ IFsgKiBdIFsgWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwv cmVwbGFjZWFibGU+IF0KK0RFTEVURSBGUk9NIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0KKyAgICBbIEZP UiBQT1JUSU9OIE9GIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5nZV9vcl9w ZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+IEZST00gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnN0YXJ0X3RpbWU8L3JlcGxhY2VhYmxlPiBUTyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZW5kX3RpbWU8L3JlcGxhY2VhYmxlPiBdCisgICAgWyBbIEFTIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFsaWFzPC9yZXBsYWNlYWJsZT4gXQogICAg IFsgVVNJTkcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZyb21faXRlbTwvcmVw bGFjZWFibGU+IFssIC4uLl0gXQogICAgIFsgV0hFUkUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbmRpdGlvbjwvcmVwbGFjZWFibGU+IHwgV0hFUkUgQ1VSUkVOVCBPRiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y3Vyc29yX25hbWU8L3JlcGxhY2VhYmxl PiBdCiAgICAgWyBSRVRVUk5JTkcgeyAqIHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm91dHB1dF9leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gWyBbIEFTIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm91dHB1dF9uYW1lPC9yZXBsYWNlYWJsZT4gXSB9IFss IC4uLl0gXQpAQCAtNTQsNiArNTYsMzkgQEAgREVMRVRFIEZST00gWyBPTkxZIF0gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICoK ICAgIGNpcmN1bXN0YW5jZXMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIElmIHRoZSB0 YWJsZSBoYXMgYSByYW5nZSBvciBtdWx0aXJhbmdlIGNvbHVtbiwKKyAgIHlvdSBtYXkgc3Vw cGx5IGEgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGNsYXVzZSwgYW5kIHlv dXIgZGVsZXRlIHdpbGwKKyAgIG9ubHkgYWZmZWN0IHJvd3MgdGhhdCBvdmVybGFwIHRoZSBn aXZlbiBpbnRlcnZhbC4gRnVydGhlcm1vcmUsIGlmIGEgcm93J3Mgc3BhbgorICAgZXh0ZW5k cyBvdXRzaWRlIHRoZSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRz LCB0aGVuIHlvdXIgZGVsZXRlCisgICB3aWxsIG9ubHkgY2hhbmdlIHRoZSBzcGFuIHdpdGhp biB0aG9zZSBib3VuZHMuIEluIGVmZmVjdCB5b3UgYXJlIGRlbGV0aW5nIGFueQorICAgbW9t ZW50IHRhcmdldGVkIGJ5IDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBhbmQg bm8gbW9tZW50cyBvdXRzaWRlLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBTcGVjaWZp Y2FsbHksIGFmdGVyIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZGVs ZXRlcyB0aGUgZXhpc3Rpbmcgcm93LAorICAgaXQgd2lsbCA8bGl0ZXJhbD5JTlNFUlQ8L2xp dGVyYWw+CisgICBuZXcgcm93cyB3aG9zZSByYW5nZSBvciBzdGFydC9lbmQgY29sdW1uKHMp IHJlY2VpdmUgdGhlIHJlbWFpbmluZyBzcGFuIG91dHNpZGUKKyAgIHRoZSB0YXJnZXRlZCBi b3VuZHMsIGNvbnRhaW5pbmcgdGhlIG9yaWdpbmFsIHZhbHVlcyBpbiBvdGhlciBjb2x1bW5z LgorICAgVGhlcmUgd2lsbCBiZSB6ZXJvIHRvIHR3byBpbnNlcnRlZCByZWNvcmRzLAorICAg ZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIG9yaWdpbmFsIHNwYW4gZXh0ZW5kZWQgYmVmb3Jl IHRoZSB0YXJnZXRlZAorICAgPGxpdGVyYWw+RlJPTTwvbGl0ZXJhbD4sIGFmdGVyIHRoZSB0 YXJnZXRlZCA8bGl0ZXJhbD5UTzwvbGl0ZXJhbD4sIGJvdGgsIG9yIG5laXRoZXIuCisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFRoZXNlIHNlY29uZGFyeSBpbnNlcnRzIGZpcmUgPGxp dGVyYWw+SU5TRVJUPC9saXRlcmFsPiB0cmlnZ2Vycy4gRmlyc3QKKyAgIDxsaXRlcmFsPkJF Rk9SRSBERUxFVEU8L2xpdGVyYWw+IHRyaWdnZXJzIGZpcnN0LCB0aGVuCisgICA8bGl0ZXJh bD5CRUZPUkUgSU5TRVJUPC9saXRlcmFsPiwgdGhlbiA8bGl0ZXJhbD5BRlRFUiBJTlNFUlQ8 L2xpdGVyYWw+LAorICAgdGhlbiA8bGl0ZXJhbD5BRlRFUiBERUxFVEU8L2xpdGVyYWw+Lgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGVzZSBzZWNvbmRhcnkgaW5zZXJ0cyBkbyBu b3QgcmVxdWlyZSA8bGl0ZXJhbD5JTlNFUlQ8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUg dGFibGUuCisgICBUaGlzIGlzIGJlY2F1c2UgY29uY2VwdHVhbGx5IG5vIG5ldyBpbmZvcm1h dGlvbiBoYXMgYmVlbiBhZGRlZC4gVGhlIGluc2VydGVkIHJvd3Mgb25seSBwcmVzZXJ2ZQor ICAgZXhpc3RpbmcgZGF0YSBhYm91dCB0aGUgdW50YXJnZXRlZCB0aW1lIHBlcmlvZC4gTm90 ZSB0aGlzIG1heSByZXN1bHQgaW4gdXNlcnMgZmlyaW5nIDxsaXRlcmFsPklOU0VSVDwvbGl0 ZXJhbD4KKyAgIHRyaWdnZXJzIHdobyBkb24ndCBoYXZlIGluc2VydCBwcml2aWxlZ2VzLCBz byBiZSBjYXJlZnVsIGFib3V0IDxsaXRlcmFsPlNFQ1VSSVRZIERFRklORVI8L2xpdGVyYWw+ IHRyaWdnZXIgZnVuY3Rpb25zIQorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBUaGUgb3B0 aW9uYWwgPGxpdGVyYWw+UkVUVVJOSU5HPC9saXRlcmFsPiBjbGF1c2UgY2F1c2VzIDxjb21t YW5kPkRFTEVURTwvY29tbWFuZD4KICAgIHRvIGNvbXB1dGUgYW5kIHJldHVybiB2YWx1ZShz KSBiYXNlZCBvbiBlYWNoIHJvdyBhY3R1YWxseSBkZWxldGVkLgpAQCAtMTE2LDYgKzE1MSw0 MSBAQCBERUxFVEUgRlJPTSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKgogICAgIDwvbGlzdGl0ZW0+CiAgICA8 L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2Vh YmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIHJh bmdlIGNvbHVtbiBvciBwZXJpb2QgdG8gdXNlIHdoZW4gcGVyZm9ybWluZyBhIHRlbXBvcmFs IGRlbGV0ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+c3RhcnRfdGltZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgZWFybGllc3QgdGltZSAoaW5jbHVz aXZlKSB0byBjaGFuZ2UgaW4gYSB0ZW1wb3JhbCBkZWxldGUuCisgICAgICBUaGlzIG11c3Qg YmUgYSB2YWx1ZSBtYXRjaGluZyB0aGUgYmFzZSB0eXBlIG9mIHRoZSByYW5nZSBvciBwZXJp b2QgZnJvbQorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJhbmdlX29y X3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4uIEEKKyAgICAgIDxsaXRlcmFsPk5VTEw8L2xp dGVyYWw+IGhlcmUgaW5kaWNhdGVzIGEgZGVsZXRlIHdob3NlIGJlZ2lubmluZyBpcworICAg ICAgdW5ib3VuZGVkIChhcyB3aXRoIHJhbmdlIHR5cGVzKS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4K KyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZW5kX3RpbWU8L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhlIGxhdGVzdCB0aW1lIChleGNsdXNpdmUpIHRvIGNoYW5nZSBpbiBhIHRlbXBvcmFsIGRl bGV0ZS4KKyAgICAgIFRoaXMgbXVzdCBiZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBiYXNlIHR5 cGUgb2YgdGhlIHJhbmdlIG9yIHBlcmlvZCBmcm9tCisgICAgICA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPi4gQQor ICAgICAgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gaGVyZSBpbmRpY2F0ZXMgYSBkZWxldGUg d2hvc2UgZW5kIGlzIHVuYm91bmRlZAorICAgICAgKGFzIHdpdGggcmFuZ2UgdHlwZXMpLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAg ICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5mcm9tX2l0ZW08L3JlcGxhY2VhYmxlPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi91cGRhdGUuc2dtbAppbmRleCAxYzQzM2JlYzJiYi4uYzg5M2NjNzk1ZjIgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi91cGRhdGUuc2dtbApAQCAtMjIsNyArMjIsOSBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50 YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBbIFdJVEggWyBSRUNVUlNJ VkUgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+d2l0aF9xdWVyeTwvcmVwbGFj ZWFibGU+IFssIC4uLl0gXQotVVBEQVRFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyBbIEFTIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFsaWFzPC9yZXBsYWNlYWJsZT4gXQorVVBE QVRFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1l PC9yZXBsYWNlYWJsZT4gWyAqIF0KKyAgICBbIEZPUiBQT1JUSU9OIE9GIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+ IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5mb3JfcG9ydGlvbl9vZl90YXJnZXQ8 L3JlcGxhY2VhYmxlPiBdCisgICAgWyBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmFsaWFzPC9yZXBsYWNlYWJsZT4gXQogICAgIFNFVCB7IDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ID0geyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IHwgREVG QVVMVCB9IHwKICAgICAgICAgICAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5j b2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSA9IFsgUk9XIF0gKCB7IDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gfCBE RUZBVUxUIH0gWywgLi4uXSApIHwKICAgICAgICAgICAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSA9ICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN1Yi1TRUxFQ1Q8L3JlcGxhY2VhYmxlPiAp CkBAIC01MSw2ICs1Myw0MSBAQCBVUERBVEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbCiAgICBjaXJj dW1zdGFuY2VzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBJZiB0aGUgdGFibGUgaGFz IGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSBjb2x1bW4sCisgICB5b3UgbWF5IHN1cHBseSBhIDxs aXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsIGFuZCB5b3VyIHVwZGF0 ZSB3aWxsCisgICBvbmx5IGFmZmVjdCByb3dzIHRoYXQgb3ZlcmxhcCB0aGUgZ2l2ZW4gaW50 ZXJ2YWwuIEZ1cnRoZXJtb3JlLCBpZiBhIHJvdydzIHNwYW4KKyAgIGV4dGVuZHMgb3V0c2lk ZSB0aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGJvdW5kcywgdGhlbiB5 b3VyIHVwZGF0ZQorICAgd2lsbCBvbmx5IGNoYW5nZSB0aGUgc3BhbiB3aXRoaW4gdGhvc2Ug Ym91bmRzLiBJbiBlZmZlY3QgeW91IGFyZSB1cGRhdGluZyBhbnkKKyAgIG1vbWVudCB0YXJn ZXRlZCBieSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYW5kIG5vIG1vbWVu dHMgb3V0c2lkZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgU3BlY2lmaWNhbGx5LCB3 aGVuIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gdXBkYXRlcyB0aGUg ZXhpc3Rpbmcgcm93LAorICAgaXQgd2lsbCBhbHNvIGNoYW5nZSB0aGUgcmFuZ2Ugb3Igc3Rh cnQvZW5kIGNvbHVtbihzKSBzbyB0aGF0IHRoZWlyIGludGVydmFsCisgICBubyBsb25nZXIg ZXh0ZW5kcyBiZXlvbmQgdGhlIHRhcmdldGVkIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9s aXRlcmFsPiBib3VuZHMuCisgICBUaGVuIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9k dWN0bmFtZT4gd2lsbCA8bGl0ZXJhbD5JTlNFUlQ8L2xpdGVyYWw+CisgICBuZXcgcm93cyB3 aG9zZSByYW5nZSBvciBzdGFydC9lbmQgY29sdW1uKHMpIHJlY2VpdmUgdGhlIHJlbWFpbmlu ZyBzcGFuIG91dHNpZGUKKyAgIHRoZSB0YXJnZXRlZCBib3VuZHMsIGNvbnRhaW5pbmcgdGhl IHVuLXVwZGF0ZWQgdmFsdWVzIGluIG90aGVyIGNvbHVtbnMuCisgICBUaGVyZSB3aWxsIGJl IHplcm8gdG8gdHdvIGluc2VydGVkIHJlY29yZHMsCisgICBkZXBlbmRpbmcgb24gd2hldGhl ciB0aGUgb3JpZ2luYWwgc3BhbiBleHRlbmRlZCBiZWZvcmUgdGhlIHRhcmdldGVkCisgICA8 bGl0ZXJhbD5GUk9NPC9saXRlcmFsPiwgYWZ0ZXIgdGhlIHRhcmdldGVkIDxsaXRlcmFsPlRP PC9saXRlcmFsPiwgYm90aCwgb3IgbmVpdGhlci4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgor ICAgVGhlc2Ugc2Vjb25kYXJ5IGluc2VydHMgZmlyZSA8bGl0ZXJhbD5JTlNFUlQ8L2xpdGVy YWw+IHRyaWdnZXJzLiBGaXJzdAorICAgPGxpdGVyYWw+QkVGT1JFIFVQREFURTwvbGl0ZXJh bD4gdHJpZ2dlcnMgZmlyc3QsIHRoZW4KKyAgIDxsaXRlcmFsPkJFRk9SRSBJTlNFUlQ8L2xp dGVyYWw+LCB0aGVuIDxsaXRlcmFsPkFGVEVSIElOU0VSVDwvbGl0ZXJhbD4sCisgICB0aGVu IDxsaXRlcmFsPkFGVEVSIFVQREFURTwvbGl0ZXJhbD4uCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFRoZXNlIHNlY29uZGFyeSBpbnNlcnRzIGRvIG5vdCByZXF1aXJlIDxsaXRlcmFs PklOU0VSVDwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSB0YWJsZS4KKyAgIFRoaXMgaXMg YmVjYXVzZSBjb25jZXB0dWFsbHkgbm8gbmV3IGluZm9ybWF0aW9uIGhhcyBiZWVuIGFkZGVk LiBUaGUgaW5zZXJ0ZWQgcm93cyBvbmx5IHByZXNlcnZlCisgICBleGlzdGluZyBkYXRhIGFi b3V0IHRoZSB1bnRhcmdldGVkIHRpbWUgcGVyaW9kLiBOb3RlIHRoaXMgbWF5IHJlc3VsdCBp biB1c2VycyBmaXJpbmcgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPgorICAgdHJpZ2dlcnMg d2hvIGRvbid0IGhhdmUgaW5zZXJ0IHByaXZpbGVnZXMsIHNvIGJlIGNhcmVmdWwgYWJvdXQg PGxpdGVyYWw+U0VDVVJJVFkgREVGSU5FUjwvbGl0ZXJhbD4gdHJpZ2dlciBmdW5jdGlvbnMh CisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRoZSBvcHRpb25hbCA8bGl0ZXJhbD5SRVRV Uk5JTkc8L2xpdGVyYWw+IGNsYXVzZSBjYXVzZXMgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5k PgogICAgdG8gY29tcHV0ZSBhbmQgcmV0dXJuIHZhbHVlKHMpIGJhc2VkIG9uIGVhY2ggcm93 IGFjdHVhbGx5IHVwZGF0ZWQuCkBAIC0xMTQsNiArMTUxLDU3IEBAIFVQREFURSBbIE9OTFkg XSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFi bGU+IFsgKiBdIFsKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg IDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSByYW5nZSBjb2x1bW4gb3IgcGVyaW9k IHRvIHVzZSB3aGVuIHBlcmZvcm1pbmcgYSB0ZW1wb3JhbCB1cGRhdGUuCisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0 ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZvcl9w b3J0aW9uX29mX3RhcmdldDwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBUaGUgaW50ZXJ2YWwgdG8gdXBkYXRlLiBJZiB5b3UgYXJl IHRhcmdldGluZyBhIHJhbmdlIGNvbHVtbiBvciA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+ LAorICAgICAgeW91IG1heSBnaXZlIHRoaXMgaW4gdGhlIGZvcm0gPGxpdGVyYWw+RlJPTTwv bGl0ZXJhbD4KKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdGFydF90 aW1lPC9yZXBsYWNlYWJsZT4gPGxpdGVyYWw+VE88L2xpdGVyYWw+CisgICAgICA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZW5kX3RpbWU8L3JlcGxhY2VhYmxlPi4KKyAgICAg IE90aGVyd2lzZSB5b3UgbXVzdCB1c2UKKyAgICAgIDxsaXRlcmFsPig8L2xpdGVyYWw+PHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPjxs aXRlcmFsPik8L2xpdGVyYWw+CisgICAgICB3aGVyZSB0aGUgZXhwcmVzc2lvbiB5aWVsZHMg YSB2YWx1ZSBmb3IgdGhlIHNhbWUgdHlwZSBhcworICAgICAgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4uCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2 YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnN0YXJ0X3RpbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgVGhlIGVhcmxpZXN0IHRpbWUgKGluY2x1c2l2ZSkgdG8gY2hhbmdl IGluIGEgdGVtcG9yYWwgdXBkYXRlLgorICAgICAgVGhpcyBtdXN0IGJlIGEgdmFsdWUgbWF0 Y2hpbmcgdGhlIGJhc2UgdHlwZSBvZiB0aGUgcmFuZ2Ugb3IgcGVyaW9kIGZyb20KKyAgICAg IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5nZV9vcl9wZXJpb2RfbmFtZTwv cmVwbGFjZWFibGU+LiBBCisgICAgICA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBoZXJlIGlu ZGljYXRlcyBhbiB1cGRhdGUgd2hvc2UgYmVnaW5uaW5nIGlzCisgICAgICB1bmJvdW5kZWQg KGFzIHdpdGggcmFuZ2UgdHlwZXMpLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5lbmRfdGltZTwvcmVwbGFjZWFibGU+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbGF0ZXN0IHRp bWUgKGV4Y2x1c2l2ZSkgdG8gY2hhbmdlIGluIGEgdGVtcG9yYWwgdXBkYXRlLgorICAgICAg VGhpcyBtdXN0IGJlIGEgdmFsdWUgbWF0Y2hpbmcgdGhlIGJhc2UgdHlwZSBvZiB0aGUgcmFu Z2Ugb3IgcGVyaW9kIGZyb20KKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+LiBBCisgICAgICA8bGl0ZXJh bD5OVUxMPC9saXRlcmFsPiBoZXJlIGluZGljYXRlcyBhbiB1cGRhdGUgd2hvc2UgZW5kIGlz IHVuYm91bmRlZAorICAgICAgKGFzIHdpdGggcmFuZ2UgdHlwZXMpLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVu dHJ5PgogICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5f bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21s CmluZGV4IGE5YWJhYWI5MDU2Li42MjQ1MTRmZmJmZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3RyaWdnZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21sCkBAIC0z NjYsNiArMzY2LDE1IEBACiAgICAgcmVzcG9uc2liaWxpdHkgdG8gYXZvaWQgdGhhdC4KICAg IDwvcGFyYT4KIAorICAgPHBhcmE+CisgICAgSWYgYW4gPGNvbW1hbmQ+VVBEQVRFPC9jb21t YW5kPiBvciA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+IHVzZXMKKyAgICA8bGl0ZXJhbD5G T1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4sIGNhdXNpbmcgbmV3IHJvd3MgdG8gYmUgaW5zZXJ0 ZWQKKyAgICB0byBwcmVzZXJ2ZSB0aGUgbGVmdG92ZXIgdW50YXJnZXRlZCBwYXJ0IG9mIG1v ZGlmaWVkIHJlY29yZHMsIHRoZW4KKyAgICA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+IHRy aWdnZXJzIGFyZSBmaXJlZCBmb3IgZWFjaCBpbnNlcnRlZAorICAgIHJvdy4gRWFjaCByb3cg aXMgaW5zZXJ0ZWQgc2VwYXJhdGVseSwgc28gdGhleSBmaXJlIHRoZWlyIG93bgorICAgIHN0 YXRlbWVudCB0cmlnZ2VycywgYW5kIHRoZXkgaGF2ZSB0aGVpciBvd24gdHJhbnNpdGlvbiB0 YWJsZXMuCisgICA8L3BhcmE+CisKICAgIDxwYXJhPgogICAgIDxpbmRleHRlcm0+CiAgICAg IDxwcmltYXJ5PnRyaWdnZXI8L3ByaW1hcnk+CkBAIC01NDcsMTcgKzU1NiwxOCBAQCBDQUxM RURfQVNfVFJJR0dFUihmY2luZm8pCiA8cHJvZ3JhbWxpc3Rpbmc+CiB0eXBlZGVmIHN0cnVj dCBUcmlnZ2VyRGF0YQogewotICAgIE5vZGVUYWcgICAgICAgICAgdHlwZTsKLSAgICBUcmln Z2VyRXZlbnQgICAgIHRnX2V2ZW50OwotICAgIFJlbGF0aW9uICAgICAgICAgdGdfcmVsYXRp b247Ci0gICAgSGVhcFR1cGxlICAgICAgICB0Z190cmlndHVwbGU7Ci0gICAgSGVhcFR1cGxl ICAgICAgICB0Z19uZXd0dXBsZTsKLSAgICBUcmlnZ2VyICAgICAgICAgKnRnX3RyaWdnZXI7 Ci0gICAgVHVwbGVUYWJsZVNsb3QgICp0Z190cmlnc2xvdDsKLSAgICBUdXBsZVRhYmxlU2xv dCAgKnRnX25ld3Nsb3Q7Ci0gICAgVHVwbGVzdG9yZXN0YXRlICp0Z19vbGR0YWJsZTsKLSAg ICBUdXBsZXN0b3Jlc3RhdGUgKnRnX25ld3RhYmxlOwotICAgIGNvbnN0IEJpdG1hcHNldCAq dGdfdXBkYXRlZGNvbHM7CisgICAgTm9kZVRhZyAgICAgICAgICAgIHR5cGU7CisgICAgVHJp Z2dlckV2ZW50ICAgICAgIHRnX2V2ZW50OworICAgIFJlbGF0aW9uICAgICAgICAgICB0Z19y ZWxhdGlvbjsKKyAgICBIZWFwVHVwbGUgICAgICAgICAgdGdfdHJpZ3R1cGxlOworICAgIEhl YXBUdXBsZSAgICAgICAgICB0Z19uZXd0dXBsZTsKKyAgICBUcmlnZ2VyICAgICAgICAgICAq dGdfdHJpZ2dlcjsKKyAgICBUdXBsZVRhYmxlU2xvdCAgICAqdGdfdHJpZ3Nsb3Q7CisgICAg VHVwbGVUYWJsZVNsb3QgICAgKnRnX25ld3Nsb3Q7CisgICAgVHVwbGVzdG9yZXN0YXRlICAg KnRnX29sZHRhYmxlOworICAgIFR1cGxlc3RvcmVzdGF0ZSAgICp0Z19uZXd0YWJsZTsKKyAg ICBjb25zdCBCaXRtYXBzZXQgICAqdGdfdXBkYXRlZGNvbHM7CisgICAgRm9yUG9ydGlvbk9m U3RhdGUgKnRnX3RlbXBvcmFsOwogfSBUcmlnZ2VyRGF0YTsKIDwvcHJvZ3JhbWxpc3Rpbmc+ CiAKQEAgLTgyNSw2ICs4MzUsMzggQEAgdHlwZWRlZiBzdHJ1Y3QgVHJpZ2dlcgogICAgICAg IDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgorCisg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48c3RydWN0ZmllbGQ+dGdfdGVtcG9y YWw8L3N0cnVjdGZpZWxkPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFy YT4KKyAgICAgICAgU2V0IGZvciA8bGl0ZXJhbD5VUERBVEU8L2xpdGVyYWw+IGFuZCA8bGl0 ZXJhbD5ERUxFVEU8L2xpdGVyYWw+IHF1ZXJpZXMKKyAgICAgICAgdGhhdCB1c2UgPGxpdGVy YWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+LCBvdGhlcndpc2UgPHN5bWJvbD5OVUxMPC9z eW1ib2w+LgorICAgICAgICBDb250YWlucyBhIHBvaW50ZXIgdG8gYSBzdHJ1Y3R1cmUgb2Yg dHlwZQorICAgICAgICA8c3RydWN0bmFtZT5Gb3JQb3J0aW9uT2ZTdGF0ZTwvc3RydWN0bmFt ZT4sIGRlZmluZWQgaW4KKyAgICAgICAgPGZpbGVuYW1lPm5vZGVzL2V4ZWNub2Rlcy5oPC9m aWxlbmFtZT46CisKKzxwcm9ncmFtbGlzdGluZz4KK3R5cGVkZWYgc3RydWN0IEZvclBvcnRp b25PZlN0YXRlCit7CisgICAgTm9kZVRhZyB0eXBlOworCisgICAgY2hhciAgICpmcF9yYW5n ZU5hbWU7ICAgICAgIC8qIHRoZSBjb2x1bW4gbmFtZWQgaW4gRk9SIFBPUlRJT04gT0YgKi8K KyAgICBPaWQgICAgIGZwX3JhbmdlVHlwZTsgICAgICAgLyogdGhlIHR5cGUgb2YgdGhlIEZP UiBQT1JUSU9OIE9GIGV4cHJlc3Npb24gKi8KKyAgICBpbnQgICAgIGZwX3JhbmdlQXR0bm87 ICAgICAgLyogdGhlIGF0dG5vIG9mIHRoZSByYW5nZSBjb2x1bW4gKi8KKyAgICBEYXR1bSAg IGZwX3RhcmdldFJhbmdlOyAgICAgLyogdGhlIHJhbmdlL211bHRpcmFuZ2UvZXRjIGZyb20g Rk9SIFBPUlRJT04gT0YgKi8KK30gRm9yUG9ydGlvbk9mU3RhdGU7Cis8L3Byb2dyYW1saXN0 aW5nPgorCisgICAgICAgd2hlcmUgPHN0cnVjdGZpZWxkPmZwX3JhbmdlTmFtZTwvc3RydWN0 ZmllbGQ+IGlzIHRoZSByYW5nZQorICAgICAgIGNvbHVtbiBuYW1lZCBpbiB0aGUgPGxpdGVy YWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGNsYXVzZSwKKyAgICAgICA8c3RydWN0Zmll bGQ+ZnBfcmFuZ2VUeXBlPC9zdHJ1Y3RmaWVsZD4gaXMgaXRzIHJhbmdlIHR5cGUsCisgICAg ICAgPHN0cnVjdGZpZWxkPmZwX3JhbmdlQXR0bm88L3N0cnVjdGZpZWxkPiBpcyBpdHMgYXR0 cmlidXRlIG51bWJlciwKKyAgICAgICBhbmQgPHN0cnVjdGZpZWxkPmZwX3RhcmdldFJhbmdl PC9zdHJ1Y3RmaWVsZD4gaXMgYSByYW5nZXR5cGUgdmFsdWUgY3JlYXRlZAorICAgICAgIGJ5 IGV2YWx1YXRpbmcgdGhlIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBib3Vu ZHMuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0 ZW50cnk+CiAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICA8L3BhcmE+CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19jb25zdHJhaW50LmMKaW5kZXggNDY4MTAxOWI5ZjkuLmM0NzRjMDhiODY4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYworKysgYi9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYwpAQCAtMTYyMCw2ICsxNjIwLDcg QEAgRmluZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhPaWQgb3BjbGFzcywKIAkJCQkJCSAgT2lk ICpjb250YWluZWRieW9wZXJvaWQsCiAJCQkJCQkgIE9pZCAqYWdnZWRjb250YWluZWRieW9w ZXJvaWQsCiAJCQkJCQkgIE9pZCAqaW50ZXJzZWN0b3Blcm9pZCwKKwkJCQkJCSAgT2lkICpp bnRlcnNlY3Rwcm9jb2lkLAogCQkJCQkJICBPaWQgKndpdGhvdXRwb3J0aW9ub2lkKQogewog CU9pZAkJCW9wZmFtaWx5ID0gSW52YWxpZE9pZDsKQEAgLTE2NzMsNiArMTY3NCwxOSBAQCBG aW5kRktQZXJpb2RPcGVyc0FuZFByb2NzKE9pZCBvcGNsYXNzLAogCQkJZWxvZyhFUlJPUiwg IlVuZXhwZWN0ZWQgb3BjaW50eXBlOiAldSIsIG9wY2ludHlwZSk7CiAJfQogCisJLyoKKwkg KiBMb29rIHVwIHRoZSBpbnRlcnNlY3QgcHJvYy4gV2UgdXNlIHRoaXMgZm9yIEZPUiBQT1JU SU9OIE9GCisJICogKGJvdGggdGhlIG9wZXJhdGlvbiBpdHNlbGYgYW5kIHdoZW4gY2hlY2tp bmcgZm9yZWlnbiBrZXlzKS4KKwkgKiBJZiB0aGlzIGlzIG1pc3Npbmcgd2UgZG9uJ3QgbmVl ZCB0byBjb21wbGFpbiBoZXJlLAorCSAqIGJlY2F1c2UgRk9SIFBPUlRJT04gT0Ygd2lsbCBu b3QgYmUgYWxsb3dlZC4KKwkgKi8KKwkqaW50ZXJzZWN0cHJvY29pZCA9IEludmFsaWRPaWQ7 CisJKmludGVyc2VjdHByb2NvaWQgPSBnZXRfb3BmYW1pbHlfcHJvYyhvcGZhbWlseSwgb3Bj aW50eXBlLCBvcGNpbnR5cGUsIEdJU1RfSU5URVJTRUNUX1BST0MpOworCisJLyoKKwkgKiBM b29rIHVwIHRoZSB3aXRob3V0X3BvcnRpb24gZnVuYy4gV2UgbmVlZCB0aGlzIGZvciBSRVNU UklDVAorCSAqIGZvcmVpZ24ga2V5cyBhbmQgYWxzbyBGT1IgUE9SVElPTiBPRi4KKwkgKi8K IAkqd2l0aG91dHBvcnRpb25vaWQgPSBJbnZhbGlkT2lkOwogCSp3aXRob3V0cG9ydGlvbm9p ZCA9IGdldF9vcGZhbWlseV9wcm9jKG9wZmFtaWx5LCBvcGNpbnR5cGUsIG9wY2ludHlwZSwg R0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQyk7CiAJaWYgKCFPaWRJc1ZhbGlkKCp3aXRob3V0 cG9ydGlvbm9pZCkpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IGQyMGNiMGY5 ZTZlLi45NTUxZWVjMzBkYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTEw MjI1LDExICsxMDIyNSwxMiBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3 cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQlPaWQJCQlw ZXJpb2RvcGVyb2lkOwogCQlPaWQJCQlhZ2dlZHBlcmlvZG9wZXJvaWQ7CiAJCU9pZAkJCWlu dGVyc2VjdG9wZXJvaWQ7CisJCU9pZAkJCWludGVyc2VjdHByb2NvaWQ7CiAJCU9pZAkJCXdp dGhvdXRvdmVybGFwc29pZDsKIAogCQlGaW5kRktQZXJpb2RPcGVyc0FuZFByb2NzKG9wY2xh c3Nlc1tudW1wa3MgLSAxXSwgJnBlcmlvZG9wZXJvaWQsCiAJCQkJCQkJCSAgJmFnZ2VkcGVy aW9kb3Blcm9pZCwgJmludGVyc2VjdG9wZXJvaWQsCi0JCQkJCQkJCSAgJndpdGhvdXRvdmVy bGFwc29pZCk7CisJCQkJCQkJCSAgJmludGVyc2VjdHByb2NvaWQsICZ3aXRob3V0b3Zlcmxh cHNvaWQpOwogCX0KIAogCS8qIEZpcnN0LCBjcmVhdGUgdGhlIGNvbnN0cmFpbnQgY2F0YWxv ZyBlbnRyeSBpdHNlbGYuICovCkBAIC0xMjU5Nyw2ICsxMjU5OCw3IEBAIHZhbGlkYXRlRm9y ZWlnbktleUNvbnN0cmFpbnQoY2hhciAqY29ubmFtZSwKIAkJdHJpZ2RhdGEudGdfdHJpZ3R1 cGxlID0gRXhlY0ZldGNoU2xvdEhlYXBUdXBsZShzbG90LCBmYWxzZSwgTlVMTCk7CiAJCXRy aWdkYXRhLnRnX3RyaWdzbG90ID0gc2xvdDsKIAkJdHJpZ2RhdGEudGdfdHJpZ2dlciA9ICZ0 cmlnOworCQl0cmlnZGF0YS50Z190ZW1wb3JhbCA9IE5VTEw7CiAKIAkJZmNpbmZvLT5jb250 ZXh0ID0gKE5vZGUgKikgJnRyaWdkYXRhOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKaW5k ZXggMDkzNTZlNDZkMTYuLmMxMzRiOGUzNzc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j b21tYW5kcy90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5j CkBAIC00NywxMiArNDcsMTQgQEAKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNs dWRlICJ1dGlscy9hY2wuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1 ZGUgInV0aWxzL2RhdHVtLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKICNpbmNs dWRlICJ1dGlscy9ndWNfaG9va3MuaCIKICNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgogI2lu Y2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgi CiAjaW5jbHVkZSAidXRpbHMvcGxhbmNhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcmFuZ2V0 eXBlcy5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBt Z3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgpAQCAtMjYzMiw2ICsyNjM0LDcg QEAgRXhlY0JTRGVsZXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8g KnJlbGluZm8pCiAJTG9jVHJpZ2dlckRhdGEudGdfZXZlbnQgPSBUUklHR0VSX0VWRU5UX0RF TEVURSB8CiAJCVRSSUdHRVJfRVZFTlRfQkVGT1JFOwogCUxvY1RyaWdnZXJEYXRhLnRnX3Jl bGF0aW9uID0gcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjOworCUxvY1RyaWdnZXJEYXRhLnRn X3RlbXBvcmFsID0gcmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mOwogCWZvciAoaSA9IDA7IGkg PCB0cmlnZGVzYy0+bnVtdHJpZ2dlcnM7IGkrKykKIAl7CiAJCVRyaWdnZXIgICAgKnRyaWdn ZXIgPSAmdHJpZ2Rlc2MtPnRyaWdnZXJzW2ldOwpAQCAtMjczMSw2ICsyNzM0LDcgQEAgRXhl Y0JSRGVsZXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUsIEVQUVN0YXRlICplcHFzdGF0ZSwK IAkJVFJJR0dFUl9FVkVOVF9ST1cgfAogCQlUUklHR0VSX0VWRU5UX0JFRk9SRTsKIAlMb2NU cmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlM b2NUcmlnZ2VyRGF0YS50Z190ZW1wb3JhbCA9IHJlbGluZm8tPnJpX2ZvclBvcnRpb25PZjsK IAlmb3IgKGkgPSAwOyBpIDwgdHJpZ2Rlc2MtPm51bXRyaWdnZXJzOyBpKyspCiAJewogCQlI ZWFwVHVwbGUJbmV3dHVwbGU7CkBAIC0yODIyLDYgKzI4MjYsNyBAQCBFeGVjSVJEZWxldGVU cmlnZ2VycyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJVFJJ R0dFUl9FVkVOVF9ST1cgfAogCQlUUklHR0VSX0VWRU5UX0lOU1RFQUQ7CiAJTG9jVHJpZ2dl ckRhdGEudGdfcmVsYXRpb24gPSByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2M7CisJTG9jVHJp Z2dlckRhdGEudGdfdGVtcG9yYWwgPSByZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CiAKIAlF eGVjRm9yY2VTdG9yZUhlYXBUdXBsZSh0cmlndHVwbGUsIHNsb3QsIGZhbHNlKTsKIApAQCAt Mjg4NSw2ICsyODkwLDcgQEAgRXhlY0JTVXBkYXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUs IFJlc3VsdFJlbEluZm8gKnJlbGluZm8pCiAJCVRSSUdHRVJfRVZFTlRfQkVGT1JFOwogCUxv Y1RyaWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjOwog CUxvY1RyaWdnZXJEYXRhLnRnX3VwZGF0ZWRjb2xzID0gdXBkYXRlZENvbHM7CisJTG9jVHJp Z2dlckRhdGEudGdfdGVtcG9yYWwgPSByZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CiAJZm9y IChpID0gMDsgaSA8IHRyaWdkZXNjLT5udW10cmlnZ2VyczsgaSsrKQogCXsKIAkJVHJpZ2dl ciAgICAqdHJpZ2dlciA9ICZ0cmlnZGVzYy0+dHJpZ2dlcnNbaV07CkBAIC0zMDIwLDYgKzMw MjYsNyBAQCBFeGVjQlJVcGRhdGVUcmlnZ2VycyhFU3RhdGUgKmVzdGF0ZSwgRVBRU3RhdGUg KmVwcXN0YXRlLAogCQlUUklHR0VSX0VWRU5UX1JPVyB8CiAJCVRSSUdHRVJfRVZFTlRfQkVG T1JFOwogCUxvY1RyaWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVsaW5mby0+cmlfUmVsYXRp b25EZXNjOworCUxvY1RyaWdnZXJEYXRhLnRnX3RlbXBvcmFsID0gcmVsaW5mby0+cmlfZm9y UG9ydGlvbk9mOwogCXVwZGF0ZWRDb2xzID0gRXhlY0dldEFsbFVwZGF0ZWRDb2xzKHJlbGlu Zm8sIGVzdGF0ZSk7CiAJTG9jVHJpZ2dlckRhdGEudGdfdXBkYXRlZGNvbHMgPSB1cGRhdGVk Q29sczsKIAlmb3IgKGkgPSAwOyBpIDwgdHJpZ2Rlc2MtPm51bXRyaWdnZXJzOyBpKyspCkBA IC0zMTY5LDYgKzMxNzYsNyBAQCBFeGVjSVJVcGRhdGVUcmlnZ2VycyhFU3RhdGUgKmVzdGF0 ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJVFJJR0dFUl9FVkVOVF9ST1cgfAogCQlU UklHR0VSX0VWRU5UX0lOU1RFQUQ7CiAJTG9jVHJpZ2dlckRhdGEudGdfcmVsYXRpb24gPSBy ZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2M7CisJTG9jVHJpZ2dlckRhdGEudGdfdGVtcG9yYWwg PSByZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CiAKIAlFeGVjRm9yY2VTdG9yZUhlYXBUdXBs ZSh0cmlndHVwbGUsIG9sZHNsb3QsIGZhbHNlKTsKIApAQCAtMzYzNSw2ICszNjQzLDcgQEAg dHlwZWRlZiBzdHJ1Y3QgQWZ0ZXJUcmlnZ2VyU2hhcmVkRGF0YQogCU9pZAkJCWF0c190Z29p ZDsJCS8qIHRoZSB0cmlnZ2VyJ3MgSUQgKi8KIAlPaWQJCQlhdHNfcmVsaWQ7CQkvKiB0aGUg cmVsYXRpb24gaXQncyBvbiAqLwogCUNvbW1hbmRJZAlhdHNfZmlyaW5nX2lkOwkvKiBJRCBm b3IgZmlyaW5nIGN5Y2xlICovCisJRm9yUG9ydGlvbk9mU3RhdGUgKmZvcl9wb3J0aW9uX29m OwkvKiB0aGUgRk9SIFBPUlRJT04gT0YgY2xhdXNlICovCiAJc3RydWN0IEFmdGVyVHJpZ2dl cnNUYWJsZURhdGEgKmF0c190YWJsZTsJLyogdHJhbnNpdGlvbiB0YWJsZSBhY2Nlc3MgKi8K IAlCaXRtYXBzZXQgICphdHNfbW9kaWZpZWRjb2xzOwkvKiBtb2RpZmllZCBjb2x1bW5zICov CiB9IEFmdGVyVHJpZ2dlclNoYXJlZERhdGE7CkBAIC0zOTA4LDYgKzM5MTcsNyBAQCBzdGF0 aWMgU2V0Q29uc3RyYWludFN0YXRlIFNldENvbnN0cmFpbnRTdGF0ZUNyZWF0ZShpbnQgbnVt YWxsb2MpOwogc3RhdGljIFNldENvbnN0cmFpbnRTdGF0ZSBTZXRDb25zdHJhaW50U3RhdGVD b3B5KFNldENvbnN0cmFpbnRTdGF0ZSBvcmlnc3RhdGUpOwogc3RhdGljIFNldENvbnN0cmFp bnRTdGF0ZSBTZXRDb25zdHJhaW50U3RhdGVBZGRJdGVtKFNldENvbnN0cmFpbnRTdGF0ZSBz dGF0ZSwKIAkJCQkJCQkJCQkJCQlPaWQgdGdvaWQsIGJvb2wgdGdpc2RlZmVycmVkKTsKK3N0 YXRpYyBGb3JQb3J0aW9uT2ZTdGF0ZSAqQ29weUZvclBvcnRpb25PZlN0YXRlKEZvclBvcnRp b25PZlN0YXRlICpzcmMpOwogc3RhdGljIHZvaWQgY2FuY2VsX3ByaW9yX3N0bXRfdHJpZ2dl cnMoT2lkIHJlbGlkLCBDbWRUeXBlIGNtZFR5cGUsIGludCB0Z2V2ZW50KTsKIAogCkBAIC00 MTIwLDYgKzQxMzAsNyBAQCBhZnRlclRyaWdnZXJBZGRFdmVudChBZnRlclRyaWdnZXJFdmVu dExpc3QgKmV2ZW50cywKIAkJCW5ld3NoYXJlZC0+YXRzX3JlbGlkID09IGV2dHNoYXJlZC0+ YXRzX3JlbGlkICYmCiAJCQluZXdzaGFyZWQtPmF0c19ldmVudCA9PSBldnRzaGFyZWQtPmF0 c19ldmVudCAmJgogCQkJbmV3c2hhcmVkLT5hdHNfdGFibGUgPT0gZXZ0c2hhcmVkLT5hdHNf dGFibGUgJiYKKwkJCW5ld3NoYXJlZC0+Zm9yX3BvcnRpb25fb2YgPT0gZXZ0c2hhcmVkLT5m b3JfcG9ydGlvbl9vZiAmJgogCQkJbmV3c2hhcmVkLT5hdHNfZmlyaW5nX2lkID09IDApCiAJ CQlicmVhazsKIAl9CkBAIC00NDg4LDYgKzQ0OTksNyBAQCBBZnRlclRyaWdnZXJFeGVjdXRl KEVTdGF0ZSAqZXN0YXRlLAogCUxvY1RyaWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVsOwog CWlmIChUUklHR0VSX0ZPUl9VUERBVEUoTG9jVHJpZ2dlckRhdGEudGdfdHJpZ2dlci0+dGd0 eXBlKSkKIAkJTG9jVHJpZ2dlckRhdGEudGdfdXBkYXRlZGNvbHMgPSBldnRzaGFyZWQtPmF0 c19tb2RpZmllZGNvbHM7CisJTG9jVHJpZ2dlckRhdGEudGdfdGVtcG9yYWwgPSBldnRzaGFy ZWQtPmZvcl9wb3J0aW9uX29mOwogCiAJTWVtb3J5Q29udGV4dFJlc2V0KHBlcl90dXBsZV9j b250ZXh0KTsKIApAQCAtNjAyMiw2ICs2MDM0LDQwIEBAIEFmdGVyVHJpZ2dlclBlbmRpbmdP blJlbChPaWQgcmVsaWQpCiAJcmV0dXJuIGZhbHNlOwogfQogCisvKiAtLS0tLS0tLS0tCisg KiBGb3JQb3J0aW9uT2ZTdGF0ZSgpCisgKgorICogQ29weXMgYSBGb3JQb3J0aW9uT2ZTdGF0 ZSBpbnRvIHRoZSBjdXJyZW50IG1lbW9yeSBjb250ZXh0LgorICovCitzdGF0aWMgRm9yUG9y dGlvbk9mU3RhdGUgKgorQ29weUZvclBvcnRpb25PZlN0YXRlKEZvclBvcnRpb25PZlN0YXRl ICpzcmMpCit7CisJRm9yUG9ydGlvbk9mU3RhdGUgKmRzdCA9IE5VTEw7CisJaWYgKHNyYykg eworCQlNZW1vcnlDb250ZXh0IG9sZGN0eDsKKwkJUmFuZ2VUeXBlICpyOworCQlUeXBlQ2Fj aGVFbnRyeSAqdHlwY2FjaGU7CisKKwkJLyoKKwkJICogTmVlZCB0byBsaWZ0IHRoZSBGT1Ig UE9SVElPTiBPRiBkZXRhaWxzIGludG8gYSBoaWdoZXIgbWVtb3J5IGNvbnRleHQKKwkJICog YmVjYXVzZSBjYXNjYWRpbmcgZm9yZWlnbiBrZXkgdXBkYXRlL2RlbGV0ZXMgY2FuIGNhdXNl IHRyaWdnZXJzIHRvIGZpcmUKKwkJICogdHJpZ2dlcnMsIGFuZCB0aGUgQWZ0ZXJUcmlnZ2Vy RXZlbnRzIHdpbGwgb3V0bGl2ZSB0aGUgRlBPCisJCSAqIGRldGFpbHMgb2YgdGhlIG9yaWdp bmFsIHF1ZXJ5LgorCQkgKi8KKwkJb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFRv cFRyYW5zYWN0aW9uQ29udGV4dCk7CisJCWRzdCA9IG1ha2VOb2RlKEZvclBvcnRpb25PZlN0 YXRlKTsKKwkJZHN0LT5mcF9yYW5nZU5hbWUgPSBwc3RyZHVwKHNyYy0+ZnBfcmFuZ2VOYW1l KTsKKwkJZHN0LT5mcF9yYW5nZVR5cGUgPSBzcmMtPmZwX3JhbmdlVHlwZTsKKwkJZHN0LT5m cF9yYW5nZUF0dG5vID0gc3JjLT5mcF9yYW5nZUF0dG5vOworCisJCXIgPSBEYXR1bUdldFJh bmdlVHlwZVAoc3JjLT5mcF90YXJnZXRSYW5nZSk7CisJCXR5cGNhY2hlID0gbG9va3VwX3R5 cGVfY2FjaGUoUmFuZ2VUeXBlR2V0T2lkKHIpLCBUWVBFQ0FDSEVfUkFOR0VfSU5GTyk7CisJ CWRzdC0+ZnBfdGFyZ2V0UmFuZ2UgPSBkYXR1bUNvcHkoc3JjLT5mcF90YXJnZXRSYW5nZSwg dHlwY2FjaGUtPnR5cGJ5dmFsLCB0eXBjYWNoZS0+dHlwbGVuKTsKKwkJTWVtb3J5Q29udGV4 dFN3aXRjaFRvKG9sZGN0eCk7CisJfQorCXJldHVybiBkc3Q7Cit9CisKIC8qIC0tLS0tLS0t LS0KICAqIEFmdGVyVHJpZ2dlclNhdmVFdmVudCgpCiAgKgpAQCAtNjQzNyw2ICs2NDgzLDcg QEAgQWZ0ZXJUcmlnZ2VyU2F2ZUV2ZW50KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZv ICpyZWxpbmZvLAogCQllbHNlCiAJCQluZXdfc2hhcmVkLmF0c190YWJsZSA9IE5VTEw7CiAJ CW5ld19zaGFyZWQuYXRzX21vZGlmaWVkY29scyA9IGFmdGVyVHJpZ2dlckNvcHlCaXRtYXAo bW9kaWZpZWRDb2xzKTsKKwkJbmV3X3NoYXJlZC5mb3JfcG9ydGlvbl9vZiA9IENvcHlGb3JQ b3J0aW9uT2ZTdGF0ZShyZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2YpOwogCiAJCWFmdGVyVHJp Z2dlckFkZEV2ZW50KCZhZnRlclRyaWdnZXJzLnF1ZXJ5X3N0YWNrW2FmdGVyVHJpZ2dlcnMu cXVlcnlfZGVwdGhdLmV2ZW50cywKIAkJCQkJCQkgJm5ld19ldmVudCwgJm5ld19zaGFyZWQp OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggNWNhODU2ZmQyNzkuLjhhZjM1ZThi MDVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTEyNTcsNiArMTI1Nyw3IEBA IEluaXRSZXN1bHRSZWxJbmZvKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJcmVz dWx0UmVsSW5mby0+cmlfcHJvamVjdFJldHVybmluZyA9IE5VTEw7CiAJcmVzdWx0UmVsSW5m by0+cmlfb25Db25mbGljdEFyYml0ZXJJbmRleGVzID0gTklMOwogCXJlc3VsdFJlbEluZm8t PnJpX29uQ29uZmxpY3QgPSBOVUxMOworCXJlc3VsdFJlbEluZm8tPnJpX2ZvclBvcnRpb25P ZiA9IE5VTEw7CiAJcmVzdWx0UmVsSW5mby0+cmlfUmV0dXJuaW5nU2xvdCA9IE5VTEw7CiAJ cmVzdWx0UmVsSW5mby0+cmlfVHJpZ09sZFNsb3QgPSBOVUxMOwogCXJlc3VsdFJlbEluZm8t PnJpX1RyaWdOZXdTbG90ID0gTlVMTDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVNb2RpZnlUYWJsZS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlm eVRhYmxlLmMKaW5kZXggMTE2MTUyMGY3NmIuLjAyZjE3ZmNjZmY5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwpAQCAtNTIsNiArNTIsNyBAQAogCiAjaW5j bHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKICNpbmNs dWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlYW0u aCIKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgpAQCAtNTksMTQgKzYwLDE5IEBACiAjaW5j bHVkZSAiZXhlY3V0b3IvZXhlY1BhcnRpdGlvbi5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4 ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmgiCisjaW5j bHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5jbHVkZSAiZm9yZWlnbi9mZHdhcGkuaCIKICNp bmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKICNp bmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNl X3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2lu Y2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCiAjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXR1bS5oIgorI2lu Y2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3JhbmdldHlwZXMu aCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgi CiAKQEAgLTEyMyw2ICsxMjksMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgVXBkYXRlQ29udGV4dAog CUxvY2tUdXBsZU1vZGUgbG9ja21vZGU7CiB9IFVwZGF0ZUNvbnRleHQ7CiAKKy8qCisgKiBG UE9fUXVlcnlIYXNoRW50cnkKKyAqLwordHlwZWRlZiBzdHJ1Y3QgRlBPX1F1ZXJ5SGFzaEVu dHJ5IHsKKwlPaWQJCQlrZXk7CisJU1BJUGxhblB0cglwbGFuOworfSBGUE9fUXVlcnlIYXNo RW50cnk7CisKKy8qCisgKiBQbGFuIGNhY2hlIGZvciBGT1IgUE9SVElPTiBPRiBpbnNlcnRz CisgKi8KKyNkZWZpbmUgRlBPX0lOSVRfUVVFUllIQVNIU0laRSAzMgorc3RhdGljIEhUQUIg KmZwb19xdWVyeV9jYWNoZSA9IE5VTEw7CiAKIHN0YXRpYyB2b2lkIEV4ZWNCYXRjaEluc2Vy dChNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlLAogCQkJCQkJCVJlc3VsdFJlbEluZm8gKnJl c3VsdFJlbEluZm8sCkBAIC0xNDQsNiArMTYzLDEzIEBAIHN0YXRpYyBib29sIEV4ZWNPbkNv bmZsaWN0VXBkYXRlKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIAkJCQkJCQkJIFR1 cGxlVGFibGVTbG90ICpleGNsdWRlZFNsb3QsCiAJCQkJCQkJCSBib29sIGNhblNldFRhZywK IAkJCQkJCQkJIFR1cGxlVGFibGVTbG90ICoqcmV0dXJuaW5nKTsKK3N0YXRpYyB2b2lkIGZw b19Jbml0SGFzaFRhYmxlKHZvaWQpOworc3RhdGljIFNQSVBsYW5QdHIgZnBvX0ZldGNoUHJl cGFyZWRQbGFuKE9pZCByZWxpZCk7CitzdGF0aWMgdm9pZCBmcG9fSGFzaFByZXBhcmVkUGxh bihPaWQgcmVsaWQsIFNQSVBsYW5QdHIgcGxhbik7CitzdGF0aWMgdm9pZCBFeGVjRm9yUG9y dGlvbk9mTGVmdG92ZXJzKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKKwkJCQkJCQkJ CSAgRVN0YXRlICplc3RhdGUsCisJCQkJCQkJCQkgIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJl bEluZm8sCisJCQkJCQkJCQkgIEl0ZW1Qb2ludGVyIHR1cGxlaWQpOwogc3RhdGljIFR1cGxl VGFibGVTbG90ICpFeGVjUHJlcGFyZVR1cGxlUm91dGluZyhNb2RpZnlUYWJsZVN0YXRlICpt dHN0YXRlLAogCQkJCQkJCQkJCQkgICBFU3RhdGUgKmVzdGF0ZSwKIAkJCQkJCQkJCQkJICAg UGFydGl0aW9uVHVwbGVSb3V0aW5nICpwcm91dGUsCkBAIC0xNjYsNiArMTkyLDcgQEAgc3Rh dGljIFR1cGxlVGFibGVTbG90ICpFeGVjTWVyZ2VNYXRjaGVkKE1vZGlmeVRhYmxlQ29udGV4 dCAqY29udGV4dCwKIHN0YXRpYyBUdXBsZVRhYmxlU2xvdCAqRXhlY01lcmdlTm90TWF0Y2hl ZChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAJCQkJCQkJCQkJICAgUmVzdWx0UmVs SW5mbyAqcmVzdWx0UmVsSW5mbywKIAkJCQkJCQkJCQkgICBib29sIGNhblNldFRhZyk7Citz dGF0aWMgdm9pZCBFeGVjU2V0dXBUcmFuc2l0aW9uQ2FwdHVyZVN0YXRlKE1vZGlmeVRhYmxl U3RhdGUgKm10c3RhdGUsIEVTdGF0ZSAqZXN0YXRlKTsKIAogCiAvKgpAQCAtMTIxNCw2ICsx MjQxLDM2NyBAQCBFeGVjSW5zZXJ0KE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIAly ZXR1cm4gcmVzdWx0OwogfQogCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJZnBvX0luaXRIYXNoVGFi bGUKKyAqCisgKgkJQ3JlYXRlcyBhIGhhc2ggdGFibGUgdG8gaG9sZCBTUEkgcGxhbnMgdG8g aW5zZXJ0IGxlZnRvdmVycworICoJCWZyb20gYSBQT1JUSU9OIE9GIFVQREFURS9ERUxFVEUK KyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqLworc3RhdGljIHZvaWQKK2Zwb19Jbml0SGFzaFRhYmxlKHZv aWQpCit7CisJSEFTSENUTAkJY3RsOworCisJY3RsLmtleXNpemUgPSBzaXplb2YoT2lkKTsK KwljdGwuZW50cnlzaXplID0gc2l6ZW9mKEZQT19RdWVyeUhhc2hFbnRyeSk7CisJZnBvX3F1 ZXJ5X2NhY2hlID0gaGFzaF9jcmVhdGUoIkZQT19xdWVyeV9jYWNoZSIsCisJCQkJCQkJCSAg RlBPX0lOSVRfUVVFUllIQVNIU0laRSwKKwkJCQkJCQkJICAmY3RsLCBIQVNIX0VMRU0gfCBI QVNIX0JMT0JTKTsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJCWZwb19GZXRjaFByZXBhcmVk UGxhbgorICoKKyAqCQlMb29rdXAgZm9yIGEgcXVlcnkga2V5IGluIG91ciBwcml2YXRlIGhh c2ggdGFibGUgb2YKKyAqCQlwcmVwYXJlZCBhbmQgc2F2ZWQgU1BJIGV4ZWN1dGlvbiBwbGFu cy4gUmV0dXJucyB0aGUgcGxhbgorICoJCWlmIGZvdW5kIG9yIE5VTEwuCisgKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKi8KK3N0YXRpYyBTUElQbGFuUHRyCitmcG9fRmV0Y2hQcmVwYXJlZFBsYW4oT2lk IHJlbGlkKQoreworCUZQT19RdWVyeUhhc2hFbnRyeSAqZW50cnk7CisJU1BJUGxhblB0cglw bGFuOworCisJaWYgKCFmcG9fcXVlcnlfY2FjaGUpCisJCWZwb19Jbml0SGFzaFRhYmxlKCk7 CisKKwkvKgorCSAqIExvb2t1cCBmb3IgdGhlIGtleQorCSAqLworCWVudHJ5ID0gKEZQT19R dWVyeUhhc2hFbnRyeSAqKSBoYXNoX3NlYXJjaChmcG9fcXVlcnlfY2FjaGUsCisJCQkJCQkJ CQkJCSAgICZyZWxpZCwKKwkJCQkJCQkJCQkJICAgSEFTSF9GSU5ELCBOVUxMKTsKKworCWlm ICghZW50cnkpCisJCXJldHVybiBOVUxMOworCisJLyoKKwkgKiBDaGVjayB3aGV0aGVyIHRo ZSBwbGFuIGlzIHN0aWxsIHZhbGlkLiAgSWYgaXQgaXNuJ3QsIHdlIGRvbid0IHdhbnQgdG8K KwkgKiBzaW1wbHkgcmVseSBvbiBwbGFuY2FjaGUuYyB0byByZWdlbmVyYXRlIGl0OyByYXRo ZXIgd2Ugc2hvdWxkIHN0YXJ0CisJICogZnJvbSBzY3JhdGNoIGFuZCByZWJ1aWxkIHRoZSBx dWVyeSB0ZXh0IHRvby4gIFRoaXMgaXMgdG8gY292ZXIgY2FzZXMKKwkgKiBzdWNoIGFzIHRh YmxlL2NvbHVtbiByZW5hbWVzLiAgV2UgZGVwZW5kIG9uIHRoZSBwbGFuY2FjaGUgbWFjaGlu ZXJ5IHRvCisJICogZGV0ZWN0IHBvc3NpYmxlIGludmFsaWRhdGlvbnMsIHRob3VnaC4KKwkg KgorCSAqIENBVVRJT046IHRoaXMgY2hlY2sgaXMgb25seSB0cnVzdHdvcnRoeSBpZiB0aGUg Y2FsbGVyIGhhcyBhbHJlYWR5CisJICogbG9ja2VkIGJvdGggRksgYW5kIFBLIHJlbHMuCisJ ICovCisJcGxhbiA9IGVudHJ5LT5wbGFuOworCWlmIChwbGFuICYmIFNQSV9wbGFuX2lzX3Zh bGlkKHBsYW4pKQorCQlyZXR1cm4gcGxhbjsKKworCS8qCisJICogT3RoZXJ3aXNlIHdlIG1p Z2h0IGFzIHdlbGwgZmx1c2ggdGhlIGNhY2hlZCBwbGFuIG5vdywgdG8gZnJlZSBhIGxpdHRs ZQorCSAqIG1lbW9yeSBzcGFjZSBiZWZvcmUgd2UgbWFrZSBhIG5ldyBvbmUuCisJICovCisJ ZW50cnktPnBsYW4gPSBOVUxMOworCWlmIChwbGFuKQorCQlTUElfZnJlZXBsYW4ocGxhbik7 CisKKwlyZXR1cm4gTlVMTDsKK30KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJCWZwb19IYXNoUHJl cGFyZWRQbGFuCisgKgorICoJCUFkZCBhbm90aGVyIHBsYW4gdG8gb3VyIHByaXZhdGUgU1BJ IHF1ZXJ5IHBsYW4gaGFzaHRhYmxlLgorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCitzdGF0aWMgdm9p ZAorZnBvX0hhc2hQcmVwYXJlZFBsYW4oT2lkIHJlbGlkLCBTUElQbGFuUHRyIHBsYW4pCit7 CisJRlBPX1F1ZXJ5SGFzaEVudHJ5ICplbnRyeTsKKwlib29sCQlmb3VuZDsKKworCS8qCisJ ICogT24gdGhlIGZpcnN0IGNhbGwgaW5pdGlhbGl6ZSB0aGUgaGFzaHRhYmxlCisJICovCisJ aWYgKCFmcG9fcXVlcnlfY2FjaGUpCisJCWZwb19Jbml0SGFzaFRhYmxlKCk7CisKKwkvKgor CSAqIEFkZCB0aGUgbmV3IHBsYW4uIFdlIG1pZ2h0IGJlIG92ZXJ3cml0aW5nIGFuIGVudHJ5 IHByZXZpb3VzbHkgZm91bmQKKwkgKiBpbnZhbGlkIGJ5IGZwb19GZXRjaFByZXBhcmVkUGxh bi4KKwkgKi8KKwllbnRyeSA9IChGUE9fUXVlcnlIYXNoRW50cnkgKikgaGFzaF9zZWFyY2go ZnBvX3F1ZXJ5X2NhY2hlLAorCQkJCQkJCQkJCQkgICAmcmVsaWQsCisJCQkJCQkJCQkJCSAg IEhBU0hfRU5URVIsICZmb3VuZCk7CisJQXNzZXJ0KCFmb3VuZCB8fCBlbnRyeS0+cGxhbiA9 PSBOVUxMKTsKKwllbnRyeS0+cGxhbiA9IHBsYW47Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CQlFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzCisgKgorICoJCUluc2VydCB0dXBsZXMgZm9y IHRoZSB1bnRvdWNoZWQgcG9ydGlvbiBvZiBhIHJvdyBpbiBhIEZPUgorICoJCVBPUlRJT04g T0YgVVBEQVRFL0RFTEVURQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCitzdGF0aWMgdm9pZAorRXhl Y0ZvclBvcnRpb25PZkxlZnRvdmVycyhNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCisJ CQkJCQkgIEVTdGF0ZSAqZXN0YXRlLAorCQkJCQkJICBSZXN1bHRSZWxJbmZvICpyZXN1bHRS ZWxJbmZvLAorCQkJCQkJICBJdGVtUG9pbnRlciB0dXBsZWlkKQoreworCU1vZGlmeVRhYmxl U3RhdGUgKm10c3RhdGUgPSBjb250ZXh0LT5tdHN0YXRlOworCU1vZGlmeVRhYmxlICpub2Rl ID0gKE1vZGlmeVRhYmxlICopIG10c3RhdGUtPnBzLnBsYW47CisJRm9yUG9ydGlvbk9mRXhw ciAqZm9yUG9ydGlvbk9mID0gKEZvclBvcnRpb25PZkV4cHIgKikgbm9kZS0+Zm9yUG9ydGlv bk9mOworCUF0dHJOdW1iZXIJcmFuZ2VBdHRubzsKKwlPaWQJcmVsaWQ7CisJVHVwbGVEZXNj IHR1cGRlc2M7CisJaW50CW5hdHRzOworCURhdHVtCW9sZFJhbmdlOworCVR5cGVDYWNoZUVu dHJ5ICp0eXBjYWNoZTsKKwlGb3JQb3J0aW9uT2ZTdGF0ZSAqZnBvU3RhdGUgPSByZXN1bHRS ZWxJbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CisJVHVwbGVUYWJsZVNsb3QgKm9sZHR1cGxlU2xv dCA9IGZwb1N0YXRlLT5mcF9FeGlzdGluZzsKKwlUdXBsZVRhYmxlU2xvdCAqbGVmdG92ZXJT bG90OworCVR1cGxlQ29udmVyc2lvbk1hcCAqbWFwID0gTlVMTDsKKwlIZWFwVHVwbGUgb2xk dHVwbGUgPSBOVUxMOworCUZtZ3JJbmZvIGZsaW5mbzsKKwlSZXR1cm5TZXRJbmZvIHJzaTsK KwlSZWxhdGlvbiByZWw7CisJYm9vbCBkaWRJbml0ID0gZmFsc2U7CisJYm9vbCBzaG91bGRG cmVlID0gZmFsc2U7CisJTE9DQUxfRkNJTkZPKGZjaW5mbywgMik7CisKKwkvKgorCSAqIEdl dCB0aGUgcmFuZ2Ugb2YgdGhlIG9sZCBwcmUtVVBEQVRFL0RFTEVURSB0dXBsZSwKKwkgKiBz byB3ZSBjYW4gaW50ZXJzZWN0IGl0IHdpdGggdGhlIEZPUiBQT1JUSU9OIE9GIHRhcmdldAor CSAqIGFuZCBzZWUgaWYgdGhlcmUgYXJlIGFueSAibGVmdG92ZXJzIiB0byBpbnNlcnQuCisJ ICoKKwkgKiBXZSBoYXZlIGFscmVhZHkgbG9ja2VkIHRoZSB0dXBsZSBpbiBFeGVjVXBkYXRl L0V4ZWNEZWxldGUKKwkgKiBhbmQgaXQgaGFzIHBhc3NlZCBFdmFsUGxhblF1YWwuCisJICog TWFrZSBzdXJlIHdlJ3JlIGxvb2tpbmcgYXQgdGhlIG1vc3QgcmVjZW50IHZlcnNpb24uCisJ ICogT3RoZXJ3aXNlIGNvbmN1cnJlbnQgdXBkYXRlcyBvZiB0aGUgc2FtZSB0dXBsZSBpbiBS RUFEIENPTU1JVFRFRAorCSAqIGNvdWxkIGluc2VydCBjb25mbGljdGluZyAibGVmdG92ZXJz Ii4KKwkgKi8KKwlpZiAoIXRhYmxlX3R1cGxlX2ZldGNoX3Jvd192ZXJzaW9uKHJlc3VsdFJl bEluZm8tPnJpX1JlbGF0aW9uRGVzYywgdHVwbGVpZCwgU25hcHNob3RBbnksIG9sZHR1cGxl U2xvdCkpCisJCWVsb2coRVJST1IsICJmYWlsZWQgdG8gZmV0Y2ggdHVwbGUgZm9yIEZPUiBQ T1JUSU9OIE9GIik7CisKKwkvKgorCSAqIEdldCB0aGUgb2xkIHJhbmdlIG9mIHRoZSByZWNv cmQgYmVpbmcgdXBkYXRlZC9kZWxldGVkLgorCSAqIE11c3QgcmVhZCB3aXRoIHRoZSBhdHRu byBvZiB0aGUgbGVhZiBwYXJ0aXRpb24uCisJICovCisKKwlyYW5nZUF0dG5vID0gZm9yUG9y dGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm87CisJaWYgKHJlc3VsdFJlbEluZm8tPnJpX1Jv b3RSZXN1bHRSZWxJbmZvKQorCQltYXAgPSBFeGVjR2V0Q2hpbGRUb1Jvb3RNYXAocmVzdWx0 UmVsSW5mbyk7CisJaWYgKG1hcCAhPSBOVUxMKQorCQlyYW5nZUF0dG5vID0gbWFwLT5hdHRy TWFwLT5hdHRudW1zW3JhbmdlQXR0bm8gLSAxXTsKKwlzbG90X2dldGFsbGF0dHJzKG9sZHR1 cGxlU2xvdCk7CisKKwlpZiAob2xkdHVwbGVTbG90LT50dHNfaXNudWxsW3JhbmdlQXR0bm8g LSAxXSkKKwkJZWxvZyhFUlJPUiwgImZvdW5kIGEgTlVMTCByYW5nZSBpbiBhIHRlbXBvcmFs IHRhYmxlIik7CisJb2xkUmFuZ2UgPSBvbGR0dXBsZVNsb3QtPnR0c192YWx1ZXNbcmFuZ2VB dHRubyAtIDFdOworCisJLyoKKwkgKiBHZXQgdGhlIHJhbmdlJ3MgdHlwZSBjYWNoZSBlbnRy eS4gVGhpcyBpcyB3b3J0aCBjYWNoaW5nIGZvciB0aGUgd2hvbGUKKwkgKiBVUERBVEUvREVM RVRFIGFzIHJhbmdlIGZ1bmN0aW9ucyBkby4KKwkgKi8KKworCXR5cGNhY2hlID0gZnBvU3Rh dGUtPmZwX2xlZnRvdmVyc3R5cGNhY2hlOworCWlmICh0eXBjYWNoZSA9PSBOVUxMKQorCXsK KwkJdHlwY2FjaGUgPSBsb29rdXBfdHlwZV9jYWNoZShmb3JQb3J0aW9uT2YtPnJhbmdlVHlw ZSwgMCk7CisJCWZwb1N0YXRlLT5mcF9sZWZ0b3ZlcnN0eXBjYWNoZSA9IHR5cGNhY2hlOwor CX0KKworCS8qCisJICogR2V0IHRoZSByYW5nZXMgdG8gdGhlIGxlZnQvcmlnaHQgb2YgdGhl IHRhcmdldGVkIHJhbmdlLgorCSAqIFdlIGNhbGwgYSBTRVRPRiBzdXBwb3J0IGZ1bmN0aW9u IGFuZCBpbnNlcnQgYXMgbWFueSBsZWZ0b3ZlcnMKKwkgKiBhcyBpdCBnaXZlcyB1cy4gQWx0 aG91Z2ggcmFuZ2V0eXBlcyBoYXZlIDAvMS8yIGxlZnRvdmVycywKKwkgKiBtdWx0aXJhbmdl cyBoYXZlIDAvMSwgYW5kIG90aGVyIHR5cGVzIG1heSBoYXZlIG1vcmUuCisJICovCisKKwlm bWdyX2luZm8oZm9yUG9ydGlvbk9mLT53aXRob3V0UG9ydGlvblByb2MsICZmbGluZm8pOwor CXJzaS50eXBlID0gVF9SZXR1cm5TZXRJbmZvOworCXJzaS5lY29udGV4dCA9IG10c3RhdGUt PnBzLnBzX0V4cHJDb250ZXh0OworCXJzaS5leHBlY3RlZERlc2MgPSBOVUxMOworCXJzaS5h bGxvd2VkTW9kZXMgPSAoaW50KSAoU0ZSTV9WYWx1ZVBlckNhbGwpOworCXJzaS5yZXR1cm5N b2RlID0gU0ZSTV9WYWx1ZVBlckNhbGw7CisJcnNpLnNldFJlc3VsdCA9IE5VTEw7CisJcnNp LnNldERlc2MgPSBOVUxMOworCisJSW5pdEZ1bmN0aW9uQ2FsbEluZm9EYXRhKCpmY2luZm8s ICZmbGluZm8sIDIsIEludmFsaWRPaWQsIE5VTEwsIChOb2RlICopICZyc2kpOworCWZjaW5m by0+YXJnc1swXS52YWx1ZSA9IG9sZFJhbmdlOworCWZjaW5mby0+YXJnc1swXS5pc251bGwg PSBmYWxzZTsKKwlmY2luZm8tPmFyZ3NbMV0udmFsdWUgPSBmcG9TdGF0ZS0+ZnBfdGFyZ2V0 UmFuZ2U7CisJZmNpbmZvLT5hcmdzWzFdLmlzbnVsbCA9IGZhbHNlOworCisJLyoKKwkgKiBJ ZiB0aGVyZSBhcmUgcGFydGl0aW9ucywgd2UgbXVzdCBpbnNlcnQgaW50byB0aGUgcm9vdCB0 YWJsZSwKKwkgKiBzbyB3ZSBnZXQgdHVwbGUgcm91dGluZy4gV2UgYWxyZWFkeSBzZXQgdXAg bGVmdG92ZXJTbG90CisJICogd2l0aCB0aGUgcm9vdCB0dXBsZSBkZXNjcmlwdG9yLgorCSAq LworCWlmIChyZXN1bHRSZWxJbmZvLT5yaV9Sb290UmVzdWx0UmVsSW5mbykKKwkJcmVzdWx0 UmVsSW5mbyA9IHJlc3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvOworCisJcmVs ID0gcmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjOworCXJlbGlkID0gUmVsYXRpb25H ZXRSZWxpZChyZWwpOworCisJLyogSW5zZXJ0IGEgbGVmdG92ZXIgZm9yIGVhY2ggdmFsdWUg cmV0dXJuZWQgYnkgdGhlIHdpdGhvdXRfcG9ydGlvbiBoZWxwZXIgZnVuY3Rpb24gKi8KKwl3 aGlsZSAodHJ1ZSkKKwl7CisJCURhdHVtIGxlZnRvdmVyID0gRnVuY3Rpb25DYWxsSW52b2tl KGZjaW5mbyk7CisJCVNQSVBsYW5QdHIJcXBsYW4gPSBOVUxMOworCQlpbnQgc3BpX3Jlc3Vs dDsKKworCQkvKiBBcmUgd2UgZG9uZT8gKi8KKwkJaWYgKHJzaS5pc0RvbmUgPT0gRXhwckVu ZFJlc3VsdCkKKwkJCWJyZWFrOworCisJCWlmIChmY2luZm8tPmlzbnVsbCkKKwkJCWVsb2co RVJST1IsICJHb3QgYSBudWxsIGZyb20gd2l0aG91dF9wb3J0aW9uIGZ1bmN0aW9uIik7CisK KwkJaWYgKCFkaWRJbml0KQorCQl7CisJCQkvKgorCQkJICogQ29udmVydCBvbGR0dXBsZSB0 byB0aGUgYmFzZSB0YWJsZSdzIGZvcm1hdCBpZiBuZWNlc3NhcnkuCisJCQkgKiBXZSBuZWVk IHRvIGluc2VydCBsZWZ0b3ZlcnMgdGhyb3VnaCB0aGUgcm9vdCBwYXJ0aXRpb24KKwkJCSAq IHNvIHRoZXkgZ2V0IHJvdXRlZCBjb3JyZWN0bHkuCisJCQkgKi8KKwkJCWlmIChtYXAgIT0g TlVMTCkKKwkJCXsKKwkJCQlsZWZ0b3ZlclNsb3QgPSBleGVjdXRlX2F0dHJfbWFwX3Nsb3Qo bWFwLT5hdHRyTWFwLAorCQkJCQkJCQkJCQkJCSBvbGR0dXBsZVNsb3QsCisJCQkJCQkJCQkJ CQkJIGZwb1N0YXRlLT5mcF9MZWZ0b3Zlcik7CisJCQl9CisJCQllbHNlCisJCQkJbGVmdG92 ZXJTbG90ID0gb2xkdHVwbGVTbG90OworCisJCQl0dXBkZXNjID0gbGVmdG92ZXJTbG90LT50 dHNfdHVwbGVEZXNjcmlwdG9yOworCQkJbmF0dHMgPSB0dXBkZXNjLT5uYXR0czsKKworCQkJ LyoKKwkJCSAqIElmIHRhcmdldGluZyBhIGxlYWYgcGFydGl0aW9uLAorCQkJICogaXQgbWF5 IG5vdCBoYXZlIGZwX3ZhbHVlcy9mcF9udWxscyB5ZXQuCisJCQkgKi8KKwkJCWlmICghZnBv U3RhdGUtPmZwX3ZhbHVlcykKKwkJCXsKKwkJCQlmcG9TdGF0ZS0+ZnBfdmFsdWVzID0gcGFs bG9jKG5hdHRzICogc2l6ZW9mKERhdHVtKSk7CisJCQkJZnBvU3RhdGUtPmZwX251bGxzID0g cGFsbG9jKG5hdHRzICogc2l6ZW9mKGNoYXIpKTsKKwkJCX0KKworCQkJLyoKKwkJCSAqIENv cHkgKHBvdGVudGlhbGx5IG1hcHBlZCkgb2xkdHVwbGUgdmFsdWVzIGludG8gU1BJIGlucHV0 IGFycmF5cy4KKwkJCSAqIFdlJ2xsIG92ZXJ3cml0ZSB0aGUgcmFuZ2Uvc3RhcnQvZW5kIGF0 dHJpYnV0ZXMgYmVsb3cuCisJCQkgKi8KKwkJCW1lbWNweShmcG9TdGF0ZS0+ZnBfdmFsdWVz LCBsZWZ0b3ZlclNsb3QtPnR0c192YWx1ZXMsIG5hdHRzICogc2l6ZW9mKERhdHVtKSk7CisK KwkJCVNQSV9jb25uZWN0KCk7CisKKwkJCWRpZEluaXQgPSB0cnVlOworCQl9CisKKwkJLyoK KwkJICogQnVpbGQgYW4gU1BJIHBsYW4gaWYgd2UgZG9uJ3QgaGF2ZSBvbmUgeWV0LgorCQkg KiBXZSBhbHdheXMgaW5zZXJ0IGludG8gdGhlIHJvb3QgcGFydGl0aW9uLAorCQkgKiBzbyB0 aGF0IHdlIGdldCB0dXBsZSByb3V0aW5nLgorCQkgKiBUaGVyZWZvcmUgdGhlIHBsYW4gaXMg dGhlIHNhbWUgbm8gbWF0dGVyIHdoaWNoIGxlYWYKKwkJICogd2UgYXJlIHVwZGF0aW5nL2Rl bGV0aW5nLgorCQkgKi8KKwkJaWYgKCFxcGxhbiAmJiAhKHFwbGFuID0gZnBvX0ZldGNoUHJl cGFyZWRQbGFuKHJlbGlkKSkpCisJCXsKKwkJCU9pZAkqdHlwZXMgPSBwYWxsb2MwKG5hdHRz ICogc2l6ZW9mKE9pZCkpOworCQkJaW50IGk7CisJCQlib29sIHN0YXJ0ZWQgPSBmYWxzZTsK KwkJCVN0cmluZ0luZm9EYXRhIHF1ZXJ5YnVmOworCQkJU3RyaW5nSW5mb0RhdGEgcGFyYW1i dWY7CisJCQljb25zdCBjaGFyICp0YWJsZW5hbWU7CisJCQljb25zdCBjaGFyICpzY2hlbWFu YW1lOworCQkJY29uc3QgY2hhciAqY29sbmFtZTsKKworCQkJaW5pdFN0cmluZ0luZm8oJnF1 ZXJ5YnVmKTsKKwkJCWluaXRTdHJpbmdJbmZvKCZwYXJhbWJ1Zik7CisKKwkJCXNjaGVtYW5h bWUgPSBnZXRfbmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSk7CisJ CQl0YWJsZW5hbWUgPSBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpOworCQkJYXBwZW5k U3RyaW5nSW5mbygmcXVlcnlidWYsICJJTlNFUlQgSU5UTyAlcyAoIiwKKwkJCQkJCQkgcXVv dGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoc2NoZW1hbmFtZSwgdGFibGVuYW1lKSk7CisKKwkJ CWZvciAoaSA9IDA7IGkgPCBuYXR0czsgaSsrKSB7CisJCQkJLyogRG9uJ3QgdHJ5IHRvIGlu c2VydCBpbnRvIGRyb3BwZWQgb3IgZ2VuZXJhdGVkIGNvbHVtbnMgKi8KKwkJCQlpZiAodHVw ZGVzYy0+YXR0cnNbaV0uYXR0aXNkcm9wcGVkIHx8IHR1cGRlc2MtPmF0dHJzW2ldLmF0dGdl bmVyYXRlZCkKKwkJCQkJY29udGludWU7CisKKwkJCQl0eXBlc1tpXSA9IHR1cGRlc2MtPmF0 dHJzW2ldLmF0dHR5cGlkOworCisJCQkJY29sbmFtZSA9IHF1b3RlX2lkZW50aWZpZXIoTmFt ZVN0cigqYXR0bnVtQXR0TmFtZShyZWwsIGkgKyAxKSkpOworCQkJCWlmIChzdGFydGVkKQor CQkJCXsKKwkJCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICIsICVzIiwgY29sbmFt ZSk7CisJCQkJCWFwcGVuZFN0cmluZ0luZm8oJnBhcmFtYnVmLCAiLCAkJWQiLCBpICsgMSk7 CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5 YnVmLCAiJXMiLCBjb2xuYW1lKTsKKwkJCQkJYXBwZW5kU3RyaW5nSW5mbygmcGFyYW1idWYs ICIkJWQiLCBpICsgMSk7CisJCQkJfQorCQkJCXN0YXJ0ZWQgPSB0cnVlOworCQkJfQorCQkJ YXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICIpIFZBTFVFUyAoJXMpIiwgcGFyYW1idWYu ZGF0YSk7CisKKwkJCXFwbGFuID0gU1BJX3ByZXBhcmUocXVlcnlidWYuZGF0YSwgbmF0dHMs IHR5cGVzKTsKKwkJCWlmICghcXBsYW4pCisJCQkJZWxvZyhFUlJPUiwgIlNQSV9wcmVwYXJl IHJldHVybmVkICVzIGZvciAlcyIsCisJCQkJCQlTUElfcmVzdWx0X2NvZGVfc3RyaW5nKFNQ SV9yZXN1bHQpLCBxdWVyeWJ1Zi5kYXRhKTsKKworCQkJU1BJX2tlZXBwbGFuKHFwbGFuKTsK KwkJCWZwb19IYXNoUHJlcGFyZWRQbGFuKHJlbGlkLCBxcGxhbik7CisJCX0KKworCQkvKgor CQkgKiBTZXQgdXAgdGhlIFNQSSBwYXJhbXMuCisJCSAqIENvcHkgbW9zdCBhdHRyaWJ1dGVz JyBvbGQgdmFsdWVzLAorCQkgKiBidXQgZm9yIHRoZSByYW5nZS9zdGFydC9lbmQgdXNlIHRo ZSBsZWZ0b3Zlci4KKwkJICovCisKKwkJLyogQ29udmVydCBib29sIG51bGwgYXJyYXkgdG8g U1BJIGNoYXIgYXJyYXkgKi8KKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBuYXR0czsgaSsrKQor CQl7CisJCQkvKgorCQkJICogRG9uJ3QgdHJ5IHRvIGluc2VydCBpbnRvIGRyb3BwZWQgb3Ig Z2VuZXJhdGVkIGNvbHVtbnMuCisJCQkgKiBUZWxsIFNQSSB0aGVzZSBwYXJhbXMgYXJlIG51 bGwganVzdCB0byBiZSBzYWZlLgorCQkJICovCisJCQlpZiAodHVwZGVzYy0+YXR0cnNbaV0u YXR0aXNkcm9wcGVkIHx8IHR1cGRlc2MtPmF0dHJzW2ldLmF0dGdlbmVyYXRlZCkKKwkJCQlm cG9TdGF0ZS0+ZnBfbnVsbHNbaV0gPSAnbic7CisJCQllbHNlCisJCQkJZnBvU3RhdGUtPmZw X251bGxzW2ldID0gbGVmdG92ZXJTbG90LT50dHNfaXNudWxsW2ldID8gJ24nIDogJyAnOwor CQl9CisKKwkJZnBvU3RhdGUtPmZwX251bGxzW2ZvclBvcnRpb25PZi0+cmFuZ2VWYXItPnZh cmF0dG5vIC0gMV0gPSAnICc7CisJCWZwb1N0YXRlLT5mcF92YWx1ZXNbZm9yUG9ydGlvbk9m LT5yYW5nZVZhci0+dmFyYXR0bm8gLSAxXSA9IGxlZnRvdmVyOworCisJCXNwaV9yZXN1bHQg PSBTUElfZXhlY3V0ZV9zbmFwc2hvdChxcGxhbiwKKwkJCQkJCQkJCQkgIGZwb1N0YXRlLT5m cF92YWx1ZXMsCisJCQkJCQkJCQkJICBmcG9TdGF0ZS0+ZnBfbnVsbHMsCisJCQkJCQkJCQkJ ICBHZXRMYXRlc3RTbmFwc2hvdCgpLAorCQkJCQkJCQkJCSAgSW52YWxpZFNuYXBzaG90LCBm YWxzZSwgdHJ1ZSwgMCk7CisJCWlmIChzcGlfcmVzdWx0ICE9IFNQSV9PS19JTlNFUlQpCisJ CQllbG9nKEVSUk9SLCAiU1BJX2V4ZWN1dGVfc25hcHNob3QgcmV0dXJuZWQgJXMiLCBTUElf cmVzdWx0X2NvZGVfc3RyaW5nKHNwaV9yZXN1bHQpKTsKKwl9CisKKwlpZiAoZGlkSW5pdCkK Kwl7CisJCWlmIChTUElfZmluaXNoKCkgIT0gU1BJX09LX0ZJTklTSCkKKwkJCWVsb2coRVJS T1IsICJTUElfZmluaXNoIGZhaWxlZCIpOworCisJCWlmIChzaG91bGRGcmVlKQorCQkJaGVh cF9mcmVldHVwbGUob2xkdHVwbGUpOworCX0KK30KKwogLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCUV4 ZWNCYXRjaEluc2VydAogICoKQEAgLTEzNjYsNyArMTc1NCw4IEBAIEV4ZWNEZWxldGVBY3Qo TW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJ bmZvLAogICoKICAqIENsb3Npbmcgc3RlcHMgb2YgdHVwbGUgZGVsZXRpb247IHRoaXMgaW52 b2tlcyBBRlRFUiBGT1IgRUFDSCBST1cgdHJpZ2dlcnMsCiAgKiBpbmNsdWRpbmcgdGhlIFVQ REFURSB0cmlnZ2VycyBpZiB0aGUgZGVsZXRpb24gaXMgYmVpbmcgZG9uZSBhcyBwYXJ0IG9m IGEKLSAqIGNyb3NzLXBhcnRpdGlvbiB0dXBsZSBtb3ZlLgorICogY3Jvc3MtcGFydGl0aW9u IHR1cGxlIG1vdmUuIEl0IGFsc28gaW5zZXJ0cyBsZWZ0b3ZlcnMgZnJvbSBhIEZPUiBQT1JU SU9OIE9GCisgKiBkZWxldGUuCiAgKi8KIHN0YXRpYyB2b2lkCiBFeGVjRGVsZXRlRXBpbG9n dWUoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZvICpyZXN1bHRS ZWxJbmZvLApAQCAtMTM5OSw2ICsxNzg4LDEwIEBAIEV4ZWNEZWxldGVFcGlsb2d1ZShNb2Rp ZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8s CiAJCWFyX2RlbGV0ZV90cmlnX3RjcyA9IE5VTEw7CiAJfQogCisJLyogQ29tcHV0ZSBsZWZ0 b3ZlcnMgaW4gRk9SIFBPUlRJT04gT0YgKi8KKwlpZiAoKChNb2RpZnlUYWJsZSAqKSBjb250 ZXh0LT5tdHN0YXRlLT5wcy5wbGFuKS0+Zm9yUG9ydGlvbk9mKQorCQlFeGVjRm9yUG9ydGlv bk9mTGVmdG92ZXJzKGNvbnRleHQsIGVzdGF0ZSwgcmVzdWx0UmVsSW5mbywgdHVwbGVpZCk7 CisKIAkvKiBBRlRFUiBST1cgREVMRVRFIFRyaWdnZXJzICovCiAJRXhlY0FSRGVsZXRlVHJp Z2dlcnMoZXN0YXRlLCByZXN1bHRSZWxJbmZvLCB0dXBsZWlkLCBvbGR0dXBsZSwKIAkJCQkJ CSBhcl9kZWxldGVfdHJpZ190Y3MsIGNoYW5naW5nUGFydCk7CkBAIC0xNzc5LDcgKzIxNzIs MTEgQEAgRXhlY0Nyb3NzUGFydGl0aW9uVXBkYXRlKE1vZGlmeVRhYmxlQ29udGV4dCAqY29u dGV4dCwKIAlpZiAocmVzdWx0UmVsSW5mbyA9PSBtdHN0YXRlLT5yb290UmVzdWx0UmVsSW5m bykKIAkJRXhlY1BhcnRpdGlvbkNoZWNrRW1pdEVycm9yKHJlc3VsdFJlbEluZm8sIHNsb3Qs IGVzdGF0ZSk7CiAKLQkvKiBJbml0aWFsaXplIHR1cGxlIHJvdXRpbmcgaW5mbyBpZiBub3Qg YWxyZWFkeSBkb25lLiAqLworCS8qCisJICogSW5pdGlhbGl6ZSB0dXBsZSByb3V0aW5nIGlu Zm8gaWYgbm90IGFscmVhZHkgZG9uZS4KKwkgKiBOb3RlIHdoYXRldmVyIHdlIGRvIGhlcmUg bXVzdCBiZSBkb25lIGluIEV4ZWNJbml0TW9kaWZ5VGFibGUKKwkgKiBmb3IgRk9SIFBPUlRJ T04gT0YgYXMgd2VsbC4KKwkgKi8KIAlpZiAobXRzdGF0ZS0+bXRfcGFydGl0aW9uX3R1cGxl X3JvdXRpbmcgPT0gTlVMTCkKIAl7CiAJCVJlbGF0aW9uCXJvb3RSZWwgPSBtdHN0YXRlLT5y b290UmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjOwpAQCAtMjE0NSw2ICsyNTQyLDEw IEBAIEV4ZWNVcGRhdGVFcGlsb2d1ZShNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsIFVw ZGF0ZUNvbnRleHQgKnVwZGF0ZUN4dCwKIAkJCQkJCQkJCQkJICAgTlVMTCwgTklMLAogCQkJ CQkJCQkJCQkgICAodXBkYXRlQ3h0LT51cGRhdGVJbmRleGVzID09IFRVX1N1bW1hcml6aW5n KSk7CiAKKwkvKiBDb21wdXRlIGxlZnRvdmVycyBpbiBGT1IgUE9SVElPTiBPRiAqLworCWlm ICgoKE1vZGlmeVRhYmxlICopIGNvbnRleHQtPm10c3RhdGUtPnBzLnBsYW4pLT5mb3JQb3J0 aW9uT2YpCisJCUV4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoY29udGV4dCwgY29udGV4dC0+ ZXN0YXRlLCByZXN1bHRSZWxJbmZvLCB0dXBsZWlkKTsKKwogCS8qIEFGVEVSIFJPVyBVUERB VEUgVHJpZ2dlcnMgKi8KIAlFeGVjQVJVcGRhdGVUcmlnZ2Vycyhjb250ZXh0LT5lc3RhdGUs IHJlc3VsdFJlbEluZm8sCiAJCQkJCQkgTlVMTCwgTlVMTCwKQEAgLTQ2NDAsNiArNTA0MSw5 OSBAQCBFeGVjSW5pdE1vZGlmeVRhYmxlKE1vZGlmeVRhYmxlICpub2RlLCBFU3RhdGUgKmVz dGF0ZSwgaW50IGVmbGFncykKIAkJfQogCX0KIAorCS8qCisJICogSWYgbmVlZGVkLCBpbml0 aWFsaXplIHRoZSB0YXJnZXQgcmFuZ2UgZm9yIEZPUiBQT1JUSU9OIE9GLgorCSAqLworCWlm IChub2RlLT5mb3JQb3J0aW9uT2YpCisJeworCQlSZXN1bHRSZWxJbmZvICpyb290UmVzdWx0 UmVsSW5mbzsKKwkJVHVwbGVEZXNjIHR1cERlc2M7CisJCUZvclBvcnRpb25PZkV4cHIgKmZv clBvcnRpb25PZjsKKwkJRGF0dW0JdGFyZ2V0UmFuZ2U7CisJCWJvb2wJaXNOdWxsOworCQlF eHByQ29udGV4dCAqZWNvbnRleHQ7CisJCUV4cHJTdGF0ZSAqZXhwclN0YXRlOworCQlGb3JQ b3J0aW9uT2ZTdGF0ZSAqZnBvU3RhdGU7CisKKwkJcm9vdFJlc3VsdFJlbEluZm8gPSBtdHN0 YXRlLT5yZXN1bHRSZWxJbmZvOworCQlpZiAocm9vdFJlc3VsdFJlbEluZm8tPnJpX1Jvb3RS ZXN1bHRSZWxJbmZvKQorCQkJcm9vdFJlc3VsdFJlbEluZm8gPSByb290UmVzdWx0UmVsSW5m by0+cmlfUm9vdFJlc3VsdFJlbEluZm87CisKKwkJdHVwRGVzYyA9IHJvb3RSZXN1bHRSZWxJ bmZvLT5yaV9SZWxhdGlvbkRlc2MtPnJkX2F0dDsKKwkJZm9yUG9ydGlvbk9mID0gKEZvclBv cnRpb25PZkV4cHIgKikgbm9kZS0+Zm9yUG9ydGlvbk9mOworCisJCS8qIEV2YWwgdGhlIEZP UiBQT1JUSU9OIE9GIHRhcmdldCAqLworCQlpZiAobXRzdGF0ZS0+cHMucHNfRXhwckNvbnRl eHQgPT0gTlVMTCkKKwkJCUV4ZWNBc3NpZ25FeHByQ29udGV4dChlc3RhdGUsICZtdHN0YXRl LT5wcyk7CisJCWVjb250ZXh0ID0gbXRzdGF0ZS0+cHMucHNfRXhwckNvbnRleHQ7CisKKwkJ ZXhwclN0YXRlID0gRXhlY1ByZXBhcmVFeHByKChFeHByICopIGZvclBvcnRpb25PZi0+dGFy Z2V0UmFuZ2UsIGVzdGF0ZSk7CisJCXRhcmdldFJhbmdlID0gRXhlY0V2YWxFeHByKGV4cHJT dGF0ZSwgZWNvbnRleHQsICZpc051bGwpOworCQlpZiAoaXNOdWxsKQorCQkJZWxvZyhFUlJP UiwgIkdvdCBhIE5VTEwgRk9SIFBPUlRJT04gT0YgdGFyZ2V0IHJhbmdlIik7CisKKwkJLyog Q3JlYXRlIHN0YXRlIGZvciBGT1IgUE9SVElPTiBPRiBvcGVyYXRpb24gKi8KKworCQlmcG9T dGF0ZSA9IG1ha2VOb2RlKEZvclBvcnRpb25PZlN0YXRlKTsKKwkJZnBvU3RhdGUtPmZwX3Jh bmdlTmFtZSA9IGZvclBvcnRpb25PZi0+cmFuZ2VfbmFtZTsKKwkJZnBvU3RhdGUtPmZwX3Jh bmdlVHlwZSA9IGZvclBvcnRpb25PZi0+cmFuZ2VUeXBlOworCQlmcG9TdGF0ZS0+ZnBfcmFu Z2VBdHRubyA9IGZvclBvcnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0dG5vOworCQlmcG9TdGF0 ZS0+ZnBfdGFyZ2V0UmFuZ2UgPSB0YXJnZXRSYW5nZTsKKworCQkvKiBJbml0aWFsaXplIHNs b3QgZm9yIHRoZSBleGlzdGluZyB0dXBsZSAqLworCisJCWZwb1N0YXRlLT5mcF9FeGlzdGlu ZyA9CisJCQl0YWJsZV9zbG90X2NyZWF0ZShyb290UmVzdWx0UmVsSW5mby0+cmlfUmVsYXRp b25EZXNjLAorCQkJCQkJCSAgJm10c3RhdGUtPnBzLnN0YXRlLT5lc190dXBsZVRhYmxlKTsK KworCQkvKiBDcmVhdGUgdGhlIHR1cGxlIHNsb3QgZm9yIElOU0VSVGluZyB0aGUgbGVmdG92 ZXJzICovCisKKwkJZnBvU3RhdGUtPmZwX0xlZnRvdmVyID0KKwkJCUV4ZWNJbml0RXh0cmFU dXBsZVNsb3QobXRzdGF0ZS0+cHMuc3RhdGUsIHR1cERlc2MsICZUVFNPcHNWaXJ0dWFsKTsK KworCQkvKiBBbGxvY2F0ZSBvdXIgU1BJIHBhcmFtIGFycmF5cyBoZXJlIHNvIHdlIGNhbiBy ZXVzZSB0aGVtICovCisJCWZwb1N0YXRlLT5mcF92YWx1ZXMgPSBwYWxsb2ModHVwRGVzYy0+ bmF0dHMgKiBzaXplb2YoRGF0dW0pKTsKKwkJZnBvU3RhdGUtPmZwX251bGxzID0gcGFsbG9j KHR1cERlc2MtPm5hdHRzICogc2l6ZW9mKGNoYXIpKTsKKworCQkvKgorCQkgKiBXZSBtdXN0 IGF0dGFjaCB0aGUgRm9yUG9ydGlvbk9mU3RhdGUgdG8gYWxsIHJlc3VsdCByZWxzLAorCQkg KiBpbiBjYXNlIG9mIGEgY3Jvc3MtcGFydGl0aW9uIHVwZGF0ZSBvciB0cmlnZ2VycyBmaXJp bmcKKwkJICogb24gcGFydGl0aW9ucy4KKwkJICogWFhYOiBDYW4gd2UgZGVmZXIgdGhpcyB0 byBvbmx5IHRoZSBsZWFmcyB3ZSB0b3VjaD8KKwkJICovCisJCWZvciAoaSA9IDA7IGkgPCBu cmVsczsgaSsrKQorCQl7CisJCQlGb3JQb3J0aW9uT2ZTdGF0ZQkqbGVhZlN0YXRlOworCQkJ cmVzdWx0UmVsSW5mbyA9ICZtdHN0YXRlLT5yZXN1bHRSZWxJbmZvW2ldOworCisJCQlsZWFm U3RhdGUgPSBtYWtlTm9kZShGb3JQb3J0aW9uT2ZTdGF0ZSk7CisJCQlsZWFmU3RhdGUtPmZw X3JhbmdlTmFtZSA9IGZwb1N0YXRlLT5mcF9yYW5nZU5hbWU7CisJCQlsZWFmU3RhdGUtPmZw X3JhbmdlVHlwZSA9IGZwb1N0YXRlLT5mcF9yYW5nZVR5cGU7CisJCQlsZWFmU3RhdGUtPmZw X3JhbmdlQXR0bm8gPSBmcG9TdGF0ZS0+ZnBfcmFuZ2VBdHRubzsKKwkJCWxlYWZTdGF0ZS0+ ZnBfdGFyZ2V0UmFuZ2UgPSBmcG9TdGF0ZS0+ZnBfdGFyZ2V0UmFuZ2U7CisJCQlsZWFmU3Rh dGUtPmZwX0xlZnRvdmVyID0gZnBvU3RhdGUtPmZwX0xlZnRvdmVyOworCQkJLyogRWFjaCBw YXJ0aXRpb24gbmVlZHMgYSBzbG90IG1hdGNoaW5nIGl0cyB0dXBsZSBkZXNjcmlwdG9yICov CisJCQlsZWFmU3RhdGUtPmZwX0V4aXN0aW5nID0KKwkJCQl0YWJsZV9zbG90X2NyZWF0ZShy ZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MsCisJCQkJCQkJCSAgJm10c3RhdGUtPnBz LnN0YXRlLT5lc190dXBsZVRhYmxlKTsKKwkJCS8qCisJCQkgKiBMZWFmcyBuZWVkIHRoZW0g b3duIFNQSSBpbnB1dCBhcnJheXMKKwkJCSAqIHNpbmNlIHRoZXkgbWlnaHQgaGF2ZSBleHRy YSBhdHRyaWJ1dGVzLAorCQkJICogYnV0IHdlJ2xsIGFsbG9jYXRlIHRob3NlIGFzIG5lZWRl ZC4KKwkJCSAqLworCQkJbGVhZlN0YXRlLT5mcF92YWx1ZXMgPSBOVUxMOworCQkJbGVhZlN0 YXRlLT5mcF9udWxscyA9IE5VTEw7CisKKwkJCXJlc3VsdFJlbEluZm8tPnJpX2ZvclBvcnRp b25PZiA9IGxlYWZTdGF0ZTsKKwkJfQorCisJCS8qIE1ha2Ugc3VyZSB0aGUgcm9vdCByZWxh dGlvbiBoYXMgdGhlIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSB0b28uICovCisJCWlmIChub2Rl LT5yb290UmVsYXRpb24gPiAwKQorCQkJbXRzdGF0ZS0+cm9vdFJlc3VsdFJlbEluZm8tPnJp X2ZvclBvcnRpb25PZiA9IGZwb1N0YXRlOworCisJCS8qIERvbid0IGZyZWUgdGhlIEV4cHJD b250ZXh0IGhlcmUgYmVjYXVzZSB0aGUgcmVzdWx0IG11c3QgbGFzdCBmb3IgdGhlIHdob2xl IHF1ZXJ5ICovCisJfQorCiAJLyoKIAkgKiBJZiB3ZSBoYXZlIGFueSBzZWNvbmRhcnkgcmVs YXRpb25zIGluIGFuIFVQREFURSBvciBERUxFVEUsIHRoZXkgbmVlZCB0bwogCSAqIGJlIHRy ZWF0ZWQgbGlrZSBub24tbG9ja2VkIHJlbGF0aW9ucyBpbiBTRUxFQ1QgRk9SIFVQREFURSwg aS5lLiwgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCmluZGV4IDJmYjJlNzM2MDRlLi5iMDdkODhjZTJm ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTc2NCw3ICs3NjQsNyBAQCBTUElfZXhlY3V0ZV9w bGFuX3dpdGhfcGFyYW1saXN0KFNQSVBsYW5QdHIgcGxhbiwgUGFyYW1MaXN0SW5mbyBwYXJh bXMsCiAgKiBlbmQgb2YgdGhlIGNvbW1hbmQuCiAgKgogICogVGhpcyBpcyBjdXJyZW50bHkg bm90IGRvY3VtZW50ZWQgaW4gc3BpLnNnbWwgYmVjYXVzZSBpdCBpcyBvbmx5IGludGVuZGVk Ci0gKiBmb3IgdXNlIGJ5IFJJIHRyaWdnZXJzLgorICogZm9yIHVzZSBieSBSSSB0cmlnZ2Vy cyBhbmQgRk9SIFBPUlRJT04gT0YuCiAgKgogICogUGFzc2luZyBzbmFwc2hvdCA9PSBJbnZh bGlkU25hcHNob3Qgd2lsbCBzZWxlY3QgdGhlIG5vcm1hbCBiZWhhdmlvciBvZgogICogZmV0 Y2hpbmcgYSBuZXcgc25hcHNob3QgZm9yIGVhY2ggcXVlcnkuCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jCmluZGV4IDMwNjA4NDdiMTMzLi4wMzRlMDAyMDE0NCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1 bmNzLmMKQEAgLTI1NjAsNiArMjU2MCwxNCBAQCBleHByZXNzaW9uX3RyZWVfd2Fsa2VyX2lt cGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJ Y2FzZSBUX0ZvclBvcnRpb25PZkV4cHI6CisJCQl7CisJCQkJRm9yUG9ydGlvbk9mRXhwciAq Zm9yUG9ydGlvbk9mID0gKEZvclBvcnRpb25PZkV4cHIgKikgbm9kZTsKKworCQkJCWlmIChX QUxLKGZvclBvcnRpb25PZi0+dGFyZ2V0UmFuZ2UpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJ CX0KKwkJCWJyZWFrOwogCQljYXNlIFRfUGFydGl0aW9uUHJ1bmVTdGVwT3A6CiAJCQl7CiAJ CQkJUGFydGl0aW9uUHJ1bmVTdGVwT3AgKm9wc3RlcCA9IChQYXJ0aXRpb25QcnVuZVN0ZXBP cCAqKSBub2RlOwpAQCAtMjcwNiw2ICsyNzE0LDggQEAgcXVlcnlfdHJlZV93YWxrZXJfaW1w bChRdWVyeSAqcXVlcnksCiAJCXJldHVybiB0cnVlOwogCWlmIChXQUxLKHF1ZXJ5LT5tZXJn ZUpvaW5Db25kaXRpb24pKQogCQlyZXR1cm4gdHJ1ZTsKKwlpZiAoV0FMSyhxdWVyeS0+Zm9y UG9ydGlvbk9mKSkKKwkJcmV0dXJuIHRydWU7CiAJaWYgKFdBTEsocXVlcnktPnJldHVybmlu Z0xpc3QpKQogCQlyZXR1cm4gdHJ1ZTsKIAlpZiAoV0FMSyhxdWVyeS0+am9pbnRyZWUpKQpA QCAtMzU5MCw2ICszNjAwLDE5IEBAIGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9k ZSAqbm9kZSwKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKIAkJCX0KIAkJCWJyZWFr OworCQljYXNlIFRfRm9yUG9ydGlvbk9mRXhwcjoKKwkJCXsKKwkJCQlGb3JQb3J0aW9uT2ZF eHByICpmcG8gPSAoRm9yUG9ydGlvbk9mRXhwciAqKSBub2RlOworCQkJCUZvclBvcnRpb25P ZkV4cHIgKm5ld25vZGU7CisKKwkJCQlGTEFUQ09QWShuZXdub2RlLCBmcG8sIEZvclBvcnRp b25PZkV4cHIpOworCQkJCU1VVEFURShuZXdub2RlLT5yYW5nZVZhciwgZnBvLT5yYW5nZVZh ciwgVmFyICopOworCQkJCU1VVEFURShuZXdub2RlLT50YXJnZXRSYW5nZSwgZnBvLT50YXJn ZXRSYW5nZSwgTm9kZSAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+cmFuZ2VUYXJnZXRMaXN0 LCBmcG8tPnJhbmdlVGFyZ2V0TGlzdCwgTGlzdCAqKTsKKworCQkJCXJldHVybiAoTm9kZSAq KSBuZXdub2RlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9QYXJ0aXRpb25QcnVuZVN0 ZXBPcDoKIAkJCXsKIAkJCQlQYXJ0aXRpb25QcnVuZVN0ZXBPcCAqb3BzdGVwID0gKFBhcnRp dGlvblBydW5lU3RlcE9wICopIG5vZGU7CkBAIC0zNzcxLDYgKzM3OTQsNyBAQCBxdWVyeV90 cmVlX211dGF0b3JfaW1wbChRdWVyeSAqcXVlcnksCiAJTVVUQVRFKHF1ZXJ5LT5vbkNvbmZs aWN0LCBxdWVyeS0+b25Db25mbGljdCwgT25Db25mbGljdEV4cHIgKik7CiAJTVVUQVRFKHF1 ZXJ5LT5tZXJnZUFjdGlvbkxpc3QsIHF1ZXJ5LT5tZXJnZUFjdGlvbkxpc3QsIExpc3QgKik7 CiAJTVVUQVRFKHF1ZXJ5LT5tZXJnZUpvaW5Db25kaXRpb24sIHF1ZXJ5LT5tZXJnZUpvaW5D b25kaXRpb24sIE5vZGUgKik7CisJTVVUQVRFKHF1ZXJ5LT5mb3JQb3J0aW9uT2YsIHF1ZXJ5 LT5mb3JQb3J0aW9uT2YsIEZvclBvcnRpb25PZkV4cHIgKik7CiAJTVVUQVRFKHF1ZXJ5LT5y ZXR1cm5pbmdMaXN0LCBxdWVyeS0+cmV0dXJuaW5nTGlzdCwgTGlzdCAqKTsKIAlNVVRBVEUo cXVlcnktPmpvaW50cmVlLCBxdWVyeS0+am9pbnRyZWUsIEZyb21FeHByICopOwogCU1VVEFU RShxdWVyeS0+c2V0T3BlcmF0aW9ucywgcXVlcnktPnNldE9wZXJhdGlvbnMsIE5vZGUgKik7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKaW5kZXggZjJlZDBk ODFmNjEuLjIwMGQyOTg5ZjFhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9jcmVhdGVwbGFuLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3Jl YXRlcGxhbi5jCkBAIC0zMTYsNyArMzE2LDcgQEAgc3RhdGljIE1vZGlmeVRhYmxlICptYWtl X21vZGlmeXRhYmxlKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpzdWJwbGFuLAogCQkJCQkJ CQkJIExpc3QgKndpdGhDaGVja09wdGlvbkxpc3RzLCBMaXN0ICpyZXR1cm5pbmdMaXN0cywK IAkJCQkJCQkJCSBMaXN0ICpyb3dNYXJrcywgT25Db25mbGljdEV4cHIgKm9uY29uZmxpY3Qs CiAJCQkJCQkJCQkgTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgTGlzdCAqbWVyZ2VKb2luQ29u ZGl0aW9ucywKLQkJCQkJCQkJCSBpbnQgZXBxUGFyYW0pOworCQkJCQkJCQkJIEZvclBvcnRp b25PZkV4cHIgKmZvclBvcnRpb25PZiwgaW50IGVwcVBhcmFtKTsKIHN0YXRpYyBHYXRoZXJN ZXJnZSAqY3JlYXRlX2dhdGhlcl9tZXJnZV9wbGFuKFBsYW5uZXJJbmZvICpyb290LAogCQkJ CQkJCQkJCQkgR2F0aGVyTWVyZ2VQYXRoICpiZXN0X3BhdGgpOwogCkBAIC0yODM4LDYgKzI4 MzgsNyBAQCBjcmVhdGVfbW9kaWZ5dGFibGVfcGxhbihQbGFubmVySW5mbyAqcm9vdCwgTW9k aWZ5VGFibGVQYXRoICpiZXN0X3BhdGgpCiAJCQkJCQkJYmVzdF9wYXRoLT5vbmNvbmZsaWN0 LAogCQkJCQkJCWJlc3RfcGF0aC0+bWVyZ2VBY3Rpb25MaXN0cywKIAkJCQkJCQliZXN0X3Bh dGgtPm1lcmdlSm9pbkNvbmRpdGlvbnMsCisJCQkJCQkJYmVzdF9wYXRoLT5mb3JQb3J0aW9u T2YsCiAJCQkJCQkJYmVzdF9wYXRoLT5lcHFQYXJhbSk7CiAKIAljb3B5X2dlbmVyaWNfcGF0 aF9pbmZvKCZwbGFuLT5wbGFuLCAmYmVzdF9wYXRoLT5wYXRoKTsKQEAgLTcxMTEsNyArNzEx Miw3IEBAIG1ha2VfbW9kaWZ5dGFibGUoUGxhbm5lckluZm8gKnJvb3QsIFBsYW4gKnN1YnBs YW4sCiAJCQkJIExpc3QgKndpdGhDaGVja09wdGlvbkxpc3RzLCBMaXN0ICpyZXR1cm5pbmdM aXN0cywKIAkJCQkgTGlzdCAqcm93TWFya3MsIE9uQ29uZmxpY3RFeHByICpvbmNvbmZsaWN0 LAogCQkJCSBMaXN0ICptZXJnZUFjdGlvbkxpc3RzLCBMaXN0ICptZXJnZUpvaW5Db25kaXRp b25zLAotCQkJCSBpbnQgZXBxUGFyYW0pCisJCQkJIEZvclBvcnRpb25PZkV4cHIgKmZvclBv cnRpb25PZiwgaW50IGVwcVBhcmFtKQogewogCU1vZGlmeVRhYmxlICpub2RlID0gbWFrZU5v ZGUoTW9kaWZ5VGFibGUpOwogCUxpc3QJICAgKmZkd19wcml2YXRlX2xpc3Q7CkBAIC03MTc3 LDYgKzcxNzgsNyBAQCBtYWtlX21vZGlmeXRhYmxlKFBsYW5uZXJJbmZvICpyb290LCBQbGFu ICpzdWJwbGFuLAogCQlub2RlLT5leGNsUmVsVGxpc3QgPSBvbmNvbmZsaWN0LT5leGNsUmVs VGxpc3Q7CiAJfQogCW5vZGUtPnVwZGF0ZUNvbG5vc0xpc3RzID0gdXBkYXRlQ29sbm9zTGlz dHM7CisJbm9kZS0+Zm9yUG9ydGlvbk9mID0gKE5vZGUgKikgZm9yUG9ydGlvbk9mOwogCW5v ZGUtPndpdGhDaGVja09wdGlvbkxpc3RzID0gd2l0aENoZWNrT3B0aW9uTGlzdHM7CiAJbm9k ZS0+cmV0dXJuaW5nTGlzdHMgPSByZXR1cm5pbmdMaXN0czsKIAlub2RlLT5yb3dNYXJrcyA9 IHJvd01hcmtzOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxh bm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IDFm NzhkYzNkNTMwLi4wYWI3NjhjNmVlOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Bs YW5uZXIuYwpAQCAtMjA0Miw2ICsyMDQyLDcgQEAgZ3JvdXBpbmdfcGxhbm5lcihQbGFubmVy SW5mbyAqcm9vdCwgZG91YmxlIHR1cGxlX2ZyYWN0aW9uLAogCQkJCQkJCQkJCXBhcnNlLT5v bkNvbmZsaWN0LAogCQkJCQkJCQkJCW1lcmdlQWN0aW9uTGlzdHMsCiAJCQkJCQkJCQkJbWVy Z2VKb2luQ29uZGl0aW9ucywKKwkJCQkJCQkJCQlwYXJzZS0+Zm9yUG9ydGlvbk9mLAogCQkJ CQkJCQkJCWFzc2lnbl9zcGVjaWFsX2V4ZWNfcGFyYW0ocm9vdCkpOwogCQl9CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMgYi9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jCmluZGV4IGZjOTdiZjZlZTI2Li5hNGNj NmUwOTYyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5v ZGUuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jCkBAIC0z ODI3LDcgKzM4MjcsNyBAQCBjcmVhdGVfbW9kaWZ5dGFibGVfcGF0aChQbGFubmVySW5mbyAq cm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCQkJCQkJTGlzdCAqd2l0aENoZWNrT3B0aW9uTGlz dHMsIExpc3QgKnJldHVybmluZ0xpc3RzLAogCQkJCQkJTGlzdCAqcm93TWFya3MsIE9uQ29u ZmxpY3RFeHByICpvbmNvbmZsaWN0LAogCQkJCQkJTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywg TGlzdCAqbWVyZ2VKb2luQ29uZGl0aW9ucywKLQkJCQkJCWludCBlcHFQYXJhbSkKKwkJCQkJ CUZvclBvcnRpb25PZkV4cHIgKmZvclBvcnRpb25PZiwgaW50IGVwcVBhcmFtKQogewogCU1v ZGlmeVRhYmxlUGF0aCAqcGF0aG5vZGUgPSBtYWtlTm9kZShNb2RpZnlUYWJsZVBhdGgpOwog CkBAIC0zODk0LDYgKzM4OTQsNyBAQCBjcmVhdGVfbW9kaWZ5dGFibGVfcGF0aChQbGFubmVy SW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAogCXBhdGhub2RlLT5yZXR1cm5pbmdMaXN0 cyA9IHJldHVybmluZ0xpc3RzOwogCXBhdGhub2RlLT5yb3dNYXJrcyA9IHJvd01hcmtzOwog CXBhdGhub2RlLT5vbmNvbmZsaWN0ID0gb25jb25mbGljdDsKKwlwYXRobm9kZS0+Zm9yUG9y dGlvbk9mID0gZm9yUG9ydGlvbk9mOwogCXBhdGhub2RlLT5lcHFQYXJhbSA9IGVwcVBhcmFt OwogCXBhdGhub2RlLT5tZXJnZUFjdGlvbkxpc3RzID0gbWVyZ2VBY3Rpb25MaXN0czsKIAlw YXRobm9kZS0+bWVyZ2VKb2luQ29uZGl0aW9ucyA9IG1lcmdlSm9pbkNvbmRpdGlvbnM7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYwppbmRleCA1MDZlMDYzMTYxNS4uOTA5ZWQ1ZDdlMmEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYwpAQCAtMjQsNyArMjQsMTAgQEAKIAogI2luY2x1ZGUgInBvc3Rn cmVzLmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MvZ2lzdC5oIgorI2luY2x1ZGUgImFjY2Vzcy9z dHJhdG51bS5oIgogI2luY2x1ZGUgImFjY2Vzcy9zeXNhdHRyLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgpAQCAt NDcsMTAgKzUwLDEyIEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJz ZV90eXBlLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlci5oIgogI2luY2x1ZGUgInBhcnNl ci9wYXJzZXRyZWUuaCIKICNpbmNsdWRlICJ1dGlscy9iYWNrZW5kX3N0YXR1cy5oIgogI2lu Y2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZ3VjLmgiCisjaW5j bHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5j bHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIApAQCAtNTksMTAgKzY0LDE2IEBACiBwb3N0X3Bh cnNlX2FuYWx5emVfaG9va190eXBlIHBvc3RfcGFyc2VfYW5hbHl6ZV9ob29rID0gTlVMTDsK IAogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1PcHRpb25hbFNlbGVjdEludG8oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBOb2RlICpwYXJzZVRyZWUpOworc3RhdGljIE5vZGUgKmFkZEZvclBvcnRp b25PZldoZXJlQ29uZGl0aW9ucyhRdWVyeSAqcXJ5LCBGb3JQb3J0aW9uT2ZDbGF1c2UgKmZv clBvcnRpb25PZiwKKwkJCQkJCQkJCQkJTm9kZSAqd2hlcmVDbGF1c2UpOwogc3RhdGljIFF1 ZXJ5ICp0cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3Rt dCAqc3RtdCk7CiBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybUluc2VydFN0bXQoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBJbnNlcnRTdG10ICpzdG10KTsKIHN0YXRpYyBPbkNvbmZsaWN0RXhwciAq dHJhbnNmb3JtT25Db25mbGljdENsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJ CQkJCQkgT25Db25mbGljdENsYXVzZSAqb25Db25mbGljdENsYXVzZSk7CitzdGF0aWMgRm9y UG9ydGlvbk9mRXhwciAqdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwKKwkJCQkJCQkJCQkJCQkgaW50IHJ0aW5kZXgsCisJCQkJCQkJCQkJCQkJIEZv clBvcnRpb25PZkNsYXVzZSAqZm9yUG9ydGlvbk9mQ2xhdXNlLAorCQkJCQkJCQkJCQkJCSBi b29sIGlzVXBkYXRlKTsKIHN0YXRpYyBpbnQJY291bnRfcm93ZXhwcl9jb2x1bW5zKFBhcnNl U3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcik7CiBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybVNl bGVjdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KTsKIHN0YXRp YyBRdWVyeSAqdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2Vs ZWN0U3RtdCAqc3RtdCk7CkBAIC01NjcsNiArNTc4LDIwIEBAIHN0bXRfcmVxdWlyZXNfcGFy c2VfYW5hbHlzaXMoUmF3U3RtdCAqcGFyc2VUcmVlKQogCXJldHVybiByZXN1bHQ7CiB9CiAK K3N0YXRpYyBOb2RlICoKK2FkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0aW9ucyhRdWVyeSAq cXJ5LCBGb3JQb3J0aW9uT2ZDbGF1c2UgKmZvclBvcnRpb25PZiwgTm9kZSAqd2hlcmVDbGF1 c2UpCit7CisJaWYgKGZvclBvcnRpb25PZikKKwl7CisJCWlmICh3aGVyZUNsYXVzZSkKKwkJ CXJldHVybiAoTm9kZSAqKSBtYWtlQm9vbEV4cHIoQU5EX0VYUFIsIGxpc3RfbWFrZTIocXJ5 LT5mb3JQb3J0aW9uT2YtPm92ZXJsYXBzRXhwciwgd2hlcmVDbGF1c2UpLCAtMSk7CisJCWVs c2UKKwkJCXJldHVybiBxcnktPmZvclBvcnRpb25PZi0+b3ZlcmxhcHNFeHByOworCX0KKwll bHNlCisJCXJldHVybiB3aGVyZUNsYXVzZTsKK30KKwogLyoKICAqIGFuYWx5emVfcmVxdWly ZXNfc25hcHNob3QKICAqCQlSZXR1cm5zIHRydWUgaWYgYSBzbmFwc2hvdCBtdXN0IGJlIHNl dCBiZWZvcmUgZG9pbmcgcGFyc2UgYW5hbHlzaXMKQEAgLTYwMCw2ICs2MjUsNyBAQCB0cmFu c2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCkK IHsKIAlRdWVyeQkgICAqcXJ5ID0gbWFrZU5vZGUoUXVlcnkpOwogCVBhcnNlTmFtZXNwYWNl SXRlbSAqbnNpdGVtOworCU5vZGUJICAgKndoZXJlQ2xhdXNlOwogCU5vZGUJICAgKnF1YWw7 CiAKIAlxcnktPmNvbW1hbmRUeXBlID0gQ01EX0RFTEVURTsKQEAgLTYzOCw3ICs2NjQsMTEg QEAgdHJhbnNmb3JtRGVsZXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIERlbGV0ZVN0bXQg KnN0bXQpCiAJbnNpdGVtLT5wX2xhdGVyYWxfb25seSA9IGZhbHNlOwogCW5zaXRlbS0+cF9s YXRlcmFsX29rID0gdHJ1ZTsKIAotCXF1YWwgPSB0cmFuc2Zvcm1XaGVyZUNsYXVzZShwc3Rh dGUsIHN0bXQtPndoZXJlQ2xhdXNlLAorCWlmIChzdG10LT5mb3JQb3J0aW9uT2YpCisJCXFy eS0+Zm9yUG9ydGlvbk9mID0gdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKHBzdGF0ZSwg cXJ5LT5yZXN1bHRSZWxhdGlvbiwgc3RtdC0+Zm9yUG9ydGlvbk9mLCBmYWxzZSk7CisKKwl3 aGVyZUNsYXVzZSA9IGFkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0aW9ucyhxcnksIHN0bXQt PmZvclBvcnRpb25PZiwgc3RtdC0+d2hlcmVDbGF1c2UpOworCXF1YWwgPSB0cmFuc2Zvcm1X aGVyZUNsYXVzZShwc3RhdGUsIHdoZXJlQ2xhdXNlLAogCQkJCQkJCQlFWFBSX0tJTkRfV0hF UkUsICJXSEVSRSIpOwogCiAJcXJ5LT5yZXR1cm5pbmdMaXN0ID0gdHJhbnNmb3JtUmV0dXJu aW5nTGlzdChwc3RhdGUsIHN0bXQtPnJldHVybmluZ0xpc3QsCkBAIC0xMjc0LDcgKzEzMDQs NyBAQCB0cmFuc2Zvcm1PbkNvbmZsaWN0Q2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ ICogTm93IHRyYW5zZm9ybSB0aGUgVVBEQVRFIHN1YmV4cHJlc3Npb25zLgogCQkgKi8KIAkJ b25Db25mbGljdFNldCA9Ci0JCQl0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KHBzdGF0ZSwg b25Db25mbGljdENsYXVzZS0+dGFyZ2V0TGlzdCk7CisJCQl0cmFuc2Zvcm1VcGRhdGVUYXJn ZXRMaXN0KHBzdGF0ZSwgb25Db25mbGljdENsYXVzZS0+dGFyZ2V0TGlzdCwgTlVMTCk7CiAK IAkJb25Db25mbGljdFdoZXJlID0gdHJhbnNmb3JtV2hlcmVDbGF1c2UocHN0YXRlLAogCQkJ CQkJCQkJCQkgICBvbkNvbmZsaWN0Q2xhdXNlLT53aGVyZUNsYXVzZSwKQEAgLTEzMDQsNiAr MTMzNCwxNzMgQEAgdHJhbnNmb3JtT25Db25mbGljdENsYXVzZShQYXJzZVN0YXRlICpwc3Rh dGUsCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIHRyYW5zZm9ybUZvclBvcnRpb25P ZkNsYXVzZQorICoKKyAqCSAgVHJhbnNmb3JtcyBhIEZvclBvcnRpb25PZkNsYXVzZSBpbiBh biBVUERBVEUvREVMRVRFIHN0YXRlbWVudC4KKyAqCisgKgkgIC0gTG9vayB1cCB0aGUgcmFu Z2UvcGVyaW9kIHJlcXVlc3RlZC4KKyAqCSAgLSBCdWlsZCBhIGNvbXBhdGlibGUgcmFuZ2Ug dmFsdWUgZnJvbSB0aGUgRlJPTSBhbmQgVE8gZXhwcmVzc2lvbnMuCisgKgkgIC0gQnVpbGQg YW4gIm92ZXJsYXBzIiBleHByZXNzaW9uIGZvciBmaWx0ZXJpbmcuCisgKgkgIC0gRm9yIFVQ REFURXMsIGJ1aWxkIGFuICJpbnRlcnNlY3RzIiBleHByZXNzaW9uIHRoZSByZXdyaXRlciBj YW4gYWRkCisgKgkJdG8gdGhlIHRhcmdldExpc3QgdG8gY2hhbmdlIHRoZSB0ZW1wb3JhbCBi b3VuZHMuCisgKi8KK3N0YXRpYyBGb3JQb3J0aW9uT2ZFeHByICoKK3RyYW5zZm9ybUZvclBv cnRpb25PZkNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJaW50IHJ0aW5kZXgs CisJCQkJCQkJRm9yUG9ydGlvbk9mQ2xhdXNlICpmb3JQb3J0aW9uT2YsCisJCQkJCQkJYm9v bCBpc1VwZGF0ZSkKK3sKKwlSZWxhdGlvbiB0YXJnZXRyZWwgPSBwc3RhdGUtPnBfdGFyZ2V0 X3JlbGF0aW9uOworCVJURVBlcm1pc3Npb25JbmZvICp0YXJnZXRfcGVybWluZm8gPSBwc3Rh dGUtPnBfdGFyZ2V0X25zaXRlbS0+cF9wZXJtaW5mbzsKKwljaGFyICpyYW5nZV9uYW1lID0g Zm9yUG9ydGlvbk9mLT5yYW5nZV9uYW1lOworCWNoYXIgKnJhbmdlX3R5cGVfbmFtZXNwYWNl ID0gTlVMTDsKKwljaGFyICpyYW5nZV90eXBlX25hbWUgPSBOVUxMOworCWludCByYW5nZV9h dHRubyA9IEludmFsaWRBdHRyTnVtYmVyOworCUZvcm1fcGdfYXR0cmlidXRlIGF0dHI7CisJ T2lkCW9wY2xhc3M7CisJT2lkIG9wZmFtaWx5OworCU9pZCBvcGNpbnR5cGU7CisJT2lkIGZ1 bmNpZCA9IEludmFsaWRPaWQ7CisJU3RyYXRlZ3lOdW1iZXIgc3RyYXQ7CisJT2lkCW9waWQ7 CisJRm9yUG9ydGlvbk9mRXhwciAqcmVzdWx0OworCVZhciAqcmFuZ2VWYXI7CisJTm9kZSAq dGFyZ2V0RXhwcjsKKworCS8qIFdlIGRvbid0IHN1cHBvcnQgRk9SIFBPUlRJT04gT0YgRkRX IHF1ZXJpZXMuICovCisJaWYgKHRhcmdldHJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJ TkRfRk9SRUlHTl9UQUJMRSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygiZm9yZWlnbiB0YWJs ZXMgZG9uJ3Qgc3VwcG9ydCBGT1IgUE9SVElPTiBPRiIpKSk7CisKKwlyZXN1bHQgPSBtYWtl Tm9kZShGb3JQb3J0aW9uT2ZFeHByKTsKKworCS8qIExvb2sgdXAgdGhlIEZPUiBQT1JUSU9O IE9GIG5hbWUgcmVxdWVzdGVkLiAqLworCXJhbmdlX2F0dG5vID0gYXR0bmFtZUF0dE51bSh0 YXJnZXRyZWwsIHJhbmdlX25hbWUsIGZhbHNlKTsKKwlpZiAocmFuZ2VfYXR0bm8gPT0gSW52 YWxpZEF0dHJOdW1iZXIpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9VTkRFRklORURfQ09MVU1OKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gb3IgcGVyaW9kIFwi JXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJcmFuZ2Vf bmFtZSwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpLAorCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBmb3JQb3J0aW9uT2YtPmxvY2F0aW9uKSkp OworCWF0dHIgPSBUdXBsZURlc2NBdHRyKHRhcmdldHJlbC0+cmRfYXR0LCByYW5nZV9hdHRu byAtIDEpOworCisJcmFuZ2VWYXIgPSBtYWtlVmFyKAorCQkJcnRpbmRleCwKKwkJCXJhbmdl X2F0dG5vLAorCQkJYXR0ci0+YXR0dHlwaWQsCisJCQlhdHRyLT5hdHR0eXBtb2QsCisJCQlh dHRyLT5hdHRjb2xsYXRpb24sCisJCQkwKTsKKwlyYW5nZVZhci0+bG9jYXRpb24gPSBmb3JQ b3J0aW9uT2YtPmxvY2F0aW9uOworCXJlc3VsdC0+cmFuZ2VWYXIgPSByYW5nZVZhcjsKKwly ZXN1bHQtPnJhbmdlVHlwZSA9IGF0dHItPmF0dHR5cGlkOworCWlmICghZ2V0X3R5cG5hbWVf YW5kX25hbWVzcGFjZShhdHRyLT5hdHR0eXBpZCwgJnJhbmdlX3R5cGVfbmFtZSwgJnJhbmdl X3R5cGVfbmFtZXNwYWNlKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQg Zm9yIHR5cGUgJXUiLCBhdHRyLT5hdHR0eXBpZCk7CisKKworCWlmIChmb3JQb3J0aW9uT2Yt PnRhcmdldCkKKwkJLyoKKwkJICogV2Ugd2VyZSBhbHJlYWR5IGdpdmVuIGFuIGV4cHJlc3Np b24gZm9yIHRoZSB0YXJnZXQsCisJCSAqIHNvIHdlIGRvbid0IGhhdmUgdG8gYnVpbGQgYW55 dGhpbmcuCisJCSAqLworCQl0YXJnZXRFeHByID0gZm9yUG9ydGlvbk9mLT50YXJnZXQ7CisJ ZWxzZQorCXsKKwkJLyogTWFrZSBzdXJlIGl0J3MgYSByYW5nZSBjb2x1bW4gKi8KKwkJaWYg KCF0eXBlX2lzX3JhbmdlKGF0dHItPmF0dHR5cGlkKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9DT0xVTU5fUkVGRVJFTkNFKSwKKwkJCQkJ IGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgbm90IGEgcmFu Z2UgdHlwZSIsCisJCQkJCQkJcmFuZ2VfbmFtZSwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZSh0YXJnZXRyZWwpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUs IGZvclBvcnRpb25PZi0+bG9jYXRpb24pKSk7CisKKwkJLyoKKwkJICogQnVpbGQgYSByYW5n ZSBmcm9tIHRoZSBGUk9NIC4uLiBUTyAuLi4uIGJvdW5kcy4KKwkJICogVGhpcyBzaG91bGQg Z2l2ZSBhIGNvbnN0YW50IHJlc3VsdCwgc28gd2UgYWNjZXB0IGZ1bmN0aW9ucyBsaWtlIE5P VygpCisJCSAqIGJ1dCBub3QgY29sdW1uIHJlZmVyZW5jZXMsIHN1YnF1ZXJpZXMsIGV0Yy4K KwkJICovCisJCXRhcmdldEV4cHIgPSAoTm9kZSAqKSBtYWtlRnVuY0NhbGwoCisJCQkJbGlz dF9tYWtlMihtYWtlU3RyaW5nKHJhbmdlX3R5cGVfbmFtZXNwYWNlKSwgbWFrZVN0cmluZyhy YW5nZV90eXBlX25hbWUpKSwKKwkJCQlsaXN0X21ha2UyKGZvclBvcnRpb25PZi0+dGFyZ2V0 X3N0YXJ0LCBmb3JQb3J0aW9uT2YtPnRhcmdldF9lbmQpLAorCQkJCUNPRVJDRV9FWFBMSUNJ VF9DQUxMLAorCQkJCWZvclBvcnRpb25PZi0+bG9jYXRpb24pOworCX0KKwlyZXN1bHQtPnRh cmdldFJhbmdlID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIHRhcmdldEV4cHIsIEVYUFJfS0lO RF9VUERBVEVfUE9SVElPTik7CisKKwkvKgorCSAqIEJ1aWxkIG92ZXJsYXBzRXhwciB0byB1 c2UgaW4gdGhlIHdoZXJlQ2xhdXNlLgorCSAqIFRoaXMgbWVhbnMgd2Ugb25seSBoaXQgcm93 cyBtYXRjaGluZyB0aGUgRlJPTSAmIFRPIGJvdW5kcy4KKwkgKiBXZSBtdXN0IGxvb2sgdXAg dGhlIG92ZXJsYXBzIG9wZXJhdG9yICh1c3VhbGx5ICImJiIpLgorCSAqLworCW9wY2xhc3Mg PSBHZXREZWZhdWx0T3BDbGFzcyhhdHRyLT5hdHR0eXBpZCwgR0lTVF9BTV9PSUQpOworCXN0 cmF0ID0gUlRPdmVybGFwU3RyYXRlZ3lOdW1iZXI7CisJR2V0T3BlcmF0b3JGcm9tV2VsbEtu b3duU3RyYXRlZ3kob3BjbGFzcywgSW52YWxpZE9pZCwgJm9waWQsICZzdHJhdCk7CisJcmVz dWx0LT5vdmVybGFwc0V4cHIgPSAoTm9kZSAqKSBtYWtlU2ltcGxlQV9FeHByKEFFWFBSX09Q LCBnZXRfb3BuYW1lKG9waWQpLAorCQkJKE5vZGUgKikgY29weU9iamVjdChyYW5nZVZhciks IHRhcmdldEV4cHIsCisJCQlmb3JQb3J0aW9uT2YtPmxvY2F0aW9uKTsKKworCS8qCisJICog TG9vayB1cCB0aGUgd2l0aG91dFBvcnRpb25PcGVyIHNvIHdlIGNhbiBjb21wdXRlIHRoZSBs ZWZ0b3ZlcnMuCisJICogTGVmdG92ZXJzIHdpbGwgYmUgb2xkX3JhbmdlIEAtIHRhcmdldF9y YW5nZQorCSAqIChvbmUgcGVyIGVsZW1lbnQgb2YgdGhlIHJlc3VsdCkuCisJICovCisJZnVu Y2lkID0gSW52YWxpZE9pZDsKKwlpZiAoZ2V0X29wY2xhc3Nfb3BmYW1pbHlfYW5kX2lucHV0 X3R5cGUob3BjbGFzcywgJm9wZmFtaWx5LCAmb3BjaW50eXBlKSkKKwkJZnVuY2lkID0gZ2V0 X29wZmFtaWx5X3Byb2Mob3BmYW1pbHksIG9wY2ludHlwZSwgb3BjaW50eXBlLCBHSVNUX1dJ VEhPVVRfUE9SVElPTl9QUk9DKTsKKworCWlmICghT2lkSXNWYWxpZChmdW5jaWQpKQorCQll cmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwK KwkJCQllcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhIHdpdGhvdXRfb3ZlcmxhcHMgc3Vw cG9ydCBmdW5jdGlvbiBmb3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2JlKG9wY2ludHlwZSkp LAorCQkJCWVycmhpbnQoIkRlZmluZSBhIHdpdGhvdXRfb3ZlcmxhcHMgc3VwcG9ydCBmdW5j dGlvbiBmb3Igb3BlcmF0b3IgY2xhc3MgXCIlZFwiIGZvciBhY2Nlc3MgbWV0aG9kIFwiJXNc Ii4iLAorCQkJCQkgb3BjbGFzcywgImdpc3QiKSk7CisKKwlyZXN1bHQtPndpdGhvdXRQb3J0 aW9uUHJvYyA9IGZ1bmNpZDsKKworCWlmIChpc1VwZGF0ZSkKKwl7CisJCS8qCisJCSAqIE5v dyBtYWtlIHN1cmUgd2UgdXBkYXRlIHRoZSBzdGFydC9lbmQgdGltZSBvZiB0aGUgcmVjb3Jk LgorCQkgKiBGb3IgYSByYW5nZSBjb2wgKHIpIHRoaXMgaXMgYHIgPSByICogdGFyZ2V0UmFu Z2VgLgorCQkgKi8KKwkJTGlzdAkJICAgKmZ1bmNBcmdzID0gTklMOworCQlGdW5jRXhwcgkg ICAqcmFuZ2VUTEVFeHByOworCQlUYXJnZXRFbnRyeQkgICAqdGxlOworCisJCWZ1bmNpZCA9 IGdldF9vcGZhbWlseV9wcm9jKG9wZmFtaWx5LCBvcGNpbnR5cGUsIG9wY2ludHlwZSwgR0lT VF9JTlRFUlNFQ1RfUFJPQyk7CisJCWlmICghT2lkSXNWYWxpZChmdW5jaWQpKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAor CQkJCQllcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhbiBpbnRlcnNlY3Qgc3VwcG9ydCBm dW5jdGlvbiBmb3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2JlKG9wY2ludHlwZSkpLAorCQkJ CQllcnJoaW50KCJEZWZpbmUgYW4gaW50ZXJzZWN0IHN1cHBvcnQgZnVuY3Rpb24gZm9yIG9w ZXJhdG9yIGNsYXNzIFwiJWRcIiBmb3IgYWNjZXNzIG1ldGhvZCBcIiVzXCIuIiwKKwkJCQkJ CSBvcGNsYXNzLCAiZ2lzdCIpKTsKKworCQl0YXJnZXRFeHByID0gdHJhbnNmb3JtRXhwcihw c3RhdGUsIHRhcmdldEV4cHIsIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTik7CisJCWZ1bmNB cmdzID0gbGFwcGVuZChmdW5jQXJncywgY29weU9iamVjdChyYW5nZVZhcikpOworCQlmdW5j QXJncyA9IGxhcHBlbmQoZnVuY0FyZ3MsIHRhcmdldEV4cHIpOworCQlyYW5nZVRMRUV4cHIg PSBtYWtlRnVuY0V4cHIoZnVuY2lkLCBhdHRyLT5hdHR0eXBpZCwgZnVuY0FyZ3MsCisJCQkJ CQkJCQlJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCBDT0VSQ0VfRVhQTElDSVRfQ0FMTCk7CisK KwkJLyogTWFrZSBhIFRMRSB0byBzZXQgdGhlIHJhbmdlIGNvbHVtbiAqLworCQlyZXN1bHQt PnJhbmdlVGFyZ2V0TGlzdCA9IE5JTDsKKwkJdGxlID0gbWFrZVRhcmdldEVudHJ5KChFeHBy ICopIHJhbmdlVExFRXhwciwgcmFuZ2VfYXR0bm8sIHJhbmdlX25hbWUsIGZhbHNlKTsKKwkJ cmVzdWx0LT5yYW5nZVRhcmdldExpc3QgPSBsYXBwZW5kKHJlc3VsdC0+cmFuZ2VUYXJnZXRM aXN0LCB0bGUpOworCisJCS8qIE1hcmsgdGhlIHJhbmdlIGNvbHVtbiBhcyByZXF1aXJpbmcg dXBkYXRlIHBlcm1pc3Npb25zICovCisJCXRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMg PSBibXNfYWRkX21lbWJlcih0YXJnZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xzLAorCQkJCQkJ CQkJCQkJCSAgcmFuZ2VfYXR0bm8gLSBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVt YmVyKTsKKwl9CisJZWxzZQorCQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IE5JTDsKKwor CXJlc3VsdC0+cmFuZ2VfbmFtZSA9IHJhbmdlX25hbWU7CisKKwlyZXR1cm4gcmVzdWx0Owor fQogCiAvKgogICogQnVpbGRPbkNvbmZsaWN0RXhjbHVkZWRUYXJnZXRsaXN0CkBAIC0yNTEy LDYgKzI3MDksNyBAQCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg VXBkYXRlU3RtdCAqc3RtdCkKIHsKIAlRdWVyeQkgICAqcXJ5ID0gbWFrZU5vZGUoUXVlcnkp OwogCVBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtOworCU5vZGUJICAgKndoZXJlQ2xhdXNl OwogCU5vZGUJICAgKnF1YWw7CiAKIAlxcnktPmNvbW1hbmRUeXBlID0gQ01EX1VQREFURTsK QEAgLTI1MjksNiArMjcyNywxMCBAQCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUg KnBzdGF0ZSwgVXBkYXRlU3RtdCAqc3RtdCkKIAkJCQkJCQkJCQkgc3RtdC0+cmVsYXRpb24t PmluaCwKIAkJCQkJCQkJCQkgdHJ1ZSwKIAkJCQkJCQkJCQkgQUNMX1VQREFURSk7CisKKwlp ZiAoc3RtdC0+Zm9yUG9ydGlvbk9mKQorCQlxcnktPmZvclBvcnRpb25PZiA9IHRyYW5zZm9y bUZvclBvcnRpb25PZkNsYXVzZShwc3RhdGUsIHFyeS0+cmVzdWx0UmVsYXRpb24sIHN0bXQt PmZvclBvcnRpb25PZiwgdHJ1ZSk7CisKIAluc2l0ZW0gPSBwc3RhdGUtPnBfdGFyZ2V0X25z aXRlbTsKIAogCS8qIHN1YnF1ZXJpZXMgaW4gRlJPTSBjYW5ub3QgYWNjZXNzIHRoZSByZXN1 bHQgcmVsYXRpb24gKi8KQEAgLTI1NDUsNyArMjc0Nyw4IEBAIHRyYW5zZm9ybVVwZGF0ZVN0 bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCW5zaXRlbS0+cF9s YXRlcmFsX29ubHkgPSBmYWxzZTsKIAluc2l0ZW0tPnBfbGF0ZXJhbF9vayA9IHRydWU7CiAK LQlxdWFsID0gdHJhbnNmb3JtV2hlcmVDbGF1c2UocHN0YXRlLCBzdG10LT53aGVyZUNsYXVz ZSwKKwl3aGVyZUNsYXVzZSA9IGFkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0aW9ucyhxcnks IHN0bXQtPmZvclBvcnRpb25PZiwgc3RtdC0+d2hlcmVDbGF1c2UpOworCXF1YWwgPSB0cmFu c2Zvcm1XaGVyZUNsYXVzZShwc3RhdGUsIHdoZXJlQ2xhdXNlLAogCQkJCQkJCQlFWFBSX0tJ TkRfV0hFUkUsICJXSEVSRSIpOwogCiAJcXJ5LT5yZXR1cm5pbmdMaXN0ID0gdHJhbnNmb3Jt UmV0dXJuaW5nTGlzdChwc3RhdGUsIHN0bXQtPnJldHVybmluZ0xpc3QsCkBAIC0yNTU1LDcg KzI3NTgsNyBAQCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBk YXRlU3RtdCAqc3RtdCkKIAkgKiBOb3cgd2UgYXJlIGRvbmUgd2l0aCBTRUxFQ1QtbGlrZSBw cm9jZXNzaW5nLCBhbmQgY2FuIGdldCBvbiB3aXRoCiAJICogdHJhbnNmb3JtaW5nIHRoZSB0 YXJnZXQgbGlzdCB0byBtYXRjaCB0aGUgVVBEQVRFIHRhcmdldCBjb2x1bW5zLgogCSAqLwot CXFyeS0+dGFyZ2V0TGlzdCA9IHRyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3QocHN0YXRlLCBz dG10LT50YXJnZXRMaXN0KTsKKwlxcnktPnRhcmdldExpc3QgPSB0cmFuc2Zvcm1VcGRhdGVU YXJnZXRMaXN0KHBzdGF0ZSwgc3RtdC0+dGFyZ2V0TGlzdCwgcXJ5LT5mb3JQb3J0aW9uT2Yp OwogCiAJcXJ5LT5ydGFibGUgPSBwc3RhdGUtPnBfcnRhYmxlOwogCXFyeS0+cnRlcGVybWlu Zm9zID0gcHN0YXRlLT5wX3J0ZXBlcm1pbmZvczsKQEAgLTI1NzQsNyArMjc3Nyw3IEBAIHRy YW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10 KQogICoJaGFuZGxlIFNFVCBjbGF1c2UgaW4gVVBEQVRFL01FUkdFL0lOU0VSVCAuLi4gT04g Q09ORkxJQ1QgVVBEQVRFCiAgKi8KIExpc3QgKgotdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlz dChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKm9yaWdUbGlzdCkKK3RyYW5zZm9ybVVwZGF0 ZVRhcmdldExpc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpvcmlnVGxpc3QsIEZvclBv cnRpb25PZkV4cHIgKmZvclBvcnRpb25PZikKIHsKIAlMaXN0CSAgICp0bGlzdCA9IE5JTDsK IAlSVEVQZXJtaXNzaW9uSW5mbyAqdGFyZ2V0X3Blcm1pbmZvOwpAQCAtMjYyNyw2ICsyODMw LDIxIEBAIHRyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBM aXN0ICpvcmlnVGxpc3QpCiAJCQkJCSBlcnJoaW50KCJTRVQgdGFyZ2V0IGNvbHVtbnMgY2Fu bm90IGJlIHF1YWxpZmllZCB3aXRoIHRoZSByZWxhdGlvbiBuYW1lLiIpIDogMCwKIAkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG9yaWdUYXJnZXQtPmxvY2F0aW9uKSkpOwog CisJCS8qCisJCSAqIElmIHRoaXMgaXMgYSBGT1IgUE9SVElPTiBPRiB1cGRhdGUsCisJCSAq IGZvcmJpZCBkaXJlY3RseSBzZXR0aW5nIHRoZSByYW5nZSBjb2x1bW4sCisJCSAqIHNpbmNl IHRoYXQgd291bGQgY29uZmxpY3Qgd2l0aCB0aGUgaW1wbGljaXQgdXBkYXRlcy4KKwkJICov CisJCWlmIChmb3JQb3J0aW9uT2YgIT0gTlVMTCkKKwkJeworCQkJaWYgKGF0dHJubyA9PSBm b3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRubykKKwkJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJIGVycm1zZygi Y2FuJ3QgZGlyZWN0bHkgYXNzaWduIHRvIFwiJXNcIiBpbiBhIEZPUiBQT1JUSU9OIE9GIHVw ZGF0ZSIsCisJCQkJCQkJCW9yaWdUYXJnZXQtPm5hbWUpLAorCQkJCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihwc3RhdGUsIG9yaWdUYXJnZXQtPmxvY2F0aW9uKSkpOworCQl9CisKIAkJdXBk YXRlVGFyZ2V0TGlzdEVudHJ5KHBzdGF0ZSwgdGxlLCBvcmlnVGFyZ2V0LT5uYW1lLAogCQkJ CQkJCSAgYXR0cm5vLAogCQkJCQkJCSAgb3JpZ1RhcmdldC0+aW5kaXJlY3Rpb24sCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCA2N2ViOTYzOTZhZi4uMDY3ODY4Y2MzMDUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQpAQCAtMjQ0LDYgKzI0NCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1Nl bGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJUmFu Z2VWYXIgICAqcmFuZ2U7CiAJSW50b0NsYXVzZSAqaW50bzsKIAlXaXRoQ2xhdXNlICp3aXRo OworCUZvclBvcnRpb25PZkNsYXVzZSAqZm9ycG9ydGlvbm9mOwogCUluZmVyQ2xhdXNlCSpp bmZlcjsKIAlPbkNvbmZsaWN0Q2xhdXNlICpvbmNvbmZsaWN0OwogCUFfSW5kaWNlcyAgKmFp bmQ7CkBAIC01NDAsNiArNTQxLDggQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0 eXBlIDxyYW5nZT4JcmVsYXRpb25fZXhwcgogJXR5cGUgPHJhbmdlPglleHRlbmRlZF9yZWxh dGlvbl9leHByCiAldHlwZSA8cmFuZ2U+CXJlbGF0aW9uX2V4cHJfb3B0X2FsaWFzCisldHlw ZSA8YWxpYXM+CW9wdF9hbGlhcworJXR5cGUgPGZvcnBvcnRpb25vZj4gZm9yX3BvcnRpb25f b2ZfY2xhdXNlCiAldHlwZSA8bm9kZT4JdGFibGVzYW1wbGVfY2xhdXNlIG9wdF9yZXBlYXRh YmxlX2NsYXVzZQogJXR5cGUgPHRhcmdldD4JdGFyZ2V0X2VsIHNldF90YXJnZXQgaW5zZXJ0 X2NvbHVtbl9pdGVtCiAKQEAgLTc0OSw3ICs3NTIsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJl Y3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAq cXVlcnkpOwogCU9WRVIgT1ZFUkxBUFMgT1ZFUkxBWSBPVkVSUklESU5HIE9XTkVEIE9XTkVS CiAKIAlQQVJBTExFTCBQQVJBTUVURVIgUEFSU0VSIFBBUlRJQUwgUEFSVElUSU9OIFBBU1NJ TkcgUEFTU1dPUkQgUEFUSAotCVBFUklPRCBQTEFDSU5HIFBMQU4gUExBTlMgUE9MSUNZCisJ UEVSSU9EIFBMQUNJTkcgUExBTiBQTEFOUyBQT0xJQ1kgUE9SVElPTgogCVBPU0lUSU9OIFBS RUNFRElORyBQUkVDSVNJT04gUFJFU0VSVkUgUFJFUEFSRSBQUkVQQVJFRCBQUklNQVJZCiAJ UFJJT1IgUFJJVklMRUdFUyBQUk9DRURVUkFMIFBST0NFRFVSRSBQUk9DRURVUkVTIFBST0dS QU0gUFVCTElDQVRJT04KIApAQCAtODY4LDEyICs4NzEsMTUgQEAgc3RhdGljIE5vZGUgKm1h a2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5v ZGUgKnF1ZXJ5KTsKICAqIGpzb25fcHJlZGljYXRlX3R5cGVfY29uc3RyYWludCBhbmQganNv bl9rZXlfdW5pcXVlbmVzc19jb25zdHJhaW50X29wdAogICogcHJvZHVjdGlvbnMgKHNlZSBj b21tZW50cyB0aGVyZSkuCiAgKgorICogVE8gaXMgYXNzaWduZWQgdGhlIHNhbWUgcHJlY2Vk ZW5jZSBhcyBJREVOVCwgdG8gc3VwcG9ydCB0aGUgb3B0X2ludGVydmFsCisgKiBwcm9kdWN0 aW9uIChzZWUgY29tbWVudCB0aGVyZSkuCisgKgogICogTGlrZSB0aGUgVU5CT1VOREVEIFBS RUNFRElORy9GT0xMT1dJTkcgY2FzZSwgTkVTVEVEIGlzIGFzc2lnbmVkIGEgbG93ZXIKICAq IHByZWNlZGVuY2UgdGhhbiBQQVRIIHRvIGZpeCBhbWJpZ3VpdHkgaW4gdGhlIGpzb25fdGFi bGUgcHJvZHVjdGlvbi4KICAqLwogJW5vbmFzc29jCVVOQk9VTkRFRCBORVNURUQgLyogaWRl YWxseSB3b3VsZCBoYXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVOVCAqLwogJW5vbmFzc29j CUlERU5UIFBBUlRJVElPTiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJTkcgRk9MTE9XSU5H IENVQkUgUk9MTFVQCi0JCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFMVUVfUCBXSVRI IFdJVEhPVVQgUEFUSAorCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFRPIFVTSU5HIFZB TFVFX1AgV0lUSCBXSVRIT1VUIFBBVEgKICVsZWZ0CQlPcCBPUEVSQVRPUgkJLyogbXVsdGkt Y2hhcmFjdGVyIG9wcyBhbmQgdXNlci1kZWZpbmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJCScr JyAnLScKICVsZWZ0CQknKicgJy8nICclJwpAQCAtMTIzMzYsNiArMTIzNDIsMjAgQEAgRGVs ZXRlU3RtdDogb3B0X3dpdGhfY2xhdXNlIERFTEVURV9QIEZST00gcmVsYXRpb25fZXhwcl9v cHRfYWxpYXMKIAkJCQkJbi0+c3RtdF9sb2NhdGlvbiA9IEAkOwogCQkJCQkkJCA9IChOb2Rl ICopIG47CiAJCQkJfQorCQkJfCBvcHRfd2l0aF9jbGF1c2UgREVMRVRFX1AgRlJPTSByZWxh dGlvbl9leHByIGZvcl9wb3J0aW9uX29mX2NsYXVzZSBvcHRfYWxpYXMKKwkJCXVzaW5nX2Ns YXVzZSB3aGVyZV9vcl9jdXJyZW50X2NsYXVzZSByZXR1cm5pbmdfY2xhdXNlCisJCQkJewor CQkJCQlEZWxldGVTdG10ICpuID0gbWFrZU5vZGUoRGVsZXRlU3RtdCk7CisKKwkJCQkJbi0+ cmVsYXRpb24gPSAkNDsKKwkJCQkJbi0+Zm9yUG9ydGlvbk9mID0gJDU7CisJCQkJCW4tPnJl bGF0aW9uLT5hbGlhcyA9ICQ2OworCQkJCQluLT51c2luZ0NsYXVzZSA9ICQ3OworCQkJCQlu LT53aGVyZUNsYXVzZSA9ICQ4OworCQkJCQluLT5yZXR1cm5pbmdMaXN0ID0gJDk7CisJCQkJ CW4tPndpdGhDbGF1c2UgPSAkMTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJ OwogCiB1c2luZ19jbGF1c2U6CkBAIC0xMjQxMSw2ICsxMjQzMSwyNSBAQCBVcGRhdGVTdG10 OiBvcHRfd2l0aF9jbGF1c2UgVVBEQVRFIHJlbGF0aW9uX2V4cHJfb3B0X2FsaWFzCiAJCQkJ CW4tPnN0bXRfbG9jYXRpb24gPSBAJDsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0K KwkJCXwgb3B0X3dpdGhfY2xhdXNlIFVQREFURSByZWxhdGlvbl9leHByCisJCQlmb3JfcG9y dGlvbl9vZl9jbGF1c2Ugb3B0X2FsaWFzCisJCQlTRVQgc2V0X2NsYXVzZV9saXN0CisJCQlm cm9tX2NsYXVzZQorCQkJd2hlcmVfb3JfY3VycmVudF9jbGF1c2UKKwkJCXJldHVybmluZ19j bGF1c2UKKwkJCQl7CisJCQkJCVVwZGF0ZVN0bXQgKm4gPSBtYWtlTm9kZShVcGRhdGVTdG10 KTsKKworCQkJCQluLT5yZWxhdGlvbiA9ICQzOworCQkJCQluLT5mb3JQb3J0aW9uT2YgPSAk NDsKKwkJCQkJbi0+cmVsYXRpb24tPmFsaWFzID0gJDU7CisJCQkJCW4tPnRhcmdldExpc3Qg PSAkNzsKKwkJCQkJbi0+ZnJvbUNsYXVzZSA9ICQ4OworCQkJCQluLT53aGVyZUNsYXVzZSA9 ICQ5OworCQkJCQluLT5yZXR1cm5pbmdMaXN0ID0gJDEwOworCQkJCQluLT53aXRoQ2xhdXNl ID0gJDE7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCTsKIAogc2V0X2NsYXVz ZV9saXN0OgpAQCAtMTM5MTQsNiArMTM5NTMsNDQgQEAgcmVsYXRpb25fZXhwcl9vcHRfYWxp YXM6IHJlbGF0aW9uX2V4cHIJCQkJCSVwcmVjIFVNSU5VUwogCQkJCX0KIAkJOwogCitvcHRf YWxpYXM6CisJCQlBUyBDb2xJZAorCQkJCXsKKwkJCQkJQWxpYXMJICAgKmFsaWFzID0gbWFr ZU5vZGUoQWxpYXMpOworCisJCQkJCWFsaWFzLT5hbGlhc25hbWUgPSAkMjsKKwkJCQkJJCQg PSBhbGlhczsKKwkJCQl9CisJCQl8IEJhcmVDb2xMYWJlbAorCQkJCXsKKwkJCQkJQWxpYXMJ ICAgKmFsaWFzID0gbWFrZU5vZGUoQWxpYXMpOworCisJCQkJCWFsaWFzLT5hbGlhc25hbWUg PSAkMTsKKwkJCQkJJCQgPSBhbGlhczsKKwkJCQl9CisJCQl8IC8qIGVtcHR5ICovICVwcmVj IFVNSU5VUyB7ICQkID0gTlVMTDsgfQorCQk7CisKK2Zvcl9wb3J0aW9uX29mX2NsYXVzZToK KwkJCUZPUiBQT1JUSU9OIE9GIENvbElkICcoJyBhX2V4cHIgJyknCisJCQkJeworCQkJCQlG b3JQb3J0aW9uT2ZDbGF1c2UgKm4gPSBtYWtlTm9kZShGb3JQb3J0aW9uT2ZDbGF1c2UpOwor CQkJCQluLT5yYW5nZV9uYW1lID0gJDQ7CisJCQkJCW4tPmxvY2F0aW9uID0gQDQ7CisJCQkJ CW4tPnRhcmdldCA9ICQ2OworCQkJCQkkJCA9IG47CisJCQkJfQorCQkJfCBGT1IgUE9SVElP TiBPRiBDb2xJZCBGUk9NIGFfZXhwciBUTyBhX2V4cHIKKwkJCQl7CisJCQkJCUZvclBvcnRp b25PZkNsYXVzZSAqbiA9IG1ha2VOb2RlKEZvclBvcnRpb25PZkNsYXVzZSk7CisJCQkJCW4t PnJhbmdlX25hbWUgPSAkNDsKKwkJCQkJbi0+bG9jYXRpb24gPSBANDsKKwkJCQkJbi0+dGFy Z2V0X3N0YXJ0ID0gJDY7CisJCQkJCW4tPnRhcmdldF9lbmQgPSAkODsKKwkJCQkJJCQgPSBu OworCQkJCX0KKwkJOworCiAvKgogICogVEFCTEVTQU1QTEUgZGVjb3JhdGlvbiBpbiBhIEZS T00gaXRlbQogICovCkBAIC0xNDc0NywxNiArMTQ4MjQsMjUgQEAgb3B0X3RpbWV6b25lOgog CQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBmYWxzZTsgfQogCQk7CiAKKy8qCisgKiBX ZSBuZWVkIHRvIGhhbmRsZSB0aGlzIHNoaWZ0L3JlZHVjZSBjb25mbGljdDoKKyAqIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gdCArIElOVEVSVkFMICcxJyBZRUFSIFRPIE1PTlRI LgorICogV2UgZG9uJ3Qgc2VlIGZhciBlbm91Z2ggYWhlYWQgdG8ga25vdyBpZiB0aGVyZSBp cyBhbm90aGVyIFRPIGNvbWluZy4KKyAqIFdlIHByZWZlciB0byBpbnRlcnByZXQgdGhpcyBh cyBGUk9NICh0ICsgSU5URVJWQUwgJzEnIFlFQVIgVE8gTU9OVEgpLAorICogaS5lLiB0byBz aGlmdC4KKyAqIFRoYXQgZ2l2ZXMgdGhlIHVzZXIgdGhlIG9wdGlvbiBvZiBhZGRpbmcgcGFy ZW50aGVzZXMgdG8gZ2V0IHRoZSBvdGhlciBtZWFuaW5nLgorICogSWYgd2UgcmVkdWNlZCwg aW50ZXJ2YWxzIGNvdWxkIG5ldmVyIGhhdmUgYSBUTy4KKyAqLwogb3B0X2ludGVydmFsOgot CQkJWUVBUl9QCisJCQlZRUFSX1AJCQkJCQkJCQkJCQkJCQkJJXByZWMgSVMKIAkJCQl7ICQk ID0gbGlzdF9tYWtlMShtYWtlSW50Q29uc3QoSU5URVJWQUxfTUFTSyhZRUFSKSwgQDEpKTsg fQogCQkJfCBNT05USF9QCiAJCQkJeyAkJCA9IGxpc3RfbWFrZTEobWFrZUludENvbnN0KElO VEVSVkFMX01BU0soTU9OVEgpLCBAMSkpOyB9Ci0JCQl8IERBWV9QCisJCQl8IERBWV9QCQkJ CQkJCQkJCQkJCQkJCSVwcmVjIElTCiAJCQkJeyAkJCA9IGxpc3RfbWFrZTEobWFrZUludENv bnN0KElOVEVSVkFMX01BU0soREFZKSwgQDEpKTsgfQotCQkJfCBIT1VSX1AKKwkJCXwgSE9V Ul9QCQkJCQkJCQkJCQkJCQkJJXByZWMgSVMKIAkJCQl7ICQkID0gbGlzdF9tYWtlMShtYWtl SW50Q29uc3QoSU5URVJWQUxfTUFTSyhIT1VSKSwgQDEpKTsgfQotCQkJfCBNSU5VVEVfUAor CQkJfCBNSU5VVEVfUAkJCQkJCQkJCQkJCQkJJXByZWMgSVMKIAkJCQl7ICQkID0gbGlzdF9t YWtlMShtYWtlSW50Q29uc3QoSU5URVJWQUxfTUFTSyhNSU5VVEUpLCBAMSkpOyB9CiAJCQl8 IGludGVydmFsX3NlY29uZAogCQkJCXsgJCQgPSAkMTsgfQpAQCAtMTc4MDksNiArMTc4OTUs NyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFBMQU4KIAkJCXwgUExBTlMKIAkJCXwg UE9MSUNZCisJCQl8IFBPUlRJT04KIAkJCXwgUFJFQ0VESU5HCiAJCQl8IFBSRVBBUkUKIAkJ CXwgUFJFUEFSRUQKQEAgLTE4NDM0LDYgKzE4NTIxLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3Jk OgogCQkJfCBQTEFOCiAJCQl8IFBMQU5TCiAJCQl8IFBPTElDWQorCQkJfCBQT1JUSU9OCiAJ CQl8IFBPU0lUSU9OCiAJCQl8IFBSRUNFRElORwogCQkJfCBQUkVQQVJFCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfYWdnLmMKaW5kZXggZWZhNzMwYzE2NzYuLjUzOTg1Zjc0ZGY1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2FnZy5jCkBAIC01NzksNiArNTc5LDEzIEBAIGNoZWNrX2FnZ2xldmVsc19h bmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQogCQljYXNl IEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsK KwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT046CisJCQlpZiAoaXNBZ2cpCisJCQkJ ZXJyID0gXygiYWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gRk9SIFBP UlRJT04gT0YgZXhwcmVzc2lvbnMiKTsKKwkJCWVsc2UKKwkJCQllcnIgPSBfKCJncm91cGlu ZyBvcGVyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNz aW9ucyIpOworCisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlv bmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpAQCAtOTcwLDYgKzk3 Nyw5IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2lu ZG93RnVuYyAqd2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJr aW5kID0gdHJ1ZTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9VUERBVEVfUE9SVElP TjoKKwkJCWVyciA9IF8oIndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIEZP UiBQT1JUSU9OIE9GIGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAq IFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0 IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMKaW5kZXggNDQ1MjliYjQ5ZTYu LjE0ZmZiN2JhNjQ5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29s bGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMKQEAgLTQ4 NCw2ICs0ODQsNyBAQCBhc3NpZ25fY29sbGF0aW9uc193YWxrZXIoTm9kZSAqbm9kZSwgYXNz aWduX2NvbGxhdGlvbnNfY29udGV4dCAqY29udGV4dCkKIAkJY2FzZSBUX0pvaW5FeHByOgog CQljYXNlIFRfRnJvbUV4cHI6CiAJCWNhc2UgVF9PbkNvbmZsaWN0RXhwcjoKKwkJY2FzZSBU X0ZvclBvcnRpb25PZkV4cHI6CiAJCWNhc2UgVF9Tb3J0R3JvdXBDbGF1c2U6CiAJCWNhc2Ug VF9NZXJnZUFjdGlvbjoKIAkJCSh2b2lkKSBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUs CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCBjMjgwNjI5N2FhNC4uOGFlNTEwMTdk NDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNTg0LDYgKzU4NCw5IEBAIHRy YW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikK IAkJY2FzZSBFWFBSX0tJTkRfUEFSVElUSU9OX0JPVU5EOgogCQkJZXJyID0gXygiY2Fubm90 IHVzZSBjb2x1bW4gcmVmZXJlbmNlIGluIHBhcnRpdGlvbiBib3VuZCBleHByZXNzaW9uIik7 CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT046CisJCQllcnIg PSBfKCJjYW5ub3QgdXNlIGNvbHVtbiByZWZlcmVuY2UgaW4gRk9SIFBPUlRJT04gT0YgZXhw cmVzc2lvbiIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRp b25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKQEAgLTE4NTgsNiAr MTg2MSw5IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5r ICpzdWJsaW5rKQogCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgogCQkJZXJy ID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNz aW9uIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT046CisJ CQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIEZPUiBQT1JUSU9OIE9GIGV4cHJl c3Npb24iKTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9u YWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCkBAIC0zMTUxLDYgKzMx NTcsOCBAQCBQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQkJ cmV0dXJuICJVUERBVEUiOwogCQljYXNlIEVYUFJfS0lORF9NRVJHRV9XSEVOOgogCQkJcmV0 dXJuICJNRVJHRSBXSEVOIjsKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT046CisJ CQlyZXR1cm4gIkZPUiBQT1JUSU9OIE9GIjsKIAkJY2FzZSBFWFBSX0tJTkRfR1JPVVBfQlk6 CiAJCQlyZXR1cm4gIkdST1VQIEJZIjsKIAkJY2FzZSBFWFBSX0tJTkRfT1JERVJfQlk6CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCA5YjIzMzQ0YTNiMS4uOTk5MjFkNzEzYmUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtMjY1OCw2ICsyNjU4LDkgQEAgY2hl Y2tfc3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9z cmYsIGludCBsb2NhdGlvbikKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCWVy cmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9QT1JU SU9OOgorCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxv d2VkIGluIEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAogCQkJ LyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJl LCBzbyB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21l cmdlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwppbmRleCA4N2RmNzkw MjdkNy4uNTZmNjc2YTFmMWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9tZXJnZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jCkBAIC0z ODUsNyArMzg1LDcgQEAgdHJhbnNmb3JtTWVyZ2VTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg TWVyZ2VTdG10ICpzdG10KQogCQkJCQlwc3RhdGUtPnBfaXNfaW5zZXJ0ID0gZmFsc2U7CiAJ CQkJCWFjdGlvbi0+dGFyZ2V0TGlzdCA9CiAJCQkJCQl0cmFuc2Zvcm1VcGRhdGVUYXJnZXRM aXN0KHBzdGF0ZSwKLQkJCQkJCQkJCQkJCSAgbWVyZ2VXaGVuQ2xhdXNlLT50YXJnZXRMaXN0 KTsKKwkJCQkJCQkJCQkJCSAgbWVyZ2VXaGVuQ2xhdXNlLT50YXJnZXRMaXN0LCBOVUxMKTsK IAkJCQl9CiAJCQkJYnJlYWs7CiAJCQljYXNlIENNRF9ERUxFVEU6CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9yZXdy aXRlL3Jld3JpdGVIYW5kbGVyLmMKaW5kZXggMDYzYWZkNDkzM2UuLjg0OGMwOWQ4MTgyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKKysrIGIv c3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCkBAIC0zNzM5LDYgKzM3Mzks MzAgQEAgcmV3cml0ZVRhcmdldFZpZXcoUXVlcnkgKnBhcnNldHJlZSwgUmVsYXRpb24gdmll dykKIAkJCQkJCQkJCSAgJnBhcnNldHJlZS0+aGFzU3ViTGlua3MpOwogCX0KIAorCWlmIChw YXJzZXRyZWUtPmZvclBvcnRpb25PZiAmJiBwYXJzZXRyZWUtPmNvbW1hbmRUeXBlID09IENN RF9VUERBVEUpCisJeworCQkvKgorCQkgKiBMaWtlIHRoZSBJTlNFUlQvVVBEQVRFIGNvZGUg YWJvdmUsIHVwZGF0ZSB0aGUgcmVzbm9zIGluIHRoZQorCQkgKiBhdXhpbGlhcnkgVVBEQVRF IHRhcmdldGxpc3QgdG8gcmVmZXIgdG8gY29sdW1ucyBvZiB0aGUgYmFzZQorCQkgKiByZWxh dGlvbi4KKwkJICovCisJCWZvcmVhY2gobGMsIHBhcnNldHJlZS0+Zm9yUG9ydGlvbk9mLT5y YW5nZVRhcmdldExpc3QpCisJCXsKKwkJCVRhcmdldEVudHJ5ICp0bGUgPSAoVGFyZ2V0RW50 cnkgKikgbGZpcnN0KGxjKTsKKwkJCVRhcmdldEVudHJ5ICp2aWV3X3RsZTsKKworCQkJaWYg KHRsZS0+cmVzanVuaykKKwkJCQljb250aW51ZTsKKworCQkJdmlld190bGUgPSBnZXRfdGxl X2J5X3Jlc25vKHZpZXdfdGFyZ2V0bGlzdCwgdGxlLT5yZXNubyk7CisJCQlpZiAodmlld190 bGUgIT0gTlVMTCAmJiAhdmlld190bGUtPnJlc2p1bmsgJiYgSXNBKHZpZXdfdGxlLT5leHBy LCBWYXIpKQorCQkJCXRsZS0+cmVzbm8gPSAoKFZhciAqKSB2aWV3X3RsZS0+ZXhwciktPnZh cmF0dG5vOworCQkJZWxzZQorCQkJCWVsb2coRVJST1IsICJhdHRyaWJ1dGUgbnVtYmVyICVk IG5vdCBmb3VuZCBpbiB2aWV3IHRhcmdldGxpc3QiLAorCQkJCQkgdGxlLT5yZXNubyk7CisJ CX0KKwl9CisKIAkvKgogCSAqIEZvciBVUERBVEUvREVMRVRFL01FUkdFLCBwdWxsIHVwIGFu eSBXSEVSRSBxdWFscyBmcm9tIHRoZSB2aWV3LiAgV2UKIAkgKiBrbm93IHRoYXQgYW55IFZh cnMgaW4gdGhlIHF1YWxzIG11c3QgcmVmZXJlbmNlIHRoZSBvbmUgYmFzZSByZWxhdGlvbiwK QEAgLTQwNzgsNiArNDEwMiwyMiBAQCBSZXdyaXRlUXVlcnkoUXVlcnkgKnBhcnNldHJlZSwg TGlzdCAqcmV3cml0ZV9ldmVudHMsIGludCBvcmlnX3J0X2xlbmd0aCkKIAkJZWxzZSBpZiAo ZXZlbnQgPT0gQ01EX1VQREFURSkKIAkJewogCQkJQXNzZXJ0KHBhcnNldHJlZS0+b3ZlcnJp ZGUgPT0gT1ZFUlJJRElOR19OT1RfU0VUKTsKKwkJCS8qCisJCQkgKiBVcGRhdGUgRk9SIFBP UlRJT04gT0YgY29sdW1uKHMpIGF1dG9tYXRpY2FsbHkuIERvbid0CisJCQkgKiBkbyB0aGlz IHVudGlsIHdlJ3JlIGRvbmUgcmV3cml0aW5nIGEgdmlldyB1cGRhdGUsIHNvCisJCQkgKiB0 aGF0IHdlIGRvbid0IGFkZCB0aGUgc2FtZSB1cGRhdGUgb24gdGhlIHJlY3Vyc2lvbi4KKwkJ CSAqLworCQkJaWYgKHBhcnNldHJlZS0+Zm9yUG9ydGlvbk9mICYmCisJCQkJcnRfZW50cnlf cmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1ZJRVcpCisJCQl7CisJCQkJ TGlzdENlbGwgKnRsOworCQkJCWZvcmVhY2godGwsIHBhcnNldHJlZS0+Zm9yUG9ydGlvbk9m LT5yYW5nZVRhcmdldExpc3QpCisJCQkJeworCQkJCQlUYXJnZXRFbnRyeSAqdGxlID0gKFRh cmdldEVudHJ5ICopIGxmaXJzdCh0bCk7CisJCQkJCXBhcnNldHJlZS0+dGFyZ2V0TGlzdCA9 IGxhcHBlbmQocGFyc2V0cmVlLT50YXJnZXRMaXN0LCB0bGUpOworCQkJCX0KKwkJCX0KKwog CQkJcGFyc2V0cmVlLT50YXJnZXRMaXN0ID0KIAkJCQlyZXdyaXRlVGFyZ2V0TGlzdElVKHBh cnNldHJlZS0+dGFyZ2V0TGlzdCwKIAkJCQkJCQkJCXBhcnNldHJlZS0+Y29tbWFuZFR5cGUs CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCmluZGV4IDAwMmJkMDI1ODJhLi41 Yzc3MzlhM2YyYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdn ZXJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKQEAgLTEy OSw3ICsxMjksOCBAQCB0eXBlZGVmIHN0cnVjdCBSSV9Db25zdHJhaW50SW5mbwogCU9pZAkJ CWZmX2VxX29wcnNbUklfTUFYX05VTUtFWVNdOyAvKiBlcXVhbGl0eSBvcGVyYXRvcnMgKEZL ID0gRkspICovCiAJT2lkCQkJcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOwkvKiBhbnlyYW5n ZSA8QCBhbnlyYW5nZSAqLwogCU9pZAkJCWFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3Bl cjsgLyogZmthdHRyIDxAIHJhbmdlX2FnZyhwa2F0dHIpICovCi0JT2lkCQkJcGVyaW9kX2lu dGVyc2VjdF9vcGVyOwkvKiBhbnlyYW5nZSAqIGFueXJhbmdlICovCisJT2lkCQkJcGVyaW9k X2ludGVyc2VjdF9vcGVyOwkvKiBhbnlyYW5nZSAqIGFueXJhbmdlIChvciBtdWx0aXJhbmdl KSAqLworCU9pZAkJCXBlcmlvZF9pbnRlcnNlY3RfcHJvYzsJLyogYW55cmFuZ2UgKiBhbnly YW5nZSAob3IgbXVsdGlyYW5nZSkgKi8KIAlPaWQJCQl3aXRob3V0X3BvcnRpb25fcHJvYzsJ LyogYW55cmFuZ2UgLSBhbnlyYW5nZSBTUkYgKi8KIAlkbGlzdF9ub2RlCXZhbGlkX2xpbms7 CQkvKiBMaW5rIGluIGxpc3Qgb2YgdmFsaWQgZW50cmllcyAqLwogfSBSSV9Db25zdHJhaW50 SW5mbzsKQEAgLTIzOSw2ICsyNDAsMTEgQEAgc3RhdGljIHZvaWQgcmlfUmVwb3J0VmlvbGF0 aW9uKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCQkJCQkJICAgUmVsYXRp b24gcGtfcmVsLCBSZWxhdGlvbiBma19yZWwsCiAJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3Qg KnZpb2xhdG9yc2xvdCwgVHVwbGVEZXNjIHR1cGRlc2MsCiAJCQkJCQkJICAgaW50IHF1ZXJ5 bm8sIGJvb2wgcGFydGdvbmUpIHBnX2F0dHJpYnV0ZV9ub3JldHVybigpOworc3RhdGljIGJv b2wgZnBvX3RhcmdldHNfcGtfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3Rl bXBvcmFsLAorCQkJCQkJCQkgY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbyk7Citz dGF0aWMgRGF0dW0gcmVzdHJpY3RfZW5mb3JjZWRfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9m U3RhdGUgKnRnX3RlbXBvcmFsLAorCQkJCQkJCQkJIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZv ICpyaWluZm8sCisJCQkJCQkJCQkgVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3QpOwogCiAKIC8q CkBAIC05NDAsMTEgKzk0NiwzNCBAQCByaV9yZXN0cmljdChUcmlnZ2VyRGF0YSAqdHJpZ2Rh dGEsIGJvb2wgaXNfbm9fYWN0aW9uKQogCSAqCiAJICogRm9yIGEgREVMRVRFLCBvbGRzbG90 LnBrcGVyaW9kIHdhcyBsb3N0LAogCSAqIHdoaWNoIGlzIHdoYXQgd2UgY2hlY2sgZm9yIGJ5 IGRlZmF1bHQuCisJICoKKwkgKiBJbiBhbiBVUERBVEUgdCBGT1IgUE9SVElPTiBPRiwgaWYg dGhlIHNjYWxhciBrZXkgcGFydCBjaGFuZ2VkLAorCSAqIHRoZW4gb25seSBuZXdzbG90LnBr cGVyaW9kIHdhcyBsb3N0LiBPdGhlcndpc2Ugbm90aGluZyB3YXMgbG9zdC4KKwkgKgorCSAq IEluIGEgREVMRVRFIEZST00gdCBGT1IgUE9SVElPTiBPRiwgb25seSBuZXdzbG90LnBrcGVy aW9kIHdhcyBsb3N0LgorCSAqIEJ1dCB0aGVyZSBpcyBubyBuZXdzbG90LCBzbyB3ZSBoYXZl IHRvIGNhbGN1bGF0ZSB0aGUgaW50ZXJzZWN0aW9uCisJICogb2Ygb2xkc2xvdC5wa3Blcmlv ZCBhbmQgdGhlIHJhbmdlIHRhcmdldGVkIGJ5IEZPUiBQT1JUSU9OIE9GLgogCSAqLwogCWlm IChyaWluZm8tPmhhc3BlcmlvZCAmJiAhaXNfbm9fYWN0aW9uKQogCXsKLQkJaWYgKFRSSUdH RVJfRklSRURfQllfVVBEQVRFKHRyaWdkYXRhLT50Z19ldmVudCkKLQkJCSYmIHJpX0tleXNF cXVhbChwa19yZWwsIG9sZHNsb3QsIG5ld3Nsb3QsIHJpaW5mbywgdHJ1ZSwgdHJ1ZSkpCisJ CS8qIERvbid0IHRyZWF0IGxlZnRvdmVycyBvZiBGT1IgUE9SVElPTiBPRiBhcyBsb3N0ICov CisJCWlmICh0cmlnZGF0YS0+dGdfdGVtcG9yYWwpCisJCXsKKwkJCWJvb2wJaXNudWxsOwor CQkJdGFyZ2V0UmFuZ2VQYXJhbSA9IHJpaW5mby0+bmtleXM7CisJCQlpZiAoVFJJR0dFUl9G SVJFRF9CWV9VUERBVEUodHJpZ2RhdGEtPnRnX2V2ZW50KSkKKwkJCXsKKwkJCQlpZiAoIXJp X0tleXNFcXVhbChwa19yZWwsIG9sZHNsb3QsIG5ld3Nsb3QsIHJpaW5mbywgdHJ1ZSwgdHJ1 ZSkpCisJCQkJCXRhcmdldFJhbmdlID0gc2xvdF9nZXRhdHRyKG5ld3Nsb3QsIHBrcGVyaW9k YXR0bm8sICZpc251bGwpOworCQkJCWVsc2UKKwkJCQkJLyogbm90aGluZyB0byBkbyAqLwor CQkJCQlmaW5pc2hlZCA9IHRydWU7CisJCQl9CisJCQllbHNlCisJCQkJdGFyZ2V0UmFuZ2Ug PSByZXN0cmljdF9lbmZvcmNlZF9yYW5nZSh0cmlnZGF0YS0+dGdfdGVtcG9yYWwsIHJpaW5m bywgb2xkc2xvdCk7CisJCX0KKwkJZWxzZSBpZiAoVFJJR0dFUl9GSVJFRF9CWV9VUERBVEUo dHJpZ2RhdGEtPnRnX2V2ZW50KQorCQkJCSAmJiByaV9LZXlzRXF1YWwocGtfcmVsLCBvbGRz bG90LCBuZXdzbG90LCByaWluZm8sIHRydWUsIHRydWUpKQogCQl7CiAJCQltdWx0aXBsZWxv c3QgPSB0cnVlOwogCkBAIC0yNDQ2LDYgKzI0NzUsNyBAQCByaV9Mb2FkQ29uc3RyYWludElu Zm8oT2lkIGNvbnN0cmFpbnRPaWQpCiAJCQkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2NvbnRh aW5lZF9ieV9vcGVyLAogCQkJCQkJCQkgICZyaWluZm8tPmFnZ2VkX3BlcmlvZF9jb250YWlu ZWRfYnlfb3BlciwKIAkJCQkJCQkJICAmcmlpbmZvLT5wZXJpb2RfaW50ZXJzZWN0X29wZXIs CisJCQkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2ludGVyc2VjdF9wcm9jLAogCQkJCQkJCQkg ICZyaWluZm8tPndpdGhvdXRfcG9ydGlvbl9wcm9jKTsKIAl9CiAKQEAgLTMzMzEsMyArMzM2 MSw1MCBAQCBSSV9GS2V5X3RyaWdnZXJfdHlwZShPaWQgdGdmb2lkKQogCiAJcmV0dXJuIFJJ X1RSSUdHRVJfTk9ORTsKIH0KKworLyoKKyAqIGZwb190YXJnZXRzX3BrX3JhbmdlCisgKgor ICogUmV0dXJucyB0cnVlIGlmZiB0aGUgcHJpbWFyeSBrZXkgcmVmZXJlbmNlZCBieSByaWlu Zm8gaW5jbHVkZXMgdGhlIHJhbmdlCisgKiBjb2x1bW4gdGFyZ2V0ZWQgYnkgdGhlIEZPUiBQ T1JUSU9OIE9GIGNsYXVzZSAoYWNjb3JkaW5nIHRvIHRnX3RlbXBvcmFsKS4KKyAqLworc3Rh dGljIGJvb2wKK2Zwb190YXJnZXRzX3BrX3JhbmdlKGNvbnN0IEZvclBvcnRpb25PZlN0YXRl ICp0Z190ZW1wb3JhbCwgY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbykKK3sKKwlp ZiAodGdfdGVtcG9yYWwgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHJp aW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0gPT0gdGdfdGVtcG9yYWwtPmZw X3JhbmdlQXR0bm87Cit9CisKKy8qCisgKiByZXN0cmljdF9lbmZvcmNlZF9yYW5nZSAtCisg KgorICogUmV0dXJucyBhIERhdHVtIG9mIFJhbmdlVHlwZVAgaG9sZGluZyB0aGUgYXBwcm9w cmlhdGUgdGltZXNwYW4KKyAqIHRvIHRhcmdldCBjaGlsZCByZWNvcmRzIHdoZW4gd2UgUkVT VFJJQ1QvQ0FTQ0FERS9TRVQgTlVMTC9TRVQgREVGQVVMVC4KKyAqCisgKiBJbiBhIG5vcm1h bCBVUERBVEUvREVMRVRFIHRoaXMgc2hvdWxkIGJlIHRoZSBwYXJlbnQncyBvd24gdmFsaWQg dGltZSwKKyAqIGJ1dCBpZiB0aGVyZSB3YXMgYSBGT1IgUE9SVElPTiBPRiBjbGF1c2UsIHRo ZW4gd2Ugc2hvdWxkIHVzZSB0aGF0IHRvCisgKiB0cmltIGRvd24gdGhlIHBhcmVudCdzIHNw YW4gZnVydGhlci4KKyAqLworc3RhdGljIERhdHVtCityZXN0cmljdF9lbmZvcmNlZF9yYW5n ZShjb25zdCBGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWwsIGNvbnN0IFJJX0NvbnN0 cmFpbnRJbmZvICpyaWluZm8sIFR1cGxlVGFibGVTbG90ICpvbGRzbG90KQoreworCURhdHVt CQlwa1JlY29yZFJhbmdlOworCWJvb2wJCWlzbnVsbDsKKwlBdHRyTnVtYmVyCWF0dG5vID0g cmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXTsKKworCXBrUmVjb3JkUmFu Z2UgPSBzbG90X2dldGF0dHIob2xkc2xvdCwgYXR0bm8sICZpc251bGwpOworCWlmIChpc251 bGwpCisJCWVsb2coRVJST1IsICJhcHBsaWNhdGlvbiB0aW1lIHNob3VsZCBub3QgYmUgbnVs bCIpOworCisJaWYgKGZwb190YXJnZXRzX3BrX3JhbmdlKHRnX3RlbXBvcmFsLCByaWluZm8p KQorCXsKKwkJaWYgKCFPaWRJc1ZhbGlkKHJpaW5mby0+cGVyaW9kX2ludGVyc2VjdF9wcm9j KSkKKwkJCWVsb2coRVJST1IsICJpbnZhbGlkIGludGVyc2VjdCBzdXBwb3J0IGZ1bmN0aW9u Iik7CisKKwkJcmV0dXJuIE9pZEZ1bmN0aW9uQ2FsbDIocmlpbmZvLT5wZXJpb2RfaW50ZXJz ZWN0X3Byb2MsIHBrUmVjb3JkUmFuZ2UsIHRnX3RlbXBvcmFsLT5mcF90YXJnZXRSYW5nZSk7 CisJfQorCWVsc2UKKwkJcmV0dXJuIHBrUmVjb3JkUmFuZ2U7Cit9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL2xzeXNjYWNoZS5jCmluZGV4IGE4NWRjMGQ4OTFmLi4yYjdmNjczNDcxOSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTIxODgsNiArMjE4OCwzMyBA QCBnZXRfdHlwaXNkZWZpbmVkKE9pZCB0eXBpZCkKIAkJcmV0dXJuIGZhbHNlOwogfQogCisv KgorICogZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZQorICoKKyAqCSAgUmV0dXJucyB0aGUg bmFtZSBhbmQgbmFtZXNwYWNlIG9mIGEgZ2l2ZW4gdHlwZQorICoKKyAqIFJldHVybnMgdHJ1 ZSBpZiBvbmUgZm91bmQsIG9yIGZhbHNlIGlmIG5vdC4KKyAqLworYm9vbAorZ2V0X3R5cG5h bWVfYW5kX25hbWVzcGFjZShPaWQgdHlwaWQsIGNoYXIgKip0eXBuYW1lLCBjaGFyICoqdHlw bmFtZXNwYWNlKQoreworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUx KFRZUEVPSUQsIE9iamVjdElkR2V0RGF0dW0odHlwaWQpKTsKKwlpZiAoSGVhcFR1cGxlSXNW YWxpZCh0cCkpCisJeworCQlGb3JtX3BnX3R5cGUgdHlwdHVwID0gKEZvcm1fcGdfdHlwZSkg R0VUU1RSVUNUKHRwKTsKKworCQkqdHlwbmFtZSA9IHBzdHJkdXAoTmFtZVN0cih0eXB0dXAt PnR5cG5hbWUpKTsKKwkJKnR5cG5hbWVzcGFjZSA9IGdldF9uYW1lc3BhY2VfbmFtZSh0eXB0 dXAtPnR5cG5hbWVzcGFjZSk7CisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJCS8qICp0eXBu YW1lc3BhY2UgaXMgTlVMTCBpZiBpdCB3YXNuJ3QgZm91bmQ6ICovCisJCXJldHVybiAqdHlw bmFtZXNwYWNlOworCX0KKwllbHNlCisJCXJldHVybiBmYWxzZTsKK30KKwogLyoKICAqIGdl dF90eXBsZW4KICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0 cmFpbnQuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCmluZGV4IDVm MjVjNWEwMDY1Li5kN2RjYjdlYzY1NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19jb25zdHJhaW50LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJh aW50LmgKQEAgLTI5MCw2ICsyOTAsNyBAQCBleHRlcm4gdm9pZCBGaW5kRktQZXJpb2RPcGVy c0FuZFByb2NzKE9pZCBvcGNsYXNzLAogCQkJCQkJCQkJICBPaWQgKmNvbnRhaW5lZGJ5b3Bl cm9pZCwKIAkJCQkJCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5lZGJ5b3Blcm9pZCwKIAkJCQkJ CQkJCSAgT2lkICppbnRlcnNlY3RvcGVyb2lkLAorCQkJCQkJCQkJICBPaWQgKmludGVyc2Vj dHByb2NvaWQsCiAJCQkJCQkJCQkgIE9pZCAqd2l0aG91dHBvcnRpb25vaWQpOwogCiBleHRl cm4gYm9vbCBjaGVja19mdW5jdGlvbmFsX2dyb3VwaW5nKE9pZCByZWxpZCwKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RyaWdnZXIuaCBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3RyaWdnZXIuaAppbmRleCA4YTVhOWZlNjQyMi4uM2QxNTY0ODMzMjUgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RyaWdnZXIuaAorKysgYi9zcmMvaW5jbHVkZS9j b21tYW5kcy90cmlnZ2VyLmgKQEAgLTQxLDYgKzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgVHJp Z2dlckRhdGEKIAlUdXBsZXN0b3Jlc3RhdGUgKnRnX29sZHRhYmxlOwogCVR1cGxlc3RvcmVz dGF0ZSAqdGdfbmV3dGFibGU7CiAJY29uc3QgQml0bWFwc2V0ICp0Z191cGRhdGVkY29sczsK KwlGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWw7CiB9IFRyaWdnZXJEYXRhOwogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCAxODJhNjk1NmJiMC4uMWVkNTI3NmI3ZDgg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAi dXRpbHMvc29ydHN1cHBvcnQuaCIKICNpbmNsdWRlICJ1dGlscy90dXBsZXNvcnQuaCIKICNp bmNsdWRlICJ1dGlscy90dXBsZXN0b3JlLmgiCisjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUu aCIKIAogc3RydWN0IFBsYW5TdGF0ZTsJCQkJLyogZm9yd2FyZCByZWZlcmVuY2VzIGluIHRo aXMgZmlsZSAqLwogc3RydWN0IFBhcmFsbGVsSGFzaEpvaW5TdGF0ZTsKQEAgLTQzMSw2ICs0 MzIsMjYgQEAgdHlwZWRlZiBzdHJ1Y3QgTWVyZ2VBY3Rpb25TdGF0ZQogCUV4cHJTdGF0ZSAg Km1hc193aGVucXVhbDsJLyogV0hFTiBbTk9UXSBNQVRDSEVEIEFORCBjb25kaXRpb25zICov CiB9IE1lcmdlQWN0aW9uU3RhdGU7CiAKKy8qCisgKiBGb3JQb3J0aW9uT2ZTdGF0ZQorICoK KyAqIEV4ZWN1dG9yIHN0YXRlIG9mIGEgRk9SIFBPUlRJT04gT0Ygb3BlcmF0aW9uLgorICov Cit0eXBlZGVmIHN0cnVjdCBGb3JQb3J0aW9uT2ZTdGF0ZQoreworCU5vZGVUYWcJCXR5cGU7 CisKKwljaGFyICAgKmZwX3JhbmdlTmFtZTsJCS8qIHRoZSBjb2x1bW4gbmFtZWQgaW4gRk9S IFBPUlRJT04gT0YgKi8KKwlPaWQJCWZwX3JhbmdlVHlwZTsJCS8qIHRoZSB0eXBlIG9mIHRo ZSBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9uICovCisJaW50CQlmcF9yYW5nZUF0dG5vOwkJ LyogdGhlIGF0dG5vIG9mIHRoZSByYW5nZSBjb2x1bW4gKi8KKwlEYXR1bQlmcF90YXJnZXRS YW5nZTsJCS8qIHRoZSByYW5nZS9tdWx0aXJhbmdlL2V0YyBmcm9tIEZPUiBQT1JUSU9OIE9G ICovCisJVHlwZUNhY2hlRW50cnkgKmZwX2xlZnRvdmVyc3R5cGNhY2hlOwkvKiB0eXBlIGNh Y2hlIGVudHJ5IG9mIHRoZSByYW5nZSAqLworCVR1cGxlVGFibGVTbG90ICpmcF9FeGlzdGlu ZzsJCS8qIHNsb3QgdG8gc3RvcmUgb2xkIHR1cGxlICovCisJVHVwbGVUYWJsZVNsb3QgKmZw X0xlZnRvdmVyOwkJLyogc2xvdCB0byBzdG9yZSBsZWZ0b3ZlciAqLworCURhdHVtICAqZnBf dmFsdWVzOwkvKiBTUEkgaW5wdXQgZm9yIGxlZnRvdmVyIHZhbHVlcyAqLworCWNoYXIgICAq ZnBfbnVsbHM7CS8qIFNQSSBpbnB1dCBmb3IgbnVsbHMgKi8KK30gRm9yUG9ydGlvbk9mU3Rh dGU7CisKIC8qCiAgKiBSZXN1bHRSZWxJbmZvCiAgKgpAQCAtNTU4LDYgKzU3OSw5IEBAIHR5 cGVkZWYgc3RydWN0IFJlc3VsdFJlbEluZm8KIAkvKiBmb3IgTUVSR0UsIGV4cHIgc3RhdGUg Zm9yIGNoZWNraW5nIHRoZSBqb2luIGNvbmRpdGlvbiAqLwogCUV4cHJTdGF0ZSAgKnJpX01l cmdlSm9pbkNvbmRpdGlvbjsKIAorCS8qIEZPUiBQT1JUSU9OIE9GIGV2YWx1YXRpb24gc3Rh dGUgKi8KKwlGb3JQb3J0aW9uT2ZTdGF0ZSAqcmlfZm9yUG9ydGlvbk9mOworCiAJLyogcGFy dGl0aW9uIGNoZWNrIGV4cHJlc3Npb24gc3RhdGUgKE5VTEwgaWYgbm90IHNldCB1cCB5ZXQp ICovCiAJRXhwclN0YXRlICAqcmlfUGFydGl0aW9uQ2hlY2tFeHByOwogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKaW5kZXggMGY5NDYyNDkzZTMuLjdjYTAyNDhiODJkIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCkBAIC0xNDIsNiArMTQyLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUXVl cnkKIAkgKi8KIAlpbnQJCQlyZXN1bHRSZWxhdGlvbiBwZ19ub2RlX2F0dHIocXVlcnlfanVt YmxlX2lnbm9yZSk7CiAKKwkvKiBGT1IgUE9SVElPTiBPRiBjbGF1c2UgZm9yIFVQREFURS9E RUxFVEUgKi8KKwlGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2Y7CisKIAkvKiBoYXMg YWdncmVnYXRlcyBpbiB0bGlzdCBvciBoYXZpbmdRdWFsICovCiAJYm9vbAkJaGFzQWdncyBw Z19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaGFzIHdpbmRvdyBmdW5j dGlvbnMgaW4gdGxpc3QgKi8KQEAgLTE1ODIsNiArMTU4NSwyMSBAQCB0eXBlZGVmIHN0cnVj dCBSb3dNYXJrQ2xhdXNlCiAJYm9vbAkJcHVzaGVkRG93bjsJCS8qIHB1c2hlZCBkb3duIGZy b20gaGlnaGVyIHF1ZXJ5IGxldmVsPyAqLwogfSBSb3dNYXJrQ2xhdXNlOwogCisvKgorICog Rm9yUG9ydGlvbk9mQ2xhdXNlCisgKgkJcmVwcmVzZW50YXRpb24gb2YgRk9SIFBPUlRJT04g T0YgPHBlcmlvZC1uYW1lPiBGUk9NIDx0cz4gVE8gPHRlPgorICoJCW9yIEZPUiBQT1JUSU9O IE9GIDxwZXJpb2QtbmFtZT4gKDx0YXJnZXQ+KQorICovCit0eXBlZGVmIHN0cnVjdCBGb3JQ b3J0aW9uT2ZDbGF1c2UKK3sKKwlOb2RlVGFnCQl0eXBlOworCWNoYXIJICAgKnJhbmdlX25h bWU7CisJaW50CQkJbG9jYXRpb247CisJTm9kZQkgICAqdGFyZ2V0OworCU5vZGUJICAgKnRh cmdldF9zdGFydDsKKwlOb2RlCSAgICp0YXJnZXRfZW5kOworfSBGb3JQb3J0aW9uT2ZDbGF1 c2U7CisKIC8qCiAgKiBXaXRoQ2xhdXNlIC0KICAqCSAgIHJlcHJlc2VudGF0aW9uIG9mIFdJ VEggY2xhdXNlCkBAIC0yMDY0LDYgKzIwODIsNyBAQCB0eXBlZGVmIHN0cnVjdCBEZWxldGVT dG10CiAJV2l0aENsYXVzZSAqd2l0aENsYXVzZTsJCS8qIFdJVEggY2xhdXNlICovCiAJUGFy c2VMb2MJc3RtdF9sb2NhdGlvbjsJLyogc3RhcnQgbG9jYXRpb24sIG9yIC0xIGlmIHVua25v d24gKi8KIAlQYXJzZUxvYwlzdG10X2xlbjsJCS8qIGxlbmd0aCBpbiBieXRlczsgMCBtZWFu cyAicmVzdCBvZiBzdHJpbmciICovCisJRm9yUG9ydGlvbk9mQ2xhdXNlICpmb3JQb3J0aW9u T2Y7CS8qIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSAqLwogfSBEZWxldGVTdG10OwogCiAvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDgxLDYgKzIxMDAsNyBAQCB0eXBlZGVmIHN0 cnVjdCBVcGRhdGVTdG10CiAJV2l0aENsYXVzZSAqd2l0aENsYXVzZTsJCS8qIFdJVEggY2xh dXNlICovCiAJUGFyc2VMb2MJc3RtdF9sb2NhdGlvbjsJLyogc3RhcnQgbG9jYXRpb24sIG9y IC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlzdG10X2xlbjsJCS8qIGxlbmd0aCBpbiBi eXRlczsgMCBtZWFucyAicmVzdCBvZiBzdHJpbmciICovCisJRm9yUG9ydGlvbk9mQ2xhdXNl ICpmb3JQb3J0aW9uT2Y7CS8qIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSAqLwogfSBVcGRhdGVT dG10OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5o CmluZGV4IGFkZDBmOWU0NWZjLi4yNDQ5N2NhMWQ4YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVz LmgKQEAgLTIzOTUsNiArMjM5NSw3IEBAIHR5cGVkZWYgc3RydWN0IE1vZGlmeVRhYmxlUGF0 aAogCUxpc3QJICAgKnJldHVybmluZ0xpc3RzOyAvKiBwZXItdGFyZ2V0LXRhYmxlIFJFVFVS TklORyB0bGlzdHMgKi8KIAlMaXN0CSAgICpyb3dNYXJrczsJCS8qIFBsYW5Sb3dNYXJrcyAo bm9uLWxvY2tpbmcgb25seSkgKi8KIAlPbkNvbmZsaWN0RXhwciAqb25jb25mbGljdDsgLyog T04gQ09ORkxJQ1QgY2xhdXNlLCBvciBOVUxMICovCisJRm9yUG9ydGlvbk9mRXhwciAqZm9y UG9ydGlvbk9mOwkvKiBGT1IgUE9SVElPTiBPRiBjbGF1c2UgZm9yIFVQREFURS9ERUxFVEUg Ki8KIAlpbnQJCQllcHFQYXJhbTsJCS8qIElEIG9mIFBhcmFtIGZvciBFdmFsUGxhblF1YWwg cmUtZXZhbCAqLwogCUxpc3QJICAgKm1lcmdlQWN0aW9uTGlzdHM7CS8qIHBlci10YXJnZXQt dGFibGUgbGlzdHMgb2YgYWN0aW9ucyBmb3IKIAkJCQkJCQkJCSAqIE1FUkdFICovCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL3BsYW5ub2Rlcy5oCmluZGV4IDUyZjI5YmNkYjY5Li43M2YzMTcxY2RkYiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGxhbm5vZGVzLmgKQEAgLTI0NCw2ICsyNDQsNyBAQCB0eXBlZGVmIHN0cnVjdCBN b2RpZnlUYWJsZQogCUxpc3QJICAgKnJvd01hcmtzOwkJLyogUGxhblJvd01hcmtzIChub24t bG9ja2luZyBvbmx5KSAqLwogCWludAkJCWVwcVBhcmFtOwkJLyogSUQgb2YgUGFyYW0gZm9y IEV2YWxQbGFuUXVhbCByZS1ldmFsICovCiAJT25Db25mbGljdEFjdGlvbiBvbkNvbmZsaWN0 QWN0aW9uOwkvKiBPTiBDT05GTElDVCBhY3Rpb24gKi8KKwlOb2RlCSAgICpmb3JQb3J0aW9u T2Y7CS8qIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSBmb3IgVVBEQVRFL0RFTEVURSAqLwogCUxp c3QJICAgKmFyYml0ZXJJbmRleGVzOyAvKiBMaXN0IG9mIE9OIENPTkZMSUNUIGFyYml0ZXIg aW5kZXggT0lEcyAgKi8KIAlMaXN0CSAgICpvbkNvbmZsaWN0U2V0OwkvKiBJTlNFUlQgT04g Q09ORkxJQ1QgRE8gVVBEQVRFIHRhcmdldGxpc3QgKi8KIAlMaXN0CSAgICpvbkNvbmZsaWN0 Q29sczsgLyogdGFyZ2V0IGNvbHVtbiBudW1iZXJzIGZvciBvbkNvbmZsaWN0U2V0ICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IGIwZWYxOTUyZThmLi44MzkyMDE4YTgyMSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTIzMzYsNCArMjMzNiwzMCBAQCB0eXBlZGVmIHN0 cnVjdCBPbkNvbmZsaWN0RXhwcgogCUxpc3QJICAgKmV4Y2xSZWxUbGlzdDsJLyogdGxpc3Qg b2YgdGhlIEVYQ0xVREVEIHBzZXVkbyByZWxhdGlvbiAqLwogfSBPbkNvbmZsaWN0RXhwcjsK IAorLyotLS0tLS0tLS0tCisgKiBGb3JQb3J0aW9uT2ZFeHByIC0gcmVwcmVzZW50cyBhIEZP UiBQT1JUSU9OIE9GIC4uLiBleHByZXNzaW9uCisgKgorICogV2Ugc2V0IHVwIGFuIGV4cHJl c3Npb24gdG8gbWFrZSBhIHJhbmdlIGZyb20gdGhlIEZST00vVE8gYm91bmRzLAorICogc28g dGhhdCB3ZSBjYW4gdXNlIHJhbmdlIG9wZXJhdG9ycyB3aXRoIGl0LgorICoKKyAqIFRoZW4g d2Ugc2V0IHVwIGFuIG92ZXJsYXBzIGV4cHJlc3Npb24gYmV0d2VlbiB0aGF0IGFuZCB0aGUg cmFuZ2UgY29sdW1uLAorICogc28gdGhhdCB3ZSBjYW4gZmluZCB0aGUgcm93cyB3ZSBuZWVk IHRvIHVwZGF0ZS9kZWxldGUuCisgKgorICogSW4gdGhlIGV4ZWN1dG9yIHdlJ2xsIGFsc28g YnVpbGQgYW4gaW50ZXJzZWN0IGV4cHJlc3Npb24gYmV0d2VlbiB0aGUKKyAqIHRhcmdldGVk IHJhbmdlIGFuZCB0aGUgcmFuZ2UgY29sdW1uLCBzbyB0aGF0IHdlIGNhbiB1cGRhdGUgdGhl IHN0YXJ0L2VuZAorICogYm91bmRzIG9mIHRoZSBVUERBVEUnZCByZWNvcmQuCisgKi0tLS0t LS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgRm9yUG9ydGlvbk9mRXhwcgoreworCU5vZGVU YWcJCXR5cGU7CisJVmFyCQkgICAqcmFuZ2VWYXI7CQkJLyogUmFuZ2UgY29sdW1uICovCisJ Y2hhcgkgICAqcmFuZ2VfbmFtZTsJCQkvKiBSYW5nZSBuYW1lICovCisJTm9kZQkgICAqdGFy Z2V0UmFuZ2U7CQkvKiBGT1IgUE9SVElPTiBPRiBib3VuZHMgYXMgYSByYW5nZSAqLworCU9p ZAkJCXJhbmdlVHlwZTsJCQkvKiB0eXBlIG9mIHRhcmdldFJhbmdlICovCisJTm9kZQkgICAq b3ZlcmxhcHNFeHByOwkJLyogcmFuZ2UgJiYgdGFyZ2V0UmFuZ2UgKi8KKwlMaXN0CSAgICpy YW5nZVRhcmdldExpc3Q7CS8qIExpc3Qgb2YgVGFyZ2V0RW50cnlzIHRvIHNldCB0aGUgdGlt ZSBjb2x1bW4ocykgKi8KKwlPaWQJCQl3aXRob3V0UG9ydGlvblByb2M7CS8qIHByb2MgZm9y IG9sZF9yYW5nZSBALSB0YXJnZXRfcmFuZ2UgKi8KK30gRm9yUG9ydGlvbk9mRXhwcjsKKwog I2VuZGlmCQkJCQkJCS8qIFBSSU1OT0RFU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wYXRobm9k ZS5oCmluZGV4IDEwMzVlNjU2MGMxLi5iNTk0Y2NjYWI5MiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVy L3BhdGhub2RlLmgKQEAgLTI4OSw3ICsyODksNyBAQCBleHRlcm4gTW9kaWZ5VGFibGVQYXRo ICpjcmVhdGVfbW9kaWZ5dGFibGVfcGF0aChQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCQkJ CQkJCUxpc3QgKndpdGhDaGVja09wdGlvbkxpc3RzLCBMaXN0ICpyZXR1cm5pbmdMaXN0cywK IAkJCQkJCQkJCQkJCUxpc3QgKnJvd01hcmtzLCBPbkNvbmZsaWN0RXhwciAqb25jb25mbGlj dCwKIAkJCQkJCQkJCQkJCUxpc3QgKm1lcmdlQWN0aW9uTGlzdHMsIExpc3QgKm1lcmdlSm9p bkNvbmRpdGlvbnMsCi0JCQkJCQkJCQkJCQlpbnQgZXBxUGFyYW0pOworCQkJCQkJCQkJCQkJ Rm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mLCBpbnQgZXBxUGFyYW0pOwogZXh0ZXJu IExpbWl0UGF0aCAqY3JlYXRlX2xpbWl0X3BhdGgoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9w dEluZm8gKnJlbCwKIAkJCQkJCQkJCVBhdGggKnN1YnBhdGgsCiAJCQkJCQkJCQlOb2RlICps aW1pdE9mZnNldCwgTm9kZSAqbGltaXRDb3VudCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3BhcnNlci9hbmFseXplLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCmluZGV4 IDI4YjY2ZmNjYjQzLi42YzcwZGFlMTQ1MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFy c2VyL2FuYWx5emUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCkBAIC00 Myw3ICs0Myw4IEBAIGV4dGVybiBMaXN0ICp0cmFuc2Zvcm1JbnNlcnRSb3coUGFyc2VTdGF0 ZSAqcHN0YXRlLCBMaXN0ICpleHBybGlzdCwKIAkJCQkJCQkJTGlzdCAqc3RtdGNvbHMsIExp c3QgKmljb2x1bW5zLCBMaXN0ICphdHRybm9zLAogCQkJCQkJCQlib29sIHN0cmlwX2luZGly ZWN0aW9uKTsKIGV4dGVybiBMaXN0ICp0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KFBhcnNl U3RhdGUgKnBzdGF0ZSwKLQkJCQkJCQkJCSAgIExpc3QgKm9yaWdUbGlzdCk7CisJCQkJCQkJ CQkgICBMaXN0ICpvcmlnVGxpc3QsCisJCQkJCQkJCQkgICBGb3JQb3J0aW9uT2ZFeHByICpm b3JQb3J0aW9uT2YpOwogZXh0ZXJuIExpc3QgKnRyYW5zZm9ybVJldHVybmluZ0xpc3QoUGFy c2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpyZXR1cm5pbmdMaXN0LAogCQkJCQkJCQkJUGFyc2VF eHByS2luZCBleHByS2luZCk7CiBleHRlcm4gUXVlcnkgKnRyYW5zZm9ybVRvcExldmVsU3Rt dChQYXJzZVN0YXRlICpwc3RhdGUsIFJhd1N0bXQgKnBhcnNlVHJlZSk7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3ds aXN0LmgKaW5kZXggODk5ZDY0YWQ1NWYuLjQyNTk4N2FmZWU3IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlz dC5oCkBAIC0zNDMsNiArMzQzLDcgQEAgUEdfS0VZV09SRCgicGxhY2luZyIsIFBMQUNJTkcs IFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwbGFuIiwgUExB TiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGxhbnMi LCBQTEFOUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi cG9saWN5IiwgUE9MSUNZLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19L RVlXT1JEKCJwb3J0aW9uIiwgUE9SVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgicG9zaXRpb24iLCBQT1NJVElPTiwgQ09MX05BTUVfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInByZWNlZGluZyIsIFBSRUNFRElORywgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicHJlY2lzaW9uIiwg UFJFQ0lTSU9OLCBDT0xfTkFNRV9LRVlXT1JELCBBU19MQUJFTCkKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oCmluZGV4IDIzNzVlOTVjMTA3Li44NWE0YTkwOWU3ZiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oCkBAIC01Niw2ICs1Niw3IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4 cHJLaW5kCiAJRVhQUl9LSU5EX1VQREFURV9TT1VSQ0UsCS8qIFVQREFURSBhc3NpZ25tZW50 IHNvdXJjZSBpdGVtICovCiAJRVhQUl9LSU5EX1VQREFURV9UQVJHRVQsCS8qIFVQREFURSBh c3NpZ25tZW50IHRhcmdldCBpdGVtICovCiAJRVhQUl9LSU5EX01FUkdFX1dIRU4sCQkvKiBN RVJHRSBXSEVOIFtOT1RdIE1BVENIRUQgY29uZGl0aW9uICovCisJRVhQUl9LSU5EX1VQREFU RV9QT1JUSU9OLAkvKiBVUERBVEUgRk9SIFBPUlRJT04gT0YgaXRlbSAqLwogCUVYUFJfS0lO RF9HUk9VUF9CWSwJCQkvKiBHUk9VUCBCWSAqLwogCUVYUFJfS0lORF9PUkRFUl9CWSwJCQkv KiBPUkRFUiBCWSAqLwogCUVYUFJfS0lORF9ESVNUSU5DVF9PTiwJCS8qIERJU1RJTkNUIE9O ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9p bmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4IDIwNDQ2ZjZmODM2Li5mN2ExNmQzYThi NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTE0NSw2ICsxNDUsNyBAQCBleHRlcm4g T2lkCWdldF9yZWxfcmVsYW0oT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3RyYW5zZm9y bV9mcm9tc3FsKE9pZCB0eXBpZCwgT2lkIGxhbmdpZCwgTGlzdCAqdHJmdHlwZXMpOwogZXh0 ZXJuIE9pZAlnZXRfdHJhbnNmb3JtX3Rvc3FsKE9pZCB0eXBpZCwgT2lkIGxhbmdpZCwgTGlz dCAqdHJmdHlwZXMpOwogZXh0ZXJuIGJvb2wgZ2V0X3R5cGlzZGVmaW5lZChPaWQgdHlwaWQp OworZXh0ZXJuIGJvb2wgZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZShPaWQgdHlwaWQsIGNo YXIgKip0eXBuYW1lLCBjaGFyICoqdHlwbmFtZXNwYWNlKTsKIGV4dGVybiBpbnQxNiBnZXRf dHlwbGVuKE9pZCB0eXBpZCk7CiBleHRlcm4gYm9vbCBnZXRfdHlwYnl2YWwoT2lkIHR5cGlk KTsKIGV4dGVybiB2b2lkIGdldF90eXBsZW5ieXZhbChPaWQgdHlwaWQsIGludDE2ICp0eXBs ZW4sIGJvb2wgKnR5cGJ5dmFsKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9m b3JfcG9ydGlvbl9vZi5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjE5YTRlOWFjNTIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQKQEAgLTAsMCArMSw3NjQgQEAKKy0tIFRlc3Rz IGZvciBVUERBVEUvREVMRVRFIEZPUiBQT1JUSU9OIE9GCitTRVQgZGF0ZXN0eWxlIFRPIElT TywgWU1EOworLS0gV29ya3Mgb24gbm9uLVBLIGNvbHVtbnMKK0NSRUFURSBUQUJMRSBmb3Jf cG9ydGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFu Z2UsCisgIG5hbWUgdGV4dCBOT1QgTlVMTAorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9u X29mX3Rlc3QgVkFMVUVTCisoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMjAtMDEtMDEpJywg J29uZScpOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPICcyMDE5LTAxLTAxJworU0VUIG5hbWUgPSAn b25lXjEnOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0xNScgVE8gJzIwMTktMDEtMjAnOworLS0gV2l0 aCBhIHRhYmxlIGFsaWFzIHdpdGggQVMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAyLTAxJyBUTyAnMjAxOS0wMi0w MycgQVMgdAorU0VUIG5hbWUgPSAnb25lXjInOworREVMRVRFIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMi0wMycgVE8g JzIwMTktMDItMDQnIEFTIHQ7CistLSBXaXRoIGEgdGFibGUgYWxpYXMgd2l0aG91dCBBUwor VVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTktMDItMDQnIFRPICcyMDE5LTAyLTA1JyB0CitTRVQgbmFtZSA9ICdvbmVeMyc7 CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE5LTAyLTA1JyBUTyAnMjAxOS0wMi0wNicgdDsKKy0tIFVQREFURSB3 aXRoIEZST00KK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAzLTAxJyB0byAnMjAxOS0wMy0wMicKK1NFVCBuYW1lID0g J29uZV40JworRlJPTSAoU0VMRUNUICdbMSwyKSc6OmludDRyYW5nZSkgQVMgdDIoaWQpCitX SEVSRSBmb3JfcG9ydGlvbl9vZl90ZXN0LmlkID0gdDIuaWQ7CistLSBERUxFVEUgd2l0aCBV U0lORworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMy0wMicgVE8gJzIwMTktMDMtMDMnCitVU0lORyAoU0VM RUNUICdbMSwyKSc6OmludDRyYW5nZSkgQVMgdDIoaWQpCitXSEVSRSBmb3JfcG9ydGlvbl9v Zl90ZXN0LmlkID0gdDIuaWQ7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Qg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t CisgWzEsMikgfCBbMjAxOC0wMS0wMiwyMDE4LTAxLTE1KSB8IG9uZQorIFsxLDIpIHwgWzIw MTgtMDEtMTUsMjAxOS0wMS0wMSkgfCBvbmVeMQorIFsxLDIpIHwgWzIwMTktMDEtMDEsMjAx OS0wMS0xNSkgfCBvbmUKKyBbMSwyKSB8IFsyMDE5LTAxLTIwLDIwMTktMDItMDEpIHwgb25l CisgWzEsMikgfCBbMjAxOS0wMi0wMSwyMDE5LTAyLTAzKSB8IG9uZV4yCisgWzEsMikgfCBb MjAxOS0wMi0wNCwyMDE5LTAyLTA1KSB8IG9uZV4zCisgWzEsMikgfCBbMjAxOS0wMi0wNiwy MDE5LTAzLTAxKSB8IG9uZQorIFsxLDIpIHwgWzIwMTktMDMtMDEsMjAxOS0wMy0wMikgfCBv bmVeNAorIFsxLDIpIHwgWzIwMTktMDMtMDMsMjAyMC0wMS0wMSkgfCBvbmUKKyg5IHJvd3Mp CisKKy0tIFdvcmtzIG9uIG1vcmUgdGhhbiBvbmUgcmFuZ2UKK0RST1AgVEFCTEUgZm9yX3Bv cnRpb25fb2ZfdGVzdDsKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0ICgKKyAg aWQgaW50NHJhbmdlLAorICB2YWxpZDFfYXQgZGF0ZXJhbmdlLAorICB2YWxpZDJfYXQgZGF0 ZXJhbmdlLAorICBuYW1lIHRleHQgTk9UIE5VTEwKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9y dGlvbl9vZl90ZXN0IFZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAz KScsICdbMjAxNS0wMS0wMSwyMDI1LTAxLTAxKScsICdvbmUnKTsKK1VQREFURSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZDFfYXQgRlJPTSAnMjAxOC0wMS0x NScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm9vJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRp b25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWQxX2F0LCB2YWxpZDJfYXQ7CisgIGlkICAg fCAgICAgICAgdmFsaWQxX2F0ICAgICAgICB8ICAgICAgICB2YWxpZDJfYXQgICAgICAgIHwg bmFtZSAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLQorIFsxLDIpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0xNSkg fCBbMjAxNS0wMS0wMSwyMDI1LTAxLTAxKSB8IG9uZQorIFsxLDIpIHwgWzIwMTgtMDEtMTUs MjAxOC0wMi0wMykgfCBbMjAxNS0wMS0wMSwyMDI1LTAxLTAxKSB8IGZvbworKDIgcm93cykK KworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9h dCBGUk9NICcyMDE4LTAxLTE1JyBUTyBOVUxMCitTRVQgbmFtZSA9ICdiYXInOworU0VMRUNU ICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZDFfYXQsIHZh bGlkMl9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZDFfYXQgICAgICAgIHwgICAgICAgIHZh bGlkMl9hdCAgICAgICAgfCBuYW1lIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tCisgWzEsMikgfCBbMjAxOC0w MS0wMiwyMDE4LTAxLTE1KSB8IFsyMDE1LTAxLTAxLDIwMTgtMDEtMTUpIHwgb25lCisgWzEs MikgfCBbMjAxOC0wMS0wMiwyMDE4LTAxLTE1KSB8IFsyMDE4LTAxLTE1LDIwMjUtMDEtMDEp IHwgYmFyCisgWzEsMikgfCBbMjAxOC0wMS0xNSwyMDE4LTAyLTAzKSB8IFsyMDE1LTAxLTAx LDIwMTgtMDEtMTUpIHwgZm9vCisgWzEsMikgfCBbMjAxOC0wMS0xNSwyMDE4LTAyLTAzKSB8 IFsyMDE4LTAxLTE1LDIwMjUtMDEtMDEpIHwgYmFyCisoNCByb3dzKQorCitERUxFVEUgRlJP TSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZDFfYXQgRlJPTSAn MjAxOC0wMS0yMCcgVE8gTlVMTDsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVz dCBPUkRFUiBCWSBpZCwgdmFsaWQxX2F0LCB2YWxpZDJfYXQ7CisgIGlkICAgfCAgICAgICAg dmFsaWQxX2F0ICAgICAgICB8ICAgICAgICB2YWxpZDJfYXQgICAgICAgIHwgbmFtZSAKKy0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLQorIFsxLDIpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0xNSkgfCBbMjAxNS0w MS0wMSwyMDE4LTAxLTE1KSB8IG9uZQorIFsxLDIpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0x NSkgfCBbMjAxOC0wMS0xNSwyMDI1LTAxLTAxKSB8IGJhcgorIFsxLDIpIHwgWzIwMTgtMDEt MTUsMjAxOC0wMS0yMCkgfCBbMjAxNS0wMS0wMSwyMDE4LTAxLTE1KSB8IGZvbworIFsxLDIp IHwgWzIwMTgtMDEtMTUsMjAxOC0wMS0yMCkgfCBbMjAxOC0wMS0xNSwyMDI1LTAxLTAxKSB8 IGJhcgorKDQgcm93cykKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWQyX2F0IEZST00gJzIwMTgtMDEtMjAnIFRPIE5VTEw7CitTRUxF Q1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkMV9hdCwg dmFsaWQyX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkMV9hdCAgICAgICAgfCAgICAgICAg dmFsaWQyX2F0ICAgICAgICB8IG5hbWUgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0KKyBbMSwyKSB8IFsyMDE4 LTAxLTAyLDIwMTgtMDEtMTUpIHwgWzIwMTUtMDEtMDEsMjAxOC0wMS0xNSkgfCBvbmUKKyBb MSwyKSB8IFsyMDE4LTAxLTAyLDIwMTgtMDEtMTUpIHwgWzIwMTgtMDEtMTUsMjAxOC0wMS0y MCkgfCBiYXIKKyBbMSwyKSB8IFsyMDE4LTAxLTE1LDIwMTgtMDEtMjApIHwgWzIwMTUtMDEt MDEsMjAxOC0wMS0xNSkgfCBmb28KKyBbMSwyKSB8IFsyMDE4LTAxLTE1LDIwMTgtMDEtMjAp IHwgWzIwMTgtMDEtMTUsMjAxOC0wMS0yMCkgfCBiYXIKKyg0IHJvd3MpCisKKy0tIFRlc3Qg d2l0aCBOVUxMcyBpbiB0aGUgc2NhbGFyL3JhbmdlIGtleSBjb2x1bW5zLgorLS0gVGhpcyB3 b24ndCBoYXBwZW4gaWYgdGhlcmUgaXMgYSBQUklNQVJZIEtFWSBvciBVTklRVUUgY29uc3Ry YWludAorLS0gYnV0IEZPUiBQT1JUSU9OIE9GIHNob3VsZG4ndCByZXF1aXJlIHRoYXQuCitE Uk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVU5MT0dHRUQgVEFCTEUg Zm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0 ZXJhbmdlLAorICBuYW1lIHRleHQKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90 ZXN0IFZBTFVFUworICAoJ1sxLDIpJywgTlVMTCwgJzEgbnVsbCcpLAorICAoJ1sxLDIpJywg JygsKScsICcxIHVuYm91bmRlZCcpLAorICAoJ1sxLDIpJywgJ2VtcHR5JywgJzEgZW1wdHkn KSwKKyAgKE5VTEwsIE5VTEwsIE5VTEwpLAorICAoTlVMTCwgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTktMDEtMDEnKSwgJ251bGwga2V5Jyk7CitVUERBVEUgZm9yX3BvcnRpb25f b2ZfdGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAor ICBTRVQgbmFtZSA9ICdOVUxMIHRvIE5VTEwnOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlv bl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgICAgIG5hbWUgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBlbXB0eSAgICAgICAgICAgICAg ICAgICB8IDEgZW1wdHkKKyBbMSwyKSB8ICgsKSAgICAgICAgICAgICAgICAgICAgIHwgTlVM TCB0byBOVUxMCisgWzEsMikgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgbnVsbAor ICAgICAgIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBOVUxMIHRvIE5VTEwKKyAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoNSByb3dzKQorCitEUk9QIFRBQkxF IGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVz dCAoCisgIGlkIGludDRyYW5nZSBOT1QgTlVMTCwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlIE5P VCBOVUxMLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisgIENPTlNUUkFJTlQgZm9yX3BvcnRp b25fb2ZfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQor KTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1ZBTFVFUworKCdbMSwyKScs ICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgt MDItMDMsMjAxOC0wMy0wMyknLCAnb25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAzLTAzLDIw MTgtMDQtMDQpJywgJ29uZScpLAorKCdbMiwzKScsICdbMjAxOC0wMS0wMSwyMDE4LTAxLTA1 KScsICd0d28nKSwKKygnWzMsNCknLCAnWzIwMTgtMDEtMDEsKScsICd0aHJlZScpLAorKCdb NCw1KScsICcoLDIwMTgtMDQtMDEpJywgJ2ZvdXInKSwKKygnWzUsNiknLCAnKCwpJywgJ2Zp dmUnKQorOworLS0KKy0tIFVQREFURSB0ZXN0cworLS0KKy0tIFNldHRpbmcgd2l0aCBhIG1p c3NpbmcgY29sdW1uIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBP UlRJT04gT0YgaW52YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgbmFt ZSA9ICdmb28nCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIGNvbHVtbiBvciBwZXJp b2QgImludmFsaWRfYXQiIG9mIHJlbGF0aW9uICJmb3JfcG9ydGlvbl9vZl90ZXN0IiBkb2Vz IG5vdCBleGlzdAorTElORSAyOiBGT1IgUE9SVElPTiBPRiBpbnZhbGlkX2F0IEZST00gJzIw MTgtMDYtMDEnIFRPIE5VTEwKKyAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gU2V0dGlu ZyB0aGUgcmFuZ2UgZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgdmFsaWRf YXQgPSAnWzE5OTAtMDEtMDEsMTk5OS0wMS0wMSknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitF UlJPUjogIGNhbid0IGRpcmVjdGx5IGFzc2lnbiB0byAidmFsaWRfYXQiIGluIGEgRk9SIFBP UlRJT04gT0YgdXBkYXRlCitMSU5FIDM6IFNFVCB2YWxpZF9hdCA9ICdbMTk5MC0wMS0wMSwx OTk5LTAxLTAxKScKKyAgICAgICAgICAgIF4KKy0tIFRoZSB3cm9uZyB0eXBlIGZhaWxzCitV UERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAxIFRPIDQKK1NFVCBuYW1lID0gJ25vcGUnCitXSEVSRSBpZCA9ICdbMyw0KSc7CitFUlJP UjogIGZ1bmN0aW9uIHBnX2NhdGFsb2cuZGF0ZXJhbmdlKGludGVnZXIsIGludGVnZXIpIGRv ZXMgbm90IGV4aXN0CitMSU5FIDI6IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gMSBU TyA0CisgICAgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBObyBmdW5jdGlvbiBtYXRj aGVzIHRoZSBnaXZlbiBuYW1lIGFuZCBhcmd1bWVudCB0eXBlcy4gWW91IG1pZ2h0IG5lZWQg dG8gYWRkIGV4cGxpY2l0IHR5cGUgY2FzdHMuCistLSBTZXR0aW5nIHdpdGggdGltZXN0YW1w cyByZXZlcnNlZCBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPICcyMDE4LTAxLTAxJworU0VU IG5hbWUgPSAndGhyZWVeMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKK0VSUk9SOiAgcmFuZ2Ug bG93ZXIgYm91bmQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gcmFuZ2UgdXBwZXIg Ym91bmQKKy0tIFNldHRpbmcgd2l0aCBhIHN1YnF1ZXJ5IGZhaWxzCitVUERBVEUgZm9yX3Bv cnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAoU0VMRUNUICcy MDE4LTAxLTAxJykgVE8gJzIwMTgtMDYtMDEnCitTRVQgbmFtZSA9ICdub3BlJworV0hFUkUg aWQgPSAnWzMsNCknOworRVJST1I6ICBjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIEZPUiBQT1JU SU9OIE9GIGV4cHJlc3Npb24KK0xJTkUgMjogRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAoU0VMRUNUICcyMDE4LTAxLTAxJykgVE8gJzIwMTgtLi4uCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgorLS0gU2V0dGluZyB3aXRoIGEgY29sdW1uIGZhaWxz CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSBsb3dlcih2YWxpZF9hdCkgVE8gTlVMTAorU0VUIG5hbWUgPSAnbm9wZScKK1dIRVJF IGlkID0gJ1szLDQpJzsKK0VSUk9SOiAgY2Fubm90IHVzZSBjb2x1bW4gcmVmZXJlbmNlIGlu IEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb24KK0xJTkUgMjogRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSBsb3dlcih2YWxpZF9hdCkgVE8gTlVMTAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIFNldHRpbmcgd2l0aCB0aW1lc3RhbXBz IGVxdWFsIGRvZXMgbm90aGluZworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDQtMDEnIFRPICcyMDE4LTA0LTAxJwor U0VUIG5hbWUgPSAndGhyZWVeMCcKK1dIRVJFIGlkID0gJ1szLDQpJzsKKy0tIFVwZGF0aW5n IGEgZmluaXRlL29wZW4gcG9ydGlvbiB3aXRoIGEgZmluaXRlL29wZW4gdGFyZ2V0CitVUERB VEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOC0wNi0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSAndGhyZWVeMScKK1dIRVJFIGlkID0g J1szLDQpJzsKKy0tIFVwZGF0aW5nIGEgZmluaXRlL29wZW4gcG9ydGlvbiB3aXRoIGFuIG9w ZW4vZmluaXRlIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyAnMjAxOC0wMy0wMScKK1NFVCBuYW1lID0g J3RocmVlXjInCitXSEVSRSBpZCA9ICdbMyw0KSc7CistLSBVcGRhdGluZyBhbiBvcGVuL2Zp bml0ZSBwb3J0aW9uIHdpdGggYW4gb3Blbi9maW5pdGUgdGFyZ2V0CitVUERBVEUgZm9yX3Bv cnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcy MDE4LTAyLTAxJworU0VUIG5hbWUgPSAnZm91cl4xJworV0hFUkUgaWQgPSAnWzQsNSknOwor LS0gVXBkYXRpbmcgYW4gb3Blbi9maW5pdGUgcG9ydGlvbiB3aXRoIGEgZmluaXRlL29wZW4g dGFyZ2V0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxNy0wMS0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm91cl4yJwor V0hFUkUgaWQgPSAnWzQsNSknOworLS0gVXBkYXRpbmcgYSBmaW5pdGUvZmluaXRlIHBvcnRp b24gd2l0aCBhbiBleGFjdCBmaXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE3LTAxLTAxJyBUTyAnMjAxOC0wMi0wMScK K1NFVCBuYW1lID0gJ2ZvdXJeMycKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKy0tIFVwZGF0aW5n IGFuIGVuY2xvc2VkIHNwYW4KK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorU0VUIG5hbWUgPSAndHdvXjIn CitXSEVSRSBpZCA9ICdbMiwzKSc7CistLSBVcGRhdGluZyBhbiBvcGVuL29wZW4gcG9ydGlv biB3aXRoIGEgZmluaXRlL2Zpbml0ZSB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90 ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAxJyBUTyAnMjAx OS0wMS0wMScKK1NFVCBuYW1lID0gJ2ZpdmVeMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0t IFVwZGF0aW5nIGFuIGVuY2xvc2VkIHNwYW4gd2l0aCBzZXBhcmF0ZSBwcm90cnVkaW5nIHNw YW5zCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxNy0wMS0wMScgVE8gJzIwMjAtMDEtMDEnCitTRVQgbmFtZSA9ICdmaXZl XjInCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBVcGRhdGluZyBtdWx0aXBsZSBlbmNsb3Nl ZCBzcGFucworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCitTRVQgbmFtZSA9ICdvbmVeMicKK1dIRVJFIGlk ID0gJ1sxLDIpJzsKKy0tIFdpdGggYSBkaXJlY3QgdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRp b25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVyYW5nZSgnMjAxOC0w My0xMCcsICcyMDE4LTAzLTE3JykpCitTRVQgbmFtZSA9ICdvbmVeMycKK1dIRVJFIGlkID0g J1sxLDIpJzsKKy0tIFVwZGF0aW5nIHRoZSBub24tcmFuZ2UgcGFydCBvZiB0aGUgUEs6CitV UERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOC0wMi0xNScgVE8gTlVMTAorU0VUIGlkID0gJ1s2LDcpJworV0hFUkUgaWQgPSAn WzEsMiknOworLS0gVVBEQVRFIHdpdGggbm8gV0hFUkUgY2xhdXNlCitVUERBVEUgZm9yX3Bv cnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAzMC0wMS0w MScgVE8gTlVMTAorU0VUIG5hbWUgPSBuYW1lIHx8ICcqJzsKK1NFTEVDVCAqIEZST00gZm9y X3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAg ICAgdmFsaWRfYXQgICAgICAgICB8ICAgbmFtZSAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBbMSwyKSB8IFsyMDE4LTAxLTAyLDIwMTgtMDIt MDMpIHwgb25lXjIKKyBbMSwyKSB8IFsyMDE4LTAyLTAzLDIwMTgtMDItMTUpIHwgb25lXjIK KyBbMiwzKSB8IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpIHwgdHdvXjIKKyBbMyw0KSB8IFsy MDE4LTAxLTAxLDIwMTgtMDMtMDEpIHwgdGhyZWVeMgorIFszLDQpIHwgWzIwMTgtMDMtMDEs MjAxOC0wNi0wMSkgfCB0aHJlZQorIFszLDQpIHwgWzIwMTgtMDYtMDEsMjAzMC0wMS0wMSkg fCB0aHJlZV4xCisgWzMsNCkgfCBbMjAzMC0wMS0wMSwpICAgICAgICAgICB8IHRocmVlXjEq CisgWzQsNSkgfCAoLDIwMTctMDEtMDEpICAgICAgICAgICB8IGZvdXJeMQorIFs0LDUpIHwg WzIwMTctMDEtMDEsMjAxOC0wMi0wMSkgfCBmb3VyXjMKKyBbNCw1KSB8IFsyMDE4LTAyLTAx LDIwMTgtMDQtMDEpIHwgZm91cl4yCisgWzUsNikgfCAoLDIwMTctMDEtMDEpICAgICAgICAg ICB8IGZpdmUKKyBbNSw2KSB8IFsyMDE3LTAxLTAxLDIwMTgtMDEtMDEpIHwgZml2ZV4yCisg WzUsNikgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IGZpdmVeMgorIFs1LDYpIHwgWzIw MTktMDEtMDEsMjAyMC0wMS0wMSkgfCBmaXZlXjIKKyBbNSw2KSB8IFsyMDIwLTAxLTAxLDIw MzAtMDEtMDEpIHwgZml2ZQorIFs1LDYpIHwgWzIwMzAtMDEtMDEsKSAgICAgICAgICAgfCBm aXZlKgorIFs2LDcpIHwgWzIwMTgtMDItMTUsMjAxOC0wMy0wMykgfCBvbmVeMgorIFs2LDcp IHwgWzIwMTgtMDMtMDMsMjAxOC0wMy0xMCkgfCBvbmVeMgorIFs2LDcpIHwgWzIwMTgtMDMt MTAsMjAxOC0wMy0xNykgfCBvbmVeMworIFs2LDcpIHwgWzIwMTgtMDMtMTcsMjAxOC0wNC0w NCkgfCBvbmVeMgorKDIwIHJvd3MpCisKKy0tIFVwZGF0aW5nIHdpdGggYSBzaGlmdC9yZWR1 Y2UgY29uZmxpY3QKKy0tIChyZXF1aXJlcyBhIHRzcmFuZ2UgY29sdW1uKQorQ1JFQVRFIFVO TE9HR0VEIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlLAor ICB2YWxpZF9hdCB0c3JhbmdlLAorICBuYW1lIHRleHQKKyk7CitJTlNFUlQgSU5UTyBmb3Jf cG9ydGlvbl9vZl90ZXN0MiAoaWQsIHZhbGlkX2F0LCBuYW1lKQorICBWQUxVRVMgKCdbMSwy KScsICdbMjAwMC0wMS0wMSwyMDIwLTAxLTAxKScsICdvbmUnKTsKKy0tIHVwZGF0ZXMgWzIw MTEtMDMtMDEgMDE6MDI6MDAsIDIwMTItMDEtMDEpIChub3RlIDIgbWludXRlcykKK1VQREFU RSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQKKyAgRlJP TSAnMjAxMS0wMy0wMSc6OnRpbWVzdGFtcCArIElOVEVSVkFMICcxOjAyOjAzJyBIT1VSIFRP IE1JTlVURQorICBUTyAnMjAxMi0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV4xJworV0hFUkUg aWQgPSAnWzEsMiknOworLS0gVE8gaXMgdXNlZCBmb3IgdGhlIGJvdW5kIGJ1dCBub3QgdGhl IElOVEVSVkFMOgorLS0gc3ludGF4IGVycm9yCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVz dDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgIEZST00gJzIwMTMtMDMtMDEnOjp0aW1l c3RhbXAgKyBJTlRFUlZBTCAnMTowMjowMycgSE9VUgorICBUTyAnMjAxNC0wMS0wMScKK1NF VCBuYW1lID0gJ29uZV4yJworV0hFUkUgaWQgPSAnWzEsMiknOworRVJST1I6ICBzeW50YXgg ZXJyb3IgYXQgb3IgbmVhciAiJzIwMTQtMDEtMDEnIgorTElORSA0OiAgIFRPICcyMDE0LTAx LTAxJworICAgICAgICAgICAgIF4KKy0tIGFkZGluZyBwYXJlbnMgZml4ZXMgaXQKKy0tIHVw ZGF0ZXMgWzIwMTUtMDMtMDEgMDE6MDA6MDAsIDIwMTYtMDEtMDEpIChubyBtaW51dGVzKQor VVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdAor ICBGUk9NICgnMjAxNS0wMy0wMSc6OnRpbWVzdGFtcCArIElOVEVSVkFMICcxOjAyOjAzJyBI T1VSKQorICBUTyAnMjAxNi0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV4zJworV0hFUkUgaWQg PSAnWzEsMiknOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICAgICAgICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIFsxLDIpIHwgWyIyMDAw LTAxLTAxIDAwOjAwOjAwIiwiMjAxMS0wMy0wMSAwMTowMjowMCIpIHwgb25lCisgWzEsMikg fCBbIjIwMTEtMDMtMDEgMDE6MDI6MDAiLCIyMDEyLTAxLTAxIDAwOjAwOjAwIikgfCBvbmVe MQorIFsxLDIpIHwgWyIyMDEyLTAxLTAxIDAwOjAwOjAwIiwiMjAxNS0wMy0wMSAwMTowMDow MCIpIHwgb25lCisgWzEsMikgfCBbIjIwMTUtMDMtMDEgMDE6MDA6MDAiLCIyMDE2LTAxLTAx IDAwOjAwOjAwIikgfCBvbmVeMworIFsxLDIpIHwgWyIyMDE2LTAxLTAxIDAwOjAwOjAwIiwi MjAyMC0wMS0wMSAwMDowMDowMCIpIHwgb25lCisoNSByb3dzKQorCitEUk9QIFRBQkxFIGZv cl9wb3J0aW9uX29mX3Rlc3QyOworLS0KKy0tIERFTEVURSB0ZXN0cworLS0KKy0tIERlbGV0 aW5nIHdpdGggYSBtaXNzaW5nIGNvbHVtbiBmYWlscworREVMRVRFIEZST00gZm9yX3BvcnRp b25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgaW52YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAx JyBUTyBOVUxMCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIGNvbHVtbiBvciBwZXJp b2QgImludmFsaWRfYXQiIG9mIHJlbGF0aW9uICJmb3JfcG9ydGlvbl9vZl90ZXN0IiBkb2Vz IG5vdCBleGlzdAorTElORSAyOiBGT1IgUE9SVElPTiBPRiBpbnZhbGlkX2F0IEZST00gJzIw MTgtMDYtMDEnIFRPIE5VTEwKKyAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRGVsZXRp bmcgd2l0aCB0aW1lc3RhbXBzIHJldmVyc2VkIGZhaWxzCitERUxFVEUgRlJPTSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAx JyBUTyAnMjAxOC0wMS0wMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKK0VSUk9SOiAgcmFuZ2Ug bG93ZXIgYm91bmQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gcmFuZ2UgdXBwZXIg Ym91bmQKKy0tIERlbGV0aW5nIHdpdGggdGltZXN0YW1wcyBlcXVhbCBkb2VzIG5vdGhpbmcK K0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDQtMDEnIFRPICcyMDE4LTA0LTAxJworV0hFUkUgaWQgPSAnWzMs NCknOworLS0gRGVsZXRpbmcgd2l0aCBhIGNsb3NlZC9jbG9zZWQgdGFyZ2V0CitERUxFVEUg RlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTA2LTAxJyBUTyAnMjAyMC0wNi0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0t IERlbGV0aW5nIHdpdGggYSBjbG9zZWQvb3BlbiB0YXJnZXQKK0RFTEVURSBGUk9NIGZvcl9w b3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDQt MDEnIFRPIE5VTEwKK1dIRVJFIGlkID0gJ1szLDQpJzsKKy0tIERlbGV0aW5nIHdpdGggYW4g b3Blbi9jbG9zZWQgdGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDItMDgnCitXSEVS RSBpZCA9ICdbMSwyKSc7CistLSBEZWxldGluZyB3aXRoIGFuIG9wZW4vb3BlbiB0YXJnZXQK K0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gTlVMTCBUTyBOVUxMCitXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBERUxFVEUg d2l0aCBubyBXSEVSRSBjbGF1c2UKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMjUtMDEtMDEnIFRPIE5VTEw7CitT RUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAgbmFtZSAgIAorLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIFsxLDIpIHwgWzIwMTgt MDItMDgsMjAxOC0wMi0xNSkgfCBvbmVeMgorIFsyLDMpIHwgWzIwMTgtMDEtMDEsMjAxOC0w MS0wNSkgfCB0d29eMgorIFszLDQpIHwgWzIwMTgtMDEtMDEsMjAxOC0wMy0wMSkgfCB0aHJl ZV4yCisgWzMsNCkgfCBbMjAxOC0wMy0wMSwyMDE4LTA0LTAxKSB8IHRocmVlCisgWzQsNSkg fCAoLDIwMTctMDEtMDEpICAgICAgICAgICB8IGZvdXJeMQorIFs0LDUpIHwgWzIwMTctMDEt MDEsMjAxOC0wMi0wMSkgfCBmb3VyXjMKKyBbNCw1KSB8IFsyMDE4LTAyLTAxLDIwMTgtMDQt MDEpIHwgZm91cl4yCisgWzUsNikgfCAoLDIwMTctMDEtMDEpICAgICAgICAgICB8IGZpdmUK KyBbNSw2KSB8IFsyMDE3LTAxLTAxLDIwMTgtMDEtMDEpIHwgZml2ZV4yCisgWzUsNikgfCBb MjAxOC0wMS0wMSwyMDE4LTA2LTAxKSB8IGZpdmVeMgorIFs1LDYpIHwgWzIwMjAtMDYtMDEs MjAyNS0wMS0wMSkgfCBmaXZlCisoMTEgcm93cykKKworLS0gVVBEQVRFIC4uLiBSRVRVUk5J TkcgcmV0dXJucyBvbmx5IHRoZSB1cGRhdGVkIHZhbHVlcyAobm90IHRoZSBpbnNlcnRlZCBz aWRlIHZhbHVlcykKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAyLTAxJyBUTyAnMjAxOC0wMi0xNScKK1NFVCBuYW1l ID0gJ3RocmVlXjMnCitXSEVSRSBpZCA9ICdbMyw0KScKK1JFVFVSTklORyAqOworICBpZCAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAgbmFtZSAgIAorLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIFszLDQpIHwgWzIwMTgtMDItMDEsMjAx OC0wMi0xNSkgfCB0aHJlZV4zCisoMSByb3cpCisKKy0tIERFTEVURSAuLi4gUkVUVVJOSU5H IHJldHVybnMgdGhlIGRlbGV0ZWQgdmFsdWVzIChyZWdhcmRsZXNzIG9mIGJvdW5kcykKK0RF TEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTgtMDItMDInIFRPICcyMDE4LTAyLTAzJworV0hFUkUgaWQgPSAnWzMsNCkn CitSRVRVUk5JTkcgKjsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgIG5h bWUgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBb Myw0KSB8IFsyMDE4LTAyLTAxLDIwMTgtMDItMTUpIHwgdGhyZWVeMworKDEgcm93KQorCist LSB0ZXN0IHRoYXQgd2UgcnVuIHRyaWdnZXJzIG9uIHRoZSBVUERBVEUvREVMRVRFZCByb3cg YW5kIHRoZSBJTlNFUlRlZCByb3dzCitDUkVBVEUgRlVOQ1RJT04gZm9yX3BvcnRpb25fb2Zf dHJpZ2dlcigpCitSRVRVUk5TIHRyaWdnZXIKK0FTCiskJAorQkVHSU4KKyAgUkFJU0UgTk9U SUNFICclICUgJSAlIG9mICUnLCBUR19XSEVOLCBUR19PUCwgVEdfTEVWRUwsIE5FVy52YWxp ZF9hdCwgT0xELnZhbGlkX2F0OworICBJRiBUR19PUCA9ICdERUxFVEUnIFRIRU4KKyAgICBS RVRVUk4gT0xEOworICBFTFNFCisgICAgUkVUVVJOIE5FVzsKKyAgRU5EIElGOworRU5EOwor JCQKK0xBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgVFJJR0dFUiB0cmdfZm9yX3BvcnRpb25f b2ZfYmVmb3JlCisgIEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBmb3Jf cG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFJPVworICBFWEVDVVRFIEZVTkNUSU9OIGZv cl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9ydGlv bl9vZl9hZnRlcgorICBBRlRFUiBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBmb3Jf cG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFJPVworICBFWEVDVVRFIEZVTkNUSU9OIGZv cl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9ydGlv bl9vZl9iZWZvcmVfc3RtdAorICBCRUZPUkUgSU5TRVJUIE9SIFVQREFURSBPUiBERUxFVEUg T04gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgRUFDSCBTVEFURU1FTlQKKyAgRVhFQ1VU RSBGVU5DVElPTiBmb3JfcG9ydGlvbl9vZl90cmlnZ2VyKCk7CitDUkVBVEUgVFJJR0dFUiB0 cmdfZm9yX3BvcnRpb25fb2ZfYWZ0ZXJfc3RtdAorICBBRlRFUiBJTlNFUlQgT1IgVVBEQVRF IE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFNUQVRFTUVO VAorICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK1VQREFU RSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDIxLTAxLTAxJyBUTyAnMjAyMi0wMS0wMScKK1NFVCBuYW1lID0gJ2ZpdmVeMycKK1dIRVJF IGlkID0gJ1s1LDYpJzsKK05PVElDRTogIEJFRk9SRSBVUERBVEUgU1RBVEVNRU5UIDxOVUxM PiBvZiA8TlVMTD4KK05PVElDRTogIEJFRk9SRSBVUERBVEUgUk9XIFsyMDIxLTAxLTAxLDIw MjItMDEtMDEpIG9mIFsyMDIwLTA2LTAxLDIwMjUtMDEtMDEpCitOT1RJQ0U6ICBCRUZPUkUg SU5TRVJUIFNUQVRFTUVOVCA8TlVMTD4gb2YgPE5VTEw+CitOT1RJQ0U6ICBCRUZPUkUgSU5T RVJUIFJPVyBbMjAyMC0wNi0wMSwyMDIxLTAxLTAxKSBvZiA8TlVMTD4KK05PVElDRTogIEFG VEVSIElOU0VSVCBST1cgWzIwMjAtMDYtMDEsMjAyMS0wMS0wMSkgb2YgPE5VTEw+CitOT1RJ Q0U6ICBBRlRFUiBJTlNFUlQgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK05PVElDRTog IEJFRk9SRSBJTlNFUlQgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK05PVElDRTogIEJF Rk9SRSBJTlNFUlQgUk9XIFsyMDIyLTAxLTAxLDIwMjUtMDEtMDEpIG9mIDxOVUxMPgorTk9U SUNFOiAgQUZURVIgSU5TRVJUIFJPVyBbMjAyMi0wMS0wMSwyMDI1LTAxLTAxKSBvZiA8TlVM TD4KK05PVElDRTogIEFGVEVSIElOU0VSVCBTVEFURU1FTlQgPE5VTEw+IG9mIDxOVUxMPgor Tk9USUNFOiAgQUZURVIgVVBEQVRFIFJPVyBbMjAyMS0wMS0wMSwyMDIyLTAxLTAxKSBvZiBb MjAyMC0wNi0wMSwyMDI1LTAxLTAxKQorTk9USUNFOiAgQUZURVIgVVBEQVRFIFNUQVRFTUVO VCA8TlVMTD4gb2YgPE5VTEw+CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDIzLTAxLTAxJyBUTyAnMjAyNC0wMS0w MScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK05PVElDRTogIEJFRk9SRSBERUxFVEUgU1RBVEVN RU5UIDxOVUxMPiBvZiA8TlVMTD4KK05PVElDRTogIEJFRk9SRSBERUxFVEUgUk9XIDxOVUxM PiBvZiBbMjAyMi0wMS0wMSwyMDI1LTAxLTAxKQorTk9USUNFOiAgQkVGT1JFIElOU0VSVCBT VEFURU1FTlQgPE5VTEw+IG9mIDxOVUxMPgorTk9USUNFOiAgQkVGT1JFIElOU0VSVCBST1cg WzIwMjItMDEtMDEsMjAyMy0wMS0wMSkgb2YgPE5VTEw+CitOT1RJQ0U6ICBBRlRFUiBJTlNF UlQgUk9XIFsyMDIyLTAxLTAxLDIwMjMtMDEtMDEpIG9mIDxOVUxMPgorTk9USUNFOiAgQUZU RVIgSU5TRVJUIFNUQVRFTUVOVCA8TlVMTD4gb2YgPE5VTEw+CitOT1RJQ0U6ICBCRUZPUkUg SU5TRVJUIFNUQVRFTUVOVCA8TlVMTD4gb2YgPE5VTEw+CitOT1RJQ0U6ICBCRUZPUkUgSU5T RVJUIFJPVyBbMjAyNC0wMS0wMSwyMDI1LTAxLTAxKSBvZiA8TlVMTD4KK05PVElDRTogIEFG VEVSIElOU0VSVCBST1cgWzIwMjQtMDEtMDEsMjAyNS0wMS0wMSkgb2YgPE5VTEw+CitOT1RJ Q0U6ICBBRlRFUiBJTlNFUlQgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK05PVElDRTog IEFGVEVSIERFTEVURSBST1cgPE5VTEw+IG9mIFsyMDIyLTAxLTAxLDIwMjUtMDEtMDEpCitO T1RJQ0U6ICBBRlRFUiBERUxFVEUgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK1NFTEVD VCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg IGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8ICBuYW1lICAgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCisgWzEsMikgfCBbMjAxOC0wMi0w OCwyMDE4LTAyLTE1KSB8IG9uZV4yCisgWzIsMykgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1 KSB8IHR3b14yCisgWzMsNCkgfCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSB8IHRocmVlXjIK KyBbMyw0KSB8IFsyMDE4LTAyLTAxLDIwMTgtMDItMDIpIHwgdGhyZWVeMworIFszLDQpIHwg WzIwMTgtMDItMDMsMjAxOC0wMi0xNSkgfCB0aHJlZV4zCisgWzMsNCkgfCBbMjAxOC0wMi0x NSwyMDE4LTAzLTAxKSB8IHRocmVlXjIKKyBbMyw0KSB8IFsyMDE4LTAzLTAxLDIwMTgtMDQt MDEpIHwgdGhyZWUKKyBbNCw1KSB8ICgsMjAxNy0wMS0wMSkgICAgICAgICAgIHwgZm91cl4x CisgWzQsNSkgfCBbMjAxNy0wMS0wMSwyMDE4LTAyLTAxKSB8IGZvdXJeMworIFs0LDUpIHwg WzIwMTgtMDItMDEsMjAxOC0wNC0wMSkgfCBmb3VyXjIKKyBbNSw2KSB8ICgsMjAxNy0wMS0w MSkgICAgICAgICAgIHwgZml2ZQorIFs1LDYpIHwgWzIwMTctMDEtMDEsMjAxOC0wMS0wMSkg fCBmaXZlXjIKKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIwMTgtMDYtMDEpIHwgZml2ZV4yCisg WzUsNikgfCBbMjAyMC0wNi0wMSwyMDIxLTAxLTAxKSB8IGZpdmUKKyBbNSw2KSB8IFsyMDIx LTAxLTAxLDIwMjItMDEtMDEpIHwgZml2ZV4zCisgWzUsNikgfCBbMjAyMi0wMS0wMSwyMDIz LTAxLTAxKSB8IGZpdmUKKyBbNSw2KSB8IFsyMDI0LTAxLTAxLDIwMjUtMDEtMDEpIHwgZml2 ZQorKDE3IHJvd3MpCisKK0RST1AgRlVOQ1RJT04gZm9yX3BvcnRpb25fb2ZfdHJpZ2dlciBD QVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byA0IG90aGVyIG9iamVjdHMKK0RF VEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdHJpZ2dlciB0cmdfZm9yX3BvcnRpb25fb2ZfYmVm b3JlIG9uIHRhYmxlIGZvcl9wb3J0aW9uX29mX3Rlc3QKK2Ryb3AgY2FzY2FkZXMgdG8gdHJp Z2dlciB0cmdfZm9yX3BvcnRpb25fb2ZfYWZ0ZXIgb24gdGFibGUgZm9yX3BvcnRpb25fb2Zf dGVzdAorZHJvcCBjYXNjYWRlcyB0byB0cmlnZ2VyIHRyZ19mb3JfcG9ydGlvbl9vZl9iZWZv cmVfc3RtdCBvbiB0YWJsZSBmb3JfcG9ydGlvbl9vZl90ZXN0Citkcm9wIGNhc2NhZGVzIHRv IHRyaWdnZXIgdHJnX2Zvcl9wb3J0aW9uX29mX2FmdGVyX3N0bXQgb24gdGFibGUgZm9yX3Bv cnRpb25fb2ZfdGVzdAorLS0gVHJpZ2dlcnMgd2l0aCBhIGN1c3RvbSB0cmFuc2l0aW9uIHRh YmxlIG5hbWU6CitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVEFC TEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQg ZGF0ZXJhbmdlLAorICBuYW1lIHRleHQKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9v Zl90ZXN0IFZBTFVFUyAoJ1sxLDIpJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJywgJ29u ZScpOworQ1JFQVRFIEZVTkNUSU9OIGR1bXBfdHJpZ2dlcigpCitSRVRVUk5TIFRSSUdHRVIg TEFOR1VBR0UgcGxwZ3NxbCBBUworJCQKK0JFR0lOCisgIElGIFRHX09QID0gJ0lOU0VSVCcg VEhFTgorICAgIFJBSVNFIE5PVElDRSAnJTogJSAlLCBORVcgdGFibGUgPSAlJywKKyAgICAg IFRHX05BTUUsIFRHX09QLCBUR19MRVZFTCwgKFNFTEVDVCBzdHJpbmdfYWdnKG5ld190YWJs ZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFibGUpOworICBFTFNJRiBU R19PUCA9ICdVUERBVEUnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJyU6ICUgJSwgT0xEIHRh YmxlID0gJSwgTkVXIHRhYmxlID0gJScsCisgICAgICBUR19OQU1FLCBUR19PUCwgVEdfTEVW RUwsCisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cob2xkX3RhYmxlOjp0ZXh0LCAnLCAnIE9S REVSIEJZIGlkKSBGUk9NIG9sZF90YWJsZSksCisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2co bmV3X3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG5ld190YWJsZSk7Cisg IEVMU0lGIFRHX09QID0gJ0RFTEVURScgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnJTogJSAl LCBPTEQgdGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX09QLCBUR19MRVZFTCwgKFNF TEVDVCBzdHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJP TSBvbGRfdGFibGUpOworICBFTkQgSUY7CisgIFJFVFVSTiBOVUxMOworRU5EOworJCQ7CitD UkVBVEUgVFJJR0dFUiBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnCitBRlRFUiBJ TlNFUlQgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgTkVXIFRBQkxFIEFT IG5ld190YWJsZQorRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dl cigpOworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZ19z dG10CitBRlRFUiBJTlNFUlQgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcg TkVXIFRBQkxFIEFTIG5ld190YWJsZQorRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJP Q0VEVVJFIGR1bXBfdHJpZ2dlcigpOworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2Zf dGVzdF91cGRhdGVfdHJpZworQUZURVIgVVBEQVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QK K1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUgTkVXIFRBQkxFIEFTIG5ld190 YWJsZQorRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOwor Q1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVfdHJpZ19zdG10CitB RlRFUiBVUERBVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgT0xEIFRB QkxFIEFTIG9sZF90YWJsZSBORVcgVEFCTEUgQVMgbmV3X3RhYmxlCitGT1IgRUFDSCBTVEFU RU1FTlQgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90cmlnZ2VyKCk7CitDUkVBVEUgVFJJR0dF UiBmb3JfcG9ydGlvbl9vZl90ZXN0X2RlbGV0ZV90cmlnCitBRlRFUiBERUxFVEUgT04gZm9y X3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgT0xEIFRBQkxFIEFTIG9sZF90YWJsZQor Rk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworQ1JFQVRF IFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZ19zdG10CitBRlRFUiBE RUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgT0xEIFRBQkxFIEFT IG9sZF90YWJsZQorRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBf dHJpZ2dlcigpOworQkVHSU47CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOS0wMS0wMScK KyAgU0VUIG5hbWUgPSAnMjAxOC0wMS0xNV90b18yMDE5LTAxLTAxJzsKK05PVElDRTogIGZv cl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBST1csIE5FVyB0YWJsZSA9 ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDE4LTAxLTE1KSIsb25lKQorTk9USUNFOiAgZm9y X3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQgU1RBVEVNRU5ULCBO RVcgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEsMjAxOC0wMS0xNSkiLG9uZSkKK05P VElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBST1csIE5F VyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKQorTk9U SUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQgU1RB VEVNRU5ULCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTktMDEtMDEsMjAyMC0wMS0wMSki LG9uZSkKK05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWc6IFVQREFU RSBST1csIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIs b25lKSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTE1LDIwMTktMDEtMDEpIiwy MDE4LTAxLTE1X3RvXzIwMTktMDEtMDEpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0 X3VwZGF0ZV90cmlnX3N0bXQ6IFVQREFURSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEs MikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwy KSIsIlsyMDE4LTAxLTE1LDIwMTktMDEtMDEpIiwyMDE4LTAxLTE1X3RvXzIwMTktMDEtMDEp CitST0xMQkFDSzsKK0JFR0lOOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAor ICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDEtMjEnOwor Tk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZzogSU5TRVJUIFJPVywg TkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTIxLDIwMjAtMDEtMDEpIixvbmUpCitO T1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnX3N0bXQ6IElOU0VSVCBT VEFURU1FTlQsIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0yMSwyMDIwLTAxLTAx KSIsb25lKQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZzogREVM RVRFIFJPVywgT0xEIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAxLDIwMjAtMDEtMDEp IixvbmUpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2RlbGV0ZV90cmlnX3N0bXQ6 IERFTEVURSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwy MDIwLTAxLTAxKSIsb25lKQorUk9MTEJBQ0s7CitCRUdJTjsKK1VQREFURSBmb3JfcG9ydGlv bl9vZl90ZXN0CisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyAnMjAx OC0wMS0wMicKKyAgU0VUIG5hbWUgPSAnTlVMTF90b18yMDE4LTAxLTAxJzsKK05PVElDRTog IGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBST1csIE5FVyB0YWJs ZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMiwyMDIwLTAxLTAxKSIsb25lKQorTk9USUNFOiAg Zm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQgU1RBVEVNRU5U LCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDIsMjAyMC0wMS0wMSkiLG9uZSkK K05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWc6IFVQREFURSBST1cs IE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKSwg TkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAxLDIwMTgtMDEtMDIpIixOVUxMX3Rv XzIwMTgtMDEtMDEpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmln X3N0bXQ6IFVQREFURSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0w MS0wMSwyMDIwLTAxLTAxKSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAx LTAxLDIwMTgtMDEtMDIpIixOVUxMX3RvXzIwMTgtMDEtMDEpCitST0xMQkFDSzsKKy0tIFRl c3Qgd2l0aCBtdWx0aXJhbmdlcworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Qy ICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9hdCBkYXRlbXVsdGlyYW5n ZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICBDT05TVFJBSU5UIGZvcl9w b3J0aW9uX29mX3Rlc3QyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0MgorVkFMVUVT CisoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIw MTgtMDItMDMpJyksIGRhdGVyYW5nZSgnMjAxOC0wMi0wNCcsICcyMDE4LTAzLTAzJykpLCAn b25lJyksCisoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAz JywgJzIwMTgtMDQtMDQpJykpLCAnb25lJyksCisoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDUtMDEpJykpLCAndHdvJyksCisoJ1sz LDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgbnVsbCkpLCAn dGhyZWUnKTsKKzsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xMCcsICcy MDE4LTAyLTEwJyksIGRhdGVyYW5nZSgnMjAxOC0wMy0wNScsICcyMDE4LTA1LTAxJykpKQor U0VUIG5hbWUgPSAnb25lXjEnCitXSEVSRSBpZCA9ICdbMSwyKSc7CitERUxFVEUgRlJPTSBm b3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JyksIGRhdGVyYW5n ZSgnMjAxOC0wMy0wMScsICcyMDE4LTAzLTE1JykpKQorV0hFUkUgaWQgPSAnWzIsMyknOwor U0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisgWzEsMikgfCB7WzIwMTgtMDEtMDIsMjAx OC0wMS0xMCksWzIwMTgtMDItMTAsMjAxOC0wMy0wMyl9ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgb25lCisgWzEsMikgfCB7WzIwMTgtMDEtMTAsMjAxOC0wMi0wMyksWzIwMTgtMDIt MDQsMjAxOC0wMi0xMCl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgb25lXjEKKyBbMSwy KSB8IHtbMjAxOC0wMy0wMywyMDE4LTAzLTA1KX0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBvbmUKKyBbMSwyKSB8IHtbMjAxOC0wMy0wNSwy MDE4LTA0LTA0KX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBvbmVeMQorIFsyLDMpIHwge1syMDE4LTAxLTAxLDIwMTgtMDEtMTUpLFsyMDE4 LTAyLTE1LDIwMTgtMDMtMDEpLFsyMDE4LTAzLTE1LDIwMTgtMDUtMDEpfSB8IHR3bworIFsz LDQpIHwge1syMDE4LTAxLTAxLCl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRocmVlCisoNiByb3dzKQorCitEUk9QIFRB QkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyOworLS0gVGVzdCB3aXRoIGEgY3VzdG9tIHJhbmdl IHR5cGUKK0NSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1YnR5cGU9ZGF0ZSk7 CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFuZ2Ug Tk9UIE5VTEwsCisgIHZhbGlkX2F0IG15ZGF0ZXJhbmdlIE5PVCBOVUxMLAorICBuYW1lIHRl eHQgTk9UIE5VTEwsCisgIENPTlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfdGVzdDJfcGsgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJ TlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitWQUxVRVMKKygnWzEsMiknLCAnWzIwMTgtMDEt MDIsMjAxOC0wMi0wMyknLCAnb25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAyLTAzLDIwMTgt MDMtMDMpJywgJ29uZScpLAorKCdbMSwyKScsICdbMjAxOC0wMy0wMywyMDE4LTA0LTA0KScs ICdvbmUnKSwKKygnWzIsMyknLCAnWzIwMTgtMDEtMDEsMjAxOC0wNS0wMSknLCAndHdvJyks CisoJ1szLDQpJywgJ1syMDE4LTAxLTAxLCknLCAndGhyZWUnKTsKKzsKK1VQREFURSBmb3Jf cG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0w MS0xMCcgVE8gJzIwMTgtMDItMTAnCitTRVQgbmFtZSA9ICdvbmVeMScKK1dIRVJFIGlkID0g J1sxLDIpJzsKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOC0wMi0xNScKK1dIRVJF IGlkID0gJ1syLDMpJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisg WzEsMikgfCBbMjAxOC0wMS0wMiwyMDE4LTAxLTEwKSB8IG9uZQorIFsxLDIpIHwgWzIwMTgt MDEtMTAsMjAxOC0wMi0wMykgfCBvbmVeMQorIFsxLDIpIHwgWzIwMTgtMDItMDMsMjAxOC0w Mi0xMCkgfCBvbmVeMQorIFsxLDIpIHwgWzIwMTgtMDItMTAsMjAxOC0wMy0wMykgfCBvbmUK KyBbMSwyKSB8IFsyMDE4LTAzLTAzLDIwMTgtMDQtMDQpIHwgb25lCisgWzIsMykgfCBbMjAx OC0wMS0wMSwyMDE4LTAxLTE1KSB8IHR3bworIFsyLDMpIHwgWzIwMTgtMDItMTUsMjAxOC0w NS0wMSkgfCB0d28KKyBbMyw0KSB8IFsyMDE4LTAxLTAxLCkgICAgICAgICAgIHwgdGhyZWUK Kyg4IHJvd3MpCisKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDI7CitEUk9QIFRZ UEUgbXlkYXRlcmFuZ2U7CistLSBUZXN0IEZPUiBQT1JUSU9OIE9GIGFnYWluc3QgYSBwYXJ0 aXRpb25lZCB0YWJsZS4KKy0tIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzEgaGFzIHRoZSBzYW1l IGF0dG51bXMgYXMgdGhlIHJvb3QKKy0tIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgaGFzIHRo ZSBkaWZmZXJlbnQgYXR0bnVtcyBmcm9tIHRoZSByb290CistLSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF81IGhhcyB0aGUgZGlmZmVyZW50IGF0dG51bXMgdG9vLCBidXQgcmV2ZXJzZWQKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQsCisgIENPTlNUUkFJTlQgdGVtcG9y YWxfcGFyaXRpb25lZF91cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KQorKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkXzEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxV RVMgSU4gKCdbMSwyKScsICdbMiwzKScpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRp dGlvbmVkXzMgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMg SU4gKCdbMyw0KScsICdbNCw1KScpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlv bmVkXzUgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4g KCdbNSw2KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQg REVUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zOworQUxURVIgVEFCTEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfMyBEUk9QIENPTFVNTiBpZCwgRFJPUCBDT0xVTU4gdmFs aWRfYXQ7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIEFERCBDT0xVTU4g aWQgaW50NHJhbmdlIE5PVCBOVUxMLCBBREQgQ09MVU1OIHZhbGlkX2F0IGRhdGVyYW5nZSBO T1QgTlVMTDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEFUVEFDSCBQQVJU SVRJT04gdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBGT1IgVkFMVUVTIElOICgnWzMsNCknLCAn WzQsNSknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIERFVEFDSCBQQVJU SVRJT04gdGVtcG9yYWxfcGFydGl0aW9uZWRfNTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkXzUgRFJPUCBDT0xVTU4gaWQsIERST1AgQ09MVU1OIHZhbGlkX2F0OworQUxU RVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBBREQgQ09MVU1OIHZhbGlkX2F0IGRh dGVyYW5nZSBOT1QgTlVMTCwgQUREIENPTFVNTiBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEw7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBBVFRBQ0ggUEFSVElUSU9OIHRlbXBv cmFsX3BhcnRpdGlvbmVkXzUgRk9SIFZBTFVFUyBJTiAoJ1s1LDYpJywgJ1s2LDcpJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBWQUxVRVMKKyAgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdvbmUnKSwKKyAgKCdbMyw0 KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0aHJlZScpLAor ICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ2Zp dmUnKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQ7CisgIGlkICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEp IHwgb25lCisgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCisgWzUs NikgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IGZpdmUKKygzIHJvd3MpCisKKy0tIFVw ZGF0ZSB3aXRob3V0IG1vdmluZyB3aXRoaW4gcGFydGl0aW9uIDEKK1VQREFURSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAzLTAx JyBUTyAnMjAwMC0wNC0wMScKKyAgU0VUIG5hbWUgPSAnb25lXjEnCisgIFdIRVJFIGlkID0g J1sxLDIpJzsKKy0tIFVwZGF0ZSB3aXRob3V0IG1vdmluZyB3aXRoaW4gcGFydGl0aW9uIDMK K1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDAwLTAzLTAxJyBUTyAnMjAwMC0wNC0wMScKKyAgU0VUIG5hbWUgPSAndGhyZWVe MScKKyAgV0hFUkUgaWQgPSAnWzMsNCknOworLS0gVXBkYXRlIHdpdGhvdXQgbW92aW5nIHdp dGhpbiBwYXJ0aXRpb24gNQorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDMtMDEnIFRPICcyMDAwLTA0LTAxJworICBT RVQgbmFtZSA9ICdmaXZlXjEnCisgIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIE1vdmUgZnJv bSBwYXJ0aXRpb24gMSB0byBwYXJ0aXRpb24gMworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDYtMDEnIFRPICcyMDAw LTA3LTAxJworICBTRVQgbmFtZSA9ICdvbmVeMicsCisgICAgICBpZCA9ICdbNCw1KScKKyAg V0hFUkUgaWQgPSAnWzEsMiknOworLS0gTW92ZSBmcm9tIHBhcnRpdGlvbiAzIHRvIHBhcnRp dGlvbiAxCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAwMC0wNi0wMScgVE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0g J3RocmVlXjInLAorICAgICAgaWQgPSAnWzIsMyknCisgIFdIRVJFIGlkID0gJ1szLDQpJzsK Ky0tIE1vdmUgZnJvbSBwYXJ0aXRpb24gNSB0byBwYXJ0aXRpb24gMworVVBEQVRFIHRlbXBv cmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDYt MDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFtZSA9ICdmaXZlXjInLAorICAgICAgaWQg PSAnWzMsNCknCisgIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIFVwZGF0ZSBhbGwgcGFydGl0 aW9ucyBhdCBvbmNlIChlYWNoIHdpdGggbGVmdG92ZXJzKQorU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAg ICAgdmFsaWRfYXQgICAgICAgICB8ICBuYW1lICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTAzLTAx KSB8IG9uZQorIFsxLDIpIHwgWzIwMDAtMDMtMDEsMjAwMC0wNC0wMSkgfCBvbmVeMQorIFsx LDIpIHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkgfCBvbmUKKyBbMSwyKSB8IFsyMDAwLTA3 LTAxLDIwMTAtMDEtMDEpIHwgb25lCisgWzIsMykgfCBbMjAwMC0wNi0wMSwyMDAwLTA3LTAx KSB8IHRocmVlXjIKKyBbMyw0KSB8IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgdGhyZWUK KyBbMyw0KSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEpIHwgdGhyZWVeMQorIFszLDQpIHwg WzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkgfCB0aHJlZQorIFszLDQpIHwgWzIwMDAtMDYtMDEs MjAwMC0wNy0wMSkgfCBmaXZlXjIKKyBbMyw0KSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEp IHwgdGhyZWUKKyBbNCw1KSB8IFsyMDAwLTA2LTAxLDIwMDAtMDctMDEpIHwgb25lXjIKKyBb NSw2KSB8IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgZml2ZQorIFs1LDYpIHwgWzIwMDAt MDMtMDEsMjAwMC0wNC0wMSkgfCBmaXZlXjEKKyBbNSw2KSB8IFsyMDAwLTA0LTAxLDIwMDAt MDYtMDEpIHwgZml2ZQorIFs1LDYpIHwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkgfCBmaXZl CisoMTUgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8xIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgIG5hbWUgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgb25lCisgWzEsMikgfCBb MjAwMC0wMy0wMSwyMDAwLTA0LTAxKSB8IG9uZV4xCisgWzEsMikgfCBbMjAwMC0wNC0wMSwy MDAwLTA2LTAxKSB8IG9uZQorIFsxLDIpIHwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkgfCBv bmUKKyBbMiwzKSB8IFsyMDAwLTA2LTAxLDIwMDAtMDctMDEpIHwgdGhyZWVeMgorKDUgcm93 cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgbmFtZSAgIHwgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICAKKy0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0aHJl ZSAgIHwgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDAwLTAzLTAxKQorIHRocmVlXjEgfCBbMyw0 KSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEpCisgdGhyZWUgICB8IFszLDQpIHwgWzIwMDAt MDQtMDEsMjAwMC0wNi0wMSkKKyBmaXZlXjIgIHwgWzMsNCkgfCBbMjAwMC0wNi0wMSwyMDAw LTA3LTAxKQorIHRocmVlICAgfCBbMyw0KSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpCisg b25lXjIgICB8IFs0LDUpIHwgWzIwMDAtMDYtMDEsMjAwMC0wNy0wMSkKKyg2IHJvd3MpCisK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgIG5hbWUgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAgaWQgICAKKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIGZpdmUgICB8IFsy MDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgWzUsNikKKyBmaXZlXjEgfCBbMjAwMC0wMy0wMSwy MDAwLTA0LTAxKSB8IFs1LDYpCisgZml2ZSAgIHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkg fCBbNSw2KQorIGZpdmUgICB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwgWzUsNikKKyg0 IHJvd3MpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CitSRVNFVCBkYXRl c3R5bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5p dHkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAppbmRl eCAzNGEzMmJkMTFkMi4uNzA0OGVhMGE1OWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vcHJfc2FuaXR5Lm91dApAQCAtMTk0OCw2ICsxOTQ4LDcgQEAgV0hFUkUgYTEuYW1v cGZhbWlseSA9IDAgT1IgYTEuYW1vcGxlZnR0eXBlID0gMCBPUiBhMS5hbW9wcmlnaHR0eXBl ID0gMAogU0VMRUNUIGExLmFtb3BmYW1pbHksIGExLmFtb3BzdHJhdGVneQogRlJPTSBwZ19h bW9wIGFzIGExCiBXSEVSRSBOT1QgKChhMS5hbW9wcHVycG9zZSA9ICdzJyBBTkQgYTEuYW1v cHNvcnRmYW1pbHkgPSAwKSBPUgorICAgICAgICAgICAoYTEuYW1vcHB1cnBvc2UgPSAncCcg QU5EIGExLmFtb3Bzb3J0ZmFtaWx5ID0gMCkgT1IKICAgICAgICAgICAgKGExLmFtb3BwdXJw b3NlID0gJ28nIEFORCBhMS5hbW9wc29ydGZhbWlseSA8PiAwKSk7CiAgYW1vcGZhbWlseSB8 IGFtb3BzdHJhdGVneSAKIC0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcml2aWxlZ2VzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQKaW5kZXggNzU5MTJmNjkwYzIuLjM5 OTgwOTk0MGU5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByaXZp bGVnZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5v dXQKQEAgLTExMDUsNiArMTEwNSwyNCBAQCBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1u ICJiIiBvZiByZWxhdGlvbiAiZXJydHN0X3BhcnRfMiIgdmlvbGF0ZXMgbm90LW51bGwgYwog REVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKGEsIGIsIGMpID0gKGFhYWEsIG51bGws IGNjYykuCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsK IERST1AgVEFCTEUgZXJydHN0OworLS0gdGVzdCBjb2x1bW4tbGV2ZWwgcHJpdmlsZWdlcyBv biB0aGUgcmFuZ2UgdXNlZCBpbiBGT1IgUE9SVElPTiBPRgorU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjE7CitDUkVBVEUgVEFCTEUgdDEgKAorICBjMSBp bnQ0cmFuZ2UsCisgIHZhbGlkX2F0IHRzcmFuZ2UsCisJQ09OU1RSQUlOVCB0MXBrIFBSSU1B UlkgS0VZIChjMSwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitHUkFOVCBTRUxF Q1QgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIyOworR1JBTlQgU0VMRUNUIE9OIHQxIFRP IHJlZ3Jlc3NfcHJpdl91c2VyMzsKK0dSQU5UIFVQREFURSAoYzEpIE9OIHQxIFRPIHJlZ3Jl c3NfcHJpdl91c2VyMjsKK0dSQU5UIFVQREFURSAoYzEsIHZhbGlkX2F0KSBPTiB0MSBUTyBy ZWdyZXNzX3ByaXZfdXNlcjM7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cHJpdl91c2VyMjsKK1VQREFURSB0MSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDAwLTAxLTAxJyBUTyAnMjAwMS0wMS0wMScgU0VUIGMxID0gJ1syLDMpJzsKK0VSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIHQxCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK1VQREFURSB0MSBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDAwLTAxLTAxJyBUTyAnMjAwMS0wMS0wMScgU0VUIGMxID0gJ1syLDMp JzsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOworRFJP UCBUQUJMRSB0MTsKIC0tIHRlc3QgY29sdW1uLWxldmVsIHByaXZpbGVnZXMgd2hlbiBpbnZv bHZlZCB3aXRoIERFTEVURQogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3By aXZfdXNlcjE7CiBBTFRFUiBUQUJMRSBhdGVzdDYgQUREIENPTFVNTiB0aHJlZSBpbnRlZ2Vy OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmll d3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0 CmluZGV4IDg3ODYwNThlZDBjLi41MzkwMzcwNTQ5MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dApAQCAtMzY2Niw2ICszNjY2LDM4 IEBAIHNlbGVjdCAqIGZyb20gdXZfaW9jdV90YWI7CiAKIGRyb3AgdmlldyB1dl9pb2N1X3Zp ZXc7CiBkcm9wIHRhYmxlIHV2X2lvY3VfdGFiOworLS0gQ2hlY2sgVVBEQVRFIEZPUiBQT1JU SU9OIE9GIHdvcmtzIGNvcnJlY3RseQorY3JlYXRlIHRhYmxlIHV2X2Zwb190YWIgKGlkIGlu dDRyYW5nZSwgdmFsaWRfYXQgdHNyYW5nZSwgYiBmbG9hdCwKKyAgICBjb25zdHJhaW50IHBr X3V2X2Zwb190YWIgcHJpbWFyeSBrZXkgKGlkLCB2YWxpZF9hdCB3aXRob3V0IG92ZXJsYXBz KSk7CitpbnNlcnQgaW50byB1dl9mcG9fdGFiIHZhbHVlcyAoJ1sxLDFdJywgJ1syMDIwLTAx LTAxLCAyMDMwLTAxLTAxKScsIDApOworY3JlYXRlIHZpZXcgdXZfZnBvX3ZpZXcgYXMKKyAg ICBzZWxlY3QgYiwgYisxIGFzIGMsIHZhbGlkX2F0LCBpZCwgJzIuMCc6OnRleHQgYXMgdHdv IGZyb20gdXZfZnBvX3RhYjsKK2luc2VydCBpbnRvIHV2X2Zwb192aWV3IChpZCwgdmFsaWRf YXQsIGIpIHZhbHVlcyAoJ1sxLDFdJywgJ1syMDEwLTAxLTAxLCAyMDIwLTAxLTAxKScsIDEp Oworc2VsZWN0ICogZnJvbSB1dl9mcG9fdmlldzsKKyBiIHwgYyB8ICAgICAgICAgICAgICAg ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAgfCAgaWQgICB8IHR3 byAKKy0tLSstLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0KKyAwIHwgMSB8IFsiV2VkIEphbiAwMSAw MDowMDowMCAyMDIwIiwiVHVlIEphbiAwMSAwMDowMDowMCAyMDMwIikgfCBbMSwyKSB8IDIu MAorIDEgfCAyIHwgWyJGcmkgSmFuIDAxIDAwOjAwOjAwIDIwMTAiLCJXZWQgSmFuIDAxIDAw OjAwOjAwIDIwMjAiKSB8IFsxLDIpIHwgMi4wCisoMiByb3dzKQorCit1cGRhdGUgdXZfZnBv X3ZpZXcgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNS0wMS0wMScgdG8gJzIw MjAtMDEtMDEnIHNldCBiID0gMiB3aGVyZSBpZCA9ICdbMSwxXSc7CitzZWxlY3QgKiBmcm9t IHV2X2Zwb192aWV3OworIGIgfCBjIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9h dCAgICAgICAgICAgICAgICAgICAgICAgICB8ICBpZCAgIHwgdHdvIAorLS0tKy0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLSstLS0tLQorIDAgfCAxIHwgWyJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAiLCJU dWUgSmFuIDAxIDAwOjAwOjAwIDIwMzAiKSB8IFsxLDIpIHwgMi4wCisgMiB8IDMgfCBbIlRo dSBKYW4gMDEgMDA6MDA6MDAgMjAxNSIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyMCIpIHwg WzEsMikgfCAyLjAKKyAxIHwgMiB8IFsiRnJpIEphbiAwMSAwMDowMDowMCAyMDEwIiwiVGh1 IEphbiAwMSAwMDowMDowMCAyMDE1IikgfCBbMSwyKSB8IDIuMAorKDMgcm93cykKKworZGVs ZXRlIGZyb20gdXZfZnBvX3ZpZXcgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAx Ny0wMS0wMScgdG8gJzIwMjItMDEtMDEnIHdoZXJlIGlkID0gJ1sxLDFdJzsKK3NlbGVjdCAq IGZyb20gdXZfZnBvX3ZpZXc7CisgYiB8IGMgfCAgICAgICAgICAgICAgICAgICAgICAgIHZh bGlkX2F0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGlkICAgfCB0d28gCistLS0rLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tKy0tLS0tCisgMSB8IDIgfCBbIkZyaSBKYW4gMDEgMDA6MDA6MDAgMjAx MCIsIlRodSBKYW4gMDEgMDA6MDA6MDAgMjAxNSIpIHwgWzEsMikgfCAyLjAKKyAwIHwgMSB8 IFsiU2F0IEphbiAwMSAwMDowMDowMCAyMDIyIiwiVHVlIEphbiAwMSAwMDowMDowMCAyMDMw IikgfCBbMSwyKSB8IDIuMAorIDIgfCAzIHwgWyJUaHUgSmFuIDAxIDAwOjAwOjAwIDIwMTUi LCJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciKSB8IFsxLDIpIHwgMi4wCisoMyByb3dzKQor CiAtLSBUZXN0IHdob2xlLXJvdyByZWZlcmVuY2VzIHRvIHRoZSB2aWV3CiBjcmVhdGUgdGFi bGUgdXZfaW9jdV90YWIgKGEgaW50IHVuaXF1ZSwgYiB0ZXh0KTsKIGNyZWF0ZSB2aWV3IHV2 X2lvY3VfdmlldyBhcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93 aXRob3V0X292ZXJsYXBzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91 dF9vdmVybGFwcy5vdXQKaW5kZXggNzk5YjY3NzA1NzkuLmVkOWE3ZDc5YzE2IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKQEAg LTg4OSw2ICs4ODksMzYgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQs IGlkMiwgbmFtZSkKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEw LTAxLTAxJyksICdbNyw4KScsICdmb28nKSwKICAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAw MC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwxMCknLCAnYmFyJykKIDsKK1VQREFURSB0 ZW1wb3JhbDMgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wNS0wMScgVE8g JzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gbmFtZSB8fCAnMSc7CitVUERBVEUgdGVtcG9y YWwzIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDQtMDEnIFRPICcyMDAw LTA2LTAxJworICBTRVQgbmFtZSA9IG5hbWUgfHwgJzInCisgIFdIRVJFIGlkID0gJ1syLDMp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg aWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgIGlkMiAgIHwgbmFtZSAgCistLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLQorIFsxLDIp IHwgWzIwMDAtMDEtMDEsMjAwMC0wNS0wMSkgfCBbNyw4KSAgfCBmb28KKyBbMSwyKSB8IFsy MDAwLTA1LTAxLDIwMDAtMDctMDEpIHwgWzcsOCkgIHwgZm9vMQorIFsxLDIpIHwgWzIwMDAt MDctMDEsMjAxMC0wMS0wMSkgfCBbNyw4KSAgfCBmb28KKyBbMiwzKSB8IFsyMDAwLTAxLTAx LDIwMDAtMDQtMDEpIHwgWzksMTApIHwgYmFyCisgWzIsMykgfCBbMjAwMC0wNC0wMSwyMDAw LTA1LTAxKSB8IFs5LDEwKSB8IGJhcjIKKyBbMiwzKSB8IFsyMDAwLTA1LTAxLDIwMDAtMDYt MDEpIHwgWzksMTApIHwgYmFyMTIKKyBbMiwzKSB8IFsyMDAwLTA2LTAxLDIwMDAtMDctMDEp IHwgWzksMTApIHwgYmFyMQorIFsyLDMpIHwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkgfCBb OSwxMCkgfCBiYXIKKyg4IHJvd3MpCisKKy0tIGNvbmZsaWN0aW5nIGlkIG9ubHk6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMK KyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJyksICdb OCw5KScsICdmb28zJyk7CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRl cyBleGNsdXNpb24gY29uc3RyYWludCAidGVtcG9yYWwzX3BrIgorREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMDUtMDEtMDEsMjAwNi0wMS0wMSkpIGNvbmZsaWN0 cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDAwLTA3LTAx LDIwMTAtMDEtMDEpKS4KKy0tIGNvbmZsaWN0aW5nIGlkMiBvbmx5OgorSU5TRVJUIElOVE8g dGVtcG9yYWwzIChpZCwgdmFsaWRfYXQsIGlkMiwgbmFtZSkKKyAgVkFMVUVTCisgICgnWzMs NCknLCBkYXRlcmFuZ2UoJzIwMDUtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnWzksMTApJywg J2JhcjMnKTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1 c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbDNfdW5pcSIKK0RFVEFJTDogIEtleSAoaWQyLCB2 YWxpZF9hdCk9KFs5LDEwKSwgWzIwMDUtMDEtMDEsMjAxMC0wMS0wMSkpIGNvbmZsaWN0cyB3 aXRoIGV4aXN0aW5nIGtleSAoaWQyLCB2YWxpZF9hdCk9KFs5LDEwKSwgWzIwMDAtMDctMDEs MjAxMC0wMS0wMSkpLgogRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CiAtLQogLS0gdGVzdCBjaGFu Z2luZyB0aGUgUEsncyBkZXBlbmRlbmNpZXMKQEAgLTkyMCwyNiArOTUwLDQzIEBAIElOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkIChpZCwgdmFsaWRfYXQsIG5hbWUpIFZBTFVF UwogICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMDEnKSwg J29uZScpLAogICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAyLTAxJywgJzIwMDAtMDMt MDEnKSwgJ29uZScpLAogICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIw MTAtMDEtMDEnKSwgJ3RocmVlJyk7Ci1TRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKLSAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIHwgbmFtZSAgCi0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLQotIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAwMC0wMi0wMSkgfCBvbmUKLSBbMSwyKSB8 IFsyMDAwLTAyLTAxLDIwMDAtMDMtMDEpIHwgb25lCi0gWzMsNCkgfCBbMjAwMC0wMS0wMSwy MDEwLTAxLTAxKSB8IHRocmVlCitTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworIHRhYmxlb2lk IHwgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAorLS0tLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIHRwMSAgICAg IHwgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTAyLTAxKSB8IG9uZQorIHRwMSAgICAgIHwg WzEsMikgfCBbMjAwMC0wMi0wMSwyMDAwLTAzLTAxKSB8IG9uZQorIHRwMiAgICAgIHwgWzMs NCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCiAoMyByb3dzKQogCi1TRUxF Q1QgKiBGUk9NIHRwMSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Ci0gIGlkICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICB8IG5hbWUgCi0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tCi0gWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTAyLTAxKSB8IG9uZQot IFsxLDIpIHwgWzIwMDAtMDItMDEsMjAwMC0wMy0wMSkgfCBvbmUKLSgyIHJvd3MpCi0KLVNF TEVDVCAqIEZST00gdHAyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKLSAgaWQgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgCi0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLQotIFszLDQpIHwgWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkgfCB0 aHJlZQotKDEgcm93KQorVVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAxLTE1JyBUTyAnMjAwMC0wMi0xNScKKyAg U0VUIG5hbWUgPSAnb25lMicKKyAgV0hFUkUgaWQgPSAnWzEsMiknOworVVBEQVRFICB0ZW1w b3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAw LTAyLTIwJyBUTyAnMjAwMC0wMi0yNScKKyAgU0VUIGlkID0gJ1s0LDUpJworICBXSEVSRSBu YW1lID0gJ29uZSc7CitVUERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcyMDAzLTAxLTAxJworICBT RVQgaWQgPSAnWzIsMyknCisgIFdIRVJFIG5hbWUgPSAndGhyZWUnOworREVMRVRFIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAwMC0wMS0xNScgVE8gJzIwMDAtMDItMTUnCisgIFdIRVJFIGlkID0gJ1szLDQpJzsKK1NF TEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgdGFibGVvaWQgfCAgaWQgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tCisgdHAxICAgICAgfCBbMSwyKSB8IFsyMDAwLTAxLTAx LDIwMDAtMDEtMTUpIHwgb25lCisgdHAxICAgICAgfCBbMSwyKSB8IFsyMDAwLTAxLTE1LDIw MDAtMDItMDEpIHwgb25lMgorIHRwMSAgICAgIHwgWzEsMikgfCBbMjAwMC0wMi0wMSwyMDAw LTAyLTE1KSB8IG9uZTIKKyB0cDEgICAgICB8IFsxLDIpIHwgWzIwMDAtMDItMTUsMjAwMC0w Mi0yMCkgfCBvbmUKKyB0cDEgICAgICB8IFsxLDIpIHwgWzIwMDAtMDItMjUsMjAwMC0wMy0w MSkgfCBvbmUKKyB0cDEgICAgICB8IFsyLDMpIHwgWzIwMDItMDEtMDEsMjAwMy0wMS0wMSkg fCB0aHJlZQorIHRwMiAgICAgIHwgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDAwLTAxLTE1KSB8 IHRocmVlCisgdHAyICAgICAgfCBbMyw0KSB8IFsyMDAwLTAyLTE1LDIwMDItMDEtMDEpIHwg dGhyZWUKKyB0cDIgICAgICB8IFszLDQpIHwgWzIwMDMtMDEtMDEsMjAxMC0wMS0wMSkgfCB0 aHJlZQorIHRwMiAgICAgIHwgWzQsNSkgfCBbMjAwMC0wMi0yMCwyMDAwLTAyLTI1KSB8IG9u ZQorKDEwIHJvd3MpCiAKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CiAtLSB0 ZW1wb3JhbCBVTklRVUU6CkBAIC05NTUsMjYgKzEwMDIsNDMgQEAgSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCiAgICgnWzEs MiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAnb25lJyksCiAg ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0wMScpLCAnb25l JyksCiAgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScp LCAndGhyZWUnKTsKLVNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIg QlkgaWQsIHZhbGlkX2F0OwotICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBu YW1lICAKLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCi0gWzEs MikgfCBbMjAwMC0wMS0wMSwyMDAwLTAyLTAxKSB8IG9uZQotIFsxLDIpIHwgWzIwMDAtMDIt MDEsMjAwMC0wMy0wMSkgfCBvbmUKLSBbMyw0KSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEp IHwgdGhyZWUKK1NFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgdGFibGVvaWQgfCAgaWQgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAgCistLS0tLS0tLS0tKy0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisgdHAxICAgICAgfCBbMSwyKSB8 IFsyMDAwLTAxLTAxLDIwMDAtMDItMDEpIHwgb25lCisgdHAxICAgICAgfCBbMSwyKSB8IFsy MDAwLTAyLTAxLDIwMDAtMDMtMDEpIHwgb25lCisgdHAyICAgICAgfCBbMyw0KSB8IFsyMDAw LTAxLTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKICgzIHJvd3MpCiAKLVNFTEVDVCAqIEZST00g dHAxIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKLSAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIHwgbmFtZSAKLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0KLSBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDItMDEpIHwgb25lCi0gWzEsMikgfCBb MjAwMC0wMi0wMSwyMDAwLTAzLTAxKSB8IG9uZQotKDIgcm93cykKLQotU0VMRUNUICogRlJP TSB0cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwotICBpZCAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgfCBuYW1lICAKLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tCi0gWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCi0oMSBy b3cpCitVUERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBTRVQgbmFtZSA9 ICdvbmUyJworICBXSEVSRSBpZCA9ICdbMSwyKSc7CitVUERBVEUgIHRlbXBvcmFsX3BhcnRp dGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDItMjAnIFRP ICcyMDAwLTAyLTI1JworICBTRVQgaWQgPSAnWzQsNSknCisgIFdIRVJFIG5hbWUgPSAnb25l JzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEnCisgIFNFVCBpZCA9ICdb MiwzKScKKyAgV0hFUkUgbmFtZSA9ICd0aHJlZSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAxLTE1 JyBUTyAnMjAwMC0wMi0xNScKKyAgV0hFUkUgaWQgPSAnWzMsNCknOworU0VMRUNUIHRhYmxl b2lkOjpyZWdjbGFzcywgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyB0YWJsZW9pZCB8ICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBuYW1lICAKKy0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0KKyB0cDEgICAgICB8IFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAwMC0wMS0x NSkgfCBvbmUKKyB0cDEgICAgICB8IFsxLDIpIHwgWzIwMDAtMDEtMTUsMjAwMC0wMi0wMSkg fCBvbmUyCisgdHAxICAgICAgfCBbMSwyKSB8IFsyMDAwLTAyLTAxLDIwMDAtMDItMTUpIHwg b25lMgorIHRwMSAgICAgIHwgWzEsMikgfCBbMjAwMC0wMi0xNSwyMDAwLTAyLTIwKSB8IG9u ZQorIHRwMSAgICAgIHwgWzEsMikgfCBbMjAwMC0wMi0yNSwyMDAwLTAzLTAxKSB8IG9uZQor IHRwMSAgICAgIHwgWzIsMykgfCBbMjAwMi0wMS0wMSwyMDAzLTAxLTAxKSB8IHRocmVlCisg dHAyICAgICAgfCBbMyw0KSB8IFsyMDAwLTAxLTAxLDIwMDAtMDEtMTUpIHwgdGhyZWUKKyB0 cDIgICAgICB8IFszLDQpIHwgWzIwMDAtMDItMTUsMjAwMi0wMS0wMSkgfCB0aHJlZQorIHRw MiAgICAgIHwgWzMsNCkgfCBbMjAwMy0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCisgdHAy ICAgICAgfCBbNCw1KSB8IFsyMDAwLTAyLTIwLDIwMDAtMDItMjUpIHwgb25lCisoMTAgcm93 cykKIAogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKIC0tIEFMVEVSIFRBQkxF IFJFUExJQ0EgSURFTlRJVFkKQEAgLTE3NTUsNiArMTgxOSwzMyBAQCBVUERBVEUgdGVtcG9y YWxfcm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwogRVJST1I6ICB1 cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0 ZW1wb3JhbF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2 KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0 YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5j ZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAn WzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBm YWlsczoKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDgpJworV0hF UkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0 ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFs X2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkp IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIu CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYpJywgJ1s3 LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbNSw2KSB8 IFsyMDE2LTAyLTAxLDIwMTYtMDMtMDEpCisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE4LTAx LTAyKQorIFs1LDYpIHwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkKKyBbNyw4KSB8IFsyMDE4 LTAxLTAyLDIwMTgtMDEtMDMpCisoNCByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCBb MjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYpCisoMSByb3cpCisKIC0tIHRoZW4gZGVs ZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3Vj Y2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sz LDQpJzsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcy MDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQpAQCAtMTg0MCw2ICsxOTMxLDM0IEBAIFVQREFU RSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CiBF UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0 ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24g dGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9h dCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNl ZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KKy0tIGNoYW5naW5nIGFuIHVu cmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcm5nCitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NF VCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5nIGp1c3Qg YSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcs OCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24g dGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAi dGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmci CitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4 LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19y bmcycm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUs NiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IFs1LDYpIHwgWzIwMTYtMDItMDEsMjAxNi0wMy0wMSkKKyBbNSw2KSB8IFsyMDE4LTAxLTAx LDIwMTgtMDEtMDIpCisgWzUsNikgfCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKQorIFs3LDgp IHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0wMykKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRf aWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBb Myw0KSB8IFsyMDE4LTAxLTA1LDIwMTgtMDEtMTApIHwgWzUsNikKKyBbMyw0KSB8IFsyMDE4 LTAxLTE1LDIwMTgtMDItMDEpIHwgWzIsMykKKygyIHJvd3MpCisKIC0tIHRoZW4gZGVsZXRl IHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2Vl ZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQp JzsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2 LTAxLTAxJywgJzIwMTYtMDItMDEnKQpAQCAtMTg3Niw5ICsxOTk1LDM1IEBAIEJFR0lOOwog Q09NTUlUOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9y bmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJy bmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxs IHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCistLSBkZWxl dGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9y YWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAn MjAxOC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAxOC0wMS0w MikKKyBbNSw2KSB8IFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpCisoMiByb3dzKQorCitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYpCisoMSBy b3cpCisKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVt cG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBU TyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9y IGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxf Zmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4 LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRl bXBvcmFsX2ZrX3JuZzJybmciLgogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyBy ZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRl bXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogREVMRVRFIEZST00gdGVt cG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0gY2xlYW4gdXA6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVudF9pZCA9ICdbNSw2KSc7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdbNSw2KScpOwogLS0KIC0tIHRl c3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCiAtLQpAQCAtMTkwNywxMSArMjA1 MiwzNyBAQCBCRUdJTjsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVt cG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9m a19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKIERFVEFJTDog IEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBp cyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgog Uk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5Ogor REVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCkn KSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIw MTgtMDEtMDEsMjAxOC0wMS0wMikKKyBbNSw2KSB8IFsyMDE4LTAxLTAzLDIwMTgtMDItMDEp CisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4LTAx LTEwKSB8IFs1LDYpCisoMSByb3cpCisKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxz OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDYpJzsK K0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBv biB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlk X2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVu Y2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgogLS0gdGhlbiBkZWxldGUg dGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVk czoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCkn OwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0gY2xl YW4gdXA6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVudF9p ZCA9ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdb NSw2KScpOwogLS0KLS0tIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCistLSBybmcy cm5nIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCiAtLQogLS0gdGVzdCBGSyByZWZl cmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSk7CkBAIC0yMzA3LDYgKzI0NzgsMjIgQEAgVVBEQVRFIHRlbXBvcmFsX21s dHJuZyBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSk7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJu ZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCiBERVRB SUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0w MSl9KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmciLgorLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToK K1VQREFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMS0wMycpKSkKK1NF VCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5nIGp1c3Qg YSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4 LTAxLTEwJykpKQorU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworRVJS T1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xh dGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdf ZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5 IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDIpLFsyMDE4 LTAxLTAzLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3Rp bmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUs NiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJykpOwogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVz IFJFU1RSSUNUCiAtLQpAQCAtMjM4OCw2ICsyNTc1LDIyIEBAIFVQREFURSB0ZW1wb3JhbF9t bHRybmcgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx JykpOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRy bmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgogREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDIt MDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIi4KKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitT RVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0 IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAx OC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VS Uk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtl eSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKSxbMjAx OC0wMS0wMywyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAi dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0 aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRF IEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitV UERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpKTsKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRl cyBOTyBBQ1RJT04KIC0tCkBAIC0yNDIwLDYgKzI2MjMsMTkgQEAgQkVHSU47CiBDT01NSVQ7 CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCiBERVRBSUw6 ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSl9 KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmciLgorLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RF TEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAxLTAzJykpKQor V0hFUkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkK K1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJs ZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAx OC0wMS0wMSwyMDE4LTAxLTAyKSxbMjAxOC0wMS0wMywyMDE4LTAyLTAxKX0pIGlzIHN0aWxs IHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCist LSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsg ZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwogLS0KIC0tIHRlc3QgRksgcmVmZXJl bmNlZCBkZWxldGVzIFJFU1RSSUNUCiAtLQpAQCAtMjQ0OCw2ICsyNjY0LDE5IEBAIEJFR0lO OwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmci IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgogREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEp fSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIi4KIFJPTExCQUNLOworLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQg aXMgb2theToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4 LTAxLTAzJykpKQorV0hFUkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRpbmcganVzdCBhIHBh cnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAx OC0wMS0xMCcpKSkKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRl bGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKSxbMjAxOC0wMS0wMywyMDE4LTAyLTAx KX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyIuCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQg dGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwogLS0KIC0tIEZL IGJldHdlZW4gcGFydGl0aW9uZWQgdGFibGVzOiByYW5nZXMKIC0tCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZQppbmRleCA4MWU0MjIyZDI2YS4uYTRlNTU5ZmU0MTkgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtNDgsNyArNDgsNyBAQCB0ZXN0OiBj cmVhdGVfaW5kZXggY3JlYXRlX2luZGV4X3NwZ2lzdCBjcmVhdGVfdmlldyBpbmRleF9pbmNs dWRpbmcgaW5kZXhfaW5jbHVkaQogIyAtLS0tLS0tLS0tCiAjIEFub3RoZXIgZ3JvdXAgb2Yg cGFyYWxsZWwgdGVzdHMKICMgLS0tLS0tLS0tLQotdGVzdDogY3JlYXRlX2FnZ3JlZ2F0ZSBj cmVhdGVfZnVuY3Rpb25fc3FsIGNyZWF0ZV9jYXN0IGNvbnN0cmFpbnRzIHRyaWdnZXJzIHNl bGVjdCBpbmhlcml0IHR5cGVkX3RhYmxlIHZhY3V1bSBkcm9wX2lmX2V4aXN0cyB1cGRhdGFi bGVfdmlld3Mgcm9sZWF0dHJpYnV0ZXMgY3JlYXRlX2FtIGhhc2hfZnVuYyBlcnJvcnMgaW5m aW5pdGVfcmVjdXJzZQordGVzdDogY3JlYXRlX2FnZ3JlZ2F0ZSBjcmVhdGVfZnVuY3Rpb25f c3FsIGNyZWF0ZV9jYXN0IGNvbnN0cmFpbnRzIHRyaWdnZXJzIHNlbGVjdCBpbmhlcml0IHR5 cGVkX3RhYmxlIHZhY3V1bSBkcm9wX2lmX2V4aXN0cyB1cGRhdGFibGVfdmlld3Mgcm9sZWF0 dHJpYnV0ZXMgY3JlYXRlX2FtIGhhc2hfZnVuYyBlcnJvcnMgaW5maW5pdGVfcmVjdXJzZSBm b3JfcG9ydGlvbl9vZgogCiAjIC0tLS0tLS0tLS0KICMgc2FuaXR5X2NoZWNrIGRvZXMgYSB2 YWN1dW0sIGFmZmVjdGluZyB0aGUgc29ydCBvcmRlciBvZiBTRUxFQ1QgKgpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5lNjZhNTVmZTAxNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbApAQCAtMCwwICsxLDU5NyBAQAor LS0gVGVzdHMgZm9yIFVQREFURS9ERUxFVEUgRk9SIFBPUlRJT04gT0YKKworU0VUIGRhdGVz dHlsZSBUTyBJU08sIFlNRDsKKworLS0gV29ya3Mgb24gbm9uLVBLIGNvbHVtbnMKK0NSRUFU RSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxp ZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4dCBOT1QgTlVMTAorKTsKK0lOU0VSVCBJTlRP IGZvcl9wb3J0aW9uX29mX3Rlc3QgVkFMVUVTCisoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIw MjAtMDEtMDEpJywgJ29uZScpOworCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gJzIwMTktMDEtMDEn CitTRVQgbmFtZSA9ICdvbmVeMSc7CisKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rl c3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMTUnIFRPICcyMDE5 LTAxLTIwJzsKKworLS0gV2l0aCBhIHRhYmxlIGFsaWFzIHdpdGggQVMKKworVVBEQVRFIGZv cl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDItMDEnIFRPICcyMDE5LTAyLTAzJyBBUyB0CitTRVQgbmFtZSA9ICdvbmVeMic7CisKK0RF TEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDItMDMnIFRPICcyMDE5LTAyLTA0JyBBUyB0OworCistLSBXaXRoIGEg dGFibGUgYWxpYXMgd2l0aG91dCBBUworCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAor Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMi0wNCcgVE8gJzIwMTktMDIt MDUnIHQKK1NFVCBuYW1lID0gJ29uZV4zJzsKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMi0wNScgVE8g JzIwMTktMDItMDYnIHQ7CisKKy0tIFVQREFURSB3aXRoIEZST00KKworVVBEQVRFIGZvcl9w b3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDMt MDEnIHRvICcyMDE5LTAzLTAyJworU0VUIG5hbWUgPSAnb25lXjQnCitGUk9NIChTRUxFQ1Qg J1sxLDIpJzo6aW50NHJhbmdlKSBBUyB0MihpZCkKK1dIRVJFIGZvcl9wb3J0aW9uX29mX3Rl c3QuaWQgPSB0Mi5pZDsKKworLS0gREVMRVRFIHdpdGggVVNJTkcKKworREVMRVRFIEZST00g Zm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OS0wMy0wMicgVE8gJzIwMTktMDMtMDMnCitVU0lORyAoU0VMRUNUICdbMSwyKSc6OmludDRy YW5nZSkgQVMgdDIoaWQpCitXSEVSRSBmb3JfcG9ydGlvbl9vZl90ZXN0LmlkID0gdDIuaWQ7 CisKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisKKy0tIFdvcmtzIG9uIG1vcmUgdGhhbiBvbmUgcmFuZ2UKK0RST1AgVEFCTEUg Zm9yX3BvcnRpb25fb2ZfdGVzdDsKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0 ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZDFfYXQgZGF0ZXJhbmdlLAorICB2YWxpZDJf YXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQgTk9UIE5VTEwKKyk7CitJTlNFUlQgSU5UTyBm b3JfcG9ydGlvbl9vZl90ZXN0IFZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDE4 LTAyLTAzKScsICdbMjAxNS0wMS0wMSwyMDI1LTAxLTAxKScsICdvbmUnKTsKKworVVBEQVRF IGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMV9hdCBGUk9NICcy MDE4LTAxLTE1JyBUTyBOVUxMCitTRVQgbmFtZSA9ICdmb28nOworU0VMRUNUICogRlJPTSBm b3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZDFfYXQsIHZhbGlkMl9hdDsK KworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9h dCBGUk9NICcyMDE4LTAxLTE1JyBUTyBOVUxMCitTRVQgbmFtZSA9ICdiYXInOworU0VMRUNU ICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZDFfYXQsIHZh bGlkMl9hdDsKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJ T04gT0YgdmFsaWQxX2F0IEZST00gJzIwMTgtMDEtMjAnIFRPIE5VTEw7CitTRUxFQ1QgKiBG Uk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkMV9hdCwgdmFsaWQy X2F0OworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZDJfYXQgRlJPTSAnMjAxOC0wMS0yMCcgVE8gTlVMTDsKK1NFTEVDVCAqIEZST00g Zm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWQxX2F0LCB2YWxpZDJfYXQ7 CisKKy0tIFRlc3Qgd2l0aCBOVUxMcyBpbiB0aGUgc2NhbGFyL3JhbmdlIGtleSBjb2x1bW5z LgorLS0gVGhpcyB3b24ndCBoYXBwZW4gaWYgdGhlcmUgaXMgYSBQUklNQVJZIEtFWSBvciBV TklRVUUgY29uc3RyYWludAorLS0gYnV0IEZPUiBQT1JUSU9OIE9GIHNob3VsZG4ndCByZXF1 aXJlIHRoYXQuCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVU5M T0dHRUQgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQKKyk7CitJTlNFUlQgSU5UTyBmb3Jf cG9ydGlvbl9vZl90ZXN0IFZBTFVFUworICAoJ1sxLDIpJywgTlVMTCwgJzEgbnVsbCcpLAor ICAoJ1sxLDIpJywgJygsKScsICcxIHVuYm91bmRlZCcpLAorICAoJ1sxLDIpJywgJ2VtcHR5 JywgJzEgZW1wdHknKSwKKyAgKE5VTEwsIE5VTEwsIE5VTEwpLAorICAoTlVMTCwgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTktMDEtMDEnKSwgJ251bGwga2V5Jyk7CitVUERBVEUg Zm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5V TEwgVE8gTlVMTAorICBTRVQgbmFtZSA9ICdOVUxMIHRvIE5VTEwnOworU0VMRUNUICogRlJP TSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworRFJPUCBU QUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29m X3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisgIHZhbGlkX2F0IGRhdGVyYW5n ZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICBDT05TVFJBSU5UIGZvcl9w b3J0aW9uX29mX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0CitWQUxVRVMKKygnWzEs MiknLCAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMyknLCAnb25lJyksCisoJ1sxLDIpJywgJ1sy MDE4LTAyLTAzLDIwMTgtMDMtMDMpJywgJ29uZScpLAorKCdbMSwyKScsICdbMjAxOC0wMy0w MywyMDE4LTA0LTA0KScsICdvbmUnKSwKKygnWzIsMyknLCAnWzIwMTgtMDEtMDEsMjAxOC0w MS0wNSknLCAndHdvJyksCisoJ1szLDQpJywgJ1syMDE4LTAxLTAxLCknLCAndGhyZWUnKSwK KygnWzQsNSknLCAnKCwyMDE4LTA0LTAxKScsICdmb3VyJyksCisoJ1s1LDYpJywgJygsKScs ICdmaXZlJykKKzsKKworLS0KKy0tIFVQREFURSB0ZXN0cworLS0KKworLS0gU2V0dGluZyB3 aXRoIGEgbWlzc2luZyBjb2x1bW4gZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0 CitGT1IgUE9SVElPTiBPRiBpbnZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPIE5VTEwK K1NFVCBuYW1lID0gJ2ZvbycKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKworLS0gU2V0dGluZyB0 aGUgcmFuZ2UgZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgdmFsaWRfYXQg PSAnWzE5OTAtMDEtMDEsMTk5OS0wMS0wMSknCitXSEVSRSBpZCA9ICdbNSw2KSc7CisKKy0t IFRoZSB3cm9uZyB0eXBlIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAxIFRPIDQKK1NFVCBuYW1lID0gJ25vcGUnCitX SEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIFNldHRpbmcgd2l0aCB0aW1lc3RhbXBzIHJldmVy c2VkIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gJzIwMTgtMDEtMDEnCitTRVQgbmFtZSA9 ICd0aHJlZV4xJworV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBTZXR0aW5nIHdpdGggYSBz dWJxdWVyeSBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gKFNFTEVDVCAnMjAxOC0wMS0wMScpIFRPICcyMDE4LTA2LTAx JworU0VUIG5hbWUgPSAnbm9wZScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gU2V0dGlu ZyB3aXRoIGEgY29sdW1uIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBsb3dlcih2YWxpZF9hdCkgVE8gTlVMTAorU0VU IG5hbWUgPSAnbm9wZScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gU2V0dGluZyB3aXRo IHRpbWVzdGFtcHMgZXF1YWwgZG9lcyBub3RoaW5nCitVUERBVEUgZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNC0wMScgVE8gJzIw MTgtMDQtMDEnCitTRVQgbmFtZSA9ICd0aHJlZV4wJworV0hFUkUgaWQgPSAnWzMsNCknOwor CistLSBVcGRhdGluZyBhIGZpbml0ZS9vcGVuIHBvcnRpb24gd2l0aCBhIGZpbml0ZS9vcGVu IHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPIE5VTEwKK1NFVCBuYW1lID0gJ3RocmVlXjEn CitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIFVwZGF0aW5nIGEgZmluaXRlL29wZW4gcG9y dGlvbiB3aXRoIGFuIG9wZW4vZmluaXRlIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyAnMjAxOC0wMy0w MScKK1NFVCBuYW1lID0gJ3RocmVlXjInCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIFVw ZGF0aW5nIGFuIG9wZW4vZmluaXRlIHBvcnRpb24gd2l0aCBhbiBvcGVuL2Zpbml0ZSB0YXJn ZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NIE5VTEwgVE8gJzIwMTgtMDItMDEnCitTRVQgbmFtZSA9ICdmb3VyXjEnCitXSEVS RSBpZCA9ICdbNCw1KSc7CisKKy0tIFVwZGF0aW5nIGFuIG9wZW4vZmluaXRlIHBvcnRpb24g d2l0aCBhIGZpbml0ZS9vcGVuIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTctMDEtMDEnIFRPIE5VTEwKK1NF VCBuYW1lID0gJ2ZvdXJeMicKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKworLS0gVXBkYXRpbmcg YSBmaW5pdGUvZmluaXRlIHBvcnRpb24gd2l0aCBhbiBleGFjdCBmaXQKK1VQREFURSBmb3Jf cG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE3LTAx LTAxJyBUTyAnMjAxOC0wMi0wMScKK1NFVCBuYW1lID0gJ2ZvdXJeMycKK1dIRVJFIGlkID0g J1s0LDUpJzsKKworLS0gVXBkYXRpbmcgYW4gZW5jbG9zZWQgc3BhbgorVVBEQVRFIGZvcl9w b3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyBO VUxMCitTRVQgbmFtZSA9ICd0d29eMicKK1dIRVJFIGlkID0gJ1syLDMpJzsKKworLS0gVXBk YXRpbmcgYW4gb3Blbi9vcGVuIHBvcnRpb24gd2l0aCBhIGZpbml0ZS9maW5pdGUgdGFyZ2V0 CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wMScgVE8gJzIwMTktMDEtMDEnCitTRVQgbmFtZSA9ICdmaXZlXjEn CitXSEVSRSBpZCA9ICdbNSw2KSc7CisKKy0tIFVwZGF0aW5nIGFuIGVuY2xvc2VkIHNwYW4g d2l0aCBzZXBhcmF0ZSBwcm90cnVkaW5nIHNwYW5zCitVUERBVEUgZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxNy0wMS0wMScgVE8gJzIw MjAtMDEtMDEnCitTRVQgbmFtZSA9ICdmaXZlXjInCitXSEVSRSBpZCA9ICdbNSw2KSc7CisK Ky0tIFVwZGF0aW5nIG11bHRpcGxlIGVuY2xvc2VkIHNwYW5zCitVUERBVEUgZm9yX3BvcnRp b25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPIE5VTEwK K1NFVCBuYW1lID0gJ29uZV4yJworV0hFUkUgaWQgPSAnWzEsMiknOworCistLSBXaXRoIGEg ZGlyZWN0IHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IChkYXRlcmFuZ2UoJzIwMTgtMDMtMTAnLCAnMjAxOC0wMy0xNycpKQor U0VUIG5hbWUgPSAnb25lXjMnCitXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0tIFVwZGF0aW5n IHRoZSBub24tcmFuZ2UgcGFydCBvZiB0aGUgUEs6CitVUERBVEUgZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMi0xNScgVE8gTlVM TAorU0VUIGlkID0gJ1s2LDcpJworV0hFUkUgaWQgPSAnWzEsMiknOworCistLSBVUERBVEUg d2l0aCBubyBXSEVSRSBjbGF1c2UKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDMwLTAxLTAxJyBUTyBOVUxMCitTRVQgbmFt ZSA9IG5hbWUgfHwgJyonOworCitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Qg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLSBVcGRhdGluZyB3aXRoIGEgc2hpZnQvcmVk dWNlIGNvbmZsaWN0CistLSAocmVxdWlyZXMgYSB0c3JhbmdlIGNvbHVtbikKK0NSRUFURSBV TkxPR0dFRCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MiAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfYXQgdHNyYW5nZSwKKyAgbmFtZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9y X3BvcnRpb25fb2ZfdGVzdDIgKGlkLCB2YWxpZF9hdCwgbmFtZSkKKyAgVkFMVUVTICgnWzEs MiknLCAnWzIwMDAtMDEtMDEsMjAyMC0wMS0wMSknLCAnb25lJyk7CistLSB1cGRhdGVzIFsy MDExLTAzLTAxIDAxOjAyOjAwLCAyMDEyLTAxLTAxKSAobm90ZSAyIG1pbnV0ZXMpCitVUERB VEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgIEZS T00gJzIwMTEtMDMtMDEnOjp0aW1lc3RhbXAgKyBJTlRFUlZBTCAnMTowMjowMycgSE9VUiBU TyBNSU5VVEUKKyAgVE8gJzIwMTItMDEtMDEnCitTRVQgbmFtZSA9ICdvbmVeMScKK1dIRVJF IGlkID0gJ1sxLDIpJzsKKworLS0gVE8gaXMgdXNlZCBmb3IgdGhlIGJvdW5kIGJ1dCBub3Qg dGhlIElOVEVSVkFMOgorLS0gc3ludGF4IGVycm9yCitVUERBVEUgZm9yX3BvcnRpb25fb2Zf dGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgIEZST00gJzIwMTMtMDMtMDEnOjp0 aW1lc3RhbXAgKyBJTlRFUlZBTCAnMTowMjowMycgSE9VUgorICBUTyAnMjAxNC0wMS0wMScK K1NFVCBuYW1lID0gJ29uZV4yJworV0hFUkUgaWQgPSAnWzEsMiknOworCistLSBhZGRpbmcg cGFyZW5zIGZpeGVzIGl0CistLSB1cGRhdGVzIFsyMDE1LTAzLTAxIDAxOjAwOjAwLCAyMDE2 LTAxLTAxKSAobm8gbWludXRlcykKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQKKyAgRlJPTSAoJzIwMTUtMDMtMDEnOjp0aW1lc3RhbXAg KyBJTlRFUlZBTCAnMTowMjowMycgSE9VUikKKyAgVE8gJzIwMTYtMDEtMDEnCitTRVQgbmFt ZSA9ICdvbmVeMycKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKworU0VMRUNUICogRlJPTSBmb3Jf cG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitEUk9QIFRBQkxFIGZv cl9wb3J0aW9uX29mX3Rlc3QyOworCistLQorLS0gREVMRVRFIHRlc3RzCistLQorCistLSBE ZWxldGluZyB3aXRoIGEgbWlzc2luZyBjb2x1bW4gZmFpbHMKK0RFTEVURSBGUk9NIGZvcl9w b3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIGludmFsaWRfYXQgRlJPTSAnMjAxOC0w Ni0wMScgVE8gTlVMTAorV0hFUkUgaWQgPSAnWzUsNiknOworCistLSBEZWxldGluZyB3aXRo IHRpbWVzdGFtcHMgcmV2ZXJzZWQgZmFpbHMKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPICcy MDE4LTAxLTAxJworV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBEZWxldGluZyB3aXRoIHRp bWVzdGFtcHMgZXF1YWwgZG9lcyBub3RoaW5nCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9v Zl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA0LTAxJyBUTyAn MjAxOC0wNC0wMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gRGVsZXRpbmcgd2l0aCBh IGNsb3NlZC9jbG9zZWQgdGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0 CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyAnMjAyMC0w Ni0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKworLS0gRGVsZXRpbmcgd2l0aCBhIGNsb3Nl ZC9vcGVuIHRhcmdldAorREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNC0wMScgVE8gTlVMTAorV0hFUkUgaWQg PSAnWzMsNCknOworCistLSBEZWxldGluZyB3aXRoIGFuIG9wZW4vY2xvc2VkIHRhcmdldAor REVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSBOVUxMIFRPICcyMDE4LTAyLTA4JworV0hFUkUgaWQgPSAnWzEsMiknOworCist LSBEZWxldGluZyB3aXRoIGFuIG9wZW4vb3BlbiB0YXJnZXQKK0RFTEVURSBGUk9NIGZvcl9w b3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyBO VUxMCitXSEVSRSBpZCA9ICdbNiw3KSc7CisKKy0tIERFTEVURSB3aXRoIG5vIFdIRVJFIGNs YXVzZQorREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAyNS0wMS0wMScgVE8gTlVMTDsKKworU0VMRUNUICogRlJPTSBm b3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0gVVBEQVRF IC4uLiBSRVRVUk5JTkcgcmV0dXJucyBvbmx5IHRoZSB1cGRhdGVkIHZhbHVlcyAobm90IHRo ZSBpbnNlcnRlZCBzaWRlIHZhbHVlcykKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAyLTAxJyBUTyAnMjAxOC0wMi0x NScKK1NFVCBuYW1lID0gJ3RocmVlXjMnCitXSEVSRSBpZCA9ICdbMyw0KScKK1JFVFVSTklO RyAqOworCistLSBERUxFVEUgLi4uIFJFVFVSTklORyByZXR1cm5zIHRoZSBkZWxldGVkIHZh bHVlcyAocmVnYXJkbGVzcyBvZiBib3VuZHMpCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9v Zl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAyLTAyJyBUTyAn MjAxOC0wMi0wMycKK1dIRVJFIGlkID0gJ1szLDQpJworUkVUVVJOSU5HICo7CisKKy0tIHRl c3QgdGhhdCB3ZSBydW4gdHJpZ2dlcnMgb24gdGhlIFVQREFURS9ERUxFVEVkIHJvdyBhbmQg dGhlIElOU0VSVGVkIHJvd3MKKworQ1JFQVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3Ry aWdnZXIoKQorUkVUVVJOUyB0cmlnZ2VyCitBUworJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAnJSAlICUgJSBvZiAlJywgVEdfV0hFTiwgVEdfT1AsIFRHX0xFVkVMLCBORVcudmFsaWRf YXQsIE9MRC52YWxpZF9hdDsKKyAgSUYgVEdfT1AgPSAnREVMRVRFJyBUSEVOCisgICAgUkVU VVJOIE9MRDsKKyAgRUxTRQorICAgIFJFVFVSTiBORVc7CisgIEVORCBJRjsKK0VORDsKKyQk CitMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgVFJJR0dFUiB0cmdfZm9yX3BvcnRpb25f b2ZfYmVmb3JlCisgIEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBmb3Jf cG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFJPVworICBFWEVDVVRFIEZVTkNUSU9OIGZv cl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9ydGlv bl9vZl9hZnRlcgorICBBRlRFUiBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBmb3Jf cG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFJPVworICBFWEVDVVRFIEZVTkNUSU9OIGZv cl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9ydGlv bl9vZl9iZWZvcmVfc3RtdAorICBCRUZPUkUgSU5TRVJUIE9SIFVQREFURSBPUiBERUxFVEUg T04gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgRUFDSCBTVEFURU1FTlQKKyAgRVhFQ1VU RSBGVU5DVElPTiBmb3JfcG9ydGlvbl9vZl90cmlnZ2VyKCk7CitDUkVBVEUgVFJJR0dFUiB0 cmdfZm9yX3BvcnRpb25fb2ZfYWZ0ZXJfc3RtdAorICBBRlRFUiBJTlNFUlQgT1IgVVBEQVRF IE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFNUQVRFTUVO VAorICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKKworVVBE QVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMjEtMDEtMDEnIFRPICcyMDIyLTAxLTAxJworU0VUIG5hbWUgPSAnZml2ZV4zJworV0hF UkUgaWQgPSAnWzUsNiknOworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDIzLTAxLTAxJyBUTyAnMjAyNC0wMS0w MScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9v Zl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK0RST1AgRlVOQ1RJT04gZm9yX3BvcnRp b25fb2ZfdHJpZ2dlciBDQVNDQURFOworCistLSBUcmlnZ2VycyB3aXRoIGEgY3VzdG9tIHRy YW5zaXRpb24gdGFibGUgbmFtZToKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0 OworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2Us CisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0CispOworSU5TRVJUIElOVE8g Zm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMgKCdbMSwyKScsICdbMjAxOC0wMS0wMSwyMDIw LTAxLTAxKScsICdvbmUnKTsKKworQ1JFQVRFIEZVTkNUSU9OIGR1bXBfdHJpZ2dlcigpCitS RVRVUk5TIFRSSUdHRVIgTEFOR1VBR0UgcGxwZ3NxbCBBUworJCQKK0JFR0lOCisgIElGIFRH X09QID0gJ0lOU0VSVCcgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnJTogJSAlLCBORVcgdGFi bGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX09QLCBUR19MRVZFTCwgKFNFTEVDVCBzdHJp bmdfYWdnKG5ld190YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFi bGUpOworICBFTFNJRiBUR19PUCA9ICdVUERBVEUnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0Ug JyU6ICUgJSwgT0xEIHRhYmxlID0gJSwgTkVXIHRhYmxlID0gJScsCisgICAgICBUR19OQU1F LCBUR19PUCwgVEdfTEVWRUwsCisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cob2xkX3RhYmxl Ojp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG9sZF90YWJsZSksCisgICAgICAoU0VM RUNUIHN0cmluZ19hZ2cobmV3X3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9N IG5ld190YWJsZSk7CisgIEVMU0lGIFRHX09QID0gJ0RFTEVURScgVEhFTgorICAgIFJBSVNF IE5PVElDRSAnJTogJSAlLCBPTEQgdGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX09Q LCBUR19MRVZFTCwgKFNFTEVDVCBzdHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4dCwgJywgJyBP UkRFUiBCWSBpZCkgRlJPTSBvbGRfdGFibGUpOworICBFTkQgSUY7CisgIFJFVFVSTiBOVUxM OworRU5EOworJCQ7CisKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5z ZXJ0X3RyaWcKK0FGVEVSIElOU0VSVCBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitSRUZFUkVO Q0lORyBORVcgVEFCTEUgQVMgbmV3X3RhYmxlCitGT1IgRUFDSCBST1cgRVhFQ1VURSBQUk9D RURVUkUgZHVtcF90cmlnZ2VyKCk7CisKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0aW9uX29m X3Rlc3RfaW5zZXJ0X3RyaWdfc3RtdAorQUZURVIgSU5TRVJUIE9OIGZvcl9wb3J0aW9uX29m X3Rlc3QKK1JFRkVSRU5DSU5HIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBFQUNIIFNU QVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKKworQ1JFQVRFIFRS SUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVfdHJpZworQUZURVIgVVBEQVRFIE9O IGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFi bGUgTkVXIFRBQkxFIEFTIG5ld190YWJsZQorRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VE VVJFIGR1bXBfdHJpZ2dlcigpOworCitDUkVBVEUgVFJJR0dFUiBmb3JfcG9ydGlvbl9vZl90 ZXN0X3VwZGF0ZV90cmlnX3N0bXQKK0FGVEVSIFVQREFURSBPTiBmb3JfcG9ydGlvbl9vZl90 ZXN0CitSRUZFUkVOQ0lORyBPTEQgVEFCTEUgQVMgb2xkX3RhYmxlIE5FVyBUQUJMRSBBUyBu ZXdfdGFibGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3Ry aWdnZXIoKTsKKworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVf dHJpZworQUZURVIgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5H IE9MRCBUQUJMRSBBUyBvbGRfdGFibGUKK0ZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NFRFVS RSBkdW1wX3RyaWdnZXIoKTsKKworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVz dF9kZWxldGVfdHJpZ19zdG10CitBRlRFUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVz dAorUkVGRVJFTkNJTkcgT0xEIFRBQkxFIEFTIG9sZF90YWJsZQorRk9SIEVBQ0ggU1RBVEVN RU5UIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworCitCRUdJTjsKK1VQREFU RSBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTgtMDEtMTUnIFRPICcyMDE5LTAxLTAxJworICBTRVQgbmFtZSA9ICcyMDE4LTAxLTE1 X3RvXzIwMTktMDEtMDEnOworUk9MTEJBQ0s7CisKK0JFR0lOOworREVMRVRFIEZST00gZm9y X3BvcnRpb25fb2ZfdGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwg VE8gJzIwMTgtMDEtMjEnOworUk9MTEJBQ0s7CisKK0JFR0lOOworVVBEQVRFIGZvcl9wb3J0 aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcy MDE4LTAxLTAyJworICBTRVQgbmFtZSA9ICdOVUxMX3RvXzIwMTgtMDEtMDEnOworUk9MTEJB Q0s7CisKKy0tIFRlc3Qgd2l0aCBtdWx0aXJhbmdlcworCitDUkVBVEUgVEFCTEUgZm9yX3Bv cnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisgIHZhbGlkX2F0 IGRhdGVtdWx0aXJhbmdlIE5PVCBOVUxMLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisgIENP TlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfdGVzdDJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29m X3Rlc3QyCitWQUxVRVMKKygnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDInLCAnMjAxOC0wMi0wMyknKSwgZGF0ZXJhbmdlKCcyMDE4LTAyLTA0JywgJzIw MTgtMDMtMDMnKSksICdvbmUnKSwKKygnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCknKSksICdvbmUnKSwKKygnWzIsMyknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wNS0wMSknKSks ICd0d28nKSwKKygnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCBudWxsKSksICd0aHJlZScpOworOworCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVz dDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMTAnLCAnMjAxOC0wMi0xMCcpLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAn MjAxOC0wNS0wMScpKSkKK1NFVCBuYW1lID0gJ29uZV4xJworV0hFUkUgaWQgPSAnWzEsMikn OworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4 LTAyLTE1JyksIGRhdGVyYW5nZSgnMjAxOC0wMy0wMScsICcyMDE4LTAzLTE1JykpKQorV0hF UkUgaWQgPSAnWzIsMyknOworCitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Qy IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90 ZXN0MjsKKworLS0gVGVzdCB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUKKworQ1JFQVRFIFRZ UEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKKworQ1JFQVRFIFRBQkxF IGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2 YWxpZF9hdCBteWRhdGVyYW5nZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMLAor ICBDT05TVFJBSU5UIGZvcl9wb3J0aW9uX29mX3Rlc3QyX3BrIFBSSU1BUlkgS0VZIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlv bl9vZl90ZXN0MgorVkFMVUVTCisoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMTgtMDItMDMp JywgJ29uZScpLAorKCdbMSwyKScsICdbMjAxOC0wMi0wMywyMDE4LTAzLTAzKScsICdvbmUn KSwKKygnWzEsMiknLCAnWzIwMTgtMDMtMDMsMjAxOC0wNC0wNCknLCAnb25lJyksCisoJ1sy LDMpJywgJ1syMDE4LTAxLTAxLDIwMTgtMDUtMDEpJywgJ3R3bycpLAorKCdbMyw0KScsICdb MjAxOC0wMS0wMSwpJywgJ3RocmVlJyk7Cis7CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90 ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xMCcgVE8gJzIw MTgtMDItMTAnCitTRVQgbmFtZSA9ICdvbmVeMScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKwor REVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDEtMTUnIFRPICcyMDE4LTAyLTE1JworV0hFUkUgaWQgPSAnWzIs MyknOworCitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKK0RST1Ag VFlQRSBteWRhdGVyYW5nZTsKKworLS0gVGVzdCBGT1IgUE9SVElPTiBPRiBhZ2FpbnN0IGEg cGFydGl0aW9uZWQgdGFibGUuCistLSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8xIGhhcyB0aGUg c2FtZSBhdHRudW1zIGFzIHRoZSByb290CistLSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIGhh cyB0aGUgZGlmZmVyZW50IGF0dG51bXMgZnJvbSB0aGUgcm9vdAorLS0gdGVtcG9yYWxfcGFy dGl0aW9uZWRfNSBoYXMgdGhlIGRpZmZlcmVudCBhdHRudW1zIHRvbywgYnV0IHJldmVyc2Vk CisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoCisgIGlkIGludDRyYW5n ZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQsCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfcGFyaXRpb25lZF91cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQorKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkXzEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZP UiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMiwzKScpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkXzMgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBW QUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkXzUgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxV RVMgSU4gKCdbNSw2KScsICdbNiw3KScpOworCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZCBERVRBQ0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzM7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIERST1AgQ09MVU1OIGlkLCBEUk9QIENP TFVNTiB2YWxpZF9hdDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgQURE IENPTFVNTiBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsIEFERCBDT0xVTU4gdmFsaWRfYXQgZGF0 ZXJhbmdlIE5PVCBOVUxMOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgQVRU QUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIEZPUiBWQUxVRVMgSU4gKCdb Myw0KScsICdbNCw1KScpOworCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBE RVRBQ0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzU7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF81IERST1AgQ09MVU1OIGlkLCBEUk9QIENPTFVNTiB2YWxp ZF9hdDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgQUREIENPTFVNTiB2 YWxpZF9hdCBkYXRlcmFuZ2UgTk9UIE5VTEwsIEFERCBDT0xVTU4gaWQgaW50NHJhbmdlIE5P VCBOVUxMOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJ VElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IEZPUiBWQUxVRVMgSU4gKCdbNSw2KScsICdb Niw3KScpOworCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBWQUxVRVMKKyAg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdvbmUn KSwKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyks ICd0aHJlZScpLAorICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAt MDEtMDEnKSwgJ2ZpdmUnKTsKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZDsKKworLS0gVXBkYXRlIHdpdGhvdXQgbW92aW5nIHdpdGhpbiBwYXJ0aXRpb24gMQorVVBE QVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMDAtMDMtMDEnIFRPICcyMDAwLTA0LTAxJworICBTRVQgbmFtZSA9ICdvbmVeMScKKyAg V0hFUkUgaWQgPSAnWzEsMiknOworCistLSBVcGRhdGUgd2l0aG91dCBtb3Zpbmcgd2l0aGlu IHBhcnRpdGlvbiAzCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMy0wMScgVE8gJzIwMDAtMDQtMDEnCisgIFNFVCBu YW1lID0gJ3RocmVlXjEnCisgIFdIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gVXBkYXRlIHdp dGhvdXQgbW92aW5nIHdpdGhpbiBwYXJ0aXRpb24gNQorVVBEQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDMtMDEnIFRPICcy MDAwLTA0LTAxJworICBTRVQgbmFtZSA9ICdmaXZlXjEnCisgIFdIRVJFIGlkID0gJ1s1LDYp JzsKKworLS0gTW92ZSBmcm9tIHBhcnRpdGlvbiAxIHRvIHBhcnRpdGlvbiAzCitVUERBVEUg dGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAw MC0wNi0wMScgVE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gJ29uZV4yJywKKyAgICAg IGlkID0gJ1s0LDUpJworICBXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0tIE1vdmUgZnJvbSBw YXJ0aXRpb24gMyB0byBwYXJ0aXRpb24gMQorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVk IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDYtMDEnIFRPICcyMDAwLTA3 LTAxJworICBTRVQgbmFtZSA9ICd0aHJlZV4yJywKKyAgICAgIGlkID0gJ1syLDMpJworICBX SEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIE1vdmUgZnJvbSBwYXJ0aXRpb24gNSB0byBwYXJ0 aXRpb24gMworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMDAtMDYtMDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFtZSA9 ICdmaXZlXjInLAorICAgICAgaWQgPSAnWzMsNCknCisgIFdIRVJFIGlkID0gJ1s1LDYpJzsK KworLS0gVXBkYXRlIGFsbCBwYXJ0aXRpb25zIGF0IG9uY2UgKGVhY2ggd2l0aCBsZWZ0b3Zl cnMpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8xIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf MyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkXzUgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitEUk9QIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkOworCitSRVNFVCBkYXRlc3R5bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9vcHJfc2FuaXR5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29w cl9zYW5pdHkuc3FsCmluZGV4IDJmZTdiNmRjYzQ5Li4yZGZmZTdjNWI2YSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb3ByX3Nhbml0eS5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvb3ByX3Nhbml0eS5zcWwKQEAgLTEyNDEsNiArMTI0MSw3IEBAIFdIRVJF IGExLmFtb3BmYW1pbHkgPSAwIE9SIGExLmFtb3BsZWZ0dHlwZSA9IDAgT1IgYTEuYW1vcHJp Z2h0dHlwZSA9IDAKIFNFTEVDVCBhMS5hbW9wZmFtaWx5LCBhMS5hbW9wc3RyYXRlZ3kKIEZS T00gcGdfYW1vcCBhcyBhMQogV0hFUkUgTk9UICgoYTEuYW1vcHB1cnBvc2UgPSAncycgQU5E IGExLmFtb3Bzb3J0ZmFtaWx5ID0gMCkgT1IKKyAgICAgICAgICAgKGExLmFtb3BwdXJwb3Nl ID0gJ3AnIEFORCBhMS5hbW9wc29ydGZhbWlseSA9IDApIE9SCiAgICAgICAgICAgIChhMS5h bW9wcHVycG9zZSA9ICdvJyBBTkQgYTEuYW1vcHNvcnRmYW1pbHkgPD4gMCkpOwogCiAtLSBh bW9wbWV0aG9kIG11c3QgbWF0Y2ggb3duaW5nIG9wZmFtaWx5J3Mgb3BmbWV0aG9kCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcml2aWxlZ2VzLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3ByaXZpbGVnZXMuc3FsCmluZGV4IGQ4ODZjYzA4OGM5Li5lNzI1ZTlj Y2I2ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwKQEAgLTc1Niw2ICs3 NTYsMjQgQEAgVVBEQVRFIGVycnRzdCBTRVQgYSA9ICdhYWFhJywgYiA9IE5VTEwgV0hFUkUg YSA9ICdhYWEnOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNl cjE7CiBEUk9QIFRBQkxFIGVycnRzdDsKIAorLS0gdGVzdCBjb2x1bW4tbGV2ZWwgcHJpdmls ZWdlcyBvbiB0aGUgcmFuZ2UgdXNlZCBpbiBGT1IgUE9SVElPTiBPRgorU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjE7CitDUkVBVEUgVEFCTEUgdDEgKAor ICBjMSBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IHRzcmFuZ2UsCisJQ09OU1RSQUlOVCB0MXBr IFBSSU1BUlkgS0VZIChjMSwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitHUkFO VCBTRUxFQ1QgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIyOworR1JBTlQgU0VMRUNUIE9O IHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK0dSQU5UIFVQREFURSAoYzEpIE9OIHQxIFRP IHJlZ3Jlc3NfcHJpdl91c2VyMjsKK0dSQU5UIFVQREFURSAoYzEsIHZhbGlkX2F0KSBPTiB0 MSBUTyByZWdyZXNzX3ByaXZfdXNlcjM7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJl Z3Jlc3NfcHJpdl91c2VyMjsKK1VQREFURSB0MSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDAwLTAxLTAxJyBUTyAnMjAwMS0wMS0wMScgU0VUIGMxID0gJ1syLDMpJzsKK1NF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIzOworVVBEQVRFIHQx IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMDEnIFRPICcyMDAxLTAx LTAxJyBTRVQgYzEgPSAnWzIsMyknOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3ByaXZfdXNlcjE7CitEUk9QIFRBQkxFIHQxOworCiAtLSB0ZXN0IGNvbHVtbi1sZXZl bCBwcml2aWxlZ2VzIHdoZW4gaW52b2x2ZWQgd2l0aCBERUxFVEUKIFNFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOwogQUxURVIgVEFCTEUgYXRlc3Q2IEFE RCBDT0xVTU4gdGhyZWUgaW50ZWdlcjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3VwZGF0YWJsZV92aWV3cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRhdGFi bGVfdmlld3Muc3FsCmluZGV4IDkzYjY5M2FlODM3Li45YmYyMzdjNzFkNCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC91cGRhdGFibGVfdmlld3Muc3FsCkBAIC0xODY1LDYgKzE4NjUs MjAgQEAgc2VsZWN0ICogZnJvbSB1dl9pb2N1X3RhYjsKIGRyb3AgdmlldyB1dl9pb2N1X3Zp ZXc7CiBkcm9wIHRhYmxlIHV2X2lvY3VfdGFiOwogCistLSBDaGVjayBVUERBVEUgRk9SIFBP UlRJT04gT0Ygd29ya3MgY29ycmVjdGx5CitjcmVhdGUgdGFibGUgdXZfZnBvX3RhYiAoaWQg aW50NHJhbmdlLCB2YWxpZF9hdCB0c3JhbmdlLCBiIGZsb2F0LAorICAgIGNvbnN0cmFpbnQg cGtfdXZfZnBvX3RhYiBwcmltYXJ5IGtleSAoaWQsIHZhbGlkX2F0IHdpdGhvdXQgb3Zlcmxh cHMpKTsKK2luc2VydCBpbnRvIHV2X2Zwb190YWIgdmFsdWVzICgnWzEsMV0nLCAnWzIwMjAt MDEtMDEsIDIwMzAtMDEtMDEpJywgMCk7CitjcmVhdGUgdmlldyB1dl9mcG9fdmlldyBhcwor ICAgIHNlbGVjdCBiLCBiKzEgYXMgYywgdmFsaWRfYXQsIGlkLCAnMi4wJzo6dGV4dCBhcyB0 d28gZnJvbSB1dl9mcG9fdGFiOworCitpbnNlcnQgaW50byB1dl9mcG9fdmlldyAoaWQsIHZh bGlkX2F0LCBiKSB2YWx1ZXMgKCdbMSwxXScsICdbMjAxMC0wMS0wMSwgMjAyMC0wMS0wMSkn LCAxKTsKK3NlbGVjdCAqIGZyb20gdXZfZnBvX3ZpZXc7Cit1cGRhdGUgdXZfZnBvX3ZpZXcg Zm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNS0wMS0wMScgdG8gJzIwMjAtMDEt MDEnIHNldCBiID0gMiB3aGVyZSBpZCA9ICdbMSwxXSc7CitzZWxlY3QgKiBmcm9tIHV2X2Zw b192aWV3OworZGVsZXRlIGZyb20gdXZfZnBvX3ZpZXcgZm9yIHBvcnRpb24gb2YgdmFsaWRf YXQgZnJvbSAnMjAxNy0wMS0wMScgdG8gJzIwMjItMDEtMDEnIHdoZXJlIGlkID0gJ1sxLDFd JzsKK3NlbGVjdCAqIGZyb20gdXZfZnBvX3ZpZXc7CisKIC0tIFRlc3Qgd2hvbGUtcm93IHJl ZmVyZW5jZXMgdG8gdGhlIHZpZXcKIGNyZWF0ZSB0YWJsZSB1dl9pb2N1X3RhYiAoYSBpbnQg dW5pcXVlLCBiIHRleHQpOwogY3JlYXRlIHZpZXcgdXZfaW9jdV92aWV3IGFzCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4IGY3ZGUzODcxMDkz Li4zZjI2YWYyYmNmYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91 dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVy bGFwcy5zcWwKQEAgLTYzMiw2ICs2MzIsMjAgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWwzIChp ZCwgdmFsaWRfYXQsIGlkMiwgbmFtZSkKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0w MS0wMScsICcyMDEwLTAxLTAxJyksICdbNyw4KScsICdmb28nKSwKICAgKCdbMiwzKScsIGRh dGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwxMCknLCAnYmFyJykK IDsKK1VQREFURSB0ZW1wb3JhbDMgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAw MC0wNS0wMScgVE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gbmFtZSB8fCAnMSc7CitV UERBVEUgdGVtcG9yYWwzIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDQt MDEnIFRPICcyMDAwLTA2LTAxJworICBTRVQgbmFtZSA9IG5hbWUgfHwgJzInCisgIFdIRVJF IGlkID0gJ1syLDMpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIGNvbmZsaWN0aW5nIGlkIG9ubHk6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bDMgKGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMKKyAgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJyksICdbOCw5KScsICdmb28zJyk7 CistLSBjb25mbGljdGluZyBpZDIgb25seToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQs IHZhbGlkX2F0LCBpZDIsIG5hbWUpCisgIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZXJhbmdl KCcyMDA1LTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ1s5LDEwKScsICdiYXIzJyk7CiBEUk9Q IFRBQkxFIHRlbXBvcmFsMzsKIAogLS0KQEAgLTY2Nyw5ICs2ODEsMjMgQEAgSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCiAg ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAnb25l JyksCiAgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0wMScp LCAnb25lJyksCiAgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0w MS0wMScpLCAndGhyZWUnKTsKLVNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQg T1JERVIgQlkgaWQsIHZhbGlkX2F0OwotU0VMRUNUICogRlJPTSB0cDEgT1JERVIgQlkgaWQs IHZhbGlkX2F0OwotU0VMRUNUICogRlJPTSB0cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor U0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVk IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQK KyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0xNScgVE8gJzIwMDAt MDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTInCisgIFdIRVJFIGlkID0gJ1sxLDIpJzsKK1VQ REFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAtMDItMjUnCisgIFNFVCBpZCA9ICdbNCw1KScK KyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRpb25lZAor ICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBUTyAnMjAwMy0w MS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJworICBXSEVSRSBuYW1lID0gJ3RocmVlJzsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBXSEVSRSBpZCA9ICdb Myw0KSc7CitTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZDsKIAogLS0gdGVtcG9yYWwgVU5JUVVFOgpAQCAtNjg1LDkgKzcxMywyMyBA QCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoaWQsIHZhbGlkX2F0LCBuYW1l KSBWQUxVRVMKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAy LTAxJyksICdvbmUnKSwKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcy MDAwLTAzLTAxJyksICdvbmUnKSwKICAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0w MScsICcyMDEwLTAxLTAxJyksICd0aHJlZScpOwotU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Ci1TRUxFQ1QgKiBGUk9NIHRwMSBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7Ci1TRUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CitTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworVVBEQVRFICB0ZW1wb3JhbF9w YXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAxLTE1 JyBUTyAnMjAwMC0wMi0xNScKKyAgU0VUIG5hbWUgPSAnb25lMicKKyAgV0hFUkUgaWQgPSAn WzEsMiknOworVVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDAwLTAyLTIwJyBUTyAnMjAwMC0wMi0yNScKKyAgU0VUIGlk ID0gJ1s0LDUpJworICBXSEVSRSBuYW1lID0gJ29uZSc7CitVUERBVEUgIHRlbXBvcmFsX3Bh cnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDItMDEtMDEn IFRPICcyMDAzLTAxLTAxJworICBTRVQgaWQgPSAnWzIsMyknCisgIFdIRVJFIG5hbWUgPSAn dGhyZWUnOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0xNScgVE8gJzIwMDAtMDItMTUnCisgIFdI RVJFIGlkID0gJ1szLDQpJzsKK1NFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3MsICogRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBEUk9QIFRBQkxF IHRlbXBvcmFsX3BhcnRpdGlvbmVkOwogCiAtLSBBTFRFUiBUQUJMRSBSRVBMSUNBIElERU5U SVRZCkBAIC0xMjkxLDYgKzEzMzMsMTggQEAgQ09NTUlUOwogLS0gY2hhbmdpbmcgdGhlIHNj YWxhciBwYXJ0IGZhaWxzOgogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCkn CiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKTsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0 IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9ICdbNyw4KScK K1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgor VVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9 ICdbNSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1 LDYpJywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQg dGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKQEAgLTEz NjgsNiArMTQyMiwxOCBAQCBST0xMQkFDSzsKIC0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFy dCBmYWlsczoKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJyk7CistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5 OgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBp ZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0 ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUn IFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNikn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdb Nyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf Zmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1l IFBLIHVwZGF0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzMsNCknOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC0xNDAzLDkgKzE0 NjksMjIgQEAgQkVHSU47CiAKICAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpOwogQ09NTUlUOworLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQg aXMgb2theToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBpZCA9ICdb NSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYp JywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScg VE8gJzIwMTgtMDEtMTAnCitXSEVSRSBpZCA9ICdbNSw2KSc7CiAtLSB0aGVuIGRlbGV0ZSB0 aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRz OgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7 CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLSBjbGVh biB1cDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgcGFyZW50X2lk ID0gJ1s1LDYpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBJTiAoJ1s1 LDYpJyk7CiAKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVApA QCAtMTQzNCwxMiArMTUxMywyNSBAQCBCRUdJTjsKICAgICBERUZFUlJBQkxFIElOSVRJQUxM WSBERUZFUlJFRDsKICAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpOwogUk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBv a2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDYp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAn WzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9y YWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAn MjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDYpJzsKIC0tIHRoZW4gZGVsZXRlIHRoZSBv YmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERF TEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0tIGNsZWFuIHVw OgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAn WzUsNiknOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNikn KTsKIAogLS0KLS0tIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCistLSBybmcycm5n IHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCiAtLQogCiAtLSB0ZXN0IEZLIHJlZmVy ZW5jZWQgdXBkYXRlcyBDQVNDQURFCkBAIC0xODA0LDYgKzE4OTYsMjAgQEAgQ09NTUlUOwog LS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgogVVBEQVRFIHRlbXBvcmFsX21s dHJuZyBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSk7CistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRF IHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAxLTAzJykpKQorU0VUIGlkID0g J1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQg ZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAn KSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSB0aGVuIGRl bGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1 Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScK K1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIAogLS0KIC0tIHRlc3QgRksg cmVmZXJlbmNlZCB1cGRhdGVzIFJFU1RSSUNUCkBAIC0xODc4LDYgKzE5ODQsMjAgQEAgUk9M TEJBQ0s7CiAtLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CiBVUERBVEUgdGVt cG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQg dmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpKTsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitT RVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0 IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAx OC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0t IHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1 cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0g J1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwogCiAtLQogLS0g dGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCkBAIC0xOTA5LDYgKzIwMjks MTcgQEAgQkVHSU47CiAKICAgREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIENPTU1JVDsKKy0tIGRlbGV0aW5nIGFuIHVu cmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDInLCAnMjAxOC0wMS0wMycpKSkKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRl bGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSB0 aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVs ZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwogCiAtLQogLS0gdGVzdCBGSyByZWZlcmVu Y2VkIGRlbGV0ZXMgUkVTVFJJQ1QKQEAgLTE5MzgsNiArMjA2OSwxNyBAQCBCRUdJTjsKIAog ICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2 YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJykpOwogUk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFy dCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIw MTgtMDEtMDMnKSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBqdXN0IGEg cGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcy MDE4LTAxLTEwJykpKQorV0hFUkUgaWQgPSAnWzUsNiknOworLS0gdGhlbiBkZWxldGUgdGhl IG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzMs NCknOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpKTsKIAogLS0KIC0tIEZLIGJldHdlZW4gcGFydGl0aW9uZWQgdGFibGVz OiByYW5nZXMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNF90ZW1w b3JhbC5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNF90ZW1wb3JhbC5wbAppbmRl eCBiZmYzYjVhYTBlMy4uOTk0Y2Q4OGEyMzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNj cmlwdGlvbi90LzAzNF90ZW1wb3JhbC5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24v dC8wMzRfdGVtcG9yYWwucGwKQEAgLTExNCw2ICsxMTQsMTIgQEAgaXMoICRzdGRlcnIsCiAJ cXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IHVwZGF0ZSB0YWJsZSAidGVtcG9y YWxfbm9fa2V5IiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5 IGFuZCBwdWJsaXNoZXMgdXBkYXRlcwogSElOVDogIFRvIGVuYWJsZSB1cGRhdGluZyB0aGUg dGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCiAJImNh bid0IFVQREFURSB0ZW1wb3JhbF9ub19rZXkgREVGQVVMVCIpOworKCRyZXN1bHQsICRzdGRv dXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIlVQ REFURSB0ZW1wb3JhbF9ub19rZXkgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAw MS0wMS0wMScgVE8gJzIwMDItMDEtMDEnIFNFVCBhID0gJ2MnIFdIRVJFIGlkID0gJ1syLDMp JyIpOworaXMoICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90 IHVwZGF0ZSB0YWJsZSAidGVtcG9yYWxfbm9fa2V5IiBiZWNhdXNlIGl0IGRvZXMgbm90IGhh dmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRlcworSElOVDogIFRv IGVuYWJsZSB1cGRhdGluZyB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5n IEFMVEVSIFRBQkxFLiksCisJImNhbid0IFVQREFURSBGT1IgUE9SVElPTiBPRiB0ZW1wb3Jh bF9ub19rZXkgREVGQVVMVCIpOwogCiAoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAk bm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKIAkiREVMRVRFIEZST00gdGVtcG9y YWxfbm9fa2V5IFdIRVJFIGlkID0gJ1szLDQpJyIpOwpAQCAtMTIxLDYgKzEyNywxMiBAQCBp cyggJHN0ZGVyciwKIAlxcShwc3FsOjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgZGVsZXRl IGZyb20gdGFibGUgInRlbXBvcmFsX25vX2tleSIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZl IGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlzaGVzIGRlbGV0ZXMKIEhJTlQ6ICBUbyBl bmFibGUgZGVsZXRpbmcgZnJvbSB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVz aW5nIEFMVEVSIFRBQkxFLiksCiAJImNhbid0IERFTEVURSB0ZW1wb3JhbF9ub19rZXkgREVG QVVMVCIpOworKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVy LT5wc3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX25vX2tleSBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBUTyAnMjAwMy0wMS0wMScg V0hFUkUgaWQgPSAnWzIsMyknIik7CitpcyggJHN0ZGVyciwKKwlxcShwc3FsOjxzdGRpbj46 MTogRVJST1I6ICBjYW5ub3QgZGVsZXRlIGZyb20gdGFibGUgInRlbXBvcmFsX25vX2tleSIg YmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlz aGVzIGRlbGV0ZXMKK0hJTlQ6ICBUbyBlbmFibGUgZGVsZXRpbmcgZnJvbSB0aGUgdGFibGUs IHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCisJImNhbid0IERF TEVURSBGT1IgUE9SVElPTiBPRiB0ZW1wb3JhbF9ub19rZXkgREVGQVVMVCIpOwogCiAkbm9k ZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKIApAQCAtMTQyLDE2ICsx NTQsMjIgQEAgJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAKICRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlVQREFURSB0ZW1wb3JhbF9wayBTRVQgYSA9 ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIlVQREFURSB0ZW1wb3JhbF9wayBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDAxLTAxLTAxJyBUTyAnMjAwMi0wMS0wMScgU0VUIGEgPSAnYycgV0hF UkUgaWQgPSAnWzIsMyknIik7CiAKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCiAJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3BrIFdIRVJFIGlkID0gJ1szLDQpJyIp OworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiREVMRVRFIEZS T00gdGVtcG9yYWxfcGsgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0wMS0w MScgVE8gJzIwMDMtMDEtMDEnIFdIRVJFIGlkID0gJ1syLDMpJyIpOwogCiAkbm9kZV9wdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKIAogJHJlc3VsdCA9ICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BrIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOwogaXMoICRyZXN1bHQsIHFxe1sxLDIp fFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKLVsyLDMpfFsyMDAwLTAxLTAxLDIwMTAtMDEt MDEpfGIKK1syLDMpfFsyMDAwLTAxLTAxLDIwMDEtMDEtMDEpfGIKK1syLDMpfFsyMDAxLTAx LTAxLDIwMDItMDEtMDEpfGMKK1syLDMpfFsyMDAzLTAxLTAxLDIwMTAtMDEtMDEpfGIKIFs0 LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVwbGljYXRlZCB0ZW1wb3JhbF9w ayBERUZBVUxUJyk7CiAKICMgcmVwbGljYXRlIHdpdGggYSB1bmlxdWUga2V5OgpAQCAtMTY5 LDYgKzE4NywxMiBAQCBpcyggJHN0ZGVyciwKIAlxcShwc3FsOjxzdGRpbj46MTogRVJST1I6 ICBjYW5ub3QgdXBkYXRlIHRhYmxlICJ0ZW1wb3JhbF91bmlxdWUiIGJlY2F1c2UgaXQgZG9l cyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyB1cGRhdGVzCiBI SU5UOiAgVG8gZW5hYmxlIHVwZGF0aW5nIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJ VFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKIAkiY2FuJ3QgVVBEQVRFIHRlbXBvcmFsX3VuaXF1 ZSBERUZBVUxUIik7CisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJs aXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRlbXBvcmFsX3VuaXF1ZSBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAxLTAxLTAxJyBUTyAnMjAwMi0wMS0wMScg U0VUIGEgPSAnYycgV0hFUkUgaWQgPSAnWzIsMyknIik7CitpcyggJHN0ZGVyciwKKwlxcShw c3FsOjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgdXBkYXRlIHRhYmxlICJ0ZW1wb3JhbF91 bmlxdWUiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5k IHB1Ymxpc2hlcyB1cGRhdGVzCitISU5UOiAgVG8gZW5hYmxlIHVwZGF0aW5nIHRoZSB0YWJs ZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKKwkiY2FuJ3Qg VVBEQVRFIEZPUiBQT1JUSU9OIE9GIHRlbXBvcmFsX3VuaXF1ZSBERUZBVUxUIik7CiAKICgk cmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlX3B1Ymxpc2hlci0+cHNxbCgncG9z dGdyZXMnLAogCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF91bmlxdWUgV0hFUkUgaWQgPSAnWzMs NCknIik7CkBAIC0xNzYsNiArMjAwLDEyIEBAIGlzKCAkc3RkZXJyLAogCXFxKHBzcWw6PHN0 ZGluPjoxOiBFUlJPUjogIGNhbm5vdCBkZWxldGUgZnJvbSB0YWJsZSAidGVtcG9yYWxfdW5p cXVlIiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBw dWJsaXNoZXMgZGVsZXRlcwogSElOVDogIFRvIGVuYWJsZSBkZWxldGluZyBmcm9tIHRoZSB0 YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKIAkiY2Fu J3QgREVMRVRFIHRlbXBvcmFsX3VuaXF1ZSBERUZBVUxUIik7CisoJHJlc3VsdCwgJHN0ZG91 dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiREVM RVRFIEZST00gdGVtcG9yYWxfdW5pcXVlIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMDItMDEtMDEnIFRPICcyMDAzLTAxLTAxJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKK2lz KCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCBkZWxldGUg ZnJvbSB0YWJsZSAidGVtcG9yYWxfdW5pcXVlIiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUg YSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgZGVsZXRlcworSElOVDogIFRvIGVu YWJsZSBkZWxldGluZyBmcm9tIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNp bmcgQUxURVIgVEFCTEUuKSwKKwkiY2FuJ3QgREVMRVRFIEZPUiBQT1JUSU9OIE9GIHRlbXBv cmFsX3VuaXF1ZSBERUZBVUxUIik7CiAKICRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0 Y2h1cCgnc3ViMScpOwogCkBAIC0yOTEsMTYgKzMyMSwyMiBAQCAkbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgKIAogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK IAkiVVBEQVRFIHRlbXBvcmFsX25vX2tleSBTRVQgYSA9ICdiJyBXSEVSRSBpZCA9ICdbMiwz KSciKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFU RSB0ZW1wb3JhbF9ub19rZXkgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMS0w MS0wMScgVE8gJzIwMDItMDEtMDEnIFNFVCBhID0gJ2MnIFdIRVJFIGlkID0gJ1syLDMpJyIp OwogCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJERUxFVEUg RlJPTSB0ZW1wb3JhbF9ub19rZXkgV0hFUkUgaWQgPSAnWzMsNCknIik7Ciskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF9u b19rZXkgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0wMS0wMScgVE8gJzIw MDMtMDEtMDEnIFdIRVJFIGlkID0gJ1syLDMpJyIpOwogCiAkbm9kZV9wdWJsaXNoZXItPndh aXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKIAogJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX25vX2tl eSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQiKTsKIGlzKCAkcmVzdWx0LCBxcXtbMSwyKXxbMjAw MC0wMS0wMSwyMDEwLTAxLTAxKXxhCi1bMiwzKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxi CitbMiwzKXxbMjAwMC0wMS0wMSwyMDAxLTAxLTAxKXxiCitbMiwzKXxbMjAwMS0wMS0wMSwy MDAyLTAxLTAxKXxjCitbMiwzKXxbMjAwMy0wMS0wMSwyMDEwLTAxLTAxKXxiCiBbNCw1KXxb MjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwgJ3JlcGxpY2F0ZWQgdGVtcG9yYWxfbm9fa2V5 IEZVTEwnKTsKIAogIyByZXBsaWNhdGUgd2l0aCBhIHByaW1hcnkga2V5OgpAQCAtMzE0LDE2 ICszNTAsMjIgQEAgJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAKICRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlVQREFURSB0ZW1wb3JhbF9wayBTRVQg YSA9ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIlVQREFURSB0ZW1wb3JhbF9wayBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDAxLTAxLTAxJyBUTyAnMjAwMi0wMS0wMScgU0VUIGEgPSAnYycg V0hFUkUgaWQgPSAnWzIsMyknIik7CiAKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCiAJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3BrIFdIRVJFIGlkID0gJ1szLDQp JyIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiREVMRVRF IEZST00gdGVtcG9yYWxfcGsgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0w MS0wMScgVE8gJzIwMDMtMDEtMDEnIFdIRVJFIGlkID0gJ1syLDMpJyIpOwogCiAkbm9kZV9w dWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKIAogJHJlc3VsdCA9ICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BrIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOwogaXMoICRyZXN1bHQsIHFxe1sx LDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKLVsyLDMpfFsyMDAwLTAxLTAxLDIwMTAt MDEtMDEpfGIKK1syLDMpfFsyMDAwLTAxLTAxLDIwMDEtMDEtMDEpfGIKK1syLDMpfFsyMDAx LTAxLTAxLDIwMDItMDEtMDEpfGMKK1syLDMpfFsyMDAzLTAxLTAxLDIwMTAtMDEtMDEpfGIK IFs0LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVwbGljYXRlZCB0ZW1wb3Jh bF9wayBGVUxMJyk7CiAKICMgcmVwbGljYXRlIHdpdGggYSB1bmlxdWUga2V5OgpAQCAtMzM3 LDE3ICszNzksMjMgQEAgJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAKICRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlVQREFURSB0ZW1wb3JhbF91bmlx dWUgU0VUIGEgPSAnYicgV0hFUkUgaWQgPSAnWzIsMyknIik7Ciskbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfdW5pcXVlIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDEtMDEtMDEnIFRPICcyMDAyLTAxLTAxJyBT RVQgYSA9ICdjJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKIAogJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiREVMRVRFIEZST00gdGVtcG9yYWxfdW5pcXVlIFdI RVJFIGlkID0gJ1szLDQpJyIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiREVMRVRFIEZST00gdGVtcG9yYWxfdW5pcXVlIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcyMDAzLTAxLTAxJyBXSEVSRSBpZCA9ICdb MiwzKSciKTsKIAogJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzdWIxJyk7 CiAKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK IAkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF91bmlxdWUgT1JERVIgQlkgaWQsIHZhbGlkX2F0 Iik7CiBpcyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQot WzIsMyl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YgotWzQsNSl8WzIwMDAtMDEtMDEsMjAx MC0wMS0wMSl8YX0sICdyZXBsaWNhdGVkIHRlbXBvcmFsX3VuaXF1ZSBGVUxMJyk7CitbMiwz KXxbMjAwMC0wMS0wMSwyMDAxLTAxLTAxKXxiCitbMiwzKXxbMjAwMS0wMS0wMSwyMDAyLTAx LTAxKXxjCitbMiwzKXxbMjAwMy0wMS0wMSwyMDEwLTAxLTAxKXxiCitbNCw1KXxbMjAwMC0w MS0wMSwyMDEwLTAxLTAxKXxhfSwgJ3JlcGxpY2F0ZWQgdGVtcG9yYWxfdW5pcXVlIERFRkFV TFQnKTsKIAogIyBjbGVhbnVwCiAKQEAgLTQzNiwxNiArNDg0LDIyIEBAICRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKAogCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAogCSJVUERBVEUgdGVtcG9yYWxfcGsgU0VUIGEgPSAnYicgV0hFUkUgaWQgPSAnWzIs MyknIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJVUERB VEUgdGVtcG9yYWxfcGsgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMS0wMS0w MScgVE8gJzIwMDItMDEtMDEnIFNFVCBhID0gJ2MnIFdIRVJFIGlkID0gJ1syLDMpJyIpOwog CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJERUxFVEUgRlJP TSB0ZW1wb3JhbF9wayBXSEVSRSBpZCA9ICdbMyw0KSciKTsKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3BrIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcyMDAzLTAxLTAxJyBX SEVSRSBpZCA9ICdbMiwzKSciKTsKIAogJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRj aHVwKCdzdWIxJyk7CiAKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKIAkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wayBPUkRFUiBCWSBpZCwg dmFsaWRfYXQiKTsKIGlzKCAkcmVzdWx0LCBxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAx LTAxKXxhCi1bMiwzKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxiCitbMiwzKXxbMjAwMC0w MS0wMSwyMDAxLTAxLTAxKXxiCitbMiwzKXxbMjAwMS0wMS0wMSwyMDAyLTAxLTAxKXxjCitb MiwzKXxbMjAwMy0wMS0wMSwyMDEwLTAxLTAxKXxiCiBbNCw1KXxbMjAwMC0wMS0wMSwyMDEw LTAxLTAxKXxhfSwgJ3JlcGxpY2F0ZWQgdGVtcG9yYWxfcGsgVVNJTkcgSU5ERVgnKTsKIAog IyByZXBsaWNhdGUgd2l0aCBhIHVuaXF1ZSBrZXk6CkBAIC00NTksMTYgKzUxMywyMiBAQCAk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKIAogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKIAkiVVBEQVRFIHRlbXBvcmFsX3VuaXF1ZSBTRVQgYSA9ICdiJyBX SEVSRSBpZCA9ICdbMiwzKSciKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIlVQREFURSB0ZW1wb3JhbF91bmlxdWUgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAwMS0wMS0wMScgVE8gJzIwMDItMDEtMDEnIFNFVCBhID0gJ2MnIFdIRVJF IGlkID0gJ1syLDMpJyIpOwogCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAogCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF91bmlxdWUgV0hFUkUgaWQgPSAnWzMsNCkn Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJERUxFVEUg RlJPTSB0ZW1wb3JhbF91bmlxdWUgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAw Mi0wMS0wMScgVE8gJzIwMDMtMDEtMDEnIFdIRVJFIGlkID0gJ1syLDMpJyIpOwogCiAkbm9k ZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKIAogJHJlc3VsdCA9ICRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3VuaXF1ZSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQiKTsKIGlzKCAkcmVzdWx0 LCBxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhCi1bMiwzKXxbMjAwMC0wMS0w MSwyMDEwLTAxLTAxKXxiCitbMiwzKXxbMjAwMC0wMS0wMSwyMDAxLTAxLTAxKXxiCitbMiwz KXxbMjAwMS0wMS0wMSwyMDAyLTAxLTAxKXxjCitbMiwzKXxbMjAwMy0wMS0wMSwyMDEwLTAx LTAxKXxiCiBbNCw1KXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwgJ3JlcGxpY2F0ZWQg dGVtcG9yYWxfdW5pcXVlIFVTSU5HIElOREVYJyk7CiAKICMgY2xlYW51cApAQCAtNTc5LDYg KzYzOSwxMiBAQCBpcyggJHN0ZGVyciwKIAlxcShwc3FsOjxzdGRpbj46MTogRVJST1I6ICBj YW5ub3QgdXBkYXRlIHRhYmxlICJ0ZW1wb3JhbF9ub19rZXkiIGJlY2F1c2UgaXQgZG9lcyBu b3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyB1cGRhdGVzCiBISU5U OiAgVG8gZW5hYmxlIHVwZGF0aW5nIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkg dXNpbmcgQUxURVIgVEFCTEUuKSwKIAkiY2FuJ3QgVVBEQVRFIHRlbXBvcmFsX25vX2tleSBO T1RISU5HIik7CisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNo ZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRlbXBvcmFsX25vX2tleSBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAxLTAxLTAxJyBUTyAnMjAwMi0wMS0wMScgU0VU IGEgPSAnYycgV0hFUkUgaWQgPSAnWzIsMyknIik7CitpcyggJHN0ZGVyciwKKwlxcShwc3Fs OjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgdXBkYXRlIHRhYmxlICJ0ZW1wb3JhbF9ub19r ZXkiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1 Ymxpc2hlcyB1cGRhdGVzCitISU5UOiAgVG8gZW5hYmxlIHVwZGF0aW5nIHRoZSB0YWJsZSwg c2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKKwkiY2FuJ3QgVVBE QVRFIHRlbXBvcmFsX25vX2tleSBOT1RISU5HIik7CiAKICgkcmVzdWx0LCAkc3Rkb3V0LCAk c3RkZXJyKSA9ICRub2RlX3B1Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMnLAogCSJERUxFVEUg RlJPTSB0ZW1wb3JhbF9ub19rZXkgV0hFUkUgaWQgPSAnWzMsNCknIik7CkBAIC01ODYsNiAr NjUyLDEyIEBAIGlzKCAkc3RkZXJyLAogCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNh bm5vdCBkZWxldGUgZnJvbSB0YWJsZSAidGVtcG9yYWxfbm9fa2V5IiBiZWNhdXNlIGl0IGRv ZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgZGVsZXRlcwog SElOVDogIFRvIGVuYWJsZSBkZWxldGluZyBmcm9tIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0Eg SURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKIAkiY2FuJ3QgREVMRVRFIHRlbXBvcmFs X25vX2tleSBOT1RISU5HIik7CisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9k ZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiREVMRVRFIEZST00gdGVtcG9yYWxf bm9fa2V5IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcy MDAzLTAxLTAxJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBz cWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCBkZWxldGUgZnJvbSB0YWJsZSAidGVtcG9y YWxfbm9fa2V5IiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5 IGFuZCBwdWJsaXNoZXMgZGVsZXRlcworSElOVDogIFRvIGVuYWJsZSBkZWxldGluZyBmcm9t IHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwK KwkiY2FuJ3QgREVMRVRFIHRlbXBvcmFsX25vX2tleSBOT1RISU5HIik7CiAKICRub2RlX3B1 Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOwogCkBAIC02MTEsNiArNjgzLDEy IEBAIGlzKCAkc3RkZXJyLAogCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCB1 cGRhdGUgdGFibGUgInRlbXBvcmFsX3BrIiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSBy ZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRlcwogSElOVDogIFRvIGVuYWJs ZSB1cGRhdGluZyB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVS IFRBQkxFLiksCiAJImNhbid0IFVQREFURSB0ZW1wb3JhbF9wayBOT1RISU5HIik7CisoJHJl c3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3Rn cmVzJywKKwkiVVBEQVRFIHRlbXBvcmFsX3BrIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMDEtMDEtMDEnIFRPICcyMDAyLTAxLTAxJyBTRVQgYSA9ICdjJyBXSEVSRSBpZCA9 ICdbMiwzKSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjog IGNhbm5vdCB1cGRhdGUgdGFibGUgInRlbXBvcmFsX3BrIiBiZWNhdXNlIGl0IGRvZXMgbm90 IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRlcworSElOVDog IFRvIGVuYWJsZSB1cGRhdGluZyB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVz aW5nIEFMVEVSIFRBQkxFLiksCisJImNhbid0IFVQREFURSB0ZW1wb3JhbF9wayBOT1RISU5H Iik7CiAKICgkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlX3B1Ymxpc2hlci0+ cHNxbCgncG9zdGdyZXMnLAogCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF9wayBXSEVSRSBpZCA9 ICdbMyw0KSciKTsKQEAgLTYxOCw2ICs2OTYsMTIgQEAgaXMoICRzdGRlcnIsCiAJcXEocHNx bDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IGRlbGV0ZSBmcm9tIHRhYmxlICJ0ZW1wb3Jh bF9wayIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQg cHVibGlzaGVzIGRlbGV0ZXMKIEhJTlQ6ICBUbyBlbmFibGUgZGVsZXRpbmcgZnJvbSB0aGUg dGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCiAJImNh bid0IERFTEVURSB0ZW1wb3JhbF9wayBOT1RISU5HIik7CisoJHJlc3VsdCwgJHN0ZG91dCwg JHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiREVMRVRF IEZST00gdGVtcG9yYWxfcGsgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0w MS0wMScgVE8gJzIwMDMtMDEtMDEnIFdIRVJFIGlkID0gJ1syLDMpJyIpOworaXMoICRzdGRl cnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IGRlbGV0ZSBmcm9tIHRh YmxlICJ0ZW1wb3JhbF9wayIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBp ZGVudGl0eSBhbmQgcHVibGlzaGVzIGRlbGV0ZXMKK0hJTlQ6ICBUbyBlbmFibGUgZGVsZXRp bmcgZnJvbSB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRB QkxFLiksCisJImNhbid0IERFTEVURSB0ZW1wb3JhbF9wayBOT1RISU5HIik7CiAKICRub2Rl X3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOwogCkBAIC02NDMsNiArNzI3 LDEyIEBAIGlzKCAkc3RkZXJyLAogCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5v dCB1cGRhdGUgdGFibGUgInRlbXBvcmFsX3VuaXF1ZSIgYmVjYXVzZSBpdCBkb2VzIG5vdCBo YXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlzaGVzIHVwZGF0ZXMKIEhJTlQ6ICBU byBlbmFibGUgdXBkYXRpbmcgdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2lu ZyBBTFRFUiBUQUJMRS4pLAogCSJjYW4ndCBVUERBVEUgdGVtcG9yYWxfdW5pcXVlIE5PVEhJ TkciKTsKKygkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlX3B1Ymxpc2hlci0+ cHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfdW5pcXVlIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMDEtMDEtMDEnIFRPICcyMDAyLTAxLTAxJyBTRVQgYSA9 ICdjJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0 ZGluPjoxOiBFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFibGUgInRlbXBvcmFsX3VuaXF1ZSIg YmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlz aGVzIHVwZGF0ZXMKK0hJTlQ6ICBUbyBlbmFibGUgdXBkYXRpbmcgdGhlIHRhYmxlLCBzZXQg UkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4ndCBVUERBVEUg Rk9SIFBPUlRJT04gT0YgdGVtcG9yYWxfdW5pcXVlIE5PVEhJTkciKTsKIAogKCRyZXN1bHQs ICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0Z3Jlcycs CiAJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3VuaXF1ZSBXSEVSRSBpZCA9ICdbMyw0KSciKTsK QEAgLTY1MCw2ICs3NDAsMTIgQEAgaXMoICRzdGRlcnIsCiAJcXEocHNxbDo8c3RkaW4+OjE6 IEVSUk9SOiAgY2Fubm90IGRlbGV0ZSBmcm9tIHRhYmxlICJ0ZW1wb3JhbF91bmlxdWUiIGJl Y2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hl cyBkZWxldGVzCiBISU5UOiAgVG8gZW5hYmxlIGRlbGV0aW5nIGZyb20gdGhlIHRhYmxlLCBz ZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAogCSJjYW4ndCBERUxF VEUgdGVtcG9yYWxfdW5pcXVlIE5PVEhJTkciKTsKKygkcmVzdWx0LCAkc3Rkb3V0LCAkc3Rk ZXJyKSA9ICRub2RlX3B1Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMnLAorCSJERUxFVEUgRlJP TSB0ZW1wb3JhbF91bmlxdWUgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0w MS0wMScgVE8gJzIwMDMtMDEtMDEnIFdIRVJFIGlkID0gJ1syLDMpJyIpOworaXMoICRzdGRl cnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IGRlbGV0ZSBmcm9tIHRh YmxlICJ0ZW1wb3JhbF91bmlxdWUiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxp Y2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyBkZWxldGVzCitISU5UOiAgVG8gZW5hYmxlIGRl bGV0aW5nIGZyb20gdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRF UiBUQUJMRS4pLAorCSJjYW4ndCBERUxFVEUgRk9SIFBPUlRJT04gT0YgdGVtcG9yYWxfdW5p cXVlIE5PVEhJTkciKTsKIAogJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdz dWIxJyk7CiAKLS0gCjIuNDIuMAoK --------------OnvqRywVNIjsiZuvTo32rvFz Content-Type: text/x-patch; charset=UTF-8; name="v45-0007-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.patch" Content-Disposition: attachment; filename*0="v45-0007-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA5ZTMyMTY1MzhkMDNlN2VlZDk0ZTMwMTBkMjVkYzkyMGJjMzg2ZWJiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMyBKdW4gMjAyMyAyMTo0MToxMSAtMDQw MApTdWJqZWN0OiBbUEFUQ0ggdjQ1IDcvOF0gQWRkIENBU0NBREUvU0VUIE5VTEwvU0VUIERF RkFVTFQgZm9yIHRlbXBvcmFsIGZvcmVpZ24KIGtleXMKCi0tLQogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgICAxNCArLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19jb25zdHJhaW50LmMgICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgIDc3ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYyAgICAgICAgICAgfCAgNTU4ICsrKysrLQog c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICAyMiAr CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2J0cmVlX2luZGV4Lm91dCAgICAgfCAgIDE4 ICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCAgICAgfCAx NjQyICsrKysrKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292 ZXJsYXBzLnNxbCAgICAgfCAgOTIxICsrKysrKysrLQogOCBmaWxlcyBjaGFuZ2VkLCAzMTY3 IGluc2VydGlvbnMoKyksIDk1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90 YWJsZS5zZ21sCmluZGV4IDFhMWFkYzVhZTg3Li5lYTg0OWM4MjIxNyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC0xMjg5LDcgKzEyODksOSBAQCBXSVRIICggTU9E VUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9y ZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAgPC9wYXJhPgogCiAgICAgICAgICA8cGFyYT4K LSAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlvbiBpcyBu b3Qgc3VwcG9ydGVkLgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXksIHRo ZSBkZWxldGUvdXBkYXRlIHdpbGwgdXNlCisgICAgICAgICAgPGxpdGVyYWw+Rk9SIFBPUlRJ T04gT0Y8L2xpdGVyYWw+IHNlbWFudGljcyB0byBjb25zdHJhaW4gdGhlCisgICAgICAgICAg ZWZmZWN0IHRvIHRoZSBib3VuZHMgYmVpbmcgZGVsZXRlZC91cGRhdGVkIGluIHRoZSByZWZl cmVuY2VkIHJvdy4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAg ICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTEzMDQsNyArMTMwNiwxMCBAQCBXSVRIICggTU9E VUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9y ZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAgPC9wYXJhPgogCiAgICAgICAgICA8cGFyYT4K LSAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlvbiBpcyBu b3Qgc3VwcG9ydGVkLgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXksIHRo ZSBjaGFuZ2Ugd2lsbCB1c2UgPGxpdGVyYWw+Rk9SIFBPUlRJT04KKyAgICAgICAgICBPRjwv bGl0ZXJhbD4gc2VtYW50aWNzIHRvIGNvbnN0cmFpbiB0aGUgZWZmZWN0IHRvIHRoZSBib3Vu ZHMgYmVpbmcKKyAgICAgICAgICBkZWxldGVkL3VwZGF0ZWQgaW4gdGhlIHJlZmVyZW5jZWQg cm93LiBUaGUgY29sdW1uIG1ha2VkIHdpdGgKKyAgICAgICAgICA8bGl0ZXJhbD5QRVJJT0Q8 L2xpdGVyYWw+IHdpbGwgbm90IGJlIHNldCB0byBudWxsLgogICAgICAgICAgPC9wYXJhPgog ICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMTMyMSw3 ICsxMzI2LDEwIEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICAgICA8L3Bh cmE+CiAKICAgICAgICAgIDxwYXJhPgotICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWln biBrZXksIHRoaXMgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICAgSW4gYSB0 ZW1wb3JhbCBmb3JlaWduIGtleSwgdGhlIGNoYW5nZSB3aWxsIHVzZSA8bGl0ZXJhbD5GT1Ig UE9SVElPTgorICAgICAgICAgIE9GPC9saXRlcmFsPiBzZW1hbnRpY3MgdG8gY29uc3RyYWlu IHRoZSBlZmZlY3QgdG8gdGhlIGJvdW5kcyBiZWluZworICAgICAgICAgIGRlbGV0ZWQvdXBk YXRlZCBpbiB0aGUgcmVmZXJlbmNlZCByb3cuIFRoZSBjb2x1bW4gbWFya2VkIHdpdGgKKyAg ICAgICAgICA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+IHdpdGggbm90IGJlIHNldCB0byBh IGRlZmF1bHQgdmFsdWUuCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWlu dC5jCmluZGV4IGM0NzRjMDhiODY4Li43NTcxNDAxZDgwNCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19jb25zdHJhaW50LmMKQEAgLTE2MTEsNiArMTYxMSw4IEBAIERlY29uc3RydWN0RmtD b25zdHJhaW50Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1ma3MsCiAgKiBUaGF0IHdh eSBmb3JlaWduIGtleXMgY2FuIGNvbXBhcmUgZmthdHRyIDxAIHJhbmdlX2FnZyhwa2F0dHIp LgogICogaW50ZXJzZWN0b3Blcm9pZCBpcyB1c2VkIGJ5IE5PIEFDVElPTiBjb25zdHJhaW50 cyB0byB0cmltIHRoZSByYW5nZSBiZWluZyBjb25zaWRlcmVkCiAgKiB0byBqdXN0IHdoYXQg d2FzIHVwZGF0ZWQvZGVsZXRlZC4KKyAqIGludGVyc2VjdHByb2NvaWQgaXMgdXNlZCB0byBs aW1pdCB0aGUgZWZmZWN0IG9mIENBU0NBREUvU0VUIE5VTEwvU0VUIERFRkFVTFQKKyAqIHdo ZW4gdGhlIFBLIHJlY29yZCBpcyBjaGFuZ2VkIHdpdGggRk9SIFBPUlRJT04gT0YuCiAgKiB3 aXRob3V0cG9ydGlvbm9pZCBpcyBhIHNldC1yZXR1cm5pbmcgZnVuY3Rpb24gY29tcHV0aW5n CiAgKiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIG9uZSByYW5nZSBhbmQgYW5vdGhlciwKICAq IHJldHVybmluZyBlYWNoIHJlc3VsdCByYW5nZSBpbiBhIHNlcGFyYXRlIHJvdy4KQEAgLTE2 OTUsNiArMTY5NywxNCBAQCBGaW5kRktQZXJpb2RPcGVyc0FuZFByb2NzKE9pZCBvcGNsYXNz LAogCQkJCWVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGEgd2l0aG91dF9vdmVybGFwcyBz dXBwb3J0IGZ1bmN0aW9uIGZvciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUob3BjaW50eXBl KSksCiAJCQkJZXJyaGludCgiRGVmaW5lIGEgd2l0aG91dF9vdmVybGFwcyBzdXBwb3J0IGZ1 bmN0aW9uIGZvciBvcGVyYXRvciBjbGFzcyBcIiVkXCIgZm9yIGFjY2VzcyBtZXRob2QgXCIl c1wiLiIsCiAJCQkJCQlvcGNsYXNzLCAiZ2lzdCIpKTsKKwkvKgorCSAqIElmIHRoZSBjb21t YW5kIHVzZXMgRk9SIFBPUlRJT04gT0YsCisJICogd2Ugd2lsbCBhbHNvIG5lZWQgYW4gaW50 ZXJzZWN0IHN1cHBvcnQgcHJvYy4KKwkgKiBJZiB0aGlzIGlzIG1pc3Npbmcgd2UgZG9uJ3Qg bmVlZCB0byBjb21wbGFpbiBoZXJlLAorCSAqIGJlY2F1c2UgRk9SIFBPUlRJT04gT0Ygd2ls bCBub3QgYmUgYWxsb3dlZC4KKwkgKi8KKwlpZiAob3BmYW1pbHkgIT0gSW52YWxpZE9pZCAm JiBvcGNpbnR5cGUgIT0gSW52YWxpZE9pZCkKKwkJKmludGVyc2VjdHByb2NvaWQgPSBnZXRf b3BmYW1pbHlfcHJvYyhvcGZhbWlseSwgb3BjaW50eXBlLCBvcGNpbnR5cGUsIEdJU1RfSU5U RVJTRUNUX1BST0MpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRl eCA5NTUxZWVjMzBkYS4uNTkwZmYyYzQyZTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCkBAIC01MTksNyArNTE5LDcgQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgQVRBZGRGb3Jl aWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICoKIAkJ CQkJCQkJCQkJICAgUmVsYXRpb24gcmVsLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQsCiAJ CQkJCQkJCQkJCSAgIGJvb2wgcmVjdXJzZSwgYm9vbCByZWN1cnNpbmcsCiAJCQkJCQkJCQkJ CSAgIExPQ0tNT0RFIGxvY2ttb2RlKTsKLXN0YXRpYyB2b2lkIHZhbGlkYXRlRmtPbkRlbGV0 ZVNldENvbHVtbnMoaW50IG51bWZrcywgY29uc3QgaW50MTYgKmZrYXR0bnVtcywKK3N0YXRp YyB2b2lkIHZhbGlkYXRlRmtPbkRlbGV0ZVNldENvbHVtbnMoaW50IG51bWZrcywgY29uc3Qg aW50MTYgKmZrYXR0bnVtcywgY29uc3QgaW50MTYgZmtwZXJpb2RhdHRudW0sCiAJCQkJCQkJ CQkJIGludCBudW1ma3NldGNvbHMsIGNvbnN0IGludDE2ICpma3NldGNvbHNhdHRudW1zLAog CQkJCQkJCQkJCSBMaXN0ICpma3NldGNvbHMpOwogc3RhdGljIE9iamVjdEFkZHJlc3MgYWRk RmtDb25zdHJhaW50KGFkZEZrQ29uc3RyYWludFNpZGVzIGZrc2lkZSwKQEAgLTk3MTQsNiAr OTcxNCw3IEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0 ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJaW50MTYJCWZrZGVsc2V0Y29s c1tJTkRFWF9NQVhfS0VZU10gPSB7MH07CiAJYm9vbAkJd2l0aF9wZXJpb2Q7CiAJYm9vbAkJ cGtfaGFzX3dpdGhvdXRfb3ZlcmxhcHM7CisJaW50MTYJCWZrcGVyaW9kYXR0bnVtID0gSW52 YWxpZEF0dHJOdW1iZXI7CiAJaW50CQkJaTsKIAlpbnQJCQludW1ma3MsCiAJCQkJbnVtcGtz LApAQCAtOTgwOSwxNSArOTgxMCwxOSBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExp c3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJ CQkJCQkJIGZrY29uc3RyYWludC0+ZmtfYXR0cnMsCiAJCQkJCQkJCQkgZmthdHRudW0sIGZr dHlwb2lkLCBma2NvbGxvaWQpOwogCXdpdGhfcGVyaW9kID0gZmtjb25zdHJhaW50LT5ma193 aXRoX3BlcmlvZCB8fCBma2NvbnN0cmFpbnQtPnBrX3dpdGhfcGVyaW9kOwotCWlmICh3aXRo X3BlcmlvZCAmJiAhZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCkKLQkJZXJlcG9ydChF UlJPUiwKLQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9GT1JFSUdOX0tFWSksCi0JCQkJ ZXJybXNnKCJmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJs ZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZSIpKTsKKwlpZiAod2l0aF9wZXJpb2Qp CisJeworCQlpZiAoIWZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkpLAor CQkJCQllcnJtc2coImZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2Vk IHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlIikpKTsKKwkJZmtwZXJpb2Rh dHRudW0gPSBma2F0dG51bVtudW1ma3MgLSAxXTsKKwl9CiAKIAludW1ma2RlbHNldGNvbHMg PSB0cmFuc2Zvcm1Db2x1bW5OYW1lTGlzdChSZWxhdGlvbkdldFJlbGlkKHJlbCksCiAJCQkJ CQkJCQkJCSAgZmtjb25zdHJhaW50LT5ma19kZWxfc2V0X2NvbHMsCiAJCQkJCQkJCQkJCSAg ZmtkZWxzZXRjb2xzLCBOVUxMLCBOVUxMKTsKLQl2YWxpZGF0ZUZrT25EZWxldGVTZXRDb2x1 bW5zKG51bWZrcywgZmthdHRudW0sCisJdmFsaWRhdGVGa09uRGVsZXRlU2V0Q29sdW1ucyhu dW1ma3MsIGZrYXR0bnVtLCBma3BlcmlvZGF0dG51bSwKIAkJCQkJCQkJIG51bWZrZGVsc2V0 Y29scywgZmtkZWxzZXRjb2xzLAogCQkJCQkJCQkgZmtjb25zdHJhaW50LT5ma19kZWxfc2V0 X2NvbHMpOwogCkBAIC05OTAwLDI4ICs5OTA1LDYgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3Ry YWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJl bCwKIAkJfQogCX0KIAotCS8qCi0JICogU29tZSBhY3Rpb25zIGFyZSBjdXJyZW50bHkgdW5z dXBwb3J0ZWQgZm9yIGZvcmVpZ24ga2V5cyB1c2luZyBQRVJJT0QuCi0JICovCi0JaWYgKGZr Y29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCi0JewotCQlpZiAoZmtjb25zdHJhaW50LT5m a191cGRfYWN0aW9uID09IEZLQ09OU1RSX0FDVElPTl9DQVNDQURFIHx8Ci0JCQlma2NvbnN0 cmFpbnQtPmZrX3VwZF9hY3Rpb24gPT0gRktDT05TVFJfQUNUSU9OX1NFVE5VTEwgfHwKLQkJ CWZrY29uc3RyYWludC0+ZmtfdXBkX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fU0VUREVG QVVMVCkKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAotCQkJCQllcnJtc2coInVuc3VwcG9ydGVkICVzIGFjdGlvbiBm b3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QiLAotCQkJCQkJICAgIk9O IFVQREFURSIpKTsKLQotCQlpZiAoZmtjb25zdHJhaW50LT5ma19kZWxfYWN0aW9uID09IEZL Q09OU1RSX0FDVElPTl9DQVNDQURFIHx8Ci0JCQlma2NvbnN0cmFpbnQtPmZrX2RlbF9hY3Rp b24gPT0gRktDT05TVFJfQUNUSU9OX1NFVE5VTEwgfHwKLQkJCWZrY29uc3RyYWludC0+Zmtf ZGVsX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fU0VUREVGQVVMVCkKLQkJCWVyZXBvcnQo RVJST1IsCi0JCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAot CQkJCQllcnJtc2coInVuc3VwcG9ydGVkICVzIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29u c3RyYWludCB1c2luZyBQRVJJT0QiLAotCQkJCQkJICAgIk9OIERFTEVURSIpKTsKLQl9Ci0K IAkvKgogCSAqIExvb2sgdXAgdGhlIGVxdWFsaXR5IG9wZXJhdG9ycyB0byB1c2UgaW4gdGhl IGNvbnN0cmFpbnQuCiAJICoKQEAgLTEwMjk3LDYgKzEwMjgwLDcgQEAgQVRBZGRGb3JlaWdu S2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJl bGF0aW9uIHJlbCwKICAqLwogdm9pZAogdmFsaWRhdGVGa09uRGVsZXRlU2V0Q29sdW1ucyhp bnQgbnVtZmtzLCBjb25zdCBpbnQxNiAqZmthdHRudW1zLAorCQkJCQkJCSBjb25zdCBpbnQx NiBma3BlcmlvZGF0dG51bSwKIAkJCQkJCQkgaW50IG51bWZrc2V0Y29scywgY29uc3QgaW50 MTYgKmZrc2V0Y29sc2F0dG51bXMsCiAJCQkJCQkJIExpc3QgKmZrc2V0Y29scykKIHsKQEAg LTEwMzA3LDYgKzEwMjkxLDEzIEBAIHZhbGlkYXRlRmtPbkRlbGV0ZVNldENvbHVtbnMoaW50 IG51bWZrcywgY29uc3QgaW50MTYgKmZrYXR0bnVtcywKIAogCQlmb3IgKGludCBqID0gMDsg aiA8IG51bWZrczsgaisrKQogCQl7CisJCQlpZiAoZmtwZXJpb2RhdHRudW0gPT0gc2V0Y29s X2F0dG51bSkKKwkJCXsKKwkJCQljaGFyCSAgICpjb2wgPSBzdHJWYWwobGlzdF9udGgoZmtz ZXRjb2xzLCBpKSk7CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9DT0xVTU5fUkVGRVJFTkNFKSwKKwkJCQkJCSBlcnJtc2coImNvbHVtbiBc IiVzXCIgcmVmZXJlbmNlZCBpbiBPTiBERUxFVEUgU0VUIGFjdGlvbiBjYW5ub3QgYmUgUEVS SU9EIiwgY29sKSkpOworCQkJfQogCQkJaWYgKGZrYXR0bnVtc1tqXSA9PSBzZXRjb2xfYXR0 bnVtKQogCQkJewogCQkJCXNlZW4gPSB0cnVlOwpAQCAtMTI3MjYsMTcgKzEyNzE3LDI2IEBA IGNyZWF0ZUZvcmVpZ25LZXlBY3Rpb25UcmlnZ2VycyhSZWxhdGlvbiByZWwsIE9pZCByZWZS ZWxPaWQsIENvbnN0cmFpbnQgKmZrY29uc3RyCiAJCWNhc2UgRktDT05TVFJfQUNUSU9OX0NB U0NBREU6CiAJCQlma190cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFsc2U7CiAJCQlma190cmln Z2VyLT5pbml0ZGVmZXJyZWQgPSBmYWxzZTsKLQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0g U3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfY2FzY2FkZV9kZWwiKTsKKwkJCWlmIChma2NvbnN0 cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lz dGVtRnVuY05hbWUoIlJJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfZGVsIik7CisJCQllbHNlCisJ CQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9jYXNj YWRlX2RlbCIpOwogCQkJYnJlYWs7CiAJCWNhc2UgRktDT05TVFJfQUNUSU9OX1NFVE5VTEw6 CiAJCQlma190cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFsc2U7CiAJCQlma190cmlnZ2VyLT5p bml0ZGVmZXJyZWQgPSBmYWxzZTsKLQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVt RnVuY05hbWUoIlJJX0ZLZXlfc2V0bnVsbF9kZWwiKTsKKwkJCWlmIChma2NvbnN0cmFpbnQt PmZrX3dpdGhfcGVyaW9kKQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVu Y05hbWUoIlJJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVsIik7CisJCQllbHNlCisJCQkJZmtf dHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9zZXRudWxsX2Rl bCIpOwogCQkJYnJlYWs7CiAJCWNhc2UgRktDT05TVFJfQUNUSU9OX1NFVERFRkFVTFQ6CiAJ CQlma190cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFsc2U7CiAJCQlma190cmlnZ2VyLT5pbml0 ZGVmZXJyZWQgPSBmYWxzZTsKLQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVu Y05hbWUoIlJJX0ZLZXlfc2V0ZGVmYXVsdF9kZWwiKTsKKwkJCWlmIChma2NvbnN0cmFpbnQt PmZrX3dpdGhfcGVyaW9kKQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVu Y05hbWUoIlJJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfZGVsIik7CisJCQllbHNlCisJCQkJ ZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9zZXRkZWZh dWx0X2RlbCIpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5y ZWNvZ25pemVkIEZLIGFjdGlvbiB0eXBlOiAlZCIsCkBAIC0xMjc4NywxNyArMTI3ODcsMjYg QEAgY3JlYXRlRm9yZWlnbktleUFjdGlvblRyaWdnZXJzKFJlbGF0aW9uIHJlbCwgT2lkIHJl ZlJlbE9pZCwgQ29uc3RyYWludCAqZmtjb25zdHIKIAkJY2FzZSBGS0NPTlNUUl9BQ1RJT05f Q0FTQ0FERToKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsKIAkJCWZrX3Ry aWdnZXItPmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUg PSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9jYXNjYWRlX3VwZCIpOworCQkJaWYgKGZrY29u c3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBT eXN0ZW1GdW5jTmFtZSgiUklfRktleV9wZXJpb2RfY2FzY2FkZV91cGQiKTsKKwkJCWVsc2UK KwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X2Nh c2NhZGVfdXBkIik7CiAJCQlicmVhazsKIAkJY2FzZSBGS0NPTlNUUl9BQ1RJT05fU0VUTlVM TDoKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsKIAkJCWZrX3RyaWdnZXIt PmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0 ZW1GdW5jTmFtZSgiUklfRktleV9zZXRudWxsX3VwZCIpOworCQkJaWYgKGZrY29uc3RyYWlu dC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1G dW5jTmFtZSgiUklfRktleV9wZXJpb2Rfc2V0bnVsbF91cGQiKTsKKwkJCWVsc2UKKwkJCQlm a190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldG51bGxf dXBkIik7CiAJCQlicmVhazsKIAkJY2FzZSBGS0NPTlNUUl9BQ1RJT05fU0VUREVGQVVMVDoK IAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsKIAkJCWZrX3RyaWdnZXItPmlu aXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1G dW5jTmFtZSgiUklfRktleV9zZXRkZWZhdWx0X3VwZCIpOworCQkJaWYgKGZrY29uc3RyYWlu dC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1G dW5jTmFtZSgiUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQiKTsKKwkJCWVsc2UKKwkJ CQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldGRl ZmF1bHRfdXBkIik7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1 bnJlY29nbml6ZWQgRksgYWN0aW9uIHR5cGU6ICVkIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Jp X3RyaWdnZXJzLmMKaW5kZXggNWM3NzM5YTNmMmIuLjE3Nzk4OGUzMDc1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwpAQCAtODAsNiArODAsMTIgQEAKICNkZWZpbmUg UklfUExBTl9TRVROVUxMX09OVVBEQVRFCQk3CiAjZGVmaW5lIFJJX1BMQU5fU0VUREVGQVVM VF9PTkRFTEVURQkJOAogI2RlZmluZSBSSV9QTEFOX1NFVERFRkFVTFRfT05VUERBVEUJCTkK KyNkZWZpbmUgUklfUExBTl9QRVJJT0RfQ0FTQ0FERV9PTkRFTEVURQkJMTAKKyNkZWZpbmUg UklfUExBTl9QRVJJT0RfQ0FTQ0FERV9PTlVQREFURQkJMTEKKyNkZWZpbmUgUklfUExBTl9Q RVJJT0RfU0VUTlVMTF9PTlVQREFURQkJMTIKKyNkZWZpbmUgUklfUExBTl9QRVJJT0RfU0VU TlVMTF9PTkRFTEVURQkJMTMKKyNkZWZpbmUgUklfUExBTl9QRVJJT0RfU0VUREVGQVVMVF9P TlVQREFURQkxNAorI2RlZmluZSBSSV9QTEFOX1BFUklPRF9TRVRERUZBVUxUX09OREVMRVRF CTE1CiAKICNkZWZpbmUgTUFYX1FVT1RFRF9OQU1FX0xFTiAgKE5BTUVEQVRBTEVOKjIrMykK ICNkZWZpbmUgTUFYX1FVT1RFRF9SRUxfTkFNRV9MRU4gIChNQVhfUVVPVEVEX05BTUVfTEVO KjIpCkBAIC0xOTUsNiArMjAxLDcgQEAgc3RhdGljIGJvb2wgcmlfQ2hlY2tfUGtfTWF0Y2go UmVsYXRpb24gcGtfcmVsLCBSZWxhdGlvbiBma19yZWwsCiAJCQkJCQkJICBjb25zdCBSSV9D b25zdHJhaW50SW5mbyAqcmlpbmZvKTsKIHN0YXRpYyBEYXR1bSByaV9yZXN0cmljdChUcmln Z2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0aW9uKTsKIHN0YXRpYyBEYXR1bSBy aV9zZXQoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX3NldF9udWxsLCBpbnQgdGdr aW5kKTsKK3N0YXRpYyBEYXR1bSB0cmlfc2V0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9v bCBpc19zZXRfbnVsbCwgaW50IHRna2luZCk7CiBzdGF0aWMgdm9pZCBxdW90ZU9uZU5hbWUo Y2hhciAqYnVmZmVyLCBjb25zdCBjaGFyICpuYW1lKTsKIHN0YXRpYyB2b2lkIHF1b3RlUmVs YXRpb25OYW1lKGNoYXIgKmJ1ZmZlciwgUmVsYXRpb24gcmVsKTsKIHN0YXRpYyB2b2lkIHJp X0dlbmVyYXRlUXVhbChTdHJpbmdJbmZvIGJ1ZiwKQEAgLTE1MDMsNiArMTUxMCw1MzUgQEAg cmlfc2V0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19zZXRfbnVsbCwgaW50IHRn a2luZCkKIH0KIAogCisvKgorICogUklfRktleV9wZXJpb2RfY2FzY2FkZV9kZWwgLQorICoK KyAqIENhc2NhZGVkIGRlbGV0ZSBmb3JlaWduIGtleSByZWZlcmVuY2VzIGF0IGRlbGV0ZSBl dmVudCBvbiB0ZW1wb3JhbCBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9k X2Nhc2NhZGVfZGVsKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJVHJpZ2dlckRhdGEgKnRyaWdk YXRhID0gKFRyaWdnZXJEYXRhICopIGZjaW5mby0+Y29udGV4dDsKKwljb25zdCBSSV9Db25z dHJhaW50SW5mbyAqcmlpbmZvOworCVJlbGF0aW9uCWZrX3JlbDsKKwlSZWxhdGlvbglwa19y ZWw7CisJVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3Q7CisJUklfUXVlcnlLZXkgcWtleTsKKwlT UElQbGFuUHRyICBxcGxhbjsKKwlEYXR1bSB0YXJnZXRSYW5nZTsKKworCS8qIENoZWNrIHRo YXQgdGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmlnaHQgdGltZSBhbmQg ZXZlbnQuICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZLZXlfcGVyaW9kX2Nh c2NhZGVfZGVsIiwgUklfVFJJR1RZUEVfREVMRVRFKTsKKworCXJpaW5mbyA9IHJpX0ZldGNo Q29uc3RyYWludEluZm8odHJpZ2RhdGEtPnRnX3RyaWdnZXIsCisJCQkJCQkJCQl0cmlnZGF0 YS0+dGdfcmVsYXRpb24sIHRydWUpOworCisJLyoKKwkgKiBHZXQgdGhlIHJlbGF0aW9uIGRl c2NyaXB0b3JzIG9mIHRoZSBGSyBhbmQgUEsgdGFibGVzIGFuZCB0aGUgb2xkIHR1cGxlLgor CSAqCisJICogZmtfcmVsIGlzIG9wZW5lZCBpbiBSb3dFeGNsdXNpdmVMb2NrIG1vZGUgc2lu Y2UgdGhhdCdzIHdoYXQgb3VyCisJICogZXZlbnR1YWwgREVMRVRFIHdpbGwgZ2V0IG9uIGl0 LgorCSAqLworCWZrX3JlbCA9IHRhYmxlX29wZW4ocmlpbmZvLT5ma19yZWxpZCwgUm93RXhj bHVzaXZlTG9jayk7CisJcGtfcmVsID0gdHJpZ2RhdGEtPnRnX3JlbGF0aW9uOworCW9sZHNs b3QgPSB0cmlnZGF0YS0+dGdfdHJpZ3Nsb3Q7CisKKwkvKgorCSAqIERvbid0IGRlbGV0ZSB0 aGFuIG1vcmUgdGhhbiB0aGUgUEsncyBkdXJhdGlvbiwKKwkgKiB0cmltbWVkIGJ5IGFuIG9y aWdpbmFsIEZPUiBQT1JUSU9OIE9GIGlmIG5lY2Vzc2FyeS4KKwkgKi8KKwl0YXJnZXRSYW5n ZSA9IHJlc3RyaWN0X2VuZm9yY2VkX3JhbmdlKHRyaWdkYXRhLT50Z190ZW1wb3JhbCwgcmlp bmZvLCBvbGRzbG90KTsKKworCWlmIChTUElfY29ubmVjdCgpICE9IFNQSV9PS19DT05ORUNU KQorCQllbG9nKEVSUk9SLCAiU1BJX2Nvbm5lY3QgZmFpbGVkIik7CisKKwkvKiBGZXRjaCBv ciBwcmVwYXJlIGEgc2F2ZWQgcGxhbiBmb3IgdGhlIGNhc2NhZGVkIGRlbGV0ZSAqLworCXJp X0J1aWxkUXVlcnlLZXkoJnFrZXksIHJpaW5mbywgUklfUExBTl9QRVJJT0RfQ0FTQ0FERV9P TkRFTEVURSk7CisKKwlpZiAoKHFwbGFuID0gcmlfRmV0Y2hQcmVwYXJlZFBsYW4oJnFrZXkp KSA9PSBOVUxMKQorCXsKKwkJU3RyaW5nSW5mb0RhdGEgcXVlcnlidWY7CisJCWNoYXIJCWZr cmVsbmFtZVtNQVhfUVVPVEVEX1JFTF9OQU1FX0xFTl07CisJCWNoYXIJCWF0dG5hbWVbTUFY X1FVT1RFRF9OQU1FX0xFTl07CisJCWNoYXIJCXBhcmFtbmFtZVsxNl07CisJCWNvbnN0IGNo YXIgKnF1ZXJ5c2VwOworCQlPaWQJCQlxdWVyeW9pZHNbUklfTUFYX05VTUtFWVMgKyAxXTsK KwkJY29uc3QgY2hhciAqZmtfb25seTsKKworCQkvKiAtLS0tLS0tLS0tCisJCSAqIFRoZSBx dWVyeSBzdHJpbmcgYnVpbHQgaXMKKwkJICogIERFTEVURSBGUk9NIFtPTkxZXSA8Zmt0YWJs ZT4KKwkJICogIEZPUiBQT1JUSU9OIE9GICRma2F0dCAoJHtuKzF9KQorCQkgKiAgV0hFUkUg JDEgPSBma2F0dDEgW0FORCAuLi5dCisJCSAqIFRoZSB0eXBlIGlkJ3MgZm9yIHRoZSAkIHBh cmFtZXRlcnMgYXJlIHRob3NlIG9mIHRoZQorCQkgKiBjb3JyZXNwb25kaW5nIFBLIGF0dHJp YnV0ZXMuCisJCSAqIC0tLS0tLS0tLS0KKwkJICovCisJCWluaXRTdHJpbmdJbmZvKCZxdWVy eWJ1Zik7CisJCWZrX29ubHkgPSBma19yZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5E X1BBUlRJVElPTkVEX1RBQkxFID8KKwkJCSIiIDogIk9OTFkgIjsKKwkJcXVvdGVSZWxhdGlv bk5hbWUoZmtyZWxuYW1lLCBma19yZWwpOworCQlxdW90ZU9uZU5hbWUoYXR0bmFtZSwgUklB dHROYW1lKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSkp OworCisJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiREVMRVRFIEZST00gJXMlcyBG T1IgUE9SVElPTiBPRiAlcyAoJCVkKSIsCisJCQkJCQkgZmtfb25seSwgZmtyZWxuYW1lLCBh dHRuYW1lLCByaWluZm8tPm5rZXlzICsgMSk7CisJCXF1ZXJ5c2VwID0gIldIRVJFIjsKKwkJ Zm9yIChpbnQgaSA9IDA7IGkgPCByaWluZm8tPm5rZXlzOyBpKyspCisJCXsKKwkJCU9pZCBw a190eXBlID0gUklBdHRUeXBlKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW2ldKTsKKwkJ CU9pZCBwa19jb2xsID0gUklBdHRDb2xsYXRpb24ocGtfcmVsLCByaWluZm8tPnBrX2F0dG51 bXNbaV0pOworCQkJT2lkIGZrX3R5cGUgPSBSSUF0dFR5cGUoZmtfcmVsLCByaWluZm8tPmZr X2F0dG51bXNbaV0pOworCQkJT2lkIGZrX2NvbGwgPSBSSUF0dENvbGxhdGlvbihma19yZWws IHJpaW5mby0+ZmtfYXR0bnVtc1tpXSk7CisKKwkJCXF1b3RlT25lTmFtZShhdHRuYW1lLAor CQkJCQkJIFJJQXR0TmFtZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSkpOworCQkJ c3ByaW50ZihwYXJhbW5hbWUsICIkJWQiLCBpICsgMSk7CisJCQlyaV9HZW5lcmF0ZVF1YWwo JnF1ZXJ5YnVmLCBxdWVyeXNlcCwKKwkJCQkJCQlwYXJhbW5hbWUsIHBrX3R5cGUsCisJCQkJ CQkJcmlpbmZvLT5wZl9lcV9vcHJzW2ldLAorCQkJCQkJCWF0dG5hbWUsIGZrX3R5cGUpOwor CQkJaWYgKHBrX2NvbGwgIT0gZmtfY29sbCAmJiAhZ2V0X2NvbGxhdGlvbl9pc2RldGVybWlu aXN0aWMocGtfY29sbCkpCisJCQkJcmlfR2VuZXJhdGVRdWFsQ29sbGF0aW9uKCZxdWVyeWJ1 ZiwgcGtfY29sbCk7CisJCQlxdWVyeXNlcCA9ICJBTkQiOworCQkJcXVlcnlvaWRzW2ldID0g cGtfdHlwZTsKKwkJfQorCisJCS8qIFNldCBhIHBhcmFtIGZvciBGT1IgUE9SVElPTiBPRiBU Ty9GUk9NICovCisJCXF1ZXJ5b2lkc1tyaWluZm8tPm5rZXlzXSA9IFJJQXR0VHlwZShwa19y ZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pOworCisJCS8qIFBy ZXBhcmUgYW5kIHNhdmUgdGhlIHBsYW4gKi8KKwkJcXBsYW4gPSByaV9QbGFuQ2hlY2socXVl cnlidWYuZGF0YSwgcmlpbmZvLT5ua2V5cyArIDEsIHF1ZXJ5b2lkcywKKwkJCQkJCQkgJnFr ZXksIGZrX3JlbCwgcGtfcmVsKTsKKwl9CisKKwkvKgorCSAqIFdlIGhhdmUgYSBwbGFuIG5v dy4gQnVpbGQgdXAgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBrZXkgdmFsdWVzIGluIHRoZQor CSAqIGRlbGV0ZWQgUEsgdHVwbGUgYW5kIGRlbGV0ZSB0aGUgcmVmZXJlbmNpbmcgcm93cwor CSAqLworCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKKwkJCQkJZmtf cmVsLCBwa19yZWwsCisJCQkJCW9sZHNsb3QsIE5VTEwsCisJCQkJCXJpaW5mby0+bmtleXMg KyAxLCB0YXJnZXRSYW5nZSwKKwkJCQkJdHJ1ZSwJICAgLyogbXVzdCBkZXRlY3QgbmV3IHJv d3MgKi8KKwkJCQkJU1BJX09LX0RFTEVURSk7CisKKwlpZiAoU1BJX2ZpbmlzaCgpICE9IFNQ SV9PS19GSU5JU0gpCisJCWVsb2coRVJST1IsICJTUElfZmluaXNoIGZhaWxlZCIpOworCisJ dGFibGVfY2xvc2UoZmtfcmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXJldHVybiBQb2lu dGVyR2V0RGF0dW0oTlVMTCk7Cit9CisKKy8qCisgKiBSSV9GS2V5X3BlcmlvZF9jYXNjYWRl X3VwZCAtCisgKgorICogQ2FzY2FkZWQgdXBkYXRlIGZvcmVpZ24ga2V5IHJlZmVyZW5jZXMg YXQgdXBkYXRlIGV2ZW50IG9uIHRlbXBvcmFsIFBLIHRhYmxlLgorICovCitEYXR1bQorUklf RktleV9wZXJpb2RfY2FzY2FkZV91cGQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlUcmlnZ2Vy RGF0YSAqdHJpZ2RhdGEgPSAoVHJpZ2dlckRhdGEgKikgZmNpbmZvLT5jb250ZXh0OworCWNv bnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm87CisJUmVsYXRpb24JZmtfcmVsOworCVJl bGF0aW9uCXBrX3JlbDsKKwlUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdDsKKwlUdXBsZVRhYmxl U2xvdCAqbmV3c2xvdDsKKwlSSV9RdWVyeUtleSBxa2V5OworCVNQSVBsYW5QdHIgIHFwbGFu OworCURhdHVtIHRhcmdldFJhbmdlOworCisJLyogQ2hlY2sgdGhhdCB0aGlzIGlzIGEgdmFs aWQgdHJpZ2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBldmVudC4gKi8KKwlyaV9D aGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2RfY2FzY2FkZV91cGQiLCBSSV9U UklHVFlQRV9VUERBVEUpOworCisJcmlpbmZvID0gcmlfRmV0Y2hDb25zdHJhaW50SW5mbyh0 cmlnZGF0YS0+dGdfdHJpZ2dlciwKKwkJCQkJCQkJCXRyaWdkYXRhLT50Z19yZWxhdGlvbiwg dHJ1ZSk7CisKKwkvKgorCSAqIEdldCB0aGUgcmVsYXRpb24gZGVzY3JpcHRvcnMgb2YgdGhl IEZLIGFuZCBQSyB0YWJsZXMgYW5kIHRoZSBuZXcgYW5kCisJICogb2xkIHR1cGxlLgorCSAq CisJICogZmtfcmVsIGlzIG9wZW5lZCBpbiBSb3dFeGNsdXNpdmVMb2NrIG1vZGUgc2luY2Ug dGhhdCdzIHdoYXQgb3VyCisJICogZXZlbnR1YWwgVVBEQVRFIHdpbGwgZ2V0IG9uIGl0Lgor CSAqLworCWZrX3JlbCA9IHRhYmxlX29wZW4ocmlpbmZvLT5ma19yZWxpZCwgUm93RXhjbHVz aXZlTG9jayk7CisJcGtfcmVsID0gdHJpZ2RhdGEtPnRnX3JlbGF0aW9uOworCW5ld3Nsb3Qg PSB0cmlnZGF0YS0+dGdfbmV3c2xvdDsKKwlvbGRzbG90ID0gdHJpZ2RhdGEtPnRnX3RyaWdz bG90OworCisJLyoKKwkgKiBEb24ndCBkZWxldGUgdGhhbiBtb3JlIHRoYW4gdGhlIFBLJ3Mg ZHVyYXRpb24sCisJICogdHJpbW1lZCBieSBhbiBvcmlnaW5hbCBGT1IgUE9SVElPTiBPRiBp ZiBuZWNlc3NhcnkuCisJICovCisJdGFyZ2V0UmFuZ2UgPSByZXN0cmljdF9lbmZvcmNlZF9y YW5nZSh0cmlnZGF0YS0+dGdfdGVtcG9yYWwsIHJpaW5mbywgb2xkc2xvdCk7CisKKwlpZiAo U1BJX2Nvbm5lY3QoKSAhPSBTUElfT0tfQ09OTkVDVCkKKwkJZWxvZyhFUlJPUiwgIlNQSV9j b25uZWN0IGZhaWxlZCIpOworCisJLyogRmV0Y2ggb3IgcHJlcGFyZSBhIHNhdmVkIHBsYW4g Zm9yIHRoZSBjYXNjYWRlZCB1cGRhdGUgKi8KKwlyaV9CdWlsZFF1ZXJ5S2V5KCZxa2V5LCBy aWluZm8sIFJJX1BMQU5fUEVSSU9EX0NBU0NBREVfT05VUERBVEUpOworCisJaWYgKChxcGxh biA9IHJpX0ZldGNoUHJlcGFyZWRQbGFuKCZxa2V5KSkgPT0gTlVMTCkKKwl7CisJCVN0cmlu Z0luZm9EYXRhIHF1ZXJ5YnVmOworCQlTdHJpbmdJbmZvRGF0YSBxdWFsYnVmOworCQljaGFy CQlma3JlbG5hbWVbTUFYX1FVT1RFRF9SRUxfTkFNRV9MRU5dOworCQljaGFyCQlhdHRuYW1l W01BWF9RVU9URURfTkFNRV9MRU5dOworCQljaGFyCQlwYXJhbW5hbWVbMTZdOworCQljb25z dCBjaGFyICpxdWVyeXNlcDsKKwkJY29uc3QgY2hhciAqcXVhbHNlcDsKKwkJT2lkCQkgcXVl cnlvaWRzWzIgKiBSSV9NQVhfTlVNS0VZUyArIDFdOworCQljb25zdCBjaGFyICpma19vbmx5 OworCisJCS8qIC0tLS0tLS0tLS0KKwkJICogVGhlIHF1ZXJ5IHN0cmluZyBidWlsdCBpcwor CQkgKiAgVVBEQVRFIFtPTkxZXSA8Zmt0YWJsZT4KKwkJICoJCSAgRk9SIFBPUlRJT04gT0Yg JGZrYXR0ICgkezJuKzF9KQorCQkgKgkJICBTRVQgZmthdHQxID0gJDEsIFssIC4uLl0KKwkJ ICoJCSAgV0hFUkUgJG4gPSBma2F0dDEgW0FORCAuLi5dCisJCSAqIFRoZSB0eXBlIGlkJ3Mg Zm9yIHRoZSAkIHBhcmFtZXRlcnMgYXJlIHRob3NlIG9mIHRoZQorCQkgKiBjb3JyZXNwb25k aW5nIFBLIGF0dHJpYnV0ZXMuICBOb3RlIHRoYXQgd2UgYXJlIGFzc3VtaW5nCisJCSAqIHRo ZXJlIGlzIGFuIGFzc2lnbm1lbnQgY2FzdCBmcm9tIHRoZSBQSyB0byB0aGUgRksgdHlwZTsK KwkJICogZWxzZSB0aGUgcGFyc2VyIHdpbGwgZmFpbC4KKwkJICogLS0tLS0tLS0tLQorCQkg Ki8KKwkJaW5pdFN0cmluZ0luZm8oJnF1ZXJ5YnVmKTsKKwkJaW5pdFN0cmluZ0luZm8oJnF1 YWxidWYpOworCQlma19vbmx5ID0gZmtfcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lO RF9QQVJUSVRJT05FRF9UQUJMRSA/CisJCQkiIiA6ICJPTkxZICI7CisJCXF1b3RlUmVsYXRp b25OYW1lKGZrcmVsbmFtZSwgZmtfcmVsKTsKKwkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsIFJJ QXR0TmFtZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0p KTsKKworCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwgIlVQREFURSAlcyVzIEZPUiBQ T1JUSU9OIE9GICVzICgkJWQpIFNFVCIsCisJCQkJCQkgZmtfb25seSwgZmtyZWxuYW1lLCBh dHRuYW1lLCAyICogcmlpbmZvLT5ua2V5cyArIDEpOworCisJCXF1ZXJ5c2VwID0gIiI7CisJ CXF1YWxzZXAgPSAiV0hFUkUiOworCQlmb3IgKGludCBpID0gMCwgaiA9IHJpaW5mby0+bmtl eXM7IGkgPCByaWluZm8tPm5rZXlzOyBpKyssIGorKykKKwkJeworCQkJT2lkIHBrX3R5cGUg PSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbaV0pOworCQkJT2lkIHBr X2NvbGwgPSBSSUF0dENvbGxhdGlvbihwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tpXSk7 CisJCQlPaWQgZmtfdHlwZSA9IFJJQXR0VHlwZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVt c1tpXSk7CisJCQlPaWQgZmtfY29sbCA9IFJJQXR0Q29sbGF0aW9uKGZrX3JlbCwgcmlpbmZv LT5ma19hdHRudW1zW2ldKTsKKworCQkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsCisJCQkJCQkg UklBdHROYW1lKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW2ldKSk7CisJCQkvKgorCQkJ ICogRG9uJ3Qgc2V0IHRoZSB0ZW1wb3JhbCBjb2x1bW4ocykuCisJCQkgKiBGT1IgUE9SVElP TiBPRiB3aWxsIHRha2UgY2FyZSBvZiB0aGF0LgorCQkJICovCisJCQlpZiAoaSA8IHJpaW5m by0+bmtleXMgLSAxKQorCQkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLAorCQkJCQkJ CQkgIiVzICVzID0gJCVkIiwKKwkJCQkJCQkJIHF1ZXJ5c2VwLCBhdHRuYW1lLCBpICsgMSk7 CisKKwkJCXNwcmludGYocGFyYW1uYW1lLCAiJCVkIiwgaiArIDEpOworCQkJcmlfR2VuZXJh dGVRdWFsKCZxdWFsYnVmLCBxdWFsc2VwLAorCQkJCQkJCXBhcmFtbmFtZSwgcGtfdHlwZSwK KwkJCQkJCQlyaWluZm8tPnBmX2VxX29wcnNbaV0sCisJCQkJCQkJYXR0bmFtZSwgZmtfdHlw ZSk7CisJCQlpZiAocGtfY29sbCAhPSBma19jb2xsICYmICFnZXRfY29sbGF0aW9uX2lzZGV0 ZXJtaW5pc3RpYyhwa19jb2xsKSkKKwkJCQlyaV9HZW5lcmF0ZVF1YWxDb2xsYXRpb24oJnF1 ZXJ5YnVmLCBwa19jb2xsKTsKKwkJCXF1ZXJ5c2VwID0gIiwiOworCQkJcXVhbHNlcCA9ICJB TkQiOworCQkJcXVlcnlvaWRzW2ldID0gcGtfdHlwZTsKKwkJCXF1ZXJ5b2lkc1tqXSA9IHBr X3R5cGU7CisJCX0KKwkJYXBwZW5kQmluYXJ5U3RyaW5nSW5mbygmcXVlcnlidWYsIHF1YWxi dWYuZGF0YSwgcXVhbGJ1Zi5sZW4pOworCisJCS8qIFNldCBhIHBhcmFtIGZvciBGT1IgUE9S VElPTiBPRiBUTy9GUk9NICovCisJCXF1ZXJ5b2lkc1syICogcmlpbmZvLT5ua2V5c10gPSBS SUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFd KTsKKworCQkvKiBQcmVwYXJlIGFuZCBzYXZlIHRoZSBwbGFuICovCisJCXFwbGFuID0gcmlf UGxhbkNoZWNrKHF1ZXJ5YnVmLmRhdGEsIDIgKiByaWluZm8tPm5rZXlzICsgMSwgcXVlcnlv aWRzLAorCQkJCQkJCSAmcWtleSwgZmtfcmVsLCBwa19yZWwpOworCX0KKworCS8qCisJICog V2UgaGF2ZSBhIHBsYW4gbm93LiBSdW4gaXQgdG8gdXBkYXRlIHRoZSBleGlzdGluZyByZWZl cmVuY2VzLgorCSAqLworCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwK KwkJCQkJZmtfcmVsLCBwa19yZWwsCisJCQkJCW9sZHNsb3QsIG5ld3Nsb3QsCisJCQkJCXJp aW5mby0+bmtleXMgKiAyICsgMSwgdGFyZ2V0UmFuZ2UsCisJCQkJCXRydWUsCQkvKiBtdXN0 IGRldGVjdCBuZXcgcm93cyAqLworCQkJCQlTUElfT0tfVVBEQVRFKTsKKworCWlmIChTUElf ZmluaXNoKCkgIT0gU1BJX09LX0ZJTklTSCkKKwkJZWxvZyhFUlJPUiwgIlNQSV9maW5pc2gg ZmFpbGVkIik7CisKKwl0YWJsZV9jbG9zZShma19yZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwor CisJcmV0dXJuIFBvaW50ZXJHZXREYXR1bShOVUxMKTsKK30KKworLyoKKyAqIFJJX0ZLZXlf cGVyaW9kX3NldG51bGxfZGVsIC0KKyAqCisgKiBTZXQgZm9yZWlnbiBrZXkgcmVmZXJlbmNl cyB0byBOVUxMIHZhbHVlcyBhdCBkZWxldGUgZXZlbnQgb24gUEsgdGFibGUuCisgKi8KK0Rh dHVtCitSSV9GS2V5X3BlcmlvZF9zZXRudWxsX2RlbChQR19GVU5DVElPTl9BUkdTKQorewor CS8qIENoZWNrIHRoYXQgdGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmln aHQgdGltZSBhbmQgZXZlbnQuICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZL ZXlfcGVyaW9kX3NldG51bGxfZGVsIiwgUklfVFJJR1RZUEVfREVMRVRFKTsKKworCS8qIFNo YXJlIGNvZGUgd2l0aCBVUERBVEUgY2FzZSAqLworCXJldHVybiB0cmlfc2V0KChUcmlnZ2Vy RGF0YSAqKSBmY2luZm8tPmNvbnRleHQsIHRydWUsIFJJX1RSSUdUWVBFX0RFTEVURSk7Cit9 CisKKy8qCisgKiBSSV9GS2V5X3BlcmlvZF9zZXRudWxsX3VwZCAtCisgKgorICogU2V0IGZv cmVpZ24ga2V5IHJlZmVyZW5jZXMgdG8gTlVMTCBhdCB1cGRhdGUgZXZlbnQgb24gUEsgdGFi bGUuCisgKi8KK0RhdHVtCitSSV9GS2V5X3BlcmlvZF9zZXRudWxsX3VwZChQR19GVU5DVElP Tl9BUkdTKQoreworCS8qIENoZWNrIHRoYXQgdGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2Fs bCBvbiB0aGUgcmlnaHQgdGltZSBhbmQgZXZlbnQuICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZj aW5mbywgIlJJX0ZLZXlfcGVyaW9kX3NldG51bGxfdXBkIiwgUklfVFJJR1RZUEVfVVBEQVRF KTsKKworCS8qIFNoYXJlIGNvZGUgd2l0aCBERUxFVEUgY2FzZSAqLworCXJldHVybiB0cmlf c2V0KChUcmlnZ2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQsIHRydWUsIFJJX1RSSUdUWVBF X1VQREFURSk7Cit9CisKKy8qCisgKiBSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbCAt CisgKgorICogU2V0IGZvcmVpZ24ga2V5IHJlZmVyZW5jZXMgdG8gZGVmYXVsdHMgYXQgZGVs ZXRlIGV2ZW50IG9uIFBLIHRhYmxlLgorICovCitEYXR1bQorUklfRktleV9wZXJpb2Rfc2V0 ZGVmYXVsdF9kZWwoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwkvKiBDaGVjayB0aGF0IHRoaXMg aXMgYSB2YWxpZCB0cmlnZ2VyIGNhbGwgb24gdGhlIHJpZ2h0IHRpbWUgYW5kIGV2ZW50LiAq LworCXJpX0NoZWNrVHJpZ2dlcihmY2luZm8sICJSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0 X2RlbCIsIFJJX1RSSUdUWVBFX0RFTEVURSk7CisKKwkvKiBTaGFyZSBjb2RlIHdpdGggVVBE QVRFIGNhc2UgKi8KKwlyZXR1cm4gdHJpX3NldCgoVHJpZ2dlckRhdGEgKikgZmNpbmZvLT5j b250ZXh0LCBmYWxzZSwgUklfVFJJR1RZUEVfREVMRVRFKTsKK30KKworLyoKKyAqIFJJX0ZL ZXlfcGVyaW9kX3NldGRlZmF1bHRfdXBkIC0KKyAqCisgKiBTZXQgZm9yZWlnbiBrZXkgcmVm ZXJlbmNlcyB0byBkZWZhdWx0cyBhdCB1cGRhdGUgZXZlbnQgb24gUEsgdGFibGUuCisgKi8K K0RhdHVtCitSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X3VwZChQR19GVU5DVElPTl9BUkdT KQoreworCS8qIENoZWNrIHRoYXQgdGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2FsbCBvbiB0 aGUgcmlnaHQgdGltZSBhbmQgZXZlbnQuICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5mbywg IlJJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfdXBkIiwgUklfVFJJR1RZUEVfVVBEQVRFKTsK KworCS8qIFNoYXJlIGNvZGUgd2l0aCBERUxFVEUgY2FzZSAqLworCXJldHVybiB0cmlfc2V0 KChUcmlnZ2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQsIGZhbHNlLCBSSV9UUklHVFlQRV9V UERBVEUpOworfQorCisvKgorICogdHJpX3NldCAtCisgKgorICogQ29tbW9uIGNvZGUgZm9y IHRlbXBvcmFsIE9OIERFTEVURSBTRVQgTlVMTCwgT04gREVMRVRFIFNFVCBERUZBVUxULCBP TgorICogVVBEQVRFIFNFVCBOVUxMLCBhbmQgT04gVVBEQVRFIFNFVCBERUZBVUxULgorICov CitzdGF0aWMgRGF0dW0KK3RyaV9zZXQoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlz X3NldF9udWxsLCBpbnQgdGdraW5kKQoreworCWNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpy aWluZm87CisJUmVsYXRpb24JZmtfcmVsOworCVJlbGF0aW9uCXBrX3JlbDsKKwlUdXBsZVRh YmxlU2xvdCAqb2xkc2xvdDsKKwlSSV9RdWVyeUtleSBxa2V5OworCVNQSVBsYW5QdHIJcXBs YW47CisJRGF0dW0JCXRhcmdldFJhbmdlOworCWludDMyCQlxdWVyeW5vOworCisJcmlpbmZv ID0gcmlfRmV0Y2hDb25zdHJhaW50SW5mbyh0cmlnZGF0YS0+dGdfdHJpZ2dlciwKKwkJCQkJ CQkJCXRyaWdkYXRhLT50Z19yZWxhdGlvbiwgdHJ1ZSk7CisKKwkvKgorCSAqIEdldCB0aGUg cmVsYXRpb24gZGVzY3JpcHRvcnMgb2YgdGhlIEZLIGFuZCBQSyB0YWJsZXMgYW5kIHRoZSBv bGQgdHVwbGUuCisJICoKKwkgKiBma19yZWwgaXMgb3BlbmVkIGluIFJvd0V4Y2x1c2l2ZUxv Y2sgbW9kZSBzaW5jZSB0aGF0J3Mgd2hhdCBvdXIKKwkgKiBldmVudHVhbCBVUERBVEUgd2ls bCBnZXQgb24gaXQuCisJICovCisJZmtfcmVsID0gdGFibGVfb3BlbihyaWluZm8tPmZrX3Jl bGlkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwlwa19yZWwgPSB0cmlnZGF0YS0+dGdfcmVsYXRp b247CisJb2xkc2xvdCA9IHRyaWdkYXRhLT50Z190cmlnc2xvdDsKKworCS8qCisJICogRG9u J3QgU0VUIE5VTEwvREVGQVVMVCBtb3JlIHRoYW4gdGhlIFBLJ3MgZHVyYXRpb24sCisJICog dHJpbW1lZCBieSBhbiBvcmlnaW5hbCBGT1IgUE9SVElPTiBPRiBpZiBuZWNlc3NhcnkuCisJ ICovCisJdGFyZ2V0UmFuZ2UgPSByZXN0cmljdF9lbmZvcmNlZF9yYW5nZSh0cmlnZGF0YS0+ dGdfdGVtcG9yYWwsIHJpaW5mbywgb2xkc2xvdCk7CisKKwlpZiAoU1BJX2Nvbm5lY3QoKSAh PSBTUElfT0tfQ09OTkVDVCkKKwkJZWxvZyhFUlJPUiwgIlNQSV9jb25uZWN0IGZhaWxlZCIp OworCisJLyoKKwkgKiBGZXRjaCBvciBwcmVwYXJlIGEgc2F2ZWQgcGxhbiBmb3IgdGhlIHRy aWdnZXIuCisJICovCisJc3dpdGNoICh0Z2tpbmQpCisJeworCQljYXNlIFJJX1RSSUdUWVBF X1VQREFURToKKwkJCXF1ZXJ5bm8gPSBpc19zZXRfbnVsbAorCQkJCT8gUklfUExBTl9QRVJJ T0RfU0VUTlVMTF9PTlVQREFURQorCQkJCTogUklfUExBTl9QRVJJT0RfU0VUREVGQVVMVF9P TlVQREFURTsKKwkJCWJyZWFrOworCQljYXNlIFJJX1RSSUdUWVBFX0RFTEVURToKKwkJCXF1 ZXJ5bm8gPSBpc19zZXRfbnVsbAorCQkJCT8gUklfUExBTl9QRVJJT0RfU0VUTlVMTF9PTkRF TEVURQorCQkJCTogUklfUExBTl9QRVJJT0RfU0VUREVGQVVMVF9PTkRFTEVURTsKKwkJCWJy ZWFrOworCQlkZWZhdWx0OgorCQkJZWxvZyhFUlJPUiwgImludmFsaWQgdGdraW5kIHBhc3Nl ZCB0byByaV9zZXQiKTsKKwl9CisKKwlyaV9CdWlsZFF1ZXJ5S2V5KCZxa2V5LCByaWluZm8s IHF1ZXJ5bm8pOworCisJaWYgKChxcGxhbiA9IHJpX0ZldGNoUHJlcGFyZWRQbGFuKCZxa2V5 KSkgPT0gTlVMTCkKKwl7CisJCVN0cmluZ0luZm9EYXRhIHF1ZXJ5YnVmOworCQlTdHJpbmdJ bmZvRGF0YSBxdWFsYnVmOworCQljaGFyCQlma3JlbG5hbWVbTUFYX1FVT1RFRF9SRUxfTkFN RV9MRU5dOworCQljaGFyCQlhdHRuYW1lW01BWF9RVU9URURfTkFNRV9MRU5dOworCQljaGFy CQlwYXJhbW5hbWVbMTZdOworCQljb25zdCBjaGFyICpxdWVyeXNlcDsKKwkJY29uc3QgY2hh ciAqcXVhbHNlcDsKKwkJT2lkCQkJcXVlcnlvaWRzW1JJX01BWF9OVU1LRVlTICsgMV07IC8q ICsxIGZvciBGT1IgUE9SVElPTiBPRiAqLworCQljb25zdCBjaGFyICpma19vbmx5OworCQlp bnQJCQludW1fY29sc190b19zZXQ7CisJCWNvbnN0IGludDE2ICpzZXRfY29sczsKKworCQlz d2l0Y2ggKHRna2luZCkKKwkJeworCQkJY2FzZSBSSV9UUklHVFlQRV9VUERBVEU6CisJCQkJ LyogLTEgc28gd2UgbGV0IEZPUiBQT1JUSU9OIE9GIHNldCB0aGUgcmFuZ2UuICovCisJCQkJ bnVtX2NvbHNfdG9fc2V0ID0gcmlpbmZvLT5ua2V5cyAtIDE7CisJCQkJc2V0X2NvbHMgPSBy aWluZm8tPmZrX2F0dG51bXM7CisJCQkJYnJlYWs7CisJCQljYXNlIFJJX1RSSUdUWVBFX0RF TEVURToKKwkJCQkvKgorCQkJCSAqIElmIGNvbmZkZWxzZXRjb2xzIGFyZSBwcmVzZW50LCB0 aGVuIHdlIG9ubHkgdXBkYXRlIHRoZQorCQkJCSAqIGNvbHVtbnMgc3BlY2lmaWVkIGluIHRo YXQgYXJyYXksIG90aGVyd2lzZSB3ZSB1cGRhdGUgYWxsCisJCQkJICogdGhlIHJlZmVyZW5j aW5nIGNvbHVtbnMuCisJCQkJICovCisJCQkJaWYgKHJpaW5mby0+bmRlbHNldGNvbHMgIT0g MCkKKwkJCQl7CisJCQkJCW51bV9jb2xzX3RvX3NldCA9IHJpaW5mby0+bmRlbHNldGNvbHM7 CisJCQkJCXNldF9jb2xzID0gcmlpbmZvLT5jb25mZGVsc2V0Y29sczsKKwkJCQl9CisJCQkJ ZWxzZQorCQkJCXsKKwkJCQkJLyogLTEgc28gd2UgbGV0IEZPUiBQT1JUSU9OIE9GIHNldCB0 aGUgcmFuZ2UuICovCisJCQkJCW51bV9jb2xzX3RvX3NldCA9IHJpaW5mby0+bmtleXMgLSAx OworCQkJCQlzZXRfY29scyA9IHJpaW5mby0+ZmtfYXR0bnVtczsKKwkJCQl9CisJCQkJYnJl YWs7CisJCQlkZWZhdWx0OgorCQkJCWVsb2coRVJST1IsICJpbnZhbGlkIHRna2luZCBwYXNz ZWQgdG8gcmlfc2V0Iik7CisJCX0KKworCQkvKiAtLS0tLS0tLS0tCisJCSAqIFRoZSBxdWVy eSBzdHJpbmcgYnVpbHQgaXMKKwkJICoJVVBEQVRFIFtPTkxZXSA8Zmt0YWJsZT4KKwkJICoJ CQlGT1IgUE9SVElPTiBPRiAkZmthdHQgKCR7bisxfSkKKwkJICoJCQlTRVQgZmthdHQxID0g e05VTEx8REVGQVVMVH0gWywgLi4uXQorCQkgKgkJCVdIRVJFICQxID0gZmthdHQxIFtBTkQg Li4uXQorCQkgKiBUaGUgdHlwZSBpZCdzIGZvciB0aGUgJCBwYXJhbWV0ZXJzIGFyZSB0aG9z ZSBvZiB0aGUKKwkJICogY29ycmVzcG9uZGluZyBQSyBhdHRyaWJ1dGVzLgorCQkgKiAtLS0t LS0tLS0tCisJCSAqLworCQlpbml0U3RyaW5nSW5mbygmcXVlcnlidWYpOworCQlpbml0U3Ry aW5nSW5mbygmcXVhbGJ1Zik7CisJCWZrX29ubHkgPSBma19yZWwtPnJkX3JlbC0+cmVsa2lu ZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFID8KKwkJCSIiIDogIk9OTFkgIjsKKwkJ cXVvdGVSZWxhdGlvbk5hbWUoZmtyZWxuYW1lLCBma19yZWwpOworCQlxdW90ZU9uZU5hbWUo YXR0bmFtZSwgUklBdHROYW1lKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW3JpaW5mby0+ bmtleXMgLSAxXSkpOworCisJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiVVBEQVRF ICVzJXMgRk9SIFBPUlRJT04gT0YgJXMgKCQlZCkgU0VUIiwKKwkJCQkJCSBma19vbmx5LCBm a3JlbG5hbWUsIGF0dG5hbWUsIHJpaW5mby0+bmtleXMgKyAxKTsKKworCQkvKgorCQkgKiBB ZGQgYXNzaWdubWVudCBjbGF1c2VzCisJCSAqLworCQlxdWVyeXNlcCA9ICIiOworCQlmb3Ig KGludCBpID0gMDsgaSA8IG51bV9jb2xzX3RvX3NldDsgaSsrKQorCQl7CisJCQlxdW90ZU9u ZU5hbWUoYXR0bmFtZSwgUklBdHROYW1lKGZrX3JlbCwgc2V0X2NvbHNbaV0pKTsKKwkJCWFw cGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLAorCQkJCQkJCSAiJXMgJXMgPSAlcyIsCisJCQkJ CQkJIHF1ZXJ5c2VwLCBhdHRuYW1lLAorCQkJCQkJCSBpc19zZXRfbnVsbCA/ICJOVUxMIiA6 ICJERUZBVUxUIik7CisJCQlxdWVyeXNlcCA9ICIsIjsKKwkJfQorCisJCS8qCisJCSAqIEFk ZCBXSEVSRSBjbGF1c2UKKwkJICovCisJCXF1YWxzZXAgPSAiV0hFUkUiOworCQlmb3IgKGlu dCBpID0gMDsgaSA8IHJpaW5mby0+bmtleXM7IGkrKykKKwkJeworCQkJT2lkCXBrX3R5cGUg PSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbaV0pOworCQkJT2lkCWZr X3R5cGUgPSBSSUF0dFR5cGUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbaV0pOworCQkJ T2lkCXBrX2NvbGwgPSBSSUF0dENvbGxhdGlvbihwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVt c1tpXSk7CisJCQlPaWQJZmtfY29sbCA9IFJJQXR0Q29sbGF0aW9uKGZrX3JlbCwgcmlpbmZv LT5ma19hdHRudW1zW2ldKTsKKworCQkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsCisJCQkJCQkg UklBdHROYW1lKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW2ldKSk7CisKKwkJCXNwcmlu dGYocGFyYW1uYW1lLCAiJCVkIiwgaSArIDEpOworCQkJcmlfR2VuZXJhdGVRdWFsKCZxdWVy eWJ1ZiwgcXVhbHNlcCwKKwkJCQkJCQlwYXJhbW5hbWUsIHBrX3R5cGUsCisJCQkJCQkJcmlp bmZvLT5wZl9lcV9vcHJzW2ldLAorCQkJCQkJCWF0dG5hbWUsIGZrX3R5cGUpOworCQkJaWYg KHBrX2NvbGwgIT0gZmtfY29sbCAmJiAhZ2V0X2NvbGxhdGlvbl9pc2RldGVybWluaXN0aWMo cGtfY29sbCkpCisJCQkJcmlfR2VuZXJhdGVRdWFsQ29sbGF0aW9uKCZxdWVyeWJ1ZiwgcGtf Y29sbCk7CisJCQlxdWFsc2VwID0gIkFORCI7CisJCQlxdWVyeW9pZHNbaV0gPSBwa190eXBl OworCQl9CisKKwkJLyogU2V0IGEgcGFyYW0gZm9yIEZPUiBQT1JUSU9OIE9GIFRPL0ZST00g Ki8KKwkJcXVlcnlvaWRzW3JpaW5mby0+bmtleXNdID0gUklBdHRUeXBlKHBrX3JlbCwgcmlp bmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSk7CisKKwkJLyogUHJlcGFyZSBh bmQgc2F2ZSB0aGUgcGxhbiAqLworCQlxcGxhbiA9IHJpX1BsYW5DaGVjayhxdWVyeWJ1Zi5k YXRhLCByaWluZm8tPm5rZXlzICsgMSwgcXVlcnlvaWRzLAorCQkJCQkJCSAmcWtleSwgZmtf cmVsLCBwa19yZWwpOworCX0KKworCS8qCisJICogV2UgaGF2ZSBhIHBsYW4gbm93LiBSdW4g aXQgdG8gdXBkYXRlIHRoZSBleGlzdGluZyByZWZlcmVuY2VzLgorCSAqLworCXJpX1BlcmZv cm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKKwkJCQkJZmtfcmVsLCBwa19yZWwsCisJ CQkJCW9sZHNsb3QsIE5VTEwsCisJCQkJCXJpaW5mby0+bmtleXMgKyAxLCB0YXJnZXRSYW5n ZSwKKwkJCQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCisJCQkJCVNQSV9P S19VUERBVEUpOworCisJaWYgKFNQSV9maW5pc2goKSAhPSBTUElfT0tfRklOSVNIKQorCQll bG9nKEVSUk9SLCAiU1BJX2ZpbmlzaCBmYWlsZWQiKTsKKworCXRhYmxlX2Nsb3NlKGZrX3Jl bCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlpZiAoaXNfc2V0X251bGwpCisJCXJldHVybiBQ b2ludGVyR2V0RGF0dW0oTlVMTCk7CisJZWxzZQorCXsKKwkJLyoKKwkJICogSWYgd2UganVz dCBkZWxldGVkIG9yIHVwZGF0ZWQgdGhlIFBLIHJvdyB3aG9zZSBrZXkgd2FzIGVxdWFsIHRv IHRoZQorCQkgKiBGSyBjb2x1bW5zJyBkZWZhdWx0IHZhbHVlcywgYW5kIGEgcmVmZXJlbmNp bmcgcm93IGV4aXN0cyBpbiB0aGUgRksKKwkJICogdGFibGUsIHdlIHdvdWxkIGhhdmUgdXBk YXRlZCB0aGF0IHJvdyB0byB0aGUgc2FtZSB2YWx1ZXMgaXQgYWxyZWFkeQorCQkgKiBoYWQg LS0tIGFuZCBSSV9GS2V5X2ZrX3VwZF9jaGVja19yZXF1aXJlZCB3b3VsZCBoZW5jZSBiZWxp ZXZlIG5vCisJCSAqIGNoZWNrIGlzIG5lY2Vzc2FyeS4gIFNvIHdlIG5lZWQgdG8gZG8gYW5v dGhlciBsb29rdXAgbm93IGFuZCBpbgorCQkgKiBjYXNlIGEgcmVmZXJlbmNlIHN0aWxsIGV4 aXN0cywgYWJvcnQgdGhlIG9wZXJhdGlvbi4gIFRoYXQgaXMKKwkJICogYWxyZWFkeSBpbXBs ZW1lbnRlZCBpbiB0aGUgTk8gQUNUSU9OIHRyaWdnZXIsIHNvIGp1c3QgcnVuIGl0LiAoVGhp cworCQkgKiByZWNoZWNrIGlzIG9ubHkgbmVlZGVkIGluIHRoZSBTRVQgREVGQVVMVCBjYXNl LCBzaW5jZSBDQVNDQURFIHdvdWxkCisJCSAqIHJlbW92ZSBzdWNoIHJvd3MgaW4gY2FzZSBv ZiBhIERFTEVURSBvcGVyYXRpb24gb3Igd291bGQgY2hhbmdlIHRoZQorCQkgKiBGSyBrZXkg dmFsdWVzIGluIGNhc2Ugb2YgYW4gVVBEQVRFLCB3aGlsZSBTRVQgTlVMTCBpcyBjZXJ0YWlu IHRvCisJCSAqIHJlc3VsdCBpbiByb3dzIHRoYXQgc2F0aXNmeSB0aGUgRksgY29uc3RyYWlu dC4pCisJCSAqLworCQlyZXR1cm4gcmlfcmVzdHJpY3QodHJpZ2RhdGEsIHRydWUpOworCX0K K30KKwogLyoKICAqIFJJX0ZLZXlfcGtfdXBkX2NoZWNrX3JlcXVpcmVkIC0KICAqCkBAIC0y NjMxLDggKzMxNjcsOCBAQCByaV9QZXJmb3JtQ2hlY2soY29uc3QgUklfQ29uc3RyYWludElu Zm8gKnJpaW5mbywKIAlpbnQJCQlzcGlfcmVzdWx0OwogCU9pZAkJCXNhdmVfdXNlcmlkOwog CWludAkJCXNhdmVfc2VjX2NvbnRleHQ7Ci0JRGF0dW0JCXZhbHNbUklfTUFYX05VTUtFWVMg KiAyXTsKLQljaGFyCQludWxsc1tSSV9NQVhfTlVNS0VZUyAqIDJdOworCURhdHVtCQl2YWxz W1JJX01BWF9OVU1LRVlTICogMiArIDFdOworCWNoYXIJCW51bGxzW1JJX01BWF9OVU1LRVlT ICogMiArIDFdOwogCiAJLyoKIAkgKiBVc2UgdGhlIHF1ZXJ5IHR5cGUgY29kZSB0byBkZXRl cm1pbmUgd2hldGhlciB0aGUgcXVlcnkgaXMgcnVuIGFnYWluc3QKQEAgLTI2NjcsOCArMzIw MywxMCBAQCByaV9QZXJmb3JtQ2hlY2soY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5m bywKIAkJcmlfRXh0cmFjdFZhbHVlcyhzb3VyY2VfcmVsLCBuZXdzbG90LCByaWluZm8sIHNv dXJjZV9pc19waywKIAkJCQkJCSB2YWxzLCBudWxscyk7CiAJCWlmIChvbGRzbG90KQorCQl7 CiAJCQlyaV9FeHRyYWN0VmFsdWVzKHNvdXJjZV9yZWwsIG9sZHNsb3QsIHJpaW5mbywgc291 cmNlX2lzX3BrLAogCQkJCQkJCSB2YWxzICsgcmlpbmZvLT5ua2V5cywgbnVsbHMgKyByaWlu Zm8tPm5rZXlzKTsKKwkJfQogCX0KIAllbHNlCiAJewpAQCAtMzM1Miw2ICszODkwLDEyIEBA IFJJX0ZLZXlfdHJpZ2dlcl90eXBlKE9pZCB0Z2ZvaWQpCiAJCWNhc2UgRl9SSV9GS0VZX1NF VERFRkFVTFRfVVBEOgogCQljYXNlIEZfUklfRktFWV9OT0FDVElPTl9ERUw6CiAJCWNhc2Ug Rl9SSV9GS0VZX05PQUNUSU9OX1VQRDoKKwkJY2FzZSBGX1JJX0ZLRVlfUEVSSU9EX0NBU0NB REVfREVMOgorCQljYXNlIEZfUklfRktFWV9QRVJJT0RfQ0FTQ0FERV9VUEQ6CisJCWNhc2Ug Rl9SSV9GS0VZX1BFUklPRF9TRVROVUxMX0RFTDoKKwkJY2FzZSBGX1JJX0ZLRVlfUEVSSU9E X1NFVE5VTExfVVBEOgorCQljYXNlIEZfUklfRktFWV9QRVJJT0RfU0VUREVGQVVMVF9ERUw6 CisJCWNhc2UgRl9SSV9GS0VZX1BFUklPRF9TRVRERUZBVUxUX1VQRDoKIAkJCXJldHVybiBS SV9UUklHR0VSX1BLOwogCiAJCWNhc2UgRl9SSV9GS0VZX0NIRUNLX0lOUzoKQEAgLTMzODMs MTYgKzM5MjcsMTYgQEAgZnBvX3RhcmdldHNfcGtfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9m U3RhdGUgKnRnX3RlbXBvcmFsLCBjb25zdCBSSV9Db25zdHJhaW50SW4KICAqIFJldHVybnMg YSBEYXR1bSBvZiBSYW5nZVR5cGVQIGhvbGRpbmcgdGhlIGFwcHJvcHJpYXRlIHRpbWVzcGFu CiAgKiB0byB0YXJnZXQgY2hpbGQgcmVjb3JkcyB3aGVuIHdlIFJFU1RSSUNUL0NBU0NBREUv U0VUIE5VTEwvU0VUIERFRkFVTFQuCiAgKgotICogSW4gYSBub3JtYWwgVVBEQVRFL0RFTEVU RSB0aGlzIHNob3VsZCBiZSB0aGUgcGFyZW50J3Mgb3duIHZhbGlkIHRpbWUsCisgKiBJbiBh IG5vcm1hbCBVUERBVEUvREVMRVRFIHRoaXMgc2hvdWxkIGJlIHRoZSByZWZlcmVuY2VkIHJv dydzIG93biB2YWxpZCB0aW1lLAogICogYnV0IGlmIHRoZXJlIHdhcyBhIEZPUiBQT1JUSU9O IE9GIGNsYXVzZSwgdGhlbiB3ZSBzaG91bGQgdXNlIHRoYXQgdG8KLSAqIHRyaW0gZG93biB0 aGUgcGFyZW50J3Mgc3BhbiBmdXJ0aGVyLgorICogdHJpbSBkb3duIHRoZSBzcGFuIGZ1cnRo ZXIuCiAgKi8KIHN0YXRpYyBEYXR1bQogcmVzdHJpY3RfZW5mb3JjZWRfcmFuZ2UoY29uc3Qg Rm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBvcmFsLCBjb25zdCBSSV9Db25zdHJhaW50SW5m byAqcmlpbmZvLCBUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdCkKIHsKLQlEYXR1bQkJcGtSZWNv cmRSYW5nZTsKLQlib29sCQlpc251bGw7Ci0JQXR0ck51bWJlcglhdHRubyA9IHJpaW5mby0+ cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV07CisJRGF0dW0JcGtSZWNvcmRSYW5nZTsK Kwlib29sCWlzbnVsbDsKKwlpbnQJCWF0dG5vID0gcmlpbmZvLT5wa19hdHRudW1zW3JpaW5m by0+bmtleXMgLSAxXTsKIAogCXBrUmVjb3JkUmFuZ2UgPSBzbG90X2dldGF0dHIob2xkc2xv dCwgYXR0bm8sICZpc251bGwpOwogCWlmIChpc251bGwpCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdAppbmRleCA0MTM5ZGY5NGM5Yi4uNjBhOGM1ZDdlMTAgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdApAQCAtNDAzOSw2ICs0MDM5LDI4IEBACiAgIHByb3JldHR5cGUgPT4gJ3Ry aWdnZXInLCBwcm9hcmd0eXBlcyA9PiAnJywKICAgcHJvc3JjID0+ICdSSV9GS2V5X25vYWN0 aW9uX3VwZCcgfSwKIAorIyBUZW1wb3JhbCByZWZlcmVudGlhbCBpbnRlZ3JpdHkgY29uc3Ry YWludCB0cmlnZ2VycworeyBvaWQgPT4gJzYxMjQnLCBkZXNjciA9PiAndGVtcG9yYWwgcmVm ZXJlbnRpYWwgaW50ZWdyaXR5IE9OIERFTEVURSBDQVNDQURFJywKKyAgcHJvbmFtZSA9PiAn UklfRktleV9wZXJpb2RfY2FzY2FkZV9kZWwnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb3Jl dHR5cGUgPT4gJ3RyaWdnZXInLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvc3JjID0+ICdS SV9GS2V5X3BlcmlvZF9jYXNjYWRlX2RlbCcgfSwKK3sgb2lkID0+ICc2MTI1JywgZGVzY3Ig PT4gJ3RlbXBvcmFsIHJlZmVyZW50aWFsIGludGVncml0eSBPTiBVUERBVEUgQ0FTQ0FERScs CisgIHByb25hbWUgPT4gJ1JJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfdXBkJywgcHJvdm9sYXRp bGUgPT4gJ3YnLCBwcm9yZXR0eXBlID0+ICd0cmlnZ2VyJywKKyAgcHJvYXJndHlwZXMgPT4g JycsIHByb3NyYyA9PiAnUklfRktleV9wZXJpb2RfY2FzY2FkZV91cGQnIH0sCit7IG9pZCA9 PiAnNjEyOCcsIGRlc2NyID0+ICd0ZW1wb3JhbCByZWZlcmVudGlhbCBpbnRlZ3JpdHkgT04g REVMRVRFIFNFVCBOVUxMJywKKyAgcHJvbmFtZSA9PiAnUklfRktleV9wZXJpb2Rfc2V0bnVs bF9kZWwnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb3JldHR5cGUgPT4gJ3RyaWdnZXInLAor ICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvc3JjID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRudWxs X2RlbCcgfSwKK3sgb2lkID0+ICc2MTI5JywgZGVzY3IgPT4gJ3RlbXBvcmFsIHJlZmVyZW50 aWFsIGludGVncml0eSBPTiBVUERBVEUgU0VUIE5VTEwnLAorICBwcm9uYW1lID0+ICdSSV9G S2V5X3BlcmlvZF9zZXRudWxsX3VwZCcsIHByb3ZvbGF0aWxlID0+ICd2JywgcHJvcmV0dHlw ZSA9PiAndHJpZ2dlcicsCisgIHByb2FyZ3R5cGVzID0+ICcnLCBwcm9zcmMgPT4gJ1JJX0ZL ZXlfcGVyaW9kX3NldG51bGxfdXBkJyB9LAoreyBvaWQgPT4gJzYxMzAnLCBkZXNjciA9PiAn dGVtcG9yYWwgcmVmZXJlbnRpYWwgaW50ZWdyaXR5IE9OIERFTEVURSBTRVQgREVGQVVMVCcs CisgIHByb25hbWUgPT4gJ1JJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfZGVsJywgcHJvdm9s YXRpbGUgPT4gJ3YnLAorICBwcm9yZXR0eXBlID0+ICd0cmlnZ2VyJywgcHJvYXJndHlwZXMg PT4gJycsCisgIHByb3NyYyA9PiAnUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF9kZWwnIH0s Cit7IG9pZCA9PiAnNjEzMScsIGRlc2NyID0+ICd0ZW1wb3JhbCByZWZlcmVudGlhbCBpbnRl Z3JpdHkgT04gVVBEQVRFIFNFVCBERUZBVUxUJywKKyAgcHJvbmFtZSA9PiAnUklfRktleV9w ZXJpb2Rfc2V0ZGVmYXVsdF91cGQnLCBwcm92b2xhdGlsZSA9PiAndicsCisgIHByb3JldHR5 cGUgPT4gJ3RyaWdnZXInLCBwcm9hcmd0eXBlcyA9PiAnJywKKyAgcHJvc3JjID0+ICdSSV9G S2V5X3BlcmlvZF9zZXRkZWZhdWx0X3VwZCcgfSwKKwogeyBvaWQgPT4gJzE2NjYnLAogICBw cm9uYW1lID0+ICd2YXJiaXRlcScsIHByb2xlYWtwcm9vZiA9PiAndCcsIHByb3JldHR5cGUg PT4gJ2Jvb2wnLAogICBwcm9hcmd0eXBlcyA9PiAndmFyYml0IHZhcmJpdCcsIHByb3NyYyA9 PiAnYml0ZXEnIH0sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2J0 cmVlX2luZGV4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnRyZWVfaW5kZXgu b3V0CmluZGV4IGRlZjc4ZWY4NTgzLi5kNjY5YTNhODliYSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQKQEAgLTI1OCwxNCArMjU4LDE3IEBAIHNl bGVjdCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9uYW1lIGxpa2UgRSdSSVxcX0ZL ZXklZGVsJyBvcmRlciBieSAxOwogKDMgcm93cykKIAogc2VsZWN0IHByb25hbWUgZnJvbSBw Z19wcm9jIHdoZXJlIHByb25hbWUgbGlrZSBFJ1JJXFxfRktleSVkZWwnIG9yZGVyIGJ5IDE7 Ci0gICAgICAgIHByb25hbWUgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICAgICAgICAgICAgcHJvbmFtZSAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIFJJX0ZLZXlfY2FzY2FkZV9kZWwKICBSSV9GS2V5X25vYWN0aW9uX2Rl bAorIFJJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfZGVsCisgUklfRktleV9wZXJpb2Rfc2V0ZGVm YXVsdF9kZWwKKyBSSV9GS2V5X3BlcmlvZF9zZXRudWxsX2RlbAogIFJJX0ZLZXlfcmVzdHJp Y3RfZGVsCiAgUklfRktleV9zZXRkZWZhdWx0X2RlbAogIFJJX0ZLZXlfc2V0bnVsbF9kZWwK LSg1IHJvd3MpCisoOCByb3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpCiBzZWxlY3QgcHJv bmFtZSBmcm9tIHBnX3Byb2Mgd2hlcmUgcHJvbmFtZSBpbGlrZSAnMDAlZm9vJyBvcmRlciBi eSAxOwpAQCAtMzA0LDE0ICszMDcsMTcgQEAgc2VsZWN0IHByb25hbWUgZnJvbSBwZ19wcm9j IHdoZXJlIHByb25hbWUgbGlrZSBFJ1JJXFxfRktleSVkZWwnIG9yZGVyIGJ5IDE7CiAoNiBy b3dzKQogCiBzZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3Byb2Mgd2hlcmUgcHJvbmFtZSBsaWtl IEUnUklcXF9GS2V5JWRlbCcgb3JkZXIgYnkgMTsKLSAgICAgICAgcHJvbmFtZSAgICAgICAg IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICBwcm9uYW1lICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgUklfRktleV9jYXNj YWRlX2RlbAogIFJJX0ZLZXlfbm9hY3Rpb25fZGVsCisgUklfRktleV9wZXJpb2RfY2FzY2Fk ZV9kZWwKKyBSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbAorIFJJX0ZLZXlfcGVyaW9k X3NldG51bGxfZGVsCiAgUklfRktleV9yZXN0cmljdF9kZWwKICBSSV9GS2V5X3NldGRlZmF1 bHRfZGVsCiAgUklfRktleV9zZXRudWxsX2RlbAotKDUgcm93cykKKyg4IHJvd3MpCiAKIGV4 cGxhaW4gKGNvc3RzIG9mZikKIHNlbGVjdCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBw cm9uYW1lIGlsaWtlICcwMCVmb28nIG9yZGVyIGJ5IDE7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRleCBlZDlhN2Q3OWMxNi4u MjAyZTlhZjQ5NjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0 aG91dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRo b3V0X292ZXJsYXBzLm91dApAQCAtMiw3ICsyLDcgQEAKIC0tCiAtLSBXZSBsZWF2ZSBiZWhp bmQgc2V2ZXJhbCB0YWJsZXMgdG8gdGVzdCBwZ19kdW1wIGV0YzoKIC0tIHRlbXBvcmFsX3Ju ZywgdGVtcG9yYWxfcm5nMiwKLS0tIHRlbXBvcmFsX2ZrX3JuZzJybmcuCistLSB0ZW1wb3Jh bF9ma19ybmcycm5nLCB0ZW1wb3JhbF9mazJfcm5nMnJuZy4KIFNFVCBkYXRlc3R5bGUgVE8g SVNPLCBZTUQ7CiAtLQogLS0gdGVzdCBpbnB1dCBwYXJzZXIKQEAgLTIwMTgsMTIgKzIwMTgs MjIgQEAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIw MTgtMDEtMTAnCiBXSEVSRSBpZCA9ICdbNSw2KSc7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxl dGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3Ry YWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3Ju ZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0w MywyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3Jh bF9ma19ybmcycm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGlu ICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wMikKKyBbNSw2KSB8IFsyMDE4 LTAxLTAzLDIwMTgtMDItMDEpCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCBb MjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYpCisoMSByb3cpCisKIC0tIHRoZW4gZGVs ZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3Vj Y2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sz LDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKLS0t IGNsZWFuIHVwOgotREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJl bnRfaWQgPSAnWzUsNiknOwotREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIElO ICgnWzUsNiknKTsKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklD VAogLS0KQEAgLTIwNzUsMzkgKzIwODUsMjA2IEBAIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJwogV0hFUkUgaWQgPSAnWzUsNikn OwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFs aWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVy ZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIw MTgtMDEtMDIpCisgWzUsNikgfCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKQorKDIgcm93cykK KworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMs NCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFszLDQpIHwgWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCkgfCBbNSw2 KQorKDEgcm93KQorCiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBh bmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJyk7Ci0tLSBjbGVhbiB1cDoKLURFTEVURSBGUk9NIHRlbXBv cmFsX2ZrX3JuZzJybmcgV0hFUkUgcGFyZW50X2lkID0gJ1s1LDYpJzsKLURFTEVURSBGUk9N IHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBJTiAoJ1s1LDYpJyk7CiAtLQogLS0gcm5nMnJuZyB0 ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucwogLS0KKy0tIFRPQzoKKy0tIHJlZmVyZW5j ZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0g cmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNl ZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAo dHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBz Y2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxh ciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNv bHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywg U0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0 d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3 byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdv IHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQogLS0gdGVzdCBGSyByZWZl cmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVt cG9yYWxfZmtfcm5nMnJuZzsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2Zr CiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nCiAgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRF IENBU0NBREU7Ci1FUlJPUjogIHVuc3VwcG9ydGVkIE9OIFVQREFURSBhY3Rpb24gZm9yIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4KScgV0hF UkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsy MDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUg dGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEp IHwgWzcsOCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgp CisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNyw4KQorKDMgcm93 cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworVVBEQVRFIHRlbXBv cmFsX3JuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAw LDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFs5LDEwKQorIFsyMDAsMjAxKSB8 IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLQorVFJVTkNBVEUgdGVtcG9y YWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAx LTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9hdCB8IHBhcmVudF9pZCAKKy0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVu Y2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygx IHJvdykKKworLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCi1J TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTAp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzks MTApJyk7CistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5n OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAgIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCiAgICAgT04gREVM RVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQg T04gVVBEQVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJ T0QKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBw YXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQor IFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzEwMCwxMDEpIHwg WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQ TyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUg aWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4 LTAxLTAxLDIwMTktMDEtMDEpIHwgCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0w MS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IAorKDMg cm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworVVBEQVRFIHRl bXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf Zmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBb MjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsyMDAsMjAxKSB8IFsy MDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0KK1RSVU5DQVRFIHRlbXBvcmFs X3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9u IGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAg ICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0w MSwyMDE5LTAxLTAxKSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0w MS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcp CisoMyByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3JuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEt MDEpIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJh bmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwy MDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIw MCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMjAwLDIwMSkgfCBbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpCisoMiByb3dzKQorCistLQogLS0gdGVzdCBG SyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVOQ0FURSB0ZW1wb3Jh bF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVyYW5nZShudWxsLCBudWxs KSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwotSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1sxMiwxMyknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbNiw3KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5n MnJuZwogICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywK ICAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCkBAIC0yMTE1LDcg KzIyOTIsNDMyIEBAIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKICAgICBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9ybmcKICAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBE RUZBVUxUOwotRVJST1I6ICB1bnN1cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9uIGZvciBmb3Jl aWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJF IGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAx OC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEs MjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0 ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkg fCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSww KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWy0xLDApCisoMyBy b3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAx LTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVt cG9yYWxfcm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsy MDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApCisgWzIwMCwyMDEp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLQorVFJVTkNBVEUg dGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCBkYXRlcmFuZ2UobnVs bCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwg WzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQor IFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykKKygzIHJvd3Mp CisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJF IGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAx OC0wMS0wMSwyMDE5LTAxLTAxKSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAx LDIwMjAtMDEtMDEpIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAn WzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw5KScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsy MDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFy IGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJy bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9O IERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJv dGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScg V0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50 X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEp IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0w MS0wMSkgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQ TyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVS RSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQy IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBb Nyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAx KSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpIHwgWzcsOCkgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3Mg dHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwg aWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9 ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUg aWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzksMTAp ICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBb OCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVt cG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZh bGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2 LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAg IHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00g dGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2F0IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCist LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorKDAgcm93cykKKwor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4 LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAg ICAgIHwgWzgsOSkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRh dGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxf cm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcy cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAo cGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VU IE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9y bmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIw LTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAw LDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAw LDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQor KDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBT RVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBh cmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMTkt MDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSkgfCAgICAgICAgICAgIHwgCisoMyByb3dzKQorCistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VU IGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwg ICAgICAgICAgICB8IAorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwg WzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0 ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNykn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwg WzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAg ICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAg ICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0w MS0wMSwyMDE5LTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFj cm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRh dGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lk MikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcy IFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIw MCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZh bGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IAor IFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4 LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlv dSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m azJfcm5nMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmss CisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlk X2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJl ZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0g b2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAg ICBPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgTlVMTDsK Ky0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5n MiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0w MS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwg cGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTkt MDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEs MjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0g bm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8ICAgICAgICAg ICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAg ICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkg fCAgICAgICAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVm ZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4 LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9 ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IFs4LDkpCisgWzIwMCwy MDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygy IHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVM VCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBv cmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBkYXRlcmFuZ2UobnVs bCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2 LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBBTFRFUiBDT0xV TU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBw YXJlbnRfaWQyIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQ RVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04g REVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAn WzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBb MjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAx KSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsx MDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcp CisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcy IFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEs MCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAg fCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFstMSww KSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwy MDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywg J1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s5LDEwKScsIGlk MiA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5 LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0x LDApICAgICB8IFstMSwwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZl cmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScs ICdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNykn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwg WzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAg ICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2 LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBb MjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEw MSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBb MTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEs MCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwg cGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAt MDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29s cywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRl bXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2LDcpJywgZGF0ZXJhbmdlKG51 bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAx KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdb Niw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29s dW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKyAgQUxURVIgQ09MVU1O IHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBP TiBERUxFVEUgU0VUIERFRkFVTFQgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7 CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNF VCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9mazJfcm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdO IEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCAocGFy ZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwg WzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAg ICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYs NykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsy MDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0xLDApICAgICB8IFs2LDcpCisgWzEwMCwxMDEp IHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWzYsNykKKyBbMTAw LDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbNiw3KQor KDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1stMSwtMV0nLCAnWzgsOSknLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk MSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5 LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hF UkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0x LDApICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkg fCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKIC0tCiAtLSB0ZXN0IEZPUkVJR04g S0VZLCBtdWx0aXJhbmdlIHJlZmVyZW5jZXMgbXVsdGlyYW5nZQogLS0KQEAgLTI2NzgsNiAr MzI4MCw2MjUgQEAgREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4 LTAxLTAxLDIwMTgtMDEtMDIpLFsyMDE4LTAxLTAzLDIwMTgtMDIKIERFTEVURSBGUk9NIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsK IC0tCistLSBtbHRybmcybWx0cm5nIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCist LQorLS0gVE9DOgorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tIHJlZmVyZW5j ZWQgZGVsZXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0t IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBERUZBVUxUCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVy ZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2Vk IGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCB1cGRh dGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg TlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLSByZWZlcmVuY2Vk IHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQg ZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBk ZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNl dCkKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLQorVFJV TkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcKKyAgICBPTiBE RUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAg dmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEt MDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzcsOCkKKygyIHJv d3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQg aWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpfSB8IFs3LDgpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAt MDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFs3LDgpCisoMiByb3dzKQorCist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9y YWxfbWx0cm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJl bnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWzksMTAp CisgWzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMiBy b3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0K K1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Niw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7Cist LSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJu ZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEt MDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpCisoMSByb3cpCisKKy0tIG5v bi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlk X2F0IHwgcGFyZW50X2lkIAorLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dz KQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KQorKDEgcm93 KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tCitU UlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYs NyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZworICAgIE9O IERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAx LTAxJykpKSBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEp LFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5 LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDIgcm93 cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBp ZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQg ICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEp fSAgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDIgcm93cykKKworLS0gRksgYWNyb3Nz IHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBT RVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg ICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIw MCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IAorIFsyMDAsMjAxKSB8IHtb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLQorVFJVTkNBVEUgdGVtcG9y YWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAy MC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQg ICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0w MS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoMiByb3dzKQorCistLSBub24t RlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg ICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBh cmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0w MS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCAKKyBbMTAwLDEw MSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAg IHwgCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCAK KyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkKKygyIHJv d3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAor LS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbLTEsLTFdJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYs NyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4gcGFy ZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcKKyAgICBPTiBERUxF VEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9u IGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0w MS0wMScpKSkgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAg ICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAx KSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAx OS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbLTEsMCkK KygyIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJu ZyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZh bGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIw LTAxLTAxLDIwMjEtMDEtMDEpfSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbLTEsMCkKKygyIHJv d3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSkn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAg ICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0g fCBbLTEsMCkKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgs OSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg REVGQVVMVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbLTEsLTFdJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51 bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3 KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAn WzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAg ICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9p ZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwy MDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KQorIFsxMDAsMTAx KSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAg fCBbLTEsMCkKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00g dGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlk X2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpfSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwy MDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbLTEsMCkKKygyIHJvd3Mp CisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFstMSwwKQorIFsyMDAs MjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KQorKDIgcm93cykKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIg Y29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEs IHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X21sdHJuZzIKKyAgICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0w MS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7 WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzcs OCkgICAgICB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJl bnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpfSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAx OS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbNyw4KSAg ICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkp JywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5LDEw KScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBb OSwxMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0w MSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyBy ZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5D QVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAt MDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQg ICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAx LTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAg fCBbNiw3KQorKDEgcm93KQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRl bXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9hdCB8IHBhcmVudF9pZDEgfCBwYXJlbnRf aWQyIAorLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKygwIHJv d3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs ICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMjAt MDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMSByb3cpCisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBj b2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf bWx0cm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7Cist LSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTkt MDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8 IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwg e1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRl bXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAn WzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAg ICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAy MS0wMS0wMSl9IHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwy MDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCiso MiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOwor VVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9 ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9h dCAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgICAgICAgICAgICB8IAor IFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAgICAgIHwg WzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBT RVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJu ZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYs NyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlk MSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAg ICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsy MDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAx KSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgCisoMiByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAg ICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJl bnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9 IHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAx KX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisoMiByb3dzKQor CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgs OSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lk MikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAxLTAx LDIwMjAtMDEtMDEpfSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEt MDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29s cywgU0VUIE5VTEwgc3Vic2V0KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAn WzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNv bHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAo cGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfbWx0cm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAodmFsaWRfYXQp IE9OIFVQREFURSBTRVQgTlVMTDsKK0VSUk9SOiAgY29sdW1uICJ2YWxpZF9hdCIgcmVmZXJl bmNlZCBpbiBPTiBERUxFVEUgU0VUIGFjdGlvbiBjYW5ub3QgYmUgUEVSSU9ECistLSBvazoK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RS QUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfbWx0cm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAocGFyZW50X2lkMSkgT04g VVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUg aWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAg ICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSks WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwx MDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCBbNiw3KQorKDIgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAg ICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpfSB8ICAgICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg WzYsNykKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4 LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAg ICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIw MSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgICAgICAgICAgICB8IFs4LDkpCisg WzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAgICAgfCBb OCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0 cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0x LC0xXScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Niw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sx MDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxU ICdbLTEsLTFdJywKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDIgU0VUIERFRkFVTFQgJ1st MSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdf ZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisg ICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9h dCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VU IERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJl bnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAx OS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbLTEsMCkg ICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0 ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJF IGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAg ICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEp LFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAw LDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgWy0xLDApICAgICB8IFstMSwwKQorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIFNF VCBpZDEgPSAnWzksMTApJywgaWQyID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAg IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzIw MCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAgICAgfCBbOCw5 KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBE RUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5n MiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0x XScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3 KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAs MTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVz OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAg ICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIw MTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3 KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAg ICAgICAgICAgICAgfCBbLTEsMCkgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBub24t RlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8 IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSl9IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8 IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBb LTEsMCkgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVy ZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4 LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSks ICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVS RSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sy MDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAg dmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFstMSwwKSAg ICAgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwg WzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQg c3Vic2V0KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdb Niw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29s dW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgQUxURVIg Q09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHZhbGlkX2F0KSBP TiBVUERBVEUgU0VUIERFRkFVTFQ7CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJlZmVy ZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0gb2s6 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xV TU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lk MSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfbWx0cm5nMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04g VVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hF UkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAg ICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0w MSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEw MCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAg ICAgICB8IFstMSwwKSAgICAgfCBbNiw3KQorKDIgcm93cykKKworLS0gbm9uLUZQTyB1cGRh dGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRf aWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpfSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbLTEsMCkgICAg IHwgWzYsNykKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1stMSwtMV0nLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwg bnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp LCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hF UkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb MjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg IHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbLTEsMCkg ICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwg WzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLSBGSyB3aXRoIGEgY3VzdG9tIHJh bmdlIHR5cGUKK0NSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1YnR5cGU9ZGF0 ZSk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfYXQgbXlkYXRlcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM19wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxp ZF9hdCBteWRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazNfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrM19ybmcycm5nX2Zr IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3JuZzMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpIE9OIERFTEVURSBDQVND QURFCispOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsIG15ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazNfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1s1LDYpJywgbXlkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzMgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdI RVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmszX3JuZzJybmcg V0hFUkUgaWQgPSAnWzUsNiknOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzgsOSkKKyBbNSw2 KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKK0RST1Ag VEFCTEUgdGVtcG9yYWxfZmszX3JuZzJybmc7CitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7 CitEUk9QIFRZUEUgbXlkYXRlcmFuZ2U7CistLQogLS0gRksgYmV0d2VlbiBwYXJ0aXRpb25l ZCB0YWJsZXM6IHJhbmdlcwogLS0KIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgKApAQCAtMjY4Niw4ICszOTA3LDggQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyAoCiAgIG5hbWUgdGV4dCwKICAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9w YXJpdGlvbmVkX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpCiApIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUgVEFCTEUgdHAxIHBh cnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sx LDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJyk7 Ci1DUkVBVEUgVEFCTEUgdHAyIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgRk9SIFZBTFVFUyBJTiAoJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywg J1sxMCwxMSknLCAnWzEyLDEzKScpOworQ1JFQVRFIFRBQkxFIHRwMSBQQVJUSVRJT04gT0Yg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0 KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScsICdbMTMsMTQpJywg J1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMiknLCAnWzIzLDI0KScp OworQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1KScsICdbNiw3KScs ICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdbMTYsMTcpJywg J1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsKIElOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxV RVMKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAxJyks ICdvbmUnKSwKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAz LTAxJyksICdvbmUnKSwKQEAgLTI3MDAsOCArMzkyMSw4IEBAIENSRUFURSBUQUJMRSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nICgKICAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAo aWQsIFBFUklPRCB2YWxpZF9hdCkKICkgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKLUNSRUFU RSBUQUJMRSB0ZmtwMSBwYXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCkn LCAnWzksMTApJywgJ1sxMSwxMiknKTsKLUNSRUFURSBUQUJMRSB0ZmtwMiBwYXJ0aXRpb24g T0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzIs MyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMpJyk7 CitDUkVBVEUgVEFCTEUgdGZrcDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywg J1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdb MTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7CitDUkVBVEUgVEFC TEUgdGZrcDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg Rk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4 LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4 LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOwogLS0KIC0tIHBhcnRp dGlvbmVkIEZLIHJlZmVyZW5jaW5nIGluc2VydHMKIC0tCkBAIC0yNzQzLDcgKzM5NjQsNyBA QCBVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLQogLS0gc2hvdWxkIGZhaWw6CiBVUERBVEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx Ni0wMS0wMScsICcyMDE2LTAyLTAxJykKICAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7Ci1FUlJPUjog IHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRf dmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmciCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu Z19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJs ZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIuCiAtLQogLS0gcGFydGl0aW9u ZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgpAQCAtMjc1NSw3ICszOTc2LDcg QEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sKIERFTEVURSBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKIC0tIHNob3VsZCBmYWlsOgogREVM RVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwot RVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFy ZW50X2lkX3ZhbGlkX2F0X2ZrZXkiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIgorRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0X2ZrZXkxIiBvbiB0YWJsZSAidGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZy b20gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciLgogLS0KIC0tIHBh cnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklDVApAQCAtMjc3Nyw3ICsz OTk4LDcgQEAgVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0KIC0tIHNob3VsZCBmYWlsOgog VVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCiAgIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwot RVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFy ZW50X2lkX3ZhbGlkX2F0X2ZrZXkiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIgorRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0X2ZrZXkxIiBvbiB0YWJsZSAidGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZy b20gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciLgogLS0KIC0tIHBh cnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVApAQCAtMjc4OSwzNyAr NDAxMCwxNjIgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sKIERFTEVURSBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKIC0tIHNob3VsZCBm YWlsOgogREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpOwotRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xh dGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0X2ZrZXkiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIgorRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxl ICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0X2ZrZXkxIiBvbiB0YWJsZSAi dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZh bGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZl cmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciLgog LS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCiAtLQor VFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzQsNSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKIEFMVEVSIFRB QkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKICAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmssCiAgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsKICAgICBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcKICAgICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FE RTsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBr ZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIw MjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s0 LDUpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAor LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzQsNSkg fCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzQsNSkgfCBbMjAxOC0wMS0w MSwyMDE5LTAxLTAxKSB8IFs2LDcpCisgWzQsNSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KSB8IFs2LDcpCisoMyByb3dzKQorCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKKyAg aWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzQsNSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzQsNSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAx LTAxKSB8IFs3LDgpCisgWzQsNSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs3LDgp CisoMyByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlcmFuZ2UoJzIwMjAtMDEt MDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAsMTEp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxNSwxNiknKTsK K1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1sxNiwxNyknIFdI RVJFIGlkID0gJ1sxNSwxNiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEwLDExKSc7CisgICBpZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg cGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMTAsMTEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbMTYsMTcpCisg WzEwLDExKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzE1LDE2KQorKDIgcm93cykK KwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCiAt LQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzUsNiknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzgsOSkn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1s1LDYpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs4LDkpCisgWzUsNikgfCBb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpCisoMiByb3dzKQorCitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s1 LDYpJzsKKyBpZCB8IHZhbGlkX2F0IHwgcGFyZW50X2lkIAorLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisoMCByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE3LDE4KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNywxOCknLCBkYXRlcmFuZ2Uo JzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMTEsMTIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sx NywxOCknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBp ZCA9ICdbMTcsMTgpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1sxMSwxMiknOworICAgaWQgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzExLDEyKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzE3LDE4KQorKDEgcm93 KQorCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxM CiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s5LDEwKScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s2LDcp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s5LDEwKScpOwog QUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZwogICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKICAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mawogICAgIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZwogICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERB VEUgU0VUIE5VTEw7Ci1FUlJPUjogIHVuc3VwcG9ydGVkIE9OIFVQREFURSBhY3Rpb24gZm9y IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECitVUERBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzEwLDExKScgV0hFUkUgaWQgPSAnWzks MTApJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBX SEVSRSBpZCA9ICdbNiw3KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFs2LDcpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbNiw3KSB8IFsy MDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzksMTApCisgWzYsNykgfCBbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKSB8IFs5LDEwKQorKDMgcm93cykKKworVVBEQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZyBTRVQgaWQgPSAnWzEwLDExKScgV0hFUkUgaWQgPSAnWzksMTApJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbNiw3KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9p ZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs2 LDcpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbNiw3KSB8IFsyMDE4LTAxLTAx LDIwMTktMDEtMDEpIHwgCisgWzYsNykgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IAor KDMgcm93cykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1sxOCwxOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgsMTkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEyLDEzKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTgsMTkpJyk7CitV UERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTksMjApJyBXSEVS RSBpZCA9ICdbMTgsMTkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1sxMiwxMyknOworICAgaWQgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBh cmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzEyLDEzKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzEyLDEzKSB8 IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzE4LDE5KQorKDIgcm93cykKKwogLS0KIC0t IHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAogLS0KK1RSVU5D QVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMTEsMTIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzcsOCknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzExLDEyKScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbMTEsMTIpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbNyw4KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFs3LDgpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbNyw4KSB8IFsyMDE4LTAx LTAxLDIwMTktMDEtMDEpIHwgWzExLDEyKQorIFs3LDgpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCBbMTEsMTIpCisoMyByb3dzKQorCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzExLDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzcsOCknOworICBpZCAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNyw4KSB8IFsyMDE5LTAxLTAx LDIwMjAtMDEtMDEpIHwgCisgWzcsOCkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IAor IFs3LDgpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCAKKygzIHJvd3MpCisKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMjAsMjEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzIwLDIxKScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMywxNCknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzIwLDIxKScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1syMCwyMSknIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEzLDE0KSc7CisgICBpZCAgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTMsMTQpIHwgWzIwMTgtMDEtMDEsMjAy MC0wMS0wMSkgfCAKKyBbMTMsMTQpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMjAs MjEpCisoMiByb3dzKQorCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRh dGVzIFNFVCBERUZBVUxUCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n LCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1swLDEpJywgZGF0 ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTIsMTMpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzgs OSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzEyLDEzKScp OwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZwogICBBTFRF UiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKICAgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmssCkBAIC0yODI3LDEw ICs0MTczLDczIEBAIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmcKICAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcKICAgICBPTiBERUxFVEUgU0VU IERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOwotRVJST1I6ICB1bnN1cHBvcnRlZCBP TiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklP RAorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1sxMywx NCknIFdIRVJFIGlkID0gJ1sxMiwxMyknOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9u IHRhYmxlICJ0ZmtwMiIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lk LCB2YWxpZF9hdCk9KFstMSwwKSwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkpIGlzIG5vdCBw cmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmciLgorU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s4LDkp JzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzgsOSkgfCBb MjAxOC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsxMiwxMykKKygxIHJvdykKKworVVBEQVRFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzEzLDE0KScgV0hFUkUgaWQgPSAn WzEyLDEzKSc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRma3AyIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWy0x LDApLCBbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUg InRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzgsOSknOworICBpZCAgIHwgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbOCw5KSB8IFsyMDE4LTAxLTAxLDIwMjEt MDEtMDEpIHwgWzEyLDEzKQorKDEgcm93KQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwyMyknLCBkYXRl cmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMTQsMTUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1syMiwyMyknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlk ID0gJ1syMywyNCknIFdIRVJFIGlkID0gJ1syMiwyMyknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRm a3AyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0 KT0oWy0xLDApLCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSkgaXMgbm90IHByZXNlbnQgaW4g dGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyIuCitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CisgICBp ZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTQsMTUpIHwgWzIw MTgtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMjIsMjMpCisoMSByb3cpCisKIC0tCiAtLSBwYXJ0 aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKIC0tCitUUlVOQ0FU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzAsMSknLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxNCwxNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzE0LDE1KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEn IFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbMTQsMTUpJzsKK0VSUk9SOiAgaW5zZXJ0 IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZrcDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBL ZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbLTEsMCksIFsyMDE5LTAxLTAxLDIwMjAtMDEt MDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n Ii4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVS RSBpZCA9ICdbOSwxMCknOworICAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg cGFyZW50X2lkIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFs5LDEwKSB8IFsyMDE4LTAxLTAxLDIwMjEtMDEtMDEpIHwgWzE0LDE1KQorKDEg cm93KQorCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQg PSAnWzE0LDE1KSc7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRma3Ax IiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0o Wy0xLDApLCBbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFi bGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzksMTApJzsKKyAgIGlkICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbOSwxMCkgfCBbMjAxOC0wMS0w MSwyMDIxLTAxLTAxKSB8IFsxNCwxNSkKKygxIHJvdykKKworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwyNSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjQsMjUp JywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbMjQsMjUpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgV0hFUkUgaWQgPSAnWzI0LDI1KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZrcDEiIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbLTEs MCksIFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAi dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTUsMTYpJzsKKyAgIGlkICAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxNSwxNikgfCBbMjAxOC0wMS0w MSwyMDIxLTAxLTAxKSB8IFsyNCwyNSkKKygxIHJvdykKKwogRFJPUCBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmc7CiAtLQpAQCAtMjk1MCwzMiArNDM1OSwxNTAgQEAgREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3Rp bGwgcmVmZXJlbmMKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMg Q0FTQ0FERQogLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNCw1KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsK IEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcKICAg RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmdf ZmssCiAgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJt bHRybmdfZmsKICAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcKICAgICBPTiBE RUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQg T04gVVBEQVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJ T0QKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIw LTAxLTAxJykpKSBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbNCw1KSc7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBb NCw1KSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAg ICAgfCBbNyw4KQorIFs0LDUpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpCisoMiByb3dzKQorCitVUERBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1s0LDUpJzsKKyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgdmFs aWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFs0LDUpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAg ICAgICAgICAgICB8IFs3LDgpCisgWzQsNSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSks WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzcsOCkKKygyIHJvd3MpCisKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMTUsMTYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzEwLDExKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzE1LDE2KScpOworVVBEQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgaWQgPSAnWzE2LDE3KScgV0hFUkUgaWQgPSAnWzE1 LDE2KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb MTAsMTEpJzsKKyAgIGlkICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMTAsMTEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFsxNiwxNykKKyBb MTAsMTEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFsxNSwxNikKKygyIHJvd3Mp CisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQog LS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpIFdIRVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CisgIGlkICAgfCAg ICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNSw2KSB8IHtbMjAxOC0wMS0wMSwyMDE5 LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KQorKDEgcm93KQorCitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzgs OSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKyBpZCB8IHZhbGlkX2F0IHwgcGFyZW50X2lkIAor LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE3 LDE4KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMTcsMTgpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1sxMSwxMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSwgJ1sxNywxOCknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9ICdbMTcsMTgpJyBBTkQgdmFsaWRfYXQg QD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMSwxMiknOworICAgaWQgICAg fCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMSwxMikgfCB7WzIw MjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzE3LDE4KQorKDEgcm93KQorCiAtLQogLS0gcGFy dGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCiAtLQorVFJVTkNBVEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19t bHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s5LDEwKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzksMTApJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrLAogICBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrCiAgICAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nCiAgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQ REFURSBTRVQgTlVMTDsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBm b3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKK1VQREFURSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQg PSAnWzEwLDExKScgV0hFUkUgaWQgPSAnWzksMTApJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7Cisg IGlkICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAg ICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNiw3KSB8IHtbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBbNiw3KSB8 IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBb OSwxMCkKKygyIHJvd3MpCisKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcg U0VUIGlkID0gJ1sxMCwxMSknIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzYs NyknOworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAg ICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzYsNykgfCB7 WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisg WzYsNykgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSl9IHwgCisoMiByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE4LDE5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MTgsMTkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5n Mm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMiwxMyknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1sxOCwxOSknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgU0VUIGlk ID0gJ1sxOSwyMCknIFdIRVJFIGlkID0gJ1sxOCwxOSknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CisgICBpZCAgICB8ICAgICAg ICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEyLDEzKSB8IHtbMjAxOC0wMS0w MSwyMDIwLTAxLTAxKX0gfCAKKyBbMTIsMTMpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEp fSB8IFsxOCwxOSkKKygyIHJvd3MpCisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIE5VTEwKIC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9tbHRybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzExLDEyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNyw4 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpLCAnWzExLDEyKScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0 cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzExLDEyKSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzcsOCknOworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9h dCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzcsOCkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAg ICAgICAgIHwgCisgWzcsOCkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSl9IHwgWzExLDEyKQorKDIgcm93cykKKworREVMRVRFIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFdIRVJFIGlkID0gJ1sxMSwxMiknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1s3LDgpJzsKKyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAg ICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs3 LDgpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAg ICB8IAorIFs3LDgpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpfSB8IAorKDIgcm93cykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMCwyMSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzIwLDIxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTMs MTQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSksICdbMjAsMjEpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9t bHRybmcgV0hFUkUgaWQgPSAnWzIwLDIxKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTMsMTQpJzsKKyAgIGlkICAgIHwgICAgICAgICB2YWxp ZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTMsMTQpIHwge1syMDE4LTAxLTAxLDIwMjAt MDEtMDEpfSB8IAorIFsxMywxNCkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzIw LDIxKQorKDIgcm93cykKKwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBk YXRlcyBTRVQgREVGQVVMVAogLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21s dHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMCwxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxMiwxMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzgs OSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSwgJ1sxMiwxMyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X21sdHJuZzJtbHRybmcKICAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAn WzAsMSknLAogICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZ19maywKQEAgLTI5ODMsMTAgKzQ1MTAsNjcgQEAgQUxURVIgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwogICAgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX21sdHJuZwogICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUg U0VUIERFRkFVTFQ7Ci1FUlJPUjogIHVuc3VwcG9ydGVkIE9OIFVQREFURSBhY3Rpb24gZm9y IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECitVUERBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkID0g J1sxMywxNCknIFdIRVJFIGlkID0gJ1sxMiwxMyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s4LDkpJzsKKyAg aWQgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAg ICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs4LDkpIHwge1syMDE5LTAx LTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFswLDEpCisgWzgs OSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9 IHwgWzEyLDEzKQorKDIgcm93cykKKworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21s dHJuZyBTRVQgaWQgPSAnWzEzLDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzgsOSknOworICBpZCAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAg ICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzgs OSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAg IHwgWzAsMSkKKyBbOCw5KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKX0gfCBbMCwxKQorKDIgcm93cykKKworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwyMykn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTQsMTUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSksICdbMjIsMjMpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfbWx0cm5nIFNFVCBpZCA9ICdbMjMsMjQpJyBXSEVSRSBpZCA9ICdbMjIsMjMpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxNCwxNSknOwor ICAgaWQgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxNCwx NSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWzAsMSkKKyBbMTQsMTUpIHwge1sy MDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFsyMiwyMykKKygyIHJvd3MpCisKIC0tCiAtLSBw YXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKIC0tCitUUlVO Q0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzAsMSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s5LDEwKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzE0LDE1KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0w MScpKSkgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzksMTApJzsKKyAgIGlk ICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzksMTApIHwge1syMDE5LTAx LTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFswLDEpCisgWzks MTApIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp fSB8IFsxNCwxNSkKKygyIHJvd3MpCisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZyBXSEVSRSBpZCA9ICdbMTQsMTUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOwor ICAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAg ICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbOSwxMCkgfCB7WzIw MTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzAsMSkK KyBbOSwxMCkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSl9IHwgWzAsMSkKKygyIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjQsMjUpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1syNCwyNSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzE1 LDE2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpLCAnWzI0LDI1KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf bWx0cm5nIFdIRVJFIGlkID0gJ1syNCwyNSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzE1LDE2KSc7CisgICBpZCAgICB8ICAgICAgICAgdmFs aWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzE1LDE2KSB8IHtbMjAxOC0wMS0wMSwyMDIw LTAxLTAxKX0gfCBbMCwxKQorIFsxNSwxNikgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9 IHwgWzI0LDI1KQorKDIgcm93cykKKwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19tbHRybmcybWx0cm5nOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9t bHRybmc7CiBSRVNFVCBkYXRlc3R5bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhv dXRfb3ZlcmxhcHMuc3FsCmluZGV4IDNmMjZhZjJiY2ZiLi5jODNiNzU1Njc5ZiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTIsNyArMiw3 IEBACiAtLQogLS0gV2UgbGVhdmUgYmVoaW5kIHNldmVyYWwgdGFibGVzIHRvIHRlc3QgcGdf ZHVtcCBldGM6CiAtLSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX3JuZzIsCi0tLSB0ZW1wb3Jh bF9ma19ybmcycm5nLgorLS0gdGVtcG9yYWxfZmtfcm5nMnJuZywgdGVtcG9yYWxfZmsyX3Ju ZzJybmcuCiAKIFNFVCBkYXRlc3R5bGUgVE8gSVNPLCBZTUQ7CiAKQEAgLTE0NzksMTIgKzE0 NzksMTEgQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGlu ICgnWzMsNCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcKIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcy MDE4LTAxLTEwJwogV0hFUkUgaWQgPSAnWzUsNiknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAo J1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogLS0gdGhlbiBkZWxldGUgdGhlIG9i amVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKIERF TEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogREVM RVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwotLS0gY2xlYW4gdXA6 Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVudF9pZCA9ICdb NSw2KSc7Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdbNSw2KScp OwogCiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKQEAgLTE1 MjMsNDEgKzE1MjIsMTMxIEBAIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBX SEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogREVMRVRFIEZS T00gdGVtcG9yYWxfcm5nCiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAx LTA1JyBUTyAnMjAxOC0wMS0xMCcKIFdIRVJFIGlkID0gJ1s1LDYpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hF UkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIC0tIHRoZW4gZGVs ZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3Vj Y2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sz LDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKLS0t IGNsZWFuIHVwOgotREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJl bnRfaWQgPSAnWzUsNiknOwotREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIElO ICgnWzUsNiknKTsKIAogLS0KIC0tIHJuZzJybmcgdGVzdCBPTiBVUERBVEUvREVMRVRFIG9w dGlvbnMKIC0tCistLSBUT0M6CistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0g cmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQg TlVMTAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIHVw ZGF0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAor LS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJl ZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVu Y2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQg ZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVm ZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFV TFQgc3Vic2V0KQogCistLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FE RQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOwog SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzQsNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYs NyknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Ju ZzJybmcKICAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCiAgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKICAgICBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9y bmcKICAgICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRv dmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0g J1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3 LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5n IFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUg dGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0 b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hF UkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQ TyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVu Y2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworCistLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5V TEwKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKLUlOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbOSwxMCknKTsKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtf cm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbNiw3KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwog ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKICAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZwogICAg IE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4 KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0g bm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScg V0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQg aWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5 LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIAorLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLQorCitUUlVOQ0FURSB0ZW1w b3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRl bGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg ZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4 LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisKKy0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVM VAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOwog SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwt MV0nLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTIsMTMpJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKIEFM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKICAgQUxURVIgQ09MVU1OIHBhcmVudF9p ZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19ybmcycm5nX2ZrLApAQCAtMTU2NSw2ICsxNjU0LDI1MiBAQCBBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycm5nCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCiAgICAgT04gREVMRVRFIFNF VCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVS RSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBP IHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3Mg dHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdb OSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyBy ZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFs X3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Niw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0w MScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxf cm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3JuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVm ZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdb Niw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9mazJfcm5nMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJy bmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgQ0FTQ0FERSBP TiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRF IHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0w MScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitV UERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVm ZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4 LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s5LDEw KScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdb MjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVm ZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdb Niw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxl dGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAn WzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBO VUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVt cG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYs NyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIERS T1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lk MSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7Cist LSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBT RVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIg U0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworVVBE QVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg TlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwg dGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMg KCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAn WzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRF IEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5 LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAn WzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5n IFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29s cywgU0VUIE5VTEwgc3Vic2V0KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVt cG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYs NyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVS SU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQg TlVMTDsKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKyAgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorICBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQx LCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBOVUxMIChwYXJlbnRfaWQxKSBPTiBVUERBVEUg U0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9y bmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4 LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCist LQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn Wy0xLC0xXScsICdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNykn LCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmsyX3JuZzJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERF RkFVTFQgJ1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMiBTRVQgREVGQVVM VCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19m aywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JF SUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCBP TiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQ REFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgp JyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbNyw4 KScsIGlkMiA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworVVBE QVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSwxMCknLCBpZDIgPSAnWzksMTApJyBX SEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAs MjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywg J1stMSwtMV0nLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSkn KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxU ICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCisKK1RSVU5DQVRF IHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2 LDcpJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Ju ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qg c2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJy bmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAor ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHZhbGlkX2F0KSBPTiBV UERBVEUgU0VUIERFRkFVTFQ7CistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9y bmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFd JywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIChwYXJlbnRfaWQx KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1stMSwtMV0nLCAnWzgsOSknLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAKIC0tCiAt LSB0ZXN0IEZPUkVJR04gS0VZLCBtdWx0aXJhbmdlIHJlZmVyZW5jZXMgbXVsdGlyYW5nZQpA QCAtMjA4MSw2ICsyNDE2LDQwNiBAQCBXSEVSRSBpZCA9ICdbNSw2KSc7CiBERUxFVEUgRlJP TSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVU RSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSk7CiAKKy0tCistLSBtbHRybmcybWx0cm5nIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRp b25zCistLQorLS0gVE9DOgorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tIHJl ZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5V TEwKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCB1cGRh dGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0t IHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNl ZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRl bGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRl cyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLSByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJl bmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxU IHN1YnNldCkKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUK Ky0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcp Jyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5n CisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcy MDIwLTAxLTAxJykpKSBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBE QVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28g cmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAo J1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlk ID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLQorCitUUlVOQ0FURSB0 ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScs ICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBv cmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAor LS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNykn KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcK KyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAn MjAyMC0wMS0wMScpKSkgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBp ZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTkt MDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tCisKK1RSVU5DQVRF IHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAx JywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVt cG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZB VUxUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxs KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNykn KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09M VU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisgICAg T04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRv dmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywg JzIwMjAtMDEtMDEnKSkpIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitV UERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYs NyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQg aWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5 LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0x XScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEn LCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOwor REVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAo dHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdb Niw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRF IENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3Jh bF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkMSA9ICdbNyw4KScg V0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEg PSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsK K1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEg PSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVt cG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwx MDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScp KSkgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIg V0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgs OSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lk MikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBz Y2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNykn KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIERST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFy ZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMg dGVtcG9yYWxfbWx0cm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VU IE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9t bHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkMSA9ICdbNyw4KScgV0hF UkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cist LSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEgPSAn WzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAn WzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRl bGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBv cmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScs ICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAx KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgor REVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAo ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkp IFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdI RVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2Nh bGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21s dHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAn WzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUg UEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n CisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKyAg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JF SUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAo dmFsaWRfYXQpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQy LCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisg ICAgT04gREVMRVRFIFNFVCBOVUxMIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIE5VTEw7 CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21s dHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYsNyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgor REVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgs OSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJF IGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIw MCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVy ZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJV TkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxs LCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVNTiBwYXJl bnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9p ZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIK KyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAx LTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCkn IFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQx ID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4 LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5 LDEwKScsIGlkMiA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAo dHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdb Niw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp LCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdI RVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJF IGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0g RksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAy MC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2Nh bGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFs X21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywg J1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3Ug Y2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQg J1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2Zr CisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxp ZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIKKyAgICBPTiBERUxFVEUg U0VUIERFRkFVTFQgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBvazoK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVN TiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQx LCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9tbHRybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIChwYXJlbnRfaWQxKSBPTiBV UERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVS RSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBp ZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzgsOSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKworLS0gRksgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlCisKK0NSRUFURSBUWVBF IG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1YnR5cGU9ZGF0ZSk7CisKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ybmczICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBteWRhdGVyYW5n ZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsz X3JuZzJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IG15ZGF0ZXJhbmdlLAor ICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrM19ybmcy cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMyAo aWQsIFBFUklPRCB2YWxpZF9hdCkgT04gREVMRVRFIENBU0NBREUKKyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgbXlkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrM19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzUs NiknLCBteWRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScp OworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzgsOSknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazNfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7 CisKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmszX3JuZzJybmc7CitEUk9QIFRBQkxFIHRlbXBv cmFsX3JuZzM7CitEUk9QIFRZUEUgbXlkYXRlcmFuZ2U7CisKIC0tCiAtLSBGSyBiZXR3ZWVu IHBhcnRpdGlvbmVkIHRhYmxlczogcmFuZ2VzCiAtLQpAQCAtMjA5MSw4ICsyODI2LDggQEAg Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCiAgIG5hbWUgdGV4dCwK ICAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlvbmVkX3JuZ19wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCiApIFBBUlRJVElPTiBCWSBMSVNUIChp ZCk7Ci1DUkVBVEUgVEFCTEUgdHAxIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgp JywgJ1s5LDEwKScsICdbMTEsMTIpJyk7Ci1DUkVBVEUgVEFCTEUgdHAyIHBhcnRpdGlvbiBP RiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1syLDMpJywgJ1s0 LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScpOworQ1JFQVRF IFRBQkxFIHRwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBW QUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCkn LCAnWzExLDEyKScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjAp JywgJ1syMSwyMiknLCAnWzIzLDI0KScpOworQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04g T0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdb MiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMykn LCAnWzE0LDE1KScsICdbMTYsMTcpJywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMp JywgJ1syNCwyNSknKTsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAo aWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAw MC0wMS0wMScsICcyMDAwLTAyLTAxJyksICdvbmUnKSwKICAgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUnKSwKQEAgLTIxMDYsOCArMjg0 MSw4IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nICgK ICAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKICkgUEFSVElU SU9OIEJZIExJU1QgKGlkKTsKLUNSRUFURSBUQUJMRSB0ZmtwMSBwYXJ0aXRpb24gT0YgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAn WzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknKTsKLUNSRUFU RSBUQUJMRSB0ZmtwMiBwYXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSkn LCAnWzEwLDExKScsICdbMTIsMTMpJyk7CitDUkVBVEUgVEFCTEUgdGZrcDEgUEFSVElUSU9O IE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1sx LDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywg J1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScs ICdbMjMsMjQpJyk7CitDUkVBVEUgVEFCTEUgdGZrcDIgUEFSVElUSU9OIE9GIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMp JywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdb MTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAn WzI0LDI1KScpOwogCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNpbmcgaW5zZXJ0 cwpAQCAtMjIwMCwzNiArMjkzNSw5MCBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZQog LS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKIC0tCiAKK1RS VU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nCiAgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7 CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsOCkn IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNCw1KSc7CitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1s0LDUpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMCwxMSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzE1LDE2KScpOworVVBE QVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzE2LDE3KScgV0hFUkUg aWQgPSAnWzE1LDE2KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAsMTEpJzsKIAogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRl cyBDQVNDQURFCiAtLQogCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb OCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVS RSBpZCA9ICdbOCw5KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgV0hFUkUgaWQgPSAnWzUsNiknOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzE3LDE4KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxNywxOCknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTEsMTIpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxNywxOCknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbMTcsMTgpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMSwxMiknOworCiAtLQogLS0gcGFydGl0aW9u ZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCiAtLQogCitUUlVOQ0FURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzksMTApJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nCiAgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKK1VQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVS RSBpZCA9ICdbOSwxMCknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgU0VUIGlkID0gJ1sxMCwxMSknIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzYsNyknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxOCwxOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgsMTkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEyLDEzKScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTgsMTkpJyk7CitVUERB VEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTksMjApJyBXSEVSRSBp ZCA9ICdbMTgsMTkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1sxMiwxMyknOwogCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVz IFNFVCBOVUxMCiAtLQogCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1s3LDgpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1sxMSwxMiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg V0hFUkUgaWQgPSAnWzExLDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzcsOCknOworREVMRVRFIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1sxMSwxMiknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s3LDgpJzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMjAsMjEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzIwLDIxKScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMywxNCknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzIwLDIxKScpOworREVMRVRFIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1syMCwyMSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEzLDE0KSc7CisKIC0tCiAtLSBw YXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKIC0tCiAKK1RS VU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMCwxKScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxMiwxMyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKICAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQg REVGQVVMVCAnWy0xLC0xXScsCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrLApAQCAtMjIzNywxMSArMzAyNiwzNCBAQCBBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCiAgICAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nCiAgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQg REVGQVVMVDsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9 ICdbMTMsMTQpJyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CitVUERBVEUg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9 ICdbMTIsMTMpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwyMyknLCBkYXRlcmFu Z2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTQsMTUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1syMiwyMyknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0g J1syMywyNCknIFdIRVJFIGlkID0gJ1syMiwyMyknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CiAKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyBy ZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMCwxKScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE0LDE1KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1s5LDEwKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyksICdbMTQsMTUpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAt MDEtMDEnIFdIRVJFIGlkID0gJ1sxNCwxNSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzksMTApJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMjQsMjUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzI0LDI1KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxNSwxNiknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzI0LDI1KScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1syNCwyNSkn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzE1LDE2KSc7CisK IERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKIERST1AgVEFC TEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nOwogCkBAIC0yMzY0LDM2ICszMTc2LDkwIEBA IERFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11CiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVu Y2VkIHVwZGF0ZXMgQ0FTQ0FERQogLS0KIAorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfbWx0cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf bWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbNiw3KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZwogICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf bWx0cm5nMm1sdHJuZ19maywKICAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21s dHJuZwogICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworVVBEQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAo ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkp IFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s0LDUp JzsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1s3LDgp JyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzQsNSknOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx NSwxNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0w MS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMTAsMTEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSksICdbMTUsMTYpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIFNFVCBpZCA9ICdbMTYsMTcpJyBXSEVSRSBpZCA9ICdbMTUsMTYp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMCwx MSknOwogCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NB REUKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAt MDEtMDEnKSkpIFdIRVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSkn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTcsMTgpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1sxNywxOCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzExLDEyKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp LCAnWzE3LDE4KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5n IFdIRVJFIGlkID0gJ1sxNywxOCknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzExLDEyKSc7CisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSwgJ1s5LDEwKScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZwogICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZ19maywKICAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZwogICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7 CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0w MS0wMScpKSkgU0VUIGlkID0gJ1sxMCwxMSknIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzYsNyknOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQg aWQgPSAnWzEwLDExKScgV0hFUkUgaWQgPSAnWzksMTApJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzE4LDE5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgsMTkpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1sxOCwxOSknKTsKK1VQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1sxOSwyMCknIFdIRVJF IGlkID0gJ1sxOCwxOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzEyLDEzKSc7CiAKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIE5VTEwKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMTEsMTIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf bWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s3LDgp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbMTEsMTIpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRy bmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbMTEsMTIpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVS RSBpZCA9ICdbNyw4KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRy bmcgV0hFUkUgaWQgPSAnWzExLDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzcsOCknOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1syMCwyMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIwLDIxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMTMsMTQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMjAsMjEpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzIwLDIxKScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTMsMTQpJzsKKwogLS0K IC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAogLS0K IAorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1swLDEpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEyLDEzKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzEyLDEzKScpOwog QUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwogICBB TFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbMCwxKScsCiAgIERST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrLApAQCAt MjQwMSwxMSArMzI2NywzNCBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19tbHRybmcybWx0cm5nCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nCiAg ICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKK1VQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg KGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykp KSBTRVQgaWQgPSAnWzEzLDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAn WzgsOSknOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgaWQgPSAn WzEzLDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1syMiwyMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMjIsMjMpJyk7CitVUERBVEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFNFVCBpZCA9ICdbMjMsMjQpJyBXSEVSRSBpZCA9 ICdbMjIsMjMpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxNCwxNSknOwogCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBERUZBVUxUCiAtLQogCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9t bHRybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzAsMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMTQsMTUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf ZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s5 LDEwKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpLCAnWzE0LDE1KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf bWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzE0LDE1KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzksMTApJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZyBXSEVSRSBpZCA9ICdbMTQsMTUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1syNCwyNSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzI0LDI1KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMjQsMjUpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzI0LDI1KScgQU5E IHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTUsMTYpJzsK KwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOwog RFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmc7CiAKLS0gCjIuNDIuMAoK --------------OnvqRywVNIjsiZuvTo32rvFz Content-Type: text/x-patch; charset=UTF-8; name="v45-0008-Expose-FOR-PORTION-OF-to-plpgsql-triggers.patch" Content-Disposition: attachment; filename="v45-0008-Expose-FOR-PORTION-OF-to-plpgsql-triggers.patch" Content-Transfer-Encoding: base64 RnJvbSA0YTIyMWRhYzVjYWJkZGY4M2E5MWQxNTIzNTk2NzllYTA0ZWY3MWJiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFR1ZSwgMjkgT2N0IDIwMjQgMTg6NTQ6MzcgLTA3 MDAKU3ViamVjdDogW1BBVENIIHY0NSA4LzhdIEV4cG9zZSBGT1IgUE9SVElPTiBPRiB0byBw bHBnc3FsIHRyaWdnZXJzCgpJdCBpcyBoZWxwZnVsIGZvciB0cmlnZ2VycyB0byBzZWUgd2hh dCB0aGUgRk9SIFBPUlRJT04gT0YgY2xhdXNlCnNwZWNpZmllZDogYm90aCB0aGUgY29sdW1u L3BlcmlvZCBuYW1lIGFuZCB0aGUgdGFyZ2V0ZWQgYm91bmRzLiBPdXIgUkkKdHJpZ2dlcnMg cmVxdWlyZSB0aGlzIGluZm9ybWF0aW9uLCBhbmQgd2UgYXJlIHBhc3NpbmcgaXQgYXMgcGFy dCBvZiB0aGUKVHJpZ2dlckRhdGEgc3RydWN0LiBUaGlzIGNvbW1pdCBhbGxvd3MgcGxwZ3Nx bCB0cmlnZ2VycyBmdW5jdGlvbnMgdG8KYWNjZXNzIHRoZSBzYW1lIGluZm9ybWF0aW9uLCB1 c2luZyB0aGUgbmV3IFRHX1BPUlRJT05fQ09MVU1OIGFuZApUR19QT1JUSU9OX1RBUkdFVCB2 YXJpYWJsZXMuCi0tLQogZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbCAgICAgICAgICAgICAg ICAgICAgfCAyNCArKysrKysrKysrKwogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2NvbXAuYyAg ICAgICAgICAgICAgICAgfCAyNyArKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jICAgICAgICAgICAgICAgICB8IDMyICsrKysrKysrKysrKysrKwogc3JjL3Bs L3BscGdzcWwvc3JjL3BscGdzcWwuaCAgICAgICAgICAgICAgICAgfCAgMiArCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dCB8IDQyICsrKysrKysrKyst LS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwgICAg ICB8IDE0ICsrKystLS0KIDYgZmlsZXMgY2hhbmdlZCwgMTE1IGluc2VydGlvbnMoKyksIDI2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCmluZGV4IDc4ZTQ5ODMxMzliLi4zMWJkODI0 ZWQzZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcGxwZ3NxbC5zZ21sCkBAIC00MjQ1LDYgKzQyNDUsMzAgQEAgQVNTRVJUIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25kaXRpb248L3JlcGxhY2VhYmxlPiA8 b3B0aW9uYWw+ICwgPHJlcGwKICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnkgaWQ9InBscGdzcWwtZG1s LXRyaWdnZXItdGctdGVtcG9yYWwtY29sdW1uIj4KKyAgICAgPHRlcm0+PHZhcm5hbWU+VEdf UEVSSU9EX05BTUU8L3Zhcm5hbWU+IDx0eXBlPnRleHQ8L3R5cGU+PC90ZXJtPgorICAgICA8 bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICB0aGUgY29sdW1uIG5hbWUgdXNlZCBp biBhIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsCisgICAgICAg b3IgZWxzZSA8c3ltYm9sPk5VTEw8L3N5bWJvbD4uCisgICAgICA8L3BhcmE+CisgICAgIDwv bGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5IGlk PSJwbHBnc3FsLWRtbC10cmlnZ2VyLXRnLXRlbXBvcmFsLXRhcmdldCI+CisgICAgIDx0ZXJt Pjx2YXJuYW1lPlRHX1BFUklPRF9CT1VORFM8L3Zhcm5hbWU+IDx0eXBlPnRleHQ8L3R5cGU+ PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICB0aGUgcmFu Z2UvbXVsdGlyYW5nZS9ldGMuIGdpdmVuIGFzIHRoZSBib3VuZHMgb2YgYQorICAgICAgIDxs aXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsIGVpdGhlciBkaXJlY3Rs eSAod2l0aCBwYXJlbnMgc3ludGF4KQorICAgICAgIG9yIGNvbXB1dGVkIGZyb20gdGhlIDxs aXRlcmFsPkZST008L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5UTzwvbGl0ZXJhbD4gYm91bmRz LgorICAgICAgIDxzeW1ib2w+TlVMTDwvc3ltYm9sPiBpZiA8bGl0ZXJhbD5GT1IgUE9SVElP TiBPRjwvbGl0ZXJhbD4gd2FzIG5vdCB1c2VkLgorICAgICAgIFRoaXMgaXMgYSB0ZXh0IHZh bHVlIGJhc2VkIG9uIHRoZSB0eXBlJ3Mgb3V0cHV0IGZ1bmN0aW9uLAorICAgICAgIHNpbmNl IHRoZSB0eXBlIGNhbid0IGJlIGtub3duIGF0IGZ1bmN0aW9uIGNyZWF0aW9uIHRpbWUuCisg ICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CiAg ICA8L3ZhcmlhYmxlbGlzdD4KICAgPC9wYXJhPgogCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfY29tcC5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2NvbXAuYwppbmRl eCA1NjMzZTNjNzkwNS4uNjUwZDg4MmRhYTYgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3Fs L3NyYy9wbF9jb21wLmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2NvbXAuYwpAQCAt NzE3LDYgKzcxNywzMyBAQCBkb19jb21waWxlKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLAog CQkJdmFyLT5kdHlwZSA9IFBMUEdTUUxfRFRZUEVfUFJPTUlTRTsKIAkJCSgoUExwZ1NRTF92 YXIgKikgdmFyKS0+cHJvbWlzZSA9IFBMUEdTUUxfUFJPTUlTRV9UR19BUkdWOwogCisJCQkv KiBBZGQgdGhlIHZhcmlhYmxlIHRnX3BlcmlvZF9uYW1lICovCisJCQl2YXIgPSBwbHBnc3Fs X2J1aWxkX3ZhcmlhYmxlKCJ0Z19wZXJpb2RfbmFtZSIsIDAsCisJCQkJCQkJCQkJIHBscGdz cWxfYnVpbGRfZGF0YXR5cGUoVEVYVE9JRCwKKwkJCQkJCQkJCQkJCQkJCQktMSwKKwkJCQkJ CQkJCQkJCQkJCQlmdW5jdGlvbi0+Zm5faW5wdXRfY29sbGF0aW9uLAorCQkJCQkJCQkJCQkJ CQkJCU5VTEwpLAorCQkJCQkJCQkJCSB0cnVlKTsKKwkJCUFzc2VydCh2YXItPmR0eXBlID09 IFBMUEdTUUxfRFRZUEVfVkFSKTsKKwkJCXZhci0+ZHR5cGUgPSBQTFBHU1FMX0RUWVBFX1BS T01JU0U7CisJCQkoKFBMcGdTUUxfdmFyICopIHZhciktPnByb21pc2UgPSBQTFBHU1FMX1BS T01JU0VfVEdfUEVSSU9EX05BTUU7CisKKwkJCS8qCisJCQkgKiBBZGQgdGhlIHZhcmlhYmxl IHRvIHRnX3BlcmlvZF9ib3VuZHMuCisJCQkgKiBUaGlzIGNvdWxkIGJlIGFueSByYW5nZXR5 cGUgb3IgbXVsdGlyYW5nZXR5cGUKKwkJCSAqIG9yIHVzZXItc3VwcGxpZWQgdHlwZSwKKwkJ CSAqIHNvIHRoZSBiZXN0IHdlIGNhbiBvZmZlciBpcyBhIFRFWFQgdmFyaWFibGUuCisJCQkg Ki8KKwkJCXZhciA9IHBscGdzcWxfYnVpbGRfdmFyaWFibGUoInRnX3BlcmlvZF9ib3VuZHMi LCAwLAorCQkJCQkJCQkJCSBwbHBnc3FsX2J1aWxkX2RhdGF0eXBlKFRFWFRPSUQsCisJCQkJ CQkJCQkJCQkJCQkJLTEsCisJCQkJCQkJCQkJCQkJCQkJZnVuY3Rpb24tPmZuX2lucHV0X2Nv bGxhdGlvbiwKKwkJCQkJCQkJCQkJCQkJCQlOVUxMKSwKKwkJCQkJCQkJCQkgdHJ1ZSk7CisJ CQlBc3NlcnQodmFyLT5kdHlwZSA9PSBQTFBHU1FMX0RUWVBFX1ZBUik7CisJCQl2YXItPmR0 eXBlID0gUExQR1NRTF9EVFlQRV9QUk9NSVNFOworCQkJKChQTHBnU1FMX3ZhciAqKSB2YXIp LT5wcm9taXNlID0gUExQR1NRTF9QUk9NSVNFX1RHX1BFUklPRF9CT1VORFM7CisKIAkJCWJy ZWFrOwogCiAJCWNhc2UgUExQR1NRTF9FVkVOVF9UUklHR0VSOgpkaWZmIC0tZ2l0IGEvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMKaW5kZXggODZjNWJkMzI0YTkuLmVjOTM3ODkzMzdmIDEwMDY0NAotLS0gYS9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZXhlYy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMKQEAgLTEzNjksNiArMTM2OSw3IEBAIHBscGdzcWxfZnVsZmlsbF9wcm9taXNlKFBMcGdT UUxfZXhlY3N0YXRlICplc3RhdGUsCiAJCQkJCQlQTHBnU1FMX3ZhciAqdmFyKQogewogCU1l bW9yeUNvbnRleHQgb2xkY29udGV4dDsKKwlGb3JQb3J0aW9uT2ZTdGF0ZSAqZnBvOwogCiAJ aWYgKHZhci0+cHJvbWlzZSA9PSBQTFBHU1FMX1BST01JU0VfTk9ORSkKIAkJcmV0dXJuOwkJ CQkJLyogbm90aGluZyB0byBkbyAqLwpAQCAtMTUwMCw2ICsxNTAxLDM3IEBAIHBscGdzcWxf ZnVsZmlsbF9wcm9taXNlKFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsCiAJCQl9CiAJCQli cmVhazsKIAorCQljYXNlIFBMUEdTUUxfUFJPTUlTRV9UR19QRVJJT0RfTkFNRToKKwkJCWlm IChlc3RhdGUtPnRyaWdkYXRhID09IE5VTEwpCisJCQkJZWxvZyhFUlJPUiwgInRyaWdnZXIg cHJvbWlzZSBpcyBub3QgaW4gYSB0cmlnZ2VyIGZ1bmN0aW9uIik7CisJCQlpZiAoZXN0YXRl LT50cmlnZGF0YS0+dGdfdGVtcG9yYWwpCisJCQkJYXNzaWduX3RleHRfdmFyKGVzdGF0ZSwg dmFyLCBlc3RhdGUtPnRyaWdkYXRhLT50Z190ZW1wb3JhbC0+ZnBfcmFuZ2VOYW1lKTsKKwkJ CWVsc2UKKwkJCQlhc3NpZ25fc2ltcGxlX3Zhcihlc3RhdGUsIHZhciwgKERhdHVtKSAwLCB0 cnVlLCBmYWxzZSk7CisJCQlicmVhazsKKworCQljYXNlIFBMUEdTUUxfUFJPTUlTRV9UR19Q RVJJT0RfQk9VTkRTOgorCQkJZnBvID0gZXN0YXRlLT50cmlnZGF0YS0+dGdfdGVtcG9yYWw7 CisKKwkJCWlmIChlc3RhdGUtPnRyaWdkYXRhID09IE5VTEwpCisJCQkJZWxvZyhFUlJPUiwg InRyaWdnZXIgcHJvbWlzZSBpcyBub3QgaW4gYSB0cmlnZ2VyIGZ1bmN0aW9uIik7CisJCQlp ZiAoZnBvKQorCQkJeworCisJCQkJT2lkCQlmdW5jaWQ7CisJCQkJYm9vbAl2YXJsZW5hOwor CisJCQkJZ2V0VHlwZU91dHB1dEluZm8oZnBvLT5mcF9yYW5nZVR5cGUsICZmdW5jaWQsICZ2 YXJsZW5hKTsKKwkJCQlBc3NlcnQoT2lkSXNWYWxpZChmdW5jaWQpKTsKKworCQkJCWFzc2ln bl90ZXh0X3Zhcihlc3RhdGUsIHZhciwKKwkJCQkJCQkJT2lkT3V0cHV0RnVuY3Rpb25DYWxs KGZ1bmNpZCwKKwkJCQkJCQkJCQkJCQkgIGZwby0+ZnBfdGFyZ2V0UmFuZ2UpKTsKKwkJCX0K KwkJCWVsc2UKKwkJCQlhc3NpZ25fc2ltcGxlX3Zhcihlc3RhdGUsIHZhciwgKERhdHVtKSAw LCB0cnVlLCBmYWxzZSk7CisJCQlicmVhazsKKwogCQljYXNlIFBMUEdTUUxfUFJPTUlTRV9U R19FVkVOVDoKIAkJCWlmIChlc3RhdGUtPmV2dHJpZ2RhdGEgPT0gTlVMTCkKIAkJCQllbG9n KEVSUk9SLCAiZXZlbnQgdHJpZ2dlciBwcm9taXNlIGlzIG5vdCBpbiBhbiBldmVudCB0cmln Z2VyIGZ1bmN0aW9uIik7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3Nx bC5oIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaAppbmRleCA1MGMzYjI4NDcyYi4u YmY2NjM0MDE1MWEgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgK KysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaApAQCAtODQsNiArODQsOCBAQCB0 eXBlZGVmIGVudW0gUExwZ1NRTF9wcm9taXNlX3R5cGUKIAlQTFBHU1FMX1BST01JU0VfVEdf QVJHViwKIAlQTFBHU1FMX1BST01JU0VfVEdfRVZFTlQsCiAJUExQR1NRTF9QUk9NSVNFX1RH X1RBRywKKwlQTFBHU1FMX1BST01JU0VfVEdfUEVSSU9EX05BTUUsCisJUExQR1NRTF9QUk9N SVNFX1RHX1BFUklPRF9CT1VORFMsCiB9IFBMcGdTUUxfcHJvbWlzZV90eXBlOwogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dAppbmRl eCAxOWE0ZTlhYzUyMy4uNGY5ZWUyOGYwNzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CkBAIC01MTIsMTYgKzUxMiwxOCBAQCBSRVRV Uk5TIFRSSUdHRVIgTEFOR1VBR0UgcGxwZ3NxbCBBUwogJCQKIEJFR0lOCiAgIElGIFRHX09Q ID0gJ0lOU0VSVCcgVEhFTgotICAgIFJBSVNFIE5PVElDRSAnJTogJSAlLCBORVcgdGFibGUg PSAlJywKLSAgICAgIFRHX05BTUUsIFRHX09QLCBUR19MRVZFTCwgKFNFTEVDVCBzdHJpbmdf YWdnKG5ld190YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFibGUp OworICAgIFJBSVNFIE5PVElDRSAnJTogJSBGT1IgUE9SVElPTiBPRiAlICglKSAlLCBORVcg dGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX09QLCBUR19QRVJJT0RfTkFNRSwgVEdf UEVSSU9EX0JPVU5EUywgVEdfTEVWRUwsCisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cobmV3 X3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG5ld190YWJsZSk7CiAgIEVM U0lGIFRHX09QID0gJ1VQREFURScgVEhFTgotICAgIFJBSVNFIE5PVElDRSAnJTogJSAlLCBP TEQgdGFibGUgPSAlLCBORVcgdGFibGUgPSAlJywKLSAgICAgIFRHX05BTUUsIFRHX09QLCBU R19MRVZFTCwKKyAgICBSQUlTRSBOT1RJQ0UgJyU6ICUgRk9SIFBPUlRJT04gT0YgJSAoJSkg JSwgT0xEIHRhYmxlID0gJSwgTkVXIHRhYmxlID0gJScsCisgICAgICBUR19OQU1FLCBUR19P UCwgVEdfUEVSSU9EX05BTUUsIFRHX1BFUklPRF9CT1VORFMsIFRHX0xFVkVMLAogICAgICAg KFNFTEVDVCBzdHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkg RlJPTSBvbGRfdGFibGUpLAogICAgICAgKFNFTEVDVCBzdHJpbmdfYWdnKG5ld190YWJsZTo6 dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFibGUpOwogICBFTFNJRiBUR19P UCA9ICdERUxFVEUnIFRIRU4KLSAgICBSQUlTRSBOT1RJQ0UgJyU6ICUgJSwgT0xEIHRhYmxl ID0gJScsCi0gICAgICBUR19OQU1FLCBUR19PUCwgVEdfTEVWRUwsIChTRUxFQ1Qgc3RyaW5n X2FnZyhvbGRfdGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQpIEZST00gb2xkX3RhYmxl KTsKKyAgICBSQUlTRSBOT1RJQ0UgJyU6ICUgRk9SIFBPUlRJT04gT0YgJSAoJSkgJSwgT0xE IHRhYmxlID0gJScsCisgICAgICBUR19OQU1FLCBUR19PUCwgVEdfUEVSSU9EX05BTUUsIFRH X1BFUklPRF9CT1VORFMsIFRHX0xFVkVMLAorICAgICAgKFNFTEVDVCBzdHJpbmdfYWdnKG9s ZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBvbGRfdGFibGUpOwogICBF TkQgSUY7CiAgIFJFVFVSTiBOVUxMOwogRU5EOwpAQCAtNTU0LDI5ICs1NTYsMjkgQEAgQkVH SU47CiBVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAogICBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOS0wMS0wMScKICAgU0VUIG5hbWUgPSAn MjAxOC0wMS0xNV90b18yMDE5LTAxLTAxJzsKLU5PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rl c3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBST1csIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAx OC0wMS0wMSwyMDE4LTAxLTE1KSIsb25lKQotTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVz dF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQgU1RBVEVNRU5ULCBORVcgdGFibGUgPSAoIlsx LDIpIiwiWzIwMTgtMDEtMDEsMjAxOC0wMS0xNSkiLG9uZSkKLU5PVElDRTogIGZvcl9wb3J0 aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBST1csIE5FVyB0YWJsZSA9ICgiWzEs MikiLCJbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKQotTk9USUNFOiAgZm9yX3BvcnRp b25fb2ZfdGVzdF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQgU1RBVEVNRU5ULCBORVcgdGFi bGUgPSAoIlsxLDIpIiwiWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkiLG9uZSkKLU5PVElDRTog IGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWc6IFVQREFURSBST1csIE9MRCB0YWJs ZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKSwgTkVXIHRhYmxl ID0gKCJbMSwyKSIsIlsyMDE4LTAxLTE1LDIwMTktMDEtMDEpIiwyMDE4LTAxLTE1X3RvXzIw MTktMDEtMDEpCi1OT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnX3N0 bXQ6IFVQREFURSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0w MSwyMDIwLTAxLTAxKSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTE1 LDIwMTktMDEtMDEpIiwyMDE4LTAxLTE1X3RvXzIwMTktMDEtMDEpCitOT1RJQ0U6ICBmb3Jf cG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnOiBJTlNFUlQgRk9SIFBPUlRJT04gT0YgPE5V TEw+ICg8TlVMTD4pIFJPVywgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAxLDIw MTgtMDEtMTUpIixvbmUpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90 cmlnX3N0bXQ6IElOU0VSVCBGT1IgUE9SVElPTiBPRiA8TlVMTD4gKDxOVUxMPikgU1RBVEVN RU5ULCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEsMjAxOC0wMS0xNSkiLG9u ZSkKK05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBG T1IgUE9SVElPTiBPRiA8TlVMTD4gKDxOVUxMPikgUk9XLCBORVcgdGFibGUgPSAoIlsxLDIp IiwiWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkiLG9uZSkKK05PVElDRTogIGZvcl9wb3J0aW9u X29mX3Rlc3RfaW5zZXJ0X3RyaWdfc3RtdDogSU5TRVJUIEZPUiBQT1JUSU9OIE9GIDxOVUxM PiAoPE5VTEw+KSBTVEFURU1FTlQsIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKSIsb25lKQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRh dGVfdHJpZzogVVBEQVRFIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChbMjAxOC0wMS0xNSwy MDE5LTAxLTAxKSkgUk9XLCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEsMjAy MC0wMS0wMSkiLG9uZSksIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0xNSwyMDE5 LTAxLTAxKSIsMjAxOC0wMS0xNV90b18yMDE5LTAxLTAxKQorTk9USUNFOiAgZm9yX3BvcnRp b25fb2ZfdGVzdF91cGRhdGVfdHJpZ19zdG10OiBVUERBVEUgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgKFsyMDE4LTAxLTE1LDIwMTktMDEtMDEpKSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9 ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKSwgTkVXIHRhYmxlID0g KCJbMSwyKSIsIlsyMDE4LTAxLTE1LDIwMTktMDEtMDEpIiwyMDE4LTAxLTE1X3RvXzIwMTkt MDEtMDEpCiBST0xMQkFDSzsKIEJFR0lOOwogREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdAogICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDEt MjEnOwotTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZzogSU5TRVJU IFJPVywgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTIxLDIwMjAtMDEtMDEpIixv bmUpCi1OT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnX3N0bXQ6IElO U0VSVCBTVEFURU1FTlQsIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0yMSwyMDIw LTAxLTAxKSIsb25lKQotTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJp ZzogREVMRVRFIFJPVywgT0xEIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAxLDIwMjAt MDEtMDEpIixvbmUpCi1OT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2RlbGV0ZV90cmln X3N0bXQ6IERFTEVURSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0w MS0wMSwyMDIwLTAxLTAxKSIsb25lKQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9p bnNlcnRfdHJpZzogSU5TRVJUIEZPUiBQT1JUSU9OIE9GIDxOVUxMPiAoPE5VTEw+KSBST1cs IE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0yMSwyMDIwLTAxLTAxKSIsb25lKQor Tk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQg Rk9SIFBPUlRJT04gT0YgPE5VTEw+ICg8TlVMTD4pIFNUQVRFTUVOVCwgTkVXIHRhYmxlID0g KCJbMSwyKSIsIlsyMDE4LTAxLTIxLDIwMjAtMDEtMDEpIixvbmUpCitOT1RJQ0U6ICBmb3Jf cG9ydGlvbl9vZl90ZXN0X2RlbGV0ZV90cmlnOiBERUxFVEUgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgKCgsMjAxOC0wMS0yMSkpIFJPVywgT0xEIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4 LTAxLTAxLDIwMjAtMDEtMDEpIixvbmUpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0 X2RlbGV0ZV90cmlnX3N0bXQ6IERFTEVURSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoKCwy MDE4LTAxLTIxKSkgU1RBVEVNRU5ULCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEt MDEsMjAyMC0wMS0wMSkiLG9uZSkKIFJPTExCQUNLOwogQkVHSU47CiBVUERBVEUgZm9yX3Bv cnRpb25fb2ZfdGVzdAogICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8g JzIwMTgtMDEtMDInCiAgIFNFVCBuYW1lID0gJ05VTExfdG9fMjAxOC0wMS0wMSc7Ci1OT1RJ Q0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnOiBJTlNFUlQgUk9XLCBORVcg dGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDIsMjAyMC0wMS0wMSkiLG9uZSkKLU5PVElD RTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWdfc3RtdDogSU5TRVJUIFNUQVRF TUVOVCwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAyLDIwMjAtMDEtMDEpIixv bmUpCi1OT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnOiBVUERBVEUg Uk9XLCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkiLG9u ZSksIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKSIsTlVM TF90b18yMDE4LTAxLTAxKQotTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVf dHJpZ19zdG10OiBVUERBVEUgU1RBVEVNRU5ULCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzIw MTgtMDEtMDEsMjAyMC0wMS0wMSkiLG9uZSksIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAx OC0wMS0wMSwyMDE4LTAxLTAyKSIsTlVMTF90b18yMDE4LTAxLTAxKQorTk9USUNFOiAgZm9y X3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZzogSU5TRVJUIEZPUiBQT1JUSU9OIE9GIDxO VUxMPiAoPE5VTEw+KSBST1csIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMiwy MDIwLTAxLTAxKSIsb25lKQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRf dHJpZ19zdG10OiBJTlNFUlQgRk9SIFBPUlRJT04gT0YgPE5VTEw+ICg8TlVMTD4pIFNUQVRF TUVOVCwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAyLDIwMjAtMDEtMDEpIixv bmUpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnOiBVUERBVEUg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKCgsMjAxOC0wMS0wMikpIFJPVywgT0xEIHRhYmxl ID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIixvbmUpLCBORVcgdGFibGUg PSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEsMjAxOC0wMS0wMikiLE5VTExfdG9fMjAxOC0wMS0w MSkKK05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWdfc3RtdDogVVBE QVRFIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0ICgoLDIwMTgtMDEtMDIpKSBTVEFURU1FTlQs IE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKSwg TkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAxLDIwMTgtMDEtMDIpIixOVUxMX3Rv XzIwMTgtMDEtMDEpCiBST0xMQkFDSzsKIC0tIFRlc3Qgd2l0aCBtdWx0aXJhbmdlcwogQ1JF QVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2Zvcl9wb3J0aW9uX29mLnNxbAppbmRleCBlNjZhNTVmZTAxNC4uY2QxNjQ1YTQzNmYgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwKQEAgLTM5NiwxNiAr Mzk2LDE4IEBAIFJFVFVSTlMgVFJJR0dFUiBMQU5HVUFHRSBwbHBnc3FsIEFTCiAkJAogQkVH SU4KICAgSUYgVEdfT1AgPSAnSU5TRVJUJyBUSEVOCi0gICAgUkFJU0UgTk9USUNFICclOiAl ICUsIE5FVyB0YWJsZSA9ICUnLAotICAgICAgVEdfTkFNRSwgVEdfT1AsIFRHX0xFVkVMLCAo U0VMRUNUIHN0cmluZ19hZ2cobmV3X3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBG Uk9NIG5ld190YWJsZSk7CisgICAgUkFJU0UgTk9USUNFICclOiAlIEZPUiBQT1JUSU9OIE9G ICUgKCUpICUsIE5FVyB0YWJsZSA9ICUnLAorICAgICAgVEdfTkFNRSwgVEdfT1AsIFRHX1BF UklPRF9OQU1FLCBUR19QRVJJT0RfQk9VTkRTLCBUR19MRVZFTCwKKyAgICAgIChTRUxFQ1Qg c3RyaW5nX2FnZyhuZXdfdGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQpIEZST00gbmV3 X3RhYmxlKTsKICAgRUxTSUYgVEdfT1AgPSAnVVBEQVRFJyBUSEVOCi0gICAgUkFJU0UgTk9U SUNFICclOiAlICUsIE9MRCB0YWJsZSA9ICUsIE5FVyB0YWJsZSA9ICUnLAotICAgICAgVEdf TkFNRSwgVEdfT1AsIFRHX0xFVkVMLAorICAgIFJBSVNFIE5PVElDRSAnJTogJSBGT1IgUE9S VElPTiBPRiAlICglKSAlLCBPTEQgdGFibGUgPSAlLCBORVcgdGFibGUgPSAlJywKKyAgICAg IFRHX05BTUUsIFRHX09QLCBUR19QRVJJT0RfTkFNRSwgVEdfUEVSSU9EX0JPVU5EUywgVEdf TEVWRUwsCiAgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cob2xkX3RhYmxlOjp0ZXh0LCAnLCAn IE9SREVSIEJZIGlkKSBGUk9NIG9sZF90YWJsZSksCiAgICAgICAoU0VMRUNUIHN0cmluZ19h Z2cobmV3X3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG5ld190YWJsZSk7 CiAgIEVMU0lGIFRHX09QID0gJ0RFTEVURScgVEhFTgotICAgIFJBSVNFIE5PVElDRSAnJTog JSAlLCBPTEQgdGFibGUgPSAlJywKLSAgICAgIFRHX05BTUUsIFRHX09QLCBUR19MRVZFTCwg KFNFTEVDVCBzdHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkg RlJPTSBvbGRfdGFibGUpOworICAgIFJBSVNFIE5PVElDRSAnJTogJSBGT1IgUE9SVElPTiBP RiAlICglKSAlLCBPTEQgdGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX09QLCBUR19Q RVJJT0RfTkFNRSwgVEdfUEVSSU9EX0JPVU5EUywgVEdfTEVWRUwsCisgICAgICAoU0VMRUNU IHN0cmluZ19hZ2cob2xkX3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG9s ZF90YWJsZSk7CiAgIEVORCBJRjsKICAgUkVUVVJOIE5VTEw7CiBFTkQ7Ci0tIAoyLjQyLjAK Cg== --------------OnvqRywVNIjsiZuvTo32rvFz--