Mercurial > hg > ismi-richfaces
annotate src/main/webapp/imageServer/displayDigi.jsp @ 214:02bdc92bd594
try to update IIIF server URL to Medeniyet.
| author | casties |
|---|---|
| date | Mon, 10 Jan 2022 18:07:15 +0100 |
| parents | 964846688a95 |
| children | 93d33f138c9e |
| rev | line source |
|---|---|
| 7 | 1 <%@ page contentType="text/html; charset=UTF-8" %> |
| 2 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> | |
| 3 <%@page import="org.mpi.openmind.repository.bo.Entity"%> | |
| 4 <%@page import="de.mpiwg.itgroup.diva.jsp.JSPDigitalization"%> | |
| 5 | |
| 6 <html> | |
| 7 <head> | |
| 8 <title>ismi - image server</title> | |
| 9 | |
| 10 | |
| 11 <link href="resources/css/bootstrap.css" type="text/css" rel="stylesheet" /> | |
| 12 <link href="resources/css/bootstrap-responsive.min.css" type="text/css" rel="stylesheet"> | |
| 13 <link href="resources/css/style.css" type="text/css" rel="stylesheet"> | |
| 14 <link href="resources/css/diva.min.css" type="text/css" rel="stylesheet" /> | |
| 15 <link href="resources/css/diva4ismi.css" type="text/css" rel="stylesheet" /> | |
| 16 | |
| 17 <script type="text/javascript" src="resources/js/jquery.min.js"></script> | |
| 203 | 18 <script type="text/javascript" src="resources/js/diva.js"></script> |
|
204
964846688a95
imageServer view works now with Diva6 and SimpleAuth plugin.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
203
diff
changeset
|
19 <script type="text/javascript" src="resources/js/plugins/simple-auth.js"></script> |
| 7 | 20 <script type="text/javascript" src="resources/js/bootstrap.min.js"></script> |
| 21 <script type="text/javascript" src="resources/js/typeahead.js"></script> | |
| 22 <script type="text/javascript" src="resources/js/diva4ismi.js"></script> | |
| 23 | |
| 24 <jsp:useBean id="digiBean" class="de.mpiwg.itgroup.diva.jsp.JSPDigitalization" scope="session" /> | |
| 25 <jsp:setProperty name="digiBean" property="request" value="${pageContext.request}" /> | |
| 26 <jsp:setProperty name="digiBean" property="response" value="${pageContext.response}" /> | |
| 27 | |
| 28 <%digiBean.init();%> | |
| 29 <% if(!digiBean.hasLogin()){ %> | |
| 30 <jsp:forward page="../imageServer/displayDigiList.xhtml?login=true" /> | |
| 31 <% } %> | |
| 32 | |
| 33 <script type="text/javascript"> | |
| 34 $(document).ready(function () { | |
| 35 | |
| 36 $("#witness-edit").on('click', '.update-witness', function(ev){ | |
| 37 | |
| 38 var witnessId = $(this).data('witness'); | |
| 39 | |
| 40 var startPageInput = $( "#input-start-page-"+witnessId ); | |
| 41 var endPageInput = $( "#input-end-page-"+witnessId ); | |
| 42 var digiIdInput = $("#digi_id"); | |
| 43 | |
| 44 var data = {}; | |
| 45 data["digi_id"] = digiIdInput[0].value; | |
| 46 | |
| 47 data["witness"] = {}; | |
| 48 data["witness"]["id"] = "" + witnessId; | |
| 49 data["witness"]["start_page"] = startPageInput[0].value; | |
| 50 data["witness"]["end_page"] = endPageInput[0].value; | |
| 51 | |
| 52 var witnessLink = $("#witness-link-" + witnessId); | |
| 53 witnessLink.data('start', startPageInput[0].value); | |
| 54 | |
| 55 $.ajax( | |
|
187
be6bc580b137
changed "update" method for witness page number in displayDigi.jsp to use POST. changed receiving method in RestWitness.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
155
diff
changeset
|
56 divaGlobal.rest_url + "/rest/witness/update", { |
|
be6bc580b137
changed "update" method for witness page number in displayDigi.jsp to use POST. changed receiving method in RestWitness.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
155
diff
changeset
|
57 type: 'POST', |
| 7 | 58 contentType: "application/json", |
|
187
be6bc580b137
changed "update" method for witness page number in displayDigi.jsp to use POST. changed receiving method in RestWitness.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
155
diff
changeset
|
59 data: JSON.stringify(data), |
| 7 | 60 success: function(data, textStatus, jqXHR){ |
| 61 var state = data["state"]; | |
| 62 if(state == "ok"){ | |
| 63 alert('Executed successfully'); | |
| 64 }else{ | |
| 65 alert(data["message"]); | |
| 66 } | |
| 67 }, | |
| 68 error: function(jqXHR, textStatus, errorThrown){ | |
| 69 alert('Error: ' + textStatus); | |
| 70 } | |
| 71 }); | |
| 72 | |
| 73 | |
| 74 }); | |
| 75 | |
| 76 /************************************************/ | |
| 77 | |
| 78 function getURLParams() | |
| 79 { | |
| 80 var urlParams = {}, | |
| 81 match, | |
| 82 pl = /\+/g, // Regex for replacing addition symbol with a space | |
| 83 search = /([^&=]+)=?([^&]*)/g, | |
| 84 decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); }, | |
| 85 query = window.location.search.substring(1); | |
| 86 while (match = search.exec(query)) | |
| 87 { | |
| 88 urlParams[decode(match[1])] = decode(match[2]); | |
| 89 } | |
| 90 | |
| 91 return urlParams; | |
| 92 } | |
| 93 | |
| 94 | |
| 95 $('#page-jump').on('keypress', function(ev) | |
| 96 { | |
| 97 if (ev.which == '13') | |
| 98 { | |
|
204
964846688a95
imageServer view works now with Diva6 and SimpleAuth plugin.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
203
diff
changeset
|
99 var dv = window.divaInstance; |
|
964846688a95
imageServer view works now with Diva6 and SimpleAuth plugin.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
203
diff
changeset
|
100 var value = parseInt($(this).val(), 10)-1; |
|
964846688a95
imageServer view works now with Diva6 and SimpleAuth plugin.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
203
diff
changeset
|
101 var success = dv.gotoPageByIndex(value, 'center', 'top'); |
|
964846688a95
imageServer view works now with Diva6 and SimpleAuth plugin.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
203
diff
changeset
|
102 //success = true; // diva6 does not return anything |
| 7 | 103 |
| 104 if (!success) | |
| 105 { | |
| 106 if (!$('#page-jump-group').hasClass('error')) | |
| 107 { | |
| 108 $('#page-jump-group').addClass('error'); | |
| 109 $('#page-jump-controls').append('<span id="jump-error-help" class="help-inline">The page you specified is not valid.</span>'); | |
| 110 } | |
| 111 } | |
| 112 else | |
| 113 { | |
| 114 if ($('#page-jump-group').hasClass('error')) | |
| 115 { | |
| 116 $('#page-jump-group').removeClass('error'); | |
| 117 $('#jump-error-help').remove(); | |
| 118 } | |
| 119 } | |
| 120 | |
| 121 } | |
| 122 }); | |
| 123 | |
| 124 $('.go-to-witness-link').on('click', function(ev) { | |
|
204
964846688a95
imageServer view works now with Diva6 and SimpleAuth plugin.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
203
diff
changeset
|
125 var dv = window.divaInstance; |
| 7 | 126 var start_page = $(this).data('start'); |
| 127 if(start_page){ | |
|
204
964846688a95
imageServer view works now with Diva6 and SimpleAuth plugin.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
203
diff
changeset
|
128 dv.gotoPageByIndex(start_page-1); |
| 7 | 129 ev.preventDefault(); |
| 130 }else{ | |
| 131 alert("No page assigned to this witness."); | |
| 132 } | |
| 133 | |
| 134 }); | |
| 135 | |
| 136 function modifyWitness(witness_id, key, value, successCallback, caller) { | |
| 137 var csrf = $("[name=csrfmiddlewaretoken]").val(); | |
| 138 var witnessURL = "/witness/" + witness_id; | |
| 139 var data = {}; | |
| 140 data[key] = value; | |
| 141 | |
| 142 $.ajax(witnessURL, { | |
| 143 type: 'PATCH', | |
| 144 headers: { | |
| 145 'X-CSRFToken': csrf | |
| 146 }, | |
| 147 data: JSON.stringify(data), | |
| 148 contentType: "application/json", | |
| 149 success: function(data, status, xhr) | |
| 150 { | |
| 151 // we'll need to operate on the button, so pass it back... | |
| 152 successCallback(data, caller); | |
| 153 } | |
| 154 }); | |
| 155 } | |
| 156 | |
| 203 | 157 window.divaInstance = new Diva('diva-wrapper', |
| 7 | 158 { |
| 214 | 159 objectData: "https://ismi.medeniyet.edu.tr/iiif/manifests/<%=digiBean.getDigiLabel()%>.json", |
|
204
964846688a95
imageServer view works now with Diva6 and SimpleAuth plugin.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
203
diff
changeset
|
160 plugins: [Diva.SimpleAuthPlugin], |
|
964846688a95
imageServer view works now with Diva6 and SimpleAuth plugin.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
203
diff
changeset
|
161 simpleAuthTokenUrl: divaGlobal.auth_token_url, |
|
964846688a95
imageServer view works now with Diva6 and SimpleAuth plugin.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
203
diff
changeset
|
162 simpleAuthLoginUrl: divaGlobal.auth_login_url, |
|
964846688a95
imageServer view works now with Diva6 and SimpleAuth plugin.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
203
diff
changeset
|
163 enableAutoTitle: false, |
| 7 | 164 enableGotoPage: false, |
|
204
964846688a95
imageServer view works now with Diva6 and SimpleAuth plugin.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
203
diff
changeset
|
165 zoomLevel: 1 |
| 7 | 166 }); |
| 167 }); | |
| 168 | |
| 169 | |
| 170 </script> | |
| 171 </head> | |
| 172 | |
| 173 <body bgcolor=white> | |
| 174 | |
| 175 <jsp:include page="header.jsp" /> | |
| 42 | 176 |
| 177 <form method="GET" action='https://images.rasi.mcgill.ca/pdfs/${digiBean.getDigiLabel()}.pdf'> | |
| 178 <button type="submit" style="font-size: 12; float: right; width: 100px; margin-right: 33px; margin-top: -10px;">Download PDF</button> | |
| 179 </form> | |
| 180 | |
| 7 | 181 <div class="custom-container"> |
| 182 | |
| 183 <div class="row-fluid"> | |
|
30
672301480990
Fixed: Layout issues and discrepancies on "public codices" + "image server" pages
arussell
parents:
7
diff
changeset
|
184 <div id="attributesPanel" class="span4 page" style="min-height: 700px;"> |
|
672301480990
Fixed: Layout issues and discrepancies on "public codices" + "image server" pages
arussell
parents:
7
diff
changeset
|
185 <a class="ismi-fullscreen-icon" href="#" data-in-fullscreen-mode="true"></a> |
|
672301480990
Fixed: Layout issues and discrepancies on "public codices" + "image server" pages
arussell
parents:
7
diff
changeset
|
186 |
|
34
9087a4623a08
Temporary Fix: Minor layout issues with info box on left of codex pages.
arussell
parents:
30
diff
changeset
|
187 <div class="attPanel" style="height: 700px; overflow: auto;"> |
| 7 | 188 |
|
30
672301480990
Fixed: Layout issues and discrepancies on "public codices" + "image server" pages
arussell
parents:
7
diff
changeset
|
189 <input type='hidden' name='csrfmiddlewaretoken' value='psDBHsF5a1mttLSKeUgoUUVN3HL6f8Re' /> |
| 7 | 190 |
| 191 <c:if test="${digiBean.getDigi() != null}"> | |
| 192 | |
| 193 <input type="hidden" id="digi_id" value="${digiBean.getDigi().getId()}"> | |
| 194 | |
| 195 <div class="divaBackgroud"> | |
| 196 | |
| 197 <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> | |
| 198 | |
| 199 <h4><%=digiBean.getDigiLabel()%></h4> | |
| 200 | |
| 201 <c:if test="${digiBean.getWitnessList().size() > 0}"> | |
| 202 <span class="titlePanel">Titles in this Codex</span> | |
| 203 | |
| 204 <table class="table table-bordered table-condensed divaPanel"> | |
| 205 <thead> | |
| 206 <tr> | |
| 207 <th class="tableHead">Title</th> | |
| 208 <th class="tableHead">Folios</th> | |
| 209 </tr> | |
| 210 </thead> | |
| 211 <tbody> | |
| 212 <c:forEach var="witness" items="${digiBean.getWitnessList()}"> | |
| 213 <tr> | |
| 214 <td class="tdTitle"> | |
| 215 <c:out value="[${witness.id}] ${witness.title}"/> | |
| 216 <a target="_blank" | |
| 217 href="<c:out value='../search/displayTitle.xhtml?witnessId=${witness.id}#witnesses'/>"> | |
| 218 <img src="../resources/images/display_32.png" alt="Display witness" width="20" height="20" > | |
| 219 </a> | |
| 220 <a target="_blank" | |
| 221 href="<c:out value='../browse/entityDetails.xhtml?eid=${witness.id}'/>"> | |
| 222 <img src="../resources/images/network_32.png" alt="show witness" | |
| 223 width="20" height="20"> | |
| 224 </a> | |
| 225 <c:if test="${digiBean.canEdit()}"> | |
| 226 <a target="_blank" | |
| 227 href="<c:out value='../entry/createEntity.xhtml?eid=${witness.id}'/>"> | |
| 228 <img src="../resources/css/xp/css-images/edit.gif" alt="Edit codex" > | |
| 229 </a> | |
| 230 </c:if> | |
| 231 </td> | |
| 232 <td class="columnCentered"> | |
| 233 <a id="witness-link-${witness.id}" class="go-to-witness-link" data-start="${witness.startPage}" href="#"> | |
| 234 <c:out value="${witness.folios}"/> | |
| 235 </a> | |
| 236 </td> | |
| 237 </tr> | |
| 238 </c:forEach> | |
| 239 </tbody> | |
| 240 </table> | |
| 241 </c:if> | |
| 242 | |
| 243 <h4>Unknown titles in this Codex</h4> | |
| 244 <c:forEach var="witness" items="${digiBean.getUnknownList()}"> | |
| 245 <a id="witness-link-${witness.id}" class="go-to-witness-link" data-start="${witness.startPage}" href="#"> | |
| 246 <c:out value="${witness.folios}"/> | |
| 247 </a> | |
| 248 </c:forEach> | |
| 249 | |
| 250 <!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> | |
| 251 | |
| 252 <h4>Edit Folio/Image Correspondence</h4> | |
| 253 | |
| 254 | |
| 255 <div id="page-jump-group" class="control-group"> | |
| 256 <label for="page-jump" class="control-label">Go to page: </label> | |
| 257 <div class="controls" id="page-jump-controls"> | |
| 258 <input id="page-jump" type="text" class="form-control"> | |
| 259 </div> | |
| 260 </div> | |
| 261 | |
| 262 <p> | |
| 263 <strong>Current Page Index:</strong> <span id="current-page-idx"></span> | |
| 264 </p> | |
| 265 <p> | |
| 266 <strong>Page Filename:</strong> <span id="current-page-fn"></span> | |
| 267 </p> | |
| 268 | |
| 269 <table> | |
| 270 <tr> | |
| 271 <td> | |
| 272 <span class="titlePanel">[${digiBean.getDigi().getId()}] Digitalization</span> | |
| 273 <c:if test="${digiBean.canEdit()}"> | |
| 274 <a href="<c:out value='../entry/createEntity.xhtml?eid=${digiBean.getDigi().getId()}'/>"> | |
| 275 <img src="../resources/css/xp/css-images/edit.gif" alt="Edit digitalization" > | |
| 276 </a> | |
| 277 </c:if> | |
| 278 <table class="divaPanel"> | |
| 279 <tr> | |
| 280 <td class="tdTitle">Name</td> | |
| 281 <td class="tdContent"><c:out value="${digiBean.getName()}"></c:out> </td> | |
| 282 </tr> | |
| 283 <tr> | |
| 284 <td class="tdTitle">Number of files</td> | |
| 285 <td class="tdContent"><c:out value="${digiBean.getNumFiles()}"></c:out> </td> | |
| 286 </tr> | |
| 287 </table> | |
| 288 </td> | |
| 289 </tr> | |
| 290 <tr> | |
| 291 <td> | |
| 292 <c:if test="${digiBean.getCodex() == null}"> | |
| 293 <span class="titlePanel">Codex not yet assigned!</span> | |
| 294 </c:if> | |
| 295 | |
| 296 <c:if test="${digiBean.getCodex() != null}"> | |
| 297 <span class="titlePanel">[${digiBean.getCodex().getId()}] Codex</span> | |
| 298 <c:if test="${digiBean.canEdit()}"> | |
| 299 <a href="<c:out value='../entry/createEntity.xhtml?eid=${digiBean.getCodex().getId()}'/>"> | |
| 300 <img src="../resources/css/xp/css-images/edit.gif" alt="Edit codex" > | |
| 301 </a> | |
| 302 </c:if> | |
| 303 <table class="divaPanel"> | |
| 304 <tr> | |
| 305 <td class="tdTitle">Own Value</td> | |
| 306 <td class="tdTitle"><c:out value="${digiBean.getCodex().getOv()}"></c:out> </td> | |
| 307 </tr> | |
| 308 <tr> | |
| 309 <td class="tdTitle">Shelf Mark</td> | |
| 310 <td class="tdContent"><c:out value="${digiBean.getCodex().getIdentifier()}"></c:out> </td> | |
| 311 </tr> | |
| 312 <tr> | |
| 313 <td class="tdTitle">Collection</td> | |
| 314 <td class="tdContent"><c:out value="${digiBean.getCodex().getCollection()}"></c:out> </td> | |
| 315 </tr> | |
| 316 <tr> | |
| 317 <td class="tdTitle">Repository</td> | |
| 318 <td class="tdContent"><c:out value="${digiBean.getCodex().getRepository()}"></c:out> </td> | |
| 319 </tr> | |
| 320 <tr> | |
| 321 <td class="tdTitle">City</td> | |
| 322 <td class="tdContent"><c:out value="${digiBean.getCodex().getCity()}"></c:out> </td> | |
| 323 </tr> | |
| 324 <tr> | |
| 325 <td class="tdTitle">Country</td> | |
| 326 <td class="tdContent"><c:out value="${digiBean.getCodex().getCountry()}"></c:out> </td> | |
| 327 </tr> | |
| 328 </table> | |
| 329 | |
| 330 <c:if test="${digiBean.getWitnessList().size() > 0}"> | |
| 331 <span class="titlePanel">Witnesses in Codex</span> | |
| 332 <table id="witness-edit" class="table table-bordered table-condensed divaPanel"> | |
| 333 <thead> | |
| 334 <tr> | |
| 335 <th></th> | |
| 336 <th class="tableHead">Start</th> | |
| 337 <th class="tableHead">End</th> | |
| 338 </tr> | |
| 339 </thead> | |
| 340 <tbody> | |
| 341 <c:forEach var="witness" items="${digiBean.getWitnessList()}"> | |
| 342 <tr> | |
| 343 <td> | |
| 344 <table class="witnessTableDetail"> | |
| 345 <tr> | |
| 346 <td class="tdTitle"> | |
| 347 <c:out value="[${witness.id}]"/> | |
| 348 </td> | |
| 349 </tr> | |
| 350 <tr> | |
| 351 <td class="tdTitle"> | |
| 352 <c:out value="${witness.title}"/> | |
| 353 </td> | |
| 354 </tr> | |
| 355 <tr> | |
| 356 <td class="tdTitle"> | |
| 357 <c:out value="Folios: ${witness.folios}"/> | |
| 358 </td> | |
| 359 </tr> | |
| 360 <tr> | |
| 361 <td > | |
| 362 <a href="<c:out value='../browse/entityDetails.xhtml?eid=${witness.id}'/>"> | |
| 363 <img src="../resources/images/network_32.png" alt="show witness" | |
| 364 width="20" height="20"> | |
| 365 </a> | |
| 366 <c:if test="${digiBean.canEdit()}"> | |
| 367 <a href="<c:out value='../entry/createEntity.xhtml?eid=${witness.id}'/>"> | |
| 368 <img src="../resources/css/xp/css-images/edit.gif" alt="Edit codex" > | |
| 369 </a> | |
| 370 </c:if> | |
| 371 </td> | |
| 372 </tr> | |
| 373 </table> | |
| 374 </td> | |
| 375 | |
| 376 <td class="columnCentered"> | |
| 377 <input | |
| 378 id="input-start-page-<c:out value="${witness.id}"/>" | |
| 379 data-witness="<c:out value="${witness.id}"/>" | |
| 380 type="text" | |
| 381 readonly="readonly" | |
| 382 value="<c:out value="${witness.startPage}"/>" class="inputPageNumber"> | |
| 383 <c:if test="${digiBean.canEdit()}"> | |
| 384 <button class="set-start-set ismi-button" data-witness="<c:out value="${witness.id}"/>">Set Start</button> | |
| 385 <button class="set-start-reset ismi-button" data-witness="<c:out value="${witness.id}"/>">Reset Start</button> | |
| 386 </c:if> | |
| 387 </td> | |
| 388 | |
| 389 <td class="columnCentered"> | |
| 390 <input | |
| 391 id="input-end-page-<c:out value="${witness.id}"/>" | |
| 392 data-witness="<c:out value="${witness.id}"/>" | |
| 393 type="text" | |
| 394 readonly="readonly" | |
| 395 value="<c:out value="${witness.endPage}"/>" class="inputPageNumber"> | |
| 396 <c:if test="${digiBean.canEdit()}"> | |
|
187
be6bc580b137
changed "update" method for witness page number in displayDigi.jsp to use POST. changed receiving method in RestWitness.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
155
diff
changeset
|
397 <button class="set-end-set ismi-button" data-witness="<c:out value="${witness.id}"/>">Set End</button> |
|
be6bc580b137
changed "update" method for witness page number in displayDigi.jsp to use POST. changed receiving method in RestWitness.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents:
155
diff
changeset
|
398 <button class="set-end-reset ismi-button" data-witness="<c:out value="${witness.id}"/>">Reset End</button> |
| 7 | 399 </c:if> |
| 400 </td> | |
| 401 <c:if test="${digiBean.canEdit()}"> | |
| 402 <td class="columnCentered"> | |
| 403 <button class="update-witness ismi-button" data-witness="<c:out value="${witness.id}"/>">Update</button> | |
| 404 </td> | |
| 405 </c:if> | |
| 406 </tr> | |
| 407 </c:forEach> | |
| 408 </tbody> | |
| 409 </table> | |
| 410 </c:if> | |
| 411 | |
| 412 </c:if> | |
| 413 | |
| 414 </td> | |
| 415 </tr> | |
| 416 </table> | |
| 417 </div> | |
| 418 </c:if> | |
| 419 | |
| 420 | |
| 421 </div> | |
| 422 </div> | |
| 423 <div class="span8"> | |
| 424 <input type='hidden' name='csrfmiddlewaretoken' value='psDBHsF5a1mttLSKeUgoUUVN3HL6f8Re' /> | |
| 425 <div id="diva-wrapper"></div> | |
| 426 </div> | |
| 427 </div> | |
| 428 </div> | |
| 429 | |
| 430 | |
| 431 </body> | |
| 432 </html> |
