Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1f2KdZ-0005Yk-Cw for pgadmin-hackers@arkaria.postgresql.org; Sat, 31 Mar 2018 17:49:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1f2KdY-0003bF-0L for pgadmin-hackers@arkaria.postgresql.org; Sat, 31 Mar 2018 17:49:56 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1f2KdX-0003b6-O4 for pgadmin-hackers@lists.postgresql.org; Sat, 31 Mar 2018 17:49:55 +0000 Received: from mail-wm0-x244.google.com ([2a00:1450:400c:c09::244]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1f2KdT-0002Pn-FI for pgadmin-hackers@lists.postgresql.org; Sat, 31 Mar 2018 17:49:54 +0000 Received: by mail-wm0-x244.google.com with SMTP id b127so18837884wmf.5 for ; Sat, 31 Mar 2018 10:49:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=QmTKoE/QKgxHJ08FSyb6vQwTQNEqZ+V6Xfnd5pR3H08=; b=aOTfmQJr6XyUdl5QzwF1RM/+THWczQAPlcMf/zj4TwmwCfLOdbKzQl7YBuubncUvuX JPvtKFXEm03HpWs5N4Ccdjyi8/ClzUzOQp6nZxiMbDE+BS6R+hw7z40nqdz77tzTKDDT K8D3YrlmEIjDJc2pfbtIACplHe/T//ctkGxRRXUI8DOOqJTq2eVxoysq4Uv9rDIqGS/6 FvC8t+EJeIgJQnKiDdOPyp//fv7/XSzjujW1+QBuPTYLDRD+AXd7bi7ZExNN1tBjn89l jLLdUMAzZ4vuCmOQ/xLWCfvIsOEUbez/CYIiB/mjTdpGblEgU8dXwL/qSjshhdNPaIBb M8fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=QmTKoE/QKgxHJ08FSyb6vQwTQNEqZ+V6Xfnd5pR3H08=; b=Gq/DGEZOBJaQw3uWUOuV1TL4DQPF6tRD6NIm3eCsS246TeziW9LF2/zGfpBhnOTjXE GOPhfsdItfk0wxsm2B0haeH8pSa7nWkYigoeS9gHSYsKlbmTlmXY0apHSXwV+pub1nQi Eon9BO1t2zVAYfmoOE2q6Ngw46Y51kfmwzhXbc49h7NQT1I9ZdvAqA7O9Aknwk+nf6da B2FYKLrRZyF6ZmZY1APi6/p5lJWPcRQx4SPJdbgfPLnrxElowbzQvAmjLTRhqHZN9af4 7R2TxAmf6WlXox9sMtIIABNKsUlxk0/s/nWHjzNDTXXu2E+GjE3Xr9dgsycY7uOE7vuK +FHg== X-Gm-Message-State: ALQs6tCpe+moRd176MJEVFsbiHQjdJPFQ9RyPb3AzEw+ppG5EfuHwgr1 +jZGZhT8t72wmX2XhfwjM8cntF+4GpV/XEnJ6WQZecHX5lg= X-Google-Smtp-Source: AIpwx49WHU1Bcwnmyx7Os/8dqTpnos+q/tdswFE434PoaZ2LmXdBcjErULQQaaA6ZTV2XFBXevtMnxXHK/oEx+0UBE0= X-Received: by 10.28.144.134 with SMTP id s128mr4547392wmd.26.1522518590198; Sat, 31 Mar 2018 10:49:50 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.9.19 with HTTP; Sat, 31 Mar 2018 10:49:49 -0700 (PDT) From: =?UTF-8?B?0JzQsNC60YHQuNC8INCa0L7Qu9GM0YbQvtCy?= Date: Sat, 31 Mar 2018 20:49:49 +0300 Message-ID: Subject: [pgAdmin4][Patch] Remake Docker container packaging To: pgadmin-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="001a1146ff84bbb6dd0568b8fbe1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --001a1146ff84bbb6dd0568b8fbe1 Content-Type: text/plain; charset="UTF-8" Hi all, I've been discussing this with Dave for about a month now. Today I finally present a proposed patch to update pgadmin4's Docker packaging. Key features of this update: - Main image is based on python:3.6-alpine3.7. Using Alpine linux leads to much smaller image - All build is done with Docker multi-stage build. First of all build the frontend in node:6 image, then build Sphinx documentation in separate Python container and in the end just install all dependencies in a clean python:3.6-alpine3.7 image, so that it does not have any leftovers from the build process and we don't rely on any tools available on the host. - Use Gunicorn (http://gunicorn.org) as lightweight HTTP / WSGI server. Gunicorn supports both HTTP and HTTPS. - Install Alpine postgresql-client package, which includes pg_dump and other tools and config PgAdmin to find these tools by default - Byte-compile all PgAdmin Python code in Dockerfile with optimization (-O) enabled. This way Python does not have to compile modules on each container restart and consume space in overlay fs Please find attached patch from "git format-patch". --001a1146ff84bbb6dd0568b8fbe1 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Re-make-Docker-container-packaging.patch" Content-Disposition: attachment; filename="0001-Re-make-Docker-container-packaging.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jffo8z9z0 RnJvbSA2N2UzODc1MjVhN2M4MzI5NTg4NThjN2VjMWExYjcwNzYzODIwOTBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbSBLb2x0c292IDxrb2xtYXg5NEBnbWFpbC5jb20+CkRh dGU6IFNhdCwgMzEgTWFyIDIwMTggMjA6Mzc6NTEgKzAzMDAKU3ViamVjdDogW1BBVENIXSBSZS1t YWtlIERvY2tlciBjb250YWluZXIgcGFja2FnaW5nCgpLZXkgZmVhdHVyZXMgb2YgdGhpcyB1cGRh dGU6Ci0gTWFpbiBpbWFnZSBpcyBiYXNlZCBvbiBweXRob246My42LWFscGluZTMuNy4KICBVc2lu ZyBBbHBpbmUgbGludXggbGVhZHMgdG8gbXVjaCBzbWFsbGVyIGltYWdlCi0gQWxsIGJ1aWxkIGlz IGRvbmUgd2l0aCBEb2NrZXIgbXVsdGktc3RhZ2UgYnVpbGQuIEZpcnN0IG9mIGFsbCBidWlsZCB0 aGUgZnJvbnRlbmQgaW4gbm9kZTo2IGltYWdlLAogIHRoZW4gYnVpbGQgU3BoaW54IGRvY3VtZW50 YXRpb24gaW4gc2VwYXJhdGUgUHl0aG9uIGNvbnRhaW5lciBhbmQgaW4gdGhlIGVuZCBqdXN0IGlu c3RhbGwgYWxsCiAgZGVwZW5kZW5jaWVzIGluIGEgY2xlYW4gcHl0aG9uOjMuNi1hbHBpbmUzLjcg aW1hZ2UsIHNvIHRoYXQgaXQgZG9lcyBub3QgaGF2ZSBhbnkgbGVmdG92ZXJzIGZyb20gdGhlIGJ1 aWxkCiAgcHJvY2VzcyBhbmQgd2UgZG9uJ3QgcmVseSBvbiBhbnkgdG9vbHMgYXZhaWxhYmxlIG9u IHRoZSBob3N0LgotIFVzZSBHdW5pY29ybiAoaHR0cDovL2d1bmljb3JuLm9yZykgYXMgbGlnaHR3 ZWlnaHQgSFRUUCAvIFdTR0kgc2VydmVyLgogIEd1bmljb3JuIHN1cHBvcnRzIGJvdGggSFRUUCBh bmQgSFRUUFMuCi0gSW5zdGFsbCBBbHBpbmUgcG9zdGdyZXNxbC1jbGllbnQgcGFja2FnZSwgd2hp Y2ggaW5jbHVkZXMgcGdfZHVtcCBhbmQgb3RoZXIgdG9vbHMgYW5kIGNvbmZpZwogIFBnQWRtaW4g dG8gZmluZCB0aGVzZSB0b29scyBieSBkZWZhdWx0Ci0gQnl0ZS1jb21waWxlIGFsbCBQZ0FkbWlu IFB5dGhvbiBjb2RlIGluIERvY2tlcmZpbGUgd2l0aCBvcHRpbWl6YXRpb24gKC1PKSBlbmFibGVk LiBUaGlzIHdheSBQeXRob24KICBkb2VzIG5vdCBoYXZlIHRvIGNvbXBpbGUgbW9kdWxlcyBvbiBl YWNoIGNvbnRhaW5lciByZXN0YXJ0IGFuZCBjb25zdW1lIHNwYWNlIGluIG92ZXJsYXkgZnMKLS0t CiBwa2cvZG9ja2VyL0RvY2tlcmZpbGUgICAgICAgfCA4OSArKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHBrZy9kb2NrZXIvUkVBRE1FICAgICAgICAgICB8IDU4 ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiBwa2cvZG9ja2VyL2J1aWxkLnNoICAgICAg ICAgfCA1NyArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogcGtnL2RvY2tlci9jb25maWdf ZGlzdHJvLnB5IHwgIDQgKysKIHBrZy9kb2NrZXIvZW50cnkuc2ggICAgICAgICB8IDI5IC0tLS0t LS0tLS0tLS0tLQogcGtnL2RvY2tlci9lbnRyeXBvaW50LnNoICAgIHwgMjEgKysrKysrKysrKysK IHBrZy9kb2NrZXIvcGdhZG1pbjQuY29uZi5qMiB8IDQzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IHBrZy9kb2NrZXIvcnVuX3BnYWRtaW4ucHkgICB8ICA0ICsrCiA4IGZpbGVzIGNoYW5nZWQsIDEx MiBpbnNlcnRpb25zKCspLCAxOTMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGtn L2RvY2tlci9jb25maWdfZGlzdHJvLnB5CiBkZWxldGUgbW9kZSAxMDA2NDQgcGtnL2RvY2tlci9l bnRyeS5zaAogY3JlYXRlIG1vZGUgMTAwNzU1IHBrZy9kb2NrZXIvZW50cnlwb2ludC5zaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHBrZy9kb2NrZXIvcGdhZG1pbjQuY29uZi5qMgogY3JlYXRlIG1vZGUg MTAwNjQ0IHBrZy9kb2NrZXIvcnVuX3BnYWRtaW4ucHkKCmRpZmYgLS1naXQgYS9wa2cvZG9ja2Vy L0RvY2tlcmZpbGUgYi9wa2cvZG9ja2VyL0RvY2tlcmZpbGUKaW5kZXggMWMxZGRlMjcuLjA4M2Ri ZDYwIDEwMDY0NAotLS0gYS9wa2cvZG9ja2VyL0RvY2tlcmZpbGUKKysrIGIvcGtnL2RvY2tlci9E b2NrZXJmaWxlCkBAIC03LDU4ICs3LDYzIEBACiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKLSMgR2V0 IHRoZSBiYXNpY3Mgb3V0IG9mIHRoZSB3YXkKLUZST00gY2VudG9zOmxhdGVzdAorIyBGaXJzdCBv ZiBhbGwsIGJ1aWxkIGZyb250ZW5kIHdpdGggTm9kZUpTIGluIGEgc2VwYXJhdGUgYnVpbGRlciBj b250YWluZXIKKyMgTm9kZS02IHdpdGggQUJJIHY0OCBpcyBzdXBwb3J0ZWQgYnkgYWxsIG5lZWRl ZCBDKysgcGFja2FnZXMKK0ZST00gbm9kZTo2IEFTIG5vZGUtYnVpbGRlcgogCi1MQUJFTCBuYW1l PSJwZ0FkbWluIDQiIFwKLSAgICB2ZW5kb3I9IlRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0i IFwKLSAgICBsaWNlbnNlPSJQb3N0Z3JlU1FMIgorQ09QWSAuL3BnYWRtaW40L3dlYi8gL3BnYWRt aW40L3dlYi8KK1dPUktESVIgL3BnYWRtaW40L3dlYgogCi0jIFdlIG9ubHkgbmVlZCB0aGUgd2Vi LyBkaXJlY3RvcnksIGFuZCBhIGZldyBvdGhlciB0aGluZ3MKLUNPUFkgd2ViIC92YXIvd3d3L3Bn YWRtaW4KLUNPUFkgcmVxdWlyZW1lbnRzLnR4dCAvdmFyL3d3dy9wZ2FkbWluCitSVU4geWFybiBp bnN0YWxsIC0tY2FjaGUtZm9sZGVyIC4veWNhY2hlIC0tdmVyYm9zZSAmJiBcCisgICAgeWFybiBy dW4gYnVuZGxlICYmIFwKKyAgICBybSAtcmYgLi95Y2FjaGUgLi9wZ2FkbWluL3N0YXRpYy9qcy9n ZW5lcmF0ZWQvLmNhY2hlCiAKLSMgSW5zdGFsbCBldmVyeXRoaW5nIHdlIG5lZWQuIFVzZSBlYXN5 X2luc3RhbGwgdG8gZ2V0IHBpcCwgdG8gYXZvaWQgc2V0dGluZyB1cCBFUEVMCi1SVU4geXVtIGlu c3RhbGwgLXkgcHl0aG9uLXNldHVwdG9vbHMgcHl0aG9uLWRldmVsIGh0dHBkIG1vZF93c2dpIG1v ZF9zc2wgZ2NjCi1SVU4gZWFzeV9pbnN0YWxsIHBpcAotUlVOIHBpcCBpbnN0YWxsIGoyY2xpCisj IEJ1aWxkIFNwaGlueCBkb2N1bWVudGF0aW9uIGluIHNlcGFyYXRlIGNvbnRhaW5lcgorRlJPTSBw eXRob246My42LWFscGluZTMuNyBhcyBkb2NzLWJ1aWxkZXIKIAotIyBOb3cgaW5zdGFsbCB0aGUg UHl0aG9uIHJ1bnRpbWUgZGVwZW5kZW5jaWVzCi1SVU4gcGlwIGluc3RhbGwgLXIgL3Zhci93d3cv cGdhZG1pbi9yZXF1aXJlbWVudHMudHh0CisjIEluc3RhbGwgb25seSBkZXBlbmRlbmNpZXMgYWJz b2x1dGVseSByZXF1aXJlZCBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZGluZworUlVOIGFwayBhZGQg LS1uby1jYWNoZSBtYWtlCitSVU4gcGlwIGluc3RhbGwgLS1uby1jYWNoZS1kaXIgXAorICAgIHNw aGlueCBmbGFza19iYWJlbCBmbGFza19zZWN1cml0eSBmbGFza19wYXJhbm9pZCBweXRob24tZGF0 ZXV0aWwgZmxhc2tfc3FsYWxjaGVteSBcCisgICAgZmxhc2tfZ3JhdmF0YXIgc2ltcGxlanNvbgog Ci0jIENyZWF0ZSByZXF1aXJlZCBkaXJlY3RvcmllcyBmb3IgY29uZmlnCitDT1BZIC4vcGdhZG1p bjQvIC9wZ2FkbWluNAogCitSVU4gTENfQUxMPWVuX1VTLlVURi04IExBTkc9ZW5fVVMuVVRGLTgg bWFrZSAtQyAvcGdhZG1pbjQvZG9jcy9lbl9VUyAtZiBNYWtlZmlsZS5zcGhpbnggaHRtbAogCi0j IENyZWF0ZSByZXF1aXJlZCBkaXJlY3RvcmllcyBmb3IgcnVubmluZwotUlVOIG1rZGlyIC1wIC92 YXIvbG9nL3BnYWRtaW4KLVJVTiBjaG93biAtUiBhcGFjaGUgL3Zhci9sb2cvcGdhZG1pbgotUlVO IG1rZGlyIC1wIC92YXIvbGliL3BnYWRtaW4KLVJVTiBjaG93biAtUiBhcGFjaGUgL3Zhci9saWIv cGdhZG1pbgotUlVOIG1rZGlyIC1wIC9jZXJ0cwotUlVOIGNob3duIC1SIGFwYWNoZSAvY2VydHMK LVJVTiBjaG1vZCA3MDAgL2NlcnRzCisjIFRoZW4gaW5zdGFsbCBiYWNrZW5kLCBjb3B5IHN0YXRp YyBmaWxlcyBhbmQgc2V0IHVwIGVudHJ5cG9pbnQKKyMgTmVlZCBhbHBpbmUzLjcgdG8gZ2V0IHBn X2R1bXAgYW5kIGZyaWVuZHMgaW4gcG9zdGdyZXNxbC1jbGllbnQgcGFja2FnZQorRlJPTSBweXRo b246My42LWFscGluZTMuNwogCi0jIFB1c2ggbG9ncyB0byB0aGUgY29udGFpbmVyJ3Mgb3V0cHV0 IHN0cmVhbXMKLVJVTiBsbiAtc2YgL3Byb2Mvc2VsZi9mZC8xIC92YXIvbG9nL2h0dHBkL2FjY2Vz c19sb2cgJiYgXAotICAgIGxuIC1zZiAvcHJvYy9zZWxmL2ZkLzEgL3Zhci9sb2cvaHR0cGQvc3Ns X2FjY2Vzc19sb2cgJiYgXAotICAgIGxuIC1zZiAvcHJvYy9zZWxmL2ZkLzIgL3Zhci9sb2cvaHR0 cGQvZXJyb3JfbG9nICYmIFwKLSAgICBsbiAtc2YgL3Byb2Mvc2VsZi9mZC8yIC92YXIvbG9nL2h0 dHBkL3NzbF9lcnJvcl9sb2cKK1JVTiBwaXAgLS1uby1jYWNoZS1kaXIgaW5zdGFsbCBndW5pY29y bgorUlVOIGFwayBhZGQgLS1uby1jYWNoZSBwb3N0Z3Jlc3FsLWNsaWVudCBwb3N0Z3Jlc3FsLWxp YnMKIAotIyBBcGFjaGUgY29uZmlnIHRpbWUKLVJVTiBta2RpciAtcCAvdGVtcGxhdGVzCi1DT1BZ IHBnYWRtaW40LmNvbmYuajIgL3RlbXBsYXRlcy8KLUNPUFkgZW50cnkuc2ggLworIyBJbnN0YWxs IGJ1aWxkLWRlcGVuZGVuY2llcywgYnVpbGQgJiBpbnN0YWxsIEMgZXh0ZW5zaW9ucyBhbmQgcHVy Z2UgZGVwcyBpbiBvbmUgUlVOIHN0ZXAKKyMgc28gdGhhdCBkZXBzIGRvIG5vdCBpbmNyZWFzZSB0 aGUgc2l6ZSBvZiByZXN1bHRpbmcgaW1hZ2UgYnkgcmVtYWluaW5nIGluIGxheWVycworUlVOIHNl dCAtZXggJiYgXAorICAgIGFwayBhZGQgLS1uby1jYWNoZSAtLXZpcnR1YWwgYnVpbGQtZGVwcyBi dWlsZC1iYXNlIHBvc3RncmVzcWwtZGV2ICYmIFwKKyAgICBwaXAgaW5zdGFsbCAtLW5vLWNhY2hl LWRpciBwc3ljb3BnMiBweWNyeXB0byAmJiBcCisgICAgYXBrIGRlbCAtLW5vLWNhY2hlIGJ1aWxk LWRlcHMKIAotIyBGaW5hbGx5LCByZW1vdmUgcGFja2FnZXMgd2Ugb25seSBuZWVkZWQgZm9yIGJ1 aWxkaW5nCi1SVU4geXVtIC15IHJlbW92ZSBnY2MgY3BwIGdsaWJjLWRldmVsIGdsaWJjLWhlYWRl cnMga2VybmVsLWhlYWRlcnMgbGliZ29tcCBsaWJtcGMgbXBmcgorQ09QWSAtLWZyb209bm9kZS1i dWlsZGVyIC9wZ2FkbWluNC93ZWIvcGdhZG1pbi9zdGF0aWMvanMvZ2VuZXJhdGVkLyAvcGdhZG1p bjQvcGdhZG1pbi9zdGF0aWMvanMvZ2VuZXJhdGVkLworQ09QWSAtLWZyb209ZG9jcy1idWlsZGVy IC9wZ2FkbWluNC9kb2NzL2VuX1VTL19idWlsZC9odG1sLyAvcGdhZG1pbjQvZG9jcy8KIAotIyBE ZWZhdWx0IGNvbmZpZyBvcHRpb25zCi1FTlYgUEdBRE1JTl9ERUZBVUxUX0VNQUlMIGNvbnRhaW5l ckBwZ2FkbWluLm9yZwotRU5WIFBHQURNSU5fREVGQVVMVF9QQVNTV09SRCBDb250YTFuZXIKLUVO ViBQR0FETUlOX0VOQUJMRV9UTFMgRmFsc2UKLUVOViBQR0FETUlOX1NFUlZFUl9OQU1FIHBnYWRt aW40CitDT1BZIC4vcGdhZG1pbjQvd2ViIC9wZ2FkbWluNAorQ09QWSAuL3BnYWRtaW40L3JlcXVp cmVtZW50cy50eHQgL3BnYWRtaW40CitDT1BZIC4vcnVuX3BnYWRtaW4ucHkgL3BnYWRtaW40CitD T1BZIC4vY29uZmlnX2Rpc3Ryby5weSAvcGdhZG1pbjQKIAotRVhQT1NFIDgwIDQ0MworV09SS0RJ UiAvcGdhZG1pbjQKK0VOViBQWVRIT05QQVRIPS9wZ2FkbWluNAogCi0jIFN0YXJ0IHRoZSBzZXJ2 aWNlCi1FTlRSWVBPSU5UIFsiL2Jpbi9iYXNoIiwgIi9lbnRyeS5zaCJdCitSVU4gcGlwIGluc3Rh bGwgLS1uby1jYWNoZS1kaXIgLXIgcmVxdWlyZW1lbnRzLnR4dAorCisjIFByZWNvbXBpbGUgYW5k IG9wdGltaXplIHB5dGhvbiBjb2RlIHRvIHNhdmUgdGltZSBhbmQgc3BhY2Ugb24gc3RhcnR1cAor UlVOIHB5dGhvbiAtTyAtbSBjb21waWxlYWxsIC9wZ2FkbWluNAorCitDT1BZIC4vZW50cnlwb2lu dC5zaCAvZW50cnlwb2ludC5zaAorCitWT0xVTUUgL3Zhci9saWIvcGdhZG1pbgorRVhQT1NFIDgw ODAgODQ0MworCitFTlRSWVBPSU5UIFsiL2VudHJ5cG9pbnQuc2giXQpkaWZmIC0tZ2l0IGEvcGtn L2RvY2tlci9SRUFETUUgYi9wa2cvZG9ja2VyL1JFQURNRQppbmRleCBiMmQ5NTk1ZS4uOWZlZDUx YzkgMTAwNjQ0Ci0tLSBhL3BrZy9kb2NrZXIvUkVBRE1FCisrKyBiL3BrZy9kb2NrZXIvUkVBRE1F CkBAIC00LDE0ICs0LDE2IEBAIEJ1aWxkaW5nCiA9PT09PT09PQogCiBXaGlsc3QgeW91IGNhbiBq dXN0IHVzZSB0aGUgRG9ja2VyZmlsZSBkaXJlY3RseSwgaXQgcmVxdWlyZXMgdGhhdCB2YXJpb3Vz IHByZS1jb25maWd1cmF0aW9uIHN0ZXBzIGFyZSBwZXJmb3JtZWQsIGZvcgotZXhhbXBsZSwgdGhl IHBnQWRtaW4gd2ViIGNvZGUgbXVzdCBiZSBjb3BpZWQgdG8gLi93ZWIgYW5kIHlhcm4gaW5zdGFs bC95YXJuIHJ1biBidW5kbGUgbXVzdCBiZSBleGVjdXRlZC4KLXJlcXVpcmVtZW50cy50eHQgaXMg YWxzbyBleHBlY3RlZCB0byBiZSBpbiB0aGlzIGRpcmVjdG9yeSwgYW5kIHRoZSBwcmUtYnVpbHQg ZG9jcyBtdXN0IGJlIGluIHdlYi9kb2NzLgorZXhhbXBsZSwgdGhlIHBnQWRtaW4gd2ViIGNvZGUg bXVzdCBiZSBjb3BpZWQgdG8gYC4vd2ViYCwgU3BoaW54IGRvY3VtZW50YXRpb24gc291cmNlIG11 c3QgYmUgY29waWVkIHRvIGAuL2RvY3NgCithbmQgYHJlcXVpcmVtZW50cy50eHRgIGlzIGFsc28g ZXhwZWN0ZWQgdG8gYmUgaW4gdGhpcyBkaXJlY3RvcnkuCiAKIFRoZSByZWNvbW1lbmRlZCAoYW5k IGVhc3kpIHdheSB0byBidWlsZCB0aGUgY29udGFpbmVyIGlzIHRvIGRvOgogCitgYGBjb25zb2xl CiBjZCAkUEdBRE1JTl9TUkMvCiB3b3Jrb24gcGdhZG1pbi12ZW52CiBtYWtlIGRvY2tlcgorYGBg CiAKIFRoaXMgd2lsbCBjYWxsIHRoZSBidWlsZCBzY3JpcHQgJFBHQURNSU5fU1JDL3BrZy9kb2Nr ZXIvYnVpbGQuc2ggd2hpY2ggd2lsbCBwcmVwYXJlIGEgc3RhZ2luZyBkaXJlY3RvcnkgY29udGFp bmluZyBhbGwKIHRoZSByZXF1aXJlZCBmaWxlcywgdGhlbiBidWlsZCB0aGUgY29udGFpbmVyIGFu ZCBwdXNoIGl0IHRvIHlvdXIgcmVwby4KQEAgLTIxLDU3ICsyMyw1MSBAQCBSdW5uaW5nCiAKIFRo ZSBjb250YWluZXIgd2lsbCBhY2NlcHQgdGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXQgc3RhcnR1 cDoKIAotUEdBRE1JTl9ERUZBVUxUX0VNQUlMCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotRGVm YXVsdDogY29udGFpbmVyQHBnYWRtaW4ub3JnKQorUEdBRE1JTl9TRVRVUF9FTUFJTAorLS0tLS0t LS0tLS0tLS0tLS0tLQogCiBUaGlzIGlzIHRoZSBlbWFpbCBhZGRyZXNzIHVzZWQgd2hlbiBzZXR0 aW5nIHVwIHRoZSBpbml0aWFsIGFkbWluaXN0cmF0b3IgYWNjb3VudCB0byBsb2dpbiB0byBwZ0Fk bWluLgogCi1QR0FETUlOX0RFRkFVTFRfUEFTU1dPUkQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotCi1EZWZhdWx0OiBDb250YTFuZXIKK1BHQURNSU5fU0VUVVBfUEFTU1dPUkQKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIAogVGhpcyBpcyB0aGUgcGFzc3dvcmQgdXNlZCB3aGVuIHNldHRpbmcg dXAgdGhlIGluaXRpYWwgYWRtaW5pc3RyYXRvciBhY2NvdW50IHRvIGxvZ2luIHRvIHBnQWRtaW4u CiAKIFBHQURNSU5fRU5BQkxFX1RMUwogLS0tLS0tLS0tLS0tLS0tLS0tCiAKLURlZmF1bHQ6IEZh bHNlCitEZWZhdWx0OiB1bnNldAogCi1JZiBzZXQgdG8gdGhlIGRlZmF1bHQsIEZhbHNlLCB0aGUg Y29udGFpbmVyIHdpbGwgbGlzdGVuIG9uIHBvcnQgODAgZm9yIGNvbm5lY3Rpb25zIGluIHBsYWlu IHRleHQuIElmIHNldCB0byBUcnVlLCB0aGUKLWNvbnRhaW5lciB3aWxsIGxpc3RlbiBvbiBwb3J0 IDQ0MyBmb3IgVExTIGNvbm5lY3Rpb25zLgorSWYgbm90IHNldCwgdGhlIGNvbnRhaW5lciB3aWxs IGxpc3RlbiBvbiBwb3J0IDgwODAgZm9yIGNvbm5lY3Rpb25zIGluIGluc2VjdXJlIEhUVFAgcHJv dG9jb2wuCitJZiBzZXQgdG8gYW55IHZhbHVlLCB0aGUgY29udGFpbmVyIHdpbGwgbGlzdGVuIG9u IHBvcnQgODQ0MyBmb3IgVExTIGNvbm5lY3Rpb25zLgogCi1XaGVuIFRMUyBpcyBlbmFibGVkLCBh IGNlcnRpZmljYXRlIGFuZCBrZXkgbXVzdCBiZSBwcm92aWRlZC4gVHlwaWNhbGx5IHRoZXNlIHNo b3VsZCBiZSBzdG9yZWQgb24gdGhlIGhvc3QgZmlsZSBzeXN0ZW0KLWFuZCBtb3VudGVkIGZyb20g dGhlIGNvbnRhaW5lci4gVGhlIGV4cGVjdGVkIHBhdGhzIGFyZSAvY2VydHMvc2VydmVyLmNydCBh bmQgL2NlcnRzL3NlcnZlci5rZXkKK1doZW4gVExTIGlzIGVuYWJsZWQsIGEgY2VydGlmaWNhdGUg YW5kIGtleSBtdXN0IGJlIHByb3ZpZGVkLgorVHlwaWNhbGx5IHRoZXNlIHNob3VsZCBiZSBzdG9y ZWQgb24gdGhlIGhvc3QgZmlsZSBzeXN0ZW0gYW5kIG1vdW50ZWQgZnJvbSB0aGUgY29udGFpbmVy LgorVGhlIGV4cGVjdGVkIHBhdGhzIGFyZSBgL2NlcnRzL3NlcnZlci5jcnRgIGFuZCBgL2NlcnRz L3NlcnZlci5rZXlgLgogCi1QR0FETUlOX1NFUlZFUl9OQU1FCi0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0KLURlZmF1bHQ6IHBnYWRtaW40Ci0KLVRoaXMgdmFyaWFibGUgYWxsb3dzIHlvdSB0byBzcGVj aWZ5IHRoZSB2YWx1ZSB1c2VkIGZvciB0aGUgQXBhY2hlIEhUVFBEIFNlcnZlck5hbWUgZGlyZWN0 aXZlLiBUaGlzIGlzIGNvbW1vbmx5IHVzZWQgdG8KLWVuc3VyZSB0aGUgQ04gb2YgdGhlIFRMUyBj ZXJ0aWZpY2F0ZSBtYXRjaGVzIHdoYXQgdGhlIHNlcnZlciBleHBlY3RzLgorWW91IG5lZWQgdG8g ZXhwbGljaXRseSBtYXAgdGhlc2UgcG9ydHMgd2l0aCBgLXBgIG9wdGlvbiB0byBzb21lIHBvcnQg YXQgeW91ciBtYWNoaW5lLgogCiBFeGFtcGxlcwogPT09PT09PT0KIAogUnVuIGEgc2ltcGxlIGNv bnRhaW5lciBvdmVyIHBvcnQgODA6CiAKLWRvY2tlciBydW4gLXAgODA6ODAgXAotICAgICAgICAg ICAtZSAiUEdBRE1JTl9ERUZBVUxUX0VNQUlMPXVzZXJAZG9tYWluLmNvbSIgXAotICAgICAgICAg ICAtZSAiUEdBRE1JTl9ERUZBVUxUX1BBU1NXT1JEPVN1cGVyU2VjcmV0IiBcCitgYGBjb25zb2xl Citkb2NrZXIgcnVuIC1wIDgwOjgwODAgXAorICAgICAgICAgICAtZSAiUEdBRE1JTl9TRVRVUF9F TUFJTD11c2VyQGRvbWFpbi5jb20iIFwKKyAgICAgICAgICAgLWUgIlBHQURNSU5fU0VUVVBfUEFT U1dPUkQ9U3VwZXJTZWNyZXQiIFwKICAgICAgICAgICAgLWQgcGdhZG1pbjQKK2BgYAogCiBSdW4g YSBUTFMgc2VjdXJlZCBjb250YWluZXIgdXNpbmcgYSBzaGFyZWQgY29uZmlnL3N0b3JhZ2UgZGly ZWN0b3J5IGluIC9wcml2YXRlL3Zhci9saWIvcGdhZG1pbiBvbiB0aGUgaG9zdDoKIAotZG9ja2Vy IHJ1biAtcCA0NDM6NDQzIFwKK2BgYGNvbnNvbGUKK2RvY2tlciBydW4gLXAgNDQzOjg0NDMgXAog ICAgICAgICAgICAtdiAiL3ByaXZhdGUvdmFyL2xpYi9wZ2FkbWluOi92YXIvbGliL3BnYWRtaW4i IFwKICAgICAgICAgICAgLXYgIi9wYXRoL3RvL2NlcnRpZmljYXRlLmNlcnQ6L2NlcnRzL3NlcnZl ci5jZXJ0IiBcCiAgICAgICAgICAgIC12ICIvcGF0aC90by9jZXJ0aWZpY2F0ZS5rZXk6L2NlcnRz L3NlcnZlci5rZXkiIFwKLSAgICAgICAgICAgLWUgIlBHQURNSU5fREVGQVVMVF9FTUFJTD11c2Vy QGRvbWFpbi5jb20iIFwKLSAgICAgICAgICAgLWUgIlBHQURNSU5fREVGQVVMVF9QQVNTV09SRD1T dXBlclNlY3JldCIgXAotICAgICAgICAgICAtZSAiUEdBRE1JTl9FTkFCTEVfVExTPVRydWUiIFwK LSAgICAgICAgICAgLWUgIlBHQURNSU5fU0VSVkVSX05BTUU9cGdhZG1pbi5kb21haW4uY29tIiBc Ci0gICAgICAgICAgIC1kIHBnYWRtaW40ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorICAg ICAgICAgICAtZSAiUEdBRE1JTl9TRVRVUF9FTUFJTD11c2VyQGRvbWFpbi5jb20iIFwKKyAgICAg ICAgICAgLWUgIlBHQURNSU5fU0VUVVBfUEFTU1dPUkQ9U3VwZXJTZWNyZXQiIFwKKyAgICAgICAg ICAgLWUgIlBHQURNSU5fRU5BQkxFX1RMUz0xIiBcCisgICAgICAgICAgIC1kIHBnYWRtaW40Citg YGAKZGlmZiAtLWdpdCBhL3BrZy9kb2NrZXIvYnVpbGQuc2ggYi9wa2cvZG9ja2VyL2J1aWxkLnNo CmluZGV4IDM3M2M5OWI3Li4xZGRhM2NhMiAxMDA3NTUKLS0tIGEvcGtnL2RvY2tlci9idWlsZC5z aAorKysgYi9wa2cvZG9ja2VyL2J1aWxkLnNoCkBAIC00MSw2MCArNDEsMjEgQEAgaWYgWyAtZCBk b2NrZXItYnVpbGQgXTsgdGhlbgogICAgIHJtIC1yZiBkb2NrZXItYnVpbGQKIGZpCiAKLW1rZGly IGRvY2tlci1idWlsZAotCi0jIENyZWF0ZSB0aGUgb3V0cHV0IGRpcmVjdG9yeSBpZiBub3QgcHJl c2VudAotaWYgWyAhIC1kIGRpc3QgXTsgdGhlbgotICAgIG1rZGlyIGRpc3QKLWZpCitta2RpciAt cCBkb2NrZXItYnVpbGQvcGdhZG1pbjQKIAogIyBCdWlsZCB0aGUgY2xlYW4gdHJlZQotZm9yIEZJ TEUgaW4gYGdpdCBscy1maWxlcyB3ZWJgCi1kbwotICAgIGVjaG8gQWRkaW5nICRGSUxFCi0gICAg IyBXZSB1c2UgdGFyIGhlcmUgdG8gcHJlc2VydmUgdGhlIHBhdGgsIGFzIE1hYyAoZm9yIGV4YW1w bGUpIGRvZXNuJ3Qgc3VwcG9ydCBjcCAtLXBhcmVudHMKLSAgICB0YXIgY2YgLSAkRklMRSB8IChj ZCBkb2NrZXItYnVpbGQ7IHRhciB4ZiAtKQotZG9uZQotCi1wdXNoZCB3ZWIKLSAgICB5YXJuIGlu c3RhbGwKLSAgICB5YXJuIHJ1biBidW5kbGUKLQotICAgIHJtIC1yZiBwZ2FkbWluL3N0YXRpYy9q cy9nZW5lcmF0ZWQvLmNhY2hlCi0KLSAgICBmb3IgRklMRSBpbiBgbHMgLWQgcGdhZG1pbi9zdGF0 aWMvanMvZ2VuZXJhdGVkLypgCi0gICAgZG8KLSAgICAgICAgZWNobyBBZGRpbmcgJEZJTEUKLSAg ICAgICAgdGFyIGNmIC0gJEZJTEUgfCAoY2QgLi4vZG9ja2VyLWJ1aWxkL3dlYjsgdGFyIHhmIC0p Ci0gICAgZG9uZQotcG9wZAotCi0jIEJ1aWxkIHRoZSBkb2NzCi1pZiBbIC1kIGRvY3MvZW5fVVMv X2J1aWxkL2h0bWwgXTsgdGhlbgotICAgIHJtIC1yZiBkb2NzL2VuX1VTL19idWlsZC9odG1sCi1m aQotCi1MQ19BTEw9ZW5fVVMuVVRGLTggTEFORz1lbl9VUy5VVEYtOCBtYWtlIC1DIGRvY3MvZW5f VVMgLWYgTWFrZWZpbGUuc3BoaW54IGh0bWwKLQotbWtkaXIgZG9ja2VyLWJ1aWxkL3dlYi9kb2Nz Ci1jcCAtUiBkb2NzL2VuX1VTL19idWlsZC9odG1sLyogZG9ja2VyLWJ1aWxkL3dlYi9kb2NzLwot Ci0jIENvbmZpZ3VyZSBwZ0FkbWluCi1lY2hvICJIRUxQX1BBVEggPSAnLi4vLi4vZG9jcy8nIiA+ PiBkb2NrZXItYnVpbGQvd2ViL2NvbmZpZ19kaXN0cm8ucHkKLWVjaG8gIkRFRkFVTFRfQklOQVJZ X1BBVEhTID0geyIgPj4gZG9ja2VyLWJ1aWxkL3dlYi9jb25maWdfZGlzdHJvLnB5Ci1lY2hvICIg ICAgJ3BnJzogICAnJywiID4+IGRvY2tlci1idWlsZC93ZWIvY29uZmlnX2Rpc3Ryby5weQotZWNo byAiICAgICdwcGFzJzogJycsIiA+PiBkb2NrZXItYnVpbGQvd2ViL2NvbmZpZ19kaXN0cm8ucHkK LWVjaG8gIiAgICAnZ3BkYic6ICcnIiA+PiBkb2NrZXItYnVpbGQvd2ViL2NvbmZpZ19kaXN0cm8u cHkKLWVjaG8gIn0iID4+IGRvY2tlci1idWlsZC93ZWIvY29uZmlnX2Rpc3Ryby5weQorZWNobyBD b3B5aW5nIHNvdXJjZSB0cmVlLi4uCitnaXQgYXJjaGl2ZSBIRUFEIC0tIGRvY3Mgd2ViIHJlcXVp cmVtZW50cy50eHQgfCB0YXIgeHZmIC0gLUMgZG9ja2VyLWJ1aWxkL3BnYWRtaW40CiAKICMgQ29w eSB0aGUgRG9ja2VyIHNwZWNpZmljIGFzc2V0cyBpbnRvIHBsYWNlCi1jcCBwa2cvZG9ja2VyL0Rv Y2tlcmZpbGUgZG9ja2VyLWJ1aWxkLwotY3AgcGtnL2RvY2tlci9lbnRyeS5zaCBkb2NrZXItYnVp bGQvCi1jcCBwa2cvZG9ja2VyL3BnYWRtaW40LmNvbmYuajIgZG9ja2VyLWJ1aWxkLwotY3AgcmVx dWlyZW1lbnRzLnR4dCBkb2NrZXItYnVpbGQvCitjcCBwa2cvZG9ja2VyL0RvY2tlcmZpbGUgXAor ICAgIHBrZy9kb2NrZXIvZW50cnlwb2ludC5zaCBcCisgICAgcGtnL2RvY2tlci9jb25maWdfZGlz dHJvLnB5IFwKKyAgICBwa2cvZG9ja2VyL3J1bl9wZ2FkbWluLnB5IFwKKyAgICBkb2NrZXItYnVp bGQvCiAKICMgQnVpbGQgdGhlIGNvbnRhaW5lcgogZG9ja2VyIGJ1aWxkIGRvY2tlci1idWlsZCAt dCAkQ09OVEFJTkVSX05BTUUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAtdCAkQ09OVEFJ TkVSX05BTUU6bGF0ZXN0IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgLXQgJENPTlRBSU5F Ul9OQU1FOiRBUFBfUkVMRUFTRSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC10ICRDT05U QUlORVJfTkFNRTokQVBQX0xPTkdfVkVSU0lPTgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK KyAgICAgICAgICAgICAgICAgICAgICAgICAgLXQgJENPTlRBSU5FUl9OQU1FOiRBUFBfTE9OR19W RVJTSU9OCmRpZmYgLS1naXQgYS9wa2cvZG9ja2VyL2NvbmZpZ19kaXN0cm8ucHkgYi9wa2cvZG9j a2VyL2NvbmZpZ19kaXN0cm8ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAu LjcxYWQzYzc0Ci0tLSAvZGV2L251bGwKKysrIGIvcGtnL2RvY2tlci9jb25maWdfZGlzdHJvLnB5 CkBAIC0wLDAgKzEsNCBAQAorSEVMUF9QQVRIID0gJy4uLy4uL2RvY3MnCitERUZBVUxUX0JJTkFS WV9QQVRIUyA9IHsKKyAgICAgICAgJ3BnJzogJy91c3IvYmluJworfQpkaWZmIC0tZ2l0IGEvcGtn L2RvY2tlci9lbnRyeS5zaCBiL3BrZy9kb2NrZXIvZW50cnkuc2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IGI2YmE0MmU5Li4wMDAwMDAwMAotLS0gYS9wa2cvZG9ja2VyL2VudHJ5LnNo CisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgYmFzaAotCi0j IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKLSMKLSMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scwotIwotIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCi0j IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQot IwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwotCi1leHBvcnQgUEdBRE1JTl9TRVRVUF9FTUFJTD0ke1BHQURN SU5fREVGQVVMVF9FTUFJTH0KLWV4cG9ydCBQR0FETUlOX1NFVFVQX1BBU1NXT1JEPSR7UEdBRE1J Tl9ERUZBVUxUX1BBU1NXT1JEfQotCi1pZiBbICR7UEdBRE1JTl9FTkFCTEVfVExTfSAhPSAiVHJ1 ZSIgXTsgdGhlbgotICAgIGlmIFsgLWYgL2V0Yy9odHRwZC9jb25mLmQvc3NsLmNvbmYgXTsgdGhl bgotICAgICAgICBtdiAvZXRjL2h0dHBkL2NvbmYuZC9zc2wuY29uZiAvZXRjL2h0dHBkL2NvbmYu ZC9zc2wuY29uZi5kaXNhYmxlZAotICAgIGZpCi1lbHNlCi0gICAgaWYgWyAtZiAvZXRjL2h0dHBk L2NvbmYuZC9zc2wuY29uZi5kaXNhYmxlZCBdOyB0aGVuCi0gICAgICAgIG12IC9ldGMvaHR0cGQv Y29uZi5kL3NzbC5jb25mLmRpc2FibGVkIC9ldGMvaHR0cGQvY29uZi5kL3NzbC5jb25mCi0gICAg ZmkKLWZpCi0KLWoyIC90ZW1wbGF0ZXMvcGdhZG1pbjQuY29uZi5qMiA+IC9ldGMvaHR0cGQvY29u Zi5kL3BnYWRtaW40LmNvbmYKLQotcm0gLWYgL3J1bi9odHRwZC9odHRwZC5waWQKLQotL3Vzci9z YmluL2h0dHBkIC1EIEZPUkVHUk9VTkQKZGlmZiAtLWdpdCBhL3BrZy9kb2NrZXIvZW50cnlwb2lu dC5zaCBiL3BrZy9kb2NrZXIvZW50cnlwb2ludC5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRl eCAwMDAwMDAwMC4uMDlmYTNhYjAKLS0tIC9kZXYvbnVsbAorKysgYi9wa2cvZG9ja2VyL2VudHJ5 cG9pbnQuc2gKQEAgLTAsMCArMSwyMSBAQAorIyEvYmluL3NoCisKK2lmIFsgISAtZiAvdmFyL2xp Yi9wZ2FkbWluL3BnYWRtaW40LmRiIF07IHRoZW4KKyAgICBpZiBbIC16ICIke1BHQURNSU5fU0VU VVBfRU1BSUx9IiAtbyAteiAiJHtQR0FETUlOX1NFVFVQX1BBU1NXT1JEfSIgXTsgdGhlbgorICAg ICAgICBlY2hvICdZb3UgbmVlZCB0byBzcGVjaWZ5IFBHQURNSU5fU0VUVVBfRU1BSUwgYW5kIFBH QURNSU5fU0VUVVBfUEFTU1dPUkQgZW52aXJvbm1lbnQgdmFyaWFibGVzJworICAgICAgICBleGl0 IDEKKyAgICBmaQorCisgICAgIyBJbml0aWFsaXplIERCIGJlZm9yZSBzdGFydGluZyBHdW5pY29y bgorICAgICMgSW1wb3J0aW5nIHBnYWRtaW40IChmcm9tIHRoaXMgc2NyaXB0KSBpcyBlbm91Z2gK KyAgICBweXRob24gcnVuX3BnYWRtaW4ucHkKK2ZpCisKKyMgTk9URTogY3VycmVudGx5IHBnYWRt aW4gY2FuIHJ1biBvbmx5IHdpdGggMSB3b3JrZXIgZHVlIHRvIHNlc3Npb25zIGltcGxlbWVudGF0 aW9uCisjIFVzaW5nIC0tdGhyZWFkcyB0byBoYXZlIG11bHRpLXRocmVhZGVkIHNpbmdsZS1wcm9j ZXNzIHdvcmtlcgorCitpZiBbICEgLXogJHtQR0FETUlOX0VOQUJMRV9UTFN9IF07IHRoZW4KKyAg ICBleGVjIGd1bmljb3JuIC0tYmluZCAwLjAuMC4wOjg0NDMgLXcgMSAtLXRocmVhZHMgJHtHVU5J Q09STl9USFJFQURTOi0yNX0gLS1hY2Nlc3MtbG9nZmlsZSAtIC0ta2V5ZmlsZSAvY2VydHMvc2Vy dmVyLmtleSAtLWNlcnRmaWxlIC9jZXJ0cy9zZXJ2ZXIuY2VydCBydW5fcGdhZG1pbjphcHAKK2Vs c2UKKyAgICBleGVjIGd1bmljb3JuIC0tYmluZCAwLjAuMC4wOjgwODAgLXcgMSAtLXRocmVhZHMg JHtHVU5JQ09STl9USFJFQURTOi0yNX0gLS1hY2Nlc3MtbG9nZmlsZSAtIHJ1bl9wZ2FkbWluOmFw cAorZmkKZGlmZiAtLWdpdCBhL3BrZy9kb2NrZXIvcGdhZG1pbjQuY29uZi5qMiBiL3BrZy9kb2Nr ZXIvcGdhZG1pbjQuY29uZi5qMgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDQ0ZGUy ZDUuLjAwMDAwMDAwCi0tLSBhL3BrZy9kb2NrZXIvcGdhZG1pbjQuY29uZi5qMgorKysgL2Rldi9u dWxsCkBAIC0xLDQzICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIwotIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCi0jCi0jIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0Fk bWluIERldmVsb3BtZW50IFRlYW0KLSMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0jCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLVNlcnZlck5hbWUg e3sgUEdBRE1JTl9TRVJWRVJfTkFNRSB9fQoteyUgaWYgUEdBRE1JTl9FTkFCTEVfVExTfGRlZmF1 bHQoJ0ZhbHNlJykgPT0gJ1RydWUnICV9Ci1Mb2FkTW9kdWxlIHNzbF9tb2R1bGUgbW9kdWxlcy9t b2Rfc3NsLnNvCi0KLTxWaXJ0dWFsSG9zdCAqOjQ0Mz4KLSAgICBTU0xFbmdpbmUgb24KLSAgICBT U0xDaXBoZXJTdWl0ZSBISUdIOiFhTlVMTDohTUQ1Ci0gICAgU1NMQ2VydGlmaWNhdGVGaWxlICIv Y2VydHMvc2VydmVyLmNlcnQiCi0gICAgU1NMQ2VydGlmaWNhdGVLZXlGaWxlICIvY2VydHMvc2Vy dmVyLmtleSIKLQotICAgIFNlcnZlck5hbWUge3sgUEdBRE1JTl9TRVJWRVJfTkFNRSB9fQotICAg IFdTR0lEYWVtb25Qcm9jZXNzIHBnYWRtaW4gcHJvY2Vzc2VzPTEgdGhyZWFkcz0yNQotICAgIFdT R0lTY3JpcHRBbGlhcyAvIC92YXIvd3d3L3BnYWRtaW4vcGdBZG1pbjQud3NnaQotCi0gICAgPERp cmVjdG9yeSAvdmFyL3d3dy9wZ2FkbWluPgotICAgICAgICBXU0dJUHJvY2Vzc0dyb3VwIHBnYWRt aW4KLSAgICAgICAgV1NHSUFwcGxpY2F0aW9uR3JvdXAgJXtHTE9CQUx9Ci0gICAgICAgIE9yZGVy IGRlbnksYWxsb3cKLSAgICAgICAgQWxsb3cgZnJvbSBhbGwKLSAgICA8L0RpcmVjdG9yeT4KLTwv VmlydHVhbEhvc3Q+Ci17JSBlbHNlICV9Ci08VmlydHVhbEhvc3QgKjo4MD4KLSAgICBXU0dJRGFl bW9uUHJvY2VzcyBwZ2FkbWluIHByb2Nlc3Nlcz0xIHRocmVhZHM9MjUKLSAgICBXU0dJU2NyaXB0 QWxpYXMgLyAvdmFyL3d3dy9wZ2FkbWluL3BnQWRtaW40LndzZ2kKLQotICAgIDxEaXJlY3Rvcnkg L3Zhci93d3cvcGdhZG1pbj4KLSAgICAgICAgV1NHSVByb2Nlc3NHcm91cCBwZ2FkbWluCi0gICAg ICAgIFdTR0lBcHBsaWNhdGlvbkdyb3VwICV7R0xPQkFMfQotICAgICAgICBPcmRlciBkZW55LGFs bG93Ci0gICAgICAgIEFsbG93IGZyb20gYWxsCi0gICAgPC9EaXJlY3Rvcnk+Ci08L1ZpcnR1YWxI b3N0PgoteyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9wa2cvZG9ja2VyL3J1bl9wZ2FkbWluLnB5IGIvcGtnL2RvY2tlci9ydW5fcGdhZG1pbi5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uNDhiMTc3MzUKLS0tIC9kZXYvbnVs bAorKysgYi9wa2cvZG9ja2VyL3J1bl9wZ2FkbWluLnB5CkBAIC0wLDAgKzEsNCBAQAoraW1wb3J0 IGJ1aWx0aW5zCitidWlsdGlucy5TRVJWRVJfTU9ERSA9IFRydWUKKworZnJvbSBwZ0FkbWluNCBp bXBvcnQgYXBwCi0tIAoyLjE2LjIKCg== --001a1146ff84bbb6dd0568b8fbe1--