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.96) (envelope-from ) id 1wcI4J-003EiH-0K for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jun 2026 07:30:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wcI4I-00FtQG-06 for pgsql-hackers@arkaria.postgresql.org; Wed, 24 Jun 2026 07:30:42 +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.96) (envelope-from ) id 1wcI4H-00FtQ8-1Z for pgsql-hackers@lists.postgresql.org; Wed, 24 Jun 2026 07:30:41 +0000 Received: from mail-yx1-xb132.google.com ([2607:f8b0:4864:20::b132]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wcI4G-00000001rwe-09UB for pgsql-hackers@lists.postgresql.org; Wed, 24 Jun 2026 07:30:40 +0000 Received: by mail-yx1-xb132.google.com with SMTP id 956f58d0204a3-663c66669ddso241555d50.0 for ; Wed, 24 Jun 2026 00:30:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782286239; cv=none; d=google.com; s=arc-20240605; b=HU8p7dfXsCTC/PVmOAiqjibksvzWr0f53xDpLbkrOA4/aQJcfSVWPZjPKdlJ1PZDZN 6mI4jvgHrNFGCvMo54uKp+gAOIDvMu3TrJ6//FYJJS+oQX3QirkxrJwgd+W+a2hZGI+7 R2ek634qigV0hy35CyZzdzgJW+mu7TdqHYSU/b3WI0aGcg2D7QoUtpK/rsQQQzPTvep1 O/9uWg1cup+z6frz2con1Sh1rF0uSsoNqgVoFea/vO2hZSSQMu4ycHSRLhHKr0uw3UWN AqbF6DHhqQ3uAjiWZ6qLz7+FBSXB/ZWaXaLXDAdNLQ/d/MxsqD5xbP0ibYilMkK5CuYO QW5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=P0cFVno00n5gayoq03a4cO15GwEIuLynbkocrLunhh4=; fh=KcfTCw2ZVqAV+lTGR3KRT9q1CRnyXcs7hTtvM0Hb+1I=; b=h8XoBPEKO3yK/e/nhxwXgAY6/Xn5EOjMxuwZ/PGP7+Au0gkrIq1RXqmfqvx8JwglXY yv1mk/A5MNfx7ERAgtiXuF0IxPDalkYOy3KbOHQTv7UwRx9S6mk4PMhtmaePW3h0lpgb Kguv5PC/ZJl3+gSTso8Lvz/UXx1ipPyOO7s9eDGQdvmX1kIS3PVFPlNDXg1N9ke9XS0X nfCuOhzsyediyHcENr3C7tW0mR1mGK1Yj1MJ+6YThQ3htgvATeCTRZjs5A4dXjKiTn4d xI7eiboaU4i8gqcedrIqpV19whVQ0mtkqzdeCVn2ZTb7KnTMgBwM2F7s3xH+gEcsZbK7 T2Dg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782286239; x=1782891039; 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=P0cFVno00n5gayoq03a4cO15GwEIuLynbkocrLunhh4=; b=mEOGRWKUnzC7zVFewG0UTv+vJJQwJ1RMLxpdOlbnZGL84ehrMzH6JMJR2HOFXuFt4k YZuXg6jCNqfDTDlVnsIbMCqqG5rg4KYgbWbwIk3buTelNXP0aqx0r7oBV2d2lgW7uQu9 dDzV6BppHjBn6IFQ+t/ev9pvd2P/k3mQpAjq3AxRhC1RS4jxwIDtHjNeAQ/7GIFHKGWA B6fTG9GKjrL/CkzAFjzuMO++GUvNx0BMFiC8zYWF+jqFl0Zj1UwuTZwQGuFPo32bNd/Q w3ge1im8DzMM78X4QBz+ZghUttfvuO4D+IcXPgsFkxUjMDfXyIz8btdyvuAw9VXNU9SY aaNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782286239; x=1782891039; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=P0cFVno00n5gayoq03a4cO15GwEIuLynbkocrLunhh4=; b=mmvwuDu/JhZm9roIwQD8UzJca/aw3tOEAPcILhdMTMRZqnxOIh4KuQ/Hd/LRLDFu/c mZI6L7tD/MiW88S6ytItJESBZ4NR98KZbs9QjUtCOQs0TJ3m7UbA+GVzW1FbtKpFsfWU I6K76+nHIokNlyTZjpYirwhWw6DYweSc4AlfAgtfenb+ML3pXGBSK7SwAEfDrpbI8YJ4 ppFHhqvvMlbuFccPFmu9ggE9+XJ1HSvL34paflg3F5acBzcAYGE4uPTXW7Vp8//leH/M E4mGy+TjZ0V2EU5dXMDp7+MDxu+9ZVoYwyziBBC7WKTtOowcIyWrdn1z0c+AooiMPlZ2 TX9g== X-Gm-Message-State: AOJu0YwuwvIoJzx+wjhL+XXFrNvyp4g2PweAmhkE6yASfOb1BWYD9Mi7 MlLldFeERPpRPbg3j0yl6JlC+K6CUb/h2U/c8Bvml0p5y1Wgi9Z/REOKfmB9OmVK0fdgZHd6Ur4 0p3ArvvQBfzoCKeRiDgi9/yrKJfNiqB0= X-Gm-Gg: AfdE7cnZnAYCr+xf3ct9OmQ8PuxdKVSg91TRT2J3PWCSfTmnQTy3o9FL57Tj/vkQeoi mt8OYCIOYv4IFe1gLuwoCOZ7lwFxm/A5V/mxXypqHBCntr+fzRM14gsPEipQHDWQlw1LVmTpYe5 NOCGDp4TVphVWZyLoo4/X4kBO4SXHU0QJ8HLw3wMYd735l/s2BEnQ3sUOXfLfc5HRbnXdm0dg5+ X74nReU15LlWwyrP6G/Gf+21xX4NfTur+adf//kwvAgrUrBngoSXAxGOtdSiekR6t8dpp/BCks= X-Received: by 2002:a05:690e:1698:b0:660:406f:61b6 with SMTP id 956f58d0204a3-6636e4fbe51mr1653197d50.42.1782286238795; Wed, 24 Jun 2026 00:30:38 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: vignesh C Date: Wed, 24 Jun 2026 13:00:25 +0530 X-Gm-Features: AVVi8CfgxSd4aGvUjHtjayLSqnWUsP5-TXeaqQGKa2Kh88nGqEDKdiBtO9rZqSA Message-ID: Subject: Re: Include sequences in publications created by pg_createsubscriber To: Peter Smith Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000002706890654fadadc" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002706890654fadadc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 23 Jun 2026 at 06:33, Peter Smith wrote: > > On Sat, Jun 20, 2026 at 1:59=E2=80=AFAM vignesh C w= rote: > ... > > The attached patch modifies pg_createsubscriber to include sequences > > in the publication it creates, enabling this workflow. > > Thoughts? > > > > Hi Vignesh, > > +1 to make this change. > > Some review comments for patch 0001. > > =3D=3D=3D=3D=3D=3D > Commit Message > > 1. > This change modifies pg_createsubscriber to include all sequences in the > publication it creates. Administrators can then run ALTER SUBSCRIPTION > ... REFRESH SEQUENCES after the upgrade to synchronize sequence state, > ensuring a more complete and reliable upgrade workflow. > > ~ > > /include all sequences/include ALL SEQUENCES/ Modified > =3D=3D=3D=3D=3D=3D > doc/src/sgml/ref/pg_createsubscriber.sgml > > 2. > - does not copy the initial table data. It does only the > synchronization phase, > - which ensures each table is brought up to a synchronized state. > + does not copy the initial table or sequence data. It does only the > + synchronization phase, which ensures each table and sequence is broug= ht up > + to a synchronized state. > > > I felt "does not copy the initial [...] sequence data" should not be > said for sequences. AFAIK each sequence has only 1 value anyway, so > bringing it "to a synchronized state" is effectively the same thing as > copying the initial data for sequences, so saying in the first > sentence that copy does not happen seems a contradiction. > > IIUC what above means is really just the same as chapter 29.7, which > says "use CREATE SUBSCRIPTION to initially synchronize the published > sequences.". pg_createsubscriber does the following: 1) We get the consistent_lsn from create_logical_replication_slot. 2) Then we set recovery_target_lsn =3D consistent_lsn from above 3) Then advance replication origin of each subscription to this lsn 4) Then enable subscription 5) stop standby server Here setting recovery_target_lsn to consistent_lsn and recovering it till there. I mean sequences are brought to sync state. Create subscription will not do any data copy in case of pg_createsubscribe= r. I meant the above here, let me know if you have better wording for this. > ~~~ > > 3. > linkend=3D"sql-createpublication-params-for-all-tables">F= OR ALL > - TABLES. If the op= tion > + TABLES and + linkend=3D"sql-createpublication-params-for-all-sequences">FOR ALL > + SEQUENCES. If the = option > is not specified, the publication has the following name pattern: > > Maybe just say "ALL SEQUENCES" here instead of "FOR ALL SEQUENCES"? Modified > ~~~ > > 4. > > Enable the subscription for each specified database on the target = server. > The subscription starts applying transactions from the replication= start > - point. > + point. The subscription is configured to include sequences. Sequen= ce > + values can be synchronized at any time by running > + > + ALTER SUBSCRIPTION ... REFRESH SEQUENCES= , which > + fetches the current sequence state from the publisher and advances= the > + corresponding subscriber sequences. > > > IIUC, all this "How it works" section is describing the internal logic > of what pg_subscriber is internally. OTOH, this "REFRESH SEQUENCES" is > just a note about what the Administrator can do manually later... > > So, maybe you can still write this note somewhere, but just don't > include it buried in the internal "How it works" steps. Moved it along with description > =3D=3D=3D=3D=3D=3D > src/bin/pg_basebackup/pg_createsubscriber.c > > 5. > Patch needs also to update the function comment for > create_publication() because currently it still says "includes all > tables". Modified The attached v2 version patch has the changes for the same. Regards, Vignesh --0000000000002706890654fadadc Content-Type: application/octet-stream; name="v2-0001-Include-sequences-in-publications-created-by-pg_c.patch" Content-Disposition: attachment; filename="v2-0001-Include-sequences-in-publications-created-by-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mqrr73qj0 RnJvbSA0NjMyNzJlMGMyYWU1M2ZmM2IzOWUzZTFlMWU1MDg2OTc3MzJjOWRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IEZyaSwgMTkgSnVuIDIwMjYgMTk6MTQ6MjcgKzA1MzAKU3ViamVjdDogW1BBVENIIHYyXSBJbmNs dWRlIHNlcXVlbmNlcyBpbiBwdWJsaWNhdGlvbnMgY3JlYXRlZCBieQogcGdfY3JlYXRlc3Vic2Ny aWJlcgoKcGdfY3JlYXRlc3Vic2NyaWJlciBjcmVhdGVzIGEgcHVibGljYXRpb24gb24gdGhlIHB1 Ymxpc2hlciB0byBlc3RhYmxpc2gKbG9naWNhbCByZXBsaWNhdGlvbiBiZXR3ZWVuIHRoZSBvcmln aW5hbCBwcmltYXJ5IGFuZCB0aGUgY29udmVydGVkCnN1YnNjcmliZXIuIEN1cnJlbnRseSwgdGhl IHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgd2l0aCBGT1IgQUxMIFRBQkxFUywKd2hpY2ggZW5zdXJl cyB0aGF0IHRhYmxlIGRhdGEgY2hhbmdlcyBhcmUgcmVwbGljYXRlZCBkdXJpbmcgdGhlIHVwZ3Jh ZGUKcHJvY2Vzcy4KCkhvd2V2ZXIsIHNlcXVlbmNlIHN0YXRlIGlzIG5vdCByZXBsaWNhdGVkIGFz IHBhcnQgb2YgdGhpcyB3b3JrZmxvdy4KClJlY2VudCBhZGRpdGlvbnMgdG8gbG9naWNhbCByZXBs aWNhdGlvbiBpbnRyb2R1Y2VkIHN1cHBvcnQgZm9yIHB1Ymxpc2hpbmcKYWxsIHNlcXVlbmNlcyBh bmQgc3luY2hyb25pemluZyBzZXF1ZW5jZSBzdGF0ZSB0aHJvdWdoIHN1YnNjcmlwdGlvbgpyZWZy ZXNoLiBCeSBjcmVhdGluZyBwdWJsaWNhdGlvbnMgd2l0aCBGT1IgQUxMIFRBQkxFUywgQUxMIFNF UVVFTkNFUywKcGdfY3JlYXRlc3Vic2NyaWJlciBjYW4gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlc2Ug Y2FwYWJpbGl0aWVzIGFuZCBhbGxvdwpzZXF1ZW5jZSBzdGF0ZSB0byBiZSBzeW5jaHJvbml6ZWQg YmVmb3JlIHRoZSB1cGdyYWRlZCBub2RlIGlzIHByb21vdGVkLgoKVGhpcyBjaGFuZ2UgbW9kaWZp ZXMgcGdfY3JlYXRlc3Vic2NyaWJlciB0byBpbmNsdWRlIEFMTCBTRVFVRU5DRVMgaW4gdGhlCnB1 YmxpY2F0aW9uIGl0IGNyZWF0ZXMuIEFkbWluaXN0cmF0b3JzIGNhbiB0aGVuIHJ1biBBTFRFUiBT VUJTQ1JJUFRJT04KLi4uIFJFRlJFU0ggU0VRVUVOQ0VTIGFmdGVyIHRoZSB1cGdyYWRlIHRvIHN5 bmNocm9uaXplIHNlcXVlbmNlIHN0YXRlLAplbnN1cmluZyBhIG1vcmUgY29tcGxldGUgYW5kIHJl bGlhYmxlIHVwZ3JhZGUgd29ya2Zsb3cuCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVz dWJzY3JpYmVyLnNnbWwgICAgIHwgNDEgKysrKysrKysrKysrLS0tLS0tLQogc3JjL2Jpbi9wZ19i YXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYyAgIHwgIDQgKy0KIC4uLi90LzA0MF9wZ19j cmVhdGVzdWJzY3JpYmVyLnBsICAgICAgICAgICAgICB8ICA4ICsrKysKIDMgZmlsZXMgY2hhbmdl ZCwgMzcgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3Bn X2NyZWF0ZXN1YnNjcmliZXIuc2dtbAppbmRleCAzYjMwMzhkMTg5MS4uNGM3ZjVmZWU1NzQgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJlci5zZ21sCkBAIC00OCwxMSArNDgs MTEgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICAgPHBhcmE+CiAgICA8YXBwbGljYXRp b24+cGdfY3JlYXRlc3Vic2NyaWJlcjwvYXBwbGljYXRpb24+IGNyZWF0ZXMgYSBuZXcgbG9naWNh bAotICAgcmVwbGljYSBmcm9tIGEgcGh5c2ljYWwgc3RhbmRieSBzZXJ2ZXIuICBBbGwgdGFibGVz IGluIHRoZSBzcGVjaWZpZWQKLSAgIGRhdGFiYXNlIGFyZSBpbmNsdWRlZCBpbiB0aGUgPGxpbmsg bGlua2VuZD0ibG9naWNhbC1yZXBsaWNhdGlvbiI+bG9naWNhbAotICAgcmVwbGljYXRpb248L2xp bms+IHNldHVwLiAgQSBwYWlyIG9mCi0gICBwdWJsaWNhdGlvbiBhbmQgc3Vic2NyaXB0aW9uIG9i amVjdHMgYXJlIGNyZWF0ZWQgZm9yIGVhY2ggZGF0YWJhc2UuICBJdAotICAgbXVzdCBiZSBydW4g YXQgdGhlIHRhcmdldCBzZXJ2ZXIuCisgICByZXBsaWNhIGZyb20gYSBwaHlzaWNhbCBzdGFuZGJ5 IHNlcnZlci4gIEFsbCB0YWJsZXMgYW5kIHNlcXVlbmNlcyBpbiB0aGUKKyAgIHNwZWNpZmllZCBk YXRhYmFzZSBhcmUgaW5jbHVkZWQgaW4gdGhlCisgICA8bGluayBsaW5rZW5kPSJsb2dpY2FsLXJl cGxpY2F0aW9uIj5sb2dpY2FsIHJlcGxpY2F0aW9uPC9saW5rPiBzZXR1cC4gIEEKKyAgIHBhaXIg b2YgcHVibGljYXRpb24gYW5kIHN1YnNjcmlwdGlvbiBvYmplY3RzIGFyZSBjcmVhdGVkIGZvciBl YWNoIGRhdGFiYXNlLgorICAgSXQgbXVzdCBiZSBydW4gYXQgdGhlIHRhcmdldCBzZXJ2ZXIuCiAg IDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTYwLDggKzYwLDkgQEAgUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCiAgICBmcmVzaCBsb2dpY2FsIHJlcGxpY2F0aW9uIHNldHVwLiAgVGhlIG1haW4gZGlm ZmVyZW5jZSBiZXR3ZWVuIHRoZSBsb2dpY2FsCiAgICByZXBsaWNhdGlvbiBzZXR1cCBhbmQgPGFw cGxpY2F0aW9uPnBnX2NyZWF0ZXN1YnNjcmliZXI8L2FwcGxpY2F0aW9uPiBpcyBob3cKICAgIHRo ZSBkYXRhIHN5bmNocm9uaXphdGlvbiBpcyBkb25lLiA8YXBwbGljYXRpb24+cGdfY3JlYXRlc3Vi c2NyaWJlcjwvYXBwbGljYXRpb24+Ci0gICBkb2VzIG5vdCBjb3B5IHRoZSBpbml0aWFsIHRhYmxl IGRhdGEuIEl0IGRvZXMgb25seSB0aGUgc3luY2hyb25pemF0aW9uIHBoYXNlLAotICAgd2hpY2gg ZW5zdXJlcyBlYWNoIHRhYmxlIGlzIGJyb3VnaHQgdXAgdG8gYSBzeW5jaHJvbml6ZWQgc3RhdGUu CisgICBkb2VzIG5vdCBjb3B5IHRoZSBpbml0aWFsIHRhYmxlIG9yIHNlcXVlbmNlIGRhdGEuIEl0 IGRvZXMgb25seSB0aGUKKyAgIHN5bmNocm9uaXphdGlvbiBwaGFzZSwgd2hpY2ggZW5zdXJlcyBl YWNoIHRhYmxlIGFuZCBzZXF1ZW5jZSBpcyBicm91Z2h0IHVwCisgICB0byBhIHN5bmNocm9uaXpl ZCBzdGF0ZS4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtNzUsNyArNzYsMTYgQEAgUG9zdGdy ZVNRTCBkb2N1bWVudGF0aW9uCiAgICBzeW5jaHJvbml6YXRpb24uICBGb3IgZGV0YWlscywgc2Vl IHRoZSA8Y29tbWFuZD5DUkVBVEUgU1VCU0NSSVBUSU9OPC9jb21tYW5kPgogICAgPGxpbmsgbGlu a2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb3B5LWRhdGEiPgogICAg PGxpdGVyYWw+Y29weV9kYXRhPC9saXRlcmFsPjwvbGluaz4gb3B0aW9uLgorICA8L3BhcmE+CiAK KyAgPHBhcmE+CisgICBOb3RlIHRoYXQgYWx0aG91Z2ggdGhlIHB1YmxpY2F0aW9uIGluY2x1ZGVz IHNlcXVlbmNlcywgc2VxdWVuY2UgdmFsdWUKKyAgIGNoYW5nZXMgbWFkZSBvbiB0aGUgcHVibGlz aGVyIGFmdGVyIHJlYWNoaW5nIGNvbnNpc3RlbnQgcG9pbnQgYXJlIG5vdAorICAgc3luY2hyb25p emVkIGluY3JlbWVudGFsbHkuIFRvIHN5bmNocm9uaXplIHNlcXVlbmNlIHZhbHVlcywgcnVuCisg ICA8bGluayBsaW5rZW5kPSJzcWwtYWx0ZXJzdWJzY3JpcHRpb24tcGFyYW1zLXJlZnJlc2gtc2Vx dWVuY2VzIj4KKyAgIDxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBTRVFV RU5DRVM8L2NvbW1hbmQ+PC9saW5rPiwgd2hpY2gKKyAgIGZldGNoZXMgdGhlIGN1cnJlbnQgc2Vx dWVuY2Ugc3RhdGUgZnJvbSB0aGUgcHVibGlzaGVyIGFuZCBhZHZhbmNlcyB0aGUKKyAgIGNvcnJl c3BvbmRpbmcgc3Vic2NyaWJlciBzZXF1ZW5jZXMuCiAgIDwvcGFyYT4KICA8L3JlZnNlY3QxPgog CkBAIC0yNzUsMTAgKzI4NSwxMCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgICAg PGxpc3RpdGVtPgogICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgPGxpdGVyYWw+cHVibGljYXRp b25zPC9saXRlcmFsPjoKLSAgICAgICAgICBUaGUgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xp dGVyYWw+IHB1YmxpY2F0aW9ucyBlc3RhYmxpc2hlZCBmb3IgdGhpcwotICAgICAgICAgIHN1YnNj cmliZXIgYXJlIGFsd2F5cyBkcm9wcGVkOyBzcGVjaWZ5aW5nIHRoaXMgb2JqZWN0IHR5cGUgY2F1 c2VzIGFsbAotICAgICAgICAgIG90aGVyIHB1YmxpY2F0aW9ucyByZXBsaWNhdGVkIGZyb20gdGhl IHNvdXJjZSBzZXJ2ZXIgdG8gYmUgZHJvcHBlZCBhcwotICAgICAgICAgIHdlbGwuCisgICAgICAg ICAgVGhlIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTLCBBTEwgU0VRVUVOQ0VTPC9saXRlcmFsPiBw dWJsaWNhdGlvbnMKKyAgICAgICAgICBlc3RhYmxpc2hlZCBmb3IgdGhpcyBzdWJzY3JpYmVyIGFy ZSBhbHdheXMgZHJvcHBlZDsgc3BlY2lmeWluZyB0aGlzCisgICAgICAgICAgb2JqZWN0IHR5cGUg Y2F1c2VzIGFsbCBvdGhlciBwdWJsaWNhdGlvbnMgcmVwbGljYXRlZCBmcm9tIHRoZSBzb3VyY2UK KyAgICAgICAgICBzZXJ2ZXIgdG8gYmUgZHJvcHBlZCBhcyB3ZWxsLgogICAgICAgICAgPC9wYXJh PgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvaXRlbWl6ZWRsaXN0PgpAQCAtMzIzLDcg KzMzMyw4IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICAgICAgIElmIGEgc3BlY2lmaWVk IHB1YmxpY2F0aW9uIGFscmVhZHkgZXhpc3RzIG9uIHRoZSBwdWJsaXNoZXIsIGl0IGlzIHJldXNl ZC4KICAgICAgICBJdCBpcyB1c2VmdWwgdG8gcGFydGlhbGx5IHJlcGxpY2F0ZSB0aGUgZGF0YWJh c2UgaWYgdGhlIHNwZWNpZmllZAogICAgICAgIHB1YmxpY2F0aW9uIGluY2x1ZGVzIGEgbGlzdCBv ZiB0YWJsZXMuIElmIHRoZSBwdWJsaWNhdGlvbiBkb2VzIG5vdCBleGlzdCwKLSAgICAgICBpdCBp cyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgd2l0aCA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0 ZXJhbD4uIFVzZQorICAgICAgIGl0IGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB3aXRoCisgICAg ICAgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVMsIEFMTCBTRVFVRU5DRVM8L2xpdGVyYWw+LiBVc2UK ICAgICAgICA8b3B0aW9uPi0tZHJ5LXJ1bjwvb3B0aW9uPiBvcHRpb24gdG8gcHJldmlldyB3aGlj aCBwdWJsaWNhdGlvbnMgd2lsbCBiZQogICAgICAgIHJldXNlZCBhbmQgd2hpY2ggd2lsbCBiZSBj cmVhdGVkLgogICAgICAgPC9wYXJhPgpAQCAtNTM0LDcgKzU0NSw5IEBAIFBvc3RncmVTUUwgZG9j dW1lbnRhdGlvbgogICAgICAgQ3JlYXRlIGEgcHVibGljYXRpb24gYW5kIHJlcGxpY2F0aW9uIHNs b3QgZm9yIGVhY2ggc3BlY2lmaWVkIGRhdGFiYXNlIG9uCiAgICAgICB0aGUgc291cmNlIHNlcnZl ci4gIEVhY2ggcHVibGljYXRpb24gaXMgY3JlYXRlZCB1c2luZyA8bGluawogICAgICAgbGlua2Vu ZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy1mb3ItYWxsLXRhYmxlcyI+PGxpdGVyYWw+ Rk9SIEFMTAotICAgICAgVEFCTEVTPC9saXRlcmFsPjwvbGluaz4uICBJZiB0aGUgPG9wdGlvbj4t LXB1YmxpY2F0aW9uPC9vcHRpb24+IG9wdGlvbgorICAgICAgVEFCTEVTPC9saXRlcmFsPjwvbGlu az4gYW5kIDxsaW5rCisgICAgICBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1z LWZvci1hbGwtc2VxdWVuY2VzIj48bGl0ZXJhbD5BTEwKKyAgICAgIFNFUVVFTkNFUzwvbGl0ZXJh bD48L2xpbms+LiAgSWYgdGhlIDxvcHRpb24+LS1wdWJsaWNhdGlvbjwvb3B0aW9uPiBvcHRpb24K ICAgICAgIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBwdWJsaWNhdGlvbiBoYXMgdGhlIGZvbGxvd2lu ZyBuYW1lIHBhdHRlcm46CiAgICAgICA8cXVvdGU+PGxpdGVyYWw+cGdfY3JlYXRlc3Vic2NyaWJl cl8ldV8leDwvbGl0ZXJhbD48L3F1b3RlPiAocGFyYW1ldGVyOgogICAgICAgZGF0YWJhc2UgPHBh cmFtZXRlcj5vaWQ8L3BhcmFtZXRlcj4sIHJhbmRvbSA8cGFyYW1ldGVyPmludDwvcGFyYW1ldGVy PikuCkBAIC02MTcsNyArNjMwLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAgIDxw YXJhPgogICAgICAgRW5hYmxlIHRoZSBzdWJzY3JpcHRpb24gZm9yIGVhY2ggc3BlY2lmaWVkIGRh dGFiYXNlIG9uIHRoZSB0YXJnZXQgc2VydmVyLgogICAgICAgVGhlIHN1YnNjcmlwdGlvbiBzdGFy dHMgYXBwbHlpbmcgdHJhbnNhY3Rpb25zIGZyb20gdGhlIHJlcGxpY2F0aW9uIHN0YXJ0Ci0gICAg ICBwb2ludC4KKyAgICAgIHBvaW50LiBUaGUgc3Vic2NyaXB0aW9uIGlzIGNvbmZpZ3VyZWQgdG8g aW5jbHVkZSBzZXF1ZW5jZXMuCiAgICAgIDwvcGFyYT4KICAgICA8L3N0ZXA+CiAKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMgYi9zcmMvYmlu L3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCmluZGV4IDRkNzA1Nzc4NDU0Li5l YzE4ZmFmNTBlYiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1 YnNjcmliZXIuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJl ci5jCkBAIC0xNzg4LDcgKzE3ODgsNyBAQCB3YWl0X2Zvcl9lbmRfcmVjb3ZlcnkoY29uc3QgY2hh ciAqY29ubmluZm8sIGNvbnN0IHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucwogfQogCiAv KgotICogQ3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBpbmNsdWRlcyBhbGwgdGFibGVzIGluIHRo ZSBkYXRhYmFzZS4KKyAqIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgaW5jbHVkZXMgYWxsIHRh YmxlcyBhbmQgc2VxdWVuY2VzIGluIHRoZSBkYXRhYmFzZS4KICAqLwogc3RhdGljIHZvaWQKIGNy ZWF0ZV9wdWJsaWNhdGlvbihQR2Nvbm4gKmNvbm4sIHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJp bmZvKQpAQCAtMTg0MCw3ICsxODQwLDcgQEAgY3JlYXRlX3B1YmxpY2F0aW9uKFBHY29ubiAqY29u biwgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAJCXBnX2xvZ19pbmZvKCJjcmVhdGlu ZyBwdWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKIAkJCQkJZGJpbmZvLT5w dWJuYW1lLCBkYmluZm8tPmRibmFtZSk7CiAKLQlhcHBlbmRQUUV4cEJ1ZmZlcihzdHIsICJDUkVB VEUgUFVCTElDQVRJT04gJXMgRk9SIEFMTCBUQUJMRVMiLAorCWFwcGVuZFBRRXhwQnVmZmVyKHN0 ciwgIkNSRUFURSBQVUJMSUNBVElPTiAlcyBGT1IgQUxMIFRBQkxFUywgQUxMIFNFUVVFTkNFUyIs CiAJCQkJCSAgaXB1Ym5hbWVfZXNjKTsKIAogCXBnX2xvZ19kZWJ1ZygiY29tbWFuZCBpczogJXMi LCBzdHItPmRhdGEpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQwX3Bn X2NyZWF0ZXN1YnNjcmliZXIucGwgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3Jl YXRlc3Vic2NyaWJlci5wbAppbmRleCA5MjUyZDFjM2M1Yy4uMDQ0ZjIwMmNiMzUgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBsCisr KyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBsCkBA IC01MDMsNiArNTAzLDE0IEBAIGlzKCRyZXN1bHQsIHFxKDApLAogCSd0aGUgcGh5c2ljYWwgcmVw bGljYXRpb24gc2xvdCB1c2VkIGFzIHByaW1hcnlfc2xvdF9uYW1lIGhhcyBiZWVuIHJlbW92ZWQn CiApOwogCisjIFZlcmlmeSB0aGF0IHRoZSBwdWJsaWNhdGlvbiBpcyBjb25maWd1cmVkIHRvIHB1 Ymxpc2ggYWxsIHRhYmxlcyBhbmQKKyMgYWxsIHNlcXVlbmNlcy4KKyRyZXN1bHQgPSAkbm9kZV9w LT5zYWZlX3BzcWwoJGRiMiwKKwkiU0VMRUNUIHB1YmFsbHRhYmxlcywgcHViYWxsc2VxdWVuY2Vz IEZST00gcGdfcHVibGljYXRpb24iKTsKK2lzKCAkcmVzdWx0LCBxcSh0fHQpLAorCSJwdWJsaWNh dGlvbiBpcyBjcmVhdGVkIHdpdGggYm90aCBhbGwtdGFibGVzIGFuZCBhbGwtc2VxdWVuY2VzIGVu YWJsZWQiCispOworCiAjIEluc2VydCByb3dzIG9uIFAKICRub2RlX3AtPnNhZmVfcHNxbCgkZGIx LCAiSU5TRVJUIElOVE8gdGJsMSBWQUxVRVMoJ3RoaXJkIHJvdycpIik7CiAkbm9kZV9wLT5zYWZl X3BzcWwoJGRiMiwgIklOU0VSVCBJTlRPIHRibDIgVkFMVUVTKCdyb3cgMScpIik7Ci0tIAoyLjUz LjAKCg== --0000000000002706890654fadadc--