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 1rocQA-002RIt-26 for pgsql-hackers@arkaria.postgresql.org; Mon, 25 Mar 2024 04:58:54 +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 1rocQ8-00HP9P-6d for pgsql-hackers@arkaria.postgresql.org; Mon, 25 Mar 2024 04:58:52 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rocQ7-00HP9H-SB for pgsql-hackers@lists.postgresql.org; Mon, 25 Mar 2024 04:58:52 +0000 Received: from mail-oa1-x30.google.com ([2001:4860:4864:20::30]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rocQ0-006L93-PN for pgsql-hackers@lists.postgresql.org; Mon, 25 Mar 2024 04:58:51 +0000 Received: by mail-oa1-x30.google.com with SMTP id 586e51a60fabf-2228c4c5ac3so2569635fac.0 for ; Sun, 24 Mar 2024 21:58:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711342723; x=1711947523; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=okXxoibaiv2D3xBJZBdFD1bKsCs1Fl1z//e4NJRxvPY=; b=A842qJIhGUy8CBkJlyaeD+T6DjwUGM28y4vyAF/vC9p3jDk7Sf4b/6Q8shlzTbZUAX q1pQaR0y7rY5zi6d01XhgpJydX6udWHeP8YSkViJ+xXF+9LNFD8oPrnaPImCg2zijwaY 80CfCUybCToF8jOplceBD3Yv2ud6AB8dfU+mtx2chlIzdr0TZOJkDPQvvZLX+EKJ9FoW C2yY5XoARUtgEDG7tnAtSkVwxTsDz9T4BGvVpDn48fRrddrBoQitXUgxosorKkA8rSZ5 XwxxywPE8TlOhmekYn1dOb7CU7En5t9FAg6Q0bYXLZwHRfrCuFp+gs4BZpUjlHfdKKi6 ulHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711342723; x=1711947523; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=okXxoibaiv2D3xBJZBdFD1bKsCs1Fl1z//e4NJRxvPY=; b=heS87ZySRBnc2ZwpQd4uxE7PSW5/kKWck5zX8rs7+LQ0sRT8OT1uEVjY9Biaft7qDy g7IfXqlUsAT59dhUs1przvUjl3EKYt4zDGwsm1wkJLZuS0EvkdDCKoHC3umRXYR9K4+8 5kA66EPpQ5ABIgqoiITJC+zauyYYgrjENlyFgeYq/qIAUWah3OatwADg75dW8PS6ppzf 2DvKEL9UKyk5F9tgLOxL9cRsKHGuiloPyjyL6aHwLcKvdZ6twFaVL1FMPfF4URKnphv6 cf6ybiP7TNvCTlX7h0yI83+Pm7zvpFwQ63tC9mguqr5YUlsEIiLsuK5+RWJL9KlmSzTe XDRw== X-Forwarded-Encrypted: i=1; AJvYcCWMNdn9YAMrNS33xKtiTRkF1jTDm06gzKP+XGv1ylSp+9rrCAzgpxCLr5GB0q4dPonCt1LyYY9oJE5Ap60ri+55PNsKcetPyFHmQQntPAm288zl X-Gm-Message-State: AOJu0Yxl1YS+xfRR9q5kb90OBsspB+L61aTCVqeqE/iL0iTQvNcHcEVx OQpvlXQO+lh8MpJaBPvmBQ318aMqQYCqmMKshmn/JFRI3vwNYCuJEf5y4ItoY3JrmwORCQ/nxER rd0jBo/TxkkBu5BIwFG68gRe499c= X-Google-Smtp-Source: AGHT+IHsYlIwpWaYYsIsefIgJGKS9thJcgOnMlVQRz1xf30m29kGxAR9deg8x9nWJW03F3O2spTOJksCQvB2jCxkZQE= X-Received: by 2002:a05:6870:63aa:b0:229:7f9f:adee with SMTP id t42-20020a05687063aa00b002297f9fadeemr7498297oap.30.1711342722855; Sun, 24 Mar 2024 21:58:42 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Amit Kapila Date: Mon, 25 Mar 2024 10:28:31 +0530 Message-ID: Subject: Re: Introduce XID age and inactive timeout based replication slot invalidation To: Bharath Rupireddy Cc: Bertrand Drouvot , Nathan Bossart , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="00000000000015ce7a06147507a9" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000015ce7a06147507a9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Mar 25, 2024 at 9:48=E2=80=AFAM Amit Kapila wrote: > > > Such a test looks reasonable but shall we add equal to in the second > part of the test (like '$last_inactive_time'::timestamptz >=3D > > '$slot_creation_time'::timestamptz;). This is just to be sure that even= if the test ran fast enough to give the same time, the test shouldn't fail= . I think it won't matter for correctness as well. > Apart from this, I have made minor changes in the comments. See and let me know what you think of attached. --=20 With Regards, Amit Kapila. --00000000000015ce7a06147507a9 Content-Type: text/plain; charset="US-ASCII"; name="v18_0001_diff_amit.patch.txt" Content-Disposition: attachment; filename="v18_0001_diff_amit.patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lu6h8wts0 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCBiL2RvYy9zcmMvc2dt bC9zeXN0ZW0tdmlld3Muc2dtbAppbmRleCAyYjM2YjVmZWYxLi41ZjQxNjVhOTQ1IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5 c3RlbS12aWV3cy5zZ21sCkBAIC0yNTI5LDggKzI1MjksNyBAQCBTRUxFQ1QgKiBGUk9NIHBnX2xv Y2tzIHBsIExFRlQgSk9JTiBwZ19wcmVwYXJlZF94YWN0cyBwcHgKICAgICAgIDwvcGFyYT4KICAg ICAgIDxwYXJhPgogICAgICAgICBUaGUgdGltZSBhdCB3aGljaCB0aGUgc2xvdCBiZWNhbWUgaW5h Y3RpdmUuCi0gICAgICAgIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IGlmIHRoZSBzbG90IGlzIGN1 cnJlbnRseSBhY3RpdmVseSBiZWluZwotICAgICAgICB1c2VkLgorICAgICAgICA8bGl0ZXJhbD5O VUxMPC9saXRlcmFsPiBpZiB0aGUgc2xvdCBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZC4KICAgICAg IDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc2xvdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4 IDBmNDhkNmRjN2MuLjc3Y2I2MzM4MTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3Nsb3QuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTYyMyw3 ICs2MjMsNyBAQCByZXRyeToKIAlpZiAoU2xvdElzTG9naWNhbChzKSkKIAkJcGdzdGF0X2FjcXVp cmVfcmVwbHNsb3Qocyk7CiAKLQkvKiBUaGUgc2xvdCBpcyBhY3RpdmUgYnkgbm93LCBzbyByZXNl dCB0aGUgbGFzdCBpbmFjdGl2ZSB0aW1lLiAqLworCS8qIFJlc2V0IHRoZSBsYXN0IGluYWN0aXZl IHRpbWUgYXMgdGhlIHNsb3QgaXMgYWN0aXZlIG5vdy4gKi8KIAlTcGluTG9ja0FjcXVpcmUoJnMt Pm11dGV4KTsKIAlzLT5sYXN0X2luYWN0aXZlX3RpbWUgPSAwOwogCVNwaW5Mb2NrUmVsZWFzZSgm cy0+bXV0ZXgpOwpAQCAtNjg3LDggKzY4Nyw4IEBAIFJlcGxpY2F0aW9uU2xvdFJlbGVhc2Uodm9p ZCkKIAl9CiAKIAkvKgotCSAqIFNldCB0aGUgbGFzdCBpbmFjdGl2ZSB0aW1lIGFmdGVyIG1hcmtp bmcgc2xvdCBpbmFjdGl2ZS4gV2UgZ2V0IGN1cnJlbnQKLQkgKiB0aW1lIGJlZm9yZWhhbmQgdG8g YXZvaWQgc3lzdGVtIGNhbGwgd2hpbGUgaG9sZGluZyB0aGUgbG9jay4KKwkgKiBTZXQgdGhlIGxh c3QgaW5hY3RpdmUgdGltZSBhZnRlciBtYXJraW5nIHRoZSBzbG90IGluYWN0aXZlLiBXZSBnZXQg dGhlCisJICogY3VycmVudCB0aW1lIGJlZm9yZWhhbmQgdG8gYXZvaWQgYSBzeXN0ZW0gY2FsbCB3 aGlsZSBob2xkaW5nIHRoZSBsb2NrLgogCSAqLwogCW5vdyA9IEdldEN1cnJlbnRUaW1lc3RhbXAo KTsKIApAQCAtMjM2Myw5ICsyMzYzLDkgQEAgUmVzdG9yZVNsb3RGcm9tRGlzayhjb25zdCBjaGFy ICpuYW1lKQogCQlzbG90LT5hY3RpdmVfcGlkID0gMDsKIAogCQkvKgotCQkgKiBXZSBzZXQgbGFz dCBpbmFjdGl2ZSB0aW1lIGFmdGVyIGxvYWRpbmcgdGhlIHNsb3QgZnJvbSB0aGUgZGlzayBpbnRv Ci0JCSAqIG1lbW9yeS4gV2hvZXZlciBhY3F1aXJlcyB0aGUgc2xvdCBpLmUuIG1ha2VzIHRoZSBz bG90IGFjdGl2ZSB3aWxsCi0JCSAqIGFueXdheSByZXNldCBpdC4KKwkJICogV2Ugc2V0IHRoZSBs YXN0IGluYWN0aXZlIHRpbWUgYWZ0ZXIgbG9hZGluZyB0aGUgc2xvdCBmcm9tIHRoZSBkaXNrCisJ CSAqIGludG8gbWVtb3J5LiBXaG9ldmVyIGFjcXVpcmVzIHRoZSBzbG90IGkuZS4gbWFrZXMgdGhl IHNsb3QgYWN0aXZlCisJCSAqIHdpbGwgcmVzZXQgaXQuCiAJCSAqLwogCQlzbG90LT5sYXN0X2lu YWN0aXZlX3RpbWUgPSBHZXRDdXJyZW50VGltZXN0YW1wKCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3Qu aAppbmRleCAyZjE4NDMzZWNjLi5lZWZkN2FiZDM5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi9zbG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCkBA IC0yMDIsNyArMjAyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVwbGljYXRpb25TbG90CiAJICovCiAJ WExvZ1JlY1B0cglsYXN0X3NhdmVkX2NvbmZpcm1lZF9mbHVzaDsKIAotCS8qIFRoZSB0aW1lIGF0 IHdoaWNoIHRoaXMgc2xvdCBiZWNvbWUgaW5hY3RpdmUgKi8KKwkvKiBUaGUgdGltZSBhdCB3aGlj aCB0aGlzIHNsb3QgYmVjb21lcyBpbmFjdGl2ZSAqLwogCVRpbWVzdGFtcFR6IGxhc3RfaW5hY3Rp dmVfdGltZTsKIH0gUmVwbGljYXRpb25TbG90OwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNv dmVyeS90LzAxOV9yZXBsc2xvdF9saW1pdC5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDE5X3Jl cGxzbG90X2xpbWl0LnBsCmluZGV4IGJmZjg0Y2M5YzQuLjgxYmQzNmY1ZDggMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlY292ZXJ5L3QvMDE5X3JlcGxzbG90X2xpbWl0LnBsCisrKyBiL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDE5X3JlcGxzbG90X2xpbWl0LnBsCkBAIC00MTEsNyArNDExLDcgQEAgJG5v ZGVfcHJpbWFyeTMtPnN0b3A7CiAkbm9kZV9zdGFuZGJ5My0+c3RvcDsKIAogIyA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotIyBUZXN0Y2FzZSBzdGFydDogQ2hlY2sgbGFzdF9pbmFjdGl2ZV90aW1lIHBy b3BlcnR5IG9mIHN0cmVhbWluZyBzdGFuZGJ5J3Mgc2xvdAorIyBUZXN0Y2FzZSBzdGFydDogQ2hl Y2sgbGFzdF9pbmFjdGl2ZV90aW1lIHByb3BlcnR5IG9mIHRoZSBzdHJlYW1pbmcgc3RhbmRieSdz IHNsb3QKICMKIAogIyBJbml0aWFsaXplIHByaW1hcnkgbm9kZQpAQCAtNDQwLDggKzQ0MCw4IEBA ICRwcmltYXJ5NC0+c2FmZV9wc3FsKAogICAgIFNFTEVDVCBwZ19jcmVhdGVfcGh5c2ljYWxfcmVw bGljYXRpb25fc2xvdChzbG90X25hbWUgOj0gJyRzYjRfc2xvdCcpOwogXSk7CiAKLSMgR2V0IGxh c3RfaW5hY3RpdmVfdGltZSB2YWx1ZSBhZnRlciBzbG90J3MgY3JlYXRpb24uIE5vdGUgdGhhdCB0 aGUgc2xvdCBpcyBzdGlsbAotIyBpbmFjdGl2ZSB1bmxlc3MgaXQncyB1c2VkIGJ5IHRoZSBzdGFu ZGJ5IGJlbG93LgorIyBHZXQgbGFzdF9pbmFjdGl2ZV90aW1lIHZhbHVlIGFmdGVyIHRoZSBzbG90 J3MgY3JlYXRpb24uIE5vdGUgdGhhdCB0aGUgc2xvdAorIyBpcyBzdGlsbCBpbmFjdGl2ZSB0aWxs IGl0J3MgdXNlZCBieSB0aGUgc3RhbmRieSBiZWxvdy4KIG15ICRsYXN0X2luYWN0aXZlX3RpbWUg PSAkcHJpbWFyeTQtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCXFxKFNFTEVDVCBsYXN0X2luYWN0 aXZlX3RpbWUgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnJHNi NF9zbG90JyBBTkQgbGFzdF9pbmFjdGl2ZV90aW1lIElTIE5PVCBOVUxMOykKICk7CkBAIC00NzAs OCArNDcwLDggQEAgaXMoICRwcmltYXJ5NC0+c2FmZV9wc3FsKAogIyBTdG9wIHRoZSBzdGFuZGJ5 IHRvIGNoZWNrIGl0cyBsYXN0X2luYWN0aXZlX3RpbWUgdmFsdWUgaXMgdXBkYXRlZAogJHN0YW5k Ynk0LT5zdG9wOwogCi0jIExldCdzIGFsc28gcmVzdGFydCB0aGUgcHJpbWFyeSBzbyB0aGF0IHRo ZSBsYXN0X2luYWN0aXZlX3RpbWUgaXMgc2V0IHVwb24KLSMgbG9hZGluZyB0aGUgc2xvdCBmcm9t IGRpc2suCisjIExldCdzIHJlc3RhcnQgdGhlIHByaW1hcnkgc28gdGhhdCB0aGUgbGFzdF9pbmFj dGl2ZV90aW1lIGlzIHNldCB1cG9uCisjIGxvYWRpbmcgdGhlIHNsb3QgZnJvbSB0aGUgZGlzay4K ICRwcmltYXJ5NC0+cmVzdGFydDsKIAogaXMoICRwcmltYXJ5NC0+c2FmZV9wc3FsKApAQCAtNDgz LDExICs0ODMsMTEgQEAgaXMoICRwcmltYXJ5NC0+c2FmZV9wc3FsKAogCiAkc3RhbmRieTQtPnN0 b3A7CiAKLSMgVGVzdGNhc2UgZW5kOiBDaGVjayBsYXN0X2luYWN0aXZlX3RpbWUgcHJvcGVydHkg b2Ygc3RyZWFtaW5nIHN0YW5kYnkncyBzbG90CisjIFRlc3RjYXNlIGVuZDogQ2hlY2sgbGFzdF9p bmFjdGl2ZV90aW1lIHByb3BlcnR5IG9mIHRoZSBzdHJlYW1pbmcgc3RhbmRieSdzIHNsb3QKICMg PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIAogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIyBUZXN0Y2Fz ZSBzdGFydDogQ2hlY2sgbGFzdF9pbmFjdGl2ZV90aW1lIHByb3BlcnR5IG9mIGxvZ2ljYWwgc3Vi c2NyaWJlcidzIHNsb3QKKyMgVGVzdGNhc2Ugc3RhcnQ6IENoZWNrIGxhc3RfaW5hY3RpdmVfdGlt ZSBwcm9wZXJ0eSBvZiB0aGUgbG9naWNhbCBzdWJzY3JpYmVyJ3Mgc2xvdAogbXkgJHB1Ymxpc2hl cjQgPSAkcHJpbWFyeTQ7CiAKICMgQ3JlYXRlIHN1YnNjcmliZXIgbm9kZQpAQCAtNTA4LDggKzUw OCw4IEBAICRwdWJsaXNoZXI0LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiU0VMRUNUIHBnX2Ny ZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3Qoc2xvdF9uYW1lIDo9ICckbHN1YjRfc2xvdCcs IHBsdWdpbiA6PSAncGdvdXRwdXQnKTsiCiApOwogCi0jIEdldCBsYXN0X2luYWN0aXZlX3RpbWUg dmFsdWUgYWZ0ZXIgc2xvdCdzIGNyZWF0aW9uLiBOb3RlIHRoYXQgdGhlIHNsb3QgaXMgc3RpbGwK LSMgaW5hY3RpdmUgdW5sZXNzIGl0J3MgdXNlZCBieSB0aGUgc3Vic2NyaWJlciBiZWxvdy4KKyMg R2V0IGxhc3RfaW5hY3RpdmVfdGltZSB2YWx1ZSBhZnRlciB0aGUgc2xvdCdzIGNyZWF0aW9uLiBO b3RlIHRoYXQgdGhlIHNsb3QKKyMgaXMgc3RpbGwgaW5hY3RpdmUgdGlsbCBpdCdzIHVzZWQgYnkg dGhlIHN1YnNjcmliZXIgYmVsb3cuCiAkbGFzdF9pbmFjdGl2ZV90aW1lID0gJHB1Ymxpc2hlcjQt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCXFxKFNFTEVDVCBsYXN0X2luYWN0aXZlX3RpbWUgRlJP TSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnJGxzdWI0X3Nsb3QnIEFO RCBsYXN0X2luYWN0aXZlX3RpbWUgSVMgTk9UIE5VTEw7KQogKTsKQEAgLTU0MSw4ICs1NDEsOCBA QCBpcyggJHB1Ymxpc2hlcjQtPnNhZmVfcHNxbCgKICMgU3RvcCB0aGUgc3Vic2NyaWJlciB0byBj aGVjayBpdHMgbGFzdF9pbmFjdGl2ZV90aW1lIHZhbHVlIGlzIHVwZGF0ZWQKICRzdWJzY3JpYmVy NC0+c3RvcDsKIAotIyBMZXQncyBhbHNvIHJlc3RhcnQgdGhlIHB1Ymxpc2hlciBzbyB0aGF0IHRo ZSBsYXN0X2luYWN0aXZlX3RpbWUgaXMgc2V0IHVwb24KLSMgbG9hZGluZyB0aGUgc2xvdCBmcm9t IGRpc2suCisjIExldCdzIHJlc3RhcnQgdGhlIHB1Ymxpc2hlciBzbyB0aGF0IHRoZSBsYXN0X2lu YWN0aXZlX3RpbWUgaXMgc2V0IHVwb24KKyMgbG9hZGluZyB0aGUgc2xvdCBmcm9tIHRoZSBkaXNr LgogJHB1Ymxpc2hlcjQtPnJlc3RhcnQ7CiAKIGlzKCAkcHVibGlzaGVyNC0+c2FmZV9wc3FsKApA QCAtNTUyLDcgKzU1Miw3IEBAIGlzKCAkcHVibGlzaGVyNC0+c2FmZV9wc3FsKAogCSd0JywKIAkn bGFzdCBpbmFjdGl2ZSB0aW1lIGZvciBhbiBpbmFjdGl2ZSBsb2dpY2FsIHNsb3QgaXMgdXBkYXRl ZCBjb3JyZWN0bHknKTsKIAotIyBUZXN0Y2FzZSBlbmQ6IENoZWNrIGxhc3RfaW5hY3RpdmVfdGlt ZSBwcm9wZXJ0eSBvZiBsb2dpY2FsIHN1YnNjcmliZXIncyBzbG90CisjIFRlc3RjYXNlIGVuZDog Q2hlY2sgbGFzdF9pbmFjdGl2ZV90aW1lIHByb3BlcnR5IG9mIHRoZSBsb2dpY2FsIHN1YnNjcmli ZXIncyBzbG90CiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKICRwdWJsaXNoZXI0LT5zdG9wOwo= --00000000000015ce7a06147507a9--