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 1kcGNc-00051u-Qs for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Nov 2020 23:15:21 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kcGNb-0003Eb-Ph for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Nov 2020 23:15:19 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kcGNb-0003ET-7X for pgsql-hackers@lists.postgresql.org; Mon, 09 Nov 2020 23:15:19 +0000 Received: from mail-pg1-x52b.google.com ([2607:f8b0:4864:20::52b]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kcGNY-0001EI-Br for pgsql-hackers@lists.postgresql.org; Mon, 09 Nov 2020 23:15:18 +0000 Received: by mail-pg1-x52b.google.com with SMTP id e21so8444683pgr.11 for ; Mon, 09 Nov 2020 15:15:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=9ibfZfQzisTKbIcr3uO8LvwyRC0y7EtinvpryWh8jL8=; b=kLiw/Dg3KV6fhIo6xjxA6rlNhegaN9D2BBOn7vzwwZmXf0d50qTz2WJ9ZB31JxXKvK 8WUVZ+iOtFFo3/Hkij5meve4OrICypm1cbLaDrosa2Pmwf039+d24itVL2kjIdVcIzr2 7MRiKRTvLrG66M7TvVFlhSUpRYCngLSEKxp/lXnNL5Fsx6bi2p/4y8OVovCYVxQRHkSk QkgS0u8dLUbyujYmh3xc55fcfTDkiN5FoVBHgRRpbSckhHKxgOFRJpqOi9ZS4fEOxENB 0FQCIVo0+bRoc961iTMJS7GZhp/QuSqPOyPiXPK+ChtfWDeCUsdPbwnZbtVHCoSTVmOM yRaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9ibfZfQzisTKbIcr3uO8LvwyRC0y7EtinvpryWh8jL8=; b=uh6fZ05h7/Nizs/QqPv8swjtPO+HjFxj2Ud2dCZ8HrpW45au7O8Xdmu8iZJDsfWxTT BpaMFflaGm+Ou3ajcMxavPzvtys1kLgu1Iy+NK9rC/dGerLDHfkwnIy2gXcEAPIzkxdq eoFtHcUhH0uoJIzhIbOer+Xb4/31Uq3dkNWeNpjQzqok6Paks458KBQ4UnHon/tkj3+3 8WoetPurzhxKcBhm/P9+j9ZP9CzFdqTOU+h3BjTexzniyreY33EMQLsLROrb4sFY0nT8 sBp3O74W5DgPhAXF+aiWbLQar6IBgnJqU0lG4YQraObDLunu/Ms2+st/UBSfXmrMv51C InVw== X-Gm-Message-State: AOAM531CDESx8vw0EZO0dJYP1LzIg5f3fOegeegM3FrU2PE3a9B47mR1 BLRDmyfRlOQ+s9/Vx4zRU9tNqZRHlF9iSYKCdQ8= X-Google-Smtp-Source: ABdhPJwwJrX+wGy5GcYDAzqjeDSICnMIxuzRd5CLb+licM0GIiEa0tPBC/gT3xI6MXZmcxUDI40GP2wQ4LkxQDkpsiE= X-Received: by 2002:a17:90a:678a:: with SMTP id o10mr1624642pjj.180.1604963714852; Mon, 09 Nov 2020 15:15:14 -0800 (PST) MIME-Version: 1.0 References: <13c65997-9502-7671-1a7b-50e5d5093514@purtz.de> <1B5F7D1E-B389-4D3B-973A-A8D183D8530A@yesql.se> <766cab17c6af48956558611520956b77@xs4all.nl> <93fd8e15-8639-23c8-c7c4-d4cfca323189@purtz.de> <32c7ebc0-f69f-8a77-c397-8fcb9139d8d3@purtz.de> <779bb812-5238-f78b-2782-b1d990f952e3@purtz.de> <7a081d6c-e288-615c-f32c-839fb27366ed@purtz.de> <759f7a615736d8066b3441571d371c68@xs4all.nl> <99f58c4752e9984ffe38a4343fed3837@xs4all.nl> <1bfb1ae4-6f5b-bff4-15a8-a768e0ddd450@purtz.de> In-Reply-To: <1bfb1ae4-6f5b-bff4-15a8-a768e0ddd450@purtz.de> From: "David G. Johnston" Date: Mon, 9 Nov 2020 16:14:57 -0700 Message-ID: Subject: Re: Additional Chapter for Tutorial To: =?UTF-8?Q?J=C3=BCrgen_Purtz?= Cc: Erik Rijkers , PostgreSQL Hackers , Justin Pryzby Content-Type: multipart/mixed; boundary="00000000000019fdc405b3b4bc36" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --00000000000019fdc405b3b4bc36 Content-Type: multipart/alternative; boundary="00000000000019fdc205b3b4bc34" --00000000000019fdc205b3b4bc34 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Nov 8, 2020 at 8:56 AM J=C3=BCrgen Purtz wrote: > > Good catches. Everything applied. > Reviewed the first three sections. template0 - I would remove the schema portions of this and simply note this as being a pristine recovery database in the diagram. I would drop the word "more" and just say "system schemas". I would drop pg_toast from the list of system schema and focus on the three user-facing ones. Instead of "my_schema" (optional) I would do "my_schema" (example) Server Graphic #3 Global SQL Objects: Objects which are shared among all databases within a cluster. #6 Client applications are prohibited from connecting to template0 #1 If by you we mean "the client" saying that you work "in the cluster data" doesn't really help. I would emphasize the point that the client sees an endpoint the Postmaster publishes as a port or socket file and that plus the database name defines the endpoint the client connects to (meld with #5) In lieu of some of the existing detail provided about structure I would add information about configuration and search_path at this level. I like the object type enumeration - I would suggest grouping them by type in a manner consistent with the documentation and making each one a link to its "primary" section - the SQL Command reference if all else fails. The "i" in internal in 51.3 (the image) needs capitalization). You correctly add both Extension and Collation as database-level objects but they are not mentioned anywhere else. They do belong here and need to be tied in properly in the text. The whole thing needs a good pass focused on capitalization. Both for typos and to decide when various primary concepts like Instance should be capitalized and when not. 51.4 - When you look at the diagram seeing /pg/data/base looks really cool, but when reading the prose where both the "pg" and the "base" are omitted and all you get are repeated references to "data", the directory name choice becomes an issue IMO. I suggest (and changed the attached) to name the actual root directory "pgdata". You should change the /pg/ directory name to something like ".../tutorial_project/". Since you aren't following alphabetical order anyway I would place pg_tblspc after globals since tablespaces are globals and thus proximity links them here - and pointing out that pg_tblspc holds the data makes stating that global doesn't contain tablespace data unnecessary. Maybe point out somewhere the the "base/databaseOID" directory represents the default tablespace for each database, which isn't "global", only the non-default tablespaces are considered globals (or just get rid of the mentioned on "non-default tablespace" for now). David J. --00000000000019fdc205b3b4bc34 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Sun, Nov 8, 2020 at 8:56 AM J=C3=BCrgen Purtz <juergen@purtz.de> wrote:

Good catches. Everything applied.

Reviewed the first three sections.

template0 - I w= ould remove the schema portions of this and simply note this as being a pri= stine recovery database in the diagram.

I would drop t= he word "more" and just say "system schemas".=C2=A0 I w= ould drop pg_toast from the list of system schema and focus on the three us= er-facing ones.

Instead of "my_schema" (opti= onal) I would do "my_schema" (example)

Serve= r Graphic
#3 Global SQL Objects: Objects which are shared among all= databases within a cluster.
#6 Client applications are prohibited = from connecting to template0
#1 If by you we mean "the client&= quot; saying that you work "in the cluster data" doesn't real= ly help.=C2=A0 I would emphasize the point that the client sees an endpoint= the Postmaster publishes as a port or socket file and that plus the databa= se name defines the endpoint the client connects to (meld with #5)
=
In lieu of some of the existing detail provided about structur= e I would add information about configuration and search_path at this level= .

I like the object type enumeration - I would suggest= grouping them by type in a manner consistent with the documentation and ma= king each one a link to its "primary" section - the SQL Command r= eference if all else fails.

The "i" in inter= nal in 51.3 (the image) needs capitalization).

