Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1peCJX-0005xo-4C for pgsql-hackers@arkaria.postgresql.org; Mon, 20 Mar 2023 10:00:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1peCJV-0001gS-7v for pgsql-hackers@arkaria.postgresql.org; Mon, 20 Mar 2023 10:00:25 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1peCJU-0001gF-5P for pgsql-hackers@lists.postgresql.org; Mon, 20 Mar 2023 10:00:24 +0000 Received: from new4-smtp.messagingengine.com ([66.111.4.230]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1peCJP-0005Mg-Ds for pgsql-hackers@postgresql.org; Mon, 20 Mar 2023 10:00:23 +0000 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailnew.nyi.internal (Postfix) with ESMTP id 178CC582065 for ; Mon, 20 Mar 2023 06:00:15 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Mon, 20 Mar 2023 06:00:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1679306415; x=1679313615; bh=JUE+Jw9bRaiIWZfvCdUGqm1V8zQydAJY6Xc ydIv385Q=; b=tjcNxCUcydd7Lp+VKbwEaEh4BvEOPYBrhNGrzJuBR2DPFMwzzP5 cEVGp1fzVqpXHjMK8Og2S698kcCobMguXiH2MiGllFXBUXx8LN04uk9AOFYQ5Ae5 hyNadrhKs1zpIJm+Ekluxl1Rg+kQ+4FNCUVuYq9HHC289uKxKuYw+e+/9cFN3Zva wAtQcDFRZAy961JSAjnJqYT/6i/W4VVK/uUpT9VregMwmtQqdUxxvkFVkynY2CWM UpKh2gNBd5mW3+n8m8MigiDwFfj/ZsMH+IFx6aFYzMT5DCl6bYTiNMGgIVzSF8Nr W+FmKeVUFuHrZrIy2a3zUSPuIszY8LCzCDg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrvdefkedguddtucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfhffuvfesmhdtreertd efjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghi shgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrthhtvg hrnhepieejveeiudeuheduhedutdffieejjeetieejhefhveeufedtffejieelhfelkeff necuffhomhgrihhnpehpohhsthhgrhgvshhqlhdrohhrghenucevlhhushhtvghrufhiii gvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrrdgvihhsvghnthhrrghu thesvghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Mon, 20 Mar 2023 06:00:14 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------nipaX55W04KqmhaoWvwpObcA" Message-ID: Date: Mon, 20 Mar 2023 11:00:12 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Content-Language: en-US From: Peter Eisentraut Subject: Save a few bytes in pg_attribute To: pgsql-hackers 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. --------------nipaX55W04KqmhaoWvwpObcA Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit After the discussion in [0] ff., I was looking around in pg_attribute and noticed that we could possibly save 4 bytes. We could change both attstattarget and attinhcount from int4 to int2, which together with some reordering would save 4 bytes from the fixed portion. attstattarget is already limited to 10000, so this wouldn't lose anything. For attinhcount, I don't see any documented limits. But it seems unlikely to me that someone would need more than 32k immediate inheritance parents on a column. (Maybe an overflow check would be useful, though, to prevent shenanigans.) The attached patch seems to work. Thoughts? [0]: https://www.postgresql.org/message-id/20230313204119.4mkepdvixcxrwpsc%40awork3.anarazel.de --------------nipaX55W04KqmhaoWvwpObcA Content-Type: text/plain; charset=UTF-8; name="0001-Save-a-few-bytes-in-pg_attribute.patch" Content-Disposition: attachment; filename="0001-Save-a-few-bytes-in-pg_attribute.patch" Content-Transfer-Encoding: base64 RnJvbSA0MDBmNDRkMTg4NzVjNDA2MDUxNDdjOGQ4MTc5M2M2ZGNjNDZmOGE2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAyMCBNYXIgMjAyMyAwOTo1MToyMCArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIFNhdmUgYSBmZXcgYnl0ZXMgaW4gcGdfYXR0cmlidXRlCgphdHRzdGF0dGFy Z2V0IGFuZCBhdHRpbmhjb3VudCBjYW4gYmUgY29udmVydGVkIHRvIGludDE2IChmcm9tIGlu dDMyKS4KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgIHwgMzYgKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAu YyAgICAgICAgIHwgIDQgKystLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jICAgICAg ICB8ICAyICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oIHwgMjAgKysr KysrKystLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzEgaW5zZXJ0aW9ucygrKSwgMzEg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA3NDZiYWY1MDUzLi5hZDVkMTVl YzQ5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtMTE2NCwyMyArMTE2NCw2IEBAIDx0aXRsZT48 c3RydWN0bmFtZT5wZ19hdHRyaWJ1dGU8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgog ICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCi0gICAgIDxyb3c+Ci0gICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgotICAgICAgIDxzdHJ1Y3RmaWVsZD5hdHRzdGF0dGFyZ2V0PC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KLSAgICAgIDwvcGFyYT4KLSAgICAgIDxwYXJh PgotICAgICAgIDxzdHJ1Y3RmaWVsZD5hdHRzdGF0dGFyZ2V0PC9zdHJ1Y3RmaWVsZD4gY29u dHJvbHMgdGhlIGxldmVsIG9mIGRldGFpbAotICAgICAgIG9mIHN0YXRpc3RpY3MgYWNjdW11 bGF0ZWQgZm9yIHRoaXMgY29sdW1uIGJ5Ci0gICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWFu YWx5emUiPjxjb21tYW5kPkFOQUxZWkU8L2NvbW1hbmQ+PC9saW5rPi4KLSAgICAgICBBIHpl cm8gdmFsdWUgaW5kaWNhdGVzIHRoYXQgbm8gc3RhdGlzdGljcyBzaG91bGQgYmUgY29sbGVj dGVkLgotICAgICAgIEEgbmVnYXRpdmUgdmFsdWUgc2F5cyB0byB1c2UgdGhlIHN5c3RlbSBk ZWZhdWx0IHN0YXRpc3RpY3MgdGFyZ2V0LgotICAgICAgIFRoZSBleGFjdCBtZWFuaW5nIG9m IHBvc2l0aXZlIHZhbHVlcyBpcyBkYXRhIHR5cGUtZGVwZW5kZW50LgotICAgICAgIEZvciBz Y2FsYXIgZGF0YSB0eXBlcywgPHN0cnVjdGZpZWxkPmF0dHN0YXR0YXJnZXQ8L3N0cnVjdGZp ZWxkPgotICAgICAgIGlzIGJvdGggdGhlIHRhcmdldCBudW1iZXIgb2YgPHF1b3RlPm1vc3Qg Y29tbW9uIHZhbHVlczwvcXVvdGU+Ci0gICAgICAgdG8gY29sbGVjdCwgYW5kIHRoZSB0YXJn ZXQgbnVtYmVyIG9mIGhpc3RvZ3JhbSBiaW5zIHRvIGNyZWF0ZS4KLSAgICAgIDwvcGFyYT48 L2VudHJ5PgotICAgICA8L3Jvdz4KLQogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K ICAgICAgICA8c3RydWN0ZmllbGQ+YXR0bGVuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50Mjwv dHlwZT4KQEAgLTEzNjIsNyArMTM0NSw3IEBAIDx0aXRsZT48c3RydWN0bmFtZT5wZ19hdHRy aWJ1dGU8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgogCiAgICAgIDxyb3c+CiAgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgotICAgICAgIDxzdHJ1Y3RmaWVsZD5hdHRpbmhjb3VudDwvc3RydWN0 ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CisgICAgICAgPHN0cnVjdGZpZWxkPmF0dGluaGNv dW50PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MjwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAg ICAgIDxwYXJhPgogICAgICAgIFRoZSBudW1iZXIgb2YgZGlyZWN0IGFuY2VzdG9ycyB0aGlz IGNvbHVtbiBoYXMuICBBIGNvbHVtbiB3aXRoIGEKQEAgLTEzNzAsNiArMTM1MywyMyBAQCA8 dGl0bGU+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90 aXRsZT4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+YXR0c3RhdHRhcmdl dDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+YXR0c3RhdHRhcmdldDwvc3RydWN0Zmll bGQ+IGNvbnRyb2xzIHRoZSBsZXZlbCBvZiBkZXRhaWwKKyAgICAgICBvZiBzdGF0aXN0aWNz IGFjY3VtdWxhdGVkIGZvciB0aGlzIGNvbHVtbiBieQorICAgICAgIDxsaW5rIGxpbmtlbmQ9 InNxbC1hbmFseXplIj48Y29tbWFuZD5BTkFMWVpFPC9jb21tYW5kPjwvbGluaz4uCisgICAg ICAgQSB6ZXJvIHZhbHVlIGluZGljYXRlcyB0aGF0IG5vIHN0YXRpc3RpY3Mgc2hvdWxkIGJl IGNvbGxlY3RlZC4KKyAgICAgICBBIG5lZ2F0aXZlIHZhbHVlIHNheXMgdG8gdXNlIHRoZSBz eXN0ZW0gZGVmYXVsdCBzdGF0aXN0aWNzIHRhcmdldC4KKyAgICAgICBUaGUgZXhhY3QgbWVh bmluZyBvZiBwb3NpdGl2ZSB2YWx1ZXMgaXMgZGF0YSB0eXBlLWRlcGVuZGVudC4KKyAgICAg ICBGb3Igc2NhbGFyIGRhdGEgdHlwZXMsIDxzdHJ1Y3RmaWVsZD5hdHRzdGF0dGFyZ2V0PC9z dHJ1Y3RmaWVsZD4KKyAgICAgICBpcyBib3RoIHRoZSB0YXJnZXQgbnVtYmVyIG9mIDxxdW90 ZT5tb3N0IGNvbW1vbiB2YWx1ZXM8L3F1b3RlPgorICAgICAgIHRvIGNvbGxlY3QsIGFuZCB0 aGUgdGFyZ2V0IG51bWJlciBvZiBoaXN0b2dyYW0gYmlucyB0byBjcmVhdGUuCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPmF0dGNvbGxhdGlvbjwvc3RydWN0ZmllbGQ+ IDx0eXBlPm9pZDwvdHlwZT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVh cC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKaW5kZXggNGYwMDY4MjBiOC4uYzY3 ZGZmZmE1NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKQEAgLTczMiw3ICs3MzIsNiBAQCBJbnNlcnRQ Z0F0dHJpYnV0ZVR1cGxlcyhSZWxhdGlvbiBwZ19hdHRyaWJ1dGVfcmVsLAogCiAJCXNsb3Rb c2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRuYW1lIC0gMV0g PSBOYW1lR2V0RGF0dW0oJmF0dHJzLT5hdHRuYW1lKTsKIAkJc2xvdFtzbG90Q291bnRdLT50 dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dHR5cGlkIC0gMV0gPSBPYmplY3RJZEdl dERhdHVtKGF0dHJzLT5hdHR0eXBpZCk7Ci0JCXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVl c1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRzdGF0dGFyZ2V0IC0gMV0gPSBJbnQzMkdldERhdHVt KGF0dHJzLT5hdHRzdGF0dGFyZ2V0KTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVz W0FudW1fcGdfYXR0cmlidXRlX2F0dGxlbiAtIDFdID0gSW50MTZHZXREYXR1bShhdHRycy0+ YXR0bGVuKTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmli dXRlX2F0dG51bSAtIDFdID0gSW50MTZHZXREYXR1bShhdHRycy0+YXR0bnVtKTsKIAkJc2xv dFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dG5kaW1zIC0g MV0gPSBJbnQzMkdldERhdHVtKGF0dHJzLT5hdHRuZGltcyk7CkBAIC03NDksNyArNzQ4LDgg QEAgSW5zZXJ0UGdBdHRyaWJ1dGVUdXBsZXMoUmVsYXRpb24gcGdfYXR0cmlidXRlX3JlbCwK IAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGdl bmVyYXRlZCAtIDFdID0gQ2hhckdldERhdHVtKGF0dHJzLT5hdHRnZW5lcmF0ZWQpOwogCQlz bG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0aXNkcm9w cGVkIC0gMV0gPSBCb29sR2V0RGF0dW0oYXR0cnMtPmF0dGlzZHJvcHBlZCk7CiAJCXNsb3Rb c2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRpc2xvY2FsIC0g MV0gPSBCb29sR2V0RGF0dW0oYXR0cnMtPmF0dGlzbG9jYWwpOwotCQlzbG90W3Nsb3RDb3Vu dF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0aW5oY291bnQgLSAxXSA9IElu dDMyR2V0RGF0dW0oYXR0cnMtPmF0dGluaGNvdW50KTsKKwkJc2xvdFtzbG90Q291bnRdLT50 dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGluaGNvdW50IC0gMV0gPSBJbnQxNkdl dERhdHVtKGF0dHJzLT5hdHRpbmhjb3VudCk7CisJCXNsb3Rbc2xvdENvdW50XS0+dHRzX3Zh bHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRzdGF0dGFyZ2V0IC0gMV0gPSBJbnQxNkdldERh dHVtKGF0dHJzLT5hdHRzdGF0dGFyZ2V0KTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFs dWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXRE YXR1bShhdHRycy0+YXR0Y29sbGF0aW9uKTsKIAkJaWYgKGF0dG9wdGlvbnMgJiYgYXR0b3B0 aW9uc1tuYXR0c10gIT0gKERhdHVtKSAwKQogCQkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFs dWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dG9wdGlvbnMgLSAxXSA9IGF0dG9wdGlvbnNbbmF0 dHNdOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9pbmRleC5jCmluZGV4IDc3NzdlN2VjNzcuLmJjY2VhMWM3NDkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL2luZGV4LmMKQEAgLTE4MTIsNyArMTgxMiw3IEBAIGluZGV4X2NvbmN1cnJl bnRseV9zd2FwKE9pZCBuZXdJbmRleElkLCBPaWQgb2xkSW5kZXhJZCwgY29uc3QgY2hhciAq b2xkTmFtZSkKIAkJCW1lbXNldChyZXBsX3JlcGwsIGZhbHNlLCBzaXplb2YocmVwbF9yZXBs KSk7CiAKIAkJCXJlcGxfcmVwbFtBbnVtX3BnX2F0dHJpYnV0ZV9hdHRzdGF0dGFyZ2V0IC0g MV0gPSB0cnVlOwotCQkJcmVwbF92YWxbQW51bV9wZ19hdHRyaWJ1dGVfYXR0c3RhdHRhcmdl dCAtIDFdID0gSW50MzJHZXREYXR1bShhdHRzdGF0dGFyZ2V0KTsKKwkJCXJlcGxfdmFsW0Fu dW1fcGdfYXR0cmlidXRlX2F0dHN0YXR0YXJnZXQgLSAxXSA9IEludDE2R2V0RGF0dW0oYXR0 c3RhdHRhcmdldCk7CiAKIAkJCW5ld1R1cGxlID0gaGVhcF9tb2RpZnlfdHVwbGUoYXR0clR1 cGxlLAogCQkJCQkJCQkJCSBSZWxhdGlvbkdldERlc2NyKHBnX2F0dHJpYnV0ZSksCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaAppbmRleCBiNTYxZTE3NzgxLi5hMGQ2NDA5MDM2 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKQEAgLTUyLDE1ICs1Miw2IEBA IENBVEFMT0cocGdfYXR0cmlidXRlLDEyNDksQXR0cmlidXRlUmVsYXRpb25JZCkgQktJX0JP T1RTVFJBUCBCS0lfUk9XVFlQRV9PSUQoNzUsCiAJICovCiAJT2lkCQkJYXR0dHlwaWQgQktJ X0xPT0tVUF9PUFQocGdfdHlwZSk7CiAKLQkvKgotCSAqIGF0dHN0YXR0YXJnZXQgaXMgdGhl IHRhcmdldCBudW1iZXIgb2Ygc3RhdGlzdGljcyBkYXRhcG9pbnRzIHRvIGNvbGxlY3QKLQkg KiBkdXJpbmcgVkFDVVVNIEFOQUxZWkUgb2YgdGhpcyBjb2x1bW4uICBBIHplcm8gaGVyZSBp bmRpY2F0ZXMgdGhhdCB3ZSBkbwotCSAqIG5vdCB3aXNoIHRvIGNvbGxlY3QgYW55IHN0YXRz IGFib3V0IHRoaXMgY29sdW1uLiBBICItMSIgaGVyZSBpbmRpY2F0ZXMKLQkgKiB0aGF0IG5v IHZhbHVlIGhhcyBiZWVuIGV4cGxpY2l0bHkgc2V0IGZvciB0aGlzIGNvbHVtbiwgc28gQU5B TFlaRQotCSAqIHNob3VsZCB1c2UgdGhlIGRlZmF1bHQgc2V0dGluZy4KLQkgKi8KLQlpbnQz MgkJYXR0c3RhdHRhcmdldCBCS0lfREVGQVVMVCgtMSk7Ci0KIAkvKgogCSAqIGF0dGxlbiBp cyBhIGNvcHkgb2YgdGhlIHR5cGxlbiBmaWVsZCBmcm9tIHBnX3R5cGUgZm9yIHRoaXMgYXR0 cmlidXRlLgogCSAqIFNlZSBhdHR0eXBpZCBjb21tZW50cyBhYm92ZS4KQEAgLTE2NSw3ICsx NTYsMTYgQEAgQ0FUQUxPRyhwZ19hdHRyaWJ1dGUsMTI0OSxBdHRyaWJ1dGVSZWxhdGlvbklk KSBCS0lfQk9PVFNUUkFQIEJLSV9ST1dUWVBFX09JRCg3NSwKIAlib29sCQlhdHRpc2xvY2Fs IEJLSV9ERUZBVUxUKHQpOwogCiAJLyogTnVtYmVyIG9mIHRpbWVzIGluaGVyaXRlZCBmcm9t IGRpcmVjdCBwYXJlbnQgcmVsYXRpb24ocykgKi8KLQlpbnQzMgkJYXR0aW5oY291bnQgQktJ X0RFRkFVTFQoMCk7CisJaW50MTYJCWF0dGluaGNvdW50IEJLSV9ERUZBVUxUKDApOworCisJ LyoKKwkgKiBhdHRzdGF0dGFyZ2V0IGlzIHRoZSB0YXJnZXQgbnVtYmVyIG9mIHN0YXRpc3Rp Y3MgZGF0YXBvaW50cyB0byBjb2xsZWN0CisJICogZHVyaW5nIFZBQ1VVTSBBTkFMWVpFIG9m IHRoaXMgY29sdW1uLiAgQSB6ZXJvIGhlcmUgaW5kaWNhdGVzIHRoYXQgd2UgZG8KKwkgKiBu b3Qgd2lzaCB0byBjb2xsZWN0IGFueSBzdGF0cyBhYm91dCB0aGlzIGNvbHVtbi4gQSAiLTEi IGhlcmUgaW5kaWNhdGVzCisJICogdGhhdCBubyB2YWx1ZSBoYXMgYmVlbiBleHBsaWNpdGx5 IHNldCBmb3IgdGhpcyBjb2x1bW4sIHNvIEFOQUxZWkUKKwkgKiBzaG91bGQgdXNlIHRoZSBk ZWZhdWx0IHNldHRpbmcuCisJICovCisJaW50MTYJCWF0dHN0YXR0YXJnZXQgQktJX0RFRkFV TFQoLTEpOwogCiAJLyogYXR0cmlidXRlJ3MgY29sbGF0aW9uLCBpZiBhbnkgKi8KIAlPaWQJ CQlhdHRjb2xsYXRpb24gQktJX0xPT0tVUF9PUFQocGdfY29sbGF0aW9uKTsKCmJhc2UtY29t bWl0OiAwYjUxZDQyM2U5NzQ1NTdlODIxZDg5MGMwYTNhNDllNDE5YTE5Y2FhCi0tIAoyLjM5 LjIKCg== --------------nipaX55W04KqmhaoWvwpObcA--