From dcook@prosentient.com.au Wed May 5 06:07:21 2021 From: dcook@prosentient.com.au To: koha-devel@lists.koha-community.org Subject: [Koha-devel] Embedding JSON data in HTML Date: Wed, 05 May 2021 14:07:11 +1000 Message-ID: <05a501d74164$1f87af80$5e970e80$@prosentient.com.au> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6843457748756175807==" --===============6843457748756175807== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hi all, I was just reflecting on bugs like https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=26942 and reviewing https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script when I saw the following method for embedding JSON in HTML: I thought that was neat. David Cook Software Engineer Prosentient Systems Suite 7.03 6a Glen St Milsons Point NSW 2061 Australia Office: 02 9212 0899 Online: 02 8005 0595 --===============6843457748756175807== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv VFIvUkVDLWh0bWw0MCI+PGhlYWQ+PE1FVEEgSFRUUC1FUVVJVj0iQ29udGVudC1UeXBlIiBDT05U RU5UPSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXMtYXNjaWkiPjxtZXRhIG5hbWU9R2VuZXJhdG9yIGNv bnRlbnQ9Ik1pY3Jvc29mdCBXb3JkIDE1IChmaWx0ZXJlZCBtZWRpdW0pIj48c3R5bGU+PCEtLQov KiBGb250IERlZmluaXRpb25zICovCkBmb250LWZhY2UKCXtmb250LWZhbWlseToiQ2FtYnJpYSBN YXRoIjsKCXBhbm9zZS0xOjIgNCA1IDMgNSA0IDYgMyAyIDQ7fQpAZm9udC1mYWNlCgl7Zm9udC1m YW1pbHk6RGVuZ1hpYW47CglwYW5vc2UtMToyIDEgNiAwIDMgMSAxIDEgMSAxO30KQGZvbnQtZmFj ZQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7CglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIgNDt9 CkBmb250LWZhY2UKCXtmb250LWZhbWlseToiXEBEZW5nWGlhbiI7CglwYW5vc2UtMToyIDEgNiAw IDMgMSAxIDEgMSAxO30KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8KcC5Nc29Ob3JtYWwsIGxpLk1z b05vcm1hbCwgZGl2Lk1zb05vcm1hbAoJe21hcmdpbjowY207Cglmb250LXNpemU6MTEuMHB0OwoJ Zm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQphOmxpbmssIHNwYW4uTXNvSHlwZXJs aW5rCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5OwoJY29sb3I6IzA1NjNDMTsKCXRleHQtZGVjb3Jh dGlvbjp1bmRlcmxpbmU7fQpzcGFuLkVtYWlsU3R5bGUxNwoJe21zby1zdHlsZS10eXBlOnBlcnNv bmFsLWNvbXBvc2U7Cglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsKCWNvbG9yOndp bmRvd3RleHQ7fQouTXNvQ2hwRGVmYXVsdAoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5O30K QHBhZ2UgV29yZFNlY3Rpb24xCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7CgltYXJnaW46NzIuMHB0 IDcyLjBwdCA3Mi4wcHQgNzIuMHB0O30KZGl2LldvcmRTZWN0aW9uMQoJe3BhZ2U6V29yZFNlY3Rp b24xO30KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4KPG86c2hhcGVkZWZhdWx0 cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtp ZiBndGUgbXNvIDldPjx4bWw+CjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4KPG86aWRtYXAg djpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+CjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0t LT48L2hlYWQ+PGJvZHkgbGFuZz1FTi1BVSBsaW5rPSIjMDU2M0MxIiB2bGluaz0iIzk1NEY3MiIg c3R5bGU9J3dvcmQtd3JhcDpicmVhay13b3JkJz48ZGl2IGNsYXNzPVdvcmRTZWN0aW9uMT48cCBj bGFzcz1Nc29Ob3JtYWw+SGkgYWxsLDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48 bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+SSB3YXMganVzdCByZWZsZWN0 aW5nIG9uIGJ1Z3MgbGlrZSA8YSBocmVmPSJodHRwczovL2J1Z3Mua29oYS1jb21tdW5pdHkub3Jn L2J1Z3ppbGxhMy9zaG93X2J1Zy5jZ2k/aWQ9MjY5NDIiPmh0dHBzOi8vYnVncy5rb2hhLWNvbW11 bml0eS5vcmcvYnVnemlsbGEzL3Nob3dfYnVnLmNnaT9pZD0yNjk0MjwvYT4gYW5kIHJldmlld2lu ZyA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9I VE1ML0VsZW1lbnQvc2NyaXB0Ij5odHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9k b2NzL1dlYi9IVE1ML0VsZW1lbnQvc2NyaXB0PC9hPiB3aGVuIEkgc2F3IHRoZSBmb2xsb3dpbmcg bWV0aG9kIGZvciBlbWJlZGRpbmcgSlNPTiBpbiBIVE1MOjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNz PU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+Jmx0OyEt LSBHZW5lcmF0ZWQgYnkgdGhlIHNlcnZlciAtLSZndDs8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1N c29Ob3JtYWw+Jmx0O3NjcmlwdCBpZD0mcXVvdDtkYXRhJnF1b3Q7IHR5cGU9JnF1b3Q7YXBwbGlj YXRpb24vanNvbiZxdW90OyZndDt7JnF1b3Q7dXNlcklkJnF1b3Q7OjEyMzQsJnF1b3Q7dXNlck5h bWUmcXVvdDs6JnF1b3Q7Sm9obiBEb2UmcXVvdDssJnF1b3Q7bWVtYmVyU2luY2UmcXVvdDs6JnF1 b3Q7MjAwMC0wMS0wMVQwMDowMDowMC4wMDBaJnF1b3Q7fSZsdDsvc2NyaXB0Jmd0OzxvOnA+PC9v OnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1N c29Ob3JtYWw+Jmx0OyEtLSBTdGF0aWMgLS0mZ3Q7PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNv Tm9ybWFsPiZsdDtzY3JpcHQmZ3Q7PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPiZu YnNwOyBjb25zdCB1c2VySW5mbyA9IEpTT04ucGFyc2UoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo JnF1b3Q7ZGF0YSZxdW90OykudGV4dCk7PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFs PiZuYnNwOyBjb25zb2xlLmxvZygmcXVvdDtVc2VyIGluZm9ybWF0aW9uOiAlbyZxdW90OywgdXNl ckluZm8pOzxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD4mbHQ7L3NjcmlwdCZndDs8 bzpwPjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PHAg Y2xhc3M9TXNvTm9ybWFsPkkgdGhvdWdodCB0aGF0IHdhcyBuZWF0LjxvOnA+PC9vOnA+PC9wPjxw IGNsYXNzPU1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+ RGF2aWQgQ29vazxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5Tb2Z0d2FyZSBFbmdp bmVlcjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD5Qcm9zZW50aWVudCBTeXN0ZW1z PG86cD48L286cD48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPlN1aXRlIDcuMDM8bzpwPjwvbzpwPjwv cD48cCBjbGFzcz1Nc29Ob3JtYWw+NmEgR2xlbiBTdDxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1z b05vcm1hbD5NaWxzb25zIFBvaW50IE5TVyAyMDYxPG86cD48L286cD48L3A+PHAgY2xhc3M9TXNv Tm9ybWFsPkF1c3RyYWxpYTxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48bzpwPiZu YnNwOzwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+T2ZmaWNlOiAwMiA5MjEyIDA4OTk8bzpw PjwvbzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+T25saW5lOiAwMiA4MDA1IDA1OTU8bzpwPjwv bzpwPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PG86cD4mbmJzcDs8L286cD48L3A+PC9kaXY+PC9i b2R5PjwvaHRtbD4= --===============6843457748756175807==-- From tomascohen@gmail.com Thu May 6 16:28:35 2021 From: Tomas Cohen Arazi To: koha-devel@lists.koha-community.org Subject: Re: [Koha-devel] Embedding JSON data in HTML Date: Thu, 06 May 2021 11:28:07 -0300 Message-ID: In-Reply-To: <05a501d74164$1f87af80$5e970e80$@prosentient.com.au> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6305717351485308569==" --===============6305717351485308569== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Nice finding, David. I've come across that in the context of Koha and Template::Toolkit, and did something similar, using a data- attribute. I used [% USE JSON.Escape %] to escape the data that comes from Perl. Here, I set the data structure to a data-pickup-locations attribute: https://gitlab.com/thekesolutions/Koha/-/commit/8b63154b866863aae6ac981b37c98= 864cd8875f4#f9b348ee995ab14b7c8a47e5ef2b7fe07838ec38_811_822 And then I use it: https://gitlab.com/thekesolutions/Koha/-/commit/8b63154b866863aae6ac981b37c98= 864cd8875f4#f9b348ee995ab14b7c8a47e5ef2b7fe07838ec38_1245_1274 Best regards El mi=C3=A9, 5 may 2021 a las 1:07, escribi=C3=B3: > Hi all, > > > > I was just reflecting on bugs like > https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=3D26942 and > reviewing https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script > when I saw the following method for embedding JSON in HTML: > > > > > > > > > > > > > > > > I thought that was neat. > > > > David Cook > > Software Engineer > > Prosentient Systems > > Suite 7.03 > > 6a Glen St > > Milsons Point NSW 2061 > > Australia > > > > Office: 02 9212 0899 > > Online: 02 8005 0595 > > > _______________________________________________ > Koha-devel mailing list > Koha-devel@lists.koha-community.org > https://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-devel > website : https://www.koha-community.org/ > git : https://git.koha-community.org/ > bugs : https://bugs.koha-community.org/ > --=20 Tom=C3=A1s Cohen Arazi Theke Solutions (http://theke.io) =E2=9C=86 +54 9351 3513384 GPG: B2F3C15F --===============6305717351485308569== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PGRpdiBkaXI9Imx0ciI+TmljZSBmaW5kaW5nLCBEYXZpZC4gSSYjMzk7dmUgY29tZSBhY3Jvc3Mg dGhhdCBpbiB0aGUgY29udGV4dCBvZiBLb2hhIGFuZCBUZW1wbGF0ZTo6VG9vbGtpdCwgYW5kIGRp ZCBzb21ldGhpbmcgc2ltaWxhciwgdXNpbmcgYSBkYXRhLSBhdHRyaWJ1dGUuIEkgdXNlZCBbJSBV U0UgSlNPTi5Fc2NhcGUgJV0gdG8gZXNjYXBlIHRoZSBkYXRhIHRoYXQgY29tZXMgZnJvbSBQZXJs LjxkaXY+PGJyPjwvZGl2PjxkaXY+SGVyZSwgSSBzZXQgdGhlIGRhdGEgc3RydWN0dXJlIHRvIGEg ZGF0YS1waWNrdXAtbG9jYXRpb25zIGF0dHJpYnV0ZTo8L2Rpdj48ZGl2PjxhIGhyZWY9Imh0dHBz Oi8vZ2l0bGFiLmNvbS90aGVrZXNvbHV0aW9ucy9Lb2hhLy0vY29tbWl0LzhiNjMxNTRiODY2ODYz YWFlNmFjOTgxYjM3Yzk4ODY0Y2Q4ODc1ZjQjZjliMzQ4ZWU5OTVhYjE0YjdjOGE0N2U1ZWYyYjdm ZTA3ODM4ZWMzOF84MTFfODIyIj5odHRwczovL2dpdGxhYi5jb20vdGhla2Vzb2x1dGlvbnMvS29o YS8tL2NvbW1pdC84YjYzMTU0Yjg2Njg2M2FhZTZhYzk4MWIzN2M5ODg2NGNkODg3NWY0I2Y5YjM0 OGVlOTk1YWIxNGI3YzhhNDdlNWVmMmI3ZmUwNzgzOGVjMzhfODExXzgyMjwvYT48YnI+PC9kaXY+ PGRpdj48YnI+PC9kaXY+PGRpdj5BbmQgdGhlbiBJIHVzZSBpdDo8L2Rpdj48ZGl2PjxhIGhyZWY9 Imh0dHBzOi8vZ2l0bGFiLmNvbS90aGVrZXNvbHV0aW9ucy9Lb2hhLy0vY29tbWl0LzhiNjMxNTRi ODY2ODYzYWFlNmFjOTgxYjM3Yzk4ODY0Y2Q4ODc1ZjQjZjliMzQ4ZWU5OTVhYjE0YjdjOGE0N2U1 ZWYyYjdmZTA3ODM4ZWMzOF8xMjQ1XzEyNzQiPmh0dHBzOi8vZ2l0bGFiLmNvbS90aGVrZXNvbHV0 aW9ucy9Lb2hhLy0vY29tbWl0LzhiNjMxNTRiODY2ODYzYWFlNmFjOTgxYjM3Yzk4ODY0Y2Q4ODc1 ZjQjZjliMzQ4ZWU5OTVhYjE0YjdjOGE0N2U1ZWYyYjdmZTA3ODM4ZWMzOF8xMjQ1XzEyNzQ8L2E+ PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+QmVzdCByZWdhcmRzPC9kaXY+PGRpdj48YnI+ PC9kaXY+PGRpdj48YnI+PC9kaXY+PC9kaXY+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48 ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+RWwgbWnDqSwgNSBtYXkgMjAyMSBhIGxh cyAxOjA3LCAmbHQ7PGEgaHJlZj0ibWFpbHRvOmRjb29rQHByb3NlbnRpZW50LmNvbS5hdSI+ZGNv b2tAcHJvc2VudGllbnQuY29tLmF1PC9hPiZndDsgZXNjcmliacOzOjxicj48L2Rpdj48YmxvY2tx dW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHggMC44ZXg7 Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFleCI+ PGRpdiBsYW5nPSJFTi1BVSIgc3R5bGU9Im92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7Ij48ZGl2 IGNsYXNzPSJnbWFpbC1tXzMxNzc5ODgyNDQ0NzQ2NzI4NDlXb3JkU2VjdGlvbjEiPjxwIGNsYXNz PSJNc29Ob3JtYWwiPkhpIGFsbCw8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFs Ij48dT48L3U+wqA8dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPkkgd2FzIGp1c3QgcmVm bGVjdGluZyBvbiBidWdzIGxpa2UgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLmtvaGEtY29tbXVuaXR5 Lm9yZy9idWd6aWxsYTMvc2hvd19idWcuY2dpP2lkPTI2OTQyIiB0YXJnZXQ9Il9ibGFuayI+aHR0 cHM6Ly9idWdzLmtvaGEtY29tbXVuaXR5Lm9yZy9idWd6aWxsYTMvc2hvd19idWcuY2dpP2lkPTI2 OTQyPC9hPiBhbmQgcmV2aWV3aW5nIDxhIGhyZWY9Imh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEu b3JnL2VuLVVTL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9zY3JpcHQiIHRhcmdldD0iX2JsYW5rIj5o dHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQv c2NyaXB0PC9hPiB3aGVuIEkgc2F3IHRoZSBmb2xsb3dpbmcgbWV0aG9kIGZvciBlbWJlZGRpbmcg SlNPTiBpbiBIVE1MOjx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjx1Pjwv dT7CoDx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+Jmx0OyEtLSBHZW5lcmF0ZWQgYnkg dGhlIHNlcnZlciAtLSZndDs8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj4m bHQ7c2NyaXB0IGlkPSZxdW90O2RhdGEmcXVvdDsgdHlwZT0mcXVvdDthcHBsaWNhdGlvbi9qc29u JnF1b3Q7Jmd0O3smcXVvdDt1c2VySWQmcXVvdDs6MTIzNCwmcXVvdDt1c2VyTmFtZSZxdW90Ozom cXVvdDtKb2huIERvZSZxdW90OywmcXVvdDttZW1iZXJTaW5jZSZxdW90OzomcXVvdDsyMDAwLTAx LTAxVDAwOjAwOjAwLjAwMFomcXVvdDt9Jmx0Oy9zY3JpcHQmZ3Q7PHU+PC91Pjx1PjwvdT48L3A+ PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PC91PsKgPHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9y bWFsIj4mbHQ7IS0tIFN0YXRpYyAtLSZndDs8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNv Tm9ybWFsIj4mbHQ7c2NyaXB0Jmd0Ozx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3Jt YWwiPsKgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ ZCgmcXVvdDtkYXRhJnF1b3Q7KS50ZXh0KTs8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNv Tm9ybWFsIj7CoCBjb25zb2xlLmxvZygmcXVvdDtVc2VyIGluZm9ybWF0aW9uOiAlbyZxdW90Oywg dXNlckluZm8pOzx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZsdDsvc2Ny aXB0Jmd0Ozx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPjx1PjwvdT7CoDx1 PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+SSB0aG91Z2h0IHRoYXQgd2FzIG5lYXQuPHU+ PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PC91PsKgPHU+PC91PjwvcD48 cCBjbGFzcz0iTXNvTm9ybWFsIj5EYXZpZCBDb29rPHU+PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9 Ik1zb05vcm1hbCI+U29mdHdhcmUgRW5naW5lZXI8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0i TXNvTm9ybWFsIj5Qcm9zZW50aWVudCBTeXN0ZW1zPHU+PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9 Ik1zb05vcm1hbCI+U3VpdGUgNy4wMzx1PjwvdT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3Jt YWwiPjZhIEdsZW4gU3Q8dT48L3U+PHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj5NaWxz b25zIFBvaW50IE5TVyAyMDYxPHU+PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+ QXVzdHJhbGlhPHU+PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PC91PsKg PHU+PC91PjwvcD48cCBjbGFzcz0iTXNvTm9ybWFsIj5PZmZpY2U6IDAyIDkyMTIgMDg5OTx1Pjwv dT48dT48L3U+PC9wPjxwIGNsYXNzPSJNc29Ob3JtYWwiPk9ubGluZTogMDIgODAwNSAwNTk1PHU+ PC91Pjx1PjwvdT48L3A+PHAgY2xhc3M9Ik1zb05vcm1hbCI+PHU+PC91PsKgPHU+PC91PjwvcD48 L2Rpdj48L2Rpdj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xzxicj4KS29oYS1kZXZlbCBtYWlsaW5nIGxpc3Q8YnI+CjxhIGhyZWY9Im1haWx0bzpLb2hhLWRl dmVsQGxpc3RzLmtvaGEtY29tbXVuaXR5Lm9yZyIgdGFyZ2V0PSJfYmxhbmsiPktvaGEtZGV2ZWxA bGlzdHMua29oYS1jb21tdW5pdHkub3JnPC9hPjxicj4KPGEgaHJlZj0iaHR0cHM6Ly9saXN0cy5r b2hhLWNvbW11bml0eS5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL2tvaGEtZGV2ZWwiIHJl bD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vbGlzdHMua29oYS1jb21tdW5p dHkub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9rb2hhLWRldmVsPC9hPjxicj4Kd2Vic2l0 ZSA6IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmtvaGEtY29tbXVuaXR5Lm9yZy8iIHJlbD0ibm9yZWZl cnJlciIgdGFyZ2V0PSJfYmxhbmsiPmh0dHBzOi8vd3d3LmtvaGEtY29tbXVuaXR5Lm9yZy88L2E+ PGJyPgpnaXQgOiA8YSBocmVmPSJodHRwczovL2dpdC5rb2hhLWNvbW11bml0eS5vcmcvIiByZWw9 Im5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dpdC5rb2hhLWNvbW11bml0eS5v cmcvPC9hPjxicj4KYnVncyA6IDxhIGhyZWY9Imh0dHBzOi8vYnVncy5rb2hhLWNvbW11bml0eS5v cmcvIiByZWw9Im5vcmVmZXJyZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2J1Z3Mua29oYS1j b21tdW5pdHkub3JnLzwvYT48YnI+CjwvYmxvY2txdW90ZT48L2Rpdj48YnIgY2xlYXI9ImFsbCI+ PGRpdj48YnI+PC9kaXY+LS0gPGJyPjxkaXYgZGlyPSJsdHIiIGNsYXNzPSJnbWFpbF9zaWduYXR1 cmUiPjxkaXYgZGlyPSJsdHIiPjxkaXY+PGRpdiBkaXI9Imx0ciI+PGRpdiBzdHlsZT0iZm9udC1z aXplOjEyLjhweCI+VG9tw6FzIENvaGVuIEFyYXppPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1zaXpl OjEyLjhweCI+VGhla2UgU29sdXRpb25zICg8YSBocmVmPSJodHRwOi8vdGhla2UuaW8vIiB0YXJn ZXQ9Il9ibGFuayI+aHR0cDovL3RoZWtlLmlvPC9hPik8YnI+4pyGICs1NCA5MzUxIDM1MTMzODQ8 YnI+R1BHOiBCMkYzQzE1RjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2Pgo= --===============6305717351485308569==--