You cor= rectly add both Extension and Collation as database-level objects but they = are not mentioned anywhere else.=C2=A0 They do belong here and need to be t= ied in properly in the text.

The whole thing needs a g= ood pass focused on capitalization.=C2=A0 Both for typos and to decide when= various primary concepts like Instance should be capitalized and when not.=

51.4 - When you look at the diagram seeing /pg/data/b= ase looks really cool, but when reading the prose where both the "pg&q= uot; and the "base" are omitted and all you get are repeated refe= rences to "data", the directory name choice becomes an issue IMO.= =C2=A0 I suggest (and changed the attached) to name the actual root directo= ry "pgdata".=C2=A0 You should change the /pg/ directory name to s= omething like ".../tutorial_project/".

Since= you aren't following alphabetical order anyway I would place pg_tblspc= after globals since tablespaces are globals and thus proximity links them = here - and pointing out that pg_tblspc holds the data makes stating that gl= obal doesn't contain tablespace data unnecessary.

= Maybe point out somewhere the the "base/databaseOID" directory re= presents the default tablespace for each database, which isn't "gl= obal", only the non-default tablespaces are considered globals (or jus= t get rid of the mentioned on "non-default tablespace" for now).<= /div>

David J.

--00000000000019fdc205b3b4bc34-- --00000000000019fdc405b3b4bc36 Content-Type: application/octet-stream; name="0012-architecture-dgj-suggestions.patch" Content-Disposition: attachment; filename="0012-architecture-dgj-suggestions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_khb5t3po0 Y29tbWl0IGQ5ZTQ2NTdhMTdiNWYyYTMyYjM3NTM0ZjM1NTczNzQzMzc3MGE4OGEKQXV0aG9yOiBE YXZpZCBHLiBKb2huc3RvbiA8ZGF2aWQuZy5qb2huc3RvbkBnbWFpbC5jb20+CkRhdGU6ICAgTW9u IE5vdiA5IDIzOjA3OjI5IDIwMjAgKzAwMDAKCiAgICB2MDAxMi1hcmNoaXRlY3R1cmUtc3VnZ2Vz dGlvbnMKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvYXJjaGl0ZWN0dXJlLnNnbWwgYi9kb2Mv c3JjL3NnbWwvYXJjaGl0ZWN0dXJlLnNnbWwKaW5kZXggYjc1ODlmOWE0Zi4uYmQyMmFkYTkzOSAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2FyY2hpdGVjdHVyZS5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9hcmNoaXRlY3R1cmUuc2dtbApAQCAtMjgsMTAgKzI4LDExIEBACiAgICA8L3BhcmE+CiAK ICAgIDxwYXJhPgotICAgIFRoZSBmaXJzdCBzdGVwIHdoZW4gYW4gSW5zdGFuY2Ugc3RhcnRzIGlz IHRoZSBzdGFydCBvZiB0aGUKKyAgICBBbGwgYXNwZWN0cyBvZiBhbiBJbnN0YW5jZSBhcmUgbGF1 bmNoZWQgYW5kIG1hbmFnZWQgdXNpbmcgYSBzaW5nbGUgcHJpbWFyeQorICAgIHByb2Nlc3MgdGVy bWVkIHRoZQogICAgIDxnbG9zc3Rlcm0gbGlua2VuZD0iZ2xvc3NhcnktcG9zdG1hc3RlciI+UG9z dG1hc3RlcjwvZ2xvc3N0ZXJtPi4KLSAgICBJdCBsb2FkcyB0aGUgY29uZmlndXJhdGlvbiBmaWxl cywgYWxsb2NhdGVzIFNoYXJlZCBNZW1vcnksIGFuZAotICAgIHN0YXJ0cyB0aGUgb3RoZXIgcHJv Y2Vzc2VzIG9mIHRoZSBJbnN0YW5jZToKKyAgICBJdCBsb2FkcyBjb25maWd1cmF0aW9uIGZpbGVz LCBhbGxvY2F0ZXMgU2hhcmVkIE1lbW9yeSwgYW5kCisgICAgc3RhcnRzIHRoZSBvdGhlciBjb2xs YWJvcmF0aW5nIHByb2Nlc3NlcyBvZiB0aGUgSW5zdGFuY2U6CiAgICAgPGdsb3NzdGVybSBsaW5r ZW5kPSJnbG9zc2FyeS1iYWNrZ3JvdW5kLXdyaXRlciI+QmFja2dyb3VuZCBXcml0ZXI8L2dsb3Nz dGVybT4sCiAgICAgPGdsb3NzdGVybSBsaW5rZW5kPSJnbG9zc2FyeS1jaGVja3BvaW50ZXIiPkNo ZWNrcG9pbnRlcjwvZ2xvc3N0ZXJtPiwKICAgICA8Z2xvc3N0ZXJtIGxpbmtlbmQ9Imdsb3NzYXJ5 LXdhbC13cml0ZXIiPldBTCBXcml0ZXI8L2dsb3NzdGVybT4sCkBAIC0zOSw5ICs0MCwxMCBAQAog ICAgIDxnbG9zc3Rlcm0gbGlua2VuZD0iZ2xvc3NhcnktYXV0b3ZhY3V1bSI+QXV0b3ZhY3V1bTwv Z2xvc3N0ZXJtPiwKICAgICA8Z2xvc3N0ZXJtIGxpbmtlbmQ9Imdsb3NzYXJ5LXN0YXRzLWNvbGxl Y3RvciI+U3RhdGlzdGljcyBDb2xsZWN0b3I8L2dsb3NzdGVybT4sCiAgICAgPGdsb3NzdGVybSBs aW5rZW5kPSJnbG9zc2FyeS1sb2dnZXIiPkxvZ2dlcjwvZ2xvc3N0ZXJtPiwgYW5kIG1vcmUuCi0g ICAgTGF0ZXIsIHRoZSBQb3N0bWFzdGVyIHN0YXJ0cworICAgIExhdGVyLCB0aGUgUG9zdG1hc3Rl ciBsaXN0ZW5zIG9uIGl0cyBjb25maWd1cmVkIHN5c3RlbSBwb3J0KHMpIGFuZCBpbiByZXNwb25z ZQorICAgIHRvIGNsaWVudCBjb25uZWN0aW9uIGF0dGVtcHRzIGxhdW5jaGVzCiAgICAgPGdsb3Nz dGVybSBsaW5rZW5kPSJnbG9zc2FyeS1iYWNrZW5kIj5CYWNrZW5kPC9nbG9zc3Rlcm0+IHByb2Nl c3NlcwotICAgIHdoaWNoIGNvbW11bmljYXRlIHdpdGggY2xpZW50cyBhbmQgaGFuZGxlIHRoZWly IHJlcXVlc3RzLgorICAgIHRvIHdoaWNoIGl0IGRlbGVnYXRlcyBhdXRoZW50aWNhdGlvbiwgY29t bXVuaWNhdGlvbiwgYW5kIHRoZSBoYW5kbGluZyBvZiB0aGVpciByZXF1ZXN0cy4KICAgICA8eHJl ZiBsaW5rZW5kPSJ0dXRvcmlhbC1yYW0tcHJvYy1maWxlLWZpZ3VyZSIvPiB2aXN1YWxpemVzIHRo ZSBwcm9jZXNzZXMKICAgICBvZiBhbiBJbnN0YW5jZSBhbmQgdGhlIG1haW4gYXNwZWN0cyBvZiB0 aGVpciBjb2xsYWJvcmF0aW9uLgogICAgPC9wYXJhPgpAQCAtNjIsMTQgKzY0LDYgQEAKICAgICA8 L21lZGlhb2JqZWN0PgogICAgPC9maWd1cmU+CiAKLSAgIDxwYXJhPgotICAgIFdoZW4gYSBjbGll bnQgYXBwbGljYXRpb24gdHJpZXMgdG8gY29ubmVjdCB0byBhCi0gICAgPGdsb3NzdGVybSBsaW5r ZW5kPSJnbG9zc2FyeS1kYXRhYmFzZSI+ZGF0YWJhc2U8L2dsb3NzdGVybT4sCi0gICAgdGhpcyBy ZXF1ZXN0IGlzIGhhbmRsZWQgaW5pdGlhbGx5IGJ5IHRoZSBQb3N0bWFzdGVyLiBJdAotICAgIHN0 YXJ0cyBhIG5ldyBCYWNrZW5kIHByb2Nlc3MsIHdoaWNoIGhhbmRsZXMgYWxsIGZ1cnRoZXIKLSAg ICBjbGllbnQncyByZXF1ZXN0cy4KLSAgIDwvcGFyYT4KLQogICAgPHBhcmE+CiAgICAgQ2xpZW50 IHJlcXVlc3RzIGxpa2UgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPiBvcgogICAgIDxjb21tYW5k PlVQREFURTwvY29tbWFuZD4gdXN1YWxseSBsZWFkIHRvIHRoZQpAQCAtODQsOSArNzgsOSBAQAog ICAgPHBhcmE+CiAgICAgU2hhcmVkIE1lbW9yeSBpcyBsaW1pdGVkIGluIHNpemUgYW5kIGl0IGNh biBiZWNvbWUgbmVjZXNzYXJ5CiAgICAgdG8gZXZpY3QgcGFnZXMuIEFzIGxvbmcgYXMgdGhlIGNv bnRlbnQgb2Ygc3VjaCBwYWdlcyBoYXNuJ3QKLSAgICBjaGFuZ2VkLCB0aGlzIGlzIG5vdCBhIHBy b2JsZW0uIEJ1dCBpbiBTaGFyZWQgTWVtb3J5IGFsc28KLSAgICB3cml0ZSBhY3Rpb25zIHRha2Ug cGxhY2UuIE1vZGlmaWVkIHBhZ2VzIGFyZSBjYWxsZWQgZGlydHkKLSAgICBwYWdlcyBvciBkaXJ0 eSBidWZmZXJzIGFuZCBiZWZvcmUgdGhleSBjYW4gYmUgZXZpY3RlZCB0aGV5CisgICAgY2hhbmdl ZCwgdGhpcyBpcyBub3QgYSBwcm9ibGVtLiBCdXQgd3JpdGVzIGRpcmVjdGx5IG1vZGlmeQorICAg IHRoZSBwYWdlcyBpbiBTaGFyZWQgTWVtb3J5LiBNb2RpZmllZCBwYWdlcyBhcmUgY2FsbGVkIGRp cnR5CisgICAgcGFnZXMgKG9yIGRpcnR5IGJ1ZmZlcnMpIGFuZCBiZWZvcmUgdGhleSBjYW4gYmUg ZXZpY3RlZCB0aGV5CiAgICAgbXVzdCBiZSB3cml0dGVuIHRvIGRpc2suIFRoaXMgaGFwcGVucyBy ZWd1bGFybHkgYnkgdGhlCiAgICAgQ2hlY2twb2ludGVyIGFuZCB0aGUgQmFja2dyb3VuZCBXcml0 ZXIgcHJvY2Vzc2VzIHRvIGVuc3VyZQogICAgIHRoYXQgdGhlIGRpc2sgdmVyc2lvbiBvZiB0aGUg cGFnZXMgYXJlIHVwLXRvLWRhdGUuCkBAIC05OCw3ICs5Miw3IEBACiAgICAgPGdsb3NzdGVybSBs aW5rZW5kPSJnbG9zc2FyeS13YWwtcmVjb3JkIj5XQUwgcmVjb3JkPC9nbG9zc3Rlcm0+CiAgICAg aXMgY3JlYXRlZCBmcm9tIHRoZSBkZWx0YS1pbmZvcm1hdGlvbiAoZGlmZmVyZW5jZSBiZXR3ZWVu IHRoZQogICAgIG9sZCBhbmQgdGhlIG5ldyBjb250ZW50KSBhbmQgc3RvcmVkIGluIGFub3RoZXIg YXJlYSBvZgotICAgIFNoYXJlZCBNZW1vcnkuIFRoZSBwYXJhbGxlbCBydW5uaW5nIFdBTCBXcml0 ZXIgcHJvY2VzcworICAgIFNoYXJlZCBNZW1vcnkuIFRoZSBjb25jdXJyZW50bHkgcnVubmluZyBX QUwgV3JpdGVyIHByb2Nlc3MKICAgICByZWFkcyB0aGVtIGFuZCBhcHBlbmRzIHRoZW0gdG8gdGhl IGVuZCBvZiB0aGUgY3VycmVudAogICAgIDxnbG9zc3Rlcm0gbGlua2VuZD0iZ2xvc3Nhcnktd2Fs LXJlY29yZCI+V0FMIGZpbGU8L2dsb3NzdGVybT4uCiAgICAgU3VjaCBzZXF1ZW50aWFsIHdyaXRl cyBhcmUgZmFzdGVyIHRoYW4gd3JpdGVzIHRvIHJhbmRvbQpAQCAtMTA4LDggKzEwMiw4IEBACiAg ICA8L3BhcmE+CiAKICAgIDxwYXJhPgotICAgIFNlY29uZCwgdGhlIHRyYW5zZmVyIG9mIGRpcnR5 IGJ1ZmZlcnMgZnJvbSBTaGFyZWQgTWVtb3J5IHRvCi0gICAgZmlsZXMgbXVzdCB0YWtlIHBsYWNl LiBUaGlzIGlzIHRoZSBwcmltYXJ5IHRhc2sgb2YgdGhlCisgICAgU2Vjb25kLCB0aGUgaW5zdGFu Y2UgdHJhbnNmZXJzIGRpcnR5IGJ1ZmZlcnMgZnJvbSBTaGFyZWQgTWVtb3J5IHRvCisgICAgZmls ZXMuIFRoaXMgaXMgdGhlIHByaW1hcnkgdGFzayBvZiB0aGUKICAgICBCYWNrZ3JvdW5kIFdyaXRl ciBwcm9jZXNzLiBCZWNhdXNlIEkvTyBhY3Rpdml0aWVzIGNhbiBibG9jawogICAgIG90aGVyIHBy b2Nlc3NlcywgaXQgc3RhcnRzIHBlcmlvZGljYWxseSBhbmQKICAgICBhY3RzIG9ubHkgZm9yIGEg c2hvcnQgcGVyaW9kLiBEb2luZyBzbywgaXRzIGV4dGVuc2l2ZSAoYW5kCkBAIC0xMjMsMTQgKzEx Nyw4IEBACiAgICAgPGdsb3NzdGVybSBsaW5rZW5kPSJnbG9zc2FyeS1jaGVja3BvaW50Ij5DaGVj a3BvaW50czwvZ2xvc3N0ZXJtPi4KICAgICBBIENoZWNrcG9pbnQgaXMgYSBwb2ludCBpbiB0aW1l IHdoZW4gYWxsIG9sZGVyIGRpcnR5IGJ1ZmZlcnMsCiAgICAgYWxsIG9sZGVyIFdBTCByZWNvcmRz LCBhbmQgZmluYWxseSBhIHNwZWNpYWwgQ2hlY2twb2ludCByZWNvcmQKLSAgICBhcmUgd3JpdHRl biBhbmQgZmx1c2hlZCB0byBkaXNrLiBIZWFwIGFuZCBpbmRleCBmaWxlcywKLSAgICBhbmQgV0FM IGZpbGVzIGFyZSBub3cgaW4gc3luYy4KLSAgICBPbGRlciBXQUwgaXMgbm8gbG9uZ2VyIHJlcXVp cmVkLiBJbiBvdGhlciB3b3JkcywKLSAgICBhIHBvc3NpYmx5IG9jY3VycmluZyByZWNvdmVyeSwg d2hpY2ggaW50ZWdyYXRlcyB0aGUgZGVsdGEKLSAgICBpbmZvcm1hdGlvbiBvZiBXQUwgaW50byBo ZWFwIGFuZCBpbmRleCBmaWxlcywgd2lsbCBoYXBwZW4KLSAgICBieSByZXBsYXlpbmcgb25seSBX QUwgcGFzdCB0aGUgbGFzdC1yZWNvcmRlZCBjaGVja3BvaW50LgotICAgIFRoaXMgbGltaXRzIHRo ZSBhbW91bnQgb2YgV0FMIHRvIGJlIHJlcGxheWVkCi0gICAgZHVyaW5nIHJlY292ZXJ5IGluIHRo ZSBldmVudCBvZiBhIGNyYXNoLgorICAgIGFyZSB3cml0dGVuIGFuZCBmbHVzaGVkIHRvIGRpc2su CisgICAgT2xkZXIgV0FMIGZpbGVzIGFyZSBubyBsb25nZXIgcmVxdWlyZWQgdG8gcmVjb3ZlciB0 aGUgc3lzdGVtIGZyb20gYSBjcmFzaC4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CkBAIC0xNDEs OCArMTI5LDEwIEBACiAgICAgbGVzcyBjb21tb24pLiBPcHRpb25zIGFuZCBkZXRhaWxzIGFyZSBj b3ZlcmVkCiAgICAgaW4gdGhlIGJhY2t1cCBhbmQgcmVzdG9yZSBzZWN0aW9uICg8eHJlZiBsaW5r ZW5kPSJiYWNrdXAiLz4pLgogICAgIEZvciBvdXIgcHVycG9zZXMgaGVyZSwganVzdCBub3RlIHRo YXQgdGhlIFdBTCBBcmNoaXZlciBwcm9jZXNzCi0gICAgY2FuIGJlIGVuYWJsZWQgYW5kIGNvbmZp Z3VyZWQgdG8gcnVuIGEgc2NyaXB0IG9uIGZpbGxlZCBXQUwKLSAgICBmaWxlcyAmbWRhc2g7IHVz dWFsbHkgdG8gY29weSB0aGVtIHRvIGEgcmVtb3RlIGxvY2F0aW9uLgorICAgIGNhbiBiZSBlbmFi bGVkIGFuZCBjb25maWd1cmVkIHRvIHJ1biBhIHNjcmlwdCBvbiBjb21wbGV0ZWQgV0FMCisgICAg ZmlsZXMgJm1kYXNoOyB1c3VhbGx5IHRvIGNvcHkgdGhlbSB0byBhIHJlbW90ZSBsb2NhdGlvbi4g Tm90ZQorICAgIHRoYXQgd2hlbiBhIENoZWNrcG9pbnQgcmVjb3JkIGlzIHdyaXR0ZW4gdG8gdGhl IFdBTCB0aGUgY3VycmVudAorICAgIGZpbGUgaXMgaW1tZWRpYXRlbHkgY29tcGxldGVkLgogICAg PC9wYXJhPgogCiAgICA8cGFyYT4KQEAgLTE2NiwyMCArMTU2LDI5IEBACiAgICAgQSA8Z2xvc3N0 ZXJtIGxpbmtlbmQ9Imdsb3NzYXJ5LXNlcnZlciI+c2VydmVyPC9nbG9zc3Rlcm0+IGNvbnRhaW5z IG9uZSBvciBtb3JlCiAgICAgPGdsb3NzdGVybSBsaW5rZW5kPSJnbG9zc2FyeS1kYi1jbHVzdGVy Ij5kYXRhYmFzZSBjbHVzdGVyczwvZ2xvc3N0ZXJtPgogICAgICg8Z2xvc3N0ZXJtIGxpbmtlbmQ9 Imdsb3NzYXJ5LWRiLWNsdXN0ZXIiPmNsdXN0ZXJzPC9nbG9zc3Rlcm0+Ci0gICAgZm9yIHNob3J0 KS4gRWFjaCBjbHVzdGVyIGNvbnRhaW5zIHRocmVlIG9yIG1vcmUKLSAgICA8Z2xvc3N0ZXJtIGxp bmtlbmQ9Imdsb3NzYXJ5LWRhdGFiYXNlIj5kYXRhYmFzZXM8L2dsb3NzdGVybT4uCi0gICAgRWFj aCBkYXRhYmFzZSBjYW4gY29udGFpbiBtYW55Ci0gICAgPGdsb3NzdGVybSBsaW5rZW5kPSJnbG9z c2FyeS1zY2hlbWEiPnNjaGVtYXM8L2dsb3NzdGVybT4uCi0gICAgQSBzY2hlbWEgY2FuIGNvbnRh aW4KKyAgICBmb3Igc2hvcnQpLiBCeSBkZWZhdWx0IGVhY2ggbmV3bHkgaW5pdGlhbGl6ZWQgY2x1 c3RlciBjb250YWlucyB0aHJlZQorICAgIDxnbG9zc3Rlcm0gbGlua2VuZD0iZ2xvc3NhcnktZGF0 YWJhc2UiPmRhdGFiYXNlczwvZ2xvc3N0ZXJtPgorICAgIChvbmUgaW50ZXJhY3RpdmUgYW5kIHR3 byB0ZW1wbGF0ZXMsIHNlZSA8eHJlZiBsaW5rZW5kPSJhcHAtaW5pdGRiIi8+KS4KKyAgICBFYWNo IGRhdGFiYXNlIGNhbiBjb250YWluIG1hbnkgdXNlci13cml0YWJsZQorICAgIDxnbG9zc3Rlcm0g bGlua2VuZD0iZ2xvc3Nhcnktc2NoZW1hIj5zY2hlbWFzPC9nbG9zc3Rlcm0+CisgICAgKHB1Ymxp YywgYnkgbmFtZSBhbmQgcGVybWlzc2l2ZW5lc3MsIGJ5IGRlZmF1bHQpIGFuZCB0aHJlZSBzeXN0 ZW0gZ2VuZXJhdGVkCisgICAgdXNlci1mYWNpbmcgc2NoZW1hcyAocGdfY2F0YWxvZywgcGdfdGVt cCwgYW5kIGluZm9ybWF0aW9uX3NjaGVtYSkuCisgICAgU2NoZW1hcyBjb250YWluCiAgICAgPGds b3NzdGVybSBsaW5rZW5kPSJnbG9zc2FyeS10YWJsZSI+dGFibGVzPC9nbG9zc3Rlcm0+LAogICAg IDxnbG9zc3Rlcm0gbGlua2VuZD0iZ2xvc3NhcnktdmlldyI+dmlld3M8L2dsb3NzdGVybT4sIGFu ZCBhIGxvdAotICAgIG9mIG90aGVyIG9iamVjdHMuIEVhY2ggdGFibGUgb3IgdmlldyBiZWxvbmdz IHRvIGEgc2luZ2xlIHNjaGVtYQotICAgIG9ubHk7IHRoZXkgY2Fubm90IGJlbG9uZyB0byBhbm90 aGVyIHNjaGVtYSBhcyB3ZWxsLiBUaGUgc2FtZSBpcwotICAgIHRydWUgZm9yIHRoZSBzY2hlbWEv ZGF0YWJhc2UgYW5kIGRhdGFiYXNlL2NsdXN0ZXIgcmVsYXRpb24uCisgICAgb2Ygb3RoZXIgb2Jq ZWN0cy4KICAgICA8eHJlZiBsaW5rZW5kPSJ0dXRvcmlhbC1jbHVzdGVyLWRiLXNjaGVtYS1maWd1 cmUiLz4gdmlzdWFsaXplcwogICAgIHRoaXMgaGllcmFyY2h5LgogICAgPC9wYXJhPgogCisgICA8 cGFyYT4KKyAgICBFdmVyeSBvYmplY3QgdW5pcXVlbHkgcmVzaWRlcyBpbiBhIHNpbmdsZSBzY2hl bWEsCisgICAgdGhvdWdoIGEgc2luZ2xlIGNsaWVudCBjb25uZWN0aW9uIGNhbiBhY2Nlc3MgbXVs dGlwbGUgc2NoZW1hcyB3aXRoaW4KKyAgICB0aGUgc2FtZSBkYXRhYmFzZSBzaW11bHRhbmVvdXNs eS4gU3BlY2lhbCBjb25maWd1cmF0aW9uIGlzIHJlcXVpcmVkIHRvCisgICAgYWNjZXNzIG11bHRp cGxlIGRhdGFiYXNlcywgZXZlbiB3aXRoaW4gdGhlIHNhbWUgY2x1c3RlciwgZnJvbSBhIHNpbmds ZQorICAgIGNsaWVudCBjb25uZWN0aW9uLgorICAgPC9wYXJhPgorCiAgICA8ZmlndXJlIGlkPSJ0 dXRvcmlhbC1jbHVzdGVyLWRiLXNjaGVtYS1maWd1cmUiPgogICAgIDx0aXRsZT5DbHVzdGVyLCBE YXRhYmFzZSwgU2NoZW1hPC90aXRsZT4KICAgICA8bWVkaWFvYmplY3Q+CkBAIC0xOTYsNjEgKzE5 NSwxMiBAQAogICAgIDwvbWVkaWFvYmplY3Q+CiAgICA8L2ZpZ3VyZT4KIAotICAgPHBhcmE+Ci0g ICAgQSBjbHVzdGVyIGlzIHRoZSBvdXRlciBjb250YWluZXIgZm9yIGEKLSAgICBjb2xsZWN0aW9u IG9mIGRhdGFiYXNlcy4gQ2x1c3RlcnMgYXJlIGNyZWF0ZWQgYnkgdGhlIGNvbW1hbmQKLSAgICA8 eHJlZiBsaW5rZW5kPSJhcHAtaW5pdGRiIi8+LgotICAgPC9wYXJhPgotCi0gICA8cGFyYT4KLSAg ICA8bGl0ZXJhbD50ZW1wbGF0ZTA8L2xpdGVyYWw+IGlzIHRoZSB2ZXJ5IGZpcnN0Ci0gICAgZGF0 YWJhc2Ugb2YgYW55IGNsdXN0ZXIuIERhdGFiYXNlIDxsaXRlcmFsPnRlbXBsYXRlMDwvbGl0ZXJh bD4KLSAgICBpcyBjcmVhdGVkIGR1cmluZyB0aGUgaW5pdGlhbGl6YXRpb24gcGhhc2Ugb2YgdGhl IGNsdXN0ZXIuCi0gICAgSW4gYSBzZWNvbmQgc3RlcCwgZGF0YWJhc2UgPGxpdGVyYWw+dGVtcGxh dGUxPC9saXRlcmFsPiBpcyBnZW5lcmF0ZWQKLSAgICBhcyBhIGNvcHkgb2YgPGxpdGVyYWw+dGVt cGxhdGUwPC9saXRlcmFsPiwgYW5kIGZpbmFsbHkgZGF0YWJhc2UKLSAgICA8bGl0ZXJhbD5wb3N0 Z3JlczwvbGl0ZXJhbD4gaXMgZ2VuZXJhdGVkIGFzIGEgY29weSBvZgotICAgIDxsaXRlcmFsPnRl bXBsYXRlMTwvbGl0ZXJhbD4uIEFueQotICAgIDxnbG9zc3Rlcm0gbGlua2VuZD0iYXBwLWNyZWF0 ZWRiIj5uZXcgZGF0YWJhc2VzPC9nbG9zc3Rlcm0+Ci0gICAgb2YgdGhlIGNsdXN0ZXIgdGhhdCBh IHVzZXIgbWlnaHQgbmVlZCwKLSAgICBzdWNoIGFzIDxsaXRlcmFsPm15X2RiPC9saXRlcmFsPiwg d2lsbCBiZSBjb3BpZWQgZnJvbSB0aGUKLSAgICA8bGl0ZXJhbD50ZW1wbGF0ZTE8L2xpdGVyYWw+ IGRhdGFiYXNlLiBEdWUgdG8gdGhlIHVuaXF1ZQotICAgIHJvbGUgb2YgPGxpdGVyYWw+dGVtcGxh dGUwPC9saXRlcmFsPiBhcyB0aGUgcHJpc3RpbmUgb3JpZ2luYWwKLSAgICBvZiBhbGwgb3RoZXIg ZGF0YWJhc2VzLCBubyBjbGllbnQgY2FuIGNvbm5lY3QgdG8gaXQuCi0gICA8L3BhcmE+Ci0KLSAg IDxwYXJhPgotICAgIEV2ZXJ5IGRhdGFiYXNlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgc2No ZW1hIGJlY2F1c2UgYWxsCi0gICAgPGdsb3NzdGVybSBsaW5rZW5kPSJnbG9zc2FyeS1zcWwtb2Jq ZWN0Ij5TUUwgT2JqZWN0czwvZ2xvc3N0ZXJtPgotICAgIG11c3QgYmUgY29udGFpbmVkIGluIGEg c2NoZW1hLgotICAgIFNjaGVtYXMgYXJlIG5hbWVzcGFjZXMgZm9yIFNRTCBvYmplY3RzIGFuZCBl bnN1cmUKLSAgICAod2l0aCBvbmUgZXhjZXB0aW9uKSB0aGF0IHRoZSBTUUwgb2JqZWN0IG5hbWVz IGFyZSB1c2VkIG9ubHkgb25jZSB3aXRoaW4KLSAgICB0aGVpciBzY29wZSBhY3Jvc3MgYWxsIHR5 cGVzIG9mIFNRTCBvYmplY3RzLiBFLmcuLCBpdCBpcyBub3QgcG9zc2libGUKLSAgICB0byBoYXZl IGEgdGFibGUgPGxpdGVyYWw+ZW1wbG95ZWU8L2xpdGVyYWw+IGFuZCBhIHZpZXcKLSAgICA8bGl0 ZXJhbD5lbXBsb3llZTwvbGl0ZXJhbD4gd2l0aGluIHRoZSBzYW1lIHNjaGVtYS4gQnV0IGl0IGlz Ci0gICAgcG9zc2libGUgdG8gaGF2ZSB0d28gdGFibGVzIDxsaXRlcmFsPmVtcGxveWVlPC9saXRl cmFsPiBpbiB0d28KLSAgICBkaWZmZXJlbnQgc2NoZW1hcy4gSW4gdGhpcyBjYXNlLCB0aGUgdHdv IHRhYmxlcwotICAgIGFyZSBzZXBhcmF0ZSBvYmplY3RzIGFuZCBpbmRlcGVuZGVudCBvZiBlYWNo Ci0gICAgb3RoZXIuIFRoZSBvbmx5IGV4Y2VwdGlvbiB0byB0aGlzIGNyb3NzLXR5cGUgdW5pcXVl bmVzcyBpcyB0aGF0Ci0gICAgPGdsb3NzdGVybSBsaW5rZW5kPSJnbG9zc2FyeS11bmlxdWUtY29u c3RyYWludCI+dW5pcXVlIGNvbnN0cmFpbnRzCi0gICAgPC9nbG9zc3Rlcm0+IGFuZCB0aGUgYWNj b3JkaW5nIHVuaXF1ZSBpbmRleAotICAgICg8eHJlZiBsaW5rZW5kPSJpbmRleGVzLXVuaXF1ZSIv PikgdXNlIHRoZSBzYW1lIG5hbWUuCi0gICA8L3BhcmE+Ci0KLSAgIDxwYXJhPgotICAgIFNvbWUg c2NoZW1hcyBhcmUgcHJlZGVmaW5lZC4gPGxpdGVyYWw+cHVibGljPC9saXRlcmFsPgotICAgIGFj dHMgYXMgdGhlIGRlZmF1bHQgc2NoZW1hIGFuZCBjb250YWlucyBhbGwgU1FMIG9iamVjdHMKLSAg ICB3aGljaCBhcmUgY3JlYXRlZCB3aXRoaW4gPGxpdGVyYWw+cHVibGljPC9saXRlcmFsPiBvcgot ICAgIHdpdGhvdXQgdXNpbmcgYW4gZXhwbGljaXQgc2NoZW1hIG5hbWUuIDxsaXRlcmFsPnB1Ymxp YzwvbGl0ZXJhbD4KLSAgICBzaG91bGQgbm90IGNvbnRhaW4gdXNlci1kZWZpbmVkIFNRTCBvYmpl Y3RzLiBJbnN0ZWFkLCBpdCBpcwotICAgIHJlY29tbWVuZGVkIHRvIGNyZWF0ZSBhIHNlcGFyYXRl IHNjaGVtYSB0aGF0IGhvbGRzIGluZGl2aWR1YWwKLSAgICBvYmplY3RzIGxpa2UgYXBwbGljYXRp b24tc3BlY2lmaWMgdGFibGVzIG9yIHZpZXdzLgotICAgIDxsaXRlcmFsPnBnX2NhdGFsb2c8L2xp dGVyYWw+IGlzIGEgc2NoZW1hIGZvciBhbGwgdGFibGVzIGFuZCB2aWV3cyBvZiB0aGUKLSAgICA8 Z2xvc3N0ZXJtIGxpbmtlbmQ9Imdsb3NzYXJ5LXN5c3RlbS1jYXRhbG9nIj5TeXN0ZW0gQ2F0YWxv ZzwvZ2xvc3N0ZXJtPi4KLSAgICA8bGl0ZXJhbD5pbmZvcm1hdGlvbl9zY2hlbWE8L2xpdGVyYWw+ IGlzIGEgc2NoZW1hIGZvciBzZXZlcmFsCi0gICAgdGFibGVzIGFuZCB2aWV3cyBvZiB0aGUgU3lz dGVtIENhdGFsb2cgaW4gYSB3YXkgdGhhdCBjb25mb3JtcwotICAgIHRvIHRoZSBTUUwgc3RhbmRh cmQuCi0gICA8L3BhcmE+Ci0KKyAgIDwhLS0gVGhlIHJlZmVyZW5jZSB0byBpbml0ZGIgc2hvdWxk IHN1ZmZpY2UgaGVyZSAtLT4KKyAgIAorICAgPCEtLSBER0o6IEFuZCB0aGVzZSBuZXh0IHR3byBw YXJhZ3JhcGhzIHByb2JhYmx5IGNhbiBiZSB0cmltbWVkIGRvd24gdG8gdXNhZ2UKKyAgICAgICAg d2l0aCB0aGUgaW5jb3Jwb3JhdGlvbiBvZiB0aGUgcmVmZXJlbmNlcyB0byBkZWZhdWx0IG9iamVj dHMgYWJvdmUsIHdoaWNoCisgICAgICAgIGlkZWFsbHkgd291bGQgcG9pbnQgdGhlIHVzZXIgdG8g cmVmZXJlbmNlIG1hdGVyaWFsIGZvciB0aGUgc2FtZSAtLT4KKyAgIAogICAgPHBhcmE+CiAgICAg VGhlcmUgYXJlIG1hbnkgZGlmZmVyZW50IFNRTCBvYmplY3QKICAgICB0eXBlczogPGZpcnN0dGVy bT5kYXRhYmFzZSwgc2NoZW1hLCB0YWJsZSwgdmlldywgbWF0ZXJpYWxpemVkCkBAIC0yNjEsOCAr MjExLDggQEAKICAgICBzdHJpY3QgaGllcmFyY2h5OiBBbGwgPGZpcnN0dGVybT5kYXRhYmFzZSBu YW1lczwvZmlyc3R0ZXJtPiwKICAgICBhbGwgPGZpcnN0dGVybT50YWJsZXNwYWNlIG5hbWVzPC9m aXJzdHRlcm0+LCBhbmQgYWxsCiAgICAgPGZpcnN0dGVybT5yb2xlIG5hbWVzPC9maXJzdHRlcm0+ IGFyZSBhdXRvbWF0aWNhbGx5Ci0gICAgYXZhaWxhYmxlIHRocm91Z2hvdXQgdGhlIGNsdXN0ZXIs IGluZGVwZW5kZW50IGZyb20KLSAgICB0aGUgZGF0YWJhc2Ugb3Igc2NoZW1hIGluIHdoaWNoIHRo ZXkgd2VyZSBkZWZpbmVkIG9yaWdpbmFsbHkuCisgICAgYXZhaWxhYmxlIHRocm91Z2hvdXQgdGhl IGNsdXN0ZXIsIG5vdCBqdXN0IHRoZSBkYXRhYmFzZSBpbiB3aGljaAorICAgIHRoZSBTUUwgQ29t bWFuZCB3YXMgZXhlY3V0ZWQuCiAgICAgPHhyZWYgbGlua2VuZD0idHV0b3JpYWwtaW50ZXJuYWwt b2JqZWN0cy1oaWVyYXJjaHktZmlndXJlIi8+CiAgICAgc2hvd3MgdGhlIHJlbGF0aW9uIGJldHdl ZW4gdGhlIG9iamVjdCB0eXBlcy4KICAgIDwvcGFyYT4KQEAgLTI4Niw3ICsyMzYsNyBAQAogICA8 L3NlY3QxPgogCiAgIDxzZWN0MSBpZD0idHV0b3JpYWwtZGlyZWN0b3JpZXMiPgotICAgPHRpdGxl PlRoZSBwaHlzaWNhbCBQZXJzcGVjdGl2ZTogRGlyZWN0b3JpZXMgYW5kIEZpbGVzPC90aXRsZT4K KyAgIDx0aXRsZT5UaGUgUGh5c2ljYWwgUGVyc3BlY3RpdmU6IERpcmVjdG9yaWVzIGFuZCBGaWxl czwvdGl0bGU+CiAKICAgIDxwYXJhPgogICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9k dWN0bmFtZT4gb3JnYW5pemVzIGxvbmctbGFzdGluZyAocGVyc2lzdGVudCkKQEAgLTI5Nyw3ICsy NDcsNyBAQAogICAgIHZhcmlhYmxlIDxsaXRlcmFsPlBHREFUQTwvbGl0ZXJhbD4gcG9pbnRzIHRv IHRoaXMgZGlyZWN0b3J5LgogICAgIFRoZSBleGFtcGxlIHNob3duIGluCiAgICAgPHhyZWYgbGlu a2VuZD0idHV0b3JpYWwtZGlyZWN0b3JpZXMtZmlndXJlIi8+IHVzZXMKLSAgICA8bGl0ZXJhbD5k YXRhPC9saXRlcmFsPiBhcyB0aGUgbmFtZSBvZiB0aGlzIHJvb3QgZGlyZWN0b3J5LgorICAgIDxs aXRlcmFsPnBnZGF0YTwvbGl0ZXJhbD4gYXMgdGhlIG5hbWUgb2YgdGhpcyByb290IGRpcmVjdG9y eS4KICAgIDwvcGFyYT4KIAogICAgPGZpZ3VyZSBpZD0idHV0b3JpYWwtZGlyZWN0b3JpZXMtZmln dXJlIj4KQEAgLTMxNywxNiArMjY3LDE2IEBACiAgICA8L2ZpZ3VyZT4KIAogICAgPHBhcmE+Ci0g ICAgPGxpdGVyYWw+ZGF0YTwvbGl0ZXJhbD4gY29udGFpbnMgbWFueSBzdWJkaXJlY3RvcmllcyBh bmQKKyAgICA8bGl0ZXJhbD5wZ2RhdGE8L2xpdGVyYWw+IGNvbnRhaW5zIG1hbnkgc3ViZGlyZWN0 b3JpZXMgYW5kCiAgICAgc29tZSBmaWxlcywgYWxsIG9mIHdoaWNoIGFyZSBuZWNlc3NhcnkgdG8g c3RvcmUgbG9uZy1sYXN0aW5nCiAgICAgYXMgd2VsbCBhcyB0ZW1wb3JhcnkgZGF0YS4gVGhlIGZv bGxvd2luZyBwYXJhZ3JhcGhzCiAgICAgZGVzY3JpYmUgdGhlIGZpbGVzIGFuZCBzdWJkaXJlY3Rv cmllcyBpbgotICAgIDxsaXRlcmFsPmRhdGE8L2xpdGVyYWw+LgorICAgIDxsaXRlcmFsPnBnZGF0 YTwvbGl0ZXJhbD4uCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgotICAgIDxsaXRlcmFsPmJhc2U8 L2xpdGVyYWw+IGlzIGEgc3ViZGlyZWN0b3J5IGluIHdoaWNoIG9uZQotICAgIHN1YmRpcmVjdG9y eSBwZXIgZGF0YWJhc2UgZXhpc3RzLiBUaGUgbmFtZXMgb2YgdGhvc2UKKyAgICA8bGl0ZXJhbD5i YXNlPC9saXRlcmFsPiBpcyBhIHN1YmRpcmVjdG9yeSBjb250YWluaW5nIG9uZQorICAgIHN1YmRp cmVjdG9yeSBwZXIgZGF0YWJhc2UuIFRoZSBuYW1lcyBvZiB0aG9zZQogICAgIHN1YmRpcmVjdG9y aWVzIGNvbnNpc3Qgb2YgbnVtYmVycy4gVGhlc2UgYXJlIHRoZSBpbnRlcm5hbAogICAgIE9iamVj dCBJZGVudGlmaWVycyAoT0lEKSwgd2hpY2ggYXJlIG51bWJlcnMgdG8gaWRlbnRpZnkKICAgICB0 aGUgZGF0YWJhc2UgZGVmaW5pdGlvbiBpbiB0aGUKQEAgLTMzNSw3ICsyODUsNyBAQAogCiAgICA8 cGFyYT4KICAgICBXaXRoaW4gdGhlIGRhdGFiYXNlLXNwZWNpZmljCi0gICAgc3ViZGlyZWN0b3Jp ZXMsIHRoZXJlIGFyZSBtYW55IGZpbGVzOiBvbmUgb3IgbW9yZSBmb3IKKyAgICBzdWJkaXJlY3Rv cmllcyB0aGVyZSBhcmUgbWFueSBmaWxlczogb25lIG9yIG1vcmUgZm9yCiAgICAgZXZlcnkgdGFi bGUgYW5kIGV2ZXJ5IGluZGV4IHRvIHN0b3JlIGhlYXAgYW5kIGluZGV4CiAgICAgZGF0YS4gVGhv c2UgZmlsZXMgYXJlIGFjY29tcGFuaWVkIGJ5IGZpbGVzIGZvciB0aGUKICAgICA8bGluayBsaW5r ZW5kPSJzdG9yYWdlLWZzbSI+RnJlZSBTcGFjZSBNYXBzPC9saW5rPgpAQCAtMzQ4LDEwICsyOTgs MTIgQEAKICAgICBBbm90aGVyIHN1YmRpcmVjdG9yeSBpcyA8bGl0ZXJhbD5nbG9iYWw8L2xpdGVy YWw+IHdoaWNoCiAgICAgY29udGFpbnMgZmlsZXMgd2l0aCBpbmZvcm1hdGlvbiBhYm91dAogICAg IDxnbG9zc3Rlcm0gbGlua2VuZD0iZ2xvc3Nhcnktc3FsLW9iamVjdCI+R2xvYmFsIFNRTCBPYmpl Y3RzPC9nbG9zc3Rlcm0+LgotICAgIE9uZSB0eXBlIG9mIHN1Y2ggR2xvYmFsIFNRTCBPYmplY3Rz IGFyZQotICAgIDxnbG9zc3Rlcm0gbGlua2VuZD0iZ2xvc3NhcnktdGFibGVzcGFjZSI+dGFibGVz cGFjZXM8L2dsb3NzdGVybT4uCi0gICAgSW4gPGxpdGVyYWw+Z2xvYmFsPC9saXRlcmFsPiB0aGVy ZSBpcyBpbmZvcm1hdGlvbiBhYm91dAotICAgIHRoZSB0YWJsZXNwYWNlczsgbm90IHRoZSB0YWJs ZXNwYWNlcyB0aGVtc2VsdmVzLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJbiA8bGl0 ZXJhbD5wZ190YmxzcGM8L2xpdGVyYWw+LCB0aGVyZSBhcmUgc3ltYm9saWMgbGlua3MKKyAgICB0 aGF0IHBvaW50IHRvIGRpcmVjdG9yaWVzIGNvbnRhaW5pbmcgU1FMIG9iamVjdHMKKyAgICB0aGF0 IGV4aXN0IHdpdGhpbiBhIG5vbi1kZWZhdWx0IHRhYmxlc3BhY2UuCiAgICA8L3BhcmE+CiAKICAg IDxwYXJhPgpAQCAtMzcwLDE3ICszMjIsMTIgQEAKICAgIDwvcGFyYT4KIAogICAgPHBhcmE+Ci0g ICAgSW4gPGxpdGVyYWw+cGdfdGJsc3BjPC9saXRlcmFsPiwgdGhlcmUgYXJlIHN5bWJvbGljIGxp bmtzCi0gICAgdGhhdCBwb2ludCB0byBkaXJlY3RvcmllcyBjb250YWluaW5nIFNRTCBvYmplY3Rz Ci0gICAgdGhhdCBleGlzdCB3aXRoaW4gYSBub24tZGVmYXVsdCB0YWJsZXNwYWNlLgotICAgPC9w YXJhPgotCi0gICA8cGFyYT4KLSAgICBJbiB0aGUgcm9vdCBkaXJlY3RvcnkgPGxpdGVyYWw+ZGF0 YTwvbGl0ZXJhbD4KKyAgICBJbiB0aGUgcm9vdCBkaXJlY3RvcnkgPGxpdGVyYWw+cGdkYXRhPC9s aXRlcmFsPgogICAgIHRoZXJlIGFyZSBhbHNvIHNvbWUgZmlsZXMuIEluIG1hbnkgY2FzZXMsIHRo ZSBjb25maWd1cmF0aW9uCiAgICAgZmlsZXMgb2YgdGhlIGNsdXN0ZXIgYXJlIHN0b3JlZCBoZXJl LiBJZiB0aGUKICAgICBpbnN0YW5jZSBpcyB1cCBhbmQgcnVubmluZywgdGhlIGZpbGUKICAgICA8 bGl0ZXJhbD5wb3N0bWFzdGVyLnBpZDwvbGl0ZXJhbD4gZXhpc3RzIGhlcmUKKyAgICAoYnkgZGVm YXVsdCkKICAgICBhbmQgY29udGFpbnMgdGhlIHByb2Nlc3MgSUQgKHBpZCkgb2YgdGhlCiAgICAg UG9zdG1hc3RlciB3aGljaCBzdGFydGVkIHRoZSBpbnN0YW5jZS4KICAgIDwvcGFyYT4K --00000000000019fdc405b3b4bc36--