Amazon Web Services (AWS) – training and transcripts

2020: Amazon Web Services (AWS) – training and certifications.

source : http://geffrotin.com/yann/cv/education_management.php

macOS support essentials 10.14 Apple pro training series : supporting and troubleshooting macOS Mojave (FRENCH COMMENTARY)

« Un livre de qualité avec une capture d’écran utile. Ce livre est le livre officiel (de Adam Karneboge (Auteur), Arek Dreyer (Auteur) » pour ceux qui veulent être certifiés. Apple Certified Support Professional (ACSP) 10.14.

Vous pouvez apprendre à mettre à jour, mettre à niveau vers une nouvelle version de macOS ou réinstaller. Configurez macOS selon vos propres besoins. Peut-être, si vous êtes programmeur, utilisez l’interface de ligne de commande (CLI). Vous pouvez apprendre à gérer les comptes d’utilisateurs et leur mot de passe. En savoir plus sur le système de fichiers, FileVault (pour chiffrer le disque de démarrage sur votre Mac) et les autorisations. Apprenez à gérer Time Machine pour votre sauvegarde. Apprenez à installer des applications et à configurer votre réseau. Le livre compte près de 1000 pages et ça vaut le coup!

Il peut être acheté chez amazon au format Kindle (moins cher et plus utile) ou au format poche. Je préfère utiliser le Kindle Cloud Reader pendant que je lis.

macOS support essentials 10.14 Apple pro training series : supporting and troubleshooting macOS Mojave Review

About the book:

« Serious, well documented, technically oriented, graphically gorgeous, a quality book with usefull screenshot.” This is the official book (by Adam Karneboge (Author), Arek Dreyer (Author)) for those who want to be certified Apple Certified Support Professional (ACSP) 10.14.

You can learn to update, upgrade to a new version of macOS or reinstall. Configure macOS to your own needs. Maybe, if you are a programmer use the Command Line Interface (CLI). You can learn to manage users accounts and their password. Learn about file system, FileVault (to encrypt the startup disk on your Mac) and permisssions. Learn to manage the Time Machine for your backup. Learn to install applications and configure your network. The book in nearly 1000 pages long and it’s worth it !

It can by bought at amazon in kindle format (cheaper and more useful) or paperback format. I prefer the Kindle Cloud Reader to practice while I am reading.

About the author :

Arek Dreyer provide consulting for challenging customers about apple products since 2002.

https://www.linkedin.com/in/arekdreyer/

Adam Karneboge is in the Apple consulting business since he is certified in 2003. He has written publications about macOS and iOS.

About Apple Inc:

Apple Inc is a company based in Cupertino, California who develop hardware product such as iPhone, iPad and the Mac personal computer.

http://www.apple.com/

Where to buy :

https://smile.amazon.com/dp/B07MG57WTJ/ref=pe_386181_48772451_TE_M1DP

https://smile.amazon.co.uk/dp/B07MG57WTJ/ref=pe_386181_48772451_TE_M1DP

https://www.amazon.fr/dp/B07MG57WTJ/ref=pe_386181_48772451_TE_M1DP

Where to get help :

https://support.apple.com/

About me :

I read books to train and to master Apple technologies.

BOUTIQUE SIMPLE AMAZON EN PHP

http://geffrotin.fr/yann/amazon/Boutique Amazon de Yann

Cette boutique se base sur « ECS Simple Store » en PHP. La version 5 de PHP est utilisé. Cette application montre les interactions possible à partir de l’API ECS Simple Store.

http://developer.amazonwebservices.com/connect/entry.jspa?externalID=498&categoryID=14

Les détails comme le nom du produit, son image, son prix et son auteur apparaissent lors de recherches parmi des Livres, des DVD et de la musique mise en vente sur Amazon.com, Amazon.fr, Amazon.ca, Amazon.de, Amazon.co.jp, et Amazon.co.uk.

La création du caddie se fait après avoir mis un premier objet dans le caddie.

Pour ceux que ça interesse, le guide complet officiel fait 501 pages. Cette boutique simple n’a donc pas la vocation d’être exhaustive.

Pour ce qui est des notions à avoir pour comprendre cette source : XHTML, CSS, JavaScript.

Structure :
Le fichier index.php est le fichier principal. Toutes les pages sont compatibles XHTML 1.0 et CSS2.
Le fichier exemple.html est un backport statique pour le plaisir des yeux. Il peut être supprimé.
Le dossier ecs-php-demo contient la version de base qui ma servit à faire cette application. Il peut aussi être supprimé.

Version PHP :
Pour connaitre votre version de PHP : Faites un phpinfo(); dans un script PHP et lisez-le dans le navigateur.

Si vous avez une phrase du type :

Fatal error: Call to undefined function: simplexml_load_string() in c:\program files\easyphp1-8\www\amazon\index.php on line 208

en executant une recherche, c’est que vous avez la version 4 de PHP et qu’il ne lit pas le simplexml_load_string(). Vous devez impérativement passer en PHP 5. Pour changer de version : télécharger EasyPHP 2.0 beta1 (http://www.easyphp.org/telechargements.php3)

Amazon :

Pour utiliser cette boutique en tant que vendeur, il faut créer un compte Amazon Web Services et recopier l’ID en ligne 5 de index.php.

Une requête d’exemple :

remplacer [ID] par votre ID ex : 1EQ42KTCRF09ETUEBHG2

http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=%5BID%5D&Operation=ItemSearch&SearchIndex=Books&Title=Harry%20Potter&Version=2007-07-16

L’URL est constitué de paramètres définissant le service, la clé, le numéro de version, le type d’opération qui ne peuvent pas être modifié par le client. La seconde partie de ‘lURL peut être modifié. C’est la catégorie et les mots clés. Les valeurs renvoyés contiennent les mot-clés soit dans leur titre soit dans leur description.

Lexique :
L’ASIN (Amazon Standard Item Number) est un identifiant alphanumérique des objets en vente sur Amazon.

<?php

//passage de parametres dans les sous programme (à verifier)

$KEYID = « ID »; //Votre KEYID à gauche ici à la place du mien
$AssocTag = « YourAssociateTagHere »;

//la creation du caddie se fait après avoir mis un premier objet dans le caddie

if(isset($_GET[‘CartId’])) {
$CartId = $_GET[‘CartId’];
}else{
$CartId =  »; //création du cart
}

if(isset($_GET[‘HMAC’])) {
$HMAC = urlencode($_GET[‘HMAC’]);
}else{
$HMAC =  »;
}

if(isset($_GET[‘Keywords’])) {
$Keywords = $_GET[‘Keywords’];
}else{
$Keywords = «  »; //$Keywords = « a ».rand(10,36). » »;
}

if(isset($_GET[‘Action’])){
$Action = $_GET[‘Action’];
}else{
$Action = « Search »;
}

if(isset($_GET[‘SearchIndex’])){
$SearchIndex = $_GET[‘SearchIndex’];
}else{
$SearchIndex = « Books »;
}

echo « <?xml version=’1.1′ ?>

<!DOCTYPE html PUBLIC ‘-//W3C//DTD XHTML 1.0 Transitional//EN’
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd’&gt;
<html xml:lang=’fr’ lang=’fr’ xmlns=’http://www.w3.org/1999/xhtml’&gt;

<head>
<title>Une boutique simple Amazon</title>
<meta name=’author’ lang=’fr’ content=’Yann Geffrotin’/>
<meta http-equiv=’Content-Type’ content=’text/html; charset=iso-8859-1’/>

<style type=’text/css’>

.logo{
position: absolute;
left:-21px;
top:-15px;
padding-left:22px;
}

a img {
border: none;
}

.Haut{
top:-15px;
width:100%;
height:80px;
text-align:center;
color:#FFA500;
}

.recherche{
text-align:center;
background-color: #c8d7e3;
color:black;
}

.AfficheProduit{
width:880px;
overflow:auto;
margin:0px auto;
}

.BarreGauche{
position: fixed;
top:150px;
}

.bas{
width:100%;
background-color: #c8d7e3;
color:black;
}

</style>

</head>

<body> »;

echo »

<p class=’logo’>
<a href=’http:// &raquo;.$_SERVER[« HTTP_HOST »]. »/amazon/’>
<img id=’logo’ src=’images/amazon web services.gif’ alt=’Image du logo Amazon Web Services’ />
</a>
</p>
« ;

echo  »
<div class=’Haut’>
<h1>Boutique E-Commerce Simple</h1>
</div> »;

define(‘KEYID’,$KEYID);
define(‘AssocTag’,$AssocTag);

/* Rechercher MenuDeroulant MotsClé Go */

echo  »
<div class=’recherche’>
<form name=’SearchTerms’ action=’amazon.php5′ method=’get’>
<strong>Rechercher</strong>

<select name=’SearchIndex’>
<option value=’Books’>Livres</option>
<option value=’DVD’ « ;
if ($SearchIndex == « DVD »){
echo  » selected=’selected’ « ;
}
echo « >DVD</option>
<option value=’Music’ « ;
if ($SearchIndex == « Music »){
echo  » selected=’selected’ « ;
}
echo « >Musique</option>
</select>

<input type=’text’ id=’Keywords’ name=’Keywords’ size=’35’ value=’$Keywords’ />

<input type=’hidden’ name=’Action’ value=’Search’/>

<input type=’hidden’ name=’ItemPage’ value=’1’/>

<input type=’hidden’ name=’CartId’ value=’$CartId’/>

<input type=’hidden’ name=’HMAC’ value=’$HMAC’/>

<input type=’submit’ value=’Go’/>

</form>

</div> »;

//Afficher le caddie pour voir son contenu s’il a été crée

if($CartId !=  »){
$CartGet = « amazon.php5?Action=CartGet&CartId=$CartId&HMAC=$HMAC »;
echo  »
<div class=’BarreGauche’>
<table>
<tr align=’center’>
<td>
<a href=’$CartGet’>
<img id=’caddie’ src=’images/panier.gif’ alt=’Image du caddie’ title=’Voir le contenu du panier’ />
</a>
</td>
</tr>
<tr align=’center’>
<td> <a href=’$CartGet’>Voir le contenu du panier</a> </td>
</tr>
</table>
</div> »;
}

echo « <div class=’AfficheProduit’> »;

if($Action == ‘Search’){
if( empty($Keywords) ){
echo « <p align=’center’>Veuillez entrer des mots clés pour votre recherche.</p><br/><br/><br/><br/> »;
}else{
$keywords = urlencode($Keywords);
ItemSearch($_GET[‘SearchIndex’], $keywords, $_GET[‘ItemPage’], $KEYID, $AssocTag);
}
}

if($Action == ‘SeeDetails’){
ItemLookup($_GET[‘ASIN’], $_GET[‘SearchIndex’], $KEYID, $AssocTag);
}

if($Action == ‘CartAdd’){
if($CartId !=  »){
CartAdd($KEYID, $AssocTag, $_GET[‘OfferListingId’], $CartId, $HMAC);
}else{
CartCreate($KEYID, $AssocTag, $_GET[‘OfferListingId’], $CartId, $HMAC);
}
}

if($Action == ‘Remove’){
removeFromCart($KEYID, $AssocTag, $CartId, $HMAC, $_GET[‘CartItemId’]);
}

if($Action == ‘CartGet’){
getCartContents($KEYID,$AssocTag,$_GET[‘CartId’], urlencode($_GET[‘HMAC’]));
}

echo « </div> »;

//Focus sur le champs du courriel en javascript
echo ‘<script type= »text/javascript »>document.getElementById(« Keywords »).focus();</script>’;

echo »
<div class=’bas’>
<p align=’center’>
Copyright © 2004-« .date(« Y »). », <a href=’http://aws.amazon.com/’>Amazon Web Services</a>. Tous les textes et images sont disponibles sous Fair Use et restent la propriété de Amazon. <a href=’amazon.zip’>Télécharger la Boutique</a>.<br/>
</p>
</div>
« ;

echo ‘
<div>
<p align= »center »>
<a href= »http://validator.w3.org/check?uri=referer »&gt;
<img id= »xhtml » src= »images/valid-xhtml10-blue.png » alt= »Image XHTML 1.0 Strict » title= »Valid XHTML 1.0 Transitional »
onmouseover= »document.getElementById(\’xhtml\’).src=\’images/valid-xhtml10.png\’  »
onmouseout= »document.getElementById(\’xhtml\’).src=\’images/valid-xhtml10-blue.png\’  »
/>
</a>

<a href= »http://jigsaw.w3.org/css-validator/check?uri=referer »&gt;
<img id= »css » src= »images/valid-css2-blue.png » alt= »Image CSS » title= »Valid CSS »
onmouseover= »document.getElementById(\’css\’).src=\’images/valid-css2.png\’  »
onmouseout= »document.getElementById(\’css\’).src=\’images/valid-css2-blue.png\’  »
/>
</a>
</p>
</div>

</body>

</html>’;

// Recherche d’objet Amazon

function ItemSearch($SearchIndex, $Keywords, $ItemPage, $KEYID, $AssocTag){
$request= »http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=ItemSearch&ResponseGroup=Medium,Offers &raquo;;
$request.= »&SearchIndex=$SearchIndex&Keywords=$Keywords&ItemPage=$ItemPage »;

$response = file_get_contents($request);
$parsed_xml = simplexml_load_string($response);
printSearchResults($parsed_xml, $SearchIndex);
}

//afficher les résultats de la recherche

function printSearchResults($parsed_xml, $SearchIndex){

$numOfItems = $parsed_xml->Items->TotalResults;
$totalPages = $parsed_xml->Items->TotalPages;
$CartId = $_GET[‘CartId’];
$HMAC = urlencode($_GET[‘HMAC’]);
echo « <table> »;
if($numOfItems>0){

foreach($parsed_xml->Items->Item as $current){
if(isset($current->Offers->Offer->OfferListing->OfferListingId)){ //only show items for which there is an offer
echo « <tr>
<td><img src=' ».$current->MediumImage->URL. »‘ alt=’Aucune Image’/></td>
<td><strong> ».str_ireplace(« & », »& »,$current->ItemAttributes->Title). »</strong> »;

if(isset($current->ItemAttributes->Director)){
echo « <br/>Directeur : « .$current->ItemAttributes->Director;
} elseif(isset($current->ItemAttributes->Author)) {
echo « <br/>Auteur : « .$current->ItemAttributes->Author;
} elseif(isset($current->ItemAttributes->Artist)) {
echo « <br/>Artiste : « .$current->ItemAttributes->Artist;
}

echo « <br/>Prix : « .$current->Offers->Offer->OfferListing->Price->FormattedPrice;
$asin = $current->ASIN;
$details = « amazon.php5?Action=SeeDetails&ASIN=$asin&SearchIndex=$SearchIndex&CartId=$CartId&HMAC=$HMAC »;
echo « <br/> »;
echo « <a href=’$details’><img src=’images/32px-Nuvola_apps_xmag.png’ alt=’Image Zoom’ title=\ »Zoom sur l’image\ » /></a> »;
echo  »   <a href=’$details’>Voir les détails</a> »;

$offerListingId = urlencode($current->Offers->Offer->OfferListing->OfferListingId);
$CartAdd = « amazon.php5?Action=CartAdd&OfferListingId=$offerListingId&CartId=$CartId&HMAC=$HMAC »;

echo  »   <a href=’$CartAdd’><img src=’images/32px-Nuvola_apps_kthememgr.png’ alt=’Image Ajouter’ title=’Ajouter ce produit dans votre panier’ /></a> »;
echo  »    <a href=’$CartAdd’>Ajouter au panier</a></td>
</tr> »;
}
}
}else{
echo « <p align=’center’>Aucun résultat trouvé pour les mots clés recherchés.</p><br/><br/><br/><br/> »;
}
echo « </table> »;

//permet de circuler de page en page dans les resultats
echo « <table style=’width:100%;’><tr> »;
if($_GET[‘ItemPage’] > 1 && $totalPages > 1){ //check to see if there are previous pages
$Keywords = urlencode($_GET[‘Keywords’]);
$ItemPage = $_GET[‘ItemPage’]-1;
$prevPage = « amazon.php5?Action=Search&SearchIndex=$SearchIndex&Keywords=$Keywords&ItemPage=$ItemPage&CartId=$CartId&HMAC=$HMAC »;

echo  »
<td align=’left’ >
<a href=’$prevPage’>
<img id=’precedent’ src=’images/48px-Go-previous.svg.png’ alt=’Image precedent’ title=’Aller à la page récédente’ />
</a>
<a href=’$prevPage’>Page précédente</a>
</td> « ;

}
if($_GET[‘ItemPage’] < $totalPages){ //check to see if there are more pages
$Keywords = urlencode($_GET[‘Keywords’]);
$ItemPage = $_GET[‘ItemPage’]+1;
$nextPage = « amazon.php5?Action=Search&SearchIndex=$SearchIndex&Keywords=$Keywords&ItemPage=$ItemPage&CartId=$CartId&HMAC=$HMAC »;
echo  »
<td align=’right’>
<a href=’$nextPage’>Page suivante</a>
<a href=’$nextPage’>
<img id=’suivant’ src=’images/48px-Go-next.svg.png’ alt=’Image suivant’ title=’Aller à la page suivante’ />
</a>
</td> »;
}
echo « </tr></table> »;
}

//affichage des articles en grand

function ItemLookup($asin, $SearchIndex, $KEYID, $AssocTag){
$request = « http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=ItemLookup&ItemId=$asin&ResponseGroup=Medium,Offers &raquo;;

$response = file_get_contents($request);
$parsed_xml = simplexml_load_string($response);
printDetails($parsed_xml, $SearchIndex);
}

//voir les détails d’un article

function printDetails($parsed_xml, $SearchIndex){
echo « <table> »;

echo « <tr><td><img src=' ».$parsed_xml->Items->Item->LargeImage->URL. »‘ alt=’Image « .$parsed_xml->Items->Item->LargeImage->URL. »‘ /></td>
<td>Titre : <strong> ».$parsed_xml->Items->Item->ItemAttributes->Title. »</strong><br/> »;

if($SearchIndex == « Books »){ echo  »
Auteur : « .$parsed_xml->Items->Item->ItemAttributes->Author. »<br/>
Couverture : « .$parsed_xml->Items->Item->ItemAttributes->Binding. »<br/>
Nb pages : « .$parsed_xml->Items->Item->ItemAttributes->NumberOfPages. » pages<br/> »;
}

if($SearchIndex == « Music »){ echo  »
Artiste : « .$parsed_xml->Items->Item->ItemAttributes->Artist. »<br/>
Label : « .$parsed_xml->Items->Item->ItemAttributes->Label. »<br/>
Date de sortie : « .$parsed_xml->Items->Item->ItemAttributes->ReleaseDate. »<br/> »;
}

if($SearchIndex == « DVD »){ echo  »
Directeur : « .$parsed_xml->Items->Item->ItemAttributes->Director. »<br/>
Note : « .$parsed_xml->Items->Item->ItemAttributes->AudienceRating. »<br/>
Label : « .str_ireplace(« & », »& »,$parsed_xml->Items->Item->ItemAttributes->Label). »<br/>
Date de sortie : « .$parsed_xml->Items->Item->ItemAttributes->ReleaseDate. »<br/> »;
}

echo « Prix : « .$parsed_xml->Items->Item->Offers->Offer->OfferListing->Price->FormattedPrice. »<br/> »;
$CartId = $_GET[‘CartId’];
$HMAC = urlencode($_GET[‘HMAC’]);

$search = « amazon.php5?Action=Search&CartId=$CartId&HMAC=$HMAC »;
echo « <a href=’$search’><img id=’search’ src=’images/32px-Nuvola_devices_blockdevice.png’ alt=’Image Continuer la Recherche’ title=’Continuer le Shopping’ /></a> »;
echo  »   <a href=’$search’>Continuer le Shopping</a> »;

$offerListingId = urlencode($parsed_xml->Items->Item->Offers->Offer->OfferListing->OfferListingId);
$CartAdd = « amazon.php5?Action=CartAdd&OfferListingId=$offerListingId&CartId=$CartId&HMAC=$HMAC »;
echo  »   <a href=’$CartAdd’><img id=’ajouter’ src=’images/32px-Nuvola_apps_kthememgr.png’ alt=’Image Ajouter’ title=’Ajouter ce produit dans votre panier’ /></a> »;
echo  »   <a href=’$CartAdd’>Ajouter au panier</a></td></tr> »;

echo « </table> »;
}

// creer un caddie

function cartCreate($KEYID, $AssocTag, $offerListingId, $CartId, $HMAC){
$request= »http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=CartCreate&Item.1.OfferListingId=$offerListingId&Item.1.Quantity=1&Prime;;

$response = file_get_contents($request);
$parsed_xml = simplexml_load_string($response);
showCartContents($parsed_xml);
}

// Ajouter au panier

function cartAdd($KEYID, $AssocTag, $offerListingId, $CartId, $HMAC){
$CartId = $_GET[‘CartId’];
$HMAC = urlencode($_GET[‘HMAC’]);
$request= »http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=CartAdd&CartId=$CartId&HMAC=$HMAC&Item.1.OfferListingId=$offerListingId&Item.1.Quantity=1&Prime;;

$response = file_get_contents($request);
$parsed_xml = simplexml_load_string($response);
showCartContents($parsed_xml);
}

//voir le contenu du caddie

function showCartContents($parsed_xml){

echo « <table> »;
$CartId = $parsed_xml->Cart->CartId;
$HMAC = $parsed_xml->Cart->URLEncodedHMAC;
foreach($parsed_xml->Cart->CartItems->CartItem as $current){
$CartItemId = $current->CartItemId;
$remove= »amazon.php5?Action=Remove&CartId=$CartId&HMAC=$HMAC&CartItemId=$CartItemId »;
echo « <tr><td> ».$current->Title. »: « .$current->Price->FormattedPrice. » »;
echo  »   <a href=$remove>(Retirer du panier)</a></td></tr> »;
}
echo « <tr><td>Sous Total : « .$parsed_xml->Cart->CartItems->SubTotal->FormattedPrice. »</td></tr> »;
echo « <tr><td> »;
$continue = « amazon.php5?Action=Search&CartId=$CartId&HMAC=$HMAC »;
echo « <a href=’$continue’><img id=’continue’ src=’images/32px-Nuvola_devices_blockdevice.png’ alt=’Image Continuer le Shopping’ title=’Continuer le Shopping’ /></a> »;
echo « <a href=’$continue’>Continuer le Shopping</a> »;
$checkout=$parsed_xml->Cart->PurchaseURL;
echo  »   <a href=’$checkout’><img id=’paiement’ src=’images/32px-Nuvola_apps_korganizer.png’ alt=’Image du Paiement’ title=’Paiement’ /></a> »;

echo  »   <a href=$checkout>Paiement</a><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/></td></tr> »;
echo « </table> »;
}

// supprimer du caddie

function removeFromCart($KEYID, $AssocTag, $CartId, $HMAC, $CartItemId){
$CartId = $_GET[‘CartId’];
$HMAC = urlencode($_GET[‘HMAC’]);
$CartItemId = $_GET[‘CartItemId’];
$request = « http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=CartModify&CartId=$CartId&HMAC=$HMAC&Item.1.CartItemId=$CartItemId&Item.1.Quantity=0 &raquo;;

$response = file_get_contents($request);
$parsed_xml = simplexml_load_string($response);
showCartContents($parsed_xml);
}

// récupérer le contenu du caddie

function getCartContents($KEYID,$AssocTag,$CartId, $HMAC){
$request = « http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$KEYID&AssociateTag=$AssocTag&Version=2006-09-11&Operation=CartGet&CartId=$CartId&HMAC=$HMAC &raquo;;

$response = file_get_contents($request);
$parsed_xml = simplexml_load_string($response);
showCartContents($parsed_xml);
}

?>