<div dir="ltr"><div class="gmail_extra">The deadline is today.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Sarthak</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 24, 2016 at 1:52 AM, sarthak agarwal <span dir="ltr"><<a href="mailto:sarthak0415@gmail.com" target="_blank">sarthak0415@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><p style="margin:0px 0px 1.2em!important">Hello Dmitry,</p>
<p style="margin:0px 0px 1.2em!important">I fixed the bug (I guess).<br>Now coming to my proposal for GSoC, So I was thinking of working on project #4 <b>Auto-detection of EPSG codes from incomplete WKT.</b></p>
<p style="margin:0px 0px 1.2em!important">What I understood from the project is that we need to predict the EPSG code of certain files on the basis of some attributes which are available in the file.</p>
<p style="margin:0px 0px 1.2em!important">The attributes can be extracted from the file for which I read <a href="http://www.gdal.org/osr_tutorial.html#querying_coordinate_system" target="_blank">this</a>.</p>
<p style="margin:0px 0px 1.2em!important">Now to solve this problem I thought a lot of methods but I think the best way to solve it will be using machine learning.</p>
<p style="margin:0px 0px 1.2em!important">The way ML will handle this problem is as follows-</p>
<ol style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">We need to find the EPSG code for a file (testing data)</li>
<li style="margin:0.5em 0px">We have a file with some attributes (projections,datum,etc ).</li>
<li style="margin:0.5em 0px">We need to the guess the best suitable class for that file(EPSG)</li>
<li style="margin:0.5em 0px">Also, we have many files for which we know the attributes and the corresponding class (training data).</li>
</ol>
<p style="margin:0px 0px 1.2em!important">This problem is now translated into an ML problem which can be solved using the following models-</p><p style="margin:0px 0px 1.2em!important">1. <a href="https://en.wikipedia.org/wiki/Posterior_probability" target="_blank">Bayesian Stastics</a></p>
<p style="margin:0px 0px 1.2em!important"></p><div><p></p><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>where,</div><div>posteriror probability = probability of this file have EPSG code 'a'.</div><div>prior probability = probability of occurence of EPSG code 'a'.</div></blockquote></div><div><blockquote style="margin:0 0 0 40px;border:none;padding:0px">likelihood probablity = cases where we saw such attributes when the EPSG code is 'a'.<br></blockquote><div><br></div>2. or we can use a simple knn where k is the number of possible EPSG code and the dimension of the feature vector is the number of possible attributes. we need to the find a valid and promising weight function).<br></div>
<p style="margin:0px 0px 1.2em!important"><br></p><p style="margin:0px 0px 1.2em!important">3. We can use multi-class SVM.</p><p style="margin:0px 0px 1.2em!important">4. any other suggestion from the community regarding the possible choice of the algo.</p>
<p style="margin:0px 0px 1.2em!important">I am thinking of actually implementing all these algo(may add algo in future depending upon the suggestion) and select the algo which gives the best performance among all of them.</p>
<p style="margin:0px 0px 1.2em!important">Please provide me feedback on my proposal and suggestion if I can add/change anything.<br>And since very less time is left in the deadline, I would like to convert it into proposal ASAP with your help.</p>
<p style="margin:0px 0px 1.2em!important">Regards,<br>Sarthak</p>
<div title="MDH:SGVsbG8gRG1pdHJ5LDxkaXY+PGJyPjwvZGl2PjxkaXY+SSBmaXhlZCB0aGUgYnVnIChJIGd1ZXNz
KS48YnI+Tm93IGNvbWluZyB0byBteSBwcm9wb3NhbCBmb3IgR1NvQywgU28gSSB3YXMgdGhpbmtp
bmcgb2Ygd29ya2luZyBvbiBwcm9qZWN0ICM0Jm5ic3A7PHN0cm9uZyBzdHlsZT0iZm9udC1zaXpl
OiAxM3B4OyBjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWws
ICdCaXRzdHJlYW0gVmVyYSBTYW5zJywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyI+QXV0by1kZXRl
Y3Rpb24gb2YgRVBTRyBjb2RlcyBmcm9tIGluY29tcGxldGUgV0tULjwvc3Ryb25nPjwvZGl2Pjxk
aXY+PHN0cm9uZyBzdHlsZT0iZm9udC1zaXplOiAxM3B4OyBjb2xvcjogcmdiKDAsIDAsIDApOyBm
b250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsICdCaXRzdHJlYW0gVmVyYSBTYW5zJywgSGVsdmV0
aWNhLCBzYW5zLXNlcmlmOyI+PGJyPjwvc3Ryb25nPjwvZGl2PjxkaXY+PGZvbnQgY29sb3I9IiMw
MDAwMDAiIGZhY2U9IlZlcmRhbmEsIEFyaWFsLCBCaXRzdHJlYW0gVmVyYSBTYW5zLCBIZWx2ZXRp
Y2EsIHNhbnMtc2VyaWYiPldoYXQgSSB1bmRlcnN0b29kIGZyb20gdGhlIHByb2plY3QgaXMgdGhh
dCB3ZSBuZWVkIHRvIGd1ZXNzIHRoZSBFUFNHIGNvZGUgb2YgY2VydGFpbiBmaWxlcyBvbiB0aGUg
YmFzaXMgb2Ygc29tZSBhdHRyaWJ1dGVzIHdoaWNoIGFyZSBhdmFpbGFibGUgaW4gdGhlIGZpbGUu
PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgY29sb3I9IiMwMDAwMDAiIGZhY2U9IlZlcmRhbmEsIEFy
aWFsLCBCaXRzdHJlYW0gVmVyYSBTYW5zLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYiPjxicj48L2Zv
bnQ+PC9kaXY+PGRpdj48Zm9udCBjb2xvcj0iIzAwMDAwMCIgZmFjZT0iVmVyZGFuYSwgQXJpYWws
IEJpdHN0cmVhbSBWZXJhIFNhbnMsIEhlbHZldGljYSwgc2Fucy1zZXJpZiI+VGhlIGF0dHJpYnV0
ZXMgY2FuIGJlIGV4dHJhY3RlZCBmb3Igd2hpY2ggSSByZWFkIFt0aGlzXShodHRwOi8vd3d3Lmdk
YWwub3JnL29zcl90dXRvcmlhbC5odG1sI3F1ZXJ5aW5nX2Nvb3JkaW5hdGVfc3lzdGVtPC9mb250
PjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogVmVyZGFuYSwg
QXJpYWwsICdCaXRzdHJlYW0gVmVyYSBTYW5zJywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyI+KS48
L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1m
YW1pbHk6IFZlcmRhbmEsIEFyaWFsLCAnQml0c3RyZWFtIFZlcmEgU2FucycsIEhlbHZldGljYSwg
c2Fucy1zZXJpZjsiPjxicj48L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iY29sb3I6IHJn
YigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFyaWFsLCAnQml0c3RyZWFtIFZlcmEg
U2FucycsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsiPk5vdyB0byBzb2x2ZSB0aGlzIHByb2JsZW0g
SSB0aG91Z2h0IGEgbG90IG9mIG1ldGhvZHMgYnV0IEkgdGhpbmsgdGhlIGJlc3Qgd2F5IHRvIHNv
bHZlIGl0IHdpbGwgYmUgdXNpbmcgbWFjaGluZSBsZWFybmluZy48L3NwYW4+PC9kaXY+PGRpdj48
c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IFZlcmRhbmEsIEFy
aWFsLCAnQml0c3RyZWFtIFZlcmEgU2FucycsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsiPjxicj48
L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1m
YW1pbHk6IFZlcmRhbmEsIEFyaWFsLCAnQml0c3RyZWFtIFZlcmEgU2FucycsIEhlbHZldGljYSwg
c2Fucy1zZXJpZjsiPlRoZSB3YXkgTUwgd2lsbCBoYW5kbGUgdGhpcyBwcm9ibGVtIGlzIGFzIGZv
bGxvd3MtPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7
IGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgJ0JpdHN0cmVhbSBWZXJhIFNhbnMnLCBIZWx2
ZXRpY2EsIHNhbnMtc2VyaWY7Ij4wLiBXZSBuZWVkIHRvIGZpbmQgdGhlIEVQU0cgY29kZSBmb3Ig
YSBmaWxlICh0ZXN0aW5nIGRhdGEpPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImNvbG9y
OiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBWZXJkYW5hLCBBcmlhbCwgJ0JpdHN0cmVhbSBW
ZXJhIFNhbnMnLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7Ij4xLiBXZSBoYXZlIGEgZmlsZSB3aXRo
IHNvbWUgYXR0cmlidXRlcyAoPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDAp
OyBmb250LWZhbWlseTogVmVyZGFuYSwgQXJpYWwsICdCaXRzdHJlYW0gVmVyYSBTYW5zJywgSGVs
dmV0aWNhLCBzYW5zLXNlcmlmOyI+cHJvamVjdGlvbnMsZGF0dW0sZXRjICkuPC9zcGFuPjwvZGl2
PjxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBWZXJk
YW5hLCBBcmlhbCwgJ0JpdHN0cmVhbSBWZXJhIFNhbnMnLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7
Ij4yLiBXZSBuZWVkIHRvIHRoZSBndWVzcyB0aGUgYmVzdCBzdWl0YWJsZSBjbGFzcyBmb3IgdGhh
dCBmaWxlKEVQU0cpPC9zcGFuPjwvZGl2PjxkaXY+PGZvbnQgY29sb3I9IiMwMDAwMDAiIGZhY2U9
IlZlcmRhbmEsIEFyaWFsLCBCaXRzdHJlYW0gVmVyYSBTYW5zLCBIZWx2ZXRpY2EsIHNhbnMtc2Vy
aWYiPjMuIEFsc28sIHdlIGhhdmUgbWFueSBmaWxlcyBmb3Igd2hpY2ggd2Uga25vdyB0aGUgYXR0
cmlidXRlcyBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgY2xhc3MgKHRyYWluaW5nIGRhdGEpLjwvZm9u
dD48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlRoaXMgcHJvYmxlbSBpcyBub3cgdHJhbnNsYXRl
ZCBpbnRvIGFuIE1MIHByb2JsZW0gd2hpY2ggY2FuIGJlIHNvbHZlZCB1c2luZyB0aGUgZm9sbG93
aW5nIG1vZGVscy08L2Rpdj48ZGl2PjEuIFtCYXllc2lhbiBTdGFzdGljc10oaHR0cHM6Ly9lbi53
aWtpcGVkaWEub3JnL3dpa2kvUG9zdGVyaW9yX3Byb2JhYmlsaXR5KSZuYnNwOzwvZGl2PjxibG9j
a3F1b3RlIHN0eWxlPSJtYXJnaW46IDAgMCAwIDQwcHg7IGJvcmRlcjogbm9uZTsgcGFkZGluZzog
MHB4OyI+PGRpdj53aGVyZSBwb3N0ZXJpcm9yIHByb2JhYmlsaXR5ID0gcHJvYmFiaWxpdHkgb2Yg
dGhpcyBmaWxlIGhhdmUgRVBTRyBjb2RlICdhJy48L2Rpdj48L2Jsb2NrcXVvdGU+PGJsb2NrcXVv
dGUgc3R5bGU9Im1hcmdpbjogMCAwIDAgNDBweDsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAwcHg7
Ij5wcmlvciBwcm9iYWJpbGl0eSA9IHByb2JhYmlsaXR5IG9mIG9jY3VyZW5jZSBvZiBFUFNHIGNv
ZGUgJ2EnLjxicj5saWtlbGlob29kIHByb2JhYmxpdHkgPSBjYXNlcyB3aGVyZSB3ZSBzYXcgc3Vj
aCBhdHRyaWJ1dGVzIHdoZW4gdGhlIEVQU0cgY29kZSBpcyAnYScuPGJyPjwvYmxvY2txdW90ZT48
ZGl2Pjxicj48L2Rpdj48ZGl2Pjxicj48L2Rpdj4yLiBvciB3ZSBjYW4gdXNlIGEgc2ltcGxlIDxn
IGNsYXNzPSJncl8gZ3JfMTQyMCBnci1hbGVydCBncl9zcGVsbCB1bmRlZmluZWQgQ29udGV4dHVh
bFNwZWxsaW5nIGlucy1kZWwgbXVsdGlSZXBsYWNlIiBpZD0iMTQyMCIgZGF0YS1nci1pZD0iMTQy
MCI+a25uPC9nPiB3aGVyZSBrIGlzIHRoZSBudW1iZXIgb2YgcG9zc2libGUgRVBTRyBjb2RlIGFu
ZCB0aGUgZGltZW5zaW9uIG9mIHRoZSBmZWF0dXJlIHZlY3RvciBpcyB0aGUgbnVtYmVyIG9mIHBv
c3NpYmxlIGF0dHJpYnV0ZXMuIHdlIG5lZWQgdG8gdGhlIGZpbmQgYSB2YWxpZCBhbmQgcHJvbWlz
aW5nIHdlaWdodCBmdW5jdGlvbikuPGRpdj48YnI+PC9kaXY+PGRpdj4zLCBXZSBjYW4gdXNlIG11
bHRpLWNsYXNzIFNWTS48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PjQuIGFueSBvdGhlciBzdWdn
ZXN0aW9uIGZyb20gdGhlIGNvbW11bml0eS48YnI+PGJyPjwvZGl2PjxkaXY+SSBhbSB0aGlua2lu
ZyBvZiBhY3R1YWxseSBpbXBsZW1lbnRpbmcgYWxsIHRoZXNlIDxnIGNsYXNzPSJncl8gZ3JfMTY4
OCBnci1hbGVydCBncl9zcGVsbCB1bmRlZmluZWQgQ29udGV4dHVhbFNwZWxsaW5nIGlucy1kZWwg
bXVsdGlSZXBsYWNlIiBpZD0iMTY4OCIgZGF0YS1nci1pZD0iMTY4OCI+YWxnbzwvZz4obWF5IGFk
ZCA8ZyBjbGFzcz0iZ3JfIGdyXzE3MDIgZ3ItYWxlcnQgZ3Jfc3BlbGwgdW5kZWZpbmVkIENvbnRl
eHR1YWxTcGVsbGluZyBpbnMtZGVsIG11bHRpUmVwbGFjZSIgaWQ9IjE3MDIiIGRhdGEtZ3ItaWQ9
IjE3MDIiPmFsZ288L2c+IGluIGZ1dHVyZSBkZXBlbmRpbmcgdXBvbiB0aGUgc3VnZ2VzdGlvbikg
Jm5ic3A7YW5kIHNlbGVjdCB0aGUgPGcgY2xhc3M9ImdyXyBncl8xODAyIGdyLWFsZXJ0IGdyX3Nw
ZWxsIHVuZGVmaW5lZCBDb250ZXh0dWFsU3BlbGxpbmcgaW5zLWRlbCBtdWx0aVJlcGxhY2UiIGlk
PSIxODAyIiBkYXRhLWdyLWlkPSIxODAyIj5hbGdvPC9nPiB3aGljaCBnaXZlcyB0aGUgYmVzdCBw
ZXJmb3JtYW5jZSBhbW9uZyBhbGwgb2YgdGhlbS48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2Pjxi
cj48L2Rpdj48ZGl2PlBsZWFzZSBwcm92aWRlIG1lIGZlZWRiYWNrIG9uIG15IHByb3Bvc2FsIGFu
ZCBzdWdnZXN0aW9uIGlmIEkgY2FuIGFkZC9jaGFuZ2UgYW55dGhpbmcuJm5ic3A7PGJyPkFuZCBz
aW5jZSB2ZXJ5IGxlc3MgdGltZSBpcyBsZWZ0IDxnIGNsYXNzPSJncl8gZ3JfMjA0MyBnci1hbGVy
dCBncl9ncmFtbSB1bmRlZmluZWQgR3JhbW1hciBtdWx0aVJlcGxhY2UiIGlkPSIyMDQzIiBkYXRh
LWdyLWlkPSIyMDQzIj5pbjwvZz4gdGhlIGRlYWRsaW5lLCBJIHdvdWxkIGxpa2UgdG8gY29udmVy
dCBpdCBpbnRvIHByb3Bvc2FsIEFTQVAgd2l0aCB5b3VyIGhlbHAuPC9kaXY+PGRpdj48YnI+PC9k
aXY+PGRpdj5SZWdhcmRzLDwvZGl2PjxkaXY+U2FydGhhazwvZGl2Pg==" style="min-height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0"></div></div><div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 22, 2016 at 8:09 PM, sarthak agarwal <span dir="ltr"><<a href="mailto:sarthak0415@gmail.com" target="_blank">sarthak0415@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><span><p style="margin:0px 0px 1.2em!important">Hello Dmitry,<br></p><p style="margin:0px 0px 1.2em!important">I have made all the necessary changes and now the code is working as expected ie If we provide no dbname, it will take the username by default.<br></p></span><p style="margin:0px 0px 1.2em!important">Here is the <a href="https://github.com/OSGeo/gdal/commit/417f4ed2642c56729f93fdb959e2bf1b9f1fdfb1" target="_blank">https://github.com/OSGeo/gdal/commit/417f4ed2642c56729f93fdb959e2bf1b9f1fdfb1</a> to the fix.<br></p><p style="margin:0px 0px 1.2em!important">Regards,<br>Sarthak</p>
<div title="MDH:PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyBtYXJnaW46IDBweCAwcHggMS4yZW0gIWltcG9y
dGFudDsiPkhlbGxvIERtaXRyeSw8L3A+PHAgc3R5bGU9ImZvbnQtc2l6ZTogMTIuOHB4OyBtYXJn
aW46IDBweCAwcHggMS4yZW0gIWltcG9ydGFudDsiPkkgaGF2ZSBtYWRlIGFsbCB0aGUgbmVjZXNz
YXJ5IGNoYW5nZXMgYW5kIG5vdyB0aGUgY29kZSBpcyB3b3JraW5nIGFzIGV4cGVjdGVkIGllIElm
IHdlIHByb3ZpZGUgbm8gPGcgY2xhc3M9ImdyXyBncl85IGdyLWFsZXJ0IGdyX3NwZWxsIHVuZGVm
aW5lZCBDb250ZXh0dWFsU3BlbGxpbmcgaW5zLWRlbCBtdWx0aVJlcGxhY2UiIGlkPSI5IiBkYXRh
LWdyLWlkPSI5Ij5kYm5hbWU8L2c+LCBpdCB3aWxsIHRha2UgdGhlIHVzZXJuYW1lIGJ5IGRlZmF1
bHQuPC9wPjxwIHN0eWxlPSJmb250LXNpemU6IDEyLjhweDsgbWFyZ2luOiAwcHggMHB4IDEuMmVt
ICFpbXBvcnRhbnQ7Ij5IZXJlIGlzIHRoZSZuYnNwOzxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNv
bS9PU0dlby9nZGFsL2NvbW1pdC80MTdmNGVkMjY0MmM1NjcyOWY5M2ZkYjk1OWUyYmYxYjlmMWZk
ZmIxIiB0YXJnZXQ9Il9ibGFuayI+bGluazwvYT4mbmJzcDt0byB0aGUgZml4LjwvcD48cCBzdHls
ZT0iZm9udC1zaXplOiAxMi44cHg7IG1hcmdpbjogMHB4IDBweCAxLjJlbSAhaW1wb3J0YW50OyI+
UmVnYXJkcyw8YnI+U2FydGhhazwvcD48ZGl2IGNsYXNzPSIiIHN0eWxlPSJmb250LXNpemU6IDEy
LjhweDsiPjwvZGl2Pg==" style="min-height:0px;width:0px;max-height:0px;max-width:0px;overflow:hidden;font-size:0em;padding:0px;margin:0px"></div></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 22, 2016 at 1:49 AM, Dmitry Baryshnikov <span dir="ltr"><<a href="mailto:bishop.dev@gmail.com" target="_blank">bishop.dev@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
Hi Sarthak,<br>
<br>
The problem is here
<a href="https://github.com/sarthak-0415/gdal/blob/trunk/gdal/frmts/postgisraster/postgisrasterdriver.cpp#L78" target="_blank">https://github.com/sarthak-0415/gdal/blob/trunk/gdal/frmts/postgisraster/postgisrasterdriver.cpp#L78</a><br>
<br>
Your code produce situation there pszDbnameIn can be NULL. Before
your fixes, that cannot be.<br>
So the line "CPLString osKey = pszDbnameIn;" produces crash.<br>
<br>
Don't wait for anybody with proposal. The new GSoC site is right
place to discuss proposals. <br>
<pre cols="72">Best regards,
Dmitry</pre>
<div>20.03.2016 19:41, sarthak agarwal
пишет:<br>
</div><div><div>
<blockquote type="cite">
<div dir="ltr">
<div>
<p style="margin:0px 0px 1.2em!important">Hello to all,</p>
<p style="margin:0px 0px 1.2em!important">Sorry for taking too
long (exams and travelling).</p>
<p style="margin:0px 0px 1.2em!important">After running few
tests -</p>
<ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">In my opinion, in Both the
codes the error is not in <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">GetConnectionInfo</code>
function. if you replace <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">return true</code>
with <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">return false</code>
at the last of the function it won’t fail in both cases.</li>
<li style="margin:0.5em 0px">If you run <a href="https://github.com/sarthak-0415/gdal/commit/3e037a84e3392841cda1b4b68d75d205118caa9d" target="_blank">this</a>
and <a href="https://github.com/sarthak-0415/gdal/commit/26e9383645b177c9e4d2ca8798a3b662901f3b63" target="_blank">this</a>
code, it won’t give you the error, the value passed here
are correct (NULL if that’s the case with <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">*ppszDbname</code>,
the error is somewhere else and I am not able to debug
it.)</li>
<li style="margin:0.5em 0px">When I am trying to configure
the gdal with <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">enable-debug</code>
options following error comes
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248);white-space:pre-wrap;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;overflow-x:auto;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248)">make[<span style="color:rgb(0,128,128)">1</span>]: *** [gdalserver] Error <span style="color:rgb(0,128,128)">1</span>
make[<span style="color:rgb(0,128,128)">1</span>]: *** Waiting <span style="color:rgb(51,51,51);font-weight:bold">for</span> unfinished jobs....
/home/sarthak/gsoc2016/repos/gdal/gdal/.libs/libgdal.so: undefined reference to `CPLMutexHolder::CPLMutexHolder(_CPLMutex**, double, char const*, int, int)<span style="color:rgb(221,17,68)">'
collect2: error: ld returned 1 exit status</span>
</code></pre>
</li>
</ul>
<p style="margin:0px 0px 1.2em!important">My current config
options are<br>
<code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">./configure --prefix=/home/sarthak/gsoc2016/repos/gdal/install/ --with-python=yes -enabl-debug=yes</code></p>
<p style="margin:0px 0px 1.2em!important">the following error
is for <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">gdalServer</code>
<code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">gdalInfo</code>
<code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">gdal_translate</code>
and <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">gdaladdo</code>.
All are having the same problem with <code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248)">undefined reference to `CPLMutexHolder::CPLMutexHolder(_CPLMutex**, double, char const*, int, int)'</code></p>
<p style="margin:0px 0px 1.2em!important">Please review the
code and send me the feedback.<br>
Also, I would like to continue with the bug along with my
GSoC proposal. For which I may have some ideas and would
like to discuss the same with you.. can we talk on IRC since
the deadline is in 5 days only.</p>
<p style="margin:0px 0px 1.2em!important">Regards,<br>
Sarthak</p>
<p style="margin:0px 0px 1.2em!important">On Wed, Mar 16, 2016
at 4:51 AM, Dmitry Baryshnikov <<a href="mailto:bishop.dev@gmail.com" target="_blank">bishop.dev@gmail.com</a>>
wrote:</p>
<div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF"><span> Hi Sarthak,<br>
<br>
The first version is not working (do you test it?): <a href="https://github.com/sarthak-0415/gdal/commit/36344cc26f23202cb289390322c1d295697136bd#diff-31df0e62d00ca09f9f11ad2f29e94b54R2541" target="_blank"></a><a href="https://github.com/sarthak-0415/gdal/commit/36344cc26f23202cb289390322c1d295697136bd#diff-31df0e62d00ca09f9f11ad2f29e94b54R2541" target="_blank">https://github.com/sarthak-0415/gdal/commit/36344cc26f23202cb289390322c1d295697136bd#diff-31df0e62d00ca09f9f11ad2f29e94b54R2541</a><br>
Here you try to get array value with index -1. You
need to set <span>ppszDbname = NULL no DB name
present in input parameters.<br>
<br>
The second variant is not working too:<br>
>>> ds = gdal.Open('PG:')<br>
terminate called after throwing an instance of
'std::logic_error'<br>
what(): basic_string::_M_construct null not valid<br>
<br>
In both cases there is a problem here: <a href="https://github.com/sarthak-0415/gdal/blob/6264d3fc52242fdce858547cc3a0312b04fd638b/gdal/frmts/postgisraster/postgisrasterdataset.cpp#L2743" target="_blank"></a><a href="https://github.com/sarthak-0415/gdal/blob/6264d3fc52242fdce858547cc3a0312b04fd638b/gdal/frmts/postgisraster/postgisrasterdataset.cpp#L2743" target="_blank">https://github.com/sarthak-0415/gdal/blob/6264d3fc52242fdce858547cc3a0312b04fd638b/gdal/frmts/postgisraster/postgisrasterdataset.cpp#L2743</a><br>
<br>
Also look there </span><span>ppszDbname is using,
as before modifications the </span><span>code
expect that ppszDbname cannot be NULL.<br>
</span>
<pre cols="72">Best regards,
Dmitry</pre>
<div>15.03.2016 13:13, sarthak agarwal пишет:<br>
</div>
</span>
<blockquote type="cite">
<div dir="ltr">
<div>
<p style="margin:0px 0px 1.2em!important">Hey
Dmitry ,<span><br>
As discussed on the IRC yesterday,<br>
I made the changes in the code.</span></p>
<span>
<p style="margin:0px 0px 1.2em!important">I
build two versions of the code</p>
<ol style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">
<p style="margin:0.5em 0px!important">The
changes suggested by you (to use the old
trunk code and remove the additional
checks) <a href="https://github.com/sarthak-0415/gdal/commit/36344cc26f23202cb289390322c1d295697136bd" target="_blank">link</a>
<a href="https://travis-ci.org/sarthak-0415/gdal/builds/116070409" target="_blank">travis</a>
.<br>
a. in this version the Dbname is left
empty if not provided by the user.</p>
</li>
<li style="margin:0.5em 0px">
<p style="margin:0.5em 0px!important">The
version in which we<br>
a. if the Dbname is provided by the user
then ppzDbname=Dbname.<br>
b. else use the psql env var PGDATABASE<br>
c. else use the Username as the database
name.<br>
d. if nothing is available then pass empty
string.<br>
e <a href="https://github.com/sarthak-0415/gdal/commit/6264d3fc52242fdce858547cc3a0312b04fd638b" target="_blank">link</a>
<a href="https://travis-ci.org/sarthak-0415/gdal/builds/116055868" target="_blank">travis</a></p>
</li>
</ol>
<p style="margin:0px 0px 1.2em!important">I
think both version should work</p>
<p style="margin:0px 0px 1.2em!important">Regards,<br>
Sarthak</p>
</span></div>
</div>
</blockquote>
</div>
</blockquote>
</div>
<div title="MDH:SGVsbG8gdG8gYWxsLDxkaXY+PGJyPjwvZGl2PjxkaXY+U29ycnkgZm9yIHRha2luZyB0b28gbG9uZyAoZXhhbXMgYW5kIHRyYXZlbGxpbmcpLjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+QWZ0ZXIg
cnVubmluZyBmZXcgdGVzdHMgLTwvZGl2PjxkaXY+KiBJbiBteSBvcGluaW9uLCBpbiBCb3RoIHRo
ZSBjb2RlcyB0aGUgZXJyb3IgaXMgbm90IGluIGBHZXRDb25uZWN0aW9uSW5mb2AgZnVuY3Rpb24u
IGlmIHlvdSByZXBsYWNlIGByZXR1cm4gdHJ1ZWAgd2l0aCBgcmV0dXJuIGZhbHNlYCBhdCB0aGUg
bGFzdCBvZiB0aGUgZnVuY3Rpb24gaXQgd29uJ3QgZmFpbCBpbiBib3RoIGNhc2VzLjwvZGl2Pjxk
aXY+KiBJZiB5b3UgcnVuIFt0aGlzXShodHRwczovL2dpdGh1Yi5jb20vc2FydGhhay0wNDE1L2dk
YWwvY29tbWl0LzNlMDM3YTg0ZTMzOTI4NDFjZGExYjRiNjhkNzVkMjA1MTE4Y2FhOWQpIGFuZCBb
dGhpc10oaHR0cHM6Ly9naXRodWIuY29tL3NhcnRoYWstMDQxNS9nZGFsL2NvbW1pdC8yNmU5Mzgz
NjQ1YjE3N2M5ZTRkMmNhODc5OGEzYjY2MjkwMWYzYjYzKSBjb2RlLCBpdCB3b24ndCBnaXZlIHlv
dSB0aGUgZXJyb3IsIHRoZSB2YWx1ZSBwYXNzZWQgaGVyZSBhcmUgY29ycmVjdCAoTlVMTCBpZiB0
aGF0J3MgdGhlIGNhc2Ugd2l0aCBgKnBwc3pEYm5hbWVgLCB0aGUgZXJyb3IgaXMgc29tZXdoZXJl
IGVsc2UgYW5kIEkgYW0gbm90IGFibGUgdG8gZGVidWcgaXQuKTwvZGl2PjxkaXY+KiBXaGVuIEkg
YW0gdHJ5aW5nIHRvIGNvbmZpZ3VyZSB0aGUgZ2RhbCB3aXRoIGBlbmFibGUtZGVidWdgIG9wdGlv
bnMgZm9sbG93aW5nIGVycm9yIGNvbWVzJm5ic3A7PC9kaXY+PGRpdj5gYGBiYXNoPC9kaXY+PGRp
dj48ZGl2Pm1ha2VbMV06ICoqKiBbZ2RhbHNlcnZlcl0gRXJyb3IgMTwvZGl2PjxkaXY+bWFrZVsx
XTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi48L2Rpdj48ZGl2Pi9ob21lL3Nh
cnRoYWsvZ3NvYzIwMTYvcmVwb3MvZ2RhbC9nZGFsLy5saWJzL2xpYmdkYWwuc286IHVuZGVmaW5l
ZCByZWZlcmVuY2UgdG8gYENQTE11dGV4SG9sZGVyOjpDUExNdXRleEhvbGRlcihfQ1BMTXV0ZXgq
KiwgZG91YmxlLCBjaGFyIGNvbnN0KiwgaW50LCBpbnQpJzwvZGl2PjxkaXY+Y29sbGVjdDI6IGVy
cm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzPC9kaXY+PGRpdj5gYGA8L2Rpdj48L2Rpdj48
ZGl2Pk15IGN1cnJlbnQgY29uZmlnIG9wdGlvbnMgYXJlJm5ic3A7PC9kaXY+PGRpdj5gYGAuL2Nv
bmZpZ3VyZSAtLXByZWZpeD0vaG9tZS9zYXJ0aGFrL2dzb2MyMDE2L3JlcG9zL2dkYWwvaW5zdGFs
bC8gLS13aXRoLXB5dGhvbj15ZXMgLWVuYWJsLWRlYnVnPXllc2BgYDwvZGl2PjxkaXY+PGJyPjwv
ZGl2PjxkaXYgY2xhc3M9ImdtYWlsX2V4dHJhIj50aGUgZm9sbG93aW5nIGVycm9yIGlzIGZvciBg
Z2RhbFNlcnZlcmAgYGdkYWxJbmZvYCBgZ2RhbF90cmFuc2xhdGVgIGFuZCBgPGcgY2xhc3M9Imdy
XyBncl85OSBnci1hbGVydCBncl9zcGVsbCB1bmRlZmluZWQgQ29udGV4dHVhbFNwZWxsaW5nIGlu
cy1kZWwgbXVsdGlSZXBsYWNlIiBpZD0iOTkiIGRhdGEtZ3ItaWQ9Ijk5Ij5nZGFsYWRkbzwvZz5g
LiBBbGwgYXJlIGhhdmluZyB0aGUgc2FtZSBwcm9ibGVtIHdpdGggPGcgY2xhc3M9ImdyXyBncl8x
MDAgZ3ItYWxlcnQgZ3Jfc3BlbGwgdW5kZWZpbmVkIENvbnRleHR1YWxTcGVsbGluZyBpbnMtZGVs
IG11bHRpUmVwbGFjZSIgaWQ9IjEwMCIgZGF0YS1nci1pZD0iMTAwIj5gYGB1bmRlZmluZWQ8L2c+
IHJlZmVyZW5jZSB0byA8ZyBjbGFzcz0iZ3JfIGdyXzk4IGdyLWFsZXJ0IGdyX2dyYW1tIHVuZGVm
aW5lZCBQdW5jdHVhdGlvbiByZXBsYWNlV2l0aG91dFNlcCIgaWQ9Ijk4IiBkYXRhLWdyLWlkPSI5
OCI+YENQTE11dGV4SG9sZGVyOjpDUExNdXRleEhvbGRlcihfQ1BMTXV0ZXgqKiw8L2c+IGRvdWJs
ZSwgY2hhciBjb25zdCosIGludCwgaW50KSdgYGA8L2Rpdj48ZGl2IGNsYXNzPSJnbWFpbF9leHRy
YSI+PGJyPjwvZGl2PjxkaXY+UGxlYXNlIHJldmlldyB0aGUgY29kZSBhbmQgc2VuZCBtZSB0aGUg
ZmVlZGJhY2suJm5ic3A7PC9kaXY+PGRpdj5BbHNvLCBJIHdvdWxkIGxpa2UgdG8gJm5ic3A7Y29u
dGludWUgd2l0aCB0aGUgYnVnIGFsb25nIHdpdGggbXkgR1NvQyBwcm9wb3NhbC4gRm9yIHdoaWNo
IEkgbWF5IGhhdmUgc29tZSBpZGVhcyBhbmQgd291bGQgbGlrZSB0byBkaXNjdXNzIHRoZSBzYW1l
IHdpdGggeW91Li4gY2FuIHdlIHRhbGsgb24gSVJDIHNpbmNlIHRoZSBkZWFkbGluZSBpcyBpbiA1
IGRheXMgb25seS48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlJlZ2FyZHMsPC9kaXY+PGRpdj5T
YXJ0aGFrPC9kaXY+PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxicj48ZGl2IGNsYXNzPSJnbWFp
bF9xdW90ZSI+T24gV2VkLCBNYXIgMTYsIDIwMTYgYXQgNDo1MSBBTSwgRG1pdHJ5IEJhcnlzaG5p
a292IDxzcGFuIGRpcj0ibHRyIj4mbHQ7PGEgaHJlZj0ibWFpbHRvOmJpc2hvcC5kZXZAZ21haWwu
Y29tIj5iaXNob3AuZGV2QGdtYWlsLmNvbTwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8YnI+PGJsb2Nr
cXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOiAwcHggMHB4IDBweCAwLjhl
eDsgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgYm9yZGVyLWxlZnQtY29sb3I6IHJnYigyMDQsIDIw
NCwgMjA0KTsgYm9yZGVyLWxlZnQtc3R5bGU6IHNvbGlkOyBwYWRkaW5nLWxlZnQ6IDFleDsiPgog
IAogICAgCiAgCiAgPGRpdiBiZ2NvbG9yPSIjRkZGRkZGIj48c3BhbiBjbGFzcz0iIj4KICAgIEhp
IFNhcnRoYWssPGJyPgogICAgPGJyPgogICAgVGhlIGZpcnN0IHZlcnNpb24gaXMgbm90IHdvcmtp
bmcgKGRvIHlvdSB0ZXN0IGl0Pyk6CiAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc2Fy
dGhhay0wNDE1L2dkYWwvY29tbWl0LzM2MzQ0Y2MyNmYyMzIwMmNiMjg5MzkwMzIyYzFkMjk1Njk3
MTM2YmQjZGlmZi0zMWRmMGU2MmQwMGNhMDlmOWYxMWFkMmYyOWU5NGI1NFIyNTQxIj5odHRwczov
L2dpdGh1Yi5jb20vc2FydGhhay08d2JyPjA0MTUvZ2RhbC9jb21taXQvPHdicj4zNjM0NGNjMjZm
MjMyMDJjYjI4OTM5MDMyMmMxZDI8d2JyPjk1Njk3MTM2YmQjZGlmZi08d2JyPjMxZGYwZTYyZDAw
Y2EwOWY5ZjExYWQyZjI5ZTk0Yjx3YnI+NTRSMjU0MTwvYT48YnI+CiAgICBIZXJlIHlvdSB0cnkg
dG8gZ2V0IGFycmF5IHZhbHVlIHdpdGggaW5kZXggLTEuIFlvdSBuZWVkIHRvIHNldCA8c3Bhbj5w
cHN6RGJuYW1lID0gTlVMTCBubyBEQiBuYW1lIHByZXNlbnQgaW4KICAgICAgaW5wdXQgcGFyYW1l
dGVycy48YnI+CiAgICAgIDxicj4KICAgICAgVGhlIHNlY29uZCB2YXJpYW50IGlzIG5vdCB3b3Jr
aW5nIHRvbzo8YnI+CiAgICAgICZndDsmZ3Q7Jmd0OyBkcyA9IGdkYWwuT3BlbignUEc6Jyk8YnI+
CiAgICAgIHRlcm1pbmF0ZSBjYWxsZWQgYWZ0ZXIgdGhyb3dpbmcgYW4gaW5zdGFuY2Ugb2YgJ3N0
ZDo6bG9naWNfZXJyb3InPGJyPgogICAgICAmbmJzcDsgd2hhdCgpOiZuYnNwOyBiYXNpY19zdHJp
bmc6Ol9NX2NvbnN0cnVjdCBudWxsIG5vdCB2YWxpZDxicj4KICAgICAgPGJyPgogICAgICBJbiBi
b3RoIGNhc2VzIHRoZXJlIGlzIGEgcHJvYmxlbSBoZXJlOgogICAgICA8YSBocmVmPSJodHRwczov
L2dpdGh1Yi5jb20vc2FydGhhay0wNDE1L2dkYWwvYmxvYi82MjY0ZDNmYzUyMjQyZmRjZTg1ODU0
N2NjM2EwMzEyYjA0ZmQ2MzhiL2dkYWwvZnJtdHMvcG9zdGdpc3Jhc3Rlci9wb3N0Z2lzcmFzdGVy
ZGF0YXNldC5jcHAjTDI3NDMiPmh0dHBzOi8vZ2l0aHViLmNvbS9zYXJ0aGFrLTx3YnI+MDQxNS9n
ZGFsL2Jsb2IvPHdicj42MjY0ZDNmYzUyMjQyZmRjZTg1ODU0N2NjM2EwMzE8d2JyPjJiMDRmZDYz
OGIvZ2RhbC9mcm10cy88d2JyPnBvc3RnaXNyYXN0ZXIvPHdicj5wb3N0Z2lzcmFzdGVyZGF0YXNl
dC5jcHAjTDI3NDM8L2E+PGJyPgogICAgICA8YnI+CiAgICAgIEFsc28gbG9vayB0aGVyZSA8L3Nw
YW4+PHNwYW4+cHBzekRibmFtZQogICAgICBpcyB1c2luZywgYXMgYmVmb3JlIG1vZGlmaWNhdGlv
bnMgdGhlIDwvc3Bhbj48c3Bhbj5jb2RlIGV4cGVjdCB0aGF0IHBwc3pEYm5hbWUgY2Fubm90IGJl
CiAgICAgIE5VTEwuPGJyPgogICAgPC9zcGFuPgogICAgPHByZSBjb2xzPSI3MiI+QmVzdCByZWdh
cmRzLAogICAgRG1pdHJ5PC9wcmU+CiAgICA8ZGl2PjE1LjAzLjIwMTYgMTM6MTMsIHNhcnRoYWsg
YWdhcndhbAogICAgICDQv9C40YjQtdGCOjxicj4KICAgIDwvZGl2PgogICAgPC9zcGFuPjxibG9j
a3F1b3RlIHR5cGU9ImNpdGUiPgogICAgICA8ZGl2IGRpcj0ibHRyIj4KICAgICAgICA8ZGl2Pgog
ICAgICAgICAgPHAgc3R5bGU9Im1hcmdpbjogMHB4IDBweCAxLjJlbSAhaW1wb3J0YW50OyI+SGV5
IERtaXRyeSAsPHNwYW4gY2xhc3M9IiI+PGJyPgogICAgICAgICAgICBBcyBkaXNjdXNzZWQgb24g
dGhlIElSQyB5ZXN0ZXJkYXksPGJyPgogICAgICAgICAgICBJIG1hZGUgdGhlIGNoYW5nZXMgaW4g
dGhlIGNvZGUuPC9zcGFuPjwvcD48c3BhbiBjbGFzcz0iIj4KICAgICAgICAgIDxwIHN0eWxlPSJt
YXJnaW46IDBweCAwcHggMS4yZW0gIWltcG9ydGFudDsiPkkgYnVpbGQgdHdvIHZlcnNpb25zCiAg
ICAgICAgICAgIG9mIHRoZSBjb2RlPC9wPgogICAgICAgICAgPG9sIHN0eWxlPSJtYXJnaW46IDEu
MmVtIDBweDsgcGFkZGluZy1sZWZ0OiAyZW07Ij4KICAgICAgICAgICAgPGxpIHN0eWxlPSJtYXJn
aW46IDAuNWVtIDBweDsiPgogICAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW46IDAuNWVtIDBw
eCAhaW1wb3J0YW50OyI+VGhlIGNoYW5nZXMgc3VnZ2VzdGVkIGJ5IHlvdSAodG8gdXNlIHRoZQog
ICAgICAgICAgICAgICAgb2xkIHRydW5rIGNvZGUgYW5kIHJlbW92ZSB0aGUgYWRkaXRpb25hbCBj
aGVja3MpIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9zYXJ0aGFrLTA0MTUvZ2RhbC9jb21t
aXQvMzYzNDRjYzI2ZjIzMjAyY2IyODkzOTAzMjJjMWQyOTU2OTcxMzZiZCI+bGluazwvYT4KICAg
ICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vdHJhdmlzLWNpLm9yZy9zYXJ0aGFrLTA0MTUv
Z2RhbC9idWlsZHMvMTE2MDcwNDA5Ij50cmF2aXM8L2E+CiAgICAgICAgICAgICAgICAuPGJyPgog
ICAgICAgICAgICAgICAgYS4gaW4gdGhpcyB2ZXJzaW9uIHRoZSBEYm5hbWUgaXMgbGVmdCBlbXB0
eSBpZiBub3QKICAgICAgICAgICAgICAgIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLjwvcD4KICAgICAg
ICAgICAgPC9saT4KICAgICAgICAgICAgPGxpIHN0eWxlPSJtYXJnaW46IDAuNWVtIDBweDsiPgog
ICAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW46IDAuNWVtIDBweCAhaW1wb3J0YW50OyI+VGhl
IHZlcnNpb24gaW4gd2hpY2ggd2U8YnI+CiAgICAgICAgICAgICAgICBhLiBpZiB0aGUgRGJuYW1l
IGlzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIHRoZW4KICAgICAgICAgICAgICAgIHBwekRibmFtZT1E
Ym5hbWUuPGJyPgogICAgICAgICAgICAgICAgYi4gZWxzZSB1c2UgdGhlIHBzcWwgZW52IHZhciBQ
R0RBVEFCQVNFPGJyPgogICAgICAgICAgICAgICAgYy4gZWxzZSB1c2UgdGhlIFVzZXJuYW1lIGFz
IHRoZSBkYXRhYmFzZSBuYW1lLjxicj4KICAgICAgICAgICAgICAgIGQuIGlmIG5vdGhpbmcgaXMg
YXZhaWxhYmxlIHRoZW4gcGFzcyBlbXB0eSBzdHJpbmcuPGJyPgogICAgICAgICAgICAgICAgZSA8
YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vc2FydGhhay0wNDE1L2dkYWwvY29tbWl0LzYyNjRk
M2ZjNTIyNDJmZGNlODU4NTQ3Y2MzYTAzMTJiMDRmZDYzOGIiPmxpbms8L2E+CiAgICAgICAgICAg
ICAgICA8YSBocmVmPSJodHRwczovL3RyYXZpcy1jaS5vcmcvc2FydGhhay0wNDE1L2dkYWwvYnVp
bGRzLzExNjA1NTg2OCI+dHJhdmlzPC9hPjwvcD4KICAgICAgICAgICAgPC9saT4KICAgICAgICAg
IDwvb2w+CiAgICAgICAgICA8cCBzdHlsZT0ibWFyZ2luOiAwcHggMHB4IDEuMmVtICFpbXBvcnRh
bnQ7Ij5JIHRoaW5rIGJvdGggdmVyc2lvbgogICAgICAgICAgICBzaG91bGQgd29yazwvcD4KICAg
ICAgICAgIDxwIHN0eWxlPSJtYXJnaW46IDBweCAwcHggMS4yZW0gIWltcG9ydGFudDsiPlJlZ2Fy
ZHMsPGJyPgogICAgICAgICAgICBTYXJ0aGFrPC9wPgogICAgICAgIDwvc3Bhbj48L2Rpdj4KICAg
ICAgPC9kaXY+CiAgICA8L2Jsb2NrcXVvdGU+CiAgPC9kaXY+Cgo8L2Jsb2NrcXVvdGU+PC9kaXY+
PGJyPjwvZGl2Pg==" style="min-height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0"></div>
</div>
</div>
</blockquote>
<br>
</div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>