From eric.wittmann at redhat.com Thu Oct 19 10:03:55 2017 Content-Type: multipart/mixed; boundary="===============3353150705304138554==" MIME-Version: 1.0 From: Eric Wittmann To: apiman-user at lists.jboss.org Subject: Re: [Apiman-user] Internal Server Error through DELETE method, when there is no Content-Type in header Date: Thu, 19 Oct 2017 10:03:33 -0400 Message-ID: In-Reply-To: CAOFYJDu1-e_H-9a7amR+85cTEMpqMGW3RQ3K+BpwikrL9_h_Mw@mail.gmail.com --===============3353150705304138554== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable OK keep us posted on your progress. I'm still very surprised that there is no stack trace in the wildfly server logs. If you wanted to try attaching a Java debugger to it I'm sure we could point you in the right direction... On Wed, Oct 18, 2017 at 11:12 PM, Celso Agra wrote: > Hi Marc and Eric, > > I did a VM to simulate this issue. Here ir the project: > https://github.com/celsoagra/apiman-json-server > > I created an apiman server with the API (json-server), and try to execute > that with the same configs of my environment. But, I didn't get this > Internal Server Error. So, problem could be on my environment. > > Thanks a lot for the attention > > Best Regards, > > Celso Agra > > > 2017-10-18 18:24 GMT-03:00 Eric Wittmann : > >> OK thanks. I assumed that was the case but wanted to make sure! :) >> >> On Wed, Oct 18, 2017 at 4:33 PM, Celso Agra wro= te: >> >>> The API works fine here! >>> >>> 2017-10-18 17:25 GMT-03:00 Eric Wittmann : >>> >>>> What I mean is: what happens if you bypass the apiman gateway and make >>>> an identical curl request directly to the back-end API? >>>> >>>> I'm asking because I'm coming up empty on why an internal server error >>>> could happen in the apiman gateway without generating a stack trace in= the >>>> log. :) >>>> >>>> -Eric >>>> >>>> On Wed, Oct 18, 2017 at 2:31 PM, Celso Agra >>>> wrote: >>>> >>>>> I'll try to simulate that with another VM and API. >>>>> >>>>> I'll bring results soon as possible! >>>>> >>>>> 2017-10-18 15:21 GMT-03:00 Eric Wittmann : >>>>> >>>>>> Is there any chance that the Internal Server Error is coming from the >>>>>> API being proxied? :) >>>>>> >>>>>> -Eric >>>>>> >>>>>> >>>>>> On Wed, Oct 18, 2017 at 1:23 PM, Celso Agra >>>>>> wrote: >>>>>> >>>>>>> Hi Eric, >>>>>>> >>>>>>> I look into "standalone/log/server.log", and I didn't see anything >>>>>>> about this. =3D/ >>>>>>> >>>>>>> Best Regards, >>>>>>> >>>>>>> Celso Agra >>>>>>> >>>>>>> >>>>>>> 2017-10-18 9:22 GMT-03:00 Eric Wittmann : >>>>>>> >>>>>>>> Are there any errors in the server logs that could help diagnose >>>>>>>> this issue? >>>>>>>> >>>>>>>> On Tue, Oct 17, 2017 at 10:51 AM, Celso Agra >>>>>>>> wrote: >>>>>>>> >>>>>>>>> Hi all, >>>>>>>>> >>>>>>>>> I got an "Internal Server Error" when I send a DELETE request >>>>>>>>> method and there is no Content-Type in header. I'd like to know i= f this is >>>>>>>>> an expected behavior, or something else should be configured? I'm= using >>>>>>>>> Apiman 1.3.0.Final with CORS plugin. >>>>>>>>> >>>>>>>>> PS.: This behavior just occurs when I send a DELETE method request >>>>>>>>> through Apiman without "Content-Type" in header. >>>>>>>>> >>>>>>>>> Here is some examples: >>>>>>>>> >>>>>>>>> >>>>>>>>>> *Example 01 $ curl -X "DELETE" >>>>>>>>>> https://apiman.local/apiman-gateway/test-app/application/1.0/del= ete/99?apikey=3Dxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx >>>>>>>>>> **= ErrorInternal >>>>>>>>>> Server Error* >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *Example 02 $ curl -H "Content-Type: application/json" -X >>>>>>>>>> "DELETE" >>>>>>>>>> https://apiman.local/apiman-gateway/test-app/application/1.0/del= ete/99?apikey=3Dxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx >>>>>>>>>> **[ >>>>>>>>>> { "return": "OK" } ]* >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Best Regards, >>>>>>>>> >>>>>>>>> -- >>>>>>>>> --- >>>>>>>>> *Celso Agra* >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Apiman-user mailing list >>>>>>>>> Apiman-user(a)lists.jboss.org >>>>>>>>> https://lists.jboss.org/mailman/listinfo/apiman-user >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> --- >>>>>>> *Celso Agra* >>>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> --- >>>>> *Celso Agra* >>>>> >>>> >>>> >>> >>> >>> -- >>> --- >>> *Celso Agra* >>> >> >> > > > -- > --- > *Celso Agra* > --===============3353150705304138554== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PGRpdiBkaXI9Imx0ciI+T0sga2VlcCB1cyBwb3N0ZWQgb24geW91ciBwcm9ncmVzcy7CoCBJJiMz OTttIHN0aWxsIHZlcnkgc3VycHJpc2VkIHRoYXQgdGhlcmUgaXMgbm8gc3RhY2sgdHJhY2UgaW4g dGhlIHdpbGRmbHkgc2VydmVyIGxvZ3MuwqDCoDxkaXY+PGJyPjwvZGl2PjxkaXY+SWYgeW91IHdh bnRlZCB0byB0cnkgYXR0YWNoaW5nIGEgSmF2YSBkZWJ1Z2dlciB0byBpdCBJJiMzOTttIHN1cmUg d2UgY291bGQgcG9pbnQgeW91IGluIHRoZSByaWdodCBkaXJlY3Rpb24uLi48L2Rpdj48L2Rpdj48 ZGl2IGNsYXNzPSJnbWFpbF9leHRyYSI+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj5PbiBX ZWQsIE9jdCAxOCwgMjAxNyBhdCAxMToxMiBQTSwgQ2Vsc28gQWdyYSA8c3BhbiBkaXI9Imx0ciI+ Jmx0OzxhIGhyZWY9Im1haWx0bzpjZWxzby5hZ3JhQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsi PmNlbHNvLmFncmFAZ21haWwuY29tPC9hPiZndDs8L3NwYW4+IHdyb3RlOjxicj48YmxvY2txdW90 ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDtib3JkZXItbGVm dDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGRpcj0ibHRyIj5IaSBNYXJj IGFuZCBFcmljLDxkaXY+PGJyPjwvZGl2PjxkaXY+SSBkaWQgYSBWTSB0byBzaW11bGF0ZSB0aGlz IGlzc3VlLiBIZXJlIGlyIHRoZSBwcm9qZWN0OsKgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29t L2NlbHNvYWdyYS9hcGltYW4tanNvbi1zZXJ2ZXIiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dp dGh1Yi5jb20vPHdicj5jZWxzb2FncmEvYXBpbWFuLWpzb24tc2VydmVyPC9hPsKgPC9kaXY+PGRp dj48YnI+PC9kaXY+PGRpdj5JIGNyZWF0ZWQgYW4gYXBpbWFuwqBzZXJ2ZXIgd2l0aCB0aGUgQVBJ IChqc29uLXNlcnZlciksIGFuZCB0cnkgdG8gZXhlY3V0ZSB0aGF0IHdpdGggdGhlIHNhbWUgY29u ZmlncyBvZiBteSBlbnZpcm9ubWVudC4gQnV0LCBJIGRpZG4mIzM5O3QgZ2V0IHRoaXMgSW50ZXJu YWwgU2VydmVyIEVycm9yLiBTbywgcHJvYmxlbSBjb3VsZCBiZSBvbiBteSBlbnZpcm9ubWVudC48 L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlRoYW5rcyBhIGxvdCBmb3IgdGhlIGF0dGVudGlvbjwv ZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+QmVzdCBSZWdhcmRzLDwvZGl2PjxkaXY+PGJyPjwvZGl2 PjxkaXY+Q2Vsc28gQWdyYTwvZGl2PjxkaXY+PGJyPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Imdt YWlsX2V4dHJhIj48ZGl2PjxkaXYgY2xhc3M9Img1Ij48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVv dGUiPjIwMTctMTAtMTggMTg6MjQgR01ULTAzOjAwIEVyaWMgV2l0dG1hbm4gPHNwYW4gZGlyPSJs dHIiPiZsdDs8YSBocmVmPSJtYWlsdG86ZXJpYy53aXR0bWFubkByZWRoYXQuY29tIiB0YXJnZXQ9 Il9ibGFuayI+ZXJpYy53aXR0bWFubkByZWRoYXQuY29tPC9hPiZndDs8L3NwYW4+Ojxicj48Ymxv Y2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDtib3Jk ZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGRpcj0ibHRyIj5P SyB0aGFua3MuwqAgSSBhc3N1bWVkIHRoYXQgd2FzIHRoZSBjYXNlIGJ1dCB3YW50ZWQgdG8gbWFr ZSBzdXJlIcKgIDopPC9kaXY+PGRpdiBjbGFzcz0ibV8tODk5NzgwMzY1NjcyNzQwNzU2MUhPRW5a YiI+PGRpdiBjbGFzcz0ibV8tODk5NzgwMzY1NjcyNzQwNzU2MWg1Ij48ZGl2IGNsYXNzPSJnbWFp bF9leHRyYSI+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj5PbiBXZWQsIE9jdCAxOCwgMjAx NyBhdCA0OjMzIFBNLCBDZWxzbyBBZ3JhIDxzcGFuIGRpcj0ibHRyIj4mbHQ7PGEgaHJlZj0ibWFp bHRvOmNlbHNvLmFncmFAZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+Y2Vsc28uYWdyYUBnbWFp bC5jb208L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9x dW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlk O3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJsdHIiPlRoZSBBUEkgd29ya3MgZmluZSBoZXJl ITwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJhIj48ZGl2PjxkaXYgY2xhc3M9Im1fLTg5OTc4 MDM2NTY3Mjc0MDc1NjFtXy0xNDU1OTI3MzI2MTE0MDU0NjU5aDUiPjxicj48ZGl2IGNsYXNzPSJn bWFpbF9xdW90ZSI+MjAxNy0xMC0xOCAxNzoyNSBHTVQtMDM6MDAgRXJpYyBXaXR0bWFubiA8c3Bh biBkaXI9Imx0ciI+Jmx0OzxhIGhyZWY9Im1haWx0bzplcmljLndpdHRtYW5uQHJlZGhhdC5jb20i IHRhcmdldD0iX2JsYW5rIj5lcmljLndpdHRtYW5uQHJlZGhhdC5jb208L2E+Jmd0Ozwvc3Bhbj46 PGJyPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAu OGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGly PSJsdHIiPldoYXQgSSBtZWFuIGlzOsKgIHdoYXQgaGFwcGVucyBpZiB5b3UgYnlwYXNzIHRoZSBh cGltYW4gZ2F0ZXdheSBhbmQgbWFrZSBhbiBpZGVudGljYWwgY3VybCByZXF1ZXN0IGRpcmVjdGx5 IHRvIHRoZSBiYWNrLWVuZCBBUEk/wqA8ZGl2Pjxicj48L2Rpdj48ZGl2PkkmIzM5O20gYXNraW5n IGJlY2F1c2UgSSYjMzk7bSBjb21pbmcgdXAgZW1wdHkgb24gd2h5IGFuIGludGVybmFsIHNlcnZl ciBlcnJvciBjb3VsZCBoYXBwZW4gaW4gdGhlIGFwaW1hbiBnYXRld2F5IHdpdGhvdXQgZ2VuZXJh dGluZyBhIHN0YWNrIHRyYWNlIGluIHRoZSBsb2cuIDopPC9kaXY+PHNwYW4gY2xhc3M9Im1fLTg5 OTc4MDM2NTY3Mjc0MDc1NjFtXy0xNDU1OTI3MzI2MTE0MDU0NjU5bV81MjYxNjA2NjU2MDQyMDM1 MjJIT0VuWmIiPjxmb250IGNvbG9yPSIjODg4ODg4Ij48ZGl2Pjxicj48L2Rpdj48ZGl2Pi1Fcmlj PC9kaXY+PC9mb250Pjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJtXy04OTk3ODAzNjU2NzI3NDA3 NTYxbV8tMTQ1NTkyNzMyNjExNDA1NDY1OW1fNTI2MTYwNjY1NjA0MjAzNTIySE9FblpiIj48ZGl2 IGNsYXNzPSJtXy04OTk3ODAzNjU2NzI3NDA3NTYxbV8tMTQ1NTkyNzMyNjExNDA1NDY1OW1fNTI2 MTYwNjY1NjA0MjAzNTIyaDUiPjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJhIj48YnI+PGRpdiBjbGFz cz0iZ21haWxfcXVvdGUiPk9uIFdlZCwgT2N0IDE4LCAyMDE3IGF0IDI6MzEgUE0sIENlbHNvIEFn cmEgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86Y2Vsc28uYWdyYUBnbWFpbC5j b20iIHRhcmdldD0iX2JsYW5rIj5jZWxzby5hZ3JhQGdtYWlsLmNvbTwvYT4mZ3Q7PC9zcGFuPiB3 cm90ZTo8YnI+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAg MCAwIC44ZXg7Ym9yZGVyLWxlZnQ6MXB4ICNjY2Mgc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+PGRp diBkaXI9Imx0ciI+SSYjMzk7bGwgdHJ5IHRvIHNpbXVsYXRlIHRoYXQgd2l0aCBhbm90aGVyIFZN IGFuZCBBUEkuPGJyPjxicj5JJiMzOTtsbCBicmluZyByZXN1bHRzIHNvb24gYXMgcG9zc2libGUh PC9kaXY+PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxkaXY+PGRpdiBjbGFzcz0ibV8tODk5Nzgw MzY1NjcyNzQwNzU2MW1fLTE0NTU5MjczMjYxMTQwNTQ2NTltXzUyNjE2MDY2NTYwNDIwMzUyMm1f NDUyNDU3OTkyNzMyMjk2MjI1NWg1Ij48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjIwMTct MTAtMTggMTU6MjEgR01ULTAzOjAwIEVyaWMgV2l0dG1hbm4gPHNwYW4gZGlyPSJsdHIiPiZsdDs8 YSBocmVmPSJtYWlsdG86ZXJpYy53aXR0bWFubkByZWRoYXQuY29tIiB0YXJnZXQ9Il9ibGFuayI+ ZXJpYy53aXR0bWFubkByZWRoYXQuY29tPC9hPiZndDs8L3NwYW4+Ojxicj48YmxvY2txdW90ZSBj bGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46MCAwIDAgLjhleDtib3JkZXItbGVmdDox cHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij48ZGl2IGRpcj0ibHRyIj5JcyB0aGVyZSBh bnkgY2hhbmNlIHRoYXQgdGhlIEludGVybmFsIFNlcnZlciBFcnJvciBpcyBjb21pbmcgZnJvbSB0 aGUgQVBJIGJlaW5nIHByb3hpZWQ/IDopPHNwYW4gY2xhc3M9Im1fLTg5OTc4MDM2NTY3Mjc0MDc1 NjFtXy0xNDU1OTI3MzI2MTE0MDU0NjU5bV81MjYxNjA2NjU2MDQyMDM1MjJtXzQ1MjQ1Nzk5Mjcz MjI5NjIyNTVtXy0yODg5ODU5ODY2MjU2MDg0OTIwSE9FblpiIj48Zm9udCBjb2xvcj0iIzg4ODg4 OCI+PGRpdj48YnI+PC9kaXY+PGRpdj4tRXJpYzwvZGl2PjxkaXY+PGJyPjwvZGl2PjwvZm9udD48 L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibV8tODk5NzgwMzY1NjcyNzQwNzU2MW1fLTE0NTU5Mjcz MjYxMTQwNTQ2NTltXzUyNjE2MDY2NTYwNDIwMzUyMm1fNDUyNDU3OTkyNzMyMjk2MjI1NW1fLTI4 ODk4NTk4NjYyNTYwODQ5MjBIT0VuWmIiPjxkaXYgY2xhc3M9Im1fLTg5OTc4MDM2NTY3Mjc0MDc1 NjFtXy0xNDU1OTI3MzI2MTE0MDU0NjU5bV81MjYxNjA2NjU2MDQyMDM1MjJtXzQ1MjQ1Nzk5Mjcz MjI5NjIyNTVtXy0yODg5ODU5ODY2MjU2MDg0OTIwaDUiPjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJh Ij48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIFdlZCwgT2N0IDE4LCAyMDE3IGF0IDE6 MjMgUE0sIENlbHNvIEFncmEgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86Y2Vs c28uYWdyYUBnbWFpbC5jb20iIHRhcmdldD0iX2JsYW5rIj5jZWxzby5hZ3JhQGdtYWlsLmNvbTwv YT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnI+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBz dHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxlZnQ6MXB4ICNjY2Mgc29saWQ7cGFkZGlu Zy1sZWZ0OjFleCI+PGRpdiBkaXI9Imx0ciI+SGkgRXJpYyw8ZGl2Pjxicj48L2Rpdj48ZGl2Pkkg bG9vayBpbnRvICZxdW90O3N0YW5kYWxvbmUvbG9nL3NlcnZlci5sb2cmcXVvdDssIGFuZCBJIGRp ZG4mIzM5O3Qgc2VlIGFueXRoaW5nIGFib3V0IHRoaXMuID0vPC9kaXY+PGRpdj48YnI+PC9kaXY+ PGRpdj5CZXN0IFJlZ2FyZHMsPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5DZWxzbyBBZ3JhPC9k aXY+PGRpdj48YnI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxkaXY+PGRp diBjbGFzcz0ibV8tODk5NzgwMzY1NjcyNzQwNzU2MW1fLTE0NTU5MjczMjYxMTQwNTQ2NTltXzUy NjE2MDY2NTYwNDIwMzUyMm1fNDUyNDU3OTkyNzMyMjk2MjI1NW1fLTI4ODk4NTk4NjYyNTYwODQ5 MjBtXy0zMzU2MTcxOTM4NTI3OTY1Njk3aDUiPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+ MjAxNy0xMC0xOCA5OjIyIEdNVC0wMzowMCBFcmljIFdpdHRtYW5uIDxzcGFuIGRpcj0ibHRyIj4m bHQ7PGEgaHJlZj0ibWFpbHRvOmVyaWMud2l0dG1hbm5AcmVkaGF0LmNvbSIgdGFyZ2V0PSJfYmxh bmsiPmVyaWMud2l0dG1hbm5AcmVkaGF0LmNvbTwvYT4mZ3Q7PC9zcGFuPjo8YnI+PGJsb2NrcXVv dGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxl ZnQ6MXB4ICNjY2Mgc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+PGRpdiBkaXI9Imx0ciI+QXJlIHRo ZXJlIGFueSBlcnJvcnMgaW4gdGhlIHNlcnZlciBsb2dzIHRoYXQgY291bGQgaGVscCBkaWFnbm9z ZSB0aGlzIGlzc3VlPzwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJhIj48YnI+PGRpdiBjbGFz cz0iZ21haWxfcXVvdGUiPjxkaXY+PGRpdiBjbGFzcz0ibV8tODk5NzgwMzY1NjcyNzQwNzU2MW1f LTE0NTU5MjczMjYxMTQwNTQ2NTltXzUyNjE2MDY2NTYwNDIwMzUyMm1fNDUyNDU3OTkyNzMyMjk2 MjI1NW1fLTI4ODk4NTk4NjYyNTYwODQ5MjBtXy0zMzU2MTcxOTM4NTI3OTY1Njk3bV8xMzQ5NDMx MzU3MzQ5MzkxMTI4aDUiPk9uIFR1ZSwgT2N0IDE3LCAyMDE3IGF0IDEwOjUxIEFNLCBDZWxzbyBB Z3JhIDxzcGFuIGRpcj0ibHRyIj4mbHQ7PGEgaHJlZj0ibWFpbHRvOmNlbHNvLmFncmFAZ21haWwu Y29tIiB0YXJnZXQ9Il9ibGFuayI+Y2Vsc28uYWdyYUBnbWFpbC5jb208L2E+Jmd0Ozwvc3Bhbj4g d3JvdGU6PGJyPjwvZGl2PjwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5 bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmct bGVmdDoxZXgiPjxkaXY+PGRpdiBjbGFzcz0ibV8tODk5NzgwMzY1NjcyNzQwNzU2MW1fLTE0NTU5 MjczMjYxMTQwNTQ2NTltXzUyNjE2MDY2NTYwNDIwMzUyMm1fNDUyNDU3OTkyNzMyMjk2MjI1NW1f LTI4ODk4NTk4NjYyNTYwODQ5MjBtXy0zMzU2MTcxOTM4NTI3OTY1Njk3bV8xMzQ5NDMxMzU3MzQ5 MzkxMTI4aDUiPjxkaXYgZGlyPSJsdHIiPjxkaXY+SGkgYWxsLDwvZGl2PjxkaXY+PGJyPjwvZGl2 PjxkaXY+SSBnb3QgYW4gJnF1b3Q7SW50ZXJuYWwgU2VydmVyIEVycm9yJnF1b3Q7IHdoZW4gSSBz ZW5kIGEgREVMRVRFIHJlcXVlc3QgbWV0aG9kIGFuZCB0aGVyZSBpcyBubyBDb250ZW50LVR5cGUg aW4gaGVhZGVyLiBJJiMzOTtkIGxpa2UgdG8ga25vdyBpZiB0aGlzIGlzIGFuIGV4cGVjdGVkIGJl aGF2aW9yLCBvciBzb21ldGhpbmcgZWxzZSBzaG91bGQgYmUgY29uZmlndXJlZD8gSSYjMzk7bSB1 c2luZyBBcGltYW4gMS4zLjAuRmluYWwgd2l0aCBDT1JTIHBsdWdpbi48L2Rpdj48ZGl2Pjxicj48 L2Rpdj48ZGl2PlBTLjogVGhpcyBiZWhhdmlvciBqdXN0IG9jY3VycyB3aGVuIEkgc2VuZCBhIERF TEVURSBtZXRob2QgcmVxdWVzdCB0aHJvdWdoIEFwaW1hbiB3aXRob3V0ICZxdW90O0NvbnRlbnQt VHlwZSZxdW90OyBpbiBoZWFkZXIuPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5IZXJlIGlzIHNv bWUgZXhhbXBsZXM6PC9kaXY+PGRpdj48YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWls X3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBz b2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPjxpPkV4YW1wbGUgMDEgJCBj dXJsIC1YICZxdW90O0RFTEVURSZxdW90OyA8YSBocmVmPSJodHRwczovL2FwaW1hbi5sb2NhbC9h cGltYW4tZ2F0ZXdheS90ZXN0LWFwcC9hcHBsaWNhdGlvbi8xLjAvZGVsZXRlLzk5P2FwaWtleT14 eHh4eHh4eC14eHh4LXh4eHgteHh4eC14eHh4eHh4eHh4eHgiIHRhcmdldD0iX2JsYW5rIj5odHRw czovL2FwaW1hbi5sb2NhbC9hcGltYW4tZ2E8d2JyPnRld2F5L3Rlc3QtYXBwL2FwcGxpY2F0aW9u LzEuMDx3YnI+L2RlbGV0ZS85OT9hcGlrZXk9eHh4eHh4eHgteHh4PHdicj54LXh4eHgteHh4eC14 eHh4eHh4eHh4eHg8L2E+PGJyPjwvaT48aT4mbHQ7aHRtbCZndDsmbHQ7aGVhZCZndDsmbHQ7dGl0 bGUmZ3Q7RXJyb3ImbHQ7L3RpdGw8d2JyPmUmZ3Q7Jmx0Oy9oZWFkJmd0OyZsdDtib2R5Jmd0O0lu dGVybmFsIFNlcnZlciBFcnJvciZsdDsvYm9keSZndDsmbHQ7L2h0bWwmZ3Q7PC9pPjwvYmxvY2tx dW90ZT48ZGl2PsKgPC9kaXY+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0i bWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2IoMjA0LDIw NCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPjxpPjxicj48L2k+PGk+RXhhbXBsZSAwMiAkIGN1cmwg LUggJnF1b3Q7Q29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJnF1b3Q7IC1YICZxdW90O0RF TEVURSZxdW90OyA8YSBocmVmPSJodHRwczovL2FwaW1hbi5sb2NhbC9hcGltYW4tZ2F0ZXdheS90 ZXN0LWFwcC9hcHBsaWNhdGlvbi8xLjAvZGVsZXRlLzk5P2FwaWtleT14eHh4eHh4eC14eHh4LXh4 eHgteHh4eC14eHh4eHh4eHh4eHgiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2FwaW1hbi5sb2Nh bC9hcGltYW4tZ2E8d2JyPnRld2F5L3Rlc3QtYXBwL2FwcGxpY2F0aW9uLzEuMDx3YnI+L2RlbGV0 ZS85OT9hcGlrZXk9eHh4eHh4eHgteHh4PHdicj54LXh4eHgteHh4eC14eHh4eHh4eHh4eHg8L2E+ PGJyPjwvaT48aT5bIHsgJnF1b3Q7cmV0dXJuJnF1b3Q7OiAmcXVvdDtPSyZxdW90OyB9IF08L2k+ PC9ibG9ja3F1b3RlPjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2 PjxkaXY+QmVzdCBSZWdhcmRzLDwvZGl2PjxzcGFuIGNsYXNzPSJtXy04OTk3ODAzNjU2NzI3NDA3 NTYxbV8tMTQ1NTkyNzMyNjExNDA1NDY1OW1fNTI2MTYwNjY1NjA0MjAzNTIybV80NTI0NTc5OTI3 MzIyOTYyMjU1bV8tMjg4OTg1OTg2NjI1NjA4NDkyMG1fLTMzNTYxNzE5Mzg1Mjc5NjU2OTdtXzEz NDk0MzEzNTczNDkzOTExMjhtXy04NzA3NTk5ODg5MjIxODA3NDMwSE9FblpiIj48Zm9udCBjb2xv cj0iIzg4ODg4OCI+PGRpdj48YnI+PC9kaXY+LS0gPGJyPjxkaXYgY2xhc3M9Im1fLTg5OTc4MDM2 NTY3Mjc0MDc1NjFtXy0xNDU1OTI3MzI2MTE0MDU0NjU5bV81MjYxNjA2NjU2MDQyMDM1MjJtXzQ1 MjQ1Nzk5MjczMjI5NjIyNTVtXy0yODg5ODU5ODY2MjU2MDg0OTIwbV8tMzM1NjE3MTkzODUyNzk2 NTY5N21fMTM0OTQzMTM1NzM0OTM5MTEyOG1fLTg3MDc1OTk4ODkyMjE4MDc0MzBtXzU0ODgwNDUz MDcxMDUwODYzNWdtYWlsX3NpZ25hdHVyZSI+PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2IGRpcj0i bHRyIj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4m cXVvdDs7Zm9udC1zaXplOjE2cHgiPi0tLTxicj48Yj5DZWxzb8KgQWdyYTwvYj48L3NwYW4+PC9k aXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+CjwvZm9udD48L3NwYW4+PC9kaXY+Cjxicj48L2Rp dj48L2Rpdj48c3Bhbj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188d2JyPl9fX19fX19f X19fX19fX19fPGJyPgpBcGltYW4tdXNlciBtYWlsaW5nIGxpc3Q8YnI+CjxhIGhyZWY9Im1haWx0 bzpBcGltYW4tdXNlckBsaXN0cy5qYm9zcy5vcmciIHRhcmdldD0iX2JsYW5rIj5BcGltYW4tdXNl ckBsaXN0cy5qYm9zcy5vcmc8L2E+PGJyPgo8YSBocmVmPSJodHRwczovL2xpc3RzLmpib3NzLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2FwaW1hbi11c2VyIiByZWw9Im5vcmVmZXJyZXIiIHRhcmdldD0i X2JsYW5rIj5odHRwczovL2xpc3RzLmpib3NzLm9yZy9tYWlsbWE8d2JyPm4vbGlzdGluZm8vYXBp bWFuLXVzZXI8L2E+PGJyPgo8YnI+PC9zcGFuPjwvYmxvY2txdW90ZT48L2Rpdj48YnI+PC9kaXY+ CjwvYmxvY2txdW90ZT48L2Rpdj48YnI+PGJyIGNsZWFyPSJhbGwiPjxkaXY+PGJyPjwvZGl2Pjwv ZGl2PjwvZGl2PjxzcGFuIGNsYXNzPSJtXy04OTk3ODAzNjU2NzI3NDA3NTYxbV8tMTQ1NTkyNzMy NjExNDA1NDY1OW1fNTI2MTYwNjY1NjA0MjAzNTIybV80NTI0NTc5OTI3MzIyOTYyMjU1bV8tMjg4 OTg1OTg2NjI1NjA4NDkyMG1fLTMzNTYxNzE5Mzg1Mjc5NjU2OTdIT0VuWmIiPjxmb250IGNvbG9y PSIjODg4ODg4Ij4tLSA8YnI+PGRpdiBjbGFzcz0ibV8tODk5NzgwMzY1NjcyNzQwNzU2MW1fLTE0 NTU5MjczMjYxMTQwNTQ2NTltXzUyNjE2MDY2NTYwNDIwMzUyMm1fNDUyNDU3OTkyNzMyMjk2MjI1 NW1fLTI4ODk4NTk4NjYyNTYwODQ5MjBtXy0zMzU2MTcxOTM4NTI3OTY1Njk3bV8xMzQ5NDMxMzU3 MzQ5MzkxMTI4Z21haWxfc2lnbmF0dXJlIiBkYXRhLXNtYXJ0bWFpbD0iZ21haWxfc2lnbmF0dXJl Ij48ZGl2IGRpcj0ibHRyIj48ZGl2PjxkaXYgZGlyPSJsdHIiPjxkaXY+PHNwYW4gc3R5bGU9ImZv bnQtZmFtaWx5OiYjMzk7VGltZXMgTmV3IFJvbWFuJiMzOTs7Zm9udC1zaXplOjE2cHgiPi0tLTxi cj48Yj5DZWxzb8KgQWdyYTwvYj48L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+ CjwvZm9udD48L3NwYW4+PC9kaXY+CjwvYmxvY2txdW90ZT48L2Rpdj48YnI+PC9kaXY+CjwvZGl2 PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48YnI+PGJyIGNsZWFyPSJhbGwiPjxkaXY+PGJyPjwv ZGl2PjwvZGl2PjwvZGl2PjxzcGFuIGNsYXNzPSJtXy04OTk3ODAzNjU2NzI3NDA3NTYxbV8tMTQ1 NTkyNzMyNjExNDA1NDY1OW1fNTI2MTYwNjY1NjA0MjAzNTIybV80NTI0NTc5OTI3MzIyOTYyMjU1 SE9FblpiIj48Zm9udCBjb2xvcj0iIzg4ODg4OCI+LS0gPGJyPjxkaXYgY2xhc3M9Im1fLTg5OTc4 MDM2NTY3Mjc0MDc1NjFtXy0xNDU1OTI3MzI2MTE0MDU0NjU5bV81MjYxNjA2NjU2MDQyMDM1MjJt XzQ1MjQ1Nzk5MjczMjI5NjIyNTVtXy0yODg5ODU5ODY2MjU2MDg0OTIwZ21haWxfc2lnbmF0dXJl IiBkYXRhLXNtYXJ0bWFpbD0iZ21haWxfc2lnbmF0dXJlIj48ZGl2IGRpcj0ibHRyIj48ZGl2Pjxk aXYgZGlyPSJsdHIiPjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiYjMzk7VGltZXMgTmV3 IFJvbWFuJiMzOTs7Zm9udC1zaXplOjE2cHgiPi0tLTxicj48Yj5DZWxzb8KgQWdyYTwvYj48L3Nw YW4+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+CjwvZm9udD48L3NwYW4+PC9kaXY+Cjwv YmxvY2txdW90ZT48L2Rpdj48YnI+PC9kaXY+CjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rp dj48YnI+PGJyIGNsZWFyPSJhbGwiPjxkaXY+PGJyPjwvZGl2PjwvZGl2PjwvZGl2PjxzcGFuIGNs YXNzPSJtXy04OTk3ODAzNjU2NzI3NDA3NTYxbV8tMTQ1NTkyNzMyNjExNDA1NDY1OUhPRW5aYiI+ PGZvbnQgY29sb3I9IiM4ODg4ODgiPi0tIDxicj48ZGl2IGNsYXNzPSJtXy04OTk3ODAzNjU2NzI3 NDA3NTYxbV8tMTQ1NTkyNzMyNjExNDA1NDY1OW1fNTI2MTYwNjY1NjA0MjAzNTIyZ21haWxfc2ln bmF0dXJlIiBkYXRhLXNtYXJ0bWFpbD0iZ21haWxfc2lnbmF0dXJlIj48ZGl2IGRpcj0ibHRyIj48 ZGl2PjxkaXYgZGlyPSJsdHIiPjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiYjMzk7VGlt ZXMgTmV3IFJvbWFuJiMzOTs7Zm9udC1zaXplOjE2cHgiPi0tLTxicj48Yj5DZWxzb8KgQWdyYTwv Yj48L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+CjwvZm9udD48L3NwYW4+PC9k aXY+CjwvYmxvY2txdW90ZT48L2Rpdj48YnI+PC9kaXY+CjwvZGl2PjwvZGl2PjwvYmxvY2txdW90 ZT48L2Rpdj48YnI+PGJyIGNsZWFyPSJhbGwiPjxkaXY+PGJyPjwvZGl2PjwvZGl2PjwvZGl2Pjxz cGFuIGNsYXNzPSJIT0VuWmIiPjxmb250IGNvbG9yPSIjODg4ODg4Ij4tLSA8YnI+PGRpdiBjbGFz cz0ibV8tODk5NzgwMzY1NjcyNzQwNzU2MWdtYWlsX3NpZ25hdHVyZSIgZGF0YS1zbWFydG1haWw9 ImdtYWlsX3NpZ25hdHVyZSI+PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2IGRpcj0ibHRyIj48ZGl2 PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTomIzM5O1RpbWVzIE5ldyBSb21hbiYjMzk7O2ZvbnQt c2l6ZToxNnB4Ij4tLS08YnI+PGI+Q2Vsc2/CoEFncmE8L2I+PC9zcGFuPjwvZGl2PjwvZGl2Pjwv ZGl2PjwvZGl2PjwvZGl2Pgo8L2ZvbnQ+PC9zcGFuPjwvZGl2Pgo8L2Jsb2NrcXVvdGU+PC9kaXY+ PGJyPjwvZGl2Pgo= --===============3353150705304138554==--