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 1slBLX-005mHT-1W for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Sep 2024 18:00:11 +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 1slBLV-000ACw-MK for pgsql-hackers@arkaria.postgresql.org; Mon, 02 Sep 2024 18:00:09 +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 1slBLV-000ACo-11 for pgsql-hackers@lists.postgresql.org; Mon, 02 Sep 2024 18:00:09 +0000 Received: from mail-lf1-x135.google.com ([2a00:1450:4864:20::135]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1slBLS-000KBE-0I for pgsql-hackers@lists.postgresql.org; Mon, 02 Sep 2024 18:00:07 +0000 Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-5334879ba28so6294568e87.3 for ; Mon, 02 Sep 2024 11:00:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725300004; x=1725904804; darn=lists.postgresql.org; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=k1ccN97NABo2i/WJdIpIV5sh5wKoRKHQh6B53YP69MU=; b=h4NTCWHqha6KO1bmtmGaDUISUWafh14BQJQRpjE/kAkepHrgkKlYmc442bnSwO3HAY m1fMNZEyPdLjOkM4VQT1lhN02nxMNL3dRHY2QQ8hVjdRabHUFohLJUxaV5Uj3p0mHObJ T34vezisWSVgIPZOTdfAvrdwOXpfHqETzsi+PPwSAxF+rs73OcbS7CLyqnfJaQ3WwAVb WpqLPBMoHs/u4bGeZiJwvfcy5OjUYjwsesvTl1Fxdt6DQkaDPtz+0X9CzmcGwmk+gLdo EXQ2LTByI3Ba/GzZS/LglIRCW+3rwhvhTODpeI7eAdh2rkfowpobJDJCbCTLpmMjDJvP M76Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725300004; x=1725904804; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=k1ccN97NABo2i/WJdIpIV5sh5wKoRKHQh6B53YP69MU=; b=plPWlVWHiX7gG+573iDDa44QruMglcdMlLbI8KEmczyDpuVBCgOMdpkRBCKaL3L54Q rooRu/toHFlX5WWW5ozEuEtlYpN4OY5TvkglM4nVN36M4vSVBiDZ8GJX9jyTKC/qQ1RI IlVdWseo6bmMd4pjn2N2RxgF5mECWx0s6kEj9Ag/2/qMy6oHUqCwl+B1oo5a2OYkoSPr IweVAhnnU48ayZdBzULoTrZSwnnjn6OS1of5VKZh8JZmABjLAZQWE8wBwarMQ06R87YI tl+W6vo2zB0zTs+sn5KIbP1TZLw6lRFE172Ul9JKXyK2d6uNDXQTldjkuVlJremgT8oW hEEA== X-Forwarded-Encrypted: i=1; AJvYcCW2Y0dL5cE2oaat7YNsWPGGhR2g0wHmu3/T13Sy/vQIbyhrv/wmjH6yo91rfSTzHq2jNsKKrx2dD8z+LRTR@lists.postgresql.org X-Gm-Message-State: AOJu0Yw1n3BkKN16lV8qFm/g25MpI1GpOpUB01uHrCOPE+VTVEO2f4aQ pyHbNH0dFf5TrnM4gCcT2qNQBOFNkxl0gOM2WZPq6dTVG+vtVtyF X-Google-Smtp-Source: AGHT+IFZBXiDNP5fiaIICCXcEHEPuEWdm4sebGleVNBjn/Af8i+xgd8vYvmOUWx/AyoHHVbPq4NUPQ== X-Received: by 2002:a05:6512:68e:b0:52e:768e:4d1f with SMTP id 2adb3069b0e04-53546b43645mr8599418e87.36.1725300003108; Mon, 02 Sep 2024 11:00:03 -0700 (PDT) Received: from [1.0.0.7] ([91.185.76.193]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5354079bcf7sm1723724e87.34.2024.09.02.11.00.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 02 Sep 2024 11:00:02 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------jDR5uzcLSyZmBV01k27faQls" Message-ID: Date: Mon, 2 Sep 2024 21:00:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: Typos in the code and README Content-Language: en-US To: David Rowley , Daniel Gustafsson Cc: Tom Lane , Robert Haas , Nazir Bilal Yavuz , Heikki Linnakangas , PostgreSQL Developers References: <3F577953-A29E-4722-98AD-2DA9EFF2CBB8@yesql.se> <3E020742-206E-4052-83AF-8721190A10E0@yesql.se> <39A535AF-154F-4FFD-B887-3C4EDC362DA4@yesql.se> From: Alexander Lakhin In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------jDR5uzcLSyZmBV01k27faQls Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hello, 12.08.2024 14:59, David Rowley wrote: > (I know Daniel mentioned he'd get to these, but the ScanDirection one > was my fault and I needed to clear that off my mind. I did a few > others while on this topic.) Thank you, David, for working on that! I've gathered another bunch of defects with the possible substitutions. Please take a look: adapated -> adapted becasue -> because cancelled -> canceled (introduced by 90f517821, but see 8c9da1441) cange -> change comand -> command CommitTSSLRU -> CommitTsSLRU (introduced by 53c2a97a9; maybe the fix  should be back-patched...) connectOptions2 -> pqConnectOptions2 (see 774bcffe4) Injections points -> Injection points jsetate -> jsestate LockShmemSize -> remove the sentence? (added by ec0baf949, outdated with  a794fb068) MaybeStartSlotSyncWorker -> LaunchMissingBackgroundProcesses (the logic to  start B_SLOTSYNC_WORKER moved from the former to the latter function with  3354f8528) multixact_member_buffer -> multixact_member_buffers per_data_data -> per_buffer_data (see code below the comment; introduced by  b5a9b18cd) per_buffer_private -> remove the function declaration? (the duplicate  declaration was added by a858be17c) performancewise -> performance-wise? (coined by a7f107df2) pgstat_add_kind -> pgstat_register_kind (see 7949d9594) pg_signal_autovacuum -> pg_signal_autovacuum_worker (see d2b74882c) recoveery -> recovery RegisteredWorker -> RegisteredBgWorker RUNNING_XACT -> RUNNING_XACTS sanpshot -> snapshot TypeEntry -> TypeCacheEntry (align with AttoptCacheEntry, from the same  commit 40064a8ee) The corresponding patch is attached for your convenience. Best regards, Alexander --------------jDR5uzcLSyZmBV01k27faQls Content-Type: text/x-patch; charset=UTF-8; name="fix-typos+inconsistencies.patch" Content-Disposition: attachment; filename="fix-typos+inconsistencies.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcGVjcy9za2lwX3NuYXBzaG90 X3Jlc3RvcmUuc3BlYyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcGVjcy9za2lwX3NuYXBz aG90X3Jlc3RvcmUuc3BlYwppbmRleCAzZjFmYjZmMDJjNy4uN2IzNWRiY2M5ZjMgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcGVjcy9za2lwX3NuYXBzaG90X3Jlc3Rv cmUuc3BlYworKysgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3BlY3Mvc2tpcF9zbmFwc2hv dF9yZXN0b3JlLnNwZWMKQEAgLTM5LDcgKzM5LDcgQEAgc3RlcCAiczJfZ2V0X2NoYW5nZXNf c2xvdDAiIHsgU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMo J3Nsb3QKICMgc2VyaWFsaXplcyBjb25zaXN0ZW50IHNuYXBzaG90cyB0byB0aGUgZGlzayBh dCBMU05zIHdoZXJlIGFyZSBiZWZvcmUKICMgczAtdHJhbnNhY3Rpb24ncyBjb21taXQuIEFm dGVyIHMwLXRyYW5zYWN0aW9uIGNvbW1pdHMsICJzMV9pbml0IiByZXN1bWVzIGJ1dAogIyBt dXN0IG5vdCByZXN0b3JlIGFueSBzZXJpYWxpemVkIHNuYXBzaG90cyBhbmQgd2lsbCByZWFj aCB0aGUgY29uc2lzdGVudCBzdGF0ZQotIyB3aGVuIGRlY29kaW5nIGEgUlVOTklOR19YQUNU IHJlY29yZCBnZW5lcmF0ZWQgYWZ0ZXIgczAtdHJhbnNhY3Rpb24ncyBjb21taXQuCisjIHdo ZW4gZGVjb2RpbmcgYSBSVU5OSU5HX1hBQ1RTIHJlY29yZCBnZW5lcmF0ZWQgYWZ0ZXIgczAt dHJhbnNhY3Rpb24ncyBjb21taXQuCiAjIFdlIGNoZWNrIGlmIHRoZSBnZXRfY2hhbmdlcyBv biAnc2xvdDEnIHdpbGwgbm90IHJldHVybiBhbnkgczAtdHJhbnNhY3Rpb24ncwogIyBjaGFu Z2VzIGFzIGl0cyBjb25maXJtZWRfZmx1c2hfbHNuIHdpbGwgYmUgYWZ0ZXIgdGhlIHMwLXRy YW5zYWN0aW9uJ3MgY29tbWl0CiAjIHJlY29yZC4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC94ZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL3hmdW5jLnNnbWwKaW5kZXggOWJjMjNhOWE5 MzguLmFmNzg2NGExYjViIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwveGZ1bmMuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwveGZ1bmMuc2dtbApAQCAtMzg5MSw4ICszODkxLDggQEAgc3Rh dGljIGNvbnN0IFBnU3RhdF9LaW5kSW5mbyBjdXN0b21fc3RhdHMgPSB7CiAgICAgIGl0IHdp dGggPGxpdGVyYWw+cGdzdGF0X3JlZ2lzdGVyX2tpbmQ8L2xpdGVyYWw+IGFuZCBhIHVuaXF1 ZSBJRCB1c2VkIHRvCiAgICAgIHN0b3JlIHRoZSBlbnRyaWVzIHJlbGF0ZWQgdG8gdGhpcyB0 eXBlIG9mIHN0YXRpc3RpY3M6CiA8cHJvZ3JhbWxpc3Rpbmc+Ci1leHRlcm4gUGdTdGF0X0tp bmQgcGdzdGF0X2FkZF9raW5kKFBnU3RhdF9LaW5kIGtpbmQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IFBnU3RhdF9LaW5kSW5mbyAqa2luZF9pbmZvKTsK K2V4dGVybiBQZ1N0YXRfS2luZCBwZ3N0YXRfcmVnaXN0ZXJfa2luZChQZ1N0YXRfS2luZCBr aW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBn U3RhdF9LaW5kSW5mbyAqa2luZF9pbmZvKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICAgIFdo aWxlIGRldmVsb3BpbmcgYSBuZXcgZXh0ZW5zaW9uLCB1c2UKICAgICAgPGxpdGVyYWw+UEdT VEFUX0tJTkRfRVhQRVJJTUVOVEFMPC9saXRlcmFsPiBmb3IKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L3RyYW5zYW0vbXVsdGl4YWN0LmMKaW5kZXggYTAzZDU2NTQxZDAuLjhjMzdkN2ViYTc2IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYworKysg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYwpAQCAtMjAxNyw3ICsy MDE3LDcgQEAgY2hlY2tfbXVsdGl4YWN0X29mZnNldF9idWZmZXJzKGludCAqbmV3dmFsLCB2 b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpCiB9CiAKIC8qCi0gKiBHVUMgY2hlY2tf aG9vayBmb3IgbXVsdGl4YWN0X21lbWJlcl9idWZmZXIKKyAqIEdVQyBjaGVja19ob29rIGZv ciBtdWx0aXhhY3RfbWVtYmVyX2J1ZmZlcnMKICAqLwogYm9vbAogY2hlY2tfbXVsdGl4YWN0 X21lbWJlcl9idWZmZXJzKGludCAqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBz b3VyY2UpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tYXR2aWV3LmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9tYXR2aWV3LmMKaW5kZXggOTFmMGZkNmVhM2UuLmIyNDU3 ZjEyMWE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tYXR2aWV3LmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWF0dmlldy5jCkBAIC0zODIsNyArMzgyLDcgQEAg UmVmcmVzaE1hdFZpZXdCeU9pZChPaWQgbWF0dmlld09pZCwgYm9vbCBpc19jcmVhdGUsIGJv b2wgc2tpcERhdGEsCiAJICogY29tbWFuZCB0YWcgaXMgbGVmdCBmYWxzZSBpbiBjbWR0YWds aXN0LmguIE90aGVyd2lzZSwgdGhlIGNoYW5nZSBvZgogCSAqIGNvbXBsZXRpb24gdGFnIG91 dHB1dCBtaWdodCBicmVhayBhcHBsaWNhdGlvbnMgdXNpbmcgaXQuCiAJICoKLQkgKiBXaGVu IGNhbGxlZCBmcm9tIENSRUFURSBNQVRFUklBTElaRUQgVklFVyBjb21hbmQsIHRoZSByb3dj b3VudCBpcworCSAqIFdoZW4gY2FsbGVkIGZyb20gQ1JFQVRFIE1BVEVSSUFMSVpFRCBWSUVX IGNvbW1hbmQsIHRoZSByb3djb3VudCBpcwogCSAqIGRpc3BsYXllZCB3aXRoIHRoZSBjb21t YW5kIHRhZyBDTURUQUdfU0VMRUNULgogCSAqLwogCWlmIChxYykKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3dhaXRsc24uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3dh aXRsc24uYwppbmRleCBkOWNmOWU3ZDc1ZS4uZDcwNjU3MjY3NDkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3dhaXRsc24uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy93YWl0bHNuLmMKQEAgLTM2OSw3ICszNjksNyBAQCBwZ193YWxfcmVwbGF5X3dhaXQoUEdf RlVOQ1RJT05fQVJHUykKIAkgKi8KIAlJbnZhbGlkYXRlQ2F0YWxvZ1NuYXBzaG90KCk7CiAK LQkvKiBHaXZlIHVwIGlmIHRoZXJlIGlzIHN0aWxsIGFuIGFjdGl2ZSBvciByZWdpc3RlcmVk IHNhbnBzaG90LiAqLworCS8qIEdpdmUgdXAgaWYgdGhlcmUgaXMgc3RpbGwgYW4gYWN0aXZl IG9yIHJlZ2lzdGVyZWQgc25hcHNob3QuICovCiAJaWYgKEdldE9sZGVzdFNuYXBzaG90KCkp CiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lO X1BSRVJFUVVJU0lURV9TVEFURSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRl cnAuYwppbmRleCA3NzM5NGU3NmMzNy4uYTZjNDdmNjFlMGQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtMTEwMSw3ICsxMTAxLDcgQEAgRXhlY0ludGVy cEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LCBib29sICpp c251bGwpCiAKIAkJRUVPX0NBU0UoRUVPUF9QQVJBTV9TRVQpCiAJCXsKLQkJCS8qIG91dCBv ZiBsaW5lLCB1bmxpa2VseSB0byBtYXR0ZXIgcGVyZm9ybWFuY2V3aXNlICovCisJCQkvKiBv dXQgb2YgbGluZSwgdW5saWtlbHkgdG8gbWF0dGVyIHBlcmZvcm1hbmNlLXdpc2UgKi8KIAkJ CUV4ZWNFdmFsUGFyYW1TZXQoc3RhdGUsIG9wLCBlY29udGV4dCk7CiAJCQlFRU9fTkVYVCgp OwogCQl9CkBAIC00NzYyLDcgKzQ3NjIsNyBAQCBFeGVjRXZhbEpzb25Db2VyY2lvbkZpbmlz aChFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKQogCWlmIChTT0ZUX0VSUk9S X09DQ1VSUkVEKCZqc2VzdGF0ZS0+ZXNjb250ZXh0KSkKIAl7CiAJCS8qCi0JCSAqIGpzZXN0 YXRlLT5lcnJvciBvciBqc2V0YXRlLT5lbXB0eSBiZWluZyBzZXQgbWVhbnMgdGhhdCB0aGUg ZXJyb3IKKwkJICoganNlc3RhdGUtPmVycm9yIG9yIGpzZXN0YXRlLT5lbXB0eSBiZWluZyBz ZXQgbWVhbnMgdGhhdCB0aGUgZXJyb3IKIAkJICogb2NjdXJyZWQgd2hlbiBjb2VyY2luZyB0 aGUgSnNvbkJlaGF2aW9yIHZhbHVlLiAgVGhyb3cgdGhlIGVycm9yIGluCiAJCSAqIHRoYXQg Y2FzZSB3aXRoIHRoZSBhY3R1YWwgY29lcmNpb24gZXJyb3IgbWVzc2FnZSBzaG93biBpbiB0 aGUKIAkJICogREVUQUlMIHBhcnQuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFz dGVyL3Bvc3RtYXN0ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5j CmluZGV4IGE2ZmZmOTNkYjM0Li41OWRhNzczZWUxZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rl ci9wb3N0bWFzdGVyLmMKQEAgLTI2MjgsNyArMjYyOCw3IEBAIENsZWFudXBCYWNrZW5kKEJh Y2tlbmQgKmJwLAogCQlCYWNrZ3JvdW5kV29ya2VyU3RvcE5vdGlmaWNhdGlvbnMoYnAtPnBp ZCk7CiAKIAkvKgotCSAqIElmIGl0IHdhcyBhIGJhY2tncm91bmQgd29ya2VyLCBhbHNvIHVw ZGF0ZSBpdHMgUmVnaXN0ZXJlZFdvcmtlciBlbnRyeS4KKwkgKiBJZiBpdCB3YXMgYSBiYWNr Z3JvdW5kIHdvcmtlciwgYWxzbyB1cGRhdGUgaXRzIFJlZ2lzdGVyZWRCZ1dvcmtlciBlbnRy eS4KIAkgKi8KIAlpZiAoYnAtPmJrZW5kX3R5cGUgPT0gQkFDS0VORF9UWVBFX0JHV09SS0VS KQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xv dHN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwpp bmRleCA1MTA3MjI5N2ZkMy4uMzMzNzhiYWNlYTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYworKysgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKQEAgLTgzLDcgKzgzLDcgQEAKICAqIHRoaXMg ZmxhZyBpcyBzZXQuIE5vdGUgdGhhdCB3ZSBkb24ndCBuZWVkIHRvIHJlc2V0IHRoaXMgdmFy aWFibGUgYXMgYWZ0ZXIKICAqIHByb21vdGlvbiB0aGUgc2xvdCBzeW5jIHdvcmtlciB3b24n dCBiZSByZXN0YXJ0ZWQgYmVjYXVzZSB0aGUgcG1TdGF0ZQogICogY2hhbmdlcyB0byBQTV9S VU4gZnJvbSBQTV9IT1RfU1RBTkRCWSBhbmQgd2UgZG9uJ3Qgc3VwcG9ydCBkZW1vdGluZwot ICogcHJpbWFyeSB3aXRob3V0IHJlc3RhcnRpbmcgdGhlIHNlcnZlci4gU2VlIE1heWJlU3Rh cnRTbG90U3luY1dvcmtlci4KKyAqIHByaW1hcnkgd2l0aG91dCByZXN0YXJ0aW5nIHRoZSBz ZXJ2ZXIuIFNlZSBMYXVuY2hNaXNzaW5nQmFja2dyb3VuZFByb2Nlc3Nlcy4KICAqCiAgKiBU aGUgJ3N5bmNpbmcnIGZsYWcgaXMgbmVlZGVkIHRvIHByZXZlbnQgY29uY3VycmVudCBzbG90 IHN5bmNzIHRvIGF2b2lkIHNsb3QKICAqIG92ZXJ3cml0ZXMuCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9zdG9yYWdlL2Fpby9yZWFkX3N0cmVhbS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFn ZS9haW8vcmVhZF9zdHJlYW0uYwppbmRleCA5M2NkZDM1ZmVhMC4uMDY0ODYxZTVmYjcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYWlvL3JlYWRfc3RyZWFtLmMKKysrIGIv c3JjL2JhY2tlbmQvc3RvcmFnZS9haW8vcmVhZF9zdHJlYW0uYwpAQCAtNDQ5LDcgKzQ0OSw3 IEBAIHJlYWRfc3RyZWFtX2JlZ2luX2ltcGwoaW50IGZsYWdzLAogCXF1ZXVlX3NpemUgPSBt YXhfcGlubmVkX2J1ZmZlcnMgKyAxOwogCiAJLyoKLQkgKiBBbGxvY2F0ZSB0aGUgb2JqZWN0 LCB0aGUgYnVmZmVycywgdGhlIGlvcyBhbmQgcGVyX2RhdGFfZGF0YSBzcGFjZSBpbgorCSAq IEFsbG9jYXRlIHRoZSBvYmplY3QsIHRoZSBidWZmZXJzLCB0aGUgaW9zIGFuZCBwZXJfYnVm ZmVyX2RhdGEgc3BhY2UgaW4KIAkgKiBvbmUgYmlnIGNodW5rLiAgVGhvdWdoIHdlIGhhdmUg cXVldWVfc2l6ZSBidWZmZXJzLCB3ZSB3YW50IHRvIGJlIGFibGUKIAkgKiB0byBhc3N1bWUg dGhhdCBhbGwgdGhlIGJ1ZmZlcnMgZm9yIGEgc2luZ2xlIHJlYWQgYXJlIGNvbnRpZ3VvdXMg KGkuZS4KIAkgKiBkb24ndCB3cmFwIGFyb3VuZCBoYWxmd2F5IHRocm91Z2gpLCBzbyB3ZSBh bGxvdyB0ZW1wb3Jhcnkgb3ZlcmZsb3dzIG9mCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9z dG9yYWdlL2xtZ3IvbG9jay5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYwpp bmRleCA2ZGJjNDFkYWU3MC4uYzIzOTg4OGVlYzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3N0b3JhZ2UvbG1nci9sb2NrLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xv Y2suYwpAQCAtMzk1LDggKzM5NSw3IEBAIExvY2tNYW5hZ2VyU2htZW1Jbml0KHZvaWQpCiAJ Ym9vbAkJZm91bmQ7CiAKIAkvKgotCSAqIENvbXB1dGUgaW5pdC9tYXggc2l6ZSB0byByZXF1 ZXN0IGZvciBsb2NrIGhhc2h0YWJsZXMuICBOb3RlIHRoZXNlCi0JICogY2FsY3VsYXRpb25z IG11c3QgYWdyZWUgd2l0aCBMb2NrU2htZW1TaXplIQorCSAqIENvbXB1dGUgaW5pdC9tYXgg c2l6ZSB0byByZXF1ZXN0IGZvciBsb2NrIGhhc2h0YWJsZXMuCiAJICovCiAJbWF4X3RhYmxl X3NpemUgPSBOTE9DS0VOVFMoKTsKIAlpbml0X3RhYmxlX3NpemUgPSBtYXhfdGFibGVfc2l6 ZSAvIDI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbHdsb2NrLmMg Yi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbHdsb2NrLmMKaW5kZXggZTc2NTc1NGQ4MDUu LmRiNmVkNzg0YWIzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbHds b2NrLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2x3bG9jay5jCkBAIC0xNTgs NyArMTU4LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IEJ1aWx0aW5UcmFuY2hlTmFt ZXNbXSA9IHsKIAlbTFdUUkFOQ0hFX0xBVU5DSEVSX0hBU0hdID0gIkxvZ2ljYWxSZXBMYXVu Y2hlckhhc2giLAogCVtMV1RSQU5DSEVfRFNNX1JFR0lTVFJZX0RTQV0gPSAiRFNNUmVnaXN0 cnlEU0EiLAogCVtMV1RSQU5DSEVfRFNNX1JFR0lTVFJZX0hBU0hdID0gIkRTTVJlZ2lzdHJ5 SGFzaCIsCi0JW0xXVFJBTkNIRV9DT01NSVRUU19TTFJVXSA9ICJDb21taXRUU1NMUlUiLAor CVtMV1RSQU5DSEVfQ09NTUlUVFNfU0xSVV0gPSAiQ29tbWl0VHNTTFJVIiwKIAlbTFdUUkFO Q0hFX01VTFRJWEFDVE9GRlNFVF9TTFJVXSA9ICJNdWx0aXhhY3RPZmZzZXRTTFJVIiwKIAlb TFdUUkFOQ0hFX01VTFRJWEFDVE1FTUJFUl9TTFJVXSA9ICJNdWx0aXhhY3RNZW1iZXJTTFJV IiwKIAlbTFdUUkFOQ0hFX05PVElGWV9TTFJVXSA9ICJOb3RpZnlTTFJVIiwKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3R5cGNhY2hlLmMgYi9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS90eXBjYWNoZS5jCmluZGV4IDBiOWU2MDg0NWIyLi4yZWMxMzZiN2QzMCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvdHlwY2FjaGUuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9jYWNoZS90eXBjYWNoZS5jCkBAIC0zNjcsOSArMzY3LDkgQEAg bG9va3VwX3R5cGVfY2FjaGUoT2lkIHR5cGVfaWQsIGludCBmbGFncykKIAkJY3RsLmVudHJ5 c2l6ZSA9IHNpemVvZihUeXBlQ2FjaGVFbnRyeSk7CiAKIAkJLyoKLQkJICogVHlwZUVudHJ5 IHRha2VzIGhhc2ggdmFsdWUgZnJvbSB0aGUgc3lzdGVtIGNhY2hlLiBGb3IgVHlwZUNhY2hl SGFzaAotCQkgKiB3ZSB1c2UgdGhlIHNhbWUgaGFzaCBpbiBvcmRlciB0byBzcGVlZHVwIHNl YXJjaCBieSBoYXNoIHZhbHVlLiBUaGlzCi0JCSAqIGlzIHVzZWQgYnkgaGFzaF9zZXFfaW5p dF93aXRoX2hhc2hfdmFsdWUoKS4KKwkJICogVHlwZUNhY2hlRW50cnkgdGFrZXMgaGFzaCB2 YWx1ZSBmcm9tIHRoZSBzeXN0ZW0gY2FjaGUuIEZvcgorCQkgKiBUeXBlQ2FjaGVIYXNoIHdl IHVzZSB0aGUgc2FtZSBoYXNoIGluIG9yZGVyIHRvIHNwZWVkdXAgc2VhcmNoIGJ5CisJCSAq IGhhc2ggdmFsdWUuIFRoaXMgaXMgdXNlZCBieSBoYXNoX3NlcV9pbml0X3dpdGhfaGFzaF92 YWx1ZSgpLgogCQkgKi8KIAkJY3RsLmhhc2ggPSB0eXBlX2NhY2hlX3N5c2hhc2g7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfY29tYmluZWJhY2t1cC90LzAwOF9wcm9tb3RlLnBsIGIv c3JjL2Jpbi9wZ19jb21iaW5lYmFja3VwL3QvMDA4X3Byb21vdGUucGwKaW5kZXggMTE1NGE1 ZDhiMjIuLjBlZTk2ZmYwMzdjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2NvbWJpbmViYWNr dXAvdC8wMDhfcHJvbW90ZS5wbAorKysgYi9zcmMvYmluL3BnX2NvbWJpbmViYWNrdXAvdC8w MDhfcHJvbW90ZS5wbApAQCAtNTQsNyArNTQsNyBAQCByZWNvdmVyeV90YXJnZXRfYWN0aW9u ID0gJ3BhdXNlJwogRU9NCiAkbm9kZTItPnN0YXJ0KCk7CiAKLSMgV2FpdCB1bnRpbCByZWNv dmVlcnkgcGF1c2VzLCB0aGVuIHByb21vdGUuCisjIFdhaXQgdW50aWwgcmVjb3ZlcnkgcGF1 c2VzLCB0aGVuIHByb21vdGUuCiAkbm9kZTItPnBvbGxfcXVlcnlfdW50aWwoJ3Bvc3RncmVz JywgIlNFTEVDVCBwZ19nZXRfd2FsX3JlcGxheV9wYXVzZV9zdGF0ZSgpID0gJ3BhdXNlZCc7 Iik7CiAkbm9kZTItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIHBnX3Byb21vdGUo KSIpOwogCkBAIC02NSw3ICs2NSw3IEBAIElOU0VSVCBJTlRPIG15dGFibGUgVkFMVUVTICgy LCAnYmxhY2tiZXJyeScpOwogRU9NCiAKICMgTm93IHRha2UgYW4gaW5jcmVtZW50YWwgYmFj a3VwLiBJZiBXQUwgc3VtbWFyaXphdGlvbiBkaWRuJ3QgZm9sbG93IHRoZQotIyB0aW1lbGlu ZSBjYW5nZSBjb3JyZWN0bHksIHNvbWV0aGluZyBzaG91bGQgYnJlYWsgYXQgdGhpcyBwb2lu dC4KKyMgdGltZWxpbmUgY2hhbmdlIGNvcnJlY3RseSwgc29tZXRoaW5nIHNob3VsZCBicmVh ayBhdCB0aGlzIHBvaW50LgogbXkgJGJhY2t1cDJwYXRoID0gJG5vZGUxLT5iYWNrdXBfZGly IC4gJy9iYWNrdXAyJzsKICRub2RlMi0+Y29tbWFuZF9vaygKIAlbICdwZ19iYXNlYmFja3Vw JywgJy1EJywgJGJhY2t1cDJwYXRoLCAnLS1uby1zeW5jJywgJy1jZmFzdCcsCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvY29tbW9uLmMgYi9zcmMvYmluL3BzcWwvY29tbW9uLmMKaW5k ZXggYmUyNjVhYTA1YTQuLjA2NmRjY2JkODQxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv Y29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2NvbW1vbi5jCkBAIC0xNzE1LDcgKzE3MTUs NyBAQCBFeGVjUXVlcnlBbmRQcm9jZXNzUmVzdWx0cyhjb25zdCBjaGFyICpxdWVyeSwKIAkJ CXsKIAkJCQkvKgogCQkJCSAqIERpc3BsYXkgdGhlIGN1cnJlbnQgY2h1bmsgb2YgcmVzdWx0 cywgdW5sZXNzIHRoZSBvdXRwdXQKLQkJCQkgKiBzdHJlYW0gc3RvcHBlZCB3b3JraW5nIG9y IHdlIGdvdCBjYW5jZWxsZWQuICBXZSBza2lwIHVzZSBvZgorCQkJCSAqIHN0cmVhbSBzdG9w cGVkIHdvcmtpbmcgb3Igd2UgZ290IGNhbmNlbGVkLiAgV2Ugc2tpcCB1c2Ugb2YKIAkJCQkg KiBQcmludFF1ZXJ5UmVzdWx0IGFuZCBnbyBkaXJlY3RseSB0byBwcmludFF1ZXJ5LCBzbyB0 aGF0IHdlCiAJCQkJICogY2FuIHBhc3MgdGhlIGNvcnJlY3QgaXNfcGFnZXIgdmFsdWUgYW5k IGJlY2F1c2Ugd2UgZG9uJ3QKIAkJCQkgKiB3YW50IFByaW50UXVlcnlTdGF0dXMgdG8gaGFw cGVuIHlldC4gIEFib3ZlLCB3ZSByZWplY3RlZApkaWZmIC0tZ2l0IGEvc3JjL2ZlX3V0aWxz L2FzdHJlYW1lcl9nemlwLmMgYi9zcmMvZmVfdXRpbHMvYXN0cmVhbWVyX2d6aXAuYwppbmRl eCAwZDEyYjliY2U3YS4uY2E1YmU2NDIzYTEgMTAwNjQ0Ci0tLSBhL3NyYy9mZV91dGlscy9h c3RyZWFtZXJfZ3ppcC5jCisrKyBiL3NyYy9mZV91dGlscy9hc3RyZWFtZXJfZ3ppcC5jCkBA IC0xMyw3ICsxMyw3IEBACiAgKiB0YWtlbiBoZXJlIGlzIGxlc3MgZmxleGlibGUsIGJlY2F1 c2UgYSB3cml0ZXIgY2FuIG9ubHkgd3JpdGUgdG8gYSBmaWxlLAogICogd2hpbGUgYSBjb21w cmVzc29yIGNhbiB3cml0ZSB0byBhIHN1YnNlcXVlbnQgYXN0cmVhbWVyIHdoaWNoIGlzIGZy ZWUKICAqIHRvIGRvIHdoYXRldmVyIGl0IGxpa2VzLiBUaGUgcmVhc29uIGl0J3MgbGlrZSB0 aGlzIGlzIGJlY2F1c2UgdGhpcwotICogY29kZSB3YXMgYWRhcGF0ZWQgZnJvbSBvbGQsIGxl c3MtbW9kdWxhciBwZ19iYXNlYmFja3VwIGNvZGUgdGhhdCB1c2VkCisgKiBjb2RlIHdhcyBh ZGFwdGVkIGZyb20gb2xkLCBsZXNzLW1vZHVsYXIgcGdfYmFzZWJhY2t1cCBjb2RlIHRoYXQg dXNlZAogICogdGhlIHNhbWUgQVBJcyB0aGF0IGFzdHJlYW1lcl9nemlwX3dyaXRlciBub3cg dXNlcywgYW5kIGl0IGRpZG4ndCBzZWVtCiAgKiBuZWNlc3NhcnkgdG8gY2hhbmdlIGFueXRo aW5nIGF0IHRoZSB0aW1lLgogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uv cmVhZF9zdHJlYW0uaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2UvcmVhZF9zdHJlYW0uaAppbmRl eCA0ZTU5OTkwNGYyNi4uNDJhNjIzYmZjNTQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0 b3JhZ2UvcmVhZF9zdHJlYW0uaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3JlYWRfc3Ry ZWFtLmgKQEAgLTY2LDcgKzY2LDYgQEAgZXh0ZXJuIFJlYWRTdHJlYW0gKnJlYWRfc3RyZWFt X2JlZ2luX3NtZ3JfcmVsYXRpb24oaW50IGZsYWdzLAogCQkJCQkJCQkJCQkJICAgUmVhZFN0 cmVhbUJsb2NrTnVtYmVyQ0IgY2FsbGJhY2ssCiAJCQkJCQkJCQkJCQkgICB2b2lkICpjYWxs YmFja19wcml2YXRlX2RhdGEsCiAJCQkJCQkJCQkJCQkgICBzaXplX3QgcGVyX2J1ZmZlcl9k YXRhX3NpemUpOwotZXh0ZXJuIEJ1ZmZlciByZWFkX3N0cmVhbV9uZXh0X2J1ZmZlcihSZWFk U3RyZWFtICpzdHJlYW0sIHZvaWQgKipwZXJfYnVmZmVyX3ByaXZhdGUpOwogZXh0ZXJuIHZv aWQgcmVhZF9zdHJlYW1fcmVzZXQoUmVhZFN0cmVhbSAqc3RyZWFtKTsKIGV4dGVybiB2b2lk IHJlYWRfc3RyZWFtX2VuZChSZWFkU3RyZWFtICpzdHJlYW0pOwogCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS91dGlscy9pbmplY3Rpb25fcG9pbnQuaCBiL3NyYy9pbmNsdWRlL3V0aWxz L2luamVjdGlvbl9wb2ludC5oCmluZGV4IGI0ZmM2NzdjOWI0Li5iMWYwNmIyNTk5OCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvaW5qZWN0aW9uX3BvaW50LmgKKysrIGIvc3Jj L2luY2x1ZGUvdXRpbHMvaW5qZWN0aW9uX3BvaW50LmgKQEAgLTEyLDcgKzEyLDcgQEAKICNk ZWZpbmUgSU5KRUNUSU9OX1BPSU5UX0gKIAogLyoKLSAqIEluamVjdGlvbnMgcG9pbnRzIHJl cXVpcmUgLS1lbmFibGUtaW5qZWN0aW9uLXBvaW50cy4KKyAqIEluamVjdGlvbiBwb2ludHMg cmVxdWlyZSAtLWVuYWJsZS1pbmplY3Rpb24tcG9pbnRzLgogICovCiAjaWZkZWYgVVNFX0lO SkVDVElPTl9QT0lOVFMKICNkZWZpbmUgSU5KRUNUSU9OX1BPSU5UX0xPQUQobmFtZSkgSW5q ZWN0aW9uUG9pbnRMb2FkKG5hbWUpCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJw cS9mZS1jb25uZWN0LmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMKaW5k ZXggM2ZhMmRkODY0ZmUuLjlmZWJkYWEyODg1IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1jb25uZWN0LmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29u bmVjdC5jCkBAIC05NDgsNyArOTQ4LDcgQEAgZmlsbFBHY29ubihQR2Nvbm4gKmNvbm4sIFBR Y29ubmluZm9PcHRpb24gKmNvbm5PcHRpb25zKQogICogQ29weSBvdmVyIG9wdGlvbiB2YWx1 ZXMgZnJvbSBzcmNDb25uIHRvIGRzdENvbm4KICAqCiAgKiBEb24ndCBwdXQgYW55dGhpbmcg Y3V0ZSBoZXJlIC0tLSBpbnRlbGxpZ2VuY2Ugc2hvdWxkIGJlIGluCi0gKiBjb25uZWN0T3B0 aW9uczIgLi4uCisgKiBwcUNvbm5lY3RPcHRpb25zMiAuLi4KICAqCiAgKiBSZXR1cm5zIHRy dWUgb24gc3VjY2Vzcy4gT24gZmFpbHVyZSwgcmV0dXJucyBmYWxzZSBhbmQgc2V0cyBlcnJv ciBtZXNzYWdlIG9mCiAgKiBkc3RDb25uLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X21pc2MvdC8wMDZfc2lnbmFsX2F1dG92YWN1dW0ucGwgYi9zcmMvdGVzdC9tb2R1 bGVzL3Rlc3RfbWlzYy90LzAwNl9zaWduYWxfYXV0b3ZhY3V1bS5wbAppbmRleCA1MWJkZWZl MjRhYS4uOTI5MjUzZjc1NDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9t aXNjL3QvMDA2X3NpZ25hbF9hdXRvdmFjdXVtLnBsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9taXNjL3QvMDA2X3NpZ25hbF9hdXRvdmFjdXVtLnBsCkBAIC02Nyw3ICs2Nyw3IEBA IGxpa2UoCiAKIG15ICRvZmZzZXQgPSAtcyAkbm9kZS0+bG9nZmlsZTsKIAotIyBSb2xlIHdp dGggcGdfc2lnbmFsX2F1dG92YWN1dW0gY2FuIHRlcm1pbmF0ZSBhdXRvdmFjdXVtIHdvcmtl ci4KKyMgUm9sZSB3aXRoIHBnX3NpZ25hbF9hdXRvdmFjdXVtX3dvcmtlciBjYW4gdGVybWlu YXRlIGF1dG92YWN1dW0gd29ya2VyLgogbXkgJHRlcm1pbmF0ZV93aXRoX3BnX3NpZ25hbF9h diA9ICRub2RlLT5wc3FsKAogCSdwb3N0Z3JlcycsIHFxKAogICAgIFNFVCBST0xFIHJlZ3Jl c3Nfd29ya2VyX3JvbGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8w MjFfdHdvcGhhc2UucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMjFfdHdvcGhhc2Uu cGwKaW5kZXggMTkxNDdmMzFlMjEuLjk4ZmU1OWFjNWE0IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMjFfdHdvcGhhc2UucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDIxX3R3b3BoYXNlLnBsCkBAIC03Niw3ICs3Niw3IEBAICRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKAogCUlOU0VSVCBJTlRPIHRhYl9mdWxsIFZBTFVFUyAoMTEpOwog CVBSRVBBUkUgVFJBTlNBQ1RJT04gJ3Rlc3RfcHJlcGFyZWRfdGFiX2Z1bGwnOyIpOwogCi0j IENvbmZpcm0gdGhlIEVSUk9SIGlzIHJlcG9ydGVkIGJlY2FzdWUgbWF4X3ByZXBhcmVkX3Ry YW5zYWN0aW9ucyBpcyB6ZXJvCisjIENvbmZpcm0gdGhlIEVSUk9SIGlzIHJlcG9ydGVkIGJl Y2F1c2UgbWF4X3ByZXBhcmVkX3RyYW5zYWN0aW9ucyBpcyB6ZXJvCiAkbm9kZV9zdWJzY3Jp YmVyLT53YWl0X2Zvcl9sb2coCiAJcXIvRVJST1I6ICggW0EtWjAtOV0rOik/IHByZXBhcmVk IHRyYW5zYWN0aW9ucyBhcmUgZGlzYWJsZWQvKTsKIAo= --------------jDR5uzcLSyZmBV01k27faQls--