AEOS Calvarium v0.4

This commit is contained in:
OverSu 2026-08-26 17:23:29 +02:00
commit 57b531cb62
189 changed files with 3810 additions and 1417 deletions

1
.htaccess Executable file
View file

@ -0,0 +1 @@
ErrorDocument 404 /index.php?redirect

929
admin/base.php Normal file → Executable file

File diff suppressed because it is too large Load diff

95
admin/index.php Normal file → Executable file
View file

@ -4,35 +4,32 @@ session_start();
// Inclusion des librairie
require_once ('../lib/aeos.lib.php');
require_once ('../lib/config.lib.php');
require_once ('../lib/var.lib.php');
$password = AEOS_PASSWORD;
$login = AEOS_LOGIN;
$email = AEOS_MAIL;
$password = $ADMIN_MDP;
$login = $ADMIN_LOG;
$email = $ADMIN_EMAIL;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title><?php echo $SITE_NOM; ?></title>
<meta name="description" content="<?php echo $SITE_DESC; ?>" />
<?php
// Detection du navigateur. Si iPhone ou non.
if(preg_match("/iphone/i", $_SERVER["HTTP_USER_AGENT"])) {?>
<link rel="stylesheet" type="text/css" media="screen" href="../themes/<?php echo $SITE_THEME; ?>/styles_mobile.css" /><?php } else { ?>
<link rel="stylesheet" type="text/css" media="screen" href="../themes/<?php echo $SITE_THEME; ?>/styles.css" />
<link rel="stylesheet" type="text/css" media="screen" href="tinyeditor/style.css" />
<script type="text/javascript" src="tinyeditor/packed.js"></script>
<link rel="icon" type="image/png" href="../themes/<?php echo $SITE_THEME; ?>/images/favicon_aeos.ico" /><?php } ?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><?php echo AEOS_NAME; ?></title>
<meta name="description" content="<?php echo AEOS_DESC; ?>" />
<link rel="stylesheet" type="text/css" media="screen" href="../themes/system/styles.css" />
<script type="text/javascript" src="owEditor/owEditor.js"></script>
<link rel="icon" type="image/png" href="../themes/<?php echo AEOS_THEME; ?>/images/favicon_aeos.ico" />
</head>
<?php if(!isset($_SESSION['_login']) || !isset($_SESSION['_pass'])){ ?>
<body>
<div id="content">
<div id="center">
<div id="left">NNSPROD LOGO</div>
<h6><img src="../themes/<?php echo $SITE_THEME; ?>/images/icones/logout.png" alt="Logout" class="icon" />Administration - AEOS</h6>
<?php if(!isset($_SESSION['_LOGIN']) || !isset($_SESSION['_PASSWORD'])){ ?>
<body>
<div id="Layout"></div>
<div id="Administration">
<h1><img src="../themes/system/images/logo_black.png" alt="Logo AEOS" /></h1>
<h6>
<img src="../themes/system/images/icones/logout.png" alt="Logout" class="icon" />
Administration - AEOS
</h6>
<?php
if (@$_GET['action']=="mdpperdu")
@ -42,24 +39,22 @@ if(preg_match("/iphone/i", $_SERVER["HTTP_USER_AGENT"])) {?>
if(($login == $_POST['login']) && (strtolower($email) == strtolower($_POST['email'])))
{
$mdp = generer_mdp(12);
sendMail($SITE_NOM, $email, "Récupération de mot de passe", "Ce mail provient de ".$SITE_NOM.".\nVous avez fait une demande de nouveau mot de passe.\n\nVoici votre nouveau mot de passe: ".$mdp);
sendMail(AEOS_NAME, $email, "Récupération de mot de passe", "Ce mail provient de ".AEOS_NAME.".\nVous avez fait une demande de nouveau mot de passe.\n\nVoici votre nouveau mot de passe: ".$mdp);
ecriture_xml('../data/config.xml', 'mdp_admin', md5($mdp));
echo "<span class='valide'>Un email vous a été envoyé.</span>";
echo "<p><span class='valide'>Un email vous a été envoyé.</span></p>";
}
else
{
echo "<span class='erreur'>Login ou email incorrect.</span>";
echo "<p><span class='erreur'>Login ou email incorrect.</span></p>";
}
}
?>
<form action="index.php?action=mdpperdu" method="post">
<p>
Login<br /><input type="text" name="login" class="input" value="" /><br /><br />
Email<br /><input type="text" name="email" class="input" value="" /><br /><br />
<input type="submit" value="Renvoyer un mot de passe" class="input" />
</p>
</form>
<p><a href="index.php" class="link">Retour</a></p>
<form action="index.php?action=mdpperdu" method="POST">
<p>Login<br /><input type="text" name="login" class="input_text" value="" /></p>
<p>Email<br /><input type="text" name="email" class="input_text" value="" /></p>
<p><input type="submit" value="Renvoyer un mot de passe" class="input_button" /></p>
</form>
<p><a href="index.php" class="link">Retour</a></p>
<?php
}
else
@ -68,28 +63,36 @@ if(preg_match("/iphone/i", $_SERVER["HTTP_USER_AGENT"])) {?>
{
if(($login == $_POST['login']) && ($password == md5($_POST['mdp'])))
{
$_SESSION['_login'] = $login;
$_SESSION['_pass'] = $password;
$_SESSION['_LOGIN'] = $login;
$_SESSION['_PASSWORD'] = $password;
$n = lecture_xml(URL_CHECK_UPDATE);
if($n['notifications']['update']['#text']!=UPDATE)
{
$_SESSION['_NOTIFICATIONS']=TRUE;
copy(URL_CHECK_UPDATE, 'notifications.xml');
}
else
{
$_SESSION['_NOTIFICATIONS']=FALSE;
}
if($_SESSION['_NOTIFICATIONS']) ecriture_xml('../data/config.xml', 'update', $n['notifications']['update']['#text']);
header('Location: index.php');
}
else
{
echo "<p class='decalageBas'><span class='erreur'>Login ou mot de passe incorrect.</span></p>";
echo "<p><span class='erreur'>Login ou mot de passe incorrect.</span></p>";
}
}
?>
<form action="index.php" method="post">
<p>
Login<br /><input type="text" name="login" class="input" value="" /><br /><br />
Mot de passe<br /><input type="password" name="mdp" class="input" value="" /><br /><br />
<input type="submit" value="Connexion" class="input" />
</p>
<form action="index.php" method="POST">
<p>LOGIN<br /><input type="text" name="login" class="input_text" value="" /></p>
<p>MOT DE PASSE<br /><input type="password" name="mdp" class="input_text" value="" /></p>
<p><input type="submit" value="Connexion" class="input_button" /></p>
<p><a href="index.php?action=mdpperdu" class="link">Mot de passe perdu ?</a></p>
</form>
<p><a href="index.php?action=mdpperdu" class="link">Mot de passe perdu ?</a></p>
<?php
}
?>
</div>
</div>
</body>
<?php } else {require_once('base.php');} ?>

27
admin/notifications.xml Executable file
View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<notifications>
<message>
<type>normal</type>
<contenu>De nouveaux commentaires 06</contenu>
<lien>http://google.fr</lien>
</message>
<message>
<type>apply</type>
<contenu>De nouveaux commentaires 06</contenu>
<lien>http://google.fr</lien>
</message>
<message>
<type>update</type>
<contenu>De nouveaux commentaires 06</contenu>
<lien>http://google.fr</lien>
</message>
<message>
<type>bug</type>
<contenu>De nouveaux commentaires 06</contenu>
<lien>http://google.fr</lien>
</message>
<update>06-07-2013</update>
</notifications>

BIN
admin/owEditor/loader.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
admin/owEditor/owEditor.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

80
admin/owEditor/owEditor.js Executable file
View file

@ -0,0 +1,80 @@
function __(a){return a}function $BK(a){"string"==typeof a&&(a=document.getElementById(a));return a&&!a.appendTo?bkExtend(a,bkElement.prototype):a}function bkClass(){}var bkExtend=function(){var a=arguments;1==a.length&&(a=[this,a[0]]);for(var b in a[1])a[0][b]=a[1][b];return a[0]};bkClass.prototype.construct=function(){};
bkClass.extend=function(a){var b=function(){if(arguments[0]!==bkClass)return this.construct.apply(this,arguments)},c=new this(bkClass);bkExtend(c,a);b.prototype=c;b.extend=this.extend;return b};
var bkElement=bkClass.extend({construct:function(a,b){"string"==typeof a&&(a=(b||document).createElement(a));return a=$BK(a)},appendTo:function(a){a.appendChild(this);return this},appendBefore:function(a){a.parentNode.insertBefore(this,a);return this},addEvent:function(a,b){bkLib.addEvent(this,a,b);return this},setContent:function(a){this.innerHTML=a;return this},pos:function(){var a=curtop=0;obj=this;if(obj.offsetParent){do a+=obj.offsetLeft,curtop+=obj.offsetTop;while(obj=obj.offsetParent)}var b=
window.opera?0:parseInt(this.getStyle("border-width")||this.style.border)||0;return[a+b,curtop+b+this.offsetHeight]},noSelect:function(){bkLib.noSelect(this);return this},parentTag:function(a){var b=this;do{if(b&&b.nodeName&&b.nodeName.toUpperCase()==a)return b;b=b.parentNode}while(b);return!1},hasClass:function(a){return this.className.match(RegExp("(\\s|^)owEdit-"+a+"(\\s|$)"))},addClass:function(a){this.hasClass(a)||(this.className+=" owEdit-"+a);return this},removeClass:function(a){this.hasClass(a)&&
(this.className=this.className.replace(RegExp("(\\s|^)owEdit-"+a+"(\\s|$)")," "));return this},setStyle:function(a){var b=this.style,c;for(c in a)switch(c){case "float":b.cssFloat=b.styleFloat=a[c];break;case "opacity":b.opacity=a[c];b.filter="alpha(opacity="+Math.round(100*a[c])+")";break;case "className":this.className=a[c];break;default:b[c]=a[c]}return this},getStyle:function(a,b){var c=b?b:document.defaultView;if(1==this.nodeType)return c&&c.getComputedStyle?c.getComputedStyle(this,null).getPropertyValue(a):
this.currentStyle[bkLib.camelize(a)]},remove:function(){this.parentNode.removeChild(this);return this},setAttributes:function(a){for(var b in a)this[b]=a[b];return this}}),bkLib={isMSIE:-1!=navigator.appVersion.indexOf("MSIE"),addEvent:function(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent("on"+b,c)},toArray:function(a){for(var b=a.length,c=Array(b);b--;)c[b]=a[b];return c},noSelect:function(a){a.setAttribute&&("input"!=a.nodeName.toLowerCase()&&"textarea"!=a.nodeName.toLowerCase())&&
a.setAttribute("unselectable","on");for(var b=0;b<a.childNodes.length;b++)bkLib.noSelect(a.childNodes[b])},camelize:function(a){return a.replace(/\-(.)/g,function(a,c){return c.toUpperCase()})},inArray:function(a,b){return null!=bkLib.search(a,b)},search:function(a,b){for(var c=0;c<a.length;c++)if(a[c]==b)return c;return null},cancelEvent:function(a){a=a||window.event;a.preventDefault&&a.stopPropagation&&(a.preventDefault(),a.stopPropagation());return!1},domLoad:[],domLoaded:function(){if(!arguments.callee.done)for(arguments.callee.done=
!0,i=0;i<bkLib.domLoad.length;i++)bkLib.domLoad[i]()},onDomLoaded:function(a){this.domLoad.push(a);document.addEventListener?document.addEventListener("DOMContentLoaded",bkLib.domLoaded,null):bkLib.isMSIE&&(document.write("<style>.owEdit-main p { margin: 0; }</style><script id=__ie_onload defer "+("https:"==location.protocol?"src='javascript:void(0)'":"src=//0")+">\x3c/script>"),$BK("__ie_onload").onreadystatechange=function(){"complete"==this.readyState&&bkLib.domLoaded()});window.onload=bkLib.domLoaded}},
bkEvent={addEvent:function(a,b){b&&(this.eventList=this.eventList||{},this.eventList[a]=this.eventList[a]||[],this.eventList[a].push(b));return this},fireEvent:function(){var a=bkLib.toArray(arguments),b=a.shift();if(this.eventList&&this.eventList[b])for(var c=0;c<this.eventList[b].length;c++)this.eventList[b][c].apply(this,a)}};Function.prototype.closure=function(){var a=this,b=bkLib.toArray(arguments),c=b.shift();return function(){if("undefined"!=typeof bkLib)return a.apply(c,b.concat(bkLib.toArray(arguments)))}};
Function.prototype.closureListener=function(){var a=this,b=bkLib.toArray(arguments),c=b.shift();return function(d){d=d||window.event;return a.apply(c,[d,d.target?d.target:d.srcElement].concat(b))}};
var owEditorConfig=bkClass.extend({buttons:{bold:{name:__("Gras"),command:"Bold",tags:["B","STRONG"],css:{"font-weight":"bold"},key:"b"},italic:{name:__("Italique"),command:"Italic",tags:["EM","I"],css:{"font-style":"italic"},key:"i"},underline:{name:__("Souligner"),command:"Underline",tags:["U"],css:{"text-decoration":"underline"},key:"u"},left:{name:__("Alignement \u00e0 gauche"),command:"justifyleft",noActive:!0},center:{name:__("Centrer"),command:"justifycenter",noActive:!0},right:{name:__("Alignement \u00e0 droite"),
command:"justifyright",noActive:!0},justify:{name:__("Alignement justifi\u00e9"),command:"justifyfull",noActive:!0},ol:{name:__("Liste num\u00e9rot\u00e9e"),command:"insertorderedlist",tags:["OL"]},ul:{name:__("Liste simple"),command:"insertunorderedlist",tags:["UL"]},subscript:{name:__("Mettre en exposant"),command:"subscript",tags:["SUB"]},superscript:{name:__("Mettre en indice"),command:"superscript",tags:["SUP"]},strikethrough:{name:__("Rayer"),command:"strikeThrough",css:{"text-decoration":"line-through"}},
removeformat:{name:__("Retirer le formatage"),command:"removeformat",noActive:!0},indent:{name:__("Indenter"),command:"indent",noActive:!0},outdent:{name:__("Retirer l'indentation"),command:"outdent",noActive:!0},hr:{name:__("Ligne horizontale"),command:"insertHorizontalRule",noActive:!0}},iconsPath:"owEditor/owEditor.gif",buttonList:"save bold italic underline left center right justify ol ul fontSize fontFamily fontFormat indent outdent image upload link unlink forecolor bgcolor".split(" "),iconList:{xhtml:1,
bgcolor:2,forecolor:3,bold:4,center:5,hr:6,indent:7,italic:8,justify:9,left:10,ol:11,outdent:12,removeformat:13,right:14,save:25,strikethrough:16,subscript:17,superscript:18,ul:19,underline:20,image:21,link:22,unlink:23,close:24,arrow:26,upload:27}}),owEditors={owPlugins:[],editors:[],registerPlugin:function(a,b){this.owPlugins.push({p:a,o:b})},allTextAreas:function(a){for(var b=document.getElementsByTagName("textarea"),c=0;c<b.length;c++)owEditors.editors.push((new owEditor(a)).panelInstance(b[c]));
return owEditors.editors},findEditor:function(a){for(var b=owEditors.editors,c=0;c<b.length;c++)if(b[c].instanceById(a))return b[c].instanceById(a)}},owEditor=bkClass.extend({construct:function(a){this.options=new owEditorConfig;bkExtend(this.options,a);this.owInstances=[];this.loadedPlugins=[];a=owEditors.owPlugins;for(var b=0;b<a.length;b++)this.loadedPlugins.push(new a[b].p(this,a[b].o));owEditors.editors.push(this);bkLib.addEvent(document.body,"mousedown",this.selectCheck.closureListener(this))},
panelInstance:function(a,b){a=this.checkReplace($BK(a));var c=(new bkElement("DIV")).setStyle({width:(parseInt(a.getStyle("width"))||a.clientWidth)+"px"}).appendBefore(a);this.setPanel(c);return this.addInstance(a,b)},checkReplace:function(a){var b=owEditors.findEditor(a);b&&(b.removeInstance(a),b.removePanel());return a},addInstance:function(a,b){a=this.checkReplace($BK(a));var c=a.contentEditable||window.opera?new owEditorInstance(a,b,this):new owEditorIFrameInstance(a,b,this);this.owInstances.push(c);
return this},removeInstance:function(a){a=$BK(a);for(var b=this.owInstances,c=0;c<b.length;c++)b[c].e==a&&(b[c].remove(),this.owInstances.splice(c,1))},removePanel:function(a){this.owPanel&&(this.owPanel.remove(),this.owPanel=null)},instanceById:function(a){a=$BK(a);for(var b=this.owInstances,c=0;c<b.length;c++)if(b[c].e==a)return b[c]},setPanel:function(a){this.owPanel=new owEditorPanel($BK(a),this.options,this);this.fireEvent("panel",this.owPanel);return this},owCommand:function(a,b){this.selectedInstance&&
this.selectedInstance.owCommand(a,b)},getIcon:function(a,b){var c=this.options.iconList[a],d=b.iconFiles?b.iconFiles[a]:"";return{backgroundImage:"url('"+(c?this.options.iconsPath:d)+"')",backgroundPosition:(c?-18*(c-1):0)+"px 0px"}},selectCheck:function(a,b){do if(b.className&&-1!=b.className.indexOf("owEdit"))return!1;while(b=b.parentNode);this.fireEvent("blur",this.selectedInstance,b);this.lastSelectedInstance=this.selectedInstance;this.selectedInstance=null;return!1}}),owEditor=owEditor.extend(bkEvent),
owEditorInstance=bkClass.extend({isSelected:!1,construct:function(a,b,c){this.ne=c;this.elm=this.e=a;this.options=b||{};newX=parseInt(a.getStyle("width"))||a.clientWidth;newY=parseInt(a.getStyle("height"))||a.clientHeight;this.initialHeight=newY-8;if((c="textarea"==a.nodeName.toLowerCase())||this.options.hasPanel){b=bkLib.isMSIE&&!("undefined"!=typeof document.body.style.maxHeight&&"CSS1Compat"==document.compatMode);var d={width:newX+"px",backgroundColor:"#fff",borderTop:0,overflowY:"auto",overflowX:"hidden"};
d[b?"height":"maxHeight"]=this.ne.options.maxHeight?this.ne.options.maxHeight+"px":null;this.editorContain=(new bkElement("DIV")).setStyle(d).appendBefore(a);d=(new bkElement("DIV")).setStyle({margin:"4px",minHeight:newY+"px"}).addClass("main").appendTo(this.editorContain);d.setAttribute("id","owEdit-main");a.setStyle({display:"none"});d.innerHTML=a.innerHTML;c&&(d.setContent(a.value),this.copyElm=a,(a=a.parentTag("FORM"))&&bkLib.addEvent(a,"submit",this.saveContent.closure(this)));d.setStyle(b?{height:newY+
"px"}:{overflow:"hidden"});this.elm=d}this.ne.addEvent("blur",this.blur.closure(this));this.init();this.blur()},init:function(){this.elm.setAttribute("contentEditable","true");""==this.getContent()&&this.setContent("<br />");this.instanceDoc=document.defaultView;this.elm.addEvent("mousedown",this.selected.closureListener(this)).addEvent("keypress",this.keyDown.closureListener(this)).addEvent("focus",this.selected.closure(this)).addEvent("blur",this.blur.closure(this)).addEvent("keyup",this.selected.closure(this));
this.ne.fireEvent("add",this)},remove:function(){this.saveContent();if(this.copyElm||this.options.hasPanel)this.editorContain.remove(),this.e.setStyle({display:"block"}),this.ne.removePanel();this.disable();this.ne.fireEvent("remove",this)},disable:function(){this.elm.setAttribute("contentEditable","false")},getSel:function(){return window.getSelection?window.getSelection():document.selection},getRng:function(){var a=this.getSel();return a?0<a.rangeCount?a.getRangeAt(0):a.createRange():null},selRng:function(a,
b){window.getSelection?(b.removeAllRanges(),b.addRange(a)):a.select()},selElm:function(){var a=this.getRng();if(a.startContainer){var b=a.startContainer;if(1==a.cloneContents().childNodes.length)for(var c=0;c<b.childNodes.length;c++){var d=b.childNodes[c].ownerDocument.createRange();d.selectNode(b.childNodes[c]);if(1!=a.compareBoundaryPoints(Range.START_TO_START,d)&&-1!=a.compareBoundaryPoints(Range.END_TO_END,d))return $BK(b.childNodes[c])}return $BK(b)}return $BK("Control"==this.getSel().type?a.item(0):
a.parentElement())},saveRng:function(){this.savedRange=this.getRng();this.savedSel=this.getSel()},restoreRng:function(){this.savedRange&&this.selRng(this.savedRange,this.savedSel)},keyDown:function(a,b){a.ctrlKey&&this.ne.fireEvent("key",this,a)},selected:function(a,b){b||(b=this.selElm());if(!a.ctrlKey){var c=this.ne.selectedInstance;c!=this&&(c&&this.ne.fireEvent("blur",c,b),this.ne.selectedInstance=this,this.ne.fireEvent("focus",c,b));this.ne.fireEvent("selected",c,b);this.isFocused=!0;this.elm.addClass("selected")}return!1},
blur:function(){this.isFocused=!1;this.elm.removeClass("selected")},saveContent:function(){if(this.copyElm||this.options.hasPanel)this.ne.fireEvent("save",this),this.copyElm?this.copyElm.value=this.getContent():this.e.innerHTML=this.getContent()},getElm:function(){return this.elm},getContent:function(){this.content=this.getElm().innerHTML;this.ne.fireEvent("get",this);return"<br />"==this.content||"<br />"==this.content?"":this.content},setContent:function(a){this.content=a;this.ne.fireEvent("set",
this);this.elm.innerHTML=this.content},owCommand:function(a,b){document.execCommand(a,!1,b)}}),owEditorIFrameInstance=owEditorInstance.extend({savedStyles:[],init:function(){var a=this.elm.innerHTML.replace(/^\s+|\s+$/g,"");this.elm.innerHTML="";a?a:a="<br />";this.initialContent=a;this.elmFrame=(new bkElement("iframe")).setAttributes({src:"javascript:;",frameBorder:0,allowTransparency:"true",scrolling:"no"}).setStyle({height:"100px"}).addClass("frame").appendTo(this.elm);this.copyElm&&this.elmFrame.setStyle({width:this.elm.offsetWidth-
4+"px"});a=["font-size","font-family","font-weight","color"];for(itm in a)this.savedStyles[bkLib.camelize(itm)]=this.elm.getStyle(itm);setTimeout(this.initFrame.closure(this),50)},disable:function(){this.elm.innerHTML=this.getContent()},initFrame:function(){var a=$BK(this.elmFrame.contentWindow.document);a.designMode="on";a.open();var b=this.ne.options.externalCSS;a.write("<html><head>"+(b?'<link href="'+b+'" rel="stylesheet" type="text/css" />':"")+'</head><body id="owEditContent" style="margin: 0 !important; background-color: transparent !important;">'+
this.initialContent+"</body></html>");a.close();this.frameDoc=a;this.frameWin=$BK(this.elmFrame.contentWindow);this.frameContent=$BK(this.frameWin.document.body).setStyle(this.savedStyles);this.instanceDoc=this.frameWin.document.defaultView;this.heightUpdate();this.frameDoc.addEvent("mousedown",this.selected.closureListener(this)).addEvent("keyup",this.heightUpdate.closureListener(this)).addEvent("keydown",this.keyDown.closureListener(this)).addEvent("keyup",this.selected.closure(this));this.ne.fireEvent("add",
this)},getElm:function(){return this.frameContent},setContent:function(a){this.content=a;this.ne.fireEvent("set",this);this.frameContent.innerHTML=this.content;this.heightUpdate()},getSel:function(){return this.frameWin?this.frameWin.getSelection():this.frameDoc.selection},heightUpdate:function(){this.elmFrame.style.height=Math.max(this.frameContent.offsetHeight,this.initialHeight)+"px"},owCommand:function(a,b){this.frameDoc.execCommand(a,!1,b);setTimeout(this.heightUpdate.closure(this),100)}}),owEditorPanel=
bkClass.extend({construct:function(a,b,c){this.elm=a;this.options=b;this.ne=c;this.panelButtons=[];this.buttonList=bkExtend([],this.ne.options.buttonList);this.panelContain=(new bkElement("DIV")).setStyle({overflow:"hidden"}).addClass("panelContain");this.panelElm=(new bkElement("DIV")).setStyle({margin:"2px",marginTop:"0px",zoom:1,overflow:"hidden"}).addClass("panel").appendTo(this.panelContain);this.panelContain.appendTo(a);b=this.ne.options;c=b.buttons;for(button in c)this.addButton(button,b,!0);
this.reorder();a.noSelect()},addButton:function(a,b,c){c=b.buttons[a];c=c.type?eval("(typeof("+c.type+') == "undefined") ? null : '+c.type+";"):owEditorButton;var d=bkLib.inArray(this.buttonList,a);c&&(d||this.ne.options.fullPanel)&&(this.panelButtons.push(new c(this.panelElm,a,b,this.ne)),d||this.buttonList.push(a))},findButton:function(a){for(var b=0;b<this.panelButtons.length;b++)if(this.panelButtons[b].name==a)return this.panelButtons[b]},reorder:function(){for(var a=this.buttonList,b=0;b<a.length;b++){var c=
this.findButton(a[b]);c&&this.panelElm.appendChild(c.margin)}},remove:function(){this.elm.remove()}}),owEditorButton=bkClass.extend({construct:function(a,b,c,d){this.options=c.buttons[b];this.name=b;this.ne=d;this.elm=a;this.margin=(new bkElement("DIV")).setStyle({"float":"left",marginTop:"2px"}).appendTo(a);this.contain=(new bkElement("DIV")).setStyle({width:"20px",height:"20px"}).addClass("buttonContain").appendTo(this.margin);this.border=(new bkElement("DIV")).setStyle({backgroundColor:"#fff",
border:"1px solid #efefef"}).appendTo(this.contain);this.button=(new bkElement("DIV")).setStyle({width:"18px",height:"18px",overflow:"hidden",zoom:1,cursor:"pointer"}).addClass("button").setStyle(this.ne.getIcon(b,c)).appendTo(this.border);this.button.addEvent("mouseover",this.hoverOn.closure(this)).addEvent("mouseout",this.hoverOff.closure(this)).addEvent("mousedown",this.mouseClick.closure(this)).noSelect();window.opera||(this.button.onmousedown=this.button.onclick=bkLib.cancelEvent);d.addEvent("selected",
this.enable.closure(this)).addEvent("blur",this.disable.closure(this)).addEvent("key",this.key.closure(this));this.disable();this.init()},init:function(){},hide:function(){this.contain.setStyle({display:"none"})},updateState:function(){this.isDisabled?this.setBg():this.isHover?this.setBg("hover"):this.isActive?this.setBg("active"):this.setBg()},setBg:function(a){switch(a){case "hover":var b={border:"1px solid #666",backgroundColor:"#ddd"};break;case "active":b={border:"1px solid #666",backgroundColor:"#ccc"};
break;default:b={border:"1px solid #efefef",backgroundColor:"#efefef"}}this.border.setStyle(b).addClass("button-"+a)},checkNodes:function(a){var b=a;do if(this.options.tags&&bkLib.inArray(this.options.tags,b.nodeName))return this.activate(),!0;while(b=b.parentNode&&"owEdit"!=b.className);for(b=$BK(a);3==b.nodeType;)b=$BK(b.parentNode);if(this.options.css)for(itm in this.options.css)if(b.getStyle(itm,this.ne.selectedInstance.instanceDoc)==this.options.css[itm])return this.activate(),!0;this.deactivate();
return!1},activate:function(){this.isDisabled||(this.isActive=!0,this.updateState(),this.ne.fireEvent("buttonActivate",this))},deactivate:function(){this.isActive=!1;this.updateState();this.isDisabled||this.ne.fireEvent("buttonDeactivate",this)},enable:function(a,b){this.isDisabled=!1;this.contain.setStyle({opacity:1}).addClass("buttonEnabled");this.updateState();this.checkNodes(b)},disable:function(a,b){this.isDisabled=!0;this.contain.setStyle({opacity:0.6}).removeClass("buttonEnabled");this.updateState()},
toggleActive:function(){this.isActive?this.deactivate():this.activate()},hoverOn:function(){this.isDisabled||(this.isHover=!0,this.updateState(),this.ne.fireEvent("buttonOver",this))},hoverOff:function(){this.isHover=!1;this.updateState();this.ne.fireEvent("buttonOut",this)},mouseClick:function(){this.options.command&&(this.ne.owCommand(this.options.command,this.options.commandArgs),this.options.noActive||this.toggleActive());this.ne.fireEvent("buttonClick",this)},key:function(a,b){this.options.key&&
(b.ctrlKey&&String.fromCharCode(b.keyCode||b.charCode).toLowerCase()==this.options.key)&&(this.mouseClick(),b.preventDefault&&b.preventDefault())}}),owPlugin=bkClass.extend({construct:function(a,b){this.options=b;this.ne=a;this.ne.addEvent("panel",this.loadPanel.closure(this));this.init()},loadPanel:function(a){var b=this.options.buttons,c;for(c in b)a.addButton(c,this.options);a.reorder()},init:function(){}}),owPaneOptions={},owEditorPane=bkClass.extend({construct:function(a,b,c,d){this.ne=b;this.elm=
a;this.pos=a.pos();this.contain=(new bkElement("div")).setStyle({zIndex:"99999",overflow:"hidden",position:"absolute",left:this.pos[0]+"px",top:this.pos[1]+"px"});this.pane=(new bkElement("div")).setStyle({fontSize:"12px",border:"1px solid #ccc",overflow:"hidden",padding:"4px",textAlign:"left",backgroundColor:"#ffffc9"}).addClass("pane").setStyle(c).appendTo(this.contain);d&&!d.options.noClose&&(this.close=(new bkElement("div")).setStyle({"float":"right",height:"16px",width:"16px",cursor:"pointer"}).setStyle(this.ne.getIcon("close",
owPaneOptions)).addEvent("mousedown",d.removePane.closure(this)).appendTo(this.pane));this.contain.noSelect().appendTo(document.body);this.position();this.init()},init:function(){},position:function(){if(this.ne.owPanel){var a=this.ne.owPanel.elm,a=a.pos()[0]+parseInt(a.getStyle("width"))-(parseInt(this.pane.getStyle("width"))+8);a<this.pos[0]&&this.contain.setStyle({left:a+"px"})}},toggle:function(){this.isVisible=!this.isVisible;this.contain.setStyle({display:this.isVisible?"block":"none"})},remove:function(){this.contain&&
(this.contain.remove(),this.contain=null)},append:function(a){a.appendTo(this.pane)},setContent:function(a){this.pane.setContent(a)}}),owEditorAdvancedButton=owEditorButton.extend({init:function(){this.ne.addEvent("selected",this.removePane.closure(this)).addEvent("blur",this.removePane.closure(this))},mouseClick:function(){this.isDisabled||(this.pane&&this.pane.pane?this.removePane():(this.pane=new owEditorPane(this.contain,this.ne,{width:this.width||"270px",backgroundColor:"#fff"},this),this.addPane(),
this.ne.selectedInstance.saveRng()))},addForm:function(a,b){this.form=(new bkElement("form")).addEvent("submit",this.submit.closureListener(this));this.pane.append(this.form);this.inputs={};for(itm in a){var c=a[itm],d="";b&&(d=b.getAttribute(itm));d||(d=c.value||"");var f=a[itm].type;if("title"==f)(new bkElement("div")).setContent(c.txt).setStyle({fontSize:"14px",fontWeight:"bold",padding:"0px",margin:"2px 0"}).appendTo(this.form);else{var e=(new bkElement("div")).setStyle({overflow:"hidden",clear:"both"}).appendTo(this.form);
c.txt&&(new bkElement("label")).setAttributes({"for":itm}).setContent(c.txt).setStyle({margin:"2px 4px",fontSize:"13px",width:"50px",lineHeight:"20px",textAlign:"right","float":"left"}).appendTo(e);switch(f){case "text":this.inputs[itm]=(new bkElement("input")).setAttributes({id:itm,value:d,type:"text"}).setStyle({margin:"2px 0",fontSize:"13px","float":"left",height:"20px",border:"1px solid #ccc",overflow:"hidden"}).setStyle(c.style).appendTo(e);break;case "select":this.inputs[itm]=(new bkElement("select")).setAttributes({id:itm}).setStyle({border:"1px solid #ccc",
"float":"left",margin:"2px 0"}).appendTo(e);for(opt in c.options)(new bkElement("option")).setAttributes({value:opt,selected:opt==d?"selected":""}).setContent(c.options[opt]).appendTo(this.inputs[itm]);break;case "content":this.inputs[itm]=(new bkElement("textarea")).setAttributes({id:itm}).setStyle({border:"1px solid #ccc","float":"left"}).setStyle(c.style).appendTo(e),this.inputs[itm].value=d}}}(new bkElement("input")).setAttributes({type:"submit"}).setStyle({backgroundColor:"#efefef",border:"1px solid #ccc",
margin:"3px 0","float":"left",clear:"both"}).appendTo(this.form);this.form.onsubmit=bkLib.cancelEvent},submit:function(){},findElm:function(a,b,c){a=this.ne.selectedInstance.getElm().getElementsByTagName(a);for(var d=0;d<a.length;d++)if(a[d].getAttribute(b)==c)return $BK(a[d])},removePane:function(){this.pane&&(this.pane.remove(),this.pane=null,this.ne.selectedInstance.restoreRng())}}),owButtonTips=bkClass.extend({construct:function(a){this.ne=a;a.addEvent("buttonOver",this.show.closure(this)).addEvent("buttonOut",
this.hide.closure(this))},show:function(a){this.timer=setTimeout(this.create.closure(this,a),400)},create:function(a){this.timer=null;this.pane||(this.pane=new owEditorPane(a.button,this.ne,{fontSize:"12px",marginTop:"5px"}),this.pane.setContent(a.options.name))},hide:function(a){this.timer&&clearTimeout(this.timer);this.pane&&(this.pane=this.pane.remove())}});owEditors.registerPlugin(owButtonTips);
var owSelectOptions={buttons:{fontSize:{name:__("Taille"),type:"owEditorFontSizeSelect",command:"fontsize"},fontFamily:{name:__("Famille"),type:"owEditorFontFamilySelect",command:"fontname"},fontFormat:{name:__("Format"),type:"owEditorFontFormatSelect",command:"formatBlock"}}},owEditorSelect=bkClass.extend({construct:function(a,b,c,d){this.options=c.buttons[b];this.elm=a;this.ne=d;this.name=b;this.selOptions=[];this.margin=(new bkElement("div")).setStyle({"float":"left",margin:"2px 1px 0 1px"}).appendTo(this.elm);
this.contain=(new bkElement("div")).setStyle({width:"90px",height:"20px",cursor:"pointer",overflow:"hidden"}).addClass("selectContain").addEvent("click",this.toggle.closure(this)).appendTo(this.margin);this.items=(new bkElement("div")).setStyle({overflow:"hidden",zoom:1,border:"1px solid #ccc",paddingLeft:"3px",backgroundColor:"#fff"}).appendTo(this.contain);this.control=(new bkElement("div")).setStyle({overflow:"hidden","float":"right",height:"18px",width:"16px"}).addClass("selectControl").setStyle(this.ne.getIcon("arrow",
c)).appendTo(this.items);this.txt=(new bkElement("div")).setStyle({overflow:"hidden","float":"left",width:"66px",height:"14px",marginTop:"1px",fontFamily:"sans-serif",textAlign:"center",fontSize:"12px"}).addClass("selectTxt").appendTo(this.items);window.opera||(this.contain.onmousedown=this.control.onmousedown=this.txt.onmousedown=bkLib.cancelEvent);this.margin.noSelect();this.ne.addEvent("selected",this.enable.closure(this)).addEvent("blur",this.disable.closure(this));this.disable();this.init()},
disable:function(){this.isDisabled=!0;this.close();this.contain.setStyle({opacity:0.6})},enable:function(a){this.isDisabled=!1;this.close();this.contain.setStyle({opacity:1})},setDisplay:function(a){this.txt.setContent(a)},toggle:function(){this.isDisabled||(this.pane?this.close():this.open())},open:function(){this.pane=new owEditorPane(this.items,this.ne,{width:"88px",padding:"0px",borderTop:0,borderLeft:"1px solid #ccc",borderRight:"1px solid #ccc",borderBottom:"0px",backgroundColor:"#fff"});for(var a=
0;a<this.selOptions.length;a++){var b=this.selOptions[a],c=(new bkElement("div")).setStyle({overflow:"hidden",borderBottom:"1px solid #ccc",width:"88px",textAlign:"left",overflow:"hidden",cursor:"pointer"}),d=(new bkElement("div")).setStyle({padding:"0px 4px"}).setContent(b[1]).appendTo(c).noSelect();d.addEvent("click",this.update.closure(this,b[0])).addEvent("mouseover",this.over.closure(this,d)).addEvent("mouseout",this.out.closure(this,d)).setAttributes("id",b[0]);this.pane.append(c);window.opera||
(d.onmousedown=bkLib.cancelEvent)}},close:function(){this.pane&&(this.pane=this.pane.remove())},over:function(a){a.setStyle({backgroundColor:"#ccc"})},out:function(a){a.setStyle({backgroundColor:"#fff"})},add:function(a,b){this.selOptions.push([a,b])},update:function(a){this.ne.owCommand(this.options.command,a);this.close()}}),owEditorFontSizeSelect=owEditorSelect.extend({sel:{1:"1 (8pt)",2:"2 (10pt)",3:"3 (12pt)",4:"4 (14pt)",5:"5 (18pt)",6:"6 (24pt)"},init:function(){this.setDisplay("Taille...");
for(itm in this.sel)this.add(itm,'<font size="'+itm+'">'+this.sel[itm]+"</font>")}}),owEditorFontFamilySelect=owEditorSelect.extend({sel:{arial:"Arial","comic sans ms":"Comic Sans","courier new":"Courier New",georgia:"Georgia",helvetica:"Helvetica",impact:"Impact","times new roman":"Times","trebuchet ms":"Trebuchet",verdana:"Verdana"},init:function(){this.setDisplay("Famille...");for(itm in this.sel)this.add(itm,'<font face="'+itm+'">'+this.sel[itm]+"</font>")}}),owEditorFontFormatSelect=owEditorSelect.extend({sel:{p:"Paragraph",
pre:"Pre",h6:"Heading 6",h5:"Heading 5",h4:"Heading 4",h3:"Heading 3",h2:"Heading 2",h1:"Heading 1"},init:function(){this.setDisplay("Format...");for(itm in this.sel){var a=itm.toUpperCase();this.add("<"+a+">","<"+itm+' style="padding: 0px; margin: 0px;">'+this.sel[itm]+"</"+a+">")}}});owEditors.registerPlugin(owPlugin,owSelectOptions);
var owLinkOptions={buttons:{link:{name:"Ajouter un lien",type:"owLinkButton",tags:["A"]},unlink:{name:"Retirer un lien",command:"unlink",noActive:!0}}},owLinkButton=owEditorAdvancedButton.extend({addPane:function(){this.ln=this.ne.selectedInstance.selElm().parentTag("A");this.addForm({"":{type:"title",txt:"Add/Edit Link"},href:{type:"text",txt:"URL",value:"http://",style:{width:"150px"}},title:{type:"text",txt:"Title"},target:{type:"select",txt:"Open In",options:{"":"Current Window",_blank:"New Window"},
style:{width:"100px"}}},this.ln)},submit:function(a){a=this.inputs.href.value;if("http://"==a||""==a)return alert("You must enter a URL to Create a Link"),!1;this.removePane();this.ln||(this.ne.owCommand("createlink","javascript:owTemp();"),this.ln=this.findElm("A","href","javascript:owTemp();"));this.ln&&this.ln.setAttributes({href:this.inputs.href.value,title:this.inputs.title.value,target:this.inputs.target.options[this.inputs.target.selectedIndex].value})}});
owEditors.registerPlugin(owPlugin,owLinkOptions);
var owColorOptions={buttons:{forecolor:{name:__("Changer couleur du texte"),type:"owEditorColorButton",noClose:!0},bgcolor:{name:__("Changer couleur du fond de texte"),type:"owEditorBgColorButton",noClose:!0}}},owEditorColorButton=owEditorAdvancedButton.extend({addPane:function(){var a={0:"00",1:"33",2:"66",3:"99",4:"CC",5:"FF"},b=(new bkElement("DIV")).setStyle({width:"270px"}),c;for(c in a)for(var d in a)for(var f in a){var e="#"+a[c]+a[f]+a[d],g=(new bkElement("DIV")).setStyle({cursor:"pointer",
height:"15px","float":"left"}).appendTo(b),l=(new bkElement("DIV")).setStyle({border:"2px solid "+e}).appendTo(g),e=(new bkElement("DIV")).setStyle({backgroundColor:e,overflow:"hidden",width:"11px",height:"11px"}).addEvent("click",this.colorSelect.closure(this,e)).addEvent("mouseover",this.on.closure(this,l)).addEvent("mouseout",this.off.closure(this,l,e)).appendTo(l);window.opera||(g.onmousedown=e.onmousedown=bkLib.cancelEvent)}this.pane.append(b.noSelect())},colorSelect:function(a){this.ne.owCommand("foreColor",
a);this.removePane()},on:function(a){a.setStyle({border:"2px solid #000"})},off:function(a,b){a.setStyle({border:"2px solid "+b})}}),owEditorBgColorButton=owEditorColorButton.extend({colorSelect:function(a){this.ne.owCommand("hiliteColor",a);this.removePane()}});owEditors.registerPlugin(owPlugin,owColorOptions);
var owImageOptions={buttons:{image:{name:"Ajouter une image",type:"owImageButton",tags:["IMG"]}}},owImageButton=owEditorAdvancedButton.extend({addPane:function(){this.im=this.ne.selectedInstance.selElm().parentTag("IMG");this.addForm({"":{type:"title",txt:"Ajouter/Editer une image"},src:{type:"text",txt:"URL",value:"http://",style:{width:"150px"}},alt:{type:"text",txt:"Desc.",style:{width:"100px"}},align:{type:"select",txt:"Align.",options:{none:"Basique",left:"Gauche",right:"Droite"}}},this.im)},
submit:function(a){a=this.inputs.src.value;if(""==a||"http://"==a)return alert("You must enter a Image URL to insert"),!1;this.removePane();this.im||(this.ne.owCommand("insertImage","javascript:owImTemp();"),this.im=this.findElm("IMG","src","javascript:owImTemp();"));this.im&&this.im.setAttributes({src:this.inputs.src.value,alt:this.inputs.alt.value,align:this.inputs.align.value})}});owEditors.registerPlugin(owPlugin,owImageOptions);
var owSaveOptions={buttons:{save:{name:__("Sauvegarder le contenu"),type:"owEditorSaveButton"}}},owEditorSaveButton=owEditorButton.extend({init:function(){this.ne.options.onSave||this.margin.setStyle({display:"none"})},mouseClick:function(){var a=this.ne.options.onSave,b=this.ne.selectedInstance;a(b.getContent(),b.elm.id,b)}});owEditors.registerPlugin(owPlugin,owSaveOptions);
var owUploadOptions={buttons:{upload:{name:"Uploader une image",type:"owUploadButton"}}},owUploadButton=owEditorAdvancedButton.extend({owURI:"owEditor/upload.php",addPane:function(){this.im=this.ne.selectedInstance.selElm().parentTag("IMG");this.myID=Math.round(Math.random()*Math.pow(10,15));this.requestInterval=1E3;this.uri=this.ne.options.uploadURI||this.owURI;owUploadButton.lastPlugin=this;this.myFrame=(new bkElement("iframe")).setAttributes({height:"100px",frameBorder:0,scrolling:"no"}).setStyle({border:0}).appendTo(this.pane.pane);
this.progressWrapper=(new bkElement("div")).setStyle({display:"none",height:"20px",border:"1px solid #ccc"}).appendTo(this.pane.pane);this.progress=(new bkElement("div")).setStyle({width:"0%",height:"20px",backgroundColor:"#ccc"}).setContent("&nbsp").appendTo(this.progressWrapper);setTimeout(this.addForm.closure(this),50)},addForm:function(){var a=this.myDoc=this.myFrame.contentWindow.document;a.open();a.write("<html><body>");a.write('<form method="post" action="'+this.uri+"?id="+this.myID+'" enctype="multipart/form-data">');
a.write('<input type="hidden" name="APC_UPLOAD_PROGRESS" value="'+this.myID+'" />');a.write('<div style="font-size: 14px; font-weight: bold; padding-top: 5px;">Inserer une image</div>');a.write('<input name="owImage" type="file" style="margin-top: 10px;" />');a.write("</form>");a.write("</body></html>");a.close();this.myBody=a.body;this.myForm=$BK(this.myBody.getElementsByTagName("form")[0]);this.myInput=$BK(this.myBody.getElementsByTagName("input")[1]).addEvent("change",this.startUpload.closure(this));
this.myStatus=(new bkElement("div",this.myDoc)).setStyle({textAlign:"center",fontSize:"14px"}).appendTo(this.myBody)},startUpload:function(){this.myForm.setStyle({display:"none"});this.myStatus.setContent('<img src="owEditor/loader.gif" style="float: right; margin-right: 40px;" /><strong>Upload en cours...</strong><br />Patientez...');this.myForm.submit();setTimeout(this.makeRequest.closure(this),this.requestInterval)},makeRequest:function(){if(this.pane&&this.pane.pane){owUploadButton.lastPlugin=
this;var a=(new bkElement("script")).setAttributes({type:"text/javascript",src:this.uri+"?check="+this.myID+"&rand="+Math.round(Math.random()*Math.pow(10,15))}).addEvent("load",function(){a.parentNode.removeChild(a)}).appendTo(document.getElementsByTagName("head")[0]);this.requestInterval&&setTimeout(this.makeRequest.closure(this),this.requestInterval)}},setProgress:function(a){this.progressWrapper.setStyle({display:"block"});this.progress.setStyle({width:a+"%"})},update:function(a){if(!1==a)this.progressWrapper.setStyle({display:"none"});
else if(a.url){this.setProgress(100);this.requestInterval=!1;this.im||(this.ne.selectedInstance.restoreRng(),this.ne.owCommand("insertImage","javascript:owImTemp();"),this.im=this.findElm("IMG","src","javascript:owImTemp();"));var b=parseInt(this.ne.selectedInstance.elm.getStyle("width"));this.im&&this.im.setAttributes({src:a.url,width:b&&a.width?Math.min(b,a.width):""});this.removePane()}else if(a.error)this.requestInterval=!1,this.setProgress(100),alert("There was an error uploading your image ("+
a.error+")."),this.removePane();else if(a.noprogress){if(this.progressWrapper.setStyle({display:"none"}),-1==this.uri.indexOf("http:")||-1!=this.uri.indexOf(window.location.host))this.requestInterval=!1}else this.setProgress(Math.round(75*(a.current/a.total))),a.interval&&(this.requestInterval=a.interval)}});owUploadButton.statusCb=function(a){owUploadButton.lastPlugin.update(a)};owEditors.registerPlugin(owPlugin,owUploadOptions);
var owXHTML=bkClass.extend({stripAttributes:["_moz_dirty","_moz_resizing","_extended"],noShort:["style","title","script","textarea","a"],cssReplace:{"font-weight:bold;":"strong","font-style:italic;":"em"},sizes:{1:"xx-small",2:"x-small",3:"small",4:"medium",5:"large",6:"x-large"},construct:function(a){this.ne=a;this.ne.options.xhtml&&a.addEvent("get",this.cleanup.closure(this))},cleanup:function(a){var b=a.getElm(),b=this.toXHTML(b);a.content=b},toXHTML:function(a,b,c){var d=c="",f="",e=a.nodeType,
g=a.nodeName.toLowerCase(),l=a.hasChildNodes&&a.hasChildNodes(),n=[];switch(e){case 1:var p=a.attributes;switch(g){case "b":g="strong";break;case "i":g="em";break;case "font":g="span"}if(b){for(e=0;e<p.length;e++){var k=p[e],m=k.nodeName.toLowerCase(),h=k.nodeValue;if(k.specified&&h&&!bkLib.inArray(this.stripAttributes,m)&&"function"!=typeof h){switch(m){case "style":k=h.replace(/ /g,"");for(itm in this.cssReplace)-1!=k.indexOf(itm)&&(n.push(this.cssReplace[itm]),k=k.replace(itm,""));f+=k;h="";break;
case "class":h=h.replace("Apple-style-span","");break;case "size":f+="font-size:"+this.sizes[h]+";",h=""}h&&(d+=" "+m+'="'+h+'"')}}f&&(d+=' style="'+f+'"');for(e=0;e<n.length;e++)c+="<"+n[e]+">";""==d&&"span"==g&&(b=!1);b&&(c+="<"+g,"br /"!=g&&(c+=d))}if(l||bkLib.inArray(this.noShort,m))for(b&&(c+=">"),e=0;e<a.childNodes.length;e++)(m=this.toXHTML(a.childNodes[e],!0,!0))&&(c+=m);else b&&(c+=" />");b&&l&&(c+="</"+g+">");for(e=0;e<n.length;e++)c+="</"+n[e]+">";break;case 3:c+=a.nodeValue}return c}});
owEditors.registerPlugin(owXHTML);
var owBBCode=bkClass.extend({construct:function(a){this.ne=a;if(this.ne.options.bbCode)for(itm in a.addEvent("get",this.bbGet.closure(this)),a.addEvent("set",this.bbSet.closure(this)),a=this.ne.loadedPlugins,a)a[itm].toXHTML&&(this.xhtml=a[itm])},bbGet:function(a){var b=this.xhtml.toXHTML(a.getElm());a.content=this.toBBCode(b)},bbSet:function(a){a.content=this.fromBBCode(a.content)},toBBCode:function(a){function b(b,d){a=a.replace(b,d)}b(/\n/gi,"");b(/<strong>(.*?)<\/strong>/gi,"[b]$1[/b]");b(/<em>(.*?)<\/em>/gi,
"[i]$1[/i]");b(/<span.*?style="text-decoration:underline;">(.*?)<\/span>/gi,"[u]$1[/u]");b(/<ul>(.*?)<\/ul>/gi,"[list]$1[/list]");b(/<li>(.*?)<\/li>/gi,"[*]$1[]");b(/<ol>(.*?)<\/ol>/gi,"[list=1]$1[/list]");b(/<img.*?src="(.*?)".*?>/gi,"[img]$1[/img]");b(/<a.*?href="(.*?)".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");b(/<br.*?>/gi,"\n");b(/<.*?>.*?<\/.*?>/gi,"");return a},fromBBCode:function(a){function b(b,d){a=a.replace(b,d)}b(/\[b\](.*?)\[\/b\]/gi,"<strong>$1</strong>");b(/\[i\](.*?)\[\/i\]/gi,"<em>$1</em>");
b(/\[u\](.*?)\[\/u\]/gi,'<span style="text-decoration:underline;">$1</span>');b(/\[list\](.*?)\[\/list\]/gi,"<ul>$1</ul>");b(/\[list=1\](.*?)\[\/list\]/gi,"<ol>$1</ol>");b(/\[\*\](.*?)\[\/\*\]/gi,"<li>$1</li>");b(/\[img\](.*?)\[\/img\]/gi,'<img src="$1" />');b(/\[url=(.*?)\](.*?)\[\/url\]/gi,'<a href="$1">$2</a>');b(/\n/gi,"<br />");return a}});owEditors.registerPlugin(owBBCode);
var owEditor=owEditor.extend({floatingPanel:function(){this.floating=(new bkElement("DIV")).setStyle({position:"absolute",top:"-1000px"}).appendTo(document.body);this.addEvent("focus",this.reposition.closure(this)).addEvent("blur",this.hide.closure(this));this.setPanel(this.floating)},reposition:function(){var a=this.selectedInstance.e;this.floating.setStyle({width:(parseInt(a.getStyle("width"))||a.clientWidth)+"px"});var b=a.offsetTop-this.floating.offsetHeight;0>b&&(b=a.offsetTop+a.offsetHeight);
this.floating.setStyle({top:b+"px",left:a.offsetLeft+"px",display:"block"})},hide:function(){this.floating.setStyle({top:"-1000px"})}}),owCodeOptions={buttons:{xhtml:{name:"Modifier le code source HTML",type:"owCodeButton"}}},owCodeButton=owEditorAdvancedButton.extend({width:"350px",addPane:function(){this.addForm({"":{type:"title",txt:"Edit HTML"},code:{type:"content",value:this.ne.selectedInstance.getContent(),style:{width:"340px",height:"200px"}}})},submit:function(a){this.ne.selectedInstance.setContent(this.inputs.code.value);
this.removePane()}});owEditors.registerPlugin(owPlugin,owCodeOptions);

162
admin/owEditor/upload.php Executable file
View file

@ -0,0 +1,162 @@
<?php
define('OWUPLOAD_PATH', "../../data/images");
define('OWUPLOAD_URI', "../../data/images");
$owupload_allowed_extensions = array('jpg','jpeg','png','gif','bmp');
$rfc1867 = function_exists('apc_fetch') && ini_get('apc.rfc1867');
$id = $_POST['APC_UPLOAD_PROGRESS'];
if(empty($id)) $id = $_GET['id'];
if($_SERVER['REQUEST_METHOD']=='POST')
{
$file = $_FILES['owImage'];
$image = $file['tmp_name'];
$max_upload_size = ini_max_upload_size();
$ext = strtolower(substr(strrchr($file['name'], '.'), 1));
@$size = getimagesize($image);
$filename = $id.'.'.$ext;
$path = OWUPLOAD_PATH.'/'.$filename;
if(!move_uploaded_file($image, $path)) {
owupload_error('Impossible de déplacer le fichier.');
}
if($rfc1867) {
$status = apc_fetch('upload_'.$id);
}
if(!$status) {
$status = array();
}
$status['done'] = 1;
$status['width'] = $size[0];
$status['url'] = owupload_file_uri($filename);
if($rfc1867) {
apc_store('upload_'.$id, $status);
}
owupload_output($status, $rfc1867);
exit;
}
else if(isset($_GET['check']))
{
$check = $_GET['check'];
if($rfc1867) {
$status = apc_fetch('upload_'.$check);
if($status['total'] > 500000 && $status['current']/$status['total'] < 0.9 ) { // Large file and we are < 90% complete
$status['interval'] = 3000;
} else if($status['total'] > 200000 && $status['current']/$status['total'] < 0.8 ) { // Is this a largeish file and we are < 80% complete
$status['interval'] = 2000;
} else {
$status['interval'] = 1000;
}
owupload_output($status);
} else {
$status = array();
$status['noprogress'] = true;
foreach($owupload_allowed_extensions as $e) {
if(file_exists(OWUPLOAD_PATH.'/'.$check.'.'.$e)) {
$ext = $e;
break;
}
}
if($ext) {
$status['url'] = owupload_file_uri($check.'.'.$ext);
}
owupload_output($status);
}
}
// Display error
function owupload_error($msg)
{
echo owupload_output(array('error' => $msg));
}
function owupload_output($status, $showLoadingMsg = false)
{
$script = '
try
{
'.(($_SERVER['REQUEST_METHOD']=='POST') ? 'top.' : '').'owUploadButton.statusCb('.json_encode($status).');
} catch(e) { alert(e.message); }
';
if($_SERVER['REQUEST_METHOD']=='POST')
{
echo '<script>'.$script.'</script>';
}
else
{
echo $script;
}
if($_SERVER['REQUEST_METHOD']=='POST' && $showLoadingMsg)
{
echo
<<<END
<html><body>
<div id="uploadingMessage" style="text-align: center; font-size: 14px;">
<img src="owEditor/loader.gif" style="float: right; margin-right: 40px;" />
<strong>Upload en cours...</strong><br />
</div>
</body></html>
END;
}
exit;
}
function owupload_file_uri($filename)
{
$path = $_SERVER['PHP_SELF'];
$file = basename ($path);
if($_SERVER['SERVER_PORT']!=80) $base = str_replace($file,"", $_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['SCRIPT_NAME']);
else $base = str_replace($file,"", $_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']);
$base = str_replace('/admin/owEditor/','', $base);
//$folder = "http://".$base."/data/images"; // => 127*/.../*images
$folder = "../../data/images"; // => 127*/.../*images
return $folder.'/'.$filename;
}
function ini_max_upload_size()
{
$post_size = ini_get('post_max_size');
$upload_size = ini_get('upload_max_filesize');
if(!$post_size) $post_size = '8M';
if(!$upload_size) $upload_size = '2M';
return min( ini_bytes_from_string($post_size), ini_bytes_from_string($upload_size) );
}
function ini_bytes_from_string($val)
{
$val = trim($val);
$last = strtolower($val[strlen($val)-1]);
switch($last) {
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}
function bytes_to_readable( $bytes )
{
if ($bytes<=0)
return '0 Byte';
$convention=1000; //[1000->10^x|1024->2^x]
$s=array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB');
$e=floor(log($bytes,$convention));
return round($bytes/pow($convention,$e),2).' '.$s[$e];
}
?>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 B

View file

@ -1,214 +0,0 @@
TINY={};
function T$(i){return document.getElementById(i)}
function T$$$(){return document.all?1:0}
TINY.editor=function(){
var c=[], offset=-30;
c['cut']=[1,'Cut','a','cut',1];
c['copy']=[2,'Copy','a','copy',1];
c['paste']=[3,'Paste','a','paste',1];
c['bold']=[4,'Bold','a','bold'];
c['italic']=[5,'Italic','a','italic'];
c['underline']=[6,'Underline','a','underline'];
c['strikethrough']=[7,'Strikethrough','a','strikethrough'];
c['subscript']=[8,'Subscript','a','subscript'];
c['superscript']=[9,'Superscript','a','superscript'];
c['orderedlist']=[10,'Insert Ordered List','a','insertorderedlist'];
c['unorderedlist']=[11,'Insert Unordered List','a','insertunorderedlist'];
c['outdent']=[12,'Outdent','a','outdent'];
c['indent']=[13,'Indent','a','indent'];
c['leftalign']=[14,'Left Align','a','justifyleft'];
c['centeralign']=[15,'Center Align','a','justifycenter'];
c['rightalign']=[16,'Right Align','a','justifyright'];
c['blockjustify']=[17,'Block Justify','a','justifyfull'];
c['undo']=[18,'Undo','a','undo'];
c['redo']=[19,'Redo','a','redo'];
c['image']=[20,'Insert Image','i','insertimage','Enter Image URL:','http://'];
c['hr']=[21,'Insert Horizontal Rule','a','inserthorizontalrule'];
c['link']=[22,'Insert Hyperlink','i','createlink','Enter URL:','http://'];
c['unlink']=[23,'Remove Hyperlink','a','unlink'];
c['unformat']=[24,'Remove Formatting','a','removeformat'];
c['print']=[25,'Print','a','print'];
function edit(n,obj){
this.n=n; window[n]=this; this.t=T$(obj.id); this.obj=obj; this.xhtml=obj.xhtml;
var p=document.createElement('div'), w=document.createElement('div'), h=document.createElement('div'),
l=obj.controls.length, i=0;
this.i=document.createElement('iframe'); this.i.frameBorder=0;
this.i.width=obj.width||'500'; this.i.height=obj.height||'250'; this.ie=T$$$();
h.className=obj.rowclass||'teheader'; p.className=obj.cssclass||'te'; p.style.width=this.i.width+'px'; p.appendChild(h);
for(i;i<l;i++){
var id=obj.controls[i];
if(id=='n'){
h=document.createElement('div'); h.className=obj.rowclass||'teheader'; p.appendChild(h)
}else if(id=='|'){
var d=document.createElement('div'); d.className=obj.dividerclass||'tedivider'; h.appendChild(d)
}else if(id=='font'){
var sel=document.createElement('select'), fonts=obj.fonts||['Verdana','Arial','Georgia'], fl=fonts.length, x=0;
sel.className='tefont'; sel.onchange=new Function(this.n+'.ddaction(this,"fontname")');
sel.options[0]=new Option('Font','');
for(x;x<fl;x++){
var font=fonts[x];
sel.options[x+1]=new Option(font,font)
}
h.appendChild(sel)
}else if(id=='size'){
var sel=document.createElement('select'), sizes=obj.sizes||[1,2,3,4,5,6,7], sl=sizes.length, x=0;
sel.className='tesize'; sel.onchange=new Function(this.n+'.ddaction(this,"fontsize")');
for(x;x<sl;x++){
var size=sizes[x];
sel.options[x]=new Option(size,size)
}
h.appendChild(sel)
}else if(id=='style'){
var sel=document.createElement('select'),
styles=obj.styles||[['Style',''],['Paragraph','<p>'],['Header 1','<h1>'],['Header 2','<h2>'],['Header 3','<h3>'],['Header 4','<h4>'],['Header 5','<h5>'],['Header 6','<h6>']],
sl=styles.length, x=0;
sel.className='testyle'; sel.onchange=new Function(this.n+'.ddaction(this,"formatblock")');
for(x;x<sl;x++){
var style=styles[x];
sel.options[x]=new Option(style[0],style[1])
}
h.appendChild(sel)
}else if(c[id]){
var div=document.createElement('div'), x=c[id], func=x[2], ex, pos=x[0]*offset;
div.className=obj.controlclass;
div.style.backgroundPosition='0px '+pos+'px';
div.title=x[1];
ex=func=='a'?'.action("'+x[3]+'",0,'+(x[4]||0)+')':'.insert("'+x[4]+'","'+x[5]+'","'+x[3]+'")';
div.onclick=new Function(this.n+(id=='print'?'.print()':ex));
div.onmouseover=new Function(this.n+'.hover(this,'+pos+',1)');
div.onmouseout=new Function(this.n+'.hover(this,'+pos+',0)');
h.appendChild(div);
if(this.ie){div.unselectable='on'}
}
}
this.t.parentNode.insertBefore(p,this.t); this.t.style.width=this.i.width+'px';
w.appendChild(this.t); w.appendChild(this.i); p.appendChild(w); this.t.style.display='none';
if(obj.footer){
var f=document.createElement('div'); f.className=obj.footerclass||'tefooter';
if(obj.toggle){
var to=obj.toggle, ts=document.createElement('div');
ts.className=to.cssclass||'toggle'; ts.innerHTML=obj.toggletext||'source';
ts.onclick=new Function(this.n+'.toggle(0,this);return false');
f.appendChild(ts)
}
if(obj.resize){
var ro=obj.resize, rs=document.createElement('div'); rs.className=ro.cssclass||'resize';
rs.onmousedown=new Function('event',this.n+'.resize(event);return false');
rs.onselectstart=function(){return false};
f.appendChild(rs)
}
p.appendChild(f)
}
this.e=this.i.contentWindow.document; this.e.open();
var m='<html><head>', bodyid=obj.bodyid?" id=\""+obj.bodyid+"\"":"";
if(obj.cssfile){m+='<link rel="stylesheet" href="'+obj.cssfile+'" />'}
if(obj.css){m+='<style type="text/css">'+obj.css+'</style>'}
m+='</head><body'+bodyid+'>'+(obj.content||this.t.value);
m+='</body></html>';
this.e.write(m);
this.e.close(); this.e.designMode='on'; this.d=1;
if(this.xhtml){
try{this.e.execCommand("styleWithCSS",0,0)}
catch(e){try{this.e.execCommand("useCSS",0,1)}catch(e){}}
}
};
edit.prototype.print=function(){
this.i.contentWindow.print()
},
edit.prototype.hover=function(div,pos,dir){
div.style.backgroundPosition=(dir?'34px ':'0px ')+(pos)+'px'
},
edit.prototype.ddaction=function(dd,a){
var i=dd.selectedIndex, v=dd.options[i].value;
this.action(a,v)
},
edit.prototype.action=function(cmd,val,ie){
if(ie&&!this.ie){
alert('Your browser does not support this function.')
}else{
this.e.execCommand(cmd,0,val||null)
}
},
edit.prototype.insert=function(pro,msg,cmd){
var val=prompt(pro,msg);
if(val!=null&&val!=''){this.e.execCommand(cmd,0,val)}
},
edit.prototype.setfont=function(){
execCommand('formatblock',0,hType)
},
edit.prototype.resize=function(e){
if(this.mv){this.freeze()}
this.i.bcs=TINY.cursor.top(e);
this.mv=new Function('event',this.n+'.move(event)');
this.sr=new Function(this.n+'.freeze()');
if(this.ie){
document.attachEvent('onmousemove',this.mv); document.attachEvent('onmouseup',this.sr)
}else{
document.addEventListener('mousemove',this.mv,1); document.addEventListener('mouseup',this.sr,1)
}
},
edit.prototype.move=function(e){
var pos=TINY.cursor.top(e);
this.i.height=parseInt(this.i.height)+pos-this.i.bcs;
this.i.bcs=pos
},
edit.prototype.freeze=function(){
if(this.ie){
document.detachEvent('onmousemove',this.mv); document.detachEvent('onmouseup',this.sr)
}else{
document.removeEventListener('mousemove',this.mv,1); document.removeEventListener('mouseup',this.sr,1)
}
},
edit.prototype.toggle=function(post,div){
if(!this.d){
var v=this.t.value;
if(div){div.innerHTML=this.obj.toggletext||'source'}
if(this.xhtml&&!this.ie){
v=v.replace(/<strong>(.*)<\/strong>/gi,'<span style="font-weight: bold;">$1</span>');
v=v.replace(/<em>(.*)<\/em>/gi,'<span style="font-weight: italic;">$1</span>')
}
this.e.body.innerHTML=v;
this.t.style.display='none'; this.i.style.display='block'; this.d=1
}else{
var v=this.e.body.innerHTML;
if(this.xhtml){
v=v.replace(/<span class="apple-style-span">(.*)<\/span>/gi,'$1');
v=v.replace(/ class="apple-style-span"/gi,'');
v=v.replace(/<span style="">/gi,'');
v=v.replace(/<br>/gi,'<br />');
v=v.replace(/<br ?\/?>$/gi,'');
v=v.replace(/^<br ?\/?>/gi,'');
v=v.replace(/(<img [^>]+[^\/])>/gi,'$1 />');
v=v.replace(/<b\b[^>]*>(.*?)<\/b[^>]*>/gi,'<strong>$1</strong>');
v=v.replace(/<i\b[^>]*>(.*?)<\/i[^>]*>/gi,'<em>$1</em>');
v=v.replace(/<u\b[^>]*>(.*?)<\/u[^>]*>/gi,'<span style="text-decoration:underline">$1</span>');
v=v.replace(/<(b|strong|em|i|u) style="font-weight: normal;?">(.*)<\/(b|strong|em|i|u)>/gi,'$2');
v=v.replace(/<(b|strong|em|i|u) style="(.*)">(.*)<\/(b|strong|em|i|u)>/gi,'<span style="$2"><$4>$3</$4></span>');
v=v.replace(/<span style="font-weight: normal;?">(.*)<\/span>/gi,'$1');
v=v.replace(/<span style="font-weight: bold;?">(.*)<\/span>/gi,'<strong>$1</strong>');
v=v.replace(/<span style="font-style: italic;?">(.*)<\/span>/gi,'<em>$1</em>');
v=v.replace(/<span style="font-weight: bold;?">(.*)<\/span>|<b\b[^>]*>(.*?)<\/b[^>]*>/gi,'<strong>$1</strong>')
}
if(div){div.innerHTML=this.obj.toggletext||'wysiwyg'}
this.t.value=v;
if(!post){
this.t.style.height=this.i.height+'px';
this.i.style.display='none'; this.t.style.display='block'; this.d=0
}
}
},
edit.prototype.post=function(){
if(this.d){this.toggle(1)}
};
return{edit:edit}
}();
TINY.cursor=function(){
return{
top:function(e){
return T$$$()?window.event.clientY+document.documentElement.scrollTop+document.body.scrollTop:e.clientY+window.scrollY
}
}
}();

View file

@ -1,22 +0,0 @@
#input {border:none; margin:0; padding:0; font:10px 'Courier New',Verdana; border:0}
.te select{
padding: 1px;
}
.te {border:1px solid #5EB2DC; padding:0 1px 1px; font:12px Verdana,Arial}
.te iframe {border:none}
.teheader {height:31px; border-bottom:1px solid #5EB2DC; background:url(images/header-bg.gif) repeat-x; padding-top:1px}
.teheader select {float:left; margin-top:5px}
.tefont {margin-left:12px}
.tesize {margin:0 3px}
.testyle {margin-right:12px}
.tecolor {margin:0 3px}
.tedivider {float:left; width:1px; height:30px; background:#ccc}
.tecontrol {float:left; width:34px; height:30px; cursor:pointer; background-image:url(images/icons.png)}
.tecontrol:hover {background-color:#fff; background-position:30px 0}
.tefooter {height:32px; border-top:1px solid #5EB2DC; background:#f5f5f5}
.toggle {float:left; background:url(images/icons.png) -34px 2px no-repeat; padding:9px 13px 0 31px; height:23px; border-right:1px solid #ccc; cursor:pointer; color:#666}
.toggle:hover {background-color:#fff}
.resize {float:right; height:32px; width:32px; background:url(images/resize.gif) 15px 15px no-repeat; }
#editor {cursor:text;}

2
core/.htaccess Executable file
View file

@ -0,0 +1,2 @@
Options -Indexes
deny from all

25
core/base.php Executable file
View file

@ -0,0 +1,25 @@
<?php
$contenu = lecture_xml($DATA_PAGES.$lecture_pages[$id].'.xml');
if(file_exists("modules/".$contenu['page']['type']['#text']."/base.php")==FALSE || $contenu['page']['etat']['#text']==0)
echo "<span class='erreur'>Impossible d'accéder à la page demandée.</span>";
else include_once("modules/".$contenu['page']['type']['#text']."/base.php");
// Obtention des informations dans la librairie information
if (isset($_GET['owInfo']) || strpos($_SERVER["REQUEST_URI"], 'owInfo')!==FALSE)
{ ?>
<div id="DeadZone"></div>
<div id="LifeZone">
<h1>Moteur généré par AEOS - CMS</h1>
<p><img src="themes/system/images/logo_black.png" alt="Logo" /></p>
<p>
<?php echo "AEOS v".AEOS_VERSION; ?>
</p>
<p>
Copyright © 2004 - <?php echo date('Y'); ?> NNS Production. Tous droits rérvés.
</p>
<p>
<a href="<?php echo AEOS_REAL_URL; ?>">AEOS</a> est un logiciel libre sous licence GNU/GPL.
</p>
</div><?php
}
?>

6
core/footer.php Executable file
View file

@ -0,0 +1,6 @@
<?php
define('EXEC_END_TIME', microtime(true));
?>
<a href='<?php echo AEOS_REAL_URL; ?>' title='AEOS est un logiciel libre sous licence GNU/GPL.'>AEOS</a> v<?php echo AEOS_VERSION; ?> (<?php echo round(EXEC_END_TIME-EXEC_START_TIME, 3); ?>)<br />
<?php echo AEOS_FOOTER; ?><br />
<span style="font-size:10px;"><a href="<?php echo preg_match("/admin/", $_SERVER['SCRIPT_FILENAME'])?"../":"admin/"; ?>"><?php echo preg_match("/admin/", $_SERVER['SCRIPT_FILENAME'])?"Retour au site":"Administration"; ?></a> - <a href="#">Haut de page</a></span>

0
core/index.html Executable file
View file

16
core/menu.php Executable file
View file

@ -0,0 +1,16 @@
<?php
// Listings des pages + menu
$list=listing_ordre();
foreach ($list as &$pages)
{
$page = lecture_xml($DATA_PAGES.$pages);
if ($page['page']['etat']['#text']==1)
{
echo "<li><a href='".AEOS_REW.$page['page']['id']['#text']."-".valideURL($page['page']['nom']['#text'])."' title='".$page['page']['nom']['#text']."'>";
if ($page['page']['id']['#text']==$id){echo "<b>"; }
echo $page['page']['nom']['#text'];
if ($page['page']['id']['#text']==$id){echo "</b>"; }
echo "</a></li>";
}
}
?>

19
core/menu.php~ Executable file
View file

@ -0,0 +1,19 @@
<?php
// Listings des pages + menu
$list=listing_ordre();
$j=1;
foreach ($list as &$pages)
{
$page = lecture_xml($DATA_PAGES.$pages);
if ($page['page']['etat']['#text']==1)
{
echo "<li class='Each".$j."'><a href='".AEOS_REW.$page['page']['id']['#text']."-".valideURL($page['page']['nom']['#text'])."' title='".$page['page']['nom']['#text']."'>";
if ($page['page']['id']['#text']==$id){echo "<b>"; }
echo $page['page']['nom']['#text'];
if ($page['page']['id']['#text']==$id){echo "</b>"; }
echo "</a></li>";
}
$j++;
}
unset($j);
?>

7
credits.txt Normal file → Executable file
View file

@ -1,6 +1,5 @@
Crédits:
NNS Production pour le développement et le graphisme.
Michael Leigeber pour TinyEditor.
99ko pour l'idée.
holger1 pour une aide et certains fonctions PHP.
[NNS Production] Développement & Design
[Brian Kirchoff] Original nicEditor
[holger1] Fonction PHP XML2ARRAY

7
data/.htaccess Normal file → Executable file
View file

@ -1 +1,6 @@
deny from all
Options -Indexes
Deny from all
<FilesMatch "\.(gif|jpe?g|png|ttf|woff|svg|eot)$">
Allow from all
</FilesMatch>

29
data/config.xml Executable file
View file

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<nom_site>AEOS</nom_site>
<description_site>Version Stable d'AEOS.</description_site>
<lang>fr</lang>
<login_admin>admin</login_admin>
<email_admin>admin@admin.fr</email_admin>
<mdp_admin>21232f297a57a5a743894a0e4a801fc3</mdp_admin>
<accueil>1</accueil>
<theme>main</theme>
<contentd>0</contentd>
<version>0.4 [CALVARIUM]</version>
<maintenance>off</maintenance>
<debug>TRUE</debug>
<message>Site en maintenance</message>
<footer>
<![CDATA[
Copyright © 2013 NNS Production<br /><br />
AEOS est un logiciel libre sous licence GNU/GPL v3<br />
Toutes suggestions, patchs ou commentaires sont les bienvenues
]]>
</footer>
<update></update>
<urlrewriting>1</urlrewriting>
<urlrewriting_key/>
</configuration>

BIN
data/fonts/headline.eot Executable file

Binary file not shown.

121
data/fonts/headline.svg Executable file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 41 KiB

BIN
data/fonts/headline.ttf Executable file

Binary file not shown.

BIN
data/fonts/headline.woff Executable file

Binary file not shown.

BIN
data/fonts/simplesnails.eot Executable file

Binary file not shown.

220
data/fonts/simplesnails.svg Executable file
View file

@ -0,0 +1,220 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata></metadata>
<defs>
<font id="simplesnails_ver_4.0_regular" horiz-adv-x="1331" >
<font-face units-per-em="2048" ascent="1638" descent="-410" />
<missing-glyph horiz-adv-x="437" />
<glyph horiz-adv-x="2048" />
<glyph horiz-adv-x="2048" />
<glyph unicode="&#xd;" horiz-adv-x="508" />
<glyph unicode=" " horiz-adv-x="437" />
<glyph unicode="&#x09;" horiz-adv-x="437" />
<glyph unicode="&#xa0;" horiz-adv-x="437" />
<glyph unicode="!" horiz-adv-x="357" d="M114 24l2 21q83 116 100 115l20 -1q20 -5 19 -22q-5 -69 -112 -135l-10 1q-20 1 -19 21zM203 399q14 169 46.5 351.5t98.5 425.5t176.5 333t11.5 -101q-216 -645 -237 -813t-42 -198t-35 -29h-10q0 11 -9 31z" />
<glyph unicode="&#x22;" horiz-adv-x="767" d="M285 1121q-51 62 27 425l43 115q27 70 68 62q14 -16 24 -21l-4 -9q-84 -360 -105 -548q-17 -26 -53 -24zM476 1121q-51 62 27 425l43 115q27 70 68 62q14 -16 24 -21l-4 -9q-84 -360 -105 -548q-17 -26 -53 -24z" />
<glyph unicode="#" horiz-adv-x="1297" d="M23 213l12 105q164 -26 195 29q51 58 64 146l18 70q0 78 -142 56q-52 0 -52 26v26q29 48 230 90q70 85 112 290l52 30l30 -43q-39 -141 -78 -261l111 -8h13q143 -43 213 286l60 35q48 9 13 -87l-52 -142l-17 -74q16 -70 284 -13v-39q-19 -50 -91 -64l-65 -13h-116 q-47 0 -107 -233v-39q-15 -70 72 -52h116l104 22l-8 -57q-87 -58 -333 -73q-26 -171 -73 -317l-99 -19l56 172q48 190 -65 143h-65q-108 39 -122 -204q-29 -111 -69 -125l-47 5l13 129l29 212zM377 359q14 -26 125 -30.5t139 286.5v13q0 18 -39 39l-96 -9 q-109 -39 -129 -260v-39z" />
<glyph unicode="$" horiz-adv-x="1014" d="M-30 363q29 136 121 137q-21 -239 79 -318.5t176 -53.5q62 27 70 205t36 395q-93 56 -199.5 180t-29.5 299t333 176q28 190 62 223t35 -17.5t-16 -215.5q57 -2 121 -56t71.5 -110.5t-32.5 -74t-86 18.5q-6 105 -80 122q-44 -193 -76 -495q202 -160 214 -340.5 t-100.5 -295t-205.5 -126.5q-49 -259 -63 -288t-34 2t3 280q-199 6 -304 108t-95 245zM297.5 1110q-8.5 -76 34 -146.5t98 -112.5t90.5 341q25 101 -47.5 94.5t-119.5 -53.5t-55.5 -123zM495 214.5q-8 -65.5 33.5 -67.5t102 69.5t58.5 187.5t-142 270q-14 -47 -27 -154.5 t-15 -173.5t-10 -131.5z" />
<glyph unicode="%" horiz-adv-x="1007" d="M52 9q141 222 278 526t237.5 477t150.5 300q-1 16 -267 -4q-29 -146 -80 -205q-102 -156 -207 -134q-32 9 -35 62q-14 297 191 467q113 -101 184 -107.5t185 15.5t260 150q18 12 42 13q1 -21 12 -21q-165 -195 -287.5 -419.5t-256.5 -520.5t-133 -314l2 -32 q32 -42 190 -19q51 153 148 275q98 133 212 85q76 -27 79 -91l-14 -140q-54 -223 -208 -335q-62 -50 -115 -52q-85 0 -89 81q18 74 15 128q-287 -20 -345 -142.5t-91 -115.5q-55 3 -56 31zM213 1157q-6 -62 43 -50q96 101 104 218v10q-1 22 -23 21l-21 -1q-32 -1 -103 -198z M639 162q21 -43 38 -42l32 1q134 108 151 290l-3 64q-1 21 -22 20l-32 -2q-90 -20 -163 -279z" />
<glyph unicode="&#x26;" horiz-adv-x="1251" d="M134 67q8 94 226 264q-76 111 -57 245t193 171t220 -85t-222 -317q38 -56 91 -122q39 4 142.5 114t230.5 278l45 9q-198 -287 -328 -398q-24 -24 -29 -56q58 -81 179 -54q56 -24 34.5 -68.5t-100 -44.5t-160.5 93l-59 -3q-237 -172 -325.5 -146t-80.5 120zM259.5 120.5 q-28.5 -78.5 52 -74.5t187.5 107q-42 52 -93 113q-118 -67 -146.5 -145.5zM404.5 589q-32.5 -78 62.5 -184q142 86 152 181t-86 88t-128.5 -85z" />
<glyph unicode="'" horiz-adv-x="434" d="M182.5 1183.5q13.5 68.5 32 144.5t31 138t29 110.5t56.5 70.5q70 -91 30 -174t-68 -152.5t-60 -135t-48 -68t-2.5 66z" />
<glyph unicode="(" horiz-adv-x="689" d="M40.5 90q-31.5 323 58.5 640.5t213.5 515t235.5 308.5t125 86.5t-90.5 -147.5t-231.5 -412t-167 -620t3.5 -560t146.5 -411q-4 -81 -133 98t-160.5 502z" />
<glyph unicode=")" horiz-adv-x="605" d="M-192 -561q-6 39 53 85.5t191 200.5t241 413.5t137.5 539.5t-16 512t-77 309t-48 139t38.5 28t159.5 -305.5t80 -628t-134 -594.5t-222 -376t-255.5 -250t-148 -73z" />
<glyph unicode="*" horiz-adv-x="818" d="M115.5 1160.5q-12.5 13.5 4.5 38t143 35.5t126 14.5t-32 85.5t-48 112.5t-10 59t41 20t69 -109.5t41.5 -104.5t15 -3.5t79 98t106.5 93.5t2.5 -48t-88.5 -111.5t-56 -80t14.5 -11t86 2.5t100.5 -1t26.5 -19.5t-75.5 -27t-119 -31v-7q96 -171 93 -194t-32 -19t-93.5 101 t-77 90.5t-46.5 -59t-60 -108.5t-49.5 -70t-39 3.5t1.5 49t67.5 115t50.5 87.5t-8 7.5t-59.5 3t-106.5 -13t-67.5 1z" />
<glyph unicode="+" horiz-adv-x="874" d="M60 454q30 62 249 59q46 262 127 276q55 0 44 -59l-27 -114l-12 -87q18 -1 262 -6q-46 -75 -155 -78.5t-128 -13.5l-27 -144l-16 -98q-10 -92 -55.5 -42t-39.5 135l16 148q-72 -3 -72 3l-65 -6h-46q-55 0 -55 27z" />
<glyph unicode="," horiz-adv-x="373" d="M-66 -275q-29 24 21 64t104.5 110.5t68.5 147.5l3 53q-9 29 -13 61.5t15.5 58t74.5 21.5q70 -35 24 -148.5t-128 -213.5q-67 -87 -170 -154z" />
<glyph unicode="-" horiz-adv-x="804" d="M138 385.5q68 42.5 156 46t123 2.5t66 -1q194 16 158 -9t-107 -50q-86 -3 -171.5 -6.5t-189 -14t-35.5 32z" />
<glyph unicode="." horiz-adv-x="445" d="M118 58q48 137 82 137h27q20 0 41 -41v-27q-10 -137 -82 -137q-36 0 -68 68z" />
<glyph unicode="/" horiz-adv-x="328" d="M-27 -128q-58 -13 39.5 276t175.5 468q363 1077 394 947q5 -141 -54 -224q-8 -85 -125 -423l-241 -602q-131 -429 -189 -442z" />
<glyph unicode="0" horiz-adv-x="677" d="M-127 488q184 835 568 987q140 -7 160 -120q33 -219 -36 -591q-94 -390 -228 -571q-52 -123 -171 -182t-227.5 31t-65.5 446zM20 227q39 -165 113 -129.5t160 178.5q113 164 168 440q50 196 58.5 340t-1.5 207.5t-38 96.5t-96 26q-163 -72 -286 -518q-107 -348 -78 -641z " />
<glyph unicode="1" horiz-adv-x="597" d="M-120 502q13 41 53.5 82t110.5 121q172 197 356 626q35 82 83 101.5t96 7.5q-116 -275 -156 -422t-70.5 -265.5t-58 -302.5t-45.5 -340.5t-49 -153.5t-47 29t-12 123t14 166.5t39.5 196t65.5 284.5l35 125l-68 -69q-148 -186 -206.5 -242.5t-106 -82t-34.5 15.5z" />
<glyph unicode="2" horiz-adv-x="970" d="M-163.5 189q70.5 176 188 300.5t163.5 53.5t105 -213q170 186 300 404.5t135.5 377t-108.5 195.5t-215 -63t-99 -184q-8 -81 -52.5 -69.5t-3.5 137t168.5 216.5t275 55t159 -214.5t-119.5 -405t-396 -551.5q112 -162 270 -172.5t289 185.5q77 -4 -41 -132.5 t-234.5 -133.5t-209 35.5t-173.5 142.5q-213 -194 -342.5 -167t-59 203zM-70 123q-18 -130 125.5 -16.5t130.5 145.5t-58 118.5t-112.5 -15.5t-85.5 -232z" />
<glyph unicode="3" horiz-adv-x="726" d="M-167 108.5q-20 98.5 51 179t123.5 65.5t54 -62.5t-58 -80t-61.5 -75t70 -41t172.5 72t182.5 193t105 270t-8 196.5t-72.5 54.5t-94.5 -31.5t-72 -76t-62.5 -47.5t-32.5 53.5t125 147q223 252 226 317t-20 79t-49 10t-48.5 -30.5t-58.5 -18.5l-10 25q78 126 155.5 139.5 t124.5 -17.5t51 -90t-16.5 -107.5t-80.5 -114t-83 -103.5q128 -47 155 -182t-52.5 -339t-242 -348t-308 -140t-165.5 102.5z" />
<glyph unicode="4" horiz-adv-x="775" d="M-172.5 509q5.5 22 85 130.5t176.5 239.5q161 210 257 460q25 90 135 117q91 -64 -323 -632q-88 -128 -110 -169q-4 -50 78 -29q104 23 173.5 55.5t116.5 117.5q98 270 157 431q66 190 162 236t-41 -205l-119 -253l-35 -114q-76 -193 44 -126l91 41l111 63l-16 -66 q-95 -76 -167 -111q-82 -35 -123 -76q-48 -204 -59.5 -303t-18.5 -172t-47 -163q-97 -50 -89 57t62 378q57 206 1.5 178t-215 -75t-175.5 -58t-46 -17.5t-50.5 18.5t-15 47z" />
<glyph unicode="5" horiz-adv-x="792" d="M-194 123q-14 141 133 238h33q0 -21 11 -21q-44 -84 -44 -109v-44q30 -87 79 -103h83q119 5 258 214q83 119 109 286q26 335 -170 306q-50 0 -145 -96t-112 -11q23 108 92 327q80 280 259 290l242 7q245 22 280 36l45 1l23 -30l-32 -39q-227 -44 -575 -94 q-171 -136 -150 -295l138 40q195 -47 194 -236l5 -107q10 -144 -81 -355q-72 -111 -143 -172q-157 -176 -358 -176q-143 0 -174 143z" />
<glyph unicode="6" horiz-adv-x="718" d="M-122 182q-23 391 278 925q189 331 408 327q144 -31 84 -258q-120 -106 -61 108l-34 39l-53 9q-212 -32 -427 -644q-54 -133 -90 -396q136 260 292.5 400t258.5 158q58 -23 60 -124q-69 -279 -206 -462q-50 -104 -172 -207q-114 -77 -218.5 -56.5t-119.5 181.5zM34 214 q3 -87 103 -93q133 58 237 225q103 206 111 312l3 49q1 19 -18 20l-20 1q-53 3 -195 -156q-215 -243 -221 -358z" />
<glyph unicode="7" horiz-adv-x="699" d="M4 1445q225 -6 387 3t224 17t161 8q13 -105 -115 -278t-240 -388t-181.5 -394t-75 -311.5t-81.5 -115.5q-54 48 -44.5 135.5t54.5 232t239.5 474.5t252 431t-201.5 92t-282 -9t-62.5 13t-34.5 90z" />
<glyph unicode="8" horiz-adv-x="654" d="M-166.5 214q24.5 158 262.5 393q88 84 107 138q-54 111 -88 298q0 316 291 423l42 -9q39 22 85 24l11 1q96 4 101 -109q-60 -332 -311 -585q10 -64 99 -343q6 -195 -77 -307.5t-200.5 -147.5t-232 15.5t-90 208.5zM-33 188q10 -109 85 -114q119 -29 214 130 q49 109 43 193q-43 275 -123 198q-205 -212 -219 -407zM265 1121.5q-6 -85.5 1.5 -137.5t13.5 -83.5t47 -11.5q222 251 214 437q-2 58 -46 62q-90 -4 -157 -92.5t-73 -174z" />
<glyph unicode="9" horiz-adv-x="721" d="M-216 138.5q0 79.5 50.5 103t86.5 3.5t35 -89.5t62 -85.5q245 -4 398 453q81 270 102 451l-13 86q-2 14 -23 27q-24 -68 -200 -274q-47 -46 -136 -74q-86 9 -78 75q13 240 146 411q207 221 275 221q42 31 115 -24q22 44 95 90q26 2 54 -46q3 -19 -114 -366 q-73 -435 -133 -603q-119 -285 -265 -395.5t-248 -116t-155.5 34t-53.5 119zM165 891q24 -25 41 -24l10 2q240 202 300 392q-20 71 -46 68l-61 -6q-125 -11 -234 -337z" />
<glyph unicode=":" horiz-adv-x="437" d="M116 98q3 60 112 110q29 -1 51 -56q-43 -118 -95 -130q-27 2 -68 76zM170 463l1 35q60 78 121 75q53 -2 60 -75q-76 -103 -150 -100q-35 17 -32 65z" />
<glyph unicode=";" horiz-adv-x="469" d="M-36.5 -291q29.5 24 81 79.5t74.5 109.5t24 107t2.5 76t27 47t70.5 15q57 -32 20 -135.5t-109 -187.5q-103 -123 -186 -151q-34 16 -4.5 40zM215 286q19 124 61.5 121t46.5 -67.5t-61 -105.5l-26 2q-18 1 -21 50z" />
<glyph unicode="&#x3c;" horiz-adv-x="959" d="M140 492.5q57 61.5 207 138.5q75 45 344 193l24 8l8 -23q-4 -33 -222 -165l-233 -149q-7 -63 168 -197q176 -111 207.5 -244t-79 -38t-263.5 224q-81 62 -159 111q-59 80 -2 141.5z" />
<glyph unicode="=" horiz-adv-x="1143" d="M243 229q0 10 51 40q100 18 159.5 17.5t99.5 -0.5t196 -11q193 -48 -445 -89q-61 11 -61 43zM301 444q0 10 51 39q100 18 159.5 18h99.5t196 -12q193 -47 -446 -88q-60 11 -60 43z" />
<glyph unicode="&#x3e;" horiz-adv-x="938" d="M131 29q4 33 222 185l192 149q7 63 -168 197q-178 94 -206.5 225t80 36.5t225.5 -180t195 -134.5q59 -80 2 -141.5t-172.5 -139.5t-337.5 -212l-24 -8z" />
<glyph unicode="?" horiz-adv-x="648" d="M206 -2v27q0 74 69 109h54v-55q0 -18 -82 -81h-41zM223 1161.5q28 166.5 233 273.5t339 1t92.5 -295t-263 -364t-259.5 -286.5t-69.5 -121t-9 139t141.5 208.5q254 231 315.5 371.5t-11.5 227t-209 42.5t-207 -258q21 -124 -50 -114.5t-43 176z" />
<glyph unicode="@" horiz-adv-x="1700" d="M227 607q33 190 119.5 331t187 227.5t221 144t260.5 56.5t245.5 -84t129.5 -234t-37.5 -314t-181.5 -267q-121 -91 -224 -71t-49 228q-83 -128 -126 -168.5t-94.5 -61t-103 -7.5t-68.5 57t3.5 143t101.5 204t164.5 146.5t153.5 37.5q165 3 175 -42q-85 -131 -119.5 -284 t24 -169.5t139.5 54.5q85 73 125.5 182.5t30.5 250t-75 213.5t-162.5 89.5t-213.5 -18t-217.5 -118t-181 -212t-109.5 -269t-4.5 -282.5t150 -224.5t284.5 -59.5t284 110t188 170.5t71.5 56t-66.5 -119t-170.5 -165t-213.5 -115t-239 -32.5q-165 2 -265 93t-135 212t-2 311z M631 596q-5 -71 22 -83l27 -3q96 37 160 144.5t66.5 172t-61 51.5t-127.5 -92t-87 -190z" />
<glyph unicode="A" d="M-129 101q19 74 70 74q5 0 10 -1q57 -8 57 -80v-10q0 -70 93 -70q7 0 15 1q112 6 271 196q98 151 149 296l-80 -15q-66 -29 -87 -29q-9 0 -9 6q0 7 16 25q56 60 148 86q74 12 128 164q89 190 140 295.5t117 204t160 148.5q89 47 127 46h5q38 -3 38 -22l-87 -215l-86 -273 l-55 -276q0 -15 39 -47q136 0 235 56v-19q-127 -112 -195 -130t-92 -104q-15 -55 -15 -122q0 -37 5 -78q15 -61 51 -88q28 -3 58 0q99 51 246 262h9q0 -10 10 -10q-178 -341 -312 -369q-1 -1 -3 -2q-21 -7 -41 -7q-99 0 -135 196q-4 27 -4 68q0 79 14 209q-18 30 -155 30 q-24 0 -51 -1q-62 -34 -116.5 -141t-154.5 -230q-102 -123 -246 -167q-66 -20 -118 -21q-63 -1 -108 29q-65 43 -65 103q0 15 4 32zM704 629q15 -35 62 -35h5l104 13q23 3 49.5 131t66.5 266q37 127 37 166v6q-2 20 -15 20q-9 0 -25 -12q-36 -26 -73 -86.5t-81 -139 t-64.5 -158.5t-65.5 -162v-9z" />
<glyph unicode="B" horiz-adv-x="1192" d="M-100 77q15 56 75 56h4q60 -2 60 -58v-10q0 -46 45 -46q10 1 22 3q70 12 131 68.5t104.5 157.5t66.5 304t111 490q81 186 174 328q15 22 15 35q0 20 -33 19q-10 0 -23 -2q-84 -12 -200 -93t-161 -243q-3 -97 -81 -97h-9q-26 11 -26 50v11q4 83 102 193q136 161 273 207 q133 44 194 44h4q62 -2 125 -24.5t105 -94.5q36 -62 36 -161q0 -17 -1 -34q-17 -132 -108 -229q-71 -71 -125 -106q151 -75 201 -245q22 -74 22 -147q0 -95 -37 -189q-65 -168 -184 -240q123 47 187.5 93t172.5 167l15 -33q-191 -313 -548 -313h-16q-107 7 -157 50 q-38 33 -38 61q0 9 4 17q16 34 38 33t38 -18.5t29 -36.5q11 -16 65 -16h18q70 3 153 70t123 225q15 60 15 115q0 92 -41 172q-66 129 -150 132q-29 10 -52 10q-78 0 -95 -115q-88 -436 -195.5 -556.5t-235.5 -130.5q-27 -2 -51 -3q-89 0 -127 32q-37 30 -38 71q0 13 4 27z M604 925v-8q0 -50 45 -53q101 17 170 115.5t82 234.5v10q0 137 -76 137q-7 0 -14 -1q-109 -43 -206 -415z" />
<glyph unicode="C" horiz-adv-x="1305" d="M-166 65q-1 8 0 16q0 85 64 123q19 11 33 12q26 0 26 -46q-1 -14 -3 -33q-3 -22 -2 -41q0 -78 47 -116q56 -45 148 -45q5 1 9 1q98 2 197.5 55t99.5 94q-27 47 -27 155q0 42 4 94q14 183 134 462q-15 -3 -35 -3q-48 0 -123 17q-127 63 -127 187v15q8 135 185 308 q180 152 378 173q53 0 102 -18l5 -32q2 -9 2 -16q0 -52 -91 -52q-31 0 -73 6h-5q-121 0 -196 -47q-76 -48 -120 -100t-68 -98q-20 -37 -20 -101q0 -16 1 -33q41 -102 123 -102q16 0 34 4q5 -1 10 -1q66 0 166 158q234 301 362 346q93 48 154 47h13q84 -25 84 -78 q0 -8 -2 -16v-13q0 -178 -368 -424q-133 -51 -208 -106q-125 -104 -177 -308q-30 -118 -30 -203q0 -60 16 -104q37 -101 124 -101h6q92 3 165.5 53.5t134 144t84.5 218.5q6 30 6 53q0 75 -60 83h-9q-103 0 -242 -195q-27 -61 -44 -87.5t-46 -9.5q94 304 288 406q42 21 82 21 q32 0 63 -14q65 -38 65 -145v-10q0 -110 -63.5 -246t-165.5 -241.5t-201 -129.5q17 -6 40 -9q15 -2 29 -2q59 1 124 29q81 36 150.5 96t164.5 172l19 -37q-238 -346 -516 -346q-25 0 -51 3q-73 3 -161 61l-28 29q-208 -124 -355 -132q-20 -1 -39 -1q-120 -1 -194 47 q-86 54 -92 153zM721 907l76 26l84 44q99 39 213 134q128 140 138 202q2 11 1 19q0 28 -21 28q-8 0 -20 -4q-150 -31 -341 -249q-57 -71 -130 -200z" />
<glyph unicode="D" horiz-adv-x="1034" d="M3 927q4 70 87 194q89 131 186 197q98 67 190 104q90 36 204 36h6q313 -9 360 -342q15 -86 15 -169q-1 -115 -29 -223q-48 -186 -154.5 -343t-206.5 -235.5t-214 -118.5q28 -12 47 -20q24 -9 54 -9q42 0 95 19q90 33 192 118l137 149l15 -33q-189 -310 -459 -310h-17 q-114 11 -155 56h-3q-65 0 -232 -99h-29q-80 3 -80 56q0 5 1 12q30 83 213 141q47 26 95 76q89 157 135 508.5t134 496t88 161.5q0 15 -25 21q-12 3 -31 3q-22 0 -55 -4q-61 -7 -179 -67q-118 -62 -200 -170q-67 -89 -67 -145q0 -12 3 -23q-25 -101 -87 -101h-7 q-27 12 -27 53v11zM414 158q-1 -15 27 -31q196 32 354.5 296t159.5 512q0 225 -82 319q-44 50 -85 51q-35 0 -68 -38q-81 -103 -112 -360.5t-74 -435.5t-120 -304v-9z" />
<glyph unicode="E" horiz-adv-x="1069" d="M-13 165q-5 30 -5 58q0 331 655 507q-44 20 -75 79l-95 -17q-71 -12 -134 -12q-54 0 -101 9q-142 27 -171 168q-1 10 -1 20q0 227 300 398q136 65 208 77q54 9 109 9q17 0 35 -1q72 -4 122 -40q32 22 146 24h4q110 0 160 -102l15 -51l2 -22q0 -167 -324 -357l-171 -71 q22 -47 72 -55q8 -1 16 -1q44 0 106 34q44 24 58 24q6 0 6 -4q0 -1 -2 -5q-10 -26 -35 -48.5t-99 -58t-344 -138.5q-250 -131 -301 -248q-22 -51 -23 -96q0 -59 38 -105q66 -84 199 -91l110 8q249 55 334 236q13 44 13 76q0 81 -86 81h-8q-149 -54 -272 -158q-41 1 -42 17 l-1 20q240 231 378 231q10 0 19 -1l20 1h10q83 0 102 -114v-10q3 -254 -330 -421q6 -4 6 -8q0 -25 -232 -51q-324 5 -391 209zM190 978q47 -93 206 -94q20 0 41 2q117 40 116 136q37 162 127 275l77 79q-37 10 -78 10q-92 0 -204 -48q-286 -121 -287 -333q1 -13 2 -27z M504 27q225 71 310.5 99.5t216.5 192.5l15 -27q-126 -290 -382 -290q-74 0 -160 25zM645 1007q-1 -7 -1 -13q0 -54 47 -53q30 0 79 22q126 50 202 115q74 65 92 118q7 22 8 44q0 30 -14 58q-24 49 -101 50q-186 -22 -283 -253z" />
<glyph unicode="F" horiz-adv-x="907" d="M-108 145q24 60 87 61l21 -40q-9 -30 -9 -53q0 -41 28 -61q25 -18 54 -19q22 0 47 11q57 25 100 88t86.5 229.5t79 441t67.5 370.5q32 95 45 137q1 4 1 8q0 18 -34 18q-25 0 -73 -10q-120 -26 -258 -214l-32 12q72 130 164 194t206 90q105 24 174 25q6 -1 12 -1 q72 -2 136 -10q47 -6 114 -7q24 0 51 1q102 3 275 75l10 1v-20q-54 -77 -192 -117q-94 -27 -190 -27q-46 0 -93 6q-14 2 -27 2q-124 0 -175 -164q-57 -180 -64 -336q-1 -46 85 -54q21 -2 45 -1q69 1 157 17q116 22 280 89l11 -20q-77 -65 -162.5 -106.5t-167.5 -58 t-179 -27.5t-129 -174.5t-82.5 -277.5t-127.5 -182t-177 -74q-9 -1 -17 -1q-87 0 -127 57q-29 40 -29 79q0 22 9 43z" />
<glyph unicode="G" horiz-adv-x="1325" d="M64 791q29 225 343 469q233 155 431 176h11q87 0 101 -44q5 -14 5 -26q0 -39 -63 -39q-44 0 -118 19l-73 -2q-180 -64 -353 -223q-193 -191 -198 -379q16 -117 153 -117q56 0 133 20q65 159 242 382q207 226 294 280.5t142.5 69t109.5 19.5q6 1 13 1q46 0 85 -33 q44 -38 49 -109v-14q0 -66 -43 -157q-49 -101 -208 -237.5t-307 -198.5t-211 -80t-96 -78q-62 -113 -62 -216q0 -63 24 -123q41 -70 130 -70q48 0 111 21q141 67 206 136t103 136q55 89 69 156l72 120q54 -3 54 -58q0 -10 -2 -22q-13 -82 -109 -339q0 13 -12 13 q-40 0 -203 -129q-194 -153 -320 -157q-7 -1 -14 -1q-116 0 -177 71q-56 65 -56 189q0 19 1 40q17 173 68 261q-109 3 -149 15q-180 29 -180 205q0 25 4 53zM223 -664q-22 64 -22 111q0 95 90 122l60 -10q38 -33 38 -69q0 -30 -28 -61q-5 -23 -5 -43q0 -66 58 -92 q32 -14 68 -14q48 0 102 24q95 42 187 177q90 143 169 441q20 210 19 220l-1 11l-10 -1q-18 -2 -43 -11l243 250q3 -10 -81 -421q-101 -371 -213 -525q-166 -235 -433 -235h-20q-118 14 -178 126zM569 657l90 21l179 78q171 75 306 230q111 129 111 229q0 21 -5 41l-51 23 q-172 -30 -346 -209.5t-284 -412.5zM1032 19l30 105q3 1 7 3q85 28 216 192l15 -27q-96 -221 -268 -273z" />
<glyph unicode="H" horiz-adv-x="1424" d="M82 1019q26 136 200 244q127 79 309 78q68 0 143 -10l84 70l39 -30q-115 -414 -132 -599q88 56 130 87t111.5 196.5t131 259.5t132.5 168q72 73 146 99q47 16 88 17q23 0 44 -5q59 -14 78 -97q3 -168 -198 -337q-107 -96 -155.5 -137.5t-185.5 -155.5q-107 -77 -122 -348 q-3 -57 -3 -106q0 -183 44 -249q49 -73 118 -73q10 -1 22 1q84 12 198 123q75 91 109 137l10 -20v-11q-95 -204 -269 -308q-49 -19 -93 -19q-25 0 -47 6q-131 25 -181 170q-24 81 -24 191q0 175 61 424q-92 -60 -171 -130q-34 -222 -129.5 -435t-245.5 -284q-48 -23 -87 -23 q-80 0 -115 101q-2 15 -2 30q0 193 268 479q94 88 155.5 146t87 175.5t44.5 214.5t19 169q-34 39 -152 51q-14 1 -28 1q-106 0 -219 -80q-125 -89 -125 -221v-6q46 -29 50 -74v-8q0 -39 -34 -59q-14 -8 -29 -8q-25 0 -55 22q-30 23 -30 88q0 36 10 85zM222 130q0 -6 -1 -12 q0 -92 56 -96h8q55 0 105 52q54 56 97.5 152.5t73.5 227.5q14 60 14 89t-14 29q-3 0 -6 -1q-90 -55 -209.5 -196t-123.5 -245zM1036 989q0 -11 11 -11q22 0 89 48q100 72 170 128.5t114 110.5t58 83q14 28 22 60q3 14 4 26q0 18 -6 32q-10 24 -43 32q-12 3 -24 2 q-21 0 -41 -8q-129 -42 -284 -330q-70 -139 -70 -173z" />
<glyph unicode="I" horiz-adv-x="1104" d="M-243 -60q60 114 349 203l157 3q104 75 132 418q29 212 61 368t101 318v39q-1 15 -30 29l-70 -1q-129 15 -147 16q-4 1 -9 1q-38 0 -103 -90q-25 -11 -43 -11q-22 0 -33 16l13 28l45 31q88 101 87 153h40q1 -32 355 -55l154 9l101 21q150 43 191 78l22 12l19 -10 q2 -55 -126 -126q-184 -71 -262 -71h-11l-49 -26q-101 -119 -169 -575q-28 -220 -47 -317q-18 -92 -18 -156v-7l2 -59q1 -75 139 -105q20 -2 39 -2q180 0 345 166q65 68 84 68q8 0 9 -12q0 -7 -3 -18q-147 -276 -563 -322q-233 66 -341 74q-42 3 -78 3q-58 -1 -104 -9 q-74 -14 -228 -111l-11 20v9z" />
<glyph unicode="J" horiz-adv-x="883" d="M-9 112q-9 31 -9 56q0 37 20 60q25 30 55 30q10 0 21 -3q37 -11 37 -56q0 -7 -1 -15q-1 -9 -1 -18q0 -46 28 -84q25 -33 76 -33q18 0 39 4q81 15 141 150t84 323.5t54.5 362.5t84.5 383l8 59q-9 19 -10 29h-9q-140 -1 -250 -15t-221 -92l-18 -41l-25 -10l-22 11l-7 32 l19 41q134 161 477 167q66 6 118 6q40 0 71 -3q58 -7 153 -7h47q170 3 309 94l9 -18l-7 -14q-1 -40 -174 -107q-122 -28 -186.5 -33t-105 -35t-71 -109.5t-78.5 -327t-81 -483.5t-138 -337l-26 -29q24 -8 53 -8q53 0 123 29l105 64l137 149l15 -33q-160 -278 -514 -293 q-15 -1 -29 -1q-114 0 -191 37q-87 40 -110 118z" />
<glyph unicode="K" horiz-adv-x="1407" d="M-122 204q14 107 62 173l34 -30q-23 -62 -23 -133v-11q2 -77 68 -127q44 -33 112 -32q34 0 75 8q121 25 225 150.5t163 299t90 366.5q28 214 36 292q3 31 3 57q0 39 -7 67q-54 51 -173 69q-22 3 -44 3q-95 0 -181 -64q-106 -79 -122 -210q9 -31 10 -55q0 -39 -27 -56 q-21 -13 -39 -13t-34 14q-23 21 -22 58q0 12 2 27q19 133 138.5 242.5t255.5 131.5q40 7 82 6q98 0 204 -36q59 55 88 55h4q28 -4 46 -50q-4 -45 -32.5 -98.5t-41.5 -174t-21 -175t-13.5 -102t18.5 -42.5q116 5 222 187t197 308.5t201 164.5q45 16 73 16q41 0 48 -33 q1 -7 1 -13q0 -36 -47 -36q-7 0 -17 1q-6 1 -12 1q-70 0 -156 -88q-93 -94 -187 -311q-101 -187 -200 -284q90 -107 104 -236.5t34 -259.5t77 -129q58 0 205 206q23 10 31 -2q1 -49 -96 -174q-86 -120 -145 -138q-19 -6 -37 -5q-38 0 -72 25q-50 37 -71 132.5t-29 289 t-104 227.5h-26q-68 -37 -115.5 -194t-174 -318t-308.5 -189q-46 -7 -86 -6q-117 0 -178 60q-70 69 -70 156q0 16 2 32z" />
<glyph unicode="L" horiz-adv-x="1060" d="M-15 -3q37 70 116 104.5t130.5 48t119.5 29.5q155 64 179 146q36 106 54 201q4 19 4 32q0 37 -26 37q-14 0 -35 -10q-58 -15 -126 -15q-82 0 -180 21q-189 68 -211 239q-2 334 440 555q117 46 178 46q54 1 64 -35q4 -14 5 -26q0 -53 -84 -68q-18 6 -42 6q-80 0 -224 -69 q-161 -107 -213 -227q-27 -64 -28 -128q0 -56 21 -112q75 -110 226 -116l113 6q162 56 219 298q121 451 363 523h14q149 0 149 -161q-10 -204 -232 -455q-127 -147 -214 -182q-48 -47 -80 -152q-24 -108 -37.5 -155t-62.5 -176q19 -70 64 -98q25 -15 58 -15q28 0 64 11 q137 41 264 216h10q0 -19 8 -19q-75 -180 -243 -273q-69 -26 -127 -26q-35 0 -65 10q-82 24 -163 40q-50 10 -92 10q-28 0 -52 -4q-62 -10 -177 -56q-59 -69 -101 -69h-7q-42 6 -41 63v5zM753 808q0 -16 15 -16q19 0 64 28q111 80 212 222q73 128 73 228v13q-4 86 -61 86 q-12 1 -26 -3q-82 -22 -140 -130q-57 -106 -95 -244q-42 -150 -42 -184z" />
<glyph unicode="M" horiz-adv-x="1400" d="M-158 162q22 74 78 82q8 1 15 0q26 0 26 -19q1 -10 -5 -24q-12 -28 -13 -58q0 -23 8 -46q17 -53 61 -63q10 -2 20 -3q38 0 90 28q68 35 116 132.5t92.5 238.5t90 321t102.5 305t180 269q104 104 200 145l13 -31q-106 -66 -150 -227q-36 -144 -62 -314t-60 -406 q-22 -156 -22 -209q0 -26 5 -26q17 0 55 63q36 60 70.5 141t94 253t161.5 348.5t199 268.5q97 93 213 133q58 20 90 20t39 -20q-85 -41 -168.5 -144t-165.5 -279t-142 -439q-44 -191 -43 -306q0 -43 6 -75q17 -91 80 -92q18 1 40 9q98 34 256 261q22 5 18 -27 q-190 -349 -351 -370q-7 -1 -14 -1q-87 -1 -118 83q-20 55 -20 143q0 56 8 125q21 178 87 396.5t130 377.5q-37 -20 -136 -207q-58 -123 -122 -289t-91.5 -251.5t-87 -181t-116.5 -143t-85 -71.5q-19 -16 -43 -16q-11 0 -23 3q57 149 83 319t61 405q34 235 48 316q5 31 6 45 q0 12 -4 13q-3 0 -10 -10q-22 -33 -43.5 -95t-56.5 -178l-49 -151q-47 -175 -91.5 -308t-103.5 -214q-60 -82 -134 -126q-60 -35 -128 -35q-18 1 -34 3q-88 10 -129 72q-28 41 -28 88q0 23 7 48z" />
<glyph unicode="N" horiz-adv-x="956" d="M-198 146q16 82 68 82q35 -7 39 -56v-19q-2 -14 -2 -26q0 -95 88 -106q76 1 148 73.5t116 263t102.5 462t237.5 494.5q122 113 155 114l9 1l1 -18q-102 -113 -132 -323q-22 -561 -71 -767l-21 -121l25 1q67 100 101.5 193.5t89 396.5t139 481.5t239.5 208.5q38 7 68 8 q94 -1 114 -71q5 -17 5 -34q0 -77 -95 -162h-3q-21 0 -21 15q0 13 14 35q18 27 18 53q0 23 -14 45q-15 25 -51 25q-33 -1 -83 -21q-105 -42 -180.5 -290.5t-113.5 -473.5t-96 -365t-154 -208h5q45 0 125 34q113 56 242 213l15 -33q-160 -278 -514 -293l-55 1 q-74 14 -77.5 52t34 41t59.5 15.5t55.5 100.5t52.5 288q19 129 34 282v102q3 43 3 70q0 48 -10 48q-9 0 -25 -34q-46 -96 -82.5 -257.5t-60 -285.5t-63.5 -212.5t-99 -133.5q-70 -77 -176 -88q-15 -2 -30 -2q-85 -1 -133 55q-44 50 -44 111q0 17 4 35z" />
<glyph unicode="O" horiz-adv-x="913" d="M68 488q22 280 168 607q207 334 354 334h19l27 -22l29 33q38 11 70 11q45 0 77 -23q54 -39 88 -167q14 -103 14 -205q0 -92 -12 -182q-24 -190 -53 -289.5t-97 -246.5q-138 -250 -312 -330q-38 -40 -100 -40q-44 0 -101 20q-67 22 -124 117q-52 78 -52 258q0 57 5 125z M178 306q22 -136 74 -174q39 -28 91 -28q18 0 37 3q125 11 215.5 126t147.5 272t77 352q10 98 10 177q0 80 -10 140q-20 122 -64 154q-27 20 -55 19q-17 -1 -37 -9q-48 -22 -113.5 -125.5t-92.5 -299.5q-18 -131 -18 -207q0 -38 4 -62q6 -30 6 -51q0 -29 -12 -37 q-3 -2 -5 -1q-17 -1 -37 77q-18 69 -18 168q0 30 2 63q7 141 37.5 232t35 133.5t-21 18.5t-45.5 -101q-130 -202 -176 -424q-38 -198 -38 -325q0 -51 6 -91zM213 26l177 52q28 -24 72 -38q11 -4 25 -3q45 0 126 34l105 64l137 149l15 -33q-160 -278 -514 -293l-100 15z" />
<glyph unicode="P" horiz-adv-x="871" d="M-55 45v6q1 86 59 104q14 4 23 4q32 0 32 -41v-10v-9q1 -58 61 -72q12 -3 23 -3q53 0 106 56q64 68 88.5 165t40 216t50 342.5t143.5 497.5l37 55q1 3 1 6q0 15 -25 15q-12 0 -30 -4q-60 -12 -151 -62t-148 -112.5t-107 -145t-50 -164.5t30.5 -109.5t30.5 -37t-11 -34.5 q-12 -25 -52 -27h-2q-39 0 -63 57q-19 45 -19 97q0 15 2 31q8 69 49 157t110.5 174.5t215.5 180.5q145 95 343 104h21q181 0 251 -152q40 -86 40 -178q0 -81 -30 -166q-64 -184 -177 -302t-270 -190q-77 -38 -122 -214q-100 -314 -358 -321q-9 -1 -18 -1q-82 0 -124 87z M520 771q-6 -62 -6 -103q0 -62 13 -78q5 -6 16 -6q35 0 133 67q128 87 200 243q50 108 50 213q0 47 -10 93q-32 150 -187 157q-77 -46 -136 -239t-73 -347z" />
<glyph unicode="Q" horiz-adv-x="1023" d="M99 462q16 248 102 491.5t181 312.5q28 20 40 20q10 0 10 -13q0 -28 -42 -112q-88 -175 -130.5 -351.5t-51.5 -325.5q-1 -31 -1 -60q0 -109 25 -183q32 -94 86 -123q35 -20 80 -20q23 0 48 5q111 18 187.5 104.5t148 256t106.5 402.5q19 132 19 229q0 75 -11 129 q-27 126 -88 152q-26 11 -55 11q-37 0 -80 -19q-75 -34 -160 -230q-81 -186 -81 -500v-34q5 -337 139 -495t255 -172q30 -3 57 -3q87 0 159 34q93 44 139 90q22 23 30 23q6 0 6 -9q0 -7 -3 -18q-13 -51 -132 -122q-105 -64 -250 -64h-35q-167 9 -288.5 149t-158.5 277 q-30 114 -30 253q0 29 2 59q7 175 51 349t138.5 324.5t212.5 190.5q47 15 85 15q60 0 101 -37q69 -60 88 -230q7 -55 7 -119q0 -131 -27 -299q-40 -248 -152.5 -460.5t-245.5 -307.5q-107 -77 -203 -77q-23 0 -45 4q-115 23 -182 139q-54 93 -54 273q0 43 3 91z" />
<glyph unicode="R" horiz-adv-x="1244" d="M-65 35q-2 16 -2 29q0 79 55 85h10q55 1 68 -63q12 -58 70 -59q12 0 25 3q129 31 220 293q52 302 118 696q41 143 105 251l54 82q1 5 1 8q0 17 -24 17q-25 0 -74 -17q-109 -38 -204.5 -150t-102.5 -232q-5 -86 -34 -86q-12 0 -26 13q-22 19 -21 58q1 56 45 153 q76 165 226 264t244 116q66 12 135 12q28 0 57 -2q139 -17 216 -151q45 -79 46 -179q0 -69 -22 -148q-54 -193 -343 -400q59 -128 64 -203t35 -230q22 -83 86 -83q40 0 97 32l132 139l9 -17v-19q-162 -256 -268 -256h-2h-4q-76 0 -120 84q-46 86 -59 282.5t-133 294.5 q-2 7 -2 13q0 41 84 41q20 0 45 -2q104 52 179 150q76 98 92 228q5 41 6 76q0 76 -25 128q-35 74 -115 98q-19 5 -36 6q-56 0 -94 -59q-101 -109 -161 -392q-28 -160 -60 -421.5t-164 -425.5q-116 -145 -250 -145q-18 0 -36 3q-10 -1 -19 -1q-82 0 -123 86z" />
<glyph unicode="S" horiz-adv-x="834" d="M-78 233q8 110 104 185q84 67 163 67q10 0 19 -1l-3 -27q-113 -31 -159 -101q-37 -56 -36 -117q0 -15 2 -30q11 -78 78 -113q48 -25 110 -26q24 0 50 4q92 14 201.5 149.5t136.5 378.5q0 66 -35 88h-18q-126 -65 -281 -65h-18q-211 35 -226 248q6 211 226 390 q149 153 352 188h26q119 0 141 -75q1 -7 1 -14q0 -42 -34 -48q-39 -8 -56 20q-14 23 -107 22h-40q-130 -6 -255 -131t-138 -247q-2 -23 -2 -45q0 -89 44 -137q56 -58 141 -70q21 -3 43 -3q70 0 157 29q115 39 140 183q28 146 85 270q56 123 134 203q74 75 152 76q6 0 10 -1 q72 -4 71 -103q0 -14 -1 -31q-12 -129 -100 -269t-254 -310q-42 -221 -92.5 -370.5t-165.5 -258.5q-46 -64 -127 -111q-21 -34 -117 -60q-12 -1 -24 -1q-134 0 -216 74q-83 73 -82 171q-1 10 0 19zM169 -24l163 125l45 17q47 -20 81 -22h6q32 0 70 14q42 16 109 62 q67 44 112 102q28 35 37 36q6 0 6 -12q0 -37 -25 -68q-167 -245 -518 -262h-7q-30 0 -79 8zM761 955q2 -20 14 -20q31 1 129 131q117 158 117 234q-1 12 -3 22q-10 36 -36 37q-28 1 -75 -41q-90 -80 -146 -363z" />
<glyph unicode="T" horiz-adv-x="1299" d="M-162 106q20 56 65 64q9 2 16 2q33 0 51 -32q9 -16 10 -38q0 -35 -22 -86q54 -106 180 -114q17 -1 34 -1q105 -1 194 45q103 52 138 110q-52 46 -62 228q11 225 81 428l18 48h-10q-154 8 -222 61q-74 41 -132 123q-44 63 -44 133q-1 57 29 119q66 138 266 176 q66 11 129 11q79 0 152 -17q106 -20 178 -60q110 103 195 141q49 22 100 22q38 0 76 -12q87 -27 87 -108v-7q-4 -88 -107 -146q-96 -54 -190 -54h-12q-100 4 -151 12q-9 -15 -19 -32q-92 -143 -154 -273q156 19 211 73q67 66 105 66q18 0 30 -15q7 -9 7 -19q0 -43 -122 -112 q-107 -60 -268 -76q-55 -127 -82 -254q-27 -133 -27 -213q0 -49 10 -78q37 -105 113 -122q22 -5 45 -5q54 0 110 29q79 41 149 147q53 81 71 169l7 68q0 112 -54 125q-13 5 -28 5q-101 0 -237 -248q-28 -89 -49 -89q-18 0 -29 66q86 272 276 376l72 28l44 -1l44 -21 q53 -56 61 -120q4 -29 4 -59q0 -93 -38 -190q-96 -244 -320 -356q-21 -7 -42 -12q15 -2 32 -2q53 1 119 23q86 30 178 103l136 149l16 -33q-193 -316 -498 -316h-8l-68 11l-116 55q-13 2 -27 5q-113 -101 -201 -144q-88 -42 -186 -46h-15q-90 0 -169 42q-86 44 -118 118 q-20 45 -20 84q0 25 8 46zM227 1087q0 -81 57 -143l75 -58l98 -41l117 -5q84 191 207 348q-71 54 -185 94q-54 19 -107 20q-60 0 -119 -24q-143 -54 -143 -191zM962 1261q79 -21 140 -20q68 -1 113 25q62 36 62 75q0 14 -8 29q-22 38 -73 38q-22 0 -50 -8q-92 -24 -184 -139 z" />
<glyph unicode="U" horiz-adv-x="1106" d="M-43 1087q177 270 305 320q51 20 89 20q57 0 79 -45q13 -26 13 -83q-1 -107 -47 -317q-72 -324 -124 -593q-29 -131 -29 -207q1 -100 51 -106q8 -1 15 0q83 0 184 91q111 100 230 308q46 150 173 646q65 301 170 337h10q8 -20 8 -43q0 -42 -26 -94q-40 -80 -105.5 -360.5 t-110 -477.5t-52.5 -263q-2 -17 -2 -32q0 -40 16 -58q7 -8 21 -8q31 0 95 37q80 73 159 169h21v-29l-110 -156q-107 -139 -186 -145q-14 -4 -27 -4q-68 0 -110 97l34 235q-102 -138 -186 -226.5t-202 -134.5q-29 -10 -56 -10q-32 0 -61 14q-76 31 -76 173q0 27 3 57 q71 402 129 626.5t76 370.5q3 25 4 45q0 80 -51 79q-10 0 -23 -3q-96 -22 -262 -260q-41 -12 -39 30z" />
<glyph unicode="V" horiz-adv-x="885" d="M-34 1287q25 76 191 131l139 15l145 -22q113 7 153 77l54 -4q-90 -186 -129.5 -360t-62 -371.5t-36.5 -282t-28 -144.5q-4 -19 -4 -32q0 -23 14 -23q3 0 6 1l10 1q119 63 187 199t98.5 274t100 356t176.5 361q182 260 417 260q26 0 53 -3q120 -51 120 -93q0 -9 -6 -17 q-13 -21 -37 -21q-33 0 -87 37q-42 11 -83 11q-53 -1 -105 -19q-93 -34 -183.5 -158.5t-138.5 -228.5t-94.5 -258.5t-86.5 -313.5t-139 -317.5t-296 -314.5q19 -10 45 -20t58 -10q39 -1 87 15q86 28 197 123l136 149l16 -33q-189 -310 -460 -310h-17q-138 15 -148 26t-28 -1 q-19 -14 -52 -24q-16 -5 -30 -5t-28 6q-12 5 -13 23q0 19 15 52q75 61 135 171t88.5 323t55 351t65.5 315l27 103l-41 12q-137 42 -247 42q-109 -15 -166 -67l-21 -1q-21 -1 -22 20z" />
<glyph unicode="W" horiz-adv-x="1392" d="M-15 1264q25 76 192 130l139 14l145 -23q92 24 121 69q43 -4 54 -4q-59 -179 -82 -342l-19 -144q-12 -151 -13 -183t-25 -235q-16 -143 -16 -201v-12l1 -23q4 -20 22 -19h10q128 56 301 504q159 331 237 331q12 0 21 -7q0 -11 10 -10q-85 -148 -92 -304l-8 -141v-9 q0 -123 -25 -311l-35 -135l83 63l104 146q88 180 184 631q88 281 197 423q150 247 385 247q17 0 34 -1q137 -46 137 -88q0 -10 -8 -20q-16 -20 -42 -21q-40 0 -103 48l-63 -10q-227 -52 -339 -297q-104 -177 -137 -349q-44 -178 -92 -379q-58 -217 -213 -466l-72 -85 q-56 -45 -120 -99l-91 29q114 325 114 521q0 66 -13 117l-22 9l-42 -2q-43 -98 -94 -198q-184 -331 -498 -505l-21 -1h-2q-20 0 -49 18l22 71q129 89 163 286q37 116 48 266l39 188l13 131l6 57q1 95 24 213l27 103l-41 12q-137 43 -247 43q-108 -14 -166 -65l-21 -1 q-21 -1 -22 20zM788 53q28 -23 87 -46q14 -5 34 -5q69 0 216 59l92 74l136 149l16 -33q-189 -310 -460 -310h-17l-103 21z" />
<glyph unicode="X" horiz-adv-x="1263" d="M-168 44v6q0 62 58 62q21 0 49 -8q38 -64 103 -64q58 0 136 50q168 106 313 334t143 310q-17 252 -29 329q7 29 7 69v18v29v6q0 129 -138 178l-59 74q133 -35 169 -35h2h9q83 2 127 23q48 -15 49 -47q-44 -209 -43 -244l1 -19q19 -154 52 -153l39 1q456 629 637 629h7h1 l49 -47q1 -56 -230 -113q-270 -332 -382 -472q-107 -134 -106 -230v-8q40 -173 94 -530q17 -75 70 -75q26 0 60 18l161 136l30 21q19 -3 20 -19q-172 -245 -324 -279q-8 -1 -16 -1q-92 0 -108 107q-11 135 -37 241l-21 106l-13 47q-15 47 -34 47h-10q-107 -176 -221 -309 t-243 -203q-128 -70 -248 -73h-8q-113 -1 -116 88zM31 1332l67 48q83 64 207 65q120 0 278 -60q10 -5 19 -11l-20 -81l-18 18q-105 56 -194 56q-111 0 -199 -85q-17 -61 -64 -61q-13 0 -27 4q-54 16 -53 71q0 17 4 36z" />
<glyph unicode="Y" horiz-adv-x="1028" d="M-90 1184q22 80 110.5 146t174.5 75l108 -16q31 -7 59 -7q76 0 134 50q38 -13 39 -28q-83 -443 -186 -776q-17 -58 -17 -93q0 -12 2 -21q6 -33 47 -33h7q46 3 211 178q32 30 92 108q42 33 125 224q-2 63 156 167q134 338 223 347l35 -35q-107 -228 -183 -529 q-44 -272 -110.5 -455t-143 -293t-213.5 -170q-86 -46 -277 -60q-91 17 -129 59q-28 31 -28 71q0 15 4 32q20 75 70 75q32 0 77 -32q49 -107 145 -108h4q125 0 228 132q106 134 154.5 322t77.5 375l-1 18q-2 50 -30 57l-11 -1q-33 -1 -84 -157q-47 -60 -114 -145 q-234 -272 -320 -291l-47 -11h-5q-92 0 -92 114v16q24 127 104 383q17 83 38 168q25 123 48 223l-6 61l-144 16q-215 -38 -215 -193q0 -24 5 -51q-20 -49 -50 -49q-3 0 -6 1q-33 4 -60 30q-16 15 -16 46q0 25 10 60zM300 15l187 35q54 -6 94 -15q7 -1 15 -1q43 0 132 37 q120 64 242 213l15 -33q-160 -278 -514 -293l-128 4z" />
<glyph unicode="Z" horiz-adv-x="994" d="M-82 11v10q0 115 217 217q183 121 627 984v40q0 64 -285 64h-43q-92 0 -187 -89h-10v29q101 168 256 168q267 -44 288 -44l79 29q26 0 157 68h29v-39q-68 -36 -282 -413q-35 -48 -278 -495q-185 -225 -193 -292q0 -41 162 -102q124 -47 209 -47q26 1 48 5q96 18 250 201 l12 -15q-88 -220 -376 -300h-20q-25 0 -414 91h-19q-103 -10 -188 -99q-39 15 -39 29z" />
<glyph unicode="[" horiz-adv-x="1604" d="M115 -847l5 73q268 917 366 2245q-4 285 3 410q85 287 317 412q58 -189 984 -188l325 -1l-81 -77q-159 -41 -1183 -7l-127 -74q-72 -90 -104 -447l-16 -238q-232 -1439 -250 -1742l-11 -145q-23 -214 545 -196q119 -8 280 3l481 6l47 -100q-524 -43 -1426 -39 q-164 -29 -155 105z" />
<glyph unicode="\" horiz-adv-x="687" d="M-24 1563q30 130 393 -947q79 -179 176 -468t39.5 -276t-189.5 442l-241 602q-116 338 -124 423q-60 83 -54 224z" />
<glyph unicode="]" horiz-adv-x="1482" d="M-483 -908l81 77q159 31 1097 21l127 14q72 90 104 447l17 238q232 1439 249 1742l11 175q23 214 -334 206q-120 8 -455 7l-368 5l-47 89q434 7 1277 19q164 29 155 -105l-5 -73q-268 -947 -366 -2275q4 -285 -3 -410q-85 -287 -317 -412q-58 255 -898 214z" />
<glyph unicode="^" horiz-adv-x="987" d="M153 1193.5q0 8.5 93.5 129t188.5 228t145 107.5q51 0 126 -99t151.5 -211.5t57 -138t-49.5 6.5t-100 115t-117 144.5t-85.5 54t-126 -103t-160.5 -170.5t-98 -73t-25 10.5z" />
<glyph unicode="_" horiz-adv-x="1192" d="M102.5 -144.5q-14.5 30.5 34.5 57.5t208 28.5t331.5 -5.5t193 -19t19.5 -37q0 -25 -97 -28t-274 -10.5t-289 -12t-126.5 26z" />
<glyph unicode="`" horiz-adv-x="1682" d="M-1524 -908l124 70l226 25l225 -3q402 8 3124 -2l23 -55l-117 -56q-852 11 -1997 0zM-844 2113q3512 -5 3953 0l-92 -72l-230 -26q-608 0 -1730 1l-1669 -2l-192 36z" />
<glyph unicode="a" horiz-adv-x="692" d="M-130 68q-1 16 -1 33q0 60 17 121q24 67 72 153q96 153 250 249q118 73 189 73q22 0 40 -7l72 4l22 -45v-6q0 -50 -57 -180q-43 -137 -58 -182l-14 -93q-5 -29 -5 -48q0 -46 27 -47q3 0 7 1l38 21q40 32 176 180q22 -1 28 -33q-166 -259 -265 -259h-3q-17 -4 -32 -4 q-83 0 -82 118v17l34 174q-155 -196 -277 -273q-44 -32 -112 -32q-14 0 -29 1l-28 29zM-12 225q-5 -27 -5 -46q0 -44 28 -43q19 0 50 19q105 75 163 148q69 69 128 220q-27 42 -68 42q-32 0 -72 -25q-53 -29 -122 -126q-77 -104 -102 -189z" />
<glyph unicode="b" horiz-adv-x="556" d="M-244 53q-10 5 -10 15q0 20 43 60l104 142q58 107 139 231l38 -85q-104 -138 -106 -156q-142 -182 -208 -207zM-32 68q-14 50 -14 111.5t14 133.5q15 69 53 253q60 266 103 420.5t122 325.5q80 171 176 226q58 33 101 33q29 -1 51 -15q56 -36 58 -108q0 -6 -1 -12 q1 -69 -25 -162q-28 -101 -67.5 -184t-89 -175t-87 -150.5t-223.5 -335.5q-57 -137 -70 -247q-3 -23 -3 -43q0 -73 39 -95q11 -6 23 -7q43 0 103 81q27 16 39 16q8 0 8 -8q0 -15 -28 -57q-64 -97 -160 -99h-3q-92 -1 -119 98zM41 -23q149 59 244.5 112.5t231.5 213.5l14 -27 q-188 -294 -411 -311q-7 -1 -14 -1q-33 0 -65 13zM143 686q-3 -22 -3 -37q0 -31 14 -30q9 0 22 11q47 39 158 203.5t191 384.5q44 122 44 189q0 53 -28 69q-13 7 -27 7q-56 0 -132 -115q-94 -144 -159 -365t-80 -317zM180 61q89 80 138 231q-1 61 -13 136q-6 48 -6 86 q0 156 100 168q39 0 57 -69q7 -25 7 -57q-1 -56 -21 -133q-32 -121 -107 -248q-67 -101 -142 -164z" />
<glyph unicode="c" horiz-adv-x="467" d="M-83 208q18 129 97 261.5t168 188.5q65 41 118 40q19 0 37 -6q66 -20 70 -90v-11q-1 -61 -47 -74q-8 -2 -15 -2q-36 1 -40 59q-3 48 -30 48q-13 0 -31 -11q-187 -130 -206 -410q0 -114 79 -114q11 0 24 2q120 29 324 285l21 -18q-192 -308 -330 -363q-36 -18 -79 -18 q-27 0 -58 7q-69 23 -91 92q-15 46 -15 90q0 22 4 44z" />
<glyph unicode="d" horiz-adv-x="757" d="M-137 33q-9 23 -9 58q0 39 12 95q23 104 96 205.5t150 164.5q78 64 149 82q38 10 68 10q25 0 44 -8q41 -16 62 -50l16 49q31 112 99.5 400t121.5 442q37 95 79 95q4 0 8 -1q20 -4 20 -37q0 -44 -36 -139q-95 -322 -144.5 -563t-78 -379t-55.5 -344q2 -34 21 -34 q20 0 57 36l69 64q56 71 129 167l16 -31q-118 -241 -273 -345l-48 -10q-85 26 -85 128v12q27 175 27 243q0 44 -11 44q-4 0 -9 -5q17 51 17 86q1 28 -11 46q-22 35 -70 35q-6 0 -13 -1q-58 -5 -136 -72.5t-128 -166.5q-39 -78 -39 -132q0 -15 2 -27q12 -53 57 -54q5 0 11 2 q54 8 126 68t186 223q35 63 48 62q8 0 9 -23q0 -14 -3 -35q-99 -181 -217.5 -293.5t-178.5 -128.5q-32 -9 -58 -9q-22 0 -40 7q-38 14 -57 64z" />
<glyph unicode="e" horiz-adv-x="468" d="M-80 126q-3 23 -3 48q-1 66 25 136q34 96 110 202t176 158q63 33 108 32q26 0 46 -11q49 -27 48 -87v-12q-5 -68 -61 -128.5t-166 -114t-140.5 -85t-32.5 -67.5v-10q0 -31 8 -59q10 -33 45 -52q15 -8 36 -9q27 1 64 15q65 24 134 105l78 88q33 21 44 1 q-179 -257 -300 -293q-39 -11 -72 -11q-49 0 -81 26q-54 40 -66 128zM44 326q188 97 246 165q48 57 48 94q0 7 -2 13q-7 23 -33 24q-18 0 -45 -11q-67 -27 -126.5 -109.5t-87.5 -175.5z" />
<glyph unicode="f" horiz-adv-x="387" d="M-287 34q75 66 117.5 115.5t89 122t73 148t59.5 176.5t100 203q8 1 21 11l45 -2q8 -13 8 -31q0 -27 -20 -65q-33 -61 -63.5 -149t-107.5 -476l3 -23q5 -15 17 -13q149 78 366 378q22 37 35 45q6 3 6 -4q0 -9 -10 -36q-17 -46 -87.5 -151t-138 -186.5t-115.5 -128.5l3 -26 q12 -33 24 -132q2 -24 2 -59q0 -106 -26 -311q-76 -338 -131 -405q-82 -117 -178 -138q-60 4 -71 80q-3 22 -3 52q0 186 114 705l19 124l-1 7q-3 25 -13 36q-2 15 -2 29q0 84 74 155q20 73 18 86q-16 5 -24 4q-29 -21 -50.5 -47t-69.5 -64q-40 -31 -72 -31q-5 0 -11 1z M-164 -948q5 -40 30 -40h6q54 7 127 206q52 197 63 376q5 69 5 122q0 86 -11 131q-19 73 -44 73t-50.5 -96.5t-59.5 -232.5t-53 -315q-14 -136 -14 -195q0 -18 1 -29z" />
<glyph unicode="g" horiz-adv-x="695" d="M-278 -944q-3 21 -3 45q0 110 68 253q82 173 173.5 283t169.5 193q73 79 197 209q10 59 25 137q-150 -208 -286 -208q-8 0 -15 1q-143 12 -153 185q-1 14 -1 27q0 160 107 320q116 174 232 199q47 9 83 9q55 0 87 -23q52 -37 64 -76q4 -12 8 -12q9 0 20 50q15 77 68 80h2 q27 0 27 -40q0 -32 -18 -91q-41 -134 -90 -340l4 -38q1 -11 21 -21q68 28 238 235l-4 -58l-41 -76q-44 -77 -243 -269l-44 -52q-75 -396 -161 -613t-207 -347q-103 -112 -188 -112q-14 0 -27 4q-95 21 -113 146zM-150 -925q17 -47 57 -47q21 0 49 13q79 38 150 185 t121.5 341t82.5 380q-56 -59 -132.5 -149t-175 -239.5t-138.5 -280.5q-25 -79 -25 -137q0 -38 11 -66zM18 315q-7 -45 -7 -81q0 -72 31 -107q33 -35 79 -35q22 0 47 8q78 24 133 109.5t75 206.5q4 26 4 49q0 85 -58 133q-27 23 -59 23q-53 0 -118 -65q-103 -105 -127 -241z " />
<glyph unicode="h" horiz-adv-x="691" d="M-244 53q-10 5 -10 15q0 20 43 60l104 142q44 67 101 172q12 58 31 144q49 202 94 366t128 342t175 238q56 36 100 36q27 0 49 -14q54 -36 54 -112v-8q-3 -82 -25.5 -171.5t-61.5 -172.5t-88.5 -175t-86.5 -150q-34 -53 -230 -311q-10 -14 -21 -29q-25 -85 -39 -146 l85 125q197 284 296 285q4 0 7 -1q57 -14 57 -90q0 -14 -2 -31l-18 -61q-28 -107 -80 -300q-13 -42 -13 -67q1 -24 13 -31q24 -14 49 3t72.5 68t101.5 134q24 32 39 32q10 0 16 -12q-97 -184 -176 -265q-78 -82 -136 -83h-4q-56 0 -74 31q-17 27 -16 63v13q4 44 26 124 t42 157q35 101 35 145q0 34 -21 35q-8 0 -18 -5q-49 -18 -138.5 -145.5t-158.5 -299.5l-38 -84q-46 -43 -72 -43q-35 0 -34 78l19 95l21 97q-134 -169 -197 -193zM144 639q-1 -9 -2 -16q0 -17 9 -17q11 0 35 30q52 60 153 211.5t168 349.5q41 119 41 184q0 44 -18 64 q-13 14 -29 14q-43 0 -107 -95q-90 -131 -166 -396t-84 -329z" />
<glyph unicode="i" horiz-adv-x="443" d="M-144 177q89 113 151 212l43 40q7 2 13 2q13 0 13 -13q0 -21 -35 -77l-76 -95q-69 -81 -95 -81q-10 0 -14 12zM-18 357h6q93 142 208 313l24 13q36 -1 36 -53v-8q-81 -153 -120 -394l-15 -85l-2 -42q2 -23 31 -27q44 4 158 126l80 95l7 -28q-94 -192 -227 -277 q-34 -14 -65 -14q-19 0 -38 5q-60 21 -60 94q0 20 5 45q4 60 55 263zM208 868q7 30 136 112l48 -30q5 -58 -147 -124q-22 9 -35 8z" />
<glyph unicode="j" horiz-adv-x="267" d="M-547 -916q-1 12 -1 24q0 120 71 295q78 193 403 609q14 82 28 168q-3 -4 -7 -7q-57 -70 -182 -112q-16 9 -11 29q130 79 210 239q19 40 26.5 63.5t12.5 49.5q32 159 75.5 220t77.5 80q9 4 16 4q21 0 29 -44q-108 -315 -125 -394t-38 -194q113 134 218 232q43 56 54 56 q3 0 3 -5q0 -10 -13 -39q-21 -43 -54.5 -83.5t-67.5 -87.5t-63.5 -84t-58.5 -73.5t-32 -53.5t-42.5 -218t-74.5 -375.5t-107 -294t-152 -152.5q-43 -19 -79 -19q-30 0 -55 13q-53 29 -61 154zM-464 -948q17 -64 55 -64h7q44 6 88 63.5t92 221t130 612.5 q-100 -112 -205.5 -308.5t-144.5 -324.5q-27 -89 -27 -150q0 -28 5 -50zM146 991q-2 17 72 85l34 3h1q8 0 36 -31q4 -48 -82 -109l-34 -2h-3q-19 0 -21 21z" />
<glyph unicode="k" horiz-adv-x="761" d="M-244 53q-10 5 -10 15q0 20 43 60l104 142q58 107 139 231l38 -85q-104 -138 -106 -156q-142 -182 -208 -207zM-81 54l40 209l2 21q10 40 54 261l130 -24l-11 -41l-10 -40q110 11 305 227q63 29 85 29q58 -19 66 -47v-19q-68 -140 -258 -319q56 -88 80 -153 q25 -64 57 -72q4 -1 9 -2q31 0 83 44q60 50 135 131q26 35 36 35q8 0 8 -18q0 -11 -3 -28q-177 -271 -288 -271q-11 0 -21 3q-66 6 -108 134t-68.5 143t-60.5 9.5t-90.5 -40.5t-92.5 -250q-28 -24 -46 -24q-33 0 -34 81q0 10 1 21zM-21 414q7 14 15 28q12 58 31 144 q49 202 94 366t128 342t175 238q56 36 100 36q27 0 49 -14q54 -36 55 -112q0 -4 -1 -8q-3 -82 -25.5 -171.5t-61.5 -172.5t-88.5 -175t-86.5 -150q-34 -53 -230 -311q-10 -14 -21 -29q-9 -31 -17 -59zM25 219l1 -1v1h-1zM144 639q-1 -9 -2 -16q0 -17 9 -17q11 0 35 30 q52 60 153 211.5t169 349.5q40 118 40 183q0 45 -19 65q-12 14 -28 14q-41 0 -107 -95q-90 -131 -166 -396t-84 -329zM269 422q0 -14 37 -37h10l132 141v19q0 19 -19 19h-19q-31 0 -141 -142z" />
<glyph unicode="l" horiz-adv-x="461" d="M-244 53q-10 5 -10 15q0 20 43 60l104 142q58 107 139 231l38 -85q-104 -138 -106 -156q-142 -182 -208 -207zM-40 149l8 164q14 65 52 231l80 -150q-27 -105 -27 -185v-21l9 -75q23 -41 64 -41q38 0 91 35q77 59 199 234l10 1q12 -1 10 -20q-80 -205 -261 -321l-81 -27 h-8q-121 0 -143 173zM-21 414q7 14 15 28q12 58 31 144q49 202 94 366t128 342t175 238q56 36 100 36q27 0 49 -14q54 -36 55 -112q0 -4 -1 -8q-3 -82 -25.5 -171.5t-61.5 -172.5t-88.5 -175t-86.5 -150q-34 -53 -230 -311q-10 -14 -21 -29q-9 -31 -17 -59zM144 639 q-1 -9 -2 -16q0 -17 9 -17q11 0 35 30q52 60 153 211.5t169 349.5q40 118 40 183q0 45 -19 65q-12 14 -28 14q-41 0 -107 -95q-90 -131 -166 -396t-84 -329z" />
<glyph unicode="m" horiz-adv-x="1126" d="M-170 126l1 30q40 84 227 300q107 125 190 165l55 -9q8 -22 8 -50q0 -63 -40 -158q123 186 243 257l42 3q72 -28 72 -137q0 -34 -7 -75q-15 -47 -109 -349q-30 -104 -72 -114q-6 -1 -12 -1q-28 0 -27 40v10q29 220 91 392l5 58q-18 23 -38 21l-41 -12 q-149 -162 -198 -279t-58 -169q-40 -67 -72 -67q-19 0 -34 25q8 75 55 256l29 112q18 52 18 75q0 19 -12 18q-19 0 -70 -50q-4 -23 -142 -201l-72 -89zM462 192l144 212q197 284 296 284h7q67 -15 67 -93q0 -13 -2 -28l-18 -61q-28 -107 -80 -300q-16 -52 -16 -78 q0 -28 17 -28q3 0 8 1l-10 -93l-60 -19q-73 4 -78 80l6 75q43 152 67 250q32 88 32 127q0 31 -21 32q-8 0 -19 -5l-52 -37q-98 -86 -245 -354zM848 -2l32 104q101 56 192 199q16 0 40 20h19q-83 -189 -240 -305q-23 -11 -43 -18z" />
<glyph unicode="n" horiz-adv-x="830" d="M-141 180q81 127 306 438q73 44 102 44q41 -28 44 -97l-4 -82l-8 -63l-18 -78l-107 -336q-16 -32 -47 -32q-16 0 -35 8l-11 46l66 285l23 83q10 37 10 59q0 31 -21 31q-12 0 -32 -10q-192 -296 -265 -296h-3zM162 192l144 212q197 284 296 284h7q67 -15 67 -93 q0 -13 -2 -28l-18 -61q-28 -107 -80 -300q-16 -52 -16 -78q0 -28 17 -28q3 0 8 1l-10 -93l-60 -19q-73 4 -78 80l6 75q43 152 67 250q32 88 32 127q0 31 -21 32q-8 0 -19 -5l-52 -37q-98 -86 -245 -354zM548 -2l32 104q101 56 192 199q16 0 40 20h19q-83 -189 -240 -305 q-23 -11 -43 -18z" />
<glyph unicode="o" horiz-adv-x="509" d="M-77 112q-11 38 -11 83q0 89 42 204q63 174 208 261q26 40 76 62q32 14 65 14q21 0 41 -5q56 -13 80 -91q10 -29 10 -71q0 -69 -26 -171q-42 -164 -167 -300q-89 -100 -173 -107q-113 7 -145 121zM13 4q149 59 244.5 113t231.5 214l14 -27q-188 -294 -411 -311 q-7 -1 -14 -1q-33 0 -65 12zM25 272q-7 -44 -7 -78q0 -94 54 -108q11 -3 22 -3q61 0 124 88q74 103 92 225q8 57 8 101q0 48 -10 77q-20 56 -72 58q-1 0 -3 1q-52 0 -116 -96q-66 -98 -92 -265z" />
<glyph unicode="p" horiz-adv-x="555" d="M-227 -822q7 93 30 286q46 315 59 391.5t39 219.5q86 401 122 532q137 122 251 126h13q124 0 164 -109q21 -51 21 -104q0 -42 -13 -84q-53 -193 -273 -343q-24 -24 -195 -123q-77 -343 -95 -552q-16 -187 -16 -282v-20q2 -95 16 -196l-14 -20q-79 4 -98 94 q-13 66 -13 133q0 25 2 51zM16 93l63 16q139 32 258 304l5 84q-3 119 -76 130l-42 -1q-137 -16 -208 -533zM29 15q88 53 162.5 69t151 62.5t161.5 125.5l14 -27q-170 -234 -421 -234q-33 0 -68 4z" />
<glyph unicode="q" horiz-adv-x="622" d="M-138 45q-1 18 -1 36q0 168 124 333q138 182 261 252q79 45 127 45q27 0 44 -14l16 -44q70 101 111 103q7 -41 20 -40q-115 -315 -212 -790q-34 -219 -46.5 -345t-21.5 -291t-9 -265.5t-31 -114.5q-5 -3 -11 -3q-23 0 -37 49q-19 60 -25 136q-1 12 -1 30q0 101 29 406 q34 360 141 755q-71 -121 -261 -270q-75 -48 -135 -48h-4q-62 2 -78 80zM-31 151q0 -58 47 -58q13 0 31 5q78 22 164 120.5t129 218.5q15 41 15 68q0 52 -54 53h-2l-164 -84q-83 -86 -124 -166q-42 -82 -42 -157zM334 19l30 105q3 1 7 3q85 28 216 192l15 -27 q-96 -221 -268 -273z" />
<glyph unicode="r" horiz-adv-x="728" d="M-135 180l63 104q46 68 127 223q60 340 235 340q8 0 16 -1l-40 -58q-41 -59 -41 -102v-6q0 -53 88 -70q93 -18 121 -53q14 -18 13 -53q0 -34 -13 -84q-27 -102 -52 -240q0 -3 -1 -6q0 -64 36 -64q7 0 16 3q97 29 260 206l12 -10l4 -24q-124 -185 -247 -269 q-41 -29 -85 -29q-15 0 -30 3q-61 23 -61 113q0 91 34 210q19 70 19 111q0 27 -9 41q-22 35 -88 51q-16 4 -30 4q-44 0 -72 -39q-110 -159 -156 -217.5t-79.5 -85.5t-39.5 2z" />
<glyph unicode="s" horiz-adv-x="569" d="M-291 74q152 106 331 350q48 57 152 217q65 126 160 177q18 5 31 5q30 0 28 -29q-84 -114 -87 -187q-1 -9 -1 -18q0 -48 32 -127q53 -90 53 -183q0 -42 -10 -84q-34 -136 -185 -194q-44 -8 -80 -8q-62 -1 -99 23q-59 36 -59 87t30 77q18 15 40 15q14 -1 30 -7 q27 -11 26 -50q0 -22 -7 -52q10 -34 44 -34q7 0 16 2q48 9 87 60t49 142q2 20 3 38q0 68 -30 122q-31 56 -62 56q-7 0 -15 -3q-40 -17 -219.5 -219t-230.5 -210q-30 -12 -30 14q0 8 3 20zM185 4q55 59 137 99t218 200l14 -27q-138 -260 -369 -272z" />
<glyph unicode="t" horiz-adv-x="445" d="M-178 144q9 14 34 46.5t80.5 114.5t146.5 257l-23 19h-56l-54 7q-40 11 -40 29q0 15 30 36q107 0 148.5 12.5t78.5 156.5q55 223 90 318l35 60q18 11 31 11q19 0 27 -24q4 -10 4 -24q0 -41 -31 -112l-58 -184q-22 -71 -22 -119q0 -14 2 -26q29 -25 64 -42q104 -6 159 -6 q64 0 64 8l27 -7l1 -9q-3 -27 -142 -47l-74 -20l-64 -9q-70 -11 -108 -165q-49 -173 -48 -258v-18q3 -48 35 -48q23 0 62 26q64 33 222 230h9l5 -38q-150 -220 -223 -277q-54 -56 -127 -59q-99 4 -99 125q0 25 4 56q10 88 51 247q-77 -139 -149 -221q-63 -72 -82 -72 q-2 0 -4 1q-9 7 -9 15q0 5 3 10z" />
<glyph unicode="u" horiz-adv-x="836" d="M-128 207q41 53 71 98t231 348q54 29 83 29q27 0 34 -25q-64 -225 -89 -308.5t-44 -199.5l6 -38l17 -7q72 9 235 223l133 310l70 81q15 5 25 5q29 0 29 -37v-6q-130 -371 -144 -452l-10 -61v-6q0 -63 40 -70q118 55 217 210q16 0 40 20h19q-83 -189 -240 -305 q-54 -27 -93 -27q-86 0 -97 133l20 116q-70 -127 -181 -209q-74 -52 -122 -52q-7 -1 -13 1q-50 8 -66 68q-3 12 -3 28q0 69 51 228l19 92q3 13 3 20q0 9 -5 9q-16 0 -83 -92l-136 -172h-9q-25 0 -25 14q0 12 17 34z" />
<glyph unicode="v" horiz-adv-x="653" d="M-113 216q162 244 208.5 296t73.5 63t49.5 -4.5t22.5 -69t-36 -175.5q-36 -124 -46 -186q-3 -17 -3 -30q0 -34 20 -39q3 -1 6 -1q28 0 78 44q58 50 102 128q46 80 72 166q17 56 17 92q1 20 -5 35q-14 41 -21 87q-1 9 -1 18q0 40 20 84q22 50 60 49q4 -1 10 -1 q44 -6 58 -69q3 -12 3 -28q0 -73 -51 -245q-78 -234 -200 -370q7 3 29 9.5t92 60t170 173.5l14 -27q-175 -268 -379 -306q-35 -6 -68 -6q-15 0 -30 1q-48 3 -77 35q-22 24 -22 72q0 15 2 31q9 71 41 173q31 96 31 120q1 25 -37 -6q-36 -30 -173 -195q-28 -24 -30 21z" />
<glyph unicode="w" horiz-adv-x="976" d="M-130 176q13 34 47 87.5t85.5 127.5t95.5 123.5t71 60.5t49 -5q18 -12 19 -59q1 -11 -1 -25q-6 -70 -34 -176.5t-40 -150.5q-12 -43 4 -47q1 0 3 -1q16 0 50 43q37 46 111 178t98 180.5t59 61.5q4 2 8 2q21 0 21 -49q0 -13 -2 -29q-8 -88 -8 -183v-15q0 -85 16 -142 q14 -50 35 -50q5 0 11 4q29 16 76.5 97t81.5 183q24 72 25 113q-1 17 -5 30q-14 41 -20 87q-1 9 -1 18q0 40 20 84q22 50 60 49q3 -1 9 -1q44 -6 59 -69q3 -12 3 -28q0 -73 -51 -245q-83 -246 -200 -403q-34 -39 -63 -52l-12 -6l-16 1q-123 26 -123 284v24q1 11 1 19 q0 32 -9 32q-7 0 -21 -21q-34 -54 -97.5 -165t-121.5 -145q-32 -18 -56 -18q-19 0 -33 12q-21 19 -21 55q1 17 5 37q14 64 42.5 179t30 143.5t-37.5 -9t-184 -213.5q-42 -34 -42 -18q0 3 3 10zM558 -1q56 37 65.5 47t43 20t103.5 63.5t170 173.5l14 -27q-188 -294 -379 -306 q-13 -1 -22 -1q-20 0 -19 6q0 8 24 24z" />
<glyph unicode="x" horiz-adv-x="552" d="M-393 -59q69 57 152.5 142.5t241.5 282.5h9l57 -2q-187 -219 -295 -316.5t-165 -106.5zM-274 41q155 171 280 340.5t226 260.5q100 92 152 118q38 20 59 20q7 0 12 -2q19 -9 -27 -42.5t-163 -151.5t-508 -541q-40 -34 -47 -34q-2 0 -2 2q0 5 18 30zM4 690q6 134 75 148 q6 -147 34.5 -353.5t76.5 -295.5q39 -71 90 -71q12 0 26 4q66 22 170 151q54 67 71 67q3 0 5 -2t2 -6q0 -24 -67 -122q-77 -113 -149 -159q-46 -29 -92 -29q-26 0 -51 9q-71 26 -115 120.5t-63 249.5q-15 120 -15 228q1 31 2 61z" />
<glyph unicode="y" horiz-adv-x="757" d="M-195 -922v19q0 144 101 327q109 196 422 545q130 151 146 282l-3 25q-3 26 -32 7l-33 -38q-33 -51 -83 -112q-119 -176 -213 -176q-10 0 -20 2q-58 12 -58 107v10q62 250 93 344q-1 5 -4 5q-13 0 -66 -77q-67 -98 -210 -230l-31 22l82 104q98 118 329 453h7q50 0 50 -65 q0 -21 -5 -47q-66 -212 -112 -405q-11 -47 -11 -74q0 -36 20 -36q4 0 10 2q47 16 118 103h2q24 28 54 66v3q163 258 278 465q20 18 38 18q25 0 46 -32q-58 -185 -103 -334l-37 -186q69 77 169 191q16 2 38 24l9 2q-76 -153 -238 -330l-6 -32q-23 -58 -38 -147 q-45 -312 -140.5 -547.5t-217.5 -339.5q-105 -88 -201 -88q-17 0 -33 2q-110 18 -117 168zM-104 -790q-6 -40 -6 -71q0 -103 64 -123q13 -3 26 -3q76 0 172 123q114 145 188 405t100 433q-177 -166 -347.5 -381t-196.5 -383z" />
<glyph unicode="z" horiz-adv-x="614" d="M-351 -989q1 412 519 903q17 10 17 35q0 35 -32 98l-69 44q-45 0 -150 -54v11q0 11 -11 11q0 23 183 225q171 278 171 312q-77 32 -128 32l-97 -11v22q97 96 182 96q106 -32 140 -32q35 0 97 43h32v-32q-76 -111 -215 -258q-107 -172 -107 -212t35 -55t86 -78l31 -70 q94 87 139.5 136t90.5 97q38 41 38 24q0 -3 -1 -8q-126 -242 -254 -375q-25 -273 -110 -470t-150 -280.5t-148 -165.5q-88 -80 -180 -92q-15 -2 -28 -2q-61 0 -75 47zM-237 -923q4 -67 36 -67q12 0 28 9q91 42 197 218q153 278 185 600l-72 -39q-285 -263 -358 -595z" />
<glyph unicode="{" horiz-adv-x="1127" d="M-2 -464l4 60q232 756 317 1851q-4 235 3 338q73 237 274 340q50 -210 851 -164l281 -8l-70 -64q-137 -34 -1023 -22l-110 -28q-63 -74 -91 -368l-14 -197q-200 -1187 -216 -1437l-9 -119q-20 -176 471 -162q103 -6 243 3l416 5l41 -82q-454 -44 -1234 -32 q-142 -24 -134 86zM1185 -514l70 63q137 26 948 1l110 28q63 74 91 368l14 197q200 1187 216 1437l9 143q20 177 -289 171q-104 6 -394 -3l-318 -5l-41 82q376 6 1106 24q141 24 133 -86l-4 -61q-232 -780 -316 -1875q3 -235 -3 -338q-74 -237 -274 -340q-50 210 -778 177z " />
<glyph unicode="|" horiz-adv-x="663" d="M187 -272q-35 72 54 1024q42 759 69 778.5t55.5 31t63.5 -59.5q-60 -110 -81 -469q-21 -189 -36 -586q-39 -205 -22 -433q10 -221 -65 -308z" />
<glyph unicode="}" horiz-adv-x="914" d="M90 157q3 26 39.5 63.5t98.5 58.5q62 22 138.5 -1.5t116.5 -30.5t75 4.5t75.5 59t56.5 48t-2 -44t-48.5 -81.5t-82 -60t-115.5 -14t-102.5 28t-80 18.5t-75 -11.5t-65.5 -37t-29 0zM121 440.5q-3 11.5 26 45t95 61.5q67 29 146 2.5t119 -33.5t83 5.5t75.5 59t48.5 47 t-1.5 -44t-52.5 -90.5t-88.5 -67t-111.5 -5t-96.5 35t-83 23t-83.5 -16.5t-56 -27t-20 5z" />
<glyph unicode="~" horiz-adv-x="906" d="M105 430.5q-2 19.5 34 65t112 75.5q77 30 160 -31.5t126 -82t91.5 -11t90 75t59 62.5t-7.5 -69.5t-69.5 -114t-112 -53t-131 34t-108.5 69t-88 29t-79.5 -28t-55.5 -34t-21 13z" />
<glyph horiz-adv-x="2795" d="M678.5 853q14.5 156 183.5 261q71 48 174 37q104 -22 179 -151l47 -92l140 159q173 169 385 257l185 22q110 -22 142 -124t-90 -302q-118 -198 -409 -431q-448 -364 -594 -536q-10 -45 -94 156t-173.5 394.5t-75 349.5z" />
<glyph unicode="&#xa1;" horiz-adv-x="347" d="M89 132q216 645 237 813t42 198t35 29h10q0 -11 9 -31q-14 -169 -46.5 -351.5t-98.5 -425.5t-176.5 -333t-11.5 101zM370 1403q5 69 112 135l10 -1q20 -1 19 -21l-2 -21q-83 -116 -100 -115l-20 1q-20 5 -19 22z" />
<glyph unicode="&#xa2;" horiz-adv-x="742" d="M8.5 140.5q-19.5 94.5 14.5 229t130.5 227t225.5 120.5q82 314 99 307.5t7 -93t-31 -216.5q107 -16 145 -69t18 -67t-43.5 9t-61 37.5t-62.5 -22t-69 -312.5q-45 -204 3 -206t107.5 31t126.5 82t17 -13.5t-123 -116t-120.5 -74.5t-56 -74.5t-25 -130t-39 -94.5t-29 13.5 t1 101t16.5 151.5q-80 -4 -156 40.5t-95.5 139zM108.5 264q-7.5 -136 72.5 -171t94 31q18 184 62 372q52 158 -19 123t-136.5 -127t-73 -228z" />
<glyph unicode="&#xa3;" horiz-adv-x="902" d="M-118 18.5q1 30.5 87 75.5t174.5 121t131.5 392q-279 16 -274.5 40t141 36t161.5 73.5t45 171.5t60.5 205.5t126 178t159 100.5t105 4.5t19.5 -39.5t-61.5 -29t-101.5 -28.5t-92.5 -75.5t-70 -122t-44 -151.5t-20.5 -146.5t-2 -88.5t75 -31t164.5 -5.5t95.5 -21.5 t-63.5 -38t-177.5 -12t-137 -73.5t-34 -122t-23.5 -125t25 -134.5t133.5 -74.5t170.5 14t131 74t42.5 3.5t-103.5 -106t-172.5 -84.5t-204.5 28t-218.5 35.5t-149 -39t-76.5 -32t-21.5 27z" />
<glyph unicode="&#xa4;" horiz-adv-x="655" d="M21 23q0 17 88 121q-50 138 26 251q-87 102 -100 158q0 37 44 45q25 -15 58 -54l70 -55q66 38 128 38t102 -25l126 116q33 0 24 -45q-1 -23 -41.5 -65t-40.5 -58q51 -68 46.5 -157t-46.5 -149q86 -97 86 -119q0 -33 -32 -49q-24 0 -112 106q-15 14 -55.5 -11.5t-102 -24 t-122.5 31.5l-88 -94q-28 -18 -48 -9t-10 48zM190 221.5q18 -71.5 105.5 -79t131 44.5t36.5 111.5t-44.5 88.5t-104.5 21t-104.5 -61.5t-19.5 -125z" />
<glyph unicode="&#xa5;" horiz-adv-x="897" d="M24 1423q60 31 128.5 -60.5t164.5 -228t152 -246.5q22 -63 60 12l223 287q197 264 300.5 299t-14.5 -91.5t-398 -513.5l-76 -104q-18 -50 55.5 -58t203.5 -13q170 -34 -56.5 -42.5t-238 -37t-18.5 -103.5q33 -5 268 -20q166 -33 -281 -54q-20 -206 -44 -333.5t-75 -160.5 l-29 17q-25 47 -2.5 177t42.5 296q-107 -4 -227 -7q-67 11 -67 38q0 9 58 33q153 14 230 13q19 0 25 37.5t0 88.5q-85 -3 -200 -6q-68 10 -68 38q0 8 58 33q154 13 193.5 23.5t-29.5 119t-141 234.5t-197 333z" />
<glyph unicode="&#xa7;" horiz-adv-x="1201" d="M13.5 283.5q29.5 51.5 88 72t97.5 -15.5q-100 -103 -36 -185.5t182 -106.5t225 5.5t150.5 116t-40.5 160t-232 114.5t-267.5 121t-88.5 227.5t232 186.5q-33 -3 -97.5 58.5t-45.5 169t128 181t246.5 73.5t238.5 -44.5t135.5 -95.5t25.5 -86.5t-46 -29t-61.5 47t-68.5 69 t-115.5 49t-171.5 0.5t-153.5 -85t-26 -138t151.5 -130t262 -121.5t183 -174.5t-15.5 -193.5t-142.5 -93.5q122 -77 125.5 -186t-96.5 -190.5t-226.5 -100t-225 -1.5t-190 67.5t-123 129t-2 130zM245.5 824q-71.5 -105 39 -184t261.5 -111t227 27.5t19 159.5t-266 156 q-209 57 -280.5 -48z" />
<glyph unicode="&#xa9;" horiz-adv-x="1743" d="M227.5 674.5q13.5 233.5 150 417t295.5 257t325 66t284.5 -96t184 -241t26.5 -454t-310 -503.5q-137 -94 -248.5 -113t-209 -13t-221 71t-207 220.5t-70 389zM375 798.5q-36 -245.5 26 -400.5q62 -154 166.5 -229t269.5 -81.5t328 109.5t230 381t-27.5 485t-328.5 260 t-431 -119.5t-233 -405zM580 755.5q24 116.5 103 201t168 116.5t185.5 13.5t137.5 -87.5t3 -85.5t-66.5 31t-95.5 61t-146 -20t-138.5 -128t-49.5 -209.5t85.5 -158t152.5 -29t146.5 81t89.5 4q0 -57 -93.5 -123t-197 -68t-177 51t-102.5 143t-5 206.5z" />
<glyph unicode="&#xab;" horiz-adv-x="1335" d="M112 486.5q67 51.5 193 126.5q63 44 289 188l20 8l6 -22q-3 -33 -186 -161q-196 -155 -225.5 -175t75.5 -101q247 -242 271.5 -335t-68.5 -0.5t-191 185.5t-174.5 164t-9.5 122.5zM427 486.5q67 51.5 193 126.5q63 44 289 188l20 8l6 -22q-3 -33 -186 -161 q-196 -155 -225.5 -175t75.5 -101q247 -242 271.5 -335t-68.5 -0.5t-191 185.5t-174.5 164t-9.5 122.5z" />
<glyph unicode="&#xad;" horiz-adv-x="804" d="M138 385.5q68 42.5 156 46t123 2.5t66 -1q194 16 158 -9t-107 -50q-86 -3 -171.5 -6.5t-189 -14t-35.5 32z" />
<glyph unicode="&#xae;" horiz-adv-x="1148" d="M175 1190q7 118 75.5 210.5t148.5 129.5t164 33t149.5 -50t94.5 -143.5t4 -235.5t-140 -220q-73 -48 -136.5 -57.5t-109.5 -5.5t-109.5 36.5t-105.5 108.5t-35 194zM248 1245.5q-19 -130.5 8 -201.5q27 -70 82 -107t143.5 -40.5t173 59t115 192t-17 242t-167.5 130 t-219 -63t-118 -211zM352.5 1048q-2.5 43 17.5 169.5t69 143.5q0 20 36 39.5t61 26.5q64 0 86 -33q39 -45 -10 -130q-58 -73 -106 -96q-10 0 -17 -33q0 -19 130 -50q43 -3 43 -23t-73 -34q-68 14 -101 32.5t-59 24.5q-21 0 -41 -73l-13 -7q-20 0 -22.5 43zM443 1198l10 -7 q30 0 46.5 9t51.5 50t35 78t-54 39q-50 -2 -70 -31t-19 -138z" />
<glyph unicode="&#xb0;" horiz-adv-x="532" d="M212.5 1449.5q-22.5 69.5 24 140t104 89t93 17t74.5 -23t57 -70.5t-12 -126.5t-117 -117.5q-63 -30 -122 -11q-79 33 -101.5 102.5zM284 1509q-18 -83 33 -112.5t103 7t64 97.5t-1.5 96.5t-50.5 50.5t-83.5 -20.5t-64.5 -118.5z" />
<glyph unicode="&#xb1;" horiz-adv-x="874" d="M-55 208v6q65 59 101 59h327q56 0 65 -29q-18 -44 -246 -51h-232q-15 0 -15 15zM-13 555q60 73 229 66q44 241 115 241h9q44 0 33 -56l-30 -179q17 -1 182 5q36 -28 36 -32l17 -7q-35 -57 -224 -51q-13 0 -27 -19l-30 -128q-2 -98 -45 -87q-67 0 -62 82l16 151 q-60 -12 -60 -6l-62 -6h-44q-53 0 -53 26z" />
<glyph unicode="&#xb2;" horiz-adv-x="469" d="M175 1253q-5 39 69 198q99 65 143 -36l65 68q51 78 124 202q30 63 42 112q7 97 -86 88q-127 -32 -106 -158q-40 -22 -56 -24q-15 -2 -23 32q-2 80 160 187q59 24 106 22q87 -18 86 -105q-10 -68 -66 -177q-35 -78 -222 -273q119 -113 273 -69q65 -21 -57 -41l-148 -10 q-127 39 -138 38l-25 -3q-72 -72 -89 -74q-34 -4 -52 23z" />
<glyph unicode="&#xb3;" horiz-adv-x="451" d="M126 1257q-7 30 55 106l58 18l21 -17l11 -36l-64 -43q-8 -45 67 -26l35 7q152 73 214 230q10 14 13 73l-6 35q13 30 -53 58l-57 -3q-67 -47 -86 -88l-60 -18l-10 36q12 23 84 76q132 135 121 181l-4 17q-1 7 -25 10l-28 -5q-26 -30 -53 -31l-10 10q69 80 143 91 q68 -5 80 -55l2 -10q-16 -48 -58 -84t-42 -59q105 -4 127 -62q23 -38 22 -94l-10 -53q-32 -98 -174 -225q-99 -66 -189 -92q-111 0 -123 48z" />
<glyph unicode="&#xb5;" horiz-adv-x="2596" />
<glyph unicode="&#xb6;" d="M135.5 1084q3.5 179 127.5 263t264.5 99t309 13t282.5 -2.5t144.5 -2t15.5 -38.5t-40.5 -50t-106.5 -14q-142 -829 -220 -1277q-6 -118 -51 -123t-35 65.5t44.5 299t181.5 1030.5l-143 -1l-77 -421l-87 -511q-72 -453 -96 -465t-53 -2t4 207.5t106 621.5 q-231 -22 -402.5 53.5t-168 254.5z" />
<glyph unicode="&#xb9;" horiz-adv-x="386" d="M-538.5 -959q-15.5 110 28 219t105 182.5t106.5 112t-17.5 -56.5t-85.5 -149t-37 -155.5t8 -152.5t83 -51q49 -1 126 81q92 158 125 360q37 229 57.5 404.5t65.5 383.5q6 30 -119 -52l-33 -26q-58 -44 -87 -55v34q256 316 289.5 379.5t96 146.5t92 92.5t46.5 -32.5 q-159 -270 -220 -633q148 89 237 228q16 0 40 20h19q-83 -189 -240 -305q-20 -14 -71 -37q-5 -39 -8 -78q-48 -472 -122 -689q-60 -174 -155 -246l-2 -4q-101 -71 -217 -52q-95 21 -110.5 131zM230 1032q-2 18 77 91l36 3q9 1 40 -33q4 -52 -88 -117l-36 -2q-24 -2 -26 22z " />
<glyph unicode="&#xbb;" horiz-adv-x="1160" d="M236 -9q3 32 186 161q196 154 225.5 174t-75.5 102q-247 241 -271.5 334t68.5 0.5t191.5 -185.5t174.5 -164t9.5 -122.5t-192.5 -126.5q-63 -44 -289 -188l-20 -7zM551 -9q3 32 186 161q196 154 225.5 174t-75.5 102q-257 221 -286.5 314t68.5 5.5t201.5 -175.5 t179.5 -159t9.5 -122.5t-192.5 -126.5q-63 -44 -289 -188l-20 -7z" />
<glyph unicode="&#xbc;" horiz-adv-x="1693" d="M165 1320l8 58l84 78l63 56q137 160 332 505q13 61 64.5 72t47.5 -93q-118 -161 -200 -390q-79 -191 -150 -403q-25 -127 18 -141l-13 -80q-72 -50 -130 7l5 72l54 182q86 187 114 298l40 96l-45 -38l-121 -142l-90 -128l-28 -15zM217.5 302.5q-58.5 0.5 100 256.5 t274.5 411q591 954 591 822q-26 -137 -102 -203q-27 -80 -215 -379l-367 -525q-223 -383 -281.5 -382.5zM595 371q9 35 88 161l76 -21q-3 -32 37 -9q199 13 254 122q93 234 146 348l59 130q151 106 30 -144l-97 -185l-31 -90q-70 -136 26 -84l72 33l88 50l-13 -53l-75 -59 l-57 -28q-65 -27 -89 -48q-64 -224 -77 -393q48 -140 -81 -129q-34 11 -36 41q-11 71 44 277q100 228 -33 175l-91 -30q-142 -56 -202 -88q-13 0 -38 24zM679 513q32 59 110 149q138 192 174 287l40 75q20 71 96 69q88 -15 -245 -448q-70 -80 -95 -124q-2 -11 -2 -20z" />
<glyph unicode="&#xbd;" horiz-adv-x="1693" d="M165 1320l8 58l84 78l63 56q137 160 332 505q13 61 64.5 72t47.5 -93q-118 -161 -200 -390q-79 -191 -150 -403q-25 -127 18 -141l-13 -80q-72 -50 -130 7l5 72l54 182q86 187 114 298l40 96l-45 -38l-121 -142l-90 -128l-28 -15zM217.5 302.5q-58.5 0.5 100 256.5 t274.5 411q591 954 591 822q-26 -137 -102 -203q-27 -80 -215 -379l-367 -525q-223 -383 -281.5 -382.5zM465 67q8 64 165 293q153 69 172 -110l110 85q95 107 237 281q62 90 97 164q45 153 -78 172q-176 -5 -198 -214q-59 -22 -81 -19q-19 2 -17 60q28 129 278 241 q85 18 145 -2q91 -42 57 -181q-39 -105 -153 -260q-76 -112 -376 -377q138 -186 353 -172q76 -57 -89 -45l-196 38q-175 70 -191 72l-33 5q-121 -90 -143 -88q-46 6 -59 57z" />
<glyph unicode="&#xbe;" horiz-adv-x="1693" d="M-9 1089l1 8q4 55 101 160l69 9l16 -37l-3 -68l-85 -47q-28 -74 60 -71l41 -3q191 66 320 309q16 20 43 121l8 63q25 46 -34 119l-62 18q-90 -54 -127 -116l-71 -8l4 67q22 33 120 96q195 179 202 262l2 32q1 11 -22 26l-32 3q-40 -41 -69 -32l-7 21q106 109 189 99 q70 -37 63 -127l-1 -17q-37 -77 -96 -121.5t-69 -85.5q110 -47 110 -155q10 -75 -14 -170l-32 -88q-73 -155 -275 -316q-131 -73 -238 -82q-119 44 -112 131zM217.5 302.5q-58.5 0.5 100 256.5t274.5 411q591 954 591 822q-26 -137 -102 -203q-27 -80 -214 -379l-368 -525 q-223 -383 -281.5 -382.5zM595 371q9 35 88 161l76 -21q-3 -32 37 -9q200 13 255 122q92 234 145 348l60 130q150 106 29 -144l-96 -185l-32 -90q-69 -136 26 -84l72 33l88 50l-12 -53l-76 -59l-57 -28q-65 -27 -89 -48q-64 -224 -77 -393q48 -140 -81 -129q-34 11 -36 41 q-11 71 44 277q100 228 -33 175l-91 -30q-142 -56 -202 -88q-13 0 -38 24zM679 513q32 59 110 149q138 192 174 287l40 75q20 71 96 69q88 -15 -245 -448q-70 -80 -95 -124q-2 -11 -2 -20z" />
<glyph unicode="&#xbf;" horiz-adv-x="776" d="M119.5 346q41.5 189 263 364t259.5 286.5t69.5 121t9 -139t-141.5 -208.5q-254 -231 -315.5 -371.5t11.5 -227t209 -42.5t207 258q-21 124 50 114.5t43 -176t-233 -273.5t-339 -1t-92.5 295zM678 1353v55q0 18 82 81h41v-27q0 -74 -69 -109h-54z" />
<glyph unicode="&#xc0;" d="M-129 101q21 81 80 73t56.5 -86.5t109 -72.5t270.5 196q98 151 149 296l-80 -15q-135 -58 -79.5 2t147.5 86q74 12 128 164q89 190 140 295.5t117 204t160 148t132 46.5t38 -22l-87 -215l-86 -273l-55 -276q0 -15 39 -47q136 0 235 56v-19q-127 -112 -195 -130 t-91.5 -103.5t-10.5 -200.5q15 -61 51 -88q28 -3 58 0q99 51 246 262h9q0 -10 10 -10q-178 -341 -312 -369q-1 -1 -3 -2q-133 -45 -176 189q-11 79 10 277q-21 35 -206 29q-62 -34 -116.5 -141t-155 -230t-245 -167.5t-226.5 9t-61 134.5zM704 629q16 -37 67 -35l104 13 q23 3 49.5 131t66.5 266t36.5 172.5t-39 8t-73 -87t-81.5 -139t-64.5 -158.5t-65.5 -162v-9zM1015 1785q13 23 45 16q83 -52 168 -87l262 -135q-6 -44 -208 2q-248 92 -235 138q-24 24 -32 66z" />
<glyph unicode="&#xc1;" d="M-129 101q21 81 80 73t56.5 -86.5t109 -72.5t270.5 196q98 151 149 296l-80 -15q-135 -58 -79.5 2t147.5 86q74 12 128 164q89 190 140 295.5t117 204t160 148t132 46.5t38 -22l-87 -215l-86 -273l-55 -276q0 -15 39 -47q136 0 235 56v-19q-127 -112 -195 -130 t-91.5 -103.5t-10.5 -200.5q15 -61 51 -88q28 -3 58 0q99 51 246 262h9q0 -10 10 -10q-178 -341 -312 -369q-1 -1 -3 -2q-133 -45 -176 189q-11 79 10 277q-21 35 -206 29q-62 -34 -116.5 -141t-155 -230t-245 -167.5t-226.5 9t-61 134.5zM704 629q16 -37 67 -35l104 13 q23 3 49.5 131t66.5 266t36.5 172.5t-39 8t-73 -87t-81.5 -139t-64.5 -158.5t-65.5 -162v-9zM868 1441l190 167q124 107 188 190q29 15 48 -3q3 -19 -14 -71q-8 -70 -215 -226q-179 -97 -197 -57z" />
<glyph unicode="&#xc2;" d="M-129 101q21 81 80 73t56.5 -86.5t109 -72.5t270.5 196q98 151 149 296l-80 -15q-135 -58 -79.5 2t147.5 86q74 12 128 164q89 190 140 295.5t117 204t160 148t132 46.5t38 -22l-87 -215l-86 -273l-55 -276q0 -15 39 -47q136 0 235 56v-19q-127 -112 -195 -130 t-91.5 -103.5t-10.5 -200.5q15 -61 51 -88q28 -3 58 0q99 51 246 262h9q0 -10 10 -10q-178 -341 -312 -369q-1 -1 -3 -2q-133 -45 -176 189q-11 79 10 277q-21 35 -206 29q-62 -34 -116.5 -141t-155 -230t-245 -167.5t-226.5 9t-61 134.5zM704 629q16 -37 67 -35l104 13 q23 3 49.5 131t66.5 266t36.5 172.5t-39 8t-73 -87t-81.5 -139t-64.5 -158.5t-65.5 -162v-9zM767.5 1468q6.5 34 66.5 47q127 23 279 194l46 32l30 -6q114 -214 219 -284l-13 -16l-33 -11q-44 6 -99 50.5t-96.5 85.5t-238.5 -126q-68 -34 -95 -34.5t-49.5 17t-16 51.5z" />
<glyph unicode="&#xc3;" d="M-129 101q21 81 80 73t56.5 -86.5t109 -72.5t270.5 196q98 151 149 296l-80 -15q-135 -58 -79.5 2t147.5 86q74 12 128 164q89 190 140 295.5t117 204t160 148t132 46.5t38 -22l-87 -215l-86 -273l-55 -276q0 -15 39 -47q136 0 235 56v-19q-127 -112 -195 -130 t-91.5 -103.5t-10.5 -200.5q15 -61 51 -88q28 -3 58 0q99 51 246 262h9q0 -10 10 -10q-178 -341 -312 -369q-1 -1 -3 -2q-133 -45 -176 189q-11 79 10 277q-21 35 -206 29q-62 -34 -116.5 -141t-155 -230t-245 -167.5t-226.5 9t-61 134.5zM704 629q16 -37 67 -35l104 13 q23 3 49.5 131t66.5 266t36.5 172.5t-39 8t-73 -87t-81.5 -139t-64.5 -158.5t-65.5 -162v-9zM858.5 1555q-3.5 29 21 64.5t73 62t97 26t105.5 -30.5t100 -32.5t77 23t58.5 61t33.5 9.5t-23.5 -74t-73.5 -75.5t-98 -22.5q-56 6 -89 26.5t-66.5 24t-67.5 -21t-61 -52.5 t-55 -22.5t-31.5 34.5z" />
<glyph unicode="&#xc4;" d="M-129 101q21 81 80 73t56.5 -86.5t109 -72.5t270.5 196q98 151 149 296l-80 -15q-135 -58 -79.5 2t147.5 86q74 12 128 164q89 190 140 295.5t117 204t160 148t132 46.5t38 -22l-87 -215l-86 -273l-55 -276q0 -15 39 -47q136 0 235 56v-19q-127 -112 -195 -130 t-91.5 -103.5t-10.5 -200.5q15 -61 51 -88q28 -3 58 0q99 51 246 262h9q0 -10 10 -10q-178 -341 -312 -369q-1 -1 -3 -2q-133 -45 -176 189q-11 79 10 277q-21 35 -206 29q-62 -34 -116.5 -141t-155 -230t-245 -167.5t-226.5 9t-61 134.5zM704 629q16 -37 67 -35l104 13 q23 3 49.5 131t66.5 266t36.5 172.5t-39 8t-73 -87t-81.5 -139t-64.5 -158.5t-65.5 -162v-9zM898 1665q-6 45 54 60q96 -49 103 -111q-9 -32 -49 -36l-30 -3q-73 39 -78 90zM1210 1661q-3 24 40 50q104 -20 121 -62q2 -23 -55 -67q-50 -5 -106 79z" />
<glyph unicode="&#xc5;" d="M-129 101q21 81 80 73t56.5 -86.5t109 -72.5t270.5 196q98 151 149 296l-80 -15q-135 -58 -79.5 2t147.5 86q74 12 128 164q89 190 140 295.5t117 204t160 148t132 46.5t38 -22l-87 -215l-86 -273l-55 -276q0 -15 39 -47q136 0 235 56v-19q-127 -112 -195 -130 t-91.5 -103.5t-10.5 -200.5q15 -61 51 -88q28 -3 58 0q99 51 246 262h9q0 -10 10 -10q-178 -341 -312 -369q-1 -1 -3 -2q-133 -45 -176 189q-11 79 10 277q-21 35 -206 29q-62 -34 -116.5 -141t-155 -230t-245 -167.5t-226.5 9t-61 134.5zM704 629q16 -37 67 -35l104 13 q23 3 49.5 131t66.5 266t36.5 172.5t-39 8t-73 -87t-81.5 -139t-64.5 -158.5t-65.5 -162v-9zM1018.5 1579.5q-18.5 57.5 20 116t86 73.5t76.5 13.5t61.5 -19t47 -58t-10 -104.5t-96.5 -97q-52 -25 -101 -10q-65 28 -83.5 85.5zM1077 1629q-15 -69 27.5 -93t85.5 6t53 80 t-1.5 79.5t-42 42t-68.5 -16.5t-54 -98z" />
<glyph unicode="&#xc6;" horiz-adv-x="1482" />
<glyph unicode="&#xc7;" horiz-adv-x="2540" />
<glyph unicode="&#xc8;" horiz-adv-x="1069" d="M-13 165q-61 374 650 565q-44 20 -75 79l-95 -17q-133 -22 -235 -3q-142 27 -171 168q-14 240 299 418q137 64 208.5 76.5t143.5 8.5t122 -40q32 22 145.5 24t164.5 -102l15 -51q23 -177 -322 -379l-171 -71q21 -47 71.5 -54.5t123 32.5t62 14.5t-35.5 -48t-99 -58 t-344 -138.5q-250 -131 -301 -248t14.5 -200.5t199.5 -91.5l110 8q249 55 334 236q49 162 -81 157q-149 -54 -272 -158q-41 1 -42 17l-1 20q257 248 397 230l20 1q92 7 112 -114v-10q3 -254 -330 -421q44 -29 -226 -59q-324 5 -391 209zM190 978q53 -105 247 -92 q117 40 116 136q37 162 127 275l77 79q-119 31 -282 -38q-304 -129 -285 -360zM504 27q225 71 310.5 99.5t216.5 192.5l15 -27q-163 -374 -542 -265zM598 1818q15 22 48 12q80 -56 166 -96l285 -138q11 -32 -12 -42.5t-72 -10.5q-45 19 -75 26l-6 2q-47 12 -102 21 q-222 118 -204 161q-22 25 -28 65zM645 1007q-9 -105 125 -44q126 50 201.5 115t93 118t-6.5 102t-101 50q-186 -22 -283 -253z" />
<glyph unicode="&#xc9;" horiz-adv-x="1069" d="M-13 165q-61 374 650 565q-44 20 -75 79l-95 -17q-133 -22 -235 -3q-142 27 -171 168q-14 240 299 418q137 64 208.5 76.5t143.5 8.5t122 -40q32 22 145.5 24t164.5 -102l15 -51q23 -177 -322 -379l-171 -71q21 -47 71.5 -54.5t123 32.5t62 14.5t-35.5 -48t-99 -58 t-344 -138.5q-250 -131 -301 -248t14.5 -200.5t199.5 -91.5l110 8q249 55 334 236q49 162 -81 157q-149 -54 -272 -158q-41 1 -42 17l-1 20q257 248 397 230l20 1q92 7 112 -114v-10q3 -254 -330 -421q44 -29 -226 -59q-324 5 -391 209zM190 978q53 -105 247 -92 q117 40 116 136q37 162 127 275l77 79q-119 31 -282 -38q-304 -129 -285 -360zM504 27q225 71 310.5 99.5t216.5 192.5l15 -27q-163 -374 -542 -265zM645 1007q-9 -105 125 -44q126 50 201.5 115t93 118t-6.5 102t-101 50q-186 -22 -283 -253zM785 1595l265 173 q81 51 153 117q31 13 49 -6q0 -41 -19 -69q23 -40 -182 -185q-54 -15 -99 -34l-5 -2q-30 -11 -72 -36q-48 -6 -72 1.5t-18 40.5z" />
<glyph unicode="&#xca;" horiz-adv-x="1069" d="M-13 165q-61 374 650 565q-44 20 -75 79l-95 -17q-133 -22 -235 -3q-142 27 -171 168q-14 240 299 418q137 64 208.5 76.5t143.5 8.5t122 -40q32 22 145.5 24t164.5 -102l15 -51q23 -177 -322 -379l-171 -71q21 -47 71.5 -54.5t123 32.5t62 14.5t-35.5 -48t-99 -58 t-344 -138.5q-250 -131 -301 -248t14.5 -200.5t199.5 -91.5l110 8q249 55 334 236q49 162 -81 157q-149 -54 -272 -158q-41 1 -42 17l-1 20q257 248 397 230l20 1q92 7 112 -114v-10q3 -254 -330 -421q44 -29 -226 -59q-324 5 -391 209zM190 978q53 -105 247 -92 q117 40 116 136q37 162 127 275l77 79q-119 31 -282 -38q-304 -129 -285 -360zM504 27q225 71 310.5 99.5t216.5 192.5l15 -27q-163 -374 -542 -265zM545 1532l26 42l66 30q153 82 310 224l52 32l33 -6l150 -214l93 -70l-15 -25l-64 3l-72 34l-65 64q-70 121 -283 -51 l-97 -54l-95 -38zM645 1007q-9 -105 125 -44q126 50 201.5 115t93 118t-6.5 102t-101 50q-186 -22 -283 -253z" />
<glyph unicode="&#xcb;" horiz-adv-x="1069" d="M-13 165q-61 374 650 565q-44 20 -75 79l-95 -17q-133 -22 -235 -3q-142 27 -171 168q-14 240 299 418q137 64 208.5 76.5t143.5 8.5t122 -40q32 22 145.5 24t164.5 -102l15 -51q23 -177 -322 -379l-171 -71q21 -47 71.5 -54.5t123 32.5t62 14.5t-35.5 -48t-99 -58 t-344 -138.5q-250 -131 -301 -248t14.5 -200.5t199.5 -91.5l110 8q249 55 334 236q49 162 -81 157q-149 -54 -272 -158q-41 1 -42 17l-1 20q257 248 397 230l20 1q92 7 112 -114v-10q3 -254 -330 -421q44 -29 -226 -59q-324 5 -391 209zM190 978q53 -105 247 -92 q117 40 116 136q37 162 127 275l77 79q-119 31 -282 -38q-304 -129 -285 -360zM504 27q225 71 310.5 99.5t216.5 192.5l15 -27q-163 -374 -542 -265zM538 1671q-9 44 50 63q99 -43 109 -105q-7 -32 -46 -39l-30 -5q-75 35 -83 86zM645 1007q-9 -105 125 -44 q126 50 201.5 115t93 118t-6.5 102t-101 50q-186 -22 -283 -253zM849 1686q-4 23 37 52q105 -14 125 -55q3 -22 -51 -70q-50 -8 -111 73z" />
<glyph unicode="&#xcc;" horiz-adv-x="1104" d="M-243 -60q60 114 349 203l157 3q104 75 132 418q29 212 61 368t101 318v39q-1 15 -30 29l-70 -1q-129 15 -147 16q-39 12 -112 -89q-56 -24 -76 5l13 28l45 31q88 101 87 153h40q1 -32 355 -55l154 9l101 21q150 43 191 78l22 12l19 -10q2 -55 -126 -126 q-198 -77 -273 -71l-49 -26q-101 -119 -169 -575q-28 -220 -47 -317t-18 -163l2 -59q1 -75 139 -105q202 -20 384 164q108 113 90 38q-147 -276 -563 -322q-233 65 -340.5 73.5t-182 -5t-228.5 -111.5l-11 20v9zM497 1860q12 25 45 21q90 -47 180 -76l280 -118 q-2 -46 -214 -15q-262 75 -252 123q-27 23 -39 65z" />
<glyph unicode="&#xcd;" horiz-adv-x="1104" d="M-243 -60q60 114 349 203l157 3q104 75 132 418q29 212 61 368t101 318v39q-1 15 -30 29l-70 -1q-129 15 -147 16q-39 12 -112 -89q-56 -24 -76 5l13 28l45 31q88 101 87 153h40q1 -32 355 -55l154 9l101 21q150 43 191 78l22 12l19 -10q2 -55 -126 -126 q-198 -77 -273 -71l-49 -26q-101 -119 -169 -575q-28 -220 -47 -317t-18 -163l2 -59q1 -75 139 -105q202 -20 384 164q108 113 90 38q-147 -276 -563 -322q-233 65 -340.5 73.5t-182 -5t-228.5 -111.5l-11 20v9zM648 1589l176 272q129 314 138 99l-36 -110 q-85 -160 -119 -196l-6 -2q-21 -25 -51 -65q-42 -27 -67.5 -30t-34.5 32z" />
<glyph unicode="&#xce;" horiz-adv-x="1104" d="M-243 -60q60 114 349 203l157 3q104 75 132 418q29 212 61 368t101 318v39q-1 15 -30 29l-70 -1q-129 15 -147 16q-39 12 -112 -89q-56 -24 -76 5l13 28l45 31q88 101 87 153h40q1 -32 355 -55l154 9l101 21q150 43 191 78l22 12l19 -10q2 -55 -126 -126 q-198 -77 -273 -71l-49 -26q-101 -119 -169 -575q-28 -220 -47 -317t-18 -163l2 -59q1 -75 139 -105q202 -20 384 164q108 113 90 38q-147 -276 -563 -322q-233 65 -340.5 73.5t-182 -5t-228.5 -111.5l-11 20v9zM389.5 1681.5q10.5 17.5 65.5 41.5q126 68 255 185l43 26 l27 -5l123 -176q57 -66 50.5 -76.5t-32.5 -9t-66 37.5l-53 53q-58 100 -233 -42l-80 -44q-78 -32 -94 -20t-5.5 29.5z" />
<glyph unicode="&#xcf;" horiz-adv-x="1104" d="M-243 -60q60 114 349 203l157 3q104 75 132 418q29 212 61 368t101 318v39q-1 15 -30 29l-70 -1q-129 15 -147 16q-39 12 -112 -89q-56 -24 -76 5l13 28l45 31q88 101 87 153h40q1 -32 355 -55l154 9l101 21q150 43 191 78l22 12l19 -10q2 -55 -126 -126 q-198 -77 -273 -71l-49 -26q-101 -119 -169 -575q-28 -220 -47 -317t-18 -163l2 -59q1 -75 139 -105q202 -20 384 164q108 113 90 38q-147 -276 -563 -322q-233 65 -340.5 73.5t-182 -5t-228.5 -111.5l-11 20v9zM424 1695q-6 45 54 60q96 -49 103 -111q-9 -32 -49 -36 l-30 -3q-73 39 -78 90zM736 1691q-3 24 40 50q104 -20 121 -62q2 -23 -55 -67q-50 -5 -106 79z" />
<glyph unicode="&#xd1;" horiz-adv-x="956" d="M-198 146.5q16 81.5 68 81.5q35 -7 39 -56v-19q-13 -120 86 -132q76 1 148 73.5t116 263t102.5 462t237.5 494.5q122 113 155 114l9 1l1 -18q-102 -113 -132 -323q-22 -561 -71 -767l-21 -121l25 1q67 100 101.5 193.5t89 396.5t139 481.5t239.5 208.5t181.5 -62.5 t-89.5 -196.5q-43 -2 -10 49.5t4 98.5t-134 4.5t-180.5 -291t-113.5 -473.5t-96 -365t-154 -208q45 -2 130 34q113 56 242 213l15 -33q-160 -278 -514 -293l-55 1q-74 14 -77.5 52t34 41t59.5 15.5t55.5 100.5t52.5 288q19 129 34 282v102q14 181 -31.5 84.5t-82.5 -258 t-60.5 -285.5t-63.5 -212.5t-99 -133.5q-70 -77 -176 -88t-162.5 53.5t-40.5 146zM711.5 1642q4.5 20 29 50t63.5 56t80 31t100 -27t96 -34.5t66.5 23t50.5 61t29 9.5t-23 -75t-69.5 -77.5t-87.5 -22.5q-49 7 -74 26t-37 21t-34.5 4t-53 -16.5t-60.5 -36t-55 -15t-20.5 22.5 z" />
<glyph unicode="&#xd2;" horiz-adv-x="913" d="M68 487.5q22 279.5 168 607.5q207 334 354 334h19l27 -22l29 33q93 27 147.5 -12t87.5 -167q27 -197 2.5 -387t-53.5 -289.5t-97 -246.5q-138 -250 -312 -330q-64 -68 -201 -20q-67 22 -124 117q-69 103 -47 382.5zM178 306.5q22 -136.5 74.5 -174.5t127.5 -25 q125 11 215.5 126t147.5 272t77 352t0 316.5t-64.5 154t-92 11t-113 -125.5t-92.5 -300t-13.5 -269.5t-6 -87t-42.5 76t-16 230.5t37.5 232t35 133.5t-21 18.5t-45.5 -101q-130 -202 -176 -424q-54 -279 -32 -415.5zM213 26l177 52q29 -23 72.5 -37.5t150.5 30.5l105 64 l137 149l15 -33q-160 -278 -514 -293l-100 15zM513 1824q14 25 49 18q89 -56 181 -94l284 -146q-7 -48 -225 2q-268 99 -254 149q-26 26 -35 71z" />
<glyph unicode="&#xd3;" horiz-adv-x="913" d="M68 487.5q22 279.5 168 607.5q207 334 354 334h19l27 -22l29 33q93 27 147.5 -12t87.5 -167q27 -197 2.5 -387t-53.5 -289.5t-97 -246.5q-138 -250 -312 -330q-64 -68 -201 -20q-67 22 -124 117q-69 103 -47 382.5zM178 306.5q22 -136.5 74.5 -174.5t127.5 -25 q125 11 215.5 126t147.5 272t77 352t0 316.5t-64.5 154t-92 11t-113 -125.5t-92.5 -300t-13.5 -269.5t-6 -87t-42.5 76t-16 230.5t37.5 232t35 133.5t-21 18.5t-45.5 -101q-130 -202 -176 -424q-54 -279 -32 -415.5zM213 26l177 52q29 -23 72.5 -37.5t150.5 30.5l105 64 l137 149l15 -33q-160 -278 -514 -293l-100 15zM598 1573l175 183q114 117 171 205q27 18 48 2q5 -19 -8 -72q-2 -71 -195 -244q-170 -112 -191 -74z" />
<glyph unicode="&#xd4;" horiz-adv-x="913" d="M68 487.5q22 279.5 168 607.5q207 334 354 334h19l27 -22l29 33q93 27 147.5 -12t87.5 -167q27 -197 2.5 -387t-53.5 -289.5t-97 -246.5q-138 -250 -312 -330q-64 -68 -201 -20q-67 22 -124 117q-69 103 -47 382.5zM178 306.5q22 -136.5 74.5 -174.5t127.5 -25 q125 11 215.5 126t147.5 272t77 352t0 316.5t-64.5 154t-92 11t-113 -125.5t-92.5 -300t-13.5 -269.5t-6 -87t-42.5 76t-16 230.5t37.5 232t35 133.5t-21 18.5t-45.5 -101q-130 -202 -176 -424q-54 -279 -32 -415.5zM213 26l177 52q29 -23 72.5 -37.5t150.5 30.5l105 64 l137 149l15 -33q-160 -278 -514 -293l-100 15zM311 1522l26 42l66 30q153 82 310 224l52 32l33 -6l150 -214l93 -70l-15 -25l-64 3l-72 34l-65 64q-70 121 -283 -51l-97 -54l-95 -38z" />
<glyph unicode="&#xd5;" horiz-adv-x="913" d="M68 487.5q22 279.5 168 607.5q207 334 354 334h19l27 -22l29 33q93 27 147.5 -12t87.5 -167q27 -197 2.5 -387t-53.5 -289.5t-97 -246.5q-138 -250 -312 -330q-64 -68 -201 -20q-67 22 -124 117q-69 103 -47 382.5zM178 306.5q22 -136.5 74.5 -174.5t127.5 -25 q125 11 215.5 126t147.5 272t77 352t0 316.5t-64.5 154t-92 11t-113 -125.5t-92.5 -300t-13.5 -269.5t-6 -87t-42.5 76t-16 230.5t37.5 232t35 133.5t-21 18.5t-45.5 -101q-130 -202 -176 -424q-54 -279 -32 -415.5zM213 26l177 52q29 -23 72.5 -37.5t150.5 30.5l105 64 l137 149l15 -33q-160 -278 -514 -293l-100 15zM573.5 1655q-3.5 29 21 64.5t73 62t97 26t105.5 -30.5t100 -32.5t77 23t58.5 61t33.5 9.5t-23.5 -74t-73.5 -75.5t-98 -22.5q-56 6 -89 26.5t-66.5 24t-67.5 -21t-61 -52.5t-55 -22.5t-31.5 34.5z" />
<glyph unicode="&#xd6;" horiz-adv-x="913" d="M68 487.5q22 279.5 168 607.5q207 334 354 334h19l27 -22l29 33q93 27 147.5 -12t87.5 -167q27 -197 2.5 -387t-53.5 -289.5t-97 -246.5q-138 -250 -312 -330q-64 -68 -201 -20q-67 22 -124 117q-69 103 -47 382.5zM178 306.5q22 -136.5 74.5 -174.5t127.5 -25 q125 11 215.5 126t147.5 272t77 352t0 316.5t-64.5 154t-92 11t-113 -125.5t-92.5 -300t-13.5 -269.5t-6 -87t-42.5 76t-16 230.5t37.5 232t35 133.5t-21 18.5t-45.5 -101q-130 -202 -176 -424q-54 -279 -32 -415.5zM213 26l177 52q29 -23 72.5 -37.5t150.5 30.5l105 64 l137 149l15 -33q-160 -278 -514 -293l-100 15zM444 1725q-6 45 54 60q96 -49 103 -111q-9 -32 -49 -36l-30 -3q-73 39 -78 90zM756 1721q-3 24 40 50q104 -20 121 -62q2 -23 -55 -67q-50 -5 -106 79z" />
<glyph unicode="&#xd8;" horiz-adv-x="913" d="M-96 -157q-59 3 187 348t370 497q713 1024 708 891q-32 -138 -112 -201q-31 -80 -309 -459l-394 -515q-391 -564 -450 -561zM68 487.5q22 279.5 168 607.5q207 334 354 334h19l27 -22l29 33q93 27 147.5 -12t87.5 -167q27 -197 2.5 -387t-53.5 -289.5t-97 -246.5 q-138 -250 -270.5 -324t-242.5 -26q-67 22 -124 117q-69 103 -47 382.5zM178 306.5q22 -136.5 74.5 -174.5t127.5 -25q125 11 215.5 126t147.5 272t77 352t-8 320.5t-64.5 154t-82 32t-99 -20t-107 -72t-128.5 -188t-121 -361.5q-54 -279 -32 -415.5z" />
<glyph unicode="&#xd9;" horiz-adv-x="1106" d="M-43 1087q177 270 305.5 320t167 -25t-33 -399.5t-124.5 -593.5q-67 -303 21.5 -312.5t199.5 90.5t230 308q46 150 173 646q65 301 170 337h10q22 -57 -18 -137t-105.5 -360.5t-110 -477.5t-52.5 -263t14.5 -90.5t115.5 29.5q80 73 159 169h21v-29l-110 -156 q-107 -139 -186 -145q-87 -22 -137 93l34 235q-102 -138 -186 -226.5t-202 -134.5q-63 -22 -117 4q-90 37 -73 230q71 402 129 626.5t76.5 370t-70.5 121.5q-96 -22 -262 -260q-41 -12 -39 30zM588 1929q15 27 53 19q96 -61 196 -102l306 -158q-7 -51 -243 2 q-290 109 -274 162q-29 28 -38 77z" />
<glyph unicode="&#xda;" horiz-adv-x="1106" d="M-43 1087q177 270 305.5 320t167 -25t-33 -399.5t-124.5 -593.5q-67 -303 21.5 -312.5t199.5 90.5t230 308q46 150 173 646q65 301 170 337h10q22 -57 -18 -137t-105.5 -360.5t-110 -477.5t-52.5 -263t14.5 -90.5t115.5 29.5q80 73 159 169h21v-29l-110 -156 q-107 -139 -186 -145q-87 -22 -137 93l34 235q-102 -138 -186 -226.5t-202 -134.5q-63 -22 -117 4q-90 37 -73 230q71 402 129 626.5t76.5 370t-70.5 121.5q-96 -22 -262 -260q-41 -12 -39 30zM618 1627l184 193q120 123 180 215q28 19 50 3q6 -20 -8 -76q-2 -75 -205 -257 q-179 -117 -201 -78z" />
<glyph unicode="&#xdb;" horiz-adv-x="1106" d="M-43 1087q177 270 305.5 320t167 -25t-33 -399.5t-124.5 -593.5q-67 -303 21.5 -312.5t199.5 90.5t230 308q46 150 173 646q65 301 170 337h10q22 -57 -18 -137t-105.5 -360.5t-110 -477.5t-52.5 -263t14.5 -90.5t115.5 29.5q80 73 159 169h21v-29l-110 -156 q-107 -139 -186 -145q-87 -22 -137 93l34 235q-102 -138 -186 -226.5t-202 -134.5q-63 -22 -117 4q-90 37 -73 230q71 402 129 626.5t76.5 370t-70.5 121.5q-96 -22 -262 -260q-41 -12 -39 30zM452.5 1681.5q10.5 17.5 65.5 41.5q126 68 255 185l43 26l27 -5l123 -176 q57 -66 50.5 -76.5t-32.5 -9t-66 37.5l-53 53q-58 100 -233 -42l-80 -44q-78 -32 -94 -20t-5.5 29.5z" />
<glyph unicode="&#xdc;" horiz-adv-x="1106" d="M-43 1087q177 270 305.5 320t167 -25t-33 -399.5t-124.5 -593.5q-67 -303 21.5 -312.5t199.5 90.5t230 308q46 150 173 646q65 301 170 337h10q22 -57 -18 -137t-105.5 -360.5t-110 -477.5t-52.5 -263t14.5 -90.5t115.5 29.5q80 73 159 169h21v-29l-110 -156 q-107 -139 -186 -145q-87 -22 -137 93l34 235q-102 -138 -186 -226.5t-202 -134.5q-63 -22 -117 4q-90 37 -73 230q71 402 129 626.5t76.5 370t-70.5 121.5q-96 -22 -262 -260q-41 -12 -39 30zM528 1715q-6 45 54 60q96 -49 103 -111q-9 -32 -49 -36l-30 -3q-73 39 -78 90z M840 1711q-3 24 40 50q104 -20 121 -62q2 -23 -55 -67q-50 -5 -106 79z" />
<glyph unicode="&#xdd;" horiz-adv-x="1028" d="M-90 1184.5q22 79.5 110.5 145.5t174.5 75l108 -16q113 -26 193 43q38 -13 39 -28q-83 -443 -186 -776q-23 -77 -15.5 -113.5t54 -33.5t211.5 178q32 30 92 108q42 33 125 224q-2 63 156 167q134 338 223 347l35 -35q-107 -228 -183 -529q-44 -272 -110.5 -455t-143 -293 t-213.5 -170q-86 -46 -277 -60q-91 17 -129.5 59.5t-23.5 102.5q33 124 147 43q49 -107 145 -108q127 -2 232.5 132t154 322t77.5 375l-1 18q-2 50 -30 57l-11 -1q-33 -1 -84 -157q-47 -60 -114 -145q-234 -272 -320 -291l-47 -11q-104 -3 -97 130q24 127 104 383 q17 83 38 168q25 123 48 223l-6 61l-144 16q-249 -44 -210 -244q-22 -53 -55.5 -48.5t-61 31t-5.5 106zM300 15l187 35q54 -6 94 -15t147 36q120 64 242 213l15 -33q-160 -278 -514 -293l-128 4zM719 1633l190 167q124 107 188 190q29 15 48 -3q3 -19 -14 -71 q-8 -70 -215 -226q-179 -97 -197 -57z" />
<glyph unicode="&#xdf;" horiz-adv-x="646" d="M-469.5 -975q95.5 161 170 357.5t316.5 1190.5l-65 -44q-124 -86 -81.5 -16t131.5 115q34 8 59 142t81.5 352.5t187.5 327t289 48.5t95.5 -275.5t-315 -413.5t-315.5 -407.5t-202 -714.5t-293 -664t-58.5 2zM77.5 267q33.5 70 94 71t59.5 -64t-39 -130t71.5 -54.5 t180 168t-6.5 304t-313 51.5l-8 41q278 124 390.5 -15t81 -299.5t-135.5 -241t-214 -76.5t-152 89.5t-8.5 155.5zM157 764q-14 -80 183 100.5t264 340t-36 205.5t-192 -43.5t-125 -205t-58 -216.5t-36 -181z" />
<glyph unicode="&#xe0;" horiz-adv-x="692" d="M-130 68q-6 77 16 154q24 67 72 153q96 154 250.5 249.5t228.5 65.5l72 4l22 -45q4 -48 -57 -186q-43 -137 -58 -182l-14 -93q-18 -103 29 -94l38 21q40 32 176 180q22 -1 28 -33q-169 -263 -268 -259q-121 -26 -114 131l34 174q-155 -196 -277 -273q-53 -39 -141 -31 l-28 29zM-12 225q-25 -132 73 -70q105 75 163 148q69 69 128 220q-48 75 -140 17q-53 -29 -122 -126q-77 -104 -102 -189zM205 1060q27 57 95 11.5t188 -87.5l216 -63q10 -21 -12 -27t-64 -3t-79 1l2 6q-53 0 -118 22q-170 28 -213 98z" />
<glyph unicode="&#xe1;" horiz-adv-x="692" d="M-130 68q-6 77 16 154q24 67 72 153q96 154 250.5 249.5t228.5 65.5l72 4l22 -45q4 -48 -57 -186q-43 -137 -58 -182l-14 -93q-18 -103 29 -94l38 21q40 32 176 180q22 -1 28 -33q-169 -263 -268 -259q-121 -26 -114 131l34 174q-155 -196 -277 -273q-53 -39 -141 -31 l-28 29zM-12 225q-25 -132 73 -70q105 75 163 148q69 69 128 220q-48 75 -140 17q-53 -29 -122 -126q-77 -104 -102 -189zM320 862l132 183q68 107 94 185t82 49l14 -43q10 -81 -107 -207q-38 -58 -79 -91l5 -3q-31 -22 -62 -50t-52 -37t-27 14z" />
<glyph unicode="&#xe2;" horiz-adv-x="692" d="M-130 68q-6 77 16 154q24 67 72 153q96 154 250.5 249.5t228.5 65.5l72 4l22 -45q4 -48 -57 -186q-43 -137 -58 -182l-14 -93q-18 -103 29 -94l38 21q40 32 176 180q22 -1 28 -33q-169 -263 -268 -259q-121 -26 -114 131l34 174q-155 -196 -277 -273q-53 -39 -141 -31 l-28 29zM-12 225q-25 -132 73 -70q105 75 163 148q69 69 128 220q-48 75 -140 17q-53 -29 -122 -126q-77 -104 -102 -189zM110 794l11 53l52 18q111 20 243 168l40 28l26 -5l117 -186l73 -61l-11 -14l-29 -9l-47 14l-89 71q-48 101 -241 -77l-59 -29l-47 -1z" />
<glyph unicode="&#xe3;" horiz-adv-x="692" d="M-130 68q-6 77 16 154q24 67 72 153q96 154 250.5 249.5t228.5 65.5l72 4l22 -45q4 -48 -57 -186q-43 -137 -58 -182l-14 -93q-18 -103 29 -94l38 21q40 32 176 180q22 -1 28 -33q-169 -263 -268 -259q-121 -26 -114 131l34 174q-155 -196 -277 -273q-53 -39 -141 -31 l-28 29zM-12 225q-25 -132 73 -70q105 75 163 148q69 69 128 220q-48 75 -140 17q-53 -29 -122 -126q-77 -104 -102 -189zM185.5 894q-3.5 29 21 64.5t73 62t97 26t105.5 -30.5t100 -32.5t77 23t58.5 61t33.5 9.5t-23.5 -74t-73.5 -75.5t-98 -22.5q-56 6 -89 26.5t-66.5 24 t-67.5 -21t-61 -52.5t-55 -22.5t-31.5 34.5z" />
<glyph unicode="&#xe4;" horiz-adv-x="692" d="M-130 68q-6 77 16 154q24 67 72 153q96 154 250.5 249.5t228.5 65.5l72 4l22 -45q4 -48 -57 -186q-43 -137 -58 -182l-14 -93q-18 -103 29 -94l38 21q40 32 176 180q22 -1 28 -33q-169 -263 -268 -259q-121 -26 -114 131l34 174q-155 -196 -277 -273q-53 -39 -141 -31 l-28 29zM-12 225q-25 -132 73 -70q105 75 163 148q69 69 128 220q-48 75 -140 17q-53 -29 -122 -126q-77 -104 -102 -189zM144 956q-6 45 54 60q96 -49 103 -111q-9 -32 -49 -36l-30 -3q-73 39 -78 90zM456 952q-3 24 40 50q104 -20 121 -62q2 -23 -55 -67q-50 -5 -106 79z " />
<glyph unicode="&#xe5;" horiz-adv-x="692" d="M-130 68q-6 77 16 154q24 67 72 153q96 154 250.5 249.5t228.5 65.5l72 4l22 -45q4 -48 -57 -186q-43 -137 -58 -182l-14 -93q-18 -103 29 -94l38 21q40 32 176 180q22 -1 28 -33q-169 -263 -268 -259q-121 -26 -114 131l34 174q-155 -196 -277 -273q-53 -39 -141 -31 l-28 29zM-12 225q-25 -132 73 -70q105 75 163 148q69 69 128 220q-48 75 -140 17q-53 -29 -122 -126q-77 -104 -102 -189zM233.5 901.5q-18.5 57.5 20 116t86 73.5t76.5 13.5t61.5 -19t47 -58t-10 -104.5t-96.5 -97q-52 -25 -101 -10q-65 28 -83.5 85.5zM292 951 q-15 -69 27.5 -93t85.5 6t53 80t-1.5 79.5t-42 42t-68.5 -16.5t-54 -98z" />
<glyph unicode="&#xe6;" horiz-adv-x="3112" />
<glyph unicode="&#xe7;" horiz-adv-x="467" d="M-83 208q18 129 97 261.5t168 188t155 35t70 -91t-46.5 -84.5t-55.5 56.5t-61 37.5q-187 -130 -206 -410q0 -131 103 -112q120 29 324 285l21 -18q-192 -308 -330 -363q-59 -30 -137 -11q-69 23 -91 92t-11 134zM2 -114.5q25 27.5 46.5 -6t60.5 -36t74 17.5t30 59.5 t-82 64.5t-46 38.5t67 -2t90.5 -46.5t45.5 -92t-95.5 -86t-151 18t-39.5 70.5z" />
<glyph unicode="&#xe8;" horiz-adv-x="468" d="M-79.5 126.5q-12.5 87.5 22 184t110 202t175.5 157t153.5 21.5t48.5 -98.5t-61 -129t-166 -114t-140.5 -85t-32 -67.5t8 -69t44.5 -52t100 5.5t134 105.5l78 88q33 21 44 1q-179 -257 -300 -293q-100 -27 -153 14.5t-65.5 129zM44 326q189 97 246.5 165t46 107.5 t-78.5 12.5t-126.5 -109.5t-87.5 -175.5zM174.5 1041.5q-8.5 33.5 13.5 50.5t85.5 -24t144 -74.5t255.5 -71.5q10 -21 -37.5 -26t-117 3t-163 34.5t-133 50.5t-48 57.5z" />
<glyph unicode="&#xe9;" horiz-adv-x="468" d="M-79.5 126.5q-12.5 87.5 22 184t110 202t175.5 157t153.5 21.5t48.5 -98.5t-61 -129t-166 -114t-140.5 -85t-32 -67.5t8 -69t44.5 -52t100 5.5t134 105.5l78 88q33 21 44 1q-179 -257 -300 -293q-100 -27 -153 14.5t-65.5 129zM44 326q189 97 246.5 165t46 107.5 t-78.5 12.5t-126.5 -109.5t-87.5 -175.5zM258 841l132 183q68 107 94 175.5t66.5 57.5t27.5 -78t-82.5 -156t-104 -118.5t-60 -49t-46.5 -28.5t-27 14z" />
<glyph unicode="&#xea;" horiz-adv-x="468" d="M-79.5 126.5q-12.5 87.5 22 184t110 202t175.5 157t153.5 21.5t48.5 -98.5t-61 -129t-166 -114t-140.5 -85t-32 -67.5t8 -69t44.5 -52t100 5.5t134 105.5l78 88q33 21 44 1q-179 -257 -300 -293q-100 -27 -153 14.5t-65.5 129zM22 817q7 23 59 41q115 48 172.5 102.5 t82.5 77.5t44.5 -7.5t62.5 -97.5t88.5 -95.5t36.5 -44.5t-43.5 -4.5t-79 47t-74 66.5t-120.5 -38.5t-120.5 -84t-53 -16t-43 14.5t-12.5 39zM44 326q189 97 246.5 165t46 107.5t-78.5 12.5t-126.5 -109.5t-87.5 -175.5z" />
<glyph unicode="&#xeb;" horiz-adv-x="468" d="M-79.5 126.5q-12.5 87.5 22 184t110 202t175.5 157t153.5 21.5t48.5 -98.5t-61 -129t-166 -114t-140.5 -85t-32 -67.5t8 -69t44.5 -52t100 5.5t134 105.5l78 88q33 21 44 1q-179 -257 -300 -293q-100 -27 -153 14.5t-65.5 129zM44 326q189 97 246.5 165t46 107.5 t-78.5 12.5t-126.5 -109.5t-87.5 -175.5zM104 953q-9 44 50 63q99 -44 109 -105q-7 -33 -47 -39l-30 -5q-75 35 -82 86zM415 966q-4 24 37 52q105 -14 125 -55q3 -23 -52 -70q-49 -8 -110 73z" />
<glyph unicode="&#xec;" horiz-adv-x="443" d="M-144 177q89 113 151 212l43 40q56 16 -9 -88l-76 -95q-96 -113 -109 -69zM-18 357h6q93 142 208 313l24 13q39 -1 36 -61q-81 -153 -120 -394l-15 -85l-2 -42q2 -23 31 -27q44 4 158 126l80 95l7 -28q-94 -192 -227 -277q-54 -23 -103 -9q-76 27 -55 139q4 60 55 263z M198 838q7 30 136 112l48 -30q5 -58 -147 -124q-22 9 -35 8zM322 1240q27 57 95 11.5t188 -87.5l216 -63q10 -21 -12 -27t-64 -3t-79 1l2 6q-53 0 -118 22q-170 28 -213 98z" />
<glyph unicode="&#xed;" horiz-adv-x="443" d="M-144 177q89 113 151 212l43 40q56 16 -9 -88l-76 -95q-96 -113 -109 -69zM-18 357h6q93 142 208 313l24 13q39 -1 36 -61q-81 -153 -120 -394l-15 -85l-2 -42q2 -23 31 -27q44 4 158 126l80 95l7 -28q-94 -192 -227 -277q-54 -23 -103 -9q-76 27 -55 139q4 60 55 263z M208 868q7 30 136 112l48 -30q5 -58 -147 -124q-22 9 -35 8zM351 978l134 211q37 54 68.5 106.5t52.5 42.5l14 -34q31 -51 -71 -177q-34 -55 -71 -89l4 -2q-27 -22 -56 -45.5t-48.5 -32.5t-26.5 20z" />
<glyph unicode="&#xee;" horiz-adv-x="443" d="M-144 177q89 113 151 212l43 40q56 16 -9 -88l-76 -95q-96 -113 -109 -69zM-18 357h6q93 142 208 313l24 13q39 -1 36 -61q-81 -153 -120 -394l-15 -85l-2 -42q2 -23 31 -27q44 4 158 126l80 95l7 -28q-94 -192 -227 -277q-54 -23 -103 -9q-76 27 -55 139q4 60 55 263z M37.5 802q7.5 12 45.5 29q87 47 177 128l30 18l19 -3l86 -123q39 -46 34.5 -53t-22.5 -6t-45 26l-38 37q-40 69 -162 -29l-55 -31q-55 -22 -66 -13.5t-3.5 20.5z" />
<glyph unicode="&#xef;" horiz-adv-x="443" d="M-144 177q89 113 151 212l43 40q56 16 -9 -88l-76 -95q-96 -113 -109 -69zM-18 357h6q93 142 208 313l24 13q39 -1 36 -61q-81 -153 -120 -394l-15 -85l-2 -42q2 -23 31 -27q44 4 158 126l80 95l7 -28q-94 -192 -227 -277q-54 -23 -103 -9q-76 27 -55 139q4 60 55 263z M30 951q-6 45 54 60q96 -49 103 -111q-9 -32 -49 -36l-30 -3q-73 39 -78 90zM342 947q-3 24 40 50q104 -20 121 -62q2 -23 -55 -67q-50 -5 -106 79z" />
<glyph unicode="&#xf1;" horiz-adv-x="830" d="M-141 180q81 127 306 438q73 44 102 44q41 -28 44 -97l-4 -82l-8 -63l-18 -78l-107 -336q-24 -49 -82 -24l-11 46l66 285l23 83q34 121 -43 80q-196 -303 -268 -296zM162 192l144 212q204 295 303 284q78 -17 65 -121l-18 -61q-28 -107 -80 -300q-35 -117 9 -105l-10 -93 l-60 -19q-73 4 -78 80l6 75q43 152 67 250q67 187 -8 154l-52 -37q-98 -86 -245 -354zM202.5 858q4.5 20 29 50t63.5 56t80 31t100 -27t96 -34.5t66.5 23t50.5 61t29 9.5t-23 -75t-69.5 -77.5t-87.5 -22.5q-49 7 -74 26t-37 21t-34.5 4t-53 -16.5t-60.5 -36t-55 -15 t-20.5 22.5zM548 -2l32 104q101 56 192 199q16 0 40 20h19q-83 -189 -240 -305q-23 -11 -43 -18z" />
<glyph unicode="&#xf2;" horiz-adv-x="509" d="M-77 111.5q-32 113.5 31 287.5t208 261q25 40 75.5 62t106 9t81 -91t-17 -242.5t-166.5 -299.5q-89 -100 -173 -107q-113 7 -145 120.5zM13 5q149 59 244.5 112.5t231.5 213.5l14 -27q-188 -294 -411 -311q-41 -3 -79 12zM25 272q-26 -167 46.5 -186t146.5 85t91.5 225.5 t-2 177.5t-72 58.5t-118.5 -95.5t-92 -265zM205 1060q27 57 95 11.5t188 -87.5l216 -63q10 -21 -12 -27t-64 -3t-79 1l2 6q-53 0 -118 22q-170 28 -213 98z" />
<glyph unicode="&#xf3;" horiz-adv-x="509" d="M-77 111.5q-32 113.5 31 287.5t208 261q25 40 75.5 62t106 9t81 -91t-17 -242.5t-166.5 -299.5q-89 -100 -173 -107q-113 7 -145 120.5zM13 5q149 59 244.5 112.5t231.5 213.5l14 -27q-188 -294 -411 -311q-41 -3 -79 12zM25 272q-26 -167 46.5 -186t146.5 85t91.5 225.5 t-2 177.5t-72 58.5t-118.5 -95.5t-92 -265zM280 852l132 183q68 107 94 185t82 49l14 -43q10 -81 -107 -207q-38 -58 -79 -91l5 -3q-31 -22 -62 -50t-52 -37t-27 14z" />
<glyph unicode="&#xf4;" horiz-adv-x="516" d="M-77 111.5q-32 113.5 31 287.5t208 261q25 40 75.5 62t106 9t81 -91t-16.5 -242q-40 -153 -149 -280q95 54 230 213l14 -27q-188 -294 -411 -311h-12l-12 -2q-113 7 -145 120.5zM25 272q-26 -167 46.5 -186t146.5 85t91.5 225.5t-2 177.5t-72 58.5t-118.5 -95.5t-92 -265 zM32 808l11 50l48 16q104 19 227 158l38 26l24 -5l110 -174l68 -57l-10 -13l-27 -9l-44 13l-84 67q-44 95 -225 -72l-55 -27l-44 -1z" />
<glyph unicode="&#xf5;" horiz-adv-x="509" d="M-77 111.5q-32 113.5 31 287.5t208 261q25 40 75.5 62t106 9t81 -91t-17 -242.5t-166.5 -299.5q-89 -100 -173 -107q-113 7 -145 120.5zM13 5q149 59 244.5 112.5t231.5 213.5l14 -27q-188 -294 -411 -311q-41 -3 -79 12zM25 272q-26 -167 46.5 -186t146.5 85t91.5 225.5 t-2 177.5t-72 58.5t-118.5 -95.5t-92 -265zM145.5 914q-3.5 29 21 64.5t73 62t97 26t105.5 -30.5t100 -32.5t77 23t58.5 61t33.5 9.5t-23.5 -74t-73.5 -75.5t-98 -22.5q-56 6 -89 26.5t-66.5 24t-67.5 -21t-61 -52.5t-55 -22.5t-31.5 34.5z" />
<glyph unicode="&#xf6;" horiz-adv-x="509" d="M-77 111.5q-32 113.5 31 287.5t208 261q25 40 75.5 62t106 9t81 -91t-17 -242.5t-166.5 -299.5q-89 -100 -173 -107q-113 7 -145 120.5zM13 5q149 59 244.5 112.5t231.5 213.5l14 -27q-188 -294 -411 -311q-41 -3 -79 12zM25 272q-26 -167 46.5 -186t146.5 85t91.5 225.5 t-2 177.5t-72 58.5t-118.5 -95.5t-92 -265zM93 951q-6 45 54 60q96 -49 103 -111q-9 -32 -49 -36l-30 -3q-73 39 -78 90zM405 947q-3 24 40 50q104 -20 121 -62q2 -23 -55 -67q-50 -5 -106 79z" />
<glyph unicode="&#xf7;" horiz-adv-x="836" d="M133.5 384.5q72.5 45.5 167 49.5t131.5 3t71 -1q207 17 168.5 -10t-114.5 -54q-92 -3 -183.5 -6.5t-202 -15t-38 34zM288 181q2 49 92 90q23 -1 41 -46q-35 -96 -77 -106q-22 2 -56 62zM352 578l1 29q50 66 101 63q44 -2 50 -63q-63 -86 -125 -83q-30 14 -27 54z" />
<glyph unicode="&#xf8;" horiz-adv-x="509" d="M-209.5 -147q-52.5 9 104.5 204t210 261q511 643 503 548q-28 -98 -88 -141q-24 -56 -200 -251l-301 -357q-176 -273 -228.5 -264zM-82.5 115.5q-26.5 109.5 36.5 283.5t208 261q25 40 75.5 62t106 9t81 -91t-17 -242.5t-108.5 -256.5t-124.5 -125t-144.5 -21.5 t-112.5 121zM25 272q-26 -167 46.5 -186t146.5 85t91.5 225.5t-2 177.5t-72 58.5t-118.5 -95.5t-92 -265z" />
<glyph unicode="&#xf9;" horiz-adv-x="836" d="M-128 207q41 53 71 98t231 348q104 55 117 4q-64 -225 -89 -308.5t-44 -199.5l6 -38l17 -7q72 9 235 223l133 310l70 81q57 20 54 -38q-130 -371 -144 -452l-10 -61q-2 -69 40 -76q118 55 217 210q16 0 40 20h19q-83 -189 -240 -305q-174 -86 -190 106l20 116 q-70 -127 -181 -209q-85 -59 -135 -50.5t-66 67t48 256.5l19 92q20 81 -85 -63l-136 -172q-58 -5 -17 48zM332 1092q27 57 95 11.5t188 -87.5l216 -63q10 -21 -12 -27t-64 -3t-79 1l2 6q-53 0 -118 22q-170 28 -213 98z" />
<glyph unicode="&#xfa;" horiz-adv-x="836" d="M-128 207q41 53 71 98t231 348q104 55 117 4q-64 -225 -89 -308.5t-44 -199.5l6 -38l17 -7q72 9 235 223l133 310l70 81q57 20 54 -38q-130 -371 -144 -452l-10 -61q-2 -69 40 -76q118 55 217 210q16 0 40 20h19q-83 -189 -240 -305q-174 -86 -190 106l20 116 q-70 -127 -181 -209q-85 -59 -135 -50.5t-66 67t48 256.5l19 92q20 81 -85 -63l-136 -172q-58 -5 -17 48zM425 852l132 183q68 107 94 185t82 49l14 -43q10 -81 -107 -207q-38 -58 -79 -91l5 -3q-31 -22 -62 -50t-52 -37t-27 14z" />
<glyph unicode="&#xfb;" horiz-adv-x="838" d="M-110 190q95 181 294 463q104 55 117 4q-64 -225 -89 -308.5t-44 -199.5l6 -38l17 -7q72 9 235 223l133 310l70 81q57 20 54 -38q-130 -371 -144 -452l-10 -61q-2 -69 40 -76q118 55 217 210q16 0 40 20h19q-83 -189 -240 -305q-174 -86 -190 106l20 116 q-70 -127 -181 -209q-85 -59 -135 -50.5t-66 67t48 256.5l24 107q15 66 -60 -44l-121 -149zM225.5 903.5q8.5 13.5 51.5 33.5q98 52 192 147l34 20l21 -3l96 -138q44 -62 39.5 -70t-25 -7t-51.5 40l-42 41q-45 78 -175 -36l-62 -35q-61 -24 -74 -15t-4.5 22.5z" />
<glyph unicode="&#xfc;" horiz-adv-x="838" d="M-110 190q95 181 294 463q104 55 117 4q-64 -225 -89 -308.5t-44 -199.5l6 -38l17 -7q72 9 235 223l133 310l70 81q57 20 54 -38q-130 -371 -144 -452l-10 -61q-2 -69 40 -76q118 55 217 210q16 0 40 20h19q-83 -189 -240 -305q-174 -86 -190 106l20 116 q-70 -127 -181 -209q-85 -59 -135 -50.5t-66 67t48 256.5l24 107q15 66 -60 -44l-121 -149zM209 951q-6 45 54 60q96 -49 103 -111q-9 -32 -49 -36l-30 -3q-73 39 -78 90zM521 947q-3 24 40 50q104 -20 121 -62q2 -23 -55 -67q-50 -5 -106 79z" />
<glyph unicode="&#xfd;" horiz-adv-x="757" d="M-195 -921.5q-7 150.5 101.5 346t421.5 544.5q130 151 146 282l-3 25q-3 26 -32 7l-33 -38q-33 -51 -83 -112q-132 -195 -233 -174q-61 13 -58 117q62 250 93 344q-3 25 -70 -72.5t-210 -229.5l-31 22l82 104q98 118 329 453q73 6 52 -112q-66 -212 -112 -405 q-29 -124 18.5 -108t118.5 103h2q24 28 54 66v3q163 258 278 465q47 41 84 -14q-58 -185 -103 -334l-37 -186q69 77 169 191q16 2 38 24l9 2q-76 -153 -238 -330l-6 -32q-23 -58 -38 -147q-45 -312 -140.5 -547.5t-218 -339t-233 -86t-117.5 168zM-104 -790 q-26 -168 58.5 -193.5t198 119.5t187.5 405t100 433q-177 -166 -347.5 -381t-196.5 -383zM470 924l140 177q73 103 102.5 179.5t84.5 45.5l12 -44q6 -81 -117 -202q-40 -56 -83 -87l5 -2q-32 -21 -64.5 -47.5t-54 -34.5t-25.5 15z" />
<glyph unicode="&#xff;" horiz-adv-x="757" d="M-195 -921.5q-7 150.5 101.5 346t421.5 544.5q130 151 146 282l-3 25q-3 26 -32 7l-33 -38q-33 -51 -83 -112q-132 -195 -233 -174q-61 13 -58 117q62 250 93 344q-3 25 -70 -72.5t-210 -229.5l-31 22l82 104q98 118 329 453q73 6 52 -112q-66 -212 -112 -405 q-29 -124 18.5 -108t118.5 103h2q24 28 54 66v3q163 258 278 465q47 41 84 -14q-58 -185 -103 -334l-37 -186q69 77 169 191q16 2 38 24l9 2q-76 -153 -238 -330l-6 -32q-23 -58 -38 -147q-45 -312 -140.5 -547.5t-218 -339t-233 -86t-117.5 168zM-104 -790 q-26 -168 58.5 -193.5t198 119.5t187.5 405t100 433q-177 -166 -347.5 -381t-196.5 -383zM229 951q-6 45 54 60q96 -49 103 -111q-9 -32 -49 -36l-30 -3q-73 39 -78 90zM541 947q-3 24 40 50q104 -20 121 -62q2 -23 -55 -67q-50 -5 -106 79z" />
<glyph unicode="&#x152;" horiz-adv-x="1866" d="M68 487.5q22 279.5 168 607.5q207 334 354 334h19l27 -22l29 33q93 27 147.5 -12t85 -91t42 -188.5t2.5 -311t-51.5 -309t-115.5 -237.5q-94 -187 -246.5 -269t-289.5 -34q-67 22 -124 117q-69 103 -47 382.5zM178 306.5q22 -136.5 80.5 -186.5t154.5 -34t196.5 135 t157.5 308t65 356t-12 288.5t-64.5 154t-92 11t-113 -125.5t-92.5 -300t-13.5 -269.5t-6 -87t-42.5 76t-16 230.5t37.5 232t35 133.5t-21 18.5t-45.5 -101q-130 -202 -176 -424q-54 -279 -32 -415.5zM733 180q-26 359 685 550q-44 20 -75 79l-95 -17q-133 -22 -235 -3 q-142 27 -171 168q-14 240 299 418q137 64 208.5 76.5t143.5 8.5t122 -40q32 22 145.5 24t164.5 -102l15 -51q23 -177 -322 -379l-171 -71q21 -47 71.5 -54.5t123 32.5t62 14.5t-35.5 -48t-99 -58t-344 -138.5q-250 -131 -309 -248t7 -202t215 -90l110 8q249 55 334 236 q49 162 -81 157q-149 -54 -272 -158q-41 1 -42 17l-1 20q257 248 397 230l20 1q92 7 112 -114v-10q3 -254 -330 -421q44 -29 -226 -59q-364 1 -426 224zM971 978q53 -105 247 -92q117 40 116 136q37 162 127 275l77 79q-119 31 -282 -38q-304 -129 -285 -360zM1285 27 q225 71 310.5 99.5t216.5 192.5l15 -27q-163 -374 -542 -265zM1426 1007q-9 -105 125 -44q126 50 201.5 115t93 118t-6.5 102t-101 50q-186 -22 -283 -253z" />
<glyph unicode="&#x153;" horiz-adv-x="818" d="M-85 91.5q-32 113.5 28.5 287t171.5 258.5q32 32 101.5 57t125 12t82 -78.5t-16 -230t-149.5 -309.5q-99 -118 -205 -114t-138 117.5zM5 244q-25 -147 41.5 -181t156 89t107 244.5t-2 177.5t-72 58.5t-128.5 -119.5t-102 -269zM269.5 117.5q-12.5 78.5 22 184t110 211 t175.5 157t153.5 21.5t48.5 -98.5t-61 -129t-166 -114t-140.5 -85t-32 -67.5t8 -69t44.5 -52t100 5.5t134 105.5l78 88q33 21 44 1q-179 -257 -300 -293q-100 -27 -153 14.5t-65.5 120zM393 326q189 97 246.5 165t46 107.5t-78.5 12.5t-126.5 -109.5t-87.5 -175.5z" />
<glyph unicode="&#x2000;" horiz-adv-x="1146" />
<glyph unicode="&#x2001;" horiz-adv-x="2293" />
<glyph unicode="&#x2002;" horiz-adv-x="1146" />
<glyph unicode="&#x2003;" horiz-adv-x="2293" />
<glyph unicode="&#x2004;" horiz-adv-x="764" />
<glyph unicode="&#x2005;" horiz-adv-x="573" />
<glyph unicode="&#x2006;" horiz-adv-x="382" />
<glyph unicode="&#x2007;" horiz-adv-x="382" />
<glyph unicode="&#x2008;" horiz-adv-x="286" />
<glyph unicode="&#x2009;" horiz-adv-x="458" />
<glyph unicode="&#x200a;" horiz-adv-x="127" />
<glyph unicode="&#x2010;" horiz-adv-x="804" d="M138 385.5q68 42.5 156 46t123 2.5t66 -1q194 16 158 -9t-107 -50q-86 -3 -171.5 -6.5t-189 -14t-35.5 32z" />
<glyph unicode="&#x2011;" horiz-adv-x="804" d="M138 385.5q68 42.5 156 46t123 2.5t66 -1q194 16 158 -9t-107 -50q-86 -3 -171.5 -6.5t-189 -14t-35.5 32z" />
<glyph unicode="&#x2012;" horiz-adv-x="804" d="M138 385.5q68 42.5 156 46t123 2.5t66 -1q194 16 158 -9t-107 -50q-86 -3 -171.5 -6.5t-189 -14t-35.5 32z" />
<glyph unicode="&#x2013;" horiz-adv-x="1291" d="M163 385.5q130 42.5 298 46t235 2.5t126 -1q371 16 302 -9t-204 -50q-165 -3 -328.5 -6.5t-361 -14t-67.5 32z" />
<glyph unicode="&#x2014;" horiz-adv-x="2315" d="M214 385.5q260 42.5 596.5 46t470.5 2.5t252 -1q742 16 604.5 -9t-409.5 -50q-329 -3 -655.5 -6.5t-722.5 -14t-136 32z" />
<glyph unicode="&#x2018;" horiz-adv-x="609" d="M360 1062q-33 44 14 383l32 97q41 65 65.5 54.5t33.5 -15.5l-3 -8q-70 -245 -94 -490q-16 -23 -48 -21z" />
<glyph unicode="&#x2019;" horiz-adv-x="625" d="M308 1111q80 236 100 490v8q11 2 37.5 3t41.5 -74q-3 -102 -48 -251t-84 -188t-47 12z" />
<glyph unicode="&#x201c;" horiz-adv-x="741" d="M374.5 1324.5q5.5 155.5 34.5 253.5q39 67 64 57t34 -15l-3 -8q-62 -247 -62 -495q-25 -47 -49 2.5t-18.5 205zM531 1099q-33 44 14 383l32 97q41 65 65.5 54.5t33.5 -15.5l-3 -8q-70 -245 -94 -490q-16 -23 -48 -21z" />
<glyph unicode="&#x201d;" horiz-adv-x="758" d="M393 1149q56 240 69 494v9q10 1 36.5 3.5t44.5 -72.5l-1 -102q-65 -336 -110 -367q-31 8 -39 35zM529 1153q81 236 101 490v8q10 2 36.5 3t42.5 -74q-4 -102 -49 -251t-83.5 -188t-47.5 12z" />
<glyph unicode="&#x2026;" horiz-adv-x="0" />
<glyph unicode="&#x202f;" horiz-adv-x="458" />
<glyph unicode="&#x205f;" horiz-adv-x="573" />
<glyph unicode="&#x20ac;" horiz-adv-x="1083" d="M-7 758v20q0 46 234 66q90 32 99 68t52.5 149.5t138.5 230.5q127 140 272 157q104 -14 105 -99q-23 -87 -120 -76q-22 121 -119 38.5t-169 -240.5l-46 -105q-75 -148 219 -100q45 0 45 -33q-8 -45 -58 -45l-75 -10q-191 8 -217 -99q-11 0 -13 -32q-41 -84 197 -48 q36 -19 36 -25v-20q0 -17 -254 -63l-26 -32q-48 -279 61.5 -337t240.5 4t204.5 137.5t114.5 139t55.5 36.5t-93.5 -166t-236 -214t-257 -70q-119 4 -182 114.5t-22 337.5q0 35 -42 52h-72l-68 7q-141 80 48.5 76t202.5 128v19q0 10 -20 20h-13q-223 -18 -223 14z" />
<glyph unicode="&#x2122;" horiz-adv-x="875" d="M204.5 1603.5q-4.5 6.5 5 29t357.5 32.5q12 0 30 -29t44.5 -84t35.5 -55t54.5 85t60.5 95.5t29 8t25 -24.5q-4 -42 -7 -156.5t-13.5 -154.5t-32.5 -43t-9.5 131t10.5 144.5t-8.5 10.5t-50.5 -67t-60.5 -67.5t-51.5 62.5t-41.5 63t-6.5 -85q0 -74 -1 -169q-8 -20 -28 -21 t-20.5 71.5t7.5 212.5q-3 38 -18 38q-116 -3 -115 -34q-12 -122 -10.5 -208t-27 -87t-24 42.5t6.5 144t0 115.5t-39.5 13t-67 -11t-34 -2.5z" />
<glyph unicode="&#xe000;" horiz-adv-x="840" d="M0 0v840h840v-840h-840z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 98 KiB

BIN
data/fonts/simplesnails.ttf Executable file

Binary file not shown.

BIN
data/fonts/simplesnails.woff Executable file

Binary file not shown.

1
data/images/.htaccess Executable file
View file

@ -0,0 +1 @@
Allow from all

BIN
data/images/1.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

BIN
data/images/2.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

BIN
data/images/3.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

BIN
data/images/4.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

0
data/images/index.html Executable file
View file

0
data/index.html Executable file
View file

25
data/pages/1#Accueil.xml Executable file
View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<page>
<id>1</id>
<nom>Accueil</nom>
<contenu>
<![CDATA[
<b>AEOS</b> est un CMS pensé pour être le plus <span class="Green">rapide</span> et le plus <span class="Green">simple</span> possible. <br /><br />
La sauvegarde et la lecture de donnée est très simple. Fonctionnant <span class="Blue">sans base de donnée SQL</span> - grâce au XML - <b>AEOS</b> se voit très pratique pour une installation sur des hébergements web basique.<br /><br />
Son côté <span class="Orange">modulable</span> vous permet d'installer un thème, un module ou un composant facilement et rapidement. <br /><br />
Pensé pour être le plus rapide possible - et respectant les conventions du <span class="Red">W3C</span> - nous n'avons en aucun cas négligé la sécurité. Toutes vos informations seront protégées grâce aux fonctionnalités <b>Calcium</b>.<br /><br />
Le tout est sous licence GNU/GPL V3 et est donc gratuit !<br /><br />
<span class="Sign">L'équipe NNS Production.</span>
]]>
</contenu>
<type>owSimple</type>
<ordre>1</ordre>
<etat>1</etat>
</page>

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<page>
<id>1</id>
<nom>Page d'accueil</nom>
<contenu>Voici votre première page.&lt;br /&gt;&lt;br /&gt;Il vous suffit de rajouter "/admin" dans la barre d'adresse afin de pouvoir commencer à administrer votre site !&lt;br /&gt;&lt;br /&gt;&lt;font size="1"&gt;&lt;em&gt;Exemple: http://www.mondomaine.fr/admin&lt;/em&gt;&lt;/font&gt;</contenu>
<type>owSimple</type>
<ordre>1</ordre>
<etat>1</etat>
</page>

9
data/pages/2#Blog.xml Executable file
View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<page>
<id>2</id>
<nom>Blog</nom>
<contenu><![CDATA[ Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première page.Voici votre première<br> ]]></contenu>
<type>owSimple</type>
<ordre>2</ordre>
<etat>1</etat>
</page>

9
data/pages/3#Forum.xml Executable file
View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<page>
<id>3</id>
<nom>Forum</nom>
<contenu><![CDATA[ Voici votre première page.]]></contenu>
<type>owSimple</type>
<ordre>3</ordre>
<etat>1</etat>
</page>

9
data/pages/4#Ressources.xml Executable file
View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<page>
<id>4</id>
<nom>Ressources</nom>
<contenu><![CDATA[ Voici votre première page.]]></contenu>
<type>owSimple</type>
<ordre>4</ordre>
<etat>1</etat>
</page>

9
data/pages/5#Documentation.xml Executable file
View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<page>
<id>5</id>
<nom>Documentation</nom>
<contenu><![CDATA[ Voici votre première page.]]></contenu>
<type>owSimple</type>
<ordre>5</ordre>
<etat>1</etat>
</page>

52
index.php Normal file → Executable file
View file

@ -1,30 +1,40 @@
<?php
// Vérification de l'installation.
ob_start();
if (!file_exists("data/config.xml")){header('Location: install/index.php?etape=0');}
// Inclusion des librairie
require_once ('lib/aeos.lib.php');
require_once ('lib/var.lib.php');
// Inclusion des librairies
require ('lib/aeos.lib.php');
require ('lib/config.lib.php');
require ('lib/var.lib.php');
//Check Install
checkInstall();
// URL Rewriting
if(isset($_GET['redirect']))
{
if (preg_match("#".AEOS_REW."([0-9-]+)-([^0-9](?:.+))#isU", $_SERVER['REDIRECT_URL'], $redirect))
{
header("Status: 200 OK", false, 200);
$redirect=abs($redirect[1]);
require ('lib/config.lib.php');
require ('lib/var.lib.php');
}
else header('Location: '.AEOS_REW.HOME_PAGE.'-E404.html');
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><?php echo AEOS_NAME." | ".AEOS_TITLE; ?></title>
<meta name="description" content="<?php echo AEOS_DESC; ?>" />
<link rel="stylesheet" type="text/css" media="screen" href="themes/<?php echo AEOS_THEME; ?>/styles.css" />
<link rel="icon" type="image/png" href="themes/<?php echo AEOS_THEME; ?>/images/favicon_aeos.ico" />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title><?php echo $SITE_NOM." | ".$PAGE_TITRE; ?></title>
<meta name="description" content="<?php echo $SITE_DESC; ?>" />
<?php
// Detection du navigateur. Si iPhone ou non.
if(preg_match("/iphone/i", $_SERVER["HTTP_USER_AGENT"])) {?>
<link rel="stylesheet" type="text/css" media="screen" href="themes/<?php echo $SITE_THEME; ?>/styles_mobile.css" /><?php } else { ?>
<link rel="stylesheet" type="text/css" media="screen" href="themes/<?php echo $SITE_THEME; ?>/styles.css" />
<link rel="icon" type="image/png" href="themes/<?php echo $SITE_THEME; ?>/images/favicon_aeos.ico" /><?php } ?>
</head>
<?php
// Maintenance ou non
if ($SITE_MAINTENANCE=="on"){require_once('themes/'.$SITE_THEME.'/maintenance.php');}
else {require_once('themes/'.$SITE_THEME.'/base.php');}
if (AEOS_MAINTENANCE=="on"){require_once('themes/'.AEOS_THEME.'/maintenance.php');}
else {require_once('themes/'.AEOS_THEME.'/base.php');}
ob_end_flush();
?>

22
install/base.xml Normal file → Executable file
View file

@ -1,19 +1,23 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<nom_site>nom</nom_site>
<description_site>description</description_site>
<nom_site>AEOS | Version Stable </nom_site>
<description_site>Version Stable d'AEOS.</description_site>
<lang>fr</lang>
<login_admin>admin</login_admin>
<email_admin>admin@admin.fr</email_admin>
<mdp_admin>0be75405074e9ede12f8556a52be22e9</mdp_admin>
<mdp_admin>21232f297a57a5a743894a0e4a801fc3</mdp_admin>
<accueil>1</accueil>
<theme>defaut</theme>
<contentd>0</contentd>
<version>0.2</version>
<version>0.4 [CALVARIUM]</version>
<maintenance>off</maintenance>
<message>Votre site est actuellement en maintenance. &lt;br /&gt;&#13;
&lt;br /&gt;&#13;
Merci de revenir plus tard !</message>
<footer>Copyright © 2011 NNS Production. Tous droits réservés. &lt;br /&gt;&lt;a href="http://nekonosekai.com"&gt;AEOS&lt;/a&gt; est un logiciel libre sous licence GNU/GPL.</footer>
<debug>FALSE</debug>
<message>Site en maintenance</message>
<footer>© 2004 - 2013 NNS Production</footer>
<update>10-07-2013</update>
<urlrewriting>1</urlrewriting>
<urlrewriting_key/>
</configuration>

425
install/index.php Normal file → Executable file
View file

@ -3,234 +3,233 @@
if (file_exists("../data/config.xml")){header('Location: ../index.php');}
require_once ('../lib/aeos.lib.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>AEOS | Installation</title>
<link rel="stylesheet" type="text/css" media="screen" href="../themes/defaut/styles.css" />
<link rel="stylesheet" type="text/css" media="screen" href="../themes/system/styles.css" />
<link rel="stylesheet" type="text/css" media="screen" href="install.css" />
<link rel="icon" type="image/png" href="../themes/defaut/images/favicon_aeos.ico" />
</head>
<body>
<div id="content">
<div id="center">
<div id="left">NNSPROD LOGO</div>
<h6><img src="../themes/defaut/images/icones/config.png" alt="Install" class="icon" />Installation - AEOS</h6>
<div id="Layout"></div>
<div id="Administration">
<h1><img src="../themes/system/images/logo_black.png" alt="Logo AEOS" /></h1>
<h6>
<img src="../themes/system/images/icones/logout.png" alt="Logout" class="icon" />
Installation - AEOS
</h6>
<table class="tableCenter">
<tr>
<?php
!isset($_GET['etape'])?$etape=0:$etape=$_GET['etape'];
$PHPVersion = phpversion();
$PHPv = explode (".", $PHPVersion);
switch ($etape)
{
// Pré-installation
case 0: ?>
<td class="menu">
<ul class="listing">
<li id="actif">Preface</li>
<li class="onglet">Etape 1</li>
<li class="onglet">Etape 2</li>
<li class="onglet">Etape 3</li>
<li class="onglet">Etape 4</li>
</ul>
</td>
<td rowspan="2" class="blocD">
<form method="post" action="index.php?etape=1">
<h2>Préface d'installation</h2>
<h3>AEOS 0.2 [CALVARIUM]</h3>
<p>
Bienvenue sur l'assistant d'installation d'AEOS [CALVARIUM] !<br />
Veuillez suivre les étapes et valider avec la touche "suivant" afin de progresser.<br /><br />
<b>Prérequis:</b><br /><br />
PHP version >= 5.x.x
<?php
if ($PHPv[0]>=5) {echo "<span class='validation'>OK</span><br />";}
else {$erreur="Vous ne disposez pas de la version 5 de PHP."; echo "<span class='erreur'>ERREUR</span><br />";}
?>
Possibilité d'écrire dans le dossier DATA
<?php
$chmod_data = substr(sprintf('%o', fileperms('../data')), -4);
if ($chmod_data<"0700"){$erreur="Le dossier DATA n'a pas les droits appropriés. Il est en ".$chmod_data; echo "<span class='erreur'>ERREUR</span>";}
else {echo "<span class='validation'>OK</span>";}
?>
<div id="Menu">
<ul>
<?php
if (!isset($_POST['lang'])) $langs="fr"; else $langs=$_POST['lang'];
require_once('lang/'.$langs.'/index.php');
$menuArray=array($lang['L_Inst_Etape'], $lang['L_Inst_Etape1'], $lang['L_Inst_Etape2'], $lang['L_Inst_Etape3'], $lang['L_Inst_Etape4']);
$l=0;
foreach ($menuArray as $menu)
{
if (@$_GET['etape']==$l){ ?><li class="Actif"><?php }
else { ?><li><?php }
echo $menu."</li>";
$l++;
}
?>
</ul>
</div>
<?php
!isset($_GET['etape'])?$etape=0:$etape=$_GET['etape'];
$PHPVersion = phpversion();
$PHPv = explode (".", $PHPVersion);
$install_conf = lecture_xml("base.xml");
switch ($etape)
{
// Prérequis -------------------------------------------------------------------------------------------------------------------------
case 0:
?>
<form method="POST" action="index.php?etape=0">
<p>
<select name="lang" class="input_select" onchange="this.form.submit();">
<option value="basic">-</option>
<?php
$list = listing_dossier("lang/");
foreach ($list as $pages)
{
$lg = lecture_xml('lang/'.$pages.'/lang.xml'); ?>
<option value="<?php echo $pages; ?>" <?php if($pages==@$_POST['lang']){echo "selected";}?>>
<?php echo $lg['lang']['title']['#text'];?>
</option><?php
} ?>
</select>
</p>
</form>
<form method="POST" action="index.php?etape=1">
<h3>AEOS v<?php echo $install_conf['configuration']['version']['#text'];?></h3>
<h4><?php echo $lang['L_Inst_bienvenue']; ?></h4>
<h5><?php echo $lang['L_Inst_instruction']; ?></h5>
<p><?php echo $lang['L_Inst_prerequis']; ?></p>
<table class="Full">
<tr>
<td><?php echo $lang['L_Inst_versionphp']; ?><?php echo $PHPVersion; ?></td>
<td>
<?php
if (isset($erreur))
{
echo "<br /><span class='erreur2'>".$erreur."</span>";
?><br /><input type="submit" value="Suivant" class="input" id="input1" disabled="disabled" /><?php
}
else
{ ?>
<br /><br /><input type="submit" value="Suivant" class="input" id="input1" /><?php
} ?>
</p>
</form>
</td>
<?php
break;
// Etape 1
case 1:
?>
<td class="menu">
<ul class="listing">
<li class="onglet">Preface</li>
<li id="actif">Etape 1</li>
<li class="onglet">Etape 2</li>
<li class="onglet">Etape 3</li>
<li class="onglet">Etape 4</li>
</ul>
</td>
<td rowspan="2" class="blocD">
<form method="post" action="index.php?etape=2">
<h2>Etape 1</h2>
<h3>Configuration générale</h3>
<p>
Titre du site<br />
<input class="textWidth" type="text" name="titre" /><br /><br />
Description du site<br />
<textarea class="textWidth" name="description" rows="1" cols="1" class="input"></textarea>
<input type="button" value="Précédent" onclick="javascript:history.back();" class="input" id="input2" />
<input type="submit" value="Suivant" class="input" id="input1" />
</p>
</form>
</td>
<?php
break;
// Etape 2
case 2:
?>
<td class="menu">
<ul class="listing">
<li class="onglet">Preface</li>
<li class="onglet">Etape 1</li>
<li id="actif">Etape 2</li>
<li class="onglet">Etape 3</li>
<li class="onglet">Etape 4</li>
</ul>
</td>
<td rowspan="2" class="blocD">
<form method="post" action="index.php?etape=3">
<h2>Etape 2</h2>
<h3>Configuration du compte Administrateur</h3>
<p>
Identifiant: <input type="text" style="float:right; border:1px solid #219AD2;" name="login_admin" /><br /><br />
Mot de passe: <input type="password" style="float:right; border:1px solid #219AD2;" name="mdp_admin" /><br /><br />
Confirmer mot de passe: <input type="password" style="float:right; border:1px solid #219AD2;" name="mdp_confirme_admin" /><br /><br />
eMail: <input type="text" style="float:right; border:1px solid #219AD2;" name="email_admin" /><br /><br />
if ($PHPv[0]>=5) {echo "<span class='valide'>OK</span><br />";}
else
{
$erreur=$lang['L_Inst_Msg_versionphp'];
echo "<span class='erreur'>".$lang['L_Inst_Msg_erreur']."</span><br />";
}
?>
</td>
</tr>
<tr>
<td><?php echo $lang['L_Inst_repdata']; ?> </td>
<td>
<?php
if(!isset($_GET['erreur']))
{
ecriture_xml('base.xml', 'nom_site', $_POST['titre']);
ecriture_xml('base.xml', 'description_site', $_POST['description']);
}
if (@$_GET['erreur']==1) echo "<span class='erreur2'>Les deux mots de passe ne sont pas identiques !</span><br />";
elseif (@$_GET['erreur']==2) echo "<span class='erreur2'>Votre adresse email n'est pas conforme.</span><br />";
?>
<input type="button" value="Précédent" onclick="javascript:history.back();" class="input" id="input2" />
<input type="submit" value="Suivant" class="input" id="input1" />
</p>
</form>
</td>
<?php
break;
// Etape 3
case 3:
?>
<td class="menu">
<ul class="listing">
<li class="onglet">Preface</li>
<li class="onglet">Etape 1</li>
<li class="onglet">Etape 2</li>
<li id="actif">Etape 3</li>
<li class="onglet">Etape 4</li>
</ul>
</td>
$chmod_data = substr(sprintf('%o', fileperms('../data')), -4);
if ($chmod_data<"0700")
{
$erreur=$lang['L_Inst_Msg_repdata'].$chmod_data;
echo "<span class='erreur'>".$lang['L_Inst_Msg_erreur']."</span>";
}
else echo "<span class='valide'>OK</span>";
?></td>
</tr>
</table>
<td rowspan="2" class="blocD">
<form method="post" action="index.php?etape=4">
<h2>Etape 3</h2>
<h3>Licence publique générale GNU</h3>
<?php if (@$_GET['erreur']==1) echo "<span class='erreur2'>Veuillez accepter les conditions !</span><br />";
elseif (isset($_POST['mdp_admin']) && md5($_POST['mdp_admin']) != md5($_POST['mdp_confirme_admin']))
{
@header('Location:index.php?etape=2&erreur=1');
}
elseif (checkMail($_POST['email_admin'])==FALSE)
{
@header('Location:index.php?etape=2&erreur=2');
}
else
{
<p>
<?php
if (isset($erreur))
{
echo "<span class='erreur'>".$erreur."</span>"; ?>
<input type="submit" value="<?php echo $lang['L_Mot_suivant']; ?>" class="input_button" disabled="disabled" /><?php
}
else
{ ?>
<input type="submit" value="<?php echo $lang['L_Mot_suivant']; ?>" class="input_button" /><?php
} ?>
<input type="hidden" name="lang" value="<?php if(!@isset($_POST['lang'])){echo "fr";}else{echo $_POST['lang'];} ?>" />
</p>
</form>
<?php
break;
// Etape 1 -------------------------------------------------------------------------------------------------------------------------
case 1:
?>
<form method="POST" action="index.php?etape=2">
<h3><?php echo $lang['L_Inst_confgen']; ?></h3>
<p><?php echo $lang['L_Inst_sitenom']; ?></p>
<p><input class="input_text" type="text" name="titre" /></p>
<p><?php echo $lang['L_Inst_descnom']; ?></p>
<p><input class="input_text" name="description" /></p>
<p>
<input type="button" value="<?php echo $lang['L_Mot_precedent']; ?>" onclick="javascript:history.back();" class="input_button" />
<input type="submit" value="<?php echo $lang['L_Mot_suivant']; ?>" class="input_button" />
<input type="hidden" name="lang" value="<?php if(!@isset($_POST['lang'])){echo "fr";}else{echo $_POST['lang'];} ?>" />
</p>
</form>
<?php
break;
// Etape 2 -------------------------------------------------------------------------------------------------------------------------
case 2:
?>
<form method="POST" action="index.php?etape=3">
<h3><?php echo $lang['L_Inst_confadmin']; ?></h3>
<p><?php echo $lang['L_Mot_identifiant']; ?></p>
<p><input type="text" class="input_text" name="login_admin" /></p>
<p><?php echo $lang['L_Mot_motdepasse']; ?></p>
<p><input type="password" class="input_text" name="mdp_admin" /></p>
<p><?php echo $lang['L_Mot_confmotdepasse']; ?></p>
<p><input type="password" class="input_text" name="mdp_confirme_admin" /></p>
<p><?php echo $lang['L_Mot_mail']; ?></p>
<p><input type="text" class="input_text" name="email_admin" /></p>
<?php
if(!isset($_GET['erreur']))
{
ecriture_xml('base.xml', 'login_admin', $_POST['login_admin']);
ecriture_xml('base.xml', 'mdp_admin', md5($_POST['mdp_admin']));
ecriture_xml('base.xml', 'email_admin', $_POST['email_admin']);
ecriture_xml('base.xml', 'nom_site', $_POST['titre']);
ecriture_xml('base.xml', 'description_site', $_POST['description']);
ecriture_xml('base.xml', 'lang', $_POST['lang']);
}
}?>
<p>
<textarea class="textWidth" style="height:90px;" cols="0" rows="0"><?php include('../licence.txt'); ?></textarea><br />
<input type="checkbox" name="conditions" /> Oui j'ai lu et j'accepte les termes et conditions d'utilisation
<input type="button" value="Précédent" onclick="javascript:history.back();" class="input" id="input2" />
<input type="submit" value="Suivant" class="input" id="input1" />
</p>
</form>
</td>
<?php
break;
// Etape 4
case 4:
if (!isset($_POST['conditions']) || (@$_POST['conditions']!="on"))
if (@$_GET['erreur']==1) echo "<span class='erreur'>".$lang['L_Inst_Msg_motdepasse']."</span><br />";
elseif (@$_GET['erreur']==2) echo "<span class='erreur'>".$lang['L_Inst_Msg_mauvaisemail']."</span><br />";
?>
<p><input type="button" value="<?php echo $lang['L_Mot_precedent']; ?>" onclick="javascript:history.back();" class="input_button" /></p>
<p><input type="submit" value="<?php echo $lang['L_Mot_suivant']; ?>" class="input_button" /></p>
<input type="hidden" name="lang" value="<?php if(!@isset($_POST['lang'])){echo "fr";}else{echo $_POST['lang'];} ?>" />
</form>
<?php
break;
// Etape 3 -------------------------------------------------------------------------------------------------------------------------
case 3:
?>
<form method="POST" action="index.php?etape=4">
<h3><?php echo $lang['L_Inst_licence']; ?></h3>
<?php
if (@$_GET['erreur']==1) echo "<span class='erreur'>".$lang['L_Inst_Msg_condition']."</span>";
elseif (isset($_POST['mdp_admin']) && md5($_POST['mdp_admin']) != md5($_POST['mdp_confirme_admin']))
{
@header('Location: index.php?etape=3&erreur=1');
} ?>
<td class="menu">
<ul class="listing">
<li class="onglet">Preface</li>
<li class="onglet">Etape 1</li>
<li class="onglet">Etape 2</li>
<li class="onglet">Etape 3</li>
<li id="actif">Etape 4</li>
</ul>
</td>
<td rowspan="2" class="blocD">
<form method="post" action="../index.php">
<h2>Etape 4</h2>
<h3>Finalisation</h3>
<?php
copy("base.xml", "../data/config.xml");
unlink("base.xml");
?>
<p>
<b>AEOS 0.1 Alpha [CALVARIUM]</b> installé avec succés !<br /><br />
<span class="erreur2">N'oubliez pas d'effacer le dossier INSTALL de votre serveur !</span><br />
(Vous avez la possibilité de l'effacer via l'administration du site)<br /><br />
<b>Remerciements:</b><br />
N.n.S Production, PHP.NET
<input type="submit" value="Accés au site" class="input" id="input1" />
</p>
</form>
</td>
<?php
break;
} ?>
</tr>
<tr>
<td style="background:none;">
</td>
</tr>
</table>
@header('Location:index.php?etape=2&erreur=1');
}
elseif (checkMail($_POST['email_admin'])==FALSE)
{
@header('Location:index.php?etape=2&erreur=2');
}
else
{
if(!isset($_GET['erreur']))
{
ecriture_xml('base.xml', 'login_admin', $_POST['login_admin']);
ecriture_xml('base.xml', 'mdp_admin', md5($_POST['mdp_admin']));
ecriture_xml('base.xml', 'email_admin', $_POST['email_admin']);
}
}
$licence = @file_get_contents('http://www.gnu.org/licenses/gpl.txt'); ?>
<p><textarea class="input_text"><?php echo $licence; ?></textarea></p>
<p>
<input type="checkbox" name="conditions" />
<?php echo $lang['L_Inst_accepte']; ?>
</p>
<p><input type="button" value="<?php echo $lang['L_Mot_precedent']; ?>" onclick="javascript:history.back();" class="input_button" /></p>
<p><input type="submit" value="<?php echo $lang['L_Mot_suivant']; ?>" class="input_button" /></p>
<p><input type="hidden" name="lang" value="<?php if(!@isset($_POST['lang'])){echo "fr";}else{echo $_POST['lang'];} ?>" /></p>
</form>
<?php
break;
// Etape 4 -------------------------------------------------------------------------------------------------------------------------
case 4:
if (!isset($_POST['conditions']) || (@$_POST['conditions']!="on"))
{
@header('Location: index.php?etape=3&erreur=1');
} ?>
<form method="POST" action="../index.php">
<h3><?php echo $lang['L_Mot_finalisation']; ?></h3>
<p>AEOS v<?php echo $install_conf['configuration']['version']['#text'];?></p>
<h4><?php echo $lang['L_Inst_succes']; ?></h4>
<p><?php echo $lang['L_Inst_effacerinstall']; ?></p>
<h5><?php echo $lang['L_Inst_admineffacer']; ?></h5>
<p><?php echo $lang['L_Mot_remerciements']; ?>:</p>
<p>NNS Production, PHP.NET</p>
<p>
<input type="submit" value="<?php echo $lang['L_Inst_accessite']; ?>" class="input_button" />
<input type="hidden" name="lang" value="<?php if(!@isset($_POST['lang'])){echo "fr";}else{echo $_POST['lang'];} ?>" />
</p>
</form>
<?php copy("base.xml", "../data/config.xml"); ?>
<?php
break;
} ?>
</div>
</div>
</body>

85
install/install.css Normal file → Executable file
View file

@ -1,25 +1,66 @@
/*
Utilisation de la CSS de base du thème defaut.
*/
/* Install.css */
table {margin-top:10px;}
td {background-color:#A0D2FC;}
h2 {font-weight:bold; font-size:16px;}
h3 {font-weight:bold; font-size:14px;}
p {text-align:left; margin:0 5px 0 5px; padding:4px; color:#0E6696;}
#Administration
{
width:350px;
position:absolute;
top:30%;
left:50%;
margin:-175px 0 0 -175px;
}
#Administration a {color:#FFFFFF;}
#Administration h6 {margin:3px 0 20px 0;}
#Administration p {margin:0 0 5px 0; padding:0 8px 0 8px;}
#Administration h1, #Administration h6, #Administration p, #Administration h3, #Administration h4, #Administration h5 {font-size:12px; text-align:center; color:#EAEAEC; font-weight:bold; text-shadow:1px 1px 0 #606062;}
#Administration h3 {font-size:15px; margin:0 0 10px 0;}
#Administration h4 {font-size:12px; margin:0 0 10px 0;}
#Administration h5 {font-size:12px; font-weight:200; margin:0 0 20px 0;}
#Administration input {min-width:200px;}
#Administration input[type="checkbox"] {min-width:5px; margin:0 5px 0 0;}
#Administration .input_button, #Administration .input_text, #Administration .input_select {width:235px; height:35px; min-width:0%;}
#Administration .input_button {margin:15px 0 0 0;}
#Administration textarea.input_text {height:180px;}
table.Full {width:240px; margin:0 0 0 57px;}
li {list-style-type:none; background-color:#79C0FB; border:1px solid #0E6696;}
.validation {font-weight:bold; color:green; float:right;}
.erreur {font-weight:bold; color:red; float:right;}
.erreur2 {font-weight:bold; color:red;}
.menu {height:55px; width:90px; background:none;}
.listing {margin:1px 0 0 0;}
.blocD {width:400px; border:1px solid #0E6696;}
.textWidth {width:375px; border:1px solid #219AD2;}
#actif {height:20px; padding:8px 7px 0 7px; margin:-2px 0 4px 0; border:1px solid white; font-weight:bold;}
.onglet {height:20px; padding:8px 7px 0 7px; margin:-2px 0 4px 0;}
#input1 {float:right; margin:5px -5px 5px 5px;}
#input2 {float:left; margin:5px 5px 5px -5px;}
#Layout
{
width:350px;
height:100%;
position:absolute;
top:0;
left:50%;
margin:0 0 0 -175px;
background:url(../themes/system/images/sidemenu.png);
border-right:1px solid #4E4F50;
border-left:1px solid #4E4F50;
}
#center {height: 300px;}
.tableCenter {margin:0 auto 0; width:510px;}
#Menu
{
width:150px;
position:absolute;
margin:0 0 0 -150px;
top:25%;
}
#Menu ul li
{
list-style-type:none;
height:35px;
border-top:5px solid #FFFFFF;
border-bottom:5px solid #FFFFFF;
border-left:5px solid #FFFFFF;
padding:17px 10px 0 0;
margin:15px 0 15px 0;
box-shadow: -3px 3px 5px #888888;
text-align:right;
}
#Menu ul li.Actif
{
color:#FFFFFF;
background:url(../themes/system/images/sidemenu.png);
margin:0 -1px 0 0;
font-weight:bold;
font-size:16px;
text-align:left;
padding:17px 0 0 10px;
}

47
install/lang/en/index.php Executable file
View file

@ -0,0 +1,47 @@
<?php
// Language file, in english
$lang = array(
'L_lang' => 'English',
// Instalation
'L_Inst_intro' => 'Interface in',
'L_Inst_bienvenue' => 'Welcome to the AEOS Installation Wizard !',
'L_Inst_instruction' => 'Please follow the steps and confirm by pressing "next" to progress.',
'L_Inst_prerequis' => 'Prerequisites: ', //space
'L_Inst_versionphp' => 'PHP version: ', //space
'L_Inst_repdata' => '"Data" directory writable: ', //space
'L_Inst_confgen' => 'General configuration',
'L_Inst_sitenom' => 'Website title',
'L_Inst_descnom' => 'Website description',
'L_Inst_confadmin' => 'Administrator account configuration',
'L_Inst_licence' => 'GNU public general license',
'L_Inst_accepte' => 'Yes I have read and accept the terms and conditions of use',
'L_Inst_succes' => 'succesfully installed !',
'L_Inst_effacerinstall' => 'Don\'t forget to delete the INSTALL folder from your server !',
'L_Inst_admineffacer' => '(You can delete it later from the administration)',
'L_Inst_accessite' => 'Website access',
// Instalation -> Error mesages
'L_Inst_Msg_versionphp' => 'You don\'t have version 5 of PHP.',
'L_Inst_Msg_erreur' => 'ERROR',
'L_Inst_Msg_repdata' => 'DATA folder doesn\'t have the appropriate rights.', //space
'L_Inst_Msg_motdepasse' => 'Passwords do not match!',
'L_Inst_Msg_mauvaisemail' => 'Your email address is invalid.',
'L_Inst_Msg_condition' => 'Please accept the conditions!',
// Word
'L_Mot_etape' => 'Step',
'L_Mot_preface' => 'Preface',
'L_Mot_finalisation' => 'Finalisation',
'L_Mot_remerciements' => 'Thanks',
'L_Mot_identifiant' => 'Login',
'L_Mot_motdepasse' => 'Password',
'L_Mot_confmotdepasse' => 'Confirm password',
'L_Mot_mail' => 'Email',
'L_Mot_suivant' => 'Next',
'L_Mot_precedent' => 'Back',
);
?>

5
install/lang/en/lang.xml Executable file
View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<lang>
<title>English</title>
<abbr>en</abbr>
</lang>

53
install/lang/fr/index.php Executable file
View file

@ -0,0 +1,53 @@
<?php
// Fichier langue, en français.
$lang = array(
'L_lang' => "Français",
// Installation
'L_Inst_Etape' => "Prérequis",
'L_Inst_Etape1' => "Configuration",
'L_Inst_Etape2' => "Administration",
'L_Inst_Etape3' => "Licence",
'L_Inst_Etape4' => "Terminée !",
'L_Inst_intro' => "Préface d'installation",
'L_Inst_bienvenue' => "Bienvenue sur l'assistant d'installation d'AEOS !",
'L_Inst_instruction' => "Veuillez suivre les étapes et valider avec le bouton 'suivant'.",
'L_Inst_prerequis' => "Prérequis: ", //espace
'L_Inst_versionphp' => "Version de PHP: ", //espace
'L_Inst_repdata' => "Répertoire 'data' accessible en écriture: ", //espace
'L_Inst_confgen' => "Configuration générale",
'L_Inst_sitenom' => "Titre",
'L_Inst_descnom' => "Description",
'L_Inst_confadmin' => "Configuration du compte Administrateur",
'L_Inst_licence' => "Licence publique générale GNU",
'L_Inst_accepte' => "Oui j'ai lu et j'accepte les termes et conditions d'utilisation",
'L_Inst_succes' => "installé avec succés !",
'L_Inst_effacerinstall' => "N'oubliez pas d'effacer le dossier INSTALL de votre serveur !",
'L_Inst_admineffacer' => "(Possibilité de l'effacer via l'administration du site)",
'L_Inst_accessite' => "Accés au site",
// Installation -> Message d'erreur
'L_Inst_Msg_versionphp' => "Vous ne disposez pas de la version 5 de PHP.",
'L_Inst_Msg_erreur' => "ERREUR",
'L_Inst_Msg_repdata' => "Le dossier DATA n'a pas les droits appropriés. Il est en ", //espace
'L_Inst_Msg_motdepasse' => "Les deux mots de passe ne sont pas identiques !",
'L_Inst_Msg_mauvaisemail' => "Votre adresse email n'est pas conforme.",
'L_Inst_Msg_condition' => "Veuillez accepter les conditions !",
// Mot
'L_Mot_etape' => "Etape",
'L_Mot_preface' => "Préface",
'L_Mot_finalisation' => "Finalisation",
'L_Mot_remerciements' => "Remerciements",
'L_Mot_identifiant' => "Identifiant",
'L_Mot_motdepasse' => "Mot de passe",
'L_Mot_confmotdepasse' => "Confirmer mot de passe",
'L_Mot_mail' => "Mail",
'L_Mot_suivant' => "Suivant",
'L_Mot_precedent' => "Précédent",
);
?>

5
install/lang/fr/lang.xml Executable file
View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<lang>
<title>Français</title>
<abbr>fr</abbr>
</lang>

7
lib/.htaccess Normal file → Executable file
View file

@ -1 +1,6 @@
deny from all
Options -Indexes
deny from all
<Files "rew.lib.php">
Allow from all
</Files>

194
lib/aeos.lib.php Normal file → Executable file
View file

@ -4,7 +4,7 @@
/* Class qui permet la lecture des fichiers XML */
class Xml2Array
{
{
private $xml_dom;
private $xml_array;
private $xml;
@ -68,7 +68,8 @@ class Xml2Array
if (!is_array(@$result))
{
$result['#text'] = html_entity_decode(htmlentities($dom_element->nodeValue, ENT_COMPAT, 'UTF-8'), ENT_COMPAT,'ISO-8859-1');
if (function_exists('html_entity_decode')) $result['#text'] = html_entity_decode(htmlentities($dom_element->nodeValue));
else $result['#text'] = htmlentities($dom_element->nodeValue);
}
if ($dom_element->hasAttributes())
@ -76,7 +77,8 @@ class Xml2Array
foreach ($dom_element->attributes as $attrib)
{
$prefix = ($attrib->prefix) ? $attrib->prefix.':' : '';
$result["@".$prefix.$attrib->nodeName] = $attrib->nodeValue;
if (function_exists('html_entity_encode')) $result["@".$prefix.$attrib->nodeName] = html_entity_encode(htmlentities($attrib->nodeValue));
else $result["@".$prefix.$attrib->nodeName] = htmlentities($attrib->nodeValue);
}
}
@ -87,7 +89,7 @@ class Xml2Array
{
if(empty($this->xml))
{
echo '<span class="erreur">Aucun fichier XML trouv&eacute;.</span>';
echo '<span class="erreur">Aucun fichier XML trouvé.</span>';
return false;
}
@ -98,7 +100,8 @@ class Xml2Array
return $this->xml_dom;
}
echo '<span class="erreur">Donn&eacute;es XML invalide</span>'; exit;
echo '<span class="erreur">Données XML invalide</span>';
//header('Location: '.$AEOS_REW.HOME_PAGE.'-E404.html');
}
}
@ -116,18 +119,40 @@ function listing_dossier($folder)
{
$dossier = opendir($folder);
$i=0;
while ($Fichier = readdir($dossier)) {
if ($Fichier != "." && $Fichier != "..") {
while ($Fichier = readdir($dossier))
{
if ($Fichier != "." && $Fichier != ".." && $Fichier != ".htaccess" && substr($Fichier, 0, 1) != '.')
{
$array[$i]=$Fichier;
$i++;
}
}
@natsort($array);
return $array;
closedir($dossier);
return $array;
closedir($dossier);
}
// Renvoi le listing du dossier PAGE en triant par ordre
function listing_ordre($o = NULL)
{
$a = array();
$l = listing_dossier(DATA_PAGES);
foreach ($l as &$p)
{
$m = lecture_xml(DATA_PAGES.$p);
$a[$m['page']['ordre']['#text']] = $p;
}
switch($o)
{
case 1: krsort($a); break;
case 0:
default: ksort($a); break;
}
return $a;
}
// Enregistre une donnée dans un XML - Chemin, OldElement, NewElement
/*
function ecriture_xml($a, $b, $c)
{
$dom = new DomDocument;
@ -135,10 +160,46 @@ function ecriture_xml($a, $b, $c)
$xml = $dom->getElementsByTagName($b);
//echo $xml->item(0)->nodeValue;
$titre = $xml->item(0);
$titre->nodeValue = utf8_encode($c);
$titre->nodeValue = stripslashes(utf8_encode($c));
//echo $dom->saveXML();
$dom->save($a);
}
*/
function ecriture_xml($a, $b, $c, $d=FALSE)
{
$dom = new DomDocument('1.0','UTF-8');
$dom->load($a);
$b = explode("/", $b);
$i = 0;
foreach($b as $element)
{
$crt = "dom".$i;
$prec = ($i == 0)? "dom" : "dom".($i-1);
if(substr($element, -1) == "]")
{
$d = explode("[", $element);
$e = $d[0];
$f = intval(substr($d[1], 0, -1));
$$crt = $$prec->getElementsByTagName($e)->item($f);
}
else
{
$$crt = $$prec->getElementsByTagName($element)->item(0);
}
$i++;
}
$rep = $$crt->nodeValue = stripslashes($c);
if($d)
{
$ocrt = $$crt;
$ncrt=$$crt->parentNode->appendChild($dom->createElement($element));
$cdata=$dom->createCDATASection(stripslashes($c));
$ncrt->appendChild($cdata);
$$crt->parentNode->replaceChild($ncrt, $ocrt);
}
$dom->save($a);
}
// Renvoi une donnée en STRING
function donnee_xml($a, $b)
@ -149,6 +210,13 @@ function donnee_xml($a, $b)
return $xml->item(0)->nodeValue;
}
function cleanName($a)
{
$b = array('"', '/', ',', '\\', '*', '?', '<', '>', '|', ':');
$c = str_replace($b, "", $a);
return utf8_decode($c);
}
// Upload $fichier, le dézippe dans $dossier et affiche le message $page
function upload_unzip($fichier, $dossier, $page)
{
@ -156,7 +224,7 @@ function upload_unzip($fichier, $dossier, $page)
$source = $fichier["tmp_name"];
$type = $fichier["type"];
if ($type=="application/zip" || $type=="application/x-zip-compressed" || $type=="multipart/x-zip" || $type=="application/x-compressed")
if ($type=="application/zip" || $type=="application/x-zip-compressed" || $type=="multipart/x-zip" || $type=="application/x-compressed" || $type=="application/octet-stream")
{
$target_path = $dossier.$filename;
if(move_uploaded_file($source, $target_path))
@ -164,7 +232,7 @@ function upload_unzip($fichier, $dossier, $page)
$nom = basename($filename, ".zip");
if (is_dir($dossier.$nom)==TRUE)
{
echo "<span class='erreur'>Ce ".$page." est d&eacute;j&agrave; install&eacute;.</span>";
$e = 2; //echo "<span class='erreur'>Ce ".$page." est déjà installé.</span>";
unlink($target_path);
}
else
@ -181,12 +249,17 @@ function upload_unzip($fichier, $dossier, $page)
$contenu = lecture_xml($dossier.$nom."/config.xml");
rename ($dossier.$nom, $dossier.$contenu['configuration']['dossier']['#text']);
//
echo "<span class='valide'>Votre ".$page." a bien &eacute;t&eacute; install&eacute;.</span>";
$e = 0; //echo "<span class='valide'>Votre ".$page." a bien &eacute;t&eacute; install&eacute;.</span>";
}
}
else {echo "<span class='erreur'>Une erreur est survenue. Veuillez recommencer.</span>";}
else {$e=1;
//echo "<span class='erreur'>Une erreur est survenue. Veuillez recommencer.</span>";
}
}
else {echo "<span class='erreur'>Votre fichier n'est pas un zip.</span>";}
else {$e=3;
//echo "<span class='erreur'>Votre fichier n'est pas un zip.</span>";
}
return $e;
}
// Inverse de nl2br by OverSu
@ -242,9 +315,10 @@ function generer_mdp($nbr)
}
// Envoi un mail
function sendMail($expediteur, $destinataire, $titre, $messageHTML){
// Ajout du nom de l'expéditeur dans le champs 'FROM' (Optionnel)
function sendMail($expediteur, $destinataire, $titre, $messageHTML, $name = null){
date("D, j M Y H:i:s");
$entete = "From: ".$expediteur."\n";
$entete = ($name == null)? "From: ".$expediteur."\n" : "From: ".$name." <".$expediteur.">\n";
$entete .= "Cc: \n";
$entete .= "Reply-To: ".$expediteur." \n";
$entete .= "X-Mailer: PHP/" . phpversion() . "\n" ;
@ -254,10 +328,94 @@ function sendMail($expediteur, $destinataire, $titre, $messageHTML){
// Retourne un boolean
// Vérifie si une adresse est belle et bien au format mail.
function checkMail($adresse)
function checkMail($adresse)
{
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
if(preg_match($Syntaxe,$adresse)) return true;
else return false;
}
// Retourne STRING
// Permet d'afficher le chemin complet du site SANS le fichier à la fin NI le slash. (Ex: http://www.domaine.com/dossier/)
function getBaseScript()
{
$fullPath = $_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];
$file = basename ($fullPath);
$dir = dirname($fullPath);
return $dir;
}
// Retourne STRING
// Transforme une chaine en URL valide
function valideURL($s)
{
$p = array("?","!","@","#","%","&amp;","*","(",")","[","]","=","+"," ",";",":","'",".","_", "&");
$s = str_replace($p, "-", $s);
$s = strip_tags($s);
$m = array('@', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'à', 'á', 'â', 'ã', 'ä', 'å', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ò', 'ó', 'ô', 'õ', 'ö', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ');
$n = array('a', 'A', 'A', 'A', 'A', 'A', 'A', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 'a', 'a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y');
while($k = strpos($s, '--')!==FALSE) $s = str_replace("--", "-", $s);
$s = str_replace($m, $n, $s);
return $s;
}
// Retrouve STRING
// Retourne la valeur précédente d'un array
function getValueArray($a, $b, $c)
{
$k = array_flip(array_keys($a));
$v = array_values($a);
return $v[$k[$b]+$c];
}
function showTooltip($a, $b)
{
$r='<a href="#" class="tooltip">';
$r.=$a;
$r.='<span>';
$r.='<img class="tooltipi" src="../themes/system/images/icones/tooltip.png" />';
$r.=$b;
$r.='</span>';
$r.='</a>';
return $r;
}
// Retourne BOOLEAN
// Retourne si il y a une nouvelle version - ou pas.
function checkVersion()
{
$v = lecture_xml(AEOS_REAL_URL.'/demo/data/config.xml');
if($v['configuration']['version']['#text']==AEOS_VERSION) return FALSE;
else return TRUE;
}
// Retourne STRING
// Retourne STRING sécurisé
function CA20($a)
{
//XSS
strip_tags($a);
$a = htmlspecialchars($a, ENT_QUOTES);
//SQL Injection
$a = htmlentities($a, ENT_QUOTES);
if(get_magic_quotes_gpc()===1){$a = stripslashes($a);}
return $a;
}
function checkInstall()
{
global $subdir;
$config = $subdir."data/config.xml";
$install = $subdir."install/index.php";
if (!file_exists($config))
{
if (!file_exists($install)) die("Fichier config.xml et script d'installation introuvable");
else header('Location: '.$install);
}
return TRUE;
}
?>

68
lib/config.lib.php Normal file → Executable file
View file

@ -1,29 +1,53 @@
<?php
/* ***************************************************
Listings des variables les plus utilisées sous AEOS.
*************************************************** */
if(empty($_GET['id'])){$id=1;} else {$id = $_GET['id'];}
$dossier = preg_match("/admin/", $_SERVER['SCRIPT_FILENAME']) ? "../" : "";
****************************************************/
header("Content-Type: text/html; charset=UTF-8");
//Check Admin
if (preg_match("/admin/", $_SERVER['SCRIPT_FILENAME']) || preg_match("/install/", $_SERVER['SCRIPT_FILENAME']))
{
$subdir = "../";
//Sécurisation
foreach ($_GET as $a => $b){$_[$a] = $b;}
foreach ($_POST as $a => $b){$_[$a] = $b;}
}
else
{
$subdir = "";
//Sécurisation
foreach ($_GET as $a => $b){$_[$a] = CA20($b);}
foreach ($_POST as $a => $b){$_[$a] = CA20($b);}
}
// Lecture de toutes les pages
$listing_pages = listing_dossier($subdir.'data/pages/');
$nbPages = count($listing_pages);
// Attribution des IDs
$lecture_pages = array();
for($i=0; $i<$nbPages; ++$i)
{
$allid = explode('#', $listing_pages[$i]);
$lecture_pages[$allid[0]] = substr($allid[0].'#'.$allid[1], 0, -4);
}
// Attribution des ordres
$ordre_pages = array();
for($i=0; $i<$nbPages; ++$i)
{
$lecture_tmp = lecture_xml($subdir.'data/pages/'.$listing_pages[$i]);
$ordre_pages[$lecture_tmp['page']['ordre']['#text']] = $listing_pages[$i];
}
// Lecture des fichiers de bases
$config = lecture_xml($dossier.'data/config.xml');
$data_pages = $dossier.'data/pages/';
$page = lecture_xml($dossier.'data/pages/'.$id.'.xml');
$config = lecture_xml($subdir.'data/config.xml');
$data_pages = $subdir.'data/pages/';
if (isset($redirect)) $id=$redirect; else if(empty($_GET['id'])) $id=$config['configuration']['accueil']['#text']; else $id = $_GET['id'];
$page = lecture_xml($subdir.'data/pages/'.$lecture_pages[$id].'.xml');
// Variables utilisées fréquemments
$SITE_NOM = $config['configuration']['nom_site']['#text'];
$SITE_DESC = $config['configuration']['description_site']['#text'];
$SITE_THEME = $config['configuration']['theme']['#text'];
$SITE_MAINTENANCE = $config['configuration']['maintenance']['#text'];
$SITE_MESSAGE = $config['configuration']['message']['#text'];
$SITE_VERSION = $config['configuration']['version']['#text'];
$SITE_FOOTER = $config['configuration']['footer']['#text'];
// Permet le référencement
$PAGE_TITRE = $page['page']['nom']['#text']; unset($page);
// Information administration
$ADMIN_MDP = $config['configuration']['mdp_admin']['#text'];
$ADMIN_LOG = $config['configuration']['login_admin']['#text'];
$ADMIN_EMAIL = $config['configuration']['email_admin']['#text'];
// Admin
if (isset($_['pid'])) $pid=$_['pid']; else $pid = 1;
if (isset($_['sid'])) $sid=$_['sid']; else $sid = 1;
?>

17
lib/debug.lib.php Executable file
View file

@ -0,0 +1,17 @@
<?php
// Listings des fonctions DEBUG d'AEOS.
// *****************************************************
ini_set('display_errors', 1);
ini_set('log_errors', 1);
// Retourne STRING
// Retourne sous forme d'arbre l'Array
if (!function_exists("view"))
{
function view($a)
{
print_r('<pre>');
print_r($a);
print_r('</pre>');
}
}
?>

0
lib/index.html Executable file
View file

42
lib/var.lib.php Normal file → Executable file
View file

@ -4,11 +4,43 @@ Fichier libraire contenant toutes les constantes et/ou variables
permettant de gérer AEOS.
*/
// Repère si oui nous sommes dans l'Administration
include('config.lib.php');
define('EXEC_START_TIME', microtime(true));
define('SECURITY', FALSE);
// Variables utilisées fréquemments
define('AEOS_NAME', $config['configuration']['nom_site']['#text']);
define('AEOS_DESC', $config['configuration']['description_site']['#text']);
define('AEOS_THEME', $config['configuration']['theme']['#text']);
define('AEOS_MAINTENANCE', $config['configuration']['maintenance']['#text']);
define('AEOS_MAINTMSG', $config['configuration']['message']['#text']);
define('AEOS_FOOTER', $config['configuration']['footer']['#text']);
// Permet le référencement
define('AEOS_TITLE', $page['page']['nom']['#text']);
// Information administration
define('AEOS_PASSWORD', $config['configuration']['mdp_admin']['#text']);
define('AEOS_LOGIN', $config['configuration']['login_admin']['#text']);
define('AEOS_MAIL', $config['configuration']['email_admin']['#text']);
// Variable d'URL Rewriting
define('AEOS_URL', $_SERVER['SERVER_NAME']);
define('AEOS_LANG', $config['configuration']['lang']['#text']);
define('AEOS_VERSION', $config['configuration']['version']['#text']);
define('AEOS_PATH', dirname($_SERVER["REQUEST_URI"]));
define('AEOS_REW', $config['configuration']['urlrewriting_key']['#text']);
define('HOME_PAGE', $config['configuration']['accueil']['#text']);
define('DATA_PAGES', $subdir.'data/pages/');
define('LAST_KEY', max(array_keys($lecture_pages))+1);
define('LAST_ORDER', max(array_keys($ordre_pages))+1);
define('DEBUG_MODE', $config['configuration']['debug']['#text']==='TRUE'?TRUE:FALSE);
('DEBUG_MODE')?include($subdir.'lib/debug.lib.php'):FALSE;
define('UPDATE', $config['configuration']['update']['#text']);
define('AEOS_REAL_URL', 'http://nnsprod.com/aeos');
define('URL_CHECK_UPDATE', AEOS_REAL_URL.'/update/notifications.xml');
//Admin
define('ADMIN_REQUEST_URL', 'index.php?pid='.$pid.'&sid='.$sid);
$DATA_PAGES = $data_pages;
$execTime = microtime(true);
if(@empty($_GET['pid'])){$pid=1;} else {$pid = $_GET['pid'];}
unset($page);
?>

24
lib/wysiwyg.lib.php Normal file → Executable file
View file

@ -1,26 +1,6 @@
<?php
// Script TinyEditor
// Script owEditor
?>
<script type="text/javascript">
new TINY.editor.edit('editor',{
id:'input',
width:700,
height:175,
cssclass:'te',
controlclass:'tecontrol',
rowclass:'teheader',
dividerclass:'tedivider',
controls:['bold','italic','underline','strikethrough','|','subscript','superscript','|',
'orderedlist','unorderedlist','|','outdent','indent','|','leftalign',
'centeralign','rightalign','blockjustify','|','unformat','|','undo','redo','n',
'font','size','style','|','image','hr','link','unlink','|','cut','copy','paste','print'],
footer:true,
fonts:['Verdana','Arial','Georgia','Trebuchet MS'],
xhtml:true,
cssfile:'style.css',
bodyid:'editor',
footerclass:'tefooter',
toggle:{text:'source',activetext:'wysiwyg',cssclass:'toggle'},
resize:{cssclass:'resize'}
});
new owEditor({fullPanel : true, maxHeight : 230, maxWidth : 700}).panelInstance('input');
</script>

View file

@ -1,227 +0,0 @@
Version 3, du 29 juin 2007.
Copyright (C) 2007 Free Software Foundation, Inc. http://fsf.org
Chacun est autorisé à copier et distribuer des copies conformes de ce document de licence, mais toute modification en est proscrite.
Préambule
La Licence Publique Générale GNU (“GNU General Public License”) est une licence libre, en “copyleft”, destinée aux œuvres logicielles et dautres types dœuvres.
Les licences de la plupart des œuvres logicielles et autres œuvres de la pratique sont conçues pour vous ôter votre liberté de partager et modifier ces œuvres. À linverse, la Licence Publique Générale GNU a pour but de garantir votre liberté de partager et changer toutes les versions dun programme — afin dassurer quil restera libre pour tous les utilisateurs. Nous, la Free Software Foundation, utilisons la Licence Publique Générale GNU pour la plupart de nos logiciels ; cela sapplique aussi à toute autre œuvre éditée de cette façon par ses auteurs. Vous pouvez, vous aussi, lappliquer à vos propres programmes.
Quand nous parlons de logiciel libre (“free”), nous nous référons à la liberté (“freedom”), pas au prix. Nos Licences Publiques Générales sont conçues pour assurer que vous ayez la liberté de distribuer des copies de logiciel libre (et le facturer si vous le souhaitez), que vous receviez le code source ou pouviez lobtenir si vous le voulez, que vous pouviez modifier le logiciel ou en utiliser toute partie dans de nouveaux logiciels libres, et que vous sachiez que vous avez le droit de faire tout ceci.
Pour protéger vos droits, nous avons besoin dempêcher que dautres vous restreignent ces droits ou vous demande de leur abandonner ces droits. En conséquence, vous avez certaines responsabilités si vous distribuez des copies dun tel programme ou si vous le modifiez : les responsabilités de respecter la liberté des autres.
Par exemple, si vous distribuez des copies dun tel programme, que ce soit gratuit ou contre un paiement, vous devez accorder aux Destinataires les mêmes libertés que vous avez reçues. Vous devez aussi vous assurer queux aussi reçoivent ou peuvent recevoir son code source. Et vous devez leur montrer les termes de cette licence afin quils connaissent leurs droits.
Les développeurs qui utilisent la GPL GNU protègent vos droits en deux étapes : (1) ils affirment leur droits dauteur (“copyright”) sur le logiciel, et (2) vous accordent cette Licence qui vous donne la permission légale de le copier, le distribuer et/ou le modifier.
Pour la protection des développeurs et auteurs, la GPL stipule clairement quil ny a pas de garantie pour ce logiciel libre. Aux fins à la fois des utilisateurs et auteurs, la GPL requière que les versions modifiées soient marquées comme changées, afin que leurs problèmes ne soient pas attribués de façon erronée aux auteurs des versions précédentes.
Certains dispositifs sont conçus pour empêcher laccès des utilisateurs à linstallation ou lexécution de versions modifiées du logiciel à lintérieur de ces dispositifs, alors que les fabricants le peuvent. Ceci est fondamentalement incompatible avec le but de protéger la liberté des utilisateurs de modifier le logiciel. Laspect systématique de tels abus se produit dans le secteur des produits destinés aux utilisateurs individuels, ce qui est précisément ce qui est le plus inacceptable. Aussi, nous avons conçu cette version de la GPL pour prohiber cette pratique pour ces produits. Si de tels problèmes surviennent dans dautres domaines, nous nous tenons prêt à étendre cette restriction à ces domaines dans de futures versions de la GPL, autant quil sera nécessaire pour protéger la liberté des utilisateurs.
Finalement, chaque programme est constamment menacé par les brevets logiciels. Les États ne devraient pas autoriser de tels brevets à restreindre le développement et lutilisation de logiciels libres sur des ordinateurs dusage général ; mais dans ceux qui le font, nous voulons spécialement éviter le danger que les brevets appliqués à un programme libre puisse le rendre effectivement propriétaire. Pour empêcher ceci, la GPL assure que les brevets ne peuvent être utilisés pour rendre le programme non-libre.
Les termes précis et conditions concernant la copie, la distribution et la modification suivent.
TERMES ET CONDITIONS
Article 0. Définitions.
« Cette Licence » se réfère à la version 3 de la “GNU General Public License” (le texte original en anglais).
« Droit dAuteur » signifie aussi les droits du “copyright” ou voisins qui sappliquent à dautres types dœuvres, tels que celles sur les masques de semi-conducteurs.
« Le Programme » se réfère à toute œuvre qui peut être sujette au Droit dAuteur (“copyright”) et dont les droits dutilisation sont concédés en vertu de cette Licence. Chacun des Licenciés, à qui cette Licence est concédée, est désigné par « vous. » Les « Licenciés » et les « Destinataires » peuvent être des personnes physiques ou morales (individus ou organisations).
« Modifier » une œuvre signifie en obtenir une copie et adapter tout ou partie de lœuvre dune façon qui nécessite une autorisation dun titulaire de Droit dAuteur, autre que celle permettant den produire une copie conforme. Lœuvre résultante est appelée une « version modifiée » de la précédente œuvre, ou une œuvre « basée sur » la précédente œuvre.
Une « Œuvre Couverte » signifie soit le Programme non modifié soit une œuvre basée sur le Programme.
« Propager » une œuvre signifie faire quoi que ce soit avec elle qui, sans permission, vous rendrait directement ou indirectement responsable dun délit de contrefaçon suivant les lois relatives au Droit dAuteur, à lexception de son exécution sur un ordinateur ou de la modification dune copie privée. La propagation inclue la copie, la distribution (avec ou sans modification), la mise à disposition envers le public, et aussi d'autres activités dans certains pays.
« Acheminer » une œuvre signifie tout moyen de propagation de celle-ci qui permet à dautres parties den réaliser ou recevoir des copies. La simple interaction dun utilisateur à travers un réseau informatique, sans transfert effectif dune copie, ne constitue pas un acheminement.
Une interface utilisateur interactive affiche des « Notices Légales Appropriées » quand elle comprend un dispositif convenable, bien visible et évident qui (1) affiche une notice appropriée sur les droits dauteur et (2) informe lutilisateur quil ny a pas de garantie pour lœuvre (sauf si des garanties ont été fournies hors du cadre de cette Licence), que les licenciés peuvent acheminer lœuvre sous cette Licence, et comment consulter une copie de cette Licence. Si linterface présente une liste de commandes utilisateur ou doptions, tel quun menu, un élément évident dans la liste présentée remplit ce critère.
Article 1. Code source.
Le « code source » dune œuvre signifie la forme préférée de lœuvre qui permet ou facilite les modifications de celle-ci. Le « code objet » dune œuvre signifie toute forme de lœuvre qui nen est pas le code source.
Une « Interface Standard » signifie une interface qui est soit celle dune norme officielle définie par un organisme de normalisation reconnu ou, dans le cas des interfaces spécifiées pour un langage de programmation particulier, une interface largement utilisée parmi les développeurs qui travaillent dans ce langage.
Les « Bibliothèques Système » dune œuvre exécutable incluent tout ce qui, en dehors de lœuvre dans son ensemble, (a) est inclus dans la forme usuelle de paquetage dun Composant Majeur mais ne fait pas partie de ce Composant Majeur et (b) sert seulement à permettre lutilisation de lœuvre avec ce Composant Majeur ou à mettre en œuvre une Interface Standard pour laquelle une mise en œuvre est disponible au public sous forme de code source ; un « Composant Majeur » signifie, dans ce contexte, un composant majeur essentiel (noyau, système de fenêtrage, etc.) du système dexploitation (le cas échéant) dun système sur lequel lœuvre exécutable fonctionne, ou bien un compilateur utilisé pour produire le code objet de lœuvre, ou un interprète de code objet utilisé pour exécuter celui-ci.
Le « Source Correspondant » dune œuvre sous forme de code objet signifie lensemble des codes sources nécessaires pour générer, installer et (dans le cas dune œuvre exécutable) exécuter le code objet et modifier lœuvre, y compris les scripts pour contrôler ces activités. Cependant, cela ninclue pas les Bibliothèques Système de lœuvre, ni les outils dusage général ou les programmes libres généralement disponibles qui peuvent être utilisés sans modification pour achever ces activités mais ne sont pas partie de cette œuvre. Par exemple le Source Correspondant inclut les fichiers de définition dinterfaces associés aux fichiers sources de lœuvre, et le code source des bibliothèques partagées et des sous-routines liées dynamiquement, pour lesquelles lœuvre est spécifiquement conçue pour les requérir via, par exemple, des communications de données ou contrôles de flux internes entre ces sous-programmes et dautres parties de lœuvre.
Le Source Correspondant na pas besoin dinclure tout ce que les utilisateurs peuvent regénérer automatiquement à partir dautres parties du Source Correspondant.
Le Source Correspondant pour une œuvre sous forme de code source est cette même œuvre.
Article 2. Permissions de base.
Tous les droits accordés suivant cette Licence le sont jusquau terme des Droits dAuteur (“copyright”) sur le Programme, et sont irrévocables pourvu que les conditions établies soient remplies. Cette Licence affirme explicitement votre permission illimitée dexécuter le Programme non modifié. La sortie produite par lexécution dune Œuvre Couverte nest couverte par cette Licence que si cette sortie, étant donné leur contenu, constitue une Œuvre Couverte. Cette Licence reconnait vos propres droits dusage raisonnable (“fair use” en législation des États-Unis dAmérique) ou autres équivalents, tels quils sont pourvus par la loi applicable sur le Droit dAuteur (“copyright”).
Vous pouvez créer, exécuter et propager sans condition des Œuvres Couvertes que vous nacheminez pas, aussi longtemps que votre licence demeure en vigueur. Vous pouvez acheminer des Œuvres Couvertes à dautres personnes dans le seul but de leur faire réaliser des modifications à votre usage exclusif, ou pour quils vous fournissent des facilités vous permettant dexécuter ces œuvres, pourvu que vous vous conformiez aux termes de cette Licence lors de lacheminement de tout matériel dont vous ne contrôlez pas le Droit dAuteur (“copyright”). Ceux qui, dès lors, réalisent ou exécutent pour vous les Œuvres Couvertes ne doivent alors le faire quexclusivement pour votre propre compte, sous votre direction et votre contrôle, suivant des termes qui leur interdisent de réaliser, en dehors de leurs relations avec vous, toute copie de votre matériel soumis au Droit dAuteur.
Lacheminement dans toutes les autres circonstances nest permis que selon les conditions établies ci-dessous. La concession de sous-licences nest pas autorisé ; larticle 10 rend cet usage non nécessaire.
Article 3. Protection des droits légaux des utilisateurs envers les lois anti-contournement.
Aucune Œuvre Couverte ne doit être vue comme faisant partie dune mesure technologique effective selon toute loi applicable remplissant les obligations prévues à larticle 11 du traité international sur le droit dauteur adopté à lOMPI le 20 décembre 1996, ou toutes lois similaires qui prohibent ou restreignent le contournement de telles mesures.
Si vous acheminez une Œuvre Couverte, vous renoncez à tout pouvoir légal dinterdire le contournement des mesures technologiques dans tous les cas où un tel contournement serait effectué en exerçant les droits prévus dans cette Licence pour cette Œuvre Couverte, et vous déclarez rejeter toute intention de limiter lopération ou la modification de lŒuvre, en tant que moyens pour renforcer, à lencontre des utilisateurs de cette Œuvre, vos droits légaux ou ceux de tierces parties dinterdire le contournement desdites mesures technologiques.
Article 4. Acheminement des copies conformes.
Vous pouvez acheminer des copies conformes du code source du Programme tel que vous lavez reçu, sur nimporte quel support, pourvu que vous publiiez scrupuleusement et de façon appropriée sur chaque copie une notice de Droit dAuteur appropriée ; gardez intactes toutes les notices établissant que cette Licence et tous les termes additionnels non permissifs ajoutés en accord avec larticle 7 sappliquent à ce code ; et donnez à chacun des Destinataires une copie de cette Licence en même temps que le Programme.
Vous pouvez facturer un prix quelconque, y compris gratuit, pour chacune des copies que vous acheminez, et vous pouvez offrir une protection additionnelle de support ou de garantie en échange dun paiement.
Article 5. Acheminement des versions sources modifiées.
Vous pouvez acheminer une œuvre basée sur le Programme, ou bien les modifications pour le produire à partir du Programme, sous la forme de code source suivant les termes de larticle 4, pourvu que vous satisfassiez aussi à chacune des conditions requises suivantes :
a) Lœuvre doit comporter des notices évidentes établissant que vous lavez modifiée et donnant la date correspondante.
b) Lœuvre doit comporter des notices évidentes établissant quelle est éditée selon cette Licence et les conditions ajoutées daprès larticle 7. Cette obligation vient modifier lobligation de larticle 4 de « garder intactes toutes les notices. »
c) Vous devez licencier lœuvre entière, comme un tout, suivant cette Licence à quiconque entre en possession dune copie. Cette Licence sappliquera en conséquence, avec les termes additionnels applicables prévus par larticle 7, à la totalité de lœuvre et chacune de ses parties, indépendamment de la façon dont elles sont empaquetées. Cette licence ne donne aucune permission de licencier lœuvre dune autre façon, mais elle ninvalide pas une telle permission que vous auriez reçue séparément.
d) Si lœuvre a des interfaces utilisateurs interactives, chacune doit afficher les Notices Légales Appropriées ; cependant si le Programme a des interfaces qui naffichent pas les Notices Légales Appropriées, votre œuvre na pas à les modifier pour quelles les affichent.
Une compilation dune Œuvre Couverte avec dautres œuvres séparées et indépendantes, qui ne sont pas par leur nature des extensions de lŒuvre Couverte, et qui ne sont pas combinés avec elle de façon à former un programme plus large, dans ou sur un volume de stockage ou un support de distribution, est appelé un « agrégat » si la compilation et son Droit dAuteur résultant ne sont pas utilisés pour limiter laccès ou les droits légaux des utilisateurs de la compilation en deçà de ce que permettent les œuvres individuelles. Linclusion dune Œuvre Couverte dans un agrégat ne cause pas lapplication de cette Licence aux autres parties de lagrégat.
Article 6. Acheminement des formes non sources.
Vous pouvez acheminer sous forme de code objet une Œuvre Couverte suivant les termes des articles 4 et 5, pourvu que vous acheminiez également suivant les termes de cette Licence le Source Correspondant lisible par une machine, dune des façons suivantes :
a) Acheminer le code objet sur, ou inclus dans, un produit physique (y compris un support de distribution physique), accompagné par le Source Correspondant fixé sur un support physique durable habituellement utilisé pour les échanges de logiciels.
b) Acheminer le code objet sur, ou inclus dans, un produit physique (y compris un support de distribution physique), accompagné dune offre écrite, valide pour au moins trois années et valide pour aussi longtemps que vous fournissez des pièces de rechange ou un support client pour ce modèle de produit, afin de donner à quiconque possède le code objet soit (1) une copie du Source Correspondant à tout logiciel dans ce produit qui est couvert par cette Licence, sur un support physique durable habituellement utilisé pour les échanges de logiciels, pour un prix non supérieur au coût raisonnable de la réalisation physique de lacheminement de la source, ou soit (2) un accès permettant de copier le Source Correspondant depuis un serveur réseau sans frais.
c) Acheminer des copies individuelles du code objet avec une copie de loffre écrite de fournir le Source Correspondant. Cette alternative est permise seulement occasionnellement et non-commercialement, et seulement si vous avez reçu le code objet avec une telle offre, en accord avec larticle 6 alinéa b.
d) Acheminer le code objet en offrant un accès depuis un emplacement désigné (gratuit ou contre facturation) et offrir un accès équivalent au Source Correspondant de la même façon via le même emplacement et sans facturation supplémentaire. Vous navez pas besoin dobliger les Destinataires à copier le Source Correspondant en même temps que le code objet. Si lemplacement pour copier le code objet est un serveur réseau, le Source Correspondant peut être sur un serveur différent (opéré par vous ou par un tiers) qui supporte des facilités équivalentes de copie, pourvu que vous mainteniez des directions claires à proximité du code objet indiquant où trouver le Source Correspondant. Indépendamment de quel serveur héberge le Source Correspondant, vous restez obligé de vous assurer quil reste disponible aussi longtemps que nécessaire pour satisfaire à ces obligations.
e) Acheminer le code objet en utilisant une transmission dégal-à-égal, pourvu que vous informiez les autres participants sur lendroit où le code objet et le Source Correspondant de lœuvre sont offerts sans frais au public général suivant larticle 6 alinéa d.
Une portion séparable du code objet, dont le code source est exclu du Source Correspondant en tant que Bibliothèque Système, na pas besoin dêtre inclu dans lacheminement de lœuvre sous forme de code objet.
Un « Produit Utilisateur » est soit (1) un « Produit de Consommation, » ce qui signifie toute propriété personnelle tangible normalement utilisée à des fins personnelles, familiales ou relatives au foyer, soit (2) toute chose conçue ou vendue pour lincorporation dans un lieu dhabitation. Pour déterminer si un produit constitue un Produit de Consommation, les cas ambigus sont résolus en fonction de la couverture. Pour un produit particulier reçu par un utilisateur particulier, lexpression « normalement utilisée » ci-avant se réfère à une utilisation typique ou lusage commun de produits de même catégorie, indépendamment du statut de cet utilisateur particulier ou de la façon spécifique dont cet utilisateur particulier utilise effectivement ou sattend lui-même ou est attendu à utiliser ce produit. Un produit est un Produit de Consommation indépendamment du fait que ce produit a ou na pas dutilisations substantielles commerciales, industrielles ou hors Consommation, à moins que de telles utilisations représentent le seul mode significatif dutilisation du produit.
Les « Informations dInstallation » dun Produit Utilisateur signifient toutes les méthodes, procédures, clés dautorisation ou autres informations requises pour installer et exécuter des versions modifiées dune Œuvre Couverte dans ce Produit Utilisateur à partir dune version modifiée de son Source Correspondant. Les informations qui suffisent à assurer la continuité de fonctionnement du code objet modifié ne doivent en aucun cas être empêchées ou interférées du seul fait quune modification a été effectuée.
Si vous acheminez le code objet dune Œuvre Couverte dans, ou avec, ou spécifiquement pour lutilisation dans, un Produit Utilisateur et si lacheminement se produit en tant quélément dune transaction dans laquelle le droit de possession et dutilisation du Produit Utilisateur est transféré au Destinataire définitivement ou pour un terme fixé (indépendamment de la façon dont la transaction est caractérisée), le Source Correspondant acheminé selon cet article-ci doit être accompagné des Informations dInstallation. Mais cette obligation ne sapplique pas si ni vous ni aucune tierce partie ne détient la possibilité dinstaller un code objet modifié sur le Produit Utilisateur (par exemple, lœuvre a été installée en mémoire morte).
Lobligation de fournir les Informations dInstallation ninclue pas celle de continuer à fournir un service de support, une garantie ou des mises à jour pour une œuvre qui a été modifiée ou installée par le Destinataire, ou pour le Produit Utilisateur dans lequel elle a été modifiée ou installée. Laccès à un réseau peut être rejeté quand la modification elle-même affecte matériellement et défavorablement les opérations du réseau ou viole les règles et protocoles de communication au travers du réseau.
Le Source Correspondant acheminé et les Informations dInstallation fournies, en accord avec cet article, doivent être dans un format publiquement documenté (et dont une implémentation est disponible auprès du public sous forme de code source) et ne doit nécessiter aucune clé ou mot de passe spécial pour le dépaquetage, la lecture ou la copie.
Article 7. Termes additionnels.
Les « permissions additionnelles » désignent les termes qui supplémentent ceux de cette Licence en émettant des exceptions à lune ou plusieurs de ses conditions. Les permissions additionnelles qui sont applicables au Programme entier doivent être traitées comme si elles étaient incluent dans cette Licence, dans les limites de leur validité suivant la loi applicable. Si des permissions additionnelles sappliquent seulement à une partie du Programme, cette partie peut être utilisée séparément suivant ces permissions, mais le Programme tout entier reste gouverné par cette Licence sans regard aux permissions additionnelles.
Quand vous acheminez une copie dune Œuvre Couverte, vous pouvez à votre convenance ôter toute permission additionnelle de cette copie, ou de nimporte quelle partie de celui-ci. (Des permissions additionnelles peuvent être rédigées de façon à requérir leur propre suppression dans certains cas où vous modifiez lœuvre.) Vous pouvez placer les permissions additionnelles sur le matériel acheminé, ajoutées par vous à une Œuvre Couverte pour laquelle vous avez ou pouvez donner les permissions de Droit dAuteur (“copyright”) appropriées.
Nonobstant toute autre clause de cette Licence, pour tout constituant que vous ajoutez à une Œuvre Couverte, vous pouvez (si autorisé par les titulaires de Droit dAuteur pour ce constituant) supplémenter les termes de cette Licence avec des termes :
a) qui rejettent la garantie ou limitent la responsabilité de façon différente des termes des articles 15 et 16 de cette Licence ; ou
b) qui requièrent la préservation de notices légales raisonnables spécifiées ou les attributions dauteur dans ce constituant ou dans les Notices Légales Appropriées affichées par les œuvres qui le contiennent ; ou
c) qui prohibent la représentation incorrecte de lorigine de ce constituant, ou qui requièrent que les versions modifiées dun tel constituant soient marquées par des moyens raisonnables comme différentes de la version originale ; ou
d) qui limitent lusage à but publicitaire des noms des concédants de licence et des auteurs du constituant ; ou
e) qui refusent à accorder des droits selon la législation relative aux marques commerciales, pour lutilisation dans des noms commerciaux, marques commerciales ou marques de services ; ou
f) qui requièrent lindemnisation des concédants de licences et auteurs du constituant par quiconque achemine ce constituant (ou des versions modifiées de celui-ci) en assumant contractuellement la responsabilité envers le Destinataire, pour toute responsabilité que ces engagements contractuels imposent directement à ces octroyants de licences et auteurs.
Tous les autres termes additionnels non permissifs sont considérés comme des « restrictions avancées » dans le sens de larticle 10. Si le Programme tel que vous lavez reçu, ou toute partie de celui-ci, contient une notice établissant quil est gouverné par cette Licence en même temps quun terme qui est une restriction avancée, vous pouvez ôter ce terme. Si un document de licence contient une restriction avancée mais permet la reconcession de licence ou lacheminement suivant cette Licence, vous pouvez ajouter une Œuvre Couverte constituante gouvernée par les termes de ce document de licence, pourvu que la restriction avancée ne survit pas à une telle cession de licence ou un tel acheminement.
Si vous ajoutez des termes à une Œuvre Couverte en accord avec cet article, vous devez placer, dans les fichiers sources appropriés, une déclaration des termes additionnels qui sappliquent à ces fichiers, ou une notice indiquant où trouver les termes applicables.
Les termes additionnels, quils soient permissifs ou non permissifs, peuvent être établis sous la forme dune licence écrite séparément, ou établis comme des exceptions ; les obligations ci-dessus sappliquent dans chacun de ces cas.
Article 8. Terminaison.
Vous ne pouvez ni propager ni modifier une Œuvre Couverte autrement que suivant les termes de cette Licence. Toute autre tentative de le propager ou le modifier est nulle et terminera automatiquement vos droits selon cette Licence (y compris toute licence de brevet accordée selon le troisième paragraphe de larticle 11).
Cependant, si vous cessez toute violation de cette Licence, alors votre licence depuis un titulaire de Droit dAuteur (“copyright”) est réinstaurée (a) à titre provisoire à moins que et jusquà ce que le titulaire de Droit dAuteur termine finalement et explicitement votre licence, et (b) de façon permanente si le titulaire de Droit dAuteur ne parvient pas à vous notifier de la violation par quelque moyen raisonnable dans les soixante (60) jours après la cessation.
De plus, votre licence depuis un titulaire particulier de Droit dAuteur est réinstaurée de façon permanente si ce titulaire vous a notifié de la violation par quelque moyen raisonnable, et si cest la première fois que vous avez reçu une notification de violation de cette Licence (pour une œuvre quelconque) depuis ce titulaire de Droit dAuteur, et si vous résolvez la violation dans les trente (30) jours qui suivent votre réception de la notification.
La terminaison de vos droits suivant cette section ne terminera pas les licences des parties qui ont reçu des copies ou droits de votre part suivant cette Licence. Si vos droits ont été terminés et non réinstaurés de façon permanente, vous nêtes plus qualifié à recevoir de nouvelles licences pour les mêmes constituants selon larticle 10.
Article 9. Acceptation non requise pour obtenir des copies.
Vous nêtes pas obligé daccepter cette licence afin de recevoir ou exécuter une copie du Programme. La propagation asservie dune Œuvre Couverte qui se produit simplement en conséquence dune transmission dégal-à-égal pour recevoir une copie ne nécessite pas lacceptation. Cependant, rien dautre que cette Licence ne vous accorde la permission de propager ou modifier une quelconque Œuvre Couverte. Ces actions enfreignent le Droit dAuteur si vous nacceptez pas cette Licence. Par conséquent, en modifiant ou propageant une Œuvre Couverte, vous indiquez votre acceptation de cette Licence pour agir ainsi.
Article 10. Cession automatique de Licence aux Destinataires et intermédiaires.
Chaque fois que vous acheminez une Œuvre Couverte, le Destinataire reçoit automatiquement une licence de la part des concédants originaux, pour exécuter, modifier et propager cette œuvre, suivant les termes de cette Licence. Vous nêtes pas responsable du renforcement de la conformation des tierces parties aux termes de cette Licence.
Une « transaction dentité » désigne une transaction qui transfère le contrôle dune organisation, ou de substantiellement tous ses actifs, ou la subdivision dune organisation, ou la fusion de plusieurs organisations. Si la propagation dune Œuvre Couverte résulte dune transaction dentité, chaque partie à cette transaction qui reçoit une copie de lœuvre reçoit aussi les licences pour lœuvre que le prédécesseur intéressé à cette partie avait ou pourrait donner selon le paragraphe précédent, plus un droit de possession du Source Correspondant de cette œuvre depuis le prédécesseur intéressé si ce prédécesseur en dispose ou peut lobtenir par des efforts raisonnables.
Vous ne pouvez imposer aucune restriction avancée dans lexercice des droits accordés ou affirmés selon cette Licence. Par exemple, vous ne pouvez imposer aucun paiement pour la licence, aucune royaltie, ni aucune autre charge pour lexercice des droits accordés selon cette Licence ; et vous ne pouvez amorcer aucun litige judiciaire (y compris une réclamation croisée ou contre-réclamation dans un procès) sur lallégation quune revendication de brevet est enfreinte par la réalisation, lutilisation, la vente, loffre de vente, ou limportation du Programme ou dune quelconque portion de celui-ci.
Article 11. Brevets.
Un « contributeur » est un titulaire de Droit dAuteur (“copyright”) qui autorise lutilisation selon cette Licence du Programme ou de lœuvre sur laquelle le Programme est basé. Lœuvre ainsi soumise à licence est appelée la « version contributive » de ce contributeur.
Les « revendications de brevet essentielles » sont toutes les revendications de brevets détenues ou contrôlées par le contributeur, quelles soient déjà acquises par lui ou acquises subséquemment, qui pourraient être enfreintes de quelque manière, permises par cette Licence, sur la réalisation, lutilisation ou la vente de la version contributive de celui-ci. Aux fins de cette définition, le « contrôle » inclue le droit de concéder des sous-licences de brevets dune manière consistante, nécessaire et suffisante, avec les obligations de cette Licence.
Chaque contributeur vous accorde une licence de brevet non exclusive, mondiale et libre de toute royaltie, selon les revendications de brevet essentielles, pour réaliser, utiliser, vendre, offrir à la vente, importer et autrement exécuter, modifier et propager les contenus de sa version contributive.
Dans les trois paragraphes suivants, une « licence de brevet » désigne tous les accords ou engagements exprimés, quel que soit le nom que vous lui donnez, de ne pas mettre en vigueur un brevet (telle quune permission explicite pour mettre en pratique un brevet, ou un accord pour ne pas poursuivre un Destinataire pour cause de violation de brevet). « Accorder » une telle licence de brevet à une partie signifie conclure un tel accord ou engagement à ne pas faire appliquer le brevet à cette partie.
Si vous acheminez une Œuvre Couverte, dépendant en connaissance dune licence de brevet, et si le Source Correspondant de lœuvre nest pas disponible à quiconque copie, sans frais et suivant les termes de cette Licence, à travers un serveur réseau publiquement accessible ou tout autre moyen immédiatement accessible, alors vous devez soit (1) rendre la Source Correspondante ainsi disponible, soit (2) vous engager à vous priver pour vous-même du bénéfice de la licence de brevet pour cette œuvre particulière, soit (3) vous engager, dune façon consistante avec les obligations de cette Licence, à étendre la licence de brevet aux Destinataires de cette œuvre. « Dépendant en connaissance » signifie que vous avez effectivement connaissance que, selon la licence de brevet, votre acheminement de lŒuvre Couverte dans un pays, ou lutilisation de lŒuvre Couverte par votre Destinataire dans un pays, enfreindrait un ou plusieurs brevets identifiables dans ce pays où vous avez des raisons de penser quils sont valides.
Si, conformément à ou en liaison avec une même transaction ou un même arrangement, vous acheminez, ou propagez en procurant un acheminement de, une Œuvre Couverte et si accordez une licence de brevet à lune des parties recevant lŒuvre Couverte pour lui permettre dutiliser, propager, modifier ou acheminer une copie spécifique de lŒuvre Couverte, alors votre accord est automatiquement étendu à tous les Destinataires de lŒuvre Couverte et des œuvres basées sur celle-ci.
Une licence de brevet est « discriminatoire » si, dans le champ de sa couverture, elle ninclut pas un ou plusieurs des droits qui sont spécifiquement accordés selon cette Licence, ou en prohibe lexercice, ou est conditionnée par le non-exercice dun ou plusieurs de ces droits. Vous ne pouvez pas acheminer une Œuvre Couverte si vous êtes partie à un arrangement, selon lequel une partie tierce exerçant son activité dans la distribution de logiciels et à laquelle vous effectuez un paiement fondé sur létendue de votre activité dacheminement de lœuvre, et selon lequel la partie tierce accorde, à une quelconque partie qui recevrait depuis vous lŒuvre Couverte, une licence de brevet discriminatoire (a) en relation avec les copies de lŒuvre Couverte acheminées par vous (ou les copies réalisées à partir de ces copies), ou (b) avant tout destinée à et en relation avec des produits spécifiques ou compilations contenant lŒuvre Couverte, à moins que vous ayez conclu cet arrangement ou que la licence de brevet ait été accordée avant le 28 mars 2007.
Rien dans cette Licence ne devrait être interprété comme devant exclure ou limiter toute licence implicite ou dautres moyens de défense à une infraction qui vous seraient autrement disponible selon la loi applicable relative aux brevets.
Article 12. Non abandon de la liberté des autres.
Si des conditions vous sont imposées (que ce soit par décision judiciaire, par un accord ou autrement) qui contredisent les conditions de cette Licence, elles ne vous excusent pas des conditions de cette Licence. Si vous ne pouvez pas acheminer une Œuvre Couverte de façon à satisfaire simultanément vos obligations suivant cette Licence et toutes autres obligations pertinentes, alors en conséquence vous ne pouvez pas du tout lacheminer. Par exemple, si vous avez un accord sur des termes qui vous obligent à collecter pour le réacheminement des royalties depuis ceux à qui vous acheminez le Programme, la seule façon qui puisse vous permettre de satisfaire à la fois à ces termes et ceux de cette Licence sera de vous abstenir entièrement dacheminer le Programme.
Article 13. Utilisation avec la Licence Générale Publique Affero GNU.
Nonobstant toute autre clause de cette Licence, vous avez la permission de lier ou combiner toute Œuvre Couverte avec une œuvre placée sous la version 3 de la Licence Générale Publique GNU Affero (“GNU Affero General Public License”) en une seule œuvre combinée, et dacheminer lœuvre résultante. Les termes de cette Licence continueront à sappliquer à la partie formant une Œuvre Couverte, mais les obligations spéciales de la Licence Générale Publique GNU Affero, article 13, concernant linteraction à travers un réseau, sappliqueront à la combinaison en tant que telle.
Article 14. Versions révisées de cette License.
La Free Software Foundation peut publier des versions révisées et/ou nouvelles de la Licence Publique Générale GNU (“GNU General Public License”) de temps en temps. De telles version nouvelles resteront similaires dans lesprit avec la présente version, mais peuvent différer dans le détail afin de traiter de nouveaux problèmes ou préoccupations.
Chaque version reçoit un numéro de version distinctif. Si le Programme indique quune version spécifique de la Licence Publique Générale GNU « ou toute version ultérieure » (“or any later version”) sapplique à celui-ci, vous avez le choix de suivre soit les termes et conditions de cette version numérotée, soit ceux de nimporte quelle version publiée ultérieurement par la Free Software Foundation. Si le Programme nindique pas une version spécifique de la Licence Publique Générale GNU, vous pouvez choisir lune quelconque des versions qui ont été publiées par la Free Software Foundation.
Si le Programme spécifie quun intermédiaire peut décider quelles versions futures de la Licence Générale Publique GNU peut être utilisée, la déclaration publique dacceptation dune version par cet intermédiaire vous autorise à choisir cette version pour le Programme.
Des versions ultérieures de la licence peuvent vous donner des permissions additionnelles ou différentes. Cependant aucune obligation additionnelle nest imposée à lun des auteurs ou titulaires de Droit dAuteur du fait de votre choix de suivre une version ultérieure.
Article 15. Déclaration dabsence de garantie.
IL NY A AUCUNE GARANTIE POUR LE PROGRAMME, DANS LES LIMITES PERMISES PAR LA LOI APPLICABLE. À MOINS QUE CELA NE SOIT ÉTABLI DIFFÉREMMENT PAR ÉCRIT, LES PROPRIÉTAIRES DE DROITS ET/OU LES AUTRES PARTIES FOURNISSENT LE PROGRAMME « EN LÉTAT » SANS GARANTIE DAUCUNE SORTE, QUELLE SOIT EXPRIMÉE OU IMPLICITE, CECI COMPRENANT, SANS SE LIMITER À CELLES-CI, LES GARANTIES IMPLICITES DE COMMERCIALISABILITÉ ET DADÉQUATION À UN OBJECTIF PARTICULIER. VOUS ASSUMEZ LE RISQUE ENTIER CONCERNANT LA QUALITÉ ET LES PERFORMANCES DU PROGRAMME. DANS LÉVENTUALITÉ OÙ LE PROGRAMME SAVÉRERAIT DÉFECTUEUX, VOUS ASSUMEZ LES COÛTS DE TOUS LES SERVICES, RÉPARATIONS OU CORRECTIONS NÉCESSAIRES.
Article 16. Limitation de responsabilité.
EN AUCUNE AUTRE CIRCONSTANCE QUE CELLES REQUISES PAR LA LOI APPLICABLE OU ACCORDÉES PAR ÉCRIT, UN TITULAIRE DE DROITS SUR LE PROGRAMME, OU TOUT AUTRE PARTIE QUI MODIFIE OU ACHEMINE LE PROGRAMME COMME PERMIS CI-DESSUS, NE PEUT ÊTRE TENU POUR RESPONSABLE ENVERS VOUS POUR LES DOMMAGES, INCLUANT TOUT DOMMAGE GÉNÉRAL, SPÉCIAL, ACCIDENTEL OU INDUIT SURVENANT PAR SUITE DE LUTILISATION OU DE LINCAPACITÉ DUTILISER LE PROGRAMME (Y COMPRIS, SANS SE LIMITER À CELLES-CI, LA PERTE DE DONNÉES OU LINEXACTITUDE DES DONNÉES RETOURNÉES OU LES PERTES SUBIES PAR VOUS OU DES PARTIES TIERCES OU LINCAPACITÉ DU PROGRAMME À FONCTIONNER AVEC TOUT AUTRE PROGRAMME), MÊME SI UN TEL TITULAIRE OU TOUTE AUTRE PARTIE A ÉTÉ AVISÉ DE LA POSSIBILITÉ DE TELS DOMMAGES.
Article 17. Interprétation des sections 15 et 16.
Si la déclaration dabsence de garantie et la limitation de responsabilité fournies ci-dessus ne peuvent prendre effet localement selon leurs termes, les cours de justice qui les examinent doivent appliquer la législation locale qui approche au plus près possible une levée absolue de toute responsabilité civile liée au Programme, à moins quune garantie ou assumation de responsabilité accompagne une copie du Programme en échange dun paiement.
FIN DES TERMES ET CONDITIONS.
Comment appliquer ces termes à vos nouveaux programmes
Si vous développez un nouveau programme et voulez quil soit le plus possible utilisable par le public, la meilleure façon dy parvenir et den faire un logiciel libre que chacun peut redistribuer et changer suivant ces termes-ci.
Pour appliquer ces termes, attachez les notices suivantes au programme. Il est plus sûr de les attacher au début de chacun des fichiers sources afin de transporter de façon la plus effective possible lexclusion de garantie ; et chaque fichier devrait comporter au moins la ligne de réservation de droit (“copyright”) et une indication permettant de savoir où la notice complète peut être trouvée :
Une ligne donnant le nom du programme et une brève idée de ce quil fait.
Copyright (C) "année" "nom de lauteur" — Tous droits réservés.
Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le
modifier suivant les termes de la “GNU General Public License” telle que
publiée par la Free Software Foundation : soit la version 3 de cette
licence, soit (à votre gré) toute version ultérieure.
Ce programme est distribué dans lespoir quil vous sera utile, mais SANS
AUCUNE GARANTIE : sans même la garantie implicite de COMMERCIALISABILITÉ
ni dADÉQUATION À UN OBJECTIF PARTICULIER. Consultez la Licence Générale
Publique GNU pour plus de détails.
Vous devriez avoir reçu une copie de la Licence Générale Publique GNU avec
ce programme ; si ce nest pas le cas, consultez :
http://www.gnu.org/licenses.
Ajoutez également les informations permettant de vous contacter par courrier électronique ou postal.
Si le programme produit une interaction sur un terminal, faites lui afficher une courte notice comme celle-ci lors de son démarrage en mode interactif :
"programme" Copyright (C) "année" "nom de lauteur"
Ce programme vient SANS ABSOLUMENT AUCUNE GARANTIE ; taper “affiche g” pour
les détails. Ceci est un logiciel libre et vous êtes invité à le redistribuer
suivant certaines conditions ; taper “affiche c” pour les détails.
Les commandes hypothétiques “affiche g” and “affiche c” devrait afficher les parties appropriées de la Licence Générale Publique. Bien sûr, les commandes de votre programme peuvent être différentes ; pour une interface graphique, vous pourriez utiliser une « boîte À propos. »
Vous devriez également obtenir de votre employeur (si vous travaillez en tant que programmeur) ou de votre école un « renoncement aux droits de propriété » pour ce programme, si nécessaire. Pour plus dinformations à ce sujet, et comment appliquer la GPL GNU, consultez "http://www.gnu.org/licenses".
La Licence Générale Publique GNU ne permet pas dincorporer votre programme dans des programmes propriétaires. Si votre programme est une bibliothèque de sous-routines, vous pourriez considérer quil serait plus utile de permettre de lier des applications propriétaires avec la bibliothèque. Si cest ce que vous voulez faire, utilisez la Licence Générale Publique Limitée GNU au lieu de cette Licence ; mais dabord, veuillez lire http://www.gnu.org/philosophy/why-not-lgpl.html.

2
modules/.htaccess Executable file
View file

@ -0,0 +1,2 @@
Options -Indexes
deny from all

View file

View file

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<page>
<id>0</id>
<nom>nom</nom>

View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<nom>owSimple</nom>
<dossier>owsimple</dossier>
<description>Ajouter une page de texte simple.</description>
<version>1.1</version>
<version>1.2</version>
<auteurs>NNS Production</auteurs>
<email>contact@nekonosekai.com</email>
</configuration>

68
modules/owSimple/edition.php Executable file
View file

@ -0,0 +1,68 @@
<?php
/* *************************************
Titre: Module Simple
Auteur: NNS Production
Version: 1.2
----------- Changelog ------------------
14/08/2011 - Modification d'une variable défectueuse.
05/06/2013 - Changement de la structure pour plus de lisibilité
************************************* */
if (@$_['Send']==1)
{
if (empty($_['titre']) || $_['titre']=="") echo "<div class='update_valide'><span class='erreur'>Merci d'indiquer un nom de page.</span></div>";
else
{
switch($_['action'])
{
case 'ajouter':
$xml_file = cleanName(LAST_KEY.'#'.str_replace("\'", " ", $_['titre']).'.xml');
copy('../modules/'.$_['type'].'/base.xml', '../data/pages/'.$xml_file);
ecriture_xml('../data/pages/'.$xml_file, 'nom', $_['titre']);
$input = preg_replace("<<br>>", "<br />", $_['input']);
$input = str_replace("&nbsp;", "", $_['input']);
ecriture_xml('../data/pages/'.$xml_file, 'contenu', $input, TRUE);
ecriture_xml('../data/pages/'.$xml_file, 'id', LAST_KEY);
ecriture_xml('../data/pages/'.$xml_file, 'ordre', LAST_ORDER);
(@$_['affichage']=="on")?ecriture_xml('../data/pages/'.$xml_file, 'etat', 1):ecriture_xml('../data/pages/'.$xml_file, 'etat', 0);
break;
case 'modifier':
$xml_file = cleanName($_['id'].'#'.str_replace("\'", " ", $_['titre']).'.xml');
rename('../data/pages/'.$lecture_pages[$_['id']].'.xml', '../data/pages/'.$xml_file);
ecriture_xml('../data/pages/'.$xml_file, 'nom', $_['titre']);
$input = preg_replace("<<br>>", "<br />", $_['input']);
$input = str_replace("&nbsp;", "", $_['input']);
ecriture_xml('../data/pages/'.$xml_file, 'contenu', $input, TRUE);
break;
}
}
echo "<div class='update_valide'><span class='valide'>Page sauvegardée</span></div>";
}
if($_['action']=='modifier') { ?><h3>Edition de la page <i><?php echo $page['page']['nom']['#text']; ?></i></h3><?php } ?>
<form action="<?php echo ADMIN_REQUEST_URL; ?>&amp;action=<?php echo $_['action']; if($_['action']=="modifier"){echo "&amp;id=".$lecture_pages[$_['id']];}?>" method="POST">
<h4>Nom de la page</h4>
<input type="text" name="titre" class="input_text" value="<?php if(isset($_['titre'])){ echo stripslashes($_['titre']); } else { echo @$page['page']['nom']['#text']; } ?>" />
<h4>Contenu de la page</h4>
<div class="owEditor">
<textarea id="input" name="input" >
<?php if(isset($_['input'])){ echo stripslashes($_['input']); } else { echo @$page['page']['contenu']['#text']; } ?>
</textarea>
</div>
<input type="submit" value="Sauvegarder" class="input_button" />
<a href="index.php?pid=<?php echo $_['pid']; ?>">
<input type="button" value="Annuler" class="input_button" />
</a>
<input type="hidden" name="type" value="<?php echo @$_['type']; ?>" />
<input type="hidden" name="Send" value="1" />
<input type="hidden" name="sid" value="1" />
<?php include('../lib/wysiwyg.lib.php'); ?>
</form>

View file

@ -1,87 +0,0 @@
<?php
/* *************************************
Titre: Module Simple
Auteur: NNS Production
Version: 1.1
----------- Changelog ------------------
14/08/2011 - Modification d'une variable
défectueuse.
************************************* */
if ($_GET['action']=="ajouter")
{
if(isset($_POST['s1']) || isset($_POST['s2']))
{
if (empty($_POST['nom_page']) || $_POST['nom_page']=="")
{
echo "<span class='erreur'>Merci d'indiquer un nom de page.</span>";
}
else
{
$list=listing_dossier($DATA_PAGES);
$nb = sizeof($list); $nb=$nb+1;
copy('../modules/'.$_POST['type'].'/base.xml', '../data/pages/'.$nb.'.xml');
ecriture_xml('../data/pages/'.$nb.'.xml', 'nom', $_POST['nom_page']);
ecriture_xml('../data/pages/'.$nb.'.xml', 'contenu', $_POST['input']);
ecriture_xml('../data/pages/'.$nb.'.xml', 'id', $nb);
ecriture_xml('../data/pages/'.$nb.'.xml', 'ordre', $nb);
if (@$_POST['affichage']=="on"){$maintenance="1";} else {$maintenance="0";}
ecriture_xml('../data/pages/'.$nb.'.xml', 'etat', $maintenance);
if(isset($_POST['s1'])) {$m=1; echo "<span class='valide'>Page ajoutée.</span>";}
if(isset($_POST['s2'])) {$m=1;echo "<span class='valide'>Page sauvegardée.</span>";}
}
}
}
elseif ($_GET['action']=="modifier")
{
if(isset($_POST['s1']) || isset($_POST['s2']))
{
if (empty($_POST['nom_page']) || $_POST['nom_page']=="")
{
echo "<span class='erreur'>Merci d'indiquer un nom de page.</span>";
}
else
{
ecriture_xml('../data/pages/'.$_GET['id'].'.xml', 'nom', $_POST['nom_page']);
ecriture_xml('../data/pages/'.$_GET['id'].'.xml', 'contenu', $_POST['input']);
if (@$_POST['affichage']=="on"){$maintenance="1";} else {$maintenance="0";}
ecriture_xml('../data/pages/'.$_GET['id'].'.xml', 'etat', $maintenance);
if(isset($_POST['s1'])) {$m=0; echo "<span class='valide'>Changement appliqué.</span>";}
if(isset($_POST['s2'])) {$m=1; echo "<span class='valide'>Changement sauvegardé.</span>";}
}
}
$page = lecture_xml("../data/pages/".$_GET['id'].".xml");
}
if (@$m!=1) { ?>
<form action="index.php?pid=2&amp;action=<?php echo $_GET['action']; if($_GET['action']=="modifier"){echo "&amp;id=".$_GET['id'];}?>" method="post" onsubmit="editor.post();" enctype="multipart/form-data">
<p>
<b>Nom de la page</b><br /><br />
<input type="text" name="nom_page" class="input_text" value="<?php echo @$page['page']['nom']['#text']; ?>" id="text_input" /><br /><br />
<b>Contenu de la page</b>
</p>
<div class="gauche"><textarea id="input" name="input" cols="0" rows="0"><?php echo @$page['page']['contenu']['#text']; ?></textarea></div>
<div class="div_unique1">
<b>Options</b><br /><br />
<table id="option_table">
<tr>
<td><input type="checkbox" id="affi" name="affichage" <?php if(@$page['page']['etat']['#text']==1){echo "checked='checked'";} ?>/><label for="affi"><span style="cursor:pointer;"> Affichage</span></label></td>
<td><input type="submit" name="s1" value="Appliquer" id="apply_but"/></td>
</tr>
<tr>
<td><img src="../themes/defaut/images/icones/delete.png" alt="Delete" /><a href="index.php?pid=2"> Annuler</a></td>
<td><input type="submit" name="s2" value="Enregistrer" id="save_but"/></td>
</tr>
</table>
</div>
<?php include('../lib/wysiwyg.lib.php'); ?>
<p>
<input type="hidden" name="type" value="<?php echo $_POST['type']; ?>" /><br /><br />
</p>
</form><?php
}
?>

53
themes/defaut/base.php Normal file → Executable file
View file

@ -1,45 +1,24 @@
<?php (SECURITY)?die():FALSE; ?>
<body>
<div id="general">
<div id="header">
<h1><?php echo $SITE_NOM; ?></h1>
<p><?php echo $SITE_DESC; ?></p>
<ul class="menu">
<?php
// Listings des pages + menu
$list=listing_dossier($DATA_PAGES);
if(empty($_GET['id'])){$id=1;} else {$id = $_GET['id'];}
foreach ($list as &$pages) {
$page = lecture_xml($DATA_PAGES.$pages);
if ($page['page']['etat']['#text']==1){
echo "<li><a href='index.php?id=".$page['page']['ordre']['#text']."'>";
if ($page['page']['ordre']['#text']==$id){echo "<b>"; }
echo $page['page']['nom']['#text'];
if ($page['page']['ordre']['#text']==$id){echo "</b>"; }
echo "</a></li>";
}
}
?>
<div id="General">
<div id="Header">
<h1><?php echo AEOS_NAME; ?></h1>
<p><?php echo AEOS_DESC; ?></p>
<ul class="Menu">
<?php require_once('core/menu.php'); ?>
</ul>
</div>
<div id="corps">
<div id="contentG">
<p>
<?php
// Affichage de la page
if(empty($_GET['id'])){$id=1;} else {$id = $_GET['id'];}
$contenu = lecture_xml($DATA_PAGES.$id.'.xml');
if((@include_once("modules/".$contenu['page']['type']['#text']."/base.php"))==FALSE)
{
echo "<span class='erreur'>Impossible d'accéder au module demandé.</span>";
}
?>
</p>
</div>
</div>
<div id="footer">
<div id="Corps">
<p>
AEOS v<?php echo $SITE_VERSION; ?> - <?php echo round(microtime(true)-$execTime, 3)."s<br />".$SITE_FOOTER; ?>
<?php require_once('core/base.php'); ?>
</p>
</div>
<div id="Footer">
<p>
<?php require_once('core/footer.php'); ?>
</p>
</div>
</div>

6
themes/defaut/config.xml Normal file → Executable file
View file

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<id>1</id>
<nom>AEOS - Défaut</nom>
<nom>AEOS - Défaut</nom>
<dossier>defaut</dossier>
<description>Thème de base d'AEOS</description>
<description>Thème de base d'AEOS</description>
<version>1.0.0</version>
<auteurs>NNS Production</auteurs>
<email>contact@nekonosekai.com</email>

3
themes/defaut/edition.php Normal file → Executable file
View file

@ -1,3 +1,4 @@
<?php
<?php
(SECURITY)?die():FALSE;
echo "<span class='erreur'>Aucune modification possible sur ce thème.</span>";
?>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 541 B

0
themes/defaut/images/favicon_aeos.ico Normal file → Executable file
View file

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 968 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 988 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 938 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 938 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,002 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 946 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,000 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,014 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,012 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,001 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 966 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 997 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1,023 B

0
themes/defaut/images/logo.png Normal file → Executable file
View file

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before After
Before After

4
themes/defaut/maintenance.php Normal file → Executable file
View file

@ -1,8 +1,10 @@
<?php (SECURITY)?die():FALSE; ?>
<!-- Maintenance -->
<body>
<div id="content">
<div id="center">
<p><?php echo $SITE_MESSAGE; ?></p>
<!-- Affichage du message en cas de maintenance -->
<p><?php echo AEOS_MAINTMSG; ?></p>
</div>
<div id="left"></div>
</div>

0
themes/defaut/modification.xml Normal file → Executable file
View file

178
themes/defaut/styles.css Normal file → Executable file
View file

@ -1,106 +1,86 @@
body,html{
font-family: Arial, sans-serif;
font-size: 12px;
margin:0;
color: #666;
* {margin:0; padding:0;}
body,html
{
font-family: Arial, sans-serif;
font-size: 12px;
color: #666;
}
/* Design */
#header{
background: url(images/bg_header.png) repeat-x #D8D8D8;
overflow: hidden;
margin-bottom: 15px;
border-bottom: 5px solid #D8D8D8;
#Header
{
overflow: hidden;
margin-bottom: 15px;
border-bottom: 5px solid #D8D8D8;
background: #3cbae3; /* Old browsers */
background: -moz-linear-gradient(top, #3cbae3 0%, #1389cb 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#3cbae3), color-stop(100%,#1389cb)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, #3cbae3 0%,#1389cb 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, #3cbae3 0%,#1389cb 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, #3cbae3 0%,#1389cb 100%); /* IE10+ */
background: linear-gradient(to bottom, #3cbae3 0%,#1389cb 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3cbae3', endColorstr='#1389cb',GradientType=0 ); /* IE6-9 */
}
#Header h1{width: 960px; color: #fff; font-weight: normal; margin: 30px auto 5px auto;}
#Header p {width: 960px; color: #fff; margin: 5px auto 15px auto;}
ul.Menu
{
width: 960px;
margin: 0 auto;
list-style-type: none;
background: rgba(255, 255, 255, 0.3);
overflow: hidden;
}
ul.Menu li a
{
color: #fff;
text-decoration: none;
padding: 10px;
display: block;
}
ul.Menu li{float: left;margin-right: 5px;}
ul.Menu li a:hover{color: #4b537a;}
#Corps
{
width: 960px;
margin: 0 auto 0;
margin-bottom: 30px;
overflow: hidden;
}
#header p {width: 960px; color: #fff; margin: 5px auto 15px auto;}
#Footer{clear: both; text-align: center;}
#Footer a {color:#33AFDE; text-decoration:none;}
#corps{
width: 960px;
margin: 0 auto 0;
margin-bottom: 30px;
overflow: hidden;
#DeadZone
{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: black;
z-index:1001;
-moz-opacity: 0.5;
opacity:.50;
filter: alpha(opacity=50);
overflow:hidden;
}
#contentG{
float: left;
width: 950px;
/*width: 600px*/
margin-right: 60px;
#LifeZone
{
position: absolute;
top: 25%;
left: 50%;
width: 350px;
height: 295px;
padding: 16px;
border: 3px solid #1367BB;
background-color: white;
z-index:1002;
margin:0 0 0 -175px;
}
#contentD{
float: left;
width: 298px;
}
#footer{clear: both; text-align: center;}
#footer a {color:#33AFDE; text-decoration:none;}
/* Menus */
ul.menu{
width: 960px;
margin: 0 auto;
list-style-type: none;
background: url(images/bg_nav.png);
overflow: hidden;
}
ul.menu li a{
color: #fff;
text-decoration: none;
padding: 10px;
display: block;
}
ul.menu li{float: left;margin-right: 5px;}
ul.menu li a:hover{color: #4b537a;}
/* Styles */
#text_input {width:250px;}
.input_text {border:1px solid #5EB2DC;background-color:#FFFFFF; padding:3px; font-family:Arial; font-size:12px;}
.input_text_mini {border:1px solid #5EB2DC;background-color:#FFFFFF; padding:3px; width:76px; font-family:Arial; font-size:12px;}
.area_text {border:1px solid #5EB2DC;background-color:#FFFFFF; padding:3px; width:250px; height:100px; font-family:Arial; font-size:12px;}
/* Tableaux */
#tableau {border:1px solid #5EB2DC; padding:15px;}
#tableau tr:hover {background:#CEE7F4;}
#tableau tr {border:1px solid black;}
#en_tete {font-weight:bold; background:#A5D2EB;}
tr:hover#en_tete {background:#A5D2EB;}
/* Formulaire */
#option_table a {text-decoration:none; color:#666666;}
#option_table td {border:1px solid #5EB2DC; padding:3px; background:url(tinyeditor/images/header-bg.gif) repeat-x; height:34px;}
#option_table td:hover {padding:3px; background-image:none; background-color:#FFFFFF; height:34px;}
.div_unique1 {float:left; border:1px solid #5EB2DC;width:184px; margin:0 0 30px 20px; height:237px; padding:20px;}
/* Admin BOX */
#content {position: fixed; top: 0; bottom: 0; left: 0; right: 0; background: white;}
#center {position: absolute;
height: 200px; top:0; bottom:0; left:0; right: 0; margin: auto; background-color: #1389CA;
text-align:left; text-align:center; color:#FFF; border-top:5px solid #E9EBF5 ; border-bottom:5px solid #E9EBF5 ; background-image:url(images/bg_header.png);background-repeat:repeat-x;}
#left {width: 76px; height: 77px; background:url(images/logo.png) no-repeat; text-indent:-5000; font-size:0; margin:-90px auto 20px;}
/* Boutons */
.erreur {color:red; font-weight:bold; text-shadow:#FFFFFF 0px 0px 2px;}
.valide {color:green; font-weight:bold; text-shadow:#FFFFFF 0px 0px 2px;}
.input {border:1px solid #219AD2;}
.option {border:1px solid #219AD2; padding:2px;}
#add_but {background:url(images/icones/ajout.png) no-repeat; padding:4px 0px 4px 17px; border:none; background-position:left center; font-size:12px; font-family:Arial; color:#A60000; cursor:pointer;}
#apply_but {background:url(images/icones/apply.png) no-repeat; padding:4px 0px 4px 17px; border:none; background-position:left center; font-size:12px; font-family:Arial; color:#666666;}
#save_but {background:url(images/icones/save.png) no-repeat; padding:4px 0px 4px 17px; border:none; background-position:left center; font-size:12px; font-family:Arial; color:#666666;}
/* Icones */
.icon {margin:0 4px -2px 0;}
.petit_decalage {margin:0 5px 0 5px;}
.decalageBas {margin:0 0 -10px 0;}
/* Bases */
ul{margin-left: 0; padding-left: 0; list-style-position: inside;}
a{color: #b70034;}
h1{width: 960px; color: #fff; font-weight: normal; margin: 30px auto 5px auto;}
h6{font-size:14px; margin:10px 0 5px 0;}
.text_left {text-align:justify; padding:10px;}
.link {text-decoration:none;}
.gauche {float:left;}
.gauche50 {float:left; margin:0 50px 0 0;}
#LifeZone h1 {font-size:23px; color:#1367BB; margin:0 0 30px 0;}
#LifeZone p {text-align:center; line-height:14px;}
#LifeZone img {margin:0 0 20px 0;}
#LifeZone a {color:#1367BB; text-decoration:none;}

View file

@ -1,3 +0,0 @@
/*
Ici, création d'un thème format iPhone/iPod
*/

161
themes/main/base.php Executable file
View file

@ -0,0 +1,161 @@
<?php (SECURITY)?die():FALSE; ?>
<script type="text/javascript" src="themes/main/script/script.js"></script>
</head>
<body>
<div id="General">
<div id="Header">
<h1>
<a href="#">
<span class="Bracket1"><</span>
<span class="Title"><?php echo AEOS_NAME; ?> </span>
<span class="Bracket2">/></span>
-- Version <?php echo AEOS_VERSION; ?>
</a>
</h1>
<ul class="Menu">
<?php require_once('core/menu.php'); ?>
</ul>
</div>
<div id="SurHeader">
<div id="Presentation">
<p>
<?php require_once('core/base.php'); ?>
</p>
</div>
<?php
if($_['id']==1)
{
?>
<div id="Gallery">
<div id="Slider">
<ul>
<li><img src="data/images/1.jpg" width="560" height="320" alt="Image One" /></li>
<li><img src="data/images/2.jpg" width="560" height="320" alt="Image Two" /></li>
<li><img src="data/images/3.jpg" width="560" height="320" alt="Image Three" /></li>
<li><img src="data/images/4.jpg" width="560" height="320" alt="Image Four" /></li>
</ul>
</div>
<div class="sliderbutton" id="slideleft" ></div>
<div class="sliderbutton" id="slideright" ></div>
<ul id="pagination" class="pagination">
<li onclick="slideshow.pos(0)"></li>
<li onclick="slideshow.pos(1)"></li>
<li onclick="slideshow.pos(2)"></li>
<li onclick="slideshow.pos(3)"></li>
</ul>
<script type="text/javascript">
var slideshow=new TINY.slider.slide('slideshow',{
id:'Slider',
auto:4,
resume:false,
vertical:false,
navid:'pagination',
activeclass:'current',
position:0,
rewind:false,
elastic:false,
left:'slideleft',
right:'slideright'
});
</script>
</div>
<?php
}
?>
</div>
<div id="Corps">
<ul class="Colonne1">
<li>Léger et Rapide</li>
<li>
Technologies PHP5 / XML<br />
Poids : ~ 120ko
</li>
<li>Modulable</li>
<li>
Gestion de thèmes, modules <br />
et composants.
</li>
<li>Base de Donnée XML</li>
<li>
Profitez de toute la puissance <br />
du XML !
</li>
</ul>
<ul class="Colonne2">
<li>Sécurisé</li>
<li>
Elaboré avec le plus de <br />
précaution en terme de sécurité
</li>
<li>Support</li>
<li>
Une équipe et une <br />
communauté à votre écoute
</li>
<li>Compatible W3C</li>
<li>
Produit respectant les<br />
conventions du W3C
</li>
</ul>
<ul class="Download">
<li><a href="#">Soutenez-nous !</a></li>
<li><a href="#"><h2>DEMO</h2></a></li>
<li><a href="#"><h2>TELECHARGEMENT</h2></a></li>
<li>Dernière version Stable 0.4</li>
<li><a href="#">Release Notes</a> (2013-02-07)</li>
<li>« Pas plus simple »</li>
<li>#Dev3</li>
</ul>
</div>
<div id="Promotion">
<h5>
Compatible avec
<br />
<img src="themes/main/images/ico_iphone.png" alt="iDevices" /> <span class="DarkGrey">iDevices</span> et <span class="Green">Android</span> <img src="themes/main/images/ico_android.png" alt="Android" />
</h5>
<div>
<img src="themes/main/images/promotion.jpg" alt="Promotion" />
</div>
</div>
<div id="Distribution">
<a href="#">NNS</a>
<img src="themes/main/images/little_heart.png" alt="LOVES" />
<a href="#">PRODUCTION</a>
</div>
<div id="Footer">
<div id="SubFooter">
<h6>
<a href="#">< /></a><br />
<img src="themes/main/images/staff.png" alt="The Team" />
</h6>
<ul>
<li><a href="#">AEOS</a></li>
<li><a href="#">Fonctionnalités</a></li>
<li><a href="#">Nouveautés</a></li>
<li><a href="#">Support</a></li>
<li><a href="#">Forum</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Téléchargement</a></li>
</ul>
<p>
<a href="#"><img src="themes/main/images/ico_twitter.png" alt="Twitter" /></a>
<a href="#"><img src="themes/main/images/ico_facebook.png" alt="Facebook" /></a>
<a href="#"><img src="themes/main/images/ico_google.png" alt="Google+" /></a>
<a href="#"><img src="themes/main/images/ico_rss.png" alt="Flux RSS" /></a>
<br /><br />
<?php require_once('core/footer.php'); ?>
</p>
</div>
</div>
</div>
</body>
</html>

108
themes/main/base.php~ Executable file
View file

@ -0,0 +1,108 @@
<?php (SECURITY)?die():FALSE; ?>
<script type="text/javascript" src="themes/main/script/script.js"></script>
</head>
<body>
<div id="General">
<div id="Header">
<h1>
<span class="Bracket1"><</span>
<?php echo AEOS_NAME; ?>
<span class="Bracket2">/></span>
</h1>
<p>-- <?php echo AEOS_DESC; ?></p>
<ul class="Menu">
<?php require_once('core/menu.php'); ?>
</ul>
</div>
<div id="SurHeader">
<p>
<?php require_once('core/base.php'); ?>
</p>
<div id="Gallery">
<div class="sliderbutton" id="slideleft" ></div>
<div id="Slider">
<ul>
<li><img src="data/images/1.jpg" width="560" height="260" alt="Image One" /></li>
<li><img src="data/images/2.jpg" width="560" height="260" alt="Image Two" /></li>
<li><img src="data/images/3.jpg" width="560" height="260" alt="Image Three" /></li>
<li><img src="data/images/4.jpg" width="560" height="260" alt="Image Four" /></li>
</ul>
</div>
<div class="sliderbutton" id="slideright" ></div>
<ul id="pagination" class="pagination">
<li onclick="slideshow.pos(0)"></li>
<li onclick="slideshow.pos(1)"></li>
<li onclick="slideshow.pos(2)"></li>
<li onclick="slideshow.pos(3)"></li>
</ul>
<script type="text/javascript">
var slideshow=new TINY.slider.slide('slideshow',{
id:'Slider',
auto:4,
resume:false,
vertical:false,
navid:'pagination',
activeclass:'current',
position:0,
rewind:false,
elastic:true,
left:'slideleft',
right:'slideright'
});
</script>
</div>
</div>
<div id="Corps">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div id="Promotion">
<h5></h5>
<img src="" alt="" />
</div>
<div id="Distribution">
</div>
<div id="Footer">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
<p>
<?php require_once('core/footer.php'); ?>
</p>
</div>
</div>
</body>
</html>

10
themes/main/config.xml Executable file
View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<id>3</id>
<nom>AEOS - Main</nom>
<dossier>main</dossier>
<description>Thème de base d'AEOS Officiel</description>
<version>1.0.0</version>
<auteurs>NNS Production</auteurs>
<email>contact@nekonosekai.com</email>
</configuration>

Some files were not shown because too many files have changed in this diff Show more